--- linux-3.11.0.orig/dropped.txt +++ linux-3.11.0/dropped.txt @@ -0,0 +1,4 @@ +UBUNTU: SAUCE: (no-up) Bluetooth: Implement broadcom patchram firmware loader +UBUNTU: SAUCE: (no-up) Bluetooth: Add support for 13d3:3388 and 13d3:3389 +UBUNTU: SAUCE: (no-up) mac80211_hwsim: Register and bind to driver +UBUNTU: SAUCE: AppArmor: basic networking rules --- linux-3.11.0.orig/Makefile +++ linux-3.11.0/Makefile @@ -1,6 +1,6 @@ VERSION = 3 PATCHLEVEL = 11 -SUBLEVEL = 0 +SUBLEVEL = 10 EXTRAVERSION = NAME = Linux for Workgroups @@ -349,6 +349,12 @@ 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 USERINCLUDE when you must reference the UAPI directories only. USERINCLUDE := \ @@ -361,12 +367,16 @@ # Use LINUXINCLUDE when you must reference the include/ directory. # Needed to be compatible with the O= option LINUXINCLUDE := \ + $(UBUNTUINCLUDE) \ -I$(srctree)/arch/$(hdr-arch)/include \ -Iarch/$(hdr-arch)/include/generated \ $(if $(KBUILD_SRC), -I$(srctree)/include) \ -Iinclude \ $(USERINCLUDE) +# 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 \ @@ -519,7 +529,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/ @@ -916,6 +926,7 @@ $(error Headers not exportable for the $(SRCARCH) architecture)) $(Q)$(MAKE) $(hdr-inst)=include/uapi $(Q)$(MAKE) $(hdr-inst)=arch/$(hdr-arch)/include/uapi/asm $(hdr-dst) + $(Q)$(MAKE) $(hdr-inst)=ubuntu/include dst=include oldheaders= PHONY += headers_check_all headers_check_all: headers_install_all @@ -925,6 +936,7 @@ headers_check: headers_install $(Q)$(MAKE) $(hdr-inst)=include/uapi HDRCHECK=1 $(Q)$(MAKE) $(hdr-inst)=arch/$(hdr-arch)/include/uapi/asm $(hdr-dst) HDRCHECK=1 + $(Q)$(MAKE) $(hdr-inst)=ubuntu/include dst=include oldheaders= HDRCHECK=1 # --------------------------------------------------------------------------- # Modules --- linux-3.11.0.orig/MAINTAINERS +++ linux-3.11.0/MAINTAINERS @@ -6134,6 +6134,13 @@ F: include/scsi/osd_* F: fs/exofs/ +OVERLAYFS FILESYSTEM +M: Miklos Szeredi +L: linux-fsdevel@vger.kernel.org +S: Supported +F: fs/overlayfs/* +F: Documentation/filesystems/overlayfs.txt + P54 WIRELESS DRIVER M: Christian Lamparter L: linux-wireless@vger.kernel.org --- linux-3.11.0.orig/tools/lib/lk/debugfs.c +++ linux-3.11.0/tools/lib/lk/debugfs.c @@ -5,7 +5,6 @@ #include #include #include -#include #include #include "debugfs.h" --- linux-3.11.0.orig/tools/hv/hv_kvp_daemon.c +++ linux-3.11.0/tools/hv/hv_kvp_daemon.c @@ -35,7 +35,7 @@ #include #include #include -#include +#include "../../include/linux/hyperv.h" #include #include #include @@ -1438,7 +1438,9 @@ char *if_name; struct hv_kvp_ipaddr_value *kvp_ip_val; +#if 0 /* It's much easier to manage from upstart if we don't fork */ daemon(1, 0); +#endif openlog("KVP", 0, LOG_USER); syslog(LOG_INFO, "KVP starting; pid is:%d", getpid()); /* --- linux-3.11.0.orig/tools/hv/Makefile +++ linux-3.11.0/tools/hv/Makefile @@ -0,0 +1,11 @@ +all: hv_kvp_daemon hv_vss_daemon + +hv_kvp_daemon: hv_kvp_daemon.c +hv_vss_daemon: hv_vss_daemon.c + +clean: + rm -f hv_kvp_daemon hv_vss_daemon + +install: + install hv_kvp_daemon /usr/sbin/ + install hv_vss_daemon /usr/sbin/ --- linux-3.11.0.orig/tools/hv/hv_kvp_daemon.8 +++ linux-3.11.0/tools/hv/hv_kvp_daemon.8 @@ -0,0 +1,26 @@ +.\" This page Copyright (C) 2012 Andy Whitcroft +.\" Distributed under the GPL v2 or later. +.TH HV_KVP_DAEMON 8 +.SH NAME +hv_kvp_daemon \- Hyper-V Key Value Pair daemon +.SH SYNOPSIS +.ft B +.B hv_kvp_daemon +.br +.SH DESCRIPTION +\fBhv_kvp_daemon\fP +is the userspace component of the Hyper-V key value pair functionality, +communicating via a netlink socket with the kernel HV-KVP driver. +This pairing allows the Hyper-V host to pass configuration information +(such as IP addresses) to the guest and allows the host to obtain guest +version information. + +.SH FILES +.ta +.nf +/var/opt/hyperv/.kvp_pool_* +.fi + +.SH AUTHORS +.nf +Written by K. Y. Srinivasan --- linux-3.11.0.orig/tools/hv/hv_vss_daemon.c +++ linux-3.11.0/tools/hv/hv_vss_daemon.c @@ -34,7 +34,7 @@ #include #include #include -#include +#include "../../include/linux/hyperv.h" #include #include @@ -148,8 +148,10 @@ int op; struct hv_vss_msg *vss_msg; +#if 0 /* It's much easier to manage from upstart if we don't fork */ if (daemon(1, 0)) return 1; +#endif openlog("Hyper-V VSS", 0, LOG_USER); syslog(LOG_INFO, "VSS starting; pid is:%d", getpid()); --- linux-3.11.0.orig/init/main.c +++ linux-3.11.0/init/main.c @@ -75,6 +75,7 @@ #include #include #include +#include #include #include @@ -205,7 +206,7 @@ static int __init quiet_kernel(char *str) { - console_loglevel = 4; + console_loglevel = 2; return 0; } @@ -778,6 +779,7 @@ do_ctors(); usermodehelper_enable(); do_initcalls(); + random_int_secret_init(); } static void __init do_pre_smp_initcalls(void) --- linux-3.11.0.orig/init/Kconfig +++ linux-3.11.0/init/Kconfig @@ -208,6 +208,15 @@ but you may wish to use a different default here to make a minimal system more usable with less configuration. +config VERSION_SIGNATURE + string "Arbitrary version signature" + help + This string will be created in a file, /proc/version_signature. It + is useful in determining arbitrary data about your kernel. For instance, + if you have several kernels of the same version, but need to keep track + of a revision of the same kernel, but not affect it's ability to load + compatible modules, this is the easiest way to do that. + config SWAP bool "Support for paging of anonymous memory (swap)" depends on MMU && BLOCK --- linux-3.11.0.orig/init/noinitramfs.c +++ linux-3.11.0/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-3.11.0.orig/init/version.c +++ linux-3.11.0/init/version.c @@ -42,7 +42,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-3.11.0.orig/Documentation/kernel-parameters.txt +++ linux-3.11.0/Documentation/kernel-parameters.txt @@ -597,6 +597,10 @@ /proc//coredump_filter. See also Documentation/filesystems/proc.txt. + cpufreq_driver= [X86] Allow only the named cpu frequency scaling driver + to register. Example: cpufreq_driver=powernow-k8 + Format: { none | STRING } + cpuidle.off=1 [CPU_IDLE] disable the cpuidle sub-system --- linux-3.11.0.orig/Documentation/filesystems/Locking +++ linux-3.11.0/Documentation/filesystems/Locking @@ -65,6 +65,7 @@ struct file *, unsigned open_flag, umode_t create_mode, int *opened); int (*tmpfile) (struct inode *, struct dentry *, umode_t); + int (*dentry_open)(struct dentry *, struct file *, const struct cred *); locking rules: all may block @@ -93,6 +94,7 @@ update_time: no atomic_open: yes tmpfile: no +dentry_open: no Additionally, ->rmdir(), ->unlink() and ->rename() have ->i_mutex on victim. --- linux-3.11.0.orig/Documentation/filesystems/overlayfs.txt +++ linux-3.11.0/Documentation/filesystems/overlayfs.txt @@ -0,0 +1,199 @@ +Written by: Neil Brown + +Overlay Filesystem +================== + +This document describes a prototype for a new approach to providing +overlay-filesystem functionality in Linux (sometimes referred to as +union-filesystems). An overlay-filesystem tries to present a +filesystem which is the result over overlaying one filesystem on top +of the other. + +The result will inevitably fail to look exactly like a normal +filesystem for various technical reasons. The expectation is that +many use cases will be able to ignore these differences. + +This approach is 'hybrid' because the objects that appear in the +filesystem do not all appear to belong to that filesystem. In many +cases an object accessed in the union will be indistinguishable +from accessing the corresponding object from the original filesystem. +This is most obvious from the 'st_dev' field returned by stat(2). + +While directories will report an st_dev from the overlay-filesystem, +all non-directory objects will report an st_dev from the lower or +upper filesystem that is providing the object. Similarly st_ino will +only be unique when combined with st_dev, and both of these can change +over the lifetime of a non-directory object. Many applications and +tools ignore these values and will not be affected. + +Upper and Lower +--------------- + +An overlay filesystem combines two filesystems - an 'upper' filesystem +and a 'lower' filesystem. When a name exists in both filesystems, the +object in the 'upper' filesystem is visible while the object in the +'lower' filesystem is either hidden or, in the case of directories, +merged with the 'upper' object. + +It would be more correct to refer to an upper and lower 'directory +tree' rather than 'filesystem' as it is quite possible for both +directory trees to be in the same filesystem and there is no +requirement that the root of a filesystem be given for either upper or +lower. + +The lower filesystem can be any filesystem supported by Linux and does +not need to be writable. The lower filesystem can even be another +overlayfs. The upper filesystem will normally be writable and if it +is it must support the creation of trusted.* extended attributes, and +must provide valid d_type in readdir responses, at least for symbolic +links - so NFS is not suitable. + +A read-only overlay of two read-only filesystems may use any +filesystem type. + +Directories +----------- + +Overlaying mainly involves directories. If a given name appears in both +upper and lower filesystems and refers to a non-directory in either, +then the lower object is hidden - the name refers only to the upper +object. + +Where both upper and lower objects are directories, a merged directory +is formed. + +At mount time, the two directories given as mount options are combined +into a merged directory: + + mount -t overlayfs overlayfs -olowerdir=/lower,upperdir=/upper /overlay + +Then whenever a lookup is requested in such a merged directory, the +lookup is performed in each actual directory and the combined result +is cached in the dentry belonging to the overlay filesystem. If both +actual lookups find directories, both are stored and a merged +directory is created, otherwise only one is stored: the upper if it +exists, else the lower. + +Only the lists of names from directories are merged. Other content +such as metadata and extended attributes are reported for the upper +directory only. These attributes of the lower directory are hidden. + +whiteouts and opaque directories +-------------------------------- + +In order to support rm and rmdir without changing the lower +filesystem, an overlay filesystem needs to record in the upper filesystem +that files have been removed. This is done using whiteouts and opaque +directories (non-directories are always opaque). + +The overlay filesystem uses extended attributes with a +"trusted.overlay." prefix to record these details. + +A whiteout is created as a symbolic link with target +"(overlay-whiteout)" and with xattr "trusted.overlay.whiteout" set to "y". +When a whiteout is found in the upper level of a merged directory, any +matching name in the lower level is ignored, and the whiteout itself +is also hidden. + +A directory is made opaque by setting the xattr "trusted.overlay.opaque" +to "y". Where the upper filesystem contains an opaque directory, any +directory in the lower filesystem with the same name is ignored. + +readdir +------- + +When a 'readdir' request is made on a merged directory, the upper and +lower directories are each read and the name lists merged in the +obvious way (upper is read first, then lower - entries that already +exist are not re-added). This merged name list is cached in the +'struct file' and so remains as long as the file is kept open. If the +directory is opened and read by two processes at the same time, they +will each have separate caches. A seekdir to the start of the +directory (offset 0) followed by a readdir will cause the cache to be +discarded and rebuilt. + +This means that changes to the merged directory do not appear while a +directory is being read. This is unlikely to be noticed by many +programs. + +seek offsets are assigned sequentially when the directories are read. +Thus if + - read part of a directory + - remember an offset, and close the directory + - re-open the directory some time later + - seek to the remembered offset + +there may be little correlation between the old and new locations in +the list of filenames, particularly if anything has changed in the +directory. + +Readdir on directories that are not merged is simply handled by the +underlying directory (upper or lower). + + +Non-directories +--------------- + +Objects that are not directories (files, symlinks, device-special +files etc.) are presented either from the upper or lower filesystem as +appropriate. When a file in the lower filesystem is accessed in a way +the requires write-access, such as opening for write access, changing +some metadata etc., the file is first copied from the lower filesystem +to the upper filesystem (copy_up). Note that creating a hard-link +also requires copy_up, though of course creation of a symlink does +not. + +The copy_up may turn out to be unnecessary, for example if the file is +opened for read-write but the data is not modified. + +The copy_up process first makes sure that the containing directory +exists in the upper filesystem - creating it and any parents as +necessary. It then creates the object with the same metadata (owner, +mode, mtime, symlink-target etc.) and then if the object is a file, the +data is copied from the lower to the upper filesystem. Finally any +extended attributes are copied up. + +Once the copy_up is complete, the overlay filesystem simply +provides direct access to the newly created file in the upper +filesystem - future operations on the file are barely noticed by the +overlay filesystem (though an operation on the name of the file such as +rename or unlink will of course be noticed and handled). + + +Non-standard behavior +--------------------- + +The copy_up operation essentially creates a new, identical file and +moves it over to the old name. The new file may be on a different +filesystem, so both st_dev and st_ino of the file may change. + +Any open files referring to this inode will access the old data and +metadata. Similarly any file locks obtained before copy_up will not +apply to the copied up file. + +On a file opened with O_RDONLY fchmod(2), fchown(2), futimesat(2) and +fsetxattr(2) will fail with EROFS. + +If a file with multiple hard links is copied up, then this will +"break" the link. Changes will not be propagated to other names +referring to the same inode. + +Symlinks in /proc/PID/ and /proc/PID/fd which point to a non-directory +object in overlayfs will not contain valid absolute paths, only +relative paths leading up to the filesystem's root. This will be +fixed in the future. + +Some operations are not atomic, for example a crash during copy_up or +rename will leave the filesystem in an inconsistent state. This will +be addressed in the future. + +Changes to underlying filesystems +--------------------------------- + +Offline changes, when the overlay is not mounted, are allowed to either +the upper or the lower trees. + +Changes to the underlying filesystems while part of a mounted overlay +filesystem are not allowed. If the underlying filesystem is changed, +the behavior of the overlay is undefined, though it will not result in +a crash or deadlock. --- linux-3.11.0.orig/Documentation/filesystems/vfs.txt +++ linux-3.11.0/Documentation/filesystems/vfs.txt @@ -364,6 +364,7 @@ } ____cacheline_aligned; struct file *, unsigned open_flag, umode_t create_mode, int *opened); + int (*dentry_open)(struct dentry *, struct file *, const struct cred *); }; Again, all methods are called without any locks being held, unless @@ -681,6 +682,12 @@ but instead uses bmap to find out where the blocks in the file are and uses those addresses directly. + dentry_open: this is an alternative to f_op->open(), the difference is that + this method may open a file not necessarily originating from the same + filesystem as the one i_op->open() was called on. It may be + useful for stacking filesystems which want to allow native I/O directly + on underlying files. + invalidatepage: If a page has PagePrivate set, then invalidatepage will be called when part or all of the page is to be removed --- linux-3.11.0.orig/Documentation/hwmon/k10temp +++ linux-3.11.0/Documentation/hwmon/k10temp @@ -12,6 +12,7 @@ * AMD Family 12h processors: "Llano" (E2/A4/A6/A8-Series) * AMD Family 14h processors: "Brazos" (C/E/G/Z-Series) * AMD Family 15h processors: "Bulldozer" (FX-Series), "Trinity" +* AMD Family 16h processors: "Kabini" Prefix: 'k10temp' Addresses scanned: PCI space --- linux-3.11.0.orig/Documentation/networking/ip-sysctl.txt +++ linux-3.11.0/Documentation/networking/ip-sysctl.txt @@ -478,6 +478,15 @@ tcp_timestamps - BOOLEAN Enable timestamps as defined in RFC1323. +tcp_min_tso_segs - INTEGER + Minimal number of segments per TSO frame. + Since linux-3.12, TCP does an automatic sizing of TSO frames, + depending on flow rate, instead of filling 64Kbytes packets. + For specific usages, it's possible to force TCP to build big + TSO frames. Note that TCP stack might split too big TSO packets + if available window is too small. + Default: 2 + tcp_tso_win_divisor - INTEGER This allows control over what percentage of the congestion window can be consumed by a single TSO frame. --- linux-3.11.0.orig/fs/open.c +++ linux-3.11.0/fs/open.c @@ -34,6 +34,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) { @@ -61,6 +64,7 @@ mutex_unlock(&dentry->d_inode->i_mutex); return ret; } +EXPORT_SYMBOL(do_truncate); long vfs_truncate(struct path *path, loff_t length) { @@ -800,8 +804,7 @@ f = get_empty_filp(); if (!IS_ERR(f)) { f->f_flags = flags; - f->f_path = *path; - error = do_dentry_open(f, NULL, cred); + error = vfs_open(path, f, cred); if (!error) { /* from now on we need fput() to dispose of f */ error = open_check_o_direct(f); @@ -818,6 +821,26 @@ } EXPORT_SYMBOL(dentry_open); +/** + * vfs_open - open the file at the given path + * @path: path to open + * @filp: newly allocated file with f_flag initialized + * @cred: credentials to use + */ +int vfs_open(const struct path *path, struct file *filp, + const struct cred *cred) +{ + struct inode *inode = path->dentry->d_inode; + + if (inode->i_op->dentry_open) + return inode->i_op->dentry_open(path->dentry, filp, cred); + else { + filp->f_path = *path; + return do_dentry_open(filp, NULL, cred); + } +} +EXPORT_SYMBOL(vfs_open); + static inline int build_open_flags(int flags, umode_t mode, struct open_flags *op) { int lookup_flags = 0; @@ -960,6 +983,7 @@ } else { fsnotify_open(f); fd_install(fd, f); + trace_do_sys_open(tmp->name, flags, mode); } } putname(tmp); --- linux-3.11.0.orig/fs/exec.c +++ linux-3.11.0/fs/exec.c @@ -56,6 +56,8 @@ #include #include +#include + #include #include #include @@ -774,6 +776,8 @@ fsnotify_open(file); + trace_open_exec(name); + err = deny_write_access(file); if (err) goto exit; @@ -1670,6 +1674,12 @@ return (ret > SUID_DUMP_USER) ? SUID_DUMP_ROOT : ret; } +/* + * This returns the actual value of the suid_dumpable flag. For things + * that are using this for checking for privilege transitions, it must + * test against SUID_DUMP_USER rather than treating it as a boolean + * value. + */ int get_dumpable(struct mm_struct *mm) { return __get_dumpable(mm->flags); --- linux-3.11.0.orig/fs/inode.c +++ linux-3.11.0/fs/inode.c @@ -56,6 +56,7 @@ static __cacheline_aligned_in_smp DEFINE_SPINLOCK(inode_hash_lock); __cacheline_aligned_in_smp DEFINE_SPINLOCK(inode_sb_list_lock); +EXPORT_SYMBOL(inode_sb_list_lock); /* * Empty aops. Can be used for the cases where the user does not @@ -1500,7 +1501,7 @@ * This does the actual work of updating an inodes time or version. Must have * had called mnt_want_write() before calling this. */ -static int update_time(struct inode *inode, struct timespec *time, int flags) +int update_time(struct inode *inode, struct timespec *time, int flags) { if (inode->i_op->update_time) return inode->i_op->update_time(inode, time, flags); @@ -1516,6 +1517,7 @@ mark_inode_dirty_sync(inode); return 0; } +EXPORT_SYMBOL(update_time); /** * touch_atime - update the access time @@ -1898,3 +1900,7 @@ wake_up_bit(&inode->i_state, __I_DIO_WAKEUP); } EXPORT_SYMBOL(inode_dio_done); + +#define CREATE_TRACE_POINTS +#include + --- linux-3.11.0.orig/fs/seq_file.c +++ linux-3.11.0/fs/seq_file.c @@ -328,6 +328,8 @@ m->read_pos = offset; retval = file->f_pos = offset; } + } else { + file->f_pos = offset; } } file->f_version = m->version; --- linux-3.11.0.orig/fs/splice.c +++ linux-3.11.0/fs/splice.c @@ -1093,8 +1093,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); @@ -1106,13 +1106,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); @@ -1132,6 +1133,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 @@ -1309,6 +1311,7 @@ return ret; } +EXPORT_SYMBOL(do_splice_direct); static int splice_pipe_to_pipe(struct pipe_inode_info *ipipe, struct pipe_inode_info *opipe, --- linux-3.11.0.orig/fs/namespace.c +++ linux-3.11.0/fs/namespace.c @@ -54,6 +54,7 @@ * tree or hash is modified or when a vfsmount structure is modified. */ DEFINE_BRLOCK(vfsmount_lock); +EXPORT_SYMBOL(vfsmount_lock); static inline unsigned long hash(struct vfsmount *mnt, struct dentry *dentry) { @@ -427,6 +428,7 @@ mnt_dec_writers(real_mount(mnt)); preempt_enable(); } +EXPORT_SYMBOL_GPL(__mnt_drop_write); /** * mnt_drop_write - give up write access to a mount @@ -1442,6 +1444,33 @@ namespace_unlock(); } +/** + * clone_private_mount - create a private clone of a path + * + * This creates a new vfsmount, which will be the clone of @path. The new will + * not be attached anywhere in the namespace and will be private (i.e. changes + * to the originating mount won't be propagated into this). + * + * Release with mntput(). + */ +struct vfsmount *clone_private_mount(struct path *path) +{ + struct mount *old_mnt = real_mount(path->mnt); + struct mount *new_mnt; + + if (IS_MNT_UNBINDABLE(old_mnt)) + return ERR_PTR(-EINVAL); + + down_read(&namespace_sem); + new_mnt = clone_mnt(old_mnt, path->dentry, CL_PRIVATE); + up_read(&namespace_sem); + if (IS_ERR(new_mnt)) + return ERR_CAST(new_mnt); + + return &new_mnt->mnt; +} +EXPORT_SYMBOL_GPL(clone_private_mount); + int iterate_mounts(int (*f)(struct vfsmount *, void *), void *arg, struct vfsmount *root) { @@ -1456,6 +1485,7 @@ } return 0; } +EXPORT_SYMBOL(iterate_mounts); static void cleanup_group_ids(struct mount *mnt, struct mount *end) { --- linux-3.11.0.orig/fs/file_table.c +++ linux-3.11.0/fs/file_table.c @@ -36,7 +36,8 @@ .max_files = NR_FILE }; -DEFINE_STATIC_LGLOCK(files_lglock); +DEFINE_LGLOCK(files_lglock); +EXPORT_SYMBOL(files_lglock); /* SLAB cache for file structures */ static struct kmem_cache *filp_cachep __read_mostly; @@ -406,6 +407,8 @@ } } +EXPORT_SYMBOL(file_sb_list_del); + #ifdef CONFIG_SMP /* --- linux-3.11.0.orig/fs/fs-writeback.c +++ linux-3.11.0/fs/fs-writeback.c @@ -26,6 +26,7 @@ #include #include #include +#include #include "internal.h" /* @@ -1137,6 +1138,8 @@ if ((inode->i_state & flags) == flags) return; + trace_dirty_inode(inode, current); + if (unlikely(block_dump)) block_dump___mark_inode_dirty(inode); --- linux-3.11.0.orig/fs/internal.h +++ linux-3.11.0/fs/internal.h @@ -42,11 +42,6 @@ extern void __init chrdev_init(void); /* - * namei.c - */ -extern int __inode_permission(struct inode *, int); - -/* * namespace.c */ extern int copy_mount_options(const void __user *, unsigned long *); @@ -134,12 +129,6 @@ extern int rw_verify_area(int, struct file *, const loff_t *, size_t); /* - * splice.c - */ -extern long do_splice_direct(struct file *in, loff_t *ppos, struct file *out, - loff_t *opos, size_t len, unsigned int flags); - -/* * pipe.c */ extern const struct file_operations pipefifo_fops; --- linux-3.11.0.orig/fs/binfmt_elf.c +++ linux-3.11.0/fs/binfmt_elf.c @@ -1413,7 +1413,7 @@ * long file_ofs * followed by COUNT filenames in ASCII: "FILE1" NUL "FILE2" NUL... */ -static void fill_files_note(struct memelfnote *note) +static int fill_files_note(struct memelfnote *note) { struct vm_area_struct *vma; unsigned count, size, names_ofs, remaining, n; @@ -1428,11 +1428,11 @@ names_ofs = (2 + 3 * count) * sizeof(data[0]); alloc: if (size >= MAX_FILE_NOTE_SIZE) /* paranoia check */ - goto err; + return -EINVAL; size = round_up(size, PAGE_SIZE); data = vmalloc(size); if (!data) - goto err; + return -ENOMEM; start_end_ofs = data + 2; name_base = name_curpos = ((char *)data) + names_ofs; @@ -1485,7 +1485,7 @@ size = name_curpos - (char *)data; fill_note(note, "CORE", NT_FILE, size, data); - err: ; + return 0; } #ifdef CORE_DUMP_USE_REGSET @@ -1686,8 +1686,8 @@ fill_auxv_note(&info->auxv, current->mm); info->size += notesize(&info->auxv); - fill_files_note(&info->files); - info->size += notesize(&info->files); + if (fill_files_note(&info->files) == 0) + info->size += notesize(&info->files); return 1; } @@ -1719,7 +1719,8 @@ return 0; if (first && !writenote(&info->auxv, file, foffset)) return 0; - if (first && !writenote(&info->files, file, foffset)) + if (first && info->files.data && + !writenote(&info->files, file, foffset)) return 0; for (i = 1; i < info->thread_notes; ++i) @@ -1806,6 +1807,7 @@ struct elf_note_info { struct memelfnote *notes; + struct memelfnote *notes_files; struct elf_prstatus *prstatus; /* NT_PRSTATUS */ struct elf_prpsinfo *psinfo; /* NT_PRPSINFO */ struct list_head thread_list; @@ -1896,9 +1898,12 @@ fill_siginfo_note(info->notes + 2, &info->csigdata, siginfo); fill_auxv_note(info->notes + 3, current->mm); - fill_files_note(info->notes + 4); + info->numnote = 4; - info->numnote = 5; + if (fill_files_note(info->notes + info->numnote) == 0) { + info->notes_files = info->notes + info->numnote; + info->numnote++; + } /* Try to dump the FPU. */ info->prstatus->pr_fpvalid = elf_core_copy_task_fpregs(current, regs, @@ -1960,8 +1965,9 @@ kfree(list_entry(tmp, struct elf_thread_status, list)); } - /* Free data allocated by fill_files_note(): */ - vfree(info->notes[4].data); + /* Free data possibly allocated by fill_files_note(): */ + if (info->notes_files) + vfree(info->notes_files->data); kfree(info->prstatus); kfree(info->psinfo); @@ -2044,7 +2050,7 @@ struct vm_area_struct *vma, *gate_vma; struct elfhdr *elf = NULL; loff_t offset = 0, dataoff, foffset; - struct elf_note_info info; + struct elf_note_info info = { }; struct elf_phdr *phdr4note = NULL; struct elf_shdr *shdr4extnum = NULL; Elf_Half e_phnum; --- linux-3.11.0.orig/fs/bio-integrity.c +++ linux-3.11.0/fs/bio-integrity.c @@ -734,7 +734,7 @@ mempool_destroy(bs->bio_integrity_pool); if (bs->bvec_integrity_pool) - mempool_destroy(bs->bio_integrity_pool); + mempool_destroy(bs->bvec_integrity_pool); } EXPORT_SYMBOL(bioset_integrity_free); --- linux-3.11.0.orig/fs/Makefile +++ linux-3.11.0/fs/Makefile @@ -105,6 +105,7 @@ obj-$(CONFIG_AUTOFS4_FS) += autofs4/ obj-$(CONFIG_ADFS_FS) += adfs/ obj-$(CONFIG_FUSE_FS) += fuse/ +obj-$(CONFIG_OVERLAYFS_FS) += overlayfs/ obj-$(CONFIG_UDF_FS) += udf/ obj-$(CONFIG_SUN_OPENPROMFS) += openpromfs/ obj-$(CONFIG_OMFS_FS) += omfs/ --- linux-3.11.0.orig/fs/Kconfig +++ linux-3.11.0/fs/Kconfig @@ -67,6 +67,7 @@ source "fs/autofs4/Kconfig" source "fs/fuse/Kconfig" +source "fs/overlayfs/Kconfig" config GENERIC_ACL bool --- linux-3.11.0.orig/fs/statfs.c +++ linux-3.11.0/fs/statfs.c @@ -94,7 +94,7 @@ int fd_statfs(int fd, struct kstatfs *st) { - struct fd f = fdget(fd); + struct fd f = fdget_raw(fd); int error = -EBADF; if (f.file) { error = vfs_statfs(&f.file->f_path, st); --- linux-3.11.0.orig/fs/bio.c +++ linux-3.11.0/fs/bio.c @@ -917,8 +917,8 @@ src_p = kmap_atomic(src_bv->bv_page); dst_p = kmap_atomic(dst_bv->bv_page); - memcpy(dst_p + dst_bv->bv_offset, - src_p + src_bv->bv_offset, + memcpy(dst_p + dst_offset, + src_p + src_offset, bytes); kunmap_atomic(dst_p); --- linux-3.11.0.orig/fs/eventpoll.c +++ linux-3.11.0/fs/eventpoll.c @@ -34,7 +34,6 @@ #include #include #include -#include #include #include #include @@ -1603,8 +1602,7 @@ } spin_unlock_irqrestore(&ep->lock, flags); - if (!freezable_schedule_hrtimeout_range(to, slack, - HRTIMER_MODE_ABS)) + if (!schedule_hrtimeout_range(to, slack, HRTIMER_MODE_ABS)) timed_out = 1; spin_lock_irqsave(&ep->lock, flags); --- linux-3.11.0.orig/fs/select.c +++ linux-3.11.0/fs/select.c @@ -238,8 +238,7 @@ set_current_state(state); if (!pwq->triggered) - rc = freezable_schedule_hrtimeout_range(expires, slack, - HRTIMER_MODE_ABS); + rc = schedule_hrtimeout_range(expires, slack, HRTIMER_MODE_ABS); __set_current_state(TASK_RUNNING); /* --- linux-3.11.0.orig/fs/namei.c +++ linux-3.11.0/fs/namei.c @@ -402,6 +402,7 @@ return security_inode_permission(inode, mask); } +EXPORT_SYMBOL(__inode_permission); /** * sb_permission - Check superblock-level permissions @@ -699,8 +700,8 @@ path_put(link); } -int sysctl_protected_symlinks __read_mostly = 0; -int sysctl_protected_hardlinks __read_mostly = 0; +int sysctl_protected_symlinks __read_mostly = 1; +int sysctl_protected_hardlinks __read_mostly = 1; /** * may_follow_link - Check symlink following for unsafe situations @@ -2848,9 +2849,12 @@ error = may_open(&nd->path, acc_mode, open_flag); if (error) goto out; - file->f_path.mnt = nd->path.mnt; - error = finish_open(file, nd->path.dentry, NULL, opened); - if (error) { + + BUG_ON(*opened & FILE_OPENED); /* once it's opened, it's opened */ + error = vfs_open(&nd->path, file, current_cred()); + if (!error) { + *opened |= FILE_OPENED; + } else { if (error == -EOPENSTALE) goto stale_open; goto out; --- linux-3.11.0.orig/fs/nilfs2/page.c +++ linux-3.11.0/fs/nilfs2/page.c @@ -94,6 +94,7 @@ clear_buffer_nilfs_volatile(bh); clear_buffer_nilfs_checked(bh); clear_buffer_nilfs_redirected(bh); + clear_buffer_async_write(bh); clear_buffer_dirty(bh); if (nilfs_page_buffers_clean(page)) __nilfs_clear_page_dirty(page); @@ -429,6 +430,7 @@ "discard block %llu, size %zu", (u64)bh->b_blocknr, bh->b_size); } + clear_buffer_async_write(bh); clear_buffer_dirty(bh); clear_buffer_nilfs_volatile(bh); clear_buffer_nilfs_checked(bh); --- linux-3.11.0.orig/fs/nilfs2/segment.c +++ linux-3.11.0/fs/nilfs2/segment.c @@ -665,7 +665,7 @@ bh = head = page_buffers(page); do { - if (!buffer_dirty(bh)) + if (!buffer_dirty(bh) || buffer_async_write(bh)) continue; get_bh(bh); list_add_tail(&bh->b_assoc_buffers, listp); @@ -699,7 +699,8 @@ for (i = 0; i < pagevec_count(&pvec); i++) { bh = head = page_buffers(pvec.pages[i]); do { - if (buffer_dirty(bh)) { + if (buffer_dirty(bh) && + !buffer_async_write(bh)) { get_bh(bh); list_add_tail(&bh->b_assoc_buffers, listp); @@ -1579,6 +1580,7 @@ list_for_each_entry(bh, &segbuf->sb_segsum_buffers, b_assoc_buffers) { + set_buffer_async_write(bh); if (bh->b_page != bd_page) { if (bd_page) { lock_page(bd_page); @@ -1592,6 +1594,7 @@ list_for_each_entry(bh, &segbuf->sb_payload_buffers, b_assoc_buffers) { + set_buffer_async_write(bh); if (bh == segbuf->sb_super_root) { if (bh->b_page != bd_page) { lock_page(bd_page); @@ -1677,6 +1680,7 @@ list_for_each_entry(segbuf, logs, sb_list) { list_for_each_entry(bh, &segbuf->sb_segsum_buffers, b_assoc_buffers) { + clear_buffer_async_write(bh); if (bh->b_page != bd_page) { if (bd_page) end_page_writeback(bd_page); @@ -1686,6 +1690,7 @@ list_for_each_entry(bh, &segbuf->sb_payload_buffers, b_assoc_buffers) { + clear_buffer_async_write(bh); if (bh == segbuf->sb_super_root) { if (bh->b_page != bd_page) { end_page_writeback(bd_page); @@ -1755,6 +1760,7 @@ b_assoc_buffers) { set_buffer_uptodate(bh); clear_buffer_dirty(bh); + clear_buffer_async_write(bh); if (bh->b_page != bd_page) { if (bd_page) end_page_writeback(bd_page); @@ -1776,6 +1782,7 @@ b_assoc_buffers) { set_buffer_uptodate(bh); clear_buffer_dirty(bh); + clear_buffer_async_write(bh); clear_buffer_delay(bh); clear_buffer_nilfs_volatile(bh); clear_buffer_nilfs_redirected(bh); --- linux-3.11.0.orig/fs/nfsd/nfs4state.c +++ linux-3.11.0/fs/nfsd/nfs4state.c @@ -368,11 +368,8 @@ alloc_init_deleg(struct nfs4_client *clp, struct nfs4_ol_stateid *stp, struct svc_fh *current_fh) { struct nfs4_delegation *dp; - struct nfs4_file *fp = stp->st_file; dprintk("NFSD alloc_init_deleg\n"); - if (fp->fi_had_conflict) - return NULL; if (num_delegations > max_delegations) return NULL; dp = delegstateid(nfs4_alloc_stid(clp, deleg_slab)); @@ -389,8 +386,7 @@ INIT_LIST_HEAD(&dp->dl_perfile); INIT_LIST_HEAD(&dp->dl_perclnt); INIT_LIST_HEAD(&dp->dl_recall_lru); - get_nfs4_file(fp); - dp->dl_file = fp; + dp->dl_file = NULL; dp->dl_type = NFS4_OPEN_DELEGATE_READ; fh_copy_shallow(&dp->dl_fh, ¤t_fh->fh_handle); dp->dl_time = 0; @@ -3044,22 +3040,35 @@ return 0; } -static int nfs4_set_delegation(struct nfs4_delegation *dp) +static int nfs4_set_delegation(struct nfs4_delegation *dp, struct nfs4_file *fp) { - struct nfs4_file *fp = dp->dl_file; + int status; - if (!fp->fi_lease) - return nfs4_setlease(dp); + if (fp->fi_had_conflict) + return -EAGAIN; + get_nfs4_file(fp); + dp->dl_file = fp; + if (!fp->fi_lease) { + status = nfs4_setlease(dp); + if (status) + goto out_free; + return 0; + } spin_lock(&recall_lock); if (fp->fi_had_conflict) { spin_unlock(&recall_lock); - return -EAGAIN; + status = -EAGAIN; + goto out_free; } atomic_inc(&fp->fi_delegees); list_add(&dp->dl_perfile, &fp->fi_delegations); spin_unlock(&recall_lock); list_add(&dp->dl_perclnt, &dp->dl_stid.sc_client->cl_delegations); return 0; +out_free: + put_nfs4_file(fp); + dp->dl_file = fp; + return status; } static void nfsd4_open_deleg_none_ext(struct nfsd4_open *open, int status) @@ -3134,7 +3143,7 @@ dp = alloc_init_deleg(oo->oo_owner.so_client, stp, fh); if (dp == NULL) goto out_no_deleg; - status = nfs4_set_delegation(dp); + status = nfs4_set_delegation(dp, stp->st_file); if (status) goto out_free; --- linux-3.11.0.orig/fs/ceph/ioctl.c +++ linux-3.11.0/fs/ceph/ioctl.c @@ -196,8 +196,10 @@ r = ceph_calc_file_object_mapping(&ci->i_layout, dl.file_offset, len, &dl.object_no, &dl.object_offset, &olen); - if (r < 0) + if (r < 0) { + up_read(&osdc->map_sem); return -EIO; + } dl.file_offset -= dl.object_offset; dl.object_size = ceph_file_layout_object_size(ci->i_layout); dl.block_size = ceph_file_layout_su(ci->i_layout); --- linux-3.11.0.orig/fs/proc/task_mmu.c +++ linux-3.11.0/fs/proc/task_mmu.c @@ -938,6 +938,8 @@ frame = pte_pfn(pte); flags = PM_PRESENT; page = vm_normal_page(vma, addr, pte); + if (pte_soft_dirty(pte)) + flags2 |= __PM_SOFT_DIRTY; } else if (is_swap_pte(pte)) { swp_entry_t entry; if (pte_swp_soft_dirty(pte)) @@ -955,8 +957,6 @@ if (page && !PageAnon(page)) flags |= PM_FILE; - if (pte_soft_dirty(pte)) - flags2 |= __PM_SOFT_DIRTY; *pme = make_pme(PM_PFRAME(frame) | PM_STATUS2(pm->v2, flags2) | flags); } --- linux-3.11.0.orig/fs/proc/Makefile +++ linux-3.11.0/fs/proc/Makefile @@ -30,3 +30,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-3.11.0.orig/fs/proc/version_signature.c +++ linux-3.11.0/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-3.11.0.orig/fs/proc/root.c +++ linux-3.11.0/fs/proc/root.c @@ -110,7 +110,8 @@ ns = task_active_pid_ns(current); options = data; - if (!current_user_ns()->may_mount_proc) + if (!current_user_ns()->may_mount_proc || + !ns_capable(ns->user_ns, CAP_SYS_ADMIN)) return ERR_PTR(-EPERM); } --- linux-3.11.0.orig/fs/ext4/inode.c +++ linux-3.11.0/fs/ext4/inode.c @@ -1890,6 +1890,26 @@ return ret; } +static int mpage_submit_page(struct mpage_da_data *mpd, struct page *page) +{ + int len; + loff_t size = i_size_read(mpd->inode); + int err; + + BUG_ON(page->index != mpd->first_page); + if (page->index == size >> PAGE_CACHE_SHIFT) + len = size & ~PAGE_CACHE_MASK; + else + len = PAGE_CACHE_SIZE; + clear_page_dirty_for_io(page); + err = ext4_bio_write_page(&mpd->io_submit, page, len, mpd->wbc); + if (!err) + mpd->wbc->nr_to_write--; + mpd->first_page++; + + return err; +} + #define BH_FLAGS ((1 << BH_Unwritten) | (1 << BH_Delay)) /* @@ -1904,82 +1924,94 @@ * * @mpd - extent of blocks * @lblk - logical number of the block in the file - * @b_state - b_state of the buffer head added + * @bh - buffer head we want to add to the extent * - * the function is used to collect contig. blocks in same state + * The function is used to collect contig. blocks in the same state. If the + * buffer doesn't require mapping for writeback and we haven't started the + * extent of buffers to map yet, the function returns 'true' immediately - the + * caller can write the buffer right away. Otherwise the function returns true + * if the block has been added to the extent, false if the block couldn't be + * added. */ -static int mpage_add_bh_to_extent(struct mpage_da_data *mpd, ext4_lblk_t lblk, - unsigned long b_state) +static bool mpage_add_bh_to_extent(struct mpage_da_data *mpd, ext4_lblk_t lblk, + struct buffer_head *bh) { struct ext4_map_blocks *map = &mpd->map; - /* Don't go larger than mballoc is willing to allocate */ - if (map->m_len >= MAX_WRITEPAGES_EXTENT_LEN) - return 0; + /* Buffer that doesn't need mapping for writeback? */ + if (!buffer_dirty(bh) || !buffer_mapped(bh) || + (!buffer_delay(bh) && !buffer_unwritten(bh))) { + /* So far no extent to map => we write the buffer right away */ + if (map->m_len == 0) + return true; + return false; + } /* First block in the extent? */ if (map->m_len == 0) { map->m_lblk = lblk; map->m_len = 1; - map->m_flags = b_state & BH_FLAGS; - return 1; + map->m_flags = bh->b_state & BH_FLAGS; + return true; } + /* Don't go larger than mballoc is willing to allocate */ + if (map->m_len >= MAX_WRITEPAGES_EXTENT_LEN) + return false; + /* Can we merge the block to our big extent? */ if (lblk == map->m_lblk + map->m_len && - (b_state & BH_FLAGS) == map->m_flags) { + (bh->b_state & BH_FLAGS) == map->m_flags) { map->m_len++; - return 1; + return true; } - return 0; + return false; } -static bool add_page_bufs_to_extent(struct mpage_da_data *mpd, - struct buffer_head *head, - struct buffer_head *bh, - ext4_lblk_t lblk) +/* + * mpage_process_page_bufs - submit page buffers for IO or add them to extent + * + * @mpd - extent of blocks for mapping + * @head - the first buffer in the page + * @bh - buffer we should start processing from + * @lblk - logical number of the block in the file corresponding to @bh + * + * Walk through page buffers from @bh upto @head (exclusive) and either submit + * the page for IO if all buffers in this page were mapped and there's no + * accumulated extent of buffers to map or add buffers in the page to the + * extent of buffers to map. The function returns 1 if the caller can continue + * by processing the next page, 0 if it should stop adding buffers to the + * extent to map because we cannot extend it anymore. It can also return value + * < 0 in case of error during IO submission. + */ +static int mpage_process_page_bufs(struct mpage_da_data *mpd, + struct buffer_head *head, + struct buffer_head *bh, + ext4_lblk_t lblk) { struct inode *inode = mpd->inode; + int err; ext4_lblk_t blocks = (i_size_read(inode) + (1 << inode->i_blkbits) - 1) >> inode->i_blkbits; do { BUG_ON(buffer_locked(bh)); - if (!buffer_dirty(bh) || !buffer_mapped(bh) || - (!buffer_delay(bh) && !buffer_unwritten(bh)) || - lblk >= blocks) { + if (lblk >= blocks || !mpage_add_bh_to_extent(mpd, lblk, bh)) { /* Found extent to map? */ if (mpd->map.m_len) - return false; - if (lblk >= blocks) - return true; - continue; + return 0; + /* Everything mapped so far and we hit EOF */ + break; } - if (!mpage_add_bh_to_extent(mpd, lblk, bh->b_state)) - return false; } while (lblk++, (bh = bh->b_this_page) != head); - return true; -} - -static int mpage_submit_page(struct mpage_da_data *mpd, struct page *page) -{ - int len; - loff_t size = i_size_read(mpd->inode); - int err; - - BUG_ON(page->index != mpd->first_page); - if (page->index == size >> PAGE_CACHE_SHIFT) - len = size & ~PAGE_CACHE_MASK; - else - len = PAGE_CACHE_SIZE; - clear_page_dirty_for_io(page); - err = ext4_bio_write_page(&mpd->io_submit, page, len, mpd->wbc); - if (!err) - mpd->wbc->nr_to_write--; - mpd->first_page++; - - return err; + /* So far everything mapped? Submit the page for IO. */ + if (mpd->map.m_len == 0) { + err = mpage_submit_page(mpd, head->b_page); + if (err < 0) + return err; + } + return lblk < blocks; } /* @@ -2003,8 +2035,6 @@ struct inode *inode = mpd->inode; struct buffer_head *head, *bh; int bpp_bits = PAGE_CACHE_SHIFT - inode->i_blkbits; - ext4_lblk_t blocks = (i_size_read(inode) + (1 << inode->i_blkbits) - 1) - >> inode->i_blkbits; pgoff_t start, end; ext4_lblk_t lblk; sector_t pblock; @@ -2039,18 +2069,26 @@ */ mpd->map.m_len = 0; mpd->map.m_flags = 0; - add_page_bufs_to_extent(mpd, head, bh, - lblk); + /* + * FIXME: If dioread_nolock supports + * blocksize < pagesize, we need to make + * sure we add size mapped so far to + * io_end->size as the following call + * can submit the page for IO. + */ + err = mpage_process_page_bufs(mpd, head, + bh, lblk); pagevec_release(&pvec); - return 0; + if (err > 0) + err = 0; + return err; } if (buffer_delay(bh)) { clear_buffer_delay(bh); bh->b_blocknr = pblock++; } clear_buffer_unwritten(bh); - } while (++lblk < blocks && - (bh = bh->b_this_page) != head); + } while (lblk++, (bh = bh->b_this_page) != head); /* * FIXME: This is going to break if dioread_nolock @@ -2254,6 +2292,7 @@ struct address_space *mapping = mpd->inode->i_mapping; struct pagevec pvec; unsigned int nr_pages; + long left = mpd->wbc->nr_to_write; pgoff_t index = mpd->first_page; pgoff_t end = mpd->last_page; int tag; @@ -2289,6 +2328,17 @@ if (page->index > end) goto out; + /* + * Accumulated enough dirty pages? This doesn't apply + * to WB_SYNC_ALL mode. For integrity sync we have to + * keep going because someone may be concurrently + * dirtying pages, and we might have synced a lot of + * newly appeared dirty pages, but have not synced all + * of the old dirty pages. + */ + if (mpd->wbc->sync_mode == WB_SYNC_NONE && left <= 0) + goto out; + /* If we can't merge this page, we are done. */ if (mpd->map.m_len > 0 && mpd->next_page != page->index) goto out; @@ -2319,27 +2369,11 @@ lblk = ((ext4_lblk_t)page->index) << (PAGE_CACHE_SHIFT - blkbits); head = page_buffers(page); - if (!add_page_bufs_to_extent(mpd, head, head, lblk)) - goto out; - /* So far everything mapped? Submit the page for IO. */ - if (mpd->map.m_len == 0) { - err = mpage_submit_page(mpd, page); - if (err < 0) - goto out; - } - - /* - * Accumulated enough dirty pages? This doesn't apply - * to WB_SYNC_ALL mode. For integrity sync we have to - * keep going because someone may be concurrently - * dirtying pages, and we might have synced a lot of - * newly appeared dirty pages, but have not synced all - * of the old dirty pages. - */ - if (mpd->wbc->sync_mode == WB_SYNC_NONE && - mpd->next_page - mpd->first_page >= - mpd->wbc->nr_to_write) + err = mpage_process_page_bufs(mpd, head, head, lblk); + if (err <= 0) goto out; + err = 0; + left--; } pagevec_release(&pvec); cond_resched(); @@ -2526,7 +2560,7 @@ break; } blk_finish_plug(&plug); - if (!ret && !cycled) { + if (!ret && !cycled && wbc->nr_to_write > 0) { cycled = 1; mpd.last_page = writeback_index - 1; mpd.first_page = 0; @@ -4566,7 +4600,9 @@ ext4_journal_stop(handle); } - if (attr->ia_valid & ATTR_SIZE) { + if (attr->ia_valid & ATTR_SIZE && attr->ia_size != inode->i_size) { + handle_t *handle; + loff_t oldsize = inode->i_size; if (!(ext4_test_inode_flag(inode, EXT4_INODE_EXTENTS))) { struct ext4_sb_info *sbi = EXT4_SB(inode->i_sb); @@ -4574,73 +4610,60 @@ if (attr->ia_size > sbi->s_bitmap_maxbytes) return -EFBIG; } - } - - if (S_ISREG(inode->i_mode) && - attr->ia_valid & ATTR_SIZE && - (attr->ia_size < inode->i_size)) { - handle_t *handle; - - handle = ext4_journal_start(inode, EXT4_HT_INODE, 3); - if (IS_ERR(handle)) { - error = PTR_ERR(handle); - goto err_out; - } - if (ext4_handle_valid(handle)) { - error = ext4_orphan_add(handle, inode); - orphan = 1; - } - EXT4_I(inode)->i_disksize = attr->ia_size; - rc = ext4_mark_inode_dirty(handle, inode); - if (!error) - error = rc; - ext4_journal_stop(handle); - - if (ext4_should_order_data(inode)) { - error = ext4_begin_ordered_truncate(inode, + if (S_ISREG(inode->i_mode) && + (attr->ia_size < inode->i_size)) { + if (ext4_should_order_data(inode)) { + error = ext4_begin_ordered_truncate(inode, attr->ia_size); - if (error) { - /* Do as much error cleanup as possible */ - handle = ext4_journal_start(inode, - EXT4_HT_INODE, 3); - if (IS_ERR(handle)) { - ext4_orphan_del(NULL, inode); + if (error) goto err_out; - } - ext4_orphan_del(handle, inode); - orphan = 0; - ext4_journal_stop(handle); + } + handle = ext4_journal_start(inode, EXT4_HT_INODE, 3); + if (IS_ERR(handle)) { + error = PTR_ERR(handle); + goto err_out; + } + if (ext4_handle_valid(handle)) { + error = ext4_orphan_add(handle, inode); + orphan = 1; + } + EXT4_I(inode)->i_disksize = attr->ia_size; + rc = ext4_mark_inode_dirty(handle, inode); + if (!error) + error = rc; + ext4_journal_stop(handle); + if (error) { + ext4_orphan_del(NULL, inode); goto err_out; } } - } - if (attr->ia_valid & ATTR_SIZE) { - if (attr->ia_size != inode->i_size) { - loff_t oldsize = inode->i_size; - - i_size_write(inode, attr->ia_size); - /* - * Blocks are going to be removed from the inode. Wait - * for dio in flight. Temporarily disable - * dioread_nolock to prevent livelock. - */ - if (orphan) { - if (!ext4_should_journal_data(inode)) { - ext4_inode_block_unlocked_dio(inode); - inode_dio_wait(inode); - ext4_inode_resume_unlocked_dio(inode); - } else - ext4_wait_for_tail_page_commit(inode); - } - /* - * Truncate pagecache after we've waited for commit - * in data=journal mode to make pages freeable. - */ - truncate_pagecache(inode, oldsize, inode->i_size); + i_size_write(inode, attr->ia_size); + /* + * Blocks are going to be removed from the inode. Wait + * for dio in flight. Temporarily disable + * dioread_nolock to prevent livelock. + */ + if (orphan) { + if (!ext4_should_journal_data(inode)) { + ext4_inode_block_unlocked_dio(inode); + inode_dio_wait(inode); + ext4_inode_resume_unlocked_dio(inode); + } else + ext4_wait_for_tail_page_commit(inode); } - ext4_truncate(inode); + /* + * Truncate pagecache after we've waited for commit + * in data=journal mode to make pages freeable. + */ + truncate_pagecache(inode, oldsize, inode->i_size); } + /* + * We want to call ext4_truncate() even if attr->ia_size == + * inode->i_size for cases like truncation of fallocated space + */ + if (attr->ia_valid & ATTR_SIZE) + ext4_truncate(inode); if (!rc) { setattr_copy(inode, attr); --- linux-3.11.0.orig/fs/ext4/xattr.c +++ linux-3.11.0/fs/ext4/xattr.c @@ -1350,6 +1350,8 @@ s_min_extra_isize) { tried_min_extra_isize++; new_extra_isize = s_min_extra_isize; + kfree(is); is = NULL; + kfree(bs); bs = NULL; goto retry; } error = -1; --- linux-3.11.0.orig/fs/ext4/namei.c +++ linux-3.11.0/fs/ext4/namei.c @@ -2319,7 +2319,7 @@ d_tmpfile(dentry, inode); err = ext4_orphan_add(handle, inode); if (err) - goto err_drop_inode; + goto err_unlock_inode; mark_inode_dirty(inode); unlock_new_inode(inode); } @@ -2328,10 +2328,9 @@ if (err == -ENOSPC && ext4_should_retry_alloc(dir->i_sb, &retries)) goto retry; return err; -err_drop_inode: +err_unlock_inode: ext4_journal_stop(handle); unlock_new_inode(inode); - iput(inode); return err; } --- linux-3.11.0.orig/fs/sysv/super.c +++ linux-3.11.0/fs/sysv/super.c @@ -487,6 +487,7 @@ sbi->s_sb = sb; sbi->s_block_base = 0; sbi->s_type = FSTYPE_V7; + mutex_init(&sbi->s_lock); sb->s_fs_info = sbi; sb_set_blocksize(sb, 512); --- linux-3.11.0.orig/fs/btrfs/ioctl.c +++ linux-3.11.0/fs/btrfs/ioctl.c @@ -3312,6 +3312,9 @@ switch (p->cmd) { case BTRFS_IOCTL_DEV_REPLACE_CMD_START: + if (root->fs_info->sb->s_flags & MS_RDONLY) + return -EROFS; + if (atomic_xchg( &root->fs_info->mutually_exclusive_operation_running, 1)) { --- linux-3.11.0.orig/fs/btrfs/inode.c +++ linux-3.11.0/fs/btrfs/inode.c @@ -2132,6 +2132,7 @@ WARN_ON(1); return ret; } + ret = 0; while (1) { cond_resched(); @@ -2181,8 +2182,6 @@ old->len || extent_offset + num_bytes <= old->extent_offset + old->offset) continue; - - ret = 0; break; } @@ -8037,7 +8036,7 @@ /* check for collisions, even if the name isn't there */ - ret = btrfs_check_dir_item_collision(root, new_dir->i_ino, + ret = btrfs_check_dir_item_collision(dest, new_dir->i_ino, new_dentry->d_name.name, new_dentry->d_name.len); --- linux-3.11.0.orig/fs/btrfs/relocation.c +++ linux-3.11.0/fs/btrfs/relocation.c @@ -691,6 +691,7 @@ int cowonly; int ret; int err = 0; + bool need_check = true; path1 = btrfs_alloc_path(); path2 = btrfs_alloc_path(); @@ -914,6 +915,7 @@ cur->bytenr); lower = cur; + need_check = true; for (; level < BTRFS_MAX_LEVEL; level++) { if (!path2->nodes[level]) { BUG_ON(btrfs_root_bytenr(&root->root_item) != @@ -957,14 +959,12 @@ /* * add the block to pending list if we - * need check its backrefs. only block - * at 'cur->level + 1' is added to the - * tail of pending list. this guarantees - * we check backrefs from lower level - * blocks to upper level blocks. + * need check its backrefs, we only do this once + * while walking up a tree as we will catch + * anything else later on. */ - if (!upper->checked && - level == cur->level + 1) { + if (!upper->checked && need_check) { + need_check = false; list_add_tail(&edge->list[UPPER], &list); } else @@ -4462,6 +4462,7 @@ struct btrfs_root *root = BTRFS_I(inode)->root; int ret; u64 disk_bytenr; + u64 new_bytenr; LIST_HEAD(list); ordered = btrfs_lookup_ordered_extent(inode, file_pos); @@ -4473,13 +4474,24 @@ if (ret) goto out; - disk_bytenr = ordered->start; while (!list_empty(&list)) { sums = list_entry(list.next, struct btrfs_ordered_sum, list); list_del_init(&sums->list); - sums->bytenr = disk_bytenr; - disk_bytenr += sums->len; + /* + * We need to offset the new_bytenr based on where the csum is. + * We need to do this because we will read in entire prealloc + * extents but we may have written to say the middle of the + * prealloc extent, so we need to make sure the csum goes with + * the right disk offset. + * + * We can do this because the data reloc inode refers strictly + * to the on disk bytes, so we don't have to worry about + * disk_len vs real len like with real inodes since it's all + * disk length. + */ + new_bytenr = ordered->start + (sums->bytenr - disk_bytenr); + sums->bytenr = new_bytenr; btrfs_add_ordered_sum(inode, ordered, sums); } --- linux-3.11.0.orig/fs/btrfs/send.c +++ linux-3.11.0/fs/btrfs/send.c @@ -2519,7 +2519,8 @@ di = btrfs_item_ptr(eb, slot, struct btrfs_dir_item); btrfs_dir_item_key_to_cpu(eb, di, &di_key); - if (di_key.objectid < sctx->send_progress) { + if (di_key.type != BTRFS_ROOT_ITEM_KEY && + di_key.objectid < sctx->send_progress) { ret = 1; goto out; } --- linux-3.11.0.orig/fs/btrfs/extent-tree.c +++ linux-3.11.0/fs/btrfs/extent-tree.c @@ -2403,6 +2403,8 @@ default: WARN_ON(1); } + } else { + list_del_init(&locked_ref->cluster); } spin_unlock(&delayed_refs->lock); @@ -2425,7 +2427,6 @@ * list before we release it. */ if (btrfs_delayed_ref_is_head(ref)) { - list_del_init(&locked_ref->cluster); btrfs_delayed_ref_unlock(locked_ref); locked_ref = NULL; } --- linux-3.11.0.orig/fs/fuse/fuse_i.h +++ linux-3.11.0/fs/fuse/fuse_i.h @@ -115,6 +115,8 @@ enum { /** Advise readdirplus */ FUSE_I_ADVISE_RDPLUS, + /** An operation changing file size is in progress */ + FUSE_I_SIZE_UNSTABLE, }; struct fuse_conn; --- linux-3.11.0.orig/fs/fuse/inode.c +++ linux-3.11.0/fs/fuse/inode.c @@ -201,7 +201,8 @@ struct timespec old_mtime; spin_lock(&fc->lock); - if (attr_version != 0 && fi->attr_version > attr_version) { + if ((attr_version != 0 && fi->attr_version > attr_version) || + test_bit(FUSE_I_SIZE_UNSTABLE, &fi->state)) { spin_unlock(&fc->lock); return; } --- linux-3.11.0.orig/fs/fuse/file.c +++ linux-3.11.0/fs/fuse/file.c @@ -629,7 +629,8 @@ struct fuse_inode *fi = get_fuse_inode(inode); spin_lock(&fc->lock); - if (attr_ver == fi->attr_version && size < inode->i_size) { + if (attr_ver == fi->attr_version && size < inode->i_size && + !test_bit(FUSE_I_SIZE_UNSTABLE, &fi->state)) { fi->attr_version = ++fc->attr_version; i_size_write(inode, size); } @@ -1032,12 +1033,16 @@ { struct inode *inode = mapping->host; struct fuse_conn *fc = get_fuse_conn(inode); + struct fuse_inode *fi = get_fuse_inode(inode); int err = 0; ssize_t res = 0; if (is_bad_inode(inode)) return -EIO; + if (inode->i_size < pos + iov_iter_count(ii)) + set_bit(FUSE_I_SIZE_UNSTABLE, &fi->state); + do { struct fuse_req *req; ssize_t count; @@ -1073,6 +1078,7 @@ if (res > 0) fuse_write_update_size(inode, pos); + clear_bit(FUSE_I_SIZE_UNSTABLE, &fi->state); fuse_invalidate_attr(inode); return res > 0 ? res : err; @@ -1529,7 +1535,6 @@ inc_bdi_stat(mapping->backing_dev_info, BDI_WRITEBACK); inc_zone_page_state(tmp_page, NR_WRITEBACK_TEMP); - end_page_writeback(page); spin_lock(&fc->lock); list_add(&req->writepages_entry, &fi->writepages); @@ -1537,6 +1542,8 @@ fuse_flush_writepages(inode); spin_unlock(&fc->lock); + end_page_writeback(page); + return 0; err_free: @@ -2460,6 +2467,7 @@ { struct fuse_file *ff = file->private_data; struct inode *inode = file->f_inode; + struct fuse_inode *fi = get_fuse_inode(inode); struct fuse_conn *fc = ff->fc; struct fuse_req *req; struct fuse_fallocate_in inarg = { @@ -2477,10 +2485,20 @@ if (lock_inode) { mutex_lock(&inode->i_mutex); - if (mode & FALLOC_FL_PUNCH_HOLE) - fuse_set_nowrite(inode); + if (mode & FALLOC_FL_PUNCH_HOLE) { + loff_t endbyte = offset + length - 1; + err = filemap_write_and_wait_range(inode->i_mapping, + offset, endbyte); + if (err) + goto out; + + fuse_sync_writes(inode); + } } + if (!(mode & FALLOC_FL_KEEP_SIZE)) + set_bit(FUSE_I_SIZE_UNSTABLE, &fi->state); + req = fuse_get_req_nopages(fc); if (IS_ERR(req)) { err = PTR_ERR(req); @@ -2513,11 +2531,11 @@ fuse_invalidate_attr(inode); out: - if (lock_inode) { - if (mode & FALLOC_FL_PUNCH_HOLE) - fuse_release_nowrite(inode); + if (!(mode & FALLOC_FL_KEEP_SIZE)) + clear_bit(FUSE_I_SIZE_UNSTABLE, &fi->state); + + if (lock_inode) mutex_unlock(&inode->i_mutex); - } return err; } --- linux-3.11.0.orig/fs/fuse/dir.c +++ linux-3.11.0/fs/fuse/dir.c @@ -1174,6 +1174,8 @@ return -EIO; if (reclen > nbytes) break; + if (memchr(dirent->name, '/', dirent->namelen) != NULL) + return -EIO; if (!dir_emit(ctx, dirent->name, dirent->namelen, dirent->ino, dirent->type)) @@ -1320,6 +1322,8 @@ return -EIO; if (reclen > nbytes) break; + if (memchr(dirent->name, '/', dirent->namelen) != NULL) + return -EIO; if (!over) { /* We fill entries into dstbuf only as much as @@ -1590,6 +1594,7 @@ struct file *file) { struct fuse_conn *fc = get_fuse_conn(inode); + struct fuse_inode *fi = get_fuse_inode(inode); struct fuse_req *req; struct fuse_setattr_in inarg; struct fuse_attr_out outarg; @@ -1617,8 +1622,10 @@ if (IS_ERR(req)) return PTR_ERR(req); - if (is_truncate) + if (is_truncate) { fuse_set_nowrite(inode); + set_bit(FUSE_I_SIZE_UNSTABLE, &fi->state); + } memset(&inarg, 0, sizeof(inarg)); memset(&outarg, 0, sizeof(outarg)); @@ -1680,12 +1687,14 @@ invalidate_inode_pages2(inode->i_mapping); } + clear_bit(FUSE_I_SIZE_UNSTABLE, &fi->state); return 0; error: if (is_truncate) fuse_release_nowrite(inode); + clear_bit(FUSE_I_SIZE_UNSTABLE, &fi->state); return err; } @@ -1749,6 +1758,8 @@ fc->no_setxattr = 1; err = -EOPNOTSUPP; } + if (!err) + fuse_invalidate_attr(inode); return err; } @@ -1878,6 +1889,8 @@ fc->no_removexattr = 1; err = -EOPNOTSUPP; } + if (!err) + fuse_invalidate_attr(inode); return err; } --- linux-3.11.0.orig/fs/ext3/namei.c +++ linux-3.11.0/fs/ext3/namei.c @@ -1783,7 +1783,7 @@ d_tmpfile(dentry, inode); err = ext3_orphan_add(handle, inode); if (err) - goto err_drop_inode; + goto err_unlock_inode; mark_inode_dirty(inode); unlock_new_inode(inode); } @@ -1791,10 +1791,9 @@ if (err == -ENOSPC && ext3_should_retry_alloc(dir->i_sb, &retries)) goto retry; return err; -err_drop_inode: +err_unlock_inode: ext3_journal_stop(handle); unlock_new_inode(inode); - iput(inode); return err; } --- linux-3.11.0.orig/fs/overlayfs/inode.c +++ linux-3.11.0/fs/overlayfs/inode.c @@ -0,0 +1,372 @@ +/* + * + * Copyright (C) 2011 Novell Inc. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 as published by + * the Free Software Foundation. + */ + +#include +#include +#include +#include "overlayfs.h" + +int ovl_setattr(struct dentry *dentry, struct iattr *attr) +{ + struct dentry *upperdentry; + int err; + + if ((attr->ia_valid & ATTR_SIZE) && !ovl_dentry_upper(dentry)) + err = ovl_copy_up_truncate(dentry, attr->ia_size); + else + err = ovl_copy_up(dentry); + if (err) + return err; + + upperdentry = ovl_dentry_upper(dentry); + + if (attr->ia_valid & (ATTR_KILL_SUID|ATTR_KILL_SGID)) + attr->ia_valid &= ~ATTR_MODE; + + mutex_lock(&upperdentry->d_inode->i_mutex); + err = notify_change(upperdentry, attr); + if (!err) + ovl_copyattr(upperdentry->d_inode, dentry->d_inode); + mutex_unlock(&upperdentry->d_inode->i_mutex); + + return err; +} + +static int ovl_getattr(struct vfsmount *mnt, struct dentry *dentry, + struct kstat *stat) +{ + struct path realpath; + + ovl_path_real(dentry, &realpath); + return vfs_getattr(&realpath, stat); +} + +int ovl_permission(struct inode *inode, int mask) +{ + struct ovl_entry *oe; + struct dentry *alias = NULL; + struct inode *realinode; + struct dentry *realdentry; + bool is_upper; + int err; + + if (S_ISDIR(inode->i_mode)) { + oe = inode->i_private; + } else if (mask & MAY_NOT_BLOCK) { + return -ECHILD; + } else { + /* + * For non-directories find an alias and get the info + * from there. + */ + alias = d_find_any_alias(inode); + if (WARN_ON(!alias)) + return -ENOENT; + + oe = alias->d_fsdata; + } + + realdentry = ovl_entry_real(oe, &is_upper); + + /* Careful in RCU walk mode */ + realinode = ACCESS_ONCE(realdentry->d_inode); + if (!realinode) { + WARN_ON(!(mask & MAY_NOT_BLOCK)); + err = -ENOENT; + goto out_dput; + } + + if (mask & MAY_WRITE) { + umode_t mode = realinode->i_mode; + + /* + * Writes will always be redirected to upper layer, so + * ignore lower layer being read-only. + * + * If the overlay itself is read-only then proceed + * with the permission check, don't return EROFS. + * This will only happen if this is the lower layer of + * another overlayfs. + * + * If upper fs becomes read-only after the overlay was + * constructed return EROFS to prevent modification of + * upper layer. + */ + err = -EROFS; + if (is_upper && !IS_RDONLY(inode) && IS_RDONLY(realinode) && + (S_ISREG(mode) || S_ISDIR(mode) || S_ISLNK(mode))) + goto out_dput; + } + + err = __inode_permission(realinode, mask); +out_dput: + dput(alias); + return err; +} + + +struct ovl_link_data { + struct dentry *realdentry; + void *cookie; +}; + +static void *ovl_follow_link(struct dentry *dentry, struct nameidata *nd) +{ + void *ret; + struct dentry *realdentry; + struct inode *realinode; + + realdentry = ovl_dentry_real(dentry); + realinode = realdentry->d_inode; + + if (WARN_ON(!realinode->i_op->follow_link)) + return ERR_PTR(-EPERM); + + ret = realinode->i_op->follow_link(realdentry, nd); + if (IS_ERR(ret)) + return ret; + + if (realinode->i_op->put_link) { + struct ovl_link_data *data; + + data = kmalloc(sizeof(struct ovl_link_data), GFP_KERNEL); + if (!data) { + realinode->i_op->put_link(realdentry, nd, ret); + return ERR_PTR(-ENOMEM); + } + data->realdentry = realdentry; + data->cookie = ret; + + return data; + } else { + return NULL; + } +} + +static void ovl_put_link(struct dentry *dentry, struct nameidata *nd, void *c) +{ + struct inode *realinode; + struct ovl_link_data *data = c; + + if (!data) + return; + + realinode = data->realdentry->d_inode; + realinode->i_op->put_link(data->realdentry, nd, data->cookie); + kfree(data); +} + +static int ovl_readlink(struct dentry *dentry, char __user *buf, int bufsiz) +{ + struct path realpath; + struct inode *realinode; + + ovl_path_real(dentry, &realpath); + realinode = realpath.dentry->d_inode; + + if (!realinode->i_op->readlink) + return -EINVAL; + + touch_atime(&realpath); + + return realinode->i_op->readlink(realpath.dentry, buf, bufsiz); +} + + +static bool ovl_is_private_xattr(const char *name) +{ + return strncmp(name, "trusted.overlay.", 14) == 0; +} + +int ovl_setxattr(struct dentry *dentry, const char *name, + const void *value, size_t size, int flags) +{ + int err; + struct dentry *upperdentry; + + if (ovl_is_private_xattr(name)) + return -EPERM; + + err = ovl_copy_up(dentry); + if (err) + return err; + + upperdentry = ovl_dentry_upper(dentry); + return vfs_setxattr(upperdentry, name, value, size, flags); +} + +ssize_t ovl_getxattr(struct dentry *dentry, const char *name, + void *value, size_t size) +{ + if (ovl_path_type(dentry->d_parent) == OVL_PATH_MERGE && + ovl_is_private_xattr(name)) + return -ENODATA; + + return vfs_getxattr(ovl_dentry_real(dentry), name, value, size); +} + +ssize_t ovl_listxattr(struct dentry *dentry, char *list, size_t size) +{ + ssize_t res; + int off; + + res = vfs_listxattr(ovl_dentry_real(dentry), list, size); + if (res <= 0 || size == 0) + return res; + + if (ovl_path_type(dentry->d_parent) != OVL_PATH_MERGE) + return res; + + /* filter out private xattrs */ + for (off = 0; off < res;) { + char *s = list + off; + size_t slen = strlen(s) + 1; + + BUG_ON(off + slen > res); + + if (ovl_is_private_xattr(s)) { + res -= slen; + memmove(s, s + slen, res - off); + } else { + off += slen; + } + } + + return res; +} + +int ovl_removexattr(struct dentry *dentry, const char *name) +{ + int err; + struct path realpath; + enum ovl_path_type type; + + if (ovl_path_type(dentry->d_parent) == OVL_PATH_MERGE && + ovl_is_private_xattr(name)) + return -ENODATA; + + type = ovl_path_real(dentry, &realpath); + if (type == OVL_PATH_LOWER) { + err = vfs_getxattr(realpath.dentry, name, NULL, 0); + if (err < 0) + return err; + + err = ovl_copy_up(dentry); + if (err) + return err; + + ovl_path_upper(dentry, &realpath); + } + + return vfs_removexattr(realpath.dentry, name); +} + +static bool ovl_open_need_copy_up(int flags, enum ovl_path_type type, + struct dentry *realdentry) +{ + if (type != OVL_PATH_LOWER) + return false; + + if (special_file(realdentry->d_inode->i_mode)) + return false; + + if (!(OPEN_FMODE(flags) & FMODE_WRITE) && !(flags & O_TRUNC)) + return false; + + return true; +} + +static int ovl_dentry_open(struct dentry *dentry, struct file *file, + const struct cred *cred) +{ + int err; + struct path realpath; + enum ovl_path_type type; + + type = ovl_path_real(dentry, &realpath); + if (ovl_open_need_copy_up(file->f_flags, type, realpath.dentry)) { + if (file->f_flags & O_TRUNC) + err = ovl_copy_up_truncate(dentry, 0); + else + err = ovl_copy_up(dentry); + if (err) + return err; + + ovl_path_upper(dentry, &realpath); + } + + return vfs_open(&realpath, file, cred); +} + +static const struct inode_operations ovl_file_inode_operations = { + .setattr = ovl_setattr, + .permission = ovl_permission, + .getattr = ovl_getattr, + .setxattr = ovl_setxattr, + .getxattr = ovl_getxattr, + .listxattr = ovl_listxattr, + .removexattr = ovl_removexattr, + .dentry_open = ovl_dentry_open, +}; + +static const struct inode_operations ovl_symlink_inode_operations = { + .setattr = ovl_setattr, + .follow_link = ovl_follow_link, + .put_link = ovl_put_link, + .readlink = ovl_readlink, + .getattr = ovl_getattr, + .setxattr = ovl_setxattr, + .getxattr = ovl_getxattr, + .listxattr = ovl_listxattr, + .removexattr = ovl_removexattr, +}; + +struct inode *ovl_new_inode(struct super_block *sb, umode_t mode, + struct ovl_entry *oe) +{ + struct inode *inode; + + inode = new_inode(sb); + if (!inode) + return NULL; + + mode &= S_IFMT; + + inode->i_ino = get_next_ino(); + inode->i_mode = mode; + inode->i_flags |= S_NOATIME | S_NOCMTIME; + + switch (mode) { + case S_IFDIR: + inode->i_private = oe; + inode->i_op = &ovl_dir_inode_operations; + inode->i_fop = &ovl_dir_operations; + break; + + case S_IFLNK: + inode->i_op = &ovl_symlink_inode_operations; + break; + + case S_IFREG: + case S_IFSOCK: + case S_IFBLK: + case S_IFCHR: + case S_IFIFO: + inode->i_op = &ovl_file_inode_operations; + break; + + default: + WARN(1, "illegal file type: %i\n", mode); + iput(inode); + inode = NULL; + } + + return inode; + +} --- linux-3.11.0.orig/fs/overlayfs/readdir.c +++ linux-3.11.0/fs/overlayfs/readdir.c @@ -0,0 +1,567 @@ +/* + * + * Copyright (C) 2011 Novell Inc. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 as published by + * the Free Software Foundation. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include "overlayfs.h" + +struct ovl_cache_entry { + const char *name; + unsigned int len; + unsigned int type; + u64 ino; + bool is_whiteout; + struct list_head l_node; + struct rb_node node; +}; + +struct ovl_readdir_data { + struct dir_context ctx; + bool is_merge; + struct rb_root *root; + struct list_head *list; + struct list_head *middle; + struct dentry *dir; + int count; + int err; +}; + +struct ovl_dir_file { + bool is_real; + bool is_cached; + struct list_head cursor; + u64 cache_version; + struct list_head cache; + struct file *realfile; +}; + +static struct ovl_cache_entry *ovl_cache_entry_from_node(struct rb_node *n) +{ + return container_of(n, struct ovl_cache_entry, node); +} + +static struct ovl_cache_entry *ovl_cache_entry_find(struct rb_root *root, + const char *name, int len) +{ + struct rb_node *node = root->rb_node; + int cmp; + + while (node) { + struct ovl_cache_entry *p = ovl_cache_entry_from_node(node); + + cmp = strncmp(name, p->name, len); + if (cmp > 0) + node = p->node.rb_right; + else if (cmp < 0 || len < p->len) + node = p->node.rb_left; + else + return p; + } + + return NULL; +} + +static struct ovl_cache_entry *ovl_cache_entry_new(const char *name, int len, + u64 ino, unsigned int d_type) +{ + struct ovl_cache_entry *p; + + p = kmalloc(sizeof(*p) + len + 1, GFP_KERNEL); + if (p) { + char *name_copy = (char *) (p + 1); + memcpy(name_copy, name, len); + name_copy[len] = '\0'; + p->name = name_copy; + p->len = len; + p->type = d_type; + p->ino = ino; + p->is_whiteout = false; + } + + return p; +} + +static int ovl_cache_entry_add_rb(struct ovl_readdir_data *rdd, + const char *name, int len, u64 ino, + unsigned int d_type) +{ + struct rb_node **newp = &rdd->root->rb_node; + struct rb_node *parent = NULL; + struct ovl_cache_entry *p; + + while (*newp) { + int cmp; + struct ovl_cache_entry *tmp; + + parent = *newp; + tmp = ovl_cache_entry_from_node(*newp); + cmp = strncmp(name, tmp->name, len); + if (cmp > 0) + newp = &tmp->node.rb_right; + else if (cmp < 0 || len < tmp->len) + newp = &tmp->node.rb_left; + else + return 0; + } + + p = ovl_cache_entry_new(name, len, ino, d_type); + if (p == NULL) + return -ENOMEM; + + list_add_tail(&p->l_node, rdd->list); + rb_link_node(&p->node, parent, newp); + rb_insert_color(&p->node, rdd->root); + + return 0; +} + +static int ovl_fill_lower(struct ovl_readdir_data *rdd, + const char *name, int namelen, + loff_t offset, u64 ino, unsigned int d_type) +{ + struct ovl_cache_entry *p; + + p = ovl_cache_entry_find(rdd->root, name, namelen); + if (p) { + list_move_tail(&p->l_node, rdd->middle); + } else { + p = ovl_cache_entry_new(name, namelen, ino, d_type); + if (p == NULL) + rdd->err = -ENOMEM; + else + list_add_tail(&p->l_node, rdd->middle); + } + + return rdd->err; +} + +static void ovl_cache_free(struct list_head *list) +{ + struct ovl_cache_entry *p; + struct ovl_cache_entry *n; + + list_for_each_entry_safe(p, n, list, l_node) + kfree(p); + + INIT_LIST_HEAD(list); +} + +static int ovl_fill_merge(void *buf, const char *name, int namelen, + loff_t offset, u64 ino, unsigned int d_type) +{ + struct ovl_readdir_data *rdd = buf; + + rdd->count++; + if (!rdd->is_merge) + return ovl_cache_entry_add_rb(rdd, name, namelen, ino, d_type); + else + return ovl_fill_lower(rdd, name, namelen, offset, ino, d_type); +} + +static inline int ovl_dir_read(struct path *realpath, + struct ovl_readdir_data *rdd) +{ + struct file *realfile; + int err; + + realfile = ovl_path_open(realpath, O_RDONLY | O_DIRECTORY); + if (IS_ERR(realfile)) + return PTR_ERR(realfile); + + rdd->ctx.pos = 0; + do { + rdd->count = 0; + rdd->err = 0; + err = iterate_dir(realfile, &rdd->ctx); + if (err >= 0) + err = rdd->err; + } while (!err && rdd->count); + fput(realfile); + + return 0; +} + +static void ovl_dir_reset(struct file *file) +{ + struct ovl_dir_file *od = file->private_data; + enum ovl_path_type type = ovl_path_type(file->f_path.dentry); + + if (ovl_dentry_version_get(file->f_path.dentry) != od->cache_version) { + list_del_init(&od->cursor); + ovl_cache_free(&od->cache); + od->is_cached = false; + } + WARN_ON(!od->is_real && type != OVL_PATH_MERGE); + if (od->is_real && type == OVL_PATH_MERGE) { + fput(od->realfile); + od->realfile = NULL; + od->is_real = false; + } +} + +static int ovl_dir_mark_whiteouts(struct ovl_readdir_data *rdd) +{ + struct ovl_cache_entry *p; + struct dentry *dentry; + const struct cred *old_cred; + struct cred *override_cred; + + override_cred = prepare_creds(); + if (!override_cred) { + ovl_cache_free(rdd->list); + return -ENOMEM; + } + + /* + * CAP_SYS_ADMIN for getxattr + * CAP_DAC_OVERRIDE for lookup + */ + cap_raise(override_cred->cap_effective, CAP_SYS_ADMIN); + cap_raise(override_cred->cap_effective, CAP_DAC_OVERRIDE); + old_cred = override_creds(override_cred); + + mutex_lock(&rdd->dir->d_inode->i_mutex); + list_for_each_entry(p, rdd->list, l_node) { + if (p->type != DT_LNK) + continue; + + dentry = lookup_one_len(p->name, rdd->dir, p->len); + if (IS_ERR(dentry)) + continue; + + p->is_whiteout = ovl_is_whiteout(dentry); + dput(dentry); + } + mutex_unlock(&rdd->dir->d_inode->i_mutex); + + revert_creds(old_cred); + put_cred(override_cred); + + return 0; +} + +static inline int ovl_dir_read_merged(struct path *upperpath, + struct path *lowerpath, + struct list_head *list) +{ + int err; + struct rb_root root = RB_ROOT; + struct list_head middle; + struct ovl_readdir_data rdd = { + .ctx.actor = ovl_fill_merge, + .list = list, + .root = &root, + .is_merge = false, + }; + + if (upperpath->dentry) { + rdd.dir = upperpath->dentry; + err = ovl_dir_read(upperpath, &rdd); + if (err) + goto out; + + err = ovl_dir_mark_whiteouts(&rdd); + if (err) + goto out; + } + /* + * Insert lowerpath entries before upperpath ones, this allows + * offsets to be reasonably constant + */ + list_add(&middle, rdd.list); + rdd.middle = &middle; + rdd.is_merge = true; + err = ovl_dir_read(lowerpath, &rdd); + list_del(&middle); +out: + return err; +} + +static void ovl_seek_cursor(struct ovl_dir_file *od, loff_t pos) +{ + struct list_head *l; + loff_t off; + + l = od->cache.next; + for (off = 0; off < pos; off++) { + if (l == &od->cache) + break; + l = l->next; + } + list_move_tail(&od->cursor, l); +} + +static int ovl_iterate(struct file *file, struct dir_context *ctx) +{ + struct ovl_dir_file *od = file->private_data; + int res; + + if (!ctx->pos) + ovl_dir_reset(file); + + if (od->is_real) { + res = iterate_dir(od->realfile, ctx); + + return res; + } + + if (!od->is_cached) { + struct path lowerpath; + struct path upperpath; + + ovl_path_lower(file->f_path.dentry, &lowerpath); + ovl_path_upper(file->f_path.dentry, &upperpath); + + res = ovl_dir_read_merged(&upperpath, &lowerpath, &od->cache); + if (res) { + ovl_cache_free(&od->cache); + return res; + } + + od->cache_version = ovl_dentry_version_get(file->f_path.dentry); + od->is_cached = true; + + ovl_seek_cursor(od, ctx->pos); + } + + while (od->cursor.next != &od->cache) { + struct ovl_cache_entry *p; + + p = list_entry(od->cursor.next, struct ovl_cache_entry, l_node); + if (!p->is_whiteout) { + if (!dir_emit(ctx, p->name, p->len, p->ino, p->type)) + break; + } + ctx->pos++; + list_move(&od->cursor, &p->l_node); + } + + return 0; +} + +static loff_t ovl_dir_llseek(struct file *file, loff_t offset, int origin) +{ + loff_t res; + struct ovl_dir_file *od = file->private_data; + + mutex_lock(&file_inode(file)->i_mutex); + if (!file->f_pos) + ovl_dir_reset(file); + + if (od->is_real) { + res = vfs_llseek(od->realfile, offset, origin); + file->f_pos = od->realfile->f_pos; + } else { + res = -EINVAL; + + switch (origin) { + case SEEK_CUR: + offset += file->f_pos; + break; + case SEEK_SET: + break; + default: + goto out_unlock; + } + if (offset < 0) + goto out_unlock; + + if (offset != file->f_pos) { + file->f_pos = offset; + if (od->is_cached) + ovl_seek_cursor(od, offset); + } + res = offset; + } +out_unlock: + mutex_unlock(&file_inode(file)->i_mutex); + + return res; +} + +static int ovl_dir_fsync(struct file *file, loff_t start, loff_t end, + int datasync) +{ + struct ovl_dir_file *od = file->private_data; + + /* May need to reopen directory if it got copied up */ + if (!od->realfile) { + struct path upperpath; + + ovl_path_upper(file->f_path.dentry, &upperpath); + od->realfile = ovl_path_open(&upperpath, O_RDONLY); + if (IS_ERR(od->realfile)) + return PTR_ERR(od->realfile); + } + + return vfs_fsync_range(od->realfile, start, end, datasync); +} + +static int ovl_dir_release(struct inode *inode, struct file *file) +{ + struct ovl_dir_file *od = file->private_data; + + list_del(&od->cursor); + ovl_cache_free(&od->cache); + if (od->realfile) + fput(od->realfile); + kfree(od); + + return 0; +} + +static int ovl_dir_open(struct inode *inode, struct file *file) +{ + struct path realpath; + struct file *realfile; + struct ovl_dir_file *od; + enum ovl_path_type type; + + od = kzalloc(sizeof(struct ovl_dir_file), GFP_KERNEL); + if (!od) + return -ENOMEM; + + type = ovl_path_real(file->f_path.dentry, &realpath); + realfile = ovl_path_open(&realpath, file->f_flags); + if (IS_ERR(realfile)) { + kfree(od); + return PTR_ERR(realfile); + } + INIT_LIST_HEAD(&od->cache); + INIT_LIST_HEAD(&od->cursor); + od->is_cached = false; + od->realfile = realfile; + od->is_real = (type != OVL_PATH_MERGE); + file->private_data = od; + + return 0; +} + +const struct file_operations ovl_dir_operations = { + .read = generic_read_dir, + .open = ovl_dir_open, + .iterate = ovl_iterate, + .llseek = ovl_dir_llseek, + .fsync = ovl_dir_fsync, + .release = ovl_dir_release, +}; + +static int ovl_check_empty_dir(struct dentry *dentry, struct list_head *list) +{ + int err; + struct path lowerpath; + struct path upperpath; + struct ovl_cache_entry *p; + + ovl_path_upper(dentry, &upperpath); + ovl_path_lower(dentry, &lowerpath); + + err = ovl_dir_read_merged(&upperpath, &lowerpath, list); + if (err) + return err; + + err = 0; + + list_for_each_entry(p, list, l_node) { + if (p->is_whiteout) + continue; + + if (p->name[0] == '.') { + if (p->len == 1) + continue; + if (p->len == 2 && p->name[1] == '.') + continue; + } + err = -ENOTEMPTY; + break; + } + + return err; +} + +static int ovl_remove_whiteouts(struct dentry *dir, struct list_head *list) +{ + struct path upperpath; + struct dentry *upperdir; + struct ovl_cache_entry *p; + const struct cred *old_cred; + struct cred *override_cred; + int err; + + ovl_path_upper(dir, &upperpath); + upperdir = upperpath.dentry; + + override_cred = prepare_creds(); + if (!override_cred) + return -ENOMEM; + + /* + * CAP_DAC_OVERRIDE for lookup and unlink + * CAP_SYS_ADMIN for setxattr of "trusted" namespace + * CAP_FOWNER for unlink in sticky directory + */ + cap_raise(override_cred->cap_effective, CAP_DAC_OVERRIDE); + cap_raise(override_cred->cap_effective, CAP_SYS_ADMIN); + cap_raise(override_cred->cap_effective, CAP_FOWNER); + old_cred = override_creds(override_cred); + + err = vfs_setxattr(upperdir, ovl_opaque_xattr, "y", 1, 0); + if (err) + goto out_revert_creds; + + mutex_lock_nested(&upperdir->d_inode->i_mutex, I_MUTEX_PARENT); + list_for_each_entry(p, list, l_node) { + struct dentry *dentry; + int ret; + + if (!p->is_whiteout) + continue; + + dentry = lookup_one_len(p->name, upperdir, p->len); + if (IS_ERR(dentry)) { + pr_warn( + "overlayfs: failed to lookup whiteout %.*s: %li\n", + p->len, p->name, PTR_ERR(dentry)); + continue; + } + ret = vfs_unlink(upperdir->d_inode, dentry); + dput(dentry); + if (ret) + pr_warn( + "overlayfs: failed to unlink whiteout %.*s: %i\n", + p->len, p->name, ret); + } + mutex_unlock(&upperdir->d_inode->i_mutex); + +out_revert_creds: + revert_creds(old_cred); + put_cred(override_cred); + + return err; +} + +int ovl_check_empty_and_clear(struct dentry *dentry, enum ovl_path_type type) +{ + int err; + LIST_HEAD(list); + + err = ovl_check_empty_dir(dentry, &list); + if (!err && type == OVL_PATH_MERGE) + err = ovl_remove_whiteouts(dentry, &list); + + ovl_cache_free(&list); + + return err; +} --- linux-3.11.0.orig/fs/overlayfs/Makefile +++ linux-3.11.0/fs/overlayfs/Makefile @@ -0,0 +1,7 @@ +# +# Makefile for the overlay filesystem. +# + +obj-$(CONFIG_OVERLAYFS_FS) += overlayfs.o + +overlayfs-objs := super.o inode.o dir.o readdir.o copy_up.o --- linux-3.11.0.orig/fs/overlayfs/Kconfig +++ linux-3.11.0/fs/overlayfs/Kconfig @@ -0,0 +1,10 @@ +config OVERLAYFS_FS + tristate "Overlay filesystem support" + help + An overlay filesystem combines two filesystems - an 'upper' filesystem + and a 'lower' filesystem. When a name exists in both filesystems, the + object in the 'upper' filesystem is visible while the object in the + 'lower' filesystem is either hidden or, in the case of directories, + merged with the 'upper' object. + + For more information see Documentation/filesystems/overlayfs.txt --- linux-3.11.0.orig/fs/overlayfs/super.c +++ linux-3.11.0/fs/overlayfs/super.c @@ -0,0 +1,685 @@ +/* + * + * Copyright (C) 2011 Novell Inc. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 as published by + * the Free Software Foundation. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include "overlayfs.h" + +MODULE_AUTHOR("Miklos Szeredi "); +MODULE_DESCRIPTION("Overlay filesystem"); +MODULE_LICENSE("GPL"); + +#define OVERLAYFS_SUPER_MAGIC 0x794c764f + +struct ovl_config { + char *lowerdir; + char *upperdir; +}; + +/* private information held for overlayfs's superblock */ +struct ovl_fs { + struct vfsmount *upper_mnt; + struct vfsmount *lower_mnt; + long lower_namelen; + /* pathnames of lower and upper dirs, for show_options */ + struct ovl_config config; +}; + +/* private information held for every overlayfs dentry */ +struct ovl_entry { + /* + * Keep "double reference" on upper dentries, so that + * d_delete() doesn't think it's OK to reset d_inode to NULL. + */ + struct dentry *__upperdentry; + struct dentry *lowerdentry; + union { + struct { + u64 version; + bool opaque; + }; + struct rcu_head rcu; + }; +}; + +const char *ovl_whiteout_xattr = "trusted.overlay.whiteout"; +const char *ovl_opaque_xattr = "trusted.overlay.opaque"; + + +enum ovl_path_type ovl_path_type(struct dentry *dentry) +{ + struct ovl_entry *oe = dentry->d_fsdata; + + if (oe->__upperdentry) { + if (oe->lowerdentry && S_ISDIR(dentry->d_inode->i_mode)) + return OVL_PATH_MERGE; + else + return OVL_PATH_UPPER; + } else { + return OVL_PATH_LOWER; + } +} + +static struct dentry *ovl_upperdentry_dereference(struct ovl_entry *oe) +{ + struct dentry *upperdentry = ACCESS_ONCE(oe->__upperdentry); + smp_read_barrier_depends(); + return upperdentry; +} + +void ovl_path_upper(struct dentry *dentry, struct path *path) +{ + struct ovl_fs *ofs = dentry->d_sb->s_fs_info; + struct ovl_entry *oe = dentry->d_fsdata; + + path->mnt = ofs->upper_mnt; + path->dentry = ovl_upperdentry_dereference(oe); +} + +void ovl_path_lower(struct dentry *dentry, struct path *path) +{ + struct ovl_fs *ofs = dentry->d_sb->s_fs_info; + struct ovl_entry *oe = dentry->d_fsdata; + + path->mnt = ofs->lower_mnt; + path->dentry = oe->lowerdentry; +} + +enum ovl_path_type ovl_path_real(struct dentry *dentry, struct path *path) +{ + + enum ovl_path_type type = ovl_path_type(dentry); + + if (type == OVL_PATH_LOWER) + ovl_path_lower(dentry, path); + else + ovl_path_upper(dentry, path); + + return type; +} + +struct dentry *ovl_dentry_upper(struct dentry *dentry) +{ + struct ovl_entry *oe = dentry->d_fsdata; + + return ovl_upperdentry_dereference(oe); +} + +struct dentry *ovl_dentry_lower(struct dentry *dentry) +{ + struct ovl_entry *oe = dentry->d_fsdata; + + return oe->lowerdentry; +} + +struct dentry *ovl_dentry_real(struct dentry *dentry) +{ + struct ovl_entry *oe = dentry->d_fsdata; + struct dentry *realdentry; + + realdentry = ovl_upperdentry_dereference(oe); + if (!realdentry) + realdentry = oe->lowerdentry; + + return realdentry; +} + +struct dentry *ovl_entry_real(struct ovl_entry *oe, bool *is_upper) +{ + struct dentry *realdentry; + + realdentry = ovl_upperdentry_dereference(oe); + if (realdentry) { + *is_upper = true; + } else { + realdentry = oe->lowerdentry; + *is_upper = false; + } + return realdentry; +} + +bool ovl_dentry_is_opaque(struct dentry *dentry) +{ + struct ovl_entry *oe = dentry->d_fsdata; + return oe->opaque; +} + +void ovl_dentry_set_opaque(struct dentry *dentry, bool opaque) +{ + struct ovl_entry *oe = dentry->d_fsdata; + oe->opaque = opaque; +} + +void ovl_dentry_update(struct dentry *dentry, struct dentry *upperdentry) +{ + struct ovl_entry *oe = dentry->d_fsdata; + + WARN_ON(!mutex_is_locked(&upperdentry->d_parent->d_inode->i_mutex)); + WARN_ON(oe->__upperdentry); + BUG_ON(!upperdentry->d_inode); + smp_wmb(); + oe->__upperdentry = dget(upperdentry); +} + +void ovl_dentry_version_inc(struct dentry *dentry) +{ + struct ovl_entry *oe = dentry->d_fsdata; + + WARN_ON(!mutex_is_locked(&dentry->d_inode->i_mutex)); + oe->version++; +} + +u64 ovl_dentry_version_get(struct dentry *dentry) +{ + struct ovl_entry *oe = dentry->d_fsdata; + + WARN_ON(!mutex_is_locked(&dentry->d_inode->i_mutex)); + return oe->version; +} + +bool ovl_is_whiteout(struct dentry *dentry) +{ + int res; + char val; + + if (!dentry) + return false; + if (!dentry->d_inode) + return false; + if (!S_ISLNK(dentry->d_inode->i_mode)) + return false; + + res = vfs_getxattr(dentry, ovl_whiteout_xattr, &val, 1); + if (res == 1 && val == 'y') + return true; + + return false; +} + +static bool ovl_is_opaquedir(struct dentry *dentry) +{ + int res; + char val; + + if (!S_ISDIR(dentry->d_inode->i_mode)) + return false; + + res = vfs_getxattr(dentry, ovl_opaque_xattr, &val, 1); + if (res == 1 && val == 'y') + return true; + + return false; +} + +static void ovl_entry_free(struct rcu_head *head) +{ + struct ovl_entry *oe = container_of(head, struct ovl_entry, rcu); + kfree(oe); +} + +static void ovl_dentry_release(struct dentry *dentry) +{ + struct ovl_entry *oe = dentry->d_fsdata; + + if (oe) { + dput(oe->__upperdentry); + dput(oe->__upperdentry); + dput(oe->lowerdentry); + call_rcu(&oe->rcu, ovl_entry_free); + } +} + +const struct dentry_operations ovl_dentry_operations = { + .d_release = ovl_dentry_release, +}; + +static struct ovl_entry *ovl_alloc_entry(void) +{ + return kzalloc(sizeof(struct ovl_entry), GFP_KERNEL); +} + +static inline struct dentry *ovl_lookup_real(struct dentry *dir, + struct qstr *name) +{ + struct dentry *dentry; + + mutex_lock(&dir->d_inode->i_mutex); + dentry = lookup_one_len(name->name, dir, name->len); + mutex_unlock(&dir->d_inode->i_mutex); + + if (IS_ERR(dentry)) { + if (PTR_ERR(dentry) == -ENOENT) + dentry = NULL; + } else if (!dentry->d_inode) { + dput(dentry); + dentry = NULL; + } + return dentry; +} + +static int ovl_do_lookup(struct dentry *dentry) +{ + struct ovl_entry *oe; + struct dentry *upperdir; + struct dentry *lowerdir; + struct dentry *upperdentry = NULL; + struct dentry *lowerdentry = NULL; + struct inode *inode = NULL; + int err; + + err = -ENOMEM; + oe = ovl_alloc_entry(); + if (!oe) + goto out; + + upperdir = ovl_dentry_upper(dentry->d_parent); + lowerdir = ovl_dentry_lower(dentry->d_parent); + + if (upperdir) { + upperdentry = ovl_lookup_real(upperdir, &dentry->d_name); + err = PTR_ERR(upperdentry); + if (IS_ERR(upperdentry)) + goto out_put_dir; + + if (lowerdir && upperdentry && + (S_ISLNK(upperdentry->d_inode->i_mode) || + S_ISDIR(upperdentry->d_inode->i_mode))) { + const struct cred *old_cred; + struct cred *override_cred; + + err = -ENOMEM; + override_cred = prepare_creds(); + if (!override_cred) + goto out_dput_upper; + + /* CAP_SYS_ADMIN needed for getxattr */ + cap_raise(override_cred->cap_effective, CAP_SYS_ADMIN); + old_cred = override_creds(override_cred); + + if (ovl_is_opaquedir(upperdentry)) { + oe->opaque = true; + } else if (ovl_is_whiteout(upperdentry)) { + dput(upperdentry); + upperdentry = NULL; + oe->opaque = true; + } + revert_creds(old_cred); + put_cred(override_cred); + } + } + if (lowerdir && !oe->opaque) { + lowerdentry = ovl_lookup_real(lowerdir, &dentry->d_name); + err = PTR_ERR(lowerdentry); + if (IS_ERR(lowerdentry)) + goto out_dput_upper; + } + + if (lowerdentry && upperdentry && + (!S_ISDIR(upperdentry->d_inode->i_mode) || + !S_ISDIR(lowerdentry->d_inode->i_mode))) { + dput(lowerdentry); + lowerdentry = NULL; + oe->opaque = true; + } + + if (lowerdentry || upperdentry) { + struct dentry *realdentry; + + realdentry = upperdentry ? upperdentry : lowerdentry; + err = -ENOMEM; + inode = ovl_new_inode(dentry->d_sb, realdentry->d_inode->i_mode, + oe); + if (!inode) + goto out_dput; + ovl_copyattr(realdentry->d_inode, inode); + } + + if (upperdentry) + oe->__upperdentry = dget(upperdentry); + + if (lowerdentry) + oe->lowerdentry = lowerdentry; + + dentry->d_fsdata = oe; + dentry->d_op = &ovl_dentry_operations; + d_add(dentry, inode); + + return 0; + +out_dput: + dput(lowerdentry); +out_dput_upper: + dput(upperdentry); +out_put_dir: + kfree(oe); +out: + return err; +} + +struct dentry *ovl_lookup(struct inode *dir, struct dentry *dentry, + unsigned int flags) +{ + int err = ovl_do_lookup(dentry); + + if (err) + return ERR_PTR(err); + + return NULL; +} + +struct file *ovl_path_open(struct path *path, int flags) +{ + return dentry_open(path, flags, current_cred()); +} + +static void ovl_put_super(struct super_block *sb) +{ + struct ovl_fs *ufs = sb->s_fs_info; + + if (!(sb->s_flags & MS_RDONLY)) + mnt_drop_write(ufs->upper_mnt); + + mntput(ufs->upper_mnt); + mntput(ufs->lower_mnt); + + kfree(ufs->config.lowerdir); + kfree(ufs->config.upperdir); + kfree(ufs); +} + +static int ovl_remount_fs(struct super_block *sb, int *flagsp, char *data) +{ + int flags = *flagsp; + struct ovl_fs *ufs = sb->s_fs_info; + + /* When remounting rw or ro, we need to adjust the write access to the + * upper fs. + */ + if (((flags ^ sb->s_flags) & MS_RDONLY) == 0) + /* No change to readonly status */ + return 0; + + if (flags & MS_RDONLY) { + mnt_drop_write(ufs->upper_mnt); + return 0; + } else + return mnt_want_write(ufs->upper_mnt); +} + +/** + * ovl_statfs + * @sb: The overlayfs super block + * @buf: The struct kstatfs to fill in with stats + * + * Get the filesystem statistics. As writes always target the upper layer + * filesystem pass the statfs to the same filesystem. + */ +static int ovl_statfs(struct dentry *dentry, struct kstatfs *buf) +{ + struct ovl_fs *ofs = dentry->d_sb->s_fs_info; + struct dentry *root_dentry = dentry->d_sb->s_root; + struct path path; + int err; + + ovl_path_upper(root_dentry, &path); + + err = vfs_statfs(&path, buf); + if (!err) { + buf->f_namelen = max(buf->f_namelen, ofs->lower_namelen); + buf->f_type = OVERLAYFS_SUPER_MAGIC; + } + + return err; +} + +/** + * ovl_show_options + * + * Prints the mount options for a given superblock. + * Returns zero; does not fail. + */ +static int ovl_show_options(struct seq_file *m, struct dentry *dentry) +{ + struct super_block *sb = dentry->d_sb; + struct ovl_fs *ufs = sb->s_fs_info; + + seq_printf(m, ",lowerdir=%s", ufs->config.lowerdir); + seq_printf(m, ",upperdir=%s", ufs->config.upperdir); + return 0; +} + +static const struct super_operations ovl_super_operations = { + .put_super = ovl_put_super, + .remount_fs = ovl_remount_fs, + .statfs = ovl_statfs, + .show_options = ovl_show_options, +}; + +enum { + OPT_LOWERDIR, + OPT_UPPERDIR, + OPT_ERR, +}; + +static const match_table_t ovl_tokens = { + {OPT_LOWERDIR, "lowerdir=%s"}, + {OPT_UPPERDIR, "upperdir=%s"}, + {OPT_ERR, NULL} +}; + +static int ovl_parse_opt(char *opt, struct ovl_config *config) +{ + char *p; + + config->upperdir = NULL; + config->lowerdir = NULL; + + while ((p = strsep(&opt, ",")) != NULL) { + int token; + substring_t args[MAX_OPT_ARGS]; + + if (!*p) + continue; + + token = match_token(p, ovl_tokens, args); + switch (token) { + case OPT_UPPERDIR: + kfree(config->upperdir); + config->upperdir = match_strdup(&args[0]); + if (!config->upperdir) + return -ENOMEM; + break; + + case OPT_LOWERDIR: + kfree(config->lowerdir); + config->lowerdir = match_strdup(&args[0]); + if (!config->lowerdir) + return -ENOMEM; + break; + + default: + return -EINVAL; + } + } + return 0; +} + +static int ovl_fill_super(struct super_block *sb, void *data, int silent) +{ + struct path lowerpath; + struct path upperpath; + struct inode *root_inode; + struct dentry *root_dentry; + struct ovl_entry *oe; + struct ovl_fs *ufs; + struct kstatfs statfs; + int err; + + err = -ENOMEM; + ufs = kmalloc(sizeof(struct ovl_fs), GFP_KERNEL); + if (!ufs) + goto out; + + err = ovl_parse_opt((char *) data, &ufs->config); + if (err) + goto out_free_ufs; + + err = -EINVAL; + if (!ufs->config.upperdir || !ufs->config.lowerdir) { + pr_err("overlayfs: missing upperdir or lowerdir\n"); + goto out_free_config; + } + + oe = ovl_alloc_entry(); + if (oe == NULL) + goto out_free_config; + + err = kern_path(ufs->config.upperdir, LOOKUP_FOLLOW, &upperpath); + if (err) + goto out_free_oe; + + err = kern_path(ufs->config.lowerdir, LOOKUP_FOLLOW, &lowerpath); + if (err) + goto out_put_upperpath; + + err = -ENOTDIR; + if (!S_ISDIR(upperpath.dentry->d_inode->i_mode) || + !S_ISDIR(lowerpath.dentry->d_inode->i_mode)) + goto out_put_lowerpath; + + err = vfs_statfs(&lowerpath, &statfs); + if (err) { + pr_err("overlayfs: statfs failed on lowerpath\n"); + goto out_put_lowerpath; + } + ufs->lower_namelen = statfs.f_namelen; + + sb->s_stack_depth = max(upperpath.mnt->mnt_sb->s_stack_depth, + lowerpath.mnt->mnt_sb->s_stack_depth) + 1; + + err = -EINVAL; + if (sb->s_stack_depth > FILESYSTEM_MAX_STACK_DEPTH) { + pr_err("overlayfs: maximum fs stacking depth exceeded\n"); + goto out_put_lowerpath; + } + + + ufs->upper_mnt = clone_private_mount(&upperpath); + err = PTR_ERR(ufs->upper_mnt); + if (IS_ERR(ufs->upper_mnt)) { + pr_err("overlayfs: failed to clone upperpath\n"); + goto out_put_lowerpath; + } + + ufs->lower_mnt = clone_private_mount(&lowerpath); + err = PTR_ERR(ufs->lower_mnt); + if (IS_ERR(ufs->lower_mnt)) { + pr_err("overlayfs: failed to clone lowerpath\n"); + goto out_put_upper_mnt; + } + + /* + * Make lower_mnt R/O. That way fchmod/fchown on lower file + * will fail instead of modifying lower fs. + */ + ufs->lower_mnt->mnt_flags |= MNT_READONLY; + + /* If the upper fs is r/o, we mark overlayfs r/o too */ + if (ufs->upper_mnt->mnt_sb->s_flags & MS_RDONLY) + sb->s_flags |= MS_RDONLY; + + if (!(sb->s_flags & MS_RDONLY)) { + err = mnt_want_write(ufs->upper_mnt); + if (err) + goto out_put_lower_mnt; + } + + err = -ENOMEM; + root_inode = ovl_new_inode(sb, S_IFDIR, oe); + if (!root_inode) + goto out_drop_write; + + root_dentry = d_make_root(root_inode); + if (!root_dentry) + goto out_drop_write; + + mntput(upperpath.mnt); + mntput(lowerpath.mnt); + + oe->__upperdentry = dget(upperpath.dentry); + oe->lowerdentry = lowerpath.dentry; + + root_dentry->d_fsdata = oe; + root_dentry->d_op = &ovl_dentry_operations; + + sb->s_magic = OVERLAYFS_SUPER_MAGIC; + sb->s_op = &ovl_super_operations; + sb->s_root = root_dentry; + sb->s_fs_info = ufs; + + return 0; + +out_drop_write: + if (!(sb->s_flags & MS_RDONLY)) + mnt_drop_write(ufs->upper_mnt); +out_put_lower_mnt: + mntput(ufs->lower_mnt); +out_put_upper_mnt: + mntput(ufs->upper_mnt); +out_put_lowerpath: + path_put(&lowerpath); +out_put_upperpath: + path_put(&upperpath); +out_free_oe: + kfree(oe); +out_free_config: + kfree(ufs->config.lowerdir); + kfree(ufs->config.upperdir); +out_free_ufs: + kfree(ufs); +out: + return err; +} + +static struct dentry *ovl_mount(struct file_system_type *fs_type, int flags, + const char *dev_name, void *raw_data) +{ + return mount_nodev(fs_type, flags, raw_data, ovl_fill_super); +} + +static struct file_system_type ovl_fs_type = { + .owner = THIS_MODULE, + .name = "overlayfs", + .mount = ovl_mount, + .kill_sb = kill_anon_super, +}; +MODULE_ALIAS_FS("overlayfs"); + +static int __init ovl_init(void) +{ + return register_filesystem(&ovl_fs_type); +} + +static void __exit ovl_exit(void) +{ + unregister_filesystem(&ovl_fs_type); +} + +module_init(ovl_init); +module_exit(ovl_exit); --- linux-3.11.0.orig/fs/overlayfs/dir.c +++ linux-3.11.0/fs/overlayfs/dir.c @@ -0,0 +1,605 @@ +/* + * + * Copyright (C) 2011 Novell Inc. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 as published by + * the Free Software Foundation. + */ + +#include +#include +#include +#include +#include +#include "overlayfs.h" + +static const char *ovl_whiteout_symlink = "(overlay-whiteout)"; + +static int ovl_whiteout(struct dentry *upperdir, struct dentry *dentry) +{ + int err; + struct dentry *newdentry; + const struct cred *old_cred; + struct cred *override_cred; + + /* FIXME: recheck lower dentry to see if whiteout is really needed */ + + err = -ENOMEM; + override_cred = prepare_creds(); + if (!override_cred) + goto out; + + /* + * CAP_SYS_ADMIN for setxattr + * CAP_DAC_OVERRIDE for symlink creation + * CAP_FOWNER for unlink in sticky directory + */ + cap_raise(override_cred->cap_effective, CAP_SYS_ADMIN); + cap_raise(override_cred->cap_effective, CAP_DAC_OVERRIDE); + cap_raise(override_cred->cap_effective, CAP_FOWNER); + override_cred->fsuid = GLOBAL_ROOT_UID; + override_cred->fsgid = GLOBAL_ROOT_GID; + old_cred = override_creds(override_cred); + + newdentry = lookup_one_len(dentry->d_name.name, upperdir, + dentry->d_name.len); + err = PTR_ERR(newdentry); + if (IS_ERR(newdentry)) + goto out_put_cred; + + /* Just been removed within the same locked region */ + WARN_ON(newdentry->d_inode); + + err = vfs_symlink(upperdir->d_inode, newdentry, ovl_whiteout_symlink); + if (err) + goto out_dput; + + ovl_dentry_version_inc(dentry->d_parent); + + err = vfs_setxattr(newdentry, ovl_whiteout_xattr, "y", 1, 0); + if (err) + vfs_unlink(upperdir->d_inode, newdentry); + +out_dput: + dput(newdentry); +out_put_cred: + revert_creds(old_cred); + put_cred(override_cred); +out: + if (err) { + /* + * There's no way to recover from failure to whiteout. + * What should we do? Log a big fat error and... ? + */ + pr_err("overlayfs: ERROR - failed to whiteout '%s'\n", + dentry->d_name.name); + } + + return err; +} + +static struct dentry *ovl_lookup_create(struct dentry *upperdir, + struct dentry *template) +{ + int err; + struct dentry *newdentry; + struct qstr *name = &template->d_name; + + newdentry = lookup_one_len(name->name, upperdir, name->len); + if (IS_ERR(newdentry)) + return newdentry; + + if (newdentry->d_inode) { + const struct cred *old_cred; + struct cred *override_cred; + + /* No need to check whiteout if lower parent is non-existent */ + err = -EEXIST; + if (!ovl_dentry_lower(template->d_parent)) + goto out_dput; + + if (!S_ISLNK(newdentry->d_inode->i_mode)) + goto out_dput; + + err = -ENOMEM; + override_cred = prepare_creds(); + if (!override_cred) + goto out_dput; + + /* + * CAP_SYS_ADMIN for getxattr + * CAP_FOWNER for unlink in sticky directory + */ + cap_raise(override_cred->cap_effective, CAP_SYS_ADMIN); + cap_raise(override_cred->cap_effective, CAP_FOWNER); + old_cred = override_creds(override_cred); + + err = -EEXIST; + if (ovl_is_whiteout(newdentry)) + err = vfs_unlink(upperdir->d_inode, newdentry); + + revert_creds(old_cred); + put_cred(override_cred); + if (err) + goto out_dput; + + dput(newdentry); + newdentry = lookup_one_len(name->name, upperdir, name->len); + if (IS_ERR(newdentry)) { + ovl_whiteout(upperdir, template); + return newdentry; + } + + /* + * Whiteout just been successfully removed, parent + * i_mutex is still held, there's no way the lookup + * could return positive. + */ + WARN_ON(newdentry->d_inode); + } + + return newdentry; + +out_dput: + dput(newdentry); + return ERR_PTR(err); +} + +struct dentry *ovl_upper_create(struct dentry *upperdir, struct dentry *dentry, + struct kstat *stat, const char *link) +{ + int err; + struct dentry *newdentry; + struct inode *dir = upperdir->d_inode; + + newdentry = ovl_lookup_create(upperdir, dentry); + if (IS_ERR(newdentry)) + goto out; + + switch (stat->mode & S_IFMT) { + case S_IFREG: + err = vfs_create(dir, newdentry, stat->mode, NULL); + break; + + case S_IFDIR: + err = vfs_mkdir(dir, newdentry, stat->mode); + break; + + case S_IFCHR: + case S_IFBLK: + case S_IFIFO: + case S_IFSOCK: + err = vfs_mknod(dir, newdentry, stat->mode, stat->rdev); + break; + + case S_IFLNK: + err = vfs_symlink(dir, newdentry, link); + break; + + default: + err = -EPERM; + } + if (err) { + if (ovl_dentry_is_opaque(dentry)) + ovl_whiteout(upperdir, dentry); + dput(newdentry); + newdentry = ERR_PTR(err); + } else if (WARN_ON(!newdentry->d_inode)) { + /* + * Not quite sure if non-instantiated dentry is legal or not. + * VFS doesn't seem to care so check and warn here. + */ + dput(newdentry); + newdentry = ERR_PTR(-ENOENT); + } + +out: + return newdentry; + +} + +static int ovl_set_opaque(struct dentry *upperdentry) +{ + int err; + const struct cred *old_cred; + struct cred *override_cred; + + override_cred = prepare_creds(); + if (!override_cred) + return -ENOMEM; + + /* CAP_SYS_ADMIN for setxattr of "trusted" namespace */ + cap_raise(override_cred->cap_effective, CAP_SYS_ADMIN); + old_cred = override_creds(override_cred); + err = vfs_setxattr(upperdentry, ovl_opaque_xattr, "y", 1, 0); + revert_creds(old_cred); + put_cred(override_cred); + + return err; +} + +static int ovl_remove_opaque(struct dentry *upperdentry) +{ + int err; + const struct cred *old_cred; + struct cred *override_cred; + + override_cred = prepare_creds(); + if (!override_cred) + return -ENOMEM; + + /* CAP_SYS_ADMIN for removexattr of "trusted" namespace */ + cap_raise(override_cred->cap_effective, CAP_SYS_ADMIN); + old_cred = override_creds(override_cred); + err = vfs_removexattr(upperdentry, ovl_opaque_xattr); + revert_creds(old_cred); + put_cred(override_cred); + + return err; +} + +static int ovl_dir_getattr(struct vfsmount *mnt, struct dentry *dentry, + struct kstat *stat) +{ + int err; + enum ovl_path_type type; + struct path realpath; + + type = ovl_path_real(dentry, &realpath); + err = vfs_getattr(&realpath, stat); + if (err) + return err; + + stat->dev = dentry->d_sb->s_dev; + stat->ino = dentry->d_inode->i_ino; + + /* + * It's probably not worth it to count subdirs to get the + * correct link count. nlink=1 seems to pacify 'find' and + * other utilities. + */ + if (type == OVL_PATH_MERGE) + stat->nlink = 1; + + return 0; +} + +static int ovl_create_object(struct dentry *dentry, int mode, dev_t rdev, + const char *link) +{ + int err; + struct dentry *newdentry; + struct dentry *upperdir; + struct inode *inode; + struct kstat stat = { + .mode = mode, + .rdev = rdev, + }; + + err = -ENOMEM; + inode = ovl_new_inode(dentry->d_sb, mode, dentry->d_fsdata); + if (!inode) + goto out; + + err = ovl_copy_up(dentry->d_parent); + if (err) + goto out_iput; + + upperdir = ovl_dentry_upper(dentry->d_parent); + mutex_lock_nested(&upperdir->d_inode->i_mutex, I_MUTEX_PARENT); + + newdentry = ovl_upper_create(upperdir, dentry, &stat, link); + err = PTR_ERR(newdentry); + if (IS_ERR(newdentry)) + goto out_unlock; + + ovl_dentry_version_inc(dentry->d_parent); + if (ovl_dentry_is_opaque(dentry) && S_ISDIR(mode)) { + err = ovl_set_opaque(newdentry); + if (err) { + vfs_rmdir(upperdir->d_inode, newdentry); + ovl_whiteout(upperdir, dentry); + goto out_dput; + } + } + ovl_dentry_update(dentry, newdentry); + ovl_copyattr(newdentry->d_inode, inode); + d_instantiate(dentry, inode); + inode = NULL; + newdentry = NULL; + err = 0; + +out_dput: + dput(newdentry); +out_unlock: + mutex_unlock(&upperdir->d_inode->i_mutex); +out_iput: + iput(inode); +out: + return err; +} + +static int ovl_create(struct inode *dir, struct dentry *dentry, umode_t mode, + bool excl) +{ + return ovl_create_object(dentry, (mode & 07777) | S_IFREG, 0, NULL); +} + +static int ovl_mkdir(struct inode *dir, struct dentry *dentry, umode_t mode) +{ + return ovl_create_object(dentry, (mode & 07777) | S_IFDIR, 0, NULL); +} + +static int ovl_mknod(struct inode *dir, struct dentry *dentry, umode_t mode, + dev_t rdev) +{ + return ovl_create_object(dentry, mode, rdev, NULL); +} + +static int ovl_symlink(struct inode *dir, struct dentry *dentry, + const char *link) +{ + return ovl_create_object(dentry, S_IFLNK, 0, link); +} + +static int ovl_do_remove(struct dentry *dentry, bool is_dir) +{ + int err; + enum ovl_path_type type; + struct path realpath; + struct dentry *upperdir; + + err = ovl_copy_up(dentry->d_parent); + if (err) + return err; + + upperdir = ovl_dentry_upper(dentry->d_parent); + mutex_lock_nested(&upperdir->d_inode->i_mutex, I_MUTEX_PARENT); + type = ovl_path_real(dentry, &realpath); + if (type != OVL_PATH_LOWER) { + err = -ESTALE; + if (realpath.dentry->d_parent != upperdir) + goto out_d_drop; + + /* FIXME: create whiteout up front and rename to target */ + + if (is_dir) + err = vfs_rmdir(upperdir->d_inode, realpath.dentry); + else + err = vfs_unlink(upperdir->d_inode, realpath.dentry); + if (err) + goto out_d_drop; + + ovl_dentry_version_inc(dentry->d_parent); + } + + if (type != OVL_PATH_UPPER || ovl_dentry_is_opaque(dentry)) + err = ovl_whiteout(upperdir, dentry); + + /* + * Keeping this dentry hashed would mean having to release + * upperpath/lowerpath, which could only be done if we are the + * sole user of this dentry. Too tricky... Just unhash for + * now. + */ +out_d_drop: + d_drop(dentry); + mutex_unlock(&upperdir->d_inode->i_mutex); + + return err; +} + +static int ovl_unlink(struct inode *dir, struct dentry *dentry) +{ + return ovl_do_remove(dentry, false); +} + + +static int ovl_rmdir(struct inode *dir, struct dentry *dentry) +{ + int err; + enum ovl_path_type type; + + type = ovl_path_type(dentry); + if (type != OVL_PATH_UPPER) { + err = ovl_check_empty_and_clear(dentry, type); + if (err) + return err; + } + + return ovl_do_remove(dentry, true); +} + +static int ovl_link(struct dentry *old, struct inode *newdir, + struct dentry *new) +{ + int err; + struct dentry *olddentry; + struct dentry *newdentry; + struct dentry *upperdir; + struct inode *newinode; + + err = ovl_copy_up(old); + if (err) + goto out; + + err = ovl_copy_up(new->d_parent); + if (err) + goto out; + + upperdir = ovl_dentry_upper(new->d_parent); + mutex_lock_nested(&upperdir->d_inode->i_mutex, I_MUTEX_PARENT); + newdentry = ovl_lookup_create(upperdir, new); + err = PTR_ERR(newdentry); + if (IS_ERR(newdentry)) + goto out_unlock; + + olddentry = ovl_dentry_upper(old); + err = vfs_link(olddentry, upperdir->d_inode, newdentry); + if (!err) { + if (WARN_ON(!newdentry->d_inode)) { + dput(newdentry); + err = -ENOENT; + goto out_unlock; + } + newinode = ovl_new_inode(old->d_sb, newdentry->d_inode->i_mode, + new->d_fsdata); + if (!newinode) { + err = -ENOMEM; + goto link_fail; + } + ovl_copyattr(upperdir->d_inode, newinode); + + ovl_dentry_version_inc(new->d_parent); + ovl_dentry_update(new, newdentry); + + d_instantiate(new, newinode); + } else { +link_fail: + if (ovl_dentry_is_opaque(new)) + ovl_whiteout(upperdir, new); + dput(newdentry); + } +out_unlock: + mutex_unlock(&upperdir->d_inode->i_mutex); +out: + return err; +} + +static int ovl_rename(struct inode *olddir, struct dentry *old, + struct inode *newdir, struct dentry *new) +{ + int err; + enum ovl_path_type old_type; + enum ovl_path_type new_type; + struct dentry *old_upperdir; + struct dentry *new_upperdir; + struct dentry *olddentry; + struct dentry *newdentry; + struct dentry *trap; + bool old_opaque; + bool new_opaque; + bool new_create = false; + bool is_dir = S_ISDIR(old->d_inode->i_mode); + + /* Don't copy up directory trees */ + old_type = ovl_path_type(old); + if (old_type != OVL_PATH_UPPER && is_dir) + return -EXDEV; + + if (new->d_inode) { + new_type = ovl_path_type(new); + + if (new_type == OVL_PATH_LOWER && old_type == OVL_PATH_LOWER) { + if (ovl_dentry_lower(old)->d_inode == + ovl_dentry_lower(new)->d_inode) + return 0; + } + if (new_type != OVL_PATH_LOWER && old_type != OVL_PATH_LOWER) { + if (ovl_dentry_upper(old)->d_inode == + ovl_dentry_upper(new)->d_inode) + return 0; + } + + if (new_type != OVL_PATH_UPPER && + S_ISDIR(new->d_inode->i_mode)) { + err = ovl_check_empty_and_clear(new, new_type); + if (err) + return err; + } + } else { + new_type = OVL_PATH_UPPER; + } + + err = ovl_copy_up(old); + if (err) + return err; + + err = ovl_copy_up(new->d_parent); + if (err) + return err; + + old_upperdir = ovl_dentry_upper(old->d_parent); + new_upperdir = ovl_dentry_upper(new->d_parent); + + trap = lock_rename(new_upperdir, old_upperdir); + + olddentry = ovl_dentry_upper(old); + newdentry = ovl_dentry_upper(new); + if (newdentry) { + dget(newdentry); + } else { + new_create = true; + newdentry = ovl_lookup_create(new_upperdir, new); + err = PTR_ERR(newdentry); + if (IS_ERR(newdentry)) + goto out_unlock; + } + + err = -ESTALE; + if (olddentry->d_parent != old_upperdir) + goto out_dput; + if (newdentry->d_parent != new_upperdir) + goto out_dput; + if (olddentry == trap) + goto out_dput; + if (newdentry == trap) + goto out_dput; + + old_opaque = ovl_dentry_is_opaque(old); + new_opaque = ovl_dentry_is_opaque(new) || new_type != OVL_PATH_UPPER; + + if (is_dir && !old_opaque && new_opaque) { + err = ovl_set_opaque(olddentry); + if (err) + goto out_dput; + } + + err = vfs_rename(old_upperdir->d_inode, olddentry, + new_upperdir->d_inode, newdentry); + + if (err) { + if (new_create && ovl_dentry_is_opaque(new)) + ovl_whiteout(new_upperdir, new); + if (is_dir && !old_opaque && new_opaque) + ovl_remove_opaque(olddentry); + goto out_dput; + } + + if (old_type != OVL_PATH_UPPER || old_opaque) + err = ovl_whiteout(old_upperdir, old); + if (is_dir && old_opaque && !new_opaque) + ovl_remove_opaque(olddentry); + + if (old_opaque != new_opaque) + ovl_dentry_set_opaque(old, new_opaque); + + ovl_dentry_version_inc(old->d_parent); + ovl_dentry_version_inc(new->d_parent); + +out_dput: + dput(newdentry); +out_unlock: + unlock_rename(new_upperdir, old_upperdir); + return err; +} + +const struct inode_operations ovl_dir_inode_operations = { + .lookup = ovl_lookup, + .mkdir = ovl_mkdir, + .symlink = ovl_symlink, + .unlink = ovl_unlink, + .rmdir = ovl_rmdir, + .rename = ovl_rename, + .link = ovl_link, + .setattr = ovl_setattr, + .create = ovl_create, + .mknod = ovl_mknod, + .permission = ovl_permission, + .getattr = ovl_dir_getattr, + .setxattr = ovl_setxattr, + .getxattr = ovl_getxattr, + .listxattr = ovl_listxattr, + .removexattr = ovl_removexattr, +}; --- linux-3.11.0.orig/fs/overlayfs/copy_up.c +++ linux-3.11.0/fs/overlayfs/copy_up.c @@ -0,0 +1,388 @@ +/* + * + * Copyright (C) 2011 Novell Inc. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 as published by + * the Free Software Foundation. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include "overlayfs.h" + +#define OVL_COPY_UP_CHUNK_SIZE (1 << 20) + +static int ovl_copy_up_xattr(struct dentry *old, struct dentry *new) +{ + ssize_t list_size, size; + char *buf, *name, *value; + int error; + + if (!old->d_inode->i_op->getxattr || + !new->d_inode->i_op->getxattr) + return 0; + + list_size = vfs_listxattr(old, NULL, 0); + if (list_size <= 0) { + if (list_size == -EOPNOTSUPP) + return 0; + return list_size; + } + + buf = kzalloc(list_size, GFP_KERNEL); + if (!buf) + return -ENOMEM; + + error = -ENOMEM; + value = kmalloc(XATTR_SIZE_MAX, GFP_KERNEL); + if (!value) + goto out; + + list_size = vfs_listxattr(old, buf, list_size); + if (list_size <= 0) { + error = list_size; + goto out_free_value; + } + + for (name = buf; name < (buf + list_size); name += strlen(name) + 1) { + size = vfs_getxattr(old, name, value, XATTR_SIZE_MAX); + if (size <= 0) { + error = size; + goto out_free_value; + } + error = vfs_setxattr(new, name, value, size, 0); + if (error) + goto out_free_value; + } + +out_free_value: + kfree(value); +out: + kfree(buf); + return error; +} + +static int ovl_copy_up_data(struct path *old, struct path *new, loff_t len) +{ + struct file *old_file; + struct file *new_file; + loff_t old_pos = 0; + loff_t new_pos = 0; + int error = 0; + + if (len == 0) + return 0; + + old_file = ovl_path_open(old, O_RDONLY); + if (IS_ERR(old_file)) + return PTR_ERR(old_file); + + new_file = ovl_path_open(new, O_WRONLY); + if (IS_ERR(new_file)) { + error = PTR_ERR(new_file); + goto out_fput; + } + + /* FIXME: copy up sparse files efficiently */ + while (len) { + size_t this_len = OVL_COPY_UP_CHUNK_SIZE; + long bytes; + + if (len < this_len) + this_len = len; + + if (signal_pending_state(TASK_KILLABLE, current)) { + error = -EINTR; + break; + } + + bytes = do_splice_direct(old_file, &old_pos, + new_file, &new_pos, + this_len, SPLICE_F_MOVE); + if (bytes <= 0) { + error = bytes; + break; + } + WARN_ON(old_pos != new_pos); + + len -= bytes; + } + + fput(new_file); +out_fput: + fput(old_file); + return error; +} + +static char *ovl_read_symlink(struct dentry *realdentry) +{ + int res; + char *buf; + struct inode *inode = realdentry->d_inode; + mm_segment_t old_fs; + + res = -EINVAL; + if (!inode->i_op->readlink) + goto err; + + res = -ENOMEM; + buf = (char *) __get_free_page(GFP_KERNEL); + if (!buf) + goto err; + + old_fs = get_fs(); + set_fs(get_ds()); + /* The cast to a user pointer is valid due to the set_fs() */ + res = inode->i_op->readlink(realdentry, + (char __user *)buf, PAGE_SIZE - 1); + set_fs(old_fs); + if (res < 0) { + free_page((unsigned long) buf); + goto err; + } + buf[res] = '\0'; + + return buf; + +err: + return ERR_PTR(res); +} + +static int ovl_set_timestamps(struct dentry *upperdentry, struct kstat *stat) +{ + struct iattr attr = { + .ia_valid = + ATTR_ATIME | ATTR_MTIME | ATTR_ATIME_SET | ATTR_MTIME_SET, + .ia_atime = stat->atime, + .ia_mtime = stat->mtime, + }; + + return notify_change(upperdentry, &attr); +} + +static int ovl_set_mode(struct dentry *upperdentry, umode_t mode) +{ + struct iattr attr = { + .ia_valid = ATTR_MODE, + .ia_mode = mode, + }; + + return notify_change(upperdentry, &attr); +} + +static int ovl_copy_up_locked(struct dentry *upperdir, struct dentry *dentry, + struct path *lowerpath, struct kstat *stat, + const char *link) +{ + int err; + struct path newpath; + umode_t mode = stat->mode; + + /* Can't properly set mode on creation because of the umask */ + stat->mode &= S_IFMT; + + ovl_path_upper(dentry, &newpath); + WARN_ON(newpath.dentry); + newpath.dentry = ovl_upper_create(upperdir, dentry, stat, link); + if (IS_ERR(newpath.dentry)) + return PTR_ERR(newpath.dentry); + + if (S_ISREG(stat->mode)) { + err = ovl_copy_up_data(lowerpath, &newpath, stat->size); + if (err) + goto err_remove; + } + + err = ovl_copy_up_xattr(lowerpath->dentry, newpath.dentry); + if (err) + goto err_remove; + + mutex_lock(&newpath.dentry->d_inode->i_mutex); + if (!S_ISLNK(stat->mode)) + err = ovl_set_mode(newpath.dentry, mode); + if (!err) + err = ovl_set_timestamps(newpath.dentry, stat); + mutex_unlock(&newpath.dentry->d_inode->i_mutex); + if (err) + goto err_remove; + + ovl_dentry_update(dentry, newpath.dentry); + + /* + * Easiest way to get rid of the lower dentry reference is to + * drop this dentry. This is neither needed nor possible for + * directories. + */ + if (!S_ISDIR(stat->mode)) + d_drop(dentry); + + return 0; + +err_remove: + if (S_ISDIR(stat->mode)) + vfs_rmdir(upperdir->d_inode, newpath.dentry); + else + vfs_unlink(upperdir->d_inode, newpath.dentry); + + dput(newpath.dentry); + + return err; +} + +/* + * Copy up a single dentry + * + * Directory renames only allowed on "pure upper" (already created on + * upper filesystem, never copied up). Directories which are on lower or + * are merged may not be renamed. For these -EXDEV is returned and + * userspace has to deal with it. This means, when copying up a + * directory we can rely on it and ancestors being stable. + * + * Non-directory renames start with copy up of source if necessary. The + * actual rename will only proceed once the copy up was successful. Copy + * up uses upper parent i_mutex for exclusion. Since rename can change + * d_parent it is possible that the copy up will lock the old parent. At + * that point the file will have already been copied up anyway. + */ +static int ovl_copy_up_one(struct dentry *parent, struct dentry *dentry, + struct path *lowerpath, struct kstat *stat) +{ + int err; + struct kstat pstat; + struct path parentpath; + struct dentry *upperdir; + const struct cred *old_cred; + struct cred *override_cred; + char *link = NULL; + + ovl_path_upper(parent, &parentpath); + upperdir = parentpath.dentry; + + err = vfs_getattr(&parentpath, &pstat); + if (err) + return err; + + if (S_ISLNK(stat->mode)) { + link = ovl_read_symlink(lowerpath->dentry); + if (IS_ERR(link)) + return PTR_ERR(link); + } + + err = -ENOMEM; + override_cred = prepare_creds(); + if (!override_cred) + goto out_free_link; + + override_cred->fsuid = stat->uid; + override_cred->fsgid = stat->gid; + /* + * CAP_SYS_ADMIN for copying up extended attributes + * CAP_DAC_OVERRIDE for create + * CAP_FOWNER for chmod, timestamp update + * CAP_FSETID for chmod + * CAP_MKNOD for mknod + */ + cap_raise(override_cred->cap_effective, CAP_SYS_ADMIN); + cap_raise(override_cred->cap_effective, CAP_DAC_OVERRIDE); + cap_raise(override_cred->cap_effective, CAP_FOWNER); + cap_raise(override_cred->cap_effective, CAP_FSETID); + cap_raise(override_cred->cap_effective, CAP_MKNOD); + old_cred = override_creds(override_cred); + + mutex_lock_nested(&upperdir->d_inode->i_mutex, I_MUTEX_PARENT); + if (ovl_path_type(dentry) != OVL_PATH_LOWER) { + err = 0; + } else { + err = ovl_copy_up_locked(upperdir, dentry, lowerpath, + stat, link); + if (!err) { + /* Restore timestamps on parent (best effort) */ + ovl_set_timestamps(upperdir, &pstat); + } + } + + mutex_unlock(&upperdir->d_inode->i_mutex); + + revert_creds(old_cred); + put_cred(override_cred); + +out_free_link: + if (link) + free_page((unsigned long) link); + + return err; +} + +int ovl_copy_up(struct dentry *dentry) +{ + int err; + + err = 0; + while (!err) { + struct dentry *next; + struct dentry *parent; + struct path lowerpath; + struct kstat stat; + enum ovl_path_type type = ovl_path_type(dentry); + + if (type != OVL_PATH_LOWER) + break; + + next = dget(dentry); + /* find the topmost dentry not yet copied up */ + for (;;) { + parent = dget_parent(next); + + type = ovl_path_type(parent); + if (type != OVL_PATH_LOWER) + break; + + dput(next); + next = parent; + } + + ovl_path_lower(next, &lowerpath); + err = vfs_getattr(&lowerpath, &stat); + if (!err) + err = ovl_copy_up_one(parent, next, &lowerpath, &stat); + + dput(parent); + dput(next); + } + + return err; +} + +/* Optimize by not copying up the file first and truncating later */ +int ovl_copy_up_truncate(struct dentry *dentry, loff_t size) +{ + int err; + struct kstat stat; + struct path lowerpath; + struct dentry *parent = dget_parent(dentry); + + err = ovl_copy_up(parent); + if (err) + goto out_dput_parent; + + ovl_path_lower(dentry, &lowerpath); + err = vfs_getattr(&lowerpath, &stat); + if (err) + goto out_dput_parent; + + if (size < stat.size) + stat.size = size; + + err = ovl_copy_up_one(parent, dentry, &lowerpath, &stat); + +out_dput_parent: + dput(parent); + return err; +} --- linux-3.11.0.orig/fs/overlayfs/overlayfs.h +++ linux-3.11.0/fs/overlayfs/overlayfs.h @@ -0,0 +1,70 @@ +/* + * + * Copyright (C) 2011 Novell Inc. + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 as published by + * the Free Software Foundation. + */ + +struct ovl_entry; + +enum ovl_path_type { + OVL_PATH_UPPER, + OVL_PATH_MERGE, + OVL_PATH_LOWER, +}; + +extern const char *ovl_opaque_xattr; +extern const char *ovl_whiteout_xattr; +extern const struct dentry_operations ovl_dentry_operations; + +enum ovl_path_type ovl_path_type(struct dentry *dentry); +u64 ovl_dentry_version_get(struct dentry *dentry); +void ovl_dentry_version_inc(struct dentry *dentry); +void ovl_path_upper(struct dentry *dentry, struct path *path); +void ovl_path_lower(struct dentry *dentry, struct path *path); +enum ovl_path_type ovl_path_real(struct dentry *dentry, struct path *path); +struct dentry *ovl_dentry_upper(struct dentry *dentry); +struct dentry *ovl_dentry_lower(struct dentry *dentry); +struct dentry *ovl_dentry_real(struct dentry *dentry); +struct dentry *ovl_entry_real(struct ovl_entry *oe, bool *is_upper); +bool ovl_dentry_is_opaque(struct dentry *dentry); +void ovl_dentry_set_opaque(struct dentry *dentry, bool opaque); +bool ovl_is_whiteout(struct dentry *dentry); +void ovl_dentry_update(struct dentry *dentry, struct dentry *upperdentry); +struct dentry *ovl_lookup(struct inode *dir, struct dentry *dentry, + unsigned int flags); +struct file *ovl_path_open(struct path *path, int flags); + +struct dentry *ovl_upper_create(struct dentry *upperdir, struct dentry *dentry, + struct kstat *stat, const char *link); + +/* readdir.c */ +extern const struct file_operations ovl_dir_operations; +int ovl_check_empty_and_clear(struct dentry *dentry, enum ovl_path_type type); + +/* inode.c */ +int ovl_setattr(struct dentry *dentry, struct iattr *attr); +int ovl_permission(struct inode *inode, int mask); +int ovl_setxattr(struct dentry *dentry, const char *name, + const void *value, size_t size, int flags); +ssize_t ovl_getxattr(struct dentry *dentry, const char *name, + void *value, size_t size); +ssize_t ovl_listxattr(struct dentry *dentry, char *list, size_t size); +int ovl_removexattr(struct dentry *dentry, const char *name); + +struct inode *ovl_new_inode(struct super_block *sb, umode_t mode, + struct ovl_entry *oe); +static inline void ovl_copyattr(struct inode *from, struct inode *to) +{ + to->i_uid = from->i_uid; + to->i_gid = from->i_gid; +} + +/* dir.c */ +extern const struct inode_operations ovl_dir_inode_operations; + +/* copy_up.c */ +int ovl_copy_up(struct dentry *dentry); +int ovl_copy_up_truncate(struct dentry *dentry, loff_t size); --- linux-3.11.0.orig/fs/udf/super.c +++ linux-3.11.0/fs/udf/super.c @@ -630,6 +630,12 @@ struct udf_sb_info *sbi = UDF_SB(sb); int error = 0; + if (sbi->s_lvid_bh) { + int write_rev = le16_to_cpu(udf_sb_lvidiu(sbi)->minUDFWriteRev); + if (write_rev > UDF_MAX_WRITE_VERSION && !(*flags & MS_RDONLY)) + return -EACCES; + } + uopt.flags = sbi->s_flags; uopt.uid = sbi->s_uid; uopt.gid = sbi->s_gid; @@ -649,12 +655,6 @@ sbi->s_dmode = uopt.dmode; write_unlock(&sbi->s_cred_lock); - if (sbi->s_lvid_bh) { - int write_rev = le16_to_cpu(udf_sb_lvidiu(sbi)->minUDFWriteRev); - if (write_rev > UDF_MAX_WRITE_VERSION) - *flags |= MS_RDONLY; - } - if ((*flags & MS_RDONLY) == (sb->s_flags & MS_RDONLY)) goto out_unlock; @@ -843,27 +843,38 @@ return 1; } +/* + * Load primary Volume Descriptor Sequence + * + * Return <0 on error, 0 on success. -EAGAIN is special meaning next sequence + * should be tried. + */ static int udf_load_pvoldesc(struct super_block *sb, sector_t block) { struct primaryVolDesc *pvoldesc; struct ustr *instr, *outstr; struct buffer_head *bh; uint16_t ident; - int ret = 1; + int ret = -ENOMEM; instr = kmalloc(sizeof(struct ustr), GFP_NOFS); if (!instr) - return 1; + return -ENOMEM; outstr = kmalloc(sizeof(struct ustr), GFP_NOFS); if (!outstr) goto out1; bh = udf_read_tagged(sb, block, block, &ident); - if (!bh) + if (!bh) { + ret = -EAGAIN; goto out2; + } - BUG_ON(ident != TAG_IDENT_PVD); + if (ident != TAG_IDENT_PVD) { + ret = -EIO; + goto out_bh; + } pvoldesc = (struct primaryVolDesc *)bh->b_data; @@ -889,8 +900,9 @@ if (udf_CS0toUTF8(outstr, instr)) udf_debug("volSetIdent[] = '%s'\n", outstr->u_name); - brelse(bh); ret = 0; +out_bh: + brelse(bh); out2: kfree(outstr); out1: @@ -947,7 +959,7 @@ if (mdata->s_mirror_fe == NULL) { udf_err(sb, "Both metadata and mirror metadata inode efe can not found\n"); - goto error_exit; + return -EIO; } } @@ -964,23 +976,18 @@ addr.logicalBlockNum, addr.partitionReferenceNum); mdata->s_bitmap_fe = udf_iget(sb, &addr); - if (mdata->s_bitmap_fe == NULL) { if (sb->s_flags & MS_RDONLY) udf_warn(sb, "bitmap inode efe not found but it's ok since the disc is mounted read-only\n"); else { udf_err(sb, "bitmap inode efe not found and attempted read-write mount\n"); - goto error_exit; + return -EIO; } } } udf_debug("udf_load_metadata_files Ok\n"); - return 0; - -error_exit: - return 1; } static void udf_load_fileset(struct super_block *sb, struct buffer_head *bh, @@ -1069,7 +1076,7 @@ if (!map->s_uspace.s_table) { udf_debug("cannot load unallocSpaceTable (part %d)\n", p_index); - return 1; + return -EIO; } map->s_partition_flags |= UDF_PART_FLAG_UNALLOC_TABLE; udf_debug("unallocSpaceTable (part %d) @ %ld\n", @@ -1079,7 +1086,7 @@ if (phd->unallocSpaceBitmap.extLength) { struct udf_bitmap *bitmap = udf_sb_alloc_bitmap(sb, p_index); if (!bitmap) - return 1; + return -ENOMEM; map->s_uspace.s_bitmap = bitmap; bitmap->s_extPosition = le32_to_cpu( phd->unallocSpaceBitmap.extPosition); @@ -1102,7 +1109,7 @@ if (!map->s_fspace.s_table) { udf_debug("cannot load freedSpaceTable (part %d)\n", p_index); - return 1; + return -EIO; } map->s_partition_flags |= UDF_PART_FLAG_FREED_TABLE; @@ -1113,7 +1120,7 @@ if (phd->freedSpaceBitmap.extLength) { struct udf_bitmap *bitmap = udf_sb_alloc_bitmap(sb, p_index); if (!bitmap) - return 1; + return -ENOMEM; map->s_fspace.s_bitmap = bitmap; bitmap->s_extPosition = le32_to_cpu( phd->freedSpaceBitmap.extPosition); @@ -1165,7 +1172,7 @@ udf_find_vat_block(sb, p_index, type1_index, blocks - 1); } if (!sbi->s_vat_inode) - return 1; + return -EIO; if (map->s_partition_type == UDF_VIRTUAL_MAP15) { map->s_type_specific.s_virtual.s_start_offset = 0; @@ -1177,7 +1184,7 @@ pos = udf_block_map(sbi->s_vat_inode, 0); bh = sb_bread(sb, pos); if (!bh) - return 1; + return -EIO; vat20 = (struct virtualAllocationTable20 *)bh->b_data; } else { vat20 = (struct virtualAllocationTable20 *) @@ -1195,6 +1202,12 @@ return 0; } +/* + * Load partition descriptor block + * + * Returns <0 on error, 0 on success, -EAGAIN is special - try next descriptor + * sequence. + */ static int udf_load_partdesc(struct super_block *sb, sector_t block) { struct buffer_head *bh; @@ -1204,13 +1217,15 @@ int i, type1_idx; uint16_t partitionNumber; uint16_t ident; - int ret = 0; + int ret; bh = udf_read_tagged(sb, block, block, &ident); if (!bh) - return 1; - if (ident != TAG_IDENT_PD) + return -EAGAIN; + if (ident != TAG_IDENT_PD) { + ret = 0; goto out_bh; + } p = (struct partitionDesc *)bh->b_data; partitionNumber = le16_to_cpu(p->partitionNumber); @@ -1229,10 +1244,13 @@ if (i >= sbi->s_partitions) { udf_debug("Partition (%d) not found in partition map\n", partitionNumber); + ret = 0; goto out_bh; } ret = udf_fill_partdesc_info(sb, p, i); + if (ret < 0) + goto out_bh; /* * Now rescan for VIRTUAL or METADATA partitions when SPARABLE and @@ -1249,32 +1267,37 @@ break; } - if (i >= sbi->s_partitions) + if (i >= sbi->s_partitions) { + ret = 0; goto out_bh; + } ret = udf_fill_partdesc_info(sb, p, i); - if (ret) + if (ret < 0) goto out_bh; if (map->s_partition_type == UDF_METADATA_MAP25) { ret = udf_load_metadata_files(sb, i); - if (ret) { + if (ret < 0) { udf_err(sb, "error loading MetaData partition map %d\n", i); goto out_bh; } } else { - ret = udf_load_vat(sb, i, type1_idx); - if (ret) - goto out_bh; /* - * Mark filesystem read-only if we have a partition with - * virtual map since we don't handle writing to it (we - * overwrite blocks instead of relocating them). + * If we have a partition with virtual map, we don't handle + * writing to it (we overwrite blocks instead of relocating + * them). */ - sb->s_flags |= MS_RDONLY; - pr_notice("Filesystem marked read-only because writing to pseudooverwrite partition is not implemented\n"); + if (!(sb->s_flags & MS_RDONLY)) { + ret = -EACCES; + goto out_bh; + } + ret = udf_load_vat(sb, i, type1_idx); + if (ret < 0) + goto out_bh; } + ret = 0; out_bh: /* In case loading failed, we handle cleanup in udf_fill_super */ brelse(bh); @@ -1340,11 +1363,11 @@ uint16_t ident; struct buffer_head *bh; unsigned int table_len; - int ret = 0; + int ret; bh = udf_read_tagged(sb, block, block, &ident); if (!bh) - return 1; + return -EAGAIN; BUG_ON(ident != TAG_IDENT_LVD); lvd = (struct logicalVolDesc *)bh->b_data; table_len = le32_to_cpu(lvd->mapTableLength); @@ -1352,7 +1375,7 @@ udf_err(sb, "error loading logical volume descriptor: " "Partition table too long (%u > %lu)\n", table_len, sb->s_blocksize - sizeof(*lvd)); - ret = 1; + ret = -EIO; goto out_bh; } @@ -1396,11 +1419,10 @@ } else if (!strncmp(upm2->partIdent.ident, UDF_ID_SPARABLE, strlen(UDF_ID_SPARABLE))) { - if (udf_load_sparable_map(sb, map, - (struct sparablePartitionMap *)gpm) < 0) { - ret = 1; + ret = udf_load_sparable_map(sb, map, + (struct sparablePartitionMap *)gpm); + if (ret < 0) goto out_bh; - } } else if (!strncmp(upm2->partIdent.ident, UDF_ID_METADATA, strlen(UDF_ID_METADATA))) { @@ -1465,7 +1487,7 @@ } if (lvd->integritySeqExt.extLength) udf_load_logicalvolint(sb, leea_to_cpu(lvd->integritySeqExt)); - + ret = 0; out_bh: brelse(bh); return ret; @@ -1503,22 +1525,18 @@ } /* - * udf_process_sequence - * - * PURPOSE - * Process a main/reserve volume descriptor sequence. + * Process a main/reserve volume descriptor sequence. + * @block First block of first extent of the sequence. + * @lastblock Lastblock of first extent of the sequence. + * @fileset There we store extent containing root fileset * - * PRE-CONDITIONS - * sb Pointer to _locked_ superblock. - * block First block of first extent of the sequence. - * lastblock Lastblock of first extent of the sequence. - * - * HISTORY - * July 1, 1997 - Andrew E. Mileski - * Written, tested, and released. + * Returns <0 on error, 0 on success. -EAGAIN is special - try next descriptor + * sequence */ -static noinline int udf_process_sequence(struct super_block *sb, long block, - long lastblock, struct kernel_lb_addr *fileset) +static noinline int udf_process_sequence( + struct super_block *sb, + sector_t block, sector_t lastblock, + struct kernel_lb_addr *fileset) { struct buffer_head *bh = NULL; struct udf_vds_record vds[VDS_POS_LENGTH]; @@ -1529,6 +1547,7 @@ uint32_t vdsn; uint16_t ident; long next_s = 0, next_e = 0; + int ret; memset(vds, 0, sizeof(struct udf_vds_record) * VDS_POS_LENGTH); @@ -1543,7 +1562,7 @@ udf_err(sb, "Block %llu of volume descriptor sequence is corrupted or we could not read it\n", (unsigned long long)block); - return 1; + return -EAGAIN; } /* Process each descriptor (ISO 13346 3/8.3-8.4) */ @@ -1616,14 +1635,19 @@ */ if (!vds[VDS_POS_PRIMARY_VOL_DESC].block) { udf_err(sb, "Primary Volume Descriptor not found!\n"); - return 1; + return -EAGAIN; + } + ret = udf_load_pvoldesc(sb, vds[VDS_POS_PRIMARY_VOL_DESC].block); + if (ret < 0) + return ret; + + if (vds[VDS_POS_LOGICAL_VOL_DESC].block) { + ret = udf_load_logicalvol(sb, + vds[VDS_POS_LOGICAL_VOL_DESC].block, + fileset); + if (ret < 0) + return ret; } - if (udf_load_pvoldesc(sb, vds[VDS_POS_PRIMARY_VOL_DESC].block)) - return 1; - - if (vds[VDS_POS_LOGICAL_VOL_DESC].block && udf_load_logicalvol(sb, - vds[VDS_POS_LOGICAL_VOL_DESC].block, fileset)) - return 1; if (vds[VDS_POS_PARTITION_DESC].block) { /* @@ -1632,19 +1656,27 @@ */ for (block = vds[VDS_POS_PARTITION_DESC].block; block < vds[VDS_POS_TERMINATING_DESC].block; - block++) - if (udf_load_partdesc(sb, block)) - return 1; + block++) { + ret = udf_load_partdesc(sb, block); + if (ret < 0) + return ret; + } } return 0; } +/* + * Load Volume Descriptor Sequence described by anchor in bh + * + * Returns <0 on error, 0 on success + */ static int udf_load_sequence(struct super_block *sb, struct buffer_head *bh, struct kernel_lb_addr *fileset) { struct anchorVolDescPtr *anchor; - long main_s, main_e, reserve_s, reserve_e; + sector_t main_s, main_e, reserve_s, reserve_e; + int ret; anchor = (struct anchorVolDescPtr *)bh->b_data; @@ -1662,18 +1694,26 @@ /* Process the main & reserve sequences */ /* responsible for finding the PartitionDesc(s) */ - if (!udf_process_sequence(sb, main_s, main_e, fileset)) - return 1; + ret = udf_process_sequence(sb, main_s, main_e, fileset); + if (ret != -EAGAIN) + return ret; udf_sb_free_partitions(sb); - if (!udf_process_sequence(sb, reserve_s, reserve_e, fileset)) - return 1; - udf_sb_free_partitions(sb); - return 0; + ret = udf_process_sequence(sb, reserve_s, reserve_e, fileset); + if (ret < 0) { + udf_sb_free_partitions(sb); + /* No sequence was OK, return -EIO */ + if (ret == -EAGAIN) + ret = -EIO; + } + return ret; } /* * Check whether there is an anchor block in the given block and * load Volume Descriptor Sequence if so. + * + * Returns <0 on error, 0 on success, -EAGAIN is special - try next anchor + * block */ static int udf_check_anchor_block(struct super_block *sb, sector_t block, struct kernel_lb_addr *fileset) @@ -1685,33 +1725,40 @@ if (UDF_QUERY_FLAG(sb, UDF_FLAG_VARCONV) && udf_fixed_to_variable(block) >= sb->s_bdev->bd_inode->i_size >> sb->s_blocksize_bits) - return 0; + return -EAGAIN; bh = udf_read_tagged(sb, block, block, &ident); if (!bh) - return 0; + return -EAGAIN; if (ident != TAG_IDENT_AVDP) { brelse(bh); - return 0; + return -EAGAIN; } ret = udf_load_sequence(sb, bh, fileset); brelse(bh); return ret; } -/* Search for an anchor volume descriptor pointer */ -static sector_t udf_scan_anchors(struct super_block *sb, sector_t lastblock, - struct kernel_lb_addr *fileset) +/* + * Search for an anchor volume descriptor pointer. + * + * Returns < 0 on error, 0 on success. -EAGAIN is special - try next set + * of anchors. + */ +static int udf_scan_anchors(struct super_block *sb, sector_t *lastblock, + struct kernel_lb_addr *fileset) { sector_t last[6]; int i; struct udf_sb_info *sbi = UDF_SB(sb); int last_count = 0; + int ret; /* First try user provided anchor */ if (sbi->s_anchor) { - if (udf_check_anchor_block(sb, sbi->s_anchor, fileset)) - return lastblock; + ret = udf_check_anchor_block(sb, sbi->s_anchor, fileset); + if (ret != -EAGAIN) + return ret; } /* * according to spec, anchor is in either: @@ -1720,39 +1767,46 @@ * lastblock * however, if the disc isn't closed, it could be 512. */ - if (udf_check_anchor_block(sb, sbi->s_session + 256, fileset)) - return lastblock; + ret = udf_check_anchor_block(sb, sbi->s_session + 256, fileset); + if (ret != -EAGAIN) + return ret; /* * The trouble is which block is the last one. Drives often misreport * this so we try various possibilities. */ - last[last_count++] = lastblock; - if (lastblock >= 1) - last[last_count++] = lastblock - 1; - last[last_count++] = lastblock + 1; - if (lastblock >= 2) - last[last_count++] = lastblock - 2; - if (lastblock >= 150) - last[last_count++] = lastblock - 150; - if (lastblock >= 152) - last[last_count++] = lastblock - 152; + last[last_count++] = *lastblock; + if (*lastblock >= 1) + last[last_count++] = *lastblock - 1; + last[last_count++] = *lastblock + 1; + if (*lastblock >= 2) + last[last_count++] = *lastblock - 2; + if (*lastblock >= 150) + last[last_count++] = *lastblock - 150; + if (*lastblock >= 152) + last[last_count++] = *lastblock - 152; for (i = 0; i < last_count; i++) { if (last[i] >= sb->s_bdev->bd_inode->i_size >> sb->s_blocksize_bits) continue; - if (udf_check_anchor_block(sb, last[i], fileset)) - return last[i]; + ret = udf_check_anchor_block(sb, last[i], fileset); + if (ret != -EAGAIN) { + if (!ret) + *lastblock = last[i]; + return ret; + } if (last[i] < 256) continue; - if (udf_check_anchor_block(sb, last[i] - 256, fileset)) - return last[i]; + ret = udf_check_anchor_block(sb, last[i] - 256, fileset); + if (ret != -EAGAIN) { + if (!ret) + *lastblock = last[i]; + return ret; + } } /* Finally try block 512 in case media is open */ - if (udf_check_anchor_block(sb, sbi->s_session + 512, fileset)) - return last[0]; - return 0; + return udf_check_anchor_block(sb, sbi->s_session + 512, fileset); } /* @@ -1760,54 +1814,59 @@ * area specified by it. The function expects sbi->s_lastblock to be the last * block on the media. * - * Return 1 if ok, 0 if not found. - * + * Return <0 on error, 0 if anchor found. -EAGAIN is special meaning anchor + * was not found. */ static int udf_find_anchor(struct super_block *sb, struct kernel_lb_addr *fileset) { - sector_t lastblock; struct udf_sb_info *sbi = UDF_SB(sb); + sector_t lastblock = sbi->s_last_block; + int ret; - lastblock = udf_scan_anchors(sb, sbi->s_last_block, fileset); - if (lastblock) + ret = udf_scan_anchors(sb, &lastblock, fileset); + if (ret != -EAGAIN) goto out; /* No anchor found? Try VARCONV conversion of block numbers */ UDF_SET_FLAG(sb, UDF_FLAG_VARCONV); + lastblock = udf_variable_to_fixed(sbi->s_last_block); /* Firstly, we try to not convert number of the last block */ - lastblock = udf_scan_anchors(sb, - udf_variable_to_fixed(sbi->s_last_block), - fileset); - if (lastblock) + ret = udf_scan_anchors(sb, &lastblock, fileset); + if (ret != -EAGAIN) goto out; + lastblock = sbi->s_last_block; /* Secondly, we try with converted number of the last block */ - lastblock = udf_scan_anchors(sb, sbi->s_last_block, fileset); - if (!lastblock) { + ret = udf_scan_anchors(sb, &lastblock, fileset); + if (ret < 0) { /* VARCONV didn't help. Clear it. */ UDF_CLEAR_FLAG(sb, UDF_FLAG_VARCONV); - return 0; } out: - sbi->s_last_block = lastblock; - return 1; + if (ret == 0) + sbi->s_last_block = lastblock; + return ret; } /* * Check Volume Structure Descriptor, find Anchor block and load Volume - * Descriptor Sequence + * Descriptor Sequence. + * + * Returns < 0 on error, 0 on success. -EAGAIN is special meaning anchor + * block was not found. */ static int udf_load_vrs(struct super_block *sb, struct udf_options *uopt, int silent, struct kernel_lb_addr *fileset) { struct udf_sb_info *sbi = UDF_SB(sb); loff_t nsr_off; + int ret; if (!sb_set_blocksize(sb, uopt->blocksize)) { if (!silent) udf_warn(sb, "Bad block size\n"); - return 0; + return -EINVAL; } sbi->s_last_block = uopt->lastblock; if (!uopt->novrs) { @@ -1828,12 +1887,13 @@ /* Look for anchor block and load Volume Descriptor Sequence */ sbi->s_anchor = uopt->anchor; - if (!udf_find_anchor(sb, fileset)) { - if (!silent) + ret = udf_find_anchor(sb, fileset); + if (ret < 0) { + if (!silent && ret == -EAGAIN) udf_warn(sb, "No anchor found\n"); - return 0; + return ret; } - return 1; + return 0; } static void udf_open_lvid(struct super_block *sb) @@ -1939,7 +1999,7 @@ static int udf_fill_super(struct super_block *sb, void *options, int silent) { - int ret; + int ret = -EINVAL; struct inode *inode = NULL; struct udf_options uopt; struct kernel_lb_addr rootdir, fileset; @@ -2011,7 +2071,7 @@ } else { uopt.blocksize = bdev_logical_block_size(sb->s_bdev); ret = udf_load_vrs(sb, &uopt, silent, &fileset); - if (!ret && uopt.blocksize != UDF_DEFAULT_BLOCKSIZE) { + if (ret == -EAGAIN && uopt.blocksize != UDF_DEFAULT_BLOCKSIZE) { if (!silent) pr_notice("Rescanning with blocksize %d\n", UDF_DEFAULT_BLOCKSIZE); @@ -2021,8 +2081,11 @@ ret = udf_load_vrs(sb, &uopt, silent, &fileset); } } - if (!ret) { - udf_warn(sb, "No partition found (1)\n"); + if (ret < 0) { + if (ret == -EAGAIN) { + udf_warn(sb, "No partition found (1)\n"); + ret = -EINVAL; + } goto error_out; } @@ -2040,9 +2103,13 @@ udf_err(sb, "minUDFReadRev=%x (max is %x)\n", le16_to_cpu(lvidiu->minUDFReadRev), UDF_MAX_READ_VERSION); + ret = -EINVAL; + goto error_out; + } else if (minUDFWriteRev > UDF_MAX_WRITE_VERSION && + !(sb->s_flags & MS_RDONLY)) { + ret = -EACCES; goto error_out; - } else if (minUDFWriteRev > UDF_MAX_WRITE_VERSION) - sb->s_flags |= MS_RDONLY; + } sbi->s_udfrev = minUDFWriteRev; @@ -2054,17 +2121,20 @@ if (!sbi->s_partitions) { udf_warn(sb, "No partition found (2)\n"); + ret = -EINVAL; goto error_out; } if (sbi->s_partmaps[sbi->s_partition].s_partition_flags & - UDF_PART_FLAG_READ_ONLY) { - pr_notice("Partition marked readonly; forcing readonly mount\n"); - sb->s_flags |= MS_RDONLY; + UDF_PART_FLAG_READ_ONLY && + !(sb->s_flags & MS_RDONLY)) { + ret = -EACCES; + goto error_out; } if (udf_find_fileset(sb, &fileset, &rootdir)) { udf_warn(sb, "No fileset found\n"); + ret = -EINVAL; goto error_out; } @@ -2086,6 +2156,7 @@ if (!inode) { udf_err(sb, "Error in udf_iget, block=%d, partition=%d\n", rootdir.logicalBlockNum, rootdir.partitionReferenceNum); + ret = -EIO; goto error_out; } @@ -2093,6 +2164,7 @@ sb->s_root = d_make_root(inode); if (!sb->s_root) { udf_err(sb, "Couldn't allocate root dentry\n"); + ret = -ENOMEM; goto error_out; } sb->s_maxbytes = MAX_LFS_FILESIZE; @@ -2113,7 +2185,7 @@ kfree(sbi); sb->s_fs_info = NULL; - return -EINVAL; + return ret; } void _udf_err(struct super_block *sb, const char *function, --- linux-3.11.0.orig/fs/ecryptfs/main.c +++ linux-3.11.0/fs/ecryptfs/main.c @@ -566,6 +566,13 @@ s->s_maxbytes = path.dentry->d_sb->s_maxbytes; s->s_blocksize = path.dentry->d_sb->s_blocksize; s->s_magic = ECRYPTFS_SUPER_MAGIC; + s->s_stack_depth = path.dentry->d_sb->s_stack_depth + 1; + + rc = -EINVAL; + if (s->s_stack_depth > FILESYSTEM_MAX_STACK_DEPTH) { + pr_err("eCryptfs: maximum fs stacking depth exceeded\n"); + goto out_free; + } inode = ecryptfs_get_inode(path.dentry->d_inode, s); rc = PTR_ERR(inode); --- linux-3.11.0.orig/fs/ecryptfs/crypto.c +++ linux-3.11.0/fs/ecryptfs/crypto.c @@ -408,7 +408,7 @@ struct page *page) { return ecryptfs_lower_header_size(crypt_stat) + - (page->index << PAGE_CACHE_SHIFT); + ((loff_t)page->index << PAGE_CACHE_SHIFT); } /** --- linux-3.11.0.orig/fs/ecryptfs/keystore.c +++ linux-3.11.0/fs/ecryptfs/keystore.c @@ -1149,7 +1149,7 @@ struct ecryptfs_msg_ctx *msg_ctx; struct ecryptfs_message *msg = NULL; char *auth_tok_sig; - char *payload; + char *payload = NULL; size_t payload_len = 0; int rc; @@ -1203,6 +1203,7 @@ } out: kfree(msg); + kfree(payload); return rc; } --- linux-3.11.0.orig/fs/xfs/xfs_da_btree.c +++ linux-3.11.0/fs/xfs/xfs_da_btree.c @@ -1223,6 +1223,7 @@ /* start with smaller blk num */ forward = nodehdr.forw < nodehdr.back; for (i = 0; i < 2; forward = !forward, i++) { + struct xfs_da3_icnode_hdr thdr; if (forward) blkno = nodehdr.forw; else @@ -1235,10 +1236,10 @@ return(error); node = bp->b_addr; - xfs_da3_node_hdr_from_disk(&nodehdr, node); + xfs_da3_node_hdr_from_disk(&thdr, node); xfs_trans_brelse(state->args->trans, bp); - if (count - nodehdr.count >= 0) + if (count - thdr.count >= 0) break; /* fits with at least 25% to spare */ } if (i >= 2) { --- linux-3.11.0.orig/fs/nfs/nfs4filelayoutdev.c +++ linux-3.11.0/fs/nfs/nfs4filelayoutdev.c @@ -801,34 +801,34 @@ struct nfs4_file_layout_dsaddr *dsaddr = FILELAYOUT_LSEG(lseg)->dsaddr; struct nfs4_pnfs_ds *ds = dsaddr->ds_list[ds_idx]; struct nfs4_deviceid_node *devid = FILELAYOUT_DEVID_NODE(lseg); - - if (filelayout_test_devid_unavailable(devid)) - return NULL; + struct nfs4_pnfs_ds *ret = ds; if (ds == NULL) { printk(KERN_ERR "NFS: %s: No data server for offset index %d\n", __func__, ds_idx); filelayout_mark_devid_invalid(devid); - return NULL; + goto out; } if (ds->ds_clp) - return ds; + goto out_test_devid; if (test_and_set_bit(NFS4DS_CONNECTING, &ds->ds_state) == 0) { struct nfs_server *s = NFS_SERVER(lseg->pls_layout->plh_inode); int err; err = nfs4_ds_connect(s, ds); - if (err) { + if (err) nfs4_mark_deviceid_unavailable(devid); - ds = NULL; - } nfs4_clear_ds_conn_bit(ds); } else { /* Either ds is connected, or ds is NULL */ nfs4_wait_ds_connect(ds); } - return ds; +out_test_devid: + if (filelayout_test_devid_unavailable(devid)) + ret = NULL; +out: + return ret; } module_param(dataserver_retrans, uint, 0644); --- linux-3.11.0.orig/fs/ocfs2/extent_map.c +++ linux-3.11.0/fs/ocfs2/extent_map.c @@ -781,7 +781,6 @@ cpos = map_start >> osb->s_clustersize_bits; mapping_end = ocfs2_clusters_for_bytes(inode->i_sb, map_start + map_len); - mapping_end -= cpos; is_last = 0; while (cpos < mapping_end && !is_last) { u32 fe_flags; --- linux-3.11.0.orig/fs/jfs/jfs_inode.c +++ linux-3.11.0/fs/jfs/jfs_inode.c @@ -95,7 +95,7 @@ if (insert_inode_locked(inode) < 0) { rc = -EINVAL; - goto fail_unlock; + goto fail_put; } inode_init_owner(inode, parent, mode); @@ -156,7 +156,6 @@ fail_drop: dquot_drop(inode); inode->i_flags |= S_NOQUOTA; -fail_unlock: clear_nlink(inode); unlock_new_inode(inode); fail_put: --- linux-3.11.0.orig/fs/isofs/inode.c +++ linux-3.11.0/fs/isofs/inode.c @@ -117,8 +117,8 @@ static int isofs_remount(struct super_block *sb, int *flags, char *data) { - /* we probably want a lot more here */ - *flags |= MS_RDONLY; + if (!(*flags & MS_RDONLY)) + return -EROFS; return 0; } @@ -763,15 +763,6 @@ */ s->s_maxbytes = 0x80000000000LL; - /* - * The CDROM is read-only, has no nodes (devices) on it, and since - * all of the files appear to be owned by root, we really do not want - * to allow suid. (suid or devices will not show up unless we have - * Rock Ridge extensions) - */ - - s->s_flags |= MS_RDONLY /* | MS_NODEV | MS_NOSUID */; - /* Set this for reference. Its not currently used except on write which we don't have .. */ @@ -1530,6 +1521,9 @@ static struct dentry *isofs_mount(struct file_system_type *fs_type, int flags, const char *dev_name, void *data) { + /* We don't support read-write mounts */ + if (!(flags & MS_RDONLY)) + return ERR_PTR(-EACCES); return mount_bdev(fs_type, flags, dev_name, data, isofs_fill_super); } --- linux-3.11.0.orig/fs/cifs/cifsfs.c +++ linux-3.11.0/fs/cifs/cifsfs.c @@ -120,14 +120,16 @@ { struct inode *inode; struct cifs_sb_info *cifs_sb; + struct cifs_tcon *tcon; int rc = 0; cifs_sb = CIFS_SB(sb); + tcon = cifs_sb_master_tcon(cifs_sb); if (cifs_sb->mnt_cifs_flags & CIFS_MOUNT_POSIXACL) sb->s_flags |= MS_POSIXACL; - if (cifs_sb_master_tcon(cifs_sb)->ses->capabilities & CAP_LARGE_FILES) + if (tcon->ses->capabilities & tcon->ses->server->vals->cap_large_files) sb->s_maxbytes = MAX_LFS_FILESIZE; else sb->s_maxbytes = MAX_NON_LFS; @@ -147,7 +149,7 @@ goto out_no_root; } - if (cifs_sb_master_tcon(cifs_sb)->nocase) + if (tcon->nocase) sb->s_d_op = &cifs_ci_dentry_ops; else sb->s_d_op = &cifs_dentry_ops; --- linux-3.11.0.orig/fs/cifs/connect.c +++ linux-3.11.0/fs/cifs/connect.c @@ -379,6 +379,7 @@ try_to_freeze(); /* we should try only the port we connected to before */ + mutex_lock(&server->srv_mutex); rc = generic_ip_connect(server); if (rc) { cifs_dbg(FYI, "reconnect error %d\n", rc); @@ -390,6 +391,7 @@ server->tcpStatus = CifsNeedNegotiate; spin_unlock(&GlobalMid_Lock); } + mutex_unlock(&server->srv_mutex); } while (server->tcpStatus == CifsNeedReconnect); return rc; --- linux-3.11.0.orig/fs/cifs/dir.c +++ linux-3.11.0/fs/cifs/dir.c @@ -499,6 +499,7 @@ if (server->ops->close) server->ops->close(xid, tcon, &fid); cifs_del_pending_open(&open); + fput(file); rc = -ENOMEM; } --- linux-3.11.0.orig/fs/cifs/smb2misc.c +++ linux-3.11.0/fs/cifs/smb2misc.c @@ -417,19 +417,76 @@ } static bool -smb2_is_valid_lease_break(char *buffer, struct TCP_Server_Info *server) +smb2_tcon_has_lease(struct cifs_tcon *tcon, struct smb2_lease_break *rsp, + struct smb2_lease_break_work *lw) +{ + bool found; + __u8 lease_state; + struct list_head *tmp; + struct cifsFileInfo *cfile; + struct cifs_pending_open *open; + struct cifsInodeInfo *cinode; + int ack_req = le32_to_cpu(rsp->Flags & + SMB2_NOTIFY_BREAK_LEASE_FLAG_ACK_REQUIRED); + + lease_state = smb2_map_lease_to_oplock(rsp->NewLeaseState); + + list_for_each(tmp, &tcon->openFileList) { + cfile = list_entry(tmp, struct cifsFileInfo, tlist); + cinode = CIFS_I(cfile->dentry->d_inode); + + if (memcmp(cinode->lease_key, rsp->LeaseKey, + SMB2_LEASE_KEY_SIZE)) + continue; + + cifs_dbg(FYI, "found in the open list\n"); + cifs_dbg(FYI, "lease key match, lease break 0x%d\n", + le32_to_cpu(rsp->NewLeaseState)); + + smb2_set_oplock_level(cinode, lease_state); + + if (ack_req) + cfile->oplock_break_cancelled = false; + else + cfile->oplock_break_cancelled = true; + + queue_work(cifsiod_wq, &cfile->oplock_break); + kfree(lw); + return true; + } + + found = false; + list_for_each_entry(open, &tcon->pending_opens, olist) { + if (memcmp(open->lease_key, rsp->LeaseKey, + SMB2_LEASE_KEY_SIZE)) + continue; + + if (!found && ack_req) { + found = true; + memcpy(lw->lease_key, open->lease_key, + SMB2_LEASE_KEY_SIZE); + lw->tlink = cifs_get_tlink(open->tlink); + queue_work(cifsiod_wq, &lw->lease_break); + } + + cifs_dbg(FYI, "found in the pending open list\n"); + cifs_dbg(FYI, "lease key match, lease break 0x%d\n", + le32_to_cpu(rsp->NewLeaseState)); + + open->oplock = lease_state; + } + return found; +} + +static bool +smb2_is_valid_lease_break(char *buffer) { struct smb2_lease_break *rsp = (struct smb2_lease_break *)buffer; struct list_head *tmp, *tmp1, *tmp2; + struct TCP_Server_Info *server; struct cifs_ses *ses; struct cifs_tcon *tcon; - struct cifsInodeInfo *cinode; - struct cifsFileInfo *cfile; - struct cifs_pending_open *open; struct smb2_lease_break_work *lw; - bool found; - int ack_req = le32_to_cpu(rsp->Flags & - SMB2_NOTIFY_BREAK_LEASE_FLAG_ACK_REQUIRED); lw = kmalloc(sizeof(struct smb2_lease_break_work), GFP_KERNEL); if (!lw) @@ -442,71 +499,26 @@ /* look up tcon based on tid & uid */ spin_lock(&cifs_tcp_ses_lock); - list_for_each(tmp, &server->smb_ses_list) { - ses = list_entry(tmp, struct cifs_ses, smb_ses_list); + list_for_each(tmp, &cifs_tcp_ses_list) { + server = list_entry(tmp, struct TCP_Server_Info, tcp_ses_list); - spin_lock(&cifs_file_list_lock); - list_for_each(tmp1, &ses->tcon_list) { - tcon = list_entry(tmp1, struct cifs_tcon, tcon_list); - - cifs_stats_inc(&tcon->stats.cifs_stats.num_oplock_brks); - list_for_each(tmp2, &tcon->openFileList) { - cfile = list_entry(tmp2, struct cifsFileInfo, - tlist); - cinode = CIFS_I(cfile->dentry->d_inode); - - if (memcmp(cinode->lease_key, rsp->LeaseKey, - SMB2_LEASE_KEY_SIZE)) - continue; - - cifs_dbg(FYI, "found in the open list\n"); - cifs_dbg(FYI, "lease key match, lease break 0x%d\n", - le32_to_cpu(rsp->NewLeaseState)); - - smb2_set_oplock_level(cinode, - smb2_map_lease_to_oplock(rsp->NewLeaseState)); - - if (ack_req) - cfile->oplock_break_cancelled = false; - else - cfile->oplock_break_cancelled = true; - - queue_work(cifsiod_wq, &cfile->oplock_break); - - spin_unlock(&cifs_file_list_lock); - spin_unlock(&cifs_tcp_ses_lock); - return true; - } + list_for_each(tmp1, &server->smb_ses_list) { + ses = list_entry(tmp1, struct cifs_ses, smb_ses_list); - found = false; - list_for_each_entry(open, &tcon->pending_opens, olist) { - if (memcmp(open->lease_key, rsp->LeaseKey, - SMB2_LEASE_KEY_SIZE)) - continue; - - if (!found && ack_req) { - found = true; - memcpy(lw->lease_key, open->lease_key, - SMB2_LEASE_KEY_SIZE); - lw->tlink = cifs_get_tlink(open->tlink); - queue_work(cifsiod_wq, - &lw->lease_break); + spin_lock(&cifs_file_list_lock); + list_for_each(tmp2, &ses->tcon_list) { + tcon = list_entry(tmp2, struct cifs_tcon, + tcon_list); + cifs_stats_inc( + &tcon->stats.cifs_stats.num_oplock_brks); + if (smb2_tcon_has_lease(tcon, rsp, lw)) { + spin_unlock(&cifs_file_list_lock); + spin_unlock(&cifs_tcp_ses_lock); + return true; } - - cifs_dbg(FYI, "found in the pending open list\n"); - cifs_dbg(FYI, "lease key match, lease break 0x%d\n", - le32_to_cpu(rsp->NewLeaseState)); - - open->oplock = - smb2_map_lease_to_oplock(rsp->NewLeaseState); - } - if (found) { - spin_unlock(&cifs_file_list_lock); - spin_unlock(&cifs_tcp_ses_lock); - return true; } + spin_unlock(&cifs_file_list_lock); } - spin_unlock(&cifs_file_list_lock); } spin_unlock(&cifs_tcp_ses_lock); kfree(lw); @@ -532,7 +544,7 @@ if (rsp->StructureSize != smb2_rsp_struct_sizes[SMB2_OPLOCK_BREAK_HE]) { if (le16_to_cpu(rsp->StructureSize) == 44) - return smb2_is_valid_lease_break(buffer, server); + return smb2_is_valid_lease_break(buffer); else return false; } --- linux-3.11.0.orig/fs/notify/mark.c +++ linux-3.11.0/fs/notify/mark.c @@ -109,6 +109,7 @@ mark->free_mark(mark); } } +EXPORT_SYMBOL(fsnotify_put_mark); /* * Any time a mark is getting freed we end up here. @@ -191,6 +192,7 @@ fsnotify_destroy_mark_locked(mark, group); mutex_unlock(&group->mark_mutex); } +EXPORT_SYMBOL(fsnotify_destroy_mark); void fsnotify_set_mark_mask_locked(struct fsnotify_mark *mark, __u32 mask) { @@ -275,6 +277,7 @@ return ret; } +EXPORT_SYMBOL(fsnotify_add_mark); int fsnotify_add_mark(struct fsnotify_mark *mark, struct fsnotify_group *group, struct inode *inode, struct vfsmount *mnt, int allow_dups) @@ -336,6 +339,7 @@ atomic_set(&mark->refcnt, 1); mark->free_mark = free_mark; } +EXPORT_SYMBOL(fsnotify_init_mark); static int fsnotify_mark_destroy(void *ignored) { --- linux-3.11.0.orig/fs/notify/group.c +++ linux-3.11.0/fs/notify/group.c @@ -22,6 +22,7 @@ #include #include #include +#include #include #include "fsnotify.h" @@ -65,6 +66,7 @@ { atomic_inc(&group->refcnt); } +EXPORT_SYMBOL(fsnotify_get_group); /* * Drop a reference to a group. Free it if it's through. @@ -74,6 +76,7 @@ if (atomic_dec_and_test(&group->refcnt)) fsnotify_final_destroy_group(group); } +EXPORT_SYMBOL(fsnotify_put_group); /* * Create a new fsnotify_group and hold a reference for the group returned. @@ -102,6 +105,7 @@ return group; } +EXPORT_SYMBOL(fsnotify_alloc_group); int fsnotify_fasync(int fd, struct file *file, int on) { --- linux-3.11.0.orig/include/trace/events/vfs.h +++ linux-3.11.0/include/trace/events/vfs.h @@ -0,0 +1,55 @@ +#undef TRACE_SYSTEM +#define TRACE_SYSTEM vfs + +#include + +#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-3.11.0.orig/include/trace/events/fs.h +++ linux-3.11.0/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-3.11.0.orig/include/trace/events/target.h +++ linux-3.11.0/include/trace/events/target.h @@ -144,7 +144,7 @@ ), TP_fast_assign( - __entry->unpacked_lun = cmd->se_lun->unpacked_lun; + __entry->unpacked_lun = cmd->orig_fe_lun; __entry->opcode = cmd->t_task_cdb[0]; __entry->data_length = cmd->data_length; __entry->task_attribute = cmd->sam_task_attr; @@ -182,7 +182,7 @@ ), TP_fast_assign( - __entry->unpacked_lun = cmd->se_lun->unpacked_lun; + __entry->unpacked_lun = cmd->orig_fe_lun; __entry->opcode = cmd->t_task_cdb[0]; __entry->data_length = cmd->data_length; __entry->task_attribute = cmd->sam_task_attr; --- linux-3.11.0.orig/include/uapi/linux/perf_event.h +++ linux-3.11.0/include/uapi/linux/perf_event.h @@ -428,13 +428,15 @@ /* * Control data for the mmap() data buffer. * - * User-space reading the @data_head value should issue an rmb(), on - * SMP capable platforms, after reading this value -- see - * perf_event_wakeup(). + * User-space reading the @data_head value should issue an smp_rmb(), + * after reading this value. * * When the mapping is PROT_WRITE the @data_tail value should be - * written by userspace to reflect the last read data. In this case - * the kernel will not over-write unread data. + * written by userspace to reflect the last read data, after issueing + * an smp_mb() to separate the data read from the ->data_tail store. + * In this case the kernel will not over-write unread data. + * + * See perf_output_put_handle() for the data ordering. */ __u64 data_head; /* head in the data section */ __u64 data_tail; /* user-space written tail */ --- linux-3.11.0.orig/include/uapi/drm/radeon_drm.h +++ linux-3.11.0/include/uapi/drm/radeon_drm.h @@ -979,6 +979,8 @@ #define RADEON_INFO_RING_WORKING 0x15 /* SI tile mode array */ #define RADEON_INFO_SI_TILE_MODE_ARRAY 0x16 +/* query if CP DMA is supported on the compute ring */ +#define RADEON_INFO_SI_CP_DMA_COMPUTE 0x17 struct drm_radeon_info { --- linux-3.11.0.orig/include/uapi/drm/drm_mode.h +++ linux-3.11.0/include/uapi/drm/drm_mode.h @@ -223,6 +223,8 @@ __u32 connection; __u32 mm_width, mm_height; /**< HxW in millimeters */ __u32 subpixel; + + __u32 pad; }; #define DRM_MODE_PROP_PENDING (1<<0) --- linux-3.11.0.orig/include/linux/skbuff.h +++ linux-3.11.0/include/linux/skbuff.h @@ -1316,6 +1316,11 @@ return len + skb_headlen(skb); } +static inline bool skb_has_frags(const struct sk_buff *skb) +{ + return skb_shinfo(skb)->nr_frags; +} + /** * __skb_fill_page_desc - initialise a paged fragment in an skb * @skb: buffer containing fragment to be initialised --- linux-3.11.0.orig/include/linux/compat.h +++ linux-3.11.0/include/linux/compat.h @@ -669,6 +669,13 @@ int compat_restore_altstack(const compat_stack_t __user *uss); int __compat_save_altstack(compat_stack_t __user *, unsigned long); +#define compat_save_altstack_ex(uss, sp) do { \ + compat_stack_t __user *__uss = uss; \ + struct task_struct *t = current; \ + put_user_ex(ptr_to_compat((void __user *)t->sas_ss_sp), &__uss->ss_sp); \ + put_user_ex(sas_ss_flags(sp), &__uss->ss_flags); \ + put_user_ex(t->sas_ss_size, &__uss->ss_size); \ +} while (0); asmlinkage long compat_sys_sched_rr_get_interval(compat_pid_t pid, struct compat_timespec __user *interval); --- linux-3.11.0.orig/include/linux/balloon_compaction.h +++ linux-3.11.0/include/linux/balloon_compaction.h @@ -159,6 +159,26 @@ } /* + * isolated_balloon_page - identify an isolated balloon page on private + * compaction/migration page lists. + * + * After a compaction thread isolates a balloon page for migration, it raises + * the page refcount to prevent concurrent compaction threads from re-isolating + * the same page. For that reason putback_movable_pages(), or other routines + * that need to identify isolated balloon pages on private pagelists, cannot + * rely on balloon_page_movable() to accomplish the task. + */ +static inline bool isolated_balloon_page(struct page *page) +{ + /* Already isolated balloon pages, by default, have a raised refcount */ + if (page_flags_cleared(page) && !page_mapped(page) && + page_count(page) >= 2) + return __is_movable_balloon_page(page); + + return false; +} + +/* * balloon_page_insert - insert a page into the balloon's page list and make * the page->mapping assignment accordingly. * @page : page to be assigned as a 'balloon page' @@ -242,6 +262,11 @@ { return false; } + +static inline bool isolated_balloon_page(struct page *page) +{ + return false; +} static inline bool balloon_page_isolate(struct page *page) { --- linux-3.11.0.orig/include/linux/miscdevice.h +++ linux-3.11.0/include/linux/miscdevice.h @@ -45,6 +45,7 @@ #define MAPPER_CTRL_MINOR 236 #define LOOP_CTRL_MINOR 237 #define VHOST_NET_MINOR 238 +#define UHID_MINOR 239 #define MISC_DYNAMIC_MINOR 255 struct device; --- linux-3.11.0.orig/include/linux/random.h +++ linux-3.11.0/include/linux/random.h @@ -17,6 +17,7 @@ extern void get_random_bytes(void *buf, int nbytes); extern void get_random_bytes_arch(void *buf, int nbytes); void generate_random_uuid(unsigned char uuid_out[16]); +extern int random_int_secret_init(void); #ifndef MODULE extern const struct file_operations random_fops, urandom_fops; --- linux-3.11.0.orig/include/linux/binfmts.h +++ linux-3.11.0/include/linux/binfmts.h @@ -99,9 +99,6 @@ extern void would_dump(struct linux_binprm *, struct file *); extern int suid_dumpable; -#define SUID_DUMP_DISABLE 0 /* No setuid dumping */ -#define SUID_DUMP_USER 1 /* Dump as user of process */ -#define SUID_DUMP_ROOT 2 /* Dump as root */ /* Stack area protections */ #define EXSTACK_DEFAULT 0 /* Whatever the arch defaults to */ --- linux-3.11.0.orig/include/linux/usb_usual.h +++ linux-3.11.0/include/linux/usb_usual.h @@ -66,7 +66,9 @@ US_FLAG(INITIAL_READ10, 0x00100000) \ /* Initial READ(10) (and others) must be retried */ \ US_FLAG(WRITE_CACHE, 0x00200000) \ - /* Write Cache status is not available */ + /* Write Cache status is not available */ \ + US_FLAG(NEEDS_CAP16, 0x00400000) + /* cannot handle READ_CAPACITY_10 */ #define US_FLAG(name, value) US_FL_##name = value , enum { US_DO_ALL_FLAGS }; --- linux-3.11.0.orig/include/linux/sched.h +++ linux-3.11.0/include/linux/sched.h @@ -330,6 +330,10 @@ extern void set_dumpable(struct mm_struct *mm, int value); extern int get_dumpable(struct mm_struct *mm); +#define SUID_DUMP_DISABLE 0 /* No setuid dumping */ +#define SUID_DUMP_USER 1 /* Dump as user of process */ +#define SUID_DUMP_ROOT 2 /* Dump as root */ + /* mm flags */ /* dumpable bits */ #define MMF_DUMPABLE 0 /* core dump is permitted */ @@ -2473,34 +2477,98 @@ { return task_thread_info(p)->status & TS_POLLING; } -static inline void current_set_polling(void) +static inline void __current_set_polling(void) { current_thread_info()->status |= TS_POLLING; } -static inline void current_clr_polling(void) +static inline bool __must_check current_set_polling_and_test(void) +{ + __current_set_polling(); + + /* + * Polling state must be visible before we test NEED_RESCHED, + * paired by resched_task() + */ + smp_mb(); + + return unlikely(tif_need_resched()); +} + +static inline void __current_clr_polling(void) { current_thread_info()->status &= ~TS_POLLING; - smp_mb__after_clear_bit(); +} + +static inline bool __must_check current_clr_polling_and_test(void) +{ + __current_clr_polling(); + + /* + * Polling state must be visible before we test NEED_RESCHED, + * paired by resched_task() + */ + smp_mb(); + + return unlikely(tif_need_resched()); } #elif defined(TIF_POLLING_NRFLAG) static inline int tsk_is_polling(struct task_struct *p) { return test_tsk_thread_flag(p, TIF_POLLING_NRFLAG); } -static inline void current_set_polling(void) + +static inline void __current_set_polling(void) { set_thread_flag(TIF_POLLING_NRFLAG); } -static inline void current_clr_polling(void) +static inline bool __must_check current_set_polling_and_test(void) +{ + __current_set_polling(); + + /* + * Polling state must be visible before we test NEED_RESCHED, + * paired by resched_task() + * + * XXX: assumes set/clear bit are identical barrier wise. + */ + smp_mb__after_clear_bit(); + + return unlikely(tif_need_resched()); +} + +static inline void __current_clr_polling(void) { clear_thread_flag(TIF_POLLING_NRFLAG); } + +static inline bool __must_check current_clr_polling_and_test(void) +{ + __current_clr_polling(); + + /* + * Polling state must be visible before we test NEED_RESCHED, + * paired by resched_task() + */ + smp_mb__after_clear_bit(); + + return unlikely(tif_need_resched()); +} + #else static inline int tsk_is_polling(struct task_struct *p) { return 0; } -static inline void current_set_polling(void) { } -static inline void current_clr_polling(void) { } +static inline void __current_set_polling(void) { } +static inline void __current_clr_polling(void) { } + +static inline bool __must_check current_set_polling_and_test(void) +{ + return unlikely(tif_need_resched()); +} +static inline bool __must_check current_clr_polling_and_test(void) +{ + return unlikely(tif_need_resched()); +} #endif /* --- linux-3.11.0.orig/include/linux/mount.h +++ linux-3.11.0/include/linux/mount.h @@ -68,6 +68,9 @@ extern void mnt_unpin(struct vfsmount *mnt); extern int __mnt_is_readonly(struct vfsmount *mnt); +struct path; +extern struct vfsmount *clone_private_mount(struct path *path); + struct file_system_type; extern struct vfsmount *vfs_kern_mount(struct file_system_type *type, int flags, const char *name, --- linux-3.11.0.orig/include/linux/signal.h +++ linux-3.11.0/include/linux/signal.h @@ -434,6 +434,14 @@ int restore_altstack(const stack_t __user *); int __save_altstack(stack_t __user *, unsigned long); +#define save_altstack_ex(uss, sp) do { \ + stack_t __user *__uss = uss; \ + struct task_struct *t = current; \ + put_user_ex((void __user *)t->sas_ss_sp, &__uss->ss_sp); \ + put_user_ex(sas_ss_flags(sp), &__uss->ss_flags); \ + put_user_ex(t->sas_ss_size, &__uss->ss_size); \ +} while (0); + #ifdef CONFIG_PROC_FS struct seq_file; extern void render_sigset_t(struct seq_file *, const char *, sigset_t *); --- linux-3.11.0.orig/include/linux/page-flags.h +++ linux-3.11.0/include/linux/page-flags.h @@ -109,6 +109,7 @@ #ifdef CONFIG_TRANSPARENT_HUGEPAGE PG_compound_lock, #endif + PG_readaheadunused, /* user oriented readahead as yet unused*/ __NR_PAGEFLAGS, /* Filesystems */ @@ -232,6 +233,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-3.11.0.orig/include/linux/fs.h +++ linux-3.11.0/include/linux/fs.h @@ -245,6 +245,12 @@ */ #include +/* + * Maximum number of layers of fs stack. Needs to be limited to + * prevent kernel stack overflow + */ +#define FILESYSTEM_MAX_STACK_DEPTH 2 + /** * enum positive_aop_returns - aop return codes with specific semantics * @@ -1328,6 +1334,11 @@ /* Being remounted read-only */ int s_readonly_remount; + + /* + * Indicates how deep in a filesystem stack this SB is + */ + int s_stack_depth; }; /* superblock cache pruning functions */ @@ -1587,6 +1598,7 @@ struct file *, unsigned open_flag, umode_t create_mode, int *opened); int (*tmpfile) (struct inode *, struct dentry *, umode_t); + int (*dentry_open)(struct dentry *, struct file *, const struct cred *); } ____cacheline_aligned; ssize_t rw_copy_check_uvector(int type, const struct iovec __user * uvector, @@ -2020,6 +2032,7 @@ extern struct file *filp_open(const char *, int, umode_t); extern struct file *file_open_root(struct dentry *, struct vfsmount *, const char *, int); +extern int vfs_open(const struct path *, struct file *, const struct cred *); extern struct file * dentry_open(const struct path *, int, const struct cred *); extern int filp_close(struct file *, fl_owner_t id); @@ -2220,6 +2233,7 @@ #endif extern int notify_change(struct dentry *, struct iattr *); extern int inode_permission(struct inode *, int); +extern int __inode_permission(struct inode *, int); extern int generic_permission(struct inode *, int); static inline bool execute_ok(struct inode *inode) @@ -2425,6 +2439,9 @@ struct file *, loff_t *, size_t, unsigned int); extern ssize_t generic_splice_sendpage(struct pipe_inode_info *pipe, struct file *out, loff_t *, size_t len, unsigned int flags); +extern long do_splice_direct(struct file *in, loff_t *ppos, struct file *out, + loff_t *opos, size_t len, unsigned int flags); + extern void file_ra_state_init(struct file_ra_state *ra, struct address_space *mapping); @@ -2589,6 +2606,7 @@ extern int inode_newsize_ok(const struct inode *, loff_t offset); extern void setattr_copy(struct inode *inode, const struct iattr *attr); +extern int update_time(struct inode *, struct timespec *, int); extern int file_update_time(struct file *file); extern int generic_show_options(struct seq_file *m, struct dentry *root); --- linux-3.11.0.orig/include/linux/thread_info.h +++ linux-3.11.0/include/linux/thread_info.h @@ -107,6 +107,8 @@ #define set_need_resched() set_thread_flag(TIF_NEED_RESCHED) #define clear_need_resched() clear_thread_flag(TIF_NEED_RESCHED) +#define tif_need_resched() test_thread_flag(TIF_NEED_RESCHED) + #if defined TIF_RESTORE_SIGMASK && !defined HAVE_SET_RESTORE_SIGMASK /* * An arch can define its own version of set_restore_sigmask() to get the --- linux-3.11.0.orig/include/linux/splice.h +++ linux-3.11.0/include/linux/splice.h @@ -92,4 +92,10 @@ extern void spd_release_page(struct splice_pipe_desc *, unsigned int); extern const struct pipe_buf_operations page_cache_pipe_buf_ops; + +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-3.11.0.orig/include/linux/rculist.h +++ linux-3.11.0/include/linux/rculist.h @@ -267,8 +267,9 @@ */ #define list_first_or_null_rcu(ptr, type, member) \ ({struct list_head *__ptr = (ptr); \ - struct list_head __rcu *__next = list_next_rcu(__ptr); \ - likely(__ptr != __next) ? container_of(__next, type, member) : NULL; \ + struct list_head *__next = ACCESS_ONCE(__ptr->next); \ + likely(__ptr != __next) ? \ + list_entry_rcu(__next, type, member) : NULL; \ }) /** --- linux-3.11.0.orig/include/linux/ipc_namespace.h +++ linux-3.11.0/include/linux/ipc_namespace.h @@ -22,7 +22,7 @@ int in_use; unsigned short seq; unsigned short seq_max; - struct rw_semaphore rw_mutex; + struct rw_semaphore rwsem; struct idr ipcs_idr; int next_id; }; --- linux-3.11.0.orig/include/linux/timex.h +++ linux-3.11.0/include/linux/timex.h @@ -141,6 +141,7 @@ extern void hardpps(const struct timespec *, const struct timespec *); int read_current_timer(unsigned long *timer_val); +void ntp_notify_cmos_timer(void); /* The clock frequency of the i8253/i8254 PIT */ #define PIT_TICK_RATE 1193182ul --- linux-3.11.0.orig/include/linux/hid.h +++ linux-3.11.0/include/linux/hid.h @@ -393,10 +393,12 @@ struct hid_device *device; /* associated device */ }; +#define HID_MAX_IDS 256 + struct hid_report_enum { unsigned numbered; struct list_head report_list; - struct hid_report *report_id_hash[256]; + struct hid_report *report_id_hash[HID_MAX_IDS]; }; #define HID_REPORT_TYPES 3 @@ -744,9 +746,14 @@ unsigned int hidinput_count_leds(struct hid_device *hid); __s32 hidinput_calc_abs_res(const struct hid_field *field, __u16 code); void hid_output_report(struct hid_report *report, __u8 *data); +u8 *hid_alloc_report_buf(struct hid_report *report, gfp_t flags); struct hid_device *hid_allocate_device(void); struct hid_report *hid_register_report(struct hid_device *device, unsigned type, unsigned id); int hid_parse_report(struct hid_device *hid, __u8 *start, unsigned size); +struct hid_report *hid_validate_values(struct hid_device *hid, + unsigned int type, unsigned int id, + unsigned int field_index, + unsigned int report_counts); int hid_open_report(struct hid_device *device); int hid_check_keys_pressed(struct hid_device *hid); int hid_connect(struct hid_device *hid, unsigned int connect_mask); --- linux-3.11.0.orig/include/linux/module.h +++ linux-3.11.0/include/linux/module.h @@ -97,6 +97,11 @@ /* For userspace: you can also call me... */ #define MODULE_ALIAS(_alias) MODULE_INFO(alias, _alias) +/* Soft module dependencies. See man modprobe.d for details. + * Example: MODULE_SOFTDEP("pre: module-foo module-bar post: module-baz") + */ +#define MODULE_SOFTDEP(_softdep) MODULE_INFO(softdep, _softdep) + /* * The following license idents are currently accepted as indicating free * software modules --- linux-3.11.0.orig/include/linux/pci_ids.h +++ linux-3.11.0/include/linux/pci_ids.h @@ -518,6 +518,8 @@ #define PCI_DEVICE_ID_AMD_11H_NB_MISC 0x1303 #define PCI_DEVICE_ID_AMD_11H_NB_LINK 0x1304 #define PCI_DEVICE_ID_AMD_15H_M10H_F3 0x1403 +#define PCI_DEVICE_ID_AMD_15H_M30H_NB_F3 0x141d +#define PCI_DEVICE_ID_AMD_15H_M30H_NB_F4 0x141e #define PCI_DEVICE_ID_AMD_15H_NB_F0 0x1600 #define PCI_DEVICE_ID_AMD_15H_NB_F1 0x1601 #define PCI_DEVICE_ID_AMD_15H_NB_F2 0x1602 --- linux-3.11.0.orig/include/linux/crc-t10dif.h +++ linux-3.11.0/include/linux/crc-t10dif.h @@ -3,6 +3,10 @@ #include +#define CRC_T10DIF_DIGEST_SIZE 2 +#define CRC_T10DIF_BLOCK_SIZE 1 + +__u16 crc_t10dif_generic(__u16 crc, const unsigned char *buffer, size_t len); __u16 crc_t10dif(unsigned char const *, size_t); #endif --- linux-3.11.0.orig/include/linux/compiler-gcc4.h +++ linux-3.11.0/include/linux/compiler-gcc4.h @@ -65,6 +65,21 @@ #define __visible __attribute__((externally_visible)) #endif +/* + * GCC 'asm goto' miscompiles certain code sequences: + * + * http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58670 + * + * Work it around via a compiler barrier quirk suggested by Jakub Jelinek. + * Fixed in GCC 4.8.2 and later versions. + * + * (asm goto is automatically volatile - the naming reflects this.) + */ +#if GCC_VERSION <= 40801 +# define asm_volatile_goto(x...) do { asm goto(x); asm (""); } while (0) +#else +# define asm_volatile_goto(x...) do { asm goto(x); } while (0) +#endif #ifdef CONFIG_ARCH_USE_BUILTIN_BSWAP #if GCC_VERSION >= 40400 --- linux-3.11.0.orig/include/linux/device-mapper.h +++ linux-3.11.0/include/linux/device-mapper.h @@ -405,13 +405,14 @@ union map_info *dm_get_mapinfo(struct bio *bio); union map_info *dm_get_rq_mapinfo(struct request *rq); +struct queue_limits *dm_get_queue_limits(struct mapped_device *md); + /* * Geometry functions. */ int dm_get_geometry(struct mapped_device *md, struct hd_geometry *geo); int dm_set_geometry(struct mapped_device *md, struct hd_geometry *geo); - /*----------------------------------------------------------------- * Functions for manipulating device-mapper tables. *---------------------------------------------------------------*/ --- linux-3.11.0.orig/include/linux/hyperv.h +++ linux-3.11.0/include/linux/hyperv.h @@ -27,6 +27,14 @@ #include +/* + * Framework version for util services. + */ + +#define UTIL_FW_MAJOR 3 +#define UTIL_FW_MINOR 0 +#define UTIL_FW_MAJOR_MINOR (UTIL_FW_MAJOR << 16 | UTIL_FW_MINOR) + /* * Implementation of host controlled snapshot of the guest. @@ -1494,7 +1502,7 @@ }; #define MAX_SRV_VER 0x7ffffff -extern void vmbus_prep_negotiate_resp(struct icmsg_hdr *, +extern bool vmbus_prep_negotiate_resp(struct icmsg_hdr *, struct icmsg_negotiate *, u8 *, int, int); --- linux-3.11.0.orig/include/linux/usb/hcd.h +++ linux-3.11.0/include/linux/usb/hcd.h @@ -411,7 +411,7 @@ extern void usb_hcd_pci_remove(struct pci_dev *dev); extern void usb_hcd_pci_shutdown(struct pci_dev *dev); -#ifdef CONFIG_PM_SLEEP +#ifdef CONFIG_PM extern const struct dev_pm_ops usb_hcd_pci_pm_ops; #endif #endif /* CONFIG_PCI */ --- linux-3.11.0.orig/include/linux/mfd/rtsx_pci.h +++ linux-3.11.0/include/linux/mfd/rtsx_pci.h @@ -184,11 +184,26 @@ #define CARD_SHARE_BAROSSA_SD 0x01 #define CARD_SHARE_BAROSSA_MS 0x02 +/* CARD_DRIVE_SEL */ +#define MS_DRIVE_8mA (0x01 << 6) +#define MMC_DRIVE_8mA (0x01 << 4) +#define XD_DRIVE_8mA (0x01 << 2) +#define GPIO_DRIVE_8mA 0x01 +#define RTS5209_CARD_DRIVE_DEFAULT (MS_DRIVE_8mA | MMC_DRIVE_8mA |\ + XD_DRIVE_8mA | GPIO_DRIVE_8mA) +#define RTL8411_CARD_DRIVE_DEFAULT (MS_DRIVE_8mA | MMC_DRIVE_8mA |\ + XD_DRIVE_8mA) +#define RTSX_CARD_DRIVE_DEFAULT (MS_DRIVE_8mA | GPIO_DRIVE_8mA) + /* SD30_DRIVE_SEL */ #define DRIVER_TYPE_A 0x05 #define DRIVER_TYPE_B 0x03 #define DRIVER_TYPE_C 0x02 #define DRIVER_TYPE_D 0x01 +#define CFG_DRIVER_TYPE_A 0x02 +#define CFG_DRIVER_TYPE_B 0x03 +#define CFG_DRIVER_TYPE_C 0x01 +#define CFG_DRIVER_TYPE_D 0x00 /* FPDCTL */ #define SSC_POWER_DOWN 0x01 @@ -684,6 +699,8 @@ #define DUMMY_REG_RESET_0 0xFE90 +#define AUTOLOAD_CFG_BASE 0xFF00 + /* Memory mapping */ #define SRAM_BASE 0xE600 #define RBUF_BASE 0xF400 @@ -726,6 +743,64 @@ #define PHY_FLD4 0x1E #define PHY_DUM_REG 0x1F +#define LCTLR 0x80 +#define PCR_SETTING_REG1 0x724 +#define PCR_SETTING_REG2 0x814 +#define PCR_SETTING_REG3 0x747 + +/* Phy bits */ +#define PHY_PCR_FORCE_CODE 0xB000 +#define PHY_PCR_OOBS_CALI_50 0x0800 +#define PHY_PCR_OOBS_VCM_08 0x0200 +#define PHY_PCR_OOBS_SEN_90 0x0040 +#define PHY_PCR_RSSI_EN 0x0002 + +#define PHY_RCR1_ADP_TIME 0x0100 +#define PHY_RCR1_VCO_COARSE 0x001F + +#define PHY_RCR2_EMPHASE_EN 0x8000 +#define PHY_RCR2_NADJR 0x4000 +#define PHY_RCR2_CDR_CP_10 0x0400 +#define PHY_RCR2_CDR_SR_2 0x0100 +#define PHY_RCR2_FREQSEL_12 0x0040 +#define PHY_RCR2_CPADJEN 0x0020 +#define PHY_RCR2_CDR_SC_8 0x0008 +#define PHY_RCR2_CALIB_LATE 0x0002 + +#define PHY_RDR_RXDSEL_1_9 0x4000 + +#define PHY_TUNE_TUNEREF_1_0 0x4000 +#define PHY_TUNE_VBGSEL_1252 0x0C00 +#define PHY_TUNE_SDBUS_33 0x0200 +#define PHY_TUNE_TUNED18 0x01C0 +#define PHY_TUNE_TUNED12 0X0020 + +#define PHY_BPCR_IBRXSEL 0x0400 +#define PHY_BPCR_IBTXSEL 0x0100 +#define PHY_BPCR_IB_FILTER 0x0080 +#define PHY_BPCR_CMIRROR_EN 0x0040 + +#define PHY_REG_REV_RESV 0xE000 +#define PHY_REG_REV_RXIDLE_LATCHED 0x1000 +#define PHY_REG_REV_P1_EN 0x0800 +#define PHY_REG_REV_RXIDLE_EN 0x0400 +#define PHY_REG_REV_CLKREQ_DLY_TIMER_1_0 0x0040 +#define PHY_REG_REV_STOP_CLKRD 0x0020 +#define PHY_REG_REV_RX_PWST 0x0008 +#define PHY_REG_REV_STOP_CLKWR 0x0004 + +#define PHY_FLD3_TIMER_4 0x7800 +#define PHY_FLD3_TIMER_6 0x00E0 +#define PHY_FLD3_RXDELINK 0x0004 + +#define PHY_FLD4_FLDEN_SEL 0x4000 +#define PHY_FLD4_REQ_REF 0x2000 +#define PHY_FLD4_RXAMP_OFF 0x1000 +#define PHY_FLD4_REQ_ADDA 0x0800 +#define PHY_FLD4_BER_COUNT 0x00E0 +#define PHY_FLD4_BER_TIMER 0x000A +#define PHY_FLD4_BER_CHK_EN 0x0001 + #define rtsx_pci_init_cmd(pcr) ((pcr)->ci = 0) struct rtsx_pcr; @@ -747,6 +822,7 @@ u8 voltage); unsigned int (*cd_deglitch)(struct rtsx_pcr *pcr); int (*conv_clk_and_div_n)(int clk, int dir); + void (*fetch_vendor_settings)(struct rtsx_pcr *pcr); }; enum PDEV_STAT {PDEV_STAT_IDLE, PDEV_STAT_RUN}; @@ -788,7 +864,6 @@ struct completion *finish_me; unsigned int cur_clock; - bool ms_pmos; bool remove_pci; bool msi_en; @@ -806,6 +881,16 @@ #define IC_VER_D 3 u8 ic_version; + u8 sd30_drive_sel_1v8; + u8 sd30_drive_sel_3v3; + u8 card_drive_sel; +#define ASPM_L1_EN 0x02 + u8 aspm_en; + +#define PCR_MS_PMOS (1 << 0) +#define PCR_REVERSE_SOCKET (1 << 1) + u32 flags; + const u32 *sd_pull_ctl_enable_tbl; const u32 *sd_pull_ctl_disable_tbl; const u32 *ms_pull_ctl_enable_tbl; --- linux-3.11.0.orig/include/drm/drm_pciids.h +++ linux-3.11.0/include/drm/drm_pciids.h @@ -1,4 +1,25 @@ #define radeon_PCI_IDS \ + {0x1002, 0x1304, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_KAVERI|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP|RADEON_IS_IGP}, \ + {0x1002, 0x1305, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_KAVERI|RADEON_NEW_MEMMAP|RADEON_IS_IGP}, \ + {0x1002, 0x1306, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_KAVERI|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP|RADEON_IS_IGP}, \ + {0x1002, 0x1307, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_KAVERI|RADEON_NEW_MEMMAP|RADEON_IS_IGP}, \ + {0x1002, 0x1309, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_KAVERI|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP|RADEON_IS_IGP}, \ + {0x1002, 0x130A, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_KAVERI|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP|RADEON_IS_IGP}, \ + {0x1002, 0x130B, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_KAVERI|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP|RADEON_IS_IGP}, \ + {0x1002, 0x130C, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_KAVERI|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP|RADEON_IS_IGP}, \ + {0x1002, 0x130D, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_KAVERI|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP|RADEON_IS_IGP}, \ + {0x1002, 0x130E, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_KAVERI|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP|RADEON_IS_IGP}, \ + {0x1002, 0x130F, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_KAVERI|RADEON_NEW_MEMMAP|RADEON_IS_IGP}, \ + {0x1002, 0x1310, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_KAVERI|RADEON_NEW_MEMMAP|RADEON_IS_IGP}, \ + {0x1002, 0x1311, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_KAVERI|RADEON_NEW_MEMMAP|RADEON_IS_IGP}, \ + {0x1002, 0x1312, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_KAVERI|RADEON_NEW_MEMMAP|RADEON_IS_IGP}, \ + {0x1002, 0x1313, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_KAVERI|RADEON_NEW_MEMMAP|RADEON_IS_IGP}, \ + {0x1002, 0x1315, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_KAVERI|RADEON_NEW_MEMMAP|RADEON_IS_IGP}, \ + {0x1002, 0x1316, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_KAVERI|RADEON_NEW_MEMMAP|RADEON_IS_IGP}, \ + {0x1002, 0x1317, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_KAVERI|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP|RADEON_IS_IGP}, \ + {0x1002, 0x131B, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_KAVERI|RADEON_NEW_MEMMAP|RADEON_IS_IGP}, \ + {0x1002, 0x131C, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_KAVERI|RADEON_NEW_MEMMAP|RADEON_IS_IGP}, \ + {0x1002, 0x131D, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_KAVERI|RADEON_NEW_MEMMAP|RADEON_IS_IGP}, \ {0x1002, 0x3150, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV380|RADEON_IS_MOBILITY}, \ {0x1002, 0x3151, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV380|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP}, \ {0x1002, 0x3152, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_RV380|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP}, \ --- linux-3.11.0.orig/include/net/ip6_fib.h +++ linux-3.11.0/include/net/ip6_fib.h @@ -165,6 +165,7 @@ static inline void rt6_clean_expires(struct rt6_info *rt) { rt->rt6i_flags &= ~RTF_EXPIRES; + rt->dst.expires = 0; } static inline void rt6_set_expires(struct rt6_info *rt, unsigned long expires) --- linux-3.11.0.orig/include/net/ip.h +++ linux-3.11.0/include/net/ip.h @@ -254,9 +254,11 @@ extern void __ip_select_ident(struct iphdr *iph, struct dst_entry *dst, int more); -static inline void ip_select_ident(struct iphdr *iph, struct dst_entry *dst, struct sock *sk) +static inline void ip_select_ident(struct sk_buff *skb, struct dst_entry *dst, struct sock *sk) { - if (iph->frag_off & htons(IP_DF)) { + struct iphdr *iph = ip_hdr(skb); + + if ((iph->frag_off & htons(IP_DF)) && !skb->local_df) { /* This is only to work around buggy Windows95/2000 * VJ compression implementations. If the ID field * does not change, they drop every other packet in @@ -268,9 +270,11 @@ __ip_select_ident(iph, dst, 0); } -static inline void ip_select_ident_more(struct iphdr *iph, struct dst_entry *dst, struct sock *sk, int more) +static inline void ip_select_ident_more(struct sk_buff *skb, struct dst_entry *dst, struct sock *sk, int more) { - if (iph->frag_off & htons(IP_DF)) { + struct iphdr *iph = ip_hdr(skb); + + if ((iph->frag_off & htons(IP_DF)) && !skb->local_df) { if (sk && inet_sk(sk)->inet_daddr) { iph->id = htons(inet_sk(sk)->inet_id); inet_sk(sk)->inet_id += 1 + more; --- linux-3.11.0.orig/include/net/addrconf.h +++ linux-3.11.0/include/net/addrconf.h @@ -73,6 +73,10 @@ const struct in6_addr *addr); #endif +bool ipv6_chk_custom_prefix(const struct in6_addr *addr, + const unsigned int prefix_len, + struct net_device *dev); + extern int ipv6_chk_prefix(const struct in6_addr *addr, struct net_device *dev); --- linux-3.11.0.orig/include/net/sock.h +++ linux-3.11.0/include/net/sock.h @@ -232,6 +232,7 @@ * @sk_napi_id: id of the last napi context to receive data for sk * @sk_ll_usec: usecs to busypoll when there is no data * @sk_allocation: allocation mode + * @sk_pacing_rate: Pacing rate (if supported by transport/packet scheduler) * @sk_sndbuf: size of send buffer in bytes * @sk_flags: %SO_LINGER (l_onoff), %SO_BROADCAST, %SO_KEEPALIVE, * %SO_OOBINLINE settings, %SO_TIMESTAMPING settings @@ -361,6 +362,7 @@ kmemcheck_bitfield_end(flags); int sk_wmem_queued; gfp_t sk_allocation; + u32 sk_pacing_rate; /* bytes per second */ netdev_features_t sk_route_caps; netdev_features_t sk_route_nocaps; int sk_gso_type; --- linux-3.11.0.orig/include/net/ip6_route.h +++ linux-3.11.0/include/net/ip6_route.h @@ -196,11 +196,9 @@ skb_dst(skb)->dev->mtu : dst_mtu(skb_dst(skb)); } -static inline struct in6_addr *rt6_nexthop(struct rt6_info *rt, struct in6_addr *dest) +static inline struct in6_addr *rt6_nexthop(struct rt6_info *rt) { - if (rt->rt6i_flags & RTF_GATEWAY) - return &rt->rt6i_gateway; - return dest; + return &rt->rt6i_gateway; } #endif --- linux-3.11.0.orig/include/net/dst.h +++ linux-3.11.0/include/net/dst.h @@ -477,10 +477,22 @@ { return dst_orig; } + +static inline struct xfrm_state *dst_xfrm(const struct dst_entry *dst) +{ + return NULL; +} + #else extern struct dst_entry *xfrm_lookup(struct net *net, struct dst_entry *dst_orig, const struct flowi *fl, struct sock *sk, int flags); + +/* skb attached with this dst needs transformation if dst->xfrm is valid */ +static inline struct xfrm_state *dst_xfrm(const struct dst_entry *dst) +{ + return dst->xfrm; +} #endif #endif /* _NET_DST_H */ --- linux-3.11.0.orig/include/net/cipso_ipv4.h +++ linux-3.11.0/include/net/cipso_ipv4.h @@ -290,6 +290,7 @@ unsigned char err_offset = 0; u8 opt_len = opt[1]; u8 opt_iter; + u8 tag_len; if (opt_len < 8) { err_offset = 1; @@ -302,11 +303,12 @@ } for (opt_iter = 6; opt_iter < opt_len;) { - if (opt[opt_iter + 1] > (opt_len - opt_iter)) { + tag_len = opt[opt_iter + 1]; + if ((tag_len == 0) || (opt[opt_iter + 1] > (opt_len - opt_iter))) { err_offset = opt_iter + 1; goto out; } - opt_iter += opt[opt_iter + 1]; + opt_iter += tag_len; } out: --- linux-3.11.0.orig/include/net/secure_seq.h +++ linux-3.11.0/include/net/secure_seq.h @@ -3,7 +3,6 @@ #include -extern void net_secret_init(void); 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); --- linux-3.11.0.orig/include/net/tcp.h +++ linux-3.11.0/include/net/tcp.h @@ -284,6 +284,7 @@ extern int sysctl_tcp_early_retrans; extern int sysctl_tcp_limit_output_bytes; extern int sysctl_tcp_challenge_ack_limit; +extern int sysctl_tcp_min_tso_segs; extern atomic_long_t tcp_memory_allocated; extern struct percpu_counter tcp_sockets_allocated; --- linux-3.11.0.orig/include/net/bluetooth/hci.h +++ linux-3.11.0/include/net/bluetooth/hci.h @@ -104,6 +104,7 @@ enum { HCI_SETUP, HCI_AUTO_OFF, + HCI_RFKILLED, HCI_MGMT, HCI_PAIRABLE, HCI_SERVICE_CACHE, --- linux-3.11.0.orig/include/asm-generic/hugetlb.h +++ linux-3.11.0/include/asm-generic/hugetlb.h @@ -6,12 +6,12 @@ return mk_pte(page, pgprot); } -static inline int huge_pte_write(pte_t pte) +static inline unsigned long huge_pte_write(pte_t pte) { return pte_write(pte); } -static inline int huge_pte_dirty(pte_t pte) +static inline unsigned long huge_pte_dirty(pte_t pte) { return pte_dirty(pte); } --- linux-3.11.0.orig/crypto/crct10dif.c +++ linux-3.11.0/crypto/crct10dif.c @@ -0,0 +1,178 @@ +/* + * Cryptographic API. + * + * T10 Data Integrity Field CRC16 Crypto Transform + * + * Copyright (c) 2007 Oracle Corporation. All rights reserved. + * Written by Martin K. Petersen + * Copyright (C) 2013 Intel Corporation + * Author: Tim Chen + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by the Free + * Software Foundation; either version 2 of the License, or (at your option) + * any later version. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS + * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN + * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + * + */ + +#include +#include +#include +#include +#include +#include +#include + +struct chksum_desc_ctx { + __u16 crc; +}; + +/* Table generated using the following polynomium: + * x^16 + x^15 + x^11 + x^9 + x^8 + x^7 + x^5 + x^4 + x^2 + x + 1 + * gt: 0x8bb7 + */ +static const __u16 t10_dif_crc_table[256] = { + 0x0000, 0x8BB7, 0x9CD9, 0x176E, 0xB205, 0x39B2, 0x2EDC, 0xA56B, + 0xEFBD, 0x640A, 0x7364, 0xF8D3, 0x5DB8, 0xD60F, 0xC161, 0x4AD6, + 0x54CD, 0xDF7A, 0xC814, 0x43A3, 0xE6C8, 0x6D7F, 0x7A11, 0xF1A6, + 0xBB70, 0x30C7, 0x27A9, 0xAC1E, 0x0975, 0x82C2, 0x95AC, 0x1E1B, + 0xA99A, 0x222D, 0x3543, 0xBEF4, 0x1B9F, 0x9028, 0x8746, 0x0CF1, + 0x4627, 0xCD90, 0xDAFE, 0x5149, 0xF422, 0x7F95, 0x68FB, 0xE34C, + 0xFD57, 0x76E0, 0x618E, 0xEA39, 0x4F52, 0xC4E5, 0xD38B, 0x583C, + 0x12EA, 0x995D, 0x8E33, 0x0584, 0xA0EF, 0x2B58, 0x3C36, 0xB781, + 0xD883, 0x5334, 0x445A, 0xCFED, 0x6A86, 0xE131, 0xF65F, 0x7DE8, + 0x373E, 0xBC89, 0xABE7, 0x2050, 0x853B, 0x0E8C, 0x19E2, 0x9255, + 0x8C4E, 0x07F9, 0x1097, 0x9B20, 0x3E4B, 0xB5FC, 0xA292, 0x2925, + 0x63F3, 0xE844, 0xFF2A, 0x749D, 0xD1F6, 0x5A41, 0x4D2F, 0xC698, + 0x7119, 0xFAAE, 0xEDC0, 0x6677, 0xC31C, 0x48AB, 0x5FC5, 0xD472, + 0x9EA4, 0x1513, 0x027D, 0x89CA, 0x2CA1, 0xA716, 0xB078, 0x3BCF, + 0x25D4, 0xAE63, 0xB90D, 0x32BA, 0x97D1, 0x1C66, 0x0B08, 0x80BF, + 0xCA69, 0x41DE, 0x56B0, 0xDD07, 0x786C, 0xF3DB, 0xE4B5, 0x6F02, + 0x3AB1, 0xB106, 0xA668, 0x2DDF, 0x88B4, 0x0303, 0x146D, 0x9FDA, + 0xD50C, 0x5EBB, 0x49D5, 0xC262, 0x6709, 0xECBE, 0xFBD0, 0x7067, + 0x6E7C, 0xE5CB, 0xF2A5, 0x7912, 0xDC79, 0x57CE, 0x40A0, 0xCB17, + 0x81C1, 0x0A76, 0x1D18, 0x96AF, 0x33C4, 0xB873, 0xAF1D, 0x24AA, + 0x932B, 0x189C, 0x0FF2, 0x8445, 0x212E, 0xAA99, 0xBDF7, 0x3640, + 0x7C96, 0xF721, 0xE04F, 0x6BF8, 0xCE93, 0x4524, 0x524A, 0xD9FD, + 0xC7E6, 0x4C51, 0x5B3F, 0xD088, 0x75E3, 0xFE54, 0xE93A, 0x628D, + 0x285B, 0xA3EC, 0xB482, 0x3F35, 0x9A5E, 0x11E9, 0x0687, 0x8D30, + 0xE232, 0x6985, 0x7EEB, 0xF55C, 0x5037, 0xDB80, 0xCCEE, 0x4759, + 0x0D8F, 0x8638, 0x9156, 0x1AE1, 0xBF8A, 0x343D, 0x2353, 0xA8E4, + 0xB6FF, 0x3D48, 0x2A26, 0xA191, 0x04FA, 0x8F4D, 0x9823, 0x1394, + 0x5942, 0xD2F5, 0xC59B, 0x4E2C, 0xEB47, 0x60F0, 0x779E, 0xFC29, + 0x4BA8, 0xC01F, 0xD771, 0x5CC6, 0xF9AD, 0x721A, 0x6574, 0xEEC3, + 0xA415, 0x2FA2, 0x38CC, 0xB37B, 0x1610, 0x9DA7, 0x8AC9, 0x017E, + 0x1F65, 0x94D2, 0x83BC, 0x080B, 0xAD60, 0x26D7, 0x31B9, 0xBA0E, + 0xF0D8, 0x7B6F, 0x6C01, 0xE7B6, 0x42DD, 0xC96A, 0xDE04, 0x55B3 +}; + +__u16 crc_t10dif_generic(__u16 crc, const unsigned char *buffer, size_t len) +{ + unsigned int i; + + for (i = 0 ; i < len ; i++) + crc = (crc << 8) ^ t10_dif_crc_table[((crc >> 8) ^ buffer[i]) & 0xff]; + + return crc; +} +EXPORT_SYMBOL(crc_t10dif_generic); + +/* + * Steps through buffer one byte at at time, calculates reflected + * crc using table. + */ + +static int chksum_init(struct shash_desc *desc) +{ + struct chksum_desc_ctx *ctx = shash_desc_ctx(desc); + + ctx->crc = 0; + + return 0; +} + +static int chksum_update(struct shash_desc *desc, const u8 *data, + unsigned int length) +{ + struct chksum_desc_ctx *ctx = shash_desc_ctx(desc); + + ctx->crc = crc_t10dif_generic(ctx->crc, data, length); + return 0; +} + +static int chksum_final(struct shash_desc *desc, u8 *out) +{ + struct chksum_desc_ctx *ctx = shash_desc_ctx(desc); + + *(__u16 *)out = ctx->crc; + return 0; +} + +static int __chksum_finup(__u16 *crcp, const u8 *data, unsigned int len, + u8 *out) +{ + *(__u16 *)out = crc_t10dif_generic(*crcp, data, len); + return 0; +} + +static int chksum_finup(struct shash_desc *desc, const u8 *data, + unsigned int len, u8 *out) +{ + struct chksum_desc_ctx *ctx = shash_desc_ctx(desc); + + return __chksum_finup(&ctx->crc, data, len, out); +} + +static int chksum_digest(struct shash_desc *desc, const u8 *data, + unsigned int length, u8 *out) +{ + struct chksum_desc_ctx *ctx = shash_desc_ctx(desc); + + return __chksum_finup(&ctx->crc, data, length, out); +} + +static struct shash_alg alg = { + .digestsize = CRC_T10DIF_DIGEST_SIZE, + .init = chksum_init, + .update = chksum_update, + .final = chksum_final, + .finup = chksum_finup, + .digest = chksum_digest, + .descsize = sizeof(struct chksum_desc_ctx), + .base = { + .cra_name = "crct10dif", + .cra_driver_name = "crct10dif-generic", + .cra_priority = 100, + .cra_blocksize = CRC_T10DIF_BLOCK_SIZE, + .cra_module = THIS_MODULE, + } +}; + +static int __init crct10dif_mod_init(void) +{ + int ret; + + ret = crypto_register_shash(&alg); + return ret; +} + +static void __exit crct10dif_mod_fini(void) +{ + crypto_unregister_shash(&alg); +} + +module_init(crct10dif_mod_init); +module_exit(crct10dif_mod_fini); + +MODULE_AUTHOR("Tim Chen "); +MODULE_DESCRIPTION("T10 DIF CRC calculation."); +MODULE_LICENSE("GPL"); --- linux-3.11.0.orig/crypto/testmgr.h +++ linux-3.11.0/crypto/testmgr.h @@ -450,6 +450,39 @@ } }; +#define CRCT10DIF_TEST_VECTORS 3 +static struct hash_testvec crct10dif_tv_template[] = { + { + .plaintext = "abc", + .psize = 3, +#ifdef __LITTLE_ENDIAN + .digest = "\x3b\x44", +#else + .digest = "\x44\x3b", +#endif + }, { + .plaintext = "1234567890123456789012345678901234567890" + "123456789012345678901234567890123456789", + .psize = 79, +#ifdef __LITTLE_ENDIAN + .digest = "\x70\x4b", +#else + .digest = "\x4b\x70", +#endif + }, { + .plaintext = + "abcddddddddddddddddddddddddddddddddddddddddddddddddddddd", + .psize = 56, +#ifdef __LITTLE_ENDIAN + .digest = "\xe3\x9c", +#else + .digest = "\x9c\xe3", +#endif + .np = 2, + .tap = { 28, 28 } + } +}; + /* * SHA1 test vectors from from FIPS PUB 180-1 * Long vector from CAVS 5.0 --- linux-3.11.0.orig/crypto/api.c +++ linux-3.11.0/crypto/api.c @@ -34,6 +34,8 @@ BLOCKING_NOTIFIER_HEAD(crypto_chain); EXPORT_SYMBOL_GPL(crypto_chain); +static struct crypto_alg *crypto_larval_wait(struct crypto_alg *alg); + struct crypto_alg *crypto_mod_get(struct crypto_alg *alg) { return try_module_get(alg->cra_module) ? crypto_alg_get(alg) : NULL; @@ -144,8 +146,11 @@ } up_write(&crypto_alg_sem); - if (alg != &larval->alg) + if (alg != &larval->alg) { kfree(larval); + if (crypto_is_larval(alg)) + alg = crypto_larval_wait(alg); + } return alg; } --- linux-3.11.0.orig/crypto/testmgr.c +++ linux-3.11.0/crypto/testmgr.c @@ -2046,6 +2046,16 @@ } } }, { + .alg = "crct10dif", + .test = alg_test_hash, + .fips_allowed = 1, + .suite = { + .hash = { + .vecs = crct10dif_tv_template, + .count = CRCT10DIF_TEST_VECTORS + } + } + }, { .alg = "cryptd(__driver-cbc-aes-aesni)", .test = alg_test_null, .fips_allowed = 1, --- linux-3.11.0.orig/crypto/Makefile +++ linux-3.11.0/crypto/Makefile @@ -83,6 +83,7 @@ obj-$(CONFIG_CRYPTO_MICHAEL_MIC) += michael_mic.o obj-$(CONFIG_CRYPTO_CRC32C) += crc32c.o obj-$(CONFIG_CRYPTO_CRC32) += crc32.o +obj-$(CONFIG_CRYPTO_CRCT10DIF) += crct10dif.o obj-$(CONFIG_CRYPTO_AUTHENC) += authenc.o authencesn.o obj-$(CONFIG_CRYPTO_LZO) += lzo.o obj-$(CONFIG_CRYPTO_LZ4) += lz4.o --- linux-3.11.0.orig/crypto/Kconfig +++ linux-3.11.0/crypto/Kconfig @@ -376,6 +376,25 @@ which will enable any routine to use the CRC-32-IEEE 802.3 checksum and gain better performance as compared with the table implementation. +config CRYPTO_CRCT10DIF + tristate "CRCT10DIF algorithm" + select CRYPTO_HASH + help + CRC T10 Data Integrity Field computation is being cast as + a crypto transform. This allows for faster crc t10 diff + transforms to be used if they are available. + +config CRYPTO_CRCT10DIF_PCLMUL + tristate "CRCT10DIF PCLMULQDQ hardware acceleration" + depends on X86 && 64BIT && CRC_T10DIF + select CRYPTO_HASH + help + For x86_64 processors with SSE4.2 and PCLMULQDQ supported, + CRC T10 DIF PCLMULQDQ computation can be hardware + accelerated PCLMULQDQ instruction. This option will create + 'crct10dif-plcmul' module, which is faster when computing the + crct10dif checksum as compared with the generic table implementation. + config CRYPTO_GHASH tristate "GHASH digest algorithm" select CRYPTO_GF128MUL --- linux-3.11.0.orig/crypto/ansi_cprng.c +++ linux-3.11.0/crypto/ansi_cprng.c @@ -230,11 +230,11 @@ */ if (byte_count < DEFAULT_BLK_SZ) { empty_rbuf: - for (; ctx->rand_data_valid < DEFAULT_BLK_SZ; - ctx->rand_data_valid++) { + while (ctx->rand_data_valid < DEFAULT_BLK_SZ) { *ptr = ctx->rand_data[ctx->rand_data_valid]; ptr++; byte_count--; + ctx->rand_data_valid++; if (byte_count == 0) goto done; } --- linux-3.11.0.orig/crypto/tcrypt.c +++ linux-3.11.0/crypto/tcrypt.c @@ -1174,6 +1174,10 @@ ret += tcrypt_test("ghash"); break; + case 47: + ret += tcrypt_test("crct10dif"); + break; + case 100: ret += tcrypt_test("hmac(md5)"); break; @@ -1498,6 +1502,10 @@ test_hash_speed("crc32c", sec, generic_hash_speed_template); if (mode > 300 && mode < 400) break; + case 320: + test_hash_speed("crct10dif", sec, generic_hash_speed_template); + if (mode > 300 && mode < 400) break; + case 399: break; --- linux-3.11.0.orig/debian.master/changelog.historical +++ linux-3.11.0/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-3.11.0.orig/debian.master/control.stub.in +++ linux-3.11.0/debian.master/control.stub.in @@ -0,0 +1,94 @@ +Source: linux +Section: devel +Priority: optional +Maintainer: Ubuntu Kernel Team +Standards-Version: 3.9.4.0 +Build-Depends: debhelper (>= 5), cpio, module-init-tools, kernel-wedge (>= 2.24ubuntu1), makedumpfile [amd64 i386], libelf-dev, libnewt-dev, binutils-dev, rsync, libdw-dev, libpci-dev, dpkg (>= 1.16.0~ubuntu4), pkg-config, flex, bison, libunwind8-dev, openssl, libaudit-dev, bc, python-dev, gcc-4.7 [armhf], gawk +Build-Depends-Indep: xmlto, docbook-utils, ghostscript, transfig, bzip2, sharutils, asciidoc +Vcs-Git: http://kernel.ubuntu.com/git-repos/ubuntu/ubuntu-saucy.git +XS-Testsuite: autopkgtest +#XS-Testsuite-Depends: gcc-4.7 binutils + +Package: SRCPKGNAME-source-PKGVER +Architecture: all +Section: devel +Priority: optional +Provides: SRCPKGNAME-source, SRCPKGNAME-source-3 +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-3 +Replaces: SRCPKGNAME-doc-3 +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: kernel +Priority: optional +Depends: ${misc:Depends} +Replaces: SRCPKGNAME-tools (<= 2.6.32-16.25) +Description: Linux kernel version specific tools for version PKGVER + This package provides the architecture independent parts for kernel + version locked tools (such as perf and x86_energy_perf_policy) for + version PGKVER. + +Package: SRCPKGNAME-headers-PKGVER-ABINUM +Architecture: all +Section: devel +Priority: optional +Depends: ${misc:Depends}, coreutils | fileutils (>= 4.0) +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 armhf arm64 x32 powerpc +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: SRCPKGNAME-tools-PKGVER-ABINUM +Architecture: i386 amd64 armhf +Section: devel +Priority: optional +Depends: ${misc:Depends}, ${shlibs:Depends}, linux-tools-common +Description: Linux kernel version specific tools for version PKGVER-ABINUM + This package provides the architecture dependant parts for kernel + version locked tools (such as perf and x86_energy_perf_policy) for + version PKGVER-ABINUM on + =HUMAN=. + You probabally want to install linux-tools-PKGVER-ABINUM-. + --- linux-3.11.0.orig/debian.master/NOTES +++ linux-3.11.0/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-3.11.0.orig/debian.master/copyright +++ linux-3.11.0/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-3.11.0.orig/debian.master/control +++ linux-3.11.0/debian.master/control @@ -0,0 +1,288 @@ +Source: linux +Section: devel +Priority: optional +Maintainer: Ubuntu Kernel Team +Standards-Version: 3.9.4.0 +Build-Depends: debhelper (>= 5), cpio, module-init-tools, kernel-wedge (>= 2.24ubuntu1), makedumpfile [amd64 i386], libelf-dev, libnewt-dev, binutils-dev, rsync, libdw-dev, libpci-dev, dpkg (>= 1.16.0~ubuntu4), pkg-config, flex, bison, libunwind8-dev, openssl, libaudit-dev, bc, python-dev, gcc-4.7 [armhf], gawk +Build-Depends-Indep: xmlto, docbook-utils, ghostscript, transfig, bzip2, sharutils, asciidoc +Vcs-Git: http://kernel.ubuntu.com/git-repos/ubuntu/ubuntu-saucy.git +XS-Testsuite: autopkgtest +#XS-Testsuite-Depends: gcc-4.7 binutils + +Package: linux-source-3.11.0 +Architecture: all +Section: devel +Priority: optional +Provides: linux-source, linux-source-3 +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 3.11.0 with Ubuntu patches + This package provides the source code for the Linux kernel version + 3.11.0. + . + 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-3 +Replaces: linux-doc-3 +Description: Linux kernel specific documentation for version 3.11.0 + This package provides the various documents in the 3.11.0 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: kernel +Priority: optional +Depends: ${misc:Depends} +Replaces: linux-tools (<= 2.6.32-16.25) +Description: Linux kernel version specific tools for version 3.11.0 + This package provides the architecture independent parts for kernel + version locked tools (such as perf and x86_energy_perf_policy) for + version PGKVER. + +Package: linux-headers-3.11.0-15 +Architecture: all +Section: devel +Priority: optional +Depends: ${misc:Depends}, coreutils | fileutils (>= 4.0) +Description: Header files related to Linux kernel version 3.11.0 + This package provides kernel header files for version 3.11.0, for sites + that want the latest kernel headers. Please read + /usr/share/doc/linux-headers-3.11.0-15/debian.README.gz for details + +Package: linux-libc-dev +Architecture: i386 amd64 armhf arm64 x32 powerpc +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-3.11.0-15 +Architecture: i386 amd64 armhf +Section: devel +Priority: optional +Depends: ${misc:Depends}, ${shlibs:Depends}, linux-tools-common +Description: Linux kernel version specific tools for version 3.11.0-15 + This package provides the architecture dependant parts for kernel + version locked tools (such as perf and x86_energy_perf_policy) for + version 3.11.0-15 on + 64 bit x86. + You probabally want to install linux-tools-3.11.0-15-. + + +Package: linux-image-3.11.0-15-generic +Architecture: i386 amd64 armhf +Section: kernel +Priority: optional +Pre-Depends: dpkg (>= 1.10.24) +Provides: linux-image, linux-image-3.0, fuse-module, kvm-api-4, redhat-cluster-modules, ivtv-modules +Depends: ${misc:Depends}, ${shlibs:Depends}, initramfs-tools (>= 0.36ubuntu6), module-init-tools (>= 3.3-pre11-4ubuntu3) +Conflicts: hotplug (<< 0.0.20040105-1) +Recommends: grub-pc [i386 amd64 x32] | grub-efi-amd64 [amd64 x32] | grub-efi-ia32 [i386 amd64 x32] | grub [i386 amd64 x32] | lilo (>= 19.1) [i386 amd64 x32] | flash-kernel [armhf arm64] +Suggests: fdutils, linux-doc-3.11.0 | linux-source-3.11.0, linux-tools, linux-headers-3.11.0-15-generic +Description: Linux kernel image for version 3.11.0 on 64 bit x86 SMP + This package contains the Linux kernel image for version 3.11.0 on + 64 bit x86 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 Generic processors. + . + Geared toward desktop and server 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-image-extra-3.11.0-15-generic +Architecture: i386 amd64 armhf +Section: kernel +Priority: optional +Depends: ${misc:Depends}, ${shlibs:Depends}, linux-image-3.11.0-15-generic, crda (>=1.1.1-1ubuntu2) | wireless-crda +Description: Linux kernel extra modules for version 3.11.0 on 64 bit x86 SMP + This package contains the Linux kernel extra modules for version 3.11.0 on + 64 bit x86 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 Generic processors. + . + Geared toward desktop and server 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-3.11.0-15-generic +Architecture: i386 amd64 armhf +Section: devel +Priority: optional +Depends: ${misc:Depends}, linux-headers-3.11.0-15, ${shlibs:Depends} +Provides: linux-headers, linux-headers-3.0 +Description: Linux kernel headers for version 3.11.0 on 64 bit x86 SMP + This package provides kernel header files for version 3.11.0 on + 64 bit x86 SMP. + . + This is for sites that want the latest kernel headers. Please read + /usr/share/doc/linux-headers-3.11.0-15/debian.README.gz for details. + +Package: linux-image-3.11.0-15-generic-dbgsym +Architecture: i386 amd64 armhf +Section: devel +Priority: optional +Depends: ${misc:Depends} +Provides: linux-debug +Description: Linux kernel debug image for version 3.11.0 on 64 bit x86 SMP + This package provides a kernel debug image for version 3.11.0 on + 64 bit x86 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-tools-3.11.0-15-generic +Architecture: i386 amd64 armhf +Section: devel +Priority: optional +Depends: ${misc:Depends}, linux-tools-3.11.0-15 +Description: Linux kernel version specific tools for version 3.11.0-15 + This package provides the architecture dependant parts for kernel + version locked tools (such as perf and x86_energy_perf_policy) for + version 3.11.0-15 on + 64 bit x86. + +Package: linux-udebs-generic +XC-Package-Type: udeb +Section: debian-installer +Architecture: i386 amd64 armhf +Depends: ${udeb:Depends} +Description: Metapackage depending on kernel udebs + This package depends on the all udebs that the kernel build generated, + for easier version and migration tracking. + + +Package: linux-image-3.11.0-15-generic-lpae +Architecture: armhf +Section: kernel +Priority: optional +Pre-Depends: dpkg (>= 1.10.24) +Provides: linux-image, linux-image-3.0, fuse-module, kvm-api-4, redhat-cluster-modules, ivtv-modules +Depends: ${misc:Depends}, ${shlibs:Depends}, initramfs-tools (>= 0.36ubuntu6), module-init-tools (>= 3.3-pre11-4ubuntu3) +Conflicts: hotplug (<< 0.0.20040105-1) +Recommends: flash-kernel [armhf] +Suggests: fdutils, linux-doc-3.11.0 | linux-source-3.11.0, linux-tools, linux-headers-3.11.0-15-generic-lpae +Description: Linux kernel image for version 3.11.0 on 64 bit x86 SMP + This package contains the Linux kernel image for version 3.11.0 on + 64 bit x86 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 Generic LPAE processors. + . + Geared toward desktop and server systems. + . + You likely do not want to install this package directly. Instead, install + the linux-generic-lpae meta-package, which will ensure that upgrades work + correctly, and that supporting packages are also installed. + +Package: linux-image-extra-3.11.0-15-generic-lpae +Architecture: armhf +Section: kernel +Priority: optional +Depends: ${misc:Depends}, ${shlibs:Depends}, linux-image-3.11.0-15-generic-lpae, crda (>=1.1.1-1ubuntu2) | wireless-crda +Description: Linux kernel extra modules for version 3.11.0 on 64 bit x86 SMP + This package contains the Linux kernel extra modules for version 3.11.0 on + 64 bit x86 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 Generic LPAE processors. + . + Geared toward desktop and server systems. + . + You likely do not want to install this package directly. Instead, install + the linux-generic-lpae meta-package, which will ensure that upgrades work + correctly, and that supporting packages are also installed. + +Package: linux-headers-3.11.0-15-generic-lpae +Architecture: armhf +Section: devel +Priority: optional +Depends: ${misc:Depends}, linux-headers-3.11.0-15, ${shlibs:Depends} +Provides: linux-headers, linux-headers-3.0 +Description: Linux kernel headers for version 3.11.0 on 64 bit x86 SMP + This package provides kernel header files for version 3.11.0 on + 64 bit x86 SMP. + . + This is for sites that want the latest kernel headers. Please read + /usr/share/doc/linux-headers-3.11.0-15/debian.README.gz for details. + +Package: linux-image-3.11.0-15-generic-lpae-dbgsym +Architecture: armhf +Section: devel +Priority: optional +Depends: ${misc:Depends} +Provides: linux-debug +Description: Linux kernel debug image for version 3.11.0 on 64 bit x86 SMP + This package provides a kernel debug image for version 3.11.0 on + 64 bit x86 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-tools-3.11.0-15-generic-lpae +Architecture: armhf +Section: devel +Priority: optional +Depends: ${misc:Depends}, linux-tools-3.11.0-15 +Description: Linux kernel version specific tools for version 3.11.0-15 + This package provides the architecture dependant parts for kernel + version locked tools (such as perf and x86_energy_perf_policy) for + version 3.11.0-15 on + 64 bit x86. + +Package: linux-udebs-generic-lpae +XC-Package-Type: udeb +Section: debian-installer +Architecture: armhf +Depends: ${udeb:Depends} +Description: Metapackage depending on kernel udebs + This package depends on the all udebs that the kernel build generated, + for easier version and migration tracking. + --- linux-3.11.0.orig/debian.master/control.stub +++ linux-3.11.0/debian.master/control.stub @@ -0,0 +1,288 @@ +Source: linux +Section: devel +Priority: optional +Maintainer: Ubuntu Kernel Team +Standards-Version: 3.9.4.0 +Build-Depends: debhelper (>= 5), cpio, module-init-tools, kernel-wedge (>= 2.24ubuntu1), makedumpfile [amd64 i386], libelf-dev, libnewt-dev, binutils-dev, rsync, libdw-dev, libpci-dev, dpkg (>= 1.16.0~ubuntu4), pkg-config, flex, bison, libunwind8-dev, openssl, libaudit-dev, bc, python-dev, gcc-4.7 [armhf], gawk +Build-Depends-Indep: xmlto, docbook-utils, ghostscript, transfig, bzip2, sharutils, asciidoc +Vcs-Git: http://kernel.ubuntu.com/git-repos/ubuntu/ubuntu-saucy.git +XS-Testsuite: autopkgtest +#XS-Testsuite-Depends: gcc-4.7 binutils + +Package: linux-source-3.11.0 +Architecture: all +Section: devel +Priority: optional +Provides: linux-source, linux-source-3 +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 3.11.0 with Ubuntu patches + This package provides the source code for the Linux kernel version + 3.11.0. + . + 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-3 +Replaces: linux-doc-3 +Description: Linux kernel specific documentation for version 3.11.0 + This package provides the various documents in the 3.11.0 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: kernel +Priority: optional +Depends: ${misc:Depends} +Replaces: linux-tools (<= 2.6.32-16.25) +Description: Linux kernel version specific tools for version 3.11.0 + This package provides the architecture independent parts for kernel + version locked tools (such as perf and x86_energy_perf_policy) for + version PGKVER. + +Package: linux-headers-3.11.0-15 +Architecture: all +Section: devel +Priority: optional +Depends: ${misc:Depends}, coreutils | fileutils (>= 4.0) +Description: Header files related to Linux kernel version 3.11.0 + This package provides kernel header files for version 3.11.0, for sites + that want the latest kernel headers. Please read + /usr/share/doc/linux-headers-3.11.0-15/debian.README.gz for details + +Package: linux-libc-dev +Architecture: i386 amd64 armhf arm64 x32 powerpc +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-3.11.0-15 +Architecture: i386 amd64 armhf +Section: devel +Priority: optional +Depends: ${misc:Depends}, ${shlibs:Depends}, linux-tools-common +Description: Linux kernel version specific tools for version 3.11.0-15 + This package provides the architecture dependant parts for kernel + version locked tools (such as perf and x86_energy_perf_policy) for + version 3.11.0-15 on + 64 bit x86. + You probabally want to install linux-tools-3.11.0-15-. + + +Package: linux-image-3.11.0-15-generic +Architecture: i386 amd64 armhf +Section: kernel +Priority: optional +Pre-Depends: dpkg (>= 1.10.24) +Provides: linux-image, linux-image-3.0, fuse-module, kvm-api-4, redhat-cluster-modules, ivtv-modules +Depends: ${misc:Depends}, ${shlibs:Depends}, initramfs-tools (>= 0.36ubuntu6), module-init-tools (>= 3.3-pre11-4ubuntu3) +Conflicts: hotplug (<< 0.0.20040105-1) +Recommends: grub-pc [i386 amd64 x32] | grub-efi-amd64 [amd64 x32] | grub-efi-ia32 [i386 amd64 x32] | grub [i386 amd64 x32] | lilo (>= 19.1) [i386 amd64 x32] | flash-kernel [armhf arm64] +Suggests: fdutils, linux-doc-3.11.0 | linux-source-3.11.0, linux-tools, linux-headers-3.11.0-15-generic +Description: Linux kernel image for version 3.11.0 on 64 bit x86 SMP + This package contains the Linux kernel image for version 3.11.0 on + 64 bit x86 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 Generic processors. + . + Geared toward desktop and server 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-image-extra-3.11.0-15-generic +Architecture: i386 amd64 armhf +Section: kernel +Priority: optional +Depends: ${misc:Depends}, ${shlibs:Depends}, linux-image-3.11.0-15-generic, crda (>=1.1.1-1ubuntu2) | wireless-crda +Description: Linux kernel extra modules for version 3.11.0 on 64 bit x86 SMP + This package contains the Linux kernel extra modules for version 3.11.0 on + 64 bit x86 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 Generic processors. + . + Geared toward desktop and server 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-3.11.0-15-generic +Architecture: i386 amd64 armhf +Section: devel +Priority: optional +Depends: ${misc:Depends}, linux-headers-3.11.0-15, ${shlibs:Depends} +Provides: linux-headers, linux-headers-3.0 +Description: Linux kernel headers for version 3.11.0 on 64 bit x86 SMP + This package provides kernel header files for version 3.11.0 on + 64 bit x86 SMP. + . + This is for sites that want the latest kernel headers. Please read + /usr/share/doc/linux-headers-3.11.0-15/debian.README.gz for details. + +Package: linux-image-3.11.0-15-generic-dbgsym +Architecture: i386 amd64 armhf +Section: devel +Priority: optional +Depends: ${misc:Depends} +Provides: linux-debug +Description: Linux kernel debug image for version 3.11.0 on 64 bit x86 SMP + This package provides a kernel debug image for version 3.11.0 on + 64 bit x86 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-tools-3.11.0-15-generic +Architecture: i386 amd64 armhf +Section: devel +Priority: optional +Depends: ${misc:Depends}, linux-tools-3.11.0-15 +Description: Linux kernel version specific tools for version 3.11.0-15 + This package provides the architecture dependant parts for kernel + version locked tools (such as perf and x86_energy_perf_policy) for + version 3.11.0-15 on + 64 bit x86. + +Package: linux-udebs-generic +XC-Package-Type: udeb +Section: debian-installer +Architecture: i386 amd64 armhf +Depends: ${udeb:Depends} +Description: Metapackage depending on kernel udebs + This package depends on the all udebs that the kernel build generated, + for easier version and migration tracking. + + +Package: linux-image-3.11.0-15-generic-lpae +Architecture: armhf +Section: kernel +Priority: optional +Pre-Depends: dpkg (>= 1.10.24) +Provides: linux-image, linux-image-3.0, fuse-module, kvm-api-4, redhat-cluster-modules, ivtv-modules +Depends: ${misc:Depends}, ${shlibs:Depends}, initramfs-tools (>= 0.36ubuntu6), module-init-tools (>= 3.3-pre11-4ubuntu3) +Conflicts: hotplug (<< 0.0.20040105-1) +Recommends: flash-kernel [armhf] +Suggests: fdutils, linux-doc-3.11.0 | linux-source-3.11.0, linux-tools, linux-headers-3.11.0-15-generic-lpae +Description: Linux kernel image for version 3.11.0 on 64 bit x86 SMP + This package contains the Linux kernel image for version 3.11.0 on + 64 bit x86 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 Generic LPAE processors. + . + Geared toward desktop and server systems. + . + You likely do not want to install this package directly. Instead, install + the linux-generic-lpae meta-package, which will ensure that upgrades work + correctly, and that supporting packages are also installed. + +Package: linux-image-extra-3.11.0-15-generic-lpae +Architecture: armhf +Section: kernel +Priority: optional +Depends: ${misc:Depends}, ${shlibs:Depends}, linux-image-3.11.0-15-generic-lpae, crda (>=1.1.1-1ubuntu2) | wireless-crda +Description: Linux kernel extra modules for version 3.11.0 on 64 bit x86 SMP + This package contains the Linux kernel extra modules for version 3.11.0 on + 64 bit x86 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 Generic LPAE processors. + . + Geared toward desktop and server systems. + . + You likely do not want to install this package directly. Instead, install + the linux-generic-lpae meta-package, which will ensure that upgrades work + correctly, and that supporting packages are also installed. + +Package: linux-headers-3.11.0-15-generic-lpae +Architecture: armhf +Section: devel +Priority: optional +Depends: ${misc:Depends}, linux-headers-3.11.0-15, ${shlibs:Depends} +Provides: linux-headers, linux-headers-3.0 +Description: Linux kernel headers for version 3.11.0 on 64 bit x86 SMP + This package provides kernel header files for version 3.11.0 on + 64 bit x86 SMP. + . + This is for sites that want the latest kernel headers. Please read + /usr/share/doc/linux-headers-3.11.0-15/debian.README.gz for details. + +Package: linux-image-3.11.0-15-generic-lpae-dbgsym +Architecture: armhf +Section: devel +Priority: optional +Depends: ${misc:Depends} +Provides: linux-debug +Description: Linux kernel debug image for version 3.11.0 on 64 bit x86 SMP + This package provides a kernel debug image for version 3.11.0 on + 64 bit x86 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-tools-3.11.0-15-generic-lpae +Architecture: armhf +Section: devel +Priority: optional +Depends: ${misc:Depends}, linux-tools-3.11.0-15 +Description: Linux kernel version specific tools for version 3.11.0-15 + This package provides the architecture dependant parts for kernel + version locked tools (such as perf and x86_energy_perf_policy) for + version 3.11.0-15 on + 64 bit x86. + +Package: linux-udebs-generic-lpae +XC-Package-Type: udeb +Section: debian-installer +Architecture: armhf +Depends: ${udeb:Depends} +Description: Metapackage depending on kernel udebs + This package depends on the all udebs that the kernel build generated, + for easier version and migration tracking. + --- linux-3.11.0.orig/debian.master/changelog +++ linux-3.11.0/debian.master/changelog @@ -0,0 +1,10493 @@ +linux (3.11.0-15.25) saucy; urgency=low + + [ John Johansen ] + + * SAUCE: Fix compat_sys_recvmsg on x32 archs + - LP: #1274349 + + -- Brad Figg Thu, 30 Jan 2014 08:13:36 -0800 + +linux (3.11.0-15.23) saucy; urgency=low + + [Brad Figg] + + * Release Tracking Bug + - LP: #1259259 + + [ Tim Gardner ] + + * [Config] Build-in ohci-pci + - LP: #1244176 + + -- Brad Figg Mon, 09 Dec 2013 09:41:31 -0800 + +linux (3.11.0-15.22) saucy; urgency=low + + [Brad Figg] + + * Release Tracking Bug + - LP: #1257092 + + [ Andy Whitcroft ] + + * [Config] CONFIG_DEBUG_BUGVERBOSE=y + - LP: #1252353 + + [ Benjamin Tissoires ] + + * SAUCE: (no-up) HID: appleir: force input to be set + - LP: #1244505 + + [ John Johansen ] + + * SAUCE: (no-up) apparmor: Fix tasks not subject to, reloaded policy + - LP: #1236455 + + [ Kamal Mostafa ] + + * SAUCE: (no-up) drm/i915: i915.disable_pch_pwm overrides PCH_PWM_ENABLE + quirk + - LP: #1163720 + + [ Manoj Iyer ] + + * SAUCE: Enable earlyprintk via the PL011. + - LP: #1248233 + + [ Paolo Pisati ] + + * [Config] armhf: RTC_DRV_PL031=y + - LP: #1252242 + * [Config] armhf: CPU_FREQ=y && ARM_HIGHBANK_CPUFREQ=y + - LP: #1249397 + + [ Rob Herring ] + + * [Config] armhf: PSTORE_RAM=y and PSTORE_CONSOLE=y + - LP: #1248492 + * SAUCE: net: calxedaxgmac: add mac address learning + - LP: #1248233 + + [ Tim Gardner ] + + * [Debian] Re-sign modules after debug objcopy + - LP: #1253155 + + [ Upstream Kernel Changes ] + + * Revert "rt2x00pci: Use PCI MSIs whenever possible" + - LP: #1257037 + * Revert "epoll: use freezable blocking call" + - LP: #1257037 + * Revert "select: use freezable blocking call" + - LP: #1257037 + * Revert "ima: policy for RAMFS" + - LP: #1257037 + * ARM: tlb: don't perform inner-shareable invalidation for local TLB ops + - LP: #1239800 + * ARM: 7855/1: Add check for Cortex-A15 errata 798181 ECO + - LP: #1239800 + * mfd: rtsx: Modify rts5249_optimize_phy + - LP: #1255297 + * usb: musb: start musb on the udc side, too + - LP: #1257037 + * usb-storage: add quirk for mandatory READ_CAPACITY_16 + - LP: #1257037 + * USB: support new huawei devices in option.c + - LP: #1257037 + * USB: quirks.c: add one device that cannot deal with suspension + - LP: #1257037 + * USB: quirks: add touchscreen that is dazzeled by remote wakeup + - LP: #1257037 + * USB: serial: ftdi_sio: add id for Z3X Box device + - LP: #1257037 + * xhci: Don't enable/disable RWE on bus suspend/resume. + - LP: #1257037 + * cifs: Fix inability to write files >2GB to SMB2/3 shares + - LP: #1257037 + * x86: Update UV3 hub revision ID + - LP: #1257037 + * cpufreq: s3c64xx: Rename index to driver_data + - LP: #1257037 + * cpufreq / intel_pstate: Fix max_perf_pct on resume + - LP: #1257037 + * bcache: Fixed incorrect order of arguments to bio_alloc_bioset() + - LP: #1257037 + * HID: wiimote: add LEGO-wiimote VID + - LP: #1257037 + * cgroup: fix to break the while loop in cgroup_attach_task() correctly + - LP: #1257037 + * mac80211: correctly close cancelled scans + - LP: #1257037 + * mac80211: drop spoofed packets in ad-hoc mode + - LP: #1257037 + * mac80211: use sta_info_get_bss() for nl80211 tx and client probing + - LP: #1257037 + * mac80211: update sta->last_rx on acked tx frames + - LP: #1257037 + * mac80211: fix crash if bitrate calculation goes wrong + - LP: #1257037 + * ath9k: fix tx queue scheduling after channel changes + - LP: #1257037 + * cfg80211: use the correct macro to check for active monitor support + - LP: #1257037 + * cfg80211: fix warning when using WEXT for IBSS + - LP: #1257037 + * mwifiex: fix SDIO interrupt lost issue + - LP: #1257037 + * rtlwifi: rtl8192cu: Fix error in pointer arithmetic + - LP: #1257037 + * iwlwifi: mvm: call ieee80211_scan_completed when needed + - LP: #1257037 + * iwlwifi: pcie: add SKUs for 6000, 6005 and 6235 series + - LP: #1257037 + * jfs: fix error path in ialloc + - LP: #1257037 + * can: at91-can: fix device to driver data mapping for platform devices + - LP: #1257037 + * can: flexcan: fix mx28 detection by rearanging OF match table + - LP: #1257037 + * can: flexcan: flexcan_chip_start: fix regression, mark one MB for TX + and abort pending TX + - LP: #1257037 + * SCSI: BusLogic: Fix an oops when intializing multimaster adapter + - LP: #1257037 + * SCSI: sd: call blk_pm_runtime_init before add_disk + - LP: #1257037 + * ecryptfs: Fix memory leakage in keystore.c + - LP: #1257037 + * raid5: set bio bi_vcnt 0 for discard request + - LP: #1257037 + * raid5: avoid finding "discard" stripe + - LP: #1257037 + * libata: make ata_eh_qc_retry() bump scmd->allowed on bogus failures + - LP: #1257037 + * md: avoid deadlock when md_set_badblocks. + - LP: #1257037 + * md: Fix skipping recovery for read-only arrays. + - LP: #1257037 + * target: Fix assignment of LUN in tracepoints + - LP: #1257037 + * target/pscsi: fix return value check + - LP: #1257037 + * vhost/scsi: Fix incorrect usage of get_user_pages_fast write parameter + - LP: #1257037 + * clockevents: Sanitize ticks to nsec conversion + - LP: #1257037 + * parisc: Do not crash 64bit SMP kernels on machines with >= 4GB RAM + - LP: #1257037 + * scripts/kallsyms: filter symbols not in kernel address space + - LP: #1257037 + * ARC: Incorrect mm reference used in vmalloc fault handler + - LP: #1257037 + * ALSA: hda - Add missing initial vmaster hook at build_controls callback + - LP: #1257037 + * ALSA: hda - Fix unbalanced runtime PM refcount after S3/S4 + - LP: #1257037 + * ALSA: hda - Add a fixup for ASUS N76VZ + - LP: #1257037 + * ALSA: fix oops in snd_pcm_info() caused by ASoC DPCM + - LP: #1257037 + * ASoC: wm_hubs: Add missing break in hp_supply_event() + - LP: #1257037 + * ASoC: dapm: Fix source list debugfs outputs + - LP: #1257037 + * staging: ozwpan: prevent overflow in oz_cdev_write() + - LP: #1257037 + * Staging: bcm: info leak in ioctl + - LP: #1257037 + * Staging: sb105x: info leak in mp_get_count() + - LP: #1257037 + * staging: wlags49_h2: buffer overflow setting station name + - LP: #1257037 + * uml: check length in exitcode_proc_write() + - LP: #1257037 + * xtensa: don't use alternate signal stack on threads + - LP: #1257037 + * mm: make generic_access_phys available for modules + - LP: #1257037 + * uio: provide vm access to UIO_MEM_PHYS maps + - LP: #1257037 + * Fix a few incorrectly checked [io_]remap_pfn_range() calls + - LP: #1257037 + * lib/scatterlist.c: don't flush_kernel_dcache_page on slab page + - LP: #1257037 + * aacraid: missing capable() check in compat ioctl + - LP: #1257037 + * clk: fixup argument order when setting VCO parameters + - LP: #1257037 + * clk: nomadik: set all timers to use 2.4 MHz TIMCLK + - LP: #1257037 + * mm: numa: Do not account for a hinting fault if we raced + - LP: #1257037 + * mm: Wait for THP migrations to complete during NUMA hinting faults + - LP: #1257037 + * mm: Prevent parallel splits during THP migration + - LP: #1257037 + * mm: numa: Sanitize task_numa_fault() callsites + - LP: #1257037 + * mm: Close races between THP migration and PMD numa clearing + - LP: #1257037 + * mm: Account for a THP NUMA hinting update as one PTE update + - LP: #1257037 + * mm: /proc/pid/pagemap: inspect _PAGE_SOFT_DIRTY only on present pages + - LP: #1257037 + * mm/pagewalk.c: fix walk_page_range() access of wrong PTEs + - LP: #1257037 + * drm/vmwgfx: Don't put resources with invalid id's on lru list + - LP: #1257037 + * drm/vmwgfx: Don't kill clients on VT switch + - LP: #1257037 + * drm/i915: split aux_clock_divider logic in a separated function for + reuse. + - LP: #1257037 + * drm/i915: Retry DP aux_ch communications with a different clock after + failure + - LP: #1257037 + * drm: Prevent overwriting from userspace underallocating core ioctl + structs + - LP: #1257037 + * drm: Pad drm_mode_get_connector to 64-bit boundary + - LP: #1257037 + * drm/radeon/atom: workaround vbios bug in transmitter table on rs780 + - LP: #1257037 + * drm/radeon: make missing smc ucode non-fatal (r7xx-SI) + - LP: #1257037 + * drm/i915: Add HSW CRT output readout support + - LP: #1257037 + * drm/i915: Add support for pipe_bpp readout + - LP: #1257037 + * drm/i915: No LVDS hardware on Intel D410PT and D425KT + - LP: #1257037 + * drm/i915: Fix the PPT fdi lane bifurcate state handling on ivb + - LP: #1257037 + * mutex: Avoid gcc version dependent __builtin_constant_p() usage + - LP: #1257037 + * seq_file: always update file->f_pos in seq_lseek() + - LP: #1257037 + * NTB: Add Error Handling in ntb_device_setup + - LP: #1257037 + * NTB: Correct Number of Scratch Pad Registers + - LP: #1257037 + * NTB: Correct USD/DSD Identification + - LP: #1257037 + * NTB: Correct debugfs to work with more than 1 NTB Device + - LP: #1257037 + * Linux 3.11.8 + - LP: #1257037 + * net/mlx4_core: Fix call to __mlx4_unregister_mac + - LP: #1257037 + * net: sctp: do not trigger BUG_ON in sctp_cmd_delete_tcb + - LP: #1257037 + * net: flow_dissector: fail on evil iph->ihl + - LP: #1257037 + * virtio-net: correctly handle cpu hotplug notifier during resuming + - LP: #1257037 + * xen-netback: use jiffies_64 value to calculate credit timeout + - LP: #1257037 + * cxgb3: Fix length calculation in write_ofld_wr() on 32-bit + architectures + - LP: #1257037 + * tcp: gso: fix truesize tracking + - LP: #1257037 + * ipv6: ip6_dst_check needs to check for expired dst_entries + - LP: #1257037 + * ipv6: reset dst.expires value when clearing expire flag + - LP: #1257037 + * xen-netback: Handle backend state transitions in a more robust way + - LP: #1257037 + * xen-netback: transition to CLOSED when removing a VIF + - LP: #1257037 + * Thermal: x86_pkg_temp: change spin lock + - LP: #1257037 + * hyperv-fb: add pci stub + - LP: #1257037 + * USB: add new zte 3g-dongle's pid to option.c + - LP: #1257037 + * ALSA: hda - hdmi: Fix reported channel map on common default layouts + - LP: #1257037 + * tracing: Fix potential out-of-bounds in trace_get_user() + - LP: #1257037 + * drm/i915/dp: workaround BIOS eDP bpp clamping issue + - LP: #1257037 + * perf: Fix perf ring buffer memory ordering + - LP: #1257037 + * iwlwifi: pcie: add new SKUs for 7000 & 3160 NIC series + - LP: #1257037 + * misc: atmel_pwm: add deferred-probing support + - LP: #1257037 + * backlight: atmel-pwm-bl: fix deferred probe from __init + - LP: #1257037 + * usb: fix cleanup after failure in hub_configure() + - LP: #1257037 + * usb: fail on usb_hub_create_port_device() errors + - LP: #1257037 + * usbcore: set lpm_capable field for LPM capable root hubs + - LP: #1257037 + * media: sh_vou: almost forever loop in sh_vou_try_fmt_vid_out() + - LP: #1257037 + * Linux 3.11.9 + - LP: #1257037 + * ACPICA: DeRefOf operator: Update to fully resolve FieldUnit and + BufferField refs. + - LP: #1257037 + * libertas: potential oops in debugfs + - LP: #1257037 + * aacraid: prevent invalid pointer dereference + - LP: #1257037 + * ACPICA: Return error if DerefOf resolves to a null package element. + - LP: #1257037 + * ACPICA: Fix for a Store->ArgX when ArgX contains a reference to a + field. + - LP: #1257037 + * USB: mos7840: fix tiocmget error handling + - LP: #1257037 + * can: kvaser_usb: fix usb endpoints detection + - LP: #1257037 + * Btrfs: relocate csums properly with prealloc extents + - LP: #1257037 + * crypto: ansi_cprng - Fix off by one error in non-block size request + - LP: #1257037 + * crypto: s390 - Fix aes-cbc IV corruption + - LP: #1257037 + * can: c_can: Fix RX message handling, handle lost message before EOB + - LP: #1257037 + * alx: Reset phy speed after resume + - LP: #1257037 + * ipc,shm: correct error return value in shmctl (SHM_UNLOCK) + - LP: #1257037 + * ipc,shm: fix shm_file deletion races + - LP: #1257037 + * drm/nvc0-/gr: fix a number of missing explicit array terminators... + - LP: #1257037 + * thinkpad_acpi: Fix build error when CONFIG_SND_MAX_CARDS > 32 + - LP: #1257037 + * SUNRPC: don't map EKEYEXPIRED to EACCES in call_refreshresult + - LP: #1257037 + * sched, idle: Fix the idle polling state logic + - LP: #1257037 + * PCI: Allow PCIe Capability link-related register access for switches + - LP: #1257037 + * PCI: Remove PCIe Capability version checks + - LP: #1257037 + * PCI: Support PCIe Capability Slot registers only for ports with slots + - LP: #1257037 + * perf/ftrace: Fix paranoid level for enabling function tracer + - LP: #1257037 + * ACPI / EC: Ensure lock is acquired before accessing ec struct members + - LP: #1257037 + * ACPI / video: Quirk initial backlight level 0 + - LP: #1257037 + * ACPI / hotplug: Fix handle_root_bridge_removal() + - LP: #1257037 + * ACPI / hotplug: Do not execute "insert in progress" _OST + - LP: #1257037 + * Staging: zram: Fix access of NULL pointer + - LP: #1257037 + * staging: comedi: avoid memleak for subdevice private + - LP: #1257037 + * Drivers: hv: vmbus: Fix a bug in channel rescind code + - LP: #1257037 + * rt2x00: fix a crash bug in the HT descriptor handling fix + - LP: #1257037 + * rt2x00: check if device is still available on rt2x00mac_flush() + - LP: #1257037 + * rt2x00: rt2800lib: fix VGC adjustment for RT5592 + - LP: #1257037 + * rt2x00: fix HT TX descriptor settings regression + - LP: #1257037 + * Bluetooth: revert: "Bluetooth: Add missing reset_resume dev_pm_ops" + - LP: #1257037 + * exec/ptrace: fix get_dumpable() incorrect tests + - LP: #1257037 + - CVE-2013-2929 + * Linux 3.11.10 + - LP: #1257037 + + -- Brad Figg Mon, 02 Dec 2013 14:29:15 -0800 + +linux (3.11.0-14.21) saucy; urgency=low + + [Brad Figg] + + * Release Tracking Bug + - LP: #1250540 + + [ Anthony Wong ] + + * SAUCE: Work around broken ACPI backlight on Dell Inspiron 5537 + - LP: #1231305 + + [ Colin Ian King ] + + * SAUCE: eCryptfs: fix 32 bit corruption issue + - LP: #1243636 + + [ Ming Lei ] + + * SAUCE: ext4: fix performance regression in ext4_writepages + - LP: #1242812 + + [ Upstream Kernel Changes ] + + * Revert "bridge: only expire the mdb entry when query is received" + - LP: #1249081 + * ext4: fix performance regression in writeback of random writes + - LP: #1242812 + * be2net: pass if_id for v1 and V2 versions of TX_CREATE cmd + - LP: #1234019 + * tcp: TSO packets automatic sizing + - LP: #1249081 + * tcp: TSQ can use a dynamic limit + - LP: #1249081 + * tcp: must unclone packets before mangling them + - LP: #1249081 + * tcp: do not forget FIN in tcp_shifted_skb() + - LP: #1249081 + * tcp: fix incorrect ca_state in tail loss probe + - LP: #1249081 + * net: do not call sock_put() on TIMEWAIT sockets + - LP: #1249081 + * batman-adv: set up network coding packet handlers during module init + - LP: #1249081 + * l2tp: fix kernel panic when using IPv4-mapped IPv6 addresses + - LP: #1249081 + * l2tp: Fix build warning with ipv6 disabled. + - LP: #1249081 + * net: mv643xx_eth: update statistics timer from timer context only + - LP: #1249081 + * net: mv643xx_eth: fix orphaned statistics timer crash + - LP: #1249081 + * net: heap overflow in __audit_sockaddr() + - LP: #1249081 + * sit: amend "allow to use rtnl ops on fb tunnel" + - LP: #1249081 + * proc connector: fix info leaks + - LP: #1249081 + * ipv4: fix ineffective source address selection + - LP: #1249081 + * can: dev: fix nlmsg size calculation in can_get_size() + - LP: #1249081 + * net: secure_seq: Fix warning when CONFIG_IPV6 and CONFIG_INET are not + selected + - LP: #1249081 + * xen-netback: Don't destroy the netdev until the vif is shut down + - LP: #1249081 + * net/mlx4_en: Rename name of mlx4_en_rx_alloc members + - LP: #1249081 + * net/mlx4_en: Fix pages never dma unmapped on rx + - LP: #1249081 + * net: vlan: fix nlmsg size calculation in vlan_get_size() + - LP: #1249081 + * bridge: update mdb expiration timer upon reports. + - LP: #1249081 + * vti: get rid of nf mark rule in prerouting + - LP: #1249081 + * l2tp: must disable bh before calling l2tp_xmit_skb() + - LP: #1249081 + * netem: update backlog after drop + - LP: #1249081 + * netem: free skb's in tree on reset + - LP: #1249081 + * farsync: fix info leak in ioctl + - LP: #1249081 + * unix_diag: fix info leak + - LP: #1249081 + * connector: use nlmsg_len() to check message length + - LP: #1249081 + * bnx2x: record rx queue for LRO packets + - LP: #1249081 + * virtio-net: don't respond to cpu hotplug notifier if we're not ready + - LP: #1249081 + * virtio-net: refill only when device is up during setting queues + - LP: #1249081 + * bridge: Correctly clamp MAX forward_delay when enabling STP + - LP: #1249081 + * net: dst: provide accessor function to dst->xfrm + - LP: #1249081 + * sctp: Use software crc32 checksum when xfrm transform will happen. + - LP: #1249081 + * sctp: Perform software checksum if packet has to be fragmented. + - LP: #1249081 + * wanxl: fix info leak in ioctl + - LP: #1249081 + * net: unix: inherit SOCK_PASS{CRED, SEC} flags from socket to fix race + - LP: #1249081 + * net: fix cipso packet validation when !NETLABEL + - LP: #1249081 + * inet: fix possible memory corruption with UDP_CORK and UFO + - LP: #1249081 + * ipv6: always prefer rt6i_gateway if present + - LP: #1249081 + * ipv6: fill rt6i_gateway with nexthop address + - LP: #1249081 + * netfilter: nf_conntrack: fix rt6i_gateway checks for H.323 helper + - LP: #1249081 + * ipv6: probe routes asynchronous in rt6_probe + - LP: #1249081 + * davinci_emac.c: Fix IFF_ALLMULTI setup + - LP: #1249081 + * ARM: 7851/1: check for number of arguments in + syscall_get/set_arguments() + - LP: #1249081 + * ARM: integrator: deactivate timer0 on the Integrator/CP + - LP: #1249081 + * ext[34]: fix double put in tmpfile + - LP: #1249081 + * gpio/lynxpoint: check if the interrupt is enabled in IRQ handler + - LP: #1249081 + * dm snapshot: fix data corruption + - LP: #1249081 + - CVE-2013-4299 + * i2c: ismt: initialize DMA buffer + - LP: #1249081 + * mm: migration: do not lose soft dirty bit if page is in migration state + - LP: #1249081 + * mm/zswap: bugfix: memory leak when re-swapon + - LP: #1249081 + * mm: fix BUG in __split_huge_page_pmd + - LP: #1249081 + * ALSA: us122l: Fix pcm_usb_stream mmapping regression + - LP: #1249081 + * ALSA: hda - Fix inverted internal mic not indicated on some machines + - LP: #1227491, #1239392, #1249081 + * writeback: fix negative bdi max pause + - LP: #1249081 + * w1 - call request_module with w1 master mutex unlocked + - LP: #1249081 + * wireless: radiotap: fix parsing buffer overrun + - LP: #1249081 + * wireless: cw1200: acquire hwbus lock around cw1200_irq_handler() call. + - LP: #1249081 + * serial: vt8500: add missing braces + - LP: #1249081 + * USB: serial: ti_usb_3410_5052: add Abbott strip port ID to combined + table as well. + - LP: #1249081 + * USB: serial: option: add support for Inovia SEW858 device + - LP: #1249081 + * usb: serial: option: blacklist Olivetti Olicard200 + - LP: #1249081 + * Linux 3.11.7 + - LP: #1249081 + * tg3: Add support for new 57786 device id. + - LP: #1242610 + + -- Brad Figg Tue, 12 Nov 2013 08:10:21 -0800 + +linux (3.11.0-13.20) saucy; urgency=low + + [ Brad Figg ] + + * Release Tracking Bug + - LP: #1242793 + + [ Paolo Pisati ] + + * [Config] amhf: VIRTIO_CONSOLE=y + - LP: #1237982 + * [Config] AHCI_IMX=y + - LP: #1240038 + + [ Tim Gardner ] + + * [Config] CONFIG_USB_OTG=n for all arches + - LP: #1047527 + * dm-raid4-5: Fix compile issues + - LP: #1241086 + * [Config] CONFIG_DM_RAID45=m + - LP: #1241086 + + [ Upstream Kernel Changes ] + + * Revert "cw1200: Don't perform SPI transfers in interrupt context" + - LP: #1237530 + * block: Fix bio_copy_data() + - LP: #1237530 + * sysv: Add forgotten superblock lock init for v7 fs + - LP: #1237530 + * bcache: Fix a dumb journal discard bug + - LP: #1237530 + * bcache: Strip endline when writing the label through sysfs + - LP: #1237530 + * bcache: Fix for when no journal entries are found + - LP: #1237530 + * bcache: Fix a writeback performance regression + - LP: #1237530 + * bcache: Fix a flush/fua performance bug + - LP: #1237530 + * bcache: Fix a dumb CPU spinning bug in writeback + - LP: #1237530 + * bcache: Fix a shrinker deadlock + - LP: #1237530 + * bcache: Fix for handling overlapping extents when reading in a btree + node + - LP: #1237530 + * bcache: Fix flushes in writeback mode + - LP: #1237530 + * kernel/reboot.c: re-enable the function of variable reboot_default + - LP: #1237530 + * x86/reboot: Add quirk to make Dell C6100 use reboot=pci automatically + - LP: #1237530 + * tools lib lk: Uninclude linux/magic.h in debugfs.c + - LP: #1237530 + * x86, efi: Don't map Boot Services on i386 + - LP: #1237530 + * mei: make me client counters less error prone + - LP: #1237530 + * mei: bus: stop wait for read during cl state transition + - LP: #1237530 + * mei: cancel stall timers in mei_reset + - LP: #1237530 + * tty: Fix SIGTTOU not sent with tcflush() + - LP: #1237530 + * serial: tegra: fix tty-kref leak + - LP: #1237530 + * serial: pch_uart: fix tty-kref leak in rx-error path + - LP: #1237530 + * serial: pch_uart: fix tty-kref leak in dma-rx path + - LP: #1237530 + * ARM: 7837/3: fix Thumb-2 bug in AES assembler code + - LP: #1237530 + * staging: vt6656: [BUG] main_usb.c oops on device_close move flag + earlier. + - LP: #1237530 + * staging: vt6656: [BUG] iwctl_siwencodeext return if device not open + - LP: #1237530 + * drm/i915/tv: clear adjusted_mode.flags + - LP: #1237530 + * cw1200: Use a threaded oneshot irq handler for cw1200_spi + - LP: #1237530 + * xhci: Ensure a command structure points to the correct trb on the + command ring + - LP: #1237530 + * xhci: Fix oops happening after address device timeout + - LP: #1237530 + * USB: fix PM config symbol in uhci-hcd, ehci-hcd, and xhci-hcd + - LP: #1237530 + * xhci: Fix race between ep halt and URB cancellation + - LP: #1237530 + * USB: OHCI: accept very late isochronous URBs + - LP: #1237530 + * USB: UHCI: accept very late isochronous URBs + - LP: #1237530 + * USB: Fix breakage in ffs_fs_mount() + - LP: #1237530 + * fsl/usb: Resolve PHY_CLK_VLD instability issue for ULPI phy + - LP: #1237530 + * usb: dwc3: pci: add support for BayTrail + - LP: #1237530 + * usb: dwc3: add support for Merrifield + - LP: #1237530 + * usb/core/devio.c: Don't reject control message to endpoint with wrong + direction bit + - LP: #1237530 + * driver core : Fix use after free of dev->parent in device_shutdown + - LP: #1237530 + * dm snapshot: workaround for a false positive lockdep warning + - LP: #1237530 + * dm-snapshot: fix performance degradation due to small hash size + - LP: #1237530 + * dm mpath: disable WRITE SAME if it fails + - LP: #1237530 + * drm/i915: preserve pipe A quirk in i9xx_set_pipeconf + - LP: #1237530 + * drm/i915/dp: increase i2c-over-aux retry interval on AUX DEFER + - LP: #1237530 + * drm/radeon/cik: Fix printing of client name on VM protection fault + - LP: #1237530 + * drm/radeon/cik: Fix encoding of number of banks in tiling configuration + info + - LP: #1237530 + * drm/radeon/cik: fix overflow in vram fetch + - LP: #1237530 + * drm/radeon: avoid UVD corruption on AGP cards using GPU gart + - LP: #1237530 + * drm/radeon: Make r100_cp_ring_info() and radeon_ring_gfx() safe (v2) + - LP: #1237530 + * drm/radeon: don't set default clocks for SI when DPM is disabled + - LP: #1237530 + * drm/radeon: disable tests/benchmarks if accel is disabled + - LP: #1237530 + * drm/radeon: add missing hdmi callbacks for rv6xx + - LP: #1237530 + * drm/radeon: fix hdmi audio on DCE3.0/3.1 asics + - LP: #1237530 + * hwmon: (applesmc) Check key count before proceeding + - LP: #1237530 + * ALSA: compress: Fix compress device unregister. + - LP: #1237530 + * irq: Always define devm_{request_threaded,free}_irq() + - LP: #1237530 + * Linux 3.11.4 + - LP: #1237530 + * ARM: dtsi: enable ahci sata on imx6q platforms + - LP: #1240038 + * nfsd4: fix leak of inode reference on delegation failure + - LP: #1240072 + * HID: fix data access in implement() + - LP: #1240072 + * HID: fix unused rsize usage + - LP: #1240072 + * sh_eth: fix napi_{en|dis}able() calls racing against interrupts + - LP: #1240072 + * caif: Add missing braces to multiline if in cfctrl_linkup_request + - LP: #1240072 + * tcp: Add missing braces to do_tcp_setsockopt + - LP: #1240072 + * ipv6/exthdrs: accept tlv which includes only padding + - LP: #1240072 + * net: fib: fib6_add: fix potential NULL pointer dereference + - LP: #1240072 + * net: sctp: fix bug in sctp_poll for SOCK_SELECT_ERR_QUEUE + - LP: #1240072 + * net: sctp: fix smatch warning in sctp_send_asconf_del_ip + - LP: #1240072 + * net: fix multiqueue selection + - LP: #1240072 + * net: flow_dissector: fix thoff for IPPROTO_AH + - LP: #1240072 + * net_sched: htb: fix a typo in htb_change_class() + - LP: #1240072 + * r8169: enforce RX_MULTI_EN for the 8168f. + - LP: #1240072 + * netpoll: Should handle ETH_P_ARP other than ETH_P_IP in + netpoll_neigh_reply + - LP: #1240072 + * netpoll: fix NULL pointer dereference in netpoll_cleanup + - LP: #1240072 + * tuntap: correctly handle error in tun_set_iff() + - LP: #1240072 + * net: sctp: fix ipv6 ipsec encryption bug in sctp_v6_xmit + - LP: #1240072 + * xen-netback: count number required slots for an skb more carefully + - LP: #1240072 + * resubmit bridge: fix message_age_timer calculation + - LP: #1240072 + * bridge: Clamp forward_delay when enabling STP + - LP: #1240072 + * bridge: use br_port_get_rtnl within rtnl lock + - LP: #1240072 + * bridge: fix NULL pointer deref of br_port_get_rcu + - LP: #1240072 + * ip6_tunnels: raddr and laddr are inverted in nl msg + - LP: #1240072 + * net: sctp: rfc4443: do not report ICMP redirects to user space + - LP: #1240072 + * ethernet/arc/arc_emac: Fix huge delays in large file copies + - LP: #1240072 + * vxlan: Avoid creating fdb entry with NULL destination + - LP: #1240072 + * batman-adv: set the TAG flag for the vid passed to BLA + - LP: #1240072 + * net:dccp: do not report ICMP redirects to user space + - LP: #1240072 + * ip: use ip_hdr() in __ip_make_skb() to retrieve IP header + - LP: #1240072 + * ip: generate unique IP identificator if local fragmentation is allowed + - LP: #1240072 + * skge: fix invalid value passed to pci_unmap_sigle + - LP: #1240072 + * ipv6: udp packets following an UFO enqueued packet need also be handled + by UFO + - LP: #1240072 + * via-rhine: fix VLAN priority field (PCP, IEEE 802.1p) + - LP: #1240072 + * IPv6 NAT: Do not drop DNATed 6to4/6rd packets + - LP: #1240072 + * net: net_secret should not depend on TCP + - LP: #1240072 + * ip_tunnel: Do not use stale inner_iph pointer. + - LP: #1240072 + * dm9601: fix IFF_ALLMULTI handling + - LP: #1240072 + * bonding: Fix broken promiscuity reference counting issue + - LP: #1240072 + * ipv6: gre: correct calculation of max_headroom + - LP: #1240072 + * ipv4 igmp: use in_dev_put in timer handlers instead of __in_dev_put + - LP: #1240072 + * ipv6 mcast: use in6_dev_put in timer handlers instead of __in6_dev_put + - LP: #1240072 + * ll_temac: Reset dma descriptors indexes on ndo_open + - LP: #1240072 + * ip_tunnel: Fix a memory corruption in ip_tunnel_xmit + - LP: #1240072 + * ip_tunnel_core: Change __skb_push back to skb_push + - LP: #1240072 + * sit: allow to use rtnl ops on fb tunnel + - LP: #1240072 + * ip6tnl: allow to use rtnl ops on fb tunnel + - LP: #1240072 + * avr32: fix clockevents kernel warning + - LP: #1240072 + * regulator: ti-abb: Fix bias voltage glitch in transition to bypass mode + - LP: #1240072 + * fs/binfmt_elf.c: prevent a coredump with a large vm_map_count from + Oopsing + - LP: #1240072 + * gpio/omap: maintain GPIO and IRQ usage separately + - LP: #1240072 + * gpio/omap: auto-setup a GPIO when used as an IRQ + - LP: #1240072 + * ASoC: max98095: a couple array underflows + - LP: #1240072 + * ASoC: 88pm860x: array overflow in snd_soc_put_volsw_2r_st() + - LP: #1240072 + * ASoC: ab8500-codec: info leak in anc_status_control_put() + - LP: #1240072 + * ARM: kvm: rename cpu_reset to avoid name clash + - LP: #1240072 + * ARM: mach-integrator: Add stub for pci_v3_early_init() for !CONFIG_PCI + - LP: #1240072 + * iommu/arm-smmu: fix a signedness bug + - LP: #1240072 + * iommu/arm-smmu: fix iommu_present() test in init + - LP: #1240072 + * iommu/arm-smmu: don't enable SMMU device until probing has completed + - LP: #1240072 + * powerpc/iommu: Use GFP_KERNEL instead of GFP_ATOMIC in + iommu_init_table() + - LP: #1240072 + * powerpc/perf: Fix handling of FAB events + - LP: #1240072 + * powerpc/tm: Switch out userspace PPR and DSCR sooner + - LP: #1240072 + * powerpc/tm: Turn interrupts hard off in tm_reclaim() + - LP: #1240072 + * powerpc/vio: Fix modalias_show return values + - LP: #1240072 + * powerpc: Fix parameter clobber in csum_partial_copy_generic() + - LP: #1240072 + * powerpc: Fix memory hotplug with sparse vmemmap + - LP: #1240072 + * powerpc/sysfs: Disable writing to PURR in guest mode + - LP: #1240072 + * powerpc: Restore registers on error exit from + csum_partial_copy_generic() + - LP: #1240072 + * fuse: wait for writeback in fuse_file_fallocate() + - LP: #1240072 + * fuse: fix fallocate vs. ftruncate race + - LP: #1240072 + * brcmfmac: obtain platform data upon module initialization + - LP: #1240072 + * Bluetooth: Fix security level for peripheral role + - LP: #1240072 + * Bluetooth: Fix encryption key size for peripheral role + - LP: #1240072 + * Bluetooth: Add a new PID/VID 0cf3/e005 for AR3012. + - LP: #1240072 + * Bluetooth: Add support for BCM20702A0 [0b05, 17cb] + - LP: #1240072 + * Bluetooth: Introduce a new HCI_RFKILLED flag + - LP: #1240072 + * Bluetooth: Fix rfkill functionality during the HCI setup stage + - LP: #1240072 + * nilfs2: fix issue with race condition of competition between segments + for dirty blocks + - LP: #1240072 + * ipc/sem.c: fix race in sem_lock() + - LP: #1240072 + * ipc,msg: prevent race with rmid in msgsnd,msgrcv + - LP: #1240072 + * ipc: fix race with LSMs + - LP: #1240072 + * sparc64: Fix buggy strlcpy() conversion in ldom_reboot(). + - LP: #1240072 + * sparc: fix ldom_reboot buffer overflow harder + - LP: #1240072 + * sparc64: Remove RWSEM export leftovers + - LP: #1240072 + * sparc64: Fix ITLB handler of null page + - LP: #1240072 + * esp_scsi: Fix tag state corruption when autosensing. + - LP: #1240072 + * sparc64: Fix off by one in trampoline TLB mapping installation loop. + - LP: #1240072 + * sparc64: Fix not SRA'ed %o5 in 32-bit traced syscall + - LP: #1240072 + * sparc32: Fix exit flag passed from traced sys_sigreturn + - LP: #1240072 + * mm: Fix generic hugetlb pte check return type. + - LP: #1240072 + * mm/bounce.c: fix a regression where MS_SNAP_STABLE (stable pages + snapshotting) was ignored + - LP: #1240072 + * kernel/kmod.c: check for NULL in call_usermodehelper_exec() + - LP: #1240072 + * staging: comedi: ni_65xx: (bug fix) confine insn_bits to one subdevice + - LP: #1240072 + * NFSv4.1: nfs4_fl_prepare_ds - fix bugs when the connect attempt fails + - LP: #1240072 + * mwifiex: fix NULL pointer dereference in usb suspend handler + - LP: #1240072 + * mwifiex: fix hang issue for USB chipsets + - LP: #1240072 + * mwifiex: fix PCIe hs_cfg cancel cmd timeout + - LP: #1240072 + * usb: chipidea: add Intel Clovertrail pci id + - LP: #1240072 + * USB: serial: option: Ignore card reader interface on Huawei E1750 + - LP: #1240072 + * xen/hvc: allow xenboot console to be used again + - LP: #1240072 + * ib_srpt: Destroy cm_id before destroying QP. + - LP: #1240072 + * ib_srpt: always set response for task management + - LP: #1240072 + * rtlwifi: Align private space in rtl_priv struct + - LP: #1240072 + * p54usb: add USB ID for Corega WLUSB2GTST USB adapter + - LP: #1240072 + * mm: avoid reinserting isolated balloon pages into LRU lists + - LP: #1240072 + * iscsi-target: Only perform wait_for_tasks when performing shutdown + - LP: #1240072 + * net: Update the sysctl permissions handler to test effective uid/gid + - LP: #1240072 + * irq: Force hardirq exit's softirq processing on its own stack + - LP: #1240072 + * drm/radeon: fix hdmi callbacks for rv6xx (incorrectly added to r520) + - LP: #1240072 + * dmaengine: imx-dma: fix lockdep issue between irqhandler and tasklet + - LP: #1240072 + * dmaengine: imx-dma: fix callback path in tasklet + - LP: #1240072 + * dmaengine: imx-dma: fix slow path issue in prep_dma_cyclic + - LP: #1240072 + * ACPI / IPMI: Fix atomic context requirement of ipmi_msg_handler() + - LP: #1240072 + * xfs: fix node forward in xfs_node_toosmall + - LP: #1240072 + * drm/nouveau/bios/init: stub opcode 0xaa + - LP: #1240072 + * ARM: tegra: unify Tegra's Kconfig a bit more + - LP: #1240072 + * ALSA: hda - Fix GPIO for Acer Aspire 3830TG + - LP: #1240072 + * ARM: multi_v7_defconfig: enable ARM_ATAG_DTB_COMPAT + - LP: #1240072 + * HID: wiimote: fix FF deadlock + - LP: #1240072 + * mmc: fix null pointer use in mmc_blk_remove_req + - LP: #1240072 + * tile: use a more conservative __my_cpu_offset in CONFIG_PREEMPT + - LP: #1240072 + * s390: fix system call restart after inferior call + - LP: #1240072 + * Btrfs: reset ret in record_one_backref + - LP: #1240072 + * Btrfs: change how we queue blocks for backref checking + - LP: #1240072 + * Btrfs: skip subvol entries when checking if we've created a dir already + - LP: #1240072 + * Btrfs: remove ourselves from the cluster list under lock + - LP: #1240072 + * HID: roccat: add support for KonePureOptical v2 + - LP: #1240072 + * HID: add Holtek USB ID 04d9:a081 SHARKOON DarkGlider + - LP: #1240072 + * HID: uhid: add devname module alias + - LP: #1240072 + * HID: uhid: allocate static minor + - LP: #1240072 + * net: qmi_wwan: add new Qualcomm devices + - LP: #1240072 + * bcache: Fix a null ptr deref regression + - LP: #1240072 + * Linux 3.11.5 + - LP: #1240072 + * ALSA: snd-usb-usx2y: remove bogus frame checks + - LP: #1242700 + * ALSA: hda - hdmi: Fix channel map switch not taking effect + - LP: #1242700 + * ALSA: hda - Add fixup for ASUS N56VZ + - LP: #1242700 + * ALSA: hda - Fix microphone for Sony VAIO Pro 13 (Haswell model) + - LP: #1227093, #1242700 + * random: run random_int_secret_init() run after all late_initcalls + - LP: #1242700 + * vfs: allow O_PATH file descriptors for fstatfs() + - LP: #1242700 + * i2c: omap: Clear ARDY bit twice + - LP: #1242700 + * hwmon: (applesmc) Always read until end of data + - LP: #1242700 + * Btrfs: use right root when checking for hash collision + - LP: #1242700 + * ext4: fix memory leak in xattr + - LP: #1242700 + * KVM: PPC: Book3S HV: Fix typo in saving DSCR + - LP: #1242700 + * parisc: fix interruption handler to respect pagefault_disable() + - LP: #1242700 + * ARC: Fix __udelay calculation + - LP: #1242700 + * ARC: Handle zero-overhead-loop in unaligned access handler + - LP: #1242700 + * ARC: Fix 32-bit wrap around in access_ok() + - LP: #1242700 + * ARC: Workaround spinlock livelock in SMP SystemC simulation + - LP: #1242700 + * ARC: Fix signal frame management for SA_SIGINFO + - LP: #1242700 + * ARC: Ignore ptrace SETREGSET request for synthetic register "stop_pc" + - LP: #1242700 + * watchdog: ts72xx_wdt: locking bug in ioctl + - LP: #1242700 + * watchdog: kempld_wdt: Fix bit mask definition + - LP: #1242700 + * MIPS: stack protector: Fix per-task canary switch + - LP: #1242700 + * drm/radeon/dpm/btc: off by one in btc_set_mc_special_registers() + - LP: #1242700 + * compiler/gcc4: Add quirk for 'asm goto' miscompilation bug + - LP: #1242700 + * ALSA: hda - Fix mono speakers and headset mic on Dell Vostro 5470 + - LP: #1236228, #1242700 + * drm/i915/hsw: Disable L3 caching of atomic memory operations. + - LP: #1242700 + * drm/i915: Only apply DPMS to the encoder if enabled + - LP: #1242700 + * drm/i915: fix rps.vlv_work initialization + - LP: #1242700 + * drm/radeon/dpm: off by one in si_set_mc_special_registers() + - LP: #1242700 + * drm/radeon: forever loop on error in radeon_do_test_moves() + - LP: #1242700 + * drm/radeon: fix typo in CP DMA register headers + - LP: #1242700 + * drm/radeon: fix hw contexts for SUMO2 asics + - LP: #1242700 + * ipc,shm: introduce lockless functions to obtain the ipc object + - LP: #1242700 + * ipc,shm: shorten critical region in shmctl_down + - LP: #1242700 + * ipc: drop ipcctl_pre_down + - LP: #1242700 + * ipc,shm: introduce shmctl_nolock + - LP: #1242700 + * ipc,shm: make shmctl_nolock lockless + - LP: #1242700 + * ipc,shm: shorten critical region for shmctl + - LP: #1242700 + * ipc,shm: cleanup do_shmat pasta + - LP: #1242700 + * ipc,shm: shorten critical region for shmat + - LP: #1242700 + * ipc: rename ids->rw_mutex + - LP: #1242700 + * ipc,msg: drop msg_unlock + - LP: #1242700 + * ipc: document general ipc locking scheme + - LP: #1242700 + * ipc, shm: guard against non-existant vma in shmdt(2) + - LP: #1242700 + * ipc: drop ipc_lock_by_ptr + - LP: #1242700 + * ipc, shm: drop shm_lock_check + - LP: #1242700 + * ipc: drop ipc_lock_check + - LP: #1242700 + * ipc/sem.c: optimize sem_lock() + - LP: #1242700 + * ipc/sem.c: synchronize the proc interface + - LP: #1242700 + * ipc/sem.c: update sem_otime for all operations + - LP: #1242700 + * x86: avoid remapping data in parse_setup_data() + - LP: #1242700 + * Linux 3.11.6 + - LP: #1242700 + + -- Brad Figg Mon, 21 Oct 2013 10:21:14 -0700 + +linux (3.11.0-12.19) saucy; urgency=low + + [ Andy Whitcroft ] + + * [Config] fix linux-libc-dev generation for arm64 + * [Config] fix linux-libc-dev generation for x32 + * [Config] add linux-libc-dev generation for ppc64el + + -- Andy Whitcroft Wed, 09 Oct 2013 12:33:07 +0100 + +linux (3.11.0-12.18) saucy; urgency=low + + [ Andy Whitcroft ] + + * [Packing] tools -- when tools are off they are off + * [config] tools -- linux-tools-common really is common + * [Packaging] tools -- make cpupower optional + * [Packaging] tools -- fix crosscompilation + * [config] tools -- enable cpupower + * SAUCE: storvsc -- host takes MAINTENANCE_IN commands badly elide them + - LP: #1234417 + + [ John Johansen ] + + * SAUCE: apparmor: fix unix domain sockets to be mediated on connection + - LP: #1208988 + * SAUCE: apparmor: allocate path lookup buffers during init + - LP: #1208988 + * SAUCE: apparmor: fix memleak of the profile hash + - LP: #1235523 + * SAUCE: apparmor: fix memleak of replacedby struct + - LP: #1235973 + * SAUCE: apparmor: fix bad lock balance when introspecting policy + - LP: #1235977 + + [ Paolo Pisati ] + + * [Config] arm: VIRTIO_[BLK|NET|MMIO]=y + + [ Rob Herring ] + + * SAUCE: (no-up) net: calxedaxgmac: fix clearing of old filter addresses + - LP: #1235272 + * SAUCE: (no-up) net: calxedaxgmac: add uc and mc filter addresses in + promiscuous mode + - LP: #1235272 + * SAUCE: (no-up) net: calxedaxgmac: determine number of address filters + at runtime + - LP: #1235272 + + [ Tim Gardner ] + + * [Config] CONFIG_ANDROID=n + - LP: #1235161 + * [Config] CONFIG_L2TP_V3=y + - LP: #1235914 + * Release tracker + - LP: #1236999 + + [ Upstream Kernel Changes ] + + * Revert "HID: core: fix reporting of raw events" + - LP: #1218004 + + -- Andy Whitcroft Fri, 04 Oct 2013 13:08:59 +0100 + +linux (3.11.0-11.17) saucy; urgency=low + + [ Andy Whitcroft ] + + * [Packaging] tools -- only build common tools package in master + * SAUCE: tools -- report when tool is not available + - LP: #1233376 + * [Packaging] tools -- common tools must carry all possible tools + - LP: #1233376 + + [ Colin Ian King ] + + * [Config] Fix power and performance regression + - LP: #1233681 + + [ Colin Watson ] + + * [Config] Clean up various udeb Provides + + [ Tim Gardner ] + + * rebase to v3.11.3 + * Release tracker + - LP: #1233808 + + [ Upstream Kernel Changes ] + + * ALSA: hda - Add CS4208 codec support for MacBook 6,1 and 6,2 + - LP: #1233623 + * ALSA: hda - Add fixup for MacBook Air 6,1 and 6,2 with CS4208 codec + - LP: #1233623 + * NVMe: Remove "process_cq did something" message + - LP: #1233686 + * Drivers: hv: balloon: Initialize the transaction ID just before sending the packet + - LP: #1233466 + * cciss: fix info leak in cciss_ioctl32_passthru() + - LP: #1188355 + - CVE-2013-2147 + * cpqarray: fix info leak in ida_locked_ioctl() + - LP: #1188355 + - CVE-2013-2147 + * Drivers: hv: util: Fix a bug in version negotiation code for util services + - LP: #1233433 + + -- Tim Gardner Tue, 01 Oct 2013 07:24:27 -0600 + +linux (3.11.0-9.16) saucy; urgency=low + + [ Andy Whitcroft ] + + * Revert "SAUCE: (no-up) scsi: hyper-v storage -- mark as preferring READ + CAPACITY (16) at SPC-2" + * Revert "SAUCE: (no-up) scsi: hyper-v storage -- mark as VPD capable at + SPC-2" + * Revert "SAUCE: (no-up) scsi: add scsi device flag to request READ + CAPACITY (16) be preferred" + * Revert "SAUCE: (no-up) scsi: add scsi device flag to request VPD pages + be used at SPC-2" + + [ Seth Forshee ] + + * SAUCE: (no-up) ACPI: Disable Windows 8 compatibility for some Lenovo + ThinkPads + - LP: #1183856 + + [ Tim Gardner ] + + * [Config] CONFIG_CRYPTO_CRCT10DIF=y, CONFIG_CRYPTO_CRCT10DIF_PCLMUL=m + * [packaging] Bump ABI for every new release + * rebase to v3.11.2 + * Release tracker + - LP: #1231999 + + + [ Upstream Kernel Changes ] + + * scsi: hyper-v storsvc switch up to SPC-3 + * perf/x86: Add Silvermont (22nm Atom) support + - LP: #1091539 + * perf/x86/intel: Fix Silvermont offcore masks + - LP: #1091539 + * modules: add support for soft module dependencies + - LP: #1188010 + * Reinstate "crypto: crct10dif - Wrap crc_t10dif function all to use + crypto transform framework" + - LP: #1188010 + * skge: fix broken driver + - LP: #1216745 + * Input: cypress_ps2 - Return zero finger count if palm is detected. + - LP: #1229361 + * udf: Standardize return values in mount sequence + - LP: #1228751 + * udf: Refuse RW mount of the filesystem instead of making it RO + - LP: #1228751 + * rebase to v3.11.2 + + -- Tim Gardner Mon, 23 Sep 2013 07:41:07 -0600 + +linux (3.11.0-8.15) saucy; urgency=low + + [ Tim Gardner ] + + * Release tracker + - LP: #1227969 + + * Update lttng + Updated to git://git.lttng.org/lttng-modules.git 9998f5216f4641a79e158135 + Version 2.3.0+ + + [ Upstream Kernel Changes ] + + * igb: Add additional get_phy_id call for i354 devices + - LP: #1219619 + * igb: Read flow control for i350 from correct EEPROM section + - LP: #1219619 + * timekeeping: Fix HRTICK related deadlock from ntp lock changes + Required for lttng update. + + -- Tim Gardner Thu, 19 Sep 2013 07:41:49 -0600 + +linux (3.11.0-7.14) saucy; urgency=low + + [ Andy Whitcroft ] + + * [Packaging] sort out linux-tools naming + - LP: #1205284 + * [Packaging] linux-tools: switch to common generic version helper + + [ Paolo Pisati ] + + * [Config] highbank: ecx1000: CPU_IDLE causes instabilities, disable it + + [ Tim Gardner ] + + * Release tracker + - LP: #1226160 + + [ Tony Lindgren ] + + * SAUCE: ARM: dts: Fix muxing and regulator for wl12xx on the SDIO bus + for pandaboard + + [ Upstream Kernel Changes ] + + * USB: handle LPM errors during device suspend correctly + - LP: #1011415 + * usb: don't check pm qos NO_POWER_OFF flag in usb_port_suspend() + - LP: #1011415 + * usb: Don't fail port power resume on device disconnect. + - LP: #1011415 + + [ Upstream Kernel Changes ] + + * rebase to v3.11.1 + + -- Tim Gardner Wed, 11 Sep 2013 07:30:17 -0600 + +linux (3.11.0-7.13) saucy; urgency=low + + * Release tracker + - LP: #1223545 + + [ Andy Whitcroft ] + + * SAUCE: (no-up) scsi: add scsi device flag to request VPD pages be used at SPC-2 + - LP: #1223499 + * SAUCE: (no-up) scsi: add scsi device flag to request READ CAPACITY (16) be preferred + - LP: #1223499 + * SAUCE: (no-up) scsi: hyper-v storage -- mark as VPD capable at SPC-2 + - LP: #1223499 + * SAUCE: (no-up) scsi: hyper-v storage -- mark as preferring READ CAPACITY (16) at SPC-2 + - LP: #1223499 + + [ Maximiliano Curia ] + + * SAUCE: (no-up) Only let characters through when there are active readers. + - LP: #1208740 + + [ Tim Gardner ] + + * [Debian] getabis: Commit new ABI directory, remove the old + * [Config] CONFIG_EFIVAR_FS=y + - LP: #1223195 + * [Config] CONFIG_EFI_VARS_PSTORE=m, + CONFIG_EFI_VARS_PSTORE_DEFAULT_DISABLE=n + * SAUCE: (no-up) USB: input: cm109.c: Convert high volume dev_err() to dev_err_ratelimited() + - LP: #1222850 + + [ Upstream Kernel Changes ] + + * Intel xhci: refactor EHCI/xHCI port switching + - LP: #1210858 + + -- Tim Gardner Tue, 10 Sep 2013 09:00:19 -0600 + +linux (3.11.0-6.12) saucy; urgency=low + + * Release tracker + - LP: #1222893 + + [ Andy Whitcroft ] + + * Revert "ubuntu: (no-squash) AUFS3 -- aufs3-standalone.patch" + * Revert "ubuntu: (no-squash) AUFS3 -- aufs3-base.patch" + * ubuntu: (no-squash) AUFS3 -- aufs3-base.patch + * ubuntu: (no-squash) AUFS3 -- aufs3-standalone.patch + - LP: #1222407 + + [ Paolo Pisati ] + + * [Config] restore mmc boot on panda + + [ Tyler Hicks ] + + * SAUCE: apparmor: Use shash crypto API interface for profile hashes + - LP: #1216294 + + [ Upstream Kernel Changes ] + + * net: calxedaxgmac: remove NETIF_F_FRAGLIST setting + * net: calxedaxgmac: read correct field in xgmac_desc_get_buf_len + * net: calxedaxgmac: fix race between xgmac_tx_complete and xgmac_tx_err + * net: calxedaxgmac: fix possible skb free before tx complete + * net: calxedaxgmac: update ring buffer tx_head after barriers + * net: calxedaxgmac: fix race with tx queue stop/wake + * net: calxedaxgmac: enable interrupts after napi_enable + * net: calxedaxgmac: fix various errors in xgmac_set_rx_mode + * net: calxedaxgmac: remove some unused statistic counters + * net: calxedaxgmac: fix rx DMA mapping API size mismatches + * net: calxedaxgmac: fix xgmac_xmit DMA mapping error handling + * mfd: rtsx: Read vendor setting from config space + - LP: #1201698 + + -- Tim Gardner Mon, 09 Sep 2013 07:21:06 -0600 + +linux (3.11.0-5.11) saucy; urgency=low + + * Release tracker + - LP: #1221886 + + [ Adam Lee ] + + * SAUCE: Bluetooth: Add support for 04ca:2007 + - LP: #1153448 + * SAUCE: Bluetooth: Add support for 105b:e065 + - LP: #1161261 + + [ Gavin Guo ] + + * SAUCE: Bluetooth: Add support for Broadcom 413c:8143 + - LP: #1166113 + + [ Upstream Kernel Changes ] + + * igb: Reset the link when EEE setting changed + - LP: #1219619 + * igb: Read register for latch_on without return value + - LP: #1219619 + * igb: Added rcu_lock to avoid race + - LP: #1219619 + * igb: don't allow SR-IOV without MSI-X + - LP: #1219619 + * igb: Update MTU so that it is always at least a standard frame size + - LP: #1219619 + * igb: Refactor of init_nvm_params + - LP: #1219619 + * igb: Refactor NVM read functions to accommodate devices with no flash + - LP: #1219619 + * igb: Add device support for flashless SKU of i210 device + - LP: #1219619 + * igb: Fix get_fw_version function for all parts + - LP: #1219619 + * igb: Add macro for size of RETA indirection table + - LP: #1219619 + * igb: Expose RSS indirection table for ethtool + - LP: #1219619 + * igb: Don't look for a PBA in the iNVM when flashless + - LP: #1219619 + * igb: Implementation of 1-sec delay for i210 devices + - LP: #1219619 + * igb: New PHY_ID for i354 device + - LP: #1219619 + * igb: M88E1543 PHY downshift implementation + - LP: #1219619 + * igb: No PHPM support in i354 devices + - LP: #1219619 + * igb: Support to get 2_5G link status for appropriate media type + - LP: #1219619 + * igb: Get speed and duplex for 1G non_copper devices + - LP: #1219619 + * igb: Implementation to report advertised/supported link on i354 devices + - LP: #1219619 + * igb: Update version number + - LP: #1219619 + * Bluetooth: Take proper tty_struct references + - LP: #1189998 + * Bluetooth: Remove the device from the list in the destructor + - LP: #1189998 + * Bluetooth: Move the tty initialization and cleanup out of open/close + - LP: #1189998 + * Bluetooth: Implement .activate, .shutdown and .carrier_raised methods + - LP: #1189998 + * Bluetooth: Fix the reference counting of tty_port + - LP: #1189998 + * Bluetooth: Purge the dlc->tx_queue to avoid circular dependency + - LP: #1189998 + + [ Wen-chien Jesse Sung ] + + * SAUCE: Bluetooth: Support for loading broadcom patchram firmware + - LP: #1065400 + * SAUCE: Bluetooth: Add support for 13d3:3388 and 13d3:3389 + - LP: #1065400 + + -- Tim Gardner Thu, 05 Sep 2013 08:06:17 -0600 + +linux (3.11.0-5.10) saucy; urgency=low + + [ Andy Whitcroft ] + + * Release tracker + - LP: #1220222 + * Revert "[Config] Fix ubuntu directoy Kbuilds" + * Revert "aufs update dropped some Kbuild files" + * Revert "ubuntu: AUFS -- follow rename of loop.h into drivers/block" + * Revert "ubuntu: AUFS -- update to + 8e503d4142c189ed6c47a2177ad2cd058e8d340e" + * Revert "ubuntu: (no-squash) AUFS3 -- aufs3-standalone.patch" + * Revert "ubuntu: (no-squash) AUFS3 -- aufs3-base.patch" + * rebase to v3.11 final + * [Config] clean up ubuntu/Kconfig and ubuntu/Makefile + * ubuntu: AUFS (no-squash): basic framework and update machinary + * ubuntu: (no-squash) AUFS3 -- aufs3-base.patch + * ubuntu: (no-squash) AUFS3 -- aufs3-standalone.patch + * ubuntu: AUFS -- update to 5ac5fe26a90a818218310e208d17688fddb07622 + * ubuntu: (no-squash) AUFS -- enable aufs + * ubuntu: AUFS -- fix remaining d_count references to use accessor + * ubuntu: lttng -- follow rename of pid_ns + * SAUCE: disable stack-protector for ARM compressed bootloader + + [ Paolo Pisati ] + + * [Config] ARM_ATAG_DTB_COMPAT=y + + [ Rob Herring ] + + * [Config] Enable KVM and virtio for armhf generic-lpae + + [ Tim Gardner ] + + * [Config] CONFIG_ARPD=y + * [Config] CONFIG_ZSWAP=y + - LP: #1215379 + + [ Upstream Kernel Changes ] + + * uvcvideo: quirk PROBE_DEF for Dell SP2008WFP monitor. + - LP: #1217957 + * ARM: use phys_addr_t for DMA zone sizes + * ARM: highbank: enable DMA zone for LPAE + * ARM: highbank: select ARCH_HAS_HOLES_MEMORYMODEL + * ARM: highbank: select required errata work-arounds + * DMA: fix AMBA PL08x compilation issue with 64bit DMA address type + * DMA: fix printk warning in AMBA PL08x DMA driver + * ARM: highbank: select ARCH_DMA_ADDR_T_64BIT for LPAE + * ARM: move outer_cache declaration out of ifdef + * ARM: highbank: avoid L2 cache smc calls when PL310 is not present + * ARM: highbank: clean-up some unused includes + * ARM: xen: only set pm function ptrs for Xen guests + + [ Upstream Kernel Changes ] + + * rebase to v3.11 + + -- Andy Whitcroft Tue, 03 Sep 2013 17:08:06 +0100 + +linux (3.11.0-4.9) saucy; urgency=low + + [ Tim Gardner ] + + * rebase to v3.11-rc7 + * Release tracker + - LP: #1216962 + + [ Upstream Kernel Changes ] + + * mwifiex: do not create AP and P2P interfaces upon driver loading + - LP: #1212720 + + -- Tim Gardner Mon, 26 Aug 2013 06:25:35 -0600 + +linux (3.11.0-3.8) saucy; urgency=low + + [ Johannes Berg ] + + * SAUCE: mac80211: ignore (E)CSA in probe response frames + - LP: #1201470 + + -- Tim Gardner Fri, 23 Aug 2013 09:47:36 -0600 + +linux (3.11.0-3.7) saucy; urgency=low + + [ Tim Gardner ] + + * SAUCE: (no-up) hv_vss_daemon -- prevent self-daemonising to allow + upstart to track + * SAUCE: (no-up) hv -- bodge hv_vss_daemon so it can use the local + linux/hyperv.h + * SAUCE: hv: Add vss daemon to Makefile + * [Debian] Add hv_vss_daemon to tools package + - LP: #1213282 + * [Config] Fix ubuntu directoy Kbuilds + - LP: #1181755 + + -- Tim Gardner Tue, 20 Aug 2013 08:34:05 -0600 + +linux (3.11.0-3.6) saucy; urgency=low + + [ Andy Whitcroft ] + + * [Packaging] tools: conditionalise x86 and hyper-v tools sensibly + * [Config] tools: enable x86 and hyper-v + + [ John Johansen ] + + * Revert "SAUCE: (no-up) apparmor: Sync to apparmor 3 dev stable + snapshot" + * Revert "SAUCE: (no-up) apparmor: fix apparmor module status for none + root users" + * SAUCE: (no-up) apparmor: Sync to apparmor 3 - alpha 4 snapshot + + [ Joseph Salisbury ] + + * SAUCE: (no-up) intel_ips: blacklist ASUSTek G60JX laptops + - LP: #1210848 + + [ Kamal Mostafa ] + + * [debian] tools: ship 'cpupower' in linux-tools + - LP: #1158668 + * [Config] Build-dep on libpci-dev for cpu tools + - LP: #1158668 + + [ Tim Gardner ] + + * rebase to v3.11-rc6 + * Release tracker + - LP: #1213941 + + -- Tim Gardner Fri, 16 Aug 2013 07:02:07 -0600 + +linux (3.11.0-2.5) saucy; urgency=low + + [ Tim Gardner ] + + * [Config] CONFIG_PM_DEBUG=y + - LP: #1210539 + * rebase to v3.11-rc5 + * Release tracker + - LP: #1211378 + + -- Tim Gardner Mon, 12 Aug 2013 06:10:39 -0600 + +linux (3.11.0-1.4) saucy; urgency=low + + [ Tim Gardner ] + + * Bump ABI when making changes to the inclusion list lest + you cause conflicts with existing installed kernel + packages. + - LP: #1210331 + + -- Tim Gardner Fri, 09 Aug 2013 03:03:51 +0100 + +linux (3.11.0-0.3) saucy; urgency=low + + [ Tim Gardner ] + + * [Config] Include rbd and kvm in the virtual inclusion list + - LP: #1206961 + * [Config] Removed obsolete inclusion list entries + + -- Tim Gardner Tue, 06 Aug 2013 08:52:14 +0100 + +linux (3.11.0-0.2) saucy; urgency=low + + [ Bruce Allan ] + + * SAUCE: (no-up) e1000e: fix I217/I218 PHY initialization flow + - LP: #1206757 + * SAUCE: (no-up) e1000e: enable support for new device IDs + - LP: #1206757 + + [ John Johansen ] + + * SAUCE: (no-up) apparmor: Sync to apparmor 3 dev stable snapshot + + [ Paolo Pisati ] + + * build vexpress a15 dtb + * [Config] disable Broadcom bcm support (ARCH_BCM) + * [Config] disable Allwinner a1x support (ARCH_SUNXI) + * [Config] disable WonderMedia WM8850 support (ARCH_WM8850) + * [Config] disable Rockchip support (ARCH_ROCKCHIP) + * [Config] disable STMicroelectronics STiH41x SOCs (ARCH_STI) + * [Config] disable TI Keystone, AM43xx and OMAP5 support + * [Config] ARM_APPENDED_DTB=y + + [ Tim Gardner ] + + * rebase to v3.11-rc4 + * overlayfs: Update to v19 + * [Config] Enable overlayfs + * SAUCE: Fix lttng compile errors + + [ Upstream Kernel Changes ] + + * rebase to v3.11-rc4 + - LP: #1163720 + - LP: #1162026 + - LP: #1195636 + - LP: #1195597 + - LP: #1180409 + - LP: #1168430 + + -- Tim Gardner Sun, 04 Aug 2013 03:45:31 -0600 + +linux (3.11.0-0.1) saucy; urgency=low + + [ Upstream Kernel Changes ] + + * rebase to 64ccccf8525fee499625b517c0faadf784c79e93 + - LP: #1163720 + - LP: #1162026 + - LP: #1195636 + - LP: #1195597 + - LP: #1180409 + - LP: #1168430 + + -- Tim Gardner Mon, 08 Jul 2013 08:50:46 -0600 + +linux (3.10.0-2.10) saucy; urgency=low + + [ Andy Whitcroft ] + + * [Config] CONFIG_INTEL_MEI*=m + - LP: #1196155 + * [Config] CONFIG_DEBUG_INFO=y + + [ Stephen Warren ] + + * [Config] fix Calxeda xgmac module filename + + [ Upstream Kernel Changes ] + + * Revert "serial: 8250_pci: add support for another kind of NetMos + Technology PCI 9835 Multi-I/O Controller" + - LP: #1190967 + * mfd: lpc_ich: Add support for Intel Avoton SoC + - LP: #1196658 + + -- Andy Whitcroft Fri, 05 Jul 2013 18:08:02 +0100 + +linux (3.10.0-2.9) saucy; urgency=low + + [ Andy Whitcroft ] + + * rebase to v3.10 + + [ John Johansen ] + + * Revert "SAUCE: (no-up) apparmor: Fix quieting of audit messages for + network mediation" + * Revert "SAUCE: (no-up) apparmor: Fix compile warnings" + * Revert "SAUCE: (no-up) AppArmor: basic networking rules" + * Revert "SAUCE: (no-up) apparmor: Add the ability to mediate mount" + * Revert "SAUCE: (no-up) AppArmor: Add profile introspection file to + interface" + * Revert "SAUCE: (no-up) AppArmor: Disable Add PR_{GET,SET}_NO_NEW_PRIVS + to prevent execve from granting privs" + * SAUCE: (no-up) apparmor: Sync to apparmor 3 dev stable snapshot + + [ Upstream Kernel Changes ] + + * rebase to v3.10 + + -- Andy Whitcroft Mon, 01 Jul 2013 17:42:29 +0100 + +linux (3.10.0-1.8) saucy; urgency=low + + [ Andy Whitcroft ] + + * Release Tracking Bug + - LP: #1195717 + + [ Andy Whitcroft ] + + * Revert "ubuntu: overlayfs -- follow change to do_splice_direct + interface" + * Revert "ubuntu: overlayfs -- expose do_splice_direct prototype" + * Revert "SAUCE: ubuntu: overlayfs -- ovl_path_open should not take path + reference" + * Revert "ubuntu: overlayfs -- add FS_ALIAS" + * Revert "ubuntu: overlayfs -- + overlayfs-copy-up-i_uid-i_gid-from-the-underlying-inode" + * Revert "ubuntu: overlayfs -- ovl-switch-to-inode_permission" + * Revert "ubuntu: overlayfs -- vfs-export-inode_permission-to-modules" + * Revert "ubuntu: overlayfs -- overlayfs-create-new-inode-in-ovl_link" + * Revert "ubuntu: overlayfs -- + overlayfs-fix-possible-leak-in-ovl_new_inode" + * Revert "ubuntu: overlayfs -- fs-limit-filesystem-stacking-depth" + * Revert "ubuntu: overlayfs -- overlay-overlay-filesystem-documentation" + * Revert "ubuntu: overlayfs -- overlayfs-implement-show_options" + * Revert "ubuntu: overlayfs -- overlayfs-add-statfs-support" + * Revert "ubuntu: overlayfs -- overlay filesystem" + * Revert "ubuntu: overlayfs -- vfs-introduce-clone_private_mount" + * Revert "ubuntu: overlayfs -- vfs-export-do_splice_direct-to-modules" + * Revert "ubuntu: overlayfs -- vfs-add-i_op-dentry_open" + * ubuntu: overlayfs v18 -- -- overlayfs: add statfs support + + [ Erez Zadok ] + + * ubuntu: overlayfs v18 -- -- overlayfs: implement show_options + + [ Miklos Szeredi ] + + * ubuntu: overlayfs v18 -- -- vfs: add i_op->dentry_open() + * ubuntu: overlayfs v18 -- -- vfs: export do_splice_direct() to modules + * ubuntu: overlayfs v18 -- -- vfs: export __inode_permission() to modules + * ubuntu: overlayfs v18 -- -- vfs: introduce clone_private_mount() + * ubuntu: overlayfs v18 -- -- overlay filesystem + * ubuntu: overlayfs v18 -- -- fs: limit filesystem stacking depth + + [ Neil Brown ] + + * ubuntu: overlayfs v18 -- -- overlay: overlay filesystem documentation + + [ Tim Gardner ] + + * [Config] CONFIG_SUNRPC_DEBUG=y + - LP: #1127319 + + -- Andy Whitcroft Fri, 28 Jun 2013 10:26:52 +0100 + +linux (3.10.0-0.7) saucy; urgency=low + + [ Andy Whitcroft ] + + * autopkgtest: switch Depends: to build-essential + + -- Andy Whitcroft Tue, 25 Jun 2013 08:40:55 +0100 + +linux (3.10.0-0.6) saucy; urgency=low + + [ Andy Whitcroft ] + + * [Config] enable CONFIG_ARCH_TEGRA to fix FTBFS on armhf + * SAUCE: ubuntu: overlayfs -- ovl_path_open should not take path reference + - LP: #1098378 + * ubuntu: AUFS -- update to 4f14cef47eb7c23eda7198931fbab1040866b6ee + * ubuntu: overlayfs -- expose do_splice_direct prototype + * ubuntu: overlayfs -- follow change to do_splice_direct interface + * [Config] flip CONFIG_NO_HZ_FULL_ALL off as it is overheating machines + - LP: #1192691 + + [ Stefan Bader ] + + * (d-i) Add dm-snapshot to md-modules + - LP: #1191726 + + [ Tim Gardner ] + + * Release tracker + - LP: #1194149 + * [Config] CONFIG_WIL6210=n for armhf + * [Config] d-i: Add calxedaxgmac to nic-modules + - LP: #1192358 + * [debian] Use dh_strip + - LP: #1192759 + * [Config] Enable perf for armhf + * do_tools=false when cross compiling + * [Config] CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS=y + - LP: #1108082 + + [ Upstream Kernel Changes ] + + * nsp32: switch reset delay to msleep() as it is tooo long + * alx: add a simple AR816x/AR817x device driver + Plucked from linux-next. replaces ubuntu/alx in favor of + 'to be merged' version in 3.11. + * rebase to v3.10-rc7 + - LP: #1189363 + + -- Tim Gardner Sat, 22 Jun 2013 18:10:31 -0600 + +linux (3.10.0-0.5) saucy; urgency=low + + [ Andy Whitcroft ] + + * rebase to v3.10-rc6 + * [Config] updateconfigs following rebase to v3.10-rc6 + + [ Upstream Kernel Changes ] + + * rebase to v3.10-rc6 + + -- Andy Whitcroft Mon, 17 Jun 2013 11:12:39 +0100 + +linux (3.10.0-0.4) saucy; urgency=low + + [ Andy Whitcroft ] + + * [Config] updateconfigs following rebase to v3.10-rc4 + + -- Andy Whitcroft Mon, 10 Jun 2013 11:42:28 +0100 + +linux (3.10.0-0.3) saucy; urgency=low + + [ Andy Whitcroft ] + + * rebase to v3.10-rc5 + + [ Upstream Kernel Changes ] + + * rebase to v3.10-rc5 + - LP: #1186170 + + -- Andy Whitcroft Mon, 10 Jun 2013 09:23:31 +0100 + +linux (3.10.0-0.2) saucy; urgency=low + + [ Andy Whitcroft ] + + * rebase to v3.10-rc4 + * [Config] CONFIG_BINFMT_SCRIPT=y to fix booting initramfs scripts + * [Config] enable SND_PCM_DEBUG SND_PCM_XRUN_DEBUG + - LP: #1187744 + * [Config] enforce CONFIG_BINFMT_SCRIPT=y + + [ Dave Chiluk ] + + * SAUCE: ncpfs: fix rmdir returns Device or resource busy + - LP: #1035226 + + [ Tim Gardner ] + + * rebase to v3.10-rc3 + * [Config] sparc be gone + * [Config] ia64 be gone + * d-i: block-modules provides nbd-modules + + [ Upstream Kernel Changes ] + + * rebase to v3.10-rc4 + * rebase to v3.10-rc3 + + -- Tim Gardner Tue, 28 May 2013 06:16:46 -0600 + +linux (3.10.0-0.1) saucy; urgency=low + + [ Tim Gardner ] + + * UBUNTU: Disabled lttng + * UBUNTU: Disable aufs for FTBS + * UBUNTU: Disabled alx + * UBUNTU: alx: rename NETIF_F_HW_VLAN_* feature flags to NETIF_F_HW_VLAN_CTAG_* + * UBUNTU: rebase to v3.10-rc2 + * UBUNTU: SAUCE: uvcvideo: quirk PROBE_DEF for Alienware X51 OmniVision webcam + + [ Andy Whitcroft ] + + * UBUNTU: [Config] update standards version to 3.9.4.0 + * UBUNTU: [Config] squash duplicate package description (long and short) + * UBUNTU: [Config] fix up Vcs-git: to point to saucy + * UBUNTU: [Config] drop depenancy on util-linux as is Essential + * UBUNTU: [Config] drop redundant Build-Conficts: + + [ Upstream Kernel Changes ] + + * rebase to v3.10-rc2 + - LP: #1180351 + + [ Upstream Kernel Changes ] + + * rebase to v3.10-rc1 + - LP: #1172151 + - LP: #1089795 + - LP: #1167270 + - LP: #1128840 + + -- Tim Gardner Tue, 14 May 2013 13:41:07 -0600 + +linux (3.10.0-0.0) saucy; urgency=low + + * Dummy + + -- Tim Gardner Thu, 09 May 2013 20:30:40 +0100 + +linux (3.9.0-2.6) saucy; urgency=low + + [ Tim Gardner ] + + * rebase to v3.9.2 + + -- Tim Gardner Thu, 09 May 2013 20:30:40 +0100 + +linux (3.9.0-1.5) saucy; urgency=low + + [ Tim Gardner ] + + * rebase to v3.9.1 + + -- Tim Gardner Wed, 08 May 2013 12:49:45 -0400 + +linux (3.9.0-0.4) saucy; urgency=low + + [ Andy Whitcroft ] + + * ubuntu: overlayfs -- add FS_ALIAS + + [ Tim Gardner ] + + * Added lttng + - LP: #1175784 + + -- Tim Gardner Thu, 02 May 2013 17:17:13 -0400 + +linux (3.9.0-0.3) saucy; urgency=low + + [ Upstream Kernel Changes ] + + * rebase to v3.9 + + -- Tim Gardner Mon, 29 Apr 2013 18:20:00 -0400 + +linux (3.9.0-0.2) saucy; urgency=low + + [ Tim Gardner ] + + * Enable extras packaging for amd64/i386. + Fixes build depenencies with brittany and linux-meta. + + -- Tim Gardner Mon, 29 Apr 2013 05:37:01 -0600 + +linux (3.9.0-0.1) saucy; urgency=low + + [ Upstream Kernel Changes ] + + * rebase to v3.9-rc8 + + [ Upstream Kernel Changes ] + + * rebase to v3.9-rc7 + - LP: #1128840 + + [ Upstream Kernel Changes ] + + * rebase to v3.9-rc6 + + [ Upstream Kernel Changes ] + + * rebase to v3.9-rc5 + + [ Upstream Kernel Changes ] + + * rebase to v3.8-rc4 + - LP: #1095315 + - LP: #886975 + - LP: #1086921 + + [ Upstream Kernel Changes ] + + * rebase to v3.9-rc3 + - LP: #1155016 + - LP: #1103594 + + [ Upstream Kernel Changes ] + + * rebase to v3.9-rc2 + + [ Upstream Kernel Changes ] + + * rebase to v3.9-rc1 + - LP: #901105 + - LP: #961286 + - LP: #1011792 + - LP: #1128934 + - LP: #886975 + - LP: #978807 + + -- Tim Gardner Wed, 20 Feb 2013 09:12:39 -0700 + +linux (3.8.0-7.14) raring; urgency=low + + [ Andy Whitcroft ] + + * [Config] CONFIG_RCU_USER_QS=n + * [Config] CONFIG_MTD_ONENAND_SIM=n + * annotations: add annotations for CONFIG_CC_STACKPROTECTOR + + [ Upstream Kernel Changes ] + + * rebase to v3.8 + + [Tim Gardner] + + * Release Tracking Bug + - LP: #1130111 + * UBUNTU: SAUCE: rt2x00: rt2x00pci_regbusy_read() - only print register access failure once + - LP: #1128840 + + -- Tim Gardner Mon, 18 Feb 2013 09:25:56 -0700 + +linux (3.8.0-6.13) raring; urgency=low + + [Tim Gardner] + + * Release Tracking Bug + - LP: #1125364 + * Add ahci modules to d-i + - LP: #1124415 + + + [ Chris Wilson ] + + * SAUCE: drm/i915: Wait for pending flips to complete before tearing down + the encoders + - LP: #1097315 + + -- Tim Gardner Wed, 13 Feb 2013 12:16:48 -0700 + +linux (3.8.0-6.12) raring; urgency=low + + [Tim Gardner] + + * perf: NO_LIBPERL=1 + * Fix linux-headers dependency + * Release Tracking Bug + - LP: #1124362 + + [ Andy Whitcroft ] + + * [Config] enable CONFIG_AUFS_EXPORT to allow nfs exports + - LP: #1121699 + + [ Daniel Vetter ] + + * SAUCE: drm/i915: write backlight harder + - LP: #954661 + + -- Tim Gardner Wed, 13 Feb 2013 10:25:11 -0700 + +linux (3.8.0-6.11) raring; urgency=low + + [Tim Gardner] + + * Release Tracking Bug + - LP: #1122071 + * rebase to v3.8-rc7 + * Add libaudit-dev as a build dependency + * Build perf with NO_LIBPYTHON=1 to avoid a python build dependency. + + [ Leann Ogasawara ] + + * [Config] Remove CONFIG_SATA_AHCI annotation + + -- Tim Gardner Fri, 08 Feb 2013 07:41:13 -0500 + +linux (3.8.0-5.10) raring; urgency=low + + [Tim Gardner] + + * Release Tracking Bug + - LP: #1118568 + + * Bump ABI to fix install issue with 3.8.0-4.8. + Moving drivers/ata/*ahci* to linux-image caused an + install conflict with linux-image-extras without an + ABI bump. + + [ Jan Beulich ] + + * SAUCE: xen-pciback: rate limit error messages from + xen_pcibk_enable_msi{, x}() + - LP: #1117336 + - CVE-2013-0231 + + -- Tim Gardner Thu, 07 Feb 2013 05:38:12 -0700 + +linux (3.8.0-4.9) raring; urgency=low + + [ Herton Ronaldo Krzesinski ] + + * d-i: Add mellanox ethernet drivers to nic-modules + - LP: #1015339 + + [ Joseph Salisbury ] + + * SAUCE: ACPI: Add DMI entry for Sony VGN-FW41E_H + - LP: #1113547 + + [ Kamal Mostafa ] + + * SAUCE: alx driver import script + + [ Qualcomm Atheros, Inc ] + + * SAUCE: alx: Update to heads/master + + [ Tim Gardner ] + + * Release Tracking Bug + - LP: #1117673 + + * [debian] Remove dangling symlink from headers package + - LP: #1112442 + * [config] CONFIG_ALX=m + * [Config] Add alx to d-i nic-modules + * [Config] CONFIG_SATA_AHCI=m + - LP: #1056563 + + -- Leann Ogasawara Tue, 05 Feb 2013 05:54:32 -0800 + +linux (3.8.0-4.8) raring; urgency=low + + [ Allen Ibara ] + + * SAUCE: imx6: dts: Add IMX6Q AHCI support + + [ Andy Whitcroft ] + + * rebase to v3.8-rc6 + * updateconfigs following rebase to v3.8-rc6 + + [Leann Ogasawara] + + * Release Tracking Bug + - LP: #1112573 + + [ Paolo Pisati ] + + * SAUCE: imx6: enable sata clk if SATA_AHCI_PLATFORM + * [Config] SERIAL_AMBA_PL011=y (vexpress serial console) + * [Config] MMC_ARMMMCI=y (vexpress mmc) + * [Config] FB_ARMCLCD=y (vexpress framebuffer) + + [ Seth Forshee ] + + * [Config] CONFIG_MAC80211_MESSAGE_TRACING=y + + [ Upstream Kernel Changes ] + + * rebase to v3.8-rc6 + - LP: #1107477 + + -- Leann Ogasawara Fri, 01 Feb 2013 07:20:59 -0800 + +linux (3.8.0-3.7) raring; urgency=low + + [ Andy Green ] + + * SAUCE: ARM: OMAP2+: add cpu id register to MAC address helper + * SAUCE: ARM: omap2 add mac address allocation register api + * SAUCE: ARM: omap2 panda register ethernet and wlan for automatic mac + allocation + + [ Leann Ogasawara ] + + * rebase to v3.8-rc5 + * Release Tracking Bug + - LP: #1111486 + + [ Paolo Pisati ] + + * SAUCE: davinci: vpss: compilation fix + * [Config] enable TI OMAP4 support (Pandaboard/ES) + * [Config] OMAP_USB2=y (since TWL6030_USB depends on it) + * [Config] enable Freescale IMX6 support (SabreLite) + * [Config] SERIAL_IMX_CONSOLE=y + * [Config] MMC_*_IMX=y + * [Config] disable USB_SUSPEND + * [Config] USB_MXS_PHY=y + * [Config] USB_CHIPIDEA=y + * SAUCE: DTB: add support for multiple DTBs + * SAUCE: DTB: build imx6q-sabrelite + * SAUCE: DTB: build beaglexm + * SAUCE: DTB: build panda/panda es + * [Config] disable CPU_FREQ + * [Config] PANEL_TFP410=y (video DVI output) + * [Config] SND_OMAP_SOC*=y + * [Config] SND_IMX_SOC*=y + * [Config] I2C_IMX=y + * [Config] SPI_IMX=m + + [ Stefan Bader ] + + * [Config] Move 9p modules into generic package + - LP: #1107658 + + [ Tony Lindgren ] + + * SAUCE: ARM: OMAP2+: Limit omap initcalls to omap only on multiplatform + kernels + * SAUCE: ARM: OMAP2+: Use omap initcalls + * SAUCE: ARM: OMAP: Fix i2c cmdline initcall for multiplatform + * SAUCE: ARM: OMAP: Fix dmaengine init for multiplatform + * SAUCE: ARM: OMAP2+: Add multiplatform debug_ll support + * SAUCE: ARM: OMAP2+: Disable code that currently does not work with + multiplaform + * SAUCE: ARM: OMAP2+: Enable ARCH_MULTIPLATFORM support + * SAUCE: ARM: OMAP2+: Add minimal support for booting vexpress + * SAUCE: ARM: OMAP2+: Remove now obsolete uncompress.h and debug-macro.S + + [ Upstream Kernel Changes ] + + * rebase to v3.8-rc5 + - LP: #1096789 + + -- Leann Ogasawara Thu, 31 Jan 2013 06:44:52 -0800 + +linux (3.8.0-2.6) raring; urgency=low + + [ Adam Conrad ] + + * Fix up linux-tools -> SRCPKGNAME-tools rename + + [ Andy Whitcroft ] + + * [Config] re-disable CONFIG_SOUND_OSS + - LP: #1105230 + + [ Arend van Spriel ] + + * SAUCE: brcmsmac: fix tx status processing + + [Leann Ogasawara] + + * Release Tracking Bug + - LP: #1105104 + + -- Leann Ogasawara Fri, 25 Jan 2013 11:56:30 -0800 + +linux (3.8.0-1.5) raring; urgency=low + + [Tim Gardner] + + * Release Tracking Bug + - LP: #1101235 + + [ Dudley Du ] + + * SAUCE: Input: add support for Cypress PS/2 Trackpads + - LP: #978807 + + [ Kamal Mostafa ] + + * SAUCE: Input: increase struct ps2dev cmdbuf[] to 8 bytes + * SAUCE: Input: Cypress PS/2 Trackpad simulated multitouch + * [Config] Add CONFIG_PS2_CYPRESS + + [ Tim Gardner ] + + * rebase to v3.8-rc4 + + [ Upstream Kernel Changes ] + + * rebase to v3.8-rc4 + - LP: #1095315 + - LP: #886975 + - LP: #1086921 + + -- Leann Ogasawara Thu, 17 Jan 2013 10:50:22 -0800 + +linux (3.8.0-0.4) raring; urgency=low + + [ Leann Ogasawara ] + + * [Config] Update CONFIG_TOUCHSCREEN_EGALAX build annotation + * [Config] Update CONFIG_IIO build annotation + * [Config] Update CONFIG_TOUCHSCREEN_EETI annotation + * [Config] Remove CONFIG_SPI_DW_MMIO annotation + * [Config] Remove CONFIG_SPI_PL022 annotation + * [Config] Update CONFIG_EZX_PCAP annotation + * [Config] Update CONFIG_SENSORS_AK8975 annotation + * [Config] Disable CONFIG_DRM_MGAG200 + - LP: #1042903 + + -- Leann Ogasawara Mon, 14 Jan 2013 10:01:50 -0800 + +linux (3.8.0-0.3) raring; urgency=low + + [ Andy Whitcroft ] + + * Revert "SAUCE: (no-up) trace: add trace events for open(), exec() and + uselib()" + + [ Scott James Remnant ] + + * SAUCE: (no-up) trace: add trace events for open(), exec() and uselib() + (for v3.7+) + - LP: #1085766, #462111 + + -- Andy Whitcroft Fri, 11 Jan 2013 16:57:27 +0000 + +linux (3.8.0-0.2) raring; urgency=low + + [ Tim Gardner ] + + * [packaging] Add macro to selectively disable building perf + * [packaging] Cannot depend on universe package libaudit-dev + + -- Tim Gardner Thu, 10 Jan 2013 12:43:24 -0700 + +linux (3.8.0-0.1) raring; urgency=low + + + [ Upstream Kernel Changes ] + + * rebase to v3.8-rc3 + - LP: #1096789 + + [ Upstream Kernel Changes ] + + * rebase to v3.8-rc2 + - LP: #1082357 + - LP: #1075882 + + -- Andy Whitcroft Mon, 17 Dec 2012 10:35:09 +0000 + +linux (3.7.0-7.15) raring; urgency=low + + [ Chris J Arges ] + + * SAUCE: add eeprom_bad_csum_allow module parameter + - LP: #1070182 + + [ Leann Ogasawara ] + + * Add ceph to linux-image for virtual instances + - LP: #1063784 + + [ Serge Hallyn ] + + * SAUCE: net: dev_change_net_namespace: send a KOBJ_REMOVED/KOBJ_ADD + + [ Tim Gardner ] + + * [Config] CONFIG_SLUB_DEBUG=y + - LP: #1090308 + + [ Upstream Kernel Changes ] + + * Revert "[SCSI] sd: Implement support for WRITE SAME" + - LP: #1089818 + + -- Leann Ogasawara Wed, 12 Dec 2012 06:50:20 -0800 + +linux (3.7.0-6.14) raring; urgency=low + + [ Andy Whitcroft ] + + * [Config] annotations: all new annotations scheme including defaults + * [Configs] apply annotation updates to main configs (top section) + + [ Leann Ogasawara ] + + * Revert "SAUCE: include and for mmc_core arm + build" + * Revert "SAUCE: [arm] fixup __aeabi_uldivmod undefined build error" + * Temporarily disable module check for build + + [ Stefan Bader ] + + * ubuntu: dm-raid45: Adapt to upstream interface changes + * Re-enable build of dm-raid45 + + [ Tim Gardner ] + + * SAUCE: Moved scripts/fw-to-ihex.sh to debian/scripts/misc + * SAUCE: ACPICA: Fix ACPI mutex object allocation memory leak on error + * SAUCE: drm: Fix possible EDID memory allocation oops + * SAUCE: ttm: Fix possible _manager memory allocation oops + * SAUCE: iwlwifi: iwlagn_request_scan: Fix check for priv->scan_request + * SAUCE: i915: intel_set_mode: Reduce stack allocation from 500 bytes to + 2 pointers + + [ Tomas Hozza ] + + * SAUCE: tools: hv: Netlink source address validation allows DoS + - LP: #1084777 + - CVE-2012-5532 + + [ Upstream Kernel Changes ] + + * rebase to v3.7 + + -- Leann Ogasawara Wed, 05 Dec 2012 14:11:12 -0800 + +linux (3.7.0-5.13) raring; urgency=low + + [ Lino Sanfilippo ] + + * SAUCE: inotify, fanotify: replace fsnotify_put_group() with + fsnotify_destroy_group() + - LP: #922906 + * SAUCE: fsnotify: introduce fsnotify_get_group() + - LP: #922906 + * SAUCE: fsnotify: use reference counting for groups + - LP: #922906 + * SAUCE: fsnotify: take groups mark_lock before mark lock + - LP: #922906 + * SAUCE: fanotify: add an extra flag to mark_remove_from_mask that + indicates wheather a mark should be destroyed + - LP: #922906 + * SAUCE: fsnotify: use a mutex instead of a spinlock to protect a groups + mark list + - LP: #922906 + * SAUCE: fsnotify: pass group to fsnotify_destroy_mark() + - LP: #922906 + * SAUCE: fsnotify: introduce locked versions of fsnotify_add_mark() and + fsnotify_remove_mark() + - LP: #922906 + * SAUCE: fsnotify: dont put marks on temporary list when clearing marks + by group + - LP: #922906 + * SAUCE: fsnotify: change locking order + - LP: #922906 + + [ Tim Gardner ] + + * [Config] CONFIG_NFC_LLCP=y + * [Config] get-firmware: Filter new files through fwinfo + * [Config] CONFIG_MTD_NAND_DOCG4=m for all arches + * [Config] CONFIG_DRM_EXYNOS_HDMI=y + * [Config] CONFIG_XEN=y for all arches + * [Config] CONFIG_SND_OMAP_SOC_ZOOM2=m + * [Config] CONFIG_MMC_DW_EXYNOS=m + * [Config] CONFIG_GPIO_ADNP=m + * [Config] find-obsolete-firmware: Use correct path + * rebase to v3.7-rc8 + - LP: #1084640 + + [ Upstream Kernel Changes ] + + * Revert "VFS: don't do protected {sym,hard}links by default" + - LP: #1084192 + + -- Tim Gardner Wed, 28 Nov 2012 16:07:08 +0000 + +linux (3.7.0-4.12) raring; urgency=low + + [ Tim Gardner ] + + * Revert "[Config] Use -j1 for headers_install" + * Revert "[Config] install-arch-headers needs a valid config" + Strayed into the weeds in search of the root cause of the periodic + build failure. + Fixes powerpc FTBS introduced in -4.11. + * [Config] hmake -j1 + The kernel makefile appears to have parallel dependency + problems for the install_headers target. This appears to be root + cause for a periodic build failure on N-way machines. + + -- Leann Ogasawara Tue, 27 Nov 2012 12:33:06 -0800 + +linux (3.7.0-4.11) raring; urgency=low + + [ Tim Gardner ] + + * [Config] Use -j1 for headers_install + Also fixes a powerpc FTBS introduced by + "[Config] install-arch-headers needs a valid config". + + -- Tim Gardner Tue, 27 Nov 2012 10:19:30 -0700 + +linux (3.7.0-4.10) raring; urgency=low + + [ Andy Whitcroft ] + + * [Config] add rebuild-test support for autopkgtest + - LP: #1081500 + * [tests] move build tests out of the way + - LP: #1081500 + * [tests] add an autopkgtest rebuild test + - LP: #1081500 + + [ Tim Gardner ] + + * rebase to v3.7-rc7 + * SAUCE: Remove emi62 files duplicated in linux-firmware + * SAUCE: Remove sb16 files duplicated in linux-firmware + * SAUCE: Remove whiteheat files duplicated in linux-firmware + * SAUCE: Remove yamaha files duplicated in linux-firmware + * SAUCE: Remove dsp56k files used only by m68k + * SAUCE: firmware: Remove last vestiges of dabusb + * SAUCE: Remove vicam files duplicated in linux-firmware + * [Config] install-arch-headers needs a valid config + + [ Upstream Kernel Changes ] + + * rebase to v3.7-rc7 + - LP: #1076840 + - LP: #1081466 + + -- Leann Ogasawara Wed, 21 Nov 2012 06:07:23 -0800 + +linux (3.7.0-3.9) raring; urgency=low + + [ Leann Ogasawara ] + + * [Config] Enable CONFIG_X86_CPUFREQ_NFORCE2=y + - LP: #1079900 + * Add nfsv3 to nfs-modules udeb + + [ Paolo Pisati ] + + * [Config] SND_OMAP_SOC*=y + - LP: #1019321 + + [ Stefan Bader ] + + * SAUCE: (no-up) xen/netfront: handle compound page fragments on transmit + - LP: #1078926 + + [ Tim Gardner ] + + * Revert "SAUCE: SECCOMP: audit: always report seccomp violations" + - LP: #1079469 + * Revert "SAUCE: omap3 clocks .dev_id = NULL" + * rebase to v3.7-rc6 + * SAUCE: script to detect obsolete firmware + * SAUCE: Remove yam files duplicated in linux-firmware + * SAUCE: Remove tehuti files duplicated in linux-firmware + * SAUCE: Remove matrox files duplicated in linux-firmware + * SAUCE: Remove cxgb3 files duplicated in linux-firmware + * SAUCE: Remove r128 files duplicated in linux-firmware + * SAUCE: Remove acenic files duplicated in linux-firmware + * SAUCE: Remove keyspan files duplicated in linux-firmware + * SAUCE: Remove sun files duplicated in linux-firmware + * SAUCE: Remove radeon files duplicated in linux-firmware + * SAUCE: Update bnx2x firmware to 7.8.2.0 + * [Config] generic.inclusion-list: econet has disappeared + + [ Upstream Kernel Changes ] + + * seccomp: forcing auditing of kill condition + - LP: #1079469 + * rebase to v3.7-rc6 + + -- Leann Ogasawara Tue, 20 Nov 2012 12:28:55 -0800 + +linux (3.7.0-2.8) raring; urgency=low + + [ Andy Whitcroft ] + + * Revert "overlayfs: disable until FTBS is fixed" + * Revert "ubuntu: overlayfs" + * Revert "ubuntu: AUFS" + * ubuntu: overlayfs -- overlayfs: add statfs support + * ubuntu: overlayfs -- ovl: switch to __inode_permission() + * ubuntu: overlayfs -- overlayfs: copy up i_uid/i_gid from the underlying + inode + - LP: #944386 + * ubuntu: AUFS (no-squash): basic framework and update machinary + * ubuntu: AUFS (no-squash) -- aufs3-base.patch + * ubuntu: AUFS (no-squash) -- aufs3-standalone.patch + * ubuntu: AUFS: aufs-update -- follow the uapi header changes + * ubuntu: AUFS -- update to f2873474324d0a31af4340554b9715f51331bc7f + * ubuntu: AUFS (no-squash) -- reenable + - LP: #1079193 + + [ Erez Zadok ] + + * ubuntu: overlayfs -- overlayfs: implement show_options + + [ Miklos Szeredi ] + + * ubuntu: overlayfs -- vfs: add i_op->dentry_open() + * ubuntu: overlayfs -- vfs: export do_splice_direct() to modules + * ubuntu: overlayfs -- vfs: introduce clone_private_mount() + * ubuntu: overlayfs -- overlay filesystem + * ubuntu: overlayfs -- fs: limit filesystem stacking depth + * ubuntu: overlayfs -- vfs: export __inode_permission() to modules + + [ Neil Brown ] + + * ubuntu: overlayfs -- overlay: overlay filesystem documentation + + [ Robin Dong ] + + * ubuntu: overlayfs -- overlayfs: fix possible leak in ovl_new_inode + * ubuntu: overlayfs -- overlayfs: create new inode in ovl_link + + -- Andy Whitcroft Thu, 15 Nov 2012 13:35:12 +0000 + +linux (3.7.0-1.7) raring; urgency=low + + [ Tim Gardner ] + + * [Config] Drop dependency on libaudit-dev + Its a universe package which causes an FTBS on the builders. + libaudit-dev is not strictly required for the perf tools build. + + -- Tim Gardner Wed, 14 Nov 2012 10:08:13 -0700 + +linux (3.7.0-1.6) raring; urgency=low + + [ Andy Whitcroft ] + + * [Config] enforce -- switch CONFIG_NVRAM to more readable form + * [Config] better encode the CONFIG_NVRAM constaint + * enforcer -- fix debugging output + + [ Ben Collins ] + + * [Config] Add custom_override rule to allow for alternate kernel + file/install + * [Config] Use SRCPKGNAME as prefix for indep linux headers package + + [ Tim Gardner ] + + * [Config] Dropped armel + * Drop highbank from ABI fetch list + * [Config] Use dh_prep instead of 'dh_clean -k' + * [Config] Build depend on libaudit-dev, libunwind8-dev for tools + * [Config] Document binary-indep dependency chain + * rebase to v3.7-rc5 + + [ Upstream Kernel Changes ] + + * rebase to v3.7-rc5 + + -- Tim Gardner Tue, 13 Nov 2012 07:13:37 -0500 + +linux (3.7.0-0.5) raring; urgency=low + + [ Tim Gardner ] + + * [Config] CONFIG_AMD_IOMMU_V2=m + - LP: #1071520 + * [Config] CONFIG_MTD_ONENAND_SIM=n for armel + Fixes FTBS + + -- Tim Gardner Thu, 08 Nov 2012 15:45:39 -0500 + +linux (3.7.0-0.4) raring; urgency=low + + [ Ben Collins ] + + * [Config] Update enforce rule for CONFIG_NVRAM to better suit flavours + + [ Tim Gardner ] + + * [Config] do_tools=false for arm + + -- Tim Gardner Thu, 08 Nov 2012 05:39:51 -0700 + +linux (3.7.0-0.3) raring; urgency=low + + [ Tim Gardner ] + + * [Config] CONFIG_DRM_EXYNOS_HDMI=n for armhf + * [Config] CONFIG_MTD_NAND_DOCG4=n for armel/armhf + * [Config] Drop highbank harder + + -- Tim Gardner Wed, 07 Nov 2012 18:11:45 +0000 + +linux (3.7.0-0.2) raring; urgency=low + + [ Andy Whitcroft ] + + * [Config] add fs/udf to linux-image to support DVD/CD formats in virtual + instances + - LP: #1066921 + * [Config] drop highbank builds + + [ Jeremy Kerr ] + + * SAUCE: efivarfs: Implement exclusive access for {get, set}_variable + - LP: #1063061 + + [ Leann Ogasawara ] + + * Reinstate dropped.txt from Ubuntu-3.7.0-0.1-rc1 + + [ Tim Gardner ] + + * [Config] Dropped powerpc/ppc64 in favour of the community kernel + * [Config] CONFIG_MODULE_SIG=y for amd64,i386, and highbank + * rebase to v3.7-rc4 + * SAUCE: MODSIGN: Emit error for incorrectly signed module + + [ Upstream Kernel Changes ] + + * rebase to v3.7-rc4 + + -- Tim Gardner Mon, 05 Nov 2012 05:35:41 -0700 + +linux (3.7.0-0.1) raring; urgency=low + + + [ Upstream Kernel Changes ] + + * rebase to v3.7-rc3 + - LP: #1056078 + + [ Upstream Kernel Changes ] + + * rebase to v3.7-rc2 + - LP: #1060729 + - LP: #1059523 + - LP: #1006690 + - LP: #1049623 + - LP: #1046512 + - LP: #1052499 + - LP: #1037642 + - LP: #559939 + - LP: #1052460 + - LP: #939161 + - LP: #1046734 + + -- Tim Gardner Tue, 02 Oct 2012 08:13:07 -0600 + +linux (3.6.0-0.1) UNRELEASED; urgency=low + + + [ Upstream Kernel Changes ] + + * rebase to v3.6 + + [ Upstream Kernel Changes ] + + * rebase to v3.6-rc7 + + [ Upstream Kernel Changes ] + + * rebase to v3.6-rc6 + - LP: #1000424 + + [ Upstream Kernel Changes ] + + * rebase to v3.6-rc5 + - LP: #1040077 + + [ Upstream Kernel Changes ] + + * rebase to v3.6-rc4 + + [ Upstream Kernel Changes ] + + * rebase to v3.6-rc3 + - LP: #1038651 + - LP: #1034779 + + -- Leann Ogasawara Tue, 24 Jul 2012 06:37:09 -0700 + +linux (3.5.0-6.6) quantal-proposed; urgency=low + + [ Andy Whitcroft ] + + * [Config] CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION enable IPv6 + experimental features + * SAUCE: highbank -- export clock functions for modules + * [Config] highbank -- reenable CONFIG_TOUCHSCREEN_W90X900 + * [Config] highbank -- renenable CONFIG_SERIO_AMBAKMI + * [Config] highbank -- reenable CONFIG_RFKILL_GPIO + * [Config] highbank -- reenable CONFIG_MMC_SDHCI_PXAV3 + * [Config] highbank -- reenable CONFIG_MMC_SDHCI_PXAV3 + * [Config] highbank -- reenable CONFIG_KEYBOARD_SAMSUNG + * [Config] highbank -- reenable CONFIG_FB_ARMCLCD + * [Config] highbank -- reenable CONFIG_DW_DMAC + * [Config] highbank -- reenable CONFIG_USB_R8A66597_HCD + * [Config] highbank -- reenable CONFIG_USB_MV_UDC + * [Config] highbank -- reenable CONFIG_USB_DWC3 + * [Config] highbank -- reenable CONFIG_SATA_MV + * [Config] highbank -- reenable CONFIG_PATA_ARASAN_CF + * [Config] highbank -- CONFIG_CAN_C_CAN_PLATFORM + * [Config] highbank -- reenable CONFIG_MMC_ARMMMCI + * [Config] highbank -- reenable CONFIG_SERIAL_AMBA_PL010 + * [Config] highbank -- reenable CONFIG_ATMEL_PWM + * [Config] highbank -- enable CONFIG_CHECKPOINT_RESTORE + * [Config] highbank -- enable CONFIG_EXPERT + * [Config] highbank -- enable CONFIG_CHECKPOINT_RESTORE + * [Config] enable CONFIG_USB_DYNAMIC_MINORS + * [Config] enable CONFIG_USB_EHCI_TT_NEWSCHED + * [Config] enable CONFIG_USB_ETH_EEM + * [Config] enable CONFIG_USB_HCD_BCMA/CONFIG_USB_HCD_SSB + * [Config] disable CONFIG_USB_M66592 + * [Config] enable CONFIG_USB_NET2272 + * [Config] enable CONFIG_USB_R8A66597 + * [Config] annotate: CONFIG_USB_OMAP not required for our h/w + * [Config] set CONFIG_USB_MUSB_HDRC=m for omap + * [Config] annotate: CONFIG_USB_G_MULTI fix rule + * [Config] CONFIG_USB_GPIO_VBUS=m for OMAP + * [Config] Enable CONFIG_DRM_AST/_CIRRUS_QEMU/_MGAG200 + * [Config] sync configuration armhf omap -> armel omap + * [Config] annotate: CONFIG_IIO triggers build failures on OMAP4 + * [Config] disable CONFIG_OMAP_IOVMM is deprecated + + [ Bryan Wu ] + + * [Config] change default IO scheduler from CFQ to Deadline + + [ Leann Ogasawara ] + + * Revert "[Config] Temporarily disable CONFIG_MV643XX_ETH on powerpc" + * [Config] Disable CONFIG_MOUSE_INPORT + + [ Tim Gardner ] + + * SAUCE: firmware: Update bnx2x to current firmware version 7.2.51 + * [Config] Add bnx2x firmware to nic-modules udeb + * SAUCE: Add script to convert firmware to ihex format + * SAUCE: firmware: Upgrade bnx2 to current versions + * [Config] Add tigon firmware to nic-modules udeb + * [Config] CONFIG_EARLY_PRINTK_DBGP=y + - LP: #1026761 + * SAUCE: Remove redundant cis firmware + * SAUCE: Remove redundant emi26 firmware + * SAUCE: Remove redundant ttusb-budget firmware + * SAUCE: Remove redundant sun/cassini firmware + * SAUCE: Remove redundant ositech/Xilinx7OD firmware + * SAUCE: Remove redundant 3com/typhoon.bin firmware + * SAUCE: Remove redundant yamaha/ds1 firmware + * SAUCE: Remove redundant keyspan_pda firmware + * rebase to v3.5 + + [ Upstream Kernel Changes ] + + * rebase to v3.5 + - LP: #1027828 + + -- Leann Ogasawara Mon, 23 Jul 2012 05:57:04 -0700 + +linux (3.5.0-5.5) quantal-proposed; urgency=low + + [ Andy Whitcroft ] + + * [Config] annotations: initial import of configuration annotations + + [ Bryan Wu ] + + * [Config] enforcer -- add CONFIG_I2C_DESIGNWARE_PLATFORM enforce checker + + [ Leann Ogasawara ] + + * Rebase to v3.5-rc7 + + [ Manoj Iyer ] + + * SAUCE: Bluetooth: btusb: Add vendor specific ID (0a5c:21f4) BCM20702A0 + - LP: #1010281 + + [ Tim Gardner ] + + * [Config] enable CONFIG_I2C_HELPER_AUTO for all flavours as policy + expects + * [Config] CONFIG_I2O_CONFIG_OLD_IOCTL=n + * [Config] CONFIG_BRIDGE_EBT_ULOG=n + * [Config] CONFIG_IP_NF_QUEUE=n + * [Config] CONFIG_MTD_DOC2000=n + * [Config] CONFIG_PRINT_QUOTA_WARNING=n + * [Config] CONFIG_PRISM54=n + * [Config] CONFIG_SCx200_I2C=n + * [Config] CONFIG_USB_ANNOUNCE_NEW_DEVICES=y + + [ Upstream Kernel Changes ] + + * rebase to v3.5-rc7 + + -- Leann Ogasawara Mon, 16 Jul 2012 15:38:41 -0700 + +linux (3.5.0-4.4) quantal-proposed; urgency=low + + [ Andy Whitcroft ] + + * [Packaging] getabis should be extracting all packages + - LP: #1021174 + * [Config] getabis -- series uses linux-image-extra + - LP: #1021174 + * rebase to v3.5-rc6 + + [ Bryan Wu ] + + * [Config] built-in CONFIG_MICREL_PHY as other PHY drivers for all + flavours + * [Config] sync CONFIG_MOUSE_PS2_ config for all flavours + + [ Leann Ogasawara ] + + * [Config] Enable CONFIG_RT2800USB_RT35XX and CONFIG_RT2800USB_RT53XX + - LP: #1019561 + + [ Paolo Pisati ] + + * [Config] SND_OMAP_SOC, SND_OMAP_SOC_MCBSP and SND_OMAP_SOC_OMAP3_BEAGLE =y + - LP: #1019321 + + [ Stefan Bader ] + + * SAUCE: (pre-up) net: dont use __netdev_alloc_skb for bounce buffer + - LP: #1018456 + * (config) Disable ACPI_PROCFS_POWER + + [ Tim Gardner ] + + * [Config] CONFIG_ACPI_BGRT=y + * Extract firmware module info during getabi + - LP: #1021174 + + [ Upstream Kernel Changes ] + + * rebase to v3.5-rc6 + + -- Leann Ogasawara Mon, 09 Jul 2012 08:50:20 -0700 + +linux (3.5.0-3.3) quantal-proposed; urgency=low + + [ Andy Whitcroft ] + + * [Config] enable CONFIG_MEMTEST=y + - LP: #1004535 + * [Config] config-check: add support for a cut operation + * [Config] enforcer -- switch to cut where appropriate + + [ Leann Ogasawara ] + + * Rebase to v3.5-rc5 + * [Config] Updateconfigs after rebase to v3.5-rc5 + + [ Luis Henriques ] + + * SAUCE: ocfs2: Fix NULL pointer dereferrence in + __ocfs2_change_file_space + - LP: #1006012 + + [ Seth Forshee ] + + * SAUCE: (drop after 3.5) drm/i915: ignore pipe select bit when checking + for LVDS register initialization + - LP: #1012800 + + [ Upstream Kernel Changes ] + + * rebase to v3.5-rc5 + - LP: #1013183 + - LP: #1017017 + - LP: #884652 + + -- Leann Ogasawara Mon, 02 Jul 2012 06:41:58 -0700 + +linux (3.5.0-2.2) quantal-proposed; urgency=low + + [ Andy Whitcroft ] + + * rebase to v3.5-rc4 + + [ Arend van Spriel ] + + * SAUCE: (drop after 3.5) brcmsmac: fix NULL pointer crash in + brcms_c_regd_init() + - LP: #950320 + + [ Bryan Wu ] + + * [Config] Sync CONFIG_CGROUP_MEM_RES_CTLR_SWAP for ARM + + [ Chris J Arges ] + + * PACKAGING: add .gnu_debuglink sections to .ko files + - LP: #669641 + + [ Leann Ogasawara ] + + * d-i: Add hid-generic to input-modules + - LP: #1017879 + + [ Ming Lei ] + + * SAUCE: Revert "mmc: omap_hsmmc: Enable Auto CMD12" + - LP: #1017717, #225 + + [ Paolo Pisati ] + + * SAUCE: Revert "Fix OMAP EHCI suspend/resume failure (i693)" + - LP: #1017718 + * [Config] Disable generic USB_EHCI_HCD_PLATFORM on omap3 + + [ Seth Forshee ] + + * SAUCE: (drop after 3.5) brcm80211: smac: don't set up tx power limits + during initialization + - LP: #950320 + * SAUCE: (drop after 3.5) brcm80211: smac: always set channel specified + by mac80211 + - LP: #950320 + * SAUCE: (drop after 3.5) brcm80211: smac: remove unused code for 40MHz + channels + - LP: #950320 + * SAUCE: (drop after 3.5) brcm80211: smac: clean up channel.c + - LP: #950320 + * SAUCE: (drop after 3.5) brcm80211: smac: inform mac80211 of the X2 + regulatory domain + - LP: #950320 + * SAUCE: (drop after 3.5) brcm80211: smac: enable/disable radio on + regulatory updates + - LP: #950320 + * SAUCE: (drop after 3.5) brcm80211: smac: use mac80211 channel data for + tx power limits + - LP: #950320 + * SAUCE: (drop after 3.5) brcm80211: smac: don't validate channels + against internal regulatory data + - LP: #950320 + * SAUCE: (drop after 3.5) brcm80211: smac: use current regulatory domain + when checking whether OFDM is allowed + - LP: #950320 + + [ Tim Gardner ] + + * [Config] Enable CONFIG_CGROUPS for highbank + - LP: #1014692 + * [Config] FB_OMAP*=y and PANEL_TFP410=y + + [ Upstream Kernel Changes ] + + * rebase to v3.5-rc4 + + -- Leann Ogasawara Tue, 26 Jun 2012 06:21:05 -0700 + +linux (3.5.0-1.1) quantal-proposed; urgency=low + + [ Andy Whitcroft ] + + * [Config] highbank -- enable CONFIG_RFKILL=y and CONFIG_CAN=m + + [ Leann Ogasawara ] + + * Rebase to v3.5-rc1 + * [Config] Remove USB_DEVICEFS from the config enforcer + * [Config] Updateconfigs after rebase to v3.5-rc1 + * [Config] Temporarily disable CONFIG_MACH_NOKIA_RX51 on arm + * [Config] Temporarily disable CONFIG_TOUCHSCREEN_EETI on arm + * [Config] Temporarily disable CONFIG_TOUCHSCREEN_EGALAX on arm + * [Config] Temporarily disable CONFIG_EZX_PCAP on arm + * [Config] Temporarily disable CONFIG_LIS3L02DQ on arm + * [Config] Temporarily disable CONFIG_TI_CPSW on arm + * [Config] Temporarily disable CONFIG_GPIO_EM on arm + * [Config] Temporarily disable CONFIG_SERIAL_8250_EM on armhf + * [Config] Temporarily disable CONFIG_STMMAC_ETH on armhf + * [Config] Temporarily disable CONFIG_HW_RANDOM_ATMEL on armhf + * Rebase to v3.5-rc2 + * [Config] Updateconfigs after rebase to v3.5-rc2 + * [Config] Temporarily disable CONFIG_MV643XX_ETH on powerpc + * Rebase to v3.5-rc3 + * [Config] Updateconfigs after rebase to v3.5-rc3 + + [ Paul Mundt ] + + * SAUCE: fix bug.h's inclusion of kernel.h + + [ Stefan Bader ] + + * SAUCE: Fix compile failures of dm-raid45 + * [Config] Enable dm-raid45 + * Move dependency on crda to extra package + - LP: #657901 + * SAUCE: Mask CR4 writes on older Xen hypervisors + + [ Upstream Kernel Changes ] + + * rebase to v3.5-rc3 + - LP: #993162 + - LP: #925577 + * rebase to v3.5-rc2 + * rebase to v3.5-rc1 + - LP: #955892 + - LP: #978038 + - LP: #987371 + - LP: #929545 + - LP: #942316 + - LP: #903853 + + -- Leann Ogasawara Fri, 08 Jun 2012 14:28:46 -0700 + +linux (3.4.0-5.11) quantal-proposed; urgency=low + + [ Leann Ogasawara ] + + * [Config] Disable CONFIG_ARM_LPAE + - LP: #1009061 + + [ Oleksij Rempel ] + + * SAUCE: b43: do not call ieee80211_unregister_hw if we are not registred + - LP: #1008905 + + [ Paolo Pisati ] + + * [Config] omap3: MFD_OMAP_USB_HOST is usb host in omap2+. + - LP: #1009061 + + -- Leann Ogasawara Tue, 05 Jun 2012 08:06:28 -0700 + +linux (3.4.0-4.10) quantal; urgency=low + + [ Leann Ogasawara ] + + * Temporarily disable ABI and module check + + -- Leann Ogasawara Mon, 04 Jun 2012 20:27:31 -0700 + +linux (3.4.0-4.9) quantal; urgency=low + + [ Andy Whitcroft ] + + * [Config] fix config split to avoid the shared config + * [Config] updateconfigs following split config fix + * [Config] linux-image-extras needs full postinst + * [Config] CONFIG_BLK_DEV_NVME commonise across architectures + * [Config] CONFIG_HP_WATCHDOG enable as module + * [Config] CONFIG_PDC_ADMA is not boot essential + * [Config] CONFIG_XEN_ACPI_PROCESSOR should be enabled on x86 + * [Config] CONFIG_VT6655/CONFIG_VT6656=m + * [Config] CONFIG_TRANZPORT=m commonise + * [Config] CONFIG_R3964=m commonise + * [Config] CONFIG_SCSI_DH=m commonise + * [Config] CONFIG_SCSI_IBMVSCSIS=m commonise + * [Config] CONFIG_AMD_PHY=y phys are not autoloadable + * [Config] CONFIG_SCSI_QLA_ISCSI=m commonise + * [Config] CONFIG_SCSI_SPI_ATTR=m commonise + * [Config] CONFIG_USB_SN9C102 is deprecated disable + * [Config] CONFIG_USB_SI470X=m commonise + * [Config] CONFIG_USB_ET61X251=m commonise + * [Config] CONFIG_RTS_PSTOR=m commonise + * [Config] CONFIG_SCANLOG=m commonise + * [Config] CONFIG_SCSI_SYM53C8XX_2=m commonise + * [Config] CONFIG_SM_FTL=m commonise + * [Config] CONFIG_SOLO6X10=m commonise + * [Config] CONFIG_SND_PCM_OSS=n using pulseaudio emulation instead + * [Config] CONFIG_SPI_DESIGNWARE=m commonise + * [Config] CONFIG_SPI_SPIDEV=m commonise + * [Config] CONFIG_TABLET_USB_WACOM=m commonise + * [Config] CONFIG_TPS65010=m commonise + * [Config] CONFIG_STE10XP=y commonise + * [Config] CONFIG_X25_ASY=m commonise + * [Config] CONFIG_USB_MON=m commonise + * [Config] CONFIG_VME_BUS=m commonise + * [Config] CONFIG_W35UND=m commonise + * [Config] -CONFIG_TCG_TPM=y commonise + * [Config] highbank -- commonise filesystems + * [Config] highbank -- commonise subsystems + * [Config] highbank -- commonise network protocols + * [Config] highbank -- commonise input drivers + * [Config] highbank -- commonise CRYPTO options + * [Config] highbank -- commonise HID options + * [Config] highbank -- commonise sensors options + * [Config] highbank -- commonise EXPORTFS/FHANDLE + * [Config] highbank -- commonise CONFIG_CRYPTO_LZO + * [Config] highbank -- commonise ENCRYPTED_KEYS + * [Config] highbank -- commonise CONFIG_ATALK + * [Config] highbank -- commonise INET/INET6 + * [Config] highbank -- commonise NLS + * [Config] highbank -- commonise BLK/CHR + * [Config] highbank -- CONFIG_EXT2_FS=y boot essential on highbank + * [Config] highbank -- commonise INET/INET6 part 2 + * [Config] highbank -- commonise PHY settings + * [Config] highbank -- commonise CRC settings + * [Config] highbank -- commonise BINFMT settings + * [Config] highbank -- commonise DM settings + * [Config] highbank -- commonise RTC_DRV settings + * [Config] highbank -- commonise KEYBOARD/MOUSE settings + * [Config] highbank -- commonise USB settings + * [Config] highbank -- commonise GPIO settings + * [Config] highbank -- commonise I2C settings + * [Config] highbank -- commonise numerous subsystem selectors + * [Config] highbank -- commonise A-C modules missmatches + * [Config] highbank -- commonise D-F modules missmatches + * [Config] CONFIG_AUDIT_LOGINUID_IMMUTABLE incompatible with upstart + * [Config] highbank -- commonise G-I modules missmatches + * [Config] highbank -- commonise J-L modules missmatches + * [Config] highbank -- commonise M modules missmatches + * [Config] highbank -- commonise N-P modules missmatches + * [Config] highbank -- commonise Q-R modules missmatches + * [Config] highbank -- commonise S modules missmatches -- part 1 + * [Config] highbank -- commonise S modules missmatches -- part 2 + * [Config] highbank -- commonise T modules missmatches + * [Config] highbank -- commonise U-Z modules missmatches + + [ Ike Panhc ] + + * [Config] add highbank flavour + - LP: #1000831 + + [ Mark Langsdorf ] + + * SAUCE: arm highbank: add support for pl320-ipc driver + - LP: #1000831 + + [ Rob Herring ] + + * SAUCE: input: add a key driver for highbank + - LP: #1000831 + * SAUCE: ARM: highbank: Add smc calls to enable/disable the L2 + - LP: #1000831 + * SAUCE: force DMA buffers to non-bufferable on highbank + - LP: #1000831 + * SAUCE: net: calxedaxgmac: fix net timeout recovery + - LP: #1000831 + + [ Tim Gardner ] + + * [Config] CONFIG_IWLWIFI_EXPERIMENTAL_MFP=n + * [Config] CONFIG_PCI_REALLOC_ENABLE_AUTO=y + * [Config] CONFIG_CIFS_EXPERIMENTAL has disappeared + * [Config] Homogenize CIFS configs across all arches + * [Config] armhf should not be skipabi or skipmodules + - LP: #1006913 + + -- Leann Ogasawara Mon, 04 Jun 2012 05:52:49 -0700 + +linux (3.4.0-3.8) quantal; urgency=low + + [ Andy Whitcroft ] + + * [Config] include include/generated/compile.h + - LP: #942569 + * [Config] fix up postinst to ensure we know which error is which + - LP: #1002388 + + [ Herton Ronaldo Krzesinski ] + + * SAUCE: async_populate_rootfs: fix build warnings + - LP: #1003417 + + [ John Johansen ] + + * Revert "SAUCE: AppArmor: Add the ability to mediate mount" + * SAUCE: apparmor: Add the ability to mediate mount + * SAUCE: AppArmor: basic networking rules + * SAUCE: apparmor: fix profile lookup for unconfined + - LP: #978038, #987371 + * SAUCE: apparmor: fix long path failure due to disconnected path + - LP: #955892 + + [ Mario Limonciello ] + + * SAUCE: dell-laptop: rfkill blacklist Dell XPS 13z, 15 + - LP: #901410 + + [ Stefan Bader ] + + * (config) Built-in xen-acpi-processor + + [ Tim Gardner ] + + * [Config] CONFIG_NET_DSA=m + - LP: #1004148 + * [Config] Ensure CONFIG_XEN_ACPI_PROCESSOR=y for amd64 + + -- Leann Ogasawara Fri, 25 May 2012 11:38:33 -0700 + +linux (3.4.0-3.7) quantal; urgency=low + + [ Andy Whitcroft ] + + * [Config] drop the virtual flavour in favour of a split generic et al + * [Config] enforcer -- drop IDLE enforcement + * [Config] enable CONFIG_SCSI_VIRTIO=m for amd64 + * [Config] updateconfigs following removal of -virtual + + [ Leann Ogasawara ] + + * Rebase to v3.4 + + [ Seth Forshee ] + + * [Config] disable CONFIG_B43_BCMA_EXTRA + + [ Tim Gardner ] + + * [Config] Check for extras when building udebs + * [Config] Collapsed generic-pae into generic [i386] + + [ Upstream Kernel Changes ] + + * rebase to v3.4 + + -- Leann Ogasawara Mon, 21 May 2012 07:23:47 -0700 + +linux (3.4.0-2.6) quantal; urgency=low + + [ Andy Whitcroft ] + + * Revert "ubuntu: overlayfs -- overlayfs: update touch_atime() usage" + * Revert "ubuntu: overlayfs -- overlayfs: switch from d_alloc_root() to + d_make_root()" + * Revert "ubuntu: overlayfs -- overlayfs: follow header cleanup" + * Revert "ubuntu: overlayfs -- overlayfs: apply device cgroup and + security permissions to overlay files" + * Revert "ubuntu: overlayfs -- fs: limit filesystem stacking depth" + * Revert "ubuntu: overlayfs -- overlay: overlay filesystem documentation" + * Revert "ubuntu: overlayfs -- overlayfs: implement show_options" + * Revert "ubuntu: overlayfs -- overlayfs: add statfs support" + * Revert "ubuntu: overlayfs -- overlay filesystem" + * Revert "ubuntu: overlayfs -- vfs: introduce clone_private_mount()" + * Revert "ubuntu: overlayfs -- vfs: export do_splice_direct() to modules" + * Revert "ubuntu: overlayfs -- vfs: add i_op->open()" + * Revert "ubuntu: overlayfs -- vfs: pass struct path to __dentry_open()" + * ubuntu: overlayfs -- overlayfs: add statfs support + * ubuntu: overlayfs -- inode_only_permission: export inode level + permissions checks + * ubuntu: overlayfs -- overlayfs: switch to use inode_only_permissions + + [ Erez Zadok ] + + * ubuntu: overlayfs -- overlayfs: implement show_options + + [ Miklos Szeredi ] + + * ubuntu: overlayfs -- vfs: pass struct path to __dentry_open() + * ubuntu: overlayfs -- vfs: add i_op->open() + * ubuntu: overlayfs -- vfs: export do_splice_direct() to modules + * ubuntu: overlayfs -- vfs: introduce clone_private_mount() + * ubuntu: overlayfs -- overlay filesystem + * ubuntu: overlayfs -- fs: limit filesystem stacking depth + + [ Neil Brown ] + + * ubuntu: overlayfs -- overlay: overlay filesystem documentation + + [ Robin Dong ] + + * ubuntu: overlayfs -- overlayfs: fix possible leak in ovl_new_inode + * ubuntu: overlayfs -- overlayfs: create new inode in ovl_link + + [ Tim Gardner ] + + * [Config] perarch and indep tools builds need separate build directories + * Prevent upgrading a non-PAE CPU + * perf is not parallel build safe + + -- Leann Ogasawara Wed, 16 May 2012 08:43:18 -0700 + +linux (3.4.0-2.5) quantal; urgency=low + + [ Andy Whitcroft ] + + * [Config] perarch and indep tools builds need separate build directories + + [ Tim Gardner ] + + * Prevent upgrading a non-PAE CPU + * [Config] build debug + * [Config] perf tools are not parallel build safe + + -- Leann Ogasawara Tue, 15 May 2012 11:37:53 -0700 + +linux (3.4.0-2.4) quantal; urgency=low + + [ Leann Ogasawara ] + + * Revert "SAUCE: fsam7400: use UMH_WAIT_PROC consistently" + * Revert "ubuntu: fsam7400 select CHECK_SIGNATURE and depend on X86" + * Revert "ubuntu: fsam7400: Depend on CHECK_SIGNATURE" + * Revert "ubuntu: fsam7400 -- Cleanup Makefile" + * Revert "ubuntu: fsam7400 -- kill switch for Fujitsu Siemens Amilo M + 7400" + * Revert "ubuntu: omnibook: fix source file newline" + * Revert "ubuntu: omnibook -- update BOM" + * Revert "SAUCE: Make CONFIG_{OMNIBOOK, AVERATEC_5100P, PACKARDBELL_E5} + depend on X86" + * Revert "ubuntu: omnibook -- Added missing BOM file" + * Revert "ubuntu: omnibook -- support Toshiba (HP) netbooks" + * Revert "ubuntu: nx-emu - i386: mmap randomization for executable + mappings" + * Revert "SAUCE: disable_nx should not be in __cpuinitdata section for + X86_32" + * Revert "ubuntu: nx-emu - i386: NX emulation" + * Revert "ubuntu: rfkill drivers -- version 1.3" + * Temporarily disable module check + * [Config] Remove CONFIG_FSAM7400 + * [Config] Remove CONFIG_OMNIBOOK + * [Config] Update configs + * Rebase to v3.4-rc7 + * SAUCE: genirq: export handle_edge_irq() and irq_to_desc() + + [ Tim Gardner ] + + * Updated generic-pae description + * Rebase to v3.4-rc6 + * install-tools depends on build targets + + [ Upstream Kernel Changes ] + + * kconfig: in debug mode some 0 length message prints occur + * rebase to v3.4-rc7 + * rebase to v3.3-rc6 + + -- Leann Ogasawara Mon, 14 May 2012 08:22:56 -0700 + +linux (3.4.0-1.3) quantal; urgency=low + + [ Andy Whitcroft ] + + * [Config] control.stub is an intermediate product not a dependancy + - LP: #992414 + + [ Leann Ogasawara ] + + * remove i386 generic from getabis + + [ Upstream Kernel Changes ] + + * (pre-stable) b43: only reload config after successful initialization + - LP: #950295 + + -- Leann Ogasawara Wed, 02 May 2012 09:48:14 -0700 + +linux (3.4.0-1.2) quantal; urgency=low + + [ Andy Whitcroft ] + + * [Config] add build depends for flex, bison and pkg-config + + -- Andy Whitcroft Tue, 01 May 2012 13:15:41 +0100 + +linux (3.4.0-1.1) quantal; urgency=low + + [ Andy Whitcroft ] + + * ubuntu: overlayfs -- overlayfs: apply device cgroup and security + permissions to overlay files + - LP: #915941, #918212 + - CVE-2012-0055 + + [ Leann Ogasawara ] + + * Open Q + * Rebase to v3.4-rc5 + * [Config] Temporarily disable CONFIG_TOUCHSCREEN_EETI on arm + * [Config] Temporarily disable CONFIG_TOUCHSCREEN_EGALAX on arm + * [Config] Temporarily disable CONFIG_EZX_PCAP on arm + * [Config] Temporarily disable CONFIG_MFD_OMAP_USB_HOST on arm + * [Config] Temporarily disable CONFIG_LIS3L02DQ on arm + * [Config] Temporarily disable CONFIG_USB_EHCI_HCD_PLATFORM on arm + * [Config] Temporarily disable CONFIG_TI_CPSW on arm + * [Config] Temporarily disable CONFIG_AX88796 on arm + + [ Upstream Kernel Changes ] + + * vfs: pass struct path to __dentry_open() + * vfs: add i_op->open() + * vfs: export do_splice_direct() to modules + * vfs: introduce clone_private_mount() + * overlay filesystem + * overlayfs: add statfs support + * overlayfs: implement show_options + * overlay: overlay filesystem documentation + * fs: limit filesystem stacking depth + * overlayfs: follow header cleanup + * overlayfs: switch from d_alloc_root() to d_make_root() + * overlayfs: update touch_atime() usage + * rebase to v3.4-rc5 + - LP: #950490 + * rebase to v3.4-rc4 + * rebase to v3.4-rc3 + * rebase to v3.4-rc2 + * rebase to v3.4-rc1 + * rebase to v3.3 + * rebase to v3.3-rc7 + * rebase to v3.3-rc6 + * rebase to v3.3-rc5 + * rebase to v3.3-rc4 + - LP: #900802 + - LP: #930842 + * rebase to v3.3-rc3 + - LP: #924320 + - LP: #923316 + - LP: #923409 + - LP: #918254 + * rebase to v3.3-rc2 + * rebase to v3.3-rc1 + - LP: #795823 + - LP: #909419 + - LP: #910792 + - LP: #878701 + - LP: #724831 + + -- Leann Ogasawara Wed, 25 Jan 2012 06:50:04 -0800 + +linux (3.2.0-10.18) precise; urgency=low + + [ Tim Gardner ] + + * SAUCE: ecryptfs: Print inode on metadata error + + [ Upstream Kernel Changes ] + + * Revert "proc: enable writing to /proc/pid/mem" + - LP: #919115 + - CVE-2012-0056 + * (pre-stable) ALSA: HDA: Use LPIB position fix for Macbook Pro 7, 1 + - LP: #909419 + + -- Andy Whitcroft Tue, 24 Jan 2012 10:15:12 +0000 + +linux (3.2.0-10.17) precise; urgency=low + + [ Andy Whitcroft ] + + * Revert "SAUCE: overlayfs -- fs: limit filesystem stacking depth" + * Revert "SAUCE: overlayfs -- overlay: overlay filesystem documentation" + * Revert "SAUCE: overlayfs -- overlayfs: implement show_options" + * Revert "SAUCE: overlayfs -- overlayfs: add statfs support" + * Revert "SAUCE: overlayfs -- overlay filesystem" + * Revert "SAUCE: overlayfs -- vfs: introduce clone_private_mount()" + * Revert "SAUCE: overlayfs -- vfs: export do_splice_direct() to modules" + * Revert "SAUCE: overlayfs -- vfs: add i_op->open()" + * ensure debian/ is not excluded from git by default + * add new scripting to handle buglinks in rebases + * ubuntu: overlayfs -- overlayfs: add statfs support + * ubuntu: overlayfs -- overlayfs: apply device cgroup and security + permissions to overlay files + - LP: #915941, #918212 + - CVE-2012-0055 + + [ Erez Zadok ] + + * ubuntu: overlayfs -- overlayfs: implement show_options + + [ Leann Ogasawara ] + + * Revert "SAUCE: dmar: disable if ricoh multifunction detected" + * [Config] Disable CONFIG_INTEL_IOMMU_DEFAULT_ON + - LP: #907377, #911236 + * [Config] Enable CONFIG_IRQ_REMAP + + [ Miklos Szeredi ] + + * ubuntu: overlayfs -- vfs: pass struct path to __dentry_open() + * ubuntu: overlayfs -- vfs: add i_op->open() + * ubuntu: overlayfs -- vfs: export do_splice_direct() to modules + * ubuntu: overlayfs -- vfs: introduce clone_private_mount() + * ubuntu: overlayfs -- overlay filesystem + * ubuntu: overlayfs -- fs: limit filesystem stacking depth + + [ Neil Brown ] + + * ubuntu: overlayfs -- overlay: overlay filesystem documentation + + [ Upstream Kernel Changes ] + + * (pre-stable) x86/PCI: amd: factor out MMCONFIG discovery + - LP: #647043 + * (pre-stable) PNP: work around Dell 1536/1546 BIOS MMCONFIG bug that + breaks USB + - LP: #647043 + + -- Leann Ogasawara Mon, 16 Jan 2012 07:10:08 -0800 + +linux (3.2.0-9.16) precise; urgency=low + + [ Andy Whitcroft ] + + * [Config] Enable numerous CONFIG_VIDEO_* cards on ARM + * [Config] pull ARM sound modules =m + * [Config] CONFIG_RTC_DRV_TEST is for testing only + * [Config] CONFIG_USB_DUMMY_HCD is testing only + * [Config] CONFIG_USB_FILE_STORAGE is deprecated + + [ Leann Ogasawara ] + + * Revert "[Config] Temporarily disable CONFIG_CAN_TI_HECC on armel" + * [Config] Enable CONFIG_HW_RANDOM_PASEMI=m + * [Config] Enable CONFIG_MMC_TMIO=m + * [Config] Enable CONFIG_MTD_NAND_FSL_ELBC=m + * [Config] Enable CONFIG_ISI=m + * [Config] Enable CONFIG_MMC=y + * [Config] Enable CONFIG_LIRC_PARALLEL=m + * [Config] Enable CONFIG_MAC_EMUMOUSEBTN=m + * [Config] Enable CONFIG_CHR_DEV_SG=y + * [Config] Enable CONFIG_GPIO_PCA953X=m + * [Config] Enable CONFIG_GPIO_TWL4030=m + * [Config] Enable CONFIG_INET_DIAG=m + * [Config] Enable CONFIG_NLS_ISO8859_1=m + * [Config] Enable CONFIG_NVRAM=m + * [Config] Enable CONFIG_SLIP=m + * [Config] Enable CONFIG_PC300TOO=m + * [Config] Enable CONFIG_TUN=y + * [Config] Enable CONFIG_NET_CLS_CGROUP=m + * [Config] Enable CONFIG_THERMAL=y + * [Config] Enable CONFIG_PPP=y + * [Config] Enable CONFIG_PCI_STUB=m + * Rebase to v3.2.1 + * [Config] Enable CONFIG_RTL8192E=m + * [Config] Enable CONFIG_RTS5139=m + + [ Stefan Bader ] + + * [Config] Make CONFIG_VIRTIO_(NET|BLK)=y + + [ Upstream Kernel Changes ] + + * ARM: restart: add restart hook to machine_desc record + * ARM: restart: allow platforms more flexibility specifying restart mode + * ARM: restart: move reboot failure handing into machine_restart() + * ARM: restart: remove argument to setup_mm_for_reboot() + * ARM: 7159/1: OMAP: Introduce local common.h files + * ARM: restart: only perform setup for restart when soft-restarting + * ARM: 7189/1: OMAP3: Fix build break in cpuidle34xx.c because of irq + function + * ARM: idmap: populate identity map pgd at init time using .init.text + * ARM: suspend: use idmap_pgd instead of suspend_pgd + * ARM: proc-*.S: place cpu_reset functions into .idmap.text section + * ARM: idmap: use idmap_pgd when setting up mm for reboot + * ARM: head.S: only include __turn_mmu_on in the initial identity mapping + * ARM: SMP: use idmap_pgd for mapping MMU enable during secondary booting + * ARM: 7194/1: OMAP: Fix build after a merge between v3.2-rc4 and ARM + restart changes + * ARM: lib: add call_with_stack function for safely changing stack + * ARM: reset: implement soft_restart for jumping to a physical address + * ARM: stop: execute platform callback from cpu_stop code + * ARM: kexec: use soft_restart for branching to the reboot buffer + * ARM: restart: omap: use new restart hook + * topdown mmap support + - LP: #861296 + + [ Upstream Kernel Changes ] + + * Rebase to v3.2.1 + + -- Leann Ogasawara Fri, 13 Jan 2012 20:32:08 +0100 + +linux (3.2.0-8.15) precise; urgency=low + + [ Leann Ogasawara ] + + * [Config] Disable CONFIG_ACPI_PROCFS + * Remove server from getabis + * Temporarily disable module check + * [Config] Disable CONFIG_MTD_TESTS + * [Config] Disable CONFIG_X86_E_POWERSAVER + * [Config] Set CONFIG_ARCNET=m + * [Config] Enable CONFIG_ATM_DUMMY=m + * [Config] Enable CONFIG_BLK_DEV_MD=y + * ubuntu: fsam7400 select CHECK_SIGNATURE and depend on X86 + * [Config] Enable CONFIG_BLK_DEV_SD=y + * [Config] Enable CONFIG_BLK_DEV_SR=y + * [Config] Enable CONFIG_BLK_DEV_UB=m + * [Config] Enable CONFIG_COPS=m + * [Config] Enable CONFIG_DVB_USB_EC168=m + * [Config] Enable CONFIG_ENC28J60=m + * [Config] Enable CONFIG_FB_UVESA=m + * [Config] Enable CONFIG_FB_ATY=m + * [Config] Enable CONFIG_BROADCOM_PHY=y + * [Config] Enable CONFIG_CICADA_PHY=y + * [Config] Enable CONFIG_DAVICOM_PHY=y + * [Config] Enable CONFIG_ICPLUS_PHY=y + * [Config] Enable CONFIG_LSI_ET1011C_PHY=y + * [Config] Enable CONFIG_LXT_PHY=y + * [Config] Enable CONFIG_MARVELL_PHY=y + * [Config] Enable CONFIG_NATIONAL_PHY=y + * [Config] Enable CONFIG_QSEMI_PHY=y + * [Config] Enable CONFIG_SMSC_PHY=y + * [Config] Enable CONFIG_VITESSE_PHY=y + * Add 3w-sas to scsi-modules + - LP: #776542 + + [ Mathieu Trudel-Lapierre ] + + * SAUCE: ipv6: make the net.ipv6.conf.all.use_tempaddr sysctl propagate + to interface settings + + [ Paolo Pisati ] + + * Revert "SAUCE: omap3: beagle: if rev unknown, assume xM revision C" + - LP: #912199 + * Revert "SAUCE: omap3: beagle: detect new xM revision B" + - LP: #912199 + * Revert "SAUCE: omap3: beaglexm: fix DVI initialization" + - LP: #912199 + + [ Upstream Kernel Changes ] + + * Bluetooth: Add support for BCM20702A0 [0a5c:21e3] + - LP: #906832 + + -- Leann Ogasawara Fri, 06 Jan 2012 10:02:03 -0800 + +linux (3.2.0-8.14) precise; urgency=low + + [ Andy Whitcroft ] + + * [Config] enable CONFIG_SND_USB_6FIRE + - LP: #912197 + * rebase to mainline v3.2 final release + * updateconfigs following rebase to v3.2 final + * ubuntu: AUFS -- add BOM and automated update script + * ubuntu: AUFS -- include the aufs_types.h file in linux-libc-headers + - LP: #684666 + * ubuntu: AUFS -- update aufs-update to track new locations of headers + * ubuntu: AUFS -- clean up the aufs updater and BOM + * ubuntu: AUFS -- documentation on updating aufs2 + * ubuntu: AUFS -- aufs3-base.patch + * ubuntu: AUFS -- aufs3-standalone.patch + * ubuntu: AUFS -- fix undefined __devcgroup_inode_permission + * ubuntu: AUFS -- fix undefined security_path_link + * ubuntu: AUFS -- update to 4cf5db36bcd9748e8e7270022f295f84d1fc2245 + * ubuntu: AUFS -- updateconfigs following update + * ubuntu: AUFS -- suppress benign plink warning messages + - LP: #621195 + * ubuntu: AUFS -- enable in config and makefile + * ubuntu: AUFS -- disable in favor of overlayfs + * [Config] linux-virtual -- should include the extX modules + - LP: #912308 + + [ Tyler Hicks ] + + * SAUCE: eCryptfs: Improve statfs reporting + - LP: #885744 + + [ Upstream Kernel Changes ] + + * rebase to upstream v3.2 + + -- Leann Ogasawara Mon, 26 Dec 2011 20:24:30 -0800 + +linux (3.2.0-7.13) precise; urgency=low + + [ Upstream Kernel Changes ] + + * rebase to upstream 3.2-rc7 + + -- Leann Ogasawara Mon, 19 Dec 2011 09:14:34 -0800 + +linux (3.2.0-6.12) precise; urgency=low + + [ Upstream Kernel Changes ] + + * rebase to upstream v3.2-rc6 + + -- Leann Ogasawara Fri, 16 Dec 2011 10:19:02 -0800 + +linux (3.2.0-5.11) precise; urgency=low + + [ Andy Whitcroft ] + + * enforcer -- allow arch and flavour predicates to take lists + * enforcer -- simplify armel/armhf specific options + * enforcer -- fix incorrectly specified flavour matches + + [ Leann Ogasawara ] + + * [Config] Disable IRQ_REMAP + * [Config] Enable CONFIG_SENSORS_LM95245=m + * [Config] Enable CONFIG_SENSORS_MAX1668=m + * [Config] Enable CONFIG_SENSORS_NTC_THERMISTOR=m + * [Config] Enable CONFIG_SENSORS_MAX6639=m + * [Config] Enable CONFIG_SENSORS_MAX6642=m + * [Config] Enable CONFIG_SENSORS_LINEAGE=m + * [Config] Enable CONFIG_CRYPTO_SALSA20=m + * [Config] Enable CONFIG_PATA_TOSHIBA=m + * [Config] Enable CONFIG_POHMELFS=m + * [Config] Enable CONFIG_NET_PACKET_ENGINE=y + * [Config] Enable CONFIG_PATA_OPTI=m + * add overlayfs to virtual inclusion list + - LP: #903897 + * add veth to virtual inclusion list + - LP: #903897 + * SAUCE: resolve WARNING: at drivers/block/floppy.c:2929 do_fd_request + + [ Paolo Pisati ] + + * [Config] DEFAULT_MMAP_MIN_ADDR=32k on arm + - LP: #903346 + + [ Tim Gardner ] + + * [Config] CONFIG_LOCKUP_DETECTOR=y + - LP: #903615 + + [ Upstream Kernel Changes ] + + * rebase to upstream 55b02d2f + + -- Leann Ogasawara Mon, 12 Dec 2011 07:08:10 -0800 + +linux (3.2.0-4.10) precise; urgency=low + + [ Kyle McMartin ] + + * SAUCE: dmar: disable if ricoh multifunction detected + - LP: #894070 + + [ Seth Forshee ] + + * SAUCE: dell-wmi: Demote unknown WMI event message to pr_debug + - LP: #581312 + + [ Tim Gardner ] + + * Start new release, Bump ABI, rebase to 3.2-rc5 + + [ Leann Ogasawara ] + + * [Config] Enable CONFIG_SENSORS_AK8975=m + + -- Tim Gardner Sat, 10 Dec 2011 08:57:04 -0700 + +linux (3.2.0-3.9) precise; urgency=low + + [ Andy Whitcroft ] + + * SAUCE: ext4: correct partial write discard size calculation + - LP: #894768 + + [ Leann Ogasawara ] + + * Revert "SAUCE: x86, microcode, AMD: Restrict microcode reporting" + - LP: #892615 + + [ Matthew Garrett ] + + * SAUCE: pci: Rework ASPM disable code + + [ Upstream Kernel Changes ] + + * x86: Fix boot failures on older AMD CPU's + - LP: #892615 + * EHCI : Fix a regression in the ISO scheduler + - LP: #899165 + + -- Leann Ogasawara Mon, 05 Dec 2011 10:37:36 -0800 + +linux (3.2.0-3.8) precise; urgency=low + + [ Andy Whitcroft ] + + * armhf -- add d-i configuration + * armhf -- disable ABI checks for armhf + * armhf -- add arch to getabis config + + -- Andy Whitcroft Sat, 03 Dec 2011 14:22:52 +0000 + +linux (3.2.0-3.7) precise; urgency=low + + [ Stefan Bader ] + + * SAUCE: x86/paravirt: PTE updates in k(un)map_atomic need to be + synchronous, regardless of lazy_mmu mode + - LP: #854050 + + [ Tim Gardner ] + + * rebase to v3.2-rc4 + + -- Leann Ogasawara Fri, 02 Dec 2011 11:53:56 -0800 + +linux (3.2.0-2.6) precise; urgency=low + + [ Andy Whitcroft ] + + * armhf -- fix omap flavour to build on armhf + * [Config] CONFIG_PATA_MACIO=y to fix MAC qemu boot + + [ Borislav Petkov ] + + * SAUCE: x86, microcode, AMD: Restrict microcode reporting + - LP: #892615 + + [ Colin Watson ] + + * Add pata_macio to pata-modules + + [ Tim Gardner ] + + * [Config] Prefer crda over wireless-crda + * [Config] Fix virtual inclusion list. + - LP: #897795 + + -- Leann Ogasawara Wed, 30 Nov 2011 06:09:35 -0800 + +linux (3.2.0-2.5) precise; urgency=low + + [ Paolo Pisati ] + + * [Config] PANEL_DVI=y + + -- Leann Ogasawara Mon, 28 Nov 2011 09:13:24 -0800 + +linux (3.2.0-2.4) precise; urgency=low + + [ Andy Whitcroft ] + + * rebase to v3.2-rc3 + + [ Leann Ogasawara ] + + * Revert "SAUCE: xen: Do not use pv spinlocks on HVM" + * Revert "fix ERROR: __devcgroup_inode_permission undefined" + * Revert "olpc_dcon_xo_1_5 needs delay.h" + * Revert "olpc_dcon_xo_1 needs delay.h" + * rebase to 6fe4c6d4 + * [Config] updateconfigs after rebase to 6fe4c6d4 + + [ Tim Gardner ] + + * [Config] Replace wireless-crda with crda,wireless-regdb + - LP: #856421 + * [Config] Relax the dependencies on crda + + [ Upstream Kernel Changes ] + + * (pre-stable) HID: bump maximum global item tag report size to 96 bytes + - LP: #724831 + * Ubuntu: remove coreutils|fileutils package dependency + - LP: #892814 + * iio: iio_event_getfd -- fix ev_int build failure + + [ Upstream Kernel Changes ] + + * Rebase to v3.2-rc3 + + -- Andy Whitcroft Thu, 24 Nov 2011 16:20:45 +0000 + +linux (3.2.0-1.3) precise; urgency=low + + [ Upstream Kernel Changes ] + + * Ubuntu: Add ext2 to fs-core-modules + - LP: #893395 + + -- Leann Ogasawara Mon, 21 Nov 2011 20:42:33 -0800 + +linux (3.2.0-1.2) precise; urgency=low + + [ Andy Whitcroft ] + + * [Config] enable CONFIG_NFC and associated devices + * SAUCE: allow brcmsmac and b43 to both build + + [ Soren Hansen ] + + * Add ixgbe driver to d-i + - LP: #891969 + + -- Leann Ogasawara Mon, 21 Nov 2011 08:33:46 -0800 + +linux (3.2.0-1.1) precise; urgency=low + [ Andy Whitcroft ] + + * armhf -- enable armhf and create the first flavours + * SAUCE: ensure root is ready before running usermodehelpers in it + * [Config] enforcer -- ensure CONFIG_FAT_FS is built-in on arm + + [ Leann Ogasawara ] + + * Temporarily ignore module check + * [Config] Enable PCI_IOV on powerpc + * [Config] Temporarily disable CONFIG_PASEMI_MAC on powerpc + * rebase to v3.2-rc2 + * SAUCE: include for cpuidle34xx arm build + * SAUCE: include for linux/mtd/map.h arm build + * SAUCE: include and for mmc_core arm build + * SAUCE: select ARM_AMBA if OMAP3_EMU + * [Config] updateconfigs after select ARM_AMBA + * [Config] Temporarily disable CONFIG_KVM_BOOK3S_32 on powerpc + * [Config] Enable CONFIG_EXT2_FS=m + * [Config] Build in CONFIG_SATA_AHCI=y + * Resolve linux-image-extra's install dependency + + [ Seth Forshee ] + + * [Config] Enable EVENT_POWER_TRACING_DEPRECATED=y for powertop + * SAUCE: (drop after 3.2) Input: ALPS - move protocol information to + Documentation + * SAUCE: (drop after 3.2) Input: ALPS - add protocol version field in + alps_model_info + * SAUCE: (drop after 3.2) Input: ALPS - remove assumptions about packet + size + * SAUCE: (drop after 3.2) Input: ALPS - add support for protocol versions + 3 and 4 + * SAUCE: (drop after 3.2) Input: ALPS - add semi-MT support for v3 + protocol + * SAUCE: (drop after 3.2) Input: ALPS - add documentation for protocol + versions 3 and 4 + + [ Stefan Bader ] + + * [Config] Built-in xen-netfront and xen-blkfront + * Fix build of dm-raid45 and re-enable it + + [ Tim Gardner ] + + * [Config] CONFIG_USB_XHCI_HCD=y + - LP: #886167 + * [Config] CONFIG_R6040=m + - LP: #650899 + * SAUCE: Add a new entry (413c:8197) to Bluetooth USB device ID table + - LP: #854399 + * [Config] Consolidated amd64 server flavour into generic + * [Config] updateconfigs after rebase to 3.2-rc1 + * [Config] Disabled dm-raid4-5 + * [Config] Disabled ndiswrapper + * [Config] Disable vt6656 + * [Config] exclude ppp-modules for virtual flavour + * [Config] CONFIG_MEMSTICK_R592=m + - LP: #238208 + + [ Upstream Kernel Changes ] + + * CHROMIUM: seccomp_filter: new mode with configurable syscall filters + - LP: #887780 + * CHROMIUM: seccomp_filter: add process state reporting + - LP: #887780 + * CHROMIUM: seccomp_filter: Document what seccomp_filter is and how it + works. + - LP: #887780 + * CHROMIUM: x86: add HAVE_SECCOMP_FILTER and seccomp_execve + - LP: #887780 + * CHROMIUM: arm: select HAVE_SECCOMP_FILTER + - LP: #887780 + * CHROMIUM: seccomp_filters: move to btrees + * CHROMIUM: enable CONFIG_BTREE + * CHROMIUM: seccomp_filter: kill NR_syscall references + * CHROMIUM: seccomp_filters: guard all ftrace wrapper code + * CHROMIUM: seccomp_filters: clean up warnings; kref mistake + * CHROMIUM: seccomp_filter: remove "skip" from copy and add drop helper + * CHROMIUM: seccomp_filter: allow CAP_SYS_ADMIN management of execve + * CHROMIUM: seccomp_filter: inheritance documentation + * CHROMIUM: seccomp_filter: make inherited filters composable + * CHROMIUM: Fix seccomp_t compile error + - LP: #887780 + * CHROMIUM: Fix kref usage + - LP: #887780 + * CHROMIUM: enable CONFIG_SECCOMP_FILTER and CONFIG_HAVE_SECCOMP_FILTER + * rebase to v3.2-rc2 + + -- Leann Ogasawara Mon, 31 Oct 2011 09:24:39 -0400 + +linux (3.1.0-2.3) precise; urgency=low + + [ Tim Gardner ] + + * Add postinit and postrm scripts to the extras package + - LP: #882120 + + -- Leann Ogasawara Fri, 28 Oct 2011 12:48:33 -0700 + +linux (3.1.0-2.2) precise; urgency=low + + [ Andy Whitcroft ] + + * debian: add locking to protect debian/files from parallel update + + [ Leann Ogasawara ] + + * rebase to v3.1 + + [ Upstream Kernel Changes ] + + * rebase to v3.1 + + -- Leann Ogasawara Wed, 19 Oct 2011 07:12:38 -0700 + +linux (3.1.0-1.1) precise; urgency=low + + [ Andiry Xu ] + + * SAUCE: (drop during 3.2 merge) xHCI: AMD isoc link TRB chain bit quirk + - LP: #872811 + + [ Andy Whitcroft ] + + * Revert "ubuntu: compcache -- follow changes to bd_claim/bd_release" + - LP: #832694 + * Revert "ubuntu: compcache -- version 0.5.3" + - LP: #832694 + * [Config] standardise CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP=m + * [Config] Enable CONFIG_MACVTAP=m + - LP: #822601 + * record the compiler in the ABI and check for inconsistant builds + * [Config] move ECRYPT_FS back to =y for all architectures + - LP: #827197 + * [Config] enable CONFIG_DRM_VMWGFX=m + - LP: #698009 + * [Config] re-fix ECRYPT_FS=y + - LP: #827197 + * enforcer -- ensure we have CONFIG_ECRYPT_FS=y + - LP: #827197 + * [Config] dropping compcache configuration options + * [Config] standardise on HZ=250 + * SAUCE: headers_install: fix #include "..." usage for userspace + - LP: #824377 + * make module-inclusion selection retain the left overs + * add a new linux-image-extras package for virtual + + [ Colin Watson ] + + * Deliver more Atheros, Ralink, and iwlagn NIC drivers to d-i + + [ edwin_rong ] + + * SAUCE: Staging: add driver for Realtek RTS5139 cardreader + - LP: #824273 + + [ Greg Kroah-Hartman ] + + * SAUCE: staging: rts5139: add vmalloc.h to some files to fix the build. + - LP: #824273 + + [ Jesse Sung ] + + * SAUCE: Unregister input device only if it is registered + - LP: #839238 + + [ Jiri Kosina ] + + * SAUCE: HID: add MacBookAir4, 2 to hid_have_special_driver[] + + [ Joshua V. Dillon ] + + * SAUCE: HID: add support for MacBookAir4,2 keyboard. + + [ Kees Cook ] + + * [Config] enable and enforce SECCOMP_FILTER on x86 + + [ Keng-Yu Lin ] + + * [Config] Enable CONFIG_RTS5139=m on i386/amd64 + - LP: #824273 + + [ Leann Ogasawara ] + + * Revert "ubuntu: overlayfs -- ovl: make lower mount read-only" + * Revert "ubuntu: overlayfs -- fs: limit filesystem stacking depth" + * Revert "ubuntu: overlayfs -- ovl: improve stack use of lookup and + readdir" + * Revert "ubuntu: overlayfs -- ovl: fix overlayfs over overlayfs" + * Revert "ubuntu: overlayfs -- overlayfs: implement show_options" + * Revert "ubuntu: overlayfs -- overlayfs: add statfs support" + * Revert "ubuntu: overlayfs -- overlay filesystem" + * Revert "ubuntu: overlayfs -- overlay: overlay filesystem documentation" + * Revert "SAUCE: ARM: OMAP: Add macros for comparing silicon revision" + * Revert "SAUCE: OMAP: DSS2: check for both cpu type and revision, rather + than just revision" + * Revert "SAUCE: OMAP: DSS2: enable hsclk in dsi_pll_init for OMAP36XX" + * Revert "ubuntu: fsam7400 disable driver" + - LP: #876030 + * rebase to v3.1-rc1 + * [Config] updateconfigs after rebase to v3.1-rc1 + * rebase to v3.1-rc2 + * [Config] Updateconfigs after rebase to v3.1-rc2 + * ubuntu: Yama - update calls to generic_permission() and + inode->i_op->permission() + * ubuntu: ndiswrapper -- remove netdev_priv macro + * ubuntu: aufs -- Temporarily disable due to build failure + * [Config] Diable INTEL_MID_PTI on armel + * [Config] Temporarily disable CONFIG_FTMAC100 on armel + * [Config] Temporarily disable CONFIG_FTGMAC100 on armel + * [Config] Temporarily disable CONFIG_CAN_TI_HECC on armel + * [Config] Temporarily disable CONFIG_VIDEO_OMAP2_VOUT on armel + * [Config] Set CONFIG_DM_MIRROR=m on amd64, i386, and arm + * [Config] Set CONFIG_DM_MULTIPATH=m on amd64, i386, and arm + * [Config] Set CONFIG_DM_SNAPSHOT=m on amd64, i386, and arm + * [Config] Enable CONFIG_EDAC_AMD8111=m on powerpc + * [Config] Enable CONFIG_EDAC_AMD8131=m on powerpc + * [Config] Enable CONFIG_EDAC_CPC925=m on powerpc + * [Config] Enable CONFIG_EDAC_PASEMI=m on powerpc + * [Config] Enable CONFIG_ECHO=m on powerpc + * [Config] Enable CONFIG_ET131X=m on powerpc + * [Config] Set CONFIG_FB_MATROX=m + * [Config] Enable CONFIG_FB_UDL=m on powerpc + * [Config] Set CONFIG_FB_VIRTUAL=n + * [Config] Enable CONFIG_FB_VGA16=m on powerpc + * [Config] Enable CONFIG_GPIO_MAX732X=m on arm + * [Config] Enable CONFIG_GPIO_PCF857X=m on arm + * [Config] Set CONFIG_HOTPLUG_PCI_FAKE=m + * [Config] Enable CONFIG_HOTPLUG_PCI=y on powerpc + * [Config] Enable CONFIG_HOTPLUG_PCI_CPCI=y on powerpc + * [Config] Enable CONFIG_HP_ILO=m on powerpc-smp + * [Config] Enable CONFIG_I2C_PASEMI=m on powerpc + * [Config] Enable CONFIG_IBM_BSR=m on powerpc + * [Config] Enable CONFIG_IBMVETH=m on powerpc + * [Config] Enable CONFIG_IDE_PHISON=m on powerpc + * [Config] Enable CONFIG_IGB=m on powerpc + * [Config] Enable CONFIG_IIO=m on powerpc + * [Config] Enable CONFIG_INFINIBAND_NES=m + * [Config] Enable CONFIG_IPMI_HANDLER=m on arm + * [Config] Enable CONFIG_IWL3945=m on powerpc + * [Config] Disable CONFIG_KVM_BOOK3S_64 + * [Config] Enable CONFIG_LAPBETHER=m on arm + * [Config] Enable CONFIG_LEDS_GPIO=m on powerpc + * [Config] Enable CONFIG_LEDS_CLEVO_MAIL=m all arch's + * [Config] Enable CONFIG_LEDS_PCA9532=m on powerpc + * [Config] Enable CONFIG_LEDS_PCA955X=m on powerpc + * [Config] Enable CONFIG_LEDS_TRIGGER_DEFAULT_ON=m on powerpc + * [Config] Set CONFIG_LEDS_TRIGGER_HEARTBEAT=m on arm and powerpc + * [Config] Set CONFIG_LEDS_TRIGGER_TIMER=m on powerpc + * [Config] Enable CONFIG_LINE6_USB=m on arm and powerpc + * [Config] Enable CONFIG_MEMSTICK=m on arm + * [Config] Enable CONFIG_MTD_AFS_PARTS=m on arm + * [Config] Enable CONFIG_MTD_ALAUDA=m on arm + * [Config] Enable CONFIG_MTD_AR7_PARTS=m on arm + * [Config] Enable CONFIG_MTD_ARM_INTEGRATOR=m on arm + * [Config] Enable CONFIG_MOXA_SMARTIO=m on powerpc + * [Config] Enable CONFIG_MTD_DATAFLASH=m on arm + * [Config] Enable CONFIG_MTD_GPIO_ADDR=m on arm + * [Config] Enable CONFIG_MTD_IMPA7=m on arm + * [Config] Enable CONFIG_MTD_NAND_GPIO=m on arm + * [Config] Enable CONFIG_MTD_NAND_NANDSIM=m on arm + * [Config] Enable CONFIG_MTD_NAND_PASEMI=m on powerpc + * [Config] Enable CONFIG_MTD_NAND_PLATFORM=m on arm + * [Config] Enable CONFIG_MTD_NAND_TMIO=m on arm + * [Config] Enable CONFIG_MTD_SST25L=m on arm + * [Config] Enable CONFIG_NET_CLS_CGROUP=y on arm + * [Config] Enable CONFIG_NET_CLS_FLOW=m on arm + * [Config] Enable CONFIG_NET_CLS_U32=m on arm + * [Config] Enable CONFIG_NET_DCCPPROBE=m on arm + * [Config] Enable CONFIG_NET_SCH_INGRESS=m on arm + * [Config] Enable CONFIG_NET_TCPPROBE=m on arm + * [Config] Enable CONFIG_PASEMI_MAC=m on powerpc + * [Config] Enable CONFIG_PATA_NS87410=m on powerpc + * [Config] Enable CONFIG_I2C_GPIO=m on powerpc64-smp + * [Config] Enable CONFIG_PANEL=m on powerpc + * [Config] Enable CONFIG_PATA_CMD640_PCI=m on powerpc + * SAUCE: x86: reboot: Make Dell Latitude E6520 use reboot=pci + - LP: #833705 + * [Config] Add CONFIG_EFI_VARS=y to the enforcer + - LP: #837332 + * [Config] Update CONFIG_EFI_VARS enforcer check + * [Config] Add aufs to virtual flavor inclusion list + - LP: #844159 + * SAUCE: x86: reboot: Make Dell Optiplex 790 use reboot=pci + - LP: #818933 + * SAUCE: x86: reboot: Make Dell Optiplex 990 use reboot=pci + - LP: #768039 + * SAUCE: x86: reboot: Make Dell Latitude E6220 use reboot=pci + - LP: #838402 + * [Config] Add igbvf to the virtual flavor inclusion list + - LP: #794570 + * [Config] Add ixgbevf to the virtual inclusion list + - LP: #872411 + * [Config] Transition -generic and -server to be identical + * rebase to v3.1-rc10 + + [ Luke Yelavich ] + + * [Config] Disable legacy IDE drivers on powerpc + + [ Ming Lei ] + + * SAUCE: fireware: add NO_MSI quirks for o2micro controller + - LP: #801719 + * SAUCE: ata_piix: make DVD Drive recognisable on systems with Intel + Sandybridge chipsets(v2) + - LP: #737388, #782389, #794642 + + [ Paolo Pisati ] + + * [Config] Compile-in vfat support for armel + - LP: #853783 + + [ Randy Dunlap ] + + * SAUCE: staging: fix rts5139 depends & build + - LP: #824273 + + [ Rene Bolldorf ] + + * SAUCE: (drop after 3.0) ideapad: Check if acpi already handle backlight + power in 'ideapad_backlight_notify_power' to avoid a page fault + + [ Seth Forshee ] + + * SAUCE: (no-up) Input: elantech - Add v3 hardware support + - LP: #681904 + * SAUCE: (drop after 3.1) usb_storage: Don't freeze in usb-stor-scan + - LP: #810020 + + [ Stefan Bader ] + + * (config) Package macvlan and macvtap for virtual + * [Config] Force perf to use libiberty for demangling + - LP: #783660 + * SAUCE: xen: Do not use pv spinlocks on HVM + - LP: #838026 + + [ Tim Gardner ] + + * [Config] Clean up tools rules + * [Config] Package x86_energy_perf_policy and turbostat + - LP: #797556 + * rebase to v3.1-rc3 + * [Config] Simplify binary-udebs dependencies + * [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 + * rebase to v3.1-rc4 + * rebase to v3.1-rc5 + * [Config] Disable makedumpfile for i386/amd64 + * rebase to v3.1-rc6 + * [Config] Fix binary-% build target + * rebase to v3.1-rc7 + * rebase to v3.1-rc8 + * SAUCE: Add a new entry (413c:8197) to Bluetooth USB device ID table + - LP: #854399 + * [Config] Enable ftrace support in the mac80211 layer + - LP: #865171 + * rebase to v3.1-rc9 + * SAUCE: usb/core/devio.c: Check for printer class specific request + - LP: #872711 + + [ Upstream Kernel Changes ] + + * overlay filesystem + * overlayfs: add statfs support + * overlayfs: implement show_options + * overlay: overlay filesystem documentation + * fs: limit filesystem stacking depth + + [ Will Drewry ] + + * SAUCE: seccomp_filter: new mode with configurable syscall filters + * SAUCE: seccomp_filter: add process state reporting + * SAUCE: seccomp_filter: Document what seccomp_filter is and how it + works. + * SAUCE: seccomp_filter: add HAVE_SECCOMP_FILTER and seccomp_execve + + [ Upstream Kernel Changes ] + + * rebase to v3.1-rc1 + * rebase to v3.1-rc2 + * rebase to v3.1-rc3 + +CONFIG_BLK_DEV_BSGLIB=y + +CONFIG_BLK_DEV_LOOP_MIN_COUNT=8 + -CONFIG_VIDEO_OMAP2_VOUT_VRFB=y + * rebase to v3.1-rc4 + * rebase to v3.1-rc5 + * rebase to v3.1-rc6 + * rebase to v3.1-rc7 + * rebase to v3.1-rc8 + * rebase to v3.1-rc9 + * rebase to v3.1-rc10 + + -- Leann Ogasawara Wed, 10 Aug 2011 15:43:38 -0700 + +linux (3.1.0-1.0) oneiric; urgency=low + + [ Leann Ogasawara ] + + * Open P-series + + -- Leann Ogasawara Wed, 10 Aug 2011 13:42:40 -0700 + +linux (3.0.0-8.10) oneiric; urgency=low + + [ Adam Jackson ] + + * SAUCE: drm/i915/pch: Fix integer math bugs in panel fitting + - LP: #753994 + + [ John Johansen ] + + * [Config] Enable missing IPv6 options + + [ Leann Ogasawara ] + + * [Config] Disable config IWLWIFI_DEVICE_SVTOOL + - LP: #819925 + * Rebase to 3.0.1 + + [ Upstream Kernel Changes ] + + * x86, intel, power: Correct the MSR_IA32_ENERGY_PERF_BIAS message + * ALSA: hda - Turn on extra EAPDs on Conexant codecs + - LP: #783582 + * KVM: Remove SMEP bit from CR4_RESERVED_BITS + - LP: #796476 + * KVM: Add SMEP support when setting CR4 + - LP: #796476 + * KVM: Mask function7 ebx against host capability word9 + - LP: #796476 + * KVM: Add instruction fetch checking when walking guest page table + - LP: #796476 + + [ Upstream Kernel Changes ] + + * rebase to v3.0.1 + + -- Leann Ogasawara Fri, 05 Aug 2011 11:32:25 -0700 + +linux (3.0.0-7.9) oneiric; urgency=low + + [ Andy Whitcroft ] + + * Revert "[Upstream] add local prefix to oss local change_bits" + * Revert "SAUCE: add tracing for user initiated readahead requests" + * Revert "SAUCE: vfs: Add a trace point in the mark_inode_dirty function" + * Revert "SAUCE: Input: ALPS - Enable Intellimouse mode for Lenovo + Zhaoyang E47" + * Revert "SAUCE: fix documentation strings for struct input_keymap_entry" + * Revert "SAUCE: vt -- fix handoff numbering to 1..n and add range checks + (grub)" + * Revert "SAUCE: vt -- fix handoff numbering to 1..n and add range + checks" + * Revert "SAUCE: vt -- allow grub to request automatic vt_handoff" + * Revert "SAUCE: vt -- maintain bootloader screen mode and content until + vt switch" + * [Config] enable CONFIG_MTRR_SANITIZER_ENABLE_DEFAULT=1 + - LP: #816035 + * ubuntu: Yama: if an underlying filesystem provides a permissions op use + it + * SAUCE: (no-up) 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 + + [ Arjan van de Ven ] + + * SAUCE: (no-up) vfs: Add a trace point in the mark_inode_dirty function + + [ Kees Cook ] + + * Revert "SAUCE: (no-up) Disable building the ACPI debugfs source" + * [Config] enforce ACPI_CUSTOM_METHOD disabled + + [ Keng-Yu Lin ] + + * SAUCE: (no-up) Input: ALPS - Enable Intellimouse mode for Lenovo + Zhaoyang E47 + - LP: #632884, #803005 + + [ Leann Ogasawara ] + + * [Config] Enable CONFIG_BLK_DEV_CMD64X=m on powerpc + - LP: #513131 + * [Config] Enable CONFIG_RT2800PCI_RT53XX=y + - LP: #815064 + + [ Rezwanul Kabir ] + + * SAUCE: (no-up) Add support for Intellimouse Mode in ALPS touchpad on + Dell E2 series Laptops + - LP: #632884 + + [ Upstream Kernel Changes ] + + * Revert "yama: if an underlying filesystem provides a permissions op use + it" + * Revert "Add support for Intellimouse Mode in ALPS touchpad on Dell E2 + series Laptops" + * Revert "tty: include linux/slab.h for kfree" + * Revert "gpio/ml_ioh_gpio: include linux/slab.h for kfree" + * Revert "pch_dma: add include/slab.h for kfree" + * mmc: Added quirks for Ricoh 1180:e823 lower base clock frequency + - LP: #773524 + * oss: rename local change_bits to avoid powerpc bitsops.h definition + + -- Leann Ogasawara Mon, 25 Jul 2011 09:08:01 -0700 + +linux (3.0.0-7.8) oneiric; urgency=low + + [ Andy Whitcroft ] + + * ubuntu: overlayfs -- overlayfs: add statfs support + * [Config] enable CONFIG_OVERLAYFS + + [ Erez Zadok ] + + * ubuntu: overlayfs -- overlayfs: implement show_options + + [ Leann Ogasawara ] + + * [Config] Enable CONFIG_ALIM7101_WDT=m on powerpc + * [Config] Enable CONFIG_ASUS_OLED=m on powerpc + * [Config] Disable CONFIG_ATM_DUMMY on arm + * [Config] Enable CONFIG_BLK_DEV_DRBD=m on powerpc + * Temporarily disable module check on arm + * Rebase to 3.0 final + * [Config] Enable CONFIG_CAN_TI_HECC=m on arm + * [Config] Set CONFIG_CDROM_PKTCDVD=m on amd64 and i386 + * [Config] Enable CONFIG_CRYPTO_CCM=m on powerpc + * [Config] Enable CONFIG_CRYPTO_DEV_HIFN_795X=m on powerpc + * [Config] Enable CONFIG_CRYPTO_GCM=m on powerpc + * [Config] Set CRYPTO_LZO=m on powerpc64-smp + * [Config] Enable CONFIG_DM9000=m on arm + * [Config] Set CONFIG_DISPLAY_SUPPORT=m on arm + * [Config] Enable CONFIG_DL2K=m on amd64 and i386 + + [ Miklos Szeredi ] + + * ubuntu: overlayfs -- vfs: add i_op->open() + * ubuntu: overlayfs -- vfs: export do_splice_direct() to modules + * ubuntu: overlayfs -- vfs: introduce clone_private_mount() + * ubuntu: overlayfs -- overlay filesystem + * ubuntu: overlayfs -- ovl: fix overlayfs over overlayfs + * ubuntu: overlayfs -- ovl: improve stack use of lookup and readdir + * ubuntu: overlayfs -- fs: limit filesystem stacking depth + * ubuntu: overlayfs -- ovl: make lower mount read-only + + [ Neil Brown ] + + * ubuntu: overlayfs -- overlay: overlay filesystem documentation + + [ Tim Gardner ] + + * [Config] Add enic/fnic to udebs + - LP: #801610 + + [ Upstream Kernel Changes ] + + * yama: if an underlying filesystem provides a permissions op use it + + [ Major Kernel Changes ] + + * Rebase to 3.0 final + + -- Leann Ogasawara Thu, 21 Jul 2011 07:01:32 -0700 + +linux (3.0.0-6.7) oneiric; urgency=low + + [ Eagon Yager ] + + * [Config] Fix misspelled 'skipmodule' in arm makefile. + + [ Keng-Yu Lin ] + + * SAUCE: Input: ALPS - Enable Intellimouse mode for Lenovo Zhaoyang E47 + - LP: #632884, #803005 + + [ Leann Ogasawara ] + + * Revert "[Config] Temporarily disable CONFIG_SMC91X on armel-omap" + * Revert "[Config] Temporarily Disable CONFIG_BRCMSMAC on arm" + * Revert "[Config] Temporarily Disable CONFIG_RTL8192SE on powerpc" + * Revert "[Config] Temporarily Disable CONFIG_RTL8192SE on arm" + * Revert "[Config] Temporarily disable CONFIG_BRCMSMAC on powerpc" + * [Config] Set CONFIG_ACPI_PCI_SLOT=m + * [Config] Set CONFIG_ACPI_SBS=m + * [Config] Set CONFIG_ACPI_WMI=m + * [Config] Set CONFIG_AD7150=m on arm + * [Config] Set CONFIG_AD7152=m on arm + * [Config] Drop CONFIG_GPIO_S5PV210 + * [Config] Drop CONFIG_GPIO_S5PC100 + * [Config] Drop CONFIG_GPIO_PLAT_SAMSUNG + * [Config] Drop CONFIG_GPIO_EXYNOS4 + + [ Stefan Bader ] + + * SAUCE: Re-enable RODATA for i386 virtual + - LP: #809838 + + [ Upstream Kernel Changes ] + + * Revert "Quirk to fix suspend/resume on Lenovo Edge 11,13,14,15" + * (drop after 3.0.0) acer-wmi: Add support for Aspire 1830 wlan hotkey + - LP: #771758 + + -- Leann Ogasawara Wed, 20 Jul 2011 06:36:02 -0700 + +linux (3.0.0-5.6) oneiric; urgency=low + + [ Tim Gardner ] + + * [Config] CONFIG_RTL8192CU=m + * Rebase to -rc7 + + -- Tim Gardner Mon, 11 Jul 2011 22:13:50 +0100 + +linux (3.0.0-4.5) oneiric; urgency=low + + [ Ming Lei ] + + * SAUCE: fix yama_ptracer_del lockdep warning + - LP: #791019 + + [ Seth Forshee ] + + * SAUCE: (drop after 3.0) asus-wmi: Add callback for hotkey filtering + * SAUCE: (drop after 3.0) eeepc-wmi: Add support for T101MT Home/Express Gate key + * SAUCE: (drop after 3.0) asus-wmi: Enable autorepeat for hotkey input device + * [Config] CONFIG_{ASUS,ASUS_NB,EEEPC}_WMI=m + - LP: #805218 + + [ Tim Gardner ] + + * [Config] updateconfigs after rebase to -rc6+ + Rebased against 4dd1b49c6d215dc41ce50c80b4868388b93f31a3 + * Adopt a 3 digit verion, e.g., 3.0.0-x.x + * Revert "UBUNTU: add dependancies for module-init-tools" + This dependency is no longer required for a 3 digit version. + + -- Tim Gardner Tue, 05 Jul 2011 14:03:04 +0100 + +linux (3.0-3.4) oneiric; urgency=low + + [ Keng-Yu Lin ] + + * SAUCE: Revert: "dell-laptop: Toggle the unsupported hardware + killswitch" + - LP: #775281 + + [ Leann Ogasawara ] + + * rebase to v3.0-rc5 + * [Config] updateconfigs after rebase to 3.0-rc5 + + [ Tim Gardner ] + + * [Config] Remove ubuntu/rtl8192se + * [Config] Added armel ABI files + * [Config] Removed armel versatile flavour + * [Config] CONFIG_INTEL_MEI=m + - LP: #716867 + + [ Upstream Kernel Changes ] + + * ALSA: hda - Enable auto-parser as default for Conexant codecs + + [ Upstream Kernel Changes ] + + * rebase to v3.0-rc5 + + -- Leann Ogasawara Thu, 30 Jun 2011 14:27:10 +0100 + +linux (3.0-2.3) oneiric; urgency=low + + [ Andy Whitcroft ] + + * ubuntu: AUFS -- update to 0e2bafab74f0d1463383faeb93f9fc5eb8c2c54e + + [ Leann Ogasawara ] + + * rebase to v3.0-rc4 + * [Config] updateconfigs after rebase to 3.0-rc4 + * fix ERROR: __devcgroup_inode_permission undefined + + [ Stefan Bader ] + + * SAUCE: iscsitarget: Remove driver from the kernel + + [ Tim Gardner ] + + * SAUCE: rtl8192se: Force a build for a 2.6/3.0 kernel + * [Config] Add grub-efi as a recommended bootloader for server and + generic + - LP: #800910 + + [ Upstream Kernel Changes ] + + * Fix node_start/end_pfn() definition for mm/page_cgroup.c + + [ Leann Ogasawara ] + + * rebase to v3.0-rc4 + + -- Leann Ogasawara Fri, 24 Jun 2011 11:51:12 -0700 + +linux (3.0-1.2) oneiric; urgency=low + + [ Andy Whitcroft ] + + * [Config] enable CONFIG_CAN_CALC_BITTIMING + + [ Leann Ogasawara ] + + * rebase to v3.0-rc3 + * [Config] updateconfigs after rebase to 3.0-rc3 + + [ Upstream Kernel Changes ] + + * perf: clear out make flags when calling kernel make kernelver + + [ Leann Ogasawara ] + + * rebase to v3.0-rc3 + + -- Leann Ogasawara Tue, 14 Jun 2011 07:25:35 -0700 + +linux (3.0-0.1) oneiric; urgency=low + + [ Andy Whitcroft ] + + * use the packaging version in the kernel + * use the kernels idea of its version for version_signature + * add dependancies for module-init-tools + * update control files to version 3 + * printchanges/insertchanges allow override of prev_release + * correct Vcs-Git: to point to oneiric + + [ Leann Ogasawara ] + + * rebase to v3.0-rc1 + * [Config] updateconfigs after rebase to 3.0-rc1 + * ubuntu: dm-raid4-5 fix up build failure + * [Config] Temporarily Disable CONFIG_GPIO_EXYNOS4 on arm + * [Config] Temporarily Disable CONFIG_GPIO_PLAT_SAMSUNG on arm + * [Config] Temporarily Disable CONFIG_GPIO_S5PC100 on arm + * [Config] Temporarily Disable CONFIG_GPIO_S5PV210 on arm + * [Config] Temporarily disable CONFIG_BRCMSMAC on powerpc + * [Config] Temporarily Disable CONFIG_BRCMSMAC on arm + * [Config] Temporarily Disable CONFIG_RTL8192SE on arm + * [Config] Temporarily Disable CONFIG_RTL8192SE on powerpc + * [Config] Temporarily disable CONFIG_SMC91X on armel-omap + * rebase to v3.0-rc2 + + [ Manoj Iyer ] + + * SAUCE: mmc: Enable MMC card reader for RICOH [1180:e823] + - LP: #790754 + + [ Upstream Kernel Changes ] + + * Revert "x86 idle: EXPORT_SYMBOL(default_idle, pm_idle) only when APM + demands it" + * drm/i915: fix regression after clock gating init split + + [ Major Kernel Changes ] + + * rebase from v2.6.39 to v3.0-rc1 + * rebase from v3.0-rc1 to v3.0-rc2 + + -- Andy Whitcroft Thu, 09 Jun 2011 15:18:33 +0100 + +linux (2.6.39-3.10) oneiric; urgency=low + + [ Colin Ian King ] + + * SAUCE: S3 early resume debug via keyboard LEDs + + [ Ingo Molnar ] + + * ubuntu: nx-emu - i386: NX emulation + * ubuntu: nx-emu - i386: mmap randomization for executable mappings + + [ Leann Ogasawara ] + + * Revert "[Config] Disable CONFIG_FT1000 on powerpc64-smp" + * Revert "[Config] Disable CONFIG_DM_RAID45" + * [Config] enable CONFIG_BRCMFMAC=y + * [Config] enable CONFIG_MDIO_BITBANG=m across all arch's and flavors + * [Config] enable CONFIG_VIDEO_OUTPUT_CONTROL=m on armel-omap + + [ 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 ] + + * SAUCE: Convert dm-raid45 to new block plugging + + -- Leann Ogasawara Mon, 23 May 2011 11:46:43 -0700 + +linux (2.6.39-3.9) oneiric; urgency=low + + [ Leann Ogasawara ] + + * [Config] Disable CONFIG_SCSI_LPFC_DEBUG_FS + * rebase to v2.6.39 + * [Config] enable CONFIG_LLC2=m across all arch's and flavours + * [Config] enable CONFIG_INPUT_APANEL=m + + [ Thomas Schlichter ] + + * SAUCE: vesafb: mtrr module parameter is uint, not bool + - LP: #778043 + * SAUCE: vesafb: enable mtrr WC by default + - LP: #778043 + + [ Major Kernel Changes ] + + * rebase from v2.6.39-rc7 to v2.6.39 + + -- Andy Whitcroft Fri, 20 May 2011 09:52:32 +0100 + +linux (2.6.39-2.8) oneiric; urgency=low + + [ Andy Whitcroft ] + + * Revert "ubuntu: AUFS -- aufs2-standalone.patch aufs2.1-37" + * Revert "ubuntu: AUFS -- aufs2-base.patch aufs2.1-37" + * Revert "[Config] Disable CONFIG_AUFS_FS" + * ubuntu: AUFS -- aufs2-base.patch aufs2.1-39 + * ubuntu: AUFS -- aufs2-standalone.patch aufs2.1-39 + * ubuntu: AUFS -- update to c6b76974311efc5bf3eddf921cd015b6aae46935 + * ubuntu: AUFS -- clean up the aufs updater and BOM + * ubuntu: AUFS -- documentation on updating aufs2 + + [ Kees Cook ] + + * ubuntu: Yama - LSM hooks + * ubuntu: Yama - create task_free security callback + * ubuntu: Yama - add ptrace relationship tracking interface + * ubuntu: Yama - unconditionally chain to Yama LSM + + [ Leann Ogasawara ] + + * Revert "SAUCE: Fix drivers/staging/easycap FTBS" + * Revert "[Config] Disable CONFIG_EASYCAP" + * ubuntu: fsam7400 disable driver + * ubuntu: omnibook disable driver + * ubuntu: rfkill disable driver + + [ Tim Gardner ] + + * SAUCE: Fix extra reference in fb_open() + + -- Leann Ogasawara Mon, 16 May 2011 09:23:56 -0700 + +linux (2.6.39-2.7) oneiric; urgency=low + + [ Leann Ogasawara ] + + * rebase to v2.6.39-rc7 + + [ Major Kernel Changes ] + + * rebase from v2.6.39-rc6 to v2.6.39-rc7 + + -- Leann Ogasawara Tue, 10 May 2011 10:18:28 +0200 + +linux (2.6.39-1.6) oneiric; urgency=low + + [ Leann Ogasawara ] + + * rebase to v2.6.39-rc6 + * SAUCE: [arm] fixup __aeabi_uldivmod undefined build error + + [ Tim Gardner ] + + * [Config] updateconfigs after rebase to 2.6.39-rc6 + + [ Major Kernel Changes ] + + * rebase from v2.6.39-rc5 to v2.6.39-rc6 + - LP: #740126 + + -- Leann Ogasawara Thu, 05 May 2011 09:46:12 -0700 + +linux (2.6.39-0.5) oneiric; urgency=low + + [ Herton Ronaldo Krzesinski ] + + * SAUCE: Revert "x86, hibernate: Initialize mmu_cr4_features during boot" + - LP: #764758 + + [ Leann Ogasawara ] + + * rebase to v2.6.39-rc5 + * [Config] updateconfigs following rebase to v2.6.39-rc5 + + [ Paolo Pisati ] + + * [Config] s/USB_MUSB_TUSB6010/USB_MUSB_OMAP2PLUS/ on omap3 to get musb + - LP: #759913 + + [ Stefan Bader ] + + * Include nls_iso8859-1 for virtual images + - LP: #732046 + + [ Major Kernel Changes ] + + * rebase from v2.6.39-rc4 to v2.6.39-rc5 + + -- Leann Ogasawara Wed, 27 Apr 2011 06:39:42 -0700 + +linux (2.6.39-0.4) oneiric; urgency=low + + [ Leann Ogasawara ] + + * rebase to v2.6.39-rc4 + * [Config] updateconfigs following rebase to v2.6.39-rc4 + * fixup powerpc implicit declaration of function + 'crash_kexec_wait_realmode' + * [Config] Disable CONFIG_FT1000 on powerpc64-smp + + [ Tim Gardner ] + + * [Config] CONFIG_TRANSPARENT_HUGEPAGE=y + - LP: #769503 + * [Config] Add cachefiles.ko to virtual flavour + - LP: #770430 + + [ Major Kernel Changes ] + + * rebase from v2.6.39-rc3 to v2.6.39-rc4 + + -- Leann Ogasawara Tue, 19 Apr 2011 06:25:20 -0700 + +linux (2.6.39-0.3) oneiric; urgency=low + + [ Leann Ogasawara ] + + * rebase to v2.6.39-rc3 + * crash_kexec_wait_realmode() undefined when !SMP + + [ Tim Gardner ] + + * [Config] CONFIG_PM_ADVANCED_DEBUG=y for i386/amd64 + - LP: #632327 + + [ Major Kernel Changes ] + + * rebase from v2.6.39-rc2 to v2.6.39-rc3 + + -- Leann Ogasawara Tue, 12 Apr 2011 06:52:24 -0700 + +linux (2.6.39-0.2) oneiric; urgency=low + + [ Gustavo F. Padovan ] + + * SAUCE: Revert "Bluetooth: Add new PID for Atheros 3011" + - LP: #720949 + + [ John Johansen ] + + * AppArmor: Fix masking of capabilities in complain mode + - LP: #748656 + + [ Leann Ogasawara ] + + * rebase to v2.6.39-rc2 + * [Config] updateconfigs following rebase to v2.6.39-rc2 + * hv_mouse needs delay.h + * olpc_dcon_xo_1 needs delay.h + * olpc_dcon_xo_1_5 needs delay.h + * Update dropped.txt for Oneiric + + [ Steve Langasek ] + + * [Config] Make linux-libc-dev coinstallable under multiarch + - LP: #750585 + + [ Upstream Kernel Changes ] + + * x86, hibernate: Initialize mmu_cr4_features during boot + - LP: #752870 + + [ Major Kernel Changes ] + + * rebase from v2.6.39-rc1 to v2.6.39-rc2 + + -- Leann Ogasawara Wed, 06 Apr 2011 11:04:15 -0700 + +linux (2.6.39-0.1) oneiric; 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 + + [ Herton Ronaldo Krzesinski ] + + * SAUCE: (drop after 2.6.39) v4l: make sure drivers supply a zeroed + struct v4l2_subdev + - LP: #745213 + + [ 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.39-rc1 + * [Config] updateconfigs following rebase to v2.6.39-rc1 + * [Config] Disable CONFIG_DM_RAID45 + * [Config] Disable CONFIG_SCSI_ISCSITARGET + * [Config] Disable CONFIG_EASYCAP + * [Config] Disable CONFIG_AUFS_FS + * update bnx2 firmware files in d-i/firmware/nic-modules + * xhci-pci.c resolve implicit declaration of kzalloc + * [Config] Enable CONFIG_DRM_PSB for only x86 + * [Config] Enable CONFIG_RTS_PSTOR for only x86 + * mfd/asic3: Fix typo, s/irq_data/data/ + + [ 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. + + [ Manoj Iyer ] + + * SAUCE: thinkpad-acpi: module autoloading for newer Lenovo ThinkPads. + - LP: #745217 + + [ Tim Gardner ] + + * SAUCE: INR_OPEN=4096 + - LP: #663090 + * SAUCE: Increase the default hard limit for open FDs to 4096 + - LP: #663090 + + [ Upstream Kernel Changes ] + + * (drop after 2.6.39-rc1) arm: versatile : Fix typo introduced in irq + namespace cleanup + * (drop after 2.6.39-rc1) [media] staging: altera-jtag needs delay.h + * ALSA: pcm: fix infinite loop in snd_pcm_update_hw_ptr0() + + [ Major Kernel Changes ] + + * rebase from v2.6.38 to v2.6.39-rc1 + + -- Leann Ogasawara Thu, 31 Mar 2011 12:50:10 -0700 + +linux (2.6.39-0.0) oneiric; urgency=low + + [ Leann Ogasawara ] + + * Open Oneiric + + -- Leann Ogasawara Thu, 31 Mar 2011 12:29:23 -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-3.11.0.orig/debian.master/control.d/vars.generic-lpae +++ linux-3.11.0/debian.master/control.d/vars.generic-lpae @@ -0,0 +1,6 @@ +arch="armhf" +supported="Generic LPAE" +target="Geared toward desktop and server systems." +desc="=HUMAN= SMP" +bootloader="flash-kernel [armhf]" +provides="kvm-api-4, redhat-cluster-modules, ivtv-modules" --- linux-3.11.0.orig/debian.master/control.d/vars.generic +++ linux-3.11.0/debian.master/control.d/vars.generic @@ -0,0 +1,6 @@ +arch="i386 amd64 armhf" +supported="Generic" +target="Geared toward desktop and server systems." +desc="=HUMAN= SMP" +bootloader="grub-pc [i386 amd64 x32] | grub-efi-amd64 [amd64 x32] | grub-efi-ia32 [i386 amd64 x32] | grub [i386 amd64 x32] | lilo (>= 19.1) [i386 amd64 x32] | flash-kernel [armhf arm64]" +provides="kvm-api-4, redhat-cluster-modules, ivtv-modules" --- linux-3.11.0.orig/debian.master/control.d/generic.inclusion-list +++ linux-3.11.0/debian.master/control.d/generic.inclusion-list @@ -0,0 +1,159 @@ +arch/*/{crypto,kernel,oprofile} +arch/*/kvm/kvm.ko +arch/x86/kvm/kvm-intel.ko +arch/x86/kvm/kvm-amd.ko +crypto/* +drivers/acpi/* +drivers/ata/ahci_platform.ko +drivers/ata/ahci.ko +drivers/ata/acard-ahci.ko +drivers/ata/libahci.ko +drivers/block/nbd.ko +drivers/block/floppy.ko +drivers/block/cryptoloop.ko +drivers/block/rbd.ko +drivers/char/hangcheck-timer.ko +drivers/char/ipmi/ipmi_msghandler.ko +drivers/char/lp.ko +drivers/char/nvram.ko +drivers/char/ppdev.ko +drivers/char/raw.ko +drivers/hv/* +drivers/infiniband/core/ib_core.ko +drivers/infiniband/core/ib_addr.ko +drivers/infiniband/core/ib_cm.ko +drivers/infiniband/core/ib_mad.ko +drivers/infiniband/core/ib_sa.ko +drivers/infiniband/core/iw_cm.ko +drivers/infiniband/core/rdma_cm.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/touchscreen/usbtouchscreen.ko +drivers/input/misc/xen-kbdfront.ko +drivers/md/* +drivers/message/fusion* +drivers/misc/vmw_balloon.ko +drivers/net/mii.ko +drivers/net/ethernet/8390/8390.ko +drivers/net/ethernet/realtek/8139too.ko +drivers/net/ethernet/realtek/8139cp.ko +drivers/net/appletalk/ipddp.ko +drivers/net/bonding/bonding.ko +drivers/net/ppp/bsd_comp.ko +drivers/net/dummy.ko +drivers/net/ethernet/intel/e1000/e1000.ko +drivers/net/ethernet/intel/e1000e/e1000e.ko +drivers/net/eql.ko +drivers/net/ifb.ko +drivers/net/ethernet/intel/igbvf/igbvf.ko +drivers/net/ethernet/intel/ixgbevf/ixgbevf.ko +drivers/net/macvlan.ko +drivers/net/macvtap.ko +drivers/net/ethernet/8390/ne2k-pci.ko +drivers/net/netconsole.ko +drivers/net/ethernet/amd/pcnet32.ko +drivers/net/hyperv/hv_netvsc.ko +drivers/net/ppp/* +drivers/net/slip/* +drivers/net/veth.ko +drivers/net/vmxnet3/vmxnet3.ko +drivers/net/xen-netback/* +drivers/parport/parport.ko +drivers/parport/parport_pc.ko +drivers/pps/pps_core.ko +drivers/ptp/ptp.ko +drivers/net/ethernet/dec/tulip/* +drivers/scsi/BusLogic.ko +drivers/scsi/device_handler/scsi_dh.ko +drivers/scsi/iscsi_tcp.ko +drivers/scsi/libiscsi.ko +drivers/scsi/libiscsi_tcp.ko +drivers/scsi/libsas/* +drivers/scsi/osd/osd.ko +drivers/scsi/osd/libosd.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_tgt.ko +drivers/scsi/vmw_pvscsi.ko +drivers/scsi/hv_storvsc.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/9p/* +fs/binfmt_misc.ko +fs/btrfs/* +fs/cachefiles/cachefiles.ko +fs/ceph/* +fs/configfs/* +fs/exofs/libore.ko +fs/ext*/* +fs/fat/* +fs/nls/nls_iso8859-1.ko +fs/isofs/* +fs/cifs/* +fs/xfs/* +fs/ufs/* +fs/squashfs/* +fs/nfs/* +fs/nfsd/* +fs/nfs_common/* +fs/fscache/* +fs/lockd/* +fs/autofs4/autofs4.ko +fs/overlayfs/* +fs/udf/* +lib/* +net/802/* +net/8021q/* +net/9p/* +net/appletalk/* +net/atm/* +net/ax25/* +net/bridge/* +net/can/* +net/core/* +net/ceph/libceph.ko +net/dccp/* +net/decnet/* +net/ieee802154/* +net/ipv4/* +net/ipv6/* +net/ipx/* +net/irda/* +net/key/* +net/lapb/* +net/llc/* +net/netfilter/* +net/netrom/* +net/phonet/* +net/rose/* +net/rxrpc/* +net/sched/* +net/sctp/* +net/tipc/* +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 --- linux-3.11.0.orig/debian.master/control.d/flavour-control.stub +++ linux-3.11.0/debian.master/control.d/flavour-control.stub @@ -0,0 +1,119 @@ +# 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: kernel +Priority: optional +Pre-Depends: dpkg (>= 1.10.24) +Provides: linux-image, linux-image-3.0, fuse-module, =PROVIDES= +Depends: ${misc:Depends}, ${shlibs:Depends}, initramfs-tools (>= 0.36ubuntu6), module-init-tools (>= 3.3-pre11-4ubuntu3) +Conflicts: hotplug (<< 0.0.20040105-1) +Recommends: BOOTLOADER +Suggests: fdutils, SRCPKGNAME-doc-PKGVER | SRCPKGNAME-source-PKGVER, SRCPKGNAME-tools, linux-headers-PKGVER-ABINUM-FLAVOUR +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-image-extra-PKGVER-ABINUM-FLAVOUR +Architecture: ARCH +Section: kernel +Priority: optional +Depends: ${misc:Depends}, ${shlibs:Depends}, linux-image-PKGVER-ABINUM-FLAVOUR, crda (>=1.1.1-1ubuntu2) | wireless-crda +Description: Linux kernel extra modules for version PKGVER on DESC + This package contains the Linux kernel extra modules 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}, linux-headers-PKGVER-ABINUM, ${shlibs:Depends} +Provides: linux-headers, linux-headers-3.0 +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/linux-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. + +Package: linux-tools-PKGVER-ABINUM-FLAVOUR +Architecture: ARCH +Section: devel +Priority: optional +Depends: ${misc:Depends}, SRCPKGNAME-tools-PKGVER-ABINUM +Description: Linux kernel version specific tools for version PKGVER-ABINUM + This package provides the architecture dependant parts for kernel + version locked tools (such as perf and x86_energy_perf_policy) for + version PKGVER-ABINUM on + =HUMAN=. + +Package: SRCPKGNAME-udebs-FLAVOUR +XC-Package-Type: udeb +Section: debian-installer +Architecture: ARCH +Depends: ${udeb:Depends} +Description: Metapackage depending on kernel udebs + This package depends on the all udebs that the kernel build generated, + for easier version and migration tracking. + --- linux-3.11.0.orig/debian.master/config/enforce +++ linux-3.11.0/debian.master/config/enforce @@ -0,0 +1,131 @@ +# +# 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 +value CONFIG_DEBUG_INFO y +# For architectures which support this option ensure it is enabled. +!exists CONFIG_XEN_ACPI_PROCESSOR | value CONFIG_XEN_ACPI_PROCESSOR y +!exists CONFIG_SECCOMP | value CONFIG_SECCOMP y +!exists CONFIG_HAVE_ARCH_SECCOMP_FILTER | value CONFIG_SECCOMP_FILTER 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 +!exists CONFIG_ACPI_CUSTOM_METHOD | value CONFIG_ACPI_CUSTOM_METHOD n +# Default to 32768 on ARM, 65536 for everything else. +(arch armel armhf &/ value CONFIG_DEFAULT_MMAP_MIN_ADDR 32768) | \ + value CONFIG_DEFAULT_MMAP_MIN_ADDR 65536 + +# 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_IPV6 is y, if this is a module we get a module load for +# every ipv6 packet, bad. +value CONFIG_IPV6 y + +# Ensure ECRYPT_FS is y as it cannot be autoloaded and it has complex +# dependancies which can pull it =m at a whim. +value CONFIG_ECRYPT_FS y + +# Ensure CONFIG_EFI_VARS is y as debian-installer relies on having +# access to efivars when installing in EFI mode. See LP:837332 +value CONFIG_EFI_VARS y | !exists CONFIG_EFI_VARS + +# Ensure CONFIG_VFAT_FS is y for arm, needed to ensure we able to replace +# a kernel with the same version. Also needed for EFI based systems. +(arch armel armhf i386 amd64 &/ value CONFIG_VFAT_FS y) | \ + value CONFIG_VFAT_FS m + +# Ensure CONFIG_GPIO_TWL4030 is y for arm, LP:921934 +(arch armel armhf &/ value CONFIG_GPIO_TWL4030 y) | \ + value CONFIG_GPIO_TWL4030 m | \ + !exists CONFIG_GPIO_TWL4030 + +# Ensure CONFIG_THERM_ADT746X is y for powerpc-smp flavours. +# See LP:923094 +(flavour powerpc-smp &/ value CONFIG_THERM_ADT746X y) | \ + !exists CONFIG_THERM_ADT746X + +# Ensure CONFIG_NVRAM is y for powerpc-smp, LP:942193 +(flavour powerpc-smp powerpc-e500 powerpc-e500mc &/ value CONFIG_NVRAM y) | \ + (flavour powerpc-e500 powerpc-e500mc) | \ + value CONFIG_NVRAM m | \ + !exists CONFIG_NVRAM + +# Ensure CONFIG_STUB_POULSBO is disabled if CONFIG_DRM_PSB is enabled +# See LP:899244 +(!exists CONFIG_DRM_PSB | value CONFIG_DRM_PSB n) | \ +((value CONFIG_DRM_PSB y | value CONFIG_DRM_PSB m) & (value CONFIG_STUB_POULSBO n | !exists CONFIG_STUB_POULSBO)) + +# Ensure CONFIG_B43_BCMA_EXTRA is disabled if CONFIG_BRCMSMAC is enabled. +# Otherwise b43 and brcmsmac will overlap in the hardware they claim to +# support. +(!exists CONFIG_BRCMSMAC | value CONFIG_BRCMSMAC n) | \ +((value CONFIG_BRCMSMAC y | value CONFIG_BRCMSMAC m) & (value CONFIG_B43_BCMA_EXTRA n | !exists CONFIG_B43_BCMA_EXTRA)) + +# CONFIG_AUDIT_LOGINUID_IMMUTABLE is not compatible with upstart +value CONFIG_AUDIT_LOGINUID_IMMUTABLE n + +# CONFIG_I2C_DESIGNWARE_PLATFORM is required by Calxeda Highbank +(flavour highbank &/ value CONFIG_I2C_DESIGNWARE_PLATFORM y) | \ +value CONFIG_I2C_DESIGNWARE_PLATFORM m | \ +!exists CONFIG_I2C_DESIGNWARE_PLATFORM + +# Don't use the generic ehci/ohci code on omap, it doesn't work +((flavour generic & arch armhf &/ value CONFIG_USB_EHCI_HCD_PLATFORM n & value CONFIG_USB_OHCI_HCD_PLATFORM n) | \ + !exists MISSING) + +# CONFIG_DRM_MGAG200, experimental driver hangs boot on HP Proliant Gen8 +# See LP:1042903 +(!exists CONFIG_DRM_MGAG200 | value CONFIG_DRM_MGAG200 n) + +# Required if /init is a shell script. +value CONFIG_BINFMT_SCRIPT y --- linux-3.11.0.orig/debian.master/config/config.common.ubuntu +++ linux-3.11.0/debian.master/config/config.common.ubuntu @@ -0,0 +1,7107 @@ +# +# Common config options automatically generated by splitconfig.pl +# +CONFIG_3C515=m +CONFIG_60XX_WDT=m +CONFIG_6PACK=m +CONFIG_8139CP=m +CONFIG_8139TOO=m +CONFIG_8139TOO_8129=y +CONFIG_8139TOO_PIO=y +# CONFIG_8139TOO_TUNE_TWISTER is not set +# CONFIG_8139_OLD_RX_RESET is not set +CONFIG_9P_FS=m +# CONFIG_9P_FSCACHE is not set +CONFIG_9P_FS_POSIX_ACL=y +CONFIG_9P_FS_SECURITY=y +CONFIG_AB3100_CORE=y +CONFIG_AB3100_OTP=m +CONFIG_ABX500_CORE=y +# 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 is not set +CONFIG_ACPI_APEI_GHES=y +CONFIG_ACPI_APEI_MEMORY_FAILURE=y +CONFIG_ACPI_APEI_PCIEAER=y +CONFIG_ACPI_BATTERY=y +CONFIG_ACPI_BGRT=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_CUSTOM_METHOD is not set +# CONFIG_ACPI_DEBUG is not set +CONFIG_ACPI_DOCK=y +CONFIG_ACPI_EC_DEBUGFS=m +CONFIG_ACPI_FAN=y +CONFIG_ACPI_HED=y +CONFIG_ACPI_HOTPLUG_CPU=y +CONFIG_ACPI_HOTPLUG_MEMORY=y +CONFIG_ACPI_I2C=y +# CONFIG_ACPI_INITRD_TABLE_OVERRIDE is not set +CONFIG_ACPI_IPMI=m +CONFIG_ACPI_NUMA=y +CONFIG_ACPI_PCI_SLOT=y +CONFIG_ACPI_PROCESSOR=y +CONFIG_ACPI_PROCESSOR_AGGREGATOR=m +# CONFIG_ACPI_PROCFS is not set +# CONFIG_ACPI_PROCFS_POWER is not set +CONFIG_ACPI_PROC_EVENT=y +CONFIG_ACPI_QUICKSTART=m +CONFIG_ACPI_SBS=m +CONFIG_ACPI_SLEEP=y +CONFIG_ACPI_THERMAL=y +CONFIG_ACPI_TOSHIBA=m +CONFIG_ACPI_VIDEO=m +CONFIG_ACPI_WMI=m +CONFIG_ACQUIRE_WDT=m +CONFIG_ACT200L_DONGLE=m +CONFIG_ACTISYS_DONGLE=m +CONFIG_AD2S1200=m +CONFIG_AD2S1210=m +CONFIG_AD2S90=m +CONFIG_AD5064=m +CONFIG_AD525X_DPOT=m +CONFIG_AD525X_DPOT_I2C=m +CONFIG_AD525X_DPOT_SPI=m +CONFIG_AD5360=m +CONFIG_AD5380=m +CONFIG_AD5421=m +CONFIG_AD5446=m +CONFIG_AD5449=m +CONFIG_AD5504=m +CONFIG_AD5624R_SPI=m +CONFIG_AD5686=m +CONFIG_AD5755=m +CONFIG_AD5764=m +CONFIG_AD5791=m +CONFIG_AD5930=m +CONFIG_AD5933=m +CONFIG_AD7150=m +CONFIG_AD7152=m +CONFIG_AD7192=m +CONFIG_AD7266=m +CONFIG_AD7280=m +CONFIG_AD7291=m +CONFIG_AD7298=m +CONFIG_AD7303=m +CONFIG_AD7476=m +CONFIG_AD7606=m +CONFIG_AD7606_IFACE_PARALLEL=m +CONFIG_AD7606_IFACE_SPI=m +CONFIG_AD7746=m +CONFIG_AD7780=m +CONFIG_AD7791=m +CONFIG_AD7793=m +CONFIG_AD7816=m +CONFIG_AD7887=m +CONFIG_AD7923=m +CONFIG_AD799X=m +CONFIG_AD799X_RING_BUFFER=y +CONFIG_AD8366=m +CONFIG_AD9523=m +CONFIG_AD9832=m +CONFIG_AD9834=m +CONFIG_AD9850=m +CONFIG_AD9852=m +CONFIG_AD9910=m +CONFIG_AD9951=m +CONFIG_ADAPTEC_STARFIRE=m +CONFIG_ADE7753=m +CONFIG_ADE7754=m +CONFIG_ADE7758=m +CONFIG_ADE7759=m +CONFIG_ADE7854=m +CONFIG_ADE7854_I2C=m +CONFIG_ADE7854_SPI=m +CONFIG_ADF4350=m +CONFIG_ADFS_FS=m +# CONFIG_ADFS_FS_RW is not set +CONFIG_ADIS16060=m +CONFIG_ADIS16080=m +CONFIG_ADIS16130=m +CONFIG_ADIS16136=m +CONFIG_ADIS16201=m +CONFIG_ADIS16203=m +CONFIG_ADIS16204=m +CONFIG_ADIS16209=m +CONFIG_ADIS16220=m +CONFIG_ADIS16240=m +CONFIG_ADIS16260=m +CONFIG_ADIS16400=m +CONFIG_ADIS16480=m +CONFIG_ADJD_S311=m +CONFIG_ADM8211=m +CONFIG_ADT7316=m +CONFIG_ADT7316_I2C=m +CONFIG_ADT7316_SPI=m +CONFIG_ADVANTECH_WDT=m +CONFIG_ADXRS450=m +CONFIG_AD_SIGMA_DELTA=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_VIA=y +CONFIG_AIC79XX_CMDS_PER_DEVICE=32 +# CONFIG_AIC79XX_DEBUG_ENABLE is not set +CONFIG_AIC79XX_DEBUG_MASK=0 +CONFIG_AIC79XX_REG_PRETTY_PRINT=y +CONFIG_AIC79XX_RESET_DELAY_MS=5000 +CONFIG_AIC7XXX_CMDS_PER_DEVICE=8 +# CONFIG_AIC7XXX_DEBUG_ENABLE is not set +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_AIX_PARTITION=y +CONFIG_AK8975=m +CONFIG_ALIGNMENT_TRAP=y +CONFIG_ALIM1535_WDT=m +CONFIG_ALIM7101_WDT=m +CONFIG_ALIX=y +CONFIG_ALI_FIR=m +CONFIG_ALTERA_STAPL=m +CONFIG_ALX=m +CONFIG_AMBA_PL08X=y +CONFIG_AMD8111_ETH=m +CONFIG_AMD_IOMMU=y +CONFIG_AMD_IOMMU_STATS=y +CONFIG_AMD_IOMMU_V2=m +CONFIG_AMD_NB=y +CONFIG_AMD_NUMA=y +CONFIG_AMD_PHY=y +CONFIG_AMIGA_PARTITION=y +CONFIG_AMILO_RFKILL=m +# CONFIG_ANDROID is not set +CONFIG_ANON_INODES=y +CONFIG_APB_TIMER=y +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_EMULATION is not set +# CONFIG_APM_IGNORE_USER_SUSPEND is not set +CONFIG_APPLE_GMUX=m +CONFIG_APPLICOM=m +CONFIG_AR5523=m +# CONFIG_ARCH_AT91 is not set +# CONFIG_ARCH_BCM is not set +CONFIG_ARCH_BINFMT_ELF_RANDOMIZE_PIE=y +CONFIG_ARCH_CLOCKSOURCE_DATA=y +# CONFIG_ARCH_CLPS711X is not set +CONFIG_ARCH_CPU_PROBE_RELEASE=y +# CONFIG_ARCH_DAVINCI is not set +CONFIG_ARCH_DISCARD_MEMBLOCK=y +CONFIG_ARCH_DMA_ADDR_T_64BIT=y +# 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_EXYNOS is not set +CONFIG_ARCH_FLATMEM_ENABLE=y +# CONFIG_ARCH_FOOTBRIDGE is not set +# CONFIG_ARCH_GEMINI is not set +CONFIG_ARCH_HAS_ATOMIC64_DEC_IF_POSITIVE=y +CONFIG_ARCH_HAS_BANDGAP=y +CONFIG_ARCH_HAS_CACHE_LINE_SIZE=y +CONFIG_ARCH_HAS_CPUFREQ=y +CONFIG_ARCH_HAS_CPU_AUTOPROBE=y +CONFIG_ARCH_HAS_CPU_RELAX=y +CONFIG_ARCH_HAS_DEBUG_STRICT_USER_COPY_CHECKS=y +CONFIG_ARCH_HAS_HOLES_MEMORYMODEL=y +CONFIG_ARCH_HAS_OPP=y +CONFIG_ARCH_HAS_RESET_CONTROLLER=y +CONFIG_ARCH_HAS_TICK_BROADCAST=y +CONFIG_ARCH_HAVE_CUSTOM_GPIO_H=y +CONFIG_ARCH_HAVE_NMI_SAFE_CMPXCHG=y +CONFIG_ARCH_HIBERNATION_HEADER=y +CONFIG_ARCH_HIBERNATION_POSSIBLE=y +CONFIG_ARCH_HIGHBANK=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_IXP4XX is not set +# CONFIG_ARCH_KEYSTONE is not set +# CONFIG_ARCH_KIRKWOOD is not set +# CONFIG_ARCH_KS8695 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_MULTIPLATFORM=y +# CONFIG_ARCH_MULTI_CPU_AUTO is not set +# CONFIG_ARCH_MULTI_V6 is not set +CONFIG_ARCH_MULTI_V6_V7=y +CONFIG_ARCH_MULTI_V7=y +# CONFIG_ARCH_MV78XX0 is not set +# CONFIG_ARCH_MVEBU is not set +# CONFIG_ARCH_NETX is not set +CONFIG_ARCH_OMAP=y +# CONFIG_ARCH_OMAP1 is not set +CONFIG_ARCH_OMAP2PLUS=y +CONFIG_ARCH_OMAP2PLUS_TYPICAL=y +# CONFIG_ARCH_ORION5X is not set +CONFIG_ARCH_PROC_KCORE_TEXT=y +# CONFIG_ARCH_PXA is not set +CONFIG_ARCH_RANDOM=y +# CONFIG_ARCH_REALVIEW is not set +CONFIG_ARCH_REQUIRE_GPIOLIB=y +# CONFIG_ARCH_ROCKCHIP is not set +# CONFIG_ARCH_RPC is not set +# CONFIG_ARCH_S3C24XX is not set +# CONFIG_ARCH_S3C64XX is not set +# CONFIG_ARCH_S5P64X0 is not set +# CONFIG_ARCH_S5PC100 is not set +# CONFIG_ARCH_S5PV210 is not set +# CONFIG_ARCH_SA1100 is not set +# CONFIG_ARCH_SHARK is not set +# CONFIG_ARCH_SHMOBILE is not set +# CONFIG_ARCH_SIRF is not set +# CONFIG_ARCH_SOCFPGA is not set +CONFIG_ARCH_SPARSEMEM_ENABLE=y +# CONFIG_ARCH_STI is not set +# CONFIG_ARCH_SUNXI is not set +CONFIG_ARCH_SUPPORTS_DEBUG_PAGEALLOC=y +CONFIG_ARCH_SUPPORTS_MEMORY_FAILURE=y +CONFIG_ARCH_SUPPORTS_MSI=y +CONFIG_ARCH_SUPPORTS_NUMA_BALANCING=y +CONFIG_ARCH_SUPPORTS_OPTIMIZED_INLINING=y +CONFIG_ARCH_SUPPORTS_UPROBES=y +CONFIG_ARCH_SUSPEND_POSSIBLE=y +CONFIG_ARCH_TEGRA_114_SOC=y +CONFIG_ARCH_TEGRA_2x_SOC=y +CONFIG_ARCH_TEGRA_3x_SOC=y +# CONFIG_ARCH_U8500 is not set +CONFIG_ARCH_USES_NUMA_PROT_NONE=y +CONFIG_ARCH_USES_PG_UNCACHED=y +CONFIG_ARCH_USE_BUILTIN_BSWAP=y +# CONFIG_ARCH_VERSATILE is not set +CONFIG_ARCH_VEXPRESS=y +CONFIG_ARCH_VEXPRESS_CA9X4=y +CONFIG_ARCH_VEXPRESS_CORTEX_A5_A9_ERRATA=y +CONFIG_ARCH_VEXPRESS_DCSCB=y +CONFIG_ARCH_VIRT=y +# CONFIG_ARCH_W90X900 is not set +CONFIG_ARCH_WANTS_PROT_NUMA_PROT_NONE=y +CONFIG_ARCH_WANT_COMPAT_IPC_PARSE_VERSION=y +CONFIG_ARCH_WANT_FRAME_POINTERS=y +CONFIG_ARCH_WANT_GENERAL_HUGETLB=y +CONFIG_ARCH_WANT_HUGE_PMD_SHARE=y +CONFIG_ARCH_WANT_IPC_PARSE_VERSION=y +CONFIG_ARCH_WANT_OLD_COMPAT_IPC=y +CONFIG_ARCH_WANT_OPTIONAL_GPIOLIB=y +# CONFIG_ARCH_WM8850 is not set +# CONFIG_ARCH_ZYNQ is not set +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_ARC_EMAC=m +CONFIG_ARM=y +CONFIG_ARM_AMBA=y +CONFIG_ARM_APPENDED_DTB=y +CONFIG_ARM_ARCH_TIMER=y +CONFIG_ARM_AT91_ETHER=m +CONFIG_ARM_ATAG_DTB_COMPAT_CMDLINE_EXTEND=y +# CONFIG_ARM_ATAG_DTB_COMPAT_CMDLINE_FROM_BOOTLOADER is not set +# CONFIG_ARM_BIG_LITTLE_CPUFREQ is not set +CONFIG_ARM_CCI=y +CONFIG_ARM_CHARLCD=y +CONFIG_ARM_CPU_SUSPEND=y +CONFIG_ARM_CPU_TOPOLOGY=y +CONFIG_ARM_DMA_MEM_BUFFERABLE=y +CONFIG_ARM_ERRATA_430973=y +CONFIG_ARM_ERRATA_643719=y +CONFIG_ARM_ERRATA_720789=y +CONFIG_ARM_ERRATA_754322=y +CONFIG_ARM_ERRATA_754327=y +CONFIG_ARM_ERRATA_764369=y +CONFIG_ARM_ERRATA_775420=y +CONFIG_ARM_ERRATA_798181=y +# CONFIG_ARM_EXYNOS4210_CPUFREQ is not set +# CONFIG_ARM_EXYNOS4X12_CPUFREQ is not set +# CONFIG_ARM_EXYNOS5250_CPUFREQ is not set +# CONFIG_ARM_EXYNOS5440_CPUFREQ is not set +CONFIG_ARM_GIC=y +CONFIG_ARM_HIGHBANK_CPUFREQ=y +# CONFIG_ARM_IMX6Q_CPUFREQ is not set +# CONFIG_ARM_KIRKWOOD_CPUFREQ is not set +CONFIG_ARM_KPROBES_TEST=m +CONFIG_ARM_L1_CACHE_SHIFT=6 +CONFIG_ARM_L1_CACHE_SHIFT_6=y +CONFIG_ARM_NR_BANKS=8 +# CONFIG_ARM_OMAP2PLUS_CPUFREQ is not set +CONFIG_ARM_PATCH_PHYS_VIRT=y +CONFIG_ARM_PSCI=y +# CONFIG_ARM_SMMU is not set +CONFIG_ARM_SP805_WATCHDOG=m +# CONFIG_ARM_TEGRA_CPUFREQ is not set +CONFIG_ARM_THUMB=y +# CONFIG_ARM_THUMBEE is not set +CONFIG_ARM_TIMER_SP804=y +CONFIG_ARM_UNWIND=y +CONFIG_ARM_VIRT_EXT=y +CONFIG_ARPD=y +CONFIG_ASN1=y +CONFIG_ASUS_LAPTOP=m +CONFIG_ASUS_NB_WMI=m +CONFIG_ASUS_OLED=m +CONFIG_ASUS_WMI=m +CONFIG_ASYMMETRIC_KEY_TYPE=y +CONFIG_ASYMMETRIC_PUBLIC_KEY_SUBTYPE=y +CONFIG_ASYNC_CORE=m +CONFIG_ASYNC_MEMCPY=m +CONFIG_ASYNC_PQ=m +CONFIG_ASYNC_RAID6_RECOV=m +CONFIG_ASYNC_RAID6_TEST=m +CONFIG_ASYNC_XOR=m +CONFIG_AT76C50X_USB=m +CONFIG_AT803X_PHY=y +CONFIG_ATA=y +CONFIG_ATAGS=y +CONFIG_ATAGS_PROC=y +CONFIG_ATALK=m +CONFIG_ATARI_PARTITION=y +CONFIG_ATA_ACPI=y +CONFIG_ATA_BMDMA=y +CONFIG_ATA_GENERIC=y +# CONFIG_ATA_NONSTANDARD is not set +CONFIG_ATA_OVER_ETH=m +CONFIG_ATA_PIIX=y +CONFIG_ATA_SFF=y +CONFIG_ATA_VERBOSE_ERROR=y +CONFIG_ATH10K=m +# CONFIG_ATH10K_DEBUG is not set +CONFIG_ATH10K_DEBUGFS=y +CONFIG_ATH10K_PCI=m +CONFIG_ATH10K_TRACING=y +CONFIG_ATH5K=m +# CONFIG_ATH5K_DEBUG is not set +CONFIG_ATH5K_PCI=y +# CONFIG_ATH5K_TRACER is not set +CONFIG_ATH6KL=m +# CONFIG_ATH6KL_DEBUG is not set +CONFIG_ATH6KL_SDIO=m +# CONFIG_ATH6KL_TRACING is not set +CONFIG_ATH6KL_USB=m +CONFIG_ATH9K=m +CONFIG_ATH9K_AHB=y +CONFIG_ATH9K_BTCOEX_SUPPORT=y +CONFIG_ATH9K_COMMON=m +CONFIG_ATH9K_DEBUGFS=y +CONFIG_ATH9K_HTC=m +CONFIG_ATH9K_HTC_DEBUGFS=y +CONFIG_ATH9K_HW=m +CONFIG_ATH9K_LEGACY_RATE_CONTROL=y +CONFIG_ATH9K_PCI=y +CONFIG_ATH_CARDS=m +CONFIG_ATH_COMMON=m +# CONFIG_ATH_DEBUG is not set +CONFIG_ATL1=m +CONFIG_ATL1C=m +CONFIG_ATL1E=m +CONFIG_ATL2=m +CONFIG_ATM=m +CONFIG_ATMEL=m +CONFIG_ATMEL_PWM=m +CONFIG_ATMEL_SSC=m +CONFIG_ATM_AMBASSADOR=m +# CONFIG_ATM_AMBASSADOR_DEBUG is not set +CONFIG_ATM_BR2684=m +# CONFIG_ATM_BR2684_IPFILTER is not set +CONFIG_ATM_CLIP=m +# CONFIG_ATM_CLIP_NO_ICMP is not set +CONFIG_ATM_DRIVERS=y +CONFIG_ATM_DUMMY=m +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_LOGINUID_IMMUTABLE is not set +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=y +CONFIG_AUFS_FS=m +# CONFIG_AUFS_HNOTIFY is not set +CONFIG_AUFS_INO_T_64=y +CONFIG_AUFS_POLL=y +# CONFIG_AUFS_PROC_MAP is not set +# 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_AUTO_ZRELADDR=y +CONFIG_AUXDISPLAY=y +CONFIG_AVERAGE=y +CONFIG_AX25=m +CONFIG_AX25_DAMA_SLAVE=y +CONFIG_AX88796=m +# CONFIG_AX88796_93CX6 is not set +CONFIG_B43=m +CONFIG_B43LEGACY=m +# CONFIG_B43LEGACY_DEBUG is not set +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_BCMA=y +CONFIG_B43_BCMA_PIO=y +# 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_HT=y +CONFIG_B43_PHY_LP=y +CONFIG_B43_PHY_N=y +CONFIG_B43_PIO=y +# CONFIG_B43_SDIO is not set +CONFIG_B43_SSB=y +CONFIG_B44=m +CONFIG_B44_PCI=y +CONFIG_B44_PCICORE_AUTOSELECT=y +CONFIG_B44_PCI_AUTOSELECT=y +CONFIG_BACKLIGHT_88PM860X=m +CONFIG_BACKLIGHT_AAT2870=m +CONFIG_BACKLIGHT_ADP5520=m +CONFIG_BACKLIGHT_ADP8860=m +CONFIG_BACKLIGHT_ADP8870=m +CONFIG_BACKLIGHT_APPLE=m +CONFIG_BACKLIGHT_AS3711=m +CONFIG_BACKLIGHT_ATMEL_PWM=m +CONFIG_BACKLIGHT_CARILLO_RANCH=m +CONFIG_BACKLIGHT_CLASS_DEVICE=y +CONFIG_BACKLIGHT_DA903X=m +CONFIG_BACKLIGHT_DA9052=m +CONFIG_BACKLIGHT_GENERIC=m +CONFIG_BACKLIGHT_LCD_SUPPORT=y +CONFIG_BACKLIGHT_LM3533=m +CONFIG_BACKLIGHT_LM3630=m +CONFIG_BACKLIGHT_LM3639=m +CONFIG_BACKLIGHT_LP855X=m +CONFIG_BACKLIGHT_LP8788=m +CONFIG_BACKLIGHT_MAX8925=m +CONFIG_BACKLIGHT_PANDORA=m +CONFIG_BACKLIGHT_PCF50633=m +CONFIG_BACKLIGHT_PWM=m +CONFIG_BACKLIGHT_SAHARA=m +CONFIG_BACKLIGHT_TPS65217=m +CONFIG_BACKLIGHT_WM831X=m +# CONFIG_BACKTRACE_SELF_TEST is not set +CONFIG_BALLOON_COMPACTION=y +CONFIG_BASE_FULL=y +CONFIG_BASE_SMALL=0 +CONFIG_BATMAN_ADV=m +CONFIG_BATMAN_ADV_BLA=y +CONFIG_BATMAN_ADV_DAT=y +# CONFIG_BATMAN_ADV_DEBUG is not set +CONFIG_BATMAN_ADV_NC=y +CONFIG_BATTERY_88PM860X=m +CONFIG_BATTERY_BQ27X00_I2C=y +CONFIG_BATTERY_BQ27X00_PLATFORM=y +CONFIG_BATTERY_BQ27x00=m +CONFIG_BATTERY_DA9030=m +CONFIG_BATTERY_DA9052=m +CONFIG_BATTERY_DS2760=m +CONFIG_BATTERY_DS2780=m +CONFIG_BATTERY_DS2781=m +CONFIG_BATTERY_DS2782=m +CONFIG_BATTERY_GOLDFISH=m +CONFIG_BATTERY_INTEL_MID=m +CONFIG_BATTERY_MAX17040=m +CONFIG_BATTERY_MAX17042=m +CONFIG_BATTERY_RX51=m +CONFIG_BATTERY_SBS=m +CONFIG_BAYCOM_EPP=m +CONFIG_BAYCOM_PAR=m +CONFIG_BAYCOM_SER_FDX=m +CONFIG_BAYCOM_SER_HDX=m +CONFIG_BCACHE=m +# CONFIG_BCACHE_CLOSURES_DEBUG is not set +# CONFIG_BCACHE_DEBUG is not set +# CONFIG_BCACHE_EDEBUG is not set +CONFIG_BCH_CONST_M=14 +CONFIG_BCH_CONST_PARAMS=y +CONFIG_BCH_CONST_T=4 +CONFIG_BCM87XX_PHY=y +CONFIG_BCMA=m +CONFIG_BCMA_BLOCKIO=y +# CONFIG_BCMA_DEBUG is not set +CONFIG_BCMA_DRIVER_GMAC_CMN=y +CONFIG_BCMA_DRIVER_GPIO=y +CONFIG_BCMA_HOST_PCI=y +CONFIG_BCMA_HOST_PCI_POSSIBLE=y +CONFIG_BCMA_POSSIBLE=y +CONFIG_BCM_WIMAX=m +CONFIG_BE2ISCSI=m +CONFIG_BE2NET=m +# CONFIG_BEFS_DEBUG is not set +CONFIG_BEFS_FS=m +CONFIG_BFS_FS=m +CONFIG_BINARY_PRINTF=y +CONFIG_BINFMT_AOUT=m +CONFIG_BINFMT_ELF=y +CONFIG_BINFMT_MISC=m +CONFIG_BINFMT_SCRIPT=y +CONFIG_BITREVERSE=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_BSG=y +CONFIG_BLK_DEV_BSGLIB=y +# CONFIG_BLK_DEV_COW_COMMON is not set +CONFIG_BLK_DEV_CRYPTOLOOP=m +CONFIG_BLK_DEV_DAC960=m +CONFIG_BLK_DEV_DM=y +CONFIG_BLK_DEV_DRBD=m +CONFIG_BLK_DEV_FD=m +# CONFIG_BLK_DEV_HD is not set +CONFIG_BLK_DEV_INITRD=y +CONFIG_BLK_DEV_INTEGRITY=y +CONFIG_BLK_DEV_IO_TRACE=y +CONFIG_BLK_DEV_LOOP=y +CONFIG_BLK_DEV_LOOP_MIN_COUNT=8 +CONFIG_BLK_DEV_MD=y +CONFIG_BLK_DEV_NBD=m +CONFIG_BLK_DEV_NVME=m +CONFIG_BLK_DEV_OSD=m +CONFIG_BLK_DEV_PCIESSD_MTIP32XX=m +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_RSXX=m +CONFIG_BLK_DEV_SD=y +CONFIG_BLK_DEV_SR=y +# CONFIG_BLK_DEV_SR_VENDOR is not set +CONFIG_BLK_DEV_SX8=m +CONFIG_BLK_DEV_THROTTLING=y +CONFIG_BLK_DEV_UMEM=m +# CONFIG_BLK_DEV_XIP is not set +CONFIG_BLOCK=y +CONFIG_BLOCK_COMPAT=y +CONFIG_BMP085=y +CONFIG_BMP085_I2C=m +CONFIG_BMP085_SPI=m +CONFIG_BNA=m +CONFIG_BNX2=m +CONFIG_BNX2X=m +CONFIG_BNX2X_SRIOV=y +CONFIG_BOARD_TPCI200=m +CONFIG_BONDING=m +# CONFIG_BOOTPARAM_HARDLOCKUP_PANIC is not set +CONFIG_BOOTPARAM_HARDLOCKUP_PANIC_VALUE=0 +# CONFIG_BOOTPARAM_HOTPLUG_CPU0 is not set +# CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set +CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0 +# CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC is not set +CONFIG_BOOTPARAM_SOFTLOCKUP_PANIC_VALUE=0 +CONFIG_BOOT_PRINTK_DELAY=y +CONFIG_BOUNCE=y +CONFIG_BPCTL=m +CONFIG_BPF_JIT=y +CONFIG_BPQETHER=m +CONFIG_BQL=y +CONFIG_BRANCH_PROFILE_NONE=y +# CONFIG_BRCMDBG is not set +CONFIG_BRCMFMAC=m +CONFIG_BRCMFMAC_SDIO=y +CONFIG_BRCMFMAC_USB=y +CONFIG_BRCMSMAC=m +CONFIG_BRCMUTIL=m +CONFIG_BRCM_TRACING=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 is not set +CONFIG_BRIDGE_EBT_VLAN=m +CONFIG_BRIDGE_IGMP_SNOOPING=y +CONFIG_BRIDGE_NETFILTER=y +CONFIG_BRIDGE_NF_EBTABLES=m +CONFIG_BRIDGE_VLAN_FILTERING=y +CONFIG_BROADCOM_PHY=y +CONFIG_BSD_DISKLABEL=y +CONFIG_BSD_PROCESS_ACCT=y +CONFIG_BSD_PROCESS_ACCT_V3=y +CONFIG_BT=m +CONFIG_BTREE=y +# CONFIG_BTRFS_DEBUG is not set +CONFIG_BTRFS_FS=m +# CONFIG_BTRFS_FS_CHECK_INTEGRITY is not set +CONFIG_BTRFS_FS_POSIX_ACL=y +# CONFIG_BTRFS_FS_RUN_SANITY_TESTS is not set +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_3WIRE=y +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_MRVL=m +CONFIG_BT_MRVL_SDIO=m +CONFIG_BT_RFCOMM=m +CONFIG_BT_RFCOMM_TTY=y +CONFIG_BT_WILINK=m +CONFIG_BUG=y +CONFIG_BUILDTIME_EXTABLE_SORT=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_CACHE_L2X0=y +CONFIG_CACHE_PL310=y +CONFIG_CAIF=m +# CONFIG_CAIF_DEBUG is not set +CONFIG_CAIF_HSI=m +CONFIG_CAIF_NETDEV=m +CONFIG_CAIF_SPI_SLAVE=m +# CONFIG_CAIF_SPI_SYNC is not set +CONFIG_CAIF_TTY=m +CONFIG_CAIF_USB=m +CONFIG_CAIF_VIRTIO=m +CONFIG_CALGARY_IOMMU=y +CONFIG_CALGARY_IOMMU_ENABLED_BY_DEFAULT=y +CONFIG_CAN=m +CONFIG_CAN_8DEV_USB=m +CONFIG_CAN_AT91=m +CONFIG_CAN_BCM=m +CONFIG_CAN_CALC_BITTIMING=y +CONFIG_CAN_CC770=m +CONFIG_CAN_CC770_ISA=m +CONFIG_CAN_CC770_PLATFORM=m +CONFIG_CAN_C_CAN=m +CONFIG_CAN_C_CAN_PCI=m +CONFIG_CAN_C_CAN_PLATFORM=m +# CONFIG_CAN_DEBUG_DEVICES is not set +CONFIG_CAN_DEV=m +CONFIG_CAN_EMS_PCI=m +CONFIG_CAN_EMS_PCMCIA=m +CONFIG_CAN_EMS_USB=m +CONFIG_CAN_ESD_USB2=m +# CONFIG_CAN_FLEXCAN is not set +CONFIG_CAN_GRCAN=m +CONFIG_CAN_GW=m +CONFIG_CAN_JANZ_ICAN3=m +CONFIG_CAN_KVASER_PCI=m +CONFIG_CAN_KVASER_USB=m +CONFIG_CAN_LEDS=y +CONFIG_CAN_MCP251X=m +CONFIG_CAN_PEAK_PCI=m +CONFIG_CAN_PEAK_PCIEC=y +CONFIG_CAN_PEAK_PCMCIA=m +CONFIG_CAN_PEAK_USB=m +CONFIG_CAN_PLX_PCI=m +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=m +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_HWRNG=y +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_CC_OPTIMIZE_FOR_SIZE is not set +CONFIG_CC_STACKPROTECTOR=y +CONFIG_CDROM_PKTCDVD=m +CONFIG_CDROM_PKTCDVD_BUFFERS=8 +# CONFIG_CDROM_PKTCDVD_WCACHE is not set +CONFIG_CED1401=m +CONFIG_CEPH_FS=m +CONFIG_CEPH_LIB=m +# CONFIG_CEPH_LIB_PRETTYDEBUG is not set +CONFIG_CEPH_LIB_USE_DNS_RESOLVER=y +CONFIG_CFAG12864B=m +CONFIG_CFAG12864B_RATE=20 +CONFIG_CFG80211=m +# CONFIG_CFG80211_CERTIFICATION_ONUS is not set +CONFIG_CFG80211_DEBUGFS=y +CONFIG_CFG80211_DEFAULT_PS=y +# CONFIG_CFG80211_DEVELOPER_WARNINGS is not set +# CONFIG_CFG80211_INTERNAL_REGDB is not set +# CONFIG_CFG80211_REG_DEBUG is not set +CONFIG_CFG80211_WEXT=y +CONFIG_CFQ_GROUP_IOSCHED=y +CONFIG_CFS_BANDWIDTH=y +CONFIG_CGROUPS=y +CONFIG_CGROUP_CPUACCT=y +# CONFIG_CGROUP_DEBUG is not set +CONFIG_CGROUP_DEVICE=y +CONFIG_CGROUP_FREEZER=y +CONFIG_CGROUP_HUGETLB=y +CONFIG_CGROUP_PERF=y +CONFIG_CGROUP_SCHED=y +CONFIG_CHARGER_88PM860X=m +CONFIG_CHARGER_BQ2415X=m +CONFIG_CHARGER_GPIO=m +CONFIG_CHARGER_ISP1704=m +CONFIG_CHARGER_LP8727=m +CONFIG_CHARGER_LP8788=m +CONFIG_CHARGER_MANAGER=y +CONFIG_CHARGER_MAX8903=m +CONFIG_CHARGER_MAX8997=m +CONFIG_CHARGER_MAX8998=m +CONFIG_CHARGER_PCF50633=m +CONFIG_CHARGER_SMB347=m +CONFIG_CHARGER_TPS65090=m +CONFIG_CHARGER_TWL4030=m +CONFIG_CHECKPOINT_RESTORE=y +CONFIG_CHECK_SIGNATURE=y +CONFIG_CHELSIO_T1=m +CONFIG_CHELSIO_T1_1G=y +CONFIG_CHELSIO_T3=m +CONFIG_CHELSIO_T4=m +CONFIG_CHELSIO_T4VF=m +CONFIG_CHROMEOS_LAPTOP=m +CONFIG_CHR_DEV_OSST=m +CONFIG_CHR_DEV_SCH=m +CONFIG_CHR_DEV_SG=y +CONFIG_CHR_DEV_ST=m +CONFIG_CICADA_PHY=y +CONFIG_CIFS=m +CONFIG_CIFS_ACL=y +CONFIG_CIFS_DEBUG=y +# CONFIG_CIFS_DEBUG2 is not set +CONFIG_CIFS_DFS_UPCALL=y +CONFIG_CIFS_FSCACHE=y +CONFIG_CIFS_POSIX=y +CONFIG_CIFS_SMB2=y +CONFIG_CIFS_STATS=y +# CONFIG_CIFS_STATS2 is not set +CONFIG_CIFS_UPCALL=y +CONFIG_CIFS_WEAK_PW_HASH=y +CONFIG_CIFS_XATTR=y +CONFIG_CISS_SCSI_TAPE=y +CONFIG_CLEANCACHE=y +CONFIG_CLKBLD_I8253=y +CONFIG_CLKDEV_LOOKUP=y +CONFIG_CLKEVT_I8253=y +CONFIG_CLKSRC_I8253=y +CONFIG_CLKSRC_MMIO=y +CONFIG_CLKSRC_OF=y +CONFIG_CLK_TWL6040=m +CONFIG_CLOCKSOURCE_WATCHDOG=y +CONFIG_CLONE_BACKWARDS=y +CONFIG_CLS_U32_MARK=y +# CONFIG_CLS_U32_PERF is not set +CONFIG_CLZ_TAB=y +CONFIG_CMA=y +CONFIG_CMA_ALIGNMENT=8 +CONFIG_CMA_AREAS=7 +# CONFIG_CMA_DEBUG is not set +CONFIG_CMA_SIZE_MBYTES=16 +# CONFIG_CMA_SIZE_SEL_MAX is not set +CONFIG_CMA_SIZE_SEL_MBYTES=y +# CONFIG_CMA_SIZE_SEL_MIN is not set +# CONFIG_CMA_SIZE_SEL_PERCENTAGE is not set +CONFIG_CMDLINE="" +# CONFIG_CMDLINE_BOOL is not set +CONFIG_CNIC=m +CONFIG_CODA_FS=m +CONFIG_COMEDI=m +CONFIG_COMEDI_8255=m +CONFIG_COMEDI_8255_PCI=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_2032=m +CONFIG_COMEDI_ADDI_APCI_2200=m +CONFIG_COMEDI_ADDI_APCI_3120=m +CONFIG_COMEDI_ADDI_APCI_3501=m +CONFIG_COMEDI_ADDI_APCI_3XXX=m +CONFIG_COMEDI_ADDI_WATCHDOG=m +CONFIG_COMEDI_ADL_PCI6208=m +CONFIG_COMEDI_ADL_PCI7X3X=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_PCI1724=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_DIO200_ISA=m +CONFIG_COMEDI_AMPLC_DIO200_PCI=m +CONFIG_COMEDI_AMPLC_PC236=m +CONFIG_COMEDI_AMPLC_PC236_ISA=m +CONFIG_COMEDI_AMPLC_PC236_PCI=m +CONFIG_COMEDI_AMPLC_PC263_ISA=m +CONFIG_COMEDI_AMPLC_PC263_PCI=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_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_DAS08_ISA=m +CONFIG_COMEDI_DAS08_PCI=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_DEFAULT_BUF_MAXSIZE_KB=20480 +CONFIG_COMEDI_DEFAULT_BUF_SIZE_KB=2048 +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_DYNA_PCI10XX=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=y +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=y +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_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_LABPC_ISA=m +CONFIG_COMEDI_NI_LABPC_PCI=m +CONFIG_COMEDI_NI_MIO_CS=m +CONFIG_COMEDI_NI_PCIDIO=m +CONFIG_COMEDI_NI_PCIMIO=m +CONFIG_COMEDI_NI_TIO=m +CONFIG_COMEDI_NI_TIOCMD=m +CONFIG_COMEDI_PARPORT=m +CONFIG_COMEDI_PCI_DRIVERS=y +CONFIG_COMEDI_PCL711=m +CONFIG_COMEDI_PCL724=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_PCMAD=m +CONFIG_COMEDI_PCMCIA_DRIVERS=y +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_USBDUXSIGMA=m +CONFIG_COMEDI_USB_DRIVERS=y +CONFIG_COMEDI_VMK80XX=m +CONFIG_COMMON_CLK=y +# CONFIG_COMMON_CLK_DEBUG is not set +CONFIG_COMMON_CLK_MAX77686=m +CONFIG_COMMON_CLK_SI5351=m +CONFIG_COMMON_CLK_VERSATILE=y +CONFIG_COMMON_CLK_WM831X=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_OLD_SIGACTION=y +# CONFIG_COMPAT_VDSO is not set +# CONFIG_COMPILE_TEST is not set +CONFIG_CONFIGFS_FS=m +CONFIG_CONNECTOR=y +CONFIG_CONSOLE_POLL=y +CONFIG_CONSOLE_TRANSLATIONS=y +CONFIG_CONTEXT_SWITCH_TRACER=y +CONFIG_CONTEXT_TRACKING=y +# CONFIG_CONTEXT_TRACKING_FORCE is not set +CONFIG_COPS=m +CONFIG_COPS_DAYNA=y +CONFIG_COPS_TANGENT=y +CONFIG_CORDIC=m +CONFIG_COREDUMP=y +CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS=y +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_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_COMMON=y +CONFIG_CPU_FREQ_GOV_CONSERVATIVE=y +CONFIG_CPU_FREQ_GOV_ONDEMAND=y +CONFIG_CPU_FREQ_GOV_PERFORMANCE=y +CONFIG_CPU_FREQ_GOV_POWERSAVE=y +CONFIG_CPU_FREQ_GOV_USERSPACE=y +CONFIG_CPU_FREQ_STAT=y +CONFIG_CPU_FREQ_STAT_DETAILS=y +CONFIG_CPU_FREQ_TABLE=y +CONFIG_CPU_HAS_ASID=y +# CONFIG_CPU_ICACHE_DISABLE is not set +CONFIG_CPU_IDLE=y +CONFIG_CPU_IDLE_GOV_LADDER=y +CONFIG_CPU_IDLE_GOV_MENU=y +CONFIG_CPU_IDLE_MULTIPLE_DRIVERS=y +CONFIG_CPU_NOTIFIER_ERROR_INJECT=m +CONFIG_CPU_PABRT_V7=y +CONFIG_CPU_PM=y +CONFIG_CPU_RMAP=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_THERMAL=y +CONFIG_CPU_TLB_V7=y +CONFIG_CPU_V7=y +CONFIG_CRAMFS=m +CONFIG_CRASH_DUMP=y +CONFIG_CRC16=y +CONFIG_CRC32=y +# CONFIG_CRC32_BIT is not set +# CONFIG_CRC32_SARWATE is not set +# CONFIG_CRC32_SELFTEST is not set +# CONFIG_CRC32_SLICEBY4 is not set +CONFIG_CRC32_SLICEBY8=y +CONFIG_CRC7=m +CONFIG_CRC8=m +CONFIG_CRC_CCITT=m +CONFIG_CRC_ITU_T=m +CONFIG_CRC_T10DIF=y +CONFIG_CROSS_COMPILE="" +CONFIG_CROSS_MEMORY_ATTACH=y +CONFIG_CRYPTO=y +CONFIG_CRYPTO_ABLK_HELPER_X86=m +CONFIG_CRYPTO_AEAD=m +CONFIG_CRYPTO_AEAD2=y +CONFIG_CRYPTO_AES=y +CONFIG_CRYPTO_AES_586=m +CONFIG_CRYPTO_AES_ARM=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_BLOWFISH_COMMON=m +CONFIG_CRYPTO_BLOWFISH_X86_64=m +CONFIG_CRYPTO_CAMELLIA=m +CONFIG_CRYPTO_CAMELLIA_AESNI_AVX2_X86_64=m +CONFIG_CRYPTO_CAMELLIA_AESNI_AVX_X86_64=m +CONFIG_CRYPTO_CAMELLIA_X86_64=m +CONFIG_CRYPTO_CAST5=m +CONFIG_CRYPTO_CAST5_AVX_X86_64=m +CONFIG_CRYPTO_CAST6=m +CONFIG_CRYPTO_CAST6_AVX_X86_64=m +CONFIG_CRYPTO_CAST_COMMON=m +CONFIG_CRYPTO_CBC=y +CONFIG_CRYPTO_CCM=m +CONFIG_CRYPTO_CMAC=m +CONFIG_CRYPTO_CRC32=m +CONFIG_CRYPTO_CRC32C=y +CONFIG_CRYPTO_CRC32C_INTEL=y +CONFIG_CRYPTO_CRC32_PCLMUL=m +CONFIG_CRYPTO_CRCT10DIF=y +CONFIG_CRYPTO_CRCT10DIF_PCLMUL=m +CONFIG_CRYPTO_CRYPTD=m +CONFIG_CRYPTO_CTR=m +CONFIG_CRYPTO_CTS=m +CONFIG_CRYPTO_DEFLATE=m +CONFIG_CRYPTO_DES=m +CONFIG_CRYPTO_DEV_GEODE=m +CONFIG_CRYPTO_DEV_HIFN_795X=m +CONFIG_CRYPTO_DEV_HIFN_795X_RNG=y +CONFIG_CRYPTO_DEV_OMAP_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_DEV_SAHARA=m +CONFIG_CRYPTO_DEV_TEGRA_AES=m +CONFIG_CRYPTO_ECB=y +CONFIG_CRYPTO_FCRYPT=m +CONFIG_CRYPTO_GCM=m +CONFIG_CRYPTO_GF128MUL=m +CONFIG_CRYPTO_GHASH=m +CONFIG_CRYPTO_GHASH_CLMUL_NI_INTEL=m +CONFIG_CRYPTO_GLUE_HELPER_X86=m +CONFIG_CRYPTO_HASH=y +CONFIG_CRYPTO_HASH2=y +CONFIG_CRYPTO_HMAC=y +CONFIG_CRYPTO_HW=y +CONFIG_CRYPTO_KHAZAD=m +CONFIG_CRYPTO_LRW=m +CONFIG_CRYPTO_LZ4=m +CONFIG_CRYPTO_LZ4HC=m +CONFIG_CRYPTO_LZO=y +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=y +CONFIG_CRYPTO_RNG2=y +CONFIG_CRYPTO_SALSA20=m +CONFIG_CRYPTO_SALSA20_586=m +CONFIG_CRYPTO_SALSA20_X86_64=m +CONFIG_CRYPTO_SEED=m +CONFIG_CRYPTO_SEQIV=m +CONFIG_CRYPTO_SERPENT=m +CONFIG_CRYPTO_SERPENT_AVX2_X86_64=m +CONFIG_CRYPTO_SERPENT_AVX_X86_64=m +CONFIG_CRYPTO_SERPENT_SSE2_586=m +CONFIG_CRYPTO_SERPENT_SSE2_X86_64=m +CONFIG_CRYPTO_SHA1=y +CONFIG_CRYPTO_SHA1_ARM=m +CONFIG_CRYPTO_SHA1_SSSE3=m +CONFIG_CRYPTO_SHA256=y +CONFIG_CRYPTO_SHA256_SSSE3=m +CONFIG_CRYPTO_SHA512=y +CONFIG_CRYPTO_SHA512_SSSE3=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_AVX_X86_64=m +CONFIG_CRYPTO_TWOFISH_COMMON=m +CONFIG_CRYPTO_TWOFISH_X86_64=m +CONFIG_CRYPTO_TWOFISH_X86_64_3WAY=m +CONFIG_CRYPTO_USER=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_MFGPT is not set +CONFIG_CS89x0=m +CONFIG_CS89x0_PLATFORM=y +CONFIG_CUSE=m +CONFIG_CW1200=m +CONFIG_CW1200_WLAN_SDIO=m +CONFIG_CW1200_WLAN_SPI=m +CONFIG_CXT1E1=m +CONFIG_CYCLADES=m +CONFIG_CYPRESS_FIRMWARE=m +# CONFIG_CYZ_INTR is not set +CONFIG_DA9052_WATCHDOG=m +CONFIG_DA9055_WATCHDOG=m +CONFIG_DAVICOM_PHY=y +CONFIG_DCA=m +CONFIG_DCACHE_WORD_ACCESS=y +CONFIG_DCB=y +CONFIG_DCDBAS=m +CONFIG_DDR=y +CONFIG_DE2104X=m +CONFIG_DE2104X_DSL=0 +CONFIG_DE4X5=m +# CONFIG_DEBUG_ATOMIC_SLEEP is not set +# 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_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_HOTPLUG_CPU0 is not set +CONFIG_DEBUG_IMX_UART_PORT=1 +CONFIG_DEBUG_INFO=y +# 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 is not set +CONFIG_DEBUG_LL_INCLUDE="mach/debug-macro.S" +# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set +# CONFIG_DEBUG_LOCK_ALLOC is not set +# CONFIG_DEBUG_MEMORY_INIT is not set +# CONFIG_DEBUG_MUTEXES is not set +# CONFIG_DEBUG_NMI_SELFTEST 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_PINCTRL is not set +CONFIG_DEBUG_RODATA=y +# CONFIG_DEBUG_RODATA_TEST is not set +# CONFIG_DEBUG_RT_MUTEXES is not set +# CONFIG_DEBUG_SECTION_MISMATCH is not set +CONFIG_DEBUG_SET_MODULE_RONX=y +# CONFIG_DEBUG_SG is not set +# CONFIG_DEBUG_SHIRQ is not set +# CONFIG_DEBUG_SPINLOCK 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_TLBFLUSH is not set +# CONFIG_DEBUG_USER is not set +# CONFIG_DEBUG_VIRTUAL is not set +# CONFIG_DEBUG_VM is not set +# CONFIG_DEBUG_WRITECOUNT is not set +# CONFIG_DEBUG_WW_MUTEX_SLOWPATH 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_LZ4=y +CONFIG_DECOMPRESS_LZMA=y +CONFIG_DECOMPRESS_LZO=y +CONFIG_DECOMPRESS_XZ=y +# CONFIG_DEFAULT_CFQ is not set +CONFIG_DEFAULT_CUBIC=y +CONFIG_DEFAULT_DEADLINE=y +CONFIG_DEFAULT_HOSTNAME="(none)" +CONFIG_DEFAULT_HUNG_TASK_TIMEOUT=120 +CONFIG_DEFAULT_IOSCHED="deadline" +CONFIG_DEFAULT_IO_DELAY_TYPE=1 +CONFIG_DEFAULT_MESSAGE_LOGLEVEL=4 +# 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_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_DEPRECATED_PARAM_STRUCT is not set +CONFIG_DETECT_HUNG_TASK=y +CONFIG_DEVFREQ_GOV_PERFORMANCE=y +CONFIG_DEVFREQ_GOV_POWERSAVE=y +CONFIG_DEVFREQ_GOV_SIMPLE_ONDEMAND=y +CONFIG_DEVFREQ_GOV_USERSPACE=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_DGRP=m +CONFIG_DIRECT_GBPAGES=y +CONFIG_DISPLAY_CONNECTOR_ANALOG_TV=m +CONFIG_DISPLAY_CONNECTOR_DVI=m +CONFIG_DISPLAY_CONNECTOR_HDMI=m +CONFIG_DISPLAY_ENCODER_TFP410=m +CONFIG_DISPLAY_ENCODER_TPD12S015=m +CONFIG_DISPLAY_PANEL_DPI=m +CONFIG_DISPLAY_PANEL_DSI_CM=m +CONFIG_DISPLAY_PANEL_LGPHILIPS_LB035Q02=m +CONFIG_DISPLAY_PANEL_NEC_NL8048HL11=m +CONFIG_DISPLAY_PANEL_SHARP_LS037V7DW01=m +CONFIG_DISPLAY_PANEL_SONY_ACX565AKM=m +CONFIG_DISPLAY_PANEL_TPO_TD043MTEA1=m +CONFIG_DL2K=m +CONFIG_DLCI=m +CONFIG_DLCI_MAX=8 +CONFIG_DLM=m +# CONFIG_DLM_DEBUG is not set +CONFIG_DM9000=m +# CONFIG_DM9000_FORCE_SIMPLE_PHY_POLL is not set +CONFIG_DM9102=m +CONFIG_DMADEVICES=y +# CONFIG_DMADEVICES_DEBUG is not set +CONFIG_DMAR_TABLE=y +# CONFIG_DMATEST is not set +CONFIG_DMA_ACPI=y +# CONFIG_DMA_API_DEBUG is not set +CONFIG_DMA_ENGINE=y +CONFIG_DMA_OF=y +CONFIG_DMA_OMAP=y +CONFIG_DMA_SHARED_BUFFER=y +CONFIG_DMA_VIRTUAL_CHANNELS=y +CONFIG_DMI=y +CONFIG_DMIID=y +CONFIG_DMI_SYSFS=m +CONFIG_DM_BIO_PRISON=m +CONFIG_DM_BUFIO=m +CONFIG_DM_CACHE=m +CONFIG_DM_CACHE_CLEANER=m +CONFIG_DM_CACHE_MQ=m +CONFIG_DM_CRYPT=m +# CONFIG_DM_DEBUG is not set +# CONFIG_DM_DEBUG_BLOCK_STACK_TRACING is not set +CONFIG_DM_DELAY=m +CONFIG_DM_FLAKEY=m +CONFIG_DM_LOG_USERSPACE=m +CONFIG_DM_MIRROR=m +CONFIG_DM_MULTIPATH=m +CONFIG_DM_MULTIPATH_QL=m +CONFIG_DM_MULTIPATH_ST=m +CONFIG_DM_PERSISTENT_DATA=m +CONFIG_DM_RAID=m +CONFIG_DM_RAID45=m +CONFIG_DM_SNAPSHOT=m +CONFIG_DM_SWITCH=m +CONFIG_DM_THIN_PROVISIONING=m +CONFIG_DM_UEVENT=y +CONFIG_DM_VERITY=m +CONFIG_DM_ZERO=m +CONFIG_DNET=m +CONFIG_DNOTIFY=y +CONFIG_DNS_RESOLVER=y +CONFIG_DONGLE=y +CONFIG_DOUBLEFAULT=y +CONFIG_DQL=y +CONFIG_DRAGONRISE_FF=y +# CONFIG_DRBD_FAULT_INJECTION is not set +CONFIG_DRM=m +CONFIG_DRM_AST=m +CONFIG_DRM_CIRRUS_QEMU=m +# CONFIG_DRM_EXYNOS is not set +CONFIG_DRM_GEM_CMA_HELPER=y +CONFIG_DRM_GMA3600=y +CONFIG_DRM_GMA500=m +CONFIG_DRM_GMA600=y +CONFIG_DRM_I2C_CH7006=m +CONFIG_DRM_I2C_NXP_TDA998X=m +CONFIG_DRM_I2C_SIL164=m +CONFIG_DRM_I810=m +CONFIG_DRM_I915=m +CONFIG_DRM_I915_KMS=y +# CONFIG_DRM_IMX is not set +CONFIG_DRM_KMS_CMA_HELPER=y +CONFIG_DRM_KMS_HELPER=m +CONFIG_DRM_LOAD_EDID_FIRMWARE=y +# CONFIG_DRM_MEDFIELD is not set +CONFIG_DRM_MGA=m +# CONFIG_DRM_MGAG200 is not set +CONFIG_DRM_NOUVEAU=m +CONFIG_DRM_NOUVEAU_BACKLIGHT=y +# CONFIG_DRM_OMAP is not set +CONFIG_DRM_QXL=m +CONFIG_DRM_R128=m +CONFIG_DRM_RADEON=m +CONFIG_DRM_RADEON_UMS=y +CONFIG_DRM_RCAR_DU=m +CONFIG_DRM_SAVAGE=m +CONFIG_DRM_SHMOBILE=m +CONFIG_DRM_SIS=m +CONFIG_DRM_TDFX=m +CONFIG_DRM_TEGRA=y +# CONFIG_DRM_TEGRA_DEBUG is not set +CONFIG_DRM_TEGRA_STAGING=y +# CONFIG_DRM_TILCDC is not set +CONFIG_DRM_TTM=m +CONFIG_DRM_UDL=m +CONFIG_DRM_USB=m +CONFIG_DRM_VIA=m +CONFIG_DRM_VMWGFX=m +# CONFIG_DRM_VMWGFX_FBCON 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_DT3155_STREAMING=y +CONFIG_DTC=y +CONFIG_DTLK=m +CONFIG_DUMMY=m +CONFIG_DUMMY_CONSOLE=y +CONFIG_DUMMY_IRQ=m +CONFIG_DVB_A8293=m +CONFIG_DVB_AF9013=m +CONFIG_DVB_AF9033=m +CONFIG_DVB_AS102=m +CONFIG_DVB_ATBM8830=m +CONFIG_DVB_AU8522=m +CONFIG_DVB_AU8522_DTV=m +CONFIG_DVB_AU8522_V4L=m +CONFIG_DVB_AV7110=m +CONFIG_DVB_AV7110_OSD=y +CONFIG_DVB_B2C2_FLEXCOP=m +CONFIG_DVB_B2C2_FLEXCOP_PCI=m +# CONFIG_DVB_B2C2_FLEXCOP_PCI_DEBUG is not set +CONFIG_DVB_B2C2_FLEXCOP_USB=m +# CONFIG_DVB_B2C2_FLEXCOP_USB_DEBUG is not set +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_CORE=m +CONFIG_DVB_CX22700=m +CONFIG_DVB_CX22702=m +CONFIG_DVB_CX24110=m +CONFIG_DVB_CX24116=m +CONFIG_DVB_CX24123=m +CONFIG_DVB_CXD2099=m +CONFIG_DVB_CXD2820R=m +CONFIG_DVB_DDBRIDGE=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_DRXD=m +CONFIG_DVB_DRXK=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_INPUT=y +CONFIG_DVB_HOPPER=m +CONFIG_DVB_ISL6405=m +CONFIG_DVB_ISL6421=m +CONFIG_DVB_ISL6423=m +CONFIG_DVB_IT913X_FE=m +CONFIG_DVB_IX2505V=m +CONFIG_DVB_L64781=m +CONFIG_DVB_LG2160=m +CONFIG_DVB_LGDT3305=m +CONFIG_DVB_LGDT330X=m +CONFIG_DVB_LGS8GXX=m +CONFIG_DVB_LNBP21=m +CONFIG_DVB_LNBP22=m +CONFIG_DVB_M88RS2000=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_NET=y +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_RTL2830=m +CONFIG_DVB_RTL2832=m +CONFIG_DVB_S5H1409=m +CONFIG_DVB_S5H1411=m +CONFIG_DVB_S5H1420=m +CONFIG_DVB_S921=m +CONFIG_DVB_SI21XX=m +CONFIG_DVB_SP8870=m +CONFIG_DVB_SP887X=m +CONFIG_DVB_STB0899=m +CONFIG_DVB_STB6000=m +CONFIG_DVB_STB6100=m +CONFIG_DVB_STV0288=m +CONFIG_DVB_STV0297=m +CONFIG_DVB_STV0299=m +CONFIG_DVB_STV0367=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_TDA10071=m +CONFIG_DVB_TDA10086=m +CONFIG_DVB_TDA18271C2DD=m +CONFIG_DVB_TDA665x=m +CONFIG_DVB_TDA8083=m +CONFIG_DVB_TDA8261=m +CONFIG_DVB_TDA826X=m +CONFIG_DVB_TS2020=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_AF9035=m +CONFIG_DVB_USB_ANYSEE=m +CONFIG_DVB_USB_AU6610=m +CONFIG_DVB_USB_AZ6007=m +CONFIG_DVB_USB_AZ6027=m +CONFIG_DVB_USB_CE6230=m +CONFIG_DVB_USB_CINERGY_T2=m +CONFIG_DVB_USB_CXUSB=m +# CONFIG_DVB_USB_DEBUG is not set +CONFIG_DVB_USB_DIB0700=m +CONFIG_DVB_USB_DIBUSB_MB=m +# CONFIG_DVB_USB_DIBUSB_MB_FAULTY is not set +CONFIG_DVB_USB_DIBUSB_MC=m +CONFIG_DVB_USB_DIGITV=m +CONFIG_DVB_USB_DTT200U=m +CONFIG_DVB_USB_DTV5100=m +CONFIG_DVB_USB_DW2102=m +CONFIG_DVB_USB_EC168=m +CONFIG_DVB_USB_FRIIO=m +CONFIG_DVB_USB_GL861=m +CONFIG_DVB_USB_GP8PSK=m +CONFIG_DVB_USB_IT913X=m +CONFIG_DVB_USB_LME2510=m +CONFIG_DVB_USB_M920X=m +CONFIG_DVB_USB_MXL111SF=m +CONFIG_DVB_USB_NOVA_T_USB2=m +CONFIG_DVB_USB_OPERA1=m +CONFIG_DVB_USB_PCTV452E=m +CONFIG_DVB_USB_RTL28XXU=m +CONFIG_DVB_USB_TECHNISAT_USB2=m +CONFIG_DVB_USB_TTUSB2=m +CONFIG_DVB_USB_UMT_010=m +CONFIG_DVB_USB_V2=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_DW_APB_TIMER=y +CONFIG_DW_DMAC=m +CONFIG_DW_DMAC_CORE=m +CONFIG_DW_DMAC_PCI=m +CONFIG_DW_WATCHDOG=m +CONFIG_DX_SEP=m +CONFIG_DYNAMIC_DEBUG=y +CONFIG_DYNAMIC_FTRACE=y +CONFIG_DYNAMIC_FTRACE_WITH_REGS=y +CONFIG_E100=m +CONFIG_E1000=m +CONFIG_E1000E=m +CONFIG_EARLY_PRINTK=y +CONFIG_EARLY_PRINTK_DBGP=y +CONFIG_EARLY_PRINTK_INTEL_MID=y +CONFIG_ECHO=m +CONFIG_ECRYPT_FS=y +CONFIG_ECRYPT_FS_MESSAGING=y +CONFIG_EDAC=y +CONFIG_EDAC_AMD64=m +# CONFIG_EDAC_AMD64_ERROR_INJECTION is not set +CONFIG_EDAC_AMD76X=m +# CONFIG_EDAC_DEBUG is not set +CONFIG_EDAC_DECODE_MCE=m +CONFIG_EDAC_E752X=m +CONFIG_EDAC_E7XXX=m +CONFIG_EDAC_HIGHBANK_L2=m +CONFIG_EDAC_HIGHBANK_MC=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_LEGACY_SYSFS=y +CONFIG_EDAC_MCE_INJ=m +CONFIG_EDAC_MM_EDAC=m +CONFIG_EDAC_R82600=m +CONFIG_EDAC_SBRIDGE=m +CONFIG_EDAC_X38=m +CONFIG_EDD=y +CONFIG_EDD_OFF=y +CONFIG_EEEPC_LAPTOP=m +CONFIG_EEEPC_WMI=m +CONFIG_EEPROM_93CX6=m +CONFIG_EEPROM_93XX46=m +CONFIG_EEPROM_AT24=m +CONFIG_EEPROM_AT25=m +CONFIG_EEPROM_LEGACY=m +CONFIG_EEPROM_MAX6875=m +CONFIG_EFI=y +CONFIG_EFIVAR_FS=y +CONFIG_EFI_PARTITION=y +CONFIG_EFI_STUB=y +CONFIG_EFI_VARS=y +CONFIG_EFI_VARS_PSTORE=m +# CONFIG_EFI_VARS_PSTORE_DEFAULT_DISABLE is not set +CONFIG_EFS_FS=m +CONFIG_EISA=y +CONFIG_EISA_NAMES=y +CONFIG_EISA_PCI_EISA=y +CONFIG_EISA_VIRTUAL_ROOT=y +CONFIG_EISA_VLB_PRIMING=y +CONFIG_EL3=m +CONFIG_ELF_CORE=y +# CONFIG_EMBEDDED is not set +# CONFIG_ENABLE_MUST_CHECK is not set +# CONFIG_ENABLE_WARN_DEPRECATED is not set +CONFIG_ENC28J60=m +# CONFIG_ENC28J60_WRITEVERIFY is not set +CONFIG_ENCLOSURE_SERVICES=m +CONFIG_ENCRYPTED_KEYS=y +CONFIG_ENIC=m +CONFIG_EPIC100=m +CONFIG_EPOLL=y +CONFIG_EQUALIZER=m +CONFIG_ESI_DONGLE=m +CONFIG_ET131X=m +CONFIG_ETHERNET=y +CONFIG_ETHOC=m +CONFIG_EUROTECH_WDT=m +CONFIG_EVENTFD=y +CONFIG_EVENT_TRACING=y +CONFIG_EVM=y +CONFIG_EVM_HMAC_VERSION=2 +# CONFIG_EXOFS_DEBUG is not set +CONFIG_EXOFS_FS=m +CONFIG_EXPERT=y +CONFIG_EXPORTFS=y +CONFIG_EXT2_FS=m +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_EXTCON=y +CONFIG_EXTCON_ADC_JACK=m +CONFIG_EXTCON_ARIZONA=m +CONFIG_EXTCON_GPIO=m +CONFIG_EXTCON_MAX77693=m +CONFIG_EXTCON_MAX8997=m +CONFIG_EXTCON_PALMAS=m +CONFIG_EXTRA_FIRMWARE="" +CONFIG_EXYNOS_ADC=y +CONFIG_EXYNOS_VIDEO=y +CONFIG_F2FS_FS=m +CONFIG_F2FS_FS_POSIX_ACL=y +CONFIG_F2FS_FS_SECURITY=y +CONFIG_F2FS_FS_XATTR=y +CONFIG_F2FS_STAT_FS=y +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=y +# CONFIG_FAULT_INJECTION is not set +CONFIG_FB=y +CONFIG_FB_3DFX=m +# CONFIG_FB_3DFX_ACCEL is not set +# CONFIG_FB_3DFX_I2C is not set +CONFIG_FB_ARC=m +CONFIG_FB_ARK=m +CONFIG_FB_ARMCLCD=y +CONFIG_FB_ASILIANT=y +CONFIG_FB_ATY=m +CONFIG_FB_ATY128=m +CONFIG_FB_ATY128_BACKLIGHT=y +CONFIG_FB_ATY_BACKLIGHT=y +CONFIG_FB_ATY_CT=y +# CONFIG_FB_ATY_GENERIC_LCD is not set +CONFIG_FB_ATY_GX=y +CONFIG_FB_AUO_K1900=m +CONFIG_FB_AUO_K1901=m +CONFIG_FB_AUO_K190X=m +CONFIG_FB_BROADSHEET=m +CONFIG_FB_CARILLO_RANCH=m +CONFIG_FB_CARMINE=m +CONFIG_FB_CARMINE_DRAM_EVAL=y +CONFIG_FB_CFB_COPYAREA=y +CONFIG_FB_CFB_FILLRECT=y +CONFIG_FB_CFB_IMAGEBLIT=y +# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set +CONFIG_FB_CIRRUS=m +CONFIG_FB_CYBER2000=m +CONFIG_FB_CYBER2000_DDC=y +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_GOLDFISH=m +CONFIG_FB_HECUBA=m +CONFIG_FB_HGA=m +CONFIG_FB_HYPERV=m +CONFIG_FB_I740=m +CONFIG_FB_I810=m +# CONFIG_FB_I810_GTF is not set +CONFIG_FB_IMSTT=y +CONFIG_FB_INTEL=m +# CONFIG_FB_INTEL_DEBUG is not set +# CONFIG_FB_INTEL_I2C is not set +CONFIG_FB_KYRO=m +CONFIG_FB_LE80578=m +# CONFIG_FB_MACMODES is not set +CONFIG_FB_MATROX=m +CONFIG_FB_MATROX_G=y +CONFIG_FB_MATROX_I2C=m +CONFIG_FB_MATROX_MAVEN=m +CONFIG_FB_MATROX_MILLENIUM=y +CONFIG_FB_MATROX_MYSTIQUE=y +CONFIG_FB_MB862XX=m +CONFIG_FB_MB862XX_I2C=y +CONFIG_FB_MB862XX_PCI_GDC=y +CONFIG_FB_METRONOME=m +CONFIG_FB_MODE_HELPERS=y +CONFIG_FB_MX3=y +CONFIG_FB_N411=m +CONFIG_FB_NEOMAGIC=m +CONFIG_FB_NVIDIA=m +CONFIG_FB_NVIDIA_BACKLIGHT=y +# CONFIG_FB_NVIDIA_DEBUG is not set +CONFIG_FB_NVIDIA_I2C=y +CONFIG_FB_OMAP2=y +# CONFIG_FB_OMAP2_DEBUG_SUPPORT is not set +CONFIG_FB_OMAP2_NUM_FBS=3 +CONFIG_FB_PM2=m +CONFIG_FB_PM2_FIFO_DISCONNECT=y +CONFIG_FB_PM3=m +CONFIG_FB_RADEON=m +CONFIG_FB_RADEON_BACKLIGHT=y +# CONFIG_FB_RADEON_DEBUG is not set +CONFIG_FB_RADEON_I2C=y +CONFIG_FB_RIVA=m +CONFIG_FB_RIVA_BACKLIGHT=y +# CONFIG_FB_RIVA_DEBUG is not set +CONFIG_FB_RIVA_I2C=y +CONFIG_FB_S1D13XXX=m +CONFIG_FB_S3=m +CONFIG_FB_S3_DDC=y +CONFIG_FB_SAVAGE=m +# CONFIG_FB_SAVAGE_ACCEL is not set +# CONFIG_FB_SAVAGE_I2C is not set +CONFIG_FB_SIMPLE=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_SMSCUFX=m +CONFIG_FB_SSD1307=m +CONFIG_FB_SYS_FOPS=m +CONFIG_FB_TILEBLITTING=y +CONFIG_FB_TMIO=m +CONFIG_FB_TMIO_ACCELL=y +CONFIG_FB_TRIDENT=m +CONFIG_FB_UDL=m +CONFIG_FB_UVESA=m +CONFIG_FB_VESA=m +CONFIG_FB_VGA16=m +CONFIG_FB_VIA=m +# CONFIG_FB_VIA_DIRECT_PROCFS is not set +CONFIG_FB_VIA_X_COMPATIBILITY=y +# CONFIG_FB_VIRTUAL is not set +CONFIG_FB_VOODOO1=m +CONFIG_FB_VT8623=m +CONFIG_FB_XGI=m +CONFIG_FCOE=m +CONFIG_FCOE_FNIC=m +CONFIG_FDDI=y +CONFIG_FEALNX=m +CONFIG_FEC=y +CONFIG_FHANDLE=y +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_REMOTE_DMA is not set +CONFIG_FIREWIRE_SBP2=m +CONFIG_FIREWIRE_SERIAL=m +CONFIG_FIRMWARE_EDID=y +CONFIG_FIRMWARE_IN_KERNEL=y +CONFIG_FIRMWARE_MEMMAP=y +CONFIG_FIXED_PHY=y +CONFIG_FIX_EARLYCON_MEM=y +CONFIG_FLATMEM=y +CONFIG_FLATMEM_MANUAL=y +CONFIG_FLAT_NODE_MEM_MAP=y +CONFIG_FMC=m +CONFIG_FMC_CHARDEV=m +CONFIG_FMC_FAKEDEV=m +CONFIG_FMC_TRIVIAL=m +CONFIG_FMC_WRITE_EEPROM=m +# 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_FONT_SUPPORT=y +CONFIG_FORCEDETH=m +CONFIG_FORCE_MAX_ZONEORDER=11 +# CONFIG_FPE_FASTFPE is not set +CONFIG_FPE_NWFPE=y +# CONFIG_FPE_NWFPE_XP is not set +CONFIG_FRAMEBUFFER_CONSOLE=y +CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y +# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set +CONFIG_FRAME_POINTER=y +CONFIG_FRAME_WARN=1024 +CONFIG_FREEZER=y +CONFIG_FRONTSWAP=y +CONFIG_FSCACHE=m +# CONFIG_FSCACHE_DEBUG is not set +# CONFIG_FSCACHE_HISTOGRAM is not set +# CONFIG_FSCACHE_OBJECT_LIST is not set +CONFIG_FSCACHE_STATS=y +CONFIG_FSNOTIFY=y +CONFIG_FS_MBCACHE=y +CONFIG_FS_POSIX_ACL=y +CONFIG_FT1000=m +CONFIG_FT1000_PCMCIA=m +CONFIG_FT1000_USB=m +CONFIG_FTGMAC100=m +CONFIG_FTL=m +CONFIG_FTMAC100=m +CONFIG_FTRACE=y +CONFIG_FTRACE_MCOUNT_RECORD=y +# CONFIG_FTRACE_STARTUP_TEST is not set +CONFIG_FTRACE_SYSCALLS=y +CONFIG_FUJITSU_LAPTOP=m +# CONFIG_FUJITSU_LAPTOP_DEBUG is not set +CONFIG_FUJITSU_TABLET=m +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_FW_LOADER_USER_HELPER=y +CONFIG_GACT_PROB=y +CONFIG_GADGET_UAC1=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_GENERIC_ACL=y +CONFIG_GENERIC_ADC_BATTERY=m +CONFIG_GENERIC_ALLOCATOR=y +CONFIG_GENERIC_BUG=y +CONFIG_GENERIC_BUG_RELATIVE_POINTERS=y +CONFIG_GENERIC_CALIBRATE_DELAY=y +CONFIG_GENERIC_CLOCKEVENTS=y +CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y +CONFIG_GENERIC_CLOCKEVENTS_BUILD=y +CONFIG_GENERIC_CLOCKEVENTS_MIN_ADJUST=y +CONFIG_GENERIC_CMOS_UPDATE=y +CONFIG_GENERIC_CPU=y +CONFIG_GENERIC_CPUFREQ_CPU0=y +# CONFIG_GENERIC_CPU_DEVICES is not set +CONFIG_GENERIC_FIND_FIRST_BIT=y +CONFIG_GENERIC_HARDIRQS=y +CONFIG_GENERIC_HWEIGHT=y +CONFIG_GENERIC_IDLE_POLL_SETUP=y +CONFIG_GENERIC_IO=y +CONFIG_GENERIC_IOMAP=y +CONFIG_GENERIC_IRQ_CHIP=y +CONFIG_GENERIC_IRQ_PROBE=y +CONFIG_GENERIC_IRQ_SHOW=y +CONFIG_GENERIC_ISA_DMA=y +CONFIG_GENERIC_NET_UTILS=y +CONFIG_GENERIC_PCI_IOMAP=y +CONFIG_GENERIC_PENDING_IRQ=y +CONFIG_GENERIC_PINCONF=y +CONFIG_GENERIC_SCHED_CLOCK=y +CONFIG_GENERIC_SMP_IDLE_THREAD=y +CONFIG_GENERIC_STRNCPY_FROM_USER=y +CONFIG_GENERIC_STRNLEN_USER=y +CONFIG_GENERIC_TIME_VSYSCALL=y +CONFIG_GENERIC_TRACER=y +CONFIG_GEOS=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_GOOGLE_FIRMWARE is not set +CONFIG_GPIOLIB=y +CONFIG_GPIO_74X164=m +CONFIG_GPIO_ACPI=y +CONFIG_GPIO_ADNP=m +CONFIG_GPIO_ADP5520=m +CONFIG_GPIO_ADP5588=m +CONFIG_GPIO_AMD8111=m +CONFIG_GPIO_ARIZONA=m +CONFIG_GPIO_CS5535=m +CONFIG_GPIO_DA9052=m +CONFIG_GPIO_DA9055=m +CONFIG_GPIO_DEVRES=y +# CONFIG_GPIO_EM is not set +CONFIG_GPIO_GENERIC_PLATFORM=m +CONFIG_GPIO_GRGPIO=m +CONFIG_GPIO_ICH=m +CONFIG_GPIO_INTEL_PMIC=y +CONFIG_GPIO_IT8761E=m +CONFIG_GPIO_JANZ_TTL=m +CONFIG_GPIO_LANGWELL=y +CONFIG_GPIO_LYNXPOINT=y +CONFIG_GPIO_MAX7300=m +CONFIG_GPIO_MAX7301=m +CONFIG_GPIO_MAX730X=m +CONFIG_GPIO_MAX732X=m +CONFIG_GPIO_MC33880=m +CONFIG_GPIO_MCP23S08=m +CONFIG_GPIO_ML_IOH=m +CONFIG_GPIO_MSIC=y +CONFIG_GPIO_MXC=y +CONFIG_GPIO_PALMAS=y +CONFIG_GPIO_PCA953X=m +CONFIG_GPIO_PCF857X=m +CONFIG_GPIO_PCH=m +CONFIG_GPIO_PL061=y +CONFIG_GPIO_RC5T583=y +CONFIG_GPIO_RCAR=m +CONFIG_GPIO_RDC321X=m +CONFIG_GPIO_SCH=m +CONFIG_GPIO_STMPE=y +CONFIG_GPIO_SX150X=y +# CONFIG_GPIO_SYSFS is not set +CONFIG_GPIO_TC3589X=y +CONFIG_GPIO_TIMBERDALE=y +CONFIG_GPIO_TPS6586X=y +CONFIG_GPIO_TPS65910=y +CONFIG_GPIO_TPS65912=m +CONFIG_GPIO_TS5500=m +CONFIG_GPIO_TWL4030=y +CONFIG_GPIO_UCB1400=y +CONFIG_GPIO_VIPERBOARD=m +CONFIG_GPIO_VX855=m +CONFIG_GPIO_WM831X=m +CONFIG_GPIO_WM8350=m +CONFIG_GPIO_WM8994=m +CONFIG_GREENASIA_FF=y +CONFIG_HAMACHI=m +CONFIG_HAMRADIO=y +CONFIG_HANGCHECK_TIMER=m +CONFIG_HAPPYMEAL=m +CONFIG_HARDIRQS_SW_RESEND=y +CONFIG_HARDLOCKUP_DETECTOR=y +CONFIG_HAS_DMA=y +CONFIG_HAS_IOMEM=y +CONFIG_HAS_IOPORT=y +# CONFIG_HAVE_64BIT_ALIGNED_ACCESS is not set +CONFIG_HAVE_ALIGNED_STRUCT_PAGE=y +CONFIG_HAVE_ARCH_JUMP_LABEL=y +CONFIG_HAVE_ARCH_KGDB=y +CONFIG_HAVE_ARCH_KMEMCHECK=y +CONFIG_HAVE_ARCH_PFN_VALID=y +CONFIG_HAVE_ARCH_SECCOMP_FILTER=y +CONFIG_HAVE_ARCH_SOFT_DIRTY=y +CONFIG_HAVE_ARCH_TRACEHOOK=y +CONFIG_HAVE_ARCH_TRANSPARENT_HUGEPAGE=y +CONFIG_HAVE_ARM_ARCH_TIMER=y +CONFIG_HAVE_ARM_SCU=y +CONFIG_HAVE_ARM_TWD=y +CONFIG_HAVE_ATOMIC_IOMAP=y +CONFIG_HAVE_BPF_JIT=y +CONFIG_HAVE_CLK=y +CONFIG_HAVE_CLK_PREPARE=y +CONFIG_HAVE_CMPXCHG_DOUBLE=y +CONFIG_HAVE_CMPXCHG_LOCAL=y +CONFIG_HAVE_CONTEXT_TRACKING=y +CONFIG_HAVE_C_RECORDMCOUNT=y +CONFIG_HAVE_DEBUG_KMEMLEAK=y +CONFIG_HAVE_DEBUG_STACKOVERFLOW=y +CONFIG_HAVE_DMA_API_DEBUG=y +CONFIG_HAVE_DMA_ATTRS=y +CONFIG_HAVE_DMA_CONTIGUOUS=y +CONFIG_HAVE_DYNAMIC_FTRACE=y +CONFIG_HAVE_DYNAMIC_FTRACE_WITH_REGS=y +CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y +CONFIG_HAVE_FENTRY=y +CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y +CONFIG_HAVE_FUNCTION_GRAPH_FP_TEST=y +CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y +CONFIG_HAVE_FUNCTION_TRACER=y +CONFIG_HAVE_FUNCTION_TRACE_MCOUNT_TEST=y +CONFIG_HAVE_GENERIC_HARDIRQS=y +CONFIG_HAVE_HW_BREAKPOINT=y +CONFIG_HAVE_IDE=y +CONFIG_HAVE_IMX_ANATOP=y +CONFIG_HAVE_IMX_GPC=y +CONFIG_HAVE_IMX_MMDC=y +CONFIG_HAVE_IMX_SRC=y +CONFIG_HAVE_INTEL_TXT=y +CONFIG_HAVE_IOREMAP_PROT=y +CONFIG_HAVE_IRQ_TIME_ACCOUNTING=y +CONFIG_HAVE_KERNEL_BZIP2=y +CONFIG_HAVE_KERNEL_GZIP=y +CONFIG_HAVE_KERNEL_LZ4=y +CONFIG_HAVE_KERNEL_LZMA=y +CONFIG_HAVE_KERNEL_LZO=y +CONFIG_HAVE_KERNEL_XZ=y +CONFIG_HAVE_KPROBES=y +CONFIG_HAVE_KPROBES_ON_FTRACE=y +CONFIG_HAVE_KRETPROBES=y +CONFIG_HAVE_KVM=y +CONFIG_HAVE_KVM_CPU_RELAX_INTERCEPT=y +CONFIG_HAVE_KVM_EVENTFD=y +CONFIG_HAVE_KVM_IRQCHIP=y +CONFIG_HAVE_KVM_IRQ_ROUTING=y +CONFIG_HAVE_KVM_MSI=y +CONFIG_HAVE_LATENCYTOP_SUPPORT=y +CONFIG_HAVE_MEMBLOCK=y +CONFIG_HAVE_MEMBLOCK_NODE_MAP=y +CONFIG_HAVE_MEMORY_PRESENT=y +CONFIG_HAVE_MIXED_BREAKPOINTS_REGS=y +CONFIG_HAVE_MMIOTRACE_SUPPORT=y +CONFIG_HAVE_MOD_ARCH_SPECIFIC=y +CONFIG_HAVE_NET_DSA=y +CONFIG_HAVE_OPROFILE=y +CONFIG_HAVE_OPTPROBES=y +CONFIG_HAVE_PATA_PLATFORM=y +CONFIG_HAVE_PCSPKR_PLATFORM=y +CONFIG_HAVE_PERF_EVENTS=y +CONFIG_HAVE_PERF_EVENTS_NMI=y +CONFIG_HAVE_PERF_REGS=y +CONFIG_HAVE_PERF_USER_STACK_DUMP=y +CONFIG_HAVE_PROC_CPU=y +CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y +CONFIG_HAVE_SETUP_PER_CPU_AREA=y +CONFIG_HAVE_SMP=y +CONFIG_HAVE_SYSCALL_TRACEPOINTS=y +CONFIG_HAVE_TEXT_POKE_SMP=y +CONFIG_HAVE_UID16=y +CONFIG_HAVE_UNSTABLE_SCHED_CLOCK=y +CONFIG_HAVE_USER_RETURN_NOTIFIER=y +CONFIG_HDLC=m +CONFIG_HDLC_CISCO=m +CONFIG_HDLC_FR=m +CONFIG_HDLC_PPP=m +CONFIG_HDLC_RAW=m +CONFIG_HDLC_RAW_ETH=m +CONFIG_HDLC_X25=m +CONFIG_HDMI=y +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_HIBERNATE_CALLBACKS=y +CONFIG_HIBERNATION=y +CONFIG_HID=m +CONFIG_HIDRAW=y +CONFIG_HID_A4TECH=m +CONFIG_HID_ACRUX=m +CONFIG_HID_ACRUX_FF=y +CONFIG_HID_APPLE=m +CONFIG_HID_APPLEIR=m +CONFIG_HID_AUREAL=m +CONFIG_HID_BATTERY_STRENGTH=y +CONFIG_HID_BELKIN=m +CONFIG_HID_CHERRY=m +CONFIG_HID_CHICONY=m +CONFIG_HID_CYPRESS=m +CONFIG_HID_DRAGONRISE=m +CONFIG_HID_ELECOM=m +CONFIG_HID_ELO=m +CONFIG_HID_EMS_FF=m +CONFIG_HID_EZKEY=m +CONFIG_HID_GENERIC=m +CONFIG_HID_GREENASIA=m +CONFIG_HID_GYRATION=m +CONFIG_HID_HOLTEK=m +CONFIG_HID_HUION=m +CONFIG_HID_HYPERV_MOUSE=m +CONFIG_HID_ICADE=m +CONFIG_HID_KENSINGTON=m +CONFIG_HID_KEYTOUCH=m +CONFIG_HID_KYE=m +CONFIG_HID_LCPOWER=m +CONFIG_HID_LENOVO_TPKBD=m +CONFIG_HID_LOGITECH=m +CONFIG_HID_LOGITECH_DJ=m +CONFIG_HID_MAGICMOUSE=m +CONFIG_HID_MICROSOFT=m +CONFIG_HID_MONTEREY=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_CIR=y +CONFIG_HID_PICOLCD_FB=y +CONFIG_HID_PICOLCD_LCD=y +CONFIG_HID_PICOLCD_LEDS=y +CONFIG_HID_PID=y +CONFIG_HID_PRIMAX=m +CONFIG_HID_PRODIKEYS=m +CONFIG_HID_ROCCAT=m +CONFIG_HID_SAITEK=m +CONFIG_HID_SAMSUNG=m +CONFIG_HID_SENSOR_ACCEL_3D=m +CONFIG_HID_SENSOR_ALS=m +# CONFIG_HID_SENSOR_ENUM_BASE_QUIRKS is not set +CONFIG_HID_SENSOR_GYRO_3D=m +CONFIG_HID_SENSOR_HUB=m +CONFIG_HID_SENSOR_IIO_COMMON=m +CONFIG_HID_SENSOR_IIO_TRIGGER=m +CONFIG_HID_SENSOR_MAGNETOMETER_3D=m +CONFIG_HID_SMARTJOYPLUS=m +CONFIG_HID_SONY=m +CONFIG_HID_SPEEDLINK=m +CONFIG_HID_STEELSERIES=m +CONFIG_HID_SUNPLUS=m +CONFIG_HID_THINGM=m +CONFIG_HID_THRUSTMASTER=m +CONFIG_HID_TIVO=m +CONFIG_HID_TOPSEED=m +CONFIG_HID_TWINHAN=m +CONFIG_HID_UCLOGIC=m +CONFIG_HID_WACOM=m +CONFIG_HID_WALTOP=m +CONFIG_HID_WIIMOTE=m +CONFIG_HID_ZEROPLUS=m +CONFIG_HID_ZYDACRON=m +CONFIG_HIGHMEM=y +# CONFIG_HIGHMEM4G is not set +CONFIG_HIGHMEM64G=y +CONFIG_HIGHPTE=y +CONFIG_HIGH_RES_TIMERS=y +# CONFIG_HIPPI is not set +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_HOLTEK_FF=y +CONFIG_HOSTAP=m +CONFIG_HOSTAP_CS=m +CONFIG_HOSTAP_FIRMWARE=y +CONFIG_HOSTAP_FIRMWARE_NVRAM=y +CONFIG_HOSTAP_PCI=m +CONFIG_HOSTAP_PLX=m +CONFIG_HOSTESS_SV11=m +CONFIG_HOTPLUG_CPU=y +CONFIG_HOTPLUG_PCI=y +CONFIG_HOTPLUG_PCI_ACPI=y +CONFIG_HOTPLUG_PCI_ACPI_IBM=m +CONFIG_HOTPLUG_PCI_COMPAQ=m +CONFIG_HOTPLUG_PCI_COMPAQ_NVRAM=y +CONFIG_HOTPLUG_PCI_CPCI=y +CONFIG_HOTPLUG_PCI_CPCI_GENERIC=m +CONFIG_HOTPLUG_PCI_CPCI_ZT5550=m +CONFIG_HOTPLUG_PCI_IBM=m +CONFIG_HOTPLUG_PCI_PCIE=y +CONFIG_HOTPLUG_PCI_SHPC=m +CONFIG_HP100=m +CONFIG_HPET=y +CONFIG_HPET_EMULATE_RTC=y +CONFIG_HPET_MMAP=y +CONFIG_HPET_TIMER=y +CONFIG_HPFS_FS=m +CONFIG_HPWDT_NMI_DECODING=y +CONFIG_HP_ACCEL=m +CONFIG_HP_ILO=m +CONFIG_HP_WATCHDOG=m +CONFIG_HP_WMI=m +CONFIG_HSI=m +CONFIG_HSI_BOARDINFO=y +CONFIG_HSI_CHAR=m +CONFIG_HTC_EGPIO=y +CONFIG_HTC_I2CPLD=y +CONFIG_HTC_PASIC3=m +CONFIG_HT_IRQ=y +CONFIG_HUGETLBFS=y +CONFIG_HVC_DCC=y +CONFIG_HVC_DRIVER=y +CONFIG_HVC_IRQ=y +CONFIG_HVC_XEN=y +CONFIG_HVC_XEN_FRONTEND=y +CONFIG_HWMON=y +# CONFIG_HWMON_DEBUG_CHIP is not set +CONFIG_HWMON_VID=m +CONFIG_HWPOISON_INJECT=m +# CONFIG_HWSPINLOCK_OMAP is not set +CONFIG_HW_CONSOLE=y +CONFIG_HW_PERF_EVENTS=y +CONFIG_HW_RANDOM=y +CONFIG_HW_RANDOM_AMD=m +# CONFIG_HW_RANDOM_ATMEL is not set +CONFIG_HW_RANDOM_EXYNOS=m +CONFIG_HW_RANDOM_GEODE=m +CONFIG_HW_RANDOM_INTEL=m +CONFIG_HW_RANDOM_TIMERIOMEM=m +CONFIG_HW_RANDOM_TPM=m +CONFIG_HW_RANDOM_VIA=m +CONFIG_HW_RANDOM_VIRTIO=m +CONFIG_HYPERV=m +CONFIG_HYPERVISOR_GUEST=y +CONFIG_HYPERV_BALLOON=m +CONFIG_HYPERV_NET=m +CONFIG_HYPERV_STORAGE=m +CONFIG_HYPERV_UTILS=m +CONFIG_HYSDN=m +CONFIG_HYSDN_CAPI=y +# CONFIG_HZ_100 is not set +# CONFIG_HZ_1000 is not set +CONFIG_HZ_250=y +# CONFIG_HZ_300 is not set +# CONFIG_HZ_PERIODIC is not set +CONFIG_I2C=y +CONFIG_I2C_ALGOBIT=m +CONFIG_I2C_ALGOPCA=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_ARB_GPIO_CHALLENGE=m +CONFIG_I2C_BOARDINFO=y +CONFIG_I2C_CBUS_GPIO=m +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_CORE=m +CONFIG_I2C_DESIGNWARE_PCI=m +CONFIG_I2C_DESIGNWARE_PLATFORM=m +CONFIG_I2C_DIOLAN_U2C=m +CONFIG_I2C_EG20T=m +CONFIG_I2C_GPIO=m +CONFIG_I2C_HELPER_AUTO=y +CONFIG_I2C_HID=m +CONFIG_I2C_I801=m +CONFIG_I2C_IMX=y +CONFIG_I2C_ISCH=m +CONFIG_I2C_ISMT=m +CONFIG_I2C_KEMPLD=m +CONFIG_I2C_MUX=m +CONFIG_I2C_MUX_GPIO=m +CONFIG_I2C_MUX_PCA9541=m +CONFIG_I2C_MUX_PCA954x=m +CONFIG_I2C_MUX_PINCTRL=m +CONFIG_I2C_NFORCE2=m +CONFIG_I2C_NFORCE2_S4985=m +CONFIG_I2C_NOMADIK=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_PXA_PCI is not set +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_TEGRA=m +CONFIG_I2C_TINY_USB=m +CONFIG_I2C_VERSATILE=m +CONFIG_I2C_VIA=m +CONFIG_I2C_VIAPRO=m +CONFIG_I2C_VIPERBOARD=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 is not set +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_I8253_LOCK=y +CONFIG_I8K=m +# CONFIG_IA32_AOUT is not set +CONFIG_IA32_EMULATION=y +CONFIG_IB700_WDT=m +CONFIG_IBMASR=m +CONFIG_IBM_ASM=m +CONFIG_IBM_RTL=m +CONFIG_ICPLUS_PHY=y +CONFIG_ICS932S401=m +CONFIG_ICST=y +# CONFIG_IDE is not set +CONFIG_IDEAPAD_LAPTOP=m +CONFIG_IDE_PHISON=m +CONFIG_IE6XX_WDT=m +CONFIG_IEEE802154=m +CONFIG_IEEE802154_6LOWPAN=m +CONFIG_IEEE802154_AT86RF230=m +CONFIG_IEEE802154_DRIVERS=m +# CONFIG_IEEE802154_FAKEHARD is not set +CONFIG_IEEE802154_FAKELB=m +CONFIG_IEEE802154_MRF24J40=m +CONFIG_IFB=m +CONFIG_IGB=m +CONFIG_IGBVF=m +CONFIG_IGB_DCA=y +CONFIG_IGB_HWMON=y +CONFIG_IIO=m +CONFIG_IIO_ADIS_LIB=m +CONFIG_IIO_ADIS_LIB_BUFFER=y +CONFIG_IIO_BUFFER=y +CONFIG_IIO_BUFFER_CB=y +CONFIG_IIO_CONSUMERS_PER_TRIGGER=2 +CONFIG_IIO_INTERRUPT_TRIGGER=m +CONFIG_IIO_KFIFO_BUF=m +CONFIG_IIO_PERIODIC_RTC_TRIGGER=m +CONFIG_IIO_SIMPLE_DUMMY=m +# CONFIG_IIO_SIMPLE_DUMMY_BUFFER is not set +# CONFIG_IIO_SIMPLE_DUMMY_EVENTS is not set +CONFIG_IIO_ST_ACCEL_3AXIS=m +CONFIG_IIO_ST_ACCEL_I2C_3AXIS=m +CONFIG_IIO_ST_ACCEL_SPI_3AXIS=m +CONFIG_IIO_ST_GYRO_3AXIS=m +CONFIG_IIO_ST_GYRO_I2C_3AXIS=m +CONFIG_IIO_ST_GYRO_SPI_3AXIS=m +CONFIG_IIO_ST_MAGN_3AXIS=m +CONFIG_IIO_ST_MAGN_I2C_3AXIS=m +CONFIG_IIO_ST_MAGN_SPI_3AXIS=m +CONFIG_IIO_ST_PRESS=m +CONFIG_IIO_ST_PRESS_I2C=m +CONFIG_IIO_ST_PRESS_SPI=m +CONFIG_IIO_ST_SENSORS_CORE=m +CONFIG_IIO_ST_SENSORS_I2C=m +CONFIG_IIO_ST_SENSORS_SPI=m +CONFIG_IIO_SYSFS_TRIGGER=m +CONFIG_IIO_TRIGGER=y +CONFIG_IIO_TRIGGERED_BUFFER=m +# CONFIG_IKCONFIG is not set +# CONFIG_IMA is not set +# CONFIG_IMX2_WDT is not set +# CONFIG_IMX_DMA is not set +# CONFIG_IMX_SDMA is not set +CONFIG_IMX_WEIM=y +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=m +CONFIG_INET_ESP=m +CONFIG_INET_IPCOMP=m +CONFIG_INET_LRO=y +CONFIG_INET_TCP_DIAG=m +CONFIG_INET_TUNNEL=m +CONFIG_INET_UDP_DIAG=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 is not set +CONFIG_INFINIBAND_CXGB3=m +# CONFIG_INFINIBAND_CXGB3_DEBUG is not set +CONFIG_INFINIBAND_CXGB4=m +CONFIG_INFINIBAND_IPATH=m +CONFIG_INFINIBAND_IPOIB=m +CONFIG_INFINIBAND_IPOIB_CM=y +# CONFIG_INFINIBAND_IPOIB_DEBUG is not set +CONFIG_INFINIBAND_ISER=m +CONFIG_INFINIBAND_ISERT=m +CONFIG_INFINIBAND_MTHCA=m +# CONFIG_INFINIBAND_MTHCA_DEBUG is not set +CONFIG_INFINIBAND_NES=m +# CONFIG_INFINIBAND_NES_DEBUG is not set +CONFIG_INFINIBAND_OCRDMA=m +CONFIG_INFINIBAND_QIB=m +CONFIG_INFINIBAND_QIB_DCA=y +CONFIG_INFINIBAND_SRP=m +CONFIG_INFINIBAND_SRPT=m +CONFIG_INFINIBAND_USER_ACCESS=m +CONFIG_INFINIBAND_USER_MAD=m +CONFIG_INFINIBAND_USER_MEM=y +CONFIG_INFTL=m +CONFIG_INITRAMFS_SOURCE="" +CONFIG_INIT_ENV_ARG_LIMIT=32 +CONFIG_INLINE_READ_UNLOCK=y +CONFIG_INLINE_READ_UNLOCK_IRQ=y +CONFIG_INLINE_SPIN_UNLOCK_IRQ=y +CONFIG_INLINE_WRITE_UNLOCK=y +CONFIG_INLINE_WRITE_UNLOCK_IRQ=y +CONFIG_INOTIFY_USER=y +CONFIG_INPUT=y +CONFIG_INPUT_88PM80X_ONKEY=m +CONFIG_INPUT_88PM860X_ONKEY=m +CONFIG_INPUT_AD714X=m +CONFIG_INPUT_AD714X_I2C=m +CONFIG_INPUT_AD714X_SPI=m +CONFIG_INPUT_ADXL34X=m +CONFIG_INPUT_ADXL34X_I2C=m +CONFIG_INPUT_ADXL34X_SPI=m +CONFIG_INPUT_APANEL=m +CONFIG_INPUT_ARIZONA_HAPTICS=m +CONFIG_INPUT_ATI_REMOTE2=m +CONFIG_INPUT_ATLAS_BTNS=m +CONFIG_INPUT_BMA150=m +CONFIG_INPUT_CM109=m +CONFIG_INPUT_CMA3000=m +CONFIG_INPUT_CMA3000_I2C=m +CONFIG_INPUT_DA9052_ONKEY=m +CONFIG_INPUT_DA9055_ONKEY=m +CONFIG_INPUT_EVBUG=m +CONFIG_INPUT_EVDEV=y +CONFIG_INPUT_FF_MEMLESS=m +CONFIG_INPUT_GP2A=m +CONFIG_INPUT_GPIO_ROTARY_ENCODER=m +CONFIG_INPUT_GPIO_TILT_POLLED=m +CONFIG_INPUT_IMS_PCU=m +CONFIG_INPUT_JOYDEV=m +CONFIG_INPUT_JOYSTICK=y +CONFIG_INPUT_KEYBOARD=y +CONFIG_INPUT_KEYSPAN_REMOTE=m +CONFIG_INPUT_KXTJ9=m +# CONFIG_INPUT_KXTJ9_POLLED_MODE is not set +CONFIG_INPUT_MATRIXKMAP=m +CONFIG_INPUT_MAX8925_ONKEY=m +CONFIG_INPUT_MC13783_PWRBUTTON=m +CONFIG_INPUT_MISC=y +CONFIG_INPUT_MMA8450=m +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_MPU3050=m +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_RETU_PWRBUTTON=m +CONFIG_INPUT_SPARSEKMAP=m +CONFIG_INPUT_TABLET=y +CONFIG_INPUT_TOUCHSCREEN=y +CONFIG_INPUT_TWL4030_PWRBUTTON=m +CONFIG_INPUT_TWL4030_VIBRA=m +CONFIG_INPUT_TWL6040_VIBRA=m +CONFIG_INPUT_UINPUT=y +CONFIG_INPUT_WISTRON_BTNS=m +CONFIG_INPUT_WM831X_ON=m +CONFIG_INPUT_XEN_KBDDEV_FRONTEND=m +CONFIG_INPUT_YEALINK=m +CONFIG_INSTRUCTION_DECODER=y +CONFIG_INTEGRITY=y +CONFIG_INTEGRITY_ASYMMETRIC_KEYS=y +CONFIG_INTEGRITY_AUDIT=y +CONFIG_INTEGRITY_SIGNATURE=y +CONFIG_INTEL_IDLE=y +CONFIG_INTEL_IOATDMA=m +CONFIG_INTEL_IOMMU=y +# CONFIG_INTEL_IOMMU_DEFAULT_ON is not set +CONFIG_INTEL_IOMMU_FLOPPY_WA=y +CONFIG_INTEL_IPS=m +CONFIG_INTEL_MEI=m +CONFIG_INTEL_MEI_ME=m +CONFIG_INTEL_MENLOW=m +CONFIG_INTEL_MFLD_THERMAL=m +CONFIG_INTEL_MID_DMAC=m +CONFIG_INTEL_MID_POWER_BUTTON=m +CONFIG_INTEL_MID_PTI=m +CONFIG_INTEL_OAKTRAIL=m +CONFIG_INTEL_POWERCLAMP=m +CONFIG_INTEL_RST=m +CONFIG_INTEL_SCU_IPC=y +CONFIG_INTEL_SCU_IPC_UTIL=m +CONFIG_INTEL_SCU_WATCHDOG=y +CONFIG_INTEL_SMARTCONNECT=m +CONFIG_INTEL_TXT=y +CONFIG_INTERVAL_TREE_TEST=m +CONFIG_INV_MPU6050_IIO=m +CONFIG_IOMMU_API=y +# CONFIG_IOMMU_DEBUG is not set +CONFIG_IOMMU_HELPER=y +# CONFIG_IOMMU_STRESS is not set +CONFIG_IOMMU_SUPPORT=y +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_RPFILTER=m +CONFIG_IP6_NF_MATCH_RT=m +CONFIG_IP6_NF_RAW=m +CONFIG_IP6_NF_SECURITY=m +CONFIG_IP6_NF_TARGET_HL=m +CONFIG_IP6_NF_TARGET_MASQUERADE=m +CONFIG_IP6_NF_TARGET_NPT=m +CONFIG_IP6_NF_TARGET_REJECT=m +CONFIG_IPACK_BUS=m +CONFIG_IPC_NS=y +CONFIG_IPDDP=m +CONFIG_IPDDP_ENCAP=y +CONFIG_IPMI_DEVICE_INTERFACE=m +CONFIG_IPMI_HANDLER=m +# CONFIG_IPMI_PANIC_EVENT is not set +CONFIG_IPMI_POWEROFF=m +CONFIG_IPMI_SI=m +CONFIG_IPMI_WATCHDOG=m +CONFIG_IPPP_FILTER=y +CONFIG_IPV6=y +CONFIG_IPV6_GRE=m +CONFIG_IPV6_MIP6=m +CONFIG_IPV6_MROUTE=y +CONFIG_IPV6_MROUTE_MULTIPLE_TABLES=y +CONFIG_IPV6_MULTIPLE_TABLES=y +CONFIG_IPV6_NDISC_NODETYPE=y +# CONFIG_IPV6_OPTIMISTIC_DAD is not set +CONFIG_IPV6_PIMSM_V2=y +CONFIG_IPV6_PRIVACY=y +CONFIG_IPV6_ROUTER_PREF=y +CONFIG_IPV6_ROUTE_INFO=y +CONFIG_IPV6_SIT=m +CONFIG_IPV6_SIT_6RD=y +CONFIG_IPV6_SUBTREES=y +CONFIG_IPV6_TUNNEL=m +CONFIG_IPW2100=m +# CONFIG_IPW2100_DEBUG is not set +CONFIG_IPW2100_MONITOR=y +CONFIG_IPW2200=m +# CONFIG_IPW2200_DEBUG is not set +CONFIG_IPW2200_MONITOR=y +CONFIG_IPW2200_PROMISCUOUS=y +CONFIG_IPW2200_QOS=y +CONFIG_IPW2200_RADIOTAP=y +CONFIG_IPWIRELESS=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 is not set +# CONFIG_IP_DCCP_DEBUG is not set +CONFIG_IP_FIB_TRIE_STATS=y +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_AH=m +CONFIG_IP_NF_MATCH_ECN=m +CONFIG_IP_NF_MATCH_RPFILTER=m +CONFIG_IP_NF_MATCH_TTL=m +CONFIG_IP_NF_RAW=m +CONFIG_IP_NF_SECURITY=m +CONFIG_IP_NF_TARGET_CLUSTERIP=m +CONFIG_IP_NF_TARGET_ECN=m +CONFIG_IP_NF_TARGET_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=y +# CONFIG_IP_PNP_BOOTP is not set +CONFIG_IP_PNP_DHCP=y +# CONFIG_IP_PNP_RARP is not set +CONFIG_IP_ROUTE_CLASSID=y +CONFIG_IP_ROUTE_MULTIPATH=y +CONFIG_IP_ROUTE_VERBOSE=y +CONFIG_IP_SCTP=m +CONFIG_IP_SET=m +CONFIG_IP_SET_BITMAP_IP=m +CONFIG_IP_SET_BITMAP_IPMAC=m +CONFIG_IP_SET_BITMAP_PORT=m +CONFIG_IP_SET_HASH_IP=m +CONFIG_IP_SET_HASH_IPPORT=m +CONFIG_IP_SET_HASH_IPPORTIP=m +CONFIG_IP_SET_HASH_IPPORTNET=m +CONFIG_IP_SET_HASH_NET=m +CONFIG_IP_SET_HASH_NETIFACE=m +CONFIG_IP_SET_HASH_NETPORT=m +CONFIG_IP_SET_LIST_SET=m +CONFIG_IP_SET_MAX=256 +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 is not set +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_SH_TAB_BITS=8 +CONFIG_IP_VS_TAB_BITS=12 +CONFIG_IP_VS_WLC=m +CONFIG_IP_VS_WRR=m +CONFIG_IRCOMM=m +CONFIG_IRDA=m +CONFIG_IRDA_CACHE_LAST_LSAP=y +# CONFIG_IRDA_DEBUG is not set +CONFIG_IRDA_FAST_RR=y +CONFIG_IRDA_ULTRA=y +CONFIG_IRLAN=m +CONFIG_IRNET=m +CONFIG_IRQCHIP=y +# CONFIG_IRQSOFF_TRACER is not set +CONFIG_IRQ_DOMAIN=y +# CONFIG_IRQ_DOMAIN_DEBUG is not set +CONFIG_IRQ_FORCED_THREADING=y +CONFIG_IRQ_REMAP=y +# CONFIG_IRQ_TIME_ACCOUNTING is not set +CONFIG_IRQ_WORK=y +CONFIG_IRTTY_SIR=m +CONFIG_IR_ENE=m +CONFIG_IR_FINTEK=m +CONFIG_IR_GPIO_CIR=m +CONFIG_IR_IGUANA=m +CONFIG_IR_IMON=m +CONFIG_IR_ITE_CIR=m +CONFIG_IR_JVC_DECODER=m +CONFIG_IR_LIRC_CODEC=m +CONFIG_IR_MCEUSB=m +CONFIG_IR_MCE_KBD_DECODER=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_REDRAT3=m +CONFIG_IR_SANYO_DECODER=m +CONFIG_IR_SONY_DECODER=m +CONFIG_IR_STREAMZAP=m +CONFIG_IR_TTUSBIR=m +CONFIG_IR_WINBOND_CIR=m +CONFIG_ISA=y +CONFIG_ISAPNP=y +CONFIG_ISA_DMA_API=y +CONFIG_ISCSI_BOOT_SYSFS=m +CONFIG_ISCSI_IBFT=m +CONFIG_ISCSI_IBFT_FIND=y +CONFIG_ISCSI_TARGET=m +CONFIG_ISCSI_TCP=m +CONFIG_ISDN=y +CONFIG_ISDN_AUDIO=y +CONFIG_ISDN_CAPI=m +CONFIG_ISDN_CAPI_CAPI20=m +CONFIG_ISDN_CAPI_CAPIDRV=m +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_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=m +CONFIG_ISL29003=m +CONFIG_ISL29020=m +CONFIG_ISO9660_FS=m +CONFIG_IT8712F_WDT=m +CONFIG_IT87_WDT=m +CONFIG_ITCO_VENDOR_SUPPORT=y +CONFIG_ITCO_WDT=m +CONFIG_ITG3200=m +CONFIG_IWL3945=m +CONFIG_IWL4965=m +CONFIG_IWLDVM=m +CONFIG_IWLEGACY=m +# CONFIG_IWLEGACY_DEBUG is not set +CONFIG_IWLEGACY_DEBUGFS=y +CONFIG_IWLMVM=m +CONFIG_IWLWIFI=m +# CONFIG_IWLWIFI_DEBUG is not set +CONFIG_IWLWIFI_DEBUGFS=y +CONFIG_IWLWIFI_DEVICE_TRACING=y +CONFIG_IWLWIFI_OPMODE_MODULAR=y +# CONFIG_IWLWIFI_P2P is not set +CONFIG_IXGB=m +CONFIG_IXGBE=m +CONFIG_IXGBEVF=m +CONFIG_IXGBE_DCA=y +CONFIG_IXGBE_DCB=y +CONFIG_IXGBE_HWMON=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_KARMA_PARTITION=y +CONFIG_KDB_CONTINUE_CATASTROPHIC=0 +CONFIG_KDB_KEYBOARD=y +CONFIG_KEMPLD_WDT=m +# CONFIG_KERNEL_BZIP2 is not set +CONFIG_KERNEL_GZIP=y +# CONFIG_KERNEL_LZ4 is not set +# 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_ADP5589=m +CONFIG_KEYBOARD_ATKBD=y +CONFIG_KEYBOARD_CROS_EC=m +CONFIG_KEYBOARD_GPIO=m +CONFIG_KEYBOARD_GPIO_POLLED=m +# CONFIG_KEYBOARD_IMX is not set +CONFIG_KEYBOARD_LKKBD=m +CONFIG_KEYBOARD_LM8323=m +CONFIG_KEYBOARD_LM8333=m +CONFIG_KEYBOARD_MATRIX=m +CONFIG_KEYBOARD_MAX7359=m +CONFIG_KEYBOARD_MCS=m +CONFIG_KEYBOARD_MPR121=m +CONFIG_KEYBOARD_NEWTON=m +CONFIG_KEYBOARD_NVEC=m +CONFIG_KEYBOARD_OMAP4=m +CONFIG_KEYBOARD_OPENCORES=m +CONFIG_KEYBOARD_QT1070=m +CONFIG_KEYBOARD_QT2160=m +CONFIG_KEYBOARD_SAMSUNG=m +CONFIG_KEYBOARD_STMPE=m +CONFIG_KEYBOARD_STOWAWAY=m +CONFIG_KEYBOARD_SUNKBD=m +CONFIG_KEYBOARD_TC3589X=m +CONFIG_KEYBOARD_TCA6416=m +CONFIG_KEYBOARD_TCA8418=m +CONFIG_KEYBOARD_TEGRA=m +CONFIG_KEYBOARD_TWL4030=m +CONFIG_KEYBOARD_XTKBD=m +CONFIG_KEYS=y +CONFIG_KEYS_COMPAT=y +# CONFIG_KEYS_DEBUG_PROC_KEYS is not set +CONFIG_KGDB=y +CONFIG_KGDB_KDB=y +CONFIG_KGDB_LOW_LEVEL_TRAP=y +CONFIG_KGDB_SERIAL_CONSOLE=y +# CONFIG_KGDB_TESTS is not set +CONFIG_KINGSUN_DONGLE=m +CONFIG_KPROBES=y +CONFIG_KPROBES_ON_FTRACE=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_KTIME_SCALAR=y +CONFIG_KUSER_HELPERS=y +CONFIG_KVM_AMD=m +CONFIG_KVM_APIC_ARCHITECTURE=y +CONFIG_KVM_ARM_HOST=y +CONFIG_KVM_ARM_MAX_VCPUS=4 +CONFIG_KVM_ARM_TIMER=y +CONFIG_KVM_ARM_VGIC=y +CONFIG_KVM_ASYNC_PF=y +CONFIG_KVM_DEVICE_ASSIGNMENT=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_ETH=m +CONFIG_L2TP_IP=m +CONFIG_L2TP_V3=y +CONFIG_LANCE=m +CONFIG_LANMEDIA=m +CONFIG_LAPB=m +CONFIG_LAPBETHER=m +CONFIG_LATENCYTOP=y +CONFIG_LATTICE_ECP3_CONFIG=m +CONFIG_LBDAF=y +CONFIG_LCD_AMS369FG06=m +CONFIG_LCD_CLASS_DEVICE=m +CONFIG_LCD_HX8357=m +CONFIG_LCD_ILI922X=m +CONFIG_LCD_ILI9320=m +CONFIG_LCD_L4F00242T03=m +CONFIG_LCD_LD9040=m +CONFIG_LCD_LMS283GF05=m +CONFIG_LCD_LMS501KF03=m +CONFIG_LCD_LTV350QV=m +CONFIG_LCD_PLATFORM=m +CONFIG_LCD_S6E63M0=m +CONFIG_LCD_TDO24M=m +CONFIG_LCD_VGG2432A4=m +# CONFIG_LDM_DEBUG is not set +CONFIG_LDM_PARTITION=y +CONFIG_LEDS_88PM860X=m +CONFIG_LEDS_ADP5520=m +CONFIG_LEDS_ASIC3=y +CONFIG_LEDS_ATMEL_PWM=m +CONFIG_LEDS_BD2802=m +CONFIG_LEDS_BLINKM=m +CONFIG_LEDS_CLASS=y +CONFIG_LEDS_CLEVO_MAIL=m +CONFIG_LEDS_DA903X=m +CONFIG_LEDS_DA9052=m +CONFIG_LEDS_DAC124S085=m +CONFIG_LEDS_DELL_NETBOOKS=m +CONFIG_LEDS_GPIO=m +CONFIG_LEDS_INTEL_SS4200=m +CONFIG_LEDS_LM3530=m +CONFIG_LEDS_LM3533=m +CONFIG_LEDS_LM355x=m +CONFIG_LEDS_LM3642=m +CONFIG_LEDS_LP3944=m +CONFIG_LEDS_LP5521=m +CONFIG_LEDS_LP5523=m +CONFIG_LEDS_LP5562=m +CONFIG_LEDS_LP55XX_COMMON=m +CONFIG_LEDS_LP8788=m +CONFIG_LEDS_LT3593=m +CONFIG_LEDS_MAX8997=m +CONFIG_LEDS_MC13783=m +CONFIG_LEDS_NET48XX=m +CONFIG_LEDS_OT200=m +CONFIG_LEDS_PCA9532=m +CONFIG_LEDS_PCA9532_GPIO=y +CONFIG_LEDS_PCA955X=m +CONFIG_LEDS_PCA9633=m +CONFIG_LEDS_PWM=m +CONFIG_LEDS_REGULATOR=m +CONFIG_LEDS_RENESAS_TPU=y +CONFIG_LEDS_TCA6507=m +CONFIG_LEDS_TRIGGERS=y +CONFIG_LEDS_TRIGGER_BACKLIGHT=m +CONFIG_LEDS_TRIGGER_CAMERA=m +CONFIG_LEDS_TRIGGER_CPU=y +CONFIG_LEDS_TRIGGER_DEFAULT_ON=m +CONFIG_LEDS_TRIGGER_GPIO=m +CONFIG_LEDS_TRIGGER_HEARTBEAT=m +CONFIG_LEDS_TRIGGER_ONESHOT=m +CONFIG_LEDS_TRIGGER_TIMER=m +CONFIG_LEDS_TRIGGER_TRANSIENT=m +CONFIG_LEDS_WM831X_STATUS=m +CONFIG_LEDS_WM8350=m +CONFIG_LEDS_WRAP=m +CONFIG_LEGACY_PTYS=y +CONFIG_LEGACY_PTY_COUNT=0 +# CONFIG_LGUEST is not set +# CONFIG_LGUEST_GUEST is not set +CONFIG_LIB80211=m +CONFIG_LIB80211_CRYPT_CCMP=m +CONFIG_LIB80211_CRYPT_TKIP=m +CONFIG_LIB80211_CRYPT_WEP=m +# CONFIG_LIB80211_DEBUG is not set +CONFIG_LIBCRC32C=m +CONFIG_LIBERTAS=m +CONFIG_LIBERTAS_CS=m +# CONFIG_LIBERTAS_DEBUG is not set +CONFIG_LIBERTAS_SDIO=m +CONFIG_LIBERTAS_SPI=m +CONFIG_LIBERTAS_THINFIRM=m +# CONFIG_LIBERTAS_THINFIRM_DEBUG is not set +CONFIG_LIBERTAS_THINFIRM_USB=m +CONFIG_LIBERTAS_USB=m +CONFIG_LIBFC=m +CONFIG_LIBFCOE=m +CONFIG_LIBIPW=m +# CONFIG_LIBIPW_DEBUG is not set +CONFIG_LINE6_USB=m +# CONFIG_LINE6_USB_IMPULSE_RESPONSE is not set +CONFIG_LIRC=m +CONFIG_LIRC_BT829=m +CONFIG_LIRC_IGORPLUGUSB=m +CONFIG_LIRC_IMON=m +CONFIG_LIRC_PARALLEL=m +CONFIG_LIRC_SASEM=m +CONFIG_LIRC_SERIAL=m +CONFIG_LIRC_SERIAL_TRANSMITTER=y +CONFIG_LIRC_SIR=m +CONFIG_LIRC_STAGING=y +CONFIG_LIRC_ZILOG=m +CONFIG_LITELINK_DONGLE=m +# CONFIG_LKDTM is not set +CONFIG_LLC=m +CONFIG_LLC2=m +CONFIG_LOCALVERSION="" +# CONFIG_LOCALVERSION_AUTO is not set +CONFIG_LOCAL_TIMERS=y +CONFIG_LOCKD=m +CONFIG_LOCKDEP_SUPPORT=y +CONFIG_LOCKD_V4=y +CONFIG_LOCKUP_DETECTOR=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_LOGIWHEELS_FF=y +# CONFIG_LOGO is not set +CONFIG_LOOPBACK_TARGET=m +CONFIG_LP8788_ADC=y +CONFIG_LPC_ICH=m +CONFIG_LPC_SCH=m +# CONFIG_LP_CONSOLE is not set +CONFIG_LRU_CACHE=m +CONFIG_LSI_ET1011C_PHY=y +CONFIG_LSM_MMAP_MIN_ADDR=0 +CONFIG_LTPC=m +CONFIG_LXT_PHY=y +CONFIG_LZ4HC_COMPRESS=m +CONFIG_LZ4_COMPRESS=m +CONFIG_LZ4_DECOMPRESS=y +CONFIG_LZO_COMPRESS=y +CONFIG_LZO_DECOMPRESS=y +CONFIG_M25PXX_USE_FAST_READ=y +# CONFIG_M486 is not set +# CONFIG_M586 is not set +# CONFIG_M586MMX is not set +# CONFIG_M586TSC is not set +CONFIG_M686=y +CONFIG_MA600_DONGLE=m +CONFIG_MAC80211=m +CONFIG_MAC80211_DEBUGFS=y +# CONFIG_MAC80211_DEBUG_MENU is not set +CONFIG_MAC80211_HAS_RC=y +CONFIG_MAC80211_HWSIM=m +CONFIG_MAC80211_LEDS=y +CONFIG_MAC80211_MESH=y +CONFIG_MAC80211_MESSAGE_TRACING=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_MAC802154=m +CONFIG_MACB=m +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_EUKREA_CPUIMX51SD is not set +CONFIG_MACH_IGEP0020=y +CONFIG_MACH_IGEP0030=y +# CONFIG_MACH_IMX51_DT is not set +# CONFIG_MACH_MX51_BABBAGE is not set +CONFIG_MACH_NOKIA_RM680=y +# CONFIG_MACH_NOKIA_RX51 is not set +# 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_OMAP_3430SDP=y +CONFIG_MACH_OMAP_3630SDP=y +CONFIG_MACH_OMAP_GENERIC=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_TI8148EVM=y +CONFIG_MACH_TI8168EVM=y +CONFIG_MACH_TOUCHBOOK=y +CONFIG_MACINTOSH_DRIVERS=y +CONFIG_MACVLAN=m +CONFIG_MACVTAP=m +CONFIG_MAC_EMUMOUSEBTN=m +CONFIG_MAC_PARTITION=y +CONFIG_MAGIC_SYSRQ=y +CONFIG_MAILBOX=y +CONFIG_MANTIS_CORE=m +CONFIG_MARVELL_PHY=y +# CONFIG_MATH_EMULATION is not set +# CONFIG_MATOM is not set +CONFIG_MAX1363=m +CONFIG_MAX517=m +CONFIG_MAX63XX_WATCHDOG=m +CONFIG_MAX8925_POWER=m +# CONFIG_MAXSMP is not set +CONFIG_MAX_RAW_DEVS=256 +# CONFIG_MCORE2 is not set +CONFIG_MCP2120_DONGLE=m +CONFIG_MCP320X=m +CONFIG_MCP4725=m +CONFIG_MCPM=y +# CONFIG_MCRUSOE is not set +CONFIG_MCS_FIR=m +# CONFIG_MCYRIXIII is not set +CONFIG_MD=y +CONFIG_MDA_CONSOLE=m +CONFIG_MDIO=m +CONFIG_MDIO_BITBANG=y +CONFIG_MDIO_BUS_MUX=y +CONFIG_MDIO_BUS_MUX_GPIO=y +CONFIG_MDIO_BUS_MUX_MMIOREG=y +CONFIG_MDIO_GPIO=y +CONFIG_MD_AUTODETECT=y +CONFIG_MD_FAULTY=m +CONFIG_MD_LINEAR=m +CONFIG_MD_MULTIPATH=m +CONFIG_MD_RAID0=m +CONFIG_MD_RAID1=m +CONFIG_MD_RAID10=m +CONFIG_MD_RAID456=m +CONFIG_MEDIA_ALTERA_CI=m +CONFIG_MEDIA_ANALOG_TV_SUPPORT=y +CONFIG_MEDIA_ATTACH=y +CONFIG_MEDIA_CAMERA_SUPPORT=y +CONFIG_MEDIA_COMMON_OPTIONS=y +# CONFIG_MEDIA_CONTROLLER is not set +CONFIG_MEDIA_DIGITAL_TV_SUPPORT=y +CONFIG_MEDIA_PARPORT_SUPPORT=y +CONFIG_MEDIA_PCI_SUPPORT=y +CONFIG_MEDIA_RADIO_SUPPORT=y +CONFIG_MEDIA_RC_SUPPORT=y +CONFIG_MEDIA_SUBDRV_AUTOSELECT=y +CONFIG_MEDIA_SUPPORT=m +CONFIG_MEDIA_TUNER=m +CONFIG_MEDIA_TUNER_E4000=m +CONFIG_MEDIA_TUNER_FC0011=m +CONFIG_MEDIA_TUNER_FC0012=m +CONFIG_MEDIA_TUNER_FC0013=m +CONFIG_MEDIA_TUNER_FC2580=m +CONFIG_MEDIA_TUNER_IT913X=m +CONFIG_MEDIA_TUNER_MAX2165=m +CONFIG_MEDIA_TUNER_MC44S803=m +CONFIG_MEDIA_TUNER_MT2060=m +CONFIG_MEDIA_TUNER_MT2063=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_R820T=m +CONFIG_MEDIA_TUNER_SIMPLE=m +CONFIG_MEDIA_TUNER_TDA18212=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_TUA9001=m +CONFIG_MEDIA_TUNER_XC2028=m +CONFIG_MEDIA_TUNER_XC4000=m +CONFIG_MEDIA_TUNER_XC5000=m +CONFIG_MEDIA_USB_SUPPORT=y +# 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_MELAN is not set +CONFIG_MEMCG=y +# CONFIG_MEMCG_KMEM is not set +CONFIG_MEMCG_SWAP=y +# CONFIG_MEMCG_SWAP_ENABLED is not set +CONFIG_MEMORY=y +CONFIG_MEMORY_FAILURE=y +CONFIG_MEMORY_HOTPLUG=y +CONFIG_MEMORY_HOTPLUG_SPARSE=y +CONFIG_MEMORY_HOTREMOVE=y +CONFIG_MEMORY_ISOLATION=y +CONFIG_MEMORY_NOTIFIER_ERROR_INJECT=m +CONFIG_MEMSTICK=m +# CONFIG_MEMSTICK_DEBUG is not set +CONFIG_MEMSTICK_JMICRON_38X=m +CONFIG_MEMSTICK_R592=m +CONFIG_MEMSTICK_REALTEK_PCI=m +CONFIG_MEMSTICK_TIFM_MS=m +# CONFIG_MEMSTICK_UNSAFE_RESUME is not set +CONFIG_MEMTEST=y +CONFIG_MEM_SOFT_DIRTY=y +CONFIG_MEN_A21_WDT=m +CONFIG_MFD_88PM800=m +CONFIG_MFD_88PM805=m +CONFIG_MFD_88PM860X=y +CONFIG_MFD_AAT2870_CORE=y +CONFIG_MFD_ARIZONA=y +CONFIG_MFD_ARIZONA_I2C=m +CONFIG_MFD_ARIZONA_SPI=m +CONFIG_MFD_AS3711=y +CONFIG_MFD_ASIC3=y +CONFIG_MFD_CORE=y +CONFIG_MFD_CROS_EC=m +CONFIG_MFD_CROS_EC_I2C=m +CONFIG_MFD_CROS_EC_SPI=m +CONFIG_MFD_CS5535=m +CONFIG_MFD_DA9052_I2C=y +CONFIG_MFD_DA9052_SPI=y +CONFIG_MFD_DA9055=y +CONFIG_MFD_INTEL_MSIC=y +CONFIG_MFD_JANZ_CMODIO=m +CONFIG_MFD_KEMPLD=m +CONFIG_MFD_LM3533=m +CONFIG_MFD_LP8788=y +CONFIG_MFD_MAX77686=y +CONFIG_MFD_MAX77693=y +CONFIG_MFD_MAX8907=m +CONFIG_MFD_MAX8925=y +CONFIG_MFD_MAX8997=y +CONFIG_MFD_MAX8998=y +CONFIG_MFD_MC13783=m +CONFIG_MFD_MC13XXX=m +CONFIG_MFD_MC13XXX_I2C=m +CONFIG_MFD_MC13XXX_SPI=m +CONFIG_MFD_NVEC=m +CONFIG_MFD_OMAP_USB_HOST=y +CONFIG_MFD_PALMAS=y +CONFIG_MFD_PCF50633=m +CONFIG_MFD_RC5T583=y +CONFIG_MFD_RDC321X=m +CONFIG_MFD_RETU=m +CONFIG_MFD_RTSX_PCI=m +CONFIG_MFD_SEC_CORE=y +CONFIG_MFD_SI476X_CORE=m +CONFIG_MFD_SM501=m +# CONFIG_MFD_SM501_GPIO is not set +CONFIG_MFD_SMSC=y +CONFIG_MFD_STMPE=y +CONFIG_MFD_SYSCON=y +CONFIG_MFD_T7L66XB=y +CONFIG_MFD_TC3589X=y +CONFIG_MFD_TC6387XB=y +CONFIG_MFD_TC6393XB=y +CONFIG_MFD_TIMBERDALE=m +CONFIG_MFD_TI_AM335X_TSCADC=m +CONFIG_MFD_TPS65090=y +CONFIG_MFD_TPS65217=m +CONFIG_MFD_TPS6586X=y +CONFIG_MFD_TPS65910=y +CONFIG_MFD_TPS65912=y +CONFIG_MFD_TPS65912_I2C=y +CONFIG_MFD_TPS65912_SPI=y +CONFIG_MFD_TPS80031=y +CONFIG_MFD_TWL4030_AUDIO=y +CONFIG_MFD_VIPERBOARD=m +CONFIG_MFD_VX855=m +CONFIG_MFD_WL1273_CORE=m +CONFIG_MFD_WM5102=y +CONFIG_MFD_WM5110=y +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=y +CONFIG_MFD_WM8994=y +CONFIG_MFD_WM8997=y +# CONFIG_MGEODEGX1 is not set +# CONFIG_MGEODE_LX is not set +CONFIG_MG_DISK=m +CONFIG_MG_DISK_RES=0 +CONFIG_MICREL_KS8995MA=m +CONFIG_MICREL_PHY=y +CONFIG_MICROCODE=m +CONFIG_MICROCODE_AMD=y +# CONFIG_MICROCODE_AMD_EARLY is not set +CONFIG_MICROCODE_INTEL=y +# CONFIG_MICROCODE_INTEL_EARLY is not set +CONFIG_MICROCODE_INTEL_LIB=y +CONFIG_MICROCODE_OLD_INTERFACE=y +CONFIG_MIGHT_HAVE_CACHE_L2X0=y +CONFIG_MIGRATION=y +CONFIG_MII=m +CONFIG_MINIX_FS=m +CONFIG_MINIX_SUBPARTITION=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 is not set +CONFIG_MLX4_EN=m +CONFIG_MLX4_EN_DCB=y +CONFIG_MLX4_INFINIBAND=m +CONFIG_MLX5_CORE=m +# CONFIG_MLX5_DEBUG is not set +CONFIG_MLX5_INFINIBAND=m +CONFIG_MMC=y +CONFIG_MMC_ARMMMCI=y +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_EXYNOS=m +# CONFIG_MMC_DW_IDMAC is not set +CONFIG_MMC_DW_PCI=m +CONFIG_MMC_DW_PLTFM=m +CONFIG_MMC_DW_SOCFPGA=m +# CONFIG_MMC_MXC is not set +CONFIG_MMC_OMAP=m +CONFIG_MMC_OMAP_HS=y +CONFIG_MMC_REALTEK_PCI=m +CONFIG_MMC_RICOH_MMC=y +CONFIG_MMC_SDHCI_ACPI=m +CONFIG_MMC_SDHCI_ESDHC_IMX=y +CONFIG_MMC_SDHCI_IO_ACCESSORS=y +CONFIG_MMC_SDHCI_PCI=m +CONFIG_MMC_SDHCI_PXAV2=m +CONFIG_MMC_SDHCI_PXAV3=m +CONFIG_MMC_SDHCI_TEGRA=m +CONFIG_MMC_SDRICOH_CS=m +CONFIG_MMC_SPI=m +# CONFIG_MMC_TEST is not set +CONFIG_MMC_TIFM_SD=m +CONFIG_MMC_TMIO=m +CONFIG_MMC_TMIO_CORE=m +# CONFIG_MMC_UNSAFE_RESUME is not set +CONFIG_MMC_USHC=m +CONFIG_MMC_VIA_SDMMC=m +CONFIG_MMC_VUB300=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_MODULES_USE_ELF_REL=y +CONFIG_MODULES_USE_ELF_RELA=y +# CONFIG_MODULE_FORCE_LOAD is not set +# CONFIG_MODULE_FORCE_UNLOAD is not set +CONFIG_MODULE_SIG=y +CONFIG_MODULE_SIG_ALL=y +# CONFIG_MODULE_SIG_FORCE is not set +CONFIG_MODULE_SIG_HASH="sha512" +# CONFIG_MODULE_SIG_SHA1 is not set +# CONFIG_MODULE_SIG_SHA224 is not set +# CONFIG_MODULE_SIG_SHA256 is not set +# CONFIG_MODULE_SIG_SHA384 is not set +CONFIG_MODULE_SIG_SHA512=y +CONFIG_MODULE_SRCVERSION_ALL=y +CONFIG_MODULE_UNLOAD=y +CONFIG_MODVERSIONS=y +CONFIG_MOUSE_APPLETOUCH=m +CONFIG_MOUSE_BCM5974=m +CONFIG_MOUSE_CYAPA=m +CONFIG_MOUSE_GPIO=m +# CONFIG_MOUSE_INPORT is not set +CONFIG_MOUSE_LOGIBM=m +CONFIG_MOUSE_PC110PAD=m +CONFIG_MOUSE_PS2=m +CONFIG_MOUSE_PS2_ALPS=y +CONFIG_MOUSE_PS2_CYPRESS=y +CONFIG_MOUSE_PS2_ELANTECH=y +CONFIG_MOUSE_PS2_LIFEBOOK=y +CONFIG_MOUSE_PS2_LOGIPS2PP=y +CONFIG_MOUSE_PS2_SENTELIC=y +CONFIG_MOUSE_PS2_SYNAPTICS=y +CONFIG_MOUSE_PS2_TOUCHKIT=y +CONFIG_MOUSE_PS2_TRACKPOINT=y +CONFIG_MOUSE_SERIAL=m +CONFIG_MOUSE_SYNAPTICS_I2C=m +CONFIG_MOUSE_SYNAPTICS_USB=m +CONFIG_MOUSE_VSXXXAA=m +CONFIG_MOVABLE_NODE=y +CONFIG_MOXA_INTELLIO=m +CONFIG_MOXA_SMARTIO=m +# CONFIG_MPENTIUM4 is not set +# CONFIG_MPENTIUMII is not set +# CONFIG_MPENTIUMIII is not set +# CONFIG_MPENTIUMM is not set +CONFIG_MPILIB=y +# CONFIG_MPSC is not set +CONFIG_MRP=m +CONFIG_MSDOS_FS=m +CONFIG_MSDOS_PARTITION=y +CONFIG_MSI_LAPTOP=m +CONFIG_MSI_WMI=m +CONFIG_MSPRO_BLOCK=m +CONFIG_MTDRAM_ERASE_SIZE=128 +CONFIG_MTDRAM_TOTAL_SIZE=4096 +CONFIG_MTD_ABSENT=m +CONFIG_MTD_AFS_PARTS=m +CONFIG_MTD_ALAUDA=m +CONFIG_MTD_AMD76XROM=m +CONFIG_MTD_AR7_PARTS=m +CONFIG_MTD_BLOCK2MTD=m +CONFIG_MTD_BLOCK_RO=m +CONFIG_MTD_CFI=m +# CONFIG_MTD_CFI_ADV_OPTIONS is not set +CONFIG_MTD_CFI_AMDSTD=m +CONFIG_MTD_CFI_I1=y +CONFIG_MTD_CFI_I2=y +# CONFIG_MTD_CFI_I4 is not set +# CONFIG_MTD_CFI_I8 is not set +CONFIG_MTD_CFI_INTELEXT=m +CONFIG_MTD_CFI_STAA=m +CONFIG_MTD_CFI_UTIL=m +CONFIG_MTD_CK804XROM=m +CONFIG_MTD_COMPLEX_MAPPINGS=y +CONFIG_MTD_DATAFLASH=m +CONFIG_MTD_DATAFLASH_OTP=y +# CONFIG_MTD_DATAFLASH_WRITE_VERIFY is not set +CONFIG_MTD_DOCG3=m +CONFIG_MTD_ESB2ROM=m +CONFIG_MTD_GEN_PROBE=m +CONFIG_MTD_GPIO_ADDR=m +CONFIG_MTD_ICHXROM=m +CONFIG_MTD_IMPA7=m +CONFIG_MTD_INTEL_VR_NOR=m +CONFIG_MTD_JEDECPROBE=m +CONFIG_MTD_L440GX=m +CONFIG_MTD_LATCH_ADDR=m +CONFIG_MTD_LPDDR=m +CONFIG_MTD_M25P80=m +CONFIG_MTD_MAP_BANK_WIDTH_1=y +# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set +CONFIG_MTD_MAP_BANK_WIDTH_2=y +# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set +CONFIG_MTD_MAP_BANK_WIDTH_4=y +# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set +CONFIG_MTD_MTDRAM=m +CONFIG_MTD_NAND_CAFE=m +CONFIG_MTD_NAND_CS553X=m +CONFIG_MTD_NAND_DENALI=m +CONFIG_MTD_NAND_DENALI_DT=m +CONFIG_MTD_NAND_DENALI_PCI=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_DOCG4=m +CONFIG_MTD_NAND_ECC_BCH=y +# CONFIG_MTD_NAND_ECC_SMC is not set +CONFIG_MTD_NAND_GPIO=m +# CONFIG_MTD_NAND_MXC is not set +CONFIG_MTD_NAND_NANDSIM=m +CONFIG_MTD_NAND_OMAP2=y +CONFIG_MTD_NAND_OMAP_BCH=y +# CONFIG_MTD_NAND_OMAP_BCH4 is not set +CONFIG_MTD_NAND_OMAP_BCH8=y +CONFIG_MTD_NAND_PLATFORM=m +CONFIG_MTD_NAND_RICOH=m +CONFIG_MTD_NAND_TMIO=m +CONFIG_MTD_NETSC520=m +CONFIG_MTD_NETtel=m +CONFIG_MTD_OF_PARTS=y +CONFIG_MTD_ONENAND=m +CONFIG_MTD_ONENAND_2X_PROGRAM=y +CONFIG_MTD_ONENAND_GENERIC=m +CONFIG_MTD_ONENAND_OMAP2=m +# CONFIG_MTD_ONENAND_OTP is not set +CONFIG_MTD_ONENAND_VERIFY_WRITE=y +CONFIG_MTD_OOPS=m +CONFIG_MTD_PCI=m +CONFIG_MTD_PCMCIA=m +# CONFIG_MTD_PCMCIA_ANONYMOUS is not set +CONFIG_MTD_PHRAM=m +CONFIG_MTD_PHYSMAP=m +# CONFIG_MTD_PHYSMAP_COMPAT is not set +CONFIG_MTD_PHYSMAP_OF=m +CONFIG_MTD_PLATRAM=m +CONFIG_MTD_PMC551=m +# CONFIG_MTD_PMC551_BUGFIX is not set +# CONFIG_MTD_PMC551_DEBUG is not set +CONFIG_MTD_QINFO_PROBE=m +CONFIG_MTD_RAM=m +CONFIG_MTD_REDBOOT_DIRECTORY_BLOCK=-1 +CONFIG_MTD_REDBOOT_PARTS=m +# CONFIG_MTD_REDBOOT_PARTS_READONLY is not set +# CONFIG_MTD_REDBOOT_PARTS_UNALLOCATED is not set +CONFIG_MTD_ROM=m +CONFIG_MTD_SBC_GXX=m +CONFIG_MTD_SC520CDP=m +CONFIG_MTD_SCB2_FLASH=m +CONFIG_MTD_SCx200_DOCFLASH=m +CONFIG_MTD_SLRAM=m +CONFIG_MTD_SST25L=m +CONFIG_MTD_SWAP=m +# CONFIG_MTD_TESTS is not set +CONFIG_MTD_TS5500=m +CONFIG_MTD_UBI=m +CONFIG_MTD_UBI_BEB_LIMIT=20 +CONFIG_MTD_UBI_FASTMAP=y +CONFIG_MTD_UBI_GLUEBI=m +CONFIG_MTD_UBI_WL_THRESHOLD=4096 +CONFIG_MTRR=y +CONFIG_MTRR_SANITIZER=y +CONFIG_MTRR_SANITIZER_ENABLE_DEFAULT=1 +CONFIG_MTRR_SANITIZER_SPARE_REG_NR_DEFAULT=1 +CONFIG_MULTI_IRQ_HANDLER=y +CONFIG_MUTEX_SPIN_ON_OWNER=y +# CONFIG_MVIAC3_2 is not set +# CONFIG_MVIAC7 is not set +CONFIG_MVMDIO=m +CONFIG_MWAVE=m +CONFIG_MWIFIEX=m +CONFIG_MWIFIEX_PCIE=m +CONFIG_MWIFIEX_SDIO=m +CONFIG_MWIFIEX_USB=m +# CONFIG_MWINCHIP3D is not set +# CONFIG_MWINCHIPC6 is not set +CONFIG_MWL8K=m +CONFIG_MX3_IPU=y +CONFIG_MX3_IPU_IRQS=4 +# CONFIG_MXC_DEBUG_BOARD is not set +# CONFIG_MXC_IRQ_PRIOR is not set +CONFIG_MXM_WMI=m +# CONFIG_MXS_DMA is not set +CONFIG_MYRI10GE=m +CONFIG_MYRI10GE_DCA=y +CONFIG_N2=m +CONFIG_NAMESPACES=y +CONFIG_NATIONAL_PHY=y +CONFIG_NATSEMI=m +CONFIG_NCPFS_EXTRAS=y +CONFIG_NCPFS_IOCTL_LOCKING=y +CONFIG_NCPFS_NFS_NS=y +CONFIG_NCPFS_NLS=y +CONFIG_NCPFS_OS2_NS=y +CONFIG_NCPFS_PACKET_SIGNING=y +# CONFIG_NCPFS_SMALLDOS is not set +CONFIG_NCPFS_STRONG=y +CONFIG_NCP_FS=m +CONFIG_NE2000=m +CONFIG_NE2K_PCI=m +CONFIG_NEED_BOUNCE_POOL=y +CONFIG_NEED_DMA_MAP_STATE=y +CONFIG_NEED_MULTIPLE_NODES=y +CONFIG_NEED_PER_CPU_EMBED_FIRST_CHUNK=y +CONFIG_NEED_PER_CPU_PAGE_FIRST_CHUNK=y +CONFIG_NEED_SG_DMA_LENGTH=y +CONFIG_NEON=y +CONFIG_NET=y +CONFIG_NET5501=y +CONFIG_NETCONSOLE=m +CONFIG_NETCONSOLE_DYNAMIC=y +CONFIG_NETDEVICES=y +CONFIG_NETFILTER=y +CONFIG_NETFILTER_ADVANCED=y +# CONFIG_NETFILTER_DEBUG is not set +CONFIG_NETFILTER_NETLINK=m +CONFIG_NETFILTER_NETLINK_ACCT=m +CONFIG_NETFILTER_NETLINK_LOG=m +CONFIG_NETFILTER_NETLINK_QUEUE=m +CONFIG_NETFILTER_NETLINK_QUEUE_CT=y +CONFIG_NETFILTER_TPROXY=m +CONFIG_NETFILTER_XTABLES=m +CONFIG_NETFILTER_XT_CONNMARK=m +CONFIG_NETFILTER_XT_MARK=m +CONFIG_NETFILTER_XT_MATCH_ADDRTYPE=m +CONFIG_NETFILTER_XT_MATCH_BPF=m +CONFIG_NETFILTER_XT_MATCH_CLUSTER=m +CONFIG_NETFILTER_XT_MATCH_COMMENT=m +CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m +CONFIG_NETFILTER_XT_MATCH_CONNLABEL=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_DEVGROUP=m +CONFIG_NETFILTER_XT_MATCH_DSCP=m +CONFIG_NETFILTER_XT_MATCH_ECN=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_NFACCT=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_SET=m +CONFIG_NETFILTER_XT_TARGET_AUDIT=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_HMARK=m +CONFIG_NETFILTER_XT_TARGET_IDLETIMER=m +CONFIG_NETFILTER_XT_TARGET_LED=m +CONFIG_NETFILTER_XT_TARGET_LOG=m +CONFIG_NETFILTER_XT_TARGET_MARK=m +CONFIG_NETFILTER_XT_TARGET_NETMAP=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_REDIRECT=m +CONFIG_NETFILTER_XT_TARGET_SECMARK=m +CONFIG_NETFILTER_XT_TARGET_TCPMSS=m +CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP=m +CONFIG_NETFILTER_XT_TARGET_TEE=m +CONFIG_NETFILTER_XT_TARGET_TPROXY=m +CONFIG_NETFILTER_XT_TARGET_TRACE=m +CONFIG_NETLABEL=y +CONFIG_NETLINK_DIAG=m +CONFIG_NETLINK_MMAP=y +CONFIG_NETPOLL=y +# CONFIG_NETPOLL_TRAP is not set +CONFIG_NETPRIO_CGROUP=m +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_CADENCE=y +CONFIG_NET_CALXEDA_XGMAC=m +CONFIG_NET_CLS=y +CONFIG_NET_CLS_ACT=y +CONFIG_NET_CLS_BASIC=m +CONFIG_NET_CLS_CGROUP=m +CONFIG_NET_CLS_FLOW=m +CONFIG_NET_CLS_FW=m +# CONFIG_NET_CLS_IND is not set +CONFIG_NET_CLS_ROUTE4=m +CONFIG_NET_CLS_RSVP=m +CONFIG_NET_CLS_RSVP6=m +CONFIG_NET_CLS_TCINDEX=m +CONFIG_NET_CLS_U32=m +CONFIG_NET_CORE=y +CONFIG_NET_DCCPPROBE=m +CONFIG_NET_DMA=y +# CONFIG_NET_DROP_MONITOR is not set +CONFIG_NET_DSA=m +CONFIG_NET_DSA_MV88E6060=m +CONFIG_NET_DSA_MV88E6123_61_65=m +CONFIG_NET_DSA_MV88E6131=m +CONFIG_NET_DSA_MV88E6XXX=m +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_CANID=m +CONFIG_NET_EMATCH_CMP=m +CONFIG_NET_EMATCH_IPSET=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_FC=y +CONFIG_NET_FLOW_LIMIT=y +CONFIG_NET_IPGRE=m +CONFIG_NET_IPGRE_BROADCAST=y +CONFIG_NET_IPGRE_DEMUX=m +CONFIG_NET_IPIP=m +CONFIG_NET_IPVTI=m +CONFIG_NET_IP_TUNNEL=m +CONFIG_NET_KEY=m +# CONFIG_NET_KEY_MIGRATE is not set +CONFIG_NET_MPLS_GSO=m +CONFIG_NET_NS=y +CONFIG_NET_PACKET_ENGINE=y +CONFIG_NET_PKTGEN=m +CONFIG_NET_POLL_CONTROLLER=y +CONFIG_NET_RX_BUSY_POLL=y +CONFIG_NET_SB1000=m +CONFIG_NET_SCHED=y +CONFIG_NET_SCH_ATM=m +CONFIG_NET_SCH_CBQ=m +CONFIG_NET_SCH_CHOKE=m +CONFIG_NET_SCH_CODEL=m +CONFIG_NET_SCH_DRR=m +CONFIG_NET_SCH_DSMARK=m +CONFIG_NET_SCH_FIFO=y +CONFIG_NET_SCH_FQ_CODEL=m +CONFIG_NET_SCH_GRED=m +CONFIG_NET_SCH_HFSC=m +CONFIG_NET_SCH_HTB=m +CONFIG_NET_SCH_INGRESS=m +CONFIG_NET_SCH_MQPRIO=m +CONFIG_NET_SCH_MULTIQ=m +CONFIG_NET_SCH_NETEM=m +CONFIG_NET_SCH_PLUG=m +CONFIG_NET_SCH_PRIO=m +CONFIG_NET_SCH_QFQ=m +CONFIG_NET_SCH_RED=m +CONFIG_NET_SCH_SFB=m +CONFIG_NET_SCH_SFQ=m +CONFIG_NET_SCH_TBF=m +CONFIG_NET_SCH_TEQL=m +CONFIG_NET_SCTPPROBE=m +CONFIG_NET_TCPPROBE=m +# CONFIG_NET_TEAM is not set +CONFIG_NET_TULIP=y +CONFIG_NET_VENDOR_3COM=y +CONFIG_NET_VENDOR_8390=y +CONFIG_NET_VENDOR_ADAPTEC=y +CONFIG_NET_VENDOR_ALTEON=y +CONFIG_NET_VENDOR_AMD=y +CONFIG_NET_VENDOR_ARC=y +CONFIG_NET_VENDOR_ATHEROS=y +CONFIG_NET_VENDOR_BROADCOM=y +CONFIG_NET_VENDOR_BROCADE=y +CONFIG_NET_VENDOR_CHELSIO=y +CONFIG_NET_VENDOR_CIRRUS=y +CONFIG_NET_VENDOR_CISCO=y +CONFIG_NET_VENDOR_DEC=y +CONFIG_NET_VENDOR_DLINK=y +CONFIG_NET_VENDOR_EMULEX=y +CONFIG_NET_VENDOR_EXAR=y +CONFIG_NET_VENDOR_FARADAY=y +CONFIG_NET_VENDOR_FREESCALE=y +CONFIG_NET_VENDOR_FUJITSU=y +CONFIG_NET_VENDOR_HP=y +CONFIG_NET_VENDOR_I825XX=y +CONFIG_NET_VENDOR_INTEL=y +CONFIG_NET_VENDOR_MARVELL=y +CONFIG_NET_VENDOR_MELLANOX=y +CONFIG_NET_VENDOR_MICREL=y +CONFIG_NET_VENDOR_MICROCHIP=y +CONFIG_NET_VENDOR_MYRI=y +CONFIG_NET_VENDOR_NATSEMI=y +CONFIG_NET_VENDOR_NVIDIA=y +CONFIG_NET_VENDOR_OKI=y +CONFIG_NET_VENDOR_QLOGIC=y +CONFIG_NET_VENDOR_RDC=y +CONFIG_NET_VENDOR_REALTEK=y +CONFIG_NET_VENDOR_SEEQ=y +CONFIG_NET_VENDOR_SILAN=y +CONFIG_NET_VENDOR_SILICOM=y +CONFIG_NET_VENDOR_SIS=y +CONFIG_NET_VENDOR_SMSC=y +CONFIG_NET_VENDOR_STMICRO=y +CONFIG_NET_VENDOR_SUN=y +CONFIG_NET_VENDOR_TEHUTI=y +CONFIG_NET_VENDOR_TI=y +CONFIG_NET_VENDOR_VIA=y +CONFIG_NET_VENDOR_WIZNET=y +CONFIG_NET_VENDOR_XIRCOM=y +CONFIG_NEW_LEDS=y +CONFIG_NFC=m +CONFIG_NFC_HCI=m +CONFIG_NFC_MEI_PHY=m +CONFIG_NFC_MICROREAD=m +CONFIG_NFC_MICROREAD_I2C=m +CONFIG_NFC_MICROREAD_MEI=m +CONFIG_NFC_NCI=m +CONFIG_NFC_NCI_SPI=y +CONFIG_NFC_PN533=m +CONFIG_NFC_PN544=m +CONFIG_NFC_PN544_I2C=m +CONFIG_NFC_PN544_MEI=m +CONFIG_NFC_SHDLC=y +CONFIG_NFC_SIM=m +CONFIG_NFC_WILINK=m +CONFIG_NFSD=m +# CONFIG_NFSD_FAULT_INJECTION is not set +CONFIG_NFSD_V2_ACL=y +CONFIG_NFSD_V3=y +CONFIG_NFSD_V3_ACL=y +CONFIG_NFSD_V4=y +CONFIG_NFSD_V4_SECURITY_LABEL=y +CONFIG_NFS_ACL_SUPPORT=m +CONFIG_NFS_COMMON=y +CONFIG_NFS_DEBUG=y +CONFIG_NFS_FS=m +CONFIG_NFS_FSCACHE=y +CONFIG_NFS_SWAP=y +CONFIG_NFS_USE_KERNEL_DNS=y +# CONFIG_NFS_USE_LEGACY_DNS is not set +CONFIG_NFS_V2=m +CONFIG_NFS_V3=m +CONFIG_NFS_V3_ACL=y +CONFIG_NFS_V4=m +CONFIG_NFS_V4_1=y +CONFIG_NFS_V4_1_IMPLEMENTATION_ID_DOMAIN="kernel.org" +CONFIG_NFS_V4_2=y +CONFIG_NFS_V4_SECURITY_LABEL=y +CONFIG_NFTL=m +CONFIG_NFTL_RW=y +CONFIG_NF_CONNTRACK=m +CONFIG_NF_CONNTRACK_AMANDA=m +CONFIG_NF_CONNTRACK_BROADCAST=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_LABELS=y +CONFIG_NF_CONNTRACK_MARK=y +CONFIG_NF_CONNTRACK_NETBIOS_NS=m +CONFIG_NF_CONNTRACK_PPTP=m +# CONFIG_NF_CONNTRACK_PROCFS is not set +CONFIG_NF_CONNTRACK_SANE=m +CONFIG_NF_CONNTRACK_SECMARK=y +CONFIG_NF_CONNTRACK_SIP=m +CONFIG_NF_CONNTRACK_SNMP=m +CONFIG_NF_CONNTRACK_TFTP=m +CONFIG_NF_CONNTRACK_TIMEOUT=y +CONFIG_NF_CONNTRACK_TIMESTAMP=y +CONFIG_NF_CONNTRACK_ZONES=y +CONFIG_NF_CT_NETLINK=m +CONFIG_NF_CT_NETLINK_HELPER=m +CONFIG_NF_CT_NETLINK_TIMEOUT=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_IPV4=m +CONFIG_NF_NAT_IPV6=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_NI65=m +CONFIG_NILFS2_FS=m +CONFIG_NIU=m +CONFIG_NLATTR=y +CONFIG_NLMON=m +CONFIG_NLS=y +CONFIG_NLS_ASCII=m +CONFIG_NLS_CODEPAGE_1250=m +CONFIG_NLS_CODEPAGE_1251=m +CONFIG_NLS_CODEPAGE_437=y +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_MAC_CELTIC=m +CONFIG_NLS_MAC_CENTEURO=m +CONFIG_NLS_MAC_CROATIAN=m +CONFIG_NLS_MAC_CYRILLIC=m +CONFIG_NLS_MAC_GAELIC=m +CONFIG_NLS_MAC_GREEK=m +CONFIG_NLS_MAC_ICELAND=m +CONFIG_NLS_MAC_INUIT=m +CONFIG_NLS_MAC_ROMAN=m +CONFIG_NLS_MAC_ROMANIAN=m +CONFIG_NLS_MAC_TURKISH=m +CONFIG_NLS_UTF8=m +CONFIG_NODES_SHIFT=6 +CONFIG_NODES_SPAN_OTHER_NODES=y +# CONFIG_NOHIGHMEM is not set +CONFIG_NOP_TRACER=y +CONFIG_NORTEL_HERMES=m +CONFIG_NOTIFIER_ERROR_INJECTION=m +CONFIG_NOUVEAU_DEBUG=5 +CONFIG_NOUVEAU_DEBUG_DEFAULT=3 +CONFIG_NOZOMI=m +CONFIG_NO_BOOTMEM=y +CONFIG_NO_HZ=y +CONFIG_NO_HZ_COMMON=y +# CONFIG_NO_HZ_FULL is not set +CONFIG_NO_HZ_IDLE=y +CONFIG_NO_IOPORT=y +CONFIG_NS83820=m +CONFIG_NSC_FIR=m +CONFIG_NSC_GPIO=m +CONFIG_NTB=m +CONFIG_NTB_NETDEV=m +# CONFIG_NTFS_DEBUG is not set +CONFIG_NTFS_FS=m +# CONFIG_NTFS_RW is not set +CONFIG_NUMA=y +CONFIG_NUMA_BALANCING=y +CONFIG_NUMA_BALANCING_DEFAULT_ENABLED=y +# CONFIG_NUMA_EMU is not set +CONFIG_NVEC_PAZ00=m +CONFIG_NVEC_POWER=m +CONFIG_NVRAM=m +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_OC_ETM=y +CONFIG_OF=y +CONFIG_OF_ADDRESS=y +CONFIG_OF_EARLY_FLATTREE=y +CONFIG_OF_FLATTREE=y +CONFIG_OF_GPIO=y +CONFIG_OF_I2C=y +CONFIG_OF_IOMMU=y +CONFIG_OF_IRQ=y +CONFIG_OF_MDIO=y +CONFIG_OF_MTD=y +CONFIG_OF_NET=y +CONFIG_OF_PCI=y +CONFIG_OF_PCI_IRQ=y +# CONFIG_OF_SELFTEST is not set +CONFIG_OID_REGISTRY=y +CONFIG_OLD_BELKIN_DONGLE=m +CONFIG_OLD_SIGACTION=y +CONFIG_OLD_SIGSUSPEND3=y +CONFIG_OMAP2PLUS_MBOX=m +CONFIG_OMAP2_DSS=y +# CONFIG_OMAP2_DSS_DEBUG is not set +# CONFIG_OMAP2_DSS_DEBUGFS is not set +CONFIG_OMAP2_DSS_DPI=y +# CONFIG_OMAP2_DSS_DSI 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_SLEEP_AFTER_VENC_RESET=y +CONFIG_OMAP2_DSS_VENC=y +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_OMAP4_DSS_HDMI=y +CONFIG_OMAP4_DSS_HDMI_AUDIO=y +CONFIG_OMAP4_THERMAL=y +CONFIG_OMAP_32K_TIMER=y +CONFIG_OMAP_DM_TIMER=y +CONFIG_OMAP_INTERCONNECT=y +CONFIG_OMAP_IOMMU=y +# CONFIG_OMAP_IOVMM is not set +CONFIG_OMAP_MBOX=m +CONFIG_OMAP_MBOX_KFIFO_SIZE=256 +CONFIG_OMAP_MUX=y +# CONFIG_OMAP_MUX_DEBUG is not set +CONFIG_OMAP_MUX_WARNINGS=y +CONFIG_OMAP_OCP2SCP=m +CONFIG_OMAP_PACKAGE_CBB=y +CONFIG_OMAP_PACKAGE_CBP=y +CONFIG_OMAP_PACKAGE_CUS=y +CONFIG_OMAP_PM_NOOP=y +CONFIG_OMAP_REMOTEPROC=m +CONFIG_OMAP_RESET_CLOCKS=y +CONFIG_OMAP_USB2=y +CONFIG_OMAP_USB3=m +CONFIG_OMAP_WATCHDOG=m +CONFIG_OMFS_FS=m +CONFIG_OPENVSWITCH=m +CONFIG_OPENVSWITCH_GRE=y +CONFIG_OPROFILE=m +# CONFIG_OPROFILE_EVENT_MULTIPLEX is not set +CONFIG_OPROFILE_NMI_TIMER=y +CONFIG_OPTIMIZE_INLINING=y +CONFIG_OPTPROBES=y +CONFIG_ORE=m +CONFIG_ORINOCO_USB=m +CONFIG_OSF_PARTITION=y +CONFIG_OUTER_CACHE=y +CONFIG_OUTER_CACHE_SYNC=y +CONFIG_OVERLAYFS_FS=m +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_PACKET=y +CONFIG_PACKET_DIAG=m +CONFIG_PADATA=y +CONFIG_PAGEFLAGS_EXTENDED=y +CONFIG_PAGE_OFFSET=0xC0000000 +CONFIG_PANASONIC_LAPTOP=m +CONFIG_PANEL=m +CONFIG_PANEL_ACX565AKM=m +# CONFIG_PANEL_CHANGE_MESSAGE is not set +CONFIG_PANEL_GENERIC_DPI=y +CONFIG_PANEL_LGPHILIPS_LB035Q02=m +CONFIG_PANEL_NEC_NL8048HL11_01B=m +CONFIG_PANEL_PARPORT=0 +CONFIG_PANEL_PICODLP=m +CONFIG_PANEL_PROFILE=5 +CONFIG_PANEL_SHARP_LS037V7DW01=y +CONFIG_PANEL_TFP410=y +CONFIG_PANEL_TPO_TD043MTEA1=y +# CONFIG_PANIC_ON_OOPS is not set +CONFIG_PANIC_ON_OOPS_VALUE=0 +CONFIG_PANTHERLORD_FF=y +CONFIG_PARAVIRT=y +CONFIG_PARAVIRT_CLOCK=y +# CONFIG_PARAVIRT_DEBUG is not set +CONFIG_PARAVIRT_SPINLOCKS=y +# CONFIG_PARAVIRT_TIME_ACCOUNTING is not set +CONFIG_PARIDE=m +CONFIG_PARIDE_ATEN=m +CONFIG_PARIDE_BPCK=m +CONFIG_PARIDE_BPCK6=m +CONFIG_PARIDE_COMM=m +CONFIG_PARIDE_DSTR=m +CONFIG_PARIDE_EPAT=m +# CONFIG_PARIDE_EPATC8 is not set +CONFIG_PARIDE_EPIA=m +CONFIG_PARIDE_FIT2=m +CONFIG_PARIDE_FIT3=m +CONFIG_PARIDE_FRIQ=m +CONFIG_PARIDE_FRPW=m +CONFIG_PARIDE_KBIC=m +CONFIG_PARIDE_KTTI=m +CONFIG_PARIDE_ON20=m +CONFIG_PARIDE_ON26=m +CONFIG_PARIDE_PCD=m +CONFIG_PARIDE_PD=m +CONFIG_PARIDE_PF=m +CONFIG_PARIDE_PG=m +CONFIG_PARIDE_PT=m +CONFIG_PARPORT=m +CONFIG_PARPORT_1284=y +CONFIG_PARPORT_AX88796=m +# CONFIG_PARPORT_GSC is not set +CONFIG_PARPORT_NOT_PC=y +CONFIG_PARPORT_PC=m +CONFIG_PARPORT_PC_FIFO=y +CONFIG_PARPORT_PC_PCMCIA=m +# CONFIG_PARPORT_PC_SUPERIO is not set +CONFIG_PARPORT_SERIAL=m +CONFIG_PARTITION_ADVANCED=y +CONFIG_PATA_ACPI=m +CONFIG_PATA_ALI=m +CONFIG_PATA_AMD=m +CONFIG_PATA_ARASAN_CF=m +CONFIG_PATA_ARTOP=m +CONFIG_PATA_ATIIXP=m +CONFIG_PATA_ATP867X=m +CONFIG_PATA_CMD640_PCI=m +CONFIG_PATA_CMD64X=m +CONFIG_PATA_CS5520=m +CONFIG_PATA_CS5530=m +CONFIG_PATA_CS5535=m +CONFIG_PATA_CS5536=m +CONFIG_PATA_CYPRESS=m +CONFIG_PATA_EFAR=m +CONFIG_PATA_HPT366=m +CONFIG_PATA_HPT37X=m +CONFIG_PATA_HPT3X2N=m +CONFIG_PATA_HPT3X3=m +# CONFIG_PATA_HPT3X3_DMA is not set +# CONFIG_PATA_IMX is not set +CONFIG_PATA_ISAPNP=m +CONFIG_PATA_IT8213=m +CONFIG_PATA_IT821X=m +CONFIG_PATA_JMICRON=m +CONFIG_PATA_LEGACY=m +CONFIG_PATA_MARVELL=m +CONFIG_PATA_MPIIX=m +CONFIG_PATA_NETCELL=m +CONFIG_PATA_NINJA32=m +CONFIG_PATA_NS87410=m +CONFIG_PATA_NS87415=m +CONFIG_PATA_OF_PLATFORM=m +CONFIG_PATA_OLDPIIX=m +CONFIG_PATA_OPTI=m +CONFIG_PATA_OPTIDMA=m +CONFIG_PATA_PCMCIA=m +CONFIG_PATA_PDC2027X=m +CONFIG_PATA_PDC_OLD=m +CONFIG_PATA_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_SIS=y +CONFIG_PATA_TOSHIBA=m +CONFIG_PATA_TRIFLEX=m +CONFIG_PATA_VIA=m +CONFIG_PATA_WINBOND=m +CONFIG_PATA_WINBOND_VLB=m +CONFIG_PC300TOO=m +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_PCIEASPM_DEFAULT=y +# CONFIG_PCIEASPM_PERFORMANCE is not set +# CONFIG_PCIEASPM_POWERSAVE 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_ATS=y +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_IOAPIC=y +CONFIG_PCI_IOV=y +CONFIG_PCI_LABEL=y +CONFIG_PCI_MMCONFIG=y +CONFIG_PCI_MSI=y +CONFIG_PCI_PASID=y +CONFIG_PCI_PRI=y +CONFIG_PCI_QUIRKS=y +CONFIG_PCI_REALLOC_ENABLE_AUTO=y +CONFIG_PCI_STUB=m +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_LOAD_CIS=y +CONFIG_PCMCIA_NINJA_SCSI=m +CONFIG_PCMCIA_NMCLAN=m +CONFIG_PCMCIA_PCNET=m +CONFIG_PCMCIA_PROBE=y +CONFIG_PCMCIA_QLOGIC=m +CONFIG_PCMCIA_RAYCS=m +CONFIG_PCMCIA_SMC91C92=m +CONFIG_PCMCIA_SPECTRUM=m +CONFIG_PCMCIA_SYM53C500=m +CONFIG_PCMCIA_WL3501=m +CONFIG_PCMCIA_XIRC2PS=m +CONFIG_PCMCIA_XIRCOM=m +CONFIG_PCNET32=m +CONFIG_PCSPKR_PLATFORM=y +CONFIG_PCWATCHDOG=m +CONFIG_PD6729=m +CONFIG_PDA_POWER=m +CONFIG_PDC_ADMA=m +CONFIG_PERCPU_RWSEM=y +CONFIG_PERF_EVENTS=y +CONFIG_PERF_USE_VMALLOC=y +CONFIG_PHANTOM=m +CONFIG_PHONET=m +CONFIG_PHYLIB=y +CONFIG_PHYSICAL_ALIGN=0x1000000 +CONFIG_PHYSICAL_START=0x1000000 +# CONFIG_PID_IN_CONTEXTIDR is not set +CONFIG_PID_NS=y +CONFIG_PINCONF=y +CONFIG_PINCTRL=y +CONFIG_PINCTRL_IMX=y +CONFIG_PINCTRL_IMX6Q=y +CONFIG_PINCTRL_IMX6SL=y +CONFIG_PINCTRL_SINGLE=y +CONFIG_PINCTRL_TEGRA=y +CONFIG_PINCTRL_TEGRA114=y +CONFIG_PINCTRL_TEGRA20=y +CONFIG_PINCTRL_TEGRA30=y +CONFIG_PINCTRL_VF610=y +CONFIG_PINMUX=y +CONFIG_PL310_ERRATA_588369=y +CONFIG_PL310_ERRATA_727915=y +CONFIG_PL310_ERRATA_753970=y +CONFIG_PL310_ERRATA_769419=y +CONFIG_PL320_MBOX=y +CONFIG_PL330_DMA=m +# CONFIG_PLAT_SPEAR is not set +CONFIG_PLAT_VERSATILE=y +CONFIG_PLAT_VERSATILE_CLCD=y +CONFIG_PLAT_VERSATILE_SCHED_CLOCK=y +CONFIG_PLIP=m +CONFIG_PLX_HERMES=m +CONFIG_PM=y +CONFIG_PMBUS=m +CONFIG_PMIC_ADP5520=y +CONFIG_PMIC_DA903X=y +CONFIG_PMIC_DA9052=y +CONFIG_PM_ADVANCED_DEBUG=y +# CONFIG_PM_AUTOSLEEP is not set +CONFIG_PM_CLK=y +CONFIG_PM_DEBUG=y +CONFIG_PM_DEVFREQ=y +CONFIG_PM_NOTIFIER_ERROR_INJECT=m +CONFIG_PM_OPP=y +CONFIG_PM_RUNTIME=y +CONFIG_PM_SLEEP=y +CONFIG_PM_SLEEP_DEBUG=y +CONFIG_PM_SLEEP_SMP=y +CONFIG_PM_STD_PARTITION="" +# CONFIG_PM_TEST_SUSPEND is not set +CONFIG_PM_TRACE=y +CONFIG_PM_TRACE_RTC=y +CONFIG_PM_WAKELOCKS_GC=y +CONFIG_PM_WAKELOCKS_LIMIT=100 +CONFIG_PNFS_BLOCK=m +CONFIG_PNFS_FILE_LAYOUT=m +CONFIG_PNFS_OBJLAYOUT=m +CONFIG_PNP=y +CONFIG_PNPACPI=y +CONFIG_PNPBIOS=y +CONFIG_PNPBIOS_PROC_FS=y +# CONFIG_PNP_DEBUG_MESSAGES is not set +CONFIG_POSIX_MQUEUE=y +CONFIG_POSIX_MQUEUE_SYSCTL=y +CONFIG_POWER_AVS=y +CONFIG_POWER_AVS_OMAP=y +CONFIG_POWER_AVS_OMAP_CLASS3=y +CONFIG_POWER_RESET=y +CONFIG_POWER_RESET_GPIO=y +CONFIG_POWER_RESET_RESTART=y +CONFIG_POWER_RESET_VEXPRESS=y +CONFIG_POWER_SUPPLY=y +# CONFIG_POWER_SUPPLY_DEBUG is not set +CONFIG_PPDEV=m +CONFIG_PPP=y +CONFIG_PPPOATM=m +CONFIG_PPPOE=m +CONFIG_PPPOL2TP=m +CONFIG_PPP_ASYNC=m +CONFIG_PPP_BSDCOMP=m +CONFIG_PPP_DEFLATE=m +CONFIG_PPP_FILTER=y +CONFIG_PPP_MPPE=m +CONFIG_PPP_MULTILINK=y +CONFIG_PPP_SYNC_TTY=m +CONFIG_PPS_CLIENT_GPIO=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_PREEMPT is not set +# CONFIG_PREEMPT_NONE is not set +CONFIG_PREEMPT_NOTIFIERS=y +# CONFIG_PREEMPT_RCU is not set +CONFIG_PREEMPT_VOLUNTARY=y +CONFIG_PREVENT_FIRMWARE_BUILD=y +CONFIG_PRINTER=m +CONFIG_PRINTK=y +CONFIG_PRINTK_TIME=y +# CONFIG_PRINT_QUOTA_WARNING is not set +CONFIG_PRISM2_USB=m +# CONFIG_PRISM54 is not set +CONFIG_PROBE_EVENTS=y +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_PROVE_LOCKING is not set +# CONFIG_PROVIDE_OHCI1394_DMA_INIT is not set +CONFIG_PSTORE=y +# CONFIG_PSTORE_FTRACE is not set +CONFIG_PTP_1588_CLOCK_PCH=m +CONFIG_PUBLIC_KEY_ALGO_RSA=y +CONFIG_PVPANIC=m +CONFIG_PWM=y +# CONFIG_PWM_IMX is not set +CONFIG_PWM_PCA9685=m +CONFIG_PWM_SYSFS=y +CONFIG_PWM_TEGRA=m +CONFIG_PWM_TWL=m +CONFIG_PWM_TWL_LED=m +CONFIG_QFMT_V1=m +CONFIG_QFMT_V2=m +CONFIG_QLA3XXX=m +CONFIG_QLCNIC=m +CONFIG_QLCNIC_SRIOV=y +CONFIG_QLGE=m +CONFIG_QNX4FS_FS=m +# CONFIG_QNX6FS_DEBUG is not set +CONFIG_QNX6FS_FS=m +CONFIG_QSEMI_PHY=y +CONFIG_QUOTA=y +CONFIG_QUOTACTL=y +CONFIG_QUOTACTL_COMPAT=y +# CONFIG_QUOTA_DEBUG is not set +CONFIG_QUOTA_NETLINK_INTERFACE=y +CONFIG_QUOTA_TREE=m +CONFIG_R3964=m +CONFIG_R6040=m +CONFIG_R8169=m +CONFIG_R8187SE=m +CONFIG_R8712U=m +CONFIG_RADIO_ADAPTERS=y +CONFIG_RADIO_AZTECH=m +CONFIG_RADIO_CADET=m +CONFIG_RADIO_GEMTEK=m +CONFIG_RADIO_ISA=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_SHARK=m +CONFIG_RADIO_SHARK2=m +CONFIG_RADIO_SI470X=y +CONFIG_RADIO_SI4713=m +CONFIG_RADIO_SI476X=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_WL128X=m +CONFIG_RADIO_ZOLTRIX=m +CONFIG_RAID6_PQ=m +CONFIG_RAID_ATTRS=m +CONFIG_RAPIDIO=y +CONFIG_RAPIDIO_CPS_GEN2=y +CONFIG_RAPIDIO_CPS_XX=y +# CONFIG_RAPIDIO_DEBUG is not set +CONFIG_RAPIDIO_DISC_TIMEOUT=30 +CONFIG_RAPIDIO_DMA_ENGINE=y +# CONFIG_RAPIDIO_ENABLE_RX_TX_PORTS is not set +CONFIG_RAPIDIO_ENUM_BASIC=m +CONFIG_RAPIDIO_TSI568=y +CONFIG_RAPIDIO_TSI57X=y +CONFIG_RAPIDIO_TSI721=y +CONFIG_RATIONAL=y +CONFIG_RAW_DRIVER=m +CONFIG_RBTREE_TEST=m +# CONFIG_RCU_CPU_STALL_INFO is not set +CONFIG_RCU_CPU_STALL_TIMEOUT=60 +# CONFIG_RCU_FANOUT_EXACT is not set +CONFIG_RCU_FANOUT_LEAF=16 +CONFIG_RCU_FAST_NO_HZ=y +CONFIG_RCU_NOCB_CPU_ALL=y +# CONFIG_RCU_NOCB_CPU_NONE is not set +# CONFIG_RCU_NOCB_CPU_ZERO is not set +CONFIG_RCU_STALL_COMMON=y +# CONFIG_RCU_TORTURE_TEST is not set +# CONFIG_RCU_TRACE is not set +CONFIG_RC_ATI_REMOTE=m +CONFIG_RC_CORE=m +CONFIG_RC_DECODERS=y +CONFIG_RC_DEVICES=y +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_LZ4=y +CONFIG_RD_LZMA=y +CONFIG_RD_LZO=y +CONFIG_RD_XZ=y +# CONFIG_READABLE_ASM is not set +CONFIG_REALTEK_AUTOPM=y +CONFIG_REALTEK_PHY=y +CONFIG_REED_SOLOMON_DEC16=y +CONFIG_REED_SOLOMON_DEC8=y +CONFIG_REED_SOLOMON_ENC8=y +CONFIG_REGMAP=y +CONFIG_REGMAP_I2C=y +CONFIG_REGMAP_IRQ=y +CONFIG_REGMAP_MMIO=y +CONFIG_REGMAP_SPI=y +CONFIG_REGULATOR=y +CONFIG_REGULATOR_88PM8607=y +CONFIG_REGULATOR_AAT2870=m +CONFIG_REGULATOR_AB3100=m +CONFIG_REGULATOR_AD5398=m +CONFIG_REGULATOR_ANATOP=m +CONFIG_REGULATOR_ARIZONA=m +CONFIG_REGULATOR_AS3711=m +CONFIG_REGULATOR_DA903X=m +CONFIG_REGULATOR_DA9052=m +CONFIG_REGULATOR_DA9055=m +# CONFIG_REGULATOR_DEBUG is not set +# CONFIG_REGULATOR_DUMMY is not set +CONFIG_REGULATOR_FAN53555=m +CONFIG_REGULATOR_GPIO=m +CONFIG_REGULATOR_ISL6271A=m +CONFIG_REGULATOR_LP3971=m +CONFIG_REGULATOR_LP3972=m +CONFIG_REGULATOR_LP872X=y +CONFIG_REGULATOR_LP8755=m +CONFIG_REGULATOR_LP8788=y +CONFIG_REGULATOR_MAX1586=m +CONFIG_REGULATOR_MAX77686=m +CONFIG_REGULATOR_MAX77693=m +CONFIG_REGULATOR_MAX8649=m +CONFIG_REGULATOR_MAX8660=m +CONFIG_REGULATOR_MAX8907=m +CONFIG_REGULATOR_MAX8925=m +CONFIG_REGULATOR_MAX8952=m +CONFIG_REGULATOR_MAX8973=m +CONFIG_REGULATOR_MAX8997=m +CONFIG_REGULATOR_MAX8998=m +CONFIG_REGULATOR_MC13783=m +CONFIG_REGULATOR_MC13892=m +CONFIG_REGULATOR_MC13XXX_CORE=m +CONFIG_REGULATOR_PALMAS=m +CONFIG_REGULATOR_PCAP=m +CONFIG_REGULATOR_PCF50633=m +CONFIG_REGULATOR_RC5T583=m +CONFIG_REGULATOR_S2MPS11=m +CONFIG_REGULATOR_S5M8767=m +CONFIG_REGULATOR_TI_ABB=y +CONFIG_REGULATOR_TPS51632=m +CONFIG_REGULATOR_TPS6105X=m +CONFIG_REGULATOR_TPS62360=m +CONFIG_REGULATOR_TPS65023=m +CONFIG_REGULATOR_TPS6507X=m +CONFIG_REGULATOR_TPS65090=m +CONFIG_REGULATOR_TPS65217=m +CONFIG_REGULATOR_TPS6524X=m +CONFIG_REGULATOR_TPS6586X=m +CONFIG_REGULATOR_TPS65910=m +CONFIG_REGULATOR_TPS65912=m +CONFIG_REGULATOR_TPS80031=m +CONFIG_REGULATOR_TWL4030=y +CONFIG_REGULATOR_USERSPACE_CONSUMER=m +CONFIG_REGULATOR_VEXPRESS=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_REMOTEPROC=m +CONFIG_RESET_CONTROLLER=y +CONFIG_RESOURCE_COUNTERS=y +CONFIG_RETU_WATCHDOG=m +CONFIG_RFD_FTL=m +CONFIG_RFKILL=y +CONFIG_RFKILL_GPIO=m +CONFIG_RFKILL_INPUT=y +CONFIG_RFKILL_LEDS=y +CONFIG_RFKILL_REGULATOR=m +CONFIG_RFS_ACCEL=y +CONFIG_RING_BUFFER=y +CONFIG_RING_BUFFER_ALLOW_SWAP=y +# CONFIG_RING_BUFFER_BENCHMARK is not set +# CONFIG_RING_BUFFER_STARTUP_TEST is not set +CONFIG_RIONET=m +CONFIG_RIONET_RX_SIZE=128 +CONFIG_RIONET_TX_SIZE=128 +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_RPMSG=m +CONFIG_RPS=y +CONFIG_RT2400PCI=m +CONFIG_RT2500PCI=m +CONFIG_RT2500USB=m +CONFIG_RT2800PCI=m +CONFIG_RT2800PCI_RT3290=y +CONFIG_RT2800PCI_RT33XX=y +CONFIG_RT2800PCI_RT35XX=y +CONFIG_RT2800PCI_RT53XX=y +CONFIG_RT2800USB=m +CONFIG_RT2800USB_RT33XX=y +CONFIG_RT2800USB_RT35XX=y +CONFIG_RT2800USB_RT53XX=y +CONFIG_RT2800USB_RT55XX=y +CONFIG_RT2800_LIB=m +CONFIG_RT2X00=m +# CONFIG_RT2X00_DEBUG is not set +CONFIG_RT2X00_LIB=m +CONFIG_RT2X00_LIB_CRYPTO=y +CONFIG_RT2X00_LIB_FIRMWARE=y +CONFIG_RT2X00_LIB_LEDS=y +CONFIG_RT2X00_LIB_MMIO=m +CONFIG_RT2X00_LIB_PCI=m +CONFIG_RT2X00_LIB_USB=m +CONFIG_RT61PCI=m +CONFIG_RT73USB=m +CONFIG_RTC_CLASS=y +# CONFIG_RTC_DEBUG is not set +CONFIG_RTC_DRV_88PM80X=m +CONFIG_RTC_DRV_88PM860X=m +CONFIG_RTC_DRV_AB3100=m +CONFIG_RTC_DRV_BQ32K=m +CONFIG_RTC_DRV_BQ4802=m +CONFIG_RTC_DRV_DA9052=m +CONFIG_RTC_DRV_DA9055=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_DS2404=m +CONFIG_RTC_DRV_DS3232=m +CONFIG_RTC_DRV_DS3234=m +CONFIG_RTC_DRV_EM3027=m +CONFIG_RTC_DRV_FM3130=m +CONFIG_RTC_DRV_HID_SENSOR_TIME=m +# CONFIG_RTC_DRV_IMXDI is not set +CONFIG_RTC_DRV_ISL12022=m +CONFIG_RTC_DRV_ISL1208=m +CONFIG_RTC_DRV_LP8788=m +CONFIG_RTC_DRV_M41T80=m +CONFIG_RTC_DRV_M41T80_WDT=y +CONFIG_RTC_DRV_M41T93=m +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_MAX77686=m +CONFIG_RTC_DRV_MAX8907=m +CONFIG_RTC_DRV_MAX8925=m +CONFIG_RTC_DRV_MAX8997=m +CONFIG_RTC_DRV_MAX8998=m +CONFIG_RTC_DRV_MC13XXX=m +CONFIG_RTC_DRV_MSM6242=m +# CONFIG_RTC_DRV_MXC is not set +CONFIG_RTC_DRV_PALMAS=m +CONFIG_RTC_DRV_PCAP=m +CONFIG_RTC_DRV_PCF2123=m +CONFIG_RTC_DRV_PCF2127=m +CONFIG_RTC_DRV_PCF50633=m +CONFIG_RTC_DRV_PCF8523=m +CONFIG_RTC_DRV_PCF8563=m +CONFIG_RTC_DRV_PCF8583=m +CONFIG_RTC_DRV_PL030=m +CONFIG_RTC_DRV_PL031=y +CONFIG_RTC_DRV_R9701=m +CONFIG_RTC_DRV_RC5T583=m +CONFIG_RTC_DRV_RP5C01=m +CONFIG_RTC_DRV_RS5C348=m +CONFIG_RTC_DRV_RS5C372=m +CONFIG_RTC_DRV_RV3029C2=m +CONFIG_RTC_DRV_RX4581=m +CONFIG_RTC_DRV_RX8025=m +CONFIG_RTC_DRV_RX8581=m +CONFIG_RTC_DRV_S35390A=m +CONFIG_RTC_DRV_SNVS=m +CONFIG_RTC_DRV_STK17TA8=m +CONFIG_RTC_DRV_TEGRA=m +# CONFIG_RTC_DRV_TEST is not set +CONFIG_RTC_DRV_TPS6586X=m +CONFIG_RTC_DRV_TPS65910=m +CONFIG_RTC_DRV_TPS80031=m +CONFIG_RTC_DRV_TWL4030=y +CONFIG_RTC_DRV_V3020=m +CONFIG_RTC_DRV_VRTC=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_RTC_SYSTOHC=y +CONFIG_RTL8180=m +CONFIG_RTL8187=m +CONFIG_RTL8187_LEDS=y +CONFIG_RTL8188EE=m +CONFIG_RTL8192CE=m +CONFIG_RTL8192CU=m +CONFIG_RTL8192C_COMMON=m +CONFIG_RTL8192DE=m +CONFIG_RTL8192E=m +CONFIG_RTL8192SE=m +CONFIG_RTL8192U=m +CONFIG_RTL8723AE=m +CONFIG_RTLLIB=m +CONFIG_RTLLIB_CRYPTO_CCMP=m +CONFIG_RTLLIB_CRYPTO_TKIP=m +CONFIG_RTLLIB_CRYPTO_WEP=m +CONFIG_RTLWIFI=m +# CONFIG_RTLWIFI_DEBUG is not set +CONFIG_RTLWIFI_PCI=m +CONFIG_RTLWIFI_USB=m +CONFIG_RTL_CARDS=m +CONFIG_RTS5139=m +# CONFIG_RTS5139_DEBUG is not set +CONFIG_RT_GROUP_SCHED=y +CONFIG_RT_MUTEXES=y +# CONFIG_RT_MUTEX_TESTER is not set +CONFIG_RWSEM_GENERIC_SPINLOCK=y +CONFIG_RWSEM_XCHGADD_ALGORITHM=y +CONFIG_RXKAD=m +CONFIG_S2IO=m +# CONFIG_SAMPLES is not set +CONFIG_SAMSUNG_LAPTOP=m +CONFIG_SAMSUNG_Q10=m +CONFIG_SAMSUNG_USB2PHY=m +CONFIG_SAMSUNG_USB3PHY=m +CONFIG_SAMSUNG_USBPHY=m +CONFIG_SATA_ACARD_AHCI=m +CONFIG_SATA_AHCI=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_RCAR=m +CONFIG_SATA_SIL=m +CONFIG_SATA_SIL24=m +CONFIG_SATA_SIS=m +CONFIG_SATA_SVW=m +CONFIG_SATA_SX4=m +CONFIG_SATA_ULI=m +CONFIG_SATA_VIA=m +CONFIG_SATA_VITESSE=m +CONFIG_SATA_ZPODD=y +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_SBP_TARGET=m +CONFIG_SBYPASS=m +CONFIG_SC1200_WDT=m +CONFIG_SC520_WDT=m +CONFIG_SC92031=m +CONFIG_SCA3000=m +CONFIG_SCC=m +# CONFIG_SCC_DELAY is not set +# CONFIG_SCC_TRXECHO is not set +CONFIG_SCHEDSTATS=y +CONFIG_SCHED_AUTOGROUP=y +CONFIG_SCHED_DEBUG=y +CONFIG_SCHED_HRTICK=y +CONFIG_SCHED_MC=y +CONFIG_SCHED_OMIT_FRAME_POINTER=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_ACARD=m +CONFIG_SCSI_ADVANSYS=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_BFA_FC=m +CONFIG_SCSI_BNX2X_FCOE=m +CONFIG_SCSI_BNX2_ISCSI=m +CONFIG_SCSI_BUSLOGIC=m +CONFIG_SCSI_CHELSIO_FCOE=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=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_FLASHPOINT=y +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_IMM=m +CONFIG_SCSI_IN2000=m +CONFIG_SCSI_INIA100=m +CONFIG_SCSI_INITIO=m +CONFIG_SCSI_IPR=m +# CONFIG_SCSI_IPR_DUMP is not set +# CONFIG_SCSI_IPR_TRACE is not set +CONFIG_SCSI_IPS=m +CONFIG_SCSI_ISCI=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 is not set +CONFIG_SCSI_MOD=y +CONFIG_SCSI_MPT2SAS=m +# CONFIG_SCSI_MPT2SAS_LOGGING is not set +CONFIG_SCSI_MPT2SAS_MAX_SGE=128 +CONFIG_SCSI_MPT3SAS=m +# CONFIG_SCSI_MPT3SAS_LOGGING is not set +CONFIG_SCSI_MPT3SAS_MAX_SGE=128 +CONFIG_SCSI_MULTI_LUN=y +CONFIG_SCSI_MVSAS=m +# CONFIG_SCSI_MVSAS_DEBUG is not set +# CONFIG_SCSI_MVSAS_TASKLET is not set +CONFIG_SCSI_MVUMI=m +CONFIG_SCSI_NCR53C406A=m +CONFIG_SCSI_NETLINK=y +CONFIG_SCSI_NSP32=m +# CONFIG_SCSI_OSD_DEBUG is not set +CONFIG_SCSI_OSD_DPRINT_SENSE=1 +CONFIG_SCSI_OSD_INITIATOR=m +CONFIG_SCSI_OSD_ULD=m +CONFIG_SCSI_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_QLA_ISCSI=m +CONFIG_SCSI_QLOGIC_1280=m +CONFIG_SCSI_QLOGIC_FAS=m +CONFIG_SCSI_SAS_ATA=y +CONFIG_SCSI_SAS_ATTRS=m +CONFIG_SCSI_SAS_HOST_SMP=y +CONFIG_SCSI_SAS_LIBSAS=m +CONFIG_SCSI_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_2=m +CONFIG_SCSI_SYM53C8XX_DEFAULT_TAGS=16 +CONFIG_SCSI_SYM53C8XX_DMA_ADDRESSING_MODE=1 +CONFIG_SCSI_SYM53C8XX_MAX_TAGS=64 +CONFIG_SCSI_SYM53C8XX_MMIO=y +CONFIG_SCSI_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_UFSHCD=m +CONFIG_SCSI_UFSHCD_PCI=m +CONFIG_SCSI_UFSHCD_PLATFORM=m +CONFIG_SCSI_ULTRASTOR=m +CONFIG_SCSI_VIRTIO=m +CONFIG_SCTP_COOKIE_HMAC_MD5=y +CONFIG_SCTP_COOKIE_HMAC_SHA1=y +# CONFIG_SCTP_DBG_OBJCNT is not set +# CONFIG_SCTP_DEFAULT_COOKIE_HMAC_MD5 is not set +# CONFIG_SCTP_DEFAULT_COOKIE_HMAC_NONE is not set +CONFIG_SCTP_DEFAULT_COOKIE_HMAC_SHA1=y +CONFIG_SCx200=m +CONFIG_SCx200HR_TIMER=m +CONFIG_SCx200_ACB=m +CONFIG_SCx200_GPIO=m +# CONFIG_SCx200_I2C is not set +CONFIG_SCx200_WDT=m +CONFIG_SDIO_UART=m +CONFIG_SDLA=m +CONFIG_SEALEVEL_4021=m +CONFIG_SECCOMP=y +CONFIG_SECCOMP_FILTER=y +CONFIG_SECURITY=y +CONFIG_SECURITYFS=y +CONFIG_SECURITY_APPARMOR=y +CONFIG_SECURITY_APPARMOR_BOOTPARAM_VALUE=1 +CONFIG_SECURITY_APPARMOR_HASH=y +# CONFIG_SECURITY_APPARMOR_STATS is not set +CONFIG_SECURITY_APPARMOR_UNCONFINED_INIT=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_TOMOYO_ACTIVATION_TRIGGER="/sbin/init" +CONFIG_SECURITY_TOMOYO_MAX_ACCEPT_ENTRY=2048 +CONFIG_SECURITY_TOMOYO_MAX_AUDIT_LOG=1024 +# CONFIG_SECURITY_TOMOYO_OMIT_USERSPACE_LOADER is not set +CONFIG_SECURITY_TOMOYO_POLICY_LOADER="/sbin/tomoyo-init" +CONFIG_SECURITY_YAMA=y +CONFIG_SECURITY_YAMA_STACKED=y +CONFIG_SELECT_MEMORY_MODEL=y +CONFIG_SENSORS_ABITUGURU=m +CONFIG_SENSORS_ABITUGURU3=m +CONFIG_SENSORS_ACPI_POWER=m +CONFIG_SENSORS_AD7314=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_ADM1275=m +CONFIG_SENSORS_ADM9240=m +CONFIG_SENSORS_ADS1015=m +CONFIG_SENSORS_ADS7828=m +CONFIG_SENSORS_ADS7871=m +CONFIG_SENSORS_ADT7310=m +CONFIG_SENSORS_ADT7410=m +CONFIG_SENSORS_ADT7411=m +CONFIG_SENSORS_ADT7462=m +CONFIG_SENSORS_ADT7470=m +CONFIG_SENSORS_ADT7475=m +CONFIG_SENSORS_ADT7X10=m +CONFIG_SENSORS_AMC6821=m +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_DA9052_ADC=m +CONFIG_SENSORS_DA9055=m +CONFIG_SENSORS_DME1737=m +CONFIG_SENSORS_DS1621=m +CONFIG_SENSORS_DS620=m +CONFIG_SENSORS_EMC1403=m +CONFIG_SENSORS_EMC2103=m +CONFIG_SENSORS_EMC6W201=m +CONFIG_SENSORS_F71805F=m +CONFIG_SENSORS_F71882FG=m +CONFIG_SENSORS_F75375S=m +CONFIG_SENSORS_FAM15H_POWER=m +CONFIG_SENSORS_FSCHMD=m +CONFIG_SENSORS_G760A=m +CONFIG_SENSORS_G762=m +CONFIG_SENSORS_GL518SM=m +CONFIG_SENSORS_GL520SM=m +CONFIG_SENSORS_GPIO_FAN=m +CONFIG_SENSORS_HDAPS=m +CONFIG_SENSORS_HIH6130=m +CONFIG_SENSORS_HMC5843=m +CONFIG_SENSORS_I5K_AMB=m +CONFIG_SENSORS_IBMAEM=m +CONFIG_SENSORS_IBMPEX=m +CONFIG_SENSORS_IIO_HWMON=m +CONFIG_SENSORS_INA209=m +CONFIG_SENSORS_INA2XX=m +CONFIG_SENSORS_ISL29018=m +CONFIG_SENSORS_ISL29028=m +CONFIG_SENSORS_IT87=m +CONFIG_SENSORS_JC42=m +CONFIG_SENSORS_K10TEMP=m +CONFIG_SENSORS_K8TEMP=m +CONFIG_SENSORS_LINEAGE=m +CONFIG_SENSORS_LIS3LV02D=m +CONFIG_SENSORS_LIS3_I2C=m +CONFIG_SENSORS_LIS3_SPI=m +CONFIG_SENSORS_LM25066=m +CONFIG_SENSORS_LM3533=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_LM95234=m +CONFIG_SENSORS_LM95241=m +CONFIG_SENSORS_LM95245=m +CONFIG_SENSORS_LTC2978=m +CONFIG_SENSORS_LTC4151=m +CONFIG_SENSORS_LTC4215=m +CONFIG_SENSORS_LTC4245=m +CONFIG_SENSORS_LTC4261=m +CONFIG_SENSORS_MAX1111=m +CONFIG_SENSORS_MAX16064=m +CONFIG_SENSORS_MAX16065=m +CONFIG_SENSORS_MAX1619=m +CONFIG_SENSORS_MAX1668=m +CONFIG_SENSORS_MAX197=m +CONFIG_SENSORS_MAX34440=m +CONFIG_SENSORS_MAX6639=m +CONFIG_SENSORS_MAX6642=m +CONFIG_SENSORS_MAX6650=m +CONFIG_SENSORS_MAX6697=m +CONFIG_SENSORS_MAX8688=m +CONFIG_SENSORS_MC13783_ADC=m +CONFIG_SENSORS_MCP3021=m +CONFIG_SENSORS_NCT6775=m +CONFIG_SENSORS_NTC_THERMISTOR=m +CONFIG_SENSORS_PC87360=m +CONFIG_SENSORS_PC87427=m +CONFIG_SENSORS_PCF8591=m +CONFIG_SENSORS_PMBUS=m +CONFIG_SENSORS_SCH5627=m +CONFIG_SENSORS_SCH5636=m +CONFIG_SENSORS_SCH56XX_COMMON=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_TWL4030_MADC=m +CONFIG_SENSORS_UCD9000=m +CONFIG_SENSORS_UCD9200=m +CONFIG_SENSORS_VEXPRESS=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_SENSORS_ZL6100=m +CONFIG_SERIAL_8250=y +CONFIG_SERIAL_8250_ACCENT=m +CONFIG_SERIAL_8250_BOCA=m +CONFIG_SERIAL_8250_CONSOLE=y +CONFIG_SERIAL_8250_CS=m +# CONFIG_SERIAL_8250_DEPRECATED_OPTIONS is not set +# CONFIG_SERIAL_8250_DETECT_IRQ is not set +CONFIG_SERIAL_8250_DMA=y +CONFIG_SERIAL_8250_DW=m +# CONFIG_SERIAL_8250_EM 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_NR_UARTS=48 +CONFIG_SERIAL_8250_PCI=y +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=m +CONFIG_SERIAL_AMBA_PL011=y +CONFIG_SERIAL_AMBA_PL011_CONSOLE=y +CONFIG_SERIAL_ARC=m +CONFIG_SERIAL_ARC_NR_PORTS=1 +CONFIG_SERIAL_CORE=y +CONFIG_SERIAL_CORE_CONSOLE=y +CONFIG_SERIAL_FSL_LPUART=m +# CONFIG_SERIAL_IFX6X60 is not set +CONFIG_SERIAL_IMX=y +CONFIG_SERIAL_IMX_CONSOLE=y +CONFIG_SERIAL_IPOCTAL=m +CONFIG_SERIAL_JSM=m +CONFIG_SERIAL_KGDB_NMI=y +CONFIG_SERIAL_MAX3100=m +CONFIG_SERIAL_MAX310X=y +CONFIG_SERIAL_MFD_HSU=m +CONFIG_SERIAL_MRST_MAX3110=m +CONFIG_SERIAL_NONSTANDARD=y +CONFIG_SERIAL_OF_PLATFORM=y +CONFIG_SERIAL_OMAP=y +CONFIG_SERIAL_OMAP_CONSOLE=y +CONFIG_SERIAL_PCH_UART=m +CONFIG_SERIAL_RP2=m +CONFIG_SERIAL_RP2_NR_UARTS=32 +CONFIG_SERIAL_SCCNXP=y +CONFIG_SERIAL_SCCNXP_CONSOLE=y +CONFIG_SERIAL_TEGRA=m +CONFIG_SERIAL_TIMBERDALE=m +CONFIG_SERIAL_UARTLITE=m +CONFIG_SERIAL_XILINX_PS_UART=m +CONFIG_SERIO=y +CONFIG_SERIO_ALTERA_PS2=m +CONFIG_SERIO_AMBAKMI=m +CONFIG_SERIO_APBPS2=m +CONFIG_SERIO_ARC_PS2=m +CONFIG_SERIO_CT82C710=m +CONFIG_SERIO_I8042=y +CONFIG_SERIO_LIBPS2=y +CONFIG_SERIO_NVEC_PS2=m +CONFIG_SERIO_OLPC_APSP=m +CONFIG_SERIO_PARKBD=m +CONFIG_SERIO_PCIPS2=m +CONFIG_SERIO_PS2MULT=m +CONFIG_SERIO_RAW=m +CONFIG_SERIO_SERPORT=m +CONFIG_SFC=m +CONFIG_SFC_MCDI_MON=y +CONFIG_SFC_MTD=y +CONFIG_SFC_SRIOV=y +CONFIG_SFI=y +CONFIG_SGI_IOC4=m +CONFIG_SGI_PARTITION=y +CONFIG_SHMEM=y +CONFIG_SH_ETH=m +CONFIG_SIGMATEL_FIR=m +CONFIG_SIGNALFD=y +CONFIG_SIGNATURE=y +CONFIG_SIS190=m +CONFIG_SIS900=m +CONFIG_SKFP=m +CONFIG_SKGE=m +# CONFIG_SKGE_DEBUG is not set +CONFIG_SKGE_GENESIS=y +CONFIG_SKY2=m +# CONFIG_SKY2_DEBUG is not set +# CONFIG_SLAB is not set +CONFIG_SLABINFO=y +CONFIG_SLHC=y +CONFIG_SLICOSS=m +CONFIG_SLIP=m +CONFIG_SLIP_COMPRESSED=y +CONFIG_SLIP_MODE_SLIP6=y +CONFIG_SLIP_SMART=y +# CONFIG_SLOB is not set +CONFIG_SLUB=y +CONFIG_SLUB_CPU_PARTIAL=y +CONFIG_SLUB_DEBUG=y +# CONFIG_SLUB_DEBUG_ON is not set +# CONFIG_SLUB_STATS is not set +CONFIG_SMARTJOYPLUS_FF=y +CONFIG_SMC911X=m +CONFIG_SMC9194=m +CONFIG_SMC91X=m +CONFIG_SMC_IRCC_FIR=m +CONFIG_SMP=y +CONFIG_SMP_ON_UP=y +CONFIG_SMSC37B787_WDT=m +CONFIG_SMSC911X=m +# CONFIG_SMSC911X_ARCH_HOOKS is not set +CONFIG_SMSC9420=m +CONFIG_SMSC_PHY=y +CONFIG_SMSC_SCH311X_WDT=m +CONFIG_SMS_SDIO_DRV=m +CONFIG_SMS_SIANO_MDTV=m +CONFIG_SMS_SIANO_RC=y +CONFIG_SMS_USB_DRV=m +CONFIG_SM_FTL=m +CONFIG_SND_AC97_CODEC=m +CONFIG_SND_AC97_POWER_SAVE=y +CONFIG_SND_AC97_POWER_SAVE_DEFAULT=0 +CONFIG_SND_AD1816A=m +CONFIG_SND_AD1848=m +CONFIG_SND_AD1889=m +CONFIG_SND_ADLIB=m +CONFIG_SND_ALI5451=m +CONFIG_SND_ALOOP=m +CONFIG_SND_ALS100=m +CONFIG_SND_ALS300=m +CONFIG_SND_ALS4000=m +CONFIG_SND_ARM=y +CONFIG_SND_ARMAACI=m +CONFIG_SND_ASIHPI=m +CONFIG_SND_AT73C213=m +CONFIG_SND_AT73C213_TARGET_BITRATE=48000 +CONFIG_SND_ATIIXP=m +CONFIG_SND_ATIIXP_MODEM=m +CONFIG_SND_ATMEL_SOC=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_BT87X_OVERCLOCK is not set +CONFIG_SND_CA0106=m +CONFIG_SND_CMI8328=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=y +# CONFIG_SND_DEBUG_VERBOSE is not set +CONFIG_SND_DESIGNWARE_I2S=m +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_ES1968_RADIO=y +CONFIG_SND_FIREWIRE=y +CONFIG_SND_FIREWIRE_LIB=m +CONFIG_SND_FIREWIRE_SPEAKERS=m +CONFIG_SND_FM801=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_CA0132=y +CONFIG_SND_HDA_CODEC_CA0132_DSP=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_DSP_LOADER=y +CONFIG_SND_HDA_GENERIC=y +CONFIG_SND_HDA_HWDEP=y +CONFIG_SND_HDA_I915=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_DEFAULT=0 +CONFIG_SND_HDA_PREALLOC_SIZE=64 +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_IMX_SOC=y +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_ISIGHT=m +CONFIG_SND_JACK=y +CONFIG_SND_JAZZ16=m +CONFIG_SND_KCTL_JACK=y +CONFIG_SND_KORG1212=m +CONFIG_SND_LAYLA20=m +CONFIG_SND_LAYLA24=m +CONFIG_SND_LOLA=m +CONFIG_SND_LX6464ES=m +CONFIG_SND_MAESTRO3=m +CONFIG_SND_MAESTRO3_INPUT=y +CONFIG_SND_MAX_CARDS=32 +CONFIG_SND_MFLD_MACHINE=m +CONFIG_SND_MIA=m +CONFIG_SND_MIRO=m +CONFIG_SND_MIXART=m +# CONFIG_SND_MIXER_OSS is not set +CONFIG_SND_MONA=m +CONFIG_SND_MPU401=m +CONFIG_SND_MPU401_UART=m +CONFIG_SND_MSND_CLASSIC=m +CONFIG_SND_MSND_PINNACLE=m +CONFIG_SND_MTPAV=m +CONFIG_SND_MTS64=m +CONFIG_SND_NM256=m +CONFIG_SND_OMAP_SOC=y +CONFIG_SND_OMAP_SOC_DMIC=y +CONFIG_SND_OMAP_SOC_HDMI=y +CONFIG_SND_OMAP_SOC_MCBSP=y +CONFIG_SND_OMAP_SOC_MCPDM=y +CONFIG_SND_OMAP_SOC_OMAP3_PANDORA=m +CONFIG_SND_OMAP_SOC_OMAP_ABE_TWL6040=y +CONFIG_SND_OMAP_SOC_OMAP_HDMI=y +CONFIG_SND_OMAP_SOC_OMAP_TWL4030=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_OXYGEN=m +CONFIG_SND_OXYGEN_LIB=m +CONFIG_SND_PCI=y +CONFIG_SND_PCMCIA=y +# CONFIG_SND_PCM_OSS is not set +CONFIG_SND_PCM_XRUN_DEBUG=y +CONFIG_SND_PCSP=m +CONFIG_SND_PCXHR=m +CONFIG_SND_PDAUDIOCF=m +CONFIG_SND_PORTMAN2X4=m +CONFIG_SND_RAWMIDI=m +CONFIG_SND_RAWMIDI_SEQ=m +CONFIG_SND_RIPTIDE=m +CONFIG_SND_RME32=m +CONFIG_SND_RME96=m +CONFIG_SND_RME9652=m +CONFIG_SND_SB16=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_SCS1X=m +CONFIG_SND_SEQUENCER=m +# CONFIG_SND_SEQUENCER_OSS is not set +CONFIG_SND_SEQ_DUMMY=m +CONFIG_SND_SEQ_HRTIMER_DEFAULT=y +CONFIG_SND_SERIAL_U16550=m +CONFIG_SND_SIMPLE_CARD=m +CONFIG_SND_SIS7019=m +CONFIG_SND_SOC_88PM860X=m +CONFIG_SND_SOC_AB8500_CODEC=m +CONFIG_SND_SOC_AC97_BUS=y +CONFIG_SND_SOC_AC97_CODEC=m +CONFIG_SND_SOC_AD1836=m +CONFIG_SND_SOC_AD193X=m +CONFIG_SND_SOC_AD1980=m +CONFIG_SND_SOC_AD73311=m +CONFIG_SND_SOC_ADAU1373=m +CONFIG_SND_SOC_ADAV80X=m +CONFIG_SND_SOC_ADS117X=m +CONFIG_SND_SOC_AK4104=m +CONFIG_SND_SOC_AK4535=m +CONFIG_SND_SOC_AK4641=m +CONFIG_SND_SOC_AK4642=m +CONFIG_SND_SOC_AK4671=m +CONFIG_SND_SOC_AK5386=m +CONFIG_SND_SOC_ALC5623=m +CONFIG_SND_SOC_ALC5632=m +CONFIG_SND_SOC_ALL_CODECS=m +CONFIG_SND_SOC_ARIZONA=m +CONFIG_SND_SOC_BT_SCO=m +CONFIG_SND_SOC_CS4270=m +CONFIG_SND_SOC_CS4271=m +CONFIG_SND_SOC_CS42L51=m +CONFIG_SND_SOC_CS42L52=m +CONFIG_SND_SOC_CS42L73=m +CONFIG_SND_SOC_CX20442=m +CONFIG_SND_SOC_DA7210=m +CONFIG_SND_SOC_DA7213=m +CONFIG_SND_SOC_DA732X=m +CONFIG_SND_SOC_DA9055=m +CONFIG_SND_SOC_DMAENGINE_PCM=y +CONFIG_SND_SOC_DMIC=y +CONFIG_SND_SOC_FSL_SSI=y +CONFIG_SND_SOC_FSL_UTILS=y +CONFIG_SND_SOC_GENERIC_DMAENGINE_PCM=y +CONFIG_SND_SOC_IMX_AUDMUX=y +CONFIG_SND_SOC_IMX_MC13783=m +CONFIG_SND_SOC_IMX_PCM_DMA=y +CONFIG_SND_SOC_IMX_SGTL5000=y +CONFIG_SND_SOC_IMX_SSI=m +CONFIG_SND_SOC_IMX_WM8962=m +CONFIG_SND_SOC_ISABELLE=m +CONFIG_SND_SOC_JZ4740_CODEC=m +CONFIG_SND_SOC_L3=m +CONFIG_SND_SOC_LM4857=m +CONFIG_SND_SOC_LM49453=m +CONFIG_SND_SOC_MAX9768=m +CONFIG_SND_SOC_MAX98088=m +CONFIG_SND_SOC_MAX98090=m +CONFIG_SND_SOC_MAX98095=m +CONFIG_SND_SOC_MAX9850=m +CONFIG_SND_SOC_MAX9877=m +CONFIG_SND_SOC_MC13783=m +CONFIG_SND_SOC_ML26124=m +CONFIG_SND_SOC_PCM3008=m +CONFIG_SND_SOC_RT5631=m +CONFIG_SND_SOC_RT5640=m +CONFIG_SND_SOC_SI476X=m +CONFIG_SND_SOC_SN95031=m +CONFIG_SND_SOC_SPDIF=m +CONFIG_SND_SOC_SSM2518=m +CONFIG_SND_SOC_SSM2602=m +CONFIG_SND_SOC_STA32X=m +CONFIG_SND_SOC_STA529=m +CONFIG_SND_SOC_STAC9766=m +CONFIG_SND_SOC_TAS5086=m +CONFIG_SND_SOC_TEGRA=m +CONFIG_SND_SOC_TEGRA20_AC97=m +CONFIG_SND_SOC_TEGRA20_DAS=m +CONFIG_SND_SOC_TEGRA20_I2S=m +CONFIG_SND_SOC_TEGRA20_SPDIF=m +CONFIG_SND_SOC_TEGRA30_AHUB=m +CONFIG_SND_SOC_TEGRA30_I2S=m +CONFIG_SND_SOC_TEGRA_ALC5632=m +CONFIG_SND_SOC_TEGRA_RT5640=m +CONFIG_SND_SOC_TEGRA_TRIMSLICE=m +CONFIG_SND_SOC_TEGRA_WM8753=m +CONFIG_SND_SOC_TEGRA_WM8903=m +CONFIG_SND_SOC_TEGRA_WM9712=m +CONFIG_SND_SOC_TLV320AIC23=m +CONFIG_SND_SOC_TLV320AIC26=m +CONFIG_SND_SOC_TLV320AIC32X4=m +CONFIG_SND_SOC_TLV320AIC3X=m +CONFIG_SND_SOC_TLV320DAC33=m +CONFIG_SND_SOC_TPA6130A2=m +CONFIG_SND_SOC_UDA134X=m +CONFIG_SND_SOC_UDA1380=m +CONFIG_SND_SOC_WL1273=m +CONFIG_SND_SOC_WM0010=m +CONFIG_SND_SOC_WM1250_EV1=m +CONFIG_SND_SOC_WM2000=m +CONFIG_SND_SOC_WM2200=m +CONFIG_SND_SOC_WM5100=m +CONFIG_SND_SOC_WM5102=m +CONFIG_SND_SOC_WM5110=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_WM8782=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_WM8983=m +CONFIG_SND_SOC_WM8985=m +CONFIG_SND_SOC_WM8988=m +CONFIG_SND_SOC_WM8990=m +CONFIG_SND_SOC_WM8991=m +CONFIG_SND_SOC_WM8993=m +CONFIG_SND_SOC_WM8994=m +CONFIG_SND_SOC_WM8995=m +CONFIG_SND_SOC_WM8996=m +CONFIG_SND_SOC_WM9081=m +CONFIG_SND_SOC_WM9090=m +CONFIG_SND_SOC_WM9705=m +CONFIG_SND_SOC_WM9712=m +CONFIG_SND_SOC_WM9713=m +CONFIG_SND_SOC_WM_ADSP=m +CONFIG_SND_SOC_WM_HUBS=m +CONFIG_SND_SONICVIBES=m +CONFIG_SND_SPI=y +CONFIG_SND_SSCAPE=m +CONFIG_SND_SST_PLATFORM=m +CONFIG_SND_SUPPORT_OLD_API=y +CONFIG_SND_TEA575X=m +CONFIG_SND_TRIDENT=m +CONFIG_SND_USB=y +CONFIG_SND_USB_6FIRE=m +CONFIG_SND_USB_AUDIO=m +CONFIG_SND_USB_CAIAQ=m +CONFIG_SND_USB_CAIAQ_INPUT=y +CONFIG_SND_USB_HIFACE=m +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_AM33XX is not set +# CONFIG_SOC_AM43XX is not set +CONFIG_SOC_BUS=y +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_OV5642=m +CONFIG_SOC_CAMERA_OV6650=m +CONFIG_SOC_CAMERA_OV772X=m +CONFIG_SOC_CAMERA_OV9640=m +CONFIG_SOC_CAMERA_OV9740=m +CONFIG_SOC_CAMERA_PLATFORM=m +CONFIG_SOC_CAMERA_RJ54N1=m +CONFIG_SOC_CAMERA_SCALE_CROP=m +CONFIG_SOC_CAMERA_TW9910=m +CONFIG_SOC_HAS_OMAP2_SDRC=y +# CONFIG_SOC_IMX53 is not set +CONFIG_SOC_IMX6Q=y +CONFIG_SOC_IMX6SL=y +CONFIG_SOC_OMAP3430=y +# CONFIG_SOC_OMAP5 is not set +CONFIG_SOC_TI81XX=y +CONFIG_SOC_VF610=y +CONFIG_SOFT_WATCHDOG=m +CONFIG_SOLARIS_X86_PARTITION=y +CONFIG_SOLO6X10=m +CONFIG_SONYPI=m +CONFIG_SONYPI_COMPAT=y +CONFIG_SONY_LAPTOP=m +# CONFIG_SOUND_OSS_CORE is not set +# 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_IRQ=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_SPI=y +CONFIG_SPI_ALTERA=m +CONFIG_SPI_BITBANG=m +CONFIG_SPI_BUTTERFLY=m +# CONFIG_SPI_DEBUG is not set +CONFIG_SPI_DESIGNWARE=m +CONFIG_SPI_DW_MID_DMA=y +CONFIG_SPI_DW_MMIO=m +CONFIG_SPI_DW_PCI=m +CONFIG_SPI_FSL_LIB=y +CONFIG_SPI_FSL_SPI=y +CONFIG_SPI_GPIO=m +CONFIG_SPI_IMX=m +CONFIG_SPI_LM70_LLP=m +CONFIG_SPI_MASTER=y +CONFIG_SPI_OC_TINY=m +CONFIG_SPI_OMAP24XX=y +CONFIG_SPI_PL022=m +CONFIG_SPI_PXA2XX=m +CONFIG_SPI_PXA2XX_DMA=y +CONFIG_SPI_SC18IS602=m +CONFIG_SPI_SPIDEV=m +CONFIG_SPI_TEGRA114=m +CONFIG_SPI_TEGRA20_SFLASH=m +CONFIG_SPI_TEGRA20_SLINK=m +CONFIG_SPI_TLE62X0=m +CONFIG_SPI_TOPCLIFF_PCH=m +CONFIG_SPI_XCOMM=m +# CONFIG_SPI_XILINX is not set +CONFIG_SPLIT_PTLOCK_CPUS=4 +CONFIG_SQUASHFS=m +# CONFIG_SQUASHFS_4K_DEVBLK_SIZE is not set +# 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_SQUASHFS_ZLIB=y +CONFIG_SRAM=y +CONFIG_SSB=m +CONFIG_SSB_B43_PCI_BRIDGE=y +CONFIG_SSB_BLOCKIO=y +# CONFIG_SSB_DEBUG is not set +CONFIG_SSB_DRIVER_GPIO=y +CONFIG_SSB_DRIVER_PCICORE=y +CONFIG_SSB_DRIVER_PCICORE_POSSIBLE=y +CONFIG_SSB_PCIHOST=y +CONFIG_SSB_PCIHOST_POSSIBLE=y +# CONFIG_SSB_PCMCIAHOST is not set +CONFIG_SSB_PCMCIAHOST_POSSIBLE=y +CONFIG_SSB_POSSIBLE=y +CONFIG_SSB_SDIOHOST=y +CONFIG_SSB_SDIOHOST_POSSIBLE=y +# CONFIG_SSB_SILENT is not set +CONFIG_SSB_SPROM=y +CONFIG_SSFDC=m +CONFIG_STACKTRACE=y +CONFIG_STACKTRACE_SUPPORT=y +CONFIG_STAGING=y +CONFIG_STAGING_MEDIA=y +CONFIG_STE10XP=y +CONFIG_STE_MODEM_RPROC=m +# CONFIG_STMMAC_DA is not set +# CONFIG_STMMAC_DEBUG_FS is not set +CONFIG_STMMAC_ETH=m +# CONFIG_STMMAC_PCI is not set +CONFIG_STMMAC_PLATFORM=y +CONFIG_STMPE_I2C=y +CONFIG_STMPE_SPI=y +CONFIG_STMP_DEVICE=y +CONFIG_STOP_MACHINE=y +CONFIG_STP=m +CONFIG_STRICT_DEVMEM=y +# CONFIG_STRIP_ASM_SYMS is not set +CONFIG_SUNDANCE=m +# CONFIG_SUNDANCE_MMIO is not set +CONFIG_SUNGEM=m +CONFIG_SUNGEM_PHY=m +CONFIG_SUNRPC=m +CONFIG_SUNRPC_BACKCHANNEL=y +CONFIG_SUNRPC_DEBUG=y +CONFIG_SUNRPC_GSS=m +CONFIG_SUNRPC_SWAP=y +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=y +CONFIG_SYNCLINK=m +CONFIG_SYNCLINKMP=m +CONFIG_SYNCLINK_CS=m +CONFIG_SYNCLINK_GT=m +CONFIG_SYN_COOKIES=y +CONFIG_SYSCTL=y +CONFIG_SYSCTL_EXCEPTION_TRACE=y +CONFIG_SYSCTL_SYSCALL=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_HYPERVISOR=y +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_TABLET_USB_WACOM=m +CONFIG_TARGET_CORE=m +CONFIG_TASKSTATS=y +CONFIG_TASK_DELAY_ACCT=y +CONFIG_TASK_IO_ACCOUNTING=y +CONFIG_TASK_XACCT=y +CONFIG_TC1100_WMI=m +CONFIG_TCG_ATMEL=m +CONFIG_TCG_INFINEON=m +CONFIG_TCG_NSC=m +CONFIG_TCG_ST33_I2C=m +CONFIG_TCG_TIS=m +CONFIG_TCG_TIS_I2C_INFINEON=m +CONFIG_TCG_TPM=y +CONFIG_TCIC=m +CONFIG_TCM_FC=m +CONFIG_TCM_FILEIO=m +CONFIG_TCM_IBLOCK=m +CONFIG_TCM_PSCSI=m +CONFIG_TCM_QLA2XXX=m +CONFIG_TCP_CONG_ADVANCED=y +CONFIG_TCP_CONG_BIC=m +CONFIG_TCP_CONG_CUBIC=y +CONFIG_TCP_CONG_HSTCP=m +CONFIG_TCP_CONG_HTCP=m +CONFIG_TCP_CONG_HYBLA=m +CONFIG_TCP_CONG_ILLINOIS=m +CONFIG_TCP_CONG_LP=m +CONFIG_TCP_CONG_SCALABLE=m +CONFIG_TCP_CONG_VEGAS=m +CONFIG_TCP_CONG_VENO=m +CONFIG_TCP_CONG_WESTWOOD=m +CONFIG_TCP_CONG_YEAH=m +CONFIG_TCP_MD5SIG=y +CONFIG_TEGRA20_APB_DMA=y +CONFIG_TEGRA20_MC=y +CONFIG_TEGRA30_MC=y +CONFIG_TEGRA_AHB=y +CONFIG_TEGRA_EMC_SCALING_ENABLE=y +CONFIG_TEGRA_HOST1X_FIREWALL=y +CONFIG_TEGRA_IOMMU_GART=y +CONFIG_TEGRA_IOMMU_SMMU=y +CONFIG_TEGRA_PCI=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_TEST_STRING_HELPERS=m +CONFIG_TEXTSEARCH=y +CONFIG_TEXTSEARCH_BM=m +CONFIG_TEXTSEARCH_FSM=m +CONFIG_TEXTSEARCH_KMP=m +CONFIG_THERMAL=y +# CONFIG_THERMAL_DEFAULT_GOV_FAIR_SHARE is not set +CONFIG_THERMAL_DEFAULT_GOV_STEP_WISE=y +# CONFIG_THERMAL_DEFAULT_GOV_USER_SPACE is not set +CONFIG_THERMAL_EMULATION=y +CONFIG_THERMAL_GOV_FAIR_SHARE=y +CONFIG_THERMAL_GOV_STEP_WISE=y +CONFIG_THERMAL_GOV_USER_SPACE=y +CONFIG_THERMAL_HWMON=y +CONFIG_THINKPAD_ACPI=m +CONFIG_THINKPAD_ACPI_ALSA_SUPPORT=y +# CONFIG_THINKPAD_ACPI_DEBUG is not set +CONFIG_THINKPAD_ACPI_DEBUGFACILITIES=y +CONFIG_THINKPAD_ACPI_HOTKEY_POLL=y +# CONFIG_THINKPAD_ACPI_UNSAFE_LEDS is not set +CONFIG_THINKPAD_ACPI_VIDEO=y +CONFIG_THRUSTMASTER_FF=y +# CONFIG_THUMB2_KERNEL is not set +CONFIG_TICK_ONESHOT=y +CONFIG_TIFM_7XX1=m +CONFIG_TIFM_CORE=m +CONFIG_TIGON3=m +CONFIG_TIMB_DMA=m +CONFIG_TIMERFD=y +CONFIG_TIMER_STATS=y +CONFIG_TIPC=m +CONFIG_TIPC_MEDIA_IB=y +CONFIG_TIPC_PORTS=8191 +CONFIG_TI_ADC081C=m +CONFIG_TI_AM335X_ADC=m +CONFIG_TI_DAC7512=m +CONFIG_TI_DAVINCI_CPDMA=m +CONFIG_TI_DAVINCI_EMAC=m +CONFIG_TI_DAVINCI_MDIO=m +CONFIG_TI_EDMA=y +CONFIG_TI_EMIF=m +CONFIG_TI_PRIV_EDMA=y +CONFIG_TI_SOC_THERMAL=m +CONFIG_TI_ST=m +# CONFIG_TI_THERMAL is not set +CONFIG_TLAN=m +CONFIG_TMD_HERMES=m +CONFIG_TMPFS=y +CONFIG_TMPFS_POSIX_ACL=y +CONFIG_TMPFS_XATTR=y +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_ATMEL_MXT=m +CONFIG_TOUCHSCREEN_AUO_PIXCIR=m +CONFIG_TOUCHSCREEN_BU21013=m +CONFIG_TOUCHSCREEN_CLEARPAD_TM1217=m +CONFIG_TOUCHSCREEN_CY8CTMG110=m +CONFIG_TOUCHSCREEN_CYTTSP4_CORE=m +CONFIG_TOUCHSCREEN_CYTTSP4_I2C=m +CONFIG_TOUCHSCREEN_CYTTSP4_SPI=m +CONFIG_TOUCHSCREEN_CYTTSP_CORE=m +CONFIG_TOUCHSCREEN_CYTTSP_I2C=m +CONFIG_TOUCHSCREEN_CYTTSP_SPI=m +CONFIG_TOUCHSCREEN_DA9034=m +CONFIG_TOUCHSCREEN_DA9052=m +CONFIG_TOUCHSCREEN_DYNAPRO=m +CONFIG_TOUCHSCREEN_EDT_FT5X06=m +CONFIG_TOUCHSCREEN_EETI=m +CONFIG_TOUCHSCREEN_EGALAX=m +CONFIG_TOUCHSCREEN_ELO=m +CONFIG_TOUCHSCREEN_FUJITSU=m +CONFIG_TOUCHSCREEN_GUNZE=m +CONFIG_TOUCHSCREEN_HAMPSHIRE=m +CONFIG_TOUCHSCREEN_HTCPEN=m +CONFIG_TOUCHSCREEN_ILI210X=m +CONFIG_TOUCHSCREEN_INEXIO=m +CONFIG_TOUCHSCREEN_INTEL_MID=m +CONFIG_TOUCHSCREEN_MAX11801=m +CONFIG_TOUCHSCREEN_MC13783=m +CONFIG_TOUCHSCREEN_MCS5000=m +CONFIG_TOUCHSCREEN_MK712=m +CONFIG_TOUCHSCREEN_MMS114=m +CONFIG_TOUCHSCREEN_MTOUCH=m +CONFIG_TOUCHSCREEN_PCAP=m +CONFIG_TOUCHSCREEN_PENMOUNT=m +CONFIG_TOUCHSCREEN_PIXCIR=m +CONFIG_TOUCHSCREEN_ST1232=m +CONFIG_TOUCHSCREEN_STMPE=m +CONFIG_TOUCHSCREEN_SYNAPTICS_I2C_RMI4=m +CONFIG_TOUCHSCREEN_TI_AM335X_TSC=m +CONFIG_TOUCHSCREEN_TOUCHIT213=m +CONFIG_TOUCHSCREEN_TOUCHRIGHT=m +CONFIG_TOUCHSCREEN_TOUCHWIN=m +CONFIG_TOUCHSCREEN_TPS6507X=m +CONFIG_TOUCHSCREEN_TSC2005=m +CONFIG_TOUCHSCREEN_TSC2007=m +CONFIG_TOUCHSCREEN_TSC_SERIO=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_EASYTOUCH=y +CONFIG_TOUCHSCREEN_USB_EGALAX=y +CONFIG_TOUCHSCREEN_USB_ELO=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_I2C=m +CONFIG_TOUCHSCREEN_WACOM_W8001=m +CONFIG_TOUCHSCREEN_WM831X=m +CONFIG_TOUCHSCREEN_WM9705=y +CONFIG_TOUCHSCREEN_WM9712=y +CONFIG_TOUCHSCREEN_WM9713=y +CONFIG_TOUCHSCREEN_WM97XX=m +CONFIG_TPS6105X=m +CONFIG_TPS65010=m +CONFIG_TPS6507X=m +CONFIG_TRACEPOINTS=y +CONFIG_TRACER_MAX_TRACE=y +CONFIG_TRACER_SNAPSHOT=y +# CONFIG_TRACER_SNAPSHOT_PER_CPU_SWAP is not set +CONFIG_TRACE_CLOCK=y +CONFIG_TRACE_IRQFLAGS_SUPPORT=y +CONFIG_TRACE_ROUTER=m +CONFIG_TRACE_SINK=m +CONFIG_TRACING=y +CONFIG_TRACING_SUPPORT=y +CONFIG_TRANSPARENT_HUGEPAGE=y +# CONFIG_TRANSPARENT_HUGEPAGE_ALWAYS is not set +CONFIG_TRANSPARENT_HUGEPAGE_MADVISE=y +CONFIG_TRANZPORT=m +CONFIG_TREE_RCU=y +# CONFIG_TREE_RCU_TRACE is not set +CONFIG_TRUSTED_KEYS=y +CONFIG_TSL2583=m +CONFIG_TSL2x7x=m +CONFIG_TTPCI_EEPROM=m +CONFIG_TTY=y +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_TUN=y +CONFIG_TWL4030_MADC=m +CONFIG_TWL4030_POWER=y +CONFIG_TWL4030_USB=m +CONFIG_TWL4030_WATCHDOG=m +CONFIG_TWL6030_USB=m +CONFIG_TWL6040_CORE=y +CONFIG_TYPHOON=m +# CONFIG_UACCESS_WITH_MEMCPY is not set +CONFIG_UBIFS_FS=m +# CONFIG_UBIFS_FS_ADVANCED_COMPR is not set +CONFIG_UBIFS_FS_LZO=y +CONFIG_UBIFS_FS_ZLIB=y +CONFIG_UCB1400_CORE=m +CONFIG_UCS2_STRING=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_UHID=m +CONFIG_UID16=y +CONFIG_UIO=m +CONFIG_UIO_AEC=m +CONFIG_UIO_CIF=m +CONFIG_UIO_DMEM_GENIRQ=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_ULTRIX_PARTITION=y +CONFIG_UNCOMPRESS_INCLUDE="debug/uncompress.h" +CONFIG_UNIX=y +CONFIG_UNIX98_PTYS=y +CONFIG_UNIXWARE_DISKLABEL=y +CONFIG_UNIX_DIAG=m +CONFIG_UNUSED_SYMBOLS=y +CONFIG_UPROBES=y +CONFIG_UPROBE_EVENT=y +CONFIG_USB=y +CONFIG_USBIP_CORE=m +# CONFIG_USBIP_DEBUG is not set +CONFIG_USBIP_HOST=m +CONFIG_USBIP_VHCI_HCD=m +CONFIG_USBPCWATCHDOG=m +CONFIG_USB_ACM=m +CONFIG_USB_ADUTUX=m +CONFIG_USB_ALI_M5632=y +CONFIG_USB_AMD5536UDC=m +CONFIG_USB_AN2720=y +CONFIG_USB_ANNOUNCE_NEW_DEVICES=y +CONFIG_USB_APPLEDISPLAY=m +CONFIG_USB_ARCH_HAS_EHCI=y +CONFIG_USB_ARCH_HAS_HCD=y +CONFIG_USB_ARMLINUX=y +CONFIG_USB_ATM=m +CONFIG_USB_AUDIO=m +CONFIG_USB_BELKIN=y +CONFIG_USB_BTMTK=m +CONFIG_USB_C67X00_HCD=m +CONFIG_USB_CATC=m +CONFIG_USB_CDC_COMPOSITE=m +CONFIG_USB_CDC_PHONET=m +# CONFIG_USB_CHIPIDEA_DEBUG is not set +CONFIG_USB_CHIPIDEA_HOST=y +CONFIG_USB_CHIPIDEA_UDC=y +CONFIG_USB_COMMON=y +CONFIG_USB_CONFIGFS=m +CONFIG_USB_CONFIGFS_ACM=y +CONFIG_USB_CONFIGFS_ECM=y +CONFIG_USB_CONFIGFS_ECM_SUBSET=y +CONFIG_USB_CONFIGFS_EEM=y +CONFIG_USB_CONFIGFS_NCM=y +CONFIG_USB_CONFIGFS_OBEX=y +CONFIG_USB_CONFIGFS_PHONET=y +CONFIG_USB_CONFIGFS_RNDIS=y +CONFIG_USB_CONFIGFS_SERIAL=y +CONFIG_USB_CXACRU=m +CONFIG_USB_CYPRESS_CY7C63=m +CONFIG_USB_CYTHERM=m +# CONFIG_USB_DEBUG is not set +CONFIG_USB_DEFAULT_PERSIST=y +CONFIG_USB_DSBR=m +# CONFIG_USB_DUMMY_HCD is not set +CONFIG_USB_DWC2=m +# CONFIG_USB_DWC2_DEBUG is not set +# CONFIG_USB_DWC2_TRACK_MISSED_SOFS is not set +CONFIG_USB_DWC3=m +# CONFIG_USB_DWC3_DEBUG is not set +CONFIG_USB_DWC3_DUAL_ROLE=y +# CONFIG_USB_DWC3_GADGET is not set +# CONFIG_USB_DWC3_HOST is not set +CONFIG_USB_DYNAMIC_MINORS=y +CONFIG_USB_EG20T=m +CONFIG_USB_EHCI_HCD=y +CONFIG_USB_EHCI_HCD_OMAP=y +# CONFIG_USB_EHCI_MXC is not set +CONFIG_USB_EHCI_PCI=y +CONFIG_USB_EHCI_ROOT_HUB_TT=y +CONFIG_USB_EHCI_TEGRA=y +CONFIG_USB_EHCI_TT_NEWSCHED=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=y +CONFIG_USB_ETH_RNDIS=y +CONFIG_USB_EZUSB_FX2=m +CONFIG_USB_FOTG210_UDC=m +# CONFIG_USB_FSL_USB2 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_FUSB300=m +CONFIG_USB_FUSBH200_HCD=m +CONFIG_USB_F_ACM=m +CONFIG_USB_F_ECM=m +CONFIG_USB_F_EEM=m +CONFIG_USB_F_NCM=m +CONFIG_USB_F_OBEX=m +CONFIG_USB_F_PHONET=m +CONFIG_USB_F_RNDIS=m +CONFIG_USB_F_SERIAL=m +CONFIG_USB_F_SS_LB=m +CONFIG_USB_F_SUBSET=m +CONFIG_USB_GADGETFS=m +# 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_STORAGE_NUM_BUFFERS=2 +CONFIG_USB_GADGET_TARGET=m +CONFIG_USB_GADGET_VBUS_DRAW=2 +CONFIG_USB_GL860=m +CONFIG_USB_GOKU=m +CONFIG_USB_GPIO_VBUS=m +CONFIG_USB_GSPCA=m +CONFIG_USB_GSPCA_BENQ=m +CONFIG_USB_GSPCA_CONEX=m +CONFIG_USB_GSPCA_CPIA1=m +CONFIG_USB_GSPCA_ETOMS=m +CONFIG_USB_GSPCA_FINEPIX=m +CONFIG_USB_GSPCA_JEILINJ=m +CONFIG_USB_GSPCA_JL2005BCD=m +CONFIG_USB_GSPCA_KINECT=m +CONFIG_USB_GSPCA_KONICA=m +CONFIG_USB_GSPCA_MARS=m +CONFIG_USB_GSPCA_MR97310A=m +CONFIG_USB_GSPCA_NW80X=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_SE401=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_TOPRO=m +CONFIG_USB_GSPCA_TV8532=m +CONFIG_USB_GSPCA_VC032X=m +CONFIG_USB_GSPCA_VICAM=m +CONFIG_USB_GSPCA_XIRLINK_CIT=m +CONFIG_USB_GSPCA_ZC3XX=m +CONFIG_USB_G_ACM_MS=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_HSIC_USB3503=m +CONFIG_USB_HSO=m +CONFIG_USB_HWA_HCD=m +CONFIG_USB_IDMOUSE=m +# CONFIG_USB_IMX21_HCD is not set +CONFIG_USB_INVENTRA_DMA=y +CONFIG_USB_IOWARRIOR=m +CONFIG_USB_IPHETH=m +CONFIG_USB_IRDA=m +CONFIG_USB_ISIGHTFW=m +CONFIG_USB_ISP116X_HCD=m +CONFIG_USB_ISP1301=m +CONFIG_USB_ISP1362_HCD=m +CONFIG_USB_ISP1760_HCD=m +CONFIG_USB_KAWETH=m +CONFIG_USB_KBD=m +CONFIG_USB_KC2190=y +CONFIG_USB_KEENE=m +CONFIG_USB_LCD=m +CONFIG_USB_LD=m +CONFIG_USB_LED=m +CONFIG_USB_LEGOTOWER=m +CONFIG_USB_LIBCOMPOSITE=m +CONFIG_USB_M5602=m +# CONFIG_USB_M66592 is not set +CONFIG_USB_MA901=m +CONFIG_USB_MASS_STORAGE=m +CONFIG_USB_MDC800=m +CONFIG_USB_MICROTEK=m +CONFIG_USB_MIDI_GADGET=m +CONFIG_USB_MON=m +CONFIG_USB_MOUSE=m +CONFIG_USB_MR800=m +# CONFIG_USB_MUSB_AM35X is not set +# CONFIG_USB_MUSB_DSPS is not set +CONFIG_USB_MUSB_DUAL_ROLE=y +# CONFIG_USB_MUSB_GADGET is not set +# CONFIG_USB_MUSB_HOST is not set +CONFIG_USB_MUSB_OMAP2PLUS=m +CONFIG_USB_MUSB_UX500=m +CONFIG_USB_MV_U3D=m +CONFIG_USB_MV_UDC=m +CONFIG_USB_MXS_PHY=y +CONFIG_USB_NET2272=m +CONFIG_USB_NET2272_DMA=y +CONFIG_USB_NET2280=m +CONFIG_USB_NET_AX88179_178A=m +CONFIG_USB_NET_AX8817X=m +CONFIG_USB_NET_CDCETHER=m +CONFIG_USB_NET_CDC_EEM=m +CONFIG_USB_NET_CDC_MBIM=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_KALMIA=m +CONFIG_USB_NET_MCS7830=m +CONFIG_USB_NET_NET1080=m +CONFIG_USB_NET_PLUSB=m +CONFIG_USB_NET_QMI_WWAN=m +CONFIG_USB_NET_RNDIS_HOST=m +CONFIG_USB_NET_RNDIS_WLAN=m +CONFIG_USB_NET_SMSC75XX=m +CONFIG_USB_NET_SMSC95XX=m +CONFIG_USB_NET_ZAURUS=m +# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set +# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set +CONFIG_USB_OHCI_HCD=y +CONFIG_USB_OHCI_HCD_OMAP3=y +CONFIG_USB_OHCI_HCD_PCI=y +CONFIG_USB_OHCI_LITTLE_ENDIAN=y +# CONFIG_USB_OTG is not set +# CONFIG_USB_OTG_BLACKLIST_HUB is not set +# CONFIG_USB_OTG_WHITELIST is not set +CONFIG_USB_OXU210HP_HCD=m +CONFIG_USB_PEGASUS=m +CONFIG_USB_PHY=y +CONFIG_USB_PRINTER=m +CONFIG_USB_PWC=m +# CONFIG_USB_PWC_DEBUG is not set +CONFIG_USB_PWC_INPUT_EVDEV=y +CONFIG_USB_PXA27X=m +CONFIG_USB_R8A66597=m +CONFIG_USB_R8A66597_HCD=m +CONFIG_USB_RCAR_PHY=m +CONFIG_USB_RENESAS_USBHS=m +CONFIG_USB_RENESAS_USBHS_HCD=m +CONFIG_USB_RENESAS_USBHS_UDC=m +CONFIG_USB_RIO500=m +CONFIG_USB_RTL8150=m +CONFIG_USB_RTL8152=m +CONFIG_USB_S2255=m +CONFIG_USB_SERIAL=m +CONFIG_USB_SERIAL_AIRCABLE=m +CONFIG_USB_SERIAL_ARK3116=m +CONFIG_USB_SERIAL_BELKIN=m +CONFIG_USB_SERIAL_CH341=m +CONFIG_USB_SERIAL_CP210X=m +CONFIG_USB_SERIAL_CYBERJACK=m +CONFIG_USB_SERIAL_CYPRESS_M8=m +CONFIG_USB_SERIAL_DEBUG=m +CONFIG_USB_SERIAL_DIGI_ACCELEPORT=m +CONFIG_USB_SERIAL_EDGEPORT=m +CONFIG_USB_SERIAL_EDGEPORT_TI=m +CONFIG_USB_SERIAL_EMPEG=m +CONFIG_USB_SERIAL_F81232=m +CONFIG_USB_SERIAL_FLASHLOADER=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_METRO=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_QT2=m +CONFIG_USB_SERIAL_QUALCOMM=m +CONFIG_USB_SERIAL_QUATECH2=m +CONFIG_USB_SERIAL_SAFE=m +# CONFIG_USB_SERIAL_SAFE_PADDED is not set +CONFIG_USB_SERIAL_SIEMENS_MPI=m +CONFIG_USB_SERIAL_SIERRAWIRELESS=m +CONFIG_USB_SERIAL_SPCP8X5=m +CONFIG_USB_SERIAL_SSU100=m +CONFIG_USB_SERIAL_SUUNTO=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_WISHBONE=m +CONFIG_USB_SERIAL_WWAN=m +CONFIG_USB_SERIAL_XIRCOM=m +CONFIG_USB_SERIAL_XSENS_MT=m +CONFIG_USB_SERIAL_ZIO=m +CONFIG_USB_SERIAL_ZTE=m +CONFIG_USB_SEVSEG=m +CONFIG_USB_SI470X=m +CONFIG_USB_SIERRA_NET=m +CONFIG_USB_SISUSBVGA=m +# CONFIG_USB_SISUSBVGA_CON is not set +CONFIG_USB_SL811_CS=m +CONFIG_USB_SL811_HCD=m +CONFIG_USB_SL811_HCD_ISO=y +# CONFIG_USB_SN9C102 is not set +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_ENE_UB6250=m +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_REALTEK=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_SWITCH_FSA9480=m +CONFIG_USB_TEST=m +CONFIG_USB_TMC=m +CONFIG_USB_TRANCEVIBRATOR=m +CONFIG_USB_U132_HCD=m +CONFIG_USB_UEAGLEATM=m +CONFIG_USB_UHCI_HCD=y +CONFIG_USB_ULPI=y +CONFIG_USB_ULPI_VIEWPORT=y +CONFIG_USB_USBNET=m +CONFIG_USB_USS720=m +# CONFIG_USB_UX500_DMA is not set +CONFIG_USB_U_ETHER=m +CONFIG_USB_U_RNDIS=m +CONFIG_USB_U_SERIAL=m +CONFIG_USB_VIDEO_CLASS=m +CONFIG_USB_VIDEO_CLASS_INPUT_EVDEV=y +CONFIG_USB_VL600=m +CONFIG_USB_WDM=m +CONFIG_USB_WHCI_HCD=m +CONFIG_USB_WPAN_HCD=m +CONFIG_USB_WUSB=m +CONFIG_USB_WUSB_CBAF=m +# CONFIG_USB_WUSB_CBAF_DEBUG is not set +CONFIG_USB_XHCI_HCD=y +# CONFIG_USB_XHCI_HCD_DEBUGGING is not set +CONFIG_USB_XHCI_PLATFORM=m +CONFIG_USB_XUSBATM=m +CONFIG_USB_YUREX=m +CONFIG_USB_ZD1201=m +CONFIG_USB_ZERO=m +CONFIG_USB_ZR364XX=m +CONFIG_USER_RETURN_NOTIFIER=y +CONFIG_USER_STACKTRACE_SUPPORT=y +CONFIG_USE_GENERIC_SMP_HELPERS=y +CONFIG_USE_OF=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_PLATFORM_DRIVERS=y +CONFIG_V4L_RADIO_ISA_DRIVERS=y +CONFIG_V4L_TEST_DRIVERS=y +CONFIG_VCNL4000=m +CONFIG_VECTORS_BASE=0xffff0000 +CONFIG_VERSION_SIGNATURE="" +CONFIG_VETH=m +CONFIG_VEXPRESS_CONFIG=y +CONFIG_VFAT_FS=y +CONFIG_VFIO=m +CONFIG_VFIO_PCI=m +CONFIG_VFIO_PCI_VGA=y +CONFIG_VFP=y +CONFIG_VFPv3=y +CONFIG_VF_PIT_TIMER=y +# CONFIG_VGACON_SOFT_SCROLLBACK is not set +CONFIG_VGA_ARB=y +CONFIG_VGA_ARB_MAX_GPUS=16 +CONFIG_VGA_CONSOLE=y +CONFIG_VGA_SWITCHEROO=y +CONFIG_VHOST=m +CONFIG_VHOST_NET=m +CONFIG_VHOST_RING=m +CONFIG_VHOST_SCSI=m +CONFIG_VIA_FIR=m +CONFIG_VIA_RHINE=m +CONFIG_VIA_RHINE_MMIO=y +CONFIG_VIA_VELOCITY=m +CONFIG_VIA_WDT=m +CONFIG_VIDEOBUF2_CORE=m +CONFIG_VIDEOBUF2_DMA_CONTIG=m +CONFIG_VIDEOBUF2_DMA_SG=m +CONFIG_VIDEOBUF2_MEMOPS=m +CONFIG_VIDEOBUF2_VMALLOC=m +CONFIG_VIDEOBUF_DMA_CONTIG=m +CONFIG_VIDEOBUF_DMA_SG=m +CONFIG_VIDEOBUF_DVB=m +CONFIG_VIDEOBUF_GEN=m +CONFIG_VIDEOBUF_VMALLOC=m +CONFIG_VIDEOMODE_HELPERS=y +CONFIG_VIDEO_ADV7170=m +CONFIG_VIDEO_ADV7175=m +CONFIG_VIDEO_ADV7180=m +# CONFIG_VIDEO_ADV_DEBUG is not set +CONFIG_VIDEO_AU0828=m +CONFIG_VIDEO_AU0828_V4L2=y +CONFIG_VIDEO_BT819=m +CONFIG_VIDEO_BT848=m +CONFIG_VIDEO_BT856=m +CONFIG_VIDEO_BT866=m +CONFIG_VIDEO_BTCX=m +CONFIG_VIDEO_BWQCAM=m +CONFIG_VIDEO_CAFE_CCIC=m +# CONFIG_VIDEO_CODA is not set +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=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_DEV=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_EM28XX_RC=m +CONFIG_VIDEO_FB_IVTV=m +# CONFIG_VIDEO_FIXED_MINOR_RANGES is not set +CONFIG_VIDEO_GO7007=m +CONFIG_VIDEO_GO7007_LOADER=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_IVTV_ALSA=m +CONFIG_VIDEO_KS0127=m +CONFIG_VIDEO_M52790=m +CONFIG_VIDEO_MEM2MEM_DEINTERLACE=m +CONFIG_VIDEO_MEM2MEM_TESTDEV=m +CONFIG_VIDEO_MEYE=m +CONFIG_VIDEO_MSP3400=m +CONFIG_VIDEO_MT9V011=m +# CONFIG_VIDEO_MX3 is not set +CONFIG_VIDEO_MXB=m +CONFIG_VIDEO_OMAP2_VOUT=m +CONFIG_VIDEO_OMAP2_VOUT_VRFB=y +CONFIG_VIDEO_OUTPUT_CONTROL=m +CONFIG_VIDEO_OV7640=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_SAA6588=m +CONFIG_VIDEO_SAA7110=m +CONFIG_VIDEO_SAA711X=m +CONFIG_VIDEO_SAA7127=m +CONFIG_VIDEO_SAA7134=m +CONFIG_VIDEO_SAA7134_ALSA=m +CONFIG_VIDEO_SAA7134_DVB=m +CONFIG_VIDEO_SAA7134_RC=y +CONFIG_VIDEO_SAA7146=m +CONFIG_VIDEO_SAA7146_VV=m +CONFIG_VIDEO_SAA7164=m +CONFIG_VIDEO_SAA717X=m +CONFIG_VIDEO_SAA7185=m +CONFIG_VIDEO_SH_MOBILE_CEU=m +CONFIG_VIDEO_SH_MOBILE_CSI2=m +CONFIG_VIDEO_SH_VEU=m +CONFIG_VIDEO_SONY_BTF_MPX=m +CONFIG_VIDEO_STK1160=m +CONFIG_VIDEO_STK1160_AC97=y +CONFIG_VIDEO_TDA7432=m +CONFIG_VIDEO_TDA9840=m +CONFIG_VIDEO_TEA6415C=m +CONFIG_VIDEO_TEA6420=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_TVAUDIO=m +CONFIG_VIDEO_TVEEPROM=m +CONFIG_VIDEO_TVP5150=m +CONFIG_VIDEO_TW2804=m +CONFIG_VIDEO_TW9903=m +CONFIG_VIDEO_TW9906=m +CONFIG_VIDEO_UDA1342=m +CONFIG_VIDEO_UPD64031A=m +CONFIG_VIDEO_UPD64083=m +CONFIG_VIDEO_USBTV=m +CONFIG_VIDEO_USBVISION=m +CONFIG_VIDEO_V4L2=m +CONFIG_VIDEO_V4L2_INT_DEVICE=m +CONFIG_VIDEO_VIA_CAMERA=m +CONFIG_VIDEO_VIVI=m +CONFIG_VIDEO_VP27SMPX=m +CONFIG_VIDEO_VPX3220=m +CONFIG_VIDEO_W9966=m +CONFIG_VIDEO_WM8739=m +CONFIG_VIDEO_WM8775=m +CONFIG_VIDEO_ZORAN=m +CONFIG_VIDEO_ZORAN_AVS6EYES=m +CONFIG_VIDEO_ZORAN_BUZ=m +CONFIG_VIDEO_ZORAN_DC10=m +CONFIG_VIDEO_ZORAN_DC30=m +CONFIG_VIDEO_ZORAN_LML33=m +CONFIG_VIDEO_ZORAN_LML33R10=m +CONFIG_VIDEO_ZORAN_ZR36060=m +CONFIG_VIPERBOARD_ADC=m +CONFIG_VIRTIO=y +CONFIG_VIRTIO_BALLOON=m +CONFIG_VIRTIO_BLK=y +CONFIG_VIRTIO_MMIO_CMDLINE_DEVICES=y +CONFIG_VIRTIO_NET=y +CONFIG_VIRTIO_PCI=y +CONFIG_VIRTUALIZATION=y +CONFIG_VIRT_CPU_ACCOUNTING=y +CONFIG_VIRT_CPU_ACCOUNTING_GEN=y +CONFIG_VIRT_DRIVERS=y +CONFIG_VIRT_TO_BUS=y +CONFIG_VITESSE_PHY=y +CONFIG_VLAN_8021Q=m +CONFIG_VLAN_8021Q_GVRP=y +CONFIG_VLAN_8021Q_MVRP=y +CONFIG_VLSI_FIR=m +CONFIG_VM86=y +CONFIG_VME_BUS=m +CONFIG_VME_CA91CX42=m +CONFIG_VME_PIO2=m +CONFIG_VME_TSI148=m +CONFIG_VME_USER=m +CONFIG_VMIVME_7805=m +# CONFIG_VMSPLIT_1G is not set +# CONFIG_VMSPLIT_2G is not set +CONFIG_VMSPLIT_3G=y +CONFIG_VMWARE_BALLOON=m +CONFIG_VMWARE_PVSCSI=m +CONFIG_VMWARE_VMCI=m +CONFIG_VMWARE_VMCI_VSOCKETS=m +CONFIG_VMXNET3=m +CONFIG_VM_EVENT_COUNTERS=y +CONFIG_VORTEX=m +CONFIG_VSOCKETS=m +CONFIG_VT=y +CONFIG_VT6655=m +CONFIG_VT6656=m +CONFIG_VT_CONSOLE=y +CONFIG_VT_CONSOLE_SLEEP=y +CONFIG_VT_HW_CONSOLE_BINDING=y +CONFIG_VXFS_FS=m +CONFIG_VXGE=m +# CONFIG_VXGE_DEBUG_TRACE_ALL is not set +CONFIG_VXLAN=m +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_MASTER_MXC is not set +CONFIG_W1_SLAVE_BQ27000=m +CONFIG_W1_SLAVE_DS2408=m +CONFIG_W1_SLAVE_DS2408_READBACK=y +CONFIG_W1_SLAVE_DS2413=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_DS2780=m +CONFIG_W1_SLAVE_DS2781=m +CONFIG_W1_SLAVE_DS28E04=m +CONFIG_W1_SLAVE_SMEM=m +CONFIG_W1_SLAVE_THERM=m +CONFIG_W35UND=m +CONFIG_W83627HF_WDT=m +CONFIG_W83697HF_WDT=m +CONFIG_W83697UG_WDT=m +CONFIG_W83877F_WDT=m +CONFIG_W83977F_WDT=m +CONFIG_WAFER_WDT=m +CONFIG_WAN=y +CONFIG_WANXL=m +CONFIG_WATCHDOG=y +CONFIG_WATCHDOG_CORE=y +# CONFIG_WATCHDOG_NOWAYOUT is not set +CONFIG_WD80x3=m +CONFIG_WDT=m +CONFIG_WDTPCI=m +CONFIG_WEXT_CORE=y +CONFIG_WEXT_PRIV=y +CONFIG_WEXT_PROC=y +CONFIG_WEXT_SPY=y +CONFIG_WIL6210_ISR_COR=y +CONFIG_WIL6210_TRACING=y +CONFIG_WILINK_PLATFORM_DATA=y +CONFIG_WIMAX=m +CONFIG_WIMAX_DEBUG_LEVEL=8 +CONFIG_WIMAX_GDM72XX=m +CONFIG_WIMAX_GDM72XX_K_MODE=y +CONFIG_WIMAX_GDM72XX_QOS=y +# CONFIG_WIMAX_GDM72XX_SDIO is not set +CONFIG_WIMAX_GDM72XX_USB=y +CONFIG_WIMAX_GDM72XX_USB_PM=y +CONFIG_WIMAX_GDM72XX_WIMAX2=y +CONFIG_WIMAX_I2400M=m +CONFIG_WIMAX_I2400M_DEBUG_LEVEL=8 +CONFIG_WIMAX_I2400M_USB=m +CONFIG_WINBOND_840=m +CONFIG_WINBOND_FIR=m +CONFIG_WIRELESS=y +CONFIG_WIRELESS_EXT=y +CONFIG_WIZNET_BUS_ANY=y +# CONFIG_WIZNET_BUS_DIRECT is not set +# CONFIG_WIZNET_BUS_INDIRECT is not set +CONFIG_WIZNET_W5100=m +CONFIG_WIZNET_W5300=m +CONFIG_WL1251=m +CONFIG_WL1251_SDIO=m +CONFIG_WL1251_SPI=m +CONFIG_WL12XX=m +CONFIG_WL18XX=m +CONFIG_WLAGS49_H2=m +CONFIG_WLAGS49_H25=m +CONFIG_WLAN=y +CONFIG_WLCORE=m +CONFIG_WLCORE_SDIO=m +CONFIG_WLCORE_SPI=m +CONFIG_WL_TI=y +CONFIG_WM831X_BACKUP=m +CONFIG_WM831X_POWER=m +CONFIG_WM831X_WATCHDOG=m +CONFIG_WM8350_POWER=m +CONFIG_WM8350_WATCHDOG=m +CONFIG_WQ_POWER_EFFICIENT_DEFAULT=y +CONFIG_X25=m +CONFIG_X25_ASY=m +CONFIG_X509_CERTIFICATE_PARSER=y +CONFIG_X86=y +CONFIG_X86_32=y +CONFIG_X86_32_IRIS=m +# CONFIG_X86_32_NON_STANDARD is not set +CONFIG_X86_32_SMP=y +CONFIG_X86_64=y +CONFIG_X86_64_ACPI_NUMA=y +CONFIG_X86_64_SMP=y +CONFIG_X86_ACPI_CPUFREQ=y +CONFIG_X86_ACPI_CPUFREQ_CPB=y +CONFIG_X86_AMD_FREQ_SENSITIVITY=m +# 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_CHECK_BIOS_CORRUPTION=y +CONFIG_X86_CMOV=y +CONFIG_X86_CMPXCHG64=y +CONFIG_X86_CPUFREQ_NFORCE2=y +CONFIG_X86_CPUID=m +CONFIG_X86_DEBUGCTLMSR=y +# CONFIG_X86_DEBUG_STATIC_CPU_HAS is not set +# CONFIG_X86_DECODER_SELFTEST is not set +CONFIG_X86_DEV_DMA_OPS=y +CONFIG_X86_EXTENDED_PLATFORM=y +# CONFIG_X86_E_POWERSAVER is not set +CONFIG_X86_GENERIC=y +# CONFIG_X86_GOLDFISH is not set +CONFIG_X86_GX_SUSPMOD=m +CONFIG_X86_HT=y +CONFIG_X86_INTEL_LPSS=y +CONFIG_X86_INTEL_MID=y +CONFIG_X86_INTEL_PSTATE=y +CONFIG_X86_INTEL_USERCOPY=y +CONFIG_X86_INTERNODE_CACHE_SHIFT=6 +CONFIG_X86_IO_APIC=y +CONFIG_X86_L1_CACHE_SHIFT=6 +CONFIG_X86_LOCAL_APIC=y +CONFIG_X86_LONGHAUL=m +CONFIG_X86_LONGRUN=m +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_MDFLD=y +CONFIG_X86_MPPARSE=y +CONFIG_X86_MSR=m +CONFIG_X86_NEED_RELOCS=y +CONFIG_X86_NUMACHIP=y +CONFIG_X86_P4_CLOCKMOD=m +CONFIG_X86_PAE=y +CONFIG_X86_PAT=y +CONFIG_X86_PCC_CPUFREQ=y +CONFIG_X86_PKG_TEMP_THERMAL=m +CONFIG_X86_PLATFORM_DEVICES=y +CONFIG_X86_PM_TIMER=y +CONFIG_X86_POWERNOW_K6=m +CONFIG_X86_POWERNOW_K7=m +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_SMAP=y +CONFIG_X86_SPEEDSTEP_CENTRINO=y +CONFIG_X86_SPEEDSTEP_CENTRINO_TABLE=y +CONFIG_X86_SPEEDSTEP_ICH=y +CONFIG_X86_SPEEDSTEP_RELAXED_CAP_CHECK=y +CONFIG_X86_SPEEDSTEP_SMI=y +CONFIG_X86_SUPPORTS_MEMORY_FAILURE=y +CONFIG_X86_THERMAL_VECTOR=y +CONFIG_X86_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_WANT_INTEL_MID=y +CONFIG_X86_X2APIC=y +CONFIG_X86_X32=y +CONFIG_XEN=y +CONFIG_XENFS=m +CONFIG_XEN_ACPI_PROCESSOR=y +CONFIG_XEN_BACKEND=y +CONFIG_XEN_BALLOON=y +CONFIG_XEN_BALLOON_MEMORY_HOTPLUG=y +CONFIG_XEN_BLKDEV_BACKEND=m +CONFIG_XEN_BLKDEV_FRONTEND=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_GRANT_DEV_ALLOC=m +CONFIG_XEN_HAVE_PVMMU=y +CONFIG_XEN_MCE_LOG=y +CONFIG_XEN_NETDEV_BACKEND=m +CONFIG_XEN_NETDEV_FRONTEND=y +CONFIG_XEN_PCIDEV_BACKEND=m +CONFIG_XEN_PCIDEV_FRONTEND=m +CONFIG_XEN_PRIVCMD=m +CONFIG_XEN_PRIVILEGED_GUEST=y +CONFIG_XEN_PVHVM=y +CONFIG_XEN_SAVE_RESTORE=y +CONFIG_XEN_SCRUB_PAGES=y +CONFIG_XEN_SELFBALLOONING=y +CONFIG_XEN_SYS_HYPERVISOR=y +CONFIG_XEN_TMEM=m +CONFIG_XEN_WDT=m +CONFIG_XEN_XENBUS_FRONTEND=y +CONFIG_XFRM=y +CONFIG_XFRM_ALGO=m +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_XFS_WARN is not set +CONFIG_XO15_EBOOK=m +CONFIG_XOR_BLOCKS=m +CONFIG_XPS=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_ZBUD=y +CONFIG_ZCACHE=y +# CONFIG_ZCACHE_DEBUG is not set +CONFIG_ZD1211RW=m +# CONFIG_ZD1211RW_DEBUG is not set +CONFIG_ZEROPLUS_FF=y +CONFIG_ZISOFS=y +CONFIG_ZLIB_DEFLATE=m +CONFIG_ZLIB_INFLATE=y +CONFIG_ZONE_DMA=y +CONFIG_ZRAM=m +# CONFIG_ZRAM_DEBUG is not set +CONFIG_ZSMALLOC=y +CONFIG_ZSWAP=y --- linux-3.11.0.orig/debian.master/config/annotations +++ linux-3.11.0/debian.master/config/annotations @@ -0,0 +1,1373 @@ +# not a thing +CONFIG_USB_OHCI_HCD_PLATFORM - flag +CONFIG_USB_EHCI_HCD_PLATFORM - flag +CONFIG_USB_OHCI_HCD_PPC_OF_LE - flag + +# Overall defaults +set +all !flag EXPERIMENTAL !flag IGNORE ?type tristate = m + +# Mark debugging symbols. +# default all debug symbols off +set +pattern '(^|_)DEBUG(_|$)' ?type bool = n flag +set +pattern '(^|_)DEBUG(_|$)' ?type tristate = n flag + +# exceptions +CONFIG_DEBUG_FS y note +CONFIG_DEBUG_KERNEL y note +CONFIG_DEBUG_RODATA y mark +CONFIG_DEBUG_SET_MODULE_RONX y mark +CONFIG_SLUB_DEBUG y +CONFIG_SCHED_DEBUG y + +# IO Schedulers +set +tree 'IO Schedulers' = - mark +set +all ?mark 'IO' ?flag EXPERIMENTAL ?type bool = n +set +all ?mark 'IO' ?flag EXPERIMENTAL ?type tristate = m note +set +all ?mark 'IO' !flag EXPERIMENTAL ?type tristate = m +# exceptions +CONFIG_IOSCHED_CFQ y +CONFIG_IOSCHED_DEADLINE y +CONFIG_DEFAULT_DEADLINE y +CONFIG_CFQ_GROUP_IOSCHED y + +# Filesystems +set +tree 'File systems' ?tree 'File systems,NLS' = - mark +set +all ?mark 'Filesystem' ?flag EXPERIMENTAL ?type bool = n +set +all ?mark 'Filesystem' ?flag EXPERIMENTAL ?type tristate = m note` +set +all ?mark 'Filesystem' !flag EXPERIMENTAL ?type tristate = m +# default installer filesystems should be built-in +CONFIG_EXT3_FS y note mark +CONFIG_EXT4_FS y note mark +# filesystems which do not probe +CONFIG_FUSE_FS y note +CONFIG_ECRYPT_FS y note +# standard options +set +pattern _POSIX_ACL$ !flag EXPERIMENTAL = y +set +pattern _SECURITY$ !flag EXPERIMENTAL = y +set +pattern _XATTR$ !flag EXPERIMENTAL = y +# sub-sub-systems +CONFIG_MISC_FILESYSTEMS y +CONFIG_NETWORK_FILESYSTEMS y +CONFIG_DNOTIFY y +CONFIG_FANOTIFY y +CONFIG_FANOTIFY_ACCESS_PERMISSIONS y +CONFIG_FILE_LOCKING y +CONFIG_INOTIFY_USER y +CONFIG_HUGETLBFS y +CONFIG_SYSFS y +CONFIG_QUOTA y +CONFIG_QUOTA_NETLINK_INTERFACE y +CONFIG_PRINT_QUOTA_WARNING n +# btrfs +CONFIG_BTRFS_FS_POSIX_ACL y +# cachefiles +CONFIG_CACHEFILES_HISTOGRAM n +# CIFS +CONFIG_CIFS_ACL y +CONFIG_CIFS_DEBUG y +CONFIG_CIFS_DEBUG2 n +CONFIG_CIFS_DFS_UPCALL y +CONFIG_CIFS_FSCACHE y +CONFIG_CIFS_POSIX y +CONFIG_CIFS_SMB2 y +CONFIG_CIFS_STATS y +CONFIG_CIFS_STATS2 n +CONFIG_CIFS_UPCALL y +CONFIG_CIFS_WEAK_PW_HASH y +# ext2 +CONFIG_EXT2_FS_XIP n +# ext3 +CONFIG_EXT3_DEFAULTS_TO_ORDERED y +# f2fs +CONFIG_F2FS_STAT_FS y +# fat +CONFIG_FAT_DEFAULT_CODEPAGE 437 +CONFIG_FAT_DEFAULT_IOCHARSET "iso8859-1" +# fscache +CONFIG_FSCACHE_HISTOGRAM n +CONFIG_FSCACHE_OBJECT_LIST n +CONFIG_FSCACHE_STATS y +# gfs2 +CONFIG_GFS2_FS_LOCKING_DLM y +# jffs2 +CONFIG_JFFS2_CMODE_FAVOURLZO y +CONFIG_JFFS2_COMPRESSION_OPTIONS y +CONFIG_JFFS2_FS_DEBUG 0 +CONFIG_JFFS2_FS_WBUF_VERIFY n +CONFIG_JFFS2_FS_WRITEBUFFER y +CONFIG_JFFS2_LZO y +CONFIG_JFFS2_RTIME y +CONFIG_JFFS2_RUBIN n +CONFIG_JFFS2_SUMMARY n +CONFIG_JFFS2_ZLIB y +# jfs +CONFIG_JFS_STATISTICS y +# iso9660_fs +CONFIG_JOLIET y +CONFIG_ZISOFS y +# ncpfs +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 n +CONFIG_NCPFS_STRONG y +# nfsd +CONFIG_NFSD_V3_ACL y +CONFIG_NFSD_V3 y +CONFIG_NFSD_V4 y note +# nfs +CONFIG_NFS_FSCACHE y +CONFIG_NFS_SWAP y +CONFIG_NFS_USE_LEGACY_DNS n +CONFIG_NFS_V3_ACL y +CONFIG_NFS_V4_1 y +CONFIG_NFS_V4_1_IMPLEMENTATION_ID_DOMAIN "kernel.org" +# ntfs +CONFIG_NTFS_RW n +# ocfs2 +CONFIG_OCFS2_FS_STATS y +CONFIG_OCFS2_DEBUG_MASKLOG y +# procfs +CONFIG_PROC_FS y +CONFIG_PROC_KCORE y +CONFIG_PROC_PAGE_MONITOR y +CONFIG_PROC_SYSCTL y +CONFIG_PROC_VMCORE y +# pstore +CONFIG_PSTORE y +CONFIG_PSTORE_CONSOLE n note +CONFIG_PSTORE_FTRACE n +# reiserfs +CONFIG_REISERFS_CHECK n +CONFIG_REISERFS_PROC_INFO n +# romfs +CONFIG_ROMFS_BACKED_BY_BLOCK y +# squashfs +CONFIG_SQUASHFS_4K_DEVBLK_SIZE n +CONFIG_SQUASHFS_EMBEDDED n +CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE 3 +CONFIG_SQUASHFS_LZO y +CONFIG_SQUASHFS_XZ y +CONFIG_SQUASHFS_ZLIB y +# tmpfs +CONFIG_TMPFS y +# ubifs +CONFIG_UBIFS_FS_ADVANCED_COMPR n +CONFIG_UBIFS_FS_LZO y +CONFIG_UBIFS_FS_ZLIB y +# xfs +CONFIG_XFS_QUOTA y +CONFIG_XFS_RT y + +# Subsystems -- mark up for reporting +CONFIG_PCI y mark +CONFIG_BT m mark +CONFIG_APM m mark +CONFIG_ACPI y mark + +CONFIG_RFKILL y mark +CONFIG_HOTPLUG_PCI y mark +CONFIG_HOTPLUG_PCI_PCIE y mark +CONFIG_HWMON y mark +CONFIG_HW_RANDOM y mark +CONFIG_MMC y mark +CONFIG_CONNECTOR y mark +CONFIG_POWER_SUPPLY y mark +CONFIG_TCG_TPM y mark + +CONFIG_LEDS_CLASS y note mark +CONFIG_FW_LOADER y note mark + +# HID drivers +set +tree 'Device Drivers,HID support,HID' = - mark +# enable modular HID drivers by default +set +all ?mark 'HID' ?flag EXPERIMENTAL ?type bool = n +set +all ?mark 'HID' ?flag EXPERIMENTAL ?type tristate = m note` +set +all ?mark 'HID' !flag EXPERIMENTAL ?type tristate = m +# standard forms +set +pattern _FF$ ?mark HID ?type bool !flag EXPERIMENTAL = y +# the core subsystem +CONFIG_HID m mark mark +# sub-sub-systems +CONFIG_HIDRAW y +# options: +CONFIG_HID_BATTERY_STRENGTH y +CONFIG_HID_PICOLCD_BACKLIGHT y +CONFIG_HID_PICOLCD_CIR y +CONFIG_HID_PICOLCD_FB y +CONFIG_HID_PICOLCD_LCD y +CONFIG_HID_PICOLCD_LEDS y +CONFIG_HID_WIIMOTE_EXT y + +# Networking +set +tree 'Networking options' = - mark +# enable modular network options by default +set +all ?mark 'Networking' ?flag EXPERIMENTAL ?type bool = n +set +all ?mark 'Networking' ?flag EXPERIMENTAL ?type tristate = m note` +set +all ?mark 'Networking' !flag EXPERIMENTAL ?type tristate = m +# enable all vendor menus by default +set +pattern '^NET_VENDOR_' = y mark +# the core subsystem +CONFIG_NET y mark +CONFIG_NETFILTER y mark +CONFIG_NETLABEL y mark +CONFIG_NET_SCHED y mark +# IPv6 packets trigger auto-loading of this module and it is easy to trigger +# a DOS unless this is builtin. It is also a critical protocol going forward +# and will become boot essential. +CONFIG_INET y note +CONFIG_IPV6 y note +# exceptions networking: +CONFIG_INET_LRO y note +CONFIG_MII y note +CONFIG_TUN y note +CONFIG_TCP_CONG_ADVANCED y +CONFIG_TCP_CONG_CUBIC y note +# exceptions network protocols: +CONFIG_UNIX y note +CONFIG_PACKET y note +CONFIG_FDDI y note +CONFIG_PPP y note mark +# EXPERIMENTAL Network protocols are generally enabled to allow testing: +CONFIG_ECONET m note +CONFIG_IEEE802154 m note +CONFIG_LAPB m note +CONFIG_NET_DSA m note +CONFIG_RDS m note +CONFIG_TIPC m note +CONFIG_X25 m note +# interesting new subsystem +CONFIG_NFC m note mark +CONFIG_NFC_NCI m note +# This option allows bridging between non-IP and IP networks, but is +# effectivly deprecated. We _may_ just _may_ have users on older arches +# so keep it there, but do not spread the pain to systems without these +# other networks. +CONFIG_WAN_ROUTER p policy<(arch i386 amd64 powerpc &/ value m) | value n> +# options: +CONFIG_ARPD n +CONFIG_ATM_BR2684_IPFILTER n +CONFIG_ATM_CLIP_NO_ICMP n +CONFIG_BATMAN_ADV_BLA y +CONFIG_BATMAN_ADV_DAT y +CONFIG_BPF_JIT y note +CONFIG_BRIDGE_EBT_ULOG n flag +CONFIG_BRIDGE_IGMP_SNOOPING y +CONFIG_BRIDGE_NETFILTER y +CONFIG_CLS_U32_MARK y +CONFIG_CLS_U32_PERF n +CONFIG_DCB y +CONFIG_DEFAULT_CUBIC y +CONFIG_GACT_PROB y +CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION m note +CONFIG_IP_ADVANCED_ROUTER y +CONFIG_IPDDP_DECAP y +CONFIG_IPDDP_ENCAP y +CONFIG_IP_FIB_TRIE_STATS y +CONFIG_IP_MROUTE y +CONFIG_IP_MROUTE_MULTIPLE_TABLES n +CONFIG_IP_MULTICAST y +CONFIG_IP_MULTIPLE_TABLES y +CONFIG_IP_NF_QUEUE n flag +CONFIG_IP_PIMSM_V1 y +CONFIG_IP_PIMSM_V2 y +# IP PNP protocols +CONFIG_IP_PNP y +CONFIG_IP_PNP_BOOTP n +CONFIG_IP_PNP_DHCP y +CONFIG_IP_PNP_RARP n +CONFIG_IP_ROUTE_MULTIPATH y +CONFIG_IP_ROUTE_VERBOSE y +CONFIG_IP_SET_MAX 256 +CONFIG_IPV6_MROUTE_MULTIPLE_TABLES y +CONFIG_IPV6_MROUTE y +CONFIG_IPV6_MULTIPLE_TABLES y +CONFIG_IPV6_PIMSM_V2 y +CONFIG_IPV6_PRIVACY y mark +CONFIG_IPV6_ROUTER_PREF y +CONFIG_IPV6_ROUTE_INFO y +# ipv6 rapid deployment support +CONFIG_IPV6_SIT_6RD y +CONFIG_IPV6_SUBTREES y +# ipv6 VS support is incomplete and "may be dangerous" +CONFIG_IP_VS_IPV6 n flag +CONFIG_IP_VS_NFCT y +CONFIG_IP_VS_PROTO_AH 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_SH_TAB_BITS 8 +CONFIG_IP_VS_TAB_BITS 12 +CONFIG_IPX_INTERN n +# mac802.15.4 +CONFIG_MAC802154 - note +CONFIG_NET_CLS_ACT y +CONFIG_NET_CLS_IND n flag +# drop packet netlink: only required for high performance networking +CONFIG_NET_DROP_MONITOR n +CONFIG_NET_EMATCH y +CONFIG_NET_EMATCH_STACK 32 +CONFIG_NETFILTER_ADVANCED y +CONFIG_NETFILTER_NETLINK_QUEUE_CT y +CONFIG_NET_IPGRE_BROADCAST y note +CONFIG_NETWORK_SECMARK y +# various netfilter contract bits +CONFIG_NF_CONNTRACK_EVENTS y +CONFIG_NF_CONNTRACK_MARK y +CONFIG_NF_CONNTRACK_PROCFS n flag +CONFIG_NF_CONNTRACK_SECMARK y +CONFIG_NF_CONNTRACK_TIMEOUT y +CONFIG_NF_CONNTRACK_TIMESTAMP y +CONFIG_NF_CONNTRACK_ZONES y +# SCTP default cookie protocol +CONFIG_SCTP_HMAC_MD5 y +CONFIG_SCTP_COOKIE_HMAC_MD5 y +CONFIG_SCTP_COOKIE_HMAC_SHA1 y +CONFIG_SCTP_DEFAULT_COOKIE_HMAC_SHA1 y +CONFIG_SYN_COOKIES y mark +CONFIG_TCP_MD5SIG y mark +CONFIG_TIPC_PORTS 8191 +CONFIG_VLAN_8021Q_GVRP y +CONFIG_COPS_DAYNA y +CONFIG_COPS_TANGENT y + +# USB devices +set +pattern '_USB' = - mark +# enable modular network options by default +set +all ?mark 'USB' ?flag EXPERIMENTAL ?type bool = n +set +all ?mark 'USB' ?flag EXPERIMENTAL ?type tristate = m note` +set +all ?mark 'USB' !flag EXPERIMENTAL ?type tristate = m +# the core subsystem +CONFIG_USB y mark +# sub-sub-systems +CONFIG_MEDIA_USB_SUPPORT y +CONFIG_SND_USB y +# exceptions: +CONFIG_USB_EHCI_HCD y note +CONFIG_USB_OHCI_HCD y note +CONFIG_USB_UHCI_HCD y note +CONFIG_USB_XHCI_HCD y note +CONFIG_USB_OTG n note +# options: +CONFIG_BRCMFMAC_USB y +CONFIG_COMEDI_USB_DRIVERS y +CONFIG_DVB_USB_DIBUSB_MB_FAULTY n +CONFIG_LINE6_USB_DUMP_CTRL n +CONFIG_LINE6_USB_DUMP_MIDI n +CONFIG_LINE6_USB_DUMP_PCM n +CONFIG_LINE6_USB_IMPULSE_RESPONSE n +CONFIG_LINE6_USB_RAW n flag +CONFIG_SND_USB_CAIAQ_INPUT y +CONFIG_WIMAX_GDM72XX_USB_PM y +CONFIG_WIMAX_GDM72XX_USB y +CONFIG_MFD_OMAP_USB_HOST y +CONFIG_TWL4030_USB y +CONFIG_XPS_USB_HCD_XILINX y + +# Disk Drivers +set +tree 'Device Drivers,ATA' = - mark +set +tree 'Device Drivers,IDE' = - mark +set +tree 'Device Drivers,SCSI device support' = - mark +# enable modular options by default +set +all ?mark 'Disk Drivers' ?flag EXPERIMENTAL ?type bool = n +set +all ?mark 'Disk Drivers' ?flag EXPERIMENTAL ?type tristate = n +set +all ?mark 'Disk Drivers' !mark EXPERIMENTAL ?type tristate = m +# the core subsystem +CONFIG_SCSI y mark +CONFIG_ATA y mark +# sections +CONFIG_SCSI_LOWLEVEL y +CONFIG_SCSI_LOWLEVEL_PCMCIA y +# general options +CONFIG_ATA_VERBOSE_ERROR y +CONFIG_SCSI_CONSTANTS y +CONFIG_SCSI_LOGGING y +CONFIG_SCSI_MULTI_LUN y +CONFIG_SCSI_PROC_FS y +CONFIG_SCSI_SCAN_ASYNC y +# generic drivers +CONFIG_SATA_PMP y +CONFIG_ATA_ACPI y +CONFIG_ATA_SFF y +CONFIG_ATA_BMDMA y +CONFIG_SCSI_EATA_LINKED_COMMANDS y +CONFIG_SCSI_EATA_MAX_TAGS 16 +CONFIG_SCSI_EATA_TAGGED_QUEUE y +# ATA controllers: some are boot essential on specific architectures +CONFIG_ATA_GENERIC p policy<(arch i386 amd64 &/ value y) | value m> note +CONFIG_ATA_PIIX p policy<(arch i386 amd64 &/ value y) | value m> note +CONFIG_PATA_ACPI p policy<(arch i386 amd64 &/ value m)> note +CONFIG_PATA_SIS p policy<(arch i386 amd64 &/ value y) | value m> note +CONFIG_SATA_SVW p policy<(arch powerpc &/ value y) | value m> note +# options: +CONFIG_AIC79XX_CMDS_PER_DEVICE 32 +CONFIG_AIC79XX_DEBUG_MASK 0 +CONFIG_AIC79XX_REG_PRETTY_PRINT y +CONFIG_AIC79XX_RESET_DELAY_MS 5000 +CONFIG_AIC7XXX_CMDS_PER_DEVICE 8 +CONFIG_AIC7XXX_DEBUG_MASK 0 +CONFIG_AIC7XXX_REG_PRETTY_PRINT y +CONFIG_AIC7XXX_RESET_DELAY_MS 15000 +CONFIG_MEGARAID_NEWGEN y +CONFIG_SCSI_FC_TGT_ATTRS y +CONFIG_SCSI_IPR_DUMP n +CONFIG_SCSI_IPR_TRACE n +CONFIG_SCSI_IZIP_EPP16 n +CONFIG_SCSI_IZIP_SLOW_CTR n +CONFIG_SCSI_MPT2SAS_LOGGING n +CONFIG_SCSI_MPT2SAS_MAX_SGE 128 +CONFIG_SCSI_MPT3SAS_LOGGING n +CONFIG_SCSI_MPT3SAS_MAX_SGE 128 +CONFIG_SCSI_MVSAS_TASKLET n +CONFIG_SCSI_OSD_DPRINT_SENSE 1 +CONFIG_SCSI_SAS_ATA y +CONFIG_SCSI_SAS_HOST_SMP y +CONFIG_SCSI_SRP_TGT_ATTRS y +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_FLASHPOINT y +CONFIG_SCSI_GENERIC_NCR53C400 y +CONFIG_SCSI_U14_34F_LINKED_COMMANDS y +CONFIG_SCSI_U14_34F_MAX_TAGS 8 +CONFIG_SCSI_U14_34F_TAGGED_QUEUE y + +# Crypto drivers. +set +tree 'CRYPTO' = - mark +# enable modular options by default +set +all ?mark 'Crypto' ?flag EXPERIMENTAL ?type bool = n +set +all ?mark 'Crypto' ?flag EXPERIMENTAL ?type tristate = n +set +all ?mark 'Crypto' !mark EXPERIMENTAL ?type tristate = m +# the core subsystem +CONFIG_CRYPTO y mark +# exceptions +CONFIG_CRYPTO_CRC32C y note +CONFIG_CRYPTO_CRC32C_INTEL y note +CONFIG_CRYPTO_DEV_PADLOCK y note +CONFIG_CRYPTO_CRC32C y note +CONFIG_CRYPTO_AES y note +CONFIG_CRYPTO_CBC y note +CONFIG_CRYPTO_ECB y note +CONFIG_CRYPTO_HMAC y note +CONFIG_CRYPTO_MANAGER y note +CONFIG_CRYPTO_MD5 y note +CONFIG_CRYPTO_SHA1 y note +CONFIG_CRYPTO_SHA256 y note +CONFIG_CRYPTO_LZO y note +CONFIG_CRC16 y note +CONFIG_CRC32 y note +CONFIG_ENCRYPTED_KEYS y note +CONFIG_TRUSTED_KEYS y note +# needed for module signing +CONFIG_ASYMMETRIC_KEY_TYPE y +CONFIG_ASYMMETRIC_PUBLIC_KEY_SUBTYPE y +CONFIG_CRYPTO_SHA512 y +CONFIG_PUBLIC_KEY_ALGO_RSA y +CONFIG_X509_CERTIFICATE_PARSER y +# options: +CONFIG_CRYPTO_HW y +CONFIG_CRYPTO_MANAGER_DISABLE_TESTS y flag +CONFIG_CRYPTO_TEST m flag +CONFIG_CRYPTO_DEV_NX y +CONFIG_CRYPTO_DEV_FSL_CAAM_INTC y +CONFIG_CRYPTO_DEV_FSL_CAAM_INTC_COUNT_THLD 255 +CONFIG_CRYPTO_DEV_FSL_CAAM_INTC_TIME_THLD 2048 +CONFIG_CRYPTO_DEV_FSL_CAAM_RINGSIZE 9 +CONFIG_CRYPTO_DEV_HIFN_795X_RNG y + +# PHY support +set +tree 'Device Drivers,NETDEVICES,PHYLIB' = - mark +# PHY devices with non-standard naming. +CONFIG_B43_PHY_HT - mark +CONFIG_B43_PHY_N - mark +CONFIG_STE10XP - mark +# enable modular network options by default +set +all ?mark 'PHYS' ?flag EXPERIMENTAL ?type bool = n +set +all ?mark 'PHYS' ?flag EXPERIMENTAL ?type tristate = y note` +set +all ?mark 'PHYS' !flag EXPERIMENTAL ?type tristate = y note +# the core subsystem +CONFIG_PHYLIB y mark mark +CONFIG_FIXED_PHY y +# options: +CONFIG_B43_PHY_HT y +CONFIG_B43_PHY_N y + +# INPUT +set +tree 'Device Drivers,Input device support,INPUT' = - mark +set +all ?mark 'INPUT' ?flag EXPERIMENTAL ?type bool = n +set +all ?mark 'INPUT' ?flag EXPERIMENTAL ?type tristate = m note` +set +all ?mark 'INPUT' !flag EXPERIMENTAL ?type tristate = m +CONFIG_INPUT y mark mark +# sub-sub-systems +CONFIG_INPUT_JOYSTICK y +CONFIG_INPUT_KEYBOARD y +CONFIG_INPUT_MISC y +CONFIG_INPUT_MOUSE y +CONFIG_INPUT_TOUCHSCREEN y +CONFIG_INPUT_TABLET y +CONFIG_INPUT_EVDEV y +CONFIG_INPUT_MOUSEDEV y +CONFIG_INPUT_UINPUT y +# standard forms +set +pattern ^MOUSE_PS2_ ?mark INPUT ?type bool !flag EXPERIMENTAL = y +set +pattern ^TOUCHSCREEN_ ?mark INPUT ?type bool !flag EXPERIMENTAL = y +set +pattern _FF$ ?mark INPUT ?type bool !flag EXPERIMENTAL = y +# INPUT_KXTJ9_POLLED_MODE -- polling is bad generally +CONFIG_INPUT_KXTJ9_POLLED_MODE n +# options: +CONFIG_INPUT_MOUSEDEV_PSAUX y +CONFIG_INPUT_MOUSEDEV_SCREEN_X 1024 +CONFIG_INPUT_MOUSEDEV_SCREEN_Y 768 +CONFIG_JOYSTICK_IFORCE_232 y +CONFIG_JOYSTICK_IFORCE_USB y +CONFIG_JOYSTICK_XPAD_LEDS y + +# SECURITY +set +tree 'Security options' = - mark +set +tree 'MODULES,MODULE_SIG' = - mark +CONFIG_SECURITY y mark +CONFIG_SECURITYFS y +CONFIG_DEFAULT_SECURITY_APPARMOR y +CONFIG_SECURITY_APPARMOR y +CONFIG_SECURITY_APPARMOR_BOOTPARAM_VALUE 1 +CONFIG_SECURITY_SELINUX y +CONFIG_SECURITY_SELINUX_AVC_STATS y +CONFIG_SECURITY_SELINUX_BOOTPARAM_VALUE 0 +CONFIG_SECURITY_SELINUX_BOOTPARAM y +CONFIG_SECURITY_SELINUX_CHECKREQPROT_VALUE 1 +CONFIG_SECURITY_SELINUX_DEVELOP y +CONFIG_SECURITY_SELINUX_DISABLE y note +CONFIG_SECURITY_SELINUX_POLICYDB_VERSION_MAX n +CONFIG_SECURITY_TOMOYO y +CONFIG_SECURITY_TOMOYO_STACKED y +CONFIG_SECURITY_TOMOYO_ACTIVATION_TRIGGER "/sbin/init" +CONFIG_SECURITY_TOMOYO_MAX_ACCEPT_ENTRY 2048 +CONFIG_SECURITY_TOMOYO_MAX_AUDIT_LOG 1024 +CONFIG_SECURITY_TOMOYO_OMIT_USERSPACE_LOADER n +CONFIG_SECURITY_TOMOYO_POLICY_LOADER "/sbin/tomoyo-init" +CONFIG_SECURITY_SMACK y +CONFIG_SECURITY_YAMA y +CONFIG_SECURITY_YAMA_STACKED y +CONFIG_EVM y +CONFIG_IMA n note +CONFIG_INTEL_TXT p policy<(arch i386 amd64 &/ value y) | value n)> +CONFIG_INTEGRITY_SIGNATURE y +CONFIG_KEYS y +CONFIG_LSM_MMAP_MIN_ADDR 0 +CONFIG_SECURITY_DMESG_RESTRICT n +CONFIG_SECURITY_NETWORK y +CONFIG_SECURITY_NETWORK_XFRM n +CONFIG_SECURITY_PATH y +# Module signing. +CONFIG_MODULE_SIG y mark +CONFIG_MODULE_SIG_FORCE n +CONFIG_MODULE_SIG_SHA512 y +# Other security related options. +CONFIG_CC_STACKPROTECTOR y mark + +# SENSORS +set +pattern '^SENSORS_' = - mark +set +all ?mark 'Sensors' ?flag EXPERIMENTAL ?type bool = n +set +all ?mark 'Sensors' ?flag EXPERIMENTAL ?type tristate = n +set +all ?mark 'Sensors' !mark EXPERIMENTAL ?type tristate = m +CONFIG_HWMON y mark mark +# exceptions: +CONFIG_SENSORS_SCH56XX_COMMON - flag +CONFIG_SENSORS_AMS_I2C y +CONFIG_SENSORS_AMS_PMU y + +# BLK/CHR DEV +set +tree 'Device Drivers,BLK_DEV' ?pattern (BLK|CHR)_DEV_ = - mark +set +tree 'Device Drivers,SCSI device support' ?pattern (BLK|CHR)_DEV_ = - mark +set +all ?mark 'BLK-CHR' ?flag EXPERIMENTAL ?type bool = n +set +all ?mark 'BLK-CHR' ?flag EXPERIMENTAL ?type tristate = n +set +all ?mark 'BLK-CHR' !mark EXPERIMENTAL ?type tristate = m +CONFIG_BLK_DEV y mark mark +# exceptions: +CONFIG_BLK_DEV_LOOP y note +CONFIG_BLK_DEV_RAM y note +CONFIG_BLK_DEV_SD y note +CONFIG_BLK_DEV_SR y note +CONFIG_BLK_DEV_HD n note +CONFIG_BLK_DEV_SR_VENDOR n note +CONFIG_CHR_DEV_SG y note +# options: +CONFIG_BLK_DEV_LOOP_MIN_COUNT 8 +CONFIG_BLK_DEV_RAM_COUNT 16 +CONFIG_BLK_DEV_RAM_SIZE 65536 + +# MD +set +tree 'Device Drivers,MD' = - mark +set +all ?mark 'MD' ?flag EXPERIMENTAL ?type bool = n +set +all ?mark 'MD' ?flag EXPERIMENTAL ?type tristate = n +set +all ?mark 'MD' !mark EXPERIMENTAL ?type tristate = m +CONFIG_MD y mark mark +CONFIG_BLK_DEV_DM y +CONFIG_BLK_DEV_MD y +# options: +CONFIG_DM_UEVENT y +CONFIG_MD_AUTODETECT y + +# Misc Devices -- A2D converters +set +tree 'Device Drivers,Analog to digital converters' = - mark mark +set +tree 'Device Drivers,IIO staging drivers,Analog to digital converters' = - mark mark +set +all ?mark 'A2D' ?flag EXPERIMENTAL ?type bool = n +set +all ?mark 'A2D' ?flag EXPERIMENTAL ?type tristate = n +set +all ?mark 'A2D' !mark EXPERIMENTAL ?type tristate = m +# options: +CONFIG_AD799X_RING_BUFFER y +CONFIG_LP8788_ADC y + +# Misc Devices -- D2A converters +set +tree 'Device Drivers,Digital to analog converters' = - mark mark +set +all ?mark 'D2A' ?flag EXPERIMENTAL ?type bool = n +set +all ?mark 'D2A' ?flag EXPERIMENTAL ?type tristate = n +set +all ?mark 'D2A' !mark EXPERIMENTAL ?type tristate = m + +# EXTCON +set +tree 'Device Drivers,EXTCON' = - mark mark +set +all ?mark 'EXTCON' ?flag EXPERIMENTAL ?type bool = n +set +all ?mark 'EXTCON' ?flag EXPERIMENTAL ?type tristate = n +set +all ?mark 'EXTCON' !mark EXPERIMENTAL ?type tristate = m +# subsystem +CONFIG_EXTCON y mark + +# UBUNTU +set +tree 'Ubuntu Supplied Third-Party Device Drivers' = - mark +set +pattern OVERLAYFS_FS = - mark +set +all ?mark 'UBUNTU' ?type tristate = m +# exceptions: +CONFIG_AUFS_BRANCH_MAX_127 y +CONFIG_AUFS_BR_FUSE y +CONFIG_AUFS_BR_HFSPLUS y +CONFIG_AUFS_BR_RAMFS y +CONFIG_AUFS_EXPORT n +CONFIG_AUFS_HNOTIFY n +CONFIG_AUFS_PROC_MAP n note flag +CONFIG_AUFS_RDU n +CONFIG_AUFS_SHWH n +CONFIG_AUFS_SP_IATTR n +# DM_RAID45 only appears in PC BIOS based systems +CONFIG_DM_RAID45 p policy<(arch i386 amd64 &/ value m) | value n> note mark + +# Ubuntu Critical +CONFIG_INIT_PASS_ALL_PARAMS y mark note +CONFIG_ZRAM y mark note +CONFIG_ZCACHE y mark note + +# RTC +set +tree 'Device Drivers,RTC_CLASS' = - mark +set +all ?mark 'RTC' ?flag EXPERIMENTAL ?type bool = n +set +all ?mark 'RTC' ?flag EXPERIMENTAL ?type tristate = n +set +all ?mark 'RTC' !mark EXPERIMENTAL ?type tristate = m +CONFIG_RTC_CLASS y mark mark +# options: +CONFIG_RTC_DRV_TWL4030 p policy<(flavour omap omap4 &/ value y) | value m> note +CONFIG_RTC_DRV_CMOS p policy<(arch i386 amd64 &/ value y) | value m> note +CONFIG_RTC_DRV_M41T80_WDT y +# read the rtc at boot and set the system clock +CONFIG_RTC_HCTOSYS y +CONFIG_RTC_HCTOSYS_DEVICE "rtc0" +CONFIG_RTC_INTF_DEV_UIE_EMUL n +# filesystem interfaces for the rtc +CONFIG_RTC_INTF_DEV y +CONFIG_RTC_INTF_PROC y +CONFIG_RTC_INTF_SYSFS y + +# GPIO +set +tree 'Device Drivers,GPIOLIB' = - mark +set +all ?mark 'GPIO' ?flag EXPERIMENTAL ?type bool = n +set +all ?mark 'GPIO' ?flag EXPERIMENTAL ?type tristate = n +set +all ?mark 'GPIO' !mark EXPERIMENTAL ?type tristate = m +# standard forms: +set +pattern ^GPIO_ ?mark GPIO ?type bool !flag EXPERIMENTAL = y +# options: +CONFIG_GPIO_TWL4030 p policy<(arch armel armhf &/ value y) | value m> note +# Geode +CONFIG_GPIO_CS5535 p policy<(value CONFIG_OLPC_X01_SCI y &/ value y) | value m> note +CONFIG_GPIO_GE_FPGA n + +# I2C +set +tree 'Device Drivers,I2C Hardware Bus support' = - mark +set +all ?mark 'I2C' ?flag EXPERIMENTAL ?type bool = n +set +all ?mark 'I2C' ?flag EXPERIMENTAL ?type tristate = n +set +all ?mark 'I2C' !mark EXPERIMENTAL ?type tristate = m +CONFIG_I2C y mark mark +# sub-sub-systems +CONFIG_I2C_COMPAT y +CONFIG_I2C_HELPER_AUTO y +# options: +CONFIG_I2C_OMAP p policy<(arch armel armhf &/ value y) | value m> note +CONFIG_I2C_DESIGNWARE_PLATFORM p policy<(flavour highbank &/ value y) | value m> note +CONFIG_I2C_POWERMAC p policy<(arch powerpc &/ value y) | value m> note +CONFIG_I2C_ALGOBIT p policy<(arch powerpc &/ value y) | value m> note + +# Graphics related +set +tree 'Device Drivers,Graphics support' = - mark +set +all ?mark 'Graphics' ?flag EXPERIMENTAL ?type bool = n +set +all ?mark 'Graphics' ?flag EXPERIMENTAL ?type tristate = m note +set +all ?mark 'Graphics' !flag EXPERIMENTAL ?type tristate = m +set +pattern ^FB_[^_]+$ ?mark Graphics ?type bool !flag EXPERIMENTAL = y +set +pattern ^FB_[^_]+$ ?mark Graphics ?type bool ?flag EXPERIMENTAL = y note +set +pattern _(KMS|BACKLIGHT|I2C)$ ?mark Graphics ?type bool !flag EXPERIMENTAL = y +CONFIG_FB y mark +CONFIG_DRM p mark policy<(flavour omap4 &/ value y) | value m> note +# sub-sub-systems +CONFIG_BACKLIGHT_LCD_SUPPORT y +CONFIG_BACKLIGHT_CLASS_DEVICE y +CONFIG_DRM_LOAD_EDID_FIRMWARE y +CONFIG_FB_MODE_HELPERS y +CONFIG_FIRMWARE_EDID y +CONFIG_VGA_ARB y +CONFIG_VGA_ARB_MAX_GPUS 16 +CONFIG_LOGO n +CONFIG_VGA_CONSOLE y +CONFIG_VGA_SWITCHEROO y +CONFIG_FB_TILEBLITTING y +CONFIG_FONTS p policy<(flavour omap &/ value y) | value n> +CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY y +CONFIG_FRAMEBUFFER_CONSOLE_ROTATION n +CONFIG_VGACON_SOFT_SCROLLBACK n +# options: +CONFIG_AGP y note mark +CONFIG_AGP_AMD64 y note +CONFIG_AGP_INTEL y note +CONFIG_AGP_VIA y note +CONFIG_AGP_AMD y note +CONFIG_AGP_NVIDIA y note +CONFIG_FB_CARMINE_DRAM_EVAL y +CONFIG_DRM_EXYNOS n flag +#CONFIG_DRM_EXYNOS_FIMC y +#CONFIG_DRM_EXYNOS_IPP y +#CONFIG_DRM_EXYNOS_ROTATOR y +CONFIG_DRM_VMWGFX_FBCON n +CONFIG_FB_CYBER2000_DDC y +CONFIG_FB_FOREIGN_ENDIAN n +# Pulsbough etc +CONFIG_DRM_GMA600 y +CONFIG_DRM_GMA3600 y +# nouveau +CONFIG_NOUVEAU_DEBUG 5 +CONFIG_NOUVEAU_DEBUG_DEFAULT 3 +# exynos +CONFIG_EXYNOS_VIDEO y +CONFIG_DRM_EXYNOS_DMABUF y +CONFIG_DRM_EXYNOS_FIMD y +CONFIG_DRM_EXYNOS_G2D y +CONFIG_DRM_EXYNOS_HDMI n +CONFIG_DRM_EXYNOS_VIDI y +# aty +CONFIG_FB_ATY_CT y +CONFIG_FB_ATY_GX y +# matrox +CONFIG_FB_MATROX_G y +CONFIG_FB_MATROX_MILLENIUM y +CONFIG_FB_MATROX_MYSTIQUE y +# MB762XX +CONFIG_FB_MB862XX_PCI_GDC y +# PM2 +CONFIG_FB_PM2_FIFO_DISCONNECT y +# S3 +CONFIG_FB_S3_DDC y +# SIS +CONFIG_FB_SIS_300 y +CONFIG_FB_SIS_315 y +# TMIO +CONFIG_FB_TMIO_ACCELL y +# via +CONFIG_FB_VIA_X_COMPATIBILITY y +# omap2 +CONFIG_FB_OMAP2_NUM_FBS 3 +CONFIG_OMAP2_DSS_COLLECT_IRQ_STATS n +CONFIG_OMAP2_DSS_DEBUGFS n +CONFIG_OMAP2_DSS_DPI y +CONFIG_OMAP2_DSS_DSI n +CONFIG_OMAP4_DSS_HDMI y +CONFIG_OMAP2_DSS_MIN_FCK_PER_PCK 0 +CONFIG_OMAP2_DSS_RFBI n +CONFIG_OMAP2_DSS_SDI y +CONFIG_OMAP2_DSS_SLEEP_AFTER_VENC_RESET y +CONFIG_OMAP2_DSS_VENC y +CONFIG_OMAP2_VRAM_SIZE 16 +# omap2 -- FONTS +CONFIG_FONT_10x18 n +CONFIG_FONT_6x11 n +CONFIG_FONT_7x14 n +CONFIG_FONT_8x8 y +CONFIG_FONT_8x16 y +CONFIG_FONT_ACORN_8x8 y +CONFIG_FONT_MINI_4x6 n +CONFIG_FONT_PEARL_8x8 n +CONFIG_FONT_SUN12x22 n +CONFIG_FONT_SUN8x16 n +# ps3 +CONFIG_FB_PS3_DEFAULT_SIZE_M 9 + +# CPU Frequency Scaling +set +tree 'Power management and ACPI options,CPU Frequency scaling' = - mark +set +tree 'Device Drivers,PM_DEVFREQ' = - mark +set +all ?mark 'CPUFREQ' !mark EXPERIMENTAL ?type tristate = m +CONFIG_CPU_FREQ y mark +# cpu governers: +CONFIG_CPU_FREQ_GOV_CONSERVATIVE y note +CONFIG_CPU_FREQ_GOV_ONDEMAND y note +CONFIG_CPU_FREQ_GOV_PERFORMANCE y note +CONFIG_CPU_FREQ_GOV_POWERSAVE y note +CONFIG_CPU_FREQ_GOV_USERSPACE y note +CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE y note +# cpufreq drivers +CONFIG_X86_ACPI_CPUFREQ y note +CONFIG_X86_ACPI_CPUFREQ_CPB y +CONFIG_X86_POWERNOW_K8 y note +CONFIG_X86_SPEEDSTEP_CENTRINO y note +CONFIG_X86_SPEEDSTEP_ICH y note +CONFIG_X86_SPEEDSTEP_SMI y note +CONFIG_X86_PCC_CPUFREQ y note +CONFIG_X86_CPUFREQ_NFORCE2 y note +CONFIG_X86_SPEEDSTEP_CENTRINO_TABLE y +CONFIG_X86_SPEEDSTEP_RELAXED_CAP_CHECK y +CONFIG_ARM_OMAP2PLUS_CPUFREQ y +CONFIG_GENERIC_CPUFREQ_CPU0 y +CONFIG_CPU_FREQ_MAPLE y +# cpufreq monitoring +CONFIG_CPU_FREQ_STAT p policy<(arch i386 amd64 armel armhf &/ value y) | value m> note +CONFIG_CPU_FREQ_STAT_DETAILS y +# devfreq +CONFIG_DEVFREQ_GOV_PERFORMANCE y +CONFIG_DEVFREQ_GOV_POWERSAVE y +CONFIG_DEVFREQ_GOV_SIMPLE_ONDEMAND y +CONFIG_DEVFREQ_GOV_USERSPACE y + +# Thermal drivers +set +tree 'Device Drivers,THERMAL' = - mark +set +all ?mark 'THERMAL' !mark EXPERIMENTAL ?type tristate = m +CONFIG_THERMAL y mark +# options: +CONFIG_CPU_THERMAL y +# governers; +CONFIG_FAIR_SHARE y +CONFIG_STEP_WISE y +CONFIG_USER_SPACE y +CONFIG_THERMAL_DEFAULT_GOV_STEP_WISE y + +# Virtualisation +set +pattern '^XEN_' = - mark +set +pattern '^KVM_' = - mark +set +pattern '^VIRTIO_' = - mark +set +pattern 'CGROUP' = - mark +set +all ?mark 'VIRT' ?flag EXPERIMENTAL ?type bool = n +set +all ?mark 'VIRT' ?flag EXPERIMENTAL ?type tristate = n +set +all ?mark 'VIRT' !flag EXPERIMENTAL ?type tristate = m +# standard forms: +set +pattern CGROUP_[^_]+$ ?mark VIRT ?type bool !flag DEBUG !flag EXPERIMENTAL = y +# sub-sub-systems +CONFIG_CGROUPS y +CONFIG_KVM_GUEST y +# XEN +CONFIG_XEN_BLKDEV_FRONTEND y note +CONFIG_XEN_NETDEV_FRONTEND y note +CONFIG_XEN_BACKEND y +CONFIG_XEN_BALLOON_MEMORY_HOTPLUG y +CONFIG_XEN_BALLOON y +CONFIG_XEN_COMPAT_XENFS y +CONFIG_XEN_MCE_LOG y +CONFIG_XEN_SCRUB_PAGES y +CONFIG_XEN_SELFBALLOONING y +CONFIG_XEN_SYS_HYPERVISOR y +# KVM +CONFIG_KVM p policy<(arch powerpc &/ value y) | value m> +CONFIG_KVM_MMU_AUDIT n +CONFIG_KVM_E500V2 y +CONFIG_KVM_E500MC y +# VIRTIO +CONFIG_VIRTIO_BLK p policy<(arch i386 amd64 &/ value y) | (arch armel armhf &/ value n) | value m> note +CONFIG_VIRTIO_NET p policy<(arch i386 amd64 &/ value y) | (arch armel armhf &/ value n) | value m> note +CONFIG_VIRTIO_PCI p policy<(arch i386 amd64 &/ value y) | (arch armel armhf &/ value n) | value m> note +CONFIG_VIRTIO_MMIO p policy<(arch armel armhf &/ value n) | value m> note +CONFIG_VIRTIO_BALLOON p policy<(arch armel armhf &/ value n) | value m> note +CONFIG_SCSI_VIRTIO m note +CONFIG_VIRTIO_MMIO_CMDLINE_DEVICES y +# CGROUPS +CONFIG_CGROUP_HUGETLB y +# options: +CONFIG_LGUEST n + +# MEDIA Support +set +tree 'Device Drivers,MEDIA_SUPPORT' = - mark +set +all ?mark 'MEDIA' ?flag EXPERIMENTAL ?type bool = n +set +all ?mark 'MEDIA' ?flag EXPERIMENTAL ?type tristate = m note +set +all ?mark 'MEDIA' !flag EXPERIMENTAL ?type tristate = m +# subsystem +CONFIG_MEDIA_SUPPORT y mark +# sub-sub-systems +CONFIG_MEDIA_ANALOG_TV_SUPPORT y +CONFIG_MEDIA_CAMERA_SUPPORT y +CONFIG_MEDIA_DIGITAL_TV_SUPPORT y +CONFIG_MEDIA_PARPORT_SUPPORT y +CONFIG_MEDIA_PCI_SUPPORT y +CONFIG_MEDIA_RADIO_SUPPORT y +CONFIG_MEDIA_RC_SUPPORT y +CONFIG_RADIO_ADAPTERS y +CONFIG_RC_DECODERS y +CONFIG_RC_DEVICES y +CONFIG_V4L_MEM2MEM_DRIVERS y +CONFIG_V4L_PLATFORM_DRIVERS y +CONFIG_V4L_TEST_DRIVERS y +CONFIG_V4L_RADIO_ISA_DRIVERS y +# DVB +CONFIG_DVB_DYNAMIC_MINORS y +CONFIG_DVB_NET y +CONFIG_DVB_MAX_ADAPTERS 8 +CONFIG_DVB_AV7110_OSD y +# MEDIA +CONFIG_MEDIA_ATTACH y +CONFIG_MEDIA_SUBDRV_AUTOSELECT y +# RADIO +CONFIG_RADIO_SI470X y +# SMS +CONFIG_SMS_SIANO_RC y +# USB +CONFIG_USB_PWC_INPUT_EVDEV y +CONFIG_USB_VIDEO_CLASS_INPUT_EVDEV y +# VIDEO +CONFIG_VIDEO_FIXED_MINOR_RANGES n +CONFIG_VIDEO_CX231XX_RC y +CONFIG_VIDEO_PVRUSB2_DVB y +CONFIG_VIDEO_PVRUSB2_SYSFS y +CONFIG_VIDEO_SAA7134_RC y +CONFIG_VIDEO_STK1160_AC97 y +# misc +CONFIG_IR_RX51 n flag + +# Staging Drivers +set +tree 'Device Drivers,STAGING' = - mark +set +all ?mark 'STAGING' ?flag EXPERIMENTAL ?type bool = n +set +all ?mark 'STAGING' ?flag EXPERIMENTAL ?type tristate = n +set +all ?mark 'STAGING' !flag EXPERIMENTAL ?type tristate = m +# staging sections: +CONFIG_LIRC_STAGING y +CONFIG_STAGING_MEDIA y +# comedi: +CONFIG_COMEDI_DEFAULT_BUF_MAXSIZE_KB 20480 +CONFIG_COMEDI_DEFAULT_BUF_SIZE_KB 2048 +CONFIG_COMEDI_MISC_DRIVERS y +CONFIG_COMEDI_PCI_DRIVERS y +CONFIG_COMEDI_PCMCIA_DRIVERS y +CONFIG_COMEDI_ISA_DRIVERS y +# lirc: +CONFIG_LIRC_SERIAL_TRANSMITTER y +# options: +CONFIG_DT3155_CCIR n note +CONFIG_DT3155_STREAMING y +CONFIG_PANEL_CHANGE_MESSAGE n +CONFIG_PANEL_PARPORT 0 +CONFIG_PANEL_PROFILE 5 +CONFIG_SBE_PMCC4_NCOMM y +CONFIG_WIMAX_GDM72XX_K_MODE y +CONFIG_WIMAX_GDM72XX_QOS y +CONFIG_WIMAX_GDM72XX_WIMAX2 y +CONFIG_DRM_OMAP n +CONFIG_OMAP_BANDGAP n +CONFIG_TIDSPBRIDGE n mark +#CONFIG_TIDSPBRIDGE_BACKTRACE n mark +#CONFIG_TIDSPBRIDGE_CACHE_LINE_CHECK n +#CONFIG_TIDSPBRIDGE_NTFY_PWRERR n +#CONFIG_TIDSPBRIDGE_RECOVERY y + +# Character Devices +set +tree 'Device Drivers,Character devices' = - mark +set +all ?mark 'CHARACTER' ?flag EXPERIMENTAL ?type bool = n +set +all ?mark 'CHARACTER' ?flag EXPERIMENTAL ?type tristate = n +set +all ?mark 'CHARACTER' !flag EXPERIMENTAL ?type tristate = m +# sub-sub-sections +CONFIG_SERIAL_NONSTANDARD y +# kmem +CONFIG_DEVKMEM n mark +# console +CONFIG_TTY_PRINTK y +# VTs +CONFIG_VT y +CONFIG_VT_CONSOLE y +CONFIG_VT_HW_CONSOLE_BINDING y +CONFIG_CONSOLE_TRANSLATIONS y +# ptys -- allow legacy ptys but allocate 0 at boot. +CONFIG_DEVPTS_MULTIPLE_INSTANCES y +CONFIG_LEGACY_PTYS y +CONFIG_LEGACY_PTY_COUNT 0 +CONFIG_UNIX98_PTYS y +# hpet +CONFIG_HPET y +CONFIG_HPET_MMAP y +# hardware random +CONFIG_HW_RANDOM y +# HVC +CONFIG_HVC_XEN y +CONFIG_HVC_XEN_FRONTEND y +CONFIG_HVC_DCC y +CONFIG_HVC_CONSOLE n +CONFIG_HVC_OPAL y +CONFIG_HVC_RTAS y +CONFIG_HVC_UDBG y +# serial 8250 +CONFIG_SERIAL_8250_CONSOLE y +CONFIG_SERIAL_8250_DETECT_IRQ n +CONFIG_SERIAL_8250_EXTENDED y +CONFIG_SERIAL_8250_MANY_PORTS y +CONFIG_SERIAL_8250_NR_UARTS 48 +CONFIG_SERIAL_8250_RSA y +CONFIG_SERIAL_8250_RUNTIME_UARTS 32 +CONFIG_SERIAL_8250_SHARE_IRQ y +CONFIG_SERIAL_8250_EM n +CONFIG_SERIAL_8250 y note +CONFIG_SERIAL_8250_PCI p policy<(arch i386 amd64 armel armhf &/ value y) | value m> note +CONFIG_SERIAL_8250_PNP p policy<(arch i386 amd64 armel armhf &/ value y) | value m> note +# serial altera +CONFIG_SERIAL_ALTERA_UART_BAUDRATE 115200 +CONFIG_SERIAL_ALTERA_UART_MAXPORTS 4 +# serial amba +CONFIG_SERIAL_AMBA_PL011 p policy<(flavour highbank &/ value y) | value m> +CONFIG_SERIAL_AMBA_PL011_CONSOLE y +# serial arc +CONFIG_SERIAL_ARC_NR_PORTS 1 +# serial scnxp +CONFIG_SERIAL_SCCNXP y +CONFIG_SERIAL_SCCNXP_CONSOLE y +# serial pmaczilog +CONFIG_SERIAL_PMACZILOG_CONSOLE y +CONFIG_SERIAL_PMACZILOG_TTYS n +# options: +CONFIG_MAX_RAW_DEVS 256 +CONFIG_LP_CONSOLE n +CONFIG_CYZ_INTR n +CONFIG_IPMI_PANIC_EVENT n +CONFIG_STALDRV y +CONFIG_TCG_TPM y +CONFIG_SERIAL_KGDB_NMI y +CONFIG_SERIAL_MAX310X y +CONFIG_SERIAL_OMAP_CONSOLE y + +# CONFIG_USB_OHCI_HCD_PLATFORM and CONFIG_USB_EHCI_HCD_PLATFORM must be off on omap +CONFIG_USB_HCD_BCMA p policy<(flavour omap &/ value n) | value m> note +CONFIG_USB_HCD_SSB p policy<(flavour omap &/ value n) | value m> note + +# +# XXX: v--- unreviewed annotations. +# + +# Boot essential items are always =y +# subsystems: +# ACPI drivers +CONFIG_ACPI_AC y note +CONFIG_ACPI_BATTERY y note +CONFIG_ACPI_BUTTON y note +CONFIG_ACPI_FAN y note +CONFIG_ACPI_PROCESSOR y note +CONFIG_ACPI_THERMAL y note +CONFIG_ACPI_HED y note +CONFIG_ACPI_CONTAINER y note + +# Boot essential disk devices +CONFIG_EDD y note + +# Core debugging support +CONFIG_KGDB_SERIAL_CONSOLE y note + +# Common boot essential +CONFIG_XZ_DEC y note +CONFIG_KEYBOARD_ATKBD y note +CONFIG_SERIO y note +CONFIG_SERIO_I8042 y note +CONFIG_SERIO_LIBPS2 y note + + +# Boot essential dependancies +CONFIG_BLK_CGROUP y note +CONFIG_DNS_RESOLVER y note +CONFIG_CRC_T10DIF y note +CONFIG_ZSMALLOC y note + +# x86 boot essential +CONFIG_PCI_IOAPIC p policy<(arch i386 amd64 &/ value y) | value m> note +CONFIG_SCSI_SPI_ATTRS p policy<(arch i386 amd64 &/ value y) | value m> note +CONFIG_TOSHIBA n note + +# ARM/EFI requires FAT for kernel installation. +CONFIG_FAT_FS p policy<(arch armel armhf i386 amd64 &/ value y) | value m> note +CONFIG_VFAT_FS p policy<(arch armel armhf i386 amd64 &/ value y) | value m> note +CONFIG_NLS_CODEPAGE_437 p policy<((flavour omap omap4 | arch i386 amd64) &/ value y) | value m> note +CONFIG_NLS y note + +# ARM boot essential devices +CONFIG_MMC_BLOCK p policy<(arch armel armhf &/ value y) | value m> note +CONFIG_MMC_OMAP_HS p policy<(arch armel armhf &/ value y) | value m> note +CONFIG_FB_OMAP2 p policy<(arch armel armhf &/ value y) | value m> note +CONFIG_NOP_USB_XCEIV p policy<(flavour omap highbank &/ value y) | value m> note +CONFIG_PANEL_GENERIC_DPI p policy<(arch armel armhf &/ value y) | value m> note +CONFIG_REGULATOR_FIXED_VOLTAGE p policy<(arch armel armhf &/ value y) | value m> note +CONFIG_SERIAL_OMAP p policy<(arch armel armhf &/ value y) | value m> note +CONFIG_OMAP2_DSS p policy<(arch armel armhf &/ value y) | value m> note +CONFIG_MMC_SDHCI_PLTFM p policy<(flavour highbank &/ value y) | value m> note +CONFIG_NET_CALXEDA_XGMAC p policy<(flavour highbank &/ value y) | value m> note +CONFIG_PL330_DMA p policy<(flavour highbank &/ value y) | value m> note +CONFIG_SERIO_SERPORT p policy<(flavour highbank &/ value y) | value m> note +CONFIG_OMAP_INTERCONNECT y note +CONFIG_SND p policy<(flavour omap &/ value y) | value m> note +CONFIG_SND_OMAP_SOC_OMAP_TWL4030 p policy<(flavour omap &/ value y) | value m> note +CONFIG_SND_SOC p policy<(flavour omap &/ value y) | value m> note +CONFIG_SOUND p policy<(flavour omap &/ value y) | value m> note +CONFIG_USB_MUSB_OMAP2PLUS y +CONFIG_USB_MUSB_HDRC p policy<(flavour omap &/ value y) | value m> note + +# omap3/omap4 boot essential +CONFIG_MTD p policy<(flavour omap &/ value y) | value m> note +CONFIG_MTD_BLKDEVS p policy<(flavour omap &/ value y) | value m> note +CONFIG_MTD_BLOCK p policy<(flavour omap &/ value y) | value m> note +CONFIG_MTD_CHAR p policy<(flavour omap &/ value y) | value m> note +CONFIG_MTD_NAND p policy<(flavour omap &/ value y) | value m> note +CONFIG_MTD_NAND_OMAP2 p policy<(flavour omap &/ value y) | value m> note +CONFIG_MTD_OF_PARTS p policy<(flavour omap &/ value y) | value m> note +CONFIG_KEYBOARD_OMAP4 p policy<(flavour omap4 &/ value y) | value m> note +CONFIG_KEYBOARD_TWL4030 p policy<(flavour omap4 &/ value y) | value m> note +CONFIG_USB_NET_SMSC95XX p policy<(flavour omap4 &/ value y) | value m> note +CONFIG_USB_USBNET p policy<(flavour omap4 &/ value y) | value m> note +CONFIG_HWSPINLOCK_OMAP y note +CONFIG_HWSPINLOCK_ATMEL n note +CONFIG_HW_RANDOM_ATMEL n note +CONFIG_LEDS_GPIO p policy<(flavour omap4 &/ value y) | value m> note +CONFIG_LEDS_PWM p policy<(flavour omap4 &/ value y) | value m> note +CONFIG_LEDS_TRIGGER_HEARTBEAT p policy<(flavour omap4 &/ value y) | value m> note +CONFIG_LIB80211 p policy<(flavour omap4 &/ value y) | value m> note +CONFIG_MMC_OMAP p policy<(flavour omap4 &/ value y) | value m> note +CONFIG_MEDIA_SUPPORT p policy<(flavour omap4 &/ value y) | value m> note +CONFIG_MFD_SM501 p policy<(flavour omap4 &/ value y) | value m> note +CONFIG_USB_INVENTRA_DMA p policy<(flavour omap &/ value y) | value n> note + +# highbank boot essential +CONFIG_SATA_AHCI_PLATFORM p policy<(flavour highbank &/ value y) | (flavour omap4 &/ value n) | value m> note flag +CONFIG_EXT2_FS p policy<(flavour highbank &/ value y) | value m> note +CONFIG_KEYBOARD_HIGHBANK p policy<(flavour highbank &/ value y) | value m> note + +# POWERPC boot essential devices +CONFIG_FB_VOODOO1 p policy<(arch powerpc &/ value y) | value m> note +CONFIG_FB_3DFX p policy<(arch powerpc &/ value y) | value m> note +CONFIG_FB_PS3 p policy<(arch powerpc &/ value y) | value m> note +CONFIG_FB_ATY128 p policy<(arch powerpc &/ value y) | value m> note +CONFIG_FB_RADEON p policy<(arch powerpc &/ value y) | value m> note +CONFIG_NVRAM p policy<(arch powerpc &/ value y) | value m> note +CONFIG_HW_RANDOM_PASEMI p policy<(arch powerpc &/ value y) | value m> note +CONFIG_PS3_PS3AV p policy<(arch powerpc &/ value y) | value m> note +CONFIG_PS3_SYS_MANAGER p policy<(arch powerpc &/ value y) | value m> note +CONFIG_SERIAL_PMACZILOG p policy<(arch powerpc &/ value y) | value m> note +CONFIG_THERM_ADT746X p policy<(arch powerpc &/ value y) | value m> note + +# XEN host boot essential +CONFIG_XEN_ACPI_PROCESSOR p policy<(arch i386 amd64 &/ value y) | value m> + +# devices which make no sense on some platforms +CONFIG_PCCARD p policy<(arch armel armhf &/ value n) | value m> note + +# GRUB2 boot requirement +CONFIG_FRAMEBUFFER_CONSOLE y note + +# TESTING options +CONFIG_DMATEST n flag +CONFIG_DEBUG_NX_TEST n flag +CONFIG_BACKTRACE_SELF_TEST n flag +CONFIG_FB_VIRTUAL n flag +CONFIG_MMC_TEST n flag +CONFIG_MMIOTRACE_TEST n flag +CONFIG_RCU_TORTURE_TEST n flag +CONFIG_IEEE802154_FAKEHARD n flag +CONFIG_LKDTM n flag +CONFIG_WL12XX_SDIO_TEST n flag +CONFIG_RING_BUFFER_BENCHMARK n flag +CONFIG_RTC_DRV_TEST n flag +CONFIG_USB_DUMMY_HCD n flag +CONFIG_PCIEAER_INJECT n flag +CONFIG_PPS_CLIENT_KTIMER n flag +CONFIG_CRC32_SELFTEST n flag +CONFIG_OF_SELFTEST n flag +CONFIG_USB_ZERO_HNPTEST n flag + +# DEBUGGING option +CONFIG_BRCMDBG - flag +CONFIG_USB_XHCI_HCD_DEBUGGING n flag + +# ARM commonly use sd cards as root disks. +CONFIG_MMC_SDHCI p policy<(flavour omap highbank &/ value y) | value m> note + +# Security risk. +CONFIG_ACPI_CUSTOM_METHOD n note + + +# EFI_VARS is required for EFI boot +CONFIG_EFI_VARS y note + +# OLD/DEPRECATED things +CONFIG_IA32_AOUT n note +CONFIG_MOUSE_INPORT n note +CONFIG_OMAP_IOVMM n note + +# IKCONFIG not required +CONFIG_IKCONFIG n note + +# POWERPC +CONFIG_PATA_MACIO y note + +# Non-obvious filesystems. +CONFIG_USB_FUNCTIONFS m note +CONFIG_USB_GADGETFS m note +CONFIG_LOGFS n note +CONFIG_USB_OTG_BLACKLIST_HUB n note +CONFIG_USB_OTG_WHITELIST n note + +# filesystem misc +CONFIG_SQUASHFS_4K_DEVBLK_SIZE n note + +# ARM omap3 +CONFIG_PANEL_DVI y note +CONFIG_PANEL_SHARP_LS037V7DW01 p policy<(flavour omap &/ value y) | value m> note +CONFIG_PANEL_TPO_TD043MTEA1 p policy<(flavour omap &/ value y) | value m> note +CONFIG_SND_OMAP_SOC p policy<(flavour omap &/ value y) | value m> note +CONFIG_SND_OMAP_SOC_MCBSP p policy<(flavour omap &/ value y) | value m> note +CONFIG_SND_OMAP_SOC_OMAP3_BEAGLE p policy<(flavour omap &/ value y) | value m> note +CONFIG_USB_MUSB_TUSB6010 p policy<(flavour omap highbank &/ value n) | value m> note +CONFIG_USB_OMAP n note +CONFIG_DMA_OMAP y + +# ARM gadget mode +CONFIG_USB_GADGET p policy<(flavour omap omap4 &/ value y) | value m> note +CONFIG_USB_OTG y note +CONFIG_USB_G_MULTI p policy<(flavour omap omap4 &/ value m) | value n> note +CONFIG_USB_M66592 n note + +# powerpc64-smp requires this as CONFIG_MAPLE is enabled +CONFIG_ATA_NONSTANDARD p policy<(flavour powerpc64-smp &/ value y) | value n> note + +# APM Emulation is deliberately off on ARM to prevent new use. +CONFIG_APM_EMULATION p policy<(arch armel armhf &/ value n) | value m> note + +# BLK_DEV_XD -- ancient drives +CONFIG_BLK_DEV_XD n note + +# Geode specific, should be enabled by drivers that need it not manually. +CONFIG_CS5535_MFGPT n note + +# DVB_DUMMY_FE only recommended for experts +CONFIG_DVB_DUMMY_FE n note + +# ARM unsupported SOC +#CONFIG_FTGMAC100 n note +#CONFIG_FTMAC100 n note +#CONFIG_ARCH_EXYNOS n note +#CONFIG_ARCH_HIGHBANK n note +#CONFIG_ARCH_PICOXCELL n note +#CONFIG_ARCH_PRIMA2 n note +#CONFIG_ARCH_ZYNQ n note + +CONFIG_ARCH_MULTIPLATFORM p policy<(flavour highbank &/ value y) | value n> +CONFIG_ARCH_OMAP p policy<(flavour omap &/ value y) | value n> + +# Options which really should not have an option at all. +CONFIG_SIGMA n note +CONFIG_DM9000_FORCE_SIMPLE_PHY_POLL n + +# Items which are simply miss identified +CONFIG_DEBUG_LL_UART_NONE y note +CONFIG_USB_SERIAL_DEBUG m note + +# Experimental +CONFIG_RTL8192DE m note +CONFIG_BLK_DEV_UMEM m note + +# Optional scheduling control +CONFIG_CFS_BANDWIDTH y note + +# Hardware specific experimental options. +CONFIG_EDAC_SBRIDGE m note +CONFIG_SM_FTL m note +CONFIG_SPI_SPIDEV m note +CONFIG_ATH6KL_USB m note +CONFIG_USB_KC2190 y note + +# Dummy drivers +CONFIG_IIO_SIMPLE_DUMMY_BUFFER n note +CONFIG_IIO_SIMPLE_DUMMY_EVENTS n note + +# Options where the default is simply too broad: + +# The intel IOMMU being on by default causes a slew of issues with +# machines. We therefore enable its use, but default it off. +CONFIG_INTEL_IOMMU_DEFAULT_ON n note + +# H/W specific options +CONFIG_PATA_HPT3X3_DMA n note +CONFIG_B43_BCMA_EXTRA n note + +# Valid y/n options which are in a sensible position. +CONFIG_PPC_ICSWX_USE_SIGILL n note +# forces padding mode, without this we can select at runtime +CONFIG_USB_SERIAL_SAFE_PADDED n note +# allows the console to move to an external USB device +CONFIG_USB_SISUSBVGA_CON n note + +# Old/Deprecated +CONFIG_SCSI_AIC7XXX_OLD n note + +# OSS is handled via pulseaudio +CONFIG_SND_PCM_OSS n note + +# Poulsbo is handled by DRM_GMA500 +CONFIG_STUB_POULSBO n note + +# Risky +CONFIG_RTAS_FLASH n note + +# Only valid on fully certified platforms +CONFIG_ATH9K_DFS_CERTIFIED n note + +# CONFIG_AUDIT_LOGINUID_IMMUTABLE is not compatible with upstart +CONFIG_AUDIT_LOGINUID_IMMUTABLE n note + +# Machine specific on systems we cannot encounter. +CONFIG_GPIO_EM n note + +# Standard options. +CONFIG_PANIC_ON_OOPS n note + +# CEPHs dependancies +CONFIG_BLK_DEV_RBD m note + +# CGROUP modifications. +CONFIG_BLK_DEV_THROTTLING y note + +# Block Dev +CONFIG_BLK_DEV_XIP n note + +# +# XXX: ^--- unreviewed annotations. +# + +# temporarily disabled options -- build failures. +CONFIG_TI_CPSW p policy<(flavour omap &/ value n) | value m> flag +CONFIG_USB_MUSB_DSPS p policy<(flavour omap &/ value n) | value m> flag +CONFIG_LIS3L02DQ p policy<(arch armhf &/ value n) | value m> flag +CONFIG_EZX_PCAP p policy<(arch armhf &/ value n) | value m> flag +CONFIG_TOUCHSCREEN_EGALAX p policy<(flavour omap4 &/ value n) | value m> flag not +e +CONFIG_TOUCHSCREEN_EETI p policy<(flavour omap4 &/ value n) | value m> flag not +e +CONFIG_SENSORS_AK8975 p policy<(flavour omap4 &/ value n) | value m> flag note +CONFIG_IIO p policy<(flavour omap4 &/ value n) | value m> flag note + +# Ensure DEPRECATED options are off. +set +all ?flag DEPRECATED ?type bool = n +set +all ?flag DEPRECATED ?type tristate = n + +# Ensure DANGEROUS things are turned off. +set +all ?flag DANGEROUS = n --- linux-3.11.0.orig/debian.master/config/config.common.ports +++ linux-3.11.0/debian.master/config/config.common.ports @@ -0,0 +1,3 @@ +# +# Common config options automatically generated by splitconfig.pl +# --- linux-3.11.0.orig/debian.master/config/armhf/config.flavour.generic-lpae +++ linux-3.11.0/debian.master/config/armhf/config.flavour.generic-lpae @@ -0,0 +1,38 @@ +# +# Config options for config.flavour.generic-lpae automatically generated by splitconfig.pl +# +CONFIG_AC97_BUS=m +CONFIG_AHCI_IMX=m +# CONFIG_ARCH_MXC is not set +# CONFIG_ARCH_NEEDS_CPU_IDLE_COUPLED is not set +CONFIG_ARCH_NR_GPIO=0 +# CONFIG_ARCH_OMAP3 is not set +# CONFIG_ARCH_OMAP4 is not set +CONFIG_ARCH_PHYS_ADDR_T_64BIT=y +# CONFIG_ARCH_TEGRA is not set +# CONFIG_ARM_ATAG_DTB_COMPAT is not set +CONFIG_ARM_LPAE=y +CONFIG_COMPACTION=y +# CONFIG_CPU_FREQ is not set +CONFIG_CPU_IDLE_CALXEDA=y +# CONFIG_FB_BACKLIGHT is not set +# CONFIG_FB_DDC is not set +# CONFIG_FB_SVGALIB is not set +CONFIG_GPIO_GENERIC=m +CONFIG_GPIO_TWL6040=m +CONFIG_HUGETLB_PAGE=y +# CONFIG_MTD_SM_COMMON is not set +CONFIG_MUSB_PIO_ONLY=y +# CONFIG_PCI_SYSCALL is not set +CONFIG_PHYS_ADDR_T_64BIT=y +CONFIG_SATA_AHCI_PLATFORM=m +# CONFIG_SND_EMU10K1_SEQ is not set +# CONFIG_SND_OPL3_LIB_SEQ is not set +CONFIG_SND_SOC_HDMI_CODEC=m +CONFIG_SND_SOC_SGTL5000=m +CONFIG_SND_SOC_TWL4030=m +CONFIG_SND_SOC_TWL6040=m +# CONFIG_SPI_PXA2XX_PCI is not set +# CONFIG_TEGRA_HOST1X is not set +# CONFIG_VGASTATE is not set +CONFIG_ZONE_DMA_FLAG=1 --- linux-3.11.0.orig/debian.master/config/armhf/config.flavour.generic +++ linux-3.11.0/debian.master/config/armhf/config.flavour.generic @@ -0,0 +1,38 @@ +# +# Config options for config.flavour.generic automatically generated by splitconfig.pl +# +CONFIG_AC97_BUS=y +CONFIG_AHCI_IMX=y +CONFIG_ARCH_MXC=y +CONFIG_ARCH_NEEDS_CPU_IDLE_COUPLED=y +CONFIG_ARCH_NR_GPIO=1024 +CONFIG_ARCH_OMAP3=y +CONFIG_ARCH_OMAP4=y +# CONFIG_ARCH_PHYS_ADDR_T_64BIT is not set +CONFIG_ARCH_TEGRA=y +CONFIG_ARM_ATAG_DTB_COMPAT=y +# CONFIG_ARM_LPAE is not set +# CONFIG_COMPACTION is not set +CONFIG_CPU_FREQ=y +# CONFIG_CPU_IDLE_CALXEDA is not set +CONFIG_FB_BACKLIGHT=y +CONFIG_FB_DDC=m +CONFIG_FB_SVGALIB=m +CONFIG_GPIO_GENERIC=y +CONFIG_GPIO_TWL6040=y +# CONFIG_HUGETLB_PAGE is not set +CONFIG_MTD_SM_COMMON=m +# CONFIG_MUSB_PIO_ONLY is not set +CONFIG_PCI_SYSCALL=y +# CONFIG_PHYS_ADDR_T_64BIT is not set +CONFIG_SATA_AHCI_PLATFORM=y +CONFIG_SND_EMU10K1_SEQ=m +CONFIG_SND_OPL3_LIB_SEQ=m +CONFIG_SND_SOC_HDMI_CODEC=y +CONFIG_SND_SOC_SGTL5000=y +CONFIG_SND_SOC_TWL4030=y +CONFIG_SND_SOC_TWL6040=y +CONFIG_SPI_PXA2XX_PCI=m +CONFIG_TEGRA_HOST1X=m +CONFIG_VGASTATE=m +CONFIG_ZONE_DMA_FLAG=0 --- linux-3.11.0.orig/debian.master/config/armhf/config.common.armhf +++ linux-3.11.0/debian.master/config/armhf/config.common.armhf @@ -0,0 +1,84 @@ +# +# Config options for config.common.armhf automatically generated by splitconfig.pl +# +# CONFIG_ARCH_SELECT_MEMORY_MODEL is not set +# CONFIG_ARCH_SPARSEMEM_DEFAULT is not set +CONFIG_ASYNC_TX_DMA=y +CONFIG_BCH=y +CONFIG_DEFAULT_MMAP_MIN_ADDR=32768 +# CONFIG_EZX_PCAP is not set +# CONFIG_FB_BOOT_VESA_SUPPORT is not set +CONFIG_FB_SYS_COPYAREA=y +CONFIG_FB_SYS_FILLRECT=y +CONFIG_FB_SYS_IMAGEBLIT=y +CONFIG_FONTS=y +# CONFIG_FUNCTION_TRACER is not set +# CONFIG_HAVE_AOUT is not set +# CONFIG_HAVE_BOOTMEM_INFO_NODE is not set +CONFIG_HAVE_GENERIC_DMA_COHERENT=y +CONFIG_HZ=100 +# CONFIG_KSM is not set +CONFIG_KVM=y +# CONFIG_LIBERTAS_MESH is not set +# CONFIG_LIS3L02DQ is not set +CONFIG_LOG_BUF_SHIFT=17 +CONFIG_MFD_TMIO=y +CONFIG_MMC_BLOCK=y +CONFIG_MMC_SDHCI=y +CONFIG_MMC_SDHCI_PLTFM=y +CONFIG_MTD=y +CONFIG_MTD_BLKDEVS=y +CONFIG_MTD_BLOCK=y +CONFIG_MTD_CMDLINE_PARTS=y +CONFIG_MTD_NAND=y +CONFIG_MTD_NAND_BCH=y +CONFIG_MTD_NAND_ECC=y +CONFIG_MTD_NAND_IDS=y +# CONFIG_NL80211_TESTMODE is not set +CONFIG_NOP_USB_XCEIV=y +CONFIG_NR_CPUS=4 +CONFIG_OMAP_CONTROL_USB=y +# CONFIG_PCCARD is not set +CONFIG_PM_WAKELOCKS=y +CONFIG_PPS=y +CONFIG_PSTORE_CONSOLE=y +CONFIG_PSTORE_RAM=y +CONFIG_PTP_1588_CLOCK=y +CONFIG_RCU_FANOUT=32 +# CONFIG_RCU_NOCB_CPU is not set +# CONFIG_RCU_USER_QS is not set +CONFIG_REED_SOLOMON=y +CONFIG_REGULATOR_FIXED_VOLTAGE=y +# CONFIG_RT2800USB_UNKNOWN is not set +CONFIG_RT2X00_LIB_DEBUGFS=y +CONFIG_RTC_DRV_CMOS=m +CONFIG_SATA_HIGHBANK=y +# CONFIG_SCHED_SMT is not set +CONFIG_SCSI_SPI_ATTRS=m +CONFIG_SMS_SIANO_DEBUGFS=y +CONFIG_SND=y +CONFIG_SND_COMPRESS_OFFLOAD=y +# CONFIG_SND_OPL4_LIB_SEQ is not set +CONFIG_SND_PCM=y +# CONFIG_SND_SBAWE_SEQ is not set +CONFIG_SND_SOC=y +CONFIG_SND_SOC_I2C_AND_SPI=y +CONFIG_SND_TIMER=y +CONFIG_SOUND=y +# CONFIG_STACK_TRACER is not set +CONFIG_STANDALONE=y +CONFIG_TICK_CPU_ACCOUNTING=y +CONFIG_TWL4030_CORE=y +CONFIG_USB_CHIPIDEA=y +# CONFIG_USB_EHCI_HCD_PLATFORM is not set +CONFIG_USB_GADGET=y +CONFIG_USB_G_MULTI=m +# CONFIG_USB_HCD_BCMA is not set +# CONFIG_USB_HCD_SSB is not set +CONFIG_USB_MUSB_HDRC=y +# CONFIG_USB_MUSB_TUSB6010 is not set +# CONFIG_USB_OHCI_HCD_PLATFORM is not set +# CONFIG_VFIO_IOMMU_TYPE1 is not set +CONFIG_VIRTIO_CONSOLE=y +CONFIG_VIRTIO_MMIO=y +# CONFIG_WIL6210 is not set --- linux-3.11.0.orig/debian.master/config/i386/config.common.i386 +++ linux-3.11.0/debian.master/config/i386/config.common.i386 @@ -0,0 +1,118 @@ +# +# Config options for config.common.i386 automatically generated by splitconfig.pl +# +# CONFIG_64BIT is not set +CONFIG_AC97_BUS=m +CONFIG_ACPI_BLACKLIST_YEAR=2000 +CONFIG_AHCI_IMX=m +CONFIG_ARCH_DEFCONFIG="arch/x86/configs/i386_defconfig" +CONFIG_ARCH_HWEIGHT_CFLAGS="-fcall-saved-ecx -fcall-saved-edx" +# CONFIG_ARCH_NEEDS_CPU_IDLE_COUPLED is not set +CONFIG_ARCH_PHYS_ADDR_T_64BIT=y +CONFIG_ARCH_SELECT_MEMORY_MODEL=y +CONFIG_ASYNC_TX_DMA=y +# CONFIG_AUDIT_ARCH is not set +CONFIG_BCH=m +CONFIG_COMPACTION=y +CONFIG_CPU_FREQ=y +CONFIG_DEFAULT_MMAP_MIN_ADDR=65536 +CONFIG_EZX_PCAP=y +CONFIG_FB_BACKLIGHT=y +CONFIG_FB_BOOT_VESA_SUPPORT=y +CONFIG_FB_DDC=m +CONFIG_FB_SVGALIB=m +CONFIG_FB_SYS_COPYAREA=m +CONFIG_FB_SYS_FILLRECT=m +CONFIG_FB_SYS_IMAGEBLIT=m +# CONFIG_FONTS is not set +CONFIG_FUNCTION_TRACER=y +CONFIG_GPIO_GENERIC=m +CONFIG_GPIO_TWL6040=m +CONFIG_HAVE_AOUT=y +# CONFIG_HAVE_BOOTMEM_INFO_NODE is not set +CONFIG_HAVE_GENERIC_DMA_COHERENT=y +CONFIG_HUGETLB_PAGE=y +CONFIG_HZ=250 +CONFIG_ILLEGAL_POINTER_VALUE=0 +CONFIG_KSM=y +CONFIG_KVM=m +CONFIG_LIBERTAS_MESH=y +CONFIG_LIS3L02DQ=m +CONFIG_LOG_BUF_SHIFT=17 +# CONFIG_MFD_TMIO is not set +CONFIG_MMC_BLOCK=m +CONFIG_MMC_SDHCI=m +CONFIG_MMC_SDHCI_PLTFM=m +CONFIG_MTD=m +CONFIG_MTD_BLKDEVS=m +CONFIG_MTD_BLOCK=m +CONFIG_MTD_CMDLINE_PARTS=m +CONFIG_MTD_NAND=m +CONFIG_MTD_NAND_BCH=m +CONFIG_MTD_NAND_ECC=m +CONFIG_MTD_NAND_IDS=m +CONFIG_MTD_SM_COMMON=m +CONFIG_MUSB_PIO_ONLY=y +CONFIG_NL80211_TESTMODE=y +CONFIG_NOP_USB_XCEIV=m +CONFIG_NR_CPUS=8 +CONFIG_OMAP_CONTROL_USB=m +CONFIG_OUTPUT_FORMAT="elf32-i386" +CONFIG_PCCARD=m +CONFIG_PHYS_ADDR_T_64BIT=y +CONFIG_PM_WAKELOCKS=y +CONFIG_PPS=m +# CONFIG_PSTORE_CONSOLE is not set +CONFIG_PSTORE_RAM=m +CONFIG_PTP_1588_CLOCK=m +CONFIG_RCU_FANOUT=32 +# CONFIG_RCU_NOCB_CPU is not set +CONFIG_REED_SOLOMON=m +CONFIG_REGULATOR_FIXED_VOLTAGE=m +CONFIG_RT2800USB_UNKNOWN=y +# CONFIG_RT2X00_LIB_DEBUGFS is not set +CONFIG_RTC_DRV_CMOS=y +CONFIG_SATA_AHCI_PLATFORM=m +# CONFIG_SATA_HIGHBANK is not set +CONFIG_SCHED_SMT=y +CONFIG_SCSI_SPI_ATTRS=y +# CONFIG_SMS_SIANO_DEBUGFS is not set +CONFIG_SND=m +CONFIG_SND_COMPRESS_OFFLOAD=m +CONFIG_SND_EMU10K1_SEQ=m +CONFIG_SND_OPL3_LIB_SEQ=m +CONFIG_SND_OPL4_LIB_SEQ=m +CONFIG_SND_PCM=m +CONFIG_SND_SBAWE_SEQ=m +CONFIG_SND_SOC=m +CONFIG_SND_SOC_HDMI_CODEC=m +CONFIG_SND_SOC_I2C_AND_SPI=m +CONFIG_SND_SOC_SGTL5000=m +CONFIG_SND_SOC_TWL6040=m +CONFIG_SND_TIMER=m +CONFIG_SOUND=m +# CONFIG_SPARSEMEM_MANUAL is not set +CONFIG_SPI_PXA2XX_PCI=m +CONFIG_STACK_TRACER=y +# CONFIG_STANDALONE is not set +CONFIG_TICK_CPU_ACCOUNTING=y +# CONFIG_TWL4030_CORE is not set +CONFIG_USB_CHIPIDEA=m +CONFIG_USB_EHCI_HCD_PLATFORM=y +CONFIG_USB_GADGET=m +# CONFIG_USB_G_MULTI is not set +CONFIG_USB_HCD_BCMA=m +CONFIG_USB_HCD_SSB=m +CONFIG_USB_MUSB_HDRC=m +CONFIG_USB_MUSB_TUSB6010=m +CONFIG_USB_OHCI_HCD_PLATFORM=y +CONFIG_VFIO_IOMMU_TYPE1=m +CONFIG_VGASTATE=m +CONFIG_VIRTIO_CONSOLE=m +CONFIG_VIRTIO_MMIO=m +CONFIG_WIL6210=m +CONFIG_X86_MINIMUM_CPU_FAMILY=5 +CONFIG_X86_SPEEDSTEP_LIB=y +CONFIG_XEN_MAX_DOMAIN_MEMORY=64 +# CONFIG_ZONE_DMA32 is not set +CONFIG_ZONE_DMA_FLAG=1 --- linux-3.11.0.orig/debian.master/config/i386/config.flavour.generic +++ linux-3.11.0/debian.master/config/i386/config.flavour.generic @@ -0,0 +1,3 @@ +# +# Config options for config.flavour.generic automatically generated by splitconfig.pl +# --- linux-3.11.0.orig/debian.master/config/arm64/config.common.arm64 +++ linux-3.11.0/debian.master/config/arm64/config.common.arm64 @@ -0,0 +1 @@ +# nothing here yet --- linux-3.11.0.orig/debian.master/config/arm64/config.flavour.linaro-SOCFLAVOUR +++ linux-3.11.0/debian.master/config/arm64/config.flavour.linaro-SOCFLAVOUR @@ -0,0 +1 @@ +# nothing here yet --- linux-3.11.0.orig/debian.master/config/amd64/config.flavour.generic +++ linux-3.11.0/debian.master/config/amd64/config.flavour.generic @@ -0,0 +1,3 @@ +# +# Config options for config.flavour.generic automatically generated by splitconfig.pl +# --- linux-3.11.0.orig/debian.master/config/amd64/config.common.amd64 +++ linux-3.11.0/debian.master/config/amd64/config.common.amd64 @@ -0,0 +1,120 @@ +# +# Config options for config.common.amd64 automatically generated by splitconfig.pl +# +CONFIG_64BIT=y +CONFIG_AC97_BUS=m +CONFIG_ACPI_BLACKLIST_YEAR=0 +CONFIG_AHCI_IMX=m +CONFIG_ARCH_DEFCONFIG="arch/x86/configs/x86_64_defconfig" +CONFIG_ARCH_HWEIGHT_CFLAGS="-fcall-saved-rdi -fcall-saved-rsi -fcall-saved-rdx -fcall-saved-rcx -fcall-saved-r8 -fcall-saved-r9 -fcall-saved-r10 -fcall-saved-r11" +# CONFIG_ARCH_NEEDS_CPU_IDLE_COUPLED is not set +CONFIG_ARCH_PHYS_ADDR_T_64BIT=y +CONFIG_ARCH_SELECT_MEMORY_MODEL=y +CONFIG_ARCH_SPARSEMEM_DEFAULT=y +# CONFIG_ASYNC_TX_DMA is not set +CONFIG_AUDIT_ARCH=y +CONFIG_BCH=m +CONFIG_COMPACTION=y +CONFIG_CPU_FREQ=y +CONFIG_DEFAULT_MMAP_MIN_ADDR=65536 +CONFIG_EZX_PCAP=y +CONFIG_FB_BACKLIGHT=y +CONFIG_FB_BOOT_VESA_SUPPORT=y +CONFIG_FB_DDC=m +CONFIG_FB_SVGALIB=m +CONFIG_FB_SYS_COPYAREA=m +CONFIG_FB_SYS_FILLRECT=m +CONFIG_FB_SYS_IMAGEBLIT=m +# CONFIG_FONTS is not set +CONFIG_FUNCTION_TRACER=y +CONFIG_GPIO_GENERIC=m +CONFIG_GPIO_TWL6040=m +# CONFIG_HAVE_AOUT is not set +CONFIG_HAVE_BOOTMEM_INFO_NODE=y +# CONFIG_HAVE_GENERIC_DMA_COHERENT is not set +CONFIG_HUGETLB_PAGE=y +CONFIG_HZ=250 +CONFIG_ILLEGAL_POINTER_VALUE=0xdead000000000000 +CONFIG_KSM=y +CONFIG_KVM=m +CONFIG_LIBERTAS_MESH=y +CONFIG_LIS3L02DQ=m +CONFIG_LOG_BUF_SHIFT=18 +# CONFIG_MFD_TMIO is not set +CONFIG_MMC_BLOCK=m +CONFIG_MMC_SDHCI=m +CONFIG_MMC_SDHCI_PLTFM=m +CONFIG_MTD=m +CONFIG_MTD_BLKDEVS=m +CONFIG_MTD_BLOCK=m +CONFIG_MTD_CMDLINE_PARTS=m +CONFIG_MTD_NAND=m +CONFIG_MTD_NAND_BCH=m +CONFIG_MTD_NAND_ECC=m +CONFIG_MTD_NAND_IDS=m +CONFIG_MTD_SM_COMMON=m +CONFIG_MUSB_PIO_ONLY=y +CONFIG_NL80211_TESTMODE=y +CONFIG_NOP_USB_XCEIV=m +CONFIG_NR_CPUS=256 +CONFIG_OMAP_CONTROL_USB=m +CONFIG_OUTPUT_FORMAT="elf64-x86-64" +CONFIG_PCCARD=m +CONFIG_PHYS_ADDR_T_64BIT=y +# CONFIG_PM_WAKELOCKS is not set +CONFIG_PPS=m +# CONFIG_PSTORE_CONSOLE is not set +CONFIG_PSTORE_RAM=m +CONFIG_PTP_1588_CLOCK=m +CONFIG_RCU_FANOUT=64 +CONFIG_RCU_NOCB_CPU=y +CONFIG_RCU_USER_QS=y +CONFIG_REED_SOLOMON=m +CONFIG_REGULATOR_FIXED_VOLTAGE=m +CONFIG_RT2800USB_UNKNOWN=y +# CONFIG_RT2X00_LIB_DEBUGFS is not set +CONFIG_RTC_DRV_CMOS=y +CONFIG_SATA_AHCI_PLATFORM=m +# CONFIG_SATA_HIGHBANK is not set +CONFIG_SCHED_SMT=y +CONFIG_SCSI_SPI_ATTRS=y +CONFIG_SMS_SIANO_DEBUGFS=y +CONFIG_SND=m +CONFIG_SND_COMPRESS_OFFLOAD=m +CONFIG_SND_EMU10K1_SEQ=m +CONFIG_SND_OPL3_LIB_SEQ=m +# CONFIG_SND_OPL4_LIB_SEQ is not set +CONFIG_SND_PCM=m +# CONFIG_SND_SBAWE_SEQ is not set +CONFIG_SND_SOC=m +CONFIG_SND_SOC_HDMI_CODEC=m +CONFIG_SND_SOC_I2C_AND_SPI=m +CONFIG_SND_SOC_SGTL5000=m +CONFIG_SND_SOC_TWL6040=m +CONFIG_SND_TIMER=m +CONFIG_SOUND=m +CONFIG_SPARSEMEM_MANUAL=y +CONFIG_SPI_PXA2XX_PCI=m +CONFIG_STACK_TRACER=y +# CONFIG_STANDALONE is not set +# CONFIG_TICK_CPU_ACCOUNTING is not set +# CONFIG_TWL4030_CORE is not set +CONFIG_USB_CHIPIDEA=m +CONFIG_USB_EHCI_HCD_PLATFORM=y +CONFIG_USB_GADGET=m +# CONFIG_USB_G_MULTI is not set +CONFIG_USB_HCD_BCMA=m +CONFIG_USB_HCD_SSB=m +CONFIG_USB_MUSB_HDRC=m +CONFIG_USB_MUSB_TUSB6010=m +CONFIG_USB_OHCI_HCD_PLATFORM=y +CONFIG_VFIO_IOMMU_TYPE1=m +CONFIG_VGASTATE=m +CONFIG_VIRTIO_CONSOLE=m +CONFIG_VIRTIO_MMIO=m +CONFIG_WIL6210=m +CONFIG_X86_MINIMUM_CPU_FAMILY=64 +CONFIG_X86_SPEEDSTEP_LIB=m +CONFIG_XEN_MAX_DOMAIN_MEMORY=500 +CONFIG_ZONE_DMA32=y +CONFIG_ZONE_DMA_FLAG=1 --- linux-3.11.0.orig/debian.master/config/x32/config.common.x32 +++ linux-3.11.0/debian.master/config/x32/config.common.x32 @@ -0,0 +1 @@ +# nothing here yet --- linux-3.11.0.orig/debian.master/config/x32/config.flavour.generic +++ linux-3.11.0/debian.master/config/x32/config.flavour.generic @@ -0,0 +1 @@ +# nothing here yet --- linux-3.11.0.orig/debian.master/abi/3.11.0-15.23/abiname +++ linux-3.11.0/debian.master/abi/3.11.0-15.23/abiname @@ -0,0 +1 @@ +15 --- linux-3.11.0.orig/debian.master/abi/3.11.0-15.23/fwinfo +++ linux-3.11.0/debian.master/abi/3.11.0-15.23/fwinfo @@ -0,0 +1,726 @@ +firmware: 3826.arm +firmware: 3com/typhoon.bin +firmware: 6fire/dmx6fireap.ihx +firmware: 6fire/dmx6firecf.bin +firmware: 6fire/dmx6firel2.ihx +firmware: acenic/tg1.bin +firmware: acenic/tg2.bin +firmware: adaptec/starfire_rx.bin +firmware: adaptec/starfire_tx.bin +firmware: advansys/3550.bin +firmware: advansys/38C0800.bin +firmware: advansys/38C1600.bin +firmware: advansys/mcode.bin +firmware: agere_ap_fw.bin +firmware: agere_sta_fw.bin +firmware: aic94xx-seq.fw +firmware: ar5523.bin +firmware: asihpi/dsp5000.bin +firmware: asihpi/dsp6200.bin +firmware: asihpi/dsp6205.bin +firmware: asihpi/dsp6400.bin +firmware: asihpi/dsp6600.bin +firmware: asihpi/dsp8700.bin +firmware: asihpi/dsp8900.bin +firmware: ath10k/QCA988X/hw1.0/board.bin +firmware: ath10k/QCA988X/hw1.0/firmware.bin +firmware: ath10k/QCA988X/hw1.0/otp.bin +firmware: ath10k/QCA988X/hw2.0/board.bin +firmware: ath10k/QCA988X/hw2.0/firmware.bin +firmware: ath10k/QCA988X/hw2.0/otp.bin +firmware: ath3k-1.fw +firmware: ath6k/AR6003/hw2.0/athwlan.bin.z77 +firmware: ath6k/AR6003/hw2.0/bdata.bin +firmware: ath6k/AR6003/hw2.0/bdata.SD31.bin +firmware: ath6k/AR6003/hw2.0/data.patch.bin +firmware: ath6k/AR6003/hw2.0/otp.bin.z77 +firmware: ath6k/AR6003/hw2.1.1/athwlan.bin +firmware: ath6k/AR6003/hw2.1.1/bdata.bin +firmware: ath6k/AR6003/hw2.1.1/bdata.SD31.bin +firmware: ath6k/AR6003/hw2.1.1/data.patch.bin +firmware: ath6k/AR6003/hw2.1.1/otp.bin +firmware: ath6k/AR6004/hw1.0/bdata.bin +firmware: ath6k/AR6004/hw1.0/bdata.DB132.bin +firmware: ath6k/AR6004/hw1.0/fw.ram.bin +firmware: ath6k/AR6004/hw1.1/bdata.bin +firmware: ath6k/AR6004/hw1.1/bdata.DB132.bin +firmware: ath6k/AR6004/hw1.1/fw.ram.bin +firmware: ath6k/AR6004/hw1.2/bdata.bin +firmware: ath6k/AR6004/hw1.2/fw.ram.bin +firmware: ath6k/AR6004/hw1.3/bdata.bin +firmware: ath6k/AR6004/hw1.3/fw.ram.bin +firmware: atmel_at76c502_3com.bin +firmware: atmel_at76c502_3com-wpa.bin +firmware: atmel_at76c502.bin +firmware: atmel_at76c502d.bin +firmware: atmel_at76c502d-wpa.bin +firmware: atmel_at76c502e.bin +firmware: atmel_at76c502e-wpa.bin +firmware: atmel_at76c502-wpa.bin +firmware: atmel_at76c503-i3861.bin +firmware: atmel_at76c503-i3863.bin +firmware: atmel_at76c503-rfmd-acc.bin +firmware: atmel_at76c503-rfmd.bin +firmware: atmel_at76c504_2958.bin +firmware: atmel_at76c504_2958-wpa.bin +firmware: atmel_at76c504a_2958.bin +firmware: atmel_at76c504a_2958-wpa.bin +firmware: atmel_at76c504.bin +firmware: atmel_at76c504-wpa.bin +firmware: atmel_at76c505amx-rfmd.bin +firmware: atmel_at76c505a-rfmd2958.bin +firmware: atmel_at76c505-rfmd2958.bin +firmware: atmel_at76c505-rfmd.bin +firmware: atmel_at76c506.bin +firmware: atmel_at76c506-wpa.bin +firmware: atmsar11.fw +firmware: atsc_denver.inp +firmware: av7110/bootcode.bin +firmware: b43legacy/ucode2.fw +firmware: b43legacy/ucode4.fw +firmware: b43/ucode11.fw +firmware: b43/ucode13.fw +firmware: b43/ucode14.fw +firmware: b43/ucode15.fw +firmware: b43/ucode16_mimo.fw +firmware: b43/ucode5.fw +firmware: b43/ucode9.fw +firmware: BCM2033-FW.bin +firmware: BCM2033-MD.hex +firmware: bfubase.frm +firmware: bnx2/bnx2-mips-06-6.2.3.fw +firmware: bnx2/bnx2-mips-09-6.2.1b.fw +firmware: bnx2/bnx2-rv2p-06-6.0.15.fw +firmware: bnx2/bnx2-rv2p-09-6.0.17.fw +firmware: bnx2/bnx2-rv2p-09ax-6.0.17.fw +firmware: bnx2x/bnx2x-e1-7.8.17.0.fw +firmware: bnx2x/bnx2x-e1h-7.8.17.0.fw +firmware: bnx2x/bnx2x-e2-7.8.17.0.fw +firmware: brcm/bcm43xx-0.fw +firmware: brcm/bcm43xx_hdr-0.fw +firmware: brcm/brcmfmac43143.bin +firmware: brcm/brcmfmac43236b.bin +firmware: brcm/brcmfmac43242a.bin +firmware: brcm/brcmfmac-sdio.bin +firmware: brcm/brcmfmac-sdio.txt +firmware: BT3CPCC.bin +firmware: c218tunx.cod +firmware: c320tunx.cod +firmware: carl9170-1.fw +firmware: cbfw-3.2.1.0.bin +firmware: cis/3CCFEM556.cis +firmware: cis/3CXEM556.cis +firmware: cis/COMpad2.cis +firmware: cis/COMpad4.cis +firmware: cis/DP83903.cis +firmware: cis/LA-PCM.cis +firmware: cis/MT5634ZLX.cis +firmware: cis/NE2K.cis +firmware: cis/PCMLM28.cis +firmware: cis/PE-200.cis +firmware: cis/PE520.cis +firmware: cis/RS-COM-2P.cis +firmware: cis/SW_555_SER.cis +firmware: cis/SW_7xx_SER.cis +firmware: cis/SW_8xx_SER.cis +firmware: cis/tamarack.cis +firmware: cmmb_ming_app.inp +firmware: cmmb_vega_12mhz.inp +firmware: cmmb_venice_12mhz.inp +firmware: comedi/jr3pci.idm +firmware: cp204unx.cod +firmware: cpia2/stv0672_vp4.bin +firmware: ct2fw-3.2.1.0.bin +firmware: ctefx.bin +firmware: ctfw-3.2.1.0.bin +firmware: cxgb3/ael2005_opt_edc.bin +firmware: cxgb3/ael2005_twx_edc.bin +firmware: cxgb3/ael2020_twx_edc.bin +firmware: cxgb3/t3b_psram-1.1.0.bin +firmware: cxgb3/t3c_psram-1.1.0.bin +firmware: cxgb3/t3fw-7.12.0.bin +firmware: cxgb4/t4fw.bin +firmware: cxgb4/t5fw.bin +firmware: cyzfirm.bin +firmware: daqboard2000_firmware.bin +firmware: digiface_firmware.bin +firmware: digiface_firmware_rev11.bin +firmware: dvb-cx18-mpc718-mt352.fw +firmware: dvb-fe-af9013.fw +firmware: dvb-fe-ds3000.fw +firmware: dvb-fe-tda10071.fw +firmware: dvb-fe-xc5000-1.6.114.fw +firmware: dvb-fe-xc5000c-4.1.30.7.fw +firmware: dvbh_rio.inp +firmware: dvb_nova_12mhz_b0.inp +firmware: dvb_nova_12mhz.inp +firmware: dvb_rio.inp +firmware: dvb-usb-af9015.fw +firmware: dvb-usb-af9035-02.fw +firmware: dvb-usb-dib0700-1.20.fw +firmware: dvb-usb-dw2101.fw +firmware: dvb-usb-dw2102.fw +firmware: dvb-usb-dw2104.fw +firmware: dvb-usb-dw3101.fw +firmware: dvb-usb-ec168.fw +firmware: dvb-usb-it9135-01.fw +firmware: dvb-usb-it9135-02.fw +firmware: dvb-usb-it9137-01.fw +firmware: dvb-usb-lme2510c-lg.fw +firmware: dvb-usb-lme2510c-rs2000.fw +firmware: dvb-usb-lme2510c-s0194.fw +firmware: dvb-usb-lme2510c-s7395.fw +firmware: dvb-usb-lme2510-lg.fw +firmware: dvb-usb-lme2510-s0194.fw +firmware: dvb-usb-p1100.fw +firmware: dvb-usb-p7500.fw +firmware: dvb-usb-s630.fw +firmware: dvb-usb-s660.fw +firmware: dvb-usb-terratec-h7-az6007.fw +firmware: e100/d101m_ucode.bin +firmware: e100/d101s_ucode.bin +firmware: e100/d102e_ucode.bin +firmware: ea/3g_asic.fw +firmware: ea/darla20_dsp.fw +firmware: ea/darla24_dsp.fw +firmware: ea/echo3g_dsp.fw +firmware: ea/gina20_dsp.fw +firmware: ea/gina24_301_asic.fw +firmware: ea/gina24_301_dsp.fw +firmware: ea/gina24_361_asic.fw +firmware: ea/gina24_361_dsp.fw +firmware: ea/indigo_dj_dsp.fw +firmware: ea/indigo_djx_dsp.fw +firmware: ea/indigo_dsp.fw +firmware: ea/indigo_io_dsp.fw +firmware: ea/indigo_iox_dsp.fw +firmware: ea/layla20_asic.fw +firmware: ea/layla20_dsp.fw +firmware: ea/layla24_1_asic.fw +firmware: ea/layla24_2A_asic.fw +firmware: ea/layla24_2S_asic.fw +firmware: ea/layla24_dsp.fw +firmware: ea/loader_dsp.fw +firmware: ea/mia_dsp.fw +firmware: ea/mona_2_asic.fw +firmware: ea/mona_301_1_asic_48.fw +firmware: ea/mona_301_1_asic_96.fw +firmware: ea/mona_301_dsp.fw +firmware: ea/mona_361_1_asic_48.fw +firmware: ea/mona_361_1_asic_96.fw +firmware: ea/mona_361_dsp.fw +firmware: edgeport/boot2.fw +firmware: edgeport/boot.fw +firmware: edgeport/down2.fw +firmware: edgeport/down3.bin +firmware: edgeport/down.fw +firmware: emi26/bitstream.fw +firmware: emi26/firmware.fw +firmware: emi26/loader.fw +firmware: emi62/bitstream.fw +firmware: emi62/loader.fw +firmware: emi62/spdif.fw +firmware: emu/audio_dock.fw +firmware: emu/emu0404.fw +firmware: emu/emu1010b.fw +firmware: emu/emu1010_notebook.fw +firmware: emu/hana.fw +firmware: emu/micro_dock.fw +firmware: ene-ub6250/ms_init.bin +firmware: ene-ub6250/msp_rdwr.bin +firmware: ene-ub6250/ms_rdwr.bin +firmware: ene-ub6250/sd_init1.bin +firmware: ene-ub6250/sd_init2.bin +firmware: ene-ub6250/sd_rdwr.bin +firmware: ess/maestro3_assp_kernel.fw +firmware: ess/maestro3_assp_minisrc.fw +firmware: f2255usb.bin +firmware: fm_radio.inp +firmware: fm_radio_rio.inp +firmware: fw.ram.bin +firmware: go7007/go7007fw.bin +firmware: go7007/go7007tv.bin +firmware: go7007/lr192.fw +firmware: go7007/px-m402u.fw +firmware: go7007/px-tv402u.fw +firmware: go7007/s2250-1.fw +firmware: go7007/s2250-2.fw +firmware: go7007/wis-startrek.fw +firmware: htc_7010.fw +firmware: htc_9271.fw +firmware: i1480-phy-0.0.bin +firmware: i1480-pre-phy-0.0.bin +firmware: i1480-usb-0.0.bin +firmware: i2400m-fw-usb-1.5.sbcf +firmware: i6050-fw-usb-1.5.sbcf +firmware: ipw2100-1.3.fw +firmware: ipw2100-1.3-i.fw +firmware: ipw2100-1.3-p.fw +firmware: ipw2200-bss.fw +firmware: ipw2200-ibss.fw +firmware: ipw2200-sniffer.fw +firmware: isci/isci_firmware.bin +firmware: isdbt_nova_12mhz_b0.inp +firmware: isdbt_nova_12mhz.inp +firmware: isdbt_pele.inp +firmware: isdbt_rio.inp +firmware: isdn/ISAR.BIN +firmware: isi4608.bin +firmware: isi4616.bin +firmware: isi608.bin +firmware: isi608em.bin +firmware: isi616em.bin +firmware: isight.fw +firmware: isl3886pci +firmware: isl3886usb +firmware: isl3887usb +firmware: iwlwifi-1000-5.ucode +firmware: iwlwifi-100-5.ucode +firmware: iwlwifi-105-6.ucode +firmware: iwlwifi-135-6.ucode +firmware: iwlwifi-2000-6.ucode +firmware: iwlwifi-2030-6.ucode +firmware: iwlwifi-3160-7.ucode +firmware: iwlwifi-3945-2.ucode +firmware: iwlwifi-4965-2.ucode +firmware: iwlwifi-5000-5.ucode +firmware: iwlwifi-5150-2.ucode +firmware: iwlwifi-6000-4.ucode +firmware: iwlwifi-6000g2a-5.ucode +firmware: iwlwifi-6000g2b-6.ucode +firmware: iwlwifi-6050-5.ucode +firmware: iwlwifi-7260-7.ucode +firmware: kaweth/new_code.bin +firmware: kaweth/new_code_fix.bin +firmware: kaweth/trigger_code.bin +firmware: kaweth/trigger_code_fix.bin +firmware: keyspan/mpr.fw +firmware: keyspan_pda/keyspan_pda.fw +firmware: keyspan_pda/xircom_pgs.fw +firmware: keyspan/usa18x.fw +firmware: keyspan/usa19.fw +firmware: keyspan/usa19qi.fw +firmware: keyspan/usa19qw.fw +firmware: keyspan/usa19w.fw +firmware: keyspan/usa28.fw +firmware: keyspan/usa28xa.fw +firmware: keyspan/usa28xb.fw +firmware: keyspan/usa28x.fw +firmware: keyspan/usa49w.fw +firmware: keyspan/usa49wlc.fw +firmware: korg/k1212.dsp +firmware: lbtf_usb.bin +firmware: lgs8g75.fw +firmware: libertas/cf8305.bin +firmware: libertas/cf8381.bin +firmware: libertas/cf8381_helper.bin +firmware: libertas/cf8385.bin +firmware: libertas/cf8385_helper.bin +firmware: libertas_cs.fw +firmware: libertas_cs_helper.fw +firmware: libertas/gspi8385.bin +firmware: libertas/gspi8385_helper.bin +firmware: libertas/gspi8385_hlp.bin +firmware: libertas/gspi8686.bin +firmware: libertas/gspi8686_hlp.bin +firmware: libertas/gspi8686_v9.bin +firmware: libertas/gspi8686_v9_helper.bin +firmware: libertas/gspi8688.bin +firmware: libertas/gspi8688_helper.bin +firmware: libertas/sd8385.bin +firmware: libertas/sd8385_helper.bin +firmware: libertas/sd8686_v8.bin +firmware: libertas/sd8686_v8_helper.bin +firmware: libertas/sd8686_v9.bin +firmware: libertas/sd8686_v9_helper.bin +firmware: libertas/sd8688.bin +firmware: libertas/sd8688_helper.bin +firmware: libertas/usb8388.bin +firmware: libertas/usb8388_v5.bin +firmware: libertas/usb8388_v9.bin +firmware: libertas/usb8682.bin +firmware: matrox/g200_warp.fw +firmware: matrox/g400_warp.fw +firmware: me2600_firmware.bin +firmware: mixart/miXart8AES.xlx +firmware: mixart/miXart8.elf +firmware: mixart/miXart8.xlx +firmware: mrvl/pcie8766_uapsta.bin +firmware: mrvl/pcie8897_uapsta.bin +firmware: mrvl/sd8688.bin +firmware: mrvl/sd8688_helper.bin +firmware: mrvl/sd8786_uapsta.bin +firmware: mrvl/sd8787_uapsta.bin +firmware: mrvl/sd8797_uapsta.bin +firmware: mrvl/sd8897_uapsta.bin +firmware: mrvl/usb8797_uapsta.bin +firmware: mt7650.bin +firmware: mt7662.bin +firmware: mts_cdma.fw +firmware: mts_edge.fw +firmware: mts_gsm.fw +firmware: mts_mt9234mu.fw +firmware: mts_mt9234zba.fw +firmware: multiface_firmware.bin +firmware: multiface_firmware_rev11.bin +firmware: mwl8k/fmimage_8363.fw +firmware: mwl8k/fmimage_8366_ap-3.fw +firmware: mwl8k/fmimage_8366.fw +firmware: mwl8k/fmimage_8687.fw +firmware: mwl8k/helper_8363.fw +firmware: mwl8k/helper_8366.fw +firmware: mwl8k/helper_8687.fw +firmware: myri10ge_ethp_z8e.dat +firmware: myri10ge_eth_z8e.dat +firmware: myri10ge_rss_ethp_z8e.dat +firmware: myri10ge_rss_eth_z8e.dat +firmware: ni6534a.bin +firmware: niscrb01.bin +firmware: niscrb02.bin +firmware: orinoco_ezusb_fw +firmware: ositech/Xilinx7OD.bin +firmware: pca200e_ecd.bin2 +firmware: pcxhr/dspb1222e.b56 +firmware: pcxhr/dspb1222hr.b56 +firmware: pcxhr/dspb882e.b56 +firmware: pcxhr/dspb882hr.b56 +firmware: pcxhr/dspb924.b56 +firmware: pcxhr/dspd1222.d56 +firmware: pcxhr/dspd222.d56 +firmware: pcxhr/dspd882.d56 +firmware: pcxhr/dspe882.e56 +firmware: pcxhr/dspe924.e56 +firmware: pcxhr/xlxc1222e.dat +firmware: pcxhr/xlxc1222hr.dat +firmware: pcxhr/xlxc222.dat +firmware: pcxhr/xlxc882e.dat +firmware: pcxhr/xlxc882hr.dat +firmware: pcxhr/xlxc924.dat +firmware: pcxhr/xlxint.dat +firmware: phanfw.bin +firmware: prism2_ru.fw +firmware: prism_ap_fw.bin +firmware: prism_sta_fw.bin +firmware: ql2100_fw.bin +firmware: ql2200_fw.bin +firmware: ql2300_fw.bin +firmware: ql2322_fw.bin +firmware: ql2400_fw.bin +firmware: ql2500_fw.bin +firmware: qlogic/1040.bin +firmware: qlogic/12160.bin +firmware: qlogic/1280.bin +firmware: qlogic/sd7220.fw +firmware: r128/r128_cce.bin +firmware: radeon/ARUBA_me.bin +firmware: radeon/ARUBA_pfp.bin +firmware: radeon/ARUBA_rlc.bin +firmware: radeon/BARTS_mc.bin +firmware: radeon/BARTS_me.bin +firmware: radeon/BARTS_pfp.bin +firmware: radeon/BARTS_smc.bin +firmware: radeon/BONAIRE_ce.bin +firmware: radeon/BONAIRE_mc.bin +firmware: radeon/BONAIRE_me.bin +firmware: radeon/BONAIRE_mec.bin +firmware: radeon/BONAIRE_pfp.bin +firmware: radeon/BONAIRE_rlc.bin +firmware: radeon/BONAIRE_sdma.bin +firmware: radeon/BONAIRE_uvd.bin +firmware: radeon/BTC_rlc.bin +firmware: radeon/CAICOS_mc.bin +firmware: radeon/CAICOS_me.bin +firmware: radeon/CAICOS_pfp.bin +firmware: radeon/CAICOS_smc.bin +firmware: radeon/CAYMAN_mc.bin +firmware: radeon/CAYMAN_me.bin +firmware: radeon/CAYMAN_pfp.bin +firmware: radeon/CAYMAN_rlc.bin +firmware: radeon/CAYMAN_smc.bin +firmware: radeon/CEDAR_me.bin +firmware: radeon/CEDAR_pfp.bin +firmware: radeon/CEDAR_rlc.bin +firmware: radeon/CEDAR_smc.bin +firmware: radeon/CYPRESS_me.bin +firmware: radeon/CYPRESS_pfp.bin +firmware: radeon/CYPRESS_rlc.bin +firmware: radeon/CYPRESS_smc.bin +firmware: radeon/CYPRESS_uvd.bin +firmware: radeon/HAINAN_ce.bin +firmware: radeon/HAINAN_mc.bin +firmware: radeon/HAINAN_me.bin +firmware: radeon/HAINAN_pfp.bin +firmware: radeon/HAINAN_rlc.bin +firmware: radeon/HAINAN_smc.bin +firmware: radeon/JUNIPER_me.bin +firmware: radeon/JUNIPER_pfp.bin +firmware: radeon/JUNIPER_rlc.bin +firmware: radeon/JUNIPER_smc.bin +firmware: radeon/KABINI_ce.bin +firmware: radeon/KABINI_me.bin +firmware: radeon/KABINI_mec.bin +firmware: radeon/KABINI_pfp.bin +firmware: radeon/KABINI_rlc.bin +firmware: radeon/KABINI_sdma.bin +firmware: radeon/KAVERI_ce.bin +firmware: radeon/KAVERI_me.bin +firmware: radeon/KAVERI_mec.bin +firmware: radeon/KAVERI_pfp.bin +firmware: radeon/KAVERI_rlc.bin +firmware: radeon/KAVERI_sdma.bin +firmware: radeon/OLAND_ce.bin +firmware: radeon/OLAND_mc.bin +firmware: radeon/OLAND_me.bin +firmware: radeon/OLAND_pfp.bin +firmware: radeon/OLAND_rlc.bin +firmware: radeon/OLAND_smc.bin +firmware: radeon/PALM_me.bin +firmware: radeon/PALM_pfp.bin +firmware: radeon/PITCAIRN_ce.bin +firmware: radeon/PITCAIRN_mc.bin +firmware: radeon/PITCAIRN_me.bin +firmware: radeon/PITCAIRN_pfp.bin +firmware: radeon/PITCAIRN_rlc.bin +firmware: radeon/PITCAIRN_smc.bin +firmware: radeon/R100_cp.bin +firmware: radeon/R200_cp.bin +firmware: radeon/R300_cp.bin +firmware: radeon/R420_cp.bin +firmware: radeon/R520_cp.bin +firmware: radeon/R600_me.bin +firmware: radeon/R600_pfp.bin +firmware: radeon/R600_rlc.bin +firmware: radeon/R700_rlc.bin +firmware: radeon/REDWOOD_me.bin +firmware: radeon/REDWOOD_pfp.bin +firmware: radeon/REDWOOD_rlc.bin +firmware: radeon/REDWOOD_smc.bin +firmware: radeon/RS600_cp.bin +firmware: radeon/RS690_cp.bin +firmware: radeon/RS780_me.bin +firmware: radeon/RS780_pfp.bin +firmware: radeon/RV610_me.bin +firmware: radeon/RV610_pfp.bin +firmware: radeon/RV620_me.bin +firmware: radeon/RV620_pfp.bin +firmware: radeon/RV630_me.bin +firmware: radeon/RV630_pfp.bin +firmware: radeon/RV635_me.bin +firmware: radeon/RV635_pfp.bin +firmware: radeon/RV670_me.bin +firmware: radeon/RV670_pfp.bin +firmware: radeon/RV710_me.bin +firmware: radeon/RV710_pfp.bin +firmware: radeon/RV710_smc.bin +firmware: radeon/RV710_uvd.bin +firmware: radeon/RV730_me.bin +firmware: radeon/RV730_pfp.bin +firmware: radeon/RV730_smc.bin +firmware: radeon/RV740_smc.bin +firmware: radeon/RV770_me.bin +firmware: radeon/RV770_pfp.bin +firmware: radeon/RV770_smc.bin +firmware: radeon/SUMO2_me.bin +firmware: radeon/SUMO2_pfp.bin +firmware: radeon/SUMO_me.bin +firmware: radeon/SUMO_pfp.bin +firmware: radeon/SUMO_rlc.bin +firmware: radeon/SUMO_uvd.bin +firmware: radeon/TAHITI_ce.bin +firmware: radeon/TAHITI_mc.bin +firmware: radeon/TAHITI_me.bin +firmware: radeon/TAHITI_pfp.bin +firmware: radeon/TAHITI_rlc.bin +firmware: radeon/TAHITI_smc.bin +firmware: radeon/TAHITI_uvd.bin +firmware: radeon/TURKS_mc.bin +firmware: radeon/TURKS_me.bin +firmware: radeon/TURKS_pfp.bin +firmware: radeon/TURKS_smc.bin +firmware: radeon/VERDE_ce.bin +firmware: radeon/VERDE_mc.bin +firmware: radeon/VERDE_me.bin +firmware: radeon/VERDE_pfp.bin +firmware: radeon/VERDE_rlc.bin +firmware: radeon/VERDE_smc.bin +firmware: riptide.hex +firmware: rp2.fw +firmware: rpm_firmware.bin +firmware: rt2561.bin +firmware: rt2561s.bin +firmware: rt2661.bin +firmware: rt2860.bin +firmware: rt2870.bin +firmware: rt73.bin +firmware: RTL8192E/boot.img +firmware: RTL8192E/data.img +firmware: RTL8192E/main.img +firmware: RTL8192U/boot.img +firmware: RTL8192U/data.img +firmware: RTL8192U/main.img +firmware: rtl_nic/rtl8105e-1.fw +firmware: rtl_nic/rtl8106e-1.fw +firmware: rtl_nic/rtl8106e-2.fw +firmware: rtl_nic/rtl8168d-1.fw +firmware: rtl_nic/rtl8168d-2.fw +firmware: rtl_nic/rtl8168e-1.fw +firmware: rtl_nic/rtl8168e-2.fw +firmware: rtl_nic/rtl8168e-3.fw +firmware: rtl_nic/rtl8168f-1.fw +firmware: rtl_nic/rtl8168f-2.fw +firmware: rtl_nic/rtl8168g-2.fw +firmware: rtl_nic/rtl8168g-3.fw +firmware: rtl_nic/rtl8402-1.fw +firmware: rtl_nic/rtl8411-1.fw +firmware: rtl_nic/rtl8411-2.fw +firmware: rtlwifi/rtl8188efw.bin +firmware: rtlwifi/rtl8192cfw.bin +firmware: rtlwifi/rtl8192cfwU_B.bin +firmware: rtlwifi/rtl8192cfwU.bin +firmware: rtlwifi/rtl8192cufw.bin +firmware: rtlwifi/rtl8192defw.bin +firmware: rtlwifi/rtl8192sefw.bin +firmware: rtlwifi/rtl8712u.bin +firmware: rtlwifi/rtl8723fw_B.bin +firmware: rtlwifi/rtl8723fw.bin +firmware: sb16/alaw_main.csp +firmware: sb16/ima_adpcm_capture.csp +firmware: sb16/ima_adpcm_init.csp +firmware: sb16/ima_adpcm_playback.csp +firmware: sb16/mulaw_main.csp +firmware: scope.cod +firmware: sd8385.bin +firmware: sd8385_helper.bin +firmware: sd8686.bin +firmware: sd8686_helper.bin +firmware: sd8688.bin +firmware: sd8688_helper.bin +firmware: slicoss/gbdownload.sys +firmware: slicoss/gbrcvucode.sys +firmware: slicoss/oasisdownload.sys +firmware: slicoss/oasisrcvucode.sys +firmware: sms1xxx-hcw-55xxx-dvbt-02.fw +firmware: sms1xxx-hcw-55xxx-isdbt-02.fw +firmware: sms1xxx-nova-a-dvbt-01.fw +firmware: sms1xxx-nova-b-dvbt-01.fw +firmware: sms1xxx-stellar-dvbt-01.fw +firmware: sndscape.co0 +firmware: sndscape.co1 +firmware: sndscape.co2 +firmware: sndscape.co3 +firmware: sndscape.co4 +firmware: softing-4.6/bcard2.bin +firmware: softing-4.6/bcard.bin +firmware: softing-4.6/cancard.bin +firmware: softing-4.6/cancrd2.bin +firmware: softing-4.6/cansja.bin +firmware: softing-4.6/ldcard2.bin +firmware: softing-4.6/ldcard.bin +firmware: solos-db-FPGA.bin +firmware: solos-Firmware.bin +firmware: solos-FPGA.bin +firmware: sun/cassini.bin +firmware: symbol_sp24t_prim_fw +firmware: symbol_sp24t_sec_fw +firmware: tdmb_denver.inp +firmware: tdmb_nova_12mhz_b0.inp +firmware: tdmb_nova_12mhz.inp +firmware: tehuti/bdx.bin +firmware: ti_3410.fw +firmware: ti_5052.fw +firmware: ti-connectivity/wl1271-nvs.bin +firmware: ti-connectivity/wl127x-fw-5-mr.bin +firmware: ti-connectivity/wl127x-fw-5-plt.bin +firmware: ti-connectivity/wl127x-fw-5-sr.bin +firmware: ti-connectivity/wl128x-fw-5-mr.bin +firmware: ti-connectivity/wl128x-fw-5-plt.bin +firmware: ti-connectivity/wl128x-fw-5-sr.bin +firmware: ti-connectivity/wl18xx-fw-2.bin +firmware: tigon/tg3.bin +firmware: tigon/tg3_tso5.bin +firmware: tigon/tg3_tso.bin +firmware: tlg2300_firmware.bin +firmware: ttusb-budget/dspbootcode.bin +firmware: turtlebeach/msndinit.bin +firmware: turtlebeach/msndperm.bin +firmware: turtlebeach/pndsperm.bin +firmware: turtlebeach/pndspini.bin +firmware: ueagle-atm/930-fpga.bin +firmware: ueagle-atm/adi930.fw +firmware: ueagle-atm/CMV4i.bin +firmware: ueagle-atm/CMV4i.bin.v2 +firmware: ueagle-atm/CMV4p.bin +firmware: ueagle-atm/CMV4p.bin.v2 +firmware: ueagle-atm/CMV9i.bin +firmware: ueagle-atm/CMV9i.bin.v2 +firmware: ueagle-atm/CMV9p.bin +firmware: ueagle-atm/CMV9p.bin.v2 +firmware: ueagle-atm/CMVei.bin +firmware: ueagle-atm/CMVei.bin.v2 +firmware: ueagle-atm/CMVep.bin +firmware: ueagle-atm/CMVep.bin.v2 +firmware: ueagle-atm/DSP4i.bin +firmware: ueagle-atm/DSP4p.bin +firmware: ueagle-atm/DSP9i.bin +firmware: ueagle-atm/DSP9p.bin +firmware: ueagle-atm/DSPei.bin +firmware: ueagle-atm/DSPep.bin +firmware: ueagle-atm/eagle.fw +firmware: ueagle-atm/eagleI.fw +firmware: ueagle-atm/eagleII.fw +firmware: ueagle-atm/eagleIII.fw +firmware: ueagle-atm/eagleIV.fw +firmware: usb8388.bin +firmware: usbduxfast_firmware.bin +firmware: usbdux_firmware.bin +firmware: usbduxsigma_firmware.bin +firmware: v4l-cx231xx-avcore-01.fw +firmware: v4l-cx23418-apu.fw +firmware: v4l-cx23418-cpu.fw +firmware: v4l-cx23418-dig.fw +firmware: v4l-cx2341x-dec.fw +firmware: v4l-cx2341x-enc.fw +firmware: v4l-cx2341x-init.mpg +firmware: v4l-cx23885-avcore-01.fw +firmware: v4l-cx23885-enc.fw +firmware: v4l-cx25840.fw +firmware: v4l-pvrusb2-24xxx-01.fw +firmware: v4l-pvrusb2-29xxx-01.fw +firmware: v4l-pvrusb2-73xxx-01.fw +firmware: vicam/firmware.fw +firmware: vntwusb.fw +firmware: vx/bd56002.boot +firmware: vx/bd563s3.boot +firmware: vx/bd563v2.boot +firmware: vx/bx_1_vp4.b56 +firmware: vx/bx_1_vxp.b56 +firmware: vxge/X3fw.ncf +firmware: vxge/X3fw-pxe.ncf +firmware: vx/l_1_v22.d56 +firmware: vx/l_1_vp4.d56 +firmware: vx/l_1_vx2.d56 +firmware: vx/l_1_vxp.d56 +firmware: vx/x1_1_vp4.xlx +firmware: vx/x1_1_vx2.xlx +firmware: vx/x1_1_vxp.xlx +firmware: vx/x1_2_v22.xlx +firmware: wavefront.os +firmware: whiteheat.fw +firmware: whiteheat_loader.fw +firmware: wl1251-fw.bin +firmware: xc3028L-v36.fw +firmware: xc3028-v27.fw +firmware: yam/1200.bin +firmware: yam/9600.bin +firmware: yamaha/ds1_ctrl.fw +firmware: yamaha/ds1_dsp.fw +firmware: yamaha/ds1e_ctrl.fw +firmware: yamaha/yss225_registers.bin +firmware: zd1201-ap.fw +firmware: zd1201.fw +firmware: zd1211/zd1211b_ub +firmware: zd1211/zd1211b_uphr +firmware: zd1211/zd1211b_ur +firmware: zd1211/zd1211_ub +firmware: zd1211/zd1211_uphr +firmware: zd1211/zd1211_ur --- linux-3.11.0.orig/debian.master/abi/3.11.0-15.23/armhf/generic-lpae.modules +++ linux-3.11.0/debian.master/abi/3.11.0-15.23/armhf/generic-lpae.modules @@ -0,0 +1,2831 @@ +6lowpan +6pack +8021q +8250_dw +8255 +88pm800 +88pm805 +88pm80x +88pm80x_onkey +88pm860x_battery +88pm860x_bl +88pm860x_charger +88pm860x_onkey +88pm860x-ts +9p +9pnet +9pnet_virtio +a3d +a8293 +aat2870_bl +aat2870-regulator +ab3100 +ab3100-otp +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 +ad2s1200 +ad2s1210 +ad2s90 +ad5064 +ad525x_dpot +ad525x_dpot-i2c +ad525x_dpot-spi +ad5360 +ad5380 +ad5398 +ad5421 +ad5446 +ad5449 +ad5504 +ad5624r_spi +ad5686 +ad5755 +ad5764 +ad5791 +ad5930 +ad5933 +ad714x +ad714x-i2c +ad714x-spi +ad7150 +ad7152 +ad7192 +ad7266 +ad7280a +ad7291 +ad7298 +ad7303 +ad7314 +ad7414 +ad7418 +ad7476 +ad7606 +ad7746 +ad7780 +ad7791 +ad7793 +ad7816 +ad7877 +ad7879 +ad7879-i2c +ad7879-spi +ad7887 +ad7923 +ad799x +ad8366 +ad9523 +ad9832 +ad9834 +ad9850 +ad9852 +ad9910 +ad9951 +adcxx +ade7753 +ade7754 +ade7758 +ade7759 +ade7854 +ade7854-i2c +ade7854-spi +adf4350 +adfs +adi +adis16060 +adis16080 +adis16130 +adis16136 +adis16201 +adis16203 +adis16204 +adis16209 +adis16220 +adis16240 +adis16260 +adis16400 +adis16480 +adis_lib +adjd_s311 +adm1021 +adm1025 +adm1026 +adm1029 +adm1031 +adm1275 +adm9240 +adp5520_bl +adp5520-keys +adp5588-keys +adp5589-keys +adp8860_bl +adp8870_bl +ads1015 +ads7828 +ads7846 +ads7871 +ad_sigma_delta +adt7310 +adt7316 +adt7316-i2c +adt7316-spi +adt7410 +adt7411 +adt7462 +adt7470 +adt7475 +adt7x10 +adummy +adutux +adv7180 +adxl34x +adxl34x-i2c +adxl34x-spi +adxrs450 +aes-arm +af_802154 +af9013 +af9033 +af_alg +affs +af_key +af_packet_diag +af-rxrpc +afs +ah4 +ah6 +ahci_imx +ahci_platform +aiptek +aircable +ak8975 +alauda +algif_hash +algif_skcipher +alphatrack +altera_jtaguart +altera_ps2 +altera-stapl +altera_uart +ambakmi +amba-pl010 +amc6821 +ams369fg06 +analog +anatop-regulator +ansi_cprng +anubis +aoe +apbps2 +apds9802als +apds990x +appledisplay +appletalk +appletouch +ar5523 +ar7part +arc4 +arc_emac +arc_ps2 +arc_uart +arizona-haptics +arizona-i2c +arizona-ldo1 +arizona-micsupp +arizona-spi +ark3116 +arptable_filter +arp_tables +arpt_mangle +as3711_bl +as3711-regulator +as5011 +asc7621 +asix +asus_oled +async_memcpy +async_pq +async_raid6_recov +async_tx +async_xor +at24 +at25 +at76c50x-usb +at86rf230 +at91_can +at91_ether +atbm8830 +aten +ath +ath10k_core +ath3k +ath6kl_core +ath6kl_sdio +ath6kl_usb +ath9k +ath9k_common +ath9k_htc +ath9k_hw +ati_remote +ati_remote2 +atm +atmel_mxt_ts +atmel_pwm +atmel-pwm-bl +atmel-ssc +atmtcp +atxp1 +au0828 +au8522_common +au8522_decoder +au8522_dig +aufs +auo_k1900fb +auo_k1901fb +auo_k190x +auo-pixcir-ts +authenc +authencesn +auth_rpcgss +autofs4 +ax25 +ax88179_178a +ax88796 +b2c2-flexcop +b2c2-flexcop-usb +b43 +b43legacy +b44 +bas_gigaset +batman-adv +baycom_epp +baycom_par +baycom_ser_fdx +baycom_ser_hdx +bcache +bcm203x +bcm3510 +bcm5974 +bcma +bcm_wimax +befs +belkin_sa +bfs +bfusb +bh1770glc +bh1780gli +binfmt_misc +block2mtd +blocklayoutdriver +blowfish_common +blowfish_generic +bluetooth +bma150 +bmp085-i2c +bmp085-spi +bnep +bonding +bpa10x +bpck +bpck6 +bpqether +bq2415x_charger +bq27x00_battery +br2684 +brcmfmac +brcmsmac +brcmutil +bridge +broadsheetfb +bsd_comp +btmrvl +btmrvl_sdio +btmtk_usb +btrfs +btsdio +btusb +btwilink +bu21013_ts +bw-qcam +c67x00 +cachefiles +caif +caif_hsi +caif_serial +caif_socket +caif_usb +caif_virtio +camellia_generic +can +can-bcm +can-dev +can-gw +can-raw +capi +capidrv +carl9170 +cast5_generic +cast6_generic +cast_common +catc +cc770 +cc770_isa +cc770_platform +c_can +c_can_platform +ccm +cdc-acm +cdc_eem +cdc_ether +cdc_mbim +cdc_ncm +cdc-phonet +cdc_subset +cdc-wdm +cedusb +ceph +cfg80211 +cfi_cmdset_0001 +cfi_cmdset_0002 +cfi_cmdset_0020 +cfi_probe +cfi_util +cfspi_slave +ch +ch341 +ch7006 +chnl_net +cifs +clearpad_tm1217 +clip +clk-max77686 +clk-si5351 +clk-twl6040 +clk-wm831x +cls_basic +cls_cgroup +cls_flow +cls_fw +cls_route +cls_rsvp +cls_rsvp6 +cls_tcindex +cls_u32 +cm109 +cma3000_d0x +cma3000_d0x_i2c +cmac +cmtp +cobra +coda +comedi +comedi_bond +comedi_fc +comedi_parport +comedi_test +comm +configfs +cordic +core +cp210x +cpia2 +cpu-notifier-error-inject +c-qcam +cramfs +crc32 +crc7 +crc8 +crc-ccitt +crc-itu-t +cros_ec +cros_ec_i2c +cros_ec_keyb +cros_ec_spi +cryptd +cryptoloop +crypto_null +crypto_user +cs53l32a +cs89x0 +ctr +cts +cuse +cw1200_core +cw1200_wlan_sdio +cw1200_wlan_spi +cx22702 +cx231xx +cx231xx-alsa +cx231xx-dvb +cx2341x +cx24113 +cx24116 +cx24123 +cx25840 +cx82310_eth +cxacru +cxd2820r +cy8ctmg110_ts +cyapa +cyberjack +cypress_cy7c63 +cypress_firmware +cypress_m8 +cytherm +cyttsp4_core +cyttsp4_i2c +cyttsp4_spi +cyttsp_core +cyttsp_i2c +cyttsp_i2c_common +cyttsp_spi +da9030_battery +da9034-ts +da903x +da903x_bl +da9052-battery +da9052_bl +da9052-hwmon +da9052_onkey +da9052-regulator +da9052_tsi +da9052_wdt +da9055-hwmon +da9055_onkey +da9055-regulator +da9055_wdt +db9 +dccp +dccp_diag +dccp_ipv4 +dccp_ipv6 +dccp_probe +decnet +deflate +denali +denali_dt +des_generic +designware_i2s +dgrp +dib0070 +dib0090 +dib3000mb +dib3000mc +dib7000m +dib7000p +dib8000 +dibx000_common +digi_acceleport +diskonchip +dlci +dlm +dm9000 +dm9601 +dm-bio-prison +dm-bufio +dm-cache +dm-cache-cleaner +dm-cache-mq +dm-crypt +dm-delay +dme1737 +dm-flakey +dm-log +dm-log-userspace +dm-mirror +dm-multipath +dm-persistent-data +dm-queue-length +dm-raid +dm-raid45 +dm-region-hash +dm-round-robin +dm-service-time +dm-snapshot +dm-switch +dm-thin-pool +dm-verity +dm-zero +dnet +dn_rtmsg +docg3 +docg4 +drbd +drm +drm_kms_helper +drm_usb +drxd +drxk +ds1621 +ds1682 +ds1wm +ds2482 +ds2490 +ds2760_battery +ds2780_battery +ds2781_battery +ds2782_battery +ds3000 +ds620 +dsa_core +dsbr100 +dss1_divert +dstr +dt9812 +dummy +dummy-irq +dvb-as102 +dvb-core +dvb-pll +dvb-usb +dvb-usb-a800 +dvb-usb-af9005 +dvb-usb-af9005-remote +dvb-usb-af9015 +dvb-usb-af9035 +dvb-usb-anysee +dvb-usb-au6610 +dvb-usb-az6007 +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-it913x +dvb-usb-lmedm04 +dvb-usb-m920x +dvb-usb-mxl111sf +dvb-usb-nova-t-usb2 +dvb-usb-opera +dvb-usb-pctv452e +dvb-usb-rtl28xxu +dvb-usb-technisat-usb2 +dvb-usb-ttusb2 +dvb-usb-umt-010 +dvb_usb_v2 +dvb-usb-vp702x +dvb-usb-vp7045 +dwc3 +dwc3-exynos +dwc3-omap +dw_dmac +dw_dmac_core +dw_mmc +dw_mmc-exynos +dw_mmc-pltfm +dw_mmc-socfpga +dw_wdt +dynapro +e4000 +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_vlan +ec100 +echo +edac_core +edt-ft5x06 +eeprom +eeprom_93cx6 +eeprom_93xx46 +eeti_ts +efs +egalax_ts +elo +em28xx +em28xx-alsa +em28xx-dvb +em28xx-rc +emc1403 +emc2103 +emc6w201 +em_canid +em_cmp +emi26 +emi62 +em_ipset +em_meta +em_nbyte +empeg +ems_usb +em_text +em_u32 +enc28j60 +enclosure +epat +epia +eql +esd_usb2 +esi-sir +esp4 +esp6 +ethoc +evbug +exofs +ext2 +extcon-adc-jack +extcon-arizona +extcon-gpio +extcon-max77693 +extcon-max8997 +extcon-palmas +exynos-rng +ezusb +f2fs +f71805f +f71882fg +f75375s +f81232 +fakelb +fan53555 +faulty +fb_sys_fops +fc0011 +fc0012 +fc0013 +fc2580 +fcrypt +ff-memless +fit2 +fit3 +flashloader +fmc +fmc-chardev +fmc-fakedev +fmc-trivial +fmc-write-eeprom +fm_drv +fotg210-udc +freevxfs +friq +frpw +fsa9480 +fscache +fsl_lpuart +ft1000 +ftdi-elan +ftdi_sio +ftgmac100 +ftl +ftmac100 +fujitsu_ts +funsoft +fusbh200-hcd +g760a +g762 +g_acm_ms +gadgetfs +gamecon +gameport +garmin_gps +garp +g_audio +g_cdc +gcm +g_dbgp +gdmwm +generic +generic-adc-battery +generic_bl +gen_probe +g_ether +gf128mul +gf2k +g_ffs +gfs2 +ghash-generic +g_hid +gigaset +girbil-sir +gl518sm +gl520sm +gl620a +gluebi +g_mass_storage +g_midi +g_multi +g_ncm +g_nokia +go7007 +go7007-loader +go7007-usb +goldfish_battery +goldfishfb +gp2ap002a00f +gpio +gpio-74x164 +gpio-addr-flash +gpio-adnp +gpio-adp5520 +gpio-adp5588 +gpio-arizona +gpio-charger +gpio-da9052 +gpio-da9055 +gpio-fan +gpio-generic +gpio-grgpio +gpio-ir-recv +gpio_keys +gpio_keys_polled +gpio-max7300 +gpio-max7301 +gpio-max730x +gpio-max732x +gpio-mc33880 +gpio-mcp23s08 +gpio_mouse +gpio-pca953x +gpio-pcf857x +gpio-rcar +gpio-regulator +gpio_tilt_polled +gpio-tps65912 +gpio-ts5500 +gpio-twl6040 +gpio-viperboard +gpio-wm831x +gpio-wm8350 +gpio-wm8994 +g_printer +grcan +gre +grip +grip_mp +g_serial +gspca_benq +gspca_conex +gspca_cpia1 +gspca_etoms +gspca_finepix +gspca_gl860 +gspca_jeilinj +gspca_jl2005bcd +gspca_kinect +gspca_konica +gspca_m5602 +gspca_main +gspca_mars +gspca_mr97310a +gspca_nw80x +gspca_ov519 +gspca_ov534 +gspca_ov534_9 +gspca_pac207 +gspca_pac7302 +gspca_pac7311 +gspca_se401 +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_topro +gspca_tv8532 +gspca_vc032x +gspca_vicam +gspca_xirlink_cit +gspca_zc3xx +gtco +guillemot +gunze +g_webcam +g_zero +hampshire +hanwang +hci +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-a4tech +hid-apple +hid-appleir +hid-aureal +hid-axff +hid-belkin +hid-cherry +hid-chicony +hid-cypress +hid-dr +hid-elecom +hid-elo +hid-emsff +hid-ezkey +hid-gaff +hid-generic +hid-gyration +hid-holtekff +hid-holtek-kbd +hid-holtek-mouse +hid-huion +hid-icade +hid-kensington +hid-keytouch +hid-kye +hid-lcpower +hid-lenovo-tpkbd +hid-logitech +hid-logitech-dj +hid-magicmouse +hid-microsoft +hid-monterey +hid-multitouch +hid-ntrig +hid-ortek +hidp +hid-petalynx +hid-picolcd +hid-pl +hid-primax +hid-prodikeys +hid-roccat +hid-roccat-arvo +hid-roccat-common +hid-roccat-isku +hid-roccat-kone +hid-roccat-koneplus +hid-roccat-konepure +hid-roccat-kovaplus +hid-roccat-lua +hid-roccat-pyra +hid-roccat-savu +hid-saitek +hid-samsung +hid-sensor-accel-3d +hid-sensor-als +hid-sensor-gyro-3d +hid-sensor-hub +hid-sensor-iio-common +hid-sensor-magn-3d +hid-sensor-trigger +hid-sjoy +hid-sony +hid-speedlink +hid-steelseries +hid-sunplus +hid-thingm +hid-tivo +hid-tmff +hid-topseed +hid-twinhan +hid-uclogic +hid-wacom +hid-waltop +hid-wiimote +hid-zpff +hid-zydacron +highbank_l2_edac +highbank_mc_edac +hih6130 +hisax +hisax_st5481 +hmc5843 +hmc6352 +hostap +hp4x +hpfs +hsi +hsi_char +hso +htc-pasic3 +hwmon-vid +hx8357 +i2400m +i2400m-usb +i2c-algo-bit +i2c-algo-pca +i2c-arb-gpio-challenge +i2c-cbus-gpio +i2c-designware-core +i2c-designware-platform +i2c-dev +i2c-diolan-u2c +i2c-gpio +i2c-hid +i2c-kempld +i2c-mux +i2c-mux-gpio +i2c-mux-pca9541 +i2c-mux-pca954x +i2c-nomadik +i2c-ocores +i2c-parport +i2c-parport-light +i2c-pca-platform +i2c-simtec +i2c-smbus +i2c-stub +i2c-taos-evm +i2c-tiny-usb +i2c-versatile +i2c-viperboard +i2c-xiic +ibmaem +ibmpex +ics932s401 +idmouse +ieee802154 +ifb +iforce +iguanair +iio_dummy +iio_hwmon +iio-trig-interrupt +iio-trig-periodic-rtc +iio-trig-sysfs +ili210x +ili922x +ili9320 +imm +imon +impa7 +ims-pcu +imx074 +ina209 +ina2xx +industrialio +industrialio-triggered-buffer +inet_diag +inexio +inftl +input-polldev +int51x1 +interact +interval_tree_test +inv-mpu6050 +io_edgeport +io_ti +iowarrior +ip6_gre +ip6table_filter +ip6table_mangle +ip6table_nat +ip6table_raw +ip6_tables +ip6table_security +ip6t_ah +ip6t_eui64 +ip6t_frag +ip6t_hbh +ip6t_ipv6header +ip6t_MASQUERADE +ip6t_mh +ip6t_NPT +ip6t_REJECT +ip6t_rpfilter +ip6t_rt +ip6_tunnel +ipack +ipaq +ipcomp +ipcomp6 +ipddp +ip_gre +ipheth +ipip +ipmi_devintf +ipmi_msghandler +ipmi_poweroff +ipmi_si +ipmi_watchdog +ipoctal +ip_set +ip_set_bitmap_ip +ip_set_bitmap_ipmac +ip_set_bitmap_port +ip_set_hash_ip +ip_set_hash_ipport +ip_set_hash_ipportip +ip_set_hash_ipportnet +ip_set_hash_net +ip_set_hash_netiface +ip_set_hash_netport +ip_set_list_set +iptable_filter +iptable_mangle +iptable_nat +iptable_raw +ip_tables +iptable_security +ipt_ah +ipt_CLUSTERIP +ipt_ECN +ipt_MASQUERADE +ipt_REJECT +ipt_rpfilter +ipt_ULOG +ip_tunnel +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 +ip_vti +ipw +ipx +ircomm +ircomm-tty +irda +irda-usb +ir-jvc-decoder +ir-kbd-i2c +irlan +ir-lirc-codec +ir-mce_kbd-decoder +ir-nec-decoder +irnet +ir-rc5-decoder +ir-rc5-sz-decoder +ir-rc6-decoder +ir-sanyo-decoder +ir-sony-decoder +irtty-sir +ir-usb +iscsi_boot_sysfs +iscsi_target_mod +iscsi_tcp +isdn +isdn_bsdcomp +isdnhdlc +isight_firmware +isl29003 +isl29018 +isl29020 +isl29028 +isl6271a-regulator +isl6421 +isl6423 +isofs +isp116x-hcd +isp1362-hcd +isp1704_charger +isp1760 +it87 +it913x-fe +itd1000 +itg3200 +iuu_phoenix +ix2505v +jc42 +jedec_probe +jffs2 +jfs +joydev +joydump +kafs +kalmia +kaweth +kbic +kbtab +kcomedilib +kempld-core +kempld_wdt +kernelcapi +keucr +keyspan +keyspan_pda +keyspan_remote +kfifo_buf +khazad +kingsun-sir +kl5kusb105 +kobil_sct +ks0108 +ks8842 +ks8851 +ks8851_mll +ks959-sir +ksdazzle-sir +ktti +kvaser_usb +kxsd9 +kxtj9 +l1oip +l2tp_core +l2tp_debugfs +l2tp_eth +l2tp_ip +l2tp_ip6 +l2tp_netlink +l2tp_ppp +l4f00242t03 +lapb +lapbether +latch-addr-flash +lattice-ecp3-config +lcd +ld9040 +ldusb +lec +leds-88pm860x +leds-adp5520 +leds-atmel-pwm +leds-bd2802 +leds-blinkm +leds-da903x +leds-da9052 +leds-dac124s085 +leds-gpio +leds-lm3530 +leds-lm3533 +leds-lm355x +leds-lm3642 +leds-lp3944 +leds-lp5521 +leds-lp5523 +leds-lp5562 +leds-lp55xx-common +leds-lp8788 +leds-lt3593 +leds-max8997 +leds-mc13783 +leds-ot200 +leds-pca9532 +leds-pca955x +leds-pca9633 +leds-pwm +leds-regulator +leds-tca6507 +leds-wm831x-status +leds-wm8350 +ledtrig-backlight +ledtrig-camera +ledtrig-default-on +ledtrig-gpio +ledtrig-heartbeat +ledtrig-oneshot +ledtrig-timer +ledtrig-transient +legousbtower +lg2160 +lgdt3305 +lgdt330x +lgs8gxx +lg-vl600 +lib80211 +lib80211_crypt_ccmp +lib80211_crypt_tkip +lib80211_crypt_wep +libceph +libcomposite +libcrc32c +libertas +libertas_sdio +libertas_spi +libertas_tf +libertas_tf_usb +libfc +libfcoe +libiscsi +libiscsi_tcp +libore +libosd +libsas +lightning +line6usb +lineage-pem +linear +lirc_dev +lirc_igorplugusb +lirc_imon +lirc_parallel +lirc_sasem +lirc_serial +lirc_sir +lirc_zilog +lis3lv02d +lis3lv02d_i2c +lis3lv02d_spi +litelink-sir +lkkbd +llc +llc2 +lm25066 +lm3533-als +lm3533_bl +lm3533-core +lm3533-ctrlbank +lm3630_bl +lm3639_bl +lm63 +lm70 +lm73 +lm75 +lm77 +lm78 +lm80 +lm83 +lm8323 +lm8333 +lm85 +lm87 +lm90 +lm92 +lm93 +lm95234 +lm95241 +lm95245 +lms283gf05 +lms501kf03 +lnbp21 +lnbp22 +lockd +lp +lp3971 +lp3972 +lp855x_bl +lp8727_charger +lp8755 +lp8788_bl +lp8788-charger +lpddr_cmds +lru_cache +lrw +ltc2978 +ltc4151 +ltc4215 +ltc4245 +ltc4261 +lttng-kprobes +lttng-kretprobes +lttng-lib-ring-buffer +lttng-probe-asoc +lttng-probe-block +lttng-probe-btrfs +lttng-probe-compaction +lttng-probe-ext3 +lttng-probe-ext4 +lttng-probe-gpio +lttng-probe-irq +lttng-probe-jbd +lttng-probe-jbd2 +lttng-probe-kmem +lttng-probe-kvm +lttng-probe-module +lttng-probe-napi +lttng-probe-net +lttng-probe-power +lttng-probe-printk +lttng-probe-random +lttng-probe-rcu +lttng-probe-regmap +lttng-probe-regulator +lttng-probe-rpm +lttng-probe-sched +lttng-probe-scsi +lttng-probe-signal +lttng-probe-skb +lttng-probe-sock +lttng-probe-statedump +lttng-probe-sunrpc +lttng-probe-timer +lttng-probe-udp +lttng-probe-vmscan +lttng-probe-workqueue +lttng-probe-writeback +lttng-ring-buffer-client-discard +lttng-ring-buffer-client-mmap-discard +lttng-ring-buffer-client-mmap-overwrite +lttng-ring-buffer-client-overwrite +lttng-ring-buffer-metadata-client +lttng-ring-buffer-metadata-mmap-client +lttng-statedump +lttng-tracer +lttng-types +ltv350qv +lz4 +lz4_compress +lz4hc +lz4hc_compress +m25p80 +m2m-deinterlace +m88rs2000 +ma600-sir +mac80211 +mac80211_hwsim +mac802154 +macb +mac-celtic +mac-centeuro +mac-croatian +mac-cyrillic +mac-gaelic +mac-greek +mac-iceland +mac-inuit +mac-roman +mac-romanian +mac-turkish +macvlan +macvtap +magellan +map_absent +map_ram +map_rom +matrix-keymap +matrix_keypad +max1111 +max11801_ts +max1363 +max1586 +max16064 +max16065 +max1619 +max1668 +max17040_battery +max17042_battery +max197 +max2165 +max3100 +max34440 +max517 +max63xx_wdt +max6639 +max6642 +max6650 +max6697 +max6875 +max7359_keypad +max77686 +max77693 +max8649 +max8660 +max8688 +max8903_charger +max8907 +max8907-regulator +max8925_bl +max8925_onkey +max8925_power +max8925-regulator +max8952 +max8973-regulator +max8997 +max8997_charger +max8998 +max8998_charger +mb86a20s +mc13783-adc +mc13783-pwrbutton +mc13783-regulator +mc13783_ts +mc13892-regulator +mc13xxx-core +mc13xxx-i2c +mc13xxx-regulator-core +mc13xxx-spi +mc44s803 +mceusb +mcp2120-sir +mcp251x +mcp3021 +mcp320x +mcp4725 +mcs5000_ts +mcs7780 +mcs7830 +mcs_touchkey +mct_u232 +md4 +mdc800 +mem2mem_testdev +memstick +mena21_wdt +metronomefb +metro-usb +mg_disk +michael_mic +microread +microread_i2c +microtek +mii +minix +mip6 +mISDN_core +mISDN_dsp +mk712 +mkiss +mma8450 +mms114 +mos7720 +mos7840 +moto_modem +mpoa +mpr121_touchkey +mpu3050 +mrf24j40 +mrp +msdos +msp3400 +mspro_block +mt2060 +mt2063 +mt20xx +mt2266 +mt312 +mt352 +mt9m001 +mt9m111 +mt9t031 +mt9t112 +mt9v011 +mt9v022 +mtd_dataflash +mtdoops +mtdram +mtdswap +mtouch +multipath +mv88e6060 +mv88e6xxx_drv +mvmdio +mv_u3d_core +mv_udc +mwifiex +mwifiex_sdio +mwifiex_usb +mxl111sf-demod +mxl111sf-tuner +mxl5005s +mxl5007t +nandsim +navman +nbd +nci +ncpfs +nct6775 +net1080 +net2272 +netconsole +netlink_diag +netprio_cgroup +netrom +newtonkbd +nfc +nf_conntrack +nf_conntrack_amanda +nf_conntrack_broadcast +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_snmp +nf_conntrack_tftp +nfcsim +nfcwilink +nf_defrag_ipv4 +nf_defrag_ipv6 +nf_nat +nf_nat_amanda +nf_nat_ftp +nf_nat_h323 +nf_nat_ipv4 +nf_nat_ipv6 +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_acct +nfnetlink_cthelper +nfnetlink_cttimeout +nfnetlink_log +nfnetlink_queue +nfs +nfs_acl +nfsd +nfs_layout_nfsv41_files +nfsv2 +nfsv3 +nfsv4 +nftl +nf_tproxy_core +n_hdlc +nilfs2 +nlmon +nls_ascii +nls_cp1250 +nls_cp1251 +nls_cp1255 +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 +notifier-error-inject +n_r3964 +ns558 +ntc_thermistor +ntfs +n_tracerouter +n_tracesink +nvram +nxt200x +nxt6000 +objlayoutdriver +ocfs2 +ocfs2_dlm +ocfs2_dlmfs +ocfs2_nodemanager +ocfs2_stackglue +ocfs2_stack_o2cb +ocfs2_stack_user +old_belkin-sir +olpc_apsp +omfs +omninet +on20 +on26 +onenand +opencores-kbd +openvswitch +oprofile +opticon +option +osd +osdblk +osst +oti6858 +output +ov2640 +ov5642 +ov6650 +ov7640 +ov772x +ov9640 +ov9740 +overlayfs +oxu210hp-hcd +ozwpan +p54common +p54spi +p54usb +p8022 +p8023 +palmas-regulator +pandora_bl +panel +paride +parkbd +parport +parport_ax88796 +parport_pc +pata_arasan_cf +pata_of_platform +pata_platform +pc87360 +pc87427 +pcbc +pcd +pcf50633 +pcf50633-adc +pcf50633-backlight +pcf50633-charger +pcf50633-gpio +pcf50633-input +pcf50633-regulator +pcf8574_keypad +pcf8591 +pcrypt +pcwd_usb +pd +pda_power +peak_usb +pegasus +penmount +pf +pg +phonet +phram +phy-gpio-vbus-usb +phy-isp1301 +phy-omap-usb3 +phy-rcar-usb +phy-samsung-usb +phy-samsung-usb2 +phy-samsung-usb3 +physmap +physmap_of +pixcir_i2c_ts +pktcdvd +pktgen +pl2303 +pl330 +platform_lcd +plat_nand +plat-ram +plip +plusb +pmbus +pmbus_core +pm-notifier-error-inject +pn533 +pn544 +pn544_i2c +pn_pep +poseidon +powermate +ppa +ppdev +ppp_async +ppp_deflate +ppp_mppe +pppoatm +pppoe +pppox +ppp_synctty +pps-gpio +pps-ldisc +pps_parport +pptp +prism2_usb +ps2mult +psmouse +psnap +pt +pvrusb2 +pwc +pwm-beeper +pwm_bl +pwm-pca9685 +pwm-twl +pwm-twl-led +pxa27x_udc +qcaux +qcserial +qinfo_probe +qmi_wwan +qnx4 +qnx6 +qt1010 +qt1070 +qt2160 +quatech2 +quota_tree +quota_v1 +quota_v2 +r8152 +r815x +r820t +r8712u +r8a66597-hcd +r8a66597-udc +radio-i2c-si470x +radio-keene +radio-ma901 +radio-mr800 +radio-shark +radio-si4713 +radio-si476x +radio-tea5764 +radio-usb-si470x +radio-wl1273 +raid0 +raid1 +raid10 +raid456 +raid6_pq +raid6test +raid_class +raw +rbd +rbtree_test +rc5t583-regulator +rc-adstech-dvb-t-pci +rc-alink-dtu-m +rc-anysee +rc-apac-viewcomp +rcar-du-drm +rc-asus-pc39 +rc-asus-ps3-100 +rc-ati-tv-wonder-hd-600 +rc-ati-x10 +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-delock-61959 +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 +rc-imon-mce +rc-imon-pad +rc-iodata-bctv7e +rc-it913x-v1 +rc-it913x-v2 +rc-kaiomy +rc-kworld-315u +rc-kworld-pc150u +rc-kworld-plus-tv-analog +rc-leadtek-y04g0051 +rc-lirc +rc-lme2510 +rc-loopback +rc-manli +rc-medion-x10 +rc-medion-x10-digitainer +rc-medion-x10-or2x +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-rc6-mce +rc-real-audio-220-32-keys +rc-reddo +rc-snapstream-firefly +rc-streamzap +rc-tbs-nec +rc-technisat-usb2 +rc-terratec-cinergy-xs +rc-terratec-slim +rc-terratec-slim-2 +rc-tevii-nec +rc-tivo +rc-total-media-in-hand +rc-total-media-in-hand-02 +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 +redrat3 +reiserfs +remoteproc +renesas_usbhs +retu-mfd +retu-pwrbutton +retu_wdt +rfcomm +rfd_ftl +rfkill-gpio +rfkill-regulator +rio500 +rj54n1cb0c +rmd128 +rmd160 +rmd256 +rmd320 +rndis_host +rndis_wlan +romfs +rose +rotary_encoder +rpcsec_gss_krb5 +rt2500usb +rt2800lib +rt2800usb +rt2x00lib +rt2x00usb +rt73usb +rtc-88pm80x +rtc-88pm860x +rtc-ab3100 +rtc-bq32k +rtc-bq4802 +rtc-cmos +rtc-da9052 +rtc-da9055 +rtc-ds1286 +rtc-ds1305 +rtc-ds1307 +rtc-ds1374 +rtc-ds1390 +rtc-ds1511 +rtc-ds1553 +rtc-ds1672 +rtc-ds1742 +rtc-ds2404 +rtc-ds3232 +rtc-ds3234 +rtc-em3027 +rtc-fm3130 +rtc-hid-sensor-time +rtc-isl12022 +rtc-isl1208 +rtc-lp8788 +rtc-m41t80 +rtc-m41t93 +rtc-m41t94 +rtc-m48t35 +rtc-m48t59 +rtc-m48t86 +rtc-max6900 +rtc-max6902 +rtc-max77686 +rtc-max8907 +rtc-max8925 +rtc-max8997 +rtc-max8998 +rtc-mc13xxx +rtc-msm6242 +rtc-palmas +rtc-pcf2123 +rtc-pcf2127 +rtc-pcf50633 +rtc-pcf8523 +rtc-pcf8563 +rtc-pcf8583 +rtc-pl030 +rtc-r9701 +rtc-rc5t583 +rtc-rp5c01 +rtc-rs5c348 +rtc-rs5c372 +rtc-rv3029c2 +rtc-rx4581 +rtc-rx8025 +rtc-rx8581 +rtc-s35390a +rtc-snvs +rtc-stk17ta8 +rtc-tps6586x +rtc-tps65910 +rtc-tps80031 +rtc-v3020 +rtc-wm831x +rtc-wm8350 +rtc-x1205 +rtl2830 +rtl2832 +rtl8150 +rtl8187 +rtl8192c-common +rtl8192cu +rtl_usb +rtlwifi +rts5139 +rx51_battery +rxkad +s1d13xxxfb +s2250 +s2255drv +s2mps11 +s5h1409 +s5h1411 +s5h1420 +s5m8767 +s6e63m0 +s921 +saa7115 +saa7706h +safe_serial +salsa20_generic +samsung-keypad +sata_mv +sata_rcar +sbs-battery +sca3000 +sch5627 +sch5636 +sch56xx-common +sch_atm +sch_cbq +sch_choke +sch_codel +sch_drr +sch_dsmark +sch_fq_codel +sch_gred +sch_hfsc +sch_htb +sch_ingress +sch_mqprio +sch_multiq +sch_netem +sch_plug +sch_prio +sch_qfq +sch_red +sch_sfb +sch_sfq +sch_tbf +sch_teql +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 +sctp +sctp_probe +sdhci-pxav2 +sdhci-pxav3 +sdio_uart +seed +seqiv +ser_gigaset +serial2002 +serio_raw +sermouse +serpent_generic +serport +serqt_usb2 +ses +sha1-arm +shark2 +sh_eth +shmob-drm +sh_mobile_ceu_camera +sh_mobile_csi2 +sht15 +sht21 +sh_veu +si21xx +si4713-i2c +si476x-core +sidewinder +siemens_mpi +sierra +sierra_net +sil164 +sir-dev +sisusbvga +sit +sja1000 +sja1000_isa +sja1000_of_platform +sja1000_platform +skel +sl811-hcd +slcan +slip +slram +sm501 +sm501fb +smb347-charger +smc911x +smc91x +sm_ftl +smm665 +smsc47b397 +smsc47m1 +smsc47m192 +smsc75xx +smsc911x +smsc95xx +smscufx +smsdvb +smsmdtv +smssdio +smsusb +snd-aaci +snd-ac97-codec +snd-aloop +snd-at73c213 +snd-dummy +snd-hrtimer +snd-hwdep +snd-mpu401 +snd-mpu401-uart +snd-mtpav +snd-mts64 +snd-portman2x4 +snd-rawmidi +snd-seq +snd-seq-device +snd-seq-dummy +snd-seq-midi +snd-seq-midi-event +snd-seq-virmidi +snd-serial-u16550 +snd-soc-88pm860x +snd-soc-ab8500-codec +snd-soc-ad1836 +snd-soc-ad193x +snd-soc-ad73311 +snd-soc-adau1373 +snd-soc-adav80x +snd-soc-ads117x +snd-soc-ak4104 +snd-soc-ak4535 +snd-soc-ak4641 +snd-soc-ak4642 +snd-soc-ak4671 +snd-soc-ak5386 +snd-soc-alc5623 +snd-soc-alc5632 +snd-soc-arizona +snd-soc-atmel-pcm +snd-soc-bt-sco +snd-soc-cs4270 +snd-soc-cs4271 +snd-soc-cs42l51 +snd-soc-cs42l52 +snd-soc-cs42l73 +snd-soc-cx20442 +snd-soc-da7210 +snd-soc-da7213 +snd-soc-da732x +snd-soc-da9055 +snd-soc-hdmi-codec +snd-soc-isabelle +snd-soc-jz4740-codec +snd-soc-l3 +snd-soc-lm4857 +snd-soc-lm49453 +snd-soc-max9768 +snd-soc-max98088 +snd-soc-max98090 +snd-soc-max98095 +snd-soc-max9850 +snd-soc-max9877 +snd-soc-mc13783 +snd-soc-ml26124 +snd-soc-pcm3008 +snd-soc-rt5631 +snd-soc-rt5640 +snd-soc-sgtl5000 +snd-soc-si476x +snd-soc-simple-card +snd-soc-spdif-rx +snd-soc-spdif-tx +snd-soc-ssm2518 +snd-soc-ssm2602 +snd-soc-sta32x +snd-soc-sta529 +snd-soc-tas5086 +snd-soc-tlv320aic23 +snd-soc-tlv320aic26 +snd-soc-tlv320aic32x4 +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-wm0010 +snd-soc-wm1250-ev1 +snd-soc-wm2000 +snd-soc-wm2200 +snd-soc-wm5100 +snd-soc-wm5102 +snd-soc-wm5110 +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-wm8782 +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-wm8983 +snd-soc-wm8985 +snd-soc-wm8988 +snd-soc-wm8990 +snd-soc-wm8991 +snd-soc-wm8993 +snd-soc-wm8994 +snd-soc-wm8995 +snd-soc-wm8996 +snd-soc-wm9081 +snd-soc-wm9090 +snd-soc-wm-adsp +snd-soc-wm-hubs +snd-tea575x-tuner +snd-ua101 +snd-usb-6fire +snd-usb-audio +snd-usb-caiaq +snd-usb-hiface +snd-usbmidi-lib +snd-virmidi +soc_camera +soc_camera_platform +soc_mediabus +soc_scale_crop +softdog +softing +sony-btf-mpx +sp805_wdt +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 +speedtch +spi-altera +spi-bitbang +spi-butterfly +spidev +spi-dw +spi-dw-mmio +spi-gpio +spi_ks8995 +spi-lm70llp +spi-oc-tiny +spi-pl022 +spi-sc18is602 +spi-tle62x0 +spi-xcomm +squashfs +ssb +ssd1307fb +ssfdc +sst25l +ssu100 +st +st1232 +st_accel +st_accel_i2c +st_accel_spi +stb0899 +stb6000 +stb6100 +st_drv +ste_modem_rproc +st_gyro +st_gyro_i2c +st_gyro_spi +stinger +stir4200 +stk1160 +stkwebcam +st_magn +st_magn_i2c +st_magn_spi +stmmac +stmpe-keypad +stmpe-ts +stowaway +stp +st_pressure +st_pressure_i2c +st_pressure_spi +streamzap +st_sensors +st_sensors_i2c +st_sensors_spi +stv0288 +stv0297 +stv0299 +stv0900 +stv090x +stv6110 +stv6110x +sunkbd +sunrpc +suunto +symbolserial +synaptics_i2c +synaptics_i2c_rmi4 +synaptics_usb +sysv +target_core_file +target_core_iblock +target_core_mod +target_core_pscsi +tc3589x-keypad +tca6416-keypad +tca8418_keypad +tcm_fc +tcm_loop +tcm_usb_gadget +tcp_bic +tcp_diag +tcp_highspeed +tcp_htcp +tcp_hybla +tcp_illinois +tcp_lp +tcp_probe +tcp_scalable +tcp_vegas +tcp_veno +tcp_westwood +tcp_yeah +tcrypt +tda10023 +tda10048 +tda1004x +tda10071 +tda10086 +tda18212 +tda18218 +tda18271 +tda18271c2dd +tda826x +tda827x +tda8290 +tda9887 +tda998x +tdo24m +tea +tea5761 +tea5767 +tef6862 +tekram-sir +test-kprobes +test-kstrtox +test_power +test-string_helpers +tgr192 +thmc50 +ti-adc081c +ti_am335x_adc +ti_am335x_tsc +ti_am335x_tscadc +ti_dac7512 +timb_dma +timblogiw +timbuart +timeriomem-rng +tipc +ti_usb_3410_5052 +tm6000 +tm6000-alsa +tm6000-dvb +tmdc +tmiofb +tmio_mmc +tmio_mmc_core +tmio_nand +tmp102 +tmp401 +tmp421 +toim3232-sir +touchit213 +touchright +touchwin +tpm_i2c_infineon +tpm_i2c_stm_st33 +tpm-rng +tps51632-regulator +tps6105x +tps6105x-regulator +tps62360-regulator +tps65010 +tps65023-regulator +tps6507x +tps6507x-regulator +tps6507x-ts +tps65090-charger +tps65090-regulator +tps65217 +tps65217_bl +tps65217-regulator +tps6524x-regulator +tps6586x-regulator +tps65910-regulator +tps65912-regulator +tps80031-regulator +trancevibrator +tranzport +ts2020 +ts_bm +tsc2005 +tsc2007 +tsc40 +ts_fsm +ts_kmp +tsl2550 +tsl2563 +tsl2583 +tsl2x7x_core +ttpci-eeprom +ttusbir +tua9001 +tuner +tuner_it913x +tuner-simple +tuner-types +tuner-xc2028 +tunnel4 +tunnel6 +turbografx +tveeprom +tvp5150 +tw2804 +tw9903 +tw9906 +tw9910 +twidjoy +twl4030_charger +twl4030_keypad +twl4030-madc +twl4030-madc-hwmon +twl4030-pwrbutton +twl4030-vibra +twl4030_wdt +twl6040-vibra +twofish_common +twofish_generic +u132-hcd +ubi +ubifs +ucb1400_core +ucb1400_ts +ucd9000 +ucd9200 +uda1342 +udf +udl +udlfb +udp_diag +ueagle-atm +u_ether +ufs +ufshcd +ufshcd-pltfrm +uhid +uio +uio_dmem_genirq +uio_pdrv +uio_pdrv_genirq +ums-alauda +ums-cypress +ums-datafab +ums-eneub6250 +ums-freecom +ums-isd200 +ums-jumpshot +ums-karma +ums-onetouch +ums-realtek +ums-sddr09 +ums-sddr55 +ums-usbat +unix_diag +u_rndis +usb3503 +usb_8dev +usb8xxx +usbatm +usb_debug +usbdux +usbduxfast +usbduxsigma +usb_f_acm +usb_f_ecm +usb_f_ecm_subset +usb_f_eem +usb_f_ncm +usb_f_obex +usb_f_phonet +usb_f_rndis +usb_f_serial +usb_f_ss_lb +usb_gigaset +usbhid +usbip-core +usbip-host +usbkbd +usblcd +usbled +usblp +usbmon +usbmouse +usbnet +usbserial +usbsevseg +usb-storage +usbtest +usbtmc +usbtouchscreen +usbtv +usbvision +usb_wwan +u_serial +userspace-consumer +ushc +uss720 +uvcvideo +uvesafb +ux500 +v4l2-common +v4l2-int-device +v4l2-mem2mem +vcan +vcnl4000 +veth +vexpress +vgg2432a4 +vhci-hcd +vhost +vhost_net +vhost_scsi +via-velocity +videobuf2-core +videobuf2-dma-contig +videobuf2-memops +videobuf2-vmalloc +videobuf-core +videobuf-dma-contig +videobuf-dvb +videobuf-vmalloc +videodev +viperboard +viperboard_adc +virtio_balloon +virtio-rng +virtio_scsi +virtual +visor +vivi +vivopay-serial +vmac +vmk80xx +vringh +vsock +vsxxxaa +vt1211 +vt6656_stage +vub300 +vxlan +w1_bq27000 +w1_ds2408 +w1_ds2413 +w1_ds2423 +w1_ds2431 +w1_ds2433 +w1_ds2760 +w1_ds2780 +w1_ds2781 +w1_ds28e04 +w1-gpio +w1_smem +w1_therm +w35und +w5100 +w5300 +w83627ehf +w83627hf +w83781d +w83791d +w83792d +w83793 +w83795 +w83l785ts +w83l786ng +w90p910_ts +w9966 +wacom +wacom_i2c +wacom_w8001 +walkera0701 +warrior +whiteheat +wimax +wire +wishbone-serial +wl1251 +wl1251_sdio +wl1251_spi +wl1273-core +wl12xx +wl18xx +wlcore +wlcore_sdio +wlcore_spi +wm831x_backup +wm831x_bl +wm831x-dcdc +wm831x-hwmon +wm831x-isink +wm831x-ldo +wm831x-on +wm831x_power +wm831x-ts +wm831x_wdt +wm8350-hwmon +wm8350_power +wm8350-regulator +wm8350_wdt +wm8400-regulator +wm8775 +wm8994-regulator +wm97xx-ts +wp512 +x25 +x25_asy +xc4000 +xc5000 +xcbc +xen-blkback +xen-evtchn +xen-fbfront +xenfs +xen-gntalloc +xen-gntdev +xen-kbdfront +xen-netback +xen-privcmd +xen_wdt +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_algo +xfrm_ipcomp +xfrm_user +xfs +xgmac +xilinx_uartps +xor +xpad +xsens_mt +x_tables +xt_addrtype +xt_AUDIT +xt_bpf +xt_CHECKSUM +xt_CLASSIFY +xt_cluster +xt_comment +xt_connbytes +xt_connlabel +xt_connlimit +xt_connmark +xt_CONNSECMARK +xt_conntrack +xt_cpu +xt_CT +xt_dccp +xt_devgroup +xt_dscp +xt_DSCP +xt_ecn +xt_esp +xt_hashlimit +xt_helper +xt_hl +xt_HL +xt_HMARK +xt_IDLETIMER +xt_iprange +xt_ipvs +xtkbd +xt_LED +xt_length +xt_limit +xt_LOG +xt_mac +xt_mark +xt_multiport +xt_nat +xt_NETMAP +xt_nfacct +xt_NFLOG +xt_NFQUEUE +xt_osf +xt_owner +xt_physdev +xt_pkttype +xt_policy +xt_quota +xt_rateest +xt_RATEEST +xt_realm +xt_recent +xt_REDIRECT +xts +xt_sctp +xt_SECMARK +xt_set +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 +xz_dec_test +yam +yealink +yurex +zaurus +zd1201 +zd1211rw +zhenhua +zio +zl10039 +zl10353 +zl6100 +zlib +zlib_deflate +zr364xx +zram +zte_ev --- linux-3.11.0.orig/debian.master/abi/3.11.0-15.23/armhf/generic.compiler +++ linux-3.11.0/debian.master/abi/3.11.0-15.23/armhf/generic.compiler @@ -0,0 +1 @@ +GCC: (Ubuntu/Linaro 4.7.3-7ubuntu3) 4.7.3 --- linux-3.11.0.orig/debian.master/abi/3.11.0-15.23/armhf/generic-lpae.compiler +++ linux-3.11.0/debian.master/abi/3.11.0-15.23/armhf/generic-lpae.compiler @@ -0,0 +1 @@ +GCC: (Ubuntu/Linaro 4.7.3-7ubuntu3) 4.7.3 --- linux-3.11.0.orig/debian.master/abi/3.11.0-15.23/armhf/generic.modules +++ linux-3.11.0/debian.master/abi/3.11.0-15.23/armhf/generic.modules @@ -0,0 +1,3664 @@ +3w-9xxx +3w-sas +3w-xxxx +6lowpan +6pack +8021q +8139cp +8139too +8250_dw +8255 +8255_pci +8390 +88pm800 +88pm805 +88pm80x +88pm80x_onkey +88pm860x_battery +88pm860x_bl +88pm860x_charger +88pm860x_onkey +88pm860x-ts +9p +9pnet +9pnet_rdma +9pnet_virtio +a100u2w +a3d +a8293 +aacraid +aat2870_bl +aat2870-regulator +ab3100 +ab3100-otp +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 +ad2s1200 +ad2s1210 +ad2s90 +ad5064 +ad525x_dpot +ad525x_dpot-i2c +ad525x_dpot-spi +ad5360 +ad5380 +ad5398 +ad5421 +ad5446 +ad5449 +ad5504 +ad5624r_spi +ad5686 +ad5755 +ad5764 +ad5791 +ad5930 +ad5933 +ad714x +ad714x-i2c +ad714x-spi +ad7150 +ad7152 +ad7192 +ad7266 +ad7280a +ad7291 +ad7298 +ad7303 +ad7314 +ad7414 +ad7418 +ad7476 +ad7606 +ad7746 +ad7780 +ad7791 +ad7793 +ad7816 +ad7877 +ad7879 +ad7879-i2c +ad7879-spi +ad7887 +ad7923 +ad799x +ad8366 +ad9523 +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_2032 +addi_apci_2200 +addi_apci_3501 +addi_apci_3xxx +addi_watchdog +ade7753 +ade7754 +ade7758 +ade7759 +ade7854 +ade7854-i2c +ade7854-spi +adf4350 +adfs +adi +adis16060 +adis16080 +adis16130 +adis16136 +adis16201 +adis16203 +adis16204 +adis16209 +adis16220 +adis16240 +adis16260 +adis16400 +adis16480 +adis_lib +adjd_s311 +adl_pci6208 +adl_pci7x3x +adl_pci8164 +adl_pci9111 +adm1021 +adm1025 +adm1026 +adm1029 +adm1031 +adm1275 +adm8211 +adm9240 +adp5520_bl +adp5520-keys +adp5588-keys +adp5589-keys +adp8860_bl +adp8870_bl +ads1015 +ads7828 +ads7846 +ads7871 +ad_sigma_delta +adt7310 +adt7316 +adt7316-i2c +adt7316-spi +adt7410 +adt7411 +adt7462 +adt7470 +adt7475 +adt7x10 +adummy +adutux +adv7180 +adv_pci1710 +adv_pci1723 +adv_pci1724 +adv_pci_dio +adxl34x +adxl34x-i2c +adxl34x-spi +adxrs450 +aes-arm +af_802154 +af9013 +af9033 +af_alg +affs +af_key +af_packet_diag +af-rxrpc +afs +ah4 +ah6 +ahci +aic79xx +aic7xxx +aic94xx +aiptek +aircable +ak8975 +alauda +algif_hash +algif_skcipher +alim7101_wdt +alphatrack +altera-ci +altera_jtaguart +altera_ps2 +altera-stapl +altera_uart +alx +ambakmi +amba-pl010 +amc6821 +amd5536udc +amd8111e +amplc_dio200_common +amplc_dio200_pci +amplc_pc236 +amplc_pci224 +amplc_pci230 +amplc_pci263 +ams369fg06 +analog +anatop-regulator +ansi_cprng +anubis +aoe +apbps2 +apds9802als +apds990x +appledisplay +appletalk +appletouch +applicom +ar5523 +ar7part +arc4 +arc_emac +arcmsr +arcnet +arc_ps2 +arc-rawmode +arc-rimi +arc_uart +arizona-haptics +arizona-i2c +arizona-ldo1 +arizona-micsupp +arizona-spi +ark3116 +arkfb +arptable_filter +arp_tables +arpt_mangle +as3711_bl +as3711-regulator +as5011 +asc7621 +asix +ast +asus_oled +async_memcpy +async_pq +async_raid6_recov +async_tx +async_xor +at24 +at25 +at76c50x-usb +at86rf230 +at91_can +at91_ether +atbm8830 +aten +ath +ath10k_core +ath10k_pci +ath3k +ath5k +ath6kl_core +ath6kl_sdio +ath6kl_usb +ath9k +ath9k_common +ath9k_htc +ath9k_hw +ati_remote +ati_remote2 +atl1 +atl1c +atl1e +atl2 +atm +atmel +atmel_mxt_ts +atmel_pci +atmel_pwm +atmel-pwm-bl +atmel-ssc +atmtcp +atp870u +atxp1 +aty128fb +atyfb +au0828 +au8522_common +au8522_decoder +au8522_dig +aufs +auo_k1900fb +auo_k1901fb +auo_k190x +auo-pixcir-ts +authenc +authencesn +auth_rpcgss +autofs4 +avmfritz +ax25 +ax88179_178a +ax88796 +b1 +b1dma +b1pci +b2c2-flexcop +b2c2-flexcop-pci +b2c2-flexcop-usb +b43 +b43legacy +b44 +bas_gigaset +batman-adv +baycom_epp +baycom_par +baycom_ser_fdx +baycom_ser_hdx +bcache +bcm203x +bcm3510 +bcm5974 +bcma +bcm_wimax +be2iscsi +be2net +befs +belkin_sa +bfa +bfs +bfusb +bh1770glc +bh1780gli +binfmt_misc +block2mtd +blocklayoutdriver +blowfish_common +blowfish_generic +bluetooth +bma150 +bmp085-i2c +bmp085-spi +bna +bnep +bnx2 +bnx2fc +bnx2i +bnx2x +bonding +bpa10x +bpck +bpck6 +bpctl_mod +bpqether +bq2415x_charger +bq27x00_battery +br2684 +brcmfmac +brcmsmac +brcmutil +bridge +broadsheetfb +bsd_comp +bt878 +btcx-risc +btmrvl +btmrvl_sdio +btmtk_usb +btrfs +btsdio +bttv +btusb +btwilink +bu21013_ts +budget +budget-av +budget-ci +budget-core +budget-patch +bw-qcam +bypass +c4 +c67x00 +cachefiles +cafe_ccic +cafe_nand +caif +caif_hsi +caif_serial +caif_socket +caif_usb +caif_virtio +camellia_generic +can +can-bcm +can-dev +can-gw +can-raw +capi +capidrv +capmode +carl9170 +carminefb +cassini +cast5_generic +cast6_generic +cast_common +catc +cb710 +cb710-mmc +cb_pcidas +cb_pcidas64 +cb_pcidda +cb_pcimdas +cb_pcimdda +cc770 +cc770_isa +cc770_platform +c_can +c_can_pci +c_can_platform +cciss +ccm +cdc-acm +cdc_eem +cdc_ether +cdc_mbim +cdc_ncm +cdc-phonet +cdc_subset +cdc-wdm +cedusb +ceph +cfg80211 +cfi_cmdset_0001 +cfi_cmdset_0002 +cfi_cmdset_0020 +cfi_probe +cfi_util +cfspi_slave +ch +ch341 +ch7006 +chnl_net +cifs +cirrus +cirrusfb +clearpad_tm1217 +clip +clk-max77686 +clk-si5351 +clk-twl6040 +clk-wm831x +cls_basic +cls_cgroup +cls_flow +cls_fw +cls_route +cls_rsvp +cls_rsvp6 +cls_tcindex +cls_u32 +cm109 +cma3000_d0x +cma3000_d0x_i2c +cmac +cmtp +cnic +cobra +coda +com20020 +com20020-pci +com90io +com90xx +comedi +comedi_bond +comedi_fc +comedi_parport +comedi_test +comm +configfs +connector-analog-tv +connector-dvi +connector-hdmi +contec_pci_dio +cordic +core +cp210x +cpia2 +cpu-notifier-error-inject +c-qcam +cramfs +crc32 +crc7 +crc8 +crc-ccitt +crc-itu-t +cros_ec +cros_ec_i2c +cros_ec_keyb +cros_ec_spi +cryptd +cryptoloop +crypto_null +crypto_user +crystalhd +cs5345 +cs53l32a +cs89x0 +csiostor +ctr +cts +cuse +cw1200_core +cw1200_wlan_sdio +cw1200_wlan_spi +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 +cxd2099 +cxd2820r +cxgb +cxgb3 +cxgb3i +cxgb4 +cxgb4i +cxgb4vf +cxt1e1 +cy8ctmg110_ts +cyapa +cyber2000fb +cyberjack +cyclades +cypress_cy7c63 +cypress_firmware +cypress_m8 +cytherm +cyttsp4_core +cyttsp4_i2c +cyttsp4_spi +cyttsp_core +cyttsp_i2c +cyttsp_i2c_common +cyttsp_spi +da9030_battery +da9034-ts +da903x +da903x_bl +da9052-battery +da9052_bl +da9052-hwmon +da9052_onkey +da9052-regulator +da9052_tsi +da9052_wdt +da9055-hwmon +da9055_onkey +da9055-regulator +da9055_wdt +DAC960 +daqboard2000 +das08 +das08_pci +davinci_cpdma +davinci_emac +davinci_mdio +db9 +dc395x +dccp +dccp_diag +dccp_ipv4 +dccp_ipv6 +dccp_probe +ddbridge +de2104x +decnet +deflate +defxx +denali +denali_dt +denali_pci +des_generic +designware_i2s +dgrp +dib0070 +dib0090 +dib3000mb +dib3000mc +dib7000m +dib7000p +dib8000 +dibx000_common +digi_acceleport +diskonchip +divacapi +divadidd +diva_idi +diva_mnt +divas +dl2k +dlci +dlm +dm1105 +dm644x_ccdc +dm9000 +dm9601 +dm-bio-prison +dm-bufio +dm-cache +dm-cache-cleaner +dm-cache-mq +dm-crypt +dm-delay +dme1737 +dmfe +dm-flakey +dm-log +dm-log-userspace +dm-mirror +dm-multipath +dm-persistent-data +dm-queue-length +dm-raid +dm-raid45 +dm-region-hash +dm-round-robin +dm-service-time +dm-snapshot +dm-switch +dm-thin-pool +dm-verity +dmx3191d +dm-zero +dnet +dn_rtmsg +docg3 +docg4 +drbd +drm +drm_kms_helper +drm_usb +drxd +drxk +ds1621 +ds1682 +ds1wm +ds2482 +ds2490 +ds2760_battery +ds2780_battery +ds2781_battery +ds2782_battery +ds3000 +ds620 +dsa_core +dsbr100 +dscc4 +dss1_divert +dst +dst_ca +dstr +dt3000 +dt3155v4l +dt9812 +dummy +dummy-irq +dvb-as102 +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-af9035 +dvb-usb-anysee +dvb-usb-au6610 +dvb-usb-az6007 +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-it913x +dvb-usb-lmedm04 +dvb-usb-m920x +dvb-usb-mxl111sf +dvb-usb-nova-t-usb2 +dvb-usb-opera +dvb-usb-pctv452e +dvb-usb-rtl28xxu +dvb-usb-technisat-usb2 +dvb-usb-ttusb2 +dvb-usb-umt-010 +dvb_usb_v2 +dvb-usb-vp702x +dvb-usb-vp7045 +dwc3 +dwc3-exynos +dwc3-omap +dwc3-pci +dw_dmac +dw_dmac_core +dw_dmac_pci +dw_mmc +dw_mmc-exynos +dw_mmc-pci +dw_mmc-pltfm +dw_mmc-socfpga +dw_wdt +dyna_pci10xx +dynapro +e100 +e1000 +e1000e +e4000 +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_vlan +ec100 +echo +edac_core +edt-ft5x06 +eeprom +eeprom_93cx6 +eeprom_93xx46 +eeti_ts +efs +egalax_ts +elo +em28xx +em28xx-alsa +em28xx-dvb +em28xx-rc +emc1403 +emc2103 +emc6w201 +em_canid +em_cmp +emi26 +emi62 +emif +em_ipset +em_meta +em_nbyte +empeg +ems_pci +ems_usb +em_text +emu10k1-gp +em_u32 +enc28j60 +enclosure +encoder-tfp410 +encoder-tpd12s015 +eni +enic +epat +epia +epic100 +eql +esd_usb2 +esi-sir +esp4 +esp6 +et131x +ethoc +evbug +exofs +ext2 +extcon-adc-jack +extcon-arizona +extcon-gpio +extcon-max77693 +extcon-max8997 +extcon-palmas +exynos-rng +ezusb +f2fs +f71805f +f71882fg +f75375s +f81232 +fakelb +fan53555 +farsync +faulty +fb_ddc +fb_sys_fops +fc0011 +fc0012 +fc0013 +fc2580 +fcoe +fcrypt +fdomain +fealnx +ff-memless +firedtv +firewire-core +firewire-net +firewire-ohci +firewire-sbp2 +firewire-serial +fit2 +fit3 +flashloader +fm801-gp +fmc +fmc-chardev +fmc-fakedev +fmc-trivial +fmc-write-eeprom +fm_drv +forcedeth +fore_200e +fotg210-udc +freevxfs +friq +frpw +fsa9480 +fscache +fsl_lpuart +ft1000 +ftdi-elan +ftdi_sio +ftgmac100 +ftl +ftmac100 +fujitsu_ts +funsoft +fusb300_udc +fusbh200-hcd +g450_pll +g760a +g762 +g_acm_ms +gadgetfs +gamecon +gameport +garmin_gps +garp +g_audio +g_cdc +gcm +g_dbgp +gdmwm +generic +generic-adc-battery +generic_bl +gen_probe +g_ether +gf128mul +gf2k +g_ffs +gfs2 +ghash-generic +g_hid +gigaset +girbil-sir +gl518sm +gl520sm +gl620a +gluebi +g_mass_storage +g_midi +g_multi +g_ncm +g_nokia +go7007 +go7007-loader +go7007-usb +goku_udc +goldfish_battery +goldfishfb +gp2ap002a00f +gpio +gpio-74x164 +gpio-addr-flash +gpio-adnp +gpio-adp5520 +gpio-adp5588 +gpio-amd8111 +gpio-arizona +gpio-charger +gpio-da9052 +gpio-da9055 +gpio-fan +gpio-grgpio +gpio-ir-recv +gpio-janz-ttl +gpio_keys +gpio_keys_polled +gpio-max7300 +gpio-max7301 +gpio-max730x +gpio-max732x +gpio-mc33880 +gpio-mcp23s08 +gpio-ml-ioh +gpio_mouse +gpio-pca953x +gpio-pcf857x +gpio-rcar +gpio-rdc321x +gpio-regulator +gpio_tilt_polled +gpio-tps65912 +gpio-ts5500 +gpio-viperboard +gpio-vx855 +gpio-wm831x +gpio-wm8350 +gpio-wm8994 +g_printer +grcan +gre +grip +grip_mp +gsc_hpdi +g_serial +gspca_benq +gspca_conex +gspca_cpia1 +gspca_etoms +gspca_finepix +gspca_gl860 +gspca_jeilinj +gspca_jl2005bcd +gspca_kinect +gspca_konica +gspca_m5602 +gspca_main +gspca_mars +gspca_mr97310a +gspca_nw80x +gspca_ov519 +gspca_ov534 +gspca_ov534_9 +gspca_pac207 +gspca_pac7302 +gspca_pac7311 +gspca_se401 +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_topro +gspca_tv8532 +gspca_vc032x +gspca_vicam +gspca_xirlink_cit +gspca_zc3xx +gtco +guillemot +gunze +g_webcam +g_zero +hamachi +hampshire +hanwang +hci +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-a4tech +hid-apple +hid-appleir +hid-aureal +hid-axff +hid-belkin +hid-cherry +hid-chicony +hid-cypress +hid-dr +hid-elecom +hid-elo +hid-emsff +hid-ezkey +hid-gaff +hid-generic +hid-gyration +hid-holtekff +hid-holtek-kbd +hid-holtek-mouse +hid-huion +hid-icade +hid-kensington +hid-keytouch +hid-kye +hid-lcpower +hid-lenovo-tpkbd +hid-logitech +hid-logitech-dj +hid-magicmouse +hid-microsoft +hid-monterey +hid-multitouch +hid-ntrig +hid-ortek +hidp +hid-petalynx +hid-picolcd +hid-pl +hid-primax +hid-prodikeys +hid-roccat +hid-roccat-arvo +hid-roccat-common +hid-roccat-isku +hid-roccat-kone +hid-roccat-koneplus +hid-roccat-konepure +hid-roccat-kovaplus +hid-roccat-lua +hid-roccat-pyra +hid-roccat-savu +hid-saitek +hid-samsung +hid-sensor-accel-3d +hid-sensor-als +hid-sensor-gyro-3d +hid-sensor-hub +hid-sensor-iio-common +hid-sensor-magn-3d +hid-sensor-trigger +hid-sjoy +hid-sony +hid-speedlink +hid-steelseries +hid-sunplus +hid-thingm +hid-tivo +hid-tmff +hid-topseed +hid-twinhan +hid-uclogic +hid-wacom +hid-waltop +hid-wiimote +hid-zpff +hid-zydacron +hifn_795x +highbank_l2_edac +highbank_mc_edac +hih6130 +hisax +hisax_fcpcipnp +hisax_isac +hisax_st5481 +hmc5843 +hmc6352 +hopper +host1x +hostap +hostap_pci +hostap_plx +hp100 +hp4x +hpfs +hpilo +hpsa +hptiop +hsi +hsi_char +hso +htc-pasic3 +hwa-hc +hwa-rc +hwmon-vid +hx8357 +hysdn +i1480-dfu-usb +i1480-est +i2400m +i2400m-usb +i2c-algo-bit +i2c-algo-pca +i2c-ali1535 +i2c-ali1563 +i2c-ali15x3 +i2c-amd756 +i2c-amd8111 +i2c-arb-gpio-challenge +i2c-cbus-gpio +i2c-designware-core +i2c-designware-pci +i2c-designware-platform +i2c-dev +i2c-diolan-u2c +i2c-eg20t +i2c-gpio +i2c-hid +i2c-i801 +i2c-isch +i2c-kempld +i2c-matroxfb +i2c-mux +i2c-mux-gpio +i2c-mux-pca9541 +i2c-mux-pca954x +i2c-mux-pinctrl +i2c-nforce2 +i2c-nomadik +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-tegra +i2c-tiny-usb +i2c-versatile +i2c-via +i2c-viapro +i2c-viperboard +i2c-xiic +i2o_block +i2o_bus +i2o_core +i2o_proc +i2o_scsi +i5k_amb +i6300esb +i740fb +ib_addr +ib_cm +ib_core +ib_ipoib +ib_iser +ib_isert +ib_mad +ibmaem +ibmpex +ib_mthca +ib_sa +ib_srp +ib_srpt +ib_ucm +ib_umad +ib_uverbs +icp_multi +ics932s401 +idmouse +idt77252 +ieee802154 +ifb +iforce +igb +igbvf +iguanair +iio_dummy +iio_hwmon +iio-trig-interrupt +iio-trig-periodic-rtc +iio-trig-sysfs +ii_pci20kc +ili210x +ili922x +ili9320 +imm +imon +impa7 +ims-pcu +imx074 +ina209 +ina2xx +industrialio +industrialio-triggered-buffer +inet_diag +inexio +inftl +initio +input-polldev +int51x1 +intel_vr_nor +interact +interval_tree_test +inv-mpu6050 +ioc4 +io_edgeport +io_ti +iowarrior +ip6_gre +ip6table_filter +ip6table_mangle +ip6table_nat +ip6table_raw +ip6_tables +ip6table_security +ip6t_ah +ip6t_eui64 +ip6t_frag +ip6t_hbh +ip6t_ipv6header +ip6t_MASQUERADE +ip6t_mh +ip6t_NPT +ip6t_REJECT +ip6t_rpfilter +ip6t_rt +ip6_tunnel +ipack +ipaq +ipcomp +ipcomp6 +ipddp +ipg +ip_gre +iphase +ipheth +ipip +ipmi_devintf +ipmi_msghandler +ipmi_poweroff +ipmi_si +ipmi_watchdog +ipoctal +ipr +ips +ip_set +ip_set_bitmap_ip +ip_set_bitmap_ipmac +ip_set_bitmap_port +ip_set_hash_ip +ip_set_hash_ipport +ip_set_hash_ipportip +ip_set_hash_ipportnet +ip_set_hash_net +ip_set_hash_netiface +ip_set_hash_netport +ip_set_list_set +iptable_filter +iptable_mangle +iptable_nat +iptable_raw +ip_tables +iptable_security +ipt_ah +ipt_CLUSTERIP +ipt_ECN +ipt_MASQUERADE +ipt_REJECT +ipt_rpfilter +ipt_ULOG +ip_tunnel +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 +ip_vti +ipw +ipw2100 +ipw2200 +ipx +ircomm +ircomm-tty +irda +irda-usb +ir-jvc-decoder +ir-kbd-i2c +irlan +ir-lirc-codec +ir-mce_kbd-decoder +ir-nec-decoder +irnet +ir-rc5-decoder +ir-rc5-sz-decoder +ir-rc6-decoder +ir-sanyo-decoder +ir-sony-decoder +irtty-sir +ir-usb +iscsi_boot_sysfs +iscsi_target_mod +iscsi_tcp +isdn +isdn_bsdcomp +isdnhdlc +isicom +isight_firmware +isl29003 +isl29018 +isl29020 +isl29028 +isl6271a-regulator +isl6405 +isl6421 +isl6423 +isofs +isp116x-hcd +isp1362-hcd +isp1704_charger +isp1760 +it87 +it913x-fe +itd1000 +itg3200 +iuu_phoenix +ivtv +ivtv-alsa +ivtvfb +iw_c2 +iw_cm +iw_cxgb3 +iw_cxgb4 +iwl3945 +iwl4965 +iwldvm +iwlegacy +iwlmvm +iwlwifi +iw_nes +ix2505v +ixgb +ixgbe +janz-cmodio +janz-ican3 +jc42 +jedec_probe +jffs2 +jfs +jmb38x_ms +jme +joydev +joydump +jr3_pci +jsm +kafs +kalmia +kaweth +kbic +kbtab +kcomedilib +ke_counter +kempld-core +kempld_wdt +kernelcapi +keucr +keyspan +keyspan_pda +keyspan_remote +kfifo_buf +khazad +kingsun-sir +kl5kusb105 +kobil_sct +ks0108 +ks8842 +ks8851 +ks8851_mll +ks959-sir +ksdazzle-sir +ksz884x +ktti +kvaser_pci +kvaser_usb +kxsd9 +kxtj9 +kyrofb +l1oip +l2tp_core +l2tp_debugfs +l2tp_eth +l2tp_ip +l2tp_ip6 +l2tp_netlink +l2tp_ppp +l4f00242t03 +l64781 +lanai +lapb +lapbether +latch-addr-flash +lattice-ecp3-config +lcd +ld9040 +ldusb +lec +leds-88pm860x +leds-adp5520 +leds-atmel-pwm +leds-bd2802 +leds-blinkm +leds-da903x +leds-da9052 +leds-dac124s085 +leds-gpio +leds-lm3530 +leds-lm3533 +leds-lm355x +leds-lm3642 +leds-lp3944 +leds-lp5521 +leds-lp5523 +leds-lp5562 +leds-lp55xx-common +leds-lp8788 +leds-lt3593 +leds-max8997 +leds-mc13783 +leds-ot200 +leds-pca9532 +leds-pca955x +leds-pca9633 +leds-pwm +leds-regulator +leds-tca6507 +leds-wm831x-status +leds-wm8350 +ledtrig-backlight +ledtrig-camera +ledtrig-default-on +ledtrig-gpio +ledtrig-heartbeat +ledtrig-oneshot +ledtrig-timer +ledtrig-transient +legousbtower +lg2160 +lgdt3305 +lgdt330x +lgs8gxx +lg-vl600 +lib80211 +lib80211_crypt_ccmp +lib80211_crypt_tkip +lib80211_crypt_wep +libceph +libcomposite +libcrc32c +libcxgbi +libertas +libertas_sdio +libertas_spi +libertas_tf +libertas_tf_usb +libfc +libfcoe +libipw +libiscsi +libiscsi_tcp +libore +libosd +libsas +libsrp +lightning +line6usb +lineage-pem +linear +lirc_bt829 +lirc_dev +lirc_igorplugusb +lirc_imon +lirc_parallel +lirc_sasem +lirc_serial +lirc_sir +lirc_zilog +lis3lv02d +lis3lv02d_i2c +lis3lv02d_spi +litelink-sir +lkkbd +llc +llc2 +lm25066 +lm3533-als +lm3533_bl +lm3533-core +lm3533-ctrlbank +lm3630_bl +lm3639_bl +lm63 +lm70 +lm73 +lm75 +lm77 +lm78 +lm80 +lm83 +lm8323 +lm8333 +lm85 +lm87 +lm90 +lm92 +lm93 +lm95234 +lm95241 +lm95245 +lms283gf05 +lms501kf03 +lnbp21 +lnbp22 +lockd +lp +lp3971 +lp3972 +lp855x_bl +lp8727_charger +lp8755 +lp8788_bl +lp8788-charger +lpc_ich +lpc_sch +lpddr_cmds +lpfc +lru_cache +lrw +ltc2978 +ltc4151 +ltc4215 +ltc4245 +ltc4261 +lttng-kprobes +lttng-kretprobes +lttng-lib-ring-buffer +lttng-probe-asoc +lttng-probe-block +lttng-probe-btrfs +lttng-probe-compaction +lttng-probe-ext3 +lttng-probe-ext4 +lttng-probe-gpio +lttng-probe-irq +lttng-probe-jbd +lttng-probe-jbd2 +lttng-probe-kmem +lttng-probe-module +lttng-probe-napi +lttng-probe-net +lttng-probe-power +lttng-probe-printk +lttng-probe-random +lttng-probe-rcu +lttng-probe-regmap +lttng-probe-regulator +lttng-probe-rpm +lttng-probe-sched +lttng-probe-scsi +lttng-probe-signal +lttng-probe-skb +lttng-probe-sock +lttng-probe-statedump +lttng-probe-sunrpc +lttng-probe-timer +lttng-probe-udp +lttng-probe-vmscan +lttng-probe-workqueue +lttng-probe-writeback +lttng-ring-buffer-client-discard +lttng-ring-buffer-client-mmap-discard +lttng-ring-buffer-client-mmap-overwrite +lttng-ring-buffer-client-overwrite +lttng-ring-buffer-metadata-client +lttng-ring-buffer-metadata-mmap-client +lttng-statedump +lttng-tracer +lttng-types +ltv350qv +lz4 +lz4_compress +lz4hc +lz4hc_compress +m25p80 +m2m-deinterlace +m52790 +m88rs2000 +ma600-sir +mac80211 +mac80211_hwsim +mac802154 +macb +mac-celtic +mac-centeuro +mac-croatian +mac-cyrillic +mac-gaelic +mac-greek +mac-iceland +mac-inuit +macmodes +mac-roman +mac-romanian +mac-turkish +macvlan +macvtap +magellan +mailbox_omap2 +mantis +mantis_core +map_absent +map_ram +map_rom +matrix-keymap +matrix_keypad +matroxfb_accel +matroxfb_base +matroxfb_crtc2 +matroxfb_DAC1064 +matroxfb_g450 +matroxfb_maven +matroxfb_misc +matroxfb_Ti3026 +matrox_w1 +max1111 +max11801_ts +max1363 +max1586 +max16064 +max16065 +max1619 +max1668 +max17040_battery +max17042_battery +max197 +max2165 +max3100 +max34440 +max517 +max63xx_wdt +max6639 +max6642 +max6650 +max6697 +max6875 +max7359_keypad +max77686 +max77693 +max8649 +max8660 +max8688 +max8903_charger +max8907 +max8907-regulator +max8925_bl +max8925_onkey +max8925_power +max8925-regulator +max8952 +max8973-regulator +max8997 +max8997_charger +max8998 +max8998_charger +mb862xxfb +mb86a16 +mb86a20s +mc13783-adc +mc13783-pwrbutton +mc13783-regulator +mc13783_ts +mc13892-regulator +mc13xxx-core +mc13xxx-i2c +mc13xxx-regulator-core +mc13xxx-spi +mc44s803 +mceusb +mcp2120-sir +mcp251x +mcp3021 +mcp320x +mcp4725 +mcs5000_ts +mcs7780 +mcs7830 +mcs_touchkey +mct_u232 +md4 +mdc800 +mdio +me4000 +me_daq +megaraid +megaraid_mbox +megaraid_mm +megaraid_sas +mem2mem_testdev +memstick +mena21_wdt +metronomefb +metro-usb +mfd +mga +mg_disk +michael_mic +microread +microread_i2c +microtek +mii +minix +mip6 +mISDN_core +mISDN_dsp +mISDNinfineon +mISDNipac +mISDNisar +mite +mk712 +mkiss +mlx4_core +mlx4_en +mlx4_ib +mma8450 +mms114 +mos7720 +mos7840 +moto_modem +moxa +mpoa +mpr121_touchkey +mpt2sas +mpt3sas +mptbase +mptctl +mptfc +mptlan +mptsas +mptscsih +mptspi +mpu3050 +mrf24j40 +mrp +mrst_max3110 +msdos +msp3400 +mspro_block +mt2060 +mt2063 +mt20xx +mt2131 +mt2266 +mt312 +mt352 +mt9m001 +mt9m111 +mt9t031 +mt9t112 +mt9v011 +mt9v022 +mtd_dataflash +mtdoops +mtdram +mtdswap +mtip32xx +mtouch +multipath +mv88e6060 +mv88e6xxx_drv +mvmdio +mvsas +mv_u3d_core +mv_udc +mvumi +mwifiex +mwifiex_pcie +mwifiex_sdio +mwifiex_usb +mwl8k +mxb +mxl111sf-demod +mxl111sf-tuner +mxl5005s +mxl5007t +mxser +myri10ge +nandsim +natsemi +navman +nbd +nci +ncpfs +nct6775 +ne2k-pci +neofb +net1080 +net2272 +net2280 +netconsole +netjet +netlink_diag +netprio_cgroup +netrom +netxen_nic +newtonkbd +nfc +nf_conntrack +nf_conntrack_amanda +nf_conntrack_broadcast +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_snmp +nf_conntrack_tftp +nfcsim +nfcwilink +nf_defrag_ipv4 +nf_defrag_ipv6 +nf_nat +nf_nat_amanda +nf_nat_ftp +nf_nat_h323 +nf_nat_ipv4 +nf_nat_ipv6 +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_acct +nfnetlink_cthelper +nfnetlink_cttimeout +nfnetlink_log +nfnetlink_queue +nfs +nfs_acl +nfsd +nfs_layout_nfsv41_files +nfsv2 +nfsv3 +nfsv4 +nftl +nf_tproxy_core +ngene +n_hdlc +ni_6527 +ni_65xx +ni_660x +ni_670x +nicstar +ni_labpc +ni_labpc_pci +nilfs2 +ni_pcidio +ni_pcimio +ni_tio +ni_tiocmd +niu +nlmon +nls_ascii +nls_cp1250 +nls_cp1251 +nls_cp1255 +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 +nosy +notifier-error-inject +nouveau +nozomi +n_r3964 +ns558 +ns83820 +nsp32 +ntc_thermistor +ntfs +n_tracerouter +n_tracesink +nvec +nvec_kbd +nvec_paz00 +nvec_power +nvec_ps2 +nvidiafb +nvme +nvram +nxt200x +nxt6000 +objlayoutdriver +ocfs2 +ocfs2_dlm +ocfs2_dlmfs +ocfs2_nodemanager +ocfs2_stackglue +ocfs2_stack_o2cb +ocfs2_stack_user +ocrdma +old_belkin-sir +olpc_apsp +omap +omap2 +omap2430 +omap4-keypad +omap-aes +omap_hdq +omap-mailbox +omap-ocp2scp +omap_remoteproc +omap-sham +omap-vout +omap_wdt +omfs +omninet +on20 +on26 +onenand +opencores-kbd +openvswitch +oprofile +opticon +option +or51132 +or51211 +orinoco +orinoco_nortel +orinoco_plx +orinoco_tmd +orinoco_usb +osd +osdblk +osst +oti6858 +output +ov2640 +ov5642 +ov6650 +ov7640 +ov7670 +ov772x +ov9640 +ov9740 +overlayfs +oxu210hp-hcd +ozwpan +p54common +p54pci +p54spi +p54usb +p8022 +p8023 +palmas-regulator +pandora_bl +panel +panel-acx565akm +panel-dpi +panel-dsi-cm +panel-lgphilips-lb035q02 +panel-nec-nl8048hl11 +panel-nec-nl8048hl11-01b +panel-picodlp +panel-sharp-ls037v7dw01 +panel-sony-acx565akm +panel-tpo-td043mtea1 +paride +parkbd +parport +parport_ax88796 +parport_pc +parport_serial +pata_ali +pata_amd +pata_arasan_cf +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_of_platform +pata_oldpiix +pata_opti +pata_optidma +pata_pdc2027x +pata_pdc202xx_old +pata_piccolo +pata_platform +pata_radisys +pata_rdc +pata_rz1000 +pata_sc1200 +pata_sch +pata_serverworks +pata_sil680 +pata_sl82c105 +pata_triflex +pata_via +pc300too +pc87360 +pc87427 +pcbc +pcd +pcf50633 +pcf50633-adc +pcf50633-backlight +pcf50633-charger +pcf50633-gpio +pcf50633-input +pcf50633-regulator +pcf8574_keypad +pcf8591 +pch_can +pch_phub +pch_uart +pch_udc +pci +pci200syn +pcips2 +pci-stub +pcnet32 +pcrypt +pcwd_pci +pcwd_usb +pd +pda_power +pdc_adma +peak_pci +peak_usb +pegasus +penmount +pf +pg +phantom +phison +phonet +phram +phy-gpio-vbus-usb +phy-isp1301 +phy-omap-usb3 +phy-rcar-usb +phy-samsung-usb +phy-samsung-usb2 +phy-samsung-usb3 +physmap +physmap_of +phy-twl4030-usb +phy-twl6030-usb +pixcir_i2c_ts +pktcdvd +pktgen +pl2303 +pl330 +platform_lcd +plat_nand +plat-ram +plip +plusb +pluto2 +plx_pci +pm2fb +pm3fb +pm80xx +pmbus +pmbus_core +pmc551 +pmcraid +pm-notifier-error-inject +pn533 +pn544 +pn544_i2c +pn_pep +poseidon +powermate +ppa +ppdev +ppp_async +ppp_deflate +ppp_mppe +pppoatm +pppoe +pppox +ppp_synctty +pps-gpio +pps-ldisc +pps_parport +pptp +prism2_usb +ps2mult +psmouse +psnap +pt +pvrusb2 +pwc +pwm-beeper +pwm_bl +pwm-pca9685 +pwm-tegra +pwm-twl +pwm-twl-led +pxa27x_udc +qcaux +qcserial +qinfo_probe +qla1280 +qla2xxx +qla3xxx +qla4xxx +qlcnic +qlge +qmi_wwan +qnx4 +qnx6 +qt1010 +qt1070 +qt2160 +quatech2 +quota_tree +quota_v1 +quota_v2 +qxl +r128 +r592 +r6040 +r8152 +r815x +r8169 +r8187se +r8192e_pci +r8192u_usb +r820t +r852 +r8712u +r8a66597-hcd +r8a66597-udc +radeon +radeonfb +radio-i2c-si470x +radio-keene +radio-ma901 +radio-maxiradio +radio-mr800 +radio-shark +radio-si4713 +radio-si476x +radio-tea5764 +radio-timb +radio-usb-si470x +radio-wl1273 +raid0 +raid1 +raid10 +raid456 +raid6_pq +raid6test +raid_class +raw +rbd +rbtree_test +rc5t583-regulator +rc-adstech-dvb-t-pci +rc-alink-dtu-m +rc-anysee +rc-apac-viewcomp +rcar-du-drm +rc-asus-pc39 +rc-asus-ps3-100 +rc-ati-tv-wonder-hd-600 +rc-ati-x10 +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-delock-61959 +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 +rc-imon-mce +rc-imon-pad +rc-iodata-bctv7e +rc-it913x-v1 +rc-it913x-v2 +rc-kaiomy +rc-kworld-315u +rc-kworld-pc150u +rc-kworld-plus-tv-analog +rc-leadtek-y04g0051 +rc-lirc +rc-lme2510 +rc-loopback +rc-manli +rc-medion-x10 +rc-medion-x10-digitainer +rc-medion-x10-or2x +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-rc6-mce +rc-real-audio-220-32-keys +rc-reddo +rc-snapstream-firefly +rc-streamzap +rc-tbs-nec +rc-technisat-usb2 +rc-terratec-cinergy-xs +rc-terratec-slim +rc-terratec-slim-2 +rc-tevii-nec +rc-tivo +rc-total-media-in-hand +rc-total-media-in-hand-02 +rc-trekstor +rc-tt-1500 +rc-twinhan1027 +rc-videomate-m1f +rc-videomate-s350 +rc-videomate-tv-pvr +rc-winfast +rc-winfast-usbii-deluxe +rdc321x-southbridge +rdma_cm +rdma_ucm +rds +rds_rdma +rds_tcp +redboot +redrat3 +reiserfs +remoteproc +renesas_usbhs +retu-mfd +retu-pwrbutton +retu_wdt +rfc1051 +rfc1201 +rfcomm +rfd_ftl +rfkill-gpio +rfkill-regulator +rio500 +rivafb +rj54n1cb0c +rmd128 +rmd160 +rmd256 +rmd320 +rndis_host +rndis_wlan +rocket +romfs +rose +rotary_encoder +rp2 +rpcsec_gss_krb5 +rsxx +rt2400pci +rt2500pci +rt2500usb +rt2800lib +rt2800pci +rt2800usb +rt2x00lib +rt2x00mmio +rt2x00pci +rt2x00usb +rt61pci +rt73usb +rtc-88pm80x +rtc-88pm860x +rtc-ab3100 +rtc-bq32k +rtc-bq4802 +rtc-cmos +rtc-da9052 +rtc-da9055 +rtc-ds1286 +rtc-ds1305 +rtc-ds1307 +rtc-ds1374 +rtc-ds1390 +rtc-ds1511 +rtc-ds1553 +rtc-ds1672 +rtc-ds1742 +rtc-ds2404 +rtc-ds3232 +rtc-ds3234 +rtc-em3027 +rtc-fm3130 +rtc-hid-sensor-time +rtc-isl12022 +rtc-isl1208 +rtc-lp8788 +rtc-m41t80 +rtc-m41t93 +rtc-m41t94 +rtc-m48t35 +rtc-m48t59 +rtc-m48t86 +rtc-max6900 +rtc-max6902 +rtc-max77686 +rtc-max8907 +rtc-max8925 +rtc-max8997 +rtc-max8998 +rtc-mc13xxx +rtc-msm6242 +rtc-palmas +rtc-pcf2123 +rtc-pcf2127 +rtc-pcf50633 +rtc-pcf8523 +rtc-pcf8563 +rtc-pcf8583 +rtc-pl030 +rtc-r9701 +rtc-rc5t583 +rtc-rp5c01 +rtc-rs5c348 +rtc-rs5c372 +rtc-rv3029c2 +rtc-rx4581 +rtc-rx8025 +rtc-rx8581 +rtc-s35390a +rtc-snvs +rtc-stk17ta8 +rtc-tegra +rtc-tps6586x +rtc-tps65910 +rtc-tps80031 +rtc-v3020 +rtc-wm831x +rtc-wm8350 +rtc-x1205 +rtd520 +rtl2830 +rtl2832 +rtl8150 +rtl8180 +rtl8187 +rtl8188ee +rtl8192c-common +rtl8192ce +rtl8192cu +rtl8192de +rtl8192se +rtl8723ae +rtllib +rtllib_crypt_ccmp +rtllib_crypt_tkip +rtllib_crypt_wep +rtl_pci +rtl_usb +rtlwifi +rts5139 +rtsx_pci +rtsx_pci_ms +rtsx_pci_sdmmc +rx51_battery +rxkad +s1d13xxxfb +s2250 +s2255drv +s2io +s2mps11 +s3fb +s5h1409 +s5h1411 +s5h1420 +s5m8767 +s626 +s6e63m0 +s921 +saa6588 +saa6752hs +saa7115 +saa7127 +saa7134 +saa7134-alsa +saa7134-dvb +saa7134-empress +saa7146 +saa7146_vv +saa7164 +saa717x +saa7706h +safe_serial +sahara +salsa20_generic +samsung-keypad +sata_inic162x +sata_mv +sata_nv +sata_promise +sata_qstor +sata_rcar +sata_sil +sata_sil24 +sata_sis +sata_svw +sata_sx4 +sata_uli +sata_via +sata_vsc +savage +savagefb +sbe-2t3e3 +sbp_target +sbs-battery +sc92031 +sca3000 +sch5627 +sch5636 +sch56xx-common +sch_atm +sch_cbq +sch_choke +sch_codel +sch_drr +sch_dsmark +sch_fq_codel +sch_gred +sch_hfsc +sch_htb +sch_ingress +sch_mqprio +sch_multiq +sch_netem +sch_plug +sch_prio +sch_qfq +sch_red +sch_sfb +sch_sfq +sch_tbf +sch_teql +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 +sctp +sctp_probe +sdhci-pci +sdhci-pxav2 +sdhci-pxav3 +sdhci-tegra +sdio_uart +seed +sep_driver +seqiv +ser_gigaset +serial2002 +serial-tegra +serio_raw +sermouse +serpent_generic +serport +serqt_usb2 +ses +sfc +sha1-arm +shark2 +sh_eth +shmob-drm +sh_mobile_ceu_camera +sh_mobile_csi2 +sht15 +sht21 +sh_veu +si21xx +si4713-i2c +si476x-core +sidewinder +siemens_mpi +sierra +sierra_net +sil164 +sir-dev +sis190 +sis5595 +sis900 +sisfb +sisusbvga +sit +sja1000 +sja1000_isa +sja1000_of_platform +sja1000_platform +skel +skfp +skge +sky2 +sl811-hcd +slcan +slip +slram +sm501 +sm501fb +sm7xxfb +smb347-charger +smc911x +smc91x +sm_common +sm_ftl +smm665 +smsc47b397 +smsc47m1 +smsc47m192 +smsc75xx +smsc911x +smsc9420 +smsc95xx +smscufx +smsdvb +smsmdtv +smssdio +smsusb +snd-aaci +snd-ac97-codec +snd-ad1889 +snd-ak4113 +snd-ak4114 +snd-ak4xxx-adda +snd-ali5451 +snd-aloop +snd-als300 +snd-at73c213 +snd-atiixp +snd-atiixp-modem +snd-au8810 +snd-au8820 +snd-au8830 +snd-aw2 +snd-azt3328 +snd-bt87x +snd-ca0106 +snd-cmipci +snd-cs4281 +snd-cs46xx +snd-cs5535audio +snd-cs8427 +snd-ctxfi +snd-darla20 +snd-darla24 +snd-dummy +snd-echo3g +snd-emu10k1 +snd-emu10k1-synth +snd-emu10k1x +snd-emux-synth +snd-ens1370 +snd-ens1371 +snd-es1938 +snd-es1968 +snd-firewire-lib +snd-firewire-speakers +snd-fm801 +snd-gina20 +snd-gina24 +snd-hda-codec +snd-hda-codec-analog +snd-hda-codec-ca0110 +snd-hda-codec-ca0132 +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-isight +snd-korg1212 +snd-layla20 +snd-layla24 +snd-lola +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-pcxhr +snd-portman2x4 +snd-pt2258 +snd-rawmidi +snd-riptide +snd-rme32 +snd-rme96 +snd-rme9652 +snd-scs1x +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-ab8500-codec +snd-soc-ac97 +snd-soc-ad1836 +snd-soc-ad193x +snd-soc-ad1980 +snd-soc-ad73311 +snd-soc-adau1373 +snd-soc-adav80x +snd-soc-ads117x +snd-soc-ak4104 +snd-soc-ak4535 +snd-soc-ak4641 +snd-soc-ak4642 +snd-soc-ak4671 +snd-soc-ak5386 +snd-soc-alc5623 +snd-soc-alc5632 +snd-soc-arizona +snd-soc-atmel-pcm +snd-soc-bt-sco +snd-soc-cs4270 +snd-soc-cs4271 +snd-soc-cs42l51 +snd-soc-cs42l52 +snd-soc-cs42l73 +snd-soc-cx20442 +snd-soc-da7210 +snd-soc-da7213 +snd-soc-da732x +snd-soc-da9055 +snd-soc-imx-mc13783 +snd-soc-imx-ssi +snd-soc-imx-wm8962 +snd-soc-isabelle +snd-soc-jz4740-codec +snd-soc-l3 +snd-soc-lm4857 +snd-soc-lm49453 +snd-soc-max9768 +snd-soc-max98088 +snd-soc-max98090 +snd-soc-max98095 +snd-soc-max9850 +snd-soc-max9877 +snd-soc-mc13783 +snd-soc-ml26124 +snd-soc-omap3pandora +snd-soc-pcm3008 +snd-soc-rt5631 +snd-soc-rt5640 +snd-soc-si476x +snd-soc-simple-card +snd-soc-spdif-rx +snd-soc-spdif-tx +snd-soc-ssm2518 +snd-soc-ssm2602 +snd-soc-sta32x +snd-soc-sta529 +snd-soc-stac9766 +snd-soc-tas5086 +snd-soc-tegra20-ac97 +snd-soc-tegra20-das +snd-soc-tegra20-i2s +snd-soc-tegra20-spdif +snd-soc-tegra30-ahub +snd-soc-tegra30-i2s +snd-soc-tegra-alc5632 +snd-soc-tegra-pcm +snd-soc-tegra-rt5640 +snd-soc-tegra-trimslice +snd-soc-tegra-utils +snd-soc-tegra-wm8753 +snd-soc-tegra-wm8903 +snd-soc-tegra-wm9712 +snd-soc-tlv320aic23 +snd-soc-tlv320aic26 +snd-soc-tlv320aic32x4 +snd-soc-tlv320aic3x +snd-soc-tlv320dac33 +snd-soc-tpa6130a2 +snd-soc-uda134x +snd-soc-uda1380 +snd-soc-wl1273 +snd-soc-wm0010 +snd-soc-wm1250-ev1 +snd-soc-wm2000 +snd-soc-wm2200 +snd-soc-wm5100 +snd-soc-wm5102 +snd-soc-wm5110 +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-wm8782 +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-wm8983 +snd-soc-wm8985 +snd-soc-wm8988 +snd-soc-wm8990 +snd-soc-wm8991 +snd-soc-wm8993 +snd-soc-wm8994 +snd-soc-wm8995 +snd-soc-wm8996 +snd-soc-wm9081 +snd-soc-wm9090 +snd-soc-wm9705 +snd-soc-wm9712 +snd-soc-wm9713 +snd-soc-wm-adsp +snd-soc-wm-hubs +snd-sonicvibes +snd-tea575x-tuner +snd-trident +snd-ua101 +snd-usb-6fire +snd-usb-audio +snd-usb-caiaq +snd-usb-hiface +snd-usbmidi-lib +snd-util-mem +snd-via82xx +snd-via82xx-modem +snd-virmidi +snd-virtuoso +snd-vx222 +snd-vx-lib +snd-ymfpci +soc_camera +soc_camera_platform +soc_mediabus +soc_scale_crop +softdog +softing +solo6x10 +solos-pci +sony-btf-mpx +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 +speedfax +speedtch +spi-altera +spi-bitbang +spi-butterfly +spidev +spi-dw +spi-dw-midpci +spi-dw-mmio +spi-gpio +spi-imx +spi_ks8995 +spi-lm70llp +spi-oc-tiny +spi-pl022 +spi-pxa2xx-pci +spi-pxa2xx-platform +spi-sc18is602 +spi-tegra114 +spi-tegra20-sflash +spi-tegra20-slink +spi-tle62x0 +spi-topcliff-pch +spi-xcomm +squashfs +ssb +ssd1307fb +ssfdc +sst25l +sstfb +ssu100 +ssv_dnp +st +st1232 +st_accel +st_accel_i2c +st_accel_spi +starfire +stb0899 +stb6000 +stb6100 +st_drv +ste_modem_rproc +stex +st_gyro +st_gyro_i2c +st_gyro_spi +stinger +stir4200 +stk1160 +stkwebcam +st_magn +st_magn_i2c +st_magn_spi +stmmac +stmpe-keypad +stmpe-ts +stowaway +stp +st_pressure +st_pressure_i2c +st_pressure_spi +streamzap +st_sensors +st_sensors_i2c +st_sensors_spi +stv0288 +stv0297 +stv0299 +stv0367 +stv0900 +stv090x +stv6110 +stv6110x +sundance +sungem +sungem_phy +sunhme +suni +sunkbd +sunrpc +suunto +svcrdma +svgalib +sx8 +sym53c8xx +symbolserial +synaptics_i2c +synaptics_i2c_rmi4 +synaptics_usb +synclink_gt +synclinkmp +sysv +t1pci +target_core_file +target_core_iblock +target_core_mod +target_core_pscsi +tc3589x-keypad +tca6416-keypad +tca8418_keypad +tcm_fc +tcm_loop +tcm_qla2xxx +tcm_usb_gadget +tcp_bic +tcp_diag +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 +tda10071 +tda10086 +tda18212 +tda18218 +tda18271 +tda18271c2dd +tda665x +tda7432 +tda8083 +tda8261 +tda826x +tda827x +tda8290 +tda9840 +tda9887 +tda998x +tdfx +tdfxfb +tdo24m +tea +tea5761 +tea5767 +tea6415c +tea6420 +tef6862 +tegra-aes +tegra-kbc +tehuti +tekram-sir +test-kprobes +test-kstrtox +test_power +test-string_helpers +tg3 +tgr192 +thmc50 +ti-adc081c +ti_am335x_adc +ti_am335x_tsc +ti_am335x_tscadc +ti_dac7512 +tifm_7xx1 +tifm_core +tifm_ms +tifm_sd +ti_hecc +timb_dma +timberdale +timblogiw +timbuart +timeriomem-rng +tipc +ti-soc-thermal +ti_usb_3410_5052 +tlan +tm6000 +tm6000-alsa +tm6000-dvb +tmdc +tmiofb +tmio_mmc +tmio_mmc_core +tmio_nand +tmp102 +tmp401 +tmp421 +tmscsim +toim3232-sir +touchit213 +touchright +touchwin +tpci200 +tpm_i2c_infineon +tpm_i2c_stm_st33 +tpm-rng +tps51632-regulator +tps6105x +tps6105x-regulator +tps62360-regulator +tps65010 +tps65023-regulator +tps6507x +tps6507x-regulator +tps6507x-ts +tps65090-charger +tps65090-regulator +tps65217 +tps65217_bl +tps65217-regulator +tps6524x-regulator +tps6586x-regulator +tps65910-regulator +tps65912-regulator +tps80031-regulator +trancevibrator +tranzport +tridentfb +ts2020 +ts_bm +tsc2005 +tsc2007 +tsc40 +ts_fsm +ts_kmp +tsl2550 +tsl2563 +tsl2583 +tsl2x7x_core +ttm +ttpci-eeprom +ttusb_dec +ttusbdecfe +ttusbir +tua6100 +tua9001 +tulip +tuner +tuner_it913x +tuner-simple +tuner-types +tuner-xc2028 +tunnel4 +tunnel6 +turbografx +tvaudio +tveeprom +tvp5150 +tw2804 +tw9903 +tw9906 +tw9910 +twidjoy +twl4030_charger +twl4030_keypad +twl4030-madc +twl4030-madc-hwmon +twl4030-pwrbutton +twl4030-vibra +twl4030_wdt +twl6040-vibra +twofish_common +twofish_generic +typhoon +u132-hcd +uartlite +ubi +ubifs +ucb1400_core +ucb1400_ts +ucd9000 +ucd9200 +uda1342 +udf +udl +udlfb +udp_diag +ueagle-atm +u_ether +ufs +ufshcd +ufshcd-pci +ufshcd-pltfrm +uhid +uio +uio_aec +uio_cif +uio_dmem_genirq +uio_netx +uio_pci_generic +uio_pdrv +uio_pdrv_genirq +uio_sercos3 +uli526x +umc +umem +ums-alauda +ums-cypress +ums-datafab +ums-eneub6250 +ums-freecom +ums-isd200 +ums-jumpshot +ums-karma +ums-onetouch +ums-realtek +ums-sddr09 +ums-sddr55 +ums-usbat +unioxx5 +unix_diag +upd64031a +upd64083 +u_rndis +usb3503 +usb_8dev +usb8xxx +usbatm +usb_debug +usbdux +usbduxfast +usbduxsigma +usb_f_acm +usb_f_ecm +usb_f_ecm_subset +usb_f_eem +usb_f_ncm +usb_f_obex +usb_f_phonet +usb_f_rndis +usb_f_serial +usb_f_ss_lb +usb_gigaset +usbhid +usbip-core +usbip-host +usbkbd +usblcd +usbled +usblp +usbmon +usbmouse +usbnet +usbserial +usbsevseg +usb-storage +usbtest +usbtmc +usbtouchscreen +usbtv +usbvision +usb_wwan +u_serial +userspace-consumer +ushc +uss720 +uvcvideo +uvesafb +uwb +ux500 +v4l2-common +v4l2-int-device +v4l2-mem2mem +vcan +vcnl4000 +ves1820 +ves1x93 +veth +vexpress +vfio +vfio-pci +vgastate +vgg2432a4 +vhci-hcd +vhost +vhost_net +vhost_scsi +via +via686a +via-rhine +via-sdmmc +via-velocity +videobuf2-core +videobuf2-dma-contig +videobuf2-dma-sg +videobuf2-memops +videobuf2-vmalloc +videobuf-core +videobuf-dma-contig +videobuf-dma-sg +videobuf-dvb +videobuf-vmalloc +videodev +viperboard +viperboard_adc +virtio_balloon +virtio-rng +virtio_rpmsg_bus +virtio_scsi +virtual +visor +vivi +vivopay-serial +vlsi_ir +vmac +vme +vme_pio2 +vme_user +vme_vmivme7805 +vmk80xx +vmwgfx +vmxnet3 +vp27smpx +vpfe_capture +vpss +vringh +vsock +vsxxxaa +vt1211 +vt6655_stage +vt6656_stage +vt8231 +vt8623fb +vub300 +vx855 +vxge +vxlan +w1_bq27000 +w1_ds2408 +w1_ds2413 +w1_ds2423 +w1_ds2431 +w1_ds2433 +w1_ds2760 +w1_ds2780 +w1_ds2781 +w1_ds28e04 +w1-gpio +w1_smem +w1_therm +w35und +w5100 +w5300 +w6692 +w83627ehf +w83627hf +w83781d +w83791d +w83792d +w83793 +w83795 +w83l785ts +w83l786ng +w90p910_ts +w9966 +wacom +wacom_i2c +wacom_w8001 +walkera0701 +wanxl +warrior +wdt_pci +whci +whci-hcd +whc-rc +whiteheat +wimax +winbond-840 +wire +wishbone-serial +wl1251 +wl1251_sdio +wl1251_spi +wl1273-core +wl12xx +wl18xx +wlcore +wlcore_sdio +wlcore_spi +wm831x_backup +wm831x_bl +wm831x-dcdc +wm831x-hwmon +wm831x-isink +wm831x-ldo +wm831x-on +wm831x_power +wm831x-ts +wm831x_wdt +wm8350-hwmon +wm8350_power +wm8350-regulator +wm8350_wdt +wm8400-regulator +wm8739 +wm8775 +wm8994-regulator +wm97xx-ts +wp512 +wusb-cbaf +wusbcore +wusb-wa +x25 +x25_asy +xc4000 +xc5000 +xcbc +xen-blkback +xen-evtchn +xen-fbfront +xenfs +xen-gntalloc +xen-gntdev +xen-kbdfront +xen-netback +xen-privcmd +xen_wdt +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_algo +xfrm_ipcomp +xfrm_user +xfs +xgifb +xgmac +xilinx_uartps +xor +xpad +xprtrdma +xsens_mt +x_tables +xt_addrtype +xt_AUDIT +xt_bpf +xt_CHECKSUM +xt_CLASSIFY +xt_cluster +xt_comment +xt_connbytes +xt_connlabel +xt_connlimit +xt_connmark +xt_CONNSECMARK +xt_conntrack +xt_cpu +xt_CT +xt_dccp +xt_devgroup +xt_dscp +xt_DSCP +xt_ecn +xt_esp +xt_hashlimit +xt_helper +xt_hl +xt_HL +xt_HMARK +xt_IDLETIMER +xt_iprange +xt_ipvs +xtkbd +xt_LED +xt_length +xt_limit +xt_LOG +xt_mac +xt_mark +xt_multiport +xt_nat +xt_NETMAP +xt_nfacct +xt_NFLOG +xt_NFQUEUE +xt_osf +xt_owner +xt_physdev +xt_pkttype +xt_policy +xt_quota +xt_rateest +xt_RATEEST +xt_realm +xt_recent +xt_REDIRECT +xts +xt_sctp +xt_SECMARK +xt_set +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 +xz_dec_test +yam +yealink +yellowfin +yurex +zaurus +zd1201 +zd1211rw +zhenhua +zio +zl10036 +zl10039 +zl10353 +zl6100 +zlib +zlib_deflate +zr364xx +zram +zte_ev --- linux-3.11.0.orig/debian.master/abi/3.11.0-15.23/armhf/generic-lpae +++ linux-3.11.0/debian.master/abi/3.11.0-15.23/armhf/generic-lpae @@ -0,0 +1,12283 @@ +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/bcma/bcma 0x2963d897 bcma_core_dma_translation +EXPORT_SYMBOL drivers/block/drbd/drbd 0x127a5901 drbd_set_st_err_str +EXPORT_SYMBOL drivers/block/drbd/drbd 0x35131b36 drbd_role_str +EXPORT_SYMBOL drivers/block/drbd/drbd 0x7730f22d drbd_conn_str +EXPORT_SYMBOL drivers/block/drbd/drbd 0xaf27bebf drbd_disk_str +EXPORT_SYMBOL drivers/block/paride/paride 0x0585df36 pi_connect +EXPORT_SYMBOL drivers/block/paride/paride 0x347b8599 pi_do_claimed +EXPORT_SYMBOL drivers/block/paride/paride 0x47341b1c paride_unregister +EXPORT_SYMBOL drivers/block/paride/paride 0x6cb7ca40 pi_read_regr +EXPORT_SYMBOL drivers/block/paride/paride 0x744d8eea pi_schedule_claimed +EXPORT_SYMBOL drivers/block/paride/paride 0x97700950 pi_disconnect +EXPORT_SYMBOL drivers/block/paride/paride 0xb547e123 paride_register +EXPORT_SYMBOL drivers/block/paride/paride 0xc7f2bf51 pi_write_block +EXPORT_SYMBOL drivers/block/paride/paride 0xdb0b521c pi_init +EXPORT_SYMBOL drivers/block/paride/paride 0xe30532a4 pi_read_block +EXPORT_SYMBOL drivers/block/paride/paride 0xf6de3e08 pi_release +EXPORT_SYMBOL drivers/block/paride/paride 0xf94f69de pi_write_regr +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x1348760d ipmi_request_settime +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x16dcec76 ipmi_set_my_address +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x1a10c898 ipmi_set_maintenance_mode +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x1aba5db8 ipmi_unregister_smi +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x40f2b10c ipmi_alloc_smi_msg +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x423b776a ipmi_create_user +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x4c971bec ipmi_smi_msg_received +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x524f6f51 ipmi_get_my_address +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x542c42bb ipmi_smi_watcher_register +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x5e80f37c ipmi_unregister_for_cmd +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x5fcdcc05 ipmi_get_my_LUN +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x67cb9784 ipmi_poll_interface +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x78fd36e7 ipmi_request_supply_msgs +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x804f922a ipmi_addr_length +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x8c8ee770 ipmi_destroy_user +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x9640f589 ipmi_get_smi_info +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x96cbcc81 ipmi_get_version +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xa28a2ace ipmi_set_gets_events +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xa2a98b91 ipmi_get_maintenance_mode +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xbb6ba7e7 ipmi_register_smi +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xc9c88e03 ipmi_smi_add_proc_entry +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xe0fa83f2 ipmi_register_for_cmd +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xe4f4665b ipmi_validate_addr +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xe6ab72a6 ipmi_set_my_LUN +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xf095c612 ipmi_smi_watcher_unregister +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xf2576cb9 ipmi_smi_watchdog_pretimeout +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xfcb77cfd ipmi_free_recv_msg +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/dma/dw/dw_dmac_core 0x6a0dd1a8 dw_dma_cyclic_start +EXPORT_SYMBOL drivers/dma/dw/dw_dmac_core 0x8e9b5d45 dw_dma_cyclic_prep +EXPORT_SYMBOL drivers/dma/dw/dw_dmac_core 0xc25cd21f dw_dma_cyclic_free +EXPORT_SYMBOL drivers/dma/dw/dw_dmac_core 0xf901aa13 dw_dma_get_src_addr +EXPORT_SYMBOL drivers/dma/dw/dw_dmac_core 0xf93673ee dw_dma_cyclic_stop +EXPORT_SYMBOL drivers/dma/dw/dw_dmac_core 0xfca40200 dw_dma_get_dst_addr +EXPORT_SYMBOL drivers/dma/pl330 0x1ed97210 pl330_filter +EXPORT_SYMBOL drivers/edac/edac_core 0x719cf682 edac_mc_find +EXPORT_SYMBOL drivers/fmc/fmc 0x103cc7e6 fmc_device_unregister_n +EXPORT_SYMBOL drivers/fmc/fmc 0x2119d36a fmc_device_register +EXPORT_SYMBOL drivers/fmc/fmc 0x35b500a0 fmc_device_register_n +EXPORT_SYMBOL drivers/fmc/fmc 0x3d24cf8f fmc_device_unregister +EXPORT_SYMBOL drivers/fmc/fmc 0x3d8a644d fmc_scan_sdb_tree +EXPORT_SYMBOL drivers/fmc/fmc 0x842b9763 fmc_find_sdb_device +EXPORT_SYMBOL drivers/fmc/fmc 0x8b1c9771 fmc_driver_register +EXPORT_SYMBOL drivers/fmc/fmc 0x9307f153 fmc_show_sdb_tree +EXPORT_SYMBOL drivers/fmc/fmc 0xb3e2c0ed fmc_free_sdb_tree +EXPORT_SYMBOL drivers/fmc/fmc 0xb7ba4ae1 fmc_driver_unregister +EXPORT_SYMBOL drivers/fmc/fmc 0xf2440849 fmc_reprogram +EXPORT_SYMBOL drivers/gpu/drm/drm 0x014eaef8 drm_vblank_pre_modeset +EXPORT_SYMBOL drivers/gpu/drm/drm 0x02e6e099 drm_mode_width +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0405839a drm_property_create_bitmask +EXPORT_SYMBOL drivers/gpu/drm/drm 0x07f97e1a drm_i2c_encoder_save +EXPORT_SYMBOL drivers/gpu/drm/drm 0x086b4da7 drm_mode_config_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0ae4b94c drm_ht_remove +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0ca1aa28 drm_i2c_encoder_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0cb4924f drm_crtc_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0d3b924e drm_framebuffer_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0f2a963e drm_mm_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0fccafb1 drm_global_item_unref +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0fd60df2 drm_get_connector_status_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0x11065515 drm_mode_equal +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 0x14a9a178 drm_get_format_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1511820d drm_prime_gem_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0x167fd723 drm_mm_clean +EXPORT_SYMBOL drivers/gpu/drm/drm 0x194eadaa drm_edid_header_is_valid +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1a770ac3 drm_detect_hdmi_monitor +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1af53577 drm_gem_vm_close +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1b339c1b drm_clflush_pages +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1bca2a45 drm_global_mutex +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1c0ae7d7 drm_mm_init_scan +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1e837252 drm_mm_scan_add_block +EXPORT_SYMBOL drivers/gpu/drm/drm 0x20645642 drm_debug +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2171bdfb drm_gem_prime_fd_to_handle +EXPORT_SYMBOL drivers/gpu/drm/drm 0x21a4d2d5 drm_mode_config_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x21c207e5 drm_mode_set_config_internal +EXPORT_SYMBOL drivers/gpu/drm/drm 0x22a36ddc drm_mode_probed_add +EXPORT_SYMBOL drivers/gpu/drm/drm 0x240c6587 drm_vblank_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x24836ad5 drm_mode_group_init_legacy_group +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2576cf97 drm_platform_exit +EXPORT_SYMBOL drivers/gpu/drm/drm 0x26256356 drm_mode_equal_no_clocks +EXPORT_SYMBOL drivers/gpu/drm/drm 0x27baf82d drm_gtf_mode_complex +EXPORT_SYMBOL drivers/gpu/drm/drm 0x28d89535 drm_send_vblank_event +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2b21c127 drm_core_ioremap_wc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2b706ced drm_get_platform_dev +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2d50570f drm_rect_calc_hscale +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2d5de57d drm_av_sync_delay +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2d816e75 drm_core_ioremapfree +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2e7a4300 drm_rgb_quant_range_selectable +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2e9542bc drm_mode_connector_detach_encoder +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2f7fc078 drm_rmmap_locked +EXPORT_SYMBOL drivers/gpu/drm/drm 0x306b23a8 drm_mm_takedown +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3074f033 drm_order +EXPORT_SYMBOL drivers/gpu/drm/drm 0x316573b4 drm_i2c_encoder_prepare +EXPORT_SYMBOL drivers/gpu/drm/drm 0x341e850b drm_framebuffer_lookup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x346127a7 drm_global_item_ref +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3704a8e0 drm_framebuffer_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3706cd4e drm_mode_parse_command_line_for_connector +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3711da22 drm_gem_object_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x37eb2b9f drm_read +EXPORT_SYMBOL drivers/gpu/drm/drm 0x38410037 drm_vblank_count_and_time +EXPORT_SYMBOL drivers/gpu/drm/drm 0x38a4f7ae drm_format_num_planes +EXPORT_SYMBOL drivers/gpu/drm/drm 0x39966a49 drm_get_edid +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3aa8b4af drm_i2c_encoder_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3ac1fef9 drm_mode_legacy_fb_format +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3b31fb60 drm_mode_connector_attach_encoder +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3b9d009a drm_format_plane_cpp +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3c17944b drm_gtf_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3dc565d9 drm_mm_insert_node_generic +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3e371ef8 drm_prime_remove_buf_handle +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3eb37b9d drm_ht_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3f5e034f drm_mode_crtc_set_gamma_size +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3fda6fbc drm_encoder_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x43384bd9 drm_buffer_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x43582e9d drm_cvt_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0x44a0c113 drm_mode_height +EXPORT_SYMBOL drivers/gpu/drm/drm 0x48076537 drm_property_create_enum +EXPORT_SYMBOL drivers/gpu/drm/drm 0x498dcb5e drm_ut_debug_printk +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4a04a3b2 drm_crtc_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4a643b95 drm_i2c_encoder_dpms +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4a7bd820 drm_pci_exit +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4bbf0e2c drm_mode_validate_clocks +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4c511235 drm_edid_is_valid +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4d088d1f drm_mm_replace_node +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4ea1f5a2 drm_gem_object_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x50e28c07 drm_edid_to_sad +EXPORT_SYMBOL drivers/gpu/drm/drm 0x51c27b80 drm_mode_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5203dc86 drm_vblank_get +EXPORT_SYMBOL drivers/gpu/drm/drm 0x526f6f71 drm_rect_calc_hscale_relaxed +EXPORT_SYMBOL drivers/gpu/drm/drm 0x57876a1d drm_debugfs_create_files +EXPORT_SYMBOL drivers/gpu/drm/drm 0x57d82c3a drm_addbufs_pci +EXPORT_SYMBOL drivers/gpu/drm/drm 0x581ed292 drm_mm_get_block_generic +EXPORT_SYMBOL drivers/gpu/drm/drm 0x58a21970 drm_mode_create_from_cmdline_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5d8f2d75 drm_gem_handle_delete +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5eafb8e9 drm_mode_set_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0x606ae2bc drm_mm_debug_table +EXPORT_SYMBOL drivers/gpu/drm/drm 0x61aab570 drm_fill_in_dev +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6640d8eb drm_pci_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x66a8cdb1 drm_fasync +EXPORT_SYMBOL drivers/gpu/drm/drm 0x66fac91f drm_prime_destroy_file_private +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6889360b drm_idlelock_take +EXPORT_SYMBOL drivers/gpu/drm/drm 0x68fb0cf7 drm_mode_create_dvi_i_properties +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6900d335 drm_rect_clip_scaled +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6afc8d95 drm_edid_to_eld +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6b6d7375 drm_timestamp_precision +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6cee2e42 drm_object_property_get_value +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6d9dfd03 drm_master_put +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6e93ebf6 drm_get_encoder_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6fed1307 drm_property_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7100d27f drm_mode_prune_invalid +EXPORT_SYMBOL drivers/gpu/drm/drm 0x74e0d57d drm_pci_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x74fbf451 drm_mm_init_scan_with_range +EXPORT_SYMBOL drivers/gpu/drm/drm 0x779bd6cb drm_sysfs_connector_add +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7a4e7297 drm_edid_block_valid +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7a5ee232 drm_gem_vm_open +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7b42b5d4 drm_mode_copy +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7b85f6f8 drm_mm_insert_node +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7bd0a7d2 drm_plane_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7c0f2bb5 drm_mm_create_block +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7ca0e72d drm_gem_create_mmap_offset +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7d11a16e drm_clflush_sg +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7d159c24 drm_mm_dump_table +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7e8f3b06 drm_probe_ddc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7f3fdb00 drm_noop +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8097eb57 drm_i2c_encoder_mode_set +EXPORT_SYMBOL drivers/gpu/drm/drm 0x809869ac drm_i2c_encoder_restore +EXPORT_SYMBOL drivers/gpu/drm/drm 0x80dd436e drm_sysfs_connector_remove +EXPORT_SYMBOL drivers/gpu/drm/drm 0x82d5c4b6 drm_modeset_unlock_all +EXPORT_SYMBOL drivers/gpu/drm/drm 0x84048c32 drm_prime_pages_to_sg +EXPORT_SYMBOL drivers/gpu/drm/drm 0x84542300 drm_modeset_lock_all +EXPORT_SYMBOL drivers/gpu/drm/drm 0x87035ae4 drm_gem_private_object_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x871ab41a drm_rect_intersect +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8772c613 drm_gem_prime_export +EXPORT_SYMBOL drivers/gpu/drm/drm 0x87ceb313 drm_prime_init_file_private +EXPORT_SYMBOL drivers/gpu/drm/drm 0x89280f6c drm_get_minor +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8b3f04b4 drm_mode_config_reset +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8c510862 drm_find_cea_extension +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8d613009 drm_plane_force_disable +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8de13715 drm_format_vert_chroma_subsampling +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8dfb019d drm_buffer_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8e49f1ef drm_mode_validate_size +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8eff9111 drm_ht_find_item +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8f7df3a7 drm_object_attach_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x91797155 drm_property_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0x91fec1cc drm_rect_calc_vscale +EXPORT_SYMBOL drivers/gpu/drm/drm 0x955d725c drm_mm_scan_remove_block +EXPORT_SYMBOL drivers/gpu/drm/drm 0x96f55844 drm_add_modes_noedid +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9745d638 drm_err +EXPORT_SYMBOL drivers/gpu/drm/drm 0x98f3d8b6 drm_mode_create_dithering_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9972db48 drm_rect_calc_vscale_relaxed +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9a92ba75 drm_irq_uninstall +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9ad4c5a4 drm_platform_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9d67db17 drm_mode_connector_update_edid_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9dd34b62 drm_mm_insert_node_in_range +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa0a57c2c drm_put_minor +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa1eabd87 drm_mode_list_concat +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa1fb703c drm_mm_remove_node +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa28a2047 drm_add_edid_modes +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa735caef drm_mode_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa96acfcb drm_rect_debug_print +EXPORT_SYMBOL drivers/gpu/drm/drm 0xad2cb02a drm_core_ioremap +EXPORT_SYMBOL drivers/gpu/drm/drm 0xad893bc3 drm_vblank_off +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb0e16328 drm_i2c_encoder_detect +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb1793cf8 drm_framebuffer_unreference +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb30e268c drm_gem_handle_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb3f13574 drm_unplug_dev +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb8e5c44f drm_core_reclaim_buffers +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb93754a8 drm_put_dev +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb95beb55 drm_object_property_set_value +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb9b09896 drm_idlelock_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb9b0b65b drm_mode_find_dmt +EXPORT_SYMBOL drivers/gpu/drm/drm 0xba2d0719 drm_mode_hsync +EXPORT_SYMBOL drivers/gpu/drm/drm 0xba96254b drm_vblank_post_modeset +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbab69be7 drm_vblank_count +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbabe65b4 drm_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbb2b24c3 drm_poll +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbb4f492e drm_mode_create_dirty_info_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbc0de18b drm_mode_create_tv_properties +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbd6420d1 drm_gem_free_mmap_offset +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbd86ce10 drm_gem_mmap_obj +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbe001c53 drm_property_add_enum +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbe18dba4 drm_get_last_vbltimestamp +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbe563f47 drm_debugfs_remove_files +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbf43a0ae drm_gem_object_handle_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc25a61ec drm_mode_set_crtcinfo +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc2735609 drm_mode_remove +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc414c422 drm_vblank_offdelay +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc6bd45ab drm_i2c_encoder_commit +EXPORT_SYMBOL drivers/gpu/drm/drm 0xca42b7f5 drm_encoder_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xca45efbc drm_format_horz_chroma_subsampling +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcb1beab5 drm_mode_vrefresh +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcb9de2d0 drm_get_connector_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcc132086 drm_mode_object_find +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcd0fc417 drm_ht_just_insert_please +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcda91c46 drm_mode_debug_printmodeline +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcdeff753 drm_getsarea +EXPORT_SYMBOL drivers/gpu/drm/drm 0xce5bbde9 drm_property_create_range +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd0dcdd90 drm_mm_insert_node_in_range_generic +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd125790d drm_hdmi_avi_infoframe_from_display_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd2335101 drm_fb_get_bpp_depth +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd4f40c41 drm_vblank_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd6663765 drm_gem_object_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd674ea0b drm_i2c_encoder_mode_fixup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd727955e drm_pci_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd9ca1a72 drm_connector_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xda1aca64 drm_vblank_put +EXPORT_SYMBOL drivers/gpu/drm/drm 0xdbb5a9f5 drm_ht_remove_item +EXPORT_SYMBOL drivers/gpu/drm/drm 0xdc98d646 drm_mode_connector_list_update +EXPORT_SYMBOL drivers/gpu/drm/drm 0xdeb003cb drm_rmmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe10a472d drm_mm_pre_get +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe16838c2 drm_mm_search_free_in_range_generic +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe245c253 drm_gem_mmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe2901312 drm_framebuffer_unregister_private +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe2d4e8ac drm_prime_sg_to_page_addr_arrays +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe2e26acc drm_gem_object_lookup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe4a9a4cb drm_calc_vbltimestamp_from_scanoutpos +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe6f46e6e drm_clflush_virt_range +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe7197773 drm_ht_insert_item +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe7333641 drm_select_eld +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe77924e8 drm_match_cea_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0xead1b319 drm_irq_install +EXPORT_SYMBOL drivers/gpu/drm/drm 0xeb506cb6 drm_warn_on_modeset_not_all_locked +EXPORT_SYMBOL drivers/gpu/drm/drm 0xeba8287e drm_calc_timestamping_constants +EXPORT_SYMBOL drivers/gpu/drm/drm 0xebbd8111 drm_prime_lookup_buf_handle +EXPORT_SYMBOL drivers/gpu/drm/drm 0xec216264 drm_ioctl +EXPORT_SYMBOL drivers/gpu/drm/drm 0xec6e38d9 drm_gem_object_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf0dcad97 drm_addmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf1421d13 drm_mode_sort +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf2212ed2 drm_master_get +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf2ec6892 drm_mmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf36699bf drm_framebuffer_remove +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf3ab04ad drm_handle_vblank +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf45ccb94 drm_open +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf4b2e991 drm_mm_put_block +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf56cb032 drm_gem_prime_import +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf92c66be drm_mm_search_free_generic +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfa1fbf44 drm_plane_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfb24fa5a drm_sysfs_hotplug_event +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfb5241ba drm_mode_duplicate +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfb8a84a4 drm_mm_get_block_range_generic +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfc41a3c3 drm_framebuffer_reference +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfd55962d drm_connector_unplug_all +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfdca429c drm_mode_create_scaling_mode_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0xff03348d drm_connector_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xff47a034 drm_gem_prime_handle_to_fd +EXPORT_SYMBOL drivers/gpu/drm/drm 0xffc6c87a drm_detect_monitor_audio +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x054d2777 drm_fb_helper_hotplug_event +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x10541df4 drm_fb_helper_fill_fix +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x1c4fb457 drm_kms_helper_poll_init +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x2b978484 drm_helper_move_panel_connectors_to_head +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x2d7a787f drm_dp_clock_recovery_ok +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x3117f343 drm_helper_hpd_irq_event +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x32eed681 drm_helper_mode_fill_fb_struct +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x36e19a88 drm_fb_helper_set_par +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x3b67d0ef drm_kms_helper_poll_disable +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x40577c10 drm_fb_helper_restore_fbdev_mode +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x4491abb0 drm_kms_helper_hotplug_event +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x55bf1b41 drm_helper_probe_single_connector_modes +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x5cb3c3ea drm_helper_crtc_in_use +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x711a004a drm_dp_link_rate_to_bw_code +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7cd846dc drm_fb_helper_init +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x81e9b1c3 drm_kms_helper_poll_fini +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x90939872 drm_fb_helper_blank +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x936ca2ca drm_helper_disable_unused_functions +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x95078833 drm_fb_helper_single_add_all_connectors +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x95317232 drm_fb_helper_debug_leave +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xa5c664f0 drm_kms_helper_poll_enable +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xa65195d1 drm_helper_resume_force_mode +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xa75e8be7 drm_crtc_helper_set_mode +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xa8d6809d drm_dp_bw_code_to_link_rate +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xb06816da drm_crtc_helper_set_config +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xb37a0603 drm_dp_link_train_channel_eq_delay +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xb4735e3e drm_fb_helper_fini +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xbaad0e96 drm_fb_helper_check_var +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xc44a9a76 drm_helper_connector_dpms +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xc7c68489 drm_fb_helper_fill_var +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xc7fd39bb drm_dp_channel_eq_ok +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xd02c73c7 drm_dp_link_train_clock_recovery_delay +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xd5d8b6b8 drm_dp_get_adjust_request_pre_emphasis +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xdce38638 i2c_dp_aux_add_bus +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xebd87f6d drm_fb_helper_debug_enter +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xeee386c0 drm_fb_helper_setcmap +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xf142e4d4 drm_fb_helper_initial_config +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xf92c855c drm_fb_helper_pan_display +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xf93b31d0 drm_helper_encoder_in_use +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xfee43a69 drm_dp_get_adjust_request_voltage +EXPORT_SYMBOL drivers/gpu/drm/drm_usb 0x01c4b06c drm_usb_init +EXPORT_SYMBOL drivers/gpu/drm/drm_usb 0x6b9cdd3f drm_usb_exit +EXPORT_SYMBOL drivers/gpu/drm/drm_usb 0x76097a6b drm_get_usb_dev +EXPORT_SYMBOL drivers/hwmon/hwmon-vid 0x0903c239 vid_from_reg +EXPORT_SYMBOL drivers/hwmon/hwmon-vid 0xef1c781c vid_which_vrm +EXPORT_SYMBOL drivers/hwmon/sch56xx-common 0x0e2a6864 sch56xx_read_virtual_reg +EXPORT_SYMBOL drivers/hwmon/sch56xx-common 0x0f5877d4 sch56xx_read_virtual_reg16 +EXPORT_SYMBOL drivers/hwmon/sch56xx-common 0x34257f35 sch56xx_watchdog_unregister +EXPORT_SYMBOL drivers/hwmon/sch56xx-common 0x4ad596ef sch56xx_watchdog_register +EXPORT_SYMBOL drivers/hwmon/sch56xx-common 0xe5022f95 sch56xx_read_virtual_reg12 +EXPORT_SYMBOL drivers/hwmon/sch56xx-common 0xed1d2a08 sch56xx_write_virtual_reg +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-bit 0x6320f352 i2c_bit_algo +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-bit 0x74946eaa i2c_bit_add_numbered_bus +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-bit 0xdcae412a i2c_bit_add_bus +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-pca 0x19667f86 i2c_pca_add_bus +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-pca 0x589400f6 i2c_pca_add_numbered_bus +EXPORT_SYMBOL drivers/iio/accel/st_accel 0x5d2003fe st_accel_common_remove +EXPORT_SYMBOL drivers/iio/accel/st_accel 0x7bfe9be3 st_accel_common_probe +EXPORT_SYMBOL drivers/iio/common/hid-sensors/hid-sensor-iio-common 0x1836faf8 hid_sensor_parse_common_attributes +EXPORT_SYMBOL drivers/iio/common/hid-sensors/hid-sensor-iio-common 0x365dc9e4 hid_sensor_read_raw_hyst_value +EXPORT_SYMBOL drivers/iio/common/hid-sensors/hid-sensor-iio-common 0x64cf7ccb hid_sensor_write_samp_freq_value +EXPORT_SYMBOL drivers/iio/common/hid-sensors/hid-sensor-iio-common 0xad113222 hid_sensor_read_samp_freq_value +EXPORT_SYMBOL drivers/iio/common/hid-sensors/hid-sensor-iio-common 0xd33fb903 hid_sensor_write_raw_hyst_value +EXPORT_SYMBOL drivers/iio/common/hid-sensors/hid-sensor-trigger 0x0625d9e1 hid_sensor_setup_trigger +EXPORT_SYMBOL drivers/iio/common/hid-sensors/hid-sensor-trigger 0x34acfaf9 hid_sensor_remove_trigger +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0x074d7047 st_sensors_trigger_handler +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0x0b794991 st_sensors_set_enable +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0x5283a08e st_sensors_get_buffer_element +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0x5ab145c3 st_sensors_set_odr +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0x61059605 st_sensors_init_sensor +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0x68bc0d1a st_sensors_sysfs_set_sampling_frequency +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0x7b149bcb st_sensors_set_fullscale_by_gain +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0x7caf139f st_sensors_set_axis_enable +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0x986bb2a5 st_sensors_sysfs_sampling_frequency_avail +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0xb277c491 st_sensors_allocate_trigger +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0xbb4266a9 st_sensors_sysfs_get_sampling_frequency +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0xbde6e482 st_sensors_read_info_raw +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0xbf1f5acf st_sensors_deallocate_trigger +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0xd32ccaf3 st_sensors_check_device_support +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0xe2830aa2 st_sensors_set_dataready_irq +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0xefcbddd3 st_sensors_sysfs_scale_avail +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors_i2c 0xeed3f09c st_sensors_i2c_configure +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors_spi 0x5e0820d0 st_sensors_spi_configure +EXPORT_SYMBOL drivers/iio/gyro/st_gyro 0x6f1bf474 st_gyro_common_remove +EXPORT_SYMBOL drivers/iio/gyro/st_gyro 0x8d1c9b6d st_gyro_common_probe +EXPORT_SYMBOL drivers/iio/imu/adis_lib 0x091242d9 adis_enable_irq +EXPORT_SYMBOL drivers/iio/imu/adis_lib 0x98963c0f adis_debugfs_reg_access +EXPORT_SYMBOL drivers/iio/industrialio 0x044c761f iio_buffer_unregister +EXPORT_SYMBOL drivers/iio/industrialio 0x0f86a9c2 iio_device_free +EXPORT_SYMBOL drivers/iio/industrialio 0x110d178e iio_device_register +EXPORT_SYMBOL drivers/iio/industrialio 0x162763df iio_triggered_buffer_predisable +EXPORT_SYMBOL drivers/iio/industrialio 0x1729e80d iio_push_event +EXPORT_SYMBOL drivers/iio/industrialio 0x1bb9e990 iio_trigger_poll_chained +EXPORT_SYMBOL drivers/iio/industrialio 0x1cbae680 iio_trigger_alloc +EXPORT_SYMBOL drivers/iio/industrialio 0x2c4b0406 iio_sw_buffer_preenable +EXPORT_SYMBOL drivers/iio/industrialio 0x2d6bcdcb iio_trigger_generic_data_rdy_poll +EXPORT_SYMBOL drivers/iio/industrialio 0x3392a067 iio_device_alloc +EXPORT_SYMBOL drivers/iio/industrialio 0x38b748a3 iio_buffer_show_enable +EXPORT_SYMBOL drivers/iio/industrialio 0x47d2931e iio_trigger_poll +EXPORT_SYMBOL drivers/iio/industrialio 0x50047113 iio_trigger_notify_done +EXPORT_SYMBOL drivers/iio/industrialio 0x82e5c8a5 iio_trigger_free +EXPORT_SYMBOL drivers/iio/industrialio 0x96615e88 iio_buffer_init +EXPORT_SYMBOL drivers/iio/industrialio 0x9b15f989 iio_buffer_read_length +EXPORT_SYMBOL drivers/iio/industrialio 0x9cb1a872 iio_trigger_unregister +EXPORT_SYMBOL drivers/iio/industrialio 0xbc175867 iio_triggered_buffer_postenable +EXPORT_SYMBOL drivers/iio/industrialio 0xbcc8de88 iio_buffer_store_enable +EXPORT_SYMBOL drivers/iio/industrialio 0xbefda330 iio_bus_type +EXPORT_SYMBOL drivers/iio/industrialio 0xd31a84f3 iio_device_unregister +EXPORT_SYMBOL drivers/iio/industrialio 0xd39b7288 iio_trigger_register +EXPORT_SYMBOL drivers/iio/industrialio 0xdf76bbeb iio_pollfunc_store_time +EXPORT_SYMBOL drivers/iio/industrialio 0xe15aec1b iio_buffer_register +EXPORT_SYMBOL drivers/iio/industrialio 0xe4d409d5 iio_read_const_attr +EXPORT_SYMBOL drivers/iio/industrialio 0xf0168efd iio_buffer_write_length +EXPORT_SYMBOL drivers/iio/industrialio-triggered-buffer 0x30eebafe iio_triggered_buffer_cleanup +EXPORT_SYMBOL drivers/iio/industrialio-triggered-buffer 0xdf8c3ffe iio_triggered_buffer_setup +EXPORT_SYMBOL drivers/iio/kfifo_buf 0x79b3ac11 iio_kfifo_allocate +EXPORT_SYMBOL drivers/iio/kfifo_buf 0xd861e3af iio_kfifo_free +EXPORT_SYMBOL drivers/iio/magnetometer/st_magn 0x1bf67533 st_magn_common_remove +EXPORT_SYMBOL drivers/iio/magnetometer/st_magn 0xd14f46ee st_magn_common_probe +EXPORT_SYMBOL drivers/iio/pressure/st_pressure 0x790f5d50 st_press_common_remove +EXPORT_SYMBOL drivers/iio/pressure/st_pressure 0xe0039310 st_press_common_probe +EXPORT_SYMBOL drivers/input/gameport/gameport 0x0550922f gameport_start_polling +EXPORT_SYMBOL drivers/input/gameport/gameport 0x29b67ddf gameport_unregister_port +EXPORT_SYMBOL drivers/input/gameport/gameport 0x41d26bd8 gameport_set_phys +EXPORT_SYMBOL drivers/input/gameport/gameport 0x7144ad90 gameport_open +EXPORT_SYMBOL drivers/input/gameport/gameport 0xb60e348b __gameport_register_driver +EXPORT_SYMBOL drivers/input/gameport/gameport 0xc63bb820 gameport_stop_polling +EXPORT_SYMBOL drivers/input/gameport/gameport 0xdcd5edd1 __gameport_register_port +EXPORT_SYMBOL drivers/input/gameport/gameport 0xf514b5ae gameport_unregister_driver +EXPORT_SYMBOL drivers/input/gameport/gameport 0xf6408088 gameport_close +EXPORT_SYMBOL drivers/input/input-polldev 0x2a3e5a9f input_unregister_polled_device +EXPORT_SYMBOL drivers/input/input-polldev 0x4a426a64 input_free_polled_device +EXPORT_SYMBOL drivers/input/input-polldev 0x5dc079a1 input_allocate_polled_device +EXPORT_SYMBOL drivers/input/input-polldev 0xfafa57ed input_register_polled_device +EXPORT_SYMBOL drivers/input/matrix-keymap 0x869b7784 matrix_keypad_build_keymap +EXPORT_SYMBOL drivers/input/misc/ad714x 0x2aa4395d ad714x_enable +EXPORT_SYMBOL drivers/input/misc/ad714x 0x2be5c2dc ad714x_remove +EXPORT_SYMBOL drivers/input/misc/ad714x 0xa3f3ffbd ad714x_probe +EXPORT_SYMBOL drivers/input/misc/ad714x 0xa693220d ad714x_disable +EXPORT_SYMBOL drivers/input/misc/cma3000_d0x 0x0581500d cma3000_init +EXPORT_SYMBOL drivers/input/misc/cma3000_d0x 0x892d76b2 cma3000_resume +EXPORT_SYMBOL drivers/input/misc/cma3000_d0x 0x89d9444e cma3000_exit +EXPORT_SYMBOL drivers/input/misc/cma3000_d0x 0xca3f100a cma3000_suspend +EXPORT_SYMBOL drivers/input/sparse-keymap 0x1721d539 sparse_keymap_entry_from_keycode +EXPORT_SYMBOL drivers/input/sparse-keymap 0x2b7d0caa sparse_keymap_report_entry +EXPORT_SYMBOL drivers/input/sparse-keymap 0x5655cc1d sparse_keymap_setup +EXPORT_SYMBOL drivers/input/sparse-keymap 0x636d603b sparse_keymap_report_event +EXPORT_SYMBOL drivers/input/sparse-keymap 0x81c7c5f4 sparse_keymap_free +EXPORT_SYMBOL drivers/input/sparse-keymap 0xba5c0192 sparse_keymap_entry_from_scancode +EXPORT_SYMBOL drivers/input/touchscreen/ad7879 0x0af8c2ba ad7879_probe +EXPORT_SYMBOL drivers/input/touchscreen/ad7879 0x97f83edf ad7879_remove +EXPORT_SYMBOL drivers/input/touchscreen/ad7879 0xfe23dcb0 ad7879_pm_ops +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 0x1f908276 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 0x2db12f05 capi_ctr_ready +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 0x67f18af8 capi20_put_message +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x6a5d3949 capi_ctr_down +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 0x7f21fdf2 capi_ctr_handle_message +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x8a587e6b capi20_release +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 0xa3085a30 detach_capi_ctr +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 0xd2395498 capi20_register +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xdf3c1835 capi_ctr_resume_output +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xe0f98868 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/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 0x7fd75671 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/i4l/isdn 0x3c3e027c register_isdn +EXPORT_SYMBOL drivers/isdn/i4l/isdn 0xd3b3b156 isdn_ppp_unregister_compressor +EXPORT_SYMBOL drivers/isdn/i4l/isdn 0xfa06820f isdn_register_divert +EXPORT_SYMBOL drivers/isdn/i4l/isdn 0xfb5a82a0 isdn_ppp_register_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 0x061062ed mISDN_initbchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x130d6680 bchannel_get_rxbuf +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x1e1f124e mISDN_register_device +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x2348cc3c mISDN_FsmFree +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x2acb8e21 mISDN_clear_bchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x3359147f bchannel_senddata +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x41e4ba2d recv_Dchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x5094fefa dchannel_senddata +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 0x588886a6 l1_event +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x614ede30 mISDN_FsmAddTimer +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x6a338876 recv_Dchannel_skb +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x76948005 mISDN_unregister_Bprotocol +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x82fbacf3 mISDN_ctrl_bchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x84dc4bc8 mISDN_unregister_device +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x8a4e99fb mISDN_clock_update +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x96309324 mISDN_FsmDelTimer +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x96bbfbf2 mISDNDevName4ch +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xa8b6cf33 mISDN_freebchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xadd02a4d create_l1 +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xb5f6c6ea recv_Echannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xc338224c recv_Bchannel_skb +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xc3401729 mISDN_register_clock +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xcc839c20 queue_ch_frame +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xcdd64c85 recv_Bchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xd0aa8933 mISDN_register_Bprotocol +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xd285995f mISDN_clock_get +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xd5145151 mISDN_FsmEvent +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xd92b8589 get_next_dframe +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xe1ee4fd4 mISDN_initdchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xe26e7463 get_next_bframe +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 0xeca4008e mISDN_freedchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xf9e7832f mISDN_FsmNew +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_dsp 0x01087af0 mISDN_dsp_element_unregister +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_dsp 0x60721da7 dsp_audio_law_to_s32 +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_dsp 0xa215f1b2 dsp_audio_s16_to_law +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_dsp 0xb98308d8 mISDN_dsp_element_register +EXPORT_SYMBOL drivers/md/dm-log 0x7636ea4d dm_dirty_log_type_register +EXPORT_SYMBOL drivers/md/dm-log 0xa29eba90 dm_dirty_log_create +EXPORT_SYMBOL drivers/md/dm-log 0xade1dd62 dm_dirty_log_type_unregister +EXPORT_SYMBOL drivers/md/dm-log 0xd9c6d61c dm_dirty_log_destroy +EXPORT_SYMBOL drivers/md/dm-snapshot 0x36dad83f dm_exception_store_type_unregister +EXPORT_SYMBOL drivers/md/dm-snapshot 0x9234c850 dm_snap_origin +EXPORT_SYMBOL drivers/md/dm-snapshot 0xafa2b593 dm_exception_store_type_register +EXPORT_SYMBOL drivers/md/dm-snapshot 0xc42d1318 dm_exception_store_destroy +EXPORT_SYMBOL drivers/md/dm-snapshot 0xe630eadf dm_exception_store_create +EXPORT_SYMBOL drivers/md/dm-snapshot 0xf3475298 dm_snap_cow +EXPORT_SYMBOL drivers/md/raid456 0x0c3f1088 raid5_set_cache_size +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0x0c72a51c flexcop_eeprom_check_mac_addr +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0x0dfadda3 flexcop_device_exit +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0x15189bfe flexcop_sram_set_dest +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0x48e5ac8b flexcop_pass_dmx_data +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0x566b8d81 flexcop_device_kfree +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0x6f4da8f9 flexcop_i2c_request +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0x7f553bc0 flexcop_dump_reg +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0x7fdec369 flexcop_device_initialize +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0x817c8dd2 flexcop_sram_ctrl +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0x8d8e2c77 flexcop_pid_feed_control +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0xb37fc86f flexcop_pass_dmx_packets +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0xf8c60311 flexcop_wan_set_speed +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0xfeb2b3d7 flexcop_device_kmalloc +EXPORT_SYMBOL drivers/media/common/cx2341x 0x1ca0c084 cx2341x_log_status +EXPORT_SYMBOL drivers/media/common/cx2341x 0x2f25eee2 cx2341x_update +EXPORT_SYMBOL drivers/media/common/cx2341x 0x35038ba2 cx2341x_handler_init +EXPORT_SYMBOL drivers/media/common/cx2341x 0x3db8be82 cx2341x_ctrl_query +EXPORT_SYMBOL drivers/media/common/cx2341x 0x57b34a9d cx2341x_handler_set_busy +EXPORT_SYMBOL drivers/media/common/cx2341x 0x5b88faf6 cx2341x_ext_ctrls +EXPORT_SYMBOL drivers/media/common/cx2341x 0xc184ec1e cx2341x_ctrl_get_menu +EXPORT_SYMBOL drivers/media/common/cx2341x 0xcf76ce95 cx2341x_fill_defaults +EXPORT_SYMBOL drivers/media/common/cx2341x 0xcf8b77a4 cx2341x_mpeg_ctrls +EXPORT_SYMBOL drivers/media/common/cx2341x 0xdd1f0f45 cx2341x_handler_set_50hz +EXPORT_SYMBOL drivers/media/common/cx2341x 0xf3af77b1 cx2341x_handler_setup +EXPORT_SYMBOL drivers/media/common/cypress_firmware 0x7588c691 cypress_load_firmware +EXPORT_SYMBOL drivers/media/common/tveeprom 0x36be6346 tveeprom_hauppauge_analog +EXPORT_SYMBOL drivers/media/common/tveeprom 0xeb1e2c14 tveeprom_read +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x10480160 dvb_ca_en50221_frda_irq +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x12caabdc dvb_frontend_detach +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x12ec87c0 dvb_dmxdev_release +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x17523ce7 dvb_frontend_sleep_until +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x17bf3fe2 dvb_dmx_swfilter +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x236d2f69 dvb_net_init +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x25439696 dvb_ca_en50221_init +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x344908d4 dvb_ringbuffer_free +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x3656cb10 dvb_ringbuffer_init +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x366da640 dvb_unregister_adapter +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x3e571a48 dvb_generic_open +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x516d2335 dvb_generic_ioctl +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x5c28f5ed dvb_dmx_swfilter_204 +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x629f9d31 dvb_ringbuffer_read_user +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x6519c9ac dvb_dmx_init +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x6661a5b9 dvb_ca_en50221_release +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x66baa6e0 dvb_register_frontend +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x69c2703b dvb_register_adapter +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x72180695 dvb_ringbuffer_flush_spinlock_wakeup +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x74a5a698 dvb_filter_pes2ts_init +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x76180124 dvb_frontend_resume +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x7c060c38 dvb_unregister_device +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x7c0efe53 dvb_frontend_suspend +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x7d84f461 dvb_unregister_frontend +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x80e3832d dvb_filter_get_ac3info +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x8633f37b dvb_ringbuffer_flush +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x9c19040b dvb_ringbuffer_write +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xa857cea0 dvb_dmxdev_init +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xa8dfb30a dvb_frontend_reinitialise +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xac4ca1b0 intlog2 +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xb01bcfb5 dvb_net_release +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xbd9e0b47 dvb_dmx_swfilter_packets +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xc11aa6de dvb_ca_en50221_camready_irq +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xc62acc50 dvb_generic_release +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xd68a099e timeval_usec_diff +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xd854343b dvb_dmx_release +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xdb1a8bd4 dvb_ringbuffer_empty +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xdc094c39 dvb_ringbuffer_avail +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xdd4e60e6 dvb_ca_en50221_camchange_irq +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xe5ae8707 intlog10 +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xeb98db4c dvb_register_device +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xf48116c6 dvb_ringbuffer_read +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xf6d174a5 dvb_dmx_swfilter_raw +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xf826deb0 dvb_filter_pes2ts +EXPORT_SYMBOL drivers/media/dvb-frontends/a8293 0x64c6bec2 a8293_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/af9013 0x365f7da8 af9013_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/af9033 0xe74bd7cb af9033_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/atbm8830 0x366600c7 atbm8830_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_common 0x4ea722b3 au8522_release_state +EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_common 0x6767ae79 au8522_i2c_gate_ctrl +EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_common 0x6d29a5db au8522_led_ctrl +EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_common 0x98170c0e au8522_get_state +EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_common 0xa09d3aa2 au8522_writereg +EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_common 0xa3aa8598 au8522_readreg +EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_common 0xb652450a au8522_sleep +EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_common 0xd1afe2fd au8522_analog_i2c_gate_ctrl +EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_common 0xd25020e5 au8522_init +EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_dig 0x225aedd4 au8522_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/bcm3510 0xfb6c882c bcm3510_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/cx22702 0x75f38b64 cx22702_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/cx24113 0x3a27dafe cx24113_agc_callback +EXPORT_SYMBOL drivers/media/dvb-frontends/cx24113 0xddab18f4 cx24113_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/cx24116 0x1508fcf8 cx24116_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/cx24123 0x4da08d9e cx24123_get_tuner_i2c_adapter +EXPORT_SYMBOL drivers/media/dvb-frontends/cx24123 0x9191a889 cx24123_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/cxd2820r 0xd009373b cxd2820r_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0070 0x2122f680 dib0070_get_rf_output +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0070 0x8bfc6d80 dib0070_ctrl_agc_filter +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0070 0x8f6cd1ae dib0070_set_rf_output +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0070 0xbc10c67c dib0070_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0070 0xc08aba55 dib0070_wbd_offset +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x0bf093b5 dib0090_get_wbd_offset +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x2e1373d7 dib0090_get_wbd_target +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x43e6977a dib0090_register +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x4cfadb52 dib0090_set_switch +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x54d6d01f dib0090_update_tuning_table_7090 +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x5dcc8d17 dib0090_get_current_gain +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x657d07bf dib0090_gain_control +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x85c42c50 dib0090_set_vga +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0xb6802b98 dib0090_pwm_gain_reset +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0xc1b57030 dib0090_update_rframp_7090 +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0xc3801522 dib0090_dcc_freq +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0xcb5d9ccf dib0090_fw_register +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0xe4c95639 dib0090_set_tune_state +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0xea7a7384 dib0090_get_tune_state +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0xfcf70305 dib0090_set_dc_servo +EXPORT_SYMBOL drivers/media/dvb-frontends/dib3000mb 0x36840852 dib3000mb_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/dib3000mc 0x3367d311 dib3000mc_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/dib3000mc 0x672a0f07 dib3000mc_pid_control +EXPORT_SYMBOL drivers/media/dvb-frontends/dib3000mc 0x7f973664 dib3000mc_set_config +EXPORT_SYMBOL drivers/media/dvb-frontends/dib3000mc 0x83d1b729 dib3000mc_pid_parse +EXPORT_SYMBOL drivers/media/dvb-frontends/dib3000mc 0xeb53b78b dib3000mc_i2c_enumeration +EXPORT_SYMBOL drivers/media/dvb-frontends/dib3000mc 0xed0fbaf9 dib3000mc_get_tuner_i2c_master +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000m 0x19c0051c dib7000m_pid_filter +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000m 0x2e68b3e7 dib7000m_pid_filter_ctrl +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000m 0x78145401 dib7000m_get_i2c_master +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000m 0xb4e2a59e dib7000m_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0x1ff578c6 dib7000p_set_wbd_ref +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0x29515aba dib7090_slave_reset +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0x301f3e8d dib7000p_update_pll +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0x3913c6c2 dib7000p_set_gpio +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0x393071f1 dib7090_get_i2c_tuner +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0x405095aa dib7000pc_detection +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0x74e3c960 dib7090_get_adc_power +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0x8425a8c5 dib7000p_set_agc1_min +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0xad1acb8f dib7000p_pid_filter +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0xb073ff1b dib7000p_ctrl_timf +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0xb5a9fa11 dib7090_tuner_sleep +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0xbbd2429b dib7000p_get_agc_values +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0xc5ca7cc8 dib7000p_i2c_enumeration +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0xcc20e923 dib7000p_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0xd309a53b dib7000p_pid_filter_ctrl +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0xeae0b22c dib7000p_get_i2c_master +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0x0096bdff dib8090p_get_dc_power +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0x096e840d dib8000_set_gpio +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0x1446652a dib8000_pid_filter_ctrl +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0x16973ae6 dib8000_i2c_enumeration +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0x2d6a51d1 dib8000_get_tune_state +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0x4a043f32 dib8000_set_wbd_ref +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0x55d5e74b dib8000_get_adc_power +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0x741dd742 dib8000_get_slave_frontend +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0x7c6e18a8 dib8000_remove_slave_frontend +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0x8e29bf7e dib8000_pwm_agc_reset +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0x93360397 dib8000_set_tune_state +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0x94a3f7e4 dib8000_update_pll +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0xa5e87b8f dib8096p_tuner_sleep +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0xd124dd1e dib8096p_get_i2c_tuner +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0xdb123ac4 dib8000_pid_filter +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0xf3256d4b dib8000_get_i2c_master +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0xfe63c2d9 dib8000_set_slave_frontend +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0xffb7569b dib8000_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0xffbe0046 dib8000_ctrl_timf +EXPORT_SYMBOL drivers/media/dvb-frontends/dibx000_common 0x8304a065 dibx000_init_i2c_master +EXPORT_SYMBOL drivers/media/dvb-frontends/dibx000_common 0x8fe67928 dibx000_reset_i2c_master +EXPORT_SYMBOL drivers/media/dvb-frontends/dibx000_common 0x9dab1aad dibx000_get_i2c_adapter +EXPORT_SYMBOL drivers/media/dvb-frontends/dibx000_common 0x9ef146f5 dibx000_i2c_set_speed +EXPORT_SYMBOL drivers/media/dvb-frontends/dibx000_common 0xad3ad91c systime +EXPORT_SYMBOL drivers/media/dvb-frontends/dibx000_common 0xe7646552 dibx000_exit_i2c_master +EXPORT_SYMBOL drivers/media/dvb-frontends/drxd 0x0c0f2da6 drxd_config_i2c +EXPORT_SYMBOL drivers/media/dvb-frontends/drxd 0x106f9873 drxd_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/drxk 0x17e04a10 drxk_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/ds3000 0xe996d25d ds3000_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/dvb-pll 0x10ff698c dvb_pll_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/ec100 0x2c2195de ec100_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/isl6421 0x13dadb53 isl6421_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/isl6423 0x482f5e9e isl6423_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/it913x-fe 0xa8127d5b it913x_fe_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/itd1000 0x55a7d95f itd1000_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/ix2505v 0x02d972a2 ix2505v_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/lg2160 0x8d27846c lg2160_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/lgdt3305 0x9447cf71 lgdt3305_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/lgdt330x 0x88d4484c lgdt330x_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/lgs8gxx 0x5e41ba22 lgs8gxx_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/lnbp21 0x1380d0e8 lnbp21_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/lnbp21 0x8586078a lnbh24_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/lnbp22 0x6da4b43e lnbp22_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/m88rs2000 0xf6ee9b14 m88rs2000_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/mb86a20s 0x8bf34b72 mb86a20s_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/mt312 0xcff0c2a5 mt312_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/mt352 0xbf0025c6 mt352_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/nxt200x 0x3a9001cf nxt200x_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/nxt6000 0xc4bdb9fc nxt6000_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/rtl2830 0xb1d554ff rtl2830_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/rtl2830 0xfcbce801 rtl2830_get_tuner_i2c_adapter +EXPORT_SYMBOL drivers/media/dvb-frontends/rtl2832 0x7cc5b735 rtl2832_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/s5h1409 0x34c2bdd8 s5h1409_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/s5h1411 0x827c53e0 s5h1411_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/s5h1420 0x1426b231 s5h1420_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/s5h1420 0xde16841c s5h1420_get_tuner_i2c_adapter +EXPORT_SYMBOL drivers/media/dvb-frontends/s921 0x23065bde s921_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/si21xx 0x1099198a si21xx_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stb0899 0x97bb2243 stb0899_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stb6000 0xcc98a6c9 stb6000_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stb6100 0x94ee7f30 stb6100_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stv0288 0x6f691cc8 stv0288_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stv0297 0xe96a5e16 stv0297_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stv0299 0xc9f40980 stv0299_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stv0900 0xde0868bd stv0900_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stv090x 0xa74570fb stv090x_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stv090x 0xfd1ef4dd stv090x_set_gpio +EXPORT_SYMBOL drivers/media/dvb-frontends/stv6110 0x700c8b62 stv6110_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stv6110x 0x5b35bc91 stv6110x_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda10023 0x57f1bc63 tda10023_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda10048 0x43db1483 tda10048_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda1004x 0x0d388f1b tda10046_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda1004x 0xdd541c0f tda10045_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda10071 0x490e63e7 tda10071_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda10086 0x1ae8e0c2 tda10086_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda826x 0xaa581e24 tda826x_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/ts2020 0xb5ee2ea8 ts2020_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/zl10039 0xc5c430a6 zl10039_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/zl10353 0x2033f22b zl10353_attach +EXPORT_SYMBOL drivers/media/pci/ttpci/ttpci-eeprom 0xc3e4c127 ttpci_eeprom_decode_mac +EXPORT_SYMBOL drivers/media/pci/ttpci/ttpci-eeprom 0xc6ab3f77 ttpci_eeprom_parse_mac +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_camera 0x0db55d50 soc_camera_power_off +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_camera 0x2f9e2e2d soc_camera_xlate_by_fourcc +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_camera 0x471f380e soc_camera_host_register +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_camera 0x4d26df67 soc_camera_unlock +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_camera 0x79d98d28 soc_camera_lock +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_camera 0x8acb1027 soc_camera_power_init +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_camera 0x8c95adc8 soc_camera_apply_board_flags +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_camera 0x976e1810 soc_camera_host_unregister +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_camera 0xdfc4d9d7 soc_camera_power_on +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_mediabus 0x25c52d97 soc_mbus_samples_per_pixel +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_mediabus 0x2863728e soc_mbus_image_size +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_mediabus 0x46b1be73 soc_mbus_find_fmtdesc +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_mediabus 0x5f3e3558 soc_mbus_bytes_per_line +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_mediabus 0xc8b28da5 soc_mbus_config_compatible +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_mediabus 0xd4d5a2f0 soc_mbus_get_fmtdesc +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_scale_crop 0x0b1b7672 soc_camera_client_s_crop +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_scale_crop 0x7c5ad409 soc_camera_client_g_rect +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_scale_crop 0xd47d31cc soc_camera_client_scale +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_scale_crop 0xf5f24d17 soc_camera_calc_client_output +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0x04dca738 lirc_unregister_driver +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0x4e1ed70c lirc_dev_fop_poll +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0x5f3140be lirc_register_driver +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0x7a11ae82 lirc_dev_fop_ioctl +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0x7d5d844a lirc_dev_fop_open +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0x9e38ec44 lirc_dev_fop_write +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0x9ec8f5fa lirc_dev_fop_close +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0xcb8bca76 lirc_get_pdata +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0xd3a58d15 lirc_dev_fop_read +EXPORT_SYMBOL drivers/media/rc/rc-core 0x342e0beb ir_raw_handler_register +EXPORT_SYMBOL drivers/media/rc/rc-core 0xf41478a4 ir_raw_handler_unregister +EXPORT_SYMBOL drivers/media/tuners/e4000 0xc9397b35 e4000_attach +EXPORT_SYMBOL drivers/media/tuners/fc0011 0x4044beba fc0011_attach +EXPORT_SYMBOL drivers/media/tuners/fc0012 0x7118c15f fc0012_attach +EXPORT_SYMBOL drivers/media/tuners/fc0013 0x0173b266 fc0013_rc_cal_reset +EXPORT_SYMBOL drivers/media/tuners/fc0013 0x08b59d30 fc0013_rc_cal_add +EXPORT_SYMBOL drivers/media/tuners/fc0013 0x21b18d31 fc0013_attach +EXPORT_SYMBOL drivers/media/tuners/fc2580 0xc9ba7bfa fc2580_attach +EXPORT_SYMBOL drivers/media/tuners/max2165 0x7266c09f max2165_attach +EXPORT_SYMBOL drivers/media/tuners/mc44s803 0xf259a12b mc44s803_attach +EXPORT_SYMBOL drivers/media/tuners/mt2060 0xb90a6e17 mt2060_attach +EXPORT_SYMBOL drivers/media/tuners/mt2266 0x0ebf4491 mt2266_attach +EXPORT_SYMBOL drivers/media/tuners/mxl5005s 0x649d87dc mxl5005s_attach +EXPORT_SYMBOL drivers/media/tuners/qt1010 0xe3506707 qt1010_attach +EXPORT_SYMBOL drivers/media/tuners/tda18212 0x02d7480e tda18212_attach +EXPORT_SYMBOL drivers/media/tuners/tda18218 0xd612aa7e tda18218_attach +EXPORT_SYMBOL drivers/media/tuners/tua9001 0x8b37a0d9 tua9001_attach +EXPORT_SYMBOL drivers/media/tuners/tuner-types 0x0cb4b189 tuners +EXPORT_SYMBOL drivers/media/tuners/tuner-types 0xc2821775 tuner_count +EXPORT_SYMBOL drivers/media/tuners/tuner-xc2028 0x84db77ae xc2028_attach +EXPORT_SYMBOL drivers/media/tuners/tuner_it913x 0x69247a57 it913x_attach +EXPORT_SYMBOL drivers/media/tuners/xc4000 0x787b147e xc4000_attach +EXPORT_SYMBOL drivers/media/tuners/xc5000 0x635b7ed7 xc5000_attach +EXPORT_SYMBOL drivers/media/usb/cx231xx/cx231xx 0x16421e96 cx231xx_unregister_extension +EXPORT_SYMBOL drivers/media/usb/cx231xx/cx231xx 0x4409438e cx231xx_register_extension +EXPORT_SYMBOL drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0x025e5813 dvb_usbv2_generic_rw_locked +EXPORT_SYMBOL drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0x37d3c223 dvb_usbv2_resume +EXPORT_SYMBOL drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0x42ce95db dvb_usbv2_probe +EXPORT_SYMBOL drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0x67bf6e06 dvb_usbv2_generic_write_locked +EXPORT_SYMBOL drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0x80b41cf4 dvb_usbv2_generic_rw +EXPORT_SYMBOL drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0x8fbaf3c2 dvb_usbv2_disconnect +EXPORT_SYMBOL drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0xa933faee dvb_usbv2_reset_resume +EXPORT_SYMBOL drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0xee6b76f1 dvb_usbv2_generic_write +EXPORT_SYMBOL drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0xfb568e73 dvb_usbv2_suspend +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb 0x18813b77 dvb_usb_get_hexline +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb 0x296cfdd5 dvb_usb_device_exit +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb 0x611be987 dvb_usb_generic_write +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb 0x8354f6cc dvb_usb_generic_rw +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb 0xb7c374cc dvb_usb_device_init +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb 0xd602a704 usb_cypress_load_firmware +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb 0xe4dac972 dvb_usb_nec_rc_key_to_event +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-af9005-remote 0x13e247e0 rc_map_af9005_table +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-af9005-remote 0x995f9706 af9005_rc_decode +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-af9005-remote 0xd4e288db rc_map_af9005_table_size +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x3096f03c dibusb_pid_filter_ctrl +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x44f497f5 dibusb2_0_power_ctrl +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x5304bab7 dibusb_dib3000mc_tuner_attach +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x73f5a529 dibusb_i2c_algo +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x74d595a8 dibusb_dib3000mc_frontend_attach +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x77e6e669 dibusb_read_eeprom_byte +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x841595d5 dibusb_streaming_ctrl +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0xad06a5a4 dibusb_power_ctrl +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0xb286b21d dibusb_pid_filter +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0xb47559e0 rc_map_dibusb_table +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0xcc8bcfaf dibusb_rc_query +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0xe2b8ac9f dibusb2_0_streaming_ctrl +EXPORT_SYMBOL drivers/media/usb/em28xx/em28xx 0xaf364754 em28xx_unregister_extension +EXPORT_SYMBOL drivers/media/usb/em28xx/em28xx 0xd1e72b6d em28xx_register_extension +EXPORT_SYMBOL drivers/media/usb/gspca/gspca_main 0x091bb8c6 gspca_suspend +EXPORT_SYMBOL drivers/media/usb/gspca/gspca_main 0x179d24c5 gspca_dev_probe2 +EXPORT_SYMBOL drivers/media/usb/gspca/gspca_main 0x79d2fbe7 gspca_disconnect +EXPORT_SYMBOL drivers/media/usb/gspca/gspca_main 0x85d9e3c5 gspca_coarse_grained_expo_autogain +EXPORT_SYMBOL drivers/media/usb/gspca/gspca_main 0x925c8561 gspca_frame_add +EXPORT_SYMBOL drivers/media/usb/gspca/gspca_main 0x9670af2c gspca_debug +EXPORT_SYMBOL drivers/media/usb/gspca/gspca_main 0x96d51b21 gspca_resume +EXPORT_SYMBOL drivers/media/usb/gspca/gspca_main 0x989a5446 gspca_expo_autogain +EXPORT_SYMBOL drivers/media/usb/gspca/gspca_main 0xbacad47f gspca_dev_probe +EXPORT_SYMBOL drivers/media/usb/tm6000/tm6000 0x5aaa7ebc tm6000_init_digital_mode +EXPORT_SYMBOL drivers/media/usb/tm6000/tm6000 0x9144872d tm6000_register_extension +EXPORT_SYMBOL drivers/media/usb/tm6000/tm6000 0xce91e27d tm6000_unregister_extension +EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-common 0x42c8e001 v4l2_ctrl_next +EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-common 0x4adaf0f3 v4l2_ctrl_query_menu_valid_items +EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-common 0x53c9394f v4l2_ctrl_query_menu +EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-common 0x5f96a661 v4l2_ctrl_check +EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-common 0xabe27502 v4l2_ctrl_query_fill +EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-mem2mem 0x02d832ae v4l2_m2m_job_finish +EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-mem2mem 0x0d6ec491 v4l2_m2m_mmap +EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-mem2mem 0x459e133f v4l2_m2m_get_curr_priv +EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-mem2mem 0xea2ab7bb v4l2_m2m_get_vq +EXPORT_SYMBOL drivers/media/v4l2-core/videobuf-dvb 0x2457b56b videobuf_dvb_find_frontend +EXPORT_SYMBOL drivers/media/v4l2-core/videobuf-dvb 0x317b600b videobuf_dvb_get_frontend +EXPORT_SYMBOL drivers/media/v4l2-core/videobuf-dvb 0x38ead90c videobuf_dvb_dealloc_frontends +EXPORT_SYMBOL drivers/media/v4l2-core/videobuf-dvb 0x3c922dfc videobuf_dvb_unregister_bus +EXPORT_SYMBOL drivers/media/v4l2-core/videobuf-dvb 0xad897970 videobuf_dvb_register_bus +EXPORT_SYMBOL drivers/media/v4l2-core/videobuf-dvb 0xbf96b24e videobuf_dvb_alloc_frontend +EXPORT_SYMBOL drivers/media/v4l2-core/videobuf2-core 0x09e787e8 vb2_querybuf +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x032f8a88 v4l2_async_register_subdev +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x05cc413a v4l2_ctrl_g_ctrl_int64 +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x0614dd5a v4l2_video_std_frame_period +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x06b502de v4l2_ctrl_subdev_log_status +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x08e8dcfd v4l2_ctrl_add_handler +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x09d6173e v4l2_ctrl_handler_setup +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x0caec282 v4l2_querymenu +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x0d0482df v4l2_clk_get_rate +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x123959a1 v4l2_type_names +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x13c2eea1 v4l2_ctrl_add_ctrl +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x140e371b v4l2_of_get_remote_port_parent +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x16244fe5 v4l2_prio_check +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x1a20fa43 v4l2_ctrl_s_ctrl +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x2174aca7 v4l2_ctrl_subscribe_event +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x2342f1ae v4l2_prio_open +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x34c30cf6 video_ioctl2 +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x35384f94 v4l2_g_ctrl +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x35485eae v4l2_ctrl_g_ctrl +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x37315084 video_unregister_device +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x3adbd595 v4l2_field_names +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x3bdd0f94 v4l2_prio_change +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x3db7f213 v4l2_of_get_remote_port +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x409ef8fd v4l2_ctrl_notify +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x40e33598 v4l2_ctrl_grab +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x45363117 v4l2_subdev_init +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x45e1b47f v4l2_ctrl_subdev_subscribe_event +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x495426ee v4l2_ctrl_get_name +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x4ddce9aa v4l2_subdev_g_ctrl +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x5239e310 v4l2_g_ext_ctrls +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x5241a2f6 v4l2_ctrl_radio_filter +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x52595659 v4l2_async_unregister_subdev +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x54d70421 v4l2_clk_register +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x60beea97 v4l2_subdev_querymenu +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x6289b7a4 v4l2_subdev_s_ctrl +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x62e1ddb9 v4l2_subdev_s_ext_ctrls +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x6a16eb51 v4l2_ctrl_modify_range +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x6b9ee25d v4l2_ctrl_cluster +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x6d482106 v4l2_subdev_try_ext_ctrls +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x6f159cb9 v4l2_clk_unregister +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x72bbbae1 v4l2_ctrl_new_std_menu_items +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x7395f16d video_device_alloc +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x7a3cd015 v4l2_ctrl_get_menu +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x7f923f2a v4l2_of_parse_endpoint +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x8106095a v4l2_prio_max +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x832554e4 v4l2_ctrl_s_ctrl_int64 +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x85d21a52 v4l2_async_notifier_register +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x87d22858 v4l2_ctrl_new_std +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x87f8140a v4l2_ctrl_handler_log_status +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x894e65fa v4l2_ctrl_sub_ev_ops +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x950075ec v4l2_clk_put +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x98890406 v4l2_ctrl_log_status +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xa31f6288 v4l2_ctrl_handler_init_class +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xa48ac7c6 video_device_release_empty +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xa95c169c v4l2_clk_get +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xa97d8dc6 video_devdata +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xaea1bfcf v4l2_ctrl_activate +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xb3afa640 v4l2_ctrl_poll +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xb44b7412 v4l2_ctrl_handler_free +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xb5cf1abb __video_register_device +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xb71481a3 v4l2_ctrl_find +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xb77b0159 v4l2_prio_init +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xb90cbedf v4l2_of_get_next_endpoint +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xbac4a225 v4l2_ctrl_fill +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xbc5671dc v4l_printk_ioctl +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xbe47ddf9 v4l2_queryctrl +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xc12cf8f8 v4l2_ctrl_replace +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xc24935b5 v4l2_s_ext_ctrls +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xc256ab25 v4l2_s_ctrl +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xc75bd551 v4l2_ctrl_new_int_menu +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xcb4d8f2a v4l2_clk_disable +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xcba96eff video_device_release +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xcda04a5b v4l2_prio_close +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xd2bdccbd v4l2_ctrl_new_std_menu +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xe28bc339 v4l2_subdev_g_ext_ctrls +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xe2b92059 v4l2_video_std_construct +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xe68bff11 v4l2_clk_enable +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xe6fce6f2 v4l2_ctrl_merge +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xeaa7e027 v4l2_subdev_queryctrl +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xedcdb4ea v4l2_async_notifier_unregister +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xf3251e7b v4l2_norm_to_name +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xf58b561f v4l2_ctrl_auto_cluster +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xfbdcfc30 v4l2_ctrl_new_custom +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xfe9ba7ac v4l2_try_ext_ctrls +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xff8443a4 v4l2_clk_set_rate +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xffbda38a video_usercopy +EXPORT_SYMBOL drivers/memstick/core/memstick 0x05330479 memstick_resume_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0x06c955e6 memstick_init_req +EXPORT_SYMBOL drivers/memstick/core/memstick 0x09ee3c9a memstick_remove_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0x1ef0edff memstick_next_req +EXPORT_SYMBOL drivers/memstick/core/memstick 0x27b4969b memstick_new_req +EXPORT_SYMBOL drivers/memstick/core/memstick 0x51a7d960 memstick_add_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0x63b16d80 memstick_alloc_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0x7bb704b7 memstick_init_req_sg +EXPORT_SYMBOL drivers/memstick/core/memstick 0x8856e01b memstick_set_rw_addr +EXPORT_SYMBOL drivers/memstick/core/memstick 0x8e4bebf9 memstick_register_driver +EXPORT_SYMBOL drivers/memstick/core/memstick 0x90e3eb83 memstick_suspend_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0xb14fd93b memstick_detect_change +EXPORT_SYMBOL drivers/memstick/core/memstick 0xc0fbfac4 memstick_unregister_driver +EXPORT_SYMBOL drivers/memstick/core/memstick 0xdc505975 memstick_free_host +EXPORT_SYMBOL drivers/mfd/cros_ec 0x6e132a20 cros_ec_suspend +EXPORT_SYMBOL drivers/mfd/cros_ec 0x87b82bd5 cros_ec_register +EXPORT_SYMBOL drivers/mfd/cros_ec 0x92be7641 cros_ec_resume +EXPORT_SYMBOL drivers/mfd/cros_ec 0x9460daf9 cros_ec_prepare_tx +EXPORT_SYMBOL drivers/mfd/cros_ec 0xe5464a73 cros_ec_remove +EXPORT_SYMBOL drivers/mfd/htc-pasic3 0xcb55374d pasic3_read_register +EXPORT_SYMBOL drivers/mfd/htc-pasic3 0xf9961ddf pasic3_write_register +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x1258f4ae mc13xxx_irq_status +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x15b4f8ea mc13xxx_irq_ack +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x2520880f mc13xxx_irq_request +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x25f4312b mc13xxx_irq_unmask +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x3d065ec7 mc13xxx_get_flags +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x78129c8c mc13xxx_irq_free +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x79e510c1 mc13xxx_reg_write +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x8aac5657 mc13xxx_reg_rmw +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x9d6bbca2 mc13xxx_reg_read +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0xa97506a0 mc13xxx_unlock +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0xd793fa30 mc13xxx_lock +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0xde25df80 mc13xxx_irq_mask +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0xec50bf03 mc13xxx_irq_request_nounmask +EXPORT_SYMBOL drivers/mfd/tps6105x 0x137678a2 tps6105x_mask_and_set +EXPORT_SYMBOL drivers/mfd/tps6105x 0x27423a9e tps6105x_set +EXPORT_SYMBOL drivers/mfd/tps6105x 0xdface930 tps6105x_get +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 0x944bbe9f ad_dpot_remove +EXPORT_SYMBOL drivers/misc/ad525x_dpot 0xe3ebb9f5 ad_dpot_probe +EXPORT_SYMBOL drivers/misc/altera-stapl/altera-stapl 0x8a05ed90 altera_init +EXPORT_SYMBOL drivers/misc/atmel-ssc 0x0accd268 ssc_request +EXPORT_SYMBOL drivers/misc/atmel-ssc 0x83d6e14b ssc_free +EXPORT_SYMBOL drivers/misc/atmel_pwm 0x0e9755b9 pwm_channel_free +EXPORT_SYMBOL drivers/misc/atmel_pwm 0x5a8b82f9 pwm_channel_handler +EXPORT_SYMBOL drivers/misc/atmel_pwm 0x5d5c2951 pwm_clk_free +EXPORT_SYMBOL drivers/misc/atmel_pwm 0x6a5e1f70 pwm_channel_alloc +EXPORT_SYMBOL drivers/misc/atmel_pwm 0x73330c97 pwm_clk_alloc +EXPORT_SYMBOL drivers/misc/atmel_pwm 0xeb7f2c6f __pwm_channel_onoff +EXPORT_SYMBOL drivers/misc/c2port/core 0x80376ccb c2port_device_register +EXPORT_SYMBOL drivers/misc/c2port/core 0xce27b880 c2port_device_unregister +EXPORT_SYMBOL drivers/mmc/host/dw_mmc 0x56a4625a dw_mci_resume +EXPORT_SYMBOL drivers/mmc/host/dw_mmc 0x8aa39b3b dw_mci_remove +EXPORT_SYMBOL drivers/mmc/host/dw_mmc 0xbd880670 dw_mci_probe +EXPORT_SYMBOL drivers/mmc/host/dw_mmc 0xf3a74dc5 dw_mci_suspend +EXPORT_SYMBOL drivers/mmc/host/tmio_mmc_core 0x36fd4c79 tmio_mmc_host_probe +EXPORT_SYMBOL drivers/mmc/host/tmio_mmc_core 0x378f2335 tmio_mmc_irq +EXPORT_SYMBOL drivers/mmc/host/tmio_mmc_core 0x6150a9a1 tmio_mmc_host_suspend +EXPORT_SYMBOL drivers/mmc/host/tmio_mmc_core 0x6d3deee9 tmio_mmc_sdcard_irq +EXPORT_SYMBOL drivers/mmc/host/tmio_mmc_core 0x7a6fd700 tmio_mmc_sdio_irq +EXPORT_SYMBOL drivers/mmc/host/tmio_mmc_core 0x7ab9e76f tmio_mmc_host_runtime_resume +EXPORT_SYMBOL drivers/mmc/host/tmio_mmc_core 0x8832fb9f tmio_mmc_host_resume +EXPORT_SYMBOL drivers/mmc/host/tmio_mmc_core 0x9eda91c8 tmio_mmc_host_remove +EXPORT_SYMBOL drivers/mmc/host/tmio_mmc_core 0xdc1fd0a1 tmio_mmc_host_runtime_suspend +EXPORT_SYMBOL drivers/mmc/host/tmio_mmc_core 0xf02062dd tmio_mmc_card_detect_irq +EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0x7549e46a cfi_varsize_frob +EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0xc1fb3f08 cfi_read_pri +EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0xc2140966 cfi_fixup +EXPORT_SYMBOL drivers/mtd/chips/gen_probe 0x9fef43cb mtd_do_chip_probe +EXPORT_SYMBOL drivers/mtd/lpddr/lpddr_cmds 0x6612f916 lpddr_cmdset +EXPORT_SYMBOL drivers/mtd/nand/denali 0x31fd3561 denali_remove +EXPORT_SYMBOL drivers/mtd/nand/denali 0xe0ccd2b8 denali_init +EXPORT_SYMBOL drivers/mtd/onenand/onenand 0x0375a505 flexonenand_region +EXPORT_SYMBOL drivers/mtd/onenand/onenand 0x550f7346 onenand_scan_bbt +EXPORT_SYMBOL drivers/mtd/onenand/onenand 0xae49811c onenand_addr +EXPORT_SYMBOL drivers/mtd/onenand/onenand 0xaf4df9e5 onenand_default_bbt +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x1301c638 hdlcdrv_transmitter +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x280146cd hdlcdrv_register +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x52440a0c hdlcdrv_unregister +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x6234ae2b hdlcdrv_arbitrate +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x88c16059 hdlcdrv_receiver +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x00877a02 sirdev_get_instance +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x027e0fe1 irda_unregister_dongle +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x063f70f5 sirdev_put_instance +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x184a76d8 sirdev_raw_write +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x6a16865e irda_register_dongle +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x6c8284f6 sirdev_receive +EXPORT_SYMBOL drivers/net/irda/sir-dev 0xdb994898 sirdev_set_dtr_rts +EXPORT_SYMBOL drivers/net/irda/sir-dev 0xebf69880 sirdev_write_complete +EXPORT_SYMBOL drivers/net/irda/sir-dev 0xed40889a sirdev_raw_read +EXPORT_SYMBOL drivers/net/irda/sir-dev 0xf997c38d sirdev_set_dongle +EXPORT_SYMBOL drivers/net/mii 0x439e1376 generic_mii_ioctl +EXPORT_SYMBOL drivers/net/mii 0x4c4bfd04 mii_check_link +EXPORT_SYMBOL drivers/net/mii 0x5093998c mii_link_ok +EXPORT_SYMBOL drivers/net/mii 0x5e26faf7 mii_ethtool_sset +EXPORT_SYMBOL drivers/net/mii 0x65cf7afc mii_ethtool_gset +EXPORT_SYMBOL drivers/net/mii 0x72f81ecf mii_nway_restart +EXPORT_SYMBOL drivers/net/mii 0x961d00b9 mii_check_gmii_support +EXPORT_SYMBOL drivers/net/mii 0xaef07963 mii_check_media +EXPORT_SYMBOL drivers/net/ppp/pppox 0x7996acfd register_pppox_proto +EXPORT_SYMBOL drivers/net/ppp/pppox 0xdb2ded1a pppox_unbind_sock +EXPORT_SYMBOL drivers/net/ppp/pppox 0xe0ff7a18 unregister_pppox_proto +EXPORT_SYMBOL drivers/net/ppp/pppox 0xf606c908 pppox_ioctl +EXPORT_SYMBOL drivers/net/usb/usbnet 0x28f79083 usbnet_device_suggests_idle +EXPORT_SYMBOL drivers/net/usb/usbnet 0x6a385d90 usbnet_manage_power +EXPORT_SYMBOL drivers/net/usb/usbnet 0x9d1406a9 usbnet_link_change +EXPORT_SYMBOL drivers/net/wan/hdlc 0x0367fbb9 hdlc_start_xmit +EXPORT_SYMBOL drivers/net/wan/hdlc 0x254a796a unregister_hdlc_device +EXPORT_SYMBOL drivers/net/wan/hdlc 0x3043050a attach_hdlc_protocol +EXPORT_SYMBOL drivers/net/wan/hdlc 0x61561719 hdlc_open +EXPORT_SYMBOL drivers/net/wan/hdlc 0x6728d28e hdlc_change_mtu +EXPORT_SYMBOL drivers/net/wan/hdlc 0x720c527c unregister_hdlc_protocol +EXPORT_SYMBOL drivers/net/wan/hdlc 0x7f729437 detach_hdlc_protocol +EXPORT_SYMBOL drivers/net/wan/hdlc 0x80e1c7d9 hdlc_ioctl +EXPORT_SYMBOL drivers/net/wan/hdlc 0xc4745924 alloc_hdlcdev +EXPORT_SYMBOL drivers/net/wan/hdlc 0xeca23c36 hdlc_close +EXPORT_SYMBOL drivers/net/wan/hdlc 0xef33bb2b register_hdlc_protocol +EXPORT_SYMBOL drivers/net/wimax/i2400m/i2400m 0x815cd1e6 i2400m_unknown_barker +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x0c41516c ath_hw_get_listen_time +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x319c6026 ath_is_49ghz_allowed +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x4e18a66b ath_hw_setbssidmask +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x4e2481d5 ath_is_world_regd +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x53358ce3 ath_regd_get_band_ctl +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x7a8c8158 ath_regd_init +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xb7c24671 ath_key_delete +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xb93fdc1e ath_hw_keyreset +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xbbc5052f ath_printk +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xbea50e09 ath_key_config +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xd8175412 ath_reg_notifier_apply +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xef5935ae ath_hw_cycle_counters_update +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xefacc8ef ath_rxbuf_alloc +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x04ffc473 ath10k_core_unregister +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x435867ff ath10k_core_register +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x67106833 ath10k_core_target_suspend +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x8246be6c ath10k_err +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x895f9dc2 ath10k_info +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x91e7afca ath10k_core_destroy +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0xaf096710 ath10k_warn +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0xd7b2231d ath10k_core_create +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0xf3732256 ath10k_core_target_resume +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x0199ec46 ath6kl_info +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x187f2ef6 ath6kl_core_create +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x27cf1694 ath6kl_warn +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x3cb7ff8d ath6kl_stop_txrx +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x3f29b0c3 ath6kl_core_rx_complete +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x4c6ddcb4 ath6kl_err +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x4e1380ee ath6kl_printk +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x6abc533e ath6kl_core_destroy +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x8942d231 ath6kl_core_cleanup +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x8d4bc720 ath6kl_hif_intr_bh_handler +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x91cfb84a ath6kl_hif_rw_comp_handler +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0xa3f92075 ath6kl_cfg80211_resume +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0xc9e5a090 ath6kl_cfg80211_suspend +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0xdcd8869a ath6kl_core_tx_complete +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0xe3c9daa6 ath6kl_core_init +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k 0x0f3c6c00 ath9k_hw_wow_apply_pattern +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k 0x91fc76f5 ath9k_hw_wow_event_to_string +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k 0xa2b7c203 ath9k_hw_wow_enable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k 0xf4458ad7 ath9k_hw_wow_wakeup +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x1d896766 ath9k_cmn_update_ichannel +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x2ac264f8 ath9k_cmn_get_hw_crypto_keytype +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x3219abc2 ath9k_cmn_update_txpow +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x5bcbb9ab ath9k_cmn_get_curchannel +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x762f3537 ath9k_cmn_init_crypto +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xd2981357 ath9k_cmn_count_streams +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x04433af0 ath9k_hw_intrpend +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x08bdfb01 ath9k_hw_btcoex_disable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x0f82a67c ath9k_hw_set_rx_bufsize +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x1435d2ec ath9k_hw_setantenna +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x19ff07c6 ar9003_mci_state +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x1e77299a ar9003_mci_set_bt_version +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2233c32b ath9k_hw_reset_tsf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x25b9d59a ath9k_hw_enable_interrupts +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2a9059cb ath9k_hw_setrxabort +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2d13cd03 ar9003_paprd_enable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2d26287a ath9k_hw_set_txpowerlimit +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2edbf809 ar9003_mci_get_interrupt +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x34bfa68c ath9k_hw_putrxbuf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x3837bd80 ath9k_hw_getchan_noise +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x388e5e1b ath9k_hw_check_alive +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x38eb7a8f ar9003_mci_get_next_gpm_offset +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x39cee56a ath9k_hw_gettsf32 +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x3abecca6 ath9k_hw_get_txq_props +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x3c3cc67f ath9k_hw_puttxbuf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x484ce3ee ar9003_paprd_is_done +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x48d28bd4 ath9k_hw_gen_timer_start +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x4a5af24b ar9003_hw_bb_watchdog_dbg_info +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x4c730b6d ath9k_hw_gpio_get +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x4ed15b2d ath9k_hw_reset_calvalid +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x4f5b5bea ath9k_hw_deinit +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x4f672e1c ath9k_hw_gen_timer_stop +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x532852e8 ath9k_hw_btcoex_init_mci +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x5576dd2b ar9003_paprd_setup_gain_table +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x5b9cf1b2 ar9003_mci_setup +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x5bd85259 ar9003_paprd_init_table +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x5dbf0eeb ath9k_hw_beaconq_setup +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x616de297 ath9k_hw_resettxqueue +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x667db57f ath9k_hw_btcoex_init_2wire +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x683c76f8 ath9k_hw_phy_disable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x6b757a8b ath9k_hw_abortpcurecv +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x6e724942 ar9003_is_paprd_enabled +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7532610a ath9k_hw_disable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x788136de ath9k_hw_btcoex_init_scheme +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x78fbe860 ath9k_hw_setpower +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7948d9d0 ath9k_hw_setopmode +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x79b2cf9c ath9k_hw_init +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7e3cd976 ath9k_hw_set_txq_props +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7eda19b9 ath9k_hw_setmcastfilter +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7fd275bb ath9k_hw_numtxpending +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x82974bf0 ath9k_hw_rxprocdesc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x88285862 ath_gen_timer_isr +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x888f804c ath9k_hw_write_associd +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x8a77f6b8 ath9k_hw_name +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x8b49d583 ar9003_get_pll_sqsum_dvc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x8f6f3ca0 ath9k_hw_gettsf64 +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x900775cd ath9k_hw_ani_monitor +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x909007f9 ath9k_hw_computetxtime +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x94ab9142 ath9k_hw_kill_interrupts +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x97956650 ath9k_hw_updatetxtriglevel +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x98eef192 ath9k_hw_btcoex_enable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x9a8b0069 ar9003_mci_send_message +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x9fcd73aa ar9003_paprd_populate_single_table +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa1e70eff ath9k_hw_abort_tx_dma +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa41a20ac ar9003_hw_disable_phy_restart +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa54b16cc ath9k_hw_btcoex_init_3wire +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa833a823 ath9k_hw_wait +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xaf286ff1 ath9k_hw_gettxbuf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xaf4d7cec ath9k_hw_cfg_output +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb078e25b ath9k_hw_init_global_settings +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb46d6c9a ath9k_hw_set_gpio +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb932d8c4 ath9k_hw_getnf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xbac21d8c ath9k_hw_setup_statusring +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xbb6a5789 ath9k_hw_set_interrupts +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xbbb40ff9 ath9k_hw_stopdmarecv +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc31f26a4 ath9k_hw_setuprxdesc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc3c8556f ath9k_hw_disable_interrupts +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc4c5c268 ath9k_hw_addrxbuf_edma +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc531fa62 ath9k_hw_startpcureceive +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc81f3deb ath9k_hw_cfg_gpio_input +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xcad54c6f ath9k_hw_btcoex_set_weight +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xcfa2af62 ar9003_mci_send_wlan_channels +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xcfda2b24 ath9k_hw_init_btcoex_hw +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd051c4df ath9k_hw_process_rxdesc_edma +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd1ff54ed ath9k_hw_beaconinit +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd45f39e1 ath9k_hw_disable_mib_counters +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd5a741c4 ath9k_hw_setrxfilter +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd6998a99 ath9k_hw_txstart +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd782b251 ath9k_hw_set_tsfadjust +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd945e7a7 ath9k_hw_getrxfilter +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd9c26392 ath9k_hw_settsf64 +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xdc50f499 ath9k_hw_setuptxqueue +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xdc605ab7 ath9k_hw_btcoex_set_concur_txprio +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xdebaf1ae ath9k_hw_releasetxqueue +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe17f05dd ath9k_hw_stop_dma_queue +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe36b2ea7 ath9k_hw_btcoex_bt_stomp +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe5653ee0 ath_gen_timer_alloc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe5e618dd ar9003_mci_cleanup +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe8e5f98a ath9k_hw_set_sta_beacon_timers +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe92187e5 ath9k_hw_bstuck_nfcal +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf94005b9 ath9k_hw_reset +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xfbf14289 ar9003_paprd_create_curve +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xfd9e26f9 ath_gen_timer_free +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmfmac/brcmfmac 0x7da5e2ac brcmf_sdio_remove +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmfmac/brcmfmac 0xebf0805b brcmf_sdio_probe +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x02dc3a53 brcmu_pkt_buf_free_skb +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x03dbaf2b brcmu_pktq_flush +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x2a8b0b5c brcmu_pktq_pflush +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x2dc227f8 brcmu_d11_attach +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x4b37d81a brcmu_pktq_init +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x6940b41e brcmu_pktq_pdeq +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x6cb45737 brcmu_pktq_mdeq +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x7fba5ac6 brcmu_pktq_pdeq_tail +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x92b062e4 brcmu_pktq_pdeq_match +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0xaf7d1b39 brcmu_pktq_peek_tail +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0xc11ec3ba brcmu_pktq_penq +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0xc70bafec brcmu_pktq_penq_head +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0xc8de1f80 brcmu_pktq_mlen +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0xd00214e0 brcmu_pkt_buf_get_skb +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x0ad69602 hostap_set_multicast_list_queue +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x0c5740e9 hostap_set_string +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x108af9ba hostap_set_hostapd_sta +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x2205107f hostap_master_start_xmit +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x2cbcffd2 hostap_set_roaming +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x30a35726 hostap_80211_rx +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x3194a822 hostap_set_encryption +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x337c2d94 hostap_handle_sta_tx_exc +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x6fbf57d6 hostap_set_auth_algs +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x6ff93beb hostap_80211_ops +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x9093656d hostap_init_ap_proc +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x94e56e24 hostap_init_proc +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x9b8b27d1 hostap_info_init +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x9e6ba474 hostap_add_interface +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xa12ad27f hostap_dump_tx_header +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xaa0d4656 hostap_setup_dev +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xaed878ec hostap_info_process +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 0xb9e8739b hostap_get_porttype +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xbf3762e4 hostap_remove_interface +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xc854744d hostap_free_data +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xca230526 prism2_update_comms_qual +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xd4ae697f hostap_set_antsel +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xdbe4ab76 hostap_init_data +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xe2c99dea hostap_set_word +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xe75be825 hostap_remove_proc +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xf0f214ae hostap_check_sta_fw_version +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xfa1a907e hostap_set_hostapd +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x05a806c3 rtl92c_phy_set_txpower_level +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x05aa7149 _rtl92c_phy_rf_serial_write +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x0801b482 _rtl92c_phy_txpwr_idx_to_dbm +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x0f40c185 rtl92c_download_fw +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x1309d990 rtl92c_phy_set_rfpath_switch +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x14ab5998 rtl92c_dm_init +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x15052c6f rtl92c_phy_sw_chnl +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x16f7fd43 _rtl92c_store_pwrIndex_diffrate_offset +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x1d7692ee _rtl92c_phy_dbm_to_txpwr_Idx +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x2480e432 rtl92c_phy_sw_chnl_callback +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x264eb2d4 rtl92c_phy_set_bw_mode +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x274beb42 rtl92c_phy_iq_calibrate +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x2faa454a rtl92c_dm_init_rate_adaptive_mask +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x3bfe947a rtl92c_dm_write_dig +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x3cd6de6b _rtl92c_phy_set_rf_sleep +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x4a109e5f rtl8192_phy_check_is_legal_rfpath +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x4a80e28b _rtl92c_phy_fw_rf_serial_read +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x4b586326 rtl92c_set_fw_joinbss_report_cmd +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x5421c1c0 rtl92c_phy_set_io_cmd +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x54a47797 rtl92c_firmware_selfreset +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x5bae5dba rtl92c_dm_init_edca_turbo +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x5c3b2680 rtl92c_set_fw_rsvdpagepkt +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x67192880 rtl92ce_phy_set_rf_on +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x6f67a5bd rtl92c_phy_set_io +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x78f0044f rtl92c_phy_rf_config +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x7c250c16 rtl92c_set_fw_pwrmode_cmd +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x7de5e1ac rtl92c_dm_check_txpower_tracking +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x8f09a7f8 _rtl92c_phy_init_bb_rf_register_definition +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x99c39de2 rtl92c_phy_update_txpower_dbm +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xa79c481b rtl92c_phy_ap_calibrate +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xa919fd67 _rtl92c_phy_bb8192c_config_parafile +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xab1e9cf0 rtl92c_dm_bt_coexist +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xad960aa1 rtl92c_phy_scan_operation_backup +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xb3314d48 _rtl92c_phy_calculate_bit_shift +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xb6b90586 rtl92c_dm_rf_saving +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xb7a04305 rtl92c_dm_watchdog +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xbecee38c rtl92c_phy_query_bb_reg +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xc100d62c _rtl92c_phy_fw_rf_serial_write +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xc4a95865 rtl92c_phy_set_bb_reg +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xd3ad62ea rtl92c_phy_lc_calibrate +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xdf2c201f rtl92c_fill_h2c_cmd +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xe55192b6 _rtl92c_phy_rf_serial_read +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xfc5e0fb9 rtl92c_bt_rssi_state_change +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl_usb 0x3522fc8f rtl_usb_resume +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl_usb 0x78b0fb65 rtl_usb_disconnect +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl_usb 0x92d899a1 rtl_usb_probe +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl_usb 0xb0cecd3d rtl_usb_suspend +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x17232c24 rtl_efuse_shadow_map_update +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x178a1a5f rtl_ps_disable_nic +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x19c46846 rtl_cam_delete_one_entry +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x207fbb70 rtl_evm_db_to_percentage +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x39db32e7 efuse_read_1byte +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x666ba828 rtl_send_smps_action +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x70345886 rtl_cam_get_free_entry +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x7197aa0b rtl_cam_empty_entry +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x731e4c73 rtl_cam_del_entry +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x79188a02 rtl_query_rxpwrpercentage +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x7ad6bca6 rtl_signal_scale_mapping +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x8537a8b4 rtl_ps_set_rf_state +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x89738fbd rtl_process_phyinfo +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x91af38cf rtl_fw_cb +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xa0f46e96 rtl_ps_enable_nic +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xacca4609 rtl_cam_add_one_entry +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xb3baa4ba rtl_cam_mark_invalid +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xc3fc0904 rtl_get_tcb_desc +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xd5200a99 rtlwifi_rate_mapping +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xea545380 rtl_cam_reset_all_entry +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xf5d217a0 rtl_init_rfkill +EXPORT_SYMBOL drivers/net/wireless/ti/wlcore/wlcore 0x03df7e55 wlcore_tx_complete +EXPORT_SYMBOL drivers/net/wireless/ti/wlcore/wlcore 0x76dd7309 wl1271_free_tx_id +EXPORT_SYMBOL drivers/net/wireless/ti/wlcore/wlcore 0xbc396ec1 wlcore_calc_packet_alignment +EXPORT_SYMBOL drivers/net/wireless/ti/wlcore/wlcore 0xee4b68ad wl12xx_is_dummy_packet +EXPORT_SYMBOL drivers/nfc/microread/microread 0x1d655c8b microread_probe +EXPORT_SYMBOL drivers/nfc/microread/microread 0x23806911 microread_remove +EXPORT_SYMBOL drivers/nfc/pn544/pn544 0x71dcffef pn544_hci_probe +EXPORT_SYMBOL drivers/nfc/pn544/pn544 0xa8bf231b pn544_hci_remove +EXPORT_SYMBOL drivers/parport/parport 0x13724e84 parport_register_driver +EXPORT_SYMBOL drivers/parport/parport 0x219decd4 parport_wait_event +EXPORT_SYMBOL drivers/parport/parport 0x2605de23 parport_register_port +EXPORT_SYMBOL drivers/parport/parport 0x27204e8e parport_release +EXPORT_SYMBOL drivers/parport/parport 0x29292871 parport_ieee1284_ecp_write_data +EXPORT_SYMBOL drivers/parport/parport 0x2a04d4f0 parport_unregister_driver +EXPORT_SYMBOL drivers/parport/parport 0x2ada64ec parport_find_number +EXPORT_SYMBOL drivers/parport/parport 0x2e314ee8 parport_negotiate +EXPORT_SYMBOL drivers/parport/parport 0x38738b08 parport_ieee1284_epp_write_addr +EXPORT_SYMBOL drivers/parport/parport 0x493324c9 parport_register_device +EXPORT_SYMBOL drivers/parport/parport 0x4afa29c3 parport_unregister_device +EXPORT_SYMBOL drivers/parport/parport 0x4d2a941b parport_ieee1284_interrupt +EXPORT_SYMBOL drivers/parport/parport 0x51e56a52 parport_announce_port +EXPORT_SYMBOL drivers/parport/parport 0x538cef42 parport_write +EXPORT_SYMBOL drivers/parport/parport 0x5e3a3912 parport_irq_handler +EXPORT_SYMBOL drivers/parport/parport 0x7c3b9392 parport_ieee1284_write_compat +EXPORT_SYMBOL drivers/parport/parport 0x7ca21c31 parport_set_timeout +EXPORT_SYMBOL drivers/parport/parport 0x8d523acf parport_claim_or_block +EXPORT_SYMBOL drivers/parport/parport 0x9287802e parport_get_port +EXPORT_SYMBOL drivers/parport/parport 0xaeeac8b8 parport_ieee1284_read_nibble +EXPORT_SYMBOL drivers/parport/parport 0xb5cfc111 parport_wait_peripheral +EXPORT_SYMBOL drivers/parport/parport 0xc2228404 parport_ieee1284_epp_read_addr +EXPORT_SYMBOL drivers/parport/parport 0xc7373c9b parport_ieee1284_ecp_write_addr +EXPORT_SYMBOL drivers/parport/parport 0xcc880865 parport_remove_port +EXPORT_SYMBOL drivers/parport/parport 0xceb008a9 parport_ieee1284_read_byte +EXPORT_SYMBOL drivers/parport/parport 0xd3fc3344 parport_find_base +EXPORT_SYMBOL drivers/parport/parport 0xd66d9fe2 parport_ieee1284_epp_write_data +EXPORT_SYMBOL drivers/parport/parport 0xdf9430e8 parport_read +EXPORT_SYMBOL drivers/parport/parport 0xe086b28d parport_ieee1284_epp_read_data +EXPORT_SYMBOL drivers/parport/parport 0xe0fb7e55 parport_ieee1284_ecp_read_data +EXPORT_SYMBOL drivers/parport/parport 0xe12c31f7 parport_claim +EXPORT_SYMBOL drivers/parport/parport 0xe52d27e9 parport_put_port +EXPORT_SYMBOL drivers/parport/parport_pc 0x7d0a1cbb parport_pc_probe_port +EXPORT_SYMBOL drivers/parport/parport_pc 0xb54143a4 parport_pc_unregister_port +EXPORT_SYMBOL drivers/remoteproc/remoteproc 0x3f6a0249 rproc_shutdown +EXPORT_SYMBOL drivers/remoteproc/remoteproc 0x619d3532 rproc_da_to_va +EXPORT_SYMBOL drivers/remoteproc/remoteproc 0x6c49137f rproc_add +EXPORT_SYMBOL drivers/remoteproc/remoteproc 0x7ff3b18d rproc_vq_interrupt +EXPORT_SYMBOL drivers/remoteproc/remoteproc 0x96c52380 rproc_put +EXPORT_SYMBOL drivers/remoteproc/remoteproc 0x97a2e9a6 rproc_del +EXPORT_SYMBOL drivers/remoteproc/remoteproc 0xb17d6edb rproc_alloc +EXPORT_SYMBOL drivers/remoteproc/remoteproc 0xca682078 rproc_report_crash +EXPORT_SYMBOL drivers/remoteproc/remoteproc 0xdf7d6a92 rproc_boot +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x2e6965e9 fcoe_ctlr_link_up +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x54ddc5a5 fcoe_ctlr_destroy +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x568b91ba fcoe_ctlr_els_send +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x9f5dde8c fcoe_ctlr_init +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xa363b6e2 fcoe_transport_attach +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xb869b473 fcoe_ctlr_link_down +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xdce7401c fcoe_ctlr_set_fip_mode +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xe33a78af fcoe_fcf_get_selected +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xe901c873 fcoe_ctlr_recv +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xe9240724 fcoe_transport_detach +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xf80b5310 fcoe_ctlr_destroy_store +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xfb0d0616 fcoe_ctlr_recv_flogi +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x026db5cb fc_frame_alloc_fill +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x062c83c1 fc_eh_host_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x06cbdba2 fc_elsct_send +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x07ed1374 fc_lport_bsg_request +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x0b4a8f1a fc_get_host_stats +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x134d5319 fc_exch_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x15771e05 fc_linkup +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x192d02e3 fc_rport_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x1e6990bd fc_lport_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x22b90986 fc_exch_mgr_del +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x35c52189 fc_fabric_login +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x36e5fbaf fc_cpu_mask +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x4418b659 fc_exch_mgr_list_clone +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x4e936330 fc_lport_config +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x4ef9a3a8 fc_fcp_destroy +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x4eff2af7 _fc_frame_alloc +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x50b7fd05 fc_disc_config +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x58dc5aad fc_exch_mgr_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x5eba4154 fc_queuecommand +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x64b3d37d fc_fill_hdr +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x6968a906 fc_fabric_logoff +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x6b56242c fc_exch_update_stats +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x7271f20c fc_get_host_speed +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x75a1af25 fc_elsct_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x8399913d fc_vport_setlink +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x8a33133b fc_vport_id_lookup +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x9112c500 fc_set_mfs +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x978ac719 fc_exch_mgr_add +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xa56544b3 fc_linkdown +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xa9e68fa4 fc_fc4_deregister_provider +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xb6367db6 fc_frame_crc_check +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xb6a35a70 fc_get_host_port_state +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xbbcbdb0c fc_disc_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xc1bdb90a fc_lport_iterate +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xc52dbb65 fc_lport_logo_resp +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xc5741d92 fc_lport_notifier_head +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xc8b1a4c1 fc_lport_set_local_id +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xcb99a8fb fc_slave_alloc +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xd235a669 fc_change_queue_depth +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xd2c4f233 fc_eh_device_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xd49ce8cd fc_lport_destroy +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xd4f5a14f fc_fc4_register_provider +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xd5d7ce5e fc_eh_abort +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xd8996961 fc_change_queue_type +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xda59d7f3 fc_lport_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xe2d1274a fc_exch_recv +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xe3debf3b fc_set_rport_loss_tmo +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xe4169dff fc_fill_reply_hdr +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xe6cb9b4b fc_rport_terminate_io +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xebaa314c fc_exch_mgr_free +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xf0dac055 fc_exch_mgr_alloc +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xf164fedb fc_lport_flogi_resp +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xf547cd56 fc_fcp_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xf6a95a4b libfc_vport_create +EXPORT_SYMBOL drivers/scsi/libsas/libsas 0x4d4d6e89 sas_resume_ha +EXPORT_SYMBOL drivers/scsi/libsas/libsas 0x8a87e724 try_test_sas_gpio_gp_bit +EXPORT_SYMBOL drivers/scsi/libsas/libsas 0xb34a7f1f sas_wait_eh +EXPORT_SYMBOL drivers/scsi/libsas/libsas 0xe8e98bad sas_prep_resume_ha +EXPORT_SYMBOL drivers/scsi/libsas/libsas 0xed41595b sas_suspend_ha +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x01d36ebb osd_auto_detect_ver +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x07433446 osd_end_request +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x0c17edb1 osd_sec_init_nosec_doall_caps +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x0d8df88c osd_dev_init +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x19889078 osd_req_flush_object +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x1c15df83 osd_req_flush_partition +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x213f5d7f osd_req_format +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x297e41d6 osd_req_remove_object +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x30dd6e30 osd_req_add_get_attr_page +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x32d1e0df osd_req_list_collection_objects +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x335a5866 osd_req_set_attributes +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x39514c7e osd_req_flush_collection +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x3c0e9000 osd_req_list_dev_partitions +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x3da718a1 osd_req_add_get_attr_list +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x3e86f6c0 osd_req_flush_obsd +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x42ade683 osd_req_remove_partition +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x5ab60dc5 osd_req_write_kern +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x5e1bc1ab osd_execute_request +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x65059d7d osd_dev_fini +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x73772d76 osd_req_get_attributes +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x7ca880b2 osd_req_decode_get_attr_list +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x8ac62b38 osd_req_write_sg_kern +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x93a12c4c osd_req_list_partition_objects +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x9a7a9a79 osd_req_list_partition_collections +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x9b3797c6 osd_execute_request_async +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xa6ba33b0 osd_req_write_sg +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xa6bf609d osd_start_request +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xaf27fee8 osd_finalize_request +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xaff4d9be osd_req_read_kern +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xb4f413a5 osd_req_read_sg_kern +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xbb8a7a42 osd_req_create_object +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xd01b158e osd_req_add_set_attr_list +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xdbb8dbcf osd_req_create_partition +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xf54370f1 osd_req_decode_sense_full +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xfaf57557 osd_req_read_sg +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xfc558785 osd_req_read +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xff612800 osd_req_write +EXPORT_SYMBOL drivers/scsi/osd/osd 0x08b2861e osduld_register_test +EXPORT_SYMBOL drivers/scsi/osd/osd 0x1303a71a osduld_device_same +EXPORT_SYMBOL drivers/scsi/osd/osd 0x33c4716c osduld_put_device +EXPORT_SYMBOL drivers/scsi/osd/osd 0x5ca37250 osduld_path_lookup +EXPORT_SYMBOL drivers/scsi/osd/osd 0x5fc48609 osduld_unregister_test +EXPORT_SYMBOL drivers/scsi/osd/osd 0x9531902c osduld_device_info +EXPORT_SYMBOL drivers/scsi/osd/osd 0xaa7d4216 osduld_info_lookup +EXPORT_SYMBOL drivers/scsi/raid_class 0x2832283d raid_component_add +EXPORT_SYMBOL drivers/scsi/raid_class 0xe3c4ee54 raid_class_release +EXPORT_SYMBOL drivers/scsi/raid_class 0xef3534c8 raid_class_attach +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x02608450 scsi_is_fc_vport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x0de01def fc_host_post_vendor_event +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x0deb5029 fc_vport_create +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x1cfd6012 fc_remote_port_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x2b091351 fc_release_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x55f22605 fc_remote_port_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x598327cb fc_block_scsi_eh +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x71c7c690 scsi_is_fc_rport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x7954b1ea fc_get_event_number +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xa5143ac8 fc_remote_port_rolechg +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xb128d1ca fc_remove_host +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xccc66385 fc_vport_terminate +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xd37ff963 fc_host_post_event +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xe817be44 fc_attach_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x0d6782bf sas_port_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x0dde4c34 sas_rphy_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x14eb8acc sas_rphy_remove +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x2089e978 sas_attach_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x3390f9a7 scsi_is_sas_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x3a173297 sas_expander_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x3b1433ee sas_rphy_unlink +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x3f9383d2 sas_port_mark_backlink +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x45ec6250 scsi_is_sas_rphy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x4ab5e2ba sas_port_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x4dc07117 sas_remove_children +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x5216e850 sas_remove_host +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x5bf60746 sas_end_device_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x610eb17d sas_port_add_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x69852d73 sas_rphy_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x7adb06a4 sas_rphy_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x84bc8410 sas_port_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x87cf83a9 sas_phy_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x8c57fead sas_read_port_mode_page +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x8fe00afc sas_phy_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x93d1ebea sas_port_get_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x93f6908f sas_release_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xbe3835af scsi_is_sas_port +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xc9f62277 sas_phy_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xdf2708e8 sas_port_alloc_num +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xf6439824 sas_port_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xfb8d804b sas_phy_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xfdbaa033 sas_port_delete_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x0af281ad spi_display_xfer_agreement +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x3686ea09 spi_print_msg +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x51ba2391 spi_dv_device +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x6c6f270a spi_schedule_dv_device +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x93e04f7c spi_release_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0xf99832b6 spi_attach_transport +EXPORT_SYMBOL drivers/ssb/ssb 0x04a34e46 ssb_bus_sdiobus_register +EXPORT_SYMBOL drivers/ssb/ssb 0x09258d45 ssb_set_devtypedata +EXPORT_SYMBOL drivers/ssb/ssb 0x114400a6 ssb_device_is_enabled +EXPORT_SYMBOL drivers/ssb/ssb 0x2b402d7b ssb_chipco_gpio_control +EXPORT_SYMBOL drivers/ssb/ssb 0x36e235db ssb_pmu_set_ldo_voltage +EXPORT_SYMBOL drivers/ssb/ssb 0x55921729 ssb_bus_suspend +EXPORT_SYMBOL drivers/ssb/ssb 0x709330f4 ssb_device_enable +EXPORT_SYMBOL drivers/ssb/ssb 0x82d98f3f ssb_pmu_set_ldo_paref +EXPORT_SYMBOL drivers/ssb/ssb 0xaa8f669b __ssb_driver_register +EXPORT_SYMBOL drivers/ssb/ssb 0xac03ea62 ssb_bus_powerup +EXPORT_SYMBOL drivers/ssb/ssb 0xb3f75199 ssb_driver_unregister +EXPORT_SYMBOL drivers/ssb/ssb 0xc0512e0f ssb_admatch_base +EXPORT_SYMBOL drivers/ssb/ssb 0xc1c95b20 ssb_clockspeed +EXPORT_SYMBOL drivers/ssb/ssb 0xd1923ce2 ssb_device_disable +EXPORT_SYMBOL drivers/ssb/ssb 0xd1a93b6f ssb_dma_translation +EXPORT_SYMBOL drivers/ssb/ssb 0xd481192b ssb_admatch_size +EXPORT_SYMBOL drivers/ssb/ssb 0xd649e4b7 ssb_bus_unregister +EXPORT_SYMBOL drivers/ssb/ssb 0xdd882870 ssb_commit_settings +EXPORT_SYMBOL drivers/ssb/ssb 0xe41c9b74 ssb_bus_may_powerdown +EXPORT_SYMBOL drivers/ssb/ssb 0xfbd1718e ssb_bus_resume +EXPORT_SYMBOL drivers/staging/iio/addac/adt7316 0x3a187290 adt7316_remove +EXPORT_SYMBOL drivers/staging/iio/addac/adt7316 0x98306358 adt7316_probe +EXPORT_SYMBOL drivers/staging/iio/meter/ade7854 0x07fd2a8a ade7854_probe +EXPORT_SYMBOL drivers/staging/iio/meter/ade7854 0x345fa107 ade7854_remove +EXPORT_SYMBOL drivers/staging/media/go7007/go7007 0x0495ef33 go7007_boot_encoder +EXPORT_SYMBOL drivers/staging/media/go7007/go7007 0x32a5f6f9 go7007_parse_video_stream +EXPORT_SYMBOL drivers/staging/media/go7007/go7007 0x3c92199b go7007_alloc +EXPORT_SYMBOL drivers/staging/media/go7007/go7007 0x3e049871 go7007_read_interrupt +EXPORT_SYMBOL drivers/staging/media/go7007/go7007 0x6df3be37 go7007_update_board +EXPORT_SYMBOL drivers/staging/media/go7007/go7007 0xcb0f5df7 go7007_snd_remove +EXPORT_SYMBOL drivers/staging/media/go7007/go7007 0xccf0def9 go7007_read_addr +EXPORT_SYMBOL drivers/staging/media/go7007/go7007 0xd12672c2 go7007_snd_init +EXPORT_SYMBOL drivers/staging/media/go7007/go7007 0xfcac3dc4 go7007_register_encoder +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x2274c670 iscsit_process_scsi_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x3667a00e iscsit_register_transport +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x3aefc0d3 iscsit_allocate_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x4964d2b8 iscsit_increment_maxcmdsn +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x51ca6659 iscsit_process_nop_out +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x56c51bd9 iscsit_logout_post_handler +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x5fa622e7 iscsit_cause_connection_reinstatement +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x69cf760a iscsit_build_reject +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x6a449a26 iscsit_setup_scsi_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x71d43734 iscsit_unregister_transport +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x7fa529d7 iscsit_sequence_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x8010df8d iscsit_stop_dataout_timer +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x8e763995 iscsit_handle_task_mgt_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x942f72d1 iscsit_handle_text_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x96fc0ce7 iscsit_process_text_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x9c90af3e iscsit_setup_nop_out +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xa5871d0a iscsit_check_dataout_payload +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xb0f1e0a8 iscsit_check_dataout_hdr +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xb61482a6 iscsit_set_unsoliticed_dataout +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xc0dc9346 iscsit_handle_logout_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xc36de21c iscsit_tmr_post_handler +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xc633745b iscsit_build_task_mgt_rsp +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xd2f0211c iscsit_build_text_rsp +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xd9ae9b3c iscsit_build_logout_rsp +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xe90a06dc iscsit_build_rsp_pdu +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xef283aef iscsit_build_nopin_rsp +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xf76e5bdd iscsit_setup_text_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x00ea4596 target_put_session +EXPORT_SYMBOL drivers/target/target_core_mod 0x02de3b18 transport_set_vpd_ident +EXPORT_SYMBOL drivers/target/target_core_mod 0x045bfa83 sas_get_fabric_proto_ident +EXPORT_SYMBOL drivers/target/target_core_mod 0x09dd2d05 transport_generic_request_failure +EXPORT_SYMBOL drivers/target/target_core_mod 0x14459276 core_tpg_del_initiator_node_acl +EXPORT_SYMBOL drivers/target/target_core_mod 0x1ac5c9ee sbc_execute_unmap +EXPORT_SYMBOL drivers/target/target_core_mod 0x1c7ba113 core_tpg_set_initiator_node_tag +EXPORT_SYMBOL drivers/target/target_core_mod 0x1c8bcf3e iscsi_get_fabric_proto_ident +EXPORT_SYMBOL drivers/target/target_core_mod 0x208acd94 iscsi_get_pr_transport_id +EXPORT_SYMBOL drivers/target/target_core_mod 0x2173f955 core_tpg_check_initiator_node_acl +EXPORT_SYMBOL drivers/target/target_core_mod 0x26abbd74 transport_subsystem_release +EXPORT_SYMBOL drivers/target/target_core_mod 0x2bed4f86 target_fabric_configfs_register +EXPORT_SYMBOL drivers/target/target_core_mod 0x2bf2ce45 target_submit_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x2ce561b2 core_tpg_add_initiator_node_acl +EXPORT_SYMBOL drivers/target/target_core_mod 0x2f72d08d target_wait_for_sess_cmds +EXPORT_SYMBOL drivers/target/target_core_mod 0x315bb47d transport_wait_for_tasks +EXPORT_SYMBOL drivers/target/target_core_mod 0x3863cbf2 target_get_session +EXPORT_SYMBOL drivers/target/target_core_mod 0x3e047d2a sas_get_pr_transport_id +EXPORT_SYMBOL drivers/target/target_core_mod 0x406d51a8 target_setup_cmd_from_cdb +EXPORT_SYMBOL drivers/target/target_core_mod 0x4426c6bf transport_register_session +EXPORT_SYMBOL drivers/target/target_core_mod 0x4f9fb531 core_alua_check_nonop_delay +EXPORT_SYMBOL drivers/target/target_core_mod 0x5e6348dd core_tpg_set_initiator_node_queue_depth +EXPORT_SYMBOL drivers/target/target_core_mod 0x60e1f643 sbc_parse_cdb +EXPORT_SYMBOL drivers/target/target_core_mod 0x63e1702d core_tpg_clear_object_luns +EXPORT_SYMBOL drivers/target/target_core_mod 0x6e34e232 transport_send_check_condition_and_sense +EXPORT_SYMBOL drivers/target/target_core_mod 0x6eb03262 transport_handle_cdb_direct +EXPORT_SYMBOL drivers/target/target_core_mod 0x70c3b370 __transport_register_session +EXPORT_SYMBOL drivers/target/target_core_mod 0x71615659 fc_get_pr_transport_id_len +EXPORT_SYMBOL drivers/target/target_core_mod 0x71724810 target_complete_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x78f29972 fc_parse_pr_out_transport_id +EXPORT_SYMBOL drivers/target/target_core_mod 0x7b8fb14b sbc_get_device_type +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 0x873b2a5d fc_get_fabric_proto_ident +EXPORT_SYMBOL drivers/target/target_core_mod 0x89e44346 transport_init_se_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x93fb8591 transport_generic_handle_tmr +EXPORT_SYMBOL drivers/target/target_core_mod 0x95766914 spc_parse_cdb +EXPORT_SYMBOL drivers/target/target_core_mod 0x9afa82b9 sas_parse_pr_out_transport_id +EXPORT_SYMBOL drivers/target/target_core_mod 0x9c8bcc06 core_tmr_alloc_req +EXPORT_SYMBOL drivers/target/target_core_mod 0xa512bab1 transport_check_aborted_status +EXPORT_SYMBOL drivers/target/target_core_mod 0xa5d23ad9 target_submit_cmd_map_sgls +EXPORT_SYMBOL drivers/target/target_core_mod 0xaa7eceb3 transport_kmap_data_sg +EXPORT_SYMBOL drivers/target/target_core_mod 0xaac6c536 target_fabric_configfs_init +EXPORT_SYMBOL drivers/target/target_core_mod 0xac788795 fc_get_pr_transport_id +EXPORT_SYMBOL drivers/target/target_core_mod 0xad8162be transport_generic_new_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0xaee59c86 target_execute_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0xb0024228 transport_free_session +EXPORT_SYMBOL drivers/target/target_core_mod 0xb70b7460 spc_emulate_report_luns +EXPORT_SYMBOL drivers/target/target_core_mod 0xb90c34d3 sas_get_pr_transport_id_len +EXPORT_SYMBOL drivers/target/target_core_mod 0xba88f692 spc_emulate_evpd_83 +EXPORT_SYMBOL drivers/target/target_core_mod 0xbc88e435 transport_kunmap_data_sg +EXPORT_SYMBOL drivers/target/target_core_mod 0xbd4e8ec6 transport_lookup_tmr_lun +EXPORT_SYMBOL drivers/target/target_core_mod 0xc20213c2 spc_emulate_inquiry_std +EXPORT_SYMBOL drivers/target/target_core_mod 0xc4a65a99 transport_init_session +EXPORT_SYMBOL drivers/target/target_core_mod 0xc7d5f15d target_get_sess_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0xcc78354d transport_generic_free_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0xcc813113 transport_lookup_cmd_lun +EXPORT_SYMBOL drivers/target/target_core_mod 0xce108b89 target_sess_cmd_list_set_waiting +EXPORT_SYMBOL drivers/target/target_core_mod 0xcf67272e core_tpg_register +EXPORT_SYMBOL drivers/target/target_core_mod 0xd47d837a iscsi_get_pr_transport_id_len +EXPORT_SYMBOL drivers/target/target_core_mod 0xda0f6f9a transport_deregister_session +EXPORT_SYMBOL drivers/target/target_core_mod 0xdb2bf743 sbc_get_write_same_sectors +EXPORT_SYMBOL drivers/target/target_core_mod 0xdd726dcd target_put_sess_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0xe13ec437 iscsi_parse_pr_out_transport_id +EXPORT_SYMBOL drivers/target/target_core_mod 0xe236d4e2 target_fabric_configfs_deregister +EXPORT_SYMBOL drivers/target/target_core_mod 0xe42cc3f2 transport_subsystem_register +EXPORT_SYMBOL drivers/target/target_core_mod 0xe7af4c9d target_submit_tmr +EXPORT_SYMBOL drivers/target/target_core_mod 0xf01621c7 transport_set_vpd_proto_id +EXPORT_SYMBOL drivers/target/target_core_mod 0xf61ab6d1 core_tpg_deregister +EXPORT_SYMBOL drivers/target/target_core_mod 0xf796d706 target_fabric_configfs_free +EXPORT_SYMBOL drivers/target/target_core_mod 0xffae209f transport_deregister_session_configfs +EXPORT_SYMBOL drivers/usb/class/cdc-wdm 0xe7f39ed1 usb_cdc_wdm_register +EXPORT_SYMBOL drivers/usb/gadget/u_ether 0x0a12b713 gether_connect +EXPORT_SYMBOL drivers/usb/gadget/u_ether 0x0d97c8ec gether_setup_name_default +EXPORT_SYMBOL drivers/usb/gadget/u_ether 0x253dda6b gether_register_netdev +EXPORT_SYMBOL drivers/usb/gadget/u_ether 0x25b00e66 gether_get_dev_addr +EXPORT_SYMBOL drivers/usb/gadget/u_ether 0x25caffe5 gether_get_host_addr +EXPORT_SYMBOL drivers/usb/gadget/u_ether 0x25cdaa83 gether_get_qmult +EXPORT_SYMBOL drivers/usb/gadget/u_ether 0x35d096d6 gether_get_host_addr_cdc +EXPORT_SYMBOL drivers/usb/gadget/u_ether 0x4d7f81d2 gether_set_qmult +EXPORT_SYMBOL drivers/usb/gadget/u_ether 0x4dfe2425 gether_disconnect +EXPORT_SYMBOL drivers/usb/gadget/u_ether 0x5a8b4cab gether_set_gadget +EXPORT_SYMBOL drivers/usb/gadget/u_ether 0x5b865c6e gether_get_host_addr_u8 +EXPORT_SYMBOL drivers/usb/gadget/u_ether 0x5f33f3a3 gether_set_dev_addr +EXPORT_SYMBOL drivers/usb/gadget/u_ether 0x67942d26 gether_setup_name +EXPORT_SYMBOL drivers/usb/gadget/u_ether 0x78f976f2 gether_get_ifname +EXPORT_SYMBOL drivers/usb/gadget/u_ether 0x8878cfa6 gether_cleanup +EXPORT_SYMBOL drivers/usb/gadget/u_ether 0xccea03ec gether_set_host_addr +EXPORT_SYMBOL drivers/usb/gadget/u_rndis 0x1b6cde33 rndis_add_hdr +EXPORT_SYMBOL drivers/usb/gadget/u_rndis 0x3456bd37 rndis_set_param_dev +EXPORT_SYMBOL drivers/usb/gadget/u_rndis 0x3a6d4f22 rndis_free_response +EXPORT_SYMBOL drivers/usb/gadget/u_rndis 0x3ca38e3a rndis_signal_connect +EXPORT_SYMBOL drivers/usb/gadget/u_rndis 0x4ca90996 rndis_signal_disconnect +EXPORT_SYMBOL drivers/usb/gadget/u_rndis 0x5d22b406 rndis_register +EXPORT_SYMBOL drivers/usb/gadget/u_rndis 0x785d494b rndis_msg_parser +EXPORT_SYMBOL drivers/usb/gadget/u_rndis 0x840dd143 rndis_deregister +EXPORT_SYMBOL drivers/usb/gadget/u_rndis 0x988ad2a2 rndis_set_param_vendor +EXPORT_SYMBOL drivers/usb/gadget/u_rndis 0x9acf72e4 rndis_set_param_medium +EXPORT_SYMBOL drivers/usb/gadget/u_rndis 0x9b22abf0 rndis_rm_hdr +EXPORT_SYMBOL drivers/usb/gadget/u_rndis 0xa90054ee rndis_uninit +EXPORT_SYMBOL drivers/usb/gadget/u_rndis 0xb971ebca rndis_get_next_response +EXPORT_SYMBOL drivers/usb/gadget/u_rndis 0xd2fe47b1 rndis_set_host_mac +EXPORT_SYMBOL drivers/usb/gadget/usb_f_rndis 0x42b69b12 rndis_borrow_net +EXPORT_SYMBOL drivers/usb/host/sl811-hcd 0x49d4c61c sl811h_driver +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x0afdbd34 usb_wwan_tiocmget +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x31380130 usb_wwan_set_termios +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x40d0baf7 usb_wwan_write_room +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x4c300e0b usb_wwan_dtr_rts +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x545ff3c6 usb_wwan_port_remove +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x788808fc usb_wwan_close +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x7e8da854 usb_wwan_write +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x895fccaa usb_wwan_resume +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x9b01d2b2 usb_wwan_open +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xaf183df1 usb_wwan_ioctl +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xc9d7099d usb_wwan_tiocmset +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xe2955a87 usb_wwan_suspend +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xf7b4e815 usb_wwan_chars_in_buffer +EXPORT_SYMBOL drivers/usb/serial/usbserial 0x7d777812 usb_serial_resume +EXPORT_SYMBOL drivers/usb/serial/usbserial 0xee4c5c28 usb_serial_suspend +EXPORT_SYMBOL drivers/vhost/vringh 0x0dda8c5a vringh_complete_kern +EXPORT_SYMBOL drivers/vhost/vringh 0x1f063017 vringh_init_user +EXPORT_SYMBOL drivers/vhost/vringh 0x2e91ca97 vringh_iov_pull_kern +EXPORT_SYMBOL drivers/vhost/vringh 0x367ce26a vringh_iov_push_user +EXPORT_SYMBOL drivers/vhost/vringh 0x36dfce73 vringh_complete_multi_user +EXPORT_SYMBOL drivers/vhost/vringh 0x3eaf442a vringh_abandon_kern +EXPORT_SYMBOL drivers/vhost/vringh 0x3fa42e4f vringh_notify_enable_user +EXPORT_SYMBOL drivers/vhost/vringh 0x5dafbd4e vringh_init_kern +EXPORT_SYMBOL drivers/vhost/vringh 0x66af098b vringh_notify_enable_kern +EXPORT_SYMBOL drivers/vhost/vringh 0x6d0e7948 vringh_abandon_user +EXPORT_SYMBOL drivers/vhost/vringh 0x7bda5e6d vringh_iov_push_kern +EXPORT_SYMBOL drivers/vhost/vringh 0x821e9390 vringh_iov_pull_user +EXPORT_SYMBOL drivers/vhost/vringh 0xaf8e4a0e vringh_notify_disable_kern +EXPORT_SYMBOL drivers/vhost/vringh 0xafb47dae vringh_need_notify_user +EXPORT_SYMBOL drivers/vhost/vringh 0xc884d704 vringh_notify_disable_user +EXPORT_SYMBOL drivers/vhost/vringh 0xc8bee0a4 vringh_need_notify_kern +EXPORT_SYMBOL drivers/vhost/vringh 0xd11d2709 vringh_getdesc_kern +EXPORT_SYMBOL drivers/vhost/vringh 0xda4ea4cc vringh_complete_user +EXPORT_SYMBOL drivers/vhost/vringh 0xfc7dcad2 vringh_getdesc_user +EXPORT_SYMBOL drivers/video/backlight/generic_bl 0x366d19ef genericbl_limit_intensity +EXPORT_SYMBOL drivers/video/backlight/lcd 0x0b43dd99 lcd_device_unregister +EXPORT_SYMBOL drivers/video/backlight/lcd 0x647e1e56 devm_lcd_device_unregister +EXPORT_SYMBOL drivers/video/backlight/lcd 0x7d74090b devm_lcd_device_register +EXPORT_SYMBOL drivers/video/backlight/lcd 0xc0b32984 lcd_device_register +EXPORT_SYMBOL drivers/video/output 0x697024f3 video_output_register +EXPORT_SYMBOL drivers/video/output 0xe34222ea video_output_unregister +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0x4434d73c w1_ds2760_write +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0x8538cccb w1_ds2760_read +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0xad08ef4b w1_ds2760_store_eeprom +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0xd8a82baf w1_ds2760_recall_eeprom +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2780 0x2d091831 w1_ds2780_eeprom_cmd +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2780 0xd097f59c w1_ds2780_io +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2781 0x13d006ad w1_ds2781_io +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2781 0x8cefb50d w1_ds2781_eeprom_cmd +EXPORT_SYMBOL drivers/w1/wire 0x7f50af0d w1_unregister_family +EXPORT_SYMBOL drivers/w1/wire 0xd6ddfd0f w1_remove_master_device +EXPORT_SYMBOL drivers/w1/wire 0xf3ac91d4 w1_register_family +EXPORT_SYMBOL drivers/w1/wire 0xf462ce09 w1_add_master_device +EXPORT_SYMBOL fs/btrfs/btrfs 0x27476846 ulist_reinit +EXPORT_SYMBOL fs/btrfs/btrfs 0x41e6a9d2 ulist_init +EXPORT_SYMBOL fs/btrfs/btrfs 0x7e2ee765 ulist_free +EXPORT_SYMBOL fs/btrfs/btrfs 0xa2eec2e8 ulist_fini +EXPORT_SYMBOL fs/btrfs/btrfs 0xb1320bc8 ulist_add +EXPORT_SYMBOL fs/btrfs/btrfs 0xb42289d2 ulist_alloc +EXPORT_SYMBOL fs/btrfs/btrfs 0xc2c745db ulist_next +EXPORT_SYMBOL fs/configfs/configfs 0x0db6e1b2 config_group_init +EXPORT_SYMBOL fs/configfs/configfs 0x18716490 config_item_get +EXPORT_SYMBOL fs/configfs/configfs 0x3e8d43ce configfs_depend_item +EXPORT_SYMBOL fs/configfs/configfs 0x69d18556 config_item_init_type_name +EXPORT_SYMBOL fs/configfs/configfs 0x80f0c55a config_item_set_name +EXPORT_SYMBOL fs/configfs/configfs 0x905a5cd7 config_item_init +EXPORT_SYMBOL fs/configfs/configfs 0xaa135c27 configfs_register_subsystem +EXPORT_SYMBOL fs/configfs/configfs 0xac511fb3 configfs_undepend_item +EXPORT_SYMBOL fs/configfs/configfs 0xad159cea config_group_find_item +EXPORT_SYMBOL fs/configfs/configfs 0xc1650a88 configfs_unregister_subsystem +EXPORT_SYMBOL fs/configfs/configfs 0xd114275b config_item_put +EXPORT_SYMBOL fs/configfs/configfs 0xfec73392 config_group_init_type_name +EXPORT_SYMBOL fs/exofs/libore 0x011500ad ore_calc_stripe_info +EXPORT_SYMBOL fs/exofs/libore 0x22c07495 ore_remove +EXPORT_SYMBOL fs/exofs/libore 0x245f7eff ore_check_io +EXPORT_SYMBOL fs/exofs/libore 0x282f4932 ore_get_io_state +EXPORT_SYMBOL fs/exofs/libore 0x28806871 ore_verify_layout +EXPORT_SYMBOL fs/exofs/libore 0x60233cda ore_get_rw_state +EXPORT_SYMBOL fs/exofs/libore 0x740b81ef ore_put_io_state +EXPORT_SYMBOL fs/exofs/libore 0xa3d2a634 g_attr_logical_length +EXPORT_SYMBOL fs/exofs/libore 0xac853e65 ore_create +EXPORT_SYMBOL fs/exofs/libore 0xd5567d8f ore_write +EXPORT_SYMBOL fs/exofs/libore 0xd57708d6 ore_read +EXPORT_SYMBOL fs/exofs/libore 0xd5c456e2 ore_truncate +EXPORT_SYMBOL fs/exofs/libore 0xf5f955b6 extract_attr_from_ios +EXPORT_SYMBOL fs/fscache/fscache 0x0733d8ea __fscache_wait_on_page_write +EXPORT_SYMBOL fs/fscache/fscache 0x07e26309 fscache_withdraw_cache +EXPORT_SYMBOL fs/fscache/fscache 0x12b1c739 fscache_io_error +EXPORT_SYMBOL fs/fscache/fscache 0x13a3f439 __fscache_read_or_alloc_pages +EXPORT_SYMBOL fs/fscache/fscache 0x1745c070 __fscache_maybe_release_page +EXPORT_SYMBOL fs/fscache/fscache 0x1dc170e5 fscache_check_aux +EXPORT_SYMBOL fs/fscache/fscache 0x2397cf45 __fscache_register_netfs +EXPORT_SYMBOL fs/fscache/fscache 0x25631afd fscache_cache_cleared_wq +EXPORT_SYMBOL fs/fscache/fscache 0x2be0e6cd __fscache_invalidate +EXPORT_SYMBOL fs/fscache/fscache 0x31f302ca fscache_op_complete +EXPORT_SYMBOL fs/fscache/fscache 0x383a0d2c fscache_mark_page_cached +EXPORT_SYMBOL fs/fscache/fscache 0x4604ce68 __fscache_alloc_page +EXPORT_SYMBOL fs/fscache/fscache 0x4f6dca01 __fscache_read_or_alloc_page +EXPORT_SYMBOL fs/fscache/fscache 0x5b5f5778 fscache_init_cache +EXPORT_SYMBOL fs/fscache/fscache 0x5c5a6c2c __fscache_uncache_all_inode_pages +EXPORT_SYMBOL fs/fscache/fscache 0x64c1de4a fscache_fsdef_index +EXPORT_SYMBOL fs/fscache/fscache 0x68d45607 __fscache_acquire_cookie +EXPORT_SYMBOL fs/fscache/fscache 0x711ef2a3 __fscache_wait_on_invalidate +EXPORT_SYMBOL fs/fscache/fscache 0x74530ecd fscache_op_debug_id +EXPORT_SYMBOL fs/fscache/fscache 0x86f40643 fscache_put_operation +EXPORT_SYMBOL fs/fscache/fscache 0x8c229fe3 fscache_mark_pages_cached +EXPORT_SYMBOL fs/fscache/fscache 0x97fdb4a8 __fscache_attr_changed +EXPORT_SYMBOL fs/fscache/fscache 0x9ce9e561 __fscache_update_cookie +EXPORT_SYMBOL fs/fscache/fscache 0xb7c9bfc9 fscache_add_cache +EXPORT_SYMBOL fs/fscache/fscache 0xb8b817d2 fscache_object_destroy +EXPORT_SYMBOL fs/fscache/fscache 0xbf5ee89e __fscache_unregister_netfs +EXPORT_SYMBOL fs/fscache/fscache 0xc0807cdf __fscache_relinquish_cookie +EXPORT_SYMBOL fs/fscache/fscache 0xc3ef93ed __fscache_uncache_page +EXPORT_SYMBOL fs/fscache/fscache 0xc4694163 fscache_object_init +EXPORT_SYMBOL fs/fscache/fscache 0xcc8eac7b fscache_enqueue_operation +EXPORT_SYMBOL fs/fscache/fscache 0xe1995306 fscache_object_lookup_negative +EXPORT_SYMBOL fs/fscache/fscache 0xe29ae79e fscache_obtained_object +EXPORT_SYMBOL fs/fscache/fscache 0xfa536081 __fscache_check_page_write +EXPORT_SYMBOL fs/fscache/fscache 0xfeaec000 __fscache_write_page +EXPORT_SYMBOL fs/nfsd/nfsd 0x040ea5a0 nfs4_acl_nfsv4_to_posix +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 0xcb152562 nfs4_acl_posix_to_nfsv4 +EXPORT_SYMBOL fs/nfsd/nfsd 0xda45bc09 nfs4_acl_new +EXPORT_SYMBOL fs/ocfs2/cluster/ocfs2_nodemanager 0xbfd7d7a2 o2hb_global_heartbeat_active +EXPORT_SYMBOL fs/quota/quota_tree 0x0929e5e8 qtree_read_dquot +EXPORT_SYMBOL fs/quota/quota_tree 0x0d4bba0a qtree_entry_unused +EXPORT_SYMBOL fs/quota/quota_tree 0x5768a0df qtree_release_dquot +EXPORT_SYMBOL fs/quota/quota_tree 0xdaab80cd qtree_delete_dquot +EXPORT_SYMBOL fs/quota/quota_tree 0xddf84c90 qtree_write_dquot +EXPORT_SYMBOL lib/cordic 0x434bfd07 cordic_calc_iq +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/crc8 0x41248eaf crc8 +EXPORT_SYMBOL lib/crc8 0xab9ad613 crc8_populate_lsb +EXPORT_SYMBOL lib/crc8 0xd4534d80 crc8_populate_msb +EXPORT_SYMBOL lib/libcrc32c 0x27000b29 crc32c +EXPORT_SYMBOL lib/lru_cache 0x0f135b1b lc_seq_dump_details +EXPORT_SYMBOL lib/lru_cache 0x13f36999 lc_try_get +EXPORT_SYMBOL lib/lru_cache 0x1512741c lc_element_by_index +EXPORT_SYMBOL lib/lru_cache 0x1f1e1a77 lc_reset +EXPORT_SYMBOL lib/lru_cache 0x2110282d lc_index_of +EXPORT_SYMBOL lib/lru_cache 0x2141529e lc_seq_printf_stats +EXPORT_SYMBOL lib/lru_cache 0x22c0d0dc lc_destroy +EXPORT_SYMBOL lib/lru_cache 0x35d7057c lc_put +EXPORT_SYMBOL lib/lru_cache 0x391edfa4 lc_get +EXPORT_SYMBOL lib/lru_cache 0x4ff71075 lc_try_lock +EXPORT_SYMBOL lib/lru_cache 0x5b69e7bc lc_del +EXPORT_SYMBOL lib/lru_cache 0x69414740 lc_set +EXPORT_SYMBOL lib/lru_cache 0xa17de9b1 lc_find +EXPORT_SYMBOL lib/lru_cache 0xbd50fb72 lc_committed +EXPORT_SYMBOL lib/lru_cache 0xc817c8aa lc_get_cumulative +EXPORT_SYMBOL lib/lru_cache 0xe3d5fe88 lc_create +EXPORT_SYMBOL lib/lru_cache 0xf59c7e96 lc_is_used +EXPORT_SYMBOL lib/lz4/lz4_compress 0xcbc5d521 lz4_compress +EXPORT_SYMBOL lib/lz4/lz4hc_compress 0x26c3aa22 lz4hc_compress +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/raid6/raid6_pq 0xd9e91f83 raid6_vgfmul +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 0xe9f7149c zlib_deflate_workspacesize +EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0xf741c793 zlib_deflateEnd +EXPORT_SYMBOL net/802/p8022 0x3ce45d14 unregister_8022_client +EXPORT_SYMBOL net/802/p8022 0x94916005 register_8022_client +EXPORT_SYMBOL net/802/p8023 0x6f3c5eba make_8023_client +EXPORT_SYMBOL net/802/p8023 0xa118aff6 destroy_8023_client +EXPORT_SYMBOL net/802/psnap 0x9738f013 unregister_snap_client +EXPORT_SYMBOL net/802/psnap 0xf3945b5e register_snap_client +EXPORT_SYMBOL net/9p/9pnet 0x0116396e p9_client_fsync +EXPORT_SYMBOL net/9p/9pnet 0x1a37c7e9 p9_parse_header +EXPORT_SYMBOL net/9p/9pnet 0x1fbb65b9 p9_client_create +EXPORT_SYMBOL net/9p/9pnet 0x23901f0e p9_client_setattr +EXPORT_SYMBOL net/9p/9pnet 0x28a3e7d5 p9_payload_gup +EXPORT_SYMBOL net/9p/9pnet 0x2e25fa13 p9_client_getlock_dotl +EXPORT_SYMBOL net/9p/9pnet 0x2f63c855 p9_client_attach +EXPORT_SYMBOL net/9p/9pnet 0x2fe7f831 p9_is_proto_dotu +EXPORT_SYMBOL net/9p/9pnet 0x35d1e27e p9_idpool_get +EXPORT_SYMBOL net/9p/9pnet 0x3a8d78e5 p9_client_read +EXPORT_SYMBOL net/9p/9pnet 0x3af613d4 p9_release_pages +EXPORT_SYMBOL net/9p/9pnet 0x3c4cf472 v9fs_get_trans_by_name +EXPORT_SYMBOL net/9p/9pnet 0x3cdccf29 p9_client_begin_disconnect +EXPORT_SYMBOL net/9p/9pnet 0x3d73a797 p9_errstr2errno +EXPORT_SYMBOL net/9p/9pnet 0x4e060ed8 p9stat_free +EXPORT_SYMBOL net/9p/9pnet 0x52a38d55 p9_client_disconnect +EXPORT_SYMBOL net/9p/9pnet 0x57051499 p9_client_lock_dotl +EXPORT_SYMBOL net/9p/9pnet 0x5eae4a5e p9_client_cb +EXPORT_SYMBOL net/9p/9pnet 0x64ad813c p9_client_unlinkat +EXPORT_SYMBOL net/9p/9pnet 0x678b349a p9_client_mkdir_dotl +EXPORT_SYMBOL net/9p/9pnet 0x6bf6ac1f p9_client_statfs +EXPORT_SYMBOL net/9p/9pnet 0x6ce5f522 p9_client_fcreate +EXPORT_SYMBOL net/9p/9pnet 0x6ee9998d p9_client_write +EXPORT_SYMBOL net/9p/9pnet 0x7b65926b p9_client_open +EXPORT_SYMBOL net/9p/9pnet 0x7ea18e8b p9_client_getattr_dotl +EXPORT_SYMBOL net/9p/9pnet 0x81ba05f0 p9_client_rename +EXPORT_SYMBOL net/9p/9pnet 0x856696c2 p9dirent_read +EXPORT_SYMBOL net/9p/9pnet 0x86757db8 p9_client_create_dotl +EXPORT_SYMBOL net/9p/9pnet 0x977a0030 p9_nr_pages +EXPORT_SYMBOL net/9p/9pnet 0x9846ee65 v9fs_unregister_trans +EXPORT_SYMBOL net/9p/9pnet 0x98e198de p9_client_link +EXPORT_SYMBOL net/9p/9pnet 0xa6800706 p9_tag_lookup +EXPORT_SYMBOL net/9p/9pnet 0xb1f90b5b p9_client_clunk +EXPORT_SYMBOL net/9p/9pnet 0xb2078031 p9_client_symlink +EXPORT_SYMBOL net/9p/9pnet 0xb436031d p9_client_destroy +EXPORT_SYMBOL net/9p/9pnet 0xbbc7753e p9stat_read +EXPORT_SYMBOL net/9p/9pnet 0xc28752a0 p9_is_proto_dotl +EXPORT_SYMBOL net/9p/9pnet 0xc36490ad v9fs_register_trans +EXPORT_SYMBOL net/9p/9pnet 0xc5db54a9 p9_idpool_destroy +EXPORT_SYMBOL net/9p/9pnet 0xc9881441 p9_client_readdir +EXPORT_SYMBOL net/9p/9pnet 0xcb788ef6 p9_client_readlink +EXPORT_SYMBOL net/9p/9pnet 0xdc291bff p9_client_wstat +EXPORT_SYMBOL net/9p/9pnet 0xdfc70e81 p9_client_renameat +EXPORT_SYMBOL net/9p/9pnet 0xe58a3360 p9_error_init +EXPORT_SYMBOL net/9p/9pnet 0xeaed66aa p9_client_walk +EXPORT_SYMBOL net/9p/9pnet 0xef8544ad v9fs_get_default_trans +EXPORT_SYMBOL net/9p/9pnet 0xf49015fe p9_client_stat +EXPORT_SYMBOL net/9p/9pnet 0xf4a111d8 p9_idpool_create +EXPORT_SYMBOL net/9p/9pnet 0xf5d9b8c1 p9_client_remove +EXPORT_SYMBOL net/9p/9pnet 0xf7682eaa p9_client_mknod_dotl +EXPORT_SYMBOL net/9p/9pnet 0xf84f2022 p9_idpool_put +EXPORT_SYMBOL net/9p/9pnet 0xfd40c79d p9_idpool_check +EXPORT_SYMBOL net/appletalk/appletalk 0x27d5bd47 atrtr_get_dev +EXPORT_SYMBOL net/appletalk/appletalk 0x70a28c1d atalk_find_dev_addr +EXPORT_SYMBOL net/appletalk/appletalk 0x7af99bff alloc_ltalkdev +EXPORT_SYMBOL net/appletalk/appletalk 0xbe7cfcac aarp_send_ddp +EXPORT_SYMBOL net/atm/atm 0x0264fe07 vcc_process_recv_queue +EXPORT_SYMBOL net/atm/atm 0x0734b36f atm_dev_lookup +EXPORT_SYMBOL net/atm/atm 0x25f3fcd0 atm_charge +EXPORT_SYMBOL net/atm/atm 0x2cc2d52d vcc_hash +EXPORT_SYMBOL net/atm/atm 0x4443d399 atm_proc_root +EXPORT_SYMBOL net/atm/atm 0x4e3df0de vcc_release_async +EXPORT_SYMBOL net/atm/atm 0x4fa67fd4 atm_dev_deregister +EXPORT_SYMBOL net/atm/atm 0x823882df register_atm_ioctl +EXPORT_SYMBOL net/atm/atm 0x83e54335 atm_alloc_charge +EXPORT_SYMBOL net/atm/atm 0x89f8b7ba atm_dev_signal_change +EXPORT_SYMBOL net/atm/atm 0x8cd1e51c atm_init_aal5 +EXPORT_SYMBOL net/atm/atm 0x9b1f0658 deregister_atm_ioctl +EXPORT_SYMBOL net/atm/atm 0x9feaf287 sonet_subtract_stats +EXPORT_SYMBOL net/atm/atm 0xa09dbd16 atm_dev_register +EXPORT_SYMBOL net/atm/atm 0xa298f467 vcc_insert_socket +EXPORT_SYMBOL net/atm/atm 0xa78cdddc atm_dev_release_vccs +EXPORT_SYMBOL net/atm/atm 0xaa024146 sonet_copy_stats +EXPORT_SYMBOL net/atm/atm 0xf49bc67a atm_pcr_goal +EXPORT_SYMBOL net/atm/atm 0xfac5ae25 vcc_sklist_lock +EXPORT_SYMBOL net/ax25/ax25 0x026c1368 ax25_display_timer +EXPORT_SYMBOL net/ax25/ax25 0x09e70027 ax25_header_ops +EXPORT_SYMBOL net/ax25/ax25 0x13e0d5e8 ax25_findbyuid +EXPORT_SYMBOL net/ax25/ax25 0x14e7e72f ax25_hard_header +EXPORT_SYMBOL net/ax25/ax25 0x242852b9 ax25_uid_policy +EXPORT_SYMBOL net/ax25/ax25 0x2de42944 ax25_send_frame +EXPORT_SYMBOL net/ax25/ax25 0x396d02f1 ax25_linkfail_release +EXPORT_SYMBOL net/ax25/ax25 0x4502c65a asc2ax +EXPORT_SYMBOL net/ax25/ax25 0x4fed96f0 ax25_listen_release +EXPORT_SYMBOL net/ax25/ax25 0x53dea1ff ax2asc +EXPORT_SYMBOL net/ax25/ax25 0x66cb7aaf ax25_listen_register +EXPORT_SYMBOL net/ax25/ax25 0x8ede9e26 ax25_protocol_release +EXPORT_SYMBOL net/ax25/ax25 0xc1444946 ax25cmp +EXPORT_SYMBOL net/ax25/ax25 0xd22b10d2 ax25_linkfail_register +EXPORT_SYMBOL net/ax25/ax25 0xd43ecbf1 null_ax25_address +EXPORT_SYMBOL net/ax25/ax25 0xd9993793 ax25_rebuild_header +EXPORT_SYMBOL net/ax25/ax25 0xfd83b901 ax25_find_cb +EXPORT_SYMBOL net/bluetooth/bluetooth 0x01a5c917 l2cap_register_user +EXPORT_SYMBOL net/bluetooth/bluetooth 0x06e3179b bt_sock_unlink +EXPORT_SYMBOL net/bluetooth/bluetooth 0x11d399c7 l2cap_is_socket +EXPORT_SYMBOL net/bluetooth/bluetooth 0x1663af01 bt_procfs_cleanup +EXPORT_SYMBOL net/bluetooth/bluetooth 0x1acd75cf bt_accept_dequeue +EXPORT_SYMBOL net/bluetooth/bluetooth 0x25a64dc9 hci_free_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x2ae01fb7 __hci_cmd_sync_ev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x3d2e18c7 __hci_cmd_sync +EXPORT_SYMBOL net/bluetooth/bluetooth 0x40bc8ac2 hci_resume_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x4ee9f849 l2cap_unregister_user +EXPORT_SYMBOL net/bluetooth/bluetooth 0x51f947b3 bt_accept_unlink +EXPORT_SYMBOL net/bluetooth/bluetooth 0x582f820c hci_unregister_cb +EXPORT_SYMBOL net/bluetooth/bluetooth 0x5b11cdb6 bt_procfs_init +EXPORT_SYMBOL net/bluetooth/bluetooth 0x5e632c7a hci_suspend_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x629d6956 hci_register_cb +EXPORT_SYMBOL net/bluetooth/bluetooth 0x6b007d59 bt_sock_wait_state +EXPORT_SYMBOL net/bluetooth/bluetooth 0x6c375703 hci_get_route +EXPORT_SYMBOL net/bluetooth/bluetooth 0x752e0dcc hci_recv_frame +EXPORT_SYMBOL net/bluetooth/bluetooth 0x7c640527 bt_info +EXPORT_SYMBOL net/bluetooth/bluetooth 0x81601e1f bt_sock_link +EXPORT_SYMBOL net/bluetooth/bluetooth 0x81a7356d hci_conn_check_secure +EXPORT_SYMBOL net/bluetooth/bluetooth 0x8ca8d581 bt_sock_register +EXPORT_SYMBOL net/bluetooth/bluetooth 0x8fabb82b bt_sock_ioctl +EXPORT_SYMBOL net/bluetooth/bluetooth 0x8fc9dbba l2cap_conn_put +EXPORT_SYMBOL net/bluetooth/bluetooth 0x8fea24bd bt_sock_unregister +EXPORT_SYMBOL net/bluetooth/bluetooth 0x91c9a325 bt_to_errno +EXPORT_SYMBOL net/bluetooth/bluetooth 0x940a915b hci_conn_security +EXPORT_SYMBOL net/bluetooth/bluetooth 0x94996099 hci_recv_fragment +EXPORT_SYMBOL net/bluetooth/bluetooth 0x96993934 hci_unregister_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x97e54db0 hci_recv_stream_fragment +EXPORT_SYMBOL net/bluetooth/bluetooth 0xaaaceb95 hci_conn_switch_role +EXPORT_SYMBOL net/bluetooth/bluetooth 0xb5a33b0f hci_register_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0xb60c11ba bt_sock_stream_recvmsg +EXPORT_SYMBOL net/bluetooth/bluetooth 0xb61a0c3b bt_err +EXPORT_SYMBOL net/bluetooth/bluetooth 0xc293d552 bt_sock_poll +EXPORT_SYMBOL net/bluetooth/bluetooth 0xcc1fb551 baswap +EXPORT_SYMBOL net/bluetooth/bluetooth 0xd270df9c bt_sock_reclassify_lock +EXPORT_SYMBOL net/bluetooth/bluetooth 0xdcf0a4e7 l2cap_conn_get +EXPORT_SYMBOL net/bluetooth/bluetooth 0xec5e794b hci_alloc_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0xed6ddef1 bt_sock_recvmsg +EXPORT_SYMBOL net/bluetooth/bluetooth 0xedd40fa7 bt_accept_enqueue +EXPORT_SYMBOL net/bridge/bridge 0x29c43a5c br_should_route_hook +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x78f3e7c6 ebt_unregister_table +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0xb8ab88b6 ebt_do_table +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0xea27f069 ebt_register_table +EXPORT_SYMBOL net/caif/caif 0x119a0c50 cfcnfg_add_phy_layer +EXPORT_SYMBOL net/caif/caif 0x1446b60a caif_client_register_refcnt +EXPORT_SYMBOL net/caif/caif 0x2a09f713 cfpkt_fromnative +EXPORT_SYMBOL net/caif/caif 0x30505ac6 caif_disconnect_client +EXPORT_SYMBOL net/caif/caif 0x329dbd06 cfpkt_info +EXPORT_SYMBOL net/caif/caif 0x38701a7c cfcnfg_del_phy_layer +EXPORT_SYMBOL net/caif/caif 0x4a237e57 cfpkt_tonative +EXPORT_SYMBOL net/caif/caif 0x50f37457 caif_connect_client +EXPORT_SYMBOL net/caif/caif 0x56ea16c0 get_cfcnfg +EXPORT_SYMBOL net/caif/caif 0x6a44fc70 cfpkt_extr_head +EXPORT_SYMBOL net/caif/caif 0x837dbc68 caif_enroll_dev +EXPORT_SYMBOL net/caif/caif 0x839ddb7b cfcnfg_set_phy_state +EXPORT_SYMBOL net/caif/caif 0x966d7de2 cfpkt_add_head +EXPORT_SYMBOL net/caif/caif 0x9e3e305d cfpkt_set_prio +EXPORT_SYMBOL net/caif/caif 0xb7b6874e caif_free_client +EXPORT_SYMBOL net/can/can 0x14fa9a3b can_send +EXPORT_SYMBOL net/can/can 0x393cd441 can_rx_unregister +EXPORT_SYMBOL net/can/can 0x3ca6663f can_proto_unregister +EXPORT_SYMBOL net/can/can 0x497c0de8 can_ioctl +EXPORT_SYMBOL net/can/can 0x5cc03658 can_rx_register +EXPORT_SYMBOL net/can/can 0x692294f2 can_proto_register +EXPORT_SYMBOL net/ceph/libceph 0x040e38db ceph_osdc_writepages +EXPORT_SYMBOL net/ceph/libceph 0x08af6004 ceph_auth_update_authorizer +EXPORT_SYMBOL net/ceph/libceph 0x09290ab3 ceph_debugfs_init +EXPORT_SYMBOL net/ceph/libceph 0x1081f2e1 ceph_osdc_build_request +EXPORT_SYMBOL net/ceph/libceph 0x10940306 ceph_pagelist_set_cursor +EXPORT_SYMBOL net/ceph/libceph 0x1475bf0d ceph_pg_poolid_by_name +EXPORT_SYMBOL net/ceph/libceph 0x18b3b5da ceph_monc_stop +EXPORT_SYMBOL net/ceph/libceph 0x197effcb ceph_osdc_release_request +EXPORT_SYMBOL net/ceph/libceph 0x20d151cb ceph_osdc_setup +EXPORT_SYMBOL net/ceph/libceph 0x236b8aa8 osd_req_op_cls_response_data_pages +EXPORT_SYMBOL net/ceph/libceph 0x27bea8c0 ceph_con_open +EXPORT_SYMBOL net/ceph/libceph 0x2c4c5612 osd_req_op_extent_osd_data +EXPORT_SYMBOL net/ceph/libceph 0x2eebde4a ceph_osdc_unregister_linger_request +EXPORT_SYMBOL net/ceph/libceph 0x2fc8a857 ceph_osdc_cancel_event +EXPORT_SYMBOL net/ceph/libceph 0x3158173e ceph_pagelist_release +EXPORT_SYMBOL net/ceph/libceph 0x382d5ef9 ceph_con_send +EXPORT_SYMBOL net/ceph/libceph 0x3abec91f ceph_pr_addr +EXPORT_SYMBOL net/ceph/libceph 0x3df0ec7c ceph_calc_ceph_pg +EXPORT_SYMBOL net/ceph/libceph 0x3f688151 ceph_put_snap_context +EXPORT_SYMBOL net/ceph/libceph 0x412bb0d1 ceph_get_direct_page_vector +EXPORT_SYMBOL net/ceph/libceph 0x41b52436 ceph_osdc_readpages +EXPORT_SYMBOL net/ceph/libceph 0x4205ffd7 ceph_destroy_options +EXPORT_SYMBOL net/ceph/libceph 0x43c8d341 ceph_buffer_new +EXPORT_SYMBOL net/ceph/libceph 0x43e458f6 ceph_file_part +EXPORT_SYMBOL net/ceph/libceph 0x43efd647 ceph_calc_file_object_mapping +EXPORT_SYMBOL net/ceph/libceph 0x445f1528 ceph_copy_from_page_vector +EXPORT_SYMBOL net/ceph/libceph 0x466b85b8 libceph_compatible +EXPORT_SYMBOL net/ceph/libceph 0x489e735e ceph_msg_new +EXPORT_SYMBOL net/ceph/libceph 0x49c2a51b osd_req_op_raw_data_in_pages +EXPORT_SYMBOL net/ceph/libceph 0x4e09d19a osd_req_op_cls_request_data_pages +EXPORT_SYMBOL net/ceph/libceph 0x5379cea3 ceph_caps_for_mode +EXPORT_SYMBOL net/ceph/libceph 0x54303613 ceph_auth_invalidate_authorizer +EXPORT_SYMBOL net/ceph/libceph 0x552ed9df ceph_auth_destroy_authorizer +EXPORT_SYMBOL net/ceph/libceph 0x55771016 ceph_msg_data_add_bio +EXPORT_SYMBOL net/ceph/libceph 0x57baf885 ceph_str_hash +EXPORT_SYMBOL net/ceph/libceph 0x595d64d4 ceph_msg_dump +EXPORT_SYMBOL net/ceph/libceph 0x5a7ff827 ceph_auth_verify_authorizer_reply +EXPORT_SYMBOL net/ceph/libceph 0x5fe4b2fa ceph_pagelist_truncate +EXPORT_SYMBOL net/ceph/libceph 0x6286297c ceph_compare_options +EXPORT_SYMBOL net/ceph/libceph 0x63758856 ceph_str_hash_name +EXPORT_SYMBOL net/ceph/libceph 0x651abc3d ceph_monc_open_session +EXPORT_SYMBOL net/ceph/libceph 0x6608c5cc ceph_monc_do_statfs +EXPORT_SYMBOL net/ceph/libceph 0x675328c1 __ceph_open_session +EXPORT_SYMBOL net/ceph/libceph 0x6902c981 ceph_osdc_alloc_request +EXPORT_SYMBOL net/ceph/libceph 0x6b2e3bcd ceph_get_snap_context +EXPORT_SYMBOL net/ceph/libceph 0x6c5d5ac1 ceph_calc_pg_primary +EXPORT_SYMBOL net/ceph/libceph 0x6d2d06a1 ceph_pagelist_reserve +EXPORT_SYMBOL net/ceph/libceph 0x6ed41be2 ceph_pagelist_append +EXPORT_SYMBOL net/ceph/libceph 0x75c0ae22 ceph_con_keepalive +EXPORT_SYMBOL net/ceph/libceph 0x75f8406a ceph_client_id +EXPORT_SYMBOL net/ceph/libceph 0x76f1c5be osd_req_op_cls_request_data_pagelist +EXPORT_SYMBOL net/ceph/libceph 0x77692acb ceph_msg_last_put +EXPORT_SYMBOL net/ceph/libceph 0x77baec74 ceph_osdc_start_request +EXPORT_SYMBOL net/ceph/libceph 0x7d667ae6 ceph_alloc_page_vector +EXPORT_SYMBOL net/ceph/libceph 0x80015100 ceph_msg_data_add_pagelist +EXPORT_SYMBOL net/ceph/libceph 0x8158bba7 osd_req_op_init +EXPORT_SYMBOL net/ceph/libceph 0x81637e6b ceph_create_client +EXPORT_SYMBOL net/ceph/libceph 0x826a60b4 osd_req_op_extent_osd_data_bio +EXPORT_SYMBOL net/ceph/libceph 0x8c93d742 osd_req_op_extent_osd_data_pages +EXPORT_SYMBOL net/ceph/libceph 0x96bf413d ceph_con_init +EXPORT_SYMBOL net/ceph/libceph 0x99e36571 ceph_osdc_cleanup +EXPORT_SYMBOL net/ceph/libceph 0x9f534f4d ceph_buffer_release +EXPORT_SYMBOL net/ceph/libceph 0xa40bd703 ceph_pagelist_free_reserve +EXPORT_SYMBOL net/ceph/libceph 0xa42bf772 osd_req_op_extent_update +EXPORT_SYMBOL net/ceph/libceph 0xa43455db ceph_zero_page_vector_range +EXPORT_SYMBOL net/ceph/libceph 0xa95a0258 ceph_destroy_client +EXPORT_SYMBOL net/ceph/libceph 0xa98506ab ceph_monc_init +EXPORT_SYMBOL net/ceph/libceph 0xaad05354 ceph_con_close +EXPORT_SYMBOL net/ceph/libceph 0xae3515ba ceph_create_snap_context +EXPORT_SYMBOL net/ceph/libceph 0xae510e6b ceph_open_session +EXPORT_SYMBOL net/ceph/libceph 0xaec264dd ceph_osdc_put_event +EXPORT_SYMBOL net/ceph/libceph 0xaf2b8de6 ceph_release_page_vector +EXPORT_SYMBOL net/ceph/libceph 0xafb8a407 ceph_msgr_flush +EXPORT_SYMBOL net/ceph/libceph 0xb08bb988 ceph_osdc_sync +EXPORT_SYMBOL net/ceph/libceph 0xb477c0b7 ceph_auth_create_authorizer +EXPORT_SYMBOL net/ceph/libceph 0xb4c999b5 ceph_auth_is_authenticated +EXPORT_SYMBOL net/ceph/libceph 0xb54676fa ceph_msg_type_name +EXPORT_SYMBOL net/ceph/libceph 0xb6081d6d ceph_msgr_exit +EXPORT_SYMBOL net/ceph/libceph 0xb79995fa ceph_copy_page_vector_to_user +EXPORT_SYMBOL net/ceph/libceph 0xb8dcbddb ceph_copy_to_page_vector +EXPORT_SYMBOL net/ceph/libceph 0xbc2b7b85 ceph_monc_create_snapid +EXPORT_SYMBOL net/ceph/libceph 0xbdd694b0 ceph_msg_data_add_pages +EXPORT_SYMBOL net/ceph/libceph 0xc28ec3d2 ceph_osdc_set_request_linger +EXPORT_SYMBOL net/ceph/libceph 0xc4a80955 ceph_debugfs_cleanup +EXPORT_SYMBOL net/ceph/libceph 0xc55de604 ceph_parse_options +EXPORT_SYMBOL net/ceph/libceph 0xc7540829 ceph_copy_user_to_page_vector +EXPORT_SYMBOL net/ceph/libceph 0xc9f82b38 ceph_msgr_init +EXPORT_SYMBOL net/ceph/libceph 0xcb50a624 ceph_parse_ips +EXPORT_SYMBOL net/ceph/libceph 0xd1b8a716 ceph_osdc_create_event +EXPORT_SYMBOL net/ceph/libceph 0xd2c107bb ceph_flags_to_mode +EXPORT_SYMBOL net/ceph/libceph 0xd79a0400 ceph_check_fsid +EXPORT_SYMBOL net/ceph/libceph 0xda47b668 ceph_osdc_new_request +EXPORT_SYMBOL net/ceph/libceph 0xda95d65b osd_req_op_extent_init +EXPORT_SYMBOL net/ceph/libceph 0xe1de6613 ceph_put_page_vector +EXPORT_SYMBOL net/ceph/libceph 0xe55fd144 osd_req_op_watch_init +EXPORT_SYMBOL net/ceph/libceph 0xe66e29d5 ceph_monc_validate_auth +EXPORT_SYMBOL net/ceph/libceph 0xe82c9c32 ceph_pg_pool_name_by_id +EXPORT_SYMBOL net/ceph/libceph 0xf4cafbf4 ceph_monc_got_mdsmap +EXPORT_SYMBOL net/ceph/libceph 0xf547148c osd_req_op_extent_osd_data_pagelist +EXPORT_SYMBOL net/ceph/libceph 0xf788c4fc osd_req_op_cls_init +EXPORT_SYMBOL net/ceph/libceph 0xfadd3b65 ceph_osdc_wait_request +EXPORT_SYMBOL net/ceph/libceph 0xff678124 ceph_messenger_init +EXPORT_SYMBOL net/ceph/libceph 0xff738ab8 osd_req_op_cls_response_data +EXPORT_SYMBOL net/dccp/dccp_ipv4 0x3a4d101c dccp_syn_ack_timeout +EXPORT_SYMBOL net/ieee802154/ieee802154 0x00d83300 ieee802154_nl_assoc_indic +EXPORT_SYMBOL net/ieee802154/ieee802154 0x0cbac62a wpan_phy_alloc +EXPORT_SYMBOL net/ieee802154/ieee802154 0x204fedb4 wpan_phy_for_each +EXPORT_SYMBOL net/ieee802154/ieee802154 0x2f52e6cb ieee802154_nl_beacon_indic +EXPORT_SYMBOL net/ieee802154/ieee802154 0x35805c59 wpan_phy_free +EXPORT_SYMBOL net/ieee802154/ieee802154 0x3eaa295c ieee802154_nl_scan_confirm +EXPORT_SYMBOL net/ieee802154/ieee802154 0x65b3d4b3 wpan_phy_find +EXPORT_SYMBOL net/ieee802154/ieee802154 0x95307f59 ieee802154_nl_disassoc_indic +EXPORT_SYMBOL net/ieee802154/ieee802154 0x97fa172d ieee802154_nl_disassoc_confirm +EXPORT_SYMBOL net/ieee802154/ieee802154 0xbfba7852 wpan_phy_unregister +EXPORT_SYMBOL net/ieee802154/ieee802154 0xc46aae4b ieee802154_nl_start_confirm +EXPORT_SYMBOL net/ieee802154/ieee802154 0xcc2939ff ieee802154_nl_assoc_confirm +EXPORT_SYMBOL net/ieee802154/ieee802154 0xee5a1adf wpan_phy_register +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0x0c1e6f64 arpt_do_table +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0x95d49504 arpt_register_table +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0xf4216814 arpt_unregister_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0x93217578 ipt_unregister_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0x96a31958 ipt_do_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0x987b2102 ipt_register_table +EXPORT_SYMBOL net/ipv4/tunnel4 0x09ebde6a xfrm4_tunnel_deregister +EXPORT_SYMBOL net/ipv4/tunnel4 0xfb0b2ade xfrm4_tunnel_register +EXPORT_SYMBOL net/ipv6/ip6_tunnel 0x4fab4710 ip6_tnl_parse_tlv_enc_lim +EXPORT_SYMBOL net/ipv6/ip6_tunnel 0xa700c4fa ip6_tnl_get_cap +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x02d383a8 ip6t_do_table +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x3a271976 ip6t_register_table +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x51ae0f41 ip6t_unregister_table +EXPORT_SYMBOL net/ipv6/tunnel6 0x31387524 xfrm6_tunnel_deregister +EXPORT_SYMBOL net/ipv6/tunnel6 0x453be4b0 xfrm6_tunnel_register +EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0x5173bea3 xfrm6_tunnel_alloc_spi +EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0x7d1af812 xfrm6_tunnel_spi_lookup +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x0c3e8f24 ircomm_control_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x2711e03e ircomm_disconnect_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x40574ec8 ircomm_flow_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x86d95e56 ircomm_connect_response +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x96f7134f ircomm_open +EXPORT_SYMBOL net/irda/ircomm/ircomm 0xdc7b1da2 ircomm_data_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0xe8058b9a ircomm_close +EXPORT_SYMBOL net/irda/ircomm/ircomm 0xfc285a8e ircomm_connect_request +EXPORT_SYMBOL net/irda/irda 0x06a3ee58 irias_new_integer_value +EXPORT_SYMBOL net/irda/irda 0x07d3647c irlmp_register_service +EXPORT_SYMBOL net/irda/irda 0x0fe7d525 irda_device_set_media_busy +EXPORT_SYMBOL net/irda/irda 0x17a491c5 irias_add_octseq_attrib +EXPORT_SYMBOL net/irda/irda 0x2036ad06 irda_param_insert +EXPORT_SYMBOL net/irda/irda 0x2ba32e8b irlmp_connect_request +EXPORT_SYMBOL net/irda/irda 0x3247bfcd irlmp_close_lsap +EXPORT_SYMBOL net/irda/irda 0x324ec339 irlap_close +EXPORT_SYMBOL net/irda/irda 0x33cbe2c6 proc_irda +EXPORT_SYMBOL net/irda/irda 0x36cad55b hashbin_remove_this +EXPORT_SYMBOL net/irda/irda 0x37791344 hashbin_get_first +EXPORT_SYMBOL net/irda/irda 0x3d71176f irttp_open_tsap +EXPORT_SYMBOL net/irda/irda 0x422e7ab3 irlmp_disconnect_request +EXPORT_SYMBOL net/irda/irda 0x434cec5b irlmp_open_lsap +EXPORT_SYMBOL net/irda/irda 0x448b8aaa irda_qos_bits_to_value +EXPORT_SYMBOL net/irda/irda 0x46c1c4a2 irlmp_unregister_service +EXPORT_SYMBOL net/irda/irda 0x4b0935d7 alloc_irdadev +EXPORT_SYMBOL net/irda/irda 0x63ffa4bf irda_notify_init +EXPORT_SYMBOL net/irda/irda 0x6492e28c hashbin_get_next +EXPORT_SYMBOL net/irda/irda 0x6b043eba irda_init_max_qos_capabilies +EXPORT_SYMBOL net/irda/irda 0x6b76aa70 hashbin_delete +EXPORT_SYMBOL net/irda/irda 0x7042bc54 irlmp_register_client +EXPORT_SYMBOL net/irda/irda 0x731cec71 hashbin_insert +EXPORT_SYMBOL net/irda/irda 0x753733f3 irlmp_connect_response +EXPORT_SYMBOL net/irda/irda 0x763e54a4 irlmp_unregister_client +EXPORT_SYMBOL net/irda/irda 0x773b8189 irttp_dup +EXPORT_SYMBOL net/irda/irda 0x7957f728 irlmp_update_client +EXPORT_SYMBOL net/irda/irda 0x79dce598 irttp_connect_response +EXPORT_SYMBOL net/irda/irda 0x7e67ca6e irias_new_object +EXPORT_SYMBOL net/irda/irda 0x80c57ac5 irlap_open +EXPORT_SYMBOL net/irda/irda 0x83be0aac irttp_disconnect_request +EXPORT_SYMBOL net/irda/irda 0x845e4b09 irttp_udata_request +EXPORT_SYMBOL net/irda/irda 0x875db376 irttp_connect_request +EXPORT_SYMBOL net/irda/irda 0x8982c8d9 irias_delete_object +EXPORT_SYMBOL net/irda/irda 0x8a44dd5e hashbin_new +EXPORT_SYMBOL net/irda/irda 0x90ddb6bd hashbin_remove +EXPORT_SYMBOL net/irda/irda 0x91815586 irda_param_pack +EXPORT_SYMBOL net/irda/irda 0x993ad14b irda_param_extract_all +EXPORT_SYMBOL net/irda/irda 0x9ffda243 irias_add_string_attrib +EXPORT_SYMBOL net/irda/irda 0xa1dd3e14 iriap_close +EXPORT_SYMBOL net/irda/irda 0xa3ea7752 iriap_getvaluebyclass_request +EXPORT_SYMBOL net/irda/irda 0xaa8d74a6 irttp_flow_request +EXPORT_SYMBOL net/irda/irda 0xb22fd9e5 irttp_data_request +EXPORT_SYMBOL net/irda/irda 0xb3c13d7f irias_add_integer_attrib +EXPORT_SYMBOL net/irda/irda 0xb60b764a irttp_close_tsap +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 0xbf7dd554 hashbin_find +EXPORT_SYMBOL net/irda/irda 0xbfa7c08d hashbin_lock_find +EXPORT_SYMBOL net/irda/irda 0xc477368d irias_find_object +EXPORT_SYMBOL net/irda/irda 0xc84ffbd4 iriap_open +EXPORT_SYMBOL net/irda/irda 0xcf12fd99 async_unwrap_char +EXPORT_SYMBOL net/irda/irda 0xde4c6b3c irlmp_service_to_hint +EXPORT_SYMBOL net/irda/irda 0xedba761f irlmp_data_request +EXPORT_SYMBOL net/irda/irda 0xedd521c2 irlmp_get_discoveries +EXPORT_SYMBOL net/irda/irda 0xf199cba4 irias_insert_object +EXPORT_SYMBOL net/irda/irda 0xf448ca1a async_wrap_skb +EXPORT_SYMBOL net/l2tp/l2tp_core 0x9557949f l2tp_recv_common +EXPORT_SYMBOL net/lapb/lapb 0x0371bcda lapb_register +EXPORT_SYMBOL net/lapb/lapb 0x04ba32d9 lapb_data_received +EXPORT_SYMBOL net/lapb/lapb 0xa3f89009 lapb_unregister +EXPORT_SYMBOL net/lapb/lapb 0xb0e96367 lapb_connect_request +EXPORT_SYMBOL net/lapb/lapb 0xb78ac686 lapb_data_request +EXPORT_SYMBOL net/lapb/lapb 0xd43ea982 lapb_disconnect_request +EXPORT_SYMBOL net/lapb/lapb 0xdbdce9ac lapb_setparms +EXPORT_SYMBOL net/lapb/lapb 0xea7fcddb lapb_getparms +EXPORT_SYMBOL net/llc/llc 0x1e9e99fd llc_sap_list_lock +EXPORT_SYMBOL net/llc/llc 0x26a62cd1 llc_sap_find +EXPORT_SYMBOL net/llc/llc 0x38b92846 llc_remove_pack +EXPORT_SYMBOL net/llc/llc 0x52d7b2fd llc_sap_list +EXPORT_SYMBOL net/llc/llc 0x5509e289 llc_mac_hdr_init +EXPORT_SYMBOL net/llc/llc 0x701fe6aa llc_sap_open +EXPORT_SYMBOL net/llc/llc 0x776bf59c llc_build_and_send_ui_pkt +EXPORT_SYMBOL net/llc/llc 0x7f3e3869 llc_sap_close +EXPORT_SYMBOL net/llc/llc 0xdc993462 llc_set_station_handler +EXPORT_SYMBOL net/llc/llc 0xfd121995 llc_add_pack +EXPORT_SYMBOL net/mac80211/mac80211 0x009376f2 ieee80211_sta_set_buffered +EXPORT_SYMBOL net/mac80211/mac80211 0x027fa8af __ieee80211_get_assoc_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0x02d040dc ieee80211_rate_control_register +EXPORT_SYMBOL net/mac80211/mac80211 0x090cf72a ieee80211_tx_status_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0x09c19ef7 ieee80211_queue_stopped +EXPORT_SYMBOL net/mac80211/mac80211 0x0f3579e9 ieee80211_chswitch_done +EXPORT_SYMBOL net/mac80211/mac80211 0x0f460055 __ieee80211_get_radio_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0x0f6ad0e1 ieee80211_find_sta +EXPORT_SYMBOL net/mac80211/mac80211 0x100a0154 ieee80211_generic_frame_duration +EXPORT_SYMBOL net/mac80211/mac80211 0x20113caa ieee80211_beacon_loss +EXPORT_SYMBOL net/mac80211/mac80211 0x21a2ae71 ieee80211_sta_ps_transition +EXPORT_SYMBOL net/mac80211/mac80211 0x26a5fa0a ieee80211_pspoll_get +EXPORT_SYMBOL net/mac80211/mac80211 0x31d2ee7d __ieee80211_get_tx_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0x37acafe2 ieee80211_ap_probereq_get +EXPORT_SYMBOL net/mac80211/mac80211 0x3b92746e ieee80211_scan_completed +EXPORT_SYMBOL net/mac80211/mac80211 0x4c611759 ieee80211_probereq_get +EXPORT_SYMBOL net/mac80211/mac80211 0x4d3e3bb7 ieee80211_ctstoself_duration +EXPORT_SYMBOL net/mac80211/mac80211 0x4f5b5bfc ieee80211_stop_queues +EXPORT_SYMBOL net/mac80211/mac80211 0x545951cd ieee80211_report_low_ack +EXPORT_SYMBOL net/mac80211/mac80211 0x561ab8a8 __ieee80211_get_rx_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0x5c28cca5 ieee80211_get_tkip_p1k_iv +EXPORT_SYMBOL net/mac80211/mac80211 0x5d91c741 ieee80211_stop_tx_ba_cb_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0x5db8fa9a ieee80211_radar_detected +EXPORT_SYMBOL net/mac80211/mac80211 0x614ea16a wiphy_to_ieee80211_hw +EXPORT_SYMBOL net/mac80211/mac80211 0x62201d06 ieee80211_connection_loss +EXPORT_SYMBOL net/mac80211/mac80211 0x66341e0f ieee80211_rx +EXPORT_SYMBOL net/mac80211/mac80211 0x68173502 ieee80211_wake_queue +EXPORT_SYMBOL net/mac80211/mac80211 0x68aa2209 ieee80211_send_bar +EXPORT_SYMBOL net/mac80211/mac80211 0x68dbd850 ieee80211_rts_get +EXPORT_SYMBOL net/mac80211/mac80211 0x69747869 ieee80211_beacon_get_tim +EXPORT_SYMBOL net/mac80211/mac80211 0x74380b62 ieee80211_disable_rssi_reports +EXPORT_SYMBOL net/mac80211/mac80211 0x75064bfa ieee80211_cqm_rssi_notify +EXPORT_SYMBOL net/mac80211/mac80211 0x75097d2c ieee80211_sched_scan_stopped +EXPORT_SYMBOL net/mac80211/mac80211 0x913e869c ieee80211_sched_scan_results +EXPORT_SYMBOL net/mac80211/mac80211 0x965150a4 ieee80211_report_wowlan_wakeup +EXPORT_SYMBOL net/mac80211/mac80211 0x9c5e6334 ieee80211_sta_eosp +EXPORT_SYMBOL net/mac80211/mac80211 0x9ebefe67 ieee80211_stop_queue +EXPORT_SYMBOL net/mac80211/mac80211 0x9eeb830c ieee80211_wake_queues +EXPORT_SYMBOL net/mac80211/mac80211 0x9f02d5e5 ieee80211_free_hw +EXPORT_SYMBOL net/mac80211/mac80211 0xa1fc36c4 ieee80211_start_tx_ba_session +EXPORT_SYMBOL net/mac80211/mac80211 0xa9303f29 ieee80211_restart_hw +EXPORT_SYMBOL net/mac80211/mac80211 0xaa157485 ieee80211_get_tkip_rx_p1k +EXPORT_SYMBOL net/mac80211/mac80211 0xaf9ee250 ieee80211_queue_delayed_work +EXPORT_SYMBOL net/mac80211/mac80211 0xb5485faa ieee80211_enable_rssi_reports +EXPORT_SYMBOL net/mac80211/mac80211 0xb5787f17 ieee80211_unregister_hw +EXPORT_SYMBOL net/mac80211/mac80211 0xb6d599bf ieee80211_register_hw +EXPORT_SYMBOL net/mac80211/mac80211 0xbbbc7128 ieee80211_get_buffered_bc +EXPORT_SYMBOL net/mac80211/mac80211 0xbbe4a5ca ieee80211_queue_work +EXPORT_SYMBOL net/mac80211/mac80211 0xc1b84675 ieee80211_sta_block_awake +EXPORT_SYMBOL net/mac80211/mac80211 0xc47d9477 ieee80211_start_tx_ba_cb_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0xc7e9782e ieee80211_get_key_tx_seq +EXPORT_SYMBOL net/mac80211/mac80211 0xc92ce5e8 ieee80211_tx_status +EXPORT_SYMBOL net/mac80211/mac80211 0xc9859582 ieee80211_ctstoself_get +EXPORT_SYMBOL net/mac80211/mac80211 0xcb5df1df ieee80211_nullfunc_get +EXPORT_SYMBOL net/mac80211/mac80211 0xcccafe99 ieee80211_stop_tx_ba_session +EXPORT_SYMBOL net/mac80211/mac80211 0xcda61d51 ieee80211_iter_keys +EXPORT_SYMBOL net/mac80211/mac80211 0xd2b72e14 ieee80211_get_tkip_p2k +EXPORT_SYMBOL net/mac80211/mac80211 0xd5fd34b0 ieee80211_get_tx_rates +EXPORT_SYMBOL net/mac80211/mac80211 0xd8540a32 ieee80211_rts_duration +EXPORT_SYMBOL net/mac80211/mac80211 0xddb47d52 ieee80211_get_key_rx_seq +EXPORT_SYMBOL net/mac80211/mac80211 0xe3ee32ed ieee80211_proberesp_get +EXPORT_SYMBOL net/mac80211/mac80211 0xe7f50052 ieee80211_alloc_hw +EXPORT_SYMBOL net/mac80211/mac80211 0xf1823da0 __ieee80211_create_tpt_led_trigger +EXPORT_SYMBOL net/mac80211/mac80211 0xf2e5cd8b ieee80211_rate_control_unregister +EXPORT_SYMBOL net/mac80211/mac80211 0xf32eab86 ieee80211_stop_rx_ba_session +EXPORT_SYMBOL net/mac80211/mac80211 0xf395de03 ieee80211_aes_cmac_calculate_k1_k2 +EXPORT_SYMBOL net/mac80211/mac80211 0xfadccbcb rate_control_send_low +EXPORT_SYMBOL net/mac80211/mac80211 0xfb7b4c8a ieee80211_free_txskb +EXPORT_SYMBOL net/mac80211/mac80211 0xfb923dc0 ieee80211_rx_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0xffaf244e rate_control_set_rates +EXPORT_SYMBOL net/mac802154/mac802154 0x1dd302ea ieee802154_unregister_device +EXPORT_SYMBOL net/mac802154/mac802154 0x22c3dcbb ieee802154_free_device +EXPORT_SYMBOL net/mac802154/mac802154 0x37cea769 ieee802154_register_device +EXPORT_SYMBOL net/mac802154/mac802154 0x90038917 ieee802154_alloc_device +EXPORT_SYMBOL net/mac802154/mac802154 0x9cfeb5b1 ieee802154_rx_irqsafe +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x14ce5a43 unregister_ip_vs_scheduler +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x28020045 ip_vs_tcp_conn_listen +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x326b6a18 register_ip_vs_app +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x409bd516 register_ip_vs_app_inc +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x4fa5075e register_ip_vs_scheduler +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x529b7847 ip_vs_conn_put +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x7bdec9a8 unregister_ip_vs_app +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xa3a59cac ip_vs_conn_in_get +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xa623b576 ip_vs_proto_get +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xb95a62bf ip_vs_scheduler_err +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xd831a1a2 ip_vs_proto_name +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xe1761384 ip_vs_nfct_expect_related +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xe7873117 ip_vs_proto_data_get +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xf5ba3c1a ip_vs_conn_new +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xff658695 ip_vs_conn_out_get +EXPORT_SYMBOL net/netfilter/nf_conntrack 0x2f99a1f9 nf_conntrack_untracked +EXPORT_SYMBOL net/netfilter/nf_conntrack 0x3e3dd58f __nf_ct_ext_add_length +EXPORT_SYMBOL net/netfilter/nf_conntrack 0x9707e18e __nf_ct_ext_destroy +EXPORT_SYMBOL net/netfilter/nf_conntrack_pptp 0x827cc6a1 pptp_msg_name +EXPORT_SYMBOL net/netfilter/nf_conntrack_proto_gre 0x40cca182 nf_ct_gre_keymap_flush +EXPORT_SYMBOL net/netfilter/nf_nat 0x0bd196fe nf_nat_used_tuple +EXPORT_SYMBOL net/netfilter/nf_nat 0x0d82d2bf nf_xfrm_me_harder +EXPORT_SYMBOL net/netfilter/nf_nat 0x42e36e6f nf_nat_mangle_udp_packet +EXPORT_SYMBOL net/netfilter/nf_nat 0x82306265 nf_nat_follow_master +EXPORT_SYMBOL net/netfilter/nf_nat 0x94540dd3 __nf_nat_mangle_tcp_packet +EXPORT_SYMBOL net/netfilter/nf_nat 0xb99e6c57 nf_nat_setup_info +EXPORT_SYMBOL net/netfilter/x_tables 0x08c473b7 xt_alloc_table_info +EXPORT_SYMBOL net/netfilter/x_tables 0x288834fb xt_unregister_match +EXPORT_SYMBOL net/netfilter/x_tables 0x3cc01ae0 xt_unregister_matches +EXPORT_SYMBOL net/netfilter/x_tables 0x3e953a81 xt_register_matches +EXPORT_SYMBOL net/netfilter/x_tables 0x6a6c6742 xt_register_target +EXPORT_SYMBOL net/netfilter/x_tables 0x749f792e xt_find_target +EXPORT_SYMBOL net/netfilter/x_tables 0x7ed55fa3 xt_unregister_target +EXPORT_SYMBOL net/netfilter/x_tables 0x8af31319 xt_register_targets +EXPORT_SYMBOL net/netfilter/x_tables 0xa7860cd9 xt_find_match +EXPORT_SYMBOL net/netfilter/x_tables 0xb04417f7 xt_unregister_targets +EXPORT_SYMBOL net/netfilter/x_tables 0xb28f5ef1 xt_free_table_info +EXPORT_SYMBOL net/netfilter/x_tables 0xf18327cc xt_register_match +EXPORT_SYMBOL net/nfc/hci/hci 0x073d8ddd nfc_hci_set_clientdata +EXPORT_SYMBOL net/nfc/hci/hci 0x080fa9bb nfc_hci_target_discovered +EXPORT_SYMBOL net/nfc/hci/hci 0x4207def0 nfc_hci_register_device +EXPORT_SYMBOL net/nfc/hci/hci 0x43028a27 nfc_hci_result_to_errno +EXPORT_SYMBOL net/nfc/hci/hci 0x44798fbc nfc_hci_send_event +EXPORT_SYMBOL net/nfc/hci/hci 0x48fb94f7 nfc_hci_send_cmd_async +EXPORT_SYMBOL net/nfc/hci/hci 0x50c4d369 nfc_hci_free_device +EXPORT_SYMBOL net/nfc/hci/hci 0x6fa61c90 nfc_hci_driver_failure +EXPORT_SYMBOL net/nfc/hci/hci 0x71715031 nfc_hci_disconnect_gate +EXPORT_SYMBOL net/nfc/hci/hci 0x744346c0 nfc_hci_allocate_device +EXPORT_SYMBOL net/nfc/hci/hci 0xa1819673 nfc_hci_send_response +EXPORT_SYMBOL net/nfc/hci/hci 0xa5ec0ddc nfc_hci_unregister_device +EXPORT_SYMBOL net/nfc/hci/hci 0xa6424b16 nfc_hci_connect_gate +EXPORT_SYMBOL net/nfc/hci/hci 0xbca0b4fd nfc_hci_sak_to_protocol +EXPORT_SYMBOL net/nfc/hci/hci 0xc873787c nfc_hci_get_clientdata +EXPORT_SYMBOL net/nfc/hci/hci 0xddbd0faa nfc_hci_disconnect_all_gates +EXPORT_SYMBOL net/nfc/hci/hci 0xe5ca90fd nfc_hci_set_param +EXPORT_SYMBOL net/nfc/hci/hci 0xe6140c15 nfc_hci_get_param +EXPORT_SYMBOL net/nfc/hci/hci 0xe9d4f408 nfc_hci_recv_frame +EXPORT_SYMBOL net/nfc/hci/hci 0xf42f31c8 nfc_hci_send_cmd +EXPORT_SYMBOL net/nfc/nci/nci 0x15d284f7 nci_recv_frame +EXPORT_SYMBOL net/nfc/nci/nci 0x3e3e4c8d nci_free_device +EXPORT_SYMBOL net/nfc/nci/nci 0x577a25f0 nci_allocate_device +EXPORT_SYMBOL net/nfc/nci/nci 0xa8fd8810 nci_unregister_device +EXPORT_SYMBOL net/nfc/nci/nci 0xba490602 nci_to_errno +EXPORT_SYMBOL net/nfc/nci/nci 0xe1175db4 nci_register_device +EXPORT_SYMBOL net/nfc/nfc 0x0eb03fd9 nfc_tm_activated +EXPORT_SYMBOL net/nfc/nfc 0x1119712b nfc_tm_data_received +EXPORT_SYMBOL net/nfc/nfc 0x1c4bd4b1 nfc_unregister_device +EXPORT_SYMBOL net/nfc/nfc 0x32156e65 nfc_get_local_general_bytes +EXPORT_SYMBOL net/nfc/nfc 0x3f8bcf6a nfc_class +EXPORT_SYMBOL net/nfc/nfc 0x417c7728 nfc_set_remote_general_bytes +EXPORT_SYMBOL net/nfc/nfc 0x546d41d3 nfc_tm_deactivated +EXPORT_SYMBOL net/nfc/nfc 0x5999da95 nfc_proto_register +EXPORT_SYMBOL net/nfc/nfc 0x5afa1ec4 nfc_fw_download_done +EXPORT_SYMBOL net/nfc/nfc 0x67a5372c nfc_driver_failure +EXPORT_SYMBOL net/nfc/nfc 0x69fccd43 nfc_proto_unregister +EXPORT_SYMBOL net/nfc/nfc 0x743c3348 nfc_alloc_recv_skb +EXPORT_SYMBOL net/nfc/nfc 0x78cc751f nfc_add_se +EXPORT_SYMBOL net/nfc/nfc 0x833402f0 nfc_dep_link_is_up +EXPORT_SYMBOL net/nfc/nfc 0xb8ea449d nfc_allocate_device +EXPORT_SYMBOL net/nfc/nfc 0xbc9e3d20 nfc_remove_se +EXPORT_SYMBOL net/nfc/nfc 0xd1a04d88 nfc_target_lost +EXPORT_SYMBOL net/nfc/nfc 0xd6fdb6fb nfc_register_device +EXPORT_SYMBOL net/nfc/nfc 0xe97291c0 nfc_targets_found +EXPORT_SYMBOL net/phonet/phonet 0x2516af32 phonet_proto_register +EXPORT_SYMBOL net/phonet/phonet 0x2f63169c pn_sock_get_port +EXPORT_SYMBOL net/phonet/phonet 0x5606af64 pn_sock_unhash +EXPORT_SYMBOL net/phonet/phonet 0x679ebe1b phonet_proto_unregister +EXPORT_SYMBOL net/phonet/phonet 0x6a6c839c pn_skb_send +EXPORT_SYMBOL net/phonet/phonet 0xbc47f020 phonet_header_ops +EXPORT_SYMBOL net/phonet/phonet 0xd3217bd9 pn_sock_hash +EXPORT_SYMBOL net/phonet/phonet 0xf6aa8c93 phonet_stream_ops +EXPORT_SYMBOL net/rds/rds 0x5031b8c5 rds_str_array +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x0134f77d rxrpc_kernel_intercept_rx_messages +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x1e3d6d80 rxrpc_get_null_key +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x2d553199 rxrpc_kernel_send_data +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x40255539 rxrpc_kernel_end_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x4512a222 rxrpc_kernel_reject_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x5b779011 rxrpc_kernel_begin_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x73567921 rxrpc_kernel_is_data_last +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x75cdc655 rxrpc_get_server_data_key +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x8f9c31e5 rxrpc_kernel_get_error_number +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xa575dfee rxrpc_kernel_abort_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xb82b3021 rxrpc_kernel_data_delivered +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xce8271b1 rxrpc_kernel_free_skb +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xdb1c7f4e rxrpc_kernel_get_abort_code +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xf90834ea key_type_rxrpc +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xf93aaf89 rxrpc_kernel_accept_call +EXPORT_SYMBOL net/sctp/sctp 0x72abf35b sctp_do_peeloff +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0x821c364e gss_pseudoflavor_to_service +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0x99be22d4 gss_mech_put +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0xbf7f7bc0 gss_mech_get +EXPORT_SYMBOL net/sunrpc/sunrpc 0xb1ef5d27 svc_pool_stats_open +EXPORT_SYMBOL net/wimax/wimax 0x23c7239d wimax_rfkill +EXPORT_SYMBOL net/wimax/wimax 0x3e356372 wimax_reset +EXPORT_SYMBOL net/wireless/cfg80211 0x001b473c wiphy_rfkill_start_polling +EXPORT_SYMBOL net/wireless/cfg80211 0x017649b3 cfg80211_disconnected +EXPORT_SYMBOL net/wireless/cfg80211 0x04d8b062 cfg80211_inform_bss +EXPORT_SYMBOL net/wireless/cfg80211 0x052e1d48 __ieee80211_get_channel +EXPORT_SYMBOL net/wireless/cfg80211 0x09c64fbd ieee80211_frequency_to_channel +EXPORT_SYMBOL net/wireless/cfg80211 0x0b6db852 cfg80211_gtk_rekey_notify +EXPORT_SYMBOL net/wireless/cfg80211 0x0c016797 cfg80211_del_sta +EXPORT_SYMBOL net/wireless/cfg80211 0x13aa3d0c cfg80211_sched_scan_stopped +EXPORT_SYMBOL net/wireless/cfg80211 0x1879fcbd bridge_tunnel_header +EXPORT_SYMBOL net/wireless/cfg80211 0x19e03378 cfg80211_get_p2p_attr +EXPORT_SYMBOL net/wireless/cfg80211 0x1ab1a6bd cfg80211_put_bss +EXPORT_SYMBOL net/wireless/cfg80211 0x1ac74e72 cfg80211_assoc_timeout +EXPORT_SYMBOL net/wireless/cfg80211 0x1dd9cbdc cfg80211_rx_spurious_frame +EXPORT_SYMBOL net/wireless/cfg80211 0x1f76cd23 cfg80211_ft_event +EXPORT_SYMBOL net/wireless/cfg80211 0x2004973f cfg80211_tx_mlme_mgmt +EXPORT_SYMBOL net/wireless/cfg80211 0x26339253 cfg80211_crit_proto_stopped +EXPORT_SYMBOL net/wireless/cfg80211 0x29864812 wiphy_new +EXPORT_SYMBOL net/wireless/cfg80211 0x2b5993e0 cfg80211_unregister_wdev +EXPORT_SYMBOL net/wireless/cfg80211 0x2f25904d ieee80211_amsdu_to_8023s +EXPORT_SYMBOL net/wireless/cfg80211 0x308ebf0e cfg80211_mgmt_tx_status +EXPORT_SYMBOL net/wireless/cfg80211 0x36202472 wiphy_rfkill_stop_polling +EXPORT_SYMBOL net/wireless/cfg80211 0x375f6431 cfg80211_notify_new_peer_candidate +EXPORT_SYMBOL net/wireless/cfg80211 0x3a93e34a cfg80211_radar_event +EXPORT_SYMBOL net/wireless/cfg80211 0x3e3d3a0b cfg80211_sched_scan_results +EXPORT_SYMBOL net/wireless/cfg80211 0x406a8302 cfg80211_chandef_valid +EXPORT_SYMBOL net/wireless/cfg80211 0x43cf4be4 cfg80211_rx_mlme_mgmt +EXPORT_SYMBOL net/wireless/cfg80211 0x475303f2 cfg80211_pmksa_candidate_notify +EXPORT_SYMBOL net/wireless/cfg80211 0x4becaade cfg80211_ch_switch_notify +EXPORT_SYMBOL net/wireless/cfg80211 0x4c3b5878 ieee80211_get_response_rate +EXPORT_SYMBOL net/wireless/cfg80211 0x506af265 wiphy_rfkill_set_hw_state +EXPORT_SYMBOL net/wireless/cfg80211 0x529a7a43 cfg80211_report_wowlan_wakeup +EXPORT_SYMBOL net/wireless/cfg80211 0x55d2b83c cfg80211_michael_mic_failure +EXPORT_SYMBOL net/wireless/cfg80211 0x5ab9b3ba cfg80211_conn_failed +EXPORT_SYMBOL net/wireless/cfg80211 0x6296bd68 cfg80211_reg_can_beacon +EXPORT_SYMBOL net/wireless/cfg80211 0x645a1ecb cfg80211_scan_done +EXPORT_SYMBOL net/wireless/cfg80211 0x69b18f43 rfc1042_header +EXPORT_SYMBOL net/wireless/cfg80211 0x6caabe9f wiphy_apply_custom_regulatory +EXPORT_SYMBOL net/wireless/cfg80211 0x6d6cb9ad ieee80211_operating_class_to_band +EXPORT_SYMBOL net/wireless/cfg80211 0x6e23ca78 ieee80211_get_hdrlen_from_skb +EXPORT_SYMBOL net/wireless/cfg80211 0x728f7cde cfg80211_new_sta +EXPORT_SYMBOL net/wireless/cfg80211 0x7331f16b wiphy_free +EXPORT_SYMBOL net/wireless/cfg80211 0x7903fe9b cfg80211_ready_on_channel +EXPORT_SYMBOL net/wireless/cfg80211 0x79f6d958 cfg80211_remain_on_channel_expired +EXPORT_SYMBOL net/wireless/cfg80211 0x7e0d9bb2 cfg80211_unlink_bss +EXPORT_SYMBOL net/wireless/cfg80211 0x7ef39823 ieee80211_hdrlen +EXPORT_SYMBOL net/wireless/cfg80211 0x7fe1a403 cfg80211_find_ie +EXPORT_SYMBOL net/wireless/cfg80211 0x84c18ada cfg80211_ref_bss +EXPORT_SYMBOL net/wireless/cfg80211 0x8acc4977 cfg80211_probe_status +EXPORT_SYMBOL net/wireless/cfg80211 0x8f4f8a5d cfg80211_cqm_pktloss_notify +EXPORT_SYMBOL net/wireless/cfg80211 0x92c0c538 ieee80211_bss_get_ie +EXPORT_SYMBOL net/wireless/cfg80211 0x95ad83d7 ieee80211_data_from_8023 +EXPORT_SYMBOL net/wireless/cfg80211 0x982e6b6d ieee80211_radiotap_iterator_init +EXPORT_SYMBOL net/wireless/cfg80211 0x9842edde regulatory_hint +EXPORT_SYMBOL net/wireless/cfg80211 0x9902ad00 cfg80211_roamed +EXPORT_SYMBOL net/wireless/cfg80211 0x9eca6f3b cfg80211_chandef_usable +EXPORT_SYMBOL net/wireless/cfg80211 0xa1425906 ieee80211_channel_to_frequency +EXPORT_SYMBOL net/wireless/cfg80211 0xa197b1ff ieee80211_get_mesh_hdrlen +EXPORT_SYMBOL net/wireless/cfg80211 0xa3121454 cfg80211_rx_assoc_resp +EXPORT_SYMBOL net/wireless/cfg80211 0xa88c690a cfg80211_connect_result +EXPORT_SYMBOL net/wireless/cfg80211 0xb16952cc ieee80211_data_to_8023 +EXPORT_SYMBOL net/wireless/cfg80211 0xb5e59e55 cfg80211_tdls_oper_request +EXPORT_SYMBOL net/wireless/cfg80211 0xb6023294 cfg80211_inform_bss_frame +EXPORT_SYMBOL net/wireless/cfg80211 0xb85c0cd0 cfg80211_roamed_bss +EXPORT_SYMBOL net/wireless/cfg80211 0xbd65eba4 cfg80211_rx_mgmt +EXPORT_SYMBOL net/wireless/cfg80211 0xc15c8611 cfg80211_chandef_create +EXPORT_SYMBOL net/wireless/cfg80211 0xc43bebe1 cfg80211_ibss_joined +EXPORT_SYMBOL net/wireless/cfg80211 0xc63f1b81 ieee80211_radiotap_iterator_next +EXPORT_SYMBOL net/wireless/cfg80211 0xc74c0e50 wiphy_register +EXPORT_SYMBOL net/wireless/cfg80211 0xcf618a57 cfg80211_calculate_bitrate +EXPORT_SYMBOL net/wireless/cfg80211 0xd32c1fca wiphy_unregister +EXPORT_SYMBOL net/wireless/cfg80211 0xd6bb068d cfg80211_cqm_rssi_notify +EXPORT_SYMBOL net/wireless/cfg80211 0xd9c2fe8f cfg80211_cac_event +EXPORT_SYMBOL net/wireless/cfg80211 0xdb074a30 cfg80211_get_bss +EXPORT_SYMBOL net/wireless/cfg80211 0xe3167eca ieee80211_mandatory_rates +EXPORT_SYMBOL net/wireless/cfg80211 0xe627be93 cfg80211_rx_unprot_mlme_mgmt +EXPORT_SYMBOL net/wireless/cfg80211 0xe6d9b2db cfg80211_rx_unexpected_4addr_frame +EXPORT_SYMBOL net/wireless/cfg80211 0xee310f7e cfg80211_report_obss_beacon +EXPORT_SYMBOL net/wireless/cfg80211 0xee42db3c cfg80211_chandef_compatible +EXPORT_SYMBOL net/wireless/cfg80211 0xef293b23 cfg80211_cqm_txe_notify +EXPORT_SYMBOL net/wireless/cfg80211 0xf1fc8c84 cfg80211_check_station_change +EXPORT_SYMBOL net/wireless/cfg80211 0xf609ea87 cfg80211_auth_timeout +EXPORT_SYMBOL net/wireless/cfg80211 0xfd01e142 cfg80211_classify8021d +EXPORT_SYMBOL net/wireless/cfg80211 0xfea3805b freq_reg_info +EXPORT_SYMBOL net/wireless/cfg80211 0xfed4d591 cfg80211_find_vendor_ie +EXPORT_SYMBOL net/wireless/lib80211 0x1795cb9d lib80211_register_crypto_ops +EXPORT_SYMBOL net/wireless/lib80211 0x2d0f99e5 print_ssid +EXPORT_SYMBOL net/wireless/lib80211 0x35d660d7 lib80211_get_crypto_ops +EXPORT_SYMBOL net/wireless/lib80211 0x52c69c45 lib80211_unregister_crypto_ops +EXPORT_SYMBOL net/wireless/lib80211 0x545a5bbc lib80211_crypt_info_init +EXPORT_SYMBOL net/wireless/lib80211 0x698c0b60 lib80211_crypt_info_free +EXPORT_SYMBOL net/wireless/lib80211 0x89962a69 lib80211_crypt_delayed_deinit +EXPORT_SYMBOL sound/ac97_bus 0xe6332b56 ac97_bus_type +EXPORT_SYMBOL sound/core/seq/snd-seq 0x170ece22 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 0x94fe356c snd_seq_kernel_client_enqueue_blocking +EXPORT_SYMBOL sound/core/seq/snd-seq 0x9b1ef595 snd_seq_event_port_attach +EXPORT_SYMBOL sound/core/seq/snd-seq 0xb4d029a6 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 0x34f992d7 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 0x7295f2a8 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-event 0x127b30fb snd_midi_event_encode +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x1cdc0812 snd_midi_event_decode +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x59eb74ae snd_midi_event_encode_byte +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x8102ed2f snd_midi_event_reset_encode +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0xb11ba32d snd_midi_event_new +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0xb2c7f684 snd_midi_event_reset_decode +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0xea0e5748 snd_midi_event_free +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0xed42580b snd_midi_event_no_status +EXPORT_SYMBOL sound/core/seq/snd-seq-virmidi 0x226c27f1 snd_virmidi_new +EXPORT_SYMBOL sound/core/snd-hwdep 0xe6b409c7 snd_hwdep_new +EXPORT_SYMBOL sound/core/snd-rawmidi 0x0ab0632c snd_rawmidi_receive +EXPORT_SYMBOL sound/core/snd-rawmidi 0x0d4921d0 snd_rawmidi_output_params +EXPORT_SYMBOL sound/core/snd-rawmidi 0x173ddf07 snd_rawmidi_input_params +EXPORT_SYMBOL sound/core/snd-rawmidi 0x1c2733fb snd_rawmidi_kernel_write +EXPORT_SYMBOL sound/core/snd-rawmidi 0x428e205b snd_rawmidi_transmit_ack +EXPORT_SYMBOL sound/core/snd-rawmidi 0x613f0457 snd_rawmidi_drain_input +EXPORT_SYMBOL sound/core/snd-rawmidi 0x72f51679 snd_rawmidi_transmit_peek +EXPORT_SYMBOL sound/core/snd-rawmidi 0x84ecfdbc snd_rawmidi_kernel_release +EXPORT_SYMBOL sound/core/snd-rawmidi 0x8dc1511e snd_rawmidi_drain_output +EXPORT_SYMBOL sound/core/snd-rawmidi 0x9cddc35c snd_rawmidi_transmit_empty +EXPORT_SYMBOL sound/core/snd-rawmidi 0xa20b4ce4 snd_rawmidi_drop_output +EXPORT_SYMBOL sound/core/snd-rawmidi 0xac8e9a29 snd_rawmidi_transmit +EXPORT_SYMBOL sound/core/snd-rawmidi 0xb1d58cab snd_rawmidi_new +EXPORT_SYMBOL sound/core/snd-rawmidi 0xbf710727 snd_rawmidi_kernel_read +EXPORT_SYMBOL sound/core/snd-rawmidi 0xd2b58f87 snd_rawmidi_kernel_open +EXPORT_SYMBOL sound/core/snd-rawmidi 0xdceabedb snd_rawmidi_set_ops +EXPORT_SYMBOL sound/core/snd-rawmidi 0xf78fbc39 snd_rawmidi_info_select +EXPORT_SYMBOL sound/drivers/mpu401/snd-mpu401-uart 0x2a50d31e snd_mpu401_uart_new +EXPORT_SYMBOL sound/drivers/mpu401/snd-mpu401-uart 0x6d629c59 snd_mpu401_uart_interrupt_tx +EXPORT_SYMBOL sound/drivers/mpu401/snd-mpu401-uart 0xc0fec227 snd_mpu401_uart_interrupt +EXPORT_SYMBOL sound/i2c/other/snd-tea575x-tuner 0x03a67af4 snd_tea575x_exit +EXPORT_SYMBOL sound/i2c/other/snd-tea575x-tuner 0x1d092697 snd_tea575x_set_freq +EXPORT_SYMBOL sound/i2c/other/snd-tea575x-tuner 0xff4e0d97 snd_tea575x_init +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x242479fd snd_ac97_suspend +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x3da6c622 snd_ac97_pcm_double_rate_rules +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x412f18f4 snd_ac97_write +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x45d39151 snd_ac97_get_short_name +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x49c330ac snd_ac97_pcm_open +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x6c8fbbb7 snd_ac97_pcm_close +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x6fac047b snd_ac97_resume +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x91c3998b snd_ac97_bus +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xa854197f snd_ac97_set_rate +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xabb041fb snd_ac97_read +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xb0cc6045 snd_ac97_write_cache +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xb66f04b1 snd_ac97_tune_hardware +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xba8e0296 snd_ac97_update +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xbd3cfe03 snd_ac97_mixer +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xe3c1780f snd_ac97_pcm_assign +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xe9b0c587 snd_ac97_update_bits +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xf0595656 snd_ac97_update_power +EXPORT_SYMBOL sound/usb/snd-usbmidi-lib 0x01e4c06d 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 ubuntu/dm-raid4-5/dm-raid45 0x222128a4 dm_mem_cache_alloc +EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0x35c95b1b dm_mem_cache_client_create +EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0x6bb22237 dm_mem_cache_free +EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0x86e5acf9 dm_mem_cache_grow +EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0x920a7a41 dm_message_parse +EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0xa43471b6 dm_mem_cache_shrink +EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0xd55b290c dm_mem_cache_client_destroy +EXPORT_SYMBOL ubuntu/lttng/lib/lttng-lib-ring-buffer 0x2776a3e5 lib_ring_buffer_nesting +EXPORT_SYMBOL vmlinux 0x00000000 softirq_work_list +EXPORT_SYMBOL vmlinux 0x00079e78 tcf_em_unregister +EXPORT_SYMBOL vmlinux 0x0022bde3 bdi_set_max_ratio +EXPORT_SYMBOL vmlinux 0x0033604c phy_start +EXPORT_SYMBOL vmlinux 0x003cc294 __scm_destroy +EXPORT_SYMBOL vmlinux 0x006818a5 kobject_put +EXPORT_SYMBOL vmlinux 0x00790ad2 file_sb_list_del +EXPORT_SYMBOL vmlinux 0x00801678 flush_scheduled_work +EXPORT_SYMBOL vmlinux 0x0084e86d unregister_shrinker +EXPORT_SYMBOL vmlinux 0x009f14bf bdi_setup_and_register +EXPORT_SYMBOL vmlinux 0x00a7edb8 dev_uc_init +EXPORT_SYMBOL vmlinux 0x00bc12fa inet_frag_evictor +EXPORT_SYMBOL vmlinux 0x00cf4a7f of_get_parent +EXPORT_SYMBOL vmlinux 0x00e8097b csum_partial_copy_fromiovecend +EXPORT_SYMBOL vmlinux 0x01000e51 schedule +EXPORT_SYMBOL vmlinux 0x01130ee5 ppp_register_net_channel +EXPORT_SYMBOL vmlinux 0x01139ffc max_mapnr +EXPORT_SYMBOL vmlinux 0x01259eea amba_device_unregister +EXPORT_SYMBOL vmlinux 0x01647ada try_to_writeback_inodes_sb_nr +EXPORT_SYMBOL vmlinux 0x016ec1a4 netlink_broadcast +EXPORT_SYMBOL vmlinux 0x0174fcc5 skb_copy_datagram_iovec +EXPORT_SYMBOL vmlinux 0x0186e2de smp_call_function_many +EXPORT_SYMBOL vmlinux 0x01902adf netpoll_trap +EXPORT_SYMBOL vmlinux 0x01f1f297 generic_pipe_buf_unmap +EXPORT_SYMBOL vmlinux 0x02124474 ip_send_check +EXPORT_SYMBOL vmlinux 0x02196324 __aeabi_idiv +EXPORT_SYMBOL vmlinux 0x02370385 inode_sub_rsv_space +EXPORT_SYMBOL vmlinux 0x02517397 __skb_tx_hash +EXPORT_SYMBOL vmlinux 0x02649054 security_sock_rcv_skb +EXPORT_SYMBOL vmlinux 0x0274dc2b netif_get_num_default_rss_queues +EXPORT_SYMBOL vmlinux 0x027d0ca8 blk_queue_free_tags +EXPORT_SYMBOL vmlinux 0x0283dfe3 _snd_pcm_hw_params_any +EXPORT_SYMBOL vmlinux 0x02872748 posix_acl_to_xattr +EXPORT_SYMBOL vmlinux 0x02a18c74 nf_conntrack_destroy +EXPORT_SYMBOL vmlinux 0x02a6ce5a crc16_table +EXPORT_SYMBOL vmlinux 0x02c6123b security_mmap_file +EXPORT_SYMBOL vmlinux 0x02d0df94 register_quota_format +EXPORT_SYMBOL vmlinux 0x02d37ee1 jbd2_inode_cache +EXPORT_SYMBOL vmlinux 0x02ee26c1 free_pages_exact +EXPORT_SYMBOL vmlinux 0x02ef742b percpu_counter_set +EXPORT_SYMBOL vmlinux 0x02fd3a10 vm_insert_page +EXPORT_SYMBOL vmlinux 0x03026722 mempool_alloc +EXPORT_SYMBOL vmlinux 0x0321900b __vlan_find_dev_deep +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 0x035f83fb phy_connect +EXPORT_SYMBOL vmlinux 0x0366307a console_suspend_enabled +EXPORT_SYMBOL vmlinux 0x03757c9b of_get_named_gpio_flags +EXPORT_SYMBOL vmlinux 0x0376b279 set_nlink +EXPORT_SYMBOL vmlinux 0x037a0cba kfree +EXPORT_SYMBOL vmlinux 0x037ae713 padata_remove_cpu +EXPORT_SYMBOL vmlinux 0x03934ac4 sync_blockdev +EXPORT_SYMBOL vmlinux 0x03b1cbce __cleancache_get_page +EXPORT_SYMBOL vmlinux 0x03ba39b0 v7_flush_user_cache_all +EXPORT_SYMBOL vmlinux 0x03bd889d param_get_ulong +EXPORT_SYMBOL vmlinux 0x03c06156 bitmap_fold +EXPORT_SYMBOL vmlinux 0x03d22852 try_to_release_page +EXPORT_SYMBOL vmlinux 0x03fd2571 vm_unmap_ram +EXPORT_SYMBOL vmlinux 0x040951b9 dev_mc_add_global +EXPORT_SYMBOL vmlinux 0x0422c982 __d_drop +EXPORT_SYMBOL vmlinux 0x0422fe4a inet_csk_timer_bug_msg +EXPORT_SYMBOL vmlinux 0x0434867e blk_alloc_queue_node +EXPORT_SYMBOL vmlinux 0x04454e66 complete_request_key +EXPORT_SYMBOL vmlinux 0x04482cdb __refrigerator +EXPORT_SYMBOL vmlinux 0x045bae3e free_inode_nonrcu +EXPORT_SYMBOL vmlinux 0x046c1f16 param_ops_invbool +EXPORT_SYMBOL vmlinux 0x048361c8 bio_advance +EXPORT_SYMBOL vmlinux 0x0487f831 fb_find_best_display +EXPORT_SYMBOL vmlinux 0x0488e609 scsi_get_device_flags_keyed +EXPORT_SYMBOL vmlinux 0x048be940 __sk_mem_schedule +EXPORT_SYMBOL vmlinux 0x04a33d9c d_prune_aliases +EXPORT_SYMBOL vmlinux 0x04cda566 snd_interval_refine +EXPORT_SYMBOL vmlinux 0x04cf8901 scsi_device_set_state +EXPORT_SYMBOL vmlinux 0x04ddf8d3 eth_change_mtu +EXPORT_SYMBOL vmlinux 0x04ea56f9 _kstrtol +EXPORT_SYMBOL vmlinux 0x04ef3a1d mb_cache_shrink +EXPORT_SYMBOL vmlinux 0x0503460a __register_binfmt +EXPORT_SYMBOL vmlinux 0x051b080e scsi_host_alloc +EXPORT_SYMBOL vmlinux 0x05240ee7 percpu_counter_batch +EXPORT_SYMBOL vmlinux 0x054434d6 radix_tree_tag_set +EXPORT_SYMBOL vmlinux 0x0545548c kill_bdev +EXPORT_SYMBOL vmlinux 0x054bdc37 inet_add_protocol +EXPORT_SYMBOL vmlinux 0x0555db38 kernel_connect +EXPORT_SYMBOL vmlinux 0x056ee730 ipv6_hash_secret +EXPORT_SYMBOL vmlinux 0x057ce975 hex_dump_to_buffer +EXPORT_SYMBOL vmlinux 0x058cbfd2 tcp_mtup_init +EXPORT_SYMBOL vmlinux 0x0593a99b init_timer_key +EXPORT_SYMBOL vmlinux 0x059da60c __devm_release_region +EXPORT_SYMBOL vmlinux 0x05b0b273 iget_locked +EXPORT_SYMBOL vmlinux 0x05b58b6d jbd2_trans_will_send_data_barrier +EXPORT_SYMBOL vmlinux 0x05b71e3e ip6_route_output +EXPORT_SYMBOL vmlinux 0x05b89d82 task_tgid_nr_ns +EXPORT_SYMBOL vmlinux 0x05b9f708 netif_carrier_off +EXPORT_SYMBOL vmlinux 0x05c3c6b0 sk_run_filter +EXPORT_SYMBOL vmlinux 0x05cc1805 tty_port_block_til_ready +EXPORT_SYMBOL vmlinux 0x05f37a45 snd_pcm_hw_param_last +EXPORT_SYMBOL vmlinux 0x05f4bc10 mmc_wait_for_cmd +EXPORT_SYMBOL vmlinux 0x0603b54d skb_pad +EXPORT_SYMBOL vmlinux 0x0614681e ps2_handle_response +EXPORT_SYMBOL vmlinux 0x061651be strcat +EXPORT_SYMBOL vmlinux 0x061a5203 sg_copy_to_buffer +EXPORT_SYMBOL vmlinux 0x062af98a sock_queue_rcv_skb +EXPORT_SYMBOL vmlinux 0x062e4ee3 ww_mutex_unlock +EXPORT_SYMBOL vmlinux 0x0634100a bitmap_parselist_user +EXPORT_SYMBOL vmlinux 0x063aedbb tty_free_termios +EXPORT_SYMBOL vmlinux 0x0656cff5 mmc_flush_cache +EXPORT_SYMBOL vmlinux 0x067163ec sock_create_lite +EXPORT_SYMBOL vmlinux 0x067d8d35 security_release_secctx +EXPORT_SYMBOL vmlinux 0x068935c8 scsi_command_normalize_sense +EXPORT_SYMBOL vmlinux 0x06b984ee default_llseek +EXPORT_SYMBOL vmlinux 0x06c08838 truncate_pagecache +EXPORT_SYMBOL vmlinux 0x06c5e7f2 inet6_release +EXPORT_SYMBOL vmlinux 0x06cce272 dmam_free_coherent +EXPORT_SYMBOL vmlinux 0x06e0a21e bdi_init +EXPORT_SYMBOL vmlinux 0x06e5b350 phy_stop +EXPORT_SYMBOL vmlinux 0x06fe3b14 default_grn +EXPORT_SYMBOL vmlinux 0x07177445 journal_errno +EXPORT_SYMBOL vmlinux 0x071b7eea irq_stat +EXPORT_SYMBOL vmlinux 0x071f26ad register_netdev +EXPORT_SYMBOL vmlinux 0x072f0527 prepare_binprm +EXPORT_SYMBOL vmlinux 0x0736332c __task_pid_nr_ns +EXPORT_SYMBOL vmlinux 0x0740de8e dev_close +EXPORT_SYMBOL vmlinux 0x07774a3c xfrm_state_delete_tunnel +EXPORT_SYMBOL vmlinux 0x0785a3f1 blk_get_backing_dev_info +EXPORT_SYMBOL vmlinux 0x079280dc irq_set_chip +EXPORT_SYMBOL vmlinux 0x0799aca4 local_bh_enable +EXPORT_SYMBOL vmlinux 0x07a890c8 fb_alloc_cmap +EXPORT_SYMBOL vmlinux 0x07cc4a5d printk_timed_ratelimit +EXPORT_SYMBOL vmlinux 0x07cf0eb4 bitmap_endwrite +EXPORT_SYMBOL vmlinux 0x07cf9099 wait_for_completion_timeout +EXPORT_SYMBOL vmlinux 0x07d1800e dev_change_flags +EXPORT_SYMBOL vmlinux 0x07feb264 dma_async_tx_descriptor_init +EXPORT_SYMBOL vmlinux 0x0803e3ef datagram_poll +EXPORT_SYMBOL vmlinux 0x0808003e nand_lock +EXPORT_SYMBOL vmlinux 0x081be035 devm_request_threaded_irq +EXPORT_SYMBOL vmlinux 0x081f3afb complete_all +EXPORT_SYMBOL vmlinux 0x08216276 kobject_get +EXPORT_SYMBOL vmlinux 0x083c2cbe of_get_next_parent +EXPORT_SYMBOL vmlinux 0x083eb21c rfkill_unregister +EXPORT_SYMBOL vmlinux 0x0858ef91 md_error +EXPORT_SYMBOL vmlinux 0x086bb641 generic_file_direct_write +EXPORT_SYMBOL vmlinux 0x0896c69f blkdev_get_by_dev +EXPORT_SYMBOL vmlinux 0x089873f7 netdev_rx_csum_fault +EXPORT_SYMBOL vmlinux 0x08a24750 dev_addr_flush +EXPORT_SYMBOL vmlinux 0x08b6e430 ab3100_event_unregister +EXPORT_SYMBOL vmlinux 0x09014165 journal_get_create_access +EXPORT_SYMBOL vmlinux 0x09014de9 netdev_upper_dev_unlink +EXPORT_SYMBOL vmlinux 0x090865ae dev_warn +EXPORT_SYMBOL vmlinux 0x090a74e9 tcp_check_req +EXPORT_SYMBOL vmlinux 0x090f9b30 wireless_spy_update +EXPORT_SYMBOL vmlinux 0x0927d97f tty_register_ldisc +EXPORT_SYMBOL vmlinux 0x093bb484 tcp_v4_md5_lookup +EXPORT_SYMBOL vmlinux 0x0943a1e2 page_symlink_inode_operations +EXPORT_SYMBOL vmlinux 0x09620847 inet_csk_prepare_forced_close +EXPORT_SYMBOL vmlinux 0x0988c6c1 generic_fillattr +EXPORT_SYMBOL vmlinux 0x098b71c6 fb_dealloc_cmap +EXPORT_SYMBOL vmlinux 0x09a36f34 fb_blank +EXPORT_SYMBOL vmlinux 0x09b7cef4 simple_lookup +EXPORT_SYMBOL vmlinux 0x09c2e189 arp_send +EXPORT_SYMBOL vmlinux 0x09c55cec schedule_timeout_interruptible +EXPORT_SYMBOL vmlinux 0x09c8eb55 font_vga_8x16 +EXPORT_SYMBOL vmlinux 0x09cf1b46 proc_dointvec_jiffies +EXPORT_SYMBOL vmlinux 0x09d44df9 in_lock_functions +EXPORT_SYMBOL vmlinux 0x09e879f7 input_unregister_device +EXPORT_SYMBOL vmlinux 0x09f695e3 security_inode_permission +EXPORT_SYMBOL vmlinux 0x09fc94b6 napi_get_frags +EXPORT_SYMBOL vmlinux 0x0a0786de udplite_table +EXPORT_SYMBOL vmlinux 0x0a2487e0 unblock_all_signals +EXPORT_SYMBOL vmlinux 0x0a3131f6 strnchr +EXPORT_SYMBOL vmlinux 0x0a3b1e19 ipv6_skip_exthdr +EXPORT_SYMBOL vmlinux 0x0a469d23 mfd_clone_cell +EXPORT_SYMBOL vmlinux 0x0a66bfe7 phy_ethtool_gset +EXPORT_SYMBOL vmlinux 0x0a7adc6b inet6_register_icmp_sender +EXPORT_SYMBOL vmlinux 0x0a958ed4 down_write +EXPORT_SYMBOL vmlinux 0x0aa13d05 __raw_readsw +EXPORT_SYMBOL vmlinux 0x0aa5a8cd dst_destroy +EXPORT_SYMBOL vmlinux 0x0abb928d netif_set_real_num_tx_queues +EXPORT_SYMBOL vmlinux 0x0acb1a3c __bitmap_shift_right +EXPORT_SYMBOL vmlinux 0x0acf7679 dma_issue_pending_all +EXPORT_SYMBOL vmlinux 0x0adfab73 __wait_on_bit_lock +EXPORT_SYMBOL vmlinux 0x0af281d2 blk_post_runtime_resume +EXPORT_SYMBOL vmlinux 0x0b0d888b icmpv6_err_convert +EXPORT_SYMBOL vmlinux 0x0b1beb31 vmalloc_32_user +EXPORT_SYMBOL vmlinux 0x0b2366a6 inode_permission +EXPORT_SYMBOL vmlinux 0x0b261686 snd_pcm_hw_constraint_minmax +EXPORT_SYMBOL vmlinux 0x0b2c864b grab_cache_page_nowait +EXPORT_SYMBOL vmlinux 0x0b48677a __kfifo_init +EXPORT_SYMBOL vmlinux 0x0b56117f of_find_node_by_path +EXPORT_SYMBOL vmlinux 0x0b5dddcb neigh_seq_next +EXPORT_SYMBOL vmlinux 0x0b742fd7 simple_strtol +EXPORT_SYMBOL vmlinux 0x0bbc5908 gen_estimator_active +EXPORT_SYMBOL vmlinux 0x0bc477a2 irq_set_irq_type +EXPORT_SYMBOL vmlinux 0x0bc63e00 tty_mutex +EXPORT_SYMBOL vmlinux 0x0bcff5a1 netif_rx +EXPORT_SYMBOL vmlinux 0x0c04d35e km_new_mapping +EXPORT_SYMBOL vmlinux 0x0c31f54f sock_alloc_file +EXPORT_SYMBOL vmlinux 0x0c3aa5fe inode_change_ok +EXPORT_SYMBOL vmlinux 0x0c58a8cd netdev_increment_features +EXPORT_SYMBOL vmlinux 0x0c637520 generic_setlease +EXPORT_SYMBOL vmlinux 0x0c65e73c scsi_normalize_sense +EXPORT_SYMBOL vmlinux 0x0c693efa sock_rfree +EXPORT_SYMBOL vmlinux 0x0c8c9e99 scsi_show_extd_sense +EXPORT_SYMBOL vmlinux 0x0ca0c882 twl6030_interrupt_mask +EXPORT_SYMBOL vmlinux 0x0ca54fee _test_and_set_bit +EXPORT_SYMBOL vmlinux 0x0cae232b utf16s_to_utf8s +EXPORT_SYMBOL vmlinux 0x0cbde1d4 padata_alloc +EXPORT_SYMBOL vmlinux 0x0cdc9f0d neigh_sysctl_unregister +EXPORT_SYMBOL vmlinux 0x0cfefe1e percpu_counter_destroy +EXPORT_SYMBOL vmlinux 0x0d0627ed jbd2_journal_clear_err +EXPORT_SYMBOL vmlinux 0x0d3f57a2 _find_next_bit_le +EXPORT_SYMBOL vmlinux 0x0d4d7a32 _atomic_dec_and_lock +EXPORT_SYMBOL vmlinux 0x0d542439 __ipv6_addr_type +EXPORT_SYMBOL vmlinux 0x0d649f26 __netlink_dump_start +EXPORT_SYMBOL vmlinux 0x0d6fbd72 tcp_prot +EXPORT_SYMBOL vmlinux 0x0d910b93 rtnl_configure_link +EXPORT_SYMBOL vmlinux 0x0da10ec3 security_sock_graft +EXPORT_SYMBOL vmlinux 0x0da449eb in_dev_finish_destroy +EXPORT_SYMBOL vmlinux 0x0dac3e4d phy_detach +EXPORT_SYMBOL vmlinux 0x0dca0b62 scsi_remove_target +EXPORT_SYMBOL vmlinux 0x0de0d678 i2c_smbus_read_block_data +EXPORT_SYMBOL vmlinux 0x0e3a2245 scsi_block_when_processing_errors +EXPORT_SYMBOL vmlinux 0x0e6da44a set_normalized_timespec +EXPORT_SYMBOL vmlinux 0x0e75d8a2 xfrm_state_unregister_afinfo +EXPORT_SYMBOL vmlinux 0x0e88b910 read_dev_sector +EXPORT_SYMBOL vmlinux 0x0e9fcc01 md_write_start +EXPORT_SYMBOL vmlinux 0x0eab5335 elv_rb_del +EXPORT_SYMBOL vmlinux 0x0eac7bfe register_mtd_chip_driver +EXPORT_SYMBOL vmlinux 0x0ee12959 pagecache_write_end +EXPORT_SYMBOL vmlinux 0x0eee8aa7 scsi_device_get +EXPORT_SYMBOL vmlinux 0x0efc8620 remove_proc_entry +EXPORT_SYMBOL vmlinux 0x0f060d54 tc_classify_compat +EXPORT_SYMBOL vmlinux 0x0f0ce820 arm_coherent_dma_ops +EXPORT_SYMBOL vmlinux 0x0f157947 cpu_v7_set_pte_ext +EXPORT_SYMBOL vmlinux 0x0f28c4db journal_init_inode +EXPORT_SYMBOL vmlinux 0x0f3b52c4 snd_card_free +EXPORT_SYMBOL vmlinux 0x0f4c91ed ns_to_timespec +EXPORT_SYMBOL vmlinux 0x0f6be4ad init_net +EXPORT_SYMBOL vmlinux 0x0f84b74c dma_async_device_unregister +EXPORT_SYMBOL vmlinux 0x0f8a81e5 journal_ack_err +EXPORT_SYMBOL vmlinux 0x0fa2a45e __memzero +EXPORT_SYMBOL vmlinux 0x0fa77452 mmc_cleanup_queue +EXPORT_SYMBOL vmlinux 0x0fa913ba jbd2_journal_stop +EXPORT_SYMBOL vmlinux 0x0faddacd dev_addr_del +EXPORT_SYMBOL vmlinux 0x0faef0ed __tasklet_schedule +EXPORT_SYMBOL vmlinux 0x0ff178f6 __aeabi_idivmod +EXPORT_SYMBOL vmlinux 0x0ff2b602 slhc_compress +EXPORT_SYMBOL vmlinux 0x10000b1b d_hash_and_lookup +EXPORT_SYMBOL vmlinux 0x1000d13e tcf_hash_lookup +EXPORT_SYMBOL vmlinux 0x10561cd8 tty_port_hangup +EXPORT_SYMBOL vmlinux 0x106f13ab crc_t10dif_generic +EXPORT_SYMBOL vmlinux 0x1072a394 csum_partial_copy_from_user +EXPORT_SYMBOL vmlinux 0x107a8ce3 dcb_ieee_setapp +EXPORT_SYMBOL vmlinux 0x10b18581 vlan_vid_del +EXPORT_SYMBOL vmlinux 0x10d7069c kfree_skb_partial +EXPORT_SYMBOL vmlinux 0x10ee20bb default_blu +EXPORT_SYMBOL vmlinux 0x11089ac7 _ctype +EXPORT_SYMBOL vmlinux 0x11267875 scsi_extd_sense_format +EXPORT_SYMBOL vmlinux 0x114fc0a7 blk_cleanup_queue +EXPORT_SYMBOL vmlinux 0x1163f0a7 blk_max_low_pfn +EXPORT_SYMBOL vmlinux 0x116e7edb cdrom_media_changed +EXPORT_SYMBOL vmlinux 0x116f5510 notify_change +EXPORT_SYMBOL vmlinux 0x117093be qdisc_class_hash_init +EXPORT_SYMBOL vmlinux 0x117338e8 generic_write_checks +EXPORT_SYMBOL vmlinux 0x119983c5 soft_cursor +EXPORT_SYMBOL vmlinux 0x119b50e7 elf_check_arch +EXPORT_SYMBOL vmlinux 0x119ce083 skb_queue_head +EXPORT_SYMBOL vmlinux 0x11a88d76 vfs_llseek +EXPORT_SYMBOL vmlinux 0x11c9185c of_iomap +EXPORT_SYMBOL vmlinux 0x11d330fd kill_fasync +EXPORT_SYMBOL vmlinux 0x11e2ec12 flex_array_free_parts +EXPORT_SYMBOL vmlinux 0x11f4a729 netdev_class_remove_file +EXPORT_SYMBOL vmlinux 0x11f7ed4c hex_to_bin +EXPORT_SYMBOL vmlinux 0x120b336a __rb_insert_augmented +EXPORT_SYMBOL vmlinux 0x122043a8 of_find_node_with_property +EXPORT_SYMBOL vmlinux 0x123c19eb pm_vt_switch_unregister +EXPORT_SYMBOL vmlinux 0x123ec1a0 xfrm_policy_flush +EXPORT_SYMBOL vmlinux 0x124f86e1 padata_start +EXPORT_SYMBOL vmlinux 0x1257a397 md_reap_sync_thread +EXPORT_SYMBOL vmlinux 0x12895fa7 module_refcount +EXPORT_SYMBOL vmlinux 0x12a38747 usleep_range +EXPORT_SYMBOL vmlinux 0x12b84e2d bio_integrity_endio +EXPORT_SYMBOL vmlinux 0x12da5bb2 __kmalloc +EXPORT_SYMBOL vmlinux 0x12e146a0 input_mt_report_pointer_emulation +EXPORT_SYMBOL vmlinux 0x12fca599 jbd2_journal_get_create_access +EXPORT_SYMBOL vmlinux 0x1308769c snd_card_file_remove +EXPORT_SYMBOL vmlinux 0x130a3f39 dma_async_memcpy_pg_to_pg +EXPORT_SYMBOL vmlinux 0x132575fb genphy_restart_aneg +EXPORT_SYMBOL vmlinux 0x13307fde vsscanf +EXPORT_SYMBOL vmlinux 0x139884bb mmc_alloc_host +EXPORT_SYMBOL vmlinux 0x13b715e2 blk_finish_plug +EXPORT_SYMBOL vmlinux 0x13cc744c kill_block_super +EXPORT_SYMBOL vmlinux 0x13d0adf7 __kfifo_out +EXPORT_SYMBOL vmlinux 0x13d9d7fd __ip_select_ident +EXPORT_SYMBOL vmlinux 0x140bb198 generic_getxattr +EXPORT_SYMBOL vmlinux 0x14187c70 blk_queue_bounce +EXPORT_SYMBOL vmlinux 0x1420b379 kstrtou16_from_user +EXPORT_SYMBOL vmlinux 0x1425b509 neigh_ifdown +EXPORT_SYMBOL vmlinux 0x14316aa8 security_path_chmod +EXPORT_SYMBOL vmlinux 0x144f6e7a sg_free_table +EXPORT_SYMBOL vmlinux 0x1458bfaf thaw_bdev +EXPORT_SYMBOL vmlinux 0x1461dc02 snd_pcm_limit_hw_rates +EXPORT_SYMBOL vmlinux 0x14983bad dma_supported +EXPORT_SYMBOL vmlinux 0x14ccf5a4 of_phy_connect +EXPORT_SYMBOL vmlinux 0x14d4a9c5 _change_bit +EXPORT_SYMBOL vmlinux 0x14eea2a2 eth_header_parse +EXPORT_SYMBOL vmlinux 0x15320129 genphy_update_link +EXPORT_SYMBOL vmlinux 0x1543af09 twl6040_set_pll +EXPORT_SYMBOL vmlinux 0x154c6338 dm_kcopyd_client_destroy +EXPORT_SYMBOL vmlinux 0x1551dc51 bitmap_find_free_region +EXPORT_SYMBOL vmlinux 0x1565d580 alloc_etherdev_mqs +EXPORT_SYMBOL vmlinux 0x15692c87 param_ops_int +EXPORT_SYMBOL vmlinux 0x15721d26 tcp_md5_do_lookup +EXPORT_SYMBOL vmlinux 0x15922361 tcp_shutdown +EXPORT_SYMBOL vmlinux 0x159674d3 cdev_init +EXPORT_SYMBOL vmlinux 0x159787f2 free_netdev +EXPORT_SYMBOL vmlinux 0x15a2d596 tcp_connect +EXPORT_SYMBOL vmlinux 0x15b8e2be _snd_ctl_add_slave +EXPORT_SYMBOL vmlinux 0x15b9125f hdmi_avi_infoframe_pack +EXPORT_SYMBOL vmlinux 0x15bb7ea8 devm_backlight_device_unregister +EXPORT_SYMBOL vmlinux 0x15c753ad generic_file_fsync +EXPORT_SYMBOL vmlinux 0x15c86f75 skb_abort_seq_read +EXPORT_SYMBOL vmlinux 0x15ce4dbf unlock_buffer +EXPORT_SYMBOL vmlinux 0x15e156a8 tcp_syn_ack_timeout +EXPORT_SYMBOL vmlinux 0x15e65d90 sg_alloc_table_from_pages +EXPORT_SYMBOL vmlinux 0x15f571ec blk_set_stacking_limits +EXPORT_SYMBOL vmlinux 0x15fba597 kunmap +EXPORT_SYMBOL vmlinux 0x16185675 flock_lock_file_wait +EXPORT_SYMBOL vmlinux 0x162ccc0c lg_local_lock +EXPORT_SYMBOL vmlinux 0x16305289 warn_slowpath_null +EXPORT_SYMBOL vmlinux 0x1661dbeb gnet_stats_finish_copy +EXPORT_SYMBOL vmlinux 0x16766435 vm_get_page_prot +EXPORT_SYMBOL vmlinux 0x168844fb skb_mac_gso_segment +EXPORT_SYMBOL vmlinux 0x169e47df snd_pcm_debug_name +EXPORT_SYMBOL vmlinux 0x16a78a13 tcp_md5_do_del +EXPORT_SYMBOL vmlinux 0x16d2e786 xfrm_policy_destroy +EXPORT_SYMBOL vmlinux 0x16db1b5a netdev_err +EXPORT_SYMBOL vmlinux 0x16eb6b6b blk_queue_find_tag +EXPORT_SYMBOL vmlinux 0x170e1dba register_nls +EXPORT_SYMBOL vmlinux 0x171e9444 dev_get_by_name +EXPORT_SYMBOL vmlinux 0x1731808a inet_frag_find +EXPORT_SYMBOL vmlinux 0x1731cefb mpage_writepages +EXPORT_SYMBOL vmlinux 0x17585fe0 dquot_quota_on_mount +EXPORT_SYMBOL vmlinux 0x178f7f0d update_time +EXPORT_SYMBOL vmlinux 0x17a142df __copy_from_user +EXPORT_SYMBOL vmlinux 0x17ac07ef jbd2_journal_try_to_free_buffers +EXPORT_SYMBOL vmlinux 0x17b1125d gen_kill_estimator +EXPORT_SYMBOL vmlinux 0x17d277dc xfrm_user_policy +EXPORT_SYMBOL vmlinux 0x17e100b3 simple_setattr +EXPORT_SYMBOL vmlinux 0x17f8849e kernel_write +EXPORT_SYMBOL vmlinux 0x18121c16 blk_queue_bounce_limit +EXPORT_SYMBOL vmlinux 0x18232750 of_phy_connect_fixed_link +EXPORT_SYMBOL vmlinux 0x1826f089 __tracepoint_kmem_cache_alloc_node +EXPORT_SYMBOL vmlinux 0x182f1e85 nf_reinject +EXPORT_SYMBOL vmlinux 0x183022b1 i2c_verify_adapter +EXPORT_SYMBOL vmlinux 0x183aa27d snd_ctl_make_virtual_master +EXPORT_SYMBOL vmlinux 0x183cf9ad __mmc_claim_host +EXPORT_SYMBOL vmlinux 0x183d4b4d elv_rb_former_request +EXPORT_SYMBOL vmlinux 0x183fa88b mempool_alloc_slab +EXPORT_SYMBOL vmlinux 0x184b82fb mmc_vddrange_to_ocrmask +EXPORT_SYMBOL vmlinux 0x184e6c85 radix_tree_gang_lookup_slot +EXPORT_SYMBOL vmlinux 0x18848dcc register_cdrom +EXPORT_SYMBOL vmlinux 0x1889545f iterate_dir +EXPORT_SYMBOL vmlinux 0x188a3dfb timespec_trunc +EXPORT_SYMBOL vmlinux 0x189868d7 get_random_bytes_arch +EXPORT_SYMBOL vmlinux 0x18a996a1 kmem_cache_create +EXPORT_SYMBOL vmlinux 0x18bd76a4 _raw_spin_trylock +EXPORT_SYMBOL vmlinux 0x18c2227f cpu_rmap_update +EXPORT_SYMBOL vmlinux 0x18c4d9c3 md_integrity_add_rdev +EXPORT_SYMBOL vmlinux 0x18d4a59b md_check_recovery +EXPORT_SYMBOL vmlinux 0x18f5b05e skb_unlink +EXPORT_SYMBOL vmlinux 0x19104989 skb_split +EXPORT_SYMBOL vmlinux 0x1918e371 scsi_prep_return +EXPORT_SYMBOL vmlinux 0x191c29fb generic_removexattr +EXPORT_SYMBOL vmlinux 0x1920debf input_set_keycode +EXPORT_SYMBOL vmlinux 0x19250122 phy_print_status +EXPORT_SYMBOL vmlinux 0x1929dd24 xfrm_policy_register_afinfo +EXPORT_SYMBOL vmlinux 0x19610e1f cpu_all_bits +EXPORT_SYMBOL vmlinux 0x1971fb15 led_blink_set +EXPORT_SYMBOL vmlinux 0x1976aa06 param_ops_bool +EXPORT_SYMBOL vmlinux 0x198e0368 __blk_end_request +EXPORT_SYMBOL vmlinux 0x199ed0cd net_disable_timestamp +EXPORT_SYMBOL vmlinux 0x19bd383b security_secmark_refcount_dec +EXPORT_SYMBOL vmlinux 0x19f5809b dm_ratelimit_state +EXPORT_SYMBOL vmlinux 0x19f81351 netpoll_rx_enable +EXPORT_SYMBOL vmlinux 0x1a0b1679 security_path_mknod +EXPORT_SYMBOL vmlinux 0x1a2bf23f netif_carrier_on +EXPORT_SYMBOL vmlinux 0x1a36c54c jbd2_journal_ack_err +EXPORT_SYMBOL vmlinux 0x1a3b0ce5 netif_rx_ni +EXPORT_SYMBOL vmlinux 0x1a40930c mutex_trylock +EXPORT_SYMBOL vmlinux 0x1a530670 file_remove_suid +EXPORT_SYMBOL vmlinux 0x1a58d074 dst_release +EXPORT_SYMBOL vmlinux 0x1a65f4ad __arm_ioremap_pfn +EXPORT_SYMBOL vmlinux 0x1ace138d bitmap_allocate_region +EXPORT_SYMBOL vmlinux 0x1ad1ca0a journal_update_format +EXPORT_SYMBOL vmlinux 0x1ad1f2e7 _memcpy_fromio +EXPORT_SYMBOL vmlinux 0x1addab55 vfs_create +EXPORT_SYMBOL vmlinux 0x1b015d25 bitmap_parselist +EXPORT_SYMBOL vmlinux 0x1b0ac272 __tracepoint_kmalloc_node +EXPORT_SYMBOL vmlinux 0x1b0f6dd8 generic_error_remove_page +EXPORT_SYMBOL vmlinux 0x1b19a7b5 lz4_decompress +EXPORT_SYMBOL vmlinux 0x1b37d548 filemap_fdatawait_range +EXPORT_SYMBOL vmlinux 0x1b3d3e42 phy_ethtool_set_eee +EXPORT_SYMBOL vmlinux 0x1b433aef dev_uc_add +EXPORT_SYMBOL vmlinux 0x1b463946 mmc_hw_reset +EXPORT_SYMBOL vmlinux 0x1b6314fd in_aton +EXPORT_SYMBOL vmlinux 0x1b82fefa md_unplug +EXPORT_SYMBOL vmlinux 0x1b863380 __devm_request_region +EXPORT_SYMBOL vmlinux 0x1b8e7b09 register_gifconf +EXPORT_SYMBOL vmlinux 0x1b9e0ff1 scsilun_to_int +EXPORT_SYMBOL vmlinux 0x1bbcbcde mmc_wait_for_req +EXPORT_SYMBOL vmlinux 0x1c23de55 update_region +EXPORT_SYMBOL vmlinux 0x1c2fb226 input_mt_report_finger_count +EXPORT_SYMBOL vmlinux 0x1c568db8 abx500_set_register_interruptible +EXPORT_SYMBOL vmlinux 0x1c5e3878 icst525_idx2s +EXPORT_SYMBOL vmlinux 0x1c60e59f max8925_reg_read +EXPORT_SYMBOL vmlinux 0x1c66f14c vfs_setpos +EXPORT_SYMBOL vmlinux 0x1c94dabb d_tmpfile +EXPORT_SYMBOL vmlinux 0x1c977a01 elevator_exit +EXPORT_SYMBOL vmlinux 0x1ca8907b snd_pcm_new_stream +EXPORT_SYMBOL vmlinux 0x1cca89b0 inet_csk_init_xmit_timers +EXPORT_SYMBOL vmlinux 0x1cda171a scsi_remove_device +EXPORT_SYMBOL vmlinux 0x1cf60b1e drop_super +EXPORT_SYMBOL vmlinux 0x1cf6cf7e wait_on_sync_kiocb +EXPORT_SYMBOL vmlinux 0x1cf87c50 dst_cow_metrics_generic +EXPORT_SYMBOL vmlinux 0x1cfb04fa finish_wait +EXPORT_SYMBOL vmlinux 0x1cfb57be nf_unregister_hooks +EXPORT_SYMBOL vmlinux 0x1d027e4b snd_pcm_format_signed +EXPORT_SYMBOL vmlinux 0x1d075f48 mmc_free_host +EXPORT_SYMBOL vmlinux 0x1d1726c3 dev_uc_flush +EXPORT_SYMBOL vmlinux 0x1d48fbd0 genl_unregister_family +EXPORT_SYMBOL vmlinux 0x1d87078c redirty_page_for_writepage +EXPORT_SYMBOL vmlinux 0x1db5a578 d_alloc +EXPORT_SYMBOL vmlinux 0x1dbdf5e4 dev_mc_unsync +EXPORT_SYMBOL vmlinux 0x1dc36131 fb_destroy_modedb +EXPORT_SYMBOL vmlinux 0x1dcb1eb6 genl_unregister_ops +EXPORT_SYMBOL vmlinux 0x1dd571e6 fb_copy_cmap +EXPORT_SYMBOL vmlinux 0x1dd7c58a snd_pcm_hw_constraint_pow2 +EXPORT_SYMBOL vmlinux 0x1dd86295 sg_miter_next +EXPORT_SYMBOL vmlinux 0x1de6f19f bio_integrity_get_tag +EXPORT_SYMBOL vmlinux 0x1e047854 warn_slowpath_fmt +EXPORT_SYMBOL vmlinux 0x1e1804d4 do_splice_direct +EXPORT_SYMBOL vmlinux 0x1e205cec inet_stream_connect +EXPORT_SYMBOL vmlinux 0x1e26be3b get_anon_bdev +EXPORT_SYMBOL vmlinux 0x1e414ccb genl_register_mc_group +EXPORT_SYMBOL vmlinux 0x1e45615e scsi_unblock_requests +EXPORT_SYMBOL vmlinux 0x1e4b205b setup_arg_pages +EXPORT_SYMBOL vmlinux 0x1e501d36 flush_signals +EXPORT_SYMBOL vmlinux 0x1e6d26a8 strstr +EXPORT_SYMBOL vmlinux 0x1e9edfb7 seq_hlist_start_head_rcu +EXPORT_SYMBOL vmlinux 0x1ea06663 _raw_write_lock +EXPORT_SYMBOL vmlinux 0x1ea3b789 mmc_gpio_request_ro +EXPORT_SYMBOL vmlinux 0x1ec1a498 blk_queue_make_request +EXPORT_SYMBOL vmlinux 0x1ec22682 scsi_free_host_dev +EXPORT_SYMBOL vmlinux 0x1ec3bed9 hdmi_audio_infoframe_init +EXPORT_SYMBOL vmlinux 0x1ec4eb34 flex_array_prealloc +EXPORT_SYMBOL vmlinux 0x1ecbc585 inode_add_rsv_space +EXPORT_SYMBOL vmlinux 0x1ed1280a __frontswap_test +EXPORT_SYMBOL vmlinux 0x1eeb848e __percpu_counter_sum +EXPORT_SYMBOL vmlinux 0x1eec025f i2c_transfer +EXPORT_SYMBOL vmlinux 0x1efe2c25 iterate_fd +EXPORT_SYMBOL vmlinux 0x1f03c16b security_dentry_init_security +EXPORT_SYMBOL vmlinux 0x1f29d1d7 devfreq_remove_governor +EXPORT_SYMBOL vmlinux 0x1f46cb7b noop_fsync +EXPORT_SYMBOL vmlinux 0x1f7e807f kstrtoint_from_user +EXPORT_SYMBOL vmlinux 0x1f7f9c6e wait_on_page_bit +EXPORT_SYMBOL vmlinux 0x1f907855 truncate_inode_pages +EXPORT_SYMBOL vmlinux 0x1fab5905 wait_for_completion +EXPORT_SYMBOL vmlinux 0x1fbd16da ip_tos2prio +EXPORT_SYMBOL vmlinux 0x1fcefe47 iterate_supers_type +EXPORT_SYMBOL vmlinux 0x1fcf4d4b _raw_read_unlock_bh +EXPORT_SYMBOL vmlinux 0x1fd07fff kdb_grepping_flag +EXPORT_SYMBOL vmlinux 0x1fdc92fd dev_get_stats +EXPORT_SYMBOL vmlinux 0x1fe595aa empty_aops +EXPORT_SYMBOL vmlinux 0x1fe912f1 netdev_alloc_frag +EXPORT_SYMBOL vmlinux 0x1fe9f800 unregister_cpu_notifier +EXPORT_SYMBOL vmlinux 0x1feabe9c mntget +EXPORT_SYMBOL vmlinux 0x1fedf0f4 __request_region +EXPORT_SYMBOL vmlinux 0x20000329 simple_strtoul +EXPORT_SYMBOL vmlinux 0x20016ea7 sk_prot_clear_portaddr_nulls +EXPORT_SYMBOL vmlinux 0x2004cf6f dmam_pool_create +EXPORT_SYMBOL vmlinux 0x202d45d7 blk_start_queue +EXPORT_SYMBOL vmlinux 0x20421305 on_each_cpu_mask +EXPORT_SYMBOL vmlinux 0x204a52af blk_put_queue +EXPORT_SYMBOL vmlinux 0x204c19f5 tcp_alloc_md5sig_pool +EXPORT_SYMBOL vmlinux 0x204ec93c skb_insert +EXPORT_SYMBOL vmlinux 0x206166a4 nf_ip_checksum +EXPORT_SYMBOL vmlinux 0x20620f64 pfifo_qdisc_ops +EXPORT_SYMBOL vmlinux 0x2064ee44 snd_jack_set_parent +EXPORT_SYMBOL vmlinux 0x206e302e unregister_binfmt +EXPORT_SYMBOL vmlinux 0x2072ee9b request_threaded_irq +EXPORT_SYMBOL vmlinux 0x207fd3cc proc_mkdir_mode +EXPORT_SYMBOL vmlinux 0x20a3603b simple_dir_operations +EXPORT_SYMBOL vmlinux 0x20a789ac irq_set_chip_data +EXPORT_SYMBOL vmlinux 0x20adcfcd xfrm_policy_bysel_ctx +EXPORT_SYMBOL vmlinux 0x20b57d16 rtnl_unicast +EXPORT_SYMBOL vmlinux 0x20c55ae0 sscanf +EXPORT_SYMBOL vmlinux 0x20c9ec23 mfd_add_devices +EXPORT_SYMBOL vmlinux 0x20d594ac of_device_unregister +EXPORT_SYMBOL vmlinux 0x20d84812 jbd2_journal_file_inode +EXPORT_SYMBOL vmlinux 0x20df2681 ida_simple_remove +EXPORT_SYMBOL vmlinux 0x20f4933c ip_cmsg_recv +EXPORT_SYMBOL vmlinux 0x20fadf72 search_binary_handler +EXPORT_SYMBOL vmlinux 0x211331fa __divsi3 +EXPORT_SYMBOL vmlinux 0x21315700 param_get_bool +EXPORT_SYMBOL vmlinux 0x21403ab2 dma_pool_create +EXPORT_SYMBOL vmlinux 0x21494610 call_netdevice_notifiers_info +EXPORT_SYMBOL vmlinux 0x215ebd78 bitrev16 +EXPORT_SYMBOL vmlinux 0x216b2ff2 sock_alloc_send_skb +EXPORT_SYMBOL vmlinux 0x21761760 input_mt_init_slots +EXPORT_SYMBOL vmlinux 0x217dda13 flex_array_get +EXPORT_SYMBOL vmlinux 0x219e9729 sock_no_bind +EXPORT_SYMBOL vmlinux 0x21a33a22 page_zero_new_buffers +EXPORT_SYMBOL vmlinux 0x21c31874 tcp_md5_hash_key +EXPORT_SYMBOL vmlinux 0x21ccadde sk_free +EXPORT_SYMBOL vmlinux 0x21f68092 tcp_syn_flood_action +EXPORT_SYMBOL vmlinux 0x22095bdd mmc_power_save_host +EXPORT_SYMBOL vmlinux 0x220d33a6 d_find_alias +EXPORT_SYMBOL vmlinux 0x222e7ce2 sysfs_streq +EXPORT_SYMBOL vmlinux 0x222fa684 lg_global_lock +EXPORT_SYMBOL vmlinux 0x2232a8a5 mempool_free +EXPORT_SYMBOL vmlinux 0x224c011d nand_flash_ids +EXPORT_SYMBOL vmlinux 0x2253cdfc kernel_getsockname +EXPORT_SYMBOL vmlinux 0x225d8c94 serial8250_do_set_termios +EXPORT_SYMBOL vmlinux 0x227485f2 tty_lock +EXPORT_SYMBOL vmlinux 0x2276db98 kstrtoint +EXPORT_SYMBOL vmlinux 0x227c594c blk_rq_map_user +EXPORT_SYMBOL vmlinux 0x229f7d8c elv_rb_latter_request +EXPORT_SYMBOL vmlinux 0x22b325d5 kd_mksound +EXPORT_SYMBOL vmlinux 0x22c380df blkdev_issue_write_same +EXPORT_SYMBOL vmlinux 0x22c41981 __remove_inode_hash +EXPORT_SYMBOL vmlinux 0x22e1ae6f up_read +EXPORT_SYMBOL vmlinux 0x23045773 led_blink_set_oneshot +EXPORT_SYMBOL vmlinux 0x231d4001 fb_edid_add_monspecs +EXPORT_SYMBOL vmlinux 0x2334c823 sg_init_table +EXPORT_SYMBOL vmlinux 0x234a62ce qdisc_class_hash_grow +EXPORT_SYMBOL vmlinux 0x23532c4d ftrace_print_flags_seq +EXPORT_SYMBOL vmlinux 0x236770c1 i2c_clients_command +EXPORT_SYMBOL vmlinux 0x236829e0 check_disk_size_change +EXPORT_SYMBOL vmlinux 0x236c65a7 force_sig +EXPORT_SYMBOL vmlinux 0x23a574fd security_secmark_relabel_packet +EXPORT_SYMBOL vmlinux 0x23ac58a1 tcp_create_openreq_child +EXPORT_SYMBOL vmlinux 0x23b9d6e2 mangle_path +EXPORT_SYMBOL vmlinux 0x23c549e9 mb_cache_entry_get +EXPORT_SYMBOL vmlinux 0x23c8f257 slhc_uncompress +EXPORT_SYMBOL vmlinux 0x23e1c4b7 dquot_drop +EXPORT_SYMBOL vmlinux 0x23fd3028 vmalloc_node +EXPORT_SYMBOL vmlinux 0x23feec9c release_firmware +EXPORT_SYMBOL vmlinux 0x241bc5a2 xfrm_state_check_expire +EXPORT_SYMBOL vmlinux 0x24212d86 __frontswap_invalidate_page +EXPORT_SYMBOL vmlinux 0x24428be5 strncpy_from_user +EXPORT_SYMBOL vmlinux 0x2451fafa __bread +EXPORT_SYMBOL vmlinux 0x2459bbcc console_set_on_cmdline +EXPORT_SYMBOL vmlinux 0x2469d898 of_find_i2c_adapter_by_node +EXPORT_SYMBOL vmlinux 0x247500dc tty_port_close +EXPORT_SYMBOL vmlinux 0x2482e688 vsprintf +EXPORT_SYMBOL vmlinux 0x24a94b26 snd_info_get_line +EXPORT_SYMBOL vmlinux 0x24b0f90c of_clk_get_by_name +EXPORT_SYMBOL vmlinux 0x24b76807 __dquot_free_space +EXPORT_SYMBOL vmlinux 0x24d7b4eb cancel_delayed_work_sync +EXPORT_SYMBOL vmlinux 0x24f2b9aa test_set_page_writeback +EXPORT_SYMBOL vmlinux 0x24fdac79 wake_bit_function +EXPORT_SYMBOL vmlinux 0x250113b4 memory_read_from_buffer +EXPORT_SYMBOL vmlinux 0x250be985 crypto_sha256_update +EXPORT_SYMBOL vmlinux 0x25277497 rfkill_register +EXPORT_SYMBOL vmlinux 0x253bdb78 param_get_int +EXPORT_SYMBOL vmlinux 0x254c2097 vfs_rename +EXPORT_SYMBOL vmlinux 0x25540332 inode_sb_list_lock +EXPORT_SYMBOL vmlinux 0x258126fc sock_recvmsg +EXPORT_SYMBOL vmlinux 0x25820c64 fs_overflowuid +EXPORT_SYMBOL vmlinux 0x259dcba3 blkdev_put +EXPORT_SYMBOL vmlinux 0x25a83c18 tty_insert_flip_string_fixed_flag +EXPORT_SYMBOL vmlinux 0x25aefdd0 blk_queue_end_tag +EXPORT_SYMBOL vmlinux 0x25c677c4 mac_pton +EXPORT_SYMBOL vmlinux 0x25c8adaf phy_connect_direct +EXPORT_SYMBOL vmlinux 0x25db8ffe filemap_page_mkwrite +EXPORT_SYMBOL vmlinux 0x25e789df simple_rename +EXPORT_SYMBOL vmlinux 0x25f673fc gen_replace_estimator +EXPORT_SYMBOL vmlinux 0x260cf8f8 of_get_property +EXPORT_SYMBOL vmlinux 0x26184bcc ptp_clock_register +EXPORT_SYMBOL vmlinux 0x261980d2 read_cache_page +EXPORT_SYMBOL vmlinux 0x263beb75 ecryptfs_get_versions +EXPORT_SYMBOL vmlinux 0x2650d835 sysctl_ip_early_demux +EXPORT_SYMBOL vmlinux 0x265f3785 nand_correct_data +EXPORT_SYMBOL vmlinux 0x26600f0f tcp_gro_receive +EXPORT_SYMBOL vmlinux 0x267df1cf dump_write +EXPORT_SYMBOL vmlinux 0x26bb950b __kfifo_from_user_r +EXPORT_SYMBOL vmlinux 0x26c7a25a skb_tx_error +EXPORT_SYMBOL vmlinux 0x26e76fb8 sysctl_udp_wmem_min +EXPORT_SYMBOL vmlinux 0x26f0453a blk_set_default_limits +EXPORT_SYMBOL vmlinux 0x26f3e95f bprm_change_interp +EXPORT_SYMBOL vmlinux 0x26f4c929 truncate_setsize +EXPORT_SYMBOL vmlinux 0x27145c4e sk_stream_error +EXPORT_SYMBOL vmlinux 0x27274556 vfs_symlink +EXPORT_SYMBOL vmlinux 0x2740f3a8 phy_device_create +EXPORT_SYMBOL vmlinux 0x275ef902 __init_waitqueue_head +EXPORT_SYMBOL vmlinux 0x2768f7cc thermal_cdev_update +EXPORT_SYMBOL vmlinux 0x27864d57 memparse +EXPORT_SYMBOL vmlinux 0x279f9550 fsnotify_alloc_group +EXPORT_SYMBOL vmlinux 0x27bbf221 disable_irq_nosync +EXPORT_SYMBOL vmlinux 0x27c2197f param_set_short +EXPORT_SYMBOL vmlinux 0x27d0cc79 __dst_free +EXPORT_SYMBOL vmlinux 0x27de7db0 xfrm_unregister_type +EXPORT_SYMBOL vmlinux 0x27e1a049 printk +EXPORT_SYMBOL vmlinux 0x2806b733 fb_class +EXPORT_SYMBOL vmlinux 0x28118cb6 __get_user_1 +EXPORT_SYMBOL vmlinux 0x281823c5 __kfifo_out_peek +EXPORT_SYMBOL vmlinux 0x2825e9a4 seq_bitmap +EXPORT_SYMBOL vmlinux 0x28543a22 ip6_find_1stfragopt +EXPORT_SYMBOL vmlinux 0x2869af50 snd_ctl_boolean_stereo_info +EXPORT_SYMBOL vmlinux 0x287ed087 mmc_detect_change +EXPORT_SYMBOL vmlinux 0x288041c5 nla_reserve_nohdr +EXPORT_SYMBOL vmlinux 0x2899f12f cdrom_get_last_written +EXPORT_SYMBOL vmlinux 0x28a2ed02 scsi_build_sense_buffer +EXPORT_SYMBOL vmlinux 0x28c19517 dev_printk +EXPORT_SYMBOL vmlinux 0x28e2bf68 mmc_gpio_get_ro +EXPORT_SYMBOL vmlinux 0x28ee6b89 tcp_v4_destroy_sock +EXPORT_SYMBOL vmlinux 0x28fc3f09 simple_transaction_get +EXPORT_SYMBOL vmlinux 0x2929baf3 set_page_dirty_lock +EXPORT_SYMBOL vmlinux 0x29535598 nand_calculate_ecc +EXPORT_SYMBOL vmlinux 0x29537c9e alloc_chrdev_region +EXPORT_SYMBOL vmlinux 0x296be7dc seq_write +EXPORT_SYMBOL vmlinux 0x2982ba79 vfs_readv +EXPORT_SYMBOL vmlinux 0x298d47df nand_scan_tail +EXPORT_SYMBOL vmlinux 0x299a50fa ping_prot +EXPORT_SYMBOL vmlinux 0x29abb0ef tcp_sendpage +EXPORT_SYMBOL vmlinux 0x29b1c7b2 twl6040_reg_write +EXPORT_SYMBOL vmlinux 0x29b9d3a8 mmc_register_driver +EXPORT_SYMBOL vmlinux 0x29baff70 ida_remove +EXPORT_SYMBOL vmlinux 0x29c6af37 udp_prot +EXPORT_SYMBOL vmlinux 0x29d00be3 lock_fb_info +EXPORT_SYMBOL vmlinux 0x29fcbdab qdisc_watchdog_cancel +EXPORT_SYMBOL vmlinux 0x29fdda53 kstrtos8_from_user +EXPORT_SYMBOL vmlinux 0x2a07778c mark_buffer_dirty +EXPORT_SYMBOL vmlinux 0x2a117ae7 netpoll_setup +EXPORT_SYMBOL vmlinux 0x2a247fd1 skb_dequeue +EXPORT_SYMBOL vmlinux 0x2a351f07 tty_driver_kref_put +EXPORT_SYMBOL vmlinux 0x2a37d074 dma_pool_free +EXPORT_SYMBOL vmlinux 0x2a3aa678 _test_and_clear_bit +EXPORT_SYMBOL vmlinux 0x2a4e1b0c of_mdiobus_register +EXPORT_SYMBOL vmlinux 0x2a689749 request_key +EXPORT_SYMBOL vmlinux 0x2a77f377 bdgrab +EXPORT_SYMBOL vmlinux 0x2a79ac13 clkdev_add +EXPORT_SYMBOL vmlinux 0x2a866839 iget5_locked +EXPORT_SYMBOL vmlinux 0x2a905468 generic_make_request +EXPORT_SYMBOL vmlinux 0x2a9baad1 nf_afinfo +EXPORT_SYMBOL vmlinux 0x2a9ee00e netdev_class_create_file +EXPORT_SYMBOL vmlinux 0x2aa06353 of_find_backlight_by_node +EXPORT_SYMBOL vmlinux 0x2aa0e4fc strncasecmp +EXPORT_SYMBOL vmlinux 0x2aa1ad41 _raw_write_lock_irq +EXPORT_SYMBOL vmlinux 0x2ac111fe dev_get_by_index +EXPORT_SYMBOL vmlinux 0x2ac9a1e1 neigh_app_ns +EXPORT_SYMBOL vmlinux 0x2ad0052f page_follow_link_light +EXPORT_SYMBOL vmlinux 0x2ad3139a pm860x_page_reg_write +EXPORT_SYMBOL vmlinux 0x2ae21ea7 sk_reset_txq +EXPORT_SYMBOL vmlinux 0x2ae3deaa release_and_free_resource +EXPORT_SYMBOL vmlinux 0x2ae90a0f i2c_master_recv +EXPORT_SYMBOL vmlinux 0x2affd58f sk_alloc +EXPORT_SYMBOL vmlinux 0x2b0ba2b0 scsi_sense_desc_find +EXPORT_SYMBOL vmlinux 0x2b1013de sk_stream_wait_connect +EXPORT_SYMBOL vmlinux 0x2b12925d cpumask_next_and +EXPORT_SYMBOL vmlinux 0x2b2ce78b kstrtos8 +EXPORT_SYMBOL vmlinux 0x2b499e10 dcb_getapp +EXPORT_SYMBOL vmlinux 0x2b4e956e mempool_create +EXPORT_SYMBOL vmlinux 0x2b567b05 dquot_enable +EXPORT_SYMBOL vmlinux 0x2b9da7a4 genl_lock +EXPORT_SYMBOL vmlinux 0x2ba707a8 sysctl_tcp_low_latency +EXPORT_SYMBOL vmlinux 0x2bc17cd0 seq_vprintf +EXPORT_SYMBOL vmlinux 0x2bc22c36 get_gendisk +EXPORT_SYMBOL vmlinux 0x2be0f12d dql_completed +EXPORT_SYMBOL vmlinux 0x2be7f3c1 ftrace_raw_output_prep +EXPORT_SYMBOL vmlinux 0x2c14323a kstrtol_from_user +EXPORT_SYMBOL vmlinux 0x2c1bcc4a splice_from_pipe_begin +EXPORT_SYMBOL vmlinux 0x2c256e1f input_scancode_to_scalar +EXPORT_SYMBOL vmlinux 0x2c25a93b mdio_bus_type +EXPORT_SYMBOL vmlinux 0x2c2f9f8f page_put_link +EXPORT_SYMBOL vmlinux 0x2c378236 __neigh_create +EXPORT_SYMBOL vmlinux 0x2c507962 dev_get_by_index_rcu +EXPORT_SYMBOL vmlinux 0x2c583dcf dev_addr_add +EXPORT_SYMBOL vmlinux 0x2c81ec75 __irq_regs +EXPORT_SYMBOL vmlinux 0x2c9732f8 gen_pool_destroy +EXPORT_SYMBOL vmlinux 0x2c988955 prepare_to_wait_exclusive +EXPORT_SYMBOL vmlinux 0x2c9eaae3 journal_blocks_per_page +EXPORT_SYMBOL vmlinux 0x2cc33114 inet6_add_offload +EXPORT_SYMBOL vmlinux 0x2cc35ed5 inet_frags_init +EXPORT_SYMBOL vmlinux 0x2ccb0353 eth_commit_mac_addr_change +EXPORT_SYMBOL vmlinux 0x2cec5759 mem_cgroup_subsys +EXPORT_SYMBOL vmlinux 0x2d0e1caf do_truncate +EXPORT_SYMBOL vmlinux 0x2d140a58 genl_unlock +EXPORT_SYMBOL vmlinux 0x2d19492a sk_stream_kill_queues +EXPORT_SYMBOL vmlinux 0x2d3385d3 system_wq +EXPORT_SYMBOL vmlinux 0x2d3598f5 snd_pcm_lib_free_vmalloc_buffer +EXPORT_SYMBOL vmlinux 0x2d3950f2 __neigh_for_each_release +EXPORT_SYMBOL vmlinux 0x2d594ff6 nobh_writepage +EXPORT_SYMBOL vmlinux 0x2d6507b5 _find_next_zero_bit_le +EXPORT_SYMBOL vmlinux 0x2d78cb89 xfrm_policy_insert +EXPORT_SYMBOL vmlinux 0x2d874b35 vfsmount_lock +EXPORT_SYMBOL vmlinux 0x2d89342a scsi_show_sense_hdr +EXPORT_SYMBOL vmlinux 0x2d9b8696 rtnetlink_put_metrics +EXPORT_SYMBOL vmlinux 0x2dc30404 vlan_vids_del_by_dev +EXPORT_SYMBOL vmlinux 0x2dc8f715 security_inode_getsecctx +EXPORT_SYMBOL vmlinux 0x2dd5b5c2 free_xenballooned_pages +EXPORT_SYMBOL vmlinux 0x2deda4a1 security_sk_classify_flow +EXPORT_SYMBOL vmlinux 0x2df94d3e mfd_remove_devices +EXPORT_SYMBOL vmlinux 0x2e113c8b tty_port_init +EXPORT_SYMBOL vmlinux 0x2e14654c kernel_read +EXPORT_SYMBOL vmlinux 0x2e1ca751 clk_put +EXPORT_SYMBOL vmlinux 0x2e20259a dquot_quota_sync +EXPORT_SYMBOL vmlinux 0x2e2ce9e0 sysctl_tcp_syncookies +EXPORT_SYMBOL vmlinux 0x2e349415 gnet_stats_start_copy_compat +EXPORT_SYMBOL vmlinux 0x2e5810c6 __aeabi_unwind_cpp_pr1 +EXPORT_SYMBOL vmlinux 0x2e6ec88d seq_escape +EXPORT_SYMBOL vmlinux 0x2e74bf53 ethtool_op_get_ts_info +EXPORT_SYMBOL vmlinux 0x2e7be112 _raw_read_lock_irqsave +EXPORT_SYMBOL vmlinux 0x2eb5c571 fs_bio_set +EXPORT_SYMBOL vmlinux 0x2ec524ad __kfifo_in_r +EXPORT_SYMBOL vmlinux 0x2ed4008c vfs_writev +EXPORT_SYMBOL vmlinux 0x2ee52686 mutex_unlock +EXPORT_SYMBOL vmlinux 0x2eeceb42 sk_chk_filter +EXPORT_SYMBOL vmlinux 0x2ef49a01 mb_cache_entry_release +EXPORT_SYMBOL vmlinux 0x2ef63ad6 scsi_dev_info_list_del_keyed +EXPORT_SYMBOL vmlinux 0x2f03fc4b security_secmark_refcount_inc +EXPORT_SYMBOL vmlinux 0x2f064b55 allocate_resource +EXPORT_SYMBOL vmlinux 0x2f3857e2 _raw_write_lock_irqsave +EXPORT_SYMBOL vmlinux 0x2f3fe8b2 inode_dio_done +EXPORT_SYMBOL vmlinux 0x2f427bff kernel_setsockopt +EXPORT_SYMBOL vmlinux 0x2f4e3bb5 generic_file_aio_write +EXPORT_SYMBOL vmlinux 0x2f7fe855 sock_register +EXPORT_SYMBOL vmlinux 0x2f99de2a snd_timer_global_free +EXPORT_SYMBOL vmlinux 0x2f9e909e inet_stream_ops +EXPORT_SYMBOL vmlinux 0x2fa6afd4 inet_recvmsg +EXPORT_SYMBOL vmlinux 0x2fb6de5d add_device_randomness +EXPORT_SYMBOL vmlinux 0x2fe252cc unregister_inet6addr_notifier +EXPORT_SYMBOL vmlinux 0x2ff15fd6 neigh_for_each +EXPORT_SYMBOL vmlinux 0x3001251c jbd2_journal_revoke +EXPORT_SYMBOL vmlinux 0x3009de15 lock_rename +EXPORT_SYMBOL vmlinux 0x302021a0 abx500_get_chip_id +EXPORT_SYMBOL vmlinux 0x30241fe6 sg_next +EXPORT_SYMBOL vmlinux 0x303483cf dquot_file_open +EXPORT_SYMBOL vmlinux 0x3034e75d twl6040_clear_bits +EXPORT_SYMBOL vmlinux 0x304e43bc security_path_chown +EXPORT_SYMBOL vmlinux 0x304ec72b _raw_write_trylock +EXPORT_SYMBOL vmlinux 0x30624015 cookie_check_timestamp +EXPORT_SYMBOL vmlinux 0x307c2fd0 generic_check_addressable +EXPORT_SYMBOL vmlinux 0x307ea240 tty_flip_buffer_push +EXPORT_SYMBOL vmlinux 0x30a80826 __kfifo_from_user +EXPORT_SYMBOL vmlinux 0x30bca47a kernel_recvmsg +EXPORT_SYMBOL vmlinux 0x30c48311 freeze_bdev +EXPORT_SYMBOL vmlinux 0x30cada8f radix_tree_next_hole +EXPORT_SYMBOL vmlinux 0x30d4bf22 bioset_integrity_free +EXPORT_SYMBOL vmlinux 0x30dc4910 nf_nat_decode_session_hook +EXPORT_SYMBOL vmlinux 0x30e74134 tty_termios_copy_hw +EXPORT_SYMBOL vmlinux 0x30f03aff snd_card_set_id +EXPORT_SYMBOL vmlinux 0x3102d70b frontswap_curr_pages +EXPORT_SYMBOL vmlinux 0x31060710 scsi_ioctl +EXPORT_SYMBOL vmlinux 0x310917fe sort +EXPORT_SYMBOL vmlinux 0x3132ee65 __nand_calculate_ecc +EXPORT_SYMBOL vmlinux 0x313a3128 d_path +EXPORT_SYMBOL vmlinux 0x3145aff2 kern_path_create +EXPORT_SYMBOL vmlinux 0x31476198 console_stop +EXPORT_SYMBOL vmlinux 0x3147857d default_red +EXPORT_SYMBOL vmlinux 0x317baf88 d_make_root +EXPORT_SYMBOL vmlinux 0x317caa7f jbd2__journal_start +EXPORT_SYMBOL vmlinux 0x3181b395 simple_empty +EXPORT_SYMBOL vmlinux 0x31899291 bio_integrity_enabled +EXPORT_SYMBOL vmlinux 0x318cadb1 reciprocal_value +EXPORT_SYMBOL vmlinux 0x3191f109 __krealloc +EXPORT_SYMBOL vmlinux 0x31977516 wireless_send_event +EXPORT_SYMBOL vmlinux 0x31a2de4e snd_pcm_suspend_all +EXPORT_SYMBOL vmlinux 0x31b31f5c csum_partial_copy_nocheck +EXPORT_SYMBOL vmlinux 0x31e15b15 try_module_get +EXPORT_SYMBOL vmlinux 0x31f0bb78 __kmap_atomic_idx +EXPORT_SYMBOL vmlinux 0x32001137 bdev_stack_limits +EXPORT_SYMBOL vmlinux 0x322f48d4 abx500_dump_all_banks +EXPORT_SYMBOL vmlinux 0x32328bb7 elv_abort_queue +EXPORT_SYMBOL vmlinux 0x32374ad0 revert_creds +EXPORT_SYMBOL vmlinux 0x3238a61b tcp_ioctl +EXPORT_SYMBOL vmlinux 0x32421f55 snd_seq_root +EXPORT_SYMBOL vmlinux 0x325192dc inet_frag_destroy +EXPORT_SYMBOL vmlinux 0x3255972d hdmi_vendor_infoframe_pack +EXPORT_SYMBOL vmlinux 0x3274b08e hdmi_avi_infoframe_init +EXPORT_SYMBOL vmlinux 0x327bf883 of_can_translate_address +EXPORT_SYMBOL vmlinux 0x3286c400 snd_card_disconnect +EXPORT_SYMBOL vmlinux 0x328a05f1 strncpy +EXPORT_SYMBOL vmlinux 0x329b3471 sock_init_data +EXPORT_SYMBOL vmlinux 0x32bb04c8 from_kqid +EXPORT_SYMBOL vmlinux 0x32c69070 cpu_user +EXPORT_SYMBOL vmlinux 0x32d71ea2 bmap +EXPORT_SYMBOL vmlinux 0x32da96f4 mnt_drop_write_file +EXPORT_SYMBOL vmlinux 0x33096f5b __sg_page_iter_next +EXPORT_SYMBOL vmlinux 0x3316ab1a vfs_unlink +EXPORT_SYMBOL vmlinux 0x3330a47d gen_pool_free +EXPORT_SYMBOL vmlinux 0x33356db9 inet_put_port +EXPORT_SYMBOL vmlinux 0x3337421f tcp_simple_retransmit +EXPORT_SYMBOL vmlinux 0x33421180 __page_symlink +EXPORT_SYMBOL vmlinux 0x334f085a gen_pool_for_each_chunk +EXPORT_SYMBOL vmlinux 0x337cce46 put_cmsg +EXPORT_SYMBOL vmlinux 0x339f8157 mmc_read_bkops_status +EXPORT_SYMBOL vmlinux 0x33c7e4e5 skb_try_coalesce +EXPORT_SYMBOL vmlinux 0x33dbfd93 tcp_memory_allocated +EXPORT_SYMBOL vmlinux 0x34184afe current_kernel_time +EXPORT_SYMBOL vmlinux 0x341dbfa3 __per_cpu_offset +EXPORT_SYMBOL vmlinux 0x34304c15 key_payload_reserve +EXPORT_SYMBOL vmlinux 0x346f042f textsearch_destroy +EXPORT_SYMBOL vmlinux 0x347013de nla_validate +EXPORT_SYMBOL vmlinux 0x349cba85 strchr +EXPORT_SYMBOL vmlinux 0x34a1fdc4 snd_card_unref +EXPORT_SYMBOL vmlinux 0x34b231c4 snd_pcm_period_elapsed +EXPORT_SYMBOL vmlinux 0x34c3c121 mnt_pin +EXPORT_SYMBOL vmlinux 0x34c44afc tcf_exts_validate +EXPORT_SYMBOL vmlinux 0x34cd77b7 clear_bdi_congested +EXPORT_SYMBOL vmlinux 0x34dbec85 remove_proc_subtree +EXPORT_SYMBOL vmlinux 0x34e1da8f mb_cache_create +EXPORT_SYMBOL vmlinux 0x34f3484e security_tun_dev_attach_queue +EXPORT_SYMBOL vmlinux 0x3507a132 _raw_spin_lock_irq +EXPORT_SYMBOL vmlinux 0x3517383e register_reboot_notifier +EXPORT_SYMBOL vmlinux 0x353e3fa5 __get_user_4 +EXPORT_SYMBOL vmlinux 0x3546ad43 udp_lib_get_port +EXPORT_SYMBOL vmlinux 0x35509865 dst_discard +EXPORT_SYMBOL vmlinux 0x357429ad udp_push_pending_frames +EXPORT_SYMBOL vmlinux 0x3582e58d of_device_alloc +EXPORT_SYMBOL vmlinux 0x358f8884 ndo_dflt_fdb_dump +EXPORT_SYMBOL vmlinux 0x35b6b772 param_ops_charp +EXPORT_SYMBOL vmlinux 0x35cdeba5 dcache_dir_close +EXPORT_SYMBOL vmlinux 0x3600f5c4 dmam_alloc_coherent +EXPORT_SYMBOL vmlinux 0x3601fa0b phy_find_first +EXPORT_SYMBOL vmlinux 0x360b1afe probe_irq_mask +EXPORT_SYMBOL vmlinux 0x3612c10f tmio_core_mmc_enable +EXPORT_SYMBOL vmlinux 0x3654c943 bitmap_start_sync +EXPORT_SYMBOL vmlinux 0x365abe0d inet_ioctl +EXPORT_SYMBOL vmlinux 0x3682e94a simple_transaction_set +EXPORT_SYMBOL vmlinux 0x36a1311d xfrm_state_register_afinfo +EXPORT_SYMBOL vmlinux 0x36bc2098 free_buffer_head +EXPORT_SYMBOL vmlinux 0x36d0b8a5 neigh_seq_start +EXPORT_SYMBOL vmlinux 0x36d7b11a of_find_matching_node_and_match +EXPORT_SYMBOL vmlinux 0x36e360e3 __hw_addr_add_multiple +EXPORT_SYMBOL vmlinux 0x36f9cd94 rcu_is_cpu_idle +EXPORT_SYMBOL vmlinux 0x36fdba8d cont_write_begin +EXPORT_SYMBOL vmlinux 0x370f93a7 input_open_device +EXPORT_SYMBOL vmlinux 0x37359979 netdev_info +EXPORT_SYMBOL vmlinux 0x3744cf36 vmalloc_to_pfn +EXPORT_SYMBOL vmlinux 0x374ae6bd key_invalidate +EXPORT_SYMBOL vmlinux 0x375c6037 of_mm_gpiochip_add +EXPORT_SYMBOL vmlinux 0x375ce5a0 touch_atime +EXPORT_SYMBOL vmlinux 0x376ede07 snd_pcm_kernel_ioctl +EXPORT_SYMBOL vmlinux 0x37842761 genl_register_ops +EXPORT_SYMBOL vmlinux 0x3796bdcc snd_pcm_format_little_endian +EXPORT_SYMBOL vmlinux 0x37b777df param_set_copystring +EXPORT_SYMBOL vmlinux 0x37befc70 jiffies_to_msecs +EXPORT_SYMBOL vmlinux 0x37dbe123 dev_mc_del +EXPORT_SYMBOL vmlinux 0x37e74642 get_jiffies_64 +EXPORT_SYMBOL vmlinux 0x37efaa3d _dev_info +EXPORT_SYMBOL vmlinux 0x37f614b7 __kfifo_len_r +EXPORT_SYMBOL vmlinux 0x38007f4f input_mt_get_slot_by_key +EXPORT_SYMBOL vmlinux 0x381144a9 __tracepoint_module_get +EXPORT_SYMBOL vmlinux 0x38155c75 xfrm6_rcv +EXPORT_SYMBOL vmlinux 0x381a798a setup_max_cpus +EXPORT_SYMBOL vmlinux 0x382b5b67 abort_creds +EXPORT_SYMBOL vmlinux 0x384b4a32 jbd2_journal_check_available_features +EXPORT_SYMBOL vmlinux 0x38625061 dquot_release +EXPORT_SYMBOL vmlinux 0x3866853e d_alloc_pseudo +EXPORT_SYMBOL vmlinux 0x3880c122 of_device_register +EXPORT_SYMBOL vmlinux 0x38869d88 kstat +EXPORT_SYMBOL vmlinux 0x388f9128 xfrm_state_walk_done +EXPORT_SYMBOL vmlinux 0x38b6c2c8 jbd2_journal_lock_updates +EXPORT_SYMBOL vmlinux 0x38bbdc08 __pskb_pull_tail +EXPORT_SYMBOL vmlinux 0x38c97d50 idr_get_next +EXPORT_SYMBOL vmlinux 0x38ddf1fd free_mdio_bitbang +EXPORT_SYMBOL vmlinux 0x38df2b28 neigh_direct_output +EXPORT_SYMBOL vmlinux 0x38e7f8b4 vm_insert_mixed +EXPORT_SYMBOL vmlinux 0x3900cdfb generic_pipe_buf_map +EXPORT_SYMBOL vmlinux 0x3904df08 neigh_destroy +EXPORT_SYMBOL vmlinux 0x3924dd56 try_wait_for_completion +EXPORT_SYMBOL vmlinux 0x3935c78d locks_init_lock +EXPORT_SYMBOL vmlinux 0x3939f8f0 rfkill_pause_polling +EXPORT_SYMBOL vmlinux 0x395e8620 ns_capable +EXPORT_SYMBOL vmlinux 0x39694d90 sk_stream_write_space +EXPORT_SYMBOL vmlinux 0x3971b4df snd_ecards_limit +EXPORT_SYMBOL vmlinux 0x397cfecd inode_sub_bytes +EXPORT_SYMBOL vmlinux 0x3997c605 simple_getattr +EXPORT_SYMBOL vmlinux 0x39ab1be6 find_lock_page +EXPORT_SYMBOL vmlinux 0x39bf9301 _snd_pcm_hw_param_setempty +EXPORT_SYMBOL vmlinux 0x39f273cc filemap_fdatawait +EXPORT_SYMBOL vmlinux 0x39f93abe ps2_sendbyte +EXPORT_SYMBOL vmlinux 0x3a0659c2 cdrom_get_media_event +EXPORT_SYMBOL vmlinux 0x3a14bfab tcp_init_xmit_timers +EXPORT_SYMBOL vmlinux 0x3a1ecb86 arp_find +EXPORT_SYMBOL vmlinux 0x3a55ac80 vlan_vids_add_by_dev +EXPORT_SYMBOL vmlinux 0x3a7e8c0f bio_add_page +EXPORT_SYMBOL vmlinux 0x3a8c1b8b dcache_dir_lseek +EXPORT_SYMBOL vmlinux 0x3a99dcb1 xfrm_find_acq +EXPORT_SYMBOL vmlinux 0x3a9b6fb9 blk_unregister_region +EXPORT_SYMBOL vmlinux 0x3ad4e227 fb_get_mode +EXPORT_SYMBOL vmlinux 0x3adbd2a1 jbd2_journal_force_commit +EXPORT_SYMBOL vmlinux 0x3adde636 blk_queue_init_tags +EXPORT_SYMBOL vmlinux 0x3b148d53 grab_cache_page_write_begin +EXPORT_SYMBOL vmlinux 0x3b261c05 vfs_readlink +EXPORT_SYMBOL vmlinux 0x3b30120c current_fs_time +EXPORT_SYMBOL vmlinux 0x3b345def scsi_set_medium_removal +EXPORT_SYMBOL vmlinux 0x3b5b6d38 devfreq_add_governor +EXPORT_SYMBOL vmlinux 0x3b75f7a1 jbd2_journal_force_commit_nested +EXPORT_SYMBOL vmlinux 0x3b77ff5a netdev_change_features +EXPORT_SYMBOL vmlinux 0x3b917f6c tcf_hash_release +EXPORT_SYMBOL vmlinux 0x3b91f3af snd_free_pages +EXPORT_SYMBOL vmlinux 0x3b95996e single_open +EXPORT_SYMBOL vmlinux 0x3b99fb12 clk_add_alias +EXPORT_SYMBOL vmlinux 0x3bbf46ea vga_base +EXPORT_SYMBOL vmlinux 0x3bc209f5 jbd2_journal_init_jbd_inode +EXPORT_SYMBOL vmlinux 0x3bd1b1f6 msecs_to_jiffies +EXPORT_SYMBOL vmlinux 0x3be021c2 task_nice +EXPORT_SYMBOL vmlinux 0x3bef03b9 flow_cache_lookup +EXPORT_SYMBOL vmlinux 0x3bf33764 get_task_io_context +EXPORT_SYMBOL vmlinux 0x3bfac894 generic_permission +EXPORT_SYMBOL vmlinux 0x3c03ffac wait_iff_congested +EXPORT_SYMBOL vmlinux 0x3c2252c0 qdisc_reset +EXPORT_SYMBOL vmlinux 0x3c303880 sg_pcopy_to_buffer +EXPORT_SYMBOL vmlinux 0x3c35d1e8 ioc_lookup_icq +EXPORT_SYMBOL vmlinux 0x3c784e44 sock_update_classid +EXPORT_SYMBOL vmlinux 0x3c80c06c kstrtoull +EXPORT_SYMBOL vmlinux 0x3c93bd72 padata_set_cpumasks +EXPORT_SYMBOL vmlinux 0x3c9d1211 string_get_size +EXPORT_SYMBOL vmlinux 0x3cdbfd43 scsi_device_put +EXPORT_SYMBOL vmlinux 0x3ce4ca6f disable_irq +EXPORT_SYMBOL vmlinux 0x3d15d059 dm_put_device +EXPORT_SYMBOL vmlinux 0x3d173d29 journal_try_to_free_buffers +EXPORT_SYMBOL vmlinux 0x3d1ce947 dcache_dir_open +EXPORT_SYMBOL vmlinux 0x3d3c540f elf_hwcap +EXPORT_SYMBOL vmlinux 0x3d41904f of_get_next_child +EXPORT_SYMBOL vmlinux 0x3d43835a console_start +EXPORT_SYMBOL vmlinux 0x3d7aa374 dcb_ieee_delapp +EXPORT_SYMBOL vmlinux 0x3d8d71a8 journal_dirty_metadata +EXPORT_SYMBOL vmlinux 0x3d8d7438 __xfrm_decode_session +EXPORT_SYMBOL vmlinux 0x3d982ab5 sock_wake_async +EXPORT_SYMBOL vmlinux 0x3da3c567 eth_prepare_mac_addr_change +EXPORT_SYMBOL vmlinux 0x3dcb88a0 irq_set_handler_data +EXPORT_SYMBOL vmlinux 0x3dd8f186 __arm_ioremap +EXPORT_SYMBOL vmlinux 0x3de7f9bf fb_validate_mode +EXPORT_SYMBOL vmlinux 0x3dfc339a netif_stacked_transfer_operstate +EXPORT_SYMBOL vmlinux 0x3dfc897c seq_hlist_start_head +EXPORT_SYMBOL vmlinux 0x3e291e2d kmem_cache_alloc +EXPORT_SYMBOL vmlinux 0x3e48608c flush_old_exec +EXPORT_SYMBOL vmlinux 0x3e581679 d_alloc_name +EXPORT_SYMBOL vmlinux 0x3e5ec1e9 kern_unmount +EXPORT_SYMBOL vmlinux 0x3e6776c4 sock_wmalloc +EXPORT_SYMBOL vmlinux 0x3e792376 md_write_end +EXPORT_SYMBOL vmlinux 0x3e87c058 jbd2_journal_release_jbd_inode +EXPORT_SYMBOL vmlinux 0x3e9110fa __hw_addr_unsync +EXPORT_SYMBOL vmlinux 0x3eae292f param_set_byte +EXPORT_SYMBOL vmlinux 0x3eaf291d param_get_string +EXPORT_SYMBOL vmlinux 0x3eb027ae kmem_cache_free +EXPORT_SYMBOL vmlinux 0x3ec16c3b in_group_p +EXPORT_SYMBOL vmlinux 0x3ec3fa78 bioset_create +EXPORT_SYMBOL vmlinux 0x3ecd2a07 i2c_smbus_write_word_data +EXPORT_SYMBOL vmlinux 0x3ed63055 zlib_inflateReset +EXPORT_SYMBOL vmlinux 0x3edaa671 xfrm4_prepare_output +EXPORT_SYMBOL vmlinux 0x3ee41774 blk_init_allocated_queue +EXPORT_SYMBOL vmlinux 0x3ef0a028 backlight_force_update +EXPORT_SYMBOL vmlinux 0x3f021c18 ps2_drain +EXPORT_SYMBOL vmlinux 0x3f05f912 netpoll_send_skb_on_dev +EXPORT_SYMBOL vmlinux 0x3f181e2c blk_integrity_register +EXPORT_SYMBOL vmlinux 0x3f22eab0 tcf_unregister_action +EXPORT_SYMBOL vmlinux 0x3f3517a8 request_key_async_with_auxdata +EXPORT_SYMBOL vmlinux 0x3f3fe5cb unlock_page +EXPORT_SYMBOL vmlinux 0x3f4547a7 put_unused_fd +EXPORT_SYMBOL vmlinux 0x3f518623 copy_strings_kernel +EXPORT_SYMBOL vmlinux 0x3f5b67d5 wait_for_completion_killable +EXPORT_SYMBOL vmlinux 0x3f8550e0 journal_force_commit_nested +EXPORT_SYMBOL vmlinux 0x3f874733 seq_path +EXPORT_SYMBOL vmlinux 0x3fab3ca9 register_sysctl_table +EXPORT_SYMBOL vmlinux 0x3fbf921e dev_set_allmulti +EXPORT_SYMBOL vmlinux 0x3fc61011 get_super_thawed +EXPORT_SYMBOL vmlinux 0x3fd55724 of_n_size_cells +EXPORT_SYMBOL vmlinux 0x3ff28f89 xfrm_garbage_collect +EXPORT_SYMBOL vmlinux 0x3ff62317 local_bh_disable +EXPORT_SYMBOL vmlinux 0x3ffa273a devm_input_allocate_device +EXPORT_SYMBOL vmlinux 0x40069cb9 __alloc_skb +EXPORT_SYMBOL vmlinux 0x40250e1f serio_open +EXPORT_SYMBOL vmlinux 0x402b8281 __request_module +EXPORT_SYMBOL vmlinux 0x4059792f print_hex_dump +EXPORT_SYMBOL vmlinux 0x405c1144 get_seconds +EXPORT_SYMBOL vmlinux 0x407136b1 __put_user_8 +EXPORT_SYMBOL vmlinux 0x40943df0 kernel_sock_ioctl +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 0x40a2d1dd dm_table_get_size +EXPORT_SYMBOL vmlinux 0x40a9b349 vzalloc +EXPORT_SYMBOL vmlinux 0x40c01859 gen_pool_best_fit +EXPORT_SYMBOL vmlinux 0x40c352e7 max8998_update_reg +EXPORT_SYMBOL vmlinux 0x40c7247c si_meminfo +EXPORT_SYMBOL vmlinux 0x40ce485b mempool_resize +EXPORT_SYMBOL vmlinux 0x40d04664 console_trylock +EXPORT_SYMBOL vmlinux 0x40d1c9f4 mmc_calc_max_discard +EXPORT_SYMBOL vmlinux 0x40d4f256 fixed_size_llseek +EXPORT_SYMBOL vmlinux 0x40ea0028 arm_dma_ops +EXPORT_SYMBOL vmlinux 0x40ee0346 unload_nls +EXPORT_SYMBOL vmlinux 0x40f07981 __ashldi3 +EXPORT_SYMBOL vmlinux 0x411a6cb2 tcf_exts_destroy +EXPORT_SYMBOL vmlinux 0x41473fb7 bio_integrity_add_page +EXPORT_SYMBOL vmlinux 0x41482d8b strndup_user +EXPORT_SYMBOL vmlinux 0x4188d439 neigh_rand_reach_time +EXPORT_SYMBOL vmlinux 0x419dea16 dquot_scan_active +EXPORT_SYMBOL vmlinux 0x41b670cf kernel_accept +EXPORT_SYMBOL vmlinux 0x41c37889 nand_scan +EXPORT_SYMBOL vmlinux 0x41e51499 bfifo_qdisc_ops +EXPORT_SYMBOL vmlinux 0x41e87c2e framebuffer_alloc +EXPORT_SYMBOL vmlinux 0x41ef0f61 tty_port_tty_set +EXPORT_SYMBOL vmlinux 0x41f57a1e create_empty_buffers +EXPORT_SYMBOL vmlinux 0x41fe8765 unregister_filesystem +EXPORT_SYMBOL vmlinux 0x420a54b9 iterate_mounts +EXPORT_SYMBOL vmlinux 0x420b515d dev_mc_init +EXPORT_SYMBOL vmlinux 0x4211c3c1 zlib_inflateInit2 +EXPORT_SYMBOL vmlinux 0x424bc3a2 of_phy_find_device +EXPORT_SYMBOL vmlinux 0x426308f3 pm8606_osc_disable +EXPORT_SYMBOL vmlinux 0x426f3496 mmc_add_host +EXPORT_SYMBOL vmlinux 0x42711126 uart_update_timeout +EXPORT_SYMBOL vmlinux 0x428f24f9 posix_acl_create +EXPORT_SYMBOL vmlinux 0x42977ad4 __hw_addr_del_multiple +EXPORT_SYMBOL vmlinux 0x4298b775 v7_flush_kern_cache_all +EXPORT_SYMBOL vmlinux 0x4298bf22 skb_copy_and_csum_bits +EXPORT_SYMBOL vmlinux 0x42a1b208 gen_pool_first_fit +EXPORT_SYMBOL vmlinux 0x42aedd93 clear_nlink +EXPORT_SYMBOL vmlinux 0x42c280d7 input_get_keycode +EXPORT_SYMBOL vmlinux 0x42e05819 jbd2_journal_restart +EXPORT_SYMBOL vmlinux 0x42f8a2de __sg_page_iter_start +EXPORT_SYMBOL vmlinux 0x42fec8bb lro_receive_skb +EXPORT_SYMBOL vmlinux 0x4302d0eb free_pages +EXPORT_SYMBOL vmlinux 0x431158ac devm_ioremap_nocache +EXPORT_SYMBOL vmlinux 0x4316432f napi_complete +EXPORT_SYMBOL vmlinux 0x431914f4 d_obtain_alias +EXPORT_SYMBOL vmlinux 0x431ae3a9 seq_puts +EXPORT_SYMBOL vmlinux 0x432ad7fd tcf_exts_dump_stats +EXPORT_SYMBOL vmlinux 0x433d722f udp_lib_setsockopt +EXPORT_SYMBOL vmlinux 0x4351577a fb_parse_edid +EXPORT_SYMBOL vmlinux 0x435e40b1 tcf_em_tree_destroy +EXPORT_SYMBOL vmlinux 0x43632d7d of_find_property +EXPORT_SYMBOL vmlinux 0x437a6980 tcf_hash_create +EXPORT_SYMBOL vmlinux 0x437ad1cd sock_release +EXPORT_SYMBOL vmlinux 0x438610bd security_tun_dev_alloc_security +EXPORT_SYMBOL vmlinux 0x43f23311 dm_table_get_md +EXPORT_SYMBOL vmlinux 0x4408a63b netdev_printk +EXPORT_SYMBOL vmlinux 0x4411c503 prandom_seed +EXPORT_SYMBOL vmlinux 0x442495c9 tmio_core_mmc_resume +EXPORT_SYMBOL vmlinux 0x44366cfc simple_write_to_buffer +EXPORT_SYMBOL vmlinux 0x44438b96 hex2bin +EXPORT_SYMBOL vmlinux 0x4459128b ndisc_mc_map +EXPORT_SYMBOL vmlinux 0x4461a1cd blk_queue_io_opt +EXPORT_SYMBOL vmlinux 0x44620d67 vfs_read +EXPORT_SYMBOL vmlinux 0x44643b93 __aeabi_lmul +EXPORT_SYMBOL vmlinux 0x446f5b05 mdiobus_read +EXPORT_SYMBOL vmlinux 0x4470a79b param_ops_long +EXPORT_SYMBOL vmlinux 0x44a565f9 locks_remove_posix +EXPORT_SYMBOL vmlinux 0x44ba9bf7 pm860x_bulk_read +EXPORT_SYMBOL vmlinux 0x44da5d0f __csum_ipv6_magic +EXPORT_SYMBOL vmlinux 0x44dd3d8d completion_done +EXPORT_SYMBOL vmlinux 0x44ddcd96 dev_remove_pack +EXPORT_SYMBOL vmlinux 0x44e9a829 match_token +EXPORT_SYMBOL vmlinux 0x44f5e8b5 of_allnodes +EXPORT_SYMBOL vmlinux 0x454921eb da903x_query_status +EXPORT_SYMBOL vmlinux 0x455293f6 down_read +EXPORT_SYMBOL vmlinux 0x4563a66b cap_mmap_file +EXPORT_SYMBOL vmlinux 0x4578f528 __kfifo_to_user +EXPORT_SYMBOL vmlinux 0x459ab728 frontswap_register_ops +EXPORT_SYMBOL vmlinux 0x45b6ba3c dev_load +EXPORT_SYMBOL vmlinux 0x45bda0d5 system_serial_low +EXPORT_SYMBOL vmlinux 0x45c8061b netdev_refcnt_read +EXPORT_SYMBOL vmlinux 0x45c8cd86 ifla_policy +EXPORT_SYMBOL vmlinux 0x45cc755b __kfifo_dma_out_prepare_r +EXPORT_SYMBOL vmlinux 0x45d7db7b input_grab_device +EXPORT_SYMBOL vmlinux 0x45eac0dd gen_pool_virt_to_phys +EXPORT_SYMBOL vmlinux 0x45efe8ac ip6_route_me_harder +EXPORT_SYMBOL vmlinux 0x45f21448 dev_kfree_skb_irq +EXPORT_SYMBOL vmlinux 0x45f68981 dev_addr_del_multiple +EXPORT_SYMBOL vmlinux 0x460f6539 scsi_adjust_queue_depth +EXPORT_SYMBOL vmlinux 0x462a2e75 match_strlcpy +EXPORT_SYMBOL vmlinux 0x462ab17b tcf_register_action +EXPORT_SYMBOL vmlinux 0x4639be44 bio_get_nr_vecs +EXPORT_SYMBOL vmlinux 0x46417343 snd_ctl_rename_id +EXPORT_SYMBOL vmlinux 0x465425bb __blk_end_request_all +EXPORT_SYMBOL vmlinux 0x465757c3 cpu_present_mask +EXPORT_SYMBOL vmlinux 0x465cab34 secure_ipv6_port_ephemeral +EXPORT_SYMBOL vmlinux 0x465e3ef2 account_page_redirty +EXPORT_SYMBOL vmlinux 0x46608fa0 getnstimeofday +EXPORT_SYMBOL vmlinux 0x466ec2cd dev_uc_del +EXPORT_SYMBOL vmlinux 0x4690ca7d write_cache_pages +EXPORT_SYMBOL vmlinux 0x46aa40f6 of_mdio_find_bus +EXPORT_SYMBOL vmlinux 0x46acd324 mb_cache_entry_alloc +EXPORT_SYMBOL vmlinux 0x46b8d786 _snd_pcm_lib_alloc_vmalloc_buffer +EXPORT_SYMBOL vmlinux 0x46bacc91 jbd2_journal_get_write_access +EXPORT_SYMBOL vmlinux 0x46c9cd97 ip_ct_attach +EXPORT_SYMBOL vmlinux 0x46d3b28c __div0 +EXPORT_SYMBOL vmlinux 0x46f0b4b4 filemap_fdatawrite_range +EXPORT_SYMBOL vmlinux 0x46f4b88c should_remove_suid +EXPORT_SYMBOL vmlinux 0x46feb099 dm_read_arg +EXPORT_SYMBOL vmlinux 0x4702f04e jbd2_journal_extend +EXPORT_SYMBOL vmlinux 0x47179d1a blk_queue_prep_rq +EXPORT_SYMBOL vmlinux 0x47416e14 cpu_rmap_add +EXPORT_SYMBOL vmlinux 0x475100c2 inet_get_local_port_range +EXPORT_SYMBOL vmlinux 0x477913ff install_exec_creds +EXPORT_SYMBOL vmlinux 0x47939e0d __tasklet_hi_schedule +EXPORT_SYMBOL vmlinux 0x47b3f862 radix_tree_lookup_slot +EXPORT_SYMBOL vmlinux 0x47b6a10f ftrace_print_symbols_seq +EXPORT_SYMBOL vmlinux 0x47c42c48 __alloc_pages_nodemask +EXPORT_SYMBOL vmlinux 0x47d5c90d fsnotify_put_group +EXPORT_SYMBOL vmlinux 0x47e70229 v7_flush_user_cache_range +EXPORT_SYMBOL vmlinux 0x47ea01a5 blk_post_runtime_suspend +EXPORT_SYMBOL vmlinux 0x47eaa303 dev_emerg +EXPORT_SYMBOL vmlinux 0x47f757de elf_platform +EXPORT_SYMBOL vmlinux 0x480a78e7 sock_queue_err_skb +EXPORT_SYMBOL vmlinux 0x481ce6ce cpu_active_mask +EXPORT_SYMBOL vmlinux 0x482d1a18 noop_llseek +EXPORT_SYMBOL vmlinux 0x483bb22a fput +EXPORT_SYMBOL vmlinux 0x483f1e26 pm860x_page_reg_read +EXPORT_SYMBOL vmlinux 0x4845c423 param_array_ops +EXPORT_SYMBOL vmlinux 0x48467036 mpage_readpages +EXPORT_SYMBOL vmlinux 0x484cf558 blkdev_issue_flush +EXPORT_SYMBOL vmlinux 0x4859b8bb rtc_year_days +EXPORT_SYMBOL vmlinux 0x486785e8 mmc_unregister_driver +EXPORT_SYMBOL vmlinux 0x487d9343 param_ops_ushort +EXPORT_SYMBOL vmlinux 0x4881d505 idr_for_each +EXPORT_SYMBOL vmlinux 0x488882e7 downgrade_write +EXPORT_SYMBOL vmlinux 0x48a5b067 __machine_arch_type +EXPORT_SYMBOL vmlinux 0x48c6db53 of_get_child_by_name +EXPORT_SYMBOL vmlinux 0x48dbd028 snd_pcm_hw_constraint_ratnums +EXPORT_SYMBOL vmlinux 0x48de487c simple_open +EXPORT_SYMBOL vmlinux 0x48e1a1c5 rps_may_expire_flow +EXPORT_SYMBOL vmlinux 0x48f5b565 tcp_sendmsg +EXPORT_SYMBOL vmlinux 0x48f99bc2 tcp_v4_connect +EXPORT_SYMBOL vmlinux 0x49045426 icmp_err_convert +EXPORT_SYMBOL vmlinux 0x4908f393 bitmap_close_sync +EXPORT_SYMBOL vmlinux 0x491d2a83 pskb_expand_head +EXPORT_SYMBOL vmlinux 0x493668f2 __netdev_alloc_skb +EXPORT_SYMBOL vmlinux 0x493dbbc1 migrate_page +EXPORT_SYMBOL vmlinux 0x493de9d7 scsi_dma_unmap +EXPORT_SYMBOL vmlinux 0x49455a4f padata_stop +EXPORT_SYMBOL vmlinux 0x49574351 ip_options_compile +EXPORT_SYMBOL vmlinux 0x495756a8 inet6_add_protocol +EXPORT_SYMBOL vmlinux 0x49603fb8 security_sb_copy_data +EXPORT_SYMBOL vmlinux 0x49974419 eth_header_cache_update +EXPORT_SYMBOL vmlinux 0x499cb58c prepare_to_wait +EXPORT_SYMBOL vmlinux 0x49aaa7d9 ptp_clock_index +EXPORT_SYMBOL vmlinux 0x49adeb74 snd_timer_continue +EXPORT_SYMBOL vmlinux 0x49b07aec tcp_select_initial_window +EXPORT_SYMBOL vmlinux 0x49b643bc phy_drivers_register +EXPORT_SYMBOL vmlinux 0x49d113f9 do_splice_to +EXPORT_SYMBOL vmlinux 0x49e99a0e mb_cache_destroy +EXPORT_SYMBOL vmlinux 0x49ebacbd _clear_bit +EXPORT_SYMBOL vmlinux 0x4a09887a nobh_write_begin +EXPORT_SYMBOL vmlinux 0x4a112df8 sg_init_one +EXPORT_SYMBOL vmlinux 0x4a358252 __bitmap_subset +EXPORT_SYMBOL vmlinux 0x4a3ea5c0 snd_request_card +EXPORT_SYMBOL vmlinux 0x4a4a81f5 vfs_fsync +EXPORT_SYMBOL vmlinux 0x4a57b339 wait_for_completion_io_timeout +EXPORT_SYMBOL vmlinux 0x4a57f4f4 __pskb_copy +EXPORT_SYMBOL vmlinux 0x4a589b09 __kfree_skb +EXPORT_SYMBOL vmlinux 0x4a5cd35f pipe_lock +EXPORT_SYMBOL vmlinux 0x4a5e9086 sock_no_accept +EXPORT_SYMBOL vmlinux 0x4a71e581 get_io_context +EXPORT_SYMBOL vmlinux 0x4a7fb243 percpu_counter_compare +EXPORT_SYMBOL vmlinux 0x4a96556e tcf_em_tree_dump +EXPORT_SYMBOL vmlinux 0x4abbe3c2 vm_brk +EXPORT_SYMBOL vmlinux 0x4abe3396 dquot_free_inode +EXPORT_SYMBOL vmlinux 0x4abfef24 unmap_underlying_metadata +EXPORT_SYMBOL vmlinux 0x4ac0fdd5 sock_create +EXPORT_SYMBOL vmlinux 0x4acd93d3 release_resource +EXPORT_SYMBOL vmlinux 0x4ae75a2e file_open_root +EXPORT_SYMBOL vmlinux 0x4ae82e4d udp_proc_unregister +EXPORT_SYMBOL vmlinux 0x4aecb5df bio_split +EXPORT_SYMBOL vmlinux 0x4aef260b i2c_master_send +EXPORT_SYMBOL vmlinux 0x4afe9a77 scsi_partsize +EXPORT_SYMBOL vmlinux 0x4b015768 snd_iprintf +EXPORT_SYMBOL vmlinux 0x4b068a9f tty_port_close_end +EXPORT_SYMBOL vmlinux 0x4b0defba scsi_execute_req_flags +EXPORT_SYMBOL vmlinux 0x4b1ec3e2 kstrtoul_from_user +EXPORT_SYMBOL vmlinux 0x4b29f476 read_code +EXPORT_SYMBOL vmlinux 0x4b34fbf5 block_all_signals +EXPORT_SYMBOL vmlinux 0x4b3a4ad1 uart_remove_one_port +EXPORT_SYMBOL vmlinux 0x4b52f7c8 blk_queue_merge_bvec +EXPORT_SYMBOL vmlinux 0x4b5fd49e dm_kcopyd_do_callback +EXPORT_SYMBOL vmlinux 0x4b6ca107 blk_integrity_unregister +EXPORT_SYMBOL vmlinux 0x4b8fef48 kmem_cache_alloc_trace +EXPORT_SYMBOL vmlinux 0x4bcc588a unmap_mapping_range +EXPORT_SYMBOL vmlinux 0x4be4bb6d mdiobus_write +EXPORT_SYMBOL vmlinux 0x4be7fb63 up +EXPORT_SYMBOL vmlinux 0x4be85a03 memweight +EXPORT_SYMBOL vmlinux 0x4be9d968 generic_ro_fops +EXPORT_SYMBOL vmlinux 0x4c1182cb bitmap_scnprintf +EXPORT_SYMBOL vmlinux 0x4c2ae700 strnstr +EXPORT_SYMBOL vmlinux 0x4c3c980c arp_xmit +EXPORT_SYMBOL vmlinux 0x4c4e2ff3 clocksource_register +EXPORT_SYMBOL vmlinux 0x4c69a31b block_truncate_page +EXPORT_SYMBOL vmlinux 0x4c86184b remove_wait_queue +EXPORT_SYMBOL vmlinux 0x4cbbd171 __bitmap_weight +EXPORT_SYMBOL vmlinux 0x4cd6a1f8 serio_interrupt +EXPORT_SYMBOL vmlinux 0x4cdb3178 ns_to_timeval +EXPORT_SYMBOL vmlinux 0x4cf3697c __scsi_device_lookup_by_target +EXPORT_SYMBOL vmlinux 0x4d0d163d copy_page +EXPORT_SYMBOL vmlinux 0x4d0f1093 udp_lib_rehash +EXPORT_SYMBOL vmlinux 0x4d239dd5 unregister_mtd_chip_driver +EXPORT_SYMBOL vmlinux 0x4d264427 splice_direct_to_actor +EXPORT_SYMBOL vmlinux 0x4d27617b iw_handler_get_spy +EXPORT_SYMBOL vmlinux 0x4d2e5629 netlink_unicast +EXPORT_SYMBOL vmlinux 0x4d3c153f sigprocmask +EXPORT_SYMBOL vmlinux 0x4d405db8 param_ops_string +EXPORT_SYMBOL vmlinux 0x4d45d89e udp_memory_allocated +EXPORT_SYMBOL vmlinux 0x4d4b8867 scsi_dma_map +EXPORT_SYMBOL vmlinux 0x4d5bde55 in6_dev_finish_destroy +EXPORT_SYMBOL vmlinux 0x4d60b3d1 sg_alloc_table +EXPORT_SYMBOL vmlinux 0x4d642745 inet_accept +EXPORT_SYMBOL vmlinux 0x4d84ce3d ipv6_setsockopt +EXPORT_SYMBOL vmlinux 0x4d974b9c register_sysrq_key +EXPORT_SYMBOL vmlinux 0x4d9b652b rb_erase +EXPORT_SYMBOL vmlinux 0x4d9b6d35 snd_pcm_format_size +EXPORT_SYMBOL vmlinux 0x4da0c2dd dma_release_declared_memory +EXPORT_SYMBOL vmlinux 0x4da2f1ed blk_integrity_merge_rq +EXPORT_SYMBOL vmlinux 0x4db16758 dm_kcopyd_zero +EXPORT_SYMBOL vmlinux 0x4dbb7c45 devfreq_remove_device +EXPORT_SYMBOL vmlinux 0x4dda3f51 mutex_lock_killable +EXPORT_SYMBOL vmlinux 0x4ddeae35 mmc_can_secure_erase_trim +EXPORT_SYMBOL vmlinux 0x4de34a07 cpu_rmap_put +EXPORT_SYMBOL vmlinux 0x4dec6038 memscan +EXPORT_SYMBOL vmlinux 0x4df119fa __bitmap_parse +EXPORT_SYMBOL vmlinux 0x4e08021a mddev_congested +EXPORT_SYMBOL vmlinux 0x4e0ff4d4 udp6_csum_init +EXPORT_SYMBOL vmlinux 0x4e1c8edc mmc_fixup_device +EXPORT_SYMBOL vmlinux 0x4e3567f7 match_int +EXPORT_SYMBOL vmlinux 0x4e433741 blk_stop_queue +EXPORT_SYMBOL vmlinux 0x4e6e8ea7 fg_console +EXPORT_SYMBOL vmlinux 0x4e830a3e strnicmp +EXPORT_SYMBOL vmlinux 0x4e8adc00 __lock_page +EXPORT_SYMBOL vmlinux 0x4ea63695 get_write_access +EXPORT_SYMBOL vmlinux 0x4ec7ef0f scsi_setup_fs_cmnd +EXPORT_SYMBOL vmlinux 0x4edd2e80 inode_init_once +EXPORT_SYMBOL vmlinux 0x4f179703 snd_pcm_stop +EXPORT_SYMBOL vmlinux 0x4f1cd128 security_tun_dev_create +EXPORT_SYMBOL vmlinux 0x4f2335a0 dev_crit +EXPORT_SYMBOL vmlinux 0x4f248523 of_find_node_by_name +EXPORT_SYMBOL vmlinux 0x4f2cdc1e elv_add_request +EXPORT_SYMBOL vmlinux 0x4f391d0e nla_parse +EXPORT_SYMBOL vmlinux 0x4f476e96 init_cdrom_command +EXPORT_SYMBOL vmlinux 0x4f616433 ip_mc_leave_group +EXPORT_SYMBOL vmlinux 0x4f68e5c9 do_gettimeofday +EXPORT_SYMBOL vmlinux 0x4f6e2de7 snd_ctl_free_one +EXPORT_SYMBOL vmlinux 0x4f758686 nand_scan_bbt +EXPORT_SYMBOL vmlinux 0x4f7ff0c8 blk_rq_map_user_iov +EXPORT_SYMBOL vmlinux 0x4f816e9b snd_pcm_format_big_endian +EXPORT_SYMBOL vmlinux 0x4f872dd4 account_page_dirtied +EXPORT_SYMBOL vmlinux 0x4fa29bda abx500_get_register_interruptible +EXPORT_SYMBOL vmlinux 0x4fcdbf9e __generic_block_fiemap +EXPORT_SYMBOL vmlinux 0x4fe4094b sdev_disable_disk_events +EXPORT_SYMBOL vmlinux 0x4fe90a43 replace_mount_options +EXPORT_SYMBOL vmlinux 0x4fee0767 sync_mapping_buffers +EXPORT_SYMBOL vmlinux 0x4ffd250b inet_bind +EXPORT_SYMBOL vmlinux 0x5001b325 scsi_unregister +EXPORT_SYMBOL vmlinux 0x5004a3a1 put_page +EXPORT_SYMBOL vmlinux 0x5006ea18 unregister_quota_format +EXPORT_SYMBOL vmlinux 0x50097088 security_tun_dev_free_security +EXPORT_SYMBOL vmlinux 0x5014b1be pm860x_reg_write +EXPORT_SYMBOL vmlinux 0x5074f7c3 dm_register_target +EXPORT_SYMBOL vmlinux 0x50792025 jbd2_journal_wipe +EXPORT_SYMBOL vmlinux 0x5083a90f netdev_state_change +EXPORT_SYMBOL vmlinux 0x50926901 eth_validate_addr +EXPORT_SYMBOL vmlinux 0x509817cf vprintk_emit +EXPORT_SYMBOL vmlinux 0x50afa991 elv_register_queue +EXPORT_SYMBOL vmlinux 0x50b95330 generic_shutdown_super +EXPORT_SYMBOL vmlinux 0x50cedcfb dquot_commit_info +EXPORT_SYMBOL vmlinux 0x50db8ba6 dma_mark_declared_memory_occupied +EXPORT_SYMBOL vmlinux 0x50f4344c vm_map_ram +EXPORT_SYMBOL vmlinux 0x511746c1 dump_fpu +EXPORT_SYMBOL vmlinux 0x5118c382 secure_dccp_sequence_number +EXPORT_SYMBOL vmlinux 0x5143c678 param_get_invbool +EXPORT_SYMBOL vmlinux 0x51512401 inet_csk_destroy_sock +EXPORT_SYMBOL vmlinux 0x517394ea simple_readpage +EXPORT_SYMBOL vmlinux 0x51749fc8 _raw_read_lock_irq +EXPORT_SYMBOL vmlinux 0x51808f23 generic_pipe_buf_confirm +EXPORT_SYMBOL vmlinux 0x518d6c15 ipv4_specific +EXPORT_SYMBOL vmlinux 0x51908eb8 __raw_writesl +EXPORT_SYMBOL vmlinux 0x51a18b9d devfreq_monitor_start +EXPORT_SYMBOL vmlinux 0x51a2b774 phy_register_fixup_for_uid +EXPORT_SYMBOL vmlinux 0x51a9b37b snd_pcm_hw_refine +EXPORT_SYMBOL vmlinux 0x51abbc6c input_allocate_device +EXPORT_SYMBOL vmlinux 0x51d2c34d __locks_copy_lock +EXPORT_SYMBOL vmlinux 0x51d559d1 _raw_spin_unlock_irqrestore +EXPORT_SYMBOL vmlinux 0x51dce73b xfrm_state_walk_init +EXPORT_SYMBOL vmlinux 0x51e34f9f tag_pages_for_writeback +EXPORT_SYMBOL vmlinux 0x51e77c97 pfn_valid +EXPORT_SYMBOL vmlinux 0x51ef33b8 kstrndup +EXPORT_SYMBOL vmlinux 0x51f0afa7 blkdev_fsync +EXPORT_SYMBOL vmlinux 0x51f4738b ipv6_push_nfrag_opts +EXPORT_SYMBOL vmlinux 0x52026cdf security_sb_parse_opts_str +EXPORT_SYMBOL vmlinux 0x521917cc rawv6_mh_filter_unregister +EXPORT_SYMBOL vmlinux 0x521b36b5 qdisc_put_rtab +EXPORT_SYMBOL vmlinux 0x52428cc8 parent_mem_cgroup +EXPORT_SYMBOL vmlinux 0x52431f2c tcp_recvmsg +EXPORT_SYMBOL vmlinux 0x526642d0 register_md_personality +EXPORT_SYMBOL vmlinux 0x52739ba6 cdrom_mode_sense +EXPORT_SYMBOL vmlinux 0x527b11e4 quota_send_warning +EXPORT_SYMBOL vmlinux 0x528c709d simple_read_from_buffer +EXPORT_SYMBOL vmlinux 0x52989d40 dev_set_group +EXPORT_SYMBOL vmlinux 0x52d42c95 set_current_groups +EXPORT_SYMBOL vmlinux 0x52d74452 __xfrm_state_delete +EXPORT_SYMBOL vmlinux 0x52e3e4a5 snd_pcm_hw_param_value +EXPORT_SYMBOL vmlinux 0x52ea3314 cdrom_ioctl +EXPORT_SYMBOL vmlinux 0x52fc666d dma_async_memcpy_buf_to_pg +EXPORT_SYMBOL vmlinux 0x530b1e98 pm_suspend +EXPORT_SYMBOL vmlinux 0x53326531 mempool_alloc_pages +EXPORT_SYMBOL vmlinux 0x535a1bf1 snd_jack_report +EXPORT_SYMBOL vmlinux 0x537bcccc genlmsg_multicast_allns +EXPORT_SYMBOL vmlinux 0x5385ea45 cad_pid +EXPORT_SYMBOL vmlinux 0x53977db8 fib_default_rule_add +EXPORT_SYMBOL vmlinux 0x53b24c0b tcp_md5_hash_header +EXPORT_SYMBOL vmlinux 0x53b93e8c ipv6_find_hdr +EXPORT_SYMBOL vmlinux 0x53d2d0ec dquot_acquire +EXPORT_SYMBOL vmlinux 0x5409775b free_irq_cpu_rmap +EXPORT_SYMBOL vmlinux 0x541979b8 inc_nlink +EXPORT_SYMBOL vmlinux 0x5427dfd2 __nla_reserve +EXPORT_SYMBOL vmlinux 0x5428e656 input_reset_device +EXPORT_SYMBOL vmlinux 0x54383599 tty_port_put +EXPORT_SYMBOL vmlinux 0x543ef284 seq_hlist_start +EXPORT_SYMBOL vmlinux 0x544a32e7 ilookup5_nowait +EXPORT_SYMBOL vmlinux 0x547077ec __wake_up_bit +EXPORT_SYMBOL vmlinux 0x54752324 lookup_one_len +EXPORT_SYMBOL vmlinux 0x54875a1f module_layout +EXPORT_SYMBOL vmlinux 0x54a9db5f _kstrtoul +EXPORT_SYMBOL vmlinux 0x54ad4978 elv_dispatch_add_tail +EXPORT_SYMBOL vmlinux 0x54e0153f uart_write_wakeup +EXPORT_SYMBOL vmlinux 0x54e6fcdd net_enable_timestamp +EXPORT_SYMBOL vmlinux 0x54f21cff __send_remote_softirq +EXPORT_SYMBOL vmlinux 0x550fd2fd buffer_migrate_page +EXPORT_SYMBOL vmlinux 0x551bd071 __rb_erase_color +EXPORT_SYMBOL vmlinux 0x5541ea93 on_each_cpu +EXPORT_SYMBOL vmlinux 0x55429b24 xfrm_state_flush +EXPORT_SYMBOL vmlinux 0x554d3f8e tcp_md5_do_add +EXPORT_SYMBOL vmlinux 0x555013f6 serio_unregister_child_port +EXPORT_SYMBOL vmlinux 0x5567c227 kernel_cpustat +EXPORT_SYMBOL vmlinux 0x556b5e1b netdev_emerg +EXPORT_SYMBOL vmlinux 0x5587a353 simple_dir_inode_operations +EXPORT_SYMBOL vmlinux 0x5594be03 bitmap_remap +EXPORT_SYMBOL vmlinux 0x5596022f phy_drivers_unregister +EXPORT_SYMBOL vmlinux 0x55c591d4 mutex_lock_interruptible +EXPORT_SYMBOL vmlinux 0x55dc2391 rtnl_create_link +EXPORT_SYMBOL vmlinux 0x55ed781d xfrm_spd_getinfo +EXPORT_SYMBOL vmlinux 0x55ffd561 get_disk +EXPORT_SYMBOL vmlinux 0x560997bb nf_ip6_checksum +EXPORT_SYMBOL vmlinux 0x5614b010 xfrm_policy_walk_done +EXPORT_SYMBOL vmlinux 0x561fe2b9 write_dirty_buffer +EXPORT_SYMBOL vmlinux 0x5635a60a vmalloc_user +EXPORT_SYMBOL vmlinux 0x563de37e pm860x_page_bulk_read +EXPORT_SYMBOL vmlinux 0x5642793a radix_tree_tag_clear +EXPORT_SYMBOL vmlinux 0x56b0fe75 dev_graft_qdisc +EXPORT_SYMBOL vmlinux 0x56b92940 rc5t583_ext_power_req_config +EXPORT_SYMBOL vmlinux 0x56c59020 security_file_permission +EXPORT_SYMBOL vmlinux 0x56c8799d scsi_kunmap_atomic_sg +EXPORT_SYMBOL vmlinux 0x56efc406 ip_mc_rejoin_groups +EXPORT_SYMBOL vmlinux 0x56feb5e4 tcp_prequeue +EXPORT_SYMBOL vmlinux 0x5704d90d del_gendisk +EXPORT_SYMBOL vmlinux 0x57133292 blk_queue_update_dma_pad +EXPORT_SYMBOL vmlinux 0x5725f6ee bio_integrity_alloc +EXPORT_SYMBOL vmlinux 0x572d0104 _raw_write_unlock_irqrestore +EXPORT_SYMBOL vmlinux 0x572e85d4 blk_lookup_devt +EXPORT_SYMBOL vmlinux 0x5746152d qdisc_tree_decrease_qlen +EXPORT_SYMBOL vmlinux 0x57575f08 dmaengine_put +EXPORT_SYMBOL vmlinux 0x57629bbf devm_ioremap_resource +EXPORT_SYMBOL vmlinux 0x57674fd7 __sw_hweight16 +EXPORT_SYMBOL vmlinux 0x5799a29f seq_open +EXPORT_SYMBOL vmlinux 0x57a2db6f dquot_quota_off +EXPORT_SYMBOL vmlinux 0x57bf838b rawv6_mh_filter_register +EXPORT_SYMBOL vmlinux 0x57e7d08a padata_register_cpumask_notifier +EXPORT_SYMBOL vmlinux 0x57f102fc netdev_features_change +EXPORT_SYMBOL vmlinux 0x57f756d7 bio_uncopy_user +EXPORT_SYMBOL vmlinux 0x58009af7 inet6_del_offload +EXPORT_SYMBOL vmlinux 0x581f4f84 journal_destroy +EXPORT_SYMBOL vmlinux 0x581fc059 __quota_error +EXPORT_SYMBOL vmlinux 0x58330d7d simple_transaction_read +EXPORT_SYMBOL vmlinux 0x5833a6f8 kill_pgrp +EXPORT_SYMBOL vmlinux 0x5838f6c9 rtc_valid_tm +EXPORT_SYMBOL vmlinux 0x584b84b5 scsi_release_buffers +EXPORT_SYMBOL vmlinux 0x5857b7cd pgprot_kernel +EXPORT_SYMBOL vmlinux 0x58617f6c __sb_end_write +EXPORT_SYMBOL vmlinux 0x5884b2b2 xfrm_register_km +EXPORT_SYMBOL vmlinux 0x588c130c vexpress_config_func_put +EXPORT_SYMBOL vmlinux 0x58a901cd __find_get_block +EXPORT_SYMBOL vmlinux 0x58a943ea con_set_default_unimap +EXPORT_SYMBOL vmlinux 0x58d1070a of_get_address +EXPORT_SYMBOL vmlinux 0x58dbcff3 mutex_lock +EXPORT_SYMBOL vmlinux 0x58fb9e03 elevator_init +EXPORT_SYMBOL vmlinux 0x59256547 release_pages +EXPORT_SYMBOL vmlinux 0x5932bb4f tcp_md5_hash_skb_data +EXPORT_SYMBOL vmlinux 0x594bf15b ioport_map +EXPORT_SYMBOL vmlinux 0x594d5798 sock_no_sendmsg +EXPORT_SYMBOL vmlinux 0x594e1317 __modsi3 +EXPORT_SYMBOL vmlinux 0x5951f14d filemap_write_and_wait_range +EXPORT_SYMBOL vmlinux 0x5964cfd8 build_skb +EXPORT_SYMBOL vmlinux 0x596fffcd dentry_path_raw +EXPORT_SYMBOL vmlinux 0x598542b2 _raw_spin_lock_irqsave +EXPORT_SYMBOL vmlinux 0x598cd828 udp_table +EXPORT_SYMBOL vmlinux 0x59b55a88 kblockd_schedule_delayed_work +EXPORT_SYMBOL vmlinux 0x59ccca1a ipv6_chk_addr +EXPORT_SYMBOL vmlinux 0x59d29dab v7_flush_kern_dcache_area +EXPORT_SYMBOL vmlinux 0x59e5070d __do_div64 +EXPORT_SYMBOL vmlinux 0x59ebb418 serio_close +EXPORT_SYMBOL vmlinux 0x5a1c9687 blk_queue_dma_alignment +EXPORT_SYMBOL vmlinux 0x5a297533 shrink_dcache_parent +EXPORT_SYMBOL vmlinux 0x5a77f959 __sk_mem_reclaim +EXPORT_SYMBOL vmlinux 0x5a7be60d neigh_lookup +EXPORT_SYMBOL vmlinux 0x5a7ce471 max8925_set_bits +EXPORT_SYMBOL vmlinux 0x5a7e8fb8 dev_uc_unsync +EXPORT_SYMBOL vmlinux 0x5a94c39e mmc_set_data_timeout +EXPORT_SYMBOL vmlinux 0x5ab68729 tcp_splice_read +EXPORT_SYMBOL vmlinux 0x5ac40c16 give_up_console +EXPORT_SYMBOL vmlinux 0x5ac44b4b i2c_use_client +EXPORT_SYMBOL vmlinux 0x5ad2ab2f dev_mc_add_excl +EXPORT_SYMBOL vmlinux 0x5ae5be44 lg_lock_init +EXPORT_SYMBOL vmlinux 0x5b043869 __xfrm_policy_check +EXPORT_SYMBOL vmlinux 0x5b14ae03 bitmap_startwrite +EXPORT_SYMBOL vmlinux 0x5b19634d div_s64_rem +EXPORT_SYMBOL vmlinux 0x5b3c8c88 snd_pcm_lib_preallocate_pages +EXPORT_SYMBOL vmlinux 0x5b62b42e ppp_dev_name +EXPORT_SYMBOL vmlinux 0x5b72009f ida_simple_get +EXPORT_SYMBOL vmlinux 0x5b9c9045 inet6_register_protosw +EXPORT_SYMBOL vmlinux 0x5ba53020 vfs_fstat +EXPORT_SYMBOL vmlinux 0x5bac537a i2c_get_adapter +EXPORT_SYMBOL vmlinux 0x5be09cf6 gnet_stats_start_copy +EXPORT_SYMBOL vmlinux 0x5c2aebca __serio_register_port +EXPORT_SYMBOL vmlinux 0x5c58199d kmap_high +EXPORT_SYMBOL vmlinux 0x5c61f140 new_inode +EXPORT_SYMBOL vmlinux 0x5c738015 gnet_stats_copy_rate_est +EXPORT_SYMBOL vmlinux 0x5c9284a0 processor_id +EXPORT_SYMBOL vmlinux 0x5c929ab8 dcbnl_ieee_notify +EXPORT_SYMBOL vmlinux 0x5cc5be0e follow_pfn +EXPORT_SYMBOL vmlinux 0x5ccfb396 __block_page_mkwrite +EXPORT_SYMBOL vmlinux 0x5cd6165b pm860x_page_bulk_write +EXPORT_SYMBOL vmlinux 0x5cf53ce2 input_free_minor +EXPORT_SYMBOL vmlinux 0x5cf65144 uart_get_baud_rate +EXPORT_SYMBOL vmlinux 0x5cff7576 neigh_table_init +EXPORT_SYMBOL vmlinux 0x5d0b1892 param_set_invbool +EXPORT_SYMBOL vmlinux 0x5d1bda60 ip6_frag_init +EXPORT_SYMBOL vmlinux 0x5d43a31f bio_endio +EXPORT_SYMBOL vmlinux 0x5d4cc554 blk_rq_count_integrity_sg +EXPORT_SYMBOL vmlinux 0x5d550c4d scsi_sd_probe_domain +EXPORT_SYMBOL vmlinux 0x5d554e21 find_vma +EXPORT_SYMBOL vmlinux 0x5d5b5a16 radix_tree_delete +EXPORT_SYMBOL vmlinux 0x5d76aa04 devm_clk_put +EXPORT_SYMBOL vmlinux 0x5d7f49a8 security_old_inode_init_security +EXPORT_SYMBOL vmlinux 0x5d891a64 idr_destroy +EXPORT_SYMBOL vmlinux 0x5d9a3284 blk_queue_max_write_same_sectors +EXPORT_SYMBOL vmlinux 0x5db83711 napi_gro_receive +EXPORT_SYMBOL vmlinux 0x5de605b3 lock_sock_nested +EXPORT_SYMBOL vmlinux 0x5e21601f netif_napi_add +EXPORT_SYMBOL vmlinux 0x5e399a1f snd_info_free_entry +EXPORT_SYMBOL vmlinux 0x5e411b55 mmc_cache_ctrl +EXPORT_SYMBOL vmlinux 0x5e56b581 vfs_rmdir +EXPORT_SYMBOL vmlinux 0x5e649153 blk_complete_request +EXPORT_SYMBOL vmlinux 0x5e794f13 xfrm_find_acq_byseq +EXPORT_SYMBOL vmlinux 0x5e7f4920 snd_pcm_format_set_silence +EXPORT_SYMBOL vmlinux 0x5e95b1cd current_umask +EXPORT_SYMBOL vmlinux 0x5eb24829 dm_shift_arg +EXPORT_SYMBOL vmlinux 0x5eba94b2 udp_lib_unhash +EXPORT_SYMBOL vmlinux 0x5ec7533d ipv6_chk_prefix +EXPORT_SYMBOL vmlinux 0x5ed040b0 pm_set_vt_switch +EXPORT_SYMBOL vmlinux 0x5f005368 kstrtou8 +EXPORT_SYMBOL vmlinux 0x5f069141 pps_register_source +EXPORT_SYMBOL vmlinux 0x5f06b066 sync_inode_metadata +EXPORT_SYMBOL vmlinux 0x5f2f3d9e kvm_read_guest_atomic +EXPORT_SYMBOL vmlinux 0x5f358b19 tcp_hashinfo +EXPORT_SYMBOL vmlinux 0x5f3b190e md_register_thread +EXPORT_SYMBOL vmlinux 0x5f3c8f5c mmc_assume_removable +EXPORT_SYMBOL vmlinux 0x5f3e7c4a textsearch_find_continuous +EXPORT_SYMBOL vmlinux 0x5f47ce8a blk_delay_queue +EXPORT_SYMBOL vmlinux 0x5f4de0a0 pfifo_fast_ops +EXPORT_SYMBOL vmlinux 0x5f58f676 flex_array_get_ptr +EXPORT_SYMBOL vmlinux 0x5f72fcf4 bio_reset +EXPORT_SYMBOL vmlinux 0x5f754e5a memset +EXPORT_SYMBOL vmlinux 0x5f90bf4c tcp_parse_options +EXPORT_SYMBOL vmlinux 0x5f95ef57 __cleancache_init_shared_fs +EXPORT_SYMBOL vmlinux 0x5fd4a369 clear_inode +EXPORT_SYMBOL vmlinux 0x5fec4efb md_finish_reshape +EXPORT_SYMBOL vmlinux 0x5ffdd57c phy_ethtool_get_wol +EXPORT_SYMBOL vmlinux 0x600683d3 do_unblank_screen +EXPORT_SYMBOL vmlinux 0x600d3211 nlmsg_notify +EXPORT_SYMBOL vmlinux 0x600e97b8 phy_start_aneg +EXPORT_SYMBOL vmlinux 0x601f665f dm_io_client_create +EXPORT_SYMBOL vmlinux 0x602c96f0 copy_to_user_fromio +EXPORT_SYMBOL vmlinux 0x60352082 register_inet6addr_notifier +EXPORT_SYMBOL vmlinux 0x6045b3de vfs_write +EXPORT_SYMBOL vmlinux 0x6048b6ad inet_dgram_connect +EXPORT_SYMBOL vmlinux 0x606d0b09 secure_tcpv6_sequence_number +EXPORT_SYMBOL vmlinux 0x608cbd41 security_inode_notifysecctx +EXPORT_SYMBOL vmlinux 0x609f1c7e synchronize_net +EXPORT_SYMBOL vmlinux 0x60a32ea9 pm_power_off +EXPORT_SYMBOL vmlinux 0x60b63350 scsi_add_host_with_dma +EXPORT_SYMBOL vmlinux 0x60ba81ac scsi_kmap_atomic_sg +EXPORT_SYMBOL vmlinux 0x60bd00dd arp_create +EXPORT_SYMBOL vmlinux 0x60c1417c dcb_setapp +EXPORT_SYMBOL vmlinux 0x60c479f3 sk_dst_check +EXPORT_SYMBOL vmlinux 0x60f03742 tty_wait_until_sent +EXPORT_SYMBOL vmlinux 0x6106b483 scsi_print_command +EXPORT_SYMBOL vmlinux 0x6107ab7e dump_seek +EXPORT_SYMBOL vmlinux 0x610941d9 dev_get_drvdata +EXPORT_SYMBOL vmlinux 0x610eb07d i2c_put_adapter +EXPORT_SYMBOL vmlinux 0x610f2c65 mmc_set_blockcount +EXPORT_SYMBOL vmlinux 0x612390ad netpoll_set_trap +EXPORT_SYMBOL vmlinux 0x6128b5fc __printk_ratelimit +EXPORT_SYMBOL vmlinux 0x612ef3ed fifo_set_limit +EXPORT_SYMBOL vmlinux 0x613d7b71 neigh_changeaddr +EXPORT_SYMBOL vmlinux 0x614e8c9a unregister_md_personality +EXPORT_SYMBOL vmlinux 0x616adbb0 security_d_instantiate +EXPORT_SYMBOL vmlinux 0x617643a2 param_set_long +EXPORT_SYMBOL vmlinux 0x617a218d __cond_resched_lock +EXPORT_SYMBOL vmlinux 0x618431f4 snd_ctl_find_id +EXPORT_SYMBOL vmlinux 0x619dfc2a snd_timer_interrupt +EXPORT_SYMBOL vmlinux 0x61a05dff kmap +EXPORT_SYMBOL vmlinux 0x61a6cfe7 sock_no_getsockopt +EXPORT_SYMBOL vmlinux 0x61ad743d pagecache_write_begin +EXPORT_SYMBOL vmlinux 0x61b00078 __scsi_add_device +EXPORT_SYMBOL vmlinux 0x61b7b126 simple_strtoull +EXPORT_SYMBOL vmlinux 0x61bc1336 phy_start_interrupts +EXPORT_SYMBOL vmlinux 0x61bc86b8 __nla_put +EXPORT_SYMBOL vmlinux 0x61c3e2fa sock_edemux +EXPORT_SYMBOL vmlinux 0x61c7fbdc nf_log_bind_pf +EXPORT_SYMBOL vmlinux 0x62071273 block_invalidatepage +EXPORT_SYMBOL vmlinux 0x620c1aaf dst_alloc +EXPORT_SYMBOL vmlinux 0x6211a8c2 cfb_copyarea +EXPORT_SYMBOL vmlinux 0x6225637e md5_transform +EXPORT_SYMBOL vmlinux 0x6228c21f smp_call_function_single +EXPORT_SYMBOL vmlinux 0x623671b0 i2c_smbus_read_word_data +EXPORT_SYMBOL vmlinux 0x62737e1d sock_unregister +EXPORT_SYMBOL vmlinux 0x627e6da4 inet_frag_kill +EXPORT_SYMBOL vmlinux 0x62822d05 iov_iter_single_seg_count +EXPORT_SYMBOL vmlinux 0x62827bec security_secctx_to_secid +EXPORT_SYMBOL vmlinux 0x62849ac7 dev_valid_name +EXPORT_SYMBOL vmlinux 0x629a3f9d i2c_release_client +EXPORT_SYMBOL vmlinux 0x629cdd6b xfrm_init_replay +EXPORT_SYMBOL vmlinux 0x62a47db7 get_fs_type +EXPORT_SYMBOL vmlinux 0x62b02b12 account_page_writeback +EXPORT_SYMBOL vmlinux 0x62be44ee submit_bio_wait +EXPORT_SYMBOL vmlinux 0x62d34ec2 kobject_del +EXPORT_SYMBOL vmlinux 0x62fd6207 param_set_charp +EXPORT_SYMBOL vmlinux 0x630942bc dev_add_pack +EXPORT_SYMBOL vmlinux 0x63113dc5 I_BDEV +EXPORT_SYMBOL vmlinux 0x63922bbd vfs_stat +EXPORT_SYMBOL vmlinux 0x63b693cd lro_receive_frags +EXPORT_SYMBOL vmlinux 0x63bf79e1 jbd2_journal_blocks_per_page +EXPORT_SYMBOL vmlinux 0x63c26c1b tty_port_raise_dtr_rts +EXPORT_SYMBOL vmlinux 0x63eb9355 panic_blink +EXPORT_SYMBOL vmlinux 0x63fc232f strlen_user +EXPORT_SYMBOL vmlinux 0x6403e338 tcp_memory_pressure +EXPORT_SYMBOL vmlinux 0x64198d5d fsync_bdev +EXPORT_SYMBOL vmlinux 0x644a80df nf_log_packet +EXPORT_SYMBOL vmlinux 0x6461897d snd_pcm_lib_get_vmalloc_page +EXPORT_SYMBOL vmlinux 0x6479ee68 dev_vprintk_emit +EXPORT_SYMBOL vmlinux 0x64999478 congestion_wait +EXPORT_SYMBOL vmlinux 0x649ee8d5 phy_device_register +EXPORT_SYMBOL vmlinux 0x64a36422 mdiobus_free +EXPORT_SYMBOL vmlinux 0x64c024dd seq_release_private +EXPORT_SYMBOL vmlinux 0x64c2c689 xfrm_state_delete +EXPORT_SYMBOL vmlinux 0x64e0d81c inet_csk_clear_xmit_timers +EXPORT_SYMBOL vmlinux 0x64eec33f km_state_expired +EXPORT_SYMBOL vmlinux 0x64f3958a vfs_getattr +EXPORT_SYMBOL vmlinux 0x650a6767 prandom_u32_state +EXPORT_SYMBOL vmlinux 0x650f8603 snd_pcm_format_silence_64 +EXPORT_SYMBOL vmlinux 0x6513a3fa fb_get_color_depth +EXPORT_SYMBOL vmlinux 0x651a4139 test_taint +EXPORT_SYMBOL vmlinux 0x6527e1bc scm_fp_dup +EXPORT_SYMBOL vmlinux 0x65308daa ata_print_version +EXPORT_SYMBOL vmlinux 0x65408378 zlib_inflate_blob +EXPORT_SYMBOL vmlinux 0x65466939 proc_doulongvec_ms_jiffies_minmax +EXPORT_SYMBOL vmlinux 0x657b608c clk_get +EXPORT_SYMBOL vmlinux 0x65838595 __frontswap_store +EXPORT_SYMBOL vmlinux 0x6585e310 alloc_pages_exact_nid +EXPORT_SYMBOL vmlinux 0x658765fa padata_do_serial +EXPORT_SYMBOL vmlinux 0x65c6d300 block_read_full_page +EXPORT_SYMBOL vmlinux 0x65d67a20 blk_start_plug +EXPORT_SYMBOL vmlinux 0x65dccf13 xz_dec_end +EXPORT_SYMBOL vmlinux 0x65e2f81b deactivate_locked_super +EXPORT_SYMBOL vmlinux 0x65ee8e48 alloc_file +EXPORT_SYMBOL vmlinux 0x65ee98d7 led_set_brightness +EXPORT_SYMBOL vmlinux 0x65f3ad9a fb_videomode_to_var +EXPORT_SYMBOL vmlinux 0x6600647f __skb_checksum_complete_head +EXPORT_SYMBOL vmlinux 0x6605f97f flex_array_clear +EXPORT_SYMBOL vmlinux 0x662ceb70 lro_flush_pkt +EXPORT_SYMBOL vmlinux 0x6634ef35 blk_end_request_cur +EXPORT_SYMBOL vmlinux 0x663b23ef i2c_register_driver +EXPORT_SYMBOL vmlinux 0x66889b81 phy_driver_unregister +EXPORT_SYMBOL vmlinux 0x6688accd __napi_complete +EXPORT_SYMBOL vmlinux 0x668da8d5 zlib_inflateIncomp +EXPORT_SYMBOL vmlinux 0x66a67dab flex_array_shrink +EXPORT_SYMBOL vmlinux 0x66aa18e1 d_instantiate_unique +EXPORT_SYMBOL vmlinux 0x66ad6c49 tcf_destroy_chain +EXPORT_SYMBOL vmlinux 0x66b3fdf8 textsearch_prepare +EXPORT_SYMBOL vmlinux 0x66c40b07 dev_change_carrier +EXPORT_SYMBOL vmlinux 0x66cad000 __sg_free_table +EXPORT_SYMBOL vmlinux 0x66dd9dad nla_put +EXPORT_SYMBOL vmlinux 0x670835bb sock_sendmsg +EXPORT_SYMBOL vmlinux 0x6737d724 dqget +EXPORT_SYMBOL vmlinux 0x6752db3b scsi_device_resume +EXPORT_SYMBOL vmlinux 0x675bc195 eth_header_cache +EXPORT_SYMBOL vmlinux 0x67622cf3 dcbnl_cee_notify +EXPORT_SYMBOL vmlinux 0x676bbc0f _set_bit +EXPORT_SYMBOL vmlinux 0x676dbf96 snd_ctl_remove_id +EXPORT_SYMBOL vmlinux 0x677ecbe3 sk_common_release +EXPORT_SYMBOL vmlinux 0x6780c3db con_copy_unimap +EXPORT_SYMBOL vmlinux 0x67991c67 seq_put_decimal_ull +EXPORT_SYMBOL vmlinux 0x67b27ec1 tty_std_termios +EXPORT_SYMBOL vmlinux 0x67b78eb3 seq_hlist_next_rcu +EXPORT_SYMBOL vmlinux 0x67d00df9 genlmsg_put +EXPORT_SYMBOL vmlinux 0x67d46918 inet_csk_delete_keepalive_timer +EXPORT_SYMBOL vmlinux 0x67d53fd1 tty_port_tty_get +EXPORT_SYMBOL vmlinux 0x67eb0da7 security_path_mkdir +EXPORT_SYMBOL vmlinux 0x680ebe71 ipv6_select_ident +EXPORT_SYMBOL vmlinux 0x683782a9 of_platform_bus_probe +EXPORT_SYMBOL vmlinux 0x684b67d6 scsi_host_get +EXPORT_SYMBOL vmlinux 0x684c18c2 neigh_sysctl_register +EXPORT_SYMBOL vmlinux 0x686707db set_security_override_from_ctx +EXPORT_SYMBOL vmlinux 0x686e3b38 kill_anon_super +EXPORT_SYMBOL vmlinux 0x686f2c4d blk_fetch_request +EXPORT_SYMBOL vmlinux 0x687b6a16 kdbgetsymval +EXPORT_SYMBOL vmlinux 0x68869bae panic_notifier_list +EXPORT_SYMBOL vmlinux 0x688aabbb snd_pcm_lib_ioctl +EXPORT_SYMBOL vmlinux 0x688ff6cf snd_register_device_for_dev +EXPORT_SYMBOL vmlinux 0x689386a2 md_check_no_bitmap +EXPORT_SYMBOL vmlinux 0x68a24153 snd_pcm_format_physical_width +EXPORT_SYMBOL vmlinux 0x68e05d57 getrawmonotonic +EXPORT_SYMBOL vmlinux 0x68e3fcc6 bitmap_cond_end_sync +EXPORT_SYMBOL vmlinux 0x68fb581a icst307_idx2s +EXPORT_SYMBOL vmlinux 0x6915eb38 down_interruptible +EXPORT_SYMBOL vmlinux 0x692b9819 __skb_checksum_complete +EXPORT_SYMBOL vmlinux 0x69423e47 __inet6_lookup_established +EXPORT_SYMBOL vmlinux 0x6951b0c4 snd_pcm_notify +EXPORT_SYMBOL vmlinux 0x69536e0e clocksource_change_rating +EXPORT_SYMBOL vmlinux 0x696ec59c blk_requeue_request +EXPORT_SYMBOL vmlinux 0x6971447a rtc_month_days +EXPORT_SYMBOL vmlinux 0x6976085d snd_pcm_lib_free_pages +EXPORT_SYMBOL vmlinux 0x6996c4e6 dma_declare_coherent_memory +EXPORT_SYMBOL vmlinux 0x699895e1 page_address +EXPORT_SYMBOL vmlinux 0x69a17ec4 kfree_skb +EXPORT_SYMBOL vmlinux 0x69a358a6 iomem_resource +EXPORT_SYMBOL vmlinux 0x69ad2f20 kstrtouint +EXPORT_SYMBOL vmlinux 0x69b6cf77 tty_name +EXPORT_SYMBOL vmlinux 0x69cfd1cc ip6_frag_match +EXPORT_SYMBOL vmlinux 0x69d38ed9 __scsi_print_sense +EXPORT_SYMBOL vmlinux 0x69e27c7a bitmap_copy_le +EXPORT_SYMBOL vmlinux 0x6a037cf1 mempool_kfree +EXPORT_SYMBOL vmlinux 0x6a1649bd abx500_get_register_page_interruptible +EXPORT_SYMBOL vmlinux 0x6a47ae1f tty_kref_put +EXPORT_SYMBOL vmlinux 0x6a5ecb18 unregister_module_notifier +EXPORT_SYMBOL vmlinux 0x6a76f3ac blk_iopoll_enable +EXPORT_SYMBOL vmlinux 0x6a77df5d bio_clone_bioset +EXPORT_SYMBOL vmlinux 0x6a8655da scsi_target_resume +EXPORT_SYMBOL vmlinux 0x6a88d5bc xfrm_policy_byid +EXPORT_SYMBOL vmlinux 0x6a91a434 unregister_qdisc +EXPORT_SYMBOL vmlinux 0x6acb3ebb clocksource_unregister +EXPORT_SYMBOL vmlinux 0x6aea36df snd_dma_reserve_buf +EXPORT_SYMBOL vmlinux 0x6af61901 dev_mc_add +EXPORT_SYMBOL vmlinux 0x6b06fdce delayed_work_timer_fn +EXPORT_SYMBOL vmlinux 0x6b0c395e blk_register_region +EXPORT_SYMBOL vmlinux 0x6b0efda1 netlink_kernel_release +EXPORT_SYMBOL vmlinux 0x6b1b67d3 __bdevname +EXPORT_SYMBOL vmlinux 0x6b2db8ae vfs_lstat +EXPORT_SYMBOL vmlinux 0x6b2dc060 dump_stack +EXPORT_SYMBOL vmlinux 0x6b432883 ppp_input +EXPORT_SYMBOL vmlinux 0x6b4476e9 tcp_seq_open +EXPORT_SYMBOL vmlinux 0x6b5300cb scsi_is_sdev_device +EXPORT_SYMBOL vmlinux 0x6b639bd6 blk_pre_runtime_suspend +EXPORT_SYMBOL vmlinux 0x6b74c30e __ip_dev_find +EXPORT_SYMBOL vmlinux 0x6b7589f4 param_set_bool +EXPORT_SYMBOL vmlinux 0x6b9274a8 genphy_resume +EXPORT_SYMBOL vmlinux 0x6bbf2454 shrink_dcache_sb +EXPORT_SYMBOL vmlinux 0x6bc3fbc0 __unregister_chrdev +EXPORT_SYMBOL vmlinux 0x6bc9d5d2 splice_from_pipe_next +EXPORT_SYMBOL vmlinux 0x6bdcfd99 qdisc_class_hash_remove +EXPORT_SYMBOL vmlinux 0x6be02e75 journal_force_commit +EXPORT_SYMBOL vmlinux 0x6bfe5328 register_qdisc +EXPORT_SYMBOL vmlinux 0x6c13e2b0 ptp_clock_event +EXPORT_SYMBOL vmlinux 0x6c1ce5ce strcspn +EXPORT_SYMBOL vmlinux 0x6c35e323 snd_timer_new +EXPORT_SYMBOL vmlinux 0x6c4555a9 netdev_update_features +EXPORT_SYMBOL vmlinux 0x6c564610 remap_pfn_range +EXPORT_SYMBOL vmlinux 0x6c60ce4f tty_driver_flush_buffer +EXPORT_SYMBOL vmlinux 0x6c61ce70 num_registered_fb +EXPORT_SYMBOL vmlinux 0x6c6cdd4d wait_for_completion_interruptible_timeout +EXPORT_SYMBOL vmlinux 0x6c702af7 sysctl_udp_rmem_min +EXPORT_SYMBOL vmlinux 0x6ccf7bd7 __pv_phys_offset +EXPORT_SYMBOL vmlinux 0x6cdc5c6b nla_strlcpy +EXPORT_SYMBOL vmlinux 0x6d01f184 cfb_fillrect +EXPORT_SYMBOL vmlinux 0x6d044c26 param_ops_uint +EXPORT_SYMBOL vmlinux 0x6d0c578c i2c_smbus_write_block_data +EXPORT_SYMBOL vmlinux 0x6d0f1f89 dm_table_get_mode +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 0x6d523772 jbd2__journal_restart +EXPORT_SYMBOL vmlinux 0x6d5fc726 bio_sector_offset +EXPORT_SYMBOL vmlinux 0x6d62b65b journal_get_undo_access +EXPORT_SYMBOL vmlinux 0x6d662533 _find_first_bit_le +EXPORT_SYMBOL vmlinux 0x6d764d94 ip_options_rcv_srr +EXPORT_SYMBOL vmlinux 0x6d98a110 gen_new_estimator +EXPORT_SYMBOL vmlinux 0x6da5119b mmc_gpio_free_cd +EXPORT_SYMBOL vmlinux 0x6db33dc8 atomic_dec_and_mutex_lock +EXPORT_SYMBOL vmlinux 0x6def2db2 half_md4_transform +EXPORT_SYMBOL vmlinux 0x6e1a85ee dev_set_mtu +EXPORT_SYMBOL vmlinux 0x6e3fc837 fbcon_set_tileops +EXPORT_SYMBOL vmlinux 0x6e4f882e vfs_follow_link +EXPORT_SYMBOL vmlinux 0x6e4fb214 security_inode_init_security +EXPORT_SYMBOL vmlinux 0x6e659f9f blk_run_queue_async +EXPORT_SYMBOL vmlinux 0x6e720ff2 rtnl_unlock +EXPORT_SYMBOL vmlinux 0x6e749452 generic_writepages +EXPORT_SYMBOL vmlinux 0x6e7cf672 blk_queue_io_min +EXPORT_SYMBOL vmlinux 0x6e88e56f snd_pcm_link_rwlock +EXPORT_SYMBOL vmlinux 0x6e972cb2 cfb_imageblit +EXPORT_SYMBOL vmlinux 0x6e9dd606 __symbol_put +EXPORT_SYMBOL vmlinux 0x6ea44fc3 journal_extend +EXPORT_SYMBOL vmlinux 0x6ea45d15 sock_no_shutdown +EXPORT_SYMBOL vmlinux 0x6ece6983 simple_statfs +EXPORT_SYMBOL vmlinux 0x6ef8fcd8 snd_pcm_format_linear +EXPORT_SYMBOL vmlinux 0x6f20960a full_name_hash +EXPORT_SYMBOL vmlinux 0x6f4b329b scsi_prep_fn +EXPORT_SYMBOL vmlinux 0x6f588e6f max8998_bulk_read +EXPORT_SYMBOL vmlinux 0x6f68bc06 mmc_can_trim +EXPORT_SYMBOL vmlinux 0x6f75f8a6 snd_timer_close +EXPORT_SYMBOL vmlinux 0x6f8f7c87 find_get_pages_tag +EXPORT_SYMBOL vmlinux 0x6f94667e generic_pipe_buf_steal +EXPORT_SYMBOL vmlinux 0x6fcb87a1 touch_softlockup_watchdog +EXPORT_SYMBOL vmlinux 0x6fe5d5ba scsi_host_put +EXPORT_SYMBOL vmlinux 0x6fed4f98 kthread_stop +EXPORT_SYMBOL vmlinux 0x6fef762b mntput +EXPORT_SYMBOL vmlinux 0x70097aa0 nand_bch_free +EXPORT_SYMBOL vmlinux 0x7009e79c ioctl_by_bdev +EXPORT_SYMBOL vmlinux 0x7011f8eb inode_add_bytes +EXPORT_SYMBOL vmlinux 0x7014fac3 dev_get_by_flags_rcu +EXPORT_SYMBOL vmlinux 0x70257857 scsi_execute +EXPORT_SYMBOL vmlinux 0x7032629c blk_queue_segment_boundary +EXPORT_SYMBOL vmlinux 0x703d9789 mmc_set_blocklen +EXPORT_SYMBOL vmlinux 0x70523a7a __cond_resched_softirq +EXPORT_SYMBOL vmlinux 0x705a606b sg_miter_start +EXPORT_SYMBOL vmlinux 0x7073728e blk_pm_runtime_init +EXPORT_SYMBOL vmlinux 0x7073d355 __xfrm_route_forward +EXPORT_SYMBOL vmlinux 0x707f43f6 __ctzdi2 +EXPORT_SYMBOL vmlinux 0x7083157f xfrm_state_lookup +EXPORT_SYMBOL vmlinux 0x7088cad0 padata_do_parallel +EXPORT_SYMBOL vmlinux 0x7096fa93 elv_dispatch_sort +EXPORT_SYMBOL vmlinux 0x70bc17d7 inode_wait +EXPORT_SYMBOL vmlinux 0x70cf7991 security_path_rename +EXPORT_SYMBOL vmlinux 0x70d053fd try_to_del_timer_sync +EXPORT_SYMBOL vmlinux 0x70d6a2c1 key_type_keyring +EXPORT_SYMBOL vmlinux 0x70e0ec02 seq_putc +EXPORT_SYMBOL vmlinux 0x70e55c99 nf_log_unbind_pf +EXPORT_SYMBOL vmlinux 0x70f37d04 cdrom_number_of_slots +EXPORT_SYMBOL vmlinux 0x711e54b3 sk_wait_data +EXPORT_SYMBOL vmlinux 0x7129e5f8 hex_asc +EXPORT_SYMBOL vmlinux 0x7171121c overflowgid +EXPORT_SYMBOL vmlinux 0x7171a290 flush_dcache_page +EXPORT_SYMBOL vmlinux 0x71a50dbc register_blkdev +EXPORT_SYMBOL vmlinux 0x71a672ef dmam_pool_destroy +EXPORT_SYMBOL vmlinux 0x71a858b2 __netif_schedule +EXPORT_SYMBOL vmlinux 0x71ab5386 cdev_add +EXPORT_SYMBOL vmlinux 0x71bd21f1 iput +EXPORT_SYMBOL vmlinux 0x71bfc07e vc_cons +EXPORT_SYMBOL vmlinux 0x71c90087 memcmp +EXPORT_SYMBOL vmlinux 0x71f65175 hdmi_spd_infoframe_pack +EXPORT_SYMBOL vmlinux 0x7234d189 netdev_notice +EXPORT_SYMBOL vmlinux 0x72350130 ___ratelimit +EXPORT_SYMBOL vmlinux 0x723da1f4 netdev_alert +EXPORT_SYMBOL vmlinux 0x724912e9 mmc_stop_bkops +EXPORT_SYMBOL vmlinux 0x7249b9d5 journal_set_features +EXPORT_SYMBOL vmlinux 0x7277a9a4 blk_peek_request +EXPORT_SYMBOL vmlinux 0x7292a99f unregister_console +EXPORT_SYMBOL vmlinux 0x729d044c i2c_smbus_write_byte +EXPORT_SYMBOL vmlinux 0x72a45160 locks_mandatory_area +EXPORT_SYMBOL vmlinux 0x72b6669f scsi_print_result +EXPORT_SYMBOL vmlinux 0x72ca7d46 gnet_stats_copy_basic +EXPORT_SYMBOL vmlinux 0x72d58de9 kstrtou8_from_user +EXPORT_SYMBOL vmlinux 0x72ea7b2d scsi_device_type +EXPORT_SYMBOL vmlinux 0x72f1a93b sock_setsockopt +EXPORT_SYMBOL vmlinux 0x7315a4e9 twl6030_mmc_card_detect_config +EXPORT_SYMBOL vmlinux 0x731892ea __mem_cgroup_count_vm_event +EXPORT_SYMBOL vmlinux 0x731b81f1 __wait_on_bit +EXPORT_SYMBOL vmlinux 0x73242280 sock_no_ioctl +EXPORT_SYMBOL vmlinux 0x733c3b54 kasprintf +EXPORT_SYMBOL vmlinux 0x737de5e9 radix_tree_tag_get +EXPORT_SYMBOL vmlinux 0x737f9ae2 key_task_permission +EXPORT_SYMBOL vmlinux 0x7381bf90 security_sb_clone_mnt_opts +EXPORT_SYMBOL vmlinux 0x73b3c835 input_event +EXPORT_SYMBOL vmlinux 0x73cd1cb5 scsi_host_set_state +EXPORT_SYMBOL vmlinux 0x73d77995 scsi_setup_blk_pc_cmnd +EXPORT_SYMBOL vmlinux 0x73e20c1c strlcpy +EXPORT_SYMBOL vmlinux 0x73f92bd0 scsi_cmd_ioctl +EXPORT_SYMBOL vmlinux 0x742763ef __dev_remove_pack +EXPORT_SYMBOL vmlinux 0x74375b01 dma_find_channel +EXPORT_SYMBOL vmlinux 0x7469fcfe radix_tree_tagged +EXPORT_SYMBOL vmlinux 0x7485e15e unregister_chrdev_region +EXPORT_SYMBOL vmlinux 0x7497e5c2 inet6_getname +EXPORT_SYMBOL vmlinux 0x74c134b9 __sw_hweight32 +EXPORT_SYMBOL vmlinux 0x74cb7cd7 snd_ctl_new1 +EXPORT_SYMBOL vmlinux 0x74ce05b8 flush_delayed_work +EXPORT_SYMBOL vmlinux 0x74dc75fe tcp_get_md5sig_pool +EXPORT_SYMBOL vmlinux 0x74e5ff1a udpv6_encap_enable +EXPORT_SYMBOL vmlinux 0x75057c31 posix_acl_equiv_mode +EXPORT_SYMBOL vmlinux 0x7505bdef memchr_inv +EXPORT_SYMBOL vmlinux 0x75389c06 fbcon_set_bitops +EXPORT_SYMBOL vmlinux 0x754dac78 blk_limits_io_min +EXPORT_SYMBOL vmlinux 0x755d5049 __bforget +EXPORT_SYMBOL vmlinux 0x7564f528 snd_ctl_unregister_ioctl +EXPORT_SYMBOL vmlinux 0x7565ec82 kernel_getpeername +EXPORT_SYMBOL vmlinux 0x758336d8 deactivate_super +EXPORT_SYMBOL vmlinux 0x75850d01 __vmalloc +EXPORT_SYMBOL vmlinux 0x7593d385 div64_s64 +EXPORT_SYMBOL vmlinux 0x75bda77a seq_hlist_next +EXPORT_SYMBOL vmlinux 0x75de4882 proc_symlink +EXPORT_SYMBOL vmlinux 0x75fee7fd __raw_writesb +EXPORT_SYMBOL vmlinux 0x760a0f4f yield +EXPORT_SYMBOL vmlinux 0x760ab84b __tcf_em_tree_match +EXPORT_SYMBOL vmlinux 0x7635aa0f xfrm_register_type +EXPORT_SYMBOL vmlinux 0x7635c373 serio_unregister_port +EXPORT_SYMBOL vmlinux 0x763b9f59 max8925_reg_write +EXPORT_SYMBOL vmlinux 0x7647726c handle_sysrq +EXPORT_SYMBOL vmlinux 0x764bd77c request_resource +EXPORT_SYMBOL vmlinux 0x765f9ad5 would_dump +EXPORT_SYMBOL vmlinux 0x766169fb __module_put_and_exit +EXPORT_SYMBOL vmlinux 0x767cdc62 xfrm_unregister_mode +EXPORT_SYMBOL vmlinux 0x7687cdfe key_unlink +EXPORT_SYMBOL vmlinux 0x768e63b4 sb_set_blocksize +EXPORT_SYMBOL vmlinux 0x76ae08b0 make_bad_inode +EXPORT_SYMBOL vmlinux 0x76bf656d __bitmap_shift_left +EXPORT_SYMBOL vmlinux 0x76cf47f6 __aeabi_llsl +EXPORT_SYMBOL vmlinux 0x76d0c1ef jbd2_journal_start_commit +EXPORT_SYMBOL vmlinux 0x76d3cd60 laptop_mode +EXPORT_SYMBOL vmlinux 0x76d451c4 add_taint +EXPORT_SYMBOL vmlinux 0x76e0e974 fget_raw +EXPORT_SYMBOL vmlinux 0x76fb9a67 xfrm_sad_getinfo +EXPORT_SYMBOL vmlinux 0x76fc8557 uart_suspend_port +EXPORT_SYMBOL vmlinux 0x7717d857 blk_free_tags +EXPORT_SYMBOL vmlinux 0x771cf835 dma_pool_alloc +EXPORT_SYMBOL vmlinux 0x773a9c94 blk_iopoll_enabled +EXPORT_SYMBOL vmlinux 0x773c43b5 xfrm_stateonly_find +EXPORT_SYMBOL vmlinux 0x774c9ed8 ip_check_defrag +EXPORT_SYMBOL vmlinux 0x776fc987 cdrom_release +EXPORT_SYMBOL vmlinux 0x7791193f icst525_s2div +EXPORT_SYMBOL vmlinux 0x779a18af kstrtoll +EXPORT_SYMBOL vmlinux 0x77bc13a0 strim +EXPORT_SYMBOL vmlinux 0x77ce69eb request_key_async +EXPORT_SYMBOL vmlinux 0x77ce93b3 qid_lt +EXPORT_SYMBOL vmlinux 0x77de77b6 security_task_getsecid +EXPORT_SYMBOL vmlinux 0x77df0847 __set_personality +EXPORT_SYMBOL vmlinux 0x77ecac9f zlib_inflateEnd +EXPORT_SYMBOL vmlinux 0x77fd947b journal_revoke +EXPORT_SYMBOL vmlinux 0x77fe4cb2 sleep_on_timeout +EXPORT_SYMBOL vmlinux 0x780b528a ip6_expire_frag_queue +EXPORT_SYMBOL vmlinux 0x7833deb2 pgprot_user +EXPORT_SYMBOL vmlinux 0x7834759a snd_card_register +EXPORT_SYMBOL vmlinux 0x783b3563 wake_up_atomic_t +EXPORT_SYMBOL vmlinux 0x7843d639 sock_no_setsockopt +EXPORT_SYMBOL vmlinux 0x785e9335 get_tz_trend +EXPORT_SYMBOL vmlinux 0x787375b2 register_exec_domain +EXPORT_SYMBOL vmlinux 0x7874d8e7 dev_mc_sync_multiple +EXPORT_SYMBOL vmlinux 0x7877a8cb put_io_context +EXPORT_SYMBOL vmlinux 0x7880c781 dm_kcopyd_prepare_callback +EXPORT_SYMBOL vmlinux 0x789affb1 frontswap_tmem_exclusive_gets +EXPORT_SYMBOL vmlinux 0x78b309a1 ip_queue_xmit +EXPORT_SYMBOL vmlinux 0x78cf2428 try_to_writeback_inodes_sb +EXPORT_SYMBOL vmlinux 0x78df3102 snd_pcm_lib_readv +EXPORT_SYMBOL vmlinux 0x78efafd2 scsi_reset_provider +EXPORT_SYMBOL vmlinux 0x79056035 remap_vmalloc_range_partial +EXPORT_SYMBOL vmlinux 0x791f925f snd_card_proc_new +EXPORT_SYMBOL vmlinux 0x7922aa63 nf_getsockopt +EXPORT_SYMBOL vmlinux 0x7929b711 journal_clear_err +EXPORT_SYMBOL vmlinux 0x792be5c8 pneigh_lookup +EXPORT_SYMBOL vmlinux 0x7930d225 of_device_is_compatible +EXPORT_SYMBOL vmlinux 0x79485298 udp_flush_pending_frames +EXPORT_SYMBOL vmlinux 0x79541ff1 dev_open +EXPORT_SYMBOL vmlinux 0x79670444 xfrm_state_alloc +EXPORT_SYMBOL vmlinux 0x796a2ee3 nf_register_hook +EXPORT_SYMBOL vmlinux 0x796a7b3e set_device_ro +EXPORT_SYMBOL vmlinux 0x796fc5ce scsi_get_sense_info_fld +EXPORT_SYMBOL vmlinux 0x79812692 kthread_bind +EXPORT_SYMBOL vmlinux 0x79842026 mdiobus_scan +EXPORT_SYMBOL vmlinux 0x79aa04a2 get_random_bytes +EXPORT_SYMBOL vmlinux 0x79ac065e generic_show_options +EXPORT_SYMBOL vmlinux 0x79ad5aca framebuffer_release +EXPORT_SYMBOL vmlinux 0x79b14cce tty_do_resize +EXPORT_SYMBOL vmlinux 0x79b2825d scsi_eh_finish_cmd +EXPORT_SYMBOL vmlinux 0x79bf63f8 finish_open +EXPORT_SYMBOL vmlinux 0x79c94c7d inode_needs_sync +EXPORT_SYMBOL vmlinux 0x79fa16b9 inet_dev_addr_type +EXPORT_SYMBOL vmlinux 0x7a144a29 netdev_master_upper_dev_get_rcu +EXPORT_SYMBOL vmlinux 0x7a188791 prandom_bytes +EXPORT_SYMBOL vmlinux 0x7a27c184 ewma_init +EXPORT_SYMBOL vmlinux 0x7a394c47 dev_get_by_name_rcu +EXPORT_SYMBOL vmlinux 0x7a4497db kzfree +EXPORT_SYMBOL vmlinux 0x7a91726b clkdev_alloc +EXPORT_SYMBOL vmlinux 0x7aa9ee2e tcp_timewait_state_process +EXPORT_SYMBOL vmlinux 0x7ab88a45 system_freezing_cnt +EXPORT_SYMBOL vmlinux 0x7ad41bf9 posix_acl_valid +EXPORT_SYMBOL vmlinux 0x7aeb2f5f insert_inode_locked +EXPORT_SYMBOL vmlinux 0x7afa89fc vsnprintf +EXPORT_SYMBOL vmlinux 0x7b03848a verify_mem_not_deleted +EXPORT_SYMBOL vmlinux 0x7b09a503 blk_recount_segments +EXPORT_SYMBOL vmlinux 0x7b29cca4 pagevec_lookup_tag +EXPORT_SYMBOL vmlinux 0x7b523377 mmc_of_parse +EXPORT_SYMBOL vmlinux 0x7b5c8440 vm_munmap +EXPORT_SYMBOL vmlinux 0x7b5ce909 request_firmware +EXPORT_SYMBOL vmlinux 0x7b6646bb _raw_read_lock +EXPORT_SYMBOL vmlinux 0x7b817d2c ndo_dflt_fdb_del +EXPORT_SYMBOL vmlinux 0x7ba3d6f8 __scsi_device_lookup +EXPORT_SYMBOL vmlinux 0x7ba8a2e5 snd_ctl_boolean_mono_info +EXPORT_SYMBOL vmlinux 0x7bc28742 mount_ns +EXPORT_SYMBOL vmlinux 0x7beb15fb xfrm_input +EXPORT_SYMBOL vmlinux 0x7bfa2fcd bioset_integrity_create +EXPORT_SYMBOL vmlinux 0x7c1372e8 panic +EXPORT_SYMBOL vmlinux 0x7c16a407 truncate_pagecache_range +EXPORT_SYMBOL vmlinux 0x7c1aee8b tty_unregister_device +EXPORT_SYMBOL vmlinux 0x7c1fe8ed kernel_listen +EXPORT_SYMBOL vmlinux 0x7c298524 tty_write_room +EXPORT_SYMBOL vmlinux 0x7c2d59c9 kmap_to_page +EXPORT_SYMBOL vmlinux 0x7c44a1ba generic_block_bmap +EXPORT_SYMBOL vmlinux 0x7c44ea19 __pagevec_lru_add +EXPORT_SYMBOL vmlinux 0x7c538a10 setup_new_exec +EXPORT_SYMBOL vmlinux 0x7c61340c __release_region +EXPORT_SYMBOL vmlinux 0x7c7bffe0 request_key_with_auxdata +EXPORT_SYMBOL vmlinux 0x7c7ce791 block_write_full_page +EXPORT_SYMBOL vmlinux 0x7c8ef928 bioset_free +EXPORT_SYMBOL vmlinux 0x7c98845d twl_i2c_read +EXPORT_SYMBOL vmlinux 0x7cb1ae69 cpu_down +EXPORT_SYMBOL vmlinux 0x7cb551f9 get_thermal_instance +EXPORT_SYMBOL vmlinux 0x7cc035a7 __ucmpdi2 +EXPORT_SYMBOL vmlinux 0x7cef9564 twl6030_mmc_card_detect +EXPORT_SYMBOL vmlinux 0x7d09b08d snd_component_add +EXPORT_SYMBOL vmlinux 0x7d0db45c jiffies_to_clock_t +EXPORT_SYMBOL vmlinux 0x7d0e3e72 ida_get_new_above +EXPORT_SYMBOL vmlinux 0x7d11c268 jiffies +EXPORT_SYMBOL vmlinux 0x7d1ea59b vlan_dev_vlan_id +EXPORT_SYMBOL vmlinux 0x7d2c0224 seq_printf +EXPORT_SYMBOL vmlinux 0x7d37de5e load_nls +EXPORT_SYMBOL vmlinux 0x7d3d40ed mmc_can_sanitize +EXPORT_SYMBOL vmlinux 0x7d4135c5 __mark_inode_dirty +EXPORT_SYMBOL vmlinux 0x7d4db9f7 tty_port_free_xmit_buf +EXPORT_SYMBOL vmlinux 0x7d4e2276 __init_rwsem +EXPORT_SYMBOL vmlinux 0x7d4e594b snd_card_create +EXPORT_SYMBOL vmlinux 0x7d62521e tcp_close +EXPORT_SYMBOL vmlinux 0x7d71bbf4 log_start_commit +EXPORT_SYMBOL vmlinux 0x7d901b35 seq_read +EXPORT_SYMBOL vmlinux 0x7da5edb7 journal_trans_will_send_data_barrier +EXPORT_SYMBOL vmlinux 0x7dccc294 proc_doulongvec_minmax +EXPORT_SYMBOL vmlinux 0x7ddaa822 scsi_rescan_device +EXPORT_SYMBOL vmlinux 0x7deff673 dm_consume_args +EXPORT_SYMBOL vmlinux 0x7e0a87c3 __breadahead +EXPORT_SYMBOL vmlinux 0x7e394c4e sysctl_local_reserved_ports +EXPORT_SYMBOL vmlinux 0x7e668ba7 nand_bch_correct_data +EXPORT_SYMBOL vmlinux 0x7e8c68b5 of_dev_put +EXPORT_SYMBOL vmlinux 0x7e98d318 vexpress_config_read +EXPORT_SYMBOL vmlinux 0x7e9efe8e complete_and_exit +EXPORT_SYMBOL vmlinux 0x7ea3ca79 ip_fragment +EXPORT_SYMBOL vmlinux 0x7ead817c __idr_pre_get +EXPORT_SYMBOL vmlinux 0x7eba941d vmalloc_to_page +EXPORT_SYMBOL vmlinux 0x7ede3580 sock_alloc_send_pskb +EXPORT_SYMBOL vmlinux 0x7ef612f9 md_wait_for_blocked_rdev +EXPORT_SYMBOL vmlinux 0x7f126ff4 filemap_fdatawrite +EXPORT_SYMBOL vmlinux 0x7f21c57c d_delete +EXPORT_SYMBOL vmlinux 0x7f24590c cpu_tlb +EXPORT_SYMBOL vmlinux 0x7f24de73 jiffies_to_usecs +EXPORT_SYMBOL vmlinux 0x7f468f97 tcp_sync_mss +EXPORT_SYMBOL vmlinux 0x7f63b31e _memcpy_toio +EXPORT_SYMBOL vmlinux 0x7f659b51 netdev_boot_setup_check +EXPORT_SYMBOL vmlinux 0x7fbc377b tcf_generic_walker +EXPORT_SYMBOL vmlinux 0x7fe22f21 md_integrity_register +EXPORT_SYMBOL vmlinux 0x7fe32873 rb_replace_node +EXPORT_SYMBOL vmlinux 0x7fe7b95d d_rehash +EXPORT_SYMBOL vmlinux 0x7fed1395 key_alloc +EXPORT_SYMBOL vmlinux 0x800e4ffa __muldi3 +EXPORT_SYMBOL vmlinux 0x800f6790 key_link +EXPORT_SYMBOL vmlinux 0x80398a9f tcp_initialize_rcv_mss +EXPORT_SYMBOL vmlinux 0x805d47ed blk_make_request +EXPORT_SYMBOL vmlinux 0x806b75ed phy_mac_interrupt +EXPORT_SYMBOL vmlinux 0x809b478b dqput +EXPORT_SYMBOL vmlinux 0x80ca5026 _bin2bcd +EXPORT_SYMBOL vmlinux 0x80d68d3e fb_register_client +EXPORT_SYMBOL vmlinux 0x80f3ea04 dev_getfirstbyhwtype +EXPORT_SYMBOL vmlinux 0x80f533ba inetdev_by_index +EXPORT_SYMBOL vmlinux 0x80fe6e3a sock_no_poll +EXPORT_SYMBOL vmlinux 0x810b08cc vfs_mknod +EXPORT_SYMBOL vmlinux 0x811a4d85 scsi_is_host_device +EXPORT_SYMBOL vmlinux 0x811a81d6 kdb_current_task +EXPORT_SYMBOL vmlinux 0x814e7730 nf_ct_destroy +EXPORT_SYMBOL vmlinux 0x815b5dd4 match_octal +EXPORT_SYMBOL vmlinux 0x8162417a ps2_init +EXPORT_SYMBOL vmlinux 0x81b69e41 snd_ctl_enum_info +EXPORT_SYMBOL vmlinux 0x81be449c fb_set_var +EXPORT_SYMBOL vmlinux 0x81c724b0 lock_sock_fast +EXPORT_SYMBOL vmlinux 0x81d0f3f9 find_or_create_page +EXPORT_SYMBOL vmlinux 0x81d10f5f trace_seq_putc +EXPORT_SYMBOL vmlinux 0x81db6ebb xz_dec_reset +EXPORT_SYMBOL vmlinux 0x81e144ca iw_handler_set_thrspy +EXPORT_SYMBOL vmlinux 0x81f91997 input_mt_assign_slots +EXPORT_SYMBOL vmlinux 0x81fb0305 scsi_cmd_get_serial +EXPORT_SYMBOL vmlinux 0x82072614 tasklet_kill +EXPORT_SYMBOL vmlinux 0x8212721d xenbus_dev_request_and_reply +EXPORT_SYMBOL vmlinux 0x823ac9d9 genl_notify +EXPORT_SYMBOL vmlinux 0x8247e0a0 nf_log_unregister +EXPORT_SYMBOL vmlinux 0x824a4367 tmio_core_mmc_pwr +EXPORT_SYMBOL vmlinux 0x8251bcc3 bitmap_release_region +EXPORT_SYMBOL vmlinux 0x8260686f bitmap_find_next_zero_area +EXPORT_SYMBOL vmlinux 0x828062b1 __frontswap_init +EXPORT_SYMBOL vmlinux 0x828798d4 netlink_rcv_skb +EXPORT_SYMBOL vmlinux 0x8294b5a3 neigh_update +EXPORT_SYMBOL vmlinux 0x82acfb70 blk_iopoll_sched +EXPORT_SYMBOL vmlinux 0x82e8391d blk_init_queue_node +EXPORT_SYMBOL vmlinux 0x82f3ffbe xfrm_state_add +EXPORT_SYMBOL vmlinux 0x82f82aa4 aio_put_req +EXPORT_SYMBOL vmlinux 0x8304fdee blk_queue_logical_block_size +EXPORT_SYMBOL vmlinux 0x8320bea8 __umodsi3 +EXPORT_SYMBOL vmlinux 0x83211609 up_write +EXPORT_SYMBOL vmlinux 0x83420a08 max8998_write_reg +EXPORT_SYMBOL vmlinux 0x83a476ce bitmap_scnlistprintf +EXPORT_SYMBOL vmlinux 0x83a9b619 md_wakeup_thread +EXPORT_SYMBOL vmlinux 0x83b028f6 input_register_handle +EXPORT_SYMBOL vmlinux 0x83b053dc mmc_gpio_free_ro +EXPORT_SYMBOL vmlinux 0x83c0e8fc __skb_dst_set_noref +EXPORT_SYMBOL vmlinux 0x83c8a355 param_set_int +EXPORT_SYMBOL vmlinux 0x83eef7a9 noop_qdisc +EXPORT_SYMBOL vmlinux 0x83ffaa72 alloc_mdio_bitbang +EXPORT_SYMBOL vmlinux 0x84060081 xen_poll_irq_timeout +EXPORT_SYMBOL vmlinux 0x8432c579 vlan_untag +EXPORT_SYMBOL vmlinux 0x843d2b50 nand_bch_calculate_ecc +EXPORT_SYMBOL vmlinux 0x843e3a7b contig_page_data +EXPORT_SYMBOL vmlinux 0x84607445 __netlink_kernel_create +EXPORT_SYMBOL vmlinux 0x8484a7b5 simple_link +EXPORT_SYMBOL vmlinux 0x84b0c551 input_inject_event +EXPORT_SYMBOL vmlinux 0x84b183ae strncmp +EXPORT_SYMBOL vmlinux 0x84bce737 tcp_v4_md5_hash_skb +EXPORT_SYMBOL vmlinux 0x84c07f03 scsi_bios_ptable +EXPORT_SYMBOL vmlinux 0x84c7d716 blk_integrity_merge_bio +EXPORT_SYMBOL vmlinux 0x84d84345 is_bad_inode +EXPORT_SYMBOL vmlinux 0x84ef2463 __f_setown +EXPORT_SYMBOL vmlinux 0x84ffea8b idr_preload +EXPORT_SYMBOL vmlinux 0x85061b76 _raw_write_lock_bh +EXPORT_SYMBOL vmlinux 0x8533c06c filemap_flush +EXPORT_SYMBOL vmlinux 0x853a144c eth_header +EXPORT_SYMBOL vmlinux 0x8549af16 bio_put +EXPORT_SYMBOL vmlinux 0x8549c007 journal_forget +EXPORT_SYMBOL vmlinux 0x854d2d30 phy_ethtool_get_eee +EXPORT_SYMBOL vmlinux 0x8559179f vfs_open +EXPORT_SYMBOL vmlinux 0x855ffe6e file_ns_capable +EXPORT_SYMBOL vmlinux 0x85670f1d rtnl_is_locked +EXPORT_SYMBOL vmlinux 0x857e546b snd_ctl_notify +EXPORT_SYMBOL vmlinux 0x859de872 netpoll_rx_disable +EXPORT_SYMBOL vmlinux 0x85b5e625 rfkill_set_states +EXPORT_SYMBOL vmlinux 0x85d09823 udp_seq_open +EXPORT_SYMBOL vmlinux 0x85df9b6c strsep +EXPORT_SYMBOL vmlinux 0x85e7deb2 iov_iter_fault_in_readable +EXPORT_SYMBOL vmlinux 0x85fff2f1 ppp_unregister_compressor +EXPORT_SYMBOL vmlinux 0x860c92fd security_inode_listsecurity +EXPORT_SYMBOL vmlinux 0x862d32a0 d_validate +EXPORT_SYMBOL vmlinux 0x86483e3c xfrm_unregister_km +EXPORT_SYMBOL vmlinux 0x864e53bd __blockdev_direct_IO +EXPORT_SYMBOL vmlinux 0x865029ac __hw_addr_sync +EXPORT_SYMBOL vmlinux 0x865301fe md_flush_request +EXPORT_SYMBOL vmlinux 0x8664593d stop_tty +EXPORT_SYMBOL vmlinux 0x868acba5 get_options +EXPORT_SYMBOL vmlinux 0x86a4889a kmalloc_order_trace +EXPORT_SYMBOL vmlinux 0x86a79e49 of_dev_get +EXPORT_SYMBOL vmlinux 0x86aa77b0 key_validate +EXPORT_SYMBOL vmlinux 0x86c15bcc phy_stop_interrupts +EXPORT_SYMBOL vmlinux 0x86dde156 scsi_add_device +EXPORT_SYMBOL vmlinux 0x86e2a980 files_lglock +EXPORT_SYMBOL vmlinux 0x86ead5bf __destroy_inode +EXPORT_SYMBOL vmlinux 0x86f2ce88 nobh_truncate_page +EXPORT_SYMBOL vmlinux 0x86fb9b05 bitmap_parse_user +EXPORT_SYMBOL vmlinux 0x86fbb151 dquot_alloc +EXPORT_SYMBOL vmlinux 0x87073aeb dev_err +EXPORT_SYMBOL vmlinux 0x870bf928 radix_tree_lookup +EXPORT_SYMBOL vmlinux 0x871c0a7e fiemap_check_flags +EXPORT_SYMBOL vmlinux 0x871ce9c7 submit_bio +EXPORT_SYMBOL vmlinux 0x87640618 dma_async_device_register +EXPORT_SYMBOL vmlinux 0x876f4b2c scsi_scan_host +EXPORT_SYMBOL vmlinux 0x877f5e3a kunmap_high +EXPORT_SYMBOL vmlinux 0x8784eaa6 mtd_concat_create +EXPORT_SYMBOL vmlinux 0x878ab3ce sysctl_tcp_adv_win_scale +EXPORT_SYMBOL vmlinux 0x8798e453 __tracepoint_kfree +EXPORT_SYMBOL vmlinux 0x87d2c932 scsi_report_opcode +EXPORT_SYMBOL vmlinux 0x87d476f4 module_put +EXPORT_SYMBOL vmlinux 0x87d82164 ip_mc_dec_group +EXPORT_SYMBOL vmlinux 0x87f27f28 dmam_free_noncoherent +EXPORT_SYMBOL vmlinux 0x87faa967 sock_no_connect +EXPORT_SYMBOL vmlinux 0x881039d0 zlib_inflate +EXPORT_SYMBOL vmlinux 0x881c797b neigh_lookup_nodev +EXPORT_SYMBOL vmlinux 0x8825f3d1 bdput +EXPORT_SYMBOL vmlinux 0x88287486 dev_alloc_name +EXPORT_SYMBOL vmlinux 0x88322407 inode_set_bytes +EXPORT_SYMBOL vmlinux 0x8834396c mod_timer +EXPORT_SYMBOL vmlinux 0x883abcfd fasync_helper +EXPORT_SYMBOL vmlinux 0x8841228b blk_queue_start_tag +EXPORT_SYMBOL vmlinux 0x88e5d2ad journal_lock_updates +EXPORT_SYMBOL vmlinux 0x88e91d6c snd_cards +EXPORT_SYMBOL vmlinux 0x88feb57d input_mt_destroy_slots +EXPORT_SYMBOL vmlinux 0x890dc2ed idr_alloc_cyclic +EXPORT_SYMBOL vmlinux 0x891d9655 phys_mem_access_prot +EXPORT_SYMBOL vmlinux 0x89217dfd __genl_register_family +EXPORT_SYMBOL vmlinux 0x893a8931 alloc_disk +EXPORT_SYMBOL vmlinux 0x894c55f3 __sb_start_write +EXPORT_SYMBOL vmlinux 0x8953f8ff __tracepoint_kmem_cache_alloc +EXPORT_SYMBOL vmlinux 0x8966d0ef read_cache_pages +EXPORT_SYMBOL vmlinux 0x897473df mktime +EXPORT_SYMBOL vmlinux 0x8977a75c sock_kmalloc +EXPORT_SYMBOL vmlinux 0x898022d3 sync_inodes_sb +EXPORT_SYMBOL vmlinux 0x89911013 dev_set_drvdata +EXPORT_SYMBOL vmlinux 0x8998c6f9 path_get +EXPORT_SYMBOL vmlinux 0x89d5538d fb_pad_aligned_buffer +EXPORT_SYMBOL vmlinux 0x89d66811 build_ehash_secret +EXPORT_SYMBOL vmlinux 0x89ddc33d sock_get_timestamp +EXPORT_SYMBOL vmlinux 0x89e3f8ef starget_for_each_device +EXPORT_SYMBOL vmlinux 0x89fac49f set_bh_page +EXPORT_SYMBOL vmlinux 0x8a00a60d dev_uc_add_excl +EXPORT_SYMBOL vmlinux 0x8a0764e4 __brelse +EXPORT_SYMBOL vmlinux 0x8a08fdfe load_nls_default +EXPORT_SYMBOL vmlinux 0x8a0f4230 rename_lock +EXPORT_SYMBOL vmlinux 0x8a1ab4ee timeval_to_jiffies +EXPORT_SYMBOL vmlinux 0x8a2c7851 sock_no_getname +EXPORT_SYMBOL vmlinux 0x8a3c6a94 bh_uptodate_or_lock +EXPORT_SYMBOL vmlinux 0x8a45de1b jbd2_journal_destroy +EXPORT_SYMBOL vmlinux 0x8a490c90 rfkill_set_sw_state +EXPORT_SYMBOL vmlinux 0x8a4fa83b __aeabi_llsr +EXPORT_SYMBOL vmlinux 0x8a6692e3 of_get_ddr_timings +EXPORT_SYMBOL vmlinux 0x8a7d1c31 high_memory +EXPORT_SYMBOL vmlinux 0x8a802c89 __set_page_dirty_buffers +EXPORT_SYMBOL vmlinux 0x8a99a016 mempool_free_slab +EXPORT_SYMBOL vmlinux 0x8a9bd1e4 mnt_unpin +EXPORT_SYMBOL vmlinux 0x8aaa043a ether_setup +EXPORT_SYMBOL vmlinux 0x8aad8f14 unlink_framebuffer +EXPORT_SYMBOL vmlinux 0x8abc9dcc rtnl_link_get_net +EXPORT_SYMBOL vmlinux 0x8acac1ce journal_init_dev +EXPORT_SYMBOL vmlinux 0x8ace8ca3 groups_alloc +EXPORT_SYMBOL vmlinux 0x8b07939d __ww_mutex_lock_interruptible +EXPORT_SYMBOL vmlinux 0x8b166ba3 udp_poll +EXPORT_SYMBOL vmlinux 0x8b183682 neigh_resolve_output +EXPORT_SYMBOL vmlinux 0x8b2c7ce7 blk_rq_map_integrity_sg +EXPORT_SYMBOL vmlinux 0x8b39b538 snd_timer_global_new +EXPORT_SYMBOL vmlinux 0x8b43159b register_cpu_notifier +EXPORT_SYMBOL vmlinux 0x8b4865e7 __generic_file_aio_write +EXPORT_SYMBOL vmlinux 0x8b618d08 overflowuid +EXPORT_SYMBOL vmlinux 0x8b959444 blk_rq_init +EXPORT_SYMBOL vmlinux 0x8b972f42 ps2_handle_ack +EXPORT_SYMBOL vmlinux 0x8b985fbe journal_flush +EXPORT_SYMBOL vmlinux 0x8bd0a3fd _raw_write_unlock_bh +EXPORT_SYMBOL vmlinux 0x8be623e4 snd_pcm_new_internal +EXPORT_SYMBOL vmlinux 0x8bfe8c57 param_set_uint +EXPORT_SYMBOL vmlinux 0x8c0c157b arp_tbl +EXPORT_SYMBOL vmlinux 0x8c144f08 __lru_cache_add +EXPORT_SYMBOL vmlinux 0x8c34c021 end_page_writeback +EXPORT_SYMBOL vmlinux 0x8c5d4de9 posix_unblock_lock +EXPORT_SYMBOL vmlinux 0x8c60be4a netif_napi_del +EXPORT_SYMBOL vmlinux 0x8c637d43 irq_cpu_rmap_add +EXPORT_SYMBOL vmlinux 0x8c818e9f neigh_table_clear +EXPORT_SYMBOL vmlinux 0x8cc7f81a security_path_link +EXPORT_SYMBOL vmlinux 0x8cc81325 done_path_create +EXPORT_SYMBOL vmlinux 0x8cda8029 xen_clear_irq_pending +EXPORT_SYMBOL vmlinux 0x8d2bf443 tty_hangup +EXPORT_SYMBOL vmlinux 0x8d2f410c dput +EXPORT_SYMBOL vmlinux 0x8d3a5300 generic_splice_sendpage +EXPORT_SYMBOL vmlinux 0x8d4e3e3d scsi_eh_prep_cmnd +EXPORT_SYMBOL vmlinux 0x8d551bef sysctl_tcp_rmem +EXPORT_SYMBOL vmlinux 0x8d5644bb mb_cache_entry_find_first +EXPORT_SYMBOL vmlinux 0x8d5e2111 pid_task +EXPORT_SYMBOL vmlinux 0x8d6f81b4 __div64_32 +EXPORT_SYMBOL vmlinux 0x8d8249e6 scsi_scan_target +EXPORT_SYMBOL vmlinux 0x8d8b6353 proc_dointvec_userhz_jiffies +EXPORT_SYMBOL vmlinux 0x8d8e160c put_disk +EXPORT_SYMBOL vmlinux 0x8db4d831 devm_gpio_request_one +EXPORT_SYMBOL vmlinux 0x8db5a110 pm_vt_switch_required +EXPORT_SYMBOL vmlinux 0x8ddb11f4 tcp_release_cb +EXPORT_SYMBOL vmlinux 0x8ddb8d2a dquot_transfer +EXPORT_SYMBOL vmlinux 0x8def62dd skb_copy +EXPORT_SYMBOL vmlinux 0x8e022dc6 get_super +EXPORT_SYMBOL vmlinux 0x8e089b6f tty_unlock_pair +EXPORT_SYMBOL vmlinux 0x8e0d66f4 __tracepoint_kmalloc +EXPORT_SYMBOL vmlinux 0x8e28cd42 in_egroup_p +EXPORT_SYMBOL vmlinux 0x8e56dfeb dev_addr_init +EXPORT_SYMBOL vmlinux 0x8e5c580a ida_init +EXPORT_SYMBOL vmlinux 0x8e6c8b93 blk_queue_alignment_offset +EXPORT_SYMBOL vmlinux 0x8e852ea5 max8998_bulk_write +EXPORT_SYMBOL vmlinux 0x8e865d3c arm_delay_ops +EXPORT_SYMBOL vmlinux 0x8ee39775 jbd2_log_wait_commit +EXPORT_SYMBOL vmlinux 0x8f045d1c cancel_delayed_work +EXPORT_SYMBOL vmlinux 0x8f05e6ef skb_trim +EXPORT_SYMBOL vmlinux 0x8f3cb798 neigh_event_ns +EXPORT_SYMBOL vmlinux 0x8f47cd8b __genl_register_family_with_ops +EXPORT_SYMBOL vmlinux 0x8f4fc5dd iunique +EXPORT_SYMBOL vmlinux 0x8f595b11 snd_major +EXPORT_SYMBOL vmlinux 0x8f671b44 abx500_remove_ops +EXPORT_SYMBOL vmlinux 0x8f678b07 __stack_chk_guard +EXPORT_SYMBOL vmlinux 0x8f7014a1 param_set_ulong +EXPORT_SYMBOL vmlinux 0x8f7bfd7f snd_pcm_hw_constraint_ratdens +EXPORT_SYMBOL vmlinux 0x8f8d7176 phy_ethtool_sset +EXPORT_SYMBOL vmlinux 0x8faa4598 of_translate_address +EXPORT_SYMBOL vmlinux 0x8fc3e9cc jbd2_journal_invalidatepage +EXPORT_SYMBOL vmlinux 0x8ffdb3b8 crc16 +EXPORT_SYMBOL vmlinux 0x902c5d7c tty_pair_get_pty +EXPORT_SYMBOL vmlinux 0x902c75eb sg_pcopy_from_buffer +EXPORT_SYMBOL vmlinux 0x9062a17f scsi_free_command +EXPORT_SYMBOL vmlinux 0x906f749f snd_pcm_hw_constraint_step +EXPORT_SYMBOL vmlinux 0x9088da48 __dev_remove_offload +EXPORT_SYMBOL vmlinux 0x90ac3102 dev_base_lock +EXPORT_SYMBOL vmlinux 0x90c5e819 kstrtoll_from_user +EXPORT_SYMBOL vmlinux 0x90cce2db __break_lease +EXPORT_SYMBOL vmlinux 0x90e9282a tcp_poll +EXPORT_SYMBOL vmlinux 0x90ed4180 serial8250_do_pm +EXPORT_SYMBOL vmlinux 0x90f6d905 generic_write_sync +EXPORT_SYMBOL vmlinux 0x90fc34a7 bio_alloc_bioset +EXPORT_SYMBOL vmlinux 0x910879eb twl6040_power +EXPORT_SYMBOL vmlinux 0x914060ea generic_file_llseek_size +EXPORT_SYMBOL vmlinux 0x91463b1d kstrtos16 +EXPORT_SYMBOL vmlinux 0x9150b9c4 tty_hung_up_p +EXPORT_SYMBOL vmlinux 0x9152875f lz4_decompress_unknownoutputsize +EXPORT_SYMBOL vmlinux 0x91715312 sprintf +EXPORT_SYMBOL vmlinux 0x9177373b udp_lib_getsockopt +EXPORT_SYMBOL vmlinux 0x9182c072 devm_gpio_free +EXPORT_SYMBOL vmlinux 0x9183b34f i2c_smbus_xfer +EXPORT_SYMBOL vmlinux 0x918eb0df inet_sk_rebuild_header +EXPORT_SYMBOL vmlinux 0x919029aa __readwrite_bug +EXPORT_SYMBOL vmlinux 0x9199deef dm_kcopyd_copy +EXPORT_SYMBOL vmlinux 0x91aec064 down_read_trylock +EXPORT_SYMBOL vmlinux 0x91c06510 vfs_mkdir +EXPORT_SYMBOL vmlinux 0x91c0980e icst_hz +EXPORT_SYMBOL vmlinux 0x91cd0ce0 dget_parent +EXPORT_SYMBOL vmlinux 0x91d3ee66 devm_iounmap +EXPORT_SYMBOL vmlinux 0x9205953f send_remote_softirq +EXPORT_SYMBOL vmlinux 0x920eb90c interruptible_sleep_on_timeout +EXPORT_SYMBOL vmlinux 0x92224a15 delete_from_page_cache +EXPORT_SYMBOL vmlinux 0x9224e9ed __register_chrdev +EXPORT_SYMBOL vmlinux 0x9227ddc1 filemap_write_and_wait +EXPORT_SYMBOL vmlinux 0x9234840d netif_device_detach +EXPORT_SYMBOL vmlinux 0x923591d1 __skb_get_rxhash +EXPORT_SYMBOL vmlinux 0x923b1276 dmaengine_get +EXPORT_SYMBOL vmlinux 0x92a9c60c time_to_tm +EXPORT_SYMBOL vmlinux 0x92c485ca proc_remove +EXPORT_SYMBOL vmlinux 0x92d6c57f fget_light +EXPORT_SYMBOL vmlinux 0x93215e1d __kfifo_skip_r +EXPORT_SYMBOL vmlinux 0x9338394b xfrm6_find_1stfragopt +EXPORT_SYMBOL vmlinux 0x9346f4bd mmc_interrupt_hpi +EXPORT_SYMBOL vmlinux 0x93526312 sock_i_ino +EXPORT_SYMBOL vmlinux 0x9356db1e bdi_destroy +EXPORT_SYMBOL vmlinux 0x937167d9 fsnotify_destroy_mark +EXPORT_SYMBOL vmlinux 0x93740f19 netdev_master_upper_dev_get +EXPORT_SYMBOL vmlinux 0x937d5f55 skb_put +EXPORT_SYMBOL vmlinux 0x93867288 start_tty +EXPORT_SYMBOL vmlinux 0x93917706 dev_alert +EXPORT_SYMBOL vmlinux 0x9392237d ndo_dflt_fdb_add +EXPORT_SYMBOL vmlinux 0x93a6e0b2 io_schedule +EXPORT_SYMBOL vmlinux 0x93b1cd6b blk_queue_unprep_rq +EXPORT_SYMBOL vmlinux 0x93b3fc74 register_dcbevent_notifier +EXPORT_SYMBOL vmlinux 0x93b677b8 mtd_concat_destroy +EXPORT_SYMBOL vmlinux 0x93fca811 __get_free_pages +EXPORT_SYMBOL vmlinux 0x9401d73a netdev_notify_peers +EXPORT_SYMBOL vmlinux 0x9406839d scsi_cmd_print_sense_hdr +EXPORT_SYMBOL vmlinux 0x9406966a netdev_master_upper_dev_link +EXPORT_SYMBOL vmlinux 0x94098ff8 snd_interval_list +EXPORT_SYMBOL vmlinux 0x942f8d09 simple_write_end +EXPORT_SYMBOL vmlinux 0x945c5fef xfrm_state_update +EXPORT_SYMBOL vmlinux 0x948c63f8 ip_route_me_harder +EXPORT_SYMBOL vmlinux 0x94961283 vunmap +EXPORT_SYMBOL vmlinux 0x94ba84e1 ata_port_printk +EXPORT_SYMBOL vmlinux 0x94c5fbf6 fget +EXPORT_SYMBOL vmlinux 0x94d2b729 empty_zero_page +EXPORT_SYMBOL vmlinux 0x94d3da68 rtc_lock +EXPORT_SYMBOL vmlinux 0x94d92e34 devfreq_suspend_device +EXPORT_SYMBOL vmlinux 0x94f07038 skb_seq_read +EXPORT_SYMBOL vmlinux 0x94fffbd4 iw_handler_get_thrspy +EXPORT_SYMBOL vmlinux 0x95102cad d_genocide +EXPORT_SYMBOL vmlinux 0x954488a4 syncookie_secret +EXPORT_SYMBOL vmlinux 0x9545af6d tasklet_init +EXPORT_SYMBOL vmlinux 0x954b3340 skb_queue_purge +EXPORT_SYMBOL vmlinux 0x9554b64e set_security_override +EXPORT_SYMBOL vmlinux 0x95622f41 down_timeout +EXPORT_SYMBOL vmlinux 0x9576c892 padata_alloc_possible +EXPORT_SYMBOL vmlinux 0x959b5b35 call_usermodehelper_setup +EXPORT_SYMBOL vmlinux 0x95a0b1e4 tc6393xb_lcd_set_power +EXPORT_SYMBOL vmlinux 0x95cb929c of_find_all_nodes +EXPORT_SYMBOL vmlinux 0x95dbe078 __get_user_2 +EXPORT_SYMBOL vmlinux 0x95e1f29c scsi_block_requests +EXPORT_SYMBOL vmlinux 0x95e6e500 blk_stack_limits +EXPORT_SYMBOL vmlinux 0x95eb0ed7 __ethtool_get_settings +EXPORT_SYMBOL vmlinux 0x9602e468 handle_edge_irq +EXPORT_SYMBOL vmlinux 0x96055a4a kernel_sendpage +EXPORT_SYMBOL vmlinux 0x96125483 ipv6_dev_get_saddr +EXPORT_SYMBOL vmlinux 0x9613509a idr_replace +EXPORT_SYMBOL vmlinux 0x9615f0bb sock_get_timestampns +EXPORT_SYMBOL vmlinux 0x961dcdc3 write_inode_now +EXPORT_SYMBOL vmlinux 0x963f3e72 kmap_atomic +EXPORT_SYMBOL vmlinux 0x9641548f mmc_remove_host +EXPORT_SYMBOL vmlinux 0x96573b80 __kfifo_dma_in_finish_r +EXPORT_SYMBOL vmlinux 0x965c38c7 km_state_notify +EXPORT_SYMBOL vmlinux 0x96898769 sysfs_format_mac +EXPORT_SYMBOL vmlinux 0x9695f51a phy_ethtool_set_wol +EXPORT_SYMBOL vmlinux 0x969d7e7c snd_pcm_set_sync +EXPORT_SYMBOL vmlinux 0x96a77f21 snd_timer_pause +EXPORT_SYMBOL vmlinux 0x96ac1914 skb_prepare_seq_read +EXPORT_SYMBOL vmlinux 0x96be24f7 redraw_screen +EXPORT_SYMBOL vmlinux 0x96cd2b04 scsi_sense_key_string +EXPORT_SYMBOL vmlinux 0x96fba908 tty_pair_get_tty +EXPORT_SYMBOL vmlinux 0x97255bdf strlen +EXPORT_SYMBOL vmlinux 0x974e3772 tty_insert_flip_string_flags +EXPORT_SYMBOL vmlinux 0x9754ec10 radix_tree_preload +EXPORT_SYMBOL vmlinux 0x976e700f down_trylock +EXPORT_SYMBOL vmlinux 0x97999817 rfkill_set_hw_state +EXPORT_SYMBOL vmlinux 0x97b4500c __tracepoint_kmem_cache_free +EXPORT_SYMBOL vmlinux 0x97ba26ca user_path_at +EXPORT_SYMBOL vmlinux 0x97fe2e3c snd_pcm_lib_preallocate_pages_for_all +EXPORT_SYMBOL vmlinux 0x97fe5615 md_set_array_sectors +EXPORT_SYMBOL vmlinux 0x97ff288e __put_cred +EXPORT_SYMBOL vmlinux 0x98082893 __copy_to_user +EXPORT_SYMBOL vmlinux 0x9820b644 warn_slowpath_fmt_taint +EXPORT_SYMBOL vmlinux 0x9838e524 __i2c_transfer +EXPORT_SYMBOL vmlinux 0x9839291f set_binfmt +EXPORT_SYMBOL vmlinux 0x986e6135 fb_pad_unaligned_buffer +EXPORT_SYMBOL vmlinux 0x98893e08 jbd2_journal_start +EXPORT_SYMBOL vmlinux 0x98a6517f keyring_search +EXPORT_SYMBOL vmlinux 0x98bfbf21 mount_single +EXPORT_SYMBOL vmlinux 0x98fa21b0 mod_timer_pinned +EXPORT_SYMBOL vmlinux 0x98fc0d64 alloc_netdev_mqs +EXPORT_SYMBOL vmlinux 0x98ffea77 scsi_verify_blk_ioctl +EXPORT_SYMBOL vmlinux 0x9920ff7c __netdev_pick_tx +EXPORT_SYMBOL vmlinux 0x9925e9cf kblockd_schedule_work +EXPORT_SYMBOL vmlinux 0x9928160a fb_set_suspend +EXPORT_SYMBOL vmlinux 0x993029b8 skb_add_rx_frag +EXPORT_SYMBOL vmlinux 0x994223c2 igrab +EXPORT_SYMBOL vmlinux 0x99517682 udp_encap_enable +EXPORT_SYMBOL vmlinux 0x9954fc00 sock_no_recvmsg +EXPORT_SYMBOL vmlinux 0x99591a7a ipv6_ext_hdr +EXPORT_SYMBOL vmlinux 0x996c4d30 proc_dointvec_ms_jiffies +EXPORT_SYMBOL vmlinux 0x997e2210 jbd2_journal_flush +EXPORT_SYMBOL vmlinux 0x9994c0ca ps2_is_keyboard_id +EXPORT_SYMBOL vmlinux 0x9996836a con_is_bound +EXPORT_SYMBOL vmlinux 0x999b53d3 sock_wfree +EXPORT_SYMBOL vmlinux 0x999c3148 __raw_readsb +EXPORT_SYMBOL vmlinux 0x999e8297 vfree +EXPORT_SYMBOL vmlinux 0x99b10ee1 proto_unregister +EXPORT_SYMBOL vmlinux 0x99bb8806 memmove +EXPORT_SYMBOL vmlinux 0x99caf6f6 buffer_check_dirty_writeback +EXPORT_SYMBOL vmlinux 0x99cdc86b sysctl_tcp_reordering +EXPORT_SYMBOL vmlinux 0x99d63f80 blk_bio_map_sg +EXPORT_SYMBOL vmlinux 0x99dba502 f_setown +EXPORT_SYMBOL vmlinux 0x99ee6524 snd_timer_global_register +EXPORT_SYMBOL vmlinux 0x99f2182b sk_reset_timer +EXPORT_SYMBOL vmlinux 0x99f58330 lg_local_lock_cpu +EXPORT_SYMBOL vmlinux 0x99fc143d cancel_dirty_page +EXPORT_SYMBOL vmlinux 0x99ffceeb genphy_read_status +EXPORT_SYMBOL vmlinux 0x9a13f18c snd_pcm_hw_constraint_integer +EXPORT_SYMBOL vmlinux 0x9a1dfd65 strpbrk +EXPORT_SYMBOL vmlinux 0x9a1fc4b4 jiffies_to_timeval +EXPORT_SYMBOL vmlinux 0x9a341f87 sk_send_sigurg +EXPORT_SYMBOL vmlinux 0x9a3e1414 send_sig +EXPORT_SYMBOL vmlinux 0x9a44472f dquot_quota_on +EXPORT_SYMBOL vmlinux 0x9a5bb82c __scm_send +EXPORT_SYMBOL vmlinux 0x9a6e183a __idr_remove_all +EXPORT_SYMBOL vmlinux 0x9a8318ef v7_coherent_kern_range +EXPORT_SYMBOL vmlinux 0x9aaa97af unregister_netdev +EXPORT_SYMBOL vmlinux 0x9ab316f7 seq_lseek +EXPORT_SYMBOL vmlinux 0x9ad3a264 generic_pipe_buf_release +EXPORT_SYMBOL vmlinux 0x9b154ee9 mb_cache_entry_find_next +EXPORT_SYMBOL vmlinux 0x9b1cc87a scsi_print_sense +EXPORT_SYMBOL vmlinux 0x9b33e0d7 unregister_dcbevent_notifier +EXPORT_SYMBOL vmlinux 0x9b388444 get_zeroed_page +EXPORT_SYMBOL vmlinux 0x9b53f977 snd_timer_notify +EXPORT_SYMBOL vmlinux 0x9b5ad0ef linkwatch_fire_event +EXPORT_SYMBOL vmlinux 0x9b6eb137 ksize +EXPORT_SYMBOL vmlinux 0x9b8744c4 journal_start_commit +EXPORT_SYMBOL vmlinux 0x9b8f01fe bio_map_user +EXPORT_SYMBOL vmlinux 0x9b9c7bfa __kfifo_dma_out_prepare +EXPORT_SYMBOL vmlinux 0x9b9e05f9 alloc_cpu_rmap +EXPORT_SYMBOL vmlinux 0x9ba7089d argv_split +EXPORT_SYMBOL vmlinux 0x9ba8ce18 nand_scan_ident +EXPORT_SYMBOL vmlinux 0x9bbe8e18 ab3100_event_register +EXPORT_SYMBOL vmlinux 0x9bbfdced single_open_size +EXPORT_SYMBOL vmlinux 0x9bc6b935 nf_unregister_hook +EXPORT_SYMBOL vmlinux 0x9bdd110a key_reject_and_link +EXPORT_SYMBOL vmlinux 0x9be7bde4 security_tun_dev_attach +EXPORT_SYMBOL vmlinux 0x9c09bbdd poll_schedule_timeout +EXPORT_SYMBOL vmlinux 0x9c0bd51f _raw_spin_lock +EXPORT_SYMBOL vmlinux 0x9c2481f0 __bio_clone +EXPORT_SYMBOL vmlinux 0x9c3737fc __percpu_counter_init +EXPORT_SYMBOL vmlinux 0x9c4c6577 PDE_DATA +EXPORT_SYMBOL vmlinux 0x9c837591 snd_device_register +EXPORT_SYMBOL vmlinux 0x9c8c0a10 __skb_recv_datagram +EXPORT_SYMBOL vmlinux 0x9c9ec2a0 proc_dointvec_minmax +EXPORT_SYMBOL vmlinux 0x9caa5bcc elv_unregister_queue +EXPORT_SYMBOL vmlinux 0x9cab34a6 rfkill_set_led_trigger_name +EXPORT_SYMBOL vmlinux 0x9cb491bf inode_newsize_ok +EXPORT_SYMBOL vmlinux 0x9cc831ae tcp_proc_unregister +EXPORT_SYMBOL vmlinux 0x9cd59942 dev_disable_lro +EXPORT_SYMBOL vmlinux 0x9ceb163c memcpy_toiovec +EXPORT_SYMBOL vmlinux 0x9cfd56c5 scsi_print_status +EXPORT_SYMBOL vmlinux 0x9d05f6c4 ktime_get_clocktai +EXPORT_SYMBOL vmlinux 0x9d0d6206 unregister_netdevice_notifier +EXPORT_SYMBOL vmlinux 0x9d2f9e99 amba_release_regions +EXPORT_SYMBOL vmlinux 0x9d3aa376 blk_iopoll_init +EXPORT_SYMBOL vmlinux 0x9d3af195 dquot_set_dqblk +EXPORT_SYMBOL vmlinux 0x9d450176 tty_register_driver +EXPORT_SYMBOL vmlinux 0x9d669763 memcpy +EXPORT_SYMBOL vmlinux 0x9d71dcd0 jbd2_journal_check_used_features +EXPORT_SYMBOL vmlinux 0x9d8dc526 jbd2_journal_forget +EXPORT_SYMBOL vmlinux 0x9da191e6 alloc_buffer_head +EXPORT_SYMBOL vmlinux 0x9db48840 may_umount +EXPORT_SYMBOL vmlinux 0x9db4f481 skb_recv_datagram +EXPORT_SYMBOL vmlinux 0x9de4af0d i2c_add_adapter +EXPORT_SYMBOL vmlinux 0x9df81757 mount_nodev +EXPORT_SYMBOL vmlinux 0x9e012831 generic_file_readonly_mmap +EXPORT_SYMBOL vmlinux 0x9e0c711d vzalloc_node +EXPORT_SYMBOL vmlinux 0x9e2000a7 memcpy_toiovecend +EXPORT_SYMBOL vmlinux 0x9e44b2b8 generic_setxattr +EXPORT_SYMBOL vmlinux 0x9e44b9b7 of_get_next_available_child +EXPORT_SYMBOL vmlinux 0x9e4faeef dm_io_client_destroy +EXPORT_SYMBOL vmlinux 0x9e591629 loop_backing_file +EXPORT_SYMBOL vmlinux 0x9e61bb05 set_freezable +EXPORT_SYMBOL vmlinux 0x9e6bf625 bio_integrity_clone +EXPORT_SYMBOL vmlinux 0x9e6d79f8 snd_info_get_str +EXPORT_SYMBOL vmlinux 0x9e934dff icmp_send +EXPORT_SYMBOL vmlinux 0x9e9f1714 __bitmap_andnot +EXPORT_SYMBOL vmlinux 0x9eb6a45c freezing_slow_path +EXPORT_SYMBOL vmlinux 0x9ebd4c04 adjust_resource +EXPORT_SYMBOL vmlinux 0x9ecc6a7a interruptible_sleep_on +EXPORT_SYMBOL vmlinux 0x9ece870c dev_uc_sync_multiple +EXPORT_SYMBOL vmlinux 0x9ed685ee iov_iter_advance +EXPORT_SYMBOL vmlinux 0x9eee21fb journal_invalidatepage +EXPORT_SYMBOL vmlinux 0x9efff8ca __elv_add_request +EXPORT_SYMBOL vmlinux 0x9f0190fe __neigh_event_send +EXPORT_SYMBOL vmlinux 0x9f140794 netdev_upper_dev_link +EXPORT_SYMBOL vmlinux 0x9f1619df uart_match_port +EXPORT_SYMBOL vmlinux 0x9f1dd039 udp_disconnect +EXPORT_SYMBOL vmlinux 0x9f2bdaac __bitmap_or +EXPORT_SYMBOL vmlinux 0x9f2da405 tty_port_carrier_raised +EXPORT_SYMBOL vmlinux 0x9f38ce2b jbd2_journal_free_reserved +EXPORT_SYMBOL vmlinux 0x9f39d7c4 wake_up_process +EXPORT_SYMBOL vmlinux 0x9f46ced8 __sw_hweight64 +EXPORT_SYMBOL vmlinux 0x9f491e5d ftrace_print_symbols_seq_u64 +EXPORT_SYMBOL vmlinux 0x9f4ff6fa keyring_clear +EXPORT_SYMBOL vmlinux 0x9f5fbea3 tc6393xb_lcd_mode +EXPORT_SYMBOL vmlinux 0x9f6a534b __dst_destroy_metrics_generic +EXPORT_SYMBOL vmlinux 0x9f75cab2 xfrm_input_resume +EXPORT_SYMBOL vmlinux 0x9f8efc49 tcf_hash_insert +EXPORT_SYMBOL vmlinux 0x9f984513 strrchr +EXPORT_SYMBOL vmlinux 0x9f99d921 sock_no_listen +EXPORT_SYMBOL vmlinux 0x9fa55f40 tcf_em_register +EXPORT_SYMBOL vmlinux 0x9fb3dd30 memcpy_fromiovec +EXPORT_SYMBOL vmlinux 0x9fb796b7 sock_create_kern +EXPORT_SYMBOL vmlinux 0x9fd4e28b padata_unregister_cpumask_notifier +EXPORT_SYMBOL vmlinux 0x9fd82eda tcp_rcv_state_process +EXPORT_SYMBOL vmlinux 0x9fdc6546 block_commit_write +EXPORT_SYMBOL vmlinux 0x9fdecc31 unregister_netdevice_many +EXPORT_SYMBOL vmlinux 0x9ff1fe6a journal_check_used_features +EXPORT_SYMBOL vmlinux 0x9ffa3a75 netdev_max_backlog +EXPORT_SYMBOL vmlinux 0xa0018aed directly_mappable_cdev_bdi +EXPORT_SYMBOL vmlinux 0xa00ba8f5 mark_info_dirty +EXPORT_SYMBOL vmlinux 0xa012e213 tcp_gro_complete +EXPORT_SYMBOL vmlinux 0xa01ee29f sys_copyarea +EXPORT_SYMBOL vmlinux 0xa01f3cf9 sock_diag_put_filterinfo +EXPORT_SYMBOL vmlinux 0xa04a01bd qdisc_class_hash_insert +EXPORT_SYMBOL vmlinux 0xa05c03df mempool_kmalloc +EXPORT_SYMBOL vmlinux 0xa065178c unregister_netdevice_queue +EXPORT_SYMBOL vmlinux 0xa06df9e1 __kfifo_dma_out_finish_r +EXPORT_SYMBOL vmlinux 0xa07150ce writeback_in_progress +EXPORT_SYMBOL vmlinux 0xa07ed110 xz_dec_init +EXPORT_SYMBOL vmlinux 0xa0b04675 vmalloc_32 +EXPORT_SYMBOL vmlinux 0xa0c93489 __seq_open_private +EXPORT_SYMBOL vmlinux 0xa0ceef51 out_of_line_wait_on_bit +EXPORT_SYMBOL vmlinux 0xa0da3dbc __nla_reserve_nohdr +EXPORT_SYMBOL vmlinux 0xa0e61de8 mmc_can_erase +EXPORT_SYMBOL vmlinux 0xa0fbac79 wake_up_bit +EXPORT_SYMBOL vmlinux 0xa108eb4d sysctl_optmem_max +EXPORT_SYMBOL vmlinux 0xa10f0e06 nla_put_nohdr +EXPORT_SYMBOL vmlinux 0xa118880b __module_get +EXPORT_SYMBOL vmlinux 0xa11c6279 fib_default_rule_pref +EXPORT_SYMBOL vmlinux 0xa120d33c tty_unregister_ldisc +EXPORT_SYMBOL vmlinux 0xa12de495 skb_checksum_help +EXPORT_SYMBOL vmlinux 0xa13b92d1 amba_driver_register +EXPORT_SYMBOL vmlinux 0xa1415618 twl6030_interrupt_unmask +EXPORT_SYMBOL vmlinux 0xa14f3d8c ewma_add +EXPORT_SYMBOL vmlinux 0xa1620f6d mmc_power_restore_host +EXPORT_SYMBOL vmlinux 0xa182a085 fifo_create_dflt +EXPORT_SYMBOL vmlinux 0xa18e4a0f arp_invalidate +EXPORT_SYMBOL vmlinux 0xa1945ff2 snd_ctl_add +EXPORT_SYMBOL vmlinux 0xa1b15661 alloc_disk_node +EXPORT_SYMBOL vmlinux 0xa1b624ba update_devfreq +EXPORT_SYMBOL vmlinux 0xa1b759ce fb_add_videomode +EXPORT_SYMBOL vmlinux 0xa1c76e0a _cond_resched +EXPORT_SYMBOL vmlinux 0xa1d55e90 _raw_spin_lock_bh +EXPORT_SYMBOL vmlinux 0xa1e3a934 netif_device_attach +EXPORT_SYMBOL vmlinux 0xa1f0ebea bit_waitqueue +EXPORT_SYMBOL vmlinux 0xa1f9bc5c bio_alloc_pages +EXPORT_SYMBOL vmlinux 0xa1fea43c pps_unregister_source +EXPORT_SYMBOL vmlinux 0xa20c07e4 cleancache_register_ops +EXPORT_SYMBOL vmlinux 0xa20ce1b8 net_msg_warn +EXPORT_SYMBOL vmlinux 0xa21fffa3 snd_pcm_open_substream +EXPORT_SYMBOL vmlinux 0xa239731b dev_uc_sync +EXPORT_SYMBOL vmlinux 0xa2496e15 dcb_ieee_getapp_mask +EXPORT_SYMBOL vmlinux 0xa250c838 param_get_charp +EXPORT_SYMBOL vmlinux 0xa25559fa scsi_allocate_command +EXPORT_SYMBOL vmlinux 0xa267841b address_space_init_once +EXPORT_SYMBOL vmlinux 0xa26d36bc qdisc_destroy +EXPORT_SYMBOL vmlinux 0xa272c54b xfrm_state_insert +EXPORT_SYMBOL vmlinux 0xa2848c50 ecryptfs_get_auth_tok_key +EXPORT_SYMBOL vmlinux 0xa29544ee xfrm6_rcv_spi +EXPORT_SYMBOL vmlinux 0xa29b8172 dm_io +EXPORT_SYMBOL vmlinux 0xa2a5fd77 inet_ehash_secret +EXPORT_SYMBOL vmlinux 0xa2bfc5f2 d_instantiate +EXPORT_SYMBOL vmlinux 0xa2d3b7a0 udp_sendmsg +EXPORT_SYMBOL vmlinux 0xa2da0b56 __block_write_begin +EXPORT_SYMBOL vmlinux 0xa2ea5d54 poll_freewait +EXPORT_SYMBOL vmlinux 0xa2ef34d7 rps_sock_flow_table +EXPORT_SYMBOL vmlinux 0xa2f74c4a ip_defrag +EXPORT_SYMBOL vmlinux 0xa302cc55 __ps2_command +EXPORT_SYMBOL vmlinux 0xa308afdd abx500_startup_irq_enabled +EXPORT_SYMBOL vmlinux 0xa336feb7 nand_manuf_ids +EXPORT_SYMBOL vmlinux 0xa347697a __sk_backlog_rcv +EXPORT_SYMBOL vmlinux 0xa34f1ef5 crc32_le +EXPORT_SYMBOL vmlinux 0xa35c4f84 skb_make_writable +EXPORT_SYMBOL vmlinux 0xa35de80f ipv4_config +EXPORT_SYMBOL vmlinux 0xa35e6093 max8925_bulk_read +EXPORT_SYMBOL vmlinux 0xa381944f dql_reset +EXPORT_SYMBOL vmlinux 0xa38345de sg_last +EXPORT_SYMBOL vmlinux 0xa3840be6 devfreq_interval_update +EXPORT_SYMBOL vmlinux 0xa3ac8338 __sock_create +EXPORT_SYMBOL vmlinux 0xa3ad242f of_platform_device_create +EXPORT_SYMBOL vmlinux 0xa3ad37ff crypto_sha1_update +EXPORT_SYMBOL vmlinux 0xa3b593ae mfd_cell_disable +EXPORT_SYMBOL vmlinux 0xa3bb5cac of_find_device_by_node +EXPORT_SYMBOL vmlinux 0xa3dd3254 bio_copy_user +EXPORT_SYMBOL vmlinux 0xa3e910a7 tty_port_open +EXPORT_SYMBOL vmlinux 0xa3f35bf5 rwsem_is_locked +EXPORT_SYMBOL vmlinux 0xa40592f5 rtnl_set_sk_err +EXPORT_SYMBOL vmlinux 0xa414882d add_wait_queue_exclusive +EXPORT_SYMBOL vmlinux 0xa41cd3ce blk_pre_runtime_resume +EXPORT_SYMBOL vmlinux 0xa4271fa3 snd_info_register +EXPORT_SYMBOL vmlinux 0xa43b1297 vscnprintf +EXPORT_SYMBOL vmlinux 0xa43b9539 memcpy_fromiovecend +EXPORT_SYMBOL vmlinux 0xa43cae6c inet_del_protocol +EXPORT_SYMBOL vmlinux 0xa44c2429 __kfifo_dma_in_prepare +EXPORT_SYMBOL vmlinux 0xa455d0ea kmem_cache_shrink +EXPORT_SYMBOL vmlinux 0xa4592203 iget_failed +EXPORT_SYMBOL vmlinux 0xa4687ec2 ppp_unit_number +EXPORT_SYMBOL vmlinux 0xa4701e9e timekeeping_inject_offset +EXPORT_SYMBOL vmlinux 0xa485ead7 snd_pcm_suspend +EXPORT_SYMBOL vmlinux 0xa492c9ee ps2_command +EXPORT_SYMBOL vmlinux 0xa4bc16a9 icmpv6_send +EXPORT_SYMBOL vmlinux 0xa4c4afd7 elevator_change +EXPORT_SYMBOL vmlinux 0xa4eaa418 scsi_eh_restore_cmnd +EXPORT_SYMBOL vmlinux 0xa50a111e inet_peer_xrlim_allow +EXPORT_SYMBOL vmlinux 0xa50eee90 posix_test_lock +EXPORT_SYMBOL vmlinux 0xa5114d74 simple_release_fs +EXPORT_SYMBOL vmlinux 0xa51bbfc1 skb_copy_and_csum_dev +EXPORT_SYMBOL vmlinux 0xa524d80e __free_pages +EXPORT_SYMBOL vmlinux 0xa545b6fe d_set_d_op +EXPORT_SYMBOL vmlinux 0xa5526619 rb_insert_color +EXPORT_SYMBOL vmlinux 0xa5722c7a block_write_full_page_endio +EXPORT_SYMBOL vmlinux 0xa577a850 param_get_short +EXPORT_SYMBOL vmlinux 0xa58fea9d mempool_destroy +EXPORT_SYMBOL vmlinux 0xa598e29c vesa_modes +EXPORT_SYMBOL vmlinux 0xa5b23fa2 generic_file_aio_read +EXPORT_SYMBOL vmlinux 0xa5b55830 sget +EXPORT_SYMBOL vmlinux 0xa5c1d26f bdget +EXPORT_SYMBOL vmlinux 0xa5c30d35 __dec_zone_page_state +EXPORT_SYMBOL vmlinux 0xa5c401c4 get_user_pages +EXPORT_SYMBOL vmlinux 0xa5c9a890 __get_page_tail +EXPORT_SYMBOL vmlinux 0xa5ca59e7 follow_down +EXPORT_SYMBOL vmlinux 0xa5cbe549 aio_complete +EXPORT_SYMBOL vmlinux 0xa5dcdeb2 dev_mc_del_global +EXPORT_SYMBOL vmlinux 0xa5dd45f3 prandom_bytes_state +EXPORT_SYMBOL vmlinux 0xa5ebfb9c jbd2_journal_errno +EXPORT_SYMBOL vmlinux 0xa5f16e13 snd_pcm_hw_constraint_list +EXPORT_SYMBOL vmlinux 0xa5f8edba misc_deregister +EXPORT_SYMBOL vmlinux 0xa61a1e3e psched_ratecfg_precompute +EXPORT_SYMBOL vmlinux 0xa61aa028 snd_pcm_format_unsigned +EXPORT_SYMBOL vmlinux 0xa63c8aa1 tcp_proc_register +EXPORT_SYMBOL vmlinux 0xa63d85ab slhc_remember +EXPORT_SYMBOL vmlinux 0xa64a4cea usb_nop_xceiv_unregister +EXPORT_SYMBOL vmlinux 0xa65f765c scsi_remove_host +EXPORT_SYMBOL vmlinux 0xa660dd0e crypto_sha512_update +EXPORT_SYMBOL vmlinux 0xa66557dd input_register_handler +EXPORT_SYMBOL vmlinux 0xa66e1513 __nla_put_nohdr +EXPORT_SYMBOL vmlinux 0xa6715115 do_settimeofday +EXPORT_SYMBOL vmlinux 0xa675804c utf8s_to_utf16s +EXPORT_SYMBOL vmlinux 0xa681fe88 generate_random_uuid +EXPORT_SYMBOL vmlinux 0xa68584e1 bio_map_kern +EXPORT_SYMBOL vmlinux 0xa6970398 __kfifo_to_user_r +EXPORT_SYMBOL vmlinux 0xa69f145f dev_mc_sync +EXPORT_SYMBOL vmlinux 0xa6a1f961 tcp_tso_segment +EXPORT_SYMBOL vmlinux 0xa6bab23d dqstats +EXPORT_SYMBOL vmlinux 0xa6cc1fa3 snd_pcm_hw_param_first +EXPORT_SYMBOL vmlinux 0xa734a3e9 abort_exclusive_wait +EXPORT_SYMBOL vmlinux 0xa734aecd cdrom_check_events +EXPORT_SYMBOL vmlinux 0xa735db59 prandom_u32 +EXPORT_SYMBOL vmlinux 0xa73fc98f of_n_addr_cells +EXPORT_SYMBOL vmlinux 0xa740bee3 snd_dma_alloc_pages +EXPORT_SYMBOL vmlinux 0xa753e904 find_get_page +EXPORT_SYMBOL vmlinux 0xa75dad49 phy_register_fixup +EXPORT_SYMBOL vmlinux 0xa760555f generic_listxattr +EXPORT_SYMBOL vmlinux 0xa7664575 devfreq_resume_device +EXPORT_SYMBOL vmlinux 0xa7681b1a thaw_super +EXPORT_SYMBOL vmlinux 0xa77a369d idr_init +EXPORT_SYMBOL vmlinux 0xa7a009c8 xen_biovec_phys_mergeable +EXPORT_SYMBOL vmlinux 0xa7a3c6f5 rtnl_notify +EXPORT_SYMBOL vmlinux 0xa7d52732 nf_register_queue_handler +EXPORT_SYMBOL vmlinux 0xa7efaf46 dentry_open +EXPORT_SYMBOL vmlinux 0xa80304a2 km_policy_expired +EXPORT_SYMBOL vmlinux 0xa808bcb8 vexpress_config_wait +EXPORT_SYMBOL vmlinux 0xa80fe4f4 find_get_pages_contig +EXPORT_SYMBOL vmlinux 0xa8232c78 strtobool +EXPORT_SYMBOL vmlinux 0xa82d87f0 scsi_finish_command +EXPORT_SYMBOL vmlinux 0xa843805a get_unused_fd_flags +EXPORT_SYMBOL vmlinux 0xa85c76ad bio_integrity_free +EXPORT_SYMBOL vmlinux 0xa85f12aa fb_set_cmap +EXPORT_SYMBOL vmlinux 0xa86d947c ppp_register_compressor +EXPORT_SYMBOL vmlinux 0xa8721b97 system_state +EXPORT_SYMBOL vmlinux 0xa880c620 ilookup +EXPORT_SYMBOL vmlinux 0xa8a33776 snd_pcm_release_substream +EXPORT_SYMBOL vmlinux 0xa8a6f639 __check_region +EXPORT_SYMBOL vmlinux 0xa8c4b0ef phy_get_eee_err +EXPORT_SYMBOL vmlinux 0xa8da4166 napi_gro_frags +EXPORT_SYMBOL vmlinux 0xa8fef7bb security_unix_may_send +EXPORT_SYMBOL vmlinux 0xa92ab624 security_sb_set_mnt_opts +EXPORT_SYMBOL vmlinux 0xa940eb4b elv_rb_find +EXPORT_SYMBOL vmlinux 0xa96271d9 netlink_broadcast_filtered +EXPORT_SYMBOL vmlinux 0xa972e1a6 twl6040_get_pll +EXPORT_SYMBOL vmlinux 0xa980e64d kiocb_set_cancel_fn +EXPORT_SYMBOL vmlinux 0xa9835727 fb_pan_display +EXPORT_SYMBOL vmlinux 0xa994c642 padata_free +EXPORT_SYMBOL vmlinux 0xa9a25faf i2c_del_driver +EXPORT_SYMBOL vmlinux 0xa9af6497 mpage_readpage +EXPORT_SYMBOL vmlinux 0xa9b9ab6c kmalloc_dma_caches +EXPORT_SYMBOL vmlinux 0xa9ddc760 security_inode_readlink +EXPORT_SYMBOL vmlinux 0xa9effda5 __first_cpu +EXPORT_SYMBOL vmlinux 0xaa095f29 bio_integrity_trim +EXPORT_SYMBOL vmlinux 0xaa17b884 bdevname +EXPORT_SYMBOL vmlinux 0xaa275f09 tty_throttle +EXPORT_SYMBOL vmlinux 0xaa27beea max8998_read_reg +EXPORT_SYMBOL vmlinux 0xaa30beec ioremap_page +EXPORT_SYMBOL vmlinux 0xaa443887 scsi_report_device_reset +EXPORT_SYMBOL vmlinux 0xaa4c3ec5 __frontswap_load +EXPORT_SYMBOL vmlinux 0xaa5e2a0d vm_event_states +EXPORT_SYMBOL vmlinux 0xaa6901ac __kfifo_out_r +EXPORT_SYMBOL vmlinux 0xaa6f23ad rfkill_get_led_trigger_name +EXPORT_SYMBOL vmlinux 0xaa7c5f1c input_release_device +EXPORT_SYMBOL vmlinux 0xaa8c28f5 jbd2_journal_set_features +EXPORT_SYMBOL vmlinux 0xaa99381a __dquot_transfer +EXPORT_SYMBOL vmlinux 0xaad6d92f rfkill_init_sw_state +EXPORT_SYMBOL vmlinux 0xaafdc258 strcasecmp +EXPORT_SYMBOL vmlinux 0xab053e91 vmap +EXPORT_SYMBOL vmlinux 0xab188641 xfrm6_prepare_output +EXPORT_SYMBOL vmlinux 0xab18df7d xfrm_dst_ifdown +EXPORT_SYMBOL vmlinux 0xab19f89a blk_queue_invalidate_tags +EXPORT_SYMBOL vmlinux 0xab1d6cc1 param_get_long +EXPORT_SYMBOL vmlinux 0xab2616a7 pipe_to_file +EXPORT_SYMBOL vmlinux 0xab5b115b init_task +EXPORT_SYMBOL vmlinux 0xab600421 probe_irq_off +EXPORT_SYMBOL vmlinux 0xab694444 bsearch +EXPORT_SYMBOL vmlinux 0xab6bde28 sysctl_max_syn_backlog +EXPORT_SYMBOL vmlinux 0xab781570 fb_get_options +EXPORT_SYMBOL vmlinux 0xab7cd41b skb_append +EXPORT_SYMBOL vmlinux 0xab826b7a ip4_datagram_connect +EXPORT_SYMBOL vmlinux 0xabcaa577 free_anon_bdev +EXPORT_SYMBOL vmlinux 0xabd0c91c rtc_time_to_tm +EXPORT_SYMBOL vmlinux 0xabde4b0d __cleancache_invalidate_page +EXPORT_SYMBOL vmlinux 0xac0ba8c1 blk_iopoll_disable +EXPORT_SYMBOL vmlinux 0xac1a55be unregister_reboot_notifier +EXPORT_SYMBOL vmlinux 0xac353df0 tcf_exts_change +EXPORT_SYMBOL vmlinux 0xac36be19 __cleancache_init_fs +EXPORT_SYMBOL vmlinux 0xac3c095e sg_nents +EXPORT_SYMBOL vmlinux 0xac67ef93 page_symlink +EXPORT_SYMBOL vmlinux 0xac792f3e vlan_dev_real_dev +EXPORT_SYMBOL vmlinux 0xac8f37b2 outer_cache +EXPORT_SYMBOL vmlinux 0xac9313b8 misc_register +EXPORT_SYMBOL vmlinux 0xac9c1028 audit_log_start +EXPORT_SYMBOL vmlinux 0xaca9a8fc tty_schedule_flip +EXPORT_SYMBOL vmlinux 0xacab29b7 seq_hlist_start_percpu +EXPORT_SYMBOL vmlinux 0xacb4b6bb inet_listen +EXPORT_SYMBOL vmlinux 0xacba7bd7 of_i2c_register_devices +EXPORT_SYMBOL vmlinux 0xacc8eefd bio_flush_dcache_pages +EXPORT_SYMBOL vmlinux 0xaccabc6a in4_pton +EXPORT_SYMBOL vmlinux 0xaccb37dc i2c_smbus_read_i2c_block_data +EXPORT_SYMBOL vmlinux 0xacd7e954 netlink_ack +EXPORT_SYMBOL vmlinux 0xacf4d843 match_strdup +EXPORT_SYMBOL vmlinux 0xacf87ed1 iov_iter_copy_from_user +EXPORT_SYMBOL vmlinux 0xad0413d4 match_hex +EXPORT_SYMBOL vmlinux 0xad06f045 ihold +EXPORT_SYMBOL vmlinux 0xad0e276d snd_device_free +EXPORT_SYMBOL vmlinux 0xad2c3a2e blk_init_tags +EXPORT_SYMBOL vmlinux 0xad3066ce neigh_seq_stop +EXPORT_SYMBOL vmlinux 0xad467419 xfrm_state_lookup_byaddr +EXPORT_SYMBOL vmlinux 0xad46dec2 of_count_phandle_with_args +EXPORT_SYMBOL vmlinux 0xad5f1187 elevator_alloc +EXPORT_SYMBOL vmlinux 0xad7514bf do_SAK +EXPORT_SYMBOL vmlinux 0xad83ae63 lock_may_read +EXPORT_SYMBOL vmlinux 0xad84bef8 dm_table_event +EXPORT_SYMBOL vmlinux 0xad997901 jbd2_journal_init_inode +EXPORT_SYMBOL vmlinux 0xad9bcb31 inet_sk_rx_dst_set +EXPORT_SYMBOL vmlinux 0xada5028d proc_mkdir +EXPORT_SYMBOL vmlinux 0xadb5559d param_ops_byte +EXPORT_SYMBOL vmlinux 0xadcf74fd submit_bh +EXPORT_SYMBOL vmlinux 0xaddc1d0e set_user_nice +EXPORT_SYMBOL vmlinux 0xade88e76 snd_malloc_pages +EXPORT_SYMBOL vmlinux 0xaded77d2 sk_receive_skb +EXPORT_SYMBOL vmlinux 0xae21058f dquot_set_dqinfo +EXPORT_SYMBOL vmlinux 0xae5a5a19 set_groups +EXPORT_SYMBOL vmlinux 0xae729e59 security_req_classify_flow +EXPORT_SYMBOL vmlinux 0xae780c98 twl6040_reg_read +EXPORT_SYMBOL vmlinux 0xae875508 i2c_smbus_read_byte_data +EXPORT_SYMBOL vmlinux 0xae8bb036 fb_firmware_edid +EXPORT_SYMBOL vmlinux 0xae9bbc54 insert_inode_locked4 +EXPORT_SYMBOL vmlinux 0xaec655c7 alloc_pages_exact +EXPORT_SYMBOL vmlinux 0xaee46eaf netpoll_cleanup +EXPORT_SYMBOL vmlinux 0xaeefbeed kset_unregister +EXPORT_SYMBOL vmlinux 0xaf05b91b of_device_is_available +EXPORT_SYMBOL vmlinux 0xaf0ebbd9 sys_fillrect +EXPORT_SYMBOL vmlinux 0xaf3dd7dc scsi_logging_level +EXPORT_SYMBOL vmlinux 0xaf47539a md_done_sync +EXPORT_SYMBOL vmlinux 0xaf50e76d elf_set_personality +EXPORT_SYMBOL vmlinux 0xaf8aa518 system_rev +EXPORT_SYMBOL vmlinux 0xaf91d89f __kernel_param_lock +EXPORT_SYMBOL vmlinux 0xaf9df8aa tcf_action_exec +EXPORT_SYMBOL vmlinux 0xafd76f7d neigh_parms_release +EXPORT_SYMBOL vmlinux 0xb01e6dbf skb_find_text +EXPORT_SYMBOL vmlinux 0xb0332ee4 tty_set_operations +EXPORT_SYMBOL vmlinux 0xb04cf0fe lg_local_unlock +EXPORT_SYMBOL vmlinux 0xb05fc310 sysctl_rmem_max +EXPORT_SYMBOL vmlinux 0xb072fac6 __tty_alloc_driver +EXPORT_SYMBOL vmlinux 0xb09f7c78 ps2_begin_command +EXPORT_SYMBOL vmlinux 0xb0a0da0c rational_best_approximation +EXPORT_SYMBOL vmlinux 0xb0b847ac __bitmap_full +EXPORT_SYMBOL vmlinux 0xb0e10781 get_option +EXPORT_SYMBOL vmlinux 0xb0ffda2f blk_limits_max_hw_sectors +EXPORT_SYMBOL vmlinux 0xb1198567 dentry_unhash +EXPORT_SYMBOL vmlinux 0xb11f6901 dev_set_mac_address +EXPORT_SYMBOL vmlinux 0xb121390a probe_irq_on +EXPORT_SYMBOL vmlinux 0xb12cbacb fb_unregister_client +EXPORT_SYMBOL vmlinux 0xb156809f bio_integrity_split +EXPORT_SYMBOL vmlinux 0xb19760c3 bitmap_onto +EXPORT_SYMBOL vmlinux 0xb19bc54a devm_free_irq +EXPORT_SYMBOL vmlinux 0xb1b614b1 xfrm_policy_alloc +EXPORT_SYMBOL vmlinux 0xb1c3a01a oops_in_progress +EXPORT_SYMBOL vmlinux 0xb1cf44df fb_find_best_mode +EXPORT_SYMBOL vmlinux 0xb1d9aabd lg_local_unlock_cpu +EXPORT_SYMBOL vmlinux 0xb1da8ff7 set_blocksize +EXPORT_SYMBOL vmlinux 0xb1dbb28d genphy_suspend +EXPORT_SYMBOL vmlinux 0xb23d2ac8 mmc_start_bkops +EXPORT_SYMBOL vmlinux 0xb241aa25 snd_pcm_lib_preallocate_free_for_all +EXPORT_SYMBOL vmlinux 0xb2682405 utf8_to_utf32 +EXPORT_SYMBOL vmlinux 0xb2791d04 tty_port_destroy +EXPORT_SYMBOL vmlinux 0xb2859a4f input_free_device +EXPORT_SYMBOL vmlinux 0xb2891dce scsi_calculate_bounce_limit +EXPORT_SYMBOL vmlinux 0xb28eb68c devm_gpio_request +EXPORT_SYMBOL vmlinux 0xb292e059 vm_insert_pfn +EXPORT_SYMBOL vmlinux 0xb29f47e5 netpoll_print_options +EXPORT_SYMBOL vmlinux 0xb2b94674 __crc32c_le +EXPORT_SYMBOL vmlinux 0xb2be6e92 netdev_stats_to_stats64 +EXPORT_SYMBOL vmlinux 0xb2d307de param_ops_short +EXPORT_SYMBOL vmlinux 0xb2d48a2e queue_work_on +EXPORT_SYMBOL vmlinux 0xb2d4b1a8 arm_dma_zone_size +EXPORT_SYMBOL vmlinux 0xb2e5ae4a snd_lookup_minor_data +EXPORT_SYMBOL vmlinux 0xb2fe7480 dquot_operations +EXPORT_SYMBOL vmlinux 0xb3317859 generic_readlink +EXPORT_SYMBOL vmlinux 0xb35505b1 have_submounts +EXPORT_SYMBOL vmlinux 0xb3a8ff8b xfrm_state_walk +EXPORT_SYMBOL vmlinux 0xb3cc9ab9 invalidate_partition +EXPORT_SYMBOL vmlinux 0xb3dcb9e9 bio_phys_segments +EXPORT_SYMBOL vmlinux 0xb3dd7633 blk_end_request +EXPORT_SYMBOL vmlinux 0xb3e6bfc6 of_gpio_simple_xlate +EXPORT_SYMBOL vmlinux 0xb3f7646e kthread_should_stop +EXPORT_SYMBOL vmlinux 0xb4058e3c blk_run_queue +EXPORT_SYMBOL vmlinux 0xb412b694 xfrm_prepare_input +EXPORT_SYMBOL vmlinux 0xb4207748 dcache_readdir +EXPORT_SYMBOL vmlinux 0xb423dba1 console_blanked +EXPORT_SYMBOL vmlinux 0xb45332ca sock_tx_timestamp +EXPORT_SYMBOL vmlinux 0xb469f5a1 mark_page_accessed +EXPORT_SYMBOL vmlinux 0xb4709322 scsi_dev_info_add_list +EXPORT_SYMBOL vmlinux 0xb49a311b dquot_claim_space_nodirty +EXPORT_SYMBOL vmlinux 0xb4b4ee1c register_framebuffer +EXPORT_SYMBOL vmlinux 0xb4b94377 __nand_correct_data +EXPORT_SYMBOL vmlinux 0xb4d4a04b __dev_getfirstbyhwtype +EXPORT_SYMBOL vmlinux 0xb4e372ee generic_file_open +EXPORT_SYMBOL vmlinux 0xb4f6a64f tcf_hash_search +EXPORT_SYMBOL vmlinux 0xb522c48b __dynamic_dev_dbg +EXPORT_SYMBOL vmlinux 0xb534c001 nand_default_bbt +EXPORT_SYMBOL vmlinux 0xb53f8f66 snd_pcm_new +EXPORT_SYMBOL vmlinux 0xb54088a3 posix_acl_alloc +EXPORT_SYMBOL vmlinux 0xb54533f7 usecs_to_jiffies +EXPORT_SYMBOL vmlinux 0xb5582f6b override_creds +EXPORT_SYMBOL vmlinux 0xb558a268 journal_restart +EXPORT_SYMBOL vmlinux 0xb55f56e7 inode_dio_wait +EXPORT_SYMBOL vmlinux 0xb57343c2 frontswap_shrink +EXPORT_SYMBOL vmlinux 0xb598124f mmc_suspend_host +EXPORT_SYMBOL vmlinux 0xb5a459dc unregister_blkdev +EXPORT_SYMBOL vmlinux 0xb5a68e67 serial8250_register_8250_port +EXPORT_SYMBOL vmlinux 0xb5aa7165 dma_pool_destroy +EXPORT_SYMBOL vmlinux 0xb5c65cf4 revalidate_disk +EXPORT_SYMBOL vmlinux 0xb5ca1c46 slhc_free +EXPORT_SYMBOL vmlinux 0xb5cca751 scsi_is_target_device +EXPORT_SYMBOL vmlinux 0xb5cd1691 vexpress_config_complete +EXPORT_SYMBOL vmlinux 0xb5d9454c printk_emit +EXPORT_SYMBOL vmlinux 0xb602b977 of_match_device +EXPORT_SYMBOL vmlinux 0xb61325bd clear_page_dirty_for_io +EXPORT_SYMBOL vmlinux 0xb641549c freeze_super +EXPORT_SYMBOL vmlinux 0xb6677295 get_unmapped_area +EXPORT_SYMBOL vmlinux 0xb678366f int_sqrt +EXPORT_SYMBOL vmlinux 0xb6822a33 radix_tree_gang_lookup_tag +EXPORT_SYMBOL vmlinux 0xb6896671 crc_t10dif +EXPORT_SYMBOL vmlinux 0xb68ab7ba ata_link_printk +EXPORT_SYMBOL vmlinux 0xb68f9288 security_path_symlink +EXPORT_SYMBOL vmlinux 0xb6936ffe _bcd2bin +EXPORT_SYMBOL vmlinux 0xb6990c6d inet_csk_accept +EXPORT_SYMBOL vmlinux 0xb69cfd9c skb_copy_datagram_const_iovec +EXPORT_SYMBOL vmlinux 0xb69ed331 nf_log_register +EXPORT_SYMBOL vmlinux 0xb6a3f939 __serio_register_driver +EXPORT_SYMBOL vmlinux 0xb6a68816 find_last_bit +EXPORT_SYMBOL vmlinux 0xb6c48209 blk_queue_softirq_done +EXPORT_SYMBOL vmlinux 0xb6c5a973 scsi_show_result +EXPORT_SYMBOL vmlinux 0xb6f79a91 sg_miter_stop +EXPORT_SYMBOL vmlinux 0xb70294d7 scsi_cmd_blk_ioctl +EXPORT_SYMBOL vmlinux 0xb71fb74f _raw_read_trylock +EXPORT_SYMBOL vmlinux 0xb72833cb skb_clone +EXPORT_SYMBOL vmlinux 0xb73b4cc6 tcf_hash_check +EXPORT_SYMBOL vmlinux 0xb758b814 of_find_i2c_device_by_node +EXPORT_SYMBOL vmlinux 0xb7604c9a filp_close +EXPORT_SYMBOL vmlinux 0xb76de85a generic_cont_expand_simple +EXPORT_SYMBOL vmlinux 0xb78fe862 block_page_mkwrite +EXPORT_SYMBOL vmlinux 0xb7a5f016 dma_common_mmap +EXPORT_SYMBOL vmlinux 0xb7b61546 crc32_be +EXPORT_SYMBOL vmlinux 0xb7ba76c7 __aeabi_unwind_cpp_pr2 +EXPORT_SYMBOL vmlinux 0xb7c1cdb9 seq_open_private +EXPORT_SYMBOL vmlinux 0xb7c681d4 ptp_clock_unregister +EXPORT_SYMBOL vmlinux 0xb7d79b88 sk_stop_timer +EXPORT_SYMBOL vmlinux 0xb7eae43e set_disk_ro +EXPORT_SYMBOL vmlinux 0xb7f438cf nf_log_set +EXPORT_SYMBOL vmlinux 0xb81960ca snprintf +EXPORT_SYMBOL vmlinux 0xb81d4219 scsi_device_lookup +EXPORT_SYMBOL vmlinux 0xb834c403 __inode_permission +EXPORT_SYMBOL vmlinux 0xb835b3e4 radix_tree_prev_hole +EXPORT_SYMBOL vmlinux 0xb84753fb d_add_ci +EXPORT_SYMBOL vmlinux 0xb86291f7 ndo_dflt_bridge_getlink +EXPORT_SYMBOL vmlinux 0xb86724fe skb_kill_datagram +EXPORT_SYMBOL vmlinux 0xb874b87a __clzsi2 +EXPORT_SYMBOL vmlinux 0xb888fbd3 splice_from_pipe_feed +EXPORT_SYMBOL vmlinux 0xb89f2c03 qdisc_list_del +EXPORT_SYMBOL vmlinux 0xb8ce59b3 dev_getbyhwaddr_rcu +EXPORT_SYMBOL vmlinux 0xb8ce60e7 simple_pin_fs +EXPORT_SYMBOL vmlinux 0xb8dc268a bdget_disk +EXPORT_SYMBOL vmlinux 0xb8e877e7 kstrtouint_from_user +EXPORT_SYMBOL vmlinux 0xb905544f inet_sendpage +EXPORT_SYMBOL vmlinux 0xb90b1f18 kthread_create_on_node +EXPORT_SYMBOL vmlinux 0xb91a6d8a vfs_statfs +EXPORT_SYMBOL vmlinux 0xb9268af8 security_inode_setsecctx +EXPORT_SYMBOL vmlinux 0xb93577c4 kmem_cache_destroy +EXPORT_SYMBOL vmlinux 0xb95f98d6 _memset_io +EXPORT_SYMBOL vmlinux 0xb9638db4 snd_pcm_rate_to_rate_bit +EXPORT_SYMBOL vmlinux 0xb97db73a inet6_unregister_icmp_sender +EXPORT_SYMBOL vmlinux 0xb98a0185 rtc_tm_to_time +EXPORT_SYMBOL vmlinux 0xb9a99551 default_file_splice_read +EXPORT_SYMBOL vmlinux 0xb9acd3d9 __put_user_2 +EXPORT_SYMBOL vmlinux 0xb9e14569 n_tty_ioctl_helper +EXPORT_SYMBOL vmlinux 0xba44be8c serio_reconnect +EXPORT_SYMBOL vmlinux 0xba456b4f dm_get_mapinfo +EXPORT_SYMBOL vmlinux 0xba4624fc tcp_init_sock +EXPORT_SYMBOL vmlinux 0xba497f13 loops_per_jiffy +EXPORT_SYMBOL vmlinux 0xba59cd7c generic_write_end +EXPORT_SYMBOL vmlinux 0xba71d01c blk_queue_resize_tags +EXPORT_SYMBOL vmlinux 0xba7d262a dquot_get_dqinfo +EXPORT_SYMBOL vmlinux 0xba943810 inc_zone_page_state +EXPORT_SYMBOL vmlinux 0xba9f37e9 backlight_device_unregister +EXPORT_SYMBOL vmlinux 0xbaa397ae finish_no_open +EXPORT_SYMBOL vmlinux 0xbad3321b rt6_lookup +EXPORT_SYMBOL vmlinux 0xbaebe523 amba_find_device +EXPORT_SYMBOL vmlinux 0xbaeffa05 qid_eq +EXPORT_SYMBOL vmlinux 0xbaf9da9c __getblk +EXPORT_SYMBOL vmlinux 0xbb103629 dmam_alloc_noncoherent +EXPORT_SYMBOL vmlinux 0xbb189cad disallow_signal +EXPORT_SYMBOL vmlinux 0xbb42bc3a scsi_track_queue_full +EXPORT_SYMBOL vmlinux 0xbb4a91bf unlock_rename +EXPORT_SYMBOL vmlinux 0xbb543dd4 blkdev_get +EXPORT_SYMBOL vmlinux 0xbb5d343d xfrm_get_acqseq +EXPORT_SYMBOL vmlinux 0xbb5e376e inet_sock_destruct +EXPORT_SYMBOL vmlinux 0xbb713e6d sk_filter_release_rcu +EXPORT_SYMBOL vmlinux 0xbb72d4fe __put_user_1 +EXPORT_SYMBOL vmlinux 0xbb7ebf90 journal_unlock_updates +EXPORT_SYMBOL vmlinux 0xbb82b41c phy_register_fixup_for_id +EXPORT_SYMBOL vmlinux 0xbb8c467d qdisc_watchdog_init +EXPORT_SYMBOL vmlinux 0xbb99125c get_default_font +EXPORT_SYMBOL vmlinux 0xbbae00ab __get_user_pages +EXPORT_SYMBOL vmlinux 0xbbbc7088 bio_integrity_tag_size +EXPORT_SYMBOL vmlinux 0xbbc03aaa jbd2_journal_start_reserved +EXPORT_SYMBOL vmlinux 0xbbd54d06 vlan_ioctl_set +EXPORT_SYMBOL vmlinux 0xbbe720b6 sock_i_uid +EXPORT_SYMBOL vmlinux 0xbbf18549 amba_driver_unregister +EXPORT_SYMBOL vmlinux 0xbc10dd97 __put_user_4 +EXPORT_SYMBOL vmlinux 0xbc13c92e __insert_inode_hash +EXPORT_SYMBOL vmlinux 0xbc4c7fe8 neigh_compat_output +EXPORT_SYMBOL vmlinux 0xbc5409c1 sync_inode +EXPORT_SYMBOL vmlinux 0xbc5b6cc5 pm860x_reg_read +EXPORT_SYMBOL vmlinux 0xbcc308bb strnlen_user +EXPORT_SYMBOL vmlinux 0xbccf3685 xfrm_policy_walk +EXPORT_SYMBOL vmlinux 0xbcd8c84d scsi_put_command +EXPORT_SYMBOL vmlinux 0xbcdedba7 of_get_mac_address +EXPORT_SYMBOL vmlinux 0xbcf09d12 fb_find_mode +EXPORT_SYMBOL vmlinux 0xbd365fd3 xfrm_register_mode +EXPORT_SYMBOL vmlinux 0xbd63cbbd balance_dirty_pages_ratelimited +EXPORT_SYMBOL vmlinux 0xbd96c85a vexpress_config_write +EXPORT_SYMBOL vmlinux 0xbdabc481 backlight_device_register +EXPORT_SYMBOL vmlinux 0xbdb0424d dev_set_promiscuity +EXPORT_SYMBOL vmlinux 0xbdba9828 hdmi_audio_infoframe_pack +EXPORT_SYMBOL vmlinux 0xbdbbe68f single_release +EXPORT_SYMBOL vmlinux 0xbdf2580d __raw_readsl +EXPORT_SYMBOL vmlinux 0xbdf57d0a mount_bdev +EXPORT_SYMBOL vmlinux 0xbdf7b6d7 dev_loopback_xmit +EXPORT_SYMBOL vmlinux 0xbe055753 ppp_input_error +EXPORT_SYMBOL vmlinux 0xbe079739 __skb_gso_segment +EXPORT_SYMBOL vmlinux 0xbe0a4497 fb_show_logo +EXPORT_SYMBOL vmlinux 0xbe0e5118 nla_memcmp +EXPORT_SYMBOL vmlinux 0xbe17d8eb log_wait_commit +EXPORT_SYMBOL vmlinux 0xbe221cbe jbd2_journal_abort +EXPORT_SYMBOL vmlinux 0xbe254e92 param_set_ushort +EXPORT_SYMBOL vmlinux 0xbe2c0274 add_timer +EXPORT_SYMBOL vmlinux 0xbe708d1a inet_add_offload +EXPORT_SYMBOL vmlinux 0xbe7726e7 input_set_abs_params +EXPORT_SYMBOL vmlinux 0xbe788e2c fail_migrate_page +EXPORT_SYMBOL vmlinux 0xbe8b7f94 ip_mc_join_group +EXPORT_SYMBOL vmlinux 0xbec25473 of_parse_phandle +EXPORT_SYMBOL vmlinux 0xbecb1b37 jbd2_journal_unlock_updates +EXPORT_SYMBOL vmlinux 0xbee90f2f __kfifo_out_peek_r +EXPORT_SYMBOL vmlinux 0xbef43296 console_conditional_schedule +EXPORT_SYMBOL vmlinux 0xbefb0499 netdev_crit +EXPORT_SYMBOL vmlinux 0xbf03a1ad adjust_managed_page_count +EXPORT_SYMBOL vmlinux 0xbf1cca39 snd_card_free_when_closed +EXPORT_SYMBOL vmlinux 0xbf1ff478 __xfrm_init_state +EXPORT_SYMBOL vmlinux 0xbf7ba49e vfs_link +EXPORT_SYMBOL vmlinux 0xbf7fd2f5 schedule_timeout_killable +EXPORT_SYMBOL vmlinux 0xbf8666f2 bio_integrity_set_tag +EXPORT_SYMBOL vmlinux 0xbf8ba54a vprintk +EXPORT_SYMBOL vmlinux 0xbf9bcc8d __cap_empty_set +EXPORT_SYMBOL vmlinux 0xbfbda65e posix_acl_from_xattr +EXPORT_SYMBOL vmlinux 0xbfc407b4 param_ops_bint +EXPORT_SYMBOL vmlinux 0xbfc95463 key_put +EXPORT_SYMBOL vmlinux 0xbfdfb54f kset_register +EXPORT_SYMBOL vmlinux 0xbfee3ad5 loop_unregister_transfer +EXPORT_SYMBOL vmlinux 0xc0043db1 dev_kfree_skb_any +EXPORT_SYMBOL vmlinux 0xc0059154 scsi_host_lookup +EXPORT_SYMBOL vmlinux 0xc0110661 generic_file_remap_pages +EXPORT_SYMBOL vmlinux 0xc0253a9b __nlmsg_put +EXPORT_SYMBOL vmlinux 0xc02921be generic_file_mmap +EXPORT_SYMBOL vmlinux 0xc02cf69b clkdev_drop +EXPORT_SYMBOL vmlinux 0xc040e54c skb_realloc_headroom +EXPORT_SYMBOL vmlinux 0xc068440e __kfifo_alloc +EXPORT_SYMBOL vmlinux 0xc06924e6 napi_gro_flush +EXPORT_SYMBOL vmlinux 0xc0763484 rfkill_blocked +EXPORT_SYMBOL vmlinux 0xc0823e4c twl_i2c_write +EXPORT_SYMBOL vmlinux 0xc0a88ff3 inet6_protos +EXPORT_SYMBOL vmlinux 0xc0a98385 profile_pc +EXPORT_SYMBOL vmlinux 0xc0abf022 tcp_enter_memory_pressure +EXPORT_SYMBOL vmlinux 0xc0aedc27 scsi_nonblockable_ioctl +EXPORT_SYMBOL vmlinux 0xc0c6b548 scsi_test_unit_ready +EXPORT_SYMBOL vmlinux 0xc0dc8860 sock_common_recvmsg +EXPORT_SYMBOL vmlinux 0xc0e1e7ef do_sync_write +EXPORT_SYMBOL vmlinux 0xc0fa603d lease_get_mtime +EXPORT_SYMBOL vmlinux 0xc11d8093 iov_shorten +EXPORT_SYMBOL vmlinux 0xc12ec3a6 dns_query +EXPORT_SYMBOL vmlinux 0xc15cada3 km_policy_notify +EXPORT_SYMBOL vmlinux 0xc193062b elv_rq_merge_ok +EXPORT_SYMBOL vmlinux 0xc1c2dd09 __hw_addr_flush +EXPORT_SYMBOL vmlinux 0xc1ddeaa4 abx500_event_registers_startup_state_get +EXPORT_SYMBOL vmlinux 0xc1ea93f6 devm_clk_get +EXPORT_SYMBOL vmlinux 0xc1f5a13e skb_dequeue_tail +EXPORT_SYMBOL vmlinux 0xc20be154 ip_generic_getfrag +EXPORT_SYMBOL vmlinux 0xc21435d1 bio_unmap_user +EXPORT_SYMBOL vmlinux 0xc2158ef7 inet_frags_fini +EXPORT_SYMBOL vmlinux 0xc2165d85 __arm_iounmap +EXPORT_SYMBOL vmlinux 0xc221078a prepare_creds +EXPORT_SYMBOL vmlinux 0xc22b50ad param_set_bint +EXPORT_SYMBOL vmlinux 0xc24e50e1 xfrm4_rcv +EXPORT_SYMBOL vmlinux 0xc24fa3e5 inet6_ioctl +EXPORT_SYMBOL vmlinux 0xc256e762 __bitmap_equal +EXPORT_SYMBOL vmlinux 0xc2806ee2 skb_append_datato_frags +EXPORT_SYMBOL vmlinux 0xc29b174a register_tcf_proto_ops +EXPORT_SYMBOL vmlinux 0xc2a2cfc5 dev_printk_emit +EXPORT_SYMBOL vmlinux 0xc2d23c8b mmc_can_discard +EXPORT_SYMBOL vmlinux 0xc2d711e1 krealloc +EXPORT_SYMBOL vmlinux 0xc2e587d1 reset_devices +EXPORT_SYMBOL vmlinux 0xc2f9c045 timespec_to_jiffies +EXPORT_SYMBOL vmlinux 0xc3134ef7 nobh_write_end +EXPORT_SYMBOL vmlinux 0xc32bea8a disk_stack_limits +EXPORT_SYMBOL vmlinux 0xc3378d5f serio_unregister_driver +EXPORT_SYMBOL vmlinux 0xc34da577 audit_log_task_info +EXPORT_SYMBOL vmlinux 0xc359fb65 abort +EXPORT_SYMBOL vmlinux 0xc35d29ee __scsi_alloc_queue +EXPORT_SYMBOL vmlinux 0xc36f6044 tcp_v4_conn_request +EXPORT_SYMBOL vmlinux 0xc3812146 jbd2_journal_init_dev +EXPORT_SYMBOL vmlinux 0xc39d8b34 fsnotify_add_mark +EXPORT_SYMBOL vmlinux 0xc3a45268 ppp_output_wakeup +EXPORT_SYMBOL vmlinux 0xc3ae9d4d netif_set_real_num_rx_queues +EXPORT_SYMBOL vmlinux 0xc3caad79 tty_vhangup +EXPORT_SYMBOL vmlinux 0xc3e961fc snd_add_device_sysfs_file +EXPORT_SYMBOL vmlinux 0xc3f1b67c blk_queue_max_segment_size +EXPORT_SYMBOL vmlinux 0xc3ff9ce6 jbd2_journal_clear_features +EXPORT_SYMBOL vmlinux 0xc41f0516 node_states +EXPORT_SYMBOL vmlinux 0xc42a1ce3 kfree_skb_list +EXPORT_SYMBOL vmlinux 0xc4401950 sched_autogroup_create_attach +EXPORT_SYMBOL vmlinux 0xc453ea44 vc_resize +EXPORT_SYMBOL vmlinux 0xc4799d43 mmc_erase +EXPORT_SYMBOL vmlinux 0xc47c2ca7 kernel_sock_shutdown +EXPORT_SYMBOL vmlinux 0xc499ae1e kstrdup +EXPORT_SYMBOL vmlinux 0xc4bc3944 audit_log +EXPORT_SYMBOL vmlinux 0xc4d68b79 tcp_read_sock +EXPORT_SYMBOL vmlinux 0xc4e3f35a dmam_release_declared_memory +EXPORT_SYMBOL vmlinux 0xc52c713d generic_file_llseek +EXPORT_SYMBOL vmlinux 0xc57f2383 kernel_getsockopt +EXPORT_SYMBOL vmlinux 0xc58ba260 nf_setsockopt +EXPORT_SYMBOL vmlinux 0xc5a54a7b fd_install +EXPORT_SYMBOL vmlinux 0xc5b87e98 ip_setsockopt +EXPORT_SYMBOL vmlinux 0xc5fdef94 call_usermodehelper +EXPORT_SYMBOL vmlinux 0xc6107788 inet_rtx_syn_ack +EXPORT_SYMBOL vmlinux 0xc61528cf gnet_stats_copy_app +EXPORT_SYMBOL vmlinux 0xc631580a console_unlock +EXPORT_SYMBOL vmlinux 0xc640f414 nf_hook_slow +EXPORT_SYMBOL vmlinux 0xc645844b snd_info_create_module_entry +EXPORT_SYMBOL vmlinux 0xc6495bae textsearch_register +EXPORT_SYMBOL vmlinux 0xc665d6d7 of_parse_phandle_with_args +EXPORT_SYMBOL vmlinux 0xc6799c58 scm_detach_fds +EXPORT_SYMBOL vmlinux 0xc67e41d4 input_alloc_absinfo +EXPORT_SYMBOL vmlinux 0xc6be3985 inet_register_protosw +EXPORT_SYMBOL vmlinux 0xc6cbbc89 capable +EXPORT_SYMBOL vmlinux 0xc6da4398 __xfrm_state_destroy +EXPORT_SYMBOL vmlinux 0xc6f7fd2f mmc_gpio_get_cd +EXPORT_SYMBOL vmlinux 0xc702156b param_get_ushort +EXPORT_SYMBOL vmlinux 0xc7208c3a serial8250_resume_port +EXPORT_SYMBOL vmlinux 0xc748f823 add_to_page_cache_locked +EXPORT_SYMBOL vmlinux 0xc7534845 inet6_unregister_protosw +EXPORT_SYMBOL vmlinux 0xc781bd9f rfkill_resume_polling +EXPORT_SYMBOL vmlinux 0xc7856a3d inet6addr_notifier_call_chain +EXPORT_SYMBOL vmlinux 0xc79bcd36 dm_vcalloc +EXPORT_SYMBOL vmlinux 0xc7a4fbed rtnl_lock +EXPORT_SYMBOL vmlinux 0xc7bcbc8d add_wait_queue +EXPORT_SYMBOL vmlinux 0xc7c7ab74 free_task +EXPORT_SYMBOL vmlinux 0xc7d4d471 __blk_end_request_cur +EXPORT_SYMBOL vmlinux 0xc7ec6c27 strspn +EXPORT_SYMBOL vmlinux 0xc8276a79 nf_hooks_needed +EXPORT_SYMBOL vmlinux 0xc8339e24 string_unescape +EXPORT_SYMBOL vmlinux 0xc83467e4 sock_from_file +EXPORT_SYMBOL vmlinux 0xc83652a7 set_page_dirty +EXPORT_SYMBOL vmlinux 0xc84a0a7e seq_hlist_start_rcu +EXPORT_SYMBOL vmlinux 0xc84b87e8 end_buffer_write_sync +EXPORT_SYMBOL vmlinux 0xc84cc975 netdev_has_any_upper_dev +EXPORT_SYMBOL vmlinux 0xc89c7a30 fsnotify_get_group +EXPORT_SYMBOL vmlinux 0xc8a0aaa7 pm860x_bulk_write +EXPORT_SYMBOL vmlinux 0xc8a956c8 sock_common_getsockopt +EXPORT_SYMBOL vmlinux 0xc8b57c27 autoremove_wake_function +EXPORT_SYMBOL vmlinux 0xc8cbcdf0 inet_dgram_ops +EXPORT_SYMBOL vmlinux 0xc8e52538 vfs_path_lookup +EXPORT_SYMBOL vmlinux 0xc8f36b20 kobject_init +EXPORT_SYMBOL vmlinux 0xc903861b brioctl_set +EXPORT_SYMBOL vmlinux 0xc9104a3e nf_log_unset +EXPORT_SYMBOL vmlinux 0xc955c3a5 udplite_prot +EXPORT_SYMBOL vmlinux 0xc983721a __inet6_hash +EXPORT_SYMBOL vmlinux 0xc996d097 del_timer +EXPORT_SYMBOL vmlinux 0xc9999324 mmc_put_card +EXPORT_SYMBOL vmlinux 0xc99e2a55 twl_rev +EXPORT_SYMBOL vmlinux 0xc9bb2bf9 bio_integrity_advance +EXPORT_SYMBOL vmlinux 0xc9be3b55 inode_owner_or_capable +EXPORT_SYMBOL vmlinux 0xc9cf6349 journal_abort +EXPORT_SYMBOL vmlinux 0xc9dd0fd1 register_console +EXPORT_SYMBOL vmlinux 0xc9e13e7c km_report +EXPORT_SYMBOL vmlinux 0xc9ea7deb journal_check_available_features +EXPORT_SYMBOL vmlinux 0xc9ec1999 sock_common_setsockopt +EXPORT_SYMBOL vmlinux 0xc9ee18cb filp_open +EXPORT_SYMBOL vmlinux 0xca46b33e mmc_get_card +EXPORT_SYMBOL vmlinux 0xca5967e3 vm_stat +EXPORT_SYMBOL vmlinux 0xca5dbc50 scsi_print_sense_hdr +EXPORT_SYMBOL vmlinux 0xca687237 padata_set_cpumask +EXPORT_SYMBOL vmlinux 0xca9360b5 rb_next +EXPORT_SYMBOL vmlinux 0xcab326f9 inet_del_offload +EXPORT_SYMBOL vmlinux 0xcacdb0f5 journal_create +EXPORT_SYMBOL vmlinux 0xcae7477f netif_skb_features +EXPORT_SYMBOL vmlinux 0xcae86324 simple_write_begin +EXPORT_SYMBOL vmlinux 0xcb0288ea ledtrig_cpu +EXPORT_SYMBOL vmlinux 0xcb07be35 phy_attach +EXPORT_SYMBOL vmlinux 0xcb0e877e nonseekable_open +EXPORT_SYMBOL vmlinux 0xcb2557ea kobject_add +EXPORT_SYMBOL vmlinux 0xcb466063 wait_for_completion_killable_timeout +EXPORT_SYMBOL vmlinux 0xcb46d416 padata_add_cpu +EXPORT_SYMBOL vmlinux 0xcb737564 mmc_hw_reset_check +EXPORT_SYMBOL vmlinux 0xcb915638 netdev_warn +EXPORT_SYMBOL vmlinux 0xcbb58bb2 snd_timer_start +EXPORT_SYMBOL vmlinux 0xcbbf0a6f audit_log_task_context +EXPORT_SYMBOL vmlinux 0xcbc71819 mmc_can_reset +EXPORT_SYMBOL vmlinux 0xcbc9557f unregister_sysrq_key +EXPORT_SYMBOL vmlinux 0xcbefb957 net_dma_find_channel +EXPORT_SYMBOL vmlinux 0xcbf79e31 scsi_mode_sense +EXPORT_SYMBOL vmlinux 0xcc122978 mb_cache_entry_free +EXPORT_SYMBOL vmlinux 0xcc248d26 serial8250_suspend_port +EXPORT_SYMBOL vmlinux 0xcc37f55c blk_limits_io_opt +EXPORT_SYMBOL vmlinux 0xcc451faa simple_unlink +EXPORT_SYMBOL vmlinux 0xcc489357 serial8250_set_isa_configurator +EXPORT_SYMBOL vmlinux 0xcc4b84da of_find_node_by_type +EXPORT_SYMBOL vmlinux 0xcc4baa38 devm_backlight_device_register +EXPORT_SYMBOL vmlinux 0xcc5005fe msleep_interruptible +EXPORT_SYMBOL vmlinux 0xcc747ba6 kernel_sendmsg +EXPORT_SYMBOL vmlinux 0xcc7fa952 local_bh_enable_ip +EXPORT_SYMBOL vmlinux 0xcc87f33a path_put +EXPORT_SYMBOL vmlinux 0xccb87964 textsearch_unregister +EXPORT_SYMBOL vmlinux 0xccc21f5e input_get_new_minor +EXPORT_SYMBOL vmlinux 0xcccf7ae6 blk_queue_dma_pad +EXPORT_SYMBOL vmlinux 0xccf277bd set_bdi_congested +EXPORT_SYMBOL vmlinux 0xccfcfbe6 nf_ct_attach +EXPORT_SYMBOL vmlinux 0xcd279169 nla_find +EXPORT_SYMBOL vmlinux 0xcd30b95a tmio_core_mmc_clk_div +EXPORT_SYMBOL vmlinux 0xcd359c88 dev_mc_flush +EXPORT_SYMBOL vmlinux 0xcd430dcc softnet_data +EXPORT_SYMBOL vmlinux 0xcd63c845 __aeabi_lasr +EXPORT_SYMBOL vmlinux 0xcd6f705f tty_chars_in_buffer +EXPORT_SYMBOL vmlinux 0xcd75cb62 mb_cache_entry_insert +EXPORT_SYMBOL vmlinux 0xcd79c1f9 scsi_register +EXPORT_SYMBOL vmlinux 0xcda6c403 mmc_release_host +EXPORT_SYMBOL vmlinux 0xcdbe489d i2c_smbus_write_byte_data +EXPORT_SYMBOL vmlinux 0xcdc39c9e security_ismaclabel +EXPORT_SYMBOL vmlinux 0xcde172ac radix_tree_gang_lookup_tag_slot +EXPORT_SYMBOL vmlinux 0xcde975b2 skb_store_bits +EXPORT_SYMBOL vmlinux 0xce202c67 tty_lock_pair +EXPORT_SYMBOL vmlinux 0xce2840e7 irq_set_irq_wake +EXPORT_SYMBOL vmlinux 0xce384cec xfrm_cfg_mutex +EXPORT_SYMBOL vmlinux 0xce3ca308 copy_from_user_toio +EXPORT_SYMBOL vmlinux 0xce3ce9a4 scsi_report_bus_reset +EXPORT_SYMBOL vmlinux 0xce4bd608 may_umount_tree +EXPORT_SYMBOL vmlinux 0xce5ac24f zlib_inflate_workspacesize +EXPORT_SYMBOL vmlinux 0xce6877cb dquot_commit +EXPORT_SYMBOL vmlinux 0xce743254 inet_addr_type +EXPORT_SYMBOL vmlinux 0xce7866f5 __cleancache_put_page +EXPORT_SYMBOL vmlinux 0xce8613f4 input_close_device +EXPORT_SYMBOL vmlinux 0xce9ced7f check_disk_change +EXPORT_SYMBOL vmlinux 0xceb284bc simple_rmdir +EXPORT_SYMBOL vmlinux 0xcebb3bb6 skb_queue_tail +EXPORT_SYMBOL vmlinux 0xcec1b3df phy_init_eee +EXPORT_SYMBOL vmlinux 0xcecabc23 keyring_alloc +EXPORT_SYMBOL vmlinux 0xcece7f90 snd_timer_resolution +EXPORT_SYMBOL vmlinux 0xcede135d jbd2_journal_get_undo_access +EXPORT_SYMBOL vmlinux 0xcee78ed4 tty_unregister_driver +EXPORT_SYMBOL vmlinux 0xcef1068c __scsi_iterate_devices +EXPORT_SYMBOL vmlinux 0xcef51982 kstrtou16 +EXPORT_SYMBOL vmlinux 0xcefcd99a serial8250_unregister_port +EXPORT_SYMBOL vmlinux 0xcf1f455a inet_getname +EXPORT_SYMBOL vmlinux 0xcf388a27 mmc_try_claim_host +EXPORT_SYMBOL vmlinux 0xcf50e91c __skb_warn_lro_forwarding +EXPORT_SYMBOL vmlinux 0xcf6699da register_filesystem +EXPORT_SYMBOL vmlinux 0xcf88625f mempool_create_node +EXPORT_SYMBOL vmlinux 0xcf9cb895 tcp_disconnect +EXPORT_SYMBOL vmlinux 0xcf9dd702 dev_activate +EXPORT_SYMBOL vmlinux 0xcf9e5085 blk_end_request_all +EXPORT_SYMBOL vmlinux 0xcfc8cfaf abx500_register_ops +EXPORT_SYMBOL vmlinux 0xcff2c021 d_find_any_alias +EXPORT_SYMBOL vmlinux 0xcff6b676 _raw_spin_trylock_bh +EXPORT_SYMBOL vmlinux 0xcff7e857 sk_stream_wait_close +EXPORT_SYMBOL vmlinux 0xd0181f4f __bitmap_xor +EXPORT_SYMBOL vmlinux 0xd043cbfd sk_release_kernel +EXPORT_SYMBOL vmlinux 0xd05ac9e8 cdrom_mode_select +EXPORT_SYMBOL vmlinux 0xd0720a17 on_each_cpu_cond +EXPORT_SYMBOL vmlinux 0xd076a6b8 writeback_inodes_sb +EXPORT_SYMBOL vmlinux 0xd0969031 sg_copy_from_buffer +EXPORT_SYMBOL vmlinux 0xd0a91bab skip_spaces +EXPORT_SYMBOL vmlinux 0xd0b37967 tcf_em_tree_validate +EXPORT_SYMBOL vmlinux 0xd0c025e0 netpoll_send_udp +EXPORT_SYMBOL vmlinux 0xd0c0b8b3 mnt_set_expiry +EXPORT_SYMBOL vmlinux 0xd0d42c42 mod_timer_pending +EXPORT_SYMBOL vmlinux 0xd0db566c inode_init_owner +EXPORT_SYMBOL vmlinux 0xd0dc8887 generic_file_buffered_write +EXPORT_SYMBOL vmlinux 0xd0e43207 usb_nop_xceiv_register +EXPORT_SYMBOL vmlinux 0xd0ea8da6 tc_classify +EXPORT_SYMBOL vmlinux 0xd0ee38b8 schedule_timeout_uninterruptible +EXPORT_SYMBOL vmlinux 0xd0f1864d seq_release +EXPORT_SYMBOL vmlinux 0xd0f36f0d audit_log_format +EXPORT_SYMBOL vmlinux 0xd0fb7cd4 __tasklet_hi_schedule_first +EXPORT_SYMBOL vmlinux 0xd1011cfb xfrm_policy_delete +EXPORT_SYMBOL vmlinux 0xd102d280 secpath_dup +EXPORT_SYMBOL vmlinux 0xd112211a generic_block_fiemap +EXPORT_SYMBOL vmlinux 0xd11c0dc1 __kernel_param_unlock +EXPORT_SYMBOL vmlinux 0xd122186a pagevec_lookup +EXPORT_SYMBOL vmlinux 0xd1816f32 frontswap_writethrough +EXPORT_SYMBOL vmlinux 0xd196c9be kstrtos16_from_user +EXPORT_SYMBOL vmlinux 0xd19f9954 sockfd_lookup +EXPORT_SYMBOL vmlinux 0xd1a171f8 invalidate_bdev +EXPORT_SYMBOL vmlinux 0xd1a51551 blkdev_issue_zeroout +EXPORT_SYMBOL vmlinux 0xd1b2b543 snd_pcm_hw_rule_noresample +EXPORT_SYMBOL vmlinux 0xd1ec610f udp_proc_register +EXPORT_SYMBOL vmlinux 0xd1fe4882 genl_unregister_mc_group +EXPORT_SYMBOL vmlinux 0xd1ff3edc ps2_cmd_aborted +EXPORT_SYMBOL vmlinux 0xd203b49c ppp_channel_index +EXPORT_SYMBOL vmlinux 0xd220cf8a jiffies_to_timespec +EXPORT_SYMBOL vmlinux 0xd22cc9d2 iov_iter_copy_from_user_atomic +EXPORT_SYMBOL vmlinux 0xd23334e2 journal_load +EXPORT_SYMBOL vmlinux 0xd24cc314 dm_get_device +EXPORT_SYMBOL vmlinux 0xd251d7b0 security_socket_getpeersec_dgram +EXPORT_SYMBOL vmlinux 0xd2552f29 __sg_alloc_table +EXPORT_SYMBOL vmlinux 0xd2555f19 jiffies_64_to_clock_t +EXPORT_SYMBOL vmlinux 0xd25d4f74 console_blank_hook +EXPORT_SYMBOL vmlinux 0xd27b25dd blk_check_plugged +EXPORT_SYMBOL vmlinux 0xd2af138b reservation_ww_class +EXPORT_SYMBOL vmlinux 0xd2b60718 dquot_initialize +EXPORT_SYMBOL vmlinux 0xd2c0ddaf scsi_init_io +EXPORT_SYMBOL vmlinux 0xd2da1048 register_netdevice_notifier +EXPORT_SYMBOL vmlinux 0xd2fee009 page_readlink +EXPORT_SYMBOL vmlinux 0xd316dbfe phy_scan_fixups +EXPORT_SYMBOL vmlinux 0xd31ccb06 of_machine_is_compatible +EXPORT_SYMBOL vmlinux 0xd326ecb9 ps2_end_command +EXPORT_SYMBOL vmlinux 0xd3312115 input_set_capability +EXPORT_SYMBOL vmlinux 0xd3367469 skb_copy_bits +EXPORT_SYMBOL vmlinux 0xd35c50a3 skb_checksum +EXPORT_SYMBOL vmlinux 0xd35cc844 zero_fill_bio +EXPORT_SYMBOL vmlinux 0xd37fb78d pps_event +EXPORT_SYMBOL vmlinux 0xd3c1b7b7 __wait_on_buffer +EXPORT_SYMBOL vmlinux 0xd3d3a477 posix_acl_init +EXPORT_SYMBOL vmlinux 0xd3d82d39 elv_rb_add +EXPORT_SYMBOL vmlinux 0xd3dbfbc4 _find_first_zero_bit_le +EXPORT_SYMBOL vmlinux 0xd3dcab0b flex_array_alloc +EXPORT_SYMBOL vmlinux 0xd3e6f60d cpu_possible_mask +EXPORT_SYMBOL vmlinux 0xd3f635bc snd_dma_alloc_pages_fallback +EXPORT_SYMBOL vmlinux 0xd3fd0883 eth_type_trans +EXPORT_SYMBOL vmlinux 0xd408afd1 dquot_destroy +EXPORT_SYMBOL vmlinux 0xd41fe818 _raw_read_unlock_irqrestore +EXPORT_SYMBOL vmlinux 0xd43e82e1 dquot_quotactl_ops +EXPORT_SYMBOL vmlinux 0xd456425d kobject_set_name +EXPORT_SYMBOL vmlinux 0xd4669fad complete +EXPORT_SYMBOL vmlinux 0xd4829cb6 journal_release_buffer +EXPORT_SYMBOL vmlinux 0xd483cd84 ip_mc_inc_group +EXPORT_SYMBOL vmlinux 0xd48ce26e __sync_dirty_buffer +EXPORT_SYMBOL vmlinux 0xd497768a skb_copy_datagram_from_iovec +EXPORT_SYMBOL vmlinux 0xd4be506d nand_bch_init +EXPORT_SYMBOL vmlinux 0xd4dec418 inet_csk_reset_keepalive_timer +EXPORT_SYMBOL vmlinux 0xd4e46c08 dentry_update_name_case +EXPORT_SYMBOL vmlinux 0xd4f22fe3 gnet_stats_copy_queue +EXPORT_SYMBOL vmlinux 0xd51e393d blk_rq_map_kern +EXPORT_SYMBOL vmlinux 0xd51f6b29 generic_delete_inode +EXPORT_SYMBOL vmlinux 0xd54a70a2 from_kqid_munged +EXPORT_SYMBOL vmlinux 0xd56e82ae mfd_cell_enable +EXPORT_SYMBOL vmlinux 0xd573e5df ppp_unregister_channel +EXPORT_SYMBOL vmlinux 0xd57e8999 dev_deactivate +EXPORT_SYMBOL vmlinux 0xd5aa9455 security_path_unlink +EXPORT_SYMBOL vmlinux 0xd5ac7000 i2c_del_adapter +EXPORT_SYMBOL vmlinux 0xd5b1376d register_shrinker +EXPORT_SYMBOL vmlinux 0xd5c4d041 locks_copy_lock +EXPORT_SYMBOL vmlinux 0xd5c5e662 __sk_dst_check +EXPORT_SYMBOL vmlinux 0xd5c5ff75 inet_frags_init_net +EXPORT_SYMBOL vmlinux 0xd5d47660 blk_rq_map_sg +EXPORT_SYMBOL vmlinux 0xd5d74d3b bdi_register +EXPORT_SYMBOL vmlinux 0xd5e178cd __qdisc_calculate_pkt_len +EXPORT_SYMBOL vmlinux 0xd5edd2ff dquot_get_dqblk +EXPORT_SYMBOL vmlinux 0xd5f2172f del_timer_sync +EXPORT_SYMBOL vmlinux 0xd6117bca map_destroy +EXPORT_SYMBOL vmlinux 0xd61347c6 register_sysctl +EXPORT_SYMBOL vmlinux 0xd616683a ecryptfs_fill_auth_tok +EXPORT_SYMBOL vmlinux 0xd61ac0f8 input_register_device +EXPORT_SYMBOL vmlinux 0xd627480b strncat +EXPORT_SYMBOL vmlinux 0xd62c833f schedule_timeout +EXPORT_SYMBOL vmlinux 0xd636c540 dmam_declare_coherent_memory +EXPORT_SYMBOL vmlinux 0xd6370563 scsi_target_quiesce +EXPORT_SYMBOL vmlinux 0xd6464a1a sys_imageblit +EXPORT_SYMBOL vmlinux 0xd648e564 fb_match_mode +EXPORT_SYMBOL vmlinux 0xd67512f5 snd_jack_new +EXPORT_SYMBOL vmlinux 0xd67c7ce0 end_buffer_async_write +EXPORT_SYMBOL vmlinux 0xd688716b dm_kcopyd_client_create +EXPORT_SYMBOL vmlinux 0xd69e649f cdev_del +EXPORT_SYMBOL vmlinux 0xd6a37c91 km_query +EXPORT_SYMBOL vmlinux 0xd6aef25e dm_unregister_target +EXPORT_SYMBOL vmlinux 0xd6c107e3 inet6_bind +EXPORT_SYMBOL vmlinux 0xd6ee688f vmalloc +EXPORT_SYMBOL vmlinux 0xd7321c6a gen_pool_add_virt +EXPORT_SYMBOL vmlinux 0xd7345256 pm8606_osc_enable +EXPORT_SYMBOL vmlinux 0xd74289f9 __percpu_counter_add +EXPORT_SYMBOL vmlinux 0xd74c4a03 read_cache_page_async +EXPORT_SYMBOL vmlinux 0xd75c79df smp_call_function +EXPORT_SYMBOL vmlinux 0xd77a5aa5 __bitmap_and +EXPORT_SYMBOL vmlinux 0xd77ff1ca d_move +EXPORT_SYMBOL vmlinux 0xd78025ae gen_pool_create +EXPORT_SYMBOL vmlinux 0xd7848367 sound_class +EXPORT_SYMBOL vmlinux 0xd79b5a02 allow_signal +EXPORT_SYMBOL vmlinux 0xd7ac63a7 init_special_inode +EXPORT_SYMBOL vmlinux 0xd7ae2361 vexpress_config_bridge_unregister +EXPORT_SYMBOL vmlinux 0xd7b4599b __idr_get_new_above +EXPORT_SYMBOL vmlinux 0xd7b7c298 ata_std_end_eh +EXPORT_SYMBOL vmlinux 0xd7dcfa91 dev_get_flags +EXPORT_SYMBOL vmlinux 0xd7e56a4e simple_strtoll +EXPORT_SYMBOL vmlinux 0xd7ea7094 nf_unregister_queue_handler +EXPORT_SYMBOL vmlinux 0xd7ecacc2 __ww_mutex_lock +EXPORT_SYMBOL vmlinux 0xd7fd079e create_syslog_header +EXPORT_SYMBOL vmlinux 0xd85cd67e __wake_up +EXPORT_SYMBOL vmlinux 0xd891f8d4 xfrm_policy_unregister_afinfo +EXPORT_SYMBOL vmlinux 0xd8b54fab dquot_mark_dquot_dirty +EXPORT_SYMBOL vmlinux 0xd8b6d287 tcp_setsockopt +EXPORT_SYMBOL vmlinux 0xd8bda80d lock_may_write +EXPORT_SYMBOL vmlinux 0xd8cdce09 scsicam_bios_param +EXPORT_SYMBOL vmlinux 0xd8d46fbb sk_page_frag_refill +EXPORT_SYMBOL vmlinux 0xd8e484f0 register_chrdev_region +EXPORT_SYMBOL vmlinux 0xd8ee9562 scsi_register_driver +EXPORT_SYMBOL vmlinux 0xd8f52581 proto_register +EXPORT_SYMBOL vmlinux 0xd923d4e3 mount_subtree +EXPORT_SYMBOL vmlinux 0xd9292f9c __invalidate_device +EXPORT_SYMBOL vmlinux 0xd92afabe bitmap_clear +EXPORT_SYMBOL vmlinux 0xd96979b6 key_revoke +EXPORT_SYMBOL vmlinux 0xd9742602 ip_route_input_noref +EXPORT_SYMBOL vmlinux 0xd985dc99 mempool_free_pages +EXPORT_SYMBOL vmlinux 0xd9871859 neigh_connected_output +EXPORT_SYMBOL vmlinux 0xd9a9bb30 getname +EXPORT_SYMBOL vmlinux 0xd9c2d7e1 generic_file_splice_write +EXPORT_SYMBOL vmlinux 0xd9ce8f0c strnlen +EXPORT_SYMBOL vmlinux 0xd9e61fcb qid_valid +EXPORT_SYMBOL vmlinux 0xda3b3cbf block_is_partially_uptodate +EXPORT_SYMBOL vmlinux 0xda3d10a8 security_tun_dev_open +EXPORT_SYMBOL vmlinux 0xda4b5134 unregister_exec_domain +EXPORT_SYMBOL vmlinux 0xda551f48 jbd2_journal_dirty_metadata +EXPORT_SYMBOL vmlinux 0xda757554 __set_page_dirty_nobuffers +EXPORT_SYMBOL vmlinux 0xda7ca6cb fb_mode_is_equal +EXPORT_SYMBOL vmlinux 0xda8af7ad fb_find_nearest_mode +EXPORT_SYMBOL vmlinux 0xda96ef4b eth_rebuild_header +EXPORT_SYMBOL vmlinux 0xdaa16b82 of_clk_get +EXPORT_SYMBOL vmlinux 0xdaa57ec3 totalhigh_pages +EXPORT_SYMBOL vmlinux 0xdaafc807 tcp_sockets_allocated +EXPORT_SYMBOL vmlinux 0xdab9d2e7 ip_getsockopt +EXPORT_SYMBOL vmlinux 0xdac44c9c tcp_valid_rtt_meas +EXPORT_SYMBOL vmlinux 0xdafb0ecd lro_flush_all +EXPORT_SYMBOL vmlinux 0xdb2c541b devfreq_monitor_suspend +EXPORT_SYMBOL vmlinux 0xdb3ab32c kill_pid +EXPORT_SYMBOL vmlinux 0xdb42d2ad truncate_inode_pages_range +EXPORT_SYMBOL vmlinux 0xdb51ac96 inode_claim_rsv_space +EXPORT_SYMBOL vmlinux 0xdb68bbad rfkill_destroy +EXPORT_SYMBOL vmlinux 0xdb760f52 __kfifo_free +EXPORT_SYMBOL vmlinux 0xdb77d055 mark_buffer_async_write +EXPORT_SYMBOL vmlinux 0xdb85c217 tcp_make_synack +EXPORT_SYMBOL vmlinux 0xdb8c176f sock_no_sendpage +EXPORT_SYMBOL vmlinux 0xdba642df registered_fb +EXPORT_SYMBOL vmlinux 0xdbcc341b blk_alloc_queue +EXPORT_SYMBOL vmlinux 0xdbcd416e sysctl_ip_nonlocal_bind +EXPORT_SYMBOL vmlinux 0xdc01240a tty_check_change +EXPORT_SYMBOL vmlinux 0xdc035702 no_llseek +EXPORT_SYMBOL vmlinux 0xdc047fc4 scsi_dev_info_list_add_keyed +EXPORT_SYMBOL vmlinux 0xdc2c44f5 d_splice_alias +EXPORT_SYMBOL vmlinux 0xdc3fcbc9 __sw_hweight8 +EXPORT_SYMBOL vmlinux 0xdc438da7 seq_put_decimal_ll +EXPORT_SYMBOL vmlinux 0xdc6cbccc mapping_tagged +EXPORT_SYMBOL vmlinux 0xdc6d41cf vfs_fstatat +EXPORT_SYMBOL vmlinux 0xdc8df9ba netdev_has_upper_dev +EXPORT_SYMBOL vmlinux 0xdc9d3dd4 udp_ioctl +EXPORT_SYMBOL vmlinux 0xdcac7248 read_cache_page_gfp +EXPORT_SYMBOL vmlinux 0xdcae7c49 inet_proto_csum_replace16 +EXPORT_SYMBOL vmlinux 0xdcb0349b sys_close +EXPORT_SYMBOL vmlinux 0xdcd1f7cd tcp_v4_send_check +EXPORT_SYMBOL vmlinux 0xdd0a2ba2 strlcat +EXPORT_SYMBOL vmlinux 0xdd27fa87 memchr +EXPORT_SYMBOL vmlinux 0xdd38b888 twl6040_get_vibralr_status +EXPORT_SYMBOL vmlinux 0xdd3916ac _raw_spin_unlock_bh +EXPORT_SYMBOL vmlinux 0xdd4756db snd_dma_get_reserved_buf +EXPORT_SYMBOL vmlinux 0xdd4a5569 param_get_byte +EXPORT_SYMBOL vmlinux 0xdd604356 dev_driver_string +EXPORT_SYMBOL vmlinux 0xddaa9898 inet_select_addr +EXPORT_SYMBOL vmlinux 0xddc0bbdc devfreq_monitor_stop +EXPORT_SYMBOL vmlinux 0xdde401fc follow_down_one +EXPORT_SYMBOL vmlinux 0xdde77e54 setattr_copy +EXPORT_SYMBOL vmlinux 0xddf2b3a3 blk_integrity_is_initialized +EXPORT_SYMBOL vmlinux 0xde295fbf __vexpress_config_func_get +EXPORT_SYMBOL vmlinux 0xde3d28b7 bitmap_unplug +EXPORT_SYMBOL vmlinux 0xde52eca6 kern_path +EXPORT_SYMBOL vmlinux 0xde6c108f fsnotify_init_mark +EXPORT_SYMBOL vmlinux 0xde7713ca tty_unthrottle +EXPORT_SYMBOL vmlinux 0xde84f435 get_phy_device +EXPORT_SYMBOL vmlinux 0xde9360ba totalram_pages +EXPORT_SYMBOL vmlinux 0xde9d73ca journal_stop +EXPORT_SYMBOL vmlinux 0xdeb5831f commit_creds +EXPORT_SYMBOL vmlinux 0xdec44e82 input_mt_sync_frame +EXPORT_SYMBOL vmlinux 0xdec788f9 nf_register_sockopt +EXPORT_SYMBOL vmlinux 0xdef1e6c1 tcf_action_dump_1 +EXPORT_SYMBOL vmlinux 0xdef54e39 nf_unregister_sockopt +EXPORT_SYMBOL vmlinux 0xdf0b4e3c dev_add_offload +EXPORT_SYMBOL vmlinux 0xdf0b6eae max8925_bulk_write +EXPORT_SYMBOL vmlinux 0xdf0e604f bdi_register_dev +EXPORT_SYMBOL vmlinux 0xdf2c2742 rb_last +EXPORT_SYMBOL vmlinux 0xdf401846 idr_remove +EXPORT_SYMBOL vmlinux 0xdf48a0eb flex_array_put +EXPORT_SYMBOL vmlinux 0xdf54a8f7 netlink_unregister_notifier +EXPORT_SYMBOL vmlinux 0xdf60cc27 __print_symbol +EXPORT_SYMBOL vmlinux 0xdf64c51a neigh_parms_alloc +EXPORT_SYMBOL vmlinux 0xdf84bf8f inet_frag_maybe_warn_overflow +EXPORT_SYMBOL vmlinux 0xdf929370 fs_overflowgid +EXPORT_SYMBOL vmlinux 0xdfb01a80 cpu_v7_dcache_clean_area +EXPORT_SYMBOL vmlinux 0xdfb20a3b devfreq_monitor_resume +EXPORT_SYMBOL vmlinux 0xdfc5169b slhc_init +EXPORT_SYMBOL vmlinux 0xdfcaafe2 ilookup5 +EXPORT_SYMBOL vmlinux 0xdfd3b4d8 skb_flow_dissect +EXPORT_SYMBOL vmlinux 0xe00d3731 nf_register_hooks +EXPORT_SYMBOL vmlinux 0xe0218865 phy_driver_register +EXPORT_SYMBOL vmlinux 0xe02c353b dma_async_memcpy_buf_to_buf +EXPORT_SYMBOL vmlinux 0xe03d742a ipv6_chk_custom_prefix +EXPORT_SYMBOL vmlinux 0xe04f7caa dm_read_arg_group +EXPORT_SYMBOL vmlinux 0xe05e46a1 uart_add_one_port +EXPORT_SYMBOL vmlinux 0xe06141e9 security_sk_clone +EXPORT_SYMBOL vmlinux 0xe075d6eb iter_div_u64_rem +EXPORT_SYMBOL vmlinux 0xe07693e5 follow_up +EXPORT_SYMBOL vmlinux 0xe07fbafd mpage_writepage +EXPORT_SYMBOL vmlinux 0xe0b13336 argv_free +EXPORT_SYMBOL vmlinux 0xe0b446b7 path_is_under +EXPORT_SYMBOL vmlinux 0xe0bef318 icst_hz_to_vco +EXPORT_SYMBOL vmlinux 0xe0ca8874 sock_no_socketpair +EXPORT_SYMBOL vmlinux 0xe0e09e74 phy_disconnect +EXPORT_SYMBOL vmlinux 0xe0e3bb42 snd_pcm_lib_write +EXPORT_SYMBOL vmlinux 0xe0f1ab58 d_drop +EXPORT_SYMBOL vmlinux 0xe0f99a2f ida_pre_get +EXPORT_SYMBOL vmlinux 0xe1093f8b xfrm4_rcv_encap +EXPORT_SYMBOL vmlinux 0xe113bbbc csum_partial +EXPORT_SYMBOL vmlinux 0xe11f3cbc _raw_read_lock_bh +EXPORT_SYMBOL vmlinux 0xe127fb18 down_killable +EXPORT_SYMBOL vmlinux 0xe1342209 add_disk +EXPORT_SYMBOL vmlinux 0xe1357cf3 amba_device_register +EXPORT_SYMBOL vmlinux 0xe1761617 security_inet_conn_request +EXPORT_SYMBOL vmlinux 0xe17bdead register_key_type +EXPORT_SYMBOL vmlinux 0xe184a6f8 dquot_disable +EXPORT_SYMBOL vmlinux 0xe1d6ea05 dec_zone_page_state +EXPORT_SYMBOL vmlinux 0xe200d2d5 param_get_uint +EXPORT_SYMBOL vmlinux 0xe200f872 secure_dccpv6_sequence_number +EXPORT_SYMBOL vmlinux 0xe2113b50 sdev_enable_disk_events +EXPORT_SYMBOL vmlinux 0xe21b66f1 fb_get_buffer_offset +EXPORT_SYMBOL vmlinux 0xe234b1bb send_sig_info +EXPORT_SYMBOL vmlinux 0xe23ae481 blk_iopoll_complete +EXPORT_SYMBOL vmlinux 0xe24d3a97 jiffies_64 +EXPORT_SYMBOL vmlinux 0xe271f162 call_usermodehelper_exec +EXPORT_SYMBOL vmlinux 0xe29e1d0e out_of_line_wait_on_atomic_t +EXPORT_SYMBOL vmlinux 0xe2a1197c security_path_rmdir +EXPORT_SYMBOL vmlinux 0xe2d5255a strcmp +EXPORT_SYMBOL vmlinux 0xe2e8065e memdup_user +EXPORT_SYMBOL vmlinux 0xe2e94c4e block_write_begin +EXPORT_SYMBOL vmlinux 0xe2ec2bda snd_dma_free_pages +EXPORT_SYMBOL vmlinux 0xe2fae716 kmemdup +EXPORT_SYMBOL vmlinux 0xe35c5285 of_find_node_by_phandle +EXPORT_SYMBOL vmlinux 0xe375cdb6 mdiobus_alloc_size +EXPORT_SYMBOL vmlinux 0xe3a9f4df jbd2_complete_transaction +EXPORT_SYMBOL vmlinux 0xe3b6c595 save_mount_options +EXPORT_SYMBOL vmlinux 0xe3d6f284 fb_find_mode_cvt +EXPORT_SYMBOL vmlinux 0xe3d77527 mmc_wait_for_app_cmd +EXPORT_SYMBOL vmlinux 0xe3e8516c blk_queue_update_dma_alignment +EXPORT_SYMBOL vmlinux 0xe4054d9a tcp_child_process +EXPORT_SYMBOL vmlinux 0xe419485e pneigh_enqueue +EXPORT_SYMBOL vmlinux 0xe4307684 tcf_exts_dump +EXPORT_SYMBOL vmlinux 0xe4324dcf jbd2_journal_update_sb_errno +EXPORT_SYMBOL vmlinux 0xe43274bc proc_dointvec +EXPORT_SYMBOL vmlinux 0xe437cd20 input_handler_for_each_handle +EXPORT_SYMBOL vmlinux 0xe437d301 blk_sync_queue +EXPORT_SYMBOL vmlinux 0xe43980df skb_copy_expand +EXPORT_SYMBOL vmlinux 0xe44bae1e rfkill_alloc +EXPORT_SYMBOL vmlinux 0xe4613d72 scsi_prep_state_check +EXPORT_SYMBOL vmlinux 0xe484ab99 unregister_nls +EXPORT_SYMBOL vmlinux 0xe488ffcc d_lookup +EXPORT_SYMBOL vmlinux 0xe4be71ce sock_kfree_s +EXPORT_SYMBOL vmlinux 0xe4c80097 cacheid +EXPORT_SYMBOL vmlinux 0xe4d48ff1 __kfifo_dma_in_prepare_r +EXPORT_SYMBOL vmlinux 0xe4e0df6e dma_common_get_sgtable +EXPORT_SYMBOL vmlinux 0xe5122890 flow_cache_genid +EXPORT_SYMBOL vmlinux 0xe523ad75 synchronize_irq +EXPORT_SYMBOL vmlinux 0xe52ec164 journal_get_write_access +EXPORT_SYMBOL vmlinux 0xe53b8070 blk_queue_stack_limits +EXPORT_SYMBOL vmlinux 0xe53d1faa of_translate_dma_address +EXPORT_SYMBOL vmlinux 0xe550987e xfrm_lookup +EXPORT_SYMBOL vmlinux 0xe55d203e snd_pcm_lib_writev +EXPORT_SYMBOL vmlinux 0xe565364d devm_ioremap +EXPORT_SYMBOL vmlinux 0xe56a9336 snd_pcm_format_width +EXPORT_SYMBOL vmlinux 0xe57878a1 in6_pton +EXPORT_SYMBOL vmlinux 0xe5867808 dlci_ioctl_set +EXPORT_SYMBOL vmlinux 0xe59a9dd1 generic_pipe_buf_get +EXPORT_SYMBOL vmlinux 0xe5a0b4b1 i2c_smbus_read_byte +EXPORT_SYMBOL vmlinux 0xe5c78a99 do_blank_screen +EXPORT_SYMBOL vmlinux 0xe5cd0ca2 mmc_detect_card_removed +EXPORT_SYMBOL vmlinux 0xe5d95985 param_ops_ulong +EXPORT_SYMBOL vmlinux 0xe5e4c171 skb_push +EXPORT_SYMBOL vmlinux 0xe5ed5467 xfrm_policy_walk_init +EXPORT_SYMBOL vmlinux 0xe6153e92 journal_dirty_data +EXPORT_SYMBOL vmlinux 0xe64713b0 wait_for_key_construction +EXPORT_SYMBOL vmlinux 0xe65daaea scsi_get_command +EXPORT_SYMBOL vmlinux 0xe66452ab dql_init +EXPORT_SYMBOL vmlinux 0xe66beed8 dev_queue_xmit +EXPORT_SYMBOL vmlinux 0xe6918a7d do_map_probe +EXPORT_SYMBOL vmlinux 0xe697d108 __blk_iopoll_complete +EXPORT_SYMBOL vmlinux 0xe6bba686 consume_skb +EXPORT_SYMBOL vmlinux 0xe6c3ebb0 __raw_writesw +EXPORT_SYMBOL vmlinux 0xe6ebc016 key_create_or_update +EXPORT_SYMBOL vmlinux 0xe6ed5828 dma_mmap_from_coherent +EXPORT_SYMBOL vmlinux 0xe6fa43c8 snd_card_file_add +EXPORT_SYMBOL vmlinux 0xe6fbe430 can_do_mlock +EXPORT_SYMBOL vmlinux 0xe702358d mmc_gpio_request_cd +EXPORT_SYMBOL vmlinux 0xe707d823 __aeabi_uidiv +EXPORT_SYMBOL vmlinux 0xe73d3555 set_anon_super +EXPORT_SYMBOL vmlinux 0xe749e133 blk_queue_physical_block_size +EXPORT_SYMBOL vmlinux 0xe74c3e7f kernel_bind +EXPORT_SYMBOL vmlinux 0xe7566d70 snd_pcm_set_ops +EXPORT_SYMBOL vmlinux 0xe7661851 invalidate_inode_buffers +EXPORT_SYMBOL vmlinux 0xe7696a6f nand_unlock +EXPORT_SYMBOL vmlinux 0xe7722171 flex_array_free +EXPORT_SYMBOL vmlinux 0xe788c3d3 scsi_get_host_dev +EXPORT_SYMBOL vmlinux 0xe7a664c4 nf_hooks +EXPORT_SYMBOL vmlinux 0xe7a81967 audit_log_secctx +EXPORT_SYMBOL vmlinux 0xe7c84182 nla_reserve +EXPORT_SYMBOL vmlinux 0xe7d4daac seq_list_next +EXPORT_SYMBOL vmlinux 0xe7d6c48d sk_filter +EXPORT_SYMBOL vmlinux 0xe80ce219 sysctl_tcp_dma_copybreak +EXPORT_SYMBOL vmlinux 0xe8230852 inet_unregister_protosw +EXPORT_SYMBOL vmlinux 0xe839564c dma_sync_wait +EXPORT_SYMBOL vmlinux 0xe851bb05 queue_delayed_work_on +EXPORT_SYMBOL vmlinux 0xe854ea9c __starget_for_each_device +EXPORT_SYMBOL vmlinux 0xe8794ce1 slhc_toss +EXPORT_SYMBOL vmlinux 0xe884860b inet_confirm_addr +EXPORT_SYMBOL vmlinux 0xe8aed2b4 remap_vmalloc_range +EXPORT_SYMBOL vmlinux 0xe8b2cc42 mod_zone_page_state +EXPORT_SYMBOL vmlinux 0xe8b53ecc down_write_trylock +EXPORT_SYMBOL vmlinux 0xe8b63ace radix_tree_range_tag_if_tagged +EXPORT_SYMBOL vmlinux 0xe8bea3bc qdisc_put_stab +EXPORT_SYMBOL vmlinux 0xe8c18d04 qdisc_warn_nonwc +EXPORT_SYMBOL vmlinux 0xe8da8db4 sk_stream_wait_memory +EXPORT_SYMBOL vmlinux 0xe8dc31b7 try_to_free_buffers +EXPORT_SYMBOL vmlinux 0xe8ed1b5c snd_pcm_lib_read +EXPORT_SYMBOL vmlinux 0xe912da6b unregister_sysctl_table +EXPORT_SYMBOL vmlinux 0xe914e41e strcpy +EXPORT_SYMBOL vmlinux 0xe93ad932 tty_port_alloc_xmit_buf +EXPORT_SYMBOL vmlinux 0xe94710b0 bio_integrity_prep +EXPORT_SYMBOL vmlinux 0xe953b21f get_next_ino +EXPORT_SYMBOL vmlinux 0xe95bd5cc uart_resume_port +EXPORT_SYMBOL vmlinux 0xe95f0ae2 mount_pseudo +EXPORT_SYMBOL vmlinux 0xe9625225 scsi_device_quiesce +EXPORT_SYMBOL vmlinux 0xe965e8f2 blk_rq_unmap_user +EXPORT_SYMBOL vmlinux 0xe9acc9e1 snd_device_new +EXPORT_SYMBOL vmlinux 0xe9ae9492 __cleancache_invalidate_inode +EXPORT_SYMBOL vmlinux 0xe9b3d069 iw_handler_set_spy +EXPORT_SYMBOL vmlinux 0xe9eaea42 md_unregister_thread +EXPORT_SYMBOL vmlinux 0xe9eb65e1 twl6040_get_sysclk +EXPORT_SYMBOL vmlinux 0xea054b22 nla_policy_len +EXPORT_SYMBOL vmlinux 0xea10212a int_to_scsilun +EXPORT_SYMBOL vmlinux 0xea10655a __bitmap_intersects +EXPORT_SYMBOL vmlinux 0xea3932fc vm_mmap +EXPORT_SYMBOL vmlinux 0xea54c964 set_create_files_as +EXPORT_SYMBOL vmlinux 0xea6e3003 of_find_compatible_node +EXPORT_SYMBOL vmlinux 0xea7987f1 key_update +EXPORT_SYMBOL vmlinux 0xea7f22b1 tcp_getsockopt +EXPORT_SYMBOL vmlinux 0xea82cce8 inet_release +EXPORT_SYMBOL vmlinux 0xea8803e4 journal_start +EXPORT_SYMBOL vmlinux 0xea9c93a5 release_sock +EXPORT_SYMBOL vmlinux 0xeaad8e68 devm_request_and_ioremap +EXPORT_SYMBOL vmlinux 0xeaadacbe mmc_resume_host +EXPORT_SYMBOL vmlinux 0xeaea6fd0 kmalloc_caches +EXPORT_SYMBOL vmlinux 0xeaea9ddb skb_copy_and_csum_datagram_iovec +EXPORT_SYMBOL vmlinux 0xeb00f135 simple_transaction_release +EXPORT_SYMBOL vmlinux 0xeb040fbe drop_nlink +EXPORT_SYMBOL vmlinux 0xeb104371 dma_release_from_coherent +EXPORT_SYMBOL vmlinux 0xeb31879b vlan_vid_add +EXPORT_SYMBOL vmlinux 0xeb32eae1 __secpath_destroy +EXPORT_SYMBOL vmlinux 0xeb37101c audit_log_end +EXPORT_SYMBOL vmlinux 0xeb55a931 __kfifo_max_r +EXPORT_SYMBOL vmlinux 0xeb7b6c6f dev_addr_add_multiple +EXPORT_SYMBOL vmlinux 0xeb99047e ethtool_op_get_link +EXPORT_SYMBOL vmlinux 0xeb9e7cdd ida_destroy +EXPORT_SYMBOL vmlinux 0xebb8bcc5 scsi_device_lookup_by_target +EXPORT_SYMBOL vmlinux 0xebdbe48c radix_tree_gang_lookup +EXPORT_SYMBOL vmlinux 0xebfc6c24 bio_init +EXPORT_SYMBOL vmlinux 0xebfccda4 abx500_mask_and_set_register_interruptible +EXPORT_SYMBOL vmlinux 0xebfdcbdf system_serial_high +EXPORT_SYMBOL vmlinux 0xec17ebb0 of_match_node +EXPORT_SYMBOL vmlinux 0xec3232ea snd_ctl_register_ioctl +EXPORT_SYMBOL vmlinux 0xec4bc179 bio_copy_data +EXPORT_SYMBOL vmlinux 0xec4d9e3a clk_get_sys +EXPORT_SYMBOL vmlinux 0xec6293fc nla_append +EXPORT_SYMBOL vmlinux 0xec9f2343 netlink_set_err +EXPORT_SYMBOL vmlinux 0xecad983a snd_ctl_remove +EXPORT_SYMBOL vmlinux 0xecd0ed9f jbd2_journal_set_triggers +EXPORT_SYMBOL vmlinux 0xecd264f7 snd_timer_stop +EXPORT_SYMBOL vmlinux 0xecd2b680 dquot_writeback_dquots +EXPORT_SYMBOL vmlinux 0xece784c2 rb_first +EXPORT_SYMBOL vmlinux 0xecf25eb3 __lock_buffer +EXPORT_SYMBOL vmlinux 0xed3d0b69 snd_unregister_device +EXPORT_SYMBOL vmlinux 0xed46ff19 i2c_verify_client +EXPORT_SYMBOL vmlinux 0xed597524 qdisc_get_rtab +EXPORT_SYMBOL vmlinux 0xed641fe4 input_mt_report_slot_state +EXPORT_SYMBOL vmlinux 0xed646e7b __devcgroup_inode_permission +EXPORT_SYMBOL vmlinux 0xed654ad1 blk_queue_max_hw_sectors +EXPORT_SYMBOL vmlinux 0xed6bcb69 kill_litter_super +EXPORT_SYMBOL vmlinux 0xed93f29e __kunmap_atomic +EXPORT_SYMBOL vmlinux 0xed9f25c5 sync_dirty_buffer +EXPORT_SYMBOL vmlinux 0xed9f9a20 __ctzsi2 +EXPORT_SYMBOL vmlinux 0xedaa9789 pps_lookup_dev +EXPORT_SYMBOL vmlinux 0xedbaee5e nla_strcmp +EXPORT_SYMBOL vmlinux 0xedc227ef vexpress_config_bridge_register +EXPORT_SYMBOL vmlinux 0xedc7f4ec dq_data_lock +EXPORT_SYMBOL vmlinux 0xedd9106d __ashrdi3 +EXPORT_SYMBOL vmlinux 0xeddd3e19 skb_free_datagram_locked +EXPORT_SYMBOL vmlinux 0xedfa2f32 uart_unregister_driver +EXPORT_SYMBOL vmlinux 0xee2d0fc7 _local_bh_enable +EXPORT_SYMBOL vmlinux 0xee4c7fd3 inetpeer_invalidate_tree +EXPORT_SYMBOL vmlinux 0xee559bdf snd_pcm_lib_malloc_pages +EXPORT_SYMBOL vmlinux 0xee58e9d5 input_unregister_handle +EXPORT_SYMBOL vmlinux 0xee5ba525 amba_request_regions +EXPORT_SYMBOL vmlinux 0xee715ef8 lg_global_unlock +EXPORT_SYMBOL vmlinux 0xee7790d7 dev_remove_offload +EXPORT_SYMBOL vmlinux 0xee95a2ed posix_acl_from_mode +EXPORT_SYMBOL vmlinux 0xeea43f68 dev_notice +EXPORT_SYMBOL vmlinux 0xeea9dbaf bitmap_bitremap +EXPORT_SYMBOL vmlinux 0xeed29b91 twl6040_set_bits +EXPORT_SYMBOL vmlinux 0xeed3635b proc_dostring +EXPORT_SYMBOL vmlinux 0xeed3b79f posix_lock_file +EXPORT_SYMBOL vmlinux 0xeedddd14 tcf_hash_new_index +EXPORT_SYMBOL vmlinux 0xeee131cb cdev_alloc +EXPORT_SYMBOL vmlinux 0xef03665c flush_kernel_dcache_page +EXPORT_SYMBOL vmlinux 0xef1e504d snd_info_create_card_entry +EXPORT_SYMBOL vmlinux 0xef277dd6 snd_jack_set_key +EXPORT_SYMBOL vmlinux 0xef3e0d97 uart_register_driver +EXPORT_SYMBOL vmlinux 0xef64e27d __napi_schedule +EXPORT_SYMBOL vmlinux 0xef6fe66e generic_read_dir +EXPORT_SYMBOL vmlinux 0xef701797 mmc_start_req +EXPORT_SYMBOL vmlinux 0xef888e3d dquot_alloc_inode +EXPORT_SYMBOL vmlinux 0xefa3a0b3 request_firmware_nowait +EXPORT_SYMBOL vmlinux 0xefa79f74 journal_wipe +EXPORT_SYMBOL vmlinux 0xefb4643e mdiobus_unregister +EXPORT_SYMBOL vmlinux 0xefc44fa6 mmc_request_done +EXPORT_SYMBOL vmlinux 0xefcc6ef7 vm_iomap_memory +EXPORT_SYMBOL vmlinux 0xefcf3143 wait_for_completion_io +EXPORT_SYMBOL vmlinux 0xefd6cf06 __aeabi_unwind_cpp_pr0 +EXPORT_SYMBOL vmlinux 0xefdba6d3 skb_free_datagram +EXPORT_SYMBOL vmlinux 0xefdd70ce security_secid_to_secctx +EXPORT_SYMBOL vmlinux 0xefdeed34 tty_port_close_start +EXPORT_SYMBOL vmlinux 0xefe0acff inet_twsk_deschedule +EXPORT_SYMBOL vmlinux 0xf0009fee put_pages_list +EXPORT_SYMBOL vmlinux 0xf00341a7 posix_lock_file_wait +EXPORT_SYMBOL vmlinux 0xf009478a poll_initwait +EXPORT_SYMBOL vmlinux 0xf0284fa7 scsi_register_interface +EXPORT_SYMBOL vmlinux 0xf02cda57 bio_pair_release +EXPORT_SYMBOL vmlinux 0xf058e8e3 proc_set_size +EXPORT_SYMBOL vmlinux 0xf05ffa15 fb_var_to_videomode +EXPORT_SYMBOL vmlinux 0xf0619801 timekeeping_clocktai +EXPORT_SYMBOL vmlinux 0xf066b3e4 tty_devnum +EXPORT_SYMBOL vmlinux 0xf070fcdd inet6_del_protocol +EXPORT_SYMBOL vmlinux 0xf072155a dma_alloc_from_coherent +EXPORT_SYMBOL vmlinux 0xf077162b blk_put_request +EXPORT_SYMBOL vmlinux 0xf087137d __dynamic_pr_debug +EXPORT_SYMBOL vmlinux 0xf0928d85 dev_trans_start +EXPORT_SYMBOL vmlinux 0xf097cdd5 bh_submit_read +EXPORT_SYMBOL vmlinux 0xf09de776 get_random_int +EXPORT_SYMBOL vmlinux 0xf0cbd027 pm860x_page_set_bits +EXPORT_SYMBOL vmlinux 0xf0d68ed6 clk_register_clkdevs +EXPORT_SYMBOL vmlinux 0xf0e1ccca i2c_smbus_write_i2c_block_data +EXPORT_SYMBOL vmlinux 0xf0e84b88 file_update_time +EXPORT_SYMBOL vmlinux 0xf0e9c9db snd_pcm_mmap_data +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 0xf11fcaf1 lookup_bdev +EXPORT_SYMBOL vmlinux 0xf1372833 unregister_key_type +EXPORT_SYMBOL vmlinux 0xf13feb57 radix_tree_next_chunk +EXPORT_SYMBOL vmlinux 0xf147dcb2 hdmi_spd_infoframe_init +EXPORT_SYMBOL vmlinux 0xf1806da9 idr_find_slowpath +EXPORT_SYMBOL vmlinux 0xf195c682 fb_invert_cmaps +EXPORT_SYMBOL vmlinux 0xf19e9355 cpu_online_mask +EXPORT_SYMBOL vmlinux 0xf1a2a49c mdiobus_register +EXPORT_SYMBOL vmlinux 0xf1a81054 skb_pull +EXPORT_SYMBOL vmlinux 0xf1aef0ba ipv6_getsockopt +EXPORT_SYMBOL vmlinux 0xf1bebc05 phy_mii_ioctl +EXPORT_SYMBOL vmlinux 0xf1c8d85e mmc_erase_group_aligned +EXPORT_SYMBOL vmlinux 0xf1ca2bb0 __blk_run_queue +EXPORT_SYMBOL vmlinux 0xf1ca4341 do_splice_from +EXPORT_SYMBOL vmlinux 0xf1ce1b54 inode_init_always +EXPORT_SYMBOL vmlinux 0xf1db1704 nla_memcpy +EXPORT_SYMBOL vmlinux 0xf1deabf2 div64_u64 +EXPORT_SYMBOL vmlinux 0xf1e98c74 avenrun +EXPORT_SYMBOL vmlinux 0xf1ff86a3 __pagevec_release +EXPORT_SYMBOL vmlinux 0xf202c5cb radix_tree_insert +EXPORT_SYMBOL vmlinux 0xf20dabd8 free_irq +EXPORT_SYMBOL vmlinux 0xf219f9a6 vlan_uses_dev +EXPORT_SYMBOL vmlinux 0xf21eac86 bio_add_pc_page +EXPORT_SYMBOL vmlinux 0xf22d32cc jbd2_journal_begin_ordered_truncate +EXPORT_SYMBOL vmlinux 0xf23aea1d d_invalidate +EXPORT_SYMBOL vmlinux 0xf23fcb99 __kfifo_in +EXPORT_SYMBOL vmlinux 0xf27d72e1 sock_no_mmap +EXPORT_SYMBOL vmlinux 0xf28baf80 tcf_hash_destroy +EXPORT_SYMBOL vmlinux 0xf2997713 tty_termios_hw_change +EXPORT_SYMBOL vmlinux 0xf29b09f8 __mutex_init +EXPORT_SYMBOL vmlinux 0xf2b1ac8e __getnstimeofday +EXPORT_SYMBOL vmlinux 0xf2e6c77c tty_unlock +EXPORT_SYMBOL vmlinux 0xf301fa6d mem_map +EXPORT_SYMBOL vmlinux 0xf305b07a tcp_v4_syn_recv_sock +EXPORT_SYMBOL vmlinux 0xf310cf4d inet_shutdown +EXPORT_SYMBOL vmlinux 0xf313da4e sha_transform +EXPORT_SYMBOL vmlinux 0xf3251c2f blk_queue_max_discard_sectors +EXPORT_SYMBOL vmlinux 0xf32e0886 ata_scsi_cmd_error_handler +EXPORT_SYMBOL vmlinux 0xf3341268 __clear_user +EXPORT_SYMBOL vmlinux 0xf346231f seq_list_start_head +EXPORT_SYMBOL vmlinux 0xf353a698 register_module_notifier +EXPORT_SYMBOL vmlinux 0xf3554ba8 unregister_tcf_proto_ops +EXPORT_SYMBOL vmlinux 0xf35ef6f3 seq_bitmap_list +EXPORT_SYMBOL vmlinux 0xf36b2392 blk_dump_rq_flags +EXPORT_SYMBOL vmlinux 0xf36ddfc7 put_tty_driver +EXPORT_SYMBOL vmlinux 0xf3797152 snd_interval_ratnum +EXPORT_SYMBOL vmlinux 0xf389fe60 __hw_addr_init +EXPORT_SYMBOL vmlinux 0xf3916987 global_cursor_default +EXPORT_SYMBOL vmlinux 0xf3964da0 snd_power_wait +EXPORT_SYMBOL vmlinux 0xf396cd21 tcp_parse_md5sig_option +EXPORT_SYMBOL vmlinux 0xf39c38fd irq_to_desc +EXPORT_SYMBOL vmlinux 0xf3b98c0c sched_autogroup_detach +EXPORT_SYMBOL vmlinux 0xf3bf0bce __bitmap_complement +EXPORT_SYMBOL vmlinux 0xf3e2033c pm860x_set_bits +EXPORT_SYMBOL vmlinux 0xf42f3ba1 generic_file_splice_read +EXPORT_SYMBOL vmlinux 0xf43b8579 call_netdevice_notifiers +EXPORT_SYMBOL vmlinux 0xf45a4e52 posix_acl_chmod +EXPORT_SYMBOL vmlinux 0xf473ffaf down +EXPORT_SYMBOL vmlinux 0xf4a3f266 end_buffer_read_sync +EXPORT_SYMBOL vmlinux 0xf4afbf72 input_unregister_handler +EXPORT_SYMBOL vmlinux 0xf4bdbeb9 __frontswap_invalidate_area +EXPORT_SYMBOL vmlinux 0xf4beb2fe vfs_fsync_range +EXPORT_SYMBOL vmlinux 0xf4cb06c3 register_netdevice +EXPORT_SYMBOL vmlinux 0xf4d11a10 __scsi_put_command +EXPORT_SYMBOL vmlinux 0xf4eaedcd blkdev_get_by_path +EXPORT_SYMBOL vmlinux 0xf4ef6148 jbd2_log_start_commit +EXPORT_SYMBOL vmlinux 0xf4ef9ab9 inet_frags_exit_net +EXPORT_SYMBOL vmlinux 0xf4f14de6 rtnl_trylock +EXPORT_SYMBOL vmlinux 0xf4f1e1f2 names_cachep +EXPORT_SYMBOL vmlinux 0xf4f71fc3 gen_pool_alloc +EXPORT_SYMBOL vmlinux 0xf4fa74a0 devfreq_add_device +EXPORT_SYMBOL vmlinux 0xf53d4c26 qdisc_class_hash_destroy +EXPORT_SYMBOL vmlinux 0xf5404f08 dquot_resume +EXPORT_SYMBOL vmlinux 0xf54bfcb7 __cleancache_invalidate_fs +EXPORT_SYMBOL vmlinux 0xf551217b filemap_fault +EXPORT_SYMBOL vmlinux 0xf564412a __aeabi_ulcmp +EXPORT_SYMBOL vmlinux 0xf56cb18a __dev_get_by_name +EXPORT_SYMBOL vmlinux 0xf57605e3 do_sync_read +EXPORT_SYMBOL vmlinux 0xf5812434 blk_get_queue +EXPORT_SYMBOL vmlinux 0xf5a4e0c8 genphy_config_aneg +EXPORT_SYMBOL vmlinux 0xf5c05914 generic_segment_checks +EXPORT_SYMBOL vmlinux 0xf5c064a8 rtmsg_ifinfo +EXPORT_SYMBOL vmlinux 0xf5c77f3e unregister_framebuffer +EXPORT_SYMBOL vmlinux 0xf5e81c73 __dquot_alloc_space +EXPORT_SYMBOL vmlinux 0xf5eb86ea blk_verify_command +EXPORT_SYMBOL vmlinux 0xf5ef77b0 __dev_get_by_index +EXPORT_SYMBOL vmlinux 0xf5fb99ea jbd2_journal_load +EXPORT_SYMBOL vmlinux 0xf60dbf5d qdisc_watchdog_schedule_ns +EXPORT_SYMBOL vmlinux 0xf6388c56 sysctl_ip_default_ttl +EXPORT_SYMBOL vmlinux 0xf63c01f3 blk_start_request +EXPORT_SYMBOL vmlinux 0xf63e1b27 mark_buffer_dirty_inode +EXPORT_SYMBOL vmlinux 0xf63ecd72 snd_timer_open +EXPORT_SYMBOL vmlinux 0xf65d7c15 alloc_xenballooned_pages +EXPORT_SYMBOL vmlinux 0xf68285c0 register_inetaddr_notifier +EXPORT_SYMBOL vmlinux 0xf6851d5f register_sysctl_paths +EXPORT_SYMBOL vmlinux 0xf6bb4729 color_table +EXPORT_SYMBOL vmlinux 0xf6bce793 bdev_read_only +EXPORT_SYMBOL vmlinux 0xf6dbe048 input_flush_device +EXPORT_SYMBOL vmlinux 0xf6ebc03b net_ratelimit +EXPORT_SYMBOL vmlinux 0xf70fa575 snd_pcm_hw_constraint_msbits +EXPORT_SYMBOL vmlinux 0xf72989d3 simple_map_init +EXPORT_SYMBOL vmlinux 0xf7485521 key_instantiate_and_link +EXPORT_SYMBOL vmlinux 0xf7584a9c find_font +EXPORT_SYMBOL vmlinux 0xf77c3fdf blk_init_queue +EXPORT_SYMBOL vmlinux 0xf7802486 __aeabi_uidivmod +EXPORT_SYMBOL vmlinux 0xf79fe9a2 fsnotify_put_mark +EXPORT_SYMBOL vmlinux 0xf7adf332 mmc_align_data_size +EXPORT_SYMBOL vmlinux 0xf7b12aee __next_cpu +EXPORT_SYMBOL vmlinux 0xf803fe39 bitmap_set +EXPORT_SYMBOL vmlinux 0xf811e69d scsi_eh_flush_done_q +EXPORT_SYMBOL vmlinux 0xf827cb83 free_reserved_area +EXPORT_SYMBOL vmlinux 0xf82ec573 rb_prev +EXPORT_SYMBOL vmlinux 0xf88dcf2d __inet_stream_connect +EXPORT_SYMBOL vmlinux 0xf890980a remove_arg_zero +EXPORT_SYMBOL vmlinux 0xf8b3b53d snd_ctl_find_numid +EXPORT_SYMBOL vmlinux 0xf8c6f61b ppp_register_channel +EXPORT_SYMBOL vmlinux 0xf8dfd9fc of_get_min_tck +EXPORT_SYMBOL vmlinux 0xf8fbb4f0 __bad_xchg +EXPORT_SYMBOL vmlinux 0xf91f3ffa inet_proto_csum_replace4 +EXPORT_SYMBOL vmlinux 0xf9348cbc xz_dec_run +EXPORT_SYMBOL vmlinux 0xf94eee0f __mod_zone_page_state +EXPORT_SYMBOL vmlinux 0xf954ae4e ata_dev_printk +EXPORT_SYMBOL vmlinux 0xf9747fc2 netif_set_xps_queue +EXPORT_SYMBOL vmlinux 0xf977013a __dynamic_netdev_dbg +EXPORT_SYMBOL vmlinux 0xf97a320f htc_egpio_get_wakeup_irq +EXPORT_SYMBOL vmlinux 0xf98b346c netpoll_parse_options +EXPORT_SYMBOL vmlinux 0xf991f9f6 writeback_inodes_sb_nr +EXPORT_SYMBOL vmlinux 0xf999e73e bdi_unregister +EXPORT_SYMBOL vmlinux 0xf9a482f9 msleep +EXPORT_SYMBOL vmlinux 0xf9b5380f locks_free_lock +EXPORT_SYMBOL vmlinux 0xf9bafcc0 simple_fill_super +EXPORT_SYMBOL vmlinux 0xf9d5a612 bitmap_end_sync +EXPORT_SYMBOL vmlinux 0xf9d85094 ___pskb_trim +EXPORT_SYMBOL vmlinux 0xf9e73082 scnprintf +EXPORT_SYMBOL vmlinux 0xfa18b37f cdrom_open +EXPORT_SYMBOL vmlinux 0xfa219f19 prepare_kernel_cred +EXPORT_SYMBOL vmlinux 0xfa599bb2 netlink_register_notifier +EXPORT_SYMBOL vmlinux 0xfa61f7ec write_one_page +EXPORT_SYMBOL vmlinux 0xfa627956 proc_create_data +EXPORT_SYMBOL vmlinux 0xfa7f3156 wl12xx_get_platform_data +EXPORT_SYMBOL vmlinux 0xfa8995db security_path_truncate +EXPORT_SYMBOL vmlinux 0xfac68eba arm_elf_read_implies_exec +EXPORT_SYMBOL vmlinux 0xfac8865f sysctl_wmem_max +EXPORT_SYMBOL vmlinux 0xfadea80f user_revoke +EXPORT_SYMBOL vmlinux 0xfae2fe2b pipe_unlock +EXPORT_SYMBOL vmlinux 0xfae5bbde tty_register_device +EXPORT_SYMBOL vmlinux 0xfae67b1f cap_mmap_addr +EXPORT_SYMBOL vmlinux 0xfaf98462 bitrev32 +EXPORT_SYMBOL vmlinux 0xfaf9995e sleep_on +EXPORT_SYMBOL vmlinux 0xfb06567e snd_ctl_replace +EXPORT_SYMBOL vmlinux 0xfb2dd264 touch_buffer +EXPORT_SYMBOL vmlinux 0xfb6af58d recalc_sigpending +EXPORT_SYMBOL vmlinux 0xfb7d9c45 __udivsi3 +EXPORT_SYMBOL vmlinux 0xfb94103e __clzdi2 +EXPORT_SYMBOL vmlinux 0xfb9c90c2 loop_register_transfer +EXPORT_SYMBOL vmlinux 0xfba9ce0c lease_modify +EXPORT_SYMBOL vmlinux 0xfbaaf01e console_lock +EXPORT_SYMBOL vmlinux 0xfbecff1c __splice_from_pipe +EXPORT_SYMBOL vmlinux 0xfbefbbad tty_port_lower_dtr_rts +EXPORT_SYMBOL vmlinux 0xfbf421fc blk_get_request +EXPORT_SYMBOL vmlinux 0xfc02b7ad sysctl_tcp_wmem +EXPORT_SYMBOL vmlinux 0xfc26fb05 unlock_new_inode +EXPORT_SYMBOL vmlinux 0xfc2e43f1 serio_rescan +EXPORT_SYMBOL vmlinux 0xfc39e32f ioport_unmap +EXPORT_SYMBOL vmlinux 0xfc47f808 inode_get_bytes +EXPORT_SYMBOL vmlinux 0xfc65459a kstrtoull_from_user +EXPORT_SYMBOL vmlinux 0xfcaa04a0 out_of_line_wait_on_bit_lock +EXPORT_SYMBOL vmlinux 0xfcb2ffbf xfrm6_input_addr +EXPORT_SYMBOL vmlinux 0xfcb51fa7 tcp_v4_do_rcv +EXPORT_SYMBOL vmlinux 0xfcc2a43c utf32_to_utf8 +EXPORT_SYMBOL vmlinux 0xfcd70e15 block_write_end +EXPORT_SYMBOL vmlinux 0xfce0f44a xfrm_init_state +EXPORT_SYMBOL vmlinux 0xfcec0987 enable_irq +EXPORT_SYMBOL vmlinux 0xfcfa03ff fb_videomode_to_modelist +EXPORT_SYMBOL vmlinux 0xfcfb0fc3 ip6_dst_hoplimit +EXPORT_SYMBOL vmlinux 0xfd1bd6e4 ip6_xmit +EXPORT_SYMBOL vmlinux 0xfd305341 walk_stackframe +EXPORT_SYMBOL vmlinux 0xfd3d9538 inet_sendmsg +EXPORT_SYMBOL vmlinux 0xfd3ee138 unregister_cdrom +EXPORT_SYMBOL vmlinux 0xfd4d83c7 open_exec +EXPORT_SYMBOL vmlinux 0xfd5683b9 wait_for_completion_interruptible +EXPORT_SYMBOL vmlinux 0xfd6293c2 boot_tvec_bases +EXPORT_SYMBOL vmlinux 0xfd7bf876 blk_integrity_compare +EXPORT_SYMBOL vmlinux 0xfd80f618 netif_receive_skb +EXPORT_SYMBOL vmlinux 0xfd8ee9c1 user_path_create +EXPORT_SYMBOL vmlinux 0xfd99623a ip_frag_ecn_table +EXPORT_SYMBOL vmlinux 0xfda0dbe8 ftrace_print_hex_seq +EXPORT_SYMBOL vmlinux 0xfdf6a637 ll_rw_block +EXPORT_SYMBOL vmlinux 0xfdf957f8 xfrm_alloc_spi +EXPORT_SYMBOL vmlinux 0xfdfc0b3b fiemap_fill_next_extent +EXPORT_SYMBOL vmlinux 0xfe029963 unregister_inetaddr_notifier +EXPORT_SYMBOL vmlinux 0xfe17b940 bio_copy_kern +EXPORT_SYMBOL vmlinux 0xfe2c1bc8 tcp_rcv_established +EXPORT_SYMBOL vmlinux 0xfe448b1e proc_set_user +EXPORT_SYMBOL vmlinux 0xfe5d4bb2 sys_tz +EXPORT_SYMBOL vmlinux 0xfe77ece4 init_buffer +EXPORT_SYMBOL vmlinux 0xfe7c4287 nr_cpu_ids +EXPORT_SYMBOL vmlinux 0xfe81df20 __inc_zone_page_state +EXPORT_SYMBOL vmlinux 0xfe8e9aa1 eth_mac_addr +EXPORT_SYMBOL vmlinux 0xfe9de1e1 blkdev_issue_discard +EXPORT_SYMBOL vmlinux 0xfec87934 blk_execute_rq +EXPORT_SYMBOL vmlinux 0xfedcdb60 seq_hlist_next_percpu +EXPORT_SYMBOL vmlinux 0xfef96e23 __scsi_print_command +EXPORT_SYMBOL vmlinux 0xff064fee gen_pool_set_algo +EXPORT_SYMBOL vmlinux 0xff0693d5 blk_queue_max_segments +EXPORT_SYMBOL vmlinux 0xff0ec1a0 sb_min_blocksize +EXPORT_SYMBOL vmlinux 0xff1e9dd8 seq_list_start +EXPORT_SYMBOL vmlinux 0xff23f46b bd_set_size +EXPORT_SYMBOL vmlinux 0xff2d9d80 get_mem_type +EXPORT_SYMBOL vmlinux 0xff44bc04 splice_from_pipe_end +EXPORT_SYMBOL vmlinux 0xff6104d0 snd_pcm_rate_bit_to_rate +EXPORT_SYMBOL vmlinux 0xff67b37f __lshrdi3 +EXPORT_SYMBOL vmlinux 0xff6878cf fb_default_cmap +EXPORT_SYMBOL vmlinux 0xff7047c7 invalidate_mapping_pages +EXPORT_SYMBOL vmlinux 0xff7559e4 ioport_resource +EXPORT_SYMBOL vmlinux 0xff874623 phy_device_free +EXPORT_SYMBOL vmlinux 0xff9ca065 fb_edid_to_monspecs +EXPORT_SYMBOL vmlinux 0xffb94ef0 _test_and_change_bit +EXPORT_SYMBOL vmlinux 0xffd5a395 default_wake_function +EXPORT_SYMBOL vmlinux 0xffd73a8c snd_pcm_hw_rule_add +EXPORT_SYMBOL vmlinux 0xffdbb70b uart_get_divisor +EXPORT_SYMBOL vmlinux 0xffe5095d groups_free +EXPORT_SYMBOL vmlinux 0xfff977db qdisc_create_dflt +EXPORT_SYMBOL_GPL crypto/af_alg 0x0218ed01 af_alg_register_type +EXPORT_SYMBOL_GPL crypto/af_alg 0x5d09f673 af_alg_accept +EXPORT_SYMBOL_GPL crypto/af_alg 0x88ce8b9a af_alg_unregister_type +EXPORT_SYMBOL_GPL crypto/af_alg 0x93957c0c af_alg_cmsg_send +EXPORT_SYMBOL_GPL crypto/af_alg 0xb1b1f6e9 af_alg_release +EXPORT_SYMBOL_GPL crypto/af_alg 0xb742612b af_alg_free_sg +EXPORT_SYMBOL_GPL crypto/af_alg 0xcf3fd6da af_alg_make_sg +EXPORT_SYMBOL_GPL crypto/af_alg 0xd8a27f8f af_alg_complete +EXPORT_SYMBOL_GPL crypto/af_alg 0xd954ef95 af_alg_wait_for_completion +EXPORT_SYMBOL_GPL crypto/async_tx/async_memcpy 0x5169173b async_memcpy +EXPORT_SYMBOL_GPL crypto/async_tx/async_pq 0x567a6263 async_syndrome_val +EXPORT_SYMBOL_GPL crypto/async_tx/async_pq 0xd171d487 async_gen_syndrome +EXPORT_SYMBOL_GPL crypto/async_tx/async_raid6_recov 0x5639da67 async_raid6_datap_recov +EXPORT_SYMBOL_GPL crypto/async_tx/async_raid6_recov 0xff6fec0c async_raid6_2data_recov +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0x3a4ec01f __async_tx_find_channel +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0x9583375b async_tx_submit +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0xbf095e3c async_tx_quiesce +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0xe0278c1a async_trigger_callback +EXPORT_SYMBOL_GPL crypto/async_tx/async_xor 0x39a5bb87 async_xor_val +EXPORT_SYMBOL_GPL crypto/async_tx/async_xor 0xf5a3fd44 async_xor +EXPORT_SYMBOL_GPL crypto/blowfish_common 0x54cd7fa3 blowfish_setkey +EXPORT_SYMBOL_GPL crypto/cast5_generic 0x27278ca9 __cast5_encrypt +EXPORT_SYMBOL_GPL crypto/cast5_generic 0x37da12cb cast5_setkey +EXPORT_SYMBOL_GPL crypto/cast5_generic 0x4a2a3ca6 __cast5_decrypt +EXPORT_SYMBOL_GPL crypto/cast6_generic 0x1291971c __cast6_setkey +EXPORT_SYMBOL_GPL crypto/cast6_generic 0x1e2c961f __cast6_decrypt +EXPORT_SYMBOL_GPL crypto/cast6_generic 0x8f04034a __cast6_encrypt +EXPORT_SYMBOL_GPL crypto/cast6_generic 0xb588a6e7 cast6_setkey +EXPORT_SYMBOL_GPL crypto/cast_common 0x08aa6fb7 cast_s1 +EXPORT_SYMBOL_GPL crypto/cast_common 0x0c5fbf8a cast_s3 +EXPORT_SYMBOL_GPL crypto/cast_common 0xe39dd4b4 cast_s2 +EXPORT_SYMBOL_GPL crypto/cast_common 0xee83a4f3 cast_s4 +EXPORT_SYMBOL_GPL crypto/cryptd 0x133a85a6 cryptd_free_ablkcipher +EXPORT_SYMBOL_GPL crypto/cryptd 0x3ef95beb cryptd_free_ahash +EXPORT_SYMBOL_GPL crypto/cryptd 0x43e1b59c cryptd_alloc_ablkcipher +EXPORT_SYMBOL_GPL crypto/cryptd 0x4a4fb17f cryptd_free_aead +EXPORT_SYMBOL_GPL crypto/cryptd 0x73a05a5e cryptd_ablkcipher_child +EXPORT_SYMBOL_GPL crypto/cryptd 0x80a507d0 cryptd_ahash_child +EXPORT_SYMBOL_GPL crypto/cryptd 0xa927498e cryptd_alloc_ahash +EXPORT_SYMBOL_GPL crypto/cryptd 0xd020c237 cryptd_aead_child +EXPORT_SYMBOL_GPL crypto/cryptd 0xd93e38de cryptd_alloc_aead +EXPORT_SYMBOL_GPL crypto/cryptd 0xfc31f5c0 cryptd_shash_desc +EXPORT_SYMBOL_GPL crypto/des_generic 0xcfd9a2c0 des_ekey +EXPORT_SYMBOL_GPL crypto/lrw 0x02cbcec4 lrw_crypt +EXPORT_SYMBOL_GPL crypto/lrw 0x3864eb66 lrw_free_table +EXPORT_SYMBOL_GPL crypto/lrw 0xcd074900 lrw_init_table +EXPORT_SYMBOL_GPL crypto/serpent_generic 0x5ddb33e9 __serpent_encrypt +EXPORT_SYMBOL_GPL crypto/serpent_generic 0x77b39cb4 __serpent_setkey +EXPORT_SYMBOL_GPL crypto/serpent_generic 0x8a1a99ad __serpent_decrypt +EXPORT_SYMBOL_GPL crypto/serpent_generic 0xbb2e5067 serpent_setkey +EXPORT_SYMBOL_GPL crypto/twofish_common 0x6c3229bb __twofish_setkey +EXPORT_SYMBOL_GPL crypto/twofish_common 0xb5e47711 twofish_setkey +EXPORT_SYMBOL_GPL crypto/xts 0x7829f096 xts_crypt +EXPORT_SYMBOL_GPL drivers/ata/pata_platform 0xa93d8ee9 __pata_platform_probe +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/bcma/bcma 0x0b61a5c6 __bcma_driver_register +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x0dd64cc3 bcma_core_pll_ctl +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x259f4470 bcma_chipco_pll_write +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x2680977f bcma_chipco_regctl_maskset +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x292d81b0 bcma_core_set_clockmode +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x39e5f099 bcma_driver_unregister +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x3e2f0ee7 bcma_chipco_get_alp_clock +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x43280394 bcma_chipco_pll_maskset +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x5930ef53 bcma_core_pci_irq_ctl +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x634fd486 bcma_chipco_pll_read +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x9546d356 bcma_core_pci_extend_L1timer +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x97a0e60b bcma_chipco_gpio_outen +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xaee692f1 bcma_chipco_gpio_out +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xb9b74971 bcma_pmu_spuravoid_pllupdate +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xb9f6f79a bcma_core_enable +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xbfcfcb01 bcma_chipco_gpio_control +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xcefe0488 bcma_core_disable +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xde52ee85 bcma_find_core +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xe9000bf2 bcma_pmu_get_bus_clock +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xf93ceb8a bcma_chipco_chipctl_maskset +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xfcd46a79 bcma_core_is_enabled +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x117d52a2 btmrvl_remove_card +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x2379907f btmrvl_add_card +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x4848db25 btmrvl_interrupt +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x55616f55 btmrvl_register_hdev +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x661c1f81 btmrvl_enable_hs +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x6dc5a2f9 btmrvl_send_hscfg_cmd +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x864e0cd4 btmrvl_check_evtpkt +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x8b4c26e2 btmrvl_process_event +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xb6f9a8a2 btmrvl_send_module_cfg_cmd +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xf4b0985d btmrvl_enable_ps +EXPORT_SYMBOL_GPL drivers/dma/dw/dw_dmac_core 0x517f2a7a dw_dma_suspend +EXPORT_SYMBOL_GPL drivers/dma/dw/dw_dmac_core 0x5d3d6990 dw_dma_shutdown +EXPORT_SYMBOL_GPL drivers/dma/dw/dw_dmac_core 0xaf623268 dw_dma_remove +EXPORT_SYMBOL_GPL drivers/dma/dw/dw_dmac_core 0xc1146358 dw_dma_resume +EXPORT_SYMBOL_GPL drivers/dma/dw/dw_dmac_core 0xfcf4b281 dw_dma_probe +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x06546df0 edac_mc_find_csrow_by_page +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x0991fcce edac_device_handle_ce +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x0ad51674 edac_device_alloc_ctl_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x1c852f7c edac_raw_mc_handle_error +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x37ccc7d6 edac_device_add_device +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x51be9fe1 edac_device_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 0x6ef5842b edac_mc_del_mc +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x75bd8c07 edac_device_handle_ue +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x777863e2 edac_mc_add_mc +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x7e178cd2 edac_mc_handle_error +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x7f631bec edac_mc_free +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x9cc01b0a find_mci_by_dev +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xc0dcb59e edac_layer_name +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xe5d6e9d1 edac_device_free_ctl_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xe78d111d edac_mc_alloc +EXPORT_SYMBOL_GPL drivers/gpio/gpio-generic 0x143b598d bgpio_remove +EXPORT_SYMBOL_GPL drivers/gpio/gpio-generic 0x7fd555d3 bgpio_init +EXPORT_SYMBOL_GPL drivers/gpio/gpio-max730x 0x39277157 __max730x_remove +EXPORT_SYMBOL_GPL drivers/gpio/gpio-max730x 0x877112bc __max730x_probe +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x065ddc91 drm_gem_cma_dumb_create +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x1d630c00 drm_gem_cma_prime_vunmap +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x1e69b9e9 drm_gem_cma_prime_get_sg_table +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x1ef2b12f drm_gem_cma_vm_ops +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x2445c1e5 drm_class_device_register +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x2515f19c drm_gem_cma_prime_vmap +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x3ee5a781 drm_gem_cma_dumb_map_offset +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x6c285e19 drm_class_device_unregister +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x7c91844c drm_gem_cma_describe +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x843c4c5a drm_gem_cma_create +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x8e8fa49a drm_vm_open_locked +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x906fa2d8 drm_gem_cma_prime_mmap +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0xa738477e drm_gem_cma_dumb_destroy +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0xc8b2bfb8 drm_gem_cma_prime_import_sg_table +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0xd7249fd6 drm_gem_cma_free_object +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0xec3d4834 drm_gem_cma_mmap +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_kms_helper 0x1148b623 drm_fbdev_cma_fini +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_kms_helper 0x1a6f6731 drm_fb_cma_create +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_kms_helper 0x7a076010 drm_fb_cma_debugfs_show +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_kms_helper 0x7a1eef80 drm_fb_cma_get_gem_obj +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_kms_helper 0xb2c912af drm_fbdev_cma_hotplug_event +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_kms_helper 0xb3dcc1e8 drm_fb_cma_describe +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_kms_helper 0xcc337fd5 drm_fbdev_cma_restore_mode +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_kms_helper 0xd69503c9 drm_fbdev_cma_init +EXPORT_SYMBOL_GPL drivers/hid/hid 0x026ba3ae hid_check_keys_pressed +EXPORT_SYMBOL_GPL drivers/hid/hid 0x05495392 hid_debug +EXPORT_SYMBOL_GPL drivers/hid/hid 0x066ea263 hidinput_get_led_field +EXPORT_SYMBOL_GPL drivers/hid/hid 0x108fcb06 hid_set_field +EXPORT_SYMBOL_GPL drivers/hid/hid 0x1be3719f hid_dump_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0x1c4ce566 hid_output_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0x1d706ae2 hidinput_report_event +EXPORT_SYMBOL_GPL drivers/hid/hid 0x1f9d1d34 hid_disconnect +EXPORT_SYMBOL_GPL drivers/hid/hid 0x4906a967 hid_snto32 +EXPORT_SYMBOL_GPL drivers/hid/hid 0x56f48ff0 hid_debug_event +EXPORT_SYMBOL_GPL drivers/hid/hid 0x5d8ee60a __hid_register_driver +EXPORT_SYMBOL_GPL drivers/hid/hid 0x6a700c38 hidinput_calc_abs_res +EXPORT_SYMBOL_GPL drivers/hid/hid 0x773e166c hid_dump_input +EXPORT_SYMBOL_GPL drivers/hid/hid 0x77887a0a hidinput_connect +EXPORT_SYMBOL_GPL drivers/hid/hid 0x7941ca1f hid_ignore +EXPORT_SYMBOL_GPL drivers/hid/hid 0x83fdbb53 hid_add_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0x8726e760 hid_destroy_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0x8955b887 hid_open_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0x8b6a06ec hidraw_report_event +EXPORT_SYMBOL_GPL drivers/hid/hid 0x911fc9bd hid_report_raw_event +EXPORT_SYMBOL_GPL drivers/hid/hid 0x93803d42 hidraw_connect +EXPORT_SYMBOL_GPL drivers/hid/hid 0x9d0e3551 hidinput_find_field +EXPORT_SYMBOL_GPL drivers/hid/hid 0xa3131038 hid_connect +EXPORT_SYMBOL_GPL drivers/hid/hid 0xaa5f9d5f hid_input_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0xbfd2e64b hid_dump_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0xc33b891b hidinput_count_leds +EXPORT_SYMBOL_GPL drivers/hid/hid 0xc419ea23 hid_resolv_usage +EXPORT_SYMBOL_GPL drivers/hid/hid 0xc50e3bbd hid_register_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0xc809803c hid_unregister_driver +EXPORT_SYMBOL_GPL drivers/hid/hid 0xda36ea28 hidraw_disconnect +EXPORT_SYMBOL_GPL drivers/hid/hid 0xdaa41e65 hid_validate_values +EXPORT_SYMBOL_GPL drivers/hid/hid 0xeab50b71 hid_allocate_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0xf1b25d26 hidinput_disconnect +EXPORT_SYMBOL_GPL drivers/hid/hid 0xf44a1dca hid_alloc_report_buf +EXPORT_SYMBOL_GPL drivers/hid/hid 0xf4f45404 hid_dump_field +EXPORT_SYMBOL_GPL drivers/hid/hid 0xfb0bbc36 hid_parse_report +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat 0x2f622ea1 roccat_disconnect +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat 0x8c4181ec roccat_report_event +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat 0xb1dd723d roccat_connect +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat-common 0x197f2ee4 roccat_common2_send_with_status +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat-common 0x66dec66e roccat_common2_send +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat-common 0xb61f99e1 roccat_common2_receive +EXPORT_SYMBOL_GPL drivers/hid/hid-sensor-hub 0x1b06c57e sensor_hub_set_feature +EXPORT_SYMBOL_GPL drivers/hid/hid-sensor-hub 0x207f2821 sensor_hub_remove_callback +EXPORT_SYMBOL_GPL drivers/hid/hid-sensor-hub 0x4ab311e6 sensor_hub_input_get_attribute_info +EXPORT_SYMBOL_GPL drivers/hid/hid-sensor-hub 0x7df08d90 sensor_hub_register_callback +EXPORT_SYMBOL_GPL drivers/hid/hid-sensor-hub 0xb39816cd sensor_hub_input_attr_get_raw_value +EXPORT_SYMBOL_GPL drivers/hid/hid-sensor-hub 0xdb2ca2d3 sensor_hub_get_feature +EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0x01fd453e usbhid_lookup_quirk +EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0x9b6b4b96 hiddev_hid_event +EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0xbcddf5c5 usbhid_set_leds +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x1484f571 hsi_claim_port +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x203e6bd5 hsi_event +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x3451c6e7 hsi_unregister_port_event +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x3cf1b22d hsi_register_client_driver +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x3e27704f hsi_release_port +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x479e0397 hsi_async +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x83ac4295 hsi_free_msg +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x993dfb45 hsi_register_port_event +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0xa42d4364 hsi_alloc_msg +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0xb36db234 hsi_alloc_controller +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0xb52699e2 hsi_register_controller +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0xebfe1aae hsi_put_controller +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0xec43a80c hsi_unregister_controller +EXPORT_SYMBOL_GPL drivers/hwmon/adt7x10 0x1b525ee7 adt7x10_probe +EXPORT_SYMBOL_GPL drivers/hwmon/adt7x10 0x2d5e046c adt7x10_remove +EXPORT_SYMBOL_GPL drivers/hwmon/adt7x10 0x9215a55a adt7x10_dev_pm_ops +EXPORT_SYMBOL_GPL drivers/hwmon/pmbus/pmbus_core 0x0026f651 pmbus_do_probe +EXPORT_SYMBOL_GPL drivers/hwmon/pmbus/pmbus_core 0x11850ff7 pmbus_clear_cache +EXPORT_SYMBOL_GPL drivers/hwmon/pmbus/pmbus_core 0x11a6f900 pmbus_write_word_data +EXPORT_SYMBOL_GPL drivers/hwmon/pmbus/pmbus_core 0x127f6f8b pmbus_check_byte_register +EXPORT_SYMBOL_GPL drivers/hwmon/pmbus/pmbus_core 0x35d21458 pmbus_get_driver_info +EXPORT_SYMBOL_GPL drivers/hwmon/pmbus/pmbus_core 0x4ab68065 pmbus_write_byte +EXPORT_SYMBOL_GPL drivers/hwmon/pmbus/pmbus_core 0x4cc4faa6 pmbus_clear_faults +EXPORT_SYMBOL_GPL drivers/hwmon/pmbus/pmbus_core 0x58a81fda pmbus_read_word_data +EXPORT_SYMBOL_GPL drivers/hwmon/pmbus/pmbus_core 0x773ee598 pmbus_check_word_register +EXPORT_SYMBOL_GPL drivers/hwmon/pmbus/pmbus_core 0x7a086e5a pmbus_read_byte_data +EXPORT_SYMBOL_GPL drivers/hwmon/pmbus/pmbus_core 0x87c38d37 pmbus_set_page +EXPORT_SYMBOL_GPL drivers/hwmon/pmbus/pmbus_core 0xb017d8da pmbus_do_remove +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0x1507fd8f i2c_dw_disable_int +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0x4b031b17 i2c_dw_func +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0x4fa2ecf6 i2c_dw_disable +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0x5bb1170b i2c_dw_isr +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0x7caeaf96 i2c_dw_read_comp_param +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0x838e8ba2 i2c_dw_xfer +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0xa6955f48 i2c_dw_is_enabled +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0xb222d029 i2c_dw_clear_int +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0xc0fb30c2 i2c_dw_init +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0xec00d4d1 i2c_dw_enable +EXPORT_SYMBOL_GPL drivers/i2c/i2c-mux 0x8225ae06 i2c_add_mux_adapter +EXPORT_SYMBOL_GPL drivers/i2c/i2c-mux 0xbc0e2ecd i2c_del_mux_adapter +EXPORT_SYMBOL_GPL drivers/i2c/i2c-smbus 0x9987434a i2c_setup_smbus_alert +EXPORT_SYMBOL_GPL drivers/i2c/i2c-smbus 0xc60ada5a i2c_handle_smbus_alert +EXPORT_SYMBOL_GPL drivers/iio/adc/ad_sigma_delta 0x34cbecaf ad_sd_setup_buffer_and_trigger +EXPORT_SYMBOL_GPL drivers/iio/adc/ad_sigma_delta 0x3653daf4 ad_sd_calibrate_all +EXPORT_SYMBOL_GPL drivers/iio/adc/ad_sigma_delta 0x39063d0d ad_sd_set_comm +EXPORT_SYMBOL_GPL drivers/iio/adc/ad_sigma_delta 0x39fe62ac ad_sd_read_reg +EXPORT_SYMBOL_GPL drivers/iio/adc/ad_sigma_delta 0x755874f4 ad_sd_validate_trigger +EXPORT_SYMBOL_GPL drivers/iio/adc/ad_sigma_delta 0x7a51b5bf ad_sd_cleanup_buffer_and_trigger +EXPORT_SYMBOL_GPL drivers/iio/adc/ad_sigma_delta 0x864e0f0d ad_sigma_delta_single_conversion +EXPORT_SYMBOL_GPL drivers/iio/adc/ad_sigma_delta 0xb3186fcf ad_sd_write_reg +EXPORT_SYMBOL_GPL drivers/iio/adc/ad_sigma_delta 0xf64712e2 ad_sd_init +EXPORT_SYMBOL_GPL drivers/iio/imu/adis_lib 0x191a7889 adis_cleanup_buffer_and_trigger +EXPORT_SYMBOL_GPL drivers/iio/imu/adis_lib 0x2a84f9e6 adis_check_status +EXPORT_SYMBOL_GPL drivers/iio/imu/adis_lib 0x6f5a0938 adis_write_reg +EXPORT_SYMBOL_GPL drivers/iio/imu/adis_lib 0x73e3ca2e adis_initial_startup +EXPORT_SYMBOL_GPL drivers/iio/imu/adis_lib 0x7c2bc175 adis_probe_trigger +EXPORT_SYMBOL_GPL drivers/iio/imu/adis_lib 0x9aba6140 adis_setup_buffer_and_trigger +EXPORT_SYMBOL_GPL drivers/iio/imu/adis_lib 0x9fc47fbc adis_single_conversion +EXPORT_SYMBOL_GPL drivers/iio/imu/adis_lib 0xaf92d356 adis_update_scan_mode +EXPORT_SYMBOL_GPL drivers/iio/imu/adis_lib 0xb750ce26 adis_remove_trigger +EXPORT_SYMBOL_GPL drivers/iio/imu/adis_lib 0xc126a1bd adis_init +EXPORT_SYMBOL_GPL drivers/iio/imu/adis_lib 0xed93e5b2 adis_reset +EXPORT_SYMBOL_GPL drivers/iio/imu/adis_lib 0xeecaf6f6 adis_read_reg +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x1bccccb8 iio_enum_read +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x24c3a22e iio_update_buffers +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x267c0508 iio_channel_release_all_cb +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x26f6b499 iio_str_to_fixpoint +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x2a1fab3c iio_channel_stop_all_cb +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x2a2eeccf iio_channel_cb_get_channels +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x2c49ea10 iio_convert_raw_to_processed +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x2f1c6c36 iio_channel_get_all +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x580d5628 iio_validate_scan_mask_onehot +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x5f4f0fa6 iio_read_channel_raw +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x67d23afb iio_channel_get_all_cb +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x6faa3287 iio_scan_mask_query +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x70274d90 iio_get_channel_type +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x7a711aef iio_channel_start_all_cb +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x81b0be72 iio_read_channel_scale +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x8cda20a2 iio_map_array_register +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x93f271fd iio_enum_write +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xa0998ce6 iio_enum_available_read +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xa33dc75e iio_channel_release +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xa36134d2 iio_dealloc_pollfunc +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xaaf86c62 iio_map_array_unregister +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xb169be1a iio_update_demux +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xbd7a859c iio_push_to_buffers +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xc51267b8 iio_alloc_pollfunc +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xc90e6fac iio_channel_release_all +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xce5fce48 iio_scan_mask_set +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xe0b82814 iio_channel_get +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xeb18046f iio_read_channel_processed +EXPORT_SYMBOL_GPL drivers/input/ff-memless 0x77aa1368 input_ff_create_memless +EXPORT_SYMBOL_GPL drivers/input/matrix-keymap 0x53c0c5b6 matrix_keypad_parse_of_params +EXPORT_SYMBOL_GPL drivers/input/misc/adxl34x 0x49a4fcbd adxl34x_remove +EXPORT_SYMBOL_GPL drivers/input/misc/adxl34x 0x66535a18 adxl34x_suspend +EXPORT_SYMBOL_GPL drivers/input/misc/adxl34x 0xcf853423 adxl34x_probe +EXPORT_SYMBOL_GPL drivers/input/misc/adxl34x 0xe4586827 adxl34x_resume +EXPORT_SYMBOL_GPL drivers/input/touchscreen/cyttsp4_core 0x6b151349 cyttsp4_remove +EXPORT_SYMBOL_GPL drivers/input/touchscreen/cyttsp4_core 0x9a981b58 cyttsp4_probe +EXPORT_SYMBOL_GPL drivers/input/touchscreen/cyttsp4_core 0xe17d980a cyttsp4_pm_ops +EXPORT_SYMBOL_GPL drivers/input/touchscreen/cyttsp_core 0x2e742ec5 cyttsp_remove +EXPORT_SYMBOL_GPL drivers/input/touchscreen/cyttsp_core 0x4509f722 cyttsp_probe +EXPORT_SYMBOL_GPL drivers/input/touchscreen/cyttsp_core 0xd825f857 cyttsp_pm_ops +EXPORT_SYMBOL_GPL drivers/input/touchscreen/cyttsp_i2c_common 0x5e8e053f cyttsp_i2c_read_block_data +EXPORT_SYMBOL_GPL drivers/input/touchscreen/cyttsp_i2c_common 0x7889f967 cyttsp_i2c_write_block_data +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x2e70a356 wm97xx_reg_read +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x32636f28 wm97xx_register_mach_ops +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x393a1827 wm97xx_read_aux_adc +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x47900189 wm9713_codec +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x77a4c0b4 wm97xx_get_gpio +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x8b3a0117 wm9712_codec +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x8ee7e229 wm97xx_reg_write +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x96841c4d wm9705_codec +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xa113ca58 wm97xx_set_suspend_mode +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xcb93bbc4 wm97xx_set_gpio +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xde13c117 wm97xx_unregister_mach_ops +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xf5ef1386 wm97xx_config_gpio +EXPORT_SYMBOL_GPL drivers/ipack/ipack 0x14095bfc ipack_put_device +EXPORT_SYMBOL_GPL drivers/ipack/ipack 0x2aa85580 ipack_bus_unregister +EXPORT_SYMBOL_GPL drivers/ipack/ipack 0x69906911 ipack_device_del +EXPORT_SYMBOL_GPL drivers/ipack/ipack 0x9980857d ipack_bus_register +EXPORT_SYMBOL_GPL drivers/ipack/ipack 0xa771f06b ipack_device_init +EXPORT_SYMBOL_GPL drivers/ipack/ipack 0xc23306eb ipack_driver_unregister +EXPORT_SYMBOL_GPL drivers/ipack/ipack 0xf09e292c ipack_driver_register +EXPORT_SYMBOL_GPL drivers/ipack/ipack 0xf2b0728d ipack_get_device +EXPORT_SYMBOL_GPL drivers/ipack/ipack 0xf3c08861 ipack_device_add +EXPORT_SYMBOL_GPL drivers/isdn/capi/kernelcapi 0x23359aff unregister_capictr_notifier +EXPORT_SYMBOL_GPL drivers/isdn/capi/kernelcapi 0xce1414b2 register_capictr_notifier +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x174e4ca9 gigaset_blockdriver +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x1df861f0 gigaset_isdn_rcv_err +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x3003d769 gigaset_freecs +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x385c999d gigaset_m10x_send_skb +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x3fe5da4e gigaset_stop +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x433e7c3d gigaset_add_event +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x454aa44f gigaset_debuglevel +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x8eff32df gigaset_dbg_buffer +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x92f106a8 gigaset_if_receive +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x931f39fa gigaset_m10x_input +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xa3d6ebfb gigaset_skb_sent +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xa4dc6998 gigaset_shutdown +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xa5ca03d5 gigaset_handle_modem_response +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xc0099cd3 gigaset_initdriver +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xc12bc14e gigaset_fill_inbuf +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xc66f9c94 gigaset_initcs +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xde34de00 gigaset_start +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xfa1857ae gigaset_freedriver +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xfd850e38 gigaset_skb_rcvd +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0x1317b52b lp55xx_register_leds +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0x17fe457a lp55xx_read +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0x2a282f64 lp55xx_init_device +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0x31e5cf6b lp55xx_update_bits +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0x4668f4c5 lp55xx_register_sysfs +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0x6c13a654 lp55xx_unregister_sysfs +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0x779083e0 lp55xx_unregister_leds +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0xb896af53 lp55xx_of_populate_pdata +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0xeef4dd85 lp55xx_write +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0xef0b973f lp55xx_is_extclk_used +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0xf4311463 lp55xx_deinit_device +EXPORT_SYMBOL_GPL drivers/leds/trigger/ledtrig-camera 0x749e05f2 ledtrig_flash_ctrl +EXPORT_SYMBOL_GPL drivers/leds/trigger/ledtrig-camera 0x7903e46e ledtrig_torch_ctrl +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x055791cf __closure_delay +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x10e06e97 __tracepoint_bcache_btree_set_root +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x155ea9c7 __tracepoint_bcache_bypass_sequential +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x1822fd23 __tracepoint_bcache_btree_gc_coalesce +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x1f2ba9ac __tracepoint_bcache_journal_entry_full +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x238676bd __closure_flush_sync +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x260d47cf __tracepoint_bcache_btree_cache_cannibalize +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x27831e89 __tracepoint_bcache_journal_full +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x2dec45e0 __tracepoint_bcache_btree_write +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x347aebe1 __tracepoint_bcache_btree_node_free +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x41c861f0 __tracepoint_bcache_alloc_fail +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x49856e5a __tracepoint_bcache_btree_node_compact +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x4c45699c do_closure_timer_init +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x50e8c39f __tracepoint_bcache_write +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x574ba881 __tracepoint_bcache_btree_node_alloc +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x628eb712 __tracepoint_bcache_btree_insert_key +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x6770a402 __tracepoint_bcache_gc_copy_collision +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x785cfc9f __tracepoint_bcache_gc_end +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x7b488fb1 __tracepoint_bcache_alloc_invalidate +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x916a24f6 closure_put +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x91f2af34 __tracepoint_bcache_btree_node_alloc_fail +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x9287e35b __closure_lock +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x99926c38 closure_trylock +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x9d4543e7 closure_sync +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xa09069a3 __tracepoint_bcache_writeback_collision +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xa591c5d6 __tracepoint_bcache_read +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xa6890b59 __tracepoint_bcache_btree_read +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xaf60c34b __tracepoint_bcache_journal_write +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xb903ef23 closure_sub +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xb950d2ae __tracepoint_bcache_request_start +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xbd4b89b6 __tracepoint_bcache_btree_node_split +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xce0e6218 __tracepoint_bcache_gc_copy +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xd40fba32 __tracepoint_bcache_gc_start +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xdc5ea5a5 __tracepoint_bcache_cache_insert +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xe3c17af1 __closure_wake_up +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xe5fcb92a closure_queue +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xe81b5ef1 __closure_flush +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xee36beb4 closure_wait +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xf58ce244 __tracepoint_bcache_journal_replay_key +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xf5bcbdc7 __tracepoint_bcache_read_retry +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xfc1d5275 __tracepoint_bcache_writeback +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xfcdf28c9 __tracepoint_bcache_request_end +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xffc308e4 __tracepoint_bcache_bypass_congested +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x17dd39d6 dm_deferred_set_create +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x2eb01e04 dm_deferred_set_destroy +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x2f6fcfb4 dm_cell_release_no_holder +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x403bffc3 dm_cell_release +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x465d7d96 dm_get_cell +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x6791a44e dm_deferred_entry_dec +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x9eefb9b9 dm_bio_prison_alloc_cell +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0xb6d5c65d dm_deferred_set_add_work +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0xb70b342a dm_bio_prison_destroy +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0xc1118522 dm_bio_detain +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0xca2e3a88 dm_deferred_entry_inc +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0xcbbf18a7 dm_cell_error +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0xebd06eaf dm_bio_prison_create +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0xec004f8e dm_bio_prison_free_cell +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x0ad0dc4f dm_bufio_mark_buffer_dirty +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x22163b69 dm_bufio_release_move +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x3909d3a8 dm_bufio_prefetch +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x594952bd dm_bufio_read +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x62a23587 dm_bufio_get_device_size +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x6d3f57bd dm_bufio_get_client +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x74dcd98c dm_bufio_get_aux_data +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x7c381a76 dm_bufio_get_block_size +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x9b2b253a dm_bufio_get +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0xa82b2066 dm_bufio_write_dirty_buffers +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0xc9a3422d dm_bufio_write_dirty_buffers_async +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0xd4bddf5c dm_bufio_issue_flush +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0xdc69e37a dm_bufio_get_block_number +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0xe004ee92 dm_bufio_new +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0xe09392ab dm_bufio_client_create +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0xe6024e59 dm_bufio_release +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0xebcc64a4 dm_bufio_get_block_data +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0xeca7949e dm_bufio_client_destroy +EXPORT_SYMBOL_GPL drivers/md/dm-cache 0x4e98102a dm_cache_policy_get_version +EXPORT_SYMBOL_GPL drivers/md/dm-cache 0x548e80c5 dm_cache_policy_unregister +EXPORT_SYMBOL_GPL drivers/md/dm-cache 0x55e4b409 dm_cache_policy_create +EXPORT_SYMBOL_GPL drivers/md/dm-cache 0x5a499912 dm_cache_policy_get_name +EXPORT_SYMBOL_GPL drivers/md/dm-cache 0x64238d63 dm_cache_policy_register +EXPORT_SYMBOL_GPL drivers/md/dm-cache 0xee37979f dm_cache_policy_destroy +EXPORT_SYMBOL_GPL drivers/md/dm-cache 0xf27f9f88 dm_cache_policy_get_hint_size +EXPORT_SYMBOL_GPL drivers/md/dm-multipath 0x195b219d dm_unregister_path_selector +EXPORT_SYMBOL_GPL drivers/md/dm-multipath 0xd58264a9 dm_register_path_selector +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x01d2f9ac dm_rh_recovery_start +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x09472122 dm_rh_dec +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x17169674 dm_rh_mark_nosync +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x38efaf5a dm_region_hash_destroy +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x3a18389a dm_rh_update_states +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x594be3ca dm_rh_bio_to_region +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x614c403d dm_rh_delay +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x6459912b dm_region_hash_create +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x7774620f dm_rh_stop_recovery +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x7d053fc5 dm_rh_start_recovery +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x8618c185 dm_rh_inc_pending +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xa53387c7 dm_rh_flush +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xa83588eb dm_rh_recovery_end +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xa8813ad6 dm_rh_region_to_sector +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xbe38a431 dm_rh_recovery_prepare +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xc66ce277 dm_rh_get_region_size +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xcab63c3d dm_rh_get_state +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xcc210c0e dm_rh_dirty_log +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xd8aa4284 dm_rh_region_context +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xf37a3cfe dm_rh_get_region_key +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xfd93482e dm_rh_recovery_in_flight +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x0054f69d dm_tm_pre_commit +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x01445176 dm_btree_find_highest_key +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x11eab9fe dm_bm_read_lock +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x150c85ce dm_tm_open_with_sm +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x1cac81ac dm_bitset_clear_bit +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x1e3f728d dm_block_data +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x2025e954 dm_array_info_init +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x2c112836 dm_block_location +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x2c27dbfd dm_block_manager_create +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x2e730a21 dm_bm_checksum +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x2f74609d dm_bitset_test_bit +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x32b5f546 dm_array_empty +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x33c03da6 dm_sm_disk_open +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x371fd72c dm_bm_flush_and_unlock +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x38c75c44 dm_bitset_empty +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x40f7bd91 dm_tm_inc +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x5e6aea80 dm_btree_walk +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x619701dc dm_sm_disk_create +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x62c1b9ee dm_array_walk +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x688d422d dm_bm_block_size +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x68fae9d2 dm_disk_bitset_init +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x72289260 dm_block_manager_destroy +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x7ade1071 dm_tm_destroy +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x7b047bd9 dm_tm_create_non_blocking_clone +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x80c89b3d dm_tm_unlock +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x832bf228 dm_array_del +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x858c8d94 dm_array_set_value +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x89f1e1cc dm_btree_insert_notify +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x966a8838 dm_btree_lookup +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x9b4b5b29 dm_bm_write_lock +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x9e798e22 dm_bm_set_read_only +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xa0bbbb49 dm_bitset_resize +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xa13861b4 dm_bitset_del +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xa2507774 dm_tm_shadow_block +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xa87c5b4d dm_array_resize +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xaee02382 dm_btree_empty +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xb7bad799 dm_bm_unlock +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xb9a6ecf8 dm_tm_dec +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xbcfdc290 dm_tm_read_lock +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xbd50ebbb dm_btree_del +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xbe0497aa dm_tm_create_with_sm +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xca40abd5 dm_btree_insert +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xd041d62b dm_array_get_value +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xd163cade dm_tm_commit +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xe44b4b9b dm_bitset_set_bit +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xead1e727 dm_bm_write_lock_zero +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xed1e1f96 dm_btree_remove +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xf475af48 dm_bitset_flush +EXPORT_SYMBOL_GPL drivers/md/raid1 0x2d8ce316 md_raid1_congested +EXPORT_SYMBOL_GPL drivers/md/raid10 0xd26d80aa md_raid10_congested +EXPORT_SYMBOL_GPL drivers/md/raid456 0xc69f500e md_raid5_congested +EXPORT_SYMBOL_GPL drivers/media/common/b2c2/b2c2-flexcop 0x66c0289a b2c2_flexcop_debug +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x0e4e83ca smscore_putbuffer +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x14ae6c53 smscore_register_device +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x21e36bf2 smscore_registry_getmode +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x2783bafa smscore_register_hotplug +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x2dd085ea smscore_start_device +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x37d91069 smsendian_handle_tx_message +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x3bdb4920 smscore_unregister_hotplug +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x45284ae9 smsendian_handle_rx_message +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x4a4200c7 sms_board_setup +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x528eb530 smscore_onresponse +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x579e4936 smscore_set_board_id +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x5ee3e90d sms_board_power +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x63222b29 smsclient_sendrequest +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x74ee9098 sms_board_load_modules +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x7c576277 smsendian_handle_message_header +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x844539ae sms_get_board +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x886b9c9d smscore_getbuffer +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x886c261e smscore_get_board_id +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x921a86e4 sms_board_lna_control +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x9c2225ed smscore_translate_msg +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x9d4d0901 smscore_get_device_mode +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0xb1062a5e smscore_unregister_device +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0xb716e05f smscore_register_client +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0xbbdb5c42 smscore_unregister_client +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0xf2dd6cd9 sms_board_event +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0xf9102bbb sms_board_led_feedback +EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/tda18271c2dd 0xed721bb9 tda18271c2dd_attach +EXPORT_SYMBOL_GPL drivers/media/radio/shark2 0x6c918d52 radio_tea5777_init +EXPORT_SYMBOL_GPL drivers/media/radio/shark2 0x9521974f radio_tea5777_exit +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x02e633f8 ir_raw_event_set_idle +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x0aa65738 rc_keydown +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x0ec9fe89 ir_raw_event_store_edge +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x21a6f57e ir_raw_event_store +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x250510de ir_raw_event_handle +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x35c78adb rc_keydown_notimeout +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x4f6471c9 rc_map_unregister +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x518a2a2a rc_repeat +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x553efb91 rc_core_debug +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x60648477 rc_unregister_device +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x63c073dc rc_keyup +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x675997ad ir_raw_event_store_with_filter +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x88c29ad4 rc_map_get +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x9d376238 rc_map_register +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xa29f7f9e rc_allocate_device +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xcbebbc13 rc_free_device +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xdf88d00f rc_g_keycode_from_table +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xe52abf59 rc_register_device +EXPORT_SYMBOL_GPL drivers/media/tuners/mt2063 0x8c0f46da mt2063_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/mt20xx 0x6ff5c960 microtune_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/mxl5007t 0xd03c984f mxl5007t_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/r820t 0x349e5618 r820t_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/tda18271 0x8fb5b247 tda18271_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/tda827x 0xc29d4647 tda827x_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/tda8290 0x21cf9af8 tda829x_probe +EXPORT_SYMBOL_GPL drivers/media/tuners/tda8290 0x489fd1f9 tda829x_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/tda9887 0x29ac24e1 tda9887_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/tea5761 0x9fcd1fe5 tea5761_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/tea5761 0xd8eb6b4d tea5761_autodetection +EXPORT_SYMBOL_GPL drivers/media/tuners/tea5767 0x2c6c729b tea5767_autodetection +EXPORT_SYMBOL_GPL drivers/media/tuners/tea5767 0xc24f2a6b tea5767_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/tuner-simple 0xfd7819a6 simple_tuner_attach +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x017ea7c7 cx231xx_tuner_callback +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x05835f7a cx231xx_set_mode +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x07a0fc5b cx231xx_init_bulk +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x0814318e cx231xx_dev_uninit +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x1073cbf1 cx231xx_dev_init +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x1e2c996b cx231xx_enable_i2c_port_3 +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x2052a492 cx231xx_uninit_vbi_isoc +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x23c73a8f cx231xx_enable656 +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x49671f73 is_fw_load +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x503f981e cx231xx_demod_reset +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x5c2328d1 cx231xx_unmute_audio +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x67fde2e0 cx231xx_init_vbi_isoc +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x6e68e397 cx231xx_capture_start +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x779277c0 cx231xx_send_gpio_cmd +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0xa0974af5 cx231xx_uninit_bulk +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0xac52cce6 cx231xx_set_alt_setting +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0xcfa5674a cx231xx_init_isoc +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0xd4f65e15 cx231xx_disable656 +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0xed8f50fc cx231xx_send_usb_command +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0xf5afc79d cx231xx_uninit_isoc +EXPORT_SYMBOL_GPL drivers/media/usb/dvb-usb-v2/mxl111sf-demod 0x09202403 mxl111sf_demod_attach +EXPORT_SYMBOL_GPL drivers/media/usb/dvb-usb-v2/mxl111sf-tuner 0x3c70fc91 mxl111sf_tuner_attach +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x0ba82420 em28xx_write_reg_bits +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x0dc05051 em28xx_audio_setup +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x1720099c em28xx_read_reg +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x27ef4db5 em28xx_gpio_set +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x4cc43ad8 em28xx_init_usb_xfer +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x4d49cf6a em28xx_set_mode +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x51583b50 em28xx_audio_analog_set +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x61949f0a em28xx_uninit_usb_xfer +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x7fc8652c em28xx_tuner_callback +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0xa74ea27b em28xx_write_regs +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0xb7c220c5 em28xx_alloc_urbs +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0xc2f863d0 em28xx_stop_urbs +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0xd3b89e3b em28xx_write_reg +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0xef9cd087 em28xx_read_ac97 +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0xff424831 em28xx_write_ac97 +EXPORT_SYMBOL_GPL drivers/media/usb/tm6000/tm6000 0x2309a6d6 tm6000_xc5000_callback +EXPORT_SYMBOL_GPL drivers/media/usb/tm6000/tm6000 0x37ae401b tm6000_set_audio_bitrate +EXPORT_SYMBOL_GPL drivers/media/usb/tm6000/tm6000 0x6ba46f43 tm6000_set_reg_mask +EXPORT_SYMBOL_GPL drivers/media/usb/tm6000/tm6000 0x7e7cbda8 tm6000_get_reg +EXPORT_SYMBOL_GPL drivers/media/usb/tm6000/tm6000 0x84aa7369 tm6000_set_reg +EXPORT_SYMBOL_GPL drivers/media/usb/tm6000/tm6000 0x89b611dd tm6000_debug +EXPORT_SYMBOL_GPL drivers/media/usb/tm6000/tm6000 0xdff8e89d tm6000_tuner_callback +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-common 0x01c483a9 v4l2_get_timestamp +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-common 0x14f1d39e v4l2_spi_subdev_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-common 0x3679486e v4l2_spi_new_subdev +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-common 0x53105839 v4l2_detect_cvt +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-common 0x5d9d3491 v4l_match_dv_timings +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-common 0x618bad20 v4l2_i2c_new_subdev +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-common 0x6f344bb9 v4l2_calc_aspect_ratio +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-common 0x7eaf8e7a v4l2_detect_gtf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-common 0x813f3de4 v4l2_find_nearest_format +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-common 0x9a7954d5 v4l2_i2c_new_subdev_board +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-common 0xe29de6ea v4l2_i2c_subdev_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-common 0xefc38086 v4l2_i2c_subdev_addr +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-common 0xf2a353ac v4l2_i2c_tuner_addrs +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-common 0xf5ef842e v4l_bound_align_image +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-int-device 0x13b2800d v4l2_int_ioctl_0 +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-int-device 0x2c1c39ef v4l2_int_device_register +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-int-device 0x67d43593 v4l2_int_ioctl_1 +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-int-device 0x8e37e457 v4l2_int_device_unregister +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-int-device 0xa5228b24 v4l2_int_device_try_attach_all +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x17eb0eee v4l2_m2m_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x350142e3 v4l2_m2m_ctx_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x38541867 v4l2_m2m_querybuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x45ef6bf0 v4l2_m2m_next_buf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x67bf8b82 v4l2_m2m_streamoff +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x6da991bb v4l2_m2m_create_bufs +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x6fc72e0b v4l2_m2m_buf_remove +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x8ba55043 v4l2_m2m_ctx_release +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x8c56c974 v4l2_m2m_expbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x9c60f3b8 v4l2_m2m_poll +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0xb05bf8b8 v4l2_m2m_streamon +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0xb0a0e8bd v4l2_m2m_reqbufs +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0xbe2cbb31 v4l2_m2m_qbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0xc6fca5ad v4l2_m2m_release +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0xca30faac v4l2_m2m_buf_queue +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0xf35f919a v4l2_m2m_dqbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x0358e2b1 videobuf_read_stop +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x0ca2d5f6 videobuf_dqbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x11310bff videobuf_mmap_mapper +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x1fc8964a videobuf_queue_to_vaddr +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x232d00d6 videobuf_read_stream +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x318925cb videobuf_queue_core_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x3aef79e8 videobuf_stop +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x4bf8e9d8 videobuf_read_one +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x5fef006e videobuf_queue_is_busy +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x631b523f videobuf_mmap_free +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x65814fc5 videobuf_read_start +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x80f6aeea videobuf_iolock +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x90c92919 videobuf_streamon +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x9878b4d5 videobuf_waiton +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x9d1f6be3 videobuf_next_field +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0xa3c5b700 videobuf_streamoff +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0xa648d486 videobuf_querybuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0xaec8bfbb __videobuf_mmap_setup +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0xb2c408d4 videobuf_qbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0xc289ed0f videobuf_poll_stream +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0xd96e3fc8 videobuf_mmap_setup +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0xe2f20a87 videobuf_queue_cancel +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0xe68e9001 videobuf_reqbufs +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0xe9f0fc16 videobuf_alloc_vb +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-contig 0x26b2895b videobuf_to_dma_contig +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-contig 0x851fc1ff videobuf_dma_contig_free +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-contig 0xfd933b8e videobuf_queue_dma_contig_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-vmalloc 0x1993f84a videobuf_to_vmalloc +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-vmalloc 0x56a693b8 videobuf_queue_vmalloc_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-vmalloc 0xc16e3143 videobuf_vmalloc_free +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x1c210670 vb2_ioctl_create_bufs +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x21399436 vb2_ioctl_prepare_buf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x2299e404 vb2_write +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x29fc30d0 vb2_ioctl_streamoff +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x2c52cb25 vb2_queue_release +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x2e6f1e0b vb2_ioctl_dqbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x32d8f346 vb2_fop_write +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x4b38c2cb vb2_read +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x4bf3362e vb2_fop_poll +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x521da76e vb2_ops_wait_finish +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x563476ab vb2_fop_mmap +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x57f341cb vb2_qbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x659517fe vb2_ioctl_reqbufs +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x724203b7 vb2_expbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x72a8a14f vb2_wait_for_all_buffers +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x7cec717e vb2_ops_wait_prepare +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x7e75e795 vb2_dqbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x8833698f vb2_streamon +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x8d0c8418 vb2_poll +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x8ea87022 vb2_reqbufs +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x94076338 vb2_ioctl_streamon +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x975cc10c vb2_mmap +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0xa09d094d vb2_create_bufs +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0xabe793e2 vb2_fop_read +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0xb3f23eb2 vb2_ioctl_querybuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0xc72a42d0 vb2_ioctl_qbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0xcdaa1871 vb2_queue_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0xd224c003 vb2_ioctl_expbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0xdf71a937 vb2_buffer_done +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0xe7028fe5 vb2_fop_release +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0xe84d66f8 vb2_plane_vaddr +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0xf01649e2 vb2_plane_cookie +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0xf357eb27 vb2_prepare_buf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0xf8c926d9 vb2_streamoff +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-dma-contig 0x82b3e530 vb2_dma_contig_init_ctx +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-dma-contig 0xd2e6348f vb2_dma_contig_memops +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-dma-contig 0xe57f0426 vb2_dma_contig_cleanup_ctx +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-memops 0x549fb903 vb2_common_vm_ops +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-memops 0x611fef07 vb2_get_contig_userptr +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-memops 0xafa74e46 vb2_put_vma +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-memops 0xf0de6aea vb2_get_vma +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-vmalloc 0x61d17ab6 vb2_vmalloc_memops +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x045d6067 v4l2_fh_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x136fc9fc v4l2_event_dequeue +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x2af23255 v4l2_fh_open +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x31500f27 v4l2_device_register_subdev_nodes +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x325f945a v4l2_fh_exit +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x333d01e2 v4l2_event_queue_fh +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x40cdb50a v4l2_device_register_subdev +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x81185dd0 v4l2_device_register +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x89c7a060 v4l2_event_queue +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x92142dc8 v4l2_event_pending +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x9b026355 v4l2_event_subdev_unsubscribe +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x9f8ebf7a v4l2_event_unsubscribe_all +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xa6b5521c v4l2_fh_add +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xc6977064 v4l2_device_disconnect +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xcaac7201 v4l2_device_unregister_subdev +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xd853213a v4l2_device_put +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xda1af007 v4l2_fh_release +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xdd3b7a53 v4l2_event_unsubscribe +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xe3d49b30 v4l2_device_unregister +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xe799f864 v4l2_device_set_name +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xee818760 v4l2_event_subscribe +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xf2f4099e v4l2_fh_is_singular +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xf9129ce7 v4l2_fh_del +EXPORT_SYMBOL_GPL drivers/mfd/88pm80x 0x11afe8c8 pm80x_regmap_config +EXPORT_SYMBOL_GPL drivers/mfd/88pm80x 0x52a281a9 pm80x_pm_ops +EXPORT_SYMBOL_GPL drivers/mfd/88pm80x 0x990a7ccb pm80x_init +EXPORT_SYMBOL_GPL drivers/mfd/88pm80x 0xd99fd720 pm80x_deinit +EXPORT_SYMBOL_GPL drivers/mfd/kempld-core 0x06862ba9 kempld_write8 +EXPORT_SYMBOL_GPL drivers/mfd/kempld-core 0x356ea09d kempld_write16 +EXPORT_SYMBOL_GPL drivers/mfd/kempld-core 0x49071efe kempld_read32 +EXPORT_SYMBOL_GPL drivers/mfd/kempld-core 0x4c9e4524 kempld_read16 +EXPORT_SYMBOL_GPL drivers/mfd/kempld-core 0x543b421b kempld_release_mutex +EXPORT_SYMBOL_GPL drivers/mfd/kempld-core 0x8b0aed1f kempld_write32 +EXPORT_SYMBOL_GPL drivers/mfd/kempld-core 0xa66620d7 kempld_get_mutex +EXPORT_SYMBOL_GPL drivers/mfd/kempld-core 0xd639215b kempld_read8 +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-core 0x21b252bb lm3533_write +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-core 0x3fe47061 lm3533_update +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-core 0xd0e13c82 lm3533_read +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-ctrlbank 0x0b34e70a lm3533_ctrlbank_disable +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-ctrlbank 0x46d8544f lm3533_ctrlbank_get_brightness +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-ctrlbank 0x581ee6ea lm3533_ctrlbank_set_pwm +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-ctrlbank 0x64ef2459 lm3533_ctrlbank_set_brightness +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-ctrlbank 0x71a7d70f lm3533_ctrlbank_enable +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-ctrlbank 0xc5cbfb2d lm3533_ctrlbank_set_max_current +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-ctrlbank 0xcf3f983d lm3533_ctrlbank_get_pwm +EXPORT_SYMBOL_GPL drivers/mfd/mc13xxx-core 0x183b2539 mc13xxx_adc_do_conversion +EXPORT_SYMBOL_GPL drivers/mfd/mc13xxx-core 0x25ef5019 mc13xxx_variant_mc13783 +EXPORT_SYMBOL_GPL drivers/mfd/mc13xxx-core 0x37e0a571 mc13xxx_variant_mc34708 +EXPORT_SYMBOL_GPL drivers/mfd/mc13xxx-core 0x488aae1d mc13xxx_common_cleanup +EXPORT_SYMBOL_GPL drivers/mfd/mc13xxx-core 0x65551b39 mc13xxx_variant_mc13892 +EXPORT_SYMBOL_GPL drivers/mfd/mc13xxx-core 0xfd050ae4 mc13xxx_common_init +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x0b089848 pcf50633_read_block +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x0c645691 pcf50633_reg_clear_bits +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x14276d35 pcf50633_register_irq +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x1c11489b pcf50633_reg_read +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x2edbde51 pcf50633_reg_set_bit_mask +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x573d359b pcf50633_write_block +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x6438a759 pcf50633_free_irq +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x78644bfe pcf50633_irq_mask_get +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xe0716fb9 pcf50633_irq_mask +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xe191edf3 pcf50633_reg_write +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xfb13a081 pcf50633_irq_unmask +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-adc 0xad40b9aa pcf50633_adc_sync_read +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-adc 0xc21a998b pcf50633_adc_async_read +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0x0cb48146 pcf50633_gpio_get +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0x202de86f pcf50633_gpio_power_supply_set +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0x6db7caaa pcf50633_gpio_invert_set +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0x9cf9c8cf pcf50633_gpio_invert_get +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0xfe283940 pcf50633_gpio_set +EXPORT_SYMBOL_GPL drivers/mfd/retu-mfd 0x01a33234 retu_write +EXPORT_SYMBOL_GPL drivers/mfd/retu-mfd 0x4fca3918 retu_read +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x02e92fad si476x_core_cmd_fm_phase_diversity +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x109a7e6d si476x_core_has_diversity +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x11959a76 si476x_core_cmd_zif_pin_cfg +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x1ef17097 si476x_core_cmd_fm_rds_status +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x25216e9b si476x_core_cmd_func_info +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x29b5dc73 si476x_core_is_a_secondary_tuner +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x34217042 si476x_core_cmd_agc_status +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x373deca5 si476x_core_cmd_am_seek_start +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x3f6bd755 si476x_core_cmd_am_rsq_status +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x44993d38 si476x_core_cmd_set_property +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x5bd02ce8 si476x_core_has_am +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x701a99e6 si476x_core_cmd_dig_audio_pin_cfg +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x7a03c6d6 si476x_core_set_power_state +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x7bffad3a si476x_core_cmd_get_property +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x8963fb6c si476x_core_is_powered_up +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x995856d9 si476x_core_stop +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x998bce1d si476x_core_cmd_ic_link_gpo_ctl_pin_cfg +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xa5283e45 si476x_core_cmd_power_up +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xac2ebec0 si476x_core_cmd_fm_seek_start +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xb1a82d0c si476x_core_cmd_fm_acf_status +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xb1dcaf2f si476x_core_cmd_fm_tune_freq +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xb3563567 devm_regmap_init_si476x +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xb36fba5b si476x_core_cmd_fm_rds_blockcount +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xc4e8e7f8 si476x_core_cmd_power_down +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xc5c36265 si476x_core_cmd_fm_rsq_status +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xcb3a8149 si476x_core_cmd_ana_audio_pin_cfg +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xcdcce59d si476x_core_is_in_am_receiver_mode +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xce8e5d14 si476x_core_start +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xd18e5df3 si476x_core_cmd_am_tune_freq +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xd8bc9d68 si476x_core_cmd_am_acf_status +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xda9abe33 si476x_core_i2c_xfer +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xe12e0cc6 si476x_core_is_a_primary_tuner +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xf858faf1 si476x_core_cmd_fm_phase_div_status +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xff99d1c9 si476x_core_cmd_intb_pin_cfg +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x0f79bc23 sm501_modify_reg +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x12cf4925 sm501_set_clock +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x1ff91991 sm501_unit_power +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x3f7356eb sm501_misc_control +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0xf4e612c9 sm501_find_clock +EXPORT_SYMBOL_GPL drivers/mfd/ti_am335x_tscadc 0x18365af0 am335x_tsc_se_set +EXPORT_SYMBOL_GPL drivers/mfd/ti_am335x_tscadc 0xd49daf41 am335x_tsc_se_update +EXPORT_SYMBOL_GPL drivers/mfd/ti_am335x_tscadc 0xe88e5837 am335x_tsc_se_clr +EXPORT_SYMBOL_GPL drivers/mfd/tps65217 0x89409dfe tps65217_reg_write +EXPORT_SYMBOL_GPL drivers/mfd/tps65217 0xc427bc00 tps65217_set_bits +EXPORT_SYMBOL_GPL drivers/mfd/tps65217 0xe7424a2d tps65217_clear_bits +EXPORT_SYMBOL_GPL drivers/mfd/tps65217 0xf945eddd tps65217_reg_read +EXPORT_SYMBOL_GPL drivers/mfd/twl4030-madc 0x4362dc66 twl4030_get_madc_conversion +EXPORT_SYMBOL_GPL drivers/mfd/twl4030-madc 0x9effbf1a twl4030_madc_conversion +EXPORT_SYMBOL_GPL drivers/mfd/ucb1400_core 0x83fc5b8a ucb1400_adc_read +EXPORT_SYMBOL_GPL drivers/misc/eeprom/eeprom_93cx6 0x27cb133b eeprom_93cx6_multiread +EXPORT_SYMBOL_GPL drivers/misc/eeprom/eeprom_93cx6 0x63d2ff63 eeprom_93cx6_wren +EXPORT_SYMBOL_GPL drivers/misc/eeprom/eeprom_93cx6 0x822222db eeprom_93cx6_write +EXPORT_SYMBOL_GPL drivers/misc/eeprom/eeprom_93cx6 0x98bb5a22 eeprom_93cx6_read +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x3949e630 enclosure_add_device +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x47eafdde enclosure_component_register +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x4e8d6596 enclosure_register +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x504e8051 enclosure_unregister +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x51e1374e enclosure_find +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x7da4510a enclosure_remove_device +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x9de2b365 enclosure_for_each_device +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0x0d477ee9 lis3lv02d_poweron +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0x3fded69c lis3lv02d_poweroff +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0x461f2e90 lis3lv02d_remove_fs +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0x96a8a370 lis3_dev +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0x9855ca68 lis3lv02d_joystick_enable +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0xaad2e43e lis3lv02d_joystick_disable +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0xb021af0d lis3lv02d_init_device +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0xbfbc83b4 lis3lv02d_init_dt +EXPORT_SYMBOL_GPL drivers/misc/ti-st/st_drv 0x9dcdd96e st_unregister +EXPORT_SYMBOL_GPL drivers/misc/ti-st/st_drv 0xe573fed8 st_register +EXPORT_SYMBOL_GPL drivers/mmc/host/dw_mmc-pltfm 0xb3606526 dw_mci_pltfm_pmops +EXPORT_SYMBOL_GPL drivers/mmc/host/dw_mmc-pltfm 0xdea14a22 dw_mci_pltfm_remove +EXPORT_SYMBOL_GPL drivers/mmc/host/dw_mmc-pltfm 0xf1f22ba4 dw_mci_pltfm_register +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0001 0x408f655a cfi_cmdset_0003 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0001 0x7fa640b2 cfi_cmdset_0001 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0001 0xbd9140cc cfi_cmdset_0200 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0002 0x3b29ef67 cfi_cmdset_0701 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0002 0xb6826b31 cfi_cmdset_0006 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0002 0xc8d020e1 cfi_cmdset_0002 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0020 0xcedc9129 cfi_cmdset_0020 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_util 0x3136ff5d cfi_qry_present +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_util 0x45fb2bf8 cfi_qry_mode_on +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_util 0xd05b0972 cfi_qry_mode_off +EXPORT_SYMBOL_GPL drivers/mtd/onenand/onenand 0x015e8fdf onenand_scan +EXPORT_SYMBOL_GPL drivers/mtd/onenand/onenand 0xdf665d99 onenand_release +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x10d11816 ubi_open_volume_nm +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x349017a7 ubi_close_volume +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x38e10c1d ubi_flush +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x3d292681 ubi_do_get_device_info +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x42801d20 ubi_sync +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x5cfdd22d ubi_get_device_info +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x5f26c0dd ubi_leb_unmap +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x85a8ee76 ubi_unregister_volume_notifier +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x9e5b192e ubi_leb_read +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xa1734831 ubi_leb_erase +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xa238a960 ubi_get_volume_info +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xb0fdabe2 ubi_leb_write +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xb7c9574f ubi_open_volume_path +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xb8eb5c13 ubi_leb_map +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xccd1fa10 ubi_open_volume +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xd8ad6a67 ubi_is_mapped +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xdfe195d4 ubi_leb_change +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xf5ee9ba8 ubi_register_volume_notifier +EXPORT_SYMBOL_GPL drivers/net/can/c_can/c_can 0x33d47984 c_can_power_down +EXPORT_SYMBOL_GPL drivers/net/can/c_can/c_can 0x8a627eaa alloc_c_can_dev +EXPORT_SYMBOL_GPL drivers/net/can/c_can/c_can 0x90d646cf unregister_c_can_dev +EXPORT_SYMBOL_GPL drivers/net/can/c_can/c_can 0xad679397 c_can_power_up +EXPORT_SYMBOL_GPL drivers/net/can/c_can/c_can 0xb870cc17 register_c_can_dev +EXPORT_SYMBOL_GPL drivers/net/can/c_can/c_can 0xc5ad767e free_c_can_dev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x04d35a33 can_bus_off +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x14c952a7 alloc_can_err_skb +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x1b6ea599 alloc_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x222c295a can_len2dlc +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x2487948e devm_can_led_init +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x4add0ea7 alloc_can_skb +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x4f144ddc can_led_event +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x582dccd3 can_put_echo_skb +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x71ca400c can_get_echo_skb +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x8678cb0f free_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x89df8e83 safe_candev_priv +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xa333b28c unregister_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xacbfbbc2 close_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xb346573b can_dlc2len +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xd9c650a2 open_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xf97ce6af register_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xffbd1437 can_free_echo_skb +EXPORT_SYMBOL_GPL drivers/net/can/cc770/cc770 0x1a886b38 unregister_cc770dev +EXPORT_SYMBOL_GPL drivers/net/can/cc770/cc770 0x649ef58f free_cc770dev +EXPORT_SYMBOL_GPL drivers/net/can/cc770/cc770 0x8db626a3 alloc_cc770dev +EXPORT_SYMBOL_GPL drivers/net/can/cc770/cc770 0xbeba2d00 register_cc770dev +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x49ebd0d2 sja1000_interrupt +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x5bb464d1 unregister_sja1000dev +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x662917ab alloc_sja1000dev +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0xd39498bd register_sja1000dev +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0xe7879cfb free_sja1000dev +EXPORT_SYMBOL_GPL drivers/net/ethernet/cadence/macb 0x051e8cf4 macb_set_hwaddr +EXPORT_SYMBOL_GPL drivers/net/ethernet/cadence/macb 0x1afd2feb macb_mii_init +EXPORT_SYMBOL_GPL drivers/net/ethernet/cadence/macb 0x2e6c253f macb_ioctl +EXPORT_SYMBOL_GPL drivers/net/ethernet/cadence/macb 0x51c0599d macb_set_rx_mode +EXPORT_SYMBOL_GPL drivers/net/ethernet/cadence/macb 0x5feb13de macb_get_stats +EXPORT_SYMBOL_GPL drivers/net/ethernet/cadence/macb 0x7b67d152 macb_get_hwaddr +EXPORT_SYMBOL_GPL drivers/net/ethernet/cadence/macb 0xaf5fe2e0 macb_ethtool_ops +EXPORT_SYMBOL_GPL drivers/net/macvlan 0x05beb5c3 macvlan_start_xmit +EXPORT_SYMBOL_GPL drivers/net/macvlan 0x14410eb4 macvlan_link_register +EXPORT_SYMBOL_GPL drivers/net/macvlan 0x6ef96a51 macvlan_common_newlink +EXPORT_SYMBOL_GPL drivers/net/macvlan 0x97cf41c0 macvlan_dellink +EXPORT_SYMBOL_GPL drivers/net/macvlan 0xea874fb0 macvlan_common_setup +EXPORT_SYMBOL_GPL drivers/net/macvtap 0x25340dcf macvtap_get_socket +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0x1402e14c usbnet_cdc_bind +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0xaaa8f64d usbnet_cdc_status +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0xd8808c58 usbnet_cdc_unbind +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0xfaa1f2ad usbnet_generic_cdc_bind +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ncm 0x0535b2be cdc_ncm_select_altsetting +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ncm 0x1b0e5ac8 cdc_ncm_bind_common +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ncm 0x577df68c cdc_ncm_rx_verify_ndp16 +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ncm 0x8782be05 cdc_ncm_unbind +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ncm 0xb8b6fc16 cdc_ncm_rx_verify_nth16 +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ncm 0xd94c72f8 cdc_ncm_fill_tx_frame +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x260c8501 rndis_rx_fixup +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x2d194597 rndis_unbind +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x43db09d6 rndis_tx_fixup +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0xa8dff71c rndis_command +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0xc9937260 generic_rndis_bind +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0xea67e8f6 rndis_status +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x19e3af5e usbnet_get_endpoints +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x23fc7d36 usbnet_disconnect +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x257758e7 usbnet_unlink_rx_urbs +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x29fd81fd usbnet_change_mtu +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x395f7d9b usbnet_pause_rx +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x3adc3a20 usbnet_get_drvinfo +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x3f8e164f usbnet_set_settings +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x4645d48e usbnet_set_msglevel +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x51b27af3 usbnet_get_ethernet_addr +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x52650a82 usbnet_suspend +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x56f68d77 usbnet_defer_kevent +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x59ba66cf usbnet_purge_paused_rxq +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x5b1eb7eb usbnet_start_xmit +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x7fb313c6 usbnet_write_cmd_async +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x87f3494c usbnet_resume +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xafa37d78 usbnet_write_cmd +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xb16fae45 usbnet_stop +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xb2113bb2 usbnet_open +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xb5b437cb usbnet_nway_reset +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xbcf495c4 usbnet_read_cmd +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xbe2ee965 usbnet_get_link +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xbfc2d6a8 usbnet_get_settings +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xc0e04adf usbnet_status_stop +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xc680ecbe usbnet_get_msglevel +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xce440fe8 usbnet_read_cmd_nopm +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xcf2e52e3 usbnet_skb_return +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xd3100c96 usbnet_probe +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xd8cc2178 usbnet_resume_rx +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xdfbc7fea usbnet_write_cmd_nopm +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xe19d2c92 usbnet_tx_timeout +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xf1b90955 usbnet_status_start +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x0d21affa i2400m_tx_msg_sent +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x2b606235 i2400m_dev_reset_handle +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x5295d4e2 i2400m_release +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x5ba9cfa9 i2400m_init +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x613d8904 i2400m_reset +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x65ff69f8 i2400m_dev_bootstrap +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x6faf1438 i2400m_post_reset +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x7fe9b6d4 i2400m_rx +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x837e6bf9 i2400m_setup +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x8ee326b2 i2400m_is_boot_barker +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x90bff05a i2400m_netdev_setup +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x97a1da01 i2400m_tx +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xa5c9fbd2 i2400m_tx_msg_get +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xb00b793c i2400m_bm_cmd_prepare +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xcaa14523 i2400m_pre_reset +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xee464b05 i2400m_error_recovery +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xf1db5203 i2400m_cmd_enter_powersave +EXPORT_SYMBOL_GPL drivers/net/wireless/cw1200/cw1200_core 0x642e2e03 cw1200_can_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/cw1200/cw1200_core 0x76f52061 cw1200_core_probe +EXPORT_SYMBOL_GPL drivers/net/wireless/cw1200/cw1200_core 0x93d49298 cw1200_irq_handler +EXPORT_SYMBOL_GPL drivers/net/wireless/cw1200/cw1200_core 0xc5b75cc6 cw1200_core_release +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x02be2568 lbs_remove_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x2107f0e3 lbs_stop_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x2f467e02 __lbs_cmd +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x454e3e3a lbs_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x5773b66d lbs_add_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x5fdf38b8 lbs_disablemesh +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x62414262 lbs_host_to_card_done +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x69d2a845 lbs_start_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x79a30141 lbs_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x86984183 lbs_get_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x9f4a5dd2 lbs_host_sleep_cfg +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xbe0dc2d7 lbs_cmd_copyback +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xcbcd6aba lbs_get_firmware_async +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xd34caa8c lbs_queue_event +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xd65df09e lbs_process_rxed_packet +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xe76b95ed lbs_send_tx_feedback +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xf4882946 lbs_notify_command_response +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xf64277de lbs_debug +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x07c0932d lbtf_cmd_copyback +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x4e2ebdd7 __lbtf_cmd +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x5a8254d1 lbtf_cmd_response_rx +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x6f3422ce lbtf_send_tx_feedback +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x9626853d lbtf_bcn_sent +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x987d2af6 lbtf_rx +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x99053610 lbtf_add_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xc52366c4 lbtf_remove_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xc85e6899 lbtf_debug +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf_usb 0x31101c05 if_usb_reset_device +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf_usb 0x84fee960 if_usb_prog_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x066e91a7 mwifiex_write_data_complete +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x132a252b mwifiex_deauthenticate +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x289b0628 mwifiex_add_virtual_intf +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x39b04e3b mwifiex_process_sleep_confirm_resp +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x4472b24c mwifiex_process_hs_config +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x48804f8c mwifiex_init_shutdown_fw +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x592933eb mwifiex_remove_card +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x8879c13c mwifiex_cancel_hs +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x8d1d2647 mwifiex_main_process +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0xa538f7bf mwifiex_handle_rx_packet +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0xaa0c3fce mwifiex_add_card +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0xb3f1415d mwifiex_disable_auto_ds +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0xb948aef7 mwifiex_del_virtual_intf +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0xf021d924 mwifiex_enable_hs +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x02e17d42 p54_rx +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x12e10717 p54_parse_eeprom +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x5dda97f9 p54_read_eeprom +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x61f416ee p54_free_skb +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x6e393534 p54_register_common +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x78d3bc94 p54_unregister_common +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x9a84afe4 p54_free_common +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x9bc51aa7 p54_init_common +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0xcf1a8485 p54_parse_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x0a55619b rt2800_sta_add +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x0c8ae20b rt2800_config_erp +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x0cd7ce64 rt2800_get_tsf +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x0d81f2eb rt2800_disable_wpdma +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x0fcfe699 rt2800_process_rxwi +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x176bf7f8 rt2800_rfkill_poll +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x1904e819 rt2800_config +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x270ef7e5 rt2800_read_eeprom_efuse +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x34dc7ae3 rt2800_conf_tx +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x35d087a6 rt2800_efuse_detect +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x45cfb6b6 rt2800_ampdu_action +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x4aceac7a rt2800_wait_csr_ready +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x4f59a515 rt2800_txdone_entry +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x54071b9d rt2800_write_tx_data +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x54fa597f rt2800_get_tkip_seq +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x6b349161 rt2800_gain_calibration +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x6c5d1873 rt2800_reset_tuner +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x7cdd464e rt2800_probe_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x7fb30729 rt2800_sta_remove +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x8de7047f rt2800_wait_wpdma_ready +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x97fc61f2 rt2800_link_stats +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x9f0c4821 rt2800_mcu_request +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xaabdcd39 rt2800_vco_calibration +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xae9c803f rt2800_config_shared_key +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xb3ad184e rt2800_disable_radio +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xc487bf42 rt2800_config_filter +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xc538ba9c rt2800_write_beacon +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xcc33c99a rt2800_clear_beacon +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xd13dbbbc rt2800_enable_radio +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xd4709561 rt2800_config_pairwise_key +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xd4720dc7 rt2800_set_rts_threshold +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xda455020 rt2800_check_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xdc436833 rt2800_load_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xe9fd49bc rt2800_link_tuner +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xed1c9c7d rt2800_config_intf +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xee0f6256 rt2800_rt2x00debug +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xfae042ef rt2800_config_ant +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xfcebb9aa rt2800_get_survey +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x018eb6af rt2x00queue_stop_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x08d2fa1d rt2x00mac_set_tim +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x0ddd9800 rt2x00lib_probe_dev +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x0f87a19c rt2x00lib_txdone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x13f90c4a rt2x00lib_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x17546c0d rt2x00mac_tx +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x24333e85 rt2x00lib_txdone_noinfo +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x24c28128 rt2x00lib_get_bssidx +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x256f72b2 rt2x00lib_rxdone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x29412d88 rt2x00mac_tx_frames_pending +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x29706014 rt2x00mac_conf_tx +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x33ed28fb rt2x00queue_pause_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x33ee1882 rt2x00queue_map_txskb +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x3c59d386 rt2x00queue_start_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x44c47586 rt2x00mac_sta_add +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x452f434b rt2x00mac_flush +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x50c2b68f rt2x00queue_for_each_entry +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x573b76c0 rt2x00lib_dmadone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x62ac008a rt2x00queue_flush_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x67f93ee2 rt2x00mac_rfkill_poll +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x693bdba9 rt2x00mac_get_stats +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x6bbc8688 rt2x00debug_dump_frame +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x710a5a76 rt2x00mac_configure_filter +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x719d85a5 rt2x00mac_set_antenna +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x78f3ad00 rt2x00queue_unpause_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x8664f112 rt2x00queue_start_queues +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x88ddd35b rt2x00mac_remove_interface +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x8df7671c rt2x00lib_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x907082a1 rt2x00queue_get_entry +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x91a7ff37 rt2x00mac_config +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xa2eea526 rt2x00lib_dmastart +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xab743dff rt2x00mac_sw_scan_start +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xabace119 rt2x00mac_get_ringparam +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xad5ba696 rt2x00mac_get_antenna +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xbc79e65b rt2x00queue_unmap_skb +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xbea60b90 rt2x00mac_bss_info_changed +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xbf3a779f rt2x00mac_sw_scan_complete +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xc1011d27 rt2x00lib_beacondone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xc1dbbafe rt2x00queue_flush_queues +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xc4ebbe1b rt2x00queue_stop_queues +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xcb8beb11 rt2x00mac_set_key +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xdaaae7ae rt2x00mac_stop +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xea82c65f rt2x00lib_pretbtt +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xf11c57e4 rt2x00mac_add_interface +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xf223aa46 rt2x00mac_start +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xf7a06163 rt2x00mac_sta_remove +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xfbe6d86b rt2x00lib_remove_dev +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x151713de rt2x00usb_clear_entry +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x1a0fcf5d rt2x00usb_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x1c6ce53d rt2x00usb_disconnect +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x1cf839ae rt2x00usb_vendor_request +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x2c8a5799 rt2x00usb_register_read_async +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x2f9deca1 rt2x00usb_regbusy_read +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x363e2881 rt2x00usb_vendor_request_buff +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x3d42dbcd rt2x00usb_initialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x7d93d3ac rt2x00usb_probe +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x83912d48 rt2x00usb_flush_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x93abc13d rt2x00usb_vendor_req_buff_lock +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xb0d398f5 rt2x00usb_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xbf91260d rt2x00usb_kick_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xc3c220e5 rt2x00usb_watchdog +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xc50e068a rt2x00usb_disable_radio +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xdb34f2ea rt2x00usb_uninitialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x415536cb rtl92c_set_p2p_ps_offload_cmd +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0x09b826e8 rtl_deinit_core +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0x11f05ebd rtl_deinit_deferred_work +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0x1590f725 rtl_recognize_peer +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0x241dedc1 rtl_tid_to_ac +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0x2d882d91 rtl_global_var +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0x350050ea rtl_init_core +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0x36f7b472 rtl_p2p_info +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0x417f3b55 rtl_deinit_rfkill +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0x467038a5 read_efuse_byte +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0x6955c3e9 rtl_swlps_beacon +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0x724dda66 rtl_action_proc +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0x8c433b65 rtl_ips_nic_on +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0x978620bb rtl_init_rx_config +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0x9a0f8bc5 rtl_attribute_group +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0xa148ca88 rtl_ops +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0xa687adc7 rtl_is_special_data +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0xc806fa49 rtl_dbgp_flag_init +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0xdb5831f9 rtl_tx_mgmt_proc +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0xf3c36e39 rtl_beacon_statistic +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0xf8ff6add rtl_lps_change_work_callback +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wl1251/wl1251 0x624a6608 wl1251_alloc_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wl1251/wl1251 0x7cc58c75 wl1251_init_ieee80211 +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wl1251/wl1251 0xb1d633b0 wl1251_free_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x0144aea7 wl1271_cmd_test +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x05294fba wl1271_format_buffer +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x150a68a1 wlcore_remove +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x18c2efb6 wlcore_synchronize_interrupts +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x1a21c49d wlcore_free_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x1c13fa70 wlcore_disable_interrupts_nosync +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x1d77054f wl12xx_cmd_build_probe_req +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x2574f47f wlcore_event_inactive_sta +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x2d11bdf5 wl1271_debugfs_update_stats +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x2d936e82 wl1271_cmd_configure +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x329c67bd wlcore_probe +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x35b6c514 wlcore_set_partition +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x39f5456f wlcore_enable_interrupts +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x41d3d20a wl1271_acx_set_ht_capabilities +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x48cecabd wlcore_cmd_wait_for_event_or_timeout +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x53dff67d wl12xx_debug_level +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x558b8813 wl1271_acx_pm_config +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x575680f2 wlcore_set_key +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x581c4a5e wlcore_event_dummy_packet +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x59b5e1f9 wlcore_event_max_tx_failure +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x5c26622c wlcore_boot_run_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x686520eb wl1271_cmd_data_path +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x6bb047a7 wlcore_event_channel_switch +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x6ea31691 wlcore_boot_upload_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x71ad81c0 wlcore_event_sched_scan_completed +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x74936f94 wl1271_acx_sleep_auth +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x78094868 wlcore_event_roc_complete +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x89796dc6 wlcore_alloc_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x9282b8b0 wlcore_event_rssi_trigger +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xa54e1d70 wlcore_boot_upload_nvs +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xc37edb22 wlcore_event_ba_rx_constraint +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xced70596 wl12xx_acx_mem_cfg +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xd5d177a6 wlcore_event_beacon_loss +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xd793da7e wlcore_set_scan_chan_params +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xd97e97b7 wlcore_translate_addr +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xddae499f wl1271_tx_min_rate_get +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xdf173b08 wl1271_cmd_send +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xec86c843 wlcore_scan_sched_scan_results +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xf48a40f3 wl1271_acx_init_mem_config +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xf4adf860 wlcore_event_soft_gemini_sense +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xf574f90a wlcore_scan_sched_scan_ssid_list +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xfafd9180 wl1271_tx_flush +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xfe4824b0 wlcore_disable_interrupts +EXPORT_SYMBOL_GPL drivers/power/pcf50633-charger 0x71797ea0 pcf50633_mbc_usb_curlim_set +EXPORT_SYMBOL_GPL drivers/power/pcf50633-charger 0xc463409c pcf50633_mbc_get_status +EXPORT_SYMBOL_GPL drivers/power/pcf50633-charger 0xc52a80ac pcf50633_mbc_get_usb_online_status +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0x815ae267 mc13xxx_get_num_regulators_dt +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0xb052e270 mc13xxx_regulator_ops +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0xb178e6a6 mc13xxx_fixed_regulator_ops +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0xc98a0fb1 mc13xxx_parse_regulators_dt +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0xd535126c mc13xxx_fixed_regulator_set_voltage +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x76d264d1 wm8350_register_led +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0xaa3097e2 wm8350_ldo_set_slot +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0xba58661b wm8350_dcdc25_set_mode +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0xbf9d623e wm8350_dcdc_set_slot +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0xc428de47 wm8350_register_regulator +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0xffea665e wm8350_isink_set_flash +EXPORT_SYMBOL_GPL drivers/regulator/wm8400-regulator 0xa0eb2916 wm8400_register_regulator +EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0x0fdf86c9 scsi_dh_set_params +EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0x128d4bf1 scsi_dh_activate +EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0x332e339c scsi_register_device_handler +EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0x4afe59c9 scsi_dh_detach +EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0x593a36c2 scsi_dh_handler_exist +EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0x691824b3 scsi_unregister_device_handler +EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0xc61068c3 scsi_dh_attached_handler_name +EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0xe9da5ee8 scsi_dh_attach +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x082ba701 fcoe_get_wwn +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x0fb51275 fcoe_queue_timer +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x1f943dcd fcoe_ctlr_device_add +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x29301c3d fcoe_libfc_config +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x374c1e1c fcoe_wwn_from_mac +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x4c72a507 fcoe_get_lesb +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x5387e01d fcoe_get_paged_crc_eof +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x5c9a546b fcoe_check_wait_queue +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x6c87eaf9 fcoe_fcf_device_add +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x7112d074 fcoe_validate_vport_create +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x783a9303 fcoe_ctlr_device_delete +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x84b3d915 fcoe_wwn_to_str +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x875c3fc1 fcoe_fc_crc +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xba03a2ae fcoe_ctlr_get_lesb +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xd6c2bead fcoe_clean_pending_queue +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xdd2c550d fcoe_link_speed_update +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xec995fe6 __fcoe_get_lesb +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xf36b48b4 fcoe_fcf_device_delete +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xf6212d52 fcoe_start_io +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0x032fb243 iscsi_boot_destroy_kset +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0x1070b933 iscsi_boot_create_target +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0x329ad5e6 iscsi_boot_create_kset +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0x9631489d iscsi_boot_create_host_kset +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0xa5dede7b iscsi_boot_create_initiator +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0xff40299a iscsi_boot_create_ethernet +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x0f506524 iscsi_put_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x100165d6 iscsi_conn_send_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x1016a7bb iscsi_eh_target_reset +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x106d891a iscsi_conn_stop +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x12b2ad06 iscsi_switch_str_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x141ff0f9 iscsi_set_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x16f0b43e iscsi_conn_queue_work +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x1989b06f iscsi_eh_recover_target +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x1ee204fa iscsi_conn_setup +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x2251b0e2 iscsi_itt_to_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x25f0a072 iscsi_conn_teardown +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x2b9a9c8d iscsi_conn_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x2eb88f8b iscsi_pool_init +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x2f9ec6fb iscsi_suspend_queue +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x35ffcf13 iscsi_change_queue_depth +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x3d26e07e iscsi_queuecommand +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x4298254b iscsi_conn_get_addr_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x48154ff1 iscsi_verify_itt +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x4de3803f iscsi_session_teardown +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x4f67443f iscsi_prep_data_out_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x56c2f47d __iscsi_complete_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x585850f1 __iscsi_get_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x5b531823 iscsi_requeue_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x5bce2b41 iscsi_complete_scsi_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x5d9faf6b iscsi_target_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x62585721 iscsi_itt_to_ctask +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x69676802 iscsi_eh_device_reset +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x6b3e43ee iscsi_session_recovery_timedout +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x71d38ded iscsi_conn_start +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x7c5bb464 iscsi_eh_session_reset +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x7c93926b iscsi_host_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x80960902 iscsi_host_add +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x82429239 iscsi_update_cmdsn +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x9976a1ba iscsi_host_free +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x9d4836ef iscsi_conn_bind +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xa4832cf0 iscsi_pool_free +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xb2d2ba39 iscsi_session_failure +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xb2dee4c8 iscsi_host_set_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xc1cfee66 iscsi_complete_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xd712418e __iscsi_put_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xd78205c2 iscsi_host_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xd961b8e9 iscsi_suspend_tx +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xdc9dd4ae iscsi_conn_failure +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xe6d4d1d2 iscsi_host_remove +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xeadb83db iscsi_session_setup +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xf77e3e99 iscsi_eh_abort +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xf7e17a68 iscsi_session_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x12cfb26c iscsi_tcp_task_init +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x16952ba1 iscsi_tcp_task_xmit +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x2e87ba20 iscsi_tcp_conn_teardown +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x37279fdd iscsi_tcp_conn_setup +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x51ac6f52 iscsi_tcp_recv_skb +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x521a65dd iscsi_tcp_r2tpool_free +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x5caf66f6 iscsi_tcp_hdr_recv_prep +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x74707268 iscsi_segment_seek_sg +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x78a6f71f iscsi_tcp_r2tpool_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x7e495584 iscsi_tcp_conn_get_stats +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x8d4083a7 iscsi_tcp_cleanup_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xa3146d29 iscsi_tcp_dgst_header +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xa3c45113 iscsi_tcp_recv_segment_is_hdr +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xaf2ec3b5 iscsi_tcp_segment_done +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xbb6def21 iscsi_tcp_set_max_r2t +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xe760cf97 iscsi_tcp_segment_unmap +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xf1b73b80 iscsi_segment_init_linear +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x0645aefb sas_target_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x1613db85 sas_ata_schedule_reset +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x25aa7dec sas_eh_device_reset_handler +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x28f429bf sas_register_ha +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x51294080 sas_phy_reset +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x544a2d71 sas_unregister_ha +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x587df329 sas_alloc_slow_task +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x5b7959bb sas_queuecommand +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x606bbdfd sas_domain_release_transport +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x6235e2ff sas_change_queue_depth +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x73c60fdc sas_target_destroy +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x82f435da sas_get_local_phy +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x8b342414 sas_eh_abort_handler +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x9963dacb sas_request_addr +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xa87986c2 sas_eh_bus_reset_handler +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xab55dbdb sas_drain_work +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xabe70624 sas_ssp_task_response +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xac6d68a3 sas_slave_configure +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xba289ead sas_free_task +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xcfee8bfe sas_ioctl +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xd5526106 sas_domain_attach_transport +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xeb27e7b4 sas_bios_param +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xf51372f7 sas_task_abort +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xfb11fbe0 sas_alloc_task +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xfc9e9e82 sas_change_queue_type +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x3b7bfbc5 scsi_host_get_command +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x519fc426 scsi_tgt_it_nexus_destroy +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x67d845ae scsi_tgt_alloc_queue +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x8ebc1726 scsi_tgt_free_queue +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x93f0582b scsi_host_put_command +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xb6313ba3 scsi_tgt_tsk_mgmt_request +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xb8c6b3e8 scsi_tgt_cmd_to_host +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xda5bb610 scsi_tgt_it_nexus_create +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xe610192d scsi_tgt_queue_command +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x014bf167 iscsi_unregister_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x0efae10c iscsi_is_flashnode_conn_dev +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x260bc8cf iscsi_session_chkready +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x26fdc443 iscsi_create_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x2d47458b iscsi_destroy_endpoint +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x3121fe62 iscsi_destroy_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x31873bf9 iscsi_destroy_all_flashnode +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x36fa5d18 iscsi_flashnode_bus_match +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x3ad5816c iscsi_block_scsi_eh +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x4810c3f9 iscsi_ping_comp_event +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x502658d4 iscsi_get_port_state_name +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x57cb9ce8 iscsi_block_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x60167aa5 iscsi_destroy_flashnode_sess +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x6214f2c1 iscsi_get_port_speed_name +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x64f761e5 iscsi_create_endpoint +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x695fd809 iscsi_unblock_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x699fe53e iscsi_get_discovery_parent_name +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x6d54372f iscsi_add_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x7a93f160 iscsi_session_event +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x8164baab iscsi_host_for_each_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x8f175c78 iscsi_find_flashnode_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x8fe39912 iscsi_destroy_iface +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x9c9db2e7 iscsi_register_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x9eaa5147 iscsi_create_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x9ffe991d iscsi_create_flashnode_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xa5ad31b7 iscsi_conn_error_event +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xacd37bb5 iscsi_is_session_dev +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xafed4406 iscsi_conn_login_event +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xbc53fed3 iscsi_recv_pdu +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xbcb482da iscsi_alloc_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xc316f244 iscsi_offload_mesg +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xc5ea3a73 iscsi_free_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xc9332e33 iscsi_is_session_online +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xcbb62912 iscsi_find_flashnode_sess +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xd324455e iscsi_scan_finished +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xd7fbb1e5 iscsi_destroy_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xddd15435 iscsi_create_iface +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xe4ef90ab iscsi_lookup_endpoint +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xe8b4ec45 iscsi_create_flashnode_sess +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xf009eda7 iscsi_post_host_event +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xf61ae597 iscsi_remove_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0x1f5b0085 sas_tlr_supported +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0x3dc324e1 sas_is_tlr_enabled +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0x6cc5fa86 sas_enable_tlr +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0xe32bd2c5 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 0x11389261 srp_rport_add +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x1e4d6e4a srp_release_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x2c45defa srp_rport_del +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0xe2267e4a srp_attach_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0xf90fea0c srp_remove_host +EXPORT_SYMBOL_GPL drivers/scsi/ufs/ufshcd 0x0074009e ufshcd_remove +EXPORT_SYMBOL_GPL drivers/scsi/ufs/ufshcd 0x09cd7e14 ufshcd_resume +EXPORT_SYMBOL_GPL drivers/scsi/ufs/ufshcd 0x96030c12 ufshcd_init +EXPORT_SYMBOL_GPL drivers/scsi/ufs/ufshcd 0x9b0fd69f ufshcd_suspend +EXPORT_SYMBOL_GPL drivers/spi/spi-bitbang 0x1bd4d08e spi_bitbang_transfer +EXPORT_SYMBOL_GPL drivers/spi/spi-bitbang 0x34cbcd28 spi_bitbang_setup +EXPORT_SYMBOL_GPL drivers/spi/spi-bitbang 0x34d0a95b spi_bitbang_cleanup +EXPORT_SYMBOL_GPL drivers/spi/spi-bitbang 0x52ac1512 spi_bitbang_setup_transfer +EXPORT_SYMBOL_GPL drivers/spi/spi-bitbang 0x70697e9d spi_bitbang_stop +EXPORT_SYMBOL_GPL drivers/spi/spi-bitbang 0xc4406aff spi_bitbang_start +EXPORT_SYMBOL_GPL drivers/spi/spi-dw 0x112368a6 dw_spi_xfer_done +EXPORT_SYMBOL_GPL drivers/spi/spi-dw 0x2843aaa0 dw_spi_resume_host +EXPORT_SYMBOL_GPL drivers/spi/spi-dw 0x5f2fcf12 dw_spi_remove_host +EXPORT_SYMBOL_GPL drivers/spi/spi-dw 0x806f578c dw_spi_suspend_host +EXPORT_SYMBOL_GPL drivers/spi/spi-dw 0x8e9e4411 dw_spi_add_host +EXPORT_SYMBOL_GPL drivers/ssb/ssb 0x63a93d84 ssb_pmu_spuravoid_pllupdate +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x0cd330f4 range_unknown +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x0ec1ce82 comedi_dev_from_minor +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x21102f87 range_0_32mA +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x24628c89 comedi_to_usb_dev +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x2f0ad9d3 range_bipolar5 +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x3b3d75be comedi_request_region +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x3c8bbdc8 comedi_usb_auto_unconfig +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x3e816e57 comedi_buf_write_free +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x4236eaaf range_4_20mA +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x4fe634f3 range_bipolar2_5 +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x61c8045b __comedi_request_region +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x6bd2179b comedi_to_usb_interface +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x6d2691d7 comedi_usb_auto_config +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x7a4e90e5 comedi_driver_unregister +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x8113872c range_unipolar10 +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x87048804 comedi_usb_driver_unregister +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x87830076 comedi_legacy_detach +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x9d1a9148 comedi_auto_config +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xa4a783d7 comedi_alloc_subdevices +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xa597229f comedi_error +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xa8aca767 comedi_check_chanlist +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xacffa2d5 comedi_buf_memcpy_from +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xb5eb4b2f comedi_buf_read_free +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xb679cebc range_0_20mA +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xbb52fc7f range_bipolar10 +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xbbfe1652 comedi_buf_read_alloc +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xbc360fa0 comedi_buf_read_n_available +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xbd61eb1f comedi_buf_get +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xbdbe75c6 range_unipolar2_5 +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xc465f838 comedi_usb_driver_register +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xd24ff771 comedi_driver_register +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xd346c712 comedi_set_hw_dev +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xd36743f9 comedi_load_firmware +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xdaebe23d comedi_alloc_spriv +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xdb2044b2 range_unipolar5 +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xdcf483fe comedi_is_subdevice_running +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xe2d3d9e0 comedi_event +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xe34347ea comedi_buf_memcpy_to +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xe5ab8579 comedi_buf_write_alloc +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xe811cf93 comedi_auto_unconfig +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xfe4db718 comedi_buf_put +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/8255 0x884b9543 subdev_8255_interrupt +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/8255 0x93ec8ee0 subdev_8255_init_irq +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/8255 0x973adada subdev_8255_init +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/comedi_fc 0x18a201bd cfc_write_array_to_buffer +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/comedi_fc 0x6780ad9f cfc_read_array_from_buffer +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/comedi_fc 0x996380b3 cfc_handle_events +EXPORT_SYMBOL_GPL drivers/staging/comedi/kcomedilib/kcomedilib 0x4807801b comedi_dio_config +EXPORT_SYMBOL_GPL drivers/staging/comedi/kcomedilib/kcomedilib 0xa017d81e comedi_dio_bitfield +EXPORT_SYMBOL_GPL drivers/staging/comedi/kcomedilib/kcomedilib 0xa8789627 comedi_get_n_channels +EXPORT_SYMBOL_GPL drivers/staging/comedi/kcomedilib/kcomedilib 0xad14d633 comedi_close +EXPORT_SYMBOL_GPL drivers/staging/comedi/kcomedilib/kcomedilib 0xb298275f comedi_open +EXPORT_SYMBOL_GPL drivers/staging/comedi/kcomedilib/kcomedilib 0xd5a7dcd4 comedi_find_subdevice_by_type +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0x1a1b5249 oslec_flush +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0x2feda75b oslec_hpf_tx +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0x3227a28e oslec_snapshot +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0x7dc9dddd oslec_adaption_mode +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0xb2c66001 oslec_create +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0xc8b5a524 oslec_free +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0xd370f679 oslec_update +EXPORT_SYMBOL_GPL drivers/staging/iio/addac/adt7316 0x8115517e adt7316_pm_ops +EXPORT_SYMBOL_GPL drivers/staging/rts5139/rts5139 0xbd5a0e51 rts5139_usb_ids +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x0e81c76d spk_serial_out +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x1318acf0 spk_do_catch_up +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x14f06fe7 spk_serial_in_nowait +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x345cf6b4 spk_synth_is_alive_restart +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 0x48ef67f4 synth_add +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x8203ab47 spk_serial_synth_probe +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x86442336 speakup_event +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x8e146195 synth_release_region +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x917a1270 spk_var_store +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x94a4d351 spk_synth_flush +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x9a888082 synth_buffer_getc +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xaa8f2b01 spk_synth_immediate +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xae07fc4a spk_synth_is_alive_nop +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xaf5d671c spk_var_show +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xb2978dbc speakup_info +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xb48956f8 synth_buffer_peek +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 0xd1b551a2 spk_get_var +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xd596878f synth_remove +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/usbip/usbip-core 0x025e0749 usbip_recv_iso +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x1e0b2cd7 usbip_recv +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x3baf1113 usbip_dump_urb +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x47ca5ac1 usbip_stop_eh +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x52d7070b usbip_alloc_iso_desc_pdu +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x5e6fb78b usbip_event_add +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x78b72f44 usbip_debug_flag +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x90140543 usbip_event_happened +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x9e6d50a8 usbip_recv_xbuff +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0xa1658ee0 usbip_pad_iso +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0xb8f8aff1 usbip_start_eh +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0xc0f65da0 sockfd_to_socket +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0xce2a02be dev_attr_usbip_debug +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0xd02753dc usbip_header_correct_endian +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0xe1ea0586 usbip_dump_header +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0xf5647980 usbip_pack_pdu +EXPORT_SYMBOL_GPL drivers/tty/n_tracesink 0x585ebaac n_tracesink_datadrain +EXPORT_SYMBOL_GPL drivers/uio/uio 0x71ded873 __uio_register_device +EXPORT_SYMBOL_GPL drivers/uio/uio 0xa0cd3b8c uio_event_notify +EXPORT_SYMBOL_GPL drivers/uio/uio 0xa95994ce uio_unregister_device +EXPORT_SYMBOL_GPL drivers/usb/atm/usbatm 0x2af58827 usbatm_usb_probe +EXPORT_SYMBOL_GPL drivers/usb/atm/usbatm 0x4c5f1b29 usbatm_usb_disconnect +EXPORT_SYMBOL_GPL drivers/usb/dwc3/dwc3-omap 0x4db92025 dwc3_omap_mailbox +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x0fefca83 config_ep_by_speed +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x13dfd2c7 usb_composite_overwrite_options +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x189d40e5 usb_function_activate +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x1af39c4a usb_function_register +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x1e153d45 usb_composite_setup_continue +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x29a91782 usb_composite_unregister +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x2e09263f usb_copy_descriptors +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x3882f755 usb_assign_descriptors +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x38bf7468 usb_ep_autoconfig +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x4175bc70 usb_string_ids_tab +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x51636daa usb_string_id +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x5ba9cf06 usb_put_function +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x5eed50f0 usb_function_deactivate +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x76156e6c usb_gstrings_attach +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x828db1b3 usb_add_config +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x82a04c3e usb_get_function_instance +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x8fc1a5a1 usb_get_function +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x94d7075a usb_gadget_get_string +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x96ec3ee0 usb_free_all_descriptors +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x970caf91 usb_remove_function +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xba9f76a5 usb_ep_autoconfig_ss +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xc55f7452 usb_put_function_instance +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xc5a7be43 usb_function_unregister +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xc8ecc5a7 usb_add_function +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xcf9249a5 usb_composite_probe +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xd2ea2134 usb_descriptor_fillbuf +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xe2c6601f usb_interface_id +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xedd40c10 usb_add_config_only +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xf3e47e2a usb_string_ids_n +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xf474a207 usb_gadget_config_buf +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xf967b751 usb_ep_autoconfig_reset +EXPORT_SYMBOL_GPL drivers/usb/gadget/u_serial 0x0419b22a gs_alloc_req +EXPORT_SYMBOL_GPL drivers/usb/gadget/u_serial 0x33bfdca2 gserial_alloc_line +EXPORT_SYMBOL_GPL drivers/usb/gadget/u_serial 0x4011abaf gserial_disconnect +EXPORT_SYMBOL_GPL drivers/usb/gadget/u_serial 0x70a367e3 gs_free_req +EXPORT_SYMBOL_GPL drivers/usb/gadget/u_serial 0xb6652875 gserial_free_line +EXPORT_SYMBOL_GPL drivers/usb/gadget/u_serial 0xbc3d3658 gserial_connect +EXPORT_SYMBOL_GPL drivers/usb/misc/ezusb 0x5a2724fa ezusb_fx1_ihex_firmware_download +EXPORT_SYMBOL_GPL drivers/usb/misc/ezusb 0x6aceb2bd ezusb_fx1_set_reset +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x13769695 usb_ftdi_elan_edset_empty +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x1e3c3ed5 usb_ftdi_elan_edset_input +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x1f1b8670 ftdi_elan_gone_away +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x330c1245 usb_ftdi_elan_edset_output +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x35dc3e77 usb_ftdi_elan_edset_setup +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x5e189f92 usb_ftdi_elan_edset_flush +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x69ea6e10 usb_ftdi_elan_write_pcimem +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0xba9c5b6b usb_ftdi_elan_edset_single +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0xffa612f6 usb_ftdi_elan_read_pcimem +EXPORT_SYMBOL_GPL drivers/usb/phy/phy-isp1301 0xe6a543f5 isp1301_get_client +EXPORT_SYMBOL_GPL drivers/usb/phy/phy-samsung-usb 0x2e489e3b samsung_usbphy_set_type +EXPORT_SYMBOL_GPL drivers/usb/phy/phy-samsung-usb 0xb2c91f9f samsung_usbphy_rate_to_clksel_64xx +EXPORT_SYMBOL_GPL drivers/usb/phy/phy-samsung-usb 0xc9fd6d6f samsung_usbphy_parse_dt +EXPORT_SYMBOL_GPL drivers/usb/phy/phy-samsung-usb 0xcf8cbfb5 samsung_usbphy_rate_to_clksel_4x12 +EXPORT_SYMBOL_GPL drivers/usb/phy/phy-samsung-usb 0xec25340d samsung_usbphy_cfg_sel +EXPORT_SYMBOL_GPL drivers/usb/phy/phy-samsung-usb 0xf4bf4eb7 samsung_usbphy_get_refclk_freq +EXPORT_SYMBOL_GPL drivers/usb/phy/phy-samsung-usb 0xfcfcb217 samsung_usbphy_set_isolation_4210 +EXPORT_SYMBOL_GPL drivers/usb/serial/usb_wwan 0xbb90f7c7 usb_wwan_port_probe +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x0c9b5689 usb_serial_handle_dcd_change +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x0e7c7139 usb_serial_generic_open +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x10e1c535 usb_serial_generic_get_icount +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x2058b9c9 usb_serial_generic_close +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x43fcae50 usb_serial_generic_submit_read_urbs +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x4f59cb6c usb_serial_generic_process_read_urb +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x58e42176 usb_serial_generic_chars_in_buffer +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x6a716187 usb_serial_generic_tiocmiwait +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x8b298f3f usb_serial_generic_throttle +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x8fd586c0 usb_serial_generic_write_bulk_callback +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x92c299c6 usb_serial_generic_read_bulk_callback +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x9feeb6a0 usb_serial_register_drivers +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xa0b511c7 usb_serial_port_softint +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xad453427 usb_serial_generic_wait_until_sent +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xb4f83fea usb_serial_handle_break +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xbe2e97e8 usb_serial_handle_sysrq_char +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xc5142254 usb_serial_deregister_drivers +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xddd81d18 usb_serial_generic_unthrottle +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xeabf9052 usb_serial_generic_write +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xf041b6a8 usb_serial_generic_resume +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x1bc3edc2 usb_stor_sense_invalidCDB +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x1d257161 usb_stor_probe2 +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x23e7ec8a usb_stor_reset_resume +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x29c10031 usb_stor_bulk_srb +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x2bd09546 usb_stor_post_reset +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x2e6d0f87 usb_stor_disconnect +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x545d3350 fill_inquiry_response +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x5d461e2a usb_stor_ctrl_transfer +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x7491da2d usb_stor_suspend +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x7be4ba7d usb_stor_bulk_transfer_buf +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x82b25173 usb_stor_Bulk_reset +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x8cc70c37 usb_stor_CB_transport +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x9a0ad2bc usb_stor_transparent_scsi_command +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xac1bac8e usb_stor_Bulk_transport +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xbd4ac951 usb_stor_pre_reset +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xbe1cd82a usb_stor_access_xfer_buf +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xcc24f58c usb_stor_CB_reset +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xcd6340b3 usb_stor_set_xfer_buf +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xcf6aa9f5 usb_stor_probe1 +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xd0cf380b usb_stor_control_msg +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xe2538ad0 usb_stor_resume +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xf01372a0 usb_stor_clear_halt +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xfdc93f2d usb_stor_bulk_transfer_sg +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x0547dff1 vhost_poll_start +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x0b48ea8c vhost_dev_has_owner +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x0bd2322d vhost_dev_init +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x0dbc9cc9 vhost_dev_cleanup +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x269f7a09 vhost_dev_reset_owner_prepare +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x2b0b490d vhost_dev_check_owner +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x2d0790db vhost_vq_access_ok +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x32bcc5e8 vhost_work_init +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x34248c10 vhost_dev_set_owner +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x385b5dce vhost_dev_stop +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x437d14da vhost_add_used_and_signal_n +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x49088cf6 vhost_discard_vq_desc +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x5d5d1f7c vhost_get_vq_desc +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x6894a1a0 vhost_poll_flush +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x6cee1d41 vhost_work_queue +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x8282a6bc vhost_work_flush +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x85c107cb vhost_poll_init +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xa500946a vhost_log_access_ok +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xadda0bf5 vhost_enable_notify +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xaf89b94e vhost_dev_ioctl +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xb2c92ea5 vhost_dev_reset_owner +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xbaf93aaa vhost_log_write +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xbd1acd22 vhost_add_used +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xc549b3a2 vhost_poll_stop +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xcd6501cf vhost_disable_notify +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xd07a5855 vhost_init_used +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xd4f562bc vhost_add_used_n +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xe65ac795 vhost_signal +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xe8285fe4 vhost_add_used_and_signal +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xf000fddc vhost_poll_queue +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xf3e4b016 vhost_vring_ioctl +EXPORT_SYMBOL_GPL drivers/video/auo_k190x 0x09c44d7e auok190x_send_cmdargs_nowait +EXPORT_SYMBOL_GPL drivers/video/auo_k190x 0x34e60476 auok190x_send_cmdargs +EXPORT_SYMBOL_GPL drivers/video/auo_k190x 0x3fa3a0df auok190x_send_cmdargs_pixels_nowait +EXPORT_SYMBOL_GPL drivers/video/auo_k190x 0x43f99b31 auok190x_send_command_nowait +EXPORT_SYMBOL_GPL drivers/video/auo_k190x 0x6e82e45a auok190x_send_command +EXPORT_SYMBOL_GPL drivers/video/auo_k190x 0x7306e97b auok190x_common_probe +EXPORT_SYMBOL_GPL drivers/video/auo_k190x 0x83e19a66 auok190x_pm +EXPORT_SYMBOL_GPL drivers/video/auo_k190x 0x949f058c auok190x_send_cmdargs_pixels +EXPORT_SYMBOL_GPL drivers/video/auo_k190x 0xa875b3f9 auok190x_common_remove +EXPORT_SYMBOL_GPL drivers/video/auo_k190x 0xb211b774 auok190x_read_cmdargs +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x526407a7 ili9320_probe_spi +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x64891ddb ili9320_write +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x8330fdcf ili9320_write_regs +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0xb7c5961f ili9320_suspend +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0xcb074a6c ili9320_resume +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0xcc5fd465 ili9320_shutdown +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0xf9e004f1 ili9320_remove +EXPORT_SYMBOL_GPL drivers/video/fb_sys_fops 0x3316a9c7 fb_sys_read +EXPORT_SYMBOL_GPL drivers/video/fb_sys_fops 0x9e832a13 fb_sys_write +EXPORT_SYMBOL_GPL drivers/w1/wire 0x04aa922a w1_reset_resume_command +EXPORT_SYMBOL_GPL drivers/w1/wire 0x0e310f8a w1_write_8 +EXPORT_SYMBOL_GPL drivers/w1/wire 0x2b2c4e11 w1_next_pullup +EXPORT_SYMBOL_GPL drivers/w1/wire 0x2d8a3ec3 w1_touch_block +EXPORT_SYMBOL_GPL drivers/w1/wire 0x4f373aed w1_read_block +EXPORT_SYMBOL_GPL drivers/w1/wire 0x7c2f2afb w1_calc_crc8 +EXPORT_SYMBOL_GPL drivers/w1/wire 0x90f703ad w1_write_block +EXPORT_SYMBOL_GPL drivers/w1/wire 0x96a4bfd5 w1_read_8 +EXPORT_SYMBOL_GPL drivers/w1/wire 0xbeef1f14 w1_reset_bus +EXPORT_SYMBOL_GPL drivers/w1/wire 0xc5f3a1c2 w1_reset_select_slave +EXPORT_SYMBOL_GPL drivers/xen/xen-privcmd 0x4f865fa1 xen_privcmd_fops +EXPORT_SYMBOL_GPL fs/dlm/dlm 0x20fc9e9d dlm_posix_unlock +EXPORT_SYMBOL_GPL fs/dlm/dlm 0x5ac5d704 dlm_posix_get +EXPORT_SYMBOL_GPL fs/dlm/dlm 0x91486a70 dlm_posix_lock +EXPORT_SYMBOL_GPL fs/dlm/dlm 0x9321df95 dlm_lock +EXPORT_SYMBOL_GPL fs/dlm/dlm 0xc6dc8c2f dlm_new_lockspace +EXPORT_SYMBOL_GPL fs/dlm/dlm 0xcf9f3328 dlm_release_lockspace +EXPORT_SYMBOL_GPL fs/dlm/dlm 0xdc583c08 dlm_unlock +EXPORT_SYMBOL_GPL fs/fscache/fscache 0x092cf98e fscache_object_sleep_till_congested +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x02fc869b nlmsvc_unlock_all_by_sb +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x0c59150b locks_in_grace +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x17ce645d locks_end_grace +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x489446e9 nlmclnt_init +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x4bc9965b lockd_up +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x752ae0d8 nlmclnt_proc +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x77e35ccc nlmsvc_unlock_all_by_ip +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x854b09d2 lockd_down +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x85872370 nlmsvc_ops +EXPORT_SYMBOL_GPL fs/lockd/lockd 0xa8437ad7 nlmclnt_done +EXPORT_SYMBOL_GPL fs/lockd/lockd 0xda40448e locks_start_grace +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x01521c9f nfs_submount +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x02c9747f nfs_rmdir +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x08a8bf97 nfs_instantiate +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x11cd8373 nfs_generic_pg_test +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x14ca57c7 nfs_generic_flush +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x18818eef register_nfs_version +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x199e7961 nfs_dentry_operations +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x1a421e73 nfs_pageio_init +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x1ccd2d2c nfs_put_super +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x1e995158 alloc_nfs_open_context +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x22256204 nfs_show_devname +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x22726ab7 nfs_server_insert_lists +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x2452d94a nfs_mkdir +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x24e536bf nfs_initiate_write +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x26884ff7 nfs_alloc_fhandle +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x2876abed nfs_symlink +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x2b7e30aa nfs_fs_type +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x2bc3f807 nfs_pgheader_init +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x2c3d4bbc nfs_remount +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x2dceb74d nfs_writedata_release +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x30591a6a nfs_file_write +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x31054d58 nfs_fill_super +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x3266dfdb nfs_file_splice_read +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x3286b1b2 nfs_commitdata_alloc +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x32fa881a nfs_create +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x34285124 nfs_refresh_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x3784d3d1 nfs_link +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x3787ba3f nfs4_fs_type +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x3877d821 nfs_pageio_init_write +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x39e05ac3 nfs_idmap_cache_timeout +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x3ca31f35 nfs_net_id +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x3cee8954 nfs_fs_mount_common +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x3f2690f2 nfs_check_flags +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x3fba477e nfs_free_client +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x409d70ce nfs_commit_free +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x419c2640 nfs_destroy_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x42f2c81f nfs4_client_id_uniquifier +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x44232719 nfs_wait_client_init_complete +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x47c119eb nfs_pageio_reset_write_mds +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x49381d8b nfs_put_client +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x4d86cb26 nfs_initiate_read +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x508b3179 nfs_inode_attach_open_context +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x50a9b9c0 nfs_access_add_cache +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x51892d61 nfs_callback_set_tcpport +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x542f1ea7 nfs_rename +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x5584db35 nfs_pageio_init_read +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x565dde2a nfs_sb_active +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x5691f424 nfs_flock +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x578b3495 nfs_getattr +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x5bff1996 nfs_unlink +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x5ccc420e nfs_setattr +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x5e1d863a nfs_sockaddr_match_ipaddr +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x5e654ea5 nfs_fscache_set_inode_cookie +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x5e787958 nfs_zap_acl_cache +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x5ec68ab7 nfs_request_remove_commit_list +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x5f402407 get_nfs_open_context +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x62eb3d69 unregister_nfs_version +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x639d2ab2 nfs_revalidate_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x65c98dc0 nfs_init_client +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x6c592e00 nfs_drop_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x6db634e6 nfs_file_operations +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x6db875c2 nfs_alloc_fattr +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x6e2e0e6e nfs_alloc_server +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x6e6072cb nfs_pageio_add_request +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x718d4ce8 nfs_permission +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x72737004 nfs_wb_all +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7295a46f nfs_clone_sb_security +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x73869a54 nfs_force_lookup_revalidate +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x74ec69e4 put_nfs_open_context +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x755ee9c2 nfs_close_context +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x75b855fd nfs_pageio_reset_read_mds +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7a135d3b nfs_create_rpc_client +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7a72835f nfs_setattr_update_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x803e6321 nfs_may_open +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x80f6a64e nfs_file_flush +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x822032ca nfs_file_fsync_commit +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x82529951 nfs_alloc_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x8261a404 nfs_fs_mount +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x846909c2 nfs_file_mmap +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x85dc518f nfs_file_splice_write +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x876ba749 nfs_invalidate_atime +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x89bc5a64 nfs_wait_bit_killable +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x8b7ee6b8 nfs_access_zap_cache +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x8ca8ed94 nfs_lookup +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x8d9dbb53 nfs4_dentry_operations +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x8e57a3a9 nfs_probe_fsinfo +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x8fa68073 nfs_server_copy_userdata +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x9015fb41 nfs_file_read +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x90a5530f nfsiod_workqueue +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x91d1fe52 max_session_slots +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x94046a2d nfs_mark_client_ready +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x94841e4a nfs_post_op_update_inode_force_wcc +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x9a372e99 nfs_setlease +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xa00874eb nfs_pageio_complete +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xa335eff2 nfs_init_cinfo +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xa4233b71 nfs_post_op_update_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xa5d94bf3 nfs_file_set_open_context +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xa750d0d2 nfs_readdata_release +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xa7f466f5 nfs_sb_deactive +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xa8d2d1ce nfs_callback_tcpport +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xa8e9e1ae send_implementation_id +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xaaa14361 nfs_dreq_bytes_left +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xaaa4a418 nfs_retry_commit +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xaaeab8f6 nfs_kill_super +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xacf72e40 nfs_show_stats +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xaebf8b4c nfs_writehdr_alloc +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xb3f986c8 nfs_readhdr_alloc +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xb78079d3 nfs_sops +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xbe700e16 nfs_set_sb_security +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xbff9274d nfs_do_submount +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xc04e47de nfs_file_release +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xc5ef47d5 nfs_init_timeout_values +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xc6907967 nfs_path +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xc86529eb nfs_lock +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xca562980 nfs_request_add_commit_list +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xcbfe7bff nfs_atomic_open +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xcf0f3283 nfs4_label_alloc +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xd391ee27 nfs_create_server +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xd487bbf0 nfs_file_llseek +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xd745bde2 nfs_mknod +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xd9671ac0 nfs_fhget +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xdae9b5d7 nfs4_disable_idmapping +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xdbb621eb nfs_readhdr_free +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xe15f1584 nfs_try_mount +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xe4b3b0e2 nfs_show_path +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xe6dac3e3 nfs_free_server +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xe70c1a63 nfs_clone_server +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xe807544f nfs_access_set_mask +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xe96135a6 nfs_commitdata_release +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xeac06eaa nfs_show_options +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xebff5fc8 nfs_initiate_commit +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xeeceb206 nfs_fattr_init +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xf384fc13 nfs_clear_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xf49016fb nfs_write_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xf6c863ab nfs_init_server_rpcclient +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xf8a901a9 nfs_writehdr_free +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xfa1bb930 nfs_alloc_client +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xfc3a8ebd nfs_get_client +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xfc481d06 nfs_init_commit +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xfc827329 nfs_setsecurity +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xfd28fa6a nfs_generic_pagein +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xfe6a0f19 nfs_umount_begin +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xfeda3eaa nfs_statfs +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x036b7518 nfs4_insert_deviceid_node +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x07d8b2dd pnfs_generic_pg_init_read +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x0f4ce0ca nfs4_mark_deviceid_unavailable +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x145e5a56 nfs4_test_deviceid_unavailable +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x170f3ed6 nfs41_maxgetdevinfo_overhead +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x18bd9c53 pnfs_ld_read_done +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x2567fa8e pnfs_generic_pg_test +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x34df3a69 nfs41_setup_sequence +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x3619fd91 pnfs_register_layoutdriver +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x36b8266c nfs4_find_get_deviceid +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x3e54ab3b nfs4_init_deviceid_node +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x4eac1b6b nfs4_schedule_session_recovery +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x4f5f7a27 nfs4_proc_getdeviceinfo +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x5731d3a0 nfs4_set_ds_client +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x5db2ab2a pnfs_ld_write_done +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x5df51fa2 pnfs_put_lseg +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x72918dea pnfs_unregister_layoutdriver +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x7766cc94 nfs4_schedule_stateid_recovery +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x791049be pnfs_update_layout +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x88139706 pnfs_generic_pg_writepages +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x95aa434c nfs_remove_bad_delegation +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xb0907abe pnfs_destroy_layout +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xb985a322 pnfs_generic_pg_init_write +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xbbad55cf pnfs_generic_pg_readpages +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xbc312ff7 nfs4_init_ds_session +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xbeae59e3 pnfs_readhdr_free +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xc3986b40 _pnfs_return_layout +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xca38b332 pnfs_writehdr_free +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xd012255b nfs4_schedule_lease_recovery +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xd479d989 pnfs_set_lo_fail +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xd71f573f nfs4_set_rw_stateid +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xde6bc947 nfs4_put_deviceid_node +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xe2bda3cf pnfs_set_layoutcommit +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xe2d868ea nfs4_proc_getdevicelist +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xec7f5813 pnfs_read_done_resend_to_mds +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xed15fb41 nfs4_print_deviceid +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xf03dbd1d pnfs_write_done_resend_to_mds +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xfc16fbd6 nfs4_delete_deviceid +EXPORT_SYMBOL_GPL fs/nfs_common/nfs_acl 0x710fa0a6 nfsacl_encode +EXPORT_SYMBOL_GPL fs/nfs_common/nfs_acl 0xf5ee484e nfsacl_decode +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x0210f79f o2hb_setup_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x1b89c6ee o2hb_fill_node_map +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x1cb231d0 mlog_not_bits +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x1d747ce3 o2hb_check_node_heartbeating +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x36418553 o2net_send_message +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x4900035b o2hb_stop_all_regions +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x686c4235 o2hb_unregister_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x687f6251 mlog_and_bits +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x752fe109 o2nm_node_get +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x83264284 o2nm_get_node_by_ip +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x8b81145c o2nm_node_put +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 0xc3eccf1e 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 0xd859ac8c o2net_fill_node_map +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xec55ebe6 o2nm_get_node_by_num +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xf1a5611d o2net_unregister_handler_list +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x59375486 dlm_register_eviction_cb +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x731a322e dlm_unregister_domain +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x75d5b311 dlm_register_domain +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x7a1211f8 dlm_setup_eviction_cb +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x9a572051 dlm_print_one_lock +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xa902c08c 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 0xfeac196c dlmlock +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x025e2d69 ocfs2_cluster_connect_agnostic +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x0562c415 ocfs2_cluster_this_node +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 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 0x6b42d0ff ocfs2_stack_glue_register +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x7083dbd5 ocfs2_dlm_dump_lksb +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x75ebda19 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 0xc2f11294 ocfs2_stack_glue_unregister +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/notifier-error-inject 0x113f91ca notifier_err_inject_init +EXPORT_SYMBOL_GPL lib/notifier-error-inject 0x96eaf19c notifier_err_inject_dir +EXPORT_SYMBOL_GPL lib/raid6/raid6_pq 0x021957e1 raid6_datap_recov +EXPORT_SYMBOL_GPL lib/raid6/raid6_pq 0x05513b71 raid6_call +EXPORT_SYMBOL_GPL lib/raid6/raid6_pq 0x0f8a2742 raid6_2data_recov +EXPORT_SYMBOL_GPL net/802/garp 0x63f6955a garp_init_applicant +EXPORT_SYMBOL_GPL net/802/garp 0x73308e8d garp_register_application +EXPORT_SYMBOL_GPL net/802/garp 0x90e3dc0d garp_unregister_application +EXPORT_SYMBOL_GPL net/802/garp 0xb6001ddb garp_request_leave +EXPORT_SYMBOL_GPL net/802/garp 0xd25ebf2e garp_uninit_applicant +EXPORT_SYMBOL_GPL net/802/garp 0xf0121d6e garp_request_join +EXPORT_SYMBOL_GPL net/802/mrp 0x13b61189 mrp_request_join +EXPORT_SYMBOL_GPL net/802/mrp 0x3a405eaa mrp_register_application +EXPORT_SYMBOL_GPL net/802/mrp 0x55093331 mrp_unregister_application +EXPORT_SYMBOL_GPL net/802/mrp 0x62ab8a7b mrp_uninit_applicant +EXPORT_SYMBOL_GPL net/802/mrp 0xcc286da6 mrp_request_leave +EXPORT_SYMBOL_GPL net/802/mrp 0xfaf64299 mrp_init_applicant +EXPORT_SYMBOL_GPL net/802/stp 0xa2f91637 stp_proto_unregister +EXPORT_SYMBOL_GPL net/802/stp 0xaa47c8f3 stp_proto_register +EXPORT_SYMBOL_GPL net/9p/9pnet 0x467f65f1 p9_client_xattrcreate +EXPORT_SYMBOL_GPL net/9p/9pnet 0x554becc5 p9_client_xattrwalk +EXPORT_SYMBOL_GPL net/atm/atm 0xb09faf79 register_atmdevice_notifier +EXPORT_SYMBOL_GPL net/atm/atm 0xcfb6a3da unregister_atmdevice_notifier +EXPORT_SYMBOL_GPL net/ax25/ax25 0x33621eb3 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 0x52aa96b1 bt_debugfs +EXPORT_SYMBOL_GPL net/dccp/dccp 0x09a123b7 dccp_orphan_count +EXPORT_SYMBOL_GPL net/dccp/dccp 0x0b1e567d dccp_setsockopt +EXPORT_SYMBOL_GPL net/dccp/dccp 0x0cba8069 dccp_reqsk_init +EXPORT_SYMBOL_GPL net/dccp/dccp 0x19979eaa dccp_connect +EXPORT_SYMBOL_GPL net/dccp/dccp 0x1c4abae7 dccp_recvmsg +EXPORT_SYMBOL_GPL net/dccp/dccp 0x1d99d49a dccp_timestamp +EXPORT_SYMBOL_GPL net/dccp/dccp 0x23dc5c2f dccp_send_sync +EXPORT_SYMBOL_GPL net/dccp/dccp 0x2b2e9fe3 dccp_rcv_state_process +EXPORT_SYMBOL_GPL net/dccp/dccp 0x2f78748a dccp_child_process +EXPORT_SYMBOL_GPL net/dccp/dccp 0x38704788 dccp_death_row +EXPORT_SYMBOL_GPL net/dccp/dccp 0x3c3bb418 dccp_hashinfo +EXPORT_SYMBOL_GPL net/dccp/dccp 0x42742cb4 dccp_getsockopt +EXPORT_SYMBOL_GPL net/dccp/dccp 0x4330a545 dccp_disconnect +EXPORT_SYMBOL_GPL net/dccp/dccp 0x49e6108d dccp_close +EXPORT_SYMBOL_GPL net/dccp/dccp 0x4cdd391d dccp_feat_list_purge +EXPORT_SYMBOL_GPL net/dccp/dccp 0x4d3384c5 dccp_ctl_make_reset +EXPORT_SYMBOL_GPL net/dccp/dccp 0x4ec35231 dccp_ackvec_parsed_add +EXPORT_SYMBOL_GPL net/dccp/dccp 0x5f561458 dccp_sync_mss +EXPORT_SYMBOL_GPL net/dccp/dccp 0x600189af dccp_destroy_sock +EXPORT_SYMBOL_GPL net/dccp/dccp 0x64c1bd04 dccp_reqsk_send_ack +EXPORT_SYMBOL_GPL net/dccp/dccp 0x741fcb53 dccp_init_sock +EXPORT_SYMBOL_GPL net/dccp/dccp 0x77e2f7d0 dccp_rcv_established +EXPORT_SYMBOL_GPL net/dccp/dccp 0x86be7924 dccp_packet_name +EXPORT_SYMBOL_GPL net/dccp/dccp 0x9099abd7 dccp_parse_options +EXPORT_SYMBOL_GPL net/dccp/dccp 0x9598d24d dccp_ackvec_parsed_cleanup +EXPORT_SYMBOL_GPL net/dccp/dccp 0x99b9ad74 dccp_done +EXPORT_SYMBOL_GPL net/dccp/dccp 0x9d42553d dccp_feat_nn_get +EXPORT_SYMBOL_GPL net/dccp/dccp 0x9d8ed04f dccp_shutdown +EXPORT_SYMBOL_GPL net/dccp/dccp 0xbe1760ff inet_dccp_listen +EXPORT_SYMBOL_GPL net/dccp/dccp 0xbfe1ba82 dccp_feat_signal_nn_change +EXPORT_SYMBOL_GPL net/dccp/dccp 0xc38d222e dccp_poll +EXPORT_SYMBOL_GPL net/dccp/dccp 0xc4b42667 dccp_ioctl +EXPORT_SYMBOL_GPL net/dccp/dccp 0xc6465463 dccp_check_req +EXPORT_SYMBOL_GPL net/dccp/dccp 0xc759db9d dccp_insert_option_elapsed_time +EXPORT_SYMBOL_GPL net/dccp/dccp 0xe0c46526 dccp_make_response +EXPORT_SYMBOL_GPL net/dccp/dccp 0xec4de55e dccp_create_openreq_child +EXPORT_SYMBOL_GPL net/dccp/dccp 0xf3017e21 dccp_statistics +EXPORT_SYMBOL_GPL net/dccp/dccp 0xf779dc41 dccp_insert_option +EXPORT_SYMBOL_GPL net/dccp/dccp 0xfae2e417 dccp_send_ack +EXPORT_SYMBOL_GPL net/dccp/dccp 0xfbd3c458 dccp_sendmsg +EXPORT_SYMBOL_GPL net/dccp/dccp 0xff9e33d3 dccp_set_state +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x0b6f08df dccp_v4_send_check +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x3e5c5702 dccp_invalid_packet +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x90caf4b2 dccp_v4_connect +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0xda1c4083 dccp_v4_do_rcv +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0xe9b213a3 dccp_v4_conn_request +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0xf3f0c31c dccp_v4_request_recv_sock +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x294494fc register_switch_driver +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x7470232e unregister_switch_driver +EXPORT_SYMBOL_GPL net/ipv4/gre 0x105141c9 gre_build_header +EXPORT_SYMBOL_GPL net/ipv4/gre 0x4fd6b19e gre_add_protocol +EXPORT_SYMBOL_GPL net/ipv4/gre 0x6b213ca6 gre_handle_offloads +EXPORT_SYMBOL_GPL net/ipv4/gre 0x87da13a8 gre_del_protocol +EXPORT_SYMBOL_GPL net/ipv4/gre 0x8c87b606 gre_cisco_register +EXPORT_SYMBOL_GPL net/ipv4/gre 0xf8fee32e gre_cisco_unregister +EXPORT_SYMBOL_GPL net/ipv4/inet_diag 0x19f64c20 inet_sk_diag_fill +EXPORT_SYMBOL_GPL net/ipv4/inet_diag 0x255b79da inet_diag_dump_icsk +EXPORT_SYMBOL_GPL net/ipv4/inet_diag 0x7273535b inet_diag_dump_one_icsk +EXPORT_SYMBOL_GPL net/ipv4/inet_diag 0xb54a9f9d inet_diag_unregister +EXPORT_SYMBOL_GPL net/ipv4/inet_diag 0xe60b6989 inet_diag_bc_sk +EXPORT_SYMBOL_GPL net/ipv4/inet_diag 0xfd7f9a0f inet_diag_register +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x08b7d56b ip_tunnel_newlink +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x5f1d9010 ip_tunnel_init_net +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x7993bcbd ip_tunnel_dellink +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x7c940a65 ip_tunnel_rcv +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x7f1c9bd7 ip_tunnel_setup +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x7f7a4ee4 ip_tunnel_uninit +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x8b4426c0 ip_tunnel_ioctl +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x9be6bb72 ip_tunnel_lookup +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0xaeda902d ip_tunnel_delete_net +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0xb29a3f99 ip_tunnel_get_stats64 +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0xbc7ac559 ip_tunnel_changelink +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0xd949e653 ip_tunnel_xmit +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0xe451f03d ip_tunnel_change_mtu +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0xf6ef3b80 ip_tunnel_init +EXPORT_SYMBOL_GPL net/ipv4/netfilter/arp_tables 0xd282b9f5 arpt_alloc_initial_table +EXPORT_SYMBOL_GPL net/ipv4/netfilter/ip_tables 0x4b771c4d ipt_alloc_initial_table +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_ipv4 0x476e39f3 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 0x4d620f30 tcp_vegas_init +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x6d153d0e tcp_vegas_get_info +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0xb0f13158 tcp_vegas_pkts_acked +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0xdde31d58 tcp_vegas_cwnd_event +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0xed2b0469 tcp_vegas_state +EXPORT_SYMBOL_GPL net/ipv4/xfrm4_mode_tunnel 0x0bdf6805 xfrm4_mode_tunnel_input_deregister +EXPORT_SYMBOL_GPL net/ipv4/xfrm4_mode_tunnel 0x239a4d0c xfrm4_mode_tunnel_input_register +EXPORT_SYMBOL_GPL net/ipv6/ip6_tunnel 0x1957c210 ip6_tnl_rcv_ctl +EXPORT_SYMBOL_GPL net/ipv6/ip6_tunnel 0x6b8dd01e ip6_tnl_xmit_ctl +EXPORT_SYMBOL_GPL net/ipv6/ip6_tunnel 0xa944e16e ip6_tnl_dst_check +EXPORT_SYMBOL_GPL net/ipv6/ip6_tunnel 0xbaad19c7 ip6_tnl_dst_reset +EXPORT_SYMBOL_GPL net/ipv6/ip6_tunnel 0xd7a07337 ip6_tnl_dst_store +EXPORT_SYMBOL_GPL net/ipv6/netfilter/ip6_tables 0x7d515124 ip6t_alloc_initial_table +EXPORT_SYMBOL_GPL net/ipv6/netfilter/nf_defrag_ipv6 0x6eb85693 nf_defrag_ipv6_enable +EXPORT_SYMBOL_GPL net/ipv6/netfilter/nf_nat_ipv6 0x02d1b021 nf_nat_icmpv6_reply_translation +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x052cb6c5 l2tp_tunnel_create +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x1be6ff43 l2tp_session_queue_purge +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x1c020a6e l2tp_session_delete +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x34f1b4b4 __l2tp_session_unhash +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x3a27623f l2tp_xmit_skb +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x4d153c87 l2tp_session_create +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x504179f7 l2tp_tunnel_sock_lookup +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x61d66cda l2tp_udp_encap_recv +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x75a3837b l2tp_session_find_by_ifname +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x7f9303c0 l2tp_session_find +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x90f16abf l2tp_tunnel_sock_put +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x942240e5 l2tp_tunnel_find_nth +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x96789594 l2tp_tunnel_delete +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xae96e513 l2tp_session_free +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xd79b9d69 l2tp_session_find_nth +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xf175db3b l2tp_tunnel_find +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xfb57b535 l2tp_tunnel_closeall +EXPORT_SYMBOL_GPL net/l2tp/l2tp_netlink 0x337f2432 l2tp_nl_unregister_ops +EXPORT_SYMBOL_GPL net/l2tp/l2tp_netlink 0xe129d5f2 l2tp_nl_register_ops +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x00575a72 ieee80211_ready_on_channel +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x10a99aae ieee80211_find_sta_by_ifaddr +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x55a9e607 ieee80211_remain_on_channel_expired +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x59247b8e ieee80211_iterate_active_interfaces +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x82644264 ieee80211_resume_disconnect +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xa6fb6aaf ieee80211_ave_rssi +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xb1a3f6eb ieee80211_request_smps +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xc71891d0 ieee80211_gtk_rekey_notify +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xe3671e2a ieee80211_iter_chan_contexts_atomic +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xff02fbd3 ieee80211_iterate_active_interfaces_atomic +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x033ac21e ip_set_type_register +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x397f6231 ip_set_free +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x4617dee9 ip_set_del +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x6344eaf6 ip_set_alloc +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x64c04b80 ip_set_get_extensions +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x678ca932 ip_set_get_byname +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x7762965e ip_set_nfnl_put +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x7924b6de ip_set_hostmask_map +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x7d8a5dba ip_set_get_ip_port +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x80ee118c ip_set_nfnl_get +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x81fff2d1 ip_set_netmask_map +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x8594d939 ip_set_get_ip6_port +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x883d6572 ip_set_name_byindex +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x9e98722b ip_set_get_ipaddr6 +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xa293f8a6 ip_set_get_ipaddr4 +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xa2d623f3 ip_set_range_to_cidr +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xc120f42b ip_set_test +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xc3b062db ip_set_nfnl_get_byindex +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xce9e0f1d ip_set_get_ip4_port +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xdac6c0b8 ip_set_add +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xdf1e28c5 ip_set_type_unregister +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xfda3ec7a ip_set_put_byindex +EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0x077e3bf7 ip_vs_conn_in_get_proto +EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0x5fc9430b register_ip_vs_pe +EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0x939af904 unregister_ip_vs_pe +EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0xc40f2157 ip_vs_conn_out_get_proto +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x01d2f5d3 nf_conntrack_alter_reply +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x041f1403 nf_connlabel_match +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x043845af nf_conntrack_free +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x045072cd nf_ct_port_nla_policy +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x100fbee5 nf_ct_expect_related_report +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x1252604c nf_ct_l3proto_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x14e3a145 nf_ct_helper_log +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x19faf628 nf_ct_deliver_cached_events +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x1e9869b6 nf_ct_l3proto_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x1f7bd53b nf_connlabel_set +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x2191b13c nf_conntrack_alloc +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x21c12942 nf_ct_expect_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x22d247df nf_ct_unexpect_related +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x23788d59 __nf_ct_kill_acct +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x289c3714 nf_ct_alloc_hashtable +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x2c9b8b5a seq_print_acct +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x2ce6cb5c nf_ct_expect_register_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x319b9091 nf_ct_l4proto_pernet_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x32c82b7d __nf_conntrack_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x32f0d69c nf_nat_seq_adjust_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x37386cac nf_conntrack_hash_rnd +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x39212c59 nf_ct_l4proto_pernet_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3c5ea31b nf_ct_l4proto_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3f5b1415 nf_ct_port_nlattr_to_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x421fa6c6 nf_conntrack_flush_report +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x4296d755 __nf_conntrack_confirm +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x44a976a2 nf_conntrack_hash_check_insert +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x48cff78a nf_conntrack_tuple_taken +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x49bb6bf2 nf_ct_timeout_put_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x5abbbc41 __nf_ct_try_assign_helper +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x5da33d76 nf_ct_l3protos +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x5f5a60b7 nf_ct_helper_expectfn_find_by_symbol +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x5fe0e06d nf_ct_expect_alloc +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x61da07e8 nf_ct_invert_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x62813e5c nf_ct_port_nlattr_tuple_size +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x648d25c4 nf_ct_port_tuple_to_nlattr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x674ead1a __nf_ct_l4proto_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x693c3961 nf_ct_helper_hash +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6e224a7a need_conntrack +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x73062b2f nf_ct_nat_offset +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x73426d58 __nf_ct_expect_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x75bb7a30 nf_ct_l3proto_pernet_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x768b3832 __nf_conntrack_helper_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x77001622 nf_ct_helper_ext_add +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x78f9b710 nf_ct_l3proto_try_module_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x794b0d5c nf_ct_l3proto_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8040ff86 nfnetlink_parse_nat_setup_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x86f2c647 nf_ct_timeout_find_get_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x89015f9c nf_ct_l4proto_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8ab66c8d nf_ct_l4proto_register +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 0x94106c37 nf_conntrack_in +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x944928b9 nf_connlabels_replace +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x982e72b4 nf_ct_iterate_cleanup +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x9a2a94a9 nf_ct_expect_unregister_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x9c5cfcbc nf_conntrack_l4proto_tcp6 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x9cb32880 nf_ct_expect_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa0c818b0 nf_ct_extend_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa286f815 __nf_ct_refresh_acct +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa9e4ca07 nf_ct_l4proto_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xab3d1f95 nf_ct_untracked_status_or +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xabc7f1b5 nf_ct_expect_init +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xad1bb027 nf_ct_free_hashtable +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xae6a9e3e nf_conntrack_l4proto_tcp4 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb0f8750b nf_ct_l3proto_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb23f3373 nf_conntrack_lock +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb602c57e nf_ct_l3proto_module_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xbbe9068e nf_conntrack_helper_try_module_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc0240dd4 nf_conntrack_set_hashsize +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc18ac88d nf_ct_expect_hsize +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc1df9715 nf_ct_get_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc40f284c nf_ct_helper_hsize +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc8f2bf25 nf_conntrack_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xcb0270f8 nf_conntrack_l4proto_udp6 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xcecd405b nf_ct_helper_expectfn_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xcf0af510 nf_ct_dying_timeout +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xda58b10f nf_conntrack_register_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xde660743 nf_ct_extend_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xdf07f36d nf_ct_get_tuplepr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xe1b41fa0 nf_ct_delete_from_lists +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xe83321dd nf_conntrack_helper_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xecf6128f nf_ct_helper_expectfn_find_by_name +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xed3d50c6 nf_ct_unlink_expect_report +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xee7ac0af nf_ct_remove_expectations +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf2cbbc51 nf_ct_l3proto_pernet_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf38bcdf3 nf_conntrack_max +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf7db4539 nf_conntrack_l3proto_generic +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf9211568 nf_ct_helper_expectfn_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf934127a nf_conntrack_l4proto_udp4 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf94a28d7 nf_conntrack_unregister_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xfaa79c6b nf_conntrack_helper_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_amanda 0xfe47a1aa nf_nat_amanda_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_broadcast 0x082b4d44 nf_conntrack_broadcast_help +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_ftp 0xc5aaa976 nf_nat_ftp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x0d07de7d set_h245_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x2d89b132 set_h225_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x47d61290 set_sig_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x6d2f1370 nat_h245_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x7408f139 get_h225_addr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x8231f173 nat_rtp_rtcp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x982916da nat_q931_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xb247d231 set_ras_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xbf4d3118 nat_callforwarding_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xe2c842b6 nat_t120_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_irc 0x08dc570d nf_nat_irc_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x2be65614 nf_nat_pptp_hook_outbound +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x5f66330e nf_nat_pptp_hook_expectfn +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x7c6f9c48 nf_nat_pptp_hook_inbound +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0xcfe1ed87 nf_nat_pptp_hook_exp_gre +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_proto_gre 0x33dbe7bc nf_ct_gre_keymap_add +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_proto_gre 0xc40c72fb nf_ct_gre_keymap_destroy +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x04ce4c5b nf_nat_sdp_session_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x0c4c7cf4 ct_sip_parse_header_uri +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x0d806df0 ct_sip_get_header +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x12175d2e nf_nat_sip_expect_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x19396049 nf_nat_sip_seq_adjust_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x28a6e467 nf_nat_sdp_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x3eace133 ct_sip_get_sdp_header +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x4b11f143 nf_nat_sdp_port_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x4fbd8e15 nf_nat_sdp_media_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x6cffb228 ct_sip_parse_request +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xeed6b138 ct_sip_parse_address_param +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xf7412ed1 ct_sip_parse_numerical_param +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xf8243ad0 nf_nat_sip_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_snmp 0xe3f6d973 nf_nat_snmp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_tftp 0x966e16c7 nf_nat_tftp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x0d9bae4b nf_nat_l4proto_nlattr_to_range +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x131f636c nf_nat_l4proto_in_range +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x3e5a817a nf_nat_l4proto_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x4f76a0d3 nf_nat_l4proto_unique_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x692a70f5 __nf_nat_l4proto_find +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x7ed849e6 nf_nat_l3proto_register +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x81ffe2a5 nf_nat_l4proto_register +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x9fca37ee nf_nat_packet +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0xb546f6b5 nf_nat_l3proto_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0xb6e3acc2 nf_nat_tcp_seq_adjust +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0xfebf2bde nf_nat_set_seq_adjust +EXPORT_SYMBOL_GPL net/netfilter/nf_tproxy_core 0x33a6017b nf_tproxy_assign_sock +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x0b6f3140 nfnetlink_subsys_register +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x0bc248a7 nfnetlink_unicast +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x17d71264 nfnetlink_send +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x4e12c4d1 nfnetlink_alloc_skb +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x5ce3b588 nfnl_lock +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x9c3b795e nfnetlink_has_listeners +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xaa55fb54 nfnetlink_subsys_unregister +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xd883e98a nfnetlink_set_err +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xdb065657 nfnl_unlock +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink_acct 0x21f6bba6 nfnl_acct_find_get +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink_acct 0xb6a00f45 nfnl_acct_update +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink_acct 0xbecf5d14 nfnl_acct_put +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink_log 0xf45b0e07 nfulnl_log_packet +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x238ae14b xt_unregister_table +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x32cfb3d0 xt_find_table_lock +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x40728a63 xt_find_revision +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x4430eb61 xt_request_find_target +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x4fc45315 xt_proto_fini +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x5c165cf2 xt_check_match +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x6ac8b699 xt_hook_link +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x71b1ea81 xt_register_table +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x80440dcf xt_replace_table +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x807d2b2c xt_recseq +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x812bde93 xt_proto_init +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x9aba6fd8 xt_request_find_match +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xcbecc1b6 xt_hook_unlink +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xda2ee2a7 xt_check_target +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xf171025e xt_table_unlock +EXPORT_SYMBOL_GPL net/netfilter/xt_RATEEST 0x57909dc1 xt_rateest_put +EXPORT_SYMBOL_GPL net/netfilter/xt_RATEEST 0xd0f26ea3 xt_rateest_lookup +EXPORT_SYMBOL_GPL net/nfc/nci/nci 0x07f2a354 nci_spi_free_device +EXPORT_SYMBOL_GPL net/nfc/nci/nci 0x273f1938 nci_spi_allocate_device +EXPORT_SYMBOL_GPL net/nfc/nci/nci 0x9bcfee4f nci_spi_register_device +EXPORT_SYMBOL_GPL net/nfc/nci/nci 0xe7e32d79 nci_spi_unregister_device +EXPORT_SYMBOL_GPL net/nfc/nci/nci 0xf2deb302 nci_spi_recv_frame +EXPORT_SYMBOL_GPL net/rds/rds 0x00a467af rds_wq +EXPORT_SYMBOL_GPL net/rds/rds 0x08028a08 rds_send_drop_acked +EXPORT_SYMBOL_GPL net/rds/rds 0x169932ae rds_recv_incoming +EXPORT_SYMBOL_GPL net/rds/rds 0x1bb1b912 rds_info_register_func +EXPORT_SYMBOL_GPL net/rds/rds 0x1cfdcaf2 rds_conn_drop +EXPORT_SYMBOL_GPL net/rds/rds 0x2a70d7c4 rds_for_each_conn_info +EXPORT_SYMBOL_GPL net/rds/rds 0x2af7894a 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 0x35025d0f rds_atomic_send_complete +EXPORT_SYMBOL_GPL net/rds/rds 0x50cbe7b3 rds_stats +EXPORT_SYMBOL_GPL net/rds/rds 0x5bf8065c rds_conn_create_outgoing +EXPORT_SYMBOL_GPL net/rds/rds 0x6afd123e rds_trans_unregister +EXPORT_SYMBOL_GPL net/rds/rds 0x6c72fd14 rds_page_copy_user +EXPORT_SYMBOL_GPL net/rds/rds 0x73aac73d rds_message_populate_header +EXPORT_SYMBOL_GPL net/rds/rds 0x86b6368d rds_conn_connect_if_down +EXPORT_SYMBOL_GPL net/rds/rds 0x8c15afe7 rds_message_addref +EXPORT_SYMBOL_GPL net/rds/rds 0x93f5b9bd rds_connect_complete +EXPORT_SYMBOL_GPL net/rds/rds 0x96fafe85 rds_stats_info_copy +EXPORT_SYMBOL_GPL net/rds/rds 0x9de56629 rds_message_put +EXPORT_SYMBOL_GPL net/rds/rds 0x9ff131d0 rds_conn_create +EXPORT_SYMBOL_GPL net/rds/rds 0xa348e723 rds_inc_put +EXPORT_SYMBOL_GPL net/rds/rds 0xb541941a rds_message_unmapped +EXPORT_SYMBOL_GPL net/rds/rds 0xc2dab779 rds_info_copy +EXPORT_SYMBOL_GPL net/rds/rds 0xc642cc2c rds_cong_map_updated +EXPORT_SYMBOL_GPL net/rds/rds 0xce59a895 rds_rdma_send_complete +EXPORT_SYMBOL_GPL net/rds/rds 0xd5cf6f51 rds_page_remainder_alloc +EXPORT_SYMBOL_GPL net/rds/rds 0xd6880d3e rds_info_deregister_func +EXPORT_SYMBOL_GPL net/rds/rds 0xd756dd8b rds_send_get_message +EXPORT_SYMBOL_GPL net/rds/rds 0xdd5926eb rds_inc_init +EXPORT_SYMBOL_GPL net/rds/rds 0xe744d84a rds_trans_register +EXPORT_SYMBOL_GPL net/rxrpc/af-rxrpc 0x513a5af4 rxrpc_unregister_security +EXPORT_SYMBOL_GPL net/rxrpc/af-rxrpc 0xa1cc644a 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 0x247f76a9 svcauth_gss_flavor +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x82667e25 gss_mech_register +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x8b101e36 gss_mech_unregister +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x8d1a827e svcauth_gss_register_pseudoflavor +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xb5dea7ef g_token_size +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xf8b2ff6e g_verify_token_header +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x009f640e xprt_lookup_rqst +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0108182c rpc_put_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x015b8fb9 rpc_put_task_async +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x02b2a816 xdr_init_decode_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x03f01768 rpc_restart_call +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x045834e9 rpcauth_get_pseudoflavor +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x04dad9e4 xdr_init_encode +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x05cf9f42 rpcauth_init_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x05e807a9 xdr_encode_string +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x06412c19 read_bytes_from_xdr_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x065994f1 xdr_encode_opaque_fixed +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x07040b7c rpc_rmdir +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0762372a rpc_net_ns +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0879d4c5 unix_domain_find +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0a873dce xprt_write_space +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0b776e60 cache_destroy_net +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0bdee79a svcauth_unix_purge +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0d2d1fc0 rpc_d_lookup_sb +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0ddedd79 xprt_release_rqst_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0e85e155 xprt_release_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0ea6e37a svc_shutdown_net +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0f668ba9 svc_auth_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0f78b6ab rpc_call_start +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x106b1e7b svc_rpcb_setup +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x10ab0e6c rpc_sleep_on_priority +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x10b40c09 xdr_terminate_string +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x11482270 xdr_stream_pos +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x11ea8876 svc_set_num_threads +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x12728590 rpc_delay +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x12c586c5 rpc_wake_up_status +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x154794b7 auth_domain_lookup +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x16619197 xprt_wait_for_buffer_space +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x179981fa rpc_put_sb_net +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x17d5c577 rpc_exit +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1cb447f3 rpc_init_wait_queue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2100ad65 sunrpc_cache_register_pipefs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2154b3d2 rpcauth_init_credcache +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2197e545 xdr_partial_copy_from_skb +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x22f99d32 xdr_shift_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x25ea3412 xprt_reserve_xprt_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x26fe1f54 svc_xprt_enqueue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2750ed01 rpc_wake_up +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x28215c62 rpc_proc_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x28f60435 svc_reg_xprt_class +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2919b156 xdr_decode_string_inplace +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x29bc0056 rpc_get_timeout +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2a7f28f6 rpcauth_generic_bind_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2c2a1fda rpc_call_sync +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2c3184fe rpc_wake_up_next +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2e113159 rpc_mkpipe_data +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2eec63c9 xdr_encode_netobj +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2f8ebbe0 rpc_ntop +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x31a89d59 rpc_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x349a7b2d xprt_disconnect_done +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x370c9324 svc_process +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x387e1639 rpc_pipefs_notifier_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x390fcb0d xdr_decode_word +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3948db1f rpc_sleep_on +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x39c3e824 xdr_buf_read_netobj +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3ae2fdfc xdr_skb_read_bits +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3b7d18e2 cache_purge +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3cfc2dfd xdr_buf_subsegment +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x410ef773 rpc_lookup_machine_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x44f33259 rpc_bind_new_program +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x46a660fe svc_seq_show +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x472af27e svc_reserve +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4b5e9efc xprt_set_retrans_timeout_def +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4d3d7c07 rpc_free_iostats +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4e912f8d sunrpc_cache_pipe_upcall +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x53445f68 nlm_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x53703c4d svc_rpcb_cleanup +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x53bd1dd5 rpc_force_rebind +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x56293219 rpc_clone_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x596be5ea rpcauth_create +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x59f491f0 sunrpc_init_cache_detail +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5a08641a rpc_get_sb_net +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5abda3ae rpc_uaddr2sockaddr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5fc3ab8c svc_create_pooled +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x601fe167 xprt_reserve_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6072e030 svc_proc_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x63003f3a xdr_decode_array2 +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x64d0b775 rpc_peeraddr2str +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x66f94fb8 svc_prepare_thread +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x67fb37fc sunrpc_cache_lookup +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x682dd1b3 xprt_register_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x684504cc __rpc_wait_for_completion_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6d47e6d1 svc_unreg_xprt_class +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6d6c85fd rpc_mkpipe_dentry +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6da746ce xdr_write_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6f0dc485 rpc_alloc_iostats +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x70073c59 auth_domain_put +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7027e5b3 svc_drop +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x71413baf xdr_encode_array2 +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x71f6c095 auth_domain_find +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x71fa908a cache_flush +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x73a9d7f9 svc_set_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x73dbe8ad svc_max_payload +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x75ed46c2 xprt_alloc +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7847f018 rpc_protocol +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7c01390f svc_xprt_copy_addrs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7cd8db8a xprt_destroy_backchannel +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7de53067 rpc_init_rtt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7ed944f4 sunrpc_destroy_cache_detail +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x80951b28 rpcauth_get_gssinfo +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x80a8fb9a rpc_destroy_wait_queue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x80b6caa1 write_bytes_to_xdr_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x813059c0 svc_xprt_init +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x82d3a0f8 svc_addsock +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8423cf8c rpc_pton +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x844e8994 xdr_enter_page +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x85ee8c51 rpcauth_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8615d835 rpcb_getport_async +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x871b712b rpc_wake_up_first +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x880fb615 bc_svc_process +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x881c5b22 rpc_run_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x882331a4 rpc_pipe_generic_upcall +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8acc1177 rpc_malloc +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8b3bc73f rpc_init_priority_wait_queue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8b96acde xprt_setup_backchannel +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8c23b20f rpc_max_payload +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8c34adb4 rpc_proc_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8c6af0d1 rpc_unlink +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8f68a5d5 rpc_wake_up_queued_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8fd5734d xprt_wake_pending_tasks +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x94d91f8d _copy_from_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x94e35557 svc_wake_up +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9658cde6 svc_destroy +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x97128780 rpc_restart_call_prepare +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x97b41ced svc_proc_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x98b75d64 rpcauth_list_flavors +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9933a14f rpc_destroy_pipe_data +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa01e3d76 svc_authenticate +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa0c2f1ca rpc_count_iostats +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa48dcdce xprt_free +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa9a63d87 csum_partial_copy_to_xdr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xab946518 xprt_unregister_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xad28cec8 rpc_setbufsize +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xaebc18ac cache_unregister_net +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xaf5bf6ef nfs_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb51a3724 rpc_pipefs_notifier_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb5788779 cache_register_net +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb6cbfcbd svc_bind +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb82025de rpcauth_lookup_credcache +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb95f53e9 svc_create_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xba103b8f rpc_lookup_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xba960aba svc_find_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbc1a1363 xdr_process_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbc40bf91 rpc_clone_client_set_auth +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbd0cbec9 xprt_set_retrans_timeout_rtt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbee3cf92 rpc_killall_tasks +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbf9d1b96 nfsd_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbff1c4c1 xdr_buf_from_iov +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 0xc5818a6a xdr_inline_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc8e96dea qword_addhex +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcb303124 svc_recv +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcbb4730b cache_create_net +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcc43af7e rpc_create +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xce406a47 xdr_buf_trim +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcee467f3 xprt_load_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcfc73aca rpc_call_null +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd35cc431 rpc_localaddr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd5721261 cache_check +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd7369e46 sunrpc_cache_unregister_pipefs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd7b10837 svc_xprt_put +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xda6287e6 xdr_inline_decode +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xdb9243bd xprt_lock_and_alloc_slot +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xdbdaf164 svc_create +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe0af55e7 rpc_peeraddr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe1ac2bb8 sunrpc_net_id +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe2074c4b xprt_complete_rqst +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe214d678 svcauth_unix_set_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe2794d66 rpcauth_destroy_credcache +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe37203f7 rpc_queue_upcall +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe408ee8e rpc_call_async +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe4f8e980 put_rpccred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe5919cb1 xdr_encode_opaque +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe63d5355 svc_exit_thread +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe6534a90 xdr_set_scratch_buffer +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe69a3493 xs_swapper +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe740ccce xdr_encode_word +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe7a58fd0 svc_close_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe8080d87 xprt_adjust_cwnd +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe97f4ce5 qword_get +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xeb80fcb5 rpcauth_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xebd5ff99 rpc_task_reset_client +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 0xf181c5f0 rpc_release_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf34a5f51 xdr_reserve_space +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf3c9c9df xdr_read_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf5f1a4fb xprt_release_xprt_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf7969374 sunrpc_cache_update +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf7cf0c44 svc_print_addr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf7d8a377 rpc_print_iostats +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf813e658 svc_xprt_names +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf9d1164c rpc_free +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfa3d31f4 svc_sock_update_bufs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfab9adfa xprt_alloc_slot +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfb3cc399 svc_auth_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfb7dc9d3 rpc_shutdown_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfb9d9e67 xdr_init_decode +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x0c79d5ef vm_sockets_get_local_cid +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x15c0c57c vsock_addr_init +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x2663cb64 vsock_addr_equals_addr +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x2e584873 vsock_stream_has_space +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x34fc05d4 vsock_find_bound_socket +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x390d57bb vsock_add_pending +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x64319f0f vsock_remove_connected +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x74e91915 vsock_addr_cast +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x751ff010 vsock_addr_unbind +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x775de84e vsock_remove_pending +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x7ebb64d4 vsock_find_connected_socket +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x7f730c80 vsock_core_exit +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x832692ef vsock_insert_connected +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x9c7110db vsock_stream_has_data +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0xa17c61e0 vsock_core_init +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0xb668777d vsock_for_each_connected_socket +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0xbd0f699d vsock_addr_bound +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0xca16d07e __vsock_create +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0xd95ac116 vsock_addr_validate +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0xe9726c2f vsock_remove_bound +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0xf593c40a vsock_pending_work +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0xf6f09a07 vsock_enqueue_accept +EXPORT_SYMBOL_GPL net/wimax/wimax 0x2452a822 wimax_msg +EXPORT_SYMBOL_GPL net/wimax/wimax 0x28f36ba6 wimax_msg_send +EXPORT_SYMBOL_GPL net/wimax/wimax 0x2f24f4f9 wimax_msg_len +EXPORT_SYMBOL_GPL net/wimax/wimax 0x4a6239fe wimax_state_get +EXPORT_SYMBOL_GPL net/wimax/wimax 0x745dbd88 wimax_dev_add +EXPORT_SYMBOL_GPL net/wimax/wimax 0x7c99fbc6 wimax_dev_rm +EXPORT_SYMBOL_GPL net/wimax/wimax 0x906bd4ef wimax_msg_data_len +EXPORT_SYMBOL_GPL net/wimax/wimax 0x93f4893b wimax_msg_alloc +EXPORT_SYMBOL_GPL net/wimax/wimax 0xb3736063 wimax_report_rfkill_sw +EXPORT_SYMBOL_GPL net/wimax/wimax 0xb74c4b45 wimax_dev_init +EXPORT_SYMBOL_GPL net/wimax/wimax 0xb8627523 wimax_report_rfkill_hw +EXPORT_SYMBOL_GPL net/wimax/wimax 0xbc2e3f29 wimax_state_change +EXPORT_SYMBOL_GPL net/wimax/wimax 0xcdf3a80a wimax_msg_data +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x014ff54a cfg80211_wext_siwmode +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x217832bc cfg80211_wext_giwname +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x2b7ff8e1 cfg80211_wext_giwrange +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x42aa2227 cfg80211_wext_siwfrag +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x51b6fe50 cfg80211_wext_siwscan +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x6faf10e2 cfg80211_wext_giwmode +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x85c3badf cfg80211_wext_giwrts +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xc44b6e92 cfg80211_wext_giwretry +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xc971b863 cfg80211_wext_giwfrag +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xdbd4cc41 cfg80211_wext_giwscan +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xe0e11485 cfg80211_wext_siwrts +EXPORT_SYMBOL_GPL net/xfrm/xfrm_algo 0x00778770 xfrm_ealg_get_byname +EXPORT_SYMBOL_GPL net/xfrm/xfrm_algo 0x056bb269 xfrm_ealg_get_byidx +EXPORT_SYMBOL_GPL net/xfrm/xfrm_algo 0x0a575945 xfrm_count_pfkey_auth_supported +EXPORT_SYMBOL_GPL net/xfrm/xfrm_algo 0x0b9e5852 xfrm_aead_get_byname +EXPORT_SYMBOL_GPL net/xfrm/xfrm_algo 0x28e23139 xfrm_probe_algs +EXPORT_SYMBOL_GPL net/xfrm/xfrm_algo 0x74e1a843 xfrm_aalg_get_byidx +EXPORT_SYMBOL_GPL net/xfrm/xfrm_algo 0x7a8ca627 xfrm_count_pfkey_enc_supported +EXPORT_SYMBOL_GPL net/xfrm/xfrm_algo 0x7c30b8c7 xfrm_calg_get_byname +EXPORT_SYMBOL_GPL net/xfrm/xfrm_algo 0x8d4222c4 pskb_put +EXPORT_SYMBOL_GPL net/xfrm/xfrm_algo 0x92dbc6c1 xfrm_aalg_get_byid +EXPORT_SYMBOL_GPL net/xfrm/xfrm_algo 0xbc8b0f41 xfrm_calg_get_byid +EXPORT_SYMBOL_GPL net/xfrm/xfrm_algo 0xce7a55c1 xfrm_ealg_get_byid +EXPORT_SYMBOL_GPL net/xfrm/xfrm_algo 0xe122af95 xfrm_aalg_get_byname +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0x068d62dc ipcomp_input +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0x25e2d14c ipcomp_destroy +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0x37c29fe8 ipcomp_init_state +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0xed16de8f ipcomp_output +EXPORT_SYMBOL_GPL sound/soc/atmel/snd-soc-atmel-pcm 0x40a0df3f atmel_pcm_new +EXPORT_SYMBOL_GPL sound/soc/atmel/snd-soc-atmel-pcm 0xa9aa175a atmel_pcm_free +EXPORT_SYMBOL_GPL sound/soc/atmel/snd-soc-atmel-pcm 0xb3058d92 atmel_pcm_mmap +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-88pm860x 0x138a343b pm860x_mic_jack_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-88pm860x 0xe147e659 pm860x_hs_jack_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ab8500-codec 0x38d2ce29 ab8500_audio_set_ear_cmv +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ab8500-codec 0x7b731f3d ab8500_audio_setup_mics +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-arizona 0x05ddbf0f arizona_lhpf4_mode +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-arizona 0x096590bd arizona_out_ev +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-arizona 0x0ef16198 arizona_init_fll +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-arizona 0x12ecde17 arizona_out_vi_ramp +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-arizona 0x196694e3 arizona_ng_hold +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-arizona 0x206e3ddf arizona_in_vi_ramp +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-arizona 0x2390b64e arizona_set_output_mode +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-arizona 0x3a1f7928 arizona_hp_ev +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-arizona 0x3f429d4c arizona_isrc_fsl +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-arizona 0x41b95c1f arizona_in_vd_ramp +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-arizona 0x547a7178 arizona_rate_val +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-arizona 0x57e590a8 arizona_lhpf1_mode +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-arizona 0x660d8a35 arizona_lhpf2_mode +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-arizona 0x72859db1 arizona_set_sysclk +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-arizona 0x733bbfd7 arizona_out_vd_ramp +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-arizona 0x7af8b6c5 arizona_in_ev +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-arizona 0x8c821bc2 arizona_rate_text +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-arizona 0x8ccf65ff arizona_set_fll +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-arizona 0x8dd35bf2 arizona_mixer_values +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-arizona 0xa3a8c5d2 arizona_init_spk +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-arizona 0xab6861be arizona_mixer_texts +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-arizona 0xc07a8181 arizona_lhpf3_mode +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-arizona 0xc2f1995c arizona_init_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-arizona 0xc3fa66e2 arizona_dai_ops +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-arizona 0xc9c29637 arizona_mixer_tlv +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-arizona 0xd6627843 arizona_simple_dai_ops +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-arizona 0xd92b89ee arizona_set_fll_refclk +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cx20442 0x9678a618 v253_ops +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-l3 0x78c84c7e l3_write +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-max98090 0x9a496622 max98090_mic_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-max98095 0xafee03bf max98095_jack_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-max9877 0x3b4ac300 max9877_add_controls +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tpa6130a2 0x28eec702 tpa6130a2_add_controls +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tpa6130a2 0x63959a37 tpa6130a2_stereo_enable +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-twl6040 0x12926ea1 twl6040_hs_jack_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-twl6040 0x66efe428 twl6040_get_dl1_gain +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-twl6040 0x69365d8a twl6040_get_hs_step_size +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-twl6040 0xaac47cb4 twl6040_get_trim_value +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-twl6040 0xc15e4183 twl6040_get_clk_id +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wl1273 0x4386b52e wl1273_get_format +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-adsp 0x136267d5 wm_adsp1_event +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-adsp 0x47800e1a wm_adsp2_fw_controls +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-adsp 0x9a00ad90 wm_adsp2_init +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-adsp 0xad06d378 wm_adsp1_fw_controls +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-adsp 0xbf9e145b wm_adsp1_init +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-adsp 0xe3420dee wm_adsp2_event +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-hubs 0x0ee7d530 wm_hubs_add_analogue_controls +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-hubs 0x49506612 wm_hubs_vmid_ena +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-hubs 0x5cd7eb9b wm_hubs_dcs_done +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-hubs 0x5d6c7e8a wm_hubs_update_class_w +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-hubs 0x5fa3771b wm_hubs_set_bias_level +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 0x8194d435 wm_hubs_add_analogue_routes +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-hubs 0x849bba1d wm_hubs_hpl_mux +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-hubs 0xbd47d9f6 wm_hubs_hpr_mux +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-hubs 0xf81b345b wm_hubs_handle_analogue_pdata +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8350 0x110fb8a4 wm8350_mic_jack_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8350 0x7a9a29c3 wm8350_hp_jack_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8903 0xd92109f7 wm8903_mic_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8962 0xb31cf9e7 wm8962_mic_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8994 0xa952b788 wm8958_mic_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8994 0xb26c8cc5 wm8994_mic_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8996 0x1e89d046 wm8996_detect +EXPORT_SYMBOL_GPL ubuntu/lttng/lib/lttng-lib-ring-buffer 0x060b12ee lib_ring_buffer_file_operations +EXPORT_SYMBOL_GPL ubuntu/lttng/lib/lttng-lib-ring-buffer 0x0a99acd7 vfs_lib_ring_buffer_no_llseek +EXPORT_SYMBOL_GPL ubuntu/lttng/lib/lttng-lib-ring-buffer 0x12df94fc lib_ring_buffer_move_consumer +EXPORT_SYMBOL_GPL ubuntu/lttng/lib/lttng-lib-ring-buffer 0x19c2f33f channel_iterator_open +EXPORT_SYMBOL_GPL ubuntu/lttng/lib/lttng-lib-ring-buffer 0x236a7536 lib_ring_buffer_splice_read +EXPORT_SYMBOL_GPL ubuntu/lttng/lib/lttng-lib-ring-buffer 0x27da6297 lib_ring_buffer_ioctl +EXPORT_SYMBOL_GPL ubuntu/lttng/lib/lttng-lib-ring-buffer 0x29e4bc26 lib_ring_buffer_reserve_slow +EXPORT_SYMBOL_GPL ubuntu/lttng/lib/lttng-lib-ring-buffer 0x30880f77 lib_ring_buffer_switch_remote +EXPORT_SYMBOL_GPL ubuntu/lttng/lib/lttng-lib-ring-buffer 0x3886016b channel_payload_file_operations +EXPORT_SYMBOL_GPL ubuntu/lttng/lib/lttng-lib-ring-buffer 0x3f9bbcaa vfs_lib_ring_buffer_mmap +EXPORT_SYMBOL_GPL ubuntu/lttng/lib/lttng-lib-ring-buffer 0x44ca9562 lib_ring_buffer_iterator_open +EXPORT_SYMBOL_GPL ubuntu/lttng/lib/lttng-lib-ring-buffer 0x52736ee9 lib_ring_buffer_iterator_release +EXPORT_SYMBOL_GPL ubuntu/lttng/lib/lttng-lib-ring-buffer 0x69c8ba34 lib_ring_buffer_get_next_record +EXPORT_SYMBOL_GPL ubuntu/lttng/lib/lttng-lib-ring-buffer 0x6b8d2a5d lib_ring_buffer_release_read +EXPORT_SYMBOL_GPL ubuntu/lttng/lib/lttng-lib-ring-buffer 0x709b9a81 lib_ring_buffer_payload_file_operations +EXPORT_SYMBOL_GPL ubuntu/lttng/lib/lttng-lib-ring-buffer 0x70fc5e32 lib_ring_buffer_read +EXPORT_SYMBOL_GPL ubuntu/lttng/lib/lttng-lib-ring-buffer 0x78569d3a lib_ring_buffer_mmap +EXPORT_SYMBOL_GPL ubuntu/lttng/lib/lttng-lib-ring-buffer 0x7d8c8a40 _lib_ring_buffer_memset +EXPORT_SYMBOL_GPL ubuntu/lttng/lib/lttng-lib-ring-buffer 0x813a7a1b lib_ring_buffer_offset_address +EXPORT_SYMBOL_GPL ubuntu/lttng/lib/lttng-lib-ring-buffer 0x9f3a787f channel_create +EXPORT_SYMBOL_GPL ubuntu/lttng/lib/lttng-lib-ring-buffer 0xaa3e163c __lib_ring_buffer_copy_to_user +EXPORT_SYMBOL_GPL ubuntu/lttng/lib/lttng-lib-ring-buffer 0xaaef27c5 lib_ring_buffer_open_read +EXPORT_SYMBOL_GPL ubuntu/lttng/lib/lttng-lib-ring-buffer 0xba291893 lib_ring_buffer_read_offset_address +EXPORT_SYMBOL_GPL ubuntu/lttng/lib/lttng-lib-ring-buffer 0xba8a1770 channel_reset +EXPORT_SYMBOL_GPL ubuntu/lttng/lib/lttng-lib-ring-buffer 0xbebe1084 channel_destroy +EXPORT_SYMBOL_GPL ubuntu/lttng/lib/lttng-lib-ring-buffer 0xc092a07b channel_get_next_record +EXPORT_SYMBOL_GPL ubuntu/lttng/lib/lttng-lib-ring-buffer 0xc8ae65f1 _lib_ring_buffer_copy_from_user_inatomic +EXPORT_SYMBOL_GPL ubuntu/lttng/lib/lttng-lib-ring-buffer 0xcbecd7fe lib_ring_buffer_reset +EXPORT_SYMBOL_GPL ubuntu/lttng/lib/lttng-lib-ring-buffer 0xdace941e lib_ring_buffer_release +EXPORT_SYMBOL_GPL ubuntu/lttng/lib/lttng-lib-ring-buffer 0xdad6d35e lib_ring_buffer_get_subbuf +EXPORT_SYMBOL_GPL ubuntu/lttng/lib/lttng-lib-ring-buffer 0xdc9a0b4f lib_ring_buffer_open +EXPORT_SYMBOL_GPL ubuntu/lttng/lib/lttng-lib-ring-buffer 0xe3489873 lib_ring_buffer_read_get_page +EXPORT_SYMBOL_GPL ubuntu/lttng/lib/lttng-lib-ring-buffer 0xe578ff4d lib_ring_buffer_poll +EXPORT_SYMBOL_GPL ubuntu/lttng/lib/lttng-lib-ring-buffer 0xee1676bd lib_ring_buffer_put_subbuf +EXPORT_SYMBOL_GPL ubuntu/lttng/lib/lttng-lib-ring-buffer 0xee47062d lib_ring_buffer_read_cstr +EXPORT_SYMBOL_GPL ubuntu/lttng/lib/lttng-lib-ring-buffer 0xf2cfb934 lib_ring_buffer_snapshot +EXPORT_SYMBOL_GPL ubuntu/lttng/lib/lttng-lib-ring-buffer 0xf6f24a27 channel_get_ring_buffer +EXPORT_SYMBOL_GPL ubuntu/lttng/lib/lttng-lib-ring-buffer 0xf852473a lib_ring_buffer_switch_slow +EXPORT_SYMBOL_GPL ubuntu/lttng/lib/lttng-lib-ring-buffer 0xf8f90212 vfs_lib_ring_buffer_splice_read +EXPORT_SYMBOL_GPL ubuntu/lttng/lib/lttng-lib-ring-buffer 0xfc84430f channel_iterator_release +EXPORT_SYMBOL_GPL ubuntu/lttng/lib/lttng-lib-ring-buffer 0xfcde8432 _lib_ring_buffer_write +EXPORT_SYMBOL_GPL ubuntu/lttng/lttng-statedump 0x78271d8a lttng_statedump_start +EXPORT_SYMBOL_GPL ubuntu/lttng/lttng-tracer 0x023ffdb6 lttng_add_vpid_to_ctx +EXPORT_SYMBOL_GPL ubuntu/lttng/lttng-tracer 0x07defeef lttng_event_put +EXPORT_SYMBOL_GPL ubuntu/lttng/lttng-tracer 0x0ffe5764 lttng_add_vtid_to_ctx +EXPORT_SYMBOL_GPL ubuntu/lttng/lttng-tracer 0x1e5294fc lttng_add_ppid_to_ctx +EXPORT_SYMBOL_GPL ubuntu/lttng/lttng-tracer 0x246fbd33 lttng_transport_unregister +EXPORT_SYMBOL_GPL ubuntu/lttng/lttng-tracer 0x32f44007 lttng_add_tid_to_ctx +EXPORT_SYMBOL_GPL ubuntu/lttng/lttng-tracer 0x3913d849 lttng_add_nice_to_ctx +EXPORT_SYMBOL_GPL ubuntu/lttng/lttng-tracer 0x3f35ead5 lttng_add_pid_to_ctx +EXPORT_SYMBOL_GPL ubuntu/lttng/lttng-tracer 0x63737ffb lttng_add_procname_to_ctx +EXPORT_SYMBOL_GPL ubuntu/lttng/lttng-tracer 0x6a6b0241 lttng_add_vppid_to_ctx +EXPORT_SYMBOL_GPL ubuntu/lttng/lttng-tracer 0x745b2d7c lttng_remove_context_field +EXPORT_SYMBOL_GPL ubuntu/lttng/lttng-tracer 0x7f6b4e2d lttng_find_context +EXPORT_SYMBOL_GPL ubuntu/lttng/lttng-tracer 0xc0abb8ba lttng_transport_register +EXPORT_SYMBOL_GPL ubuntu/lttng/lttng-tracer 0xc86056cd lttng_probe_register +EXPORT_SYMBOL_GPL ubuntu/lttng/lttng-tracer 0xcfc43b88 lttng_metadata_channel_destroy +EXPORT_SYMBOL_GPL ubuntu/lttng/lttng-tracer 0xdcbeace2 lttng_append_context +EXPORT_SYMBOL_GPL ubuntu/lttng/lttng-tracer 0xddd5323d lttng_add_hostname_to_ctx +EXPORT_SYMBOL_GPL ubuntu/lttng/lttng-tracer 0xe08e8c19 lttng_probe_unregister +EXPORT_SYMBOL_GPL ubuntu/lttng/lttng-tracer 0xe992d49a lttng_event_get +EXPORT_SYMBOL_GPL ubuntu/lttng/lttng-tracer 0xf79f21fd lttng_add_prio_to_ctx +EXPORT_SYMBOL_GPL ubuntu/lttng/probes/lttng-kprobes 0x066117b8 lttng_kprobes_destroy_private +EXPORT_SYMBOL_GPL ubuntu/lttng/probes/lttng-kprobes 0x5c21bcdd lttng_kprobes_register +EXPORT_SYMBOL_GPL ubuntu/lttng/probes/lttng-kprobes 0xb5ad847a lttng_kprobes_unregister +EXPORT_SYMBOL_GPL ubuntu/lttng/probes/lttng-kretprobes 0x476ee0fd lttng_kretprobes_register +EXPORT_SYMBOL_GPL ubuntu/lttng/probes/lttng-kretprobes 0x92232306 lttng_kretprobes_unregister +EXPORT_SYMBOL_GPL ubuntu/lttng/probes/lttng-kretprobes 0xdb91bf25 lttng_kretprobes_destroy_private +EXPORT_SYMBOL_GPL vmlinux 0x001012f3 snd_soc_bytes_info +EXPORT_SYMBOL_GPL vmlinux 0x0018d771 regulator_set_voltage_sel_regmap +EXPORT_SYMBOL_GPL vmlinux 0x0038e844 thermal_zone_get_zone_by_name +EXPORT_SYMBOL_GPL vmlinux 0x005af866 clockevents_register_device +EXPORT_SYMBOL_GPL vmlinux 0x00632780 work_busy +EXPORT_SYMBOL_GPL vmlinux 0x0067df75 ata_tf_from_fis +EXPORT_SYMBOL_GPL vmlinux 0x00783824 disk_part_iter_next +EXPORT_SYMBOL_GPL vmlinux 0x008268d6 kvm_vcpu_kick +EXPORT_SYMBOL_GPL vmlinux 0x00c4dc87 timecounter_init +EXPORT_SYMBOL_GPL vmlinux 0x00d3d8a4 tpm_remove_hardware +EXPORT_SYMBOL_GPL vmlinux 0x00ebcb5d ata_id_string +EXPORT_SYMBOL_GPL vmlinux 0x01010c6d klist_add_before +EXPORT_SYMBOL_GPL vmlinux 0x01120c7f blk_trace_setup +EXPORT_SYMBOL_GPL vmlinux 0x011cf028 regulator_suspend_finish +EXPORT_SYMBOL_GPL vmlinux 0x013cb5e8 md_stop_writes +EXPORT_SYMBOL_GPL vmlinux 0x0144806c posix_timers_register_clock +EXPORT_SYMBOL_GPL vmlinux 0x0148adb6 register_kprobes +EXPORT_SYMBOL_GPL vmlinux 0x0197be82 put_mtd_device +EXPORT_SYMBOL_GPL vmlinux 0x01b5fc37 led_trigger_blink_oneshot +EXPORT_SYMBOL_GPL vmlinux 0x01c6cb0c cpu_cluster_pm_enter +EXPORT_SYMBOL_GPL vmlinux 0x01e1a8de kgdb_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0x01ffa686 ata_sff_dma_pause +EXPORT_SYMBOL_GPL vmlinux 0x02403416 irq_get_domain_generic_chip +EXPORT_SYMBOL_GPL vmlinux 0x028a472f mtd_get_unmapped_area +EXPORT_SYMBOL_GPL vmlinux 0x02ba759e regulator_is_enabled_regmap +EXPORT_SYMBOL_GPL vmlinux 0x02bc3aef regcache_sync +EXPORT_SYMBOL_GPL vmlinux 0x02c625b8 cred_to_ucred +EXPORT_SYMBOL_GPL vmlinux 0x02d3a2d7 spi_get_device_id +EXPORT_SYMBOL_GPL vmlinux 0x02d3acb6 crypto_ahash_digest +EXPORT_SYMBOL_GPL vmlinux 0x02fdb4f6 aead_geniv_free +EXPORT_SYMBOL_GPL vmlinux 0x031225c2 __sock_recv_timestamp +EXPORT_SYMBOL_GPL vmlinux 0x0326e9fb usb_match_id +EXPORT_SYMBOL_GPL vmlinux 0x03300e0a ohci_resume +EXPORT_SYMBOL_GPL vmlinux 0x0335c1d2 devres_release_group +EXPORT_SYMBOL_GPL vmlinux 0x0343bdf1 __i2c_board_list +EXPORT_SYMBOL_GPL vmlinux 0x0345555a ioremap_page_range +EXPORT_SYMBOL_GPL vmlinux 0x0359759a spi_setup +EXPORT_SYMBOL_GPL vmlinux 0x03743b37 dev_attr_em_message_type +EXPORT_SYMBOL_GPL vmlinux 0x03c2c114 ata_bmdma_setup +EXPORT_SYMBOL_GPL vmlinux 0x03e3686c ata_timing_cycle2mode +EXPORT_SYMBOL_GPL vmlinux 0x04029dc8 device_create_bin_file +EXPORT_SYMBOL_GPL vmlinux 0x043c9806 synchronize_srcu +EXPORT_SYMBOL_GPL vmlinux 0x04486e88 rcu_batches_completed +EXPORT_SYMBOL_GPL vmlinux 0x045000f6 mtd_get_device_size +EXPORT_SYMBOL_GPL vmlinux 0x0465a073 regmap_reg_in_ranges +EXPORT_SYMBOL_GPL vmlinux 0x04755a1d xenbus_dev_fatal +EXPORT_SYMBOL_GPL vmlinux 0x048b5f8d twl4030_audio_get_mclk +EXPORT_SYMBOL_GPL vmlinux 0x048ba9db disk_part_iter_exit +EXPORT_SYMBOL_GPL vmlinux 0x04aaee3c irq_domain_remove +EXPORT_SYMBOL_GPL vmlinux 0x04af22ba inet_csk_reqsk_queue_prune +EXPORT_SYMBOL_GPL vmlinux 0x04c3f2c1 gnttab_empty_grant_references +EXPORT_SYMBOL_GPL vmlinux 0x04c4f603 mpi_get_buffer +EXPORT_SYMBOL_GPL vmlinux 0x04e1b99f snd_pcm_std_chmaps +EXPORT_SYMBOL_GPL vmlinux 0x04e71151 simple_attr_write +EXPORT_SYMBOL_GPL vmlinux 0x05003a2a show_class_attr_string +EXPORT_SYMBOL_GPL vmlinux 0x050874b3 snd_soc_write +EXPORT_SYMBOL_GPL vmlinux 0x0524f82a da9055_regmap_config +EXPORT_SYMBOL_GPL vmlinux 0x0531dcb8 ata_dev_classify +EXPORT_SYMBOL_GPL vmlinux 0x054e550b kernel_halt +EXPORT_SYMBOL_GPL vmlinux 0x0551f0ce tick_nohz_idle_exit +EXPORT_SYMBOL_GPL vmlinux 0x05703992 sdio_claim_irq +EXPORT_SYMBOL_GPL vmlinux 0x0578b459 relay_file_operations +EXPORT_SYMBOL_GPL vmlinux 0x058b582a vt_get_leds +EXPORT_SYMBOL_GPL vmlinux 0x059ff9bb sk_attach_filter +EXPORT_SYMBOL_GPL vmlinux 0x05c9b29a inet_csk_update_pmtu +EXPORT_SYMBOL_GPL vmlinux 0x05e69a15 ahci_save_initial_config +EXPORT_SYMBOL_GPL vmlinux 0x05e8a9d7 ping_queue_rcv_skb +EXPORT_SYMBOL_GPL vmlinux 0x061292f3 tc3589x_block_write +EXPORT_SYMBOL_GPL vmlinux 0x06178847 ata_sas_sync_probe +EXPORT_SYMBOL_GPL vmlinux 0x062a415c key_type_user +EXPORT_SYMBOL_GPL vmlinux 0x062fc169 xen_hvm_resume_frames +EXPORT_SYMBOL_GPL vmlinux 0x06311dd2 simple_attr_read +EXPORT_SYMBOL_GPL vmlinux 0x0636b271 pwm_disable +EXPORT_SYMBOL_GPL vmlinux 0x06438115 tcp_orphan_count +EXPORT_SYMBOL_GPL vmlinux 0x064a48be spi_add_device +EXPORT_SYMBOL_GPL vmlinux 0x064db9a5 mark_mounts_for_expiry +EXPORT_SYMBOL_GPL vmlinux 0x0699ac53 ata_sg_init +EXPORT_SYMBOL_GPL vmlinux 0x06b0ba13 sdhci_pltfm_register +EXPORT_SYMBOL_GPL vmlinux 0x06dceffb snd_soc_of_parse_daifmt +EXPORT_SYMBOL_GPL vmlinux 0x0701f17f skb_segment +EXPORT_SYMBOL_GPL vmlinux 0x071d3b0c tty_port_register_device +EXPORT_SYMBOL_GPL vmlinux 0x07455fa9 srcu_barrier +EXPORT_SYMBOL_GPL vmlinux 0x074938d4 ata_port_abort +EXPORT_SYMBOL_GPL vmlinux 0x0762403c edac_put_sysfs_subsys +EXPORT_SYMBOL_GPL vmlinux 0x07a38604 crypto_aes_set_key +EXPORT_SYMBOL_GPL vmlinux 0x07b21f85 kdb_get_kbd_char +EXPORT_SYMBOL_GPL vmlinux 0x07b291d1 usb_unlink_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0x07b3c480 ehci_init_driver +EXPORT_SYMBOL_GPL vmlinux 0x07b52e38 rtnl_unregister +EXPORT_SYMBOL_GPL vmlinux 0x07cf3227 clk_fixed_rate_ops +EXPORT_SYMBOL_GPL vmlinux 0x07ed48c3 __blocking_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x07f65d3c get_task_comm +EXPORT_SYMBOL_GPL vmlinux 0x082993a3 snd_soc_of_parse_card_name +EXPORT_SYMBOL_GPL vmlinux 0x0840c0dc class_compat_remove_link +EXPORT_SYMBOL_GPL vmlinux 0x0845b77d rt_mutex_trylock +EXPORT_SYMBOL_GPL vmlinux 0x08836dca mdio_mux_init +EXPORT_SYMBOL_GPL vmlinux 0x0888f8f8 ata_cable_unknown +EXPORT_SYMBOL_GPL vmlinux 0x088adb66 hrtimer_init_sleeper +EXPORT_SYMBOL_GPL vmlinux 0x0899f091 hrtimer_get_remaining +EXPORT_SYMBOL_GPL vmlinux 0x0899f42a tty_port_tty_hangup +EXPORT_SYMBOL_GPL vmlinux 0x089ac1d3 skb_complete_wifi_ack +EXPORT_SYMBOL_GPL vmlinux 0x08a9b2ca crypto_grab_skcipher +EXPORT_SYMBOL_GPL vmlinux 0x08bbe04e bus_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x08c3147c crypto_register_shashes +EXPORT_SYMBOL_GPL vmlinux 0x08c8cc94 sk_clear_memalloc +EXPORT_SYMBOL_GPL vmlinux 0x08d00a71 usb_hcd_giveback_urb +EXPORT_SYMBOL_GPL vmlinux 0x08fa0ea3 snd_compress_new +EXPORT_SYMBOL_GPL vmlinux 0x08ffa725 ahci_init_controller +EXPORT_SYMBOL_GPL vmlinux 0x090c0c27 ipv4_redirect +EXPORT_SYMBOL_GPL vmlinux 0x091eb9b4 round_jiffies +EXPORT_SYMBOL_GPL vmlinux 0x092f6601 regmap_read +EXPORT_SYMBOL_GPL vmlinux 0x093b08a2 wm8994_reg_read +EXPORT_SYMBOL_GPL vmlinux 0x09437748 ring_buffer_read_events_cpu +EXPORT_SYMBOL_GPL vmlinux 0x09469482 kfree_call_rcu +EXPORT_SYMBOL_GPL vmlinux 0x094a3e04 sdio_disable_func +EXPORT_SYMBOL_GPL vmlinux 0x099dfeaf debugfs_print_regs32 +EXPORT_SYMBOL_GPL vmlinux 0x09e913c1 snd_pcm_alt_chmaps +EXPORT_SYMBOL_GPL vmlinux 0x09ee2386 ata_ehi_clear_desc +EXPORT_SYMBOL_GPL vmlinux 0x09f0fc54 usb_find_alt_setting +EXPORT_SYMBOL_GPL vmlinux 0x09f60fa0 wm8350_reg_write +EXPORT_SYMBOL_GPL vmlinux 0x0a2c46c4 cpuidle_register_device +EXPORT_SYMBOL_GPL vmlinux 0x0a32354d tcp_slow_start +EXPORT_SYMBOL_GPL vmlinux 0x0a751306 skb_morph +EXPORT_SYMBOL_GPL vmlinux 0x0aad634e irq_remove_generic_chip +EXPORT_SYMBOL_GPL vmlinux 0x0aba2d8c balloon_mapping_alloc +EXPORT_SYMBOL_GPL vmlinux 0x0ae64ac4 ping_proc_register +EXPORT_SYMBOL_GPL vmlinux 0x0afd4610 zs_malloc +EXPORT_SYMBOL_GPL vmlinux 0x0b07abe2 unshare_fs_struct +EXPORT_SYMBOL_GPL vmlinux 0x0b1e6446 tty_ldisc_deref +EXPORT_SYMBOL_GPL vmlinux 0x0b59390b __tracepoint_rpm_suspend +EXPORT_SYMBOL_GPL vmlinux 0x0b5cd8ff regmap_check_range_table +EXPORT_SYMBOL_GPL vmlinux 0x0b6936c1 __pm_runtime_disable +EXPORT_SYMBOL_GPL vmlinux 0x0b88412d kill_mtd_super +EXPORT_SYMBOL_GPL vmlinux 0x0b9b433e ata_port_freeze +EXPORT_SYMBOL_GPL vmlinux 0x0ba8374b __srcu_read_unlock +EXPORT_SYMBOL_GPL vmlinux 0x0bae62b1 ktime_get_monotonic_offset +EXPORT_SYMBOL_GPL vmlinux 0x0bbae511 return_address +EXPORT_SYMBOL_GPL vmlinux 0x0bfa3a19 rcu_idle_exit +EXPORT_SYMBOL_GPL vmlinux 0x0c041941 kvm_clear_guest_page +EXPORT_SYMBOL_GPL vmlinux 0x0c08a06e flush_kthread_work +EXPORT_SYMBOL_GPL vmlinux 0x0c0c015e ring_buffer_swap_cpu +EXPORT_SYMBOL_GPL vmlinux 0x0c17871c raw_seq_next +EXPORT_SYMBOL_GPL vmlinux 0x0c24fe88 vchan_tx_submit +EXPORT_SYMBOL_GPL vmlinux 0x0c2cdbf1 synchronize_sched +EXPORT_SYMBOL_GPL vmlinux 0x0c569412 extcon_find_cable_index +EXPORT_SYMBOL_GPL vmlinux 0x0c9a4761 sata_scr_read +EXPORT_SYMBOL_GPL vmlinux 0x0cc1e40f crypto_it_tab +EXPORT_SYMBOL_GPL vmlinux 0x0cc2fd78 spi_bus_lock +EXPORT_SYMBOL_GPL vmlinux 0x0cf979f7 led_trigger_unregister +EXPORT_SYMBOL_GPL vmlinux 0x0d0a1897 ata_host_init +EXPORT_SYMBOL_GPL vmlinux 0x0d2260e3 md_is_badblock +EXPORT_SYMBOL_GPL vmlinux 0x0d2e7958 simple_attr_open +EXPORT_SYMBOL_GPL vmlinux 0x0d36f1a1 register_asymmetric_key_parser +EXPORT_SYMBOL_GPL vmlinux 0x0d63fa31 dma_request_slave_channel +EXPORT_SYMBOL_GPL vmlinux 0x0d6c34b7 device_add +EXPORT_SYMBOL_GPL vmlinux 0x0d881cea crypto_register_algs +EXPORT_SYMBOL_GPL vmlinux 0x0d8e1196 wm831x_reg_lock +EXPORT_SYMBOL_GPL vmlinux 0x0da06ba5 vfs_lock_file +EXPORT_SYMBOL_GPL vmlinux 0x0da53660 inet_csk_route_child_sock +EXPORT_SYMBOL_GPL vmlinux 0x0dbd0e20 of_property_read_u8_array +EXPORT_SYMBOL_GPL vmlinux 0x0def2be2 ata_sff_port_intr +EXPORT_SYMBOL_GPL vmlinux 0x0df32002 ahci_shost_attrs +EXPORT_SYMBOL_GPL vmlinux 0x0e081566 tpm_dev_release +EXPORT_SYMBOL_GPL vmlinux 0x0e263d3f regmap_update_bits_check +EXPORT_SYMBOL_GPL vmlinux 0x0e40dacc sk_detach_filter +EXPORT_SYMBOL_GPL vmlinux 0x0e4ee452 inet_hash +EXPORT_SYMBOL_GPL vmlinux 0x0e513ad1 md_run +EXPORT_SYMBOL_GPL vmlinux 0x0e62998a crypto_nivaead_type +EXPORT_SYMBOL_GPL vmlinux 0x0e77733c udc_attach_driver +EXPORT_SYMBOL_GPL vmlinux 0x0ed36b2f call_srcu +EXPORT_SYMBOL_GPL vmlinux 0x0f10b7c1 wm8350_reg_lock +EXPORT_SYMBOL_GPL vmlinux 0x0f1b7a6a ahci_reset_controller +EXPORT_SYMBOL_GPL vmlinux 0x0f1ca1f6 serial8250_request_dma +EXPORT_SYMBOL_GPL vmlinux 0x0f20f4e2 cpuidle_disable_device +EXPORT_SYMBOL_GPL vmlinux 0x0f234d9f inet6_csk_bind_conflict +EXPORT_SYMBOL_GPL vmlinux 0x0f2ee411 pwm_get +EXPORT_SYMBOL_GPL vmlinux 0x0f38f5a1 crypto_destroy_tfm +EXPORT_SYMBOL_GPL vmlinux 0x0f595a4b devm_add_action +EXPORT_SYMBOL_GPL vmlinux 0x0f751aea input_event_from_user +EXPORT_SYMBOL_GPL vmlinux 0x0f8d60cb skcipher_geniv_free +EXPORT_SYMBOL_GPL vmlinux 0x0f98e413 gfn_to_page_many_atomic +EXPORT_SYMBOL_GPL vmlinux 0x0fa35886 usb_for_each_dev +EXPORT_SYMBOL_GPL vmlinux 0x0fbc1138 scsi_target_block +EXPORT_SYMBOL_GPL vmlinux 0x0fc01e9f static_key_slow_inc +EXPORT_SYMBOL_GPL vmlinux 0x0fc3bd35 hrtimer_init +EXPORT_SYMBOL_GPL vmlinux 0x0fd0f21b preempt_notifier_register +EXPORT_SYMBOL_GPL vmlinux 0x0fdc6321 platform_device_register_full +EXPORT_SYMBOL_GPL vmlinux 0x0fe112dc of_dma_controller_free +EXPORT_SYMBOL_GPL vmlinux 0x0fe2d570 xenbus_directory +EXPORT_SYMBOL_GPL vmlinux 0x0fe65e8c synchronize_srcu_expedited +EXPORT_SYMBOL_GPL vmlinux 0x0ffffb53 add_to_page_cache_lru +EXPORT_SYMBOL_GPL vmlinux 0x10138352 tracing_on +EXPORT_SYMBOL_GPL vmlinux 0x1017a0cc irq_gc_mask_set_bit +EXPORT_SYMBOL_GPL vmlinux 0x101d30da blkcipher_walk_done +EXPORT_SYMBOL_GPL vmlinux 0x1026c1d9 srcu_batches_completed +EXPORT_SYMBOL_GPL vmlinux 0x10291853 devm_regulator_put +EXPORT_SYMBOL_GPL vmlinux 0x1073dc49 ipv6_recv_error +EXPORT_SYMBOL_GPL vmlinux 0x10816385 i2c_for_each_dev +EXPORT_SYMBOL_GPL vmlinux 0x1088c7a9 netlink_remove_tap +EXPORT_SYMBOL_GPL vmlinux 0x10933469 ip6_route_lookup +EXPORT_SYMBOL_GPL vmlinux 0x10b84291 tps80031_ext_power_req_config +EXPORT_SYMBOL_GPL vmlinux 0x10e8e0c1 sdhci_resume_host +EXPORT_SYMBOL_GPL vmlinux 0x110224ba tpm_show_owned +EXPORT_SYMBOL_GPL vmlinux 0x11550a10 wm8350_reg_unlock +EXPORT_SYMBOL_GPL vmlinux 0x117083a0 max8997_read_reg +EXPORT_SYMBOL_GPL vmlinux 0x1172ce54 rtc_ktime_to_tm +EXPORT_SYMBOL_GPL vmlinux 0x1179b647 sysfs_put +EXPORT_SYMBOL_GPL vmlinux 0x117a1102 net_ns_type_operations +EXPORT_SYMBOL_GPL vmlinux 0x11b64c6c dma_buf_begin_cpu_access +EXPORT_SYMBOL_GPL vmlinux 0x11c155df add_page_wait_queue +EXPORT_SYMBOL_GPL vmlinux 0x11c650c1 omap_control_usb3_phy_power +EXPORT_SYMBOL_GPL vmlinux 0x11f447ce __gpio_to_irq +EXPORT_SYMBOL_GPL vmlinux 0x120f948c blk_queue_bio +EXPORT_SYMBOL_GPL vmlinux 0x121d958a unregister_die_notifier +EXPORT_SYMBOL_GPL vmlinux 0x121ed3f3 add_timer_on +EXPORT_SYMBOL_GPL vmlinux 0x122a3634 cleanup_srcu_struct +EXPORT_SYMBOL_GPL vmlinux 0x124f2056 crypto_get_attr_type +EXPORT_SYMBOL_GPL vmlinux 0x1257daff spi_alloc_device +EXPORT_SYMBOL_GPL vmlinux 0x1258d9d9 regulator_disable +EXPORT_SYMBOL_GPL vmlinux 0x125f6260 perf_event_enable +EXPORT_SYMBOL_GPL vmlinux 0x1268f357 resume_device_irqs +EXPORT_SYMBOL_GPL vmlinux 0x126a6819 snd_soc_platform_trigger +EXPORT_SYMBOL_GPL vmlinux 0x1270f2b9 input_ff_create +EXPORT_SYMBOL_GPL vmlinux 0x1272cb03 __rtnl_register +EXPORT_SYMBOL_GPL vmlinux 0x1285a003 subsys_dev_iter_next +EXPORT_SYMBOL_GPL vmlinux 0x1294e876 device_show_bool +EXPORT_SYMBOL_GPL vmlinux 0x12c485d9 ata_sas_port_alloc +EXPORT_SYMBOL_GPL vmlinux 0x13043ca4 arizona_pm_ops +EXPORT_SYMBOL_GPL vmlinux 0x131a5ed7 regmap_del_irq_chip +EXPORT_SYMBOL_GPL vmlinux 0x131db64a system_long_wq +EXPORT_SYMBOL_GPL vmlinux 0x13436404 dev_pm_qos_add_ancestor_request +EXPORT_SYMBOL_GPL vmlinux 0x134535ae regmap_raw_write_async +EXPORT_SYMBOL_GPL vmlinux 0x138aff76 gnttab_init +EXPORT_SYMBOL_GPL vmlinux 0x13c74b0d xenbus_dev_probe +EXPORT_SYMBOL_GPL vmlinux 0x13c83509 srcu_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x13e21824 task_current_syscall +EXPORT_SYMBOL_GPL vmlinux 0x13ea9539 sata_link_scr_lpm +EXPORT_SYMBOL_GPL vmlinux 0x13f8c97e kvm_clear_guest +EXPORT_SYMBOL_GPL vmlinux 0x140e5bcd crypto_find_alg +EXPORT_SYMBOL_GPL vmlinux 0x1414f480 devm_usb_get_phy_dev +EXPORT_SYMBOL_GPL vmlinux 0x142a8be4 of_clk_get_parent_name +EXPORT_SYMBOL_GPL vmlinux 0x146b7e3a device_set_wakeup_capable +EXPORT_SYMBOL_GPL vmlinux 0x146dc4cf sysfs_remove_file_from_group +EXPORT_SYMBOL_GPL vmlinux 0x149b029a spi_alloc_master +EXPORT_SYMBOL_GPL vmlinux 0x14d3e15c relay_reset +EXPORT_SYMBOL_GPL vmlinux 0x14db47b1 relay_subbufs_consumed +EXPORT_SYMBOL_GPL vmlinux 0x14ef238e ata_sff_qc_fill_rtf +EXPORT_SYMBOL_GPL vmlinux 0x14f0f613 device_wakeup_disable +EXPORT_SYMBOL_GPL vmlinux 0x14f875ce devm_regmap_init_mmio_clk +EXPORT_SYMBOL_GPL vmlinux 0x1503b8a2 of_pwm_get +EXPORT_SYMBOL_GPL vmlinux 0x1525f36d __pm_stay_awake +EXPORT_SYMBOL_GPL vmlinux 0x154d7a2c irq_domain_xlate_twocell +EXPORT_SYMBOL_GPL vmlinux 0x1556e918 sock_diag_put_meminfo +EXPORT_SYMBOL_GPL vmlinux 0x15892417 async_synchronize_cookie +EXPORT_SYMBOL_GPL vmlinux 0x1589d0ab udp6_lib_lookup +EXPORT_SYMBOL_GPL vmlinux 0x1592f416 cgroup_taskset_first +EXPORT_SYMBOL_GPL vmlinux 0x159339dc fat_free_clusters +EXPORT_SYMBOL_GPL vmlinux 0x15aa7ce7 dapm_mark_io_dirty +EXPORT_SYMBOL_GPL vmlinux 0x15af5b08 sec_reg_write +EXPORT_SYMBOL_GPL vmlinux 0x15f8fb29 __rtnl_link_register +EXPORT_SYMBOL_GPL vmlinux 0x16000a3c dm_device_name +EXPORT_SYMBOL_GPL vmlinux 0x1650bf27 rcutorture_record_progress +EXPORT_SYMBOL_GPL vmlinux 0x165c2efb clk_get_rate +EXPORT_SYMBOL_GPL vmlinux 0x16822eee dm_disk +EXPORT_SYMBOL_GPL vmlinux 0x1689b99f snd_soc_dapm_get_pin_switch +EXPORT_SYMBOL_GPL vmlinux 0x16a5544a crypto_rng_type +EXPORT_SYMBOL_GPL vmlinux 0x16daf140 exportfs_encode_inode_fh +EXPORT_SYMBOL_GPL vmlinux 0x16dcaa8f spi_finalize_current_message +EXPORT_SYMBOL_GPL vmlinux 0x1718800d blkg_prfill_rwstat +EXPORT_SYMBOL_GPL vmlinux 0x171f8bc8 snd_soc_register_platform +EXPORT_SYMBOL_GPL vmlinux 0x177c338d twl_get_version +EXPORT_SYMBOL_GPL vmlinux 0x1788ddd4 snd_soc_dapm_free +EXPORT_SYMBOL_GPL vmlinux 0x17c968c6 snd_soc_dapm_put_volsw +EXPORT_SYMBOL_GPL vmlinux 0x17ef3129 ata_bmdma32_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x17f04b38 max8997_bulk_read +EXPORT_SYMBOL_GPL vmlinux 0x17f07f21 sysfs_create_group +EXPORT_SYMBOL_GPL vmlinux 0x17f1f7ad find_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0x18041227 snd_soc_put_xr_sx +EXPORT_SYMBOL_GPL vmlinux 0x180eb394 crypto_register_ahash +EXPORT_SYMBOL_GPL vmlinux 0x182306cf srcu_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0x1825ca70 debugfs_create_regset32 +EXPORT_SYMBOL_GPL vmlinux 0x1848a86a tpm_pm_suspend +EXPORT_SYMBOL_GPL vmlinux 0x1866cec2 ring_buffer_size +EXPORT_SYMBOL_GPL vmlinux 0x1878f62b edac_err_assert +EXPORT_SYMBOL_GPL vmlinux 0x18799dc0 snd_soc_set_ac97_ops +EXPORT_SYMBOL_GPL vmlinux 0x188c7139 ahci_print_info +EXPORT_SYMBOL_GPL vmlinux 0x18a27f34 jump_label_rate_limit +EXPORT_SYMBOL_GPL vmlinux 0x18b57eee dm_path_uevent +EXPORT_SYMBOL_GPL vmlinux 0x18f83fab gnttab_grant_foreign_access_ref +EXPORT_SYMBOL_GPL vmlinux 0x192e8106 __class_register +EXPORT_SYMBOL_GPL vmlinux 0x193d48e0 trace_current_buffer_unlock_commit +EXPORT_SYMBOL_GPL vmlinux 0x19445987 usb_hcd_end_port_resume +EXPORT_SYMBOL_GPL vmlinux 0x1968a5c4 snd_soc_platform_write +EXPORT_SYMBOL_GPL vmlinux 0x197297eb irq_domain_xlate_onetwocell +EXPORT_SYMBOL_GPL vmlinux 0x198c4233 ip6_redirect +EXPORT_SYMBOL_GPL vmlinux 0x19a304ba usb_disabled +EXPORT_SYMBOL_GPL vmlinux 0x19fc7f60 regulator_set_mode +EXPORT_SYMBOL_GPL vmlinux 0x1a082d69 max77693_update_reg +EXPORT_SYMBOL_GPL vmlinux 0x1a234b10 mtd_block_markbad +EXPORT_SYMBOL_GPL vmlinux 0x1a323362 __ftrace_vbprintk +EXPORT_SYMBOL_GPL vmlinux 0x1a407076 nfq_ct_hook +EXPORT_SYMBOL_GPL vmlinux 0x1a53c35a cgroup_add_cftypes +EXPORT_SYMBOL_GPL vmlinux 0x1a68fe6c thermal_cooling_device_register +EXPORT_SYMBOL_GPL vmlinux 0x1a76255d sk_clone_lock +EXPORT_SYMBOL_GPL vmlinux 0x1a839d4f spi_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x1a913524 skb_gro_receive +EXPORT_SYMBOL_GPL vmlinux 0x1ac10116 usb_register_dev +EXPORT_SYMBOL_GPL vmlinux 0x1ad4b4b9 __blk_end_request_err +EXPORT_SYMBOL_GPL vmlinux 0x1ad83009 trace_seq_vprintf +EXPORT_SYMBOL_GPL vmlinux 0x1af47d89 xenbus_unmap_ring_vfree +EXPORT_SYMBOL_GPL vmlinux 0x1b2409d3 transport_class_register +EXPORT_SYMBOL_GPL vmlinux 0x1b3193ff gen_pool_size +EXPORT_SYMBOL_GPL vmlinux 0x1b3261e0 klist_iter_init +EXPORT_SYMBOL_GPL vmlinux 0x1b52db1c probe_kernel_read +EXPORT_SYMBOL_GPL vmlinux 0x1b60e324 md_rdev_clear +EXPORT_SYMBOL_GPL vmlinux 0x1b630f55 reset_controller_unregister +EXPORT_SYMBOL_GPL vmlinux 0x1b9aca3f jprobe_return +EXPORT_SYMBOL_GPL vmlinux 0x1bb5fc26 atomic_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0x1bce3413 blkio_subsys +EXPORT_SYMBOL_GPL vmlinux 0x1bd0b5d2 serial8250_release_dma +EXPORT_SYMBOL_GPL vmlinux 0x1beb499c crypto_tfm_in_queue +EXPORT_SYMBOL_GPL vmlinux 0x1beff5a2 shmem_file_setup +EXPORT_SYMBOL_GPL vmlinux 0x1c0a6a01 __ata_change_queue_depth +EXPORT_SYMBOL_GPL vmlinux 0x1c29d5df tps65912_clear_bits +EXPORT_SYMBOL_GPL vmlinux 0x1c3b6848 mtd_erase_callback +EXPORT_SYMBOL_GPL vmlinux 0x1c5b1f28 irq_free_descs +EXPORT_SYMBOL_GPL vmlinux 0x1c87a811 __round_jiffies_up +EXPORT_SYMBOL_GPL vmlinux 0x1caa9854 __rtnl_af_unregister +EXPORT_SYMBOL_GPL vmlinux 0x1cb77379 driver_find +EXPORT_SYMBOL_GPL vmlinux 0x1cd37c4d kset_create_and_add +EXPORT_SYMBOL_GPL vmlinux 0x1ceff822 mtd_read_oob +EXPORT_SYMBOL_GPL vmlinux 0x1cf141c4 anon_transport_class_unregister +EXPORT_SYMBOL_GPL vmlinux 0x1cfe78d1 kvm_release_pfn_dirty +EXPORT_SYMBOL_GPL vmlinux 0x1cffc4df RSA_public_key_algorithm +EXPORT_SYMBOL_GPL vmlinux 0x1d33ad1a skcipher_geniv_exit +EXPORT_SYMBOL_GPL vmlinux 0x1d58ae14 lpddr2_jedec_timings +EXPORT_SYMBOL_GPL vmlinux 0x1d5e7839 ohci_init_driver +EXPORT_SYMBOL_GPL vmlinux 0x1d739e1c xen_set_callback_via +EXPORT_SYMBOL_GPL vmlinux 0x1d77b0f8 unix_socket_table +EXPORT_SYMBOL_GPL vmlinux 0x1d85d602 perf_event_release_kernel +EXPORT_SYMBOL_GPL vmlinux 0x1de054d5 of_clk_del_provider +EXPORT_SYMBOL_GPL vmlinux 0x1df415e7 of_get_regulator_init_data +EXPORT_SYMBOL_GPL vmlinux 0x1e164434 subsys_dev_iter_exit +EXPORT_SYMBOL_GPL vmlinux 0x1e214a4b regmap_bulk_read +EXPORT_SYMBOL_GPL vmlinux 0x1e314b21 regulator_use_dummy_regulator +EXPORT_SYMBOL_GPL vmlinux 0x1e3a88fb trace_seq_printf +EXPORT_SYMBOL_GPL vmlinux 0x1e4c92d7 subsys_system_register +EXPORT_SYMBOL_GPL vmlinux 0x1e5b03dc pm_qos_add_notifier +EXPORT_SYMBOL_GPL vmlinux 0x1e6cbb3a snd_soc_limit_volume +EXPORT_SYMBOL_GPL vmlinux 0x1e718c8e tty_port_install +EXPORT_SYMBOL_GPL vmlinux 0x1e77bdfd __blkg_prfill_rwstat +EXPORT_SYMBOL_GPL vmlinux 0x1e7bbcb3 kernel_restart +EXPORT_SYMBOL_GPL vmlinux 0x1e83fee6 HYPERVISOR_physdev_op +EXPORT_SYMBOL_GPL vmlinux 0x1eb9516e round_jiffies_relative +EXPORT_SYMBOL_GPL vmlinux 0x1ed55a82 ping_seq_fops +EXPORT_SYMBOL_GPL vmlinux 0x1f0d2934 usb_bulk_msg +EXPORT_SYMBOL_GPL vmlinux 0x1f10aad9 sdhci_get_of_property +EXPORT_SYMBOL_GPL vmlinux 0x1f22cbe3 wm5102_spi_regmap +EXPORT_SYMBOL_GPL vmlinux 0x1f37286e register_jprobes +EXPORT_SYMBOL_GPL vmlinux 0x1f54f1b4 do_trace_rcu_torture_read +EXPORT_SYMBOL_GPL vmlinux 0x1f75388b blk_queue_rq_timed_out +EXPORT_SYMBOL_GPL vmlinux 0x1f8544b8 panic_timeout +EXPORT_SYMBOL_GPL vmlinux 0x1f892675 pm_generic_poweroff +EXPORT_SYMBOL_GPL vmlinux 0x1f8db7f9 ring_buffer_overrun_cpu +EXPORT_SYMBOL_GPL vmlinux 0x1fc23090 usb_get_descriptor +EXPORT_SYMBOL_GPL vmlinux 0x1fcece42 inet_twdr_twcal_tick +EXPORT_SYMBOL_GPL vmlinux 0x1fdf02a0 snd_soc_dapm_del_routes +EXPORT_SYMBOL_GPL vmlinux 0x20198b5c ata_sff_irq_on +EXPORT_SYMBOL_GPL vmlinux 0x201d8ea3 encode_rs8 +EXPORT_SYMBOL_GPL vmlinux 0x201e8efe sdhci_pltfm_free +EXPORT_SYMBOL_GPL vmlinux 0x202caa71 __ata_ehi_push_desc +EXPORT_SYMBOL_GPL vmlinux 0x20619317 max8997_bulk_write +EXPORT_SYMBOL_GPL vmlinux 0x20841531 mtd_read_user_prot_reg +EXPORT_SYMBOL_GPL vmlinux 0x208de58b usb_wakeup_notification +EXPORT_SYMBOL_GPL vmlinux 0x20918765 mmc_send_ext_csd +EXPORT_SYMBOL_GPL vmlinux 0x20a31499 irq_set_default_host +EXPORT_SYMBOL_GPL vmlinux 0x20a6ec30 usb_submit_urb +EXPORT_SYMBOL_GPL vmlinux 0x20bc3470 orderly_poweroff +EXPORT_SYMBOL_GPL vmlinux 0x20c5b7a5 snd_soc_codec_writable_register +EXPORT_SYMBOL_GPL vmlinux 0x20c8ec1b snd_soc_jack_new +EXPORT_SYMBOL_GPL vmlinux 0x20d57359 dev_pm_qos_remove_notifier +EXPORT_SYMBOL_GPL vmlinux 0x20de5193 kvm_disable_largepages +EXPORT_SYMBOL_GPL vmlinux 0x21163a24 napi_by_id +EXPORT_SYMBOL_GPL vmlinux 0x21233e18 bio_clone_mddev +EXPORT_SYMBOL_GPL vmlinux 0x21548fb2 anon_transport_class_register +EXPORT_SYMBOL_GPL vmlinux 0x2157cfb6 class_for_each_device +EXPORT_SYMBOL_GPL vmlinux 0x21923f54 blk_rq_unprep_clone +EXPORT_SYMBOL_GPL vmlinux 0x219371d5 vfs_setxattr +EXPORT_SYMBOL_GPL vmlinux 0x2199ce44 bsg_register_queue +EXPORT_SYMBOL_GPL vmlinux 0x21bd05d8 crypto_shash_update +EXPORT_SYMBOL_GPL vmlinux 0x21dfb273 usb_sg_init +EXPORT_SYMBOL_GPL vmlinux 0x21fcb56b __inet_inherit_port +EXPORT_SYMBOL_GPL vmlinux 0x22031c77 rdev_set_badblocks +EXPORT_SYMBOL_GPL vmlinux 0x22661f1e page_mkclean +EXPORT_SYMBOL_GPL vmlinux 0x226a674d atomic_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0x227b8b6e bus_create_file +EXPORT_SYMBOL_GPL vmlinux 0x229051bd crypto_shash_digest +EXPORT_SYMBOL_GPL vmlinux 0x2296c00d crypto_attr_u32 +EXPORT_SYMBOL_GPL vmlinux 0x22a9a998 snd_ctl_activate_id +EXPORT_SYMBOL_GPL vmlinux 0x22c16ecb dummy_irq_chip +EXPORT_SYMBOL_GPL vmlinux 0x22cbf016 of_clk_src_simple_get +EXPORT_SYMBOL_GPL vmlinux 0x22d3e18c tty_ldisc_flush +EXPORT_SYMBOL_GPL vmlinux 0x22f820b5 ata_bmdma_post_internal_cmd +EXPORT_SYMBOL_GPL vmlinux 0x23013f1c gfn_to_hva +EXPORT_SYMBOL_GPL vmlinux 0x230994d4 page_cache_async_readahead +EXPORT_SYMBOL_GPL vmlinux 0x230e6db5 devm_reset_control_get +EXPORT_SYMBOL_GPL vmlinux 0x231d70fc encode_bch +EXPORT_SYMBOL_GPL vmlinux 0x235cc705 flush_kthread_worker +EXPORT_SYMBOL_GPL vmlinux 0x23679939 __iowrite32_copy +EXPORT_SYMBOL_GPL vmlinux 0x236904e2 alarm_forward +EXPORT_SYMBOL_GPL vmlinux 0x2373352a clk_fixed_factor_ops +EXPORT_SYMBOL_GPL vmlinux 0x23864ce7 cpuset_mem_spread_node +EXPORT_SYMBOL_GPL vmlinux 0x2392bc6e pm_qos_request_active +EXPORT_SYMBOL_GPL vmlinux 0x23c0ed81 pstore_register +EXPORT_SYMBOL_GPL vmlinux 0x23d67443 cgroup_next_sibling +EXPORT_SYMBOL_GPL vmlinux 0x23fbece9 led_trigger_set_default +EXPORT_SYMBOL_GPL vmlinux 0x240580a9 xenbus_probe +EXPORT_SYMBOL_GPL vmlinux 0x243647c0 sdio_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x24416fb5 usb_free_urb +EXPORT_SYMBOL_GPL vmlinux 0x2447533c ktime_get_real +EXPORT_SYMBOL_GPL vmlinux 0x245cf3ec device_store_ulong +EXPORT_SYMBOL_GPL vmlinux 0x246fec19 watchdog_register_device +EXPORT_SYMBOL_GPL vmlinux 0x247ef831 kdb_unregister +EXPORT_SYMBOL_GPL vmlinux 0x24a14f06 ahci_set_em_messages +EXPORT_SYMBOL_GPL vmlinux 0x24aac4d9 crypto_aes_expand_key +EXPORT_SYMBOL_GPL vmlinux 0x24b4730c vring_transport_features +EXPORT_SYMBOL_GPL vmlinux 0x24c7698a xenbus_write +EXPORT_SYMBOL_GPL vmlinux 0x24e32e64 scsi_flush_work +EXPORT_SYMBOL_GPL vmlinux 0x24eb7e32 leds_list +EXPORT_SYMBOL_GPL vmlinux 0x24f2d831 regulator_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x24f39c39 reset_control_reset +EXPORT_SYMBOL_GPL vmlinux 0x24fc46b6 regulator_bulk_free +EXPORT_SYMBOL_GPL vmlinux 0x25070f14 tc3589x_reg_read +EXPORT_SYMBOL_GPL vmlinux 0x2529d736 deregister_mtd_parser +EXPORT_SYMBOL_GPL vmlinux 0x2541a979 snd_soc_calc_frame_size +EXPORT_SYMBOL_GPL vmlinux 0x2545c170 unregister_xenbus_watch +EXPORT_SYMBOL_GPL vmlinux 0x25507f3a i2c_lock_adapter +EXPORT_SYMBOL_GPL vmlinux 0x257293b0 sdio_release_host +EXPORT_SYMBOL_GPL vmlinux 0x25835351 usb_hcd_unmap_urb_for_dma +EXPORT_SYMBOL_GPL vmlinux 0x2587f84b scsi_autopm_get_device +EXPORT_SYMBOL_GPL vmlinux 0x259161df debugfs_create_dir +EXPORT_SYMBOL_GPL vmlinux 0x25bc06c8 sysfs_create_bin_file +EXPORT_SYMBOL_GPL vmlinux 0x25c7458e usb_hcd_map_urb_for_dma +EXPORT_SYMBOL_GPL vmlinux 0x25d35872 get_mtd_device +EXPORT_SYMBOL_GPL vmlinux 0x25e932be snd_soc_add_dai_controls +EXPORT_SYMBOL_GPL vmlinux 0x25f8fc3f sata_sff_hardreset +EXPORT_SYMBOL_GPL vmlinux 0x25fe80a9 md_do_sync +EXPORT_SYMBOL_GPL vmlinux 0x262ddc82 ata_host_register +EXPORT_SYMBOL_GPL vmlinux 0x262f20a8 local_clock +EXPORT_SYMBOL_GPL vmlinux 0x2649f527 pm_generic_suspend_late +EXPORT_SYMBOL_GPL vmlinux 0x26520970 vm_memory_committed +EXPORT_SYMBOL_GPL vmlinux 0x2667b732 tps6586x_reads +EXPORT_SYMBOL_GPL vmlinux 0x2668eead input_ff_upload +EXPORT_SYMBOL_GPL vmlinux 0x268363d3 snd_soc_put_volsw_range +EXPORT_SYMBOL_GPL vmlinux 0x269c505a relay_buf_full +EXPORT_SYMBOL_GPL vmlinux 0x26adb815 thread_notify_head +EXPORT_SYMBOL_GPL vmlinux 0x26b71fb4 ring_buffer_time_stamp +EXPORT_SYMBOL_GPL vmlinux 0x26c90ea4 scsi_eh_get_sense +EXPORT_SYMBOL_GPL vmlinux 0x26c93a3b tpm_write +EXPORT_SYMBOL_GPL vmlinux 0x26dee292 snd_soc_dai_set_tristate +EXPORT_SYMBOL_GPL vmlinux 0x27046576 kvm_exit +EXPORT_SYMBOL_GPL vmlinux 0x27132ab6 spi_master_suspend +EXPORT_SYMBOL_GPL vmlinux 0x277dd986 dio_end_io +EXPORT_SYMBOL_GPL vmlinux 0x2787db00 vbin_printf +EXPORT_SYMBOL_GPL vmlinux 0x27df7c55 task_active_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0x27fa66e1 nr_free_buffer_pages +EXPORT_SYMBOL_GPL vmlinux 0x282b2608 fat_setattr +EXPORT_SYMBOL_GPL vmlinux 0x285dfd31 usb_debug_root +EXPORT_SYMBOL_GPL vmlinux 0x28676db0 tty_port_link_device +EXPORT_SYMBOL_GPL vmlinux 0x2869ebaf regulator_bulk_force_disable +EXPORT_SYMBOL_GPL vmlinux 0x286b9ba3 hwmon_device_register +EXPORT_SYMBOL_GPL vmlinux 0x28734da4 snd_soc_put_volsw_s8 +EXPORT_SYMBOL_GPL vmlinux 0x28a3b3d4 tpm_dev_vendor_release +EXPORT_SYMBOL_GPL vmlinux 0x28a82da4 snmp_mib_init +EXPORT_SYMBOL_GPL vmlinux 0x28a903c8 timerqueue_add +EXPORT_SYMBOL_GPL vmlinux 0x28b3ec86 ata_link_next +EXPORT_SYMBOL_GPL vmlinux 0x28c73f0b led_trigger_event +EXPORT_SYMBOL_GPL vmlinux 0x28d4a923 thermal_zone_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x28e82119 musb_interrupt +EXPORT_SYMBOL_GPL vmlinux 0x29047f1a __i2c_board_lock +EXPORT_SYMBOL_GPL vmlinux 0x292c7704 ata_link_offline +EXPORT_SYMBOL_GPL vmlinux 0x292e9534 crypto_ahash_final +EXPORT_SYMBOL_GPL vmlinux 0x294ec40d ping_hash +EXPORT_SYMBOL_GPL vmlinux 0x2957caca stmpe_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x2975def1 scsi_nl_sock +EXPORT_SYMBOL_GPL vmlinux 0x29b7cd2d devm_regmap_field_alloc +EXPORT_SYMBOL_GPL vmlinux 0x29bc6fa6 device_initialize +EXPORT_SYMBOL_GPL vmlinux 0x29f3faaf xen_dbgp_external_startup +EXPORT_SYMBOL_GPL vmlinux 0x29fa419f decode_rs8 +EXPORT_SYMBOL_GPL vmlinux 0x2a1e57bb deregister_mtd_blktrans +EXPORT_SYMBOL_GPL vmlinux 0x2a4e168c cpuidle_register +EXPORT_SYMBOL_GPL vmlinux 0x2a504ad2 init_srcu_struct +EXPORT_SYMBOL_GPL vmlinux 0x2a678a13 __suspend_report_result +EXPORT_SYMBOL_GPL vmlinux 0x2a7bbafd crypto_alloc_instance2 +EXPORT_SYMBOL_GPL vmlinux 0x2ab48e0c dm_get_rq_mapinfo +EXPORT_SYMBOL_GPL vmlinux 0x2ab9b6c8 ata_link_online +EXPORT_SYMBOL_GPL vmlinux 0x2acbdce8 snd_compress_register +EXPORT_SYMBOL_GPL vmlinux 0x2acc2402 devm_pwm_put +EXPORT_SYMBOL_GPL vmlinux 0x2ad1ece4 zs_get_total_size_bytes +EXPORT_SYMBOL_GPL vmlinux 0x2ad9d326 md_ack_all_badblocks +EXPORT_SYMBOL_GPL vmlinux 0x2adf97fa sec_bulk_write +EXPORT_SYMBOL_GPL vmlinux 0x2aefedaa usb_driver_claim_interface +EXPORT_SYMBOL_GPL vmlinux 0x2b19af31 sdio_memcpy_fromio +EXPORT_SYMBOL_GPL vmlinux 0x2b7984c0 __clocksource_updatefreq_scale +EXPORT_SYMBOL_GPL vmlinux 0x2b7a6de8 syscon_regmap_lookup_by_phandle +EXPORT_SYMBOL_GPL vmlinux 0x2ba0c0fe inet_peer_base_init +EXPORT_SYMBOL_GPL vmlinux 0x2babe81f __wake_up_sync_key +EXPORT_SYMBOL_GPL vmlinux 0x2bbc0a21 ping_proc_unregister +EXPORT_SYMBOL_GPL vmlinux 0x2bd09cd3 find_symbol +EXPORT_SYMBOL_GPL vmlinux 0x2c208607 power_supply_is_system_supplied +EXPORT_SYMBOL_GPL vmlinux 0x2c25bda3 ipv6_opt_accepted +EXPORT_SYMBOL_GPL vmlinux 0x2c27ef24 __root_device_register +EXPORT_SYMBOL_GPL vmlinux 0x2c37e934 sata_link_debounce +EXPORT_SYMBOL_GPL vmlinux 0x2c44872d irq_domain_xlate_onecell +EXPORT_SYMBOL_GPL vmlinux 0x2c5341aa rtc_set_mmss +EXPORT_SYMBOL_GPL vmlinux 0x2c689a06 handle_level_irq +EXPORT_SYMBOL_GPL vmlinux 0x2c7d9c64 xen_store_interface +EXPORT_SYMBOL_GPL vmlinux 0x2c7db649 irq_dispose_mapping +EXPORT_SYMBOL_GPL vmlinux 0x2c8204f0 power_supply_powers +EXPORT_SYMBOL_GPL vmlinux 0x2c880ec3 inet_csk_search_req +EXPORT_SYMBOL_GPL vmlinux 0x2ca4ebcd regulator_set_drvdata +EXPORT_SYMBOL_GPL vmlinux 0x2cbe54c2 vfs_setlease +EXPORT_SYMBOL_GPL vmlinux 0x2cda2e9e usb_enable_autosuspend +EXPORT_SYMBOL_GPL vmlinux 0x2ce98559 kcrypto_wq +EXPORT_SYMBOL_GPL vmlinux 0x2cea32ee unregister_oldmem_pfn_is_ram +EXPORT_SYMBOL_GPL vmlinux 0x2cf441ca user_describe +EXPORT_SYMBOL_GPL vmlinux 0x2cfec368 ahash_register_instance +EXPORT_SYMBOL_GPL vmlinux 0x2d17a0e1 cgroup_taskset_size +EXPORT_SYMBOL_GPL vmlinux 0x2d1842b8 dm_underlying_device_busy +EXPORT_SYMBOL_GPL vmlinux 0x2d1b02d2 usermodehelper_read_lock_wait +EXPORT_SYMBOL_GPL vmlinux 0x2d2dd662 device_attach +EXPORT_SYMBOL_GPL vmlinux 0x2d41e6f5 __trace_puts +EXPORT_SYMBOL_GPL vmlinux 0x2d59c954 edac_handlers +EXPORT_SYMBOL_GPL vmlinux 0x2d64b5a1 snd_soc_dpcm_be_set_state +EXPORT_SYMBOL_GPL vmlinux 0x2d6bcb74 devres_release +EXPORT_SYMBOL_GPL vmlinux 0x2d81bf1c serial8250_handle_irq +EXPORT_SYMBOL_GPL vmlinux 0x2d88bcd6 wm8994_reg_write +EXPORT_SYMBOL_GPL vmlinux 0x2da5e9b5 nand_update_bbt +EXPORT_SYMBOL_GPL vmlinux 0x2da9e224 usb_gadget_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0x2e15c5cd dev_pm_qos_add_request +EXPORT_SYMBOL_GPL vmlinux 0x2e2f1740 ring_buffer_record_disable_cpu +EXPORT_SYMBOL_GPL vmlinux 0x2e3d4f68 amba_ahb_device_add_res +EXPORT_SYMBOL_GPL vmlinux 0x2e45e488 rcu_note_context_switch +EXPORT_SYMBOL_GPL vmlinux 0x2e9670c0 pl320_ipc_transmit +EXPORT_SYMBOL_GPL vmlinux 0x2ebe3135 cpu_is_hotpluggable +EXPORT_SYMBOL_GPL vmlinux 0x2ec789ca dma_buf_kmap_atomic +EXPORT_SYMBOL_GPL vmlinux 0x2ed35b64 crypto_alloc_base +EXPORT_SYMBOL_GPL vmlinux 0x2ef6b5bf smp_call_function_any +EXPORT_SYMBOL_GPL vmlinux 0x2f0d9053 usb_otg_state_string +EXPORT_SYMBOL_GPL vmlinux 0x2f4113a2 dcookie_register +EXPORT_SYMBOL_GPL vmlinux 0x2f5bf5f3 rtnl_register +EXPORT_SYMBOL_GPL vmlinux 0x2f64b532 __srcu_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x2f8baf4d shmem_read_mapping_page_gfp +EXPORT_SYMBOL_GPL vmlinux 0x2f9b2e67 dev_set_name +EXPORT_SYMBOL_GPL vmlinux 0x2fa1b7f9 class_find_device +EXPORT_SYMBOL_GPL vmlinux 0x2fb0f6ed sdio_writeb +EXPORT_SYMBOL_GPL vmlinux 0x2fb49f48 led_trigger_store +EXPORT_SYMBOL_GPL vmlinux 0x2fd38b8c tty_perform_flush +EXPORT_SYMBOL_GPL vmlinux 0x2fd8cba9 freeze_wake +EXPORT_SYMBOL_GPL vmlinux 0x2fdfa308 usb_alloc_coherent +EXPORT_SYMBOL_GPL vmlinux 0x2ff85509 blkcg_policy_unregister +EXPORT_SYMBOL_GPL vmlinux 0x300d7e57 free_rs +EXPORT_SYMBOL_GPL vmlinux 0x304a307b raw_seq_open +EXPORT_SYMBOL_GPL vmlinux 0x304c4996 tcp_reno_min_cwnd +EXPORT_SYMBOL_GPL vmlinux 0x308b733a getboottime +EXPORT_SYMBOL_GPL vmlinux 0x3092c103 __inet_lookup_listener +EXPORT_SYMBOL_GPL vmlinux 0x30a4f4ca bstr_printf +EXPORT_SYMBOL_GPL vmlinux 0x30b4683d snd_soc_add_platform +EXPORT_SYMBOL_GPL vmlinux 0x30e75258 security_inode_setattr +EXPORT_SYMBOL_GPL vmlinux 0x30ef4f62 snd_soc_register_card +EXPORT_SYMBOL_GPL vmlinux 0x3109b751 cpu_clock +EXPORT_SYMBOL_GPL vmlinux 0x31266931 con_debug_leave +EXPORT_SYMBOL_GPL vmlinux 0x3131b369 tpm_get_timeouts +EXPORT_SYMBOL_GPL vmlinux 0x3133602c tpm_show_durations +EXPORT_SYMBOL_GPL vmlinux 0x3139c2cc __kvm_set_memory_region +EXPORT_SYMBOL_GPL vmlinux 0x313f59e5 device_set_wakeup_enable +EXPORT_SYMBOL_GPL vmlinux 0x3172c6b8 ata_sas_queuecmd +EXPORT_SYMBOL_GPL vmlinux 0x31859993 of_irq_to_resource_table +EXPORT_SYMBOL_GPL vmlinux 0x319aad9f each_symbol_section +EXPORT_SYMBOL_GPL vmlinux 0x31a820ed register_jprobe +EXPORT_SYMBOL_GPL vmlinux 0x31be35d5 of_get_named_gen_pool +EXPORT_SYMBOL_GPL vmlinux 0x31c0c2d1 dm_put +EXPORT_SYMBOL_GPL vmlinux 0x31eb2394 ehci_handshake +EXPORT_SYMBOL_GPL vmlinux 0x321629a1 ata_bmdma_stop +EXPORT_SYMBOL_GPL vmlinux 0x32211dc1 tps6586x_irq_get_virq +EXPORT_SYMBOL_GPL vmlinux 0x325e677c gnttab_grant_foreign_transfer_ref +EXPORT_SYMBOL_GPL vmlinux 0x328995b5 tracing_generic_entry_update +EXPORT_SYMBOL_GPL vmlinux 0x32977372 blk_rq_err_bytes +EXPORT_SYMBOL_GPL vmlinux 0x329bbbde timerqueue_del +EXPORT_SYMBOL_GPL vmlinux 0x32b31a8c ktime_get_boottime +EXPORT_SYMBOL_GPL vmlinux 0x32c3cb4e class_compat_register +EXPORT_SYMBOL_GPL vmlinux 0x32d1c7c5 perf_tp_event +EXPORT_SYMBOL_GPL vmlinux 0x32e2f33a sysfs_remove_link +EXPORT_SYMBOL_GPL vmlinux 0x32faf108 cgroup_next_descendant_post +EXPORT_SYMBOL_GPL vmlinux 0x32fd447a monotonic_to_bootbased +EXPORT_SYMBOL_GPL vmlinux 0x33449c0e inet_twsk_put +EXPORT_SYMBOL_GPL vmlinux 0x335c570f enable_percpu_irq +EXPORT_SYMBOL_GPL vmlinux 0x336154ca rcutorture_record_test_transition +EXPORT_SYMBOL_GPL vmlinux 0x3376987e inet6_csk_xmit +EXPORT_SYMBOL_GPL vmlinux 0x337c3f9f fuse_do_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x338053fa ata_cable_80wire +EXPORT_SYMBOL_GPL vmlinux 0x33808f7a device_create_file +EXPORT_SYMBOL_GPL vmlinux 0x3385c8de snd_ctl_sync_vmaster +EXPORT_SYMBOL_GPL vmlinux 0x33883929 clk_divider_ops +EXPORT_SYMBOL_GPL vmlinux 0x33a78cc2 inet6_csk_addr2sockaddr +EXPORT_SYMBOL_GPL vmlinux 0x33a94a45 of_irq_to_resource +EXPORT_SYMBOL_GPL vmlinux 0x33b07ace snd_soc_dapm_enable_pin +EXPORT_SYMBOL_GPL vmlinux 0x33ca1b18 sk_setup_caps +EXPORT_SYMBOL_GPL vmlinux 0x33d25086 rtc_device_register +EXPORT_SYMBOL_GPL vmlinux 0x33d6664d virtqueue_add_outbuf +EXPORT_SYMBOL_GPL vmlinux 0x33fdd4bf xfrm_output +EXPORT_SYMBOL_GPL vmlinux 0x34002a23 extcon_dev_register +EXPORT_SYMBOL_GPL vmlinux 0x34134467 security_inode_mkdir +EXPORT_SYMBOL_GPL vmlinux 0x3416c9e0 __module_text_address +EXPORT_SYMBOL_GPL vmlinux 0x3441c3d6 gpio_set_value_cansleep +EXPORT_SYMBOL_GPL vmlinux 0x3452da0b ahci_start_engine +EXPORT_SYMBOL_GPL vmlinux 0x345917c1 snd_soc_put_strobe +EXPORT_SYMBOL_GPL vmlinux 0x347fd4b3 eventfd_ctx_get +EXPORT_SYMBOL_GPL vmlinux 0x348aee2a skb_copy_ubufs +EXPORT_SYMBOL_GPL vmlinux 0x348faeab otg_ulpi_create +EXPORT_SYMBOL_GPL vmlinux 0x34b86e3e __pneigh_lookup +EXPORT_SYMBOL_GPL vmlinux 0x3511acef transport_remove_device +EXPORT_SYMBOL_GPL vmlinux 0x352251d9 pm_generic_runtime_resume +EXPORT_SYMBOL_GPL vmlinux 0x352650ee gnttab_batch_map +EXPORT_SYMBOL_GPL vmlinux 0x354570d1 rt_mutex_timed_lock +EXPORT_SYMBOL_GPL vmlinux 0x358ff60f twl_get_hfclk_rate +EXPORT_SYMBOL_GPL vmlinux 0x359a00ec usb_unlocked_disable_lpm +EXPORT_SYMBOL_GPL vmlinux 0x35b077bc cpu_subsys +EXPORT_SYMBOL_GPL vmlinux 0x35c64973 unregister_hw_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0x35f165f1 devm_reset_control_put +EXPORT_SYMBOL_GPL vmlinux 0x3608d80f fuse_sync_release +EXPORT_SYMBOL_GPL vmlinux 0x361e2bcc save_stack_trace +EXPORT_SYMBOL_GPL vmlinux 0x362c0213 snd_soc_dapm_info_pin_switch +EXPORT_SYMBOL_GPL vmlinux 0x3630be1f pwm_request +EXPORT_SYMBOL_GPL vmlinux 0x36480f5e ata_scsi_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x36654d66 sata_scr_valid +EXPORT_SYMBOL_GPL vmlinux 0x3679a66a skcipher_geniv_alloc +EXPORT_SYMBOL_GPL vmlinux 0x368688e5 da903x_reads +EXPORT_SYMBOL_GPL vmlinux 0x369fcd70 tracing_snapshot +EXPORT_SYMBOL_GPL vmlinux 0x36b24e44 snd_soc_get_value_enum_double +EXPORT_SYMBOL_GPL vmlinux 0x36b2e712 pm_runtime_allow +EXPORT_SYMBOL_GPL vmlinux 0x36bda771 ata_eh_thaw_port +EXPORT_SYMBOL_GPL vmlinux 0x36e2a13a css_lookup +EXPORT_SYMBOL_GPL vmlinux 0x36f82717 remove_irq +EXPORT_SYMBOL_GPL vmlinux 0x3700154c pkey_hash_algo +EXPORT_SYMBOL_GPL vmlinux 0x37033f9e mnt_clone_write +EXPORT_SYMBOL_GPL vmlinux 0x370700a7 blkg_rwstat_recursive_sum +EXPORT_SYMBOL_GPL vmlinux 0x37098fbd balloon_page_enqueue +EXPORT_SYMBOL_GPL vmlinux 0x37249064 crypto_ahash_setkey +EXPORT_SYMBOL_GPL vmlinux 0x372f97b0 sdio_readb +EXPORT_SYMBOL_GPL vmlinux 0x375a509c crypto_shash_finup +EXPORT_SYMBOL_GPL vmlinux 0x3762ebf0 ata_sff_error_handler +EXPORT_SYMBOL_GPL vmlinux 0x37b06348 br_fdb_test_addr_hook +EXPORT_SYMBOL_GPL vmlinux 0x37d6c516 ata_sas_port_init +EXPORT_SYMBOL_GPL vmlinux 0x37e94758 netdev_rx_handler_unregister +EXPORT_SYMBOL_GPL vmlinux 0x380570a9 register_virtio_device +EXPORT_SYMBOL_GPL vmlinux 0x380f0b41 usb_enable_ltm +EXPORT_SYMBOL_GPL vmlinux 0x382e5b2d shash_attr_alg +EXPORT_SYMBOL_GPL vmlinux 0x38310398 wm8350_block_write +EXPORT_SYMBOL_GPL vmlinux 0x384349de debugfs_create_blob +EXPORT_SYMBOL_GPL vmlinux 0x38620e38 gnttab_grant_foreign_access_trans_ref +EXPORT_SYMBOL_GPL vmlinux 0x387dfdbd __fsnotify_inode_delete +EXPORT_SYMBOL_GPL vmlinux 0x38a9c2c7 input_ff_effect_from_user +EXPORT_SYMBOL_GPL vmlinux 0x38c56157 thermal_zone_unbind_cooling_device +EXPORT_SYMBOL_GPL vmlinux 0x38d52a0f ata_cable_ignore +EXPORT_SYMBOL_GPL vmlinux 0x3900480a ata_cable_40wire +EXPORT_SYMBOL_GPL vmlinux 0x39009ac5 xenbus_unmap_ring +EXPORT_SYMBOL_GPL vmlinux 0x39030ab7 __lock_page_killable +EXPORT_SYMBOL_GPL vmlinux 0x3919623d __fib_lookup +EXPORT_SYMBOL_GPL vmlinux 0x39402ff3 usb_gadget_map_request +EXPORT_SYMBOL_GPL vmlinux 0x394841e4 fib_table_lookup +EXPORT_SYMBOL_GPL vmlinux 0x3950884a kvm_release_page_clean +EXPORT_SYMBOL_GPL vmlinux 0x395cf18b use_mm +EXPORT_SYMBOL_GPL vmlinux 0x3966f2f4 platform_device_del +EXPORT_SYMBOL_GPL vmlinux 0x3993168d irq_domain_add_simple +EXPORT_SYMBOL_GPL vmlinux 0x399606dc i2c_new_device +EXPORT_SYMBOL_GPL vmlinux 0x399a7b3d snd_soc_put_value_enum_double +EXPORT_SYMBOL_GPL vmlinux 0x39cad858 ata_noop_qc_prep +EXPORT_SYMBOL_GPL vmlinux 0x3a22d233 blk_execute_rq_nowait +EXPORT_SYMBOL_GPL vmlinux 0x3a24fbf6 opp_find_freq_exact +EXPORT_SYMBOL_GPL vmlinux 0x3a26ed11 sched_clock +EXPORT_SYMBOL_GPL vmlinux 0x3a2abdbf clk_disable +EXPORT_SYMBOL_GPL vmlinux 0x3a2c94f3 fat_flush_inodes +EXPORT_SYMBOL_GPL vmlinux 0x3a32c2d6 cgroup_unload_subsys +EXPORT_SYMBOL_GPL vmlinux 0x3a4f6a32 ata_sff_interrupt +EXPORT_SYMBOL_GPL vmlinux 0x3a536bd7 ring_buffer_read_finish +EXPORT_SYMBOL_GPL vmlinux 0x3a61de73 tpm_release +EXPORT_SYMBOL_GPL vmlinux 0x3a66e686 regulator_set_bypass_regmap +EXPORT_SYMBOL_GPL vmlinux 0x3a95c809 ahci_dev_classify +EXPORT_SYMBOL_GPL vmlinux 0x3aa811af usb_string +EXPORT_SYMBOL_GPL vmlinux 0x3ac6daf6 inverse_translate +EXPORT_SYMBOL_GPL vmlinux 0x3ac75973 dm_send_uevents +EXPORT_SYMBOL_GPL vmlinux 0x3acdf325 twl4030_audio_enable_resource +EXPORT_SYMBOL_GPL vmlinux 0x3ad82802 of_property_read_u32_index +EXPORT_SYMBOL_GPL vmlinux 0x3af31f85 opp_enable +EXPORT_SYMBOL_GPL vmlinux 0x3b47667d ata_qc_complete +EXPORT_SYMBOL_GPL vmlinux 0x3b5c86c0 tcp_done +EXPORT_SYMBOL_GPL vmlinux 0x3bd93ac7 tpm_read +EXPORT_SYMBOL_GPL vmlinux 0x3bdeeef1 tty_port_register_device_attr +EXPORT_SYMBOL_GPL vmlinux 0x3bf45bc1 inet6_hash_connect +EXPORT_SYMBOL_GPL vmlinux 0x3c3410d7 ping_get_port +EXPORT_SYMBOL_GPL vmlinux 0x3c3bdbc1 unregister_kretprobes +EXPORT_SYMBOL_GPL vmlinux 0x3c831441 arm_check_condition +EXPORT_SYMBOL_GPL vmlinux 0x3ca17104 __snd_printk +EXPORT_SYMBOL_GPL vmlinux 0x3cac21b9 regulator_sync_voltage +EXPORT_SYMBOL_GPL vmlinux 0x3cbea973 tun_get_socket +EXPORT_SYMBOL_GPL vmlinux 0x3cd06035 add_input_randomness +EXPORT_SYMBOL_GPL vmlinux 0x3d0c8936 get_net_ns_by_pid +EXPORT_SYMBOL_GPL vmlinux 0x3d1e7537 usb_hub_find_child +EXPORT_SYMBOL_GPL vmlinux 0x3d388324 dpm_resume_end +EXPORT_SYMBOL_GPL vmlinux 0x3d4c05d5 rtc_irq_set_state +EXPORT_SYMBOL_GPL vmlinux 0x3d64148e nand_release +EXPORT_SYMBOL_GPL vmlinux 0x3d682e79 balloon_devinfo_alloc +EXPORT_SYMBOL_GPL vmlinux 0x3d7ea99a gnttab_grant_foreign_transfer +EXPORT_SYMBOL_GPL vmlinux 0x3db52c90 bus_find_device_by_name +EXPORT_SYMBOL_GPL vmlinux 0x3dbbb414 crypto_alloc_tfm +EXPORT_SYMBOL_GPL vmlinux 0x3dc526a9 arizona_of_match +EXPORT_SYMBOL_GPL vmlinux 0x3dc916b6 crypto_fl_tab +EXPORT_SYMBOL_GPL vmlinux 0x3dd4d3a7 bprintf +EXPORT_SYMBOL_GPL vmlinux 0x3de9cae1 crypto_remove_final +EXPORT_SYMBOL_GPL vmlinux 0x3e0a89d4 gnttab_unmap_refs +EXPORT_SYMBOL_GPL vmlinux 0x3e2fa31f wm8997_i2c_regmap +EXPORT_SYMBOL_GPL vmlinux 0x3e452a00 blocking_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x3e4e4764 xenbus_register_driver_common +EXPORT_SYMBOL_GPL vmlinux 0x3e5070d6 irq_find_host +EXPORT_SYMBOL_GPL vmlinux 0x3e7080cb mpi_read_from_buffer +EXPORT_SYMBOL_GPL vmlinux 0x3e7b6b96 usb_init_urb +EXPORT_SYMBOL_GPL vmlinux 0x3e86a536 xenbus_bind_evtchn +EXPORT_SYMBOL_GPL vmlinux 0x3efb35c9 get_online_cpus +EXPORT_SYMBOL_GPL vmlinux 0x3f0b6748 clk_notifier_unregister +EXPORT_SYMBOL_GPL vmlinux 0x3f3247b6 balloon_page_dequeue +EXPORT_SYMBOL_GPL vmlinux 0x3f620a84 disable_kprobe +EXPORT_SYMBOL_GPL vmlinux 0x3f69c73a unregister_kprobes +EXPORT_SYMBOL_GPL vmlinux 0x3f84d4c9 gnttab_release_grant_reference +EXPORT_SYMBOL_GPL vmlinux 0x3fb43045 blkg_lookup_create +EXPORT_SYMBOL_GPL vmlinux 0x3fc001ac ata_common_sdev_attrs +EXPORT_SYMBOL_GPL vmlinux 0x402e0b22 scsi_queue_work +EXPORT_SYMBOL_GPL vmlinux 0x4031d3a6 cpuidle_enable_device +EXPORT_SYMBOL_GPL vmlinux 0x403f9529 gpio_request_one +EXPORT_SYMBOL_GPL vmlinux 0x4045c494 filter_match_preds +EXPORT_SYMBOL_GPL vmlinux 0x4065d168 pm_print_active_wakeup_sources +EXPORT_SYMBOL_GPL vmlinux 0x408bff71 input_ff_erase +EXPORT_SYMBOL_GPL vmlinux 0x4098c1f7 crypto_attr_alg2 +EXPORT_SYMBOL_GPL vmlinux 0x40af0dec ata_xfer_mode2mask +EXPORT_SYMBOL_GPL vmlinux 0x40c09627 crypto_remove_spawns +EXPORT_SYMBOL_GPL vmlinux 0x40c3202b __clk_get_name +EXPORT_SYMBOL_GPL vmlinux 0x40d46b21 crypto_ft_tab +EXPORT_SYMBOL_GPL vmlinux 0x40f0683e reset_control_put +EXPORT_SYMBOL_GPL vmlinux 0x413654f2 usb_sg_cancel +EXPORT_SYMBOL_GPL vmlinux 0x4155a2f5 snd_soc_codec_set_cache_io +EXPORT_SYMBOL_GPL vmlinux 0x416b0296 snd_soc_free_ac97_codec +EXPORT_SYMBOL_GPL vmlinux 0x41782651 dapm_clock_event +EXPORT_SYMBOL_GPL vmlinux 0x41814cb8 dirty_writeback_interval +EXPORT_SYMBOL_GPL vmlinux 0x41b99bb2 input_class +EXPORT_SYMBOL_GPL vmlinux 0x41bd2449 dma_release_channel +EXPORT_SYMBOL_GPL vmlinux 0x41d55ef0 crypto_unregister_pcomp +EXPORT_SYMBOL_GPL vmlinux 0x4205ad24 cancel_work_sync +EXPORT_SYMBOL_GPL vmlinux 0x4207e7fc dma_buf_export_named +EXPORT_SYMBOL_GPL vmlinux 0x420ff368 of_clk_src_onecell_get +EXPORT_SYMBOL_GPL vmlinux 0x42160169 flush_workqueue +EXPORT_SYMBOL_GPL vmlinux 0x4231d07c fat_getattr +EXPORT_SYMBOL_GPL vmlinux 0x423499b5 preempt_notifier_unregister +EXPORT_SYMBOL_GPL vmlinux 0x42478530 kick_process +EXPORT_SYMBOL_GPL vmlinux 0x4258d116 usb_autopm_get_interface_no_resume +EXPORT_SYMBOL_GPL vmlinux 0x42825ce2 rcu_scheduler_active +EXPORT_SYMBOL_GPL vmlinux 0x4282d990 regmap_add_irq_chip +EXPORT_SYMBOL_GPL vmlinux 0x42a873d6 ata_do_dev_read_id +EXPORT_SYMBOL_GPL vmlinux 0x42d32fc5 shash_register_instance +EXPORT_SYMBOL_GPL vmlinux 0x42e5de8c mddev_init +EXPORT_SYMBOL_GPL vmlinux 0x42fead05 led_stop_software_blink +EXPORT_SYMBOL_GPL vmlinux 0x430e5257 of_alias_get_id +EXPORT_SYMBOL_GPL vmlinux 0x43267e04 ata_sff_tf_read +EXPORT_SYMBOL_GPL vmlinux 0x432d22ff unregister_kretprobe +EXPORT_SYMBOL_GPL vmlinux 0x432fd7f6 __gpio_set_value +EXPORT_SYMBOL_GPL vmlinux 0x43554fff ata_scsi_port_error_handler +EXPORT_SYMBOL_GPL vmlinux 0x4378b571 xenbus_dev_shutdown +EXPORT_SYMBOL_GPL vmlinux 0x4396f697 dev_change_net_namespace +EXPORT_SYMBOL_GPL vmlinux 0x43977d9b dma_buf_attach +EXPORT_SYMBOL_GPL vmlinux 0x43a53735 __alloc_workqueue_key +EXPORT_SYMBOL_GPL vmlinux 0x43ad26a1 vfs_truncate +EXPORT_SYMBOL_GPL vmlinux 0x43b466b0 gfn_to_pfn_memslot_atomic +EXPORT_SYMBOL_GPL vmlinux 0x43cbb3ba blkcg_deactivate_policy +EXPORT_SYMBOL_GPL vmlinux 0x43f56e82 ata_xfer_mode2shift +EXPORT_SYMBOL_GPL vmlinux 0x441a363a max8997_write_reg +EXPORT_SYMBOL_GPL vmlinux 0x4435c901 snd_soc_dai_set_channel_map +EXPORT_SYMBOL_GPL vmlinux 0x44404f11 kdb_register_repeat +EXPORT_SYMBOL_GPL vmlinux 0x444f1735 cpu_pm_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x4455e1b3 regulator_disable_deferred +EXPORT_SYMBOL_GPL vmlinux 0x4472940e ata_sff_lost_interrupt +EXPORT_SYMBOL_GPL vmlinux 0x447b0c68 crypto_default_rng +EXPORT_SYMBOL_GPL vmlinux 0x4484a5a4 wait_for_device_probe +EXPORT_SYMBOL_GPL vmlinux 0x44911035 ata_dummy_port_info +EXPORT_SYMBOL_GPL vmlinux 0x449592ee mmc_regulator_get_supply +EXPORT_SYMBOL_GPL vmlinux 0x44a793ab HYPERVISOR_grant_table_op +EXPORT_SYMBOL_GPL vmlinux 0x44b3297c usb_hcd_platform_shutdown +EXPORT_SYMBOL_GPL vmlinux 0x44da8dfc edac_get_sysfs_subsys +EXPORT_SYMBOL_GPL vmlinux 0x44e3bcc3 irq_setup_generic_chip +EXPORT_SYMBOL_GPL vmlinux 0x44f5268d xenbus_free_evtchn +EXPORT_SYMBOL_GPL vmlinux 0x452bab69 sdio_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0x45678bf3 dm_requeue_unmapped_request +EXPORT_SYMBOL_GPL vmlinux 0x457594fa crypto_alg_list +EXPORT_SYMBOL_GPL vmlinux 0x457b77ca of_fixed_factor_clk_setup +EXPORT_SYMBOL_GPL vmlinux 0x45827203 virtqueue_poll +EXPORT_SYMBOL_GPL vmlinux 0x45a003f6 regulator_get_bypass_regmap +EXPORT_SYMBOL_GPL vmlinux 0x45acf585 ata_dev_disable +EXPORT_SYMBOL_GPL vmlinux 0x45bf1ff3 crypto_inc +EXPORT_SYMBOL_GPL vmlinux 0x45fe4f04 led_trigger_register_simple +EXPORT_SYMBOL_GPL vmlinux 0x46066e5b perf_pmu_name +EXPORT_SYMBOL_GPL vmlinux 0x46074c17 sdev_evt_alloc +EXPORT_SYMBOL_GPL vmlinux 0x460f7531 wait_rcu_gp +EXPORT_SYMBOL_GPL vmlinux 0x4612fc6b kvm_write_guest_cached +EXPORT_SYMBOL_GPL vmlinux 0x463d604e gfn_to_pfn_async +EXPORT_SYMBOL_GPL vmlinux 0x463d72bd netlink_has_listeners +EXPORT_SYMBOL_GPL vmlinux 0x4672e88b __crypto_dequeue_request +EXPORT_SYMBOL_GPL vmlinux 0x4688d7ec pvclock_gtod_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x46bb9bfa wm8350_device_exit +EXPORT_SYMBOL_GPL vmlinux 0x46d3695c pwmchip_add +EXPORT_SYMBOL_GPL vmlinux 0x46f6801b dma_buf_detach +EXPORT_SYMBOL_GPL vmlinux 0x47229b5c gpio_request +EXPORT_SYMBOL_GPL vmlinux 0x4761f17c register_netevent_notifier +EXPORT_SYMBOL_GPL vmlinux 0x47884890 system_power_efficient_wq +EXPORT_SYMBOL_GPL vmlinux 0x47a56ea1 bus_register +EXPORT_SYMBOL_GPL vmlinux 0x47de6054 sdhci_enable_irq_wakeups +EXPORT_SYMBOL_GPL vmlinux 0x47ff399f regulator_is_supported_voltage +EXPORT_SYMBOL_GPL vmlinux 0x480fb54d get_pid_task +EXPORT_SYMBOL_GPL vmlinux 0x48146b7f put_pid +EXPORT_SYMBOL_GPL vmlinux 0x4834ade3 ip6_dst_lookup +EXPORT_SYMBOL_GPL vmlinux 0x483cfa38 __put_mtd_device +EXPORT_SYMBOL_GPL vmlinux 0x485cd7f6 kvm_rebooting +EXPORT_SYMBOL_GPL vmlinux 0x486e294f fb_deferred_io_cleanup +EXPORT_SYMBOL_GPL vmlinux 0x4883bc3d rtc_class_open +EXPORT_SYMBOL_GPL vmlinux 0x48923c1b fuse_request_send_background +EXPORT_SYMBOL_GPL vmlinux 0x48ab5da7 pkey_algo +EXPORT_SYMBOL_GPL vmlinux 0x48ca8947 pm_qos_add_request +EXPORT_SYMBOL_GPL vmlinux 0x4950ed39 sdhci_add_host +EXPORT_SYMBOL_GPL vmlinux 0x496fa379 kobject_create_and_add +EXPORT_SYMBOL_GPL vmlinux 0x49701a1d ipv4_sk_redirect +EXPORT_SYMBOL_GPL vmlinux 0x49774c92 sdio_readw +EXPORT_SYMBOL_GPL vmlinux 0x4977ba6e pm_runtime_set_memalloc_noio +EXPORT_SYMBOL_GPL vmlinux 0x4982a57f probe_kernel_write +EXPORT_SYMBOL_GPL vmlinux 0x498d293a trace_buffer_unlock_commit +EXPORT_SYMBOL_GPL vmlinux 0x499043d3 crypto_init_queue +EXPORT_SYMBOL_GPL vmlinux 0x49923f7f set_task_ioprio +EXPORT_SYMBOL_GPL vmlinux 0x49af20ee devm_regmap_init_i2c +EXPORT_SYMBOL_GPL vmlinux 0x49fad4c7 crypto_alg_lookup +EXPORT_SYMBOL_GPL vmlinux 0x4a307794 adp5520_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x4a35d604 tcp_unregister_congestion_control +EXPORT_SYMBOL_GPL vmlinux 0x4a5789b6 pwm_set_polarity +EXPORT_SYMBOL_GPL vmlinux 0x4a6a7611 relay_flush +EXPORT_SYMBOL_GPL vmlinux 0x4a7abf97 ata_do_set_mode +EXPORT_SYMBOL_GPL vmlinux 0x4a83000d dev_pm_qos_update_request +EXPORT_SYMBOL_GPL vmlinux 0x4a832535 kvm_read_guest_page +EXPORT_SYMBOL_GPL vmlinux 0x4aadeb9a ring_buffer_alloc_read_page +EXPORT_SYMBOL_GPL vmlinux 0x4add297d crypto_drop_spawn +EXPORT_SYMBOL_GPL vmlinux 0x4ae893a9 tps65912_reg_write +EXPORT_SYMBOL_GPL vmlinux 0x4b156f08 max8997_update_reg +EXPORT_SYMBOL_GPL vmlinux 0x4b17b645 of_property_read_u16_array +EXPORT_SYMBOL_GPL vmlinux 0x4b50576d usb_get_phy_dev +EXPORT_SYMBOL_GPL vmlinux 0x4b5224e0 of_reset_simple_xlate +EXPORT_SYMBOL_GPL vmlinux 0x4b8e99c5 sdhci_free_host +EXPORT_SYMBOL_GPL vmlinux 0x4ba074ea fuse_do_open +EXPORT_SYMBOL_GPL vmlinux 0x4ba7fb66 attribute_container_find_class_device +EXPORT_SYMBOL_GPL vmlinux 0x4bab9c5b device_reprobe +EXPORT_SYMBOL_GPL vmlinux 0x4bbef156 kvm_set_page_dirty +EXPORT_SYMBOL_GPL vmlinux 0x4bc0c372 fat_dir_empty +EXPORT_SYMBOL_GPL vmlinux 0x4bc62a81 audit_enabled +EXPORT_SYMBOL_GPL vmlinux 0x4befdc32 sysfs_create_link +EXPORT_SYMBOL_GPL vmlinux 0x4c26fb6e regmap_field_write +EXPORT_SYMBOL_GPL vmlinux 0x4c4045ff mtd_device_parse_register +EXPORT_SYMBOL_GPL vmlinux 0x4c44cd11 wm5110_patch +EXPORT_SYMBOL_GPL vmlinux 0x4c47ec15 klist_add_head +EXPORT_SYMBOL_GPL vmlinux 0x4c4894ac unuse_mm +EXPORT_SYMBOL_GPL vmlinux 0x4c602bf1 __blkg_release_rcu +EXPORT_SYMBOL_GPL vmlinux 0x4c630a3d omap_control_usb_set_mode +EXPORT_SYMBOL_GPL vmlinux 0x4c6b3b71 pid_nr_ns +EXPORT_SYMBOL_GPL vmlinux 0x4c759827 byte_rev_table +EXPORT_SYMBOL_GPL vmlinux 0x4c773548 xenbus_map_ring +EXPORT_SYMBOL_GPL vmlinux 0x4c92d5e5 snd_soc_get_strobe +EXPORT_SYMBOL_GPL vmlinux 0x4caeab49 dma_buf_vunmap +EXPORT_SYMBOL_GPL vmlinux 0x4d05877c sysfs_remove_bin_file +EXPORT_SYMBOL_GPL vmlinux 0x4d14c9da platform_create_bundle +EXPORT_SYMBOL_GPL vmlinux 0x4d458a34 tpm_gen_interrupt +EXPORT_SYMBOL_GPL vmlinux 0x4d4a8160 crypto_unregister_shashes +EXPORT_SYMBOL_GPL vmlinux 0x4d4dce34 usb_get_current_frame_number +EXPORT_SYMBOL_GPL vmlinux 0x4d7aa3bd sata_pmp_qc_defer_cmd_switch +EXPORT_SYMBOL_GPL vmlinux 0x4d979641 fat_detach +EXPORT_SYMBOL_GPL vmlinux 0x4db581db amba_apb_device_add_res +EXPORT_SYMBOL_GPL vmlinux 0x4db6984a crypto_unregister_ahash +EXPORT_SYMBOL_GPL vmlinux 0x4dc79bdc free_css_id +EXPORT_SYMBOL_GPL vmlinux 0x4de17ab3 usb_state_string +EXPORT_SYMBOL_GPL vmlinux 0x4df0aaed rdev_get_dev +EXPORT_SYMBOL_GPL vmlinux 0x4e109192 ring_buffer_entries +EXPORT_SYMBOL_GPL vmlinux 0x4e162c9d regulator_list_voltage_table +EXPORT_SYMBOL_GPL vmlinux 0x4e242f5f pstore_cannot_block_path +EXPORT_SYMBOL_GPL vmlinux 0x4e27a929 securityfs_remove +EXPORT_SYMBOL_GPL vmlinux 0x4e6a2bc4 sk_unattached_filter_create +EXPORT_SYMBOL_GPL vmlinux 0x4e77e7ce usb_autopm_get_interface_async +EXPORT_SYMBOL_GPL vmlinux 0x4e7913a6 fsstack_copy_inode_size +EXPORT_SYMBOL_GPL vmlinux 0x4e80af89 scsi_get_vpd_page +EXPORT_SYMBOL_GPL vmlinux 0x4ead1ffc crypto_unregister_template +EXPORT_SYMBOL_GPL vmlinux 0x4ecef9ec raw_seq_stop +EXPORT_SYMBOL_GPL vmlinux 0x4ef5bcf4 perf_swevent_get_recursion_context +EXPORT_SYMBOL_GPL vmlinux 0x4eff03c1 usb_hcd_check_unlink_urb +EXPORT_SYMBOL_GPL vmlinux 0x4f258452 amba_device_alloc +EXPORT_SYMBOL_GPL vmlinux 0x4f334a73 pm_relax +EXPORT_SYMBOL_GPL vmlinux 0x4f37eaf8 xenbus_dev_is_online +EXPORT_SYMBOL_GPL vmlinux 0x4f6172ff crypto_chain +EXPORT_SYMBOL_GPL vmlinux 0x4f98d766 cpu_pm_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x4fa09a3d alarm_cancel +EXPORT_SYMBOL_GPL vmlinux 0x4fa43c7a dma_run_dependencies +EXPORT_SYMBOL_GPL vmlinux 0x4fadab81 crypto_alloc_ahash +EXPORT_SYMBOL_GPL vmlinux 0x4fafd712 regmap_async_complete_cb +EXPORT_SYMBOL_GPL vmlinux 0x4fb732d0 sysfs_chmod_file +EXPORT_SYMBOL_GPL vmlinux 0x4fbec812 debugfs_create_file +EXPORT_SYMBOL_GPL vmlinux 0x4fd1978c find_vpid +EXPORT_SYMBOL_GPL vmlinux 0x4fd4e89d ring_buffer_empty_cpu +EXPORT_SYMBOL_GPL vmlinux 0x4fdc945d sata_deb_timing_normal +EXPORT_SYMBOL_GPL vmlinux 0x4fe1eddf unregister_netevent_notifier +EXPORT_SYMBOL_GPL vmlinux 0x50085cf2 inet_csk_listen_start +EXPORT_SYMBOL_GPL vmlinux 0x500b5784 adp5520_read +EXPORT_SYMBOL_GPL vmlinux 0x501a2ad9 snd_soc_get_volsw +EXPORT_SYMBOL_GPL vmlinux 0x50225359 __rtnl_link_unregister +EXPORT_SYMBOL_GPL vmlinux 0x5026585c xen_irq_from_gsi +EXPORT_SYMBOL_GPL vmlinux 0x502ddea5 unregister_virtio_driver +EXPORT_SYMBOL_GPL vmlinux 0x5031a5e6 wm8400_reg_read +EXPORT_SYMBOL_GPL vmlinux 0x5053e2a6 leds_list_lock +EXPORT_SYMBOL_GPL vmlinux 0x505ab52d clk_round_rate +EXPORT_SYMBOL_GPL vmlinux 0x505b615b irq_set_chip_and_handler_name +EXPORT_SYMBOL_GPL vmlinux 0x50601122 of_property_match_string +EXPORT_SYMBOL_GPL vmlinux 0x506691f1 sock_diag_check_cookie +EXPORT_SYMBOL_GPL vmlinux 0x50673ef0 dma_buf_kunmap +EXPORT_SYMBOL_GPL vmlinux 0x506cc085 tracepoint_iter_stop +EXPORT_SYMBOL_GPL vmlinux 0x507ea433 dapm_reg_event +EXPORT_SYMBOL_GPL vmlinux 0x5086ac3a alg_test +EXPORT_SYMBOL_GPL vmlinux 0x5091b823 ring_buffer_read_start +EXPORT_SYMBOL_GPL vmlinux 0x50c89f23 __alloc_percpu +EXPORT_SYMBOL_GPL vmlinux 0x50e7193a __i2c_first_dynamic_bus_num +EXPORT_SYMBOL_GPL vmlinux 0x50fad434 round_jiffies_up +EXPORT_SYMBOL_GPL vmlinux 0x51010b37 wm831x_regmap_config +EXPORT_SYMBOL_GPL vmlinux 0x51029875 bus_rescan_devices +EXPORT_SYMBOL_GPL vmlinux 0x5111bb26 tps6586x_clr_bits +EXPORT_SYMBOL_GPL vmlinux 0x5126397c transport_class_unregister +EXPORT_SYMBOL_GPL vmlinux 0x512cf16c wakeup_source_destroy +EXPORT_SYMBOL_GPL vmlinux 0x51369cce crypto_alloc_shash +EXPORT_SYMBOL_GPL vmlinux 0x51377d4d virtqueue_kick +EXPORT_SYMBOL_GPL vmlinux 0x5145e756 crypto_init_spawn +EXPORT_SYMBOL_GPL vmlinux 0x516620d0 locks_alloc_lock +EXPORT_SYMBOL_GPL vmlinux 0x517ce361 device_store_int +EXPORT_SYMBOL_GPL vmlinux 0x5187ac4b xen_store_evtchn +EXPORT_SYMBOL_GPL vmlinux 0x518e316a apply_to_page_range +EXPORT_SYMBOL_GPL vmlinux 0x51ccaf88 proc_mkdir_data +EXPORT_SYMBOL_GPL vmlinux 0x520d6df2 rtc_irq_register +EXPORT_SYMBOL_GPL vmlinux 0x520dea50 wm831x_auxadc_read_uv +EXPORT_SYMBOL_GPL vmlinux 0x5210a5bf hsi_board_list +EXPORT_SYMBOL_GPL vmlinux 0x521e830f blkcg_policy_register +EXPORT_SYMBOL_GPL vmlinux 0x52212010 __tracepoint_block_bio_remap +EXPORT_SYMBOL_GPL vmlinux 0x522beacf device_init_wakeup +EXPORT_SYMBOL_GPL vmlinux 0x5234b009 ata_std_qc_defer +EXPORT_SYMBOL_GPL vmlinux 0x524b6fc3 ata_sff_pause +EXPORT_SYMBOL_GPL vmlinux 0x525e5e4f rtc_initialize_alarm +EXPORT_SYMBOL_GPL vmlinux 0x525fceab dev_attr_sw_activity +EXPORT_SYMBOL_GPL vmlinux 0x5340073c usb_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x5358fc36 ring_buffer_discard_commit +EXPORT_SYMBOL_GPL vmlinux 0x53614269 get_cpu_idle_time_us +EXPORT_SYMBOL_GPL vmlinux 0x53a3e486 regulator_get_current_limit +EXPORT_SYMBOL_GPL vmlinux 0x53e6ab69 usb_alloc_urb +EXPORT_SYMBOL_GPL vmlinux 0x53ff5126 devm_usb_get_phy_by_phandle +EXPORT_SYMBOL_GPL vmlinux 0x541bd60a irq_work_run +EXPORT_SYMBOL_GPL vmlinux 0x54278a59 snd_soc_test_bits +EXPORT_SYMBOL_GPL vmlinux 0x54382437 usb_get_hcd +EXPORT_SYMBOL_GPL vmlinux 0x544850d5 arizona_of_get_type +EXPORT_SYMBOL_GPL vmlinux 0x544aab61 klist_add_tail +EXPORT_SYMBOL_GPL vmlinux 0x5460c8d8 fsnotify_get_cookie +EXPORT_SYMBOL_GPL vmlinux 0x5460f155 key_type_trusted +EXPORT_SYMBOL_GPL vmlinux 0x5463533d power_supply_am_i_supplied +EXPORT_SYMBOL_GPL vmlinux 0x546477b2 vfs_getxattr +EXPORT_SYMBOL_GPL vmlinux 0x546a8259 virtio_check_driver_offered_feature +EXPORT_SYMBOL_GPL vmlinux 0x546f0375 rtc_set_time +EXPORT_SYMBOL_GPL vmlinux 0x548aebc4 cgroup_load_subsys +EXPORT_SYMBOL_GPL vmlinux 0x549525ef handle_nested_irq +EXPORT_SYMBOL_GPL vmlinux 0x54c3b504 thermal_generate_netlink_event +EXPORT_SYMBOL_GPL vmlinux 0x55291d8c wm831x_reg_read +EXPORT_SYMBOL_GPL vmlinux 0x55417264 unregister_vt_notifier +EXPORT_SYMBOL_GPL vmlinux 0x55526907 xen_features +EXPORT_SYMBOL_GPL vmlinux 0x55784228 regmap_irq_get_virq +EXPORT_SYMBOL_GPL vmlinux 0x559e1150 rtc_update_irq_enable +EXPORT_SYMBOL_GPL vmlinux 0x55dadd69 i2c_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x55f04c21 trace_buffer_unlock_commit_regs +EXPORT_SYMBOL_GPL vmlinux 0x561e4b77 irq_of_parse_and_map +EXPORT_SYMBOL_GPL vmlinux 0x562dc643 usb_put_dev +EXPORT_SYMBOL_GPL vmlinux 0x5630a7b4 inet_csk_bind_conflict +EXPORT_SYMBOL_GPL vmlinux 0x56310925 regulator_mode_to_status +EXPORT_SYMBOL_GPL vmlinux 0x5637b6e4 irq_domain_associate +EXPORT_SYMBOL_GPL vmlinux 0x5641485b tty_termios_encode_baud_rate +EXPORT_SYMBOL_GPL vmlinux 0x5648008d tpm_show_active +EXPORT_SYMBOL_GPL vmlinux 0x564eac95 led_trigger_show +EXPORT_SYMBOL_GPL vmlinux 0x564f1dca klist_add_after +EXPORT_SYMBOL_GPL vmlinux 0x565b6892 uuid_le_gen +EXPORT_SYMBOL_GPL vmlinux 0x56681c07 ata_sff_softreset +EXPORT_SYMBOL_GPL vmlinux 0x567cd310 snd_soc_info_volsw_s8 +EXPORT_SYMBOL_GPL vmlinux 0x569f66ef dev_get_gen_pool +EXPORT_SYMBOL_GPL vmlinux 0x56a15e34 anon_inode_getfile +EXPORT_SYMBOL_GPL vmlinux 0x56a5668f mtd_is_locked +EXPORT_SYMBOL_GPL vmlinux 0x56b63670 lzo1x_1_compress +EXPORT_SYMBOL_GPL vmlinux 0x56d697ce cpu_up +EXPORT_SYMBOL_GPL vmlinux 0x56e75d47 klist_node_attached +EXPORT_SYMBOL_GPL vmlinux 0x56e9103b cpu_pm_enter +EXPORT_SYMBOL_GPL vmlinux 0x56f1f9b0 snd_soc_dapm_mixer_update_power +EXPORT_SYMBOL_GPL vmlinux 0x5709cfc2 part_round_stats +EXPORT_SYMBOL_GPL vmlinux 0x5713bc14 pm_runtime_enable +EXPORT_SYMBOL_GPL vmlinux 0x5713d846 PageHuge +EXPORT_SYMBOL_GPL vmlinux 0x5714f08f usb_autopm_put_interface_async +EXPORT_SYMBOL_GPL vmlinux 0x57231f45 ring_buffer_record_on +EXPORT_SYMBOL_GPL vmlinux 0x5725b2b4 snd_soc_get_volsw_sx +EXPORT_SYMBOL_GPL vmlinux 0x572b1320 class_dev_iter_init +EXPORT_SYMBOL_GPL vmlinux 0x575257cb sdio_set_block_size +EXPORT_SYMBOL_GPL vmlinux 0x575c123e ping_init_sock +EXPORT_SYMBOL_GPL vmlinux 0x5779d445 xenbus_exists +EXPORT_SYMBOL_GPL vmlinux 0x578887ef subsys_find_device_by_id +EXPORT_SYMBOL_GPL vmlinux 0x579e0bf5 rtnl_unregister_all +EXPORT_SYMBOL_GPL vmlinux 0x57a16816 rtc_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x57c32a55 gpiochip_add +EXPORT_SYMBOL_GPL vmlinux 0x57d6730b led_trigger_set +EXPORT_SYMBOL_GPL vmlinux 0x57f7160e usb_disable_lpm +EXPORT_SYMBOL_GPL vmlinux 0x5819c8aa usb_anchor_empty +EXPORT_SYMBOL_GPL vmlinux 0x582490ea pm_runtime_barrier +EXPORT_SYMBOL_GPL vmlinux 0x582be91b wm8997_patch +EXPORT_SYMBOL_GPL vmlinux 0x583dcd19 dma_buf_put +EXPORT_SYMBOL_GPL vmlinux 0x58413099 ipv6_fixup_options +EXPORT_SYMBOL_GPL vmlinux 0x58586e6d evm_verifyxattr +EXPORT_SYMBOL_GPL vmlinux 0x586407e2 ping_close +EXPORT_SYMBOL_GPL vmlinux 0x58968d1b usb_add_hcd +EXPORT_SYMBOL_GPL vmlinux 0x589e4569 syscon_regmap_lookup_by_pdevname +EXPORT_SYMBOL_GPL vmlinux 0x58adc4a3 amba_apb_device_add +EXPORT_SYMBOL_GPL vmlinux 0x58e14f15 HYPERVISOR_event_channel_op +EXPORT_SYMBOL_GPL vmlinux 0x58e93874 wm8350_clear_bits +EXPORT_SYMBOL_GPL vmlinux 0x58fb00a0 sdhci_runtime_suspend_host +EXPORT_SYMBOL_GPL vmlinux 0x58fd6d7c input_ff_destroy +EXPORT_SYMBOL_GPL vmlinux 0x59060928 ping_getfrag +EXPORT_SYMBOL_GPL vmlinux 0x592b84fe device_remove_bin_file +EXPORT_SYMBOL_GPL vmlinux 0x593068b1 register_mtd_parser +EXPORT_SYMBOL_GPL vmlinux 0x5947abbe max77693_bulk_write +EXPORT_SYMBOL_GPL vmlinux 0x595641df mtd_lock_user_prot_reg +EXPORT_SYMBOL_GPL vmlinux 0x596bacfb devm_rtc_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x598b2f8d ata_sff_data_xfer +EXPORT_SYMBOL_GPL vmlinux 0x59a2451c aead_geniv_exit +EXPORT_SYMBOL_GPL vmlinux 0x59d03045 sysfs_notify_dirent +EXPORT_SYMBOL_GPL vmlinux 0x59e2743e call_rcu_bh +EXPORT_SYMBOL_GPL vmlinux 0x59eae699 ring_buffer_read_prepare +EXPORT_SYMBOL_GPL vmlinux 0x5a2b1b67 gnttab_free_grant_reference +EXPORT_SYMBOL_GPL vmlinux 0x5a3c2afd kobject_get_path +EXPORT_SYMBOL_GPL vmlinux 0x5a446332 of_clk_add_provider +EXPORT_SYMBOL_GPL vmlinux 0x5a48534a regulator_count_voltages +EXPORT_SYMBOL_GPL vmlinux 0x5a5d98a1 regcache_drop_region +EXPORT_SYMBOL_GPL vmlinux 0x5a7970da fuse_dev_release +EXPORT_SYMBOL_GPL vmlinux 0x5a7bfe41 crypto_probing_notify +EXPORT_SYMBOL_GPL vmlinux 0x5a7eb131 devres_get +EXPORT_SYMBOL_GPL vmlinux 0x5ab691b7 irq_alloc_generic_chip +EXPORT_SYMBOL_GPL vmlinux 0x5abaca16 ipv4_update_pmtu +EXPORT_SYMBOL_GPL vmlinux 0x5ad1800d reset_controller_register +EXPORT_SYMBOL_GPL vmlinux 0x5ad5930e lp8788_update_bits +EXPORT_SYMBOL_GPL vmlinux 0x5adb799d ata_std_sched_eh +EXPORT_SYMBOL_GPL vmlinux 0x5af03a28 gnttab_claim_grant_reference +EXPORT_SYMBOL_GPL vmlinux 0x5b14e08a devm_regulator_bulk_get +EXPORT_SYMBOL_GPL vmlinux 0x5b212457 irq_setup_alt_chip +EXPORT_SYMBOL_GPL vmlinux 0x5b24f332 __scsi_get_command +EXPORT_SYMBOL_GPL vmlinux 0x5b2b96f5 sysfs_update_group +EXPORT_SYMBOL_GPL vmlinux 0x5b4060e7 of_dma_simple_xlate +EXPORT_SYMBOL_GPL vmlinux 0x5b4e379c of_prop_next_u32 +EXPORT_SYMBOL_GPL vmlinux 0x5b5cc4a9 regmap_exit +EXPORT_SYMBOL_GPL vmlinux 0x5b69414b snd_soc_dai_set_clkdiv +EXPORT_SYMBOL_GPL vmlinux 0x5b94ec07 attribute_container_unregister +EXPORT_SYMBOL_GPL vmlinux 0x5bc705dd vchan_find_desc +EXPORT_SYMBOL_GPL vmlinux 0x5bcb8b6d snd_soc_dapm_put_enum_virt +EXPORT_SYMBOL_GPL vmlinux 0x5bfab84c dev_attr_link_power_management_policy +EXPORT_SYMBOL_GPL vmlinux 0x5bff4582 blkg_stat_recursive_sum +EXPORT_SYMBOL_GPL vmlinux 0x5c1924ad pwm_get_chip_data +EXPORT_SYMBOL_GPL vmlinux 0x5c1a0aaf wm5102_i2c_regmap +EXPORT_SYMBOL_GPL vmlinux 0x5c3370a5 usb_match_one_id +EXPORT_SYMBOL_GPL vmlinux 0x5c4bfff6 dma_buf_vmap +EXPORT_SYMBOL_GPL vmlinux 0x5c4c0b16 ip6_datagram_send_ctl +EXPORT_SYMBOL_GPL vmlinux 0x5c5ff889 mtd_blktrans_cease_background +EXPORT_SYMBOL_GPL vmlinux 0x5c71df00 netlink_alloc_skb +EXPORT_SYMBOL_GPL vmlinux 0x5c79ed8f blk_unprep_request +EXPORT_SYMBOL_GPL vmlinux 0x5ca7ade7 device_for_each_child +EXPORT_SYMBOL_GPL vmlinux 0x5cabdced dev_pm_qos_remove_global_notifier +EXPORT_SYMBOL_GPL vmlinux 0x5cb5564a debugfs_create_x64 +EXPORT_SYMBOL_GPL vmlinux 0x5cb96c86 kvm_vcpu_init +EXPORT_SYMBOL_GPL vmlinux 0x5cf0bcad crypto_register_template +EXPORT_SYMBOL_GPL vmlinux 0x5cf6f328 cgroup_path +EXPORT_SYMBOL_GPL vmlinux 0x5cfb2e7c platform_get_irq_byname +EXPORT_SYMBOL_GPL vmlinux 0x5d0e20a5 crypto_grab_aead +EXPORT_SYMBOL_GPL vmlinux 0x5d1098c6 xen_start_info +EXPORT_SYMBOL_GPL vmlinux 0x5d12e48f input_event_to_user +EXPORT_SYMBOL_GPL vmlinux 0x5d18984c sysfs_get_dirent +EXPORT_SYMBOL_GPL vmlinux 0x5d1b46ce dm_set_device_limits +EXPORT_SYMBOL_GPL vmlinux 0x5d1c1bac blocking_notifier_chain_cond_register +EXPORT_SYMBOL_GPL vmlinux 0x5d364ed9 sata_scr_write_flush +EXPORT_SYMBOL_GPL vmlinux 0x5d366dec gnttab_cancel_free_callback +EXPORT_SYMBOL_GPL vmlinux 0x5d4fd9bc ata_bmdma_qc_issue +EXPORT_SYMBOL_GPL vmlinux 0x5d71f799 spi_async_locked +EXPORT_SYMBOL_GPL vmlinux 0x5d87960c led_classdev_suspend +EXPORT_SYMBOL_GPL vmlinux 0x5d8a1b83 extcon_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x5d8c44d3 devm_regmap_field_free +EXPORT_SYMBOL_GPL vmlinux 0x5dd18380 regulator_get_init_drvdata +EXPORT_SYMBOL_GPL vmlinux 0x5de1b85c watchdog_unregister_device +EXPORT_SYMBOL_GPL vmlinux 0x5dfb3f19 dev_pm_qos_flags +EXPORT_SYMBOL_GPL vmlinux 0x5e163eae snd_soc_jack_add_gpios +EXPORT_SYMBOL_GPL vmlinux 0x5e2503ba __mmu_notifier_invalidate_range_start +EXPORT_SYMBOL_GPL vmlinux 0x5e2dc726 usb_get_intf +EXPORT_SYMBOL_GPL vmlinux 0x5e32f42c thermal_zone_device_register +EXPORT_SYMBOL_GPL vmlinux 0x5e34ab39 xen_remap_domain_mfn_range +EXPORT_SYMBOL_GPL vmlinux 0x5e4561d8 da903x_read +EXPORT_SYMBOL_GPL vmlinux 0x5e6fa2a1 snd_soc_info_enum_double +EXPORT_SYMBOL_GPL vmlinux 0x5e7784c5 snd_soc_lookup_platform +EXPORT_SYMBOL_GPL vmlinux 0x5e8c2e94 tc3589x_block_read +EXPORT_SYMBOL_GPL vmlinux 0x5ea45610 crypto_unregister_instance +EXPORT_SYMBOL_GPL vmlinux 0x5eacba1f ahci_interrupt +EXPORT_SYMBOL_GPL vmlinux 0x5ec35174 sock_prot_inuse_add +EXPORT_SYMBOL_GPL vmlinux 0x5ec40dc5 rtnl_af_register +EXPORT_SYMBOL_GPL vmlinux 0x5ed806ef blk_queue_bypass_start +EXPORT_SYMBOL_GPL vmlinux 0x5edabee8 da9052_enable_irq +EXPORT_SYMBOL_GPL vmlinux 0x5f127cff inet_getpeer +EXPORT_SYMBOL_GPL vmlinux 0x5f248f72 set_timer_slack +EXPORT_SYMBOL_GPL vmlinux 0x5f2e01f7 __udp4_lib_lookup +EXPORT_SYMBOL_GPL vmlinux 0x5f644911 inet6_csk_search_req +EXPORT_SYMBOL_GPL vmlinux 0x5fae5ca6 fat_alloc_new_dir +EXPORT_SYMBOL_GPL vmlinux 0x5fd44d97 __pm_runtime_idle +EXPORT_SYMBOL_GPL vmlinux 0x5feb32fe netdev_set_default_ethtool_ops +EXPORT_SYMBOL_GPL vmlinux 0x600dd8ff __put_net +EXPORT_SYMBOL_GPL vmlinux 0x600f277f soc_ac97_ops +EXPORT_SYMBOL_GPL vmlinux 0x602ecb65 __mnt_drop_write +EXPORT_SYMBOL_GPL vmlinux 0x60506751 unmap_kernel_range_noflush +EXPORT_SYMBOL_GPL vmlinux 0x605bc9f2 lp8788_read_multi_bytes +EXPORT_SYMBOL_GPL vmlinux 0x60858154 rdev_clear_badblocks +EXPORT_SYMBOL_GPL vmlinux 0x60943777 debugfs_create_u32_array +EXPORT_SYMBOL_GPL vmlinux 0x60980957 sdhci_pltfm_unregister +EXPORT_SYMBOL_GPL vmlinux 0x60a13e90 rcu_barrier +EXPORT_SYMBOL_GPL vmlinux 0x60ad1236 rt_mutex_destroy +EXPORT_SYMBOL_GPL vmlinux 0x60c0629e __rtnl_af_register +EXPORT_SYMBOL_GPL vmlinux 0x60cc1ca7 device_show_int +EXPORT_SYMBOL_GPL vmlinux 0x6114d8a4 regulator_force_disable +EXPORT_SYMBOL_GPL vmlinux 0x612c17c0 register_mtd_user +EXPORT_SYMBOL_GPL vmlinux 0x613a7aab scsi_eh_ready_devs +EXPORT_SYMBOL_GPL vmlinux 0x614ef8d8 snd_soc_dapm_new_widgets +EXPORT_SYMBOL_GPL vmlinux 0x61570fe1 relay_open +EXPORT_SYMBOL_GPL vmlinux 0x617c90a5 tps6586x_writes +EXPORT_SYMBOL_GPL vmlinux 0x618944ef pm_generic_freeze_noirq +EXPORT_SYMBOL_GPL vmlinux 0x61932978 sdio_readsb +EXPORT_SYMBOL_GPL vmlinux 0x619b3ede led_trigger_blink +EXPORT_SYMBOL_GPL vmlinux 0x61a2f3af usb_get_from_anchor +EXPORT_SYMBOL_GPL vmlinux 0x61beb782 fat_remove_entries +EXPORT_SYMBOL_GPL vmlinux 0x61c13aca serial8250_tx_chars +EXPORT_SYMBOL_GPL vmlinux 0x61e35917 sata_link_resume +EXPORT_SYMBOL_GPL vmlinux 0x61f0c18a inet_csk_addr2sockaddr +EXPORT_SYMBOL_GPL vmlinux 0x61f99fd5 snd_soc_jack_add_zones +EXPORT_SYMBOL_GPL vmlinux 0x62219628 bus_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x622c7922 register_oom_notifier +EXPORT_SYMBOL_GPL vmlinux 0x622dacba tick_nohz_idle_enter +EXPORT_SYMBOL_GPL vmlinux 0x6233143c blkcg_root +EXPORT_SYMBOL_GPL vmlinux 0x6248b5be __clk_get_flags +EXPORT_SYMBOL_GPL vmlinux 0x624a6406 hwrng_register +EXPORT_SYMBOL_GPL vmlinux 0x625c819f crypto_aead_setauthsize +EXPORT_SYMBOL_GPL vmlinux 0x6267ac40 pm_generic_runtime_suspend +EXPORT_SYMBOL_GPL vmlinux 0x62712c68 exportfs_decode_fh +EXPORT_SYMBOL_GPL vmlinux 0x6280b448 tpm_open +EXPORT_SYMBOL_GPL vmlinux 0x62b90e57 inet6_csk_reqsk_queue_hash_add +EXPORT_SYMBOL_GPL vmlinux 0x62c95b8c devm_pwm_get +EXPORT_SYMBOL_GPL vmlinux 0x62de8818 generic_fh_to_parent +EXPORT_SYMBOL_GPL vmlinux 0x6318757f mdio_mux_uninit +EXPORT_SYMBOL_GPL vmlinux 0x63205de1 ata_scsi_unlock_native_capacity +EXPORT_SYMBOL_GPL vmlinux 0x6329aaec bmp085_detect +EXPORT_SYMBOL_GPL vmlinux 0x63372e93 snd_soc_dapm_new_controls +EXPORT_SYMBOL_GPL vmlinux 0x6390efda of_modalias_node +EXPORT_SYMBOL_GPL vmlinux 0x63cc88b6 user_read +EXPORT_SYMBOL_GPL vmlinux 0x63fcff2b snd_soc_dai_set_fmt +EXPORT_SYMBOL_GPL vmlinux 0x645ee1b0 stmpe_reg_write +EXPORT_SYMBOL_GPL vmlinux 0x646e178e irq_domain_add_legacy +EXPORT_SYMBOL_GPL vmlinux 0x647537f3 pl320_ipc_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x64bd7a23 scsi_target_unblock +EXPORT_SYMBOL_GPL vmlinux 0x64d773dd shash_ahash_update +EXPORT_SYMBOL_GPL vmlinux 0x64dd64cd blkcipher_walk_phys +EXPORT_SYMBOL_GPL vmlinux 0x64e64f40 extcon_dev_unregister +EXPORT_SYMBOL_GPL vmlinux 0x653b9e60 of_platform_populate +EXPORT_SYMBOL_GPL vmlinux 0x654192a0 scsi_internal_device_unblock +EXPORT_SYMBOL_GPL vmlinux 0x658309ec usb_add_phy +EXPORT_SYMBOL_GPL vmlinux 0x659581e2 blk_rq_prep_clone +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 0x65efc434 xfrm_local_error +EXPORT_SYMBOL_GPL vmlinux 0x661601de sprint_symbol +EXPORT_SYMBOL_GPL vmlinux 0x6623889c extcon_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x663c16d6 gnttab_grant_foreign_access_subpage_ref +EXPORT_SYMBOL_GPL vmlinux 0x663e46c8 reset_control_get +EXPORT_SYMBOL_GPL vmlinux 0x6644fe20 xenbus_map_ring_valloc +EXPORT_SYMBOL_GPL vmlinux 0x6661080f __ip_route_output_key +EXPORT_SYMBOL_GPL vmlinux 0x668402aa crypto_put_default_rng +EXPORT_SYMBOL_GPL vmlinux 0x669da1fd kvm_set_pfn_dirty +EXPORT_SYMBOL_GPL vmlinux 0x66c6c80e regmap_write +EXPORT_SYMBOL_GPL vmlinux 0x66cbb959 regulator_map_voltage_ascend +EXPORT_SYMBOL_GPL vmlinux 0x66d87d38 symbol_put_addr +EXPORT_SYMBOL_GPL vmlinux 0x66f7f60d wm8997_aod +EXPORT_SYMBOL_GPL vmlinux 0x67128609 __srcu_read_lock +EXPORT_SYMBOL_GPL vmlinux 0x6735aee5 inet6_sk_rebuild_header +EXPORT_SYMBOL_GPL vmlinux 0x6739a503 balloon_set_new_target +EXPORT_SYMBOL_GPL vmlinux 0x674e13e1 public_key_destroy +EXPORT_SYMBOL_GPL vmlinux 0x67513f30 cgroup_taskset_cur_cgroup +EXPORT_SYMBOL_GPL vmlinux 0x67643d26 pm_qos_remove_request +EXPORT_SYMBOL_GPL vmlinux 0x676c10fc sdio_claim_host +EXPORT_SYMBOL_GPL vmlinux 0x677a16bc class_dev_iter_exit +EXPORT_SYMBOL_GPL vmlinux 0x67837e20 ipv6_dup_options +EXPORT_SYMBOL_GPL vmlinux 0x678f3496 platform_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x6791040e pm_generic_restore +EXPORT_SYMBOL_GPL vmlinux 0x67955ce6 profile_hits +EXPORT_SYMBOL_GPL vmlinux 0x67c664b0 adp5520_clr_bits +EXPORT_SYMBOL_GPL vmlinux 0x6812cf8d __tracepoint_rpm_idle +EXPORT_SYMBOL_GPL vmlinux 0x6855de4d mtd_panic_write +EXPORT_SYMBOL_GPL vmlinux 0x686ee5ac ata_cable_sata +EXPORT_SYMBOL_GPL vmlinux 0x68956406 static_key_slow_dec +EXPORT_SYMBOL_GPL vmlinux 0x68997ff8 tpm_do_selftest +EXPORT_SYMBOL_GPL vmlinux 0x68bac20c get_current_tty +EXPORT_SYMBOL_GPL vmlinux 0x68dd992c snd_ctl_add_vmaster_hook +EXPORT_SYMBOL_GPL vmlinux 0x69063e6b ahci_ops +EXPORT_SYMBOL_GPL vmlinux 0x6923ce63 irq_work_sync +EXPORT_SYMBOL_GPL vmlinux 0x69447467 ring_buffer_write +EXPORT_SYMBOL_GPL vmlinux 0x6945725e mpi_read_raw_data +EXPORT_SYMBOL_GPL vmlinux 0x694607d7 dev_pm_qos_expose_flags +EXPORT_SYMBOL_GPL vmlinux 0x69487027 handle_simple_irq +EXPORT_SYMBOL_GPL vmlinux 0x694be42a usb_show_dynids +EXPORT_SYMBOL_GPL vmlinux 0x694f923e ahci_thread_fn +EXPORT_SYMBOL_GPL vmlinux 0x6956f67d serial8250_rx_dma +EXPORT_SYMBOL_GPL vmlinux 0x697a80d8 raw_seq_start +EXPORT_SYMBOL_GPL vmlinux 0x697c5d0d tracing_snapshot_alloc +EXPORT_SYMBOL_GPL vmlinux 0x698a899f ring_buffer_peek +EXPORT_SYMBOL_GPL vmlinux 0x698be398 regulator_get_voltage +EXPORT_SYMBOL_GPL vmlinux 0x69bbfa4c sysfs_create_files +EXPORT_SYMBOL_GPL vmlinux 0x69cb52be tpm_pm_resume +EXPORT_SYMBOL_GPL vmlinux 0x69e9a2cb ata_scsi_slave_config +EXPORT_SYMBOL_GPL vmlinux 0x6a49ca07 relay_switch_subbuf +EXPORT_SYMBOL_GPL vmlinux 0x6a545c44 __fat_fs_error +EXPORT_SYMBOL_GPL vmlinux 0x6a5fb566 rcu_sched_force_quiescent_state +EXPORT_SYMBOL_GPL vmlinux 0x6a650cd3 usb_driver_release_interface +EXPORT_SYMBOL_GPL vmlinux 0x6a9d3ad6 srcu_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0x6ab77430 wm5110_aod +EXPORT_SYMBOL_GPL vmlinux 0x6ab922b2 regulator_get_drvdata +EXPORT_SYMBOL_GPL vmlinux 0x6aba167a regulator_list_voltage +EXPORT_SYMBOL_GPL vmlinux 0x6ace271d platform_get_resource_byname +EXPORT_SYMBOL_GPL vmlinux 0x6b186d35 bus_get_device_klist +EXPORT_SYMBOL_GPL vmlinux 0x6b29a1fa ring_buffer_event_length +EXPORT_SYMBOL_GPL vmlinux 0x6b3bb871 ata_dummy_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x6b537225 n_tty_inherit_ops +EXPORT_SYMBOL_GPL vmlinux 0x6b770f49 decode_bch +EXPORT_SYMBOL_GPL vmlinux 0x6b7df0ee usb_hcd_start_port_resume +EXPORT_SYMBOL_GPL vmlinux 0x6bab3ecd clockevents_config_and_register +EXPORT_SYMBOL_GPL vmlinux 0x6bb4f3ee register_ftrace_event +EXPORT_SYMBOL_GPL vmlinux 0x6c21458a tcp_is_cwnd_limited +EXPORT_SYMBOL_GPL vmlinux 0x6c38d156 default_backing_dev_info +EXPORT_SYMBOL_GPL vmlinux 0x6c49c4f2 clockevents_notify +EXPORT_SYMBOL_GPL vmlinux 0x6c4b6684 reset_control_assert +EXPORT_SYMBOL_GPL vmlinux 0x6c63dd2f __page_file_index +EXPORT_SYMBOL_GPL vmlinux 0x6c749afe __tracepoint_block_unplug +EXPORT_SYMBOL_GPL vmlinux 0x6c7ad24e pwm_config +EXPORT_SYMBOL_GPL vmlinux 0x6c85da41 fat_build_inode +EXPORT_SYMBOL_GPL vmlinux 0x6c87b47d irq_domain_associate_many +EXPORT_SYMBOL_GPL vmlinux 0x6c8d5ae8 __gpio_get_value +EXPORT_SYMBOL_GPL vmlinux 0x6c972507 wm831x_auxadc_read +EXPORT_SYMBOL_GPL vmlinux 0x6ca4bf88 async_synchronize_full_domain +EXPORT_SYMBOL_GPL vmlinux 0x6cc018ac ip_route_output_flow +EXPORT_SYMBOL_GPL vmlinux 0x6cc78c5c set_irq_flags +EXPORT_SYMBOL_GPL vmlinux 0x6cd4eb2c clone_private_mount +EXPORT_SYMBOL_GPL vmlinux 0x6cd7f451 ip6_update_pmtu +EXPORT_SYMBOL_GPL vmlinux 0x6cf1a8ef cpuidle_unregister_device +EXPORT_SYMBOL_GPL vmlinux 0x6cf33c5a class_destroy +EXPORT_SYMBOL_GPL vmlinux 0x6d24b98b dma_buf_map_attachment +EXPORT_SYMBOL_GPL vmlinux 0x6d2c37b8 device_wakeup_enable +EXPORT_SYMBOL_GPL vmlinux 0x6d2fc5a6 net_namespace_list +EXPORT_SYMBOL_GPL vmlinux 0x6d31e93b tracepoint_iter_next +EXPORT_SYMBOL_GPL vmlinux 0x6d416432 fuse_conn_init +EXPORT_SYMBOL_GPL vmlinux 0x6d9e5425 of_address_to_resource +EXPORT_SYMBOL_GPL vmlinux 0x6ddd2964 arizona_set_irq_wake +EXPORT_SYMBOL_GPL vmlinux 0x6e04a077 usb_bind_phy +EXPORT_SYMBOL_GPL vmlinux 0x6e05c4e7 ahci_hw_interrupt +EXPORT_SYMBOL_GPL vmlinux 0x6e224c6e sdev_evt_send_simple +EXPORT_SYMBOL_GPL vmlinux 0x6e2e063d snd_soc_info_xr_sx +EXPORT_SYMBOL_GPL vmlinux 0x6e58ddf0 gnttab_end_foreign_transfer_ref +EXPORT_SYMBOL_GPL vmlinux 0x6e5f65ac tcp_twsk_unique +EXPORT_SYMBOL_GPL vmlinux 0x6e7d457a mmc_regulator_set_ocr +EXPORT_SYMBOL_GPL vmlinux 0x6e89a560 regmap_irq_chip_get_base +EXPORT_SYMBOL_GPL vmlinux 0x6eba0f06 perf_event_read_value +EXPORT_SYMBOL_GPL vmlinux 0x6f1bfcce sysfs_add_link_to_group +EXPORT_SYMBOL_GPL vmlinux 0x6f1ee69e kgdb_unregister_io_module +EXPORT_SYMBOL_GPL vmlinux 0x6f747e13 single_open_net +EXPORT_SYMBOL_GPL vmlinux 0x6fa0ff44 snd_soc_get_enum_double +EXPORT_SYMBOL_GPL vmlinux 0x6fbb3bd9 init_rs_non_canonical +EXPORT_SYMBOL_GPL vmlinux 0x6fe3d8cf ktime_add_safe +EXPORT_SYMBOL_GPL vmlinux 0x6ff607b6 crypto_get_default_rng +EXPORT_SYMBOL_GPL vmlinux 0x701c69c3 console_drivers +EXPORT_SYMBOL_GPL vmlinux 0x703189d7 regulator_get_mode +EXPORT_SYMBOL_GPL vmlinux 0x704c0203 sysfs_add_file_to_group +EXPORT_SYMBOL_GPL vmlinux 0x704e5fc8 pm_generic_freeze +EXPORT_SYMBOL_GPL vmlinux 0x704fea6e snd_soc_dpcm_fe_can_update +EXPORT_SYMBOL_GPL vmlinux 0x7050c945 __netpoll_cleanup +EXPORT_SYMBOL_GPL vmlinux 0x707ff1bb ata_xfer_mask2mode +EXPORT_SYMBOL_GPL vmlinux 0x70a8d4b3 blkcg_activate_policy +EXPORT_SYMBOL_GPL vmlinux 0x70b30879 ata_sas_port_destroy +EXPORT_SYMBOL_GPL vmlinux 0x70b75e61 stmpe_enable +EXPORT_SYMBOL_GPL vmlinux 0x70bb651d __tracepoint_block_rq_remap +EXPORT_SYMBOL_GPL vmlinux 0x70bc238d da903x_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x70cf032f usb_hcd_irq +EXPORT_SYMBOL_GPL vmlinux 0x70d85f89 alarm_expires_remaining +EXPORT_SYMBOL_GPL vmlinux 0x71008581 atomic_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x710c73b6 crypto_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x714aec39 __inet_hash_nolisten +EXPORT_SYMBOL_GPL vmlinux 0x716265c7 debugfs_initialized +EXPORT_SYMBOL_GPL vmlinux 0x7176b8fd sec_bulk_read +EXPORT_SYMBOL_GPL vmlinux 0x71930ed3 of_property_read_string +EXPORT_SYMBOL_GPL vmlinux 0x71cb8c9d ata_ehi_push_desc +EXPORT_SYMBOL_GPL vmlinux 0x71d028f0 tty_set_termios +EXPORT_SYMBOL_GPL vmlinux 0x71dc9998 crypto_il_tab +EXPORT_SYMBOL_GPL vmlinux 0x71e7644e map_vm_area +EXPORT_SYMBOL_GPL vmlinux 0x71fa492e usb_get_urb +EXPORT_SYMBOL_GPL vmlinux 0x7202c9fe usb_hcd_unmap_urb_setup_for_dma +EXPORT_SYMBOL_GPL vmlinux 0x72104b69 sata_link_hardreset +EXPORT_SYMBOL_GPL vmlinux 0x724ef78d driver_for_each_device +EXPORT_SYMBOL_GPL vmlinux 0x725b3932 devm_rtc_device_register +EXPORT_SYMBOL_GPL vmlinux 0x725f7190 ata_msleep +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 0x7282bb80 device_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x7291019b __cci_control_port_by_index +EXPORT_SYMBOL_GPL vmlinux 0x72b212ff regulator_bulk_enable +EXPORT_SYMBOL_GPL vmlinux 0x72ba80f1 dev_pm_qos_add_notifier +EXPORT_SYMBOL_GPL vmlinux 0x72c85932 __ablkcipher_walk_complete +EXPORT_SYMBOL_GPL vmlinux 0x72d5c589 adp5520_write +EXPORT_SYMBOL_GPL vmlinux 0x72e8b08a crypto_larval_lookup +EXPORT_SYMBOL_GPL vmlinux 0x73013896 xenbus_printf +EXPORT_SYMBOL_GPL vmlinux 0x73056d81 regulator_get_linear_step +EXPORT_SYMBOL_GPL vmlinux 0x730bd0c7 asic3_write_register +EXPORT_SYMBOL_GPL vmlinux 0x731d51bf ata_eh_qc_retry +EXPORT_SYMBOL_GPL vmlinux 0x731dba7a xen_domain_type +EXPORT_SYMBOL_GPL vmlinux 0x732966be i2c_adapter_type +EXPORT_SYMBOL_GPL vmlinux 0x73906664 crypto_givcipher_type +EXPORT_SYMBOL_GPL vmlinux 0x7399097a class_interface_register +EXPORT_SYMBOL_GPL vmlinux 0x73a48b4a ata_sff_std_ports +EXPORT_SYMBOL_GPL vmlinux 0x73b5e517 usb_autopm_put_interface +EXPORT_SYMBOL_GPL vmlinux 0x73bc798f fib_rules_unregister +EXPORT_SYMBOL_GPL vmlinux 0x73be2104 smpboot_register_percpu_thread +EXPORT_SYMBOL_GPL vmlinux 0x73d69364 ring_buffer_change_overwrite +EXPORT_SYMBOL_GPL vmlinux 0x73e234d1 shmem_truncate_range +EXPORT_SYMBOL_GPL vmlinux 0x740849ea dev_pm_qos_remove_request +EXPORT_SYMBOL_GPL vmlinux 0x740ba04a uart_console_write +EXPORT_SYMBOL_GPL vmlinux 0x742ab5c6 usb_set_interface +EXPORT_SYMBOL_GPL vmlinux 0x743a165e ata_pack_xfermask +EXPORT_SYMBOL_GPL vmlinux 0x743c855a kvm_init +EXPORT_SYMBOL_GPL vmlinux 0x7440770c uart_handle_dcd_change +EXPORT_SYMBOL_GPL vmlinux 0x744e0018 hvc_remove +EXPORT_SYMBOL_GPL vmlinux 0x7464ea38 dev_pm_qos_add_global_notifier +EXPORT_SYMBOL_GPL vmlinux 0x74954462 timecounter_read +EXPORT_SYMBOL_GPL vmlinux 0x74a75817 ping_seq_start +EXPORT_SYMBOL_GPL vmlinux 0x74b67c30 snd_soc_codec_readable_register +EXPORT_SYMBOL_GPL vmlinux 0x74b8c31e snd_soc_remove_platform +EXPORT_SYMBOL_GPL vmlinux 0x74baf17a tracing_is_on +EXPORT_SYMBOL_GPL vmlinux 0x74f39770 register_virtio_driver +EXPORT_SYMBOL_GPL vmlinux 0x7511dad1 sdio_get_host_pm_caps +EXPORT_SYMBOL_GPL vmlinux 0x7522f3ba irq_modify_status +EXPORT_SYMBOL_GPL vmlinux 0x75256e80 __fsnotify_parent +EXPORT_SYMBOL_GPL vmlinux 0x752cad66 pm_generic_suspend +EXPORT_SYMBOL_GPL vmlinux 0x753ed35c filter_current_check_discard +EXPORT_SYMBOL_GPL vmlinux 0x75602a40 thermal_notify_framework +EXPORT_SYMBOL_GPL vmlinux 0x757cd044 driver_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x75870fee usb_create_shared_hcd +EXPORT_SYMBOL_GPL vmlinux 0x758a782e blk_fill_rwbs +EXPORT_SYMBOL_GPL vmlinux 0x75985d50 power_supply_class +EXPORT_SYMBOL_GPL vmlinux 0x75abae33 __pm_runtime_set_status +EXPORT_SYMBOL_GPL vmlinux 0x75b16e50 tcp_reno_cong_avoid +EXPORT_SYMBOL_GPL vmlinux 0x75b89bf9 stmpe_block_read +EXPORT_SYMBOL_GPL vmlinux 0x75c2b9f1 memalloc_socks +EXPORT_SYMBOL_GPL vmlinux 0x75c8a11c inet_twdr_twkill_work +EXPORT_SYMBOL_GPL vmlinux 0x75e72a99 snd_soc_add_platform_controls +EXPORT_SYMBOL_GPL vmlinux 0x75f4521f ip6_push_pending_frames +EXPORT_SYMBOL_GPL vmlinux 0x75fa1696 crypto_register_alg +EXPORT_SYMBOL_GPL vmlinux 0x7607c89d input_ff_event +EXPORT_SYMBOL_GPL vmlinux 0x762ee4ed ata_do_eh +EXPORT_SYMBOL_GPL vmlinux 0x762fab36 ahci_check_ready +EXPORT_SYMBOL_GPL vmlinux 0x76310900 snd_soc_of_parse_audio_routing +EXPORT_SYMBOL_GPL vmlinux 0x765cb3cc da9052_free_irq +EXPORT_SYMBOL_GPL vmlinux 0x7681946c unregister_pm_notifier +EXPORT_SYMBOL_GPL vmlinux 0x768c5005 zap_vma_ptes +EXPORT_SYMBOL_GPL vmlinux 0x76973ec1 __mmu_notifier_invalidate_range_end +EXPORT_SYMBOL_GPL vmlinux 0x76a9f166 wm831x_device_shutdown +EXPORT_SYMBOL_GPL vmlinux 0x76ce992a dma_buf_fd +EXPORT_SYMBOL_GPL vmlinux 0x77085b55 rtc_alarm_irq_enable +EXPORT_SYMBOL_GPL vmlinux 0x770cf981 tpm_send +EXPORT_SYMBOL_GPL vmlinux 0x7712771a unbind_from_irqhandler +EXPORT_SYMBOL_GPL vmlinux 0x771fd941 bus_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x77214cea sprint_OID +EXPORT_SYMBOL_GPL vmlinux 0x7729cbdd task_handoff_register +EXPORT_SYMBOL_GPL vmlinux 0x7733e783 snd_soc_jack_report +EXPORT_SYMBOL_GPL vmlinux 0x774041be virtqueue_detach_unused_buf +EXPORT_SYMBOL_GPL vmlinux 0x7750a04a __clocksource_register_scale +EXPORT_SYMBOL_GPL vmlinux 0x7752bd36 ata_pio_need_iordy +EXPORT_SYMBOL_GPL vmlinux 0x7795ed75 ata_sff_dev_classify +EXPORT_SYMBOL_GPL vmlinux 0x779e505c usb_mon_register +EXPORT_SYMBOL_GPL vmlinux 0x77a0f076 ehci_setup +EXPORT_SYMBOL_GPL vmlinux 0x77e23e93 xenbus_dev_suspend +EXPORT_SYMBOL_GPL vmlinux 0x77e78218 regulator_allow_bypass +EXPORT_SYMBOL_GPL vmlinux 0x77fc9462 sata_scr_write +EXPORT_SYMBOL_GPL vmlinux 0x77fcdfb4 verify_signature +EXPORT_SYMBOL_GPL vmlinux 0x78041463 tps65912_reg_read +EXPORT_SYMBOL_GPL vmlinux 0x780b5289 blk_queue_flush +EXPORT_SYMBOL_GPL vmlinux 0x7840b42c hrtimer_cancel +EXPORT_SYMBOL_GPL vmlinux 0x7841a32a usb_put_intf +EXPORT_SYMBOL_GPL vmlinux 0x787b161e aead_geniv_init +EXPORT_SYMBOL_GPL vmlinux 0x78834212 unregister_asymmetric_key_parser +EXPORT_SYMBOL_GPL vmlinux 0x788b8c21 arizona_free_irq +EXPORT_SYMBOL_GPL vmlinux 0x788c5b1c inet_unhash +EXPORT_SYMBOL_GPL vmlinux 0x788f04af xenbus_register_backend +EXPORT_SYMBOL_GPL vmlinux 0x78b029e1 tcp_init_congestion_ops +EXPORT_SYMBOL_GPL vmlinux 0x78c02d3f dpcm_be_dai_trigger +EXPORT_SYMBOL_GPL vmlinux 0x78cf4589 usb_kill_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0x78de8835 i2c_new_probed_device +EXPORT_SYMBOL_GPL vmlinux 0x791fddbb disk_part_iter_init +EXPORT_SYMBOL_GPL vmlinux 0x792c4514 ahci_reset_em +EXPORT_SYMBOL_GPL vmlinux 0x79375cd6 ata_dev_next +EXPORT_SYMBOL_GPL vmlinux 0x7944e0fc tracing_off +EXPORT_SYMBOL_GPL vmlinux 0x794ad91c da9052_disable_irq +EXPORT_SYMBOL_GPL vmlinux 0x795339bd tcp_peer_is_proven +EXPORT_SYMBOL_GPL vmlinux 0x796c2d48 dm_get_md +EXPORT_SYMBOL_GPL vmlinux 0x7978cade gfn_to_pfn +EXPORT_SYMBOL_GPL vmlinux 0x798a4be6 sysfs_create_file +EXPORT_SYMBOL_GPL vmlinux 0x79c90fee kvm_vcpu_on_spin +EXPORT_SYMBOL_GPL vmlinux 0x79db36ed da903x_writes +EXPORT_SYMBOL_GPL vmlinux 0x7a0609da inet_twsk_schedule +EXPORT_SYMBOL_GPL vmlinux 0x7a454067 rtnl_put_cacheinfo +EXPORT_SYMBOL_GPL vmlinux 0x7a51b64b opp_get_opp_count +EXPORT_SYMBOL_GPL vmlinux 0x7a933c98 clk_enable +EXPORT_SYMBOL_GPL vmlinux 0x7a944007 rcu_idle_enter +EXPORT_SYMBOL_GPL vmlinux 0x7aa64803 kvm_release_pfn_clean +EXPORT_SYMBOL_GPL vmlinux 0x7ab3ca18 eventfd_ctx_read +EXPORT_SYMBOL_GPL vmlinux 0x7ad13ef4 snd_soc_info_enum_ext +EXPORT_SYMBOL_GPL vmlinux 0x7ad8e79a usb_anchor_urb +EXPORT_SYMBOL_GPL vmlinux 0x7b05dd0a snd_soc_unregister_codec +EXPORT_SYMBOL_GPL vmlinux 0x7b0f1ab3 ring_buffer_free_read_page +EXPORT_SYMBOL_GPL vmlinux 0x7b1a4ca9 of_dma_controller_register +EXPORT_SYMBOL_GPL vmlinux 0x7b1d544d edac_handler_set +EXPORT_SYMBOL_GPL vmlinux 0x7b2163bd HYPERVISOR_tmem_op +EXPORT_SYMBOL_GPL vmlinux 0x7b680508 crypto_lookup_template +EXPORT_SYMBOL_GPL vmlinux 0x7b90d1a9 bind_virq_to_irqhandler +EXPORT_SYMBOL_GPL vmlinux 0x7bd0165b usb_reset_endpoint +EXPORT_SYMBOL_GPL vmlinux 0x7bdf1267 usb_gadget_probe_driver +EXPORT_SYMBOL_GPL vmlinux 0x7bf035e9 pm_generic_poweroff_late +EXPORT_SYMBOL_GPL vmlinux 0x7bf9246f regulator_unregister +EXPORT_SYMBOL_GPL vmlinux 0x7c31aec4 mnt_want_write_file +EXPORT_SYMBOL_GPL vmlinux 0x7c455727 ata_host_resume +EXPORT_SYMBOL_GPL vmlinux 0x7c5478c5 blkcg_print_blkgs +EXPORT_SYMBOL_GPL vmlinux 0x7c6a49ce unix_table_lock +EXPORT_SYMBOL_GPL vmlinux 0x7c787260 tty_get_pgrp +EXPORT_SYMBOL_GPL vmlinux 0x7c813ca5 usb_root_hub_lost_power +EXPORT_SYMBOL_GPL vmlinux 0x7c8ecda0 __mmc_switch +EXPORT_SYMBOL_GPL vmlinux 0x7c9ad2eb usb_wait_anchor_empty_timeout +EXPORT_SYMBOL_GPL vmlinux 0x7cbe68c9 cm_notify_event +EXPORT_SYMBOL_GPL vmlinux 0x7cc1b7fd max77693_bulk_read +EXPORT_SYMBOL_GPL vmlinux 0x7cc2e814 regmap_irq_get_domain +EXPORT_SYMBOL_GPL vmlinux 0x7cc414a5 snd_soc_platform_read +EXPORT_SYMBOL_GPL vmlinux 0x7ceaf0d5 generic_handle_irq +EXPORT_SYMBOL_GPL vmlinux 0x7ceccf3c gfn_to_pfn_prot +EXPORT_SYMBOL_GPL vmlinux 0x7cee18c4 __blkg_prfill_u64 +EXPORT_SYMBOL_GPL vmlinux 0x7d0e1168 mnt_want_write +EXPORT_SYMBOL_GPL vmlinux 0x7d59dd46 pm_wq +EXPORT_SYMBOL_GPL vmlinux 0x7d9468e3 inet6_lookup +EXPORT_SYMBOL_GPL vmlinux 0x7dab26b6 wm831x_isinkv_values +EXPORT_SYMBOL_GPL vmlinux 0x7e0a72bb ata_std_prereset +EXPORT_SYMBOL_GPL vmlinux 0x7e0d6197 ip6_local_out +EXPORT_SYMBOL_GPL vmlinux 0x7e11c60e skb_pull_rcsum +EXPORT_SYMBOL_GPL vmlinux 0x7e477ecd ata_host_alloc +EXPORT_SYMBOL_GPL vmlinux 0x7e528150 ata_sas_async_probe +EXPORT_SYMBOL_GPL vmlinux 0x7e5b1fe7 tps6586x_read +EXPORT_SYMBOL_GPL vmlinux 0x7e606130 snd_soc_calc_bclk +EXPORT_SYMBOL_GPL vmlinux 0x7e64181d usb_calc_bus_time +EXPORT_SYMBOL_GPL vmlinux 0x7e6a09ce hvc_poll +EXPORT_SYMBOL_GPL vmlinux 0x7e97d7a7 ata_sff_freeze +EXPORT_SYMBOL_GPL vmlinux 0x7ea6bc4b inet_twsk_alloc +EXPORT_SYMBOL_GPL vmlinux 0x7ec02892 mtd_is_partition +EXPORT_SYMBOL_GPL vmlinux 0x7ec0911b i2c_unregister_device +EXPORT_SYMBOL_GPL vmlinux 0x7ed27270 snd_soc_jack_notifier_unregister +EXPORT_SYMBOL_GPL vmlinux 0x7ed68941 asic3_read_register +EXPORT_SYMBOL_GPL vmlinux 0x7edd00fb regcache_sync_region +EXPORT_SYMBOL_GPL vmlinux 0x7edd304c fuse_request_send +EXPORT_SYMBOL_GPL vmlinux 0x7ef65ebf kvm_gfn_to_hva_cache_init +EXPORT_SYMBOL_GPL vmlinux 0x7f0038a8 regmap_raw_read +EXPORT_SYMBOL_GPL vmlinux 0x7f0ae534 pm_wakeup_event +EXPORT_SYMBOL_GPL vmlinux 0x7f1a0ef5 sysfs_remove_files +EXPORT_SYMBOL_GPL vmlinux 0x7f1c6c1b debugfs_create_x32 +EXPORT_SYMBOL_GPL vmlinux 0x7f60e837 __pm_wakeup_event +EXPORT_SYMBOL_GPL vmlinux 0x7f61dc1e debugfs_create_u16 +EXPORT_SYMBOL_GPL vmlinux 0x7f991ec8 usb_hcd_link_urb_to_ep +EXPORT_SYMBOL_GPL vmlinux 0x7fab5350 wakeup_source_unregister +EXPORT_SYMBOL_GPL vmlinux 0x7fbc58cf vchan_dma_desc_free_list +EXPORT_SYMBOL_GPL vmlinux 0x7ffc8718 gpio_set_debounce +EXPORT_SYMBOL_GPL vmlinux 0x800808d5 wm8997_irq +EXPORT_SYMBOL_GPL vmlinux 0x802455e3 __platform_driver_register +EXPORT_SYMBOL_GPL vmlinux 0x8043eb8c firmware_kobj +EXPORT_SYMBOL_GPL vmlinux 0x808ec1a3 crypto_alg_tested +EXPORT_SYMBOL_GPL vmlinux 0x8095ddab snd_soc_jack_get_type +EXPORT_SYMBOL_GPL vmlinux 0x80a5e9bb bus_find_device +EXPORT_SYMBOL_GPL vmlinux 0x80a65392 tasklet_hrtimer_init +EXPORT_SYMBOL_GPL vmlinux 0x80d5e57a mpi_free +EXPORT_SYMBOL_GPL vmlinux 0x80f3268f __trace_printk +EXPORT_SYMBOL_GPL vmlinux 0x80fb4bfa bus_for_each_drv +EXPORT_SYMBOL_GPL vmlinux 0x811dc334 usb_unregister_notify +EXPORT_SYMBOL_GPL vmlinux 0x81239e59 __get_mtd_device +EXPORT_SYMBOL_GPL vmlinux 0x8149ea54 ata_timing_find_mode +EXPORT_SYMBOL_GPL vmlinux 0x814fad4b kvm_read_guest_cached +EXPORT_SYMBOL_GPL vmlinux 0x815670ac do_unregister_con_driver +EXPORT_SYMBOL_GPL vmlinux 0x81728615 dm_kill_unmapped_request +EXPORT_SYMBOL_GPL vmlinux 0x81ca2161 inet_hash_connect +EXPORT_SYMBOL_GPL vmlinux 0x81fe2d07 spi_bus_unlock +EXPORT_SYMBOL_GPL vmlinux 0x82014073 opp_find_freq_floor +EXPORT_SYMBOL_GPL vmlinux 0x8226642f __gpio_cansleep +EXPORT_SYMBOL_GPL vmlinux 0x824f89f9 unix_inq_len +EXPORT_SYMBOL_GPL vmlinux 0x8267c948 attribute_container_classdev_to_container +EXPORT_SYMBOL_GPL vmlinux 0x82939ebd rcu_batches_completed_sched +EXPORT_SYMBOL_GPL vmlinux 0x82a2599d smpboot_unregister_percpu_thread +EXPORT_SYMBOL_GPL vmlinux 0x82d48695 locks_release_private +EXPORT_SYMBOL_GPL vmlinux 0x82d79b51 sysctl_vfs_cache_pressure +EXPORT_SYMBOL_GPL vmlinux 0x830ee2b2 pingv6_ops +EXPORT_SYMBOL_GPL vmlinux 0x8321df03 device_create +EXPORT_SYMBOL_GPL vmlinux 0x8331931e dapm_regulator_event +EXPORT_SYMBOL_GPL vmlinux 0x8332cf27 i2c_new_dummy +EXPORT_SYMBOL_GPL vmlinux 0x833a88a2 sysfs_get +EXPORT_SYMBOL_GPL vmlinux 0x838b13e7 ring_buffer_free +EXPORT_SYMBOL_GPL vmlinux 0x838d41a2 raw_hash_sk +EXPORT_SYMBOL_GPL vmlinux 0x83a39171 platform_driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0x83a5ae2e __tracepoint_rpm_resume +EXPORT_SYMBOL_GPL vmlinux 0x83a6fa12 arizona_dev_exit +EXPORT_SYMBOL_GPL vmlinux 0x8414c48f sg_scsi_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x84403503 extcon_set_cable_state_ +EXPORT_SYMBOL_GPL vmlinux 0x84453a15 blk_abort_request +EXPORT_SYMBOL_GPL vmlinux 0x84466392 tcp_register_congestion_control +EXPORT_SYMBOL_GPL vmlinux 0x844c6a88 transport_add_device +EXPORT_SYMBOL_GPL vmlinux 0x846bf993 omap_get_control_dev +EXPORT_SYMBOL_GPL vmlinux 0x84958ead fl6_sock_lookup +EXPORT_SYMBOL_GPL vmlinux 0x84d90cc1 devres_for_each_res +EXPORT_SYMBOL_GPL vmlinux 0x85050965 __irq_alloc_descs +EXPORT_SYMBOL_GPL vmlinux 0x850515e5 snd_soc_info_volsw_ext +EXPORT_SYMBOL_GPL vmlinux 0x8505a885 crypto_larval_kill +EXPORT_SYMBOL_GPL vmlinux 0x8506dacf mtd_get_fact_prot_info +EXPORT_SYMBOL_GPL vmlinux 0x850f317b usb_poison_urb +EXPORT_SYMBOL_GPL vmlinux 0x8518e4fa irq_gc_ack_set_bit +EXPORT_SYMBOL_GPL vmlinux 0x852e568d of_get_nand_ecc_mode +EXPORT_SYMBOL_GPL vmlinux 0x852f3e32 kobject_init_and_add +EXPORT_SYMBOL_GPL vmlinux 0x8533ba07 ehci_suspend +EXPORT_SYMBOL_GPL vmlinux 0x85478a0b inet6_hash_frag +EXPORT_SYMBOL_GPL vmlinux 0x85491a78 ata_bmdma_dumb_qc_prep +EXPORT_SYMBOL_GPL vmlinux 0x85573a4a ata_sas_slave_configure +EXPORT_SYMBOL_GPL vmlinux 0x85628b91 usb_reset_device +EXPORT_SYMBOL_GPL vmlinux 0x856629e7 __tracepoint_rpm_return_int +EXPORT_SYMBOL_GPL vmlinux 0x856d1db6 usb_interrupt_msg +EXPORT_SYMBOL_GPL vmlinux 0x8574ca6c gpio_request_array +EXPORT_SYMBOL_GPL vmlinux 0x8590d55b __clk_register +EXPORT_SYMBOL_GPL vmlinux 0x85c10896 rcu_batches_completed_bh +EXPORT_SYMBOL_GPL vmlinux 0x85c7f674 ring_buffer_normalize_time_stamp +EXPORT_SYMBOL_GPL vmlinux 0x85fa8b94 devres_find +EXPORT_SYMBOL_GPL vmlinux 0x86056440 virtqueue_enable_cb_delayed +EXPORT_SYMBOL_GPL vmlinux 0x861359ed of_get_phy_mode +EXPORT_SYMBOL_GPL vmlinux 0x862b9816 cpu_topology +EXPORT_SYMBOL_GPL vmlinux 0x863ba11b put_device +EXPORT_SYMBOL_GPL vmlinux 0x86623fd7 notify_remote_via_irq +EXPORT_SYMBOL_GPL vmlinux 0x866ea45e unregister_mtd_user +EXPORT_SYMBOL_GPL vmlinux 0x868784cb __symbol_get +EXPORT_SYMBOL_GPL vmlinux 0x86a51007 gnttab_end_foreign_transfer +EXPORT_SYMBOL_GPL vmlinux 0x86b44603 do_unbind_con_driver +EXPORT_SYMBOL_GPL vmlinux 0x86ef6c68 ip_local_out +EXPORT_SYMBOL_GPL vmlinux 0x86f6b99d synchronize_rcu_expedited +EXPORT_SYMBOL_GPL vmlinux 0x86f90bcc scatterwalk_start +EXPORT_SYMBOL_GPL vmlinux 0x86ffbf0b hrtimer_start_range_ns +EXPORT_SYMBOL_GPL vmlinux 0x870e16b7 xen_test_irq_shared +EXPORT_SYMBOL_GPL vmlinux 0x870fda94 cpuidle_get_cpu_driver +EXPORT_SYMBOL_GPL vmlinux 0x873f3d33 queue_kthread_work +EXPORT_SYMBOL_GPL vmlinux 0x873fbaea edac_atomic_assert_error +EXPORT_SYMBOL_GPL vmlinux 0x8789da2f xenbus_probe_devices +EXPORT_SYMBOL_GPL vmlinux 0x87984b16 __tracepoint_cpu_idle +EXPORT_SYMBOL_GPL vmlinux 0x87ba8758 __cci_control_port_by_device +EXPORT_SYMBOL_GPL vmlinux 0x87bb4e32 of_usb_get_phy_mode +EXPORT_SYMBOL_GPL vmlinux 0x87d3ccb5 regmap_can_raw_write +EXPORT_SYMBOL_GPL vmlinux 0x8810ad5e crypto_xor +EXPORT_SYMBOL_GPL vmlinux 0x88148993 seq_release_net +EXPORT_SYMBOL_GPL vmlinux 0x8821117d snd_soc_dapm_put_pin_switch +EXPORT_SYMBOL_GPL vmlinux 0x882b7ca7 root_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x8858fbc3 regulator_set_voltage_time_sel +EXPORT_SYMBOL_GPL vmlinux 0x88a0cac8 ata_sff_wait_ready +EXPORT_SYMBOL_GPL vmlinux 0x88ab6fe3 kgdb_active +EXPORT_SYMBOL_GPL vmlinux 0x88b5647c trace_clock_local +EXPORT_SYMBOL_GPL vmlinux 0x88c2a149 usb_ep0_reinit +EXPORT_SYMBOL_GPL vmlinux 0x88c86b65 invalidate_inode_pages2_range +EXPORT_SYMBOL_GPL vmlinux 0x88d2baf1 device_del +EXPORT_SYMBOL_GPL vmlinux 0x88d6dff1 clk_get_parent +EXPORT_SYMBOL_GPL vmlinux 0x88e973f4 debugfs_create_symlink +EXPORT_SYMBOL_GPL vmlinux 0x88fcd2b6 tps65912_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x891a5a7f gnttab_max_grant_frames +EXPORT_SYMBOL_GPL vmlinux 0x8924eb1e rcu_force_quiescent_state +EXPORT_SYMBOL_GPL vmlinux 0x894839bc mtd_read_fact_prot_reg +EXPORT_SYMBOL_GPL vmlinux 0x89502f0c gnttab_subpage_grants_available +EXPORT_SYMBOL_GPL vmlinux 0x8967ef09 inet_csk_get_port +EXPORT_SYMBOL_GPL vmlinux 0x896bb503 bd_unlink_disk_holder +EXPORT_SYMBOL_GPL vmlinux 0x896f19e5 __pm_runtime_suspend +EXPORT_SYMBOL_GPL vmlinux 0x89bbafc6 usb_register_notify +EXPORT_SYMBOL_GPL vmlinux 0x89bca383 gpiochip_is_requested +EXPORT_SYMBOL_GPL vmlinux 0x89cdff07 debugfs_create_size_t +EXPORT_SYMBOL_GPL vmlinux 0x89cfbcbd ahci_port_resume +EXPORT_SYMBOL_GPL vmlinux 0x89db1701 sdio_set_host_pm_flags +EXPORT_SYMBOL_GPL vmlinux 0x89e295f6 bsg_unregister_queue +EXPORT_SYMBOL_GPL vmlinux 0x89f68358 device_reset +EXPORT_SYMBOL_GPL vmlinux 0x8a04b9fe tracepoint_iter_reset +EXPORT_SYMBOL_GPL vmlinux 0x8a0e08d1 posix_clock_register +EXPORT_SYMBOL_GPL vmlinux 0x8a0e5e2f platform_driver_probe +EXPORT_SYMBOL_GPL vmlinux 0x8a456cd9 ata_sff_prereset +EXPORT_SYMBOL_GPL vmlinux 0x8a5c7a80 regulator_enable +EXPORT_SYMBOL_GPL vmlinux 0x8a78989f irq_from_evtchn +EXPORT_SYMBOL_GPL vmlinux 0x8abacc47 get_max_files +EXPORT_SYMBOL_GPL vmlinux 0x8ae152b5 of_get_nand_bus_width +EXPORT_SYMBOL_GPL vmlinux 0x8b04668e bind_interdomain_evtchn_to_irqhandler +EXPORT_SYMBOL_GPL vmlinux 0x8b1759fa usb_register_device_driver +EXPORT_SYMBOL_GPL vmlinux 0x8b66f9e0 xen_platform_pci_unplug +EXPORT_SYMBOL_GPL vmlinux 0x8b752ac1 ata_tf_to_fis +EXPORT_SYMBOL_GPL vmlinux 0x8b775d3a __wake_up_locked +EXPORT_SYMBOL_GPL vmlinux 0x8b778522 sysfs_remove_link_from_group +EXPORT_SYMBOL_GPL vmlinux 0x8ba5afe9 HYPERVISOR_memory_op +EXPORT_SYMBOL_GPL vmlinux 0x8bc8c6b9 blkcipher_walk_virt +EXPORT_SYMBOL_GPL vmlinux 0x8bd159ea regmap_get_val_bytes +EXPORT_SYMBOL_GPL vmlinux 0x8be93e0d crypto_hash_walk_done +EXPORT_SYMBOL_GPL vmlinux 0x8c03d20c destroy_workqueue +EXPORT_SYMBOL_GPL vmlinux 0x8c06a108 xenbus_transaction_start +EXPORT_SYMBOL_GPL vmlinux 0x8c18e6ae snd_soc_dpcm_can_be_free_stop +EXPORT_SYMBOL_GPL vmlinux 0x8c2be473 ehci_resume +EXPORT_SYMBOL_GPL vmlinux 0x8c391de2 vchan_init +EXPORT_SYMBOL_GPL vmlinux 0x8c4279de cgroup_rightmost_descendant +EXPORT_SYMBOL_GPL vmlinux 0x8c488ae8 wm5110_irq +EXPORT_SYMBOL_GPL vmlinux 0x8c48b09e debugfs_remove_recursive +EXPORT_SYMBOL_GPL vmlinux 0x8c54ba9a thermal_zone_device_update +EXPORT_SYMBOL_GPL vmlinux 0x8c7aed6c kobject_uevent +EXPORT_SYMBOL_GPL vmlinux 0x8cc0a821 shash_ahash_finup +EXPORT_SYMBOL_GPL vmlinux 0x8cd607c8 register_pernet_device +EXPORT_SYMBOL_GPL vmlinux 0x8cdaf70d extcon_set_cable_state +EXPORT_SYMBOL_GPL vmlinux 0x8d4e4a42 lp8788_read_byte +EXPORT_SYMBOL_GPL vmlinux 0x8d5b8a62 kvm_vcpu_yield_to +EXPORT_SYMBOL_GPL vmlinux 0x8d6fdddc ata_bmdma_qc_prep +EXPORT_SYMBOL_GPL vmlinux 0x8d9b42b9 scsi_schedule_eh +EXPORT_SYMBOL_GPL vmlinux 0x8d9cc267 crypto_spawn_tfm +EXPORT_SYMBOL_GPL vmlinux 0x8da01274 kvm_get_pfn +EXPORT_SYMBOL_GPL vmlinux 0x8dbf7aaa privcmd_call +EXPORT_SYMBOL_GPL vmlinux 0x8e1cd06f kvm_set_pfn_accessed +EXPORT_SYMBOL_GPL vmlinux 0x8e3ec116 usb_find_interface +EXPORT_SYMBOL_GPL vmlinux 0x8e4a54c4 ip_build_and_send_pkt +EXPORT_SYMBOL_GPL vmlinux 0x8e5f0671 user_destroy +EXPORT_SYMBOL_GPL vmlinux 0x8e6c158c tpm_register_hardware +EXPORT_SYMBOL_GPL vmlinux 0x8e7894bd __atomic_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x8ea55ba6 pm_generic_restore_noirq +EXPORT_SYMBOL_GPL vmlinux 0x8eaae519 get_mtd_device_nm +EXPORT_SYMBOL_GPL vmlinux 0x8effebd3 pm_qos_update_request +EXPORT_SYMBOL_GPL vmlinux 0x8f0e0746 ipv6_find_tlv +EXPORT_SYMBOL_GPL vmlinux 0x8f5525fc opp_get_freq +EXPORT_SYMBOL_GPL vmlinux 0x8f6cee77 __round_jiffies_relative +EXPORT_SYMBOL_GPL vmlinux 0x8f74640d amba_device_add +EXPORT_SYMBOL_GPL vmlinux 0x8f902e0a devres_add +EXPORT_SYMBOL_GPL vmlinux 0x8fbcae97 sdio_writel +EXPORT_SYMBOL_GPL vmlinux 0x8fd134a5 inet_putpeer +EXPORT_SYMBOL_GPL vmlinux 0x8fe450d5 attribute_container_register +EXPORT_SYMBOL_GPL vmlinux 0x9016fa32 pwm_request_from_chip +EXPORT_SYMBOL_GPL vmlinux 0x903fb3fc tpm_show_caps +EXPORT_SYMBOL_GPL vmlinux 0x90574050 cci_ace_get_port +EXPORT_SYMBOL_GPL vmlinux 0x9062c322 ring_buffer_consume +EXPORT_SYMBOL_GPL vmlinux 0x90705b7f syscon_node_to_regmap +EXPORT_SYMBOL_GPL vmlinux 0x9082d068 kprobe_decode_arm_table +EXPORT_SYMBOL_GPL vmlinux 0x9083cea6 usb_autopm_get_interface +EXPORT_SYMBOL_GPL vmlinux 0x908fdeb0 power_supply_changed +EXPORT_SYMBOL_GPL vmlinux 0x909ad11f xenbus_alloc_evtchn +EXPORT_SYMBOL_GPL vmlinux 0x90a1004a crypto_has_alg +EXPORT_SYMBOL_GPL vmlinux 0x90adb223 bsg_job_done +EXPORT_SYMBOL_GPL vmlinux 0x90b763f1 HYPERVISOR_console_io +EXPORT_SYMBOL_GPL vmlinux 0x90d909a1 ping_bind +EXPORT_SYMBOL_GPL vmlinux 0x90e66d47 wakeup_source_create +EXPORT_SYMBOL_GPL vmlinux 0x90fdca74 rtc_read_time +EXPORT_SYMBOL_GPL vmlinux 0x910b2510 devm_usb_get_phy +EXPORT_SYMBOL_GPL vmlinux 0x910fcad6 ata_sff_queue_pio_task +EXPORT_SYMBOL_GPL vmlinux 0x91261618 fuse_request_alloc +EXPORT_SYMBOL_GPL vmlinux 0x91461a2d ata_sas_port_async_resume +EXPORT_SYMBOL_GPL vmlinux 0x9164962c event_storage_mutex +EXPORT_SYMBOL_GPL vmlinux 0x9169f26e ata_std_bios_param +EXPORT_SYMBOL_GPL vmlinux 0x918ad429 ring_buffer_lock_reserve +EXPORT_SYMBOL_GPL vmlinux 0x918b1d34 fuse_get_req +EXPORT_SYMBOL_GPL vmlinux 0x91910dbf usb_add_gadget_udc +EXPORT_SYMBOL_GPL vmlinux 0x919b39da ip6_datagram_recv_ctl +EXPORT_SYMBOL_GPL vmlinux 0x91dd3404 usb_create_hcd +EXPORT_SYMBOL_GPL vmlinux 0x91efb3ab crypto_shoot_alg +EXPORT_SYMBOL_GPL vmlinux 0x91fc3552 crypto_init_ahash_spawn +EXPORT_SYMBOL_GPL vmlinux 0x920aacca nl_table_lock +EXPORT_SYMBOL_GPL vmlinux 0x920f695a snd_soc_cache_read +EXPORT_SYMBOL_GPL vmlinux 0x924161c8 mtd_get_user_prot_info +EXPORT_SYMBOL_GPL vmlinux 0x924c46f8 zs_unmap_object +EXPORT_SYMBOL_GPL vmlinux 0x92b57248 flush_work +EXPORT_SYMBOL_GPL vmlinux 0x92b5758a mnt_drop_write +EXPORT_SYMBOL_GPL vmlinux 0x92d31cfb fixed_phy_add +EXPORT_SYMBOL_GPL vmlinux 0x930ed9b9 of_usb_get_dr_mode +EXPORT_SYMBOL_GPL vmlinux 0x9312d80e evtchn_put +EXPORT_SYMBOL_GPL vmlinux 0x9328301c dev_pm_qos_hide_flags +EXPORT_SYMBOL_GPL vmlinux 0x934c8c56 debugfs_rename +EXPORT_SYMBOL_GPL vmlinux 0x9354cd33 __blkdev_driver_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x9371b8ab fib_rules_lookup +EXPORT_SYMBOL_GPL vmlinux 0x9376c91d kvm_vcpu_uninit +EXPORT_SYMBOL_GPL vmlinux 0x939049e2 ata_sff_postreset +EXPORT_SYMBOL_GPL vmlinux 0x93b8e0db da9052_adc_manual_read +EXPORT_SYMBOL_GPL vmlinux 0x93cd3500 tty_prepare_flip_string_flags +EXPORT_SYMBOL_GPL vmlinux 0x93d2422d snmp_mib_free +EXPORT_SYMBOL_GPL vmlinux 0x93e0eb4d amba_device_put +EXPORT_SYMBOL_GPL vmlinux 0x93e7dbf3 rt_mutex_unlock +EXPORT_SYMBOL_GPL vmlinux 0x94118071 debugfs_create_u8 +EXPORT_SYMBOL_GPL vmlinux 0x941f2aaa eventfd_ctx_put +EXPORT_SYMBOL_GPL vmlinux 0x942d49fd dma_buf_end_cpu_access +EXPORT_SYMBOL_GPL vmlinux 0x943a78cf cgroup_next_descendant_pre +EXPORT_SYMBOL_GPL vmlinux 0x943fc708 xen_setup_shutdown_event +EXPORT_SYMBOL_GPL vmlinux 0x9450a499 snd_soc_dapm_disable_pin +EXPORT_SYMBOL_GPL vmlinux 0x9458d0c4 ata_port_wait_eh +EXPORT_SYMBOL_GPL vmlinux 0x9463ff71 init_bch +EXPORT_SYMBOL_GPL vmlinux 0x94711055 virtqueue_enable_cb_prepare +EXPORT_SYMBOL_GPL vmlinux 0x948476a6 bsg_request_fn +EXPORT_SYMBOL_GPL vmlinux 0x948a1ca4 ip6_flush_pending_frames +EXPORT_SYMBOL_GPL vmlinux 0x94a68723 ata_scsi_slave_destroy +EXPORT_SYMBOL_GPL vmlinux 0x94abb745 sprint_oid +EXPORT_SYMBOL_GPL vmlinux 0x94e1823c hrtimer_start +EXPORT_SYMBOL_GPL vmlinux 0x94e8cd13 xenbus_frontend_closed +EXPORT_SYMBOL_GPL vmlinux 0x94f61af0 snd_soc_dapm_put_value_enum_double +EXPORT_SYMBOL_GPL vmlinux 0x950f222f devm_of_pwm_get +EXPORT_SYMBOL_GPL vmlinux 0x952664c5 do_exit +EXPORT_SYMBOL_GPL vmlinux 0x9528f97f mtd_write_user_prot_reg +EXPORT_SYMBOL_GPL vmlinux 0x955b0e2e kthread_worker_fn +EXPORT_SYMBOL_GPL vmlinux 0x956a91ba gpio_get_value_cansleep +EXPORT_SYMBOL_GPL vmlinux 0x9575ab48 da903x_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x958d3467 usb_kill_urb +EXPORT_SYMBOL_GPL vmlinux 0x958df3ac zs_free +EXPORT_SYMBOL_GPL vmlinux 0x9593d904 dev_get_regmap +EXPORT_SYMBOL_GPL vmlinux 0x95a5d454 sync_page_io +EXPORT_SYMBOL_GPL vmlinux 0x95d963fd ahci_stop_engine +EXPORT_SYMBOL_GPL vmlinux 0x95e1e971 bus_for_each_dev +EXPORT_SYMBOL_GPL vmlinux 0x95f6ee15 unregister_jprobes +EXPORT_SYMBOL_GPL vmlinux 0x9620bf13 __sock_recv_wifi_status +EXPORT_SYMBOL_GPL vmlinux 0x9621849f ring_buffer_event_data +EXPORT_SYMBOL_GPL vmlinux 0x963592fa xenbus_watch_pathfmt +EXPORT_SYMBOL_GPL vmlinux 0x964add15 xenbus_scanf +EXPORT_SYMBOL_GPL vmlinux 0x96554810 register_keyboard_notifier +EXPORT_SYMBOL_GPL vmlinux 0x9657edff inet_hashinfo_init +EXPORT_SYMBOL_GPL vmlinux 0x96a22790 vmcore_cleanup +EXPORT_SYMBOL_GPL vmlinux 0x96a469cf gfn_to_memslot +EXPORT_SYMBOL_GPL vmlinux 0x96a9f251 serial8250_clear_and_reinit_fifos +EXPORT_SYMBOL_GPL vmlinux 0x96b1711e skcipher_geniv_init +EXPORT_SYMBOL_GPL vmlinux 0x96ca7543 regmap_init_spi +EXPORT_SYMBOL_GPL vmlinux 0x96e38bc3 xfrm_inner_extract_output +EXPORT_SYMBOL_GPL vmlinux 0x97014ffd tpm_store_cancel +EXPORT_SYMBOL_GPL vmlinux 0x970b0376 unix_outq_len +EXPORT_SYMBOL_GPL vmlinux 0x971869e6 skb_partial_csum_set +EXPORT_SYMBOL_GPL vmlinux 0x97298abf sdio_enable_func +EXPORT_SYMBOL_GPL vmlinux 0x9745c52a of_fixed_clk_setup +EXPORT_SYMBOL_GPL vmlinux 0x976d7ea3 uart_insert_char +EXPORT_SYMBOL_GPL vmlinux 0x97704c40 hrtimer_try_to_cancel +EXPORT_SYMBOL_GPL vmlinux 0x9791bb5c ata_port_schedule_eh +EXPORT_SYMBOL_GPL vmlinux 0x97a358be nl_table +EXPORT_SYMBOL_GPL vmlinux 0x97a3ec56 ata_sff_queue_delayed_work +EXPORT_SYMBOL_GPL vmlinux 0x97de2b83 debug_locks_silent +EXPORT_SYMBOL_GPL vmlinux 0x97f6ca6a snd_soc_dapm_get_enum_virt +EXPORT_SYMBOL_GPL vmlinux 0x97febe61 devm_kzalloc +EXPORT_SYMBOL_GPL vmlinux 0x98202095 of_init_opp_table +EXPORT_SYMBOL_GPL vmlinux 0x9833bc0c hvc_kick +EXPORT_SYMBOL_GPL vmlinux 0x983fd966 spi_master_resume +EXPORT_SYMBOL_GPL vmlinux 0x984dea13 usb_add_phy_dev +EXPORT_SYMBOL_GPL vmlinux 0x98503a63 mpi_alloc +EXPORT_SYMBOL_GPL vmlinux 0x9864bfc5 dma_buf_unmap_attachment +EXPORT_SYMBOL_GPL vmlinux 0x9879932b crypto_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x9883cc8e tcp_twsk_destructor +EXPORT_SYMBOL_GPL vmlinux 0x9894c452 spi_async +EXPORT_SYMBOL_GPL vmlinux 0x9896e542 rtnl_link_unregister +EXPORT_SYMBOL_GPL vmlinux 0x98afdf9e driver_attach +EXPORT_SYMBOL_GPL vmlinux 0x98c9f584 klist_init +EXPORT_SYMBOL_GPL vmlinux 0x98cc564a regulator_set_voltage +EXPORT_SYMBOL_GPL vmlinux 0x98f2563d napi_hash_add +EXPORT_SYMBOL_GPL vmlinux 0x990c0329 blkg_prfill_stat +EXPORT_SYMBOL_GPL vmlinux 0x991484c4 of_property_count_strings +EXPORT_SYMBOL_GPL vmlinux 0x991ea519 get_task_mm +EXPORT_SYMBOL_GPL vmlinux 0x9924c496 __usb_get_extra_descriptor +EXPORT_SYMBOL_GPL vmlinux 0x99343b2c mmput +EXPORT_SYMBOL_GPL vmlinux 0x995d1071 prof_on +EXPORT_SYMBOL_GPL vmlinux 0x9968a838 scsi_mode_select +EXPORT_SYMBOL_GPL vmlinux 0x999a94df netdev_rx_handler_register +EXPORT_SYMBOL_GPL vmlinux 0x99f88e78 evm_inode_init_security +EXPORT_SYMBOL_GPL vmlinux 0x9a11a0fc crypto_attr_alg_name +EXPORT_SYMBOL_GPL vmlinux 0x9a13c744 ata_sff_tf_load +EXPORT_SYMBOL_GPL vmlinux 0x9a403785 ata_bmdma_status +EXPORT_SYMBOL_GPL vmlinux 0x9a610726 tpm_show_temp_deactivated +EXPORT_SYMBOL_GPL vmlinux 0x9a7da1fb dm_set_target_max_io_len +EXPORT_SYMBOL_GPL vmlinux 0x9a89dbf7 lpddr2_jedec_min_tck +EXPORT_SYMBOL_GPL vmlinux 0x9a9fb8e2 virtqueue_kick_prepare +EXPORT_SYMBOL_GPL vmlinux 0x9ac11b74 suspend_set_ops +EXPORT_SYMBOL_GPL vmlinux 0x9aca444b get_monotonic_boottime +EXPORT_SYMBOL_GPL vmlinux 0x9aeacb87 ring_buffer_iter_empty +EXPORT_SYMBOL_GPL vmlinux 0x9b0c3340 get_cpu_device +EXPORT_SYMBOL_GPL vmlinux 0x9b0e9c58 pm_generic_poweroff_noirq +EXPORT_SYMBOL_GPL vmlinux 0x9b15b13f sata_async_notification +EXPORT_SYMBOL_GPL vmlinux 0x9b1ebdb7 irq_find_mapping +EXPORT_SYMBOL_GPL vmlinux 0x9b6f61cd device_pm_wait_for_dev +EXPORT_SYMBOL_GPL vmlinux 0x9b7df6a5 usb_put_phy +EXPORT_SYMBOL_GPL vmlinux 0x9b8d6962 proc_get_parent_data +EXPORT_SYMBOL_GPL vmlinux 0x9bd2f283 ata_dev_set_feature +EXPORT_SYMBOL_GPL vmlinux 0x9bdaa103 usb_hc_died +EXPORT_SYMBOL_GPL vmlinux 0x9bece81b mpi_cmp_ui +EXPORT_SYMBOL_GPL vmlinux 0x9bf9ec40 kvm_resched +EXPORT_SYMBOL_GPL vmlinux 0x9c11ac91 snd_soc_put_volsw +EXPORT_SYMBOL_GPL vmlinux 0x9c2437c3 unregister_virtio_device +EXPORT_SYMBOL_GPL vmlinux 0x9c2d924c snd_soc_dai_set_pll +EXPORT_SYMBOL_GPL vmlinux 0x9c34a3ea scsi_autopm_put_device +EXPORT_SYMBOL_GPL vmlinux 0x9c3f9ce3 blk_queue_rq_timeout +EXPORT_SYMBOL_GPL vmlinux 0x9c576e57 __init_kthread_worker +EXPORT_SYMBOL_GPL vmlinux 0x9c5fa769 ata_dev_pair +EXPORT_SYMBOL_GPL vmlinux 0x9c7d834c register_kretprobes +EXPORT_SYMBOL_GPL vmlinux 0x9c86ede0 fs_kobj +EXPORT_SYMBOL_GPL vmlinux 0x9c943f71 ftrace_event_reg +EXPORT_SYMBOL_GPL vmlinux 0x9cbe0f82 regulator_map_voltage_iterate +EXPORT_SYMBOL_GPL vmlinux 0x9cc0258f __sock_recv_ts_and_drops +EXPORT_SYMBOL_GPL vmlinux 0x9cc4f70a register_pm_notifier +EXPORT_SYMBOL_GPL vmlinux 0x9cdfeb2b __module_address +EXPORT_SYMBOL_GPL vmlinux 0x9ce88add regmap_update_bits +EXPORT_SYMBOL_GPL vmlinux 0x9d06688b register_xenbus_watch +EXPORT_SYMBOL_GPL vmlinux 0x9d0dbc0e unregister_kprobe +EXPORT_SYMBOL_GPL vmlinux 0x9d16ace9 usbmisc_unset_ops +EXPORT_SYMBOL_GPL vmlinux 0x9d3850e1 gnttab_alloc_grant_references +EXPORT_SYMBOL_GPL vmlinux 0x9d5115c8 ata_wait_after_reset +EXPORT_SYMBOL_GPL vmlinux 0x9d8331c0 ring_buffer_read_page +EXPORT_SYMBOL_GPL vmlinux 0x9d9df0fd crypto_ablkcipher_type +EXPORT_SYMBOL_GPL vmlinux 0x9da80a60 split_page +EXPORT_SYMBOL_GPL vmlinux 0x9da8d3b2 snd_soc_dapm_nc_pin +EXPORT_SYMBOL_GPL vmlinux 0x9dcceb58 find_module +EXPORT_SYMBOL_GPL vmlinux 0x9de23507 register_mtd_blktrans +EXPORT_SYMBOL_GPL vmlinux 0x9df7f4a0 xenbus_probe_node +EXPORT_SYMBOL_GPL vmlinux 0x9dfdf722 gpio_free_array +EXPORT_SYMBOL_GPL vmlinux 0x9e47bad7 vring_new_virtqueue +EXPORT_SYMBOL_GPL vmlinux 0x9e58e173 inet_twsk_purge +EXPORT_SYMBOL_GPL vmlinux 0x9ed554b3 unregister_keyboard_notifier +EXPORT_SYMBOL_GPL vmlinux 0x9ed557b6 ata_sff_wait_after_reset +EXPORT_SYMBOL_GPL vmlinux 0x9edae252 trace_event_raw_init +EXPORT_SYMBOL_GPL vmlinux 0x9ee37756 pm_generic_resume_noirq +EXPORT_SYMBOL_GPL vmlinux 0x9eeed2ab sata_std_hardreset +EXPORT_SYMBOL_GPL vmlinux 0x9ef06e8a snd_pcm_add_chmap_ctls +EXPORT_SYMBOL_GPL vmlinux 0x9eff8740 ahci_kick_engine +EXPORT_SYMBOL_GPL vmlinux 0x9f0664bf dm_get_queue_limits +EXPORT_SYMBOL_GPL vmlinux 0x9f0f62f3 public_key_subtype +EXPORT_SYMBOL_GPL vmlinux 0x9f1e0b52 device_store_bool +EXPORT_SYMBOL_GPL vmlinux 0x9f3f98e1 of_get_nand_on_flash_bbt +EXPORT_SYMBOL_GPL vmlinux 0x9f517986 HYPERVISOR_hvm_op +EXPORT_SYMBOL_GPL vmlinux 0x9f66f10f md_trim_bio +EXPORT_SYMBOL_GPL vmlinux 0x9f6cddbb kvm_write_guest_page +EXPORT_SYMBOL_GPL vmlinux 0x9f9d15ea cgroup_taskset_next +EXPORT_SYMBOL_GPL vmlinux 0x9fa5f19e power_supply_register +EXPORT_SYMBOL_GPL vmlinux 0x9fce80db fb_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x9fd12ef8 __put_task_struct +EXPORT_SYMBOL_GPL vmlinux 0x9fdf7594 tps6586x_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x9fe939e1 mpi_powm +EXPORT_SYMBOL_GPL vmlinux 0x9feaac24 snd_soc_update_bits_locked +EXPORT_SYMBOL_GPL vmlinux 0xa004a424 snd_soc_unregister_platform +EXPORT_SYMBOL_GPL vmlinux 0xa01c21b2 yield_to +EXPORT_SYMBOL_GPL vmlinux 0xa02e8a2b sock_diag_unregister +EXPORT_SYMBOL_GPL vmlinux 0xa05166aa get_task_pid +EXPORT_SYMBOL_GPL vmlinux 0xa052b60c xfrm_output_resume +EXPORT_SYMBOL_GPL vmlinux 0xa05fdab6 led_trigger_unregister_simple +EXPORT_SYMBOL_GPL vmlinux 0xa05fedc4 __get_vm_area +EXPORT_SYMBOL_GPL vmlinux 0xa060a4dc vfs_removexattr +EXPORT_SYMBOL_GPL vmlinux 0xa064f393 ehci_cf_port_reset_rwsem +EXPORT_SYMBOL_GPL vmlinux 0xa07538a7 snd_soc_get_dai_substream +EXPORT_SYMBOL_GPL vmlinux 0xa0b5eb5a bsg_setup_queue +EXPORT_SYMBOL_GPL vmlinux 0xa0cedb77 subsys_interface_unregister +EXPORT_SYMBOL_GPL vmlinux 0xa0d9ff66 platform_device_alloc +EXPORT_SYMBOL_GPL vmlinux 0xa0fe8a94 cpuidle_register_driver +EXPORT_SYMBOL_GPL vmlinux 0xa11216be xen_store_domain_type +EXPORT_SYMBOL_GPL vmlinux 0xa1255452 thermal_zone_bind_cooling_device +EXPORT_SYMBOL_GPL vmlinux 0xa12c2cf8 mtd_del_partition +EXPORT_SYMBOL_GPL vmlinux 0xa15a9440 snd_soc_dai_set_tdm_slot +EXPORT_SYMBOL_GPL vmlinux 0xa19c4beb snd_soc_poweroff +EXPORT_SYMBOL_GPL vmlinux 0xa1aa8adb sdhci_suspend_host +EXPORT_SYMBOL_GPL vmlinux 0xa1bd7822 __tracepoint_block_bio_complete +EXPORT_SYMBOL_GPL vmlinux 0xa1db7914 ata_sff_exec_command +EXPORT_SYMBOL_GPL vmlinux 0xa1e446ee usb_remove_hcd +EXPORT_SYMBOL_GPL vmlinux 0xa1f02cad crypto_alloc_instance +EXPORT_SYMBOL_GPL vmlinux 0xa206a6a6 dma_buf_mmap +EXPORT_SYMBOL_GPL vmlinux 0xa20a8f3c devm_usb_put_phy +EXPORT_SYMBOL_GPL vmlinux 0xa23b914c pwm_set_chip_data +EXPORT_SYMBOL_GPL vmlinux 0xa26c6c8d bus_get_kset +EXPORT_SYMBOL_GPL vmlinux 0xa26d9b4f workqueue_congested +EXPORT_SYMBOL_GPL vmlinux 0xa286a234 snd_pcm_format_name +EXPORT_SYMBOL_GPL vmlinux 0xa2c30a88 mtd_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0xa31e850f mount_mtd +EXPORT_SYMBOL_GPL vmlinux 0xa353fffc xenbus_rm +EXPORT_SYMBOL_GPL vmlinux 0xa377a455 gfn_to_page +EXPORT_SYMBOL_GPL vmlinux 0xa38160a2 usb_disable_autosuspend +EXPORT_SYMBOL_GPL vmlinux 0xa38602cd drain_workqueue +EXPORT_SYMBOL_GPL vmlinux 0xa389a49a profile_event_register +EXPORT_SYMBOL_GPL vmlinux 0xa3b9a2d4 ata_sff_qc_issue +EXPORT_SYMBOL_GPL vmlinux 0xa3df2e15 ahci_do_softreset +EXPORT_SYMBOL_GPL vmlinux 0xa3e7c113 ring_buffer_iter_peek +EXPORT_SYMBOL_GPL vmlinux 0xa40ee827 opp_find_freq_ceil +EXPORT_SYMBOL_GPL vmlinux 0xa40f8bfc crypto_lookup_skcipher +EXPORT_SYMBOL_GPL vmlinux 0xa42194f4 scsi_bus_type +EXPORT_SYMBOL_GPL vmlinux 0xa44afee4 wm8994_bulk_write +EXPORT_SYMBOL_GPL vmlinux 0xa452f2a4 xen_pirq_from_irq +EXPORT_SYMBOL_GPL vmlinux 0xa48196c8 kdb_poll_idx +EXPORT_SYMBOL_GPL vmlinux 0xa49fe8a6 __class_create +EXPORT_SYMBOL_GPL vmlinux 0xa4e7bafe fuse_abort_conn +EXPORT_SYMBOL_GPL vmlinux 0xa4ea04ee of_property_read_u64 +EXPORT_SYMBOL_GPL vmlinux 0xa5159c36 pm_runtime_set_autosuspend_delay +EXPORT_SYMBOL_GPL vmlinux 0xa524efc1 regulator_get_voltage_sel_regmap +EXPORT_SYMBOL_GPL vmlinux 0xa533316b user_update +EXPORT_SYMBOL_GPL vmlinux 0xa53be8ad iptunnel_xmit +EXPORT_SYMBOL_GPL vmlinux 0xa5510111 iptunnel_pull_header +EXPORT_SYMBOL_GPL vmlinux 0xa557b9ce css_id +EXPORT_SYMBOL_GPL vmlinux 0xa56f6201 vma_kernel_pagesize +EXPORT_SYMBOL_GPL vmlinux 0xa57c4c68 amba_ahb_device_add +EXPORT_SYMBOL_GPL vmlinux 0xa5aa9513 __pm_runtime_use_autosuspend +EXPORT_SYMBOL_GPL vmlinux 0xa5b053a6 blkg_conf_prep +EXPORT_SYMBOL_GPL vmlinux 0xa5efbf4c async_synchronize_full +EXPORT_SYMBOL_GPL vmlinux 0xa6028812 debugfs_remove +EXPORT_SYMBOL_GPL vmlinux 0xa61b1477 tracepoint_iter_start +EXPORT_SYMBOL_GPL vmlinux 0xa625110d kmsg_dump_rewind +EXPORT_SYMBOL_GPL vmlinux 0xa666ff8e cpuidle_unregister +EXPORT_SYMBOL_GPL vmlinux 0xa66f8149 regmap_async_complete +EXPORT_SYMBOL_GPL vmlinux 0xa6a0a273 max77693_write_reg +EXPORT_SYMBOL_GPL vmlinux 0xa6b12d35 snd_soc_cache_write +EXPORT_SYMBOL_GPL vmlinux 0xa6b21ef2 dpm_suspend_end +EXPORT_SYMBOL_GPL vmlinux 0xa6c6a3ff srcu_init_notifier_head +EXPORT_SYMBOL_GPL vmlinux 0xa6d37695 unregister_wide_hw_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0xa6e1a69d kick_all_cpus_sync +EXPORT_SYMBOL_GPL vmlinux 0xa6fad7ad snd_soc_jack_notifier_register +EXPORT_SYMBOL_GPL vmlinux 0xa717da74 vfs_cancel_lock +EXPORT_SYMBOL_GPL vmlinux 0xa7189bd7 ata_port_desc +EXPORT_SYMBOL_GPL vmlinux 0xa724257f init_uts_ns +EXPORT_SYMBOL_GPL vmlinux 0xa75312bc call_rcu_sched +EXPORT_SYMBOL_GPL vmlinux 0xa79a3ca8 snd_soc_pm_ops +EXPORT_SYMBOL_GPL vmlinux 0xa7d09dfb nfq_ct_nat_hook +EXPORT_SYMBOL_GPL vmlinux 0xa7d298e0 kvm_get_kvm +EXPORT_SYMBOL_GPL vmlinux 0xa7e20df3 clk_mux_ops +EXPORT_SYMBOL_GPL vmlinux 0xa7efbf62 __crypto_alloc_tfm +EXPORT_SYMBOL_GPL vmlinux 0xa7f92105 add_uevent_var +EXPORT_SYMBOL_GPL vmlinux 0xa835838e sdhci_remove_host +EXPORT_SYMBOL_GPL vmlinux 0xa840c7ca rtc_irq_set_freq +EXPORT_SYMBOL_GPL vmlinux 0xa851973a raw_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xa8524ce5 mmu_notifier_register +EXPORT_SYMBOL_GPL vmlinux 0xa8560d23 devm_regmap_init_spi +EXPORT_SYMBOL_GPL vmlinux 0xa8722af1 usb_ifnum_to_if +EXPORT_SYMBOL_GPL vmlinux 0xa8a92393 get_kernel_page +EXPORT_SYMBOL_GPL vmlinux 0xa8f59416 gpio_direction_output +EXPORT_SYMBOL_GPL vmlinux 0xa908aa02 adp5520_set_bits +EXPORT_SYMBOL_GPL vmlinux 0xa96448c9 wm8350_device_init +EXPORT_SYMBOL_GPL vmlinux 0xa96455d8 usb_hcd_resume_root_hub +EXPORT_SYMBOL_GPL vmlinux 0xa966a52f sysfs_schedule_callback +EXPORT_SYMBOL_GPL vmlinux 0xa966f4a7 crypto_register_instance +EXPORT_SYMBOL_GPL vmlinux 0xa9886e0d wait_for_stable_page +EXPORT_SYMBOL_GPL vmlinux 0xa9a82042 gnttab_trans_grants_available +EXPORT_SYMBOL_GPL vmlinux 0xa9aef2e1 gfn_to_hva_memslot +EXPORT_SYMBOL_GPL vmlinux 0xa9e18049 task_handoff_unregister +EXPORT_SYMBOL_GPL vmlinux 0xa9fc3f54 gnttab_grant_foreign_access_trans +EXPORT_SYMBOL_GPL vmlinux 0xaa055287 sysfs_merge_group +EXPORT_SYMBOL_GPL vmlinux 0xaa05eb1b fat_fill_super +EXPORT_SYMBOL_GPL vmlinux 0xaa2a72bf __iowrite64_copy +EXPORT_SYMBOL_GPL vmlinux 0xaa3b5c1c blk_queue_dma_drain +EXPORT_SYMBOL_GPL vmlinux 0xaa71f2bc power_supply_get_by_name +EXPORT_SYMBOL_GPL vmlinux 0xaa83c70e init_dummy_netdev +EXPORT_SYMBOL_GPL vmlinux 0xaa8d8b41 disk_map_sector_rcu +EXPORT_SYMBOL_GPL vmlinux 0xaa8e9800 crypto_alg_mod_lookup +EXPORT_SYMBOL_GPL vmlinux 0xaaa918c9 ftrace_dump +EXPORT_SYMBOL_GPL vmlinux 0xaab45034 alarm_forward_now +EXPORT_SYMBOL_GPL vmlinux 0xaae1f4da class_dev_iter_next +EXPORT_SYMBOL_GPL vmlinux 0xaaff7ba2 mddev_resume +EXPORT_SYMBOL_GPL vmlinux 0xab01acbe gnttab_request_free_callback +EXPORT_SYMBOL_GPL vmlinux 0xab067b90 __netpoll_setup +EXPORT_SYMBOL_GPL vmlinux 0xab1db1eb mtd_table_mutex +EXPORT_SYMBOL_GPL vmlinux 0xab1effac wm8350_gpio_config +EXPORT_SYMBOL_GPL vmlinux 0xab32ddac gpiochip_remove +EXPORT_SYMBOL_GPL vmlinux 0xab615192 device_destroy +EXPORT_SYMBOL_GPL vmlinux 0xab6babaf pm_qos_request +EXPORT_SYMBOL_GPL vmlinux 0xab798823 ahci_sdev_attrs +EXPORT_SYMBOL_GPL vmlinux 0xab8ceced gnttab_batch_copy +EXPORT_SYMBOL_GPL vmlinux 0xab93d26a eventfd_ctx_fileget +EXPORT_SYMBOL_GPL vmlinux 0xabca66a4 nf_queue_entry_get_refs +EXPORT_SYMBOL_GPL vmlinux 0xabda1e2e decode_rs16 +EXPORT_SYMBOL_GPL vmlinux 0xabf23874 ci_hdrc_add_device +EXPORT_SYMBOL_GPL vmlinux 0xac4b688b bd_link_disk_holder +EXPORT_SYMBOL_GPL vmlinux 0xac656875 ohci_suspend +EXPORT_SYMBOL_GPL vmlinux 0xac882e05 sata_set_spd +EXPORT_SYMBOL_GPL vmlinux 0xac8aa504 snd_soc_unregister_card +EXPORT_SYMBOL_GPL vmlinux 0xacc76ac1 rdev_get_drvdata +EXPORT_SYMBOL_GPL vmlinux 0xace5c0fc usb_bus_list +EXPORT_SYMBOL_GPL vmlinux 0xacf17755 snd_soc_get_volsw_s8 +EXPORT_SYMBOL_GPL vmlinux 0xacfe5418 ip4_datagram_release_cb +EXPORT_SYMBOL_GPL vmlinux 0xacff4a22 dapm_mark_dirty +EXPORT_SYMBOL_GPL vmlinux 0xad139876 usbmisc_set_ops +EXPORT_SYMBOL_GPL vmlinux 0xad38ee24 ata_sas_port_async_suspend +EXPORT_SYMBOL_GPL vmlinux 0xad5a6715 clk_prepare +EXPORT_SYMBOL_GPL vmlinux 0xad8f9554 regcache_mark_dirty +EXPORT_SYMBOL_GPL vmlinux 0xad99bb97 tty_put_char +EXPORT_SYMBOL_GPL vmlinux 0xada38534 regulator_bulk_disable +EXPORT_SYMBOL_GPL vmlinux 0xadc785ec kgdb_register_io_module +EXPORT_SYMBOL_GPL vmlinux 0xadec7544 snd_soc_read +EXPORT_SYMBOL_GPL vmlinux 0xadf6aa4d tpm_pcr_read +EXPORT_SYMBOL_GPL vmlinux 0xadf8ad02 usb_hub_clear_tt_buffer +EXPORT_SYMBOL_GPL vmlinux 0xadfda18c platform_bus +EXPORT_SYMBOL_GPL vmlinux 0xae0f6b4e regulator_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0xae14eddd ata_eh_qc_complete +EXPORT_SYMBOL_GPL vmlinux 0xae188f61 tpm_show_caps_1_2 +EXPORT_SYMBOL_GPL vmlinux 0xae401066 rt_mutex_lock_interruptible +EXPORT_SYMBOL_GPL vmlinux 0xae69b1c1 usermodehelper_read_unlock +EXPORT_SYMBOL_GPL vmlinux 0xae6b3096 ata_sas_scsi_ioctl +EXPORT_SYMBOL_GPL vmlinux 0xae7c231d mpi_cmp +EXPORT_SYMBOL_GPL vmlinux 0xae9d7061 usb_free_streams +EXPORT_SYMBOL_GPL vmlinux 0xaea960b1 sec_reg_update +EXPORT_SYMBOL_GPL vmlinux 0xaed69690 __page_file_mapping +EXPORT_SYMBOL_GPL vmlinux 0xaee7647c stmpe_block_write +EXPORT_SYMBOL_GPL vmlinux 0xaef67399 sata_pmp_port_ops +EXPORT_SYMBOL_GPL vmlinux 0xaefbb37b __inet_lookup_established +EXPORT_SYMBOL_GPL vmlinux 0xaf08bb17 sock_diag_register +EXPORT_SYMBOL_GPL vmlinux 0xaf30a508 get_kernel_pages +EXPORT_SYMBOL_GPL vmlinux 0xaf348da7 cpu_pm_exit +EXPORT_SYMBOL_GPL vmlinux 0xaf72a687 ablkcipher_walk_done +EXPORT_SYMBOL_GPL vmlinux 0xaf8da239 fat_sync_inode +EXPORT_SYMBOL_GPL vmlinux 0xafd2c8ac simple_attr_release +EXPORT_SYMBOL_GPL vmlinux 0xafeda390 sysfs_rename_link +EXPORT_SYMBOL_GPL vmlinux 0xaff77868 skb_cow_data +EXPORT_SYMBOL_GPL vmlinux 0xb0181924 __mmdrop +EXPORT_SYMBOL_GPL vmlinux 0xb02ac411 register_xenstore_notifier +EXPORT_SYMBOL_GPL vmlinux 0xb03cb66a usb_disable_ltm +EXPORT_SYMBOL_GPL vmlinux 0xb050f329 init_rs +EXPORT_SYMBOL_GPL vmlinux 0xb082cad7 ahci_pmp_retry_srst_ops +EXPORT_SYMBOL_GPL vmlinux 0xb083a173 usb_free_coherent +EXPORT_SYMBOL_GPL vmlinux 0xb09bc343 subsys_virtual_register +EXPORT_SYMBOL_GPL vmlinux 0xb0b85f47 ring_buffer_iter_reset +EXPORT_SYMBOL_GPL vmlinux 0xb0d4f898 ahci_fill_cmd_slot +EXPORT_SYMBOL_GPL vmlinux 0xb0f567cd ata_host_alloc_pinfo +EXPORT_SYMBOL_GPL vmlinux 0xb0fb01b7 perf_pmu_migrate_context +EXPORT_SYMBOL_GPL vmlinux 0xb10d55bc cn_netlink_send +EXPORT_SYMBOL_GPL vmlinux 0xb132654c unregister_ftrace_event +EXPORT_SYMBOL_GPL vmlinux 0xb140d14c ring_buffer_read +EXPORT_SYMBOL_GPL vmlinux 0xb1425b32 dm_table_add_target_callbacks +EXPORT_SYMBOL_GPL vmlinux 0xb14cc5d8 virtqueue_notify +EXPORT_SYMBOL_GPL vmlinux 0xb15261c3 dev_attr_unload_heads +EXPORT_SYMBOL_GPL vmlinux 0xb17d98a6 serial8250_tx_dma +EXPORT_SYMBOL_GPL vmlinux 0xb18429eb suspend_device_irqs +EXPORT_SYMBOL_GPL vmlinux 0xb196bdde xenbus_watch_path +EXPORT_SYMBOL_GPL vmlinux 0xb1a4cf45 snd_soc_dapm_get_volsw +EXPORT_SYMBOL_GPL vmlinux 0xb1acbcce rcu_barrier_sched +EXPORT_SYMBOL_GPL vmlinux 0xb1bed25d dpm_resume_start +EXPORT_SYMBOL_GPL vmlinux 0xb1c0c1c2 async_schedule_domain +EXPORT_SYMBOL_GPL vmlinux 0xb1d9ccc6 sched_setscheduler +EXPORT_SYMBOL_GPL vmlinux 0xb1dde1d6 driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0xb1e25684 __trace_bputs +EXPORT_SYMBOL_GPL vmlinux 0xb2210d64 reset_control_deassert +EXPORT_SYMBOL_GPL vmlinux 0xb225b98d pm_generic_thaw_early +EXPORT_SYMBOL_GPL vmlinux 0xb23b6684 spi_busnum_to_master +EXPORT_SYMBOL_GPL vmlinux 0xb263d37d class_create_file +EXPORT_SYMBOL_GPL vmlinux 0xb265940d regmap_bulk_write +EXPORT_SYMBOL_GPL vmlinux 0xb2a8d37b __netpoll_free_async +EXPORT_SYMBOL_GPL vmlinux 0xb2a94798 pid_vnr +EXPORT_SYMBOL_GPL vmlinux 0xb2b0a196 ata_timing_compute +EXPORT_SYMBOL_GPL vmlinux 0xb2e4e8ba irq_domain_simple_ops +EXPORT_SYMBOL_GPL vmlinux 0xb2e764e8 suspend_valid_only_mem +EXPORT_SYMBOL_GPL vmlinux 0xb2f23b48 snd_soc_dapm_mux_update_power +EXPORT_SYMBOL_GPL vmlinux 0xb313ab23 tty_prepare_flip_string +EXPORT_SYMBOL_GPL vmlinux 0xb322fb06 thermal_zone_get_temp +EXPORT_SYMBOL_GPL vmlinux 0xb337719a exportfs_encode_fh +EXPORT_SYMBOL_GPL vmlinux 0xb33899f8 sync_filesystem +EXPORT_SYMBOL_GPL vmlinux 0xb350f190 clk_set_parent +EXPORT_SYMBOL_GPL vmlinux 0xb35502d3 tps6586x_write +EXPORT_SYMBOL_GPL vmlinux 0xb36f15af register_pernet_subsys +EXPORT_SYMBOL_GPL vmlinux 0xb375e700 crypto_mod_put +EXPORT_SYMBOL_GPL vmlinux 0xb3794e7f snd_soc_dai_digital_mute +EXPORT_SYMBOL_GPL vmlinux 0xb37daad9 stmpe_set_altfunc +EXPORT_SYMBOL_GPL vmlinux 0xb38c00b7 ata_link_abort +EXPORT_SYMBOL_GPL vmlinux 0xb3ccaa5e pm_generic_thaw +EXPORT_SYMBOL_GPL vmlinux 0xb3cd3f3f regmap_field_read +EXPORT_SYMBOL_GPL vmlinux 0xb4207d88 irq_create_strict_mappings +EXPORT_SYMBOL_GPL vmlinux 0xb43332d1 irq_alloc_domain_generic_chips +EXPORT_SYMBOL_GPL vmlinux 0xb4387973 shash_ahash_digest +EXPORT_SYMBOL_GPL vmlinux 0xb457b281 tpm_show_timeouts +EXPORT_SYMBOL_GPL vmlinux 0xb466d3c1 xenbus_switch_state +EXPORT_SYMBOL_GPL vmlinux 0xb48013b8 devm_clk_register +EXPORT_SYMBOL_GPL vmlinux 0xb49a46c5 snd_soc_get_volsw_range +EXPORT_SYMBOL_GPL vmlinux 0xb4b97c90 pvclock_gtod_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0xb4c735af device_rename +EXPORT_SYMBOL_GPL vmlinux 0xb4d8a941 snd_soc_suspend +EXPORT_SYMBOL_GPL vmlinux 0xb4e14553 gnttab_query_foreign_access +EXPORT_SYMBOL_GPL vmlinux 0xb4e5fc05 alarm_try_to_cancel +EXPORT_SYMBOL_GPL vmlinux 0xb4ea7cf7 kgdb_connected +EXPORT_SYMBOL_GPL vmlinux 0xb516bb4c snd_soc_codec_set_pll +EXPORT_SYMBOL_GPL vmlinux 0xb51fbd64 edac_op_state +EXPORT_SYMBOL_GPL vmlinux 0xb5263f58 module_mutex +EXPORT_SYMBOL_GPL vmlinux 0xb53aa5c7 get_device +EXPORT_SYMBOL_GPL vmlinux 0xb55dd808 devres_close_group +EXPORT_SYMBOL_GPL vmlinux 0xb5884e82 __pm_runtime_resume +EXPORT_SYMBOL_GPL vmlinux 0xb58dcfa2 synchronize_sched_expedited +EXPORT_SYMBOL_GPL vmlinux 0xb5a0e11e lpddr2_jedec_addressing_table +EXPORT_SYMBOL_GPL vmlinux 0xb5aecacf pwm_can_sleep +EXPORT_SYMBOL_GPL vmlinux 0xb5be4d05 snd_soc_cnew +EXPORT_SYMBOL_GPL vmlinux 0xb5cb8145 hrtimer_get_res +EXPORT_SYMBOL_GPL vmlinux 0xb5da69ed driver_find_device +EXPORT_SYMBOL_GPL vmlinux 0xb5e22d65 aead_geniv_alloc +EXPORT_SYMBOL_GPL vmlinux 0xb5e35823 __mnt_is_readonly +EXPORT_SYMBOL_GPL vmlinux 0xb5e896fb tpm_get_random +EXPORT_SYMBOL_GPL vmlinux 0xb5f17edf perf_register_guest_info_callbacks +EXPORT_SYMBOL_GPL vmlinux 0xb5f4540c usb_reset_configuration +EXPORT_SYMBOL_GPL vmlinux 0xb60ab2ba wm831x_bulk_read +EXPORT_SYMBOL_GPL vmlinux 0xb6230f1f gnttab_grant_foreign_access +EXPORT_SYMBOL_GPL vmlinux 0xb6261484 register_die_notifier +EXPORT_SYMBOL_GPL vmlinux 0xb64d8d2e fixed_phy_set_link_update +EXPORT_SYMBOL_GPL vmlinux 0xb671a841 usb_deregister_device_driver +EXPORT_SYMBOL_GPL vmlinux 0xb67b2219 cm_suspend_again +EXPORT_SYMBOL_GPL vmlinux 0xb67c64fd __tracepoint_kfree_skb +EXPORT_SYMBOL_GPL vmlinux 0xb6a47fb4 clockevent_delta2ns +EXPORT_SYMBOL_GPL vmlinux 0xb6aeb661 ata_id_c_string +EXPORT_SYMBOL_GPL vmlinux 0xb6c635af wm5110_i2c_regmap +EXPORT_SYMBOL_GPL vmlinux 0xb6efe143 snd_soc_update_bits +EXPORT_SYMBOL_GPL vmlinux 0xb70f8bae fsstack_copy_attr_all +EXPORT_SYMBOL_GPL vmlinux 0xb74c417a pm_runtime_forbid +EXPORT_SYMBOL_GPL vmlinux 0xb790660d do_take_over_console +EXPORT_SYMBOL_GPL vmlinux 0xb7a998c8 ata_bmdma_port_intr +EXPORT_SYMBOL_GPL vmlinux 0xb7d23f24 power_supply_set_battery_charged +EXPORT_SYMBOL_GPL vmlinux 0xb7d7bbdf driver_create_file +EXPORT_SYMBOL_GPL vmlinux 0xb7e889fb del_mtd_blktrans_dev +EXPORT_SYMBOL_GPL vmlinux 0xb7f5cf9e usb_queue_reset_device +EXPORT_SYMBOL_GPL vmlinux 0xb7f77027 rtc_tm_to_ktime +EXPORT_SYMBOL_GPL vmlinux 0xb8562aec eventfd_fget +EXPORT_SYMBOL_GPL vmlinux 0xb86176c7 skb_scrub_packet +EXPORT_SYMBOL_GPL vmlinux 0xb87c26ac ping_seq_next +EXPORT_SYMBOL_GPL vmlinux 0xb88599b0 ata_slave_link_init +EXPORT_SYMBOL_GPL vmlinux 0xb89ac7ad snd_soc_dapm_put_enum_double +EXPORT_SYMBOL_GPL vmlinux 0xb8ef8bc3 inet_csk_reqsk_queue_hash_add +EXPORT_SYMBOL_GPL vmlinux 0xb9001a7c device_show_ulong +EXPORT_SYMBOL_GPL vmlinux 0xb9089651 dev_pm_put_subsys_data +EXPORT_SYMBOL_GPL vmlinux 0xb9157a9e trace_define_field +EXPORT_SYMBOL_GPL vmlinux 0xb9176155 asn1_ber_decoder +EXPORT_SYMBOL_GPL vmlinux 0xb959268b ip6_sk_dst_lookup_flow +EXPORT_SYMBOL_GPL vmlinux 0xb9630cb5 xenbus_dev_remove +EXPORT_SYMBOL_GPL vmlinux 0xb99d5837 xenbus_read +EXPORT_SYMBOL_GPL vmlinux 0xb9b6c815 stmpe_reg_read +EXPORT_SYMBOL_GPL vmlinux 0xb9c425de register_syscore_ops +EXPORT_SYMBOL_GPL vmlinux 0xb9d025c9 llist_del_first +EXPORT_SYMBOL_GPL vmlinux 0xb9da2997 snmp_fold_field64 +EXPORT_SYMBOL_GPL vmlinux 0xb9f2c1a7 devm_kfree +EXPORT_SYMBOL_GPL vmlinux 0xb9fc129f regmap_raw_write +EXPORT_SYMBOL_GPL vmlinux 0xba1b3a45 uart_handle_cts_change +EXPORT_SYMBOL_GPL vmlinux 0xba59b381 regmap_field_alloc +EXPORT_SYMBOL_GPL vmlinux 0xba8391a7 task_cgroup_path +EXPORT_SYMBOL_GPL vmlinux 0xbab40001 dm_dispatch_request +EXPORT_SYMBOL_GPL vmlinux 0xbaf719c2 snd_soc_dapm_force_enable_pin +EXPORT_SYMBOL_GPL vmlinux 0xbb038ce4 perf_unregister_guest_info_callbacks +EXPORT_SYMBOL_GPL vmlinux 0xbb0ab47b debug_locks +EXPORT_SYMBOL_GPL vmlinux 0xbb0fa825 tty_standard_install +EXPORT_SYMBOL_GPL vmlinux 0xbb11cfba klist_iter_exit +EXPORT_SYMBOL_GPL vmlinux 0xbb1c2459 usb_hcd_is_primary_hcd +EXPORT_SYMBOL_GPL vmlinux 0xbb2c6c02 usb_block_urb +EXPORT_SYMBOL_GPL vmlinux 0xbb348ffd blk_end_request_err +EXPORT_SYMBOL_GPL vmlinux 0xbb644cd6 ata_sas_port_start +EXPORT_SYMBOL_GPL vmlinux 0xbb80d00c crypto_unregister_shash +EXPORT_SYMBOL_GPL vmlinux 0xbba5b301 shash_free_instance +EXPORT_SYMBOL_GPL vmlinux 0xbc4c8ba0 of_pwm_xlate_with_flags +EXPORT_SYMBOL_GPL vmlinux 0xbc5a9030 crypto_alloc_aead +EXPORT_SYMBOL_GPL vmlinux 0xbc8868e5 class_compat_create_link +EXPORT_SYMBOL_GPL vmlinux 0xbc94b537 serial8250_modem_status +EXPORT_SYMBOL_GPL vmlinux 0xbc9e70d2 invalidate_inode_pages2 +EXPORT_SYMBOL_GPL vmlinux 0xbcac6160 pm_qos_remove_notifier +EXPORT_SYMBOL_GPL vmlinux 0xbcaf3971 crypto_alg_sem +EXPORT_SYMBOL_GPL vmlinux 0xbcb1998f sk_unattached_filter_destroy +EXPORT_SYMBOL_GPL vmlinux 0xbcbaa80a __wake_up_locked_key +EXPORT_SYMBOL_GPL vmlinux 0xbcc4227b scatterwalk_done +EXPORT_SYMBOL_GPL vmlinux 0xbccfd4d8 register_oldmem_pfn_is_ram +EXPORT_SYMBOL_GPL vmlinux 0xbcd29232 sdio_writeb_readb +EXPORT_SYMBOL_GPL vmlinux 0xbce51f3a ata_sff_thaw +EXPORT_SYMBOL_GPL vmlinux 0xbcf89ab6 __wake_up_sync +EXPORT_SYMBOL_GPL vmlinux 0xbd0cdf44 sdev_evt_send +EXPORT_SYMBOL_GPL vmlinux 0xbd115c23 platform_device_put +EXPORT_SYMBOL_GPL vmlinux 0xbd573bb5 virtqueue_add_sgs +EXPORT_SYMBOL_GPL vmlinux 0xbd5cb8b9 ring_buffer_resize +EXPORT_SYMBOL_GPL vmlinux 0xbd609568 dm_suspended +EXPORT_SYMBOL_GPL vmlinux 0xbd79872f dma_buf_kunmap_atomic +EXPORT_SYMBOL_GPL vmlinux 0xbd9baec6 pm_runtime_irq_safe +EXPORT_SYMBOL_GPL vmlinux 0xbdd295f0 trace_vprintk +EXPORT_SYMBOL_GPL vmlinux 0xbdd2f42a rcu_bh_force_quiescent_state +EXPORT_SYMBOL_GPL vmlinux 0xbdf512de free_bch +EXPORT_SYMBOL_GPL vmlinux 0xbe142585 usb_unlink_urb +EXPORT_SYMBOL_GPL vmlinux 0xbe1887e4 ata_unpack_xfermask +EXPORT_SYMBOL_GPL vmlinux 0xbe1b0305 sdhci_alloc_host +EXPORT_SYMBOL_GPL vmlinux 0xbe3f5fde fl6_merge_options +EXPORT_SYMBOL_GPL vmlinux 0xbe72ed3f da903x_clr_bits +EXPORT_SYMBOL_GPL vmlinux 0xbe98086e clk_unregister +EXPORT_SYMBOL_GPL vmlinux 0xbea04544 transport_configure_device +EXPORT_SYMBOL_GPL vmlinux 0xbea25534 ata_sff_drain_fifo +EXPORT_SYMBOL_GPL vmlinux 0xbeaa040b regmap_init +EXPORT_SYMBOL_GPL vmlinux 0xbeef76c1 xen_xenbus_fops +EXPORT_SYMBOL_GPL vmlinux 0xbf041102 register_vt_notifier +EXPORT_SYMBOL_GPL vmlinux 0xbf1d0256 hypervisor_kobj +EXPORT_SYMBOL_GPL vmlinux 0xbf6328cc ata_bmdma_port_start +EXPORT_SYMBOL_GPL vmlinux 0xbf65e302 fb_deferred_io_fsync +EXPORT_SYMBOL_GPL vmlinux 0xbf72230f d_materialise_unique +EXPORT_SYMBOL_GPL vmlinux 0xbf86ecd8 dequeue_signal +EXPORT_SYMBOL_GPL vmlinux 0xbfdeb158 xenbus_dev_attrs +EXPORT_SYMBOL_GPL vmlinux 0xbfe7170f usb_put_hcd +EXPORT_SYMBOL_GPL vmlinux 0xc0075dbb extcon_get_extcon_dev +EXPORT_SYMBOL_GPL vmlinux 0xc036d4ca debugfs_create_x16 +EXPORT_SYMBOL_GPL vmlinux 0xc04b64cf debugfs_create_u32 +EXPORT_SYMBOL_GPL vmlinux 0xc08647ff ring_buffer_bytes_cpu +EXPORT_SYMBOL_GPL vmlinux 0xc088467b __trace_note_message +EXPORT_SYMBOL_GPL vmlinux 0xc08c9a3d ata_scsi_queuecmd +EXPORT_SYMBOL_GPL vmlinux 0xc0bf6ead timecounter_cyc2time +EXPORT_SYMBOL_GPL vmlinux 0xc0d26387 kmsg_dump_unregister +EXPORT_SYMBOL_GPL vmlinux 0xc0eb4fd0 platform_get_irq +EXPORT_SYMBOL_GPL vmlinux 0xc0fa10ba device_find_child +EXPORT_SYMBOL_GPL vmlinux 0xc11b4470 balloon_stats +EXPORT_SYMBOL_GPL vmlinux 0xc11bd00f tracepoint_probe_unregister +EXPORT_SYMBOL_GPL vmlinux 0xc13b43f3 crypto_unregister_alg +EXPORT_SYMBOL_GPL vmlinux 0xc164642e xenbus_otherend_changed +EXPORT_SYMBOL_GPL vmlinux 0xc17515d7 usb_hcds_loaded +EXPORT_SYMBOL_GPL vmlinux 0xc1822eed usb_sg_wait +EXPORT_SYMBOL_GPL vmlinux 0xc18578ed process_srcu +EXPORT_SYMBOL_GPL vmlinux 0xc1966439 blk_rq_check_limits +EXPORT_SYMBOL_GPL vmlinux 0xc1a16359 ata_sff_check_status +EXPORT_SYMBOL_GPL vmlinux 0xc1bd0182 fat_get_dotdot_entry +EXPORT_SYMBOL_GPL vmlinux 0xc22a3091 vm_unmap_aliases +EXPORT_SYMBOL_GPL vmlinux 0xc25bda1e pm_generic_restore_early +EXPORT_SYMBOL_GPL vmlinux 0xc26351f8 bind_evtchn_to_irq +EXPORT_SYMBOL_GPL vmlinux 0xc2753987 md_rdev_init +EXPORT_SYMBOL_GPL vmlinux 0xc27d840d ata_bmdma_port_ops +EXPORT_SYMBOL_GPL vmlinux 0xc280fb46 kdb_register +EXPORT_SYMBOL_GPL vmlinux 0xc2812726 snd_soc_add_card_controls +EXPORT_SYMBOL_GPL vmlinux 0xc2947026 clockevents_unbind +EXPORT_SYMBOL_GPL vmlinux 0xc29d809c virtqueue_enable_cb +EXPORT_SYMBOL_GPL vmlinux 0xc2a0fd26 sdio_align_size +EXPORT_SYMBOL_GPL vmlinux 0xc2ae43b8 relay_close +EXPORT_SYMBOL_GPL vmlinux 0xc2ae8ea6 da903x_write +EXPORT_SYMBOL_GPL vmlinux 0xc2b8f021 generic_fh_to_dentry +EXPORT_SYMBOL_GPL vmlinux 0xc2d9b042 sdhci_disable_irq_wakeups +EXPORT_SYMBOL_GPL vmlinux 0xc2de3e13 add_mtd_blktrans_dev +EXPORT_SYMBOL_GPL vmlinux 0xc2f097dd md_new_event +EXPORT_SYMBOL_GPL vmlinux 0xc3051621 extcon_set_state +EXPORT_SYMBOL_GPL vmlinux 0xc309b1a2 cgroup_is_descendant +EXPORT_SYMBOL_GPL vmlinux 0xc31e71e2 thermal_cooling_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0xc3212a69 i2c_probe_func_quick_read +EXPORT_SYMBOL_GPL vmlinux 0xc341ae6d zs_map_object +EXPORT_SYMBOL_GPL vmlinux 0xc34efe27 snmp_fold_field +EXPORT_SYMBOL_GPL vmlinux 0xc36920c2 securityfs_create_file +EXPORT_SYMBOL_GPL vmlinux 0xc37226a5 tpm_pcr_extend +EXPORT_SYMBOL_GPL vmlinux 0xc385cb58 perf_num_counters +EXPORT_SYMBOL_GPL vmlinux 0xc38ecfbe ip6_dst_lookup_flow +EXPORT_SYMBOL_GPL vmlinux 0xc3906fbb mtd_point +EXPORT_SYMBOL_GPL vmlinux 0xc391b944 ping_err +EXPORT_SYMBOL_GPL vmlinux 0xc3a0b7b0 gnttab_map_refs +EXPORT_SYMBOL_GPL vmlinux 0xc3b93bba klist_next +EXPORT_SYMBOL_GPL vmlinux 0xc3b9c44b single_release_net +EXPORT_SYMBOL_GPL vmlinux 0xc3baa669 udp4_lib_lookup +EXPORT_SYMBOL_GPL vmlinux 0xc3d7c6f5 fsnotify +EXPORT_SYMBOL_GPL vmlinux 0xc3dbdd06 hvc_alloc +EXPORT_SYMBOL_GPL vmlinux 0xc3dbff65 devres_alloc +EXPORT_SYMBOL_GPL vmlinux 0xc3e05f42 mtd_kmalloc_up_to +EXPORT_SYMBOL_GPL vmlinux 0xc3e24d5b tcp_cong_avoid_ai +EXPORT_SYMBOL_GPL vmlinux 0xc428068d sata_deb_timing_long +EXPORT_SYMBOL_GPL vmlinux 0xc43fb86b fuse_conn_kill +EXPORT_SYMBOL_GPL vmlinux 0xc43fe475 inode_sb_list_add +EXPORT_SYMBOL_GPL vmlinux 0xc44f7e1c edac_subsys +EXPORT_SYMBOL_GPL vmlinux 0xc454fc7b twl_get_type +EXPORT_SYMBOL_GPL vmlinux 0xc471c67a twl4030_audio_disable_resource +EXPORT_SYMBOL_GPL vmlinux 0xc48b7ccf ata_mode_string +EXPORT_SYMBOL_GPL vmlinux 0xc4c2936b usb_get_phy +EXPORT_SYMBOL_GPL vmlinux 0xc4d07a02 get_user_pages_fast +EXPORT_SYMBOL_GPL vmlinux 0xc50b9e9a spi_register_master +EXPORT_SYMBOL_GPL vmlinux 0xc519e19c blk_queue_lld_busy +EXPORT_SYMBOL_GPL vmlinux 0xc5292c5d bitmap_load +EXPORT_SYMBOL_GPL vmlinux 0xc5384960 platform_bus_type +EXPORT_SYMBOL_GPL vmlinux 0xc5397da6 xenbus_mkdir +EXPORT_SYMBOL_GPL vmlinux 0xc5598fd5 extcon_register_interest +EXPORT_SYMBOL_GPL vmlinux 0xc55a734f crypto_init_spawn2 +EXPORT_SYMBOL_GPL vmlinux 0xc55e2ff4 elv_unregister +EXPORT_SYMBOL_GPL vmlinux 0xc56db484 sec_reg_read +EXPORT_SYMBOL_GPL vmlinux 0xc575c737 debug_locks_off +EXPORT_SYMBOL_GPL vmlinux 0xc5898192 led_classdev_register +EXPORT_SYMBOL_GPL vmlinux 0xc5b615f7 snd_compress_deregister +EXPORT_SYMBOL_GPL vmlinux 0xc5b757ff pingv6_prot +EXPORT_SYMBOL_GPL vmlinux 0xc5d16e2e snd_soc_info_volsw +EXPORT_SYMBOL_GPL vmlinux 0xc5d37180 ping_common_sendmsg +EXPORT_SYMBOL_GPL vmlinux 0xc60f75ec __ftrace_vprintk +EXPORT_SYMBOL_GPL vmlinux 0xc614d9f4 dev_pm_qos_hide_latency_limit +EXPORT_SYMBOL_GPL vmlinux 0xc617f82c unregister_oom_notifier +EXPORT_SYMBOL_GPL vmlinux 0xc61b8299 register_wide_hw_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0xc65394c6 usb_deregister_dev +EXPORT_SYMBOL_GPL vmlinux 0xc65d3eed ring_buffer_entries_cpu +EXPORT_SYMBOL_GPL vmlinux 0xc68aa090 mod_delayed_work_on +EXPORT_SYMBOL_GPL vmlinux 0xc68ee7e8 bmp085_probe +EXPORT_SYMBOL_GPL vmlinux 0xc690866c irq_work_queue +EXPORT_SYMBOL_GPL vmlinux 0xc69b7ee5 zs_destroy_pool +EXPORT_SYMBOL_GPL vmlinux 0xc6d2c08f tpm_show_pubek +EXPORT_SYMBOL_GPL vmlinux 0xc6e257af sock_prot_inuse_get +EXPORT_SYMBOL_GPL vmlinux 0xc6e8e49c rq_flush_dcache_pages +EXPORT_SYMBOL_GPL vmlinux 0xc7002ac4 evtchn_make_refcounted +EXPORT_SYMBOL_GPL vmlinux 0xc72e1233 __trace_bprintk +EXPORT_SYMBOL_GPL vmlinux 0xc73817a0 __mtd_next_device +EXPORT_SYMBOL_GPL vmlinux 0xc749854f driver_register +EXPORT_SYMBOL_GPL vmlinux 0xc769b61a opp_get_voltage +EXPORT_SYMBOL_GPL vmlinux 0xc77917db hvc_instantiate +EXPORT_SYMBOL_GPL vmlinux 0xc78d3d8f usb_gadget_unmap_request +EXPORT_SYMBOL_GPL vmlinux 0xc7927871 __netlink_remove_tap +EXPORT_SYMBOL_GPL vmlinux 0xc794bcb0 xattr_getsecurity +EXPORT_SYMBOL_GPL vmlinux 0xc7a1840e llist_add_batch +EXPORT_SYMBOL_GPL vmlinux 0xc7c6391c mpi_set_buffer +EXPORT_SYMBOL_GPL vmlinux 0xc7e25db3 extcon_get_cable_state_ +EXPORT_SYMBOL_GPL vmlinux 0xc7e39bca ring_buffer_dropped_events_cpu +EXPORT_SYMBOL_GPL vmlinux 0xc81ea437 fuse_direct_io +EXPORT_SYMBOL_GPL vmlinux 0xc81fb3c6 ping_unhash +EXPORT_SYMBOL_GPL vmlinux 0xc8269f94 snd_soc_params_to_frame_size +EXPORT_SYMBOL_GPL vmlinux 0xc82804d3 devres_open_group +EXPORT_SYMBOL_GPL vmlinux 0xc83edf36 crypto_enqueue_request +EXPORT_SYMBOL_GPL vmlinux 0xc85fb5e8 snd_soc_dapm_sync +EXPORT_SYMBOL_GPL vmlinux 0xc862f5c9 devm_remove_action +EXPORT_SYMBOL_GPL vmlinux 0xc87c1f84 ktime_get +EXPORT_SYMBOL_GPL vmlinux 0xc8add232 ring_buffer_record_disable +EXPORT_SYMBOL_GPL vmlinux 0xc8b3312d kill_pid_info_as_cred +EXPORT_SYMBOL_GPL vmlinux 0xc8c63b9f tcp_set_state +EXPORT_SYMBOL_GPL vmlinux 0xc8c881d6 xenbus_read_otherend_details +EXPORT_SYMBOL_GPL vmlinux 0xc8c9ab7b da9052_request_irq +EXPORT_SYMBOL_GPL vmlinux 0xc8f0c7bd irq_gc_mask_clr_bit +EXPORT_SYMBOL_GPL vmlinux 0xc9020a8d sdhci_pltfm_init +EXPORT_SYMBOL_GPL vmlinux 0xc91277a1 kgdb_schedule_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0xc9561772 fb_destroy_modelist +EXPORT_SYMBOL_GPL vmlinux 0xc985dad7 ata_std_postreset +EXPORT_SYMBOL_GPL vmlinux 0xc99d3447 pm_generic_resume +EXPORT_SYMBOL_GPL vmlinux 0xc9a0b9bd wait_for_tpm_stat +EXPORT_SYMBOL_GPL vmlinux 0xc9bfab18 kobject_uevent_env +EXPORT_SYMBOL_GPL vmlinux 0xc9ec4e21 free_percpu +EXPORT_SYMBOL_GPL vmlinux 0xc9f32334 tps6586x_update +EXPORT_SYMBOL_GPL vmlinux 0xc9f395fd scsi_internal_device_block +EXPORT_SYMBOL_GPL vmlinux 0xca3d7200 mmc_app_cmd +EXPORT_SYMBOL_GPL vmlinux 0xca748725 devm_clk_unregister +EXPORT_SYMBOL_GPL vmlinux 0xca7d8764 kthread_freezable_should_stop +EXPORT_SYMBOL_GPL vmlinux 0xca81ea9a xenbus_transaction_end +EXPORT_SYMBOL_GPL vmlinux 0xca85d8cf tracepoint_probe_update_all +EXPORT_SYMBOL_GPL vmlinux 0xca914509 opp_disable +EXPORT_SYMBOL_GPL vmlinux 0xca9b4aac device_bind_driver +EXPORT_SYMBOL_GPL vmlinux 0xcabe04de cpuidle_resume_and_unlock +EXPORT_SYMBOL_GPL vmlinux 0xcacab1ed crypto_shash_setkey +EXPORT_SYMBOL_GPL vmlinux 0xcad1f111 snd_soc_codec_set_sysclk +EXPORT_SYMBOL_GPL vmlinux 0xcb1a9a90 fat_add_entries +EXPORT_SYMBOL_GPL vmlinux 0xcb469d2b ddebug_add_module +EXPORT_SYMBOL_GPL vmlinux 0xcb4e7b4d usb_get_dev +EXPORT_SYMBOL_GPL vmlinux 0xcb7bfec1 clk_register +EXPORT_SYMBOL_GPL vmlinux 0xcb91c2e7 tty_find_polling_driver +EXPORT_SYMBOL_GPL vmlinux 0xcb9de59e dev_attr_em_message +EXPORT_SYMBOL_GPL vmlinux 0xcbb226c1 inet_ctl_sock_create +EXPORT_SYMBOL_GPL vmlinux 0xcbc23308 sdio_readl +EXPORT_SYMBOL_GPL vmlinux 0xcbddce51 mmu_notifier_unregister +EXPORT_SYMBOL_GPL vmlinux 0xcbec22be seq_open_net +EXPORT_SYMBOL_GPL vmlinux 0xcbee20b2 get_cpu_iowait_time_us +EXPORT_SYMBOL_GPL vmlinux 0xcbf50dd2 tty_register_device_attr +EXPORT_SYMBOL_GPL vmlinux 0xcbfc7b6d vring_del_virtqueue +EXPORT_SYMBOL_GPL vmlinux 0xcbfcc91a mddev_suspend +EXPORT_SYMBOL_GPL vmlinux 0xcc1f1c3d inet_twdr_hangman +EXPORT_SYMBOL_GPL vmlinux 0xcc3fb73b subsys_dev_iter_init +EXPORT_SYMBOL_GPL vmlinux 0xcc4206d8 nand_wait_ready +EXPORT_SYMBOL_GPL vmlinux 0xcc5e501f tty_ldisc_ref +EXPORT_SYMBOL_GPL vmlinux 0xcc76507b xen_unmap_domain_mfn_range +EXPORT_SYMBOL_GPL vmlinux 0xcc85fcb6 async_schedule +EXPORT_SYMBOL_GPL vmlinux 0xcc8f91ee crypto_mod_get +EXPORT_SYMBOL_GPL vmlinux 0xcc90d124 modify_user_hw_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0xccb59acb i2c_add_numbered_adapter +EXPORT_SYMBOL_GPL vmlinux 0xccbfe1a2 hrtimer_forward +EXPORT_SYMBOL_GPL vmlinux 0xcccfb2fa sata_deb_timing_hotplug +EXPORT_SYMBOL_GPL vmlinux 0xccedc2ed spi_new_device +EXPORT_SYMBOL_GPL vmlinux 0xcd012028 ata_host_start +EXPORT_SYMBOL_GPL vmlinux 0xcd13482c ip6_sk_redirect +EXPORT_SYMBOL_GPL vmlinux 0xcd91b127 system_highpri_wq +EXPORT_SYMBOL_GPL vmlinux 0xcdca3691 nr_irqs +EXPORT_SYMBOL_GPL vmlinux 0xcdd15087 of_irq_map_one +EXPORT_SYMBOL_GPL vmlinux 0xcdd3001d snd_soc_cache_sync +EXPORT_SYMBOL_GPL vmlinux 0xcddba9cc pm_runtime_no_callbacks +EXPORT_SYMBOL_GPL vmlinux 0xce0b9b59 max77693_read_reg +EXPORT_SYMBOL_GPL vmlinux 0xce20fe4a crypto_unregister_algs +EXPORT_SYMBOL_GPL vmlinux 0xce46e140 ktime_get_ts +EXPORT_SYMBOL_GPL vmlinux 0xce4b1802 snd_soc_set_runtime_hwparams +EXPORT_SYMBOL_GPL vmlinux 0xce6a9d9a trace_current_buffer_discard_commit +EXPORT_SYMBOL_GPL vmlinux 0xce6bfe88 crypto_alloc_ablkcipher +EXPORT_SYMBOL_GPL vmlinux 0xce920531 crypto_register_pcomp +EXPORT_SYMBOL_GPL vmlinux 0xcea36623 spi_write_then_read +EXPORT_SYMBOL_GPL vmlinux 0xcea53321 key_set_timeout +EXPORT_SYMBOL_GPL vmlinux 0xcee1641c kgdb_unregister_nmi_console +EXPORT_SYMBOL_GPL vmlinux 0xcee6f843 da903x_update +EXPORT_SYMBOL_GPL vmlinux 0xcefd54c9 regulator_map_voltage_linear +EXPORT_SYMBOL_GPL vmlinux 0xcf090d73 md_allow_write +EXPORT_SYMBOL_GPL vmlinux 0xcf16ac6e spi_bus_type +EXPORT_SYMBOL_GPL vmlinux 0xcf54ea93 async_unregister_domain +EXPORT_SYMBOL_GPL vmlinux 0xcf624229 usb_bus_list_lock +EXPORT_SYMBOL_GPL vmlinux 0xcf7c1b75 clk_notifier_register +EXPORT_SYMBOL_GPL vmlinux 0xcf8ad0d1 register_net_sysctl +EXPORT_SYMBOL_GPL vmlinux 0xcfa5ffbc fb_deferred_io_open +EXPORT_SYMBOL_GPL vmlinux 0xcfc68341 synchronize_rcu_bh +EXPORT_SYMBOL_GPL vmlinux 0xcfd1fc19 usb_set_device_state +EXPORT_SYMBOL_GPL vmlinux 0xcfd8c50c crypto_lookup_aead +EXPORT_SYMBOL_GPL vmlinux 0xcfdc2972 tcp_death_row +EXPORT_SYMBOL_GPL vmlinux 0xd000efc6 usb_unlocked_enable_lpm +EXPORT_SYMBOL_GPL vmlinux 0xd00531d8 regmap_register_patch +EXPORT_SYMBOL_GPL vmlinux 0xd0189775 sock_update_netprioidx +EXPORT_SYMBOL_GPL vmlinux 0xd026d518 HYPERVISOR_vcpu_op +EXPORT_SYMBOL_GPL vmlinux 0xd02e4907 regmap_reinit_cache +EXPORT_SYMBOL_GPL vmlinux 0xd033a53e fuse_get_req_for_background +EXPORT_SYMBOL_GPL vmlinux 0xd03c7700 secure_ipv4_port_ephemeral +EXPORT_SYMBOL_GPL vmlinux 0xd0458ccb xenbus_strstate +EXPORT_SYMBOL_GPL vmlinux 0xd056045a ata_eh_analyze_ncq_error +EXPORT_SYMBOL_GPL vmlinux 0xd06524ba raw_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0xd06703a5 kvm_is_visible_gfn +EXPORT_SYMBOL_GPL vmlinux 0xd067d3c5 system_freezable_power_efficient_wq +EXPORT_SYMBOL_GPL vmlinux 0xd0854fb1 anon_inode_getfd +EXPORT_SYMBOL_GPL vmlinux 0xd0887190 sock_diag_unregister_inet_compat +EXPORT_SYMBOL_GPL vmlinux 0xd08ae21c usb_driver_set_configuration +EXPORT_SYMBOL_GPL vmlinux 0xd09ed1ff fuse_dev_operations +EXPORT_SYMBOL_GPL vmlinux 0xd0c05159 emergency_restart +EXPORT_SYMBOL_GPL vmlinux 0xd0e1a150 alarm_start_relative +EXPORT_SYMBOL_GPL vmlinux 0xd0e8c5e4 sdio_f0_readb +EXPORT_SYMBOL_GPL vmlinux 0xd0e94324 vfs_test_lock +EXPORT_SYMBOL_GPL vmlinux 0xd111ed82 regcache_cache_only +EXPORT_SYMBOL_GPL vmlinux 0xd11c34da pwm_put +EXPORT_SYMBOL_GPL vmlinux 0xd1227244 sock_diag_register_inet_compat +EXPORT_SYMBOL_GPL vmlinux 0xd13556a3 get_dcookie +EXPORT_SYMBOL_GPL vmlinux 0xd13d2d26 dev_pm_get_subsys_data +EXPORT_SYMBOL_GPL vmlinux 0xd1466e45 __mmu_notifier_register +EXPORT_SYMBOL_GPL vmlinux 0xd14bc4d9 sock_diag_save_cookie +EXPORT_SYMBOL_GPL vmlinux 0xd14e4c06 pm_stay_awake +EXPORT_SYMBOL_GPL vmlinux 0xd16712f3 crypto_check_attr_type +EXPORT_SYMBOL_GPL vmlinux 0xd18a155e __rt_mutex_init +EXPORT_SYMBOL_GPL vmlinux 0xd18b4d5a inet6_destroy_sock +EXPORT_SYMBOL_GPL vmlinux 0xd18c2c02 class_remove_file +EXPORT_SYMBOL_GPL vmlinux 0xd1b2db37 tracepoint_probe_register_noupdate +EXPORT_SYMBOL_GPL vmlinux 0xd1c79cab platform_add_devices +EXPORT_SYMBOL_GPL vmlinux 0xd1c8dbe9 mtd_write +EXPORT_SYMBOL_GPL vmlinux 0xd2087472 tty_port_tty_wakeup +EXPORT_SYMBOL_GPL vmlinux 0xd20bf6ba dcookie_unregister +EXPORT_SYMBOL_GPL vmlinux 0xd21584db fuse_conn_put +EXPORT_SYMBOL_GPL vmlinux 0xd217d63f kvm_put_kvm +EXPORT_SYMBOL_GPL vmlinux 0xd217e9e6 trace_set_clr_event +EXPORT_SYMBOL_GPL vmlinux 0xd21df6ee pm_generic_resume_early +EXPORT_SYMBOL_GPL vmlinux 0xd2541be0 screen_glyph +EXPORT_SYMBOL_GPL vmlinux 0xd273b1b1 __round_jiffies_up_relative +EXPORT_SYMBOL_GPL vmlinux 0xd2aaeb4e kmsg_dump_get_buffer +EXPORT_SYMBOL_GPL vmlinux 0xd2b5bb70 rtc_set_alarm +EXPORT_SYMBOL_GPL vmlinux 0xd2cd6c29 kvm_read_guest +EXPORT_SYMBOL_GPL vmlinux 0xd31c8ee5 stmpe_disable +EXPORT_SYMBOL_GPL vmlinux 0xd327fd97 xen_dbgp_reset_prep +EXPORT_SYMBOL_GPL vmlinux 0xd32fe193 ata_scsi_change_queue_depth +EXPORT_SYMBOL_GPL vmlinux 0xd33ada8b cci_probed +EXPORT_SYMBOL_GPL vmlinux 0xd3566306 snd_soc_new_ac97_codec +EXPORT_SYMBOL_GPL vmlinux 0xd372435b mmc_switch +EXPORT_SYMBOL_GPL vmlinux 0xd37e13b4 regulator_set_optimum_mode +EXPORT_SYMBOL_GPL vmlinux 0xd38d95ac ata_scsi_simulate +EXPORT_SYMBOL_GPL vmlinux 0xd38e66f2 device_create_vargs +EXPORT_SYMBOL_GPL vmlinux 0xd3a1d558 perf_event_create_kernel_counter +EXPORT_SYMBOL_GPL vmlinux 0xd3a78845 snd_soc_put_volsw_sx +EXPORT_SYMBOL_GPL vmlinux 0xd3af9066 user_match +EXPORT_SYMBOL_GPL vmlinux 0xd3b78841 platform_device_register +EXPORT_SYMBOL_GPL vmlinux 0xd3ba830e mtd_add_partition +EXPORT_SYMBOL_GPL vmlinux 0xd3d919a8 ata_sff_dev_select +EXPORT_SYMBOL_GPL vmlinux 0xd3d9c16b inet_csk_route_req +EXPORT_SYMBOL_GPL vmlinux 0xd3fa226d dpm_for_each_dev +EXPORT_SYMBOL_GPL vmlinux 0xd4034828 system_freezable_wq +EXPORT_SYMBOL_GPL vmlinux 0xd40f946f snd_soc_get_xr_sx +EXPORT_SYMBOL_GPL vmlinux 0xd41791c2 ahash_attr_alg +EXPORT_SYMBOL_GPL vmlinux 0xd41ca97f rtc_update_irq +EXPORT_SYMBOL_GPL vmlinux 0xd44a5eac kgdb_register_nmi_console +EXPORT_SYMBOL_GPL vmlinux 0xd44c2f38 cci_disable_port_by_cpu +EXPORT_SYMBOL_GPL vmlinux 0xd4b1a2dc led_classdev_resume +EXPORT_SYMBOL_GPL vmlinux 0xd4c14632 system_unbound_wq +EXPORT_SYMBOL_GPL vmlinux 0xd4d006ad devres_remove +EXPORT_SYMBOL_GPL vmlinux 0xd4e0d69c noop_backing_dev_info +EXPORT_SYMBOL_GPL vmlinux 0xd516ddc2 bus_sort_breadthfirst +EXPORT_SYMBOL_GPL vmlinux 0xd5952e2b disk_get_part +EXPORT_SYMBOL_GPL vmlinux 0xd5b8f652 tty_ldisc_ref_wait +EXPORT_SYMBOL_GPL vmlinux 0xd5bd7dac ring_buffer_record_enable_cpu +EXPORT_SYMBOL_GPL vmlinux 0xd5c20e41 rtnl_link_register +EXPORT_SYMBOL_GPL vmlinux 0xd5d00cda wm8350_read_auxadc +EXPORT_SYMBOL_GPL vmlinux 0xd5d00f0d wm8400_block_read +EXPORT_SYMBOL_GPL vmlinux 0xd636db0d regcache_cache_bypass +EXPORT_SYMBOL_GPL vmlinux 0xd656d5df ipv4_sk_update_pmtu +EXPORT_SYMBOL_GPL vmlinux 0xd670e366 device_move +EXPORT_SYMBOL_GPL vmlinux 0xd67364f7 eventfd_ctx_fdget +EXPORT_SYMBOL_GPL vmlinux 0xd67f4d21 rt_mutex_lock +EXPORT_SYMBOL_GPL vmlinux 0xd6a617cf snd_soc_dpcm_be_can_update +EXPORT_SYMBOL_GPL vmlinux 0xd6b648a7 regulator_disable_regmap +EXPORT_SYMBOL_GPL vmlinux 0xd6c2e04b __tracepoint_napi_poll +EXPORT_SYMBOL_GPL vmlinux 0xd6f0c952 blk_add_driver_data +EXPORT_SYMBOL_GPL vmlinux 0xd6f20182 fuse_put_request +EXPORT_SYMBOL_GPL vmlinux 0xd705b4c7 schedule_hrtimeout +EXPORT_SYMBOL_GPL vmlinux 0xd72feba2 xenbus_read_driver_state +EXPORT_SYMBOL_GPL vmlinux 0xd74e4fec rtc_read_alarm +EXPORT_SYMBOL_GPL vmlinux 0xd768e985 regulator_has_full_constraints +EXPORT_SYMBOL_GPL vmlinux 0xd77c0bc8 klist_remove +EXPORT_SYMBOL_GPL vmlinux 0xd77fa56a unregister_pernet_device +EXPORT_SYMBOL_GPL vmlinux 0xd788742d perf_trace_buf_prepare +EXPORT_SYMBOL_GPL vmlinux 0xd78ad699 wm831x_set_bits +EXPORT_SYMBOL_GPL vmlinux 0xd7a83d53 ahash_free_instance +EXPORT_SYMBOL_GPL vmlinux 0xd7c45461 posix_clock_unregister +EXPORT_SYMBOL_GPL vmlinux 0xd7cdce7f watchdog_init_timeout +EXPORT_SYMBOL_GPL vmlinux 0xd7d27c40 usb_gadget_set_state +EXPORT_SYMBOL_GPL vmlinux 0xd7d35f0d crypto_init_shash_spawn +EXPORT_SYMBOL_GPL vmlinux 0xd7d79132 put_online_cpus +EXPORT_SYMBOL_GPL vmlinux 0xd7de1d1a tcp_get_info +EXPORT_SYMBOL_GPL vmlinux 0xd7e779e0 ata_qc_complete_multiple +EXPORT_SYMBOL_GPL vmlinux 0xd7f6b834 ata_sff_hsm_move +EXPORT_SYMBOL_GPL vmlinux 0xd81de62c ring_buffer_record_enable +EXPORT_SYMBOL_GPL vmlinux 0xd81ffcd3 wakeup_source_register +EXPORT_SYMBOL_GPL vmlinux 0xd820c283 eventfd_ctx_remove_wait_queue +EXPORT_SYMBOL_GPL vmlinux 0xd843c7c7 ohci_restart +EXPORT_SYMBOL_GPL vmlinux 0xd84418ad usb_autopm_put_interface_no_suspend +EXPORT_SYMBOL_GPL vmlinux 0xd8525ea7 fl6_update_dst +EXPORT_SYMBOL_GPL vmlinux 0xd85ac634 regulator_put +EXPORT_SYMBOL_GPL vmlinux 0xd85f951c inet_csk_clone_lock +EXPORT_SYMBOL_GPL vmlinux 0xd87601cc ring_buffer_unlock_commit +EXPORT_SYMBOL_GPL vmlinux 0xd893bcc3 xenbus_match +EXPORT_SYMBOL_GPL vmlinux 0xd898cd9c enable_kprobe +EXPORT_SYMBOL_GPL vmlinux 0xd8a90376 ablkcipher_walk_phys +EXPORT_SYMBOL_GPL vmlinux 0xd8bc1390 raw_unhash_sk +EXPORT_SYMBOL_GPL vmlinux 0xd8ddd577 __irq_set_handler +EXPORT_SYMBOL_GPL vmlinux 0xd8dedcbb md_stop +EXPORT_SYMBOL_GPL vmlinux 0xd8ff014c ata_sas_port_stop +EXPORT_SYMBOL_GPL vmlinux 0xd900969f regmap_init_i2c +EXPORT_SYMBOL_GPL vmlinux 0xd9364184 scatterwalk_map_and_copy +EXPORT_SYMBOL_GPL vmlinux 0xd942d353 ring_buffer_record_off +EXPORT_SYMBOL_GPL vmlinux 0xd94e90a9 sata_port_ops +EXPORT_SYMBOL_GPL vmlinux 0xd950341a nf_unregister_afinfo +EXPORT_SYMBOL_GPL vmlinux 0xd9516248 regulator_register +EXPORT_SYMBOL_GPL vmlinux 0xd9549be5 crypto_aead_type +EXPORT_SYMBOL_GPL vmlinux 0xd97f4cf2 __dma_request_channel +EXPORT_SYMBOL_GPL vmlinux 0xd9804e92 irq_create_mapping +EXPORT_SYMBOL_GPL vmlinux 0xd9959c24 pwm_free +EXPORT_SYMBOL_GPL vmlinux 0xd99c21e1 gfn_to_pfn_atomic +EXPORT_SYMBOL_GPL vmlinux 0xd9b93d55 ip6_append_data +EXPORT_SYMBOL_GPL vmlinux 0xd9d7f623 pkey_id_type +EXPORT_SYMBOL_GPL vmlinux 0xd9ecb670 ring_buffer_overruns +EXPORT_SYMBOL_GPL vmlinux 0xda1d2a95 sdhci_pltfm_clk_get_max_clock +EXPORT_SYMBOL_GPL vmlinux 0xda2a8018 blkg_conf_finish +EXPORT_SYMBOL_GPL vmlinux 0xda3a7ca9 regulator_is_enabled +EXPORT_SYMBOL_GPL vmlinux 0xda44cb37 setup_charger_manager +EXPORT_SYMBOL_GPL vmlinux 0xda734b28 key_type_logon +EXPORT_SYMBOL_GPL vmlinux 0xda89e780 tcp_reno_ssthresh +EXPORT_SYMBOL_GPL vmlinux 0xdabdd85c key_type_encrypted +EXPORT_SYMBOL_GPL vmlinux 0xdac11bae of_property_read_u32_array +EXPORT_SYMBOL_GPL vmlinux 0xdac14337 extcon_unregister_interest +EXPORT_SYMBOL_GPL vmlinux 0xdacd26c5 usb_scuttle_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0xdad2808d regulator_list_voltage_linear +EXPORT_SYMBOL_GPL vmlinux 0xdaf4dfb3 fb_mode_option +EXPORT_SYMBOL_GPL vmlinux 0xdafe9dd2 da9052_disable_irq_nosync +EXPORT_SYMBOL_GPL vmlinux 0xdb04cacc tracepoint_probe_unregister_noupdate +EXPORT_SYMBOL_GPL vmlinux 0xdb085800 blk_queue_bypass_end +EXPORT_SYMBOL_GPL vmlinux 0xdb7fac8c snd_soc_register_codec +EXPORT_SYMBOL_GPL vmlinux 0xdb801a13 xenbus_grant_ring +EXPORT_SYMBOL_GPL vmlinux 0xdb8a1b3f usermodehelper_read_trylock +EXPORT_SYMBOL_GPL vmlinux 0xdba4ad93 static_key_slow_dec_deferred +EXPORT_SYMBOL_GPL vmlinux 0xdba80fc1 of_fdt_unflatten_tree +EXPORT_SYMBOL_GPL vmlinux 0xdbe966ed wm831x_reg_write +EXPORT_SYMBOL_GPL vmlinux 0xdbf7cb70 mpi_get_nbits +EXPORT_SYMBOL_GPL vmlinux 0xdc0859b1 snd_soc_register_component +EXPORT_SYMBOL_GPL vmlinux 0xdc09c584 mtd_writev +EXPORT_SYMBOL_GPL vmlinux 0xdc14a211 xen_hvm_evtchn_do_upcall +EXPORT_SYMBOL_GPL vmlinux 0xdc427e46 platform_device_add_data +EXPORT_SYMBOL_GPL vmlinux 0xdc461430 irq_set_affinity_hint +EXPORT_SYMBOL_GPL vmlinux 0xdc5fb3c8 elv_register +EXPORT_SYMBOL_GPL vmlinux 0xdc698b48 crypto_ahash_type +EXPORT_SYMBOL_GPL vmlinux 0xdc73a89d kvm_set_memory_region +EXPORT_SYMBOL_GPL vmlinux 0xdc97af2e syscore_suspend +EXPORT_SYMBOL_GPL vmlinux 0xdc9fa232 raw_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0xdcb64b81 devm_regulator_get +EXPORT_SYMBOL_GPL vmlinux 0xdcb83c11 kernel_kobj +EXPORT_SYMBOL_GPL vmlinux 0xdcd21308 ata_sff_data_xfer32 +EXPORT_SYMBOL_GPL vmlinux 0xdd2efc0f ring_buffer_reset_cpu +EXPORT_SYMBOL_GPL vmlinux 0xdd391eff profile_event_unregister +EXPORT_SYMBOL_GPL vmlinux 0xdd4c084d extcon_get_cable_state +EXPORT_SYMBOL_GPL vmlinux 0xdd821afa ata_bmdma_port_start32 +EXPORT_SYMBOL_GPL vmlinux 0xdda4f2f9 crypto_larval_alloc +EXPORT_SYMBOL_GPL vmlinux 0xddac6e6b blk_trace_remove +EXPORT_SYMBOL_GPL vmlinux 0xddac95e4 usb_alloc_streams +EXPORT_SYMBOL_GPL vmlinux 0xddd58dc0 ring_buffer_reset +EXPORT_SYMBOL_GPL vmlinux 0xde0dac86 kvm_release_page_dirty +EXPORT_SYMBOL_GPL vmlinux 0xde1ade0b bio_alloc_mddev +EXPORT_SYMBOL_GPL vmlinux 0xde216ead kvm_vcpu_cache +EXPORT_SYMBOL_GPL vmlinux 0xde2c5a6e alarm_restart +EXPORT_SYMBOL_GPL vmlinux 0xde5e203a usb_store_new_id +EXPORT_SYMBOL_GPL vmlinux 0xde642c20 ci_hdrc_remove_device +EXPORT_SYMBOL_GPL vmlinux 0xde9dae75 __blk_put_request +EXPORT_SYMBOL_GPL vmlinux 0xdec00ffe usb_lock_device_for_reset +EXPORT_SYMBOL_GPL vmlinux 0xdf0f75c6 eventfd_signal +EXPORT_SYMBOL_GPL vmlinux 0xdf1ff58b snd_soc_info_volsw_range +EXPORT_SYMBOL_GPL vmlinux 0xdf650aa5 regulator_enable_regmap +EXPORT_SYMBOL_GPL vmlinux 0xdf84eeae tpm_show_enabled +EXPORT_SYMBOL_GPL vmlinux 0xdf89dab2 regulator_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xdf90f5c6 ref_module +EXPORT_SYMBOL_GPL vmlinux 0xdfb547c5 usb_hcd_poll_rh_status +EXPORT_SYMBOL_GPL vmlinux 0xdfc001b4 fat_attach +EXPORT_SYMBOL_GPL vmlinux 0xdfc4ab25 usb_enable_lpm +EXPORT_SYMBOL_GPL vmlinux 0xdfe62947 xenbus_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0xdff7c9ce blocking_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0xe007de41 kallsyms_lookup_name +EXPORT_SYMBOL_GPL vmlinux 0xe02eb6d0 ring_buffer_commit_overrun_cpu +EXPORT_SYMBOL_GPL vmlinux 0xe0349827 sysfs_remove_file +EXPORT_SYMBOL_GPL vmlinux 0xe03525ac of_irq_map_raw +EXPORT_SYMBOL_GPL vmlinux 0xe0595813 blk_trace_startstop +EXPORT_SYMBOL_GPL vmlinux 0xe069d11e i2c_unlock_adapter +EXPORT_SYMBOL_GPL vmlinux 0xe06f3969 dma_get_required_mask +EXPORT_SYMBOL_GPL vmlinux 0xe07ca631 cpu_bit_bitmap +EXPORT_SYMBOL_GPL vmlinux 0xe086f980 snd_soc_resume +EXPORT_SYMBOL_GPL vmlinux 0xe08fb229 cgroup_attach_task_all +EXPORT_SYMBOL_GPL vmlinux 0xe0963f31 platform_device_add_resources +EXPORT_SYMBOL_GPL vmlinux 0xe09f19f1 ata_host_suspend +EXPORT_SYMBOL_GPL vmlinux 0xe0a47d79 ata_base_port_ops +EXPORT_SYMBOL_GPL vmlinux 0xe0bb945e alloc_page_buffers +EXPORT_SYMBOL_GPL vmlinux 0xe0e3147c HYPERVISOR_sched_op +EXPORT_SYMBOL_GPL vmlinux 0xe12d22be fuse_conn_get +EXPORT_SYMBOL_GPL vmlinux 0xe140b11b __inet_twsk_hashdance +EXPORT_SYMBOL_GPL vmlinux 0xe146c566 usb_del_gadget_udc +EXPORT_SYMBOL_GPL vmlinux 0xe15337ab cpuidle_get_driver +EXPORT_SYMBOL_GPL vmlinux 0xe165210c regulator_get +EXPORT_SYMBOL_GPL vmlinux 0xe16591ab stop_machine +EXPORT_SYMBOL_GPL vmlinux 0xe175064b snd_soc_bulk_write_raw +EXPORT_SYMBOL_GPL vmlinux 0xe181df9c blk_add_request_payload +EXPORT_SYMBOL_GPL vmlinux 0xe19608d3 power_supply_unregister +EXPORT_SYMBOL_GPL vmlinux 0xe1c14422 snd_soc_dai_set_sysclk +EXPORT_SYMBOL_GPL vmlinux 0xe1d24222 sdio_memcpy_toio +EXPORT_SYMBOL_GPL vmlinux 0xe1d363f6 find_get_pid +EXPORT_SYMBOL_GPL vmlinux 0xe1d52b08 __udp6_lib_lookup +EXPORT_SYMBOL_GPL vmlinux 0xe22d047f spi_sync +EXPORT_SYMBOL_GPL vmlinux 0xe240232e crypto_create_tfm +EXPORT_SYMBOL_GPL vmlinux 0xe2c7a2d7 mtd_read +EXPORT_SYMBOL_GPL vmlinux 0xe2dd67e5 regulator_set_current_limit +EXPORT_SYMBOL_GPL vmlinux 0xe2e7840d regmap_init_mmio_clk +EXPORT_SYMBOL_GPL vmlinux 0xe2f1addb of_regulator_match +EXPORT_SYMBOL_GPL vmlinux 0xe3043ff9 request_any_context_irq +EXPORT_SYMBOL_GPL vmlinux 0xe35c359f spi_get_next_queued_message +EXPORT_SYMBOL_GPL vmlinux 0xe384a102 usb_speed_string +EXPORT_SYMBOL_GPL vmlinux 0xe3b5bb1e usb_poison_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0xe3c56e3c devres_remove_group +EXPORT_SYMBOL_GPL vmlinux 0xe3e25e9e debugfs_create_u64 +EXPORT_SYMBOL_GPL vmlinux 0xe3e31fc6 snd_soc_codec_volatile_register +EXPORT_SYMBOL_GPL vmlinux 0xe40af80f crypto_hash_walk_first +EXPORT_SYMBOL_GPL vmlinux 0xe41534ce bind_evtchn_to_irqhandler +EXPORT_SYMBOL_GPL vmlinux 0xe42e1f70 klist_iter_init_node +EXPORT_SYMBOL_GPL vmlinux 0xe4309905 syscore_resume +EXPORT_SYMBOL_GPL vmlinux 0xe4748b5a usb_clear_halt +EXPORT_SYMBOL_GPL vmlinux 0xe4766ec0 perf_event_disable +EXPORT_SYMBOL_GPL vmlinux 0xe47dc061 skb_tstamp_tx +EXPORT_SYMBOL_GPL vmlinux 0xe4a801d9 tty_encode_baud_rate +EXPORT_SYMBOL_GPL vmlinux 0xe4c356e9 register_kretprobe +EXPORT_SYMBOL_GPL vmlinux 0xe4dc4066 free_vm_area +EXPORT_SYMBOL_GPL vmlinux 0xe4dcd8b6 ata_bmdma_error_handler +EXPORT_SYMBOL_GPL vmlinux 0xe4dd4c30 blkg_lookup +EXPORT_SYMBOL_GPL vmlinux 0xe50e65bf blocking_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0xe513498b bmp085_regmap_config +EXPORT_SYMBOL_GPL vmlinux 0xe5311ac8 usb_get_status +EXPORT_SYMBOL_GPL vmlinux 0xe532f589 ohci_setup +EXPORT_SYMBOL_GPL vmlinux 0xe53de401 dma_wait_for_async_tx +EXPORT_SYMBOL_GPL vmlinux 0xe56f25e5 tpm_show_pcrs +EXPORT_SYMBOL_GPL vmlinux 0xe57c257f ata_eh_freeze_port +EXPORT_SYMBOL_GPL vmlinux 0xe5883bd9 class_compat_unregister +EXPORT_SYMBOL_GPL vmlinux 0xe5a21a4e usb_unpoison_urb +EXPORT_SYMBOL_GPL vmlinux 0xe5ad14ee ping_rcv +EXPORT_SYMBOL_GPL vmlinux 0xe5c3b58e irq_get_irq_data +EXPORT_SYMBOL_GPL vmlinux 0xe61b7b71 dm_noflush_suspending +EXPORT_SYMBOL_GPL vmlinux 0xe61e1f52 inet6_lookup_listener +EXPORT_SYMBOL_GPL vmlinux 0xe650a7ee blk_insert_cloned_request +EXPORT_SYMBOL_GPL vmlinux 0xe651f76e selinux_is_enabled +EXPORT_SYMBOL_GPL vmlinux 0xe66b997e class_interface_unregister +EXPORT_SYMBOL_GPL vmlinux 0xe6745d75 usb_unanchor_urb +EXPORT_SYMBOL_GPL vmlinux 0xe68d4a52 fat_scan +EXPORT_SYMBOL_GPL vmlinux 0xe6aaa485 set_cpus_allowed_ptr +EXPORT_SYMBOL_GPL vmlinux 0xe6c68334 ddebug_remove_module +EXPORT_SYMBOL_GPL vmlinux 0xe6cf1e9f adp5520_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0xe6d41f23 inet6_csk_update_pmtu +EXPORT_SYMBOL_GPL vmlinux 0xe6d95cc5 register_user_hw_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0xe6dd04af init_user_ns +EXPORT_SYMBOL_GPL vmlinux 0xe6e1c5fe uuid_be_gen +EXPORT_SYMBOL_GPL vmlinux 0xe73e9728 blkdev_ioctl +EXPORT_SYMBOL_GPL vmlinux 0xe742116b devm_regmap_init +EXPORT_SYMBOL_GPL vmlinux 0xe75d3c27 nf_queue_entry_release_refs +EXPORT_SYMBOL_GPL vmlinux 0xe764488a alarm_start +EXPORT_SYMBOL_GPL vmlinux 0xe769232e sprint_symbol_no_offset +EXPORT_SYMBOL_GPL vmlinux 0xe78899e3 extcon_update_state +EXPORT_SYMBOL_GPL vmlinux 0xe78fca2f pm_generic_suspend_noirq +EXPORT_SYMBOL_GPL vmlinux 0xe7b0f3dd usb_control_msg +EXPORT_SYMBOL_GPL vmlinux 0xe7c3d34f snd_soc_get_pcm_runtime +EXPORT_SYMBOL_GPL vmlinux 0xe7cd4bfa cn_add_callback +EXPORT_SYMBOL_GPL vmlinux 0xe7ffe877 pcpu_base_addr +EXPORT_SYMBOL_GPL vmlinux 0xe80b7c4e wm8350_block_read +EXPORT_SYMBOL_GPL vmlinux 0xe818b32b ata_bmdma_interrupt +EXPORT_SYMBOL_GPL vmlinux 0xe8229eaf arizona_dev_init +EXPORT_SYMBOL_GPL vmlinux 0xe82671e5 wm8350_set_bits +EXPORT_SYMBOL_GPL vmlinux 0xe8400441 of_property_read_string_index +EXPORT_SYMBOL_GPL vmlinux 0xe845e2b2 napi_hash_del +EXPORT_SYMBOL_GPL vmlinux 0xe84e7c8d snd_soc_dapm_get_value_enum_double +EXPORT_SYMBOL_GPL vmlinux 0xe85a9fd3 cpu_cluster_pm_exit +EXPORT_SYMBOL_GPL vmlinux 0xe862c4b7 dpm_suspend_start +EXPORT_SYMBOL_GPL vmlinux 0xe86a6a77 clk_set_rate +EXPORT_SYMBOL_GPL vmlinux 0xe86b277c _submit_bh +EXPORT_SYMBOL_GPL vmlinux 0xe8704cac mtd_unlock +EXPORT_SYMBOL_GPL vmlinux 0xe8766bdd fat_search_long +EXPORT_SYMBOL_GPL vmlinux 0xe885d94b __hvc_resize +EXPORT_SYMBOL_GPL vmlinux 0xe8c52802 crypto_dequeue_request +EXPORT_SYMBOL_GPL vmlinux 0xe8c592ff ata_sff_data_xfer_noirq +EXPORT_SYMBOL_GPL vmlinux 0xe8c6b70d unregister_pernet_subsys +EXPORT_SYMBOL_GPL vmlinux 0xe8c7390c blk_update_request +EXPORT_SYMBOL_GPL vmlinux 0xe8e60cc6 dma_buf_get +EXPORT_SYMBOL_GPL vmlinux 0xe90023ef mtd_unpoint +EXPORT_SYMBOL_GPL vmlinux 0xe92bdef6 virtqueue_get_vring_size +EXPORT_SYMBOL_GPL vmlinux 0xe93e49c3 devres_free +EXPORT_SYMBOL_GPL vmlinux 0xe956a75c pl320_ipc_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0xe95e19e8 __irq_domain_add +EXPORT_SYMBOL_GPL vmlinux 0xe97a8937 class_unregister +EXPORT_SYMBOL_GPL vmlinux 0xe9a98cd6 pm_runtime_autosuspend_expiration +EXPORT_SYMBOL_GPL vmlinux 0xe9b671c2 fb_deferred_io_init +EXPORT_SYMBOL_GPL vmlinux 0xe9dd9bac fat_time_unix2fat +EXPORT_SYMBOL_GPL vmlinux 0xea124bd1 gcd +EXPORT_SYMBOL_GPL vmlinux 0xea18e8c8 device_register +EXPORT_SYMBOL_GPL vmlinux 0xea1914dc rtnl_af_unregister +EXPORT_SYMBOL_GPL vmlinux 0xea3f6a64 snd_soc_dpcm_can_be_params +EXPORT_SYMBOL_GPL vmlinux 0xea418e0f atapi_cmd_type +EXPORT_SYMBOL_GPL vmlinux 0xea43355b gen_pool_avail +EXPORT_SYMBOL_GPL vmlinux 0xea50dad3 ahci_ignore_sss +EXPORT_SYMBOL_GPL vmlinux 0xea5a771d led_trigger_remove +EXPORT_SYMBOL_GPL vmlinux 0xea5a8c59 dev_forward_skb +EXPORT_SYMBOL_GPL vmlinux 0xea65f79e snd_soc_dapm_get_pin_status +EXPORT_SYMBOL_GPL vmlinux 0xeac01664 unregister_net_sysctl_table +EXPORT_SYMBOL_GPL vmlinux 0xeacbe910 led_classdev_unregister +EXPORT_SYMBOL_GPL vmlinux 0xeb084047 fuse_file_poll +EXPORT_SYMBOL_GPL vmlinux 0xeb181d47 crypto_alloc_pcomp +EXPORT_SYMBOL_GPL vmlinux 0xeb1c3628 nf_ipv6_ops +EXPORT_SYMBOL_GPL vmlinux 0xeb322503 snd_soc_default_readable_register +EXPORT_SYMBOL_GPL vmlinux 0xeb3e5f4b crypto_ahash_finup +EXPORT_SYMBOL_GPL vmlinux 0xeb3ef01d arm_pm_restart +EXPORT_SYMBOL_GPL vmlinux 0xeb4bc07e page_cache_sync_readahead +EXPORT_SYMBOL_GPL vmlinux 0xeb711ae7 snd_soc_params_to_bclk +EXPORT_SYMBOL_GPL vmlinux 0xeb725f6c snd_soc_default_volatile_register +EXPORT_SYMBOL_GPL vmlinux 0xeb797c07 fib_rules_register +EXPORT_SYMBOL_GPL vmlinux 0xeb987e41 unix_peer_get +EXPORT_SYMBOL_GPL vmlinux 0xeb9abbee ata_sff_queue_work +EXPORT_SYMBOL_GPL vmlinux 0xebd9651b scatterwalk_map +EXPORT_SYMBOL_GPL vmlinux 0xebec57c4 ring_buffer_oldest_event_ts +EXPORT_SYMBOL_GPL vmlinux 0xec1b043e regulator_suspend_prepare +EXPORT_SYMBOL_GPL vmlinux 0xec25f967 klist_del +EXPORT_SYMBOL_GPL vmlinux 0xec34971c bus_unregister +EXPORT_SYMBOL_GPL vmlinux 0xec5c1c0a xenbus_register_frontend +EXPORT_SYMBOL_GPL vmlinux 0xec6a4905 blkdev_aio_write +EXPORT_SYMBOL_GPL vmlinux 0xecc4563e snd_soc_bytes_get +EXPORT_SYMBOL_GPL vmlinux 0xed06b916 wakeup_source_drop +EXPORT_SYMBOL_GPL vmlinux 0xed695a2d unregister_jprobe +EXPORT_SYMBOL_GPL vmlinux 0xed7dbae3 usb_remove_phy +EXPORT_SYMBOL_GPL vmlinux 0xedae7530 init_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0xedbc6f67 gnttab_end_foreign_access +EXPORT_SYMBOL_GPL vmlinux 0xedbf3cbb of_get_dma_window +EXPORT_SYMBOL_GPL vmlinux 0xedc73182 kern_mount_data +EXPORT_SYMBOL_GPL vmlinux 0xedd49930 zs_create_pool +EXPORT_SYMBOL_GPL vmlinux 0xeddfd306 device_release_driver +EXPORT_SYMBOL_GPL vmlinux 0xee150233 ata_host_activate +EXPORT_SYMBOL_GPL vmlinux 0xee38f7e5 arizona_request_irq +EXPORT_SYMBOL_GPL vmlinux 0xee4bcdca ata_bmdma_start +EXPORT_SYMBOL_GPL vmlinux 0xee4f3181 wakeup_source_add +EXPORT_SYMBOL_GPL vmlinux 0xee51f36c rdev_get_id +EXPORT_SYMBOL_GPL vmlinux 0xee6b71c4 syscon_regmap_lookup_by_compatible +EXPORT_SYMBOL_GPL vmlinux 0xeefebef6 inet_csk_listen_stop +EXPORT_SYMBOL_GPL vmlinux 0xef251901 blk_lld_busy +EXPORT_SYMBOL_GPL vmlinux 0xef409b74 kmsg_dump_get_line +EXPORT_SYMBOL_GPL vmlinux 0xef5362be platform_device_add +EXPORT_SYMBOL_GPL vmlinux 0xef5f3a4e da903x_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0xef6c3f70 round_jiffies_up_relative +EXPORT_SYMBOL_GPL vmlinux 0xef6c4877 bmp085_remove +EXPORT_SYMBOL_GPL vmlinux 0xef782b88 gnttab_grant_foreign_access_subpage +EXPORT_SYMBOL_GPL vmlinux 0xef9b1ed1 user_instantiate +EXPORT_SYMBOL_GPL vmlinux 0xefc91531 irq_create_of_mapping +EXPORT_SYMBOL_GPL vmlinux 0xefe7ddb5 replace_page_cache_page +EXPORT_SYMBOL_GPL vmlinux 0xf00d58f7 alarm_init +EXPORT_SYMBOL_GPL vmlinux 0xf069b36d led_trigger_rename_static +EXPORT_SYMBOL_GPL vmlinux 0xf078fa3f sdio_f0_writeb +EXPORT_SYMBOL_GPL vmlinux 0xf09805e6 gpiochip_find +EXPORT_SYMBOL_GPL vmlinux 0xf0b58af2 trace_event_buffer_lock_reserve +EXPORT_SYMBOL_GPL vmlinux 0xf0da497d debugfs_create_bool +EXPORT_SYMBOL_GPL vmlinux 0xf0f5dbc2 timerqueue_iterate_next +EXPORT_SYMBOL_GPL vmlinux 0xf0f72dee clk_unprepare +EXPORT_SYMBOL_GPL vmlinux 0xf11a51fc snd_soc_unregister_component +EXPORT_SYMBOL_GPL vmlinux 0xf122830c ata_std_error_handler +EXPORT_SYMBOL_GPL vmlinux 0xf17f1dc2 tty_wakeup +EXPORT_SYMBOL_GPL vmlinux 0xf184d189 kernel_power_off +EXPORT_SYMBOL_GPL vmlinux 0xf1b31314 delayacct_on +EXPORT_SYMBOL_GPL vmlinux 0xf1cf1c5a hwmon_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0xf1e25099 mtd_erase +EXPORT_SYMBOL_GPL vmlinux 0xf1ecd8e4 snd_soc_bytes_put +EXPORT_SYMBOL_GPL vmlinux 0xf200f341 mtd_lock +EXPORT_SYMBOL_GPL vmlinux 0xf21e1f9b disable_percpu_irq +EXPORT_SYMBOL_GPL vmlinux 0xf222f80f usb_unpoison_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0xf2734ef6 crypto_shash_final +EXPORT_SYMBOL_GPL vmlinux 0xf27977e2 async_synchronize_cookie_domain +EXPORT_SYMBOL_GPL vmlinux 0xf2835b23 irq_generic_chip_ops +EXPORT_SYMBOL_GPL vmlinux 0xf2b51302 vfs_listxattr +EXPORT_SYMBOL_GPL vmlinux 0xf2ce7853 snd_soc_jack_free_gpios +EXPORT_SYMBOL_GPL vmlinux 0xf2e96eef alloc_vm_area +EXPORT_SYMBOL_GPL vmlinux 0xf2eeb2ab usbmisc_get_init_data +EXPORT_SYMBOL_GPL vmlinux 0xf2fc7f6e __pm_relax +EXPORT_SYMBOL_GPL vmlinux 0xf2fca922 uart_parse_options +EXPORT_SYMBOL_GPL vmlinux 0xf302febc blk_queue_flush_queueable +EXPORT_SYMBOL_GPL vmlinux 0xf30d91c3 dev_pm_qos_expose_latency_limit +EXPORT_SYMBOL_GPL vmlinux 0xf30ef337 tpm_calc_ordinal_duration +EXPORT_SYMBOL_GPL vmlinux 0xf30fda27 lzo1x_decompress_safe +EXPORT_SYMBOL_GPL vmlinux 0xf315e1f7 pm_generic_freeze_late +EXPORT_SYMBOL_GPL vmlinux 0xf31b3fd1 workqueue_set_max_active +EXPORT_SYMBOL_GPL vmlinux 0xf329ff9a arizona_clk32k_disable +EXPORT_SYMBOL_GPL vmlinux 0xf32bdc5d unregister_xenstore_notifier +EXPORT_SYMBOL_GPL vmlinux 0xf338e607 rtc_class_close +EXPORT_SYMBOL_GPL vmlinux 0xf34d8210 tty_mode_ioctl +EXPORT_SYMBOL_GPL vmlinux 0xf381f34a rtc_irq_unregister +EXPORT_SYMBOL_GPL vmlinux 0xf398c238 ping_recvmsg +EXPORT_SYMBOL_GPL vmlinux 0xf3b451ca kdb_poll_funcs +EXPORT_SYMBOL_GPL vmlinux 0xf3d65baf nf_register_afinfo +EXPORT_SYMBOL_GPL vmlinux 0xf3dd036d regulator_set_voltage_time +EXPORT_SYMBOL_GPL vmlinux 0xf40695a3 uart_set_options +EXPORT_SYMBOL_GPL vmlinux 0xf415d178 snd_soc_dpcm_get_substream +EXPORT_SYMBOL_GPL vmlinux 0xf41a4100 bitmap_resize +EXPORT_SYMBOL_GPL vmlinux 0xf448b33b tc3589x_reg_write +EXPORT_SYMBOL_GPL vmlinux 0xf459cfa6 crypto_register_shash +EXPORT_SYMBOL_GPL vmlinux 0xf494f618 mmc_regulator_get_ocrmask +EXPORT_SYMBOL_GPL vmlinux 0xf499fdb2 rcu_barrier_bh +EXPORT_SYMBOL_GPL vmlinux 0xf4bb04a2 bdi_writeout_inc +EXPORT_SYMBOL_GPL vmlinux 0xf4bb603e device_unregister +EXPORT_SYMBOL_GPL vmlinux 0xf4e0f677 scatterwalk_copychunks +EXPORT_SYMBOL_GPL vmlinux 0xf4f9ecfd sysfs_unmerge_group +EXPORT_SYMBOL_GPL vmlinux 0xf4fc2d6c __ring_buffer_alloc +EXPORT_SYMBOL_GPL vmlinux 0xf534964c xenbus_dev_error +EXPORT_SYMBOL_GPL vmlinux 0xf54bd49b lcm +EXPORT_SYMBOL_GPL vmlinux 0xf553318d cpuidle_pause_and_lock +EXPORT_SYMBOL_GPL vmlinux 0xf5662934 pwm_enable +EXPORT_SYMBOL_GPL vmlinux 0xf57061e0 debugfs_create_x8 +EXPORT_SYMBOL_GPL vmlinux 0xf5785b42 evtchn_get +EXPORT_SYMBOL_GPL vmlinux 0xf5945bac gnttab_free_grant_references +EXPORT_SYMBOL_GPL vmlinux 0xf5a691cd invalidate_bh_lrus +EXPORT_SYMBOL_GPL vmlinux 0xf5b11e58 blkcipher_walk_virt_block +EXPORT_SYMBOL_GPL vmlinux 0xf5c4f362 usb_altnum_to_altsetting +EXPORT_SYMBOL_GPL vmlinux 0xf5c75897 device_create_with_groups +EXPORT_SYMBOL_GPL vmlinux 0xf5cdd940 con_debug_enter +EXPORT_SYMBOL_GPL vmlinux 0xf5ec103a crypto_spawn_tfm2 +EXPORT_SYMBOL_GPL vmlinux 0xf5eec592 ip6_datagram_connect +EXPORT_SYMBOL_GPL vmlinux 0xf5fef4e3 wm5110_spi_regmap +EXPORT_SYMBOL_GPL vmlinux 0xf600ec51 snd_soc_dapm_get_enum_double +EXPORT_SYMBOL_GPL vmlinux 0xf60d1625 mm_kobj +EXPORT_SYMBOL_GPL vmlinux 0xf626f7c0 device_schedule_callback_owner +EXPORT_SYMBOL_GPL vmlinux 0xf6464980 ahci_em_messages +EXPORT_SYMBOL_GPL vmlinux 0xf68fc6c1 snd_soc_default_writable_register +EXPORT_SYMBOL_GPL vmlinux 0xf6b9cffc led_trigger_register +EXPORT_SYMBOL_GPL vmlinux 0xf6c5d823 kobject_rename +EXPORT_SYMBOL_GPL vmlinux 0xf6dc7531 sdio_writew +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 0xf72c0423 platform_get_resource +EXPORT_SYMBOL_GPL vmlinux 0xf72e62ee snd_soc_dapm_ignore_suspend +EXPORT_SYMBOL_GPL vmlinux 0xf739c4be securityfs_create_dir +EXPORT_SYMBOL_GPL vmlinux 0xf74656ab regulator_can_change_voltage +EXPORT_SYMBOL_GPL vmlinux 0xf74dae0f idr_alloc +EXPORT_SYMBOL_GPL vmlinux 0xf76b0a59 read_current_timer +EXPORT_SYMBOL_GPL vmlinux 0xf76e5948 ata_host_detach +EXPORT_SYMBOL_GPL vmlinux 0xf7904088 xenbus_dev_resume +EXPORT_SYMBOL_GPL vmlinux 0xf7a28da8 file_ra_state_init +EXPORT_SYMBOL_GPL vmlinux 0xf7bafb31 subsys_interface_register +EXPORT_SYMBOL_GPL vmlinux 0xf7d44963 sk_set_memalloc +EXPORT_SYMBOL_GPL vmlinux 0xf7e19dbc register_kprobe +EXPORT_SYMBOL_GPL vmlinux 0xf80f2fc3 wm8350_reg_read +EXPORT_SYMBOL_GPL vmlinux 0xf8135f44 snd_soc_dpcm_be_get_state +EXPORT_SYMBOL_GPL vmlinux 0xf81b607a virtqueue_get_buf +EXPORT_SYMBOL_GPL vmlinux 0xf82f16b3 execute_in_process_context +EXPORT_SYMBOL_GPL vmlinux 0xf82f3657 work_on_cpu +EXPORT_SYMBOL_GPL vmlinux 0xf846506f irq_set_affinity_notifier +EXPORT_SYMBOL_GPL vmlinux 0xf84bf74f perf_event_refresh +EXPORT_SYMBOL_GPL vmlinux 0xf86a3a9f clk_gate_ops +EXPORT_SYMBOL_GPL vmlinux 0xf8802492 print_stack_trace +EXPORT_SYMBOL_GPL vmlinux 0xf8abb3aa usb_hcd_unlink_urb_from_ep +EXPORT_SYMBOL_GPL vmlinux 0xf8bdf45d sdhci_runtime_resume_host +EXPORT_SYMBOL_GPL vmlinux 0xf8d04186 ata_sff_port_ops +EXPORT_SYMBOL_GPL vmlinux 0xf8dd005f da9052_regmap_config +EXPORT_SYMBOL_GPL vmlinux 0xf8f3a0fb ata_ratelimit +EXPORT_SYMBOL_GPL vmlinux 0xf8f91ea2 ata_bmdma_irq_clear +EXPORT_SYMBOL_GPL vmlinux 0xf8fe3d0b kmsg_dump_register +EXPORT_SYMBOL_GPL vmlinux 0xf90c4b34 transport_setup_device +EXPORT_SYMBOL_GPL vmlinux 0xf910499c ip6_sk_update_pmtu +EXPORT_SYMBOL_GPL vmlinux 0xf9140774 sdhci_pltfm_pmops +EXPORT_SYMBOL_GPL vmlinux 0xf92ce956 kdb_printf +EXPORT_SYMBOL_GPL vmlinux 0xf932015f __raw_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xf967422b HYPERVISOR_xen_version +EXPORT_SYMBOL_GPL vmlinux 0xf97dcf5c regulator_get_exclusive +EXPORT_SYMBOL_GPL vmlinux 0xf9977e38 wm8994_set_bits +EXPORT_SYMBOL_GPL vmlinux 0xf9a054b5 __round_jiffies +EXPORT_SYMBOL_GPL vmlinux 0xf9ca3160 ata_id_xfermask +EXPORT_SYMBOL_GPL vmlinux 0xf9d9264e xen_have_vector_callback +EXPORT_SYMBOL_GPL vmlinux 0xf9de08d9 digsig_verify +EXPORT_SYMBOL_GPL vmlinux 0xf9e1a77c posix_timer_event +EXPORT_SYMBOL_GPL vmlinux 0xfa012fe7 tracepoint_probe_register +EXPORT_SYMBOL_GPL vmlinux 0xfa13318a pm_schedule_suspend +EXPORT_SYMBOL_GPL vmlinux 0xfa1eb910 unregister_syscore_ops +EXPORT_SYMBOL_GPL vmlinux 0xfa393d97 ata_sff_busy_sleep +EXPORT_SYMBOL_GPL vmlinux 0xfa47b9a6 key_type_asymmetric +EXPORT_SYMBOL_GPL vmlinux 0xfa6411bd snd_soc_add_codec_controls +EXPORT_SYMBOL_GPL vmlinux 0xfa864102 wm831x_reg_unlock +EXPORT_SYMBOL_GPL vmlinux 0xfac78198 tty_buffer_request_room +EXPORT_SYMBOL_GPL vmlinux 0xfae018ad kallsyms_on_each_symbol +EXPORT_SYMBOL_GPL vmlinux 0xfb00c8bd omap_control_usb_phy_power +EXPORT_SYMBOL_GPL vmlinux 0xfb0521d6 regmap_field_free +EXPORT_SYMBOL_GPL vmlinux 0xfb32b30f ring_buffer_read_prepare_sync +EXPORT_SYMBOL_GPL vmlinux 0xfb39c0cf devres_destroy +EXPORT_SYMBOL_GPL vmlinux 0xfb64c99a snd_soc_debugfs_root +EXPORT_SYMBOL_GPL vmlinux 0xfb6eedf9 power_group_name +EXPORT_SYMBOL_GPL vmlinux 0xfb71d774 netlink_add_tap +EXPORT_SYMBOL_GPL vmlinux 0xfb7c1d9e lp8788_write_byte +EXPORT_SYMBOL_GPL vmlinux 0xfb853462 snd_pcm_lib_default_mmap +EXPORT_SYMBOL_GPL vmlinux 0xfb8e7111 usb_deregister +EXPORT_SYMBOL_GPL vmlinux 0xfb9ab635 xenbus_dev_changed +EXPORT_SYMBOL_GPL vmlinux 0xfba69bec spi_sync_locked +EXPORT_SYMBOL_GPL vmlinux 0xfbb5e2fa tcp_fetch_timewait_stamp +EXPORT_SYMBOL_GPL vmlinux 0xfbbedefd of_prop_next_string +EXPORT_SYMBOL_GPL vmlinux 0xfbd2d1f3 wm8400_reset_codec_reg_cache +EXPORT_SYMBOL_GPL vmlinux 0xfbd350f3 snd_soc_dapm_weak_routes +EXPORT_SYMBOL_GPL vmlinux 0xfbd710f7 serial8250_rx_chars +EXPORT_SYMBOL_GPL vmlinux 0xfbd7e1e6 cpuidle_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0xfbfd04a1 ping_seq_stop +EXPORT_SYMBOL_GPL vmlinux 0xfbff4c4d skb_to_sgvec +EXPORT_SYMBOL_GPL vmlinux 0xfc03d97a page_is_ram +EXPORT_SYMBOL_GPL vmlinux 0xfc274534 irq_create_direct_mapping +EXPORT_SYMBOL_GPL vmlinux 0xfc312bcf ata_platform_remove_one +EXPORT_SYMBOL_GPL vmlinux 0xfc4c6469 put_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0xfc4f1174 snd_soc_jack_add_pins +EXPORT_SYMBOL_GPL vmlinux 0xfc4f1d60 sdio_writesb +EXPORT_SYMBOL_GPL vmlinux 0xfc5bfc86 usb_add_gadget_udc_release +EXPORT_SYMBOL_GPL vmlinux 0xfc84c3cb task_user_regset_view +EXPORT_SYMBOL_GPL vmlinux 0xfcd7bc0b ring_buffer_empty +EXPORT_SYMBOL_GPL vmlinux 0xfcd83418 tty_init_termios +EXPORT_SYMBOL_GPL vmlinux 0xfcdb4034 wakeup_source_prepare +EXPORT_SYMBOL_GPL vmlinux 0xfcef6437 sata_pmp_error_handler +EXPORT_SYMBOL_GPL vmlinux 0xfcfe79eb fanout_mutex +EXPORT_SYMBOL_GPL vmlinux 0xfd23dd54 transport_destroy_device +EXPORT_SYMBOL_GPL vmlinux 0xfd32c9ba sysfs_notify +EXPORT_SYMBOL_GPL vmlinux 0xfd3da1cb virtqueue_disable_cb +EXPORT_SYMBOL_GPL vmlinux 0xfd50098f snd_soc_dapm_add_routes +EXPORT_SYMBOL_GPL vmlinux 0xfd51b281 gnttab_end_foreign_access_ref +EXPORT_SYMBOL_GPL vmlinux 0xfd64d979 mtd_block_isbad +EXPORT_SYMBOL_GPL vmlinux 0xfd9c7a45 vfs_kern_mount +EXPORT_SYMBOL_GPL vmlinux 0xfda47e9b pwmchip_remove +EXPORT_SYMBOL_GPL vmlinux 0xfdb9da52 snd_soc_put_enum_double +EXPORT_SYMBOL_GPL vmlinux 0xfe2ed001 regulator_bulk_get +EXPORT_SYMBOL_GPL vmlinux 0xfe42bc97 sysfs_remove_group +EXPORT_SYMBOL_GPL vmlinux 0xfe4f0d20 arizona_clk32k_enable +EXPORT_SYMBOL_GPL vmlinux 0xfe502221 setup_irq +EXPORT_SYMBOL_GPL vmlinux 0xfe990052 gpio_free +EXPORT_SYMBOL_GPL vmlinux 0xfeb9afc2 tc3589x_set_bits +EXPORT_SYMBOL_GPL vmlinux 0xfed11ed1 usb_mon_deregister +EXPORT_SYMBOL_GPL vmlinux 0xfeda4e1c look_up_OID +EXPORT_SYMBOL_GPL vmlinux 0xfedb3835 pm_generic_thaw_noirq +EXPORT_SYMBOL_GPL vmlinux 0xfee700e9 sdio_release_irq +EXPORT_SYMBOL_GPL vmlinux 0xfef8a166 trace_current_buffer_lock_reserve +EXPORT_SYMBOL_GPL vmlinux 0xff05fa13 vring_interrupt +EXPORT_SYMBOL_GPL vmlinux 0xff0770be virtqueue_add_inbuf +EXPORT_SYMBOL_GPL vmlinux 0xff0960fa spi_unregister_master +EXPORT_SYMBOL_GPL vmlinux 0xff0ff225 crypto_blkcipher_type +EXPORT_SYMBOL_GPL vmlinux 0xff5711c5 da9052_adc_read_temp +EXPORT_SYMBOL_GPL vmlinux 0xff5a8cfe cn_del_callback +EXPORT_SYMBOL_GPL vmlinux 0xff5cda7c wakeup_source_remove +EXPORT_SYMBOL_GPL vmlinux 0xff69123f dma_buf_kmap +EXPORT_SYMBOL_GPL vmlinux 0xff6e40a7 xenbus_dev_cancel +EXPORT_SYMBOL_GPL vmlinux 0xff6f61fb debugfs_create_atomic_t +EXPORT_SYMBOL_GPL vmlinux 0xff872ec9 __get_user_pages_fast +EXPORT_SYMBOL_GPL vmlinux 0xffd403fa security_inode_create +EXPORT_SYMBOL_GPL vmlinux 0xffedf23b ata_wait_register --- linux-3.11.0.orig/debian.master/abi/3.11.0-15.23/armhf/generic +++ linux-3.11.0/debian.master/abi/3.11.0-15.23/armhf/generic @@ -0,0 +1,14839 @@ +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 0xed099248 suni_init +EXPORT_SYMBOL drivers/bcma/bcma 0xda5eb6ec bcma_core_dma_translation +EXPORT_SYMBOL drivers/block/drbd/drbd 0x127a5901 drbd_set_st_err_str +EXPORT_SYMBOL drivers/block/drbd/drbd 0x35131b36 drbd_role_str +EXPORT_SYMBOL drivers/block/drbd/drbd 0x7730f22d drbd_conn_str +EXPORT_SYMBOL drivers/block/drbd/drbd 0xaf27bebf drbd_disk_str +EXPORT_SYMBOL drivers/block/paride/paride 0x25beeef6 pi_write_regr +EXPORT_SYMBOL drivers/block/paride/paride 0x29fabb96 pi_write_block +EXPORT_SYMBOL drivers/block/paride/paride 0x32a86de0 pi_connect +EXPORT_SYMBOL drivers/block/paride/paride 0x4b1c73d7 pi_schedule_claimed +EXPORT_SYMBOL drivers/block/paride/paride 0x58ea9b16 pi_do_claimed +EXPORT_SYMBOL drivers/block/paride/paride 0x6059512e pi_disconnect +EXPORT_SYMBOL drivers/block/paride/paride 0x873e78db paride_unregister +EXPORT_SYMBOL drivers/block/paride/paride 0x944f1594 pi_read_regr +EXPORT_SYMBOL drivers/block/paride/paride 0x9f03d0a2 pi_read_block +EXPORT_SYMBOL drivers/block/paride/paride 0xccb18222 pi_release +EXPORT_SYMBOL drivers/block/paride/paride 0xe7a8f1a6 paride_register +EXPORT_SYMBOL drivers/block/paride/paride 0xfeda7e33 pi_init +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x1348760d ipmi_request_settime +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x16dcec76 ipmi_set_my_address +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x1a10c898 ipmi_set_maintenance_mode +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x1aba5db8 ipmi_unregister_smi +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x324960ab ipmi_get_smi_info +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x33d29090 ipmi_smi_watcher_register +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x40f2b10c ipmi_alloc_smi_msg +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x423b776a ipmi_create_user +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x4c971bec ipmi_smi_msg_received +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x524f6f51 ipmi_get_my_address +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x5e80f37c ipmi_unregister_for_cmd +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x5fcdcc05 ipmi_get_my_LUN +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x67cb9784 ipmi_poll_interface +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x69096506 ipmi_smi_watcher_unregister +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x78fd36e7 ipmi_request_supply_msgs +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x804f922a ipmi_addr_length +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x8c8ee770 ipmi_destroy_user +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x96cbcc81 ipmi_get_version +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xa28a2ace ipmi_set_gets_events +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xa2a98b91 ipmi_get_maintenance_mode +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xb675161e ipmi_register_smi +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xb7549bf6 ipmi_smi_add_proc_entry +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xe0fa83f2 ipmi_register_for_cmd +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xe4f4665b ipmi_validate_addr +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xe6ab72a6 ipmi_set_my_LUN +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xf2576cb9 ipmi_smi_watchdog_pretimeout +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xfcb77cfd ipmi_free_recv_msg +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/dma/dw/dw_dmac_core 0x022b55bf dw_dma_cyclic_free +EXPORT_SYMBOL drivers/dma/dw/dw_dmac_core 0x22b99558 dw_dma_get_dst_addr +EXPORT_SYMBOL drivers/dma/dw/dw_dmac_core 0x329b3482 dw_dma_cyclic_start +EXPORT_SYMBOL drivers/dma/dw/dw_dmac_core 0x53a722c6 dw_dma_get_src_addr +EXPORT_SYMBOL drivers/dma/dw/dw_dmac_core 0x91951e5b dw_dma_cyclic_stop +EXPORT_SYMBOL drivers/dma/dw/dw_dmac_core 0xb0a2a81e dw_dma_cyclic_prep +EXPORT_SYMBOL drivers/dma/pl330 0xb6dc17d0 pl330_filter +EXPORT_SYMBOL drivers/edac/edac_core 0x9308d639 edac_mc_find +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 0x18f4eb59 fw_cancel_transaction +EXPORT_SYMBOL drivers/firewire/firewire-core 0x1a1aed9f fw_schedule_bus_reset +EXPORT_SYMBOL drivers/firewire/firewire-core 0x27219f3a fw_iso_buffer_destroy +EXPORT_SYMBOL drivers/firewire/firewire-core 0x2885fec5 fw_get_request_speed +EXPORT_SYMBOL drivers/firewire/firewire-core 0x2ab02f84 fw_iso_context_stop +EXPORT_SYMBOL drivers/firewire/firewire-core 0x3c56ef91 fw_workqueue +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 0x6c00858a fw_core_handle_request +EXPORT_SYMBOL drivers/firewire/firewire-core 0x763e649d fw_bus_type +EXPORT_SYMBOL drivers/firewire/firewire-core 0x796aa8ef fw_core_remove_card +EXPORT_SYMBOL drivers/firewire/firewire-core 0x7b18610a fw_iso_context_queue_flush +EXPORT_SYMBOL drivers/firewire/firewire-core 0x7bc116e6 fw_core_add_address_handler +EXPORT_SYMBOL drivers/firewire/firewire-core 0x7e431b14 fw_csr_string +EXPORT_SYMBOL drivers/firewire/firewire-core 0x86468d44 fw_rcode_string +EXPORT_SYMBOL drivers/firewire/firewire-core 0x8aca5b94 fw_iso_buffer_init +EXPORT_SYMBOL drivers/firewire/firewire-core 0x90863005 fw_high_memory_region +EXPORT_SYMBOL drivers/firewire/firewire-core 0xb38c5334 fw_iso_context_queue +EXPORT_SYMBOL drivers/firewire/firewire-core 0xb455cb35 fw_iso_context_destroy +EXPORT_SYMBOL drivers/firewire/firewire-core 0xbb323103 fw_iso_context_create +EXPORT_SYMBOL drivers/firewire/firewire-core 0xbd200629 fw_send_request +EXPORT_SYMBOL drivers/firewire/firewire-core 0xc351c275 fw_fill_response +EXPORT_SYMBOL drivers/firewire/firewire-core 0xc8d66973 fw_core_handle_bus_reset +EXPORT_SYMBOL drivers/firewire/firewire-core 0xc9ab99a2 fw_core_remove_address_handler +EXPORT_SYMBOL drivers/firewire/firewire-core 0xd0fb033f fw_run_transaction +EXPORT_SYMBOL drivers/firewire/firewire-core 0xd6295780 fw_send_response +EXPORT_SYMBOL drivers/firewire/firewire-core 0xd68fdf32 fw_card_initialize +EXPORT_SYMBOL drivers/firewire/firewire-core 0xdb372de4 fw_iso_context_start +EXPORT_SYMBOL drivers/firewire/firewire-core 0xe61755ea fw_card_add +EXPORT_SYMBOL drivers/firewire/firewire-core 0xe6c1b9e8 fw_core_handle_response +EXPORT_SYMBOL drivers/firewire/firewire-core 0xea3dda41 fw_device_enable_phys_dma +EXPORT_SYMBOL drivers/firewire/firewire-core 0xf4c4a2a1 fw_iso_context_flush_completions +EXPORT_SYMBOL drivers/firewire/firewire-core 0xfb215b81 fw_iso_resource_manage +EXPORT_SYMBOL drivers/fmc/fmc 0x20f4ce7f fmc_driver_unregister +EXPORT_SYMBOL drivers/fmc/fmc 0x28a634dd fmc_scan_sdb_tree +EXPORT_SYMBOL drivers/fmc/fmc 0x2f8c82d2 fmc_device_register +EXPORT_SYMBOL drivers/fmc/fmc 0x40471b05 fmc_reprogram +EXPORT_SYMBOL drivers/fmc/fmc 0x433207fc fmc_find_sdb_device +EXPORT_SYMBOL drivers/fmc/fmc 0x7573edc8 fmc_driver_register +EXPORT_SYMBOL drivers/fmc/fmc 0x7df7740b fmc_device_unregister_n +EXPORT_SYMBOL drivers/fmc/fmc 0x801e2e2b fmc_show_sdb_tree +EXPORT_SYMBOL drivers/fmc/fmc 0x8a833be1 fmc_free_sdb_tree +EXPORT_SYMBOL drivers/fmc/fmc 0x9f51fcc8 fmc_device_unregister +EXPORT_SYMBOL drivers/fmc/fmc 0xc8775100 fmc_device_register_n +EXPORT_SYMBOL drivers/gpu/drm/drm 0x02e6e099 drm_mode_width +EXPORT_SYMBOL drivers/gpu/drm/drm 0x03043964 drm_i2c_encoder_save +EXPORT_SYMBOL drivers/gpu/drm/drm 0x03a51bc5 drm_i2c_encoder_prepare +EXPORT_SYMBOL drivers/gpu/drm/drm 0x098d239a drm_rmmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0ae4b94c drm_ht_remove +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0c17ff92 drm_fasync +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0d26318d drm_add_edid_modes +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0e35085d drm_calc_vbltimestamp_from_scanoutpos +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0e85fdc0 drm_prime_gem_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0f2a963e drm_mm_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0fccafb1 drm_global_item_unref +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0fd60df2 drm_get_connector_status_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0fe6c41b drm_get_platform_dev +EXPORT_SYMBOL drivers/gpu/drm/drm 0x11065515 drm_mode_equal +EXPORT_SYMBOL drivers/gpu/drm/drm 0x12b75085 drm_pci_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x12c6276a drm_buffer_read_object +EXPORT_SYMBOL drivers/gpu/drm/drm 0x133c4405 drm_prime_sg_to_page_addr_arrays +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1379dff7 drm_gem_handle_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0x13be2da4 drm_platform_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x13e1c60e drm_i2c_encoder_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x142b8b35 drm_buffer_copy_from_user +EXPORT_SYMBOL drivers/gpu/drm/drm 0x14a9a178 drm_get_format_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0x15e6790a drm_send_vblank_event +EXPORT_SYMBOL drivers/gpu/drm/drm 0x163f8ab3 drm_mode_connector_attach_encoder +EXPORT_SYMBOL drivers/gpu/drm/drm 0x167fd723 drm_mm_clean +EXPORT_SYMBOL drivers/gpu/drm/drm 0x194eadaa drm_edid_header_is_valid +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1a19bd44 drm_sysfs_hotplug_event +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1a770ac3 drm_detect_hdmi_monitor +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1bc7c59b drm_unplug_dev +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1c0ae7d7 drm_mm_init_scan +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1ca51858 drm_mode_config_reset +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1db75cd7 drm_gem_free_mmap_offset +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1e837252 drm_mm_scan_add_block +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1f7530a1 drm_vblank_put +EXPORT_SYMBOL drivers/gpu/drm/drm 0x20320ab5 drm_vblank_count +EXPORT_SYMBOL drivers/gpu/drm/drm 0x20645642 drm_debug +EXPORT_SYMBOL drivers/gpu/drm/drm 0x207811fa drm_vblank_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2460455f drm_mmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0x253a78e9 drm_poll +EXPORT_SYMBOL drivers/gpu/drm/drm 0x26256356 drm_mode_equal_no_clocks +EXPORT_SYMBOL drivers/gpu/drm/drm 0x27763f17 drm_sysfs_connector_remove +EXPORT_SYMBOL drivers/gpu/drm/drm 0x29be4cd2 drm_property_create_bitmask +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2c1fbdf8 drm_mode_remove +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2c7050d6 drm_pci_exit +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2d271c63 drm_mode_config_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2d50570f drm_rect_calc_hscale +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2d91011f drm_mode_set_config_internal +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2db7a412 drm_plane_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2dec35ce drm_mode_connector_detach_encoder +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2e7a4300 drm_rgb_quant_range_selectable +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2ebb49da drm_vblank_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2f010783 drm_mode_object_find +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2fe66f91 drm_prime_destroy_file_private +EXPORT_SYMBOL drivers/gpu/drm/drm 0x306b23a8 drm_mm_takedown +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3074f033 drm_order +EXPORT_SYMBOL drivers/gpu/drm/drm 0x30e5bf0e drm_noop +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3119dc7e drm_connector_unplug_all +EXPORT_SYMBOL drivers/gpu/drm/drm 0x31d030df drm_core_ioremapfree +EXPORT_SYMBOL drivers/gpu/drm/drm 0x32070b45 drm_framebuffer_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x332a4ab4 drm_mode_create_dvi_i_properties +EXPORT_SYMBOL drivers/gpu/drm/drm 0x34074b7f drm_encoder_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x346127a7 drm_global_item_ref +EXPORT_SYMBOL drivers/gpu/drm/drm 0x36039906 drm_get_minor +EXPORT_SYMBOL drivers/gpu/drm/drm 0x364a9e78 drm_mode_validate_size +EXPORT_SYMBOL drivers/gpu/drm/drm 0x38a4f7ae drm_format_num_planes +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3ac1fef9 drm_mode_legacy_fb_format +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3b9d009a drm_format_plane_cpp +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3d8b5951 drm_plane_force_disable +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3dc565d9 drm_mm_insert_node_generic +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3eb37b9d drm_ht_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0x416063d9 drm_i2c_encoder_mode_fixup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x421008ac drm_property_create_range +EXPORT_SYMBOL drivers/gpu/drm/drm 0x43042352 drm_get_edid +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4318d251 drm_get_pci_dev +EXPORT_SYMBOL drivers/gpu/drm/drm 0x43384bd9 drm_buffer_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x43dee881 drm_gem_handle_delete +EXPORT_SYMBOL drivers/gpu/drm/drm 0x44760534 drm_debugfs_create_files +EXPORT_SYMBOL drivers/gpu/drm/drm 0x44a0c113 drm_mode_height +EXPORT_SYMBOL drivers/gpu/drm/drm 0x456b1542 drm_mode_find_dmt +EXPORT_SYMBOL drivers/gpu/drm/drm 0x484720ca drm_master_put +EXPORT_SYMBOL drivers/gpu/drm/drm 0x48879636 drm_pci_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4986afcf drm_gem_prime_import +EXPORT_SYMBOL drivers/gpu/drm/drm 0x498dcb5e drm_ut_debug_printk +EXPORT_SYMBOL drivers/gpu/drm/drm 0x49c49ea8 drm_prime_init_file_private +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4b385b69 drm_irq_uninstall +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4bde7dbb drm_calc_timestamping_constants +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4c511235 drm_edid_is_valid +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4d088d1f drm_mm_replace_node +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4ea1f5a2 drm_gem_object_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4fab7d55 drm_framebuffer_remove +EXPORT_SYMBOL drivers/gpu/drm/drm 0x50e28c07 drm_edid_to_sad +EXPORT_SYMBOL drivers/gpu/drm/drm 0x519e335c drm_encoder_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x51d0bc0e drm_edid_to_eld +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5263aa90 drm_gem_create_mmap_offset +EXPORT_SYMBOL drivers/gpu/drm/drm 0x526bece1 drm_prime_pages_to_sg +EXPORT_SYMBOL drivers/gpu/drm/drm 0x526f6f71 drm_rect_calc_hscale_relaxed +EXPORT_SYMBOL drivers/gpu/drm/drm 0x52db3f4c drm_ioctl +EXPORT_SYMBOL drivers/gpu/drm/drm 0x55447a29 drm_vblank_pre_modeset +EXPORT_SYMBOL drivers/gpu/drm/drm 0x581ed292 drm_mm_get_block_generic +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5965a791 drm_gem_prime_handle_to_fd +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5c348934 drm_probe_ddc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5d5f821e drm_mm_dump_table +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5dbd3aaa drm_mode_connector_list_update +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5e57f348 drm_mode_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5eafb8e9 drm_mode_set_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5ebb2ac0 drm_debugfs_remove_files +EXPORT_SYMBOL drivers/gpu/drm/drm 0x606ae2bc drm_mm_debug_table +EXPORT_SYMBOL drivers/gpu/drm/drm 0x60a8961f drm_framebuffer_unregister_private +EXPORT_SYMBOL drivers/gpu/drm/drm 0x626ee886 drm_i2c_encoder_restore +EXPORT_SYMBOL drivers/gpu/drm/drm 0x63d6e6bd drm_mode_config_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x644a4951 drm_open +EXPORT_SYMBOL drivers/gpu/drm/drm 0x660312ba drm_mode_probed_add +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6649dc13 drm_clflush_pages +EXPORT_SYMBOL drivers/gpu/drm/drm 0x66ddea01 drm_vblank_post_modeset +EXPORT_SYMBOL drivers/gpu/drm/drm 0x67a6f56b drm_select_eld +EXPORT_SYMBOL drivers/gpu/drm/drm 0x67cef369 drm_vblank_get +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6900d335 drm_rect_clip_scaled +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6ad5416a drm_put_dev +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6b6d7375 drm_timestamp_precision +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6cee2e42 drm_object_property_get_value +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6cf84c7d drm_i2c_encoder_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6ddb8984 drm_crtc_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x72b6c631 drm_sysfs_connector_add +EXPORT_SYMBOL drivers/gpu/drm/drm 0x73f8ef3b drm_gem_mmap_obj +EXPORT_SYMBOL drivers/gpu/drm/drm 0x74783268 drm_cvt_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0x74813d3d drm_gtf_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0x74fbf451 drm_mm_init_scan_with_range +EXPORT_SYMBOL drivers/gpu/drm/drm 0x753c7b99 drm_vblank_off +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7a042080 drm_ati_pcigart_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7a4e7297 drm_edid_block_valid +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7aa23075 drm_connector_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7b17923a drm_irq_install +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7b42b5d4 drm_mode_copy +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7b85f6f8 drm_mm_insert_node +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7c0f2bb5 drm_mm_create_block +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7d3c9dc0 drm_warn_on_modeset_not_all_locked +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7d5c2435 drm_property_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0x803a750b drm_framebuffer_lookup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x80924a9d drm_property_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8186f3f6 drm_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0x82190bf9 drm_plane_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x837b1952 drm_vblank_count_and_time +EXPORT_SYMBOL drivers/gpu/drm/drm 0x85514efe drm_core_ioremap +EXPORT_SYMBOL drivers/gpu/drm/drm 0x857fa4f9 drm_gem_object_handle_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x86379de3 drm_mode_parse_command_line_for_connector +EXPORT_SYMBOL drivers/gpu/drm/drm 0x865eac64 drm_mode_crtc_set_gamma_size +EXPORT_SYMBOL drivers/gpu/drm/drm 0x871ab41a drm_rect_intersect +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8937637a drm_fill_in_dev +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8a2bcf26 drm_getsarea +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8c510862 drm_find_cea_extension +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8c88b4bd drm_gem_prime_fd_to_handle +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8de13715 drm_format_vert_chroma_subsampling +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8dfb019d drm_buffer_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8efe811b drm_core_ioremap_wc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8eff9111 drm_ht_find_item +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8f7df3a7 drm_object_attach_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x91fec1cc drm_rect_calc_vscale +EXPORT_SYMBOL drivers/gpu/drm/drm 0x92b5d8a7 drm_i2c_encoder_commit +EXPORT_SYMBOL drivers/gpu/drm/drm 0x932f2db4 drm_gem_object_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0x94407aed drm_mode_create_from_cmdline_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0x94acbc39 drm_i2c_encoder_detect +EXPORT_SYMBOL drivers/gpu/drm/drm 0x955d725c drm_mm_scan_remove_block +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9745d638 drm_err +EXPORT_SYMBOL drivers/gpu/drm/drm 0x99337096 drm_modeset_lock_all +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9972db48 drm_rect_calc_vscale_relaxed +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9a43ec1c drm_idlelock_take +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9dd34b62 drm_mm_insert_node_in_range +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa0f82f7d drm_addmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa1d93717 drm_addbufs_pci +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa1eabd87 drm_mode_list_concat +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa1fb703c drm_mm_remove_node +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa27f9220 drm_get_last_vbltimestamp +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa3756a4f drm_pci_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa5748813 drm_av_sync_delay +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa70ddf7f drm_gem_object_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa82db9e4 drm_mode_create_dirty_info_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa96acfcb drm_rect_debug_print +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb3f71a7b drm_master_get +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb499b71c drm_framebuffer_unreference +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb8b1931f drm_ati_pcigart_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb95beb55 drm_object_property_set_value +EXPORT_SYMBOL drivers/gpu/drm/drm 0xba2d0719 drm_mode_hsync +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbcc14ef1 drm_i2c_encoder_dpms +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbcc7d58f drm_rmmap_locked +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbe001c53 drm_property_add_enum +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbec4086a drm_mode_create_dithering_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbed92de4 drm_mode_duplicate +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbf3b1a8f drm_pcie_get_speed_cap_mask +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc25a61ec drm_mode_set_crtcinfo +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc414c422 drm_vblank_offdelay +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc8a93d56 drm_platform_exit +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc9372e3b drm_add_modes_noedid +EXPORT_SYMBOL drivers/gpu/drm/drm 0xca45efbc drm_format_horz_chroma_subsampling +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcb18a6e4 drm_gem_private_object_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcb1beab5 drm_mode_vrefresh +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcb2ae243 drm_gem_object_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcb7fb2d2 drm_mode_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcd0fc417 drm_ht_just_insert_please +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcd2b069c drm_mode_connector_update_edid_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcda91c46 drm_mode_debug_printmodeline +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcddfa8c9 drm_core_reclaim_buffers +EXPORT_SYMBOL drivers/gpu/drm/drm 0xce30f21a drm_mode_create_tv_properties +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcf6a93a8 drm_idlelock_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd004a426 drm_property_create_enum +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd0dcdd90 drm_mm_insert_node_in_range_generic +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd125790d drm_hdmi_avi_infoframe_from_display_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd16e350d drm_connector_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd1a02c9c drm_gtf_mode_complex +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd1d2a4d7 drm_get_connector_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd2335101 drm_fb_get_bpp_depth +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd2498780 drm_gem_mmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd523a469 drm_gem_vm_close +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd675f055 drm_prime_remove_buf_handle +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd69acadd drm_get_encoder_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd8353985 drm_gem_vm_open +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd90bc8f8 drm_clflush_sg +EXPORT_SYMBOL drivers/gpu/drm/drm 0xdacddd4a drm_mode_create_scaling_mode_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0xdbb5a9f5 drm_ht_remove_item +EXPORT_SYMBOL drivers/gpu/drm/drm 0xdd4200b5 drm_prime_lookup_buf_handle +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe10a472d drm_mm_pre_get +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe16838c2 drm_mm_search_free_in_range_generic +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe6f46e6e drm_clflush_virt_range +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe7197773 drm_ht_insert_item +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe77924e8 drm_match_cea_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe83eba05 drm_mode_group_init_legacy_group +EXPORT_SYMBOL drivers/gpu/drm/drm 0xee2028b5 drm_framebuffer_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf1421d13 drm_mode_sort +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf2ce8ca3 drm_gem_object_lookup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf4b2e991 drm_mm_put_block +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf519d64e drm_modeset_unlock_all +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf5a50a54 drm_put_minor +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf6017c18 drm_global_mutex +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf612f5e3 drm_mode_validate_clocks +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf6d22890 drm_handle_vblank +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf92c66be drm_mm_search_free_generic +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfa074e8e drm_framebuffer_reference +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfa22e221 drm_i2c_encoder_mode_set +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfb8a84a4 drm_mm_get_block_range_generic +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfb9c228f drm_mode_prune_invalid +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfc3cc5e1 drm_crtc_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfd3390bb drm_read +EXPORT_SYMBOL drivers/gpu/drm/drm 0xff6de437 drm_gem_prime_export +EXPORT_SYMBOL drivers/gpu/drm/drm 0xffc6c87a drm_detect_monitor_audio +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x1a241b5f drm_helper_resume_force_mode +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x291b40bd drm_kms_helper_poll_disable +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x2d7a787f drm_dp_clock_recovery_ok +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x34b892b4 drm_fb_helper_restore_fbdev_mode +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x4ac37fb8 drm_fb_helper_setcmap +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x5038d9de drm_fb_helper_fini +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x56301295 drm_fb_helper_debug_enter +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x5a2cbae0 drm_fb_helper_fill_fix +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x5ea9216f drm_fb_helper_pan_display +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x5ef4e89d drm_helper_probe_single_connector_modes +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x5ff44474 drm_fb_helper_initial_config +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x6a94c898 i2c_dp_aux_add_bus +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x711a004a drm_dp_link_rate_to_bw_code +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7219a2f3 drm_fb_helper_check_var +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7c4e135a drm_kms_helper_hotplug_event +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7e665768 drm_helper_crtc_in_use +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x84a16648 drm_kms_helper_poll_fini +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x8d3c9238 drm_crtc_helper_set_mode +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x923568d7 drm_fb_helper_set_par +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x98c82523 drm_fb_helper_blank +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xa0f7aa75 drm_helper_move_panel_connectors_to_head +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xa23292a9 drm_helper_hpd_irq_event +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xa2770805 drm_helper_connector_dpms +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xa8d6809d drm_dp_bw_code_to_link_rate +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xafeedd5b drm_fb_helper_debug_leave +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xb37a0603 drm_dp_link_train_channel_eq_delay +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xb71ed6de drm_kms_helper_poll_enable +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xc7082df8 drm_helper_mode_fill_fb_struct +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xc7fd39bb drm_dp_channel_eq_ok +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xc83025c6 drm_fb_helper_hotplug_event +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xd02c73c7 drm_dp_link_train_clock_recovery_delay +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xd5d8b6b8 drm_dp_get_adjust_request_pre_emphasis +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xd713aa41 drm_fb_helper_init +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xd9287731 drm_fb_helper_single_add_all_connectors +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xe0e6693d drm_fb_helper_fill_var +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xe6f0297c drm_crtc_helper_set_config +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xf55b6382 drm_helper_disable_unused_functions +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xf9789c70 drm_helper_encoder_in_use +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xfbcb7ab7 drm_kms_helper_poll_init +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xfee43a69 drm_dp_get_adjust_request_voltage +EXPORT_SYMBOL drivers/gpu/drm/drm_usb 0x404e5d63 drm_usb_init +EXPORT_SYMBOL drivers/gpu/drm/drm_usb 0x406c2bb5 drm_usb_exit +EXPORT_SYMBOL drivers/gpu/drm/drm_usb 0xe3fef617 drm_get_usb_dev +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x01dc0280 ttm_bo_evict_mm +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x0a1f3de5 ttm_bo_synccpu_write_grab +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x0d1180f3 ttm_base_object_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x0d63c79b ttm_tt_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x0dacca29 ttm_bo_mem_put +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x0df0709d ttm_eu_reserve_buffers +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x132b05be ttm_round_pot +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x15d7b41a ttm_bo_unlock_delayed_workqueue +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x17e48a1d ttm_base_object_lookup +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x1843400d ttm_mem_global_free +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x1ea5f9b4 ttm_suspend_unlock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x24c55a25 ttm_bo_create +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x2a0a2a0d ttm_bo_mem_space +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x2a26f5c1 ttm_bo_lock_delayed_workqueue +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x2b54aa9a ttm_object_file_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x2c7fac9b ttm_io_prot +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x361836ab ttm_bo_swapout_all +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x3fd8ec61 ttm_mem_io_free +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x4446ece5 ttm_page_alloc_debugfs +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x4d1eea63 ttm_base_object_unref +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x52f73b19 ttm_mem_global_alloc +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x5413dd41 ttm_bo_mmap +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x5559e153 ttm_lock_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x5a1fcb20 ttm_object_device_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x5cf59609 ttm_bo_global_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x5eb665ed ttm_bo_kmap +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x67b1d568 ttm_bo_global_release +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x6ab6d4f0 ttm_suspend_lock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x7180535d ttm_bo_device_release +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x73940eb8 ttm_bo_validate +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x7c8d2926 ttm_tt_bind +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x7d323840 ttm_fbdev_mmap +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x806471a2 ttm_dma_tt_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x80d86f0e ttm_object_device_release +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x81f46281 ttm_pool_populate +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x85d9c1c2 ttm_bo_acc_size +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x862c557b ttm_bo_move_accel_cleanup +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x867802d8 ttm_bo_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x8b218905 ttm_bo_move_memcpy +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x954289ab ttm_read_unlock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x96c66ec9 ttm_mem_global_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x998e45c0 ttm_ref_object_base_unref +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x99f3b15e ttm_tt_fini +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x9bcff5db ttm_bo_synccpu_write_release +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x9c90cead ttm_bo_dma_acc_size +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x9dbd6b59 ttm_bo_init_mm +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xa66bfd48 ttm_vt_unlock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xa7719a78 ttm_mem_io_reserve +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xa92b4e09 ttm_bo_unref +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xa9309cf9 ttm_pool_unpopulate +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xad88e82e ttm_bo_move_ttm +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xada1e7f2 ttm_mem_io_unlock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xb42e34bd ttm_eu_backoff_reservation +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xb72263c9 ttm_write_lock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xb7902d7f ttm_ref_object_add +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xbd1a35b0 ttm_read_lock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xc0f3b21c ttm_tt_set_placement_caching +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xc5973608 ttm_vt_lock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xcaada37d ttm_eu_fence_buffer_objects +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xd3ed041c ttm_mem_global_release +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xd7d462cf ttm_bo_del_sub_from_lru +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xde9ebc11 ttm_bo_kunmap +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xea2edb1a ttm_bo_clean_mm +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xeb339b5e ttm_bo_add_to_lru +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xeb64e61c ttm_bo_manager_func +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xf6493159 ttm_bo_device_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xf65fb491 ttm_write_unlock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xf7767d20 ttm_mem_io_lock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xfb63ca3c ttm_bo_wait +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xfbc2c5ec ttm_object_file_release +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xfc4f6a1f ttm_dma_tt_fini +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xfc68920a ttm_bo_unmap_virtual +EXPORT_SYMBOL drivers/gpu/host1x/host1x 0x09fbc14b host1x_syncpt_wait +EXPORT_SYMBOL drivers/hwmon/hwmon-vid 0x0903c239 vid_from_reg +EXPORT_SYMBOL drivers/hwmon/hwmon-vid 0xef1c781c vid_which_vrm +EXPORT_SYMBOL drivers/hwmon/sch56xx-common 0x0e2a6864 sch56xx_read_virtual_reg +EXPORT_SYMBOL drivers/hwmon/sch56xx-common 0x0f5877d4 sch56xx_read_virtual_reg16 +EXPORT_SYMBOL drivers/hwmon/sch56xx-common 0x34257f35 sch56xx_watchdog_unregister +EXPORT_SYMBOL drivers/hwmon/sch56xx-common 0x5a9742de sch56xx_watchdog_register +EXPORT_SYMBOL drivers/hwmon/sch56xx-common 0xe5022f95 sch56xx_read_virtual_reg12 +EXPORT_SYMBOL drivers/hwmon/sch56xx-common 0xed1d2a08 sch56xx_write_virtual_reg +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-bit 0x1f3e65bd i2c_bit_add_bus +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-bit 0x75b5e607 i2c_bit_add_numbered_bus +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-bit 0xc95891fe i2c_bit_algo +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-pca 0x10f80190 i2c_pca_add_numbered_bus +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-pca 0xabd49ac7 i2c_pca_add_bus +EXPORT_SYMBOL drivers/i2c/busses/i2c-amd756 0xf9fab355 amd756_smbus +EXPORT_SYMBOL drivers/iio/accel/st_accel 0x65c8ff43 st_accel_common_probe +EXPORT_SYMBOL drivers/iio/accel/st_accel 0xc6820047 st_accel_common_remove +EXPORT_SYMBOL drivers/iio/common/hid-sensors/hid-sensor-iio-common 0x1ab363d3 hid_sensor_read_samp_freq_value +EXPORT_SYMBOL drivers/iio/common/hid-sensors/hid-sensor-iio-common 0x51ffbb80 hid_sensor_write_samp_freq_value +EXPORT_SYMBOL drivers/iio/common/hid-sensors/hid-sensor-iio-common 0xa642d497 hid_sensor_parse_common_attributes +EXPORT_SYMBOL drivers/iio/common/hid-sensors/hid-sensor-iio-common 0xdb6445c8 hid_sensor_read_raw_hyst_value +EXPORT_SYMBOL drivers/iio/common/hid-sensors/hid-sensor-iio-common 0xefe0b1ca hid_sensor_write_raw_hyst_value +EXPORT_SYMBOL drivers/iio/common/hid-sensors/hid-sensor-trigger 0x38714b49 hid_sensor_setup_trigger +EXPORT_SYMBOL drivers/iio/common/hid-sensors/hid-sensor-trigger 0x3de9cc6b hid_sensor_remove_trigger +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0x02232c2b st_sensors_sysfs_scale_avail +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0x074d7047 st_sensors_trigger_handler +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0x3dcc1433 st_sensors_sysfs_set_sampling_frequency +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0x4dd10a0b st_sensors_set_dataready_irq +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0x778c4255 st_sensors_get_buffer_element +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0x81130e98 st_sensors_set_axis_enable +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0x87ccfecd st_sensors_set_enable +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0xb0aef008 st_sensors_allocate_trigger +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0xbe1a2d5c st_sensors_sysfs_sampling_frequency_avail +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0xc8a8be03 st_sensors_sysfs_get_sampling_frequency +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0xd088064c st_sensors_deallocate_trigger +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0xe64e01b9 st_sensors_set_fullscale_by_gain +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0xf0351a1a st_sensors_check_device_support +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0xf9a4f59b st_sensors_set_odr +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0xfbd9dae8 st_sensors_init_sensor +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0xffc73ffc st_sensors_read_info_raw +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors_i2c 0x08d4a81d st_sensors_i2c_configure +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors_spi 0x16b4dfea st_sensors_spi_configure +EXPORT_SYMBOL drivers/iio/gyro/st_gyro 0x37072a19 st_gyro_common_remove +EXPORT_SYMBOL drivers/iio/gyro/st_gyro 0x9c5c3bfa st_gyro_common_probe +EXPORT_SYMBOL drivers/iio/imu/adis_lib 0x4c4fff46 adis_debugfs_reg_access +EXPORT_SYMBOL drivers/iio/imu/adis_lib 0x63d8ed84 adis_enable_irq +EXPORT_SYMBOL drivers/iio/industrialio 0x15e252e6 iio_triggered_buffer_predisable +EXPORT_SYMBOL drivers/iio/industrialio 0x1c072399 iio_buffer_read_length +EXPORT_SYMBOL drivers/iio/industrialio 0x1e36ca35 iio_buffer_write_length +EXPORT_SYMBOL drivers/iio/industrialio 0x2c61f0c3 iio_trigger_notify_done +EXPORT_SYMBOL drivers/iio/industrialio 0x2d6bcdcb iio_trigger_generic_data_rdy_poll +EXPORT_SYMBOL drivers/iio/industrialio 0x2e8855bd iio_triggered_buffer_postenable +EXPORT_SYMBOL drivers/iio/industrialio 0x3e7cdcb6 iio_bus_type +EXPORT_SYMBOL drivers/iio/industrialio 0x46724502 iio_trigger_poll +EXPORT_SYMBOL drivers/iio/industrialio 0x52d29916 iio_device_unregister +EXPORT_SYMBOL drivers/iio/industrialio 0x54ebbde0 iio_device_alloc +EXPORT_SYMBOL drivers/iio/industrialio 0x59817782 iio_buffer_register +EXPORT_SYMBOL drivers/iio/industrialio 0x7043cf5e iio_trigger_unregister +EXPORT_SYMBOL drivers/iio/industrialio 0x766c3e33 iio_device_free +EXPORT_SYMBOL drivers/iio/industrialio 0x79cc0844 iio_push_event +EXPORT_SYMBOL drivers/iio/industrialio 0x7e5ebd94 iio_buffer_store_enable +EXPORT_SYMBOL drivers/iio/industrialio 0x7f98c6a2 iio_device_register +EXPORT_SYMBOL drivers/iio/industrialio 0x9637d42b iio_buffer_init +EXPORT_SYMBOL drivers/iio/industrialio 0xa8a2a478 iio_trigger_poll_chained +EXPORT_SYMBOL drivers/iio/industrialio 0xb63b5418 iio_buffer_show_enable +EXPORT_SYMBOL drivers/iio/industrialio 0xb8f1efc7 iio_read_const_attr +EXPORT_SYMBOL drivers/iio/industrialio 0xc46d00e9 iio_trigger_alloc +EXPORT_SYMBOL drivers/iio/industrialio 0xd53bad64 iio_trigger_register +EXPORT_SYMBOL drivers/iio/industrialio 0xdf76bbeb iio_pollfunc_store_time +EXPORT_SYMBOL drivers/iio/industrialio 0xe5b120ce iio_buffer_unregister +EXPORT_SYMBOL drivers/iio/industrialio 0xee26175f iio_trigger_free +EXPORT_SYMBOL drivers/iio/industrialio 0xfea7feba iio_sw_buffer_preenable +EXPORT_SYMBOL drivers/iio/industrialio-triggered-buffer 0x3c0bbe86 iio_triggered_buffer_setup +EXPORT_SYMBOL drivers/iio/industrialio-triggered-buffer 0x6adf20a4 iio_triggered_buffer_cleanup +EXPORT_SYMBOL drivers/iio/kfifo_buf 0xdd3e960b iio_kfifo_allocate +EXPORT_SYMBOL drivers/iio/kfifo_buf 0xf0c35fe3 iio_kfifo_free +EXPORT_SYMBOL drivers/iio/magnetometer/st_magn 0x7e0a454f st_magn_common_probe +EXPORT_SYMBOL drivers/iio/magnetometer/st_magn 0x8cee3b64 st_magn_common_remove +EXPORT_SYMBOL drivers/iio/pressure/st_pressure 0x24214dbe st_press_common_remove +EXPORT_SYMBOL drivers/iio/pressure/st_pressure 0x7eff128a st_press_common_probe +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x1c3c0ad3 rdma_addr_size +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x37838b44 rdma_translate_ip +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x5347cc38 rdma_addr_unregister_client +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x7df81f32 rdma_addr_register_client +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x9d1f522d rdma_addr_cancel +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0xd8fb4b83 rdma_copy_addr +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0xe802975d rdma_resolve_ip +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x1c5e0d09 ib_destroy_cm_id +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x1f998037 ib_send_cm_sidr_rep +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x4dece802 ib_send_cm_req +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x56d0f4ba ib_send_cm_rtu +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x6054459e ib_cm_listen +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x7c1ce516 ib_send_cm_rep +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x99674b68 ib_send_cm_lap +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xa33ab521 ib_cm_init_qp_attr +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xae899ca1 ib_send_cm_dreq +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xb33267dc ib_send_cm_apr +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xb8889160 ib_create_cm_id +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xc29b8e7c cm_class +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xc75b4ee7 ib_send_cm_drep +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xd22f26d9 ib_send_cm_mra +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xd87fd278 ib_send_cm_sidr_req +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xdb3d1111 ib_send_cm_rej +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xf15ad622 ib_cm_notify +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x0423acbc ib_register_event_handler +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x06b03b5e ib_find_cached_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x06c82fcf mult_to_ib_rate +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x0c1b9ac1 ib_ud_header_unpack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x0c6bf6f5 ib_create_ah_from_wc +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x0d87c2ad ib_umem_release +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x0db528e2 ib_unregister_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x0f282a22 ib_find_cached_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x10aefbc1 ib_modify_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x14f84918 ib_rate_to_mbps +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x171f99f1 ib_rate_to_mult +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1e491a04 ib_unmap_fmr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1fe23f81 ib_modify_qp_is_ok +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x226a288e ib_unregister_client +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x24faa333 ib_resize_cq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x27574525 ib_dealloc_xrcd +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x2762f129 ib_query_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x29d3f564 ib_alloc_pd +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x2c49c182 ib_attach_mcast +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x2c76eaf8 ib_find_exact_cached_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x2e4aec6b ib_get_client_data +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x2ed6e386 ib_ud_header_pack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3201fb49 ib_query_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x362b90de ib_dispatch_event +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x37b574d0 ib_create_cq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3b3033e8 ib_query_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3c5cd9b0 ib_alloc_fast_reg_page_list +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x44aec20c ib_alloc_fmr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x44dcfca9 ib_dealloc_mw +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x48af6d9a ib_dealloc_fmr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x49e89f4e ib_destroy_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x4be87559 ib_query_srq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x4bf7de02 ib_get_cached_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x4c915b14 ib_reg_phys_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x4cb912ca ib_create_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x4dac0325 ib_register_client +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x50dbc447 ib_flush_fmr_pool +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x520b2638 ib_pack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x5802a843 ib_get_cached_lmc +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x5e894eab ib_alloc_fast_reg_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x5fe3b2a7 ib_set_client_data +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x62aebc17 ib_destroy_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x6365b49a ib_dealloc_pd +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x649b6915 ib_modify_srq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x677a3a80 ib_close_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x699b622c ib_rereg_phys_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x6b42dce1 ib_dereg_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x6b5ef4e4 ib_query_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7385aa03 ib_open_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x76a625c4 ib_modify_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x813a7653 ib_umem_get +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x81ee5154 ib_find_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x88000038 rdma_port_get_link_layer +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x891d2222 ib_free_fast_reg_page_list +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x8bf01749 ib_modify_port +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x8c48d8f5 ib_init_ah_from_wc +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x8f8dffdf ibnl_put_msg +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x967fa07d ib_alloc_xrcd +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x96ce6c46 rdma_node_get_transport +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x9e28271a ib_find_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xa1016099 ib_modify_cq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xaca65605 ib_create_fmr_pool +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xad8a44d6 ib_alloc_mw +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xae81acf7 ib_get_cached_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xaeb7b7a4 ib_alloc_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xaf3ac393 ib_fmr_pool_map_phys +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb1a312e1 ib_unpack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb5380fda ib_unregister_event_handler +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb77f941f ib_modify_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xbeb3ec62 ib_query_port +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc32b59ff ib_destroy_fmr_pool +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc3b5942a ib_fmr_pool_unmap +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc67f14a5 ibnl_remove_client +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc9344d65 ibnl_put_attr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc95ccd2a ib_register_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xcbcf1a4a ib_create_srq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd1ec6d43 ib_umem_page_count +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd8eaa3ff ib_dealloc_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xdc5f9a24 ib_create_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xdc96081a ib_destroy_srq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xdf49c3f4 ib_get_dma_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xdf8289e0 ib_detach_mcast +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe279104e ib_query_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe6ef613c ibnl_add_client +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf16ca5d3 ib_destroy_cq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf5d9875e ib_query_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xfc150956 ib_ud_header_init +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x07701fc0 ib_unregister_mad_agent +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x43d23168 ib_free_recv_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x5aac8622 ib_register_mad_snoop +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x5b4d6717 ib_modify_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x6f077fcf ib_get_mad_data_offset +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x77e454db ib_free_send_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x7b5d4b7a ib_is_mad_class_rmpp +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x7f366c22 ib_create_send_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x946d5d27 ib_response_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x96bcf24f ib_cancel_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x97115ede ib_get_rmpp_segment +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xd23ffb11 ib_register_mad_agent +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xd3fc34fa ib_redirect_mad_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xe113f1c8 ib_post_send_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xfd65f182 ib_process_mad_wc +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x2f91699b ib_init_ah_from_mcmember +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x576fdbac ib_sa_free_multicast +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x65ed7c0f ib_sa_guid_info_rec_query +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x694d7d2f ib_sa_path_rec_get +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x7fe99b3f ib_sa_join_multicast +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x9e7aad54 ib_sa_register_client +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xa54323e4 ib_init_ah_from_path +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xb18c2d06 ib_sa_service_rec_query +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xda0d50ec ib_sa_cancel_query +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xde9e1b2c ib_sa_unregister_client +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xe6b65f5a ib_sa_get_mcmember_rec +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xe9efd86f ib_sa_pack_path +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xf6b6444b ib_sa_unpack_path +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x02f847bc ib_copy_path_rec_from_user +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x07cf5a51 ib_copy_ah_attr_to_user +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x18382f6a ib_copy_path_rec_to_user +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x184f3575 ib_copy_qp_attr_to_user +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x0739a9a4 iw_cm_init_qp_attr +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x28fb2984 iw_cm_disconnect +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x2ad59826 iw_cm_accept +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x3870c29d iw_cm_reject +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x41a434fb iw_cm_connect +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x54f89182 iw_destroy_cm_id +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0xa4fb6cdf iw_create_cm_id +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0xc6495f41 iw_cm_listen +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x149e7f38 rdma_destroy_id +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x15c98b0a rdma_create_id +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x1a8fcbde rdma_init_qp_attr +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x1e65b1e0 rdma_listen +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x24082529 rdma_connect +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x2695eb9f rdma_set_reuseaddr +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x29130ab7 rdma_resolve_addr +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x2ab39de6 rdma_disconnect +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x41e5175e rdma_accept +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x432e0fd9 rdma_bind_addr +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x437ebd78 rdma_get_service_id +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x4d1e2756 rdma_reject +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x69ee02fd rdma_set_ib_paths +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x6cef3bb8 rdma_create_qp +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x9b351744 rdma_set_afonly +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xa827936d rdma_set_service_type +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xc5601af6 rdma_resolve_route +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xd97acb09 rdma_destroy_qp +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xefdee2b3 rdma_leave_multicast +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xf500e3a0 rdma_join_multicast +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xf696722c rdma_notify +EXPORT_SYMBOL drivers/input/gameport/gameport 0x1ab84f4f gameport_unregister_driver +EXPORT_SYMBOL drivers/input/gameport/gameport 0x31bafda8 gameport_start_polling +EXPORT_SYMBOL drivers/input/gameport/gameport 0x44594522 gameport_unregister_port +EXPORT_SYMBOL drivers/input/gameport/gameport 0x84f1784d gameport_stop_polling +EXPORT_SYMBOL drivers/input/gameport/gameport 0xa033768c __gameport_register_port +EXPORT_SYMBOL drivers/input/gameport/gameport 0xa496bcf2 gameport_set_phys +EXPORT_SYMBOL drivers/input/gameport/gameport 0xb4ffef7e gameport_open +EXPORT_SYMBOL drivers/input/gameport/gameport 0xd7c4c066 __gameport_register_driver +EXPORT_SYMBOL drivers/input/gameport/gameport 0xe0833390 gameport_close +EXPORT_SYMBOL drivers/input/input-polldev 0x19eac895 input_unregister_polled_device +EXPORT_SYMBOL drivers/input/input-polldev 0x1efff479 input_allocate_polled_device +EXPORT_SYMBOL drivers/input/input-polldev 0x770e092e input_free_polled_device +EXPORT_SYMBOL drivers/input/input-polldev 0x7c319f44 input_register_polled_device +EXPORT_SYMBOL drivers/input/matrix-keymap 0x1afaf6a8 matrix_keypad_build_keymap +EXPORT_SYMBOL drivers/input/misc/ad714x 0x3239c0c5 ad714x_probe +EXPORT_SYMBOL drivers/input/misc/ad714x 0xcd772f7a ad714x_enable +EXPORT_SYMBOL drivers/input/misc/ad714x 0xda9ca576 ad714x_disable +EXPORT_SYMBOL drivers/input/misc/ad714x 0xfb0e081c ad714x_remove +EXPORT_SYMBOL drivers/input/misc/cma3000_d0x 0x892d76b2 cma3000_resume +EXPORT_SYMBOL drivers/input/misc/cma3000_d0x 0x89d9444e cma3000_exit +EXPORT_SYMBOL drivers/input/misc/cma3000_d0x 0x9db2a7cb cma3000_init +EXPORT_SYMBOL drivers/input/misc/cma3000_d0x 0xca3f100a cma3000_suspend +EXPORT_SYMBOL drivers/input/sparse-keymap 0x06d92761 sparse_keymap_entry_from_keycode +EXPORT_SYMBOL drivers/input/sparse-keymap 0x24987d8e sparse_keymap_report_entry +EXPORT_SYMBOL drivers/input/sparse-keymap 0x35363fa9 sparse_keymap_entry_from_scancode +EXPORT_SYMBOL drivers/input/sparse-keymap 0x9608c310 sparse_keymap_report_event +EXPORT_SYMBOL drivers/input/sparse-keymap 0xd4aebf8c sparse_keymap_setup +EXPORT_SYMBOL drivers/input/sparse-keymap 0xf49f45f9 sparse_keymap_free +EXPORT_SYMBOL drivers/input/touchscreen/ad7879 0x1be1af32 ad7879_probe +EXPORT_SYMBOL drivers/input/touchscreen/ad7879 0x28b8ad96 ad7879_pm_ops +EXPORT_SYMBOL drivers/input/touchscreen/ad7879 0x97f83edf ad7879_remove +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x04403fcf unregister_capi_driver +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x1309537f capi_ctr_suspend_output +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x14f2aa5a capi20_get_version +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x16833356 capi20_put_message +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x19fddbf2 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 0x37b19d19 attach_capi_ctr +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x47d3fc51 capi_info2str +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x50b33ca4 capi_cmsg2message +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x536f8f7f detach_capi_ctr +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x5be3e7cd 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 0x64bc7fac capi_ctr_ready +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 0xa4e0cdd9 capi_ctr_handle_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 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 0xeeff046c capi20_register +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xeff51f45 capi20_release +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x1ddb56c5 b1_send_message +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x2a35bd88 b1_alloc_card +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x2bc92438 b1_load_firmware +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x367acc8e b1_reset_ctr +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x5ab00ce8 b1ctl_proc_fops +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x85b78fb1 b1_register_appl +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x85f09690 b1_irq_table +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x9c6f4625 b1_loaded +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xb3287e82 b1_parse_version +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xb41bf357 b1_getrevision +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xd05bda43 b1_release_appl +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xdae3d9f7 b1_load_config +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xdcbb8e55 b1_free_card +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xdfd28376 b1_detect +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xe42c284e avmcard_dma_free +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xe98ae948 b1_load_t4file +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xf970d1a1 avmcard_dma_alloc +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xfa10fee4 b1_interrupt +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x1260bc35 b1dmactl_proc_fops +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x2e1b0c23 b1dma_reset_ctr +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x68054c73 b1dma_reset +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x828b47a2 b1dma_register_appl +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x9433737e b1dma_send_message +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0xa860f192 t1pci_detect +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0xaa5dc0b8 b1dma_release_appl +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0xb4880ea8 b1dma_load_firmware +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0xd6f9f1ea b1dma_interrupt +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0xf67942e1 b1pciv4_detect +EXPORT_SYMBOL drivers/isdn/hardware/eicon/divadidd 0x2974ead1 DIVA_DIDD_Read +EXPORT_SYMBOL drivers/isdn/hardware/eicon/divadidd 0x7ab59853 proc_net_eicon +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0xb9eff27a mISDNisac_irq +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0xbe38947c mISDNisac_init +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0xe3239379 mISDNipac_irq +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0xebcf6c5d mISDNipac_init +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNisar 0x3ba7d811 mISDNisar_init +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNisar 0xd7cd115e 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 0xdd082588 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 0x0f3408b4 isac_setup +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0x3f3b323a isac_d_l2l1 +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0x45e1c0d4 isacsx_setup +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0x7fd17cd2 isac_init +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0x8799b612 isacsx_irq +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0xea16f59c isac_irq +EXPORT_SYMBOL drivers/isdn/i4l/isdn 0x9767ff68 isdn_ppp_register_compressor +EXPORT_SYMBOL drivers/isdn/i4l/isdn 0x9c470105 isdn_ppp_unregister_compressor +EXPORT_SYMBOL drivers/isdn/i4l/isdn 0xa8fc65ad 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 0x1b56da68 bchannel_senddata +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x2348cc3c mISDN_FsmFree +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x2bd474ba recv_Dchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x33fdbf9d bchannel_get_rxbuf +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x3c781002 mISDN_unregister_device +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x47457496 get_next_dframe +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x4c8fc4ee mISDN_ctrl_bchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x50c2230c mISDN_FsmChangeState +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x511100ea recv_Dchannel_skb +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x52f90735 queue_ch_frame +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x54451388 mISDN_FsmRestartTimer +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x588886a6 l1_event +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x614ede30 mISDN_FsmAddTimer +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x6e5949a7 recv_Bchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x7d4b6a81 dchannel_senddata +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x8089a5f4 get_next_bframe +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x80e00a01 create_l1 +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x88ab904f mISDN_initdchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x8a4e99fb mISDN_clock_update +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x907cc602 mISDN_initbchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x96309324 mISDN_FsmDelTimer +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xa4ac5d5a mISDN_freebchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xaaf4a710 mISDNDevName4ch +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xb4e082b4 mISDN_clear_bchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xc3401729 mISDN_register_clock +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xd144f4eb mISDN_unregister_Bprotocol +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xd285995f mISDN_clock_get +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xd5145151 mISDN_FsmEvent +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xe18709ef recv_Bchannel_skb +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xe1a9e564 mISDN_freedchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xe1b51cfb 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 0xf46d2040 recv_Echannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xf4c12d27 mISDN_register_device +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/mailbox/omap-mailbox 0x2e2ec38e omap_mbox_save_ctx +EXPORT_SYMBOL drivers/mailbox/omap-mailbox 0x3dabe033 omap_mbox_disable_irq +EXPORT_SYMBOL drivers/mailbox/omap-mailbox 0x86344c07 omap_mbox_msg_send +EXPORT_SYMBOL drivers/mailbox/omap-mailbox 0xa3cf7420 omap_mbox_get +EXPORT_SYMBOL drivers/mailbox/omap-mailbox 0xb6926a23 omap_mbox_restore_ctx +EXPORT_SYMBOL drivers/mailbox/omap-mailbox 0xd90e0f07 omap_mbox_register +EXPORT_SYMBOL drivers/mailbox/omap-mailbox 0xdbc75fe3 omap_mbox_unregister +EXPORT_SYMBOL drivers/mailbox/omap-mailbox 0xdd890e94 omap_mbox_enable_irq +EXPORT_SYMBOL drivers/mailbox/omap-mailbox 0xfa53333e omap_mbox_put +EXPORT_SYMBOL drivers/md/dm-log 0x190e75ec dm_dirty_log_type_unregister +EXPORT_SYMBOL drivers/md/dm-log 0x90863398 dm_dirty_log_destroy +EXPORT_SYMBOL drivers/md/dm-log 0x9b748802 dm_dirty_log_create +EXPORT_SYMBOL drivers/md/dm-log 0xe243774f dm_dirty_log_type_register +EXPORT_SYMBOL drivers/md/dm-snapshot 0x00aa39d1 dm_snap_origin +EXPORT_SYMBOL drivers/md/dm-snapshot 0x63a6daa4 dm_exception_store_destroy +EXPORT_SYMBOL drivers/md/dm-snapshot 0x72629566 dm_exception_store_create +EXPORT_SYMBOL drivers/md/dm-snapshot 0x951a3647 dm_snap_cow +EXPORT_SYMBOL drivers/md/dm-snapshot 0x999bf9d0 dm_exception_store_type_register +EXPORT_SYMBOL drivers/md/dm-snapshot 0x9f176910 dm_exception_store_type_unregister +EXPORT_SYMBOL drivers/md/raid456 0x38424440 raid5_set_cache_size +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0x0012d8c5 flexcop_sram_set_dest +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0x04232ce4 flexcop_pass_dmx_packets +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0x04b30975 flexcop_device_initialize +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0x366f74d8 flexcop_device_kfree +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0x3cf30328 flexcop_dump_reg +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0x4086b692 flexcop_i2c_request +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0x481c0615 flexcop_wan_set_speed +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0x5e743d5b flexcop_device_exit +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0x669b0d26 flexcop_sram_ctrl +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0x8b048737 flexcop_device_kmalloc +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0x93b53110 flexcop_pass_dmx_data +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0x9d797cec flexcop_eeprom_check_mac_addr +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0x9d974d8f flexcop_pid_feed_control +EXPORT_SYMBOL drivers/media/common/btcx-risc 0x3fcb7f11 btcx_riscmem_free +EXPORT_SYMBOL drivers/media/common/btcx-risc 0x495e4b0c btcx_calc_skips +EXPORT_SYMBOL drivers/media/common/btcx-risc 0xad2fe38b btcx_sort_clips +EXPORT_SYMBOL drivers/media/common/btcx-risc 0xb9d1cdcf btcx_riscmem_alloc +EXPORT_SYMBOL drivers/media/common/btcx-risc 0xc368f8e6 btcx_align +EXPORT_SYMBOL drivers/media/common/btcx-risc 0xcda0ded2 btcx_screen_clips +EXPORT_SYMBOL drivers/media/common/cx2341x 0x1ca0c084 cx2341x_log_status +EXPORT_SYMBOL drivers/media/common/cx2341x 0x2f25eee2 cx2341x_update +EXPORT_SYMBOL drivers/media/common/cx2341x 0x3db8be82 cx2341x_ctrl_query +EXPORT_SYMBOL drivers/media/common/cx2341x 0x5b88faf6 cx2341x_ext_ctrls +EXPORT_SYMBOL drivers/media/common/cx2341x 0x8864d169 cx2341x_handler_set_busy +EXPORT_SYMBOL drivers/media/common/cx2341x 0x899dbb03 cx2341x_handler_init +EXPORT_SYMBOL drivers/media/common/cx2341x 0x8a0158b2 cx2341x_handler_set_50hz +EXPORT_SYMBOL drivers/media/common/cx2341x 0xc184ec1e cx2341x_ctrl_get_menu +EXPORT_SYMBOL drivers/media/common/cx2341x 0xcf76ce95 cx2341x_fill_defaults +EXPORT_SYMBOL drivers/media/common/cx2341x 0xcf8b77a4 cx2341x_mpeg_ctrls +EXPORT_SYMBOL drivers/media/common/cx2341x 0xfd5b4d23 cx2341x_handler_setup +EXPORT_SYMBOL drivers/media/common/cypress_firmware 0xd1d533c9 cypress_load_firmware +EXPORT_SYMBOL drivers/media/common/tveeprom 0x18c6578b tveeprom_hauppauge_analog +EXPORT_SYMBOL drivers/media/common/tveeprom 0x22964e5d tveeprom_read +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x09420e5d dvb_ca_en50221_release +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x0cf6308d dvb_dmx_swfilter_packets +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x11c79e30 dvb_generic_open +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x16ec2318 dvb_dmx_swfilter_204 +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x17523ce7 dvb_frontend_sleep_until +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x189aea8e dvb_net_release +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x19e5ffd0 dvb_frontend_detach +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x1ad99f2f dvb_register_frontend +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x1c5af04a dvb_dmxdev_init +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x1fa463a0 dvb_ca_en50221_init +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x2af217f8 dvb_ca_en50221_frda_irq +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x2b2ff0e7 dvb_dmxdev_release +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x344908d4 dvb_ringbuffer_free +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x3656cb10 dvb_ringbuffer_init +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x3c353ef1 dvb_ca_en50221_camready_irq +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x45e2b339 dvb_generic_release +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x5eefba32 dvb_generic_ioctl +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x629f9d31 dvb_ringbuffer_read_user +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x72180695 dvb_ringbuffer_flush_spinlock_wakeup +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x73a4a07a dvb_register_adapter +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x74a5a698 dvb_filter_pes2ts_init +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x7c2b007b dvb_net_init +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x80e3832d dvb_filter_get_ac3info +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x8633f37b dvb_ringbuffer_flush +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x8e4677cb dvb_ca_en50221_camchange_irq +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x94060852 dvb_unregister_adapter +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x96b8dcbf dvb_frontend_suspend +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x9c19040b dvb_ringbuffer_write +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xa1dc5ddc dvb_dmx_swfilter +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xa707c2e5 dvb_dmx_swfilter_raw +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xa9aad3b5 dvb_dmx_init +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xac4ca1b0 intlog2 +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xafe19f27 dvb_frontend_resume +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xb1551397 dvb_frontend_reinitialise +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xd0d66e07 dvb_unregister_device +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xd68a099e timeval_usec_diff +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xdb1a8bd4 dvb_ringbuffer_empty +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xdc094c39 dvb_ringbuffer_avail +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xe56ec376 dvb_register_device +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xe5ae8707 intlog10 +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xf1f5cbbc dvb_dmx_release +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xf48116c6 dvb_ringbuffer_read +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xf826deb0 dvb_filter_pes2ts +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xfa251e50 dvb_unregister_frontend +EXPORT_SYMBOL drivers/media/dvb-frontends/a8293 0xe573667b a8293_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/af9013 0xe42c2c48 af9013_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/af9033 0xe4593923 af9033_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/atbm8830 0x5e69399e atbm8830_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_common 0x00393e8f au8522_sleep +EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_common 0x350dbcea au8522_i2c_gate_ctrl +EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_common 0x631c700f au8522_writereg +EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_common 0x85e4df29 au8522_init +EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_common 0xbb641ee1 au8522_analog_i2c_gate_ctrl +EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_common 0xd24a3e18 au8522_release_state +EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_common 0xec93d4d6 au8522_get_state +EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_common 0xf72a912e au8522_led_ctrl +EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_common 0xfe8526b1 au8522_readreg +EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_dig 0xa1d2ecd2 au8522_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/bcm3510 0xa222e3be bcm3510_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/cx22700 0x488ee474 cx22700_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/cx22702 0xc8fc45c6 cx22702_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/cx24110 0x0cf6599a cx24110_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/cx24113 0x046e8414 cx24113_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/cx24113 0xe840bb86 cx24113_agc_callback +EXPORT_SYMBOL drivers/media/dvb-frontends/cx24116 0x8a8558d0 cx24116_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/cx24123 0x007289a6 cx24123_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/cx24123 0x46fca366 cx24123_get_tuner_i2c_adapter +EXPORT_SYMBOL drivers/media/dvb-frontends/cxd2820r 0xfce81776 cxd2820r_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0070 0x08390be4 dib0070_get_rf_output +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0070 0x5322fd4a dib0070_set_rf_output +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0070 0x53332678 dib0070_ctrl_agc_filter +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0070 0x867059d5 dib0070_wbd_offset +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0070 0xb268dbbe dib0070_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x05515d25 dib0090_set_vga +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x0a1d6c72 dib0090_dcc_freq +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x11baa0cf dib0090_update_rframp_7090 +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x4ea42ec8 dib0090_set_tune_state +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x5c75acf3 dib0090_get_current_gain +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x66a550a0 dib0090_gain_control +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x864c32d6 dib0090_fw_register +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x9f7da59e dib0090_pwm_gain_reset +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0xa7f8a618 dib0090_update_tuning_table_7090 +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0xa97928b8 dib0090_get_wbd_offset +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0xd072876d dib0090_get_wbd_target +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0xdee476fd dib0090_register +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0xdf69fa77 dib0090_set_dc_servo +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0xe13471c9 dib0090_set_switch +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0xfd38c28c dib0090_get_tune_state +EXPORT_SYMBOL drivers/media/dvb-frontends/dib3000mb 0xbbb54f4a dib3000mb_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/dib3000mc 0x930de299 dib3000mc_i2c_enumeration +EXPORT_SYMBOL drivers/media/dvb-frontends/dib3000mc 0x9950783e dib3000mc_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/dib3000mc 0x99f58d53 dib3000mc_set_config +EXPORT_SYMBOL drivers/media/dvb-frontends/dib3000mc 0xadda0fca dib3000mc_get_tuner_i2c_master +EXPORT_SYMBOL drivers/media/dvb-frontends/dib3000mc 0xbfac8adb dib3000mc_pid_control +EXPORT_SYMBOL drivers/media/dvb-frontends/dib3000mc 0xcb4e2c03 dib3000mc_pid_parse +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000m 0x2e79df6d dib7000m_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000m 0x767605aa dib7000m_get_i2c_master +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000m 0xa86fe984 dib7000m_pid_filter +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000m 0xdc644605 dib7000m_pid_filter_ctrl +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0x07f32229 dib7000p_set_agc1_min +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0x1d5d7c23 dib7000p_ctrl_timf +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0x38a3095c dib7000p_get_agc_values +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0x4aed0a9f dib7090_tuner_sleep +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0x50cdddd2 dib7000p_pid_filter_ctrl +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0x529919e8 dib7090_get_i2c_tuner +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0x63219a1b dib7000p_set_gpio +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0x8308222a dib7000p_set_wbd_ref +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0xbaacf9ee dib7090_get_adc_power +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0xbe8923d6 dib7000p_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0xc93cb7ad dib7000p_i2c_enumeration +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0xd9ce6779 dib7000p_pid_filter +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0xddeb055c dib7000pc_detection +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0xe482e387 dib7000p_get_i2c_master +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0xe49b9316 dib7090_slave_reset +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0xfa539944 dib7000p_update_pll +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0x04894a58 dib8096p_tuner_sleep +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0x1075505a dib8000_pid_filter +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0x1cdf505e dib8000_get_adc_power +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0x3c400d52 dib8000_pid_filter_ctrl +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0x3cbde650 dib8000_set_slave_frontend +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0x4afcf443 dib8000_get_i2c_master +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0x535f6273 dib8000_get_slave_frontend +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0x82fa1d75 dib8000_set_wbd_ref +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0x842642ac dib8090p_get_dc_power +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0x8c1056c1 dib8000_i2c_enumeration +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0x9025bb75 dib8000_set_gpio +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0xa372e678 dib8000_pwm_agc_reset +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0xaac0edf2 dib8000_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0xb524dcb6 dib8096p_get_i2c_tuner +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0xd458ca2c dib8000_remove_slave_frontend +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0xed01b69b dib8000_get_tune_state +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0xf0353bc1 dib8000_ctrl_timf +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0xf7d23fec dib8000_set_tune_state +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0xf90a05b1 dib8000_update_pll +EXPORT_SYMBOL drivers/media/dvb-frontends/dibx000_common 0x1c5db1e7 dibx000_i2c_set_speed +EXPORT_SYMBOL drivers/media/dvb-frontends/dibx000_common 0x2a3eb068 dibx000_get_i2c_adapter +EXPORT_SYMBOL drivers/media/dvb-frontends/dibx000_common 0x3ea9ad0b dibx000_exit_i2c_master +EXPORT_SYMBOL drivers/media/dvb-frontends/dibx000_common 0x6f307623 dibx000_reset_i2c_master +EXPORT_SYMBOL drivers/media/dvb-frontends/dibx000_common 0xa0e7a6e4 dibx000_init_i2c_master +EXPORT_SYMBOL drivers/media/dvb-frontends/dibx000_common 0xad3ad91c systime +EXPORT_SYMBOL drivers/media/dvb-frontends/drxd 0x3e497d44 drxd_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/drxd 0xe6c06506 drxd_config_i2c +EXPORT_SYMBOL drivers/media/dvb-frontends/drxk 0x9310a72a drxk_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/ds3000 0x2382db9a ds3000_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/dvb-pll 0xf4830c28 dvb_pll_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/ec100 0x707c5943 ec100_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/isl6405 0x18f3df22 isl6405_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/isl6421 0xc285c0c7 isl6421_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/isl6423 0x39bbfa04 isl6423_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/it913x-fe 0x06d930aa it913x_fe_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/itd1000 0xe79b67af itd1000_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/ix2505v 0xfb75db06 ix2505v_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/l64781 0x0ca17440 l64781_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/lg2160 0x290b97d4 lg2160_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/lgdt3305 0x43da634b lgdt3305_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/lgdt330x 0x118c73d8 lgdt330x_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/lgs8gxx 0x07c73a1e lgs8gxx_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/lnbp21 0x34af14a1 lnbp21_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/lnbp21 0xc09ef75b lnbh24_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/lnbp22 0x9860da06 lnbp22_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/m88rs2000 0xac2141b9 m88rs2000_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/mb86a16 0x020f14ef mb86a16_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/mb86a20s 0xa9de6f9a mb86a20s_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/mt312 0x65547dbd mt312_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/mt352 0x45c26b63 mt352_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/nxt200x 0x5c947b6d nxt200x_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/nxt6000 0xa9f6c3ab nxt6000_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/or51132 0xddee978a or51132_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/or51211 0x1ed25c31 or51211_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/rtl2830 0x25607ace rtl2830_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/rtl2830 0xf7e0c6f9 rtl2830_get_tuner_i2c_adapter +EXPORT_SYMBOL drivers/media/dvb-frontends/rtl2832 0xd236f05b rtl2832_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/s5h1409 0xe6b1ec38 s5h1409_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/s5h1411 0x26bcde15 s5h1411_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/s5h1420 0xb58a8eec s5h1420_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/s5h1420 0xd54aaae4 s5h1420_get_tuner_i2c_adapter +EXPORT_SYMBOL drivers/media/dvb-frontends/s921 0x8bfeccdc s921_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/si21xx 0xad96d728 si21xx_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/sp8870 0xedb33102 sp8870_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/sp887x 0x752fc8d9 sp887x_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stb0899 0x3465c51e stb0899_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stb6000 0xc8c78b58 stb6000_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stb6100 0x8c32cc0e stb6100_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stv0288 0xa56caa36 stv0288_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stv0297 0xeb2b36cc stv0297_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stv0299 0x3527223d stv0299_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stv0367 0x788898c7 stv0367cab_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stv0367 0xa04bb8fa stv0367ter_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stv0900 0x5d2e467b stv0900_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stv090x 0x0f3ca4a3 stv090x_set_gpio +EXPORT_SYMBOL drivers/media/dvb-frontends/stv090x 0x51fc203b stv090x_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stv6110 0x5cf75ba1 stv6110_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stv6110x 0x82c3e2ac stv6110x_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda10021 0xe5ac657e tda10021_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda10023 0x0d3e66ce tda10023_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda10048 0x1d906c64 tda10048_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda1004x 0x2f98d47d tda10046_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda1004x 0xfff44769 tda10045_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda10071 0x13227ecc tda10071_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda10086 0xe3444966 tda10086_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda665x 0x3ad819ad tda665x_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda8083 0x4994d349 tda8083_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda8261 0x7b4e794f tda8261_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda826x 0xd154875f tda826x_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/ts2020 0xad329d96 ts2020_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tua6100 0x52d60015 tua6100_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/ves1820 0xa57dd214 ves1820_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/ves1x93 0x83390bdd ves1x93_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/zl10036 0x43e4772d zl10036_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/zl10039 0x41cfb420 zl10039_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/zl10353 0xdcc6328b zl10353_attach +EXPORT_SYMBOL drivers/media/pci/b2c2/b2c2-flexcop-pci 0x02fd61d1 flexcop_dma_control_size_irq +EXPORT_SYMBOL drivers/media/pci/b2c2/b2c2-flexcop-pci 0x376f2510 flexcop_dma_config +EXPORT_SYMBOL drivers/media/pci/b2c2/b2c2-flexcop-pci 0x6cf4657f flexcop_dma_allocate +EXPORT_SYMBOL drivers/media/pci/b2c2/b2c2-flexcop-pci 0x9768dfda flexcop_dma_xfer_control +EXPORT_SYMBOL drivers/media/pci/b2c2/b2c2-flexcop-pci 0xdcc8ee77 flexcop_dma_control_timer_irq +EXPORT_SYMBOL drivers/media/pci/b2c2/b2c2-flexcop-pci 0xfc8de0af flexcop_dma_config_timer +EXPORT_SYMBOL drivers/media/pci/b2c2/b2c2-flexcop-pci 0xffdf3e61 flexcop_dma_free +EXPORT_SYMBOL drivers/media/pci/bt8xx/bt878 0x2d788db7 bt878_start +EXPORT_SYMBOL drivers/media/pci/bt8xx/bt878 0x59ce620b bt878 +EXPORT_SYMBOL drivers/media/pci/bt8xx/bt878 0x9a5b584d bt878_stop +EXPORT_SYMBOL drivers/media/pci/bt8xx/bt878 0x9bfc9688 bt878_device_control +EXPORT_SYMBOL drivers/media/pci/bt8xx/bt878 0xd5d0bdef bt878_num +EXPORT_SYMBOL drivers/media/pci/bt8xx/bttv 0x11dc4b6d bttv_gpio_enable +EXPORT_SYMBOL drivers/media/pci/bt8xx/bttv 0x505ce063 bttv_sub_register +EXPORT_SYMBOL drivers/media/pci/bt8xx/bttv 0x8ecf4acc bttv_write_gpio +EXPORT_SYMBOL drivers/media/pci/bt8xx/bttv 0xbcf2d2fb bttv_read_gpio +EXPORT_SYMBOL drivers/media/pci/bt8xx/bttv 0xd9e8b060 bttv_sub_unregister +EXPORT_SYMBOL drivers/media/pci/bt8xx/bttv 0xf89fa87c bttv_get_pcidev +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0x017f10d3 read_dst +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0x086d5475 dst_error_recovery +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0x0b64b4bc dst_attach +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0x2280e7ba write_dst +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0x32248b87 rdc_reset_state +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0x412a4d7e dst_comm_init +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0x69fbd6d5 dst_pio_disable +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0xaf51758b dst_error_bailout +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0xd35c7284 dst_wait_dst_ready +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0xe94b8c9c dst_check_sum +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst_ca 0x48bad1db dst_ca_attach +EXPORT_SYMBOL drivers/media/pci/cx18/cx18 0x2cdea06d cx18_reset_ir_gpio +EXPORT_SYMBOL drivers/media/pci/cx18/cx18 0x62c2916e cx18_stop_v4l2_encode_stream +EXPORT_SYMBOL drivers/media/pci/cx18/cx18 0x635d807f cx18_release_stream +EXPORT_SYMBOL drivers/media/pci/cx18/cx18 0x8c53e6a7 cx18_start_v4l2_encode_stream +EXPORT_SYMBOL drivers/media/pci/cx18/cx18 0x97e224ef cx18_ext_init +EXPORT_SYMBOL drivers/media/pci/cx18/cx18 0xcc09113d cx18_claim_stream +EXPORT_SYMBOL drivers/media/pci/cx23885/altera-ci 0x177aebb8 altera_pid_feed_control +EXPORT_SYMBOL drivers/media/pci/cx23885/altera-ci 0x34279b23 altera_ci_init +EXPORT_SYMBOL drivers/media/pci/cx23885/altera-ci 0x6ff7510d altera_ci_tuner_reset +EXPORT_SYMBOL drivers/media/pci/cx23885/altera-ci 0x9247b72f altera_hw_filt_release +EXPORT_SYMBOL drivers/media/pci/cx23885/altera-ci 0x96831d93 altera_hw_filt_init +EXPORT_SYMBOL drivers/media/pci/cx23885/altera-ci 0xdb3faf38 altera_ci_release +EXPORT_SYMBOL drivers/media/pci/cx23885/altera-ci 0xe66b9812 altera_ci_irq +EXPORT_SYMBOL drivers/media/pci/cx25821/cx25821 0x4022e5da cx25821_set_gpiopin_direction +EXPORT_SYMBOL drivers/media/pci/cx25821/cx25821 0x6709076e cx25821_risc_databuffer_audio +EXPORT_SYMBOL drivers/media/pci/cx25821/cx25821 0x784853c3 cx25821_print_irqbits +EXPORT_SYMBOL drivers/media/pci/cx25821/cx25821 0xaf0ffd86 cx25821_sram_channel_setup_audio +EXPORT_SYMBOL drivers/media/pci/cx25821/cx25821 0xbb60dfe1 cx25821_dev_get +EXPORT_SYMBOL drivers/media/pci/cx25821/cx25821 0xc5d38741 cx25821_sram_channels +EXPORT_SYMBOL drivers/media/pci/cx25821/cx25821 0xee794c51 cx25821_sram_channel_dump_audio +EXPORT_SYMBOL drivers/media/pci/cx25821/cx25821 0xf05c653e cx25821_dev_unregister +EXPORT_SYMBOL drivers/media/pci/cx88/cx88-vp3054-i2c 0x6b9dad77 vp3054_i2c_remove +EXPORT_SYMBOL drivers/media/pci/cx88/cx88-vp3054-i2c 0xdea0055e vp3054_i2c_probe +EXPORT_SYMBOL drivers/media/pci/cx88/cx8800 0x12596941 cx88_set_freq +EXPORT_SYMBOL drivers/media/pci/cx88/cx8800 0x1788e649 cx88_enum_input +EXPORT_SYMBOL drivers/media/pci/cx88/cx8800 0x48157e18 cx88_video_mux +EXPORT_SYMBOL drivers/media/pci/cx88/cx8800 0x594656a8 cx88_querycap +EXPORT_SYMBOL drivers/media/pci/cx88/cx8802 0x0ffb3dc6 cx8802_get_driver +EXPORT_SYMBOL drivers/media/pci/cx88/cx8802 0x1062bd6a cx8802_register_driver +EXPORT_SYMBOL drivers/media/pci/cx88/cx8802 0x95d58dc3 cx8802_unregister_driver +EXPORT_SYMBOL drivers/media/pci/cx88/cx8802 0x9e91c7ad cx8802_cancel_buffers +EXPORT_SYMBOL drivers/media/pci/cx88/cx8802 0xd0a28a54 cx8802_buf_prepare +EXPORT_SYMBOL drivers/media/pci/cx88/cx8802 0xf9bd7cde cx8802_buf_queue +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x0c8a54b3 cx88_risc_buffer +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x28a8d6ff cx88_shutdown +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x28e83c96 cx88_set_tvaudio +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x36325b6f cx88_core_irq +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x41980958 cx88_newstation +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x4216fc84 cx88_sram_channels +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x43a6d361 cx88_core_get +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x471223d7 cx88_wakeup +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x4b63e82e cx88_set_scale +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x6141c8c5 cx88_tuner_callback +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x688e1511 cx88_get_stereo +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x6afa62dd cx88_risc_databuffer +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x7642ed3c cx88_print_irqbits +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x7cfd68fa cx88_core_put +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x8178c22b cx88_vdev_init +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x8f697f71 cx88_risc_stopper +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x904b8696 cx88_audio_thread +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x96ed9350 cx88_free_buffer +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x9986e1ca cx88_sram_channel_dump +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0xb875dfcb cx88_ir_stop +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0xd3663b94 cx88_set_tvnorm +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0xde10f90c cx88_set_stereo +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0xdeef63cb cx88_sram_channel_setup +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0xedeaa9f7 cx88_reset +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0xfb2fedd4 cx88_ir_start +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0xfc5c1556 cx88_dsp_detect_stereo_sap +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x1233d66c ivtv_init_on_first_open +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x13facc83 ivtv_udma_prepare +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x147f2015 ivtv_api +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x14f67530 ivtv_debug +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x2cc824ba ivtv_udma_alloc +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x439cf54b ivtv_clear_irq_mask +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x51804003 ivtv_claim_stream +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x57663d03 ivtv_vapi_result +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x628bcb4a ivtv_stop_v4l2_encode_stream +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x638f7444 ivtv_reset_ir_gpio +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x683e46b4 ivtv_udma_unmap +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x6d3c585c ivtv_ext_init +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x9dcfbaf5 ivtv_release_stream +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0xac55ba70 ivtv_firmware_check +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0xc9eb083b ivtv_start_v4l2_encode_stream +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0xd6975c9f ivtv_udma_setup +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0xe69685d1 ivtv_set_irq_mask +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0xee384040 ivtv_vapi +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x04e83446 saa7134_tuner_callback +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x06e29ff6 saa_dsp_writel +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x1211df5d saa7134_devlist +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x22d7ebb9 saa7134_pgtable_alloc +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x26e8dedb saa7134_pgtable_build +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x27148498 saa7134_dmasound_exit +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x2f8ae0c3 saa7134_ts_register +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x509b21e8 saa7134_set_dmabits +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x73039031 saa7134_boards +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x7d5db671 saa7134_tvaudio_setmute +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x8169942b saa7134_ts_unregister +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0xabcec054 saa7134_pgtable_free +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0xcec4a66b saa7134_dmasound_init +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0xdded287c saa7134_devlist_lock +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0xfcc3acca saa7134_set_gpio +EXPORT_SYMBOL drivers/media/pci/ttpci/ttpci-eeprom 0xa71bf53f ttpci_eeprom_parse_mac +EXPORT_SYMBOL drivers/media/pci/ttpci/ttpci-eeprom 0xc3e4c127 ttpci_eeprom_decode_mac +EXPORT_SYMBOL drivers/media/platform/davinci/vpfe_capture 0x22289caf vpfe_register_ccdc_device +EXPORT_SYMBOL drivers/media/platform/davinci/vpfe_capture 0x2ab30766 vpfe_unregister_ccdc_device +EXPORT_SYMBOL drivers/media/platform/davinci/vpss 0x088ccec9 vpss_select_ccdc_source +EXPORT_SYMBOL drivers/media/platform/davinci/vpss 0x319709a6 vpss_clear_wbl_overflow +EXPORT_SYMBOL drivers/media/platform/davinci/vpss 0x54146824 dm365_vpss_set_sync_pol +EXPORT_SYMBOL drivers/media/platform/davinci/vpss 0x6e5b5413 vpss_enable_clock +EXPORT_SYMBOL drivers/media/platform/davinci/vpss 0x72f7c8bb vpss_set_pg_frame_size +EXPORT_SYMBOL drivers/media/platform/davinci/vpss 0x749bf2c9 dm365_vpss_set_pg_frame_size +EXPORT_SYMBOL drivers/media/platform/davinci/vpss 0x7517e8d7 vpss_dma_complete_interrupt +EXPORT_SYMBOL drivers/media/platform/davinci/vpss 0x95f8c400 vpss_set_sync_pol +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_camera 0x1615222e soc_camera_power_on +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_camera 0x19efee32 soc_camera_xlate_by_fourcc +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_camera 0x2c32ba1c soc_camera_power_off +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_camera 0x3536ed4a soc_camera_host_register +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_camera 0x48ee4d33 soc_camera_host_unregister +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_camera 0x62ae7268 soc_camera_apply_board_flags +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_camera 0x8fed2603 soc_camera_lock +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_camera 0xa211b852 soc_camera_power_init +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_camera 0xc50cc631 soc_camera_unlock +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_mediabus 0x25c52d97 soc_mbus_samples_per_pixel +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_mediabus 0x2863728e soc_mbus_image_size +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_mediabus 0x46b1be73 soc_mbus_find_fmtdesc +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_mediabus 0x5f3e3558 soc_mbus_bytes_per_line +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_mediabus 0xc8b28da5 soc_mbus_config_compatible +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_mediabus 0xd4d5a2f0 soc_mbus_get_fmtdesc +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_scale_crop 0x7e3c91f9 soc_camera_client_scale +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_scale_crop 0xa94668f1 soc_camera_client_s_crop +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_scale_crop 0xc5f58ef6 soc_camera_calc_client_output +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_scale_crop 0xe42fc889 soc_camera_client_g_rect +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0x04dca738 lirc_unregister_driver +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0x3bf33911 lirc_dev_fop_close +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0x4a87fcc5 lirc_dev_fop_write +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0x5abf8795 lirc_register_driver +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0x5bd97970 lirc_dev_fop_poll +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0x63659649 lirc_dev_fop_open +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0x71787dc7 lirc_dev_fop_ioctl +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0x84d5a661 lirc_dev_fop_read +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0x89e97c15 lirc_get_pdata +EXPORT_SYMBOL drivers/media/rc/rc-core 0x8b6d14db ir_raw_handler_register +EXPORT_SYMBOL drivers/media/rc/rc-core 0xc7746a6f ir_raw_handler_unregister +EXPORT_SYMBOL drivers/media/tuners/e4000 0x8c1345cf e4000_attach +EXPORT_SYMBOL drivers/media/tuners/fc0011 0x5f7ed058 fc0011_attach +EXPORT_SYMBOL drivers/media/tuners/fc0012 0x6f407d5c fc0012_attach +EXPORT_SYMBOL drivers/media/tuners/fc0013 0x0cb1431a fc0013_rc_cal_reset +EXPORT_SYMBOL drivers/media/tuners/fc0013 0x0d50ad7c fc0013_attach +EXPORT_SYMBOL drivers/media/tuners/fc0013 0x6cf029a3 fc0013_rc_cal_add +EXPORT_SYMBOL drivers/media/tuners/fc2580 0xe6882a4c fc2580_attach +EXPORT_SYMBOL drivers/media/tuners/max2165 0x5d549129 max2165_attach +EXPORT_SYMBOL drivers/media/tuners/mc44s803 0x5caae645 mc44s803_attach +EXPORT_SYMBOL drivers/media/tuners/mt2060 0x19d949f3 mt2060_attach +EXPORT_SYMBOL drivers/media/tuners/mt2131 0x329a21b7 mt2131_attach +EXPORT_SYMBOL drivers/media/tuners/mt2266 0x05713045 mt2266_attach +EXPORT_SYMBOL drivers/media/tuners/mxl5005s 0x5a3e7d14 mxl5005s_attach +EXPORT_SYMBOL drivers/media/tuners/qt1010 0xe89e13d3 qt1010_attach +EXPORT_SYMBOL drivers/media/tuners/tda18212 0xa9979676 tda18212_attach +EXPORT_SYMBOL drivers/media/tuners/tda18218 0xfae97abd tda18218_attach +EXPORT_SYMBOL drivers/media/tuners/tua9001 0x9e9c5516 tua9001_attach +EXPORT_SYMBOL drivers/media/tuners/tuner-types 0x0cb4b189 tuners +EXPORT_SYMBOL drivers/media/tuners/tuner-types 0xc2821775 tuner_count +EXPORT_SYMBOL drivers/media/tuners/tuner-xc2028 0x7cee254e xc2028_attach +EXPORT_SYMBOL drivers/media/tuners/tuner_it913x 0x4e0bbe1e it913x_attach +EXPORT_SYMBOL drivers/media/tuners/xc4000 0xdcbb998b xc4000_attach +EXPORT_SYMBOL drivers/media/tuners/xc5000 0xbaec45e0 xc5000_attach +EXPORT_SYMBOL drivers/media/usb/cx231xx/cx231xx 0x53c59c7b cx231xx_unregister_extension +EXPORT_SYMBOL drivers/media/usb/cx231xx/cx231xx 0xf648707b cx231xx_register_extension +EXPORT_SYMBOL drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0x0298cb5c dvb_usbv2_suspend +EXPORT_SYMBOL drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0x11e447ad dvb_usbv2_resume +EXPORT_SYMBOL drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0x1cfc46f1 dvb_usbv2_probe +EXPORT_SYMBOL drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0x4560f024 dvb_usbv2_generic_rw +EXPORT_SYMBOL drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0x916a2d8c dvb_usbv2_generic_write +EXPORT_SYMBOL drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0xc9c37b1e dvb_usbv2_disconnect +EXPORT_SYMBOL drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0xec5f5141 dvb_usbv2_generic_rw_locked +EXPORT_SYMBOL drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0xef13c695 dvb_usbv2_generic_write_locked +EXPORT_SYMBOL drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0xf96259df dvb_usbv2_reset_resume +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb 0x36cd8035 dvb_usb_device_init +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb 0x403ce40c dvb_usb_nec_rc_key_to_event +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb 0x4f8db360 dvb_usb_generic_rw +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb 0x6cf45dca dvb_usb_get_hexline +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb 0x96b6e613 dvb_usb_device_exit +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb 0xc66943b5 usb_cypress_load_firmware +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb 0xe77926df dvb_usb_generic_write +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-af9005-remote 0x13e247e0 rc_map_af9005_table +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-af9005-remote 0x3482fa71 af9005_rc_decode +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-af9005-remote 0xd4e288db rc_map_af9005_table_size +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x1db79639 dibusb_power_ctrl +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x20a11de2 dibusb2_0_power_ctrl +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x20c671b2 dibusb_pid_filter +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x385f994e dibusb_rc_query +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x432b0a1f dibusb_dib3000mc_tuner_attach +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x4a554b65 dibusb_read_eeprom_byte +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x4b607c25 dibusb_dib3000mc_frontend_attach +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x6847758d dibusb2_0_streaming_ctrl +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0xb47559e0 rc_map_dibusb_table +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0xd9c1d0db dibusb_i2c_algo +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0xde799d83 dibusb_streaming_ctrl +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0xfbeab0bf dibusb_pid_filter_ctrl +EXPORT_SYMBOL drivers/media/usb/em28xx/em28xx 0x0b82f3f3 em28xx_unregister_extension +EXPORT_SYMBOL drivers/media/usb/em28xx/em28xx 0xf2b9b14f em28xx_register_extension +EXPORT_SYMBOL drivers/media/usb/gspca/gspca_main 0x1851238c gspca_frame_add +EXPORT_SYMBOL drivers/media/usb/gspca/gspca_main 0x24efb996 gspca_coarse_grained_expo_autogain +EXPORT_SYMBOL drivers/media/usb/gspca/gspca_main 0x84d1d75b gspca_expo_autogain +EXPORT_SYMBOL drivers/media/usb/gspca/gspca_main 0x92693d48 gspca_resume +EXPORT_SYMBOL drivers/media/usb/gspca/gspca_main 0x9481f5e5 gspca_suspend +EXPORT_SYMBOL drivers/media/usb/gspca/gspca_main 0x9670af2c gspca_debug +EXPORT_SYMBOL drivers/media/usb/gspca/gspca_main 0xb67be97e gspca_disconnect +EXPORT_SYMBOL drivers/media/usb/gspca/gspca_main 0xbdce087a gspca_dev_probe +EXPORT_SYMBOL drivers/media/usb/gspca/gspca_main 0xcb450dd8 gspca_dev_probe2 +EXPORT_SYMBOL drivers/media/usb/tm6000/tm6000 0x0f6b0922 tm6000_unregister_extension +EXPORT_SYMBOL drivers/media/usb/tm6000/tm6000 0x89e58bef tm6000_register_extension +EXPORT_SYMBOL drivers/media/usb/tm6000/tm6000 0xf9f1fa20 tm6000_init_digital_mode +EXPORT_SYMBOL drivers/media/usb/ttusb-dec/ttusbdecfe 0x9933bbf9 ttusbdecfe_dvbt_attach +EXPORT_SYMBOL drivers/media/usb/ttusb-dec/ttusbdecfe 0xb2f4ba33 ttusbdecfe_dvbs_attach +EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-common 0x42c8e001 v4l2_ctrl_next +EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-common 0x4adaf0f3 v4l2_ctrl_query_menu_valid_items +EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-common 0x53c9394f v4l2_ctrl_query_menu +EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-common 0x5f96a661 v4l2_ctrl_check +EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-common 0xabe27502 v4l2_ctrl_query_fill +EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-mem2mem 0x459e133f v4l2_m2m_get_curr_priv +EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-mem2mem 0x6b266081 v4l2_m2m_get_vq +EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-mem2mem 0x703b972b v4l2_m2m_job_finish +EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-mem2mem 0x73735410 v4l2_m2m_mmap +EXPORT_SYMBOL drivers/media/v4l2-core/videobuf-dvb 0x02c18e56 videobuf_dvb_get_frontend +EXPORT_SYMBOL drivers/media/v4l2-core/videobuf-dvb 0x0515b7d8 videobuf_dvb_unregister_bus +EXPORT_SYMBOL drivers/media/v4l2-core/videobuf-dvb 0x2e2ed5a4 videobuf_dvb_dealloc_frontends +EXPORT_SYMBOL drivers/media/v4l2-core/videobuf-dvb 0xdc8d7d0c videobuf_dvb_find_frontend +EXPORT_SYMBOL drivers/media/v4l2-core/videobuf-dvb 0xe33fcfa2 videobuf_dvb_register_bus +EXPORT_SYMBOL drivers/media/v4l2-core/videobuf-dvb 0xf7316d92 videobuf_dvb_alloc_frontend +EXPORT_SYMBOL drivers/media/v4l2-core/videobuf2-core 0xff58dda5 vb2_querybuf +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x034130bb video_usercopy +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x0614dd5a v4l2_video_std_frame_period +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x06f044d3 v4l2_subdev_s_ext_ctrls +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x095ac640 v4l2_s_ext_ctrls +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x097c9442 v4l2_ctrl_modify_range +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x0cb2f623 v4l2_ctrl_handler_setup +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x0e6da5f9 v4l2_subdev_querymenu +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x106edf65 v4l2_subdev_try_ext_ctrls +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x123959a1 v4l2_type_names +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x140e371b v4l2_of_get_remote_port_parent +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x16244fe5 v4l2_prio_check +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x1660bdea v4l2_async_register_subdev +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x18485466 v4l2_ctrl_add_ctrl +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x18f8752a v4l2_g_ext_ctrls +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x1de31607 v4l2_subdev_queryctrl +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x21d8da23 v4l2_queryctrl +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x221dda33 v4l2_async_notifier_register +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x233dca04 v4l2_ctrl_subscribe_event +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x2342f1ae v4l2_prio_open +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x31970a46 v4l2_subdev_init +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x350e7ba2 v4l2_clk_put +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x3adbd595 v4l2_field_names +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x3bdd0f94 v4l2_prio_change +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x3cdde8a8 v4l2_clk_enable +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x3ce754ac v4l2_async_unregister_subdev +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x3db7f213 v4l2_of_get_remote_port +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x45293fd2 v4l2_ctrl_subdev_log_status +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x484baf01 v4l2_ctrl_s_ctrl +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x495426ee v4l2_ctrl_get_name +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x49eb1a9f v4l2_ctrl_new_int_menu +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x4c930b6a video_devdata +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x55962555 v4l2_ctrl_poll +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x560a8cb9 v4l2_querymenu +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x5712e41e v4l2_ctrl_new_std +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x57b9167a v4l2_clk_register +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x5ae1135c v4l2_ctrl_new_custom +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x5d21975e v4l2_ctrl_new_std_menu_items +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x6372ce72 video_device_release_empty +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x6afa2741 video_device_alloc +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x6ec0909e v4l2_clk_get +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x72677d58 v4l2_ctrl_new_std_menu +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x7a3cd015 v4l2_ctrl_get_menu +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x7d0a6e9e v4l2_ctrl_handler_init_class +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x7dc2d657 v4l2_subdev_g_ext_ctrls +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x7dd398ee v4l2_subdev_s_ctrl +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x7f923f2a v4l2_of_parse_endpoint +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x8106095a v4l2_prio_max +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x81b05b9e video_unregister_device +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x86dd0251 v4l2_ctrl_find +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x8bd8c519 v4l2_ctrl_g_ctrl_int64 +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x8c6bbd2d v4l2_clk_set_rate +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x8ce55e5a v4l2_ctrl_cluster +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x8d815bea v4l2_try_ext_ctrls +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x8f17df18 v4l2_clk_get_rate +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x96f8f0fa v4l2_ctrl_add_handler +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x9bbe385e video_ioctl2 +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xa0c948a5 v4l2_ctrl_g_ctrl +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xa5451456 v4l2_ctrl_s_ctrl_int64 +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xb42e9734 __video_register_device +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xb4aa80e2 v4l2_ctrl_subdev_subscribe_event +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xb77b0159 v4l2_prio_init +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xb90cbedf v4l2_of_get_next_endpoint +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xbac4a225 v4l2_ctrl_fill +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xbc5671dc v4l_printk_ioctl +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xbfaf0eca v4l2_ctrl_grab +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xc12cf8f8 v4l2_ctrl_replace +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xcda04a5b v4l2_prio_close +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xcdf37f81 v4l2_ctrl_notify +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xcea3b494 v4l2_ctrl_sub_ev_ops +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xd0411535 v4l2_subdev_g_ctrl +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xd0497160 v4l2_ctrl_radio_filter +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xd1b8d443 v4l2_clk_disable +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xd71bf125 v4l2_ctrl_auto_cluster +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xd8b9cb7e v4l2_async_notifier_unregister +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xdf89440b v4l2_clk_unregister +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xdfdd8967 v4l2_ctrl_log_status +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xe2b92059 v4l2_video_std_construct +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xe6fce6f2 v4l2_ctrl_merge +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xe8842873 v4l2_ctrl_handler_log_status +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xece54f8d video_device_release +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xf3251e7b v4l2_norm_to_name +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xf4544975 v4l2_g_ctrl +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xfafa621e v4l2_ctrl_activate +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xfd100192 v4l2_ctrl_handler_free +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xfecf96fe v4l2_s_ctrl +EXPORT_SYMBOL drivers/memstick/core/memstick 0x1b7c50bd memstick_init_req +EXPORT_SYMBOL drivers/memstick/core/memstick 0x253240bf memstick_free_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0x2f59d9c3 memstick_next_req +EXPORT_SYMBOL drivers/memstick/core/memstick 0x32ffc41a memstick_register_driver +EXPORT_SYMBOL drivers/memstick/core/memstick 0x42fa42de memstick_remove_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0x6bad9301 memstick_init_req_sg +EXPORT_SYMBOL drivers/memstick/core/memstick 0xa88c5f6d memstick_add_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0xb33eb910 memstick_unregister_driver +EXPORT_SYMBOL drivers/memstick/core/memstick 0xce836739 memstick_new_req +EXPORT_SYMBOL drivers/memstick/core/memstick 0xd2e5511e memstick_set_rw_addr +EXPORT_SYMBOL drivers/memstick/core/memstick 0xf2ebf0be memstick_alloc_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0xf9c89807 memstick_detect_change +EXPORT_SYMBOL drivers/memstick/core/memstick 0xfc02cf0a memstick_suspend_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0xfe5f2ead memstick_resume_host +EXPORT_SYMBOL drivers/memstick/host/r592 0x52f1b23b memstick_debug_get_tpc_name +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x0fb224d5 mpt_send_handshake_request +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x13007575 mpt_raid_phys_disk_get_num_paths +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x28ff8911 mpt_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x2cbb34e3 mpt_event_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x3c5a6451 mpt_put_msg_frame +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x4526289b mpt_event_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x46faab39 mpt_resume +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x47ab1a2b mpt_set_taskmgmt_in_progress_flag +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x47b5b1ed mpt_attach +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x489dbc5d mpt_free_fw_memory +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x502108d0 mpt_fwfault_debug +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x509f6584 mpt_print_ioc_summary +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x638293f3 mpt_detach +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x7be75d9a mpt_verify_adapter +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x903f8830 mpt_GetIocState +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x90dd0184 mpt_halt_firmware +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x923ef7cf mpt_suspend +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x936d5373 mpt_findImVolumes +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x9864e50c mptbase_sas_persist_operation +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x9cb9a158 mpt_alloc_fw_memory +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xa0c3658c mpt_raid_phys_disk_pg0 +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xb6bfcfcc mpt_reset_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xc0e69f82 mpt_device_driver_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xc1c85d74 mpt_raid_phys_disk_pg1 +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xc30beea1 mpt_Soft_Hard_ResetHandler +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xc47c22e8 mpt_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xc7f2d111 mpt_HardResetHandler +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xd1dae73b mpt_put_msg_frame_hi_pri +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 0xe6b9c8cb mpt_free_msg_frame +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xe7184404 mpt_device_driver_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xee5fcc7a mpt_config +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xf3a746a4 mpt_get_msg_frame +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xfe18cc76 mpt_clear_taskmgmt_in_progress_flag +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x05f97f84 mptscsih_flush_running_cmds +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x06fd10e8 mptscsih_qcmd +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x0bf201a4 mptscsih_change_queue_depth +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x1ed42059 mptscsih_resume +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x21a19967 mptscsih_bios_param +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x25f335bd mptscsih_info +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x2e7ad1b4 mptscsih_scandv_complete +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x3d9fcfcb mptscsih_abort +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x481535df mptscsih_bus_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x4d75609b mptscsih_event_process +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x50d67ea8 mptscsih_ioc_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x6e7ae549 mptscsih_suspend +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x6f59818e mptscsih_dev_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x770d1c9f mptscsih_slave_configure +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x7afaf7b2 mptscsih_show_info +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x80ea2338 mptscsih_get_scsi_lookup +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x811a45ef mptscsih_is_phys_disk +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xa980c62a mptscsih_remove +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xb43167ca mptscsih_io_done +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xc3a83b13 mptscsih_IssueTaskMgmt +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xc5ded9dd mptscsih_host_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xc76425bb mptscsih_raid_id_to_num +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xdddcb6d2 mptscsih_host_attrs +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xddf67d04 mptscsih_taskmgmt_complete +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xe36d7f52 mptscsih_shutdown +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xf550a813 mptscsih_slave_destroy +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xf7980a8c mptscsih_taskmgmt_response_code +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x074f857f i2o_msg_post_wait_mem +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x1c0dd3e1 i2o_driver_register +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x2a843bef i2o_dump_message +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x36ea88a7 i2o_device_claim +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x3f0ec272 i2o_iop_find_device +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x61b8b349 i2o_driver_notify_device_remove_all +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x91eff7d2 i2o_parm_field_get +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x9871bc60 i2o_parm_table_get +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x9c524c52 i2o_driver_notify_controller_add_all +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xa0a17b9f i2o_device_claim_release +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xae752b61 i2o_event_register +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xb4c00dcf i2o_controllers +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xbf80ba9f i2o_exec_lct_get +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xc04188fa i2o_status_get +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xc213595c i2o_driver_notify_controller_remove_all +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xc8a72bb0 i2o_find_iop +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xd88f4cbb i2o_parm_issue +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xeb393def i2o_driver_unregister +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xf23e78b5 i2o_driver_notify_device_add_all +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xf50098a4 i2o_msg_get_wait +EXPORT_SYMBOL drivers/mfd/cros_ec 0x916f94c7 cros_ec_remove +EXPORT_SYMBOL drivers/mfd/cros_ec 0xa59790dd cros_ec_suspend +EXPORT_SYMBOL drivers/mfd/cros_ec 0xad373a41 cros_ec_resume +EXPORT_SYMBOL drivers/mfd/cros_ec 0xb6db2e89 cros_ec_prepare_tx +EXPORT_SYMBOL drivers/mfd/cros_ec 0xdd190f28 cros_ec_register +EXPORT_SYMBOL drivers/mfd/htc-pasic3 0x1f897ae9 pasic3_write_register +EXPORT_SYMBOL drivers/mfd/htc-pasic3 0x951e2b92 pasic3_read_register +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x177def6d mc13xxx_irq_status +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x18d860d1 mc13xxx_irq_request_nounmask +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x4653ac89 mc13xxx_reg_write +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x63c374be mc13xxx_get_flags +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x71a7144e mc13xxx_irq_request +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x9b166e1b mc13xxx_lock +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x9c8a0ab6 mc13xxx_irq_unmask +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x9f5a02d9 mc13xxx_irq_mask +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0xae9f5fae mc13xxx_unlock +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0xb7af9198 mc13xxx_irq_ack +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0xbd63d432 mc13xxx_irq_free +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0xe4dd57a1 mc13xxx_reg_read +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0xf1ef2372 mc13xxx_reg_rmw +EXPORT_SYMBOL drivers/mfd/tps6105x 0x90ef996a tps6105x_get +EXPORT_SYMBOL drivers/mfd/tps6105x 0xa112c314 tps6105x_set +EXPORT_SYMBOL drivers/mfd/tps6105x 0xc1270e51 tps6105x_mask_and_set +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 0x5907d076 ad_dpot_remove +EXPORT_SYMBOL drivers/misc/ad525x_dpot 0xc17a1fae ad_dpot_probe +EXPORT_SYMBOL drivers/misc/altera-stapl/altera-stapl 0x8a05ed90 altera_init +EXPORT_SYMBOL drivers/misc/atmel-ssc 0x1514b263 ssc_free +EXPORT_SYMBOL drivers/misc/atmel-ssc 0xa0c6f842 ssc_request +EXPORT_SYMBOL drivers/misc/atmel_pwm 0x0e9755b9 pwm_channel_free +EXPORT_SYMBOL drivers/misc/atmel_pwm 0x5a8b82f9 pwm_channel_handler +EXPORT_SYMBOL drivers/misc/atmel_pwm 0x5d5c2951 pwm_clk_free +EXPORT_SYMBOL drivers/misc/atmel_pwm 0x6a5e1f70 pwm_channel_alloc +EXPORT_SYMBOL drivers/misc/atmel_pwm 0x73330c97 pwm_clk_alloc +EXPORT_SYMBOL drivers/misc/atmel_pwm 0xeb7f2c6f __pwm_channel_onoff +EXPORT_SYMBOL drivers/misc/c2port/core 0x4b1e56cf c2port_device_unregister +EXPORT_SYMBOL drivers/misc/c2port/core 0xaa5c6ff3 c2port_device_register +EXPORT_SYMBOL drivers/misc/ioc4 0x5960fe1c ioc4_register_submodule +EXPORT_SYMBOL drivers/misc/ioc4 0xe1da0639 ioc4_unregister_submodule +EXPORT_SYMBOL drivers/misc/tifm_core 0x02cddf43 tifm_unmap_sg +EXPORT_SYMBOL drivers/misc/tifm_core 0x39f86aa1 tifm_queue_work +EXPORT_SYMBOL drivers/misc/tifm_core 0x637be225 tifm_alloc_adapter +EXPORT_SYMBOL drivers/misc/tifm_core 0x6c4a3d7a tifm_free_device +EXPORT_SYMBOL drivers/misc/tifm_core 0x767ceb5d tifm_remove_adapter +EXPORT_SYMBOL drivers/misc/tifm_core 0x7a7175a7 tifm_register_driver +EXPORT_SYMBOL drivers/misc/tifm_core 0x8bd8acc1 tifm_unregister_driver +EXPORT_SYMBOL drivers/misc/tifm_core 0x930592ed tifm_eject +EXPORT_SYMBOL drivers/misc/tifm_core 0xcc2f456c tifm_free_adapter +EXPORT_SYMBOL drivers/misc/tifm_core 0xd6aca203 tifm_has_ms_pif +EXPORT_SYMBOL drivers/misc/tifm_core 0xe4438482 tifm_alloc_device +EXPORT_SYMBOL drivers/misc/tifm_core 0xe5ae228a tifm_add_adapter +EXPORT_SYMBOL drivers/misc/tifm_core 0xfa798c3d tifm_map_sg +EXPORT_SYMBOL drivers/mmc/host/dw_mmc 0x6040b0b6 dw_mci_remove +EXPORT_SYMBOL drivers/mmc/host/dw_mmc 0xab525a1d dw_mci_resume +EXPORT_SYMBOL drivers/mmc/host/dw_mmc 0xedc1d0e5 dw_mci_probe +EXPORT_SYMBOL drivers/mmc/host/dw_mmc 0xf5c489db dw_mci_suspend +EXPORT_SYMBOL drivers/mmc/host/tmio_mmc_core 0x03aac443 tmio_mmc_host_suspend +EXPORT_SYMBOL drivers/mmc/host/tmio_mmc_core 0x1c9004fc tmio_mmc_host_probe +EXPORT_SYMBOL drivers/mmc/host/tmio_mmc_core 0x28faef9c tmio_mmc_host_resume +EXPORT_SYMBOL drivers/mmc/host/tmio_mmc_core 0x2abfe18f tmio_mmc_host_remove +EXPORT_SYMBOL drivers/mmc/host/tmio_mmc_core 0x378f2335 tmio_mmc_irq +EXPORT_SYMBOL drivers/mmc/host/tmio_mmc_core 0x6d3deee9 tmio_mmc_sdcard_irq +EXPORT_SYMBOL drivers/mmc/host/tmio_mmc_core 0x7a6fd700 tmio_mmc_sdio_irq +EXPORT_SYMBOL drivers/mmc/host/tmio_mmc_core 0x7b567660 tmio_mmc_host_runtime_resume +EXPORT_SYMBOL drivers/mmc/host/tmio_mmc_core 0xb7f2d6ed tmio_mmc_host_runtime_suspend +EXPORT_SYMBOL drivers/mmc/host/tmio_mmc_core 0xf02062dd tmio_mmc_card_detect_irq +EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0x20bd89f6 cfi_read_pri +EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0xb67b9314 cfi_varsize_frob +EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0xb78df15d cfi_fixup +EXPORT_SYMBOL drivers/mtd/chips/gen_probe 0x3ef385ba mtd_do_chip_probe +EXPORT_SYMBOL drivers/mtd/lpddr/lpddr_cmds 0x78d66ff3 lpddr_cmdset +EXPORT_SYMBOL drivers/mtd/nand/denali 0x7b4ce9a6 denali_init +EXPORT_SYMBOL drivers/mtd/nand/denali 0xefc34f10 denali_remove +EXPORT_SYMBOL drivers/mtd/onenand/onenand 0x9983427f flexonenand_region +EXPORT_SYMBOL drivers/mtd/onenand/onenand 0x9ec2be60 onenand_addr +EXPORT_SYMBOL drivers/mtd/onenand/onenand 0xcf40eeba onenand_default_bbt +EXPORT_SYMBOL drivers/mtd/onenand/onenand 0xe5a9c22f onenand_scan_bbt +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x0a26b22b arcnet_unregister_proto +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x0fc8d370 arc_proto_default +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x24587070 arcnet_close +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x58a4dc6a arc_raw_proto +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x5f216760 arc_proto_map +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x6534792a arcnet_debug +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x9b5e0fea arcnet_send_packet +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x9c24ffc9 arcnet_open +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x9dd4b09a alloc_arcdev +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xaef14128 arc_bcast_proto +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xdaddb0f0 arcnet_timeout +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xecb730b0 arcnet_interrupt +EXPORT_SYMBOL drivers/net/arcnet/com20020 0x45af4176 com20020_found +EXPORT_SYMBOL drivers/net/arcnet/com20020 0x89e416b1 com20020_check +EXPORT_SYMBOL drivers/net/arcnet/com20020 0xa955a062 com20020_netdev_ops +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x119721ac ei_interrupt +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x27d41416 __alloc_ei_netdev +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x4c06aaf1 ei_netdev_ops +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x55514e42 ei_close +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x59289508 ei_poll +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x59461934 NS8390_init +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x5bc2fa0d ei_start_xmit +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x6eb45e5b ei_tx_timeout +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x7a7b63f8 ei_set_multicast_list +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x7e68fc0f ei_get_stats +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x99f58c2c ei_open +EXPORT_SYMBOL drivers/net/ethernet/broadcom/cnic 0x636af174 cnic_unregister_driver +EXPORT_SYMBOL drivers/net/ethernet/broadcom/cnic 0xc83a9e99 cnic_register_driver +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x17bcb4f0 cxgb3_insert_tid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x241fabb9 t3_l2t_get +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x2f98b518 cxgb3_alloc_atid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x3696d999 cxgb3_unregister_client +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x3b8167e1 t3_l2t_send_slow +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x3d5bdfc5 cxgb3_queue_tid_release +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x4ee58d5e cxgb3_free_atid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x687e486c cxgb3_ofld_send +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x6b3b78f4 cxgb3_alloc_stid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xa6b96be4 cxgb3_remove_tid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xa7390c20 t3_register_cpl_handler +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xc0b40ead t3_l2e_free +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xd9ae3812 cxgb3_register_client +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xdd7a5cfa cxgb3_free_stid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xe139968d dev2t3cdev +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xe37f3800 t3_l2t_send_event +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x06c6d2a1 cxgb4_disable_db_coalescing +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x0c7b42e7 cxgb4_alloc_atid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x0e5fd207 cxgb4_l2t_get +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x31c9213c cxgb4_free_atid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x32573617 cxgb4_pktgl_to_skb +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x461c2050 cxgb4_register_uld +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x4775aac8 cxgb4_port_chan +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x4802c795 cxgb4_create_server_filter +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x58868277 cxgb4_ofld_send +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x65937004 cxgb4_enable_db_coalescing +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x662e3238 cxgb4_alloc_sftid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x66c8ba2e cxgb4_get_tcp_stats +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x7014a26e cxgb4_remove_tid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x82dc0b07 cxgb4_flush_eq_cache +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x968e76ff cxgb4_port_viid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xa0c21417 cxgb4_free_stid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xab8d3a3c cxgb4_remove_server_filter +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xaeb57468 cxgb4_port_idx +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xb31542d3 cxgb4_dbfifo_count +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xb96973c0 cxgb4_sync_txq_pidx +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xcdfe0ff2 cxgb4_alloc_stid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xd00e5a36 cxgb4_unregister_uld +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xd68b66ec cxgb4_create_server +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xd69a0294 cxgb4_best_mtu +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xd8420ab7 cxgb4_l2t_send +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xf5126322 cxgb4_l2t_release +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xfe34c74c cxgb4_iscsi_init +EXPORT_SYMBOL drivers/net/ethernet/emulex/benet/be2net 0x3bb8314f be_roce_register_driver +EXPORT_SYMBOL drivers/net/ethernet/emulex/benet/be2net 0x4a1f23ac be_roce_unregister_driver +EXPORT_SYMBOL drivers/net/ethernet/emulex/benet/be2net 0xbab62e22 be_roce_mcc_cmd +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x00ec6929 mlx4_get_parav_qkey +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x05d6444a mlx4_sync_pkey_table +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x083120a1 mlx4_get_slave_port_state +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x0f5a4ae2 mlx4_SET_PORT_general +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x12fb35d2 mlx4_test_interrupts +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x26cfaf4d mlx4_SET_PORT_SCHEDULER +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x2d4728c8 mlx4_SET_PORT_PRIO2TC +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x4d21b3e9 mlx4_gen_guid_change_eqe +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x52bf88f7 mlx4_gen_slaves_port_mgt_ev +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x5d74446b mlx4_assign_eq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x738c0bfb mlx4_SET_MCAST_FLTR +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x8532c378 set_and_calc_slave_port_state +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x8818ac6c mlx4_release_eq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x989677bc mlx4_gen_port_state_change_eqe +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x9963e251 mlx4_get_slave_node_guid +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x9b320680 mlx4_SET_PORT_qpn_calc +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd08ac98a mlx4_is_slave_active +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd346f7a2 mlx4_get_slave_pkey_gid_tbl_len +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xdd5ce352 mlx4_put_slave_node_guid +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe60994ff mlx4_set_stats_bitmap +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe923d351 mlx4_gen_pkey_eqe +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x1754259c hdlcdrv_unregister +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x212d19a4 hdlcdrv_receiver +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x3dfaf124 hdlcdrv_transmitter +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0xc3d14bc3 hdlcdrv_arbitrate +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0xe90c6263 hdlcdrv_register +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x160d5e0f sirdev_raw_read +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x17940036 sirdev_write_complete +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x1e3012cc sirdev_put_instance +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x3bb53b60 sirdev_get_instance +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x5072ddc8 sirdev_set_dtr_rts +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x92e92ddd sirdev_receive +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x93e64171 irda_unregister_dongle +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x99666094 sirdev_set_dongle +EXPORT_SYMBOL drivers/net/irda/sir-dev 0xc48a0e53 sirdev_raw_write +EXPORT_SYMBOL drivers/net/irda/sir-dev 0xcf18929b irda_register_dongle +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/mdio 0xddc98749 mdio45_ethtool_gset_npage +EXPORT_SYMBOL drivers/net/mii 0x0a319d3e mii_check_link +EXPORT_SYMBOL drivers/net/mii 0x0f34be93 mii_check_gmii_support +EXPORT_SYMBOL drivers/net/mii 0x1e896c5a mii_ethtool_sset +EXPORT_SYMBOL drivers/net/mii 0x2f9b7636 mii_ethtool_gset +EXPORT_SYMBOL drivers/net/mii 0x9caccdb7 generic_mii_ioctl +EXPORT_SYMBOL drivers/net/mii 0xed4b6c47 mii_link_ok +EXPORT_SYMBOL drivers/net/mii 0xf8967333 mii_check_media +EXPORT_SYMBOL drivers/net/mii 0xfed1f2ff mii_nway_restart +EXPORT_SYMBOL drivers/net/ppp/pppox 0x9d1610e8 pppox_unbind_sock +EXPORT_SYMBOL drivers/net/ppp/pppox 0xca06303b pppox_ioctl +EXPORT_SYMBOL drivers/net/ppp/pppox 0xd7d0c59d register_pppox_proto +EXPORT_SYMBOL drivers/net/ppp/pppox 0xe0ff7a18 unregister_pppox_proto +EXPORT_SYMBOL drivers/net/sungem_phy 0x16893c68 sungem_phy_probe +EXPORT_SYMBOL drivers/net/usb/usbnet 0x451c143b usbnet_manage_power +EXPORT_SYMBOL drivers/net/usb/usbnet 0x9fcf3073 usbnet_link_change +EXPORT_SYMBOL drivers/net/usb/usbnet 0xd7713df6 usbnet_device_suggests_idle +EXPORT_SYMBOL drivers/net/wan/hdlc 0x1570cd8b hdlc_change_mtu +EXPORT_SYMBOL drivers/net/wan/hdlc 0x370ed573 detach_hdlc_protocol +EXPORT_SYMBOL drivers/net/wan/hdlc 0x5127fa91 hdlc_close +EXPORT_SYMBOL drivers/net/wan/hdlc 0x63abac4b unregister_hdlc_protocol +EXPORT_SYMBOL drivers/net/wan/hdlc 0x68eb5acf alloc_hdlcdev +EXPORT_SYMBOL drivers/net/wan/hdlc 0x7d410846 hdlc_ioctl +EXPORT_SYMBOL drivers/net/wan/hdlc 0xa69a36f4 unregister_hdlc_device +EXPORT_SYMBOL drivers/net/wan/hdlc 0xc3747768 hdlc_start_xmit +EXPORT_SYMBOL drivers/net/wan/hdlc 0xca42fda3 attach_hdlc_protocol +EXPORT_SYMBOL drivers/net/wan/hdlc 0xeb1bc199 hdlc_open +EXPORT_SYMBOL drivers/net/wan/hdlc 0xedca9ec5 register_hdlc_protocol +EXPORT_SYMBOL drivers/net/wimax/i2400m/i2400m 0xf9cb92ec i2400m_unknown_barker +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x223c567a ath_reg_notifier_apply +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x319c6026 ath_is_49ghz_allowed +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x4e2481d5 ath_is_world_regd +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x53358ce3 ath_regd_get_band_ctl +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x6033cc2a ath_hw_get_listen_time +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x62196931 ath_key_config +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x661e5f4b ath_hw_keyreset +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x708a93f7 ath_hw_cycle_counters_update +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x9e212661 ath_key_delete +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xa7a3bab4 ath_rxbuf_alloc +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xd84d5119 ath_regd_init +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xea15693c ath_hw_setbssidmask +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xfa09e2e2 ath_printk +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x02e10916 ath10k_core_create +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x16ad98db ath10k_core_target_suspend +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x45a6d57a ath10k_core_register +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x8246be6c ath10k_err +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x895f9dc2 ath10k_info +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x958b87c9 ath10k_core_destroy +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x9c9da0fb ath10k_core_unregister +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0xa76c4164 ath10k_core_target_resume +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0xaf096710 ath10k_warn +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x0199ec46 ath6kl_info +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x0e446e81 ath6kl_hif_intr_bh_handler +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x13384734 ath6kl_core_create +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x1d306570 ath6kl_core_destroy +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x2366021d ath6kl_core_rx_complete +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x27cf1694 ath6kl_warn +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x337b92e5 ath6kl_stop_txrx +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x4c6ddcb4 ath6kl_err +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x4e1380ee ath6kl_printk +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x7b2c02cd ath6kl_cfg80211_suspend +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x91cfb84a ath6kl_hif_rw_comp_handler +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x99147ea2 ath6kl_core_cleanup +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0xa950e9cb ath6kl_cfg80211_resume +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0xc6d73375 ath6kl_core_tx_complete +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0xee4dc030 ath6kl_core_init +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k 0x0a874894 ath9k_hw_wow_apply_pattern +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k 0x635822f1 ath9k_hw_wow_wakeup +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k 0x91fc76f5 ath9k_hw_wow_event_to_string +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k 0xdc5eac0a ath9k_hw_wow_enable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x1d896766 ath9k_cmn_update_ichannel +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x4ebe0e4f ath9k_cmn_get_hw_crypto_keytype +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x53ec18e2 ath9k_cmn_init_crypto +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x831ce4e2 ath9k_cmn_update_txpow +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xc87a600b ath9k_cmn_get_curchannel +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xd2981357 ath9k_cmn_count_streams +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x009b781d ath9k_hw_cfg_gpio_input +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x00cc331e ath9k_hw_set_rx_bufsize +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x03f79a69 ath9k_hw_enable_interrupts +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x05496bb5 ath9k_hw_txstart +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x05ae2357 ath9k_hw_disable_mib_counters +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x05fa5c0a ath9k_hw_set_txq_props +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x063df965 ar9003_paprd_setup_gain_table +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x093be500 ath9k_hw_intrpend +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x09d76471 ath9k_hw_init_global_settings +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x0b6a1c97 ath9k_hw_set_gpio +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x0bd77023 ath9k_hw_set_interrupts +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x0c4905f4 ath_gen_timer_isr +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x0d58044a ar9003_paprd_create_curve +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x1416c177 ar9003_paprd_populate_single_table +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x153847d9 ath9k_hw_gettsf32 +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x18e9ec91 ath9k_hw_ani_monitor +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x206cf428 ath9k_hw_setuptxqueue +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x248608d5 ar9003_hw_disable_phy_restart +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x28f35c16 ath_gen_timer_free +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2bbdad46 ath9k_hw_btcoex_set_concur_txprio +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2dde7dde ath9k_hw_btcoex_disable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x309da73a ath9k_hw_btcoex_init_scheme +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x30f92e84 ar9003_mci_setup +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x32acc69d ath9k_hw_reset_tsf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x348f2a74 ar9003_paprd_init_table +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x34bf9484 ath9k_hw_btcoex_set_weight +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x38d92d19 ath9k_hw_releasetxqueue +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x449d61c1 ath9k_hw_reset +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x450c9186 ath9k_hw_puttxbuf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x4632db82 ath9k_hw_getchan_noise +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x48b44e33 ath9k_hw_btcoex_bt_stomp +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x4f633338 ar9003_mci_send_wlan_channels +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x544d04f7 ath9k_hw_setantenna +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x5664147a ar9003_hw_bb_watchdog_dbg_info +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x5b165a7f ar9003_get_pll_sqsum_dvc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x5b786c6b ath9k_hw_updatetxtriglevel +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x5dc775e3 ath9k_hw_setopmode +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x5e9e5bb7 ath9k_hw_setrxfilter +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x607c3b45 ath9k_hw_abortpcurecv +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x634b2d60 ath9k_hw_gen_timer_start +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x63968d49 ar9003_mci_get_next_gpm_offset +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x68f8a0a7 ath_gen_timer_alloc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x6d7bbea9 ath9k_hw_btcoex_enable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x714fbb0e ath9k_hw_putrxbuf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x726e9124 ath9k_hw_setmcastfilter +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x73d9ee70 ath9k_hw_beaconinit +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x75044d09 ath9k_hw_wait +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7791d838 ath9k_hw_abort_tx_dma +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x791f25a1 ath9k_hw_deinit +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7a356e36 ath9k_hw_rxprocdesc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7ad9cde9 ath9k_hw_disable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7b0f496f ath9k_hw_setup_statusring +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x80a20c3c ath9k_hw_settsf64 +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x8b64bd83 ath9k_hw_stop_dma_queue +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x99f78f83 ath9k_hw_cfg_output +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x9f0f56f9 ath9k_hw_setpower +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa3cd6e01 ath9k_hw_set_sta_beacon_timers +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa52825ab ar9003_mci_get_interrupt +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa693f618 ar9003_paprd_enable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa9b0e9e9 ath9k_hw_gen_timer_stop +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xaa8d0792 ar9003_mci_set_bt_version +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xaaa588eb ath9k_hw_gettsf64 +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb0c6f2db ath9k_hw_btcoex_init_2wire +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb23d89be ath9k_hw_reset_calvalid +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb31e05e4 ath9k_hw_computetxtime +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb4a665ff ath9k_hw_write_associd +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb4c8e9e9 ath9k_hw_bstuck_nfcal +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb4dab711 ath9k_hw_btcoex_init_3wire +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb68185cb ath9k_hw_getrxfilter +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb980da2a ar9003_mci_state +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xbac944f2 ath9k_hw_beaconq_setup +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xbe438dda ath9k_hw_startpcureceive +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc0efbd4c ar9003_mci_send_message +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc207d4c9 ar9003_mci_cleanup +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc4a2ed72 ath9k_hw_disable_interrupts +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc4a3d492 ath9k_hw_numtxpending +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc661730c ath9k_hw_stopdmarecv +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc92d67c9 ath9k_hw_setrxabort +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xcaa02641 ath9k_hw_kill_interrupts +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xccc273e4 ath9k_hw_resettxqueue +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd1f0ab8c ath9k_hw_setuprxdesc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd91aaf1d ath9k_hw_set_tsfadjust +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xda94f477 ar9003_paprd_is_done +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xdfe47dfc ar9003_is_paprd_enabled +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe1a5e598 ath9k_hw_init +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe2f0dec4 ath9k_hw_get_txq_props +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe4724951 ath9k_hw_process_rxdesc_edma +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe7dd110a ath9k_hw_getnf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe9426afa ath9k_hw_name +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xed4f9c38 ath9k_hw_addrxbuf_edma +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf0e87a0d ath9k_hw_set_txpowerlimit +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf2491a08 ath9k_hw_check_alive +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf8976bc1 ath9k_hw_gpio_get +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf922562a ath9k_hw_gettxbuf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf9fb4546 ath9k_hw_init_btcoex_hw +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xfafaf1f0 ath9k_hw_btcoex_init_mci +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xfea99d28 ath9k_hw_phy_disable +EXPORT_SYMBOL drivers/net/wireless/atmel 0x1b8a5451 atmel_open +EXPORT_SYMBOL drivers/net/wireless/atmel 0x5e0ccc60 init_atmel_card +EXPORT_SYMBOL drivers/net/wireless/atmel 0xf93a9c77 stop_atmel_card +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmfmac/brcmfmac 0xbcf8b96d brcmf_sdio_probe +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmfmac/brcmfmac 0xc15135d4 brcmf_sdio_remove +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x155f899f brcmu_pktq_flush +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x206cf48f brcmu_pktq_mdeq +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x2dc227f8 brcmu_d11_attach +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x4a988c2d brcmu_pktq_init +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x5e74f4bb brcmu_pktq_peek_tail +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x73cf6fa1 brcmu_pkt_buf_free_skb +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x7f0642a9 brcmu_pktq_pdeq_tail +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x84b799b7 brcmu_pktq_penq +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0xa5c77c16 brcmu_pktq_pdeq +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0xaf9f9fa6 brcmu_pktq_mlen +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0xc08c5934 brcmu_pktq_penq_head +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0xc8e5c3cb brcmu_pktq_pflush +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0xd6f744bc brcmu_pkt_buf_get_skb +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0xfcb5c6ab brcmu_pktq_pdeq_match +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x0076e125 hostap_set_hostapd +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x072ad863 hostap_set_roaming +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x0ad69602 hostap_set_multicast_list_queue +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x0e57465a hostap_info_process +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x0f6de884 hostap_init_ap_proc +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x17e72f7b hostap_check_sta_fw_version +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x320af7ff hostap_set_auth_algs +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x523f0425 hostap_set_encryption +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x59da5e6f hostap_add_interface +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x63bf0015 prism2_update_comms_qual +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x651cc7fb hostap_init_data +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x66c109dc hostap_80211_ops +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x6abbc2f3 hostap_set_word +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x6fabe331 hostap_info_init +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x74780315 hostap_setup_dev +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x830c2dfe hostap_80211_rx +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x8cbcd9bb hostap_handle_sta_tx_exc +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x92229d8f hostap_master_start_xmit +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xa12ad27f hostap_dump_tx_header +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xa82520e2 hostap_remove_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 0xb76008cc hostap_set_hostapd_sta +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xba2a41a7 hostap_set_string +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xd5e565fb hostap_remove_proc +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xd72f173e hostap_get_porttype +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xd8462211 hostap_init_proc +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xdd86a9bc hostap_free_data +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xe12f12b1 hostap_set_antsel +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x0dd5ed8a libipw_set_geo +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x17c9cbf5 libipw_wx_get_encodeext +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x1935fa51 libipw_txb_free +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x1bafc47b alloc_libipw +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x1e599693 libipw_get_geo +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x25df0606 libipw_wx_set_encode +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x3b76f0d6 libipw_wx_get_encode +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x470beb5f libipw_rx +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x58bd5e88 free_libipw +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x70cb9dd4 libipw_networks_age +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x734d40fe libipw_channel_to_freq +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x77aca3ac libipw_wx_set_encodeext +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x8b265597 libipw_freq_to_channel +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x9b0025b9 libipw_wx_get_scan +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xae12238d libipw_is_valid_channel +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xbe454010 libipw_xmit +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xbe5735a5 libipw_channel_to_index +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xd654cd8d libipw_change_mtu +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xeac2679d libipw_get_channel +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xf0919d3d libipw_get_channel_flags +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xfdd09556 libipw_rx_mgt +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x011f169f il_power_update_mode +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x0a2db92d _il_poll_bit +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x0bfd8d59 il_set_rate +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x0c51a0de il_clear_bit +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x0cc57c9b il_set_rxon_hwcrypto +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x0e012c87 il_usecs_to_beacons +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x102c23ad il_txq_update_write_ptr +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x121c116b il_wr_prph +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x1618afc2 il_mac_add_interface +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x1665c4c3 il_update_stats +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x16f2e4bd il_get_passive_dwell_time +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x1c752e21 il_free_geos +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x1c9b1c8b il_pm_ops +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x1f6dbe0a il_leds_exit +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x21a4152b il_connection_init_rx_config +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x25e20ab7 il_rx_queue_space +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x266dfed3 il_tx_cmd_complete +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x26ac107c il_rx_queue_alloc +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x2b7fdd4f il_add_station_common +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x2c243428 il_mac_flush +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x2cdf3fa1 il_force_reset +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x2ec3f4fc il_set_tx_power +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x2fbf9ec7 il_fill_probe_req +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x3189df09 il_write_targ_mem +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x3a6fb643 il_hdl_pm_sleep +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x3d313606 il_chswitch_done +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x40a578c3 il_cmd_queue_unmap +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x45a3cb6e il_tx_queue_free +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x4a2ed88c il_mac_config +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x4aa39103 il_get_cmd_string +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x4b1f8194 il_init_geos +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x4c3ac897 il_queue_space +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x4f3d6d9a il_scan_cancel +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x551866cb il_hdl_spectrum_measurement +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x55297794 il_leds_init +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x5572813a il_send_cmd_sync +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x564c6740 il_debug_level +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x5add91ae il_power_initialize +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x5f471f92 il_get_lowest_plcp +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x5f60dc43 il_irq_handle_error +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x5fe6c524 il_free_txq_mem +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x607681ca il_eeprom_init +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x63473532 il_mac_hw_scan +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x63b83ce5 il_eeprom_free +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x63cbe67a il_tx_queue_unmap +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x6763dde2 il_apm_init +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x68ca4309 il_is_ht40_tx_allowed +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x6a4717ad il_read_targ_mem +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x6dcdc122 il_full_rxon_required +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x72078b96 il_eeprom_query_addr +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x74ba6bb7 il_init_scan_params +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x7517e7fd il_send_lq_cmd +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x77f18534 il_setup_scan_deferred_work +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x792c2f38 il_setup_watchdog +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x7a18f097 il_rx_queue_update_write_ptr +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x7bde806d il_mac_sta_remove +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x7d0c64a3 il_hdl_error +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x7e54c196 il_send_stats_request +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x82f00b9d il_set_rxon_ht +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x84a4a1a1 il_free_channel_map +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x894d9598 il_eeprom_query16 +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x8dce5144 il_clear_ucode_stations +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x90c3341b il_cmd_queue_free +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x94af1f98 il_add_beacon_time +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x965c762a il_tx_queue_reset +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x9bfb3a6a il_init_channel_map +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x9c91fa89 il_dbgfs_unregister +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x9cc0d8a9 il_cancel_scan_deferred_work +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xa152afbd il_scan_cancel_timeout +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xa5a018e9 il_send_add_sta +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xa9c89893 il_set_flags_for_band +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xab26f917 il_get_active_dwell_time +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xadc064bf il_poll_bit +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xb178a599 il_dbgfs_register +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xb31d930d il_mac_remove_interface +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xb48fe64f il_get_channel_info +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xb7bd33ff il_isr +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xb85783cf il_send_cmd_pdu +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xbbac3403 il_mac_change_interface +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xc06bf305 il_tx_cmd_protection +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xc1710e7f il_alloc_txq_mem +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xc39cf12c il_bg_watchdog +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xc67818ce il_mac_reset_tsf +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xc93fa55f il_send_cmd +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xcada587e il_check_rxon_cmd +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xce4b7b51 il_restore_stations +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xcfd525ed il_rd_prph +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xd2b6bb73 il_send_rxon_timing +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xd3ff4bf8 _il_apm_stop +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xd46464b1 il_send_cmd_pdu_async +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xd502426d il_set_decrypted_flag +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xd54ca732 il_set_rxon_channel +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xd674945b il_get_free_ucode_key_idx +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xd6a460d3 il_mac_bss_info_changed +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xd86e8f09 il_tx_queue_init +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xdffa636f il_send_bt_config +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xe0e40228 il_hdl_csa +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xe29ac76d il_mac_conf_tx +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xe642ff58 il_get_single_channel_number +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xedd8b3ba il_hdl_pm_debug_stats +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xef460a65 il_setup_rx_scan_handlers +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xef6be8bd il_apm_stop +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xf501278b il_bcast_addr +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xfda8b82f il_set_bit +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0x08ee1e7d __tracepoint_iwlwifi_dev_ucode_event +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0x0d9eb5ff __tracepoint_iwlwifi_dev_ucode_wrap_event +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0x0e7bc05f __tracepoint_iwlwifi_warn +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0x201337b4 __tracepoint_iwlwifi_dev_tx +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0x249e4b06 __tracepoint_iwlwifi_dev_rx +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0x36dcef55 __tracepoint_iwlwifi_dev_iowrite32 +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0x4919d1a5 __tracepoint_iwlwifi_dbg +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0x67381a2a __tracepoint_iwlwifi_dev_ucode_error +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0x79e9bf26 __tracepoint_iwlwifi_crit +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0x7edec07d __tracepoint_iwlwifi_dev_ioread32 +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0x8bfcc307 __tracepoint_iwlwifi_info +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0x9a12c9c5 __tracepoint_iwlwifi_dev_ucode_cont_event +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0xc0827b2f __tracepoint_iwlwifi_dev_iowrite8 +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0xda36f3a4 __tracepoint_iwlwifi_err +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x16046c63 orinoco_get_stats +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x2e76350c __orinoco_ev_rx +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x399a9a5b orinoco_if_del +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x58d1aed5 orinoco_stop +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x5bfb0c47 hermes_struct_init +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x5ee9c212 orinoco_down +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x79ad445a orinoco_change_mtu +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x7cf2480b orinoco_init +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x7f76813c free_orinocodev +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x918fea16 orinoco_process_xmit_skb +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xab790d3d orinoco_open +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xb2688523 orinoco_tx_timeout +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xbd318698 alloc_orinocodev +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xc0606440 __orinoco_ev_info +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xd76c2681 orinoco_if_add +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xe11dc19c orinoco_up +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xfe0f61c0 orinoco_set_multicast_list +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xffe27bca orinoco_interrupt +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x01024e8d rtl92c_dm_write_dig +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x07371b77 rtl92c_download_fw +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x18065344 _rtl92c_phy_fw_rf_serial_read +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x22e0f97a rtl92c_dm_init +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x2a5bfefc rtl92c_dm_watchdog +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x2d458b11 rtl92c_dm_rf_saving +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x31fcfaf8 rtl92c_set_fw_rsvdpagepkt +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x332dcfaf _rtl92c_phy_bb8192c_config_parafile +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x3c2b44e7 _rtl92c_store_pwrIndex_diffrate_offset +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x42bd0277 rtl92c_set_fw_joinbss_report_cmd +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x45d4d46b rtl8192_phy_check_is_legal_rfpath +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x4ed6b758 _rtl92c_phy_rf_serial_read +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x5e5f8938 rtl92c_phy_scan_operation_backup +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x6590b1e0 rtl92c_phy_update_txpower_dbm +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x6618c901 rtl92c_phy_ap_calibrate +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x6897a523 rtl92c_phy_query_bb_reg +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x78a6bb59 rtl92c_dm_bt_coexist +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x7b693c59 rtl92ce_phy_set_rf_on +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x7dcfcf60 rtl92c_phy_set_bb_reg +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x8364b318 _rtl92c_phy_rf_serial_write +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x88a0362b rtl92c_phy_set_rfpath_switch +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x892ee534 rtl92c_phy_sw_chnl +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x8c353356 rtl92c_phy_rf_config +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x90677163 rtl92c_set_fw_pwrmode_cmd +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x92f73298 rtl92c_firmware_selfreset +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x9316c8bc rtl92c_phy_set_txpower_level +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x9ab7844f rtl92c_dm_init_rate_adaptive_mask +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xa14b0c9d rtl92c_phy_sw_chnl_callback +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xab7544ea rtl92c_phy_iq_calibrate +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xac1d8e37 rtl92c_dm_check_txpower_tracking +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xb3314d48 _rtl92c_phy_calculate_bit_shift +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xb3efb284 rtl92c_phy_set_io_cmd +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xbab7560c _rtl92c_phy_txpwr_idx_to_dbm +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xcda2d79b rtl92c_bt_rssi_state_change +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xce24243c _rtl92c_phy_fw_rf_serial_write +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xd452496d rtl92c_phy_lc_calibrate +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xdc694d86 rtl92c_phy_set_io +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xe2e42b7f rtl92c_dm_init_edca_turbo +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xe6aacf1a rtl92c_phy_set_bw_mode +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xec269948 rtl92c_fill_h2c_cmd +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xf2c7fe22 _rtl92c_phy_init_bb_rf_register_definition +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xf706205d _rtl92c_phy_set_rf_sleep +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xfc8a55f1 _rtl92c_phy_dbm_to_txpwr_Idx +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl_pci 0x0eaf9538 rtl_pci_probe +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl_pci 0x2d1d51fc rtl_pci_disconnect +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl_pci 0x63e2a260 rtl_pci_resume +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl_pci 0x78482ec9 rtl_pci_suspend +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl_usb 0x1894bd71 rtl_usb_disconnect +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl_usb 0x7428062b rtl_usb_resume +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl_usb 0xe7abb675 rtl_usb_suspend +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl_usb 0xf11f3dd7 rtl_usb_probe +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x01969f4a rtlwifi_rate_mapping +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x06c6cc13 rtl_init_rfkill +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x0f0da689 rtl_cam_delete_one_entry +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x17d7bfc5 rtl_cam_get_free_entry +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x207fbb70 rtl_evm_db_to_percentage +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x2698344c rtl_cam_del_entry +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x64117d34 rtl_cam_empty_entry +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x79188a02 rtl_query_rxpwrpercentage +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x7bd0960b rtl_cam_add_one_entry +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x7c74db82 rtl_send_smps_action +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x7f408111 rtl_process_phyinfo +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x821f54e3 rtl_ps_set_rf_state +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xa47e2e1d rtl_cam_mark_invalid +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xb2da1f24 rtl_efuse_shadow_map_update +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xc86f357b efuse_read_1byte +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xd66a18d1 rtl_cam_reset_all_entry +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xde6355da rtl_signal_scale_mapping +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xe02b944f rtl_ps_disable_nic +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xebcf033e rtl_get_tcb_desc +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xeda8a6b8 rtl_ps_enable_nic +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xee5e5df9 rtl_fw_cb +EXPORT_SYMBOL drivers/net/wireless/ti/wlcore/wlcore 0x607374eb wl1271_free_tx_id +EXPORT_SYMBOL drivers/net/wireless/ti/wlcore/wlcore 0x8727a394 wlcore_tx_complete +EXPORT_SYMBOL drivers/net/wireless/ti/wlcore/wlcore 0xa40460e7 wlcore_calc_packet_alignment +EXPORT_SYMBOL drivers/net/wireless/ti/wlcore/wlcore 0xd5d332a9 wl12xx_is_dummy_packet +EXPORT_SYMBOL drivers/nfc/microread/microread 0x1b536c45 microread_probe +EXPORT_SYMBOL drivers/nfc/microread/microread 0xf4ba37c3 microread_remove +EXPORT_SYMBOL drivers/nfc/pn544/pn544 0x4744e8aa pn544_hci_probe +EXPORT_SYMBOL drivers/nfc/pn544/pn544 0xdcb9fc2e pn544_hci_remove +EXPORT_SYMBOL drivers/parport/parport 0x00d3dbb4 parport_ieee1284_ecp_write_data +EXPORT_SYMBOL drivers/parport/parport 0x02dc8105 parport_set_timeout +EXPORT_SYMBOL drivers/parport/parport 0x06540c5e parport_ieee1284_epp_read_addr +EXPORT_SYMBOL drivers/parport/parport 0x0efe9bc1 parport_ieee1284_epp_write_data +EXPORT_SYMBOL drivers/parport/parport 0x1c0ab0b8 parport_write +EXPORT_SYMBOL drivers/parport/parport 0x1ddbba0f parport_find_number +EXPORT_SYMBOL drivers/parport/parport 0x20146122 parport_claim_or_block +EXPORT_SYMBOL drivers/parport/parport 0x33f937b5 parport_get_port +EXPORT_SYMBOL drivers/parport/parport 0x38a28e5b parport_negotiate +EXPORT_SYMBOL drivers/parport/parport 0x3b45f01d parport_read +EXPORT_SYMBOL drivers/parport/parport 0x48fd9b23 parport_register_device +EXPORT_SYMBOL drivers/parport/parport 0x4d2a941b parport_ieee1284_interrupt +EXPORT_SYMBOL drivers/parport/parport 0x4f203d6f parport_register_port +EXPORT_SYMBOL drivers/parport/parport 0x52ff24f6 parport_unregister_device +EXPORT_SYMBOL drivers/parport/parport 0x536243d7 parport_wait_peripheral +EXPORT_SYMBOL drivers/parport/parport 0x569f0269 parport_ieee1284_read_byte +EXPORT_SYMBOL drivers/parport/parport 0x5a12f170 parport_remove_port +EXPORT_SYMBOL drivers/parport/parport 0x5e3a3912 parport_irq_handler +EXPORT_SYMBOL drivers/parport/parport 0x64d0bce7 parport_ieee1284_ecp_read_data +EXPORT_SYMBOL drivers/parport/parport 0x856ef944 parport_ieee1284_read_nibble +EXPORT_SYMBOL drivers/parport/parport 0x90ab7d09 parport_ieee1284_epp_read_data +EXPORT_SYMBOL drivers/parport/parport 0x9126f945 parport_unregister_driver +EXPORT_SYMBOL drivers/parport/parport 0x9989ae5d parport_register_driver +EXPORT_SYMBOL drivers/parport/parport 0x9bbd9c6c parport_release +EXPORT_SYMBOL drivers/parport/parport 0xa0d8c305 parport_ieee1284_write_compat +EXPORT_SYMBOL drivers/parport/parport 0xbc2eeaf2 parport_put_port +EXPORT_SYMBOL drivers/parport/parport 0xc60c73fe parport_announce_port +EXPORT_SYMBOL drivers/parport/parport 0xcdeed917 parport_claim +EXPORT_SYMBOL drivers/parport/parport 0xde258eb7 parport_wait_event +EXPORT_SYMBOL drivers/parport/parport 0xf271e837 parport_ieee1284_ecp_write_addr +EXPORT_SYMBOL drivers/parport/parport 0xfc5ca842 parport_ieee1284_epp_write_addr +EXPORT_SYMBOL drivers/parport/parport 0xfd02deed parport_find_base +EXPORT_SYMBOL drivers/parport/parport_pc 0x0de336b8 parport_pc_probe_port +EXPORT_SYMBOL drivers/parport/parport_pc 0x52fa067a parport_pc_unregister_port +EXPORT_SYMBOL drivers/remoteproc/remoteproc 0x02968eb5 rproc_put +EXPORT_SYMBOL drivers/remoteproc/remoteproc 0x1b88fbab rproc_report_crash +EXPORT_SYMBOL drivers/remoteproc/remoteproc 0x3a69fb8b rproc_vq_interrupt +EXPORT_SYMBOL drivers/remoteproc/remoteproc 0x53924615 rproc_boot +EXPORT_SYMBOL drivers/remoteproc/remoteproc 0x7612853b rproc_add +EXPORT_SYMBOL drivers/remoteproc/remoteproc 0x9b71e4e1 rproc_shutdown +EXPORT_SYMBOL drivers/remoteproc/remoteproc 0x9f163c5a rproc_da_to_va +EXPORT_SYMBOL drivers/remoteproc/remoteproc 0xeeffc3b3 rproc_del +EXPORT_SYMBOL drivers/remoteproc/remoteproc 0xfa6d5eab rproc_alloc +EXPORT_SYMBOL drivers/rpmsg/virtio_rpmsg_bus 0x0ae1d3b5 rpmsg_destroy_ept +EXPORT_SYMBOL drivers/rpmsg/virtio_rpmsg_bus 0x2225e7c3 rpmsg_send_offchannel_raw +EXPORT_SYMBOL drivers/rpmsg/virtio_rpmsg_bus 0x33b4f607 register_rpmsg_driver +EXPORT_SYMBOL drivers/rpmsg/virtio_rpmsg_bus 0x3aee2515 rpmsg_create_ept +EXPORT_SYMBOL drivers/rpmsg/virtio_rpmsg_bus 0x76026441 unregister_rpmsg_driver +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x2896dd01 fcoe_ctlr_destroy +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x3030f633 fcoe_ctlr_init +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x6896c640 fcoe_ctlr_els_send +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x70464930 fcoe_transport_detach +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x75373808 fcoe_ctlr_destroy_store +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x826aab51 fcoe_ctlr_link_down +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x9faf4a60 fcoe_fcf_get_selected +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xa5a65974 fcoe_ctlr_link_up +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xafcba948 fcoe_ctlr_recv +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xddb7dc78 fcoe_transport_attach +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xe297a606 fcoe_ctlr_set_fip_mode +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xf23b8776 fcoe_ctlr_recv_flogi +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x017955b5 fc_get_host_port_state +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x026db5cb fc_frame_alloc_fill +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x0ba3bc86 fc_exch_mgr_list_clone +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x0e08f598 fc_lport_destroy +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x0e0f7861 fc_fcp_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x1101b094 fc_lport_bsg_request +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x16dbcaad fc_eh_device_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x22b90986 fc_exch_mgr_del +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x29b924fa fc_elsct_send +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x2a8c30d5 fc_fcp_destroy +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x32039e18 fc_get_host_speed +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x36e5fbaf fc_cpu_mask +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x43c740fc fc_eh_abort +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x48fb1a74 fc_linkup +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x4cf9d199 fc_exch_mgr_alloc +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x4d281ca7 fc_exch_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x4eff2af7 _fc_frame_alloc +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x4fb2ae8a fc_linkdown +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x5bba8d4d fc_disc_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x5bc9140d fc_set_mfs +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x6328ef90 fc_set_rport_loss_tmo +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x64768b8e fc_fabric_login +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x64b3d37d fc_fill_hdr +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x659bba9c fc_change_queue_depth +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x70ab7a1b fc_lport_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x720e9087 fc_fc4_deregister_provider +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x7ebe62fa fc_exch_mgr_free +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x8a043bf5 fc_exch_mgr_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x8a198d0b libfc_vport_create +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x932404fd fc_change_queue_type +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xa00b75be fc_rport_terminate_io +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xa20d6fba fc_fabric_logoff +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xa38edbee fc_exch_update_stats +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xa56a18dc fc_slave_alloc +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xab6de9ce fc_rport_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xb5933626 fc_vport_setlink +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xb6367db6 fc_frame_crc_check +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xb7a2e097 fc_elsct_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xc52dbb65 fc_lport_logo_resp +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xc5741d92 fc_lport_notifier_head +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xc6410809 fc_lport_iterate +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xc7f4080c fc_exch_mgr_add +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xcaa245ef fc_disc_config +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xd86c2f0c fc_exch_recv +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xdaae08a6 fc_lport_config +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xdc99f2e6 fc_lport_set_local_id +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xdefb329e fc_queuecommand +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xe4169dff fc_fill_reply_hdr +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xe524c56c fc_fc4_register_provider +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xe5660354 fc_lport_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xe8aad154 fc_get_host_stats +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xf164fedb fc_lport_flogi_resp +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xf683c47b fc_vport_id_lookup +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xf94db506 fc_eh_host_reset +EXPORT_SYMBOL drivers/scsi/libsas/libsas 0x027a209c sas_prep_resume_ha +EXPORT_SYMBOL drivers/scsi/libsas/libsas 0x0dd69df4 sas_suspend_ha +EXPORT_SYMBOL drivers/scsi/libsas/libsas 0x1d85a71c sas_resume_ha +EXPORT_SYMBOL drivers/scsi/libsas/libsas 0x244a9635 sas_wait_eh +EXPORT_SYMBOL drivers/scsi/libsas/libsas 0x8a87e724 try_test_sas_gpio_gp_bit +EXPORT_SYMBOL drivers/scsi/megaraid/megaraid_mm 0x2250c66e mraid_mm_adapter_app_handle +EXPORT_SYMBOL drivers/scsi/megaraid/megaraid_mm 0x4b04cfa3 mraid_mm_register_adp +EXPORT_SYMBOL drivers/scsi/megaraid/megaraid_mm 0x512c956d mraid_mm_unregister_adp +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x065a7246 osd_req_flush_obsd +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x08db5472 osd_req_list_collection_objects +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x0c17edb1 osd_sec_init_nosec_doall_caps +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x0e98730d osd_req_add_set_attr_list +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x1fc593e6 osd_execute_request +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x203bd989 osd_end_request +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x26b266d0 osd_req_decode_get_attr_list +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x2df48d50 osd_req_set_attributes +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x3c48e837 osd_dev_init +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x426b1f00 osd_req_format +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x448e5efa osd_req_flush_collection +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x4c6ddf0e osd_req_read +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x6bc25c8a osd_req_write_sg +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x6e1a787b osd_req_decode_sense_full +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x94f1f599 osd_auto_detect_ver +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x9934e70f osd_req_add_get_attr_list +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xa1a89982 osd_req_list_dev_partitions +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xa2120a9a osd_req_create_partition +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xab215f98 osd_req_list_partition_collections +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xacaeee12 osd_req_flush_object +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xb07d6b02 osd_req_remove_partition +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xb584ff92 osd_req_read_kern +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xb937e39a osd_req_read_sg_kern +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xba89cefc osd_req_create_object +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xc6208424 osd_req_list_partition_objects +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xc73783c4 osd_req_write +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xc8799cea osd_req_read_sg +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xcac30a88 osd_req_add_get_attr_page +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xccfc57fb osd_req_flush_partition +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xd14646ad osd_req_get_attributes +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xd1810028 osd_req_write_kern +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xdb2df3e3 osd_finalize_request +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xe1e76cc2 osd_execute_request_async +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xe464c615 osd_dev_fini +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xea2784c7 osd_start_request +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xf4263902 osd_req_write_sg_kern +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xf4e835b1 osd_req_remove_object +EXPORT_SYMBOL drivers/scsi/osd/osd 0x44283bf6 osduld_register_test +EXPORT_SYMBOL drivers/scsi/osd/osd 0x5fc48609 osduld_unregister_test +EXPORT_SYMBOL drivers/scsi/osd/osd 0x7682ae58 osduld_put_device +EXPORT_SYMBOL drivers/scsi/osd/osd 0x7ee83560 osduld_info_lookup +EXPORT_SYMBOL drivers/scsi/osd/osd 0x9f055f8e osduld_path_lookup +EXPORT_SYMBOL drivers/scsi/osd/osd 0xe86d0607 osduld_device_same +EXPORT_SYMBOL drivers/scsi/osd/osd 0xfc7ed06f osduld_device_info +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0x20b7d73a qlt_stop_phase1 +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0x2219b4fa qlt_free_mcmd +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0x2420a328 qlt_lport_register +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0x5623fc57 qlt_free_cmd +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0x94d4faf0 qlt_rdy_to_xfer +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0x9fa5b4df qlt_xmit_response +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0xa121c68e qlt_xmit_tm_rsp +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0xa1b1b4c2 qlt_lport_deregister +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0xae87db3a qlt_unreg_sess +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0xd28e538d qlt_enable_vha +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0xdbcb3f2a qlt_stop_phase2 +EXPORT_SYMBOL drivers/scsi/raid_class 0x0876be2c raid_class_release +EXPORT_SYMBOL drivers/scsi/raid_class 0x0d827ff3 raid_component_add +EXPORT_SYMBOL drivers/scsi/raid_class 0xbfa86d16 raid_class_attach +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x024e099d fc_remote_port_rolechg +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x09b23cc0 scsi_is_fc_rport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x1cfa1bea fc_vport_terminate +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x3fc81f30 fc_remove_host +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x43847e5c fc_attach_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x4a4cfada fc_host_post_vendor_event +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x76b5b315 fc_vport_create +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x7954b1ea fc_get_event_number +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x9be09201 fc_release_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x9c9887d7 fc_host_post_event +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xb03dbf22 fc_block_scsi_eh +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xd0529be6 fc_remote_port_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xd23a3dea scsi_is_fc_vport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xde9a2531 fc_remote_port_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x028700aa sas_end_device_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x08189de4 sas_read_port_mode_page +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x170c1d1c sas_rphy_unlink +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x1b5f0639 sas_phy_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x1d1a5edd sas_release_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x22a6bbe4 sas_port_get_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x23ddc6ee scsi_is_sas_port +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x303be906 sas_port_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x3e54e04a sas_port_alloc_num +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x544d3012 sas_rphy_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x620c411e scsi_is_sas_rphy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x7895fc46 sas_phy_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x7bb03fab sas_port_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x7ec379b8 sas_expander_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x84ab0b98 sas_port_mark_backlink +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x91a98805 sas_remove_children +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x9bd1388a sas_attach_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xa3431731 sas_rphy_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xac01258d sas_port_delete_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xae6cc2b1 sas_remove_host +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xb65cd142 sas_port_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xb99ea1a9 sas_port_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xbd2ef16e sas_rphy_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xbf2d774b sas_phy_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xc06df560 sas_phy_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xc0a8616c scsi_is_sas_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xd28fa450 sas_rphy_remove +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xed5d6465 sas_port_add_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x3686ea09 spi_print_msg +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x44c1fe97 spi_attach_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x865c8040 spi_schedule_dv_device +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0x8ad553c8 spi_dv_device +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0xa46b937b spi_display_xfer_agreement +EXPORT_SYMBOL drivers/scsi/scsi_transport_spi 0xe3868686 spi_release_transport +EXPORT_SYMBOL drivers/ssb/ssb 0x00a69d45 ssb_bus_may_powerdown +EXPORT_SYMBOL drivers/ssb/ssb 0x073d1ede ssb_bus_pcibus_register +EXPORT_SYMBOL drivers/ssb/ssb 0x14c6054f ssb_driver_unregister +EXPORT_SYMBOL drivers/ssb/ssb 0x2406ea67 ssb_device_disable +EXPORT_SYMBOL drivers/ssb/ssb 0x372d4bba ssb_bus_suspend +EXPORT_SYMBOL drivers/ssb/ssb 0x382b94c1 ssb_device_enable +EXPORT_SYMBOL drivers/ssb/ssb 0x53033e61 __ssb_driver_register +EXPORT_SYMBOL drivers/ssb/ssb 0x5ed28392 ssb_dma_translation +EXPORT_SYMBOL drivers/ssb/ssb 0x8aedec41 ssb_bus_unregister +EXPORT_SYMBOL drivers/ssb/ssb 0x8b39210f ssb_clockspeed +EXPORT_SYMBOL drivers/ssb/ssb 0x8bc2dc41 ssb_bus_powerup +EXPORT_SYMBOL drivers/ssb/ssb 0xa26d9607 ssb_pmu_set_ldo_paref +EXPORT_SYMBOL drivers/ssb/ssb 0xa885e3ea ssb_commit_settings +EXPORT_SYMBOL drivers/ssb/ssb 0xc0512e0f ssb_admatch_base +EXPORT_SYMBOL drivers/ssb/ssb 0xcb29bc42 ssb_pcihost_register +EXPORT_SYMBOL drivers/ssb/ssb 0xd00c4ff1 ssb_set_devtypedata +EXPORT_SYMBOL drivers/ssb/ssb 0xd0dcd9ed ssb_device_is_enabled +EXPORT_SYMBOL drivers/ssb/ssb 0xd481192b ssb_admatch_size +EXPORT_SYMBOL drivers/ssb/ssb 0xd6e51275 ssb_bus_resume +EXPORT_SYMBOL drivers/ssb/ssb 0xd76cdc22 ssb_chipco_gpio_control +EXPORT_SYMBOL drivers/ssb/ssb 0xdc7d05b8 ssb_bus_sdiobus_register +EXPORT_SYMBOL drivers/ssb/ssb 0xf4195c70 ssb_pmu_set_ldo_voltage +EXPORT_SYMBOL drivers/ssb/ssb 0xfdd70f6b ssb_pcicore_dev_irqvecs_enable +EXPORT_SYMBOL drivers/staging/fwserial/firewire-serial 0x0eac4245 fwtty_port_put +EXPORT_SYMBOL drivers/staging/fwserial/firewire-serial 0xa81cacf8 fwtty_port_get +EXPORT_SYMBOL drivers/staging/iio/addac/adt7316 0x4b121ed3 adt7316_probe +EXPORT_SYMBOL drivers/staging/iio/addac/adt7316 0x7c4b07d8 adt7316_remove +EXPORT_SYMBOL drivers/staging/iio/meter/ade7854 0x0f8934d6 ade7854_probe +EXPORT_SYMBOL drivers/staging/iio/meter/ade7854 0x9d25b4e2 ade7854_remove +EXPORT_SYMBOL drivers/staging/media/cxd2099/cxd2099 0x5a1667a1 cxd2099_attach +EXPORT_SYMBOL drivers/staging/media/go7007/go7007 0x2235ad26 go7007_boot_encoder +EXPORT_SYMBOL drivers/staging/media/go7007/go7007 0x2392fff9 go7007_update_board +EXPORT_SYMBOL drivers/staging/media/go7007/go7007 0x66ea0129 go7007_read_interrupt +EXPORT_SYMBOL drivers/staging/media/go7007/go7007 0x88ff2d03 go7007_snd_init +EXPORT_SYMBOL drivers/staging/media/go7007/go7007 0xa5b50cd8 go7007_alloc +EXPORT_SYMBOL drivers/staging/media/go7007/go7007 0xab29de39 go7007_read_addr +EXPORT_SYMBOL drivers/staging/media/go7007/go7007 0xb099a4c7 go7007_snd_remove +EXPORT_SYMBOL drivers/staging/media/go7007/go7007 0xc9785710 go7007_register_encoder +EXPORT_SYMBOL drivers/staging/media/go7007/go7007 0xf4ed6624 go7007_parse_video_stream +EXPORT_SYMBOL drivers/staging/nvec/nvec 0xbb5be88d nvec_write_async +EXPORT_SYMBOL drivers/staging/nvec/nvec 0xde9044cf nvec_write_sync +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x0177f221 rtllib_wx_get_power +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x1ca119eb rtllib_wx_set_gen_ie +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x1cd82e33 rtllib_start_scan_syncro +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x1fdda9e3 rtllib_xmit +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x257b903b rtllib_wx_get_mode +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x2ad214de rtllib_DisableIntelPromiscuousMode +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x2d13fd86 rtllib_wx_set_rawtx +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x347819a5 rtllib_wx_set_freq +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x38762bf5 rtllib_get_beacon +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x39a412db rtllib_wx_get_essid +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x501270ab rtllib_ps_tx_ack +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x56d11ecb rtllib_legal_channel +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x595406ae RemovePeerTS +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x5fc4ccb8 rtllib_stop_scan_syncro +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x5fe1d500 rtllib_wx_set_essid +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x62ed7941 rtllib_reset_queue +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x668781e1 rtllib_wx_set_mode +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x673235fa rtllib_wx_set_power +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x698240e4 alloc_rtllib +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x6a6d1bdc rtllib_wx_set_wap +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x6b5dd03c rtllib_wx_get_rts +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x6bd8ac5b rtllib_wpa_supplicant_ioctl +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x6d6bf119 rtllib_wx_get_name +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x6dfd41ca rtllib_softmac_start_protocol +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x6f6715df rtllib_stop_scan +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x7784087f rtllib_wx_get_freq +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x7b1adf5f rtllib_softmac_stop_protocol +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x840c58b9 Dot11d_Channelmap +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x872d5dbd rtllib_wx_set_mlme +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x8793d1ea rtllib_start_send_beacons +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x8d57e2d4 dot11d_init +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xa3b66a0d rtllib_wx_get_scan +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xa3fc10a7 rtllib_wx_get_rate +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xa6d866e8 rtllib_sta_ps_send_null_frame +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xae58e486 rtllib_EnableIntelPromiscuousMode +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xbd2f5c74 rtllib_wx_set_encode_ext +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xbe1420f2 rt_global_debug_component +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xbe99ff2d rtllib_stop_send_beacons +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xcc0034be notify_wx_assoc_event +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xdf78f620 rtllib_wlan_frequencies +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xe000017d rtllib_wx_set_rate +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xe04a7bd7 rtllib_wx_set_scan +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xe06633f6 rtllib_wx_set_auth +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xe45193a1 rtllib_wx_get_encode +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xf215d6b3 rtllib_rx +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xf536dd3a rtllib_wx_set_encode +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xf6fbcd48 free_rtllib +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xfb7af7be rtllib_MgntDisconnect +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xfca1c210 HT_update_self_and_peer_setting +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xfca60060 rtllib_act_scanning +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xfea56054 rtllib_wx_set_rts +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xff95abb4 rtllib_wx_get_wap +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x001516a5 ieee80211_softmac_stop_protocol_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x0200d679 ieee80211_wpa_supplicant_ioctl_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x0865d552 ieee80211_softmac_xmit_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x0e114fa8 ieee80211_start_send_beacons_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x0e8b4b17 ieee80211_wx_get_mode_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x1331d5b1 Dot11d_UpdateCountryIe +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x1f9fce75 ieee80211_wx_get_scan_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x1ffb775a ieee80211_wx_get_freq_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x22e85a79 ieee80211_wx_set_rate_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x36a20882 ieee80211_wx_set_encode_ext_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x3bbaa4d5 ieee80211_wx_set_auth_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x3cbb989d ieee80211_is_54g_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x3d84390d ieee80211_wx_get_power_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x3ea88a3b ieee80211_wx_get_encode_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x5778bd44 ieee80211_wx_get_rts_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x59ca7593 ieee80211_softmac_start_protocol_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x66d5f0bd ieee80211_wx_set_wap_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x6c17730a ieee80211_wx_set_gen_ie_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x6c32c8b5 ieee80211_is_shortslot_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x7648ed31 DOT11D_ScanComplete +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x78cb8a89 ieee80211_get_beacon_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x7c0912fa ieee80211_wx_get_encode_ext_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x7feb77f0 ieee80211_wx_set_power_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x80bfd606 ieee80211_softmac_scan_syncro_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x8347078b notify_wx_assoc_event_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x899306da ieee80211_stop_queue_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x8bf692ee ieee80211_wx_get_essid_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x8c955d2b ieee80211_wx_set_rts_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x916ae88c ieee80211_wx_get_name_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x975ab3c9 ieee80211_txb_free_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xa42e741c Dot11d_Init +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xaaaf2305 DOT11D_GetMaxTxPwrInDbm +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xae4f21a3 ieee80211_rx_mgt_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xb7e71c66 ieee80211_stop_send_beacons_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xbb378ce9 ieee80211_ps_tx_ack_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xbcab4c0f ieee80211_reset_queue_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xbd3810d2 ieee80211_wx_get_wap_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xbe8bd733 ieee80211_disassociate_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xc10234ea HTUpdateSelfAndPeerSetting +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xc22de673 ieee80211_wx_set_freq_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xc2495f5c ieee80211_wx_set_scan_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xc370a43e ieee80211_wlan_frequencies_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xc6dcfe62 ieee80211_rx_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xc7a6ac83 ieee80211_wake_queue_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xc999dc13 ieee80211_wx_set_essid_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xd35dda3e ieee80211_wx_set_mode_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xd85f5bab ieee80211_stop_scan_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xe243f841 IsLegalChannel +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xe47a3bfd ieee80211_wx_set_mlme_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xeed78a85 ieee80211_start_scan_syncro_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xf4a6bedf ieee80211_send_probe_requests_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xf763fe07 ieee80211_wx_set_rawtx_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xfcc179c4 ToLegalChannel +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xfd2bbb25 SendDisassociation_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xfd9a810f Dot11d_Reset +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xfde66bd4 ieee80211_wx_set_encode_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xff3ecb50 ieee80211_wx_get_rate_rsl +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x0017f35f set_bp_disc_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x00ea0cde set_tap_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x06d6f244 get_bp_dis_disc_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x09df8f3e set_tap_pwup_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x0a8d32c3 get_bypass_slave_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x1936264c set_dis_bypass_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x1d2eb8ca get_tap_change_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x203af1f7 reset_bypass_wd_timer_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x2070f14a set_bypass_pwup_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x27b990ef get_bypass_info_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x2ba7cd35 get_wd_autoreset_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x2c3f1c17 get_tx_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x2f59e636 get_tap_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x2fdb893a get_tap_pwup_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x361cf40a get_dis_bypass_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x45ca99c3 set_wd_autoreset_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x550a188c set_bypass_wd_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x5cb59e92 get_bypass_pwup_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x66b60122 set_bypass_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x675208c0 set_tx_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x692623f2 get_std_nic_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x75131ec6 set_bypass_pwoff_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x76c0b7d0 set_tpl_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x7e872825 get_wd_exp_mode_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x7e8d701e get_wd_expire_time_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x86388b07 get_bp_disc_change_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x93ae4648 get_wd_set_caps_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x95e42b0d is_bypass_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x9df5f807 set_dis_tap_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x9e21f42e set_std_nic_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0xa689a214 get_bypass_wd_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0xae117788 get_bp_disc_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0xc368d30d get_dis_tap_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0xccab5de0 get_bypass_caps_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0xd3e034b3 get_bypass_pwoff_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0xd9c1ccfc get_bp_disc_pwup_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0xd9d38d97 set_wd_exp_mode_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0xe640f06e set_bp_disc_pwup_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0xecdaa456 set_bp_hw_reset_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0xedcd3c1b get_bypass_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0xf06d67bf set_bp_dis_disc_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0xf57c1671 get_bp_hw_reset_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0xf693c3a1 bp_if_scan_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0xf8237882 get_bypass_change_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0xfa59240d get_tpl_sd +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x05af3c4c set_wd_exp_mode +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x05b08a42 set_bp_hw_reset +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x0b0d5ce0 get_tap_pwup +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x0fc2e83c reset_bypass_wd_timer +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x123a8133 get_tx +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x157ec89c get_bp_disc +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x2440f05a get_bypass +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x2b01d1d4 set_bp_dis_disc +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x2c27a2f0 set_dis_bypass +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x2da97f4b is_bypass +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x2e86c67b get_tap +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x37416370 get_bp_hw_reset +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x37bdab27 get_wd_autoreset +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x3da96a18 get_bypass_caps +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x4025805e get_bypass_change +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x4940a0cc get_bypass_info +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x4d21ff51 get_bypass_pwup +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x5147360c get_bp_disc_change +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x515d4df1 get_bypass_slave +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x5560267e set_wd_autoreset +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x5be44d44 set_tap +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x6653590c get_wd_exp_mode +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x6bda14ec get_bp_dis_disc +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x72c618ae set_bypass_wd +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x76d47e6f set_bp_disc_pwup +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x794e3815 set_tap_pwup +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x7c6cbc16 get_tpl +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x84a263dc set_tx +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x8a16f22c set_tpl +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x946ff795 get_wd_set_caps +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x94f6aff2 get_bypass_wd +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x9d1ecf73 set_bypass_pwoff +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0xb1385629 set_bypass +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0xbff68c45 set_bypass_pwup +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0xc871c561 get_dis_bypass +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0xcee528df set_std_nic +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0xd202dd85 get_bypass_pwoff +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0xd787f151 get_wd_expire_time +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0xdb6a39d2 get_dis_tap +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0xebd25ae5 get_std_nic +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0xf1e9f8c1 set_bp_disc +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0xf224abd9 get_tap_change +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0xf5a591b2 set_dis_tap +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0xf643fd4c get_bp_disc_pwup +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x00e53e3d iscsit_logout_post_handler +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x1a939bb0 iscsit_handle_text_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x1f6255b4 iscsit_increment_maxcmdsn +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x273df3eb iscsit_set_unsoliticed_dataout +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x2b6a4f40 iscsit_check_dataout_payload +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x3b1b3ef8 iscsit_process_scsi_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x3c932ef1 iscsit_unregister_transport +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x4e6a34e5 iscsit_build_nopin_rsp +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x702cc8b0 iscsit_sequence_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x7039e52a iscsit_build_rsp_pdu +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x75367682 iscsit_check_dataout_hdr +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x7a449d74 iscsit_register_transport +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x8417c138 iscsit_cause_connection_reinstatement +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x86e23c0f iscsit_build_reject +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x89d6a00c iscsit_build_task_mgt_rsp +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x8cf30ff9 iscsit_process_text_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xa0930c3e iscsit_setup_text_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xb25b7888 iscsit_process_nop_out +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xb9fe5cd6 iscsit_handle_task_mgt_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xc741c6ae iscsit_handle_logout_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xcb750b43 iscsit_build_logout_rsp +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xcc1378fb iscsit_stop_dataout_timer +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xd1139a4d iscsit_setup_scsi_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xded78bd5 iscsit_tmr_post_handler +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xe078a574 iscsit_setup_nop_out +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xf4678060 iscsit_allocate_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xfe93a30d iscsit_build_text_rsp +EXPORT_SYMBOL drivers/target/target_core_mod 0x01ccdb51 target_fabric_configfs_register +EXPORT_SYMBOL drivers/target/target_core_mod 0x02de3b18 transport_set_vpd_ident +EXPORT_SYMBOL drivers/target/target_core_mod 0x03056f07 fc_get_pr_transport_id +EXPORT_SYMBOL drivers/target/target_core_mod 0x04f44a6d target_get_sess_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x0553f796 target_fabric_configfs_free +EXPORT_SYMBOL drivers/target/target_core_mod 0x0fac235c transport_send_check_condition_and_sense +EXPORT_SYMBOL drivers/target/target_core_mod 0x17ea91f5 transport_handle_cdb_direct +EXPORT_SYMBOL drivers/target/target_core_mod 0x19183823 sbc_get_write_same_sectors +EXPORT_SYMBOL drivers/target/target_core_mod 0x1a71f971 sbc_parse_cdb +EXPORT_SYMBOL drivers/target/target_core_mod 0x221428c6 transport_init_se_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x2cb629a7 target_setup_cmd_from_cdb +EXPORT_SYMBOL drivers/target/target_core_mod 0x2db8ec17 transport_generic_new_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x30b63c3a sbc_get_device_type +EXPORT_SYMBOL drivers/target/target_core_mod 0x31460feb iscsi_parse_pr_out_transport_id +EXPORT_SYMBOL drivers/target/target_core_mod 0x31ae6d22 transport_init_session +EXPORT_SYMBOL drivers/target/target_core_mod 0x326b691d target_fabric_configfs_init +EXPORT_SYMBOL drivers/target/target_core_mod 0x33687c98 spc_parse_cdb +EXPORT_SYMBOL drivers/target/target_core_mod 0x401b4072 spc_emulate_evpd_83 +EXPORT_SYMBOL drivers/target/target_core_mod 0x40c235c3 sas_get_fabric_proto_ident +EXPORT_SYMBOL drivers/target/target_core_mod 0x42091c23 __transport_register_session +EXPORT_SYMBOL drivers/target/target_core_mod 0x50bac0ac core_tpg_set_initiator_node_queue_depth +EXPORT_SYMBOL drivers/target/target_core_mod 0x5b326eee transport_subsystem_release +EXPORT_SYMBOL drivers/target/target_core_mod 0x5d17bb4c core_tmr_alloc_req +EXPORT_SYMBOL drivers/target/target_core_mod 0x5d66b405 target_submit_cmd_map_sgls +EXPORT_SYMBOL drivers/target/target_core_mod 0x603a119d sas_get_pr_transport_id_len +EXPORT_SYMBOL drivers/target/target_core_mod 0x6112f086 transport_lookup_tmr_lun +EXPORT_SYMBOL drivers/target/target_core_mod 0x65dcc576 spc_emulate_inquiry_std +EXPORT_SYMBOL drivers/target/target_core_mod 0x696a2bc4 transport_subsystem_register +EXPORT_SYMBOL drivers/target/target_core_mod 0x6c9e94e5 transport_generic_handle_tmr +EXPORT_SYMBOL drivers/target/target_core_mod 0x749f87ca core_alua_check_nonop_delay +EXPORT_SYMBOL drivers/target/target_core_mod 0x795db55c core_tpg_check_initiator_node_acl +EXPORT_SYMBOL drivers/target/target_core_mod 0x7d092d61 target_execute_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x7dbada9d transport_set_vpd_ident_type +EXPORT_SYMBOL drivers/target/target_core_mod 0x802ceee8 transport_deregister_session_configfs +EXPORT_SYMBOL drivers/target/target_core_mod 0x80fbfc54 target_put_session +EXPORT_SYMBOL drivers/target/target_core_mod 0x83f1c69b fc_get_fabric_proto_ident +EXPORT_SYMBOL drivers/target/target_core_mod 0x85aa880c transport_set_vpd_assoc +EXPORT_SYMBOL drivers/target/target_core_mod 0x86f8d006 iscsi_get_pr_transport_id_len +EXPORT_SYMBOL drivers/target/target_core_mod 0x8898c10d core_tpg_clear_object_luns +EXPORT_SYMBOL drivers/target/target_core_mod 0x9ae595e2 target_submit_tmr +EXPORT_SYMBOL drivers/target/target_core_mod 0x9dda7be8 transport_generic_free_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x9e268d83 fc_parse_pr_out_transport_id +EXPORT_SYMBOL drivers/target/target_core_mod 0xa1c9c078 core_tpg_del_initiator_node_acl +EXPORT_SYMBOL drivers/target/target_core_mod 0xa3387b86 core_tpg_add_initiator_node_acl +EXPORT_SYMBOL drivers/target/target_core_mod 0xa46df2e3 iscsi_get_pr_transport_id +EXPORT_SYMBOL drivers/target/target_core_mod 0xa58a0bca transport_generic_request_failure +EXPORT_SYMBOL drivers/target/target_core_mod 0xa7b5774a transport_register_session +EXPORT_SYMBOL drivers/target/target_core_mod 0xa890b72e target_complete_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0xa9b21872 target_wait_for_sess_cmds +EXPORT_SYMBOL drivers/target/target_core_mod 0xb485c195 target_put_sess_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0xb75887c9 transport_deregister_session +EXPORT_SYMBOL drivers/target/target_core_mod 0xbb7fb0c4 target_submit_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0xbdfa58d2 sas_get_pr_transport_id +EXPORT_SYMBOL drivers/target/target_core_mod 0xc0282927 target_fabric_configfs_deregister +EXPORT_SYMBOL drivers/target/target_core_mod 0xc481b586 fc_get_pr_transport_id_len +EXPORT_SYMBOL drivers/target/target_core_mod 0xc9d5ade1 spc_emulate_report_luns +EXPORT_SYMBOL drivers/target/target_core_mod 0xcb8795e7 sas_parse_pr_out_transport_id +EXPORT_SYMBOL drivers/target/target_core_mod 0xcd243b12 transport_kmap_data_sg +EXPORT_SYMBOL drivers/target/target_core_mod 0xcdcacb93 transport_check_aborted_status +EXPORT_SYMBOL drivers/target/target_core_mod 0xd109381e core_tpg_deregister +EXPORT_SYMBOL drivers/target/target_core_mod 0xda6505f1 transport_free_session +EXPORT_SYMBOL drivers/target/target_core_mod 0xdcb6cb7f target_sess_cmd_list_set_waiting +EXPORT_SYMBOL drivers/target/target_core_mod 0xdcbe51d8 transport_wait_for_tasks +EXPORT_SYMBOL drivers/target/target_core_mod 0xe3160390 core_tpg_register +EXPORT_SYMBOL drivers/target/target_core_mod 0xe43bbefd iscsi_get_fabric_proto_ident +EXPORT_SYMBOL drivers/target/target_core_mod 0xe816036a core_tpg_set_initiator_node_tag +EXPORT_SYMBOL drivers/target/target_core_mod 0xeb3ff02a sbc_execute_unmap +EXPORT_SYMBOL drivers/target/target_core_mod 0xec6ecf24 transport_lookup_cmd_lun +EXPORT_SYMBOL drivers/target/target_core_mod 0xf01621c7 transport_set_vpd_proto_id +EXPORT_SYMBOL drivers/target/target_core_mod 0xf30448fb target_get_session +EXPORT_SYMBOL drivers/target/target_core_mod 0xfc0971d9 transport_kunmap_data_sg +EXPORT_SYMBOL drivers/usb/class/cdc-wdm 0x17f051fb usb_cdc_wdm_register +EXPORT_SYMBOL drivers/usb/gadget/u_ether 0x1fb4ca8f gether_set_qmult +EXPORT_SYMBOL drivers/usb/gadget/u_ether 0x3c0d6a4b gether_get_dev_addr +EXPORT_SYMBOL drivers/usb/gadget/u_ether 0x495465ec gether_get_host_addr_u8 +EXPORT_SYMBOL drivers/usb/gadget/u_ether 0x68d8946f gether_set_host_addr +EXPORT_SYMBOL drivers/usb/gadget/u_ether 0x789d55b2 gether_setup_name +EXPORT_SYMBOL drivers/usb/gadget/u_ether 0x87d59f67 gether_get_host_addr +EXPORT_SYMBOL drivers/usb/gadget/u_ether 0x8878cfa6 gether_cleanup +EXPORT_SYMBOL drivers/usb/gadget/u_ether 0xa2e1b72f gether_get_ifname +EXPORT_SYMBOL drivers/usb/gadget/u_ether 0xab3bf32c gether_connect +EXPORT_SYMBOL drivers/usb/gadget/u_ether 0xb6fbe4c1 gether_register_netdev +EXPORT_SYMBOL drivers/usb/gadget/u_ether 0xca1b76e5 gether_disconnect +EXPORT_SYMBOL drivers/usb/gadget/u_ether 0xd905c041 gether_get_qmult +EXPORT_SYMBOL drivers/usb/gadget/u_ether 0xdbebe4ca gether_setup_name_default +EXPORT_SYMBOL drivers/usb/gadget/u_ether 0xddcc89cb gether_set_dev_addr +EXPORT_SYMBOL drivers/usb/gadget/u_ether 0xf3001e0a gether_set_gadget +EXPORT_SYMBOL drivers/usb/gadget/u_ether 0xf92702b5 gether_get_host_addr_cdc +EXPORT_SYMBOL drivers/usb/gadget/u_rndis 0x0439b944 rndis_rm_hdr +EXPORT_SYMBOL drivers/usb/gadget/u_rndis 0x125f40bb rndis_set_param_dev +EXPORT_SYMBOL drivers/usb/gadget/u_rndis 0x3a6d4f22 rndis_free_response +EXPORT_SYMBOL drivers/usb/gadget/u_rndis 0x3ca38e3a rndis_signal_connect +EXPORT_SYMBOL drivers/usb/gadget/u_rndis 0x4ca90996 rndis_signal_disconnect +EXPORT_SYMBOL drivers/usb/gadget/u_rndis 0x5d22b406 rndis_register +EXPORT_SYMBOL drivers/usb/gadget/u_rndis 0x785d494b rndis_msg_parser +EXPORT_SYMBOL drivers/usb/gadget/u_rndis 0x840dd143 rndis_deregister +EXPORT_SYMBOL drivers/usb/gadget/u_rndis 0x988ad2a2 rndis_set_param_vendor +EXPORT_SYMBOL drivers/usb/gadget/u_rndis 0x9acf72e4 rndis_set_param_medium +EXPORT_SYMBOL drivers/usb/gadget/u_rndis 0xa90054ee rndis_uninit +EXPORT_SYMBOL drivers/usb/gadget/u_rndis 0xb73c2eea rndis_add_hdr +EXPORT_SYMBOL drivers/usb/gadget/u_rndis 0xb971ebca rndis_get_next_response +EXPORT_SYMBOL drivers/usb/gadget/u_rndis 0xd2fe47b1 rndis_set_host_mac +EXPORT_SYMBOL drivers/usb/gadget/usb_f_rndis 0x400cef45 rndis_borrow_net +EXPORT_SYMBOL drivers/usb/host/sl811-hcd 0x5fd35551 sl811h_driver +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x04c4d617 usb_wwan_write_room +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x098ead42 usb_wwan_port_remove +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x2d2aae59 usb_wwan_resume +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x3280765a usb_wwan_dtr_rts +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x4303f206 usb_wwan_ioctl +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x5b59ca8c usb_wwan_write +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x5d58428c usb_wwan_suspend +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x6981051b usb_wwan_set_termios +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xa3a58cb8 usb_wwan_tiocmset +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xa45b2414 usb_wwan_open +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xca047c1c usb_wwan_chars_in_buffer +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xf025d3f5 usb_wwan_close +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xfd3f6210 usb_wwan_tiocmget +EXPORT_SYMBOL drivers/usb/serial/usbserial 0x3d38fdb9 usb_serial_resume +EXPORT_SYMBOL drivers/usb/serial/usbserial 0x8ee6e73a usb_serial_suspend +EXPORT_SYMBOL drivers/vhost/vringh 0x0dda8c5a vringh_complete_kern +EXPORT_SYMBOL drivers/vhost/vringh 0x1f063017 vringh_init_user +EXPORT_SYMBOL drivers/vhost/vringh 0x2e91ca97 vringh_iov_pull_kern +EXPORT_SYMBOL drivers/vhost/vringh 0x367ce26a vringh_iov_push_user +EXPORT_SYMBOL drivers/vhost/vringh 0x36dfce73 vringh_complete_multi_user +EXPORT_SYMBOL drivers/vhost/vringh 0x3eaf442a vringh_abandon_kern +EXPORT_SYMBOL drivers/vhost/vringh 0x3fa42e4f vringh_notify_enable_user +EXPORT_SYMBOL drivers/vhost/vringh 0x5dafbd4e vringh_init_kern +EXPORT_SYMBOL drivers/vhost/vringh 0x66af098b vringh_notify_enable_kern +EXPORT_SYMBOL drivers/vhost/vringh 0x6d0e7948 vringh_abandon_user +EXPORT_SYMBOL drivers/vhost/vringh 0x7bda5e6d vringh_iov_push_kern +EXPORT_SYMBOL drivers/vhost/vringh 0x821e9390 vringh_iov_pull_user +EXPORT_SYMBOL drivers/vhost/vringh 0xaf8e4a0e vringh_notify_disable_kern +EXPORT_SYMBOL drivers/vhost/vringh 0xafb47dae vringh_need_notify_user +EXPORT_SYMBOL drivers/vhost/vringh 0xc884d704 vringh_notify_disable_user +EXPORT_SYMBOL drivers/vhost/vringh 0xc8bee0a4 vringh_need_notify_kern +EXPORT_SYMBOL drivers/vhost/vringh 0xd11d2709 vringh_getdesc_kern +EXPORT_SYMBOL drivers/vhost/vringh 0xda4ea4cc vringh_complete_user +EXPORT_SYMBOL drivers/vhost/vringh 0xfc7dcad2 vringh_getdesc_user +EXPORT_SYMBOL drivers/video/backlight/generic_bl 0x366d19ef genericbl_limit_intensity +EXPORT_SYMBOL drivers/video/backlight/lcd 0x0072c779 lcd_device_unregister +EXPORT_SYMBOL drivers/video/backlight/lcd 0x1d9eacd3 lcd_device_register +EXPORT_SYMBOL drivers/video/backlight/lcd 0x3c965eef devm_lcd_device_register +EXPORT_SYMBOL drivers/video/backlight/lcd 0xa7c03bb9 devm_lcd_device_unregister +EXPORT_SYMBOL drivers/video/cyber2000fb 0x0cc3ede5 cyber2000fb_detach +EXPORT_SYMBOL drivers/video/cyber2000fb 0x534b6f18 cyber2000fb_disable_extregs +EXPORT_SYMBOL drivers/video/cyber2000fb 0xb39f68d1 cyber2000fb_enable_extregs +EXPORT_SYMBOL drivers/video/cyber2000fb 0xf9ac8ab5 cyber2000fb_attach +EXPORT_SYMBOL drivers/video/macmodes 0x233917d1 mac_vmode_to_var +EXPORT_SYMBOL drivers/video/macmodes 0x3531ce70 mac_find_mode +EXPORT_SYMBOL drivers/video/macmodes 0xe2304303 mac_map_monitor_sense +EXPORT_SYMBOL drivers/video/matrox/g450_pll 0x35da0a31 g450_mnp2f +EXPORT_SYMBOL drivers/video/matrox/g450_pll 0x7fdec7e6 matroxfb_g450_setclk +EXPORT_SYMBOL drivers/video/matrox/g450_pll 0xedf01d64 matroxfb_g450_setpll_cond +EXPORT_SYMBOL drivers/video/matrox/matroxfb_DAC1064 0x13ab8dc0 matrox_G100 +EXPORT_SYMBOL drivers/video/matrox/matroxfb_DAC1064 0x196c0796 DAC1064_global_restore +EXPORT_SYMBOL drivers/video/matrox/matroxfb_DAC1064 0x8c9a839e matrox_mystique +EXPORT_SYMBOL drivers/video/matrox/matroxfb_DAC1064 0x922dd3cf DAC1064_global_init +EXPORT_SYMBOL drivers/video/matrox/matroxfb_Ti3026 0xc8afd7d5 matrox_millennium +EXPORT_SYMBOL drivers/video/matrox/matroxfb_accel 0x6b8d07e7 matrox_cfbX_init +EXPORT_SYMBOL drivers/video/matrox/matroxfb_base 0x2be70ace matroxfb_wait_for_sync +EXPORT_SYMBOL drivers/video/matrox/matroxfb_base 0x49fcdb88 matroxfb_unregister_driver +EXPORT_SYMBOL drivers/video/matrox/matroxfb_base 0x729065d5 matroxfb_register_driver +EXPORT_SYMBOL drivers/video/matrox/matroxfb_base 0xddc8abd1 matroxfb_enable_irq +EXPORT_SYMBOL drivers/video/matrox/matroxfb_g450 0x6f508441 matroxfb_g450_connect +EXPORT_SYMBOL drivers/video/matrox/matroxfb_g450 0xb8bc6f1e matroxfb_g450_shutdown +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0x15dc93d4 matroxfb_DAC_in +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0x25cf8049 matroxfb_PLL_calcclock +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0x57595a7e matroxfb_DAC_out +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0x60022980 matroxfb_vgaHWrestore +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0x9fd7905e matroxfb_vgaHWinit +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0xcdc90c64 matroxfb_var2my +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0xfe873a39 matroxfb_read_pins +EXPORT_SYMBOL drivers/video/mb862xx/mb862xxfb 0x5e382942 mb862xxfb_init_accel +EXPORT_SYMBOL drivers/video/output 0xd9acb708 video_output_unregister +EXPORT_SYMBOL drivers/video/output 0xe1d3dc3a 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 0x01dc2af7 svga_tileblit +EXPORT_SYMBOL drivers/video/svgalib 0x054c170e svga_tilecopy +EXPORT_SYMBOL drivers/video/svgalib 0x05a04575 svga_tilecursor +EXPORT_SYMBOL drivers/video/svgalib 0x0811310a svga_get_caps +EXPORT_SYMBOL drivers/video/svgalib 0x17f3f471 svga_set_default_seq_regs +EXPORT_SYMBOL drivers/video/svgalib 0x1a96a300 svga_tilefill +EXPORT_SYMBOL drivers/video/svgalib 0x1be6dc30 svga_set_textmode_vga_regs +EXPORT_SYMBOL drivers/video/svgalib 0x4ab38ef2 svga_set_default_crt_regs +EXPORT_SYMBOL drivers/video/svgalib 0x6e4adb1e svga_check_timings +EXPORT_SYMBOL drivers/video/svgalib 0x80f24d95 svga_wcrt_multi +EXPORT_SYMBOL drivers/video/svgalib 0x8de63fb4 svga_set_timings +EXPORT_SYMBOL drivers/video/svgalib 0xa85a4e24 svga_settile +EXPORT_SYMBOL drivers/video/svgalib 0xd1429fca svga_wseq_multi +EXPORT_SYMBOL drivers/video/svgalib 0xd22ca511 svga_set_default_atc_regs +EXPORT_SYMBOL drivers/video/svgalib 0xe28d2a49 svga_set_default_gfx_regs +EXPORT_SYMBOL drivers/video/svgalib 0xef774f5d svga_compute_pll +EXPORT_SYMBOL drivers/video/svgalib 0xf2db5956 svga_match_format +EXPORT_SYMBOL drivers/video/svgalib 0xf2e84e36 svga_get_tilemax +EXPORT_SYMBOL drivers/video/vgastate 0x686de290 restore_vga +EXPORT_SYMBOL drivers/video/vgastate 0xe7a2620e save_vga +EXPORT_SYMBOL drivers/vme/vme 0x00d7e722 vme_lm_count +EXPORT_SYMBOL drivers/vme/vme 0x072f901c vme_master_rmw +EXPORT_SYMBOL drivers/vme/vme 0x0ec5babe vme_dma_free +EXPORT_SYMBOL drivers/vme/vme 0x17ea7b24 vme_unregister_bridge +EXPORT_SYMBOL drivers/vme/vme 0x2157965d vme_dma_pci_attribute +EXPORT_SYMBOL drivers/vme/vme 0x2527a087 vme_slave_set +EXPORT_SYMBOL drivers/vme/vme 0x46649cd1 vme_lm_set +EXPORT_SYMBOL drivers/vme/vme 0x48b99a13 vme_lm_free +EXPORT_SYMBOL drivers/vme/vme 0x4956436a vme_irq_generate +EXPORT_SYMBOL drivers/vme/vme 0x4b1f2ba4 vme_new_dma_list +EXPORT_SYMBOL drivers/vme/vme 0x4baf35a7 vme_master_get +EXPORT_SYMBOL drivers/vme/vme 0x4d60cfb3 vme_slave_request +EXPORT_SYMBOL drivers/vme/vme 0x5285d685 vme_slot_get +EXPORT_SYMBOL drivers/vme/vme 0x535c8308 vme_dma_pattern_attribute +EXPORT_SYMBOL drivers/vme/vme 0x5aff4177 vme_lm_get +EXPORT_SYMBOL drivers/vme/vme 0x66227eae vme_alloc_consistent +EXPORT_SYMBOL drivers/vme/vme 0x6b801a98 vme_dma_list_add +EXPORT_SYMBOL drivers/vme/vme 0x6fbd3c4f vme_dma_list_exec +EXPORT_SYMBOL drivers/vme/vme 0x743c737e vme_master_request +EXPORT_SYMBOL drivers/vme/vme 0x7cf35220 vme_master_free +EXPORT_SYMBOL drivers/vme/vme 0x7fde2edb vme_master_read +EXPORT_SYMBOL drivers/vme/vme 0x823b8233 vme_register_driver +EXPORT_SYMBOL drivers/vme/vme 0x839ad195 vme_register_bridge +EXPORT_SYMBOL drivers/vme/vme 0x84a69fdc vme_slave_get +EXPORT_SYMBOL drivers/vme/vme 0x92fa5abb vme_lm_detach +EXPORT_SYMBOL drivers/vme/vme 0x94b2590f vme_free_consistent +EXPORT_SYMBOL drivers/vme/vme 0x9aeb07e8 vme_lm_attach +EXPORT_SYMBOL drivers/vme/vme 0xa31bdf07 vme_master_set +EXPORT_SYMBOL drivers/vme/vme 0xa59396a7 vme_dma_list_free +EXPORT_SYMBOL drivers/vme/vme 0xaec2773f vme_bus_type +EXPORT_SYMBOL drivers/vme/vme 0xb482aa0b vme_irq_handler +EXPORT_SYMBOL drivers/vme/vme 0xc57a48c7 vme_dma_request +EXPORT_SYMBOL drivers/vme/vme 0xcaab4f52 vme_lm_request +EXPORT_SYMBOL drivers/vme/vme 0xd797b9a5 vme_master_write +EXPORT_SYMBOL drivers/vme/vme 0xdee2b980 vme_irq_request +EXPORT_SYMBOL drivers/vme/vme 0xdff905e5 vme_slave_free +EXPORT_SYMBOL drivers/vme/vme 0xe06f3222 vme_irq_free +EXPORT_SYMBOL drivers/vme/vme 0xe693a6ce vme_get_size +EXPORT_SYMBOL drivers/vme/vme 0xefd1624a vme_dma_free_attribute +EXPORT_SYMBOL drivers/vme/vme 0xf8ce452e vme_unregister_driver +EXPORT_SYMBOL drivers/vme/vme 0xfacd8e72 vme_dma_vme_attribute +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0x571093ba w1_ds2760_recall_eeprom +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0x66002a5f w1_ds2760_write +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0xa403c8ca w1_ds2760_read +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0xa5f5dfa6 w1_ds2760_store_eeprom +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2780 0x48504830 w1_ds2780_eeprom_cmd +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2780 0x6c7f74c9 w1_ds2780_io +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2781 0x94ba517f w1_ds2781_io +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2781 0xd0d771c1 w1_ds2781_eeprom_cmd +EXPORT_SYMBOL drivers/w1/wire 0x31cee4b4 w1_remove_master_device +EXPORT_SYMBOL drivers/w1/wire 0x3b2c1e8c w1_unregister_family +EXPORT_SYMBOL drivers/w1/wire 0x93d6914f w1_register_family +EXPORT_SYMBOL drivers/w1/wire 0xc9aba049 w1_add_master_device +EXPORT_SYMBOL fs/btrfs/btrfs 0x27476846 ulist_reinit +EXPORT_SYMBOL fs/btrfs/btrfs 0x41e6a9d2 ulist_init +EXPORT_SYMBOL fs/btrfs/btrfs 0x7e2ee765 ulist_free +EXPORT_SYMBOL fs/btrfs/btrfs 0xa2eec2e8 ulist_fini +EXPORT_SYMBOL fs/btrfs/btrfs 0xb1320bc8 ulist_add +EXPORT_SYMBOL fs/btrfs/btrfs 0xb42289d2 ulist_alloc +EXPORT_SYMBOL fs/btrfs/btrfs 0xc2c745db ulist_next +EXPORT_SYMBOL fs/configfs/configfs 0x0db6e1b2 config_group_init +EXPORT_SYMBOL fs/configfs/configfs 0x18716490 config_item_get +EXPORT_SYMBOL fs/configfs/configfs 0x3e8d43ce configfs_depend_item +EXPORT_SYMBOL fs/configfs/configfs 0x69d18556 config_item_init_type_name +EXPORT_SYMBOL fs/configfs/configfs 0x80f0c55a config_item_set_name +EXPORT_SYMBOL fs/configfs/configfs 0x905a5cd7 config_item_init +EXPORT_SYMBOL fs/configfs/configfs 0xaa135c27 configfs_register_subsystem +EXPORT_SYMBOL fs/configfs/configfs 0xac511fb3 configfs_undepend_item +EXPORT_SYMBOL fs/configfs/configfs 0xad159cea config_group_find_item +EXPORT_SYMBOL fs/configfs/configfs 0xc1650a88 configfs_unregister_subsystem +EXPORT_SYMBOL fs/configfs/configfs 0xd114275b config_item_put +EXPORT_SYMBOL fs/configfs/configfs 0xfec73392 config_group_init_type_name +EXPORT_SYMBOL fs/exofs/libore 0x011500ad ore_calc_stripe_info +EXPORT_SYMBOL fs/exofs/libore 0x09ae32e9 ore_remove +EXPORT_SYMBOL fs/exofs/libore 0x28806871 ore_verify_layout +EXPORT_SYMBOL fs/exofs/libore 0x2e09eff4 ore_get_rw_state +EXPORT_SYMBOL fs/exofs/libore 0x56b90530 extract_attr_from_ios +EXPORT_SYMBOL fs/exofs/libore 0x71db6db7 ore_write +EXPORT_SYMBOL fs/exofs/libore 0x848485ca ore_truncate +EXPORT_SYMBOL fs/exofs/libore 0xa3d2a634 g_attr_logical_length +EXPORT_SYMBOL fs/exofs/libore 0xadf9af96 ore_put_io_state +EXPORT_SYMBOL fs/exofs/libore 0xbd74ef00 ore_get_io_state +EXPORT_SYMBOL fs/exofs/libore 0xe6d65ca3 ore_create +EXPORT_SYMBOL fs/exofs/libore 0xf97883ba ore_read +EXPORT_SYMBOL fs/exofs/libore 0xf985e6d2 ore_check_io +EXPORT_SYMBOL fs/fscache/fscache 0x07c61aff __fscache_alloc_page +EXPORT_SYMBOL fs/fscache/fscache 0x0bc17b59 __fscache_unregister_netfs +EXPORT_SYMBOL fs/fscache/fscache 0x12ec86bf fscache_mark_page_cached +EXPORT_SYMBOL fs/fscache/fscache 0x13c122f4 __fscache_wait_on_page_write +EXPORT_SYMBOL fs/fscache/fscache 0x1ceee593 fscache_object_lookup_negative +EXPORT_SYMBOL fs/fscache/fscache 0x2525061b __fscache_wait_on_invalidate +EXPORT_SYMBOL fs/fscache/fscache 0x25631afd fscache_cache_cleared_wq +EXPORT_SYMBOL fs/fscache/fscache 0x32f40237 fscache_op_complete +EXPORT_SYMBOL fs/fscache/fscache 0x3c770d54 fscache_io_error +EXPORT_SYMBOL fs/fscache/fscache 0x411ea661 fscache_mark_pages_cached +EXPORT_SYMBOL fs/fscache/fscache 0x4979b087 __fscache_uncache_all_inode_pages +EXPORT_SYMBOL fs/fscache/fscache 0x57e6799d __fscache_invalidate +EXPORT_SYMBOL fs/fscache/fscache 0x6477f56a __fscache_uncache_page +EXPORT_SYMBOL fs/fscache/fscache 0x65923db5 __fscache_attr_changed +EXPORT_SYMBOL fs/fscache/fscache 0x6af19c52 __fscache_acquire_cookie +EXPORT_SYMBOL fs/fscache/fscache 0x6afc6a3f fscache_init_cache +EXPORT_SYMBOL fs/fscache/fscache 0x74530ecd fscache_op_debug_id +EXPORT_SYMBOL fs/fscache/fscache 0x784a0e68 fscache_object_init +EXPORT_SYMBOL fs/fscache/fscache 0x7c181cb9 __fscache_check_page_write +EXPORT_SYMBOL fs/fscache/fscache 0x839ac027 fscache_withdraw_cache +EXPORT_SYMBOL fs/fscache/fscache 0x8aea5234 fscache_obtained_object +EXPORT_SYMBOL fs/fscache/fscache 0x91f0d01b __fscache_write_page +EXPORT_SYMBOL fs/fscache/fscache 0xa5762150 fscache_object_destroy +EXPORT_SYMBOL fs/fscache/fscache 0xa59d74ab __fscache_maybe_release_page +EXPORT_SYMBOL fs/fscache/fscache 0xae6e73a4 __fscache_read_or_alloc_page +EXPORT_SYMBOL fs/fscache/fscache 0xc516efa0 fscache_add_cache +EXPORT_SYMBOL fs/fscache/fscache 0xc77c2465 fscache_enqueue_operation +EXPORT_SYMBOL fs/fscache/fscache 0xcf9c7b00 __fscache_read_or_alloc_pages +EXPORT_SYMBOL fs/fscache/fscache 0xd6f59252 __fscache_relinquish_cookie +EXPORT_SYMBOL fs/fscache/fscache 0xd9d13ec4 __fscache_update_cookie +EXPORT_SYMBOL fs/fscache/fscache 0xdac29ef2 fscache_fsdef_index +EXPORT_SYMBOL fs/fscache/fscache 0xddf892bb fscache_put_operation +EXPORT_SYMBOL fs/fscache/fscache 0xe75cb193 fscache_check_aux +EXPORT_SYMBOL fs/fscache/fscache 0xfdfdf9f3 __fscache_register_netfs +EXPORT_SYMBOL fs/nfsd/nfsd 0x040ea5a0 nfs4_acl_nfsv4_to_posix +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 0xcb152562 nfs4_acl_posix_to_nfsv4 +EXPORT_SYMBOL fs/nfsd/nfsd 0xda45bc09 nfs4_acl_new +EXPORT_SYMBOL fs/ocfs2/cluster/ocfs2_nodemanager 0xbfd7d7a2 o2hb_global_heartbeat_active +EXPORT_SYMBOL fs/quota/quota_tree 0x0929e5e8 qtree_read_dquot +EXPORT_SYMBOL fs/quota/quota_tree 0x0d4bba0a qtree_entry_unused +EXPORT_SYMBOL fs/quota/quota_tree 0x5768a0df qtree_release_dquot +EXPORT_SYMBOL fs/quota/quota_tree 0xdaab80cd qtree_delete_dquot +EXPORT_SYMBOL fs/quota/quota_tree 0xddf84c90 qtree_write_dquot +EXPORT_SYMBOL lib/cordic 0x434bfd07 cordic_calc_iq +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/crc8 0x41248eaf crc8 +EXPORT_SYMBOL lib/crc8 0xab9ad613 crc8_populate_lsb +EXPORT_SYMBOL lib/crc8 0xd4534d80 crc8_populate_msb +EXPORT_SYMBOL lib/libcrc32c 0x27000b29 crc32c +EXPORT_SYMBOL lib/lru_cache 0x0f135b1b lc_seq_dump_details +EXPORT_SYMBOL lib/lru_cache 0x13f36999 lc_try_get +EXPORT_SYMBOL lib/lru_cache 0x1512741c lc_element_by_index +EXPORT_SYMBOL lib/lru_cache 0x1f1e1a77 lc_reset +EXPORT_SYMBOL lib/lru_cache 0x2110282d lc_index_of +EXPORT_SYMBOL lib/lru_cache 0x2141529e lc_seq_printf_stats +EXPORT_SYMBOL lib/lru_cache 0x22c0d0dc lc_destroy +EXPORT_SYMBOL lib/lru_cache 0x35d7057c lc_put +EXPORT_SYMBOL lib/lru_cache 0x391edfa4 lc_get +EXPORT_SYMBOL lib/lru_cache 0x4ff71075 lc_try_lock +EXPORT_SYMBOL lib/lru_cache 0x5b69e7bc lc_del +EXPORT_SYMBOL lib/lru_cache 0x69414740 lc_set +EXPORT_SYMBOL lib/lru_cache 0xa17de9b1 lc_find +EXPORT_SYMBOL lib/lru_cache 0xbd50fb72 lc_committed +EXPORT_SYMBOL lib/lru_cache 0xc817c8aa lc_get_cumulative +EXPORT_SYMBOL lib/lru_cache 0xe3d5fe88 lc_create +EXPORT_SYMBOL lib/lru_cache 0xf59c7e96 lc_is_used +EXPORT_SYMBOL lib/lz4/lz4_compress 0xcbc5d521 lz4_compress +EXPORT_SYMBOL lib/lz4/lz4hc_compress 0x26c3aa22 lz4hc_compress +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/raid6/raid6_pq 0xd9e91f83 raid6_vgfmul +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 0xe9f7149c zlib_deflate_workspacesize +EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0xf741c793 zlib_deflateEnd +EXPORT_SYMBOL net/802/p8022 0x12701dfa register_8022_client +EXPORT_SYMBOL net/802/p8022 0xce7f28c3 unregister_8022_client +EXPORT_SYMBOL net/802/p8023 0xb98069ea make_8023_client +EXPORT_SYMBOL net/802/p8023 0xf9aefc9a destroy_8023_client +EXPORT_SYMBOL net/802/psnap 0xbbde6146 register_snap_client +EXPORT_SYMBOL net/802/psnap 0xd1b5b073 unregister_snap_client +EXPORT_SYMBOL net/9p/9pnet 0x0b820874 v9fs_get_trans_by_name +EXPORT_SYMBOL net/9p/9pnet 0x0e545a3f p9_client_getattr_dotl +EXPORT_SYMBOL net/9p/9pnet 0x1a37c7e9 p9_parse_header +EXPORT_SYMBOL net/9p/9pnet 0x1ba3e2b1 p9_client_unlinkat +EXPORT_SYMBOL net/9p/9pnet 0x1f4a7467 p9_client_statfs +EXPORT_SYMBOL net/9p/9pnet 0x251f2b8f p9_client_setattr +EXPORT_SYMBOL net/9p/9pnet 0x28a3e7d5 p9_payload_gup +EXPORT_SYMBOL net/9p/9pnet 0x28fce883 p9_client_fcreate +EXPORT_SYMBOL net/9p/9pnet 0x299107cf p9_client_destroy +EXPORT_SYMBOL net/9p/9pnet 0x2f14cb7e p9_client_readlink +EXPORT_SYMBOL net/9p/9pnet 0x35d1e27e p9_idpool_get +EXPORT_SYMBOL net/9p/9pnet 0x3af613d4 p9_release_pages +EXPORT_SYMBOL net/9p/9pnet 0x3d73a797 p9_errstr2errno +EXPORT_SYMBOL net/9p/9pnet 0x3f8dff93 p9_client_link +EXPORT_SYMBOL net/9p/9pnet 0x433c9de4 p9_client_mknod_dotl +EXPORT_SYMBOL net/9p/9pnet 0x44bcea72 v9fs_get_default_trans +EXPORT_SYMBOL net/9p/9pnet 0x4d91cea5 p9_is_proto_dotl +EXPORT_SYMBOL net/9p/9pnet 0x4e060ed8 p9stat_free +EXPORT_SYMBOL net/9p/9pnet 0x510a31b4 p9_client_attach +EXPORT_SYMBOL net/9p/9pnet 0x57dec13e p9_client_clunk +EXPORT_SYMBOL net/9p/9pnet 0x62e6ba03 p9_client_open +EXPORT_SYMBOL net/9p/9pnet 0x79966949 p9_client_readdir +EXPORT_SYMBOL net/9p/9pnet 0x79e37252 v9fs_unregister_trans +EXPORT_SYMBOL net/9p/9pnet 0x81132a58 p9_client_write +EXPORT_SYMBOL net/9p/9pnet 0x81c56274 p9_client_renameat +EXPORT_SYMBOL net/9p/9pnet 0x856696c2 p9dirent_read +EXPORT_SYMBOL net/9p/9pnet 0x8e333321 p9_client_read +EXPORT_SYMBOL net/9p/9pnet 0x8fa1e89d p9_client_walk +EXPORT_SYMBOL net/9p/9pnet 0x977a0030 p9_nr_pages +EXPORT_SYMBOL net/9p/9pnet 0x9aa1ba4d p9_client_fsync +EXPORT_SYMBOL net/9p/9pnet 0x9b996e7b p9_client_stat +EXPORT_SYMBOL net/9p/9pnet 0xa6c4026e p9_client_getlock_dotl +EXPORT_SYMBOL net/9p/9pnet 0xab1674e8 p9_client_symlink +EXPORT_SYMBOL net/9p/9pnet 0xacff099e p9_client_create_dotl +EXPORT_SYMBOL net/9p/9pnet 0xadd1e8eb p9_client_lock_dotl +EXPORT_SYMBOL net/9p/9pnet 0xb00b769b p9_client_remove +EXPORT_SYMBOL net/9p/9pnet 0xbbc7753e p9stat_read +EXPORT_SYMBOL net/9p/9pnet 0xc2365012 p9_client_mkdir_dotl +EXPORT_SYMBOL net/9p/9pnet 0xc5db54a9 p9_idpool_destroy +EXPORT_SYMBOL net/9p/9pnet 0xc9cb3d4a p9_client_disconnect +EXPORT_SYMBOL net/9p/9pnet 0xd24f8a91 p9_client_cb +EXPORT_SYMBOL net/9p/9pnet 0xd5ec66d4 p9_client_begin_disconnect +EXPORT_SYMBOL net/9p/9pnet 0xdbb3d010 p9_client_rename +EXPORT_SYMBOL net/9p/9pnet 0xdf06ddbc p9_tag_lookup +EXPORT_SYMBOL net/9p/9pnet 0xe58a3360 p9_error_init +EXPORT_SYMBOL net/9p/9pnet 0xea7f3067 v9fs_register_trans +EXPORT_SYMBOL net/9p/9pnet 0xeab0dc9e p9_client_wstat +EXPORT_SYMBOL net/9p/9pnet 0xf2a44118 p9_is_proto_dotu +EXPORT_SYMBOL net/9p/9pnet 0xf4a111d8 p9_idpool_create +EXPORT_SYMBOL net/9p/9pnet 0xf84f2022 p9_idpool_put +EXPORT_SYMBOL net/9p/9pnet 0xfd40c79d p9_idpool_check +EXPORT_SYMBOL net/9p/9pnet 0xfdb62038 p9_client_create +EXPORT_SYMBOL net/appletalk/appletalk 0x1667abb1 atrtr_get_dev +EXPORT_SYMBOL net/appletalk/appletalk 0x2410f52c aarp_send_ddp +EXPORT_SYMBOL net/appletalk/appletalk 0x3dcdd17e atalk_find_dev_addr +EXPORT_SYMBOL net/appletalk/appletalk 0x9bbdf2e0 alloc_ltalkdev +EXPORT_SYMBOL net/atm/atm 0x08ae664d atm_dev_release_vccs +EXPORT_SYMBOL net/atm/atm 0x100ee3e5 atm_dev_register +EXPORT_SYMBOL net/atm/atm 0x2cc2d52d vcc_hash +EXPORT_SYMBOL net/atm/atm 0x3794cb38 vcc_insert_socket +EXPORT_SYMBOL net/atm/atm 0x3b5a1eff deregister_atm_ioctl +EXPORT_SYMBOL net/atm/atm 0x4443d399 atm_proc_root +EXPORT_SYMBOL net/atm/atm 0x6b06e501 atm_dev_signal_change +EXPORT_SYMBOL net/atm/atm 0x6f12c806 atm_dev_deregister +EXPORT_SYMBOL net/atm/atm 0x7dcc0f90 register_atm_ioctl +EXPORT_SYMBOL net/atm/atm 0x8dbbc8db vcc_release_async +EXPORT_SYMBOL net/atm/atm 0x98b99e6c atm_dev_lookup +EXPORT_SYMBOL net/atm/atm 0x9feaf287 sonet_subtract_stats +EXPORT_SYMBOL net/atm/atm 0xaa024146 sonet_copy_stats +EXPORT_SYMBOL net/atm/atm 0xabb3640b vcc_process_recv_queue +EXPORT_SYMBOL net/atm/atm 0xcc27bce1 atm_charge +EXPORT_SYMBOL net/atm/atm 0xf49bc67a atm_pcr_goal +EXPORT_SYMBOL net/atm/atm 0xf72511c6 atm_init_aal5 +EXPORT_SYMBOL net/atm/atm 0xfac3767d atm_alloc_charge +EXPORT_SYMBOL net/atm/atm 0xfac5ae25 vcc_sklist_lock +EXPORT_SYMBOL net/ax25/ax25 0x026c1368 ax25_display_timer +EXPORT_SYMBOL net/ax25/ax25 0x13e0d5e8 ax25_findbyuid +EXPORT_SYMBOL net/ax25/ax25 0x242852b9 ax25_uid_policy +EXPORT_SYMBOL net/ax25/ax25 0x4502c65a asc2ax +EXPORT_SYMBOL net/ax25/ax25 0x53dea1ff ax2asc +EXPORT_SYMBOL net/ax25/ax25 0x5a419550 ax25_linkfail_register +EXPORT_SYMBOL net/ax25/ax25 0x667ee986 ax25_rebuild_header +EXPORT_SYMBOL net/ax25/ax25 0x8d8199b3 ax25_header_ops +EXPORT_SYMBOL net/ax25/ax25 0x8ede9e26 ax25_protocol_release +EXPORT_SYMBOL net/ax25/ax25 0x982db27e ax25_linkfail_release +EXPORT_SYMBOL net/ax25/ax25 0xb02c3ef6 ax25_send_frame +EXPORT_SYMBOL net/ax25/ax25 0xb8c7676d ax25_listen_register +EXPORT_SYMBOL net/ax25/ax25 0xc1444946 ax25cmp +EXPORT_SYMBOL net/ax25/ax25 0xc372d9c0 ax25_listen_release +EXPORT_SYMBOL net/ax25/ax25 0xc38d49ab ax25_find_cb +EXPORT_SYMBOL net/ax25/ax25 0xd43ecbf1 null_ax25_address +EXPORT_SYMBOL net/ax25/ax25 0xff3b2ebd ax25_hard_header +EXPORT_SYMBOL net/bluetooth/bluetooth 0x14f85293 bt_sock_wait_state +EXPORT_SYMBOL net/bluetooth/bluetooth 0x1738c1d2 bt_accept_unlink +EXPORT_SYMBOL net/bluetooth/bluetooth 0x1f1107a4 bt_accept_dequeue +EXPORT_SYMBOL net/bluetooth/bluetooth 0x20362e9b hci_register_cb +EXPORT_SYMBOL net/bluetooth/bluetooth 0x259f1b2a hci_unregister_cb +EXPORT_SYMBOL net/bluetooth/bluetooth 0x2e047ad9 l2cap_unregister_user +EXPORT_SYMBOL net/bluetooth/bluetooth 0x2f37cba3 bt_sock_reclassify_lock +EXPORT_SYMBOL net/bluetooth/bluetooth 0x30594c56 hci_recv_fragment +EXPORT_SYMBOL net/bluetooth/bluetooth 0x43342c90 hci_get_route +EXPORT_SYMBOL net/bluetooth/bluetooth 0x45715f3b bt_sock_unlink +EXPORT_SYMBOL net/bluetooth/bluetooth 0x48a2a111 hci_conn_check_secure +EXPORT_SYMBOL net/bluetooth/bluetooth 0x4c3ad83d l2cap_conn_put +EXPORT_SYMBOL net/bluetooth/bluetooth 0x5830a5d7 bt_procfs_cleanup +EXPORT_SYMBOL net/bluetooth/bluetooth 0x5ca74be9 hci_register_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x66841c58 bt_sock_stream_recvmsg +EXPORT_SYMBOL net/bluetooth/bluetooth 0x67e21be7 __hci_cmd_sync +EXPORT_SYMBOL net/bluetooth/bluetooth 0x729ead37 hci_unregister_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x7483a452 hci_alloc_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x76f8738b bt_procfs_init +EXPORT_SYMBOL net/bluetooth/bluetooth 0x7c640527 bt_info +EXPORT_SYMBOL net/bluetooth/bluetooth 0x853c9244 l2cap_conn_get +EXPORT_SYMBOL net/bluetooth/bluetooth 0x89725802 bt_accept_enqueue +EXPORT_SYMBOL net/bluetooth/bluetooth 0x8d04fd44 hci_resume_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x8e1ef7e0 bt_sock_link +EXPORT_SYMBOL net/bluetooth/bluetooth 0x8fea24bd bt_sock_unregister +EXPORT_SYMBOL net/bluetooth/bluetooth 0x91c9a325 bt_to_errno +EXPORT_SYMBOL net/bluetooth/bluetooth 0x9dfadbb0 hci_conn_security +EXPORT_SYMBOL net/bluetooth/bluetooth 0xb31cff27 bt_sock_poll +EXPORT_SYMBOL net/bluetooth/bluetooth 0xb61a0c3b bt_err +EXPORT_SYMBOL net/bluetooth/bluetooth 0xb8b44a3f l2cap_is_socket +EXPORT_SYMBOL net/bluetooth/bluetooth 0xb8ec643a hci_conn_switch_role +EXPORT_SYMBOL net/bluetooth/bluetooth 0xbf8a6e12 l2cap_register_user +EXPORT_SYMBOL net/bluetooth/bluetooth 0xbfcae1c5 hci_recv_frame +EXPORT_SYMBOL net/bluetooth/bluetooth 0xcc1fb551 baswap +EXPORT_SYMBOL net/bluetooth/bluetooth 0xd4823024 hci_recv_stream_fragment +EXPORT_SYMBOL net/bluetooth/bluetooth 0xe736855a bt_sock_recvmsg +EXPORT_SYMBOL net/bluetooth/bluetooth 0xf0f586d7 hci_free_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0xf6f76ed9 __hci_cmd_sync_ev +EXPORT_SYMBOL net/bluetooth/bluetooth 0xf7f9d778 bt_sock_ioctl +EXPORT_SYMBOL net/bluetooth/bluetooth 0xfd773eb2 bt_sock_register +EXPORT_SYMBOL net/bluetooth/bluetooth 0xffbf9c7a hci_suspend_dev +EXPORT_SYMBOL net/bridge/bridge 0xd2cbaf53 br_should_route_hook +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x1f67a81a ebt_register_table +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x4088d035 ebt_unregister_table +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0xc8e961eb ebt_do_table +EXPORT_SYMBOL net/caif/caif 0x1446b60a caif_client_register_refcnt +EXPORT_SYMBOL net/caif/caif 0x25965faa cfcnfg_add_phy_layer +EXPORT_SYMBOL net/caif/caif 0x2a09f713 cfpkt_fromnative +EXPORT_SYMBOL net/caif/caif 0x329dbd06 cfpkt_info +EXPORT_SYMBOL net/caif/caif 0x38701a7c cfcnfg_del_phy_layer +EXPORT_SYMBOL net/caif/caif 0x3d237c99 get_cfcnfg +EXPORT_SYMBOL net/caif/caif 0x4502a5e3 caif_disconnect_client +EXPORT_SYMBOL net/caif/caif 0x4a237e57 cfpkt_tonative +EXPORT_SYMBOL net/caif/caif 0x6a44fc70 cfpkt_extr_head +EXPORT_SYMBOL net/caif/caif 0x780143ac caif_enroll_dev +EXPORT_SYMBOL net/caif/caif 0x839ddb7b cfcnfg_set_phy_state +EXPORT_SYMBOL net/caif/caif 0x966d7de2 cfpkt_add_head +EXPORT_SYMBOL net/caif/caif 0x9e3e305d cfpkt_set_prio +EXPORT_SYMBOL net/caif/caif 0xb68d712e caif_connect_client +EXPORT_SYMBOL net/caif/caif 0xb7b6874e caif_free_client +EXPORT_SYMBOL net/can/can 0x076864c4 can_rx_register +EXPORT_SYMBOL net/can/can 0x21498546 can_send +EXPORT_SYMBOL net/can/can 0x4c27b61f can_proto_unregister +EXPORT_SYMBOL net/can/can 0x8305ae8a can_ioctl +EXPORT_SYMBOL net/can/can 0x9d73c0cf can_rx_unregister +EXPORT_SYMBOL net/can/can 0xe323a9fc can_proto_register +EXPORT_SYMBOL net/ceph/libceph 0x01ecddb2 osd_req_op_raw_data_in_pages +EXPORT_SYMBOL net/ceph/libceph 0x0476d29c ceph_osdc_wait_request +EXPORT_SYMBOL net/ceph/libceph 0x08cd4a30 ceph_monc_init +EXPORT_SYMBOL net/ceph/libceph 0x09290ab3 ceph_debugfs_init +EXPORT_SYMBOL net/ceph/libceph 0x0a13312c ceph_get_direct_page_vector +EXPORT_SYMBOL net/ceph/libceph 0x0edcadc4 ceph_monc_do_statfs +EXPORT_SYMBOL net/ceph/libceph 0x10940306 ceph_pagelist_set_cursor +EXPORT_SYMBOL net/ceph/libceph 0x112977c9 ceph_auth_update_authorizer +EXPORT_SYMBOL net/ceph/libceph 0x1475bf0d ceph_pg_poolid_by_name +EXPORT_SYMBOL net/ceph/libceph 0x197effcb ceph_osdc_release_request +EXPORT_SYMBOL net/ceph/libceph 0x1c73cea6 ceph_msg_data_add_pages +EXPORT_SYMBOL net/ceph/libceph 0x1c7a74f9 ceph_con_send +EXPORT_SYMBOL net/ceph/libceph 0x1cafd08e ceph_monc_got_mdsmap +EXPORT_SYMBOL net/ceph/libceph 0x1cf39811 osd_req_op_extent_osd_data_bio +EXPORT_SYMBOL net/ceph/libceph 0x20ced1e7 ceph_monc_open_session +EXPORT_SYMBOL net/ceph/libceph 0x20d151cb ceph_osdc_setup +EXPORT_SYMBOL net/ceph/libceph 0x24fea9eb ceph_destroy_client +EXPORT_SYMBOL net/ceph/libceph 0x27761ff4 osd_req_op_cls_init +EXPORT_SYMBOL net/ceph/libceph 0x2800fe4d osd_req_op_watch_init +EXPORT_SYMBOL net/ceph/libceph 0x2a8f8a39 ceph_osdc_start_request +EXPORT_SYMBOL net/ceph/libceph 0x2e5e985e ceph_client_id +EXPORT_SYMBOL net/ceph/libceph 0x30633c5a osd_req_op_extent_osd_data +EXPORT_SYMBOL net/ceph/libceph 0x30cfd7a6 ceph_auth_destroy_authorizer +EXPORT_SYMBOL net/ceph/libceph 0x3158173e ceph_pagelist_release +EXPORT_SYMBOL net/ceph/libceph 0x3265a503 ceph_con_open +EXPORT_SYMBOL net/ceph/libceph 0x3638ae00 ceph_copy_to_page_vector +EXPORT_SYMBOL net/ceph/libceph 0x39430418 ceph_msg_data_add_pagelist +EXPORT_SYMBOL net/ceph/libceph 0x3abec91f ceph_pr_addr +EXPORT_SYMBOL net/ceph/libceph 0x3df0ec7c ceph_calc_ceph_pg +EXPORT_SYMBOL net/ceph/libceph 0x3f688151 ceph_put_snap_context +EXPORT_SYMBOL net/ceph/libceph 0x411479fe osd_req_op_init +EXPORT_SYMBOL net/ceph/libceph 0x4205ffd7 ceph_destroy_options +EXPORT_SYMBOL net/ceph/libceph 0x43c8d341 ceph_buffer_new +EXPORT_SYMBOL net/ceph/libceph 0x43e458f6 ceph_file_part +EXPORT_SYMBOL net/ceph/libceph 0x43efd647 ceph_calc_file_object_mapping +EXPORT_SYMBOL net/ceph/libceph 0x466b85b8 libceph_compatible +EXPORT_SYMBOL net/ceph/libceph 0x4dfb01db osd_req_op_cls_response_data_pages +EXPORT_SYMBOL net/ceph/libceph 0x532cb349 ceph_alloc_page_vector +EXPORT_SYMBOL net/ceph/libceph 0x5379cea3 ceph_caps_for_mode +EXPORT_SYMBOL net/ceph/libceph 0x54405f32 ceph_auth_verify_authorizer_reply +EXPORT_SYMBOL net/ceph/libceph 0x55c4264a ceph_con_keepalive +EXPORT_SYMBOL net/ceph/libceph 0x56c5b4ce ceph_con_init +EXPORT_SYMBOL net/ceph/libceph 0x57baf885 ceph_str_hash +EXPORT_SYMBOL net/ceph/libceph 0x593c2a9c ceph_monc_validate_auth +EXPORT_SYMBOL net/ceph/libceph 0x5a094178 ceph_osdc_writepages +EXPORT_SYMBOL net/ceph/libceph 0x5f71a1e7 ceph_copy_page_vector_to_user +EXPORT_SYMBOL net/ceph/libceph 0x5fe4b2fa ceph_pagelist_truncate +EXPORT_SYMBOL net/ceph/libceph 0x63758856 ceph_str_hash_name +EXPORT_SYMBOL net/ceph/libceph 0x64eb18a4 ceph_zero_page_vector_range +EXPORT_SYMBOL net/ceph/libceph 0x65dd61c9 __ceph_open_session +EXPORT_SYMBOL net/ceph/libceph 0x6659f708 ceph_open_session +EXPORT_SYMBOL net/ceph/libceph 0x6ab4dbdc osd_req_op_cls_response_data +EXPORT_SYMBOL net/ceph/libceph 0x6b2e3bcd ceph_get_snap_context +EXPORT_SYMBOL net/ceph/libceph 0x6c5d5ac1 ceph_calc_pg_primary +EXPORT_SYMBOL net/ceph/libceph 0x6d2d06a1 ceph_pagelist_reserve +EXPORT_SYMBOL net/ceph/libceph 0x6e115a92 ceph_msg_dump +EXPORT_SYMBOL net/ceph/libceph 0x6ed41be2 ceph_pagelist_append +EXPORT_SYMBOL net/ceph/libceph 0x721428c6 osd_req_op_extent_update +EXPORT_SYMBOL net/ceph/libceph 0x77007851 ceph_msg_new +EXPORT_SYMBOL net/ceph/libceph 0x77692acb ceph_msg_last_put +EXPORT_SYMBOL net/ceph/libceph 0x7c84690a ceph_create_client +EXPORT_SYMBOL net/ceph/libceph 0x84dbb9e0 osd_req_op_extent_osd_data_pagelist +EXPORT_SYMBOL net/ceph/libceph 0x8856ddc6 ceph_osdc_alloc_request +EXPORT_SYMBOL net/ceph/libceph 0x890c9a41 ceph_osdc_build_request +EXPORT_SYMBOL net/ceph/libceph 0x8b67ec26 ceph_osdc_new_request +EXPORT_SYMBOL net/ceph/libceph 0x92c9afe0 ceph_monc_create_snapid +EXPORT_SYMBOL net/ceph/libceph 0x95b39f69 ceph_copy_from_page_vector +EXPORT_SYMBOL net/ceph/libceph 0x99e36571 ceph_osdc_cleanup +EXPORT_SYMBOL net/ceph/libceph 0x9f534f4d ceph_buffer_release +EXPORT_SYMBOL net/ceph/libceph 0x9f97fc05 ceph_osdc_set_request_linger +EXPORT_SYMBOL net/ceph/libceph 0xa1c3ac59 ceph_con_close +EXPORT_SYMBOL net/ceph/libceph 0xa35c0285 osd_req_op_cls_request_data_pages +EXPORT_SYMBOL net/ceph/libceph 0xa40bd703 ceph_pagelist_free_reserve +EXPORT_SYMBOL net/ceph/libceph 0xa572d240 ceph_auth_invalidate_authorizer +EXPORT_SYMBOL net/ceph/libceph 0xab2b2b03 osd_req_op_cls_request_data_pagelist +EXPORT_SYMBOL net/ceph/libceph 0xae3515ba ceph_create_snap_context +EXPORT_SYMBOL net/ceph/libceph 0xafb8a407 ceph_msgr_flush +EXPORT_SYMBOL net/ceph/libceph 0xb059ca06 osd_req_op_extent_osd_data_pages +EXPORT_SYMBOL net/ceph/libceph 0xb54676fa ceph_msg_type_name +EXPORT_SYMBOL net/ceph/libceph 0xb6081d6d ceph_msgr_exit +EXPORT_SYMBOL net/ceph/libceph 0xb8e60941 osd_req_op_extent_init +EXPORT_SYMBOL net/ceph/libceph 0xb9d0d53a ceph_put_page_vector +EXPORT_SYMBOL net/ceph/libceph 0xbd8d58ad ceph_osdc_cancel_event +EXPORT_SYMBOL net/ceph/libceph 0xc0ef2a4f ceph_compare_options +EXPORT_SYMBOL net/ceph/libceph 0xc36b422f ceph_copy_user_to_page_vector +EXPORT_SYMBOL net/ceph/libceph 0xc4a80955 ceph_debugfs_cleanup +EXPORT_SYMBOL net/ceph/libceph 0xc55de604 ceph_parse_options +EXPORT_SYMBOL net/ceph/libceph 0xc9f82b38 ceph_msgr_init +EXPORT_SYMBOL net/ceph/libceph 0xcb50a624 ceph_parse_ips +EXPORT_SYMBOL net/ceph/libceph 0xcb7c1d6e ceph_msg_data_add_bio +EXPORT_SYMBOL net/ceph/libceph 0xcf78747c ceph_release_page_vector +EXPORT_SYMBOL net/ceph/libceph 0xd05a0874 ceph_osdc_readpages +EXPORT_SYMBOL net/ceph/libceph 0xd2c107bb ceph_flags_to_mode +EXPORT_SYMBOL net/ceph/libceph 0xd32aae92 ceph_osdc_put_event +EXPORT_SYMBOL net/ceph/libceph 0xd3869455 ceph_osdc_sync +EXPORT_SYMBOL net/ceph/libceph 0xdb75ce2a ceph_auth_create_authorizer +EXPORT_SYMBOL net/ceph/libceph 0xdfb55fb3 ceph_osdc_create_event +EXPORT_SYMBOL net/ceph/libceph 0xe82c9c32 ceph_pg_pool_name_by_id +EXPORT_SYMBOL net/ceph/libceph 0xf095c1ea ceph_osdc_unregister_linger_request +EXPORT_SYMBOL net/ceph/libceph 0xf2435dbb ceph_auth_is_authenticated +EXPORT_SYMBOL net/ceph/libceph 0xfacd961c ceph_monc_stop +EXPORT_SYMBOL net/ceph/libceph 0xfe5e1c95 ceph_check_fsid +EXPORT_SYMBOL net/ceph/libceph 0xff678124 ceph_messenger_init +EXPORT_SYMBOL net/dccp/dccp_ipv4 0xc3fb3864 dccp_syn_ack_timeout +EXPORT_SYMBOL net/ieee802154/ieee802154 0x1db96e54 ieee802154_nl_disassoc_indic +EXPORT_SYMBOL net/ieee802154/ieee802154 0x2374e41c ieee802154_nl_disassoc_confirm +EXPORT_SYMBOL net/ieee802154/ieee802154 0x32af1000 ieee802154_nl_start_confirm +EXPORT_SYMBOL net/ieee802154/ieee802154 0x51522814 wpan_phy_for_each +EXPORT_SYMBOL net/ieee802154/ieee802154 0x5e86abf6 wpan_phy_find +EXPORT_SYMBOL net/ieee802154/ieee802154 0x94b973f7 wpan_phy_free +EXPORT_SYMBOL net/ieee802154/ieee802154 0x95f04958 wpan_phy_unregister +EXPORT_SYMBOL net/ieee802154/ieee802154 0x9d95d0fd ieee802154_nl_scan_confirm +EXPORT_SYMBOL net/ieee802154/ieee802154 0xb01e2cb6 wpan_phy_alloc +EXPORT_SYMBOL net/ieee802154/ieee802154 0xbbd4d9f3 ieee802154_nl_beacon_indic +EXPORT_SYMBOL net/ieee802154/ieee802154 0xbcc1fac4 ieee802154_nl_assoc_indic +EXPORT_SYMBOL net/ieee802154/ieee802154 0xd4b5bbdd wpan_phy_register +EXPORT_SYMBOL net/ieee802154/ieee802154 0xddb4766d ieee802154_nl_assoc_confirm +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0x602f7856 arpt_unregister_table +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0xdc183712 arpt_register_table +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0xe52827e8 arpt_do_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0xb3d06d0c ipt_do_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0xe2c2b81f ipt_unregister_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0xf3c2541d ipt_register_table +EXPORT_SYMBOL net/ipv4/tunnel4 0x62b3ca67 xfrm4_tunnel_deregister +EXPORT_SYMBOL net/ipv4/tunnel4 0x643c2941 xfrm4_tunnel_register +EXPORT_SYMBOL net/ipv6/ip6_tunnel 0x275a93eb ip6_tnl_parse_tlv_enc_lim +EXPORT_SYMBOL net/ipv6/ip6_tunnel 0x7acf503b ip6_tnl_get_cap +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x517d893e ip6t_register_table +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x77c51523 ip6t_unregister_table +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0xa93f9f6c ip6t_do_table +EXPORT_SYMBOL net/ipv6/tunnel6 0x581aedef xfrm6_tunnel_register +EXPORT_SYMBOL net/ipv6/tunnel6 0x9b7551b0 xfrm6_tunnel_deregister +EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0xc4cd3e07 xfrm6_tunnel_spi_lookup +EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0xe762da30 xfrm6_tunnel_alloc_spi +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x4e99d22b ircomm_control_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x551db463 ircomm_connect_response +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x5e3bb036 ircomm_open +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x72f7445c ircomm_data_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x8b86feb4 ircomm_connect_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x9991e059 ircomm_flow_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0xca519ff2 ircomm_close +EXPORT_SYMBOL net/irda/ircomm/ircomm 0xcc7cd0ea ircomm_disconnect_request +EXPORT_SYMBOL net/irda/irda 0x04cbdd99 iriap_getvaluebyclass_request +EXPORT_SYMBOL net/irda/irda 0x06a3ee58 irias_new_integer_value +EXPORT_SYMBOL net/irda/irda 0x07d3647c irlmp_register_service +EXPORT_SYMBOL net/irda/irda 0x13fb7986 irlap_close +EXPORT_SYMBOL net/irda/irda 0x16a4a0b8 irlmp_connect_response +EXPORT_SYMBOL net/irda/irda 0x17a491c5 irias_add_octseq_attrib +EXPORT_SYMBOL net/irda/irda 0x19fb85ac irttp_open_tsap +EXPORT_SYMBOL net/irda/irda 0x1bee8fc3 irttp_disconnect_request +EXPORT_SYMBOL net/irda/irda 0x2036ad06 irda_param_insert +EXPORT_SYMBOL net/irda/irda 0x258c321b irttp_udata_request +EXPORT_SYMBOL net/irda/irda 0x2dd6cedc irttp_connect_response +EXPORT_SYMBOL net/irda/irda 0x33cbe2c6 proc_irda +EXPORT_SYMBOL net/irda/irda 0x34e24700 async_wrap_skb +EXPORT_SYMBOL net/irda/irda 0x36cad55b hashbin_remove_this +EXPORT_SYMBOL net/irda/irda 0x375bb1d5 irlmp_close_lsap +EXPORT_SYMBOL net/irda/irda 0x37791344 hashbin_get_first +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 0x479b952c irda_device_set_media_busy +EXPORT_SYMBOL net/irda/irda 0x606afb17 irttp_dup +EXPORT_SYMBOL net/irda/irda 0x6492e28c hashbin_get_next +EXPORT_SYMBOL net/irda/irda 0x67eee837 iriap_open +EXPORT_SYMBOL net/irda/irda 0x6b043eba irda_init_max_qos_capabilies +EXPORT_SYMBOL net/irda/irda 0x6b76aa70 hashbin_delete +EXPORT_SYMBOL net/irda/irda 0x7042bc54 irlmp_register_client +EXPORT_SYMBOL net/irda/irda 0x71d6328d iriap_close +EXPORT_SYMBOL net/irda/irda 0x731cec71 hashbin_insert +EXPORT_SYMBOL net/irda/irda 0x7441371a irlmp_connect_request +EXPORT_SYMBOL net/irda/irda 0x75fbd02e irttp_connect_request +EXPORT_SYMBOL net/irda/irda 0x763e54a4 irlmp_unregister_client +EXPORT_SYMBOL net/irda/irda 0x765c7156 irlmp_open_lsap +EXPORT_SYMBOL net/irda/irda 0x789f0c85 irlmp_disconnect_request +EXPORT_SYMBOL net/irda/irda 0x7957f728 irlmp_update_client +EXPORT_SYMBOL net/irda/irda 0x7e67ca6e irias_new_object +EXPORT_SYMBOL net/irda/irda 0x8982c8d9 irias_delete_object +EXPORT_SYMBOL net/irda/irda 0x8a44dd5e hashbin_new +EXPORT_SYMBOL net/irda/irda 0x8a512d59 irttp_data_request +EXPORT_SYMBOL net/irda/irda 0x90ddb6bd hashbin_remove +EXPORT_SYMBOL net/irda/irda 0x91815586 irda_param_pack +EXPORT_SYMBOL net/irda/irda 0x993ad14b irda_param_extract_all +EXPORT_SYMBOL net/irda/irda 0x99eb0722 irda_notify_init +EXPORT_SYMBOL net/irda/irda 0x9ffda243 irias_add_string_attrib +EXPORT_SYMBOL net/irda/irda 0xad7323a5 async_unwrap_char +EXPORT_SYMBOL net/irda/irda 0xb3c13d7f irias_add_integer_attrib +EXPORT_SYMBOL net/irda/irda 0xb64fe1f0 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 0xbd50578e irttp_flow_request +EXPORT_SYMBOL net/irda/irda 0xbe40ace9 irlmp_discovery_request +EXPORT_SYMBOL net/irda/irda 0xbf7dd554 hashbin_find +EXPORT_SYMBOL net/irda/irda 0xbfa7c08d hashbin_lock_find +EXPORT_SYMBOL net/irda/irda 0xc1763c99 irttp_close_tsap +EXPORT_SYMBOL net/irda/irda 0xc477368d irias_find_object +EXPORT_SYMBOL net/irda/irda 0xd64167ac irlap_open +EXPORT_SYMBOL net/irda/irda 0xd90a0bdd alloc_irdadev +EXPORT_SYMBOL net/irda/irda 0xde4c6b3c irlmp_service_to_hint +EXPORT_SYMBOL net/irda/irda 0xedd521c2 irlmp_get_discoveries +EXPORT_SYMBOL net/irda/irda 0xf199cba4 irias_insert_object +EXPORT_SYMBOL net/l2tp/l2tp_core 0x43aba994 l2tp_recv_common +EXPORT_SYMBOL net/lapb/lapb 0x27afc09a lapb_data_received +EXPORT_SYMBOL net/lapb/lapb 0x857b02b6 lapb_getparms +EXPORT_SYMBOL net/lapb/lapb 0x9b7e1719 lapb_register +EXPORT_SYMBOL net/lapb/lapb 0x9fb7e692 lapb_unregister +EXPORT_SYMBOL net/lapb/lapb 0xc8231c18 lapb_disconnect_request +EXPORT_SYMBOL net/lapb/lapb 0xcb9e2a29 lapb_data_request +EXPORT_SYMBOL net/lapb/lapb 0xced1492a lapb_setparms +EXPORT_SYMBOL net/lapb/lapb 0xfb618036 lapb_connect_request +EXPORT_SYMBOL net/llc/llc 0x10f66d0e llc_mac_hdr_init +EXPORT_SYMBOL net/llc/llc 0x13896cc2 llc_sap_close +EXPORT_SYMBOL net/llc/llc 0x1e9e99fd llc_sap_list_lock +EXPORT_SYMBOL net/llc/llc 0x34ae1289 llc_set_station_handler +EXPORT_SYMBOL net/llc/llc 0x38b92846 llc_remove_pack +EXPORT_SYMBOL net/llc/llc 0x52d7b2fd llc_sap_list +EXPORT_SYMBOL net/llc/llc 0x7a642d72 llc_sap_find +EXPORT_SYMBOL net/llc/llc 0x9a4f401f llc_sap_open +EXPORT_SYMBOL net/llc/llc 0xbf2f19be llc_build_and_send_ui_pkt +EXPORT_SYMBOL net/llc/llc 0xec4e64a8 llc_add_pack +EXPORT_SYMBOL net/mac80211/mac80211 0x009376f2 ieee80211_sta_set_buffered +EXPORT_SYMBOL net/mac80211/mac80211 0x00a020f1 ieee80211_scan_completed +EXPORT_SYMBOL net/mac80211/mac80211 0x03dce042 ieee80211_probereq_get +EXPORT_SYMBOL net/mac80211/mac80211 0x0584cc1d ieee80211_beacon_get_tim +EXPORT_SYMBOL net/mac80211/mac80211 0x0822a940 ieee80211_find_sta +EXPORT_SYMBOL net/mac80211/mac80211 0x0aa8a432 ieee80211_rts_duration +EXPORT_SYMBOL net/mac80211/mac80211 0x0c763631 ieee80211_ap_probereq_get +EXPORT_SYMBOL net/mac80211/mac80211 0x137cb220 ieee80211_beacon_loss +EXPORT_SYMBOL net/mac80211/mac80211 0x163f4ac0 ieee80211_get_tx_rates +EXPORT_SYMBOL net/mac80211/mac80211 0x1addccb6 ieee80211_free_hw +EXPORT_SYMBOL net/mac80211/mac80211 0x1d19900b ieee80211_queue_stopped +EXPORT_SYMBOL net/mac80211/mac80211 0x20bd651d ieee80211_register_hw +EXPORT_SYMBOL net/mac80211/mac80211 0x21a2ae71 ieee80211_sta_ps_transition +EXPORT_SYMBOL net/mac80211/mac80211 0x25788d33 ieee80211_send_bar +EXPORT_SYMBOL net/mac80211/mac80211 0x2e92005c __ieee80211_get_radio_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0x3072cf14 ieee80211_wake_queues +EXPORT_SYMBOL net/mac80211/mac80211 0x32a89ec2 ieee80211_queue_delayed_work +EXPORT_SYMBOL net/mac80211/mac80211 0x36c501d3 ieee80211_report_wowlan_wakeup +EXPORT_SYMBOL net/mac80211/mac80211 0x36f8cdf6 ieee80211_get_tkip_p2k +EXPORT_SYMBOL net/mac80211/mac80211 0x37b5cb42 ieee80211_unregister_hw +EXPORT_SYMBOL net/mac80211/mac80211 0x42f4aeb0 __ieee80211_get_rx_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0x492d9d36 ieee80211_alloc_hw +EXPORT_SYMBOL net/mac80211/mac80211 0x4ff73373 ieee80211_enable_rssi_reports +EXPORT_SYMBOL net/mac80211/mac80211 0x514b2511 ieee80211_proberesp_get +EXPORT_SYMBOL net/mac80211/mac80211 0x515c159d __ieee80211_get_tx_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0x526329e9 ieee80211_stop_queues +EXPORT_SYMBOL net/mac80211/mac80211 0x545951cd ieee80211_report_low_ack +EXPORT_SYMBOL net/mac80211/mac80211 0x565afb34 ieee80211_ctstoself_duration +EXPORT_SYMBOL net/mac80211/mac80211 0x5c28cca5 ieee80211_get_tkip_p1k_iv +EXPORT_SYMBOL net/mac80211/mac80211 0x64567425 ieee80211_pspoll_get +EXPORT_SYMBOL net/mac80211/mac80211 0x6806d0b0 rate_control_set_rates +EXPORT_SYMBOL net/mac80211/mac80211 0x6c2cc49c ieee80211_generic_frame_duration +EXPORT_SYMBOL net/mac80211/mac80211 0x6f4a5694 ieee80211_rate_control_unregister +EXPORT_SYMBOL net/mac80211/mac80211 0x730548f7 ieee80211_iter_keys +EXPORT_SYMBOL net/mac80211/mac80211 0x750c42f9 ieee80211_connection_loss +EXPORT_SYMBOL net/mac80211/mac80211 0x7968f58a ieee80211_radar_detected +EXPORT_SYMBOL net/mac80211/mac80211 0x8066e8fb ieee80211_get_buffered_bc +EXPORT_SYMBOL net/mac80211/mac80211 0x84b59655 __ieee80211_get_assoc_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0x87a06b9b ieee80211_rx_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0x897ac0de ieee80211_sta_block_awake +EXPORT_SYMBOL net/mac80211/mac80211 0x901600cb ieee80211_stop_tx_ba_cb_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0x98f96296 ieee80211_stop_rx_ba_session +EXPORT_SYMBOL net/mac80211/mac80211 0x9c5e6334 ieee80211_sta_eosp +EXPORT_SYMBOL net/mac80211/mac80211 0x9e9543c7 ieee80211_sched_scan_stopped +EXPORT_SYMBOL net/mac80211/mac80211 0xa1fc36c4 ieee80211_start_tx_ba_session +EXPORT_SYMBOL net/mac80211/mac80211 0xa4d84a31 __ieee80211_create_tpt_led_trigger +EXPORT_SYMBOL net/mac80211/mac80211 0xa6830003 wiphy_to_ieee80211_hw +EXPORT_SYMBOL net/mac80211/mac80211 0xa9eca247 ieee80211_rx +EXPORT_SYMBOL net/mac80211/mac80211 0xaa157485 ieee80211_get_tkip_rx_p1k +EXPORT_SYMBOL net/mac80211/mac80211 0xade68895 ieee80211_tx_status +EXPORT_SYMBOL net/mac80211/mac80211 0xadec6cfa ieee80211_cqm_rssi_notify +EXPORT_SYMBOL net/mac80211/mac80211 0xb1486d08 ieee80211_wake_queue +EXPORT_SYMBOL net/mac80211/mac80211 0xb8d72762 ieee80211_stop_queue +EXPORT_SYMBOL net/mac80211/mac80211 0xbe2d2d31 ieee80211_rts_get +EXPORT_SYMBOL net/mac80211/mac80211 0xbe63125d ieee80211_rate_control_register +EXPORT_SYMBOL net/mac80211/mac80211 0xc5309585 ieee80211_sched_scan_results +EXPORT_SYMBOL net/mac80211/mac80211 0xc75b1940 ieee80211_restart_hw +EXPORT_SYMBOL net/mac80211/mac80211 0xc7e9782e ieee80211_get_key_tx_seq +EXPORT_SYMBOL net/mac80211/mac80211 0xc8f0b846 ieee80211_disable_rssi_reports +EXPORT_SYMBOL net/mac80211/mac80211 0xcb2c9cb1 ieee80211_start_tx_ba_cb_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0xcb33e7ec rate_control_send_low +EXPORT_SYMBOL net/mac80211/mac80211 0xcccafe99 ieee80211_stop_tx_ba_session +EXPORT_SYMBOL net/mac80211/mac80211 0xd2177458 ieee80211_ctstoself_get +EXPORT_SYMBOL net/mac80211/mac80211 0xd3412566 ieee80211_nullfunc_get +EXPORT_SYMBOL net/mac80211/mac80211 0xddb47d52 ieee80211_get_key_rx_seq +EXPORT_SYMBOL net/mac80211/mac80211 0xe1f5b027 ieee80211_free_txskb +EXPORT_SYMBOL net/mac80211/mac80211 0xf395de03 ieee80211_aes_cmac_calculate_k1_k2 +EXPORT_SYMBOL net/mac80211/mac80211 0xfc4ef98e ieee80211_tx_status_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0xffad53b1 ieee80211_chswitch_done +EXPORT_SYMBOL net/mac80211/mac80211 0xffd27d30 ieee80211_queue_work +EXPORT_SYMBOL net/mac802154/mac802154 0x7678d964 ieee802154_rx_irqsafe +EXPORT_SYMBOL net/mac802154/mac802154 0x79103ac6 ieee802154_register_device +EXPORT_SYMBOL net/mac802154/mac802154 0xdd1032e7 ieee802154_free_device +EXPORT_SYMBOL net/mac802154/mac802154 0xe0407e09 ieee802154_alloc_device +EXPORT_SYMBOL net/mac802154/mac802154 0xf537ca56 ieee802154_unregister_device +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x1458ff4d register_ip_vs_app_inc +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x20969cb6 ip_vs_tcp_conn_listen +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x246a817b ip_vs_proto_get +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x611cfc9e unregister_ip_vs_scheduler +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x77106111 register_ip_vs_app +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x8859b1b7 ip_vs_proto_data_get +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x9c215873 unregister_ip_vs_app +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xaa1e627b ip_vs_conn_out_get +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xba3a5f4a ip_vs_nfct_expect_related +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xc89d66cb ip_vs_scheduler_err +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xd44ed4a8 register_ip_vs_scheduler +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xd831a1a2 ip_vs_proto_name +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xdd675d1b ip_vs_conn_in_get +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xe45a1075 ip_vs_conn_put +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xf2633249 ip_vs_conn_new +EXPORT_SYMBOL net/netfilter/nf_conntrack 0x6a5503b2 __nf_ct_ext_add_length +EXPORT_SYMBOL net/netfilter/nf_conntrack 0xd1581d73 nf_conntrack_untracked +EXPORT_SYMBOL net/netfilter/nf_conntrack 0xed826aa9 __nf_ct_ext_destroy +EXPORT_SYMBOL net/netfilter/nf_conntrack_pptp 0x827cc6a1 pptp_msg_name +EXPORT_SYMBOL net/netfilter/nf_conntrack_proto_gre 0x315706aa nf_ct_gre_keymap_flush +EXPORT_SYMBOL net/netfilter/nf_nat 0x0287c40e nf_nat_setup_info +EXPORT_SYMBOL net/netfilter/nf_nat 0x0f173489 __nf_nat_mangle_tcp_packet +EXPORT_SYMBOL net/netfilter/nf_nat 0x30e90ab1 nf_nat_used_tuple +EXPORT_SYMBOL net/netfilter/nf_nat 0x4dbc7fec nf_nat_follow_master +EXPORT_SYMBOL net/netfilter/nf_nat 0x5ba015cf nf_xfrm_me_harder +EXPORT_SYMBOL net/netfilter/nf_nat 0xf701afe7 nf_nat_mangle_udp_packet +EXPORT_SYMBOL net/netfilter/x_tables 0x08c473b7 xt_alloc_table_info +EXPORT_SYMBOL net/netfilter/x_tables 0x2e1a490f xt_register_matches +EXPORT_SYMBOL net/netfilter/x_tables 0x4530bb2d xt_register_target +EXPORT_SYMBOL net/netfilter/x_tables 0x65128e83 xt_find_match +EXPORT_SYMBOL net/netfilter/x_tables 0x66258dca xt_register_match +EXPORT_SYMBOL net/netfilter/x_tables 0x67eab432 xt_unregister_matches +EXPORT_SYMBOL net/netfilter/x_tables 0x753dd4ea xt_find_target +EXPORT_SYMBOL net/netfilter/x_tables 0x9c9f7938 xt_unregister_targets +EXPORT_SYMBOL net/netfilter/x_tables 0xa76248e3 xt_unregister_match +EXPORT_SYMBOL net/netfilter/x_tables 0xb28f5ef1 xt_free_table_info +EXPORT_SYMBOL net/netfilter/x_tables 0xc4bec5d4 xt_register_targets +EXPORT_SYMBOL net/netfilter/x_tables 0xea78d3be xt_unregister_target +EXPORT_SYMBOL net/nfc/hci/hci 0x1d441cb0 nfc_hci_get_clientdata +EXPORT_SYMBOL net/nfc/hci/hci 0x31483e0d nfc_hci_allocate_device +EXPORT_SYMBOL net/nfc/hci/hci 0x3325be6d nfc_hci_disconnect_gate +EXPORT_SYMBOL net/nfc/hci/hci 0x3bee8dba nfc_hci_send_cmd_async +EXPORT_SYMBOL net/nfc/hci/hci 0x43028a27 nfc_hci_result_to_errno +EXPORT_SYMBOL net/nfc/hci/hci 0x45f7aed5 nfc_hci_free_device +EXPORT_SYMBOL net/nfc/hci/hci 0x47e806cf nfc_hci_send_response +EXPORT_SYMBOL net/nfc/hci/hci 0x4de2f224 nfc_hci_unregister_device +EXPORT_SYMBOL net/nfc/hci/hci 0x5b4fa065 nfc_hci_target_discovered +EXPORT_SYMBOL net/nfc/hci/hci 0x6ca4ed86 nfc_hci_send_event +EXPORT_SYMBOL net/nfc/hci/hci 0x724a5184 nfc_hci_set_clientdata +EXPORT_SYMBOL net/nfc/hci/hci 0x7c6fa1e8 nfc_hci_disconnect_all_gates +EXPORT_SYMBOL net/nfc/hci/hci 0x9ce9bc8d nfc_hci_connect_gate +EXPORT_SYMBOL net/nfc/hci/hci 0xa4097d81 nfc_hci_get_param +EXPORT_SYMBOL net/nfc/hci/hci 0xbca0b4fd nfc_hci_sak_to_protocol +EXPORT_SYMBOL net/nfc/hci/hci 0xc2a4d1e6 nfc_hci_set_param +EXPORT_SYMBOL net/nfc/hci/hci 0xc7197209 nfc_hci_driver_failure +EXPORT_SYMBOL net/nfc/hci/hci 0xece71341 nfc_hci_recv_frame +EXPORT_SYMBOL net/nfc/hci/hci 0xfd5173d4 nfc_hci_register_device +EXPORT_SYMBOL net/nfc/hci/hci 0xfede979d nfc_hci_send_cmd +EXPORT_SYMBOL net/nfc/nci/nci 0x0747f57f nci_register_device +EXPORT_SYMBOL net/nfc/nci/nci 0x29b97073 nci_unregister_device +EXPORT_SYMBOL net/nfc/nci/nci 0x70212a90 nci_recv_frame +EXPORT_SYMBOL net/nfc/nci/nci 0xb4258042 nci_allocate_device +EXPORT_SYMBOL net/nfc/nci/nci 0xb94cbe1e nci_free_device +EXPORT_SYMBOL net/nfc/nci/nci 0xba490602 nci_to_errno +EXPORT_SYMBOL net/nfc/nfc 0x12c4a69f nfc_tm_activated +EXPORT_SYMBOL net/nfc/nfc 0x161945d6 nfc_class +EXPORT_SYMBOL net/nfc/nfc 0x1ad4afbb nfc_fw_download_done +EXPORT_SYMBOL net/nfc/nfc 0x21c2e91f nfc_proto_unregister +EXPORT_SYMBOL net/nfc/nfc 0x38df9166 nfc_targets_found +EXPORT_SYMBOL net/nfc/nfc 0x39bf6d1c nfc_dep_link_is_up +EXPORT_SYMBOL net/nfc/nfc 0x54c66dea nfc_tm_data_received +EXPORT_SYMBOL net/nfc/nfc 0x567a32eb nfc_unregister_device +EXPORT_SYMBOL net/nfc/nfc 0x6a3aec66 nfc_add_se +EXPORT_SYMBOL net/nfc/nfc 0x7273476e nfc_tm_deactivated +EXPORT_SYMBOL net/nfc/nfc 0x767bdd7e nfc_get_local_general_bytes +EXPORT_SYMBOL net/nfc/nfc 0x9e2923bf nfc_register_device +EXPORT_SYMBOL net/nfc/nfc 0xadd6975f nfc_target_lost +EXPORT_SYMBOL net/nfc/nfc 0xb333a8c2 nfc_driver_failure +EXPORT_SYMBOL net/nfc/nfc 0xb5a0608b nfc_remove_se +EXPORT_SYMBOL net/nfc/nfc 0xc7a0ca28 nfc_proto_register +EXPORT_SYMBOL net/nfc/nfc 0xd48e7d0a nfc_set_remote_general_bytes +EXPORT_SYMBOL net/nfc/nfc 0xe5cfd27b nfc_allocate_device +EXPORT_SYMBOL net/nfc/nfc 0xfa89ad33 nfc_alloc_recv_skb +EXPORT_SYMBOL net/phonet/phonet 0x2d920b62 pn_skb_send +EXPORT_SYMBOL net/phonet/phonet 0x4f7f2eab phonet_stream_ops +EXPORT_SYMBOL net/phonet/phonet 0x517d4ffd pn_sock_get_port +EXPORT_SYMBOL net/phonet/phonet 0x773d4b55 phonet_header_ops +EXPORT_SYMBOL net/phonet/phonet 0xb723ef9c phonet_proto_register +EXPORT_SYMBOL net/phonet/phonet 0xbf529b91 pn_sock_unhash +EXPORT_SYMBOL net/phonet/phonet 0xc55a2a6a phonet_proto_unregister +EXPORT_SYMBOL net/phonet/phonet 0xf0d385b5 pn_sock_hash +EXPORT_SYMBOL net/rds/rds 0x5031b8c5 rds_str_array +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x144a6444 rxrpc_kernel_intercept_rx_messages +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x2fc3c9c2 rxrpc_kernel_send_data +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x4eead9bd rxrpc_kernel_end_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x818c941a rxrpc_kernel_get_error_number +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xad453bcb rxrpc_kernel_reject_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xb5e09a38 rxrpc_kernel_free_skb +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xc088711d rxrpc_kernel_get_abort_code +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xca595cbc rxrpc_get_null_key +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xcd0ea9ee rxrpc_kernel_abort_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xdadc07b1 rxrpc_kernel_accept_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xe059c4dd rxrpc_kernel_is_data_last +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xe8c9d1e2 rxrpc_kernel_data_delivered +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xeebbfc4a rxrpc_get_server_data_key +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xef25ea8b key_type_rxrpc +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xfcadc939 rxrpc_kernel_begin_call +EXPORT_SYMBOL net/sctp/sctp 0x6027307e sctp_do_peeloff +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0x0f3de350 gss_mech_put +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0x7c36b369 gss_pseudoflavor_to_service +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0xba7b4758 gss_mech_get +EXPORT_SYMBOL net/sunrpc/sunrpc 0xac33b55d svc_pool_stats_open +EXPORT_SYMBOL net/wimax/wimax 0x6d40a177 wimax_rfkill +EXPORT_SYMBOL net/wimax/wimax 0x7c412eaf wimax_reset +EXPORT_SYMBOL net/wireless/cfg80211 0x00001f06 wiphy_rfkill_stop_polling +EXPORT_SYMBOL net/wireless/cfg80211 0x0199b0d8 cfg80211_rx_unexpected_4addr_frame +EXPORT_SYMBOL net/wireless/cfg80211 0x0284f5cc cfg80211_connect_result +EXPORT_SYMBOL net/wireless/cfg80211 0x03bbfa7e cfg80211_rx_unprot_mlme_mgmt +EXPORT_SYMBOL net/wireless/cfg80211 0x07589247 cfg80211_get_bss +EXPORT_SYMBOL net/wireless/cfg80211 0x09c64fbd ieee80211_frequency_to_channel +EXPORT_SYMBOL net/wireless/cfg80211 0x0d9fa90f cfg80211_unlink_bss +EXPORT_SYMBOL net/wireless/cfg80211 0x0e3e1a04 cfg80211_roamed_bss +EXPORT_SYMBOL net/wireless/cfg80211 0x0f063c87 cfg80211_cqm_rssi_notify +EXPORT_SYMBOL net/wireless/cfg80211 0x1879fcbd bridge_tunnel_header +EXPORT_SYMBOL net/wireless/cfg80211 0x18830b1f cfg80211_ft_event +EXPORT_SYMBOL net/wireless/cfg80211 0x18d7ecb9 cfg80211_radar_event +EXPORT_SYMBOL net/wireless/cfg80211 0x19e03378 cfg80211_get_p2p_attr +EXPORT_SYMBOL net/wireless/cfg80211 0x1ee6f7b0 cfg80211_ch_switch_notify +EXPORT_SYMBOL net/wireless/cfg80211 0x2091f71b cfg80211_roamed +EXPORT_SYMBOL net/wireless/cfg80211 0x21a30a72 cfg80211_sched_scan_results +EXPORT_SYMBOL net/wireless/cfg80211 0x223762a4 cfg80211_tx_mlme_mgmt +EXPORT_SYMBOL net/wireless/cfg80211 0x240ddc94 cfg80211_pmksa_candidate_notify +EXPORT_SYMBOL net/wireless/cfg80211 0x2806a9ce cfg80211_report_obss_beacon +EXPORT_SYMBOL net/wireless/cfg80211 0x2acd1b4d cfg80211_ref_bss +EXPORT_SYMBOL net/wireless/cfg80211 0x2efa75c4 cfg80211_cac_event +EXPORT_SYMBOL net/wireless/cfg80211 0x334dcfd2 wiphy_free +EXPORT_SYMBOL net/wireless/cfg80211 0x36f352e9 cfg80211_notify_new_peer_candidate +EXPORT_SYMBOL net/wireless/cfg80211 0x38252d34 cfg80211_rx_mlme_mgmt +EXPORT_SYMBOL net/wireless/cfg80211 0x39f90857 regulatory_hint +EXPORT_SYMBOL net/wireless/cfg80211 0x3b111821 cfg80211_rx_mgmt +EXPORT_SYMBOL net/wireless/cfg80211 0x3b8be08d cfg80211_inform_bss_frame +EXPORT_SYMBOL net/wireless/cfg80211 0x406a8302 cfg80211_chandef_valid +EXPORT_SYMBOL net/wireless/cfg80211 0x40c0266a cfg80211_ready_on_channel +EXPORT_SYMBOL net/wireless/cfg80211 0x446ad668 cfg80211_mgmt_tx_status +EXPORT_SYMBOL net/wireless/cfg80211 0x461b07ee cfg80211_scan_done +EXPORT_SYMBOL net/wireless/cfg80211 0x474875ed wiphy_unregister +EXPORT_SYMBOL net/wireless/cfg80211 0x4c3b5878 ieee80211_get_response_rate +EXPORT_SYMBOL net/wireless/cfg80211 0x52a23b93 wiphy_rfkill_start_polling +EXPORT_SYMBOL net/wireless/cfg80211 0x52b1a66a cfg80211_ibss_joined +EXPORT_SYMBOL net/wireless/cfg80211 0x55af3048 cfg80211_reg_can_beacon +EXPORT_SYMBOL net/wireless/cfg80211 0x56ebc761 cfg80211_chandef_usable +EXPORT_SYMBOL net/wireless/cfg80211 0x5e249f93 cfg80211_conn_failed +EXPORT_SYMBOL net/wireless/cfg80211 0x631dd692 wiphy_rfkill_set_hw_state +EXPORT_SYMBOL net/wireless/cfg80211 0x69b18f43 rfc1042_header +EXPORT_SYMBOL net/wireless/cfg80211 0x6d6cb9ad ieee80211_operating_class_to_band +EXPORT_SYMBOL net/wireless/cfg80211 0x6fc0e12d cfg80211_cqm_pktloss_notify +EXPORT_SYMBOL net/wireless/cfg80211 0x713ee365 cfg80211_report_wowlan_wakeup +EXPORT_SYMBOL net/wireless/cfg80211 0x732da262 freq_reg_info +EXPORT_SYMBOL net/wireless/cfg80211 0x74a9480a cfg80211_disconnected +EXPORT_SYMBOL net/wireless/cfg80211 0x79e0b764 cfg80211_auth_timeout +EXPORT_SYMBOL net/wireless/cfg80211 0x7ef39823 ieee80211_hdrlen +EXPORT_SYMBOL net/wireless/cfg80211 0x7fe1a403 cfg80211_find_ie +EXPORT_SYMBOL net/wireless/cfg80211 0x83291d14 ieee80211_get_hdrlen_from_skb +EXPORT_SYMBOL net/wireless/cfg80211 0x866160f6 cfg80211_put_bss +EXPORT_SYMBOL net/wireless/cfg80211 0x871f5cd0 cfg80211_gtk_rekey_notify +EXPORT_SYMBOL net/wireless/cfg80211 0x8f82a9be cfg80211_check_station_change +EXPORT_SYMBOL net/wireless/cfg80211 0x902e9797 cfg80211_new_sta +EXPORT_SYMBOL net/wireless/cfg80211 0x90b49356 cfg80211_remain_on_channel_expired +EXPORT_SYMBOL net/wireless/cfg80211 0x92c0c538 ieee80211_bss_get_ie +EXPORT_SYMBOL net/wireless/cfg80211 0x982e6b6d ieee80211_radiotap_iterator_init +EXPORT_SYMBOL net/wireless/cfg80211 0x9909441f cfg80211_probe_status +EXPORT_SYMBOL net/wireless/cfg80211 0x9e5d7a86 wiphy_new +EXPORT_SYMBOL net/wireless/cfg80211 0xa1425906 ieee80211_channel_to_frequency +EXPORT_SYMBOL net/wireless/cfg80211 0xa15a5ae5 wiphy_register +EXPORT_SYMBOL net/wireless/cfg80211 0xa197b1ff ieee80211_get_mesh_hdrlen +EXPORT_SYMBOL net/wireless/cfg80211 0xa520a8c9 cfg80211_michael_mic_failure +EXPORT_SYMBOL net/wireless/cfg80211 0xa703a063 cfg80211_tdls_oper_request +EXPORT_SYMBOL net/wireless/cfg80211 0xaa1081f1 cfg80211_classify8021d +EXPORT_SYMBOL net/wireless/cfg80211 0xb599758c cfg80211_inform_bss +EXPORT_SYMBOL net/wireless/cfg80211 0xb5fc1258 ieee80211_data_from_8023 +EXPORT_SYMBOL net/wireless/cfg80211 0xbc664d99 ieee80211_data_to_8023 +EXPORT_SYMBOL net/wireless/cfg80211 0xc15c8611 cfg80211_chandef_create +EXPORT_SYMBOL net/wireless/cfg80211 0xc2e6bb1e cfg80211_crit_proto_stopped +EXPORT_SYMBOL net/wireless/cfg80211 0xc63f1b81 ieee80211_radiotap_iterator_next +EXPORT_SYMBOL net/wireless/cfg80211 0xc7848678 cfg80211_cqm_txe_notify +EXPORT_SYMBOL net/wireless/cfg80211 0xcf44681c cfg80211_sched_scan_stopped +EXPORT_SYMBOL net/wireless/cfg80211 0xcf618a57 cfg80211_calculate_bitrate +EXPORT_SYMBOL net/wireless/cfg80211 0xd22243e5 cfg80211_rx_assoc_resp +EXPORT_SYMBOL net/wireless/cfg80211 0xd7875276 cfg80211_del_sta +EXPORT_SYMBOL net/wireless/cfg80211 0xd89ff730 cfg80211_rx_spurious_frame +EXPORT_SYMBOL net/wireless/cfg80211 0xdd99b2be __ieee80211_get_channel +EXPORT_SYMBOL net/wireless/cfg80211 0xe3167eca ieee80211_mandatory_rates +EXPORT_SYMBOL net/wireless/cfg80211 0xe9c1e317 wiphy_apply_custom_regulatory +EXPORT_SYMBOL net/wireless/cfg80211 0xee42db3c cfg80211_chandef_compatible +EXPORT_SYMBOL net/wireless/cfg80211 0xf16bb531 ieee80211_amsdu_to_8023s +EXPORT_SYMBOL net/wireless/cfg80211 0xf87c4400 cfg80211_assoc_timeout +EXPORT_SYMBOL net/wireless/cfg80211 0xfec6699f cfg80211_unregister_wdev +EXPORT_SYMBOL net/wireless/cfg80211 0xfed4d591 cfg80211_find_vendor_ie +EXPORT_SYMBOL net/wireless/lib80211 0x2d0f99e5 print_ssid +EXPORT_SYMBOL net/wireless/lib80211 0x2f5bac05 lib80211_crypt_delayed_deinit +EXPORT_SYMBOL net/wireless/lib80211 0x3e510075 lib80211_unregister_crypto_ops +EXPORT_SYMBOL net/wireless/lib80211 0x45fe8ef8 lib80211_crypt_info_free +EXPORT_SYMBOL net/wireless/lib80211 0xac00bb13 lib80211_crypt_info_init +EXPORT_SYMBOL net/wireless/lib80211 0xb574746c lib80211_get_crypto_ops +EXPORT_SYMBOL net/wireless/lib80211 0xf14b231b lib80211_register_crypto_ops +EXPORT_SYMBOL sound/core/seq/snd-seq 0x1045b899 snd_seq_kernel_client_write_poll +EXPORT_SYMBOL sound/core/seq/snd-seq 0x1a724fcc snd_seq_kernel_client_ctl +EXPORT_SYMBOL sound/core/seq/snd-seq 0x3061c52d snd_use_lock_sync_helper +EXPORT_SYMBOL sound/core/seq/snd-seq 0x3fb4d161 snd_seq_kernel_client_dispatch +EXPORT_SYMBOL sound/core/seq/snd-seq 0x4057d859 snd_seq_event_port_attach +EXPORT_SYMBOL sound/core/seq/snd-seq 0x6bb71038 snd_seq_delete_kernel_client +EXPORT_SYMBOL sound/core/seq/snd-seq 0x7ac2f329 snd_seq_expand_var_event +EXPORT_SYMBOL sound/core/seq/snd-seq 0x7b8699eb snd_seq_event_port_detach +EXPORT_SYMBOL sound/core/seq/snd-seq 0xb8e448a0 snd_seq_set_queue_tempo +EXPORT_SYMBOL sound/core/seq/snd-seq 0xbde99112 snd_seq_kernel_client_enqueue_blocking +EXPORT_SYMBOL sound/core/seq/snd-seq 0xcac0a3be snd_seq_kernel_client_enqueue +EXPORT_SYMBOL sound/core/seq/snd-seq 0xccce5f38 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 0x202d1fd1 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 0x8c9ad127 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 0x127b30fb snd_midi_event_encode +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x1cdc0812 snd_midi_event_decode +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x59eb74ae snd_midi_event_encode_byte +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x8102ed2f snd_midi_event_reset_encode +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0xb11ba32d snd_midi_event_new +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0xb2c7f684 snd_midi_event_reset_decode +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0xea0e5748 snd_midi_event_free +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0xed42580b snd_midi_event_no_status +EXPORT_SYMBOL sound/core/seq/snd-seq-virmidi 0x187118d2 snd_virmidi_new +EXPORT_SYMBOL sound/core/snd-hwdep 0xb40d42f5 snd_hwdep_new +EXPORT_SYMBOL sound/core/snd-rawmidi 0x2e2cf8fe snd_rawmidi_input_params +EXPORT_SYMBOL sound/core/snd-rawmidi 0x3de962a1 snd_rawmidi_new +EXPORT_SYMBOL sound/core/snd-rawmidi 0x4cd45e96 snd_rawmidi_drain_output +EXPORT_SYMBOL sound/core/snd-rawmidi 0x60749f8d snd_rawmidi_kernel_open +EXPORT_SYMBOL sound/core/snd-rawmidi 0x62238fe3 snd_rawmidi_set_ops +EXPORT_SYMBOL sound/core/snd-rawmidi 0x714cb3c7 snd_rawmidi_kernel_release +EXPORT_SYMBOL sound/core/snd-rawmidi 0x7536abbb snd_rawmidi_receive +EXPORT_SYMBOL sound/core/snd-rawmidi 0x7d6de0f2 snd_rawmidi_output_params +EXPORT_SYMBOL sound/core/snd-rawmidi 0x901197de snd_rawmidi_drain_input +EXPORT_SYMBOL sound/core/snd-rawmidi 0xa0b0f8e1 snd_rawmidi_transmit_peek +EXPORT_SYMBOL sound/core/snd-rawmidi 0xa7c14d02 snd_rawmidi_drop_output +EXPORT_SYMBOL sound/core/snd-rawmidi 0xb7948100 snd_rawmidi_kernel_read +EXPORT_SYMBOL sound/core/snd-rawmidi 0xc2e16d62 snd_rawmidi_transmit_empty +EXPORT_SYMBOL sound/core/snd-rawmidi 0xcae0948b snd_rawmidi_transmit +EXPORT_SYMBOL sound/core/snd-rawmidi 0xe5a8ebc3 snd_rawmidi_transmit_ack +EXPORT_SYMBOL sound/core/snd-rawmidi 0xed60bbea snd_rawmidi_info_select +EXPORT_SYMBOL sound/core/snd-rawmidi 0xfbcf273d snd_rawmidi_kernel_write +EXPORT_SYMBOL sound/drivers/mpu401/snd-mpu401-uart 0x6d629c59 snd_mpu401_uart_interrupt_tx +EXPORT_SYMBOL sound/drivers/mpu401/snd-mpu401-uart 0xc0fec227 snd_mpu401_uart_interrupt +EXPORT_SYMBOL sound/drivers/mpu401/snd-mpu401-uart 0xeb18b298 snd_mpu401_uart_new +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x05060a19 snd_opl3_regmap +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x20219cf0 snd_opl3_new +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x3f14ae99 snd_opl3_find_patch +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x5872e04b snd_opl3_load_patch +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x74967483 snd_opl3_interrupt +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x8231bcf7 snd_opl3_hwdep_new +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0xb340fbc2 snd_opl3_timer_new +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0xc968370a snd_opl3_reset +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0xce39dd51 snd_opl3_create +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0xfd51debc snd_opl3_init +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x47fe83fd snd_vx_load_boot_image +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x6a3b470b snd_vx_setup_firmware +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x908f69cd snd_vx_resume +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x9df7a014 snd_vx_create +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0xe20e2154 snd_vx_free_firmware +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0xe7b5c43f snd_vx_dsp_boot +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0xf1324243 snd_vx_dsp_load +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0xf1f04d23 snd_vx_irq_handler +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0xfd79cb5d snd_vx_check_reg_bit +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0xfe627b10 snd_vx_suspend +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x074b033d cmp_connection_destroy +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x0760e4ff amdtp_out_stream_pcm_prepare +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x2b872177 fw_iso_resources_destroy +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x2cfaf6a2 amdtp_out_stream_start +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x2eafc982 amdtp_out_stream_pcm_pointer +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x4641402f amdtp_out_stream_init +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x4cb04b03 amdtp_out_stream_destroy +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x5216cb96 fw_iso_resources_free +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x58c8a591 cmp_connection_init +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x5a3248f7 iso_packets_buffer_destroy +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x5be4e473 iso_packets_buffer_init +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x65ac7f6d snd_fw_transaction +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x6a66482a fw_iso_resources_init +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x6c28a8de cmp_connection_update +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x70390462 fcp_avc_transaction +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x71dcbeec amdtp_out_stream_set_rate +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x74ca2437 amdtp_out_stream_update +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x86b4967d cmp_connection_break +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x9d72f9e8 amdtp_out_stream_get_max_payload +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xb0635372 amdtp_out_stream_stop +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xba242fc7 cmp_connection_establish +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xc5af3489 fcp_bus_reset +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xda5c5c08 amdtp_out_stream_pcm_abort +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xda672e00 fw_iso_resources_update +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xed64b671 amdtp_out_stream_set_pcm_format +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xff29b894 fw_iso_resources_allocate +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x3252cd0f snd_ak4114_reinit +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x6bfe54bd snd_ak4114_build +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x84697e8e snd_ak4114_check_rate_and_errors +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0xadd9ca9c snd_ak4114_reg_write +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0xba097fa2 snd_ak4114_create +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0xc6378e22 snd_ak4114_external_rate +EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0x4830e12e snd_akm4xxx_reset +EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0x568dfd65 snd_akm4xxx_init +EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0x961c7449 snd_akm4xxx_build_controls +EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0xd79e1eee snd_akm4xxx_write +EXPORT_SYMBOL sound/i2c/other/snd-pt2258 0x7b58fae3 snd_pt2258_build_controls +EXPORT_SYMBOL sound/i2c/other/snd-pt2258 0x93eba600 snd_pt2258_reset +EXPORT_SYMBOL sound/i2c/other/snd-tea575x-tuner 0x2dd92ceb snd_tea575x_exit +EXPORT_SYMBOL sound/i2c/other/snd-tea575x-tuner 0x55e82f58 snd_tea575x_init +EXPORT_SYMBOL sound/i2c/other/snd-tea575x-tuner 0xf23a5350 snd_tea575x_set_freq +EXPORT_SYMBOL sound/i2c/snd-cs8427 0x03e836ed snd_cs8427_iec958_pcm +EXPORT_SYMBOL sound/i2c/snd-cs8427 0x233e68d7 snd_cs8427_iec958_active +EXPORT_SYMBOL sound/i2c/snd-cs8427 0x64ec5559 snd_cs8427_reg_write +EXPORT_SYMBOL sound/i2c/snd-cs8427 0x802c9452 snd_cs8427_create +EXPORT_SYMBOL sound/i2c/snd-cs8427 0xdfa5e101 snd_cs8427_iec958_build +EXPORT_SYMBOL sound/i2c/snd-i2c 0x30c41e32 snd_i2c_readbytes +EXPORT_SYMBOL sound/i2c/snd-i2c 0x3cddf2a1 snd_i2c_device_create +EXPORT_SYMBOL sound/i2c/snd-i2c 0x90785ff1 snd_i2c_probeaddr +EXPORT_SYMBOL sound/i2c/snd-i2c 0xb5d7c5ba snd_i2c_sendbytes +EXPORT_SYMBOL sound/i2c/snd-i2c 0xb5f53aa1 snd_i2c_device_free +EXPORT_SYMBOL sound/i2c/snd-i2c 0xfae618ec snd_i2c_bus_create +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x0c98c6f6 snd_ac97_write +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x1d6f52c5 snd_ac97_pcm_close +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x30663ed8 snd_ac97_update_power +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x3328545b snd_ac97_pcm_assign +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x52a3254b snd_ac97_set_rate +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x5d62ddfa snd_ac97_suspend +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x5f333b5f snd_ac97_get_short_name +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x74297986 snd_ac97_bus +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x7c7f3597 snd_ac97_pcm_double_rate_rules +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x86821e06 snd_ac97_write_cache +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x8998a40a snd_ac97_update_bits +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xaf85a404 snd_ac97_pcm_open +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xb7d9a228 snd_ac97_resume +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xba50bb1f snd_ac97_read +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xbf802de3 snd_ac97_mixer +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xe9da7992 snd_ac97_tune_hardware +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xf494c65a snd_ac97_update +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x193676ac snd_emu10k1_synth_alloc +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x3038555c snd_emu10k1_synth_copy_from_user +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x43e565c3 snd_emu10k1_ptr_read +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x54f85cab snd_emu10k1_synth_free +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x795d18dd snd_emu10k1_voice_free +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x8d8f04e7 snd_emu10k1_synth_bzero +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0xa54e2228 snd_emu10k1_voice_alloc +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0xdcbd70ab snd_emu10k1_memblk_map +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0xead793da snd_emu10k1_ptr_write +EXPORT_SYMBOL sound/pci/ice1712/snd-ice17xx-ak4xxx 0x58ef6a4d snd_ice1712_akm4xxx_build_controls +EXPORT_SYMBOL sound/pci/ice1712/snd-ice17xx-ak4xxx 0x89728220 snd_ice1712_akm4xxx_free +EXPORT_SYMBOL sound/pci/ice1712/snd-ice17xx-ak4xxx 0xa4a6eead snd_ice1712_akm4xxx_init +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x09e51db7 oxygen_write8 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x0adb92a4 oxygen_write_spi +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x0b60abd5 oxygen_write_i2c +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x0e64752d oxygen_read16 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x2316b0da oxygen_reset_uart +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x526e887e oxygen_pci_shutdown +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x8a004593 oxygen_pci_pm +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x8fa579ef oxygen_read8 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x98f0cf03 oxygen_write32_masked +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xa5a08a8b oxygen_pci_remove +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xaebb17c6 oxygen_write32 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xb9b60bf8 oxygen_read32 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xc3b2207d oxygen_write_uart +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xc412189d oxygen_read_ac97 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xc87f78be oxygen_write_ac97_masked +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xd85a36e9 oxygen_write_ac97 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xdc436fb9 oxygen_write8_masked +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xef507bde oxygen_write16 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xf3df3f2e oxygen_pci_probe +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xfc394280 oxygen_write16_masked +EXPORT_SYMBOL sound/pci/trident/snd-trident 0x122638ea snd_trident_stop_voice +EXPORT_SYMBOL sound/pci/trident/snd-trident 0x24baca02 snd_trident_write_voice_regs +EXPORT_SYMBOL sound/pci/trident/snd-trident 0x43eafe5e snd_trident_alloc_voice +EXPORT_SYMBOL sound/pci/trident/snd-trident 0xd2629967 snd_trident_start_voice +EXPORT_SYMBOL sound/pci/trident/snd-trident 0xef241fdc snd_trident_free_voice +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x1041d68f snd_emux_unlock_voice +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x354ca6a8 snd_emux_lock_voice +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x369c8b4f snd_emux_free +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x6544000b 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 0xbf8408be snd_emux_register +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0xe2b29ec2 snd_emux_terminate_all +EXPORT_SYMBOL sound/synth/snd-util-mem 0x3f376670 snd_util_mem_avail +EXPORT_SYMBOL sound/synth/snd-util-mem 0x40520b37 __snd_util_memblk_new +EXPORT_SYMBOL sound/synth/snd-util-mem 0x6b4ddba0 snd_util_memhdr_new +EXPORT_SYMBOL sound/synth/snd-util-mem 0x9a03a41a snd_util_mem_alloc +EXPORT_SYMBOL sound/synth/snd-util-mem 0x9b34e0b0 snd_util_mem_free +EXPORT_SYMBOL sound/synth/snd-util-mem 0xbcf6cfab snd_util_memhdr_free +EXPORT_SYMBOL sound/synth/snd-util-mem 0xdb7fe816 __snd_util_mem_free +EXPORT_SYMBOL sound/synth/snd-util-mem 0xfeac0f4c __snd_util_mem_alloc +EXPORT_SYMBOL sound/usb/snd-usbmidi-lib 0x058ba128 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 ubuntu/dm-raid4-5/dm-raid45 0x35c95b1b dm_mem_cache_client_create +EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0x7109d5be dm_mem_cache_free +EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0x86e5acf9 dm_mem_cache_grow +EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0x920a7a41 dm_message_parse +EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0xa43471b6 dm_mem_cache_shrink +EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0xd55b290c dm_mem_cache_client_destroy +EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0xe304280b dm_mem_cache_alloc +EXPORT_SYMBOL ubuntu/lttng/lib/lttng-lib-ring-buffer 0x2776a3e5 lib_ring_buffer_nesting +EXPORT_SYMBOL vmlinux 0x00000000 softirq_work_list +EXPORT_SYMBOL vmlinux 0x001ee95a imx_ssi_fiq_base +EXPORT_SYMBOL vmlinux 0x006818a5 kobject_put +EXPORT_SYMBOL vmlinux 0x00801678 flush_scheduled_work +EXPORT_SYMBOL vmlinux 0x0084e86d unregister_shrinker +EXPORT_SYMBOL vmlinux 0x00a6e389 journal_init_dev +EXPORT_SYMBOL vmlinux 0x00b06bb4 of_get_ddr_timings +EXPORT_SYMBOL vmlinux 0x00c472bb netdev_has_any_upper_dev +EXPORT_SYMBOL vmlinux 0x00cf4a7f of_get_parent +EXPORT_SYMBOL vmlinux 0x00e6948e sk_reset_timer +EXPORT_SYMBOL vmlinux 0x00e8097b csum_partial_copy_fromiovecend +EXPORT_SYMBOL vmlinux 0x00f992b1 vc_resize +EXPORT_SYMBOL vmlinux 0x00f9fb41 lock_may_read +EXPORT_SYMBOL vmlinux 0x01000e51 schedule +EXPORT_SYMBOL vmlinux 0x010c66e0 input_mt_assign_slots +EXPORT_SYMBOL vmlinux 0x01139ffc max_mapnr +EXPORT_SYMBOL vmlinux 0x013d6071 led_blink_set_oneshot +EXPORT_SYMBOL vmlinux 0x01424f59 sg_copy_to_buffer +EXPORT_SYMBOL vmlinux 0x015ccb88 sk_free +EXPORT_SYMBOL vmlinux 0x0182a835 snd_card_free_when_closed +EXPORT_SYMBOL vmlinux 0x0186e2de smp_call_function_many +EXPORT_SYMBOL vmlinux 0x01902adf netpoll_trap +EXPORT_SYMBOL vmlinux 0x01935416 irq_to_desc +EXPORT_SYMBOL vmlinux 0x01a3d310 omap_set_dma_channel_mode +EXPORT_SYMBOL vmlinux 0x01a86090 jbd2_inode_cache +EXPORT_SYMBOL vmlinux 0x01b64d65 dquot_drop +EXPORT_SYMBOL vmlinux 0x01b7fd59 dispc_read_irqstatus +EXPORT_SYMBOL vmlinux 0x01cf4a9b __scsi_iterate_devices +EXPORT_SYMBOL vmlinux 0x01d79ef0 tcp_child_process +EXPORT_SYMBOL vmlinux 0x01ea132e dispc_runtime_put +EXPORT_SYMBOL vmlinux 0x02124474 ip_send_check +EXPORT_SYMBOL vmlinux 0x02196324 __aeabi_idiv +EXPORT_SYMBOL vmlinux 0x023f868a dquot_set_dqinfo +EXPORT_SYMBOL vmlinux 0x024bf88f omap_modify_dma_chain_params +EXPORT_SYMBOL vmlinux 0x02529fcf page_readlink +EXPORT_SYMBOL vmlinux 0x02573b36 omap_disable_dma_irq +EXPORT_SYMBOL vmlinux 0x0258b721 sock_edemux +EXPORT_SYMBOL vmlinux 0x02649054 security_sock_rcv_skb +EXPORT_SYMBOL vmlinux 0x0274dc2b netif_get_num_default_rss_queues +EXPORT_SYMBOL vmlinux 0x0283dfe3 _snd_pcm_hw_params_any +EXPORT_SYMBOL vmlinux 0x02872748 posix_acl_to_xattr +EXPORT_SYMBOL vmlinux 0x02a18c74 nf_conntrack_destroy +EXPORT_SYMBOL vmlinux 0x02a6ce5a crc16_table +EXPORT_SYMBOL vmlinux 0x02a9e655 page_zero_new_buffers +EXPORT_SYMBOL vmlinux 0x02b0b845 bdevname +EXPORT_SYMBOL vmlinux 0x02c248e9 dev_get_by_index +EXPORT_SYMBOL vmlinux 0x02df66d3 bdput +EXPORT_SYMBOL vmlinux 0x02ea96a2 tty_hangup +EXPORT_SYMBOL vmlinux 0x02ee26c1 free_pages_exact +EXPORT_SYMBOL vmlinux 0x02ef742b percpu_counter_set +EXPORT_SYMBOL vmlinux 0x02fc4585 neigh_changeaddr +EXPORT_SYMBOL vmlinux 0x03026722 mempool_alloc +EXPORT_SYMBOL vmlinux 0x0304f316 napi_get_frags +EXPORT_SYMBOL vmlinux 0x0311594c neigh_ifdown +EXPORT_SYMBOL vmlinux 0x0315b1eb tcp_hashinfo +EXPORT_SYMBOL vmlinux 0x031947af bio_copy_data +EXPORT_SYMBOL vmlinux 0x032b042e tcp_initialize_rcv_mss +EXPORT_SYMBOL vmlinux 0x0334795d icst307_s2div +EXPORT_SYMBOL vmlinux 0x0334da4e scsi_command_size_tbl +EXPORT_SYMBOL vmlinux 0x033a3067 inet_sendpage +EXPORT_SYMBOL vmlinux 0x034d0173 vfs_create +EXPORT_SYMBOL vmlinux 0x03592ea0 security_unix_stream_connect +EXPORT_SYMBOL vmlinux 0x03635439 edma_stop +EXPORT_SYMBOL vmlinux 0x0366307a console_suspend_enabled +EXPORT_SYMBOL vmlinux 0x0367d95a tc6393xb_lcd_mode +EXPORT_SYMBOL vmlinux 0x036b9c9c dev_set_allmulti +EXPORT_SYMBOL vmlinux 0x036ef4e6 wait_on_sync_kiocb +EXPORT_SYMBOL vmlinux 0x03757c9b of_get_named_gpio_flags +EXPORT_SYMBOL vmlinux 0x03758525 __sk_backlog_rcv +EXPORT_SYMBOL vmlinux 0x037a0cba kfree +EXPORT_SYMBOL vmlinux 0x03851074 input_mt_report_slot_state +EXPORT_SYMBOL vmlinux 0x038c3eab dpi_check_timings +EXPORT_SYMBOL vmlinux 0x03ba39b0 v7_flush_user_cache_all +EXPORT_SYMBOL vmlinux 0x03bd889d param_get_ulong +EXPORT_SYMBOL vmlinux 0x03c06156 bitmap_fold +EXPORT_SYMBOL vmlinux 0x03f115b2 ata_dev_printk +EXPORT_SYMBOL vmlinux 0x03fd2571 vm_unmap_ram +EXPORT_SYMBOL vmlinux 0x040a4235 snd_ctl_boolean_mono_info +EXPORT_SYMBOL vmlinux 0x041f5c53 pcie_capability_read_dword +EXPORT_SYMBOL vmlinux 0x0422fe4a inet_csk_timer_bug_msg +EXPORT_SYMBOL vmlinux 0x0444fd81 dev_alloc_name +EXPORT_SYMBOL vmlinux 0x04482cdb __refrigerator +EXPORT_SYMBOL vmlinux 0x046c1f16 param_ops_invbool +EXPORT_SYMBOL vmlinux 0x0487f831 fb_find_best_display +EXPORT_SYMBOL vmlinux 0x0499c899 truncate_pagecache +EXPORT_SYMBOL vmlinux 0x04ac927c tcp_md5_do_del +EXPORT_SYMBOL vmlinux 0x04bd9644 stop_tty +EXPORT_SYMBOL vmlinux 0x04c6157e tty_insert_flip_string_fixed_flag +EXPORT_SYMBOL vmlinux 0x04cda566 snd_interval_refine +EXPORT_SYMBOL vmlinux 0x04cf740e thaw_super +EXPORT_SYMBOL vmlinux 0x04dd126b put_io_context +EXPORT_SYMBOL vmlinux 0x04ea56f9 _kstrtol +EXPORT_SYMBOL vmlinux 0x04f36836 devm_backlight_device_unregister +EXPORT_SYMBOL vmlinux 0x05240ee7 percpu_counter_batch +EXPORT_SYMBOL vmlinux 0x05420fa6 ipv6_getsockopt +EXPORT_SYMBOL vmlinux 0x054434d6 radix_tree_tag_set +EXPORT_SYMBOL vmlinux 0x056ee730 ipv6_hash_secret +EXPORT_SYMBOL vmlinux 0x057ce975 hex_dump_to_buffer +EXPORT_SYMBOL vmlinux 0x0593a99b init_timer_key +EXPORT_SYMBOL vmlinux 0x0597adad simple_empty +EXPORT_SYMBOL vmlinux 0x0598fc38 devfreq_resume_device +EXPORT_SYMBOL vmlinux 0x05a0c034 kill_pgrp +EXPORT_SYMBOL vmlinux 0x05dc8f10 xfrm_policy_delete +EXPORT_SYMBOL vmlinux 0x05dd3900 security_dentry_init_security +EXPORT_SYMBOL vmlinux 0x05e5a592 inet_sendmsg +EXPORT_SYMBOL vmlinux 0x05ed4686 snd_pcm_notify +EXPORT_SYMBOL vmlinux 0x05fb341b __blk_end_request_all +EXPORT_SYMBOL vmlinux 0x060493a5 fget_raw +EXPORT_SYMBOL vmlinux 0x061651be strcat +EXPORT_SYMBOL vmlinux 0x0620742b free_netdev +EXPORT_SYMBOL vmlinux 0x0624c534 pps_register_source +EXPORT_SYMBOL vmlinux 0x06304a6f qdisc_watchdog_schedule_ns +EXPORT_SYMBOL vmlinux 0x0634100a bitmap_parselist_user +EXPORT_SYMBOL vmlinux 0x06607f92 dss_feat_get_supported_outputs +EXPORT_SYMBOL vmlinux 0x06718ba4 bio_unmap_user +EXPORT_SYMBOL vmlinux 0x067d8d35 security_release_secctx +EXPORT_SYMBOL vmlinux 0x06ac3442 scsi_register_driver +EXPORT_SYMBOL vmlinux 0x06c8e8bf scsicam_bios_param +EXPORT_SYMBOL vmlinux 0x06f2093e tcp_proc_unregister +EXPORT_SYMBOL vmlinux 0x06fe3b14 default_grn +EXPORT_SYMBOL vmlinux 0x071b7eea irq_stat +EXPORT_SYMBOL vmlinux 0x07627cf1 snd_ctl_new1 +EXPORT_SYMBOL vmlinux 0x07703a10 mb_cache_destroy +EXPORT_SYMBOL vmlinux 0x0784f00f give_up_console +EXPORT_SYMBOL vmlinux 0x079280dc irq_set_chip +EXPORT_SYMBOL vmlinux 0x0799aca4 local_bh_enable +EXPORT_SYMBOL vmlinux 0x079b2df9 dev_notice +EXPORT_SYMBOL vmlinux 0x07a7268e __neigh_create +EXPORT_SYMBOL vmlinux 0x07a890c8 fb_alloc_cmap +EXPORT_SYMBOL vmlinux 0x07a910f1 dcb_getapp +EXPORT_SYMBOL vmlinux 0x07bd56f5 __nla_reserve_nohdr +EXPORT_SYMBOL vmlinux 0x07cc4a5d printk_timed_ratelimit +EXPORT_SYMBOL vmlinux 0x07cf9099 wait_for_completion_timeout +EXPORT_SYMBOL vmlinux 0x07e23abb blk_queue_stack_limits +EXPORT_SYMBOL vmlinux 0x07e8068c inet_twsk_deschedule +EXPORT_SYMBOL vmlinux 0x0803e0e4 serio_close +EXPORT_SYMBOL vmlinux 0x0804b794 rtnl_create_link +EXPORT_SYMBOL vmlinux 0x081f3afb complete_all +EXPORT_SYMBOL vmlinux 0x08216276 kobject_get +EXPORT_SYMBOL vmlinux 0x082c3213 pci_root_buses +EXPORT_SYMBOL vmlinux 0x082c7061 snd_ctl_remove +EXPORT_SYMBOL vmlinux 0x0839687c find_lock_page +EXPORT_SYMBOL vmlinux 0x083c2cbe of_get_next_parent +EXPORT_SYMBOL vmlinux 0x083eb21c rfkill_unregister +EXPORT_SYMBOL vmlinux 0x086f4efc release_firmware +EXPORT_SYMBOL vmlinux 0x088cf0c0 phy_device_free +EXPORT_SYMBOL vmlinux 0x08923a78 vfs_rmdir +EXPORT_SYMBOL vmlinux 0x08a89c93 __nla_put +EXPORT_SYMBOL vmlinux 0x08adaba2 scsi_free_command +EXPORT_SYMBOL vmlinux 0x08b9bbdb set_bdi_congested +EXPORT_SYMBOL vmlinux 0x08c01c89 simple_transaction_release +EXPORT_SYMBOL vmlinux 0x08dbe0bf call_netdevice_notifiers_info +EXPORT_SYMBOL vmlinux 0x08f5c794 mdiobus_scan +EXPORT_SYMBOL vmlinux 0x0910c955 skb_make_writable +EXPORT_SYMBOL vmlinux 0x092e2e2e dm_get_mapinfo +EXPORT_SYMBOL vmlinux 0x092eb6d6 jbd2_journal_destroy +EXPORT_SYMBOL vmlinux 0x0937817b dmam_pool_create +EXPORT_SYMBOL vmlinux 0x0941e5b1 sk_stop_timer +EXPORT_SYMBOL vmlinux 0x094223ed genl_unregister_ops +EXPORT_SYMBOL vmlinux 0x094a71df phy_ethtool_set_eee +EXPORT_SYMBOL vmlinux 0x095a7822 serio_unregister_driver +EXPORT_SYMBOL vmlinux 0x0969c3dc sock_no_bind +EXPORT_SYMBOL vmlinux 0x09796ff9 skb_dequeue_tail +EXPORT_SYMBOL vmlinux 0x098b71c6 fb_dealloc_cmap +EXPORT_SYMBOL vmlinux 0x09c55cec schedule_timeout_interruptible +EXPORT_SYMBOL vmlinux 0x09c8eb55 font_vga_8x16 +EXPORT_SYMBOL vmlinux 0x09cf1b46 proc_dointvec_jiffies +EXPORT_SYMBOL vmlinux 0x09d44df9 in_lock_functions +EXPORT_SYMBOL vmlinux 0x09e79c6a ndo_dflt_fdb_dump +EXPORT_SYMBOL vmlinux 0x09efef33 max8925_reg_read +EXPORT_SYMBOL vmlinux 0x09f11c80 xfrm_state_delete +EXPORT_SYMBOL vmlinux 0x0a0786de udplite_table +EXPORT_SYMBOL vmlinux 0x0a2487e0 unblock_all_signals +EXPORT_SYMBOL vmlinux 0x0a2520f2 scsi_is_target_device +EXPORT_SYMBOL vmlinux 0x0a3131f6 strnchr +EXPORT_SYMBOL vmlinux 0x0a360e75 snd_timer_global_new +EXPORT_SYMBOL vmlinux 0x0a3c9095 __invalidate_device +EXPORT_SYMBOL vmlinux 0x0a469d23 mfd_clone_cell +EXPORT_SYMBOL vmlinux 0x0a55cc59 sock_no_sendpage +EXPORT_SYMBOL vmlinux 0x0a5a88a1 input_set_abs_params +EXPORT_SYMBOL vmlinux 0x0a8358fd mmc_stop_bkops +EXPORT_SYMBOL vmlinux 0x0a85adc6 dev_mc_unsync +EXPORT_SYMBOL vmlinux 0x0a958ed4 down_write +EXPORT_SYMBOL vmlinux 0x0aa13d05 __raw_readsw +EXPORT_SYMBOL vmlinux 0x0aa70f00 tcp_get_md5sig_pool +EXPORT_SYMBOL vmlinux 0x0ab5e476 omapdss_find_mgr_from_display +EXPORT_SYMBOL vmlinux 0x0acb1a3c __bitmap_shift_right +EXPORT_SYMBOL vmlinux 0x0acf7679 dma_issue_pending_all +EXPORT_SYMBOL vmlinux 0x0adfab73 __wait_on_bit_lock +EXPORT_SYMBOL vmlinux 0x0b07f130 blk_execute_rq +EXPORT_SYMBOL vmlinux 0x0b0d888b icmpv6_err_convert +EXPORT_SYMBOL vmlinux 0x0b1beb31 vmalloc_32_user +EXPORT_SYMBOL vmlinux 0x0b266cd6 pci_set_dma_max_seg_size +EXPORT_SYMBOL vmlinux 0x0b48677a __kfifo_init +EXPORT_SYMBOL vmlinux 0x0b56117f of_find_node_by_path +EXPORT_SYMBOL vmlinux 0x0b58cb64 dcbnl_cee_notify +EXPORT_SYMBOL vmlinux 0x0b742fd7 simple_strtol +EXPORT_SYMBOL vmlinux 0x0b7f3d5c __dynamic_netdev_dbg +EXPORT_SYMBOL vmlinux 0x0b8077d4 xfrm_policy_register_afinfo +EXPORT_SYMBOL vmlinux 0x0bac1ed4 dev_warn +EXPORT_SYMBOL vmlinux 0x0bbc5908 gen_estimator_active +EXPORT_SYMBOL vmlinux 0x0bc477a2 irq_set_irq_type +EXPORT_SYMBOL vmlinux 0x0bf8e338 put_disk +EXPORT_SYMBOL vmlinux 0x0bfcd6da skb_flow_dissect +EXPORT_SYMBOL vmlinux 0x0bfd1cd5 dquot_scan_active +EXPORT_SYMBOL vmlinux 0x0c004f3a skb_recv_datagram +EXPORT_SYMBOL vmlinux 0x0c085bd8 blk_queue_update_dma_pad +EXPORT_SYMBOL vmlinux 0x0c17e672 pcie_port_service_unregister +EXPORT_SYMBOL vmlinux 0x0c23f508 tcp_md5_hash_key +EXPORT_SYMBOL vmlinux 0x0c2fd264 get_super +EXPORT_SYMBOL vmlinux 0x0c3dc2dc netdev_master_upper_dev_get_rcu +EXPORT_SYMBOL vmlinux 0x0c3fe841 dev_remove_offload +EXPORT_SYMBOL vmlinux 0x0c434a86 dm_kcopyd_copy +EXPORT_SYMBOL vmlinux 0x0c58a8cd netdev_increment_features +EXPORT_SYMBOL vmlinux 0x0c65e73c scsi_normalize_sense +EXPORT_SYMBOL vmlinux 0x0c7289ad request_key_with_auxdata +EXPORT_SYMBOL vmlinux 0x0c798bab inet_recvmsg +EXPORT_SYMBOL vmlinux 0x0c826134 mmc_erase_group_aligned +EXPORT_SYMBOL vmlinux 0x0c85b55a pci_vpd_truncate +EXPORT_SYMBOL vmlinux 0x0c8c9e99 scsi_show_extd_sense +EXPORT_SYMBOL vmlinux 0x0c9bf653 ppp_unregister_channel +EXPORT_SYMBOL vmlinux 0x0ca0c882 twl6030_interrupt_mask +EXPORT_SYMBOL vmlinux 0x0ca54fee _test_and_set_bit +EXPORT_SYMBOL vmlinux 0x0cae232b utf16s_to_utf8s +EXPORT_SYMBOL vmlinux 0x0cdd158d sg_alloc_table +EXPORT_SYMBOL vmlinux 0x0cfefe1e percpu_counter_destroy +EXPORT_SYMBOL vmlinux 0x0d0c7ae5 __find_get_block +EXPORT_SYMBOL vmlinux 0x0d29911d tty_driver_flush_buffer +EXPORT_SYMBOL vmlinux 0x0d3f57a2 _find_next_bit_le +EXPORT_SYMBOL vmlinux 0x0d41198c tcp_release_cb +EXPORT_SYMBOL vmlinux 0x0d4d7a32 _atomic_dec_and_lock +EXPORT_SYMBOL vmlinux 0x0d542439 __ipv6_addr_type +EXPORT_SYMBOL vmlinux 0x0d759f93 md_finish_reshape +EXPORT_SYMBOL vmlinux 0x0da10ec3 security_sock_graft +EXPORT_SYMBOL vmlinux 0x0daf2b3e locks_init_lock +EXPORT_SYMBOL vmlinux 0x0db79834 inode_init_owner +EXPORT_SYMBOL vmlinux 0x0dc137af sock_create_kern +EXPORT_SYMBOL vmlinux 0x0dfd4e23 tty_port_alloc_xmit_buf +EXPORT_SYMBOL vmlinux 0x0e271d44 sock_register +EXPORT_SYMBOL vmlinux 0x0e360650 contig_page_data +EXPORT_SYMBOL vmlinux 0x0e42505d cdrom_media_changed +EXPORT_SYMBOL vmlinux 0x0e45f114 sock_kfree_s +EXPORT_SYMBOL vmlinux 0x0e51c62f ethtool_op_get_link +EXPORT_SYMBOL vmlinux 0x0e674698 snd_pcm_release_substream +EXPORT_SYMBOL vmlinux 0x0e6da44a set_normalized_timespec +EXPORT_SYMBOL vmlinux 0x0e9b4dfb init_buffer +EXPORT_SYMBOL vmlinux 0x0eb693f5 snd_timer_resolution +EXPORT_SYMBOL vmlinux 0x0ec5337d do_splice_from +EXPORT_SYMBOL vmlinux 0x0ed50db3 dqput +EXPORT_SYMBOL vmlinux 0x0eeab47b dmam_alloc_coherent +EXPORT_SYMBOL vmlinux 0x0ef15fe0 bio_phys_segments +EXPORT_SYMBOL vmlinux 0x0f3a3932 path_is_under +EXPORT_SYMBOL vmlinux 0x0f3d7381 dst_destroy +EXPORT_SYMBOL vmlinux 0x0f4c91ed ns_to_timespec +EXPORT_SYMBOL vmlinux 0x0f566113 dma_common_get_sgtable +EXPORT_SYMBOL vmlinux 0x0f69b3e6 __xfrm_decode_session +EXPORT_SYMBOL vmlinux 0x0f714be7 unregister_exec_domain +EXPORT_SYMBOL vmlinux 0x0f8177c9 dev_loopback_xmit +EXPORT_SYMBOL vmlinux 0x0fa2a45e __memzero +EXPORT_SYMBOL vmlinux 0x0faef0ed __tasklet_schedule +EXPORT_SYMBOL vmlinux 0x0fb55cac __cleancache_get_page +EXPORT_SYMBOL vmlinux 0x0fb91e2b jbd2_journal_start_reserved +EXPORT_SYMBOL vmlinux 0x0fc1fe00 of_mm_gpiochip_add +EXPORT_SYMBOL vmlinux 0x0fef5e11 netpoll_rx_enable +EXPORT_SYMBOL vmlinux 0x0ff178f6 __aeabi_idivmod +EXPORT_SYMBOL vmlinux 0x0ff2b602 slhc_compress +EXPORT_SYMBOL vmlinux 0x1000d13e tcf_hash_lookup +EXPORT_SYMBOL vmlinux 0x1012cae6 genphy_update_link +EXPORT_SYMBOL vmlinux 0x10323572 bdi_destroy +EXPORT_SYMBOL vmlinux 0x10527cdd pci_release_regions +EXPORT_SYMBOL vmlinux 0x106f13ab crc_t10dif_generic +EXPORT_SYMBOL vmlinux 0x1072a394 csum_partial_copy_from_user +EXPORT_SYMBOL vmlinux 0x1091862f jbd2_journal_start_commit +EXPORT_SYMBOL vmlinux 0x10a7e993 ip_setsockopt +EXPORT_SYMBOL vmlinux 0x10bf0964 blk_bio_map_sg +EXPORT_SYMBOL vmlinux 0x10ee20bb default_blu +EXPORT_SYMBOL vmlinux 0x10fab09d pci_disable_ltr +EXPORT_SYMBOL vmlinux 0x11089ac7 _ctype +EXPORT_SYMBOL vmlinux 0x11227306 tcp_check_req +EXPORT_SYMBOL vmlinux 0x11267875 scsi_extd_sense_format +EXPORT_SYMBOL vmlinux 0x112748bd omap_vrfb_adjust_size +EXPORT_SYMBOL vmlinux 0x114264c7 dentry_open +EXPORT_SYMBOL vmlinux 0x1151dd24 kmem_cache_shrink +EXPORT_SYMBOL vmlinux 0x1163f0a7 blk_max_low_pfn +EXPORT_SYMBOL vmlinux 0x117093be qdisc_class_hash_init +EXPORT_SYMBOL vmlinux 0x11826322 tty_port_tty_set +EXPORT_SYMBOL vmlinux 0x119b50e7 elf_check_arch +EXPORT_SYMBOL vmlinux 0x11c9185c of_iomap +EXPORT_SYMBOL vmlinux 0x11e2ec12 flex_array_free_parts +EXPORT_SYMBOL vmlinux 0x11ee1203 kernel_sock_ioctl +EXPORT_SYMBOL vmlinux 0x11f7ed4c hex_to_bin +EXPORT_SYMBOL vmlinux 0x11fa978f padata_alloc_possible +EXPORT_SYMBOL vmlinux 0x12002c3f journal_wipe +EXPORT_SYMBOL vmlinux 0x120b336a __rb_insert_augmented +EXPORT_SYMBOL vmlinux 0x122043a8 of_find_node_with_property +EXPORT_SYMBOL vmlinux 0x122dbcbf do_splice_direct +EXPORT_SYMBOL vmlinux 0x124335d3 devfreq_interval_update +EXPORT_SYMBOL vmlinux 0x124b6315 dcb_ieee_delapp +EXPORT_SYMBOL vmlinux 0x1256b495 bdev_read_only +EXPORT_SYMBOL vmlinux 0x1295e6af ps2_init +EXPORT_SYMBOL vmlinux 0x12a38747 usleep_range +EXPORT_SYMBOL vmlinux 0x12da5bb2 __kmalloc +EXPORT_SYMBOL vmlinux 0x12e593a2 snd_pcm_hw_constraint_step +EXPORT_SYMBOL vmlinux 0x12e5d30d nobh_truncate_page +EXPORT_SYMBOL vmlinux 0x130a1e57 pci_request_regions_exclusive +EXPORT_SYMBOL vmlinux 0x13143f65 dma_async_memcpy_pg_to_pg +EXPORT_SYMBOL vmlinux 0x132252cd dquot_release +EXPORT_SYMBOL vmlinux 0x13307fde vsscanf +EXPORT_SYMBOL vmlinux 0x133cc9ba setattr_copy +EXPORT_SYMBOL vmlinux 0x1359f545 snd_ctl_free_one +EXPORT_SYMBOL vmlinux 0x1379a551 omap_dss_get_overlay +EXPORT_SYMBOL vmlinux 0x13a8ab2f skb_find_text +EXPORT_SYMBOL vmlinux 0x13b4386f fsnotify_destroy_mark +EXPORT_SYMBOL vmlinux 0x13b715e2 blk_finish_plug +EXPORT_SYMBOL vmlinux 0x13d0adf7 __kfifo_out +EXPORT_SYMBOL vmlinux 0x14027b8b bio_endio +EXPORT_SYMBOL vmlinux 0x1403b0fe dcache_readdir +EXPORT_SYMBOL vmlinux 0x14099638 blk_integrity_compare +EXPORT_SYMBOL vmlinux 0x1420b379 kstrtou16_from_user +EXPORT_SYMBOL vmlinux 0x142b8b4d __xfrm_state_delete +EXPORT_SYMBOL vmlinux 0x145bd7f6 __devm_request_region +EXPORT_SYMBOL vmlinux 0x145decd5 account_page_writeback +EXPORT_SYMBOL vmlinux 0x1461e87f get_io_context +EXPORT_SYMBOL vmlinux 0x147ab717 snd_pcm_new +EXPORT_SYMBOL vmlinux 0x147e911a phys_mem_access_prot +EXPORT_SYMBOL vmlinux 0x147fd4a2 journal_lock_updates +EXPORT_SYMBOL vmlinux 0x1480beed tc_classify +EXPORT_SYMBOL vmlinux 0x148b79cb pci_scan_bus_parented +EXPORT_SYMBOL vmlinux 0x14a5bd09 abx500_remove_ops +EXPORT_SYMBOL vmlinux 0x14ba0c5a i2c_smbus_write_byte +EXPORT_SYMBOL vmlinux 0x14c507df devm_clk_get +EXPORT_SYMBOL vmlinux 0x14d4a9c5 _change_bit +EXPORT_SYMBOL vmlinux 0x14f92c86 sock_get_timestamp +EXPORT_SYMBOL vmlinux 0x153d0e46 tcp_simple_retransmit +EXPORT_SYMBOL vmlinux 0x15448c20 scsi_unregister +EXPORT_SYMBOL vmlinux 0x154c6338 dm_kcopyd_client_destroy +EXPORT_SYMBOL vmlinux 0x1551dc51 bitmap_find_free_region +EXPORT_SYMBOL vmlinux 0x1563f177 input_handler_for_each_handle +EXPORT_SYMBOL vmlinux 0x15692c87 param_ops_int +EXPORT_SYMBOL vmlinux 0x158bc701 pci_bus_set_ops +EXPORT_SYMBOL vmlinux 0x1594905a kunmap_high +EXPORT_SYMBOL vmlinux 0x15b9125f hdmi_avi_infoframe_pack +EXPORT_SYMBOL vmlinux 0x15be55e3 __tty_alloc_driver +EXPORT_SYMBOL vmlinux 0x15f49587 dev_get_stats +EXPORT_SYMBOL vmlinux 0x15f571ec blk_set_stacking_limits +EXPORT_SYMBOL vmlinux 0x16068ae0 bdi_register +EXPORT_SYMBOL vmlinux 0x16083699 pci_find_next_bus +EXPORT_SYMBOL vmlinux 0x160c7cee scsi_add_host_with_dma +EXPORT_SYMBOL vmlinux 0x160d8bc9 buffer_migrate_page +EXPORT_SYMBOL vmlinux 0x162ccc0c lg_local_lock +EXPORT_SYMBOL vmlinux 0x162ea85f jbd2_complete_transaction +EXPORT_SYMBOL vmlinux 0x162fe4ea tcp_v4_do_rcv +EXPORT_SYMBOL vmlinux 0x16305289 warn_slowpath_null +EXPORT_SYMBOL vmlinux 0x163d3165 dev_change_flags +EXPORT_SYMBOL vmlinux 0x16578f02 mmc_try_claim_host +EXPORT_SYMBOL vmlinux 0x1678219c ip_mc_join_group +EXPORT_SYMBOL vmlinux 0x167d7be2 nf_log_packet +EXPORT_SYMBOL vmlinux 0x1687a791 generic_file_splice_write +EXPORT_SYMBOL vmlinux 0x16b43974 prepare_binprm +EXPORT_SYMBOL vmlinux 0x16d37e2d mutex_unlock +EXPORT_SYMBOL vmlinux 0x16fb88d7 phy_get_eee_err +EXPORT_SYMBOL vmlinux 0x170e1dba register_nls +EXPORT_SYMBOL vmlinux 0x1718eae9 inet_frag_maybe_warn_overflow +EXPORT_SYMBOL vmlinux 0x1747914f sk_wait_data +EXPORT_SYMBOL vmlinux 0x17506286 pcim_iomap_regions_request_all +EXPORT_SYMBOL vmlinux 0x1771d083 try_to_writeback_inodes_sb_nr +EXPORT_SYMBOL vmlinux 0x179dea46 pci_scan_bus +EXPORT_SYMBOL vmlinux 0x17a142df __copy_from_user +EXPORT_SYMBOL vmlinux 0x17b1125d gen_kill_estimator +EXPORT_SYMBOL vmlinux 0x17b2bbf4 __destroy_inode +EXPORT_SYMBOL vmlinux 0x17b98af3 jbd2_journal_load +EXPORT_SYMBOL vmlinux 0x17d101c1 __brelse +EXPORT_SYMBOL vmlinux 0x17db71b0 dev_mc_add +EXPORT_SYMBOL vmlinux 0x17ff9deb kunmap +EXPORT_SYMBOL vmlinux 0x1808574c _dev_info +EXPORT_SYMBOL vmlinux 0x1826f089 __tracepoint_kmem_cache_alloc_node +EXPORT_SYMBOL vmlinux 0x183d4777 snd_pcm_period_elapsed +EXPORT_SYMBOL vmlinux 0x183fa88b mempool_alloc_slab +EXPORT_SYMBOL vmlinux 0x18468201 disk_stack_limits +EXPORT_SYMBOL vmlinux 0x184b82fb mmc_vddrange_to_ocrmask +EXPORT_SYMBOL vmlinux 0x184e6c85 radix_tree_gang_lookup_slot +EXPORT_SYMBOL vmlinux 0x1850e327 dst_alloc +EXPORT_SYMBOL vmlinux 0x18539bc8 napi_gro_flush +EXPORT_SYMBOL vmlinux 0x1865138d snd_card_set_id +EXPORT_SYMBOL vmlinux 0x187ac267 omapdss_unregister_output +EXPORT_SYMBOL vmlinux 0x188a3dfb timespec_trunc +EXPORT_SYMBOL vmlinux 0x188af8e2 snd_pcm_lib_malloc_pages +EXPORT_SYMBOL vmlinux 0x189868d7 get_random_bytes_arch +EXPORT_SYMBOL vmlinux 0x18a72b1c scsi_prep_state_check +EXPORT_SYMBOL vmlinux 0x18bd76a4 _raw_spin_trylock +EXPORT_SYMBOL vmlinux 0x18c2227f cpu_rmap_update +EXPORT_SYMBOL vmlinux 0x18f27b9d simple_release_fs +EXPORT_SYMBOL vmlinux 0x18f78568 vc_cons +EXPORT_SYMBOL vmlinux 0x18ff9ff3 __serio_register_driver +EXPORT_SYMBOL vmlinux 0x1903a77d snd_pcm_lib_write +EXPORT_SYMBOL vmlinux 0x190622db blkdev_issue_zeroout +EXPORT_SYMBOL vmlinux 0x190c8031 security_inode_setsecctx +EXPORT_SYMBOL vmlinux 0x194920eb serial8250_do_pm +EXPORT_SYMBOL vmlinux 0x195a517a generic_file_mmap +EXPORT_SYMBOL vmlinux 0x19610e1f cpu_all_bits +EXPORT_SYMBOL vmlinux 0x1975e0ab sb_set_blocksize +EXPORT_SYMBOL vmlinux 0x197623d3 follow_pfn +EXPORT_SYMBOL vmlinux 0x1976aa06 param_ops_bool +EXPORT_SYMBOL vmlinux 0x197dc3b3 omap_set_dma_src_burst_mode +EXPORT_SYMBOL vmlinux 0x199ed0cd net_disable_timestamp +EXPORT_SYMBOL vmlinux 0x19bd383b security_secmark_refcount_dec +EXPORT_SYMBOL vmlinux 0x19bf94ab uart_suspend_port +EXPORT_SYMBOL vmlinux 0x19c0d927 dqget +EXPORT_SYMBOL vmlinux 0x19d40b5f journal_revoke +EXPORT_SYMBOL vmlinux 0x19f5809b dm_ratelimit_state +EXPORT_SYMBOL vmlinux 0x1a20c540 omap_vrfb_supported +EXPORT_SYMBOL vmlinux 0x1a5b14c1 kernel_recvmsg +EXPORT_SYMBOL vmlinux 0x1a65f4ad __arm_ioremap_pfn +EXPORT_SYMBOL vmlinux 0x1a6da9d4 redirty_page_for_writepage +EXPORT_SYMBOL vmlinux 0x1a9b6be4 bdi_set_max_ratio +EXPORT_SYMBOL vmlinux 0x1ac5606d scsi_report_opcode +EXPORT_SYMBOL vmlinux 0x1ac5b360 netdev_warn +EXPORT_SYMBOL vmlinux 0x1ace138d bitmap_allocate_region +EXPORT_SYMBOL vmlinux 0x1ad1e4e2 register_quota_format +EXPORT_SYMBOL vmlinux 0x1ad1f2e7 _memcpy_fromio +EXPORT_SYMBOL vmlinux 0x1ae49cd8 ppp_input_error +EXPORT_SYMBOL vmlinux 0x1ae5db2a abx500_get_register_page_interruptible +EXPORT_SYMBOL vmlinux 0x1ae77c2c find_get_pages_contig +EXPORT_SYMBOL vmlinux 0x1aeb039f snd_power_wait +EXPORT_SYMBOL vmlinux 0x1b015d25 bitmap_parselist +EXPORT_SYMBOL vmlinux 0x1b0ac272 __tracepoint_kmalloc_node +EXPORT_SYMBOL vmlinux 0x1b19a7b5 lz4_decompress +EXPORT_SYMBOL vmlinux 0x1b1ef45e security_sb_set_mnt_opts +EXPORT_SYMBOL vmlinux 0x1b336d9a snd_ctl_notify +EXPORT_SYMBOL vmlinux 0x1b5c3012 dev_uc_init +EXPORT_SYMBOL vmlinux 0x1b5e864d I_BDEV +EXPORT_SYMBOL vmlinux 0x1b5fe052 xfrm_init_state +EXPORT_SYMBOL vmlinux 0x1b6314fd in_aton +EXPORT_SYMBOL vmlinux 0x1b7226eb block_write_full_page +EXPORT_SYMBOL vmlinux 0x1b82fefa md_unplug +EXPORT_SYMBOL vmlinux 0x1b86677c default_llseek +EXPORT_SYMBOL vmlinux 0x1b9e0ff1 scsilun_to_int +EXPORT_SYMBOL vmlinux 0x1bb6cc52 xfrm_alloc_spi +EXPORT_SYMBOL vmlinux 0x1bca1718 find_get_pages_tag +EXPORT_SYMBOL vmlinux 0x1bcfc9be km_query +EXPORT_SYMBOL vmlinux 0x1bef64dd pfifo_qdisc_ops +EXPORT_SYMBOL vmlinux 0x1c00e910 scm_fp_dup +EXPORT_SYMBOL vmlinux 0x1c294768 snd_jack_set_key +EXPORT_SYMBOL vmlinux 0x1c39751a dss_mgr_disconnect +EXPORT_SYMBOL vmlinux 0x1c3d847e pm860x_page_bulk_read +EXPORT_SYMBOL vmlinux 0x1c5e3878 icst525_idx2s +EXPORT_SYMBOL vmlinux 0x1c6b98c5 tty_port_carrier_raised +EXPORT_SYMBOL vmlinux 0x1c6e94d8 sk_stream_kill_queues +EXPORT_SYMBOL vmlinux 0x1c928a0e __neigh_event_send +EXPORT_SYMBOL vmlinux 0x1ca50a35 start_tty +EXPORT_SYMBOL vmlinux 0x1ca62b8e try_to_free_buffers +EXPORT_SYMBOL vmlinux 0x1cd80216 nla_reserve +EXPORT_SYMBOL vmlinux 0x1cfb04fa finish_wait +EXPORT_SYMBOL vmlinux 0x1cfe5936 blk_sync_queue +EXPORT_SYMBOL vmlinux 0x1cff18a5 d_path +EXPORT_SYMBOL vmlinux 0x1d027e4b snd_pcm_format_signed +EXPORT_SYMBOL vmlinux 0x1d1e09c8 devm_free_irq +EXPORT_SYMBOL vmlinux 0x1d3e8474 vm_insert_pfn +EXPORT_SYMBOL vmlinux 0x1d549bad tcp_md5_hash_skb_data +EXPORT_SYMBOL vmlinux 0x1d80b369 genl_unregister_mc_group +EXPORT_SYMBOL vmlinux 0x1d82d78a tcp_setsockopt +EXPORT_SYMBOL vmlinux 0x1d9bd235 cdrom_mode_sense +EXPORT_SYMBOL vmlinux 0x1daac490 clocksource_unregister +EXPORT_SYMBOL vmlinux 0x1db7dc40 pgprot_kernel +EXPORT_SYMBOL vmlinux 0x1dc36131 fb_destroy_modedb +EXPORT_SYMBOL vmlinux 0x1dce1125 vm_map_ram +EXPORT_SYMBOL vmlinux 0x1dd392f6 security_mmap_file +EXPORT_SYMBOL vmlinux 0x1dd571e6 fb_copy_cmap +EXPORT_SYMBOL vmlinux 0x1df602f2 framebuffer_release +EXPORT_SYMBOL vmlinux 0x1e047854 warn_slowpath_fmt +EXPORT_SYMBOL vmlinux 0x1e0a7bbe ppp_dev_name +EXPORT_SYMBOL vmlinux 0x1e21be36 phy_device_register +EXPORT_SYMBOL vmlinux 0x1e26be3b get_anon_bdev +EXPORT_SYMBOL vmlinux 0x1e2fa939 twl6040_set_bits +EXPORT_SYMBOL vmlinux 0x1e6085ae qdisc_warn_nonwc +EXPORT_SYMBOL vmlinux 0x1e6d26a8 strstr +EXPORT_SYMBOL vmlinux 0x1e8d6f3a neigh_seq_stop +EXPORT_SYMBOL vmlinux 0x1e935440 dev_uc_add +EXPORT_SYMBOL vmlinux 0x1e9edfb7 seq_hlist_start_head_rcu +EXPORT_SYMBOL vmlinux 0x1ea06663 _raw_write_lock +EXPORT_SYMBOL vmlinux 0x1ead105f scsi_cmd_print_sense_hdr +EXPORT_SYMBOL vmlinux 0x1ec3bed9 hdmi_audio_infoframe_init +EXPORT_SYMBOL vmlinux 0x1ec4eb34 flex_array_prealloc +EXPORT_SYMBOL vmlinux 0x1eda0408 datagram_poll +EXPORT_SYMBOL vmlinux 0x1eeb848e __percpu_counter_sum +EXPORT_SYMBOL vmlinux 0x1f0505f9 tty_port_init +EXPORT_SYMBOL vmlinux 0x1f263105 elv_unregister_queue +EXPORT_SYMBOL vmlinux 0x1f27fb19 dmam_free_coherent +EXPORT_SYMBOL vmlinux 0x1f2f285d input_flush_device +EXPORT_SYMBOL vmlinux 0x1f34c368 pci_bus_size_bridges +EXPORT_SYMBOL vmlinux 0x1f478ee2 set_create_files_as +EXPORT_SYMBOL vmlinux 0x1f655905 cpu_user +EXPORT_SYMBOL vmlinux 0x1f7e807f kstrtoint_from_user +EXPORT_SYMBOL vmlinux 0x1f8c26e2 pci_set_ltr +EXPORT_SYMBOL vmlinux 0x1f8ed089 sys_copyarea +EXPORT_SYMBOL vmlinux 0x1f8f4232 sk_release_kernel +EXPORT_SYMBOL vmlinux 0x1fa2f720 mmc_gpio_get_ro +EXPORT_SYMBOL vmlinux 0x1fab5905 wait_for_completion +EXPORT_SYMBOL vmlinux 0x1fbd16da ip_tos2prio +EXPORT_SYMBOL vmlinux 0x1fcf4d4b _raw_read_unlock_bh +EXPORT_SYMBOL vmlinux 0x1fd07fff kdb_grepping_flag +EXPORT_SYMBOL vmlinux 0x1fd9cb39 jbd2_journal_begin_ordered_truncate +EXPORT_SYMBOL vmlinux 0x1fe912f1 netdev_alloc_frag +EXPORT_SYMBOL vmlinux 0x1fe9f800 unregister_cpu_notifier +EXPORT_SYMBOL vmlinux 0x1ff1fbc7 md_write_end +EXPORT_SYMBOL vmlinux 0x20000329 simple_strtoul +EXPORT_SYMBOL vmlinux 0x20075d6e pci_save_state +EXPORT_SYMBOL vmlinux 0x20421305 on_each_cpu_mask +EXPORT_SYMBOL vmlinux 0x204363ca mnt_pin +EXPORT_SYMBOL vmlinux 0x204c19f5 tcp_alloc_md5sig_pool +EXPORT_SYMBOL vmlinux 0x205ec8de omap_dispc_register_isr +EXPORT_SYMBOL vmlinux 0x2062341d dss_mgr_set_timings +EXPORT_SYMBOL vmlinux 0x2072ee9b request_threaded_irq +EXPORT_SYMBOL vmlinux 0x2097a1c1 uart_register_driver +EXPORT_SYMBOL vmlinux 0x20a789ac irq_set_chip_data +EXPORT_SYMBOL vmlinux 0x20a86b3f of_get_pci_address +EXPORT_SYMBOL vmlinux 0x20c37faa no_llseek +EXPORT_SYMBOL vmlinux 0x20c55ae0 sscanf +EXPORT_SYMBOL vmlinux 0x20ce626a eth_validate_addr +EXPORT_SYMBOL vmlinux 0x20df2681 ida_simple_remove +EXPORT_SYMBOL vmlinux 0x20e63606 __elv_add_request +EXPORT_SYMBOL vmlinux 0x20ea4812 phy_connect +EXPORT_SYMBOL vmlinux 0x20edf14d dma_pool_create +EXPORT_SYMBOL vmlinux 0x210f9c0d uart_resume_port +EXPORT_SYMBOL vmlinux 0x211331fa __divsi3 +EXPORT_SYMBOL vmlinux 0x2114b0a5 scsi_track_queue_full +EXPORT_SYMBOL vmlinux 0x212d1762 mmc_can_trim +EXPORT_SYMBOL vmlinux 0x21315700 param_get_bool +EXPORT_SYMBOL vmlinux 0x2151743a i2c_smbus_read_i2c_block_data +EXPORT_SYMBOL vmlinux 0x215ebd78 bitrev16 +EXPORT_SYMBOL vmlinux 0x216876fa scsi_calculate_bounce_limit +EXPORT_SYMBOL vmlinux 0x217dda13 flex_array_get +EXPORT_SYMBOL vmlinux 0x21915d75 tcp_connect +EXPORT_SYMBOL vmlinux 0x21a0f272 netlink_set_err +EXPORT_SYMBOL vmlinux 0x21ad64f3 file_sb_list_del +EXPORT_SYMBOL vmlinux 0x21cd0637 dma_find_channel +EXPORT_SYMBOL vmlinux 0x21da8505 noop_fsync +EXPORT_SYMBOL vmlinux 0x22014c40 inet_frags_init +EXPORT_SYMBOL vmlinux 0x2208bd9a mutex_lock_killable +EXPORT_SYMBOL vmlinux 0x2226e8b7 __module_get +EXPORT_SYMBOL vmlinux 0x222e7ce2 sysfs_streq +EXPORT_SYMBOL vmlinux 0x222fa684 lg_global_lock +EXPORT_SYMBOL vmlinux 0x2232a8a5 mempool_free +EXPORT_SYMBOL vmlinux 0x223cc898 omap_vrfb_max_height +EXPORT_SYMBOL vmlinux 0x22446c42 PDE_DATA +EXPORT_SYMBOL vmlinux 0x224c011d nand_flash_ids +EXPORT_SYMBOL vmlinux 0x2256c112 key_instantiate_and_link +EXPORT_SYMBOL vmlinux 0x2276db98 kstrtoint +EXPORT_SYMBOL vmlinux 0x2283029a padata_set_cpumask +EXPORT_SYMBOL vmlinux 0x22830711 edma_clear_event +EXPORT_SYMBOL vmlinux 0x228e9f2b mmc_can_reset +EXPORT_SYMBOL vmlinux 0x228fe757 search_binary_handler +EXPORT_SYMBOL vmlinux 0x229ba216 tcf_em_tree_destroy +EXPORT_SYMBOL vmlinux 0x22b325d5 kd_mksound +EXPORT_SYMBOL vmlinux 0x22ba7e83 mnt_unpin +EXPORT_SYMBOL vmlinux 0x22d10ad3 sk_common_release +EXPORT_SYMBOL vmlinux 0x22dc9ce4 linkwatch_fire_event +EXPORT_SYMBOL vmlinux 0x22e1ae6f up_read +EXPORT_SYMBOL vmlinux 0x22f68e42 skb_queue_purge +EXPORT_SYMBOL vmlinux 0x22fd2a74 __alloc_skb +EXPORT_SYMBOL vmlinux 0x23108b7a bio_map_user +EXPORT_SYMBOL vmlinux 0x231c39ec input_register_handler +EXPORT_SYMBOL vmlinux 0x231d4001 fb_edid_add_monspecs +EXPORT_SYMBOL vmlinux 0x23318bb5 jbd2_journal_init_inode +EXPORT_SYMBOL vmlinux 0x23532c4d ftrace_print_flags_seq +EXPORT_SYMBOL vmlinux 0x235334db tcp_prot +EXPORT_SYMBOL vmlinux 0x235492f3 d_prune_aliases +EXPORT_SYMBOL vmlinux 0x2363a880 snd_pcm_hw_rule_add +EXPORT_SYMBOL vmlinux 0x2382af35 release_pages +EXPORT_SYMBOL vmlinux 0x23858636 blk_start_queue +EXPORT_SYMBOL vmlinux 0x23a574fd security_secmark_relabel_packet +EXPORT_SYMBOL vmlinux 0x23b9d6e2 mangle_path +EXPORT_SYMBOL vmlinux 0x23bc7a93 fib_default_rule_pref +EXPORT_SYMBOL vmlinux 0x23c8f257 slhc_uncompress +EXPORT_SYMBOL vmlinux 0x23dba0fa sound_class +EXPORT_SYMBOL vmlinux 0x23ec7704 blk_queue_max_discard_sectors +EXPORT_SYMBOL vmlinux 0x23fd3028 vmalloc_node +EXPORT_SYMBOL vmlinux 0x2405a00e unregister_console +EXPORT_SYMBOL vmlinux 0x24069792 proc_symlink +EXPORT_SYMBOL vmlinux 0x2417cf1f __ip_dev_find +EXPORT_SYMBOL vmlinux 0x2420782c set_page_dirty_lock +EXPORT_SYMBOL vmlinux 0x24212d86 __frontswap_invalidate_page +EXPORT_SYMBOL vmlinux 0x24428be5 strncpy_from_user +EXPORT_SYMBOL vmlinux 0x245205c6 of_get_min_tck +EXPORT_SYMBOL vmlinux 0x2459bbcc console_set_on_cmdline +EXPORT_SYMBOL vmlinux 0x2482e688 vsprintf +EXPORT_SYMBOL vmlinux 0x24869d12 ilookup5 +EXPORT_SYMBOL vmlinux 0x24a94b26 snd_info_get_line +EXPORT_SYMBOL vmlinux 0x24b0f90c of_clk_get_by_name +EXPORT_SYMBOL vmlinux 0x24d7b4eb cancel_delayed_work_sync +EXPORT_SYMBOL vmlinux 0x24d8dd77 neigh_update +EXPORT_SYMBOL vmlinux 0x24f4d3c9 vga_set_legacy_decoding +EXPORT_SYMBOL vmlinux 0x24fdac79 wake_bit_function +EXPORT_SYMBOL vmlinux 0x250113b4 memory_read_from_buffer +EXPORT_SYMBOL vmlinux 0x250db525 mmc_interrupt_hpi +EXPORT_SYMBOL vmlinux 0x25277497 rfkill_register +EXPORT_SYMBOL vmlinux 0x253bdb78 param_get_int +EXPORT_SYMBOL vmlinux 0x2541c5d2 blk_queue_softirq_done +EXPORT_SYMBOL vmlinux 0x25540332 inode_sb_list_lock +EXPORT_SYMBOL vmlinux 0x255666f7 blk_queue_alignment_offset +EXPORT_SYMBOL vmlinux 0x255a910b __frontswap_store +EXPORT_SYMBOL vmlinux 0x25820c64 fs_overflowuid +EXPORT_SYMBOL vmlinux 0x259fbc5c omapdss_register_display +EXPORT_SYMBOL vmlinux 0x25c677c4 mac_pton +EXPORT_SYMBOL vmlinux 0x25cd47e4 dma_sync_wait +EXPORT_SYMBOL vmlinux 0x25ee1678 atomic_dec_and_mutex_lock +EXPORT_SYMBOL vmlinux 0x25f673fc gen_replace_estimator +EXPORT_SYMBOL vmlinux 0x25fef46e dec_zone_page_state +EXPORT_SYMBOL vmlinux 0x260cf8f8 of_get_property +EXPORT_SYMBOL vmlinux 0x260f0b03 save_mount_options +EXPORT_SYMBOL vmlinux 0x263beb75 ecryptfs_get_versions +EXPORT_SYMBOL vmlinux 0x263d0751 init_special_inode +EXPORT_SYMBOL vmlinux 0x264792d3 snd_dma_alloc_pages_fallback +EXPORT_SYMBOL vmlinux 0x2650d835 sysctl_ip_early_demux +EXPORT_SYMBOL vmlinux 0x265b0396 sock_create_lite +EXPORT_SYMBOL vmlinux 0x26637b08 __bread +EXPORT_SYMBOL vmlinux 0x267028c8 inet_proto_csum_replace4 +EXPORT_SYMBOL vmlinux 0x2676111b scsi_command_normalize_sense +EXPORT_SYMBOL vmlinux 0x2694cfc7 finish_no_open +EXPORT_SYMBOL vmlinux 0x26a33e99 jbd2_journal_invalidatepage +EXPORT_SYMBOL vmlinux 0x26bb950b __kfifo_from_user_r +EXPORT_SYMBOL vmlinux 0x26cb2ff0 scsi_unblock_requests +EXPORT_SYMBOL vmlinux 0x26e559b5 lro_flush_pkt +EXPORT_SYMBOL vmlinux 0x26e76fb8 sysctl_udp_wmem_min +EXPORT_SYMBOL vmlinux 0x26e97af5 blkdev_fsync +EXPORT_SYMBOL vmlinux 0x26f0453a blk_set_default_limits +EXPORT_SYMBOL vmlinux 0x26f47d26 netpoll_print_options +EXPORT_SYMBOL vmlinux 0x26f5df1f xfrm_stateonly_find +EXPORT_SYMBOL vmlinux 0x26f8c316 omapdss_sdi_set_timings +EXPORT_SYMBOL vmlinux 0x26f8d1be try_to_writeback_inodes_sb +EXPORT_SYMBOL vmlinux 0x275ef902 __init_waitqueue_head +EXPORT_SYMBOL vmlinux 0x2773390b __scsi_device_lookup_by_target +EXPORT_SYMBOL vmlinux 0x27775734 pci_bus_read_config_dword +EXPORT_SYMBOL vmlinux 0x277cd680 qdisc_list_del +EXPORT_SYMBOL vmlinux 0x27864d57 memparse +EXPORT_SYMBOL vmlinux 0x27bbf221 disable_irq_nosync +EXPORT_SYMBOL vmlinux 0x27c2197f param_set_short +EXPORT_SYMBOL vmlinux 0x27cd4a2e mmc_hw_reset +EXPORT_SYMBOL vmlinux 0x27e0a2c8 vlan_uses_dev +EXPORT_SYMBOL vmlinux 0x27e1a049 printk +EXPORT_SYMBOL vmlinux 0x27fee505 mmc_start_bkops +EXPORT_SYMBOL vmlinux 0x28118cb6 __get_user_1 +EXPORT_SYMBOL vmlinux 0x281823c5 __kfifo_out_peek +EXPORT_SYMBOL vmlinux 0x2825e9a4 seq_bitmap +EXPORT_SYMBOL vmlinux 0x283c148f tty_unregister_device +EXPORT_SYMBOL vmlinux 0x2844c412 __page_symlink +EXPORT_SYMBOL vmlinux 0x284c3f11 tty_port_close_start +EXPORT_SYMBOL vmlinux 0x2850ec5e bio_clone_bioset +EXPORT_SYMBOL vmlinux 0x286ac46a md_set_array_sectors +EXPORT_SYMBOL vmlinux 0x2882c2e9 mmc_put_card +EXPORT_SYMBOL vmlinux 0x28947cc9 tcf_action_exec +EXPORT_SYMBOL vmlinux 0x28a0c867 free_buffer_head +EXPORT_SYMBOL vmlinux 0x28a2ed02 scsi_build_sense_buffer +EXPORT_SYMBOL vmlinux 0x28b3f322 tcp_rcv_established +EXPORT_SYMBOL vmlinux 0x28bca93d keyring_search +EXPORT_SYMBOL vmlinux 0x28c6bcec pcibios_resource_to_bus +EXPORT_SYMBOL vmlinux 0x28d6861d __vmalloc +EXPORT_SYMBOL vmlinux 0x28eb7d16 __get_user_pages +EXPORT_SYMBOL vmlinux 0x29179aee __nla_put_nohdr +EXPORT_SYMBOL vmlinux 0x292e48bd scsi_host_alloc +EXPORT_SYMBOL vmlinux 0x2935660f pm860x_page_reg_read +EXPORT_SYMBOL vmlinux 0x29537c9e alloc_chrdev_region +EXPORT_SYMBOL vmlinux 0x29684d31 __scsi_add_device +EXPORT_SYMBOL vmlinux 0x296be7dc seq_write +EXPORT_SYMBOL vmlinux 0x29b3d28a write_dirty_buffer +EXPORT_SYMBOL vmlinux 0x29baff70 ida_remove +EXPORT_SYMBOL vmlinux 0x29c76b58 pci_enable_ido +EXPORT_SYMBOL vmlinux 0x29ca4ca2 scsi_print_sense +EXPORT_SYMBOL vmlinux 0x29ddd667 __pagevec_release +EXPORT_SYMBOL vmlinux 0x29f6cb7c phy_driver_unregister +EXPORT_SYMBOL vmlinux 0x29fdda53 kstrtos8_from_user +EXPORT_SYMBOL vmlinux 0x2a0323c3 alloc_disk +EXPORT_SYMBOL vmlinux 0x2a0fe8bf qdisc_watchdog_init +EXPORT_SYMBOL vmlinux 0x2a1f4c82 dquot_mark_dquot_dirty +EXPORT_SYMBOL vmlinux 0x2a303d4d check_signature +EXPORT_SYMBOL vmlinux 0x2a31f5f6 inode_permission +EXPORT_SYMBOL vmlinux 0x2a3aa678 _test_and_clear_bit +EXPORT_SYMBOL vmlinux 0x2a4fabcf videomode_to_omap_video_timings +EXPORT_SYMBOL vmlinux 0x2a54a415 xfrm_spd_getinfo +EXPORT_SYMBOL vmlinux 0x2a77eab0 dev_get_flags +EXPORT_SYMBOL vmlinux 0x2a79ac13 clkdev_add +EXPORT_SYMBOL vmlinux 0x2a7cac99 pci_add_resource +EXPORT_SYMBOL vmlinux 0x2a9a29b1 jbd2_journal_revoke +EXPORT_SYMBOL vmlinux 0x2aa0e4fc strncasecmp +EXPORT_SYMBOL vmlinux 0x2aa1ad41 _raw_write_lock_irq +EXPORT_SYMBOL vmlinux 0x2ab430f5 register_framebuffer +EXPORT_SYMBOL vmlinux 0x2ac6193b __kfifo_dma_out_prepare_r +EXPORT_SYMBOL vmlinux 0x2adbe247 padata_remove_cpu +EXPORT_SYMBOL vmlinux 0x2ae90ebf setup_arg_pages +EXPORT_SYMBOL vmlinux 0x2aec945d jbd2_trans_will_send_data_barrier +EXPORT_SYMBOL vmlinux 0x2af991c4 pci_release_selected_regions +EXPORT_SYMBOL vmlinux 0x2b0ba2b0 scsi_sense_desc_find +EXPORT_SYMBOL vmlinux 0x2b12925d cpumask_next_and +EXPORT_SYMBOL vmlinux 0x2b16104b __tcf_em_tree_match +EXPORT_SYMBOL vmlinux 0x2b2ce78b kstrtos8 +EXPORT_SYMBOL vmlinux 0x2b4d9de7 key_link +EXPORT_SYMBOL vmlinux 0x2b4e956e mempool_create +EXPORT_SYMBOL vmlinux 0x2b690df8 iov_iter_copy_from_user_atomic +EXPORT_SYMBOL vmlinux 0x2b7d6d5a scsi_host_lookup +EXPORT_SYMBOL vmlinux 0x2b9da7a4 genl_lock +EXPORT_SYMBOL vmlinux 0x2ba707a8 sysctl_tcp_low_latency +EXPORT_SYMBOL vmlinux 0x2bafe0bf unregister_quota_format +EXPORT_SYMBOL vmlinux 0x2bc17cd0 seq_vprintf +EXPORT_SYMBOL vmlinux 0x2bdf38dc devm_request_threaded_irq +EXPORT_SYMBOL vmlinux 0x2be0f12d dql_completed +EXPORT_SYMBOL vmlinux 0x2be4c7b3 blk_end_request +EXPORT_SYMBOL vmlinux 0x2be9b93a scsi_prep_return +EXPORT_SYMBOL vmlinux 0x2c0e5cfa elevator_init +EXPORT_SYMBOL vmlinux 0x2c14323a kstrtol_from_user +EXPORT_SYMBOL vmlinux 0x2c1940bb eth_type_trans +EXPORT_SYMBOL vmlinux 0x2c256e1f input_scancode_to_scalar +EXPORT_SYMBOL vmlinux 0x2c4d8f10 km_state_expired +EXPORT_SYMBOL vmlinux 0x2c51f961 __block_page_mkwrite +EXPORT_SYMBOL vmlinux 0x2c60c541 set_binfmt +EXPORT_SYMBOL vmlinux 0x2c637396 igrab +EXPORT_SYMBOL vmlinux 0x2c63b386 jbd2_journal_get_write_access +EXPORT_SYMBOL vmlinux 0x2c7a407e skb_split +EXPORT_SYMBOL vmlinux 0x2c7c8e9a pcibios_min_mem +EXPORT_SYMBOL vmlinux 0x2c81ec75 __irq_regs +EXPORT_SYMBOL vmlinux 0x2c8d9fe8 netpoll_send_skb_on_dev +EXPORT_SYMBOL vmlinux 0x2c900d91 cpufreq_put_global_kobject +EXPORT_SYMBOL vmlinux 0x2c9732f8 gen_pool_destroy +EXPORT_SYMBOL vmlinux 0x2c988955 prepare_to_wait_exclusive +EXPORT_SYMBOL vmlinux 0x2d140a58 genl_unlock +EXPORT_SYMBOL vmlinux 0x2d3385d3 system_wq +EXPORT_SYMBOL vmlinux 0x2d6507b5 _find_next_zero_bit_le +EXPORT_SYMBOL vmlinux 0x2d770676 dispc_mgr_go +EXPORT_SYMBOL vmlinux 0x2d874b35 vfsmount_lock +EXPORT_SYMBOL vmlinux 0x2d89342a scsi_show_sense_hdr +EXPORT_SYMBOL vmlinux 0x2da53a73 tty_port_lower_dtr_rts +EXPORT_SYMBOL vmlinux 0x2da8720e tcp_close +EXPORT_SYMBOL vmlinux 0x2daeacf7 mmc_calc_max_discard +EXPORT_SYMBOL vmlinux 0x2db32f25 ab3100_event_register +EXPORT_SYMBOL vmlinux 0x2dcd10ac nobh_writepage +EXPORT_SYMBOL vmlinux 0x2dd6670d twl6040_set_pll +EXPORT_SYMBOL vmlinux 0x2de5d972 input_reset_device +EXPORT_SYMBOL vmlinux 0x2deda4a1 security_sk_classify_flow +EXPORT_SYMBOL vmlinux 0x2dfa2ef4 kernel_accept +EXPORT_SYMBOL vmlinux 0x2e024666 tty_hung_up_p +EXPORT_SYMBOL vmlinux 0x2e173e9e ppp_unit_number +EXPORT_SYMBOL vmlinux 0x2e1ca751 clk_put +EXPORT_SYMBOL vmlinux 0x2e224f17 udplite_prot +EXPORT_SYMBOL vmlinux 0x2e2ce9e0 sysctl_tcp_syncookies +EXPORT_SYMBOL vmlinux 0x2e42090f __skb_dst_set_noref +EXPORT_SYMBOL vmlinux 0x2e5810c6 __aeabi_unwind_cpp_pr1 +EXPORT_SYMBOL vmlinux 0x2e6ec88d seq_escape +EXPORT_SYMBOL vmlinux 0x2e72c8a2 mmc_read_bkops_status +EXPORT_SYMBOL vmlinux 0x2e7be112 _raw_read_lock_irqsave +EXPORT_SYMBOL vmlinux 0x2e970f9a set_anon_super +EXPORT_SYMBOL vmlinux 0x2ec524ad __kfifo_in_r +EXPORT_SYMBOL vmlinux 0x2ee119b3 dev_uc_add_excl +EXPORT_SYMBOL vmlinux 0x2eeceb42 sk_chk_filter +EXPORT_SYMBOL vmlinux 0x2ef63ad6 scsi_dev_info_list_del_keyed +EXPORT_SYMBOL vmlinux 0x2f03fc4b security_secmark_refcount_inc +EXPORT_SYMBOL vmlinux 0x2f2eb246 dquot_resume +EXPORT_SYMBOL vmlinux 0x2f3857e2 _raw_write_lock_irqsave +EXPORT_SYMBOL vmlinux 0x2f5e4f49 blk_init_queue_node +EXPORT_SYMBOL vmlinux 0x2f64bfa7 __ps2_command +EXPORT_SYMBOL vmlinux 0x2f684697 generic_ro_fops +EXPORT_SYMBOL vmlinux 0x2f6b4bc1 tty_unregister_driver +EXPORT_SYMBOL vmlinux 0x2f93a0d6 phy_register_fixup_for_id +EXPORT_SYMBOL vmlinux 0x2fb4b823 posix_lock_file +EXPORT_SYMBOL vmlinux 0x2fb6de5d add_device_randomness +EXPORT_SYMBOL vmlinux 0x2fb7e346 eth_rebuild_header +EXPORT_SYMBOL vmlinux 0x2fd246df ip6_frag_init +EXPORT_SYMBOL vmlinux 0x2fe252cc unregister_inet6addr_notifier +EXPORT_SYMBOL vmlinux 0x2ff76172 security_path_symlink +EXPORT_SYMBOL vmlinux 0x30056b91 tty_port_destroy +EXPORT_SYMBOL vmlinux 0x301c9cef register_tcf_proto_ops +EXPORT_SYMBOL vmlinux 0x302b5020 blk_queue_resize_tags +EXPORT_SYMBOL vmlinux 0x302d724e dquot_operations +EXPORT_SYMBOL vmlinux 0x3041b92a ipv6_find_hdr +EXPORT_SYMBOL vmlinux 0x3042f713 vfs_symlink +EXPORT_SYMBOL vmlinux 0x3043d9a2 get_user_pages +EXPORT_SYMBOL vmlinux 0x30466866 vlan_dev_vlan_id +EXPORT_SYMBOL vmlinux 0x304ec72b _raw_write_trylock +EXPORT_SYMBOL vmlinux 0x30536657 d_rehash +EXPORT_SYMBOL vmlinux 0x30562fcb dev_open +EXPORT_SYMBOL vmlinux 0x3071d548 shrink_dcache_sb +EXPORT_SYMBOL vmlinux 0x3076a2b5 sk_run_filter +EXPORT_SYMBOL vmlinux 0x307c2fd0 generic_check_addressable +EXPORT_SYMBOL vmlinux 0x307ec858 devfreq_add_device +EXPORT_SYMBOL vmlinux 0x3082a0b3 dss_feat_get_supported_color_modes +EXPORT_SYMBOL vmlinux 0x308aad56 omap_vrfb_min_phys_size +EXPORT_SYMBOL vmlinux 0x30a80826 __kfifo_from_user +EXPORT_SYMBOL vmlinux 0x30bbfd07 vga_get +EXPORT_SYMBOL vmlinux 0x30cada8f radix_tree_next_hole +EXPORT_SYMBOL vmlinux 0x30da1e5d dev_mc_add_global +EXPORT_SYMBOL vmlinux 0x30e74134 tty_termios_copy_hw +EXPORT_SYMBOL vmlinux 0x30ef6bb8 tcf_em_register +EXPORT_SYMBOL vmlinux 0x3102d70b frontswap_curr_pages +EXPORT_SYMBOL vmlinux 0x3103b804 end_buffer_async_write +EXPORT_SYMBOL vmlinux 0x310656ac wait_on_page_bit +EXPORT_SYMBOL vmlinux 0x310917fe sort +EXPORT_SYMBOL vmlinux 0x31152de3 inet_csk_clear_xmit_timers +EXPORT_SYMBOL vmlinux 0x3119728e dev_add_pack +EXPORT_SYMBOL vmlinux 0x3132ee65 __nand_calculate_ecc +EXPORT_SYMBOL vmlinux 0x313b9011 blk_init_queue +EXPORT_SYMBOL vmlinux 0x3145216f pci_dev_present +EXPORT_SYMBOL vmlinux 0x3147857d default_red +EXPORT_SYMBOL vmlinux 0x315d6f63 devm_ioremap_nocache +EXPORT_SYMBOL vmlinux 0x31622ad0 mdio_bus_type +EXPORT_SYMBOL vmlinux 0x31707070 snd_timer_continue +EXPORT_SYMBOL vmlinux 0x318bf121 bio_map_kern +EXPORT_SYMBOL vmlinux 0x318cadb1 reciprocal_value +EXPORT_SYMBOL vmlinux 0x318fa7c1 pcibios_fixup_bus +EXPORT_SYMBOL vmlinux 0x3191f109 __krealloc +EXPORT_SYMBOL vmlinux 0x31977b49 blk_requeue_request +EXPORT_SYMBOL vmlinux 0x3198ac7a rtnl_configure_link +EXPORT_SYMBOL vmlinux 0x31b31f5c csum_partial_copy_nocheck +EXPORT_SYMBOL vmlinux 0x31d90ee1 prepare_kernel_cred +EXPORT_SYMBOL vmlinux 0x31e2232e dev_graft_qdisc +EXPORT_SYMBOL vmlinux 0x31f0bb78 __kmap_atomic_idx +EXPORT_SYMBOL vmlinux 0x322f48d4 abx500_dump_all_banks +EXPORT_SYMBOL vmlinux 0x32374ad0 revert_creds +EXPORT_SYMBOL vmlinux 0x323fd41c jbd2_journal_update_sb_errno +EXPORT_SYMBOL vmlinux 0x3255972d hdmi_vendor_infoframe_pack +EXPORT_SYMBOL vmlinux 0x3274b08e hdmi_avi_infoframe_init +EXPORT_SYMBOL vmlinux 0x327bf883 of_can_translate_address +EXPORT_SYMBOL vmlinux 0x328a05f1 strncpy +EXPORT_SYMBOL vmlinux 0x329ec9db xfrm6_rcv +EXPORT_SYMBOL vmlinux 0x32a061fe log_wait_commit +EXPORT_SYMBOL vmlinux 0x32b55433 net_dma_find_channel +EXPORT_SYMBOL vmlinux 0x32bb04c8 from_kqid +EXPORT_SYMBOL vmlinux 0x32c4f04d inet6_register_icmp_sender +EXPORT_SYMBOL vmlinux 0x32ed1cc0 kernel_connect +EXPORT_SYMBOL vmlinux 0x3330a47d gen_pool_free +EXPORT_SYMBOL vmlinux 0x3330cb0e fb_validate_mode +EXPORT_SYMBOL vmlinux 0x33658fab neigh_lookup_nodev +EXPORT_SYMBOL vmlinux 0x336f14f7 blk_integrity_merge_rq +EXPORT_SYMBOL vmlinux 0x337cce46 put_cmsg +EXPORT_SYMBOL vmlinux 0x3390fd59 md_integrity_add_rdev +EXPORT_SYMBOL vmlinux 0x3393fdba pcix_get_max_mmrbc +EXPORT_SYMBOL vmlinux 0x33a48d9d bio_integrity_clone +EXPORT_SYMBOL vmlinux 0x33dbfd93 tcp_memory_allocated +EXPORT_SYMBOL vmlinux 0x33e4b8f9 gen_pool_for_each_chunk +EXPORT_SYMBOL vmlinux 0x33f0768c cpufreq_quick_get_max +EXPORT_SYMBOL vmlinux 0x33f5aed6 block_read_full_page +EXPORT_SYMBOL vmlinux 0x34030d55 file_update_time +EXPORT_SYMBOL vmlinux 0x34184afe current_kernel_time +EXPORT_SYMBOL vmlinux 0x341dbfa3 __per_cpu_offset +EXPORT_SYMBOL vmlinux 0x34269290 omapdss_dpi_set_timings +EXPORT_SYMBOL vmlinux 0x343e7f80 xfrm_policy_alloc +EXPORT_SYMBOL vmlinux 0x343fae52 scsi_target_resume +EXPORT_SYMBOL vmlinux 0x3451aad2 nf_log_unset +EXPORT_SYMBOL vmlinux 0x346f042f textsearch_destroy +EXPORT_SYMBOL vmlinux 0x347013de nla_validate +EXPORT_SYMBOL vmlinux 0x349cba85 strchr +EXPORT_SYMBOL vmlinux 0x34b16782 tcp_read_sock +EXPORT_SYMBOL vmlinux 0x34e36735 blk_complete_request +EXPORT_SYMBOL vmlinux 0x34f3484e security_tun_dev_attach_queue +EXPORT_SYMBOL vmlinux 0x34f7cb1e blkdev_issue_write_same +EXPORT_SYMBOL vmlinux 0x3500b783 security_path_rmdir +EXPORT_SYMBOL vmlinux 0x3507a132 _raw_spin_lock_irq +EXPORT_SYMBOL vmlinux 0x351640d7 input_get_keycode +EXPORT_SYMBOL vmlinux 0x3517383e register_reboot_notifier +EXPORT_SYMBOL vmlinux 0x35251505 input_alloc_absinfo +EXPORT_SYMBOL vmlinux 0x352f8a31 blk_rq_map_sg +EXPORT_SYMBOL vmlinux 0x353e3fa5 __get_user_4 +EXPORT_SYMBOL vmlinux 0x354cc16c input_mt_report_pointer_emulation +EXPORT_SYMBOL vmlinux 0x3550ca64 tcp_rcv_state_process +EXPORT_SYMBOL vmlinux 0x35591e82 kblockd_schedule_work +EXPORT_SYMBOL vmlinux 0x35779eb6 framebuffer_alloc +EXPORT_SYMBOL vmlinux 0x358fdfeb task_nice +EXPORT_SYMBOL vmlinux 0x3596e2cb done_path_create +EXPORT_SYMBOL vmlinux 0x35b6b772 param_ops_charp +EXPORT_SYMBOL vmlinux 0x35c5ae50 dmam_declare_coherent_memory +EXPORT_SYMBOL vmlinux 0x35cb8e98 scsi_allocate_command +EXPORT_SYMBOL vmlinux 0x35e8ede7 neigh_direct_output +EXPORT_SYMBOL vmlinux 0x35ff9349 udp_prot +EXPORT_SYMBOL vmlinux 0x360b1afe probe_irq_mask +EXPORT_SYMBOL vmlinux 0x360ba183 blk_queue_max_segments +EXPORT_SYMBOL vmlinux 0x3612c10f tmio_core_mmc_enable +EXPORT_SYMBOL vmlinux 0x3612f211 pm860x_set_bits +EXPORT_SYMBOL vmlinux 0x362ba698 pci_unregister_driver +EXPORT_SYMBOL vmlinux 0x36410e8d mmc_suspend_host +EXPORT_SYMBOL vmlinux 0x3642ca58 generic_file_splice_read +EXPORT_SYMBOL vmlinux 0x364ac784 key_payload_reserve +EXPORT_SYMBOL vmlinux 0x36536913 get_task_io_context +EXPORT_SYMBOL vmlinux 0x367025aa skb_copy_and_csum_dev +EXPORT_SYMBOL vmlinux 0x3678a847 genlmsg_put +EXPORT_SYMBOL vmlinux 0x368c778c tcp_sendmsg +EXPORT_SYMBOL vmlinux 0x368efda9 eth_header_cache +EXPORT_SYMBOL vmlinux 0x36a235bd __netif_schedule +EXPORT_SYMBOL vmlinux 0x36a26a8e ac97_bus_type +EXPORT_SYMBOL vmlinux 0x36a5bdf2 bio_put +EXPORT_SYMBOL vmlinux 0x36b711c9 ip_mc_dec_group +EXPORT_SYMBOL vmlinux 0x36b7aa23 omapdss_default_get_resolution +EXPORT_SYMBOL vmlinux 0x36d7b11a of_find_matching_node_and_match +EXPORT_SYMBOL vmlinux 0x36da369c nand_scan_tail +EXPORT_SYMBOL vmlinux 0x36e360e3 __hw_addr_add_multiple +EXPORT_SYMBOL vmlinux 0x36f9cd94 rcu_is_cpu_idle +EXPORT_SYMBOL vmlinux 0x3744cf36 vmalloc_to_pfn +EXPORT_SYMBOL vmlinux 0x377de9ff pci_claim_resource +EXPORT_SYMBOL vmlinux 0x3796bdcc snd_pcm_format_little_endian +EXPORT_SYMBOL vmlinux 0x37b777df param_set_copystring +EXPORT_SYMBOL vmlinux 0x37befc70 jiffies_to_msecs +EXPORT_SYMBOL vmlinux 0x37da5b0d neigh_sysctl_register +EXPORT_SYMBOL vmlinux 0x37dd5f28 sys_fillrect +EXPORT_SYMBOL vmlinux 0x37e74642 get_jiffies_64 +EXPORT_SYMBOL vmlinux 0x37f614b7 __kfifo_len_r +EXPORT_SYMBOL vmlinux 0x38025198 nand_bch_correct_data +EXPORT_SYMBOL vmlinux 0x3810bc11 __xfrm_state_destroy +EXPORT_SYMBOL vmlinux 0x381144a9 __tracepoint_module_get +EXPORT_SYMBOL vmlinux 0x381772e0 nand_scan +EXPORT_SYMBOL vmlinux 0x381a798a setup_max_cpus +EXPORT_SYMBOL vmlinux 0x381fac75 truncate_inode_pages +EXPORT_SYMBOL vmlinux 0x382b5b67 abort_creds +EXPORT_SYMBOL vmlinux 0x383a29f7 d_move +EXPORT_SYMBOL vmlinux 0x38467644 dm_unregister_target +EXPORT_SYMBOL vmlinux 0x3850b3bc splice_from_pipe_feed +EXPORT_SYMBOL vmlinux 0x387504c4 __pskb_copy +EXPORT_SYMBOL vmlinux 0x3876647c __locks_copy_lock +EXPORT_SYMBOL vmlinux 0x38869d88 kstat +EXPORT_SYMBOL vmlinux 0x388f9128 xfrm_state_walk_done +EXPORT_SYMBOL vmlinux 0x389612d1 kiocb_set_cancel_fn +EXPORT_SYMBOL vmlinux 0x389acf0c gpmc_configure +EXPORT_SYMBOL vmlinux 0x38a71b7e pci_free_resource_list +EXPORT_SYMBOL vmlinux 0x38b8a05b __pskb_pull_tail +EXPORT_SYMBOL vmlinux 0x38c97d50 idr_get_next +EXPORT_SYMBOL vmlinux 0x38ca292c sync_inode +EXPORT_SYMBOL vmlinux 0x38e3b336 dm_register_target +EXPORT_SYMBOL vmlinux 0x391b1866 amba_driver_register +EXPORT_SYMBOL vmlinux 0x3924dd56 try_wait_for_completion +EXPORT_SYMBOL vmlinux 0x3939f8f0 rfkill_pause_polling +EXPORT_SYMBOL vmlinux 0x394d509d address_space_init_once +EXPORT_SYMBOL vmlinux 0x395e8620 ns_capable +EXPORT_SYMBOL vmlinux 0x3962ca9f mb_cache_entry_alloc +EXPORT_SYMBOL vmlinux 0x3971b4df snd_ecards_limit +EXPORT_SYMBOL vmlinux 0x3994fe2f registered_fb +EXPORT_SYMBOL vmlinux 0x39bf9301 _snd_pcm_hw_param_setempty +EXPORT_SYMBOL vmlinux 0x39c79772 fb_pan_display +EXPORT_SYMBOL vmlinux 0x39d6515e amba_release_regions +EXPORT_SYMBOL vmlinux 0x39d7e144 dentry_unhash +EXPORT_SYMBOL vmlinux 0x39db26f0 generic_error_remove_page +EXPORT_SYMBOL vmlinux 0x39f4e26f i2c_add_adapter +EXPORT_SYMBOL vmlinux 0x3a14ffd8 mfd_add_devices +EXPORT_SYMBOL vmlinux 0x3a197373 netdev_master_upper_dev_get +EXPORT_SYMBOL vmlinux 0x3a1d2867 sk_reset_txq +EXPORT_SYMBOL vmlinux 0x3a4668fe omap_dss_find_output +EXPORT_SYMBOL vmlinux 0x3a61ff9e cdev_alloc +EXPORT_SYMBOL vmlinux 0x3a777989 inet_csk_accept +EXPORT_SYMBOL vmlinux 0x3a7f9c35 simple_map_init +EXPORT_SYMBOL vmlinux 0x3a8788df __kfifo_dma_out_prepare +EXPORT_SYMBOL vmlinux 0x3a8ceef3 genphy_restart_aneg +EXPORT_SYMBOL vmlinux 0x3a9b6fb9 blk_unregister_region +EXPORT_SYMBOL vmlinux 0x3aa57126 amba_find_device +EXPORT_SYMBOL vmlinux 0x3aeae0bf dev_mc_flush +EXPORT_SYMBOL vmlinux 0x3af3565e invalidate_partition +EXPORT_SYMBOL vmlinux 0x3b002fed clear_inode +EXPORT_SYMBOL vmlinux 0x3b2099da pci_bus_read_dev_vendor_id +EXPORT_SYMBOL vmlinux 0x3b475416 pps_unregister_source +EXPORT_SYMBOL vmlinux 0x3b572d8b get_phy_device +EXPORT_SYMBOL vmlinux 0x3b7066cd d_instantiate_unique +EXPORT_SYMBOL vmlinux 0x3b80c198 security_file_permission +EXPORT_SYMBOL vmlinux 0x3b89d72f mtd_concat_create +EXPORT_SYMBOL vmlinux 0x3b917f6c tcf_hash_release +EXPORT_SYMBOL vmlinux 0x3b91f3af snd_free_pages +EXPORT_SYMBOL vmlinux 0x3b95996e single_open +EXPORT_SYMBOL vmlinux 0x3bbd8c60 jbd2_journal_set_triggers +EXPORT_SYMBOL vmlinux 0x3bbf46ea vga_base +EXPORT_SYMBOL vmlinux 0x3bd1b1f6 msecs_to_jiffies +EXPORT_SYMBOL vmlinux 0x3bd6becd mpage_writepages +EXPORT_SYMBOL vmlinux 0x3bdb84f4 xfrm4_rcv_encap +EXPORT_SYMBOL vmlinux 0x3be173ee snd_pcm_set_ops +EXPORT_SYMBOL vmlinux 0x3bedcb3a vlan_untag +EXPORT_SYMBOL vmlinux 0x3bee6ac9 send_sig_info +EXPORT_SYMBOL vmlinux 0x3bef03b9 flow_cache_lookup +EXPORT_SYMBOL vmlinux 0x3c2bb8c6 generic_fillattr +EXPORT_SYMBOL vmlinux 0x3c560a02 xfrm_input_resume +EXPORT_SYMBOL vmlinux 0x3c5da0a9 input_inject_event +EXPORT_SYMBOL vmlinux 0x3c80c06c kstrtoull +EXPORT_SYMBOL vmlinux 0x3c851220 set_blocksize +EXPORT_SYMBOL vmlinux 0x3c9d1211 string_get_size +EXPORT_SYMBOL vmlinux 0x3caaec80 pagevec_lookup_tag +EXPORT_SYMBOL vmlinux 0x3ccb708b ip_queue_xmit +EXPORT_SYMBOL vmlinux 0x3ce4ca6f disable_irq +EXPORT_SYMBOL vmlinux 0x3cf25702 tty_devnum +EXPORT_SYMBOL vmlinux 0x3d17c901 generic_write_end +EXPORT_SYMBOL vmlinux 0x3d272ab1 wait_iff_congested +EXPORT_SYMBOL vmlinux 0x3d36d823 security_path_chmod +EXPORT_SYMBOL vmlinux 0x3d37ad9b journal_get_create_access +EXPORT_SYMBOL vmlinux 0x3d3c540f elf_hwcap +EXPORT_SYMBOL vmlinux 0x3d3c9a98 inet6_getname +EXPORT_SYMBOL vmlinux 0x3d41904f of_get_next_child +EXPORT_SYMBOL vmlinux 0x3d5294de __register_chrdev +EXPORT_SYMBOL vmlinux 0x3d6233c8 pci_set_mwi +EXPORT_SYMBOL vmlinux 0x3d64645b read_code +EXPORT_SYMBOL vmlinux 0x3d68accd kmap_atomic +EXPORT_SYMBOL vmlinux 0x3d7b0d22 do_SAK +EXPORT_SYMBOL vmlinux 0x3d7dc98f mdiobus_free +EXPORT_SYMBOL vmlinux 0x3d842f8a pps_event +EXPORT_SYMBOL vmlinux 0x3d8abc70 mpage_readpage +EXPORT_SYMBOL vmlinux 0x3d8fc676 pci_choose_state +EXPORT_SYMBOL vmlinux 0x3d98f3c9 mb_cache_shrink +EXPORT_SYMBOL vmlinux 0x3d9b9368 register_exec_domain +EXPORT_SYMBOL vmlinux 0x3daeb658 mmc_cache_ctrl +EXPORT_SYMBOL vmlinux 0x3dcb88a0 irq_set_handler_data +EXPORT_SYMBOL vmlinux 0x3ded26f7 scsi_get_host_dev +EXPORT_SYMBOL vmlinux 0x3dfc897c seq_hlist_start_head +EXPORT_SYMBOL vmlinux 0x3e1ab506 file_remove_suid +EXPORT_SYMBOL vmlinux 0x3e5226b2 zero_fill_bio +EXPORT_SYMBOL vmlinux 0x3e650286 phy_scan_fixups +EXPORT_SYMBOL vmlinux 0x3e741cd2 mutex_lock_interruptible +EXPORT_SYMBOL vmlinux 0x3e884f4b vm_get_page_prot +EXPORT_SYMBOL vmlinux 0x3e8e20a9 pm860x_bulk_read +EXPORT_SYMBOL vmlinux 0x3e9110fa __hw_addr_unsync +EXPORT_SYMBOL vmlinux 0x3ea309ac filemap_fault +EXPORT_SYMBOL vmlinux 0x3eae292f param_set_byte +EXPORT_SYMBOL vmlinux 0x3eaf291d param_get_string +EXPORT_SYMBOL vmlinux 0x3eba4780 sock_common_getsockopt +EXPORT_SYMBOL vmlinux 0x3ec16c3b in_group_p +EXPORT_SYMBOL vmlinux 0x3ed63055 zlib_inflateReset +EXPORT_SYMBOL vmlinux 0x3f0186e9 xfrm_dst_ifdown +EXPORT_SYMBOL vmlinux 0x3f22c6f9 unregister_cdrom +EXPORT_SYMBOL vmlinux 0x3f2d17a5 pci_bus_type +EXPORT_SYMBOL vmlinux 0x3f4547a7 put_unused_fd +EXPORT_SYMBOL vmlinux 0x3f477693 dev_addr_del_multiple +EXPORT_SYMBOL vmlinux 0x3f564ecc lookup_one_len +EXPORT_SYMBOL vmlinux 0x3f5b67d5 wait_for_completion_killable +EXPORT_SYMBOL vmlinux 0x3f668b71 xfrm_lookup +EXPORT_SYMBOL vmlinux 0x3f874733 seq_path +EXPORT_SYMBOL vmlinux 0x3f87fca3 dquot_writeback_dquots +EXPORT_SYMBOL vmlinux 0x3fa53e81 genlmsg_multicast_allns +EXPORT_SYMBOL vmlinux 0x3fab3ca9 register_sysctl_table +EXPORT_SYMBOL vmlinux 0x3fae4cb3 twl6040_get_pll +EXPORT_SYMBOL vmlinux 0x3fb038b4 sk_stream_wait_connect +EXPORT_SYMBOL vmlinux 0x3fd55724 of_n_size_cells +EXPORT_SYMBOL vmlinux 0x3fdbfc26 snd_pcm_lib_get_vmalloc_page +EXPORT_SYMBOL vmlinux 0x3ff2cc76 deactivate_locked_super +EXPORT_SYMBOL vmlinux 0x3ff3d7c5 security_path_link +EXPORT_SYMBOL vmlinux 0x3ff62317 local_bh_disable +EXPORT_SYMBOL vmlinux 0x3fffad53 udp_push_pending_frames +EXPORT_SYMBOL vmlinux 0x402b8281 __request_module +EXPORT_SYMBOL vmlinux 0x403dae9b pci_bus_add_devices +EXPORT_SYMBOL vmlinux 0x4059792f print_hex_dump +EXPORT_SYMBOL vmlinux 0x405c1144 get_seconds +EXPORT_SYMBOL vmlinux 0x4070b0c3 dev_addr_flush +EXPORT_SYMBOL vmlinux 0x407136b1 __put_user_8 +EXPORT_SYMBOL vmlinux 0x40738bad kfree_skb_list +EXPORT_SYMBOL vmlinux 0x4077a478 __dquot_transfer +EXPORT_SYMBOL vmlinux 0x407a3275 omap_start_dma +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 0x40a2d1dd dm_table_get_size +EXPORT_SYMBOL vmlinux 0x40a9b349 vzalloc +EXPORT_SYMBOL vmlinux 0x40bba411 tcf_em_tree_validate +EXPORT_SYMBOL vmlinux 0x40c01859 gen_pool_best_fit +EXPORT_SYMBOL vmlinux 0x40c64017 blkdev_put +EXPORT_SYMBOL vmlinux 0x40c7247c si_meminfo +EXPORT_SYMBOL vmlinux 0x40ce485b mempool_resize +EXPORT_SYMBOL vmlinux 0x40d04664 console_trylock +EXPORT_SYMBOL vmlinux 0x40d29fc8 truncate_pagecache_range +EXPORT_SYMBOL vmlinux 0x40d869fc elv_abort_queue +EXPORT_SYMBOL vmlinux 0x40e3cb19 dispc_ovl_check +EXPORT_SYMBOL vmlinux 0x40ee0346 unload_nls +EXPORT_SYMBOL vmlinux 0x40f07981 __ashldi3 +EXPORT_SYMBOL vmlinux 0x40f84914 xfrm_register_type +EXPORT_SYMBOL vmlinux 0x4123b386 set_disk_ro +EXPORT_SYMBOL vmlinux 0x412ae7f1 __lock_page +EXPORT_SYMBOL vmlinux 0x41447ce4 __sk_mem_reclaim +EXPORT_SYMBOL vmlinux 0x41482d8b strndup_user +EXPORT_SYMBOL vmlinux 0x4156d7d7 tty_check_change +EXPORT_SYMBOL vmlinux 0x4188d439 neigh_rand_reach_time +EXPORT_SYMBOL vmlinux 0x4197696d ipv6_chk_addr +EXPORT_SYMBOL vmlinux 0x419f6244 blk_rq_map_user_iov +EXPORT_SYMBOL vmlinux 0x41bd3e4b unlock_rename +EXPORT_SYMBOL vmlinux 0x41bd65d1 pagecache_write_end +EXPORT_SYMBOL vmlinux 0x41d69e37 cdrom_ioctl +EXPORT_SYMBOL vmlinux 0x41ff90f5 pci_request_selected_regions +EXPORT_SYMBOL vmlinux 0x4211599c __scsi_alloc_queue +EXPORT_SYMBOL vmlinux 0x4211c3c1 zlib_inflateInit2 +EXPORT_SYMBOL vmlinux 0x423465dc simple_fill_super +EXPORT_SYMBOL vmlinux 0x424b410e scsi_print_result +EXPORT_SYMBOL vmlinux 0x4253edb1 dev_uc_sync_multiple +EXPORT_SYMBOL vmlinux 0x426117a0 udp_seq_open +EXPORT_SYMBOL vmlinux 0x4280162a inode_sub_bytes +EXPORT_SYMBOL vmlinux 0x428f24f9 posix_acl_create +EXPORT_SYMBOL vmlinux 0x42977ad4 __hw_addr_del_multiple +EXPORT_SYMBOL vmlinux 0x4298b775 v7_flush_kern_cache_all +EXPORT_SYMBOL vmlinux 0x42a1b208 gen_pool_first_fit +EXPORT_SYMBOL vmlinux 0x42a497c4 proto_register +EXPORT_SYMBOL vmlinux 0x42a93bc8 scsi_is_sdev_device +EXPORT_SYMBOL vmlinux 0x42b424f5 pci_iomap +EXPORT_SYMBOL vmlinux 0x42ca764e unregister_netdev +EXPORT_SYMBOL vmlinux 0x42cfe657 ptp_clock_event +EXPORT_SYMBOL vmlinux 0x42d456ac nand_bch_init +EXPORT_SYMBOL vmlinux 0x42dc6bfb generic_pipe_buf_confirm +EXPORT_SYMBOL vmlinux 0x42e5f661 dev_mc_del +EXPORT_SYMBOL vmlinux 0x42e60548 d_validate +EXPORT_SYMBOL vmlinux 0x42e795f3 snd_ctl_boolean_stereo_info +EXPORT_SYMBOL vmlinux 0x4302d0eb free_pages +EXPORT_SYMBOL vmlinux 0x4317de5d vfs_writev +EXPORT_SYMBOL vmlinux 0x431ae3a9 seq_puts +EXPORT_SYMBOL vmlinux 0x43396361 blk_queue_io_opt +EXPORT_SYMBOL vmlinux 0x43432ed2 tcp_init_xmit_timers +EXPORT_SYMBOL vmlinux 0x4351577a fb_parse_edid +EXPORT_SYMBOL vmlinux 0x4354306c nf_afinfo +EXPORT_SYMBOL vmlinux 0x43632d7d of_find_property +EXPORT_SYMBOL vmlinux 0x438610bd security_tun_dev_alloc_security +EXPORT_SYMBOL vmlinux 0x4388ad83 sget +EXPORT_SYMBOL vmlinux 0x43aaebc4 generic_file_llseek_size +EXPORT_SYMBOL vmlinux 0x43b30168 max8998_update_reg +EXPORT_SYMBOL vmlinux 0x43b64597 pci_request_region_exclusive +EXPORT_SYMBOL vmlinux 0x43c34d52 write_cache_pages +EXPORT_SYMBOL vmlinux 0x43ca8120 block_truncate_page +EXPORT_SYMBOL vmlinux 0x43ccf10d of_mdiobus_register +EXPORT_SYMBOL vmlinux 0x43f23311 dm_table_get_md +EXPORT_SYMBOL vmlinux 0x4407fe5f pagevec_lookup +EXPORT_SYMBOL vmlinux 0x4411c503 prandom_seed +EXPORT_SYMBOL vmlinux 0x44149575 scsi_execute_req_flags +EXPORT_SYMBOL vmlinux 0x441ed159 omap_get_dma_src_pos +EXPORT_SYMBOL vmlinux 0x442495c9 tmio_core_mmc_resume +EXPORT_SYMBOL vmlinux 0x4429dcb9 ip6_route_me_harder +EXPORT_SYMBOL vmlinux 0x4431d149 rtnl_set_sk_err +EXPORT_SYMBOL vmlinux 0x44366cfc simple_write_to_buffer +EXPORT_SYMBOL vmlinux 0x443ced15 scsi_ioctl +EXPORT_SYMBOL vmlinux 0x443dce28 inode_change_ok +EXPORT_SYMBOL vmlinux 0x44438b96 hex2bin +EXPORT_SYMBOL vmlinux 0x4451e794 tcp_seq_open +EXPORT_SYMBOL vmlinux 0x44643b93 __aeabi_lmul +EXPORT_SYMBOL vmlinux 0x44667831 __sb_end_write +EXPORT_SYMBOL vmlinux 0x446bd453 fbcon_set_bitops +EXPORT_SYMBOL vmlinux 0x4470a79b param_ops_long +EXPORT_SYMBOL vmlinux 0x447ed99d pcim_enable_device +EXPORT_SYMBOL vmlinux 0x44828527 mdiobus_alloc_size +EXPORT_SYMBOL vmlinux 0x44874b4b journal_errno +EXPORT_SYMBOL vmlinux 0x44a9c4c6 mtd_concat_destroy +EXPORT_SYMBOL vmlinux 0x44da5d0f __csum_ipv6_magic +EXPORT_SYMBOL vmlinux 0x44dd3d8d completion_done +EXPORT_SYMBOL vmlinux 0x44e9a829 match_token +EXPORT_SYMBOL vmlinux 0x44f5e8b5 of_allnodes +EXPORT_SYMBOL vmlinux 0x44fb6dbc scsi_mode_sense +EXPORT_SYMBOL vmlinux 0x45146d6b d_genocide +EXPORT_SYMBOL vmlinux 0x45335749 __pagevec_lru_add +EXPORT_SYMBOL vmlinux 0x453c0d51 snd_pcm_hw_constraint_ratdens +EXPORT_SYMBOL vmlinux 0x4542e7c9 dev_alert +EXPORT_SYMBOL vmlinux 0x454c54a5 __mod_zone_page_state +EXPORT_SYMBOL vmlinux 0x455293f6 down_read +EXPORT_SYMBOL vmlinux 0x45688aa0 dquot_quota_sync +EXPORT_SYMBOL vmlinux 0x4578f528 __kfifo_to_user +EXPORT_SYMBOL vmlinux 0x45980f42 twl6040_power +EXPORT_SYMBOL vmlinux 0x45a6be13 cpufreq_sysfs_remove_file +EXPORT_SYMBOL vmlinux 0x45bda0d5 system_serial_low +EXPORT_SYMBOL vmlinux 0x45c61a00 filemap_flush +EXPORT_SYMBOL vmlinux 0x45c8cd86 ifla_policy +EXPORT_SYMBOL vmlinux 0x45cfa46c abx500_register_ops +EXPORT_SYMBOL vmlinux 0x45e897b4 generic_file_open +EXPORT_SYMBOL vmlinux 0x45ee3e20 bprm_change_interp +EXPORT_SYMBOL vmlinux 0x46115602 dquot_set_dqblk +EXPORT_SYMBOL vmlinux 0x4614047e read_cache_page_async +EXPORT_SYMBOL vmlinux 0x4624e256 inet_add_offload +EXPORT_SYMBOL vmlinux 0x462a2e75 match_strlcpy +EXPORT_SYMBOL vmlinux 0x463645a7 dev_crit +EXPORT_SYMBOL vmlinux 0x465757c3 cpu_present_mask +EXPORT_SYMBOL vmlinux 0x465cab34 secure_ipv6_port_ephemeral +EXPORT_SYMBOL vmlinux 0x46608fa0 getnstimeofday +EXPORT_SYMBOL vmlinux 0x467282fc nand_unlock +EXPORT_SYMBOL vmlinux 0x46975ed0 phy_mii_ioctl +EXPORT_SYMBOL vmlinux 0x46a6854a lock_sock_fast +EXPORT_SYMBOL vmlinux 0x46d3b28c __div0 +EXPORT_SYMBOL vmlinux 0x46d48940 eth_change_mtu +EXPORT_SYMBOL vmlinux 0x46efcee5 vm_insert_mixed +EXPORT_SYMBOL vmlinux 0x46feb099 dm_read_arg +EXPORT_SYMBOL vmlinux 0x47350455 filemap_fdatawrite_range +EXPORT_SYMBOL vmlinux 0x473f4c35 serial8250_do_set_termios +EXPORT_SYMBOL vmlinux 0x47416e14 cpu_rmap_add +EXPORT_SYMBOL vmlinux 0x474f94f0 tcp_tso_segment +EXPORT_SYMBOL vmlinux 0x475100c2 inet_get_local_port_range +EXPORT_SYMBOL vmlinux 0x47733fe2 fput +EXPORT_SYMBOL vmlinux 0x4779f1f4 __xfrm_policy_check +EXPORT_SYMBOL vmlinux 0x478cb451 journal_blocks_per_page +EXPORT_SYMBOL vmlinux 0x47939e0d __tasklet_hi_schedule +EXPORT_SYMBOL vmlinux 0x47a951a9 blk_stop_queue +EXPORT_SYMBOL vmlinux 0x47b3f862 radix_tree_lookup_slot +EXPORT_SYMBOL vmlinux 0x47b6a10f ftrace_print_symbols_seq +EXPORT_SYMBOL vmlinux 0x47cdbca1 pcix_set_mmrbc +EXPORT_SYMBOL vmlinux 0x47d54b47 xfrm_state_add +EXPORT_SYMBOL vmlinux 0x47e70229 v7_flush_user_cache_range +EXPORT_SYMBOL vmlinux 0x47f757de elf_platform +EXPORT_SYMBOL vmlinux 0x47f8cb4f sk_prot_clear_portaddr_nulls +EXPORT_SYMBOL vmlinux 0x47fc727c scsi_verify_blk_ioctl +EXPORT_SYMBOL vmlinux 0x48163cc3 md_done_sync +EXPORT_SYMBOL vmlinux 0x481b4ee8 snd_ctl_find_numid +EXPORT_SYMBOL vmlinux 0x481ce6ce cpu_active_mask +EXPORT_SYMBOL vmlinux 0x4845c423 param_array_ops +EXPORT_SYMBOL vmlinux 0x4859b8bb rtc_year_days +EXPORT_SYMBOL vmlinux 0x485e8303 unlock_buffer +EXPORT_SYMBOL vmlinux 0x486bcebf xfrm_state_walk +EXPORT_SYMBOL vmlinux 0x487921ae dget_parent +EXPORT_SYMBOL vmlinux 0x487d9343 param_ops_ushort +EXPORT_SYMBOL vmlinux 0x4881d505 idr_for_each +EXPORT_SYMBOL vmlinux 0x4884eb27 __mark_inode_dirty +EXPORT_SYMBOL vmlinux 0x488882e7 downgrade_write +EXPORT_SYMBOL vmlinux 0x48a5b067 __machine_arch_type +EXPORT_SYMBOL vmlinux 0x48b10cfb bitmap_endwrite +EXPORT_SYMBOL vmlinux 0x48bb424c security_sb_clone_mnt_opts +EXPORT_SYMBOL vmlinux 0x48bb8a8b of_phy_find_device +EXPORT_SYMBOL vmlinux 0x48c6db53 of_get_child_by_name +EXPORT_SYMBOL vmlinux 0x48d934c6 phy_stop +EXPORT_SYMBOL vmlinux 0x48de34d3 splice_from_pipe_end +EXPORT_SYMBOL vmlinux 0x48f0421a page_put_link +EXPORT_SYMBOL vmlinux 0x48f40e80 kmalloc_caches +EXPORT_SYMBOL vmlinux 0x4901f3cd bio_init +EXPORT_SYMBOL vmlinux 0x49045426 icmp_err_convert +EXPORT_SYMBOL vmlinux 0x4932179f xfrm_sad_getinfo +EXPORT_SYMBOL vmlinux 0x493fad03 skb_insert +EXPORT_SYMBOL vmlinux 0x4955e160 redraw_screen +EXPORT_SYMBOL vmlinux 0x49603fb8 security_sb_copy_data +EXPORT_SYMBOL vmlinux 0x49910351 inode_owner_or_capable +EXPORT_SYMBOL vmlinux 0x499cb58c prepare_to_wait +EXPORT_SYMBOL vmlinux 0x49b07aec tcp_select_initial_window +EXPORT_SYMBOL vmlinux 0x49bbdcb1 blkdev_get_by_path +EXPORT_SYMBOL vmlinux 0x49c24f45 pci_fixup_cardbus +EXPORT_SYMBOL vmlinux 0x49e0fd89 proc_mkdir_mode +EXPORT_SYMBOL vmlinux 0x49ebacbd _clear_bit +EXPORT_SYMBOL vmlinux 0x49edee44 snd_pcm_limit_hw_rates +EXPORT_SYMBOL vmlinux 0x4a358252 __bitmap_subset +EXPORT_SYMBOL vmlinux 0x4a39e5a1 omap_set_dma_src_params +EXPORT_SYMBOL vmlinux 0x4a3e4298 scsi_dma_map +EXPORT_SYMBOL vmlinux 0x4a3ea5c0 snd_request_card +EXPORT_SYMBOL vmlinux 0x4a41e54a write_inode_now +EXPORT_SYMBOL vmlinux 0x4a57b339 wait_for_completion_io_timeout +EXPORT_SYMBOL vmlinux 0x4a711f5b security_inode_permission +EXPORT_SYMBOL vmlinux 0x4a7fb243 percpu_counter_compare +EXPORT_SYMBOL vmlinux 0x4a8166cb get_fs_type +EXPORT_SYMBOL vmlinux 0x4a8d31d6 xfrm_init_replay +EXPORT_SYMBOL vmlinux 0x4aab6ccf rtnl_notify +EXPORT_SYMBOL vmlinux 0x4abbe3c2 vm_brk +EXPORT_SYMBOL vmlinux 0x4ae2799c tcf_exts_destroy +EXPORT_SYMBOL vmlinux 0x4aef9ca3 snd_pcm_hw_param_last +EXPORT_SYMBOL vmlinux 0x4afe9a77 scsi_partsize +EXPORT_SYMBOL vmlinux 0x4b015768 snd_iprintf +EXPORT_SYMBOL vmlinux 0x4b040f90 sched_autogroup_create_attach +EXPORT_SYMBOL vmlinux 0x4b1ec3e2 kstrtoul_from_user +EXPORT_SYMBOL vmlinux 0x4b2a5de9 dev_kfree_skb_irq +EXPORT_SYMBOL vmlinux 0x4b34fbf5 block_all_signals +EXPORT_SYMBOL vmlinux 0x4b5fd49e dm_kcopyd_do_callback +EXPORT_SYMBOL vmlinux 0x4b6a892b xfrm_state_check_expire +EXPORT_SYMBOL vmlinux 0x4b781d0b pci_set_power_state +EXPORT_SYMBOL vmlinux 0x4b7a27c0 pci_set_master +EXPORT_SYMBOL vmlinux 0x4b8685ad current_fs_time +EXPORT_SYMBOL vmlinux 0x4b8e839a cpufreq_global_kobject +EXPORT_SYMBOL vmlinux 0x4badd391 dev_uc_del +EXPORT_SYMBOL vmlinux 0x4bae0b46 audit_log_task_info +EXPORT_SYMBOL vmlinux 0x4bb4c812 dev_addr_add +EXPORT_SYMBOL vmlinux 0x4bbf8399 serio_reconnect +EXPORT_SYMBOL vmlinux 0x4bc1970d jbd2_journal_check_available_features +EXPORT_SYMBOL vmlinux 0x4be7fb63 up +EXPORT_SYMBOL vmlinux 0x4be85a03 memweight +EXPORT_SYMBOL vmlinux 0x4bf795dd of_phy_connect_fixed_link +EXPORT_SYMBOL vmlinux 0x4c06037d unregister_md_personality +EXPORT_SYMBOL vmlinux 0x4c1182cb bitmap_scnprintf +EXPORT_SYMBOL vmlinux 0x4c19ad3f netif_device_attach +EXPORT_SYMBOL vmlinux 0x4c19d6ae netif_carrier_off +EXPORT_SYMBOL vmlinux 0x4c1debed scm_detach_fds +EXPORT_SYMBOL vmlinux 0x4c2ae700 strnstr +EXPORT_SYMBOL vmlinux 0x4c33081d omapdss_compat_uninit +EXPORT_SYMBOL vmlinux 0x4c483fe4 scsi_prep_fn +EXPORT_SYMBOL vmlinux 0x4c591bb0 sg_pcopy_to_buffer +EXPORT_SYMBOL vmlinux 0x4c7977a3 gnet_stats_start_copy_compat +EXPORT_SYMBOL vmlinux 0x4c84c45b scsi_report_device_reset +EXPORT_SYMBOL vmlinux 0x4c86184b remove_wait_queue +EXPORT_SYMBOL vmlinux 0x4c91646e blkdev_issue_flush +EXPORT_SYMBOL vmlinux 0x4c949aa9 blk_queue_make_request +EXPORT_SYMBOL vmlinux 0x4c970170 fget +EXPORT_SYMBOL vmlinux 0x4caa6dde kill_litter_super +EXPORT_SYMBOL vmlinux 0x4cba0863 dquot_destroy +EXPORT_SYMBOL vmlinux 0x4cbbd171 __bitmap_weight +EXPORT_SYMBOL vmlinux 0x4cc168d7 __ip_select_ident +EXPORT_SYMBOL vmlinux 0x4cc254e4 inet_frag_evictor +EXPORT_SYMBOL vmlinux 0x4cc2854d tegra114_clock_assert_dfll_dvco_reset +EXPORT_SYMBOL vmlinux 0x4cdb3178 ns_to_timeval +EXPORT_SYMBOL vmlinux 0x4d0d163d copy_page +EXPORT_SYMBOL vmlinux 0x4d12acb0 sock_alloc_send_pskb +EXPORT_SYMBOL vmlinux 0x4d246788 elv_rb_del +EXPORT_SYMBOL vmlinux 0x4d3487f9 fddi_type_trans +EXPORT_SYMBOL vmlinux 0x4d3c153f sigprocmask +EXPORT_SYMBOL vmlinux 0x4d405db8 param_ops_string +EXPORT_SYMBOL vmlinux 0x4d45d89e udp_memory_allocated +EXPORT_SYMBOL vmlinux 0x4d5007bc tcp_gro_receive +EXPORT_SYMBOL vmlinux 0x4d52874d snd_card_disconnect +EXPORT_SYMBOL vmlinux 0x4d65e66c snd_seq_root +EXPORT_SYMBOL vmlinux 0x4d773ab5 sock_get_timestampns +EXPORT_SYMBOL vmlinux 0x4d974b9c register_sysrq_key +EXPORT_SYMBOL vmlinux 0x4d9b652b rb_erase +EXPORT_SYMBOL vmlinux 0x4d9b6d35 snd_pcm_format_size +EXPORT_SYMBOL vmlinux 0x4da0684e md_check_no_bitmap +EXPORT_SYMBOL vmlinux 0x4db0b10f d_alloc +EXPORT_SYMBOL vmlinux 0x4dd5ebf7 journal_restart +EXPORT_SYMBOL vmlinux 0x4dda1812 write_one_page +EXPORT_SYMBOL vmlinux 0x4de34a07 cpu_rmap_put +EXPORT_SYMBOL vmlinux 0x4dec6038 memscan +EXPORT_SYMBOL vmlinux 0x4df119fa __bitmap_parse +EXPORT_SYMBOL vmlinux 0x4e0fe448 scsi_print_command +EXPORT_SYMBOL vmlinux 0x4e3567f7 match_int +EXPORT_SYMBOL vmlinux 0x4e4533ac sg_miter_next +EXPORT_SYMBOL vmlinux 0x4e4e366f delete_from_page_cache +EXPORT_SYMBOL vmlinux 0x4e506013 omap_dma_link_lch +EXPORT_SYMBOL vmlinux 0x4e5212b5 md_flush_request +EXPORT_SYMBOL vmlinux 0x4e532728 dquot_get_dqinfo +EXPORT_SYMBOL vmlinux 0x4e6e8ea7 fg_console +EXPORT_SYMBOL vmlinux 0x4e830a3e strnicmp +EXPORT_SYMBOL vmlinux 0x4e896d39 elv_rb_add +EXPORT_SYMBOL vmlinux 0x4e9ce9f9 edma_link +EXPORT_SYMBOL vmlinux 0x4ec3cfc0 scsi_remove_target +EXPORT_SYMBOL vmlinux 0x4f08857d block_write_full_page_endio +EXPORT_SYMBOL vmlinux 0x4f1cd128 security_tun_dev_create +EXPORT_SYMBOL vmlinux 0x4f248523 of_find_node_by_name +EXPORT_SYMBOL vmlinux 0x4f391d0e nla_parse +EXPORT_SYMBOL vmlinux 0x4f3ae9e0 napi_gro_receive +EXPORT_SYMBOL vmlinux 0x4f476e96 init_cdrom_command +EXPORT_SYMBOL vmlinux 0x4f62eabf inet_accept +EXPORT_SYMBOL vmlinux 0x4f68e5c9 do_gettimeofday +EXPORT_SYMBOL vmlinux 0x4f724400 ndo_dflt_fdb_del +EXPORT_SYMBOL vmlinux 0x4f816e9b snd_pcm_format_big_endian +EXPORT_SYMBOL vmlinux 0x4f89c9de gpmc_cs_free +EXPORT_SYMBOL vmlinux 0x4fd3b393 xfrm_state_update +EXPORT_SYMBOL vmlinux 0x50097088 security_tun_dev_free_security +EXPORT_SYMBOL vmlinux 0x5011a640 htc_egpio_get_wakeup_irq +EXPORT_SYMBOL vmlinux 0x506f8653 pci_add_new_bus +EXPORT_SYMBOL vmlinux 0x506fb2cd bdget +EXPORT_SYMBOL vmlinux 0x50791d2e ip_fragment +EXPORT_SYMBOL vmlinux 0x508870c0 netpoll_cleanup +EXPORT_SYMBOL vmlinux 0x509817cf vprintk_emit +EXPORT_SYMBOL vmlinux 0x50c5a291 unregister_netdevice_queue +EXPORT_SYMBOL vmlinux 0x50ccff03 omap_dma_set_prio_lch +EXPORT_SYMBOL vmlinux 0x50d5612e dispc_mgr_get_sync_lost_irq +EXPORT_SYMBOL vmlinux 0x511746c1 dump_fpu +EXPORT_SYMBOL vmlinux 0x5118c382 secure_dccp_sequence_number +EXPORT_SYMBOL vmlinux 0x512e70f8 nand_scan_ident +EXPORT_SYMBOL vmlinux 0x5143c678 param_get_invbool +EXPORT_SYMBOL vmlinux 0x514eaa11 pci_dev_get +EXPORT_SYMBOL vmlinux 0x5155ffc8 xfrm_state_insert +EXPORT_SYMBOL vmlinux 0x5169161d omap_free_dma_chain +EXPORT_SYMBOL vmlinux 0x51749fc8 _raw_read_lock_irq +EXPORT_SYMBOL vmlinux 0x5175eda9 bio_advance +EXPORT_SYMBOL vmlinux 0x51908eb8 __raw_writesl +EXPORT_SYMBOL vmlinux 0x51b0c028 key_reject_and_link +EXPORT_SYMBOL vmlinux 0x51c11dd7 journal_try_to_free_buffers +EXPORT_SYMBOL vmlinux 0x51d559d1 _raw_spin_unlock_irqrestore +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 0x520af9c8 ww_mutex_unlock +EXPORT_SYMBOL vmlinux 0x521b36b5 qdisc_put_rtab +EXPORT_SYMBOL vmlinux 0x52202b90 module_layout +EXPORT_SYMBOL vmlinux 0x5230df3e netdev_has_upper_dev +EXPORT_SYMBOL vmlinux 0x523987c8 elv_register_queue +EXPORT_SYMBOL vmlinux 0x523cf16b vfs_fsync_range +EXPORT_SYMBOL vmlinux 0x52428cc8 parent_mem_cgroup +EXPORT_SYMBOL vmlinux 0x524316a5 nla_append +EXPORT_SYMBOL vmlinux 0x525e2c2a netlink_ack +EXPORT_SYMBOL vmlinux 0x5261ffbc sync_inode_metadata +EXPORT_SYMBOL vmlinux 0x527b11e4 quota_send_warning +EXPORT_SYMBOL vmlinux 0x528016d6 journal_force_commit_nested +EXPORT_SYMBOL vmlinux 0x5282702b __sync_dirty_buffer +EXPORT_SYMBOL vmlinux 0x5286db35 devfreq_suspend_device +EXPORT_SYMBOL vmlinux 0x528c709d simple_read_from_buffer +EXPORT_SYMBOL vmlinux 0x52aba095 scsi_remove_host +EXPORT_SYMBOL vmlinux 0x52d42c95 set_current_groups +EXPORT_SYMBOL vmlinux 0x52dd531a __frontswap_test +EXPORT_SYMBOL vmlinux 0x52e3e4a5 snd_pcm_hw_param_value +EXPORT_SYMBOL vmlinux 0x52ed8051 user_path_create +EXPORT_SYMBOL vmlinux 0x52efd766 __kfifo_dma_in_prepare +EXPORT_SYMBOL vmlinux 0x530b1e98 pm_suspend +EXPORT_SYMBOL vmlinux 0x530c3d61 d_make_root +EXPORT_SYMBOL vmlinux 0x53326531 mempool_alloc_pages +EXPORT_SYMBOL vmlinux 0x534a3db7 phy_drivers_unregister +EXPORT_SYMBOL vmlinux 0x5357b80a dquot_transfer +EXPORT_SYMBOL vmlinux 0x537c5310 console_start +EXPORT_SYMBOL vmlinux 0x53c8a6be bh_submit_read +EXPORT_SYMBOL vmlinux 0x53d6700d skb_put +EXPORT_SYMBOL vmlinux 0x53d6ccb8 inetdev_by_index +EXPORT_SYMBOL vmlinux 0x53fd3165 filp_open +EXPORT_SYMBOL vmlinux 0x5409775b free_irq_cpu_rmap +EXPORT_SYMBOL vmlinux 0x54186dff tcp_prequeue +EXPORT_SYMBOL vmlinux 0x541891d5 tcf_unregister_action +EXPORT_SYMBOL vmlinux 0x543ef284 seq_hlist_start +EXPORT_SYMBOL vmlinux 0x54553925 nla_put +EXPORT_SYMBOL vmlinux 0x547077ec __wake_up_bit +EXPORT_SYMBOL vmlinux 0x5476f3fb dev_disable_lro +EXPORT_SYMBOL vmlinux 0x547ce898 dispc_read_irqenable +EXPORT_SYMBOL vmlinux 0x547d7335 bio_integrity_add_page +EXPORT_SYMBOL vmlinux 0x54a9017e lock_rename +EXPORT_SYMBOL vmlinux 0x54a9db5f _kstrtoul +EXPORT_SYMBOL vmlinux 0x54acbe56 vga_put +EXPORT_SYMBOL vmlinux 0x54d14e3a __netlink_dump_start +EXPORT_SYMBOL vmlinux 0x54d5eae3 file_open_root +EXPORT_SYMBOL vmlinux 0x54e6fcdd net_enable_timestamp +EXPORT_SYMBOL vmlinux 0x54f21cff __send_remote_softirq +EXPORT_SYMBOL vmlinux 0x54f6830a omapdss_get_default_display_name +EXPORT_SYMBOL vmlinux 0x54ff5756 i2c_smbus_read_word_data +EXPORT_SYMBOL vmlinux 0x550119b6 blkdev_issue_discard +EXPORT_SYMBOL vmlinux 0x550678d8 generic_pipe_buf_map +EXPORT_SYMBOL vmlinux 0x551bd071 __rb_erase_color +EXPORT_SYMBOL vmlinux 0x551de1e3 free_inode_nonrcu +EXPORT_SYMBOL vmlinux 0x552b408e sock_update_classid +EXPORT_SYMBOL vmlinux 0x5541245d snd_register_device_for_dev +EXPORT_SYMBOL vmlinux 0x554197fd elv_dispatch_sort +EXPORT_SYMBOL vmlinux 0x5541ea93 on_each_cpu +EXPORT_SYMBOL vmlinux 0x5567c227 kernel_cpustat +EXPORT_SYMBOL vmlinux 0x5594be03 bitmap_remap +EXPORT_SYMBOL vmlinux 0x55ae2247 phy_ethtool_set_wol +EXPORT_SYMBOL vmlinux 0x55b6da56 generic_setxattr +EXPORT_SYMBOL vmlinux 0x560147fd edma_unlink +EXPORT_SYMBOL vmlinux 0x5614b010 xfrm_policy_walk_done +EXPORT_SYMBOL vmlinux 0x561977ad nf_register_queue_handler +EXPORT_SYMBOL vmlinux 0x5635a60a vmalloc_user +EXPORT_SYMBOL vmlinux 0x563df56f generic_readlink +EXPORT_SYMBOL vmlinux 0x5642793a radix_tree_tag_clear +EXPORT_SYMBOL vmlinux 0x5666c5a9 set_page_dirty +EXPORT_SYMBOL vmlinux 0x56789ac5 omap_set_dma_color_mode +EXPORT_SYMBOL vmlinux 0x568317b9 mark_info_dirty +EXPORT_SYMBOL vmlinux 0x5689afe7 dispc_ovl_enable +EXPORT_SYMBOL vmlinux 0x56960aba snd_device_new +EXPORT_SYMBOL vmlinux 0x56bc2f15 dispc_ovl_set_channel_out +EXPORT_SYMBOL vmlinux 0x56c8799d scsi_kunmap_atomic_sg +EXPORT_SYMBOL vmlinux 0x56dadd30 key_unlink +EXPORT_SYMBOL vmlinux 0x56edd136 d_lookup +EXPORT_SYMBOL vmlinux 0x56f0896f tegra_periph_reset_assert +EXPORT_SYMBOL vmlinux 0x5701164e fddi_change_mtu +EXPORT_SYMBOL vmlinux 0x572d0104 _raw_write_unlock_irqrestore +EXPORT_SYMBOL vmlinux 0x572e85d4 blk_lookup_devt +EXPORT_SYMBOL vmlinux 0x57319c3a __qdisc_calculate_pkt_len +EXPORT_SYMBOL vmlinux 0x57452c37 tty_register_driver +EXPORT_SYMBOL vmlinux 0x574e38ec unregister_key_type +EXPORT_SYMBOL vmlinux 0x57575f08 dmaengine_put +EXPORT_SYMBOL vmlinux 0x57639b11 journal_forget +EXPORT_SYMBOL vmlinux 0x57674fd7 __sw_hweight16 +EXPORT_SYMBOL vmlinux 0x576e6a72 of_device_register +EXPORT_SYMBOL vmlinux 0x578bd3e1 tty_set_operations +EXPORT_SYMBOL vmlinux 0x5799a29f seq_open +EXPORT_SYMBOL vmlinux 0x579de3fb of_platform_bus_probe +EXPORT_SYMBOL vmlinux 0x57c5b719 snd_pcm_lib_readv +EXPORT_SYMBOL vmlinux 0x57c82849 insert_inode_locked +EXPORT_SYMBOL vmlinux 0x57cf0adc vlan_vids_add_by_dev +EXPORT_SYMBOL vmlinux 0x57f8f3ec dev_emerg +EXPORT_SYMBOL vmlinux 0x57fcd725 __frontswap_load +EXPORT_SYMBOL vmlinux 0x581154a7 genl_register_ops +EXPORT_SYMBOL vmlinux 0x5838f6c9 rtc_valid_tm +EXPORT_SYMBOL vmlinux 0x58516557 omap_set_dma_src_data_pack +EXPORT_SYMBOL vmlinux 0x588c130c vexpress_config_func_put +EXPORT_SYMBOL vmlinux 0x5891918f km_state_notify +EXPORT_SYMBOL vmlinux 0x5891c5a8 __scm_send +EXPORT_SYMBOL vmlinux 0x589dd6d2 blk_rq_map_user +EXPORT_SYMBOL vmlinux 0x58c06f11 scsi_device_get +EXPORT_SYMBOL vmlinux 0x58c76807 scsi_host_put +EXPORT_SYMBOL vmlinux 0x58d1070a of_get_address +EXPORT_SYMBOL vmlinux 0x58dc9eaf mnt_set_expiry +EXPORT_SYMBOL vmlinux 0x58e75c7b snd_pcm_hw_constraint_msbits +EXPORT_SYMBOL vmlinux 0x5913a647 blk_queue_bounce_limit +EXPORT_SYMBOL vmlinux 0x5932add9 phy_ethtool_gset +EXPORT_SYMBOL vmlinux 0x594bf15b ioport_map +EXPORT_SYMBOL vmlinux 0x594e1317 __modsi3 +EXPORT_SYMBOL vmlinux 0x5950b83b invalidate_mapping_pages +EXPORT_SYMBOL vmlinux 0x596e717c security_path_chown +EXPORT_SYMBOL vmlinux 0x598542b2 _raw_spin_lock_irqsave +EXPORT_SYMBOL vmlinux 0x598cd828 udp_table +EXPORT_SYMBOL vmlinux 0x599238b6 udp_lib_rehash +EXPORT_SYMBOL vmlinux 0x5996b9c8 xen_biovec_phys_mergeable +EXPORT_SYMBOL vmlinux 0x59a17bfc tegra114_clock_tune_cpu_trimmers_high +EXPORT_SYMBOL vmlinux 0x59af3bdf invalidate_inode_buffers +EXPORT_SYMBOL vmlinux 0x59bf21cb jbd2_journal_release_jbd_inode +EXPORT_SYMBOL vmlinux 0x59d29dab v7_flush_kern_dcache_area +EXPORT_SYMBOL vmlinux 0x59d4a526 devm_gpio_request_one +EXPORT_SYMBOL vmlinux 0x59d8223a ioport_resource +EXPORT_SYMBOL vmlinux 0x59e5070d __do_div64 +EXPORT_SYMBOL vmlinux 0x5a282102 kernel_write +EXPORT_SYMBOL vmlinux 0x5a310999 ps2_handle_ack +EXPORT_SYMBOL vmlinux 0x5a3e380b page_symlink_inode_operations +EXPORT_SYMBOL vmlinux 0x5a44c189 put_page +EXPORT_SYMBOL vmlinux 0x5a4dde6a mmc_wait_for_cmd +EXPORT_SYMBOL vmlinux 0x5a621d32 ip6_dst_hoplimit +EXPORT_SYMBOL vmlinux 0x5a74b84b skb_clone +EXPORT_SYMBOL vmlinux 0x5a80706e blk_get_request +EXPORT_SYMBOL vmlinux 0x5aa9c65a proc_create_data +EXPORT_SYMBOL vmlinux 0x5ac2581a unregister_framebuffer +EXPORT_SYMBOL vmlinux 0x5ae08b43 inet_bind +EXPORT_SYMBOL vmlinux 0x5ae5be44 lg_lock_init +EXPORT_SYMBOL vmlinux 0x5af3710b pci_select_bars +EXPORT_SYMBOL vmlinux 0x5af38555 __skb_tx_hash +EXPORT_SYMBOL vmlinux 0x5b062dd0 blk_delay_queue +EXPORT_SYMBOL vmlinux 0x5b0df17f of_find_i2c_adapter_by_node +EXPORT_SYMBOL vmlinux 0x5b136679 d_alloc_name +EXPORT_SYMBOL vmlinux 0x5b168704 inet_frags_fini +EXPORT_SYMBOL vmlinux 0x5b19634d div_s64_rem +EXPORT_SYMBOL vmlinux 0x5b469395 blk_queue_find_tag +EXPORT_SYMBOL vmlinux 0x5b6a1b91 __sock_create +EXPORT_SYMBOL vmlinux 0x5b72009f ida_simple_get +EXPORT_SYMBOL vmlinux 0x5b818343 pcix_get_mmrbc +EXPORT_SYMBOL vmlinux 0x5b99f48c snd_info_register +EXPORT_SYMBOL vmlinux 0x5b9d54cd proto_unregister +EXPORT_SYMBOL vmlinux 0x5ba1df94 cdev_add +EXPORT_SYMBOL vmlinux 0x5ba53020 vfs_fstat +EXPORT_SYMBOL vmlinux 0x5bae9caa find_get_page +EXPORT_SYMBOL vmlinux 0x5bb10b23 posix_lock_file_wait +EXPORT_SYMBOL vmlinux 0x5bb552ae netdev_alert +EXPORT_SYMBOL vmlinux 0x5bcc11de kmem_cache_free +EXPORT_SYMBOL vmlinux 0x5bd6d740 bdi_register_dev +EXPORT_SYMBOL vmlinux 0x5bdcab18 dst_release +EXPORT_SYMBOL vmlinux 0x5bddbccb genphy_read_status +EXPORT_SYMBOL vmlinux 0x5bec319a inode_init_once +EXPORT_SYMBOL vmlinux 0x5bf4a1eb sg_last +EXPORT_SYMBOL vmlinux 0x5bf8fd9c nf_log_set +EXPORT_SYMBOL vmlinux 0x5bfaca07 pci_disable_device +EXPORT_SYMBOL vmlinux 0x5bfe453b __blockdev_direct_IO +EXPORT_SYMBOL vmlinux 0x5c0091e2 input_mt_get_slot_by_key +EXPORT_SYMBOL vmlinux 0x5c1d2606 sk_filter +EXPORT_SYMBOL vmlinux 0x5c3b2171 blk_post_runtime_resume +EXPORT_SYMBOL vmlinux 0x5c47dfc3 skb_copy_and_csum_datagram_iovec +EXPORT_SYMBOL vmlinux 0x5c9284a0 processor_id +EXPORT_SYMBOL vmlinux 0x5c971ea2 vfs_llseek +EXPORT_SYMBOL vmlinux 0x5cedafca skb_checksum +EXPORT_SYMBOL vmlinux 0x5cf53ce2 input_free_minor +EXPORT_SYMBOL vmlinux 0x5d07532c kfree_skb +EXPORT_SYMBOL vmlinux 0x5d07b530 mdiobus_unregister +EXPORT_SYMBOL vmlinux 0x5d0b1892 param_set_invbool +EXPORT_SYMBOL vmlinux 0x5d13c518 tty_unlock +EXPORT_SYMBOL vmlinux 0x5d1caa29 netif_carrier_on +EXPORT_SYMBOL vmlinux 0x5d4f8c71 omapdss_sdi_set_datapairs +EXPORT_SYMBOL vmlinux 0x5d4fea5c cleancache_register_ops +EXPORT_SYMBOL vmlinux 0x5d51c818 neigh_destroy +EXPORT_SYMBOL vmlinux 0x5d550c4d scsi_sd_probe_domain +EXPORT_SYMBOL vmlinux 0x5d5b5a16 radix_tree_delete +EXPORT_SYMBOL vmlinux 0x5d6f7d86 filemap_page_mkwrite +EXPORT_SYMBOL vmlinux 0x5d72cf8c dcb_ieee_setapp +EXPORT_SYMBOL vmlinux 0x5d734065 kernel_sendmsg +EXPORT_SYMBOL vmlinux 0x5d871f8a scsi_cmd_blk_ioctl +EXPORT_SYMBOL vmlinux 0x5d891a64 idr_destroy +EXPORT_SYMBOL vmlinux 0x5d994d12 netlink_rcv_skb +EXPORT_SYMBOL vmlinux 0x5db4ffa7 sock_init_data +EXPORT_SYMBOL vmlinux 0x5de13337 __pci_register_driver +EXPORT_SYMBOL vmlinux 0x5e06f4c5 scsi_bios_ptable +EXPORT_SYMBOL vmlinux 0x5e0a298f poll_schedule_timeout +EXPORT_SYMBOL vmlinux 0x5e60eb27 omap_dma_unlink_lch +EXPORT_SYMBOL vmlinux 0x5e7271d3 dev_mc_add_excl +EXPORT_SYMBOL vmlinux 0x5e7f4920 snd_pcm_format_set_silence +EXPORT_SYMBOL vmlinux 0x5e95b1cd current_umask +EXPORT_SYMBOL vmlinux 0x5e9c27e9 skb_copy_and_csum_bits +EXPORT_SYMBOL vmlinux 0x5ea42b6a sock_no_poll +EXPORT_SYMBOL vmlinux 0x5ea741c6 kill_bdev +EXPORT_SYMBOL vmlinux 0x5eaeb6ec pipe_to_file +EXPORT_SYMBOL vmlinux 0x5eb02341 tty_insert_flip_string_flags +EXPORT_SYMBOL vmlinux 0x5eb24829 dm_shift_arg +EXPORT_SYMBOL vmlinux 0x5ed040b0 pm_set_vt_switch +EXPORT_SYMBOL vmlinux 0x5f005368 kstrtou8 +EXPORT_SYMBOL vmlinux 0x5f0b59f7 generic_write_sync +EXPORT_SYMBOL vmlinux 0x5f1d9ecb ip4_datagram_connect +EXPORT_SYMBOL vmlinux 0x5f20c5c8 skb_copy_datagram_from_iovec +EXPORT_SYMBOL vmlinux 0x5f22162a inet_unregister_protosw +EXPORT_SYMBOL vmlinux 0x5f2f094f security_path_rename +EXPORT_SYMBOL vmlinux 0x5f322bbb do_truncate +EXPORT_SYMBOL vmlinux 0x5f3427fe skb_tx_error +EXPORT_SYMBOL vmlinux 0x5f3c8f5c mmc_assume_removable +EXPORT_SYMBOL vmlinux 0x5f3e7c4a textsearch_find_continuous +EXPORT_SYMBOL vmlinux 0x5f58f676 flex_array_get_ptr +EXPORT_SYMBOL vmlinux 0x5f651ec9 xfrm6_rcv_spi +EXPORT_SYMBOL vmlinux 0x5f754e5a memset +EXPORT_SYMBOL vmlinux 0x5faf9271 vlan_vids_del_by_dev +EXPORT_SYMBOL vmlinux 0x5ff11cc3 pcibios_min_io +EXPORT_SYMBOL vmlinux 0x5ff65c5b sock_wmalloc +EXPORT_SYMBOL vmlinux 0x5ffbea4b i2c_smbus_read_block_data +EXPORT_SYMBOL vmlinux 0x60055baa dispc_mgr_get_vsync_irq +EXPORT_SYMBOL vmlinux 0x600683d3 do_unblank_screen +EXPORT_SYMBOL vmlinux 0x60145b65 snd_pcm_hw_constraint_minmax +EXPORT_SYMBOL vmlinux 0x601f665f dm_io_client_create +EXPORT_SYMBOL vmlinux 0x6021c1a6 register_key_type +EXPORT_SYMBOL vmlinux 0x6027ff24 journal_dirty_metadata +EXPORT_SYMBOL vmlinux 0x602c96f0 copy_to_user_fromio +EXPORT_SYMBOL vmlinux 0x60352082 register_inet6addr_notifier +EXPORT_SYMBOL vmlinux 0x60376398 dcache_dir_open +EXPORT_SYMBOL vmlinux 0x60541702 edma_alloc_slot +EXPORT_SYMBOL vmlinux 0x6059802d skb_queue_tail +EXPORT_SYMBOL vmlinux 0x605c2219 simple_transaction_set +EXPORT_SYMBOL vmlinux 0x606d0b09 secure_tcpv6_sequence_number +EXPORT_SYMBOL vmlinux 0x6082993a ilookup +EXPORT_SYMBOL vmlinux 0x609f1c7e synchronize_net +EXPORT_SYMBOL vmlinux 0x60a06c05 snd_pcm_lib_ioctl +EXPORT_SYMBOL vmlinux 0x60a32ea9 pm_power_off +EXPORT_SYMBOL vmlinux 0x60e86bc7 rps_may_expire_flow +EXPORT_SYMBOL vmlinux 0x60fed70e nand_scan_bbt +EXPORT_SYMBOL vmlinux 0x61203c65 fb_find_mode +EXPORT_SYMBOL vmlinux 0x612193d3 netdev_change_features +EXPORT_SYMBOL vmlinux 0x612390ad netpoll_set_trap +EXPORT_SYMBOL vmlinux 0x6123b5ae snd_device_register +EXPORT_SYMBOL vmlinux 0x6128b5fc __printk_ratelimit +EXPORT_SYMBOL vmlinux 0x612d842a rc5t583_ext_power_req_config +EXPORT_SYMBOL vmlinux 0x616050bf fsnotify_add_mark +EXPORT_SYMBOL vmlinux 0x61762016 tegra_periph_reset_deassert +EXPORT_SYMBOL vmlinux 0x617643a2 param_set_long +EXPORT_SYMBOL vmlinux 0x617a218d __cond_resched_lock +EXPORT_SYMBOL vmlinux 0x61990e6d phy_mac_interrupt +EXPORT_SYMBOL vmlinux 0x61b7b126 simple_strtoull +EXPORT_SYMBOL vmlinux 0x61d20a7a tcp_create_openreq_child +EXPORT_SYMBOL vmlinux 0x61e1850a edma_write_slot +EXPORT_SYMBOL vmlinux 0x61e45700 pci_restore_state +EXPORT_SYMBOL vmlinux 0x61e54a49 netpoll_send_udp +EXPORT_SYMBOL vmlinux 0x61f3eed4 tcp_syn_ack_timeout +EXPORT_SYMBOL vmlinux 0x620b2da6 scsi_add_device +EXPORT_SYMBOL vmlinux 0x6214aef2 cpufreq_unregister_notifier +EXPORT_SYMBOL vmlinux 0x6225637e md5_transform +EXPORT_SYMBOL vmlinux 0x6228c21f smp_call_function_single +EXPORT_SYMBOL vmlinux 0x622a0c41 should_remove_suid +EXPORT_SYMBOL vmlinux 0x623b8e2b ipv6_select_ident +EXPORT_SYMBOL vmlinux 0x62631d9c skb_push +EXPORT_SYMBOL vmlinux 0x62737e1d sock_unregister +EXPORT_SYMBOL vmlinux 0x62822d05 iov_iter_single_seg_count +EXPORT_SYMBOL vmlinux 0x62827bec security_secctx_to_secid +EXPORT_SYMBOL vmlinux 0x62849ac7 dev_valid_name +EXPORT_SYMBOL vmlinux 0x628ce6aa xfrm_cfg_mutex +EXPORT_SYMBOL vmlinux 0x62926d46 pci_fixup_device +EXPORT_SYMBOL vmlinux 0x629e462d journal_get_write_access +EXPORT_SYMBOL vmlinux 0x62c106fb d_add_ci +EXPORT_SYMBOL vmlinux 0x62d34ec2 kobject_del +EXPORT_SYMBOL vmlinux 0x62e227b9 vfs_fsync +EXPORT_SYMBOL vmlinux 0x62e934a6 devm_ioremap +EXPORT_SYMBOL vmlinux 0x62fd6207 param_set_charp +EXPORT_SYMBOL vmlinux 0x63187451 pcie_aspm_support_enabled +EXPORT_SYMBOL vmlinux 0x63408d38 ihold +EXPORT_SYMBOL vmlinux 0x636b3461 omap_dss_get_num_overlays +EXPORT_SYMBOL vmlinux 0x6381dbf7 arp_invalidate +EXPORT_SYMBOL vmlinux 0x638f9909 journal_update_format +EXPORT_SYMBOL vmlinux 0x63922bbd vfs_stat +EXPORT_SYMBOL vmlinux 0x63a748c8 netpoll_setup +EXPORT_SYMBOL vmlinux 0x63bb62e5 tty_port_raise_dtr_rts +EXPORT_SYMBOL vmlinux 0x63c2dbc7 xfrm_policy_flush +EXPORT_SYMBOL vmlinux 0x63d92f0a scsi_device_put +EXPORT_SYMBOL vmlinux 0x63eb9355 panic_blink +EXPORT_SYMBOL vmlinux 0x63f9a415 dma_common_mmap +EXPORT_SYMBOL vmlinux 0x63fc232f strlen_user +EXPORT_SYMBOL vmlinux 0x6403e338 tcp_memory_pressure +EXPORT_SYMBOL vmlinux 0x641699d6 dentry_update_name_case +EXPORT_SYMBOL vmlinux 0x642173a1 del_gendisk +EXPORT_SYMBOL vmlinux 0x6428ee88 omap_dss_get_next_device +EXPORT_SYMBOL vmlinux 0x6433b21e devm_clk_put +EXPORT_SYMBOL vmlinux 0x644cc85b dump_write +EXPORT_SYMBOL vmlinux 0x6485876d blk_dump_rq_flags +EXPORT_SYMBOL vmlinux 0x648bca81 __skb_get_rxhash +EXPORT_SYMBOL vmlinux 0x649368c0 dev_set_group +EXPORT_SYMBOL vmlinux 0x64999478 congestion_wait +EXPORT_SYMBOL vmlinux 0x64a22ff0 dispc_mgr_set_lcd_config +EXPORT_SYMBOL vmlinux 0x64b2dff7 blk_queue_start_tag +EXPORT_SYMBOL vmlinux 0x64bd49c6 fail_migrate_page +EXPORT_SYMBOL vmlinux 0x64c024dd seq_release_private +EXPORT_SYMBOL vmlinux 0x64c7adb4 tcp_sync_mss +EXPORT_SYMBOL vmlinux 0x64d233c8 ioremap_page +EXPORT_SYMBOL vmlinux 0x64e370b3 mmc_of_parse +EXPORT_SYMBOL vmlinux 0x650a6767 prandom_u32_state +EXPORT_SYMBOL vmlinux 0x650f8603 snd_pcm_format_silence_64 +EXPORT_SYMBOL vmlinux 0x6513a3fa fb_get_color_depth +EXPORT_SYMBOL vmlinux 0x651a4139 test_taint +EXPORT_SYMBOL vmlinux 0x65408378 zlib_inflate_blob +EXPORT_SYMBOL vmlinux 0x65466939 proc_doulongvec_ms_jiffies_minmax +EXPORT_SYMBOL vmlinux 0x654b4db3 pci_unmap_rom +EXPORT_SYMBOL vmlinux 0x6575f960 pci_find_parent_resource +EXPORT_SYMBOL vmlinux 0x6585e310 alloc_pages_exact_nid +EXPORT_SYMBOL vmlinux 0x65968489 __dst_destroy_metrics_generic +EXPORT_SYMBOL vmlinux 0x65a52d19 vm_iomap_memory +EXPORT_SYMBOL vmlinux 0x65c179d9 snd_pcm_hw_constraint_integer +EXPORT_SYMBOL vmlinux 0x65d67a20 blk_start_plug +EXPORT_SYMBOL vmlinux 0x65d9e877 cpufreq_register_notifier +EXPORT_SYMBOL vmlinux 0x65dccf13 xz_dec_end +EXPORT_SYMBOL vmlinux 0x65e7f29a md_write_start +EXPORT_SYMBOL vmlinux 0x65eb93df bdget_disk +EXPORT_SYMBOL vmlinux 0x65f3ad9a fb_videomode_to_var +EXPORT_SYMBOL vmlinux 0x65f6e941 bitmap_unplug +EXPORT_SYMBOL vmlinux 0x65fe4930 blk_queue_update_dma_alignment +EXPORT_SYMBOL vmlinux 0x65ff2b60 __inode_permission +EXPORT_SYMBOL vmlinux 0x6605f97f flex_array_clear +EXPORT_SYMBOL vmlinux 0x6609f1f7 dquot_enable +EXPORT_SYMBOL vmlinux 0x66107777 backlight_force_update +EXPORT_SYMBOL vmlinux 0x6618cab7 fb_firmware_edid +EXPORT_SYMBOL vmlinux 0x661f7d6e md_reap_sync_thread +EXPORT_SYMBOL vmlinux 0x663b6a91 thermal_cdev_update +EXPORT_SYMBOL vmlinux 0x663d4a8f of_device_alloc +EXPORT_SYMBOL vmlinux 0x66402ebf sock_no_ioctl +EXPORT_SYMBOL vmlinux 0x666d0e43 tty_port_close +EXPORT_SYMBOL vmlinux 0x668da8d5 zlib_inflateIncomp +EXPORT_SYMBOL vmlinux 0x66a67dab flex_array_shrink +EXPORT_SYMBOL vmlinux 0x66b3fdf8 textsearch_prepare +EXPORT_SYMBOL vmlinux 0x66d5c335 sk_stream_wait_memory +EXPORT_SYMBOL vmlinux 0x66d8d6b5 nf_unregister_hooks +EXPORT_SYMBOL vmlinux 0x670057a2 dma_mmap_from_coherent +EXPORT_SYMBOL vmlinux 0x670c698b xfrm_state_lookup_byaddr +EXPORT_SYMBOL vmlinux 0x67474f6f dquot_file_open +EXPORT_SYMBOL vmlinux 0x67576c27 journal_get_undo_access +EXPORT_SYMBOL vmlinux 0x6768aed8 ip6_xmit +EXPORT_SYMBOL vmlinux 0x676bbc0f _set_bit +EXPORT_SYMBOL vmlinux 0x67764f82 tcp_getsockopt +EXPORT_SYMBOL vmlinux 0x67865ac2 gnet_stats_copy_queue +EXPORT_SYMBOL vmlinux 0x67991c67 seq_put_decimal_ull +EXPORT_SYMBOL vmlinux 0x67b27ec1 tty_std_termios +EXPORT_SYMBOL vmlinux 0x67b78eb3 seq_hlist_next_rcu +EXPORT_SYMBOL vmlinux 0x67c47444 pcie_capability_read_word +EXPORT_SYMBOL vmlinux 0x67cebb15 jbd2_journal_errno +EXPORT_SYMBOL vmlinux 0x67f95dd6 snd_card_file_add +EXPORT_SYMBOL vmlinux 0x68348432 alloc_disk_node +EXPORT_SYMBOL vmlinux 0x6838dc8a gnet_stats_copy_basic +EXPORT_SYMBOL vmlinux 0x683cf3be d_obtain_alias +EXPORT_SYMBOL vmlinux 0x6851068e __ethtool_get_settings +EXPORT_SYMBOL vmlinux 0x685c5934 blk_end_request_all +EXPORT_SYMBOL vmlinux 0x68637387 netdev_err +EXPORT_SYMBOL vmlinux 0x686707db set_security_override_from_ctx +EXPORT_SYMBOL vmlinux 0x6871bece __dev_remove_pack +EXPORT_SYMBOL vmlinux 0x687b6a16 kdbgetsymval +EXPORT_SYMBOL vmlinux 0x68869bae panic_notifier_list +EXPORT_SYMBOL vmlinux 0x688beb2a mmc_erase +EXPORT_SYMBOL vmlinux 0x68901a1b __free_pages +EXPORT_SYMBOL vmlinux 0x68a24153 snd_pcm_format_physical_width +EXPORT_SYMBOL vmlinux 0x68ac4dfa unlink_framebuffer +EXPORT_SYMBOL vmlinux 0x68d52757 tty_chars_in_buffer +EXPORT_SYMBOL vmlinux 0x68e05d57 getrawmonotonic +EXPORT_SYMBOL vmlinux 0x68fb581a icst307_idx2s +EXPORT_SYMBOL vmlinux 0x69122274 xfrm_state_register_afinfo +EXPORT_SYMBOL vmlinux 0x6915eb38 down_interruptible +EXPORT_SYMBOL vmlinux 0x696428b1 nand_default_bbt +EXPORT_SYMBOL vmlinux 0x6971447a rtc_month_days +EXPORT_SYMBOL vmlinux 0x6977ce45 dquot_alloc_inode +EXPORT_SYMBOL vmlinux 0x697c9c5e xfrm4_rcv +EXPORT_SYMBOL vmlinux 0x6984a9ab dss_mgr_enable +EXPORT_SYMBOL vmlinux 0x69ad2f20 kstrtouint +EXPORT_SYMBOL vmlinux 0x69b6f8d9 omap_set_dma_transfer_params +EXPORT_SYMBOL vmlinux 0x69c2c013 snd_card_register +EXPORT_SYMBOL vmlinux 0x69d38ed9 __scsi_print_sense +EXPORT_SYMBOL vmlinux 0x69e27c7a bitmap_copy_le +EXPORT_SYMBOL vmlinux 0x6a037cf1 mempool_kfree +EXPORT_SYMBOL vmlinux 0x6a0a8723 add_disk +EXPORT_SYMBOL vmlinux 0x6a1cabff devm_gpio_request +EXPORT_SYMBOL vmlinux 0x6a1ccb1b edma_get_position +EXPORT_SYMBOL vmlinux 0x6a1d576b xfrm6_input_addr +EXPORT_SYMBOL vmlinux 0x6a3c47b2 lease_get_mtime +EXPORT_SYMBOL vmlinux 0x6a3ea24f mb_cache_entry_free +EXPORT_SYMBOL vmlinux 0x6a5ac4e1 inet_sk_rx_dst_set +EXPORT_SYMBOL vmlinux 0x6a5ecb18 unregister_module_notifier +EXPORT_SYMBOL vmlinux 0x6a76f3ac blk_iopoll_enable +EXPORT_SYMBOL vmlinux 0x6a781b12 ps2_command +EXPORT_SYMBOL vmlinux 0x6a7d786c genphy_config_aneg +EXPORT_SYMBOL vmlinux 0x6a96cff8 padata_do_parallel +EXPORT_SYMBOL vmlinux 0x6ae9168a dquot_quota_off +EXPORT_SYMBOL vmlinux 0x6b020202 phy_init_eee +EXPORT_SYMBOL vmlinux 0x6b06fdce delayed_work_timer_fn +EXPORT_SYMBOL vmlinux 0x6b1b67d3 __bdevname +EXPORT_SYMBOL vmlinux 0x6b1daf4e ppp_channel_index +EXPORT_SYMBOL vmlinux 0x6b231777 nand_bch_calculate_ecc +EXPORT_SYMBOL vmlinux 0x6b2974fb mapping_tagged +EXPORT_SYMBOL vmlinux 0x6b2db8ae vfs_lstat +EXPORT_SYMBOL vmlinux 0x6b2dc060 dump_stack +EXPORT_SYMBOL vmlinux 0x6b7589f4 param_set_bool +EXPORT_SYMBOL vmlinux 0x6b77a2b4 security_d_instantiate +EXPORT_SYMBOL vmlinux 0x6b8f37ee kernel_read +EXPORT_SYMBOL vmlinux 0x6b9ddbb8 generic_removexattr +EXPORT_SYMBOL vmlinux 0x6bb481bc tcp_splice_read +EXPORT_SYMBOL vmlinux 0x6bc3fbc0 __unregister_chrdev +EXPORT_SYMBOL vmlinux 0x6bdcfd99 qdisc_class_hash_remove +EXPORT_SYMBOL vmlinux 0x6bf42a67 snd_pcm_new_internal +EXPORT_SYMBOL vmlinux 0x6c19e4f3 __secpath_destroy +EXPORT_SYMBOL vmlinux 0x6c1ce5ce strcspn +EXPORT_SYMBOL vmlinux 0x6c2659c6 pci_iounmap +EXPORT_SYMBOL vmlinux 0x6c33f563 fsnotify_put_mark +EXPORT_SYMBOL vmlinux 0x6c459cd2 genphy_suspend +EXPORT_SYMBOL vmlinux 0x6c46d6aa register_netdev +EXPORT_SYMBOL vmlinux 0x6c558b25 iw_handler_get_thrspy +EXPORT_SYMBOL vmlinux 0x6c61ce70 num_registered_fb +EXPORT_SYMBOL vmlinux 0x6c6cdd4d wait_for_completion_interruptible_timeout +EXPORT_SYMBOL vmlinux 0x6c702af7 sysctl_udp_rmem_min +EXPORT_SYMBOL vmlinux 0x6c8680ef blkdev_get +EXPORT_SYMBOL vmlinux 0x6c8e1f86 vga_tryget +EXPORT_SYMBOL vmlinux 0x6c9ba4b2 pci_bus_find_capability +EXPORT_SYMBOL vmlinux 0x6ca8c95e con_set_default_unimap +EXPORT_SYMBOL vmlinux 0x6cae4d53 journal_ack_err +EXPORT_SYMBOL vmlinux 0x6cc03292 blkdev_get_by_dev +EXPORT_SYMBOL vmlinux 0x6ccdd1c2 skb_pad +EXPORT_SYMBOL vmlinux 0x6ccf7bd7 __pv_phys_offset +EXPORT_SYMBOL vmlinux 0x6cd0ab49 blk_queue_logical_block_size +EXPORT_SYMBOL vmlinux 0x6cdc5c6b nla_strlcpy +EXPORT_SYMBOL vmlinux 0x6cee624a input_free_device +EXPORT_SYMBOL vmlinux 0x6d044c26 param_ops_uint +EXPORT_SYMBOL vmlinux 0x6d0f1f89 dm_table_get_mode +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 0x6d662533 _find_first_bit_le +EXPORT_SYMBOL vmlinux 0x6d678d5a generic_writepages +EXPORT_SYMBOL vmlinux 0x6d6de971 twl6040_reg_read +EXPORT_SYMBOL vmlinux 0x6d8492c7 simple_lookup +EXPORT_SYMBOL vmlinux 0x6d98a110 gen_new_estimator +EXPORT_SYMBOL vmlinux 0x6d9f9d07 elv_dispatch_add_tail +EXPORT_SYMBOL vmlinux 0x6da27849 clocksource_change_rating +EXPORT_SYMBOL vmlinux 0x6dd3ebe5 find_vma +EXPORT_SYMBOL vmlinux 0x6ddaeff8 __dec_zone_page_state +EXPORT_SYMBOL vmlinux 0x6ddb4af5 scsi_is_host_device +EXPORT_SYMBOL vmlinux 0x6dedfa8c jbd2_journal_force_commit +EXPORT_SYMBOL vmlinux 0x6def2db2 half_md4_transform +EXPORT_SYMBOL vmlinux 0x6dff9176 dquot_get_dqblk +EXPORT_SYMBOL vmlinux 0x6e308775 bio_pair_release +EXPORT_SYMBOL vmlinux 0x6e37ec8a poll_freewait +EXPORT_SYMBOL vmlinux 0x6e720ff2 rtnl_unlock +EXPORT_SYMBOL vmlinux 0x6e752fb8 skb_queue_head +EXPORT_SYMBOL vmlinux 0x6e88e56f snd_pcm_link_rwlock +EXPORT_SYMBOL vmlinux 0x6e9dd606 __symbol_put +EXPORT_SYMBOL vmlinux 0x6e9df7d3 pci_bus_read_config_byte +EXPORT_SYMBOL vmlinux 0x6ea9d3b2 phy_start_aneg +EXPORT_SYMBOL vmlinux 0x6eb75f56 abx500_startup_irq_enabled +EXPORT_SYMBOL vmlinux 0x6ed3434a md_error +EXPORT_SYMBOL vmlinux 0x6ed91c54 update_devfreq +EXPORT_SYMBOL vmlinux 0x6ee009a3 md_unregister_thread +EXPORT_SYMBOL vmlinux 0x6ee0d967 scsi_device_quiesce +EXPORT_SYMBOL vmlinux 0x6ee19ef6 mount_single +EXPORT_SYMBOL vmlinux 0x6eed4679 sock_release +EXPORT_SYMBOL vmlinux 0x6ef8fcd8 snd_pcm_format_linear +EXPORT_SYMBOL vmlinux 0x6f0a407b pci_request_selected_regions_exclusive +EXPORT_SYMBOL vmlinux 0x6f20960a full_name_hash +EXPORT_SYMBOL vmlinux 0x6f2397cd pci_platform_rom +EXPORT_SYMBOL vmlinux 0x6f3ca82d tty_do_resize +EXPORT_SYMBOL vmlinux 0x6f536ea4 directly_mappable_cdev_bdi +EXPORT_SYMBOL vmlinux 0x6f578a6c xfrm_policy_insert +EXPORT_SYMBOL vmlinux 0x6f59d6f7 security_inode_listsecurity +EXPORT_SYMBOL vmlinux 0x6f6b2f20 d_drop +EXPORT_SYMBOL vmlinux 0x6f716359 elevator_alloc +EXPORT_SYMBOL vmlinux 0x6f83c669 udp_lib_get_port +EXPORT_SYMBOL vmlinux 0x6fa5fc36 soft_cursor +EXPORT_SYMBOL vmlinux 0x6fcb87a1 touch_softlockup_watchdog +EXPORT_SYMBOL vmlinux 0x6fd0b20f max8998_bulk_write +EXPORT_SYMBOL vmlinux 0x700229fc input_mt_init_slots +EXPORT_SYMBOL vmlinux 0x70097aa0 nand_bch_free +EXPORT_SYMBOL vmlinux 0x70174cf8 scsi_release_buffers +EXPORT_SYMBOL vmlinux 0x7017ac5e tcp_init_sock +EXPORT_SYMBOL vmlinux 0x70220616 register_mtd_chip_driver +EXPORT_SYMBOL vmlinux 0x70523a7a __cond_resched_softirq +EXPORT_SYMBOL vmlinux 0x70564516 mmc_gpio_get_cd +EXPORT_SYMBOL vmlinux 0x706c06dc i2c_master_recv +EXPORT_SYMBOL vmlinux 0x707bae7c dev_addr_add_multiple +EXPORT_SYMBOL vmlinux 0x707e0037 cfb_imageblit +EXPORT_SYMBOL vmlinux 0x707f43f6 __ctzdi2 +EXPORT_SYMBOL vmlinux 0x70a32b8f of_dev_put +EXPORT_SYMBOL vmlinux 0x70b35938 scsi_register +EXPORT_SYMBOL vmlinux 0x70b603bd __scsi_device_lookup +EXPORT_SYMBOL vmlinux 0x70b8f9ec jbd2_journal_clear_err +EXPORT_SYMBOL vmlinux 0x70bc17d7 inode_wait +EXPORT_SYMBOL vmlinux 0x70c2b6a3 scsi_execute +EXPORT_SYMBOL vmlinux 0x70c58a8a xfrm_state_delete_tunnel +EXPORT_SYMBOL vmlinux 0x70d053fd try_to_del_timer_sync +EXPORT_SYMBOL vmlinux 0x70e0ec02 seq_putc +EXPORT_SYMBOL vmlinux 0x70e39dae dss_uninstall_mgr_ops +EXPORT_SYMBOL vmlinux 0x70e466e1 ipv6_dev_get_saddr +EXPORT_SYMBOL vmlinux 0x70ed7f9d ip_defrag +EXPORT_SYMBOL vmlinux 0x70f49842 devm_backlight_device_register +EXPORT_SYMBOL vmlinux 0x7100c46b drop_nlink +EXPORT_SYMBOL vmlinux 0x7129c3e8 frontswap_register_ops +EXPORT_SYMBOL vmlinux 0x7129e5f8 hex_asc +EXPORT_SYMBOL vmlinux 0x71372e53 iput +EXPORT_SYMBOL vmlinux 0x7142c63c edma_free_slot +EXPORT_SYMBOL vmlinux 0x71658a05 dispc_ovl_setup +EXPORT_SYMBOL vmlinux 0x7168c6d9 bdi_init +EXPORT_SYMBOL vmlinux 0x7171121c overflowgid +EXPORT_SYMBOL vmlinux 0x718b2bf1 remove_arg_zero +EXPORT_SYMBOL vmlinux 0x718c5641 scsi_register_interface +EXPORT_SYMBOL vmlinux 0x71988a47 dma_async_tx_descriptor_init +EXPORT_SYMBOL vmlinux 0x7199c502 netif_napi_del +EXPORT_SYMBOL vmlinux 0x71a50dbc register_blkdev +EXPORT_SYMBOL vmlinux 0x71a672ef dmam_pool_destroy +EXPORT_SYMBOL vmlinux 0x71c90087 memcmp +EXPORT_SYMBOL vmlinux 0x71cd60c4 blk_rq_map_kern +EXPORT_SYMBOL vmlinux 0x71f65175 hdmi_spd_infoframe_pack +EXPORT_SYMBOL vmlinux 0x71fa483f dev_printk +EXPORT_SYMBOL vmlinux 0x71fb61c5 dev_get_by_flags_rcu +EXPORT_SYMBOL vmlinux 0x7201e73a vfs_readlink +EXPORT_SYMBOL vmlinux 0x722686d8 kernel_sendpage +EXPORT_SYMBOL vmlinux 0x7227db06 __quota_error +EXPORT_SYMBOL vmlinux 0x72350130 ___ratelimit +EXPORT_SYMBOL vmlinux 0x727818da netif_device_detach +EXPORT_SYMBOL vmlinux 0x72bc8ce9 read_dev_sector +EXPORT_SYMBOL vmlinux 0x72d486e4 bioset_integrity_create +EXPORT_SYMBOL vmlinux 0x72d4c271 omapdss_default_get_timings +EXPORT_SYMBOL vmlinux 0x72d58de9 kstrtou8_from_user +EXPORT_SYMBOL vmlinux 0x72e7cf5f create_empty_buffers +EXPORT_SYMBOL vmlinux 0x72ea7b2d scsi_device_type +EXPORT_SYMBOL vmlinux 0x72f36758 kfree_skb_partial +EXPORT_SYMBOL vmlinux 0x72f3a5b1 input_unregister_device +EXPORT_SYMBOL vmlinux 0x731485b4 snd_device_free +EXPORT_SYMBOL vmlinux 0x7315a4e9 twl6030_mmc_card_detect_config +EXPORT_SYMBOL vmlinux 0x7318f8c8 input_release_device +EXPORT_SYMBOL vmlinux 0x731b81f1 __wait_on_bit +EXPORT_SYMBOL vmlinux 0x733c3b54 kasprintf +EXPORT_SYMBOL vmlinux 0x73542411 omapdss_dpi_set_data_lines +EXPORT_SYMBOL vmlinux 0x7363f896 generic_pipe_buf_unmap +EXPORT_SYMBOL vmlinux 0x7366d1bc snd_add_device_sysfs_file +EXPORT_SYMBOL vmlinux 0x736a534d ipv6_push_nfrag_opts +EXPORT_SYMBOL vmlinux 0x737de5e9 radix_tree_tag_get +EXPORT_SYMBOL vmlinux 0x738433d6 inet6_register_protosw +EXPORT_SYMBOL vmlinux 0x738fe5d8 dev_get_drvdata +EXPORT_SYMBOL vmlinux 0x73a1575b __sg_page_iter_start +EXPORT_SYMBOL vmlinux 0x73bc684d dev_trans_start +EXPORT_SYMBOL vmlinux 0x73bee4eb __skb_gso_segment +EXPORT_SYMBOL vmlinux 0x73e20c1c strlcpy +EXPORT_SYMBOL vmlinux 0x740f81a6 netdev_crit +EXPORT_SYMBOL vmlinux 0x74217936 neigh_table_clear +EXPORT_SYMBOL vmlinux 0x7469fcfe radix_tree_tagged +EXPORT_SYMBOL vmlinux 0x747b598b blk_pre_runtime_resume +EXPORT_SYMBOL vmlinux 0x7485e15e unregister_chrdev_region +EXPORT_SYMBOL vmlinux 0x74adb96b journal_check_available_features +EXPORT_SYMBOL vmlinux 0x74ae3099 jbd2_journal_set_features +EXPORT_SYMBOL vmlinux 0x74ba7aa7 snd_jack_set_parent +EXPORT_SYMBOL vmlinux 0x74c0452f jbd2_journal_ack_err +EXPORT_SYMBOL vmlinux 0x74c134b9 __sw_hweight32 +EXPORT_SYMBOL vmlinux 0x74c2d455 bdi_setup_and_register +EXPORT_SYMBOL vmlinux 0x74c908db replace_mount_options +EXPORT_SYMBOL vmlinux 0x74ce05b8 flush_delayed_work +EXPORT_SYMBOL vmlinux 0x74e46dac imx_ssi_fiq_tx_buffer +EXPORT_SYMBOL vmlinux 0x74e5ff1a udpv6_encap_enable +EXPORT_SYMBOL vmlinux 0x74f1ff0b page_address +EXPORT_SYMBOL vmlinux 0x74f63b1e nf_ip6_checksum +EXPORT_SYMBOL vmlinux 0x75057c31 posix_acl_equiv_mode +EXPORT_SYMBOL vmlinux 0x7505bdef memchr_inv +EXPORT_SYMBOL vmlinux 0x752944e6 elv_rb_find +EXPORT_SYMBOL vmlinux 0x7529e401 install_exec_creds +EXPORT_SYMBOL vmlinux 0x752e8e0e omap_dss_put_device +EXPORT_SYMBOL vmlinux 0x7537ec9f get_super_thawed +EXPORT_SYMBOL vmlinux 0x753a8f44 dev_getfirstbyhwtype +EXPORT_SYMBOL vmlinux 0x75404e1e iterate_dir +EXPORT_SYMBOL vmlinux 0x754dac78 blk_limits_io_min +EXPORT_SYMBOL vmlinux 0x7562ee5a ptp_clock_index +EXPORT_SYMBOL vmlinux 0x7563e1d2 key_put +EXPORT_SYMBOL vmlinux 0x7593d385 div64_s64 +EXPORT_SYMBOL vmlinux 0x75a331c3 tty_flip_buffer_push +EXPORT_SYMBOL vmlinux 0x75a97216 devfreq_remove_governor +EXPORT_SYMBOL vmlinux 0x75acb21c pcie_capability_clear_and_set_dword +EXPORT_SYMBOL vmlinux 0x75b33be1 iterate_fd +EXPORT_SYMBOL vmlinux 0x75bda77a seq_hlist_next +EXPORT_SYMBOL vmlinux 0x75ea3f58 nla_put_nohdr +EXPORT_SYMBOL vmlinux 0x75fee7fd __raw_writesb +EXPORT_SYMBOL vmlinux 0x760a0f4f yield +EXPORT_SYMBOL vmlinux 0x7617591c journal_extend +EXPORT_SYMBOL vmlinux 0x7647726c handle_sysrq +EXPORT_SYMBOL vmlinux 0x764ac586 tty_driver_kref_put +EXPORT_SYMBOL vmlinux 0x7655ed64 ata_print_version +EXPORT_SYMBOL vmlinux 0x76669032 qdisc_watchdog_cancel +EXPORT_SYMBOL vmlinux 0x767e8f70 tcp_recvmsg +EXPORT_SYMBOL vmlinux 0x76953131 dss_mgr_start_update +EXPORT_SYMBOL vmlinux 0x76abd3f6 mmc_gpio_request_cd +EXPORT_SYMBOL vmlinux 0x76ae08b0 make_bad_inode +EXPORT_SYMBOL vmlinux 0x76bf656d __bitmap_shift_left +EXPORT_SYMBOL vmlinux 0x76cf47f6 __aeabi_llsl +EXPORT_SYMBOL vmlinux 0x76d3cd60 laptop_mode +EXPORT_SYMBOL vmlinux 0x76d451c4 add_taint +EXPORT_SYMBOL vmlinux 0x76e2308f tcp_parse_options +EXPORT_SYMBOL vmlinux 0x770059a9 __nla_reserve +EXPORT_SYMBOL vmlinux 0x7702e5e2 xfrm_policy_walk +EXPORT_SYMBOL vmlinux 0x7711e009 tty_kref_put +EXPORT_SYMBOL vmlinux 0x773a9c94 blk_iopoll_enabled +EXPORT_SYMBOL vmlinux 0x7746ff80 twl6040_reg_write +EXPORT_SYMBOL vmlinux 0x774afc11 __vexpress_config_func_get +EXPORT_SYMBOL vmlinux 0x778e0785 led_set_brightness +EXPORT_SYMBOL vmlinux 0x7791193f icst525_s2div +EXPORT_SYMBOL vmlinux 0x779a139f snd_pcm_debug_name +EXPORT_SYMBOL vmlinux 0x779a18af kstrtoll +EXPORT_SYMBOL vmlinux 0x77bc13a0 strim +EXPORT_SYMBOL vmlinux 0x77ce93b3 qid_lt +EXPORT_SYMBOL vmlinux 0x77df0847 __set_personality +EXPORT_SYMBOL vmlinux 0x77e104e1 input_mt_destroy_slots +EXPORT_SYMBOL vmlinux 0x77ecac9f zlib_inflateEnd +EXPORT_SYMBOL vmlinux 0x77f77176 pcim_iomap_table +EXPORT_SYMBOL vmlinux 0x77fe4cb2 sleep_on_timeout +EXPORT_SYMBOL vmlinux 0x7804d1cd iw_handler_set_thrspy +EXPORT_SYMBOL vmlinux 0x781dc96d journal_release_buffer +EXPORT_SYMBOL vmlinux 0x783b3563 wake_up_atomic_t +EXPORT_SYMBOL vmlinux 0x7864fb83 dm_io +EXPORT_SYMBOL vmlinux 0x7873a629 d_set_d_op +EXPORT_SYMBOL vmlinux 0x7880c781 dm_kcopyd_prepare_callback +EXPORT_SYMBOL vmlinux 0x788256b3 serio_unregister_child_port +EXPORT_SYMBOL vmlinux 0x788fe103 iomem_resource +EXPORT_SYMBOL vmlinux 0x789affb1 frontswap_tmem_exclusive_gets +EXPORT_SYMBOL vmlinux 0x78b38ed6 tcp_v4_conn_request +EXPORT_SYMBOL vmlinux 0x78bc14c1 blk_rq_count_integrity_sg +EXPORT_SYMBOL vmlinux 0x78c8a55b scsi_dma_unmap +EXPORT_SYMBOL vmlinux 0x78d882a0 check_disk_size_change +EXPORT_SYMBOL vmlinux 0x78db0e40 __get_page_tail +EXPORT_SYMBOL vmlinux 0x78df6bd7 no_pci_devices +EXPORT_SYMBOL vmlinux 0x78ebc906 __blk_end_request_cur +EXPORT_SYMBOL vmlinux 0x79086627 mark_buffer_dirty +EXPORT_SYMBOL vmlinux 0x790e4007 vfs_path_lookup +EXPORT_SYMBOL vmlinux 0x791645dc ps2_begin_command +EXPORT_SYMBOL vmlinux 0x7930d225 of_device_is_compatible +EXPORT_SYMBOL vmlinux 0x7934b612 jbd2_journal_check_used_features +EXPORT_SYMBOL vmlinux 0x795bbb1a devfreq_monitor_resume +EXPORT_SYMBOL vmlinux 0x795f3d06 mount_ns +EXPORT_SYMBOL vmlinux 0x7961cca9 snd_timer_notify +EXPORT_SYMBOL vmlinux 0x796f2e87 nand_correct_data +EXPORT_SYMBOL vmlinux 0x796fc5ce scsi_get_sense_info_fld +EXPORT_SYMBOL vmlinux 0x79758f50 __dev_getfirstbyhwtype +EXPORT_SYMBOL vmlinux 0x79796945 audit_log +EXPORT_SYMBOL vmlinux 0x799f1c6d arp_xmit +EXPORT_SYMBOL vmlinux 0x79a973cb genl_register_mc_group +EXPORT_SYMBOL vmlinux 0x79aa04a2 get_random_bytes +EXPORT_SYMBOL vmlinux 0x79c42bfa filemap_fdatawrite +EXPORT_SYMBOL vmlinux 0x79e7a020 ip_ct_attach +EXPORT_SYMBOL vmlinux 0x79fa1deb imx_ssi_fiq_rx_buffer +EXPORT_SYMBOL vmlinux 0x7a16f736 serial8250_set_isa_configurator +EXPORT_SYMBOL vmlinux 0x7a188791 prandom_bytes +EXPORT_SYMBOL vmlinux 0x7a27c184 ewma_init +EXPORT_SYMBOL vmlinux 0x7a3675db loop_register_transfer +EXPORT_SYMBOL vmlinux 0x7a4497db kzfree +EXPORT_SYMBOL vmlinux 0x7a5cff13 pci_get_class +EXPORT_SYMBOL vmlinux 0x7a687f20 bfifo_qdisc_ops +EXPORT_SYMBOL vmlinux 0x7a6d5856 blk_queue_free_tags +EXPORT_SYMBOL vmlinux 0x7a7b76a1 security_inode_getsecctx +EXPORT_SYMBOL vmlinux 0x7a7d0409 inet_del_offload +EXPORT_SYMBOL vmlinux 0x7a8d4490 tcf_exts_dump +EXPORT_SYMBOL vmlinux 0x7a91726b clkdev_alloc +EXPORT_SYMBOL vmlinux 0x7a925833 cpufreq_get_global_kobject +EXPORT_SYMBOL vmlinux 0x7ab03d05 __starget_for_each_device +EXPORT_SYMBOL vmlinux 0x7ab88a45 system_freezing_cnt +EXPORT_SYMBOL vmlinux 0x7ac3ed38 pneigh_enqueue +EXPORT_SYMBOL vmlinux 0x7ac8b04c __insert_inode_hash +EXPORT_SYMBOL vmlinux 0x7ad41bf9 posix_acl_valid +EXPORT_SYMBOL vmlinux 0x7adbf779 amba_driver_unregister +EXPORT_SYMBOL vmlinux 0x7afa89fc vsnprintf +EXPORT_SYMBOL vmlinux 0x7aff9b82 mount_nodev +EXPORT_SYMBOL vmlinux 0x7b00174a clk_add_alias +EXPORT_SYMBOL vmlinux 0x7b03848a verify_mem_not_deleted +EXPORT_SYMBOL vmlinux 0x7b218597 kmap +EXPORT_SYMBOL vmlinux 0x7b5c8440 vm_munmap +EXPORT_SYMBOL vmlinux 0x7b6646bb _raw_read_lock +EXPORT_SYMBOL vmlinux 0x7b741153 fb_set_var +EXPORT_SYMBOL vmlinux 0x7b747042 ata_std_end_eh +EXPORT_SYMBOL vmlinux 0x7b778536 bio_add_pc_page +EXPORT_SYMBOL vmlinux 0x7b7f0242 sock_setsockopt +EXPORT_SYMBOL vmlinux 0x7b861cfb snd_ctl_add +EXPORT_SYMBOL vmlinux 0x7ba6664d freeze_bdev +EXPORT_SYMBOL vmlinux 0x7bc9cb67 vfs_statfs +EXPORT_SYMBOL vmlinux 0x7bcbb11f pci_lost_interrupt +EXPORT_SYMBOL vmlinux 0x7bcfd94b __nlmsg_put +EXPORT_SYMBOL vmlinux 0x7bd15324 bdev_stack_limits +EXPORT_SYMBOL vmlinux 0x7be37711 xfrm_state_alloc +EXPORT_SYMBOL vmlinux 0x7bed70e6 inet_dgram_ops +EXPORT_SYMBOL vmlinux 0x7c1372e8 panic +EXPORT_SYMBOL vmlinux 0x7c1732ce mmc_release_host +EXPORT_SYMBOL vmlinux 0x7c435640 mmc_register_driver +EXPORT_SYMBOL vmlinux 0x7c46233a cpufreq_quick_get +EXPORT_SYMBOL vmlinux 0x7c76c603 mmc_align_data_size +EXPORT_SYMBOL vmlinux 0x7c7e3a6e omapdss_output_set_device +EXPORT_SYMBOL vmlinux 0x7c8d4e7e skb_copy_datagram_iovec +EXPORT_SYMBOL vmlinux 0x7c8f1d4a snd_jack_report +EXPORT_SYMBOL vmlinux 0x7c98845d twl_i2c_read +EXPORT_SYMBOL vmlinux 0x7ca0d341 neigh_for_each +EXPORT_SYMBOL vmlinux 0x7ca463ab vfs_mkdir +EXPORT_SYMBOL vmlinux 0x7cae917a snd_timer_pause +EXPORT_SYMBOL vmlinux 0x7cb1ae69 cpu_down +EXPORT_SYMBOL vmlinux 0x7cb46bc2 ipv6_chk_custom_prefix +EXPORT_SYMBOL vmlinux 0x7cb9cf99 generic_make_request +EXPORT_SYMBOL vmlinux 0x7cbe8095 dispc_mgr_set_timings +EXPORT_SYMBOL vmlinux 0x7cc035a7 __ucmpdi2 +EXPORT_SYMBOL vmlinux 0x7d0db45c jiffies_to_clock_t +EXPORT_SYMBOL vmlinux 0x7d0e3e72 ida_get_new_above +EXPORT_SYMBOL vmlinux 0x7d0ef9e5 dma_async_device_unregister +EXPORT_SYMBOL vmlinux 0x7d113499 simple_rmdir +EXPORT_SYMBOL vmlinux 0x7d11c268 jiffies +EXPORT_SYMBOL vmlinux 0x7d2c0224 seq_printf +EXPORT_SYMBOL vmlinux 0x7d2c4f50 of_match_device +EXPORT_SYMBOL vmlinux 0x7d2e01b9 skb_append +EXPORT_SYMBOL vmlinux 0x7d366e0d lock_may_write +EXPORT_SYMBOL vmlinux 0x7d37de5e load_nls +EXPORT_SYMBOL vmlinux 0x7d4e2276 __init_rwsem +EXPORT_SYMBOL vmlinux 0x7d5a02fc blk_queue_io_min +EXPORT_SYMBOL vmlinux 0x7d7750fc bio_get_nr_vecs +EXPORT_SYMBOL vmlinux 0x7d83f5f3 misc_register +EXPORT_SYMBOL vmlinux 0x7d901b35 seq_read +EXPORT_SYMBOL vmlinux 0x7dccc294 proc_doulongvec_minmax +EXPORT_SYMBOL vmlinux 0x7deff673 dm_consume_args +EXPORT_SYMBOL vmlinux 0x7e25db41 __mmc_claim_host +EXPORT_SYMBOL vmlinux 0x7e2754b7 arp_find +EXPORT_SYMBOL vmlinux 0x7e284616 input_event +EXPORT_SYMBOL vmlinux 0x7e328510 netif_set_real_num_rx_queues +EXPORT_SYMBOL vmlinux 0x7e394c4e sysctl_local_reserved_ports +EXPORT_SYMBOL vmlinux 0x7e399891 truncate_inode_pages_range +EXPORT_SYMBOL vmlinux 0x7e432a24 register_netdevice +EXPORT_SYMBOL vmlinux 0x7e7a907e amba_device_unregister +EXPORT_SYMBOL vmlinux 0x7e98d318 vexpress_config_read +EXPORT_SYMBOL vmlinux 0x7e9efe8e complete_and_exit +EXPORT_SYMBOL vmlinux 0x7ead817c __idr_pre_get +EXPORT_SYMBOL vmlinux 0x7eb40fae sk_alloc +EXPORT_SYMBOL vmlinux 0x7ecc217e xfrm_garbage_collect +EXPORT_SYMBOL vmlinux 0x7f0d59d8 __alloc_pages_nodemask +EXPORT_SYMBOL vmlinux 0x7f136f18 dcb_ieee_getapp_mask +EXPORT_SYMBOL vmlinux 0x7f171f4f key_alloc +EXPORT_SYMBOL vmlinux 0x7f20a774 rt6_lookup +EXPORT_SYMBOL vmlinux 0x7f24de73 jiffies_to_usecs +EXPORT_SYMBOL vmlinux 0x7f28b468 alloc_pci_dev +EXPORT_SYMBOL vmlinux 0x7f33a63b omap_get_dma_chain_dst_pos +EXPORT_SYMBOL vmlinux 0x7f45d194 input_register_device +EXPORT_SYMBOL vmlinux 0x7f554d27 dev_mc_sync +EXPORT_SYMBOL vmlinux 0x7f58516e ipv6_chk_prefix +EXPORT_SYMBOL vmlinux 0x7f63b31e _memcpy_toio +EXPORT_SYMBOL vmlinux 0x7f6ec5a8 nand_lock +EXPORT_SYMBOL vmlinux 0x7f6ff426 tcf_exts_change +EXPORT_SYMBOL vmlinux 0x7f7854f2 xfrm6_find_1stfragopt +EXPORT_SYMBOL vmlinux 0x7f991024 generic_cont_expand_simple +EXPORT_SYMBOL vmlinux 0x7f9f7225 tty_vhangup +EXPORT_SYMBOL vmlinux 0x7fa64cca omap_dss_pal_timings +EXPORT_SYMBOL vmlinux 0x7fc98787 phy_ethtool_get_eee +EXPORT_SYMBOL vmlinux 0x7fcca0fe sock_wake_async +EXPORT_SYMBOL vmlinux 0x7fe32873 rb_replace_node +EXPORT_SYMBOL vmlinux 0x7fe66e81 snd_timer_open +EXPORT_SYMBOL vmlinux 0x7fed7d9e block_is_partially_uptodate +EXPORT_SYMBOL vmlinux 0x800a981d padata_set_cpumasks +EXPORT_SYMBOL vmlinux 0x800e4ffa __muldi3 +EXPORT_SYMBOL vmlinux 0x801a5084 udp_lib_setsockopt +EXPORT_SYMBOL vmlinux 0x80412ec1 vga_client_register +EXPORT_SYMBOL vmlinux 0x805a5c9d build_skb +EXPORT_SYMBOL vmlinux 0x8061d4a0 inet_proto_csum_replace16 +EXPORT_SYMBOL vmlinux 0x80776808 simple_transaction_get +EXPORT_SYMBOL vmlinux 0x8077c91f tcf_register_action +EXPORT_SYMBOL vmlinux 0x80906245 journal_dirty_data +EXPORT_SYMBOL vmlinux 0x80a2fce9 security_path_mkdir +EXPORT_SYMBOL vmlinux 0x80c2f1ec abx500_mask_and_set_register_interruptible +EXPORT_SYMBOL vmlinux 0x80ca5026 _bin2bcd +EXPORT_SYMBOL vmlinux 0x80d14ad1 keyring_alloc +EXPORT_SYMBOL vmlinux 0x80d68d3e fb_register_client +EXPORT_SYMBOL vmlinux 0x80d81308 omap_vrfb_release_ctx +EXPORT_SYMBOL vmlinux 0x80fbb142 jbd2_journal_wipe +EXPORT_SYMBOL vmlinux 0x81003ee2 __sg_alloc_table +EXPORT_SYMBOL vmlinux 0x810548d9 blk_start_request +EXPORT_SYMBOL vmlinux 0x810ac172 pcim_iomap +EXPORT_SYMBOL vmlinux 0x810e16f9 ip_check_defrag +EXPORT_SYMBOL vmlinux 0x81171205 cdrom_mode_select +EXPORT_SYMBOL vmlinux 0x811fe7b6 nf_nat_decode_session_hook +EXPORT_SYMBOL vmlinux 0x812b4368 filemap_fdatawait_range +EXPORT_SYMBOL vmlinux 0x813c962b dev_uc_sync +EXPORT_SYMBOL vmlinux 0x814e7730 nf_ct_destroy +EXPORT_SYMBOL vmlinux 0x815510c6 sk_stream_write_space +EXPORT_SYMBOL vmlinux 0x815b5dd4 match_octal +EXPORT_SYMBOL vmlinux 0x81722a3d vlan_ioctl_set +EXPORT_SYMBOL vmlinux 0x81764bb6 sock_queue_err_skb +EXPORT_SYMBOL vmlinux 0x8184c502 init_net +EXPORT_SYMBOL vmlinux 0x818fe6eb inet_frag_destroy +EXPORT_SYMBOL vmlinux 0x81918ed6 __genl_register_family_with_ops +EXPORT_SYMBOL vmlinux 0x8199f948 pm860x_reg_write +EXPORT_SYMBOL vmlinux 0x81ae8e0e of_platform_device_create +EXPORT_SYMBOL vmlinux 0x81b54620 tcp_mtup_init +EXPORT_SYMBOL vmlinux 0x81b69e41 snd_ctl_enum_info +EXPORT_SYMBOL vmlinux 0x81d10f5f trace_seq_putc +EXPORT_SYMBOL vmlinux 0x81db6ebb xz_dec_reset +EXPORT_SYMBOL vmlinux 0x81ede6a5 n_tty_ioctl_helper +EXPORT_SYMBOL vmlinux 0x82072614 tasklet_kill +EXPORT_SYMBOL vmlinux 0x8212721d xenbus_dev_request_and_reply +EXPORT_SYMBOL vmlinux 0x8236426e inet_frags_exit_net +EXPORT_SYMBOL vmlinux 0x82453a78 generic_file_remap_pages +EXPORT_SYMBOL vmlinux 0x824a4367 tmio_core_mmc_pwr +EXPORT_SYMBOL vmlinux 0x82507c13 dmam_release_declared_memory +EXPORT_SYMBOL vmlinux 0x8251bcc3 bitmap_release_region +EXPORT_SYMBOL vmlinux 0x8260686f bitmap_find_next_zero_area +EXPORT_SYMBOL vmlinux 0x826a3b67 omapdss_find_output_from_display +EXPORT_SYMBOL vmlinux 0x828062b1 __frontswap_init +EXPORT_SYMBOL vmlinux 0x82a8689d elv_rb_latter_request +EXPORT_SYMBOL vmlinux 0x82acfb70 blk_iopoll_sched +EXPORT_SYMBOL vmlinux 0x82bcf30d get_unmapped_area +EXPORT_SYMBOL vmlinux 0x82bf585a tag_pages_for_writeback +EXPORT_SYMBOL vmlinux 0x82d0ad3e fd_install +EXPORT_SYMBOL vmlinux 0x82fb3d82 generic_file_aio_read +EXPORT_SYMBOL vmlinux 0x83082cc6 pci_enable_ltr +EXPORT_SYMBOL vmlinux 0x8315bbfd iw_handler_set_spy +EXPORT_SYMBOL vmlinux 0x8320bea8 __umodsi3 +EXPORT_SYMBOL vmlinux 0x83211609 up_write +EXPORT_SYMBOL vmlinux 0x8346391d sock_tx_timestamp +EXPORT_SYMBOL vmlinux 0x83531545 pci_back_from_sleep +EXPORT_SYMBOL vmlinux 0x8371daff sg_copy_from_buffer +EXPORT_SYMBOL vmlinux 0x8377c32f mfd_remove_devices +EXPORT_SYMBOL vmlinux 0x837fb4e3 fib_default_rule_add +EXPORT_SYMBOL vmlinux 0x8381c31a secpath_dup +EXPORT_SYMBOL vmlinux 0x839cdf99 edma_resume +EXPORT_SYMBOL vmlinux 0x83a476ce bitmap_scnlistprintf +EXPORT_SYMBOL vmlinux 0x83c8a355 param_set_int +EXPORT_SYMBOL vmlinux 0x83d01a16 tcf_exts_dump_stats +EXPORT_SYMBOL vmlinux 0x83d70683 edma_start +EXPORT_SYMBOL vmlinux 0x83e64024 netif_set_real_num_tx_queues +EXPORT_SYMBOL vmlinux 0x83f5f164 f_setown +EXPORT_SYMBOL vmlinux 0x84060081 xen_poll_irq_timeout +EXPORT_SYMBOL vmlinux 0x841570dd ip_getsockopt +EXPORT_SYMBOL vmlinux 0x841ca5ff flush_signals +EXPORT_SYMBOL vmlinux 0x84480b62 skb_mac_gso_segment +EXPORT_SYMBOL vmlinux 0x846385b0 pcibios_bus_to_resource +EXPORT_SYMBOL vmlinux 0x84a81a0b ping_prot +EXPORT_SYMBOL vmlinux 0x84b183ae strncmp +EXPORT_SYMBOL vmlinux 0x84b460ee pfifo_fast_ops +EXPORT_SYMBOL vmlinux 0x84d84345 is_bad_inode +EXPORT_SYMBOL vmlinux 0x84dc39cb dss_mgr_set_lcd_config +EXPORT_SYMBOL vmlinux 0x84e0b6e7 alloc_xenballooned_pages +EXPORT_SYMBOL vmlinux 0x84e760e1 mb_cache_entry_find_first +EXPORT_SYMBOL vmlinux 0x84fe48c6 amba_device_register +EXPORT_SYMBOL vmlinux 0x84ffea8b idr_preload +EXPORT_SYMBOL vmlinux 0x85050acc kmem_cache_destroy +EXPORT_SYMBOL vmlinux 0x85061b76 _raw_write_lock_bh +EXPORT_SYMBOL vmlinux 0x8511f177 vm_event_states +EXPORT_SYMBOL vmlinux 0x851476ff elevator_change +EXPORT_SYMBOL vmlinux 0x85288cc0 pci_clear_mwi +EXPORT_SYMBOL vmlinux 0x85670f1d rtnl_is_locked +EXPORT_SYMBOL vmlinux 0x85737519 edma_read_slot +EXPORT_SYMBOL vmlinux 0x85765fee omap_enable_dma_irq +EXPORT_SYMBOL vmlinux 0x858a5f34 snd_ctl_unregister_ioctl +EXPORT_SYMBOL vmlinux 0x85af608a tcp_proc_register +EXPORT_SYMBOL vmlinux 0x85afe1b5 km_new_mapping +EXPORT_SYMBOL vmlinux 0x85b5e625 rfkill_set_states +EXPORT_SYMBOL vmlinux 0x85dde3b9 ndo_dflt_bridge_getlink +EXPORT_SYMBOL vmlinux 0x85df9b6c strsep +EXPORT_SYMBOL vmlinux 0x85e7deb2 iov_iter_fault_in_readable +EXPORT_SYMBOL vmlinux 0x85eb36b3 km_policy_notify +EXPORT_SYMBOL vmlinux 0x85f485ef snd_pcm_set_sync +EXPORT_SYMBOL vmlinux 0x86001bef migrate_page +EXPORT_SYMBOL vmlinux 0x860f94d8 pci_map_rom +EXPORT_SYMBOL vmlinux 0x863358a9 __blk_end_request +EXPORT_SYMBOL vmlinux 0x8638acc0 jbd2_journal_get_undo_access +EXPORT_SYMBOL vmlinux 0x865029ac __hw_addr_sync +EXPORT_SYMBOL vmlinux 0x86591606 skb_copy_bits +EXPORT_SYMBOL vmlinux 0x865aab05 sock_no_getsockopt +EXPORT_SYMBOL vmlinux 0x865ccc8e splice_direct_to_actor +EXPORT_SYMBOL vmlinux 0x866202a2 pagecache_write_begin +EXPORT_SYMBOL vmlinux 0x8664f62e cpufreq_update_policy +EXPORT_SYMBOL vmlinux 0x86860195 dss_feat_get_supported_displays +EXPORT_SYMBOL vmlinux 0x868acba5 get_options +EXPORT_SYMBOL vmlinux 0x8694bd58 journal_start_commit +EXPORT_SYMBOL vmlinux 0x86a4889a kmalloc_order_trace +EXPORT_SYMBOL vmlinux 0x86a6cb51 simple_dir_operations +EXPORT_SYMBOL vmlinux 0x86afd184 create_syslog_header +EXPORT_SYMBOL vmlinux 0x86b2c6e5 generic_getxattr +EXPORT_SYMBOL vmlinux 0x86b31759 cdrom_number_of_slots +EXPORT_SYMBOL vmlinux 0x86c9d17d cont_write_begin +EXPORT_SYMBOL vmlinux 0x86da6977 scsi_finish_command +EXPORT_SYMBOL vmlinux 0x86e2a980 files_lglock +EXPORT_SYMBOL vmlinux 0x86fb9b05 bitmap_parse_user +EXPORT_SYMBOL vmlinux 0x8703b27d ppp_register_compressor +EXPORT_SYMBOL vmlinux 0x870bf928 radix_tree_lookup +EXPORT_SYMBOL vmlinux 0x871c0a7e fiemap_check_flags +EXPORT_SYMBOL vmlinux 0x87362444 eth_header_parse +EXPORT_SYMBOL vmlinux 0x8753a115 generic_read_dir +EXPORT_SYMBOL vmlinux 0x8754dfca complete_request_key +EXPORT_SYMBOL vmlinux 0x875505fe set_device_ro +EXPORT_SYMBOL vmlinux 0x878ab3ce sysctl_tcp_adv_win_scale +EXPORT_SYMBOL vmlinux 0x878cd3eb pcie_capability_clear_and_set_word +EXPORT_SYMBOL vmlinux 0x87966b9b omapdss_get_version +EXPORT_SYMBOL vmlinux 0x8798e453 __tracepoint_kfree +EXPORT_SYMBOL vmlinux 0x87a78953 pm860x_page_set_bits +EXPORT_SYMBOL vmlinux 0x87c151fd generic_file_llseek +EXPORT_SYMBOL vmlinux 0x87e2eba1 mb_cache_entry_get +EXPORT_SYMBOL vmlinux 0x88061b65 lro_receive_frags +EXPORT_SYMBOL vmlinux 0x880998e6 bio_integrity_advance +EXPORT_SYMBOL vmlinux 0x881039d0 zlib_inflate +EXPORT_SYMBOL vmlinux 0x8827b900 skb_copy +EXPORT_SYMBOL vmlinux 0x8834396c mod_timer +EXPORT_SYMBOL vmlinux 0x88597a11 mdiobus_write +EXPORT_SYMBOL vmlinux 0x885d0133 snd_pcm_mmap_data +EXPORT_SYMBOL vmlinux 0x886bef7f scsi_block_requests +EXPORT_SYMBOL vmlinux 0x886f7250 __netlink_kernel_create +EXPORT_SYMBOL vmlinux 0x888750d9 of_i2c_register_devices +EXPORT_SYMBOL vmlinux 0x888d5da7 dev_load +EXPORT_SYMBOL vmlinux 0x88a6482c netdev_state_change +EXPORT_SYMBOL vmlinux 0x88af2f1c filemap_write_and_wait_range +EXPORT_SYMBOL vmlinux 0x88b70f07 clk_get +EXPORT_SYMBOL vmlinux 0x88c16d92 netif_rx_ni +EXPORT_SYMBOL vmlinux 0x88cbaba2 bitmap_start_sync +EXPORT_SYMBOL vmlinux 0x88e22b2f bio_integrity_trim +EXPORT_SYMBOL vmlinux 0x88ea1377 tcp_md5_do_add +EXPORT_SYMBOL vmlinux 0x88f2022b snd_pcm_hw_param_first +EXPORT_SYMBOL vmlinux 0x890dc2ed idr_alloc_cyclic +EXPORT_SYMBOL vmlinux 0x892f07ec jbd2_journal_abort +EXPORT_SYMBOL vmlinux 0x8946a3e6 aio_complete +EXPORT_SYMBOL vmlinux 0x8953f8ff __tracepoint_kmem_cache_alloc +EXPORT_SYMBOL vmlinux 0x895c6dc0 fb_get_buffer_offset +EXPORT_SYMBOL vmlinux 0x896240f5 scsi_rescan_device +EXPORT_SYMBOL vmlinux 0x897473df mktime +EXPORT_SYMBOL vmlinux 0x897f275b tty_unlock_pair +EXPORT_SYMBOL vmlinux 0x897f6d3f snd_card_create +EXPORT_SYMBOL vmlinux 0x8990ca14 journal_stop +EXPORT_SYMBOL vmlinux 0x89a0841c netpoll_rx_disable +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 0x89e7a0b2 __inet6_lookup_established +EXPORT_SYMBOL vmlinux 0x8a08fdfe load_nls_default +EXPORT_SYMBOL vmlinux 0x8a0a3df9 wake_up_process +EXPORT_SYMBOL vmlinux 0x8a0f4230 rename_lock +EXPORT_SYMBOL vmlinux 0x8a1ab4ee timeval_to_jiffies +EXPORT_SYMBOL vmlinux 0x8a490c90 rfkill_set_sw_state +EXPORT_SYMBOL vmlinux 0x8a4fa83b __aeabi_llsr +EXPORT_SYMBOL vmlinux 0x8a78551a handle_edge_irq +EXPORT_SYMBOL vmlinux 0x8a7d1c31 high_memory +EXPORT_SYMBOL vmlinux 0x8a99a016 mempool_free_slab +EXPORT_SYMBOL vmlinux 0x8abcbd1a audit_log_start +EXPORT_SYMBOL vmlinux 0x8ace8ca3 groups_alloc +EXPORT_SYMBOL vmlinux 0x8ad96e09 aio_put_req +EXPORT_SYMBOL vmlinux 0x8ae720fa end_buffer_read_sync +EXPORT_SYMBOL vmlinux 0x8b0aa812 d_invalidate +EXPORT_SYMBOL vmlinux 0x8b10bdc2 send_sig +EXPORT_SYMBOL vmlinux 0x8b1a7a66 pcie_aspm_enabled +EXPORT_SYMBOL vmlinux 0x8b43159b register_cpu_notifier +EXPORT_SYMBOL vmlinux 0x8b618d08 overflowuid +EXPORT_SYMBOL vmlinux 0x8b77610e omap_dss_get_device +EXPORT_SYMBOL vmlinux 0x8b839525 bio_integrity_get_tag +EXPORT_SYMBOL vmlinux 0x8badfce5 snd_pcm_suspend +EXPORT_SYMBOL vmlinux 0x8bbc737a jbd2_log_wait_commit +EXPORT_SYMBOL vmlinux 0x8bc16d08 inet_ioctl +EXPORT_SYMBOL vmlinux 0x8bd0a3fd _raw_write_unlock_bh +EXPORT_SYMBOL vmlinux 0x8be636ea unregister_mtd_chip_driver +EXPORT_SYMBOL vmlinux 0x8bfdec3d tty_register_device +EXPORT_SYMBOL vmlinux 0x8bfe8c57 param_set_uint +EXPORT_SYMBOL vmlinux 0x8c332abf dev_queue_xmit +EXPORT_SYMBOL vmlinux 0x8c4b56a9 mmc_wait_for_req +EXPORT_SYMBOL vmlinux 0x8c4d6523 omap_dma_chain_a_transfer +EXPORT_SYMBOL vmlinux 0x8c5537a9 scsi_nonblockable_ioctl +EXPORT_SYMBOL vmlinux 0x8c5710ef drop_super +EXPORT_SYMBOL vmlinux 0x8c637d43 irq_cpu_rmap_add +EXPORT_SYMBOL vmlinux 0x8c69bd98 inet_select_addr +EXPORT_SYMBOL vmlinux 0x8c705b8c edma_clean_channel +EXPORT_SYMBOL vmlinux 0x8c822704 devm_gpio_free +EXPORT_SYMBOL vmlinux 0x8ca3fad2 touch_atime +EXPORT_SYMBOL vmlinux 0x8cba110f sock_queue_rcv_skb +EXPORT_SYMBOL vmlinux 0x8cc2d1d9 pps_lookup_dev +EXPORT_SYMBOL vmlinux 0x8cc34272 blk_put_queue +EXPORT_SYMBOL vmlinux 0x8cd8c339 omap_free_dma +EXPORT_SYMBOL vmlinux 0x8cda8029 xen_clear_irq_pending +EXPORT_SYMBOL vmlinux 0x8d04dbf5 uart_get_divisor +EXPORT_SYMBOL vmlinux 0x8d061264 mmc_remove_host +EXPORT_SYMBOL vmlinux 0x8d439130 __register_binfmt +EXPORT_SYMBOL vmlinux 0x8d551bef sysctl_tcp_rmem +EXPORT_SYMBOL vmlinux 0x8d56a8a5 scsi_init_io +EXPORT_SYMBOL vmlinux 0x8d6f81b4 __div64_32 +EXPORT_SYMBOL vmlinux 0x8d7edaf9 inode_get_bytes +EXPORT_SYMBOL vmlinux 0x8d8b6353 proc_dointvec_userhz_jiffies +EXPORT_SYMBOL vmlinux 0x8da07db6 blk_queue_unprep_rq +EXPORT_SYMBOL vmlinux 0x8dabd1ad netlink_unicast +EXPORT_SYMBOL vmlinux 0x8db1fea2 rtnl_link_get_net +EXPORT_SYMBOL vmlinux 0x8db6c879 input_allocate_device +EXPORT_SYMBOL vmlinux 0x8db90304 security_inode_init_security +EXPORT_SYMBOL vmlinux 0x8dcb9deb filemap_write_and_wait +EXPORT_SYMBOL vmlinux 0x8ddb9d64 blk_integrity_is_initialized +EXPORT_SYMBOL vmlinux 0x8ddf120f fb_set_cmap +EXPORT_SYMBOL vmlinux 0x8de3bc58 inet_rtx_syn_ack +EXPORT_SYMBOL vmlinux 0x8df9541d flush_dcache_page +EXPORT_SYMBOL vmlinux 0x8e0b9366 bitmap_end_sync +EXPORT_SYMBOL vmlinux 0x8e0c7d48 __ww_mutex_lock +EXPORT_SYMBOL vmlinux 0x8e0d66f4 __tracepoint_kmalloc +EXPORT_SYMBOL vmlinux 0x8e0f3e79 phy_attach +EXPORT_SYMBOL vmlinux 0x8e28cd42 in_egroup_p +EXPORT_SYMBOL vmlinux 0x8e3e7966 dma_supported +EXPORT_SYMBOL vmlinux 0x8e5c580a ida_init +EXPORT_SYMBOL vmlinux 0x8e865d3c arm_delay_ops +EXPORT_SYMBOL vmlinux 0x8e939723 flush_old_exec +EXPORT_SYMBOL vmlinux 0x8eac8461 i2c_verify_adapter +EXPORT_SYMBOL vmlinux 0x8ead3637 padata_add_cpu +EXPORT_SYMBOL vmlinux 0x8ec00adc empty_zero_page +EXPORT_SYMBOL vmlinux 0x8edae68a get_thermal_instance +EXPORT_SYMBOL vmlinux 0x8f045d1c cancel_delayed_work +EXPORT_SYMBOL vmlinux 0x8f18322d scsi_host_get +EXPORT_SYMBOL vmlinux 0x8f197f7f pskb_expand_head +EXPORT_SYMBOL vmlinux 0x8f2e9940 inet_add_protocol +EXPORT_SYMBOL vmlinux 0x8f2f9b40 freezing_slow_path +EXPORT_SYMBOL vmlinux 0x8f317b99 tc_classify_compat +EXPORT_SYMBOL vmlinux 0x8f32da8e generic_delete_inode +EXPORT_SYMBOL vmlinux 0x8f595b11 snd_major +EXPORT_SYMBOL vmlinux 0x8f678b07 __stack_chk_guard +EXPORT_SYMBOL vmlinux 0x8f7014a1 param_set_ulong +EXPORT_SYMBOL vmlinux 0x8f76fded i2c_smbus_xfer +EXPORT_SYMBOL vmlinux 0x8f97d9be scsi_cmd_get_serial +EXPORT_SYMBOL vmlinux 0x8f9bbaad d_tmpfile +EXPORT_SYMBOL vmlinux 0x8fa4130a omap_set_dma_callback +EXPORT_SYMBOL vmlinux 0x8fa92073 netif_stacked_transfer_operstate +EXPORT_SYMBOL vmlinux 0x8faa4598 of_translate_address +EXPORT_SYMBOL vmlinux 0x8fae9146 jbd2_journal_clear_features +EXPORT_SYMBOL vmlinux 0x8fc1b57c crypto_sha512_update +EXPORT_SYMBOL vmlinux 0x8fd37c9f sock_alloc_file +EXPORT_SYMBOL vmlinux 0x8fe109ba md_check_recovery +EXPORT_SYMBOL vmlinux 0x8ffdb3b8 crc16 +EXPORT_SYMBOL vmlinux 0x90122762 try_module_get +EXPORT_SYMBOL vmlinux 0x903f2a24 arp_tbl +EXPORT_SYMBOL vmlinux 0x9048982c vlan_dev_real_dev +EXPORT_SYMBOL vmlinux 0x904ff0f7 tty_port_tty_get +EXPORT_SYMBOL vmlinux 0x9067050c mmc_set_data_timeout +EXPORT_SYMBOL vmlinux 0x906c7e85 cfb_fillrect +EXPORT_SYMBOL vmlinux 0x90797760 tcp_v4_md5_lookup +EXPORT_SYMBOL vmlinux 0x908e09f3 mmc_power_restore_host +EXPORT_SYMBOL vmlinux 0x90968146 neigh_connected_output +EXPORT_SYMBOL vmlinux 0x90a8a982 devm_ioremap_resource +EXPORT_SYMBOL vmlinux 0x90a9670e ip6_expire_frag_queue +EXPORT_SYMBOL vmlinux 0x90ac3102 dev_base_lock +EXPORT_SYMBOL vmlinux 0x90c5e819 kstrtoll_from_user +EXPORT_SYMBOL vmlinux 0x90ee1b01 alloc_file +EXPORT_SYMBOL vmlinux 0x9129617f dev_driver_string +EXPORT_SYMBOL vmlinux 0x91463b1d kstrtos16 +EXPORT_SYMBOL vmlinux 0x9152875f lz4_decompress_unknownoutputsize +EXPORT_SYMBOL vmlinux 0x91621d6a allocate_resource +EXPORT_SYMBOL vmlinux 0x9163a97b blk_queue_dma_alignment +EXPORT_SYMBOL vmlinux 0x91715312 sprintf +EXPORT_SYMBOL vmlinux 0x9175905a i2c_clients_command +EXPORT_SYMBOL vmlinux 0x919029aa __readwrite_bug +EXPORT_SYMBOL vmlinux 0x91a8c457 dquot_initialize +EXPORT_SYMBOL vmlinux 0x91aec064 down_read_trylock +EXPORT_SYMBOL vmlinux 0x91b6b420 mmc_alloc_host +EXPORT_SYMBOL vmlinux 0x91bbe229 inet_listen +EXPORT_SYMBOL vmlinux 0x91c0980e icst_hz +EXPORT_SYMBOL vmlinux 0x91c7cd62 dma_declare_coherent_memory +EXPORT_SYMBOL vmlinux 0x91cb9bf6 blk_queue_end_tag +EXPORT_SYMBOL vmlinux 0x91cfa01f max8998_bulk_read +EXPORT_SYMBOL vmlinux 0x91e55725 netdev_upper_dev_link +EXPORT_SYMBOL vmlinux 0x9205953f send_remote_softirq +EXPORT_SYMBOL vmlinux 0x920eb90c interruptible_sleep_on_timeout +EXPORT_SYMBOL vmlinux 0x923b1276 dmaengine_get +EXPORT_SYMBOL vmlinux 0x92592e93 misc_deregister +EXPORT_SYMBOL vmlinux 0x9276ce28 edma_set_dest +EXPORT_SYMBOL vmlinux 0x927a038e pci_request_regions +EXPORT_SYMBOL vmlinux 0x928df3aa omapdss_unregister_display +EXPORT_SYMBOL vmlinux 0x92a5d80a snd_jack_new +EXPORT_SYMBOL vmlinux 0x92a9c60c time_to_tm +EXPORT_SYMBOL vmlinux 0x92af1501 of_find_backlight_by_node +EXPORT_SYMBOL vmlinux 0x92c2f37b scsi_setup_fs_cmnd +EXPORT_SYMBOL vmlinux 0x92ca2536 test_set_page_writeback +EXPORT_SYMBOL vmlinux 0x92d5121f pcim_iounmap +EXPORT_SYMBOL vmlinux 0x92ec5d1b dispc_mgr_enable +EXPORT_SYMBOL vmlinux 0x92ed3e69 abx500_get_register_interruptible +EXPORT_SYMBOL vmlinux 0x9305f8e6 cpufreq_get +EXPORT_SYMBOL vmlinux 0x93215e1d __kfifo_skip_r +EXPORT_SYMBOL vmlinux 0x9329d3f8 ___pskb_trim +EXPORT_SYMBOL vmlinux 0x9342a7bd mb_cache_entry_insert +EXPORT_SYMBOL vmlinux 0x9374b3a2 ioctl_by_bdev +EXPORT_SYMBOL vmlinux 0x938bd8aa generic_show_options +EXPORT_SYMBOL vmlinux 0x938e2271 netdev_info +EXPORT_SYMBOL vmlinux 0x93963a85 dss_feat_get_num_mgrs +EXPORT_SYMBOL vmlinux 0x93a6e0b2 io_schedule +EXPORT_SYMBOL vmlinux 0x93aa361c snd_pcm_suspend_all +EXPORT_SYMBOL vmlinux 0x93b2709b snd_timer_new +EXPORT_SYMBOL vmlinux 0x93b3fc74 register_dcbevent_notifier +EXPORT_SYMBOL vmlinux 0x93ea2184 pm860x_page_reg_write +EXPORT_SYMBOL vmlinux 0x93fca811 __get_free_pages +EXPORT_SYMBOL vmlinux 0x93fdae54 fixed_size_llseek +EXPORT_SYMBOL vmlinux 0x94098ff8 snd_interval_list +EXPORT_SYMBOL vmlinux 0x94198896 dss_mgr_connect +EXPORT_SYMBOL vmlinux 0x941a2921 blk_rq_unmap_user +EXPORT_SYMBOL vmlinux 0x94275161 i2c_smbus_write_byte_data +EXPORT_SYMBOL vmlinux 0x942ae5ae neigh_seq_next +EXPORT_SYMBOL vmlinux 0x944b829d sock_no_recvmsg +EXPORT_SYMBOL vmlinux 0x944df3eb vlan_vid_del +EXPORT_SYMBOL vmlinux 0x94666d97 inet_frag_find +EXPORT_SYMBOL vmlinux 0x946b1166 pcim_pin_device +EXPORT_SYMBOL vmlinux 0x948254ed snd_timer_global_free +EXPORT_SYMBOL vmlinux 0x94869320 read_cache_pages +EXPORT_SYMBOL vmlinux 0x948aeb56 dquot_claim_space_nodirty +EXPORT_SYMBOL vmlinux 0x94961283 vunmap +EXPORT_SYMBOL vmlinux 0x94a558c9 __cleancache_invalidate_inode +EXPORT_SYMBOL vmlinux 0x94bdced0 tcf_hash_check +EXPORT_SYMBOL vmlinux 0x94d3da68 rtc_lock +EXPORT_SYMBOL vmlinux 0x94fc016c vfs_setpos +EXPORT_SYMBOL vmlinux 0x95006009 scsi_free_host_dev +EXPORT_SYMBOL vmlinux 0x95187fc0 nobh_write_begin +EXPORT_SYMBOL vmlinux 0x953b4e45 input_register_handle +EXPORT_SYMBOL vmlinux 0x954488a4 syncookie_secret +EXPORT_SYMBOL vmlinux 0x9545af6d tasklet_init +EXPORT_SYMBOL vmlinux 0x9554b64e set_security_override +EXPORT_SYMBOL vmlinux 0x95622f41 down_timeout +EXPORT_SYMBOL vmlinux 0x958692d4 alloc_mdio_bitbang +EXPORT_SYMBOL vmlinux 0x9596699d snd_pcm_hw_constraint_list +EXPORT_SYMBOL vmlinux 0x9599f37d xfrm_unregister_km +EXPORT_SYMBOL vmlinux 0x959b5b35 call_usermodehelper_setup +EXPORT_SYMBOL vmlinux 0x95abf3bf bdgrab +EXPORT_SYMBOL vmlinux 0x95cb929c of_find_all_nodes +EXPORT_SYMBOL vmlinux 0x95da0fd9 blk_queue_physical_block_size +EXPORT_SYMBOL vmlinux 0x95dbe078 __get_user_2 +EXPORT_SYMBOL vmlinux 0x95e4c3b4 crypto_sha1_update +EXPORT_SYMBOL vmlinux 0x95e5846c mnt_drop_write_file +EXPORT_SYMBOL vmlinux 0x95e6e500 blk_stack_limits +EXPORT_SYMBOL vmlinux 0x95f88784 touch_buffer +EXPORT_SYMBOL vmlinux 0x9613509a idr_replace +EXPORT_SYMBOL vmlinux 0x96275ac7 dm_put_device +EXPORT_SYMBOL vmlinux 0x96573b80 __kfifo_dma_in_finish_r +EXPORT_SYMBOL vmlinux 0x9662fed4 tcp_shutdown +EXPORT_SYMBOL vmlinux 0x96898769 sysfs_format_mac +EXPORT_SYMBOL vmlinux 0x96b39b6e omap_start_dma_chain_transfers +EXPORT_SYMBOL vmlinux 0x96cd2b04 scsi_sense_key_string +EXPORT_SYMBOL vmlinux 0x96fefb2c writeback_inodes_sb +EXPORT_SYMBOL vmlinux 0x971fcecc blk_run_queue_async +EXPORT_SYMBOL vmlinux 0x97255bdf strlen +EXPORT_SYMBOL vmlinux 0x974094ba snd_ctl_rename_id +EXPORT_SYMBOL vmlinux 0x9754ec10 radix_tree_preload +EXPORT_SYMBOL vmlinux 0x976e700f down_trylock +EXPORT_SYMBOL vmlinux 0x9772d316 __splice_from_pipe +EXPORT_SYMBOL vmlinux 0x978157ea tty_port_free_xmit_buf +EXPORT_SYMBOL vmlinux 0x97852c45 max8925_set_bits +EXPORT_SYMBOL vmlinux 0x9793c93a dispc_mgr_setup +EXPORT_SYMBOL vmlinux 0x97999817 rfkill_set_hw_state +EXPORT_SYMBOL vmlinux 0x97ae8011 devfreq_remove_device +EXPORT_SYMBOL vmlinux 0x97b4500c __tracepoint_kmem_cache_free +EXPORT_SYMBOL vmlinux 0x97d97b9b ppp_output_wakeup +EXPORT_SYMBOL vmlinux 0x97ff288e __put_cred +EXPORT_SYMBOL vmlinux 0x98082893 __copy_to_user +EXPORT_SYMBOL vmlinux 0x9820b644 warn_slowpath_fmt_taint +EXPORT_SYMBOL vmlinux 0x984a2efc dquot_acquire +EXPORT_SYMBOL vmlinux 0x98546814 in_dev_finish_destroy +EXPORT_SYMBOL vmlinux 0x985860ff icmp_send +EXPORT_SYMBOL vmlinux 0x986e6135 fb_pad_unaligned_buffer +EXPORT_SYMBOL vmlinux 0x987156ee dev_set_promiscuity +EXPORT_SYMBOL vmlinux 0x98973054 mutex_lock +EXPORT_SYMBOL vmlinux 0x98b86fe6 blk_integrity_unregister +EXPORT_SYMBOL vmlinux 0x98cec4ba module_put +EXPORT_SYMBOL vmlinux 0x98d23fbc mb_cache_create +EXPORT_SYMBOL vmlinux 0x98dce791 tty_wait_until_sent +EXPORT_SYMBOL vmlinux 0x98e94f24 jbd2_journal_free_reserved +EXPORT_SYMBOL vmlinux 0x98fa21b0 mod_timer_pinned +EXPORT_SYMBOL vmlinux 0x98fdf7ac rtmsg_ifinfo +EXPORT_SYMBOL vmlinux 0x99474826 security_path_truncate +EXPORT_SYMBOL vmlinux 0x99517682 udp_encap_enable +EXPORT_SYMBOL vmlinux 0x99591a7a ipv6_ext_hdr +EXPORT_SYMBOL vmlinux 0x996c4d30 proc_dointvec_ms_jiffies +EXPORT_SYMBOL vmlinux 0x9994c0ca ps2_is_keyboard_id +EXPORT_SYMBOL vmlinux 0x999c3148 __raw_readsb +EXPORT_SYMBOL vmlinux 0x999e8297 vfree +EXPORT_SYMBOL vmlinux 0x99b14f30 put_tty_driver +EXPORT_SYMBOL vmlinux 0x99bb8806 memmove +EXPORT_SYMBOL vmlinux 0x99cdc86b sysctl_tcp_reordering +EXPORT_SYMBOL vmlinux 0x99e64c67 ata_link_printk +EXPORT_SYMBOL vmlinux 0x99f58330 lg_local_lock_cpu +EXPORT_SYMBOL vmlinux 0x99f90abf follow_down_one +EXPORT_SYMBOL vmlinux 0x9a016602 __cleancache_init_shared_fs +EXPORT_SYMBOL vmlinux 0x9a1dfd65 strpbrk +EXPORT_SYMBOL vmlinux 0x9a1fc4b4 jiffies_to_timeval +EXPORT_SYMBOL vmlinux 0x9a5272e8 tty_port_close_end +EXPORT_SYMBOL vmlinux 0x9a6e183a __idr_remove_all +EXPORT_SYMBOL vmlinux 0x9a8318ef v7_coherent_kern_range +EXPORT_SYMBOL vmlinux 0x9a8dea11 truncate_setsize +EXPORT_SYMBOL vmlinux 0x9a9b95ca ata_scsi_cmd_error_handler +EXPORT_SYMBOL vmlinux 0x9ab2ac64 netdev_upper_dev_unlink +EXPORT_SYMBOL vmlinux 0x9ab316f7 seq_lseek +EXPORT_SYMBOL vmlinux 0x9ad28a2a generic_pipe_buf_get +EXPORT_SYMBOL vmlinux 0x9ad9e2d6 mmc_add_host +EXPORT_SYMBOL vmlinux 0x9aeae0b2 __scm_destroy +EXPORT_SYMBOL vmlinux 0x9b33e0d7 unregister_dcbevent_notifier +EXPORT_SYMBOL vmlinux 0x9b388444 get_zeroed_page +EXPORT_SYMBOL vmlinux 0x9b659b90 snd_cards +EXPORT_SYMBOL vmlinux 0x9b6eb137 ksize +EXPORT_SYMBOL vmlinux 0x9b92f1ab vfs_getattr +EXPORT_SYMBOL vmlinux 0x9b9e05f9 alloc_cpu_rmap +EXPORT_SYMBOL vmlinux 0x9ba7089d argv_split +EXPORT_SYMBOL vmlinux 0x9bbb93ec ps2_drain +EXPORT_SYMBOL vmlinux 0x9bbfdced single_open_size +EXPORT_SYMBOL vmlinux 0x9bce482f __release_region +EXPORT_SYMBOL vmlinux 0x9bd4e23e inet_shutdown +EXPORT_SYMBOL vmlinux 0x9bda4bb4 edma_set_src +EXPORT_SYMBOL vmlinux 0x9bdc7479 dss_mgr_register_framedone_handler +EXPORT_SYMBOL vmlinux 0x9be7bde4 security_tun_dev_attach +EXPORT_SYMBOL vmlinux 0x9be8940e scsi_remove_device +EXPORT_SYMBOL vmlinux 0x9c0bd51f _raw_spin_lock +EXPORT_SYMBOL vmlinux 0x9c32ac2e __dev_get_by_name +EXPORT_SYMBOL vmlinux 0x9c3737fc __percpu_counter_init +EXPORT_SYMBOL vmlinux 0x9c398452 phy_connect_direct +EXPORT_SYMBOL vmlinux 0x9c5d26a6 neigh_app_ns +EXPORT_SYMBOL vmlinux 0x9c6bf842 dev_get_by_index_rcu +EXPORT_SYMBOL vmlinux 0x9c769d08 snd_info_create_module_entry +EXPORT_SYMBOL vmlinux 0x9c97082e edma_pause +EXPORT_SYMBOL vmlinux 0x9c9cc208 napi_gro_frags +EXPORT_SYMBOL vmlinux 0x9c9ec2a0 proc_dointvec_minmax +EXPORT_SYMBOL vmlinux 0x9cab34a6 rfkill_set_led_trigger_name +EXPORT_SYMBOL vmlinux 0x9cc19a1e scsi_get_device_flags_keyed +EXPORT_SYMBOL vmlinux 0x9cc8d00e gnet_stats_start_copy +EXPORT_SYMBOL vmlinux 0x9cd326ff inet_register_protosw +EXPORT_SYMBOL vmlinux 0x9cd60539 sg_free_table +EXPORT_SYMBOL vmlinux 0x9cda5896 backlight_device_register +EXPORT_SYMBOL vmlinux 0x9ceb163c memcpy_toiovec +EXPORT_SYMBOL vmlinux 0x9cf1fb85 page_symlink +EXPORT_SYMBOL vmlinux 0x9cfd56c5 scsi_print_status +EXPORT_SYMBOL vmlinux 0x9d009e3d block_commit_write +EXPORT_SYMBOL vmlinux 0x9d05f6c4 ktime_get_clocktai +EXPORT_SYMBOL vmlinux 0x9d08d510 sock_i_uid +EXPORT_SYMBOL vmlinux 0x9d0d6206 unregister_netdevice_notifier +EXPORT_SYMBOL vmlinux 0x9d2d1170 bio_integrity_tag_size +EXPORT_SYMBOL vmlinux 0x9d347607 amba_request_regions +EXPORT_SYMBOL vmlinux 0x9d385199 pci_pme_capable +EXPORT_SYMBOL vmlinux 0x9d3aa376 blk_iopoll_init +EXPORT_SYMBOL vmlinux 0x9d4c85b9 omap_dss_register_driver +EXPORT_SYMBOL vmlinux 0x9d669763 memcpy +EXPORT_SYMBOL vmlinux 0x9d798d8b omapdss_default_get_recommended_bpp +EXPORT_SYMBOL vmlinux 0x9d97fca7 force_sig +EXPORT_SYMBOL vmlinux 0x9d9b2d45 generic_splice_sendpage +EXPORT_SYMBOL vmlinux 0x9dfbc5fe dquot_alloc +EXPORT_SYMBOL vmlinux 0x9e0c711d vzalloc_node +EXPORT_SYMBOL vmlinux 0x9e2000a7 memcpy_toiovecend +EXPORT_SYMBOL vmlinux 0x9e26c662 kern_path_create +EXPORT_SYMBOL vmlinux 0x9e44b9b7 of_get_next_available_child +EXPORT_SYMBOL vmlinux 0x9e4faeef dm_io_client_destroy +EXPORT_SYMBOL vmlinux 0x9e61bb05 set_freezable +EXPORT_SYMBOL vmlinux 0x9e693e2f inet_getname +EXPORT_SYMBOL vmlinux 0x9e6d79f8 snd_info_get_str +EXPORT_SYMBOL vmlinux 0x9e78c2b4 clear_page_dirty_for_io +EXPORT_SYMBOL vmlinux 0x9e93c9aa backlight_device_unregister +EXPORT_SYMBOL vmlinux 0x9e950689 snd_ctl_register_ioctl +EXPORT_SYMBOL vmlinux 0x9e9f1714 __bitmap_andnot +EXPORT_SYMBOL vmlinux 0x9eaa3e38 snd_pcm_new_stream +EXPORT_SYMBOL vmlinux 0x9eaf7798 snd_pcm_hw_constraint_pow2 +EXPORT_SYMBOL vmlinux 0x9ec9e394 kthread_stop +EXPORT_SYMBOL vmlinux 0x9ecc6a7a interruptible_sleep_on +EXPORT_SYMBOL vmlinux 0x9ed685ee iov_iter_advance +EXPORT_SYMBOL vmlinux 0x9edaec7d block_write_end +EXPORT_SYMBOL vmlinux 0x9effaf17 padata_start +EXPORT_SYMBOL vmlinux 0x9f024854 tcf_em_tree_dump +EXPORT_SYMBOL vmlinux 0x9f056c33 get_disk +EXPORT_SYMBOL vmlinux 0x9f1c40e0 tty_port_hangup +EXPORT_SYMBOL vmlinux 0x9f2bdaac __bitmap_or +EXPORT_SYMBOL vmlinux 0x9f3741f6 vfs_write +EXPORT_SYMBOL vmlinux 0x9f46ced8 __sw_hweight64 +EXPORT_SYMBOL vmlinux 0x9f491e5d ftrace_print_symbols_seq_u64 +EXPORT_SYMBOL vmlinux 0x9f568382 sock_no_shutdown +EXPORT_SYMBOL vmlinux 0x9f754f73 fbcon_set_tileops +EXPORT_SYMBOL vmlinux 0x9f823cea dispc_mgr_is_enabled +EXPORT_SYMBOL vmlinux 0x9f8efc49 tcf_hash_insert +EXPORT_SYMBOL vmlinux 0x9f984513 strrchr +EXPORT_SYMBOL vmlinux 0x9fb3dd30 memcpy_fromiovec +EXPORT_SYMBOL vmlinux 0x9fb4b213 of_device_unregister +EXPORT_SYMBOL vmlinux 0x9fca804f netdev_notice +EXPORT_SYMBOL vmlinux 0x9fd8a1dc dev_err +EXPORT_SYMBOL vmlinux 0x9fdecc31 unregister_netdevice_many +EXPORT_SYMBOL vmlinux 0x9ff7fe00 arp_create +EXPORT_SYMBOL vmlinux 0x9ffa3a75 netdev_max_backlog +EXPORT_SYMBOL vmlinux 0xa0072518 blk_queue_dma_pad +EXPORT_SYMBOL vmlinux 0xa0081679 dev_get_by_name +EXPORT_SYMBOL vmlinux 0xa02d984d dma_async_memcpy_buf_to_buf +EXPORT_SYMBOL vmlinux 0xa03b3f85 __wait_on_buffer +EXPORT_SYMBOL vmlinux 0xa04752a2 snd_pcm_stop +EXPORT_SYMBOL vmlinux 0xa04a01bd qdisc_class_hash_insert +EXPORT_SYMBOL vmlinux 0xa0576437 tegra_ahb_enable_smmu +EXPORT_SYMBOL vmlinux 0xa058a06a snd_pcm_lib_preallocate_free_for_all +EXPORT_SYMBOL vmlinux 0xa05c03df mempool_kmalloc +EXPORT_SYMBOL vmlinux 0xa06df9e1 __kfifo_dma_out_finish_r +EXPORT_SYMBOL vmlinux 0xa0709a7b __xfrm_route_forward +EXPORT_SYMBOL vmlinux 0xa075144b ipv6_skip_exthdr +EXPORT_SYMBOL vmlinux 0xa07633fc nf_log_unbind_pf +EXPORT_SYMBOL vmlinux 0xa07ed110 xz_dec_init +EXPORT_SYMBOL vmlinux 0xa08dfab4 tcp_make_synack +EXPORT_SYMBOL vmlinux 0xa0aae687 imx_ssi_fiq_end +EXPORT_SYMBOL vmlinux 0xa0b04675 vmalloc_32 +EXPORT_SYMBOL vmlinux 0xa0b4e47b locks_mandatory_area +EXPORT_SYMBOL vmlinux 0xa0c1c1ed get_write_access +EXPORT_SYMBOL vmlinux 0xa0c72d11 inet6_release +EXPORT_SYMBOL vmlinux 0xa0c93489 __seq_open_private +EXPORT_SYMBOL vmlinux 0xa0ceef51 out_of_line_wait_on_bit +EXPORT_SYMBOL vmlinux 0xa0fbac79 wake_up_bit +EXPORT_SYMBOL vmlinux 0xa0fd2427 snd_pci_quirk_lookup_id +EXPORT_SYMBOL vmlinux 0xa10657dd mfd_cell_enable +EXPORT_SYMBOL vmlinux 0xa108eb4d sysctl_optmem_max +EXPORT_SYMBOL vmlinux 0xa1110c97 sys_imageblit +EXPORT_SYMBOL vmlinux 0xa120d33c tty_unregister_ldisc +EXPORT_SYMBOL vmlinux 0xa13589ed request_key_async +EXPORT_SYMBOL vmlinux 0xa1415618 twl6030_interrupt_unmask +EXPORT_SYMBOL vmlinux 0xa148061a dquot_disable +EXPORT_SYMBOL vmlinux 0xa14f3d8c ewma_add +EXPORT_SYMBOL vmlinux 0xa14f534a inode_add_bytes +EXPORT_SYMBOL vmlinux 0xa16ddc53 snd_pcm_lib_read +EXPORT_SYMBOL vmlinux 0xa1973c3b remap_vmalloc_range_partial +EXPORT_SYMBOL vmlinux 0xa19780cd netdev_class_remove_file +EXPORT_SYMBOL vmlinux 0xa1a2eb38 snd_timer_close +EXPORT_SYMBOL vmlinux 0xa1b759ce fb_add_videomode +EXPORT_SYMBOL vmlinux 0xa1ba85e9 phy_register_fixup +EXPORT_SYMBOL vmlinux 0xa1c04607 __cleancache_invalidate_page +EXPORT_SYMBOL vmlinux 0xa1c76e0a _cond_resched +EXPORT_SYMBOL vmlinux 0xa1cd0013 __mutex_init +EXPORT_SYMBOL vmlinux 0xa1d55e90 _raw_spin_lock_bh +EXPORT_SYMBOL vmlinux 0xa1e24d55 inet_release +EXPORT_SYMBOL vmlinux 0xa1eb0dda unlock_page +EXPORT_SYMBOL vmlinux 0xa1ed7f34 pcim_iomap_regions +EXPORT_SYMBOL vmlinux 0xa1f0ebea bit_waitqueue +EXPORT_SYMBOL vmlinux 0xa20ce1b8 net_msg_warn +EXPORT_SYMBOL vmlinux 0xa23722af dev_addr_init +EXPORT_SYMBOL vmlinux 0xa250c838 param_get_charp +EXPORT_SYMBOL vmlinux 0xa2848c50 ecryptfs_get_auth_tok_key +EXPORT_SYMBOL vmlinux 0xa286c34a block_invalidatepage +EXPORT_SYMBOL vmlinux 0xa2a5fd77 inet_ehash_secret +EXPORT_SYMBOL vmlinux 0xa2ac57c4 tcf_em_unregister +EXPORT_SYMBOL vmlinux 0xa2b9285f xfrm_state_flush +EXPORT_SYMBOL vmlinux 0xa2d3376c qdisc_reset +EXPORT_SYMBOL vmlinux 0xa2dbab53 dss_mgr_unregister_framedone_handler +EXPORT_SYMBOL vmlinux 0xa2df6c66 set_nlink +EXPORT_SYMBOL vmlinux 0xa2eda69b inet_csk_destroy_sock +EXPORT_SYMBOL vmlinux 0xa2ef34d7 rps_sock_flow_table +EXPORT_SYMBOL vmlinux 0xa31e44ba edma_free_channel +EXPORT_SYMBOL vmlinux 0xa31fd68b unlock_new_inode +EXPORT_SYMBOL vmlinux 0xa336feb7 nand_manuf_ids +EXPORT_SYMBOL vmlinux 0xa342d43f ip_options_rcv_srr +EXPORT_SYMBOL vmlinux 0xa34b59fa fb_get_mode +EXPORT_SYMBOL vmlinux 0xa34f1ef5 crc32_le +EXPORT_SYMBOL vmlinux 0xa34f9dca ptp_clock_register +EXPORT_SYMBOL vmlinux 0xa35444e4 dispc_write_irqenable +EXPORT_SYMBOL vmlinux 0xa35de80f ipv4_config +EXPORT_SYMBOL vmlinux 0xa3712d4f simple_rename +EXPORT_SYMBOL vmlinux 0xa3764a1e ether_setup +EXPORT_SYMBOL vmlinux 0xa381944f dql_reset +EXPORT_SYMBOL vmlinux 0xa3b6ebe6 netlink_broadcast_filtered +EXPORT_SYMBOL vmlinux 0xa3f35bf5 rwsem_is_locked +EXPORT_SYMBOL vmlinux 0xa403c2ba grab_cache_page_nowait +EXPORT_SYMBOL vmlinux 0xa40f4443 mmc_gpio_free_cd +EXPORT_SYMBOL vmlinux 0xa414882d add_wait_queue_exclusive +EXPORT_SYMBOL vmlinux 0xa41b2305 set_user_nice +EXPORT_SYMBOL vmlinux 0xa43b1297 vscnprintf +EXPORT_SYMBOL vmlinux 0xa43b9539 memcpy_fromiovecend +EXPORT_SYMBOL vmlinux 0xa449afda tcf_action_dump_1 +EXPORT_SYMBOL vmlinux 0xa452ec0a omap_video_timings_to_videomode +EXPORT_SYMBOL vmlinux 0xa457fe2a inet_dgram_connect +EXPORT_SYMBOL vmlinux 0xa4592203 iget_failed +EXPORT_SYMBOL vmlinux 0xa45a34ff nf_ip_checksum +EXPORT_SYMBOL vmlinux 0xa45d0c3f pm_vt_switch_unregister +EXPORT_SYMBOL vmlinux 0xa4610bc6 omap_rev +EXPORT_SYMBOL vmlinux 0xa4701e9e timekeeping_inject_offset +EXPORT_SYMBOL vmlinux 0xa471bc60 phy_ethtool_sset +EXPORT_SYMBOL vmlinux 0xa48d9bae pci_pme_active +EXPORT_SYMBOL vmlinux 0xa48f5b09 omap_dma_set_global_params +EXPORT_SYMBOL vmlinux 0xa4b42c55 omap_set_dma_priority +EXPORT_SYMBOL vmlinux 0xa4dac41d dev_set_drvdata +EXPORT_SYMBOL vmlinux 0xa4ebe655 cdrom_check_events +EXPORT_SYMBOL vmlinux 0xa4f77a61 fifo_create_dflt +EXPORT_SYMBOL vmlinux 0xa50a111e inet_peer_xrlim_allow +EXPORT_SYMBOL vmlinux 0xa5526619 rb_insert_color +EXPORT_SYMBOL vmlinux 0xa562cffa revalidate_disk +EXPORT_SYMBOL vmlinux 0xa5642ffc __generic_block_fiemap +EXPORT_SYMBOL vmlinux 0xa5699931 lock_sock_nested +EXPORT_SYMBOL vmlinux 0xa577a850 param_get_short +EXPORT_SYMBOL vmlinux 0xa58fea9d mempool_destroy +EXPORT_SYMBOL vmlinux 0xa597d9d7 alloc_fcdev +EXPORT_SYMBOL vmlinux 0xa598e29c vesa_modes +EXPORT_SYMBOL vmlinux 0xa59d9491 uart_remove_one_port +EXPORT_SYMBOL vmlinux 0xa5b0b78c vfs_open +EXPORT_SYMBOL vmlinux 0xa5c3e56f ip_options_compile +EXPORT_SYMBOL vmlinux 0xa5cef8ad release_resource +EXPORT_SYMBOL vmlinux 0xa5dd45f3 prandom_bytes_state +EXPORT_SYMBOL vmlinux 0xa5e3335c ab3100_event_unregister +EXPORT_SYMBOL vmlinux 0xa5fe7f3a pci_target_state +EXPORT_SYMBOL vmlinux 0xa609a707 cad_pid +EXPORT_SYMBOL vmlinux 0xa61a1e3e psched_ratecfg_precompute +EXPORT_SYMBOL vmlinux 0xa61aa028 snd_pcm_format_unsigned +EXPORT_SYMBOL vmlinux 0xa61ca711 inet6_protos +EXPORT_SYMBOL vmlinux 0xa61e4362 omap_request_dma +EXPORT_SYMBOL vmlinux 0xa637c3e6 pm_vt_switch_required +EXPORT_SYMBOL vmlinux 0xa63d85ab slhc_remember +EXPORT_SYMBOL vmlinux 0xa64a4cea usb_nop_xceiv_unregister +EXPORT_SYMBOL vmlinux 0xa64aa4bf pci_bus_assign_resources +EXPORT_SYMBOL vmlinux 0xa64c4874 nf_reinject +EXPORT_SYMBOL vmlinux 0xa6715115 do_settimeofday +EXPORT_SYMBOL vmlinux 0xa675804c utf8s_to_utf16s +EXPORT_SYMBOL vmlinux 0xa67e954d jbd2_journal_get_create_access +EXPORT_SYMBOL vmlinux 0xa681fe88 generate_random_uuid +EXPORT_SYMBOL vmlinux 0xa684f58a blk_integrity_merge_bio +EXPORT_SYMBOL vmlinux 0xa6857822 locks_copy_lock +EXPORT_SYMBOL vmlinux 0xa6882fbc d_splice_alias +EXPORT_SYMBOL vmlinux 0xa6970398 __kfifo_to_user_r +EXPORT_SYMBOL vmlinux 0xa6a31e73 may_umount +EXPORT_SYMBOL vmlinux 0xa6b63d02 __cleancache_invalidate_fs +EXPORT_SYMBOL vmlinux 0xa6bab23d dqstats +EXPORT_SYMBOL vmlinux 0xa6eb249d dma_release_declared_memory +EXPORT_SYMBOL vmlinux 0xa6eb9f44 nobh_write_end +EXPORT_SYMBOL vmlinux 0xa7006534 read_cache_page_gfp +EXPORT_SYMBOL vmlinux 0xa72624dd omap_dss_get_output +EXPORT_SYMBOL vmlinux 0xa7282c18 __d_drop +EXPORT_SYMBOL vmlinux 0xa734a3e9 abort_exclusive_wait +EXPORT_SYMBOL vmlinux 0xa735db59 prandom_u32 +EXPORT_SYMBOL vmlinux 0xa73fc98f of_n_addr_cells +EXPORT_SYMBOL vmlinux 0xa741ee0f ipv6_setsockopt +EXPORT_SYMBOL vmlinux 0xa768aab1 journal_destroy +EXPORT_SYMBOL vmlinux 0xa77a369d idr_init +EXPORT_SYMBOL vmlinux 0xa785f5c4 xfrm6_prepare_output +EXPORT_SYMBOL vmlinux 0xa78e8b02 dcbnl_ieee_notify +EXPORT_SYMBOL vmlinux 0xa7a12032 scsi_block_when_processing_errors +EXPORT_SYMBOL vmlinux 0xa7d26ac7 kblockd_schedule_delayed_work +EXPORT_SYMBOL vmlinux 0xa7d7fbf1 security_path_mknod +EXPORT_SYMBOL vmlinux 0xa7e4586f uart_get_baud_rate +EXPORT_SYMBOL vmlinux 0xa808bcb8 vexpress_config_wait +EXPORT_SYMBOL vmlinux 0xa80db0d5 generic_file_buffered_write +EXPORT_SYMBOL vmlinux 0xa8179a60 blk_queue_segment_boundary +EXPORT_SYMBOL vmlinux 0xa822f207 copy_strings_kernel +EXPORT_SYMBOL vmlinux 0xa8232c78 strtobool +EXPORT_SYMBOL vmlinux 0xa83c7af1 bio_integrity_set_tag +EXPORT_SYMBOL vmlinux 0xa843805a get_unused_fd_flags +EXPORT_SYMBOL vmlinux 0xa84a0ef6 dquot_quota_on +EXPORT_SYMBOL vmlinux 0xa84af9b7 of_find_device_by_node +EXPORT_SYMBOL vmlinux 0xa85eafa5 padata_register_cpumask_notifier +EXPORT_SYMBOL vmlinux 0xa8721b97 system_state +EXPORT_SYMBOL vmlinux 0xa884819b mmc_flush_cache +EXPORT_SYMBOL vmlinux 0xa8934a59 i2c_release_client +EXPORT_SYMBOL vmlinux 0xa8af437f xfrm_policy_bysel_ctx +EXPORT_SYMBOL vmlinux 0xa8b8da4a inode_needs_sync +EXPORT_SYMBOL vmlinux 0xa8db52aa file_ns_capable +EXPORT_SYMBOL vmlinux 0xa8f2e141 journal_clear_err +EXPORT_SYMBOL vmlinux 0xa8fbba29 pci_bus_alloc_resource +EXPORT_SYMBOL vmlinux 0xa8fef7bb security_unix_may_send +EXPORT_SYMBOL vmlinux 0xa964dd13 gpmc_cs_request +EXPORT_SYMBOL vmlinux 0xa9685d96 mmc_fixup_device +EXPORT_SYMBOL vmlinux 0xa9863bc5 generic_pipe_buf_release +EXPORT_SYMBOL vmlinux 0xa999f9e5 simple_link +EXPORT_SYMBOL vmlinux 0xa9b812ab tc6393xb_lcd_set_power +EXPORT_SYMBOL vmlinux 0xa9cee019 block_write_begin +EXPORT_SYMBOL vmlinux 0xa9effda5 __first_cpu +EXPORT_SYMBOL vmlinux 0xa9fe1219 alloc_fddidev +EXPORT_SYMBOL vmlinux 0xaa1e24e8 scsi_put_command +EXPORT_SYMBOL vmlinux 0xaa28fcbd dma_async_memcpy_buf_to_pg +EXPORT_SYMBOL vmlinux 0xaa2c71c7 names_cachep +EXPORT_SYMBOL vmlinux 0xaa49f7e1 fsnotify_init_mark +EXPORT_SYMBOL vmlinux 0xaa5927f9 scsi_kmap_atomic_sg +EXPORT_SYMBOL vmlinux 0xaa6901ac __kfifo_out_r +EXPORT_SYMBOL vmlinux 0xaa6f23ad rfkill_get_led_trigger_name +EXPORT_SYMBOL vmlinux 0xaa8b8530 pci_stop_and_remove_bus_device +EXPORT_SYMBOL vmlinux 0xaa8d3d29 sock_no_setsockopt +EXPORT_SYMBOL vmlinux 0xaabe0cd2 sock_common_recvmsg +EXPORT_SYMBOL vmlinux 0xaad6d92f rfkill_init_sw_state +EXPORT_SYMBOL vmlinux 0xaafdc258 strcasecmp +EXPORT_SYMBOL vmlinux 0xab08e2ff sock_rfree +EXPORT_SYMBOL vmlinux 0xab1d6cc1 param_get_long +EXPORT_SYMBOL vmlinux 0xab322b16 blk_end_request_cur +EXPORT_SYMBOL vmlinux 0xab38d0ef unregister_binfmt +EXPORT_SYMBOL vmlinux 0xab536a45 end_buffer_write_sync +EXPORT_SYMBOL vmlinux 0xab589a91 skb_copy_expand +EXPORT_SYMBOL vmlinux 0xab600421 probe_irq_off +EXPORT_SYMBOL vmlinux 0xab694444 bsearch +EXPORT_SYMBOL vmlinux 0xab6bde28 sysctl_max_syn_backlog +EXPORT_SYMBOL vmlinux 0xab707098 fb_set_suspend +EXPORT_SYMBOL vmlinux 0xab7603e7 imx_ssi_fiq_start +EXPORT_SYMBOL vmlinux 0xab781570 fb_get_options +EXPORT_SYMBOL vmlinux 0xab80cfce i2c_smbus_write_word_data +EXPORT_SYMBOL vmlinux 0xab9d7360 mmc_can_sanitize +EXPORT_SYMBOL vmlinux 0xabc15849 i2c_smbus_read_byte_data +EXPORT_SYMBOL vmlinux 0xabc6dd63 cpufreq_sysfs_create_file +EXPORT_SYMBOL vmlinux 0xabcaa577 free_anon_bdev +EXPORT_SYMBOL vmlinux 0xabd0c91c rtc_time_to_tm +EXPORT_SYMBOL vmlinux 0xabdd57c3 wireless_send_event +EXPORT_SYMBOL vmlinux 0xabe1e7ee bmap +EXPORT_SYMBOL vmlinux 0xabee4648 vfs_follow_link +EXPORT_SYMBOL vmlinux 0xabf99f56 page_follow_link_light +EXPORT_SYMBOL vmlinux 0xac0ba8c1 blk_iopoll_disable +EXPORT_SYMBOL vmlinux 0xac123df0 blk_queue_merge_bvec +EXPORT_SYMBOL vmlinux 0xac1a55be unregister_reboot_notifier +EXPORT_SYMBOL vmlinux 0xac31e3ed sock_diag_put_filterinfo +EXPORT_SYMBOL vmlinux 0xac7a93f3 fget_light +EXPORT_SYMBOL vmlinux 0xac8bcfb3 mntput +EXPORT_SYMBOL vmlinux 0xac8f37b2 outer_cache +EXPORT_SYMBOL vmlinux 0xacab29b7 seq_hlist_start_percpu +EXPORT_SYMBOL vmlinux 0xacc0f733 i2c_transfer +EXPORT_SYMBOL vmlinux 0xacc528dd pci_bus_put +EXPORT_SYMBOL vmlinux 0xaccabc6a in4_pton +EXPORT_SYMBOL vmlinux 0xacf4d843 match_strdup +EXPORT_SYMBOL vmlinux 0xacfc1914 dev_change_carrier +EXPORT_SYMBOL vmlinux 0xad0413d4 match_hex +EXPORT_SYMBOL vmlinux 0xad19dfb0 abx500_event_registers_startup_state_get +EXPORT_SYMBOL vmlinux 0xad46dec2 of_count_phandle_with_args +EXPORT_SYMBOL vmlinux 0xad5fd4b1 generic_pipe_buf_steal +EXPORT_SYMBOL vmlinux 0xad6c31e2 free_xenballooned_pages +EXPORT_SYMBOL vmlinux 0xad6d815e bio_flush_dcache_pages +EXPORT_SYMBOL vmlinux 0xad84bef8 dm_table_event +EXPORT_SYMBOL vmlinux 0xadb5559d param_ops_byte +EXPORT_SYMBOL vmlinux 0xadb6ec8a __bforget +EXPORT_SYMBOL vmlinux 0xadd7f351 scsi_device_resume +EXPORT_SYMBOL vmlinux 0xade88e76 snd_malloc_pages +EXPORT_SYMBOL vmlinux 0xadf42bd5 __request_region +EXPORT_SYMBOL vmlinux 0xae19b6d7 dquot_free_inode +EXPORT_SYMBOL vmlinux 0xae208cbe snd_pcm_lib_free_vmalloc_buffer +EXPORT_SYMBOL vmlinux 0xae2801fd inet_confirm_addr +EXPORT_SYMBOL vmlinux 0xae40ad32 mmc_start_req +EXPORT_SYMBOL vmlinux 0xae58a987 posix_unblock_lock +EXPORT_SYMBOL vmlinux 0xae5a5a19 set_groups +EXPORT_SYMBOL vmlinux 0xae729e59 security_req_classify_flow +EXPORT_SYMBOL vmlinux 0xae815542 fsnotify_alloc_group +EXPORT_SYMBOL vmlinux 0xae8c691b blk_free_tags +EXPORT_SYMBOL vmlinux 0xaec655c7 alloc_pages_exact +EXPORT_SYMBOL vmlinux 0xaeeb9898 unregister_qdisc +EXPORT_SYMBOL vmlinux 0xaeed2e0b remove_proc_subtree +EXPORT_SYMBOL vmlinux 0xaeefbeed kset_unregister +EXPORT_SYMBOL vmlinux 0xaef7858c __sg_page_iter_next +EXPORT_SYMBOL vmlinux 0xaf05b91b of_device_is_available +EXPORT_SYMBOL vmlinux 0xaf0e0eea of_mdio_find_bus +EXPORT_SYMBOL vmlinux 0xaf3699d4 phy_print_status +EXPORT_SYMBOL vmlinux 0xaf3dd7dc scsi_logging_level +EXPORT_SYMBOL vmlinux 0xaf4d4bd5 arp_send +EXPORT_SYMBOL vmlinux 0xaf50e76d elf_set_personality +EXPORT_SYMBOL vmlinux 0xaf5f7994 remove_conflicting_framebuffers +EXPORT_SYMBOL vmlinux 0xaf67d0fd snd_pcm_lib_writev +EXPORT_SYMBOL vmlinux 0xaf845788 writeback_inodes_sb_nr +EXPORT_SYMBOL vmlinux 0xaf86cc34 tcf_hash_create +EXPORT_SYMBOL vmlinux 0xaf8aa518 system_rev +EXPORT_SYMBOL vmlinux 0xaf91d89f __kernel_param_lock +EXPORT_SYMBOL vmlinux 0xafabf924 __inc_zone_page_state +EXPORT_SYMBOL vmlinux 0xafb3481d simple_statfs +EXPORT_SYMBOL vmlinux 0xafc5f5eb bioset_integrity_free +EXPORT_SYMBOL vmlinux 0xafdd3df0 md_wait_for_blocked_rdev +EXPORT_SYMBOL vmlinux 0xb02a7967 km_report +EXPORT_SYMBOL vmlinux 0xb0399ba0 register_gifconf +EXPORT_SYMBOL vmlinux 0xb04cf0fe lg_local_unlock +EXPORT_SYMBOL vmlinux 0xb05fc310 sysctl_rmem_max +EXPORT_SYMBOL vmlinux 0xb066a479 omap_dss_find_output_by_node +EXPORT_SYMBOL vmlinux 0xb0a0da0c rational_best_approximation +EXPORT_SYMBOL vmlinux 0xb0b847ac __bitmap_full +EXPORT_SYMBOL vmlinux 0xb0c269f1 sk_page_frag_refill +EXPORT_SYMBOL vmlinux 0xb0cb82ef inet_csk_reset_keepalive_timer +EXPORT_SYMBOL vmlinux 0xb0e10781 get_option +EXPORT_SYMBOL vmlinux 0xb0e281b1 __dquot_free_space +EXPORT_SYMBOL vmlinux 0xb0ffda2f blk_limits_max_hw_sectors +EXPORT_SYMBOL vmlinux 0xb1044855 mmc_get_card +EXPORT_SYMBOL vmlinux 0xb121390a probe_irq_on +EXPORT_SYMBOL vmlinux 0xb12cbacb fb_unregister_client +EXPORT_SYMBOL vmlinux 0xb1595bc1 of_find_i2c_device_by_node +EXPORT_SYMBOL vmlinux 0xb19760c3 bitmap_onto +EXPORT_SYMBOL vmlinux 0xb19ef628 neigh_parms_alloc +EXPORT_SYMBOL vmlinux 0xb1b3a7a8 pci_get_slot +EXPORT_SYMBOL vmlinux 0xb1c3a01a oops_in_progress +EXPORT_SYMBOL vmlinux 0xb1c3cd40 jbd2_journal_restart +EXPORT_SYMBOL vmlinux 0xb1c4f277 pci_request_region +EXPORT_SYMBOL vmlinux 0xb1cf44df fb_find_best_mode +EXPORT_SYMBOL vmlinux 0xb1d9aabd lg_local_unlock_cpu +EXPORT_SYMBOL vmlinux 0xb1e30f2a sock_sendmsg +EXPORT_SYMBOL vmlinux 0xb2158f83 tcp_v4_syn_recv_sock +EXPORT_SYMBOL vmlinux 0xb253f970 inet6_bind +EXPORT_SYMBOL vmlinux 0xb264c7da snd_component_add +EXPORT_SYMBOL vmlinux 0xb2661cfe ppp_register_net_channel +EXPORT_SYMBOL vmlinux 0xb2682405 utf8_to_utf32 +EXPORT_SYMBOL vmlinux 0xb288c675 inode_set_bytes +EXPORT_SYMBOL vmlinux 0xb298cb59 sk_receive_skb +EXPORT_SYMBOL vmlinux 0xb29dae20 pci_assign_resource +EXPORT_SYMBOL vmlinux 0xb2b94674 __crc32c_le +EXPORT_SYMBOL vmlinux 0xb2be6e92 netdev_stats_to_stats64 +EXPORT_SYMBOL vmlinux 0xb2cdbd75 wireless_spy_update +EXPORT_SYMBOL vmlinux 0xb2d307de param_ops_short +EXPORT_SYMBOL vmlinux 0xb2d48a2e queue_work_on +EXPORT_SYMBOL vmlinux 0xb2e5ae4a snd_lookup_minor_data +EXPORT_SYMBOL vmlinux 0xb30056b8 __sk_dst_check +EXPORT_SYMBOL vmlinux 0xb30099ae dquot_commit_info +EXPORT_SYMBOL vmlinux 0xb32395ad scsi_host_set_state +EXPORT_SYMBOL vmlinux 0xb324b3fd sock_no_sendmsg +EXPORT_SYMBOL vmlinux 0xb34f2edc skb_checksum_help +EXPORT_SYMBOL vmlinux 0xb36246bd udp_proc_unregister +EXPORT_SYMBOL vmlinux 0xb367c984 mxc_set_irq_fiq +EXPORT_SYMBOL vmlinux 0xb369263d sock_no_connect +EXPORT_SYMBOL vmlinux 0xb37adf1c __scsi_put_command +EXPORT_SYMBOL vmlinux 0xb398c2f9 free_mdio_bitbang +EXPORT_SYMBOL vmlinux 0xb39c1b49 ip_route_input_noref +EXPORT_SYMBOL vmlinux 0xb39e9a2d default_file_splice_read +EXPORT_SYMBOL vmlinux 0xb3eeeece arm_dma_ops +EXPORT_SYMBOL vmlinux 0xb3f7646e kthread_should_stop +EXPORT_SYMBOL vmlinux 0xb3fa703a pci_setup_cardbus +EXPORT_SYMBOL vmlinux 0xb423dba1 console_blanked +EXPORT_SYMBOL vmlinux 0xb43112a6 nf_ct_attach +EXPORT_SYMBOL vmlinux 0xb4392ec0 bio_reset +EXPORT_SYMBOL vmlinux 0xb44cf460 remap_pfn_range +EXPORT_SYMBOL vmlinux 0xb4577a3c ip_mc_inc_group +EXPORT_SYMBOL vmlinux 0xb46332a2 release_sock +EXPORT_SYMBOL vmlinux 0xb4709322 scsi_dev_info_add_list +EXPORT_SYMBOL vmlinux 0xb472697e bioset_free +EXPORT_SYMBOL vmlinux 0xb4a72e13 do_map_probe +EXPORT_SYMBOL vmlinux 0xb4b1e545 journal_unlock_updates +EXPORT_SYMBOL vmlinux 0xb4b94377 __nand_correct_data +EXPORT_SYMBOL vmlinux 0xb4c8f38a omap_dma_chain_status +EXPORT_SYMBOL vmlinux 0xb4f21419 snd_card_proc_new +EXPORT_SYMBOL vmlinux 0xb5188d60 sched_autogroup_detach +EXPORT_SYMBOL vmlinux 0xb51ec336 deactivate_super +EXPORT_SYMBOL vmlinux 0xb52d490e snd_info_create_card_entry +EXPORT_SYMBOL vmlinux 0xb54088a3 posix_acl_alloc +EXPORT_SYMBOL vmlinux 0xb540b76b netdev_class_create_file +EXPORT_SYMBOL vmlinux 0xb54533f7 usecs_to_jiffies +EXPORT_SYMBOL vmlinux 0xb54ca1a5 crypto_sha256_update +EXPORT_SYMBOL vmlinux 0xb551abfc pci_find_capability +EXPORT_SYMBOL vmlinux 0xb5545de3 pci_enable_device +EXPORT_SYMBOL vmlinux 0xb5582f6b override_creds +EXPORT_SYMBOL vmlinux 0xb55a1b10 init_task +EXPORT_SYMBOL vmlinux 0xb562d247 snd_pcm_lib_preallocate_pages_for_all +EXPORT_SYMBOL vmlinux 0xb5728739 netif_receive_skb +EXPORT_SYMBOL vmlinux 0xb57343c2 frontswap_shrink +EXPORT_SYMBOL vmlinux 0xb5792723 mmc_unregister_driver +EXPORT_SYMBOL vmlinux 0xb58dd89e gnet_stats_copy_rate_est +EXPORT_SYMBOL vmlinux 0xb5a459dc unregister_blkdev +EXPORT_SYMBOL vmlinux 0xb5aa7165 dma_pool_destroy +EXPORT_SYMBOL vmlinux 0xb5ca1c46 slhc_free +EXPORT_SYMBOL vmlinux 0xb5cd1691 vexpress_config_complete +EXPORT_SYMBOL vmlinux 0xb5d9454c printk_emit +EXPORT_SYMBOL vmlinux 0xb5dbeb81 skb_add_rx_frag +EXPORT_SYMBOL vmlinux 0xb5e28a76 ilookup5_nowait +EXPORT_SYMBOL vmlinux 0xb5ebaf4f uart_match_port +EXPORT_SYMBOL vmlinux 0xb60029ee blk_queue_init_tags +EXPORT_SYMBOL vmlinux 0xb614aa3c bio_integrity_prep +EXPORT_SYMBOL vmlinux 0xb61dba01 ip6_frag_match +EXPORT_SYMBOL vmlinux 0xb63d3192 bio_uncopy_user +EXPORT_SYMBOL vmlinux 0xb64d8d77 twl6040_get_vibralr_status +EXPORT_SYMBOL vmlinux 0xb6652413 omapdss_sdi_display_disable +EXPORT_SYMBOL vmlinux 0xb678366f int_sqrt +EXPORT_SYMBOL vmlinux 0xb67b03c8 __lru_cache_add +EXPORT_SYMBOL vmlinux 0xb6822a33 radix_tree_gang_lookup_tag +EXPORT_SYMBOL vmlinux 0xb6855501 console_stop +EXPORT_SYMBOL vmlinux 0xb6896671 crc_t10dif +EXPORT_SYMBOL vmlinux 0xb6936ffe _bcd2bin +EXPORT_SYMBOL vmlinux 0xb6a660d0 follow_up +EXPORT_SYMBOL vmlinux 0xb6a68816 find_last_bit +EXPORT_SYMBOL vmlinux 0xb6c5a973 scsi_show_result +EXPORT_SYMBOL vmlinux 0xb6de66d1 skb_free_datagram_locked +EXPORT_SYMBOL vmlinux 0xb6deddf3 blk_init_tags +EXPORT_SYMBOL vmlinux 0xb6ef34c8 register_filesystem +EXPORT_SYMBOL vmlinux 0xb706a9bb proc_set_size +EXPORT_SYMBOL vmlinux 0xb70ef994 bioset_create +EXPORT_SYMBOL vmlinux 0xb71fb74f _raw_read_trylock +EXPORT_SYMBOL vmlinux 0xb73117ff dev_uc_unsync +EXPORT_SYMBOL vmlinux 0xb73368b6 arm_coherent_dma_ops +EXPORT_SYMBOL vmlinux 0xb751a4b4 pci_bus_write_config_dword +EXPORT_SYMBOL vmlinux 0xb7690f19 omapdss_register_output +EXPORT_SYMBOL vmlinux 0xb7778ceb sock_i_ino +EXPORT_SYMBOL vmlinux 0xb78aeb3c __serio_register_port +EXPORT_SYMBOL vmlinux 0xb79976a1 max8925_bulk_read +EXPORT_SYMBOL vmlinux 0xb7a4718a jbd2_journal_start +EXPORT_SYMBOL vmlinux 0xb7a7241b bio_integrity_free +EXPORT_SYMBOL vmlinux 0xb7b61546 crc32_be +EXPORT_SYMBOL vmlinux 0xb7ba76c7 __aeabi_unwind_cpp_pr2 +EXPORT_SYMBOL vmlinux 0xb7c1cdb9 seq_open_private +EXPORT_SYMBOL vmlinux 0xb7d5b56f tty_port_open +EXPORT_SYMBOL vmlinux 0xb80a5e5c elv_rb_former_request +EXPORT_SYMBOL vmlinux 0xb81825a8 journal_flush +EXPORT_SYMBOL vmlinux 0xb81960ca snprintf +EXPORT_SYMBOL vmlinux 0xb82117ce ip_cmsg_recv +EXPORT_SYMBOL vmlinux 0xb82f8f41 __set_page_dirty_nobuffers +EXPORT_SYMBOL vmlinux 0xb835b3e4 radix_tree_prev_hole +EXPORT_SYMBOL vmlinux 0xb83ff124 cfb_copyarea +EXPORT_SYMBOL vmlinux 0xb85927b6 tcp_poll +EXPORT_SYMBOL vmlinux 0xb863b718 locks_remove_posix +EXPORT_SYMBOL vmlinux 0xb8722bcb snd_pci_quirk_lookup +EXPORT_SYMBOL vmlinux 0xb874b87a __clzsi2 +EXPORT_SYMBOL vmlinux 0xb891812d mem_cgroup_subsys +EXPORT_SYMBOL vmlinux 0xb8aa2342 __check_region +EXPORT_SYMBOL vmlinux 0xb8df68c5 pci_disable_link_state +EXPORT_SYMBOL vmlinux 0xb8e877e7 kstrtouint_from_user +EXPORT_SYMBOL vmlinux 0xb908672a pm8606_osc_enable +EXPORT_SYMBOL vmlinux 0xb9271bb7 fb_show_logo +EXPORT_SYMBOL vmlinux 0xb9382a1e __skb_warn_lro_forwarding +EXPORT_SYMBOL vmlinux 0xb946850f snd_pcm_lib_preallocate_pages +EXPORT_SYMBOL vmlinux 0xb94e72f0 pci_wake_from_d3 +EXPORT_SYMBOL vmlinux 0xb95124e6 journal_load +EXPORT_SYMBOL vmlinux 0xb95f3b2b pci_bus_write_config_byte +EXPORT_SYMBOL vmlinux 0xb95f98d6 _memset_io +EXPORT_SYMBOL vmlinux 0xb95fbc86 mmc_can_secure_erase_trim +EXPORT_SYMBOL vmlinux 0xb9638db4 snd_pcm_rate_to_rate_bit +EXPORT_SYMBOL vmlinux 0xb97916f5 __f_setown +EXPORT_SYMBOL vmlinux 0xb98a0185 rtc_tm_to_time +EXPORT_SYMBOL vmlinux 0xb9a8f03b omap_stop_dma +EXPORT_SYMBOL vmlinux 0xb9aa6362 __netdev_alloc_skb +EXPORT_SYMBOL vmlinux 0xb9acd3d9 __put_user_2 +EXPORT_SYMBOL vmlinux 0xb9bdde9f tcf_generic_walker +EXPORT_SYMBOL vmlinux 0xb9c1164e padata_stop +EXPORT_SYMBOL vmlinux 0xb9e53d19 nf_getsockopt +EXPORT_SYMBOL vmlinux 0xb9f83e4e tcp_v4_send_check +EXPORT_SYMBOL vmlinux 0xba08ec4a pipe_lock +EXPORT_SYMBOL vmlinux 0xba1d52bc input_unregister_handler +EXPORT_SYMBOL vmlinux 0xba1dcd2d devfreq_monitor_stop +EXPORT_SYMBOL vmlinux 0xba234345 request_firmware_nowait +EXPORT_SYMBOL vmlinux 0xba2ecee7 generic_file_aio_write +EXPORT_SYMBOL vmlinux 0xba39a3ac jbd2_journal_blocks_per_page +EXPORT_SYMBOL vmlinux 0xba3bbd38 pid_task +EXPORT_SYMBOL vmlinux 0xba497f13 loops_per_jiffy +EXPORT_SYMBOL vmlinux 0xba4ba75f nf_register_sockopt +EXPORT_SYMBOL vmlinux 0xba64cbff jbd2_journal_init_jbd_inode +EXPORT_SYMBOL vmlinux 0xba6ed31f mem_map +EXPORT_SYMBOL vmlinux 0xba6fa9d8 neigh_event_ns +EXPORT_SYMBOL vmlinux 0xba7d870a __mxc_cpu_type +EXPORT_SYMBOL vmlinux 0xba922199 phy_find_first +EXPORT_SYMBOL vmlinux 0xbaac427c get_mem_type +EXPORT_SYMBOL vmlinux 0xbab22a2d omap_dss_get_overlay_manager +EXPORT_SYMBOL vmlinux 0xbac24aa5 sock_recvmsg +EXPORT_SYMBOL vmlinux 0xbad2412a snd_timer_global_register +EXPORT_SYMBOL vmlinux 0xbada09ee __neigh_for_each_release +EXPORT_SYMBOL vmlinux 0xbaeffa05 qid_eq +EXPORT_SYMBOL vmlinux 0xbafeee36 dispc_runtime_get +EXPORT_SYMBOL vmlinux 0xbb189cad disallow_signal +EXPORT_SYMBOL vmlinux 0xbb1aad45 follow_down +EXPORT_SYMBOL vmlinux 0xbb1f8718 mount_subtree +EXPORT_SYMBOL vmlinux 0xbb42f54c udp_lib_getsockopt +EXPORT_SYMBOL vmlinux 0xbb543980 __dynamic_dev_dbg +EXPORT_SYMBOL vmlinux 0xbb5d343d xfrm_get_acqseq +EXPORT_SYMBOL vmlinux 0xbb713e6d sk_filter_release_rcu +EXPORT_SYMBOL vmlinux 0xbb72d4fe __put_user_1 +EXPORT_SYMBOL vmlinux 0xbb8a1a00 generic_setlease +EXPORT_SYMBOL vmlinux 0xbb8afbc6 bdi_unregister +EXPORT_SYMBOL vmlinux 0xbb8c9a24 consume_skb +EXPORT_SYMBOL vmlinux 0xbb986e3e scsi_report_bus_reset +EXPORT_SYMBOL vmlinux 0xbb99125c get_default_font +EXPORT_SYMBOL vmlinux 0xbba99b8c security_old_inode_init_security +EXPORT_SYMBOL vmlinux 0xbbbb74f6 udp_disconnect +EXPORT_SYMBOL vmlinux 0xbbe8bce3 snd_dma_get_reserved_buf +EXPORT_SYMBOL vmlinux 0xbbf68b35 proc_set_user +EXPORT_SYMBOL vmlinux 0xbbf9b239 generic_permission +EXPORT_SYMBOL vmlinux 0xbc10dd97 __put_user_4 +EXPORT_SYMBOL vmlinux 0xbc292d4b cdrom_release +EXPORT_SYMBOL vmlinux 0xbc2edcdb __remove_inode_hash +EXPORT_SYMBOL vmlinux 0xbc47e583 tty_throttle +EXPORT_SYMBOL vmlinux 0xbc637095 i2c_verify_client +EXPORT_SYMBOL vmlinux 0xbc6bd19c __netdev_pick_tx +EXPORT_SYMBOL vmlinux 0xbc6bf286 sg_miter_stop +EXPORT_SYMBOL vmlinux 0xbc715656 dev_add_offload +EXPORT_SYMBOL vmlinux 0xbc7e833f skb_trim +EXPORT_SYMBOL vmlinux 0xbcc308bb strnlen_user +EXPORT_SYMBOL vmlinux 0xbcdedba7 of_get_mac_address +EXPORT_SYMBOL vmlinux 0xbce0b817 submit_bio_wait +EXPORT_SYMBOL vmlinux 0xbcf9685b module_refcount +EXPORT_SYMBOL vmlinux 0xbd02cb1d scsi_scan_host +EXPORT_SYMBOL vmlinux 0xbd12a578 inode_dio_wait +EXPORT_SYMBOL vmlinux 0xbd21d993 netdev_emerg +EXPORT_SYMBOL vmlinux 0xbd3bb032 jbd2_journal_extend +EXPORT_SYMBOL vmlinux 0xbd636909 netdev_update_features +EXPORT_SYMBOL vmlinux 0xbd7e8247 sock_no_socketpair +EXPORT_SYMBOL vmlinux 0xbd96c85a vexpress_config_write +EXPORT_SYMBOL vmlinux 0xbdba9828 hdmi_audio_infoframe_pack +EXPORT_SYMBOL vmlinux 0xbdbbe68f single_release +EXPORT_SYMBOL vmlinux 0xbdf2580d __raw_readsl +EXPORT_SYMBOL vmlinux 0xbdf43755 inet_sock_destruct +EXPORT_SYMBOL vmlinux 0xbdff97ae __blk_run_queue +EXPORT_SYMBOL vmlinux 0xbe0e5118 nla_memcmp +EXPORT_SYMBOL vmlinux 0xbe15060f fifo_set_limit +EXPORT_SYMBOL vmlinux 0xbe254e92 param_set_ushort +EXPORT_SYMBOL vmlinux 0xbe2c0274 add_timer +EXPORT_SYMBOL vmlinux 0xbe4f0cb8 update_region +EXPORT_SYMBOL vmlinux 0xbe520209 scsi_device_set_state +EXPORT_SYMBOL vmlinux 0xbe628b1a xfrm_state_unregister_afinfo +EXPORT_SYMBOL vmlinux 0xbe63ee40 request_resource +EXPORT_SYMBOL vmlinux 0xbe75fcad blk_register_region +EXPORT_SYMBOL vmlinux 0xbe86be7a fsl_asoc_get_dma_channel +EXPORT_SYMBOL vmlinux 0xbe8860a8 dispc_mgr_go_busy +EXPORT_SYMBOL vmlinux 0xbe8fb90c dispc_mgr_get_framedone_irq +EXPORT_SYMBOL vmlinux 0xbe9ba1cf i2c_use_client +EXPORT_SYMBOL vmlinux 0xbeaa8d2f nla_reserve_nohdr +EXPORT_SYMBOL vmlinux 0xbec2094b inode_newsize_ok +EXPORT_SYMBOL vmlinux 0xbec25473 of_parse_phandle +EXPORT_SYMBOL vmlinux 0xbee8bf26 key_validate +EXPORT_SYMBOL vmlinux 0xbee90f2f __kfifo_out_peek_r +EXPORT_SYMBOL vmlinux 0xbef43296 console_conditional_schedule +EXPORT_SYMBOL vmlinux 0xbf2997e0 input_grab_device +EXPORT_SYMBOL vmlinux 0xbf32b624 simple_readpage +EXPORT_SYMBOL vmlinux 0xbf337807 fb_class +EXPORT_SYMBOL vmlinux 0xbf3af87c pci_reenable_device +EXPORT_SYMBOL vmlinux 0xbf649758 con_copy_unimap +EXPORT_SYMBOL vmlinux 0xbf67646f dm_kcopyd_zero +EXPORT_SYMBOL vmlinux 0xbf69165f inet6_add_protocol +EXPORT_SYMBOL vmlinux 0xbf75ea6c tegra114_clock_tune_cpu_trimmers_low +EXPORT_SYMBOL vmlinux 0xbf7fd2f5 schedule_timeout_killable +EXPORT_SYMBOL vmlinux 0xbf8ba54a vprintk +EXPORT_SYMBOL vmlinux 0xbf9bcc8d __cap_empty_set +EXPORT_SYMBOL vmlinux 0xbfa97303 __skb_recv_datagram +EXPORT_SYMBOL vmlinux 0xbfb69ac3 tty_free_termios +EXPORT_SYMBOL vmlinux 0xbfbd5a3b sock_no_mmap +EXPORT_SYMBOL vmlinux 0xbfbda65e posix_acl_from_xattr +EXPORT_SYMBOL vmlinux 0xbfc407b4 param_ops_bint +EXPORT_SYMBOL vmlinux 0xbfcbc0d2 stmp_reset_block +EXPORT_SYMBOL vmlinux 0xbfdfb54f kset_register +EXPORT_SYMBOL vmlinux 0xbfe57487 do_sync_write +EXPORT_SYMBOL vmlinux 0xbfee3ad5 loop_unregister_transfer +EXPORT_SYMBOL vmlinux 0xbff92581 notify_change +EXPORT_SYMBOL vmlinux 0xc02a1340 mmc_can_discard +EXPORT_SYMBOL vmlinux 0xc02cf69b clkdev_drop +EXPORT_SYMBOL vmlinux 0xc043016a ps2_cmd_aborted +EXPORT_SYMBOL vmlinux 0xc05482bc scsi_target_quiesce +EXPORT_SYMBOL vmlinux 0xc05f08b7 d_delete +EXPORT_SYMBOL vmlinux 0xc068440e __kfifo_alloc +EXPORT_SYMBOL vmlinux 0xc0763484 rfkill_blocked +EXPORT_SYMBOL vmlinux 0xc0823e4c twl_i2c_write +EXPORT_SYMBOL vmlinux 0xc09ccfe5 ppp_unregister_compressor +EXPORT_SYMBOL vmlinux 0xc0a6a8c5 omap_set_dma_dest_burst_mode +EXPORT_SYMBOL vmlinux 0xc0a98385 profile_pc +EXPORT_SYMBOL vmlinux 0xc0cf95f9 omap_vrfb_request_ctx +EXPORT_SYMBOL vmlinux 0xc0e7f27c pm860x_page_bulk_write +EXPORT_SYMBOL vmlinux 0xc11d8093 iov_shorten +EXPORT_SYMBOL vmlinux 0xc1228101 pci_disable_obff +EXPORT_SYMBOL vmlinux 0xc12ec3a6 dns_query +EXPORT_SYMBOL vmlinux 0xc13189b3 dquot_quota_on_mount +EXPORT_SYMBOL vmlinux 0xc135f465 bitmap_startwrite +EXPORT_SYMBOL vmlinux 0xc1381862 inet6_del_offload +EXPORT_SYMBOL vmlinux 0xc13fcb3a of_phy_connect +EXPORT_SYMBOL vmlinux 0xc1489f56 tty_port_block_til_ready +EXPORT_SYMBOL vmlinux 0xc1a0cc80 sg_alloc_table_from_pages +EXPORT_SYMBOL vmlinux 0xc1c2dd09 __hw_addr_flush +EXPORT_SYMBOL vmlinux 0xc1d313d3 lock_fb_info +EXPORT_SYMBOL vmlinux 0xc1f582a5 __lock_buffer +EXPORT_SYMBOL vmlinux 0xc1faa9d4 fsync_bdev +EXPORT_SYMBOL vmlinux 0xc2081a83 gen_pool_add_virt +EXPORT_SYMBOL vmlinux 0xc20c4247 snd_dma_alloc_pages +EXPORT_SYMBOL vmlinux 0xc20f2038 __generic_file_aio_write +EXPORT_SYMBOL vmlinux 0xc2165d85 __arm_iounmap +EXPORT_SYMBOL vmlinux 0xc219c99c pm8606_osc_disable +EXPORT_SYMBOL vmlinux 0xc221078a prepare_creds +EXPORT_SYMBOL vmlinux 0xc228cfc3 mmc_can_erase +EXPORT_SYMBOL vmlinux 0xc22b50ad param_set_bint +EXPORT_SYMBOL vmlinux 0xc2404532 kern_unmount +EXPORT_SYMBOL vmlinux 0xc24deb94 generic_file_direct_write +EXPORT_SYMBOL vmlinux 0xc25113cf iterate_mounts +EXPORT_SYMBOL vmlinux 0xc256e762 __bitmap_equal +EXPORT_SYMBOL vmlinux 0xc25a18a3 scsi_set_medium_removal +EXPORT_SYMBOL vmlinux 0xc25f8d0a adjust_managed_page_count +EXPORT_SYMBOL vmlinux 0xc27a23ba skb_kill_datagram +EXPORT_SYMBOL vmlinux 0xc27a333c inet6_unregister_icmp_sender +EXPORT_SYMBOL vmlinux 0xc2999e13 remap_vmalloc_range +EXPORT_SYMBOL vmlinux 0xc29c30bb scsi_adjust_queue_depth +EXPORT_SYMBOL vmlinux 0xc2c367ee edma_filter_fn +EXPORT_SYMBOL vmlinux 0xc2d711e1 krealloc +EXPORT_SYMBOL vmlinux 0xc2e587d1 reset_devices +EXPORT_SYMBOL vmlinux 0xc2ec6008 input_unregister_handle +EXPORT_SYMBOL vmlinux 0xc2efd118 rfkill_alloc +EXPORT_SYMBOL vmlinux 0xc2f3dc3c jbd2_journal_stop +EXPORT_SYMBOL vmlinux 0xc2f7ed4c blk_post_runtime_suspend +EXPORT_SYMBOL vmlinux 0xc2f9c045 timespec_to_jiffies +EXPORT_SYMBOL vmlinux 0xc3071da7 simple_unlink +EXPORT_SYMBOL vmlinux 0xc30a3057 netpoll_parse_options +EXPORT_SYMBOL vmlinux 0xc359fb65 abort +EXPORT_SYMBOL vmlinux 0xc35c6a1d tcp_ioctl +EXPORT_SYMBOL vmlinux 0xc371ca1f inet6_ioctl +EXPORT_SYMBOL vmlinux 0xc37de5be udp_ioctl +EXPORT_SYMBOL vmlinux 0xc38223cd wait_for_key_construction +EXPORT_SYMBOL vmlinux 0xc3cd1d59 i2c_smbus_write_i2c_block_data +EXPORT_SYMBOL vmlinux 0xc3d1c01c sock_wfree +EXPORT_SYMBOL vmlinux 0xc3d1fa4d edma_alloc_cont_slots +EXPORT_SYMBOL vmlinux 0xc3f6ef57 blk_integrity_register +EXPORT_SYMBOL vmlinux 0xc3ff776f __devcgroup_inode_permission +EXPORT_SYMBOL vmlinux 0xc4105848 eth_header +EXPORT_SYMBOL vmlinux 0xc41f0516 node_states +EXPORT_SYMBOL vmlinux 0xc42aef2f simple_pin_fs +EXPORT_SYMBOL vmlinux 0xc42d8d36 __break_lease +EXPORT_SYMBOL vmlinux 0xc46ff905 mddev_congested +EXPORT_SYMBOL vmlinux 0xc47eaaa4 journal_invalidatepage +EXPORT_SYMBOL vmlinux 0xc499ae1e kstrdup +EXPORT_SYMBOL vmlinux 0xc4ce2284 blk_run_queue +EXPORT_SYMBOL vmlinux 0xc4e8bd65 inet_sk_rebuild_header +EXPORT_SYMBOL vmlinux 0xc4f21506 buffer_check_dirty_writeback +EXPORT_SYMBOL vmlinux 0xc4f41a0d cdrom_open +EXPORT_SYMBOL vmlinux 0xc52da066 omap_set_dma_dest_params +EXPORT_SYMBOL vmlinux 0xc53fc9e6 flush_kernel_dcache_page +EXPORT_SYMBOL vmlinux 0xc557f1f0 neigh_table_init +EXPORT_SYMBOL vmlinux 0xc57c309e generic_block_bmap +EXPORT_SYMBOL vmlinux 0xc57f41e8 pci_try_set_mwi +EXPORT_SYMBOL vmlinux 0xc5ad9b34 xfrm4_prepare_output +EXPORT_SYMBOL vmlinux 0xc5b8b420 snd_timer_interrupt +EXPORT_SYMBOL vmlinux 0xc5eafe02 sk_send_sigurg +EXPORT_SYMBOL vmlinux 0xc5fdef94 call_usermodehelper +EXPORT_SYMBOL vmlinux 0xc607aa6b simple_open +EXPORT_SYMBOL vmlinux 0xc6213659 con_is_bound +EXPORT_SYMBOL vmlinux 0xc6231b50 xfrm_register_mode +EXPORT_SYMBOL vmlinux 0xc62b32b2 kthread_create_on_node +EXPORT_SYMBOL vmlinux 0xc631580a console_unlock +EXPORT_SYMBOL vmlinux 0xc63907ed blk_pm_runtime_init +EXPORT_SYMBOL vmlinux 0xc6495bae textsearch_register +EXPORT_SYMBOL vmlinux 0xc665631b pcie_set_readrq +EXPORT_SYMBOL vmlinux 0xc665d6d7 of_parse_phandle_with_args +EXPORT_SYMBOL vmlinux 0xc66cdfd2 omap_dss_unregister_driver +EXPORT_SYMBOL vmlinux 0xc66e3e79 journal_check_used_features +EXPORT_SYMBOL vmlinux 0xc673bee7 devm_request_and_ioremap +EXPORT_SYMBOL vmlinux 0xc69372fa dev_set_mac_address +EXPORT_SYMBOL vmlinux 0xc695b211 sock_from_file +EXPORT_SYMBOL vmlinux 0xc6af34db tcp_v4_connect +EXPORT_SYMBOL vmlinux 0xc6c501ec sdev_enable_disk_events +EXPORT_SYMBOL vmlinux 0xc6c87b76 open_exec +EXPORT_SYMBOL vmlinux 0xc6cbbc89 capable +EXPORT_SYMBOL vmlinux 0xc702156b param_get_ushort +EXPORT_SYMBOL vmlinux 0xc717160a vexpress_config_bridge_register +EXPORT_SYMBOL vmlinux 0xc71bb2f1 dev_remove_pack +EXPORT_SYMBOL vmlinux 0xc7208c3a serial8250_resume_port +EXPORT_SYMBOL vmlinux 0xc7224910 serial8250_register_8250_port +EXPORT_SYMBOL vmlinux 0xc74c85e8 do_splice_to +EXPORT_SYMBOL vmlinux 0xc762bec4 netdev_boot_setup_check +EXPORT_SYMBOL vmlinux 0xc763e1bf pcie_port_service_register +EXPORT_SYMBOL vmlinux 0xc7665aca netif_napi_add +EXPORT_SYMBOL vmlinux 0xc769ac75 inet_del_protocol +EXPORT_SYMBOL vmlinux 0xc781bd9f rfkill_resume_polling +EXPORT_SYMBOL vmlinux 0xc7856a3d inet6addr_notifier_call_chain +EXPORT_SYMBOL vmlinux 0xc791eacb kernel_listen +EXPORT_SYMBOL vmlinux 0xc79bcd36 dm_vcalloc +EXPORT_SYMBOL vmlinux 0xc7a4fbed rtnl_lock +EXPORT_SYMBOL vmlinux 0xc7bcbc8d add_wait_queue +EXPORT_SYMBOL vmlinux 0xc7cdd315 sock_no_getname +EXPORT_SYMBOL vmlinux 0xc7e35b39 xfrm_find_acq +EXPORT_SYMBOL vmlinux 0xc7ec6c27 strspn +EXPORT_SYMBOL vmlinux 0xc7f1d315 abx500_get_chip_id +EXPORT_SYMBOL vmlinux 0xc80ea9ed nonseekable_open +EXPORT_SYMBOL vmlinux 0xc8276a79 nf_hooks_needed +EXPORT_SYMBOL vmlinux 0xc8339e24 string_unescape +EXPORT_SYMBOL vmlinux 0xc847120b key_invalidate +EXPORT_SYMBOL vmlinux 0xc84a0a7e seq_hlist_start_rcu +EXPORT_SYMBOL vmlinux 0xc86fc594 max8925_bulk_write +EXPORT_SYMBOL vmlinux 0xc87d5e3e security_inode_readlink +EXPORT_SYMBOL vmlinux 0xc8885792 phy_drivers_register +EXPORT_SYMBOL vmlinux 0xc8901e33 iget5_locked +EXPORT_SYMBOL vmlinux 0xc8a136a3 elv_add_request +EXPORT_SYMBOL vmlinux 0xc8a8ca4c netdev_rx_csum_fault +EXPORT_SYMBOL vmlinux 0xc8ab62cc dump_seek +EXPORT_SYMBOL vmlinux 0xc8b57c27 autoremove_wake_function +EXPORT_SYMBOL vmlinux 0xc8f36b20 kobject_init +EXPORT_SYMBOL vmlinux 0xc909319b tcp_gro_complete +EXPORT_SYMBOL vmlinux 0xc93066e0 sg_pcopy_from_buffer +EXPORT_SYMBOL vmlinux 0xc93a2f4d edma_free_cont_slots +EXPORT_SYMBOL vmlinux 0xc9687c93 clear_nlink +EXPORT_SYMBOL vmlinux 0xc976ea64 max8925_reg_write +EXPORT_SYMBOL vmlinux 0xc996d097 del_timer +EXPORT_SYMBOL vmlinux 0xc99e2a55 twl_rev +EXPORT_SYMBOL vmlinux 0xc99e3b32 rawv6_mh_filter_register +EXPORT_SYMBOL vmlinux 0xc99fae56 alloc_netdev_mqs +EXPORT_SYMBOL vmlinux 0xc9f0dc29 dmam_alloc_noncoherent +EXPORT_SYMBOL vmlinux 0xca3a145b inet6_unregister_protosw +EXPORT_SYMBOL vmlinux 0xca3d83d4 generic_file_fsync +EXPORT_SYMBOL vmlinux 0xca5967e3 vm_stat +EXPORT_SYMBOL vmlinux 0xca5dbc50 scsi_print_sense_hdr +EXPORT_SYMBOL vmlinux 0xca6ce8ba omap_dss_ntsc_timings +EXPORT_SYMBOL vmlinux 0xca72df27 kmem_cache_alloc +EXPORT_SYMBOL vmlinux 0xca8d7eb1 led_blink_set +EXPORT_SYMBOL vmlinux 0xca9360b5 rb_next +EXPORT_SYMBOL vmlinux 0xcaa6a3e5 jbd2__journal_start +EXPORT_SYMBOL vmlinux 0xcab319f7 ftrace_raw_output_prep +EXPORT_SYMBOL vmlinux 0xcac4b36b napi_complete +EXPORT_SYMBOL vmlinux 0xcaddbd7e edma_set_dest_index +EXPORT_SYMBOL vmlinux 0xcadf5a0e skb_store_bits +EXPORT_SYMBOL vmlinux 0xcb0288ea ledtrig_cpu +EXPORT_SYMBOL vmlinux 0xcb0c677f sock_create +EXPORT_SYMBOL vmlinux 0xcb160a41 neigh_resolve_output +EXPORT_SYMBOL vmlinux 0xcb2557ea kobject_add +EXPORT_SYMBOL vmlinux 0xcb35cc71 kdb_current_task +EXPORT_SYMBOL vmlinux 0xcb40d880 __pci_enable_wake +EXPORT_SYMBOL vmlinux 0xcb466063 wait_for_completion_killable_timeout +EXPORT_SYMBOL vmlinux 0xcb85aecc log_start_commit +EXPORT_SYMBOL vmlinux 0xcbaac4d6 snd_dma_reserve_buf +EXPORT_SYMBOL vmlinux 0xcbbf0a6f audit_log_task_context +EXPORT_SYMBOL vmlinux 0xcbc9557f unregister_sysrq_key +EXPORT_SYMBOL vmlinux 0xcbfbf675 mmc_gpio_free_ro +EXPORT_SYMBOL vmlinux 0xcc146f6c blk_peek_request +EXPORT_SYMBOL vmlinux 0xcc248d26 serial8250_suspend_port +EXPORT_SYMBOL vmlinux 0xcc37f55c blk_limits_io_opt +EXPORT_SYMBOL vmlinux 0xcc4b84da of_find_node_by_type +EXPORT_SYMBOL vmlinux 0xcc5005fe msleep_interruptible +EXPORT_SYMBOL vmlinux 0xcc6f25ba __skb_checksum_complete +EXPORT_SYMBOL vmlinux 0xcc704ebc snd_timer_start +EXPORT_SYMBOL vmlinux 0xcc7ec49f journal_abort +EXPORT_SYMBOL vmlinux 0xcc7fa952 local_bh_enable_ip +EXPORT_SYMBOL vmlinux 0xcca3870d sync_blockdev +EXPORT_SYMBOL vmlinux 0xcca7a631 elv_rq_merge_ok +EXPORT_SYMBOL vmlinux 0xccb87964 textsearch_unregister +EXPORT_SYMBOL vmlinux 0xccc21f5e input_get_new_minor +EXPORT_SYMBOL vmlinux 0xcd279169 nla_find +EXPORT_SYMBOL vmlinux 0xcd30b95a tmio_core_mmc_clk_div +EXPORT_SYMBOL vmlinux 0xcd3cb1de mark_buffer_async_write +EXPORT_SYMBOL vmlinux 0xcd569122 writeback_in_progress +EXPORT_SYMBOL vmlinux 0xcd569b20 sync_mapping_buffers +EXPORT_SYMBOL vmlinux 0xcd632c9e phy_register_fixup_for_uid +EXPORT_SYMBOL vmlinux 0xcd63c845 __aeabi_lasr +EXPORT_SYMBOL vmlinux 0xcd78ca00 fasync_helper +EXPORT_SYMBOL vmlinux 0xcd7c8902 max8998_read_reg +EXPORT_SYMBOL vmlinux 0xcdb44386 cdrom_get_media_event +EXPORT_SYMBOL vmlinux 0xcdb69cd7 devm_input_allocate_device +EXPORT_SYMBOL vmlinux 0xcdbc588f sock_kmalloc +EXPORT_SYMBOL vmlinux 0xcdc39c9e security_ismaclabel +EXPORT_SYMBOL vmlinux 0xcde172ac radix_tree_gang_lookup_tag_slot +EXPORT_SYMBOL vmlinux 0xce2840e7 irq_set_irq_wake +EXPORT_SYMBOL vmlinux 0xce2cdf51 skb_dequeue +EXPORT_SYMBOL vmlinux 0xce390d3a of_gpio_simple_xlate +EXPORT_SYMBOL vmlinux 0xce3ca308 copy_from_user_toio +EXPORT_SYMBOL vmlinux 0xce3cd48c jbd2_journal_dirty_metadata +EXPORT_SYMBOL vmlinux 0xce5ac24f zlib_inflate_workspacesize +EXPORT_SYMBOL vmlinux 0xce5d9cdf empty_aops +EXPORT_SYMBOL vmlinux 0xcea46364 request_firmware +EXPORT_SYMBOL vmlinux 0xcea605b0 dev_mc_sync_multiple +EXPORT_SYMBOL vmlinux 0xcea997d7 invalidate_bdev +EXPORT_SYMBOL vmlinux 0xceb26983 __xfrm_init_state +EXPORT_SYMBOL vmlinux 0xcec4db96 blk_alloc_queue +EXPORT_SYMBOL vmlinux 0xcecd574c mmc_hw_reset_check +EXPORT_SYMBOL vmlinux 0xcecfd686 qdisc_tree_decrease_qlen +EXPORT_SYMBOL vmlinux 0xcee3c126 sb_min_blocksize +EXPORT_SYMBOL vmlinux 0xcef22a8d blk_queue_max_hw_sectors +EXPORT_SYMBOL vmlinux 0xcef51982 kstrtou16 +EXPORT_SYMBOL vmlinux 0xcefcd99a serial8250_unregister_port +EXPORT_SYMBOL vmlinux 0xcf01825a phy_disconnect +EXPORT_SYMBOL vmlinux 0xcf1c4155 tegra_powergate_sequence_power_up +EXPORT_SYMBOL vmlinux 0xcf336c55 security_inode_notifysecctx +EXPORT_SYMBOL vmlinux 0xcf44cb25 bio_integrity_enabled +EXPORT_SYMBOL vmlinux 0xcf63f3a8 xfrm_policy_unregister_afinfo +EXPORT_SYMBOL vmlinux 0xcf87d133 _snd_ctl_add_slave +EXPORT_SYMBOL vmlinux 0xcf88625f mempool_create_node +EXPORT_SYMBOL vmlinux 0xcfa0b095 dss_install_mgr_ops +EXPORT_SYMBOL vmlinux 0xcfaf7898 netif_set_xps_queue +EXPORT_SYMBOL vmlinux 0xcfb19cab tty_lock +EXPORT_SYMBOL vmlinux 0xcfb743d7 serio_open +EXPORT_SYMBOL vmlinux 0xcfd20f43 bio_alloc_pages +EXPORT_SYMBOL vmlinux 0xcfd8570b nf_setsockopt +EXPORT_SYMBOL vmlinux 0xcfe7bd7c bio_alloc_bioset +EXPORT_SYMBOL vmlinux 0xcff6b676 _raw_spin_trylock_bh +EXPORT_SYMBOL vmlinux 0xd013a71e scsi_reset_provider +EXPORT_SYMBOL vmlinux 0xd01616e4 dev_addr_del +EXPORT_SYMBOL vmlinux 0xd0181f4f __bitmap_xor +EXPORT_SYMBOL vmlinux 0xd018357b neigh_parms_release +EXPORT_SYMBOL vmlinux 0xd0198b38 brioctl_set +EXPORT_SYMBOL vmlinux 0xd038668d scsi_setup_blk_pc_cmnd +EXPORT_SYMBOL vmlinux 0xd0493846 padata_unregister_cpumask_notifier +EXPORT_SYMBOL vmlinux 0xd0720a17 on_each_cpu_cond +EXPORT_SYMBOL vmlinux 0xd08b57d9 qdisc_class_hash_grow +EXPORT_SYMBOL vmlinux 0xd08cb66f netlink_broadcast +EXPORT_SYMBOL vmlinux 0xd09346d7 phy_ethtool_get_wol +EXPORT_SYMBOL vmlinux 0xd0a34964 unmap_mapping_range +EXPORT_SYMBOL vmlinux 0xd0a8f748 snd_timer_stop +EXPORT_SYMBOL vmlinux 0xd0a91bab skip_spaces +EXPORT_SYMBOL vmlinux 0xd0c2fb16 check_disk_change +EXPORT_SYMBOL vmlinux 0xd0c4a8e0 netdev_master_upper_dev_link +EXPORT_SYMBOL vmlinux 0xd0d42c42 mod_timer_pending +EXPORT_SYMBOL vmlinux 0xd0e43207 usb_nop_xceiv_register +EXPORT_SYMBOL vmlinux 0xd0ee38b8 schedule_timeout_uninterruptible +EXPORT_SYMBOL vmlinux 0xd0f1864d seq_release +EXPORT_SYMBOL vmlinux 0xd0f36f0d audit_log_format +EXPORT_SYMBOL vmlinux 0xd0fb7cd4 __tasklet_hi_schedule_first +EXPORT_SYMBOL vmlinux 0xd1041e44 kernel_getsockopt +EXPORT_SYMBOL vmlinux 0xd1067ba7 dispc_ovl_enabled +EXPORT_SYMBOL vmlinux 0xd1157735 release_and_free_resource +EXPORT_SYMBOL vmlinux 0xd11c0dc1 __kernel_param_unlock +EXPORT_SYMBOL vmlinux 0xd131d71f path_get +EXPORT_SYMBOL vmlinux 0xd13b5604 elm_decode_bch_error_page +EXPORT_SYMBOL vmlinux 0xd13d47cf noop_llseek +EXPORT_SYMBOL vmlinux 0xd152890e __set_page_dirty_buffers +EXPORT_SYMBOL vmlinux 0xd152e34a pci_scan_slot +EXPORT_SYMBOL vmlinux 0xd171abfb skb_try_coalesce +EXPORT_SYMBOL vmlinux 0xd17c01b7 task_tgid_nr_ns +EXPORT_SYMBOL vmlinux 0xd1816f32 frontswap_writethrough +EXPORT_SYMBOL vmlinux 0xd189c1aa nf_unregister_hook +EXPORT_SYMBOL vmlinux 0xd18c681f input_mt_report_finger_count +EXPORT_SYMBOL vmlinux 0xd196c9be kstrtos16_from_user +EXPORT_SYMBOL vmlinux 0xd1b60e66 vmap +EXPORT_SYMBOL vmlinux 0xd1d7a196 __module_put_and_exit +EXPORT_SYMBOL vmlinux 0xd1dc0952 mmc_gpio_request_ro +EXPORT_SYMBOL vmlinux 0xd220cf8a jiffies_to_timespec +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 0xd270c1e3 bio_copy_user +EXPORT_SYMBOL vmlinux 0xd2730986 snd_unregister_device +EXPORT_SYMBOL vmlinux 0xd27b25dd blk_check_plugged +EXPORT_SYMBOL vmlinux 0xd27feeda kill_fasync +EXPORT_SYMBOL vmlinux 0xd2945b0f devfreq_monitor_start +EXPORT_SYMBOL vmlinux 0xd2965a92 dss_mgr_disable +EXPORT_SYMBOL vmlinux 0xd2af138b reservation_ww_class +EXPORT_SYMBOL vmlinux 0xd2bb322d kernel_bind +EXPORT_SYMBOL vmlinux 0xd2da1048 register_netdevice_notifier +EXPORT_SYMBOL vmlinux 0xd31ccb06 of_machine_is_compatible +EXPORT_SYMBOL vmlinux 0xd3241425 simple_dir_inode_operations +EXPORT_SYMBOL vmlinux 0xd32f7e48 account_page_redirty +EXPORT_SYMBOL vmlinux 0xd336541e nf_log_bind_pf +EXPORT_SYMBOL vmlinux 0xd354302d dev_get_by_name_rcu +EXPORT_SYMBOL vmlinux 0xd37a1c7c serio_unregister_port +EXPORT_SYMBOL vmlinux 0xd3983caf request_key_async_with_auxdata +EXPORT_SYMBOL vmlinux 0xd39d126e scsi_device_lookup +EXPORT_SYMBOL vmlinux 0xd3b88e84 mb_cache_entry_find_next +EXPORT_SYMBOL vmlinux 0xd3c29b90 ip_mc_leave_group +EXPORT_SYMBOL vmlinux 0xd3c76030 pcie_capability_write_word +EXPORT_SYMBOL vmlinux 0xd3d3a477 posix_acl_init +EXPORT_SYMBOL vmlinux 0xd3dbfbc4 _find_first_zero_bit_le +EXPORT_SYMBOL vmlinux 0xd3dcab0b flex_array_alloc +EXPORT_SYMBOL vmlinux 0xd3e6f60d cpu_possible_mask +EXPORT_SYMBOL vmlinux 0xd3e87b72 locks_free_lock +EXPORT_SYMBOL vmlinux 0xd418e1c0 adjust_resource +EXPORT_SYMBOL vmlinux 0xd41cd47d tty_name +EXPORT_SYMBOL vmlinux 0xd41fe818 _raw_read_unlock_irqrestore +EXPORT_SYMBOL vmlinux 0xd42002f6 tty_register_ldisc +EXPORT_SYMBOL vmlinux 0xd426fd39 tty_port_put +EXPORT_SYMBOL vmlinux 0xd456425d kobject_set_name +EXPORT_SYMBOL vmlinux 0xd4669fad complete +EXPORT_SYMBOL vmlinux 0xd47bcc6a twl6040_get_sysclk +EXPORT_SYMBOL vmlinux 0xd4aff563 skb_prepare_seq_read +EXPORT_SYMBOL vmlinux 0xd4d0c49b uart_unregister_driver +EXPORT_SYMBOL vmlinux 0xd4dcd03b nf_log_register +EXPORT_SYMBOL vmlinux 0xd4e344c6 get_tz_trend +EXPORT_SYMBOL vmlinux 0xd4ec10dc skb_append_datato_frags +EXPORT_SYMBOL vmlinux 0xd4f0e7b2 unregister_filesystem +EXPORT_SYMBOL vmlinux 0xd5008ebb ip_mc_rejoin_groups +EXPORT_SYMBOL vmlinux 0xd5152710 sg_next +EXPORT_SYMBOL vmlinux 0xd5225918 udp_poll +EXPORT_SYMBOL vmlinux 0xd536e70d pci_get_domain_bus_and_slot +EXPORT_SYMBOL vmlinux 0xd53c8bf6 poll_initwait +EXPORT_SYMBOL vmlinux 0xd54a70a2 from_kqid_munged +EXPORT_SYMBOL vmlinux 0xd54cade0 journal_force_commit +EXPORT_SYMBOL vmlinux 0xd554801f register_qdisc +EXPORT_SYMBOL vmlinux 0xd56e9485 omap_set_dma_dest_index +EXPORT_SYMBOL vmlinux 0xd57713db sock_no_listen +EXPORT_SYMBOL vmlinux 0xd58849d2 snd_pcm_kernel_ioctl +EXPORT_SYMBOL vmlinux 0xd5b1376d register_shrinker +EXPORT_SYMBOL vmlinux 0xd5c5ff75 inet_frags_init_net +EXPORT_SYMBOL vmlinux 0xd5cf15e7 mark_page_accessed +EXPORT_SYMBOL vmlinux 0xd5d1d233 cdev_init +EXPORT_SYMBOL vmlinux 0xd5d8841f genl_unregister_family +EXPORT_SYMBOL vmlinux 0xd5df6493 pci_release_region +EXPORT_SYMBOL vmlinux 0xd5ee1761 dquot_quotactl_ops +EXPORT_SYMBOL vmlinux 0xd5f2172f del_timer_sync +EXPORT_SYMBOL vmlinux 0xd61347c6 register_sysctl +EXPORT_SYMBOL vmlinux 0xd616683a ecryptfs_fill_auth_tok +EXPORT_SYMBOL vmlinux 0xd622608e tcp_enter_memory_pressure +EXPORT_SYMBOL vmlinux 0xd627480b strncat +EXPORT_SYMBOL vmlinux 0xd62c833f schedule_timeout +EXPORT_SYMBOL vmlinux 0xd648e564 fb_match_mode +EXPORT_SYMBOL vmlinux 0xd686291a tcp_md5_do_lookup +EXPORT_SYMBOL vmlinux 0xd688716b dm_kcopyd_client_create +EXPORT_SYMBOL vmlinux 0xd69c454d input_set_capability +EXPORT_SYMBOL vmlinux 0xd6c2f97b key_revoke +EXPORT_SYMBOL vmlinux 0xd6ee688f vmalloc +EXPORT_SYMBOL vmlinux 0xd6f27d59 cap_mmap_file +EXPORT_SYMBOL vmlinux 0xd70eaa42 __sb_start_write +EXPORT_SYMBOL vmlinux 0xd71319ae udp_lib_unhash +EXPORT_SYMBOL vmlinux 0xd719eec4 skb_abort_seq_read +EXPORT_SYMBOL vmlinux 0xd74289f9 __percpu_counter_add +EXPORT_SYMBOL vmlinux 0xd75a9c89 bitmap_cond_end_sync +EXPORT_SYMBOL vmlinux 0xd75c79df smp_call_function +EXPORT_SYMBOL vmlinux 0xd75f17c4 dcache_dir_close +EXPORT_SYMBOL vmlinux 0xd77a5aa5 __bitmap_and +EXPORT_SYMBOL vmlinux 0xd77c1083 tty_write_room +EXPORT_SYMBOL vmlinux 0xd78025ae gen_pool_create +EXPORT_SYMBOL vmlinux 0xd78ff1dc cpufreq_get_policy +EXPORT_SYMBOL vmlinux 0xd79b5a02 allow_signal +EXPORT_SYMBOL vmlinux 0xd7ae2361 vexpress_config_bridge_unregister +EXPORT_SYMBOL vmlinux 0xd7affc47 sg_miter_start +EXPORT_SYMBOL vmlinux 0xd7b4599b __idr_get_new_above +EXPORT_SYMBOL vmlinux 0xd7bc6f7e pci_enable_bridges +EXPORT_SYMBOL vmlinux 0xd7e56a4e simple_strtoll +EXPORT_SYMBOL vmlinux 0xd7ea7094 nf_unregister_queue_handler +EXPORT_SYMBOL vmlinux 0xd80d4809 max8998_write_reg +EXPORT_SYMBOL vmlinux 0xd816c7cb skb_seq_read +EXPORT_SYMBOL vmlinux 0xd850882c vfs_rename +EXPORT_SYMBOL vmlinux 0xd85cd67e __wake_up +EXPORT_SYMBOL vmlinux 0xd87206af pm860x_bulk_write +EXPORT_SYMBOL vmlinux 0xd8788810 da903x_query_status +EXPORT_SYMBOL vmlinux 0xd8985e9b i2c_register_driver +EXPORT_SYMBOL vmlinux 0xd8b58a1c jbd2_journal_unlock_updates +EXPORT_SYMBOL vmlinux 0xd8b780b7 udp_sendmsg +EXPORT_SYMBOL vmlinux 0xd8c4b92f ps2_end_command +EXPORT_SYMBOL vmlinux 0xd8d389ae mmc_detect_change +EXPORT_SYMBOL vmlinux 0xd8e484f0 register_chrdev_region +EXPORT_SYMBOL vmlinux 0xd8fb01e5 kernel_getsockname +EXPORT_SYMBOL vmlinux 0xd91db562 snd_ctl_make_virtual_master +EXPORT_SYMBOL vmlinux 0xd92afabe bitmap_clear +EXPORT_SYMBOL vmlinux 0xd95597ac jbd2_journal_try_to_free_buffers +EXPORT_SYMBOL vmlinux 0xd955d2b7 omap_set_dma_dest_data_pack +EXPORT_SYMBOL vmlinux 0xd95d94cb new_inode +EXPORT_SYMBOL vmlinux 0xd96dc12b bitmap_close_sync +EXPORT_SYMBOL vmlinux 0xd985dc99 mempool_free_pages +EXPORT_SYMBOL vmlinux 0xd9928dcc simple_getattr +EXPORT_SYMBOL vmlinux 0xd9a9bb30 getname +EXPORT_SYMBOL vmlinux 0xd9ab0be7 qdisc_destroy +EXPORT_SYMBOL vmlinux 0xd9aeece8 inet_dev_addr_type +EXPORT_SYMBOL vmlinux 0xd9ce8f0c strnlen +EXPORT_SYMBOL vmlinux 0xd9e61fcb qid_valid +EXPORT_SYMBOL vmlinux 0xda2645f6 pci_dev_put +EXPORT_SYMBOL vmlinux 0xda38e1ca jbd2_log_start_commit +EXPORT_SYMBOL vmlinux 0xda3d10a8 security_tun_dev_open +EXPORT_SYMBOL vmlinux 0xda6eecd5 i2c_del_driver +EXPORT_SYMBOL vmlinux 0xda7ca6cb fb_mode_is_equal +EXPORT_SYMBOL vmlinux 0xda8652a8 __vlan_find_dev_deep +EXPORT_SYMBOL vmlinux 0xda8af7ad fb_find_nearest_mode +EXPORT_SYMBOL vmlinux 0xda9cb8cd ethtool_op_get_ts_info +EXPORT_SYMBOL vmlinux 0xdaa00886 vfs_link +EXPORT_SYMBOL vmlinux 0xdaa16b82 of_clk_get +EXPORT_SYMBOL vmlinux 0xdaa57ec3 totalhigh_pages +EXPORT_SYMBOL vmlinux 0xdaafc807 tcp_sockets_allocated +EXPORT_SYMBOL vmlinux 0xdab7bdc2 simple_transaction_read +EXPORT_SYMBOL vmlinux 0xdad95e90 scsi_test_unit_ready +EXPORT_SYMBOL vmlinux 0xdadd4960 kill_block_super +EXPORT_SYMBOL vmlinux 0xdadf03c2 nf_hook_slow +EXPORT_SYMBOL vmlinux 0xdae10911 elevator_exit +EXPORT_SYMBOL vmlinux 0xdb2178c7 __sg_free_table +EXPORT_SYMBOL vmlinux 0xdb30aa78 would_dump +EXPORT_SYMBOL vmlinux 0xdb325f65 udp6_csum_init +EXPORT_SYMBOL vmlinux 0xdb3e6cd0 map_destroy +EXPORT_SYMBOL vmlinux 0xdb4292e4 omap_set_dma_params +EXPORT_SYMBOL vmlinux 0xdb68bbad rfkill_destroy +EXPORT_SYMBOL vmlinux 0xdb760f52 __kfifo_free +EXPORT_SYMBOL vmlinux 0xdb81afc0 vlan_vid_add +EXPORT_SYMBOL vmlinux 0xdb93b838 dispc_free_irq +EXPORT_SYMBOL vmlinux 0xdbc1bbc7 lease_modify +EXPORT_SYMBOL vmlinux 0xdbc5223d ps2_sendbyte +EXPORT_SYMBOL vmlinux 0xdbccfeca neigh_sysctl_unregister +EXPORT_SYMBOL vmlinux 0xdbcd416e sysctl_ip_nonlocal_bind +EXPORT_SYMBOL vmlinux 0xdbe8541d ata_port_printk +EXPORT_SYMBOL vmlinux 0xdbf90372 inet_stream_ops +EXPORT_SYMBOL vmlinux 0xdc047fc4 scsi_dev_info_list_add_keyed +EXPORT_SYMBOL vmlinux 0xdc120079 ptp_clock_unregister +EXPORT_SYMBOL vmlinux 0xdc134d2f neigh_lookup +EXPORT_SYMBOL vmlinux 0xdc13932b twl6040_clear_bits +EXPORT_SYMBOL vmlinux 0xdc14eda7 pci_pci_problems +EXPORT_SYMBOL vmlinux 0xdc19cbbb dev_mc_del_global +EXPORT_SYMBOL vmlinux 0xdc3fcbc9 __sw_hweight8 +EXPORT_SYMBOL vmlinux 0xdc438da7 seq_put_decimal_ll +EXPORT_SYMBOL vmlinux 0xdc57f79b scsi_scan_target +EXPORT_SYMBOL vmlinux 0xdc69ab08 dev_uc_flush +EXPORT_SYMBOL vmlinux 0xdc6d41cf vfs_fstatat +EXPORT_SYMBOL vmlinux 0xdc729d30 padata_alloc +EXPORT_SYMBOL vmlinux 0xdc76c13f i2c_smbus_read_byte +EXPORT_SYMBOL vmlinux 0xdc942659 pci_add_resource_offset +EXPORT_SYMBOL vmlinux 0xdc9bb779 gnet_stats_copy_app +EXPORT_SYMBOL vmlinux 0xdcb0349b sys_close +EXPORT_SYMBOL vmlinux 0xdcc15040 pci_scan_bridge +EXPORT_SYMBOL vmlinux 0xdcc74e08 snd_pcm_hw_rule_noresample +EXPORT_SYMBOL vmlinux 0xdcd007aa clear_bdi_congested +EXPORT_SYMBOL vmlinux 0xdcea0825 filp_close +EXPORT_SYMBOL vmlinux 0xdcfcb833 __inet_stream_connect +EXPORT_SYMBOL vmlinux 0xdd049b4f __genl_register_family +EXPORT_SYMBOL vmlinux 0xdd0a2ba2 strlcat +EXPORT_SYMBOL vmlinux 0xdd14629a dm_get_device +EXPORT_SYMBOL vmlinux 0xdd14db75 __mem_cgroup_count_vm_event +EXPORT_SYMBOL vmlinux 0xdd20991e dst_cow_metrics_generic +EXPORT_SYMBOL vmlinux 0xdd2232fc sock_no_accept +EXPORT_SYMBOL vmlinux 0xdd27fa87 memchr +EXPORT_SYMBOL vmlinux 0xdd30fc02 kernel_getpeername +EXPORT_SYMBOL vmlinux 0xdd3916ac _raw_spin_unlock_bh +EXPORT_SYMBOL vmlinux 0xdd4a5569 param_get_byte +EXPORT_SYMBOL vmlinux 0xdd68f45f mount_bdev +EXPORT_SYMBOL vmlinux 0xdd7152da xfrm_policy_byid +EXPORT_SYMBOL vmlinux 0xdda58c77 sdev_disable_disk_events +EXPORT_SYMBOL vmlinux 0xddaa4440 phy_stop_interrupts +EXPORT_SYMBOL vmlinux 0xddbb395d nf_unregister_sockopt +EXPORT_SYMBOL vmlinux 0xddea4fa6 lro_receive_skb +EXPORT_SYMBOL vmlinux 0xde15c042 omap_set_dma_src_index +EXPORT_SYMBOL vmlinux 0xde692d94 omap_get_dma_chain_src_pos +EXPORT_SYMBOL vmlinux 0xde713137 simple_write_end +EXPORT_SYMBOL vmlinux 0xde7343ab freeze_super +EXPORT_SYMBOL vmlinux 0xde8c763d cpu_v7_set_pte_ext +EXPORT_SYMBOL vmlinux 0xde9360ba totalram_pages +EXPORT_SYMBOL vmlinux 0xde9a5a5a journal_init_inode +EXPORT_SYMBOL vmlinux 0xdeb57ff3 pci_bus_write_config_word +EXPORT_SYMBOL vmlinux 0xdeb5831f commit_creds +EXPORT_SYMBOL vmlinux 0xdeb8e731 input_set_keycode +EXPORT_SYMBOL vmlinux 0xdee5ddc6 neigh_compat_output +EXPORT_SYMBOL vmlinux 0xdee89625 kill_pid +EXPORT_SYMBOL vmlinux 0xdf197625 i2c_put_adapter +EXPORT_SYMBOL vmlinux 0xdf2c2742 rb_last +EXPORT_SYMBOL vmlinux 0xdf32eea0 dev_getbyhwaddr_rcu +EXPORT_SYMBOL vmlinux 0xdf399da4 user_path_at +EXPORT_SYMBOL vmlinux 0xdf401846 idr_remove +EXPORT_SYMBOL vmlinux 0xdf4795b8 mmc_request_done +EXPORT_SYMBOL vmlinux 0xdf48a0eb flex_array_put +EXPORT_SYMBOL vmlinux 0xdf54a8f7 netlink_unregister_notifier +EXPORT_SYMBOL vmlinux 0xdf60cc27 __print_symbol +EXPORT_SYMBOL vmlinux 0xdf8478e8 blk_queue_max_write_same_sectors +EXPORT_SYMBOL vmlinux 0xdf8a0ccf skb_free_datagram +EXPORT_SYMBOL vmlinux 0xdf929370 fs_overflowgid +EXPORT_SYMBOL vmlinux 0xdfb01a80 cpu_v7_dcache_clean_area +EXPORT_SYMBOL vmlinux 0xdfb45655 mpage_writepage +EXPORT_SYMBOL vmlinux 0xdfc126ec pci_remove_bus +EXPORT_SYMBOL vmlinux 0xdfc5169b slhc_init +EXPORT_SYMBOL vmlinux 0xdfd91ce9 omap_type +EXPORT_SYMBOL vmlinux 0xdff7073c scsi_get_command +EXPORT_SYMBOL vmlinux 0xe047ffb8 journal_set_features +EXPORT_SYMBOL vmlinux 0xe04f1bd9 mfd_cell_disable +EXPORT_SYMBOL vmlinux 0xe04f7caa dm_read_arg_group +EXPORT_SYMBOL vmlinux 0xe06141e9 security_sk_clone +EXPORT_SYMBOL vmlinux 0xe0686234 vm_insert_page +EXPORT_SYMBOL vmlinux 0xe075d6eb iter_div_u64_rem +EXPORT_SYMBOL vmlinux 0xe098e43b inet_put_port +EXPORT_SYMBOL vmlinux 0xe09dfc84 serio_interrupt +EXPORT_SYMBOL vmlinux 0xe0b13336 argv_free +EXPORT_SYMBOL vmlinux 0xe0bef318 icst_hz_to_vco +EXPORT_SYMBOL vmlinux 0xe0f99a2f ida_pre_get +EXPORT_SYMBOL vmlinux 0xe10f841b inet_frag_kill +EXPORT_SYMBOL vmlinux 0xe113bbbc csum_partial +EXPORT_SYMBOL vmlinux 0xe11f3cbc _raw_read_lock_bh +EXPORT_SYMBOL vmlinux 0xe1240439 pci_get_device +EXPORT_SYMBOL vmlinux 0xe127fb18 down_killable +EXPORT_SYMBOL vmlinux 0xe137822f sock_common_setsockopt +EXPORT_SYMBOL vmlinux 0xe1552d7f register_md_personality +EXPORT_SYMBOL vmlinux 0xe16e6767 input_close_device +EXPORT_SYMBOL vmlinux 0xe1761617 security_inet_conn_request +EXPORT_SYMBOL vmlinux 0xe1928246 vfs_readv +EXPORT_SYMBOL vmlinux 0xe1a2a182 scsi_eh_prep_cmnd +EXPORT_SYMBOL vmlinux 0xe200d2d5 param_get_uint +EXPORT_SYMBOL vmlinux 0xe200f872 secure_dccpv6_sequence_number +EXPORT_SYMBOL vmlinux 0xe2276840 bd_set_size +EXPORT_SYMBOL vmlinux 0xe22c5512 __block_write_begin +EXPORT_SYMBOL vmlinux 0xe23ae481 blk_iopoll_complete +EXPORT_SYMBOL vmlinux 0xe247fe65 get_gendisk +EXPORT_SYMBOL vmlinux 0xe24d3a97 jiffies_64 +EXPORT_SYMBOL vmlinux 0xe2549ec1 mmc_wait_for_app_cmd +EXPORT_SYMBOL vmlinux 0xe271f162 call_usermodehelper_exec +EXPORT_SYMBOL vmlinux 0xe292fb9f gen_pool_virt_to_phys +EXPORT_SYMBOL vmlinux 0xe2970b51 genl_notify +EXPORT_SYMBOL vmlinux 0xe29de55b netdev_printk +EXPORT_SYMBOL vmlinux 0xe29e1d0e out_of_line_wait_on_atomic_t +EXPORT_SYMBOL vmlinux 0xe2d5255a strcmp +EXPORT_SYMBOL vmlinux 0xe2dad504 neigh_seq_start +EXPORT_SYMBOL vmlinux 0xe2db3275 __dev_get_by_index +EXPORT_SYMBOL vmlinux 0xe2e0d03e d_alloc_pseudo +EXPORT_SYMBOL vmlinux 0xe2e8065e memdup_user +EXPORT_SYMBOL vmlinux 0xe2e9bee0 path_put +EXPORT_SYMBOL vmlinux 0xe2fae716 kmemdup +EXPORT_SYMBOL vmlinux 0xe2fe32cf input_mt_sync_frame +EXPORT_SYMBOL vmlinux 0xe307671a tty_unthrottle +EXPORT_SYMBOL vmlinux 0xe31ee066 vm_mmap +EXPORT_SYMBOL vmlinux 0xe325b56b blk_rq_map_integrity_sg +EXPORT_SYMBOL vmlinux 0xe33f1c56 ndisc_mc_map +EXPORT_SYMBOL vmlinux 0xe34855d9 update_time +EXPORT_SYMBOL vmlinux 0xe34e6b5f end_page_writeback +EXPORT_SYMBOL vmlinux 0xe35464f0 rtnetlink_put_metrics +EXPORT_SYMBOL vmlinux 0xe35c5285 of_find_node_by_phandle +EXPORT_SYMBOL vmlinux 0xe371610a mmc_detect_card_removed +EXPORT_SYMBOL vmlinux 0xe37d10ae omap_dispc_unregister_isr +EXPORT_SYMBOL vmlinux 0xe37e4dd3 key_task_permission +EXPORT_SYMBOL vmlinux 0xe3842d3d generic_write_checks +EXPORT_SYMBOL vmlinux 0xe394facb journal_start +EXPORT_SYMBOL vmlinux 0xe3a33676 bio_add_page +EXPORT_SYMBOL vmlinux 0xe3b6b33e blk_cleanup_queue +EXPORT_SYMBOL vmlinux 0xe3c03a37 mmc_resume_host +EXPORT_SYMBOL vmlinux 0xe3c828af mdiobus_read +EXPORT_SYMBOL vmlinux 0xe3d6f284 fb_find_mode_cvt +EXPORT_SYMBOL vmlinux 0xe3d7c77f iw_handler_get_spy +EXPORT_SYMBOL vmlinux 0xe3d9cb8e pneigh_lookup +EXPORT_SYMBOL vmlinux 0xe3df8c33 phy_start +EXPORT_SYMBOL vmlinux 0xe3e575e4 ndo_dflt_fdb_add +EXPORT_SYMBOL vmlinux 0xe400901e pci_match_id +EXPORT_SYMBOL vmlinux 0xe406c2b8 ps2_handle_response +EXPORT_SYMBOL vmlinux 0xe40dd300 scsi_device_lookup_by_target +EXPORT_SYMBOL vmlinux 0xe43274bc proc_dointvec +EXPORT_SYMBOL vmlinux 0xe4458597 posix_test_lock +EXPORT_SYMBOL vmlinux 0xe44d6f99 dcache_dir_lseek +EXPORT_SYMBOL vmlinux 0xe468a7a0 tcp_sendpage +EXPORT_SYMBOL vmlinux 0xe46df8db tty_mutex +EXPORT_SYMBOL vmlinux 0xe484ab99 unregister_nls +EXPORT_SYMBOL vmlinux 0xe4a990b4 snd_card_file_remove +EXPORT_SYMBOL vmlinux 0xe4b57b90 inet_csk_prepare_forced_close +EXPORT_SYMBOL vmlinux 0xe4bc2ad3 omapdss_sdi_display_enable +EXPORT_SYMBOL vmlinux 0xe4c80097 cacheid +EXPORT_SYMBOL vmlinux 0xe4c8255c in6_dev_finish_destroy +EXPORT_SYMBOL vmlinux 0xe4c8aa5e scsi_eh_restore_cmnd +EXPORT_SYMBOL vmlinux 0xe4f3887f netif_rx +EXPORT_SYMBOL vmlinux 0xe503743d uart_write_wakeup +EXPORT_SYMBOL vmlinux 0xe50e48ab uart_add_one_port +EXPORT_SYMBOL vmlinux 0xe5122890 flow_cache_genid +EXPORT_SYMBOL vmlinux 0xe523ad75 synchronize_irq +EXPORT_SYMBOL vmlinux 0xe5269171 phy_device_create +EXPORT_SYMBOL vmlinux 0xe53c3600 __cleancache_put_page +EXPORT_SYMBOL vmlinux 0xe53d1faa of_translate_dma_address +EXPORT_SYMBOL vmlinux 0xe5445af6 omap_get_dma_dst_pos +EXPORT_SYMBOL vmlinux 0xe546ad53 genphy_resume +EXPORT_SYMBOL vmlinux 0xe55bdb62 snd_dma_free_pages +EXPORT_SYMBOL vmlinux 0xe55f318f proc_mkdir +EXPORT_SYMBOL vmlinux 0xe56a9336 snd_pcm_format_width +EXPORT_SYMBOL vmlinux 0xe57878a1 in6_pton +EXPORT_SYMBOL vmlinux 0xe5805e38 flock_lock_file_wait +EXPORT_SYMBOL vmlinux 0xe5867808 dlci_ioctl_set +EXPORT_SYMBOL vmlinux 0xe5a53379 dquot_commit +EXPORT_SYMBOL vmlinux 0xe5b02332 xfrm_state_lookup +EXPORT_SYMBOL vmlinux 0xe5b4c247 fsnotify_put_group +EXPORT_SYMBOL vmlinux 0xe5c78a99 do_blank_screen +EXPORT_SYMBOL vmlinux 0xe5d95985 param_ops_ulong +EXPORT_SYMBOL vmlinux 0xe5ed5467 xfrm_policy_walk_init +EXPORT_SYMBOL vmlinux 0xe617430b __kfree_skb +EXPORT_SYMBOL vmlinux 0xe62fb52b tcp_valid_rtt_meas +EXPORT_SYMBOL vmlinux 0xe66452ab dql_init +EXPORT_SYMBOL vmlinux 0xe6744a89 omap_clear_dma +EXPORT_SYMBOL vmlinux 0xe68af219 fb_blank +EXPORT_SYMBOL vmlinux 0xe693b9c5 ip_route_me_harder +EXPORT_SYMBOL vmlinux 0xe697d108 __blk_iopoll_complete +EXPORT_SYMBOL vmlinux 0xe69db0ca pci_disable_ido +EXPORT_SYMBOL vmlinux 0xe6ab3817 kmap_to_page +EXPORT_SYMBOL vmlinux 0xe6b775cb dev_set_mtu +EXPORT_SYMBOL vmlinux 0xe6c3ebb0 __raw_writesw +EXPORT_SYMBOL vmlinux 0xe6c90be4 shrink_dcache_parent +EXPORT_SYMBOL vmlinux 0xe6d66069 vfs_read +EXPORT_SYMBOL vmlinux 0xe6ebc016 key_create_or_update +EXPORT_SYMBOL vmlinux 0xe6fbe430 can_do_mlock +EXPORT_SYMBOL vmlinux 0xe707d823 __aeabi_uidiv +EXPORT_SYMBOL vmlinux 0xe70a7238 alloc_buffer_head +EXPORT_SYMBOL vmlinux 0xe75a020e sk_dst_check +EXPORT_SYMBOL vmlinux 0xe7722171 flex_array_free +EXPORT_SYMBOL vmlinux 0xe77afbd3 cpu_tlb +EXPORT_SYMBOL vmlinux 0xe77bf600 snd_card_unref +EXPORT_SYMBOL vmlinux 0xe78473fc loop_backing_file +EXPORT_SYMBOL vmlinux 0xe78fe2b2 inc_zone_page_state +EXPORT_SYMBOL vmlinux 0xe792d816 pci_disable_link_state_locked +EXPORT_SYMBOL vmlinux 0xe7a664c4 nf_hooks +EXPORT_SYMBOL vmlinux 0xe7a81967 audit_log_secctx +EXPORT_SYMBOL vmlinux 0xe7b458a3 __sk_mem_schedule +EXPORT_SYMBOL vmlinux 0xe7d4daac seq_list_next +EXPORT_SYMBOL vmlinux 0xe7d5ccbc kernel_setsockopt +EXPORT_SYMBOL vmlinux 0xe7dca1e5 __breadahead +EXPORT_SYMBOL vmlinux 0xe7e15910 dispc_clear_irqstatus +EXPORT_SYMBOL vmlinux 0xe7efe1d9 devfreq_monitor_suspend +EXPORT_SYMBOL vmlinux 0xe801239b __napi_complete +EXPORT_SYMBOL vmlinux 0xe80ce219 sysctl_tcp_dma_copybreak +EXPORT_SYMBOL vmlinux 0xe8162365 ip6_route_output +EXPORT_SYMBOL vmlinux 0xe82c8afb mark_buffer_dirty_inode +EXPORT_SYMBOL vmlinux 0xe83f5fc5 inode_init_always +EXPORT_SYMBOL vmlinux 0xe851bb05 queue_delayed_work_on +EXPORT_SYMBOL vmlinux 0xe8685d0d skb_pull +EXPORT_SYMBOL vmlinux 0xe8794ce1 slhc_toss +EXPORT_SYMBOL vmlinux 0xe8b53ecc down_write_trylock +EXPORT_SYMBOL vmlinux 0xe8b63ace radix_tree_range_tag_if_tagged +EXPORT_SYMBOL vmlinux 0xe8bea3bc qdisc_put_stab +EXPORT_SYMBOL vmlinux 0xe8cfce09 tegra114_clock_deassert_dfll_dvco_reset +EXPORT_SYMBOL vmlinux 0xe8d87e62 d_instantiate +EXPORT_SYMBOL vmlinux 0xe8dcb350 mdiobus_register +EXPORT_SYMBOL vmlinux 0xe8e5c044 journal_create +EXPORT_SYMBOL vmlinux 0xe8f03f1d try_to_release_page +EXPORT_SYMBOL vmlinux 0xe912da6b unregister_sysctl_table +EXPORT_SYMBOL vmlinux 0xe914e41e strcpy +EXPORT_SYMBOL vmlinux 0xe929ce46 __devm_release_region +EXPORT_SYMBOL vmlinux 0xe9487b2d __getblk +EXPORT_SYMBOL vmlinux 0xe953b21f get_next_ino +EXPORT_SYMBOL vmlinux 0xe9572c06 __bio_clone +EXPORT_SYMBOL vmlinux 0xe983a124 netdev_refcnt_read +EXPORT_SYMBOL vmlinux 0xe989a17e bio_split +EXPORT_SYMBOL vmlinux 0xe98b8a56 ppp_register_channel +EXPORT_SYMBOL vmlinux 0xe9928739 md_integrity_register +EXPORT_SYMBOL vmlinux 0xe9abb71c pci_alloc_dev +EXPORT_SYMBOL vmlinux 0xe9b61c3f may_umount_tree +EXPORT_SYMBOL vmlinux 0xe9ec0dbc blk_make_request +EXPORT_SYMBOL vmlinux 0xe9f09dae nlmsg_notify +EXPORT_SYMBOL vmlinux 0xe9fbe6d6 dma_mark_declared_memory_occupied +EXPORT_SYMBOL vmlinux 0xea054b22 nla_policy_len +EXPORT_SYMBOL vmlinux 0xea0d7e82 mmc_cleanup_queue +EXPORT_SYMBOL vmlinux 0xea10212a int_to_scsilun +EXPORT_SYMBOL vmlinux 0xea10655a __bitmap_intersects +EXPORT_SYMBOL vmlinux 0xea1fe937 __i2c_transfer +EXPORT_SYMBOL vmlinux 0xea273e7e serio_rescan +EXPORT_SYMBOL vmlinux 0xea36203c tcp_v4_md5_hash_skb +EXPORT_SYMBOL vmlinux 0xea3aef35 devfreq_add_governor +EXPORT_SYMBOL vmlinux 0xea65cad4 blk_put_request +EXPORT_SYMBOL vmlinux 0xea6e3003 of_find_compatible_node +EXPORT_SYMBOL vmlinux 0xea78ee13 nand_calculate_ecc +EXPORT_SYMBOL vmlinux 0xea7987f1 key_update +EXPORT_SYMBOL vmlinux 0xea7f54d2 fsnotify_get_group +EXPORT_SYMBOL vmlinux 0xea83a68b mmc_set_blocklen +EXPORT_SYMBOL vmlinux 0xeaa3b745 dmam_free_noncoherent +EXPORT_SYMBOL vmlinux 0xeab72079 pci_prepare_to_sleep +EXPORT_SYMBOL vmlinux 0xeac2827f __dquot_alloc_space +EXPORT_SYMBOL vmlinux 0xead70b81 pci_get_subsys +EXPORT_SYMBOL vmlinux 0xeae2dfd0 ppp_input +EXPORT_SYMBOL vmlinux 0xeb1b120e omap_set_dma_write_mode +EXPORT_SYMBOL vmlinux 0xeb37101c audit_log_end +EXPORT_SYMBOL vmlinux 0xeb3f2235 omapdss_dpi_display_enable +EXPORT_SYMBOL vmlinux 0xeb4ca3bf __dst_free +EXPORT_SYMBOL vmlinux 0xeb55a931 __kfifo_max_r +EXPORT_SYMBOL vmlinux 0xeb7ebd51 sockfd_lookup +EXPORT_SYMBOL vmlinux 0xeb9e7cdd ida_destroy +EXPORT_SYMBOL vmlinux 0xebd5ee26 dma_async_device_register +EXPORT_SYMBOL vmlinux 0xebdb3d23 d_hash_and_lookup +EXPORT_SYMBOL vmlinux 0xebdbe48c radix_tree_gang_lookup +EXPORT_SYMBOL vmlinux 0xebe4deec tcp_md5_hash_header +EXPORT_SYMBOL vmlinux 0xebfdcbdf system_serial_high +EXPORT_SYMBOL vmlinux 0xec1775f9 read_cache_page +EXPORT_SYMBOL vmlinux 0xec17ebb0 of_match_node +EXPORT_SYMBOL vmlinux 0xec27749d blk_get_backing_dev_info +EXPORT_SYMBOL vmlinux 0xec4d9e3a clk_get_sys +EXPORT_SYMBOL vmlinux 0xec504c5d netif_skb_features +EXPORT_SYMBOL vmlinux 0xec5ddd99 security_task_getsecid +EXPORT_SYMBOL vmlinux 0xec613ee4 eth_mac_addr +EXPORT_SYMBOL vmlinux 0xec829069 tcp_syn_flood_action +EXPORT_SYMBOL vmlinux 0xec96bf4a keyring_clear +EXPORT_SYMBOL vmlinux 0xecac6282 kern_path +EXPORT_SYMBOL vmlinux 0xecaf1924 twl6030_mmc_card_detect +EXPORT_SYMBOL vmlinux 0xecbbdfb4 cdev_del +EXPORT_SYMBOL vmlinux 0xece784c2 rb_first +EXPORT_SYMBOL vmlinux 0xed066882 filemap_fdatawait +EXPORT_SYMBOL vmlinux 0xed3ec812 pci_clear_master +EXPORT_SYMBOL vmlinux 0xed466515 bio_integrity_alloc +EXPORT_SYMBOL vmlinux 0xed597524 qdisc_get_rtab +EXPORT_SYMBOL vmlinux 0xed619e4b eth_header_cache_update +EXPORT_SYMBOL vmlinux 0xed6c88d6 mmc_free_host +EXPORT_SYMBOL vmlinux 0xed854dac omap_stop_dma_chain_transfers +EXPORT_SYMBOL vmlinux 0xed93f29e __kunmap_atomic +EXPORT_SYMBOL vmlinux 0xed969975 vfs_unlink +EXPORT_SYMBOL vmlinux 0xed9f9a20 __ctzsi2 +EXPORT_SYMBOL vmlinux 0xedb92e76 inet_csk_init_xmit_timers +EXPORT_SYMBOL vmlinux 0xedbaee5e nla_strcmp +EXPORT_SYMBOL vmlinux 0xedc706a1 call_netdevice_notifiers +EXPORT_SYMBOL vmlinux 0xedc7f4ec dq_data_lock +EXPORT_SYMBOL vmlinux 0xedd9106d __ashrdi3 +EXPORT_SYMBOL vmlinux 0xede84a9b abx500_set_register_interruptible +EXPORT_SYMBOL vmlinux 0xee07a74c pci_bus_get +EXPORT_SYMBOL vmlinux 0xee108f30 __kfifo_dma_in_prepare_r +EXPORT_SYMBOL vmlinux 0xee2bc2d0 omapdss_is_initialized +EXPORT_SYMBOL vmlinux 0xee2d0fc7 _local_bh_enable +EXPORT_SYMBOL vmlinux 0xee2d45d7 pcie_get_readrq +EXPORT_SYMBOL vmlinux 0xee3162cf mmc_power_save_host +EXPORT_SYMBOL vmlinux 0xee3496c3 dma_pool_alloc +EXPORT_SYMBOL vmlinux 0xee3ce648 have_submounts +EXPORT_SYMBOL vmlinux 0xee3cf22a blk_get_queue +EXPORT_SYMBOL vmlinux 0xee4c7fd3 inetpeer_invalidate_tree +EXPORT_SYMBOL vmlinux 0xee69babf ioc_lookup_icq +EXPORT_SYMBOL vmlinux 0xee6fe26e pci_scan_single_device +EXPORT_SYMBOL vmlinux 0xee715ef8 lg_global_unlock +EXPORT_SYMBOL vmlinux 0xee7a17fc __ww_mutex_lock_interruptible +EXPORT_SYMBOL vmlinux 0xee94a641 tcf_exts_validate +EXPORT_SYMBOL vmlinux 0xee95a2ed posix_acl_from_mode +EXPORT_SYMBOL vmlinux 0xeea66c20 simple_setattr +EXPORT_SYMBOL vmlinux 0xeea9dbaf bitmap_bitremap +EXPORT_SYMBOL vmlinux 0xeed3635b proc_dostring +EXPORT_SYMBOL vmlinux 0xeed82b67 cookie_check_timestamp +EXPORT_SYMBOL vmlinux 0xeed943c7 bh_uptodate_or_lock +EXPORT_SYMBOL vmlinux 0xeedddd14 tcf_hash_new_index +EXPORT_SYMBOL vmlinux 0xeee806ef clocksource_register +EXPORT_SYMBOL vmlinux 0xeef31f99 iunique +EXPORT_SYMBOL vmlinux 0xef0e535a snd_card_free +EXPORT_SYMBOL vmlinux 0xef10ac81 iterate_supers_type +EXPORT_SYMBOL vmlinux 0xefb66a95 omap_request_dma_chain +EXPORT_SYMBOL vmlinux 0xefb88261 remove_proc_entry +EXPORT_SYMBOL vmlinux 0xefc0a7b7 security_path_unlink +EXPORT_SYMBOL vmlinux 0xefcf3143 wait_for_completion_io +EXPORT_SYMBOL vmlinux 0xefd6cf06 __aeabi_unwind_cpp_pr0 +EXPORT_SYMBOL vmlinux 0xefdd2345 sg_init_one +EXPORT_SYMBOL vmlinux 0xefdd70ce security_secid_to_secctx +EXPORT_SYMBOL vmlinux 0xefec312f omap_get_dma_active_status +EXPORT_SYMBOL vmlinux 0xeff198d3 mntget +EXPORT_SYMBOL vmlinux 0xf0009fee put_pages_list +EXPORT_SYMBOL vmlinux 0xf01dde5f xfrm_unregister_type +EXPORT_SYMBOL vmlinux 0xf05f6ebe rawv6_mh_filter_unregister +EXPORT_SYMBOL vmlinux 0xf05ffa15 fb_var_to_videomode +EXPORT_SYMBOL vmlinux 0xf0619801 timekeeping_clocktai +EXPORT_SYMBOL vmlinux 0xf062ce9b inet6_del_protocol +EXPORT_SYMBOL vmlinux 0xf06847a3 inode_claim_rsv_space +EXPORT_SYMBOL vmlinux 0xf0776e8d dput +EXPORT_SYMBOL vmlinux 0xf077f3d7 tcf_hash_search +EXPORT_SYMBOL vmlinux 0xf086341d generic_listxattr +EXPORT_SYMBOL vmlinux 0xf087137d __dynamic_pr_debug +EXPORT_SYMBOL vmlinux 0xf09de776 get_random_int +EXPORT_SYMBOL vmlinux 0xf0b55e18 pci_enable_device_io +EXPORT_SYMBOL vmlinux 0xf0b60b54 insert_inode_locked4 +EXPORT_SYMBOL vmlinux 0xf0b763c5 snd_pcm_hw_constraint_ratnums +EXPORT_SYMBOL vmlinux 0xf0bbcf59 i2c_get_adapter +EXPORT_SYMBOL vmlinux 0xf0d68ed6 clk_register_clkdevs +EXPORT_SYMBOL vmlinux 0xf0e297ab netlink_kernel_release +EXPORT_SYMBOL vmlinux 0xf0ef15b4 list_sort +EXPORT_SYMBOL vmlinux 0xf0f1246c kvasprintf +EXPORT_SYMBOL vmlinux 0xf0fdf6cb __stack_chk_fail +EXPORT_SYMBOL vmlinux 0xf1063031 mod_zone_page_state +EXPORT_SYMBOL vmlinux 0xf1101c87 md_wakeup_thread +EXPORT_SYMBOL vmlinux 0xf12091b1 sock_alloc_send_skb +EXPORT_SYMBOL vmlinux 0xf12b354d blk_alloc_queue_node +EXPORT_SYMBOL vmlinux 0xf13e713c inc_nlink +EXPORT_SYMBOL vmlinux 0xf13feb57 radix_tree_next_chunk +EXPORT_SYMBOL vmlinux 0xf147dcb2 hdmi_spd_infoframe_init +EXPORT_SYMBOL vmlinux 0xf14e6f5e inode_sub_rsv_space +EXPORT_SYMBOL vmlinux 0xf159e1b1 inode_add_rsv_space +EXPORT_SYMBOL vmlinux 0xf160c24d mmc_set_blockcount +EXPORT_SYMBOL vmlinux 0xf1745795 mount_pseudo +EXPORT_SYMBOL vmlinux 0xf1806da9 idr_find_slowpath +EXPORT_SYMBOL vmlinux 0xf189d7ab setup_new_exec +EXPORT_SYMBOL vmlinux 0xf191750f dev_deactivate +EXPORT_SYMBOL vmlinux 0xf195c682 fb_invert_cmaps +EXPORT_SYMBOL vmlinux 0xf19e9355 cpu_online_mask +EXPORT_SYMBOL vmlinux 0xf1a4842f padata_do_serial +EXPORT_SYMBOL vmlinux 0xf1c55610 eth_prepare_mac_addr_change +EXPORT_SYMBOL vmlinux 0xf1db1704 nla_memcpy +EXPORT_SYMBOL vmlinux 0xf1deabf2 div64_u64 +EXPORT_SYMBOL vmlinux 0xf1e0b260 edma_set_transfer_params +EXPORT_SYMBOL vmlinux 0xf1e98c74 avenrun +EXPORT_SYMBOL vmlinux 0xf202c5cb radix_tree_insert +EXPORT_SYMBOL vmlinux 0xf20dabd8 free_irq +EXPORT_SYMBOL vmlinux 0xf2392efa mutex_trylock +EXPORT_SYMBOL vmlinux 0xf23fcb99 __kfifo_in +EXPORT_SYMBOL vmlinux 0xf24cf625 account_page_dirtied +EXPORT_SYMBOL vmlinux 0xf268c2de _snd_pcm_lib_alloc_vmalloc_buffer +EXPORT_SYMBOL vmlinux 0xf28baf80 tcf_hash_destroy +EXPORT_SYMBOL vmlinux 0xf2981f95 kill_anon_super +EXPORT_SYMBOL vmlinux 0xf2997713 tty_termios_hw_change +EXPORT_SYMBOL vmlinux 0xf29a9b22 bio_integrity_endio +EXPORT_SYMBOL vmlinux 0xf2b1ac8e __getnstimeofday +EXPORT_SYMBOL vmlinux 0xf2b9c26c submit_bio +EXPORT_SYMBOL vmlinux 0xf2bdd554 bio_sector_offset +EXPORT_SYMBOL vmlinux 0xf2e38926 unregister_tcf_proto_ops +EXPORT_SYMBOL vmlinux 0xf313da4e sha_transform +EXPORT_SYMBOL vmlinux 0xf31c5cea pcim_iounmap_regions +EXPORT_SYMBOL vmlinux 0xf3341268 __clear_user +EXPORT_SYMBOL vmlinux 0xf338967d qdisc_create_dflt +EXPORT_SYMBOL vmlinux 0xf346231f seq_list_start_head +EXPORT_SYMBOL vmlinux 0xf34f3fb2 ll_rw_block +EXPORT_SYMBOL vmlinux 0xf353a698 register_module_notifier +EXPORT_SYMBOL vmlinux 0xf35ef6f3 seq_bitmap_list +EXPORT_SYMBOL vmlinux 0xf3797152 snd_interval_ratnum +EXPORT_SYMBOL vmlinux 0xf389fe60 __hw_addr_init +EXPORT_SYMBOL vmlinux 0xf3916987 global_cursor_default +EXPORT_SYMBOL vmlinux 0xf396cd21 tcp_parse_md5sig_option +EXPORT_SYMBOL vmlinux 0xf39bb3e2 snd_ctl_find_id +EXPORT_SYMBOL vmlinux 0xf3bf0bce __bitmap_complement +EXPORT_SYMBOL vmlinux 0xf3c197ff noop_qdisc +EXPORT_SYMBOL vmlinux 0xf3c9e156 dev_vprintk_emit +EXPORT_SYMBOL vmlinux 0xf3d944f5 scsi_eh_finish_cmd +EXPORT_SYMBOL vmlinux 0xf3e66110 rtnl_unicast +EXPORT_SYMBOL vmlinux 0xf3e99e62 pci_read_vpd +EXPORT_SYMBOL vmlinux 0xf3eb454d __task_pid_nr_ns +EXPORT_SYMBOL vmlinux 0xf40019c0 tegra114_clock_tune_cpu_trimmers_init +EXPORT_SYMBOL vmlinux 0xf41c18d8 blk_init_allocated_queue +EXPORT_SYMBOL vmlinux 0xf427bb00 set_bh_page +EXPORT_SYMBOL vmlinux 0xf45541ea dev_activate +EXPORT_SYMBOL vmlinux 0xf45a4e52 posix_acl_chmod +EXPORT_SYMBOL vmlinux 0xf473ffaf down +EXPORT_SYMBOL vmlinux 0xf4751190 free_task +EXPORT_SYMBOL vmlinux 0xf4891bac blk_queue_bounce +EXPORT_SYMBOL vmlinux 0xf48e142f netdev_notify_peers +EXPORT_SYMBOL vmlinux 0xf49d7baa __inet6_hash +EXPORT_SYMBOL vmlinux 0xf4a4e0af dst_discard +EXPORT_SYMBOL vmlinux 0xf4a68fe6 vfs_mknod +EXPORT_SYMBOL vmlinux 0xf4a7fc6d omapdss_compat_init +EXPORT_SYMBOL vmlinux 0xf4bb1cc3 jbd2_journal_flush +EXPORT_SYMBOL vmlinux 0xf4bdbeb9 __frontswap_invalidate_area +EXPORT_SYMBOL vmlinux 0xf4cdab64 balance_dirty_pages_ratelimited +EXPORT_SYMBOL vmlinux 0xf4d2a284 submit_bh +EXPORT_SYMBOL vmlinux 0xf4eaa133 generic_file_readonly_mmap +EXPORT_SYMBOL vmlinux 0xf4f14de6 rtnl_trylock +EXPORT_SYMBOL vmlinux 0xf4f71fc3 gen_pool_alloc +EXPORT_SYMBOL vmlinux 0xf4f9887e register_cdrom +EXPORT_SYMBOL vmlinux 0xf513ef4f do_sync_read +EXPORT_SYMBOL vmlinux 0xf515f97b pci_enable_obff +EXPORT_SYMBOL vmlinux 0xf5230f38 xfrm_user_policy +EXPORT_SYMBOL vmlinux 0xf534e168 nf_register_hook +EXPORT_SYMBOL vmlinux 0xf53d4c26 qdisc_class_hash_destroy +EXPORT_SYMBOL vmlinux 0xf54c51a2 dma_pool_free +EXPORT_SYMBOL vmlinux 0xf559c091 devm_iounmap +EXPORT_SYMBOL vmlinux 0xf564412a __aeabi_ulcmp +EXPORT_SYMBOL vmlinux 0xf5c05914 generic_segment_checks +EXPORT_SYMBOL vmlinux 0xf5da33aa jbd2_journal_init_dev +EXPORT_SYMBOL vmlinux 0xf5eb86ea blk_verify_command +EXPORT_SYMBOL vmlinux 0xf5f16f9d padata_free +EXPORT_SYMBOL vmlinux 0xf6032e1c kthread_bind +EXPORT_SYMBOL vmlinux 0xf6169cb0 blk_recount_segments +EXPORT_SYMBOL vmlinux 0xf6388c56 sysctl_ip_default_ttl +EXPORT_SYMBOL vmlinux 0xf642ddc5 bio_copy_kern +EXPORT_SYMBOL vmlinux 0xf6469f9c tcp_timewait_state_process +EXPORT_SYMBOL vmlinux 0xf65fa312 register_console +EXPORT_SYMBOL vmlinux 0xf668ca2c phy_detach +EXPORT_SYMBOL vmlinux 0xf68285c0 register_inetaddr_notifier +EXPORT_SYMBOL vmlinux 0xf6851d5f register_sysctl_paths +EXPORT_SYMBOL vmlinux 0xf6a58959 uart_update_timeout +EXPORT_SYMBOL vmlinux 0xf6ac8fcb xfrm_register_km +EXPORT_SYMBOL vmlinux 0xf6bb4729 color_table +EXPORT_SYMBOL vmlinux 0xf6c85e31 block_page_mkwrite +EXPORT_SYMBOL vmlinux 0xf6c92563 pci_enable_device_mem +EXPORT_SYMBOL vmlinux 0xf6ebc03b net_ratelimit +EXPORT_SYMBOL vmlinux 0xf6f3cef6 omap_vrfb_setup +EXPORT_SYMBOL vmlinux 0xf6fc67cf inet_addr_type +EXPORT_SYMBOL vmlinux 0xf715da11 softnet_data +EXPORT_SYMBOL vmlinux 0xf7271948 edma_set_src_index +EXPORT_SYMBOL vmlinux 0xf737659d dev_close +EXPORT_SYMBOL vmlinux 0xf747a3b6 eth_commit_mac_addr_change +EXPORT_SYMBOL vmlinux 0xf7584a9c find_font +EXPORT_SYMBOL vmlinux 0xf75e03aa pci_bus_read_config_word +EXPORT_SYMBOL vmlinux 0xf76ae995 pcie_capability_write_dword +EXPORT_SYMBOL vmlinux 0xf7802486 __aeabi_uidivmod +EXPORT_SYMBOL vmlinux 0xf7936940 finish_open +EXPORT_SYMBOL vmlinux 0xf7938767 starget_for_each_device +EXPORT_SYMBOL vmlinux 0xf793fa79 bio_integrity_split +EXPORT_SYMBOL vmlinux 0xf79c57c5 pci_dev_driver +EXPORT_SYMBOL vmlinux 0xf79d43df jbd2_journal_force_commit_nested +EXPORT_SYMBOL vmlinux 0xf7a2dcc9 generic_shutdown_super +EXPORT_SYMBOL vmlinux 0xf7a62c28 nf_register_hooks +EXPORT_SYMBOL vmlinux 0xf7b12aee __next_cpu +EXPORT_SYMBOL vmlinux 0xf7c822cc skb_copy_datagram_const_iovec +EXPORT_SYMBOL vmlinux 0xf7db1c72 skb_unlink +EXPORT_SYMBOL vmlinux 0xf803fe39 bitmap_set +EXPORT_SYMBOL vmlinux 0xf80cb888 sync_inodes_sb +EXPORT_SYMBOL vmlinux 0xf80d1e94 inode_dio_done +EXPORT_SYMBOL vmlinux 0xf811e69d scsi_eh_flush_done_q +EXPORT_SYMBOL vmlinux 0xf8126134 xfrm_policy_destroy +EXPORT_SYMBOL vmlinux 0xf818fba8 ip_generic_getfrag +EXPORT_SYMBOL vmlinux 0xf826881a jbd2__journal_restart +EXPORT_SYMBOL vmlinux 0xf827cb83 free_reserved_area +EXPORT_SYMBOL vmlinux 0xf82abc1d isa_dma_bridge_buggy +EXPORT_SYMBOL vmlinux 0xf82ec573 rb_prev +EXPORT_SYMBOL vmlinux 0xf83bea47 kmem_cache_alloc_trace +EXPORT_SYMBOL vmlinux 0xf8408eb2 i2c_master_send +EXPORT_SYMBOL vmlinux 0xf8410fcd __napi_schedule +EXPORT_SYMBOL vmlinux 0xf8460d24 snd_ctl_replace +EXPORT_SYMBOL vmlinux 0xf847e805 elm_config +EXPORT_SYMBOL vmlinux 0xf853bbca omap_vrfb_map_angle +EXPORT_SYMBOL vmlinux 0xf855d4b5 snd_ctl_remove_id +EXPORT_SYMBOL vmlinux 0xf85663fb kmem_cache_create +EXPORT_SYMBOL vmlinux 0xf875a8b3 cancel_dirty_page +EXPORT_SYMBOL vmlinux 0xf875cb7b omapdss_output_unset_device +EXPORT_SYMBOL vmlinux 0xf88c3301 sg_init_table +EXPORT_SYMBOL vmlinux 0xf8a4076d jbd2_journal_file_inode +EXPORT_SYMBOL vmlinux 0xf8a43469 dentry_path_raw +EXPORT_SYMBOL vmlinux 0xf8aa6535 mb_cache_entry_release +EXPORT_SYMBOL vmlinux 0xf8bc90e2 dma_alloc_from_coherent +EXPORT_SYMBOL vmlinux 0xf8c7a5ea jbd2_journal_forget +EXPORT_SYMBOL vmlinux 0xf8fbb4f0 __bad_xchg +EXPORT_SYMBOL vmlinux 0xf927bcf7 dcb_setapp +EXPORT_SYMBOL vmlinux 0xf92ae149 __dev_remove_offload +EXPORT_SYMBOL vmlinux 0xf9326b4a inet_stream_connect +EXPORT_SYMBOL vmlinux 0xf9348cbc xz_dec_run +EXPORT_SYMBOL vmlinux 0xf938cc80 add_to_page_cache_locked +EXPORT_SYMBOL vmlinux 0xf9427374 dispc_request_irq +EXPORT_SYMBOL vmlinux 0xf9556540 __skb_checksum_complete_head +EXPORT_SYMBOL vmlinux 0xf9659464 sync_dirty_buffer +EXPORT_SYMBOL vmlinux 0xf9725d21 netdev_features_change +EXPORT_SYMBOL vmlinux 0xf9737f14 xfrm_unregister_mode +EXPORT_SYMBOL vmlinux 0xf981522a xfrm_find_acq_byseq +EXPORT_SYMBOL vmlinux 0xf9880ca0 alloc_etherdev_mqs +EXPORT_SYMBOL vmlinux 0xf98f1641 journal_trans_will_send_data_barrier +EXPORT_SYMBOL vmlinux 0xf9a482f9 msleep +EXPORT_SYMBOL vmlinux 0xf9ae0da2 snd_pcm_hw_refine +EXPORT_SYMBOL vmlinux 0xf9b46c2a blk_queue_prep_rq +EXPORT_SYMBOL vmlinux 0xf9bd7dc0 tcp_v4_destroy_sock +EXPORT_SYMBOL vmlinux 0xf9e0f6f4 tty_schedule_flip +EXPORT_SYMBOL vmlinux 0xf9e73082 scnprintf +EXPORT_SYMBOL vmlinux 0xf9f42bc8 grab_cache_page_write_begin +EXPORT_SYMBOL vmlinux 0xfa14e155 snd_info_free_entry +EXPORT_SYMBOL vmlinux 0xfa3934f2 phy_start_interrupts +EXPORT_SYMBOL vmlinux 0xfa4f8686 sk_stream_error +EXPORT_SYMBOL vmlinux 0xfa599bb2 netlink_register_notifier +EXPORT_SYMBOL vmlinux 0xfa7ce485 find_or_create_page +EXPORT_SYMBOL vmlinux 0xfa7d4405 iget_locked +EXPORT_SYMBOL vmlinux 0xfa7f3156 wl12xx_get_platform_data +EXPORT_SYMBOL vmlinux 0xfaaf8efd xfrm_prepare_input +EXPORT_SYMBOL vmlinux 0xfab84982 thaw_bdev +EXPORT_SYMBOL vmlinux 0xfac68eba arm_elf_read_implies_exec +EXPORT_SYMBOL vmlinux 0xfac8865f sysctl_wmem_max +EXPORT_SYMBOL vmlinux 0xfacd2e14 pgprot_user +EXPORT_SYMBOL vmlinux 0xfacef7e9 icmpv6_send +EXPORT_SYMBOL vmlinux 0xfad4bd57 gnet_stats_finish_copy +EXPORT_SYMBOL vmlinux 0xfae67b1f cap_mmap_addr +EXPORT_SYMBOL vmlinux 0xfaf98462 bitrev32 +EXPORT_SYMBOL vmlinux 0xfaf9995e sleep_on +EXPORT_SYMBOL vmlinux 0xfb0a3b50 d_find_any_alias +EXPORT_SYMBOL vmlinux 0xfb0f8499 omap_dss_find_device +EXPORT_SYMBOL vmlinux 0xfb221336 udp_flush_pending_frames +EXPORT_SYMBOL vmlinux 0xfb2e36b6 jbd2_journal_lock_updates +EXPORT_SYMBOL vmlinux 0xfb35813f dma_release_from_coherent +EXPORT_SYMBOL vmlinux 0xfb4b865d dev_mc_init +EXPORT_SYMBOL vmlinux 0xfb51b566 md_register_thread +EXPORT_SYMBOL vmlinux 0xfb54aefb pm860x_reg_read +EXPORT_SYMBOL vmlinux 0xfb55dcf7 user_revoke +EXPORT_SYMBOL vmlinux 0xfb6af58d recalc_sigpending +EXPORT_SYMBOL vmlinux 0xfb79a3ad unmap_underlying_metadata +EXPORT_SYMBOL vmlinux 0xfb7d9c45 __udivsi3 +EXPORT_SYMBOL vmlinux 0xfb94103e __clzdi2 +EXPORT_SYMBOL vmlinux 0xfb961d14 __arm_ioremap +EXPORT_SYMBOL vmlinux 0xfb98f1de kmap_high +EXPORT_SYMBOL vmlinux 0xfba7d9a3 blk_queue_invalidate_tags +EXPORT_SYMBOL vmlinux 0xfbaaf01e console_lock +EXPORT_SYMBOL vmlinux 0xfbb91ee8 d_find_alias +EXPORT_SYMBOL vmlinux 0xfbde595a tty_pair_get_tty +EXPORT_SYMBOL vmlinux 0xfbf33da0 pci_write_vpd +EXPORT_SYMBOL vmlinux 0xfc02b7ad sysctl_tcp_wmem +EXPORT_SYMBOL vmlinux 0xfc305d57 tcp_disconnect +EXPORT_SYMBOL vmlinux 0xfc39e32f ioport_unmap +EXPORT_SYMBOL vmlinux 0xfc433dfb vmalloc_to_page +EXPORT_SYMBOL vmlinux 0xfc49a6d5 i2c_smbus_write_block_data +EXPORT_SYMBOL vmlinux 0xfc65459a kstrtoull_from_user +EXPORT_SYMBOL vmlinux 0xfc75b350 phy_driver_register +EXPORT_SYMBOL vmlinux 0xfc770f16 tty_lock_pair +EXPORT_SYMBOL vmlinux 0xfcaa04a0 out_of_line_wait_on_bit_lock +EXPORT_SYMBOL vmlinux 0xfcadadb6 request_key +EXPORT_SYMBOL vmlinux 0xfcc2a43c utf32_to_utf8 +EXPORT_SYMBOL vmlinux 0xfcd14c52 dev_printk_emit +EXPORT_SYMBOL vmlinux 0xfcec0987 enable_irq +EXPORT_SYMBOL vmlinux 0xfcec3b5c ip6_find_1stfragopt +EXPORT_SYMBOL vmlinux 0xfcef30e1 snd_pcm_lib_free_pages +EXPORT_SYMBOL vmlinux 0xfcfa03ff fb_videomode_to_modelist +EXPORT_SYMBOL vmlinux 0xfd09ad2e tty_pair_get_pty +EXPORT_SYMBOL vmlinux 0xfd0ea740 splice_from_pipe_begin +EXPORT_SYMBOL vmlinux 0xfd1bd95c tcf_destroy_chain +EXPORT_SYMBOL vmlinux 0xfd1eadbe of_dev_get +EXPORT_SYMBOL vmlinux 0xfd2adf0c km_policy_expired +EXPORT_SYMBOL vmlinux 0xfd305341 walk_stackframe +EXPORT_SYMBOL vmlinux 0xfd3218b5 simple_write_begin +EXPORT_SYMBOL vmlinux 0xfd342381 i2c_del_adapter +EXPORT_SYMBOL vmlinux 0xfd5683b9 wait_for_completion_interruptible +EXPORT_SYMBOL vmlinux 0xfd61fe3d inet6_add_offload +EXPORT_SYMBOL vmlinux 0xfd6293c2 boot_tvec_bases +EXPORT_SYMBOL vmlinux 0xfd6516d7 pipe_unlock +EXPORT_SYMBOL vmlinux 0xfd6dbbae pci_scan_root_bus +EXPORT_SYMBOL vmlinux 0xfd6e0509 blk_fetch_request +EXPORT_SYMBOL vmlinux 0xfd99623a ip_frag_ecn_table +EXPORT_SYMBOL vmlinux 0xfda0dbe8 ftrace_print_hex_seq +EXPORT_SYMBOL vmlinux 0xfdc72838 blk_rq_init +EXPORT_SYMBOL vmlinux 0xfdce239b tegra_chip_uid +EXPORT_SYMBOL vmlinux 0xfddd9e03 dev_kfree_skb_any +EXPORT_SYMBOL vmlinux 0xfdfc0b3b fiemap_fill_next_extent +EXPORT_SYMBOL vmlinux 0xfdff046d xfrm_input +EXPORT_SYMBOL vmlinux 0xfe029963 unregister_inetaddr_notifier +EXPORT_SYMBOL vmlinux 0xfe33c6c3 sg_nents +EXPORT_SYMBOL vmlinux 0xfe40bf95 dss_feat_get_num_ovls +EXPORT_SYMBOL vmlinux 0xfe4dae09 input_open_device +EXPORT_SYMBOL vmlinux 0xfe553a63 scsi_cmd_ioctl +EXPORT_SYMBOL vmlinux 0xfe5d4bb2 sys_tz +EXPORT_SYMBOL vmlinux 0xfe64b182 snd_pcm_open_substream +EXPORT_SYMBOL vmlinux 0xfe7c4287 nr_cpu_ids +EXPORT_SYMBOL vmlinux 0xfead406f udp_proc_register +EXPORT_SYMBOL vmlinux 0xfeb69fb6 kernel_sock_shutdown +EXPORT_SYMBOL vmlinux 0xfeba0b3b sk_stream_wait_close +EXPORT_SYMBOL vmlinux 0xfebddab2 ipv4_specific +EXPORT_SYMBOL vmlinux 0xfec59271 proc_remove +EXPORT_SYMBOL vmlinux 0xfedcdb60 seq_hlist_next_percpu +EXPORT_SYMBOL vmlinux 0xfee100c7 skb_realloc_headroom +EXPORT_SYMBOL vmlinux 0xfee2f355 iov_iter_copy_from_user +EXPORT_SYMBOL vmlinux 0xfee6f191 __cleancache_init_fs +EXPORT_SYMBOL vmlinux 0xfef464a1 blk_queue_max_segment_size +EXPORT_SYMBOL vmlinux 0xfef96e23 __scsi_print_command +EXPORT_SYMBOL vmlinux 0xfefb6077 edma_alloc_channel +EXPORT_SYMBOL vmlinux 0xfefe0756 pci_set_dma_seg_boundary +EXPORT_SYMBOL vmlinux 0xff03e056 omapdss_dpi_display_disable +EXPORT_SYMBOL vmlinux 0xff064fee gen_pool_set_algo +EXPORT_SYMBOL vmlinux 0xff0e8f4c nf_log_unregister +EXPORT_SYMBOL vmlinux 0xff1e9dd8 seq_list_start +EXPORT_SYMBOL vmlinux 0xff36f3dc pci_find_bus +EXPORT_SYMBOL vmlinux 0xff39113f generic_block_fiemap +EXPORT_SYMBOL vmlinux 0xff4f77a2 fs_bio_set +EXPORT_SYMBOL vmlinux 0xff50ea24 blk_pre_runtime_suspend +EXPORT_SYMBOL vmlinux 0xff6104d0 snd_pcm_rate_bit_to_rate +EXPORT_SYMBOL vmlinux 0xff62c364 key_type_keyring +EXPORT_SYMBOL vmlinux 0xff67b37f __lshrdi3 +EXPORT_SYMBOL vmlinux 0xff6878cf fb_default_cmap +EXPORT_SYMBOL vmlinux 0xff6babc3 lookup_bdev +EXPORT_SYMBOL vmlinux 0xff717443 inet_csk_delete_keepalive_timer +EXPORT_SYMBOL vmlinux 0xff9ca065 fb_edid_to_monspecs +EXPORT_SYMBOL vmlinux 0xffad4aea cdrom_get_last_written +EXPORT_SYMBOL vmlinux 0xffb94ef0 _test_and_change_bit +EXPORT_SYMBOL vmlinux 0xffd2cf99 omap_dss_get_num_overlay_managers +EXPORT_SYMBOL vmlinux 0xffd2fcaf splice_from_pipe_next +EXPORT_SYMBOL vmlinux 0xffd5a395 default_wake_function +EXPORT_SYMBOL vmlinux 0xffdd82ae mpage_readpages +EXPORT_SYMBOL vmlinux 0xffe5095d groups_free +EXPORT_SYMBOL vmlinux 0xfff627d4 lro_flush_all +EXPORT_SYMBOL_GPL crypto/af_alg 0x0adad3da af_alg_release +EXPORT_SYMBOL_GPL crypto/af_alg 0x62378da1 af_alg_make_sg +EXPORT_SYMBOL_GPL crypto/af_alg 0x93957c0c af_alg_cmsg_send +EXPORT_SYMBOL_GPL crypto/af_alg 0xafe0a954 af_alg_accept +EXPORT_SYMBOL_GPL crypto/af_alg 0xbffb0b84 af_alg_free_sg +EXPORT_SYMBOL_GPL crypto/af_alg 0xd954ef95 af_alg_wait_for_completion +EXPORT_SYMBOL_GPL crypto/af_alg 0xda611518 af_alg_unregister_type +EXPORT_SYMBOL_GPL crypto/af_alg 0xdf325e6f af_alg_register_type +EXPORT_SYMBOL_GPL crypto/af_alg 0xfcb7bee0 af_alg_complete +EXPORT_SYMBOL_GPL crypto/async_tx/async_memcpy 0x4b3f6b9b async_memcpy +EXPORT_SYMBOL_GPL crypto/async_tx/async_pq 0x19216f75 async_gen_syndrome +EXPORT_SYMBOL_GPL crypto/async_tx/async_pq 0xb866b2aa async_syndrome_val +EXPORT_SYMBOL_GPL crypto/async_tx/async_raid6_recov 0x8556cd67 async_raid6_2data_recov +EXPORT_SYMBOL_GPL crypto/async_tx/async_raid6_recov 0xca7eedf4 async_raid6_datap_recov +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0xa15ba52e async_tx_quiesce +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0xc11ffaf5 async_trigger_callback +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0xccb3115c async_tx_submit +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0xfe16df5a __async_tx_find_channel +EXPORT_SYMBOL_GPL crypto/async_tx/async_xor 0xb1486b59 async_xor +EXPORT_SYMBOL_GPL crypto/async_tx/async_xor 0xfee1beab async_xor_val +EXPORT_SYMBOL_GPL crypto/blowfish_common 0x457b4b1e blowfish_setkey +EXPORT_SYMBOL_GPL crypto/cast5_generic 0x27278ca9 __cast5_encrypt +EXPORT_SYMBOL_GPL crypto/cast5_generic 0x37da12cb cast5_setkey +EXPORT_SYMBOL_GPL crypto/cast5_generic 0x4a2a3ca6 __cast5_decrypt +EXPORT_SYMBOL_GPL crypto/cast6_generic 0x1291971c __cast6_setkey +EXPORT_SYMBOL_GPL crypto/cast6_generic 0x1e2c961f __cast6_decrypt +EXPORT_SYMBOL_GPL crypto/cast6_generic 0x8f04034a __cast6_encrypt +EXPORT_SYMBOL_GPL crypto/cast6_generic 0xb588a6e7 cast6_setkey +EXPORT_SYMBOL_GPL crypto/cast_common 0x08aa6fb7 cast_s1 +EXPORT_SYMBOL_GPL crypto/cast_common 0x0c5fbf8a cast_s3 +EXPORT_SYMBOL_GPL crypto/cast_common 0xe39dd4b4 cast_s2 +EXPORT_SYMBOL_GPL crypto/cast_common 0xee83a4f3 cast_s4 +EXPORT_SYMBOL_GPL crypto/cryptd 0x02844518 cryptd_ablkcipher_child +EXPORT_SYMBOL_GPL crypto/cryptd 0x408fd75d cryptd_alloc_ahash +EXPORT_SYMBOL_GPL crypto/cryptd 0x50c894c4 cryptd_free_aead +EXPORT_SYMBOL_GPL crypto/cryptd 0x66dad093 cryptd_free_ablkcipher +EXPORT_SYMBOL_GPL crypto/cryptd 0x9610203d cryptd_alloc_aead +EXPORT_SYMBOL_GPL crypto/cryptd 0x9d5b5e71 cryptd_alloc_ablkcipher +EXPORT_SYMBOL_GPL crypto/cryptd 0xc0c576ed cryptd_shash_desc +EXPORT_SYMBOL_GPL crypto/cryptd 0xc68a770a cryptd_ahash_child +EXPORT_SYMBOL_GPL crypto/cryptd 0xcb25bf1e cryptd_aead_child +EXPORT_SYMBOL_GPL crypto/cryptd 0xf29cd4d9 cryptd_free_ahash +EXPORT_SYMBOL_GPL crypto/des_generic 0xcfd9a2c0 des_ekey +EXPORT_SYMBOL_GPL crypto/lrw 0x0c9f2582 lrw_crypt +EXPORT_SYMBOL_GPL crypto/lrw 0x3864eb66 lrw_free_table +EXPORT_SYMBOL_GPL crypto/lrw 0xcd074900 lrw_init_table +EXPORT_SYMBOL_GPL crypto/serpent_generic 0x5ddb33e9 __serpent_encrypt +EXPORT_SYMBOL_GPL crypto/serpent_generic 0x77b39cb4 __serpent_setkey +EXPORT_SYMBOL_GPL crypto/serpent_generic 0x8a1a99ad __serpent_decrypt +EXPORT_SYMBOL_GPL crypto/serpent_generic 0xbb2e5067 serpent_setkey +EXPORT_SYMBOL_GPL crypto/twofish_common 0x6c3229bb __twofish_setkey +EXPORT_SYMBOL_GPL crypto/twofish_common 0xb5e47711 twofish_setkey +EXPORT_SYMBOL_GPL crypto/xts 0x1b32361f xts_crypt +EXPORT_SYMBOL_GPL drivers/ata/pata_platform 0xdc7f4042 __pata_platform_probe +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/bcma/bcma 0x00a80e62 bcma_chipco_regctl_maskset +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x055260c3 bcma_driver_unregister +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x11e094a6 bcma_chipco_get_alp_clock +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x1cd1d6ba bcma_chipco_chipctl_maskset +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x284ea34f bcma_core_pci_extend_L1timer +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x302d1403 bcma_core_pll_ctl +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x498f78d9 bcma_pmu_get_bus_clock +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x52bb94d6 bcma_core_is_enabled +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x5569228e __bcma_driver_register +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x73a479b2 bcma_find_core +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x9a26d3d2 bcma_core_enable +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xafc174d0 bcma_core_pci_irq_ctl +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xb388813d bcma_chipco_gpio_outen +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xbc6468df bcma_pmu_spuravoid_pllupdate +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xbf94cb58 bcma_core_disable +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xc97beaed bcma_chipco_gpio_out +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xcc1645f0 bcma_chipco_gpio_control +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xcd70b006 bcma_core_set_clockmode +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xdc011eb1 bcma_chipco_pll_maskset +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xef7bfbc1 bcma_chipco_pll_read +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xf55f8ed1 bcma_chipco_pll_write +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x0aa57c5f btmrvl_send_module_cfg_cmd +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x0bdb60fa btmrvl_send_hscfg_cmd +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x3aadb7d7 btmrvl_add_card +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x550a20d4 btmrvl_register_hdev +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x68284ae8 btmrvl_check_evtpkt +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x6bf13711 btmrvl_enable_ps +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xbcb83b79 btmrvl_interrupt +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xc15e7181 btmrvl_enable_hs +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xd57f7fbb btmrvl_process_event +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xfb8989d2 btmrvl_remove_card +EXPORT_SYMBOL_GPL drivers/dma/dw/dw_dmac_core 0x021ebd8d dw_dma_shutdown +EXPORT_SYMBOL_GPL drivers/dma/dw/dw_dmac_core 0x69d20515 dw_dma_probe +EXPORT_SYMBOL_GPL drivers/dma/dw/dw_dmac_core 0xaa92eb9c dw_dma_remove +EXPORT_SYMBOL_GPL drivers/dma/dw/dw_dmac_core 0xccbdd318 dw_dma_resume +EXPORT_SYMBOL_GPL drivers/dma/dw/dw_dmac_core 0xf1dd0ce7 dw_dma_suspend +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x0c32ff8a edac_pci_alloc_index +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x11bbf13d edac_pci_add_device +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x14835d64 edac_pci_free_ctl_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x348c79da edac_mc_handle_error +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x413dba9d edac_pci_alloc_ctl_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x4b69ec0c edac_mc_alloc +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x53e9b37d edac_device_alloc_ctl_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x69259f22 edac_mem_types +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x6c17da2e edac_mc_add_mc +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x6d90e170 edac_device_free_ctl_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x6e3ff83a edac_device_alloc_index +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x7d0ae06a find_mci_by_dev +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x91f191e5 edac_pci_del_device +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x9e7b3057 edac_device_handle_ce +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xa905b1fe edac_pci_create_generic_ctl +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xaa3f3859 edac_device_handle_ue +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xaa96fc60 edac_mc_del_mc +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xadae926c edac_mc_free +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xbc3b8f56 edac_pci_handle_pe +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xc0dcb59e edac_layer_name +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xc41aeaca edac_mc_find_csrow_by_page +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xd2775d5b edac_pci_handle_npe +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xe40342d6 edac_device_del_device +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xe8c3b827 edac_pci_release_generic_ctl +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xea68587c edac_pci_reset_delay_period +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xeacb44a4 edac_raw_mc_handle_error +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xf84d57cc edac_device_add_device +EXPORT_SYMBOL_GPL drivers/firewire/firewire-core 0xf4ade51f fw_card_release +EXPORT_SYMBOL_GPL drivers/gpio/gpio-max730x 0x478cb132 __max730x_remove +EXPORT_SYMBOL_GPL drivers/gpio/gpio-max730x 0xbd107f35 __max730x_probe +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x1adc5e59 drm_gem_cma_create +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x30aa3341 drm_gem_cma_dumb_destroy +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x3c93624f drm_vm_open_locked +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x56bd8ce3 drm_gem_cma_mmap +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x67ef1d04 drm_class_device_register +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x770f0d95 drm_display_mode_from_videomode +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x78256451 drm_class_device_unregister +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x78b4ecc2 drm_gem_cma_prime_get_sg_table +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0xa33ec413 drm_gem_cma_prime_vmap +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0xa55983c3 drm_gem_cma_vm_ops +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0xabc27f66 drm_gem_cma_dumb_map_offset +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0xb1edb47f drm_gem_cma_free_object +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0xccb1ba6b of_get_drm_display_mode +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0xd284f28e drm_gem_cma_prime_vunmap +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0xda7a89ef drm_gem_cma_prime_mmap +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0xdb273164 drm_gem_cma_dumb_create +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0xee0c6102 drm_gem_cma_describe +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0xf9d13f34 drm_gem_cma_prime_import_sg_table +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_kms_helper 0x1148b623 drm_fbdev_cma_fini +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_kms_helper 0x3dfc3d04 drm_fb_cma_describe +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_kms_helper 0x51233ee3 drm_fb_cma_debugfs_show +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_kms_helper 0x749267c5 drm_fb_cma_create +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_kms_helper 0xabb71e0f drm_fb_cma_get_gem_obj +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_kms_helper 0xb2c912af drm_fbdev_cma_hotplug_event +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_kms_helper 0xcc337fd5 drm_fbdev_cma_restore_mode +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm_kms_helper 0xe97155cf drm_fbdev_cma_init +EXPORT_SYMBOL_GPL drivers/hid/hid 0x05495392 hid_debug +EXPORT_SYMBOL_GPL drivers/hid/hid 0x0b80507e hid_allocate_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0x0f39bf9f hid_register_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0x11d6096e hid_dump_input +EXPORT_SYMBOL_GPL drivers/hid/hid 0x19d9635c hid_resolv_usage +EXPORT_SYMBOL_GPL drivers/hid/hid 0x1d8f92e1 hidraw_report_event +EXPORT_SYMBOL_GPL drivers/hid/hid 0x3bfb307c hid_alloc_report_buf +EXPORT_SYMBOL_GPL drivers/hid/hid 0x3ccd4a83 hid_ignore +EXPORT_SYMBOL_GPL drivers/hid/hid 0x3df08762 hidinput_connect +EXPORT_SYMBOL_GPL drivers/hid/hid 0x3df29db5 hid_report_raw_event +EXPORT_SYMBOL_GPL drivers/hid/hid 0x3fe49f8f hid_dump_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0x4906a967 hid_snto32 +EXPORT_SYMBOL_GPL drivers/hid/hid 0x4947c938 hid_destroy_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0x4f8b8ae7 hid_open_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0x672e19c4 hidinput_find_field +EXPORT_SYMBOL_GPL drivers/hid/hid 0x7f693a61 hid_add_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0x81a65182 hid_output_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0x858e0f91 hid_check_keys_pressed +EXPORT_SYMBOL_GPL drivers/hid/hid 0x8a7f2a99 hidinput_report_event +EXPORT_SYMBOL_GPL drivers/hid/hid 0x90820f65 hidraw_connect +EXPORT_SYMBOL_GPL drivers/hid/hid 0x98f34be5 hid_set_field +EXPORT_SYMBOL_GPL drivers/hid/hid 0xa36bc060 hid_dump_field +EXPORT_SYMBOL_GPL drivers/hid/hid 0xb2a464c6 hidinput_get_led_field +EXPORT_SYMBOL_GPL drivers/hid/hid 0xb31d8950 hid_parse_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0xbf508840 hid_validate_values +EXPORT_SYMBOL_GPL drivers/hid/hid 0xc203d74c __hid_register_driver +EXPORT_SYMBOL_GPL drivers/hid/hid 0xc298608c hid_connect +EXPORT_SYMBOL_GPL drivers/hid/hid 0xcfa8964c hid_debug_event +EXPORT_SYMBOL_GPL drivers/hid/hid 0xd46dce61 hid_unregister_driver +EXPORT_SYMBOL_GPL drivers/hid/hid 0xdb8222ac hidinput_calc_abs_res +EXPORT_SYMBOL_GPL drivers/hid/hid 0xdf1418fe hid_input_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0xe825d961 hidinput_disconnect +EXPORT_SYMBOL_GPL drivers/hid/hid 0xebe0c6b8 hid_disconnect +EXPORT_SYMBOL_GPL drivers/hid/hid 0xf28a5b1d hid_dump_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0xf794eed2 hidraw_disconnect +EXPORT_SYMBOL_GPL drivers/hid/hid 0xf8c453a3 hidinput_count_leds +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat 0x2f622ea1 roccat_disconnect +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat 0x8c4181ec roccat_report_event +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat 0xa0a00c42 roccat_connect +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat-common 0x1303d122 roccat_common2_send_with_status +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat-common 0x82b4ecb6 roccat_common2_receive +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat-common 0xe6beabbd roccat_common2_send +EXPORT_SYMBOL_GPL drivers/hid/hid-sensor-hub 0x19a0b46f sensor_hub_set_feature +EXPORT_SYMBOL_GPL drivers/hid/hid-sensor-hub 0x809b4fde sensor_hub_register_callback +EXPORT_SYMBOL_GPL drivers/hid/hid-sensor-hub 0xa1e5b10e sensor_hub_remove_callback +EXPORT_SYMBOL_GPL drivers/hid/hid-sensor-hub 0xa378196b sensor_hub_input_attr_get_raw_value +EXPORT_SYMBOL_GPL drivers/hid/hid-sensor-hub 0xce3d12d0 sensor_hub_get_feature +EXPORT_SYMBOL_GPL drivers/hid/hid-sensor-hub 0xdde0fa6a sensor_hub_input_get_attribute_info +EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0x01fd453e usbhid_lookup_quirk +EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0x3e882dc7 usbhid_set_leds +EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0x6083d1f0 hiddev_hid_event +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x07858900 hsi_free_msg +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x1553df1c hsi_register_client_driver +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x184c9584 hsi_put_controller +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x22c0264e hsi_async +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x516e3a8d hsi_alloc_msg +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x5c4dcf4e hsi_register_controller +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x67b16ebe hsi_claim_port +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x68d1a8ff hsi_unregister_port_event +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x9eea4876 hsi_unregister_controller +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0xec1da68a hsi_register_port_event +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0xed1d3614 hsi_event +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0xf32e9f10 hsi_release_port +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0xfcca2370 hsi_alloc_controller +EXPORT_SYMBOL_GPL drivers/hwmon/adt7x10 0x2c38b707 adt7x10_probe +EXPORT_SYMBOL_GPL drivers/hwmon/adt7x10 0x4d533c19 adt7x10_dev_pm_ops +EXPORT_SYMBOL_GPL drivers/hwmon/adt7x10 0x6b2efe0a adt7x10_remove +EXPORT_SYMBOL_GPL drivers/hwmon/pmbus/pmbus_core 0x00ad0293 pmbus_write_byte +EXPORT_SYMBOL_GPL drivers/hwmon/pmbus/pmbus_core 0x28f981f4 pmbus_check_word_register +EXPORT_SYMBOL_GPL drivers/hwmon/pmbus/pmbus_core 0x2e4679a1 pmbus_set_page +EXPORT_SYMBOL_GPL drivers/hwmon/pmbus/pmbus_core 0x33cee169 pmbus_write_word_data +EXPORT_SYMBOL_GPL drivers/hwmon/pmbus/pmbus_core 0x6149037f pmbus_get_driver_info +EXPORT_SYMBOL_GPL drivers/hwmon/pmbus/pmbus_core 0x62ee234e pmbus_clear_cache +EXPORT_SYMBOL_GPL drivers/hwmon/pmbus/pmbus_core 0x80aa4e46 pmbus_do_remove +EXPORT_SYMBOL_GPL drivers/hwmon/pmbus/pmbus_core 0x89155aa6 pmbus_clear_faults +EXPORT_SYMBOL_GPL drivers/hwmon/pmbus/pmbus_core 0x9c794a20 pmbus_check_byte_register +EXPORT_SYMBOL_GPL drivers/hwmon/pmbus/pmbus_core 0xa8142a56 pmbus_read_byte_data +EXPORT_SYMBOL_GPL drivers/hwmon/pmbus/pmbus_core 0xb55745e7 pmbus_read_word_data +EXPORT_SYMBOL_GPL drivers/hwmon/pmbus/pmbus_core 0xedae3504 pmbus_do_probe +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0x0798521a i2c_dw_read_comp_param +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0x0a23755b i2c_dw_init +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0x3ac13876 i2c_dw_xfer +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0x5bb1170b i2c_dw_isr +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0x759453b4 i2c_dw_disable +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0x98db1f54 i2c_dw_enable +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0xb803be4c i2c_dw_disable_int +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0xb83052a0 i2c_dw_clear_int +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0xdad6a924 i2c_dw_func +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0xe185c53f i2c_dw_is_enabled +EXPORT_SYMBOL_GPL drivers/i2c/i2c-mux 0x0edde575 i2c_del_mux_adapter +EXPORT_SYMBOL_GPL drivers/i2c/i2c-mux 0x5dbbbe59 i2c_add_mux_adapter +EXPORT_SYMBOL_GPL drivers/i2c/i2c-smbus 0x5e34ebd4 i2c_handle_smbus_alert +EXPORT_SYMBOL_GPL drivers/i2c/i2c-smbus 0x8adb462d i2c_setup_smbus_alert +EXPORT_SYMBOL_GPL drivers/iio/adc/ad_sigma_delta 0x0b4da87c ad_sd_cleanup_buffer_and_trigger +EXPORT_SYMBOL_GPL drivers/iio/adc/ad_sigma_delta 0x0d245bba ad_sd_calibrate_all +EXPORT_SYMBOL_GPL drivers/iio/adc/ad_sigma_delta 0x4f148adc ad_sigma_delta_single_conversion +EXPORT_SYMBOL_GPL drivers/iio/adc/ad_sigma_delta 0x6911f0e6 ad_sd_validate_trigger +EXPORT_SYMBOL_GPL drivers/iio/adc/ad_sigma_delta 0xcae9b1c9 ad_sd_read_reg +EXPORT_SYMBOL_GPL drivers/iio/adc/ad_sigma_delta 0xd3629274 ad_sd_write_reg +EXPORT_SYMBOL_GPL drivers/iio/adc/ad_sigma_delta 0xf2e2a949 ad_sd_init +EXPORT_SYMBOL_GPL drivers/iio/adc/ad_sigma_delta 0xf66a78d6 ad_sd_set_comm +EXPORT_SYMBOL_GPL drivers/iio/adc/ad_sigma_delta 0xf6a8b45f ad_sd_setup_buffer_and_trigger +EXPORT_SYMBOL_GPL drivers/iio/imu/adis_lib 0x34096a20 adis_setup_buffer_and_trigger +EXPORT_SYMBOL_GPL drivers/iio/imu/adis_lib 0x396207dd adis_remove_trigger +EXPORT_SYMBOL_GPL drivers/iio/imu/adis_lib 0x72235f75 adis_single_conversion +EXPORT_SYMBOL_GPL drivers/iio/imu/adis_lib 0x7df65a60 adis_check_status +EXPORT_SYMBOL_GPL drivers/iio/imu/adis_lib 0x82dd3e55 adis_read_reg +EXPORT_SYMBOL_GPL drivers/iio/imu/adis_lib 0x8e35d5cd adis_cleanup_buffer_and_trigger +EXPORT_SYMBOL_GPL drivers/iio/imu/adis_lib 0x940ccef6 adis_update_scan_mode +EXPORT_SYMBOL_GPL drivers/iio/imu/adis_lib 0x9bd68124 adis_initial_startup +EXPORT_SYMBOL_GPL drivers/iio/imu/adis_lib 0xacc1b62f adis_write_reg +EXPORT_SYMBOL_GPL drivers/iio/imu/adis_lib 0xf1746a47 adis_reset +EXPORT_SYMBOL_GPL drivers/iio/imu/adis_lib 0xf226aa61 adis_probe_trigger +EXPORT_SYMBOL_GPL drivers/iio/imu/adis_lib 0xfcf57066 adis_init +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x03ee6205 iio_get_channel_type +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x0ab3ffd5 iio_dealloc_pollfunc +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x2565e9c5 iio_channel_get +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x267c0508 iio_channel_release_all_cb +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x26f6b499 iio_str_to_fixpoint +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x2a1fab3c iio_channel_stop_all_cb +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x2a29b029 iio_read_channel_processed +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x40b9f376 iio_map_array_unregister +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x61a4024f iio_scan_mask_query +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x6330d475 iio_channel_release +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x750ea208 iio_enum_read +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x78e62f23 iio_validate_scan_mask_onehot +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x7a711aef iio_channel_start_all_cb +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x9110379f iio_alloc_pollfunc +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x912f4d44 iio_update_buffers +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xa4e076fa iio_read_channel_scale +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xaa6a5231 iio_scan_mask_set +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xac0d1120 iio_read_channel_raw +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xadb585e4 iio_channel_get_all +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xb3240df6 iio_enum_available_read +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xb5edf386 iio_update_demux +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xc666385e iio_push_to_buffers +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xdcd74798 iio_map_array_register +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xdd50fc92 iio_enum_write +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xdf6a924e iio_channel_release_all +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xe37715be iio_channel_get_all_cb +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xe977c15b iio_convert_raw_to_processed +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xeb5bd985 iio_channel_cb_get_channels +EXPORT_SYMBOL_GPL drivers/infiniband/core/ib_core 0xdbd019c4 ib_wq +EXPORT_SYMBOL_GPL drivers/input/ff-memless 0x67e5bade input_ff_create_memless +EXPORT_SYMBOL_GPL drivers/input/matrix-keymap 0x85d8eaf4 matrix_keypad_parse_of_params +EXPORT_SYMBOL_GPL drivers/input/misc/adxl34x 0x49a4fcbd adxl34x_remove +EXPORT_SYMBOL_GPL drivers/input/misc/adxl34x 0x66535a18 adxl34x_suspend +EXPORT_SYMBOL_GPL drivers/input/misc/adxl34x 0xb3875eae adxl34x_probe +EXPORT_SYMBOL_GPL drivers/input/misc/adxl34x 0xe4586827 adxl34x_resume +EXPORT_SYMBOL_GPL drivers/input/touchscreen/cyttsp4_core 0x33a68686 cyttsp4_pm_ops +EXPORT_SYMBOL_GPL drivers/input/touchscreen/cyttsp4_core 0x479cbef5 cyttsp4_remove +EXPORT_SYMBOL_GPL drivers/input/touchscreen/cyttsp4_core 0x69afcece cyttsp4_probe +EXPORT_SYMBOL_GPL drivers/input/touchscreen/cyttsp_core 0x14908afa cyttsp_remove +EXPORT_SYMBOL_GPL drivers/input/touchscreen/cyttsp_core 0xb6cc94db cyttsp_probe +EXPORT_SYMBOL_GPL drivers/input/touchscreen/cyttsp_core 0xc6c8852a cyttsp_pm_ops +EXPORT_SYMBOL_GPL drivers/input/touchscreen/cyttsp_i2c_common 0x4aef484f cyttsp_i2c_read_block_data +EXPORT_SYMBOL_GPL drivers/input/touchscreen/cyttsp_i2c_common 0x57c72fea cyttsp_i2c_write_block_data +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x0099e191 wm97xx_get_gpio +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x0cd9e33e wm9713_codec +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x276b3827 wm97xx_reg_read +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x365f4812 wm97xx_config_gpio +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x94210bc2 wm97xx_set_suspend_mode +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xba6236ac wm97xx_set_gpio +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xc073e3a0 wm9712_codec +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xcc9e1dd4 wm97xx_unregister_mach_ops +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xd8bc3402 wm97xx_reg_write +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xddcdfefa wm9705_codec +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xfb7a1bb0 wm97xx_register_mach_ops +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xfcdf8fbf wm97xx_read_aux_adc +EXPORT_SYMBOL_GPL drivers/ipack/ipack 0x2d8cd516 ipack_driver_register +EXPORT_SYMBOL_GPL drivers/ipack/ipack 0x3373f5ce ipack_put_device +EXPORT_SYMBOL_GPL drivers/ipack/ipack 0x6b56e6bd ipack_device_init +EXPORT_SYMBOL_GPL drivers/ipack/ipack 0x765e6c51 ipack_driver_unregister +EXPORT_SYMBOL_GPL drivers/ipack/ipack 0x7abe0a06 ipack_device_del +EXPORT_SYMBOL_GPL drivers/ipack/ipack 0xa411047a ipack_bus_register +EXPORT_SYMBOL_GPL drivers/ipack/ipack 0xb3f1a89a ipack_get_device +EXPORT_SYMBOL_GPL drivers/ipack/ipack 0xc936928c ipack_device_add +EXPORT_SYMBOL_GPL drivers/ipack/ipack 0xe94bd034 ipack_bus_unregister +EXPORT_SYMBOL_GPL drivers/isdn/capi/kernelcapi 0x23359aff unregister_capictr_notifier +EXPORT_SYMBOL_GPL drivers/isdn/capi/kernelcapi 0xce1414b2 register_capictr_notifier +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x0dc9b939 gigaset_handle_modem_response +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x1b08407b gigaset_freecs +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x32b4414c gigaset_skb_rcvd +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x454aa44f gigaset_debuglevel +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x50bcb220 gigaset_blockdriver +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x59fba037 gigaset_m10x_input +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x711bb07d gigaset_freedriver +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x71a8bed3 gigaset_start +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x8766077c gigaset_if_receive +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x8b73bce8 gigaset_isdn_rcv_err +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x8bfa56d4 gigaset_m10x_send_skb +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x8eff32df gigaset_dbg_buffer +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x9a292cdc gigaset_skb_sent +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xa13da934 gigaset_initdriver +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xa52869b0 gigaset_add_event +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xb22e75d2 gigaset_stop +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xdd86ff89 gigaset_initcs +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xde48160a gigaset_fill_inbuf +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xeda3eb6b gigaset_shutdown +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0x08dd0d8f lp55xx_of_populate_pdata +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0x1ad4c010 lp55xx_init_device +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0x2e5daef3 lp55xx_write +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0x625c2ac3 lp55xx_register_sysfs +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0x98d50e02 lp55xx_unregister_sysfs +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0x9acaf368 lp55xx_deinit_device +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0x9e0881eb lp55xx_register_leds +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0xa2459bbe lp55xx_unregister_leds +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0xb6522995 lp55xx_is_extclk_used +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0xe1da066c lp55xx_read +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0xfc64eea9 lp55xx_update_bits +EXPORT_SYMBOL_GPL drivers/leds/trigger/ledtrig-camera 0x749e05f2 ledtrig_flash_ctrl +EXPORT_SYMBOL_GPL drivers/leds/trigger/ledtrig-camera 0x7903e46e ledtrig_torch_ctrl +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x10e06e97 __tracepoint_bcache_btree_set_root +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x155ea9c7 __tracepoint_bcache_bypass_sequential +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x1822fd23 __tracepoint_bcache_btree_gc_coalesce +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x19aff0ca __closure_lock +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x1f2ba9ac __tracepoint_bcache_journal_entry_full +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x260d47cf __tracepoint_bcache_btree_cache_cannibalize +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x27831e89 __tracepoint_bcache_journal_full +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x2dec45e0 __tracepoint_bcache_btree_write +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x347aebe1 __tracepoint_bcache_btree_node_free +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x3c190fc2 do_closure_timer_init +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x41c861f0 __tracepoint_bcache_alloc_fail +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x49856e5a __tracepoint_bcache_btree_node_compact +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x50e8c39f __tracepoint_bcache_write +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x574ba881 __tracepoint_bcache_btree_node_alloc +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x58685102 __closure_flush +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x5e6003f4 closure_put +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x628eb712 __tracepoint_bcache_btree_insert_key +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x6770a402 __tracepoint_bcache_gc_copy_collision +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x785cfc9f __tracepoint_bcache_gc_end +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x7b488fb1 __tracepoint_bcache_alloc_invalidate +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x91f2af34 __tracepoint_bcache_btree_node_alloc_fail +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xa09069a3 __tracepoint_bcache_writeback_collision +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xa591c5d6 __tracepoint_bcache_read +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xa6890b59 __tracepoint_bcache_btree_read +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xadfbb882 closure_sub +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xae26329e closure_trylock +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xaf544245 __closure_flush_sync +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xaf60c34b __tracepoint_bcache_journal_write +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xb950d2ae __tracepoint_bcache_request_start +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xbd4b89b6 __tracepoint_bcache_btree_node_split +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xce0e6218 __tracepoint_bcache_gc_copy +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xd0f96be9 __closure_delay +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xd40fba32 __tracepoint_bcache_gc_start +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xd9ea8347 closure_wait +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xdc5ea5a5 __tracepoint_bcache_cache_insert +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xe173fc7e closure_queue +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xe3c17af1 __closure_wake_up +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xf58ce244 __tracepoint_bcache_journal_replay_key +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xf5bcbdc7 __tracepoint_bcache_read_retry +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xfc1d5275 __tracepoint_bcache_writeback +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xfcdf28c9 __tracepoint_bcache_request_end +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xffa0b4ba closure_sync +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xffc308e4 __tracepoint_bcache_bypass_congested +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x17dd39d6 dm_deferred_set_create +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x2eb01e04 dm_deferred_set_destroy +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x4f170e19 dm_cell_error +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x6791a44e dm_deferred_entry_dec +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x695972fa dm_bio_detain +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x6cead2dd dm_bio_prison_alloc_cell +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0xa376adbf dm_cell_release_no_holder +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0xae4b803d dm_bio_prison_free_cell +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0xb6d5c65d dm_deferred_set_add_work +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0xb70b342a dm_bio_prison_destroy +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0xca2e3a88 dm_deferred_entry_inc +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0xe2193a0c dm_cell_release +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0xebd06eaf dm_bio_prison_create +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0xed74616d dm_get_cell +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x0ad0dc4f dm_bufio_mark_buffer_dirty +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x22163b69 dm_bufio_release_move +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x3909d3a8 dm_bufio_prefetch +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x594952bd dm_bufio_read +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x62a23587 dm_bufio_get_device_size +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x6d3f57bd dm_bufio_get_client +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x74dcd98c dm_bufio_get_aux_data +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x7c381a76 dm_bufio_get_block_size +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x9b2b253a dm_bufio_get +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0xa82b2066 dm_bufio_write_dirty_buffers +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0xbcf5a4e1 dm_bufio_client_create +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0xc9a3422d dm_bufio_write_dirty_buffers_async +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0xd4bddf5c dm_bufio_issue_flush +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0xdc69e37a dm_bufio_get_block_number +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0xe004ee92 dm_bufio_new +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0xe6024e59 dm_bufio_release +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0xebcc64a4 dm_bufio_get_block_data +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0xeca7949e dm_bufio_client_destroy +EXPORT_SYMBOL_GPL drivers/md/dm-cache 0x2c526482 dm_cache_policy_destroy +EXPORT_SYMBOL_GPL drivers/md/dm-cache 0x2ca93848 dm_cache_policy_unregister +EXPORT_SYMBOL_GPL drivers/md/dm-cache 0x56fa5c6b dm_cache_policy_register +EXPORT_SYMBOL_GPL drivers/md/dm-cache 0xabe13f88 dm_cache_policy_get_version +EXPORT_SYMBOL_GPL drivers/md/dm-cache 0xb2311ee0 dm_cache_policy_get_hint_size +EXPORT_SYMBOL_GPL drivers/md/dm-cache 0xb4504fb0 dm_cache_policy_create +EXPORT_SYMBOL_GPL drivers/md/dm-cache 0xc2fb4b6a dm_cache_policy_get_name +EXPORT_SYMBOL_GPL drivers/md/dm-multipath 0x82a31fe9 dm_unregister_path_selector +EXPORT_SYMBOL_GPL drivers/md/dm-multipath 0x94a519e0 dm_register_path_selector +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x01d2f9ac dm_rh_recovery_start +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x09472122 dm_rh_dec +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x0ed3c3db dm_rh_bio_to_region +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x38efaf5a dm_region_hash_destroy +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x3a18389a dm_rh_update_states +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x56b6c8db dm_region_hash_create +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x7774620f dm_rh_stop_recovery +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x7d053fc5 dm_rh_start_recovery +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x9cb0d441 dm_rh_dirty_log +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xa53387c7 dm_rh_flush +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xa83588eb dm_rh_recovery_end +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xa8813ad6 dm_rh_region_to_sector +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xbe38a431 dm_rh_recovery_prepare +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xc66ce277 dm_rh_get_region_size +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xc8cb8084 dm_rh_delay +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xcab63c3d dm_rh_get_state +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xcca685a7 dm_rh_inc_pending +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xd6706dcc dm_rh_mark_nosync +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xd8aa4284 dm_rh_region_context +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xf37a3cfe dm_rh_get_region_key +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xfd93482e dm_rh_recovery_in_flight +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x0054f69d dm_tm_pre_commit +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x01445176 dm_btree_find_highest_key +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x11eab9fe dm_bm_read_lock +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x150c85ce dm_tm_open_with_sm +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x1cac81ac dm_bitset_clear_bit +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x1e3f728d dm_block_data +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x2025e954 dm_array_info_init +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x2c112836 dm_block_location +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x2e730a21 dm_bm_checksum +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x2f74609d dm_bitset_test_bit +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x32b5f546 dm_array_empty +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x33c03da6 dm_sm_disk_open +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x371fd72c dm_bm_flush_and_unlock +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x38c75c44 dm_bitset_empty +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x40f7bd91 dm_tm_inc +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x5e6aea80 dm_btree_walk +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x619701dc dm_sm_disk_create +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x62c1b9ee dm_array_walk +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x688d422d dm_bm_block_size +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x68fae9d2 dm_disk_bitset_init +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x72289260 dm_block_manager_destroy +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x7ade1071 dm_tm_destroy +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x7b047bd9 dm_tm_create_non_blocking_clone +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x80c89b3d dm_tm_unlock +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x832bf228 dm_array_del +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x858c8d94 dm_array_set_value +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x89f1e1cc dm_btree_insert_notify +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x966a8838 dm_btree_lookup +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x9b4b5b29 dm_bm_write_lock +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x9e798e22 dm_bm_set_read_only +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xa0bbbb49 dm_bitset_resize +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xa13861b4 dm_bitset_del +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xa2507774 dm_tm_shadow_block +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xa2c331a4 dm_block_manager_create +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xa87c5b4d dm_array_resize +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xaee02382 dm_btree_empty +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xb7bad799 dm_bm_unlock +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xb9a6ecf8 dm_tm_dec +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xbcfdc290 dm_tm_read_lock +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xbd50ebbb dm_btree_del +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xbe0497aa dm_tm_create_with_sm +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xca40abd5 dm_btree_insert +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xd041d62b dm_array_get_value +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xd163cade dm_tm_commit +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xe44b4b9b dm_bitset_set_bit +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xead1e727 dm_bm_write_lock_zero +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xed1e1f96 dm_btree_remove +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xf475af48 dm_bitset_flush +EXPORT_SYMBOL_GPL drivers/md/raid1 0x98fff306 md_raid1_congested +EXPORT_SYMBOL_GPL drivers/md/raid10 0x1d1c6094 md_raid10_congested +EXPORT_SYMBOL_GPL drivers/md/raid456 0xa192ca87 md_raid5_congested +EXPORT_SYMBOL_GPL drivers/media/common/b2c2/b2c2-flexcop 0x66c0289a b2c2_flexcop_debug +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0x0076f3ac saa7146_pgtable_free +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0x0101733a saa7146_vmalloc_build_pgtable +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0x71409b68 saa7146_pgtable_build_single +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0x79de3cea saa7146_i2c_adapter_prepare +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0x9efdc210 saa7146_wait_for_debi_done +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0xd1772672 saa7146_vfree_destroy_pgtable +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0xdb630596 saa7146_setgpio +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0xe363471d saa7146_unregister_extension +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0xe3cd9b5c saa7146_debug +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0xe6ec749d saa7146_pgtable_alloc +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0xfb04c992 saa7146_register_extension +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146_vv 0x0de14165 saa7146_start_preview +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146_vv 0x2904a714 saa7146_unregister_device +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146_vv 0x40eeca55 saa7146_set_hps_source_and_sync +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146_vv 0x49463e9d saa7146_vv_init +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146_vv 0x93a03af3 saa7146_register_device +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146_vv 0xa11fa6aa saa7146_vv_release +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146_vv 0xeb6caef7 saa7146_stop_preview +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x0c7ad45e sms_board_lna_control +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x1108d729 sms_board_setup +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x1d0973fa smscore_get_device_mode +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x21e36bf2 smscore_registry_getmode +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x2606de2b smscore_putbuffer +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x37d91069 smsendian_handle_tx_message +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x45284ae9 smsendian_handle_rx_message +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x520b0eaa smscore_start_device +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x59316057 smscore_register_hotplug +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x63222b29 smsclient_sendrequest +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x6ac35227 smscore_register_device +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x74ee9098 sms_board_load_modules +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x7be27c0c sms_board_power +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x7c576277 smsendian_handle_message_header +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x820a1aac smscore_register_client +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x844539ae sms_get_board +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x929df2f6 smscore_getbuffer +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x9c2225ed smscore_translate_msg +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0xaca8b4ee smscore_get_board_id +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0xb5fcfca2 smscore_unregister_device +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0xbbdb5c42 smscore_unregister_client +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0xc7ebe4f8 smscore_set_board_id +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0xd461673a sms_board_event +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0xdaf80fa8 smscore_unregister_hotplug +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0xe77cd2de sms_board_led_feedback +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0xeec8e466 smscore_onresponse +EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/tda18271c2dd 0xe255cd49 tda18271c2dd_attach +EXPORT_SYMBOL_GPL drivers/media/pci/cx88/cx88xx 0xf4e89d9b cx88_setup_xc3028 +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x0000dc21 mantis_ca_init +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x02064701 mantis_ca_exit +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x0fbc0cb2 mantis_pci_exit +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x1a4ce7cf mantis_stream_control +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x46574e8a mantis_uart_init +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x6c167070 mantis_uart_exit +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x81cc21d8 mantis_i2c_init +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x8355953f mantis_frontend_soft_reset +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x88831674 mantis_i2c_exit +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x8b388e28 mantis_gpio_set_bits +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x918ca5ff mantis_get_mac +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0xa2924f78 mantis_dma_exit +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0xa4de1f8a mantis_dvb_init +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0xa83725d9 mantis_frontend_power +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0xabdd78d4 mantis_dma_init +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0xad912826 mantis_dvb_exit +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0xf2486d7a mantis_pci_init +EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0x4824a5ac saa7134_s_std_internal +EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0x50251852 saa7134_g_ctrl_internal +EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0x554ab376 saa7134_queryctrl +EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0x9e9d3155 saa7134_s_ctrl_internal +EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0xe446afa6 saa7134_ts_qops +EXPORT_SYMBOL_GPL drivers/media/pci/ttpci/budget-core 0x1f501d79 ttpci_budget_init_hooks +EXPORT_SYMBOL_GPL drivers/media/pci/ttpci/budget-core 0x37609321 ttpci_budget_set_video_port +EXPORT_SYMBOL_GPL drivers/media/pci/ttpci/budget-core 0x7948c222 budget_debug +EXPORT_SYMBOL_GPL drivers/media/pci/ttpci/budget-core 0x7be82212 ttpci_budget_debiread +EXPORT_SYMBOL_GPL drivers/media/pci/ttpci/budget-core 0x90c00367 ttpci_budget_irq10_handler +EXPORT_SYMBOL_GPL drivers/media/pci/ttpci/budget-core 0xafd896ec ttpci_budget_init +EXPORT_SYMBOL_GPL drivers/media/pci/ttpci/budget-core 0xf2cfc0b2 ttpci_budget_debiwrite +EXPORT_SYMBOL_GPL drivers/media/pci/ttpci/budget-core 0xfd4381a6 ttpci_budget_deinit +EXPORT_SYMBOL_GPL drivers/media/platform/omap/omap-vout 0x090b7ab2 omap_vout_default_crop +EXPORT_SYMBOL_GPL drivers/media/platform/omap/omap-vout 0x3f08714d omap_vout_try_window +EXPORT_SYMBOL_GPL drivers/media/platform/omap/omap-vout 0x87006df4 omap_vout_new_window +EXPORT_SYMBOL_GPL drivers/media/platform/omap/omap-vout 0xd5aa61c6 omap_vout_new_format +EXPORT_SYMBOL_GPL drivers/media/platform/omap/omap-vout 0xe168e379 omap_vout_new_crop +EXPORT_SYMBOL_GPL drivers/media/radio/shark2 0x7577728c radio_tea5777_init +EXPORT_SYMBOL_GPL drivers/media/radio/shark2 0xb57ddbe8 radio_tea5777_exit +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x020ba74a rc_keydown +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x06e52100 rc_keyup +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x1f06b3d1 rc_register_device +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x318dbfef rc_unregister_device +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x4f6471c9 rc_map_unregister +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x553efb91 rc_core_debug +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x5bd46312 rc_repeat +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x66aa5041 rc_g_keycode_from_table +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x80054539 ir_raw_event_handle +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x85fff5a2 ir_raw_event_store_edge +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x88c29ad4 rc_map_get +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x995ab9e7 rc_keydown_notimeout +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x9d376238 rc_map_register +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xc71af715 ir_raw_event_store +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xca6a56a2 rc_allocate_device +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xd8d7c4cc ir_raw_event_set_idle +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xda9ee99b ir_raw_event_store_with_filter +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xfac5280f rc_free_device +EXPORT_SYMBOL_GPL drivers/media/tuners/mt2063 0x22fc01b4 mt2063_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/mt20xx 0xe8f9359f microtune_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/mxl5007t 0xfac6f8a2 mxl5007t_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/r820t 0x21a968ae r820t_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/tda18271 0x9aeab0e1 tda18271_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/tda827x 0xb0aa2be8 tda827x_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/tda8290 0x8785e591 tda829x_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/tda8290 0xc07c6ae2 tda829x_probe +EXPORT_SYMBOL_GPL drivers/media/tuners/tda9887 0x6c004d50 tda9887_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/tea5761 0x1bc69b63 tea5761_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/tea5761 0x55f60d65 tea5761_autodetection +EXPORT_SYMBOL_GPL drivers/media/tuners/tea5767 0x4644aeed tea5767_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/tea5767 0x91b91d89 tea5767_autodetection +EXPORT_SYMBOL_GPL drivers/media/tuners/tuner-simple 0xfa2730c0 simple_tuner_attach +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x017ea7c7 cx231xx_tuner_callback +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x1fc6b325 cx231xx_unmute_audio +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x23aa6680 cx231xx_demod_reset +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x24d55c43 cx231xx_init_isoc +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x2643e6e3 cx231xx_init_bulk +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x2ff3ea5f cx231xx_capture_start +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x5590febe cx231xx_send_gpio_cmd +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x56ecb285 cx231xx_init_vbi_isoc +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x625ce15c is_fw_load +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x6336b159 cx231xx_uninit_vbi_isoc +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x7057747c cx231xx_dev_uninit +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x842eb2c1 cx231xx_dev_init +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x967fe954 cx231xx_disable656 +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x99d44be7 cx231xx_send_usb_command +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0xb3fccc7e cx231xx_enable656 +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0xbc966dff cx231xx_enable_i2c_port_3 +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0xcaec9c47 cx231xx_set_mode +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0xcdb72e0d cx231xx_uninit_bulk +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0xee0dd16a cx231xx_uninit_isoc +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0xfb86d797 cx231xx_set_alt_setting +EXPORT_SYMBOL_GPL drivers/media/usb/dvb-usb-v2/mxl111sf-demod 0xd7c5f82f mxl111sf_demod_attach +EXPORT_SYMBOL_GPL drivers/media/usb/dvb-usb-v2/mxl111sf-tuner 0x8e337fda mxl111sf_tuner_attach +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x0c738719 em28xx_audio_setup +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x11c98d90 em28xx_audio_analog_set +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x30501c86 em28xx_write_regs +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x32ddd63a em28xx_write_reg +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x3a13b251 em28xx_uninit_usb_xfer +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x5c62154b em28xx_init_usb_xfer +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x5d7c9109 em28xx_stop_urbs +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x682c88d1 em28xx_alloc_urbs +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x7ee53b24 em28xx_set_mode +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x7fc8652c em28xx_tuner_callback +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x8c651d65 em28xx_read_reg +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0xb6a3a5b0 em28xx_write_ac97 +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0xcc487019 em28xx_read_ac97 +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0xe9d50dc5 em28xx_gpio_set +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0xefad93f8 em28xx_write_reg_bits +EXPORT_SYMBOL_GPL drivers/media/usb/tm6000/tm6000 0x2309a6d6 tm6000_xc5000_callback +EXPORT_SYMBOL_GPL drivers/media/usb/tm6000/tm6000 0x27de5a85 tm6000_set_reg_mask +EXPORT_SYMBOL_GPL drivers/media/usb/tm6000/tm6000 0x8554a441 tm6000_set_audio_bitrate +EXPORT_SYMBOL_GPL drivers/media/usb/tm6000/tm6000 0x89b611dd tm6000_debug +EXPORT_SYMBOL_GPL drivers/media/usb/tm6000/tm6000 0xdff8e89d tm6000_tuner_callback +EXPORT_SYMBOL_GPL drivers/media/usb/tm6000/tm6000 0xe0fa6037 tm6000_get_reg +EXPORT_SYMBOL_GPL drivers/media/usb/tm6000/tm6000 0xebe30bfe tm6000_set_reg +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-common 0x01c483a9 v4l2_get_timestamp +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-common 0x065179fc v4l2_i2c_subdev_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-common 0x39751c55 v4l2_i2c_new_subdev +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-common 0x53105839 v4l2_detect_cvt +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-common 0x5d9d3491 v4l_match_dv_timings +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-common 0x62addffe v4l2_i2c_new_subdev_board +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-common 0x6f344bb9 v4l2_calc_aspect_ratio +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-common 0x76b6443e v4l2_spi_new_subdev +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-common 0x7eaf8e7a v4l2_detect_gtf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-common 0x813f3de4 v4l2_find_nearest_format +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-common 0xd682694f v4l2_i2c_subdev_addr +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-common 0xdfccd606 v4l2_spi_subdev_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-common 0xf2a353ac v4l2_i2c_tuner_addrs +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-common 0xf5ef842e v4l_bound_align_image +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-int-device 0x26b29409 v4l2_int_device_register +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-int-device 0x74cd8146 v4l2_int_ioctl_0 +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-int-device 0x8ad14343 v4l2_int_ioctl_1 +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-int-device 0xa5228b24 v4l2_int_device_try_attach_all +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-int-device 0xb5f231ea v4l2_int_device_unregister +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x11cb8c5a v4l2_m2m_ctx_release +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x17eb0eee v4l2_m2m_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x32dcc467 v4l2_m2m_streamoff +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x333c5a62 v4l2_m2m_querybuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x3d7a1354 v4l2_m2m_buf_queue +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x4f1de056 v4l2_m2m_buf_remove +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x4f7e2b3f v4l2_m2m_next_buf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x5eeba92e v4l2_m2m_reqbufs +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x8df40928 v4l2_m2m_expbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x90631e2b v4l2_m2m_streamon +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0xa2bd3e5b v4l2_m2m_create_bufs +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0xab497dc4 v4l2_m2m_dqbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0xb88a7049 v4l2_m2m_poll +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0xc48d1eca v4l2_m2m_ctx_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0xc6fca5ad v4l2_m2m_release +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0xcc6fca8b v4l2_m2m_qbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x237b0289 __videobuf_mmap_setup +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x2562cf42 videobuf_queue_core_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x2ce97556 videobuf_reqbufs +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x32b8a4b2 videobuf_next_field +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x4c62dc9f videobuf_queue_is_busy +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x4fa3b25b videobuf_qbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x59a4ed0e videobuf_poll_stream +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x5e6bc111 videobuf_mmap_setup +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x69588671 videobuf_dqbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x6e1609e1 videobuf_mmap_free +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x721f6695 videobuf_iolock +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x7e640f07 videobuf_alloc_vb +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x8d4af35b videobuf_waiton +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x99a769c1 videobuf_stop +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0xa852bcd9 videobuf_streamoff +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0xa8c03e93 videobuf_mmap_mapper +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0xbc4eaa5d videobuf_read_stop +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0xbe0f26a4 videobuf_read_start +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0xbe27e6a7 videobuf_querybuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0xc0aefcc9 videobuf_streamon +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0xdb03acd6 videobuf_read_stream +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0xde8c9190 videobuf_queue_to_vaddr +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0xedf62880 videobuf_queue_cancel +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0xf4bd6f97 videobuf_read_one +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-contig 0x21bca543 videobuf_dma_contig_free +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-contig 0x36b4a362 videobuf_to_dma_contig +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-contig 0x7dd63a93 videobuf_queue_dma_contig_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-sg 0x0d83c46f videobuf_dma_init_kernel +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-sg 0x12598ac7 videobuf_dma_unmap +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-sg 0x12720d49 videobuf_queue_sg_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-sg 0x45a2b18b videobuf_dma_free +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-sg 0x89fb4362 videobuf_dma_init_overlay +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-sg 0x9dfae968 videobuf_dma_init_user +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-sg 0xa825c75b videobuf_sg_alloc +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-sg 0xcebd439e videobuf_dma_map +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-sg 0xd477c45f videobuf_dma_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-sg 0xe972f7ac videobuf_to_dma +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-vmalloc 0x2d484451 videobuf_queue_vmalloc_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-vmalloc 0x9eb98489 videobuf_vmalloc_free +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-vmalloc 0xf59c0199 videobuf_to_vmalloc +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x0f75d22e vb2_mmap +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x10263bb2 vb2_ioctl_reqbufs +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x10fcaded vb2_queue_release +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x1e035a5b vb2_buffer_done +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x22bdebff vb2_ioctl_querybuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x2b2f2932 vb2_wait_for_all_buffers +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x2d14dee3 vb2_streamoff +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x33975f1a vb2_ops_wait_prepare +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x3ec05198 vb2_fop_release +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x4ad44acd vb2_reqbufs +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x518f4ea8 vb2_plane_vaddr +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x51c04716 vb2_ioctl_prepare_buf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x556e178d vb2_fop_mmap +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x69df4e2c vb2_streamon +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x6bd4bcf8 vb2_ioctl_expbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x6e9d1104 vb2_ioctl_streamoff +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x7710a69a vb2_fop_write +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x7db51834 vb2_ioctl_streamon +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x7e73e50c vb2_ops_wait_finish +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x7ecc0af8 vb2_fop_read +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x81d86d21 vb2_ioctl_dqbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x8338dfc4 vb2_dqbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x86415004 vb2_plane_cookie +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x8756944d vb2_ioctl_qbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x8d08c86d vb2_read +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x8e65bdfd vb2_poll +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0xa40349d8 vb2_create_bufs +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0xb265bedc vb2_fop_poll +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0xce3ea64c vb2_expbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0xdce80367 vb2_qbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0xe7fec3d9 vb2_queue_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0xf0214c28 vb2_ioctl_create_bufs +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0xf093739f vb2_write +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0xffde1c1b vb2_prepare_buf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-dma-contig 0x3d2fbdfd vb2_dma_contig_memops +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-dma-contig 0x8091c8eb vb2_dma_contig_init_ctx +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-dma-contig 0xe57f0426 vb2_dma_contig_cleanup_ctx +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-dma-sg 0x5d0b5d7d vb2_dma_sg_memops +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-memops 0x2a195607 vb2_get_contig_userptr +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-memops 0xc3405934 vb2_common_vm_ops +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-memops 0xca4ffd53 vb2_get_vma +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-memops 0xf3337822 vb2_put_vma +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-vmalloc 0x57347ce1 vb2_vmalloc_memops +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x02b10034 v4l2_event_subscribe +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x03ec56c7 v4l2_device_disconnect +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x07961049 v4l2_fh_exit +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x1b119f5e v4l2_event_queue_fh +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x268c9abb v4l2_event_queue +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x29b67ad1 v4l2_fh_add +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x31e838e5 v4l2_device_set_name +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x342d2b01 v4l2_event_pending +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x45f24351 v4l2_fh_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x4a7781b1 v4l2_fh_open +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x57418570 v4l2_fh_del +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x5ef7a926 v4l2_fh_release +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x65129b67 v4l2_device_put +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x8129af7b v4l2_device_register_subdev +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x85917d4b v4l2_device_register +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x877b9e08 v4l2_event_unsubscribe +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x8d6b5734 v4l2_device_unregister +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x96d4301a v4l2_device_register_subdev_nodes +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xc66c26e5 v4l2_event_unsubscribe_all +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xc9a3f59e v4l2_device_unregister_subdev +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xdc5afa04 v4l2_event_dequeue +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xe25a5170 v4l2_event_subdev_unsubscribe +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xff088188 v4l2_fh_is_singular +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x096cb09f i2o_sg_tablesize +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x48cc0eec i2o_dma_free +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0xb77eb6a6 i2o_dma_alloc +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0xc134b2ee i2o_pool_alloc +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0xc56d3a75 i2o_dma_map_single +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0xc6f33004 i2o_dma_map_sg +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0xc7cfbb79 i2o_pool_free +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0xe2b6729e i2o_dma_realloc +EXPORT_SYMBOL_GPL drivers/mfd/88pm80x 0x1774b7ac pm80x_pm_ops +EXPORT_SYMBOL_GPL drivers/mfd/88pm80x 0x659afea0 pm80x_init +EXPORT_SYMBOL_GPL drivers/mfd/88pm80x 0xd99fd720 pm80x_deinit +EXPORT_SYMBOL_GPL drivers/mfd/88pm80x 0xf8e01248 pm80x_regmap_config +EXPORT_SYMBOL_GPL drivers/mfd/kempld-core 0x0c379b20 kempld_read32 +EXPORT_SYMBOL_GPL drivers/mfd/kempld-core 0x303b6edd kempld_read8 +EXPORT_SYMBOL_GPL drivers/mfd/kempld-core 0x37034b9a kempld_read16 +EXPORT_SYMBOL_GPL drivers/mfd/kempld-core 0x4072bdf4 kempld_write16 +EXPORT_SYMBOL_GPL drivers/mfd/kempld-core 0x77572eff kempld_write8 +EXPORT_SYMBOL_GPL drivers/mfd/kempld-core 0xa4af0064 kempld_release_mutex +EXPORT_SYMBOL_GPL drivers/mfd/kempld-core 0xb997b889 kempld_get_mutex +EXPORT_SYMBOL_GPL drivers/mfd/kempld-core 0xd98da9ed kempld_write32 +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-core 0x29a092c3 lm3533_read +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-core 0x4c9f0385 lm3533_update +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-core 0xda475db7 lm3533_write +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-ctrlbank 0x04d16f3b lm3533_ctrlbank_set_max_current +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-ctrlbank 0x051089e5 lm3533_ctrlbank_get_pwm +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-ctrlbank 0x0d8d765c lm3533_ctrlbank_disable +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-ctrlbank 0x635ba8d5 lm3533_ctrlbank_set_pwm +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-ctrlbank 0x8dcac273 lm3533_ctrlbank_set_brightness +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-ctrlbank 0x91f7af43 lm3533_ctrlbank_enable +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-ctrlbank 0xdf0c6ec8 lm3533_ctrlbank_get_brightness +EXPORT_SYMBOL_GPL drivers/mfd/mc13xxx-core 0x4de18780 mc13xxx_common_init +EXPORT_SYMBOL_GPL drivers/mfd/mc13xxx-core 0x8d825c52 mc13xxx_variant_mc34708 +EXPORT_SYMBOL_GPL drivers/mfd/mc13xxx-core 0x9f8da93a mc13xxx_variant_mc13783 +EXPORT_SYMBOL_GPL drivers/mfd/mc13xxx-core 0xcc0f7e2c mc13xxx_common_cleanup +EXPORT_SYMBOL_GPL drivers/mfd/mc13xxx-core 0xd9c55d31 mc13xxx_adc_do_conversion +EXPORT_SYMBOL_GPL drivers/mfd/mc13xxx-core 0xdf37e21a mc13xxx_variant_mc13892 +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x0ee7f379 pcf50633_reg_clear_bits +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x12cb6b4e pcf50633_write_block +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x33ed8182 pcf50633_irq_mask +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x7a654e87 pcf50633_reg_write +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x85153d9c pcf50633_register_irq +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x8b45d482 pcf50633_free_irq +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x8d0acd99 pcf50633_irq_mask_get +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x952e8b5e pcf50633_reg_set_bit_mask +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xadb25487 pcf50633_reg_read +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xd86075e2 pcf50633_irq_unmask +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xe0e0751e pcf50633_read_block +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-adc 0x6de7dc05 pcf50633_adc_async_read +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-adc 0x8ccc91bf pcf50633_adc_sync_read +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0x2d1d9aca pcf50633_gpio_power_supply_set +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0x3f2c53b3 pcf50633_gpio_invert_get +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0x9450efa3 pcf50633_gpio_invert_set +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0x990ecb5b pcf50633_gpio_get +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0xd47a9a52 pcf50633_gpio_set +EXPORT_SYMBOL_GPL drivers/mfd/retu-mfd 0x01a33234 retu_write +EXPORT_SYMBOL_GPL drivers/mfd/retu-mfd 0x4fca3918 retu_read +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0x0482b449 rtsx_pci_card_pull_ctl_disable +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0x071f5b91 rtsx_pci_write_ppbuf +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0x149f60cd rtsx_pci_stop_cmd +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0x24d91cbf rtsx_pci_add_cmd +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0x2de2e432 rtsx_pci_switch_output_voltage +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0x2e25d975 rtsx_pci_write_register +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0x40ebd7b3 rtsx_pci_card_exist +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0x54db814c rtsx_pci_complete_unfinished_transfer +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0x6042ff38 rtsx_pci_send_cmd_no_wait +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0x60c7009f rtsx_pci_start_run +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0x77d7b73e rtsx_pci_read_phy_register +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0x7928020c rtsx_pci_card_exclusive_check +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0x7df72505 rtsx_pci_read_register +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0x8a9dd36a rtsx_pci_read_ppbuf +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0x8b8ff6bf rtsx_pci_card_pull_ctl_enable +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0xa362222d rtsx_pci_transfer_data +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0xac81b53a rtsx_pci_send_cmd +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0xafdd2b59 rtsx_pci_card_power_off +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0xb72f39bf rtsx_pci_switch_clock +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0xba6f2671 rtsx_pci_card_power_on +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0xd2e53110 rtsx_pci_write_phy_register +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x061e6a0f si476x_core_cmd_am_seek_start +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x09daffb6 si476x_core_stop +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x11de7033 si476x_core_cmd_ic_link_gpo_ctl_pin_cfg +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x1c46a754 si476x_core_cmd_fm_rds_blockcount +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x289f4c2a si476x_core_cmd_ana_audio_pin_cfg +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x2d1983c4 si476x_core_cmd_fm_seek_start +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x2ed56fc8 si476x_core_cmd_power_up +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x3cef035a si476x_core_is_powered_up +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x45e6ccd2 si476x_core_cmd_fm_tune_freq +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x56b0b217 si476x_core_set_power_state +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x667dcefd si476x_core_cmd_fm_acf_status +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x70fbc09c si476x_core_cmd_zif_pin_cfg +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x710dfd50 si476x_core_cmd_fm_phase_div_status +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x77c0e09f si476x_core_cmd_fm_rds_status +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x7e3702c7 si476x_core_cmd_power_down +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x83640711 si476x_core_has_am +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x95c2a7db si476x_core_cmd_set_property +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x998e4c77 si476x_core_cmd_fm_rsq_status +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x9f690428 si476x_core_cmd_dig_audio_pin_cfg +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xa2b6fdd0 si476x_core_has_diversity +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xa307c89e si476x_core_cmd_get_property +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xac78d337 si476x_core_start +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xbbfb5d66 si476x_core_cmd_fm_phase_diversity +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xbcab36b2 si476x_core_cmd_am_tune_freq +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xc1e1c723 si476x_core_is_in_am_receiver_mode +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xccc796ae si476x_core_is_a_secondary_tuner +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xd057f035 si476x_core_cmd_agc_status +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xd3e6c77b si476x_core_cmd_am_rsq_status +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xe15af120 si476x_core_cmd_am_acf_status +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xe393dcb8 si476x_core_cmd_func_info +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xeb524c7e devm_regmap_init_si476x +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xf3cbbbde si476x_core_is_a_primary_tuner +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xfc27e741 si476x_core_i2c_xfer +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xfe811c50 si476x_core_cmd_intb_pin_cfg +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x2c9f2df6 sm501_misc_control +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x51868e0f sm501_modify_reg +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0xc3087a74 sm501_unit_power +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0xe0c778f9 sm501_set_clock +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0xefb54b23 sm501_find_clock +EXPORT_SYMBOL_GPL drivers/mfd/ti_am335x_tscadc 0x32361296 am335x_tsc_se_update +EXPORT_SYMBOL_GPL drivers/mfd/ti_am335x_tscadc 0x3e962d1b am335x_tsc_se_set +EXPORT_SYMBOL_GPL drivers/mfd/ti_am335x_tscadc 0x47efa3b8 am335x_tsc_se_clr +EXPORT_SYMBOL_GPL drivers/mfd/tps65217 0x62e73570 tps65217_reg_read +EXPORT_SYMBOL_GPL drivers/mfd/tps65217 0x8436b10c tps65217_clear_bits +EXPORT_SYMBOL_GPL drivers/mfd/tps65217 0x950573fd tps65217_reg_write +EXPORT_SYMBOL_GPL drivers/mfd/tps65217 0xaa5fdc1a tps65217_set_bits +EXPORT_SYMBOL_GPL drivers/mfd/twl4030-madc 0x4362dc66 twl4030_get_madc_conversion +EXPORT_SYMBOL_GPL drivers/mfd/twl4030-madc 0x9effbf1a twl4030_madc_conversion +EXPORT_SYMBOL_GPL drivers/mfd/ucb1400_core 0xff0786ca ucb1400_adc_read +EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0x35d3c565 cb710_sg_dwiter_write_next_block +EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0x874976c3 cb710_set_irq_handler +EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0x991919c0 cb710_pci_update_config_reg +EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0xb3757a20 cb710_sg_dwiter_read_next_block +EXPORT_SYMBOL_GPL drivers/misc/eeprom/eeprom_93cx6 0x27cb133b eeprom_93cx6_multiread +EXPORT_SYMBOL_GPL drivers/misc/eeprom/eeprom_93cx6 0x63d2ff63 eeprom_93cx6_wren +EXPORT_SYMBOL_GPL drivers/misc/eeprom/eeprom_93cx6 0x822222db eeprom_93cx6_write +EXPORT_SYMBOL_GPL drivers/misc/eeprom/eeprom_93cx6 0x98bb5a22 eeprom_93cx6_read +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x068479b5 enclosure_remove_device +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x62b9f775 enclosure_unregister +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x8a0e7fc9 enclosure_for_each_device +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0xa263a8c7 enclosure_find +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0xb7fa877c enclosure_add_device +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0xcf57f286 enclosure_register +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0xe3dc56b4 enclosure_component_register +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0x3f749c63 lis3_dev +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0x4105ac2b lis3lv02d_poweroff +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0x527ee056 lis3lv02d_remove_fs +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0x5a22954d lis3lv02d_init_dt +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0xa7573b30 lis3lv02d_poweron +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0xb6d1d112 lis3lv02d_init_device +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0xc1af8a9d lis3lv02d_joystick_disable +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0xeccb50e7 lis3lv02d_joystick_enable +EXPORT_SYMBOL_GPL drivers/misc/ti-st/st_drv 0x9dcdd96e st_unregister +EXPORT_SYMBOL_GPL drivers/misc/ti-st/st_drv 0xe573fed8 st_register +EXPORT_SYMBOL_GPL drivers/mmc/host/dw_mmc-pltfm 0x11a3b94c dw_mci_pltfm_register +EXPORT_SYMBOL_GPL drivers/mmc/host/dw_mmc-pltfm 0x743640da dw_mci_pltfm_pmops +EXPORT_SYMBOL_GPL drivers/mmc/host/dw_mmc-pltfm 0xe1007616 dw_mci_pltfm_remove +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0001 0x2551e16d cfi_cmdset_0200 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0001 0xd84fc4fb cfi_cmdset_0003 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0001 0xe766e113 cfi_cmdset_0001 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0002 0x178967f0 cfi_cmdset_0006 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0002 0x69db2c20 cfi_cmdset_0002 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0002 0x9a22e3a6 cfi_cmdset_0701 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0020 0x561c3088 cfi_cmdset_0020 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_util 0x4f21d79b cfi_qry_mode_off +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_util 0xacdd24d2 cfi_qry_mode_on +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_util 0xd6372957 cfi_qry_present +EXPORT_SYMBOL_GPL drivers/mtd/nand/sm_common 0xf58e518f sm_register_device +EXPORT_SYMBOL_GPL drivers/mtd/onenand/onenand 0x4391f35d onenand_scan +EXPORT_SYMBOL_GPL drivers/mtd/onenand/onenand 0x47afaaef onenand_release +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x060f139c ubi_open_volume_path +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x08106c6c ubi_open_volume +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x2b2cff10 ubi_close_volume +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x38e10c1d ubi_flush +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x42801d20 ubi_sync +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x446310f2 ubi_leb_erase +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x5cfdd22d ubi_get_device_info +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x64010261 ubi_leb_write +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x725ee78f ubi_get_volume_info +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x7265d8af ubi_open_volume_nm +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x85a8ee76 ubi_unregister_volume_notifier +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x8cac50d2 ubi_is_mapped +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xc549fe9b ubi_leb_unmap +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xc7a85904 ubi_leb_change +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xcd92b37b ubi_do_get_device_info +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xdb5b94fe ubi_leb_map +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xe765780c ubi_leb_read +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xf5ee9ba8 ubi_register_volume_notifier +EXPORT_SYMBOL_GPL drivers/net/can/c_can/c_can 0x0951f8e5 c_can_power_up +EXPORT_SYMBOL_GPL drivers/net/can/c_can/c_can 0x4319daa0 unregister_c_can_dev +EXPORT_SYMBOL_GPL drivers/net/can/c_can/c_can 0x5d25f628 free_c_can_dev +EXPORT_SYMBOL_GPL drivers/net/can/c_can/c_can 0x7356488c alloc_c_can_dev +EXPORT_SYMBOL_GPL drivers/net/can/c_can/c_can 0xbf31a733 register_c_can_dev +EXPORT_SYMBOL_GPL drivers/net/can/c_can/c_can 0xe5a9f1e7 c_can_power_down +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x17804289 register_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x2094325a can_get_echo_skb +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x222c295a can_len2dlc +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x33ac57f9 open_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x4e3f21a8 devm_can_led_init +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x5d4bfbf2 can_put_echo_skb +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x64016af4 unregister_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x689ac6ac can_free_echo_skb +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xac2110da free_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xb346573b can_dlc2len +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xc3a10568 can_led_event +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xc6688090 alloc_can_skb +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xd1e40164 safe_candev_priv +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xd43f2090 can_bus_off +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xd85734af close_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xe3972cd2 alloc_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xef2231c3 alloc_can_err_skb +EXPORT_SYMBOL_GPL drivers/net/can/cc770/cc770 0x47e141d4 register_cc770dev +EXPORT_SYMBOL_GPL drivers/net/can/cc770/cc770 0x6cf24fbc alloc_cc770dev +EXPORT_SYMBOL_GPL drivers/net/can/cc770/cc770 0xd614ae8f unregister_cc770dev +EXPORT_SYMBOL_GPL drivers/net/can/cc770/cc770 0xebca4e1d free_cc770dev +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x3ef00d73 free_sja1000dev +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x49ebd0d2 sja1000_interrupt +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x9f1d218d alloc_sja1000dev +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0xb477d0ce register_sja1000dev +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0xdd8d3a4d unregister_sja1000dev +EXPORT_SYMBOL_GPL drivers/net/ethernet/cadence/macb 0x37f62c3b macb_set_rx_mode +EXPORT_SYMBOL_GPL drivers/net/ethernet/cadence/macb 0x3dc15116 macb_get_hwaddr +EXPORT_SYMBOL_GPL drivers/net/ethernet/cadence/macb 0x55b6df23 macb_mii_init +EXPORT_SYMBOL_GPL drivers/net/ethernet/cadence/macb 0x82ebe7b0 macb_get_stats +EXPORT_SYMBOL_GPL drivers/net/ethernet/cadence/macb 0x8662ba3b macb_ethtool_ops +EXPORT_SYMBOL_GPL drivers/net/ethernet/cadence/macb 0xd045eed7 macb_ioctl +EXPORT_SYMBOL_GPL drivers/net/ethernet/cadence/macb 0xeb55f8d4 macb_set_hwaddr +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x0195c2bd mlx4_xrcd_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x062302e4 mlx4_alloc_hwq_res +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x08386b35 mlx4_flow_steer_promisc_add +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x0b52ab00 mlx4_qp_query +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x0e3d896a mlx4_register_mac +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x0f2f379e mlx4_unregister_mac +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x108caaa8 mlx4_buf_write_mtt +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x125d17ce mlx4_fmr_enable +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x144c99a4 mlx4_get_vf_config +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x159c17f9 mlx4_srq_lookup +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x17c4e579 mlx4_qp_release_range +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x22072dca mlx4_wol_write +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x244d81a9 mlx4_mw_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x25c0f743 mlx4_map_sw_to_hw_steering_mode +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x265c7de1 mlx4_buf_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x283fa3b1 mlx4_qp_to_ready +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x290ee62b mlx4_flow_detach +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x2a451911 mlx4_read_clock +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x2f415c33 mlx4_get_base_qpn +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x317a5879 __mlx4_replace_mac +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x3311d61a mlx4_register_vlan +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x3be19a8f mlx4_multicast_promisc_remove +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x405c8d55 mlx4_get_protocol_dev +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x40b1891c mlx4_unicast_detach +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x41f0954b mlx4_flow_steer_promisc_remove +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x4296dc69 mlx4_find_cached_vlan +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x42c22fb0 mlx4_mtt_cleanup +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x435a6e5b mlx4_cq_resize +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x438f5c47 mlx4_fmr_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x4430111f mlx4_unicast_promisc_add +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x462edb56 mlx4_free_hwq_res +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x47a2ec55 __mlx4_register_mac +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x48cd3018 mlx4_counter_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x496c6d4c mlx4_map_sw_to_hw_steering_id +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x4f4a9792 mlx4_srq_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x52745e83 mlx4_qp_reserve_range +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x5548ffa0 mlx4_INIT_PORT +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x56c3bfe8 mlx4_db_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x5b075859 mlx4_multicast_detach +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x5b18f3f4 mlx4_free_cmd_mailbox +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x5c4b7b77 __mlx4_unregister_mac +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x60ff8201 mlx4_fmr_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x64df6f6d mlx4_unicast_promisc_remove +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x742a0ad2 mlx4_qp_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x816b13aa mlx4_mr_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x85a310c5 mlx4_qp_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x88559e0a mlx4_mtt_addr +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x8b6b8c90 mlx4_hw_rule_sz +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x94ab89a6 mlx4_unicast_attach +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x99416934 __mlx4_cmd +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x9b8d8fb1 mlx4_qp_modify +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x9d67a728 mlx4_xrcd_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa0119d7f mlx4_set_vf_link_state +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa5e8532a mlx4_buf_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa66e8840 mlx4_mr_enable +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa6871b76 mlx4_multicast_attach +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xad9770d5 mlx4_set_vf_spoofchk +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xb0aac06f mlx4_mr_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xb38dc0c0 mlx4_pd_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xbb6f178f mlx4_map_phys_fmr +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xbfb3b360 mlx4_cq_modify +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc087a78a mlx4_uar_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc0987c30 mlx4_mtt_init +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc247d187 mlx4_srq_query +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc4e4685b mlx4_qp_remove +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc75275af mlx4_unregister_interface +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc9d2bed6 mlx4_register_interface +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd4df23df mlx4_wol_read +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd7ee1875 mlx4_flow_attach +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd895d9c4 mlx4_db_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd93a8ba0 mlx4_fmr_unmap +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd97173cd mlx4_set_vf_vlan +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xdae60951 mlx4_srq_arm +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xdbd0e68f mlx4_alloc_cmd_mailbox +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xdc159fbb mlx4_cq_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xded5b8ea mlx4_mw_enable +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe10625b2 mlx4_bf_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe2596707 mlx4_multicast_promisc_add +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe61e6c17 mlx4_cq_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe6674ff6 mlx4_bf_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe8e1a91d mlx4_unregister_vlan +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe8f15550 mlx4_srq_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xeb05d5c5 mlx4_set_vf_mac +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf012eaf7 mlx4_CLOSE_PORT +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf5790849 mlx4_counter_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf6fd371f mlx4_pd_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf8db5295 mlx4_SYNC_TPT +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xfcdf2e03 mlx4_uar_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xff408f50 mlx4_write_mtt +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xffacbdb4 mlx4_mw_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/ti/davinci_cpdma 0x018edcce cpdma_ctlr_dump +EXPORT_SYMBOL_GPL drivers/net/ethernet/ti/davinci_cpdma 0x0ff9af09 cpdma_ctlr_int_ctrl +EXPORT_SYMBOL_GPL drivers/net/ethernet/ti/davinci_cpdma 0x5a8f213c cpdma_ctlr_eoi +EXPORT_SYMBOL_GPL drivers/net/ethernet/ti/davinci_cpdma 0x5c2fe4a5 cpdma_chan_stop +EXPORT_SYMBOL_GPL drivers/net/ethernet/ti/davinci_cpdma 0x68e47b2c cpdma_ctlr_destroy +EXPORT_SYMBOL_GPL drivers/net/ethernet/ti/davinci_cpdma 0x764928a2 cpdma_chan_create +EXPORT_SYMBOL_GPL drivers/net/ethernet/ti/davinci_cpdma 0x949334db cpdma_ctlr_start +EXPORT_SYMBOL_GPL drivers/net/ethernet/ti/davinci_cpdma 0x9cdc9867 cpdma_ctlr_stop +EXPORT_SYMBOL_GPL drivers/net/ethernet/ti/davinci_cpdma 0xb125ceb2 cpdma_control_set +EXPORT_SYMBOL_GPL drivers/net/ethernet/ti/davinci_cpdma 0xb39dec7e cpdma_ctlr_create +EXPORT_SYMBOL_GPL drivers/net/ethernet/ti/davinci_cpdma 0xb77cb0a8 cpdma_chan_submit +EXPORT_SYMBOL_GPL drivers/net/ethernet/ti/davinci_cpdma 0xc5d5513e cpdma_chan_process +EXPORT_SYMBOL_GPL drivers/net/ethernet/ti/davinci_cpdma 0xc685c037 cpdma_check_free_tx_desc +EXPORT_SYMBOL_GPL drivers/net/ethernet/ti/davinci_cpdma 0xe4c22565 cpdma_chan_destroy +EXPORT_SYMBOL_GPL drivers/net/ethernet/ti/davinci_cpdma 0xee8d7539 cpdma_chan_start +EXPORT_SYMBOL_GPL drivers/net/macvlan 0x62a699d2 macvlan_link_register +EXPORT_SYMBOL_GPL drivers/net/macvlan 0x88c27120 macvlan_dellink +EXPORT_SYMBOL_GPL drivers/net/macvlan 0xafdc5c40 macvlan_start_xmit +EXPORT_SYMBOL_GPL drivers/net/macvlan 0xca7b33cc macvlan_common_newlink +EXPORT_SYMBOL_GPL drivers/net/macvlan 0xcf06e77b macvlan_common_setup +EXPORT_SYMBOL_GPL drivers/net/macvtap 0x1d576487 macvtap_get_socket +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0x1feb23e7 usbnet_generic_cdc_bind +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0x452453e6 usbnet_cdc_status +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0xa9b810ff usbnet_cdc_unbind +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0xf0208d91 usbnet_cdc_bind +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ncm 0x2a3fb050 cdc_ncm_fill_tx_frame +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ncm 0x4f71ff03 cdc_ncm_rx_verify_nth16 +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ncm 0x584a3a2a cdc_ncm_unbind +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ncm 0x6a0a5fe8 cdc_ncm_bind_common +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ncm 0xb2c60757 cdc_ncm_rx_verify_ndp16 +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ncm 0xf48e28ec cdc_ncm_select_altsetting +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x1cc401ed rndis_unbind +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x25953d21 rndis_command +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x28a7634f rndis_rx_fixup +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x2b798c2e rndis_status +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0xbbd3c2df rndis_tx_fixup +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0xcc9b381e generic_rndis_bind +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x0338a565 usbnet_tx_timeout +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x096f51c5 usbnet_get_settings +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x16d96d11 usbnet_skb_return +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x172ab974 usbnet_status_start +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x1a965323 usbnet_defer_kevent +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x1cb0b2cd usbnet_status_stop +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x23ac5921 usbnet_set_msglevel +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x2a3293e8 usbnet_set_settings +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x2c346e4f usbnet_probe +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x36cffb29 usbnet_start_xmit +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x390f5af9 usbnet_stop +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x3eaa9d48 usbnet_suspend +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x3fcfd159 usbnet_pause_rx +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x53c6ea1e usbnet_write_cmd_nopm +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x55363c4d usbnet_open +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x5fe50283 usbnet_read_cmd_nopm +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x71a2ec45 usbnet_get_endpoints +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x7c28dc04 usbnet_purge_paused_rxq +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x7ca026bf usbnet_unlink_rx_urbs +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x824f4f07 usbnet_disconnect +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x8624ca63 usbnet_resume +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x87d8dd7f usbnet_nway_reset +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x983c0d21 usbnet_read_cmd +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x992d6e3e usbnet_get_link +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xb63e099b usbnet_write_cmd +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xc394513c usbnet_write_cmd_async +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xcdf36409 usbnet_change_mtu +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xd3267169 usbnet_get_msglevel +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xda2d7fcf usbnet_get_drvinfo +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xefc9d919 usbnet_resume_rx +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xf9db01ef usbnet_get_ethernet_addr +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x0161eeb0 i2400m_pre_reset +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x07237a54 i2400m_cmd_enter_powersave +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x09bced08 i2400m_error_recovery +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x515baa05 i2400m_netdev_setup +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x5aa22c42 i2400m_is_boot_barker +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x735f328d i2400m_release +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x8a92d966 i2400m_dev_bootstrap +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x8fd4d043 i2400m_tx_msg_get +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xa4de56a1 i2400m_tx_msg_sent +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xaa7eb746 i2400m_dev_reset_handle +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xb00b793c i2400m_bm_cmd_prepare +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xcca36975 i2400m_setup +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xcdd8cfe2 i2400m_post_reset +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xe1e18fdf i2400m_init +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xe2cf3951 i2400m_rx +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xe6f2deb3 i2400m_reset +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xec678058 i2400m_tx +EXPORT_SYMBOL_GPL drivers/net/wireless/cw1200/cw1200_core 0x5e481d0a cw1200_core_release +EXPORT_SYMBOL_GPL drivers/net/wireless/cw1200/cw1200_core 0x71f0f681 cw1200_core_probe +EXPORT_SYMBOL_GPL drivers/net/wireless/cw1200/cw1200_core 0x8d98751a cw1200_can_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/cw1200/cw1200_core 0xec078f07 cw1200_irq_handler +EXPORT_SYMBOL_GPL drivers/net/wireless/ipw2x00/libipw 0x9fb08871 libipw_rx_any +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlegacy/iwlegacy 0x00e3fbce _il_grab_nic_access +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlegacy/iwlegacy 0x49048569 il_prep_station +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlegacy/iwlegacy 0x5ccecb82 il_remove_station +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlegacy/iwlegacy 0xd17c13e6 il_mac_tx_last_beacon +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlegacy/iwlegacy 0xfef128e3 il_dealloc_bcast_stations +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x0418ffaf iwl_read_prph +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x19309081 iwl_parse_nvm_data +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x194202ee iwl_notification_wait_init +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x2239962f iwl_set_bits_mask_prph +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x32d6c835 __iwl_dbg +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x35033c81 iwl_phy_db_free +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x39f7aefc iwl_read_eeprom +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x3f0b9a6d iwl_remove_notification +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x406c5cc3 iwl_write_direct32 +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x5a10d898 iwl_abort_notification_waits +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x5c52e109 iwl_opmode_deregister +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x5d0a212e iwlwifi_mod_params +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x769fbc5c iwl_clear_bits_prph +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x776221bf iwl_send_phy_db_data +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x8c5d5ab3 iwl_phy_db_set_section +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x9005d244 iwl_write_prph +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x92e64568 iwl_wait_notification +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x9bf008f8 __iwl_crit +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x9ec63dc7 iwl_phy_db_init +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0xa5558b61 __iwl_info +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0xb0342c46 __iwl_warn +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0xbc5bc064 iwl_opmode_register +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0xd5402ae7 iwl_parse_eeprom_data +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0xde6f4ba7 __iwl_err +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0xdfde1a41 iwl_poll_bit +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0xe11f9eaa iwl_notification_wait_notify +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0xe698cde2 iwl_nvm_check_version +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0xeaca064b iwl_poll_direct_bit +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0xef280d18 iwl_read_direct32 +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0xf371a595 iwl_set_bits_prph +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0xf5032a20 iwl_init_notification_wait +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x09985d62 lbs_remove_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x1793af02 lbs_add_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x1e0691bf lbs_notify_command_response +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x25dcb10b lbs_process_rxed_packet +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x3727b1c2 lbs_host_to_card_done +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x58be4f4c lbs_start_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x5fdf38b8 lbs_disablemesh +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x967c220a lbs_stop_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x9c9a711d lbs_queue_event +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xa302897a lbs_host_sleep_cfg +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xa8a277f7 lbs_cmd_copyback +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xaac9ee99 lbs_send_tx_feedback +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xbe44b9b8 lbs_get_firmware_async +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xc09329ca __lbs_cmd +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xeba251c6 lbs_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xf482e002 lbs_get_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xf64277de lbs_debug +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xfc55cb65 lbs_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x0cb81312 lbtf_send_tx_feedback +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x112875ac lbtf_rx +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x1356402b lbtf_cmd_response_rx +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x3247a983 lbtf_bcn_sent +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x4f24a5c4 lbtf_cmd_copyback +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x8e90a5f8 lbtf_remove_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xc85e6899 lbtf_debug +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xd8d2618e __lbtf_cmd +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xf145e039 lbtf_add_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf_usb 0x9f43b2ad if_usb_reset_device +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf_usb 0xef476132 if_usb_prog_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x0790b3c6 mwifiex_process_sleep_confirm_resp +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x373709bd mwifiex_cancel_hs +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x5296943c mwifiex_remove_card +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x616d24a5 mwifiex_add_card +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x633071e7 mwifiex_handle_rx_packet +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x7614dcc6 mwifiex_write_data_complete +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x974a6c29 mwifiex_add_virtual_intf +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x9d66ae74 mwifiex_enable_hs +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0xaa29a288 mwifiex_init_shutdown_fw +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0xdf6a0c31 mwifiex_disable_auto_ds +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0xe5d49cf8 mwifiex_deauthenticate +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0xf10099ed mwifiex_main_process +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0xf4f5854a mwifiex_del_virtual_intf +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0xf865483c mwifiex_process_hs_config +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x02ba0b78 p54_unregister_common +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x46a46917 p54_read_eeprom +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x489962f8 p54_init_common +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x6974aa40 p54_parse_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x7fe07a39 p54_free_common +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x9abdfc2f p54_register_common +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0xbe64e542 p54_free_skb +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0xc8fcf9b2 p54_rx +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0xf6997d5b p54_parse_eeprom +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x01dd0509 rt2800_config +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x1b2888aa rt2800_config_filter +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x1d53428c rt2800_disable_radio +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x1e08e903 rt2800_set_rts_threshold +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x1ef1d39c rt2800_config_shared_key +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x246605bc rt2800_clear_beacon +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x2d687afc rt2800_link_stats +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x32abd6bb rt2800_wait_csr_ready +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x4195d98a rt2800_read_eeprom_efuse +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x4bb9541a rt2800_sta_remove +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x51ce0a7d rt2800_enable_radio +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x5365c9e0 rt2800_config_intf +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x670b7f1d rt2800_get_survey +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x6f4294b6 rt2800_reset_tuner +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x6febefcc rt2800_disable_wpdma +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x7be9d0ce rt2800_link_tuner +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x7f245b30 rt2800_rfkill_poll +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x83e7162b rt2800_get_tsf +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x898cd404 rt2800_config_pairwise_key +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x8d064bbb rt2800_check_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x8d840f45 rt2800_mcu_request +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x8e884237 rt2800_vco_calibration +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xa6eb80b4 rt2800_probe_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xadadb2c7 rt2800_conf_tx +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xb926cb94 rt2800_load_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xba6edd5c rt2800_txdone_entry +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xc0b01a2a rt2800_wait_wpdma_ready +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xc9a53d17 rt2800_rt2x00debug +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xd011a2aa rt2800_efuse_detect +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xd91af746 rt2800_write_beacon +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xdd6ea7b2 rt2800_process_rxwi +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xddd191ad rt2800_gain_calibration +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xe11ab5a6 rt2800_get_tkip_seq +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xe4113e9e rt2800_config_ant +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xe71229c8 rt2800_config_erp +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xef53c896 rt2800_sta_add +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xeff2bc32 rt2800_ampdu_action +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xf85f1419 rt2800_write_tx_data +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x08f2819b rt2x00mac_sta_remove +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x15fde9a0 rt2x00lib_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x270e5eaa rt2x00mac_sta_add +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x28e86d16 rt2x00mac_flush +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x316142d7 rt2x00mac_get_ringparam +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x31784677 rt2x00mac_config +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x362fa69c rt2x00mac_tx +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x39dcb71c rt2x00mac_configure_filter +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x408bd7ae rt2x00lib_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x40f94586 rt2x00lib_dmastart +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x4407be82 rt2x00queue_stop_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x47c62659 rt2x00mac_get_stats +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x4f6a8d55 rt2x00lib_get_bssidx +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x580dd30b rt2x00queue_start_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x58e82c87 rt2x00queue_flush_queues +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x5c116fd2 rt2x00queue_unmap_skb +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x5cbf594f rt2x00lib_txdone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x646ce089 rt2x00mac_stop +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x72557ec1 rt2x00lib_beacondone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x7351280b rt2x00lib_rxdone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x771ca82e rt2x00queue_pause_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x7e66f7ed rt2x00queue_start_queues +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x81e2d39c rt2x00mac_remove_interface +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x8bb4a498 rt2x00lib_probe_dev +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x9205c33f rt2x00mac_sw_scan_start +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x9218cc79 rt2x00queue_for_each_entry +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x921e5b02 rt2x00mac_tx_frames_pending +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x93e47723 rt2x00mac_add_interface +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x986a24ac rt2x00mac_set_tim +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x9dfd22b8 rt2x00lib_pretbtt +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xaac4354c rt2x00queue_get_entry +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xad8d57cc rt2x00queue_map_txskb +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xafa6d9a0 rt2x00lib_remove_dev +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xb227f56b rt2x00queue_flush_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xb33c50bf rt2x00mac_rfkill_poll +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xb3e61106 rt2x00mac_set_key +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xbdcdd93c rt2x00debug_dump_frame +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xbdd86024 rt2x00lib_txdone_noinfo +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xbecaa473 rt2x00queue_unpause_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xd38d3de9 rt2x00mac_start +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xd42e3c70 rt2x00mac_get_antenna +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xe117e5c3 rt2x00mac_sw_scan_complete +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xea1ec604 rt2x00queue_stop_queues +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xea343857 rt2x00lib_dmadone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xeeb11b73 rt2x00mac_conf_tx +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xf32456a1 rt2x00mac_bss_info_changed +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xfa9fb305 rt2x00mac_set_antenna +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00mmio 0x2163223d rt2x00mmio_flush_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00mmio 0x2a8add54 rt2x00mmio_regbusy_read +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00mmio 0xb87f7aed rt2x00mmio_uninitialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00mmio 0xcf9b74a2 rt2x00mmio_rxdone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00mmio 0xf2836f52 rt2x00mmio_initialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x2134355b rt2x00pci_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x6a979471 rt2x00pci_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x853667b5 rt2x00pci_remove +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xc02bc9b9 rt2x00pci_probe +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x22755dad rt2x00usb_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x22c0874d rt2x00usb_clear_entry +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x3f51d24c rt2x00usb_vendor_request +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x44b8f1e8 rt2x00usb_disable_radio +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x559a808a rt2x00usb_regbusy_read +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x5e187be7 rt2x00usb_vendor_req_buff_lock +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x702354f2 rt2x00usb_uninitialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x74d41c94 rt2x00usb_vendor_request_buff +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x813423c3 rt2x00usb_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xb37574f4 rt2x00usb_flush_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xb4791106 rt2x00usb_watchdog +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xbe7b8b30 rt2x00usb_probe +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xc585798f rt2x00usb_initialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xc88b0d06 rt2x00usb_kick_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xd57cadcb rt2x00usb_register_read_async +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xe25badd8 rt2x00usb_disconnect +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xbb40babe rtl92c_set_p2p_ps_offload_cmd +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0x0bf8cc19 rtl_deinit_deferred_work +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0x1a68bf24 rtl_beacon_statistic +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0x1c118f03 rtl_ips_nic_on +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0x1ef05088 rtl_deinit_rfkill +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0x241dedc1 rtl_tid_to_ac +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0x2d882d91 rtl_global_var +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0x3364fa31 rtl_init_rx_config +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0x3bba9c19 rtl_tx_mgmt_proc +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0x3c1a0150 rtl_is_special_data +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0x59cf03cf rtl_p2p_info +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0x7c25862a rtl_dbgp_flag_init +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0x8adb95e9 rtl_init_core +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0x94e8048a read_efuse_byte +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0xa528d42e rtl_recognize_peer +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0xaec1050f rtl_deinit_core +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0xb5baf84b rtl_action_proc +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0xbb7c723b rtl_attribute_group +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0xbc66f2eb rtl_swlps_beacon +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0xd0f4bd77 rtl_ops +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0xf8ff6add rtl_lps_change_work_callback +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wl1251/wl1251 0x5a536560 wl1251_free_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wl1251/wl1251 0x8b27ed13 wl1251_alloc_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wl1251/wl1251 0x9b588dac wl1251_init_ieee80211 +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x00d650d2 wlcore_event_beacon_loss +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x05294fba wl1271_format_buffer +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x1824c8f4 wlcore_event_ba_rx_constraint +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x1f9d288e wlcore_disable_interrupts_nosync +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x201789bc wl12xx_acx_mem_cfg +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x21054e71 wlcore_event_dummy_packet +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x29b61c16 wlcore_event_rssi_trigger +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x2bed0efe wlcore_event_inactive_sta +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x31a15090 wlcore_enable_interrupts +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x31ad085e wlcore_scan_sched_scan_results +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x32a84083 wlcore_set_key +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x33ab22fd wl1271_cmd_data_path +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x372d02ed wlcore_boot_run_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x3e42f82a wl1271_cmd_send +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x42cf0494 wlcore_disable_interrupts +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x4de7bd19 wlcore_probe +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x52df3743 wlcore_scan_sched_scan_ssid_list +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x53dff67d wl12xx_debug_level +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x68f9d0bc wl1271_acx_set_ht_capabilities +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x6c16f7c4 wlcore_free_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x6dcc2d46 wlcore_event_max_tx_failure +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x6edb2a93 wlcore_event_roc_complete +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x791717e6 wl1271_debugfs_update_stats +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x7d172d81 wlcore_synchronize_interrupts +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x7dc03fee wl1271_acx_init_mem_config +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x7f475501 wlcore_event_soft_gemini_sense +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x80b16f05 wl1271_tx_flush +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x8eeb6ea1 wlcore_set_partition +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x9808a4dd wlcore_boot_upload_nvs +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x99e00784 wlcore_set_scan_chan_params +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x9b00aacd wl1271_cmd_configure +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xa88abd4c wl1271_acx_sleep_auth +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xbb0d0233 wlcore_event_sched_scan_completed +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xbc292062 wlcore_alloc_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xc5af1649 wl1271_acx_pm_config +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xd0365002 wl1271_cmd_test +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xdd290244 wlcore_boot_upload_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xde4a9b21 wl1271_tx_min_rate_get +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xdec9b4cf wlcore_remove +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xf7829c50 wlcore_translate_addr +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xf9768da8 wl12xx_cmd_build_probe_req +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xfaf96e5f wlcore_event_channel_switch +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xffb802b9 wlcore_cmd_wait_for_event_or_timeout +EXPORT_SYMBOL_GPL drivers/power/pcf50633-charger 0x4b4531fc pcf50633_mbc_usb_curlim_set +EXPORT_SYMBOL_GPL drivers/power/pcf50633-charger 0x6a663175 pcf50633_mbc_get_usb_online_status +EXPORT_SYMBOL_GPL drivers/power/pcf50633-charger 0xa6764d80 pcf50633_mbc_get_status +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0x2025cc3d mc13xxx_get_num_regulators_dt +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0x34c638f9 mc13xxx_regulator_ops +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0x4b131500 mc13xxx_parse_regulators_dt +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0x7c084935 mc13xxx_fixed_regulator_set_voltage +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0x9f9c01e1 mc13xxx_fixed_regulator_ops +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x25cd4780 wm8350_dcdc25_set_mode +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x3eb34d81 wm8350_register_led +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x44731a30 wm8350_ldo_set_slot +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x6bda4d27 wm8350_register_regulator +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0xdaae643b wm8350_dcdc_set_slot +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0xde4c05e6 wm8350_isink_set_flash +EXPORT_SYMBOL_GPL drivers/regulator/wm8400-regulator 0xf994fa10 wm8400_register_regulator +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x038192f5 cxgbi_conn_alloc_pdu +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x09cb2309 cxgbi_sock_rcv_abort_rpl +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x0aa4485d cxgbi_create_conn +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x12ef3530 cxgbi_device_find_by_lldev +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x13e1187e cxgbi_ep_poll +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x14ddcc2c cxgbi_ddp_cleanup +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x160985a2 cxgbi_sock_established +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x17fe926f cxgbi_parse_pdu_itt +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x1b9a3326 cxgbi_sock_rcv_wr_ack +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x2f626a91 cxgbi_get_ep_param +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x3950b0e7 cxgbi_sock_skb_entail +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x3a5c4389 cxgbi_ddp_page_size_factor +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x3e71c539 cxgbi_create_session +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x3fbf5592 cxgbi_device_portmap_cleanup +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x40073ac4 cxgbi_iscsi_cleanup +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x51bf04c7 cxgbi_sock_free_cpl_skbs +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x54529071 cxgbi_ep_disconnect +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x6b9046f7 cxgbi_bind_conn +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x6cc1f67e cxgbi_hbas_remove +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x765f4163 cxgbi_conn_pdu_ready +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x7f864571 cxgbi_sock_closed +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x7fdb6004 cxgbi_device_unregister_all +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x876193fa cxgbi_hbas_add +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x8c2ba369 cxgbi_ddp_ppod_clear +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x9057e8a1 cxgbi_ddp_ppod_set +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x93f78a06 cxgbi_set_host_param +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x9f7b5be5 cxgbi_device_register +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xa3fe3508 cxgbi_iscsi_init +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xa7dc19bb cxgbi_sock_fail_act_open +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xa96bb9a7 cxgbi_conn_xmit_pdu +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xbca2e003 cxgbi_sock_act_open_req_arp_failure +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xc0c3d250 cxgbi_conn_tx_open +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xc5df08d9 cxgbi_conn_init_pdu +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xcd87a7de cxgbi_sock_rcv_close_conn_rpl +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xdf58f104 cxgbi_sock_rcv_peer_close +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xe0319d81 cxgbi_destroy_session +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xe2fdfadd cxgbi_get_conn_stats +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xe3badade cxgbi_set_conn_param +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xea9b8692 cxgbi_sock_check_wr_invariants +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xef346615 cxgbi_attr_is_visible +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xefce12ef cxgbi_ep_connect +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xf1cf694f cxgbi_sock_purge_wr_queue +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xf32f7a48 cxgbi_cleanup_task +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xf8cb60eb cxgbi_device_unregister +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xf8e3c560 cxgbi_sock_select_mss +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xfa3a8ab8 cxgbi_device_portmap_create +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xfd322e02 cxgbi_get_host_param +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xffe90715 cxgbi_ddp_init +EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0x0edc16aa scsi_dh_activate +EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0x1a457c6b scsi_dh_detach +EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0x1b9aa0c7 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 0x6d5922d5 scsi_dh_set_params +EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0xb0689c97 scsi_register_device_handler +EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0xb6d8f4e0 scsi_dh_attach +EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0xcec90d40 scsi_dh_attached_handler_name +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x0fb51275 fcoe_queue_timer +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x1311efcf fcoe_clean_pending_queue +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x374c1e1c fcoe_wwn_from_mac +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x3caff06b fcoe_libfc_config +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x56e7b027 fcoe_ctlr_device_delete +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x5b418d87 fcoe_get_lesb +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x62dc3975 fcoe_check_wait_queue +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x742af4b6 fcoe_get_wwn +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x831cbbe1 fcoe_get_paged_crc_eof +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x841fff1a fcoe_fcf_device_add +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x84b3d915 fcoe_wwn_to_str +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x97044f97 fcoe_fcf_device_delete +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xa1e17ae2 fcoe_fc_crc +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xa7958cc0 __fcoe_get_lesb +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xca0cd035 fcoe_ctlr_get_lesb +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xdc6794a7 fcoe_start_io +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xdf9a4e79 fcoe_validate_vport_create +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xe5e38427 fcoe_ctlr_device_add +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xf1e69193 fcoe_link_speed_update +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0x032fb243 iscsi_boot_destroy_kset +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0x1070b933 iscsi_boot_create_target +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0x329ad5e6 iscsi_boot_create_kset +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0x9631489d iscsi_boot_create_host_kset +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0xa5dede7b iscsi_boot_create_initiator +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0xff40299a iscsi_boot_create_ethernet +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x090b217c iscsi_eh_target_reset +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x12b2ad06 iscsi_switch_str_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x134f82cb iscsi_complete_scsi_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x173144a4 iscsi_session_teardown +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x189b5525 iscsi_change_queue_depth +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x19e12910 iscsi_eh_device_reset +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x2630b123 iscsi_requeue_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x28d8e45b iscsi_host_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x2eb88f8b iscsi_pool_init +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x3540fd5a iscsi_put_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x4298254b iscsi_conn_get_addr_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x4d10cfeb iscsi_host_free +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x507de1bc iscsi_conn_start +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x5080943a iscsi_complete_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x55ea8ee9 iscsi_conn_stop +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x567b4d36 iscsi_conn_queue_work +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x6116ab8c iscsi_target_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x613ba26f __iscsi_get_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x6706a8f9 iscsi_session_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x6a86b9c2 iscsi_itt_to_ctask +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x6e4f0e1e iscsi_host_remove +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x6e773d5a iscsi_session_setup +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x6e8a1b8e iscsi_eh_session_reset +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x70074c4d iscsi_host_add +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x70d7fcbb iscsi_suspend_tx +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x731d5abb iscsi_conn_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x77f0006e iscsi_conn_bind +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x8696ed18 iscsi_verify_itt +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x91827eaf iscsi_itt_to_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x9ba6c90b iscsi_session_failure +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x9e9c0db6 __iscsi_put_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xa029f530 iscsi_eh_recover_target +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xa4832cf0 iscsi_pool_free +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xa5bb4c68 iscsi_set_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xb32acba9 iscsi_conn_failure +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xb733e427 iscsi_host_set_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xb9e1535c iscsi_prep_data_out_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xc004f4cd iscsi_update_cmdsn +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xc19a985f __iscsi_complete_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xc4c26b4f iscsi_host_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xcceacd04 iscsi_session_recovery_timedout +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xd4fe7e54 iscsi_suspend_queue +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xd57f4f37 iscsi_conn_setup +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xdd015396 iscsi_eh_abort +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xe7991b40 iscsi_queuecommand +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xe7e9ce14 iscsi_conn_teardown +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xf23043f9 iscsi_conn_send_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x02d22142 iscsi_segment_seek_sg +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x158bfc7c iscsi_tcp_segment_unmap +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x18123c29 iscsi_tcp_cleanup_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x1ca135a1 iscsi_tcp_dgst_header +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x2688d5f3 iscsi_tcp_recv_skb +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x2c2739e3 iscsi_tcp_set_max_r2t +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x410e32cb iscsi_segment_init_linear +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x5d81b794 iscsi_tcp_conn_setup +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x60fdf191 iscsi_tcp_segment_done +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x6de7791c iscsi_tcp_task_xmit +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x947ded30 iscsi_tcp_recv_segment_is_hdr +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xcc8307c3 iscsi_tcp_hdr_recv_prep +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xd4b34301 iscsi_tcp_r2tpool_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xd887a154 iscsi_tcp_conn_teardown +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xda3231f8 iscsi_tcp_conn_get_stats +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xed2da419 iscsi_tcp_task_init +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xf499184e iscsi_tcp_r2tpool_free +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x018d55d2 sas_change_queue_depth +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x0ac06347 sas_task_abort +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x11706c58 sas_domain_release_transport +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x1bacda42 sas_change_queue_type +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x1bf23389 sas_ioctl +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x3b2ff2b6 sas_eh_abort_handler +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x3fca07d4 sas_unregister_ha +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x4a206db9 sas_get_local_phy +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x4ef2963d sas_request_addr +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x55e33070 sas_eh_device_reset_handler +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x692a554c sas_eh_bus_reset_handler +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x87020cf7 sas_ata_schedule_reset +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x9d79e07f sas_slave_configure +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xa40cc835 sas_alloc_task +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xa7998d50 sas_register_ha +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xb7929cde sas_ssp_task_response +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xbfec791a sas_phy_reset +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xc50bbbd9 sas_drain_work +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xd22b25f7 sas_alloc_slow_task +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xdde498f3 sas_queuecommand +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xe60738c4 sas_free_task +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xe7f95bef sas_bios_param +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xee50e2ec sas_domain_attach_transport +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xf64fc94c sas_target_destroy +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xfb75e7ee sas_target_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x0a187d01 srp_transfer_data +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x28e7fcbd srp_iu_get +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x670401d2 srp_iu_put +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0xa3393a32 srp_cmd_queue +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0xc8afd053 srp_target_free +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0xf053495f srp_target_alloc +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x1a6a09f8 scsi_host_get_command +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x48b0992f scsi_host_put_command +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x4dba1d56 scsi_tgt_cmd_to_host +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x647e53c4 scsi_tgt_tsk_mgmt_request +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x761f9a28 scsi_tgt_queue_command +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x8eb11b9f scsi_tgt_alloc_queue +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xce9b5a01 scsi_tgt_it_nexus_destroy +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xec38a9fa scsi_tgt_it_nexus_create +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xfbe08479 scsi_tgt_free_queue +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x0fac9af0 iscsi_unblock_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x1d2501fd iscsi_alloc_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x1f6b90e0 iscsi_host_for_each_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x201c1f24 iscsi_destroy_flashnode_sess +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x22526cbb iscsi_destroy_all_flashnode +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x24a4667a iscsi_get_port_speed_name +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x258d5816 iscsi_create_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x2c7679a1 iscsi_destroy_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x35548f5c iscsi_create_flashnode_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x39760561 iscsi_is_session_dev +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x3f464106 iscsi_destroy_endpoint +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x4bbb24a2 iscsi_is_flashnode_conn_dev +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x4da915d4 iscsi_get_port_state_name +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x5d5753bd iscsi_create_endpoint +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x5ec1a092 iscsi_find_flashnode_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x60ee960c iscsi_add_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x645c8a66 iscsi_destroy_iface +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x699fe53e iscsi_get_discovery_parent_name +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x73c16aeb iscsi_register_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x7c469e47 iscsi_create_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x7cf4fec0 iscsi_conn_error_event +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x8c961332 iscsi_free_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x95add1d8 iscsi_session_event +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x96c7b0fd iscsi_flashnode_bus_match +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x996a1396 iscsi_recv_pdu +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x9dc2a2c4 iscsi_post_host_event +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xa3d39a30 iscsi_offload_mesg +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xad141d36 iscsi_conn_login_event +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xb670b1b5 iscsi_unregister_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xb9ad5a6e iscsi_block_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xc8d3710a iscsi_block_scsi_eh +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xcc3b0bc5 iscsi_remove_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xd2cc7a52 iscsi_create_iface +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xd310a109 iscsi_is_session_online +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xd51968a8 iscsi_find_flashnode_sess +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xd76a0df8 iscsi_scan_finished +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xdd4fa2f3 iscsi_lookup_endpoint +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xe760d0ef iscsi_create_flashnode_sess +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xef6c20b2 iscsi_destroy_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xf1567872 iscsi_session_chkready +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xfe23de9f iscsi_ping_comp_event +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0x222269db sas_enable_tlr +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0x5d6423b8 sas_tlr_supported +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0x6a0056b9 sas_disable_tlr +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0xbae4c77d 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 0x15778b27 srp_release_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x9ca3a6b7 srp_rport_del +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0xb4ff3561 srp_rport_add +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0xd96629a5 srp_attach_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0xfe0e8048 srp_remove_host +EXPORT_SYMBOL_GPL drivers/scsi/ufs/ufshcd 0x1603223b ufshcd_remove +EXPORT_SYMBOL_GPL drivers/scsi/ufs/ufshcd 0x216e27f2 ufshcd_suspend +EXPORT_SYMBOL_GPL drivers/scsi/ufs/ufshcd 0xe0d84e28 ufshcd_resume +EXPORT_SYMBOL_GPL drivers/scsi/ufs/ufshcd 0xf6fb5499 ufshcd_init +EXPORT_SYMBOL_GPL drivers/spi/spi-bitbang 0x35bcea73 spi_bitbang_cleanup +EXPORT_SYMBOL_GPL drivers/spi/spi-bitbang 0xd774a092 spi_bitbang_setup +EXPORT_SYMBOL_GPL drivers/spi/spi-bitbang 0xd9e0b83b spi_bitbang_transfer +EXPORT_SYMBOL_GPL drivers/spi/spi-bitbang 0xdaa78380 spi_bitbang_stop +EXPORT_SYMBOL_GPL drivers/spi/spi-bitbang 0xe6ddc2f9 spi_bitbang_start +EXPORT_SYMBOL_GPL drivers/spi/spi-bitbang 0xfe2092ee spi_bitbang_setup_transfer +EXPORT_SYMBOL_GPL drivers/spi/spi-dw 0x1a685e41 dw_spi_xfer_done +EXPORT_SYMBOL_GPL drivers/spi/spi-dw 0x462496df dw_spi_remove_host +EXPORT_SYMBOL_GPL drivers/spi/spi-dw 0x82bf5742 dw_spi_resume_host +EXPORT_SYMBOL_GPL drivers/spi/spi-dw 0xca762bb0 dw_spi_add_host +EXPORT_SYMBOL_GPL drivers/spi/spi-dw 0xd2507ad2 dw_spi_suspend_host +EXPORT_SYMBOL_GPL drivers/ssb/ssb 0x70bae09c ssb_pmu_spuravoid_pllupdate +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x0991f3b6 comedi_buf_write_alloc +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x0c205855 comedi_event +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x0cd330f4 range_unknown +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x0fd7db11 comedi_driver_register +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x182fd443 __comedi_request_region +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x21102f87 range_0_32mA +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x25dd2287 comedi_alloc_spriv +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x287f866d comedi_buf_write_free +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x2962e231 comedi_usb_auto_config +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x2f0ad9d3 range_bipolar5 +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x368df3e0 comedi_set_hw_dev +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x370f5fe5 comedi_error +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x3ef588b4 comedi_auto_unconfig +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x4236eaaf range_4_20mA +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x4262b698 comedi_buf_put +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x4f8382f5 comedi_driver_unregister +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x4fe634f3 range_bipolar2_5 +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x5dfd3914 comedi_pci_enable +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x67249e3d comedi_buf_memcpy_from +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x6ea1c554 comedi_is_subdevice_running +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x7019af63 comedi_buf_read_free +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x739283f3 comedi_usb_driver_unregister +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x74ff3714 comedi_legacy_detach +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x7808f4e6 comedi_load_firmware +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x7cb796fe comedi_buf_read_n_available +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x801aa3e1 comedi_check_chanlist +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x8113872c range_unipolar10 +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x81686c93 comedi_pci_auto_unconfig +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x8880dabc comedi_alloc_subdevices +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x97fb2276 comedi_pci_driver_unregister +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x9951061a comedi_to_usb_dev +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xab3202e9 comedi_auto_config +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xb679cebc range_0_20mA +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xbb52fc7f range_bipolar10 +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xbdbe75c6 range_unipolar2_5 +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xbfb7bf6b comedi_dev_from_minor +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xc099830b comedi_usb_auto_unconfig +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xc202ac1a comedi_to_pci_dev +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xc744c902 comedi_buf_memcpy_to +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xdb2044b2 range_unipolar5 +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xdb4ed126 comedi_pci_driver_register +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xdb62af48 comedi_to_usb_interface +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xe34f50a2 comedi_pci_auto_config +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xe4dc202f comedi_usb_driver_register +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xee71b898 comedi_buf_read_alloc +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xf035fdbb comedi_pci_disable +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xf613933e comedi_request_region +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xfa508926 comedi_buf_get +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/8255 0x1d9c590a subdev_8255_init +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/8255 0x73c46644 subdev_8255_init_irq +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/8255 0xb85bc288 subdev_8255_interrupt +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/addi_watchdog 0x79f4a6cf addi_watchdog_reset +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/addi_watchdog 0xd8eba520 addi_watchdog_init +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/amplc_dio200_common 0x0612d7e0 amplc_dio200_set_enhance +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/amplc_dio200_common 0x9d4b714e amplc_dio200_common_attach +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/amplc_dio200_common 0xc74ac2cd amplc_dio200_common_detach +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/comedi_fc 0x805725af cfc_write_array_to_buffer +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/comedi_fc 0xaff05de0 cfc_handle_events +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/comedi_fc 0xe11bc207 cfc_read_array_from_buffer +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/das08 0xe66f52a1 das08_common_attach +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0x06659d7a mite_buf_change +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0x0a090e63 mite_request_channel_in_range +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0x0bc7ee32 mite_free_ring +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0x1961bb15 mite_setup2 +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0x1c5f3fb0 mite_prep_dma +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0x2c481c87 mite_bytes_written_to_memory_lb +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0x2f9aaffe mite_get_status +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0x35c9632f mite_bytes_read_from_memory_lb +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0x49bc4eee mite_release_channel +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0x4a1d54b7 mite_setup +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0x4a5d8e2f mite_done +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0x54d29921 mite_alloc +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0x6c00d4f4 mite_unsetup +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0x7b64a403 mite_dma_disarm +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0xa162af91 mite_bytes_read_from_memory_ub +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0xb8e3d039 mite_bytes_written_to_memory_ub +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0xc4bda411 mite_sync_output_dma +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0xcb934906 mite_dma_tcr +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0xd569da2a mite_bytes_in_transit +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0xd985b234 mite_sync_input_dma +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0xe589b1ae mite_dma_arm +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0xf4149d55 mite_alloc_ring +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_labpc 0x63bc3f6b labpc_common_attach +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0x030f54d3 ni_tio_arm +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0x0cef27e1 ni_gpct_device_destroy +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0x227e6e69 ni_tio_winsn +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0x42eeca61 ni_tio_set_gate_src +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0x6280728d ni_tio_rinsn +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0x69097f97 ni_gpct_device_construct +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0x9e2bff76 ni_tio_init_counter +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0xc99fc03f ni_tio_insn_config +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tiocmd 0x256dc3b9 ni_tio_cmdtest +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tiocmd 0x82aaf40f ni_tio_handle_interrupt +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tiocmd 0x8810caf7 ni_tio_cmd +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tiocmd 0x904c7c7e ni_tio_cancel +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tiocmd 0x98cde40b ni_tio_acknowledge_and_confirm +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tiocmd 0xa1a0c1b2 ni_tio_set_mite_channel +EXPORT_SYMBOL_GPL drivers/staging/comedi/kcomedilib/kcomedilib 0x07fa46dc comedi_dio_bitfield +EXPORT_SYMBOL_GPL drivers/staging/comedi/kcomedilib/kcomedilib 0x179a5e33 comedi_close +EXPORT_SYMBOL_GPL drivers/staging/comedi/kcomedilib/kcomedilib 0x598b5464 comedi_dio_config +EXPORT_SYMBOL_GPL drivers/staging/comedi/kcomedilib/kcomedilib 0x7ff9de92 comedi_get_n_channels +EXPORT_SYMBOL_GPL drivers/staging/comedi/kcomedilib/kcomedilib 0x91d60de6 comedi_open +EXPORT_SYMBOL_GPL drivers/staging/comedi/kcomedilib/kcomedilib 0xa2277a26 comedi_find_subdevice_by_type +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0x1a1b5249 oslec_flush +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0x2feda75b oslec_hpf_tx +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0x3227a28e oslec_snapshot +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0x7dc9dddd oslec_adaption_mode +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0xb2c66001 oslec_create +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0xc8b5a524 oslec_free +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0xd370f679 oslec_update +EXPORT_SYMBOL_GPL drivers/staging/iio/addac/adt7316 0x7dd89583 adt7316_pm_ops +EXPORT_SYMBOL_GPL drivers/staging/nvec/nvec 0x1d68255f nvec_msg_free +EXPORT_SYMBOL_GPL drivers/staging/nvec/nvec 0x5af1b449 nvec_register_notifier +EXPORT_SYMBOL_GPL drivers/staging/nvec/nvec 0x6ff01e77 nvec_unregister_notifier +EXPORT_SYMBOL_GPL drivers/staging/rts5139/rts5139 0xbd5a0e51 rts5139_usb_ids +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 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 0x667e1304 spk_do_catch_up +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x7063ca4f synth_remove +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x7c192e01 spk_synth_is_alive_nop +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x813583d2 spk_synth_flush +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x86442336 speakup_event +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x8e146195 synth_release_region +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x8f22349d spk_synth_is_alive_restart +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x917a1270 spk_var_store +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x9a888082 synth_buffer_getc +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xaf5d671c spk_var_show +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xb2978dbc speakup_info +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xb3ff91f2 synth_add +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xb48956f8 synth_buffer_peek +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xbbd15a51 speakup_start_ttys +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xc2a227ac spk_synth_immediate +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xc766ae09 synth_printf +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xd1b551a2 spk_get_var +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xd3136c43 spk_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/usbip/usbip-core 0x033d1b95 usbip_start_eh +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x06088c4b usbip_recv_iso +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x078cfbc9 usbip_dump_urb +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x0d90632f dev_attr_usbip_debug +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x12b9b9ff usbip_recv_xbuff +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x590e9332 usbip_stop_eh +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x706047e4 sockfd_to_socket +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x78b72f44 usbip_debug_flag +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x8243fdb8 usbip_recv +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x9da1336a usbip_pack_pdu +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0xa0c3b787 usbip_event_add +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0xa2e6ab55 usbip_pad_iso +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0xb58345cf usbip_event_happened +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0xd02753dc usbip_header_correct_endian +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0xdbaae550 usbip_alloc_iso_desc_pdu +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0xe1ea0586 usbip_dump_header +EXPORT_SYMBOL_GPL drivers/tty/n_tracesink 0x585ebaac n_tracesink_datadrain +EXPORT_SYMBOL_GPL drivers/uio/uio 0xc2146bc0 __uio_register_device +EXPORT_SYMBOL_GPL drivers/uio/uio 0xc67329c7 uio_unregister_device +EXPORT_SYMBOL_GPL drivers/uio/uio 0xc72bf26f uio_event_notify +EXPORT_SYMBOL_GPL drivers/usb/atm/usbatm 0x0bd1f2f8 usbatm_usb_probe +EXPORT_SYMBOL_GPL drivers/usb/atm/usbatm 0x885c9789 usbatm_usb_disconnect +EXPORT_SYMBOL_GPL drivers/usb/dwc3/dwc3-omap 0x4db92025 dwc3_omap_mailbox +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x024c25e0 usb_gstrings_attach +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x02dfbacf usb_function_activate +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x0e8fb17c usb_free_all_descriptors +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x1a8b4aba usb_remove_function +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x2c95a86f usb_ep_autoconfig_ss +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x2d8efc44 usb_interface_id +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x2e09263f usb_copy_descriptors +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x3a10350f usb_string_ids_tab +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x3d9af1b1 usb_add_config +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x42a2933c usb_string_id +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x51b96cd8 usb_composite_unregister +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x5a69b06c usb_put_function_instance +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x7826a3e9 usb_get_function_instance +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x79ec8dfa usb_ep_autoconfig_reset +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x7b4ddcf9 usb_assign_descriptors +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x857dc1af usb_get_function +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x8e5ba9ea usb_composite_probe +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x94d7075a usb_gadget_get_string +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x9bdaa617 usb_add_function +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x9ebfe6a7 usb_put_function +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xa968e428 usb_add_config_only +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xb8b98188 usb_function_deactivate +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xce119231 usb_ep_autoconfig +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xd2ea2134 usb_descriptor_fillbuf +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xe8304175 usb_function_unregister +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xe84c6cf0 usb_composite_overwrite_options +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xec50d096 usb_function_register +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xeff028bc usb_string_ids_n +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xf474a207 usb_gadget_config_buf +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xfc514a06 config_ep_by_speed +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xfe2cac7d usb_composite_setup_continue +EXPORT_SYMBOL_GPL drivers/usb/gadget/u_serial 0x0ffc09d0 gs_free_req +EXPORT_SYMBOL_GPL drivers/usb/gadget/u_serial 0x2140809a gserial_connect +EXPORT_SYMBOL_GPL drivers/usb/gadget/u_serial 0x33bfdca2 gserial_alloc_line +EXPORT_SYMBOL_GPL drivers/usb/gadget/u_serial 0x9c2581cc gs_alloc_req +EXPORT_SYMBOL_GPL drivers/usb/gadget/u_serial 0xa18b502b gserial_disconnect +EXPORT_SYMBOL_GPL drivers/usb/gadget/u_serial 0xb6652875 gserial_free_line +EXPORT_SYMBOL_GPL drivers/usb/misc/ezusb 0x27d0c7fd ezusb_fx1_ihex_firmware_download +EXPORT_SYMBOL_GPL drivers/usb/misc/ezusb 0x64b364e6 ezusb_fx1_set_reset +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x0ef2a632 usb_ftdi_elan_edset_flush +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x21e9ddb7 usb_ftdi_elan_edset_empty +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x22c0f9d5 ftdi_elan_gone_away +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x245209e6 usb_ftdi_elan_edset_setup +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x828e81ad usb_ftdi_elan_edset_single +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0xcb0f7588 usb_ftdi_elan_write_pcimem +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0xccf684d6 usb_ftdi_elan_read_pcimem +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0xe789b528 usb_ftdi_elan_edset_output +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0xf232ac1a usb_ftdi_elan_edset_input +EXPORT_SYMBOL_GPL drivers/usb/musb/omap2430 0x6fb55e1f omap_musb_mailbox +EXPORT_SYMBOL_GPL drivers/usb/phy/phy-isp1301 0x9e6ce2de isp1301_get_client +EXPORT_SYMBOL_GPL drivers/usb/phy/phy-samsung-usb 0x2ce2423e samsung_usbphy_parse_dt +EXPORT_SYMBOL_GPL drivers/usb/phy/phy-samsung-usb 0x3086a360 samsung_usbphy_set_type +EXPORT_SYMBOL_GPL drivers/usb/phy/phy-samsung-usb 0x32fc9355 samsung_usbphy_set_isolation_4210 +EXPORT_SYMBOL_GPL drivers/usb/phy/phy-samsung-usb 0x7aff480b samsung_usbphy_cfg_sel +EXPORT_SYMBOL_GPL drivers/usb/phy/phy-samsung-usb 0x9b017f12 samsung_usbphy_rate_to_clksel_4x12 +EXPORT_SYMBOL_GPL drivers/usb/phy/phy-samsung-usb 0xa06d50b1 samsung_usbphy_get_refclk_freq +EXPORT_SYMBOL_GPL drivers/usb/phy/phy-samsung-usb 0xd48ae8ef samsung_usbphy_rate_to_clksel_64xx +EXPORT_SYMBOL_GPL drivers/usb/serial/usb_wwan 0x9a3b8fa6 usb_wwan_port_probe +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x1dc1e26c usb_serial_generic_resume +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x277ecc08 usb_serial_handle_dcd_change +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x28ff893f usb_serial_generic_tiocmiwait +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x2aa1a4ac usb_serial_handle_break +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x399e5f1a usb_serial_generic_unthrottle +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x3a04062e usb_serial_register_drivers +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x3cd27ecb usb_serial_port_softint +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x432376cf usb_serial_generic_write +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x484b2994 usb_serial_generic_chars_in_buffer +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x48b46ab5 usb_serial_generic_close +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x5abd971c usb_serial_generic_write_bulk_callback +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x6da86659 usb_serial_deregister_drivers +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xb4354588 usb_serial_generic_process_read_urb +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xc1c8c113 usb_serial_generic_wait_until_sent +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xd40c4a56 usb_serial_generic_open +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xddcc0a32 usb_serial_generic_submit_read_urbs +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xe003cbae usb_serial_generic_throttle +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xe35c0fc6 usb_serial_handle_sysrq_char +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xf2c69c98 usb_serial_generic_read_bulk_callback +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xfd75a4c8 usb_serial_generic_get_icount +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x0530c572 fill_inquiry_response +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x07318947 usb_stor_suspend +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x1bc3edc2 usb_stor_sense_invalidCDB +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x29ca3cf7 usb_stor_Bulk_transport +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x2b4c92fa usb_stor_disconnect +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x2d7949b5 usb_stor_probe1 +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x369a1734 usb_stor_resume +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x3bf3296c usb_stor_transparent_scsi_command +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x4b76eb3d usb_stor_bulk_transfer_sg +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x4d24131d usb_stor_bulk_srb +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x693813e7 usb_stor_access_xfer_buf +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x95661024 usb_stor_post_reset +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xa03f751f usb_stor_probe2 +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xba286223 usb_stor_CB_transport +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xc6caf624 usb_stor_control_msg +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xc8c8a962 usb_stor_Bulk_reset +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xcbf26512 usb_stor_reset_resume +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xcfb4861c usb_stor_set_xfer_buf +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xd0fe2619 usb_stor_ctrl_transfer +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xd2588124 usb_stor_clear_halt +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xde0d040f usb_stor_pre_reset +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xe01f128f usb_stor_bulk_transfer_buf +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xe8c07771 usb_stor_CB_reset +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0x0dd3fc46 rpipe_ep_disable +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0x28288988 wa_urb_enqueue +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0x41a3aa82 wa_urb_dequeue +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0x59f83353 __wa_destroy +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0xc1138ea8 wa_create +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0xcb55ad58 rpipe_destroy +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0xf4654c3f wa_urb_enqueue_run +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x0bb6bf5e wusb_cluster_id_get +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x0bccd74f wusbhc_create +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x1d69e3d4 wusbhc_mmcie_rm +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x334b0d14 wusbhc_b_destroy +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x417dea0c wusbhc_mmcie_set +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x4dded6c2 wusbhc_b_create +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x5a92b534 __wusb_dev_get_by_usb_dev +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x6782dba1 wusbhc_rh_control +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x7338c0bc wusbhc_giveback_urb +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x7ca68bbd wusbhc_rh_start_port_reset +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x7f0b7631 wusb_dev_destroy +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x919c6c5e wusbhc_chid_set +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xb725d128 wusb_cluster_id_put +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xc7736fe7 wusbhc_reset_all +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xd3680aff wusbhc_rh_status_data +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xde966f3d wusbhc_handle_dn +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xf6ecf6c9 wusbhc_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 0x7ee70e1f i1480_fw_upload +EXPORT_SYMBOL_GPL drivers/uwb/i1480/dfu/i1480-dfu-usb 0x8d78d2fa i1480_cmd +EXPORT_SYMBOL_GPL drivers/uwb/i1480/dfu/i1480-dfu-usb 0xa59d6c78 i1480_rceb_check +EXPORT_SYMBOL_GPL drivers/uwb/umc 0x1e2e5a67 umc_driver_unregister +EXPORT_SYMBOL_GPL drivers/uwb/umc 0x2aa293cc umc_controller_reset +EXPORT_SYMBOL_GPL drivers/uwb/umc 0x74dcaf00 umc_match_pci_id +EXPORT_SYMBOL_GPL drivers/uwb/umc 0x7ce237af umc_device_unregister +EXPORT_SYMBOL_GPL drivers/uwb/umc 0x8108f921 __umc_driver_register +EXPORT_SYMBOL_GPL drivers/uwb/umc 0x9e23f8eb umc_device_register +EXPORT_SYMBOL_GPL drivers/uwb/umc 0xc0a73143 umc_device_create +EXPORT_SYMBOL_GPL drivers/uwb/umc 0xcdd58e28 umc_bus_type +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x0b8aad57 uwb_est_unregister +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x0d618f68 uwb_radio_start +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x1509890d uwb_rc_get_by_grandpa +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x1ba62bd0 uwb_rc_ie_rm +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x1da59ac1 uwb_rsv_modify +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x23511f4e uwb_rc_put +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x249b6bce uwb_rc_post_reset +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x25b7f353 uwb_rc_pre_reset +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x3124fb96 uwb_rc_dev_addr_get +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x360d848a uwb_rsv_destroy +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x381eefb4 uwb_rc_reset_all +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x393fba4d uwb_radio_stop +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x3b85c7a5 uwb_notifs_register +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x4d57ae3c uwb_rsv_type_str +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x59d460d2 uwb_rsv_accept +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x5a5ca84b uwb_rc_add +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x5e4bc088 __uwb_addr_print +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x62acdb61 uwb_rc_mac_addr_get +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x64acad45 uwb_rsv_terminate +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x72ac7e1a uwb_pal_init +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x7452d0b8 __uwb_rc_try_get +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x78ec4443 uwb_pal_register +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x7dcfcd23 uwb_ie_next +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x7de50768 uwb_rsv_establish +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x88dc178c uwb_rsv_get_usable_mas +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x8ceb8ac5 uwb_rc_ie_add +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x919a9a32 uwb_rc_get_by_dev +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x92b9ba6d uwb_rc_cmd_async +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x97306ca3 uwb_rsv_create +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x98413234 uwb_rsv_state_str +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x984fd17f uwb_notifs_deregister +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x9a61a08d uwb_rc_cmd +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x9b5e355a uwb_dev_for_each +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xa24eb4b0 uwb_rc_neh_error +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xb5a204fc uwb_rc_rm +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xc36482d2 uwb_rc_init +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xc8d3e481 uwb_rc_neh_grok +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xcadbc79b uwb_est_find_size +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xcc07d61c uwb_pal_unregister +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xe1716f06 uwb_est_register +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xea3b3748 uwb_rc_vcmd +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xeebc2ef9 uwb_rc_alloc +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xfc6e07b1 uwb_dev_try_get +EXPORT_SYMBOL_GPL drivers/uwb/whci 0x240278b7 whci_wait_for +EXPORT_SYMBOL_GPL drivers/vfio/vfio 0x1d2052da vfio_unregister_iommu_driver +EXPORT_SYMBOL_GPL drivers/vfio/vfio 0x4956dfcd vfio_del_group_dev +EXPORT_SYMBOL_GPL drivers/vfio/vfio 0x4d9f336c vfio_add_group_dev +EXPORT_SYMBOL_GPL drivers/vfio/vfio 0x584aa30d vfio_register_iommu_driver +EXPORT_SYMBOL_GPL drivers/vfio/vfio 0x95258207 vfio_device_data +EXPORT_SYMBOL_GPL drivers/vfio/vfio 0x969c73d9 vfio_device_put +EXPORT_SYMBOL_GPL drivers/vfio/vfio 0xd1a26487 vfio_device_get_from_dev +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x01384c2f vhost_dev_has_owner +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x0d29562a vhost_enable_notify +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x107106ec vhost_work_queue +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x269f7a09 vhost_dev_reset_owner_prepare +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x31f340fe vhost_signal +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x32bcc5e8 vhost_work_init +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x33abea60 vhost_add_used_and_signal +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x3517b299 vhost_dev_init +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x351a765e vhost_poll_stop +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x48726560 vhost_init_used +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x49f537b8 vhost_dev_reset_owner +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x54a60f12 vhost_disable_notify +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x5c1dd2c2 vhost_dev_stop +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x68f8fb24 vhost_poll_init +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x75e20efa vhost_add_used_and_signal_n +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x760efbec vhost_add_used +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x847389af vhost_poll_queue +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x8664ceeb vhost_get_vq_desc +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x87cda867 vhost_work_flush +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x9988ae75 vhost_log_access_ok +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x9f4f5330 vhost_add_used_n +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xbaf29564 vhost_dev_ioctl +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xbedfcded vhost_vq_access_ok +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xc01a6127 vhost_vring_ioctl +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xc7b2b376 vhost_log_write +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xe3b31322 vhost_poll_flush +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xe5b3a84e vhost_dev_cleanup +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xe7612970 vhost_dev_set_owner +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xe76e45da vhost_discard_vq_desc +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xefcd7d9a vhost_dev_check_owner +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xf9f905b9 vhost_poll_start +EXPORT_SYMBOL_GPL drivers/video/auo_k190x 0x1de1db5c auok190x_send_cmdargs_pixels +EXPORT_SYMBOL_GPL drivers/video/auo_k190x 0x2331a476 auok190x_common_remove +EXPORT_SYMBOL_GPL drivers/video/auo_k190x 0x49529556 auok190x_send_cmdargs_nowait +EXPORT_SYMBOL_GPL drivers/video/auo_k190x 0x5a92c73d auok190x_send_command_nowait +EXPORT_SYMBOL_GPL drivers/video/auo_k190x 0x67549c46 auok190x_pm +EXPORT_SYMBOL_GPL drivers/video/auo_k190x 0x8ae3e115 auok190x_read_cmdargs +EXPORT_SYMBOL_GPL drivers/video/auo_k190x 0x94491df5 auok190x_common_probe +EXPORT_SYMBOL_GPL drivers/video/auo_k190x 0x9ec36c8d auok190x_send_cmdargs_pixels_nowait +EXPORT_SYMBOL_GPL drivers/video/auo_k190x 0xe2c1f0b7 auok190x_send_command +EXPORT_SYMBOL_GPL drivers/video/auo_k190x 0xf73ef867 auok190x_send_cmdargs +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x00e93c8c ili9320_write_regs +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x25a8d834 ili9320_write +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x27e6d5bc ili9320_probe_spi +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x4bc1f30f ili9320_resume +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x672a7de8 ili9320_shutdown +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0xdfade090 ili9320_remove +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0xedfd914d ili9320_suspend +EXPORT_SYMBOL_GPL drivers/video/fb_ddc 0x0cf7d69b fb_ddc_read +EXPORT_SYMBOL_GPL drivers/video/fb_sys_fops 0x3200929c fb_sys_read +EXPORT_SYMBOL_GPL drivers/video/fb_sys_fops 0xff7b29e9 fb_sys_write +EXPORT_SYMBOL_GPL drivers/video/sis/sisfb 0x49ab1baf sis_free_new +EXPORT_SYMBOL_GPL drivers/video/sis/sisfb 0xcf64ce87 sis_malloc_new +EXPORT_SYMBOL_GPL drivers/w1/wire 0x45c19244 w1_write_block +EXPORT_SYMBOL_GPL drivers/w1/wire 0x496e587d w1_read_8 +EXPORT_SYMBOL_GPL drivers/w1/wire 0x4be6274e w1_touch_block +EXPORT_SYMBOL_GPL drivers/w1/wire 0x7c2f2afb w1_calc_crc8 +EXPORT_SYMBOL_GPL drivers/w1/wire 0x8166ddcf w1_next_pullup +EXPORT_SYMBOL_GPL drivers/w1/wire 0x88d7ebd1 w1_read_block +EXPORT_SYMBOL_GPL drivers/w1/wire 0x8f1e1e3d w1_reset_resume_command +EXPORT_SYMBOL_GPL drivers/w1/wire 0x923341d5 w1_reset_select_slave +EXPORT_SYMBOL_GPL drivers/w1/wire 0xd3cd6ce6 w1_write_8 +EXPORT_SYMBOL_GPL drivers/w1/wire 0xea1c7b18 w1_reset_bus +EXPORT_SYMBOL_GPL drivers/xen/xen-privcmd 0xe6425f9a xen_privcmd_fops +EXPORT_SYMBOL_GPL fs/dlm/dlm 0x5e90b847 dlm_posix_unlock +EXPORT_SYMBOL_GPL fs/dlm/dlm 0x7eb41735 dlm_posix_lock +EXPORT_SYMBOL_GPL fs/dlm/dlm 0x9321df95 dlm_lock +EXPORT_SYMBOL_GPL fs/dlm/dlm 0x97155758 dlm_posix_get +EXPORT_SYMBOL_GPL fs/dlm/dlm 0xc6dc8c2f dlm_new_lockspace +EXPORT_SYMBOL_GPL fs/dlm/dlm 0xcf9f3328 dlm_release_lockspace +EXPORT_SYMBOL_GPL fs/dlm/dlm 0xdc583c08 dlm_unlock +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 0x5bfc9ccc locks_start_grace +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x6884f4b8 lockd_down +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x77e35ccc nlmsvc_unlock_all_by_ip +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x78252a77 nlmsvc_unlock_all_by_sb +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x84b97ab2 nlmclnt_proc +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x8905e72a nlmclnt_done +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x8fc88f3c nlmsvc_ops +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x96baf5cb lockd_up +EXPORT_SYMBOL_GPL fs/lockd/lockd 0xa04916b3 nlmclnt_init +EXPORT_SYMBOL_GPL fs/lockd/lockd 0xd32edcee locks_in_grace +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x02bedf0e nfs_kill_super +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x04ea286c nfs_generic_pagein +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x07754316 nfs_initiate_commit +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x07b8308e nfs_free_server +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x0abe8818 nfs_file_mmap +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x0b966902 nfs_zap_acl_cache +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x0bf1dd44 nfs_file_flush +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x0c337dad nfs_fs_mount +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x0dd3ca60 nfs_file_splice_write +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x0e5d716f nfs_do_submount +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x0f510505 nfs_drop_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x10407fdd nfs_initiate_read +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x13dc1a8a nfs_init_server_rpcclient +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x154fc045 nfs_file_release +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x1664452f nfs_pageio_reset_write_mds +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x1fdbc698 nfs_generic_pg_test +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x24fe1b2c nfs_setsecurity +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x26884ff7 nfs_alloc_fhandle +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x28e7e466 nfs_pageio_init_write +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x29524df1 nfs4_fs_type +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x2c1e1a4f nfs_alloc_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x2faa8221 nfs_access_set_mask +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x337a4854 nfs_close_context +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x375f2072 nfs_file_write +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x37aca910 nfs_pageio_complete +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x39e05ac3 nfs_idmap_cache_timeout +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x3c8c98b8 nfs_revalidate_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x3ca31f35 nfs_net_id +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x3da9062e nfs_clone_sb_security +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x3e7e983f nfs_init_commit +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x3f2690f2 nfs_check_flags +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x3fc62457 nfs_server_copy_userdata +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x420861ed nfs_setattr_update_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x42f2c81f nfs4_client_id_uniquifier +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x467e315b nfs_alloc_client +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x4942d39f nfs_post_op_update_inode_force_wcc +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x4adcb173 nfs_probe_fsinfo +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x4c60ece9 nfs_may_open +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x4cb304c5 nfs_dentry_operations +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x4ec7727c nfs_init_client +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x4f575d9a nfs_file_splice_read +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x511c818c nfs_mark_client_ready +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x51892d61 nfs_callback_set_tcpport +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x519ed044 nfs_request_remove_commit_list +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x51d4f031 nfs_statfs +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x55a04942 nfs_writehdr_free +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x55a837cd nfs_set_sb_security +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x56803d15 nfs_clone_server +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x59cd7faa nfs_commitdata_alloc +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x5a184fec nfs_access_zap_cache +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x5a2ee6be nfs_show_path +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x5b1ad46c nfs4_label_alloc +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x5c73f1df nfs4_dentry_operations +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x5d456fee nfs_setattr +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x5d63a8a2 nfs_try_mount +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x5e184ad5 nfs_writedata_release +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x5e1d863a nfs_sockaddr_match_ipaddr +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x5fa8e6c9 nfs_path +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x6323ef1f alloc_nfs_open_context +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x65066d88 nfs_alloc_server +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x678e9205 nfs_show_stats +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x6b1d452d nfs_show_options +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x6b87823e nfs_sb_active +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x6c0694eb nfs_mknod +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x6db875c2 nfs_alloc_fattr +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7024262c nfs_lookup +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7089a0e1 nfs_create_server +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x76705867 nfs_write_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7696fe46 nfs_fs_mount_common +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7ad13926 nfs_free_client +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7cbe1d66 nfs_file_operations +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7d75040b nfs_fill_super +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7f835b07 nfs_post_op_update_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x82fab803 nfs_pageio_init_read +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x83e4e53f nfs_server_insert_lists +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x84ef88c5 nfs_pageio_reset_read_mds +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x850013df nfs_fscache_set_inode_cookie +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x85cc1b2d nfs_put_super +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x86237943 nfs_umount_begin +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x89bc5a64 nfs_wait_bit_killable +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x8ae041f7 nfs_permission +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x8f08e3ed nfs_get_client +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x90a5530f nfsiod_workqueue +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x911aa6ea nfs_commit_free +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x91d1fe52 max_session_slots +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x928059b9 nfs_sb_deactive +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x9285eb2c nfs_rename +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x92d33ef6 nfs_destroy_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x94ee2661 nfs_sops +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x951dcd51 nfs_initiate_write +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x97d13069 nfs_readhdr_free +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x99b39cde nfs_getattr +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x9aeb90b2 nfs_file_fsync_commit +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xa01929ce nfs_symlink +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xa056f597 nfs_file_llseek +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xa1f6c4b8 unregister_nfs_version +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xa2da6982 nfs_create_rpc_client +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xa33d102f register_nfs_version +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xa5c67162 nfs_readhdr_alloc +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xa7480c83 nfs_unlink +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xa8d2d1ce nfs_callback_tcpport +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xa8e9e1ae send_implementation_id +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xa9c0c942 nfs_init_cinfo +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xaaa14361 nfs_dreq_bytes_left +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xaf55f24a nfs_writehdr_alloc +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xb02d2202 nfs_lock +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xb05aa051 nfs_request_add_commit_list +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xb09c2ed4 nfs_wb_all +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xb0a7c4f6 nfs_wait_client_init_complete +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xb0f64abd nfs_submount +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xb141766c nfs_invalidate_atime +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xb2e035e3 nfs_file_read +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xb3a28e92 put_nfs_open_context +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xb45cf70f nfs_put_client +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xb48bf4b1 nfs_setlease +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xb763888c nfs_generic_flush +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xb76fffdf nfs_access_add_cache +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xba3dbbf8 nfs_show_devname +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xbd49861e nfs_refresh_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xc1a03a1c nfs_rmdir +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xc234e859 nfs_pageio_init +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xc244b7f7 get_nfs_open_context +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xc407a462 nfs_fhget +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xc5ef47d5 nfs_init_timeout_values +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xc6b6e846 nfs_flock +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xcc7fd0af nfs_mkdir +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xd10e5e58 nfs_remount +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xd4148437 nfs_readdata_release +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xd656d39d nfs_link +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xd90ad273 nfs_create +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xdae9b5d7 nfs4_disable_idmapping +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xe363ef0e nfs_pgheader_init +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xe474b593 nfs_instantiate +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xe632974a nfs_inode_attach_open_context +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xe9b88759 nfs_retry_commit +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xeb9dfeb9 nfs_commitdata_release +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xed1b23b1 nfs_atomic_open +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xeeceb206 nfs_fattr_init +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xf0cc6dea nfs_clear_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xf5a69bc0 nfs_file_set_open_context +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xf794437d nfs_force_lookup_revalidate +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xfaee9c19 nfs_pageio_add_request +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xff7b9638 nfs_fs_type +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x170f3ed6 nfs41_maxgetdevinfo_overhead +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x19622b11 pnfs_write_done_resend_to_mds +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x1c9d69ef nfs4_init_deviceid_node +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x1ea94bfc nfs4_insert_deviceid_node +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x26fcfe60 pnfs_read_done_resend_to_mds +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x30fbac77 nfs41_setup_sequence +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x3b80ce3f pnfs_generic_pg_init_write +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x40ba40d2 nfs4_put_deviceid_node +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x40cd994e nfs4_set_rw_stateid +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x478416c2 pnfs_writehdr_free +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x4a99506f pnfs_generic_pg_readpages +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x51fb827c nfs4_proc_getdeviceinfo +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x60782ce8 pnfs_generic_pg_test +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x64ae08d0 pnfs_readhdr_free +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x65551bf2 _pnfs_return_layout +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x71591158 pnfs_generic_pg_writepages +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x753797f3 nfs4_delete_deviceid +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x7be1ae92 nfs4_schedule_lease_recovery +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x80c7c904 nfs_remove_bad_delegation +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x8a74d206 nfs4_schedule_session_recovery +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x9299a53b pnfs_ld_read_done +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x98e8e2ed pnfs_register_layoutdriver +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x9f78b80d nfs4_proc_getdevicelist +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xabc21e5f nfs4_mark_deviceid_unavailable +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xb3cf3ccf pnfs_destroy_layout +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xbed3a922 pnfs_put_lseg +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xc3ac139e pnfs_update_layout +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xc90cc856 nfs4_set_ds_client +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xca3b0ba0 pnfs_generic_pg_init_read +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xcbbd9ee5 nfs4_schedule_stateid_recovery +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xd3aa503b nfs4_find_get_deviceid +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xd551bef3 pnfs_set_layoutcommit +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xd9f35fb6 pnfs_ld_write_done +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xe8aa45e0 pnfs_set_lo_fail +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xe940a009 nfs4_test_deviceid_unavailable +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xed15fb41 nfs4_print_deviceid +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xf39c28ff nfs4_init_ds_session +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xfd56ec5f pnfs_unregister_layoutdriver +EXPORT_SYMBOL_GPL fs/nfs_common/nfs_acl 0x3820bd8f nfsacl_encode +EXPORT_SYMBOL_GPL fs/nfs_common/nfs_acl 0xc6a0d097 nfsacl_decode +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x0ce67022 o2hb_register_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x1b89c6ee o2hb_fill_node_map +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x1cb231d0 mlog_not_bits +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x1d747ce3 o2hb_check_node_heartbeating +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x36418553 o2net_send_message +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x3ce8cb6d o2nm_get_node_by_num +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x4900035b o2hb_stop_all_regions +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x4e125da6 o2nm_get_node_by_ip +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x51d6b075 o2hb_setup_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x687f6251 mlog_and_bits +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x74cb3d59 o2nm_node_get +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xa82a8645 o2nm_this_node +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xa87bc9e7 o2nm_configured_node_map +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xa9f5379a o2net_send_message_vec +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xae808bac o2net_register_handler +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xb659cd31 o2nm_node_put +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xbaeb4700 o2hb_check_node_heartbeating_from_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xc3679d7b o2hb_get_all_regions +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xd40b489b o2hb_unregister_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xd60f2c6c o2hb_check_local_node_heartbeating +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xd859ac8c o2net_fill_node_map +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xf1a5611d o2net_unregister_handler_list +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x46963678 dlm_register_domain +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x59c5ac5e 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 0x95eaa74e dlm_register_eviction_cb +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x99e6df8d dlmunlock +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xd7ba575e dlm_errmsg +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xd866a638 dlm_unregister_domain +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xd8fa57a6 dlm_unregister_eviction_cb +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xe12f4136 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 0x6b42d0ff ocfs2_stack_glue_register +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x7083dbd5 ocfs2_dlm_dump_lksb +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x75ebda19 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 0xc2f11294 ocfs2_stack_glue_unregister +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/notifier-error-inject 0x113f91ca notifier_err_inject_init +EXPORT_SYMBOL_GPL lib/notifier-error-inject 0x96eaf19c notifier_err_inject_dir +EXPORT_SYMBOL_GPL lib/raid6/raid6_pq 0x021957e1 raid6_datap_recov +EXPORT_SYMBOL_GPL lib/raid6/raid6_pq 0x05513b71 raid6_call +EXPORT_SYMBOL_GPL lib/raid6/raid6_pq 0x0f8a2742 raid6_2data_recov +EXPORT_SYMBOL_GPL net/802/garp 0x42fce0e6 garp_uninit_applicant +EXPORT_SYMBOL_GPL net/802/garp 0x9b61b16d garp_register_application +EXPORT_SYMBOL_GPL net/802/garp 0xbc26ecb1 garp_request_join +EXPORT_SYMBOL_GPL net/802/garp 0xcdcbf4c5 garp_request_leave +EXPORT_SYMBOL_GPL net/802/garp 0xe6741a4b garp_init_applicant +EXPORT_SYMBOL_GPL net/802/garp 0xfe0695ed garp_unregister_application +EXPORT_SYMBOL_GPL net/802/mrp 0x1beab827 mrp_register_application +EXPORT_SYMBOL_GPL net/802/mrp 0x204c0487 mrp_unregister_application +EXPORT_SYMBOL_GPL net/802/mrp 0x2c05194f mrp_request_leave +EXPORT_SYMBOL_GPL net/802/mrp 0x7017c989 mrp_init_applicant +EXPORT_SYMBOL_GPL net/802/mrp 0xaa65298e mrp_uninit_applicant +EXPORT_SYMBOL_GPL net/802/mrp 0xbca394fb mrp_request_join +EXPORT_SYMBOL_GPL net/802/stp 0x431bb8c0 stp_proto_unregister +EXPORT_SYMBOL_GPL net/802/stp 0x9272c089 stp_proto_register +EXPORT_SYMBOL_GPL net/9p/9pnet 0x3fd5f753 p9_client_xattrcreate +EXPORT_SYMBOL_GPL net/9p/9pnet 0x6f88462c p9_client_xattrwalk +EXPORT_SYMBOL_GPL net/atm/atm 0xb09faf79 register_atmdevice_notifier +EXPORT_SYMBOL_GPL net/atm/atm 0xcfb6a3da 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 0xcc0010f3 ax25_register_pid +EXPORT_SYMBOL_GPL net/bluetooth/bluetooth 0x98fe59d8 bt_debugfs +EXPORT_SYMBOL_GPL net/dccp/dccp 0x050c4b67 dccp_disconnect +EXPORT_SYMBOL_GPL net/dccp/dccp 0x09a123b7 dccp_orphan_count +EXPORT_SYMBOL_GPL net/dccp/dccp 0x0cd67be9 dccp_rcv_state_process +EXPORT_SYMBOL_GPL net/dccp/dccp 0x1354384f dccp_feat_signal_nn_change +EXPORT_SYMBOL_GPL net/dccp/dccp 0x18a7321e dccp_setsockopt +EXPORT_SYMBOL_GPL net/dccp/dccp 0x1d99d49a dccp_timestamp +EXPORT_SYMBOL_GPL net/dccp/dccp 0x1df28e47 dccp_sync_mss +EXPORT_SYMBOL_GPL net/dccp/dccp 0x1f562a45 dccp_child_process +EXPORT_SYMBOL_GPL net/dccp/dccp 0x205b855a dccp_insert_option_elapsed_time +EXPORT_SYMBOL_GPL net/dccp/dccp 0x443f2260 dccp_create_openreq_child +EXPORT_SYMBOL_GPL net/dccp/dccp 0x46344d01 dccp_getsockopt +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 0x54461176 dccp_send_ack +EXPORT_SYMBOL_GPL net/dccp/dccp 0x551a7425 dccp_recvmsg +EXPORT_SYMBOL_GPL net/dccp/dccp 0x55fc0036 dccp_ctl_make_reset +EXPORT_SYMBOL_GPL net/dccp/dccp 0x58aeab2d dccp_poll +EXPORT_SYMBOL_GPL net/dccp/dccp 0x6742e721 dccp_make_response +EXPORT_SYMBOL_GPL net/dccp/dccp 0x6d4c8424 dccp_destroy_sock +EXPORT_SYMBOL_GPL net/dccp/dccp 0x6fd40712 dccp_hashinfo +EXPORT_SYMBOL_GPL net/dccp/dccp 0x71753630 dccp_set_state +EXPORT_SYMBOL_GPL net/dccp/dccp 0x748de588 dccp_close +EXPORT_SYMBOL_GPL net/dccp/dccp 0x79487586 dccp_connect +EXPORT_SYMBOL_GPL net/dccp/dccp 0x7bf571bc dccp_rcv_established +EXPORT_SYMBOL_GPL net/dccp/dccp 0x7c95e136 dccp_parse_options +EXPORT_SYMBOL_GPL net/dccp/dccp 0x86be7924 dccp_packet_name +EXPORT_SYMBOL_GPL net/dccp/dccp 0x8cc1182d dccp_ioctl +EXPORT_SYMBOL_GPL net/dccp/dccp 0x8f232564 dccp_init_sock +EXPORT_SYMBOL_GPL net/dccp/dccp 0x9598d24d dccp_ackvec_parsed_cleanup +EXPORT_SYMBOL_GPL net/dccp/dccp 0x97e99f6a dccp_reqsk_send_ack +EXPORT_SYMBOL_GPL net/dccp/dccp 0xa307332c dccp_sendmsg +EXPORT_SYMBOL_GPL net/dccp/dccp 0xa9ea1a24 dccp_done +EXPORT_SYMBOL_GPL net/dccp/dccp 0xaddaec12 dccp_insert_option +EXPORT_SYMBOL_GPL net/dccp/dccp 0xbfb19ede dccp_feat_nn_get +EXPORT_SYMBOL_GPL net/dccp/dccp 0xc6d04571 dccp_death_row +EXPORT_SYMBOL_GPL net/dccp/dccp 0xc976d790 dccp_shutdown +EXPORT_SYMBOL_GPL net/dccp/dccp 0xd203cdc8 dccp_check_req +EXPORT_SYMBOL_GPL net/dccp/dccp 0xdc57a428 inet_dccp_listen +EXPORT_SYMBOL_GPL net/dccp/dccp 0xf3017e21 dccp_statistics +EXPORT_SYMBOL_GPL net/dccp/dccp 0xf5cde69f dccp_reqsk_init +EXPORT_SYMBOL_GPL net/dccp/dccp 0xf82312bf dccp_send_sync +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x09c003b3 dccp_invalid_packet +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x483e8de6 dccp_v4_send_check +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x4bb3477e dccp_v4_do_rcv +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x5a31dc3a dccp_v4_conn_request +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0xb1019a61 dccp_v4_connect +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0xebd8c4f3 dccp_v4_request_recv_sock +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x5ac47f89 register_switch_driver +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x61b96990 unregister_switch_driver +EXPORT_SYMBOL_GPL net/ipv4/gre 0x3409c473 gre_build_header +EXPORT_SYMBOL_GPL net/ipv4/gre 0x7674b028 gre_add_protocol +EXPORT_SYMBOL_GPL net/ipv4/gre 0xb8dc491f gre_cisco_unregister +EXPORT_SYMBOL_GPL net/ipv4/gre 0xe0eb2d6b gre_cisco_register +EXPORT_SYMBOL_GPL net/ipv4/gre 0xef96c713 gre_del_protocol +EXPORT_SYMBOL_GPL net/ipv4/gre 0xf4ebaf29 gre_handle_offloads +EXPORT_SYMBOL_GPL net/ipv4/inet_diag 0x3f3f5b8d inet_diag_unregister +EXPORT_SYMBOL_GPL net/ipv4/inet_diag 0x5883f825 inet_diag_bc_sk +EXPORT_SYMBOL_GPL net/ipv4/inet_diag 0x97f199f9 inet_diag_dump_one_icsk +EXPORT_SYMBOL_GPL net/ipv4/inet_diag 0x9b9ee9b1 inet_diag_register +EXPORT_SYMBOL_GPL net/ipv4/inet_diag 0xf29baeb4 inet_diag_dump_icsk +EXPORT_SYMBOL_GPL net/ipv4/inet_diag 0xf8930753 inet_sk_diag_fill +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x18bb6e3b ip_tunnel_rcv +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x206c4445 ip_tunnel_init +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x300f9804 ip_tunnel_dellink +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x3ed2bf81 ip_tunnel_get_stats64 +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x4362fcf0 ip_tunnel_setup +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x4408b6c9 ip_tunnel_change_mtu +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x9757feac ip_tunnel_uninit +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0xa4032afb ip_tunnel_lookup +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0xad26396c ip_tunnel_xmit +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0xad9cbf04 ip_tunnel_delete_net +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0xbaab0de8 ip_tunnel_ioctl +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0xe6adc2d9 ip_tunnel_changelink +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0xf4b15009 ip_tunnel_newlink +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0xf67f31eb ip_tunnel_init_net +EXPORT_SYMBOL_GPL net/ipv4/netfilter/arp_tables 0x23b78e49 arpt_alloc_initial_table +EXPORT_SYMBOL_GPL net/ipv4/netfilter/ip_tables 0x2f141e1d ipt_alloc_initial_table +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_ipv4 0xc0a34b68 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 0x3571e784 tcp_vegas_cwnd_event +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x54a97e7b tcp_vegas_get_info +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x65e80a10 tcp_vegas_pkts_acked +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x8802eca5 tcp_vegas_state +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0xb99e8cfb tcp_vegas_init +EXPORT_SYMBOL_GPL net/ipv4/xfrm4_mode_tunnel 0x7845795c xfrm4_mode_tunnel_input_deregister +EXPORT_SYMBOL_GPL net/ipv4/xfrm4_mode_tunnel 0xdf98821a xfrm4_mode_tunnel_input_register +EXPORT_SYMBOL_GPL net/ipv6/ip6_tunnel 0x192af694 ip6_tnl_xmit_ctl +EXPORT_SYMBOL_GPL net/ipv6/ip6_tunnel 0x2861201e ip6_tnl_dst_reset +EXPORT_SYMBOL_GPL net/ipv6/ip6_tunnel 0x2a7f94c4 ip6_tnl_dst_check +EXPORT_SYMBOL_GPL net/ipv6/ip6_tunnel 0xacaa7865 ip6_tnl_dst_store +EXPORT_SYMBOL_GPL net/ipv6/ip6_tunnel 0xf272fd78 ip6_tnl_rcv_ctl +EXPORT_SYMBOL_GPL net/ipv6/netfilter/ip6_tables 0x9e0cbec1 ip6t_alloc_initial_table +EXPORT_SYMBOL_GPL net/ipv6/netfilter/nf_defrag_ipv6 0x6eb85693 nf_defrag_ipv6_enable +EXPORT_SYMBOL_GPL net/ipv6/netfilter/nf_nat_ipv6 0x33cd5832 nf_nat_icmpv6_reply_translation +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x10fce62c l2tp_session_queue_purge +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x32cc34b8 l2tp_tunnel_find_nth +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x47848976 l2tp_udp_encap_recv +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x4da45371 l2tp_tunnel_delete +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x553b5fbd l2tp_session_free +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x608c3115 l2tp_tunnel_find +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x6a69343c l2tp_session_delete +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x75377191 l2tp_session_find_nth +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x8bb5f91f l2tp_session_find +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xbc5160a3 l2tp_session_create +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xc66755b9 l2tp_session_find_by_ifname +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xce6ce3cf __l2tp_session_unhash +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xd53adc8f l2tp_xmit_skb +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xdbcda258 l2tp_tunnel_closeall +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xde568822 l2tp_tunnel_sock_put +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xef6e8baf l2tp_tunnel_create +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xef738f0f l2tp_tunnel_sock_lookup +EXPORT_SYMBOL_GPL net/l2tp/l2tp_netlink 0x20fa226f l2tp_nl_register_ops +EXPORT_SYMBOL_GPL net/l2tp/l2tp_netlink 0x337f2432 l2tp_nl_unregister_ops +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x0add00f1 ieee80211_iterate_active_interfaces_atomic +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x4425d078 ieee80211_gtk_rekey_notify +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x7ba3dd7c ieee80211_iter_chan_contexts_atomic +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x9f18eb90 ieee80211_ave_rssi +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xa024ffbf ieee80211_ready_on_channel +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xac2081a0 ieee80211_resume_disconnect +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xb7c402b4 ieee80211_find_sta_by_ifaddr +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xca140dfa ieee80211_request_smps +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xebe1ed24 ieee80211_remain_on_channel_expired +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xf0e3df63 ieee80211_iterate_active_interfaces +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x071bde33 ip_set_get_ip_port +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x080d68d0 ip_set_get_ip6_port +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x1f4b7440 ip_set_del +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x35717498 ip_set_type_register +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x397f6231 ip_set_free +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x4552531e ip_set_test +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x4683cd2b ip_set_type_unregister +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x6344eaf6 ip_set_alloc +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x7762965e ip_set_nfnl_put +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x7924b6de ip_set_hostmask_map +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x80ee118c ip_set_nfnl_get +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x81fff2d1 ip_set_netmask_map +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x85daef00 ip_set_get_byname +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x883d6572 ip_set_name_byindex +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x9e98722b ip_set_get_ipaddr6 +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xa293f8a6 ip_set_get_ipaddr4 +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xa2d623f3 ip_set_range_to_cidr +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xc3b062db ip_set_nfnl_get_byindex +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xe0da2889 ip_set_get_extensions +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xe4435091 ip_set_add +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xf1630a38 ip_set_get_ip4_port +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xfda3ec7a ip_set_put_byindex +EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0x77e4c539 ip_vs_conn_in_get_proto +EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0x98d5d9a6 register_ip_vs_pe +EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0xb8a3541e ip_vs_conn_out_get_proto +EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0xd871c134 unregister_ip_vs_pe +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x036d8512 nf_ct_expect_init +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x045072cd nf_ct_port_nla_policy +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x054e5595 nf_ct_get_tuplepr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x06c846a6 nf_conntrack_helper_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x0efd6339 nf_ct_invert_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x0f2df4ff nf_conntrack_alter_reply +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x0f67ba7a nf_ct_expect_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x1792d69f nfnetlink_parse_nat_setup_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x179a406f nf_connlabel_match +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x19d52a9c nf_conntrack_helper_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x1df4c926 nf_conntrack_tuple_taken +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x20ec5f5c nf_ct_helper_ext_add +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x22c50e18 nf_ct_l3proto_pernet_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x26175e06 nf_ct_nat_offset +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x275ec90c nf_ct_expect_alloc +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x289c3714 nf_ct_alloc_hashtable +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x28e75022 nf_ct_l3protos +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x2c17ba47 nf_ct_l4proto_pernet_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x367f054f nf_ct_expect_related_report +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x36ab0cab nf_ct_l4proto_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x37386cac nf_conntrack_hash_rnd +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x377f7f4b __nf_conntrack_helper_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3f5b1415 nf_ct_port_nlattr_to_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x416e1409 __nf_conntrack_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x45bd665e nf_ct_l4proto_pernet_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x45c6ac82 nf_conntrack_free +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x45ea859c __nf_ct_kill_acct +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x4b8a9f11 __nf_conntrack_confirm +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x57bade36 nf_conntrack_hash_check_insert +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x592881ab nf_conntrack_l4proto_udp4 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x59c9e09c nf_ct_l4proto_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x62813e5c nf_ct_port_nlattr_tuple_size +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x62caed34 nf_conntrack_helper_try_module_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x642ae050 nf_conntrack_l3proto_generic +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x659b3f34 nf_ct_unlink_expect_report +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x691d744d __nf_ct_l4proto_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x693c3961 nf_ct_helper_hash +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6ad04392 nf_conntrack_unregister_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6af1ce52 __nf_ct_refresh_acct +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6b1ee329 nf_conntrack_l4proto_udp6 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6e224a7a need_conntrack +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7248f172 nf_ct_expect_register_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x784f8137 nf_ct_deliver_cached_events +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x78f9b710 nf_ct_l3proto_try_module_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7967352e seq_print_acct +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7a5052c3 nf_ct_l3proto_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7d39b270 nf_conntrack_alloc +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7ee78762 nf_nat_seq_adjust_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x80e50891 nf_conntrack_flush_report +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8599f457 nf_ct_l3proto_pernet_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x86535676 nf_conntrack_l4proto_tcp6 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8fe4fbb8 nf_ct_timeout_put_hook +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 0x9b5a0487 nf_conntrack_register_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x9cf76454 nf_ct_l3proto_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa73a91aa nf_conntrack_in +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xab2c8578 nf_ct_extend_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xab3d1f95 nf_ct_untracked_status_or +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xab496d70 nf_ct_l4proto_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xab9740ed nf_ct_get_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xad1bb027 nf_ct_free_hashtable +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xad4d3ced nf_ct_timeout_find_get_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb1beca02 nf_ct_helper_expectfn_find_by_symbol +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb23f3373 nf_conntrack_lock +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb46534f4 nf_conntrack_l4proto_tcp4 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb602c57e nf_ct_l3proto_module_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xbdcc212d nf_ct_l4proto_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc0240dd4 nf_conntrack_set_hashsize +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc18ac88d nf_ct_expect_hsize +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc40f284c nf_ct_helper_hsize +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc99e4445 nf_ct_expect_unregister_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xca417bf8 nf_ct_unexpect_related +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xcab68018 nf_connlabels_replace +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xcc542800 __nf_ct_expect_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xd2c22c13 nf_ct_extend_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xd6888ba9 nf_ct_iterate_cleanup +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xd856d4b0 nf_ct_helper_log +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xd895723c nf_ct_helper_expectfn_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xda9f27ec nf_ct_helper_expectfn_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xdb68d7b6 nf_conntrack_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xe0380a81 __nf_ct_try_assign_helper +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xe7719974 nf_connlabel_set +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xe867f5d5 nf_ct_expect_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xe892332c nf_ct_remove_expectations +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xec4d13b6 nf_ct_l3proto_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf00c82ea nf_ct_dying_timeout +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf228290b nf_ct_helper_expectfn_find_by_name +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf38bcdf3 nf_conntrack_max +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf6ca1c36 nf_ct_port_tuple_to_nlattr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xfc632de4 nf_ct_delete_from_lists +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xff305c63 nf_ct_l3proto_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_amanda 0x7ffc57c0 nf_nat_amanda_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_broadcast 0x3efef2d1 nf_conntrack_broadcast_help +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_ftp 0x0a416be4 nf_nat_ftp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x03224577 nat_h245_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x0ad9595f set_h225_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x0d7cf36a nat_q931_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x23d53c65 get_h225_addr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x3b0f23be set_h245_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x85509ea1 set_sig_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x97ac04aa nat_callforwarding_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xc6af21cb set_ras_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xcd1ab199 nat_t120_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xf01d1359 nat_rtp_rtcp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_irc 0x334a7d98 nf_nat_irc_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x0dfe1a8c nf_nat_pptp_hook_outbound +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x7cbee0f2 nf_nat_pptp_hook_exp_gre +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0xb5496c5d nf_nat_pptp_hook_expectfn +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0xe7c64801 nf_nat_pptp_hook_inbound +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_proto_gre 0x7bdcbe14 nf_ct_gre_keymap_add +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_proto_gre 0xe3161ee1 nf_ct_gre_keymap_destroy +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x04407c74 nf_nat_sdp_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x2188a69f ct_sip_parse_address_param +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x2dbe701d nf_nat_sdp_media_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x64202346 ct_sip_parse_request +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x7d6a430a nf_nat_sip_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x86088ac0 ct_sip_parse_numerical_param +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x873a1153 nf_nat_sip_seq_adjust_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x9b01c6a7 ct_sip_get_sdp_header +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xaf8644fc nf_nat_sip_expect_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xbe9b68b5 nf_nat_sdp_session_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xc3365e31 ct_sip_get_header +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xe80bca68 ct_sip_parse_header_uri +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xff519673 nf_nat_sdp_port_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_snmp 0x46cbac9d nf_nat_snmp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_tftp 0x272f8bcf nf_nat_tftp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x015d552e nf_nat_l4proto_register +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x0d9bae4b nf_nat_l4proto_nlattr_to_range +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x131f636c nf_nat_l4proto_in_range +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x49498fb0 nf_nat_set_seq_adjust +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x87e8b295 nf_nat_l4proto_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x8b8185c2 nf_nat_l4proto_unique_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0xa289210c nf_nat_l3proto_register +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0xa45b235c nf_nat_l3proto_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0xce47063e __nf_nat_l4proto_find +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0xd2c8e459 nf_nat_packet +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0xd7de6da4 nf_nat_tcp_seq_adjust +EXPORT_SYMBOL_GPL net/netfilter/nf_tproxy_core 0x515d172d nf_tproxy_assign_sock +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x07405391 nfnetlink_send +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x13a6c439 nfnetlink_set_err +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x3bba92f0 nfnetlink_alloc_skb +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x5ce3b588 nfnl_lock +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x5dff307d nfnetlink_subsys_register +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x8ee30eb2 nfnetlink_has_listeners +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x92f65b29 nfnetlink_subsys_unregister +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xcd259e23 nfnetlink_unicast +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xdb065657 nfnl_unlock +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink_acct 0x21f6bba6 nfnl_acct_find_get +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink_acct 0x69399bdc nfnl_acct_update +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink_acct 0xbecf5d14 nfnl_acct_put +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink_log 0xdd467bd9 nfulnl_log_packet +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x1daa8242 xt_register_table +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x40728a63 xt_find_revision +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x40f3e80a xt_proto_fini +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x54f794e3 xt_request_find_match +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x56e5069e xt_replace_table +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x650e9221 xt_check_target +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x7223a95a xt_check_match +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x807d2b2c xt_recseq +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x8c72e995 xt_proto_init +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xd35d52a7 xt_unregister_table +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xdfe8fdf6 xt_table_unlock +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xeb9f3d31 xt_find_table_lock +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xf5148957 xt_request_find_target +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xf7620fa9 xt_hook_unlink +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xf9d5855d xt_hook_link +EXPORT_SYMBOL_GPL net/netfilter/xt_RATEEST 0x57909dc1 xt_rateest_put +EXPORT_SYMBOL_GPL net/netfilter/xt_RATEEST 0xd0f26ea3 xt_rateest_lookup +EXPORT_SYMBOL_GPL net/nfc/nci/nci 0x01854248 nci_spi_free_device +EXPORT_SYMBOL_GPL net/nfc/nci/nci 0x8ad9415a nci_spi_allocate_device +EXPORT_SYMBOL_GPL net/nfc/nci/nci 0xa992bb42 nci_spi_register_device +EXPORT_SYMBOL_GPL net/nfc/nci/nci 0xea687af5 nci_spi_unregister_device +EXPORT_SYMBOL_GPL net/nfc/nci/nci 0xf052b0be nci_spi_recv_frame +EXPORT_SYMBOL_GPL net/rds/rds 0x00a467af rds_wq +EXPORT_SYMBOL_GPL net/rds/rds 0x13841b73 rds_page_remainder_alloc +EXPORT_SYMBOL_GPL net/rds/rds 0x1a237ea0 rds_connect_complete +EXPORT_SYMBOL_GPL net/rds/rds 0x2693ac43 rds_conn_connect_if_down +EXPORT_SYMBOL_GPL net/rds/rds 0x2c5c5514 rds_message_add_rdma_dest_extension +EXPORT_SYMBOL_GPL net/rds/rds 0x2fdc0e00 rds_conn_create +EXPORT_SYMBOL_GPL net/rds/rds 0x3101936e rds_message_add_extension +EXPORT_SYMBOL_GPL net/rds/rds 0x3b12cba5 rds_atomic_send_complete +EXPORT_SYMBOL_GPL net/rds/rds 0x482cb492 rds_send_drop_acked +EXPORT_SYMBOL_GPL net/rds/rds 0x50cbe7b3 rds_stats +EXPORT_SYMBOL_GPL net/rds/rds 0x59d5077e rds_message_unmapped +EXPORT_SYMBOL_GPL net/rds/rds 0x73aac73d rds_message_populate_header +EXPORT_SYMBOL_GPL net/rds/rds 0x7437052c rds_rdma_send_complete +EXPORT_SYMBOL_GPL net/rds/rds 0x782b72a0 rds_inc_init +EXPORT_SYMBOL_GPL net/rds/rds 0x81fd25ef rds_recv_incoming +EXPORT_SYMBOL_GPL net/rds/rds 0x84bbde67 rds_message_addref +EXPORT_SYMBOL_GPL net/rds/rds 0x8b771359 rds_send_get_message +EXPORT_SYMBOL_GPL net/rds/rds 0x8f975a87 rds_conn_drop +EXPORT_SYMBOL_GPL net/rds/rds 0x95c99249 rds_trans_unregister +EXPORT_SYMBOL_GPL net/rds/rds 0x96fafe85 rds_stats_info_copy +EXPORT_SYMBOL_GPL net/rds/rds 0x972be356 rds_trans_register +EXPORT_SYMBOL_GPL net/rds/rds 0xa193b73f rds_message_put +EXPORT_SYMBOL_GPL net/rds/rds 0xa7b24d9d rds_conn_create_outgoing +EXPORT_SYMBOL_GPL net/rds/rds 0xb2bb4997 rds_info_deregister_func +EXPORT_SYMBOL_GPL net/rds/rds 0xb499009d rds_for_each_conn_info +EXPORT_SYMBOL_GPL net/rds/rds 0xbda9e5dd rds_page_copy_user +EXPORT_SYMBOL_GPL net/rds/rds 0xc2dab779 rds_info_copy +EXPORT_SYMBOL_GPL net/rds/rds 0xc4671d44 rds_info_register_func +EXPORT_SYMBOL_GPL net/rds/rds 0xc642cc2c rds_cong_map_updated +EXPORT_SYMBOL_GPL net/rds/rds 0xda4153d6 rds_inc_put +EXPORT_SYMBOL_GPL net/rds/rds 0xe8f37555 rds_conn_destroy +EXPORT_SYMBOL_GPL net/rxrpc/af-rxrpc 0x7160b526 rxrpc_unregister_security +EXPORT_SYMBOL_GPL net/rxrpc/af-rxrpc 0xe2340509 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 0x6d9f2e33 gss_mech_register +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x764ce170 svcauth_gss_flavor +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x8d1a827e svcauth_gss_register_pseudoflavor +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xb5dea7ef g_token_size +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xc55eada0 gss_mech_unregister +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xf8b2ff6e g_verify_token_header +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x02b1b8a7 rpc_lookup_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x045834e9 rpcauth_get_pseudoflavor +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x05944f1f xdr_stream_pos +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 0x07906070 rpc_protocol +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x07956535 rpc_destroy_pipe_data +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x07d49962 svc_rpcb_cleanup +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0920e3ae rpc_create +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0a0f447d rpc_wake_up_next +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0aca4e74 xdr_set_scratch_buffer +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0b94980f unix_domain_find +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0d33c020 rpc_shutdown_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0e41733f xprt_adjust_cwnd +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0e58458d svc_reg_xprt_class +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0f668ba9 svc_auth_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0ffea5f3 rpc_setbufsize +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x12c586c5 rpc_wake_up_status +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x14ac04e2 xprt_complete_rqst +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x17d546dd _copy_from_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x18283ec8 xprt_wake_pending_tasks +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x18d51144 sunrpc_cache_pipe_upcall +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1b7a0eb1 svc_create +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1cb447f3 rpc_init_wait_queue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1d7d7300 svc_prepare_thread +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x204c74c9 rpc_delay +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2184430e svc_max_payload +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x23279562 rpc_call_async +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2452b6c6 bc_svc_process +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2543e503 svc_bind +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x264ac17c xprt_setup_backchannel +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2750ed01 rpc_wake_up +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x28bfc852 xdr_buf_from_iov +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2919b156 xdr_decode_string_inplace +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2eec63c9 xdr_encode_netobj +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2f8ebbe0 rpc_ntop +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2f90bcf6 xdr_init_encode +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2f937b71 svc_create_pooled +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x301fe5d5 xdr_decode_array2 +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x31a89d59 rpc_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x31fc7121 rpc_wake_up_first +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x33901e25 rpc_alloc_iostats +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3449875a rpc_proc_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x360e9dee svc_drop +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x371cc51c rpc_call_start +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x37d440e5 write_bytes_to_xdr_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x387e1639 rpc_pipefs_notifier_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x390e3076 xdr_encode_array2 +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3a4c4e3f rpc_sleep_on +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3c023e43 xprt_destroy_backchannel +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3c5bf441 rpcb_getport_async +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3de800a8 svc_recv +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3e6ec937 sunrpc_destroy_cache_detail +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4117c637 rpc_task_reset_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x42079125 rpc_localaddr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x42ea6d4d svc_destroy +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x45bc2c07 rpcauth_lookup_credcache +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x46590fa7 xprt_reserve_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x47e6c195 rpc_run_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4b8a3373 rpc_clone_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4d3d7c07 rpc_free_iostats +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4db16fd4 rpc_rmdir +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4f0a4fb7 rpc_queue_upcall +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4f50f511 xdr_init_decode_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4fd2386b cache_create_net +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x53445f68 nlm_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x544a2581 xprt_release_xprt_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x54d0e49a rpc_lookup_machine_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x54f24872 svc_set_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x561a74ab xdr_read_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5620dbf2 rpcauth_init_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x56b6fc21 xprt_wait_for_buffer_space +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x586d3401 svc_xprt_put +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5b49c216 sunrpc_init_cache_detail +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5c92e48a rpc_mkpipe_data +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5ead8cd0 sunrpc_cache_register_pipefs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5eb14e59 xdr_buf_trim +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x61a1c3dc sunrpc_cache_lookup +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x61cca597 rpc_killall_tasks +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x631c84de svc_sock_update_bufs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x635588b2 xprt_lookup_rqst +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x64664aec svc_seq_show +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x66ac3fa8 rpcauth_create +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x66c5fdbe rpc_mkpipe_dentry +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x67748ca4 rpc_net_ns +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x68f8fad9 sunrpc_cache_update +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6ca01d44 rpc_call_null +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6ce01352 rpc_d_lookup_sb +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6ec62518 xprt_release_rqst_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6ff73d45 rpc_proc_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x71169cc1 cache_unregister_net +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x71fa908a cache_flush +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x733a70d4 rpc_put_sb_net +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7482f519 svc_unreg_xprt_class +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7500bf01 xprt_unregister_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x75c9b0d0 xdr_inline_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x76aca39c xdr_encode_word +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x77576438 cache_register_net +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x77ef0324 __rpc_wait_for_completion_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x785c0a78 xdr_reserve_space +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x78c3c5e8 svc_xprt_init +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x78c47f29 xprt_release_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x79bd92c0 svcauth_unix_purge +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7aa7e589 rpc_release_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7d0d3962 rpc_max_payload +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7d9d23d2 rpc_uaddr2sockaddr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7de53067 rpc_init_rtt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x80951b28 rpcauth_get_gssinfo +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x80a8fb9a rpc_destroy_wait_queue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8146cc89 xdr_buf_subsegment +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x815a375d rpc_malloc +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x82a5a980 rpc_clone_client_set_auth +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x85adbb30 xprt_reserve_xprt_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x85fdf307 rpc_get_sb_net +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x86dc574a xdr_process_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8706b19d rpc_print_iostats +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8b3bc73f rpc_init_priority_wait_queue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8ba5021f xprt_lock_and_alloc_slot +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8c60e853 cache_destroy_net +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8dc3da34 rpc_exit +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8ef0828d xprt_set_retrans_timeout_rtt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x92ae45c7 rpc_restart_call +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x92fb836e read_bytes_from_xdr_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x93404871 rpc_put_task_async +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9377991a xdr_inline_decode +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x947c0d18 svc_shutdown_net +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x95735754 xdr_partial_copy_from_skb +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x96715dc8 svcauth_unix_set_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x98b75d64 rpcauth_list_flavors +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x98edaee8 xdr_buf_read_netobj +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9a675110 xdr_terminate_string +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9c2e06c1 rpcauth_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9c3f8c61 xprt_free +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa0d25fea svc_process +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa1e68ca5 rpc_restart_call_prepare +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa2699464 svc_reserve +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa2eac567 rpc_peeraddr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa434b8ed auth_domain_put +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa45b1630 rpc_get_timeout +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa636306e svc_xprt_names +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa82ad50b svc_create_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa832703e svc_print_addr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xaa9a2c77 xprt_write_space +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xad9c8948 svc_exit_thread +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xae082939 rpc_wake_up_queued_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xaf5bf6ef nfs_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xaf64c65a rpc_call_sync +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xaff7efe9 svc_find_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb3aab552 rpc_pton +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb51a3724 rpc_pipefs_notifier_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb5554d6e xdr_skb_read_bits +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb91fd196 rpc_sleep_on_priority +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb974ca65 svc_xprt_enqueue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xba9069a6 rpc_peeraddr2str +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbb7e7e91 svc_rpcb_setup +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbd175968 auth_domain_lookup +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbe04d34c xdr_init_decode +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbf06af1f svc_proc_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbf945b09 svc_addsock +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 0xc71656c8 xs_swapper +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc8a05bd6 put_rpccred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc8e96dea qword_addhex +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc9623a39 svc_authenticate +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc9e2ea6a xdr_enter_page +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xccfcce4d svc_auth_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcdf0fa2c xprt_alloc_slot +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcee467f3 xprt_load_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd06d746d xprt_disconnect_done +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd15d6071 cache_purge +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd3003e59 rpc_count_iostats +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd41eb444 rpcauth_destroy_credcache +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd4320f43 xdr_decode_word +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd59bc72b xdr_write_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd6fcd1dd svc_set_num_threads +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd7e3212f rpcauth_generic_bind_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xdb6cff6d xdr_shift_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xdbad345f svc_proc_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xdcc30e54 rpc_pipe_generic_upcall +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xdeedf867 sunrpc_cache_unregister_pipefs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe1ac2bb8 sunrpc_net_id +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe1dd5d16 rpc_bind_new_program +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe4b4f27f rpcauth_init_credcache +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe5919cb1 xdr_encode_opaque +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe5f2c0d8 svc_close_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe97f4ce5 qword_get +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xeabccb53 svc_wake_up +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xed224c89 xprt_set_retrans_timeout_def +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 0xef89f105 auth_domain_find +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf1636ba4 csum_partial_copy_to_xdr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf40ce48c rpcauth_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf5a949ca xprt_alloc +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf6fcb5f5 rpc_unlink +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf900dce3 cache_check +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf9d1164c rpc_free +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfad7e64d rpc_put_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfd6a40b5 xprt_register_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfeccffea svc_xprt_copy_addrs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xffb7fb75 rpc_force_rebind +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x0c79d5ef vm_sockets_get_local_cid +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x15c0c57c vsock_addr_init +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x18d2da79 vsock_core_init +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x2663cb64 vsock_addr_equals_addr +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x68a0db97 vsock_remove_pending +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x6bb91e54 vsock_stream_has_space +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x74e91915 vsock_addr_cast +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x751ff010 vsock_addr_unbind +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x7cd969aa vsock_for_each_connected_socket +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x7f730c80 vsock_core_exit +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x81c33d88 vsock_add_pending +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x855c07d4 vsock_insert_connected +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x86b3edd1 vsock_enqueue_accept +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x8d7be830 vsock_find_bound_socket +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0xac9b9967 __vsock_create +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0xad3d1321 vsock_remove_bound +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0xbd0f699d vsock_addr_bound +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0xd314a874 vsock_stream_has_data +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0xd95ac116 vsock_addr_validate +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0xdbb1f403 vsock_remove_connected +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0xe2ba408a vsock_find_connected_socket +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0xf593c40a vsock_pending_work +EXPORT_SYMBOL_GPL net/wimax/wimax 0x2a570011 wimax_dev_rm +EXPORT_SYMBOL_GPL net/wimax/wimax 0x4b8d23c2 wimax_dev_add +EXPORT_SYMBOL_GPL net/wimax/wimax 0x6aaf6ac6 wimax_report_rfkill_sw +EXPORT_SYMBOL_GPL net/wimax/wimax 0x73dedaba wimax_msg_data_len +EXPORT_SYMBOL_GPL net/wimax/wimax 0x7e7e46d5 wimax_msg_send +EXPORT_SYMBOL_GPL net/wimax/wimax 0x8242ff98 wimax_msg_data +EXPORT_SYMBOL_GPL net/wimax/wimax 0x8f535567 wimax_msg_len +EXPORT_SYMBOL_GPL net/wimax/wimax 0xad6fe0fe wimax_msg +EXPORT_SYMBOL_GPL net/wimax/wimax 0xcd6aa587 wimax_state_get +EXPORT_SYMBOL_GPL net/wimax/wimax 0xda08bf96 wimax_msg_alloc +EXPORT_SYMBOL_GPL net/wimax/wimax 0xde07f8ac wimax_report_rfkill_hw +EXPORT_SYMBOL_GPL net/wimax/wimax 0xe206e398 wimax_dev_init +EXPORT_SYMBOL_GPL net/wimax/wimax 0xe593d134 wimax_state_change +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x04758bd7 cfg80211_wext_siwfrag +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x27a880c1 cfg80211_wext_giwscan +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x32db21a7 cfg80211_wext_siwmode +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x4141410b cfg80211_wext_giwfrag +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x5c5848c1 cfg80211_wext_giwrts +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x98f75f45 cfg80211_wext_giwname +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xb7cee1ec cfg80211_wext_siwrts +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xbbd67a4e cfg80211_wext_giwretry +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xcd0e52fc cfg80211_wext_siwscan +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xdd696f72 cfg80211_wext_giwrange +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xe840114e cfg80211_wext_giwmode +EXPORT_SYMBOL_GPL net/xfrm/xfrm_algo 0x00778770 xfrm_ealg_get_byname +EXPORT_SYMBOL_GPL net/xfrm/xfrm_algo 0x056bb269 xfrm_ealg_get_byidx +EXPORT_SYMBOL_GPL net/xfrm/xfrm_algo 0x0a575945 xfrm_count_pfkey_auth_supported +EXPORT_SYMBOL_GPL net/xfrm/xfrm_algo 0x0b9e5852 xfrm_aead_get_byname +EXPORT_SYMBOL_GPL net/xfrm/xfrm_algo 0x28e23139 xfrm_probe_algs +EXPORT_SYMBOL_GPL net/xfrm/xfrm_algo 0x74e1a843 xfrm_aalg_get_byidx +EXPORT_SYMBOL_GPL net/xfrm/xfrm_algo 0x7a8ca627 xfrm_count_pfkey_enc_supported +EXPORT_SYMBOL_GPL net/xfrm/xfrm_algo 0x7c30b8c7 xfrm_calg_get_byname +EXPORT_SYMBOL_GPL net/xfrm/xfrm_algo 0x92dbc6c1 xfrm_aalg_get_byid +EXPORT_SYMBOL_GPL net/xfrm/xfrm_algo 0xbc8b0f41 xfrm_calg_get_byid +EXPORT_SYMBOL_GPL net/xfrm/xfrm_algo 0xce7a55c1 xfrm_ealg_get_byid +EXPORT_SYMBOL_GPL net/xfrm/xfrm_algo 0xe122af95 xfrm_aalg_get_byname +EXPORT_SYMBOL_GPL net/xfrm/xfrm_algo 0xe575827d pskb_put +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0x65735584 ipcomp_input +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0xc7f69bc7 ipcomp_output +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0xcf54ece5 ipcomp_init_state +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0xec1c5f75 ipcomp_destroy +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0x11fcf029 snd_ak4113_build +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0x40c12f1e snd_ak4113_reg_write +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0x60cdda6d snd_ak4113_external_rate +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0x9e50568e snd_ak4113_check_rate_and_errors +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0xe7f20da5 snd_ak4113_create +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0xf58039a6 snd_ak4113_reinit +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x006eb9ac hda_get_autocfg_input_label +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x0183fa5c __snd_hda_codec_cleanup_stream +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x01fcd99b snd_hda_gen_build_controls +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x027dbfe4 snd_hda_pick_fixup +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x04a59c39 snd_hda_mixer_amp_volume_get +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x05a95588 snd_hda_codec_get_pin_target +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 0x073ff411 snd_hda_sync_vmaster_hook +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x079cb13d snd_hda_multi_out_dig_close +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x0859a564 snd_hda_sequence_write +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x08d68165 snd_hda_shutup_pins +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x0e5f58ae snd_hda_parse_pin_defcfg +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x0ee5cd0a snd_hda_jack_set_dirty_all +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x113c407e snd_hda_gen_init +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x131c40d5 snd_hda_codec_set_pin_target +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x14f597cb snd_hda_power_save +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x191c5c02 snd_hda_codec_flush_cache +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x1956f5d7 snd_hda_get_conn_list +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x1ae0b0e5 snd_hda_mixer_amp_tlv +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x1b18b730 snd_hda_multi_out_analog_open +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x1d82b4c3 snd_hda_build_controls +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x1e886a16 snd_hda_mixer_amp_switch_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x1f70e6f2 snd_hda_input_mux_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x1fba4ad3 snd_hda_ch_mode_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x1fec33d5 snd_hda_sequence_write_cache +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x203a1deb snd_hda_add_nid +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x229a1f28 snd_hda_detach_beep_device +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x241153bb snd_hda_mixer_amp_switch_get_beep +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x290e92d5 snd_hda_resume +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x2b005a61 snd_hda_get_path_from_idx +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x2b92b7f4 snd_hda_queue_unsol_event +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x2df413e9 snd_hda_mixer_amp_volume_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x31cdb886 snd_hda_codec_write +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x33d89359 snd_hda_parse_nid_path +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x35ae0fa2 snd_hda_bind_vol +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x375cacd5 snd_hda_input_mux_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x3e8b41f1 snd_hda_lock_devices +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x3f5e0bca snd_hda_delete_codec_preset +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4091398d snd_hda_mixer_bind_ctls_get +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x40a6e088 snd_hda_add_vmaster_hook +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4411e8d2 snd_hda_enum_helper_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x44282c27 snd_hda_get_int_hint +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4cc8df20 snd_hda_mixer_bind_switch_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4d4ceed3 snd_hda_multi_out_analog_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 0x4dde18d0 snd_hda_multi_out_dig_open +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4fd384ac snd_hda_gen_check_power_status +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x52d2d8e2 snd_hda_suspend +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x537170c0 snd_hda_jack_detect_enable +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x552d2afc snd_hda_ctl_add +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x56b6d530 snd_hda_jack_tbl_new +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x577e61cd snd_hda_correct_pin_ctl +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x58529b28 snd_hda_codec_prepare +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x586f08b1 snd_hda_codec_amp_update +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x589fb353 snd_hda_codec_configure +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5957d96a snd_hda_gen_update_outputs +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5b85b672 snd_hda_jack_tbl_get +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5b96fe98 snd_hda_codec_set_power_to_all +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5c75d0ff snd_hda_codec_setup_stream +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5cc41d18 snd_hda_codec_write_cache +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x600ae002 snd_hda_gen_add_kctl +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x62a933a9 snd_hda_gen_build_pcms +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x62aab0ee snd_hda_ch_mode_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x62c76128 snd_hda_override_pin_caps +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x66fe2438 snd_hda_get_hint +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x67e1d3dc snd_hda_add_new_path +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x694769b6 snd_hda_bus_new +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x69c0b65d snd_hda_mixer_bind_ctls_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x6a44f503 snd_hda_multi_out_analog_prepare +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x6b1694e0 snd_hda_add_verbs +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x6bf32908 snd_hda_load_patch +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x6cd69e5d snd_hda_apply_fixup +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x6d1bff62 snd_hda_gen_line_automute +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x6f61983f snd_hda_jack_add_kctl +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x71dfe0ef snd_hda_jack_unsol_event +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x72f3247d snd_hda_query_supported_pcm +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x76dc6871 hda_main_out_badness +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x76e5257e snd_hda_spdif_out_of_nid +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7a6600ac snd_hda_attach_beep_device +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7b3cd588 snd_hda_get_sub_nodes +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7bf3dcbc snd_hda_codec_update_widgets +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x800520ef snd_hda_create_spdif_in_ctls +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x814907dd snd_hda_jack_detect_enable_callback +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x82843f08 snd_hda_check_amp_list_power +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x861242f6 snd_hda_gen_spec_free +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x865d74ad _snd_hda_set_pin_ctl +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x871a6e44 hda_extra_out_badness +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x8a19fa5c is_jack_detectable +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x8c075f15 snd_hda_codec_set_pincfg +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x8c90c21c snd_hda_spdif_ctls_unassign +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x8d195637 __snd_hda_add_vmaster +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x8dbd93b9 snd_hda_codec_amp_read +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x8e4c6826 snd_hda_calc_stream_format +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x8e6330b7 snd_hda_get_nid_path +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x8e879167 snd_hda_find_mixer_ctl +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x8e9bd201 snd_hda_check_board_codec_sid_config +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x8f1a71b8 snd_hda_query_pin_caps +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x8fe2e09a snd_hda_override_conn_list +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x91b68072 snd_hda_codec_amp_stereo +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9a8e1877 snd_array_free +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9c0528ad snd_hda_get_bool_hint +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9d1a802d snd_hda_parse_generic_codec +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa2827d76 snd_hda_get_jack_location +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa3b84bdf snd_hda_mixer_bind_switch_get +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa5014be1 snd_hda_codec_update_cache +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa6bb7722 snd_hda_check_board_config +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa7834bc3 snd_hda_pin_sense +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xacf3bdbf snd_hda_codec_new +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xaf1fbc79 snd_hda_codec_amp_init +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xafacb230 snd_hda_get_pin_label +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xafdf70d7 snd_hda_add_codec_preset +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xafe1ad72 snd_hda_mixer_bind_ctls_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb6081dff snd_hda_jack_detect +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb6ebad44 snd_hda_gen_parse_auto_config +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb8fffd51 snd_hda_codec_get_pincfg +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xbad8d42e snd_hda_jack_report_sync +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xbb482386 snd_hda_codec_amp_init_stereo +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xbca0ed0f snd_hda_create_spdif_share_sw +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xbd1c4441 snd_hda_apply_verbs +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xbe7dd7dc snd_array_new +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc06f30f4 snd_hda_jack_add_kctls +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc57f8c40 snd_hda_create_dig_out_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 0xc83443d6 query_amp_caps +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc94bf99f snd_hda_get_connections +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xca3158bb snd_hda_jack_set_gating_jack +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xcadab629 snd_hda_get_default_vref +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xcb301b6e snd_hda_get_jack_type +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xcdf6da59 snd_hda_is_supported_format +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xce9921a0 snd_hda_activate_path +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd2c69db8 snd_hda_jack_poll_all +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd345eb92 snd_hda_jack_tbl_get_from_tag +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd50865c9 snd_hda_mixer_bind_tlv +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd695a041 snd_hda_apply_pincfgs +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd74bf360 snd_hda_codec_cleanup +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd78beb21 snd_hda_bus_reboot_notify +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd8a97139 snd_hda_mixer_amp_switch_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd9eafe01 snd_hda_multi_out_dig_cleanup +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd9f25d40 snd_hda_unlock_devices +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xdab05dcb snd_hda_multi_out_dig_prepare +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xdb098bdd snd_hda_codec_read +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xdcd01fc1 snd_hda_spdif_ctls_assign +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xde7e2dbd snd_hda_add_new_ctls +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xdfa8e5f1 snd_hda_gen_free +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe118de5d snd_pcm_2_1_chmaps +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe2569962 snd_hda_get_conn_index +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe6ac0fbc snd_hda_codec_eapd_power_filter +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xebd508c6 snd_hda_mixer_amp_volume_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xed97901c snd_hda_gen_mic_autoswitch +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xeda3a721 snd_print_pcm_bits +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xef777f27 snd_hda_bind_sw +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf045e9a8 snd_hda_mixer_amp_switch_put_beep +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf13b02ff snd_hda_gen_spec_init +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf1f8fee9 snd_hda_mixer_amp_switch_get +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf3530be5 snd_hda_codec_resume_amp +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf90be6c9 snd_hda_ch_mode_get +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf945c7ee snd_hda_enable_beep_device +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf9cffdad snd_hda_get_path_idx +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xfc0d7999 snd_hda_override_amp_caps +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xfca3c548 snd_hda_set_vmaster_tlv +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xfcf11b91 snd_hda_codec_resume_cache +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xfdf5703e snd_hda_gen_hp_automute +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xfe97a32b snd_hda_build_pcms +EXPORT_SYMBOL_GPL sound/soc/atmel/snd-soc-atmel-pcm 0x21163fb6 atmel_pcm_mmap +EXPORT_SYMBOL_GPL sound/soc/atmel/snd-soc-atmel-pcm 0x63849748 atmel_pcm_free +EXPORT_SYMBOL_GPL sound/soc/atmel/snd-soc-atmel-pcm 0xa99076c0 atmel_pcm_new +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-88pm860x 0x0a6f7e06 pm860x_mic_jack_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-88pm860x 0x50b848b3 pm860x_hs_jack_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ab8500-codec 0xb79e0b84 ab8500_audio_set_ear_cmv +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ab8500-codec 0xcd213d58 ab8500_audio_setup_mics +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-arizona 0x0193d605 arizona_out_ev +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-arizona 0x05ddbf0f arizona_lhpf4_mode +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-arizona 0x080e7bff arizona_init_fll +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-arizona 0x12ecde17 arizona_out_vi_ramp +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-arizona 0x15f02c54 arizona_init_spk +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-arizona 0x196694e3 arizona_ng_hold +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-arizona 0x1c8add04 arizona_set_output_mode +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-arizona 0x206e3ddf arizona_in_vi_ramp +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-arizona 0x2b287a6f arizona_init_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-arizona 0x2e29d252 arizona_dai_ops +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-arizona 0x338d837c arizona_hp_ev +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-arizona 0x3f429d4c arizona_isrc_fsl +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-arizona 0x41b95c1f arizona_in_vd_ramp +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-arizona 0x547a7178 arizona_rate_val +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-arizona 0x57e590a8 arizona_lhpf1_mode +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-arizona 0x5d4ec075 arizona_set_fll +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-arizona 0x660d8a35 arizona_lhpf2_mode +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-arizona 0x733bbfd7 arizona_out_vd_ramp +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-arizona 0x790836da arizona_in_ev +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-arizona 0x8c821bc2 arizona_rate_text +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-arizona 0x8dd35bf2 arizona_mixer_values +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-arizona 0x9d0cfaec arizona_simple_dai_ops +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-arizona 0xab6861be arizona_mixer_texts +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-arizona 0xc07a8181 arizona_lhpf3_mode +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-arizona 0xc9c29637 arizona_mixer_tlv +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-arizona 0xe55705f6 arizona_set_sysclk +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-arizona 0xe84aad0f arizona_set_fll_refclk +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cx20442 0x086dcdbe v253_ops +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-l3 0x78c84c7e l3_write +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-max98090 0x706bc880 max98090_mic_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-max98095 0x33b48234 max98095_jack_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-max9877 0x3dc8097e max9877_add_controls +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tpa6130a2 0xbc511af2 tpa6130a2_add_controls +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tpa6130a2 0xe9244672 tpa6130a2_stereo_enable +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wl1273 0x963351b9 wl1273_get_format +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-adsp 0x1f3a65b9 wm_adsp1_event +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-adsp 0x594a28e5 wm_adsp2_event +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-adsp 0x643894e3 wm_adsp1_fw_controls +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-adsp 0x8ebe4981 wm_adsp2_fw_controls +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-adsp 0x8f2bb9a2 wm_adsp1_init +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-adsp 0x9b4b4c51 wm_adsp2_init +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-hubs 0x1c6228fe wm_hubs_vmid_ena +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-hubs 0x1ef7ede3 wm_hubs_hpl_mux +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-hubs 0x272b8e08 wm_hubs_hpr_mux +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-hubs 0x5cd7eb9b wm_hubs_dcs_done +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-hubs 0x629a4a4e 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 0x9b76d3b1 wm_hubs_set_bias_level +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-hubs 0xbe07f724 wm_hubs_handle_analogue_pdata +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-hubs 0xd2bb7a01 wm_hubs_add_analogue_routes +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-hubs 0xf1dabbd3 wm_hubs_update_class_w +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8350 0x3b22fcb0 wm8350_mic_jack_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8350 0x75d866ac wm8350_hp_jack_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8903 0x7d3feb71 wm8903_mic_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8962 0x6091d2e0 wm8962_mic_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8994 0x09f2ae8a wm8958_mic_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8994 0x892095a0 wm8994_mic_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8996 0x4a2f64c9 wm8996_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm9713 0x68359681 wm9713_reset +EXPORT_SYMBOL_GPL sound/soc/tegra/snd-soc-tegra-pcm 0x08e3347a tegra_pcm_platform_unregister +EXPORT_SYMBOL_GPL sound/soc/tegra/snd-soc-tegra-pcm 0x93313246 tegra_pcm_platform_register +EXPORT_SYMBOL_GPL sound/soc/tegra/snd-soc-tegra-utils 0x4260475b tegra_asoc_utils_set_rate +EXPORT_SYMBOL_GPL sound/soc/tegra/snd-soc-tegra-utils 0xc54c1f4d tegra_asoc_utils_init +EXPORT_SYMBOL_GPL sound/soc/tegra/snd-soc-tegra-utils 0xcf98368f tegra_asoc_utils_fini +EXPORT_SYMBOL_GPL sound/soc/tegra/snd-soc-tegra-utils 0xfb087adc tegra_asoc_utils_set_ac97_rate +EXPORT_SYMBOL_GPL sound/soc/tegra/snd-soc-tegra20-das 0x0d54c9b9 tegra20_das_connect_dap_to_dac +EXPORT_SYMBOL_GPL sound/soc/tegra/snd-soc-tegra20-das 0xb52cfca4 tegra20_das_connect_dac_to_dap +EXPORT_SYMBOL_GPL sound/soc/tegra/snd-soc-tegra20-das 0xbced7431 tegra20_das_connect_dap_to_dap +EXPORT_SYMBOL_GPL sound/soc/tegra/snd-soc-tegra30-ahub 0x33e6f259 tegra30_ahub_allocate_tx_fifo +EXPORT_SYMBOL_GPL sound/soc/tegra/snd-soc-tegra30-ahub 0x55a40206 tegra30_ahub_disable_rx_fifo +EXPORT_SYMBOL_GPL sound/soc/tegra/snd-soc-tegra30-ahub 0x5cf6f91f tegra30_ahub_allocate_rx_fifo +EXPORT_SYMBOL_GPL sound/soc/tegra/snd-soc-tegra30-ahub 0x6fe20143 tegra30_ahub_set_rx_cif_source +EXPORT_SYMBOL_GPL sound/soc/tegra/snd-soc-tegra30-ahub 0xb419329b tegra30_ahub_disable_tx_fifo +EXPORT_SYMBOL_GPL sound/soc/tegra/snd-soc-tegra30-ahub 0xb4a9367d tegra30_ahub_enable_tx_fifo +EXPORT_SYMBOL_GPL sound/soc/tegra/snd-soc-tegra30-ahub 0xb81bca9d tegra30_ahub_free_rx_fifo +EXPORT_SYMBOL_GPL sound/soc/tegra/snd-soc-tegra30-ahub 0xc78c7125 tegra30_ahub_free_tx_fifo +EXPORT_SYMBOL_GPL sound/soc/tegra/snd-soc-tegra30-ahub 0xccc98372 tegra30_ahub_enable_rx_fifo +EXPORT_SYMBOL_GPL sound/soc/tegra/snd-soc-tegra30-ahub 0xe549513a tegra30_ahub_unset_rx_cif_source +EXPORT_SYMBOL_GPL ubuntu/lttng/lib/lttng-lib-ring-buffer 0x005dcc3b lib_ring_buffer_move_consumer +EXPORT_SYMBOL_GPL ubuntu/lttng/lib/lttng-lib-ring-buffer 0x07e213fd lib_ring_buffer_open +EXPORT_SYMBOL_GPL ubuntu/lttng/lib/lttng-lib-ring-buffer 0x0a2ba019 lib_ring_buffer_poll +EXPORT_SYMBOL_GPL ubuntu/lttng/lib/lttng-lib-ring-buffer 0x127fedf3 lib_ring_buffer_mmap +EXPORT_SYMBOL_GPL ubuntu/lttng/lib/lttng-lib-ring-buffer 0x17f920b0 lib_ring_buffer_get_next_record +EXPORT_SYMBOL_GPL ubuntu/lttng/lib/lttng-lib-ring-buffer 0x22bc5d1c lib_ring_buffer_iterator_open +EXPORT_SYMBOL_GPL ubuntu/lttng/lib/lttng-lib-ring-buffer 0x23b1420b vfs_lib_ring_buffer_splice_read +EXPORT_SYMBOL_GPL ubuntu/lttng/lib/lttng-lib-ring-buffer 0x2a214fe7 lib_ring_buffer_read_offset_address +EXPORT_SYMBOL_GPL ubuntu/lttng/lib/lttng-lib-ring-buffer 0x37274d92 _lib_ring_buffer_write +EXPORT_SYMBOL_GPL ubuntu/lttng/lib/lttng-lib-ring-buffer 0x37ac9e6a _lib_ring_buffer_copy_from_user_inatomic +EXPORT_SYMBOL_GPL ubuntu/lttng/lib/lttng-lib-ring-buffer 0x3b6c9eb1 lib_ring_buffer_iterator_release +EXPORT_SYMBOL_GPL ubuntu/lttng/lib/lttng-lib-ring-buffer 0x47a381f9 channel_get_ring_buffer +EXPORT_SYMBOL_GPL ubuntu/lttng/lib/lttng-lib-ring-buffer 0x4845b9ef lib_ring_buffer_release_read +EXPORT_SYMBOL_GPL ubuntu/lttng/lib/lttng-lib-ring-buffer 0x4a6f5dbe lib_ring_buffer_ioctl +EXPORT_SYMBOL_GPL ubuntu/lttng/lib/lttng-lib-ring-buffer 0x52a22ebc lib_ring_buffer_splice_read +EXPORT_SYMBOL_GPL ubuntu/lttng/lib/lttng-lib-ring-buffer 0x5af50682 lib_ring_buffer_reset +EXPORT_SYMBOL_GPL ubuntu/lttng/lib/lttng-lib-ring-buffer 0x6103432d lib_ring_buffer_reserve_slow +EXPORT_SYMBOL_GPL ubuntu/lttng/lib/lttng-lib-ring-buffer 0x62936d00 channel_reset +EXPORT_SYMBOL_GPL ubuntu/lttng/lib/lttng-lib-ring-buffer 0x6531ab5b channel_get_next_record +EXPORT_SYMBOL_GPL ubuntu/lttng/lib/lttng-lib-ring-buffer 0x6e389c51 lib_ring_buffer_snapshot +EXPORT_SYMBOL_GPL ubuntu/lttng/lib/lttng-lib-ring-buffer 0x81d0985a lib_ring_buffer_switch_slow +EXPORT_SYMBOL_GPL ubuntu/lttng/lib/lttng-lib-ring-buffer 0x9ba8b338 lib_ring_buffer_file_operations +EXPORT_SYMBOL_GPL ubuntu/lttng/lib/lttng-lib-ring-buffer 0x9c03d9d7 lib_ring_buffer_read +EXPORT_SYMBOL_GPL ubuntu/lttng/lib/lttng-lib-ring-buffer 0x9c48c819 _lib_ring_buffer_memset +EXPORT_SYMBOL_GPL ubuntu/lttng/lib/lttng-lib-ring-buffer 0xa38a6612 channel_destroy +EXPORT_SYMBOL_GPL ubuntu/lttng/lib/lttng-lib-ring-buffer 0xa525a0bd channel_payload_file_operations +EXPORT_SYMBOL_GPL ubuntu/lttng/lib/lttng-lib-ring-buffer 0xbdb3ebf2 lib_ring_buffer_switch_remote +EXPORT_SYMBOL_GPL ubuntu/lttng/lib/lttng-lib-ring-buffer 0xc46a1a2e __lib_ring_buffer_copy_to_user +EXPORT_SYMBOL_GPL ubuntu/lttng/lib/lttng-lib-ring-buffer 0xc7d5db5c lib_ring_buffer_put_subbuf +EXPORT_SYMBOL_GPL ubuntu/lttng/lib/lttng-lib-ring-buffer 0xcb2837a5 lib_ring_buffer_offset_address +EXPORT_SYMBOL_GPL ubuntu/lttng/lib/lttng-lib-ring-buffer 0xcb9da111 channel_create +EXPORT_SYMBOL_GPL ubuntu/lttng/lib/lttng-lib-ring-buffer 0xcc6f0e8d lib_ring_buffer_open_read +EXPORT_SYMBOL_GPL ubuntu/lttng/lib/lttng-lib-ring-buffer 0xdd1affb9 lib_ring_buffer_read_get_page +EXPORT_SYMBOL_GPL ubuntu/lttng/lib/lttng-lib-ring-buffer 0xe6c25b9b channel_iterator_release +EXPORT_SYMBOL_GPL ubuntu/lttng/lib/lttng-lib-ring-buffer 0xe72bbd21 lib_ring_buffer_payload_file_operations +EXPORT_SYMBOL_GPL ubuntu/lttng/lib/lttng-lib-ring-buffer 0xe8869c1b lib_ring_buffer_get_subbuf +EXPORT_SYMBOL_GPL ubuntu/lttng/lib/lttng-lib-ring-buffer 0xe9e5ec02 vfs_lib_ring_buffer_no_llseek +EXPORT_SYMBOL_GPL ubuntu/lttng/lib/lttng-lib-ring-buffer 0xee97de14 vfs_lib_ring_buffer_mmap +EXPORT_SYMBOL_GPL ubuntu/lttng/lib/lttng-lib-ring-buffer 0xf19854dc channel_iterator_open +EXPORT_SYMBOL_GPL ubuntu/lttng/lib/lttng-lib-ring-buffer 0xf4b43cb7 lib_ring_buffer_release +EXPORT_SYMBOL_GPL ubuntu/lttng/lib/lttng-lib-ring-buffer 0xfbd137b8 lib_ring_buffer_read_cstr +EXPORT_SYMBOL_GPL ubuntu/lttng/lttng-statedump 0x790cb481 lttng_statedump_start +EXPORT_SYMBOL_GPL ubuntu/lttng/lttng-tracer 0x07428305 lttng_add_procname_to_ctx +EXPORT_SYMBOL_GPL ubuntu/lttng/lttng-tracer 0x0e5bee8e lttng_probe_register +EXPORT_SYMBOL_GPL ubuntu/lttng/lttng-tracer 0x1ab3a7db lttng_add_tid_to_ctx +EXPORT_SYMBOL_GPL ubuntu/lttng/lttng-tracer 0x1b80a2ec lttng_add_pid_to_ctx +EXPORT_SYMBOL_GPL ubuntu/lttng/lttng-tracer 0x29f4a10f lttng_add_prio_to_ctx +EXPORT_SYMBOL_GPL ubuntu/lttng/lttng-tracer 0x33eef76e lttng_event_get +EXPORT_SYMBOL_GPL ubuntu/lttng/lttng-tracer 0x40283e61 lttng_add_vtid_to_ctx +EXPORT_SYMBOL_GPL ubuntu/lttng/lttng-tracer 0x411b3b56 lttng_add_vpid_to_ctx +EXPORT_SYMBOL_GPL ubuntu/lttng/lttng-tracer 0x47952688 lttng_remove_context_field +EXPORT_SYMBOL_GPL ubuntu/lttng/lttng-tracer 0x512a70e0 lttng_metadata_channel_destroy +EXPORT_SYMBOL_GPL ubuntu/lttng/lttng-tracer 0x67130238 lttng_add_vppid_to_ctx +EXPORT_SYMBOL_GPL ubuntu/lttng/lttng-tracer 0x6ab38d68 lttng_transport_register +EXPORT_SYMBOL_GPL ubuntu/lttng/lttng-tracer 0x83ccdd47 lttng_add_hostname_to_ctx +EXPORT_SYMBOL_GPL ubuntu/lttng/lttng-tracer 0x89df6a08 lttng_event_put +EXPORT_SYMBOL_GPL ubuntu/lttng/lttng-tracer 0x9c39a494 lttng_add_ppid_to_ctx +EXPORT_SYMBOL_GPL ubuntu/lttng/lttng-tracer 0xa6a54933 lttng_probe_unregister +EXPORT_SYMBOL_GPL ubuntu/lttng/lttng-tracer 0xac6d1c46 lttng_find_context +EXPORT_SYMBOL_GPL ubuntu/lttng/lttng-tracer 0xc3b63fc5 lttng_add_nice_to_ctx +EXPORT_SYMBOL_GPL ubuntu/lttng/lttng-tracer 0xd4f7d32b lttng_transport_unregister +EXPORT_SYMBOL_GPL ubuntu/lttng/lttng-tracer 0xf8d6c49f lttng_append_context +EXPORT_SYMBOL_GPL ubuntu/lttng/probes/lttng-kprobes 0x5a262caf lttng_kprobes_register +EXPORT_SYMBOL_GPL ubuntu/lttng/probes/lttng-kprobes 0x7cc4c953 lttng_kprobes_destroy_private +EXPORT_SYMBOL_GPL ubuntu/lttng/probes/lttng-kprobes 0xe4084c30 lttng_kprobes_unregister +EXPORT_SYMBOL_GPL ubuntu/lttng/probes/lttng-kretprobes 0x1c18bc4e lttng_kretprobes_unregister +EXPORT_SYMBOL_GPL ubuntu/lttng/probes/lttng-kretprobes 0x7c03499f lttng_kretprobes_destroy_private +EXPORT_SYMBOL_GPL ubuntu/lttng/probes/lttng-kretprobes 0xd8ab468b lttng_kretprobes_register +EXPORT_SYMBOL_GPL vmlinux 0x00187567 pin_is_valid +EXPORT_SYMBOL_GPL vmlinux 0x00435700 fuse_put_request +EXPORT_SYMBOL_GPL vmlinux 0x005af866 clockevents_register_device +EXPORT_SYMBOL_GPL vmlinux 0x00632780 work_busy +EXPORT_SYMBOL_GPL vmlinux 0x0067df75 ata_tf_from_fis +EXPORT_SYMBOL_GPL vmlinux 0x006acac1 bus_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x006db358 crypto_unregister_template +EXPORT_SYMBOL_GPL vmlinux 0x00aaf32b dbs_check_cpu +EXPORT_SYMBOL_GPL vmlinux 0x00bee937 snd_soc_lookup_platform +EXPORT_SYMBOL_GPL vmlinux 0x00c4dc87 timecounter_init +EXPORT_SYMBOL_GPL vmlinux 0x00d48f33 omap_usb2_set_comparator +EXPORT_SYMBOL_GPL vmlinux 0x00ebcb5d ata_id_string +EXPORT_SYMBOL_GPL vmlinux 0x00f45757 blkio_subsys +EXPORT_SYMBOL_GPL vmlinux 0x01010c6d klist_add_before +EXPORT_SYMBOL_GPL vmlinux 0x011cf028 regulator_suspend_finish +EXPORT_SYMBOL_GPL vmlinux 0x012a5d5c da9052_adc_read_temp +EXPORT_SYMBOL_GPL vmlinux 0x0147c474 cpuidle_register +EXPORT_SYMBOL_GPL vmlinux 0x0148adb6 register_kprobes +EXPORT_SYMBOL_GPL vmlinux 0x0157a562 led_trigger_unregister_simple +EXPORT_SYMBOL_GPL vmlinux 0x017ac80a cpufreq_governor_dbs +EXPORT_SYMBOL_GPL vmlinux 0x0196f227 cpufreq_cpu_get +EXPORT_SYMBOL_GPL vmlinux 0x01ae7a35 tty_encode_baud_rate +EXPORT_SYMBOL_GPL vmlinux 0x01b4e67a queue_kthread_work +EXPORT_SYMBOL_GPL vmlinux 0x01c6cb0c cpu_cluster_pm_enter +EXPORT_SYMBOL_GPL vmlinux 0x01e1a8de kgdb_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0x01f506a5 crypto_aead_setauthsize +EXPORT_SYMBOL_GPL vmlinux 0x02114cf1 pci_cleanup_aer_uncorrect_error_status +EXPORT_SYMBOL_GPL vmlinux 0x0215d6d2 regmap_field_free +EXPORT_SYMBOL_GPL vmlinux 0x02700e40 mtd_is_locked +EXPORT_SYMBOL_GPL vmlinux 0x02787c52 shash_ahash_update +EXPORT_SYMBOL_GPL vmlinux 0x029613d9 xenbus_match +EXPORT_SYMBOL_GPL vmlinux 0x02c625b8 cred_to_ucred +EXPORT_SYMBOL_GPL vmlinux 0x02db89e1 arizona_clk32k_enable +EXPORT_SYMBOL_GPL vmlinux 0x02f88ae1 dev_pm_qos_remove_request +EXPORT_SYMBOL_GPL vmlinux 0x03047298 xenbus_register_frontend +EXPORT_SYMBOL_GPL vmlinux 0x032dd218 da9052_adc_manual_read +EXPORT_SYMBOL_GPL vmlinux 0x0333275a snd_ctl_activate_id +EXPORT_SYMBOL_GPL vmlinux 0x0343bdf1 __i2c_board_list +EXPORT_SYMBOL_GPL vmlinux 0x034abe2c omap_dm_timer_read_status +EXPORT_SYMBOL_GPL vmlinux 0x034caa04 opp_find_freq_floor +EXPORT_SYMBOL_GPL vmlinux 0x035227fc skcipher_geniv_free +EXPORT_SYMBOL_GPL vmlinux 0x0361cb45 usbmisc_get_init_data +EXPORT_SYMBOL_GPL vmlinux 0x036d391b register_pernet_subsys +EXPORT_SYMBOL_GPL vmlinux 0x03aad1e6 __inet_twsk_hashdance +EXPORT_SYMBOL_GPL vmlinux 0x03b53546 irq_get_domain_generic_chip +EXPORT_SYMBOL_GPL vmlinux 0x03b54613 __get_vm_area +EXPORT_SYMBOL_GPL vmlinux 0x03d66cfa bsg_job_done +EXPORT_SYMBOL_GPL vmlinux 0x03e08396 snd_soc_dapm_get_pin_status +EXPORT_SYMBOL_GPL vmlinux 0x03e3686c ata_timing_cycle2mode +EXPORT_SYMBOL_GPL vmlinux 0x03f5e4b1 regcache_drop_region +EXPORT_SYMBOL_GPL vmlinux 0x0424f48d devm_regmap_init_i2c +EXPORT_SYMBOL_GPL vmlinux 0x043c9806 synchronize_srcu +EXPORT_SYMBOL_GPL vmlinux 0x04486e88 rcu_batches_completed +EXPORT_SYMBOL_GPL vmlinux 0x044c1141 debugfs_create_regset32 +EXPORT_SYMBOL_GPL vmlinux 0x0450ee4e ata_bmdma_port_intr +EXPORT_SYMBOL_GPL vmlinux 0x0465a073 regmap_reg_in_ranges +EXPORT_SYMBOL_GPL vmlinux 0x0472caae of_pci_address_to_resource +EXPORT_SYMBOL_GPL vmlinux 0x048b5f8d twl4030_audio_get_mclk +EXPORT_SYMBOL_GPL vmlinux 0x048f4657 da9055_regmap_config +EXPORT_SYMBOL_GPL vmlinux 0x049075d2 pci_cfg_access_unlock +EXPORT_SYMBOL_GPL vmlinux 0x04aaee3c irq_domain_remove +EXPORT_SYMBOL_GPL vmlinux 0x04c3f2c1 gnttab_empty_grant_references +EXPORT_SYMBOL_GPL vmlinux 0x04c4f603 mpi_get_buffer +EXPORT_SYMBOL_GPL vmlinux 0x04d55623 __ip_route_output_key +EXPORT_SYMBOL_GPL vmlinux 0x04e1b99f snd_pcm_std_chmaps +EXPORT_SYMBOL_GPL vmlinux 0x04e40fe3 crypto_alloc_pcomp +EXPORT_SYMBOL_GPL vmlinux 0x0531dcb8 ata_dev_classify +EXPORT_SYMBOL_GPL vmlinux 0x054429c9 dma_run_dependencies +EXPORT_SYMBOL_GPL vmlinux 0x054e550b kernel_halt +EXPORT_SYMBOL_GPL vmlinux 0x0551f0ce tick_nohz_idle_exit +EXPORT_SYMBOL_GPL vmlinux 0x058b582a vt_get_leds +EXPORT_SYMBOL_GPL vmlinux 0x058b7808 tty_standard_install +EXPORT_SYMBOL_GPL vmlinux 0x059d3941 crypto_shash_final +EXPORT_SYMBOL_GPL vmlinux 0x05eacb36 unregister_kretprobes +EXPORT_SYMBOL_GPL vmlinux 0x06011577 usb_autopm_get_interface +EXPORT_SYMBOL_GPL vmlinux 0x06123e6e adp5520_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x0626da5f od_unregister_powersave_bias_handler +EXPORT_SYMBOL_GPL vmlinux 0x062fc169 xen_hvm_resume_frames +EXPORT_SYMBOL_GPL vmlinux 0x06438115 tcp_orphan_count +EXPORT_SYMBOL_GPL vmlinux 0x064db9a5 mark_mounts_for_expiry +EXPORT_SYMBOL_GPL vmlinux 0x0659c7cb snd_soc_register_platform +EXPORT_SYMBOL_GPL vmlinux 0x06aed92b regmap_init_spi +EXPORT_SYMBOL_GPL vmlinux 0x06c199a5 sock_diag_register_inet_compat +EXPORT_SYMBOL_GPL vmlinux 0x06d549e6 pinctrl_free_gpio +EXPORT_SYMBOL_GPL vmlinux 0x06dceffb snd_soc_of_parse_daifmt +EXPORT_SYMBOL_GPL vmlinux 0x07455fa9 srcu_barrier +EXPORT_SYMBOL_GPL vmlinux 0x074735a9 sata_set_spd +EXPORT_SYMBOL_GPL vmlinux 0x075cec30 mtd_is_partition +EXPORT_SYMBOL_GPL vmlinux 0x0762403c edac_put_sysfs_subsys +EXPORT_SYMBOL_GPL vmlinux 0x07a38604 crypto_aes_set_key +EXPORT_SYMBOL_GPL vmlinux 0x07b21f85 kdb_get_kbd_char +EXPORT_SYMBOL_GPL vmlinux 0x07b291d1 usb_unlink_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0x07b52e38 rtnl_unregister +EXPORT_SYMBOL_GPL vmlinux 0x07cf3227 clk_fixed_rate_ops +EXPORT_SYMBOL_GPL vmlinux 0x07dbf370 tcp_is_cwnd_limited +EXPORT_SYMBOL_GPL vmlinux 0x07ed48c3 __blocking_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x08609e53 vring_new_virtqueue +EXPORT_SYMBOL_GPL vmlinux 0x0870a6fc __mmc_switch +EXPORT_SYMBOL_GPL vmlinux 0x0899f091 hrtimer_get_remaining +EXPORT_SYMBOL_GPL vmlinux 0x08b24a79 ping_rcv +EXPORT_SYMBOL_GPL vmlinux 0x08f1c04f smpboot_register_percpu_thread +EXPORT_SYMBOL_GPL vmlinux 0x08f91910 anon_inode_getfd +EXPORT_SYMBOL_GPL vmlinux 0x09005816 devres_for_each_res +EXPORT_SYMBOL_GPL vmlinux 0x090f08de spi_bus_lock +EXPORT_SYMBOL_GPL vmlinux 0x091eb9b4 round_jiffies +EXPORT_SYMBOL_GPL vmlinux 0x091f2627 ata_bmdma_stop +EXPORT_SYMBOL_GPL vmlinux 0x092478d4 crypto_ahash_finup +EXPORT_SYMBOL_GPL vmlinux 0x09437748 ring_buffer_read_events_cpu +EXPORT_SYMBOL_GPL vmlinux 0x09469482 kfree_call_rcu +EXPORT_SYMBOL_GPL vmlinux 0x0952af60 fb_videomode_from_videomode +EXPORT_SYMBOL_GPL vmlinux 0x097449ae get_mtd_device_nm +EXPORT_SYMBOL_GPL vmlinux 0x09c91daf crypto_givcipher_type +EXPORT_SYMBOL_GPL vmlinux 0x09ce8349 regcache_mark_dirty +EXPORT_SYMBOL_GPL vmlinux 0x09d06f18 fb_bl_default_curve +EXPORT_SYMBOL_GPL vmlinux 0x09e913c1 snd_pcm_alt_chmaps +EXPORT_SYMBOL_GPL vmlinux 0x09ed36de xenbus_watch_pathfmt +EXPORT_SYMBOL_GPL vmlinux 0x0a04a846 skcipher_geniv_exit +EXPORT_SYMBOL_GPL vmlinux 0x0a12c3be iommu_domain_set_attr +EXPORT_SYMBOL_GPL vmlinux 0x0a3c441f debugfs_print_regs32 +EXPORT_SYMBOL_GPL vmlinux 0x0a487465 subsys_interface_unregister +EXPORT_SYMBOL_GPL vmlinux 0x0a48a527 netlink_has_listeners +EXPORT_SYMBOL_GPL vmlinux 0x0a808aaa __mnt_drop_write +EXPORT_SYMBOL_GPL vmlinux 0x0aca0643 iommu_group_get +EXPORT_SYMBOL_GPL vmlinux 0x0ace7df6 ata_pci_bmdma_init +EXPORT_SYMBOL_GPL vmlinux 0x0ae30aa3 bio_alloc_mddev +EXPORT_SYMBOL_GPL vmlinux 0x0af54dae omap_dm_timer_free +EXPORT_SYMBOL_GPL vmlinux 0x0afc8643 extcon_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x0afd4610 zs_malloc +EXPORT_SYMBOL_GPL vmlinux 0x0b07abe2 unshare_fs_struct +EXPORT_SYMBOL_GPL vmlinux 0x0b22b19f led_trigger_show +EXPORT_SYMBOL_GPL vmlinux 0x0b283b60 ip6_datagram_recv_ctl +EXPORT_SYMBOL_GPL vmlinux 0x0b2e4e33 tcp_get_info +EXPORT_SYMBOL_GPL vmlinux 0x0b374325 pci_enable_sriov +EXPORT_SYMBOL_GPL vmlinux 0x0b511ce6 rtc_initialize_alarm +EXPORT_SYMBOL_GPL vmlinux 0x0b59390b __tracepoint_rpm_suspend +EXPORT_SYMBOL_GPL vmlinux 0x0b5d7c01 snd_soc_info_enum_double +EXPORT_SYMBOL_GPL vmlinux 0x0b887ebb snd_soc_put_volsw_s8 +EXPORT_SYMBOL_GPL vmlinux 0x0b8fb229 tcp_unregister_congestion_control +EXPORT_SYMBOL_GPL vmlinux 0x0b98210b find_vpid +EXPORT_SYMBOL_GPL vmlinux 0x0ba8374b __srcu_read_unlock +EXPORT_SYMBOL_GPL vmlinux 0x0bae62b1 ktime_get_monotonic_offset +EXPORT_SYMBOL_GPL vmlinux 0x0bbae511 return_address +EXPORT_SYMBOL_GPL vmlinux 0x0bdec7a6 ahci_reset_em +EXPORT_SYMBOL_GPL vmlinux 0x0bf60eb5 tps6586x_clr_bits +EXPORT_SYMBOL_GPL vmlinux 0x0bfa3a19 rcu_idle_exit +EXPORT_SYMBOL_GPL vmlinux 0x0c0c015e ring_buffer_swap_cpu +EXPORT_SYMBOL_GPL vmlinux 0x0c2cdbf1 synchronize_sched +EXPORT_SYMBOL_GPL vmlinux 0x0c2e03a8 hvc_alloc +EXPORT_SYMBOL_GPL vmlinux 0x0c3c8585 bsg_unregister_queue +EXPORT_SYMBOL_GPL vmlinux 0x0c90b18e pm_generic_runtime_resume +EXPORT_SYMBOL_GPL vmlinux 0x0cbb8236 __put_task_struct +EXPORT_SYMBOL_GPL vmlinux 0x0cbf1f85 disk_part_iter_exit +EXPORT_SYMBOL_GPL vmlinux 0x0cc1e40f crypto_it_tab +EXPORT_SYMBOL_GPL vmlinux 0x0cec56a0 snd_soc_dapm_get_value_enum_double +EXPORT_SYMBOL_GPL vmlinux 0x0d2260e3 md_is_badblock +EXPORT_SYMBOL_GPL vmlinux 0x0d36f1a1 register_asymmetric_key_parser +EXPORT_SYMBOL_GPL vmlinux 0x0d5422fe find_module +EXPORT_SYMBOL_GPL vmlinux 0x0d746a9b ata_eh_freeze_port +EXPORT_SYMBOL_GPL vmlinux 0x0d9dad36 snd_soc_dpcm_be_can_update +EXPORT_SYMBOL_GPL vmlinux 0x0db6045d dma_request_slave_channel +EXPORT_SYMBOL_GPL vmlinux 0x0dbd0e20 of_property_read_u8_array +EXPORT_SYMBOL_GPL vmlinux 0x0dd5bc67 led_trigger_set +EXPORT_SYMBOL_GPL vmlinux 0x0df53f2f user_update +EXPORT_SYMBOL_GPL vmlinux 0x0e2ac8ea regmap_can_raw_write +EXPORT_SYMBOL_GPL vmlinux 0x0e372cb1 opp_enable +EXPORT_SYMBOL_GPL vmlinux 0x0e393f9d inet_csk_update_pmtu +EXPORT_SYMBOL_GPL vmlinux 0x0e3e8bf7 pm_generic_suspend +EXPORT_SYMBOL_GPL vmlinux 0x0e507673 __netlink_remove_tap +EXPORT_SYMBOL_GPL vmlinux 0x0e698b05 snd_soc_set_runtime_hwparams +EXPORT_SYMBOL_GPL vmlinux 0x0ecdbeeb __page_file_mapping +EXPORT_SYMBOL_GPL vmlinux 0x0ed36b2f call_srcu +EXPORT_SYMBOL_GPL vmlinux 0x0ed92345 sock_diag_put_meminfo +EXPORT_SYMBOL_GPL vmlinux 0x0f11c6ea snd_soc_dapm_mixer_update_power +EXPORT_SYMBOL_GPL vmlinux 0x0f684ca9 disk_get_part +EXPORT_SYMBOL_GPL vmlinux 0x0f751aea input_event_from_user +EXPORT_SYMBOL_GPL vmlinux 0x0f83f5f1 __rtnl_register +EXPORT_SYMBOL_GPL vmlinux 0x0f9d32ae dma_buf_attach +EXPORT_SYMBOL_GPL vmlinux 0x0fb65c89 ata_sff_dev_select +EXPORT_SYMBOL_GPL vmlinux 0x0fc01e9f static_key_slow_inc +EXPORT_SYMBOL_GPL vmlinux 0x0fc3bd35 hrtimer_init +EXPORT_SYMBOL_GPL vmlinux 0x0fc6c4c3 pcie_update_link_speed +EXPORT_SYMBOL_GPL vmlinux 0x0fd08180 mtd_read +EXPORT_SYMBOL_GPL vmlinux 0x0fe112dc of_dma_controller_free +EXPORT_SYMBOL_GPL vmlinux 0x0fe2d570 xenbus_directory +EXPORT_SYMBOL_GPL vmlinux 0x0fe65e8c synchronize_srcu_expedited +EXPORT_SYMBOL_GPL vmlinux 0x10138352 tracing_on +EXPORT_SYMBOL_GPL vmlinux 0x10172737 snd_soc_add_dai_controls +EXPORT_SYMBOL_GPL vmlinux 0x1021cd46 snd_soc_cache_write +EXPORT_SYMBOL_GPL vmlinux 0x1026c1d9 srcu_batches_completed +EXPORT_SYMBOL_GPL vmlinux 0x10291853 devm_regulator_put +EXPORT_SYMBOL_GPL vmlinux 0x10519cf2 ata_qc_complete +EXPORT_SYMBOL_GPL vmlinux 0x10553d52 ata_scsi_port_error_handler +EXPORT_SYMBOL_GPL vmlinux 0x10570b5b usb_unlink_urb +EXPORT_SYMBOL_GPL vmlinux 0x1085022b __udp4_lib_lookup +EXPORT_SYMBOL_GPL vmlinux 0x108ca550 blk_update_request +EXPORT_SYMBOL_GPL vmlinux 0x1090bbcf usb_anchor_urb +EXPORT_SYMBOL_GPL vmlinux 0x10a84c56 alloc_vm_area +EXPORT_SYMBOL_GPL vmlinux 0x10e1faee snd_soc_get_volsw +EXPORT_SYMBOL_GPL vmlinux 0x10ecc52c usb_amd_quirk_pll_enable +EXPORT_SYMBOL_GPL vmlinux 0x1103beb2 mtd_block_markbad +EXPORT_SYMBOL_GPL vmlinux 0x110cd33b usb_driver_claim_interface +EXPORT_SYMBOL_GPL vmlinux 0x11541c81 device_store_ulong +EXPORT_SYMBOL_GPL vmlinux 0x11670ec5 usb_hub_clear_tt_buffer +EXPORT_SYMBOL_GPL vmlinux 0x116daab1 shash_ahash_digest +EXPORT_SYMBOL_GPL vmlinux 0x1172ce54 rtc_ktime_to_tm +EXPORT_SYMBOL_GPL vmlinux 0x119be264 sdio_memcpy_fromio +EXPORT_SYMBOL_GPL vmlinux 0x11b80e07 ip6_route_lookup +EXPORT_SYMBOL_GPL vmlinux 0x11c03e2c rdev_get_id +EXPORT_SYMBOL_GPL vmlinux 0x11f1c111 snd_soc_debugfs_root +EXPORT_SYMBOL_GPL vmlinux 0x11f2ef5a regmap_register_patch +EXPORT_SYMBOL_GPL vmlinux 0x11f447ce __gpio_to_irq +EXPORT_SYMBOL_GPL vmlinux 0x120e6d0d relay_flush +EXPORT_SYMBOL_GPL vmlinux 0x121cd964 of_pci_range_parser_one +EXPORT_SYMBOL_GPL vmlinux 0x121d958a unregister_die_notifier +EXPORT_SYMBOL_GPL vmlinux 0x121ed3f3 add_timer_on +EXPORT_SYMBOL_GPL vmlinux 0x122a3634 cleanup_srcu_struct +EXPORT_SYMBOL_GPL vmlinux 0x12378ddf skb_complete_wifi_ack +EXPORT_SYMBOL_GPL vmlinux 0x123cc747 snd_soc_cache_sync +EXPORT_SYMBOL_GPL vmlinux 0x124f2056 crypto_get_attr_type +EXPORT_SYMBOL_GPL vmlinux 0x1258d9d9 regulator_disable +EXPORT_SYMBOL_GPL vmlinux 0x1263b5c2 snd_soc_dpcm_be_get_state +EXPORT_SYMBOL_GPL vmlinux 0x1268f357 resume_device_irqs +EXPORT_SYMBOL_GPL vmlinux 0x126efc66 mddev_suspend +EXPORT_SYMBOL_GPL vmlinux 0x12989611 get_governor_parent_kobj +EXPORT_SYMBOL_GPL vmlinux 0x12c95df7 ata_sff_exec_command +EXPORT_SYMBOL_GPL vmlinux 0x12cd2439 unregister_pernet_device +EXPORT_SYMBOL_GPL vmlinux 0x131a5ed7 regmap_del_irq_chip +EXPORT_SYMBOL_GPL vmlinux 0x131db64a system_long_wq +EXPORT_SYMBOL_GPL vmlinux 0x133155b1 pm_stay_awake +EXPORT_SYMBOL_GPL vmlinux 0x13448ff6 dio_end_io +EXPORT_SYMBOL_GPL vmlinux 0x1345c18b omap_dm_timer_start +EXPORT_SYMBOL_GPL vmlinux 0x13476259 ahash_register_instance +EXPORT_SYMBOL_GPL vmlinux 0x13503d4d securityfs_create_file +EXPORT_SYMBOL_GPL vmlinux 0x136f3f43 inet_hash +EXPORT_SYMBOL_GPL vmlinux 0x138aff76 gnttab_init +EXPORT_SYMBOL_GPL vmlinux 0x139cb032 thermal_zone_unbind_cooling_device +EXPORT_SYMBOL_GPL vmlinux 0x13b89dee pinctrl_request_gpio +EXPORT_SYMBOL_GPL vmlinux 0x13bd27c0 tty_ldisc_deref +EXPORT_SYMBOL_GPL vmlinux 0x13f6e6d4 cgroup_next_descendant_post +EXPORT_SYMBOL_GPL vmlinux 0x140baa5f debugfs_create_blob +EXPORT_SYMBOL_GPL vmlinux 0x1419212a snd_soc_bytes_info +EXPORT_SYMBOL_GPL vmlinux 0x142a8be4 of_clk_get_parent_name +EXPORT_SYMBOL_GPL vmlinux 0x1444a5fb iommu_domain_alloc +EXPORT_SYMBOL_GPL vmlinux 0x144d9de1 usb_poison_urb +EXPORT_SYMBOL_GPL vmlinux 0x145e0aca devm_reset_control_get +EXPORT_SYMBOL_GPL vmlinux 0x14868098 subsys_find_device_by_id +EXPORT_SYMBOL_GPL vmlinux 0x14889798 file_ra_state_init +EXPORT_SYMBOL_GPL vmlinux 0x149789a5 uart_set_options +EXPORT_SYMBOL_GPL vmlinux 0x14f875ce devm_regmap_init_mmio_clk +EXPORT_SYMBOL_GPL vmlinux 0x14ffa5b4 sata_scr_write_flush +EXPORT_SYMBOL_GPL vmlinux 0x15255936 invalidate_inode_pages2_range +EXPORT_SYMBOL_GPL vmlinux 0x1525f36d __pm_stay_awake +EXPORT_SYMBOL_GPL vmlinux 0x154d7a2c irq_domain_xlate_twocell +EXPORT_SYMBOL_GPL vmlinux 0x1556645c ip6_sk_dst_lookup_flow +EXPORT_SYMBOL_GPL vmlinux 0x156c3586 device_show_int +EXPORT_SYMBOL_GPL vmlinux 0x156e2187 ping_recvmsg +EXPORT_SYMBOL_GPL vmlinux 0x157aba32 __mmu_notifier_invalidate_range_start +EXPORT_SYMBOL_GPL vmlinux 0x15892417 async_synchronize_cookie +EXPORT_SYMBOL_GPL vmlinux 0x15a3fd6c init_dummy_netdev +EXPORT_SYMBOL_GPL vmlinux 0x15d1eac3 sk_attach_filter +EXPORT_SYMBOL_GPL vmlinux 0x15fb2c74 snd_soc_info_volsw_ext +EXPORT_SYMBOL_GPL vmlinux 0x15fc95fc nl_table +EXPORT_SYMBOL_GPL vmlinux 0x16000a3c dm_device_name +EXPORT_SYMBOL_GPL vmlinux 0x16017d04 skb_segment +EXPORT_SYMBOL_GPL vmlinux 0x16222436 virtqueue_notify +EXPORT_SYMBOL_GPL vmlinux 0x1624e473 class_interface_unregister +EXPORT_SYMBOL_GPL vmlinux 0x1650bf27 rcutorture_record_progress +EXPORT_SYMBOL_GPL vmlinux 0x165c2efb clk_get_rate +EXPORT_SYMBOL_GPL vmlinux 0x169554a3 snd_compress_register +EXPORT_SYMBOL_GPL vmlinux 0x169973db iommu_domain_window_enable +EXPORT_SYMBOL_GPL vmlinux 0x16a8932c inet_hashinfo_init +EXPORT_SYMBOL_GPL vmlinux 0x16c44345 usb_ep0_reinit +EXPORT_SYMBOL_GPL vmlinux 0x16de848b __rt_mutex_init +EXPORT_SYMBOL_GPL vmlinux 0x170017c8 dev_get_gen_pool +EXPORT_SYMBOL_GPL vmlinux 0x1726f204 amba_ahb_device_add +EXPORT_SYMBOL_GPL vmlinux 0x177a2314 fat_scan +EXPORT_SYMBOL_GPL vmlinux 0x177a5cd0 blkg_prfill_rwstat +EXPORT_SYMBOL_GPL vmlinux 0x177c338d twl_get_version +EXPORT_SYMBOL_GPL vmlinux 0x1796247b snd_soc_dapm_ignore_suspend +EXPORT_SYMBOL_GPL vmlinux 0x179da08e inet_csk_bind_conflict +EXPORT_SYMBOL_GPL vmlinux 0x17f07f21 sysfs_create_group +EXPORT_SYMBOL_GPL vmlinux 0x1819ce4c scsi_autopm_get_device +EXPORT_SYMBOL_GPL vmlinux 0x1842afa5 balloon_devinfo_alloc +EXPORT_SYMBOL_GPL vmlinux 0x1853653c btree_alloc +EXPORT_SYMBOL_GPL vmlinux 0x1866cec2 ring_buffer_size +EXPORT_SYMBOL_GPL vmlinux 0x1877442c sata_scr_read +EXPORT_SYMBOL_GPL vmlinux 0x1878f62b edac_err_assert +EXPORT_SYMBOL_GPL vmlinux 0x1879e69f ping_getfrag +EXPORT_SYMBOL_GPL vmlinux 0x187ae6c5 wm8350_device_init +EXPORT_SYMBOL_GPL vmlinux 0x18840c04 dma_buf_unmap_attachment +EXPORT_SYMBOL_GPL vmlinux 0x188d06d7 snd_soc_get_xr_sx +EXPORT_SYMBOL_GPL vmlinux 0x18979505 snd_soc_update_bits +EXPORT_SYMBOL_GPL vmlinux 0x18a27f34 jump_label_rate_limit +EXPORT_SYMBOL_GPL vmlinux 0x18d725aa set_cpus_allowed_ptr +EXPORT_SYMBOL_GPL vmlinux 0x18f83fab gnttab_grant_foreign_access_ref +EXPORT_SYMBOL_GPL vmlinux 0x1907c976 spi_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x190f9a04 of_irq_map_pci +EXPORT_SYMBOL_GPL vmlinux 0x191bfbc1 mtd_writev +EXPORT_SYMBOL_GPL vmlinux 0x193d48e0 trace_current_buffer_unlock_commit +EXPORT_SYMBOL_GPL vmlinux 0x194693c3 pm_generic_suspend_noirq +EXPORT_SYMBOL_GPL vmlinux 0x197297eb irq_domain_xlate_onetwocell +EXPORT_SYMBOL_GPL vmlinux 0x19a304ba usb_disabled +EXPORT_SYMBOL_GPL vmlinux 0x19bbd686 dev_pm_qos_expose_latency_limit +EXPORT_SYMBOL_GPL vmlinux 0x19cf4776 usb_get_phy +EXPORT_SYMBOL_GPL vmlinux 0x19e0d9b7 tcp_reno_min_cwnd +EXPORT_SYMBOL_GPL vmlinux 0x19f23a2a sata_link_hardreset +EXPORT_SYMBOL_GPL vmlinux 0x19fc7f60 regulator_set_mode +EXPORT_SYMBOL_GPL vmlinux 0x1a082d69 max77693_update_reg +EXPORT_SYMBOL_GPL vmlinux 0x1a0cb54a arizona_set_irq_wake +EXPORT_SYMBOL_GPL vmlinux 0x1a323362 __ftrace_vbprintk +EXPORT_SYMBOL_GPL vmlinux 0x1a65920b omap_iommu_arch_version +EXPORT_SYMBOL_GPL vmlinux 0x1a6c7313 omap_dm_timer_set_prescaler +EXPORT_SYMBOL_GPL vmlinux 0x1a871dc3 led_trigger_blink +EXPORT_SYMBOL_GPL vmlinux 0x1ab81b39 regulator_unregister +EXPORT_SYMBOL_GPL vmlinux 0x1abae491 ata_link_next +EXPORT_SYMBOL_GPL vmlinux 0x1ac125d4 unregister_virtio_driver +EXPORT_SYMBOL_GPL vmlinux 0x1ad83009 trace_seq_vprintf +EXPORT_SYMBOL_GPL vmlinux 0x1ae7f44e skb_cow_data +EXPORT_SYMBOL_GPL vmlinux 0x1b0a3082 led_trigger_rename_static +EXPORT_SYMBOL_GPL vmlinux 0x1b0b56ad sec_reg_write +EXPORT_SYMBOL_GPL vmlinux 0x1b3193ff gen_pool_size +EXPORT_SYMBOL_GPL vmlinux 0x1b3261e0 klist_iter_init +EXPORT_SYMBOL_GPL vmlinux 0x1b40d9ff ahci_check_ready +EXPORT_SYMBOL_GPL vmlinux 0x1b463528 ping_seq_next +EXPORT_SYMBOL_GPL vmlinux 0x1b52db1c probe_kernel_read +EXPORT_SYMBOL_GPL vmlinux 0x1b630f55 reset_controller_unregister +EXPORT_SYMBOL_GPL vmlinux 0x1b8822d8 pinctrl_gpio_direction_output +EXPORT_SYMBOL_GPL vmlinux 0x1b9aca3f jprobe_return +EXPORT_SYMBOL_GPL vmlinux 0x1bb5fc26 atomic_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0x1bb6b2fa xenbus_free_evtchn +EXPORT_SYMBOL_GPL vmlinux 0x1bbbb3e1 ehci_resume +EXPORT_SYMBOL_GPL vmlinux 0x1bc4ad31 inode_sb_list_add +EXPORT_SYMBOL_GPL vmlinux 0x1bc5eebe pinctrl_gpio_direction_input +EXPORT_SYMBOL_GPL vmlinux 0x1bd06aab cpufreq_frequency_table_get_attr +EXPORT_SYMBOL_GPL vmlinux 0x1bd47a54 device_wakeup_disable +EXPORT_SYMBOL_GPL vmlinux 0x1c03f2ab wm5102_spi_regmap +EXPORT_SYMBOL_GPL vmlinux 0x1c156fc7 ata_bmdma_port_start +EXPORT_SYMBOL_GPL vmlinux 0x1c1aeda7 pci_bus_sem +EXPORT_SYMBOL_GPL vmlinux 0x1c2df428 pci_destroy_slot +EXPORT_SYMBOL_GPL vmlinux 0x1c458e3c wm8994_bulk_write +EXPORT_SYMBOL_GPL vmlinux 0x1c5b1f28 irq_free_descs +EXPORT_SYMBOL_GPL vmlinux 0x1c6e6cf0 sdio_readsb +EXPORT_SYMBOL_GPL vmlinux 0x1c80d27d btree_geo128 +EXPORT_SYMBOL_GPL vmlinux 0x1c825d62 fuse_direct_io +EXPORT_SYMBOL_GPL vmlinux 0x1c87a811 __round_jiffies_up +EXPORT_SYMBOL_GPL vmlinux 0x1cc4b1de crypto_register_ahash +EXPORT_SYMBOL_GPL vmlinux 0x1cd37c4d kset_create_and_add +EXPORT_SYMBOL_GPL vmlinux 0x1cffc4df RSA_public_key_algorithm +EXPORT_SYMBOL_GPL vmlinux 0x1d415d4d blk_queue_flush +EXPORT_SYMBOL_GPL vmlinux 0x1d45ba32 tpm_show_owned +EXPORT_SYMBOL_GPL vmlinux 0x1d4612b8 omap_dm_timer_request_by_node +EXPORT_SYMBOL_GPL vmlinux 0x1d4a1ade devm_regulator_bulk_get +EXPORT_SYMBOL_GPL vmlinux 0x1d58ae14 lpddr2_jedec_timings +EXPORT_SYMBOL_GPL vmlinux 0x1d6428ce ohci_setup +EXPORT_SYMBOL_GPL vmlinux 0x1d68d2ad ip6_append_data +EXPORT_SYMBOL_GPL vmlinux 0x1d6e3ea0 ping_seq_fops +EXPORT_SYMBOL_GPL vmlinux 0x1d739e1c xen_set_callback_via +EXPORT_SYMBOL_GPL vmlinux 0x1d77b0f8 unix_socket_table +EXPORT_SYMBOL_GPL vmlinux 0x1d8c4a75 debugfs_create_u8 +EXPORT_SYMBOL_GPL vmlinux 0x1da869c1 extcon_get_cable_state_ +EXPORT_SYMBOL_GPL vmlinux 0x1de054d5 of_clk_del_provider +EXPORT_SYMBOL_GPL vmlinux 0x1e20371e inet6_lookup_listener +EXPORT_SYMBOL_GPL vmlinux 0x1e314b21 regulator_use_dummy_regulator +EXPORT_SYMBOL_GPL vmlinux 0x1e3a88fb trace_seq_printf +EXPORT_SYMBOL_GPL vmlinux 0x1e57cdc3 sdio_align_size +EXPORT_SYMBOL_GPL vmlinux 0x1e5b03dc pm_qos_add_notifier +EXPORT_SYMBOL_GPL vmlinux 0x1e5b659d get_task_mm +EXPORT_SYMBOL_GPL vmlinux 0x1e7bbcb3 kernel_restart +EXPORT_SYMBOL_GPL vmlinux 0x1e7f7a5a ata_sff_hsm_move +EXPORT_SYMBOL_GPL vmlinux 0x1e83fee6 HYPERVISOR_physdev_op +EXPORT_SYMBOL_GPL vmlinux 0x1eb9516e round_jiffies_relative +EXPORT_SYMBOL_GPL vmlinux 0x1ebad42e __sock_recv_ts_and_drops +EXPORT_SYMBOL_GPL vmlinux 0x1ebf6c2a pci_power_names +EXPORT_SYMBOL_GPL vmlinux 0x1ec59936 perf_event_refresh +EXPORT_SYMBOL_GPL vmlinux 0x1ec9a65a iommu_present +EXPORT_SYMBOL_GPL vmlinux 0x1ee1277c of_regulator_match +EXPORT_SYMBOL_GPL vmlinux 0x1f089461 ipv4_sk_update_pmtu +EXPORT_SYMBOL_GPL vmlinux 0x1f1a8060 key_type_logon +EXPORT_SYMBOL_GPL vmlinux 0x1f2ef654 regmap_add_irq_chip +EXPORT_SYMBOL_GPL vmlinux 0x1f2fa188 devres_release +EXPORT_SYMBOL_GPL vmlinux 0x1f37286e register_jprobes +EXPORT_SYMBOL_GPL vmlinux 0x1f4ec1e3 proc_mkdir_data +EXPORT_SYMBOL_GPL vmlinux 0x1f54f1b4 do_trace_rcu_torture_read +EXPORT_SYMBOL_GPL vmlinux 0x1f591a1b omap_iommu_save_ctx +EXPORT_SYMBOL_GPL vmlinux 0x1f82f405 pci_bus_resource_n +EXPORT_SYMBOL_GPL vmlinux 0x1f8544b8 panic_timeout +EXPORT_SYMBOL_GPL vmlinux 0x1f8db7f9 ring_buffer_overrun_cpu +EXPORT_SYMBOL_GPL vmlinux 0x1fa3f435 ata_link_online +EXPORT_SYMBOL_GPL vmlinux 0x1fcece42 inet_twdr_twcal_tick +EXPORT_SYMBOL_GPL vmlinux 0x1fea9be3 rtc_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x2002968f raw_unhash_sk +EXPORT_SYMBOL_GPL vmlinux 0x201d8ea3 encode_rs8 +EXPORT_SYMBOL_GPL vmlinux 0x201dabf7 snd_soc_dapm_mux_update_power +EXPORT_SYMBOL_GPL vmlinux 0x20236d59 sdio_get_host_pm_caps +EXPORT_SYMBOL_GPL vmlinux 0x203a032d snd_soc_put_value_enum_double +EXPORT_SYMBOL_GPL vmlinux 0x204fbf4a inet_twsk_alloc +EXPORT_SYMBOL_GPL vmlinux 0x20678be4 blk_abort_request +EXPORT_SYMBOL_GPL vmlinux 0x207ae7f6 sysfs_add_file_to_group +EXPORT_SYMBOL_GPL vmlinux 0x2087ab6e bus_create_file +EXPORT_SYMBOL_GPL vmlinux 0x20a18fa6 spi_async_locked +EXPORT_SYMBOL_GPL vmlinux 0x20a31499 irq_set_default_host +EXPORT_SYMBOL_GPL vmlinux 0x20b3b0d0 ata_sas_port_stop +EXPORT_SYMBOL_GPL vmlinux 0x20bc3470 orderly_poweroff +EXPORT_SYMBOL_GPL vmlinux 0x20eb3996 snd_soc_dapm_free +EXPORT_SYMBOL_GPL vmlinux 0x20f86a43 register_pernet_device +EXPORT_SYMBOL_GPL vmlinux 0x20ff2f6e xenbus_dev_suspend +EXPORT_SYMBOL_GPL vmlinux 0x21199fb8 snd_soc_codec_volatile_register +EXPORT_SYMBOL_GPL vmlinux 0x211e35a4 tps6586x_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x2128f3bf pci_test_config_bits +EXPORT_SYMBOL_GPL vmlinux 0x212d953b tcp_slow_start +EXPORT_SYMBOL_GPL vmlinux 0x213f20fb fat_fill_super +EXPORT_SYMBOL_GPL vmlinux 0x2140280e get_current_tty +EXPORT_SYMBOL_GPL vmlinux 0x217c7923 tty_port_tty_hangup +EXPORT_SYMBOL_GPL vmlinux 0x2184e0c8 snd_soc_register_component +EXPORT_SYMBOL_GPL vmlinux 0x21ac8b77 iommu_group_get_by_id +EXPORT_SYMBOL_GPL vmlinux 0x21bbd26a dev_pm_qos_add_notifier +EXPORT_SYMBOL_GPL vmlinux 0x21bdb16e tcp_reno_ssthresh +EXPORT_SYMBOL_GPL vmlinux 0x21d7e583 xenbus_dev_remove +EXPORT_SYMBOL_GPL vmlinux 0x2205b8f4 snd_soc_jack_get_type +EXPORT_SYMBOL_GPL vmlinux 0x222521f5 skcipher_geniv_alloc +EXPORT_SYMBOL_GPL vmlinux 0x223bdb93 ata_sas_port_async_resume +EXPORT_SYMBOL_GPL vmlinux 0x2266fc5d snd_dmaengine_pcm_prepare_slave_config +EXPORT_SYMBOL_GPL vmlinux 0x226a674d atomic_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0x2291bf37 sdio_disable_func +EXPORT_SYMBOL_GPL vmlinux 0x2296c00d crypto_attr_u32 +EXPORT_SYMBOL_GPL vmlinux 0x22978952 rt_mutex_lock +EXPORT_SYMBOL_GPL vmlinux 0x22ad9d06 clone_private_mount +EXPORT_SYMBOL_GPL vmlinux 0x22b43836 devm_usb_put_phy +EXPORT_SYMBOL_GPL vmlinux 0x22ba7196 crypto_lookup_template +EXPORT_SYMBOL_GPL vmlinux 0x22c16ecb dummy_irq_chip +EXPORT_SYMBOL_GPL vmlinux 0x22c5019b snd_soc_dapm_force_enable_pin +EXPORT_SYMBOL_GPL vmlinux 0x22cbf016 of_clk_src_simple_get +EXPORT_SYMBOL_GPL vmlinux 0x22f953f6 devres_find +EXPORT_SYMBOL_GPL vmlinux 0x231d70fc encode_bch +EXPORT_SYMBOL_GPL vmlinux 0x23373a9a mtd_block_isbad +EXPORT_SYMBOL_GPL vmlinux 0x233aa4e5 ata_eh_qc_complete +EXPORT_SYMBOL_GPL vmlinux 0x235aa78b udc_attach_driver +EXPORT_SYMBOL_GPL vmlinux 0x23679939 __iowrite32_copy +EXPORT_SYMBOL_GPL vmlinux 0x236904e2 alarm_forward +EXPORT_SYMBOL_GPL vmlinux 0x2373352a clk_fixed_factor_ops +EXPORT_SYMBOL_GPL vmlinux 0x23864ce7 cpuset_mem_spread_node +EXPORT_SYMBOL_GPL vmlinux 0x23910e62 mmu_notifier_register +EXPORT_SYMBOL_GPL vmlinux 0x2392bc6e pm_qos_request_active +EXPORT_SYMBOL_GPL vmlinux 0x23c0ed81 pstore_register +EXPORT_SYMBOL_GPL vmlinux 0x23e72bb5 crypto_shash_digest +EXPORT_SYMBOL_GPL vmlinux 0x23f7fed1 ip6_dst_lookup_flow +EXPORT_SYMBOL_GPL vmlinux 0x240580a9 xenbus_probe +EXPORT_SYMBOL_GPL vmlinux 0x2429d78a clk_register +EXPORT_SYMBOL_GPL vmlinux 0x24419969 pci_slots_kset +EXPORT_SYMBOL_GPL vmlinux 0x2447533c ktime_get_real +EXPORT_SYMBOL_GPL vmlinux 0x24697ea4 subsys_dev_iter_init +EXPORT_SYMBOL_GPL vmlinux 0x246c837a page_cache_sync_readahead +EXPORT_SYMBOL_GPL vmlinux 0x247ef831 kdb_unregister +EXPORT_SYMBOL_GPL vmlinux 0x24aac4d9 crypto_aes_expand_key +EXPORT_SYMBOL_GPL vmlinux 0x24bfd775 hvc_remove +EXPORT_SYMBOL_GPL vmlinux 0x24c7698a xenbus_write +EXPORT_SYMBOL_GPL vmlinux 0x24df0252 devres_remove +EXPORT_SYMBOL_GPL vmlinux 0x24e81091 __rtnl_link_unregister +EXPORT_SYMBOL_GPL vmlinux 0x24ea71b5 driver_find_device +EXPORT_SYMBOL_GPL vmlinux 0x24eb7e32 leds_list +EXPORT_SYMBOL_GPL vmlinux 0x24f2639f sdhci_suspend_host +EXPORT_SYMBOL_GPL vmlinux 0x24f2d831 regulator_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x24f39c39 reset_control_reset +EXPORT_SYMBOL_GPL vmlinux 0x24fc46b6 regulator_bulk_free +EXPORT_SYMBOL_GPL vmlinux 0x252d2d17 eventfd_fget +EXPORT_SYMBOL_GPL vmlinux 0x2541a979 snd_soc_calc_frame_size +EXPORT_SYMBOL_GPL vmlinux 0x2545c170 unregister_xenbus_watch +EXPORT_SYMBOL_GPL vmlinux 0x254d97f3 user_instantiate +EXPORT_SYMBOL_GPL vmlinux 0x25654d91 usb_set_interface +EXPORT_SYMBOL_GPL vmlinux 0x2573d53d usb_disable_ltm +EXPORT_SYMBOL_GPL vmlinux 0x257b5dba gpiochip_add +EXPORT_SYMBOL_GPL vmlinux 0x258b14ef crypto_find_alg +EXPORT_SYMBOL_GPL vmlinux 0x25a1ce87 hwmon_device_register +EXPORT_SYMBOL_GPL vmlinux 0x25a3e78b usb_match_id +EXPORT_SYMBOL_GPL vmlinux 0x25ab58aa __clk_register +EXPORT_SYMBOL_GPL vmlinux 0x25cf3644 snd_soc_jack_add_zones +EXPORT_SYMBOL_GPL vmlinux 0x25d648f7 usb_lock_device_for_reset +EXPORT_SYMBOL_GPL vmlinux 0x25e4540f pci_disable_rom +EXPORT_SYMBOL_GPL vmlinux 0x25e4fa8c btree_remove +EXPORT_SYMBOL_GPL vmlinux 0x260d93c2 blkcg_deactivate_policy +EXPORT_SYMBOL_GPL vmlinux 0x2612202d task_user_regset_view +EXPORT_SYMBOL_GPL vmlinux 0x26209243 map_vm_area +EXPORT_SYMBOL_GPL vmlinux 0x262f20a8 local_clock +EXPORT_SYMBOL_GPL vmlinux 0x263983a7 devm_pwm_put +EXPORT_SYMBOL_GPL vmlinux 0x26520970 vm_memory_committed +EXPORT_SYMBOL_GPL vmlinux 0x265d963b pingv6_ops +EXPORT_SYMBOL_GPL vmlinux 0x267a67b6 bus_unregister +EXPORT_SYMBOL_GPL vmlinux 0x2683cdc0 fb_deferred_io_init +EXPORT_SYMBOL_GPL vmlinux 0x26adb815 thread_notify_head +EXPORT_SYMBOL_GPL vmlinux 0x26b71fb4 ring_buffer_time_stamp +EXPORT_SYMBOL_GPL vmlinux 0x26c4cbf0 unregister_ftrace_event +EXPORT_SYMBOL_GPL vmlinux 0x26c90ea4 scsi_eh_get_sense +EXPORT_SYMBOL_GPL vmlinux 0x272230c2 usb_put_phy +EXPORT_SYMBOL_GPL vmlinux 0x2735aeaa virtqueue_enable_cb_delayed +EXPORT_SYMBOL_GPL vmlinux 0x273e2eef sysfs_create_files +EXPORT_SYMBOL_GPL vmlinux 0x2747752d xenbus_dev_changed +EXPORT_SYMBOL_GPL vmlinux 0x276461b2 snd_soc_dai_set_tdm_slot +EXPORT_SYMBOL_GPL vmlinux 0x2767c004 fat_alloc_new_dir +EXPORT_SYMBOL_GPL vmlinux 0x2787db00 vbin_printf +EXPORT_SYMBOL_GPL vmlinux 0x27a1a469 spi_busnum_to_master +EXPORT_SYMBOL_GPL vmlinux 0x27acd1a3 cpuidle_get_driver +EXPORT_SYMBOL_GPL vmlinux 0x27b57889 hvc_poll +EXPORT_SYMBOL_GPL vmlinux 0x27c1e63f usb_amd_find_chipset_info +EXPORT_SYMBOL_GPL vmlinux 0x27da5f59 tpm_remove_hardware +EXPORT_SYMBOL_GPL vmlinux 0x27e090fa rtnl_link_register +EXPORT_SYMBOL_GPL vmlinux 0x27ed0972 ata_sff_irq_on +EXPORT_SYMBOL_GPL vmlinux 0x27fa66e1 nr_free_buffer_pages +EXPORT_SYMBOL_GPL vmlinux 0x28090479 tty_register_device_attr +EXPORT_SYMBOL_GPL vmlinux 0x282ab391 transport_setup_device +EXPORT_SYMBOL_GPL vmlinux 0x2869ebaf regulator_bulk_force_disable +EXPORT_SYMBOL_GPL vmlinux 0x289aad4a blk_execute_rq_nowait +EXPORT_SYMBOL_GPL vmlinux 0x289d86d8 led_trigger_event +EXPORT_SYMBOL_GPL vmlinux 0x28a82da4 snmp_mib_init +EXPORT_SYMBOL_GPL vmlinux 0x28a903c8 timerqueue_add +EXPORT_SYMBOL_GPL vmlinux 0x28c3ac8f ata_pci_bmdma_prepare_host +EXPORT_SYMBOL_GPL vmlinux 0x28ea789f ata_sff_data_xfer32 +EXPORT_SYMBOL_GPL vmlinux 0x28ed72b0 sdio_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0x29047f1a __i2c_board_lock +EXPORT_SYMBOL_GPL vmlinux 0x29094c1c cgroup_path +EXPORT_SYMBOL_GPL vmlinux 0x2918a3ef dm_kill_unmapped_request +EXPORT_SYMBOL_GPL vmlinux 0x29245478 od_register_powersave_bias_handler +EXPORT_SYMBOL_GPL vmlinux 0x29276d0d pwm_get_chip_data +EXPORT_SYMBOL_GPL vmlinux 0x294d11f5 class_destroy +EXPORT_SYMBOL_GPL vmlinux 0x2964431a aead_geniv_free +EXPORT_SYMBOL_GPL vmlinux 0x296fc6d9 bus_for_each_dev +EXPORT_SYMBOL_GPL vmlinux 0x2974ec64 tty_prepare_flip_string +EXPORT_SYMBOL_GPL vmlinux 0x29935a5e tpm_read +EXPORT_SYMBOL_GPL vmlinux 0x2993ae75 devm_usb_get_phy_dev +EXPORT_SYMBOL_GPL vmlinux 0x29a39e78 tps6586x_writes +EXPORT_SYMBOL_GPL vmlinux 0x29d204c1 snd_soc_codec_set_sysclk +EXPORT_SYMBOL_GPL vmlinux 0x29e1eecc wm8994_reg_read +EXPORT_SYMBOL_GPL vmlinux 0x29eeec00 usb_debug_root +EXPORT_SYMBOL_GPL vmlinux 0x29fa419f decode_rs8 +EXPORT_SYMBOL_GPL vmlinux 0x2a028794 bitmap_load +EXPORT_SYMBOL_GPL vmlinux 0x2a0d6633 rt_mutex_lock_interruptible +EXPORT_SYMBOL_GPL vmlinux 0x2a504ad2 init_srcu_struct +EXPORT_SYMBOL_GPL vmlinux 0x2a5c24b7 __rtnl_af_register +EXPORT_SYMBOL_GPL vmlinux 0x2a60d75a get_cpu_device +EXPORT_SYMBOL_GPL vmlinux 0x2a678a13 __suspend_report_result +EXPORT_SYMBOL_GPL vmlinux 0x2aaf2dbf ata_sff_qc_fill_rtf +EXPORT_SYMBOL_GPL vmlinux 0x2ac1a6d0 ata_sff_dev_classify +EXPORT_SYMBOL_GPL vmlinux 0x2acf3aae crypto_enqueue_request +EXPORT_SYMBOL_GPL vmlinux 0x2ad1ece4 zs_get_total_size_bytes +EXPORT_SYMBOL_GPL vmlinux 0x2ad64625 regmap_reinit_cache +EXPORT_SYMBOL_GPL vmlinux 0x2ad9d326 md_ack_all_badblocks +EXPORT_SYMBOL_GPL vmlinux 0x2b26878c tty_port_install +EXPORT_SYMBOL_GPL vmlinux 0x2b373124 pm_runtime_enable +EXPORT_SYMBOL_GPL vmlinux 0x2b7a6de8 syscon_regmap_lookup_by_phandle +EXPORT_SYMBOL_GPL vmlinux 0x2b7d4874 napi_hash_del +EXPORT_SYMBOL_GPL vmlinux 0x2b865cb5 usb_autopm_put_interface_no_suspend +EXPORT_SYMBOL_GPL vmlinux 0x2b90ad28 mmc_app_cmd +EXPORT_SYMBOL_GPL vmlinux 0x2b9484b4 usb_enable_lpm +EXPORT_SYMBOL_GPL vmlinux 0x2ba0c0fe inet_peer_base_init +EXPORT_SYMBOL_GPL vmlinux 0x2babe81f __wake_up_sync_key +EXPORT_SYMBOL_GPL vmlinux 0x2bd63218 con_debug_enter +EXPORT_SYMBOL_GPL vmlinux 0x2bf69c4a cpufreq_frequency_table_verify +EXPORT_SYMBOL_GPL vmlinux 0x2bf77c90 ata_link_abort +EXPORT_SYMBOL_GPL vmlinux 0x2c189fdc dma_wait_for_async_tx +EXPORT_SYMBOL_GPL vmlinux 0x2c208607 power_supply_is_system_supplied +EXPORT_SYMBOL_GPL vmlinux 0x2c3ffe31 xen_unmap_domain_mfn_range +EXPORT_SYMBOL_GPL vmlinux 0x2c44872d irq_domain_xlate_onecell +EXPORT_SYMBOL_GPL vmlinux 0x2c75b4d0 watchdog_init_timeout +EXPORT_SYMBOL_GPL vmlinux 0x2c7d9c64 xen_store_interface +EXPORT_SYMBOL_GPL vmlinux 0x2c7db649 irq_dispose_mapping +EXPORT_SYMBOL_GPL vmlinux 0x2c810b66 regcache_sync_region +EXPORT_SYMBOL_GPL vmlinux 0x2c909ac6 blkg_lookup +EXPORT_SYMBOL_GPL vmlinux 0x2c94daa8 input_ff_destroy +EXPORT_SYMBOL_GPL vmlinux 0x2c9f0c44 virtio_check_driver_offered_feature +EXPORT_SYMBOL_GPL vmlinux 0x2ca4ebcd regulator_set_drvdata +EXPORT_SYMBOL_GPL vmlinux 0x2cd911fb cgroup_next_descendant_pre +EXPORT_SYMBOL_GPL vmlinux 0x2ce920ae bmp085_regmap_config +EXPORT_SYMBOL_GPL vmlinux 0x2ce98559 kcrypto_wq +EXPORT_SYMBOL_GPL vmlinux 0x2cea32ee unregister_oldmem_pfn_is_ram +EXPORT_SYMBOL_GPL vmlinux 0x2cfa057f adp5520_clr_bits +EXPORT_SYMBOL_GPL vmlinux 0x2d17a0e1 cgroup_taskset_size +EXPORT_SYMBOL_GPL vmlinux 0x2d1b02d2 usermodehelper_read_lock_wait +EXPORT_SYMBOL_GPL vmlinux 0x2d24fa3e raw_seq_open +EXPORT_SYMBOL_GPL vmlinux 0x2d3d3774 dm_suspended +EXPORT_SYMBOL_GPL vmlinux 0x2d41e6f5 __trace_puts +EXPORT_SYMBOL_GPL vmlinux 0x2d59c954 edac_handlers +EXPORT_SYMBOL_GPL vmlinux 0x2d61c7df vchan_init +EXPORT_SYMBOL_GPL vmlinux 0x2d637153 tpm_dev_release +EXPORT_SYMBOL_GPL vmlinux 0x2dcba5d8 blk_rq_err_bytes +EXPORT_SYMBOL_GPL vmlinux 0x2ddcbe98 tty_port_link_device +EXPORT_SYMBOL_GPL vmlinux 0x2dffe1b9 devres_alloc +EXPORT_SYMBOL_GPL vmlinux 0x2e1a44e4 nf_queue_entry_get_refs +EXPORT_SYMBOL_GPL vmlinux 0x2e200cfa fuse_sync_release +EXPORT_SYMBOL_GPL vmlinux 0x2e278f88 btree_insert +EXPORT_SYMBOL_GPL vmlinux 0x2e2f1740 ring_buffer_record_disable_cpu +EXPORT_SYMBOL_GPL vmlinux 0x2e37a358 xenbus_dev_resume +EXPORT_SYMBOL_GPL vmlinux 0x2e397966 each_symbol_section +EXPORT_SYMBOL_GPL vmlinux 0x2e3a1111 i2c_for_each_dev +EXPORT_SYMBOL_GPL vmlinux 0x2e45e488 rcu_note_context_switch +EXPORT_SYMBOL_GPL vmlinux 0x2e7a3b5e deregister_mtd_blktrans +EXPORT_SYMBOL_GPL vmlinux 0x2e9670c0 pl320_ipc_transmit +EXPORT_SYMBOL_GPL vmlinux 0x2ea83e21 sysfs_create_file +EXPORT_SYMBOL_GPL vmlinux 0x2ebe3135 cpu_is_hotpluggable +EXPORT_SYMBOL_GPL vmlinux 0x2ecb10d1 ata_eh_analyze_ncq_error +EXPORT_SYMBOL_GPL vmlinux 0x2ef6b5bf smp_call_function_any +EXPORT_SYMBOL_GPL vmlinux 0x2f0d9053 usb_otg_state_string +EXPORT_SYMBOL_GPL vmlinux 0x2f4113a2 dcookie_register +EXPORT_SYMBOL_GPL vmlinux 0x2f4fa9e8 usb_ifnum_to_if +EXPORT_SYMBOL_GPL vmlinux 0x2fa29b76 unregister_kretprobe +EXPORT_SYMBOL_GPL vmlinux 0x2fa3c201 regmap_update_bits_check +EXPORT_SYMBOL_GPL vmlinux 0x2fabf024 pm_runtime_autosuspend_expiration +EXPORT_SYMBOL_GPL vmlinux 0x2fae3d39 uart_handle_cts_change +EXPORT_SYMBOL_GPL vmlinux 0x2fcb7d53 inet6_csk_reqsk_queue_hash_add +EXPORT_SYMBOL_GPL vmlinux 0x2fd2e3c6 cpuidle_register_device +EXPORT_SYMBOL_GPL vmlinux 0x2fd8cba9 freeze_wake +EXPORT_SYMBOL_GPL vmlinux 0x3006b6f5 of_pci_get_devfn +EXPORT_SYMBOL_GPL vmlinux 0x300d7e57 free_rs +EXPORT_SYMBOL_GPL vmlinux 0x303dfa5a tty_port_register_device_attr +EXPORT_SYMBOL_GPL vmlinux 0x30693bb7 imx_audmux_v1_configure_port +EXPORT_SYMBOL_GPL vmlinux 0x308039b2 scsi_internal_device_unblock +EXPORT_SYMBOL_GPL vmlinux 0x308b733a getboottime +EXPORT_SYMBOL_GPL vmlinux 0x308f3dc1 devm_rtc_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x30a4f4ca bstr_printf +EXPORT_SYMBOL_GPL vmlinux 0x30b9cc49 ata_sff_thaw +EXPORT_SYMBOL_GPL vmlinux 0x3109b751 cpu_clock +EXPORT_SYMBOL_GPL vmlinux 0x31266931 con_debug_leave +EXPORT_SYMBOL_GPL vmlinux 0x31361f40 ehci_handshake +EXPORT_SYMBOL_GPL vmlinux 0x31392a09 stmpe_disable +EXPORT_SYMBOL_GPL vmlinux 0x31587761 unregister_pernet_subsys +EXPORT_SYMBOL_GPL vmlinux 0x316255e9 inet6_csk_search_req +EXPORT_SYMBOL_GPL vmlinux 0x31a29422 mtd_point +EXPORT_SYMBOL_GPL vmlinux 0x31a820ed register_jprobe +EXPORT_SYMBOL_GPL vmlinux 0x31be35d5 of_get_named_gen_pool +EXPORT_SYMBOL_GPL vmlinux 0x31bf33ec wm8400_reg_read +EXPORT_SYMBOL_GPL vmlinux 0x31c0c2d1 dm_put +EXPORT_SYMBOL_GPL vmlinux 0x31c7970f pciserial_suspend_ports +EXPORT_SYMBOL_GPL vmlinux 0x31d69853 driver_create_file +EXPORT_SYMBOL_GPL vmlinux 0x31ec6594 subsys_interface_register +EXPORT_SYMBOL_GPL vmlinux 0x31fb11ed raw_seq_next +EXPORT_SYMBOL_GPL vmlinux 0x322a7be1 tpm_calc_ordinal_duration +EXPORT_SYMBOL_GPL vmlinux 0x322e260c skb_gro_receive +EXPORT_SYMBOL_GPL vmlinux 0x325e677c gnttab_grant_foreign_transfer_ref +EXPORT_SYMBOL_GPL vmlinux 0x3266607c snd_ctl_sync_vmaster +EXPORT_SYMBOL_GPL vmlinux 0x326d90be crypto_register_shashes +EXPORT_SYMBOL_GPL vmlinux 0x3275443c ping_proc_register +EXPORT_SYMBOL_GPL vmlinux 0x3278e2c9 __module_address +EXPORT_SYMBOL_GPL vmlinux 0x328995b5 tracing_generic_entry_update +EXPORT_SYMBOL_GPL vmlinux 0x329bbbde timerqueue_del +EXPORT_SYMBOL_GPL vmlinux 0x32a4a1a7 sock_diag_register +EXPORT_SYMBOL_GPL vmlinux 0x32b31a8c ktime_get_boottime +EXPORT_SYMBOL_GPL vmlinux 0x32bddd2b ata_do_eh +EXPORT_SYMBOL_GPL vmlinux 0x32c3cb4e class_compat_register +EXPORT_SYMBOL_GPL vmlinux 0x32c83d85 fuse_conn_init +EXPORT_SYMBOL_GPL vmlinux 0x32cfbeff mtd_kmalloc_up_to +EXPORT_SYMBOL_GPL vmlinux 0x32d1a392 ata_sff_pause +EXPORT_SYMBOL_GPL vmlinux 0x32e2f33a sysfs_remove_link +EXPORT_SYMBOL_GPL vmlinux 0x32fd447a monotonic_to_bootbased +EXPORT_SYMBOL_GPL vmlinux 0x330d351e dev_get_regmap +EXPORT_SYMBOL_GPL vmlinux 0x3317cfd1 ahci_port_resume +EXPORT_SYMBOL_GPL vmlinux 0x331a16ae snd_soc_default_writable_register +EXPORT_SYMBOL_GPL vmlinux 0x331b8716 ata_pci_sff_init_one +EXPORT_SYMBOL_GPL vmlinux 0x3324cbf1 inet_csk_listen_start +EXPORT_SYMBOL_GPL vmlinux 0x333b1971 __platform_driver_register +EXPORT_SYMBOL_GPL vmlinux 0x335c570f enable_percpu_irq +EXPORT_SYMBOL_GPL vmlinux 0x336154ca rcutorture_record_test_transition +EXPORT_SYMBOL_GPL vmlinux 0x33883929 clk_divider_ops +EXPORT_SYMBOL_GPL vmlinux 0x338e7c2a blk_rq_unprep_clone +EXPORT_SYMBOL_GPL vmlinux 0x33d6bfd8 ata_pci_device_do_suspend +EXPORT_SYMBOL_GPL vmlinux 0x34114ff0 snd_soc_bytes_put +EXPORT_SYMBOL_GPL vmlinux 0x341643ba omap_dm_timer_modify_idlect_mask +EXPORT_SYMBOL_GPL vmlinux 0x342c7cec omap_dm_timer_read_counter +EXPORT_SYMBOL_GPL vmlinux 0x3441c3d6 gpio_set_value_cansleep +EXPORT_SYMBOL_GPL vmlinux 0x345ce2cc pci_reset_pri +EXPORT_SYMBOL_GPL vmlinux 0x345dff31 ata_platform_remove_one +EXPORT_SYMBOL_GPL vmlinux 0x34689006 netlink_add_tap +EXPORT_SYMBOL_GPL vmlinux 0x346c6209 generic_fh_to_parent +EXPORT_SYMBOL_GPL vmlinux 0x347fd4b3 eventfd_ctx_get +EXPORT_SYMBOL_GPL vmlinux 0x349ddcb9 snd_soc_dai_set_pll +EXPORT_SYMBOL_GPL vmlinux 0x34ac50a4 visitorl +EXPORT_SYMBOL_GPL vmlinux 0x34f6e655 crypto_spawn_tfm2 +EXPORT_SYMBOL_GPL vmlinux 0x34ff3c41 driver_attach +EXPORT_SYMBOL_GPL vmlinux 0x352650ee gnttab_batch_map +EXPORT_SYMBOL_GPL vmlinux 0x353583f1 amba_apb_device_add_res +EXPORT_SYMBOL_GPL vmlinux 0x354e9104 ahci_init_controller +EXPORT_SYMBOL_GPL vmlinux 0x35614c42 smpboot_unregister_percpu_thread +EXPORT_SYMBOL_GPL vmlinux 0x3589f780 dm_get_rq_mapinfo +EXPORT_SYMBOL_GPL vmlinux 0x358ff60f twl_get_hfclk_rate +EXPORT_SYMBOL_GPL vmlinux 0x3593b8fa ipv6_dup_options +EXPORT_SYMBOL_GPL vmlinux 0x35a000f3 fib_rules_unregister +EXPORT_SYMBOL_GPL vmlinux 0x35bf47e9 regcache_cache_only +EXPORT_SYMBOL_GPL vmlinux 0x35cc744c usb_mon_register +EXPORT_SYMBOL_GPL vmlinux 0x35d0c659 snd_soc_register_card +EXPORT_SYMBOL_GPL vmlinux 0x35f165f1 devm_reset_control_put +EXPORT_SYMBOL_GPL vmlinux 0x36075bb5 iommu_group_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x36164a0f usb_reset_configuration +EXPORT_SYMBOL_GPL vmlinux 0x361e2bcc save_stack_trace +EXPORT_SYMBOL_GPL vmlinux 0x3624d105 snd_dmaengine_pcm_request_channel +EXPORT_SYMBOL_GPL vmlinux 0x3650c6ae device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x365f0a07 pinctrl_pm_select_sleep_state +EXPORT_SYMBOL_GPL vmlinux 0x369fcd70 tracing_snapshot +EXPORT_SYMBOL_GPL vmlinux 0x36c91577 kobject_uevent +EXPORT_SYMBOL_GPL vmlinux 0x36dd6469 __sock_recv_wifi_status +EXPORT_SYMBOL_GPL vmlinux 0x36e372a3 sdio_writesb +EXPORT_SYMBOL_GPL vmlinux 0x36f9010e blk_add_request_payload +EXPORT_SYMBOL_GPL vmlinux 0x3700154c pkey_hash_algo +EXPORT_SYMBOL_GPL vmlinux 0x370cf590 ahci_stop_engine +EXPORT_SYMBOL_GPL vmlinux 0x373d570a wm8350_block_read +EXPORT_SYMBOL_GPL vmlinux 0x37621c6c md_trim_bio +EXPORT_SYMBOL_GPL vmlinux 0x376e4f83 usb_reset_device +EXPORT_SYMBOL_GPL vmlinux 0x379b4a15 dev_forward_skb +EXPORT_SYMBOL_GPL vmlinux 0x37e03e32 __class_register +EXPORT_SYMBOL_GPL vmlinux 0x37fcb680 da903x_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x380563da sata_scr_write +EXPORT_SYMBOL_GPL vmlinux 0x380f84df shash_free_instance +EXPORT_SYMBOL_GPL vmlinux 0x38336a17 da9052_disable_irq_nosync +EXPORT_SYMBOL_GPL vmlinux 0x38367ef4 devm_regmap_init_spi +EXPORT_SYMBOL_GPL vmlinux 0x38620e38 gnttab_grant_foreign_access_trans_ref +EXPORT_SYMBOL_GPL vmlinux 0x386286fe iommu_group_remove_device +EXPORT_SYMBOL_GPL vmlinux 0x387b3583 scsi_mode_select +EXPORT_SYMBOL_GPL vmlinux 0x3889eda1 skb_copy_ubufs +EXPORT_SYMBOL_GPL vmlinux 0x38a9c2c7 input_ff_effect_from_user +EXPORT_SYMBOL_GPL vmlinux 0x38dfec6d register_mtd_blktrans +EXPORT_SYMBOL_GPL vmlinux 0x38f1cfd1 thermal_zone_device_update +EXPORT_SYMBOL_GPL vmlinux 0x3928a1dd dma_release_channel +EXPORT_SYMBOL_GPL vmlinux 0x394676ad tcp_twsk_unique +EXPORT_SYMBOL_GPL vmlinux 0x3951242a omap_dm_timer_set_match +EXPORT_SYMBOL_GPL vmlinux 0x39614f45 usb_init_urb +EXPORT_SYMBOL_GPL vmlinux 0x3993168d irq_domain_add_simple +EXPORT_SYMBOL_GPL vmlinux 0x39d9ae7d snd_soc_codec_set_cache_io +EXPORT_SYMBOL_GPL vmlinux 0x3a078d31 tps6586x_write +EXPORT_SYMBOL_GPL vmlinux 0x3a2055fd _submit_bh +EXPORT_SYMBOL_GPL vmlinux 0x3a260ef4 dma_buf_export_named +EXPORT_SYMBOL_GPL vmlinux 0x3a26ed11 sched_clock +EXPORT_SYMBOL_GPL vmlinux 0x3a2abdbf clk_disable +EXPORT_SYMBOL_GPL vmlinux 0x3a4c6000 of_irq_to_resource +EXPORT_SYMBOL_GPL vmlinux 0x3a4f6a32 ata_sff_interrupt +EXPORT_SYMBOL_GPL vmlinux 0x3a536bd7 ring_buffer_read_finish +EXPORT_SYMBOL_GPL vmlinux 0x3ac482ca iommu_attach_group +EXPORT_SYMBOL_GPL vmlinux 0x3ac75973 dm_send_uevents +EXPORT_SYMBOL_GPL vmlinux 0x3acdf325 twl4030_audio_enable_resource +EXPORT_SYMBOL_GPL vmlinux 0x3ad82802 of_property_read_u32_index +EXPORT_SYMBOL_GPL vmlinux 0x3b1e9443 ahci_do_softreset +EXPORT_SYMBOL_GPL vmlinux 0x3b394b50 ata_sff_error_handler +EXPORT_SYMBOL_GPL vmlinux 0x3b399d71 net_ns_type_operations +EXPORT_SYMBOL_GPL vmlinux 0x3b578ba9 skcipher_geniv_init +EXPORT_SYMBOL_GPL vmlinux 0x3b85a6cd crypto_alloc_instance +EXPORT_SYMBOL_GPL vmlinux 0x3bc7b6be spi_setup +EXPORT_SYMBOL_GPL vmlinux 0x3bc876b2 dev_pm_qos_update_request +EXPORT_SYMBOL_GPL vmlinux 0x3bd6b564 da9052_free_irq +EXPORT_SYMBOL_GPL vmlinux 0x3bdc25e8 pci_reset_function +EXPORT_SYMBOL_GPL vmlinux 0x3be3585c cpufreq_cooling_register +EXPORT_SYMBOL_GPL vmlinux 0x3c1bf01b regmap_exit +EXPORT_SYMBOL_GPL vmlinux 0x3c27ac46 ata_pio_need_iordy +EXPORT_SYMBOL_GPL vmlinux 0x3c43e583 arizona_dev_exit +EXPORT_SYMBOL_GPL vmlinux 0x3c55c379 xenbus_dev_probe +EXPORT_SYMBOL_GPL vmlinux 0x3c5b999a nand_wait_ready +EXPORT_SYMBOL_GPL vmlinux 0x3c5d5c83 sata_link_debounce +EXPORT_SYMBOL_GPL vmlinux 0x3c831441 arm_check_condition +EXPORT_SYMBOL_GPL vmlinux 0x3c9390db pci_vpd_find_tag +EXPORT_SYMBOL_GPL vmlinux 0x3ca17104 __snd_printk +EXPORT_SYMBOL_GPL vmlinux 0x3cac21b9 regulator_sync_voltage +EXPORT_SYMBOL_GPL vmlinux 0x3cb2ecb5 fuse_dev_release +EXPORT_SYMBOL_GPL vmlinux 0x3cd06035 add_input_randomness +EXPORT_SYMBOL_GPL vmlinux 0x3cdcad09 pci_disable_ats +EXPORT_SYMBOL_GPL vmlinux 0x3d388324 dpm_resume_end +EXPORT_SYMBOL_GPL vmlinux 0x3d3b32fb pci_cfg_access_lock +EXPORT_SYMBOL_GPL vmlinux 0x3d4f52a0 vfs_setxattr +EXPORT_SYMBOL_GPL vmlinux 0x3d738275 bus_for_each_drv +EXPORT_SYMBOL_GPL vmlinux 0x3d7ea99a gnttab_grant_foreign_transfer +EXPORT_SYMBOL_GPL vmlinux 0x3d971fd5 fuse_request_alloc +EXPORT_SYMBOL_GPL vmlinux 0x3da7a43b proc_get_parent_data +EXPORT_SYMBOL_GPL vmlinux 0x3db0c536 ablkcipher_walk_phys +EXPORT_SYMBOL_GPL vmlinux 0x3db3b208 __fat_fs_error +EXPORT_SYMBOL_GPL vmlinux 0x3db91586 scatterwalk_done +EXPORT_SYMBOL_GPL vmlinux 0x3dc526a9 arizona_of_match +EXPORT_SYMBOL_GPL vmlinux 0x3dc916b6 crypto_fl_tab +EXPORT_SYMBOL_GPL vmlinux 0x3dd4d3a7 bprintf +EXPORT_SYMBOL_GPL vmlinux 0x3de9cae1 crypto_remove_final +EXPORT_SYMBOL_GPL vmlinux 0x3e0a89d4 gnttab_unmap_refs +EXPORT_SYMBOL_GPL vmlinux 0x3e172c9d omap_dm_timer_get_irq +EXPORT_SYMBOL_GPL vmlinux 0x3e2aea29 devm_regmap_field_free +EXPORT_SYMBOL_GPL vmlinux 0x3e2fa31f wm8997_i2c_regmap +EXPORT_SYMBOL_GPL vmlinux 0x3e4402d4 fuse_dev_operations +EXPORT_SYMBOL_GPL vmlinux 0x3e452a00 blocking_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x3e5070d6 irq_find_host +EXPORT_SYMBOL_GPL vmlinux 0x3e65bd75 sata_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x3e66d1f3 dpcm_be_dai_trigger +EXPORT_SYMBOL_GPL vmlinux 0x3e7080cb mpi_read_from_buffer +EXPORT_SYMBOL_GPL vmlinux 0x3ebc8572 virtqueue_enable_cb_prepare +EXPORT_SYMBOL_GPL vmlinux 0x3efb35c9 get_online_cpus +EXPORT_SYMBOL_GPL vmlinux 0x3f0b6748 clk_notifier_unregister +EXPORT_SYMBOL_GPL vmlinux 0x3f620a84 disable_kprobe +EXPORT_SYMBOL_GPL vmlinux 0x3f69c73a unregister_kprobes +EXPORT_SYMBOL_GPL vmlinux 0x3f6a02c7 hrtimer_init_sleeper +EXPORT_SYMBOL_GPL vmlinux 0x3f7e6742 sdhci_get_of_property +EXPORT_SYMBOL_GPL vmlinux 0x3f84d4c9 gnttab_release_grant_reference +EXPORT_SYMBOL_GPL vmlinux 0x3fed777c spi_master_resume +EXPORT_SYMBOL_GPL vmlinux 0x3ff6fb6e inet_csk_clone_lock +EXPORT_SYMBOL_GPL vmlinux 0x40197295 pci_intx +EXPORT_SYMBOL_GPL vmlinux 0x401b7525 napi_by_id +EXPORT_SYMBOL_GPL vmlinux 0x4031ad0f dev_attr_link_power_management_policy +EXPORT_SYMBOL_GPL vmlinux 0x403f9529 gpio_request_one +EXPORT_SYMBOL_GPL vmlinux 0x4045c494 filter_match_preds +EXPORT_SYMBOL_GPL vmlinux 0x4065d168 pm_print_active_wakeup_sources +EXPORT_SYMBOL_GPL vmlinux 0x407f760f subsys_dev_iter_next +EXPORT_SYMBOL_GPL vmlinux 0x40ac310c skb_to_sgvec +EXPORT_SYMBOL_GPL vmlinux 0x40af0dec ata_xfer_mode2mask +EXPORT_SYMBOL_GPL vmlinux 0x40c3202b __clk_get_name +EXPORT_SYMBOL_GPL vmlinux 0x40d46b21 crypto_ft_tab +EXPORT_SYMBOL_GPL vmlinux 0x40d6f39a fuse_get_req +EXPORT_SYMBOL_GPL vmlinux 0x40f0683e reset_control_put +EXPORT_SYMBOL_GPL vmlinux 0x40f4bc4e pinctrl_pm_select_idle_state +EXPORT_SYMBOL_GPL vmlinux 0x416180a5 xenbus_grant_ring +EXPORT_SYMBOL_GPL vmlinux 0x41814cb8 dirty_writeback_interval +EXPORT_SYMBOL_GPL vmlinux 0x419a027a ip6_flush_pending_frames +EXPORT_SYMBOL_GPL vmlinux 0x41b3492d locks_alloc_lock +EXPORT_SYMBOL_GPL vmlinux 0x41cc9b3d debugfs_create_atomic_t +EXPORT_SYMBOL_GPL vmlinux 0x41db7ca0 snd_soc_jack_add_pins +EXPORT_SYMBOL_GPL vmlinux 0x41de0a6c iommu_detach_device +EXPORT_SYMBOL_GPL vmlinux 0x41ffefe8 ohci_init_driver +EXPORT_SYMBOL_GPL vmlinux 0x4205ad24 cancel_work_sync +EXPORT_SYMBOL_GPL vmlinux 0x420ff368 of_clk_src_onecell_get +EXPORT_SYMBOL_GPL vmlinux 0x42160169 flush_workqueue +EXPORT_SYMBOL_GPL vmlinux 0x4255c960 rt_mutex_destroy +EXPORT_SYMBOL_GPL vmlinux 0x427f18a6 ata_cable_80wire +EXPORT_SYMBOL_GPL vmlinux 0x42825ce2 rcu_scheduler_active +EXPORT_SYMBOL_GPL vmlinux 0x42b7d080 inet6_csk_bind_conflict +EXPORT_SYMBOL_GPL vmlinux 0x42cc7fc1 device_show_ulong +EXPORT_SYMBOL_GPL vmlinux 0x42d01a5a spi_get_next_queued_message +EXPORT_SYMBOL_GPL vmlinux 0x42d3002c unregister_hw_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0x430e5257 of_alias_get_id +EXPORT_SYMBOL_GPL vmlinux 0x43162c5d snd_soc_dapm_put_enum_virt +EXPORT_SYMBOL_GPL vmlinux 0x4318f264 ata_dev_pair +EXPORT_SYMBOL_GPL vmlinux 0x432fd7f6 __gpio_set_value +EXPORT_SYMBOL_GPL vmlinux 0x433550a7 usb_submit_urb +EXPORT_SYMBOL_GPL vmlinux 0x433d5a3c page_mkclean +EXPORT_SYMBOL_GPL vmlinux 0x4368317d debugfs_create_x64 +EXPORT_SYMBOL_GPL vmlinux 0x4373f9ea snd_soc_codec_writable_register +EXPORT_SYMBOL_GPL vmlinux 0x437ddc9a __blk_end_request_err +EXPORT_SYMBOL_GPL vmlinux 0x4390d602 sdhci_enable_irq_wakeups +EXPORT_SYMBOL_GPL vmlinux 0x43a1793f xen_dbgp_external_startup +EXPORT_SYMBOL_GPL vmlinux 0x43a53735 __alloc_workqueue_key +EXPORT_SYMBOL_GPL vmlinux 0x43b1c48d pwm_request +EXPORT_SYMBOL_GPL vmlinux 0x43b2cef3 da903x_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x43f31070 tpm_register_hardware +EXPORT_SYMBOL_GPL vmlinux 0x43f56e82 ata_xfer_mode2shift +EXPORT_SYMBOL_GPL vmlinux 0x4400689a bd_link_disk_holder +EXPORT_SYMBOL_GPL vmlinux 0x4436585e dma_buf_map_attachment +EXPORT_SYMBOL_GPL vmlinux 0x44404f11 kdb_register_repeat +EXPORT_SYMBOL_GPL vmlinux 0x444f1735 cpu_pm_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x4455e1b3 regulator_disable_deferred +EXPORT_SYMBOL_GPL vmlinux 0x445d8287 trace_define_field +EXPORT_SYMBOL_GPL vmlinux 0x447b2f37 sock_diag_unregister_inet_compat +EXPORT_SYMBOL_GPL vmlinux 0x447eb69c rtnl_put_cacheinfo +EXPORT_SYMBOL_GPL vmlinux 0x4484a5a4 wait_for_device_probe +EXPORT_SYMBOL_GPL vmlinux 0x4486a273 class_find_device +EXPORT_SYMBOL_GPL vmlinux 0x4496c8be uart_console_write +EXPORT_SYMBOL_GPL vmlinux 0x44a793ab HYPERVISOR_grant_table_op +EXPORT_SYMBOL_GPL vmlinux 0x44b5bf8e blk_unprep_request +EXPORT_SYMBOL_GPL vmlinux 0x44bc2a03 input_ff_upload +EXPORT_SYMBOL_GPL vmlinux 0x44d60bcc get_task_comm +EXPORT_SYMBOL_GPL vmlinux 0x44fb679b attribute_container_register +EXPORT_SYMBOL_GPL vmlinux 0x450665f7 rt_mutex_unlock +EXPORT_SYMBOL_GPL vmlinux 0x453957fe device_store_int +EXPORT_SYMBOL_GPL vmlinux 0x454424a6 __pneigh_lookup +EXPORT_SYMBOL_GPL vmlinux 0x455708cd vfs_truncate +EXPORT_SYMBOL_GPL vmlinux 0x457594fa crypto_alg_list +EXPORT_SYMBOL_GPL vmlinux 0x457b77ca of_fixed_factor_clk_setup +EXPORT_SYMBOL_GPL vmlinux 0x459585c0 usb_match_one_id +EXPORT_SYMBOL_GPL vmlinux 0x45ba1367 btree_init_mempool +EXPORT_SYMBOL_GPL vmlinux 0x45bf1ff3 crypto_inc +EXPORT_SYMBOL_GPL vmlinux 0x45cec2bf serial8250_tx_chars +EXPORT_SYMBOL_GPL vmlinux 0x46066e5b perf_pmu_name +EXPORT_SYMBOL_GPL vmlinux 0x46074c17 sdev_evt_alloc +EXPORT_SYMBOL_GPL vmlinux 0x460f7531 wait_rcu_gp +EXPORT_SYMBOL_GPL vmlinux 0x461f55d7 dma_buf_mmap +EXPORT_SYMBOL_GPL vmlinux 0x46390513 inet6_csk_update_pmtu +EXPORT_SYMBOL_GPL vmlinux 0x4643d49a vfs_getxattr +EXPORT_SYMBOL_GPL vmlinux 0x46457edb blkcg_activate_policy +EXPORT_SYMBOL_GPL vmlinux 0x4656f20e pci_user_write_config_byte +EXPORT_SYMBOL_GPL vmlinux 0x465d28ec cgroup_taskset_cur_cgroup +EXPORT_SYMBOL_GPL vmlinux 0x4660e628 tpm_show_enabled +EXPORT_SYMBOL_GPL vmlinux 0x4672e88b __crypto_dequeue_request +EXPORT_SYMBOL_GPL vmlinux 0x467c6fbd sdio_f0_writeb +EXPORT_SYMBOL_GPL vmlinux 0x4688d7ec pvclock_gtod_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x46bb6206 ohci_resume +EXPORT_SYMBOL_GPL vmlinux 0x46ca49b2 fuse_conn_kill +EXPORT_SYMBOL_GPL vmlinux 0x46d6bb72 sdhci_pltfm_clk_get_max_clock +EXPORT_SYMBOL_GPL vmlinux 0x46e3ec37 ref_module +EXPORT_SYMBOL_GPL vmlinux 0x46f512a5 snd_kctl_jack_new +EXPORT_SYMBOL_GPL vmlinux 0x471ce3ea virtqueue_add_sgs +EXPORT_SYMBOL_GPL vmlinux 0x47229b5c gpio_request +EXPORT_SYMBOL_GPL vmlinux 0x473449f8 ata_link_offline +EXPORT_SYMBOL_GPL vmlinux 0x474c1832 opp_disable +EXPORT_SYMBOL_GPL vmlinux 0x4761f17c register_netevent_notifier +EXPORT_SYMBOL_GPL vmlinux 0x476f77d7 pm_runtime_set_memalloc_noio +EXPORT_SYMBOL_GPL vmlinux 0x477a6ec6 cpufreq_frequency_get_table +EXPORT_SYMBOL_GPL vmlinux 0x47884890 system_power_efficient_wq +EXPORT_SYMBOL_GPL vmlinux 0x479e9671 usb_deregister_device_driver +EXPORT_SYMBOL_GPL vmlinux 0x47aad3b9 have_governor_per_policy +EXPORT_SYMBOL_GPL vmlinux 0x47b4d034 usb_add_phy +EXPORT_SYMBOL_GPL vmlinux 0x47b7ab73 iommu_group_add_device +EXPORT_SYMBOL_GPL vmlinux 0x47c3cdac get_kernel_pages +EXPORT_SYMBOL_GPL vmlinux 0x47e387fa tcp_register_congestion_control +EXPORT_SYMBOL_GPL vmlinux 0x47efc2c7 snd_soc_dai_set_tristate +EXPORT_SYMBOL_GPL vmlinux 0x47f1ff87 cpufreq_notify_transition +EXPORT_SYMBOL_GPL vmlinux 0x47ff399f regulator_is_supported_voltage +EXPORT_SYMBOL_GPL vmlinux 0x480cf7eb mtd_add_partition +EXPORT_SYMBOL_GPL vmlinux 0x481e9f95 uart_insert_char +EXPORT_SYMBOL_GPL vmlinux 0x48326703 regulator_disable_regmap +EXPORT_SYMBOL_GPL vmlinux 0x4855b740 snd_soc_add_platform_controls +EXPORT_SYMBOL_GPL vmlinux 0x487552e6 usb_unpoison_urb +EXPORT_SYMBOL_GPL vmlinux 0x48783115 debugfs_create_bool +EXPORT_SYMBOL_GPL vmlinux 0x48ab5da7 pkey_algo +EXPORT_SYMBOL_GPL vmlinux 0x48b17d9d wm831x_reg_read +EXPORT_SYMBOL_GPL vmlinux 0x48c0681c nf_register_afinfo +EXPORT_SYMBOL_GPL vmlinux 0x48ca8947 pm_qos_add_request +EXPORT_SYMBOL_GPL vmlinux 0x48dac282 tpm_show_timeouts +EXPORT_SYMBOL_GPL vmlinux 0x48f5a814 usb_hcd_poll_rh_status +EXPORT_SYMBOL_GPL vmlinux 0x490021c2 usb_autopm_put_interface_async +EXPORT_SYMBOL_GPL vmlinux 0x4946da71 omap_iotlb_cr_to_e +EXPORT_SYMBOL_GPL vmlinux 0x496fa379 kobject_create_and_add +EXPORT_SYMBOL_GPL vmlinux 0x4982a57f probe_kernel_write +EXPORT_SYMBOL_GPL vmlinux 0x498d293a trace_buffer_unlock_commit +EXPORT_SYMBOL_GPL vmlinux 0x499043d3 crypto_init_queue +EXPORT_SYMBOL_GPL vmlinux 0x49af22a3 sysfs_remove_file_from_group +EXPORT_SYMBOL_GPL vmlinux 0x49d8a1ab tc3589x_block_read +EXPORT_SYMBOL_GPL vmlinux 0x49db765c fl6_sock_lookup +EXPORT_SYMBOL_GPL vmlinux 0x49dfb5c8 pinctrl_find_and_add_gpio_range +EXPORT_SYMBOL_GPL vmlinux 0x4a33d1aa snd_soc_info_xr_sx +EXPORT_SYMBOL_GPL vmlinux 0x4a390e36 omap_dma_filter_fn +EXPORT_SYMBOL_GPL vmlinux 0x4a491768 ata_pci_remove_one +EXPORT_SYMBOL_GPL vmlinux 0x4a4cad8a thermal_cooling_device_register +EXPORT_SYMBOL_GPL vmlinux 0x4a60eb02 pci_vfs_assigned +EXPORT_SYMBOL_GPL vmlinux 0x4a62839d ip6_sk_redirect +EXPORT_SYMBOL_GPL vmlinux 0x4a96d164 sdio_readb +EXPORT_SYMBOL_GPL vmlinux 0x4a9cb082 user_read +EXPORT_SYMBOL_GPL vmlinux 0x4aad979e pinctrl_put +EXPORT_SYMBOL_GPL vmlinux 0x4aadeb9a ring_buffer_alloc_read_page +EXPORT_SYMBOL_GPL vmlinux 0x4ad670e4 devm_usb_get_phy_by_phandle +EXPORT_SYMBOL_GPL vmlinux 0x4af64cbd tty_mode_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x4b17b645 of_property_read_u16_array +EXPORT_SYMBOL_GPL vmlinux 0x4b227e88 da903x_writes +EXPORT_SYMBOL_GPL vmlinux 0x4b3d8a07 of_pwm_xlate_with_flags +EXPORT_SYMBOL_GPL vmlinux 0x4b5224e0 of_reset_simple_xlate +EXPORT_SYMBOL_GPL vmlinux 0x4b67029e sysfs_remove_bin_file +EXPORT_SYMBOL_GPL vmlinux 0x4bad5d2c mtd_blktrans_cease_background +EXPORT_SYMBOL_GPL vmlinux 0x4bafcdd8 btree_update +EXPORT_SYMBOL_GPL vmlinux 0x4bbcc4a5 inet_unhash +EXPORT_SYMBOL_GPL vmlinux 0x4bbf837f exportfs_encode_inode_fh +EXPORT_SYMBOL_GPL vmlinux 0x4bc62a81 audit_enabled +EXPORT_SYMBOL_GPL vmlinux 0x4befdc32 sysfs_create_link +EXPORT_SYMBOL_GPL vmlinux 0x4bf2c5e7 snd_soc_info_volsw +EXPORT_SYMBOL_GPL vmlinux 0x4c33354d snd_soc_dai_set_sysclk +EXPORT_SYMBOL_GPL vmlinux 0x4c44cd11 wm5110_patch +EXPORT_SYMBOL_GPL vmlinux 0x4c47ec15 klist_add_head +EXPORT_SYMBOL_GPL vmlinux 0x4c6012f0 ping_get_port +EXPORT_SYMBOL_GPL vmlinux 0x4c602bf1 __blkg_release_rcu +EXPORT_SYMBOL_GPL vmlinux 0x4c60939e hvc_instantiate +EXPORT_SYMBOL_GPL vmlinux 0x4c74908a ata_host_resume +EXPORT_SYMBOL_GPL vmlinux 0x4c759827 byte_rev_table +EXPORT_SYMBOL_GPL vmlinux 0x4cb619a0 xfrm_output_resume +EXPORT_SYMBOL_GPL vmlinux 0x4cdef63a inet_csk_route_req +EXPORT_SYMBOL_GPL vmlinux 0x4d7a377b class_compat_create_link +EXPORT_SYMBOL_GPL vmlinux 0x4d9f1ac2 single_release_net +EXPORT_SYMBOL_GPL vmlinux 0x4daaea28 pm_generic_restore_noirq +EXPORT_SYMBOL_GPL vmlinux 0x4dc77959 module_mutex +EXPORT_SYMBOL_GPL vmlinux 0x4de17ab3 usb_state_string +EXPORT_SYMBOL_GPL vmlinux 0x4dea0702 virtqueue_enable_cb +EXPORT_SYMBOL_GPL vmlinux 0x4dfffd31 pci_ats_queue_depth +EXPORT_SYMBOL_GPL vmlinux 0x4e01ba0d perf_event_read_value +EXPORT_SYMBOL_GPL vmlinux 0x4e109192 ring_buffer_entries +EXPORT_SYMBOL_GPL vmlinux 0x4e242f5f pstore_cannot_block_path +EXPORT_SYMBOL_GPL vmlinux 0x4e4b66a8 blkcg_print_blkgs +EXPORT_SYMBOL_GPL vmlinux 0x4e68bd48 xenbus_dev_shutdown +EXPORT_SYMBOL_GPL vmlinux 0x4e748eeb rtnl_af_unregister +EXPORT_SYMBOL_GPL vmlinux 0x4e7913a6 fsstack_copy_inode_size +EXPORT_SYMBOL_GPL vmlinux 0x4e7c3017 vchan_tx_submit +EXPORT_SYMBOL_GPL vmlinux 0x4e931c7b virtqueue_add_inbuf +EXPORT_SYMBOL_GPL vmlinux 0x4ecfc99a ata_scsi_simulate +EXPORT_SYMBOL_GPL vmlinux 0x4ed7010a cgroup_unload_subsys +EXPORT_SYMBOL_GPL vmlinux 0x4ef5bcf4 perf_swevent_get_recursion_context +EXPORT_SYMBOL_GPL vmlinux 0x4f002c25 omap_dm_timer_set_load_start +EXPORT_SYMBOL_GPL vmlinux 0x4f1c642f ata_host_start +EXPORT_SYMBOL_GPL vmlinux 0x4f2944c8 snd_soc_add_codec_controls +EXPORT_SYMBOL_GPL vmlinux 0x4f4630d4 wm831x_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x4f6172ff crypto_chain +EXPORT_SYMBOL_GPL vmlinux 0x4f6cb143 put_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0x4f91cc6f snd_soc_dai_digital_mute +EXPORT_SYMBOL_GPL vmlinux 0x4f98d766 cpu_pm_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x4f9dacbf pinctrl_pm_select_default_state +EXPORT_SYMBOL_GPL vmlinux 0x4fa09a3d alarm_cancel +EXPORT_SYMBOL_GPL vmlinux 0x4fd4e89d ring_buffer_empty_cpu +EXPORT_SYMBOL_GPL vmlinux 0x4fdc945d sata_deb_timing_normal +EXPORT_SYMBOL_GPL vmlinux 0x4fe1eddf unregister_netevent_notifier +EXPORT_SYMBOL_GPL vmlinux 0x501532ae cgroup_load_subsys +EXPORT_SYMBOL_GPL vmlinux 0x501536df snd_soc_dapm_get_enum_virt +EXPORT_SYMBOL_GPL vmlinux 0x5016fdef ata_qc_complete_multiple +EXPORT_SYMBOL_GPL vmlinux 0x5017d64c power_supply_changed +EXPORT_SYMBOL_GPL vmlinux 0x5026585c xen_irq_from_gsi +EXPORT_SYMBOL_GPL vmlinux 0x503b8d14 blk_insert_cloned_request +EXPORT_SYMBOL_GPL vmlinux 0x503f1724 device_register +EXPORT_SYMBOL_GPL vmlinux 0x5053e2a6 leds_list_lock +EXPORT_SYMBOL_GPL vmlinux 0x505ab52d clk_round_rate +EXPORT_SYMBOL_GPL vmlinux 0x50601122 of_property_match_string +EXPORT_SYMBOL_GPL vmlinux 0x506691f1 sock_diag_check_cookie +EXPORT_SYMBOL_GPL vmlinux 0x506cc085 tracepoint_iter_stop +EXPORT_SYMBOL_GPL vmlinux 0x5077106c fat_add_entries +EXPORT_SYMBOL_GPL vmlinux 0x5086ac3a alg_test +EXPORT_SYMBOL_GPL vmlinux 0x5089644c snd_ctl_add_vmaster_hook +EXPORT_SYMBOL_GPL vmlinux 0x5091b823 ring_buffer_read_start +EXPORT_SYMBOL_GPL vmlinux 0x50ace484 __irq_set_handler +EXPORT_SYMBOL_GPL vmlinux 0x50c89f23 __alloc_percpu +EXPORT_SYMBOL_GPL vmlinux 0x50e491ab pm_generic_poweroff_late +EXPORT_SYMBOL_GPL vmlinux 0x50e7193a __i2c_first_dynamic_bus_num +EXPORT_SYMBOL_GPL vmlinux 0x50eb1032 xenbus_frontend_closed +EXPORT_SYMBOL_GPL vmlinux 0x50f7ce81 dma_buf_kmap +EXPORT_SYMBOL_GPL vmlinux 0x50fad434 round_jiffies_up +EXPORT_SYMBOL_GPL vmlinux 0x510a5806 fat_get_dotdot_entry +EXPORT_SYMBOL_GPL vmlinux 0x510dc5cb pci_user_write_config_word +EXPORT_SYMBOL_GPL vmlinux 0x51197810 ata_sg_init +EXPORT_SYMBOL_GPL vmlinux 0x512cf16c wakeup_source_destroy +EXPORT_SYMBOL_GPL vmlinux 0x512e19cd dm_path_uevent +EXPORT_SYMBOL_GPL vmlinux 0x51364a58 usb_get_hcd +EXPORT_SYMBOL_GPL vmlinux 0x5137ee09 omap_uninstall_iommu_arch +EXPORT_SYMBOL_GPL vmlinux 0x5168e119 omap_get_control_dev +EXPORT_SYMBOL_GPL vmlinux 0x5187ac4b xen_store_evtchn +EXPORT_SYMBOL_GPL vmlinux 0x518ba107 vchan_find_desc +EXPORT_SYMBOL_GPL vmlinux 0x51b10036 modify_user_hw_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0x51f5a671 mmc_regulator_set_ocr +EXPORT_SYMBOL_GPL vmlinux 0x5210a5bf hsi_board_list +EXPORT_SYMBOL_GPL vmlinux 0x52120583 of_get_display_timings +EXPORT_SYMBOL_GPL vmlinux 0x52132a67 tegra_usb_phy_postresume +EXPORT_SYMBOL_GPL vmlinux 0x52192f0b get_mtd_device +EXPORT_SYMBOL_GPL vmlinux 0x52212010 __tracepoint_block_bio_remap +EXPORT_SYMBOL_GPL vmlinux 0x52463553 sysfs_schedule_callback +EXPORT_SYMBOL_GPL vmlinux 0x524dc670 tegra_pinctrl_probe +EXPORT_SYMBOL_GPL vmlinux 0x52522b89 unregister_virtio_device +EXPORT_SYMBOL_GPL vmlinux 0x52637400 wm8350_block_write +EXPORT_SYMBOL_GPL vmlinux 0x52ddf9fa del_mtd_blktrans_dev +EXPORT_SYMBOL_GPL vmlinux 0x52e7ef38 usb_gadget_probe_driver +EXPORT_SYMBOL_GPL vmlinux 0x52e93ace ata_std_sched_eh +EXPORT_SYMBOL_GPL vmlinux 0x52f89294 tps6586x_update +EXPORT_SYMBOL_GPL vmlinux 0x52fd1b3c ping_unhash +EXPORT_SYMBOL_GPL vmlinux 0x53556606 dapm_reg_event +EXPORT_SYMBOL_GPL vmlinux 0x5358fc36 ring_buffer_discard_commit +EXPORT_SYMBOL_GPL vmlinux 0x53614269 get_cpu_idle_time_us +EXPORT_SYMBOL_GPL vmlinux 0x536f2564 crypto_register_shash +EXPORT_SYMBOL_GPL vmlinux 0x538bba8c crypto_shash_setkey +EXPORT_SYMBOL_GPL vmlinux 0x53a3e486 regulator_get_current_limit +EXPORT_SYMBOL_GPL vmlinux 0x53abff8d regulator_map_voltage_iterate +EXPORT_SYMBOL_GPL vmlinux 0x540bcab7 wait_for_stable_page +EXPORT_SYMBOL_GPL vmlinux 0x5413cfe3 skb_scrub_packet +EXPORT_SYMBOL_GPL vmlinux 0x541bd60a irq_work_run +EXPORT_SYMBOL_GPL vmlinux 0x5424e7fa crypto_tfm_in_queue +EXPORT_SYMBOL_GPL vmlinux 0x544aab61 klist_add_tail +EXPORT_SYMBOL_GPL vmlinux 0x54589f90 ata_pci_sff_activate_host +EXPORT_SYMBOL_GPL vmlinux 0x5460c8d8 fsnotify_get_cookie +EXPORT_SYMBOL_GPL vmlinux 0x5460f155 key_type_trusted +EXPORT_SYMBOL_GPL vmlinux 0x54740eb7 get_cpu_idle_time +EXPORT_SYMBOL_GPL vmlinux 0x54831ae0 security_inode_create +EXPORT_SYMBOL_GPL vmlinux 0x549525ef handle_nested_irq +EXPORT_SYMBOL_GPL vmlinux 0x54aab9dd gpiochip_remove +EXPORT_SYMBOL_GPL vmlinux 0x54cbaf8e set_task_ioprio +EXPORT_SYMBOL_GPL vmlinux 0x54d240b2 inet_csk_reqsk_queue_prune +EXPORT_SYMBOL_GPL vmlinux 0x551caaf9 sk_detach_filter +EXPORT_SYMBOL_GPL vmlinux 0x55417264 unregister_vt_notifier +EXPORT_SYMBOL_GPL vmlinux 0x554df448 fb_deferred_io_cleanup +EXPORT_SYMBOL_GPL vmlinux 0x5550eb2a tps6586x_irq_get_virq +EXPORT_SYMBOL_GPL vmlinux 0x55526907 xen_features +EXPORT_SYMBOL_GPL vmlinux 0x556408e0 __inet_inherit_port +EXPORT_SYMBOL_GPL vmlinux 0x55784228 regmap_irq_get_virq +EXPORT_SYMBOL_GPL vmlinux 0x558c3257 sdhci_disable_irq_wakeups +EXPORT_SYMBOL_GPL vmlinux 0x559b3aae wm8350_device_exit +EXPORT_SYMBOL_GPL vmlinux 0x55c6df9c regmap_raw_read +EXPORT_SYMBOL_GPL vmlinux 0x55cd9612 get_dcookie +EXPORT_SYMBOL_GPL vmlinux 0x55d3857a platform_bus +EXPORT_SYMBOL_GPL vmlinux 0x55d89b40 usb_unlocked_enable_lpm +EXPORT_SYMBOL_GPL vmlinux 0x55f04c21 trace_buffer_unlock_commit_regs +EXPORT_SYMBOL_GPL vmlinux 0x56017b56 irq_setup_alt_chip +EXPORT_SYMBOL_GPL vmlinux 0x561e4b77 irq_of_parse_and_map +EXPORT_SYMBOL_GPL vmlinux 0x56310925 regulator_mode_to_status +EXPORT_SYMBOL_GPL vmlinux 0x5637b6e4 irq_domain_associate +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 0x567a6d3d extcon_get_extcon_dev +EXPORT_SYMBOL_GPL vmlinux 0x568fe1ac pci_enable_ats +EXPORT_SYMBOL_GPL vmlinux 0x56a069fe simple_attr_release +EXPORT_SYMBOL_GPL vmlinux 0x56b63670 lzo1x_1_compress +EXPORT_SYMBOL_GPL vmlinux 0x56bd4d42 amba_ahb_device_add_res +EXPORT_SYMBOL_GPL vmlinux 0x56c1a638 pm_schedule_suspend +EXPORT_SYMBOL_GPL vmlinux 0x56d697ce cpu_up +EXPORT_SYMBOL_GPL vmlinux 0x56db5e1c __lock_page_killable +EXPORT_SYMBOL_GPL vmlinux 0x56e75d47 klist_node_attached +EXPORT_SYMBOL_GPL vmlinux 0x56e9103b cpu_pm_enter +EXPORT_SYMBOL_GPL vmlinux 0x57231f45 ring_buffer_record_on +EXPORT_SYMBOL_GPL vmlinux 0x573df04b scsi_nl_sock +EXPORT_SYMBOL_GPL vmlinux 0x5779d445 xenbus_exists +EXPORT_SYMBOL_GPL vmlinux 0x578913b2 omap_dm_timer_get_fclk +EXPORT_SYMBOL_GPL vmlinux 0x578c4ea5 crypto_lookup_skcipher +EXPORT_SYMBOL_GPL vmlinux 0x5794e5ff platform_add_devices +EXPORT_SYMBOL_GPL vmlinux 0x579e0bf5 rtnl_unregister_all +EXPORT_SYMBOL_GPL vmlinux 0x57a0b261 usb_deregister_dev +EXPORT_SYMBOL_GPL vmlinux 0x57a9c09c usb_reset_endpoint +EXPORT_SYMBOL_GPL vmlinux 0x57b8fd18 sata_async_notification +EXPORT_SYMBOL_GPL vmlinux 0x57ba4703 wm831x_auxadc_read_uv +EXPORT_SYMBOL_GPL vmlinux 0x57bdfe96 __blk_put_request +EXPORT_SYMBOL_GPL vmlinux 0x57ef9e56 tpm_show_caps_1_2 +EXPORT_SYMBOL_GPL vmlinux 0x580c7d41 extcon_register_interest +EXPORT_SYMBOL_GPL vmlinux 0x5811d695 spi_get_device_id +EXPORT_SYMBOL_GPL vmlinux 0x5819c8aa usb_anchor_empty +EXPORT_SYMBOL_GPL vmlinux 0x582be91b wm8997_patch +EXPORT_SYMBOL_GPL vmlinux 0x58413099 ipv6_fixup_options +EXPORT_SYMBOL_GPL vmlinux 0x5846504b pm_generic_resume_early +EXPORT_SYMBOL_GPL vmlinux 0x584c3c66 unregister_net_sysctl_table +EXPORT_SYMBOL_GPL vmlinux 0x584e917b mnt_drop_write +EXPORT_SYMBOL_GPL vmlinux 0x58631dab imx_audmux_v2_configure_port +EXPORT_SYMBOL_GPL vmlinux 0x5868c1ef cpufreq_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0x589e4569 syscon_regmap_lookup_by_pdevname +EXPORT_SYMBOL_GPL vmlinux 0x58bc259b pinctrl_remove_gpio_range +EXPORT_SYMBOL_GPL vmlinux 0x58e14f15 HYPERVISOR_event_channel_op +EXPORT_SYMBOL_GPL vmlinux 0x591e8aa3 irq_setup_generic_chip +EXPORT_SYMBOL_GPL vmlinux 0x5927a793 bdi_writeout_inc +EXPORT_SYMBOL_GPL vmlinux 0x5927dfe6 ata_std_error_handler +EXPORT_SYMBOL_GPL vmlinux 0x592bb5a0 usb_disable_autosuspend +EXPORT_SYMBOL_GPL vmlinux 0x5934b680 nand_release +EXPORT_SYMBOL_GPL vmlinux 0x5947abbe max77693_bulk_write +EXPORT_SYMBOL_GPL vmlinux 0x5996241d elv_unregister +EXPORT_SYMBOL_GPL vmlinux 0x599d0cb6 scatterwalk_start +EXPORT_SYMBOL_GPL vmlinux 0x59c9cafb power_supply_get_by_name +EXPORT_SYMBOL_GPL vmlinux 0x59e2743e call_rcu_bh +EXPORT_SYMBOL_GPL vmlinux 0x59eae699 ring_buffer_read_prepare +EXPORT_SYMBOL_GPL vmlinux 0x59f2211f i2c_new_dummy +EXPORT_SYMBOL_GPL vmlinux 0x5a2937ed rdev_get_drvdata +EXPORT_SYMBOL_GPL vmlinux 0x5a2b1b67 gnttab_free_grant_reference +EXPORT_SYMBOL_GPL vmlinux 0x5a3c2afd kobject_get_path +EXPORT_SYMBOL_GPL vmlinux 0x5a446332 of_clk_add_provider +EXPORT_SYMBOL_GPL vmlinux 0x5a48534a regulator_count_voltages +EXPORT_SYMBOL_GPL vmlinux 0x5a4fe414 snd_soc_dpcm_get_substream +EXPORT_SYMBOL_GPL vmlinux 0x5a54098f rtc_update_irq_enable +EXPORT_SYMBOL_GPL vmlinux 0x5a5b31f8 bus_find_device_by_name +EXPORT_SYMBOL_GPL vmlinux 0x5a7bfe41 crypto_probing_notify +EXPORT_SYMBOL_GPL vmlinux 0x5a88a0d5 blk_queue_rq_timed_out +EXPORT_SYMBOL_GPL vmlinux 0x5a8d988a devm_kzalloc +EXPORT_SYMBOL_GPL vmlinux 0x5a9c63f7 gov_queue_work +EXPORT_SYMBOL_GPL vmlinux 0x5ab7c132 virtqueue_disable_cb +EXPORT_SYMBOL_GPL vmlinux 0x5ace0f4f filter_current_check_discard +EXPORT_SYMBOL_GPL vmlinux 0x5acf6567 btree_init +EXPORT_SYMBOL_GPL vmlinux 0x5ad1800d reset_controller_register +EXPORT_SYMBOL_GPL vmlinux 0x5af03a28 gnttab_claim_grant_reference +EXPORT_SYMBOL_GPL vmlinux 0x5af1a284 pm_runtime_no_callbacks +EXPORT_SYMBOL_GPL vmlinux 0x5afa3b8a rtc_read_time +EXPORT_SYMBOL_GPL vmlinux 0x5afb47fc of_irq_to_resource_table +EXPORT_SYMBOL_GPL vmlinux 0x5b0661dc md_rdev_clear +EXPORT_SYMBOL_GPL vmlinux 0x5b1cfbcd of_get_fb_videomode +EXPORT_SYMBOL_GPL vmlinux 0x5b2b96f5 sysfs_update_group +EXPORT_SYMBOL_GPL vmlinux 0x5b41e78e ip6_push_pending_frames +EXPORT_SYMBOL_GPL vmlinux 0x5b4556a8 ata_bmdma_setup +EXPORT_SYMBOL_GPL vmlinux 0x5b4e379c of_prop_next_u32 +EXPORT_SYMBOL_GPL vmlinux 0x5b5942f8 sysfs_notify_dirent +EXPORT_SYMBOL_GPL vmlinux 0x5b8da084 tcp_peer_is_proven +EXPORT_SYMBOL_GPL vmlinux 0x5ba4b791 usb_disable_xhci_ports +EXPORT_SYMBOL_GPL vmlinux 0x5bbffb9a input_ff_event +EXPORT_SYMBOL_GPL vmlinux 0x5be36630 ata_sas_port_destroy +EXPORT_SYMBOL_GPL vmlinux 0x5bf4bc56 watchdog_register_device +EXPORT_SYMBOL_GPL vmlinux 0x5c0c59b9 md_stop +EXPORT_SYMBOL_GPL vmlinux 0x5c2b8d47 vfs_setlease +EXPORT_SYMBOL_GPL vmlinux 0x5c43afae tty_init_termios +EXPORT_SYMBOL_GPL vmlinux 0x5c5f995d crypto_mod_get +EXPORT_SYMBOL_GPL vmlinux 0x5c5fbb5c ipv6_recv_error +EXPORT_SYMBOL_GPL vmlinux 0x5c67fb6f crypto_ahash_setkey +EXPORT_SYMBOL_GPL vmlinux 0x5c82c5b0 ip6_sk_update_pmtu +EXPORT_SYMBOL_GPL vmlinux 0x5c9ab448 pci_restore_ats_state +EXPORT_SYMBOL_GPL vmlinux 0x5ca47b3e pm_generic_freeze +EXPORT_SYMBOL_GPL vmlinux 0x5cabdced dev_pm_qos_remove_global_notifier +EXPORT_SYMBOL_GPL vmlinux 0x5cc1f100 sata_sff_hardreset +EXPORT_SYMBOL_GPL vmlinux 0x5ccc2845 dma_buf_put +EXPORT_SYMBOL_GPL vmlinux 0x5cf800d2 of_platform_populate +EXPORT_SYMBOL_GPL vmlinux 0x5cfabdb2 usb_autopm_get_interface_no_resume +EXPORT_SYMBOL_GPL vmlinux 0x5d045de9 virtqueue_poll +EXPORT_SYMBOL_GPL vmlinux 0x5d1098c6 xen_start_info +EXPORT_SYMBOL_GPL vmlinux 0x5d12e48f input_event_to_user +EXPORT_SYMBOL_GPL vmlinux 0x5d18984c sysfs_get_dirent +EXPORT_SYMBOL_GPL vmlinux 0x5d1c1bac blocking_notifier_chain_cond_register +EXPORT_SYMBOL_GPL vmlinux 0x5d366dec gnttab_cancel_free_callback +EXPORT_SYMBOL_GPL vmlinux 0x5d5e7747 regulator_bulk_get +EXPORT_SYMBOL_GPL vmlinux 0x5d8d36d0 regulator_list_voltage_table +EXPORT_SYMBOL_GPL vmlinux 0x5d935dba inet6_destroy_sock +EXPORT_SYMBOL_GPL vmlinux 0x5db61406 sg_scsi_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x5dd18380 regulator_get_init_drvdata +EXPORT_SYMBOL_GPL vmlinux 0x5e0e27fa free_vm_area +EXPORT_SYMBOL_GPL vmlinux 0x5e19ecd7 mnt_clone_write +EXPORT_SYMBOL_GPL vmlinux 0x5e34df53 ip6_redirect +EXPORT_SYMBOL_GPL vmlinux 0x5e458763 omap_dm_timer_stop +EXPORT_SYMBOL_GPL vmlinux 0x5e4be570 debugfs_create_file +EXPORT_SYMBOL_GPL vmlinux 0x5e6fe73b wm8350_reg_lock +EXPORT_SYMBOL_GPL vmlinux 0x5e7442eb usb_put_dev +EXPORT_SYMBOL_GPL vmlinux 0x5e81fd33 pinctrl_dev_get_name +EXPORT_SYMBOL_GPL vmlinux 0x5eacba1f ahci_interrupt +EXPORT_SYMBOL_GPL vmlinux 0x5ec5aff8 device_create_vargs +EXPORT_SYMBOL_GPL vmlinux 0x5ee5da1b led_trigger_register +EXPORT_SYMBOL_GPL vmlinux 0x5f017ea8 snd_soc_unregister_platform +EXPORT_SYMBOL_GPL vmlinux 0x5f127cff inet_getpeer +EXPORT_SYMBOL_GPL vmlinux 0x5f248f72 set_timer_slack +EXPORT_SYMBOL_GPL vmlinux 0x5f3b33e7 wm5102_i2c_regmap +EXPORT_SYMBOL_GPL vmlinux 0x5f41a463 tty_ldisc_flush +EXPORT_SYMBOL_GPL vmlinux 0x5f67ec45 da903x_write +EXPORT_SYMBOL_GPL vmlinux 0x5f9291ea scsi_target_block +EXPORT_SYMBOL_GPL vmlinux 0x5fc6ccf3 device_bind_driver +EXPORT_SYMBOL_GPL vmlinux 0x5fd0810e snd_soc_bulk_write_raw +EXPORT_SYMBOL_GPL vmlinux 0x5fe2c578 ip6_dst_lookup +EXPORT_SYMBOL_GPL vmlinux 0x5ff1ffd9 tc3589x_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x600d0df8 mnt_want_write_file +EXPORT_SYMBOL_GPL vmlinux 0x601010c3 devm_pinctrl_get +EXPORT_SYMBOL_GPL vmlinux 0x601a7700 pci_load_and_free_saved_state +EXPORT_SYMBOL_GPL vmlinux 0x6021aa84 usb_root_hub_lost_power +EXPORT_SYMBOL_GPL vmlinux 0x60247879 dma_buf_vunmap +EXPORT_SYMBOL_GPL vmlinux 0x602ede5b ata_pci_device_suspend +EXPORT_SYMBOL_GPL vmlinux 0x6034a357 crypto_lookup_aead +EXPORT_SYMBOL_GPL vmlinux 0x60506751 unmap_kernel_range_noflush +EXPORT_SYMBOL_GPL vmlinux 0x606a863c vring_del_virtqueue +EXPORT_SYMBOL_GPL vmlinux 0x6075d0c7 omap_tll_init +EXPORT_SYMBOL_GPL vmlinux 0x608651a3 free_css_id +EXPORT_SYMBOL_GPL vmlinux 0x608b0235 usb_hcd_check_unlink_urb +EXPORT_SYMBOL_GPL vmlinux 0x609d333d irq_generic_chip_ops +EXPORT_SYMBOL_GPL vmlinux 0x60a13e90 rcu_barrier +EXPORT_SYMBOL_GPL vmlinux 0x60bcbb29 debugfs_create_u16 +EXPORT_SYMBOL_GPL vmlinux 0x60c10b2c debugfs_create_x32 +EXPORT_SYMBOL_GPL vmlinux 0x60c215e8 usb_add_hcd +EXPORT_SYMBOL_GPL vmlinux 0x60c65537 max8997_bulk_read +EXPORT_SYMBOL_GPL vmlinux 0x60d0d4d9 aead_geniv_alloc +EXPORT_SYMBOL_GPL vmlinux 0x60ecebdb usb_find_interface +EXPORT_SYMBOL_GPL vmlinux 0x60ffd7d2 ata_ehi_clear_desc +EXPORT_SYMBOL_GPL vmlinux 0x6107d3be aead_geniv_init +EXPORT_SYMBOL_GPL vmlinux 0x6114d8a4 regulator_force_disable +EXPORT_SYMBOL_GPL vmlinux 0x61187871 __inet_lookup_established +EXPORT_SYMBOL_GPL vmlinux 0x611f1456 sdhci_add_host +EXPORT_SYMBOL_GPL vmlinux 0x612e28ff snd_soc_get_volsw_sx +EXPORT_SYMBOL_GPL vmlinux 0x613ae21f blkdev_aio_write +EXPORT_SYMBOL_GPL vmlinux 0x613ccd47 xenbus_register_driver_common +EXPORT_SYMBOL_GPL vmlinux 0x6157f8ea ping_seq_stop +EXPORT_SYMBOL_GPL vmlinux 0x615e47bf blkcipher_walk_virt +EXPORT_SYMBOL_GPL vmlinux 0x617f92a9 device_show_bool +EXPORT_SYMBOL_GPL vmlinux 0x619a6f48 pci_rescan_bus +EXPORT_SYMBOL_GPL vmlinux 0x61a0471a ata_sff_port_intr +EXPORT_SYMBOL_GPL vmlinux 0x61c0448f bsg_request_fn +EXPORT_SYMBOL_GPL vmlinux 0x61d04412 snd_soc_dapm_put_pin_switch +EXPORT_SYMBOL_GPL vmlinux 0x61eb6e21 usb_put_hcd +EXPORT_SYMBOL_GPL vmlinux 0x61eccabc debugfs_remove_recursive +EXPORT_SYMBOL_GPL vmlinux 0x61fe89ef power_supply_set_battery_charged +EXPORT_SYMBOL_GPL vmlinux 0x622c7922 register_oom_notifier +EXPORT_SYMBOL_GPL vmlinux 0x622dacba tick_nohz_idle_enter +EXPORT_SYMBOL_GPL vmlinux 0x6234f712 snd_compress_new +EXPORT_SYMBOL_GPL vmlinux 0x6248b5be __clk_get_flags +EXPORT_SYMBOL_GPL vmlinux 0x624a6406 hwrng_register +EXPORT_SYMBOL_GPL vmlinux 0x6253c300 xenbus_dev_error +EXPORT_SYMBOL_GPL vmlinux 0x625a5115 platform_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x6275a504 snd_soc_dapm_get_pin_switch +EXPORT_SYMBOL_GPL vmlinux 0x628e5ee4 __scsi_get_command +EXPORT_SYMBOL_GPL vmlinux 0x629e7ce5 blk_add_driver_data +EXPORT_SYMBOL_GPL vmlinux 0x62a222a8 blk_trace_remove +EXPORT_SYMBOL_GPL vmlinux 0x62c0110e ping_close +EXPORT_SYMBOL_GPL vmlinux 0x62ec0853 twl6040_get_dl1_gain +EXPORT_SYMBOL_GPL vmlinux 0x6318757f mdio_mux_uninit +EXPORT_SYMBOL_GPL vmlinux 0x63205de1 ata_scsi_unlock_native_capacity +EXPORT_SYMBOL_GPL vmlinux 0x632978c6 dev_set_name +EXPORT_SYMBOL_GPL vmlinux 0x632a3663 device_wakeup_enable +EXPORT_SYMBOL_GPL vmlinux 0x632a57e8 ata_sas_sync_probe +EXPORT_SYMBOL_GPL vmlinux 0x633bc901 ata_slave_link_init +EXPORT_SYMBOL_GPL vmlinux 0x634e9b91 shmem_truncate_range +EXPORT_SYMBOL_GPL vmlinux 0x635ae4f0 usb_clear_halt +EXPORT_SYMBOL_GPL vmlinux 0x63618238 blkcg_root +EXPORT_SYMBOL_GPL vmlinux 0x63633e46 crypto_unregister_instance +EXPORT_SYMBOL_GPL vmlinux 0x6370c662 register_user_hw_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0x6371d584 usb_autopm_get_interface_async +EXPORT_SYMBOL_GPL vmlinux 0x6389f5b1 sysfs_remove_files +EXPORT_SYMBOL_GPL vmlinux 0x638be828 i2c_new_device +EXPORT_SYMBOL_GPL vmlinux 0x6390efda of_modalias_node +EXPORT_SYMBOL_GPL vmlinux 0x639a1955 snd_soc_dapm_new_widgets +EXPORT_SYMBOL_GPL vmlinux 0x63b1e7a7 replace_page_cache_page +EXPORT_SYMBOL_GPL vmlinux 0x63ce49f7 thermal_generate_netlink_event +EXPORT_SYMBOL_GPL vmlinux 0x63f48085 stmpe_set_altfunc +EXPORT_SYMBOL_GPL vmlinux 0x6400a4ee srcu_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0x6411bfbe usb_enable_autosuspend +EXPORT_SYMBOL_GPL vmlinux 0x64177210 __rtnl_link_register +EXPORT_SYMBOL_GPL vmlinux 0x641991a6 sdio_writel +EXPORT_SYMBOL_GPL vmlinux 0x641b777f fat_build_inode +EXPORT_SYMBOL_GPL vmlinux 0x64256424 visitor32 +EXPORT_SYMBOL_GPL vmlinux 0x64546fc6 dapm_mark_io_dirty +EXPORT_SYMBOL_GPL vmlinux 0x646ce2f0 of_get_display_timing +EXPORT_SYMBOL_GPL vmlinux 0x646e178e irq_domain_add_legacy +EXPORT_SYMBOL_GPL vmlinux 0x647537f3 pl320_ipc_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x6488b70f serial8250_request_dma +EXPORT_SYMBOL_GPL vmlinux 0x64a862c5 ping_queue_rcv_skb +EXPORT_SYMBOL_GPL vmlinux 0x64bd2739 show_class_attr_string +EXPORT_SYMBOL_GPL vmlinux 0x64caa435 rtnl_af_register +EXPORT_SYMBOL_GPL vmlinux 0x650aee18 pwm_config +EXPORT_SYMBOL_GPL vmlinux 0x6539c2ad snd_soc_of_parse_audio_routing +EXPORT_SYMBOL_GPL vmlinux 0x654e81b2 ata_pci_bmdma_clear_simplex +EXPORT_SYMBOL_GPL vmlinux 0x65a2358b dma_get_required_mask +EXPORT_SYMBOL_GPL vmlinux 0x65bbbc78 schedule_hrtimeout_range +EXPORT_SYMBOL_GPL vmlinux 0x65ccb6f0 call_netevent_notifiers +EXPORT_SYMBOL_GPL vmlinux 0x65d6d0f0 gpio_direction_input +EXPORT_SYMBOL_GPL vmlinux 0x661601de sprint_symbol +EXPORT_SYMBOL_GPL vmlinux 0x661dd984 extcon_find_cable_index +EXPORT_SYMBOL_GPL vmlinux 0x663c16d6 gnttab_grant_foreign_access_subpage_ref +EXPORT_SYMBOL_GPL vmlinux 0x66423e34 ata_dummy_port_info +EXPORT_SYMBOL_GPL vmlinux 0x6674ac3c bus_find_device +EXPORT_SYMBOL_GPL vmlinux 0x6678c138 transport_remove_device +EXPORT_SYMBOL_GPL vmlinux 0x668198cb device_initialize +EXPORT_SYMBOL_GPL vmlinux 0x668402aa crypto_put_default_rng +EXPORT_SYMBOL_GPL vmlinux 0x66b38c37 usb_deregister +EXPORT_SYMBOL_GPL vmlinux 0x66ba0a5a wm831x_reg_lock +EXPORT_SYMBOL_GPL vmlinux 0x66d2bd43 lp8788_read_byte +EXPORT_SYMBOL_GPL vmlinux 0x66d87d38 symbol_put_addr +EXPORT_SYMBOL_GPL vmlinux 0x66d888ea pci_enable_rom +EXPORT_SYMBOL_GPL vmlinux 0x66f7f60d wm8997_aod +EXPORT_SYMBOL_GPL vmlinux 0x6702da33 regmap_init_i2c +EXPORT_SYMBOL_GPL vmlinux 0x67128609 __srcu_read_lock +EXPORT_SYMBOL_GPL vmlinux 0x6713ad97 arizona_dev_init +EXPORT_SYMBOL_GPL vmlinux 0x6728168b vfs_lock_file +EXPORT_SYMBOL_GPL vmlinux 0x6739a503 balloon_set_new_target +EXPORT_SYMBOL_GPL vmlinux 0x674e13e1 public_key_destroy +EXPORT_SYMBOL_GPL vmlinux 0x6750644c rtnl_link_unregister +EXPORT_SYMBOL_GPL vmlinux 0x675924df device_set_wakeup_capable +EXPORT_SYMBOL_GPL vmlinux 0x67643d26 pm_qos_remove_request +EXPORT_SYMBOL_GPL vmlinux 0x6782c47c ata_std_postreset +EXPORT_SYMBOL_GPL vmlinux 0x67955ce6 profile_hits +EXPORT_SYMBOL_GPL vmlinux 0x67a589e6 crypto_unregister_alg +EXPORT_SYMBOL_GPL vmlinux 0x6812cf8d __tracepoint_rpm_idle +EXPORT_SYMBOL_GPL vmlinux 0x681964de bsg_register_queue +EXPORT_SYMBOL_GPL vmlinux 0x6843bd74 crypto_larval_kill +EXPORT_SYMBOL_GPL vmlinux 0x68507b54 mtd_write_user_prot_reg +EXPORT_SYMBOL_GPL vmlinux 0x6859343e relay_switch_subbuf +EXPORT_SYMBOL_GPL vmlinux 0x687a4c3d fl6_merge_options +EXPORT_SYMBOL_GPL vmlinux 0x687bfc87 adp5520_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x68956406 static_key_slow_dec +EXPORT_SYMBOL_GPL vmlinux 0x68dc4ebb regulator_map_voltage_linear +EXPORT_SYMBOL_GPL vmlinux 0x68f21450 relay_subbufs_consumed +EXPORT_SYMBOL_GPL vmlinux 0x6911adb4 device_create_file +EXPORT_SYMBOL_GPL vmlinux 0x691a4345 flush_kthread_work +EXPORT_SYMBOL_GPL vmlinux 0x6923ce63 irq_work_sync +EXPORT_SYMBOL_GPL vmlinux 0x692c1e41 crypto_attr_alg2 +EXPORT_SYMBOL_GPL vmlinux 0x6932ab87 tty_find_polling_driver +EXPORT_SYMBOL_GPL vmlinux 0x693dc1fc snd_soc_read +EXPORT_SYMBOL_GPL vmlinux 0x693fec2a usb_gadget_unmap_request +EXPORT_SYMBOL_GPL vmlinux 0x69447467 ring_buffer_write +EXPORT_SYMBOL_GPL vmlinux 0x6945725e mpi_read_raw_data +EXPORT_SYMBOL_GPL vmlinux 0x694be42a usb_show_dynids +EXPORT_SYMBOL_GPL vmlinux 0x694f923e ahci_thread_fn +EXPORT_SYMBOL_GPL vmlinux 0x6958fe90 snd_soc_unregister_card +EXPORT_SYMBOL_GPL vmlinux 0x695af5e2 da903x_clr_bits +EXPORT_SYMBOL_GPL vmlinux 0x695ffa2f snd_soc_info_volsw_range +EXPORT_SYMBOL_GPL vmlinux 0x6968d311 tps65912_reg_write +EXPORT_SYMBOL_GPL vmlinux 0x697c5d0d tracing_snapshot_alloc +EXPORT_SYMBOL_GPL vmlinux 0x698a899f ring_buffer_peek +EXPORT_SYMBOL_GPL vmlinux 0x698be398 regulator_get_voltage +EXPORT_SYMBOL_GPL vmlinux 0x69977e04 usb_hcd_is_primary_hcd +EXPORT_SYMBOL_GPL vmlinux 0x69c9d1e3 hwmon_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x69cfdacb device_create_bin_file +EXPORT_SYMBOL_GPL vmlinux 0x69e9a2cb ata_scsi_slave_config +EXPORT_SYMBOL_GPL vmlinux 0x69fb284b extcon_unregister_interest +EXPORT_SYMBOL_GPL vmlinux 0x69fdfbe7 sdio_set_block_size +EXPORT_SYMBOL_GPL vmlinux 0x69ff7cad cpuidle_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0x6a1733eb iommu_group_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x6a28294a ata_timing_compute +EXPORT_SYMBOL_GPL vmlinux 0x6a5212ea cpuidle_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x6a56cc0d omap_dm_timer_set_source +EXPORT_SYMBOL_GPL vmlinux 0x6a5f92ac shmem_file_setup +EXPORT_SYMBOL_GPL vmlinux 0x6a5fb566 rcu_sched_force_quiescent_state +EXPORT_SYMBOL_GPL vmlinux 0x6a6f66fd tcp_cong_avoid_ai +EXPORT_SYMBOL_GPL vmlinux 0x6a758f44 register_virtio_device +EXPORT_SYMBOL_GPL vmlinux 0x6a7b066a register_net_sysctl +EXPORT_SYMBOL_GPL vmlinux 0x6a7cfcc2 devres_open_group +EXPORT_SYMBOL_GPL vmlinux 0x6a8200b1 crypto_hash_walk_first +EXPORT_SYMBOL_GPL vmlinux 0x6a9f0597 fb_deferred_io_fsync +EXPORT_SYMBOL_GPL vmlinux 0x6aa0f196 css_id +EXPORT_SYMBOL_GPL vmlinux 0x6ab2d2ce inverse_translate +EXPORT_SYMBOL_GPL vmlinux 0x6ab77430 wm5110_aod +EXPORT_SYMBOL_GPL vmlinux 0x6ab922b2 regulator_get_drvdata +EXPORT_SYMBOL_GPL vmlinux 0x6aba167a regulator_list_voltage +EXPORT_SYMBOL_GPL vmlinux 0x6ac101d6 cpufreq_freq_attr_scaling_available_freqs +EXPORT_SYMBOL_GPL vmlinux 0x6ada9baf xenbus_register_backend +EXPORT_SYMBOL_GPL vmlinux 0x6aeafac5 serial8250_modem_status +EXPORT_SYMBOL_GPL vmlinux 0x6afeae8c __get_mtd_device +EXPORT_SYMBOL_GPL vmlinux 0x6b29a1fa ring_buffer_event_length +EXPORT_SYMBOL_GPL vmlinux 0x6b41edf9 extcon_update_state +EXPORT_SYMBOL_GPL vmlinux 0x6b770f49 decode_bch +EXPORT_SYMBOL_GPL vmlinux 0x6b78f8b9 disk_part_iter_next +EXPORT_SYMBOL_GPL vmlinux 0x6bab3ecd clockevents_config_and_register +EXPORT_SYMBOL_GPL vmlinux 0x6bae4caa sdev_evt_send +EXPORT_SYMBOL_GPL vmlinux 0x6c0a9bdb register_mtd_user +EXPORT_SYMBOL_GPL vmlinux 0x6c185883 pci_num_vf +EXPORT_SYMBOL_GPL vmlinux 0x6c49c4f2 clockevents_notify +EXPORT_SYMBOL_GPL vmlinux 0x6c4b6684 reset_control_assert +EXPORT_SYMBOL_GPL vmlinux 0x6c5b3467 stmpe_reg_read +EXPORT_SYMBOL_GPL vmlinux 0x6c72300e ata_port_schedule_eh +EXPORT_SYMBOL_GPL vmlinux 0x6c749afe __tracepoint_block_unplug +EXPORT_SYMBOL_GPL vmlinux 0x6c87b47d irq_domain_associate_many +EXPORT_SYMBOL_GPL vmlinux 0x6c8d5ae8 __gpio_get_value +EXPORT_SYMBOL_GPL vmlinux 0x6c96f1c8 securityfs_create_dir +EXPORT_SYMBOL_GPL vmlinux 0x6ca4bf88 async_synchronize_full_domain +EXPORT_SYMBOL_GPL vmlinux 0x6cc78c5c set_irq_flags +EXPORT_SYMBOL_GPL vmlinux 0x6cd3d688 extcon_set_state +EXPORT_SYMBOL_GPL vmlinux 0x6ce3474e tc3589x_block_write +EXPORT_SYMBOL_GPL vmlinux 0x6d104956 usb_put_intf +EXPORT_SYMBOL_GPL vmlinux 0x6d116b11 vring_transport_features +EXPORT_SYMBOL_GPL vmlinux 0x6d2fc5a6 net_namespace_list +EXPORT_SYMBOL_GPL vmlinux 0x6d31e93b tracepoint_iter_next +EXPORT_SYMBOL_GPL vmlinux 0x6d3238b6 user_destroy +EXPORT_SYMBOL_GPL vmlinux 0x6d323c07 transport_class_register +EXPORT_SYMBOL_GPL vmlinux 0x6d5bd35f seq_release_net +EXPORT_SYMBOL_GPL vmlinux 0x6d6b3a35 regulator_map_voltage_ascend +EXPORT_SYMBOL_GPL vmlinux 0x6d74f842 spi_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x6d7e7c16 pci_find_next_ht_capability +EXPORT_SYMBOL_GPL vmlinux 0x6da95865 __fsnotify_inode_delete +EXPORT_SYMBOL_GPL vmlinux 0x6daa396c regulator_register +EXPORT_SYMBOL_GPL vmlinux 0x6dfae0b5 cpuidle_disable_device +EXPORT_SYMBOL_GPL vmlinux 0x6e04a077 usb_bind_phy +EXPORT_SYMBOL_GPL vmlinux 0x6e05c4e7 ahci_hw_interrupt +EXPORT_SYMBOL_GPL vmlinux 0x6e183c0b pci_max_pasids +EXPORT_SYMBOL_GPL vmlinux 0x6e320b52 thermal_cooling_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x6e571278 snd_soc_dapm_disable_pin +EXPORT_SYMBOL_GPL vmlinux 0x6e58ddf0 gnttab_end_foreign_transfer_ref +EXPORT_SYMBOL_GPL vmlinux 0x6e5cb370 edac_subsys +EXPORT_SYMBOL_GPL vmlinux 0x6e5e3801 pci_user_read_config_byte +EXPORT_SYMBOL_GPL vmlinux 0x6e751b35 ata_pci_sff_init_host +EXPORT_SYMBOL_GPL vmlinux 0x6e792952 noop_backing_dev_info +EXPORT_SYMBOL_GPL vmlinux 0x6e7943ec iommu_group_id +EXPORT_SYMBOL_GPL vmlinux 0x6e89a560 regmap_irq_chip_get_base +EXPORT_SYMBOL_GPL vmlinux 0x6ec135bb pinctrl_find_gpio_range_from_pin +EXPORT_SYMBOL_GPL vmlinux 0x6ec8de35 device_pm_wait_for_dev +EXPORT_SYMBOL_GPL vmlinux 0x6ef9e395 find_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0x6efc4987 ata_sff_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x6f0c4d92 irq_set_chip_and_handler_name +EXPORT_SYMBOL_GPL vmlinux 0x6f0df624 irq_alloc_domain_generic_chips +EXPORT_SYMBOL_GPL vmlinux 0x6f1723c3 udp4_lib_lookup +EXPORT_SYMBOL_GPL vmlinux 0x6f1bfcce sysfs_add_link_to_group +EXPORT_SYMBOL_GPL vmlinux 0x6f1ee69e kgdb_unregister_io_module +EXPORT_SYMBOL_GPL vmlinux 0x6f1f4130 max8997_write_reg +EXPORT_SYMBOL_GPL vmlinux 0x6f241549 dm_underlying_device_busy +EXPORT_SYMBOL_GPL vmlinux 0x6f3c19da thermal_zone_get_zone_by_name +EXPORT_SYMBOL_GPL vmlinux 0x6f8d181b regmap_async_complete_cb +EXPORT_SYMBOL_GPL vmlinux 0x6fa01d27 sdhci_resume_host +EXPORT_SYMBOL_GPL vmlinux 0x6fbb3bd9 init_rs_non_canonical +EXPORT_SYMBOL_GPL vmlinux 0x6fc4d626 sdio_writew +EXPORT_SYMBOL_GPL vmlinux 0x6fc8bc85 ata_sas_queuecmd +EXPORT_SYMBOL_GPL vmlinux 0x6fe3d8cf ktime_add_safe +EXPORT_SYMBOL_GPL vmlinux 0x6ff607b6 crypto_get_default_rng +EXPORT_SYMBOL_GPL vmlinux 0x701e0c61 regmap_irq_get_domain +EXPORT_SYMBOL_GPL vmlinux 0x70220f25 omap_mcbsp_st_add_controls +EXPORT_SYMBOL_GPL vmlinux 0x703189d7 regulator_get_mode +EXPORT_SYMBOL_GPL vmlinux 0x705e13b4 scsi_autopm_put_device +EXPORT_SYMBOL_GPL vmlinux 0x7064e0b4 snd_soc_put_volsw_range +EXPORT_SYMBOL_GPL vmlinux 0x706b0533 sb800_prefetch +EXPORT_SYMBOL_GPL vmlinux 0x707ff1bb ata_xfer_mask2mode +EXPORT_SYMBOL_GPL vmlinux 0x70a78b6e rtc_update_irq +EXPORT_SYMBOL_GPL vmlinux 0x70a7cbea sdhci_alloc_host +EXPORT_SYMBOL_GPL vmlinux 0x70bb651d __tracepoint_block_rq_remap +EXPORT_SYMBOL_GPL vmlinux 0x70cf032f usb_hcd_irq +EXPORT_SYMBOL_GPL vmlinux 0x70d85f89 alarm_expires_remaining +EXPORT_SYMBOL_GPL vmlinux 0x70dbcded iommu_domain_get_attr +EXPORT_SYMBOL_GPL vmlinux 0x70f3113c anon_transport_class_register +EXPORT_SYMBOL_GPL vmlinux 0x70ffb511 rdev_get_dev +EXPORT_SYMBOL_GPL vmlinux 0x71008581 atomic_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x710c4c52 da903x_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x710c73b6 crypto_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x71239e72 virtqueue_add_outbuf +EXPORT_SYMBOL_GPL vmlinux 0x713b6eba iommu_domain_has_cap +EXPORT_SYMBOL_GPL vmlinux 0x716265c7 debugfs_initialized +EXPORT_SYMBOL_GPL vmlinux 0x71799298 pci_renumber_slot +EXPORT_SYMBOL_GPL vmlinux 0x718eec38 ping_bind +EXPORT_SYMBOL_GPL vmlinux 0x71930ed3 of_property_read_string +EXPORT_SYMBOL_GPL vmlinux 0x71a27198 xen_remap_domain_mfn_range +EXPORT_SYMBOL_GPL vmlinux 0x71d6c308 pci_sriov_set_totalvfs +EXPORT_SYMBOL_GPL vmlinux 0x71dc9998 crypto_il_tab +EXPORT_SYMBOL_GPL vmlinux 0x721d50ff cgroup_taskset_first +EXPORT_SYMBOL_GPL vmlinux 0x72385874 platform_get_resource_byname +EXPORT_SYMBOL_GPL vmlinux 0x7240631e snd_dmaengine_pcm_close +EXPORT_SYMBOL_GPL vmlinux 0x72468935 tps80031_ext_power_req_config +EXPORT_SYMBOL_GPL vmlinux 0x72517db2 pci_find_next_capability +EXPORT_SYMBOL_GPL vmlinux 0x7252f0da ata_port_abort +EXPORT_SYMBOL_GPL vmlinux 0x7267db00 hwrng_unregister +EXPORT_SYMBOL_GPL vmlinux 0x726f9f67 pm_generic_thaw_noirq +EXPORT_SYMBOL_GPL vmlinux 0x72741f25 trace_vbprintk +EXPORT_SYMBOL_GPL vmlinux 0x7278d328 all_vm_events +EXPORT_SYMBOL_GPL vmlinux 0x7291019b __cci_control_port_by_index +EXPORT_SYMBOL_GPL vmlinux 0x729e443f snd_dmaengine_pcm_close_release_chan +EXPORT_SYMBOL_GPL vmlinux 0x72a53b1e fuse_abort_conn +EXPORT_SYMBOL_GPL vmlinux 0x72b212ff regulator_bulk_enable +EXPORT_SYMBOL_GPL vmlinux 0x73013896 xenbus_printf +EXPORT_SYMBOL_GPL vmlinux 0x73056d81 regulator_get_linear_step +EXPORT_SYMBOL_GPL vmlinux 0x730bd0c7 asic3_write_register +EXPORT_SYMBOL_GPL vmlinux 0x731dba7a xen_domain_type +EXPORT_SYMBOL_GPL vmlinux 0x7350f406 crypto_shash_finup +EXPORT_SYMBOL_GPL vmlinux 0x73692023 vfs_listxattr +EXPORT_SYMBOL_GPL vmlinux 0x73a48b4a ata_sff_std_ports +EXPORT_SYMBOL_GPL vmlinux 0x73cbecd3 blkdev_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x73d69364 ring_buffer_change_overwrite +EXPORT_SYMBOL_GPL vmlinux 0x741752de crypto_drop_spawn +EXPORT_SYMBOL_GPL vmlinux 0x7431e80e ipv4_sk_redirect +EXPORT_SYMBOL_GPL vmlinux 0x7437ff12 rt_mutex_trylock +EXPORT_SYMBOL_GPL vmlinux 0x743a165e ata_pack_xfermask +EXPORT_SYMBOL_GPL vmlinux 0x743a265e cpuidle_get_cpu_driver +EXPORT_SYMBOL_GPL vmlinux 0x745c49b8 wm831x_regmap_config +EXPORT_SYMBOL_GPL vmlinux 0x745fb3a2 mtd_get_fact_prot_info +EXPORT_SYMBOL_GPL vmlinux 0x7464ea38 dev_pm_qos_add_global_notifier +EXPORT_SYMBOL_GPL vmlinux 0x746d54d4 pci_find_ht_capability +EXPORT_SYMBOL_GPL vmlinux 0x7472d966 perf_event_disable +EXPORT_SYMBOL_GPL vmlinux 0x74954462 timecounter_read +EXPORT_SYMBOL_GPL vmlinux 0x74a553b1 bgpio_init +EXPORT_SYMBOL_GPL vmlinux 0x74a8030a __ata_ehi_push_desc +EXPORT_SYMBOL_GPL vmlinux 0x74af6630 ata_wait_after_reset +EXPORT_SYMBOL_GPL vmlinux 0x74b8af6c pwm_enable +EXPORT_SYMBOL_GPL vmlinux 0x74baf17a tracing_is_on +EXPORT_SYMBOL_GPL vmlinux 0x74c65277 snd_soc_dapm_del_routes +EXPORT_SYMBOL_GPL vmlinux 0x74cf13b8 ata_port_desc +EXPORT_SYMBOL_GPL vmlinux 0x75073866 trace_event_buffer_lock_reserve +EXPORT_SYMBOL_GPL vmlinux 0x750999be __pm_runtime_use_autosuspend +EXPORT_SYMBOL_GPL vmlinux 0x75214134 pci_enable_pcie_error_reporting +EXPORT_SYMBOL_GPL vmlinux 0x75215f74 vfs_removexattr +EXPORT_SYMBOL_GPL vmlinux 0x7522f3ba irq_modify_status +EXPORT_SYMBOL_GPL vmlinux 0x75263c10 tcp_set_state +EXPORT_SYMBOL_GPL vmlinux 0x754e8d78 blk_queue_lld_busy +EXPORT_SYMBOL_GPL vmlinux 0x75599ab8 snd_soc_get_volsw_range +EXPORT_SYMBOL_GPL vmlinux 0x7574f52d devres_close_group +EXPORT_SYMBOL_GPL vmlinux 0x758a782e blk_fill_rwbs +EXPORT_SYMBOL_GPL vmlinux 0x75aadc8c netdev_set_default_ethtool_ops +EXPORT_SYMBOL_GPL vmlinux 0x75ae522b scsi_flush_work +EXPORT_SYMBOL_GPL vmlinux 0x75bb2475 tty_put_char +EXPORT_SYMBOL_GPL vmlinux 0x75c2b9f1 memalloc_socks +EXPORT_SYMBOL_GPL vmlinux 0x75c62bec ata_port_freeze +EXPORT_SYMBOL_GPL vmlinux 0x75c8a11c inet_twdr_twkill_work +EXPORT_SYMBOL_GPL vmlinux 0x75cc7af6 omap_dm_timer_disable +EXPORT_SYMBOL_GPL vmlinux 0x75e96406 usb_alloc_urb +EXPORT_SYMBOL_GPL vmlinux 0x75f70e69 crypto_default_rng +EXPORT_SYMBOL_GPL vmlinux 0x7600bfb4 pinctrl_select_state +EXPORT_SYMBOL_GPL vmlinux 0x761e0aca btree_get_prev +EXPORT_SYMBOL_GPL vmlinux 0x763e973e cgroup_add_cftypes +EXPORT_SYMBOL_GPL vmlinux 0x76537466 sec_bulk_write +EXPORT_SYMBOL_GPL vmlinux 0x7681946c unregister_pm_notifier +EXPORT_SYMBOL_GPL vmlinux 0x76a32b27 snd_soc_new_ac97_codec +EXPORT_SYMBOL_GPL vmlinux 0x76a68845 virtqueue_detach_unused_buf +EXPORT_SYMBOL_GPL vmlinux 0x76ab06d8 sk_set_memalloc +EXPORT_SYMBOL_GPL vmlinux 0x770ad7db i2c_probe_func_quick_read +EXPORT_SYMBOL_GPL vmlinux 0x770cf981 tpm_send +EXPORT_SYMBOL_GPL vmlinux 0x770f7342 crypto_alloc_aead +EXPORT_SYMBOL_GPL vmlinux 0x7712771a unbind_from_irqhandler +EXPORT_SYMBOL_GPL vmlinux 0x77214cea sprint_OID +EXPORT_SYMBOL_GPL vmlinux 0x7729cbdd task_handoff_register +EXPORT_SYMBOL_GPL vmlinux 0x77530cb7 ping_hash +EXPORT_SYMBOL_GPL vmlinux 0x7769eb13 pm_runtime_irq_safe +EXPORT_SYMBOL_GPL vmlinux 0x778e813d thermal_notify_framework +EXPORT_SYMBOL_GPL vmlinux 0x778ee25f snd_soc_dapm_get_enum_double +EXPORT_SYMBOL_GPL vmlinux 0x77b74929 dm_set_device_limits +EXPORT_SYMBOL_GPL vmlinux 0x77c30de3 wm8350_reg_read +EXPORT_SYMBOL_GPL vmlinux 0x77e78218 regulator_allow_bypass +EXPORT_SYMBOL_GPL vmlinux 0x77f4c4af pinctrl_dev_get_devname +EXPORT_SYMBOL_GPL vmlinux 0x77fcdfb4 verify_signature +EXPORT_SYMBOL_GPL vmlinux 0x7840b42c hrtimer_cancel +EXPORT_SYMBOL_GPL vmlinux 0x785f9ab7 sdio_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x786e802a iommu_detach_group +EXPORT_SYMBOL_GPL vmlinux 0x787c1cf2 nand_update_bbt +EXPORT_SYMBOL_GPL vmlinux 0x78834212 unregister_asymmetric_key_parser +EXPORT_SYMBOL_GPL vmlinux 0x78a5d9ed regmap_field_write +EXPORT_SYMBOL_GPL vmlinux 0x78c005b5 single_open_net +EXPORT_SYMBOL_GPL vmlinux 0x78ca641a register_mtd_parser +EXPORT_SYMBOL_GPL vmlinux 0x78cf4589 usb_kill_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0x78d2e34e usb_remove_hcd +EXPORT_SYMBOL_GPL vmlinux 0x78e4e646 debugfs_create_size_t +EXPORT_SYMBOL_GPL vmlinux 0x790e990a eventfd_ctx_fileget +EXPORT_SYMBOL_GPL vmlinux 0x791ffbf9 __fsnotify_parent +EXPORT_SYMBOL_GPL vmlinux 0x7944e0fc tracing_off +EXPORT_SYMBOL_GPL vmlinux 0x794578be sdio_readl +EXPORT_SYMBOL_GPL vmlinux 0x796c2d48 dm_get_md +EXPORT_SYMBOL_GPL vmlinux 0x79728712 rtc_class_open +EXPORT_SYMBOL_GPL vmlinux 0x79968c15 regmap_init +EXPORT_SYMBOL_GPL vmlinux 0x799c6d05 omap_dm_timer_request_by_cap +EXPORT_SYMBOL_GPL vmlinux 0x79b20d5a kobject_uevent_env +EXPORT_SYMBOL_GPL vmlinux 0x79d1ce78 snd_soc_register_codec +EXPORT_SYMBOL_GPL vmlinux 0x79e6968d spi_sync +EXPORT_SYMBOL_GPL vmlinux 0x7a330669 dpm_for_each_dev +EXPORT_SYMBOL_GPL vmlinux 0x7a5541fa ata_common_sdev_attrs +EXPORT_SYMBOL_GPL vmlinux 0x7a92f98c ahci_pmp_retry_srst_ops +EXPORT_SYMBOL_GPL vmlinux 0x7a933c98 clk_enable +EXPORT_SYMBOL_GPL vmlinux 0x7a944007 rcu_idle_enter +EXPORT_SYMBOL_GPL vmlinux 0x7a973462 adp5520_read +EXPORT_SYMBOL_GPL vmlinux 0x7aad2260 arizona_pm_ops +EXPORT_SYMBOL_GPL vmlinux 0x7ab04558 ata_host_register +EXPORT_SYMBOL_GPL vmlinux 0x7ab3ca18 eventfd_ctx_read +EXPORT_SYMBOL_GPL vmlinux 0x7ac57cfa remove_irq +EXPORT_SYMBOL_GPL vmlinux 0x7adbd7f5 ata_pci_sff_prepare_host +EXPORT_SYMBOL_GPL vmlinux 0x7ae13b73 regulator_set_bypass_regmap +EXPORT_SYMBOL_GPL vmlinux 0x7ae1ae8e cpufreq_frequency_table_put_attr +EXPORT_SYMBOL_GPL vmlinux 0x7b0f1ab3 ring_buffer_free_read_page +EXPORT_SYMBOL_GPL vmlinux 0x7b1d544d edac_handler_set +EXPORT_SYMBOL_GPL vmlinux 0x7b2163bd HYPERVISOR_tmem_op +EXPORT_SYMBOL_GPL vmlinux 0x7b4361d3 device_move +EXPORT_SYMBOL_GPL vmlinux 0x7b8fba2b ata_sff_wait_after_reset +EXPORT_SYMBOL_GPL vmlinux 0x7b90d1a9 bind_virq_to_irqhandler +EXPORT_SYMBOL_GPL vmlinux 0x7ba73c15 tty_prepare_flip_string_flags +EXPORT_SYMBOL_GPL vmlinux 0x7bd2442a sec_bulk_read +EXPORT_SYMBOL_GPL vmlinux 0x7c02f3a6 serial8250_clear_and_reinit_fifos +EXPORT_SYMBOL_GPL vmlinux 0x7c6a49ce unix_table_lock +EXPORT_SYMBOL_GPL vmlinux 0x7c9ad2eb usb_wait_anchor_empty_timeout +EXPORT_SYMBOL_GPL vmlinux 0x7ca7446b sdio_writeb +EXPORT_SYMBOL_GPL vmlinux 0x7cbff38a devm_kfree +EXPORT_SYMBOL_GPL vmlinux 0x7cc1b7fd max77693_bulk_read +EXPORT_SYMBOL_GPL vmlinux 0x7cd588b1 bmp085_detect +EXPORT_SYMBOL_GPL vmlinux 0x7cd6f042 cpufreq_get_current_driver +EXPORT_SYMBOL_GPL vmlinux 0x7cd761bc bus_rescan_devices +EXPORT_SYMBOL_GPL vmlinux 0x7ce39c8c device_remove_bin_file +EXPORT_SYMBOL_GPL vmlinux 0x7ce94c08 cpufreq_frequency_table_cpuinfo +EXPORT_SYMBOL_GPL vmlinux 0x7ceaf0d5 generic_handle_irq +EXPORT_SYMBOL_GPL vmlinux 0x7cedabe4 debugfs_create_x8 +EXPORT_SYMBOL_GPL vmlinux 0x7d559c2d spi_register_master +EXPORT_SYMBOL_GPL vmlinux 0x7d59dd46 pm_wq +EXPORT_SYMBOL_GPL vmlinux 0x7d70a471 ata_bmdma_dumb_qc_prep +EXPORT_SYMBOL_GPL vmlinux 0x7d830e8d power_supply_unregister +EXPORT_SYMBOL_GPL vmlinux 0x7d8f4864 snd_soc_jack_notifier_register +EXPORT_SYMBOL_GPL vmlinux 0x7da5a488 dapm_clock_event +EXPORT_SYMBOL_GPL vmlinux 0x7dab26b6 wm831x_isinkv_values +EXPORT_SYMBOL_GPL vmlinux 0x7dd6dfba register_ftrace_event +EXPORT_SYMBOL_GPL vmlinux 0x7e277d57 sdhci_pltfm_register +EXPORT_SYMBOL_GPL vmlinux 0x7e32723b class_dev_iter_exit +EXPORT_SYMBOL_GPL vmlinux 0x7e49c382 blkcg_policy_register +EXPORT_SYMBOL_GPL vmlinux 0x7e525ce0 snd_soc_bytes_get +EXPORT_SYMBOL_GPL vmlinux 0x7e606130 snd_soc_calc_bclk +EXPORT_SYMBOL_GPL vmlinux 0x7e64181d usb_calc_bus_time +EXPORT_SYMBOL_GPL vmlinux 0x7e7f8820 xenbus_map_ring_valloc +EXPORT_SYMBOL_GPL vmlinux 0x7e8aa01c devm_pwm_get +EXPORT_SYMBOL_GPL vmlinux 0x7e8b704f __class_create +EXPORT_SYMBOL_GPL vmlinux 0x7ea0e93b attribute_container_find_class_device +EXPORT_SYMBOL_GPL vmlinux 0x7eb7b3f8 of_get_dma_window +EXPORT_SYMBOL_GPL vmlinux 0x7ebc7a54 __netpoll_free_async +EXPORT_SYMBOL_GPL vmlinux 0x7ed68941 asic3_read_register +EXPORT_SYMBOL_GPL vmlinux 0x7ef4c66e put_pid +EXPORT_SYMBOL_GPL vmlinux 0x7f063a98 ip6_datagram_send_ctl +EXPORT_SYMBOL_GPL vmlinux 0x7f0d6be8 dm_requeue_unmapped_request +EXPORT_SYMBOL_GPL vmlinux 0x7f1e7cca blkcipher_walk_done +EXPORT_SYMBOL_GPL vmlinux 0x7f21a455 crypto_blkcipher_type +EXPORT_SYMBOL_GPL vmlinux 0x7f4bd2cb __mmu_notifier_register +EXPORT_SYMBOL_GPL vmlinux 0x7f4e7be8 crypto_alloc_tfm +EXPORT_SYMBOL_GPL vmlinux 0x7f60e837 __pm_wakeup_event +EXPORT_SYMBOL_GPL vmlinux 0x7f6de9eb wm8350_reg_write +EXPORT_SYMBOL_GPL vmlinux 0x7f81117a regmap_raw_write_async +EXPORT_SYMBOL_GPL vmlinux 0x7f86c172 __page_file_index +EXPORT_SYMBOL_GPL vmlinux 0x7f883c7c usb_get_current_frame_number +EXPORT_SYMBOL_GPL vmlinux 0x7f88887b snd_soc_dapm_put_value_enum_double +EXPORT_SYMBOL_GPL vmlinux 0x7fab5350 wakeup_source_unregister +EXPORT_SYMBOL_GPL vmlinux 0x7fe9f667 __pm_runtime_suspend +EXPORT_SYMBOL_GPL vmlinux 0x7ff2e154 simple_attr_write +EXPORT_SYMBOL_GPL vmlinux 0x7ffb4304 relay_reset +EXPORT_SYMBOL_GPL vmlinux 0x7ffc8718 gpio_set_debounce +EXPORT_SYMBOL_GPL vmlinux 0x800808d5 wm8997_irq +EXPORT_SYMBOL_GPL vmlinux 0x8013e76b sdio_writeb_readb +EXPORT_SYMBOL_GPL vmlinux 0x80150701 ping_init_sock +EXPORT_SYMBOL_GPL vmlinux 0x80231a03 snd_soc_jack_notifier_unregister +EXPORT_SYMBOL_GPL vmlinux 0x8043eb8c firmware_kobj +EXPORT_SYMBOL_GPL vmlinux 0x8059270f omap_dm_timer_write_status +EXPORT_SYMBOL_GPL vmlinux 0x808ec1a3 crypto_alg_tested +EXPORT_SYMBOL_GPL vmlinux 0x80904814 spi_async +EXPORT_SYMBOL_GPL vmlinux 0x80a65392 tasklet_hrtimer_init +EXPORT_SYMBOL_GPL vmlinux 0x80c9a701 usbmisc_unset_ops +EXPORT_SYMBOL_GPL vmlinux 0x80d5e57a mpi_free +EXPORT_SYMBOL_GPL vmlinux 0x80f3268f __trace_printk +EXPORT_SYMBOL_GPL vmlinux 0x80f7ccbe tty_port_tty_wakeup +EXPORT_SYMBOL_GPL vmlinux 0x811218a4 scsi_eh_ready_devs +EXPORT_SYMBOL_GPL vmlinux 0x811d5a2b ata_bmdma32_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x811dc334 usb_unregister_notify +EXPORT_SYMBOL_GPL vmlinux 0x8125487b musb_interrupt +EXPORT_SYMBOL_GPL vmlinux 0x8146a3e1 debugfs_create_symlink +EXPORT_SYMBOL_GPL vmlinux 0x8149ea54 ata_timing_find_mode +EXPORT_SYMBOL_GPL vmlinux 0x8171f10a netdev_rx_handler_register +EXPORT_SYMBOL_GPL vmlinux 0x81733f48 rtc_irq_unregister +EXPORT_SYMBOL_GPL vmlinux 0x8183733f ftrace_event_reg +EXPORT_SYMBOL_GPL vmlinux 0x81af93d1 pinctrl_unregister +EXPORT_SYMBOL_GPL vmlinux 0x81c22eba pid_nr_ns +EXPORT_SYMBOL_GPL vmlinux 0x81c45b8c blk_queue_dma_drain +EXPORT_SYMBOL_GPL vmlinux 0x81e98c90 gpiochip_find +EXPORT_SYMBOL_GPL vmlinux 0x81ee7cb7 ahci_dev_classify +EXPORT_SYMBOL_GPL vmlinux 0x82114878 sata_std_hardreset +EXPORT_SYMBOL_GPL vmlinux 0x8218c01b da9052_disable_irq +EXPORT_SYMBOL_GPL vmlinux 0x8226642f __gpio_cansleep +EXPORT_SYMBOL_GPL vmlinux 0x8274a672 snd_dmaengine_pcm_open +EXPORT_SYMBOL_GPL vmlinux 0x82939ebd rcu_batches_completed_sched +EXPORT_SYMBOL_GPL vmlinux 0x82d79b51 sysctl_vfs_cache_pressure +EXPORT_SYMBOL_GPL vmlinux 0x82e082d7 device_del +EXPORT_SYMBOL_GPL vmlinux 0x82eead48 snd_soc_pm_ops +EXPORT_SYMBOL_GPL vmlinux 0x82f6e96b pinconf_generic_dump_config +EXPORT_SYMBOL_GPL vmlinux 0x83102b81 platform_device_alloc +EXPORT_SYMBOL_GPL vmlinux 0x83286841 bsg_setup_queue +EXPORT_SYMBOL_GPL vmlinux 0x83341063 pm_generic_poweroff +EXPORT_SYMBOL_GPL vmlinux 0x8359f2ef snd_soc_dapm_put_enum_double +EXPORT_SYMBOL_GPL vmlinux 0x83691ed4 tpm_get_timeouts +EXPORT_SYMBOL_GPL vmlinux 0x838b13e7 ring_buffer_free +EXPORT_SYMBOL_GPL vmlinux 0x83a5ae2e __tracepoint_rpm_resume +EXPORT_SYMBOL_GPL vmlinux 0x83c5b895 usb_sg_wait +EXPORT_SYMBOL_GPL vmlinux 0x83c7d7c5 dev_pm_qos_remove_notifier +EXPORT_SYMBOL_GPL vmlinux 0x83d95aab vchan_dma_desc_free_list +EXPORT_SYMBOL_GPL vmlinux 0x83df4f20 pci_disable_pasid +EXPORT_SYMBOL_GPL vmlinux 0x8410efae posix_clock_register +EXPORT_SYMBOL_GPL vmlinux 0x8423906e bus_get_kset +EXPORT_SYMBOL_GPL vmlinux 0x84339a5d devm_regulator_get +EXPORT_SYMBOL_GPL vmlinux 0x843433d8 xen_dbgp_reset_prep +EXPORT_SYMBOL_GPL vmlinux 0x84414739 bio_clone_mddev +EXPORT_SYMBOL_GPL vmlinux 0x84502ab2 posix_timers_register_clock +EXPORT_SYMBOL_GPL vmlinux 0x846beeba sdio_enable_func +EXPORT_SYMBOL_GPL vmlinux 0x8472b80c snd_soc_codec_readable_register +EXPORT_SYMBOL_GPL vmlinux 0x848c0926 inet6_csk_xmit +EXPORT_SYMBOL_GPL vmlinux 0x849ad979 usb_hcd_end_port_resume +EXPORT_SYMBOL_GPL vmlinux 0x84c5229a snd_dmaengine_pcm_set_config_from_dai_data +EXPORT_SYMBOL_GPL vmlinux 0x84cdb78d anon_transport_class_unregister +EXPORT_SYMBOL_GPL vmlinux 0x85016785 ahci_print_info +EXPORT_SYMBOL_GPL vmlinux 0x85050965 __irq_alloc_descs +EXPORT_SYMBOL_GPL vmlinux 0x852e568d of_get_nand_ecc_mode +EXPORT_SYMBOL_GPL vmlinux 0x852f3e32 kobject_init_and_add +EXPORT_SYMBOL_GPL vmlinux 0x85478a0b inet6_hash_frag +EXPORT_SYMBOL_GPL vmlinux 0x85608a60 dequeue_signal +EXPORT_SYMBOL_GPL vmlinux 0x85649202 crypto_create_tfm +EXPORT_SYMBOL_GPL vmlinux 0x85651ce8 usb_hcd_resume_root_hub +EXPORT_SYMBOL_GPL vmlinux 0x856629e7 __tracepoint_rpm_return_int +EXPORT_SYMBOL_GPL vmlinux 0x8574ca6c gpio_request_array +EXPORT_SYMBOL_GPL vmlinux 0x85903e06 xenbus_unmap_ring +EXPORT_SYMBOL_GPL vmlinux 0x8596b0f0 __mtd_next_device +EXPORT_SYMBOL_GPL vmlinux 0x85c10896 rcu_batches_completed_bh +EXPORT_SYMBOL_GPL vmlinux 0x85c7f674 ring_buffer_normalize_time_stamp +EXPORT_SYMBOL_GPL vmlinux 0x85c91bac tegra_ehci_phy_restore_end +EXPORT_SYMBOL_GPL vmlinux 0x85f53615 wm8350_reg_unlock +EXPORT_SYMBOL_GPL vmlinux 0x861359ed of_get_phy_mode +EXPORT_SYMBOL_GPL vmlinux 0x861bcd73 netlink_remove_tap +EXPORT_SYMBOL_GPL vmlinux 0x862b9816 cpu_topology +EXPORT_SYMBOL_GPL vmlinux 0x863da91e usb_hcd_giveback_urb +EXPORT_SYMBOL_GPL vmlinux 0x86623fd7 notify_remote_via_irq +EXPORT_SYMBOL_GPL vmlinux 0x866adbec sdhci_free_host +EXPORT_SYMBOL_GPL vmlinux 0x8678ae10 crypto_unregister_ahash +EXPORT_SYMBOL_GPL vmlinux 0x868784cb __symbol_get +EXPORT_SYMBOL_GPL vmlinux 0x868bde47 max8997_read_reg +EXPORT_SYMBOL_GPL vmlinux 0x869aedb2 ahci_kick_engine +EXPORT_SYMBOL_GPL vmlinux 0x86a51007 gnttab_end_foreign_transfer +EXPORT_SYMBOL_GPL vmlinux 0x86b2eb68 __init_kthread_worker +EXPORT_SYMBOL_GPL vmlinux 0x86b93f26 crypto_alg_mod_lookup +EXPORT_SYMBOL_GPL vmlinux 0x86f6b99d synchronize_rcu_expedited +EXPORT_SYMBOL_GPL vmlinux 0x86ffbf0b hrtimer_start_range_ns +EXPORT_SYMBOL_GPL vmlinux 0x870e16b7 xen_test_irq_shared +EXPORT_SYMBOL_GPL vmlinux 0x870e34d3 stmpe_block_read +EXPORT_SYMBOL_GPL vmlinux 0x8710779a snd_soc_info_enum_ext +EXPORT_SYMBOL_GPL vmlinux 0x8727ebac __blkdev_driver_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x872e8499 mtd_unlock +EXPORT_SYMBOL_GPL vmlinux 0x873fbaea edac_atomic_assert_error +EXPORT_SYMBOL_GPL vmlinux 0x876ec836 snd_soc_get_pcm_runtime +EXPORT_SYMBOL_GPL vmlinux 0x8783fde7 twl6040_get_hs_step_size +EXPORT_SYMBOL_GPL vmlinux 0x87984b16 __tracepoint_cpu_idle +EXPORT_SYMBOL_GPL vmlinux 0x87b3696e kern_mount_data +EXPORT_SYMBOL_GPL vmlinux 0x87ba8758 __cci_control_port_by_device +EXPORT_SYMBOL_GPL vmlinux 0x87bb4e32 of_usb_get_phy_mode +EXPORT_SYMBOL_GPL vmlinux 0x87d2e691 omap_dm_timer_trigger +EXPORT_SYMBOL_GPL vmlinux 0x87dd704d ata_eh_thaw_port +EXPORT_SYMBOL_GPL vmlinux 0x87f38bf3 pm_generic_freeze_late +EXPORT_SYMBOL_GPL vmlinux 0x8810ad5e crypto_xor +EXPORT_SYMBOL_GPL vmlinux 0x8812e7c8 wm8350_clear_bits +EXPORT_SYMBOL_GPL vmlinux 0x88400b24 crypto_shoot_alg +EXPORT_SYMBOL_GPL vmlinux 0x885f4631 crypto_alloc_instance2 +EXPORT_SYMBOL_GPL vmlinux 0x888616a3 usb_create_shared_hcd +EXPORT_SYMBOL_GPL vmlinux 0x8898d870 usb_alloc_streams +EXPORT_SYMBOL_GPL vmlinux 0x88a62418 scsi_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x88ab6fe3 kgdb_active +EXPORT_SYMBOL_GPL vmlinux 0x88b5647c trace_clock_local +EXPORT_SYMBOL_GPL vmlinux 0x88c257ac pci_disable_sriov +EXPORT_SYMBOL_GPL vmlinux 0x88d683fd ping_proc_unregister +EXPORT_SYMBOL_GPL vmlinux 0x88d6dff1 clk_get_parent +EXPORT_SYMBOL_GPL vmlinux 0x88e6051d mtd_lock_user_prot_reg +EXPORT_SYMBOL_GPL vmlinux 0x890e5711 add_page_wait_queue +EXPORT_SYMBOL_GPL vmlinux 0x891a5a7f gnttab_max_grant_frames +EXPORT_SYMBOL_GPL vmlinux 0x8924eb1e rcu_force_quiescent_state +EXPORT_SYMBOL_GPL vmlinux 0x8927b1e8 invalidate_inode_pages2 +EXPORT_SYMBOL_GPL vmlinux 0x892d9cfd snd_soc_platform_read +EXPORT_SYMBOL_GPL vmlinux 0x89321306 __trace_note_message +EXPORT_SYMBOL_GPL vmlinux 0x89485687 iommu_group_put +EXPORT_SYMBOL_GPL vmlinux 0x89502f0c gnttab_subpage_grants_available +EXPORT_SYMBOL_GPL vmlinux 0x89641e9b napi_hash_add +EXPORT_SYMBOL_GPL vmlinux 0x8969243f md_rdev_init +EXPORT_SYMBOL_GPL vmlinux 0x8996feca dev_attr_em_message_type +EXPORT_SYMBOL_GPL vmlinux 0x89aeef4b __udp6_lib_lookup +EXPORT_SYMBOL_GPL vmlinux 0x89baa77c vfs_cancel_lock +EXPORT_SYMBOL_GPL vmlinux 0x89bbafc6 usb_register_notify +EXPORT_SYMBOL_GPL vmlinux 0x89e839cd dma_buf_kunmap_atomic +EXPORT_SYMBOL_GPL vmlinux 0x8a04b9fe tracepoint_iter_reset +EXPORT_SYMBOL_GPL vmlinux 0x8a1e1a91 cgroup_rightmost_descendant +EXPORT_SYMBOL_GPL vmlinux 0x8a22c02a sata_pmp_qc_defer_cmd_switch +EXPORT_SYMBOL_GPL vmlinux 0x8a507686 do_unbind_con_driver +EXPORT_SYMBOL_GPL vmlinux 0x8a5c7a80 regulator_enable +EXPORT_SYMBOL_GPL vmlinux 0x8a5d8ba7 transport_add_device +EXPORT_SYMBOL_GPL vmlinux 0x8a78989f irq_from_evtchn +EXPORT_SYMBOL_GPL vmlinux 0x8a9c914d trace_event_raw_init +EXPORT_SYMBOL_GPL vmlinux 0x8ab3df58 br_fdb_test_addr_hook +EXPORT_SYMBOL_GPL vmlinux 0x8abacc47 get_max_files +EXPORT_SYMBOL_GPL vmlinux 0x8ae152b5 of_get_nand_bus_width +EXPORT_SYMBOL_GPL vmlinux 0x8b04668e bind_interdomain_evtchn_to_irqhandler +EXPORT_SYMBOL_GPL vmlinux 0x8b069492 snd_soc_add_card_controls +EXPORT_SYMBOL_GPL vmlinux 0x8b66f9e0 xen_platform_pci_unplug +EXPORT_SYMBOL_GPL vmlinux 0x8b752ac1 ata_tf_to_fis +EXPORT_SYMBOL_GPL vmlinux 0x8b775d3a __wake_up_locked +EXPORT_SYMBOL_GPL vmlinux 0x8b778522 sysfs_remove_link_from_group +EXPORT_SYMBOL_GPL vmlinux 0x8b81f1b9 ata_host_suspend +EXPORT_SYMBOL_GPL vmlinux 0x8ba5afe9 HYPERVISOR_memory_op +EXPORT_SYMBOL_GPL vmlinux 0x8bc9c992 rdev_clear_badblocks +EXPORT_SYMBOL_GPL vmlinux 0x8be024ba scsi_internal_device_block +EXPORT_SYMBOL_GPL vmlinux 0x8be41789 mount_mtd +EXPORT_SYMBOL_GPL vmlinux 0x8c03d20c destroy_workqueue +EXPORT_SYMBOL_GPL vmlinux 0x8c0538e4 ip4_datagram_release_cb +EXPORT_SYMBOL_GPL vmlinux 0x8c06a108 xenbus_transaction_start +EXPORT_SYMBOL_GPL vmlinux 0x8c07097d of_get_regulator_init_data +EXPORT_SYMBOL_GPL vmlinux 0x8c1c0be3 ohci_suspend +EXPORT_SYMBOL_GPL vmlinux 0x8c488ae8 wm5110_irq +EXPORT_SYMBOL_GPL vmlinux 0x8c4948ec thermal_zone_bind_cooling_device +EXPORT_SYMBOL_GPL vmlinux 0x8c4c19e7 rtc_device_register +EXPORT_SYMBOL_GPL vmlinux 0x8c6138f7 bmp085_remove +EXPORT_SYMBOL_GPL vmlinux 0x8c7067e3 opp_free_cpufreq_table +EXPORT_SYMBOL_GPL vmlinux 0x8c782114 usb_hcd_pci_remove +EXPORT_SYMBOL_GPL vmlinux 0x8c9791f5 crypto_register_algs +EXPORT_SYMBOL_GPL vmlinux 0x8ccb5abf wm831x_bulk_read +EXPORT_SYMBOL_GPL vmlinux 0x8d111a47 pm_generic_thaw_early +EXPORT_SYMBOL_GPL vmlinux 0x8d22bb58 iommu_group_alloc +EXPORT_SYMBOL_GPL vmlinux 0x8d5b8950 usb_hub_find_child +EXPORT_SYMBOL_GPL vmlinux 0x8d5e4c32 usb_hcd_start_port_resume +EXPORT_SYMBOL_GPL vmlinux 0x8d6364ce crypto_mod_put +EXPORT_SYMBOL_GPL vmlinux 0x8d6ca298 uhci_reset_hc +EXPORT_SYMBOL_GPL vmlinux 0x8daa737e xenbus_probe_node +EXPORT_SYMBOL_GPL vmlinux 0x8dbf7aaa privcmd_call +EXPORT_SYMBOL_GPL vmlinux 0x8dc568f0 sec_reg_update +EXPORT_SYMBOL_GPL vmlinux 0x8dc8e433 transport_class_unregister +EXPORT_SYMBOL_GPL vmlinux 0x8dcb6851 sdhci_pltfm_free +EXPORT_SYMBOL_GPL vmlinux 0x8df6d8ec ahash_free_instance +EXPORT_SYMBOL_GPL vmlinux 0x8dfa4aa3 ata_msleep +EXPORT_SYMBOL_GPL vmlinux 0x8e2b25c2 videomode_from_timings +EXPORT_SYMBOL_GPL vmlinux 0x8e574567 pci_check_and_mask_intx +EXPORT_SYMBOL_GPL vmlinux 0x8e5c4cec snd_soc_get_volsw_s8 +EXPORT_SYMBOL_GPL vmlinux 0x8e5f776a ata_bmdma_qc_issue +EXPORT_SYMBOL_GPL vmlinux 0x8e7894bd __atomic_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x8e84cd9a input_ff_create +EXPORT_SYMBOL_GPL vmlinux 0x8e897766 usb_unlocked_disable_lpm +EXPORT_SYMBOL_GPL vmlinux 0x8e96b623 relay_buf_full +EXPORT_SYMBOL_GPL vmlinux 0x8efe0b17 cpufreq_frequency_table_target +EXPORT_SYMBOL_GPL vmlinux 0x8effebd3 pm_qos_update_request +EXPORT_SYMBOL_GPL vmlinux 0x8f2111d8 ata_sas_port_alloc +EXPORT_SYMBOL_GPL vmlinux 0x8f2fd100 __pm_runtime_disable +EXPORT_SYMBOL_GPL vmlinux 0x8f34c396 attribute_container_classdev_to_container +EXPORT_SYMBOL_GPL vmlinux 0x8f4596f1 crypto_register_alg +EXPORT_SYMBOL_GPL vmlinux 0x8f5525fc opp_get_freq +EXPORT_SYMBOL_GPL vmlinux 0x8f6cee77 __round_jiffies_relative +EXPORT_SYMBOL_GPL vmlinux 0x8f876099 led_classdev_resume +EXPORT_SYMBOL_GPL vmlinux 0x8fd134a5 inet_putpeer +EXPORT_SYMBOL_GPL vmlinux 0x8feb6b9b dev_pm_qos_flags +EXPORT_SYMBOL_GPL vmlinux 0x90307bc1 ata_noop_qc_prep +EXPORT_SYMBOL_GPL vmlinux 0x903e4095 mtd_read_fact_prot_reg +EXPORT_SYMBOL_GPL vmlinux 0x90574050 cci_ace_get_port +EXPORT_SYMBOL_GPL vmlinux 0x9062c322 ring_buffer_consume +EXPORT_SYMBOL_GPL vmlinux 0x90630bb6 crypto_hash_walk_done +EXPORT_SYMBOL_GPL vmlinux 0x90705b7f syscon_node_to_regmap +EXPORT_SYMBOL_GPL vmlinux 0x9082d068 kprobe_decode_arm_table +EXPORT_SYMBOL_GPL vmlinux 0x908a3239 omap_dm_timer_set_load +EXPORT_SYMBOL_GPL vmlinux 0x908f96df usb_remove_phy +EXPORT_SYMBOL_GPL vmlinux 0x90a1004a crypto_has_alg +EXPORT_SYMBOL_GPL vmlinux 0x90a43e8a blk_end_request_err +EXPORT_SYMBOL_GPL vmlinux 0x90b763f1 HYPERVISOR_console_io +EXPORT_SYMBOL_GPL vmlinux 0x90bb2569 ata_sff_softreset +EXPORT_SYMBOL_GPL vmlinux 0x90c01bfa usb_autopm_put_interface +EXPORT_SYMBOL_GPL vmlinux 0x90d9e246 crypto_unregister_shashes +EXPORT_SYMBOL_GPL vmlinux 0x90e66d47 wakeup_source_create +EXPORT_SYMBOL_GPL vmlinux 0x90e79805 tpm_show_durations +EXPORT_SYMBOL_GPL vmlinux 0x9151b2be crypto_ablkcipher_type +EXPORT_SYMBOL_GPL vmlinux 0x915bc647 ahci_fill_cmd_slot +EXPORT_SYMBOL_GPL vmlinux 0x9181f047 usb_string +EXPORT_SYMBOL_GPL vmlinux 0x918871f3 devm_add_action +EXPORT_SYMBOL_GPL vmlinux 0x918ad429 ring_buffer_lock_reserve +EXPORT_SYMBOL_GPL vmlinux 0x91dda801 scatterwalk_map_and_copy +EXPORT_SYMBOL_GPL vmlinux 0x92057bbe snd_soc_platform_write +EXPORT_SYMBOL_GPL vmlinux 0x920aacca nl_table_lock +EXPORT_SYMBOL_GPL vmlinux 0x921dc22d bus_get_device_klist +EXPORT_SYMBOL_GPL vmlinux 0x922073ce posix_timer_event +EXPORT_SYMBOL_GPL vmlinux 0x924a53df md_stop_writes +EXPORT_SYMBOL_GPL vmlinux 0x924c46f8 zs_unmap_object +EXPORT_SYMBOL_GPL vmlinux 0x927dad79 crypto_ahash_digest +EXPORT_SYMBOL_GPL vmlinux 0x92923ea5 thermal_zone_device_register +EXPORT_SYMBOL_GPL vmlinux 0x929d1dd4 root_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x92b4bf77 serial8250_rx_chars +EXPORT_SYMBOL_GPL vmlinux 0x92b57248 flush_work +EXPORT_SYMBOL_GPL vmlinux 0x92d28b71 da903x_reads +EXPORT_SYMBOL_GPL vmlinux 0x92d31cfb fixed_phy_add +EXPORT_SYMBOL_GPL vmlinux 0x92f487b5 usb_get_intf +EXPORT_SYMBOL_GPL vmlinux 0x92fba253 fsnotify +EXPORT_SYMBOL_GPL vmlinux 0x930a6701 snd_soc_platform_trigger +EXPORT_SYMBOL_GPL vmlinux 0x930ed9b9 of_usb_get_dr_mode +EXPORT_SYMBOL_GPL vmlinux 0x9312d80e evtchn_put +EXPORT_SYMBOL_GPL vmlinux 0x932ab963 skb_pull_rcsum +EXPORT_SYMBOL_GPL vmlinux 0x93429e30 dma_buf_end_cpu_access +EXPORT_SYMBOL_GPL vmlinux 0x93456623 sysfs_create_bin_file +EXPORT_SYMBOL_GPL vmlinux 0x939534ad regmap_raw_write +EXPORT_SYMBOL_GPL vmlinux 0x93d2422d snmp_mib_free +EXPORT_SYMBOL_GPL vmlinux 0x93d26ce7 sdio_set_host_pm_flags +EXPORT_SYMBOL_GPL vmlinux 0x93d61f73 ata_std_qc_defer +EXPORT_SYMBOL_GPL vmlinux 0x93e814b7 crypto_unregister_pcomp +EXPORT_SYMBOL_GPL vmlinux 0x93f1b45f ata_cable_ignore +EXPORT_SYMBOL_GPL vmlinux 0x93f3d708 netdev_rx_handler_unregister +EXPORT_SYMBOL_GPL vmlinux 0x94025cdc snd_soc_dapm_sync +EXPORT_SYMBOL_GPL vmlinux 0x940a1a30 generic_fh_to_dentry +EXPORT_SYMBOL_GPL vmlinux 0x9413ab84 kill_pid_info_as_cred +EXPORT_SYMBOL_GPL vmlinux 0x941b839f snd_soc_get_dai_substream +EXPORT_SYMBOL_GPL vmlinux 0x941f2aaa eventfd_ctx_put +EXPORT_SYMBOL_GPL vmlinux 0x943fc708 xen_setup_shutdown_event +EXPORT_SYMBOL_GPL vmlinux 0x9462966f wm8350_read_auxadc +EXPORT_SYMBOL_GPL vmlinux 0x9463ff71 init_bch +EXPORT_SYMBOL_GPL vmlinux 0x948baaf7 dev_pm_qos_add_request +EXPORT_SYMBOL_GPL vmlinux 0x94a68723 ata_scsi_slave_destroy +EXPORT_SYMBOL_GPL vmlinux 0x94abb745 sprint_oid +EXPORT_SYMBOL_GPL vmlinux 0x94da4523 mtd_lock +EXPORT_SYMBOL_GPL vmlinux 0x94dd009c __inet_lookup_listener +EXPORT_SYMBOL_GPL vmlinux 0x94e1823c hrtimer_start +EXPORT_SYMBOL_GPL vmlinux 0x951c0a37 dapm_mark_dirty +EXPORT_SYMBOL_GPL vmlinux 0x952664c5 do_exit +EXPORT_SYMBOL_GPL vmlinux 0x9531206d __clocksource_register_scale +EXPORT_SYMBOL_GPL vmlinux 0x953acec5 bitmap_resize +EXPORT_SYMBOL_GPL vmlinux 0x955b0e2e kthread_worker_fn +EXPORT_SYMBOL_GPL vmlinux 0x956a91ba gpio_get_value_cansleep +EXPORT_SYMBOL_GPL vmlinux 0x9572918d user_describe +EXPORT_SYMBOL_GPL vmlinux 0x957408a3 dev_pm_qos_hide_latency_limit +EXPORT_SYMBOL_GPL vmlinux 0x95762345 regmap_read +EXPORT_SYMBOL_GPL vmlinux 0x958df3ac zs_free +EXPORT_SYMBOL_GPL vmlinux 0x95bc9078 btree_free +EXPORT_SYMBOL_GPL vmlinux 0x95c578a0 ioremap_page_range +EXPORT_SYMBOL_GPL vmlinux 0x95c601da pci_msi_off +EXPORT_SYMBOL_GPL vmlinux 0x95cc943c driver_for_each_device +EXPORT_SYMBOL_GPL vmlinux 0x95eb1a1e crypto_remove_spawns +EXPORT_SYMBOL_GPL vmlinux 0x95f6ee15 unregister_jprobes +EXPORT_SYMBOL_GPL vmlinux 0x95f8ce13 usb_hc_died +EXPORT_SYMBOL_GPL vmlinux 0x961b50ef ip6_datagram_connect +EXPORT_SYMBOL_GPL vmlinux 0x9621849f ring_buffer_event_data +EXPORT_SYMBOL_GPL vmlinux 0x964add15 xenbus_scanf +EXPORT_SYMBOL_GPL vmlinux 0x96554810 register_keyboard_notifier +EXPORT_SYMBOL_GPL vmlinux 0x96676f4e crypto_shash_update +EXPORT_SYMBOL_GPL vmlinux 0x96754ad0 ata_sff_busy_sleep +EXPORT_SYMBOL_GPL vmlinux 0x9677c716 srcu_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x967fbffe attribute_container_unregister +EXPORT_SYMBOL_GPL vmlinux 0x96a22790 vmcore_cleanup +EXPORT_SYMBOL_GPL vmlinux 0x96a5d1c6 mmc_regulator_get_supply +EXPORT_SYMBOL_GPL vmlinux 0x96aa1d0e sdhci_pltfm_init +EXPORT_SYMBOL_GPL vmlinux 0x96bc9053 inet_csk_route_child_sock +EXPORT_SYMBOL_GPL vmlinux 0x96c99676 blk_queue_bypass_start +EXPORT_SYMBOL_GPL vmlinux 0x96d88ab5 sdio_release_irq +EXPORT_SYMBOL_GPL vmlinux 0x96e0c991 snd_soc_limit_volume +EXPORT_SYMBOL_GPL vmlinux 0x96e291a5 fat_sync_inode +EXPORT_SYMBOL_GPL vmlinux 0x9745c52a of_fixed_clk_setup +EXPORT_SYMBOL_GPL vmlinux 0x9759d938 regmap_field_alloc +EXPORT_SYMBOL_GPL vmlinux 0x975abd48 extcon_get_cable_state +EXPORT_SYMBOL_GPL vmlinux 0x97674ed4 wm8400_reset_codec_reg_cache +EXPORT_SYMBOL_GPL vmlinux 0x97704c40 hrtimer_try_to_cancel +EXPORT_SYMBOL_GPL vmlinux 0x9771169b tegra_usb_phy_preresume +EXPORT_SYMBOL_GPL vmlinux 0x97a3ec56 ata_sff_queue_delayed_work +EXPORT_SYMBOL_GPL vmlinux 0x97de2b83 debug_locks_silent +EXPORT_SYMBOL_GPL vmlinux 0x98080942 kill_mtd_super +EXPORT_SYMBOL_GPL vmlinux 0x981f218a virtqueue_kick +EXPORT_SYMBOL_GPL vmlinux 0x9833bc0c hvc_kick +EXPORT_SYMBOL_GPL vmlinux 0x98404a39 amba_device_add +EXPORT_SYMBOL_GPL vmlinux 0x98503a63 mpi_alloc +EXPORT_SYMBOL_GPL vmlinux 0x9879932b crypto_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x987bfd38 bd_unlink_disk_holder +EXPORT_SYMBOL_GPL vmlinux 0x988f5632 platform_device_put +EXPORT_SYMBOL_GPL vmlinux 0x989136c1 snd_soc_default_readable_register +EXPORT_SYMBOL_GPL vmlinux 0x98a437c6 driver_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x98c9f584 klist_init +EXPORT_SYMBOL_GPL vmlinux 0x98cc564a regulator_set_voltage +EXPORT_SYMBOL_GPL vmlinux 0x98d5ee30 ata_host_activate +EXPORT_SYMBOL_GPL vmlinux 0x98efcd34 xenbus_dev_cancel +EXPORT_SYMBOL_GPL vmlinux 0x991484c4 of_property_count_strings +EXPORT_SYMBOL_GPL vmlinux 0x9924c496 __usb_get_extra_descriptor +EXPORT_SYMBOL_GPL vmlinux 0x992e2d00 transport_configure_device +EXPORT_SYMBOL_GPL vmlinux 0x9933dba8 devm_clk_unregister +EXPORT_SYMBOL_GPL vmlinux 0x995d1071 prof_on +EXPORT_SYMBOL_GPL vmlinux 0x997aa2f3 omap_iommu_restore_ctx +EXPORT_SYMBOL_GPL vmlinux 0x9a11a0fc crypto_attr_alg_name +EXPORT_SYMBOL_GPL vmlinux 0x9a2e1e63 fat_search_long +EXPORT_SYMBOL_GPL vmlinux 0x9a82db5d snd_dmaengine_pcm_pointer_no_residue +EXPORT_SYMBOL_GPL vmlinux 0x9a89dbf7 lpddr2_jedec_min_tck +EXPORT_SYMBOL_GPL vmlinux 0x9ab39e2f cpufreq_register_governor +EXPORT_SYMBOL_GPL vmlinux 0x9ac11b74 suspend_set_ops +EXPORT_SYMBOL_GPL vmlinux 0x9ac4cac6 ehci_setup +EXPORT_SYMBOL_GPL vmlinux 0x9aca444b get_monotonic_boottime +EXPORT_SYMBOL_GPL vmlinux 0x9aeacb87 ring_buffer_iter_empty +EXPORT_SYMBOL_GPL vmlinux 0x9aefd2de adp5520_write +EXPORT_SYMBOL_GPL vmlinux 0x9af0adf6 ata_host_init +EXPORT_SYMBOL_GPL vmlinux 0x9b0facb3 fuse_do_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x9b1ebdb7 irq_find_mapping +EXPORT_SYMBOL_GPL vmlinux 0x9b435b64 pci_intx_mask_supported +EXPORT_SYMBOL_GPL vmlinux 0x9b5ec0c4 task_active_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0x9b5ee1ed usb_get_dev +EXPORT_SYMBOL_GPL vmlinux 0x9ba6c0d0 iommu_iova_to_phys +EXPORT_SYMBOL_GPL vmlinux 0x9bbab089 platform_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x9bece81b mpi_cmp_ui +EXPORT_SYMBOL_GPL vmlinux 0x9c10977d sdev_evt_send_simple +EXPORT_SYMBOL_GPL vmlinux 0x9c2db9e8 ata_cable_sata +EXPORT_SYMBOL_GPL vmlinux 0x9c3f229c ip6_local_out +EXPORT_SYMBOL_GPL vmlinux 0x9c5fb5e8 tcp_done +EXPORT_SYMBOL_GPL vmlinux 0x9c62e787 soc_ac97_ops +EXPORT_SYMBOL_GPL vmlinux 0x9c6dae1b spi_alloc_master +EXPORT_SYMBOL_GPL vmlinux 0x9c7de2a3 regulator_get +EXPORT_SYMBOL_GPL vmlinux 0x9c86ede0 fs_kobj +EXPORT_SYMBOL_GPL vmlinux 0x9cc4f70a register_pm_notifier +EXPORT_SYMBOL_GPL vmlinux 0x9cd11d34 crypto_larval_lookup +EXPORT_SYMBOL_GPL vmlinux 0x9cf32b66 pci_enable_pasid +EXPORT_SYMBOL_GPL vmlinux 0x9d06688b register_xenbus_watch +EXPORT_SYMBOL_GPL vmlinux 0x9d0dbc0e unregister_kprobe +EXPORT_SYMBOL_GPL vmlinux 0x9d2a9002 regmap_async_complete +EXPORT_SYMBOL_GPL vmlinux 0x9d338980 ata_pci_device_do_resume +EXPORT_SYMBOL_GPL vmlinux 0x9d3850e1 gnttab_alloc_grant_references +EXPORT_SYMBOL_GPL vmlinux 0x9d4c69f4 snd_soc_dai_set_clkdiv +EXPORT_SYMBOL_GPL vmlinux 0x9d6017df pci_pri_enabled +EXPORT_SYMBOL_GPL vmlinux 0x9d8331c0 ring_buffer_read_page +EXPORT_SYMBOL_GPL vmlinux 0x9d920df5 snd_soc_poweroff +EXPORT_SYMBOL_GPL vmlinux 0x9d99150e pm_generic_suspend_late +EXPORT_SYMBOL_GPL vmlinux 0x9da5e9fa crypto_aead_type +EXPORT_SYMBOL_GPL vmlinux 0x9dc1731c usb_get_from_anchor +EXPORT_SYMBOL_GPL vmlinux 0x9dcab565 spi_new_device +EXPORT_SYMBOL_GPL vmlinux 0x9de23366 __cpufreq_driver_target +EXPORT_SYMBOL_GPL vmlinux 0x9dfdf722 gpio_free_array +EXPORT_SYMBOL_GPL vmlinux 0x9e0afb94 serial8250_handle_irq +EXPORT_SYMBOL_GPL vmlinux 0x9e0b3493 i2c_add_numbered_adapter +EXPORT_SYMBOL_GPL vmlinux 0x9e33d384 pci_store_saved_state +EXPORT_SYMBOL_GPL vmlinux 0x9e6f58ac snd_soc_info_volsw_s8 +EXPORT_SYMBOL_GPL vmlinux 0x9e7297a2 snd_soc_cnew +EXPORT_SYMBOL_GPL vmlinux 0x9e7b0d87 platform_driver_probe +EXPORT_SYMBOL_GPL vmlinux 0x9e80a871 xenbus_dev_attrs +EXPORT_SYMBOL_GPL vmlinux 0x9e8462c2 netlink_alloc_skb +EXPORT_SYMBOL_GPL vmlinux 0x9e86ae16 crypto_init_spawn2 +EXPORT_SYMBOL_GPL vmlinux 0x9ea25162 ata_sff_drain_fifo +EXPORT_SYMBOL_GPL vmlinux 0x9ea51538 blk_queue_flush_queueable +EXPORT_SYMBOL_GPL vmlinux 0x9ea556f8 btree_destroy +EXPORT_SYMBOL_GPL vmlinux 0x9eac5bc7 tpm_show_pubek +EXPORT_SYMBOL_GPL vmlinux 0x9ec3a6b1 regmap_field_read +EXPORT_SYMBOL_GPL vmlinux 0x9ed554b3 unregister_keyboard_notifier +EXPORT_SYMBOL_GPL vmlinux 0x9ed5b0af dev_pm_qos_add_ancestor_request +EXPORT_SYMBOL_GPL vmlinux 0x9f0664bf dm_get_queue_limits +EXPORT_SYMBOL_GPL vmlinux 0x9f0b4f5a ata_dev_set_feature +EXPORT_SYMBOL_GPL vmlinux 0x9f0f62f3 public_key_subtype +EXPORT_SYMBOL_GPL vmlinux 0x9f258b63 zap_vma_ptes +EXPORT_SYMBOL_GPL vmlinux 0x9f3382be platform_get_irq +EXPORT_SYMBOL_GPL vmlinux 0x9f37b9f9 unregister_wide_hw_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0x9f3f98e1 of_get_nand_on_flash_bbt +EXPORT_SYMBOL_GPL vmlinux 0x9f4b548c __srcu_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x9f517986 HYPERVISOR_hvm_op +EXPORT_SYMBOL_GPL vmlinux 0x9f77c3c0 usb_kill_urb +EXPORT_SYMBOL_GPL vmlinux 0x9f7aa3e9 device_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x9f7aeeec sock_diag_unregister +EXPORT_SYMBOL_GPL vmlinux 0x9fa55018 rtc_set_mmss +EXPORT_SYMBOL_GPL vmlinux 0x9fa706bc debugfs_create_dir +EXPORT_SYMBOL_GPL vmlinux 0x9fce80db fb_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x9fe939e1 mpi_powm +EXPORT_SYMBOL_GPL vmlinux 0x9ff5126b i2c_unregister_device +EXPORT_SYMBOL_GPL vmlinux 0xa006454d rt_mutex_timed_lock +EXPORT_SYMBOL_GPL vmlinux 0xa0293731 put_device +EXPORT_SYMBOL_GPL vmlinux 0xa05ce21e debugfs_create_u32_array +EXPORT_SYMBOL_GPL vmlinux 0xa064f393 ehci_cf_port_reset_rwsem +EXPORT_SYMBOL_GPL vmlinux 0xa0769d4b disk_map_sector_rcu +EXPORT_SYMBOL_GPL vmlinux 0xa08fc840 usb_sg_cancel +EXPORT_SYMBOL_GPL vmlinux 0xa09a328e usb_free_streams +EXPORT_SYMBOL_GPL vmlinux 0xa09feb83 sync_page_io +EXPORT_SYMBOL_GPL vmlinux 0xa0b5f3eb device_rename +EXPORT_SYMBOL_GPL vmlinux 0xa0d69b43 use_mm +EXPORT_SYMBOL_GPL vmlinux 0xa0e239bf xfrm_local_error +EXPORT_SYMBOL_GPL vmlinux 0xa0e3fa59 tpm_show_temp_deactivated +EXPORT_SYMBOL_GPL vmlinux 0xa0f0703c tty_ldisc_ref +EXPORT_SYMBOL_GPL vmlinux 0xa0fbb760 devres_release_group +EXPORT_SYMBOL_GPL vmlinux 0xa11216be xen_store_domain_type +EXPORT_SYMBOL_GPL vmlinux 0xa147851b virtqueue_kick_prepare +EXPORT_SYMBOL_GPL vmlinux 0xa1511a83 tpm_show_active +EXPORT_SYMBOL_GPL vmlinux 0xa157b9c7 do_unregister_con_driver +EXPORT_SYMBOL_GPL vmlinux 0xa178737f spi_unregister_master +EXPORT_SYMBOL_GPL vmlinux 0xa19c2ad0 unix_peer_get +EXPORT_SYMBOL_GPL vmlinux 0xa1b8ab18 flush_kthread_worker +EXPORT_SYMBOL_GPL vmlinux 0xa1bd7822 __tracepoint_block_bio_complete +EXPORT_SYMBOL_GPL vmlinux 0xa20a30ad dev_pm_get_subsys_data +EXPORT_SYMBOL_GPL vmlinux 0xa21a3fd1 ata_bmdma_error_handler +EXPORT_SYMBOL_GPL vmlinux 0xa21dc09c i2c_lock_adapter +EXPORT_SYMBOL_GPL vmlinux 0xa21e3b2d pm_runtime_forbid +EXPORT_SYMBOL_GPL vmlinux 0xa23d4e6c __put_net +EXPORT_SYMBOL_GPL vmlinux 0xa26d9b4f workqueue_congested +EXPORT_SYMBOL_GPL vmlinux 0xa2708005 tpm_dev_vendor_release +EXPORT_SYMBOL_GPL vmlinux 0xa284c225 simple_attr_open +EXPORT_SYMBOL_GPL vmlinux 0xa286a234 snd_pcm_format_name +EXPORT_SYMBOL_GPL vmlinux 0xa2932476 pinctrl_force_default +EXPORT_SYMBOL_GPL vmlinux 0xa2bf6d45 __dma_request_channel +EXPORT_SYMBOL_GPL vmlinux 0xa2d3c79b __clocksource_updatefreq_scale +EXPORT_SYMBOL_GPL vmlinux 0xa2dee7f6 cpuidle_enable_device +EXPORT_SYMBOL_GPL vmlinux 0xa2e935ad __mmu_notifier_invalidate_range_end +EXPORT_SYMBOL_GPL vmlinux 0xa318f68d ata_pci_device_resume +EXPORT_SYMBOL_GPL vmlinux 0xa345322b twl6040_get_clk_id +EXPORT_SYMBOL_GPL vmlinux 0xa346db69 led_classdev_register +EXPORT_SYMBOL_GPL vmlinux 0xa353fffc xenbus_rm +EXPORT_SYMBOL_GPL vmlinux 0xa3713f04 devres_remove_group +EXPORT_SYMBOL_GPL vmlinux 0xa38602cd drain_workqueue +EXPORT_SYMBOL_GPL vmlinux 0xa389a49a profile_event_register +EXPORT_SYMBOL_GPL vmlinux 0xa3a04602 btree_geo64 +EXPORT_SYMBOL_GPL vmlinux 0xa3bbcc14 mtd_panic_write +EXPORT_SYMBOL_GPL vmlinux 0xa3d9a18b mdio_mux_init +EXPORT_SYMBOL_GPL vmlinux 0xa3e7c113 ring_buffer_iter_peek +EXPORT_SYMBOL_GPL vmlinux 0xa3e8448a snd_dmaengine_pcm_open_request_chan +EXPORT_SYMBOL_GPL vmlinux 0xa40fc8fd bus_set_iommu +EXPORT_SYMBOL_GPL vmlinux 0xa430cad8 usb_bulk_msg +EXPORT_SYMBOL_GPL vmlinux 0xa4346720 ata_bmdma_status +EXPORT_SYMBOL_GPL vmlinux 0xa44becb9 crypto_unregister_shash +EXPORT_SYMBOL_GPL vmlinux 0xa452f2a4 xen_pirq_from_irq +EXPORT_SYMBOL_GPL vmlinux 0xa48196c8 kdb_poll_idx +EXPORT_SYMBOL_GPL vmlinux 0xa49714f9 spi_master_suspend +EXPORT_SYMBOL_GPL vmlinux 0xa4c557f5 devm_rtc_device_register +EXPORT_SYMBOL_GPL vmlinux 0xa4ea04ee of_property_read_u64 +EXPORT_SYMBOL_GPL vmlinux 0xa52df4c0 omap_control_usb3_phy_power +EXPORT_SYMBOL_GPL vmlinux 0xa52eb82d spi_bus_unlock +EXPORT_SYMBOL_GPL vmlinux 0xa566215a init_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0xa57b80ef omap_dm_timer_set_int_enable +EXPORT_SYMBOL_GPL vmlinux 0xa5ace281 page_cache_async_readahead +EXPORT_SYMBOL_GPL vmlinux 0xa5bd9bc3 sec_reg_read +EXPORT_SYMBOL_GPL vmlinux 0xa5efbf4c async_synchronize_full +EXPORT_SYMBOL_GPL vmlinux 0xa5fe16b7 inet_csk_addr2sockaddr +EXPORT_SYMBOL_GPL vmlinux 0xa606c537 ata_bmdma_irq_clear +EXPORT_SYMBOL_GPL vmlinux 0xa61b1477 tracepoint_iter_start +EXPORT_SYMBOL_GPL vmlinux 0xa625110d kmsg_dump_rewind +EXPORT_SYMBOL_GPL vmlinux 0xa63f6dde device_create +EXPORT_SYMBOL_GPL vmlinux 0xa6500f53 dm_disk +EXPORT_SYMBOL_GPL vmlinux 0xa6594931 device_destroy +EXPORT_SYMBOL_GPL vmlinux 0xa69b13bf add_to_page_cache_lru +EXPORT_SYMBOL_GPL vmlinux 0xa6a0a273 max77693_write_reg +EXPORT_SYMBOL_GPL vmlinux 0xa6aa5b91 ata_wait_register +EXPORT_SYMBOL_GPL vmlinux 0xa6b21ef2 dpm_suspend_end +EXPORT_SYMBOL_GPL vmlinux 0xa6e1867f led_trigger_store +EXPORT_SYMBOL_GPL vmlinux 0xa6e1a69d kick_all_cpus_sync +EXPORT_SYMBOL_GPL vmlinux 0xa701218e snd_soc_dai_set_fmt +EXPORT_SYMBOL_GPL vmlinux 0xa7058a1e usb_get_urb +EXPORT_SYMBOL_GPL vmlinux 0xa70f4ba0 snd_soc_add_platform +EXPORT_SYMBOL_GPL vmlinux 0xa724257f init_uts_ns +EXPORT_SYMBOL_GPL vmlinux 0xa738d56b pm_generic_resume_noirq +EXPORT_SYMBOL_GPL vmlinux 0xa75312bc call_rcu_sched +EXPORT_SYMBOL_GPL vmlinux 0xa75d3945 crypto_larval_alloc +EXPORT_SYMBOL_GPL vmlinux 0xa765a6cb xenbus_read_otherend_details +EXPORT_SYMBOL_GPL vmlinux 0xa7747cd2 add_mtd_blktrans_dev +EXPORT_SYMBOL_GPL vmlinux 0xa7e20df3 clk_mux_ops +EXPORT_SYMBOL_GPL vmlinux 0xa7eb4e26 snd_soc_dpcm_can_be_params +EXPORT_SYMBOL_GPL vmlinux 0xa7f92105 add_uevent_var +EXPORT_SYMBOL_GPL vmlinux 0xa811aa5a raw_seq_start +EXPORT_SYMBOL_GPL vmlinux 0xa835f048 wm8400_block_read +EXPORT_SYMBOL_GPL vmlinux 0xa8442d9c adp5520_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0xa851973a raw_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xa860d754 virtqueue_get_vring_size +EXPORT_SYMBOL_GPL vmlinux 0xa86ed0bd security_inode_setattr +EXPORT_SYMBOL_GPL vmlinux 0xa880b8d5 regulator_list_voltage_linear +EXPORT_SYMBOL_GPL vmlinux 0xa89e02a8 snd_soc_remove_platform +EXPORT_SYMBOL_GPL vmlinux 0xa8e28005 tty_perform_flush +EXPORT_SYMBOL_GPL vmlinux 0xa8e98132 btree_visitor +EXPORT_SYMBOL_GPL vmlinux 0xa8f59416 gpio_direction_output +EXPORT_SYMBOL_GPL vmlinux 0xa91c2812 edac_get_sysfs_subsys +EXPORT_SYMBOL_GPL vmlinux 0xa92fa72a sdhci_pltfm_pmops +EXPORT_SYMBOL_GPL vmlinux 0xa93aadd8 ata_ehi_push_desc +EXPORT_SYMBOL_GPL vmlinux 0xa95936ab tps65912_reg_read +EXPORT_SYMBOL_GPL vmlinux 0xa9683574 subsys_system_register +EXPORT_SYMBOL_GPL vmlinux 0xa9a0c1e9 opp_init_cpufreq_table +EXPORT_SYMBOL_GPL vmlinux 0xa9a82042 gnttab_trans_grants_available +EXPORT_SYMBOL_GPL vmlinux 0xa9b46c4b regulator_get_voltage_sel_regmap +EXPORT_SYMBOL_GPL vmlinux 0xa9b7df25 spi_alloc_device +EXPORT_SYMBOL_GPL vmlinux 0xa9bea7ad usb_hcd_unmap_urb_for_dma +EXPORT_SYMBOL_GPL vmlinux 0xa9c29643 __sock_recv_timestamp +EXPORT_SYMBOL_GPL vmlinux 0xa9e18049 task_handoff_unregister +EXPORT_SYMBOL_GPL vmlinux 0xa9ed95f1 snd_soc_get_enum_double +EXPORT_SYMBOL_GPL vmlinux 0xa9f90a05 devm_remove_action +EXPORT_SYMBOL_GPL vmlinux 0xa9fc3f54 gnttab_grant_foreign_access_trans +EXPORT_SYMBOL_GPL vmlinux 0xaa055287 sysfs_merge_group +EXPORT_SYMBOL_GPL vmlinux 0xaa2a72bf __iowrite64_copy +EXPORT_SYMBOL_GPL vmlinux 0xaa44acff omap_tll_disable +EXPORT_SYMBOL_GPL vmlinux 0xaa4e31bd fat_attach +EXPORT_SYMBOL_GPL vmlinux 0xaa516096 irq_gc_mask_set_bit +EXPORT_SYMBOL_GPL vmlinux 0xaa5bf88b regmap_bulk_write +EXPORT_SYMBOL_GPL vmlinux 0xaa849c4a ata_bmdma_port_start32 +EXPORT_SYMBOL_GPL vmlinux 0xaa908108 device_add +EXPORT_SYMBOL_GPL vmlinux 0xaaa20d5a device_schedule_callback_owner +EXPORT_SYMBOL_GPL vmlinux 0xaaa918c9 ftrace_dump +EXPORT_SYMBOL_GPL vmlinux 0xaab45034 alarm_forward_now +EXPORT_SYMBOL_GPL vmlinux 0xaab6aaba xfrm_inner_extract_output +EXPORT_SYMBOL_GPL vmlinux 0xaafb5ef5 snd_dmaengine_pcm_register +EXPORT_SYMBOL_GPL vmlinux 0xaaff89e9 wm831x_reg_unlock +EXPORT_SYMBOL_GPL vmlinux 0xab01acbe gnttab_request_free_callback +EXPORT_SYMBOL_GPL vmlinux 0xab18e6bd scatterwalk_map +EXPORT_SYMBOL_GPL vmlinux 0xab6babaf pm_qos_request +EXPORT_SYMBOL_GPL vmlinux 0xab88fe34 regmap_bulk_read +EXPORT_SYMBOL_GPL vmlinux 0xab8ceced gnttab_batch_copy +EXPORT_SYMBOL_GPL vmlinux 0xab8e5693 blkcipher_walk_virt_block +EXPORT_SYMBOL_GPL vmlinux 0xab93fbc3 md_do_sync +EXPORT_SYMBOL_GPL vmlinux 0xabda1e2e decode_rs16 +EXPORT_SYMBOL_GPL vmlinux 0xabf237a1 mtd_read_user_prot_reg +EXPORT_SYMBOL_GPL vmlinux 0xac24ab26 usb_unanchor_urb +EXPORT_SYMBOL_GPL vmlinux 0xac4c2e1a nfq_ct_nat_hook +EXPORT_SYMBOL_GPL vmlinux 0xac6dd63a device_for_each_child +EXPORT_SYMBOL_GPL vmlinux 0xac8212e1 rtc_set_time +EXPORT_SYMBOL_GPL vmlinux 0xac9c9440 device_create_with_groups +EXPORT_SYMBOL_GPL vmlinux 0xacaa92c9 ahash_attr_alg +EXPORT_SYMBOL_GPL vmlinux 0xacaef63e omap_control_usb_phy_power +EXPORT_SYMBOL_GPL vmlinux 0xacb2f2c0 led_classdev_suspend +EXPORT_SYMBOL_GPL vmlinux 0xacd0effd snd_soc_put_enum_double +EXPORT_SYMBOL_GPL vmlinux 0xacded53d ata_sff_check_status +EXPORT_SYMBOL_GPL vmlinux 0xace2b7b7 kick_process +EXPORT_SYMBOL_GPL vmlinux 0xace5c0fc usb_bus_list +EXPORT_SYMBOL_GPL vmlinux 0xacef520a ip6_update_pmtu +EXPORT_SYMBOL_GPL vmlinux 0xad2ab7a0 xenbus_dev_fatal +EXPORT_SYMBOL_GPL vmlinux 0xad3ce949 evm_verifyxattr +EXPORT_SYMBOL_GPL vmlinux 0xad565ac4 rtc_set_alarm +EXPORT_SYMBOL_GPL vmlinux 0xad5a6715 clk_prepare +EXPORT_SYMBOL_GPL vmlinux 0xad6bfb1d cpufreq_cooling_unregister +EXPORT_SYMBOL_GPL vmlinux 0xada38534 regulator_bulk_disable +EXPORT_SYMBOL_GPL vmlinux 0xadaeb497 twl6040_hs_jack_detect +EXPORT_SYMBOL_GPL vmlinux 0xadc18897 i2c_new_probed_device +EXPORT_SYMBOL_GPL vmlinux 0xadc785ec kgdb_register_io_module +EXPORT_SYMBOL_GPL vmlinux 0xadd178fc simple_attr_read +EXPORT_SYMBOL_GPL vmlinux 0xade23f99 snd_soc_update_bits_locked +EXPORT_SYMBOL_GPL vmlinux 0xade6cf37 ata_host_alloc +EXPORT_SYMBOL_GPL vmlinux 0xadf14eb7 fat_detach +EXPORT_SYMBOL_GPL vmlinux 0xadf6aa4d tpm_pcr_read +EXPORT_SYMBOL_GPL vmlinux 0xae0f6b4e regulator_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0xae3641b3 dev_pm_qos_expose_flags +EXPORT_SYMBOL_GPL vmlinux 0xae4223f1 md_run +EXPORT_SYMBOL_GPL vmlinux 0xae51a1f0 relay_open +EXPORT_SYMBOL_GPL vmlinux 0xae69b1c1 usermodehelper_read_unlock +EXPORT_SYMBOL_GPL vmlinux 0xae7c231d mpi_cmp +EXPORT_SYMBOL_GPL vmlinux 0xae80515d inet6_lookup +EXPORT_SYMBOL_GPL vmlinux 0xae882d9d fib_rules_lookup +EXPORT_SYMBOL_GPL vmlinux 0xaebdf584 get_net_ns_by_pid +EXPORT_SYMBOL_GPL vmlinux 0xaedd8f18 usb_register_dev +EXPORT_SYMBOL_GPL vmlinux 0xaf03442a __pci_complete_power_transition +EXPORT_SYMBOL_GPL vmlinux 0xaf0489d9 pingv6_prot +EXPORT_SYMBOL_GPL vmlinux 0xaf0db4e7 snd_pcm_lib_default_mmap +EXPORT_SYMBOL_GPL vmlinux 0xaf1f46fc key_set_timeout +EXPORT_SYMBOL_GPL vmlinux 0xaf348da7 cpu_pm_exit +EXPORT_SYMBOL_GPL vmlinux 0xaf473d56 regmap_check_range_table +EXPORT_SYMBOL_GPL vmlinux 0xaf497dcb get_device +EXPORT_SYMBOL_GPL vmlinux 0xaf609a8f platform_device_add_resources +EXPORT_SYMBOL_GPL vmlinux 0xaf8c005f snd_soc_dpcm_fe_can_update +EXPORT_SYMBOL_GPL vmlinux 0xaf90477e cpufreq_register_driver +EXPORT_SYMBOL_GPL vmlinux 0xafb78a74 fb_deferred_io_open +EXPORT_SYMBOL_GPL vmlinux 0xafbc74a4 rtc_irq_set_freq +EXPORT_SYMBOL_GPL vmlinux 0xafded7ef pid_vnr +EXPORT_SYMBOL_GPL vmlinux 0xafe54dc7 rtc_irq_set_state +EXPORT_SYMBOL_GPL vmlinux 0xafeda390 sysfs_rename_link +EXPORT_SYMBOL_GPL vmlinux 0xb005f106 ip_local_out +EXPORT_SYMBOL_GPL vmlinux 0xb01ed6b8 skb_tstamp_tx +EXPORT_SYMBOL_GPL vmlinux 0xb02597ef screen_glyph +EXPORT_SYMBOL_GPL vmlinux 0xb025e2a7 pwm_put +EXPORT_SYMBOL_GPL vmlinux 0xb02ac411 register_xenstore_notifier +EXPORT_SYMBOL_GPL vmlinux 0xb050f329 init_rs +EXPORT_SYMBOL_GPL vmlinux 0xb05102d2 crypto_ahash_final +EXPORT_SYMBOL_GPL vmlinux 0xb076404e md_allow_write +EXPORT_SYMBOL_GPL vmlinux 0xb081dc87 platform_create_bundle +EXPORT_SYMBOL_GPL vmlinux 0xb094c756 blk_queue_bio +EXPORT_SYMBOL_GPL vmlinux 0xb0b85f47 ring_buffer_iter_reset +EXPORT_SYMBOL_GPL vmlinux 0xb0ce6068 pm_runtime_barrier +EXPORT_SYMBOL_GPL vmlinux 0xb0f2b49b iptunnel_pull_header +EXPORT_SYMBOL_GPL vmlinux 0xb10d55bc cn_netlink_send +EXPORT_SYMBOL_GPL vmlinux 0xb140d14c ring_buffer_read +EXPORT_SYMBOL_GPL vmlinux 0xb1425b32 dm_table_add_target_callbacks +EXPORT_SYMBOL_GPL vmlinux 0xb18429eb suspend_device_irqs +EXPORT_SYMBOL_GPL vmlinux 0xb1a6faa2 inet_twsk_purge +EXPORT_SYMBOL_GPL vmlinux 0xb1acbcce rcu_barrier_sched +EXPORT_SYMBOL_GPL vmlinux 0xb1be73e5 tty_wakeup +EXPORT_SYMBOL_GPL vmlinux 0xb1bed25d dpm_resume_start +EXPORT_SYMBOL_GPL vmlinux 0xb1c0c1c2 async_schedule_domain +EXPORT_SYMBOL_GPL vmlinux 0xb1d3b4ba crypto_register_pcomp +EXPORT_SYMBOL_GPL vmlinux 0xb1e25684 __trace_bputs +EXPORT_SYMBOL_GPL vmlinux 0xb1f85559 ata_dev_next +EXPORT_SYMBOL_GPL vmlinux 0xb2210d64 reset_control_deassert +EXPORT_SYMBOL_GPL vmlinux 0xb22f7ce9 ehci_suspend +EXPORT_SYMBOL_GPL vmlinux 0xb27388bc snd_soc_dapm_new_controls +EXPORT_SYMBOL_GPL vmlinux 0xb2a12f6f inet_twsk_schedule +EXPORT_SYMBOL_GPL vmlinux 0xb2a9aee7 tegra_ehci_phy_restore_start +EXPORT_SYMBOL_GPL vmlinux 0xb2d46f08 pm_generic_restore_early +EXPORT_SYMBOL_GPL vmlinux 0xb2dbe7e3 dm_set_target_max_io_len +EXPORT_SYMBOL_GPL vmlinux 0xb2e4e8ba irq_domain_simple_ops +EXPORT_SYMBOL_GPL vmlinux 0xb2e764e8 suspend_valid_only_mem +EXPORT_SYMBOL_GPL vmlinux 0xb2ece604 class_compat_remove_link +EXPORT_SYMBOL_GPL vmlinux 0xb33598a0 sata_pmp_port_ops +EXPORT_SYMBOL_GPL vmlinux 0xb350f190 clk_set_parent +EXPORT_SYMBOL_GPL vmlinux 0xb38c8a0c scsi_get_vpd_page +EXPORT_SYMBOL_GPL vmlinux 0xb3bee4a9 __pm_runtime_set_status +EXPORT_SYMBOL_GPL vmlinux 0xb3d34b9d reset_control_get +EXPORT_SYMBOL_GPL vmlinux 0xb3de2c7a da9052_request_irq +EXPORT_SYMBOL_GPL vmlinux 0xb3f199c6 snd_soc_get_strobe +EXPORT_SYMBOL_GPL vmlinux 0xb3faad9b omap_dm_timer_set_pwm +EXPORT_SYMBOL_GPL vmlinux 0xb4207d88 irq_create_strict_mappings +EXPORT_SYMBOL_GPL vmlinux 0xb43fd35b pinctrl_get +EXPORT_SYMBOL_GPL vmlinux 0xb4b97c90 pvclock_gtod_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0xb4cf0322 btree_lookup +EXPORT_SYMBOL_GPL vmlinux 0xb4e14553 gnttab_query_foreign_access +EXPORT_SYMBOL_GPL vmlinux 0xb4e5fc05 alarm_try_to_cancel +EXPORT_SYMBOL_GPL vmlinux 0xb4ea7cf7 kgdb_connected +EXPORT_SYMBOL_GPL vmlinux 0xb4f3e54e mddev_resume +EXPORT_SYMBOL_GPL vmlinux 0xb4f703c7 pci_sriov_migration +EXPORT_SYMBOL_GPL vmlinux 0xb5118bcc wm8350_gpio_config +EXPORT_SYMBOL_GPL vmlinux 0xb5118fc6 platform_get_irq_byname +EXPORT_SYMBOL_GPL vmlinux 0xb5163009 usb_altnum_to_altsetting +EXPORT_SYMBOL_GPL vmlinux 0xb51fbd64 edac_op_state +EXPORT_SYMBOL_GPL vmlinux 0xb53620d1 pci_vpd_find_info_keyword +EXPORT_SYMBOL_GPL vmlinux 0xb55c0ce9 dev_pm_qos_hide_flags +EXPORT_SYMBOL_GPL vmlinux 0xb56c4804 crypto_rng_type +EXPORT_SYMBOL_GPL vmlinux 0xb5777db7 extcon_dev_register +EXPORT_SYMBOL_GPL vmlinux 0xb58dcfa2 synchronize_sched_expedited +EXPORT_SYMBOL_GPL vmlinux 0xb5a0e11e lpddr2_jedec_addressing_table +EXPORT_SYMBOL_GPL vmlinux 0xb5cb8145 hrtimer_get_res +EXPORT_SYMBOL_GPL vmlinux 0xb5e896fb tpm_get_random +EXPORT_SYMBOL_GPL vmlinux 0xb5f17edf perf_register_guest_info_callbacks +EXPORT_SYMBOL_GPL vmlinux 0xb5ff8439 crypto_alloc_shash +EXPORT_SYMBOL_GPL vmlinux 0xb603486b lp8788_update_bits +EXPORT_SYMBOL_GPL vmlinux 0xb6230f1f gnttab_grant_foreign_access +EXPORT_SYMBOL_GPL vmlinux 0xb6261484 register_die_notifier +EXPORT_SYMBOL_GPL vmlinux 0xb67b2219 cm_suspend_again +EXPORT_SYMBOL_GPL vmlinux 0xb67c64fd __tracepoint_kfree_skb +EXPORT_SYMBOL_GPL vmlinux 0xb68868a9 fuse_get_req_for_background +EXPORT_SYMBOL_GPL vmlinux 0xb6a1e5f8 inet6_csk_addr2sockaddr +EXPORT_SYMBOL_GPL vmlinux 0xb6a47fb4 clockevent_delta2ns +EXPORT_SYMBOL_GPL vmlinux 0xb6aeb661 ata_id_c_string +EXPORT_SYMBOL_GPL vmlinux 0xb6b3d2ed wm831x_reg_write +EXPORT_SYMBOL_GPL vmlinux 0xb6bcd521 devm_clk_register +EXPORT_SYMBOL_GPL vmlinux 0xb6c635af wm5110_i2c_regmap +EXPORT_SYMBOL_GPL vmlinux 0xb6e80a65 max8997_bulk_write +EXPORT_SYMBOL_GPL vmlinux 0xb70f8bae fsstack_copy_attr_all +EXPORT_SYMBOL_GPL vmlinux 0xb73c18a0 ata_host_alloc_pinfo +EXPORT_SYMBOL_GPL vmlinux 0xb73e8906 platform_device_add +EXPORT_SYMBOL_GPL vmlinux 0xb7665d73 shash_attr_alg +EXPORT_SYMBOL_GPL vmlinux 0xb7955a3b fuse_file_poll +EXPORT_SYMBOL_GPL vmlinux 0xb7d6b04c tcp_init_congestion_ops +EXPORT_SYMBOL_GPL vmlinux 0xb7f77027 rtc_tm_to_ktime +EXPORT_SYMBOL_GPL vmlinux 0xb82566eb omap_tll_enable +EXPORT_SYMBOL_GPL vmlinux 0xb82cfde5 __put_mtd_device +EXPORT_SYMBOL_GPL vmlinux 0xb83549d5 xenbus_switch_state +EXPORT_SYMBOL_GPL vmlinux 0xb8369ebd find_get_pid +EXPORT_SYMBOL_GPL vmlinux 0xb84eff40 ata_bmdma_start +EXPORT_SYMBOL_GPL vmlinux 0xb85a8206 snd_soc_default_volatile_register +EXPORT_SYMBOL_GPL vmlinux 0xb8694ef2 imx_pcm_dma_exit +EXPORT_SYMBOL_GPL vmlinux 0xb872ede5 omap_mcpdm_configure_dn_offsets +EXPORT_SYMBOL_GPL vmlinux 0xb881f3ee tegra_usb_get_phy +EXPORT_SYMBOL_GPL vmlinux 0xb8864f8b dma_buf_get +EXPORT_SYMBOL_GPL vmlinux 0xb8e60333 inet6_hash_connect +EXPORT_SYMBOL_GPL vmlinux 0xb90a3a57 pwm_set_chip_data +EXPORT_SYMBOL_GPL vmlinux 0xb9176155 asn1_ber_decoder +EXPORT_SYMBOL_GPL vmlinux 0xb946a0b2 arizona_free_irq +EXPORT_SYMBOL_GPL vmlinux 0xb952176a usb_gadget_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0xb95a05da dma_buf_kunmap +EXPORT_SYMBOL_GPL vmlinux 0xb977935d subsys_virtual_register +EXPORT_SYMBOL_GPL vmlinux 0xb97df417 ci_hdrc_add_device +EXPORT_SYMBOL_GPL vmlinux 0xb99d5837 xenbus_read +EXPORT_SYMBOL_GPL vmlinux 0xb9a96493 blk_rq_prep_clone +EXPORT_SYMBOL_GPL vmlinux 0xb9af670b devres_add +EXPORT_SYMBOL_GPL vmlinux 0xb9b5fb21 devm_regmap_init +EXPORT_SYMBOL_GPL vmlinux 0xb9b9df41 usb_amd_dev_put +EXPORT_SYMBOL_GPL vmlinux 0xb9c425de register_syscore_ops +EXPORT_SYMBOL_GPL vmlinux 0xb9c5d22b usb_gadget_map_request +EXPORT_SYMBOL_GPL vmlinux 0xb9d025c9 llist_del_first +EXPORT_SYMBOL_GPL vmlinux 0xb9da2997 snmp_fold_field64 +EXPORT_SYMBOL_GPL vmlinux 0xb9f5c62b usb_hcd_platform_shutdown +EXPORT_SYMBOL_GPL vmlinux 0xba25f881 nfq_ct_hook +EXPORT_SYMBOL_GPL vmlinux 0xba2ffd93 rtc_alarm_irq_enable +EXPORT_SYMBOL_GPL vmlinux 0xba457d62 pinctrl_register +EXPORT_SYMBOL_GPL vmlinux 0xba4ad11c usb_store_new_id +EXPORT_SYMBOL_GPL vmlinux 0xba6d7441 arizona_of_get_type +EXPORT_SYMBOL_GPL vmlinux 0xba714e04 __pm_runtime_idle +EXPORT_SYMBOL_GPL vmlinux 0xba8e2d10 subsys_dev_iter_exit +EXPORT_SYMBOL_GPL vmlinux 0xba90cb07 sk_clear_memalloc +EXPORT_SYMBOL_GPL vmlinux 0xba97effd snd_soc_put_strobe +EXPORT_SYMBOL_GPL vmlinux 0xbaba43b5 gpiochip_remove_pin_ranges +EXPORT_SYMBOL_GPL vmlinux 0xbad5880b __pm_runtime_resume +EXPORT_SYMBOL_GPL vmlinux 0xbae754da debugfs_remove +EXPORT_SYMBOL_GPL vmlinux 0xbb038ce4 perf_unregister_guest_info_callbacks +EXPORT_SYMBOL_GPL vmlinux 0xbb0ab47b debug_locks +EXPORT_SYMBOL_GPL vmlinux 0xbb0d0576 regmap_update_bits +EXPORT_SYMBOL_GPL vmlinux 0xbb0ecc05 spi_add_device +EXPORT_SYMBOL_GPL vmlinux 0xbb0fe688 ata_sff_wait_ready +EXPORT_SYMBOL_GPL vmlinux 0xbb11cfba klist_iter_exit +EXPORT_SYMBOL_GPL vmlinux 0xbb19b638 dev_attr_sw_activity +EXPORT_SYMBOL_GPL vmlinux 0xbb3154c4 rtc_class_close +EXPORT_SYMBOL_GPL vmlinux 0xbb93c3d8 pci_walk_bus +EXPORT_SYMBOL_GPL vmlinux 0xbbc5a6ea tcp_death_row +EXPORT_SYMBOL_GPL vmlinux 0xbc41ecbb usb_control_msg +EXPORT_SYMBOL_GPL vmlinux 0xbc624c48 snd_soc_dpcm_be_set_state +EXPORT_SYMBOL_GPL vmlinux 0xbc67ec6e uart_handle_dcd_change +EXPORT_SYMBOL_GPL vmlinux 0xbc72a22e da903x_read +EXPORT_SYMBOL_GPL vmlinux 0xbc74ad00 sata_scr_valid +EXPORT_SYMBOL_GPL vmlinux 0xbc755e8c ahci_save_initial_config +EXPORT_SYMBOL_GPL vmlinux 0xbc7d80d9 snd_hwparams_to_dma_slave_config +EXPORT_SYMBOL_GPL vmlinux 0xbca106fd sdhci_runtime_suspend_host +EXPORT_SYMBOL_GPL vmlinux 0xbcac6160 pm_qos_remove_notifier +EXPORT_SYMBOL_GPL vmlinux 0xbcaf3971 crypto_alg_sem +EXPORT_SYMBOL_GPL vmlinux 0xbcb4cb68 alloc_page_buffers +EXPORT_SYMBOL_GPL vmlinux 0xbcbaa80a __wake_up_locked_key +EXPORT_SYMBOL_GPL vmlinux 0xbcc7e196 ata_pci_bmdma_init_one +EXPORT_SYMBOL_GPL vmlinux 0xbccfd4d8 register_oldmem_pfn_is_ram +EXPORT_SYMBOL_GPL vmlinux 0xbcdc7471 ipv6_opt_accepted +EXPORT_SYMBOL_GPL vmlinux 0xbcdd5b99 iommu_group_set_name +EXPORT_SYMBOL_GPL vmlinux 0xbcf89ab6 __wake_up_sync +EXPORT_SYMBOL_GPL vmlinux 0xbd069781 register_kretprobes +EXPORT_SYMBOL_GPL vmlinux 0xbd1f3a54 power_supply_powers +EXPORT_SYMBOL_GPL vmlinux 0xbd31fa9a pci_disable_pcie_error_reporting +EXPORT_SYMBOL_GPL vmlinux 0xbd4c7d8b pci_ioremap_io +EXPORT_SYMBOL_GPL vmlinux 0xbd5cb8b9 ring_buffer_resize +EXPORT_SYMBOL_GPL vmlinux 0xbd6c1635 ip_build_and_send_pkt +EXPORT_SYMBOL_GPL vmlinux 0xbdd1454e pci_set_pcie_reset_state +EXPORT_SYMBOL_GPL vmlinux 0xbdd24c9b snd_soc_dapm_info_pin_switch +EXPORT_SYMBOL_GPL vmlinux 0xbdd295f0 trace_vprintk +EXPORT_SYMBOL_GPL vmlinux 0xbdd2f42a rcu_bh_force_quiescent_state +EXPORT_SYMBOL_GPL vmlinux 0xbde2b42c snd_soc_unregister_component +EXPORT_SYMBOL_GPL vmlinux 0xbdf512de free_bch +EXPORT_SYMBOL_GPL vmlinux 0xbe1887e4 ata_unpack_xfermask +EXPORT_SYMBOL_GPL vmlinux 0xbe2e262a __pci_reset_function_locked +EXPORT_SYMBOL_GPL vmlinux 0xbe575799 iptunnel_xmit +EXPORT_SYMBOL_GPL vmlinux 0xbe912ef9 xenbus_watch_path +EXPORT_SYMBOL_GPL vmlinux 0xbe98086e clk_unregister +EXPORT_SYMBOL_GPL vmlinux 0xbebdf621 vfs_kern_mount +EXPORT_SYMBOL_GPL vmlinux 0xbec06715 ata_sff_queue_pio_task +EXPORT_SYMBOL_GPL vmlinux 0xbecc4033 ahci_start_engine +EXPORT_SYMBOL_GPL vmlinux 0xbedfa876 tcp_twsk_destructor +EXPORT_SYMBOL_GPL vmlinux 0xbef7e1c8 tpm_pm_resume +EXPORT_SYMBOL_GPL vmlinux 0xbefbfc22 part_round_stats +EXPORT_SYMBOL_GPL vmlinux 0xbf034591 crypto_init_shash_spawn +EXPORT_SYMBOL_GPL vmlinux 0xbf03522c mnt_want_write +EXPORT_SYMBOL_GPL vmlinux 0xbf041102 register_vt_notifier +EXPORT_SYMBOL_GPL vmlinux 0xbf1d0256 hypervisor_kobj +EXPORT_SYMBOL_GPL vmlinux 0xbf37b920 pm_generic_poweroff_noirq +EXPORT_SYMBOL_GPL vmlinux 0xbf630dc9 pinctrl_lookup_state +EXPORT_SYMBOL_GPL vmlinux 0xbf7d7173 crypto_init_spawn +EXPORT_SYMBOL_GPL vmlinux 0xbf7dfc78 exportfs_decode_fh +EXPORT_SYMBOL_GPL vmlinux 0xbf8ea95c security_inode_mkdir +EXPORT_SYMBOL_GPL vmlinux 0xbf9f1111 opp_find_freq_exact +EXPORT_SYMBOL_GPL vmlinux 0xbfa055cd usb_hcd_pci_probe +EXPORT_SYMBOL_GPL vmlinux 0xbfbc5434 pciserial_resume_ports +EXPORT_SYMBOL_GPL vmlinux 0xbfe3c99a blk_trace_setup +EXPORT_SYMBOL_GPL vmlinux 0xbfe87f35 snd_soc_dapm_weak_routes +EXPORT_SYMBOL_GPL vmlinux 0xbffbcf73 iommu_domain_window_disable +EXPORT_SYMBOL_GPL vmlinux 0xc00131cf visitor64 +EXPORT_SYMBOL_GPL vmlinux 0xc0133a7f do_take_over_console +EXPORT_SYMBOL_GPL vmlinux 0xc014cbda get_kernel_page +EXPORT_SYMBOL_GPL vmlinux 0xc0795c5d dev_pm_put_subsys_data +EXPORT_SYMBOL_GPL vmlinux 0xc08647ff ring_buffer_bytes_cpu +EXPORT_SYMBOL_GPL vmlinux 0xc0907565 mtd_write +EXPORT_SYMBOL_GPL vmlinux 0xc0abfcba elv_register +EXPORT_SYMBOL_GPL vmlinux 0xc0b3e7d0 pci_create_slot +EXPORT_SYMBOL_GPL vmlinux 0xc0b78727 serial8250_tx_dma +EXPORT_SYMBOL_GPL vmlinux 0xc0bf6ead timecounter_cyc2time +EXPORT_SYMBOL_GPL vmlinux 0xc0d26387 kmsg_dump_unregister +EXPORT_SYMBOL_GPL vmlinux 0xc0dbeae2 snd_soc_put_volsw +EXPORT_SYMBOL_GPL vmlinux 0xc0e75cec visitor128 +EXPORT_SYMBOL_GPL vmlinux 0xc0f503db usb_alloc_coherent +EXPORT_SYMBOL_GPL vmlinux 0xc10b2e80 get_pid_task +EXPORT_SYMBOL_GPL vmlinux 0xc10ff5e8 ata_sff_qc_issue +EXPORT_SYMBOL_GPL vmlinux 0xc11b4470 balloon_stats +EXPORT_SYMBOL_GPL vmlinux 0xc11bd00f tracepoint_probe_unregister +EXPORT_SYMBOL_GPL vmlinux 0xc1371ffd mtd_get_user_prot_info +EXPORT_SYMBOL_GPL vmlinux 0xc159e7c5 ata_sas_slave_configure +EXPORT_SYMBOL_GPL vmlinux 0xc164642e xenbus_otherend_changed +EXPORT_SYMBOL_GPL vmlinux 0xc17515d7 usb_hcds_loaded +EXPORT_SYMBOL_GPL vmlinux 0xc1856a66 bus_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0xc18578ed process_srcu +EXPORT_SYMBOL_GPL vmlinux 0xc196dd74 opp_find_freq_ceil +EXPORT_SYMBOL_GPL vmlinux 0xc1aa9983 device_init_wakeup +EXPORT_SYMBOL_GPL vmlinux 0xc1edfeea usb_for_each_dev +EXPORT_SYMBOL_GPL vmlinux 0xc1fb7e7f blkg_stat_recursive_sum +EXPORT_SYMBOL_GPL vmlinux 0xc2007c14 pwm_set_polarity +EXPORT_SYMBOL_GPL vmlinux 0xc22a3091 vm_unmap_aliases +EXPORT_SYMBOL_GPL vmlinux 0xc232e591 crypto_register_template +EXPORT_SYMBOL_GPL vmlinux 0xc23ccd5b sync_filesystem +EXPORT_SYMBOL_GPL vmlinux 0xc26351f8 bind_evtchn_to_irq +EXPORT_SYMBOL_GPL vmlinux 0xc268b823 ci_hdrc_remove_device +EXPORT_SYMBOL_GPL vmlinux 0xc26ff688 usb_queue_reset_device +EXPORT_SYMBOL_GPL vmlinux 0xc280fb46 kdb_register +EXPORT_SYMBOL_GPL vmlinux 0xc2947026 clockevents_unbind +EXPORT_SYMBOL_GPL vmlinux 0xc2ab3ff7 tpm_pm_suspend +EXPORT_SYMBOL_GPL vmlinux 0xc2f61bf8 snd_soc_cache_read +EXPORT_SYMBOL_GPL vmlinux 0xc311d449 devm_regmap_field_alloc +EXPORT_SYMBOL_GPL vmlinux 0xc315327d pci_ioremap_bar +EXPORT_SYMBOL_GPL vmlinux 0xc32609f1 blkg_conf_finish +EXPORT_SYMBOL_GPL vmlinux 0xc3344c5a blkg_conf_prep +EXPORT_SYMBOL_GPL vmlinux 0xc341ae6d zs_map_object +EXPORT_SYMBOL_GPL vmlinux 0xc34efe27 snmp_fold_field +EXPORT_SYMBOL_GPL vmlinux 0xc35a9470 perf_tp_event +EXPORT_SYMBOL_GPL vmlinux 0xc37226a5 tpm_pcr_extend +EXPORT_SYMBOL_GPL vmlinux 0xc385cb58 perf_num_counters +EXPORT_SYMBOL_GPL vmlinux 0xc3a0b7b0 gnttab_map_refs +EXPORT_SYMBOL_GPL vmlinux 0xc3b93bba klist_next +EXPORT_SYMBOL_GPL vmlinux 0xc3f37986 mtd_del_partition +EXPORT_SYMBOL_GPL vmlinux 0xc4054f60 __mnt_is_readonly +EXPORT_SYMBOL_GPL vmlinux 0xc41e0178 btree_last +EXPORT_SYMBOL_GPL vmlinux 0xc42054ac omap_dm_timer_request_specific +EXPORT_SYMBOL_GPL vmlinux 0xc428068d sata_deb_timing_long +EXPORT_SYMBOL_GPL vmlinux 0xc4424c58 amba_device_alloc +EXPORT_SYMBOL_GPL vmlinux 0xc454fc7b twl_get_type +EXPORT_SYMBOL_GPL vmlinux 0xc471c67a twl4030_audio_disable_resource +EXPORT_SYMBOL_GPL vmlinux 0xc47acfdb sock_prot_inuse_add +EXPORT_SYMBOL_GPL vmlinux 0xc488827a dma_buf_detach +EXPORT_SYMBOL_GPL vmlinux 0xc48b7ccf ata_mode_string +EXPORT_SYMBOL_GPL vmlinux 0xc48f3e1e ping_err +EXPORT_SYMBOL_GPL vmlinux 0xc4a7349e __fib_lookup +EXPORT_SYMBOL_GPL vmlinux 0xc52a0060 arizona_request_irq +EXPORT_SYMBOL_GPL vmlinux 0xc537db4c pci_disable_pri +EXPORT_SYMBOL_GPL vmlinux 0xc5397da6 xenbus_mkdir +EXPORT_SYMBOL_GPL vmlinux 0xc53dff9f wm8994_set_bits +EXPORT_SYMBOL_GPL vmlinux 0xc554250a regulator_is_enabled_regmap +EXPORT_SYMBOL_GPL vmlinux 0xc56ffd5a snd_soc_of_parse_card_name +EXPORT_SYMBOL_GPL vmlinux 0xc575c737 debug_locks_off +EXPORT_SYMBOL_GPL vmlinux 0xc5920ee1 cpufreq_cpu_put +EXPORT_SYMBOL_GPL vmlinux 0xc5cb6f6f fat_time_unix2fat +EXPORT_SYMBOL_GPL vmlinux 0xc5d37180 ping_common_sendmsg +EXPORT_SYMBOL_GPL vmlinux 0xc5f7eabd crypto_alloc_base +EXPORT_SYMBOL_GPL vmlinux 0xc60f75ec __ftrace_vprintk +EXPORT_SYMBOL_GPL vmlinux 0xc617f82c unregister_oom_notifier +EXPORT_SYMBOL_GPL vmlinux 0xc63c94aa stmpe_set_bits +EXPORT_SYMBOL_GPL vmlinux 0xc65c2626 sysfs_chmod_file +EXPORT_SYMBOL_GPL vmlinux 0xc65d3eed ring_buffer_entries_cpu +EXPORT_SYMBOL_GPL vmlinux 0xc66b77b1 iommu_group_set_iommudata +EXPORT_SYMBOL_GPL vmlinux 0xc680d266 crypto_spawn_tfm +EXPORT_SYMBOL_GPL vmlinux 0xc68aa090 mod_delayed_work_on +EXPORT_SYMBOL_GPL vmlinux 0xc690866c irq_work_queue +EXPORT_SYMBOL_GPL vmlinux 0xc69b7ee5 zs_destroy_pool +EXPORT_SYMBOL_GPL vmlinux 0xc6f7572e sysfs_remove_file +EXPORT_SYMBOL_GPL vmlinux 0xc6fcbb0f snd_soc_dapm_put_volsw +EXPORT_SYMBOL_GPL vmlinux 0xc7002ac4 evtchn_make_refcounted +EXPORT_SYMBOL_GPL vmlinux 0xc700c5f3 blk_queue_bypass_end +EXPORT_SYMBOL_GPL vmlinux 0xc722dfc0 class_unregister +EXPORT_SYMBOL_GPL vmlinux 0xc728fdc1 devres_destroy +EXPORT_SYMBOL_GPL vmlinux 0xc72e1233 __trace_bprintk +EXPORT_SYMBOL_GPL vmlinux 0xc72f4f07 pci_assign_unassigned_bridge_resources +EXPORT_SYMBOL_GPL vmlinux 0xc7306da2 ahci_shost_attrs +EXPORT_SYMBOL_GPL vmlinux 0xc769b61a opp_get_voltage +EXPORT_SYMBOL_GPL vmlinux 0xc78bbc44 serial8250_rx_dma +EXPORT_SYMBOL_GPL vmlinux 0xc78c93f2 mddev_init +EXPORT_SYMBOL_GPL vmlinux 0xc79d6b00 regulator_get_bypass_regmap +EXPORT_SYMBOL_GPL vmlinux 0xc7a1840e llist_add_batch +EXPORT_SYMBOL_GPL vmlinux 0xc7a84425 kallsyms_on_each_symbol +EXPORT_SYMBOL_GPL vmlinux 0xc7c6391c mpi_set_buffer +EXPORT_SYMBOL_GPL vmlinux 0xc7d09445 usb_gadget_set_state +EXPORT_SYMBOL_GPL vmlinux 0xc7d40085 sdio_claim_irq +EXPORT_SYMBOL_GPL vmlinux 0xc7d57a61 iommu_set_fault_handler +EXPORT_SYMBOL_GPL vmlinux 0xc7e39bca ring_buffer_dropped_events_cpu +EXPORT_SYMBOL_GPL vmlinux 0xc7e7a73f ata_sff_postreset +EXPORT_SYMBOL_GPL vmlinux 0xc7f229a3 tty_port_register_device +EXPORT_SYMBOL_GPL vmlinux 0xc8269f94 snd_soc_params_to_frame_size +EXPORT_SYMBOL_GPL vmlinux 0xc827cef8 user_match +EXPORT_SYMBOL_GPL vmlinux 0xc8283e61 find_symbol +EXPORT_SYMBOL_GPL vmlinux 0xc87c1f84 ktime_get +EXPORT_SYMBOL_GPL vmlinux 0xc884baea mtd_read_oob +EXPORT_SYMBOL_GPL vmlinux 0xc8add232 ring_buffer_record_disable +EXPORT_SYMBOL_GPL vmlinux 0xc8b716db snd_soc_put_xr_sx +EXPORT_SYMBOL_GPL vmlinux 0xc8c0cbce __netpoll_setup +EXPORT_SYMBOL_GPL vmlinux 0xc8c7f23a snd_dmaengine_pcm_pointer +EXPORT_SYMBOL_GPL vmlinux 0xc8eb3e4f otg_ulpi_create +EXPORT_SYMBOL_GPL vmlinux 0xc900237d usb_enable_intel_xhci_ports +EXPORT_SYMBOL_GPL vmlinux 0xc91277a1 kgdb_schedule_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0xc954c772 wait_for_tpm_stat +EXPORT_SYMBOL_GPL vmlinux 0xc9561772 fb_destroy_modelist +EXPORT_SYMBOL_GPL vmlinux 0xc97d1140 cpufreq_cooling_get_level +EXPORT_SYMBOL_GPL vmlinux 0xc9cfa97f of_pci_range_parser_init +EXPORT_SYMBOL_GPL vmlinux 0xc9e429e4 put_mtd_device +EXPORT_SYMBOL_GPL vmlinux 0xc9ec4e21 free_percpu +EXPORT_SYMBOL_GPL vmlinux 0xc9edceb7 inet_csk_listen_stop +EXPORT_SYMBOL_GPL vmlinux 0xc9fa7d64 xenbus_dev_is_online +EXPORT_SYMBOL_GPL vmlinux 0xca3651c1 dma_buf_begin_cpu_access +EXPORT_SYMBOL_GPL vmlinux 0xca7d8764 kthread_freezable_should_stop +EXPORT_SYMBOL_GPL vmlinux 0xca81ea9a xenbus_transaction_end +EXPORT_SYMBOL_GPL vmlinux 0xca83f60f imx_pcm_dma_init +EXPORT_SYMBOL_GPL vmlinux 0xca84a5fb usb_add_gadget_udc +EXPORT_SYMBOL_GPL vmlinux 0xca85d8cf tracepoint_probe_update_all +EXPORT_SYMBOL_GPL vmlinux 0xcab72f70 ata_port_pbar_desc +EXPORT_SYMBOL_GPL vmlinux 0xcabe04de cpuidle_resume_and_unlock +EXPORT_SYMBOL_GPL vmlinux 0xcaeb17bc devres_get +EXPORT_SYMBOL_GPL vmlinux 0xcafb1636 udp6_lib_lookup +EXPORT_SYMBOL_GPL vmlinux 0xcb0b5e8e of_display_timings_exist +EXPORT_SYMBOL_GPL vmlinux 0xcb15eee9 sdhci_pci_get_data +EXPORT_SYMBOL_GPL vmlinux 0xcb356577 xattr_getsecurity +EXPORT_SYMBOL_GPL vmlinux 0xcb428668 pci_pri_status +EXPORT_SYMBOL_GPL vmlinux 0xcb469d2b ddebug_add_module +EXPORT_SYMBOL_GPL vmlinux 0xcb6f976c mtd_table_mutex +EXPORT_SYMBOL_GPL vmlinux 0xcb8050c2 __netpoll_cleanup +EXPORT_SYMBOL_GPL vmlinux 0xcb992a20 __ata_change_queue_depth +EXPORT_SYMBOL_GPL vmlinux 0xcbb491f0 platform_device_register +EXPORT_SYMBOL_GPL vmlinux 0xcbee20b2 get_cpu_iowait_time_us +EXPORT_SYMBOL_GPL vmlinux 0xcbf7bef5 blkcg_policy_unregister +EXPORT_SYMBOL_GPL vmlinux 0xcc1ce884 blkcipher_walk_phys +EXPORT_SYMBOL_GPL vmlinux 0xcc1f1c3d inet_twdr_hangman +EXPORT_SYMBOL_GPL vmlinux 0xcc25c8c9 sdio_memcpy_toio +EXPORT_SYMBOL_GPL vmlinux 0xcc378721 regcache_sync +EXPORT_SYMBOL_GPL vmlinux 0xcc504ef1 pm_generic_resume +EXPORT_SYMBOL_GPL vmlinux 0xcc807a65 event_storage_mutex +EXPORT_SYMBOL_GPL vmlinux 0xcc85fcb6 async_schedule +EXPORT_SYMBOL_GPL vmlinux 0xcca2681c usb_del_gadget_udc +EXPORT_SYMBOL_GPL vmlinux 0xccbe906c mtd_unpoint +EXPORT_SYMBOL_GPL vmlinux 0xccbfe1a2 hrtimer_forward +EXPORT_SYMBOL_GPL vmlinux 0xcccbdaaf pci_check_and_unmask_intx +EXPORT_SYMBOL_GPL vmlinux 0xcccfb2fa sata_deb_timing_hotplug +EXPORT_SYMBOL_GPL vmlinux 0xcced559c dapm_regulator_event +EXPORT_SYMBOL_GPL vmlinux 0xccf73ec7 __rtnl_af_unregister +EXPORT_SYMBOL_GPL vmlinux 0xcd55cfd3 xenbus_map_ring +EXPORT_SYMBOL_GPL vmlinux 0xcd56f51e usb_hcd_unmap_urb_setup_for_dma +EXPORT_SYMBOL_GPL vmlinux 0xcd733071 cgroup_taskset_next +EXPORT_SYMBOL_GPL vmlinux 0xcd91b127 system_highpri_wq +EXPORT_SYMBOL_GPL vmlinux 0xcdca3691 nr_irqs +EXPORT_SYMBOL_GPL vmlinux 0xcdd15087 of_irq_map_one +EXPORT_SYMBOL_GPL vmlinux 0xcdfcb825 tpm_gen_interrupt +EXPORT_SYMBOL_GPL vmlinux 0xce0b2f01 pci_enable_pri +EXPORT_SYMBOL_GPL vmlinux 0xce0b9b59 max77693_read_reg +EXPORT_SYMBOL_GPL vmlinux 0xce155673 anon_inode_getfile +EXPORT_SYMBOL_GPL vmlinux 0xce2fa42d tps6586x_reads +EXPORT_SYMBOL_GPL vmlinux 0xce418b2e wm831x_device_shutdown +EXPORT_SYMBOL_GPL vmlinux 0xce4427a5 pm_generic_runtime_suspend +EXPORT_SYMBOL_GPL vmlinux 0xce46e140 ktime_get_ts +EXPORT_SYMBOL_GPL vmlinux 0xce4d703a pwm_get +EXPORT_SYMBOL_GPL vmlinux 0xce563150 dm_dispatch_request +EXPORT_SYMBOL_GPL vmlinux 0xce6a9d9a trace_current_buffer_discard_commit +EXPORT_SYMBOL_GPL vmlinux 0xce7e7dd6 pwmchip_remove +EXPORT_SYMBOL_GPL vmlinux 0xce89e890 class_dev_iter_init +EXPORT_SYMBOL_GPL vmlinux 0xceaba47d crypto_nivaead_type +EXPORT_SYMBOL_GPL vmlinux 0xcebecee8 device_reset +EXPORT_SYMBOL_GPL vmlinux 0xcee1641c kgdb_unregister_nmi_console +EXPORT_SYMBOL_GPL vmlinux 0xceea6dad sysfs_notify +EXPORT_SYMBOL_GPL vmlinux 0xcf54ea93 async_unregister_domain +EXPORT_SYMBOL_GPL vmlinux 0xcf7c1b75 clk_notifier_register +EXPORT_SYMBOL_GPL vmlinux 0xcf9089f2 ata_sas_port_init +EXPORT_SYMBOL_GPL vmlinux 0xcf99b17c serial8250_release_dma +EXPORT_SYMBOL_GPL vmlinux 0xcfa5b85a snd_soc_unregister_codec +EXPORT_SYMBOL_GPL vmlinux 0xcfbcd759 fuse_conn_put +EXPORT_SYMBOL_GPL vmlinux 0xcfc68341 synchronize_rcu_bh +EXPORT_SYMBOL_GPL vmlinux 0xcfebfcfd of_dma_simple_xlate +EXPORT_SYMBOL_GPL vmlinux 0xcffaa8bc opp_get_opp_count +EXPORT_SYMBOL_GPL vmlinux 0xd01ba70b ata_sff_lost_interrupt +EXPORT_SYMBOL_GPL vmlinux 0xd0220f1c console_drivers +EXPORT_SYMBOL_GPL vmlinux 0xd026d518 HYPERVISOR_vcpu_op +EXPORT_SYMBOL_GPL vmlinux 0xd02f0701 inet_twsk_put +EXPORT_SYMBOL_GPL vmlinux 0xd03c7700 secure_ipv4_port_ephemeral +EXPORT_SYMBOL_GPL vmlinux 0xd0458ccb xenbus_strstate +EXPORT_SYMBOL_GPL vmlinux 0xd06524ba raw_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0xd067d3c5 system_freezable_power_efficient_wq +EXPORT_SYMBOL_GPL vmlinux 0xd08a7967 relay_file_operations +EXPORT_SYMBOL_GPL vmlinux 0xd0c05159 emergency_restart +EXPORT_SYMBOL_GPL vmlinux 0xd0e1a150 alarm_start_relative +EXPORT_SYMBOL_GPL vmlinux 0xd1134d63 ata_cable_40wire +EXPORT_SYMBOL_GPL vmlinux 0xd11b81b4 gpiochip_is_requested +EXPORT_SYMBOL_GPL vmlinux 0xd13e87b5 apply_to_page_range +EXPORT_SYMBOL_GPL vmlinux 0xd14b9167 tc3589x_reg_write +EXPORT_SYMBOL_GPL vmlinux 0xd14bc4d9 sock_diag_save_cookie +EXPORT_SYMBOL_GPL vmlinux 0xd14c44c5 unregister_mtd_user +EXPORT_SYMBOL_GPL vmlinux 0xd16712f3 crypto_check_attr_type +EXPORT_SYMBOL_GPL vmlinux 0xd1772d28 usb_register_driver +EXPORT_SYMBOL_GPL vmlinux 0xd1822f0b cpufreq_show_cpus +EXPORT_SYMBOL_GPL vmlinux 0xd19f16f9 irq_remove_generic_chip +EXPORT_SYMBOL_GPL vmlinux 0xd1a2268f __cpufreq_driver_getavg +EXPORT_SYMBOL_GPL vmlinux 0xd1b2db37 tracepoint_probe_register_noupdate +EXPORT_SYMBOL_GPL vmlinux 0xd1bcb9fc amba_device_put +EXPORT_SYMBOL_GPL vmlinux 0xd1d020d0 handle_simple_irq +EXPORT_SYMBOL_GPL vmlinux 0xd1d1df88 sk_setup_caps +EXPORT_SYMBOL_GPL vmlinux 0xd1d63c2a omap_install_iommu_arch +EXPORT_SYMBOL_GPL vmlinux 0xd1e7aeff wm8994_reg_write +EXPORT_SYMBOL_GPL vmlinux 0xd1f95f95 pwm_disable +EXPORT_SYMBOL_GPL vmlinux 0xd20bf6ba dcookie_unregister +EXPORT_SYMBOL_GPL vmlinux 0xd217e9e6 trace_set_clr_event +EXPORT_SYMBOL_GPL vmlinux 0xd2695cc6 ahci_set_em_messages +EXPORT_SYMBOL_GPL vmlinux 0xd273b1b1 __round_jiffies_up_relative +EXPORT_SYMBOL_GPL vmlinux 0xd27c6048 xenbus_alloc_evtchn +EXPORT_SYMBOL_GPL vmlinux 0xd28b29df get_task_pid +EXPORT_SYMBOL_GPL vmlinux 0xd291203b ata_sff_tf_load +EXPORT_SYMBOL_GPL vmlinux 0xd29d0605 led_classdev_unregister +EXPORT_SYMBOL_GPL vmlinux 0xd2a83f59 disk_part_iter_init +EXPORT_SYMBOL_GPL vmlinux 0xd2aaeb4e kmsg_dump_get_buffer +EXPORT_SYMBOL_GPL vmlinux 0xd2af06db ata_sas_port_start +EXPORT_SYMBOL_GPL vmlinux 0xd2c45ea4 of_pci_find_child_device +EXPORT_SYMBOL_GPL vmlinux 0xd2c627ed inet_csk_search_req +EXPORT_SYMBOL_GPL vmlinux 0xd2e5b9a9 ping_seq_start +EXPORT_SYMBOL_GPL vmlinux 0xd2f6a2d2 ahci_sdev_attrs +EXPORT_SYMBOL_GPL vmlinux 0xd3221972 usb_create_hcd +EXPORT_SYMBOL_GPL vmlinux 0xd325ec88 pci_pasid_features +EXPORT_SYMBOL_GPL vmlinux 0xd32a5b96 mtd_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0xd32dc38f balloon_page_enqueue +EXPORT_SYMBOL_GPL vmlinux 0xd32fe193 ata_scsi_change_queue_depth +EXPORT_SYMBOL_GPL vmlinux 0xd33ada8b cci_probed +EXPORT_SYMBOL_GPL vmlinux 0xd33ebe0c xenbus_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0xd35356d9 perf_event_release_kernel +EXPORT_SYMBOL_GPL vmlinux 0xd3678b2f snd_soc_test_bits +EXPORT_SYMBOL_GPL vmlinux 0xd37e13b4 regulator_set_optimum_mode +EXPORT_SYMBOL_GPL vmlinux 0xd37e568b vga_default_device +EXPORT_SYMBOL_GPL vmlinux 0xd384f4be shash_register_instance +EXPORT_SYMBOL_GPL vmlinux 0xd38605ab sk_unattached_filter_create +EXPORT_SYMBOL_GPL vmlinux 0xd38b257d crypto_grab_aead +EXPORT_SYMBOL_GPL vmlinux 0xd39945bd i2c_adapter_type +EXPORT_SYMBOL_GPL vmlinux 0xd3acde12 extcon_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0xd3e74e85 pci_load_saved_state +EXPORT_SYMBOL_GPL vmlinux 0xd4034828 system_freezable_wq +EXPORT_SYMBOL_GPL vmlinux 0xd4126afd ata_sff_tf_read +EXPORT_SYMBOL_GPL vmlinux 0xd41d02f2 sched_setscheduler +EXPORT_SYMBOL_GPL vmlinux 0xd4375038 mmput +EXPORT_SYMBOL_GPL vmlinux 0xd444c95b shmem_read_mapping_page_gfp +EXPORT_SYMBOL_GPL vmlinux 0xd44a5eac kgdb_register_nmi_console +EXPORT_SYMBOL_GPL vmlinux 0xd44c2f38 cci_disable_port_by_cpu +EXPORT_SYMBOL_GPL vmlinux 0xd44ecc95 platform_device_add_data +EXPORT_SYMBOL_GPL vmlinux 0xd4595b58 task_current_syscall +EXPORT_SYMBOL_GPL vmlinux 0xd47a0fea snd_soc_jack_new +EXPORT_SYMBOL_GPL vmlinux 0xd491ee09 usb_free_coherent +EXPORT_SYMBOL_GPL vmlinux 0xd4c14632 system_unbound_wq +EXPORT_SYMBOL_GPL vmlinux 0xd508b276 mtd_get_device_size +EXPORT_SYMBOL_GPL vmlinux 0xd5146975 dev_change_net_namespace +EXPORT_SYMBOL_GPL vmlinux 0xd53da4e3 omap_dm_timers_active +EXPORT_SYMBOL_GPL vmlinux 0xd5508916 fat_dir_empty +EXPORT_SYMBOL_GPL vmlinux 0xd55ad93b iommu_group_get_iommudata +EXPORT_SYMBOL_GPL vmlinux 0xd58d2d3b raw_hash_sk +EXPORT_SYMBOL_GPL vmlinux 0xd5908e4c yield_to +EXPORT_SYMBOL_GPL vmlinux 0xd59432ae thermal_zone_get_temp +EXPORT_SYMBOL_GPL vmlinux 0xd5bd7dac ring_buffer_record_enable_cpu +EXPORT_SYMBOL_GPL vmlinux 0xd5bdab52 ata_bmdma_port_ops +EXPORT_SYMBOL_GPL vmlinux 0xd5c5ae42 pci_dev_run_wake +EXPORT_SYMBOL_GPL vmlinux 0xd5dab7e4 key_type_user +EXPORT_SYMBOL_GPL vmlinux 0xd5fb4c22 driver_register +EXPORT_SYMBOL_GPL vmlinux 0xd61a169c snd_soc_dapm_nc_pin +EXPORT_SYMBOL_GPL vmlinux 0xd6350b7b nf_unregister_afinfo +EXPORT_SYMBOL_GPL vmlinux 0xd63f7aa9 snd_soc_dapm_enable_pin +EXPORT_SYMBOL_GPL vmlinux 0xd6491152 rtnl_register +EXPORT_SYMBOL_GPL vmlinux 0xd6666e64 iommu_map +EXPORT_SYMBOL_GPL vmlinux 0xd66823ab lp8788_read_multi_bytes +EXPORT_SYMBOL_GPL vmlinux 0xd67364f7 eventfd_ctx_fdget +EXPORT_SYMBOL_GPL vmlinux 0xd6785401 fuse_request_send_background +EXPORT_SYMBOL_GPL vmlinux 0xd6b6ff51 sata_link_resume +EXPORT_SYMBOL_GPL vmlinux 0xd6c2e04b __tracepoint_napi_poll +EXPORT_SYMBOL_GPL vmlinux 0xd6def4b3 usb_enable_ltm +EXPORT_SYMBOL_GPL vmlinux 0xd6ef9fc4 n_tty_inherit_ops +EXPORT_SYMBOL_GPL vmlinux 0xd6fe07a7 pciserial_init_ports +EXPORT_SYMBOL_GPL vmlinux 0xd705b4c7 schedule_hrtimeout +EXPORT_SYMBOL_GPL vmlinux 0xd717138e ata_sff_prereset +EXPORT_SYMBOL_GPL vmlinux 0xd71f092d sata_pmp_error_handler +EXPORT_SYMBOL_GPL vmlinux 0xd72feba2 xenbus_read_driver_state +EXPORT_SYMBOL_GPL vmlinux 0xd768e985 regulator_has_full_constraints +EXPORT_SYMBOL_GPL vmlinux 0xd77c0bc8 klist_remove +EXPORT_SYMBOL_GPL vmlinux 0xd77e1a78 driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0xd78236e3 led_stop_software_blink +EXPORT_SYMBOL_GPL vmlinux 0xd788742d perf_trace_buf_prepare +EXPORT_SYMBOL_GPL vmlinux 0xd7ad810a input_ff_erase +EXPORT_SYMBOL_GPL vmlinux 0xd7d79132 put_online_cpus +EXPORT_SYMBOL_GPL vmlinux 0xd801ffc1 tpm_store_cancel +EXPORT_SYMBOL_GPL vmlinux 0xd80f3fc9 regmap_write +EXPORT_SYMBOL_GPL vmlinux 0xd81cf395 ata_std_bios_param +EXPORT_SYMBOL_GPL vmlinux 0xd81de62c ring_buffer_record_enable +EXPORT_SYMBOL_GPL vmlinux 0xd81ffcd3 wakeup_source_register +EXPORT_SYMBOL_GPL vmlinux 0xd820c283 eventfd_ctx_remove_wait_queue +EXPORT_SYMBOL_GPL vmlinux 0xd839a53a usb_disable_lpm +EXPORT_SYMBOL_GPL vmlinux 0xd8525ea7 fl6_update_dst +EXPORT_SYMBOL_GPL vmlinux 0xd85ac634 regulator_put +EXPORT_SYMBOL_GPL vmlinux 0xd863e510 ata_sas_async_probe +EXPORT_SYMBOL_GPL vmlinux 0xd86badca omap_dm_timer_write_counter +EXPORT_SYMBOL_GPL vmlinux 0xd87601cc ring_buffer_unlock_commit +EXPORT_SYMBOL_GPL vmlinux 0xd87b7a7b ata_sff_freeze +EXPORT_SYMBOL_GPL vmlinux 0xd898cd9c enable_kprobe +EXPORT_SYMBOL_GPL vmlinux 0xd8bde545 dev_attr_unload_heads +EXPORT_SYMBOL_GPL vmlinux 0xd8e129ce fixed_phy_set_link_update +EXPORT_SYMBOL_GPL vmlinux 0xd8ee1eb7 sis_info133_for_sata +EXPORT_SYMBOL_GPL vmlinux 0xd8f46ade led_trigger_unregister +EXPORT_SYMBOL_GPL vmlinux 0xd912b034 cgroup_attach_task_all +EXPORT_SYMBOL_GPL vmlinux 0xd91faf4b device_find_child +EXPORT_SYMBOL_GPL vmlinux 0xd942d353 ring_buffer_record_off +EXPORT_SYMBOL_GPL vmlinux 0xd94aa457 display_timings_release +EXPORT_SYMBOL_GPL vmlinux 0xd97b79d2 sdio_f0_readb +EXPORT_SYMBOL_GPL vmlinux 0xd9804e92 irq_create_mapping +EXPORT_SYMBOL_GPL vmlinux 0xd9950e46 power_supply_am_i_supplied +EXPORT_SYMBOL_GPL vmlinux 0xd9d7f623 pkey_id_type +EXPORT_SYMBOL_GPL vmlinux 0xd9ecb670 ring_buffer_overruns +EXPORT_SYMBOL_GPL vmlinux 0xda050716 iommu_group_for_each_dev +EXPORT_SYMBOL_GPL vmlinux 0xda1d3dc3 pci_sriov_get_totalvfs +EXPORT_SYMBOL_GPL vmlinux 0xda3a7ca9 regulator_is_enabled +EXPORT_SYMBOL_GPL vmlinux 0xda44cb37 setup_charger_manager +EXPORT_SYMBOL_GPL vmlinux 0xda5077fc pm_generic_freeze_noirq +EXPORT_SYMBOL_GPL vmlinux 0xda8f4a38 perf_pmu_migrate_context +EXPORT_SYMBOL_GPL vmlinux 0xda98ea36 led_trigger_register_simple +EXPORT_SYMBOL_GPL vmlinux 0xdabb0cf8 snd_soc_write +EXPORT_SYMBOL_GPL vmlinux 0xdabdd85c key_type_encrypted +EXPORT_SYMBOL_GPL vmlinux 0xdac11bae of_property_read_u32_array +EXPORT_SYMBOL_GPL vmlinux 0xdacd26c5 usb_scuttle_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0xdae715e0 videomode_from_timing +EXPORT_SYMBOL_GPL vmlinux 0xdaf4dfb3 fb_mode_option +EXPORT_SYMBOL_GPL vmlinux 0xdaf7bc5f aead_geniv_exit +EXPORT_SYMBOL_GPL vmlinux 0xdafffd15 cn_add_callback +EXPORT_SYMBOL_GPL vmlinux 0xdb04cacc tracepoint_probe_unregister_noupdate +EXPORT_SYMBOL_GPL vmlinux 0xdb160b84 balloon_page_dequeue +EXPORT_SYMBOL_GPL vmlinux 0xdb55d395 devm_usb_get_phy +EXPORT_SYMBOL_GPL vmlinux 0xdb8a1b3f usermodehelper_read_trylock +EXPORT_SYMBOL_GPL vmlinux 0xdb97c6e6 perf_event_enable +EXPORT_SYMBOL_GPL vmlinux 0xdb9e0082 platform_device_del +EXPORT_SYMBOL_GPL vmlinux 0xdba4ad93 static_key_slow_dec_deferred +EXPORT_SYMBOL_GPL vmlinux 0xdba80fc1 of_fdt_unflatten_tree +EXPORT_SYMBOL_GPL vmlinux 0xdbb41917 usb_driver_set_configuration +EXPORT_SYMBOL_GPL vmlinux 0xdbb61810 fat_remove_entries +EXPORT_SYMBOL_GPL vmlinux 0xdbd0718b uhci_check_and_reset_hc +EXPORT_SYMBOL_GPL vmlinux 0xdbdfafa6 cpuidle_unregister_device +EXPORT_SYMBOL_GPL vmlinux 0xdbf7cb70 mpi_get_nbits +EXPORT_SYMBOL_GPL vmlinux 0xdc13760b fuse_conn_get +EXPORT_SYMBOL_GPL vmlinux 0xdc14a211 xen_hvm_evtchn_do_upcall +EXPORT_SYMBOL_GPL vmlinux 0xdc461430 irq_set_affinity_hint +EXPORT_SYMBOL_GPL vmlinux 0xdc825d6c usb_amd_quirk_pll_disable +EXPORT_SYMBOL_GPL vmlinux 0xdc97af2e syscore_suspend +EXPORT_SYMBOL_GPL vmlinux 0xdc9a574d transport_destroy_device +EXPORT_SYMBOL_GPL vmlinux 0xdc9fa232 raw_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0xdca89419 omap_control_usb_set_mode +EXPORT_SYMBOL_GPL vmlinux 0xdcb83c11 kernel_kobj +EXPORT_SYMBOL_GPL vmlinux 0xdcb8b723 css_lookup +EXPORT_SYMBOL_GPL vmlinux 0xdcb909f6 sock_update_netprioidx +EXPORT_SYMBOL_GPL vmlinux 0xdcee7692 blk_queue_rq_timeout +EXPORT_SYMBOL_GPL vmlinux 0xdcffb5c7 snd_soc_dapm_add_routes +EXPORT_SYMBOL_GPL vmlinux 0xdd277b3c bus_remove_file +EXPORT_SYMBOL_GPL vmlinux 0xdd2efc0f ring_buffer_reset_cpu +EXPORT_SYMBOL_GPL vmlinux 0xdd323cc1 tegra_pinctrl_remove +EXPORT_SYMBOL_GPL vmlinux 0xdd3627e3 power_supply_register +EXPORT_SYMBOL_GPL vmlinux 0xdd391eff profile_event_unregister +EXPORT_SYMBOL_GPL vmlinux 0xdd603046 musb_dma_completion +EXPORT_SYMBOL_GPL vmlinux 0xdd8708a4 pci_user_write_config_dword +EXPORT_SYMBOL_GPL vmlinux 0xdd9b5fa7 crypto_destroy_tfm +EXPORT_SYMBOL_GPL vmlinux 0xdda42ea4 crypto_ahash_type +EXPORT_SYMBOL_GPL vmlinux 0xddb3b08f xenbus_unmap_ring_vfree +EXPORT_SYMBOL_GPL vmlinux 0xddd58dc0 ring_buffer_reset +EXPORT_SYMBOL_GPL vmlinux 0xde2423b1 ata_bmdma_post_internal_cmd +EXPORT_SYMBOL_GPL vmlinux 0xde2c5a6e alarm_restart +EXPORT_SYMBOL_GPL vmlinux 0xde3413b2 ipv4_redirect +EXPORT_SYMBOL_GPL vmlinux 0xde4e0ef6 pm_generic_restore +EXPORT_SYMBOL_GPL vmlinux 0xde5c2bc5 raw_seq_stop +EXPORT_SYMBOL_GPL vmlinux 0xde6a103f need_load_eval +EXPORT_SYMBOL_GPL vmlinux 0xde8b8b12 fat_setattr +EXPORT_SYMBOL_GPL vmlinux 0xdec7f221 usb_bus_list_lock +EXPORT_SYMBOL_GPL vmlinux 0xdec861a4 evm_inode_init_security +EXPORT_SYMBOL_GPL vmlinux 0xdedebc21 blk_lld_busy +EXPORT_SYMBOL_GPL vmlinux 0xdeeaee03 da9052_enable_irq +EXPORT_SYMBOL_GPL vmlinux 0xdf0f75c6 eventfd_signal +EXPORT_SYMBOL_GPL vmlinux 0xdf2523b8 sk_unattached_filter_destroy +EXPORT_SYMBOL_GPL vmlinux 0xdf2ea666 sdhci_pltfm_unregister +EXPORT_SYMBOL_GPL vmlinux 0xdf3ceb74 wm8350_set_bits +EXPORT_SYMBOL_GPL vmlinux 0xdf4aa336 ata_eh_qc_retry +EXPORT_SYMBOL_GPL vmlinux 0xdf60255b fuse_do_open +EXPORT_SYMBOL_GPL vmlinux 0xdf6dceca snd_soc_jack_free_gpios +EXPORT_SYMBOL_GPL vmlinux 0xdf7c1bfc pinctrl_force_sleep +EXPORT_SYMBOL_GPL vmlinux 0xdf87f71b lp8788_write_byte +EXPORT_SYMBOL_GPL vmlinux 0xdf9603f8 debugfs_create_u32 +EXPORT_SYMBOL_GPL vmlinux 0xdfdb2d88 input_class +EXPORT_SYMBOL_GPL vmlinux 0xdfebb3fd debugfs_create_x16 +EXPORT_SYMBOL_GPL vmlinux 0xdff7c9ce blocking_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0xe006bf35 irq_gc_ack_set_bit +EXPORT_SYMBOL_GPL vmlinux 0xe007de41 kallsyms_lookup_name +EXPORT_SYMBOL_GPL vmlinux 0xe010d9af snd_soc_get_value_enum_double +EXPORT_SYMBOL_GPL vmlinux 0xe02eb6d0 ring_buffer_commit_overrun_cpu +EXPORT_SYMBOL_GPL vmlinux 0xe03525ac of_irq_map_raw +EXPORT_SYMBOL_GPL vmlinux 0xe054cb91 regmap_get_val_bytes +EXPORT_SYMBOL_GPL vmlinux 0xe0671ae5 usb_set_device_state +EXPORT_SYMBOL_GPL vmlinux 0xe07ca631 cpu_bit_bitmap +EXPORT_SYMBOL_GPL vmlinux 0xe0852c77 snd_soc_resume +EXPORT_SYMBOL_GPL vmlinux 0xe0cc6931 watchdog_unregister_device +EXPORT_SYMBOL_GPL vmlinux 0xe0cdde5b scsi_schedule_eh +EXPORT_SYMBOL_GPL vmlinux 0xe0d08675 handle_level_irq +EXPORT_SYMBOL_GPL vmlinux 0xe0e3147c HYPERVISOR_sched_op +EXPORT_SYMBOL_GPL vmlinux 0xe0f867a5 register_wide_hw_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0xe13d719a cpufreq_driver_target +EXPORT_SYMBOL_GPL vmlinux 0xe15470db crypto_alg_lookup +EXPORT_SYMBOL_GPL vmlinux 0xe16591ab stop_machine +EXPORT_SYMBOL_GPL vmlinux 0xe1fea3c1 class_create_file +EXPORT_SYMBOL_GPL vmlinux 0xe2345179 xen_xenbus_fops +EXPORT_SYMBOL_GPL vmlinux 0xe29bccad ata_cable_unknown +EXPORT_SYMBOL_GPL vmlinux 0xe2a85d23 d_materialise_unique +EXPORT_SYMBOL_GPL vmlinux 0xe2ae07c7 crypto_alloc_ahash +EXPORT_SYMBOL_GPL vmlinux 0xe2b831d7 led_trigger_set_default +EXPORT_SYMBOL_GPL vmlinux 0xe2cbeabc __blkg_prfill_rwstat +EXPORT_SYMBOL_GPL vmlinux 0xe2d2bf03 fib_table_lookup +EXPORT_SYMBOL_GPL vmlinux 0xe2dc4e82 tpm_release +EXPORT_SYMBOL_GPL vmlinux 0xe2dd67e5 regulator_set_current_limit +EXPORT_SYMBOL_GPL vmlinux 0xe2e239c5 snd_soc_dapm_get_volsw +EXPORT_SYMBOL_GPL vmlinux 0xe2e7840d regmap_init_mmio_clk +EXPORT_SYMBOL_GPL vmlinux 0xe3043ff9 request_any_context_irq +EXPORT_SYMBOL_GPL vmlinux 0xe326bb82 bus_register +EXPORT_SYMBOL_GPL vmlinux 0xe354dd65 tcp_reno_cong_avoid +EXPORT_SYMBOL_GPL vmlinux 0xe3731733 pinctrl_dev_get_drvdata +EXPORT_SYMBOL_GPL vmlinux 0xe384a102 usb_speed_string +EXPORT_SYMBOL_GPL vmlinux 0xe3956059 tpm_write +EXPORT_SYMBOL_GPL vmlinux 0xe3b4de67 xenbus_probe_devices +EXPORT_SYMBOL_GPL vmlinux 0xe3b5bb1e usb_poison_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0xe3b99b4c register_kretprobe +EXPORT_SYMBOL_GPL vmlinux 0xe3e328c0 inet6_sk_rebuild_header +EXPORT_SYMBOL_GPL vmlinux 0xe41534ce bind_evtchn_to_irqhandler +EXPORT_SYMBOL_GPL vmlinux 0xe42e1f70 klist_iter_init_node +EXPORT_SYMBOL_GPL vmlinux 0xe4309905 syscore_resume +EXPORT_SYMBOL_GPL vmlinux 0xe4802e84 class_for_each_device +EXPORT_SYMBOL_GPL vmlinux 0xe4803c91 of_get_videomode +EXPORT_SYMBOL_GPL vmlinux 0xe4848e54 ata_sff_dma_pause +EXPORT_SYMBOL_GPL vmlinux 0xe48b7960 devm_pinctrl_put +EXPORT_SYMBOL_GPL vmlinux 0xe4932e13 securityfs_remove +EXPORT_SYMBOL_GPL vmlinux 0xe4d734f3 pci_bus_max_busnr +EXPORT_SYMBOL_GPL vmlinux 0xe4dfc879 tpm_do_selftest +EXPORT_SYMBOL_GPL vmlinux 0xe4e56083 sock_prot_inuse_get +EXPORT_SYMBOL_GPL vmlinux 0xe4f2726d snd_compress_deregister +EXPORT_SYMBOL_GPL vmlinux 0xe4fa1aa8 snd_soc_put_volsw_sx +EXPORT_SYMBOL_GPL vmlinux 0xe50e65bf blocking_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0xe515293c usb_hcd_map_urb_for_dma +EXPORT_SYMBOL_GPL vmlinux 0xe51de4a5 regulator_enable_regmap +EXPORT_SYMBOL_GPL vmlinux 0xe544f97f __ablkcipher_walk_complete +EXPORT_SYMBOL_GPL vmlinux 0xe5524eab of_address_to_resource +EXPORT_SYMBOL_GPL vmlinux 0xe58737ad ipv6_find_tlv +EXPORT_SYMBOL_GPL vmlinux 0xe5883bd9 class_compat_unregister +EXPORT_SYMBOL_GPL vmlinux 0xe58dcad4 tty_get_pgrp +EXPORT_SYMBOL_GPL vmlinux 0xe58fb452 aer_irq +EXPORT_SYMBOL_GPL vmlinux 0xe5968701 dma_buf_kmap_atomic +EXPORT_SYMBOL_GPL vmlinux 0xe5c3b58e irq_get_irq_data +EXPORT_SYMBOL_GPL vmlinux 0xe5cac5b9 sk_clone_lock +EXPORT_SYMBOL_GPL vmlinux 0xe5cc23aa i2c_unlock_adapter +EXPORT_SYMBOL_GPL vmlinux 0xe5dd86e5 usb_sg_init +EXPORT_SYMBOL_GPL vmlinux 0xe5eaa15d pinctrl_add_gpio_ranges +EXPORT_SYMBOL_GPL vmlinux 0xe5efc7da crypto_init_ahash_spawn +EXPORT_SYMBOL_GPL vmlinux 0xe62d3ce6 led_trigger_blink_oneshot +EXPORT_SYMBOL_GPL vmlinux 0xe64ef3d0 da903x_update +EXPORT_SYMBOL_GPL vmlinux 0xe651f76e selinux_is_enabled +EXPORT_SYMBOL_GPL vmlinux 0xe657c7f3 usb_hcd_pci_shutdown +EXPORT_SYMBOL_GPL vmlinux 0xe677a443 usb_get_descriptor +EXPORT_SYMBOL_GPL vmlinux 0xe67ed0c5 tpm_show_pcrs +EXPORT_SYMBOL_GPL vmlinux 0xe6863653 usb_hcd_link_urb_to_ep +EXPORT_SYMBOL_GPL vmlinux 0xe68c33c3 ata_port_wait_eh +EXPORT_SYMBOL_GPL vmlinux 0xe6c68334 ddebug_remove_module +EXPORT_SYMBOL_GPL vmlinux 0xe6dd04af init_user_ns +EXPORT_SYMBOL_GPL vmlinux 0xe6e1c5fe uuid_be_gen +EXPORT_SYMBOL_GPL vmlinux 0xe729387c omap_iopgtable_store_entry +EXPORT_SYMBOL_GPL vmlinux 0xe7374335 regulator_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xe7574f52 mmu_notifier_unregister +EXPORT_SYMBOL_GPL vmlinux 0xe75bf548 pci_pri_stopped +EXPORT_SYMBOL_GPL vmlinux 0xe764488a alarm_start +EXPORT_SYMBOL_GPL vmlinux 0xe769232e sprint_symbol_no_offset +EXPORT_SYMBOL_GPL vmlinux 0xe76ebc07 usb_free_urb +EXPORT_SYMBOL_GPL vmlinux 0xe7712df3 crypto_unregister_algs +EXPORT_SYMBOL_GPL vmlinux 0xe777ea20 omap_dm_timer_set_int_disable +EXPORT_SYMBOL_GPL vmlinux 0xe7a3ff2b shash_ahash_finup +EXPORT_SYMBOL_GPL vmlinux 0xe7a8d099 sysfs_get +EXPORT_SYMBOL_GPL vmlinux 0xe7acbbad tty_set_termios +EXPORT_SYMBOL_GPL vmlinux 0xe7bc903e crypto_alloc_ablkcipher +EXPORT_SYMBOL_GPL vmlinux 0xe7c92ac6 pm_runtime_set_autosuspend_delay +EXPORT_SYMBOL_GPL vmlinux 0xe7dcf6a7 device_store_bool +EXPORT_SYMBOL_GPL vmlinux 0xe7df64e6 usb_driver_release_interface +EXPORT_SYMBOL_GPL vmlinux 0xe7ea63bb iommu_domain_free +EXPORT_SYMBOL_GPL vmlinux 0xe7f289b4 usb_interrupt_msg +EXPORT_SYMBOL_GPL vmlinux 0xe7f5b8b4 of_dma_controller_register +EXPORT_SYMBOL_GPL vmlinux 0xe7ffe877 pcpu_base_addr +EXPORT_SYMBOL_GPL vmlinux 0xe803266e extcon_dev_unregister +EXPORT_SYMBOL_GPL vmlinux 0xe80b4efe bmp085_probe +EXPORT_SYMBOL_GPL vmlinux 0xe8130c17 pwm_can_sleep +EXPORT_SYMBOL_GPL vmlinux 0xe818b32b ata_bmdma_interrupt +EXPORT_SYMBOL_GPL vmlinux 0xe81b7de6 class_dev_iter_next +EXPORT_SYMBOL_GPL vmlinux 0xe82b9904 stmpe_enable +EXPORT_SYMBOL_GPL vmlinux 0xe82f9044 mtd_erase_callback +EXPORT_SYMBOL_GPL vmlinux 0xe8400441 of_property_read_string_index +EXPORT_SYMBOL_GPL vmlinux 0xe84f6e5c pciserial_remove_ports +EXPORT_SYMBOL_GPL vmlinux 0xe85851af usb_get_phy_dev +EXPORT_SYMBOL_GPL vmlinux 0xe85a9fd3 cpu_cluster_pm_exit +EXPORT_SYMBOL_GPL vmlinux 0xe85b863d ata_do_set_mode +EXPORT_SYMBOL_GPL vmlinux 0xe862c4b7 dpm_suspend_start +EXPORT_SYMBOL_GPL vmlinux 0xe86a6a77 clk_set_rate +EXPORT_SYMBOL_GPL vmlinux 0xe8b129d2 cpuidle_unregister +EXPORT_SYMBOL_GPL vmlinux 0xe8b18d4b platform_driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0xe8c9d805 tty_buffer_request_room +EXPORT_SYMBOL_GPL vmlinux 0xe8d86f50 cm_notify_event +EXPORT_SYMBOL_GPL vmlinux 0xe8ea303f irq_alloc_generic_chip +EXPORT_SYMBOL_GPL vmlinux 0xe8f2d223 ohci_restart +EXPORT_SYMBOL_GPL vmlinux 0xe905a85e __hvc_resize +EXPORT_SYMBOL_GPL vmlinux 0xe93e49c3 devres_free +EXPORT_SYMBOL_GPL vmlinux 0xe9455879 tty_ldisc_ref_wait +EXPORT_SYMBOL_GPL vmlinux 0xe950b9b5 blkg_rwstat_recursive_sum +EXPORT_SYMBOL_GPL vmlinux 0xe956a75c pl320_ipc_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0xe95e19e8 __irq_domain_add +EXPORT_SYMBOL_GPL vmlinux 0xe9633640 cpu_subsys +EXPORT_SYMBOL_GPL vmlinux 0xe96945dd ata_sas_scsi_ioctl +EXPORT_SYMBOL_GPL vmlinux 0xe9953ebf device_attach +EXPORT_SYMBOL_GPL vmlinux 0xe997a768 btree_grim_visitor +EXPORT_SYMBOL_GPL vmlinux 0xe9c6a372 srcu_init_notifier_head +EXPORT_SYMBOL_GPL vmlinux 0xe9d6c9b3 tpm_open +EXPORT_SYMBOL_GPL vmlinux 0xe9f6ab6b tun_get_socket +EXPORT_SYMBOL_GPL vmlinux 0xea124bd1 gcd +EXPORT_SYMBOL_GPL vmlinux 0xea418e0f atapi_cmd_type +EXPORT_SYMBOL_GPL vmlinux 0xea4325be locks_release_private +EXPORT_SYMBOL_GPL vmlinux 0xea43355b gen_pool_avail +EXPORT_SYMBOL_GPL vmlinux 0xea50dad3 ahci_ignore_sss +EXPORT_SYMBOL_GPL vmlinux 0xeac5457f arizona_clk32k_disable +EXPORT_SYMBOL_GPL vmlinux 0xeacc57f6 platform_device_register_full +EXPORT_SYMBOL_GPL vmlinux 0xeae73cf5 usbmisc_set_ops +EXPORT_SYMBOL_GPL vmlinux 0xeaf77acf amba_apb_device_add +EXPORT_SYMBOL_GPL vmlinux 0xeb1c3628 nf_ipv6_ops +EXPORT_SYMBOL_GPL vmlinux 0xeb1dd40a snd_soc_dai_set_channel_map +EXPORT_SYMBOL_GPL vmlinux 0xeb34a3bf ata_std_prereset +EXPORT_SYMBOL_GPL vmlinux 0xeb3ef01d arm_pm_restart +EXPORT_SYMBOL_GPL vmlinux 0xeb4ac2fd pci_add_dynid +EXPORT_SYMBOL_GPL vmlinux 0xeb4f6c3b register_virtio_driver +EXPORT_SYMBOL_GPL vmlinux 0xeb655df3 bus_sort_breadthfirst +EXPORT_SYMBOL_GPL vmlinux 0xeb694447 usb_hcd_unlink_urb_from_ep +EXPORT_SYMBOL_GPL vmlinux 0xeb6da6ca usb_add_gadget_udc_release +EXPORT_SYMBOL_GPL vmlinux 0xeb711ae7 snd_soc_params_to_bclk +EXPORT_SYMBOL_GPL vmlinux 0xeb7f500a pinctrl_add_gpio_range +EXPORT_SYMBOL_GPL vmlinux 0xeb7f776a tps6586x_read +EXPORT_SYMBOL_GPL vmlinux 0xeb90f697 srcu_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0xeb9abbee ata_sff_queue_work +EXPORT_SYMBOL_GPL vmlinux 0xebb80bf8 snd_pcm_add_chmap_ctls +EXPORT_SYMBOL_GPL vmlinux 0xebbd60cd tps65912_clear_bits +EXPORT_SYMBOL_GPL vmlinux 0xebec57c4 ring_buffer_oldest_event_ts +EXPORT_SYMBOL_GPL vmlinux 0xebf9ded8 device_reprobe +EXPORT_SYMBOL_GPL vmlinux 0xec1857c6 snd_soc_free_ac97_codec +EXPORT_SYMBOL_GPL vmlinux 0xec1b043e regulator_suspend_prepare +EXPORT_SYMBOL_GPL vmlinux 0xec25f967 klist_del +EXPORT_SYMBOL_GPL vmlinux 0xec66008c snd_dmaengine_pcm_unregister +EXPORT_SYMBOL_GPL vmlinux 0xec7a6cdb ata_do_dev_read_id +EXPORT_SYMBOL_GPL vmlinux 0xec9e6085 ata_sas_port_async_suspend +EXPORT_SYMBOL_GPL vmlinux 0xecaeddf6 pm_generic_thaw +EXPORT_SYMBOL_GPL vmlinux 0xecbc5f3e ahci_reset_controller +EXPORT_SYMBOL_GPL vmlinux 0xecc26f95 task_cgroup_path +EXPORT_SYMBOL_GPL vmlinux 0xecefdee4 fuse_request_send +EXPORT_SYMBOL_GPL vmlinux 0xed06b916 wakeup_source_drop +EXPORT_SYMBOL_GPL vmlinux 0xed164e23 unix_inq_len +EXPORT_SYMBOL_GPL vmlinux 0xed1de6ad tcp_fetch_timewait_stamp +EXPORT_SYMBOL_GPL vmlinux 0xed250d73 __inet_hash_nolisten +EXPORT_SYMBOL_GPL vmlinux 0xed3bbeb0 blk_rq_check_limits +EXPORT_SYMBOL_GPL vmlinux 0xed446cb8 spi_finalize_current_message +EXPORT_SYMBOL_GPL vmlinux 0xed63d8c1 fat_flush_inodes +EXPORT_SYMBOL_GPL vmlinux 0xed695a2d unregister_jprobe +EXPORT_SYMBOL_GPL vmlinux 0xed6a6a34 regulator_set_voltage_time_sel +EXPORT_SYMBOL_GPL vmlinux 0xeda63db3 scatterwalk_copychunks +EXPORT_SYMBOL_GPL vmlinux 0xedbc6f67 gnttab_end_foreign_access +EXPORT_SYMBOL_GPL vmlinux 0xedcdc577 snd_dmaengine_pcm_trigger +EXPORT_SYMBOL_GPL vmlinux 0xedd49930 zs_create_pool +EXPORT_SYMBOL_GPL vmlinux 0xedfebc34 default_backing_dev_info +EXPORT_SYMBOL_GPL vmlinux 0xee404398 dev_attr_em_message +EXPORT_SYMBOL_GPL vmlinux 0xee44bcb1 pcie_port_bus_type +EXPORT_SYMBOL_GPL vmlinux 0xee4f3181 wakeup_source_add +EXPORT_SYMBOL_GPL vmlinux 0xee5bf7ea pcie_bus_configure_settings +EXPORT_SYMBOL_GPL vmlinux 0xee6b71c4 syscon_regmap_lookup_by_compatible +EXPORT_SYMBOL_GPL vmlinux 0xee70e408 ata_bmdma_qc_prep +EXPORT_SYMBOL_GPL vmlinux 0xee92bbf6 mmc_switch +EXPORT_SYMBOL_GPL vmlinux 0xeea341f2 ip_route_output_flow +EXPORT_SYMBOL_GPL vmlinux 0xeeb72551 thermal_zone_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0xeee5c365 sdhci_runtime_resume_host +EXPORT_SYMBOL_GPL vmlinux 0xef09d6e9 omap_dm_timer_enable +EXPORT_SYMBOL_GPL vmlinux 0xef1c6657 crypto_dequeue_request +EXPORT_SYMBOL_GPL vmlinux 0xef1de47e mtd_get_unmapped_area +EXPORT_SYMBOL_GPL vmlinux 0xef2bdb19 xenbus_bind_evtchn +EXPORT_SYMBOL_GPL vmlinux 0xef409b74 kmsg_dump_get_line +EXPORT_SYMBOL_GPL vmlinux 0xef6c3f70 round_jiffies_up_relative +EXPORT_SYMBOL_GPL vmlinux 0xef782b88 gnttab_grant_foreign_access_subpage +EXPORT_SYMBOL_GPL vmlinux 0xef7eb3bd ipv4_update_pmtu +EXPORT_SYMBOL_GPL vmlinux 0xef9216f8 usb_hcd_pci_pm_ops +EXPORT_SYMBOL_GPL vmlinux 0xef95399f fib_rules_register +EXPORT_SYMBOL_GPL vmlinux 0xef9c853a unuse_mm +EXPORT_SYMBOL_GPL vmlinux 0xefa6853d fanout_mutex +EXPORT_SYMBOL_GPL vmlinux 0xefc256bd skb_morph +EXPORT_SYMBOL_GPL vmlinux 0xefc91531 irq_create_of_mapping +EXPORT_SYMBOL_GPL vmlinux 0xefdbc109 stmpe_reg_write +EXPORT_SYMBOL_GPL vmlinux 0xefe79a85 blkg_lookup_create +EXPORT_SYMBOL_GPL vmlinux 0xefed3360 crypto_grab_skcipher +EXPORT_SYMBOL_GPL vmlinux 0xeff5ec2d get_user_pages_fast +EXPORT_SYMBOL_GPL vmlinux 0xf00123d9 ehci_init_driver +EXPORT_SYMBOL_GPL vmlinux 0xf00cb835 pwm_request_from_chip +EXPORT_SYMBOL_GPL vmlinux 0xf00d58f7 alarm_init +EXPORT_SYMBOL_GPL vmlinux 0xf0188aef pci_cfg_access_trylock +EXPORT_SYMBOL_GPL vmlinux 0xf02d28b6 pwmchip_add +EXPORT_SYMBOL_GPL vmlinux 0xf033cea1 driver_find +EXPORT_SYMBOL_GPL vmlinux 0xf0421a02 inet_csk_reqsk_queue_hash_add +EXPORT_SYMBOL_GPL vmlinux 0xf06224ec power_supply_class +EXPORT_SYMBOL_GPL vmlinux 0xf077622c ahci_ops +EXPORT_SYMBOL_GPL vmlinux 0xf08d2812 of_pwm_get +EXPORT_SYMBOL_GPL vmlinux 0xf08f4925 twl6040_get_trim_value +EXPORT_SYMBOL_GPL vmlinux 0xf0b35027 relay_close +EXPORT_SYMBOL_GPL vmlinux 0xf0e2a893 sdhci_remove_host +EXPORT_SYMBOL_GPL vmlinux 0xf0e35489 ata_scsi_queuecmd +EXPORT_SYMBOL_GPL vmlinux 0xf0f5dbc2 timerqueue_iterate_next +EXPORT_SYMBOL_GPL vmlinux 0xf0f72dee clk_unprepare +EXPORT_SYMBOL_GPL vmlinux 0xf129d601 sdio_claim_host +EXPORT_SYMBOL_GPL vmlinux 0xf148e9ce __mmdrop +EXPORT_SYMBOL_GPL vmlinux 0xf1511c8c dm_noflush_suspending +EXPORT_SYMBOL_GPL vmlinux 0xf166e01b inet_ctl_sock_create +EXPORT_SYMBOL_GPL vmlinux 0xf16a1960 usb_wakeup_notification +EXPORT_SYMBOL_GPL vmlinux 0xf17e940f ablkcipher_walk_done +EXPORT_SYMBOL_GPL vmlinux 0xf184b9a8 snd_kctl_jack_report +EXPORT_SYMBOL_GPL vmlinux 0xf184d189 kernel_power_off +EXPORT_SYMBOL_GPL vmlinux 0xf18ffda2 regcache_cache_bypass +EXPORT_SYMBOL_GPL vmlinux 0xf199e38e usb_add_phy_dev +EXPORT_SYMBOL_GPL vmlinux 0xf19adc86 snd_soc_dpcm_can_be_free_stop +EXPORT_SYMBOL_GPL vmlinux 0xf1af88d6 led_trigger_remove +EXPORT_SYMBOL_GPL vmlinux 0xf1b31314 delayacct_on +EXPORT_SYMBOL_GPL vmlinux 0xf1c37c1a irq_gc_mask_clr_bit +EXPORT_SYMBOL_GPL vmlinux 0xf1cbcff9 usb_block_urb +EXPORT_SYMBOL_GPL vmlinux 0xf1ffc486 nf_queue_entry_release_refs +EXPORT_SYMBOL_GPL vmlinux 0xf21e1f9b disable_percpu_irq +EXPORT_SYMBOL_GPL vmlinux 0xf222f80f usb_unpoison_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0xf236bda0 extcon_set_cable_state +EXPORT_SYMBOL_GPL vmlinux 0xf27372f3 vfs_test_lock +EXPORT_SYMBOL_GPL vmlinux 0xf277bc5a device_set_wakeup_enable +EXPORT_SYMBOL_GPL vmlinux 0xf27977e2 async_synchronize_cookie_domain +EXPORT_SYMBOL_GPL vmlinux 0xf27d8e1d perf_event_create_kernel_counter +EXPORT_SYMBOL_GPL vmlinux 0xf2aca367 pci_set_cacheline_size +EXPORT_SYMBOL_GPL vmlinux 0xf2ae2025 extcon_set_cable_state_ +EXPORT_SYMBOL_GPL vmlinux 0xf2af2ae2 pwm_free +EXPORT_SYMBOL_GPL vmlinux 0xf2df83e7 tc3589x_reg_read +EXPORT_SYMBOL_GPL vmlinux 0xf2fc7f6e __pm_relax +EXPORT_SYMBOL_GPL vmlinux 0xf2fca922 uart_parse_options +EXPORT_SYMBOL_GPL vmlinux 0xf30fda27 lzo1x_decompress_safe +EXPORT_SYMBOL_GPL vmlinux 0xf31b3fd1 workqueue_set_max_active +EXPORT_SYMBOL_GPL vmlinux 0xf31dedf6 snd_dmaengine_pcm_get_chan +EXPORT_SYMBOL_GPL vmlinux 0xf328a284 scsi_target_unblock +EXPORT_SYMBOL_GPL vmlinux 0xf32bdc5d unregister_xenstore_notifier +EXPORT_SYMBOL_GPL vmlinux 0xf331236f btree_geo32 +EXPORT_SYMBOL_GPL vmlinux 0xf34c1816 rtc_read_alarm +EXPORT_SYMBOL_GPL vmlinux 0xf34d3402 spi_write_then_read +EXPORT_SYMBOL_GPL vmlinux 0xf362e24e blk_trace_startstop +EXPORT_SYMBOL_GPL vmlinux 0xf372e63e snd_soc_suspend +EXPORT_SYMBOL_GPL vmlinux 0xf3b451ca kdb_poll_funcs +EXPORT_SYMBOL_GPL vmlinux 0xf3dd036d regulator_set_voltage_time +EXPORT_SYMBOL_GPL vmlinux 0xf3fd731b platform_get_resource +EXPORT_SYMBOL_GPL vmlinux 0xf415f37e exportfs_encode_fh +EXPORT_SYMBOL_GPL vmlinux 0xf424409f __root_device_register +EXPORT_SYMBOL_GPL vmlinux 0xf471d3e7 pci_bus_add_device +EXPORT_SYMBOL_GPL vmlinux 0xf47dec35 bgpio_remove +EXPORT_SYMBOL_GPL vmlinux 0xf494f618 mmc_regulator_get_ocrmask +EXPORT_SYMBOL_GPL vmlinux 0xf499fdb2 rcu_barrier_bh +EXPORT_SYMBOL_GPL vmlinux 0xf4ad2459 ata_base_port_ops +EXPORT_SYMBOL_GPL vmlinux 0xf4ae5770 setup_irq +EXPORT_SYMBOL_GPL vmlinux 0xf4bd415e skb_partial_csum_set +EXPORT_SYMBOL_GPL vmlinux 0xf4f0745d xfrm_output +EXPORT_SYMBOL_GPL vmlinux 0xf4f9ecfd sysfs_unmerge_group +EXPORT_SYMBOL_GPL vmlinux 0xf4fc2d6c __ring_buffer_alloc +EXPORT_SYMBOL_GPL vmlinux 0xf5156028 devm_of_pwm_get +EXPORT_SYMBOL_GPL vmlinux 0xf54bd49b lcm +EXPORT_SYMBOL_GPL vmlinux 0xf553318d cpuidle_pause_and_lock +EXPORT_SYMBOL_GPL vmlinux 0xf553649d max8997_update_reg +EXPORT_SYMBOL_GPL vmlinux 0xf5578005 usb_get_status +EXPORT_SYMBOL_GPL vmlinux 0xf5785b42 evtchn_get +EXPORT_SYMBOL_GPL vmlinux 0xf5945bac gnttab_free_grant_references +EXPORT_SYMBOL_GPL vmlinux 0xf5a691cd invalidate_bh_lrus +EXPORT_SYMBOL_GPL vmlinux 0xf5f9c637 pm_relax +EXPORT_SYMBOL_GPL vmlinux 0xf5fef4e3 wm5110_spi_regmap +EXPORT_SYMBOL_GPL vmlinux 0xf60d1625 mm_kobj +EXPORT_SYMBOL_GPL vmlinux 0xf61871fa i2c_bus_type +EXPORT_SYMBOL_GPL vmlinux 0xf631e2f0 sdio_readw +EXPORT_SYMBOL_GPL vmlinux 0xf63b2c38 rdev_set_badblocks +EXPORT_SYMBOL_GPL vmlinux 0xf6464980 ahci_em_messages +EXPORT_SYMBOL_GPL vmlinux 0xf65e3150 ata_host_detach +EXPORT_SYMBOL_GPL vmlinux 0xf68ffd8f sata_link_scr_lpm +EXPORT_SYMBOL_GPL vmlinux 0xf6b21226 unix_outq_len +EXPORT_SYMBOL_GPL vmlinux 0xf6b8d059 fat_getattr +EXPORT_SYMBOL_GPL vmlinux 0xf6c5d823 kobject_rename +EXPORT_SYMBOL_GPL vmlinux 0xf6e04730 event_storage +EXPORT_SYMBOL_GPL vmlinux 0xf6e74a24 omap_dm_timer_request +EXPORT_SYMBOL_GPL vmlinux 0xf6e874f5 ata_timing_merge +EXPORT_SYMBOL_GPL vmlinux 0xf7016530 xenbus_gather +EXPORT_SYMBOL_GPL vmlinux 0xf7032aa0 pci_find_ext_capability +EXPORT_SYMBOL_GPL vmlinux 0xf70d4146 seq_open_net +EXPORT_SYMBOL_GPL vmlinux 0xf721ad72 crypto_register_instance +EXPORT_SYMBOL_GPL vmlinux 0xf74656ab regulator_can_change_voltage +EXPORT_SYMBOL_GPL vmlinux 0xf74dae0f idr_alloc +EXPORT_SYMBOL_GPL vmlinux 0xf764d215 deregister_mtd_parser +EXPORT_SYMBOL_GPL vmlinux 0xf7690f94 fat_free_clusters +EXPORT_SYMBOL_GPL vmlinux 0xf76b0a59 read_current_timer +EXPORT_SYMBOL_GPL vmlinux 0xf78fb4bb mmc_send_ext_csd +EXPORT_SYMBOL_GPL vmlinux 0xf7ad963a mtd_erase +EXPORT_SYMBOL_GPL vmlinux 0xf7b652aa sdio_release_host +EXPORT_SYMBOL_GPL vmlinux 0xf7b9c857 __module_text_address +EXPORT_SYMBOL_GPL vmlinux 0xf7c49324 of_pci_parse_bus_range +EXPORT_SYMBOL_GPL vmlinux 0xf7d34842 cpufreq_unregister_governor +EXPORT_SYMBOL_GPL vmlinux 0xf7d6a7b7 ulpi_viewport_access_ops +EXPORT_SYMBOL_GPL vmlinux 0xf7e19dbc register_kprobe +EXPORT_SYMBOL_GPL vmlinux 0xf7f9a6c9 split_page +EXPORT_SYMBOL_GPL vmlinux 0xf82c0720 class_remove_file +EXPORT_SYMBOL_GPL vmlinux 0xf82f16b3 execute_in_process_context +EXPORT_SYMBOL_GPL vmlinux 0xf82f3657 work_on_cpu +EXPORT_SYMBOL_GPL vmlinux 0xf846506f irq_set_affinity_notifier +EXPORT_SYMBOL_GPL vmlinux 0xf848c937 debugfs_rename +EXPORT_SYMBOL_GPL vmlinux 0xf86a3a9f clk_gate_ops +EXPORT_SYMBOL_GPL vmlinux 0xf8802492 print_stack_trace +EXPORT_SYMBOL_GPL vmlinux 0xf8f3a0fb ata_ratelimit +EXPORT_SYMBOL_GPL vmlinux 0xf8fe3d0b kmsg_dump_register +EXPORT_SYMBOL_GPL vmlinux 0xf91c4a53 rq_flush_dcache_pages +EXPORT_SYMBOL_GPL vmlinux 0xf91db521 virtqueue_get_buf +EXPORT_SYMBOL_GPL vmlinux 0xf921b4a4 __blkg_prfill_u64 +EXPORT_SYMBOL_GPL vmlinux 0xf92ce956 kdb_printf +EXPORT_SYMBOL_GPL vmlinux 0xf932015f __raw_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xf93a64b0 usb_find_alt_setting +EXPORT_SYMBOL_GPL vmlinux 0xf94a3695 inet_hash_connect +EXPORT_SYMBOL_GPL vmlinux 0xf9532e89 dma_buf_fd +EXPORT_SYMBOL_GPL vmlinux 0xf955b28d snd_soc_jack_add_gpios +EXPORT_SYMBOL_GPL vmlinux 0xf96366b0 __pci_reset_function +EXPORT_SYMBOL_GPL vmlinux 0xf967422b HYPERVISOR_xen_version +EXPORT_SYMBOL_GPL vmlinux 0xf976be22 da9052_regmap_config +EXPORT_SYMBOL_GPL vmlinux 0xf982894f cgroup_next_sibling +EXPORT_SYMBOL_GPL vmlinux 0xf9903bb5 of_init_opp_table +EXPORT_SYMBOL_GPL vmlinux 0xf9a054b5 __round_jiffies +EXPORT_SYMBOL_GPL vmlinux 0xf9ca3160 ata_id_xfermask +EXPORT_SYMBOL_GPL vmlinux 0xf9d9264e xen_have_vector_callback +EXPORT_SYMBOL_GPL vmlinux 0xf9de08d9 digsig_verify +EXPORT_SYMBOL_GPL vmlinux 0xf9e14084 usb_register_device_driver +EXPORT_SYMBOL_GPL vmlinux 0xfa012fe7 tracepoint_probe_register +EXPORT_SYMBOL_GPL vmlinux 0xfa13c878 snd_soc_set_ac97_ops +EXPORT_SYMBOL_GPL vmlinux 0xfa1eb910 unregister_syscore_ops +EXPORT_SYMBOL_GPL vmlinux 0xfa47b9a6 key_type_asymmetric +EXPORT_SYMBOL_GPL vmlinux 0xfaa364ee ata_dev_disable +EXPORT_SYMBOL_GPL vmlinux 0xfae8cd6e tps65912_set_bits +EXPORT_SYMBOL_GPL vmlinux 0xfb082d03 posix_clock_unregister +EXPORT_SYMBOL_GPL vmlinux 0xfb26e442 regulator_set_voltage_sel_regmap +EXPORT_SYMBOL_GPL vmlinux 0xfb32b30f ring_buffer_read_prepare_sync +EXPORT_SYMBOL_GPL vmlinux 0xfb68448c dma_buf_vmap +EXPORT_SYMBOL_GPL vmlinux 0xfb6eedf9 power_group_name +EXPORT_SYMBOL_GPL vmlinux 0xfb8627af __crypto_alloc_tfm +EXPORT_SYMBOL_GPL vmlinux 0xfb933225 gpiochip_add_pin_range +EXPORT_SYMBOL_GPL vmlinux 0xfbb83802 class_interface_register +EXPORT_SYMBOL_GPL vmlinux 0xfbbedefd of_prop_next_string +EXPORT_SYMBOL_GPL vmlinux 0xfbc80c30 ata_scsi_ioctl +EXPORT_SYMBOL_GPL vmlinux 0xfbd956f1 device_release_driver +EXPORT_SYMBOL_GPL vmlinux 0xfbe5aaae snd_soc_jack_report +EXPORT_SYMBOL_GPL vmlinux 0xfc03d97a page_is_ram +EXPORT_SYMBOL_GPL vmlinux 0xfc1ec6b2 rtc_irq_register +EXPORT_SYMBOL_GPL vmlinux 0xfc274534 irq_create_direct_mapping +EXPORT_SYMBOL_GPL vmlinux 0xfc3f39a9 debugfs_create_u64 +EXPORT_SYMBOL_GPL vmlinux 0xfc71bc88 ata_sff_data_xfer_noirq +EXPORT_SYMBOL_GPL vmlinux 0xfc8f9de2 pm_wakeup_event +EXPORT_SYMBOL_GPL vmlinux 0xfca4731f iommu_attach_device +EXPORT_SYMBOL_GPL vmlinux 0xfcc69b78 stmpe_block_write +EXPORT_SYMBOL_GPL vmlinux 0xfcd7bc0b ring_buffer_empty +EXPORT_SYMBOL_GPL vmlinux 0xfcdb4034 wakeup_source_prepare +EXPORT_SYMBOL_GPL vmlinux 0xfd349a70 pci_find_next_ext_capability +EXPORT_SYMBOL_GPL vmlinux 0xfd3d0899 regulator_get_exclusive +EXPORT_SYMBOL_GPL vmlinux 0xfd41c7ce btree_merge +EXPORT_SYMBOL_GPL vmlinux 0xfd51b281 gnttab_end_foreign_access_ref +EXPORT_SYMBOL_GPL vmlinux 0xfd5c11e1 cgroup_is_descendant +EXPORT_SYMBOL_GPL vmlinux 0xfd632a33 ata_dummy_port_ops +EXPORT_SYMBOL_GPL vmlinux 0xfd6f7d77 ata_sff_data_xfer +EXPORT_SYMBOL_GPL vmlinux 0xfdb365e3 md_new_event +EXPORT_SYMBOL_GPL vmlinux 0xfdcf5d1d sysfs_put +EXPORT_SYMBOL_GPL vmlinux 0xfdd7bd25 __get_user_pages_fast +EXPORT_SYMBOL_GPL vmlinux 0xfdf8162d wm831x_auxadc_read +EXPORT_SYMBOL_GPL vmlinux 0xfe1ab404 snd_soc_codec_set_pll +EXPORT_SYMBOL_GPL vmlinux 0xfe1eb0f6 inet_csk_get_port +EXPORT_SYMBOL_GPL vmlinux 0xfe28c664 iommu_unmap +EXPORT_SYMBOL_GPL vmlinux 0xfe42bc97 sysfs_remove_group +EXPORT_SYMBOL_GPL vmlinux 0xfe4fce87 tpm_show_caps +EXPORT_SYMBOL_GPL vmlinux 0xfe525cf4 mtd_device_parse_register +EXPORT_SYMBOL_GPL vmlinux 0xfe990052 gpio_free +EXPORT_SYMBOL_GPL vmlinux 0xfeca4a1b pci_user_read_config_word +EXPORT_SYMBOL_GPL vmlinux 0xfed11ed1 usb_mon_deregister +EXPORT_SYMBOL_GPL vmlinux 0xfeda4e1c look_up_OID +EXPORT_SYMBOL_GPL vmlinux 0xfef8a166 trace_current_buffer_lock_reserve +EXPORT_SYMBOL_GPL vmlinux 0xff05fa13 vring_interrupt +EXPORT_SYMBOL_GPL vmlinux 0xff398d54 spi_sync_locked +EXPORT_SYMBOL_GPL vmlinux 0xff521e08 pci_user_read_config_dword +EXPORT_SYMBOL_GPL vmlinux 0xff5a8cfe cn_del_callback +EXPORT_SYMBOL_GPL vmlinux 0xff5cda7c wakeup_source_remove +EXPORT_SYMBOL_GPL vmlinux 0xff8b8a42 blkg_prfill_stat +EXPORT_SYMBOL_GPL vmlinux 0xffece114 pm_runtime_allow +EXPORT_SYMBOL_GPL vmlinux 0xfff29cc0 scsi_queue_work +EXPORT_SYMBOL_GPL vmlinux 0xfff3a7a7 pci_scan_child_bus --- linux-3.11.0.orig/debian.master/abi/3.11.0-15.23/i386/generic.compiler +++ linux-3.11.0/debian.master/abi/3.11.0-15.23/i386/generic.compiler @@ -0,0 +1 @@ +GCC: (Ubuntu/Linaro 4.8.1-10ubuntu8) 4.8.1 --- linux-3.11.0.orig/debian.master/abi/3.11.0-15.23/i386/generic.modules +++ linux-3.11.0/debian.master/abi/3.11.0-15.23/i386/generic.modules @@ -0,0 +1,4148 @@ +3c509 +3c515 +3c574_cs +3c589_cs +3c59x +3w-9xxx +3w-sas +3w-xxxx +53c700 +6lowpan +6pack +8021q +8139cp +8139too +8250_accent +8250_boca +8250_dw +8250_exar_st16c554 +8250_fourport +8250_hub6 +8255 +8255_pci +8390 +8390p +88pm800 +88pm805 +88pm80x +88pm80x_onkey +88pm860x_battery +88pm860x_bl +88pm860x_charger +88pm860x_onkey +88pm860x-ts +9p +9pnet +9pnet_rdma +9pnet_virtio +a100u2w +a3d +a8293 +aacraid +aat2870_bl +aat2870-regulator +ab3100 +ab3100-otp +abituguru +abituguru3 +ablk_helper +ac97_bus +acard-ahci +acecad +acenic +acerhdf +acer-wmi +acpi_ipmi +acpi_pad +acpiphp_ibm +acpi_power_meter +acquirewdt +act2000 +act200l-sir +act_csum +act_gact +act_ipt +actisys-sir +act_mirred +act_nat +act_pedit +act_police +act_simple +act_skbedit +ad2s1200 +ad2s1210 +ad2s90 +ad5064 +ad525x_dpot +ad525x_dpot-i2c +ad525x_dpot-spi +ad5360 +ad5380 +ad5398 +ad5421 +ad5446 +ad5449 +ad5504 +ad5624r_spi +ad5686 +ad5755 +ad5764 +ad5791 +ad5930 +ad5933 +ad714x +ad714x-i2c +ad714x-spi +ad7150 +ad7152 +ad7192 +ad7266 +ad7280a +ad7291 +ad7298 +ad7303 +ad7314 +ad7414 +ad7418 +ad7476 +ad7606 +ad7746 +ad7780 +ad7791 +ad7793 +ad7816 +ad7877 +ad7879 +ad7879-i2c +ad7879-spi +ad7887 +ad7923 +ad799x +ad8366 +ad9523 +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_2032 +addi_apci_2200 +addi_apci_3120 +addi_apci_3501 +addi_apci_3xxx +addi_watchdog +ade7753 +ade7754 +ade7758 +ade7759 +ade7854 +ade7854-i2c +ade7854-spi +adf4350 +adfs +adi +adis16060 +adis16080 +adis16130 +adis16136 +adis16201 +adis16203 +adis16204 +adis16209 +adis16220 +adis16240 +adis16260 +adis16400 +adis16480 +adis_lib +adjd_s311 +adl_pci6208 +adl_pci7x3x +adl_pci8164 +adl_pci9111 +adl_pci9118 +adm1021 +adm1025 +adm1026 +adm1029 +adm1031 +adm1275 +adm8211 +adm9240 +adp5520_bl +adp5520-keys +adp5588-keys +adp5589-keys +adp8860_bl +adp8870_bl +adq12b +ads1015 +ads7828 +ads7846 +ads7871 +ad_sigma_delta +adt7310 +adt7316 +adt7316-i2c +adt7316-spi +adt7410 +adt7411 +adt7462 +adt7470 +adt7475 +adt7x10 +adummy +adutux +adv7170 +adv7175 +adv7180 +advansys +advantechwdt +adv_pci1710 +adv_pci1723 +adv_pci1724 +adv_pci_dio +adxl34x +adxl34x-i2c +adxl34x-spi +adxrs450 +aes-i586 +aesni-intel +af_802154 +af9013 +af9033 +af_alg +affs +af_key +af_packet_diag +af-rxrpc +ah4 +ah6 +aha152x +aha152x_cs +aha1542 +aha1740 +ahci +ahci_imx +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-ci +altera_jtaguart +altera_ps2 +altera-stapl +altera_uart +alx +ambassador +amc6821 +amd5536udc +amd76x_edac +amd76xrom +amd8111e +amd_freq_sensitivity +amd-rng +amilo-rfkill +amplc_dio200 +amplc_dio200_common +amplc_dio200_pci +amplc_pc236 +amplc_pc263 +amplc_pci224 +amplc_pci230 +amplc_pci263 +ams369fg06 +analog +anatop-regulator +ansi_cprng +anubis +aoe +apanel +apds9802als +apds990x +apm +apple_bl +appledisplay +apple-gmux +applesmc +appletalk +appletouch +applicom +ar5523 +ar7part +arc4 +arcfb +arcmsr +arcnet +arc_ps2 +arc-rawmode +arc-rimi +arc_uart +arizona-haptics +arizona-i2c +arizona-ldo1 +arizona-micsupp +arizona-spi +ark3116 +arkfb +arptable_filter +arp_tables +arpt_mangle +as3711_bl +as3711-regulator +as5011 +asb100 +asc7621 +asix +ast +asus_atk0110 +asus-laptop +asus-nb-wmi +asus_oled +asus-wmi +async_memcpy +async_pq +async_raid6_recov +async_tx +async_xor +at24 +at25 +at76c50x-usb +at86rf230 +at91_ether +atbm8830 +aten +ath +ath10k_core +ath10k_pci +ath3k +ath5k +ath6kl_core +ath6kl_sdio +ath6kl_usb +ath9k +ath9k_common +ath9k_htc +ath9k_hw +ati-agp +ati_remote +ati_remote2 +atl1 +atl1c +atl1e +atl2 +atlas_btns +atm +atmel +atmel_cs +atmel_mxt_ts +atmel_pci +atmel_pwm +atmel-pwm-bl +atmel-ssc +atmtcp +atp +atp870u +atxp1 +aty128fb +atyfb +au0828 +au8522_common +au8522_decoder +au8522_dig +aufs +auo_k1900fb +auo_k1901fb +auo_k190x +auo-pixcir-ts +authenc +authencesn +auth_rpcgss +autofs4 +avma1_cs +avm_cs +avmfritz +ax25 +ax88179_178a +axnet_cs +b1 +b1dma +b1isa +b1pci +b1pcmcia +b2c2-flexcop +b2c2-flexcop-pci +b2c2-flexcop-usb +b43 +b43legacy +b44 +bas_gigaset +batman-adv +baycom_epp +baycom_par +baycom_ser_fdx +baycom_ser_hdx +bcache +bch +bcm203x +bcm3510 +bcm5974 +bcma +bcma-hcd +bcm_wimax +be2iscsi +be2net +befs +belkin_sa +bfa +bfs +bfusb +bh1770glc +bh1780gli +binfmt_aout +binfmt_misc +block2mtd +blocklayoutdriver +blowfish_common +blowfish_generic +bluecard_cs +bluetooth +bma150 +bmp085-i2c +bmp085-spi +bna +bnep +bnx2 +bnx2fc +bnx2i +bnx2x +bonding +bpa10x +bpck +bpck6 +bpctl_mod +bpqether +bq2415x_charger +bq27x00_battery +br2684 +brcmfmac +brcmsmac +brcmutil +bridge +broadsheetfb +bsd_comp +bt3c_cs +bt819 +bt856 +bt866 +bt878 +btcx-risc +btmrvl +btmrvl_sdio +btmtk_usb +btrfs +btsdio +bttv +btuart_cs +btusb +btwilink +bu21013_ts +budget +budget-av +budget-ci +budget-core +budget-patch +BusLogic +bw-qcam +bypass +c101 +c2port-duramar2150 +c4 +c67x00 +c6xdigio +cachefiles +cafe_ccic +cafe_nand +caif +caif_hsi +caif_serial +caif_socket +caif_usb +caif_virtio +camellia_generic +can +can-bcm +can-dev +can-gw +can-raw +capi +capidrv +capmode +carl9170 +carminefb +cassini +cast5_generic +cast6_generic +cast_common +catc +cb710 +cb710-mmc +cb_das16_cs +cb_pcidas +cb_pcidas64 +cb_pcidda +cb_pcimdas +cb_pcimdda +cc770 +cc770_isa +cc770_platform +c_can +c_can_pci +c_can_platform +cciss +ccm +cdc-acm +cdc_eem +cdc_ether +cdc_mbim +cdc_ncm +cdc-phonet +cdc_subset +cdc-wdm +cedusb +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 +chromeos_laptop +cifs +ci_hdrc +ci_hdrc_msm +ci_hdrc_pci +cirrus +cirrusfb +ck804xrom +classmate-laptop +clearpad_tm1217 +clip +clk-max77686 +clk-si5351 +clk-twl6040 +clk-wm831x +cls_basic +cls_cgroup +cls_flow +cls_fw +cls_route +cls_rsvp +cls_rsvp6 +cls_tcindex +cls_u32 +cm109 +cm4000_cs +cm4040_cs +cma3000_d0x +cma3000_d0x_i2c +cmac +cmdlinepart +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 +cops +cordic +core +coretemp +cosa +cp210x +cpcihp_generic +cpcihp_zt5550 +cpia2 +cpqarray +cpqphp +cpu5wdt +cpuid +cpu-notifier-error-inject +c-qcam +cramfs +cr_bllcd +crc32 +crc32-pclmul +crc7 +crc8 +crc-ccitt +crc-itu-t +cros_ec +cros_ec_i2c +cros_ec_keyb +cros_ec_spi +crvml +cryptd +cryptoloop +crypto_null +crypto_user +crystalhd +cs5345 +cs53l32a +cs5535-mfd +cs553x_nand +cs89x0 +csiostor +ct82c710 +ctr +cts +cuse +cw1200_core +cw1200_wlan_sdio +cw1200_wlan_spi +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 +cxd2099 +cxd2820r +cxgb +cxgb3 +cxgb3i +cxgb4 +cxgb4i +cxgb4vf +cxt1e1 +cy8ctmg110_ts +cyapa +cyber2000fb +cyberjack +cyclades +cypress_cy7c63 +cypress_firmware +cypress_m8 +cytherm +cyttsp4_core +cyttsp4_i2c +cyttsp4_spi +cyttsp_core +cyttsp_i2c +cyttsp_i2c_common +cyttsp_spi +da9030_battery +da9034-ts +da903x +da903x_bl +da9052-battery +da9052_bl +da9052-hwmon +da9052_onkey +da9052-regulator +da9052_tsi +da9052_wdt +da9055-hwmon +da9055_onkey +da9055-regulator +da9055_wdt +DAC960 +daqboard2000 +das08 +das08_cs +das08_isa +das08_pci +das16 +das16m1 +das1800 +das6402 +das800 +db9 +dc395x +dca +dccp +dccp_diag +dccp_ipv4 +dccp_ipv6 +dccp_probe +dcdbas +ddbridge +de2104x +de4x5 +decnet +deflate +defxx +dell-laptop +dell-led +dell_rbu +dell-wmi +dell-wmi-aio +denali +denali_dt +denali_pci +des_generic +designware_i2s +dgrp +dib0070 +dib0090 +dib3000mb +dib3000mc +dib7000m +dib7000p +dib8000 +dibx000_common +digi_acceleport +diskonchip +divacapi +divadidd +diva_idi +diva_mnt +divas +dl2k +dlci +dlm +dm1105 +dm9601 +dm-bio-prison +dm-bufio +dm-cache +dm-cache-cleaner +dm-cache-mq +dm-crypt +dm-delay +dme1737 +dmfe +dm-flakey +dmi-sysfs +dm-log +dm-log-userspace +dmm32at +dm-mirror +dm-multipath +dm-persistent-data +dm-queue-length +dm-raid +dm-raid45 +dm-region-hash +dm-round-robin +dm-service-time +dm-snapshot +dm-switch +dm-thin-pool +dm-verity +dmx3191d +dm-zero +dnet +dn_rtmsg +docg3 +docg4 +donauboe +dpt_i2o +drbd +drm +drm_kms_helper +drm_usb +drxd +drxk +ds1621 +ds1682 +ds1wm +ds2482 +ds2490 +ds2760_battery +ds2780_battery +ds2781_battery +ds2782_battery +ds3000 +ds620 +dsa_core +dsbr100 +dscc4 +dss1_divert +dst +dst_ca +dstr +dt2801 +dt2811 +dt2814 +dt2815 +dt2817 +dt282x +dt3000 +dt3155v4l +dt9812 +dtc +dtl1_cs +dtlk +dummy +dummy-irq +dvb-as102 +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-af9035 +dvb-usb-anysee +dvb-usb-au6610 +dvb-usb-az6007 +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-it913x +dvb-usb-lmedm04 +dvb-usb-m920x +dvb-usb-mxl111sf +dvb-usb-nova-t-usb2 +dvb-usb-opera +dvb-usb-pctv452e +dvb-usb-rtl28xxu +dvb-usb-technisat-usb2 +dvb-usb-ttusb2 +dvb-usb-umt-010 +dvb_usb_v2 +dvb-usb-vp702x +dvb-usb-vp7045 +dwc2 +dwc2_pci +dwc2_platform +dwc3 +dwc3-exynos +dwc3-omap +dwc3-pci +dw_dmac +dw_dmac_core +dw_dmac_pci +dyna_pci10xx +dynapro +e100 +e1000 +e1000e +e4000 +e752x_edac +e7xxx_edac +earth-pt1 +eata +ebt_802_3 +ebtable_broute +ebtable_filter +ebtable_nat +ebtables +ebt_among +ebt_arp +ebt_arpreply +ebt_dnat +ebt_ip +ebt_ip6 +ebt_limit +ebt_log +ebt_mark +ebt_mark_m +ebt_nflog +ebt_pkttype +ebt_redirect +ebt_snat +ebt_stp +ebt_vlan +ec100 +echo +ec_sys +edac_core +edac_mce_amd +edt-ft5x06 +eeepc-laptop +eeepc-wmi +eeprom +eeprom_93cx6 +eeprom_93xx46 +eeti_ts +efficeon-agp +efi-pstore +efs +einj +elo +elsa_cs +em28xx +em28xx-alsa +em28xx-dvb +em28xx-rc +emc1403 +emc2103 +emc6w201 +em_canid +em_cmp +emi26 +emi62 +em_ipset +em_meta +em_nbyte +empeg +ems_pci +ems_pcmcia +ems_usb +em_text +emu10k1-gp +em_u32 +enc28j60 +enclosure +ene_ir +eni +enic +epat +epia +epic100 +eql +esb2rom +esd_usb2 +esi-sir +esp4 +esp6 +et131x +ethoc +eurotechwdt +evbug +exofs +ext2 +extcon-adc-jack +extcon-arizona +extcon-gpio +extcon-max77693 +extcon-max8997 +extcon-palmas +exynos-rng +ezusb +f2fs +f71805f +f71808e_wdt +f71882fg +f75375s +f81232 +fakelb +fam15h_power +fan53555 +farsync +faulty +fb_ddc +fb_sys_fops +fc0011 +fc0012 +fc0013 +fc2580 +fcoe +fcrypt +fdomain +fdomain_cs +fealnx +ff-memless +fintek-cir +firedtv +firestream +firewire-core +firewire-net +firewire-ohci +firewire-sbp2 +firewire-serial +fit2 +fit3 +fixed +fl512 +flashloader +floppy +fm801-gp +fmc +fmc-chardev +fmc-fakedev +fmc-trivial +fmc-write-eeprom +fm_drv +fmvj18x_cs +fnic +forcedeth +fore_200e +fotg210-udc +freevxfs +friq +frpw +fsa9480 +fscache +fschmd +fsl_lpuart +ft1000 +ft1000_pcmcia +ftdi-elan +ftdi_sio +ftl +fujitsu-laptop +fujitsu-tablet +fujitsu_ts +funsoft +fusbh200-hcd +g450_pll +g760a +g762 +g_acm_ms +gadgetfs +gamecon +gameport +garmin_gps +garp +g_audio +g_cdc +gcm +g_dbgp +gdmwm +gdth +generic +generic-adc-battery +generic_bl +gen_probe +geode-aes +geode-rng +g_ether +gf128mul +gf2k +g_ffs +gfs2 +ghash-generic +g_hid +gigaset +girbil-sir +gl518sm +gl520sm +gl620a +gluebi +glue_helper +gma500_gfx +g_mass_storage +g_midi +g_ncm +g_NCR5380 +g_NCR5380_mmio +g_nokia +go7007 +go7007-loader +go7007-usb +goku_udc +goldfish_battery +goldfishfb +gp2ap002a00f +gpio-74x164 +gpio-addr-flash +gpio-adp5520 +gpio-adp5588 +gpio-amd8111 +gpio-arizona +gpio-charger +gpio-cs5535 +gpio-da9052 +gpio-da9055 +gpio-fan +gpio-generic +gpio-ich +gpio-ir-recv +gpio-it8761e +gpio-janz-ttl +gpio_keys +gpio_keys_polled +gpio-max7300 +gpio-max7301 +gpio-max730x +gpio-max732x +gpio-mc33880 +gpio-mcp23s08 +gpio-ml-ioh +gpio_mouse +gpio-pca953x +gpio-pcf857x +gpio-pch +gpio-rdc321x +gpio-regulator +gpio-sch +gpio_tilt_polled +gpio-tps65912 +gpio-ts5500 +gpio-twl6040 +gpio-viperboard +gpio-vx855 +gpio-wm831x +gpio-wm8350 +gpio-wm8994 +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_jl2005bcd +gspca_kinect +gspca_konica +gspca_m5602 +gspca_main +gspca_mars +gspca_mr97310a +gspca_nw80x +gspca_ov519 +gspca_ov534 +gspca_ov534_9 +gspca_pac207 +gspca_pac7302 +gspca_pac7311 +gspca_se401 +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_topro +gspca_tv8532 +gspca_vc032x +gspca_vicam +gspca_xirlink_cit +gspca_zc3xx +gtco +guillemot +gunze +g_webcam +gx1fb +gxfb +gx-suspmod +g_zero +hamachi +hampshire +hangcheck-timer +hanwang +hci +hci_uart +hci_vhci +hdaps +hdlc +hdlc_cisco +hdlcdrv +hdlc_fr +hdlc_ppp +hdlc_raw +hdlc_raw_eth +hdlc_x25 +hdpvr +he +hecubafb +hexium_gemini +hexium_orion +hfc4s8s_l1 +hfcmulti +hfcpci +hfcsusb +hfc_usb +hfs +hfsplus +hgafb +hid +hid-a4tech +hid-apple +hid-appleir +hid-aureal +hid-axff +hid-belkin +hid-cherry +hid-chicony +hid-cypress +hid-dr +hid-elecom +hid-elo +hid-emsff +hid-ezkey +hid-gaff +hid-generic +hid-gyration +hid-holtekff +hid-holtek-kbd +hid-holtek-mouse +hid-huion +hid-hyperv +hid-icade +hid-kensington +hid-keytouch +hid-kye +hid-lcpower +hid-lenovo-tpkbd +hid-logitech +hid-logitech-dj +hid-magicmouse +hid-microsoft +hid-monterey +hid-multitouch +hid-ntrig +hid-ortek +hidp +hid-petalynx +hid-picolcd +hid-pl +hid-primax +hid-prodikeys +hid-roccat +hid-roccat-arvo +hid-roccat-common +hid-roccat-isku +hid-roccat-kone +hid-roccat-koneplus +hid-roccat-konepure +hid-roccat-kovaplus +hid-roccat-lua +hid-roccat-pyra +hid-roccat-savu +hid-saitek +hid-samsung +hid-sensor-accel-3d +hid-sensor-als +hid-sensor-gyro-3d +hid-sensor-hub +hid-sensor-iio-common +hid-sensor-magn-3d +hid-sensor-trigger +hid-sjoy +hid-sony +hid-speedlink +hid-steelseries +hid-sunplus +hid-thingm +hid-tivo +hid-tmff +hid-topseed +hid-twinhan +hid-uclogic +hid-wacom +hid-waltop +hid-wiimote +hid-zpff +hid-zydacron +hih6130 +hisax +hisax_fcpcipnp +hisax_isac +hisax_st5481 +hmc5843 +hmc6352 +hopper +horizon +hostap +hostap_cs +hostap_pci +hostap_plx +hostess_sv11 +hp100 +hp4x +hp_accel +hpfs +hpilo +hpsa +hptiop +hpwdt +hp-wmi +hsi +hsi_char +hso +htc-pasic3 +htcpen +hv_balloon +hv_netvsc +hv_storvsc +hv_utils +hv_vmbus +hwa-hc +hwa-rc +hwmon-vid +hwpoison-inject +hx8357 +hyperv_fb +hysdn +i1480-dfu-usb +i1480-est +i2400m +i2400m-usb +i2c-algo-bit +i2c-algo-pca +i2c-ali1535 +i2c-ali1563 +i2c-ali15x3 +i2c-amd756 +i2c-amd756-s4882 +i2c-amd8111 +i2c-cbus-gpio +i2c-designware-core +i2c-designware-pci +i2c-designware-platform +i2c-dev +i2c-diolan-u2c +i2c-eg20t +i2c-gpio +i2c-hid +i2c-i801 +i2c-isch +i2c-ismt +i2c-kempld +i2c-matroxfb +i2c-mux +i2c-mux-gpio +i2c-mux-pca9541 +i2c-mux-pca954x +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-viperboard +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 +i740fb +i7core_edac +i810 +i810fb +i82092 +i82365 +i82860_edac +i82875p_edac +i82975x_edac +i8k +i915 +ib700wdt +ib_addr +ib_cm +ib_core +ib_ipoib +ib_iser +ib_isert +ib_mad +ibmaem +ibmasm +ibmasr +ibmpex +ibmphp +ibm_rtl +ib_mthca +ib_sa +ib_srp +ib_srpt +ib_ucm +ib_umad +ib_uverbs +ichxrom +icn +icp_multi +ics932s401 +ideapad-laptop +idmouse +idt77252 +ie6xx_wdt +ieee802154 +ifb +iforce +igb +igbvf +iguanair +iio_dummy +iio_hwmon +iio-trig-interrupt +iio-trig-periodic-rtc +iio-trig-sysfs +ii_pci20kc +ili210x +ili922x +ili9320 +imm +imon +ims-pcu +imx074 +in2000 +ina209 +ina2xx +industrialio +industrialio-triggered-buffer +inet_diag +inexio +inftl +initio +input-polldev +int51x1 +intelfb +intel_ips +intel_menlow +intel_mid_battery +intel_mid_dma +intel_mid_powerbtn +intel_mid_thermal +intel-mid-touch +intel_oaktrail +intel_powerclamp +intel-rng +intel-rst +intel_scu_ipcutil +intel-smartconnect +intel_vr_nor +interact +interval_tree_test +inv-mpu6050 +ioatdma +ioc4 +io_edgeport +io_ti +iowarrior +ip6_gre +ip6table_filter +ip6table_mangle +ip6table_nat +ip6table_raw +ip6_tables +ip6table_security +ip6t_ah +ip6t_eui64 +ip6t_frag +ip6t_hbh +ip6t_ipv6header +ip6t_MASQUERADE +ip6t_mh +ip6t_NPT +ip6t_REJECT +ip6t_rpfilter +ip6t_rt +ip6_tunnel +ipack +ipaq +ipcomp +ipcomp6 +ipddp +ipg +ip_gre +iphase +ipheth +ipip +ipmi_devintf +ipmi_msghandler +ipmi_poweroff +ipmi_si +ipmi_watchdog +ipoctal +ipr +ips +ip_set +ip_set_bitmap_ip +ip_set_bitmap_ipmac +ip_set_bitmap_port +ip_set_hash_ip +ip_set_hash_ipport +ip_set_hash_ipportip +ip_set_hash_ipportnet +ip_set_hash_net +ip_set_hash_netiface +ip_set_hash_netport +ip_set_list_set +iptable_filter +iptable_mangle +iptable_nat +iptable_raw +ip_tables +iptable_security +ipt_ah +ipt_CLUSTERIP +ipt_ECN +ipt_MASQUERADE +ipt_REJECT +ipt_rpfilter +ipt_ULOG +ip_tunnel +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 +ip_vti +ipw +ipw2100 +ipw2200 +ipwireless +ipx +ircomm +ircomm-tty +irda +irda-usb +iris +ir-jvc-decoder +ir-kbd-i2c +irlan +ir-lirc-codec +ir-mce_kbd-decoder +ir-nec-decoder +irnet +ir-rc5-decoder +ir-rc5-sz-decoder +ir-rc6-decoder +ir-sanyo-decoder +ir-sony-decoder +irtty-sir +ir-usb +isci +iscsi_boot_sysfs +iscsi_ibft +iscsi_target_mod +iscsi_tcp +isdn +isdn_bsdcomp +isdnhdlc +isicom +isight_firmware +isl29003 +isl29018 +isl29020 +isl29028 +isl6271a-regulator +isl6405 +isl6421 +isl6423 +isofs +isp116x-hcd +isp1362-hcd +isp1704_charger +isp1760 +it87 +it8712f_wdt +it87_wdt +it913x-fe +iTCO_vendor_support +iTCO_wdt +itd1000 +ite-cir +itg3200 +iuu_phoenix +ivtv +ivtv-alsa +ivtvfb +iw_c2 +iw_cm +iw_cxgb3 +iw_cxgb4 +iwl3945 +iwl4965 +iwldvm +iwlegacy +iwlmvm +iwlwifi +iw_nes +ix2505v +ixgb +ixgbe +ixgbevf +janz-cmodio +janz-ican3 +jc42 +jedec_probe +jffs2 +jfs +jmb38x_ms +jme +joydev +joydump +jr3_pci +jsm +k10temp +k8temp +kafs +kalmia +kaweth +kb3886_bl +kbic +kbtab +kcomedilib +ke_counter +kempld-core +kempld_wdt +kernelcapi +keucr +keyspan +keyspan_pda +keyspan_remote +kfifo_buf +khazad +kingsun-sir +kl5kusb105 +kobil_sct +ks0108 +ks0127 +ks8842 +ks8851 +ks8851_mll +ks959-sir +ksdazzle-sir +ksz884x +ktti +kvaser_pci +kvaser_usb +kvm +kvm-amd +kvm-intel +kxsd9 +kxtj9 +kyrofb +l1oip +l2tp_core +l2tp_debugfs +l2tp_eth +l2tp_ip +l2tp_ip6 +l2tp_netlink +l2tp_ppp +l440gx +l4f00242t03 +l64781 +lanai +lance +lapb +lapbether +latch-addr-flash +lattice-ecp3-config +lcd +ld9040 +ldusb +lec +leds-88pm860x +leds-adp5520 +leds-atmel-pwm +leds-bd2802 +leds-blinkm +leds-clevo-mail +leds-da903x +leds-da9052 +leds-dac124s085 +leds-gpio +leds-lm3530 +leds-lm3533 +leds-lm355x +leds-lm3642 +leds-lp3944 +leds-lp5521 +leds-lp5523 +leds-lp5562 +leds-lp55xx-common +leds-lp8788 +leds-lt3593 +leds-max8997 +leds-mc13783 +leds-net48xx +leds-ot200 +leds-pca9532 +leds-pca955x +leds-pca9633 +leds-pwm +leds-regulator +leds-ss4200 +leds-tca6507 +leds-wm831x-status +leds-wm8350 +leds-wrap +ledtrig-backlight +ledtrig-camera +ledtrig-default-on +ledtrig-gpio +ledtrig-heartbeat +ledtrig-oneshot +ledtrig-timer +ledtrig-transient +legousbtower +lg2160 +lgdt3305 +lgdt330x +lgs8gxx +lg-vl600 +lib80211 +lib80211_crypt_ccmp +lib80211_crypt_tkip +lib80211_crypt_wep +libahci +libceph +libcomposite +libcrc32c +libcxgbi +libertas +libertas_cs +libertas_sdio +libertas_spi +libertas_tf +libertas_tf_usb +libfc +libfcoe +libipw +libiscsi +libiscsi_tcp +libore +libosd +libsas +libsrp +lightning +line6usb +lineage-pem +linear +lirc_bt829 +lirc_dev +lirc_igorplugusb +lirc_imon +lirc_parallel +lirc_sasem +lirc_serial +lirc_sir +lirc_zilog +lis3l02dq +lis3lv02d +lis3lv02d_i2c +litelink-sir +lkkbd +llc +llc2 +lm25066 +lm3533-als +lm3533_bl +lm3533-core +lm3533-ctrlbank +lm3630_bl +lm3639_bl +lm63 +lm70 +lm73 +lm75 +lm77 +lm78 +lm80 +lm83 +lm8323 +lm8333 +lm85 +lm87 +lm90 +lm92 +lm93 +lm95234 +lm95241 +lm95245 +lmc +lms283gf05 +lms501kf03 +lnbp21 +lnbp22 +lockd +logibm +longhaul +longrun +lp +lp3971 +lp3972 +lp855x_bl +lp8727_charger +lp8755 +lp8788_bl +lp8788-charger +lpc_ich +lpc_sch +lpddr_cmds +lpfc +lru_cache +lrw +ltc2978 +ltc4151 +ltc4215 +ltc4245 +ltc4261 +ltpc +lttng-ftrace +lttng-kprobes +lttng-kretprobes +lttng-lib-ring-buffer +lttng-probe-asoc +lttng-probe-block +lttng-probe-btrfs +lttng-probe-compaction +lttng-probe-ext3 +lttng-probe-ext4 +lttng-probe-gpio +lttng-probe-irq +lttng-probe-jbd +lttng-probe-jbd2 +lttng-probe-kmem +lttng-probe-kvm +lttng-probe-kvm-x86 +lttng-probe-kvm-x86-mmu +lttng-probe-module +lttng-probe-napi +lttng-probe-net +lttng-probe-power +lttng-probe-printk +lttng-probe-random +lttng-probe-rcu +lttng-probe-regmap +lttng-probe-regulator +lttng-probe-rpm +lttng-probe-sched +lttng-probe-scsi +lttng-probe-signal +lttng-probe-skb +lttng-probe-sock +lttng-probe-statedump +lttng-probe-sunrpc +lttng-probe-timer +lttng-probe-udp +lttng-probe-vmscan +lttng-probe-workqueue +lttng-probe-writeback +lttng-ring-buffer-client-discard +lttng-ring-buffer-client-mmap-discard +lttng-ring-buffer-client-mmap-overwrite +lttng-ring-buffer-client-overwrite +lttng-ring-buffer-metadata-client +lttng-ring-buffer-metadata-mmap-client +lttng-statedump +lttng-tracer +lttng-types +ltv350qv +lxfb +lz4 +lz4_compress +lz4hc +lz4hc_compress +m25p80 +m2m-deinterlace +m52790 +m88rs2000 +ma600-sir +mac80211 +mac80211_hwsim +mac802154 +macb +mac-celtic +mac-centeuro +mac-croatian +mac-cyrillic +mac-gaelic +mac-greek +mac_hid +machzwd +mac-iceland +mac-inuit +macmodes +mac-roman +mac-romanian +mac-turkish +macvlan +macvtap +magellan +mantis +mantis_core +map_absent +map_funcs +map_ram +map_rom +matrix-keymap +matrix_keypad +matroxfb_accel +matroxfb_base +matroxfb_crtc2 +matroxfb_DAC1064 +matroxfb_g450 +matroxfb_maven +matroxfb_misc +matroxfb_Ti3026 +matrox_w1 +max1111 +max11801_ts +max1363 +max1586 +max16064 +max16065 +max1619 +max1668 +max17040_battery +max17042_battery +max197 +max2165 +max3100 +max34440 +max517 +max6639 +max6642 +max6650 +max6697 +max6875 +max7359_keypad +max77686 +max77693 +max8649 +max8660 +max8688 +max8903_charger +max8907 +max8907-regulator +max8925_bl +max8925_onkey +max8925_power +max8925-regulator +max8952 +max8973-regulator +max8997 +max8997_charger +max8998 +max8998_charger +mb862xxfb +mb86a16 +mb86a20s +mc13783-adc +mc13783-pwrbutton +mc13783-regulator +mc13783_ts +mc13892-regulator +mc13xxx-core +mc13xxx-i2c +mc13xxx-regulator-core +mc13xxx-spi +mc44s803 +mce_amd_inj +mce-inject +mceusb +mcp2120-sir +mcp251x +mcp3021 +mcp320x +mcp4725 +mcs5000_ts +mcs7780 +mcs7830 +mcs_touchkey +mct_u232 +md4 +mdacon +mdc800 +mdio +me4000 +me_daq +megaraid +megaraid_mbox +megaraid_mm +megaraid_sas +mei +mei-me +mei_phy +mem2mem_testdev +memstick +mena21_wdt +metronomefb +metro-usb +meye +mfd +mga +michael_mic +microcode +microread +microread_i2c +microread_mei +microtek +mii +minix +mip6 +mISDN_core +mISDN_dsp +mISDNinfineon +mISDNipac +mISDNisar +mite +mixcomwd +mk712 +mkiss +mlx4_core +mlx4_en +mlx4_ib +mlx5_core +mlx5_ib +mma8450 +mmc_block +mms114 +mos7720 +mos7840 +moto_modem +moxa +mpc624 +mpoa +mpr121_touchkey +mpt2sas +mpt3sas +mptbase +mptctl +mptfc +mptlan +mptsas +mptscsih +mptspi +mpu3050 +mrf24j40 +mrp +mrst_max3110 +msdos +msi-laptop +msi-wmi +msp3400 +mspro_block +msr +mt2060 +mt2063 +mt20xx +mt2131 +mt2266 +mt312 +mt352 +mt9m001 +mt9m111 +mt9t031 +mt9t112 +mt9v011 +mt9v022 +mtd +mtd_blkdevs +mtdblock +mtdblock_ro +mtd_dataflash +mtdoops +mtdram +mtdswap +mtip32xx +mtouch +multipath +multiq3 +musb_hdrc +mv88e6060 +mv88e6xxx_drv +mvmdio +mvsas +mv_u3d_core +mv_udc +mvumi +mwave +mwifiex +mwifiex_pcie +mwifiex_sdio +mwifiex_usb +mwl8k +mxb +mxl111sf-demod +mxl111sf-tuner +mxl5005s +mxl5007t +mxm-wmi +mxser +myri10ge +n2 +n411 +nand +nand_bch +nand_ecc +nand_ids +nandsim +natsemi +navman +nbd +nci +ncpfs +NCR53c406a +nct6775 +ne +ne2k-pci +neofb +net1080 +net2272 +net2280 +netconsole +netjet +netlink_diag +netprio_cgroup +netrom +netsc520 +nettel +netxen_nic +newtonkbd +nfc +nf_conntrack +nf_conntrack_amanda +nf_conntrack_broadcast +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_snmp +nf_conntrack_tftp +nfcsim +nfcwilink +nf_defrag_ipv4 +nf_defrag_ipv6 +nf_nat +nf_nat_amanda +nf_nat_ftp +nf_nat_h323 +nf_nat_ipv4 +nf_nat_ipv6 +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_acct +nfnetlink_cthelper +nfnetlink_cttimeout +nfnetlink_log +nfnetlink_queue +nfs +nfs_acl +nfsd +nfs_layout_nfsv41_files +nfsv2 +nfsv3 +nfsv4 +nftl +nf_tproxy_core +ngene +n_hdlc +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 +ni_labpc_pci +nilfs2 +ni_mio_cs +ni_pcidio +ni_pcimio +ni_tio +ni_tiocmd +niu +nlmon +nls_ascii +nls_cp1250 +nls_cp1251 +nls_cp1255 +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 +nosy +notifier-error-inject +nouveau +nozomi +n_r3964 +ns558 +ns83820 +nsc_gpio +nsc-ircc +nsp32 +nsp_cs +ntc_thermistor +ntfs +n_tracerouter +n_tracesink +nuvoton-cir +nvidiafb +nvme +nvram +nv_tco +nxt200x +nxt6000 +objlayoutdriver +ocfs2 +ocfs2_dlm +ocfs2_dlmfs +ocfs2_nodemanager +ocfs2_stackglue +ocfs2_stack_o2cb +ocfs2_stack_user +ocrdma +old_belkin-sir +omfs +omninet +on20 +on26 +onenand +opencores-kbd +openvswitch +oprofile +opticon +option +or51132 +or51211 +orinoco +orinoco_cs +orinoco_nortel +orinoco_plx +orinoco_tmd +orinoco_usb +osd +osdblk +osst +oti6858 +output +ov2640 +ov5642 +ov6650 +ov7640 +ov7670 +ov772x +ov9640 +ov9740 +overlayfs +oxu210hp-hcd +ozwpan +p4-clockmod +p54common +p54pci +p54spi +p54usb +p8022 +p8023 +padlock-aes +padlock-sha +palmas-regulator +panasonic-laptop +panel +paride +parkbd +parport +parport_ax88796 +parport_cs +parport_pc +parport_serial +pas16 +pata_acpi +pata_ali +pata_amd +pata_arasan_cf +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_piccolo +pata_platform +pata_radisys +pata_rdc +pata_rz1000 +pata_sc1200 +pata_sch +pata_serverworks +pata_sil680 +pata_sl82c105 +pata_triflex +pata_via +pc110pad +pc300too +pc87360 +pc8736x_gpio +pc87413_wdt +pc87427 +pcap_keys +pcap-regulator +pcap_ts +pcbc +pcbit +pcd +pcf50633 +pcf50633-adc +pcf50633-backlight +pcf50633-charger +pcf50633-gpio +pcf50633-input +pcf50633-regulator +pcf8574_keypad +pcf8591 +pch_can +pch_dma +pch_gbe +pch_phub +pch_uart +pch_udc +pci +pci200syn +pcips2 +pci-stub +pcl711 +pcl724 +pcl726 +pcl730 +pcl812 +pcl816 +pcl818 +pcm3724 +pcmad +pcmcia +pcmcia_core +pcmciamtd +pcmcia_rsrc +pcmda12 +pcmmio +pcmuio +pcnet32 +pcnet_cs +pcrypt +pcspkr +pcwd +pcwd_pci +pcwd_usb +pd +pd6729 +pda_power +pdc_adma +peak_pci +peak_pcmcia +peak_usb +pegasus +penmount +pf +pg +phantom +phison +phonet +phram +phy-gpio-vbus-usb +phy-isp1301 +phy-nop +phy-omap-control +phy-omap-usb3 +phy-rcar-usb +phy-samsung-usb +phy-samsung-usb2 +phy-samsung-usb3 +physmap +pixcir_i2c_ts +pktcdvd +pktgen +pl2303 +platform_lcd +plat_nand +plat-ram +plip +plusb +pluto2 +plx_pci +pm2fb +pm3fb +pm80xx +pmbus +pmbus_core +pmc551 +pmcraid +pm-notifier-error-inject +pms +pn533 +pn544 +pn544_i2c +pn544_mei +pn_pep +poc +poseidon +powermate +powernow-k6 +powernow-k7 +ppa +ppdev +ppp_async +ppp_deflate +ppp_mppe +pppoatm +pppoe +pppox +ppp_synctty +pps_core +pps-gpio +pps-ldisc +pps_parport +pptp +prism2_usb +ps2mult +psmouse +psnap +pt +pti +ptp +ptp_pch +pvpanic +pvrusb2 +pwc +pwm-beeper +pwm_bl +pxa27x_udc +qcaux +qcserial +qinfo_probe +qla1280 +qla2xxx +qla3xxx +qla4xxx +qlcnic +qlge +qlogic_cs +qlogicfas +qlogicfas408 +qmi_wwan +qnx4 +qnx6 +qt1010 +qt1070 +qt2160 +quatech2 +quatech_daqp_cs +quickstart +quota_tree +quota_v1 +quota_v2 +qxl +r128 +r592 +r6040 +r8152 +r815x +r8169 +r8187se +r8192e_pci +r8192u_usb +r820t +r82600_edac +r852 +r8712u +r8a66597-hcd +r8a66597-udc +radeon +radeonfb +radio-aimslab +radio-aztech +radio-cadet +radio-gemtek +radio-i2c-si470x +radio-isa +radio-keene +radio-ma901 +radio-maxiradio +radio-miropcm20 +radio-mr800 +radio-rtrack2 +radio-sf16fmi +radio-sf16fmr2 +radio-shark +radio-si4713 +radio-si476x +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 +raw +ray_cs +rbd +rbtree_test +rc5t583-regulator +rc-adstech-dvb-t-pci +rc-alink-dtu-m +rc-anysee +rc-apac-viewcomp +rc-asus-pc39 +rc-asus-ps3-100 +rc-ati-tv-wonder-hd-600 +rc-ati-x10 +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-delock-61959 +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 +rc-imon-mce +rc-imon-pad +rc-iodata-bctv7e +rc-it913x-v1 +rc-it913x-v2 +rc-kaiomy +rc-kworld-315u +rc-kworld-pc150u +rc-kworld-plus-tv-analog +rc-leadtek-y04g0051 +rc-lirc +rc-lme2510 +rc-loopback +rc-manli +rc-medion-x10 +rc-medion-x10-digitainer +rc-medion-x10-or2x +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-rc6-mce +rc-real-audio-220-32-keys +rc-reddo +rc-snapstream-firefly +rc-streamzap +rc-tbs-nec +rc-technisat-usb2 +rc-terratec-cinergy-xs +rc-terratec-slim +rc-terratec-slim-2 +rc-tevii-nec +rc-tivo +rc-total-media-in-hand +rc-total-media-in-hand-02 +rc-trekstor +rc-tt-1500 +rc-twinhan1027 +rc-videomate-m1f +rc-videomate-s350 +rc-videomate-tv-pvr +rc-winfast +rc-winfast-usbii-deluxe +rdc321x-southbridge +rdma_cm +rdma_ucm +rds +rds_rdma +rds_tcp +redboot +redrat3 +reed_solomon +reiserfs +remoteproc +renesas_usbhs +retu-mfd +retu-pwrbutton +retu_wdt +rfc1051 +rfc1201 +rfcomm +rfd_ftl +rfkill-gpio +rfkill-regulator +rio500 +rionet +rio-scan +rivafb +rj54n1cb0c +rmd128 +rmd160 +rmd256 +rmd320 +rndis_host +rndis_wlan +rocket +romfs +rose +rotary_encoder +rp2 +rpcsec_gss_krb5 +rsxx +rt2400pci +rt2500pci +rt2500usb +rt2800lib +rt2800pci +rt2800usb +rt2x00lib +rt2x00mmio +rt2x00pci +rt2x00usb +rt61pci +rt73usb +rtc-88pm80x +rtc-88pm860x +rtc-ab3100 +rtc-bq32k +rtc-bq4802 +rtc-da9052 +rtc-da9055 +rtc-ds1286 +rtc-ds1305 +rtc-ds1307 +rtc-ds1374 +rtc-ds1390 +rtc-ds1511 +rtc-ds1553 +rtc-ds1672 +rtc-ds1742 +rtc-ds2404 +rtc-ds3232 +rtc-ds3234 +rtc-em3027 +rtc-fm3130 +rtc-hid-sensor-time +rtc-isl12022 +rtc-isl1208 +rtc-lp8788 +rtc-m41t80 +rtc-m41t93 +rtc-m41t94 +rtc-m48t35 +rtc-m48t59 +rtc-m48t86 +rtc-max6900 +rtc-max6902 +rtc-max77686 +rtc-max8907 +rtc-max8925 +rtc-max8997 +rtc-max8998 +rtc-mc13xxx +rtc-mrst +rtc-msm6242 +rtc-palmas +rtc-pcap +rtc-pcf2123 +rtc-pcf2127 +rtc-pcf50633 +rtc-pcf8523 +rtc-pcf8563 +rtc-pcf8583 +rtc-r9701 +rtc-rc5t583 +rtc-rp5c01 +rtc-rs5c348 +rtc-rs5c372 +rtc-rv3029c2 +rtc-rx4581 +rtc-rx8025 +rtc-rx8581 +rtc-s35390a +rtc-stk17ta8 +rtc-tps6586x +rtc-tps65910 +rtc-tps80031 +rtc-v3020 +rtc-wm831x +rtc-wm8350 +rtc-x1205 +rtd520 +rti800 +rti802 +rtl2830 +rtl2832 +rtl8150 +rtl8180 +rtl8187 +rtl8188ee +rtl8192c-common +rtl8192ce +rtl8192cu +rtl8192de +rtl8192se +rtl8723ae +rtllib +rtllib_crypt_ccmp +rtllib_crypt_tkip +rtllib_crypt_wep +rtl_pci +rtl_usb +rtlwifi +rts5139 +rtsx_pci +rtsx_pci_ms +rtsx_pci_sdmmc +rxkad +s1d13xxxfb +s2250 +s2255drv +s2io +s2mps11 +s3fb +s526 +s5h1409 +s5h1411 +s5h1420 +s5m8767 +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 +samsung-keypad +samsung-laptop +samsung-q10 +sata_inic162x +sata_mv +sata_nv +sata_promise +sata_qstor +sata_rcar +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 +sbp_target +sbs +sbs-battery +sbshc +sc +sc1200wdt +sc520cdp +sc520_wdt +sc92031 +sca3000 +scb2_flash +scc +sch311x_wdt +sch5627 +sch5636 +sch56xx-common +sch_atm +sch_cbq +sch_choke +sch_codel +sch_drr +sch_dsmark +sch_fq_codel +sch_gred +sch_hfsc +sch_htb +sch_ingress +sch_mqprio +sch_multiq +sch_netem +sch_plug +sch_prio +sch_qfq +sch_red +sch_sfb +sch_sfq +sch_tbf +sch_teql +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_srp +sctp +sctp_probe +scx200 +scx200_acb +scx200_docflash +scx200_gpio +scx200_hrt +scx200_wdt +sdhci +sdhci-acpi +sdhci-pci +sdhci-pltfm +sdhci-pxav2 +sdhci-pxav3 +sdio_uart +sdla +sdricoh_cs +sealevel +sedlbauer_cs +seed +sep_driver +seqiv +ser_gigaset +serial2002 +serial_cs +serio_raw +sermouse +serpent_generic +serpent-sse2-i586 +serport +serqt_usb2 +ses +sfc +shark2 +sh_eth +sh_mobile_ceu_camera +sh_mobile_csi2 +shpchp +sht15 +sht21 +sh_veu +si21xx +si4713-i2c +si476x-core +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 +sky2 +sl811_cs +sl811-hcd +slcan +slicoss +slip +slram +sm501 +sm501fb +sm7xxfb +smb347-charger +smc9194 +smc91c92_cs +sm_common +smc-ultra +sm_ftl +smm665 +smsc37b787_wdt +smsc47b397 +smsc47m1 +smsc47m192 +smsc75xx +smsc911x +smsc9420 +smsc95xx +smsc-ircc2 +smscufx +smsdvb +smsmdtv +smssdio +smsusb +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-at73c213 +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-cmi8328 +snd-cmi8330 +snd-cmipci +snd-compress +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-firewire-lib +snd-firewire-speakers +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-ca0132 +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-isight +snd-jazz16 +snd-korg1212 +snd-layla20 +snd-layla24 +snd-lola +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-scs1x +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-ab8500-codec +snd-soc-ad1836 +snd-soc-ad193x +snd-soc-ad73311 +snd-soc-adau1373 +snd-soc-adav80x +snd-soc-ads117x +snd-soc-ak4104 +snd-soc-ak4535 +snd-soc-ak4641 +snd-soc-ak4642 +snd-soc-ak4671 +snd-soc-ak5386 +snd-soc-alc5623 +snd-soc-alc5632 +snd-soc-arizona +snd-soc-atmel-pcm +snd-soc-bt-sco +snd-soc-core +snd-soc-cs4270 +snd-soc-cs4271 +snd-soc-cs42l51 +snd-soc-cs42l52 +snd-soc-cs42l73 +snd-soc-cx20442 +snd-soc-da7210 +snd-soc-da7213 +snd-soc-da732x +snd-soc-da9055 +snd-soc-hdmi-codec +snd-soc-isabelle +snd-soc-jz4740-codec +snd-soc-l3 +snd-soc-lm4857 +snd-soc-lm49453 +snd-soc-max9768 +snd-soc-max98088 +snd-soc-max98090 +snd-soc-max98095 +snd-soc-max9850 +snd-soc-max9877 +snd-soc-mc13783 +snd-soc-mfld-machine +snd-soc-ml26124 +snd-soc-pcm3008 +snd-soc-rt5631 +snd-soc-rt5640 +snd-soc-sgtl5000 +snd-soc-si476x +snd-soc-simple-card +snd-soc-sn95031 +snd-soc-spdif-rx +snd-soc-spdif-tx +snd-soc-ssm2518 +snd-soc-ssm2602 +snd-soc-sst-platform +snd-soc-sta32x +snd-soc-sta529 +snd-soc-tas5086 +snd-soc-tlv320aic23 +snd-soc-tlv320aic26 +snd-soc-tlv320aic32x4 +snd-soc-tlv320aic3x +snd-soc-tlv320dac33 +snd-soc-tpa6130a2 +snd-soc-twl6040 +snd-soc-uda134x +snd-soc-uda1380 +snd-soc-wl1273 +snd-soc-wm0010 +snd-soc-wm1250-ev1 +snd-soc-wm2000 +snd-soc-wm2200 +snd-soc-wm5100 +snd-soc-wm5102 +snd-soc-wm5110 +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-wm8782 +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-wm8983 +snd-soc-wm8985 +snd-soc-wm8988 +snd-soc-wm8990 +snd-soc-wm8991 +snd-soc-wm8993 +snd-soc-wm8994 +snd-soc-wm8995 +snd-soc-wm8996 +snd-soc-wm9081 +snd-soc-wm9090 +snd-soc-wm-adsp +snd-soc-wm-hubs +snd-sonicvibes +snd-sscape +snd-tea575x-tuner +snd-tea6330t +snd-timer +snd-trident +snd-ua101 +snd-usb-6fire +snd-usb-audio +snd-usb-caiaq +snd-usb-hiface +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 +soc_scale_crop +softdog +softing +softing_cs +solo6x10 +solos-pci +sony-btf-mpx +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 +spectrum_cs +speedfax +speedtch +spi-altera +spi-bitbang +spi-butterfly +spidev +spi-dw +spi-dw-midpci +spi-dw-mmio +spi-gpio +spi_ks8995 +spi-lm70llp +spi-oc-tiny +spi-pxa2xx-pci +spi-pxa2xx-platform +spi-sc18is602 +spi-tle62x0 +spi-topcliff-pch +spi-xcomm +squashfs +ssb +ssb-hcd +ssfdc +sst25l +sstfb +ssu100 +ssv_dnp +st +st1232 +st_accel +st_accel_i2c +st_accel_spi +starfire +stb0899 +stb6000 +stb6100 +st_drv +ste_modem_rproc +stex +st_gyro +st_gyro_i2c +st_gyro_spi +stinger +stir4200 +stk1160 +stkwebcam +st_magn +st_magn_i2c +st_magn_spi +stmmac +stmpe-keypad +stmpe-ts +stowaway +stp +st_pressure +st_pressure_i2c +st_pressure_spi +streamzap +st_sensors +st_sensors_i2c +st_sensors_spi +stv0288 +stv0297 +stv0299 +stv0367 +stv0900 +stv090x +stv6110 +stv6110x +sundance +sungem +sungem_phy +sunhme +suni +sunkbd +sunrpc +suunto +svcrdma +svgalib +sworks-agp +sx8 +sym53c416 +sym53c500_cs +sym53c8xx +symbolserial +synaptics_i2c +synaptics_i2c_rmi4 +synaptics_usb +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 +tca8418_keypad +tcic +tcm_fc +tcm_loop +tcm_qla2xxx +tcm_usb_gadget +tcp_bic +tcp_diag +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 +tda10071 +tda10086 +tda18212 +tda18218 +tda18271 +tda18271c2dd +tda665x +tda7432 +tda8083 +tda8261 +tda826x +tda827x +tda8290 +tda9840 +tda9887 +tda998x +tdfx +tdfxfb +tdo24m +tea +tea5761 +tea5767 +tea6415c +tea6420 +tef6862 +tehuti +tekram-sir +teles_cs +test-kstrtox +test_power +test-string_helpers +tg3 +tgr192 +thinkpad_acpi +thmc50 +ti-adc081c +ti_am335x_adc +ti_am335x_tsc +ti_am335x_tscadc +ti_dac7512 +tifm_7xx1 +tifm_core +tifm_ms +tifm_sd +timb_dma +timberdale +timblogiw +timbuart +timeriomem-rng +tipc +ti_usb_3410_5052 +tlan +tlclk +tm6000 +tm6000-alsa +tm6000-dvb +tmdc +tmem +tmiofb +tmp102 +tmp401 +tmp421 +tmscsim +toim3232-sir +topstar-laptop +toshiba_acpi +toshiba_bluetooth +touchit213 +touchright +touchwin +tpci200 +tpm_atmel +tpm_i2c_infineon +tpm_i2c_stm_st33 +tpm_infineon +tpm_nsc +tpm-rng +tpm_tis +tps51632-regulator +tps6105x +tps6105x-regulator +tps62360-regulator +tps65010 +tps65023-regulator +tps6507x +tps6507x-regulator +tps6507x-ts +tps65090-charger +tps65090-regulator +tps65217 +tps65217_bl +tps65217-regulator +tps6524x-regulator +tps6586x-regulator +tps65910-regulator +tps65912-regulator +tps80031-regulator +trancevibrator +tranzport +tridentfb +ts2020 +ts5500_flash +ts_bm +tsc2005 +tsc2007 +tsc40 +tscan1 +ts_fsm +ts_kmp +tsl2550 +tsl2563 +tsl2583 +tsl2x7x_core +ttm +ttpci-eeprom +ttusb_dec +ttusbdecfe +ttusbir +tua6100 +tua9001 +tulip +tuner +tuner_it913x +tuner-simple +tuner-types +tuner-xc2028 +tunnel4 +tunnel6 +turbografx +tusb6010 +tvaudio +tveeprom +tvp5150 +tw2804 +tw9903 +tw9906 +tw9910 +twidjoy +twl6040-vibra +twofish_common +twofish_generic +twofish-i586 +typhoon +u132-hcd +u14-34f +uartlite +ubi +ubifs +ucb1400_core +ucb1400_ts +ucd9000 +ucd9200 +uda1342 +udc-core +udf +udl +udlfb +udp_diag +ueagle-atm +u_ether +ufs +ufshcd +ufshcd-pci +ufshcd-pltfrm +uhid +uio +uio_aec +uio_cif +uio_dmem_genirq +uio_netx +uio_pci_generic +uio_pdrv +uio_pdrv_genirq +uio_sercos3 +uli526x +ultrastor +umc +umem +ums-alauda +ums-cypress +ums-datafab +ums-eneub6250 +ums-freecom +ums-isd200 +ums-jumpshot +ums-karma +ums-onetouch +ums-realtek +ums-sddr09 +ums-sddr55 +ums-usbat +unioxx5 +unix_diag +upd64031a +upd64083 +uPD98402 +u_rndis +usb3503 +usb_8dev +usb8xxx +usbatm +usb_debug +usbdux +usbduxfast +usbduxsigma +usb_f_acm +usb_f_ecm +usb_f_ecm_subset +usb_f_eem +usb_f_ncm +usb_f_obex +usb_f_phonet +usb_f_rndis +usb_f_serial +usb_f_ss_lb +usb_gigaset +usbhid +usbip-core +usbip-host +usbkbd +usblcd +usbled +usblp +usbmon +usbmouse +usbnet +usbserial +usbsevseg +usb-storage +usbtest +usbtmc +usbtouchscreen +usbtv +usbvision +usb_wwan +u_serial +userspace-consumer +ushc +uss720 +uvcvideo +uvesafb +uwb +ux500 +v4l2-common +v4l2-int-device +v4l2-mem2mem +vcan +vcnl4000 +ves1820 +ves1x93 +vesafb +veth +vfio +vfio_iommu_type1 +vfio-pci +vga16fb +vgastate +vgg2432a4 +vhci-hcd +vhost +vhost_net +vhost_scsi +via +via686a +via-camera +via-cputemp +viafb +via-ircc +via-rhine +via-rng +via-sdmmc +via-velocity +via_wdt +video +videobuf2-core +videobuf2-dma-contig +videobuf2-dma-sg +videobuf2-memops +videobuf2-vmalloc +videobuf-core +videobuf-dma-contig +videobuf-dma-sg +videobuf-dvb +videobuf-vmalloc +videocodec +videodev +viperboard +viperboard_adc +virtio_balloon +virtio_console +virtio_mmio +virtio-rng +virtio_scsi +virtual +visor +vivi +vivopay-serial +vlsi_ir +vmac +vme +vme_ca91cx42 +vme_pio2 +vme_tsi148 +vme_user +vme_vmivme7805 +vmk80xx +vmlfb +vmw_balloon +vmwgfx +vmw_pvscsi +vmw_vmci +vmw_vsock_vmci_transport +vmxnet3 +vp27smpx +vpx3220 +vringh +vsock +vsxxxaa +vt1211 +vt6655_stage +vt6656_stage +vt8231 +vt8623fb +vub300 +vx855 +vxge +vxlan +w1_bq27000 +w1_ds2408 +w1_ds2413 +w1_ds2423 +w1_ds2431 +w1_ds2433 +w1_ds2760 +w1_ds2780 +w1_ds2781 +w1_ds28e04 +w1-gpio +w1_smem +w1_therm +w35und +w5100 +w5300 +w6692 +w83627ehf +w83627hf +w83627hf_wdt +w83697hf_wdt +w83697ug_wdt +w83781d +w83791d +w83792d +w83793 +w83795 +w83877f_wdt +w83977af_ir +w83977f_wdt +w83l785ts +w83l786ng +w90p910_ts +w9966 +wacom +wacom_i2c +wacom_w8001 +wafer5823wdt +walkera0701 +wanxl +warrior +wbsd +wd +wd7000 +wdt +wdt_pci +whci +whci-hcd +whc-rc +whiteheat +wil6210 +wimax +winbond-840 +winbond-cir +wire +wishbone-serial +wistron_btns +wl1251 +wl1251_sdio +wl1251_spi +wl1273-core +wl12xx +wl18xx +wl3501_cs +wlags49_h25_cs +wlags49_h2_cs +wlcore +wlcore_sdio +wlcore_spi +wm831x_backup +wm831x_bl +wm831x-dcdc +wm831x-hwmon +wm831x-isink +wm831x-ldo +wm831x-on +wm831x_power +wm831x-ts +wm831x_wdt +wm8350-hwmon +wm8350_power +wm8350-regulator +wm8350_wdt +wm8400-regulator +wm8739 +wm8775 +wm8994-regulator +wm97xx-ts +wmi +wp512 +wusb-cbaf +wusbcore +wusb-wa +x25 +x25_asy +x38_edac +x86_pkg_temp_thermal +xc4000 +xc5000 +xcbc +xen-blkback +xen-evtchn +xen-fbfront +xenfs +xen-gntalloc +xen-gntdev +xen-kbdfront +xen-netback +xen-pciback +xen-pcifront +xen-privcmd +xen_wdt +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_algo +xfrm_ipcomp +xfrm_user +xfs +xgifb +xgmac +xirc2ps_cs +xircom_cb +xo15-ebook +xor +xpad +xprtrdma +xsens_mt +x_tables +xt_addrtype +xt_AUDIT +xt_bpf +xt_CHECKSUM +xt_CLASSIFY +xt_cluster +xt_comment +xt_connbytes +xt_connlabel +xt_connlimit +xt_connmark +xt_CONNSECMARK +xt_conntrack +xt_cpu +xt_CT +xt_dccp +xt_devgroup +xt_dscp +xt_DSCP +xt_ecn +xt_esp +xt_hashlimit +xt_helper +xt_hl +xt_HL +xt_HMARK +xt_IDLETIMER +xt_iprange +xt_ipvs +xtkbd +xt_LED +xt_length +xt_limit +xt_LOG +xt_mac +xt_mark +xt_multiport +xt_nat +xt_NETMAP +xt_nfacct +xt_NFLOG +xt_NFQUEUE +xt_osf +xt_owner +xt_physdev +xt_pkttype +xt_policy +xt_quota +xt_rateest +xt_RATEEST +xt_realm +xt_recent +xt_REDIRECT +xts +xt_sctp +xt_SECMARK +xt_set +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 +xz_dec_test +yam +yealink +yellowfin +yenta_socket +yurex +z85230 +zatm +zaurus +zd1201 +zd1211rw +zhenhua +zio +zl10036 +zl10039 +zl10353 +zl6100 +zlib +zlib_deflate +zr36016 +zr36050 +zr36060 +zr36067 +zr364xx +zram +zte_ev --- linux-3.11.0.orig/debian.master/abi/3.11.0-15.23/i386/generic +++ linux-3.11.0/debian.master/abi/3.11.0-15.23/i386/generic @@ -0,0 +1,15646 @@ +EXPORT_SYMBOL arch/x86/kvm/kvm 0x1aa5d13f kvm_cpu_has_pending_timer +EXPORT_SYMBOL arch/x86/kvm/kvm 0x6f83c32a 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 0x55ea2efb 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 0xfb3787ff suni_init +EXPORT_SYMBOL drivers/atm/uPD98402 0xb3a58f2c uPD98402_init +EXPORT_SYMBOL drivers/bcma/bcma 0x6a3247df bcma_core_dma_translation +EXPORT_SYMBOL drivers/block/drbd/drbd 0x127a5901 drbd_set_st_err_str +EXPORT_SYMBOL drivers/block/drbd/drbd 0x35131b36 drbd_role_str +EXPORT_SYMBOL drivers/block/drbd/drbd 0x7730f22d drbd_conn_str +EXPORT_SYMBOL drivers/block/drbd/drbd 0xaf27bebf drbd_disk_str +EXPORT_SYMBOL drivers/block/paride/paride 0x32973faf pi_write_block +EXPORT_SYMBOL drivers/block/paride/paride 0x52c2e004 paride_register +EXPORT_SYMBOL drivers/block/paride/paride 0x71bfe5ec pi_do_claimed +EXPORT_SYMBOL drivers/block/paride/paride 0xa3a366f2 pi_read_block +EXPORT_SYMBOL drivers/block/paride/paride 0xaaa91080 pi_read_regr +EXPORT_SYMBOL drivers/block/paride/paride 0xbb3c85b1 pi_write_regr +EXPORT_SYMBOL drivers/block/paride/paride 0xc50353a4 paride_unregister +EXPORT_SYMBOL drivers/block/paride/paride 0xe79332f7 pi_release +EXPORT_SYMBOL drivers/block/paride/paride 0xe8039b22 pi_connect +EXPORT_SYMBOL drivers/block/paride/paride 0xf7a512a3 pi_disconnect +EXPORT_SYMBOL drivers/block/paride/paride 0xfbbf58e8 pi_schedule_claimed +EXPORT_SYMBOL drivers/block/paride/paride 0xfc000f37 pi_init +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x1348760d ipmi_request_settime +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x16dcec76 ipmi_set_my_address +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x1a10c898 ipmi_set_maintenance_mode +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x1aba5db8 ipmi_unregister_smi +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x20c3a1ef ipmi_register_smi +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x235caf78 ipmi_smi_watcher_unregister +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x40f2b10c ipmi_alloc_smi_msg +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x423b776a ipmi_create_user +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x4c971bec ipmi_smi_msg_received +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x524f6f51 ipmi_get_my_address +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x5e80f37c ipmi_unregister_for_cmd +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x5fcdcc05 ipmi_get_my_LUN +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x67cb9784 ipmi_poll_interface +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x78fd36e7 ipmi_request_supply_msgs +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x804f922a ipmi_addr_length +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x8c8ee770 ipmi_destroy_user +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x8f88da53 ipmi_get_smi_info +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x96cbcc81 ipmi_get_version +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xa28a2ace ipmi_set_gets_events +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xa2a98b91 ipmi_get_maintenance_mode +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xbfef812f ipmi_smi_add_proc_entry +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xe0fa83f2 ipmi_register_for_cmd +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xe4f4665b ipmi_validate_addr +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xe6ab72a6 ipmi_set_my_LUN +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xf2576cb9 ipmi_smi_watchdog_pretimeout +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xf94c380e ipmi_smi_watcher_register +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xfcb77cfd ipmi_free_recv_msg +EXPORT_SYMBOL drivers/char/nsc_gpio 0x25ac11a7 nsc_gpio_read +EXPORT_SYMBOL drivers/char/nsc_gpio 0x6f4094a5 nsc_gpio_write +EXPORT_SYMBOL drivers/char/nsc_gpio 0x9dd0714f nsc_gpio_dump +EXPORT_SYMBOL drivers/char/nvram 0x0f28cb91 nvram_read_byte +EXPORT_SYMBOL drivers/char/nvram 0x17ff2c1d __nvram_read_byte +EXPORT_SYMBOL drivers/char/nvram 0x2adec1e0 __nvram_check_checksum +EXPORT_SYMBOL drivers/char/nvram 0x7da28f12 nvram_check_checksum +EXPORT_SYMBOL drivers/char/nvram 0x9ce3f83f nvram_write_byte +EXPORT_SYMBOL drivers/char/nvram 0xa8813189 __nvram_write_byte +EXPORT_SYMBOL drivers/dma/dw/dw_dmac_core 0x005de032 dw_dma_get_src_addr +EXPORT_SYMBOL drivers/dma/dw/dw_dmac_core 0x2bf7dcfb dw_dma_cyclic_free +EXPORT_SYMBOL drivers/dma/dw/dw_dmac_core 0x479f4f7b dw_dma_get_dst_addr +EXPORT_SYMBOL drivers/dma/dw/dw_dmac_core 0x7e692723 dw_dma_cyclic_stop +EXPORT_SYMBOL drivers/dma/dw/dw_dmac_core 0xe7d2f6dd dw_dma_cyclic_start +EXPORT_SYMBOL drivers/dma/dw/dw_dmac_core 0xf375c779 dw_dma_cyclic_prep +EXPORT_SYMBOL drivers/dma/ioat/ioatdma 0x51d3d968 ioat_dma_setup_interrupts +EXPORT_SYMBOL drivers/edac/edac_core 0x387a5d1f edac_mc_find +EXPORT_SYMBOL drivers/firewire/firewire-core 0x04a2fa30 fw_iso_context_flush_completions +EXPORT_SYMBOL drivers/firewire/firewire-core 0x04dd92ce fw_core_add_descriptor +EXPORT_SYMBOL drivers/firewire/firewire-core 0x09e6fb53 fw_iso_context_destroy +EXPORT_SYMBOL drivers/firewire/firewire-core 0x0e53c882 fw_core_remove_card +EXPORT_SYMBOL drivers/firewire/firewire-core 0x16e91e21 fw_csr_iterator_next +EXPORT_SYMBOL drivers/firewire/firewire-core 0x1f5c641d fw_run_transaction +EXPORT_SYMBOL drivers/firewire/firewire-core 0x2885fec5 fw_get_request_speed +EXPORT_SYMBOL drivers/firewire/firewire-core 0x2ee22a63 fw_iso_context_queue +EXPORT_SYMBOL drivers/firewire/firewire-core 0x38d54002 fw_core_handle_bus_reset +EXPORT_SYMBOL drivers/firewire/firewire-core 0x3c1dd642 fw_iso_context_start +EXPORT_SYMBOL drivers/firewire/firewire-core 0x3c56ef91 fw_workqueue +EXPORT_SYMBOL drivers/firewire/firewire-core 0x4506df65 fw_iso_buffer_destroy +EXPORT_SYMBOL drivers/firewire/firewire-core 0x4a0401b1 fw_core_add_address_handler +EXPORT_SYMBOL drivers/firewire/firewire-core 0x4af8164a fw_bus_type +EXPORT_SYMBOL drivers/firewire/firewire-core 0x4d5d4eca fw_core_remove_descriptor +EXPORT_SYMBOL drivers/firewire/firewire-core 0x4e57c07c fw_iso_context_create +EXPORT_SYMBOL drivers/firewire/firewire-core 0x550e2539 fw_schedule_bus_reset +EXPORT_SYMBOL drivers/firewire/firewire-core 0x65c9438b fw_csr_iterator_init +EXPORT_SYMBOL drivers/firewire/firewire-core 0x6e445645 fw_iso_resource_manage +EXPORT_SYMBOL drivers/firewire/firewire-core 0x70027138 fw_send_response +EXPORT_SYMBOL drivers/firewire/firewire-core 0x7dab83c1 fw_cancel_transaction +EXPORT_SYMBOL drivers/firewire/firewire-core 0x7e431b14 fw_csr_string +EXPORT_SYMBOL drivers/firewire/firewire-core 0x86468d44 fw_rcode_string +EXPORT_SYMBOL drivers/firewire/firewire-core 0x8693966f fw_core_handle_request +EXPORT_SYMBOL drivers/firewire/firewire-core 0x89c8d9a1 fw_card_initialize +EXPORT_SYMBOL drivers/firewire/firewire-core 0x8fa956ed fw_send_request +EXPORT_SYMBOL drivers/firewire/firewire-core 0x90863005 fw_high_memory_region +EXPORT_SYMBOL drivers/firewire/firewire-core 0xa14eff4c fw_fill_response +EXPORT_SYMBOL drivers/firewire/firewire-core 0xa732fed4 fw_iso_buffer_init +EXPORT_SYMBOL drivers/firewire/firewire-core 0xa7c8a745 fw_core_handle_response +EXPORT_SYMBOL drivers/firewire/firewire-core 0xb705ec74 fw_core_remove_address_handler +EXPORT_SYMBOL drivers/firewire/firewire-core 0xb81b9acc fw_iso_context_stop +EXPORT_SYMBOL drivers/firewire/firewire-core 0xc4864b5f fw_iso_context_queue_flush +EXPORT_SYMBOL drivers/firewire/firewire-core 0xe1ad7b9c fw_device_enable_phys_dma +EXPORT_SYMBOL drivers/firewire/firewire-core 0xfc0487bf fw_card_add +EXPORT_SYMBOL drivers/firmware/dcdbas 0xa75079d6 dcdbas_smi_request +EXPORT_SYMBOL drivers/fmc/fmc 0x0b62933c fmc_find_sdb_device +EXPORT_SYMBOL drivers/fmc/fmc 0x2011387c fmc_reprogram +EXPORT_SYMBOL drivers/fmc/fmc 0x24f3becf fmc_device_unregister +EXPORT_SYMBOL drivers/fmc/fmc 0x5a776dcf fmc_scan_sdb_tree +EXPORT_SYMBOL drivers/fmc/fmc 0x731949f3 fmc_device_unregister_n +EXPORT_SYMBOL drivers/fmc/fmc 0xa83d6e99 fmc_device_register_n +EXPORT_SYMBOL drivers/fmc/fmc 0xac0c14e7 fmc_driver_unregister +EXPORT_SYMBOL drivers/fmc/fmc 0xba0def49 fmc_device_register +EXPORT_SYMBOL drivers/fmc/fmc 0xc3d2c6f3 fmc_show_sdb_tree +EXPORT_SYMBOL drivers/fmc/fmc 0xd7e6a0bd fmc_free_sdb_tree +EXPORT_SYMBOL drivers/fmc/fmc 0xfefcbddf fmc_driver_register +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0027326e drm_mm_clean +EXPORT_SYMBOL drivers/gpu/drm/drm 0x015e9918 drm_mode_config_reset +EXPORT_SYMBOL drivers/gpu/drm/drm 0x01d01b68 drm_edid_to_eld +EXPORT_SYMBOL drivers/gpu/drm/drm 0x027a64ab drm_connector_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x02e6e099 drm_mode_width +EXPORT_SYMBOL drivers/gpu/drm/drm 0x02f2e985 drm_platform_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0310877f drm_gem_prime_import +EXPORT_SYMBOL drivers/gpu/drm/drm 0x03d922c6 drm_ioctl +EXPORT_SYMBOL drivers/gpu/drm/drm 0x056a7e0c drm_agp_acquire +EXPORT_SYMBOL drivers/gpu/drm/drm 0x088e0a13 drm_gem_prime_handle_to_fd +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0a914ae3 drm_rmmap_locked +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0ae4b94c drm_ht_remove +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0b101707 drm_gem_object_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0bca79c5 drm_mm_scan_add_block +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0ca81641 drm_mm_init_scan +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0d068abc drm_prime_gem_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0fccafb1 drm_global_item_unref +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0fd60df2 drm_get_connector_status_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0x11065515 drm_mode_equal +EXPORT_SYMBOL drivers/gpu/drm/drm 0x12c6276a drm_buffer_read_object +EXPORT_SYMBOL drivers/gpu/drm/drm 0x12cfa2f6 drm_rmmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0x12ea1c75 drm_mm_insert_node_generic +EXPORT_SYMBOL drivers/gpu/drm/drm 0x140ace75 drm_poll +EXPORT_SYMBOL drivers/gpu/drm/drm 0x142b8b35 drm_buffer_copy_from_user +EXPORT_SYMBOL drivers/gpu/drm/drm 0x14a9a178 drm_get_format_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0x17ab1eac drm_gem_mmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0x17b639a9 drm_framebuffer_reference +EXPORT_SYMBOL drivers/gpu/drm/drm 0x194eadaa drm_edid_header_is_valid +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1a770ac3 drm_detect_hdmi_monitor +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1aa0ab88 drm_mode_validate_clocks +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1adca954 drm_get_connector_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1cdf658b drm_global_mutex +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1d281245 drm_ati_pcigart_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1d4acb0b drm_gem_vm_close +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1eba81ff drm_mm_search_free_in_range_generic +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1f16d58b drm_probe_ddc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x20645642 drm_debug +EXPORT_SYMBOL drivers/gpu/drm/drm 0x226fd3e4 drm_framebuffer_lookup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x26256356 drm_mode_equal_no_clocks +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2782332a drm_core_ioremap_wc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x27e6ef05 drm_pci_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x28db258f drm_agp_info +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2b5ffdf6 drm_connector_unplug_all +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2cb00171 drm_get_minor +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2d50570f drm_rect_calc_hscale +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2e7a4300 drm_rgb_quant_range_selectable +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2ec7d975 drm_mode_create_dirty_info_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2ee6a0fb drm_mm_dump_table +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2f66e9eb drm_vblank_put +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3074f033 drm_order +EXPORT_SYMBOL drivers/gpu/drm/drm 0x33022635 drm_mm_replace_node +EXPORT_SYMBOL drivers/gpu/drm/drm 0x33883232 drm_pci_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3457220d drm_gem_object_lookup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x346127a7 drm_global_item_ref +EXPORT_SYMBOL drivers/gpu/drm/drm 0x36ba7ce3 drm_mode_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0x37feac63 drm_plane_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x381850e1 drm_select_eld +EXPORT_SYMBOL drivers/gpu/drm/drm 0x38a4f7ae drm_format_num_planes +EXPORT_SYMBOL drivers/gpu/drm/drm 0x38fa1a1b drm_pci_exit +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3910b32c drm_mode_connector_update_edid_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x394c597a drm_pci_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x39d7a59c drm_modeset_unlock_all +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3a0f87a2 drm_vblank_post_modeset +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3ac1fef9 drm_mode_legacy_fb_format +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3b9d009a drm_format_plane_cpp +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3c228b57 drm_mode_crtc_set_gamma_size +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3c5dd832 drm_mm_put_block +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3de0b056 drm_mode_group_init_legacy_group +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3eb37b9d drm_ht_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3fc4bc4b drm_fill_in_dev +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3fdc7825 drm_mm_pre_get +EXPORT_SYMBOL drivers/gpu/drm/drm 0x414af14a drm_gtf_mode_complex +EXPORT_SYMBOL drivers/gpu/drm/drm 0x43384bd9 drm_buffer_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x44a0c113 drm_mode_height +EXPORT_SYMBOL drivers/gpu/drm/drm 0x475d7efe drm_sysfs_connector_add +EXPORT_SYMBOL drivers/gpu/drm/drm 0x48cabe41 drm_mode_create_from_cmdline_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0x498dcb5e drm_ut_debug_printk +EXPORT_SYMBOL drivers/gpu/drm/drm 0x49c23e1f drm_framebuffer_remove +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4a0b307e drm_av_sync_delay +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4ae9884f drm_mode_config_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4c511235 drm_edid_is_valid +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4e0c01ee drm_unbind_agp +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4ea1f5a2 drm_gem_object_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4f63def2 drm_modeset_lock_all +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4f683950 drm_vblank_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x50e28c07 drm_edid_to_sad +EXPORT_SYMBOL drivers/gpu/drm/drm 0x51630b37 drm_gem_handle_delete +EXPORT_SYMBOL drivers/gpu/drm/drm 0x521e4b9d drm_connector_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5232235b drm_gem_handle_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0x526f6f71 drm_rect_calc_hscale_relaxed +EXPORT_SYMBOL drivers/gpu/drm/drm 0x547ed66c drm_mode_create_scaling_mode_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x54e0c520 drm_open +EXPORT_SYMBOL drivers/gpu/drm/drm 0x561129af drm_i2c_encoder_save +EXPORT_SYMBOL drivers/gpu/drm/drm 0x56653c54 drm_agp_unbind +EXPORT_SYMBOL drivers/gpu/drm/drm 0x580329c3 drm_mode_create_dvi_i_properties +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5ae051af drm_mm_insert_node +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5e1e7a7a drm_getsarea +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5e2c22cc drm_i2c_encoder_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5e33b78f drm_mode_create_dithering_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5eafb8e9 drm_mode_set_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5ecf13cb drm_mode_create_tv_properties +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5f589009 drm_gem_private_object_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5f9afc69 drm_gem_vm_open +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5fe980cc drm_i2c_encoder_mode_set +EXPORT_SYMBOL drivers/gpu/drm/drm 0x60fc359c drm_core_ioremapfree +EXPORT_SYMBOL drivers/gpu/drm/drm 0x617cf89a drm_mm_debug_table +EXPORT_SYMBOL drivers/gpu/drm/drm 0x61c2779d drm_i2c_encoder_commit +EXPORT_SYMBOL drivers/gpu/drm/drm 0x629c05e1 drm_clflush_sg +EXPORT_SYMBOL drivers/gpu/drm/drm 0x64d8f617 drm_prime_remove_buf_handle +EXPORT_SYMBOL drivers/gpu/drm/drm 0x651133e4 drm_vblank_get +EXPORT_SYMBOL drivers/gpu/drm/drm 0x65287ba8 drm_mm_takedown +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6900d335 drm_rect_clip_scaled +EXPORT_SYMBOL drivers/gpu/drm/drm 0x69be2e83 drm_get_last_vbltimestamp +EXPORT_SYMBOL drivers/gpu/drm/drm 0x69eb2c41 drm_addbufs_pci +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6a3aef5a drm_agp_bind +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6ac58796 drm_i2c_encoder_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6b6d7375 drm_timestamp_precision +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6cee2e42 drm_object_property_get_value +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6e7869ed drm_prime_lookup_buf_handle +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6e8f4cb5 drm_put_dev +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6ee3e89c drm_mm_scan_remove_block +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6ee961a4 drm_mm_insert_node_in_range +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6f090540 drm_mm_get_block_range_generic +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7034f4e0 drm_mode_parse_command_line_for_connector +EXPORT_SYMBOL drivers/gpu/drm/drm 0x71870f3e drm_property_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7300ec28 drm_idlelock_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0x738724cd drm_irq_install +EXPORT_SYMBOL drivers/gpu/drm/drm 0x765c0602 drm_pcie_get_speed_cap_mask +EXPORT_SYMBOL drivers/gpu/drm/drm 0x76b18044 drm_mode_duplicate +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7848f485 drm_property_create_enum +EXPORT_SYMBOL drivers/gpu/drm/drm 0x78a13731 drm_mode_object_find +EXPORT_SYMBOL drivers/gpu/drm/drm 0x79cd7104 drm_vblank_count_and_time +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7a4e7297 drm_edid_block_valid +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7a5afafb drm_calc_vbltimestamp_from_scanoutpos +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7afe05d0 drm_framebuffer_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7b42b5d4 drm_mode_copy +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7bc99cf2 drm_mm_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7c3a5a62 drm_debugfs_remove_files +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7e822386 drm_agp_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x81f1ee6e drm_read +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8216c83f drm_prime_destroy_file_private +EXPORT_SYMBOL drivers/gpu/drm/drm 0x83d08f63 drm_mmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0x871ab41a drm_rect_intersect +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8775d99b drm_mm_search_free_generic +EXPORT_SYMBOL drivers/gpu/drm/drm 0x88203261 drm_property_create_range +EXPORT_SYMBOL drivers/gpu/drm/drm 0x886b39e1 drm_vblank_pre_modeset +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8878816e drm_prime_sg_to_page_addr_arrays +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8b87ad4b drm_get_edid +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8c510862 drm_find_cea_extension +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8c644195 drm_plane_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8de13715 drm_format_vert_chroma_subsampling +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8dfb019d drm_buffer_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8eff9111 drm_ht_find_item +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8f262bff drm_platform_exit +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8f7df3a7 drm_object_attach_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x91fec1cc drm_rect_calc_vscale +EXPORT_SYMBOL drivers/gpu/drm/drm 0x929c85db drm_agp_enable +EXPORT_SYMBOL drivers/gpu/drm/drm 0x92c316f2 drm_i2c_encoder_dpms +EXPORT_SYMBOL drivers/gpu/drm/drm 0x942ef2e2 drm_vblank_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x95d40514 drm_get_pci_dev +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9670d850 drm_send_vblank_event +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9745d638 drm_err +EXPORT_SYMBOL drivers/gpu/drm/drm 0x992c7afc drm_add_modes_noedid +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9972db48 drm_rect_calc_vscale_relaxed +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9a1b2d8c drm_property_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9a308cd7 drm_master_get +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9a6662c3 drm_vblank_count +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9be5f616 drm_addbufs_agp +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9c14d53d drm_get_platform_dev +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9f6cc61f drm_mm_create_block +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9f8fe4d4 drm_vblank_off +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9ffc1681 drm_add_edid_modes +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa00fdc30 drm_fasync +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa1e99a1f drm_gem_prime_export +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa1eabd87 drm_mode_list_concat +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa3f91c1d drm_i2c_encoder_detect +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa6ba74dd drm_mode_connector_list_update +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa807801d drm_crtc_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa893fcc1 drm_gem_object_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa96acfcb drm_rect_debug_print +EXPORT_SYMBOL drivers/gpu/drm/drm 0xaa8b5c45 drm_noop +EXPORT_SYMBOL drivers/gpu/drm/drm 0xaa9e7c65 drm_agp_bind_pages +EXPORT_SYMBOL drivers/gpu/drm/drm 0xaacb6efd drm_framebuffer_unregister_private +EXPORT_SYMBOL drivers/gpu/drm/drm 0xac92a3be drm_agp_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0xad0a0d71 drm_prime_init_file_private +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb2ead560 drm_mm_get_block_generic +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb4b757cc drm_mode_set_config_internal +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb4e090dc drm_addmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb50088c4 drm_master_put +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb532a618 drm_cvt_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb56b6c6b drm_gem_object_handle_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb810cefc drm_plane_force_disable +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb95beb55 drm_object_property_set_value +EXPORT_SYMBOL drivers/gpu/drm/drm 0xba2d0719 drm_mode_hsync +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbae4dc9a drm_handle_vblank +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbcdb29bc drm_i2c_encoder_prepare +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbe001c53 drm_property_add_enum +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbf8fdaa4 drm_irq_uninstall +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbfc911d0 drm_mode_find_dmt +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc0f81b59 drm_property_create_bitmask +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc20ed002 drm_mode_validate_size +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc25a61ec drm_mode_set_crtcinfo +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc2a56f5b drm_mode_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc35f2695 drm_mm_init_scan_with_range +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc414c422 drm_vblank_offdelay +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc4329210 drm_framebuffer_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc55c7ef8 drm_sysfs_connector_remove +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc67a5e6b drm_unplug_dev +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc6f7d579 drm_mm_remove_node +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc819cc9e drm_gem_object_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc91c1499 drm_free_agp +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc9f1a431 drm_i2c_encoder_mode_fixup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xca45efbc drm_format_horz_chroma_subsampling +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcb1beab5 drm_mode_vrefresh +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcd0fc417 drm_ht_just_insert_please +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcda91c46 drm_mode_debug_printmodeline +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcfda5e61 drm_sysfs_hotplug_event +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd04b40e9 drm_get_encoder_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd125790d drm_hdmi_avi_infoframe_from_display_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd2335101 drm_fb_get_bpp_depth +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd379817d drm_crtc_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd6e65c27 drm_core_ioremap +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd761bb26 drm_idlelock_take +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd7c22139 drm_debugfs_create_files +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd84e1c53 drm_mm_insert_node_in_range_generic +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd8d901a2 drm_mode_remove +EXPORT_SYMBOL drivers/gpu/drm/drm 0xdb43eab1 drm_warn_on_modeset_not_all_locked +EXPORT_SYMBOL drivers/gpu/drm/drm 0xdbb5a9f5 drm_ht_remove_item +EXPORT_SYMBOL drivers/gpu/drm/drm 0xdcaa3af1 drm_agp_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0xdd153f6e drm_gem_create_mmap_offset +EXPORT_SYMBOL drivers/gpu/drm/drm 0xdd178171 drm_ati_pcigart_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe00d110b drm_mode_prune_invalid +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe0cf264d drm_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe586f6aa drm_core_reclaim_buffers +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe6083a63 drm_encoder_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe6ba3380 drm_mode_connector_attach_encoder +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe6f46e6e drm_clflush_virt_range +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe7197773 drm_ht_insert_item +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe77924e8 drm_match_cea_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe8a077d7 drm_encoder_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe9032502 drm_mode_config_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe9a77608 drm_mode_probed_add +EXPORT_SYMBOL drivers/gpu/drm/drm 0xeb2ba7a1 drm_put_minor +EXPORT_SYMBOL drivers/gpu/drm/drm 0xed66c343 drm_gem_prime_fd_to_handle +EXPORT_SYMBOL drivers/gpu/drm/drm 0xed8dd554 drm_mode_connector_detach_encoder +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf11da40c drm_gtf_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf1421d13 drm_mode_sort +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf8299cd5 drm_i2c_encoder_restore +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf939bc73 drm_gem_free_mmap_offset +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf9f98ce0 drm_clflush_pages +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfc100b44 drm_gem_mmap_obj +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfc72a487 drm_prime_pages_to_sg +EXPORT_SYMBOL drivers/gpu/drm/drm 0xff11f402 drm_framebuffer_unreference +EXPORT_SYMBOL drivers/gpu/drm/drm 0xffc6c87a drm_detect_monitor_audio +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfff57a2c drm_calc_timestamping_constants +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x05c2dab9 drm_fb_helper_debug_enter +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x0b1525c6 drm_kms_helper_hotplug_event +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x117fd3d1 drm_helper_connector_dpms +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x16c50cd8 drm_fb_helper_fill_fix +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x25ef0c09 drm_fb_helper_fill_var +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x27d2918a i2c_dp_aux_add_bus +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x28915fbc drm_helper_hpd_irq_event +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x2d7a787f drm_dp_clock_recovery_ok +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x2f4eb605 drm_crtc_helper_set_mode +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x33f2d692 drm_kms_helper_poll_init +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x35a0a8ff drm_kms_helper_poll_enable +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x38103733 drm_fb_helper_initial_config +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x3dce4b0b drm_fb_helper_single_add_all_connectors +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x4a99cb60 drm_helper_move_panel_connectors_to_head +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x62f780b2 drm_helper_mode_fill_fb_struct +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x711a004a drm_dp_link_rate_to_bw_code +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x7e5632bf drm_helper_resume_force_mode +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x8580bf22 drm_fb_helper_fini +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x86f13188 drm_fb_helper_init +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x94537bc3 drm_fb_helper_pan_display +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x974cc3fb drm_kms_helper_poll_disable +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x9c558f75 drm_helper_probe_single_connector_modes +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xa8d6809d drm_dp_bw_code_to_link_rate +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xab480ae6 drm_helper_encoder_in_use +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xb260b430 drm_fb_helper_set_par +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xb37a0603 drm_dp_link_train_channel_eq_delay +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xc1978341 drm_fb_helper_setcmap +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xc2efcca2 drm_fb_helper_hotplug_event +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xc3c209b0 drm_fb_helper_restore_fbdev_mode +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xc7fd39bb drm_dp_channel_eq_ok +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xd02c73c7 drm_dp_link_train_clock_recovery_delay +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xd5d8b6b8 drm_dp_get_adjust_request_pre_emphasis +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xd5eda711 drm_crtc_helper_set_config +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xdaf25167 drm_fb_helper_check_var +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xe13ca1f8 drm_kms_helper_poll_fini +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xe1ab67c6 drm_fb_helper_blank +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xe21f7e93 drm_helper_crtc_in_use +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xf2602f5c drm_fb_helper_debug_leave +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xf422e19d drm_helper_disable_unused_functions +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xfee43a69 drm_dp_get_adjust_request_voltage +EXPORT_SYMBOL drivers/gpu/drm/drm_usb 0x4843e865 drm_usb_exit +EXPORT_SYMBOL drivers/gpu/drm/drm_usb 0x951b84bf drm_get_usb_dev +EXPORT_SYMBOL drivers/gpu/drm/drm_usb 0xf5a39f14 drm_usb_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x0370251f ttm_eu_backoff_reservation +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x05fc7124 ttm_bo_move_memcpy +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x0d1180f3 ttm_base_object_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x0d4c3294 ttm_bo_synccpu_write_release +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x132b05be ttm_round_pot +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x15034467 ttm_dma_tt_fini +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x17d67f3d ttm_object_device_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x17e48a1d ttm_base_object_lookup +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x19adb184 ttm_bo_validate +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x19db1305 ttm_read_unlock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x1b8b9329 ttm_bo_mem_put +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x2044236c ttm_bo_add_to_lru +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x229bf44d ttm_agp_tt_create +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x25a35896 ttm_pool_populate +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x266d8a60 ttm_io_prot +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x27110ab5 ttm_mem_global_free +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x282bba25 ttm_bo_unmap_virtual +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x2a473953 ttm_dma_tt_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x2b54aa9a ttm_object_file_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x2c801a26 ttm_agp_tt_populate +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x2ca0c133 ttm_fbdev_mmap +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x318322a1 ttm_bo_kunmap +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x3183d519 ttm_suspend_unlock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x31cddedd ttm_mem_global_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x32a5d162 ttm_tt_set_placement_caching +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x359dbcda ttm_bo_create +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x3d6a779b ttm_write_lock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x41eeefaa ttm_eu_fence_buffer_objects +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x42f73853 ttm_bo_lock_delayed_workqueue +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x4d1eea63 ttm_base_object_unref +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x4fbecf74 ttm_tt_bind +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x556f3592 ttm_tt_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x55d6204b ttm_tt_fini +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x59d9fdcf ttm_bo_init_mm +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x5cf59609 ttm_bo_global_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x602fb710 ttm_bo_wait +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x67b1d568 ttm_bo_global_release +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x69558cd7 ttm_vt_unlock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x730d9762 ttm_bo_mem_space +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x74377a01 ttm_bo_device_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x7611ccda ttm_mem_io_reserve +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x7617d70e ttm_bo_unlock_delayed_workqueue +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x7914a921 ttm_agp_tt_unpopulate +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x7ffd3c70 ttm_bo_dma_acc_size +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x80d86f0e ttm_object_device_release +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x81418f8a ttm_bo_del_sub_from_lru +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x8256db71 ttm_mem_io_lock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x8476676b ttm_bo_kmap +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x8ca6cca8 ttm_bo_unref +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x964c8b0f ttm_bo_device_release +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x998e45c0 ttm_ref_object_base_unref +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x9a053525 ttm_mem_io_free +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x9e0a6837 ttm_eu_reserve_buffers +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x9e681106 ttm_bo_mmap +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xa08fdbc1 ttm_mem_io_unlock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xa0b956a8 ttm_bo_evict_mm +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xa822b180 ttm_mem_global_alloc +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xa95a4711 ttm_read_lock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xaa8dcd20 ttm_bo_synccpu_write_grab +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xaf725183 ttm_bo_move_ttm +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xb260b7d0 ttm_bo_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xb7902d7f ttm_ref_object_add +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xb9245fc1 ttm_bo_clean_mm +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xbd51692c ttm_write_unlock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xc2f7a143 ttm_suspend_lock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xc7c8a24e ttm_pool_unpopulate +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xc9d2b028 ttm_bo_swapout_all +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xcc16f448 ttm_mem_global_release +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xd26f325d ttm_bo_acc_size +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xd49a2522 ttm_bo_manager_func +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xda482e1e ttm_bo_move_accel_cleanup +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xdbf32d07 ttm_lock_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xe20cd483 ttm_page_alloc_debugfs +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xee4a19bf ttm_vt_lock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xfbc2c5ec ttm_object_file_release +EXPORT_SYMBOL drivers/hv/hv_vmbus 0x117594c3 vmbus_recvpacket +EXPORT_SYMBOL drivers/hv/hv_vmbus 0xa3306e52 vmbus_sendpacket +EXPORT_SYMBOL drivers/hwmon/hwmon-vid 0x0903c239 vid_from_reg +EXPORT_SYMBOL drivers/hwmon/hwmon-vid 0xef1c781c vid_which_vrm +EXPORT_SYMBOL drivers/hwmon/sch56xx-common 0x0e2a6864 sch56xx_read_virtual_reg +EXPORT_SYMBOL drivers/hwmon/sch56xx-common 0x0f5877d4 sch56xx_read_virtual_reg16 +EXPORT_SYMBOL drivers/hwmon/sch56xx-common 0x34257f35 sch56xx_watchdog_unregister +EXPORT_SYMBOL drivers/hwmon/sch56xx-common 0x4bca0a3e sch56xx_watchdog_register +EXPORT_SYMBOL drivers/hwmon/sch56xx-common 0xe5022f95 sch56xx_read_virtual_reg12 +EXPORT_SYMBOL drivers/hwmon/sch56xx-common 0xed1d2a08 sch56xx_write_virtual_reg +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-bit 0xaff19e79 i2c_bit_add_bus +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-bit 0xc944e99b i2c_bit_algo +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-bit 0xd2f06be0 i2c_bit_add_numbered_bus +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-pca 0x3328584b i2c_pca_add_bus +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-pca 0x3a015daa i2c_pca_add_numbered_bus +EXPORT_SYMBOL drivers/i2c/busses/i2c-amd756 0x1ba0498e amd756_smbus +EXPORT_SYMBOL drivers/iio/accel/st_accel 0x0bf35383 st_accel_common_remove +EXPORT_SYMBOL drivers/iio/accel/st_accel 0x22eb5e39 st_accel_common_probe +EXPORT_SYMBOL drivers/iio/common/hid-sensors/hid-sensor-iio-common 0x33e2af7f hid_sensor_write_raw_hyst_value +EXPORT_SYMBOL drivers/iio/common/hid-sensors/hid-sensor-iio-common 0x6569c61c hid_sensor_read_samp_freq_value +EXPORT_SYMBOL drivers/iio/common/hid-sensors/hid-sensor-iio-common 0x9c52ee94 hid_sensor_write_samp_freq_value +EXPORT_SYMBOL drivers/iio/common/hid-sensors/hid-sensor-iio-common 0x9e0f800e hid_sensor_read_raw_hyst_value +EXPORT_SYMBOL drivers/iio/common/hid-sensors/hid-sensor-iio-common 0xb7a34995 hid_sensor_parse_common_attributes +EXPORT_SYMBOL drivers/iio/common/hid-sensors/hid-sensor-trigger 0x08de42c7 hid_sensor_setup_trigger +EXPORT_SYMBOL drivers/iio/common/hid-sensors/hid-sensor-trigger 0xc0935a17 hid_sensor_remove_trigger +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0x074d7047 st_sensors_trigger_handler +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0x195388d8 st_sensors_deallocate_trigger +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0x1b1fd637 st_sensors_read_info_raw +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0x3ddf21dc st_sensors_allocate_trigger +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0x5428a1e5 st_sensors_check_device_support +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0x67ba9546 st_sensors_sysfs_get_sampling_frequency +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0x6a1bc0c2 st_sensors_sysfs_scale_avail +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0x8d862836 st_sensors_set_dataready_irq +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0xb02738f5 st_sensors_sysfs_set_sampling_frequency +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0xd179139c st_sensors_get_buffer_element +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0xe8433c78 st_sensors_set_fullscale_by_gain +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0xedacb8db st_sensors_set_odr +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0xee79f50b st_sensors_set_axis_enable +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0xfa5aa570 st_sensors_sysfs_sampling_frequency_avail +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0xfd045d7a st_sensors_init_sensor +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0xfe8eb16e st_sensors_set_enable +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors_i2c 0x4a39f372 st_sensors_i2c_configure +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors_spi 0xf1772e1f st_sensors_spi_configure +EXPORT_SYMBOL drivers/iio/gyro/st_gyro 0x4dadd1cf st_gyro_common_remove +EXPORT_SYMBOL drivers/iio/gyro/st_gyro 0xee0b7ec0 st_gyro_common_probe +EXPORT_SYMBOL drivers/iio/imu/adis_lib 0x7219397e adis_debugfs_reg_access +EXPORT_SYMBOL drivers/iio/imu/adis_lib 0xf7f0aff2 adis_enable_irq +EXPORT_SYMBOL drivers/iio/industrialio 0x20584e4b iio_trigger_unregister +EXPORT_SYMBOL drivers/iio/industrialio 0x2d6bcdcb iio_trigger_generic_data_rdy_poll +EXPORT_SYMBOL drivers/iio/industrialio 0x331f35b5 iio_buffer_register +EXPORT_SYMBOL drivers/iio/industrialio 0x5a916adc iio_device_register +EXPORT_SYMBOL drivers/iio/industrialio 0x63355d25 iio_buffer_store_enable +EXPORT_SYMBOL drivers/iio/industrialio 0x71c7ad69 iio_trigger_register +EXPORT_SYMBOL drivers/iio/industrialio 0x7524381f iio_triggered_buffer_predisable +EXPORT_SYMBOL drivers/iio/industrialio 0x802a8c06 iio_trigger_alloc +EXPORT_SYMBOL drivers/iio/industrialio 0x8e5f658e iio_read_const_attr +EXPORT_SYMBOL drivers/iio/industrialio 0x8f55b87c iio_device_alloc +EXPORT_SYMBOL drivers/iio/industrialio 0x91ab74d3 iio_bus_type +EXPORT_SYMBOL drivers/iio/industrialio 0xa5bc6a3f iio_trigger_free +EXPORT_SYMBOL drivers/iio/industrialio 0xa819a2b8 iio_buffer_unregister +EXPORT_SYMBOL drivers/iio/industrialio 0xa9bd3caa iio_device_unregister +EXPORT_SYMBOL drivers/iio/industrialio 0xad9a36f5 iio_trigger_notify_done +EXPORT_SYMBOL drivers/iio/industrialio 0xadd32580 iio_sw_buffer_preenable +EXPORT_SYMBOL drivers/iio/industrialio 0xadd6074c iio_trigger_poll +EXPORT_SYMBOL drivers/iio/industrialio 0xbe8a0332 iio_push_event +EXPORT_SYMBOL drivers/iio/industrialio 0xc8dac364 iio_buffer_init +EXPORT_SYMBOL drivers/iio/industrialio 0xcc1893d5 iio_trigger_poll_chained +EXPORT_SYMBOL drivers/iio/industrialio 0xd3663f50 iio_device_free +EXPORT_SYMBOL drivers/iio/industrialio 0xd4757604 iio_buffer_write_length +EXPORT_SYMBOL drivers/iio/industrialio 0xd8873bc7 iio_triggered_buffer_postenable +EXPORT_SYMBOL drivers/iio/industrialio 0xdf76bbeb iio_pollfunc_store_time +EXPORT_SYMBOL drivers/iio/industrialio 0xe2cf8c57 iio_buffer_read_length +EXPORT_SYMBOL drivers/iio/industrialio 0xfc7ed235 iio_buffer_show_enable +EXPORT_SYMBOL drivers/iio/industrialio-triggered-buffer 0xe4771755 iio_triggered_buffer_cleanup +EXPORT_SYMBOL drivers/iio/industrialio-triggered-buffer 0xf4266ed3 iio_triggered_buffer_setup +EXPORT_SYMBOL drivers/iio/kfifo_buf 0x46d79084 iio_kfifo_allocate +EXPORT_SYMBOL drivers/iio/kfifo_buf 0xdc2e2b56 iio_kfifo_free +EXPORT_SYMBOL drivers/iio/magnetometer/st_magn 0x3174533c st_magn_common_remove +EXPORT_SYMBOL drivers/iio/magnetometer/st_magn 0xeb663a0e st_magn_common_probe +EXPORT_SYMBOL drivers/iio/pressure/st_pressure 0xdfb6816a st_press_common_probe +EXPORT_SYMBOL drivers/iio/pressure/st_pressure 0xf96c0e12 st_press_common_remove +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x1c3c0ad3 rdma_addr_size +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x37838b44 rdma_translate_ip +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x8ed679ff rdma_addr_unregister_client +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x9d1f522d rdma_addr_cancel +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0xa4c85fea rdma_copy_addr +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0xb93baf0d rdma_resolve_ip +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0xc0bf4edc rdma_addr_register_client +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x0aef0fdd ib_send_cm_drep +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x0e06cd7a ib_destroy_cm_id +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x0e186f9f ib_send_cm_rep +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x0e6792d9 ib_send_cm_rej +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x1adc3d52 ib_send_cm_lap +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x51e46c66 ib_create_cm_id +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x56c9ac62 ib_cm_listen +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x58428cf5 cm_class +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x6923367a ib_cm_init_qp_attr +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x9de8f4aa ib_send_cm_dreq +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xa38e6908 ib_send_cm_req +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xbc3f13b6 ib_send_cm_sidr_req +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xd0300e68 ib_cm_notify +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xd2dbe4ef ib_send_cm_sidr_rep +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xf32b05ef ib_send_cm_apr +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xf4bcbd4c ib_send_cm_mra +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xfc1b89bf ib_send_cm_rtu +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x00a2aba2 ib_create_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x0692036a ib_set_client_data +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x06c82fcf mult_to_ib_rate +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x09569eee ib_dealloc_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x0a58f0e3 ib_query_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x0c1b9ac1 ib_ud_header_unpack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x0fa1ba85 ib_register_client +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x119819d8 ib_destroy_cq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x14f84918 ib_rate_to_mbps +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x171f99f1 ib_rate_to_mult +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x197a75e7 ib_unregister_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1e491a04 ib_unmap_fmr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1fe23f81 ib_modify_qp_is_ok +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x22028eaf ib_detach_mcast +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x2664c554 ib_umem_page_count +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x289557b3 ib_alloc_pd +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x2a6b8c62 ib_create_ah_from_wc +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x2b12ef58 ib_query_port +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x2bbe4506 ib_fmr_pool_map_phys +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x2ed6e386 ib_ud_header_pack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x31c0443f ib_query_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x334f574e ib_query_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x36e4caa7 ib_dealloc_xrcd +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3783ea07 ib_create_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3ade178a ib_find_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3b8d56d4 ib_dealloc_pd +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3ef8bbd8 ib_find_exact_cached_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x45889009 ib_unregister_client +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x45e4dfd4 ib_register_event_handler +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x48ac6980 ib_open_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x4cd5df35 ib_modify_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x4d40586c ib_find_cached_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x50dbc447 ib_flush_fmr_pool +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x513f56cf ib_alloc_xrcd +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x520b2638 ib_pack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x52cf6384 ib_free_fast_reg_page_list +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x53704ceb ib_create_fmr_pool +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x58868aa0 ib_modify_port +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x5d6003fc ib_fmr_pool_unmap +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x66301578 ib_unregister_event_handler +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x6fef1d67 ib_close_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x76e9d1aa ib_query_srq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7720d57d ib_dealloc_fmr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7e769257 ib_create_cq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x80cb7553 ib_alloc_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x82f2c8ac ib_rereg_phys_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x8e863491 ib_query_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x9003db5e ib_modify_cq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x903bbcf5 ibnl_add_client +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x9065d97d ib_register_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x91a4eba7 ib_get_cached_lmc +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x96ce6c46 rdma_node_get_transport +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x97c4ee9a ib_umem_release +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x9bbca355 ib_alloc_fmr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x9d2c574c ib_find_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x9d98110b ib_alloc_fast_reg_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xa2a89cce ib_get_client_data +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xa3aa7c63 ibnl_put_msg +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xa77b61b5 ib_attach_mcast +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xab161626 ib_get_cached_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xabaa1ea8 ib_destroy_srq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb1a312e1 ib_unpack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb529f482 ib_destroy_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xbeb0aa04 ib_query_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xbf078da2 ib_dealloc_mw +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc0433378 ib_modify_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc32b59ff ib_destroy_fmr_pool +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc586e6b7 ib_umem_get +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc67f14a5 ibnl_remove_client +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc8600471 ib_create_srq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc865a7c7 ib_get_dma_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xcd4792f7 rdma_port_get_link_layer +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd093211d ib_resize_cq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd1b4cad3 ib_destroy_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd6c93990 ib_modify_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd86398e0 ib_dereg_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xdb248cad ibnl_put_attr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe0c4d145 ib_reg_phys_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe19c0987 ib_alloc_mw +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe48b86e3 ib_modify_srq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe52a559e ib_query_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe5829e92 ib_init_ah_from_wc +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe7c62797 ib_find_cached_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xefa935b8 ib_dispatch_event +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xfa69e2f3 ib_alloc_fast_reg_page_list +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xfc150956 ib_ud_header_init +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xffe3c266 ib_get_cached_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x1cfbaa47 ib_register_mad_snoop +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x3964f96e ib_create_send_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x3c0812f8 ib_post_send_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x3f359421 ib_free_recv_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x5fec3e38 ib_process_mad_wc +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 0x898efc5d ib_register_mad_agent +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x91893bdc ib_modify_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x946d5d27 ib_response_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xa54cf760 ib_cancel_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xee7aec3e ib_free_send_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xf158a790 ib_redirect_mad_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xf67db535 ib_unregister_mad_agent +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xfbbcba83 ib_get_rmpp_segment +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x2c026d31 ib_init_ah_from_mcmember +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x364c8e62 ib_sa_join_multicast +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x3dc1daad ib_sa_guid_info_rec_query +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x52dcfc06 ib_sa_path_rec_get +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x576fdbac ib_sa_free_multicast +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x5d432e24 ib_sa_get_mcmember_rec +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x6e44fd9f ib_sa_register_client +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x8001438f ib_sa_unregister_client +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x868f4a5a ib_init_ah_from_path +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xda0d50ec ib_sa_cancel_query +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xe74c3cf8 ib_sa_service_rec_query +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xe9efd86f ib_sa_pack_path +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xf6b6444b ib_sa_unpack_path +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x02f847bc ib_copy_path_rec_from_user +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x07cf5a51 ib_copy_ah_attr_to_user +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x18382f6a ib_copy_path_rec_to_user +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x184f3575 ib_copy_qp_attr_to_user +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x10c66ab6 iw_cm_listen +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x238b7e95 iw_destroy_cm_id +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x3be4d18b iw_create_cm_id +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x3bf7cf57 iw_cm_reject +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x6ddab9bf iw_cm_init_qp_attr +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x7746c65e iw_cm_connect +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x77b0640d iw_cm_disconnect +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x99f119d4 iw_cm_accept +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x01b093bf rdma_reject +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x086ef09c rdma_resolve_addr +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x0e2e5562 rdma_get_service_id +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x1f07e0a0 rdma_create_id +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x3c86f0a1 rdma_destroy_qp +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x5afcb242 rdma_listen +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x5ed5c8d8 rdma_create_qp +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x6428f471 rdma_accept +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x684e9820 rdma_join_multicast +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x6ba52525 rdma_resolve_route +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x75d81de7 rdma_disconnect +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x86e8c03e rdma_leave_multicast +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x8cb7a6f7 rdma_connect +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xb17d838c rdma_destroy_id +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xc0551d90 rdma_bind_addr +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xc8b7ff91 rdma_set_afonly +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xd728f794 rdma_set_service_type +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xe95fe83b rdma_notify +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xf28d98fd rdma_set_ib_paths +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xfc9e6df3 rdma_set_reuseaddr +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xfca9b9b5 rdma_init_qp_attr +EXPORT_SYMBOL drivers/input/gameport/gameport 0x0706bf7d gameport_stop_polling +EXPORT_SYMBOL drivers/input/gameport/gameport 0x106e4d7c gameport_close +EXPORT_SYMBOL drivers/input/gameport/gameport 0x1b656f43 __gameport_register_port +EXPORT_SYMBOL drivers/input/gameport/gameport 0x238bf458 gameport_unregister_port +EXPORT_SYMBOL drivers/input/gameport/gameport 0x3768069a gameport_start_polling +EXPORT_SYMBOL drivers/input/gameport/gameport 0x62aa87cb gameport_unregister_driver +EXPORT_SYMBOL drivers/input/gameport/gameport 0xa965deb0 gameport_set_phys +EXPORT_SYMBOL drivers/input/gameport/gameport 0xaf89270a __gameport_register_driver +EXPORT_SYMBOL drivers/input/gameport/gameport 0xf650d5b5 gameport_open +EXPORT_SYMBOL drivers/input/input-polldev 0x033ab438 input_unregister_polled_device +EXPORT_SYMBOL drivers/input/input-polldev 0x7d563a4e input_register_polled_device +EXPORT_SYMBOL drivers/input/input-polldev 0xb70d0e86 input_allocate_polled_device +EXPORT_SYMBOL drivers/input/input-polldev 0xc25e5ae4 input_free_polled_device +EXPORT_SYMBOL drivers/input/matrix-keymap 0xbaab57f9 matrix_keypad_build_keymap +EXPORT_SYMBOL drivers/input/misc/ad714x 0x01eaff9d ad714x_disable +EXPORT_SYMBOL drivers/input/misc/ad714x 0x83b79ec3 ad714x_enable +EXPORT_SYMBOL drivers/input/misc/ad714x 0x92e18acc ad714x_remove +EXPORT_SYMBOL drivers/input/misc/ad714x 0xbb79753b ad714x_probe +EXPORT_SYMBOL drivers/input/misc/cma3000_d0x 0x892d76b2 cma3000_resume +EXPORT_SYMBOL drivers/input/misc/cma3000_d0x 0x89d9444e cma3000_exit +EXPORT_SYMBOL drivers/input/misc/cma3000_d0x 0xc8e504ba cma3000_init +EXPORT_SYMBOL drivers/input/misc/cma3000_d0x 0xca3f100a cma3000_suspend +EXPORT_SYMBOL drivers/input/sparse-keymap 0x011def97 sparse_keymap_report_event +EXPORT_SYMBOL drivers/input/sparse-keymap 0x1c83d675 sparse_keymap_entry_from_scancode +EXPORT_SYMBOL drivers/input/sparse-keymap 0x31040771 sparse_keymap_report_entry +EXPORT_SYMBOL drivers/input/sparse-keymap 0x5855e58e sparse_keymap_entry_from_keycode +EXPORT_SYMBOL drivers/input/sparse-keymap 0x71d9780a sparse_keymap_free +EXPORT_SYMBOL drivers/input/sparse-keymap 0x89a3f873 sparse_keymap_setup +EXPORT_SYMBOL drivers/input/touchscreen/ad7879 0x0aa45d77 ad7879_pm_ops +EXPORT_SYMBOL drivers/input/touchscreen/ad7879 0x97f83edf ad7879_remove +EXPORT_SYMBOL drivers/input/touchscreen/ad7879 0xb8dab832 ad7879_probe +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x001cba3e detach_capi_ctr +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 0x21021a2e capi_ctr_handle_message +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x287daa85 capi20_release +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x2b8eab1f capilib_free_ncci +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x2baa6586 capilib_new_ncci +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x31c24aa4 capi20_isinstalled +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x4407d7ab capi_ctr_suspend_output +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x47d3fc51 capi_info2str +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x50b33ca4 capi_cmsg2message +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x6057c6f3 capi_message2cmsg +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x62e32d43 capilib_data_b3_conf +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x6c672452 capi_ctr_ready +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x6f9d1eec attach_capi_ctr +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 0xc10fe128 cdebbuf_free +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xc2cdc6c1 capi_ctr_resume_output +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xd9d58fbf capi20_register +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 0xf319d298 capi20_put_message +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xfa5cf4ab capi_ctr_down +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x0468ef26 b1_load_t4file +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x14afbb2c avmcard_dma_free +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x241db83e b1_getrevision +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x32d0c489 b1_loaded +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x56c05576 b1_release_appl +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x5d089281 avmcard_dma_alloc +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x5d30b0d0 b1_load_config +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x85f09690 b1_irq_table +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x86401db8 b1_register_appl +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x86f48bd0 b1ctl_proc_fops +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x8caceaf7 b1_send_message +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x97951b6a b1_reset_ctr +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xb3c06fd1 b1_alloc_card +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xdcdf47d2 b1_free_card +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xdfd28376 b1_detect +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xe11e7c13 b1_parse_version +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xf093011b b1_load_firmware +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xfa10fee4 b1_interrupt +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x43138ddb b1dma_release_appl +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x78d7b9eb t1pci_detect +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x9c150433 b1dma_register_appl +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0xb23e9adb b1dma_reset_ctr +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0xb43f8c0a b1dma_reset +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0xd6f9f1ea b1dma_interrupt +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0xe0552ebe b1pciv4_detect +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0xe2a0bc87 b1dmactl_proc_fops +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0xe906be0d b1dma_load_firmware +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0xed5018d3 b1dma_send_message +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1pcmcia 0x29562993 b1pcmcia_delcard +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1pcmcia 0xaec3240e b1pcmcia_addcard_m1 +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1pcmcia 0xea620116 b1pcmcia_addcard_m2 +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1pcmcia 0xf14bf8b1 b1pcmcia_addcard_b1 +EXPORT_SYMBOL drivers/isdn/hardware/eicon/divadidd 0x2974ead1 DIVA_DIDD_Read +EXPORT_SYMBOL drivers/isdn/hardware/eicon/divadidd 0x7ab59853 proc_net_eicon +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0x112ff75e mISDNipac_init +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0x22315743 mISDNisac_irq +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0x6879fb18 mISDNisac_init +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0x7b442bf4 mISDNipac_irq +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNisar 0x17078c2a mISDNisar_init +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNisar 0x4292dea1 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 0x807ba286 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 0x1e224cb5 isacsx_setup +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0x25738bc9 isac_init +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0x2bc7f5ae isacsx_irq +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0x3f3b323a isac_d_l2l1 +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0x74239ab8 isac_setup +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0xd6d1c095 isac_irq +EXPORT_SYMBOL drivers/isdn/i4l/isdn 0x32aef112 isdn_ppp_unregister_compressor +EXPORT_SYMBOL drivers/isdn/i4l/isdn 0x826f7853 register_isdn +EXPORT_SYMBOL drivers/isdn/i4l/isdn 0xf9bb0bfc 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 0x037a19fb mISDN_freebchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x0a652edb create_l1 +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x1053e96d mISDN_freedchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x165f88be recv_Echannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x2348cc3c mISDN_FsmFree +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x28626c8a bchannel_get_rxbuf +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x3314c94c get_next_bframe +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x3cc5371a mISDN_register_device +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x3fd72d05 mISDN_unregister_Bprotocol +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x431dfa16 mISDN_initbchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x4ac270c3 dchannel_senddata +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x50c2230c mISDN_FsmChangeState +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x50f59f38 bchannel_senddata +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x52ae4757 mISDNDevName4ch +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x54451388 mISDN_FsmRestartTimer +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x57c416d8 mISDN_ctrl_bchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x588886a6 l1_event +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x5e99bf57 recv_Bchannel_skb +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x614ede30 mISDN_FsmAddTimer +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x6334668b mISDN_unregister_device +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x7db082bd recv_Dchannel_skb +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x85d268c3 recv_Bchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x8a4e99fb mISDN_clock_update +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x8ea7df14 mISDN_initdchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x95df4a37 mISDN_register_Bprotocol +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x96309324 mISDN_FsmDelTimer +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x9f2382df get_next_dframe +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 0xe87943cf mISDN_FsmInitTimer +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xe8f617eb mISDN_unregister_clock +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xf2bbed21 recv_Dchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xf9e7832f mISDN_FsmNew +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xfa415542 mISDN_clear_bchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xfec57df7 queue_ch_frame +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 0xa717fafb dm_dirty_log_create +EXPORT_SYMBOL drivers/md/dm-log 0xb3a5d34f dm_dirty_log_type_unregister +EXPORT_SYMBOL drivers/md/dm-log 0xe00c7b20 dm_dirty_log_type_register +EXPORT_SYMBOL drivers/md/dm-log 0xe64876c6 dm_dirty_log_destroy +EXPORT_SYMBOL drivers/md/dm-snapshot 0x0c1dd55a dm_exception_store_create +EXPORT_SYMBOL drivers/md/dm-snapshot 0x32013cc2 dm_exception_store_type_register +EXPORT_SYMBOL drivers/md/dm-snapshot 0x9f020c17 dm_exception_store_type_unregister +EXPORT_SYMBOL drivers/md/dm-snapshot 0xa526f1c7 dm_snap_origin +EXPORT_SYMBOL drivers/md/dm-snapshot 0xeb83acaf dm_snap_cow +EXPORT_SYMBOL drivers/md/dm-snapshot 0xf75645c3 dm_exception_store_destroy +EXPORT_SYMBOL drivers/md/raid456 0x6d452152 raid5_set_cache_size +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0x032e0640 flexcop_eeprom_check_mac_addr +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0x03431a54 flexcop_device_kfree +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0x0dbddb23 flexcop_wan_set_speed +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0x18dbad72 flexcop_dump_reg +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0x204a173d flexcop_sram_ctrl +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0x2085e735 flexcop_device_initialize +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0x70c70808 flexcop_device_kmalloc +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0xb40e2df4 flexcop_pass_dmx_packets +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0xdae958b8 flexcop_pid_feed_control +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0xed1d1648 flexcop_i2c_request +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0xf08511d3 flexcop_pass_dmx_data +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0xf90380ef flexcop_device_exit +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0xfe4a7950 flexcop_sram_set_dest +EXPORT_SYMBOL drivers/media/common/btcx-risc 0x2e8f4837 btcx_riscmem_alloc +EXPORT_SYMBOL drivers/media/common/btcx-risc 0x495e4b0c btcx_calc_skips +EXPORT_SYMBOL drivers/media/common/btcx-risc 0x6bf5681c btcx_riscmem_free +EXPORT_SYMBOL drivers/media/common/btcx-risc 0xad2fe38b btcx_sort_clips +EXPORT_SYMBOL drivers/media/common/btcx-risc 0xc368f8e6 btcx_align +EXPORT_SYMBOL drivers/media/common/btcx-risc 0xcda0ded2 btcx_screen_clips +EXPORT_SYMBOL drivers/media/common/cx2341x 0x1ca0c084 cx2341x_log_status +EXPORT_SYMBOL drivers/media/common/cx2341x 0x2e2d5f58 cx2341x_handler_set_busy +EXPORT_SYMBOL drivers/media/common/cx2341x 0x2f25eee2 cx2341x_update +EXPORT_SYMBOL drivers/media/common/cx2341x 0x3db8be82 cx2341x_ctrl_query +EXPORT_SYMBOL drivers/media/common/cx2341x 0x5b88faf6 cx2341x_ext_ctrls +EXPORT_SYMBOL drivers/media/common/cx2341x 0x733a2a60 cx2341x_handler_setup +EXPORT_SYMBOL drivers/media/common/cx2341x 0x743836d0 cx2341x_handler_set_50hz +EXPORT_SYMBOL drivers/media/common/cx2341x 0xbb9e1db3 cx2341x_handler_init +EXPORT_SYMBOL drivers/media/common/cx2341x 0xc184ec1e cx2341x_ctrl_get_menu +EXPORT_SYMBOL drivers/media/common/cx2341x 0xcf76ce95 cx2341x_fill_defaults +EXPORT_SYMBOL drivers/media/common/cx2341x 0xcf8b77a4 cx2341x_mpeg_ctrls +EXPORT_SYMBOL drivers/media/common/cypress_firmware 0x38561620 cypress_load_firmware +EXPORT_SYMBOL drivers/media/common/tveeprom 0x253661a5 tveeprom_hauppauge_analog +EXPORT_SYMBOL drivers/media/common/tveeprom 0x8155daba tveeprom_read +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x0765e27a dvb_dmxdev_init +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x088d242a dvb_register_device +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x0c18b3cd dvb_dmx_swfilter_204 +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x101a29b8 dvb_ringbuffer_flush_spinlock_wakeup +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x11f2adbf dvb_dmx_init +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x17523ce7 dvb_frontend_sleep_until +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x196f1ac1 dvb_ringbuffer_flush +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x21dee2bd dvb_dmxdev_release +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x237f7910 dvb_ringbuffer_free +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x2b115228 dvb_dmx_swfilter +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x300f2abb dvb_ringbuffer_init +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x318e1e4d dvb_register_adapter +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x335ad95c dvb_ca_en50221_camready_irq +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x3fc50bd3 dvb_generic_release +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x4b358a50 dvb_ca_en50221_init +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x4c70c35a dvb_ringbuffer_write +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x5289655c dvb_register_frontend +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x59563d79 dvb_dmx_swfilter_packets +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x5bda0917 dvb_net_init +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x62b3fd30 dvb_ca_en50221_frda_irq +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x69070d3c dvb_frontend_detach +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x6dc4a460 dvb_ca_en50221_camchange_irq +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x74a5a698 dvb_filter_pes2ts_init +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x75df659f dvb_unregister_device +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x80e3832d dvb_filter_get_ac3info +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x86c1b277 dvb_frontend_reinitialise +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x915ecce1 dvb_unregister_frontend +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x987dcfde dvb_ringbuffer_avail +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x99504201 dvb_ca_en50221_release +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xac4ca1b0 intlog2 +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xb72b5fa0 dvb_ringbuffer_empty +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xb78ef7ff dvb_unregister_adapter +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xcb7aa623 dvb_dmx_swfilter_raw +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xcc366bb7 dvb_generic_ioctl +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xcfbaf79f dvb_net_release +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xd24484f6 dvb_dmx_release +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xd3ee7530 dvb_ringbuffer_read +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xd68a099e timeval_usec_diff +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xdb83768f dvb_generic_open +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xe5ae8707 intlog10 +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xec947148 dvb_frontend_suspend +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xf826deb0 dvb_filter_pes2ts +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xfcc0ed9c dvb_ringbuffer_read_user +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xfe9884ec dvb_frontend_resume +EXPORT_SYMBOL drivers/media/dvb-frontends/a8293 0xb001d828 a8293_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/af9013 0x4277bacb af9013_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/af9033 0x980211b4 af9033_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/atbm8830 0xa9cbfbc3 atbm8830_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_common 0x0a0a09de au8522_readreg +EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_common 0x0f54aba4 au8522_get_state +EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_common 0x145d82be au8522_sleep +EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_common 0x2893054c au8522_init +EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_common 0x3aa03f3b au8522_led_ctrl +EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_common 0x95aa55ef au8522_writereg +EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_common 0xa7e945e8 au8522_analog_i2c_gate_ctrl +EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_common 0xbf3640d4 au8522_release_state +EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_common 0xeb7e3d83 au8522_i2c_gate_ctrl +EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_dig 0xf14b19ae au8522_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/bcm3510 0xb686cf3b bcm3510_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/cx22700 0x0f74a1cd cx22700_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/cx22702 0x75b380a8 cx22702_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/cx24110 0x4b0c1c23 cx24110_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/cx24113 0x3f598e79 cx24113_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/cx24113 0xc17a70f5 cx24113_agc_callback +EXPORT_SYMBOL drivers/media/dvb-frontends/cx24116 0x7242177d cx24116_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/cx24123 0xcade31b1 cx24123_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/cx24123 0xfa53a149 cx24123_get_tuner_i2c_adapter +EXPORT_SYMBOL drivers/media/dvb-frontends/cxd2820r 0x56442e04 cxd2820r_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0070 0x1bc76617 dib0070_wbd_offset +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0070 0xcaafe8e6 dib0070_get_rf_output +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0070 0xebd2d6a9 dib0070_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0070 0xf50ce1cf dib0070_ctrl_agc_filter +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0070 0xfeb5f802 dib0070_set_rf_output +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x1735367d dib0090_gain_control +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x1d816a2a dib0090_set_vga +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x29e26a99 dib0090_dcc_freq +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x3d2e1f91 dib0090_pwm_gain_reset +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x4713ffaa dib0090_set_dc_servo +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x4f17e51c dib0090_update_tuning_table_7090 +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x6e65f3b5 dib0090_get_tune_state +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x7ebaf3e5 dib0090_get_wbd_target +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x8ea7261a dib0090_update_rframp_7090 +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0xaf016b86 dib0090_get_wbd_offset +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0xbdfd5e6b dib0090_set_switch +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0xcc84f55d dib0090_get_current_gain +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0xcdc6017a dib0090_register +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0xd63e7a82 dib0090_set_tune_state +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0xd7289115 dib0090_fw_register +EXPORT_SYMBOL drivers/media/dvb-frontends/dib3000mb 0x0fb6d151 dib3000mb_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/dib3000mc 0x0c68a36f dib3000mc_i2c_enumeration +EXPORT_SYMBOL drivers/media/dvb-frontends/dib3000mc 0x1e0181b7 dib3000mc_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/dib3000mc 0x533cb825 dib3000mc_pid_parse +EXPORT_SYMBOL drivers/media/dvb-frontends/dib3000mc 0x6eb7d364 dib3000mc_set_config +EXPORT_SYMBOL drivers/media/dvb-frontends/dib3000mc 0x7c341ed1 dib3000mc_get_tuner_i2c_master +EXPORT_SYMBOL drivers/media/dvb-frontends/dib3000mc 0xfb6db88e dib3000mc_pid_control +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000m 0x0fc4fcd5 dib7000m_pid_filter_ctrl +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000m 0x87d2da76 dib7000m_get_i2c_master +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000m 0xe191a528 dib7000m_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000m 0xe6d5abaf dib7000m_pid_filter +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0x1067882a dib7000p_ctrl_timf +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0x15263c5b dib7000p_get_i2c_master +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0x185556b0 dib7090_tuner_sleep +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0x3c2e7960 dib7000p_set_gpio +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0x4afca0a1 dib7090_slave_reset +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0x69cc7546 dib7000p_update_pll +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0x9ab846a5 dib7000p_i2c_enumeration +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0x9fe63d30 dib7000p_get_agc_values +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0xabec4940 dib7000p_pid_filter_ctrl +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0xb3a7228d dib7000p_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0xb56d760c dib7000p_set_wbd_ref +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0xc099ea51 dib7000pc_detection +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0xc8aed956 dib7000p_pid_filter +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0xd066f493 dib7090_get_i2c_tuner +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0xd676e33d dib7090_get_adc_power +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0xf69dbce0 dib7000p_set_agc1_min +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0x011a4efa dib8000_pid_filter_ctrl +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0x045851f4 dib8000_pwm_agc_reset +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0x0f047e9e dib8000_set_tune_state +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0x30133377 dib8000_get_slave_frontend +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0x3ac16a92 dib8000_get_i2c_master +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0x515cd63b dib8000_set_slave_frontend +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0x70026bd6 dib8000_remove_slave_frontend +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0x72718bef dib8096p_get_i2c_tuner +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0x794efa0c dib8000_get_tune_state +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0x7ad14a10 dib8000_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0x8a1faf5d dib8000_get_adc_power +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0x9709c231 dib8000_update_pll +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0xb63da498 dib8000_pid_filter +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0xba7f635f dib8000_set_wbd_ref +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0xc94f15d7 dib8090p_get_dc_power +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0xed150260 dib8096p_tuner_sleep +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0xed62a832 dib8000_ctrl_timf +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0xef78c3e2 dib8000_set_gpio +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0xfa0608ff dib8000_i2c_enumeration +EXPORT_SYMBOL drivers/media/dvb-frontends/dibx000_common 0x4b72b476 dibx000_get_i2c_adapter +EXPORT_SYMBOL drivers/media/dvb-frontends/dibx000_common 0x64385e8a dibx000_exit_i2c_master +EXPORT_SYMBOL drivers/media/dvb-frontends/dibx000_common 0xad3ad91c systime +EXPORT_SYMBOL drivers/media/dvb-frontends/dibx000_common 0xb61209ca dibx000_i2c_set_speed +EXPORT_SYMBOL drivers/media/dvb-frontends/dibx000_common 0xcb1f7675 dibx000_init_i2c_master +EXPORT_SYMBOL drivers/media/dvb-frontends/dibx000_common 0xefcc2233 dibx000_reset_i2c_master +EXPORT_SYMBOL drivers/media/dvb-frontends/drxd 0x215973bf drxd_config_i2c +EXPORT_SYMBOL drivers/media/dvb-frontends/drxd 0x7b88ac0f drxd_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/drxk 0xa6494555 drxk_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/ds3000 0xa9b72f39 ds3000_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/dvb-pll 0x774e7fb2 dvb_pll_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/ec100 0x15a7657b ec100_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/isl6405 0x79afb418 isl6405_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/isl6421 0xd2dc77ee isl6421_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/isl6423 0x0a5f3666 isl6423_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/it913x-fe 0x56e47fb1 it913x_fe_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/itd1000 0x15ac155f itd1000_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/ix2505v 0x3bf29b5b ix2505v_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/l64781 0x3451d1e7 l64781_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/lg2160 0xfece05df lg2160_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/lgdt3305 0x0afb838a lgdt3305_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/lgdt330x 0xc255972f lgdt330x_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/lgs8gxx 0x66aa6992 lgs8gxx_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/lnbp21 0x0c2f434f lnbp21_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/lnbp21 0xf70a1e85 lnbh24_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/lnbp22 0x8303a353 lnbp22_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/m88rs2000 0x51f326e9 m88rs2000_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/mb86a16 0x7e543c78 mb86a16_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/mb86a20s 0xab74fbd4 mb86a20s_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/mt312 0xfccc4ac1 mt312_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/mt352 0x3c56c12b mt352_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/nxt200x 0x95ee72c8 nxt200x_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/nxt6000 0xe4ebb512 nxt6000_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/or51132 0x14949e2f or51132_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/or51211 0xd284ffde or51211_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/rtl2830 0x4b4fc4d6 rtl2830_get_tuner_i2c_adapter +EXPORT_SYMBOL drivers/media/dvb-frontends/rtl2830 0x7cd8f211 rtl2830_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/rtl2832 0x43503658 rtl2832_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/s5h1409 0x40ea7abb s5h1409_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/s5h1411 0x86669cb2 s5h1411_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/s5h1420 0x69e5a8cb s5h1420_get_tuner_i2c_adapter +EXPORT_SYMBOL drivers/media/dvb-frontends/s5h1420 0x9b57ee39 s5h1420_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/s921 0x0551608c s921_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/si21xx 0x10d91246 si21xx_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/sp8870 0x97cc4625 sp8870_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/sp887x 0x0f50bffe sp887x_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stb0899 0x2bd44b34 stb0899_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stb6000 0xcc8dcc42 stb6000_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stb6100 0x9fbb83bb stb6100_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stv0288 0x15f2802c stv0288_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stv0297 0x9d0215bf stv0297_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stv0299 0x539f9836 stv0299_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stv0367 0x21301018 stv0367cab_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stv0367 0xf9f33025 stv0367ter_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stv0900 0xdc8c4c00 stv0900_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stv090x 0x3d348ca3 stv090x_set_gpio +EXPORT_SYMBOL drivers/media/dvb-frontends/stv090x 0x7826f365 stv090x_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stv6110 0xa995b8e1 stv6110_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stv6110x 0x34fb104e stv6110x_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda10021 0xf5dca827 tda10021_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda10023 0xf0ec019e tda10023_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda10048 0x0b794a49 tda10048_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda1004x 0x4dfeb0a5 tda10046_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda1004x 0x9d9223b1 tda10045_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda10071 0xa23f4ada tda10071_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda10086 0x23c3093b tda10086_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda665x 0xd9a0007f tda665x_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda8083 0x0e6e96f0 tda8083_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda8261 0xf8575030 tda8261_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda826x 0x6a6a327e tda826x_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/ts2020 0xbebbd223 ts2020_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tua6100 0x569c470f tua6100_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/ves1820 0x97d7a705 ves1820_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/ves1x93 0x81939f93 ves1x93_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/zl10036 0x5d71deeb zl10036_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/zl10039 0xd0aebba6 zl10039_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/zl10353 0x6255a81b zl10353_attach +EXPORT_SYMBOL drivers/media/pci/b2c2/b2c2-flexcop-pci 0x2180aa00 flexcop_dma_control_size_irq +EXPORT_SYMBOL drivers/media/pci/b2c2/b2c2-flexcop-pci 0x7217078c flexcop_dma_config +EXPORT_SYMBOL drivers/media/pci/b2c2/b2c2-flexcop-pci 0x8c518769 flexcop_dma_config_timer +EXPORT_SYMBOL drivers/media/pci/b2c2/b2c2-flexcop-pci 0x9c834968 flexcop_dma_free +EXPORT_SYMBOL drivers/media/pci/b2c2/b2c2-flexcop-pci 0xc4f89835 flexcop_dma_allocate +EXPORT_SYMBOL drivers/media/pci/b2c2/b2c2-flexcop-pci 0xdeb61238 flexcop_dma_xfer_control +EXPORT_SYMBOL drivers/media/pci/b2c2/b2c2-flexcop-pci 0xf836b0c2 flexcop_dma_control_timer_irq +EXPORT_SYMBOL drivers/media/pci/bt8xx/bt878 0x9c046a86 bt878 +EXPORT_SYMBOL drivers/media/pci/bt8xx/bt878 0xd5d0bdef bt878_num +EXPORT_SYMBOL drivers/media/pci/bt8xx/bt878 0xdfd3279e bt878_start +EXPORT_SYMBOL drivers/media/pci/bt8xx/bt878 0xeac31582 bt878_stop +EXPORT_SYMBOL drivers/media/pci/bt8xx/bt878 0xfc28e702 bt878_device_control +EXPORT_SYMBOL drivers/media/pci/bt8xx/bttv 0x11dc4b6d bttv_gpio_enable +EXPORT_SYMBOL drivers/media/pci/bt8xx/bttv 0x59686ebf bttv_sub_unregister +EXPORT_SYMBOL drivers/media/pci/bt8xx/bttv 0x8ecf4acc bttv_write_gpio +EXPORT_SYMBOL drivers/media/pci/bt8xx/bttv 0xbcf2d2fb bttv_read_gpio +EXPORT_SYMBOL drivers/media/pci/bt8xx/bttv 0xc0437754 bttv_sub_register +EXPORT_SYMBOL drivers/media/pci/bt8xx/bttv 0xd51e019d bttv_get_pcidev +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0x040414d3 dst_pio_disable +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0x1d762d05 rdc_reset_state +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0x40226962 write_dst +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0x5e8d2992 dst_comm_init +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0x82336bce dst_error_bailout +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0x9f031822 read_dst +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0xc1117dfe dst_attach +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0xd45f5500 dst_error_recovery +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0xdf4462c1 dst_wait_dst_ready +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0xe94b8c9c dst_check_sum +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst_ca 0x3f0853f2 dst_ca_attach +EXPORT_SYMBOL drivers/media/pci/cx18/cx18 0x2cdea06d cx18_reset_ir_gpio +EXPORT_SYMBOL drivers/media/pci/cx18/cx18 0x2e2fcf8e cx18_stop_v4l2_encode_stream +EXPORT_SYMBOL drivers/media/pci/cx18/cx18 0x2fa42d39 cx18_start_v4l2_encode_stream +EXPORT_SYMBOL drivers/media/pci/cx18/cx18 0x4e593aef cx18_claim_stream +EXPORT_SYMBOL drivers/media/pci/cx18/cx18 0xc50f3dd0 cx18_ext_init +EXPORT_SYMBOL drivers/media/pci/cx18/cx18 0xd08d7521 cx18_release_stream +EXPORT_SYMBOL drivers/media/pci/cx23885/altera-ci 0x28b3c64f altera_hw_filt_init +EXPORT_SYMBOL drivers/media/pci/cx23885/altera-ci 0x44eed089 altera_pid_feed_control +EXPORT_SYMBOL drivers/media/pci/cx23885/altera-ci 0x6ff7510d altera_ci_tuner_reset +EXPORT_SYMBOL drivers/media/pci/cx23885/altera-ci 0x9247b72f altera_hw_filt_release +EXPORT_SYMBOL drivers/media/pci/cx23885/altera-ci 0xce450ad1 altera_ci_init +EXPORT_SYMBOL drivers/media/pci/cx23885/altera-ci 0xdb3faf38 altera_ci_release +EXPORT_SYMBOL drivers/media/pci/cx23885/altera-ci 0xe66b9812 altera_ci_irq +EXPORT_SYMBOL drivers/media/pci/cx25821/cx25821 0x407b9ab0 cx25821_dev_get +EXPORT_SYMBOL drivers/media/pci/cx25821/cx25821 0x60aab81d cx25821_sram_channel_dump_audio +EXPORT_SYMBOL drivers/media/pci/cx25821/cx25821 0x67398116 cx25821_risc_databuffer_audio +EXPORT_SYMBOL drivers/media/pci/cx25821/cx25821 0x784853c3 cx25821_print_irqbits +EXPORT_SYMBOL drivers/media/pci/cx25821/cx25821 0x7afcc0eb cx25821_dev_unregister +EXPORT_SYMBOL drivers/media/pci/cx25821/cx25821 0x9e7e2d86 cx25821_set_gpiopin_direction +EXPORT_SYMBOL drivers/media/pci/cx25821/cx25821 0xc5d38741 cx25821_sram_channels +EXPORT_SYMBOL drivers/media/pci/cx25821/cx25821 0xe927fedb cx25821_sram_channel_setup_audio +EXPORT_SYMBOL drivers/media/pci/cx88/cx88-vp3054-i2c 0x2bf2e832 vp3054_i2c_remove +EXPORT_SYMBOL drivers/media/pci/cx88/cx88-vp3054-i2c 0xc63d07b0 vp3054_i2c_probe +EXPORT_SYMBOL drivers/media/pci/cx88/cx8800 0x5239c227 cx88_enum_input +EXPORT_SYMBOL drivers/media/pci/cx88/cx8800 0x8ed5f149 cx88_querycap +EXPORT_SYMBOL drivers/media/pci/cx88/cx8800 0xa3e2ec31 cx88_video_mux +EXPORT_SYMBOL drivers/media/pci/cx88/cx8800 0xc9b73993 cx88_set_freq +EXPORT_SYMBOL drivers/media/pci/cx88/cx8802 0x0d5e924a cx8802_cancel_buffers +EXPORT_SYMBOL drivers/media/pci/cx88/cx8802 0x4b74c949 cx8802_get_driver +EXPORT_SYMBOL drivers/media/pci/cx88/cx8802 0x577bdc22 cx8802_unregister_driver +EXPORT_SYMBOL drivers/media/pci/cx88/cx8802 0x6a420443 cx8802_register_driver +EXPORT_SYMBOL drivers/media/pci/cx88/cx8802 0x7ca46cac cx8802_buf_queue +EXPORT_SYMBOL drivers/media/pci/cx88/cx8802 0xf922005f cx8802_buf_prepare +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x0304909a cx88_ir_stop +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x07600249 cx88_dsp_detect_stereo_sap +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x0aa955a0 cx88_free_buffer +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x11198210 cx88_wakeup +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x19128bed cx88_vdev_init +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x1e8800de cx88_ir_start +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x2904413e cx88_risc_stopper +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x2c13bec3 cx88_set_scale +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x31864475 cx88_core_irq +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x31ddfa5d cx88_core_put +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x4216fc84 cx88_sram_channels +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x4998a692 cx88_risc_databuffer +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x4dbeeee0 cx88_core_get +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x6141c8c5 cx88_tuner_callback +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x675f6c87 cx88_sram_channel_dump +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x7642ed3c cx88_print_irqbits +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x77f965e3 cx88_shutdown +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x7d97c407 cx88_newstation +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x855a485a cx88_get_stereo +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x904b8696 cx88_audio_thread +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x95329ede cx88_set_stereo +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x9a681ba7 cx88_set_tvaudio +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0xc10bdb11 cx88_reset +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0xcc308edb cx88_risc_buffer +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0xdc4634bf cx88_sram_channel_setup +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0xf6d10cea cx88_set_tvnorm +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x001fd148 ivtv_udma_prepare +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x14f67530 ivtv_debug +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x2458d33c ivtv_api +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x26329d9f ivtv_vapi_result +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x4bdab085 ivtv_udma_unmap +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x6bcd0964 ivtv_ext_init +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x6df55866 ivtv_start_v4l2_encode_stream +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x71900bb8 ivtv_reset_ir_gpio +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x98f3de20 ivtv_init_on_first_open +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x9ed7049e ivtv_udma_setup +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x9fd2019f ivtv_udma_alloc +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0xaea52601 ivtv_clear_irq_mask +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0xb3e3aeb4 ivtv_stop_v4l2_encode_stream +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0xb8ad592c ivtv_claim_stream +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0xc77f0b23 ivtv_vapi +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0xd967182b ivtv_set_irq_mask +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0xdd13b052 ivtv_firmware_check +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0xe79c7730 ivtv_release_stream +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x04e83446 saa7134_tuner_callback +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x0935624f saa7134_devlist_lock +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x1211df5d saa7134_devlist +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x1e2c28b6 saa_dsp_writel +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x287a4ebf saa7134_pgtable_alloc +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x70ef2228 saa7134_pgtable_free +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x73039031 saa7134_boards +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x9f4ed434 saa7134_tvaudio_setmute +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0xa17da1e8 saa7134_dmasound_exit +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0xa290715c saa7134_set_dmabits +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0xa3c656b2 saa7134_dmasound_init +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0xa86ad7ca saa7134_ts_register +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0xced985d4 saa7134_pgtable_build +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0xe5aeaa91 saa7134_set_gpio +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0xea4612df saa7134_ts_unregister +EXPORT_SYMBOL drivers/media/pci/ttpci/ttpci-eeprom 0x94c0638c ttpci_eeprom_parse_mac +EXPORT_SYMBOL drivers/media/pci/ttpci/ttpci-eeprom 0xc3e4c127 ttpci_eeprom_decode_mac +EXPORT_SYMBOL drivers/media/pci/zoran/videocodec 0x0338ca47 videocodec_register +EXPORT_SYMBOL drivers/media/pci/zoran/videocodec 0x0dac7ec5 videocodec_attach +EXPORT_SYMBOL drivers/media/pci/zoran/videocodec 0x12e29baa videocodec_detach +EXPORT_SYMBOL drivers/media/pci/zoran/videocodec 0xc8d06b48 videocodec_unregister +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_camera 0x1345a265 soc_camera_host_unregister +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_camera 0x172e7053 soc_camera_host_register +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_camera 0x2a4aee3e soc_camera_power_init +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_camera 0x3997d1fa soc_camera_unlock +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_camera 0x686b4b10 soc_camera_lock +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_camera 0x7e0116d6 soc_camera_power_off +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_camera 0x90600a08 soc_camera_xlate_by_fourcc +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_camera 0xaf86d134 soc_camera_power_on +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_camera 0xd0e84bc7 soc_camera_apply_board_flags +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_mediabus 0x25c52d97 soc_mbus_samples_per_pixel +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_mediabus 0x2863728e soc_mbus_image_size +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_mediabus 0x46b1be73 soc_mbus_find_fmtdesc +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_mediabus 0x5f3e3558 soc_mbus_bytes_per_line +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_mediabus 0xc8b28da5 soc_mbus_config_compatible +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_mediabus 0xd4d5a2f0 soc_mbus_get_fmtdesc +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_scale_crop 0x374ae4e6 soc_camera_client_scale +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_scale_crop 0x4badae2a soc_camera_client_g_rect +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_scale_crop 0x588cbeb2 soc_camera_calc_client_output +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_scale_crop 0x5ba8e74a soc_camera_client_s_crop +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0x04dca738 lirc_unregister_driver +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0x1205f3c8 lirc_dev_fop_write +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0x18e27967 lirc_dev_fop_close +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0x4fe67c35 lirc_register_driver +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0x50c69876 lirc_get_pdata +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0x5bc8ec86 lirc_dev_fop_read +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0x815a970d lirc_dev_fop_poll +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0xc8f9ed78 lirc_dev_fop_open +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0xf30a3865 lirc_dev_fop_ioctl +EXPORT_SYMBOL drivers/media/rc/rc-core 0xec7a336b ir_raw_handler_unregister +EXPORT_SYMBOL drivers/media/rc/rc-core 0xffc570ef ir_raw_handler_register +EXPORT_SYMBOL drivers/media/tuners/e4000 0x0072c92a e4000_attach +EXPORT_SYMBOL drivers/media/tuners/fc0011 0x4dd949c5 fc0011_attach +EXPORT_SYMBOL drivers/media/tuners/fc0012 0xf286aedf fc0012_attach +EXPORT_SYMBOL drivers/media/tuners/fc0013 0x776b0ed9 fc0013_rc_cal_add +EXPORT_SYMBOL drivers/media/tuners/fc0013 0xa7fc940e fc0013_attach +EXPORT_SYMBOL drivers/media/tuners/fc0013 0xcb16866e fc0013_rc_cal_reset +EXPORT_SYMBOL drivers/media/tuners/fc2580 0x218f6e8f fc2580_attach +EXPORT_SYMBOL drivers/media/tuners/max2165 0x9a53d5ea max2165_attach +EXPORT_SYMBOL drivers/media/tuners/mc44s803 0xcdcc2046 mc44s803_attach +EXPORT_SYMBOL drivers/media/tuners/mt2060 0x2ae1631c mt2060_attach +EXPORT_SYMBOL drivers/media/tuners/mt2131 0x01a20b58 mt2131_attach +EXPORT_SYMBOL drivers/media/tuners/mt2266 0x72e94cf2 mt2266_attach +EXPORT_SYMBOL drivers/media/tuners/mxl5005s 0xd6667a46 mxl5005s_attach +EXPORT_SYMBOL drivers/media/tuners/qt1010 0x9f066f64 qt1010_attach +EXPORT_SYMBOL drivers/media/tuners/tda18212 0x2a8ebf09 tda18212_attach +EXPORT_SYMBOL drivers/media/tuners/tda18218 0x0f8b99fd tda18218_attach +EXPORT_SYMBOL drivers/media/tuners/tua9001 0x01d07417 tua9001_attach +EXPORT_SYMBOL drivers/media/tuners/tuner-types 0x0cb4b189 tuners +EXPORT_SYMBOL drivers/media/tuners/tuner-types 0xc2821775 tuner_count +EXPORT_SYMBOL drivers/media/tuners/tuner-xc2028 0x98628b27 xc2028_attach +EXPORT_SYMBOL drivers/media/tuners/tuner_it913x 0x768be9f0 it913x_attach +EXPORT_SYMBOL drivers/media/tuners/xc4000 0x7c61db2c xc4000_attach +EXPORT_SYMBOL drivers/media/tuners/xc5000 0x8336a304 xc5000_attach +EXPORT_SYMBOL drivers/media/usb/cx231xx/cx231xx 0x2a1f8ebf cx231xx_unregister_extension +EXPORT_SYMBOL drivers/media/usb/cx231xx/cx231xx 0x57c94a97 cx231xx_register_extension +EXPORT_SYMBOL drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0x1684f1b1 dvb_usbv2_generic_write +EXPORT_SYMBOL drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0x4826187d dvb_usbv2_generic_write_locked +EXPORT_SYMBOL drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0x4ae2b5cb dvb_usbv2_probe +EXPORT_SYMBOL drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0x66402d2b dvb_usbv2_resume +EXPORT_SYMBOL drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0x74e8673a dvb_usbv2_generic_rw +EXPORT_SYMBOL drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0x984dea83 dvb_usbv2_suspend +EXPORT_SYMBOL drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0x9d9004f9 dvb_usbv2_reset_resume +EXPORT_SYMBOL drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0xcf73a6d9 dvb_usbv2_disconnect +EXPORT_SYMBOL drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0xe318a1f3 dvb_usbv2_generic_rw_locked +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb 0x21ac3fa1 dvb_usb_get_hexline +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb 0x2282c60a dvb_usb_device_exit +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb 0x5e759d4c dvb_usb_generic_rw +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb 0x6f2df05c dvb_usb_generic_write +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb 0xa4360f26 usb_cypress_load_firmware +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb 0xb5d04ff3 dvb_usb_device_init +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb 0xc732aeec dvb_usb_nec_rc_key_to_event +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-af9005-remote 0x13e247e0 rc_map_af9005_table +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-af9005-remote 0xd4e288db rc_map_af9005_table_size +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-af9005-remote 0xe282905d af9005_rc_decode +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x08c4c0d2 dibusb_dib3000mc_frontend_attach +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x11751f45 dibusb_streaming_ctrl +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x1b02120c dibusb_dib3000mc_tuner_attach +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x25156737 dibusb2_0_power_ctrl +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x31647b99 dibusb_pid_filter +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x54971c4a dibusb_power_ctrl +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x789c9bff dibusb2_0_streaming_ctrl +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0xb0183ad3 dibusb_rc_query +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0xb47559e0 rc_map_dibusb_table +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0xd19eabb3 dibusb_i2c_algo +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0xef896b59 dibusb_pid_filter_ctrl +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0xfcacc8f5 dibusb_read_eeprom_byte +EXPORT_SYMBOL drivers/media/usb/em28xx/em28xx 0x85d75af6 em28xx_register_extension +EXPORT_SYMBOL drivers/media/usb/em28xx/em28xx 0xc7765901 em28xx_unregister_extension +EXPORT_SYMBOL drivers/media/usb/gspca/gspca_main 0x3e9214cf gspca_dev_probe +EXPORT_SYMBOL drivers/media/usb/gspca/gspca_main 0x42361acb gspca_resume +EXPORT_SYMBOL drivers/media/usb/gspca/gspca_main 0x741df3a3 gspca_suspend +EXPORT_SYMBOL drivers/media/usb/gspca/gspca_main 0x79120ba7 gspca_frame_add +EXPORT_SYMBOL drivers/media/usb/gspca/gspca_main 0x9670af2c gspca_debug +EXPORT_SYMBOL drivers/media/usb/gspca/gspca_main 0x9d17a255 gspca_coarse_grained_expo_autogain +EXPORT_SYMBOL drivers/media/usb/gspca/gspca_main 0xf190d82d gspca_dev_probe2 +EXPORT_SYMBOL drivers/media/usb/gspca/gspca_main 0xf20175b0 gspca_expo_autogain +EXPORT_SYMBOL drivers/media/usb/gspca/gspca_main 0xfd02dae1 gspca_disconnect +EXPORT_SYMBOL drivers/media/usb/tm6000/tm6000 0xede815b8 tm6000_init_digital_mode +EXPORT_SYMBOL drivers/media/usb/tm6000/tm6000 0xfde714d0 tm6000_register_extension +EXPORT_SYMBOL drivers/media/usb/tm6000/tm6000 0xfe4e0be4 tm6000_unregister_extension +EXPORT_SYMBOL drivers/media/usb/ttusb-dec/ttusbdecfe 0x1750f07b ttusbdecfe_dvbs_attach +EXPORT_SYMBOL drivers/media/usb/ttusb-dec/ttusbdecfe 0x3c97f1b1 ttusbdecfe_dvbt_attach +EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-common 0x42c8e001 v4l2_ctrl_next +EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-common 0x4adaf0f3 v4l2_ctrl_query_menu_valid_items +EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-common 0x53c9394f v4l2_ctrl_query_menu +EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-common 0x5f96a661 v4l2_ctrl_check +EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-common 0xabe27502 v4l2_ctrl_query_fill +EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-mem2mem 0x15b671d0 v4l2_m2m_get_vq +EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-mem2mem 0x2214f47f v4l2_m2m_mmap +EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-mem2mem 0x459e133f v4l2_m2m_get_curr_priv +EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-mem2mem 0x60871360 v4l2_m2m_job_finish +EXPORT_SYMBOL drivers/media/v4l2-core/videobuf-dvb 0x1a34e5a2 videobuf_dvb_find_frontend +EXPORT_SYMBOL drivers/media/v4l2-core/videobuf-dvb 0x6950152d videobuf_dvb_register_bus +EXPORT_SYMBOL drivers/media/v4l2-core/videobuf-dvb 0xa1214be4 videobuf_dvb_dealloc_frontends +EXPORT_SYMBOL drivers/media/v4l2-core/videobuf-dvb 0xce6ced83 videobuf_dvb_alloc_frontend +EXPORT_SYMBOL drivers/media/v4l2-core/videobuf-dvb 0xefeb632e videobuf_dvb_get_frontend +EXPORT_SYMBOL drivers/media/v4l2-core/videobuf-dvb 0xff4d1155 videobuf_dvb_unregister_bus +EXPORT_SYMBOL drivers/media/v4l2-core/videobuf2-core 0x03fdc716 vb2_querybuf +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x035b8862 video_usercopy +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x036a925f v4l2_ctrl_g_ctrl +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x0614dd5a v4l2_video_std_frame_period +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x08c31379 v4l2_ctrl_new_std_menu +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x0dd2e2ee v4l2_ctrl_find +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x0f07792c video_device_alloc +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x0f5ecb7f v4l2_ctrl_subscribe_event +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x10253b55 video_device_release_empty +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x123959a1 v4l2_type_names +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x13e204a8 v4l2_subdev_g_ext_ctrls +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x16244fe5 v4l2_prio_check +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x1a5ec844 v4l2_async_notifier_unregister +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x1b01502e v4l2_ctrl_new_std +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x2342f1ae v4l2_prio_open +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x24b020c5 v4l2_s_ext_ctrls +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x28c8010c v4l2_ctrl_sub_ev_ops +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x2bb9a3c4 v4l2_ctrl_log_status +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x2f09bb6f video_device_release +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x32bdbaf3 v4l2_clk_get +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x36026779 v4l2_ctrl_radio_filter +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x398dd437 v4l2_async_unregister_subdev +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x3adbd595 v4l2_field_names +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x3bdd0f94 v4l2_prio_change +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x414fc853 __video_register_device +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x4322c115 v4l2_ctrl_subdev_log_status +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x43cec845 v4l2_ctrl_subdev_subscribe_event +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x461aedf5 v4l2_clk_put +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x492e85e6 v4l2_ctrl_add_handler +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x495426ee v4l2_ctrl_get_name +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x49b57bb0 v4l2_try_ext_ctrls +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x523b0c7d v4l2_queryctrl +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x53bd8c86 v4l2_subdev_try_ext_ctrls +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x544a305e v4l2_ctrl_auto_cluster +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x5605bfda video_unregister_device +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x59b5d7ca v4l2_ctrl_new_std_menu_items +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x633a3525 v4l2_ctrl_modify_range +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x689a955a v4l2_subdev_querymenu +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x68b097bf v4l2_g_ctrl +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x728bff1b v4l2_clk_unregister +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x7451905a v4l2_subdev_s_ctrl +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x764f9238 v4l2_clk_enable +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x796f0282 v4l2_ctrl_cluster +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x7a3cd015 v4l2_ctrl_get_menu +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x7ae8cdb2 v4l2_g_ext_ctrls +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x7b09459f v4l2_ctrl_handler_free +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x7b322319 v4l2_async_notifier_register +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x7ce64ed5 v4l2_ctrl_poll +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x7d048cab v4l2_ctrl_add_ctrl +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x7f372d29 video_devdata +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x8067823e video_ioctl2 +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x8106095a v4l2_prio_max +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x865bc33c v4l2_clk_register +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x8b27823c v4l2_subdev_g_ctrl +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x8fb22d17 v4l2_ctrl_handler_log_status +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x900a3b87 v4l2_ctrl_s_ctrl_int64 +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x91031dd6 v4l2_subdev_queryctrl +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x94c482d8 v4l2_querymenu +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x9651e479 v4l2_ctrl_new_int_menu +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x9855c778 v4l2_subdev_init +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x99f4fd92 v4l2_ctrl_handler_init_class +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xa1013a8a v4l2_ctrl_new_custom +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xa2737737 v4l2_ctrl_s_ctrl +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xb31b66bb v4l2_ctrl_grab +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xb524c84f v4l2_subdev_s_ext_ctrls +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xb77b0159 v4l2_prio_init +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xbac4a225 v4l2_ctrl_fill +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xbc5671dc v4l_printk_ioctl +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xbfbd0088 v4l2_ctrl_notify +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xc12cf8f8 v4l2_ctrl_replace +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xc6f98e4a v4l2_ctrl_g_ctrl_int64 +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xc6ff7978 v4l2_ctrl_handler_setup +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xcba423a5 v4l2_s_ctrl +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xcbcab6ed v4l2_clk_get_rate +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xcda04a5b v4l2_prio_close +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xd0b79152 v4l2_clk_set_rate +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xd398a103 v4l2_ctrl_activate +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xd7f158cd v4l2_async_register_subdev +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xd86bc58c v4l2_clk_disable +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xe2b92059 v4l2_video_std_construct +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xe6fce6f2 v4l2_ctrl_merge +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xf3251e7b v4l2_norm_to_name +EXPORT_SYMBOL drivers/memstick/core/memstick 0x20c76dc3 memstick_new_req +EXPORT_SYMBOL drivers/memstick/core/memstick 0x4afe2ffa memstick_resume_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0x4d57d27b memstick_remove_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0x514cc6e8 memstick_add_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0x5d820a02 memstick_init_req_sg +EXPORT_SYMBOL drivers/memstick/core/memstick 0x60ed6b47 memstick_suspend_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0xa5987a36 memstick_init_req +EXPORT_SYMBOL drivers/memstick/core/memstick 0xa5d754e9 memstick_register_driver +EXPORT_SYMBOL drivers/memstick/core/memstick 0xb925e4e1 memstick_next_req +EXPORT_SYMBOL drivers/memstick/core/memstick 0xc24048b6 memstick_free_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0xd153485d memstick_unregister_driver +EXPORT_SYMBOL drivers/memstick/core/memstick 0xe467d8c7 memstick_alloc_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0xeaa7cc91 memstick_detect_change +EXPORT_SYMBOL drivers/memstick/core/memstick 0xfd2df2b5 memstick_set_rw_addr +EXPORT_SYMBOL drivers/memstick/host/r592 0x52f1b23b memstick_debug_get_tpc_name +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x089e1bf6 mpt_HardResetHandler +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x1b716ec4 mpt_detach +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x4526289b mpt_event_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x4ad5b113 mpt_raid_phys_disk_pg0 +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x4e89ba57 mpt_reset_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x502108d0 mpt_fwfault_debug +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x52c93a46 mpt_get_msg_frame +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x53b25ba4 mpt_Soft_Hard_ResetHandler +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x54d52f0d mpt_clear_taskmgmt_in_progress_flag +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x5afb07f5 mpt_attach +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x5e7d0577 mpt_free_fw_memory +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x61928d3d mpt_suspend +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x6536099e mpt_verify_adapter +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x6843ef00 mpt_halt_firmware +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x69cbe26e mpt_free_msg_frame +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x70d49560 mpt_put_msg_frame_hi_pri +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x8b0a75bd mptbase_sas_persist_operation +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xa4b0a955 mpt_GetIocState +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xa99d0f7d mpt_alloc_fw_memory +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xa9b61b01 mpt_raid_phys_disk_pg1 +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xaea6b6c4 mpt_resume +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xb267e075 mpt_print_ioc_summary +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xb5e193f7 mpt_device_driver_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xb6f77048 mpt_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xb9695ad2 mpt_put_msg_frame +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xbe637f91 mpt_event_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xc0e69f82 mpt_device_driver_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xc47c22e8 mpt_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xcaf61e42 mpt_send_handshake_request +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xcfc4a8ea mpt_findImVolumes +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xd17822fb mpt_raid_phys_disk_get_num_paths +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xd18a7038 mpt_config +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xd9a92a75 mpt_reset_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xdd805159 ioc_list +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xf5a60bc0 mpt_set_taskmgmt_in_progress_flag +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x0c6835d9 mptscsih_is_phys_disk +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x0ee3eb5b mptscsih_slave_destroy +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x1d712fc8 mptscsih_resume +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x2c53cfea mptscsih_change_queue_depth +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x30afa71b mptscsih_ioc_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x30f04399 mptscsih_qcmd +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x32001eca mptscsih_info +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x45f025b5 mptscsih_dev_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x5d6898c3 mptscsih_host_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x5def9a81 mptscsih_remove +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x614b0c27 mptscsih_suspend +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x63aaffc0 mptscsih_io_done +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x69d9e981 mptscsih_host_attrs +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x7c5cfdf6 mptscsih_abort +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x8a779542 mptscsih_get_scsi_lookup +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x8ae254a3 mptscsih_bios_param +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x8b7ad167 mptscsih_show_info +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x96a66a29 mptscsih_taskmgmt_complete +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xac3b7f99 mptscsih_scandv_complete +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xba697b43 mptscsih_bus_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xc18a955c mptscsih_taskmgmt_response_code +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xc1c11db4 mptscsih_IssueTaskMgmt +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xcaace5b2 mptscsih_flush_running_cmds +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xe38a0009 mptscsih_event_process +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xe46196b2 mptscsih_raid_id_to_num +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xe614d0a2 mptscsih_slave_configure +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xfd013070 mptscsih_shutdown +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x01935d68 i2o_device_claim +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x1966adea i2o_driver_unregister +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x23ad5f3d i2o_iop_find_device +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x2a843bef i2o_dump_message +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x3960444f i2o_parm_issue +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x3fc8acaf i2o_find_iop +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x4db57298 i2o_driver_notify_controller_add_all +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x60c76d91 i2o_driver_notify_device_add_all +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x6401f1a3 i2o_driver_notify_controller_remove_all +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x765f1d10 i2o_parm_table_get +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x79f1f657 i2o_exec_lct_get +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x811df3a7 i2o_driver_notify_device_remove_all +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x8a4e12f2 i2o_parm_field_get +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x9a126bc4 i2o_driver_register +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x9dd21466 i2o_device_claim_release +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xaecfb924 i2o_event_register +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xb4c00dcf i2o_controllers +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xb5df68b1 i2o_msg_get_wait +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xbd44187c i2o_msg_post_wait_mem +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xf0d7e34b i2o_status_get +EXPORT_SYMBOL drivers/mfd/cros_ec 0x0a90eb8b cros_ec_suspend +EXPORT_SYMBOL drivers/mfd/cros_ec 0x277cbda5 cros_ec_prepare_tx +EXPORT_SYMBOL drivers/mfd/cros_ec 0xaa9c26d1 cros_ec_remove +EXPORT_SYMBOL drivers/mfd/cros_ec 0xd01d6bd9 cros_ec_register +EXPORT_SYMBOL drivers/mfd/cros_ec 0xe7a735e0 cros_ec_resume +EXPORT_SYMBOL drivers/mfd/htc-pasic3 0x153a857c pasic3_read_register +EXPORT_SYMBOL drivers/mfd/htc-pasic3 0x854c1dc8 pasic3_write_register +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x0830e98e mc13xxx_get_flags +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x24678bce mc13xxx_irq_request +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x369500c6 mc13xxx_irq_status +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x4ec31a39 mc13xxx_lock +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x55263c26 mc13xxx_irq_ack +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x55f98c15 mc13xxx_reg_write +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x62aaec07 mc13xxx_reg_rmw +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x6a82d0a3 mc13xxx_irq_free +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x86af0465 mc13xxx_irq_unmask +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x9d13b038 mc13xxx_reg_read +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0xa4258888 mc13xxx_irq_mask +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0xf03f6ae2 mc13xxx_irq_request_nounmask +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0xfad63713 mc13xxx_unlock +EXPORT_SYMBOL drivers/mfd/tps6105x 0x230b3750 tps6105x_mask_and_set +EXPORT_SYMBOL drivers/mfd/tps6105x 0x78f203bc tps6105x_set +EXPORT_SYMBOL drivers/mfd/tps6105x 0x9355ec81 tps6105x_get +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 0x29956d0f ad_dpot_remove +EXPORT_SYMBOL drivers/misc/ad525x_dpot 0xc6ccc2cf ad_dpot_probe +EXPORT_SYMBOL drivers/misc/altera-stapl/altera-stapl 0x8a05ed90 altera_init +EXPORT_SYMBOL drivers/misc/atmel-ssc 0x9ae5271b ssc_request +EXPORT_SYMBOL drivers/misc/atmel-ssc 0xe49e470a ssc_free +EXPORT_SYMBOL drivers/misc/atmel_pwm 0x0e9755b9 pwm_channel_free +EXPORT_SYMBOL drivers/misc/atmel_pwm 0x5a8b82f9 pwm_channel_handler +EXPORT_SYMBOL drivers/misc/atmel_pwm 0x5d5c2951 pwm_clk_free +EXPORT_SYMBOL drivers/misc/atmel_pwm 0x6a5e1f70 pwm_channel_alloc +EXPORT_SYMBOL drivers/misc/atmel_pwm 0x73330c97 pwm_clk_alloc +EXPORT_SYMBOL drivers/misc/atmel_pwm 0xeb7f2c6f __pwm_channel_onoff +EXPORT_SYMBOL drivers/misc/c2port/core 0xa0fbdc42 c2port_device_register +EXPORT_SYMBOL drivers/misc/c2port/core 0xbd50eab4 c2port_device_unregister +EXPORT_SYMBOL drivers/misc/ioc4 0x1e3cc326 ioc4_unregister_submodule +EXPORT_SYMBOL drivers/misc/ioc4 0x90cc5732 ioc4_register_submodule +EXPORT_SYMBOL drivers/misc/tifm_core 0x0ff36d9e tifm_unmap_sg +EXPORT_SYMBOL drivers/misc/tifm_core 0x11585c8d tifm_unregister_driver +EXPORT_SYMBOL drivers/misc/tifm_core 0x150b8080 tifm_add_adapter +EXPORT_SYMBOL drivers/misc/tifm_core 0x1c1174e7 tifm_alloc_device +EXPORT_SYMBOL drivers/misc/tifm_core 0x28977d42 tifm_free_adapter +EXPORT_SYMBOL drivers/misc/tifm_core 0x39f86aa1 tifm_queue_work +EXPORT_SYMBOL drivers/misc/tifm_core 0x475fc443 tifm_register_driver +EXPORT_SYMBOL drivers/misc/tifm_core 0x8ed8aa85 tifm_eject +EXPORT_SYMBOL drivers/misc/tifm_core 0xc2c7c812 tifm_alloc_adapter +EXPORT_SYMBOL drivers/misc/tifm_core 0xc46c9fab tifm_free_device +EXPORT_SYMBOL drivers/misc/tifm_core 0xdf91c334 tifm_remove_adapter +EXPORT_SYMBOL drivers/misc/tifm_core 0xe5712179 tifm_map_sg +EXPORT_SYMBOL drivers/misc/tifm_core 0xeb8ecb37 tifm_has_ms_pif +EXPORT_SYMBOL drivers/mmc/card/mmc_block 0x27b949f1 mmc_cleanup_queue +EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0x313f7ba1 cfi_fixup +EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0x466c7f0d cfi_read_pri +EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0x7df76b73 cfi_varsize_frob +EXPORT_SYMBOL drivers/mtd/chips/chipreg 0x5dcd1403 map_destroy +EXPORT_SYMBOL drivers/mtd/chips/chipreg 0x7c6152fb register_mtd_chip_driver +EXPORT_SYMBOL drivers/mtd/chips/chipreg 0x7cd6fee3 do_map_probe +EXPORT_SYMBOL drivers/mtd/chips/chipreg 0x83ce44cb unregister_mtd_chip_driver +EXPORT_SYMBOL drivers/mtd/chips/gen_probe 0x57c1f331 mtd_do_chip_probe +EXPORT_SYMBOL drivers/mtd/lpddr/lpddr_cmds 0x89b58fc5 lpddr_cmdset +EXPORT_SYMBOL drivers/mtd/maps/map_funcs 0xd7936f66 simple_map_init +EXPORT_SYMBOL drivers/mtd/mtd 0x3199bbb4 mtd_concat_destroy +EXPORT_SYMBOL drivers/mtd/mtd 0xc9050803 mtd_concat_create +EXPORT_SYMBOL drivers/mtd/nand/denali 0xa63bcaf8 denali_init +EXPORT_SYMBOL drivers/mtd/nand/denali 0xf0414446 denali_remove +EXPORT_SYMBOL drivers/mtd/nand/nand 0x1a452938 nand_scan_ident +EXPORT_SYMBOL drivers/mtd/nand/nand 0x26fa14e7 nand_scan +EXPORT_SYMBOL drivers/mtd/nand/nand 0x85d8851f nand_scan_tail +EXPORT_SYMBOL drivers/mtd/nand/nand 0xb34e6db0 nand_lock +EXPORT_SYMBOL drivers/mtd/nand/nand 0xca28791f nand_scan_bbt +EXPORT_SYMBOL drivers/mtd/nand/nand 0xcb5778c2 nand_default_bbt +EXPORT_SYMBOL drivers/mtd/nand/nand 0xdf3f652f nand_unlock +EXPORT_SYMBOL drivers/mtd/nand/nand_bch 0x0ad723a0 nand_bch_correct_data +EXPORT_SYMBOL drivers/mtd/nand/nand_bch 0x70097aa0 nand_bch_free +EXPORT_SYMBOL drivers/mtd/nand/nand_bch 0x9a5130d8 nand_bch_init +EXPORT_SYMBOL drivers/mtd/nand/nand_bch 0xbc104e6e nand_bch_calculate_ecc +EXPORT_SYMBOL drivers/mtd/nand/nand_ecc 0x3132ee65 __nand_calculate_ecc +EXPORT_SYMBOL drivers/mtd/nand/nand_ecc 0x60b2b8da nand_calculate_ecc +EXPORT_SYMBOL drivers/mtd/nand/nand_ecc 0xb4b94377 __nand_correct_data +EXPORT_SYMBOL drivers/mtd/nand/nand_ecc 0xe7e1a4a0 nand_correct_data +EXPORT_SYMBOL drivers/mtd/nand/nand_ids 0x224c011d nand_flash_ids +EXPORT_SYMBOL drivers/mtd/nand/nand_ids 0xa336feb7 nand_manuf_ids +EXPORT_SYMBOL drivers/mtd/onenand/onenand 0x26176412 onenand_default_bbt +EXPORT_SYMBOL drivers/mtd/onenand/onenand 0x2e65c781 flexonenand_region +EXPORT_SYMBOL drivers/mtd/onenand/onenand 0x60333843 onenand_addr +EXPORT_SYMBOL drivers/mtd/onenand/onenand 0xe0df5885 onenand_scan_bbt +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x18205db6 arcnet_open +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x26468444 arcnet_unregister_proto +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x4e1f19a1 arcnet_close +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x630acf7c arc_proto_map +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x6534792a arcnet_debug +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x6e9ae214 alloc_arcdev +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x8721b834 arc_proto_default +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x91cb8163 arc_bcast_proto +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xdd08bd6b arcnet_timeout +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xe19b7500 arcnet_send_packet +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xecb730b0 arcnet_interrupt +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xfbac85b6 arc_raw_proto +EXPORT_SYMBOL drivers/net/arcnet/com20020 0x3f5fa36e com20020_netdev_ops +EXPORT_SYMBOL drivers/net/arcnet/com20020 0x701557c5 com20020_found +EXPORT_SYMBOL drivers/net/arcnet/com20020 0x866ee05c com20020_check +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x119721ac ei_interrupt +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x36ca6ef1 ei_start_xmit +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x3ba33614 __alloc_ei_netdev +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x453b9d8b ei_open +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x62b65f0c ei_poll +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x71de0a9b NS8390_init +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0xa8cbb243 ei_set_multicast_list +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0xba5d7c11 ei_tx_timeout +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0xc2563f9e ei_get_stats +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0xc9bd2c75 ei_netdev_ops +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0xef6dbf4a ei_close +EXPORT_SYMBOL drivers/net/ethernet/8390/8390p 0x0c0fe4a8 eip_tx_timeout +EXPORT_SYMBOL drivers/net/ethernet/8390/8390p 0x1571a120 eip_netdev_ops +EXPORT_SYMBOL drivers/net/ethernet/8390/8390p 0x5eb9c1c1 eip_poll +EXPORT_SYMBOL drivers/net/ethernet/8390/8390p 0x639413dc eip_set_multicast_list +EXPORT_SYMBOL drivers/net/ethernet/8390/8390p 0x6a09bcfb eip_open +EXPORT_SYMBOL drivers/net/ethernet/8390/8390p 0x99c03fd7 eip_interrupt +EXPORT_SYMBOL drivers/net/ethernet/8390/8390p 0x9c222c11 NS8390p_init +EXPORT_SYMBOL drivers/net/ethernet/8390/8390p 0xad2b3d8c eip_start_xmit +EXPORT_SYMBOL drivers/net/ethernet/8390/8390p 0xbf47fc57 eip_close +EXPORT_SYMBOL drivers/net/ethernet/8390/8390p 0xd3f555cb eip_get_stats +EXPORT_SYMBOL drivers/net/ethernet/8390/8390p 0xd9ae8668 __alloc_eip_netdev +EXPORT_SYMBOL drivers/net/ethernet/broadcom/cnic 0x636af174 cnic_unregister_driver +EXPORT_SYMBOL drivers/net/ethernet/broadcom/cnic 0xcce32277 cnic_register_driver +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x0b436d5e t3_l2t_send_slow +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x1e321175 t3_l2t_send_event +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x2e53c212 cxgb3_queue_tid_release +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x345b127b t3_l2t_get +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x36d47ef4 cxgb3_remove_tid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x44d42218 cxgb3_free_stid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x5e3abfb2 t3_l2e_free +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x6af68015 cxgb3_alloc_stid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x701db68f cxgb3_free_atid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x7fc3d303 cxgb3_alloc_atid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x969c4c8a cxgb3_ofld_send +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xab43ced2 t3_register_cpl_handler +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xb41343e4 dev2t3cdev +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xc3292cc5 cxgb3_unregister_client +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xe10da7a4 cxgb3_register_client +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xfc3c93da cxgb3_insert_tid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x011a583a cxgb4_l2t_send +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x012240a2 cxgb4_register_uld +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x0a545b01 cxgb4_get_tcp_stats +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x23067528 cxgb4_port_chan +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x26792081 cxgb4_disable_db_coalescing +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x3fc554d7 cxgb4_alloc_atid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x4b937cb6 cxgb4_alloc_stid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x70dc19df cxgb4_l2t_release +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x738d83b4 cxgb4_pktgl_to_skb +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x7ff8e9d8 cxgb4_create_server_filter +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x80f50d06 cxgb4_ofld_send +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x84f1790d cxgb4_iscsi_init +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x90a152df cxgb4_dbfifo_count +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x919dcf33 cxgb4_remove_tid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x92e292c7 cxgb4_remove_server_filter +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x9582c163 cxgb4_sync_txq_pidx +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x9ff27476 cxgb4_enable_db_coalescing +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xa1259aca cxgb4_l2t_get +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xa1aab245 cxgb4_port_viid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xa482ad99 cxgb4_flush_eq_cache +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xabcc1507 cxgb4_port_idx +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xc8f85d3d cxgb4_create_server +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xcd848c58 cxgb4_alloc_sftid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xd00e5a36 cxgb4_unregister_uld +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xd4c4fd1f cxgb4_free_stid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xd69a0294 cxgb4_best_mtu +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xf27b01e9 cxgb4_free_atid +EXPORT_SYMBOL drivers/net/ethernet/emulex/benet/be2net 0x02c3341a be_roce_register_driver +EXPORT_SYMBOL drivers/net/ethernet/emulex/benet/be2net 0x23623b93 be_roce_unregister_driver +EXPORT_SYMBOL drivers/net/ethernet/emulex/benet/be2net 0xbab62e22 be_roce_mcc_cmd +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x188d76c7 mlx4_SET_MCAST_FLTR +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x1bdb4a5a mlx4_SET_PORT_general +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x2810cf0a mlx4_SET_PORT_PRIO2TC +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x3a858f61 mlx4_put_slave_node_guid +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x57b61c81 mlx4_SET_PORT_SCHEDULER +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x62db1873 mlx4_assign_eq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x6fe0693a set_and_calc_slave_port_state +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x770cc9f8 mlx4_set_stats_bitmap +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x8e99abac mlx4_get_slave_node_guid +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa07bfabe mlx4_gen_guid_change_eqe +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa2461a03 mlx4_release_eq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa6f8f66b mlx4_gen_slaves_port_mgt_ev +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xac6f1d85 mlx4_get_parav_qkey +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xb5629844 mlx4_get_slave_port_state +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc4dcec79 mlx4_SET_PORT_qpn_calc +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xda810858 mlx4_gen_port_state_change_eqe +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xdf55dd77 mlx4_get_slave_pkey_gid_tbl_len +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe1bd8f64 mlx4_test_interrupts +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xebd1a014 mlx4_sync_pkey_table +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf572226b mlx4_gen_pkey_eqe +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xfc332e53 mlx4_is_slave_active +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x0341077d mlx5_cmd_alloc_uar +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x066180fa mlx5_core_get_srq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x0dc8a2fa mlx5_cmd_init +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x21ce9c42 mlx5_dev_cleanup +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x23926442 mlx5_core_detach_mcg +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x24c55068 mlx5_cmd_comp_handler +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x333f7dc0 mlx5_core_query_srq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x4d90f006 mlx5_core_create_cq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x81c7c665 mlx5_cmd_free_uar +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x8321c03f mlx5_core_arm_srq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x841bff3c mlx5_dev_init +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x8af1bb8f mlx5_core_query_mkey +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xbc741a35 mlx5_cmd_exec +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xbca0afcd mlx5_core_destroy_srq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xc2a0828b mlx5_debugfs_root +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xc7175f85 mlx5_core_alloc_pd +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xd410f95a mlx5_core_destroy_mkey +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xd5984c16 mlx5_cmd_cleanup +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xdfcb161e mlx5_core_create_mkey +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xe11f5c12 mlx5_core_dump_fill_mkey +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xe744226c mlx5_core_dealloc_pd +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xe77b45a4 mlx5_core_destroy_cq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xf50aabbb mlx5_core_attach_mcg +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xf712fbac mlx5_core_query_cq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xf800b266 mlx5_core_create_srq +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x2d27a86b hdlcdrv_transmitter +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x55d45e86 hdlcdrv_register +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0xd73aaa98 hdlcdrv_receiver +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0xd80bae6b hdlcdrv_unregister +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0xe29ec142 hdlcdrv_arbitrate +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x0fcd5566 sirdev_set_dtr_rts +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x24f26b6f irda_register_dongle +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x5eb2ff72 sirdev_get_instance +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x66ab8162 sirdev_raw_read +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x74a0c2ce sirdev_put_instance +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x89214372 sirdev_set_dongle +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x9a2e294d sirdev_receive +EXPORT_SYMBOL drivers/net/irda/sir-dev 0xa878ad3f sirdev_write_complete +EXPORT_SYMBOL drivers/net/irda/sir-dev 0xe0711706 sirdev_raw_write +EXPORT_SYMBOL drivers/net/irda/sir-dev 0xeb6f61ab irda_unregister_dongle +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/mdio 0xddc98749 mdio45_ethtool_gset_npage +EXPORT_SYMBOL drivers/net/mii 0x0aad184f mii_link_ok +EXPORT_SYMBOL drivers/net/mii 0x0b02f02c mii_check_gmii_support +EXPORT_SYMBOL drivers/net/mii 0x40cf0396 generic_mii_ioctl +EXPORT_SYMBOL drivers/net/mii 0x5c939a9c mii_check_media +EXPORT_SYMBOL drivers/net/mii 0x70c4c360 mii_nway_restart +EXPORT_SYMBOL drivers/net/mii 0xb1ce15a0 mii_ethtool_gset +EXPORT_SYMBOL drivers/net/mii 0xc36695c2 mii_check_link +EXPORT_SYMBOL drivers/net/mii 0xe70a319a mii_ethtool_sset +EXPORT_SYMBOL drivers/net/ppp/pppox 0x4d6b430f register_pppox_proto +EXPORT_SYMBOL drivers/net/ppp/pppox 0xb2819483 pppox_ioctl +EXPORT_SYMBOL drivers/net/ppp/pppox 0xe0ff7a18 unregister_pppox_proto +EXPORT_SYMBOL drivers/net/ppp/pppox 0xf002a5bc pppox_unbind_sock +EXPORT_SYMBOL drivers/net/sungem_phy 0x97c22509 sungem_phy_probe +EXPORT_SYMBOL drivers/net/usb/usbnet 0x4ba11db9 usbnet_device_suggests_idle +EXPORT_SYMBOL drivers/net/usb/usbnet 0x55e6be73 usbnet_manage_power +EXPORT_SYMBOL drivers/net/usb/usbnet 0x9f2d0f14 usbnet_link_change +EXPORT_SYMBOL drivers/net/wan/hdlc 0x0965ae15 hdlc_start_xmit +EXPORT_SYMBOL drivers/net/wan/hdlc 0x0dcd996d unregister_hdlc_protocol +EXPORT_SYMBOL drivers/net/wan/hdlc 0x53b413dc register_hdlc_protocol +EXPORT_SYMBOL drivers/net/wan/hdlc 0x850bef64 hdlc_close +EXPORT_SYMBOL drivers/net/wan/hdlc 0x8a11bc2f hdlc_change_mtu +EXPORT_SYMBOL drivers/net/wan/hdlc 0x919fcbca unregister_hdlc_device +EXPORT_SYMBOL drivers/net/wan/hdlc 0xa25bbfe1 hdlc_open +EXPORT_SYMBOL drivers/net/wan/hdlc 0xb3d7833b detach_hdlc_protocol +EXPORT_SYMBOL drivers/net/wan/hdlc 0xd22fec4a attach_hdlc_protocol +EXPORT_SYMBOL drivers/net/wan/hdlc 0xeac6a64d alloc_hdlcdev +EXPORT_SYMBOL drivers/net/wan/hdlc 0xf2c78526 hdlc_ioctl +EXPORT_SYMBOL drivers/net/wan/z85230 0x063b7049 z8530_sync_close +EXPORT_SYMBOL drivers/net/wan/z85230 0x10c78988 z8530_dead_port +EXPORT_SYMBOL drivers/net/wan/z85230 0x2061fb3f z8530_sync_txdma_open +EXPORT_SYMBOL drivers/net/wan/z85230 0x2654a16b z8530_init +EXPORT_SYMBOL drivers/net/wan/z85230 0x2edcb617 z8530_describe +EXPORT_SYMBOL drivers/net/wan/z85230 0x324031aa z8530_sync_open +EXPORT_SYMBOL drivers/net/wan/z85230 0x45d4a777 z8530_sync_dma_open +EXPORT_SYMBOL drivers/net/wan/z85230 0x5cd24d29 z8530_hdlc_kilostream +EXPORT_SYMBOL drivers/net/wan/z85230 0x7b1fe4bd z8530_channel_load +EXPORT_SYMBOL drivers/net/wan/z85230 0x864c3648 z8530_sync_txdma_close +EXPORT_SYMBOL drivers/net/wan/z85230 0x91a0b8af z8530_null_rx +EXPORT_SYMBOL drivers/net/wan/z85230 0x95e67e81 z8530_sync +EXPORT_SYMBOL drivers/net/wan/z85230 0xa699ce3d z8530_queue_xmit +EXPORT_SYMBOL drivers/net/wan/z85230 0xd4ffebf0 z8530_interrupt +EXPORT_SYMBOL drivers/net/wan/z85230 0xd7120cbb z8530_nop +EXPORT_SYMBOL drivers/net/wan/z85230 0xe3d80064 z8530_hdlc_kilostream_85230 +EXPORT_SYMBOL drivers/net/wan/z85230 0xefe446e5 z8530_shutdown +EXPORT_SYMBOL drivers/net/wan/z85230 0xfe2e4ab6 z8530_sync_dma_close +EXPORT_SYMBOL drivers/net/wimax/i2400m/i2400m 0x7011769d i2400m_unknown_barker +EXPORT_SYMBOL drivers/net/wireless/airo 0x11e39b8d reset_airo_card +EXPORT_SYMBOL drivers/net/wireless/airo 0x580eeba4 init_airo_card +EXPORT_SYMBOL drivers/net/wireless/airo 0xf74beef7 stop_airo_card +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x319c6026 ath_is_49ghz_allowed +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x33dc83ea ath_key_config +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x4e2481d5 ath_is_world_regd +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x50d96603 ath_hw_setbssidmask +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x52858c7d ath_printk +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x53358ce3 ath_regd_get_band_ctl +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x84157689 ath_key_delete +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xa20867b1 ath_regd_init +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xbb43242c ath_reg_notifier_apply +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xc41c10d7 ath_hw_keyreset +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xfe79655d ath_hw_get_listen_time +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xffc10084 ath_rxbuf_alloc +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xffc57c4f ath_hw_cycle_counters_update +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x0d896e0b ath10k_core_unregister +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x27b92ec5 ath10k_core_register +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x355baef0 ath10k_core_target_resume +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x369752ed ath10k_core_target_suspend +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x8246be6c ath10k_err +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x895f9dc2 ath10k_info +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0xaf096710 ath10k_warn +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0xb2b08033 ath10k_core_create +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0xd055fc0b ath10k_core_destroy +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x0199ec46 ath6kl_info +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x1975cd9e ath6kl_core_init +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x27cf1694 ath6kl_warn +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x2ac39497 ath6kl_stop_txrx +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x444bed67 ath6kl_cfg80211_suspend +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x472c1c15 ath6kl_core_destroy +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x4c6ddcb4 ath6kl_err +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x4e1380ee ath6kl_printk +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x5041ed24 ath6kl_hif_intr_bh_handler +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x726d0639 ath6kl_cfg80211_resume +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x8acc1b4f ath6kl_core_create +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x91cfb84a ath6kl_hif_rw_comp_handler +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0xa105c957 ath6kl_core_rx_complete +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0xccb77876 ath6kl_core_tx_complete +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0xe4bbaef2 ath6kl_core_cleanup +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k 0x5c6c6328 ath9k_hw_wow_wakeup +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k 0x91fc76f5 ath9k_hw_wow_event_to_string +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k 0xe129fd37 ath9k_hw_wow_apply_pattern +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k 0xe6db8fa3 ath9k_hw_wow_enable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x00fd8671 ath9k_cmn_get_hw_crypto_keytype +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x0a9e502e ath9k_cmn_init_crypto +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x130e7ec3 ath9k_cmn_update_txpow +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x1d896766 ath9k_cmn_update_ichannel +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x7e996a41 ath9k_cmn_get_curchannel +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xd2981357 ath9k_cmn_count_streams +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x04325837 ar9003_paprd_init_table +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x05e5769d ath9k_hw_set_rx_bufsize +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x0a6205fb ath_gen_timer_isr +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x0d68dbe8 ath9k_hw_set_interrupts +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x0eb878ce ath9k_hw_rxprocdesc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x164db0f2 ath9k_hw_phy_disable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x178195ef ath9k_hw_beaconinit +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x19c7e6a0 ar9003_paprd_create_curve +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x1c081a3e ath9k_hw_deinit +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x1df72274 ath9k_hw_computetxtime +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x21caac11 ath9k_hw_btcoex_bt_stomp +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x26ea5933 ath9k_hw_set_tsfadjust +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2e32132e ath9k_hw_gen_timer_start +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x3025409c ath9k_hw_wait +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x324f76d5 ath9k_hw_enable_interrupts +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x3305baf1 ath9k_hw_check_alive +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x333598ce ar9003_paprd_enable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x34fa8416 ath9k_hw_cfg_output +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x37748549 ath9k_hw_gettxbuf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x37ea1dd0 ath9k_hw_resettxqueue +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x3ac2deb2 ar9003_mci_get_interrupt +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x3da089eb ath9k_hw_btcoex_disable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x3e0f100c ath9k_hw_reset_calvalid +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x40b26e82 ath9k_hw_set_sta_beacon_timers +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x43ada60c ath9k_hw_init_btcoex_hw +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x43de228f ath9k_hw_set_txq_props +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x4444cdd3 ar9003_paprd_setup_gain_table +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x45d25a6d ath9k_hw_beaconq_setup +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x48b5b0ed ath9k_hw_setantenna +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x4b11d55f ath9k_hw_abortpcurecv +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x4b2ef316 ath9k_hw_disable_interrupts +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x4bbb22dd ath9k_hw_disable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x4d612a41 ar9003_mci_get_next_gpm_offset +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x51dae8b7 ath9k_hw_startpcureceive +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x54c7fd41 ath9k_hw_disable_mib_counters +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x558d95e6 ath9k_hw_setrxfilter +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x570d95a6 ar9003_is_paprd_enabled +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x58aadd4a ar9003_mci_set_bt_version +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x5b83dd67 ath9k_hw_bstuck_nfcal +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x68053a64 ath9k_hw_get_txq_props +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x6ba5a05c ar9003_mci_setup +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x6dacbf6d ath9k_hw_btcoex_enable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x6e025665 ath9k_hw_gen_timer_stop +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x6e5ef16e ath9k_hw_updatetxtriglevel +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x6ed635a9 ath9k_hw_write_associd +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x6f70c6ae ar9003_paprd_populate_single_table +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x71ff1582 ath9k_hw_set_txpowerlimit +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x773b1009 ar9003_mci_send_message +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7861767f ath9k_hw_numtxpending +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x78d8a607 ath9k_hw_txstart +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7a92730c ath9k_hw_init +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7c8812d3 ar9003_mci_state +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7e0cad30 ath9k_hw_getrxfilter +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7e4148b4 ar9003_hw_disable_phy_restart +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x805cfcc1 ath9k_hw_getchan_noise +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x80c8d8b2 ar9003_get_pll_sqsum_dvc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x8811c635 ath_gen_timer_alloc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x8d18a118 ath9k_hw_stop_dma_queue +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x8e9cd87c ath9k_hw_ani_monitor +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x91216f84 ar9003_mci_send_wlan_channels +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x927d69c3 ath9k_hw_process_rxdesc_edma +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x94d3688c ath9k_hw_btcoex_init_3wire +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x9967e970 ath9k_hw_init_global_settings +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x9c0e0f7f ath9k_hw_gettsf32 +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa101c303 ath9k_hw_settsf64 +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xab4607cc ar9003_paprd_is_done +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xabecc999 ath9k_hw_setuptxqueue +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xac0f0ac3 ath9k_hw_releasetxqueue +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xaf21abe4 ath9k_hw_set_gpio +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb1e89cfa ath9k_hw_setup_statusring +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb69ea849 ath9k_hw_setopmode +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb7cabdbb ath9k_hw_reset_tsf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb9569259 ath9k_hw_btcoex_init_scheme +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xba667a08 ath9k_hw_setpower +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xbab7df29 ar9003_hw_bb_watchdog_dbg_info +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xbca90499 ath9k_hw_btcoex_set_weight +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc1f88f13 ath9k_hw_stopdmarecv +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc4cf4637 ath9k_hw_kill_interrupts +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc5d0e154 ath9k_hw_setmcastfilter +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc5d6285f ath9k_hw_gpio_get +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc8ab83ac ath9k_hw_btcoex_init_2wire +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xcefa216d ath9k_hw_putrxbuf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd496598c ath9k_hw_puttxbuf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd49826eb ath9k_hw_gettsf64 +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd52ff0dd ath9k_hw_addrxbuf_edma +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd74ea412 ath9k_hw_abort_tx_dma +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xdd1a44d9 ath9k_hw_setuprxdesc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xddd37cff ath9k_hw_cfg_gpio_input +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe2fe6f6e ath9k_hw_name +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe46ab776 ath9k_hw_btcoex_set_concur_txprio +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe8ee7c28 ath9k_hw_btcoex_init_mci +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xed14edf3 ar9003_mci_cleanup +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf2bfbf85 ath9k_hw_reset +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf3d31e44 ath9k_hw_setrxabort +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf569c26f ath_gen_timer_free +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf76c7b27 ath9k_hw_intrpend +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xfa952b20 ath9k_hw_getnf +EXPORT_SYMBOL drivers/net/wireless/atmel 0x31602d11 stop_atmel_card +EXPORT_SYMBOL drivers/net/wireless/atmel 0x689a5641 init_atmel_card +EXPORT_SYMBOL drivers/net/wireless/atmel 0xa2cd8472 atmel_open +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmfmac/brcmfmac 0x99b9c91d brcmf_sdio_probe +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmfmac/brcmfmac 0xdf904ef3 brcmf_sdio_remove +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x059bfb5b brcmu_pktq_pflush +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x06c4430b brcmu_pktq_mlen +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x1b17c675 brcmu_pktq_penq +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x1d3189f1 brcmu_pktq_pdeq +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x2d3af108 brcmu_pkt_buf_get_skb +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x2dc227f8 brcmu_d11_attach +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x4616e41b brcmu_pktq_flush +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x5bdd24c3 brcmu_pkt_buf_free_skb +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x83b2984a brcmu_pktq_mdeq +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x8f8c8b1f brcmu_pktq_pdeq_match +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0xc29e2700 brcmu_pktq_peek_tail +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0xc77efbc8 brcmu_pktq_init +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0xc91f9421 brcmu_pktq_pdeq_tail +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0xef9636ce brcmu_pktq_penq_head +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x09a9e99e hostap_init_proc +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x0ad69602 hostap_set_multicast_list_queue +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x15d671d9 hostap_set_string +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x1602def3 hostap_add_interface +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x16351588 prism2_update_comms_qual +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x23425326 hostap_remove_proc +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x4a4fcec9 hostap_set_word +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x4d63c643 hostap_info_init +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x69e81afb hostap_remove_interface +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x6de35e18 hostap_setup_dev +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x7e87ccd3 hostap_set_encryption +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x8ac17ab3 hostap_set_hostapd_sta +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x8d07b99c hostap_set_roaming +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x906ac29e hostap_80211_rx +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x91a28c75 hostap_set_hostapd +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xa12ad27f hostap_dump_tx_header +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xa5444159 hostap_set_antsel +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xab07b00a hostap_handle_sta_tx_exc +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xae9e9a27 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 0xbd8827a6 hostap_info_process +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xc8c54bdf hostap_set_auth_algs +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xcae72d6a hostap_80211_ops +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xe6434fd4 hostap_get_porttype +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xe9078fbf hostap_free_data +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xec911209 hostap_master_start_xmit +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xf63df527 hostap_check_sta_fw_version +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xf6defdf8 hostap_init_ap_proc +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x0310b1b6 libipw_txb_free +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x1e0081fe alloc_libipw +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x2f13ba93 libipw_change_mtu +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x31772451 libipw_channel_to_freq +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x374f591b libipw_networks_age +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x44e15eda libipw_wx_get_encode +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x46473c89 libipw_get_channel +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x47db10ed libipw_is_valid_channel +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x5758ea84 libipw_wx_set_encodeext +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x5c65aca3 libipw_rx +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x65f95318 libipw_freq_to_channel +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x86edcb93 libipw_xmit +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xa11e7bed libipw_wx_set_encode +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xb38d261e libipw_wx_get_encodeext +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xd635e799 libipw_rx_mgt +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xd773be37 libipw_channel_to_index +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xd8f8da48 libipw_set_geo +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xd9759de2 libipw_get_geo +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xddd8a358 libipw_wx_get_scan +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xf10380fc libipw_get_channel_flags +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xf118a916 free_libipw +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x0000b4e2 il_mac_bss_info_changed +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x03741abc il_hdl_error +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x03c0bfae il_free_txq_mem +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x05c617c8 il_mac_sta_remove +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x071b9bb0 il_mac_config +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x08e3dbde il_dbgfs_register +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x09c268f5 il_connection_init_rx_config +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x0a0baf4e il_mac_hw_scan +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x0d8205e9 il_tx_cmd_protection +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x0dbc8649 il_rd_prph +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x0dc80aba il_mac_reset_tsf +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x0e807f31 il_get_lowest_plcp +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x0efa868a il_set_decrypted_flag +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x0f1fd96f il_tx_queue_init +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x0fe6d696 il_cancel_scan_deferred_work +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x12c7465b il_clear_bit +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x12fcd048 il_poll_bit +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x142ea5c0 il_irq_handle_error +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x14994db4 il_free_geos +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x152068da il_mac_remove_interface +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x19d903ef il_force_reset +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x1cdfde23 il_clear_ucode_stations +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x1df56409 il_get_single_channel_number +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x220ec282 il_setup_scan_deferred_work +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x22f2fb7d il_send_lq_cmd +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x27e95345 il_get_free_ucode_key_idx +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x327e4b20 il_chswitch_done +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x39fd0974 il_eeprom_query16 +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x3b8fde9e il_eeprom_query_addr +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x3dcd7aa8 il_txq_update_write_ptr +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x417668d2 il_get_active_dwell_time +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x45e0b9b9 il_full_rxon_required +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x4694b572 il_send_add_sta +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x4aa39103 il_get_cmd_string +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x4e46da35 il_apm_stop +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x4e9047c5 il_cmd_queue_free +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x53a0b486 il_send_cmd_pdu +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x5443f74e il_send_cmd +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x55f48c69 il_init_geos +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x564c6740 il_debug_level +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x5e423753 il_power_update_mode +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x5f153bcd il_leds_init +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x633e1f49 il_send_rxon_timing +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x664cad83 il_set_rate +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x673554aa il_cmd_queue_unmap +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x687f8465 il_rx_queue_alloc +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x68f64554 il_check_rxon_cmd +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x6a81f3a3 il_get_passive_dwell_time +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x6bfe0cc0 il_scan_cancel_timeout +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x6e46ba79 il_leds_exit +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x75e4d2f1 il_mac_conf_tx +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x7e0a7b83 il_rx_queue_space +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x7e215a55 il_scan_cancel +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x7f453636 il_is_ht40_tx_allowed +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x7f7e9b51 il_hdl_pm_sleep +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x87f30375 _il_poll_bit +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x8b0e7f21 il_hdl_pm_debug_stats +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x8bb1aa0e il_usecs_to_beacons +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x8bee45b2 il_set_rxon_hwcrypto +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x91ba0ba0 il_tx_queue_unmap +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x92bd0185 il_rx_queue_update_write_ptr +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x9e75588b il_send_cmd_sync +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xa3b4c718 il_restore_stations +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xa3d83d9f il_pm_ops +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xa5aefe7a il_send_stats_request +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xa6032a2a il_init_channel_map +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xaa3db65f il_mac_flush +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xab903bf3 il_send_bt_config +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xaba6df96 il_read_targ_mem +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xae0034d4 il_set_tx_power +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xaf095abf il_hdl_spectrum_measurement +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xb383d9d9 il_power_initialize +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xb47fbd18 il_eeprom_free +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xb5e8cfed _il_apm_stop +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xb7bd33ff il_isr +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xbc773b0a il_set_flags_for_band +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xbf3d08f5 il_set_rxon_channel +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xc39cf12c il_bg_watchdog +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xc3a257d6 il_hdl_csa +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xc5956049 il_set_bit +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xc5b40818 il_setup_rx_scan_handlers +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xc6e03c5a il_mac_add_interface +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xc7b70f24 il_tx_queue_free +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xcad26e75 il_set_rxon_ht +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xce9ce584 il_wr_prph +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xd0f206a3 il_alloc_txq_mem +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xd63b3325 il_setup_watchdog +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xddde148c il_get_channel_info +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xe3f68b41 il_update_stats +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xe435493a il_queue_space +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xe71bb0d2 il_add_station_common +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xe8e6e05c il_eeprom_init +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xeac3339b il_tx_queue_reset +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xec4e1fa9 il_write_targ_mem +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xede90145 il_tx_cmd_complete +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xf0b1b3e6 il_send_cmd_pdu_async +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xf2208ce0 il_dbgfs_unregister +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xf4a9091a il_free_channel_map +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xf501278b il_bcast_addr +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xf6c3a174 il_add_beacon_time +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xf707a5cb il_mac_change_interface +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xf9bb9023 il_init_scan_params +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xf9e0e5fb il_apm_init +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xfcd839cb il_fill_probe_req +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0x08ee1e7d __tracepoint_iwlwifi_dev_ucode_event +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0x0d9eb5ff __tracepoint_iwlwifi_dev_ucode_wrap_event +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0x0e7bc05f __tracepoint_iwlwifi_warn +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0x201337b4 __tracepoint_iwlwifi_dev_tx +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0x249e4b06 __tracepoint_iwlwifi_dev_rx +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0x36dcef55 __tracepoint_iwlwifi_dev_iowrite32 +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0x4919d1a5 __tracepoint_iwlwifi_dbg +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0x67381a2a __tracepoint_iwlwifi_dev_ucode_error +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0x79e9bf26 __tracepoint_iwlwifi_crit +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0x7edec07d __tracepoint_iwlwifi_dev_ioread32 +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0x8bfcc307 __tracepoint_iwlwifi_info +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0x9a12c9c5 __tracepoint_iwlwifi_dev_ucode_cont_event +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0xc0827b2f __tracepoint_iwlwifi_dev_iowrite8 +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0xda36f3a4 __tracepoint_iwlwifi_err +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x0fadf68f orinoco_init +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x283e7090 orinoco_stop +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x28911cfe orinoco_up +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x2a82cfa6 orinoco_change_mtu +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x5de21a22 orinoco_process_xmit_skb +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x692de286 orinoco_if_del +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x69900fef orinoco_tx_timeout +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x7997034c alloc_orinocodev +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x7c17b66d orinoco_set_multicast_list +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x8644752a orinoco_if_add +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x94b038da __orinoco_ev_rx +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x9d0b87b4 hermes_struct_init +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xa9f25f11 __orinoco_ev_info +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xabc0c291 free_orinocodev +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xbc0d033e orinoco_down +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xc8b8cfc6 orinoco_get_stats +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xf543da07 orinoco_open +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xffe27bca orinoco_interrupt +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x024857ea _rtl92c_phy_dbm_to_txpwr_Idx +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x049983f0 _rtl92c_phy_set_rf_sleep +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x08823402 rtl92c_dm_init +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x20599307 rtl92c_phy_set_txpower_level +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x20b1d6b6 rtl92c_download_fw +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x21f02e7f rtl92c_phy_ap_calibrate +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x276209f9 rtl92c_phy_rf_config +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x2b289ba9 _rtl92c_phy_rf_serial_write +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x301de0d9 _rtl92c_phy_fw_rf_serial_read +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x360c9f67 rtl92c_phy_set_io +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x3a9b5c5e _rtl92c_phy_rf_serial_read +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x46423585 rtl92c_phy_sw_chnl_callback +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x4b9aa2e3 _rtl92c_phy_txpwr_idx_to_dbm +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x533d045f rtl92c_phy_scan_operation_backup +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x5457dae3 rtl92c_phy_sw_chnl +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x5d27bf5a rtl92c_phy_set_rfpath_switch +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x61365a8e rtl92c_dm_init_rate_adaptive_mask +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x6755effd _rtl92c_phy_init_bb_rf_register_definition +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x695ddec9 rtl92c_set_fw_rsvdpagepkt +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x6a13c62a rtl92c_phy_set_bw_mode +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x71cc8263 rtl92c_phy_update_txpower_dbm +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x74dbf461 _rtl92c_store_pwrIndex_diffrate_offset +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x8c1662a6 rtl92c_phy_query_bb_reg +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x92a0c1d9 rtl8192_phy_check_is_legal_rfpath +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x9a87ef2c rtl92c_fill_h2c_cmd +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xa154f82a rtl92ce_phy_set_rf_on +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xafecd314 rtl92c_dm_init_edca_turbo +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xb132dd71 rtl92c_set_fw_joinbss_report_cmd +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xb319df70 rtl92c_phy_set_io_cmd +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xb3314d48 _rtl92c_phy_calculate_bit_shift +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xb74c1bcd _rtl92c_phy_bb8192c_config_parafile +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xba49958a rtl92c_set_fw_pwrmode_cmd +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xbe5b3f6f rtl92c_phy_set_bb_reg +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xc0eb6299 rtl92c_firmware_selfreset +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xcece8787 rtl92c_dm_write_dig +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xde91f6cf rtl92c_dm_watchdog +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xdf3ea023 rtl92c_dm_check_txpower_tracking +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xe2476b8d rtl92c_phy_lc_calibrate +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xe4ee7e2f rtl92c_bt_rssi_state_change +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xe53a9d3c rtl92c_phy_iq_calibrate +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xfa16f64a _rtl92c_phy_fw_rf_serial_write +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xfbccd718 rtl92c_dm_bt_coexist +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xfed32803 rtl92c_dm_rf_saving +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl_pci 0x4c6b50d6 rtl_pci_disconnect +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl_pci 0x78178737 rtl_pci_suspend +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl_pci 0xa668d9c9 rtl_pci_resume +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl_pci 0xb01cb966 rtl_pci_probe +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl_usb 0x367655f8 rtl_usb_suspend +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl_usb 0x6b658082 rtl_usb_disconnect +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl_usb 0xae65ea71 rtl_usb_probe +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl_usb 0xbc47f041 rtl_usb_resume +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x005ade88 rtl_init_rfkill +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x0370e365 rtl_efuse_shadow_map_update +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x05ea3ac5 rtl_process_phyinfo +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x1013d9ae rtl_cam_add_one_entry +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x1c63f59d rtl_get_tcb_desc +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x1ccd7008 rtl_cam_del_entry +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x207fbb70 rtl_evm_db_to_percentage +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x26e31aff rtl_send_smps_action +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x38fc2ee2 rtl_cam_reset_all_entry +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x578d257a rtl_cam_empty_entry +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x79188a02 rtl_query_rxpwrpercentage +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x7b77fccc rtl_ps_enable_nic +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x89a98169 rtl_cam_get_free_entry +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x9a649bdc rtl_cam_mark_invalid +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xa58351b7 rtl_ps_set_rf_state +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xbed17c83 rtlwifi_rate_mapping +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xc89a8ffb rtl_ps_disable_nic +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xcf417bab rtl_signal_scale_mapping +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xee44e059 rtl_fw_cb +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xf03d7328 rtl_cam_delete_one_entry +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xf1ecaf36 efuse_read_1byte +EXPORT_SYMBOL drivers/net/wireless/ti/wlcore/wlcore 0x2c8bc8a2 wl12xx_is_dummy_packet +EXPORT_SYMBOL drivers/net/wireless/ti/wlcore/wlcore 0xd5793b73 wlcore_tx_complete +EXPORT_SYMBOL drivers/net/wireless/ti/wlcore/wlcore 0xf7e25a32 wlcore_calc_packet_alignment +EXPORT_SYMBOL drivers/net/wireless/ti/wlcore/wlcore 0xf8f8a08a wl1271_free_tx_id +EXPORT_SYMBOL drivers/nfc/microread/microread 0x6d8b33dc microread_probe +EXPORT_SYMBOL drivers/nfc/microread/microread 0x72be59cd microread_remove +EXPORT_SYMBOL drivers/nfc/pn544/pn544 0x367c6d51 pn544_hci_probe +EXPORT_SYMBOL drivers/nfc/pn544/pn544 0xca52f387 pn544_hci_remove +EXPORT_SYMBOL drivers/parport/parport 0x00d8cefd parport_put_port +EXPORT_SYMBOL drivers/parport/parport 0x2165761b parport_register_port +EXPORT_SYMBOL drivers/parport/parport 0x389087ac parport_ieee1284_read_nibble +EXPORT_SYMBOL drivers/parport/parport 0x49e1b81f parport_find_number +EXPORT_SYMBOL drivers/parport/parport 0x4d2a941b parport_ieee1284_interrupt +EXPORT_SYMBOL drivers/parport/parport 0x51d4b877 parport_ieee1284_ecp_write_addr +EXPORT_SYMBOL drivers/parport/parport 0x594fbe4c parport_claim +EXPORT_SYMBOL drivers/parport/parport 0x5e3a3912 parport_irq_handler +EXPORT_SYMBOL drivers/parport/parport 0x6928bc96 parport_release +EXPORT_SYMBOL drivers/parport/parport 0x6a903a0c parport_register_device +EXPORT_SYMBOL drivers/parport/parport 0x6be195b3 parport_ieee1284_ecp_write_data +EXPORT_SYMBOL drivers/parport/parport 0x6f76ad2e parport_negotiate +EXPORT_SYMBOL drivers/parport/parport 0x6f94fcb0 parport_claim_or_block +EXPORT_SYMBOL drivers/parport/parport 0x75070037 parport_ieee1284_write_compat +EXPORT_SYMBOL drivers/parport/parport 0x7e54b32f parport_find_base +EXPORT_SYMBOL drivers/parport/parport 0x7efbca62 parport_unregister_driver +EXPORT_SYMBOL drivers/parport/parport 0x81a9bfdf parport_ieee1284_epp_read_data +EXPORT_SYMBOL drivers/parport/parport 0x85c2c1ab parport_set_timeout +EXPORT_SYMBOL drivers/parport/parport 0x9352589d parport_register_driver +EXPORT_SYMBOL drivers/parport/parport 0x98610d77 parport_unregister_device +EXPORT_SYMBOL drivers/parport/parport 0x9a339c8b parport_remove_port +EXPORT_SYMBOL drivers/parport/parport 0x9a3f369c parport_ieee1284_epp_write_addr +EXPORT_SYMBOL drivers/parport/parport 0xa00a1b58 parport_ieee1284_epp_write_data +EXPORT_SYMBOL drivers/parport/parport 0xcfecbb20 parport_wait_event +EXPORT_SYMBOL drivers/parport/parport 0xd55b83f9 parport_wait_peripheral +EXPORT_SYMBOL drivers/parport/parport 0xd6995738 parport_ieee1284_ecp_read_data +EXPORT_SYMBOL drivers/parport/parport 0xdcd6fbae parport_ieee1284_epp_read_addr +EXPORT_SYMBOL drivers/parport/parport 0xeb8ca61c parport_ieee1284_read_byte +EXPORT_SYMBOL drivers/parport/parport 0xef8fc515 parport_write +EXPORT_SYMBOL drivers/parport/parport 0xf55d8367 parport_read +EXPORT_SYMBOL drivers/parport/parport 0xf9361cca parport_get_port +EXPORT_SYMBOL drivers/parport/parport 0xfda71da3 parport_announce_port +EXPORT_SYMBOL drivers/parport/parport_pc 0x52603618 parport_pc_probe_port +EXPORT_SYMBOL drivers/parport/parport_pc 0x8e7b3234 parport_pc_unregister_port +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x115c5215 pcmcia_unregister_driver +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x1751e9dc pcmcia_enable_device +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x30a45221 pcmcia_fixup_iowidth +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x406246b4 pcmcia_register_driver +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x5d45cbca pcmcia_release_window +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x5d4fddd5 pcmcia_get_tuple +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x65a9e435 pcmcia_map_mem_page +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x6862de43 pcmcia_loop_tuple +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x742f5665 pcmcia_parse_tuple +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x7db9a5bf pcmcia_read_config_byte +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x86a91a36 pcmcia_get_mac_from_cis +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x8e2e6e64 pcmcia_loop_config +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x9d1ba5bd pcmcia_request_window +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xa904ee00 pcmcia_dev_present +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xb4fbcae9 pcmcia_fixup_vpp +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xdcf93343 pcmcia_disable_device +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xe8278315 pcmcia_request_io +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xed5d250a __pcmcia_request_exclusive_irq +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xf32a5f57 pcmcia_write_config_byte +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xf8f64ff5 pcmcia_request_irq +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x212db8d2 pcmcia_socket_list +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x2847f536 pcmcia_get_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x6d1307a1 pcmcia_reset_card +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x8e247f3f pcmcia_unregister_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x98e724c8 pcmcia_get_socket_by_nr +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x9d32ab36 pccard_register_pcmcia +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xa226c708 pcmcia_parse_uevents +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xaa2a8638 pcmcia_socket_list_rwsem +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xb777d19a pcmcia_socket_class +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xca1a5028 pcmcia_register_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xcf97f3bd dead_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xee86c3ba pcmcia_parse_events +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xf88f970b pcmcia_put_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_rsrc 0xb92cdf87 pccard_nonstatic_ops +EXPORT_SYMBOL drivers/pcmcia/pcmcia_rsrc 0xdc6a43a5 pccard_static_ops +EXPORT_SYMBOL drivers/platform/x86/sony-laptop 0x5bb1e117 sony_pic_camera_command +EXPORT_SYMBOL drivers/pps/pps_core 0x04b09563 pps_register_source +EXPORT_SYMBOL drivers/pps/pps_core 0x6be75c3b pps_unregister_source +EXPORT_SYMBOL drivers/pps/pps_core 0x8db02f3b pps_lookup_dev +EXPORT_SYMBOL drivers/pps/pps_core 0xc09cf5bd pps_event +EXPORT_SYMBOL drivers/ptp/ptp 0x112d2dbe ptp_clock_event +EXPORT_SYMBOL drivers/ptp/ptp 0x26750f1e ptp_clock_index +EXPORT_SYMBOL drivers/ptp/ptp 0x29fcad30 ptp_clock_unregister +EXPORT_SYMBOL drivers/ptp/ptp 0x3bfc898e ptp_clock_register +EXPORT_SYMBOL drivers/ptp/ptp_pch 0x11ac7872 pch_ch_event_read +EXPORT_SYMBOL drivers/ptp/ptp_pch 0x130775e2 pch_tx_snap_read +EXPORT_SYMBOL drivers/ptp/ptp_pch 0x331c4a3d pch_ch_control_write +EXPORT_SYMBOL drivers/ptp/ptp_pch 0x6524dac4 pch_ch_event_write +EXPORT_SYMBOL drivers/ptp/ptp_pch 0x88eca356 pch_set_station_address +EXPORT_SYMBOL drivers/ptp/ptp_pch 0xa4c0b941 pch_rx_snap_read +EXPORT_SYMBOL drivers/ptp/ptp_pch 0xb662cf2f pch_src_uuid_hi_read +EXPORT_SYMBOL drivers/ptp/ptp_pch 0xc2c5d8a7 pch_src_uuid_lo_read +EXPORT_SYMBOL drivers/ptp/ptp_pch 0xcfebc79a pch_ch_control_read +EXPORT_SYMBOL drivers/remoteproc/remoteproc 0x106d55c8 rproc_alloc +EXPORT_SYMBOL drivers/remoteproc/remoteproc 0x1529a24a rproc_add +EXPORT_SYMBOL drivers/remoteproc/remoteproc 0x31799b6f rproc_shutdown +EXPORT_SYMBOL drivers/remoteproc/remoteproc 0x3542c46d rproc_boot +EXPORT_SYMBOL drivers/remoteproc/remoteproc 0x509dafda rproc_del +EXPORT_SYMBOL drivers/remoteproc/remoteproc 0x79da7788 rproc_put +EXPORT_SYMBOL drivers/remoteproc/remoteproc 0xbd530599 rproc_da_to_va +EXPORT_SYMBOL drivers/remoteproc/remoteproc 0xe8e05252 rproc_vq_interrupt +EXPORT_SYMBOL drivers/remoteproc/remoteproc 0xeeba18cd rproc_report_crash +EXPORT_SYMBOL drivers/scsi/53c700 0x3d9cece0 NCR_700_intr +EXPORT_SYMBOL drivers/scsi/53c700 0x8b9994d6 NCR_700_release +EXPORT_SYMBOL drivers/scsi/53c700 0xa8ceb7f5 NCR_700_detect +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x365e23ea fcoe_ctlr_els_send +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x4ba35c9f fcoe_ctlr_set_fip_mode +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x5228b1ea fcoe_transport_detach +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x67a4641f fcoe_ctlr_link_up +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x6b69ddc0 fcoe_ctlr_link_down +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x9c209380 fcoe_ctlr_destroy +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xa0f0c837 fcoe_ctlr_recv_flogi +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xa1ab7e53 fcoe_transport_attach +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xb839c731 fcoe_ctlr_recv +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xc608d03e fcoe_ctlr_destroy_store +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xdc4fc43d fcoe_fcf_get_selected +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xe43ea69c fcoe_ctlr_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x026db5cb fc_frame_alloc_fill +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x047eeb0b fc_exch_mgr_add +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x075e3e59 fc_fabric_logoff +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x0786b25d fc_disc_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x198ee0f6 fc_get_host_stats +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x1ca54f4d fc_lport_set_local_id +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x22b90986 fc_exch_mgr_del +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x276302e0 fc_linkup +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x2b236ac1 fc_set_rport_loss_tmo +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x2daa49cc libfc_vport_create +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x34fa54e2 fc_slave_alloc +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x36e5fbaf fc_cpu_mask +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x3bc0b434 fc_elsct_send +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x44a16c92 fc_get_host_speed +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x4eff2af7 _fc_frame_alloc +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x513000bc fc_vport_id_lookup +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x518a3f98 fc_fabric_login +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x5d59c37d fc_lport_config +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x5dcc7837 fc_exch_mgr_alloc +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x5f9d0bc9 fc_linkdown +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x6008dfbb fc_fc4_register_provider +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x64b3d37d fc_fill_hdr +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x727e72f5 fc_fc4_deregister_provider +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x7462fb55 fc_exch_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x74d39e13 fc_eh_device_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x76b4dfee fc_queuecommand +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x78222178 fc_exch_recv +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x7a489923 fc_change_queue_type +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x7c9be2d5 fc_eh_host_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x7f7b95a5 fc_lport_notifier_head +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x81dad793 fc_fcp_destroy +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x829e98f9 fc_change_queue_depth +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x82d798d6 fc_rport_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x8d1bfb76 fc_eh_abort +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x96b34dfb fc_exch_update_stats +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x9a59ab3f fc_lport_iterate +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xad4a48a0 fc_vport_setlink +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xb3168af5 fc_exch_mgr_free +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xb4e28c22 fc_exch_mgr_list_clone +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xb6367db6 fc_frame_crc_check +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xc52dbb65 fc_lport_logo_resp +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xcb029452 fc_lport_destroy +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xcc5b8081 fc_exch_mgr_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xd1083b28 fc_fcp_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xd9472e19 fc_get_host_port_state +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xdbdafeda fc_lport_bsg_request +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xdecd3f4e fc_elsct_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xe4169dff fc_fill_reply_hdr +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xe43d73f0 fc_rport_terminate_io +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xe9e2fa3d fc_set_mfs +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xed9ecef0 fc_lport_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xeeac83e3 fc_disc_config +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xf164fedb fc_lport_flogi_resp +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xfbb08166 fc_lport_init +EXPORT_SYMBOL drivers/scsi/libsas/libsas 0x33b6735f sas_wait_eh +EXPORT_SYMBOL drivers/scsi/libsas/libsas 0x6ace170f sas_prep_resume_ha +EXPORT_SYMBOL drivers/scsi/libsas/libsas 0x8a87e724 try_test_sas_gpio_gp_bit +EXPORT_SYMBOL drivers/scsi/libsas/libsas 0x93feaf8e sas_resume_ha +EXPORT_SYMBOL drivers/scsi/libsas/libsas 0xa83072f4 sas_suspend_ha +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 0xc7326da1 mraid_mm_register_adp +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x00be67f0 osd_req_read_kern +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x07457bc3 osd_dev_fini +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x0c17edb1 osd_sec_init_nosec_doall_caps +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x12f77ccb osd_req_list_dev_partitions +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x1c74872a osd_auto_detect_ver +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x1ecbbd8a osd_req_list_partition_collections +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x1fd86bda osd_req_format +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x260ac99d osd_finalize_request +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x37a46a9f osd_req_add_set_attr_list +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x3821f160 osd_req_list_collection_objects +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x39be8866 osd_req_flush_obsd +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x41d2189b osd_req_decode_sense_full +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x4265a5c9 osd_req_create_partition +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x429ba585 osd_req_read_sg +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x4ead5cd9 osd_req_flush_collection +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x5012e771 osd_req_set_attributes +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x5f1514e3 osd_req_add_get_attr_page +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x61de278b osd_execute_request +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x666f42e1 osd_execute_request_async +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x86856649 osd_req_remove_partition +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x97ee2235 osd_end_request +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xa10a15d9 osd_start_request +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xabbadf13 osd_req_write_sg_kern +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xb662bde3 osd_req_remove_object +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xb775863f osd_req_get_attributes +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xbaed2740 osd_req_list_partition_objects +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xbf4841c6 osd_req_add_get_attr_list +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xbfa98bd5 osd_req_create_object +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xcacfbe1b osd_req_flush_partition +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xd1f88406 osd_req_write_sg +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xd50023dc osd_req_decode_get_attr_list +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xd8bdaf33 osd_req_read +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xdf986ea8 osd_req_read_sg_kern +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xe33d3bd2 osd_req_flush_object +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xe69bcea1 osd_req_write +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xe6d28374 osd_req_write_kern +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xf760088b osd_dev_init +EXPORT_SYMBOL drivers/scsi/osd/osd 0x1012cf9d osduld_put_device +EXPORT_SYMBOL drivers/scsi/osd/osd 0x31910415 osduld_device_info +EXPORT_SYMBOL drivers/scsi/osd/osd 0x568c3bda osduld_path_lookup +EXPORT_SYMBOL drivers/scsi/osd/osd 0x5f885aaa osduld_info_lookup +EXPORT_SYMBOL drivers/scsi/osd/osd 0x5fc48609 osduld_unregister_test +EXPORT_SYMBOL drivers/scsi/osd/osd 0x79029a73 osduld_device_same +EXPORT_SYMBOL drivers/scsi/osd/osd 0xca3a1ffd osduld_register_test +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0x11a8b80b qlt_stop_phase1 +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0x5064e479 qlt_enable_vha +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0x7876c656 qlt_xmit_response +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0xa5eab712 qlt_stop_phase2 +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0xaa792c83 qlt_lport_deregister +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0xacdc04eb qlt_free_cmd +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0xba32c7f8 qlt_unreg_sess +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0xd02de1be qlt_rdy_to_xfer +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0xed2128c3 qlt_lport_register +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0xed491a40 qlt_free_mcmd +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0xf5b0d65a qlt_xmit_tm_rsp +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x1f55cd70 qlogicfas408_ihandl +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x2e5b91ba qlogicfas408_disable_ints +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x3fd8cd71 qlogicfas408_detect +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x4780870a qlogicfas408_bus_reset +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x6f58c0d6 qlogicfas408_abort +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x97485420 qlogicfas408_info +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xc03701f1 qlogicfas408_queuecommand +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xe76b3b20 qlogicfas408_get_chip_type +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xf2b95199 qlogicfas408_setup +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xf9a3aee3 qlogicfas408_biosparam +EXPORT_SYMBOL drivers/scsi/raid_class 0x502ca2d7 raid_component_add +EXPORT_SYMBOL drivers/scsi/raid_class 0x57e6e014 raid_class_release +EXPORT_SYMBOL drivers/scsi/raid_class 0xf0938d2b raid_class_attach +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x1f588a3b fc_remote_port_rolechg +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x20512bf2 fc_host_post_event +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x29aaff93 fc_remote_port_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x4ee73f5b scsi_is_fc_vport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x554a67bb fc_block_scsi_eh +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x60b60c3a fc_release_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x662faeab fc_host_post_vendor_event +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x7954b1ea fc_get_event_number +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x833a42fb scsi_is_fc_rport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x91aabe94 fc_remote_port_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x979c44e6 fc_vport_terminate +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x9dc465d2 fc_remove_host +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xccc3d115 fc_vport_create +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xe6f339a9 fc_attach_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x0c905e3b sas_port_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x0f10968b sas_release_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x1f645508 sas_phy_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x20fd5582 sas_rphy_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x288e7663 sas_rphy_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x2ea0731c sas_phy_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x310ee3ad scsi_is_sas_rphy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x3208a4d5 sas_phy_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x3ad7c0f0 sas_rphy_remove +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x434a1ba6 sas_rphy_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x6334ac74 sas_port_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x635a0d27 sas_port_get_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x6a9ab2c2 sas_port_alloc_num +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x72919636 sas_read_port_mode_page +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x74341b3e sas_port_add_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x882e8f87 sas_end_device_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x888cf2a9 sas_expander_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x8e7bab9e sas_phy_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xb643c8bd sas_rphy_unlink +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xc063a717 sas_port_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xc1081d64 sas_remove_children +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xc4b8479d sas_remove_host +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xcfe81c6b scsi_is_sas_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xd3af7041 sas_attach_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xed07f47b sas_port_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xf14a99c5 sas_port_mark_backlink +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xf180c2f2 scsi_is_sas_port +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xf1840224 sas_port_delete_phy +EXPORT_SYMBOL drivers/ssb/ssb 0x00ac38e8 ssb_pcicore_dev_irqvecs_enable +EXPORT_SYMBOL drivers/ssb/ssb 0x0906554e ssb_device_enable +EXPORT_SYMBOL drivers/ssb/ssb 0x0f02d5ff ssb_set_devtypedata +EXPORT_SYMBOL drivers/ssb/ssb 0x0f38d3bf __ssb_driver_register +EXPORT_SYMBOL drivers/ssb/ssb 0x1eb74768 ssb_bus_unregister +EXPORT_SYMBOL drivers/ssb/ssb 0x1f8c8acf ssb_bus_sdiobus_register +EXPORT_SYMBOL drivers/ssb/ssb 0x230bc6e2 ssb_bus_powerup +EXPORT_SYMBOL drivers/ssb/ssb 0x378fe7e0 ssb_pmu_set_ldo_paref +EXPORT_SYMBOL drivers/ssb/ssb 0x3894cd3a ssb_clockspeed +EXPORT_SYMBOL drivers/ssb/ssb 0x4c04c92e ssb_device_disable +EXPORT_SYMBOL drivers/ssb/ssb 0x5c783eae ssb_driver_unregister +EXPORT_SYMBOL drivers/ssb/ssb 0x6480cbc6 ssb_dma_translation +EXPORT_SYMBOL drivers/ssb/ssb 0x65dd7b1f ssb_bus_suspend +EXPORT_SYMBOL drivers/ssb/ssb 0x65e78f4c ssb_commit_settings +EXPORT_SYMBOL drivers/ssb/ssb 0x6bc9fc29 ssb_bus_resume +EXPORT_SYMBOL drivers/ssb/ssb 0x6c422881 ssb_pmu_set_ldo_voltage +EXPORT_SYMBOL drivers/ssb/ssb 0xa7353baf ssb_bus_pcibus_register +EXPORT_SYMBOL drivers/ssb/ssb 0xaa25d2a0 ssb_pcihost_register +EXPORT_SYMBOL drivers/ssb/ssb 0xc0512e0f ssb_admatch_base +EXPORT_SYMBOL drivers/ssb/ssb 0xd481192b ssb_admatch_size +EXPORT_SYMBOL drivers/ssb/ssb 0xe7c45ab6 ssb_bus_may_powerdown +EXPORT_SYMBOL drivers/ssb/ssb 0xe80808eb ssb_device_is_enabled +EXPORT_SYMBOL drivers/ssb/ssb 0xeb0ea9b9 ssb_chipco_gpio_control +EXPORT_SYMBOL drivers/staging/fwserial/firewire-serial 0x06fe735e fwtty_port_get +EXPORT_SYMBOL drivers/staging/fwserial/firewire-serial 0x13eda23e fwtty_port_put +EXPORT_SYMBOL drivers/staging/iio/addac/adt7316 0x09f8723c adt7316_remove +EXPORT_SYMBOL drivers/staging/iio/addac/adt7316 0xbfdf0b6f adt7316_probe +EXPORT_SYMBOL drivers/staging/iio/meter/ade7854 0x547dfe6e ade7854_remove +EXPORT_SYMBOL drivers/staging/iio/meter/ade7854 0x7b72a71e ade7854_probe +EXPORT_SYMBOL drivers/staging/media/cxd2099/cxd2099 0x0c161e6b cxd2099_attach +EXPORT_SYMBOL drivers/staging/media/go7007/go7007 0x08d0fe60 go7007_alloc +EXPORT_SYMBOL drivers/staging/media/go7007/go7007 0x1ecb5e29 go7007_parse_video_stream +EXPORT_SYMBOL drivers/staging/media/go7007/go7007 0x2469a3d0 go7007_register_encoder +EXPORT_SYMBOL drivers/staging/media/go7007/go7007 0x83142283 go7007_read_interrupt +EXPORT_SYMBOL drivers/staging/media/go7007/go7007 0x8fa254c4 go7007_boot_encoder +EXPORT_SYMBOL drivers/staging/media/go7007/go7007 0xbc92c162 go7007_snd_init +EXPORT_SYMBOL drivers/staging/media/go7007/go7007 0xc0fe9cf9 go7007_read_addr +EXPORT_SYMBOL drivers/staging/media/go7007/go7007 0xc36ff7ce go7007_snd_remove +EXPORT_SYMBOL drivers/staging/media/go7007/go7007 0xdf1a5ac9 go7007_update_board +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x0810f705 rtllib_softmac_stop_protocol +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x0ab055ec rtllib_start_scan_syncro +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x0e5f35ed rtllib_wx_get_wap +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x14c3f746 rtllib_wx_set_encode +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x14c94cf6 rtllib_wx_get_rate +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x2075332f HT_update_self_and_peer_setting +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x224ab40d rtllib_DisableIntelPromiscuousMode +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x24ec3724 rtllib_xmit +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x2774c0c2 rtllib_wx_set_rate +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x2aa1f402 rtllib_MgntDisconnect +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x2af003e3 rtllib_rx +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x2b034e93 rtllib_ps_tx_ack +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x2e073cd3 free_rtllib +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x2e695822 rtllib_wpa_supplicant_ioctl +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x2fbf7f81 rtllib_sta_ps_send_null_frame +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x3f76f250 rtllib_wx_set_rts +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x4592ff70 rtllib_wx_get_name +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x4bc9b241 rtllib_stop_send_beacons +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x4be7f807 rtllib_wx_get_encode +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x50175e7e rtllib_legal_channel +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x577dcd51 rtllib_wx_set_essid +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x582241a3 RemovePeerTS +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x58f50a32 rtllib_wx_set_scan +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x5d32694b rtllib_wx_set_encode_ext +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x60164d07 Dot11d_Channelmap +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x620105df rtllib_EnableIntelPromiscuousMode +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x6b488606 rtllib_wx_get_scan +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x76fa8468 rtllib_wx_get_essid +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x7c1d93cb rtllib_wx_set_mlme +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x81e7233d rtllib_wx_get_rts +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x951ea658 rtllib_stop_scan_syncro +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x96c4600f rtllib_wx_set_freq +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x993cb731 rtllib_wx_set_mode +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x9a9adf1f dot11d_init +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x9b56d9ec rtllib_wx_get_power +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x9f698630 rtllib_wx_set_gen_ie +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xa579ec3b rtllib_wx_get_freq +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xa8532976 rtllib_softmac_start_protocol +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xaa813b05 rtllib_wx_get_mode +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xb0cee480 rtllib_wx_set_wap +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xb48f6eb8 alloc_rtllib +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xb9fd12c3 rtllib_reset_queue +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xbad190d5 rtllib_wx_set_power +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xbe1420f2 rt_global_debug_component +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xc2e6d122 rtllib_get_beacon +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xc48a03e5 rtllib_stop_scan +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xc49837e4 rtllib_wx_set_auth +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xd97f4a5f rtllib_start_send_beacons +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xdf78f620 rtllib_wlan_frequencies +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xe01cba72 rtllib_wx_set_rawtx +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xe02cd94b rtllib_act_scanning +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xfb0715e8 notify_wx_assoc_event +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x06f037e5 ieee80211_wx_get_wap_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x0978731d ieee80211_softmac_stop_protocol_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x0b18a583 HTUpdateSelfAndPeerSetting +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x0c03745a ieee80211_ps_tx_ack_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x0d0f6495 ieee80211_wake_queue_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x0d75c84e DOT11D_GetMaxTxPwrInDbm +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x0f644d75 ieee80211_wx_get_scan_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x14cc6377 Dot11d_UpdateCountryIe +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x2255fb6c DOT11D_ScanComplete +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x25cac3dd ieee80211_wx_get_freq_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x25f449ea ieee80211_wx_get_mode_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x2cbc5ac4 ieee80211_wx_set_encode_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x2e7a2476 ieee80211_wx_set_auth_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x32afd2ad notify_wx_assoc_event_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x35d435fb ieee80211_wx_get_encode_ext_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x3cbb989d ieee80211_is_54g_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x4458a4cc Dot11d_Init +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x49415533 ieee80211_wx_get_rts_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x4a4687f9 ieee80211_stop_scan_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x57a8a4d7 ieee80211_txb_free_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x594a3b19 ieee80211_get_beacon_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x68cfdbf5 ieee80211_reset_queue_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x6a754331 ieee80211_wx_set_rate_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x6c32c8b5 ieee80211_is_shortslot_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x7a9e9777 ieee80211_wx_get_essid_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x7b890841 ieee80211_wx_set_essid_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x81f175de ieee80211_wx_set_rawtx_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x8ea8b366 ieee80211_wx_set_gen_ie_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x8f2e8d01 Dot11d_Reset +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x92d4d817 ToLegalChannel +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x940571ac ieee80211_start_scan_syncro_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x94731f3d ieee80211_stop_send_beacons_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x9ae915a9 ieee80211_softmac_start_protocol_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xa69b7370 ieee80211_wx_get_rate_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xa946b0f0 ieee80211_wpa_supplicant_ioctl_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xaa607f3a ieee80211_softmac_scan_syncro_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xab068187 ieee80211_wx_set_rts_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xabbe8a2c ieee80211_start_send_beacons_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xb1ba3de8 ieee80211_disassociate_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xc370a43e ieee80211_wlan_frequencies_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xc38a7d34 ieee80211_wx_set_scan_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xc4ca3c8f ieee80211_wx_get_power_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xc5dda3b9 ieee80211_wx_set_power_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xd9a626cf ieee80211_wx_set_mlme_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xd9bf8c30 ieee80211_softmac_xmit_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xdd5af3ee ieee80211_rx_mgt_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xe1889fbe ieee80211_wx_get_name_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xe307d8c2 ieee80211_wx_get_encode_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xe4b7e351 ieee80211_wx_set_wap_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xe91a79ab ieee80211_wx_set_mode_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xe924f39c ieee80211_wx_set_freq_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xe9bb3a78 ieee80211_rx_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xfc047cf4 IsLegalChannel +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xfcc306c4 ieee80211_stop_queue_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xfe1df56e SendDisassociation_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xfe6c50c7 ieee80211_send_probe_requests_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xfee40d9b ieee80211_wx_set_encode_ext_rsl +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x0017f35f set_bp_disc_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x00ea0cde set_tap_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x06d6f244 get_bp_dis_disc_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x09df8f3e set_tap_pwup_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x0a8d32c3 get_bypass_slave_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x1936264c set_dis_bypass_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x1d2eb8ca get_tap_change_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x203af1f7 reset_bypass_wd_timer_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x2070f14a set_bypass_pwup_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x27b990ef get_bypass_info_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x2ba7cd35 get_wd_autoreset_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x2c3f1c17 get_tx_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x2f59e636 get_tap_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x2fdb893a get_tap_pwup_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x361cf40a get_dis_bypass_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x45ca99c3 set_wd_autoreset_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x550a188c set_bypass_wd_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x5cb59e92 get_bypass_pwup_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x66b60122 set_bypass_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x675208c0 set_tx_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x692623f2 get_std_nic_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x75131ec6 set_bypass_pwoff_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x76c0b7d0 set_tpl_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x7e872825 get_wd_exp_mode_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x7e8d701e get_wd_expire_time_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x86388b07 get_bp_disc_change_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x93ae4648 get_wd_set_caps_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x95e42b0d is_bypass_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x9df5f807 set_dis_tap_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x9e21f42e set_std_nic_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0xa689a214 get_bypass_wd_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0xae117788 get_bp_disc_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0xc368d30d get_dis_tap_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0xccab5de0 get_bypass_caps_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0xd3e034b3 get_bypass_pwoff_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0xd9c1ccfc get_bp_disc_pwup_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0xd9d38d97 set_wd_exp_mode_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0xe640f06e set_bp_disc_pwup_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0xecdaa456 set_bp_hw_reset_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0xedcd3c1b get_bypass_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0xf06d67bf set_bp_dis_disc_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0xf57c1671 get_bp_hw_reset_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0xf693c3a1 bp_if_scan_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0xf8237882 get_bypass_change_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0xfa59240d get_tpl_sd +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x05af3c4c set_wd_exp_mode +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x05b08a42 set_bp_hw_reset +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x0b0d5ce0 get_tap_pwup +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x0fc2e83c reset_bypass_wd_timer +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x123a8133 get_tx +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x157ec89c get_bp_disc +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x2440f05a get_bypass +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x2b01d1d4 set_bp_dis_disc +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x2c27a2f0 set_dis_bypass +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x2da97f4b is_bypass +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x2e86c67b get_tap +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x37416370 get_bp_hw_reset +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x37bdab27 get_wd_autoreset +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x3da96a18 get_bypass_caps +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x4025805e get_bypass_change +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x4940a0cc get_bypass_info +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x4d21ff51 get_bypass_pwup +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x5147360c get_bp_disc_change +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x515d4df1 get_bypass_slave +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x5560267e set_wd_autoreset +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x5be44d44 set_tap +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x6653590c get_wd_exp_mode +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x6bda14ec get_bp_dis_disc +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x72c618ae set_bypass_wd +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x76d47e6f set_bp_disc_pwup +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x794e3815 set_tap_pwup +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x7c6cbc16 get_tpl +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x84a263dc set_tx +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x8a16f22c set_tpl +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x946ff795 get_wd_set_caps +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x94f6aff2 get_bypass_wd +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x9d1ecf73 set_bypass_pwoff +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0xb1385629 set_bypass +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0xbff68c45 set_bypass_pwup +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0xc871c561 get_dis_bypass +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0xcee528df set_std_nic +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0xd202dd85 get_bypass_pwoff +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0xd787f151 get_wd_expire_time +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0xdb6a39d2 get_dis_tap +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0xebd25ae5 get_std_nic +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0xf1e9f8c1 set_bp_disc +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0xf224abd9 get_tap_change +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0xf5a591b2 set_dis_tap +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0xf643fd4c get_bp_disc_pwup +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x019005eb iscsit_process_text_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x08c3c9a9 iscsit_tmr_post_handler +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x1e2ba5de iscsit_handle_text_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x2596eacf iscsit_process_nop_out +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x264441b2 iscsit_check_dataout_hdr +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x28415a16 iscsit_register_transport +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x44a25cfa iscsit_build_reject +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x4f8bd4c7 iscsit_handle_task_mgt_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x60127f7b iscsit_unregister_transport +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x64c9bb02 iscsit_build_logout_rsp +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x6e315e14 iscsit_process_scsi_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x72ed8c19 iscsit_setup_scsi_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x74815f48 iscsit_set_unsoliticed_dataout +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x84b3158f iscsit_sequence_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x85c49c3d iscsit_increment_maxcmdsn +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x94b4255b iscsit_build_nopin_rsp +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x9acea014 iscsit_build_rsp_pdu +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xa7bda5d5 iscsit_setup_nop_out +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xc89b220d iscsit_build_task_mgt_rsp +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xcbcd468d iscsit_cause_connection_reinstatement +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xd0d2875c iscsit_setup_text_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xd2e886f6 iscsit_check_dataout_payload +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xd66dc3fb iscsit_build_text_rsp +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xd7323224 iscsit_handle_logout_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xd7840ded iscsit_allocate_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xe5aca1a0 iscsit_stop_dataout_timer +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xe7018f0c iscsit_logout_post_handler +EXPORT_SYMBOL drivers/target/target_core_mod 0x02de3b18 transport_set_vpd_ident +EXPORT_SYMBOL drivers/target/target_core_mod 0x09f09104 core_tpg_del_initiator_node_acl +EXPORT_SYMBOL drivers/target/target_core_mod 0x0cd56f33 target_fabric_configfs_free +EXPORT_SYMBOL drivers/target/target_core_mod 0x0e473971 transport_kmap_data_sg +EXPORT_SYMBOL drivers/target/target_core_mod 0x0fb6c056 target_get_session +EXPORT_SYMBOL drivers/target/target_core_mod 0x104fa9ca spc_emulate_evpd_83 +EXPORT_SYMBOL drivers/target/target_core_mod 0x175f5495 core_tpg_check_initiator_node_acl +EXPORT_SYMBOL drivers/target/target_core_mod 0x17c6e0eb target_execute_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x1a99da6b transport_handle_cdb_direct +EXPORT_SYMBOL drivers/target/target_core_mod 0x1ad3a86a target_submit_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x1ad69b99 fc_get_pr_transport_id +EXPORT_SYMBOL drivers/target/target_core_mod 0x23e298e6 transport_deregister_session_configfs +EXPORT_SYMBOL drivers/target/target_core_mod 0x26c7c7a5 iscsi_parse_pr_out_transport_id +EXPORT_SYMBOL drivers/target/target_core_mod 0x2b25cc1a core_tpg_set_initiator_node_queue_depth +EXPORT_SYMBOL drivers/target/target_core_mod 0x2b443ebb transport_subsystem_register +EXPORT_SYMBOL drivers/target/target_core_mod 0x326dec3d target_wait_for_sess_cmds +EXPORT_SYMBOL drivers/target/target_core_mod 0x32fc40d7 sas_parse_pr_out_transport_id +EXPORT_SYMBOL drivers/target/target_core_mod 0x35bc419f spc_emulate_inquiry_std +EXPORT_SYMBOL drivers/target/target_core_mod 0x437ab4cd core_tpg_set_initiator_node_tag +EXPORT_SYMBOL drivers/target/target_core_mod 0x4b12d924 fc_get_fabric_proto_ident +EXPORT_SYMBOL drivers/target/target_core_mod 0x4b5ad545 transport_init_se_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x4cb3e92f target_put_sess_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x51043f17 transport_wait_for_tasks +EXPORT_SYMBOL drivers/target/target_core_mod 0x5a343b1e core_tmr_alloc_req +EXPORT_SYMBOL drivers/target/target_core_mod 0x5a9f6d57 __transport_register_session +EXPORT_SYMBOL drivers/target/target_core_mod 0x5db1b876 target_setup_cmd_from_cdb +EXPORT_SYMBOL drivers/target/target_core_mod 0x5eeba28e fc_parse_pr_out_transport_id +EXPORT_SYMBOL drivers/target/target_core_mod 0x6d71ae0b transport_register_session +EXPORT_SYMBOL drivers/target/target_core_mod 0x6d8823af transport_generic_handle_tmr +EXPORT_SYMBOL drivers/target/target_core_mod 0x742a5300 transport_subsystem_release +EXPORT_SYMBOL drivers/target/target_core_mod 0x75e274f4 spc_parse_cdb +EXPORT_SYMBOL drivers/target/target_core_mod 0x785afcaf sbc_parse_cdb +EXPORT_SYMBOL drivers/target/target_core_mod 0x7863ded3 sbc_get_device_type +EXPORT_SYMBOL drivers/target/target_core_mod 0x79ab0dbf core_tpg_clear_object_luns +EXPORT_SYMBOL drivers/target/target_core_mod 0x7dbada9d transport_set_vpd_ident_type +EXPORT_SYMBOL drivers/target/target_core_mod 0x7fc36dc5 core_tpg_register +EXPORT_SYMBOL drivers/target/target_core_mod 0x815d6f60 target_submit_cmd_map_sgls +EXPORT_SYMBOL drivers/target/target_core_mod 0x824599c2 transport_generic_request_failure +EXPORT_SYMBOL drivers/target/target_core_mod 0x8564400f spc_emulate_report_luns +EXPORT_SYMBOL drivers/target/target_core_mod 0x85aa880c transport_set_vpd_assoc +EXPORT_SYMBOL drivers/target/target_core_mod 0x86b939c0 fc_get_pr_transport_id_len +EXPORT_SYMBOL drivers/target/target_core_mod 0x86c44815 transport_check_aborted_status +EXPORT_SYMBOL drivers/target/target_core_mod 0x8aac5121 transport_generic_free_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x920b4dc5 core_tpg_add_initiator_node_acl +EXPORT_SYMBOL drivers/target/target_core_mod 0x94753587 target_put_session +EXPORT_SYMBOL drivers/target/target_core_mod 0xa14f7284 core_alua_check_nonop_delay +EXPORT_SYMBOL drivers/target/target_core_mod 0xa5059eee target_get_sess_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0xa8199178 target_complete_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0xa91d3135 target_fabric_configfs_init +EXPORT_SYMBOL drivers/target/target_core_mod 0xaccfcb01 transport_free_session +EXPORT_SYMBOL drivers/target/target_core_mod 0xaeacab98 sas_get_pr_transport_id +EXPORT_SYMBOL drivers/target/target_core_mod 0xaf79a110 core_tpg_deregister +EXPORT_SYMBOL drivers/target/target_core_mod 0xb03e7bab sbc_get_write_same_sectors +EXPORT_SYMBOL drivers/target/target_core_mod 0xb2589128 iscsi_get_fabric_proto_ident +EXPORT_SYMBOL drivers/target/target_core_mod 0xb27a5d2c target_sess_cmd_list_set_waiting +EXPORT_SYMBOL drivers/target/target_core_mod 0xb30f0b25 iscsi_get_pr_transport_id +EXPORT_SYMBOL drivers/target/target_core_mod 0xb37e05d9 transport_generic_new_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0xb987c391 target_fabric_configfs_deregister +EXPORT_SYMBOL drivers/target/target_core_mod 0xc26c616d target_submit_tmr +EXPORT_SYMBOL drivers/target/target_core_mod 0xc5978dff transport_init_session +EXPORT_SYMBOL drivers/target/target_core_mod 0xc63bf340 transport_send_check_condition_and_sense +EXPORT_SYMBOL drivers/target/target_core_mod 0xcfb40238 transport_kunmap_data_sg +EXPORT_SYMBOL drivers/target/target_core_mod 0xd0255a7e iscsi_get_pr_transport_id_len +EXPORT_SYMBOL drivers/target/target_core_mod 0xd0fe35e9 transport_lookup_cmd_lun +EXPORT_SYMBOL drivers/target/target_core_mod 0xe17d8ab9 transport_lookup_tmr_lun +EXPORT_SYMBOL drivers/target/target_core_mod 0xe26b9e17 sbc_execute_unmap +EXPORT_SYMBOL drivers/target/target_core_mod 0xe79e9df5 target_fabric_configfs_register +EXPORT_SYMBOL drivers/target/target_core_mod 0xe7c6128a sas_get_fabric_proto_ident +EXPORT_SYMBOL drivers/target/target_core_mod 0xefcf16bc sas_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 0xfd2a4fd4 transport_deregister_session +EXPORT_SYMBOL drivers/usb/class/cdc-wdm 0x46fdbef1 usb_cdc_wdm_register +EXPORT_SYMBOL drivers/usb/gadget/u_ether 0x000aa250 gether_get_host_addr_u8 +EXPORT_SYMBOL drivers/usb/gadget/u_ether 0x07ff83e8 gether_get_host_addr +EXPORT_SYMBOL drivers/usb/gadget/u_ether 0x0b69020b gether_set_host_addr +EXPORT_SYMBOL drivers/usb/gadget/u_ether 0x2e88548c gether_get_host_addr_cdc +EXPORT_SYMBOL drivers/usb/gadget/u_ether 0x380d64e7 gether_register_netdev +EXPORT_SYMBOL drivers/usb/gadget/u_ether 0x4e5252e4 gether_setup_name_default +EXPORT_SYMBOL drivers/usb/gadget/u_ether 0x6cc30ca0 gether_disconnect +EXPORT_SYMBOL drivers/usb/gadget/u_ether 0x77b10673 gether_set_qmult +EXPORT_SYMBOL drivers/usb/gadget/u_ether 0x78fae882 gether_connect +EXPORT_SYMBOL drivers/usb/gadget/u_ether 0x7d71c579 gether_get_qmult +EXPORT_SYMBOL drivers/usb/gadget/u_ether 0x8878cfa6 gether_cleanup +EXPORT_SYMBOL drivers/usb/gadget/u_ether 0xa35ed28f gether_get_dev_addr +EXPORT_SYMBOL drivers/usb/gadget/u_ether 0xa4694d36 gether_get_ifname +EXPORT_SYMBOL drivers/usb/gadget/u_ether 0xba1ec887 gether_set_dev_addr +EXPORT_SYMBOL drivers/usb/gadget/u_ether 0xc3e6e36d gether_set_gadget +EXPORT_SYMBOL drivers/usb/gadget/u_ether 0xe18f5664 gether_setup_name +EXPORT_SYMBOL drivers/usb/gadget/u_rndis 0x32068ea6 rndis_set_param_dev +EXPORT_SYMBOL drivers/usb/gadget/u_rndis 0x3a6d4f22 rndis_free_response +EXPORT_SYMBOL drivers/usb/gadget/u_rndis 0x3ca38e3a rndis_signal_connect +EXPORT_SYMBOL drivers/usb/gadget/u_rndis 0x41774356 rndis_rm_hdr +EXPORT_SYMBOL drivers/usb/gadget/u_rndis 0x4ca90996 rndis_signal_disconnect +EXPORT_SYMBOL drivers/usb/gadget/u_rndis 0x5d22b406 rndis_register +EXPORT_SYMBOL drivers/usb/gadget/u_rndis 0x658a10a5 rndis_add_hdr +EXPORT_SYMBOL drivers/usb/gadget/u_rndis 0x785d494b rndis_msg_parser +EXPORT_SYMBOL drivers/usb/gadget/u_rndis 0x840dd143 rndis_deregister +EXPORT_SYMBOL drivers/usb/gadget/u_rndis 0x988ad2a2 rndis_set_param_vendor +EXPORT_SYMBOL drivers/usb/gadget/u_rndis 0x9acf72e4 rndis_set_param_medium +EXPORT_SYMBOL drivers/usb/gadget/u_rndis 0xa90054ee rndis_uninit +EXPORT_SYMBOL drivers/usb/gadget/u_rndis 0xb971ebca rndis_get_next_response +EXPORT_SYMBOL drivers/usb/gadget/u_rndis 0xd2fe47b1 rndis_set_host_mac +EXPORT_SYMBOL drivers/usb/gadget/usb_f_rndis 0xafcb0350 rndis_borrow_net +EXPORT_SYMBOL drivers/usb/host/sl811-hcd 0x83c05c3b sl811h_driver +EXPORT_SYMBOL drivers/usb/phy/phy-nop 0xa64a4cea usb_nop_xceiv_unregister +EXPORT_SYMBOL drivers/usb/phy/phy-nop 0xd0e43207 usb_nop_xceiv_register +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x20058a3d usb_wwan_port_remove +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x24057ac1 usb_wwan_open +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x2870dfe3 usb_wwan_write +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x3db39ec0 usb_wwan_chars_in_buffer +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x3e4d2cad usb_wwan_write_room +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x7c9e06e4 usb_wwan_resume +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x939d5996 usb_wwan_close +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x96095cac usb_wwan_ioctl +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x99b9c55f usb_wwan_dtr_rts +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xc90b2f9e usb_wwan_tiocmset +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xda5d8a49 usb_wwan_suspend +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xf40be8aa usb_wwan_set_termios +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xf7fd0fe5 usb_wwan_tiocmget +EXPORT_SYMBOL drivers/usb/serial/usbserial 0x864b56a7 usb_serial_suspend +EXPORT_SYMBOL drivers/usb/serial/usbserial 0x8a11435f usb_serial_resume +EXPORT_SYMBOL drivers/vhost/vringh 0x0dda8c5a vringh_complete_kern +EXPORT_SYMBOL drivers/vhost/vringh 0x1f063017 vringh_init_user +EXPORT_SYMBOL drivers/vhost/vringh 0x2e91ca97 vringh_iov_pull_kern +EXPORT_SYMBOL drivers/vhost/vringh 0x367ce26a vringh_iov_push_user +EXPORT_SYMBOL drivers/vhost/vringh 0x36dfce73 vringh_complete_multi_user +EXPORT_SYMBOL drivers/vhost/vringh 0x3eaf442a vringh_abandon_kern +EXPORT_SYMBOL drivers/vhost/vringh 0x3fa42e4f vringh_notify_enable_user +EXPORT_SYMBOL drivers/vhost/vringh 0x5dafbd4e vringh_init_kern +EXPORT_SYMBOL drivers/vhost/vringh 0x66af098b vringh_notify_enable_kern +EXPORT_SYMBOL drivers/vhost/vringh 0x6d0e7948 vringh_abandon_user +EXPORT_SYMBOL drivers/vhost/vringh 0x7bda5e6d vringh_iov_push_kern +EXPORT_SYMBOL drivers/vhost/vringh 0x821e9390 vringh_iov_pull_user +EXPORT_SYMBOL drivers/vhost/vringh 0xaf8e4a0e vringh_notify_disable_kern +EXPORT_SYMBOL drivers/vhost/vringh 0xafb47dae vringh_need_notify_user +EXPORT_SYMBOL drivers/vhost/vringh 0xc884d704 vringh_notify_disable_user +EXPORT_SYMBOL drivers/vhost/vringh 0xc8bee0a4 vringh_need_notify_kern +EXPORT_SYMBOL drivers/vhost/vringh 0xd11d2709 vringh_getdesc_kern +EXPORT_SYMBOL drivers/vhost/vringh 0xda4ea4cc vringh_complete_user +EXPORT_SYMBOL drivers/vhost/vringh 0xfc7dcad2 vringh_getdesc_user +EXPORT_SYMBOL drivers/video/backlight/generic_bl 0x366d19ef genericbl_limit_intensity +EXPORT_SYMBOL drivers/video/backlight/lcd 0x2c103e76 devm_lcd_device_unregister +EXPORT_SYMBOL drivers/video/backlight/lcd 0x99c9bd35 lcd_device_unregister +EXPORT_SYMBOL drivers/video/backlight/lcd 0xeafafa89 lcd_device_register +EXPORT_SYMBOL drivers/video/backlight/lcd 0xf0eeb34f devm_lcd_device_register +EXPORT_SYMBOL drivers/video/cyber2000fb 0x0cc3ede5 cyber2000fb_detach +EXPORT_SYMBOL drivers/video/cyber2000fb 0x534b6f18 cyber2000fb_disable_extregs +EXPORT_SYMBOL drivers/video/cyber2000fb 0x95665b4f cyber2000fb_attach +EXPORT_SYMBOL drivers/video/cyber2000fb 0xb39f68d1 cyber2000fb_enable_extregs +EXPORT_SYMBOL drivers/video/macmodes 0x233917d1 mac_vmode_to_var +EXPORT_SYMBOL drivers/video/macmodes 0x876ad946 mac_find_mode +EXPORT_SYMBOL drivers/video/macmodes 0xe2304303 mac_map_monitor_sense +EXPORT_SYMBOL drivers/video/matrox/g450_pll 0x4bfd03b3 matroxfb_g450_setclk +EXPORT_SYMBOL drivers/video/matrox/g450_pll 0x9f81aec0 matroxfb_g450_setpll_cond +EXPORT_SYMBOL drivers/video/matrox/g450_pll 0xd7c21f4b g450_mnp2f +EXPORT_SYMBOL drivers/video/matrox/matroxfb_DAC1064 0x157fcf99 DAC1064_global_init +EXPORT_SYMBOL drivers/video/matrox/matroxfb_DAC1064 0x522d71d7 matrox_G100 +EXPORT_SYMBOL drivers/video/matrox/matroxfb_DAC1064 0x918828c7 matrox_mystique +EXPORT_SYMBOL drivers/video/matrox/matroxfb_DAC1064 0xd5a301b3 DAC1064_global_restore +EXPORT_SYMBOL drivers/video/matrox/matroxfb_Ti3026 0xe2d256ba matrox_millennium +EXPORT_SYMBOL drivers/video/matrox/matroxfb_accel 0x4079ac5f matrox_cfbX_init +EXPORT_SYMBOL drivers/video/matrox/matroxfb_base 0x2ed0063a matroxfb_unregister_driver +EXPORT_SYMBOL drivers/video/matrox/matroxfb_base 0x80c26ab2 matroxfb_wait_for_sync +EXPORT_SYMBOL drivers/video/matrox/matroxfb_base 0x9cde4ee6 matroxfb_enable_irq +EXPORT_SYMBOL drivers/video/matrox/matroxfb_base 0xfe2660e7 matroxfb_register_driver +EXPORT_SYMBOL drivers/video/matrox/matroxfb_g450 0xac57f546 matroxfb_g450_shutdown +EXPORT_SYMBOL drivers/video/matrox/matroxfb_g450 0xf8f371c6 matroxfb_g450_connect +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0x25cf8049 matroxfb_PLL_calcclock +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0x570dcf51 matroxfb_vgaHWinit +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0x5e2a911e matroxfb_DAC_in +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0x9b573fda matroxfb_DAC_out +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0xac4ba0eb matroxfb_read_pins +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0xc22dfd7b matroxfb_vgaHWrestore +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0xcdc90c64 matroxfb_var2my +EXPORT_SYMBOL drivers/video/mb862xx/mb862xxfb 0x07ef4e7a mb862xxfb_init_accel +EXPORT_SYMBOL drivers/video/output 0x4d6859d4 video_output_unregister +EXPORT_SYMBOL drivers/video/output 0x77ed1cf8 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 0x081162f5 svga_get_caps +EXPORT_SYMBOL drivers/video/svgalib 0x17f3f471 svga_set_default_seq_regs +EXPORT_SYMBOL drivers/video/svgalib 0x1be6dc30 svga_set_textmode_vga_regs +EXPORT_SYMBOL drivers/video/svgalib 0x21eb2ed8 svga_tileblit +EXPORT_SYMBOL drivers/video/svgalib 0x4ab38ef2 svga_set_default_crt_regs +EXPORT_SYMBOL drivers/video/svgalib 0x5e532f7b svga_tilefill +EXPORT_SYMBOL drivers/video/svgalib 0x613a7585 svga_tilecopy +EXPORT_SYMBOL drivers/video/svgalib 0x6e4adb1e svga_check_timings +EXPORT_SYMBOL drivers/video/svgalib 0x80f24d95 svga_wcrt_multi +EXPORT_SYMBOL drivers/video/svgalib 0x8de63fb4 svga_set_timings +EXPORT_SYMBOL drivers/video/svgalib 0xa91557ca svga_settile +EXPORT_SYMBOL drivers/video/svgalib 0xd1429fca svga_wseq_multi +EXPORT_SYMBOL drivers/video/svgalib 0xd22ca511 svga_set_default_atc_regs +EXPORT_SYMBOL drivers/video/svgalib 0xd89cd378 svga_tilecursor +EXPORT_SYMBOL drivers/video/svgalib 0xd9bbb023 svga_get_tilemax +EXPORT_SYMBOL drivers/video/svgalib 0xe28d2a49 svga_set_default_gfx_regs +EXPORT_SYMBOL drivers/video/svgalib 0xef774f5d svga_compute_pll +EXPORT_SYMBOL drivers/video/svgalib 0xf2db5956 svga_match_format +EXPORT_SYMBOL drivers/video/syscopyarea 0x65d0f675 sys_copyarea +EXPORT_SYMBOL drivers/video/sysfillrect 0xba6fbdf6 sys_fillrect +EXPORT_SYMBOL drivers/video/sysimgblt 0x87830afa sys_imageblit +EXPORT_SYMBOL drivers/video/vgastate 0x686de290 restore_vga +EXPORT_SYMBOL drivers/video/vgastate 0xe7a2620e save_vga +EXPORT_SYMBOL drivers/vme/vme 0x00d7e722 vme_lm_count +EXPORT_SYMBOL drivers/vme/vme 0x01475617 vme_slave_request +EXPORT_SYMBOL drivers/vme/vme 0x04fd01d6 vme_register_bridge +EXPORT_SYMBOL drivers/vme/vme 0x072f901c vme_master_rmw +EXPORT_SYMBOL drivers/vme/vme 0x0ec5babe vme_dma_free +EXPORT_SYMBOL drivers/vme/vme 0x0f0ca43d vme_irq_generate +EXPORT_SYMBOL drivers/vme/vme 0x124088c2 vme_unregister_bridge +EXPORT_SYMBOL drivers/vme/vme 0x1740cce9 vme_slot_get +EXPORT_SYMBOL drivers/vme/vme 0x20df5a3d vme_dma_pci_attribute +EXPORT_SYMBOL drivers/vme/vme 0x2c955e37 vme_unregister_driver +EXPORT_SYMBOL drivers/vme/vme 0x3e95083c vme_slave_get +EXPORT_SYMBOL drivers/vme/vme 0x3f8d852a vme_master_request +EXPORT_SYMBOL drivers/vme/vme 0x41862ad4 vme_alloc_consistent +EXPORT_SYMBOL drivers/vme/vme 0x46649cd1 vme_lm_set +EXPORT_SYMBOL drivers/vme/vme 0x48b99a13 vme_lm_free +EXPORT_SYMBOL drivers/vme/vme 0x4baf35a7 vme_master_get +EXPORT_SYMBOL drivers/vme/vme 0x535c8308 vme_dma_pattern_attribute +EXPORT_SYMBOL drivers/vme/vme 0x5aff4177 vme_lm_get +EXPORT_SYMBOL drivers/vme/vme 0x5b2f71cc vme_dma_list_exec +EXPORT_SYMBOL drivers/vme/vme 0x5b398428 vme_irq_request +EXPORT_SYMBOL drivers/vme/vme 0x6f77e523 vme_bus_type +EXPORT_SYMBOL drivers/vme/vme 0x7cf35220 vme_master_free +EXPORT_SYMBOL drivers/vme/vme 0x7fde2edb vme_master_read +EXPORT_SYMBOL drivers/vme/vme 0x8a138422 vme_new_dma_list +EXPORT_SYMBOL drivers/vme/vme 0x9008926f vme_register_driver +EXPORT_SYMBOL drivers/vme/vme 0x90695906 vme_free_consistent +EXPORT_SYMBOL drivers/vme/vme 0x92fa5abb vme_lm_detach +EXPORT_SYMBOL drivers/vme/vme 0x9aeb07e8 vme_lm_attach +EXPORT_SYMBOL drivers/vme/vme 0xa31bdf07 vme_master_set +EXPORT_SYMBOL drivers/vme/vme 0xaab0d64e vme_irq_handler +EXPORT_SYMBOL drivers/vme/vme 0xc3b15a2a vme_lm_request +EXPORT_SYMBOL drivers/vme/vme 0xd797b9a5 vme_master_write +EXPORT_SYMBOL drivers/vme/vme 0xd8160b9e vme_dma_list_add +EXPORT_SYMBOL drivers/vme/vme 0xdff905e5 vme_slave_free +EXPORT_SYMBOL drivers/vme/vme 0xe097e5e8 vme_dma_list_free +EXPORT_SYMBOL drivers/vme/vme 0xe693a6ce vme_get_size +EXPORT_SYMBOL drivers/vme/vme 0xe8e1aed3 vme_irq_free +EXPORT_SYMBOL drivers/vme/vme 0xefd1624a vme_dma_free_attribute +EXPORT_SYMBOL drivers/vme/vme 0xf5a10e25 vme_slave_set +EXPORT_SYMBOL drivers/vme/vme 0xf80258ad vme_dma_request +EXPORT_SYMBOL drivers/vme/vme 0xfacd8e72 vme_dma_vme_attribute +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0x24148363 w1_ds2760_store_eeprom +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0x611598a2 w1_ds2760_write +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0xa4121718 w1_ds2760_recall_eeprom +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0xa7f8a6d3 w1_ds2760_read +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2780 0x3c525d91 w1_ds2780_io +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2780 0xa9a2e31e w1_ds2780_eeprom_cmd +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2781 0xcc01c496 w1_ds2781_eeprom_cmd +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2781 0xd25c7823 w1_ds2781_io +EXPORT_SYMBOL drivers/w1/wire 0xccc990e4 w1_unregister_family +EXPORT_SYMBOL drivers/w1/wire 0xce652a46 w1_remove_master_device +EXPORT_SYMBOL drivers/w1/wire 0xd25dbb89 w1_add_master_device +EXPORT_SYMBOL drivers/w1/wire 0xfc24eb06 w1_register_family +EXPORT_SYMBOL drivers/watchdog/iTCO_vendor_support 0x04e133fc iTCO_vendor_check_noreboot_on +EXPORT_SYMBOL drivers/watchdog/iTCO_vendor_support 0xa78bd894 iTCO_vendor_pre_set_heartbeat +EXPORT_SYMBOL drivers/watchdog/iTCO_vendor_support 0xb5f20875 iTCO_vendor_pre_keepalive +EXPORT_SYMBOL drivers/watchdog/iTCO_vendor_support 0xc4f657bf iTCO_vendor_pre_stop +EXPORT_SYMBOL drivers/watchdog/iTCO_vendor_support 0xdc6effc9 iTCO_vendor_pre_start +EXPORT_SYMBOL fs/btrfs/btrfs 0x27476846 ulist_reinit +EXPORT_SYMBOL fs/btrfs/btrfs 0x41e6a9d2 ulist_init +EXPORT_SYMBOL fs/btrfs/btrfs 0x7e2ee765 ulist_free +EXPORT_SYMBOL fs/btrfs/btrfs 0xa2eec2e8 ulist_fini +EXPORT_SYMBOL fs/btrfs/btrfs 0xb1320bc8 ulist_add +EXPORT_SYMBOL fs/btrfs/btrfs 0xb42289d2 ulist_alloc +EXPORT_SYMBOL fs/btrfs/btrfs 0xc2c745db ulist_next +EXPORT_SYMBOL fs/configfs/configfs 0x0b9f9b30 config_group_init +EXPORT_SYMBOL fs/configfs/configfs 0x153c3e06 configfs_depend_item +EXPORT_SYMBOL fs/configfs/configfs 0x1c6e7006 configfs_register_subsystem +EXPORT_SYMBOL fs/configfs/configfs 0x1f826d38 configfs_undepend_item +EXPORT_SYMBOL fs/configfs/configfs 0x3f621e0e config_item_init_type_name +EXPORT_SYMBOL fs/configfs/configfs 0x91c25f4f config_group_find_item +EXPORT_SYMBOL fs/configfs/configfs 0xa832160e config_item_get +EXPORT_SYMBOL fs/configfs/configfs 0xbab444e9 config_group_init_type_name +EXPORT_SYMBOL fs/configfs/configfs 0xd25d6073 config_item_put +EXPORT_SYMBOL fs/configfs/configfs 0xe2ef045a config_item_set_name +EXPORT_SYMBOL fs/configfs/configfs 0xf12f36b3 configfs_unregister_subsystem +EXPORT_SYMBOL fs/configfs/configfs 0xfb953be2 config_item_init +EXPORT_SYMBOL fs/exofs/libore 0x011500ad ore_calc_stripe_info +EXPORT_SYMBOL fs/exofs/libore 0x019d9e84 ore_write +EXPORT_SYMBOL fs/exofs/libore 0x28806871 ore_verify_layout +EXPORT_SYMBOL fs/exofs/libore 0x3039d167 ore_put_io_state +EXPORT_SYMBOL fs/exofs/libore 0x369706b2 ore_truncate +EXPORT_SYMBOL fs/exofs/libore 0x704697ea ore_get_rw_state +EXPORT_SYMBOL fs/exofs/libore 0x78447586 ore_check_io +EXPORT_SYMBOL fs/exofs/libore 0x89abc4bf ore_create +EXPORT_SYMBOL fs/exofs/libore 0xa3d2a634 g_attr_logical_length +EXPORT_SYMBOL fs/exofs/libore 0xd31cf61b ore_remove +EXPORT_SYMBOL fs/exofs/libore 0xe14d5b9d ore_read +EXPORT_SYMBOL fs/exofs/libore 0xe5e0f550 extract_attr_from_ios +EXPORT_SYMBOL fs/exofs/libore 0xeb0b41f8 ore_get_io_state +EXPORT_SYMBOL fs/fscache/fscache 0x0cc0c9ea __fscache_unregister_netfs +EXPORT_SYMBOL fs/fscache/fscache 0x16042d98 fscache_put_operation +EXPORT_SYMBOL fs/fscache/fscache 0x1ccfb04f fscache_mark_page_cached +EXPORT_SYMBOL fs/fscache/fscache 0x207d3847 fscache_object_destroy +EXPORT_SYMBOL fs/fscache/fscache 0x213699c9 __fscache_read_or_alloc_page +EXPORT_SYMBOL fs/fscache/fscache 0x24b0f36a __fscache_attr_changed +EXPORT_SYMBOL fs/fscache/fscache 0x2c5a0327 fscache_obtained_object +EXPORT_SYMBOL fs/fscache/fscache 0x2ea14e05 fscache_cache_cleared_wq +EXPORT_SYMBOL fs/fscache/fscache 0x483fb6de fscache_mark_pages_cached +EXPORT_SYMBOL fs/fscache/fscache 0x4def34ef fscache_op_complete +EXPORT_SYMBOL fs/fscache/fscache 0x4f26d8a0 fscache_check_aux +EXPORT_SYMBOL fs/fscache/fscache 0x4fb8d88a fscache_add_cache +EXPORT_SYMBOL fs/fscache/fscache 0x6b5d2e28 __fscache_register_netfs +EXPORT_SYMBOL fs/fscache/fscache 0x6cb38be0 __fscache_uncache_page +EXPORT_SYMBOL fs/fscache/fscache 0x6d420979 __fscache_update_cookie +EXPORT_SYMBOL fs/fscache/fscache 0x730c84f5 fscache_io_error +EXPORT_SYMBOL fs/fscache/fscache 0x74530ecd fscache_op_debug_id +EXPORT_SYMBOL fs/fscache/fscache 0x92131135 __fscache_relinquish_cookie +EXPORT_SYMBOL fs/fscache/fscache 0x945a6ce1 fscache_init_cache +EXPORT_SYMBOL fs/fscache/fscache 0x95f5817e fscache_object_lookup_negative +EXPORT_SYMBOL fs/fscache/fscache 0x9a8ef75d __fscache_wait_on_invalidate +EXPORT_SYMBOL fs/fscache/fscache 0xa5bb0bf7 __fscache_maybe_release_page +EXPORT_SYMBOL fs/fscache/fscache 0xb3861191 fscache_object_init +EXPORT_SYMBOL fs/fscache/fscache 0xb9c879dd fscache_fsdef_index +EXPORT_SYMBOL fs/fscache/fscache 0xc224fd9e __fscache_wait_on_page_write +EXPORT_SYMBOL fs/fscache/fscache 0xc4f25f08 __fscache_invalidate +EXPORT_SYMBOL fs/fscache/fscache 0xc9a29946 __fscache_write_page +EXPORT_SYMBOL fs/fscache/fscache 0xcc1d61a0 fscache_enqueue_operation +EXPORT_SYMBOL fs/fscache/fscache 0xd81b3840 __fscache_read_or_alloc_pages +EXPORT_SYMBOL fs/fscache/fscache 0xe61fa30d __fscache_acquire_cookie +EXPORT_SYMBOL fs/fscache/fscache 0xeb3ae77d fscache_withdraw_cache +EXPORT_SYMBOL fs/fscache/fscache 0xf42c3e43 __fscache_alloc_page +EXPORT_SYMBOL fs/fscache/fscache 0xf85970f9 __fscache_check_page_write +EXPORT_SYMBOL fs/fscache/fscache 0xfdcc2919 __fscache_uncache_all_inode_pages +EXPORT_SYMBOL fs/nfsd/nfsd 0x040ea5a0 nfs4_acl_nfsv4_to_posix +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 0xcb152562 nfs4_acl_posix_to_nfsv4 +EXPORT_SYMBOL fs/nfsd/nfsd 0xda45bc09 nfs4_acl_new +EXPORT_SYMBOL fs/ocfs2/cluster/ocfs2_nodemanager 0xbfd7d7a2 o2hb_global_heartbeat_active +EXPORT_SYMBOL fs/quota/quota_tree 0x2a278f0e qtree_release_dquot +EXPORT_SYMBOL fs/quota/quota_tree 0xa301d9ca qtree_write_dquot +EXPORT_SYMBOL fs/quota/quota_tree 0xacbd36ed qtree_delete_dquot +EXPORT_SYMBOL fs/quota/quota_tree 0xc7609552 qtree_entry_unused +EXPORT_SYMBOL fs/quota/quota_tree 0xe3b968e2 qtree_read_dquot +EXPORT_SYMBOL lib/cordic 0x434bfd07 cordic_calc_iq +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/crc8 0x41248eaf crc8 +EXPORT_SYMBOL lib/crc8 0xab9ad613 crc8_populate_lsb +EXPORT_SYMBOL lib/crc8 0xd4534d80 crc8_populate_msb +EXPORT_SYMBOL lib/libcrc32c 0x27000b29 crc32c +EXPORT_SYMBOL lib/lru_cache 0x06b1da19 lc_try_lock +EXPORT_SYMBOL lib/lru_cache 0x0896848f lc_create +EXPORT_SYMBOL lib/lru_cache 0x0fe4b27d lc_set +EXPORT_SYMBOL lib/lru_cache 0x272df302 lc_destroy +EXPORT_SYMBOL lib/lru_cache 0x33764850 lc_seq_printf_stats +EXPORT_SYMBOL lib/lru_cache 0x45c3e110 lc_element_by_index +EXPORT_SYMBOL lib/lru_cache 0x45e23e92 lc_committed +EXPORT_SYMBOL lib/lru_cache 0x472a0e3c lc_put +EXPORT_SYMBOL lib/lru_cache 0x58b1b3d4 lc_seq_dump_details +EXPORT_SYMBOL lib/lru_cache 0x60ff7fa6 lc_is_used +EXPORT_SYMBOL lib/lru_cache 0x7d5aafef lc_find +EXPORT_SYMBOL lib/lru_cache 0x9352366b lc_del +EXPORT_SYMBOL lib/lru_cache 0x9ed82b8f lc_try_get +EXPORT_SYMBOL lib/lru_cache 0x9fa08233 lc_reset +EXPORT_SYMBOL lib/lru_cache 0xbb48a66f lc_index_of +EXPORT_SYMBOL lib/lru_cache 0xce0b3dc0 lc_get_cumulative +EXPORT_SYMBOL lib/lru_cache 0xdfbce8c7 lc_get +EXPORT_SYMBOL lib/lz4/lz4_compress 0xcbc5d521 lz4_compress +EXPORT_SYMBOL lib/lz4/lz4hc_compress 0x26c3aa22 lz4hc_compress +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/raid6/raid6_pq 0xd9e91f83 raid6_vgfmul +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 0xe9f7149c zlib_deflate_workspacesize +EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0xf741c793 zlib_deflateEnd +EXPORT_SYMBOL net/802/p8022 0x4914ed8b register_8022_client +EXPORT_SYMBOL net/802/p8022 0xc908c52e unregister_8022_client +EXPORT_SYMBOL net/802/p8023 0x1fef14c0 destroy_8023_client +EXPORT_SYMBOL net/802/p8023 0xc14339b4 make_8023_client +EXPORT_SYMBOL net/802/psnap 0x63fc7907 register_snap_client +EXPORT_SYMBOL net/802/psnap 0x8ba188b2 unregister_snap_client +EXPORT_SYMBOL net/9p/9pnet 0x031d61eb p9_client_fsync +EXPORT_SYMBOL net/9p/9pnet 0x05b427c1 v9fs_get_trans_by_name +EXPORT_SYMBOL net/9p/9pnet 0x0d4f9868 p9_client_create_dotl +EXPORT_SYMBOL net/9p/9pnet 0x1a37c7e9 p9_parse_header +EXPORT_SYMBOL net/9p/9pnet 0x1c9f9a97 p9_client_write +EXPORT_SYMBOL net/9p/9pnet 0x276e6f6d p9_is_proto_dotu +EXPORT_SYMBOL net/9p/9pnet 0x2f9873e6 p9_client_readdir +EXPORT_SYMBOL net/9p/9pnet 0x35d1e27e p9_idpool_get +EXPORT_SYMBOL net/9p/9pnet 0x3ac8f39c p9_tag_lookup +EXPORT_SYMBOL net/9p/9pnet 0x3d73a797 p9_errstr2errno +EXPORT_SYMBOL net/9p/9pnet 0x435158aa p9_client_statfs +EXPORT_SYMBOL net/9p/9pnet 0x4ca7edcd p9_client_cb +EXPORT_SYMBOL net/9p/9pnet 0x4e060ed8 p9stat_free +EXPORT_SYMBOL net/9p/9pnet 0x51622e44 p9_client_readlink +EXPORT_SYMBOL net/9p/9pnet 0x52995c25 p9_client_unlinkat +EXPORT_SYMBOL net/9p/9pnet 0x5bb8c2f2 v9fs_get_default_trans +EXPORT_SYMBOL net/9p/9pnet 0x667f857c p9_client_fcreate +EXPORT_SYMBOL net/9p/9pnet 0x6aad833c p9_client_mkdir_dotl +EXPORT_SYMBOL net/9p/9pnet 0x6b1abb08 v9fs_register_trans +EXPORT_SYMBOL net/9p/9pnet 0x6d4091dd p9_is_proto_dotl +EXPORT_SYMBOL net/9p/9pnet 0x6d7da719 p9_client_open +EXPORT_SYMBOL net/9p/9pnet 0x72ef8929 p9_client_getlock_dotl +EXPORT_SYMBOL net/9p/9pnet 0x7a7b1d3f p9_client_disconnect +EXPORT_SYMBOL net/9p/9pnet 0x7b5380bb p9_client_read +EXPORT_SYMBOL net/9p/9pnet 0x7e9d5763 p9_client_lock_dotl +EXPORT_SYMBOL net/9p/9pnet 0x806dd292 p9_client_attach +EXPORT_SYMBOL net/9p/9pnet 0x8b43b51d p9_client_begin_disconnect +EXPORT_SYMBOL net/9p/9pnet 0x8db62dd2 p9_release_pages +EXPORT_SYMBOL net/9p/9pnet 0x977a0030 p9_nr_pages +EXPORT_SYMBOL net/9p/9pnet 0x9b035603 p9_client_wstat +EXPORT_SYMBOL net/9p/9pnet 0x9be58910 p9_client_link +EXPORT_SYMBOL net/9p/9pnet 0xa05956c4 p9_client_mknod_dotl +EXPORT_SYMBOL net/9p/9pnet 0xa0a24aa2 p9stat_read +EXPORT_SYMBOL net/9p/9pnet 0xac8e5c4e p9_client_clunk +EXPORT_SYMBOL net/9p/9pnet 0xb5ea9ce2 p9_payload_gup +EXPORT_SYMBOL net/9p/9pnet 0xbe3ef6f5 p9_client_destroy +EXPORT_SYMBOL net/9p/9pnet 0xc5db54a9 p9_idpool_destroy +EXPORT_SYMBOL net/9p/9pnet 0xd07dd01b p9_client_walk +EXPORT_SYMBOL net/9p/9pnet 0xd30c4062 p9_client_symlink +EXPORT_SYMBOL net/9p/9pnet 0xd6d43117 p9_client_create +EXPORT_SYMBOL net/9p/9pnet 0xd8eda45e p9dirent_read +EXPORT_SYMBOL net/9p/9pnet 0xd97fe882 v9fs_unregister_trans +EXPORT_SYMBOL net/9p/9pnet 0xe1222a38 p9_client_getattr_dotl +EXPORT_SYMBOL net/9p/9pnet 0xe4138827 p9_client_rename +EXPORT_SYMBOL net/9p/9pnet 0xe58a3360 p9_error_init +EXPORT_SYMBOL net/9p/9pnet 0xebc95fbd p9_client_renameat +EXPORT_SYMBOL net/9p/9pnet 0xec3c4271 p9_client_stat +EXPORT_SYMBOL net/9p/9pnet 0xec6c4aa0 p9_client_setattr +EXPORT_SYMBOL net/9p/9pnet 0xf3fe2cf3 p9_client_remove +EXPORT_SYMBOL net/9p/9pnet 0xf4a111d8 p9_idpool_create +EXPORT_SYMBOL net/9p/9pnet 0xf84f2022 p9_idpool_put +EXPORT_SYMBOL net/9p/9pnet 0xfd40c79d p9_idpool_check +EXPORT_SYMBOL net/appletalk/appletalk 0x9e4b4c75 atrtr_get_dev +EXPORT_SYMBOL net/appletalk/appletalk 0xe7a7371e aarp_send_ddp +EXPORT_SYMBOL net/appletalk/appletalk 0xec0fcbc9 alloc_ltalkdev +EXPORT_SYMBOL net/appletalk/appletalk 0xf171556a atalk_find_dev_addr +EXPORT_SYMBOL net/atm/atm 0x1026866a atm_init_aal5 +EXPORT_SYMBOL net/atm/atm 0x2cc2d52d vcc_hash +EXPORT_SYMBOL net/atm/atm 0x4443d399 atm_proc_root +EXPORT_SYMBOL net/atm/atm 0x596e4673 register_atm_ioctl +EXPORT_SYMBOL net/atm/atm 0x70a12513 atm_dev_lookup +EXPORT_SYMBOL net/atm/atm 0x7bb79f55 vcc_release_async +EXPORT_SYMBOL net/atm/atm 0x93136f41 vcc_sklist_lock +EXPORT_SYMBOL net/atm/atm 0x98376a56 vcc_process_recv_queue +EXPORT_SYMBOL net/atm/atm 0x9f4d818a atm_dev_signal_change +EXPORT_SYMBOL net/atm/atm 0x9feaf287 sonet_subtract_stats +EXPORT_SYMBOL net/atm/atm 0xaa024146 sonet_copy_stats +EXPORT_SYMBOL net/atm/atm 0xb3405c41 atm_charge +EXPORT_SYMBOL net/atm/atm 0xb4f53b07 atm_alloc_charge +EXPORT_SYMBOL net/atm/atm 0xc802eddb deregister_atm_ioctl +EXPORT_SYMBOL net/atm/atm 0xdcd603c1 atm_dev_deregister +EXPORT_SYMBOL net/atm/atm 0xef7481a7 vcc_insert_socket +EXPORT_SYMBOL net/atm/atm 0xf49bc67a atm_pcr_goal +EXPORT_SYMBOL net/atm/atm 0xf6d7dbea atm_dev_release_vccs +EXPORT_SYMBOL net/atm/atm 0xff119528 atm_dev_register +EXPORT_SYMBOL net/ax25/ax25 0x026c1368 ax25_display_timer +EXPORT_SYMBOL net/ax25/ax25 0x03f3d314 ax25_send_frame +EXPORT_SYMBOL net/ax25/ax25 0x09dfa761 ax25_linkfail_register +EXPORT_SYMBOL net/ax25/ax25 0x13e0d5e8 ax25_findbyuid +EXPORT_SYMBOL net/ax25/ax25 0x242852b9 ax25_uid_policy +EXPORT_SYMBOL net/ax25/ax25 0x4502c65a asc2ax +EXPORT_SYMBOL net/ax25/ax25 0x53dea1ff ax2asc +EXPORT_SYMBOL net/ax25/ax25 0x5ba9660d ax25_find_cb +EXPORT_SYMBOL net/ax25/ax25 0x797d17f8 ax25_listen_register +EXPORT_SYMBOL net/ax25/ax25 0x8ede9e26 ax25_protocol_release +EXPORT_SYMBOL net/ax25/ax25 0x92a49d18 ax25_header_ops +EXPORT_SYMBOL net/ax25/ax25 0xc1444946 ax25cmp +EXPORT_SYMBOL net/ax25/ax25 0xd43ecbf1 null_ax25_address +EXPORT_SYMBOL net/ax25/ax25 0xe07e0d14 ax25_linkfail_release +EXPORT_SYMBOL net/ax25/ax25 0xf045b844 ax25_rebuild_header +EXPORT_SYMBOL net/ax25/ax25 0xf450a28a ax25_hard_header +EXPORT_SYMBOL net/ax25/ax25 0xffba2c38 ax25_listen_release +EXPORT_SYMBOL net/bluetooth/bluetooth 0x05640d1b bt_sock_link +EXPORT_SYMBOL net/bluetooth/bluetooth 0x0c86b02a l2cap_conn_get +EXPORT_SYMBOL net/bluetooth/bluetooth 0x0db94a4a l2cap_is_socket +EXPORT_SYMBOL net/bluetooth/bluetooth 0x18050982 bt_procfs_cleanup +EXPORT_SYMBOL net/bluetooth/bluetooth 0x1a1793cb bt_accept_unlink +EXPORT_SYMBOL net/bluetooth/bluetooth 0x2133d79a bt_sock_register +EXPORT_SYMBOL net/bluetooth/bluetooth 0x2989eedb hci_suspend_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x3ba2f2a6 hci_resume_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x3c68e08e bt_accept_enqueue +EXPORT_SYMBOL net/bluetooth/bluetooth 0x449ffa63 bt_procfs_init +EXPORT_SYMBOL net/bluetooth/bluetooth 0x476b55f1 hci_get_route +EXPORT_SYMBOL net/bluetooth/bluetooth 0x476d6e77 bt_sock_poll +EXPORT_SYMBOL net/bluetooth/bluetooth 0x4b59da12 l2cap_unregister_user +EXPORT_SYMBOL net/bluetooth/bluetooth 0x4e71c2fe bt_sock_ioctl +EXPORT_SYMBOL net/bluetooth/bluetooth 0x4f409b59 hci_unregister_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x64b2c8fa hci_recv_frame +EXPORT_SYMBOL net/bluetooth/bluetooth 0x6a2e69b2 hci_free_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x7413d58a l2cap_conn_put +EXPORT_SYMBOL net/bluetooth/bluetooth 0x7c640527 bt_info +EXPORT_SYMBOL net/bluetooth/bluetooth 0x82b724a8 __hci_cmd_sync +EXPORT_SYMBOL net/bluetooth/bluetooth 0x8ec04e86 hci_register_cb +EXPORT_SYMBOL net/bluetooth/bluetooth 0x8fea24bd bt_sock_unregister +EXPORT_SYMBOL net/bluetooth/bluetooth 0x91604adc hci_conn_check_secure +EXPORT_SYMBOL net/bluetooth/bluetooth 0x91a39063 hci_register_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x91c9a325 bt_to_errno +EXPORT_SYMBOL net/bluetooth/bluetooth 0x9bc527db bt_sock_stream_recvmsg +EXPORT_SYMBOL net/bluetooth/bluetooth 0x9d145e41 hci_unregister_cb +EXPORT_SYMBOL net/bluetooth/bluetooth 0xaecce4c7 bt_sock_unlink +EXPORT_SYMBOL net/bluetooth/bluetooth 0xb54591a2 bt_sock_wait_state +EXPORT_SYMBOL net/bluetooth/bluetooth 0xb583d699 bt_sock_reclassify_lock +EXPORT_SYMBOL net/bluetooth/bluetooth 0xb61a0c3b bt_err +EXPORT_SYMBOL net/bluetooth/bluetooth 0xb84dd4cf hci_alloc_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0xc2a9f8bd bt_sock_recvmsg +EXPORT_SYMBOL net/bluetooth/bluetooth 0xcc1fb551 baswap +EXPORT_SYMBOL net/bluetooth/bluetooth 0xd192187c hci_recv_stream_fragment +EXPORT_SYMBOL net/bluetooth/bluetooth 0xe2aa2e5b bt_accept_dequeue +EXPORT_SYMBOL net/bluetooth/bluetooth 0xe416bac8 __hci_cmd_sync_ev +EXPORT_SYMBOL net/bluetooth/bluetooth 0xe4354673 hci_conn_switch_role +EXPORT_SYMBOL net/bluetooth/bluetooth 0xea468f04 l2cap_register_user +EXPORT_SYMBOL net/bluetooth/bluetooth 0xf2282a12 hci_conn_security +EXPORT_SYMBOL net/bluetooth/bluetooth 0xf5919baf hci_recv_fragment +EXPORT_SYMBOL net/bridge/bridge 0xd4e9afd6 br_should_route_hook +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x02e1d60d ebt_unregister_table +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x3b273aac ebt_do_table +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0xd84bb430 ebt_register_table +EXPORT_SYMBOL net/caif/caif 0x069b8965 get_cfcnfg +EXPORT_SYMBOL net/caif/caif 0x1446b60a caif_client_register_refcnt +EXPORT_SYMBOL net/caif/caif 0x22242e19 caif_disconnect_client +EXPORT_SYMBOL net/caif/caif 0x2a09f713 cfpkt_fromnative +EXPORT_SYMBOL net/caif/caif 0x329dbd06 cfpkt_info +EXPORT_SYMBOL net/caif/caif 0x38701a7c cfcnfg_del_phy_layer +EXPORT_SYMBOL net/caif/caif 0x4a237e57 cfpkt_tonative +EXPORT_SYMBOL net/caif/caif 0x6a44fc70 cfpkt_extr_head +EXPORT_SYMBOL net/caif/caif 0x80d33e16 caif_enroll_dev +EXPORT_SYMBOL net/caif/caif 0x839ddb7b cfcnfg_set_phy_state +EXPORT_SYMBOL net/caif/caif 0x8b210597 caif_connect_client +EXPORT_SYMBOL net/caif/caif 0x966d7de2 cfpkt_add_head +EXPORT_SYMBOL net/caif/caif 0x9e3e305d cfpkt_set_prio +EXPORT_SYMBOL net/caif/caif 0xb7b6874e caif_free_client +EXPORT_SYMBOL net/caif/caif 0xc1d4bc62 cfcnfg_add_phy_layer +EXPORT_SYMBOL net/can/can 0x03f972bb can_proto_unregister +EXPORT_SYMBOL net/can/can 0x63b738d7 can_rx_unregister +EXPORT_SYMBOL net/can/can 0x782b066f can_send +EXPORT_SYMBOL net/can/can 0x970c611b can_ioctl +EXPORT_SYMBOL net/can/can 0xa84cfc8c can_rx_register +EXPORT_SYMBOL net/can/can 0xdbd5d7e1 can_proto_register +EXPORT_SYMBOL net/ceph/libceph 0x054a5253 ceph_copy_page_vector_to_user +EXPORT_SYMBOL net/ceph/libceph 0x05de2375 osd_req_op_extent_osd_data_bio +EXPORT_SYMBOL net/ceph/libceph 0x06e40e9a osd_req_op_extent_init +EXPORT_SYMBOL net/ceph/libceph 0x09290ab3 ceph_debugfs_init +EXPORT_SYMBOL net/ceph/libceph 0x0c616cdc ceph_osdc_build_request +EXPORT_SYMBOL net/ceph/libceph 0x10940306 ceph_pagelist_set_cursor +EXPORT_SYMBOL net/ceph/libceph 0x120055c8 osd_req_op_extent_osd_data_pagelist +EXPORT_SYMBOL net/ceph/libceph 0x1475bf0d ceph_pg_poolid_by_name +EXPORT_SYMBOL net/ceph/libceph 0x1527cef9 ceph_con_open +EXPORT_SYMBOL net/ceph/libceph 0x179b63e2 osd_req_op_cls_request_data_pages +EXPORT_SYMBOL net/ceph/libceph 0x197effcb ceph_osdc_release_request +EXPORT_SYMBOL net/ceph/libceph 0x1f2ae604 ceph_open_session +EXPORT_SYMBOL net/ceph/libceph 0x20d151cb ceph_osdc_setup +EXPORT_SYMBOL net/ceph/libceph 0x241695bb ceph_alloc_page_vector +EXPORT_SYMBOL net/ceph/libceph 0x2532d709 osd_req_op_init +EXPORT_SYMBOL net/ceph/libceph 0x2a0abdcc ceph_auth_destroy_authorizer +EXPORT_SYMBOL net/ceph/libceph 0x2d9b2c7e ceph_osdc_cancel_event +EXPORT_SYMBOL net/ceph/libceph 0x2e852d51 ceph_msg_data_add_pages +EXPORT_SYMBOL net/ceph/libceph 0x3158173e ceph_pagelist_release +EXPORT_SYMBOL net/ceph/libceph 0x34a64292 ceph_messenger_init +EXPORT_SYMBOL net/ceph/libceph 0x3abec91f ceph_pr_addr +EXPORT_SYMBOL net/ceph/libceph 0x3ce1217d osd_req_op_extent_osd_data_pages +EXPORT_SYMBOL net/ceph/libceph 0x3df0ec7c ceph_calc_ceph_pg +EXPORT_SYMBOL net/ceph/libceph 0x3f688151 ceph_put_snap_context +EXPORT_SYMBOL net/ceph/libceph 0x403fc3c8 ceph_copy_to_page_vector +EXPORT_SYMBOL net/ceph/libceph 0x4205ffd7 ceph_destroy_options +EXPORT_SYMBOL net/ceph/libceph 0x42cf35bb ceph_copy_user_to_page_vector +EXPORT_SYMBOL net/ceph/libceph 0x43c8d341 ceph_buffer_new +EXPORT_SYMBOL net/ceph/libceph 0x43d6cbc7 ceph_con_keepalive +EXPORT_SYMBOL net/ceph/libceph 0x43e458f6 ceph_file_part +EXPORT_SYMBOL net/ceph/libceph 0x43efd647 ceph_calc_file_object_mapping +EXPORT_SYMBOL net/ceph/libceph 0x4425f721 ceph_monc_do_statfs +EXPORT_SYMBOL net/ceph/libceph 0x466b85b8 libceph_compatible +EXPORT_SYMBOL net/ceph/libceph 0x4693db7d ceph_osdc_start_request +EXPORT_SYMBOL net/ceph/libceph 0x5063c491 ceph_release_page_vector +EXPORT_SYMBOL net/ceph/libceph 0x53423fa4 osd_req_op_watch_init +EXPORT_SYMBOL net/ceph/libceph 0x5379cea3 ceph_caps_for_mode +EXPORT_SYMBOL net/ceph/libceph 0x56e7c1cc ceph_create_client +EXPORT_SYMBOL net/ceph/libceph 0x5780d593 ceph_msg_new +EXPORT_SYMBOL net/ceph/libceph 0x57baf885 ceph_str_hash +EXPORT_SYMBOL net/ceph/libceph 0x59b4c27f ceph_osdc_writepages +EXPORT_SYMBOL net/ceph/libceph 0x5fc0c850 ceph_monc_open_session +EXPORT_SYMBOL net/ceph/libceph 0x5fe4b2fa ceph_pagelist_truncate +EXPORT_SYMBOL net/ceph/libceph 0x63758856 ceph_str_hash_name +EXPORT_SYMBOL net/ceph/libceph 0x6431b5f8 ceph_msg_data_add_pagelist +EXPORT_SYMBOL net/ceph/libceph 0x67eadf1f ceph_con_close +EXPORT_SYMBOL net/ceph/libceph 0x6b2e3bcd ceph_get_snap_context +EXPORT_SYMBOL net/ceph/libceph 0x6c5d5ac1 ceph_calc_pg_primary +EXPORT_SYMBOL net/ceph/libceph 0x6d2d06a1 ceph_pagelist_reserve +EXPORT_SYMBOL net/ceph/libceph 0x6ed41be2 ceph_pagelist_append +EXPORT_SYMBOL net/ceph/libceph 0x72c9dd7b ceph_osdc_unregister_linger_request +EXPORT_SYMBOL net/ceph/libceph 0x77692acb ceph_msg_last_put +EXPORT_SYMBOL net/ceph/libceph 0x7b62bc2b ceph_osdc_sync +EXPORT_SYMBOL net/ceph/libceph 0x7d3f439c ceph_auth_update_authorizer +EXPORT_SYMBOL net/ceph/libceph 0x88a930f9 ceph_monc_got_mdsmap +EXPORT_SYMBOL net/ceph/libceph 0x89502de5 osd_req_op_cls_response_data +EXPORT_SYMBOL net/ceph/libceph 0x8c8cc5fb osd_req_op_cls_init +EXPORT_SYMBOL net/ceph/libceph 0x940c5327 ceph_con_send +EXPORT_SYMBOL net/ceph/libceph 0x97cb7ed1 ceph_copy_from_page_vector +EXPORT_SYMBOL net/ceph/libceph 0x995f1cb6 ceph_compare_options +EXPORT_SYMBOL net/ceph/libceph 0x99e36571 ceph_osdc_cleanup +EXPORT_SYMBOL net/ceph/libceph 0x9b41adbf ceph_con_init +EXPORT_SYMBOL net/ceph/libceph 0x9f534f4d ceph_buffer_release +EXPORT_SYMBOL net/ceph/libceph 0xa40bd703 ceph_pagelist_free_reserve +EXPORT_SYMBOL net/ceph/libceph 0xad76f22e ceph_msg_dump +EXPORT_SYMBOL net/ceph/libceph 0xae3515ba ceph_create_snap_context +EXPORT_SYMBOL net/ceph/libceph 0xae6481e2 ceph_zero_page_vector_range +EXPORT_SYMBOL net/ceph/libceph 0xae7bc8ca ceph_monc_init +EXPORT_SYMBOL net/ceph/libceph 0xafb8a407 ceph_msgr_flush +EXPORT_SYMBOL net/ceph/libceph 0xafc5a6e8 ceph_osdc_new_request +EXPORT_SYMBOL net/ceph/libceph 0xb06af069 osd_req_op_raw_data_in_pages +EXPORT_SYMBOL net/ceph/libceph 0xb54676fa ceph_msg_type_name +EXPORT_SYMBOL net/ceph/libceph 0xb55a5a7d ceph_client_id +EXPORT_SYMBOL net/ceph/libceph 0xb6081d6d ceph_msgr_exit +EXPORT_SYMBOL net/ceph/libceph 0xbb6c6cd1 ceph_osdc_put_event +EXPORT_SYMBOL net/ceph/libceph 0xbd270b6e ceph_osdc_readpages +EXPORT_SYMBOL net/ceph/libceph 0xbda53c8c ceph_osdc_wait_request +EXPORT_SYMBOL net/ceph/libceph 0xc46676fb ceph_osdc_set_request_linger +EXPORT_SYMBOL net/ceph/libceph 0xc4a80955 ceph_debugfs_cleanup +EXPORT_SYMBOL net/ceph/libceph 0xc4b745ca ceph_auth_is_authenticated +EXPORT_SYMBOL net/ceph/libceph 0xc55de604 ceph_parse_options +EXPORT_SYMBOL net/ceph/libceph 0xc5eb66cb osd_req_op_extent_osd_data +EXPORT_SYMBOL net/ceph/libceph 0xc9f82b38 ceph_msgr_init +EXPORT_SYMBOL net/ceph/libceph 0xcb50a624 ceph_parse_ips +EXPORT_SYMBOL net/ceph/libceph 0xcbe7894a ceph_auth_create_authorizer +EXPORT_SYMBOL net/ceph/libceph 0xd0772b1b ceph_monc_create_snapid +EXPORT_SYMBOL net/ceph/libceph 0xd25123eb ceph_check_fsid +EXPORT_SYMBOL net/ceph/libceph 0xd25a9c56 ceph_osdc_create_event +EXPORT_SYMBOL net/ceph/libceph 0xd2c107bb ceph_flags_to_mode +EXPORT_SYMBOL net/ceph/libceph 0xd8ae7dc7 ceph_msg_data_add_bio +EXPORT_SYMBOL net/ceph/libceph 0xd8c098ca ceph_osdc_alloc_request +EXPORT_SYMBOL net/ceph/libceph 0xda385a42 __ceph_open_session +EXPORT_SYMBOL net/ceph/libceph 0xdabaa325 osd_req_op_cls_response_data_pages +EXPORT_SYMBOL net/ceph/libceph 0xde44a729 ceph_monc_validate_auth +EXPORT_SYMBOL net/ceph/libceph 0xe30e0f13 osd_req_op_cls_request_data_pagelist +EXPORT_SYMBOL net/ceph/libceph 0xe37815f2 ceph_put_page_vector +EXPORT_SYMBOL net/ceph/libceph 0xe4b0d642 ceph_destroy_client +EXPORT_SYMBOL net/ceph/libceph 0xe4fe46d9 ceph_auth_verify_authorizer_reply +EXPORT_SYMBOL net/ceph/libceph 0xe60375bc ceph_get_direct_page_vector +EXPORT_SYMBOL net/ceph/libceph 0xe82c9c32 ceph_pg_pool_name_by_id +EXPORT_SYMBOL net/ceph/libceph 0xed9f6dc3 ceph_auth_invalidate_authorizer +EXPORT_SYMBOL net/ceph/libceph 0xf1d15a44 ceph_monc_stop +EXPORT_SYMBOL net/ceph/libceph 0xf569c4c6 osd_req_op_extent_update +EXPORT_SYMBOL net/dccp/dccp_ipv4 0x0fbff141 dccp_syn_ack_timeout +EXPORT_SYMBOL net/ieee802154/ieee802154 0x058fabad ieee802154_nl_start_confirm +EXPORT_SYMBOL net/ieee802154/ieee802154 0x1d866b6a wpan_phy_find +EXPORT_SYMBOL net/ieee802154/ieee802154 0x36a35e27 ieee802154_nl_scan_confirm +EXPORT_SYMBOL net/ieee802154/ieee802154 0x5988581a ieee802154_nl_beacon_indic +EXPORT_SYMBOL net/ieee802154/ieee802154 0x64e66fdf wpan_phy_alloc +EXPORT_SYMBOL net/ieee802154/ieee802154 0x6f8a75e0 wpan_phy_unregister +EXPORT_SYMBOL net/ieee802154/ieee802154 0x76f80598 wpan_phy_free +EXPORT_SYMBOL net/ieee802154/ieee802154 0xd15a389b wpan_phy_register +EXPORT_SYMBOL net/ieee802154/ieee802154 0xd365ddea ieee802154_nl_disassoc_indic +EXPORT_SYMBOL net/ieee802154/ieee802154 0xd7606399 ieee802154_nl_disassoc_confirm +EXPORT_SYMBOL net/ieee802154/ieee802154 0xdaec793a wpan_phy_for_each +EXPORT_SYMBOL net/ieee802154/ieee802154 0xed05f57a ieee802154_nl_assoc_confirm +EXPORT_SYMBOL net/ieee802154/ieee802154 0xef3a8ab4 ieee802154_nl_assoc_indic +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0x19076628 arpt_register_table +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0x7587263a arpt_do_table +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0x808c3cf8 arpt_unregister_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0x18b526dc ipt_register_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0x1d0f0e30 ipt_do_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0x5fb6aeab ipt_unregister_table +EXPORT_SYMBOL net/ipv4/tunnel4 0xac61f5da xfrm4_tunnel_register +EXPORT_SYMBOL net/ipv4/tunnel4 0xd0125112 xfrm4_tunnel_deregister +EXPORT_SYMBOL net/ipv6/ip6_tunnel 0xfbbc0416 ip6_tnl_parse_tlv_enc_lim +EXPORT_SYMBOL net/ipv6/ip6_tunnel 0xfedc179f ip6_tnl_get_cap +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x4a1e5a92 ip6t_unregister_table +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x77fa4a07 ip6t_do_table +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0xa5704abc ip6t_register_table +EXPORT_SYMBOL net/ipv6/tunnel6 0x40ca50c0 xfrm6_tunnel_register +EXPORT_SYMBOL net/ipv6/tunnel6 0x9ee9d441 xfrm6_tunnel_deregister +EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0x9c7afcb3 xfrm6_tunnel_alloc_spi +EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0xced57117 xfrm6_tunnel_spi_lookup +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x35f04d26 ircomm_connect_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x4b496287 ircomm_control_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x4c6bd55d ircomm_close +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x537bd767 ircomm_open +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x612ce892 ircomm_flow_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x9b7a70ad ircomm_data_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0xb1479aad ircomm_connect_response +EXPORT_SYMBOL net/irda/ircomm/ircomm 0xce226414 ircomm_disconnect_request +EXPORT_SYMBOL net/irda/irda 0x01dbeb0e irias_delete_object +EXPORT_SYMBOL net/irda/irda 0x02420cbb irlmp_close_lsap +EXPORT_SYMBOL net/irda/irda 0x03be1420 irttp_open_tsap +EXPORT_SYMBOL net/irda/irda 0x06a3ee58 irias_new_integer_value +EXPORT_SYMBOL net/irda/irda 0x07d3647c irlmp_register_service +EXPORT_SYMBOL net/irda/irda 0x0bab6037 hashbin_remove +EXPORT_SYMBOL net/irda/irda 0x193ff7ff irlmp_disconnect_request +EXPORT_SYMBOL net/irda/irda 0x1a0baeb5 iriap_close +EXPORT_SYMBOL net/irda/irda 0x2036ad06 irda_param_insert +EXPORT_SYMBOL net/irda/irda 0x208d37c1 irttp_udata_request +EXPORT_SYMBOL net/irda/irda 0x22c00479 irlap_open +EXPORT_SYMBOL net/irda/irda 0x23a2eee7 hashbin_remove_this +EXPORT_SYMBOL net/irda/irda 0x33cbe2c6 proc_irda +EXPORT_SYMBOL net/irda/irda 0x359de411 irias_insert_object +EXPORT_SYMBOL net/irda/irda 0x369b9803 irttp_dup +EXPORT_SYMBOL net/irda/irda 0x3b0a2ab6 irias_find_object +EXPORT_SYMBOL net/irda/irda 0x3b9bdefe irias_add_octseq_attrib +EXPORT_SYMBOL net/irda/irda 0x3c4816c7 iriap_open +EXPORT_SYMBOL net/irda/irda 0x3effef36 irttp_data_request +EXPORT_SYMBOL net/irda/irda 0x428321fa hashbin_get_next +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 0x48d17824 irias_add_integer_attrib +EXPORT_SYMBOL net/irda/irda 0x48deb058 irttp_flow_request +EXPORT_SYMBOL net/irda/irda 0x62acf28c irias_add_string_attrib +EXPORT_SYMBOL net/irda/irda 0x648c7478 hashbin_get_first +EXPORT_SYMBOL net/irda/irda 0x66b4b5bf async_unwrap_char +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 0x70d4971e irlmp_open_lsap +EXPORT_SYMBOL net/irda/irda 0x763e54a4 irlmp_unregister_client +EXPORT_SYMBOL net/irda/irda 0x7957f728 irlmp_update_client +EXPORT_SYMBOL net/irda/irda 0x7d54adaf irias_new_object +EXPORT_SYMBOL net/irda/irda 0x7ff509a2 hashbin_lock_find +EXPORT_SYMBOL net/irda/irda 0x822b9cc8 alloc_irdadev +EXPORT_SYMBOL net/irda/irda 0x8cd99be0 hashbin_insert +EXPORT_SYMBOL net/irda/irda 0x8f136ae3 iriap_getvaluebyclass_request +EXPORT_SYMBOL net/irda/irda 0x91815586 irda_param_pack +EXPORT_SYMBOL net/irda/irda 0x993ad14b irda_param_extract_all +EXPORT_SYMBOL net/irda/irda 0x9c97465c irttp_connect_response +EXPORT_SYMBOL net/irda/irda 0x9e326eb3 hashbin_delete +EXPORT_SYMBOL net/irda/irda 0xa370c681 hashbin_find +EXPORT_SYMBOL net/irda/irda 0xa8ea6d8f irttp_connect_request +EXPORT_SYMBOL net/irda/irda 0xaaf53dbd irlap_close +EXPORT_SYMBOL net/irda/irda 0xaf03260f 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 0xc0bee29c hashbin_new +EXPORT_SYMBOL net/irda/irda 0xc1330b20 irda_notify_init +EXPORT_SYMBOL net/irda/irda 0xc725acc3 irlmp_connect_response +EXPORT_SYMBOL net/irda/irda 0xc926b22d async_wrap_skb +EXPORT_SYMBOL net/irda/irda 0xd6deeaae irda_setup_dma +EXPORT_SYMBOL net/irda/irda 0xdbc2387a irda_device_set_media_busy +EXPORT_SYMBOL net/irda/irda 0xde4c6b3c irlmp_service_to_hint +EXPORT_SYMBOL net/irda/irda 0xe1c99e92 irttp_disconnect_request +EXPORT_SYMBOL net/irda/irda 0xedd521c2 irlmp_get_discoveries +EXPORT_SYMBOL net/irda/irda 0xee4c4304 irttp_close_tsap +EXPORT_SYMBOL net/irda/irda 0xef53d2bd irlmp_connect_request +EXPORT_SYMBOL net/l2tp/l2tp_core 0xc3783971 l2tp_recv_common +EXPORT_SYMBOL net/lapb/lapb 0x1ca323ba lapb_register +EXPORT_SYMBOL net/lapb/lapb 0x7012d265 lapb_data_received +EXPORT_SYMBOL net/lapb/lapb 0x81711a6f lapb_data_request +EXPORT_SYMBOL net/lapb/lapb 0x915c0d27 lapb_setparms +EXPORT_SYMBOL net/lapb/lapb 0x9d099f90 lapb_connect_request +EXPORT_SYMBOL net/lapb/lapb 0xa3499b35 lapb_getparms +EXPORT_SYMBOL net/lapb/lapb 0xbfeb5c15 lapb_disconnect_request +EXPORT_SYMBOL net/lapb/lapb 0xd0e9980f lapb_unregister +EXPORT_SYMBOL net/llc/llc 0x2d17dbeb llc_set_station_handler +EXPORT_SYMBOL net/llc/llc 0x38b92846 llc_remove_pack +EXPORT_SYMBOL net/llc/llc 0x52d7b2fd llc_sap_list +EXPORT_SYMBOL net/llc/llc 0x642b018b llc_build_and_send_ui_pkt +EXPORT_SYMBOL net/llc/llc 0x6ebc1d6e llc_add_pack +EXPORT_SYMBOL net/llc/llc 0x6f2ff363 llc_sap_close +EXPORT_SYMBOL net/llc/llc 0x85f28968 llc_sap_open +EXPORT_SYMBOL net/llc/llc 0x999a220f llc_sap_find +EXPORT_SYMBOL net/llc/llc 0x9fbfc455 llc_mac_hdr_init +EXPORT_SYMBOL net/llc/llc 0xd629316a llc_sap_list_lock +EXPORT_SYMBOL net/mac80211/mac80211 0x009376f2 ieee80211_sta_set_buffered +EXPORT_SYMBOL net/mac80211/mac80211 0x038543df ieee80211_wake_queues +EXPORT_SYMBOL net/mac80211/mac80211 0x0570e628 ieee80211_sched_scan_stopped +EXPORT_SYMBOL net/mac80211/mac80211 0x0fb7e057 ieee80211_stop_rx_ba_session +EXPORT_SYMBOL net/mac80211/mac80211 0x13cad671 __ieee80211_get_tx_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0x21a2ae71 ieee80211_sta_ps_transition +EXPORT_SYMBOL net/mac80211/mac80211 0x21da6582 ieee80211_rate_control_unregister +EXPORT_SYMBOL net/mac80211/mac80211 0x2cbdc37d ieee80211_stop_tx_ba_cb_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0x30dc4170 ieee80211_tx_status +EXPORT_SYMBOL net/mac80211/mac80211 0x337dba24 ieee80211_pspoll_get +EXPORT_SYMBOL net/mac80211/mac80211 0x35434dad ieee80211_connection_loss +EXPORT_SYMBOL net/mac80211/mac80211 0x360277e1 ieee80211_generic_frame_duration +EXPORT_SYMBOL net/mac80211/mac80211 0x370c5405 __ieee80211_get_radio_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0x3d8bd5bc __ieee80211_get_assoc_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0x46220e2b ieee80211_get_tkip_p2k +EXPORT_SYMBOL net/mac80211/mac80211 0x4f52cacd ieee80211_queue_stopped +EXPORT_SYMBOL net/mac80211/mac80211 0x545951cd ieee80211_report_low_ack +EXPORT_SYMBOL net/mac80211/mac80211 0x55214604 ieee80211_free_hw +EXPORT_SYMBOL net/mac80211/mac80211 0x56bfd882 ieee80211_stop_queues +EXPORT_SYMBOL net/mac80211/mac80211 0x5b262052 ieee80211_queue_delayed_work +EXPORT_SYMBOL net/mac80211/mac80211 0x5c28cca5 ieee80211_get_tkip_p1k_iv +EXPORT_SYMBOL net/mac80211/mac80211 0x5cc9f3c5 ieee80211_send_bar +EXPORT_SYMBOL net/mac80211/mac80211 0x610c6f3a ieee80211_alloc_hw +EXPORT_SYMBOL net/mac80211/mac80211 0x6666e426 ieee80211_ap_probereq_get +EXPORT_SYMBOL net/mac80211/mac80211 0x67c50e7b ieee80211_iter_keys +EXPORT_SYMBOL net/mac80211/mac80211 0x6872e856 ieee80211_chswitch_done +EXPORT_SYMBOL net/mac80211/mac80211 0x68a418fc ieee80211_tx_status_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0x6e46a6e6 ieee80211_rts_duration +EXPORT_SYMBOL net/mac80211/mac80211 0x72d0e064 ieee80211_cqm_rssi_notify +EXPORT_SYMBOL net/mac80211/mac80211 0x76fc5f9f ieee80211_find_sta +EXPORT_SYMBOL net/mac80211/mac80211 0x7a2d5729 ieee80211_radar_detected +EXPORT_SYMBOL net/mac80211/mac80211 0x7c19de27 ieee80211_report_wowlan_wakeup +EXPORT_SYMBOL net/mac80211/mac80211 0x8dc7b555 ieee80211_disable_rssi_reports +EXPORT_SYMBOL net/mac80211/mac80211 0x91558f35 wiphy_to_ieee80211_hw +EXPORT_SYMBOL net/mac80211/mac80211 0x92b9434b ieee80211_sched_scan_results +EXPORT_SYMBOL net/mac80211/mac80211 0x9ac14c4c ieee80211_queue_work +EXPORT_SYMBOL net/mac80211/mac80211 0x9c336563 __ieee80211_create_tpt_led_trigger +EXPORT_SYMBOL net/mac80211/mac80211 0x9c5e6334 ieee80211_sta_eosp +EXPORT_SYMBOL net/mac80211/mac80211 0x9c9f0875 ieee80211_ctstoself_get +EXPORT_SYMBOL net/mac80211/mac80211 0x9e393f29 ieee80211_enable_rssi_reports +EXPORT_SYMBOL net/mac80211/mac80211 0xa068d07a __ieee80211_get_rx_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0xa1fc36c4 ieee80211_start_tx_ba_session +EXPORT_SYMBOL net/mac80211/mac80211 0xa402ec0e ieee80211_register_hw +EXPORT_SYMBOL net/mac80211/mac80211 0xa94c4cf1 ieee80211_proberesp_get +EXPORT_SYMBOL net/mac80211/mac80211 0xaa126c5b ieee80211_ctstoself_duration +EXPORT_SYMBOL net/mac80211/mac80211 0xaa157485 ieee80211_get_tkip_rx_p1k +EXPORT_SYMBOL net/mac80211/mac80211 0xb18e14c2 ieee80211_restart_hw +EXPORT_SYMBOL net/mac80211/mac80211 0xb686acbb ieee80211_nullfunc_get +EXPORT_SYMBOL net/mac80211/mac80211 0xbb7f49bf ieee80211_stop_queue +EXPORT_SYMBOL net/mac80211/mac80211 0xbe4f9fdf ieee80211_probereq_get +EXPORT_SYMBOL net/mac80211/mac80211 0xbf937512 ieee80211_sta_block_awake +EXPORT_SYMBOL net/mac80211/mac80211 0xc17623c6 ieee80211_rx_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0xc184ae69 ieee80211_beacon_loss +EXPORT_SYMBOL net/mac80211/mac80211 0xc7e9782e ieee80211_get_key_tx_seq +EXPORT_SYMBOL net/mac80211/mac80211 0xcae4ae01 ieee80211_unregister_hw +EXPORT_SYMBOL net/mac80211/mac80211 0xcbb729c8 ieee80211_rate_control_register +EXPORT_SYMBOL net/mac80211/mac80211 0xcccafe99 ieee80211_stop_tx_ba_session +EXPORT_SYMBOL net/mac80211/mac80211 0xddb47d52 ieee80211_get_key_rx_seq +EXPORT_SYMBOL net/mac80211/mac80211 0xdfa053e0 ieee80211_rts_get +EXPORT_SYMBOL net/mac80211/mac80211 0xe54d31af rate_control_send_low +EXPORT_SYMBOL net/mac80211/mac80211 0xe78120cf ieee80211_rx +EXPORT_SYMBOL net/mac80211/mac80211 0xe90e83c6 ieee80211_start_tx_ba_cb_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0xe9939e29 ieee80211_beacon_get_tim +EXPORT_SYMBOL net/mac80211/mac80211 0xe9fa654c ieee80211_free_txskb +EXPORT_SYMBOL net/mac80211/mac80211 0xea07f7a2 ieee80211_scan_completed +EXPORT_SYMBOL net/mac80211/mac80211 0xea763aec ieee80211_get_buffered_bc +EXPORT_SYMBOL net/mac80211/mac80211 0xeef566b5 rate_control_set_rates +EXPORT_SYMBOL net/mac80211/mac80211 0xf395de03 ieee80211_aes_cmac_calculate_k1_k2 +EXPORT_SYMBOL net/mac80211/mac80211 0xfad8d540 ieee80211_get_tx_rates +EXPORT_SYMBOL net/mac80211/mac80211 0xff8ded37 ieee80211_wake_queue +EXPORT_SYMBOL net/mac802154/mac802154 0x59f46ebf ieee802154_alloc_device +EXPORT_SYMBOL net/mac802154/mac802154 0x773d7b3f ieee802154_register_device +EXPORT_SYMBOL net/mac802154/mac802154 0x776772bf ieee802154_free_device +EXPORT_SYMBOL net/mac802154/mac802154 0xf171b592 ieee802154_rx_irqsafe +EXPORT_SYMBOL net/mac802154/mac802154 0xfddc516e ieee802154_unregister_device +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x0c8acc05 ip_vs_conn_out_get +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x1728962c register_ip_vs_app_inc +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x2ba47c6a ip_vs_proto_get +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x2e73c489 unregister_ip_vs_scheduler +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x3e9e9124 ip_vs_conn_new +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x44205990 register_ip_vs_app +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x4eec0626 ip_vs_nfct_expect_related +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x63f652e4 ip_vs_scheduler_err +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x66ea124f register_ip_vs_scheduler +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x77ff4e45 ip_vs_proto_data_get +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x8b0c298f ip_vs_tcp_conn_listen +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xcd1641b2 ip_vs_conn_put +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xd561a097 unregister_ip_vs_app +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xd831a1a2 ip_vs_proto_name +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xf59e44be ip_vs_conn_in_get +EXPORT_SYMBOL net/netfilter/nf_conntrack 0x24e44b7e nf_conntrack_untracked +EXPORT_SYMBOL net/netfilter/nf_conntrack 0x4365ce11 __nf_ct_ext_add_length +EXPORT_SYMBOL net/netfilter/nf_conntrack 0xd65051ce __nf_ct_ext_destroy +EXPORT_SYMBOL net/netfilter/nf_conntrack_pptp 0x827cc6a1 pptp_msg_name +EXPORT_SYMBOL net/netfilter/nf_conntrack_proto_gre 0xfd695225 nf_ct_gre_keymap_flush +EXPORT_SYMBOL net/netfilter/nf_nat 0x058941d0 nf_nat_follow_master +EXPORT_SYMBOL net/netfilter/nf_nat 0x23fe2499 nf_nat_used_tuple +EXPORT_SYMBOL net/netfilter/nf_nat 0x4342ab36 nf_xfrm_me_harder +EXPORT_SYMBOL net/netfilter/nf_nat 0x5bd057c6 nf_nat_setup_info +EXPORT_SYMBOL net/netfilter/nf_nat 0xef46a48e nf_nat_mangle_udp_packet +EXPORT_SYMBOL net/netfilter/nf_nat 0xf09a3af2 __nf_nat_mangle_tcp_packet +EXPORT_SYMBOL net/netfilter/x_tables 0x07e015c0 xt_register_target +EXPORT_SYMBOL net/netfilter/x_tables 0x08c473b7 xt_alloc_table_info +EXPORT_SYMBOL net/netfilter/x_tables 0x10836cca xt_find_target +EXPORT_SYMBOL net/netfilter/x_tables 0x39cf190e xt_unregister_targets +EXPORT_SYMBOL net/netfilter/x_tables 0x5a35c56b xt_register_matches +EXPORT_SYMBOL net/netfilter/x_tables 0x5e580203 xt_unregister_match +EXPORT_SYMBOL net/netfilter/x_tables 0x60ab3724 xt_register_match +EXPORT_SYMBOL net/netfilter/x_tables 0x8b965d75 xt_unregister_target +EXPORT_SYMBOL net/netfilter/x_tables 0xb28f5ef1 xt_free_table_info +EXPORT_SYMBOL net/netfilter/x_tables 0xc37cbfea xt_register_targets +EXPORT_SYMBOL net/netfilter/x_tables 0xe6ae4275 xt_unregister_matches +EXPORT_SYMBOL net/netfilter/x_tables 0xee7dde3a xt_find_match +EXPORT_SYMBOL net/nfc/hci/hci 0x08b019e6 nfc_hci_send_event +EXPORT_SYMBOL net/nfc/hci/hci 0x0f9f7255 nfc_hci_connect_gate +EXPORT_SYMBOL net/nfc/hci/hci 0x2b9718ad nfc_hci_disconnect_gate +EXPORT_SYMBOL net/nfc/hci/hci 0x356e7804 nfc_hci_free_device +EXPORT_SYMBOL net/nfc/hci/hci 0x40f60de5 nfc_hci_driver_failure +EXPORT_SYMBOL net/nfc/hci/hci 0x43028a27 nfc_hci_result_to_errno +EXPORT_SYMBOL net/nfc/hci/hci 0x4348e759 nfc_hci_set_clientdata +EXPORT_SYMBOL net/nfc/hci/hci 0x51aab97b nfc_hci_send_cmd +EXPORT_SYMBOL net/nfc/hci/hci 0x5a5d8569 nfc_hci_get_param +EXPORT_SYMBOL net/nfc/hci/hci 0x63681e88 nfc_hci_register_device +EXPORT_SYMBOL net/nfc/hci/hci 0x6e711aac nfc_hci_get_clientdata +EXPORT_SYMBOL net/nfc/hci/hci 0x7bf734dc nfc_hci_recv_frame +EXPORT_SYMBOL net/nfc/hci/hci 0x93c40b1a nfc_hci_target_discovered +EXPORT_SYMBOL net/nfc/hci/hci 0x9c7a15ff nfc_hci_unregister_device +EXPORT_SYMBOL net/nfc/hci/hci 0xac18aece nfc_hci_set_param +EXPORT_SYMBOL net/nfc/hci/hci 0xbca0b4fd nfc_hci_sak_to_protocol +EXPORT_SYMBOL net/nfc/hci/hci 0xbea60d24 nfc_hci_send_response +EXPORT_SYMBOL net/nfc/hci/hci 0xdb2cf7d4 nfc_hci_allocate_device +EXPORT_SYMBOL net/nfc/hci/hci 0xe60bb447 nfc_hci_send_cmd_async +EXPORT_SYMBOL net/nfc/hci/hci 0xff937fcc nfc_hci_disconnect_all_gates +EXPORT_SYMBOL net/nfc/nci/nci 0x28ac4b7c nci_recv_frame +EXPORT_SYMBOL net/nfc/nci/nci 0x6828b31c nci_free_device +EXPORT_SYMBOL net/nfc/nci/nci 0x8d7baa34 nci_register_device +EXPORT_SYMBOL net/nfc/nci/nci 0x97fd3e76 nci_unregister_device +EXPORT_SYMBOL net/nfc/nci/nci 0xba490602 nci_to_errno +EXPORT_SYMBOL net/nfc/nci/nci 0xf9d7a08b nci_allocate_device +EXPORT_SYMBOL net/nfc/nfc 0x1296ea1e nfc_driver_failure +EXPORT_SYMBOL net/nfc/nfc 0x23f56545 nfc_alloc_recv_skb +EXPORT_SYMBOL net/nfc/nfc 0x24d6fcba nfc_register_device +EXPORT_SYMBOL net/nfc/nfc 0x40d8c5bd nfc_tm_deactivated +EXPORT_SYMBOL net/nfc/nfc 0x42428842 nfc_allocate_device +EXPORT_SYMBOL net/nfc/nfc 0x4493d8ea nfc_get_local_general_bytes +EXPORT_SYMBOL net/nfc/nfc 0x5bb1ee4f nfc_class +EXPORT_SYMBOL net/nfc/nfc 0x6f20df9d nfc_proto_unregister +EXPORT_SYMBOL net/nfc/nfc 0x89832fff nfc_tm_data_received +EXPORT_SYMBOL net/nfc/nfc 0x8a5fd9a4 nfc_tm_activated +EXPORT_SYMBOL net/nfc/nfc 0x99b76fdf nfc_dep_link_is_up +EXPORT_SYMBOL net/nfc/nfc 0xa17afaa7 nfc_targets_found +EXPORT_SYMBOL net/nfc/nfc 0xaefa73c8 nfc_target_lost +EXPORT_SYMBOL net/nfc/nfc 0xb82273b1 nfc_set_remote_general_bytes +EXPORT_SYMBOL net/nfc/nfc 0xcdfea778 nfc_fw_download_done +EXPORT_SYMBOL net/nfc/nfc 0xe4b6f5d8 nfc_proto_register +EXPORT_SYMBOL net/nfc/nfc 0xedc5ad3a nfc_add_se +EXPORT_SYMBOL net/nfc/nfc 0xfc98270f nfc_unregister_device +EXPORT_SYMBOL net/nfc/nfc 0xfcb7e36e nfc_remove_se +EXPORT_SYMBOL net/phonet/phonet 0x36534c92 phonet_proto_register +EXPORT_SYMBOL net/phonet/phonet 0x5b727f55 phonet_proto_unregister +EXPORT_SYMBOL net/phonet/phonet 0x6943c5a8 phonet_stream_ops +EXPORT_SYMBOL net/phonet/phonet 0x86485ded pn_sock_hash +EXPORT_SYMBOL net/phonet/phonet 0x8b0e9af1 pn_sock_get_port +EXPORT_SYMBOL net/phonet/phonet 0xc8f8144d phonet_header_ops +EXPORT_SYMBOL net/phonet/phonet 0xe897d141 pn_sock_unhash +EXPORT_SYMBOL net/phonet/phonet 0xfdaf876a pn_skb_send +EXPORT_SYMBOL net/rds/rds 0x5031b8c5 rds_str_array +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x10243d8f rxrpc_kernel_abort_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x1590a44e rxrpc_kernel_accept_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x21e99211 rxrpc_kernel_end_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x29dd1995 rxrpc_kernel_data_delivered +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x2a3228b4 rxrpc_get_null_key +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x31878369 rxrpc_kernel_is_data_last +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x31b6d9cf key_type_rxrpc +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x5433adec rxrpc_kernel_free_skb +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x59199a09 rxrpc_kernel_reject_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x6e4ac1a1 rxrpc_kernel_send_data +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x7cb7a753 rxrpc_kernel_get_error_number +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xa3310e0c rxrpc_kernel_intercept_rx_messages +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xc7638a2c rxrpc_kernel_get_abort_code +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xd3b815bc rxrpc_get_server_data_key +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xeb0ce088 rxrpc_kernel_begin_call +EXPORT_SYMBOL net/sctp/sctp 0x7fd92d9c sctp_do_peeloff +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0x01cf7ead gss_mech_put +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0x29527e68 gss_pseudoflavor_to_service +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0xb9345bab gss_mech_get +EXPORT_SYMBOL net/sunrpc/sunrpc 0x7c92eab9 svc_pool_stats_open +EXPORT_SYMBOL net/wimax/wimax 0xc4c4538d wimax_rfkill +EXPORT_SYMBOL net/wimax/wimax 0xdaf8eafa wimax_reset +EXPORT_SYMBOL net/wireless/cfg80211 0x09c64fbd ieee80211_frequency_to_channel +EXPORT_SYMBOL net/wireless/cfg80211 0x0b3365ab ieee80211_data_to_8023 +EXPORT_SYMBOL net/wireless/cfg80211 0x100a1c60 cfg80211_get_bss +EXPORT_SYMBOL net/wireless/cfg80211 0x100b37d2 cfg80211_del_sta +EXPORT_SYMBOL net/wireless/cfg80211 0x113544e9 cfg80211_scan_done +EXPORT_SYMBOL net/wireless/cfg80211 0x1879fcbd bridge_tunnel_header +EXPORT_SYMBOL net/wireless/cfg80211 0x18b5d139 cfg80211_connect_result +EXPORT_SYMBOL net/wireless/cfg80211 0x19e03378 cfg80211_get_p2p_attr +EXPORT_SYMBOL net/wireless/cfg80211 0x20b8e3cb cfg80211_rx_spurious_frame +EXPORT_SYMBOL net/wireless/cfg80211 0x22cbaa24 cfg80211_mgmt_tx_status +EXPORT_SYMBOL net/wireless/cfg80211 0x24326426 wiphy_rfkill_set_hw_state +EXPORT_SYMBOL net/wireless/cfg80211 0x2ccd868d cfg80211_testmode_alloc_event_skb +EXPORT_SYMBOL net/wireless/cfg80211 0x2faed031 cfg80211_conn_failed +EXPORT_SYMBOL net/wireless/cfg80211 0x30cdfdbb wiphy_unregister +EXPORT_SYMBOL net/wireless/cfg80211 0x32c670e9 cfg80211_pmksa_candidate_notify +EXPORT_SYMBOL net/wireless/cfg80211 0x3398b145 cfg80211_tdls_oper_request +EXPORT_SYMBOL net/wireless/cfg80211 0x35ac202b freq_reg_info +EXPORT_SYMBOL net/wireless/cfg80211 0x386d7c22 cfg80211_rx_assoc_resp +EXPORT_SYMBOL net/wireless/cfg80211 0x393842dd cfg80211_sched_scan_results +EXPORT_SYMBOL net/wireless/cfg80211 0x3b3421e5 ieee80211_data_from_8023 +EXPORT_SYMBOL net/wireless/cfg80211 0x3b603e05 cfg80211_inform_bss_frame +EXPORT_SYMBOL net/wireless/cfg80211 0x3f7f84bf cfg80211_cqm_pktloss_notify +EXPORT_SYMBOL net/wireless/cfg80211 0x406a8302 cfg80211_chandef_valid +EXPORT_SYMBOL net/wireless/cfg80211 0x4a4bf488 cfg80211_classify8021d +EXPORT_SYMBOL net/wireless/cfg80211 0x4c3b5878 ieee80211_get_response_rate +EXPORT_SYMBOL net/wireless/cfg80211 0x50f099d3 cfg80211_michael_mic_failure +EXPORT_SYMBOL net/wireless/cfg80211 0x5690870f ieee80211_amsdu_to_8023s +EXPORT_SYMBOL net/wireless/cfg80211 0x58638ed1 cfg80211_check_station_change +EXPORT_SYMBOL net/wireless/cfg80211 0x596f98d9 cfg80211_reg_can_beacon +EXPORT_SYMBOL net/wireless/cfg80211 0x60129770 cfg80211_inform_bss +EXPORT_SYMBOL net/wireless/cfg80211 0x644560ae cfg80211_ibss_joined +EXPORT_SYMBOL net/wireless/cfg80211 0x6676f998 cfg80211_probe_status +EXPORT_SYMBOL net/wireless/cfg80211 0x69b18f43 rfc1042_header +EXPORT_SYMBOL net/wireless/cfg80211 0x6addf46f wiphy_apply_custom_regulatory +EXPORT_SYMBOL net/wireless/cfg80211 0x6d6cb9ad ieee80211_operating_class_to_band +EXPORT_SYMBOL net/wireless/cfg80211 0x6e9a3b5d cfg80211_ready_on_channel +EXPORT_SYMBOL net/wireless/cfg80211 0x76f77d1a cfg80211_unlink_bss +EXPORT_SYMBOL net/wireless/cfg80211 0x7e6a48e5 cfg80211_testmode_reply +EXPORT_SYMBOL net/wireless/cfg80211 0x7ef39823 ieee80211_hdrlen +EXPORT_SYMBOL net/wireless/cfg80211 0x7fe1a403 cfg80211_find_ie +EXPORT_SYMBOL net/wireless/cfg80211 0x84bc1b05 wiphy_free +EXPORT_SYMBOL net/wireless/cfg80211 0x8701beac cfg80211_rx_mgmt +EXPORT_SYMBOL net/wireless/cfg80211 0x8c8849dd cfg80211_roamed_bss +EXPORT_SYMBOL net/wireless/cfg80211 0x8cd85e3b cfg80211_new_sta +EXPORT_SYMBOL net/wireless/cfg80211 0x928e9cd4 wiphy_rfkill_stop_polling +EXPORT_SYMBOL net/wireless/cfg80211 0x92c0c538 ieee80211_bss_get_ie +EXPORT_SYMBOL net/wireless/cfg80211 0x936537dd cfg80211_sched_scan_stopped +EXPORT_SYMBOL net/wireless/cfg80211 0x979378cd cfg80211_put_bss +EXPORT_SYMBOL net/wireless/cfg80211 0x982e6b6d ieee80211_radiotap_iterator_init +EXPORT_SYMBOL net/wireless/cfg80211 0x9862a48c cfg80211_gtk_rekey_notify +EXPORT_SYMBOL net/wireless/cfg80211 0x9ab41a13 cfg80211_testmode_event +EXPORT_SYMBOL net/wireless/cfg80211 0xa061dd89 cfg80211_chandef_usable +EXPORT_SYMBOL net/wireless/cfg80211 0xa1425906 ieee80211_channel_to_frequency +EXPORT_SYMBOL net/wireless/cfg80211 0xa197b1ff ieee80211_get_mesh_hdrlen +EXPORT_SYMBOL net/wireless/cfg80211 0xa695817a cfg80211_cqm_txe_notify +EXPORT_SYMBOL net/wireless/cfg80211 0xa6e28fb7 cfg80211_report_obss_beacon +EXPORT_SYMBOL net/wireless/cfg80211 0xa7ae1c2e cfg80211_assoc_timeout +EXPORT_SYMBOL net/wireless/cfg80211 0xabaa6afc cfg80211_cqm_rssi_notify +EXPORT_SYMBOL net/wireless/cfg80211 0xaf1c3191 cfg80211_rx_mlme_mgmt +EXPORT_SYMBOL net/wireless/cfg80211 0xb14caef1 cfg80211_roamed +EXPORT_SYMBOL net/wireless/cfg80211 0xb372bd45 cfg80211_remain_on_channel_expired +EXPORT_SYMBOL net/wireless/cfg80211 0xb4c326f3 cfg80211_cac_event +EXPORT_SYMBOL net/wireless/cfg80211 0xba895084 cfg80211_testmode_alloc_reply_skb +EXPORT_SYMBOL net/wireless/cfg80211 0xc0b81dbe cfg80211_tx_mlme_mgmt +EXPORT_SYMBOL net/wireless/cfg80211 0xc15c8611 cfg80211_chandef_create +EXPORT_SYMBOL net/wireless/cfg80211 0xc276d83c cfg80211_unregister_wdev +EXPORT_SYMBOL net/wireless/cfg80211 0xc63f1b81 ieee80211_radiotap_iterator_next +EXPORT_SYMBOL net/wireless/cfg80211 0xc8a3df6d cfg80211_ch_switch_notify +EXPORT_SYMBOL net/wireless/cfg80211 0xcaefb781 cfg80211_notify_new_peer_candidate +EXPORT_SYMBOL net/wireless/cfg80211 0xccb7be94 regulatory_hint +EXPORT_SYMBOL net/wireless/cfg80211 0xcda60248 cfg80211_disconnected +EXPORT_SYMBOL net/wireless/cfg80211 0xcf618a57 cfg80211_calculate_bitrate +EXPORT_SYMBOL net/wireless/cfg80211 0xd281c234 cfg80211_auth_timeout +EXPORT_SYMBOL net/wireless/cfg80211 0xd50bb407 cfg80211_ref_bss +EXPORT_SYMBOL net/wireless/cfg80211 0xd626e77a cfg80211_rx_unexpected_4addr_frame +EXPORT_SYMBOL net/wireless/cfg80211 0xdcd1fa45 cfg80211_report_wowlan_wakeup +EXPORT_SYMBOL net/wireless/cfg80211 0xe0549e7f wiphy_register +EXPORT_SYMBOL net/wireless/cfg80211 0xe08e2264 wiphy_new +EXPORT_SYMBOL net/wireless/cfg80211 0xe2dbb43a cfg80211_rx_unprot_mlme_mgmt +EXPORT_SYMBOL net/wireless/cfg80211 0xe3167eca ieee80211_mandatory_rates +EXPORT_SYMBOL net/wireless/cfg80211 0xe69b3560 ieee80211_get_hdrlen_from_skb +EXPORT_SYMBOL net/wireless/cfg80211 0xea16ee99 __ieee80211_get_channel +EXPORT_SYMBOL net/wireless/cfg80211 0xee42db3c cfg80211_chandef_compatible +EXPORT_SYMBOL net/wireless/cfg80211 0xf6b54dbb cfg80211_crit_proto_stopped +EXPORT_SYMBOL net/wireless/cfg80211 0xfc8d69e6 cfg80211_ft_event +EXPORT_SYMBOL net/wireless/cfg80211 0xfe299f89 cfg80211_radar_event +EXPORT_SYMBOL net/wireless/cfg80211 0xfed4d591 cfg80211_find_vendor_ie +EXPORT_SYMBOL net/wireless/cfg80211 0xffe4f230 wiphy_rfkill_start_polling +EXPORT_SYMBOL net/wireless/lib80211 0x2d0f99e5 print_ssid +EXPORT_SYMBOL net/wireless/lib80211 0x3b6d3b60 lib80211_crypt_info_init +EXPORT_SYMBOL net/wireless/lib80211 0x55fe712d lib80211_register_crypto_ops +EXPORT_SYMBOL net/wireless/lib80211 0x6bb5e33b lib80211_crypt_delayed_deinit +EXPORT_SYMBOL net/wireless/lib80211 0x746073c6 lib80211_crypt_info_free +EXPORT_SYMBOL net/wireless/lib80211 0x76efe6e1 lib80211_unregister_crypto_ops +EXPORT_SYMBOL net/wireless/lib80211 0x7e0fe06c lib80211_get_crypto_ops +EXPORT_SYMBOL sound/ac97_bus 0xd4ea002a ac97_bus_type +EXPORT_SYMBOL sound/core/seq/snd-seq 0x1a724fcc snd_seq_kernel_client_ctl +EXPORT_SYMBOL sound/core/seq/snd-seq 0x2345ad38 snd_seq_kernel_client_enqueue_blocking +EXPORT_SYMBOL sound/core/seq/snd-seq 0x3061c52d snd_use_lock_sync_helper +EXPORT_SYMBOL sound/core/seq/snd-seq 0x3fb4d161 snd_seq_kernel_client_dispatch +EXPORT_SYMBOL sound/core/seq/snd-seq 0x53cf4695 snd_seq_create_kernel_client +EXPORT_SYMBOL sound/core/seq/snd-seq 0x6bb71038 snd_seq_delete_kernel_client +EXPORT_SYMBOL sound/core/seq/snd-seq 0x7ac2f329 snd_seq_expand_var_event +EXPORT_SYMBOL sound/core/seq/snd-seq 0x7b8699eb snd_seq_event_port_detach +EXPORT_SYMBOL sound/core/seq/snd-seq 0x975e9675 snd_seq_event_port_attach +EXPORT_SYMBOL sound/core/seq/snd-seq 0xb0548d92 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 0x3a57f235 snd_seq_autoload_unlock +EXPORT_SYMBOL sound/core/seq/snd-seq-device 0x4bc9f3d8 snd_seq_device_new +EXPORT_SYMBOL sound/core/seq/snd-seq-device 0x6339b6d0 snd_seq_device_load_drivers +EXPORT_SYMBOL sound/core/seq/snd-seq-device 0x9bfdf306 snd_seq_device_register_driver +EXPORT_SYMBOL sound/core/seq/snd-seq-device 0xb90668b2 snd_seq_autoload_lock +EXPORT_SYMBOL sound/core/seq/snd-seq-device 0xc622fb29 snd_seq_device_unregister_driver +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-emul 0x6ea09972 snd_midi_channel_alloc_set +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-emul 0x833a3e07 snd_midi_channel_set_clear +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-emul 0xb9948d2c snd_midi_channel_free_set +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-emul 0xf0a1fdb3 snd_midi_process_event +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x2b51b084 snd_midi_event_free +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x350963b4 snd_midi_event_decode +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x7f62d029 snd_midi_event_encode +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x83914b9a snd_midi_event_no_status +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x92ee6bb0 snd_midi_event_reset_decode +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x9e7d3f0f snd_midi_event_reset_encode +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0xbc141dfc snd_midi_event_encode_byte +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0xf2bf1549 snd_midi_event_new +EXPORT_SYMBOL sound/core/seq/snd-seq-virmidi 0x12f76672 snd_virmidi_new +EXPORT_SYMBOL sound/core/snd 0x0a10e129 snd_card_disconnect +EXPORT_SYMBOL sound/core/snd 0x0bb8bb22 snd_card_unref +EXPORT_SYMBOL sound/core/snd 0x0f1c4146 snd_info_register +EXPORT_SYMBOL sound/core/snd 0x123d7e88 snd_add_device_sysfs_file +EXPORT_SYMBOL sound/core/snd 0x14be32e9 _snd_ctl_add_slave +EXPORT_SYMBOL sound/core/snd 0x18e1683f snd_dma_program +EXPORT_SYMBOL sound/core/snd 0x191e88cf snd_dma_pointer +EXPORT_SYMBOL sound/core/snd 0x1c7aeede snd_card_free +EXPORT_SYMBOL sound/core/snd 0x241a055c snd_card_free_when_closed +EXPORT_SYMBOL sound/core/snd 0x24a94b26 snd_info_get_line +EXPORT_SYMBOL sound/core/snd 0x26cd3fd6 snd_ctl_add +EXPORT_SYMBOL sound/core/snd 0x2722d5c0 snd_info_free_entry +EXPORT_SYMBOL sound/core/snd 0x29206b59 snd_device_new +EXPORT_SYMBOL sound/core/snd 0x2ae3deaa release_and_free_resource +EXPORT_SYMBOL sound/core/snd 0x2bf00d8b snd_jack_report +EXPORT_SYMBOL sound/core/snd 0x3036919b snd_jack_set_parent +EXPORT_SYMBOL sound/core/snd 0x3971b4df snd_ecards_limit +EXPORT_SYMBOL sound/core/snd 0x399621ab snd_register_device_for_dev +EXPORT_SYMBOL sound/core/snd 0x3c86d1a1 snd_jack_new +EXPORT_SYMBOL sound/core/snd 0x441057f5 snd_card_set_id +EXPORT_SYMBOL sound/core/snd 0x4a3ea5c0 snd_request_card +EXPORT_SYMBOL sound/core/snd 0x4b015768 snd_iprintf +EXPORT_SYMBOL sound/core/snd 0x52bf131b snd_card_register +EXPORT_SYMBOL sound/core/snd 0x5bf56bb8 snd_cards +EXPORT_SYMBOL sound/core/snd 0x5d10f326 snd_info_create_module_entry +EXPORT_SYMBOL sound/core/snd 0x602c96f0 copy_to_user_fromio +EXPORT_SYMBOL sound/core/snd 0x70c15ac1 snd_dma_disable +EXPORT_SYMBOL sound/core/snd 0x744b2720 snd_info_create_card_entry +EXPORT_SYMBOL sound/core/snd 0x78621656 snd_ctl_unregister_ioctl +EXPORT_SYMBOL sound/core/snd 0x7ca9fec9 snd_device_register +EXPORT_SYMBOL sound/core/snd 0x7cf8cf21 snd_ctl_make_virtual_master +EXPORT_SYMBOL sound/core/snd 0x81b69e41 snd_ctl_enum_info +EXPORT_SYMBOL sound/core/snd 0x86827f25 snd_ctl_replace +EXPORT_SYMBOL sound/core/snd 0x8f595b11 snd_major +EXPORT_SYMBOL sound/core/snd 0x9081d23b snd_ctl_find_id +EXPORT_SYMBOL sound/core/snd 0x940cd698 snd_ctl_boolean_mono_info +EXPORT_SYMBOL sound/core/snd 0x94678bc4 snd_card_create +EXPORT_SYMBOL sound/core/snd 0x9987e42b snd_card_file_remove +EXPORT_SYMBOL sound/core/snd 0x9c2fd25b snd_ctl_boolean_stereo_info +EXPORT_SYMBOL sound/core/snd 0x9e6d79f8 snd_info_get_str +EXPORT_SYMBOL sound/core/snd 0xa0fd2427 snd_pci_quirk_lookup_id +EXPORT_SYMBOL sound/core/snd 0xa32db37a snd_card_proc_new +EXPORT_SYMBOL sound/core/snd 0xa4520ebb snd_ctl_notify +EXPORT_SYMBOL sound/core/snd 0xaaa11bb3 snd_ctl_register_ioctl +EXPORT_SYMBOL sound/core/snd 0xb28ae1cb snd_ctl_remove +EXPORT_SYMBOL sound/core/snd 0xb2e5ae4a snd_lookup_minor_data +EXPORT_SYMBOL sound/core/snd 0xb8ba608d snd_pci_quirk_lookup +EXPORT_SYMBOL sound/core/snd 0xba4bc949 snd_jack_set_key +EXPORT_SYMBOL sound/core/snd 0xc0f5df41 snd_ctl_remove_id +EXPORT_SYMBOL sound/core/snd 0xc1e0b284 snd_device_free +EXPORT_SYMBOL sound/core/snd 0xc85c0c4e snd_ctl_find_numid +EXPORT_SYMBOL sound/core/snd 0xce3ca308 copy_from_user_toio +EXPORT_SYMBOL sound/core/snd 0xcf4ab0e1 snd_unregister_device +EXPORT_SYMBOL sound/core/snd 0xd1cec9b4 snd_ctl_free_one +EXPORT_SYMBOL sound/core/snd 0xe4937738 snd_seq_root +EXPORT_SYMBOL sound/core/snd 0xe4b5f978 snd_power_wait +EXPORT_SYMBOL sound/core/snd 0xe5611ddc snd_component_add +EXPORT_SYMBOL sound/core/snd 0xefe1f8cb snd_card_file_add +EXPORT_SYMBOL sound/core/snd 0xf397a3fc snd_ctl_rename_id +EXPORT_SYMBOL sound/core/snd 0xf5956db6 snd_ctl_new1 +EXPORT_SYMBOL sound/core/snd-hwdep 0x440352e6 snd_hwdep_new +EXPORT_SYMBOL sound/core/snd-page-alloc 0x20424e2a snd_sgbuf_get_chunk_size +EXPORT_SYMBOL sound/core/snd-page-alloc 0x3b91f3af snd_free_pages +EXPORT_SYMBOL sound/core/snd-page-alloc 0x5e22cbba snd_dma_get_reserved_buf +EXPORT_SYMBOL sound/core/snd-page-alloc 0x6d082c8a snd_dma_alloc_pages_fallback +EXPORT_SYMBOL sound/core/snd-page-alloc 0x8bfaa14b snd_dma_free_pages +EXPORT_SYMBOL sound/core/snd-page-alloc 0x97d44148 snd_dma_alloc_pages +EXPORT_SYMBOL sound/core/snd-page-alloc 0x9d572cd0 snd_dma_reserve_buf +EXPORT_SYMBOL sound/core/snd-page-alloc 0xade88e76 snd_malloc_pages +EXPORT_SYMBOL sound/core/snd-pcm 0x0283dfe3 _snd_pcm_hw_params_any +EXPORT_SYMBOL sound/core/snd-pcm 0x04cda566 snd_interval_refine +EXPORT_SYMBOL sound/core/snd-pcm 0x0c4071f4 snd_pcm_hw_refine +EXPORT_SYMBOL sound/core/snd-pcm 0x1346d5b5 snd_pcm_notify +EXPORT_SYMBOL sound/core/snd-pcm 0x196d34f9 snd_pcm_hw_rule_add +EXPORT_SYMBOL sound/core/snd-pcm 0x1d027e4b snd_pcm_format_signed +EXPORT_SYMBOL sound/core/snd-pcm 0x1fb1b16e snd_pcm_lib_free_pages +EXPORT_SYMBOL sound/core/snd-pcm 0x240632b2 snd_pcm_mmap_data +EXPORT_SYMBOL sound/core/snd-pcm 0x2860eb10 snd_pcm_hw_constraint_step +EXPORT_SYMBOL sound/core/snd-pcm 0x2e7d64dc snd_pcm_stop +EXPORT_SYMBOL sound/core/snd-pcm 0x3456a642 snd_pcm_new +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 0x3a0d5062 snd_pcm_new_internal +EXPORT_SYMBOL sound/core/snd-pcm 0x3bfd44b8 snd_pcm_limit_hw_rates +EXPORT_SYMBOL sound/core/snd-pcm 0x40dd24d9 snd_pcm_hw_constraint_ratnums +EXPORT_SYMBOL sound/core/snd-pcm 0x42ac8e23 snd_pcm_lib_preallocate_pages_for_all +EXPORT_SYMBOL sound/core/snd-pcm 0x495e672e snd_pcm_debug_name +EXPORT_SYMBOL sound/core/snd-pcm 0x4d9b6d35 snd_pcm_format_size +EXPORT_SYMBOL sound/core/snd-pcm 0x4f718a8b snd_pcm_set_ops +EXPORT_SYMBOL sound/core/snd-pcm 0x4f816e9b snd_pcm_format_big_endian +EXPORT_SYMBOL sound/core/snd-pcm 0x50f887cd snd_pcm_lib_preallocate_free_for_all +EXPORT_SYMBOL sound/core/snd-pcm 0x51a3cf6c snd_pcm_hw_constraint_list +EXPORT_SYMBOL sound/core/snd-pcm 0x52e3e4a5 snd_pcm_hw_param_value +EXPORT_SYMBOL sound/core/snd-pcm 0x55379ea1 snd_pcm_hw_param_first +EXPORT_SYMBOL sound/core/snd-pcm 0x5e7f4920 snd_pcm_format_set_silence +EXPORT_SYMBOL sound/core/snd-pcm 0x5ecb7cc5 snd_pcm_hw_constraint_msbits +EXPORT_SYMBOL sound/core/snd-pcm 0x5efcc48f snd_pcm_lib_ioctl +EXPORT_SYMBOL sound/core/snd-pcm 0x650f8603 snd_pcm_format_silence_64 +EXPORT_SYMBOL sound/core/snd-pcm 0x6888927d snd_pcm_hw_constraint_minmax +EXPORT_SYMBOL sound/core/snd-pcm 0x68a24153 snd_pcm_format_physical_width +EXPORT_SYMBOL sound/core/snd-pcm 0x6a0fa0e1 snd_pcm_lib_get_vmalloc_page +EXPORT_SYMBOL sound/core/snd-pcm 0x6be9a060 snd_pcm_sgbuf_ops_page +EXPORT_SYMBOL sound/core/snd-pcm 0x6c470ef2 snd_pcm_release_substream +EXPORT_SYMBOL sound/core/snd-pcm 0x6ef8fcd8 snd_pcm_format_linear +EXPORT_SYMBOL sound/core/snd-pcm 0x7223b1fa snd_pcm_lib_malloc_pages +EXPORT_SYMBOL sound/core/snd-pcm 0x8284f87b snd_pcm_hw_param_last +EXPORT_SYMBOL sound/core/snd-pcm 0x8c49fadd snd_pcm_hw_constraint_integer +EXPORT_SYMBOL sound/core/snd-pcm 0x91871493 snd_pcm_lib_mmap_iomem +EXPORT_SYMBOL sound/core/snd-pcm 0x930d0251 snd_pcm_open_substream +EXPORT_SYMBOL sound/core/snd-pcm 0x94098ff8 snd_interval_list +EXPORT_SYMBOL sound/core/snd-pcm 0x9623ad26 snd_pcm_lib_preallocate_pages +EXPORT_SYMBOL sound/core/snd-pcm 0x9c085dc4 _snd_pcm_lib_alloc_vmalloc_buffer +EXPORT_SYMBOL sound/core/snd-pcm 0xa61aa028 snd_pcm_format_unsigned +EXPORT_SYMBOL sound/core/snd-pcm 0xa9adc229 snd_pcm_link_rwlock +EXPORT_SYMBOL sound/core/snd-pcm 0xb3166a17 snd_pcm_lib_readv +EXPORT_SYMBOL sound/core/snd-pcm 0xb3b86ac5 snd_pcm_hw_rule_noresample +EXPORT_SYMBOL sound/core/snd-pcm 0xb9638db4 snd_pcm_rate_to_rate_bit +EXPORT_SYMBOL sound/core/snd-pcm 0xc0b16519 snd_pcm_lib_writev +EXPORT_SYMBOL sound/core/snd-pcm 0xc13bce23 snd_pcm_lib_read +EXPORT_SYMBOL sound/core/snd-pcm 0xc5a2bd4e snd_pcm_hw_constraint_ratdens +EXPORT_SYMBOL sound/core/snd-pcm 0xcb843d0b snd_pcm_new_stream +EXPORT_SYMBOL sound/core/snd-pcm 0xcea463ad snd_pcm_suspend_all +EXPORT_SYMBOL sound/core/snd-pcm 0xcf3c597f snd_pcm_suspend +EXPORT_SYMBOL sound/core/snd-pcm 0xd34806b2 snd_pcm_set_sync +EXPORT_SYMBOL sound/core/snd-pcm 0xd78bb5dd snd_pcm_lib_write +EXPORT_SYMBOL sound/core/snd-pcm 0xd848088a snd_pcm_period_elapsed +EXPORT_SYMBOL sound/core/snd-pcm 0xe2870f22 snd_pcm_lib_free_vmalloc_buffer +EXPORT_SYMBOL sound/core/snd-pcm 0xe56a9336 snd_pcm_format_width +EXPORT_SYMBOL sound/core/snd-pcm 0xec86c109 snd_pcm_kernel_ioctl +EXPORT_SYMBOL sound/core/snd-pcm 0xf3797152 snd_interval_ratnum +EXPORT_SYMBOL sound/core/snd-pcm 0xf4ad3b31 snd_pcm_hw_constraint_pow2 +EXPORT_SYMBOL sound/core/snd-pcm 0xff6104d0 snd_pcm_rate_bit_to_rate +EXPORT_SYMBOL sound/core/snd-rawmidi 0x0ca28442 snd_rawmidi_input_params +EXPORT_SYMBOL sound/core/snd-rawmidi 0x2139e015 snd_rawmidi_receive +EXPORT_SYMBOL sound/core/snd-rawmidi 0x47fb1a1c snd_rawmidi_kernel_open +EXPORT_SYMBOL sound/core/snd-rawmidi 0x4938934e snd_rawmidi_info_select +EXPORT_SYMBOL sound/core/snd-rawmidi 0x659daf6a snd_rawmidi_new +EXPORT_SYMBOL sound/core/snd-rawmidi 0x6f1b97ff snd_rawmidi_kernel_release +EXPORT_SYMBOL sound/core/snd-rawmidi 0x85efd1c8 snd_rawmidi_drain_output +EXPORT_SYMBOL sound/core/snd-rawmidi 0x8f60d55f snd_rawmidi_kernel_write +EXPORT_SYMBOL sound/core/snd-rawmidi 0x9b1ea3ce snd_rawmidi_drop_output +EXPORT_SYMBOL sound/core/snd-rawmidi 0x9d916921 snd_rawmidi_drain_input +EXPORT_SYMBOL sound/core/snd-rawmidi 0xabfcc397 snd_rawmidi_transmit_peek +EXPORT_SYMBOL sound/core/snd-rawmidi 0xbce86532 snd_rawmidi_transmit_ack +EXPORT_SYMBOL sound/core/snd-rawmidi 0xda9fb948 snd_rawmidi_transmit_empty +EXPORT_SYMBOL sound/core/snd-rawmidi 0xdc111c96 snd_rawmidi_kernel_read +EXPORT_SYMBOL sound/core/snd-rawmidi 0xedb8144e snd_rawmidi_set_ops +EXPORT_SYMBOL sound/core/snd-rawmidi 0xefc67cac snd_rawmidi_output_params +EXPORT_SYMBOL sound/core/snd-rawmidi 0xf695341d snd_rawmidi_transmit +EXPORT_SYMBOL sound/core/snd-timer 0x841f0094 snd_timer_interrupt +EXPORT_SYMBOL sound/core/snd-timer 0x84944205 snd_timer_pause +EXPORT_SYMBOL sound/core/snd-timer 0x857c90f8 snd_timer_stop +EXPORT_SYMBOL sound/core/snd-timer 0x9243a8a1 snd_timer_new +EXPORT_SYMBOL sound/core/snd-timer 0x98a015dd snd_timer_resolution +EXPORT_SYMBOL sound/core/snd-timer 0x9a1e31bd snd_timer_global_new +EXPORT_SYMBOL sound/core/snd-timer 0xaba8db67 snd_timer_open +EXPORT_SYMBOL sound/core/snd-timer 0xb3ca1195 snd_timer_start +EXPORT_SYMBOL sound/core/snd-timer 0xb5202d45 snd_timer_continue +EXPORT_SYMBOL sound/core/snd-timer 0xbe5ca1d0 snd_timer_notify +EXPORT_SYMBOL sound/core/snd-timer 0xd26c9c18 snd_timer_close +EXPORT_SYMBOL sound/core/snd-timer 0xf17c5b8d snd_timer_global_free +EXPORT_SYMBOL sound/core/snd-timer 0xfe322796 snd_timer_global_register +EXPORT_SYMBOL sound/drivers/mpu401/snd-mpu401-uart 0x6d629c59 snd_mpu401_uart_interrupt_tx +EXPORT_SYMBOL sound/drivers/mpu401/snd-mpu401-uart 0xadae0a4e snd_mpu401_uart_new +EXPORT_SYMBOL sound/drivers/mpu401/snd-mpu401-uart 0xc0fec227 snd_mpu401_uart_interrupt +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x05060a19 snd_opl3_regmap +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x0bbdf0e1 snd_opl3_find_patch +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x1351ecce snd_opl3_reset +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x29bd8d76 snd_opl3_load_patch +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x5887fae0 snd_opl3_hwdep_new +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x75fea3b4 snd_opl3_timer_new +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0xc54989fb snd_opl3_interrupt +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0xd72a767b snd_opl3_init +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0xda270bea snd_opl3_create +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0xf7e63575 snd_opl3_new +EXPORT_SYMBOL sound/drivers/opl4/snd-opl4-lib 0x1f50cab2 snd_opl4_read +EXPORT_SYMBOL sound/drivers/opl4/snd-opl4-lib 0x3468bc1a snd_opl4_create +EXPORT_SYMBOL sound/drivers/opl4/snd-opl4-lib 0x45f67b4e snd_opl4_read_memory +EXPORT_SYMBOL sound/drivers/opl4/snd-opl4-lib 0x4a30f35b snd_opl4_write_memory +EXPORT_SYMBOL sound/drivers/opl4/snd-opl4-lib 0x6153f22b snd_opl4_write +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x121d1bf7 snd_vx_resume +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x3c8b5806 snd_vx_free_firmware +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x86840a39 snd_vx_dsp_boot +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0xa00dfe5c snd_vx_create +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0xb25456a6 snd_vx_dsp_load +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0xb3e9b805 snd_vx_check_reg_bit +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0xc4bda6fa snd_vx_suspend +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0xdb71442d snd_vx_load_boot_image +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0xe134c2e9 snd_vx_setup_firmware +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0xf1f04d23 snd_vx_irq_handler +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x26d8c2fc amdtp_out_stream_pcm_prepare +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x2902ad42 snd_fw_transaction +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x2f555fa2 fw_iso_resources_allocate +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x34dcf0fb amdtp_out_stream_start +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x418394ed cmp_connection_establish +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x420eff5e cmp_connection_init +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x4b01f135 cmp_connection_destroy +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x4c88761d fw_iso_resources_update +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x64baf3b8 iso_packets_buffer_destroy +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x7688ff7b cmp_connection_update +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x91898ba3 amdtp_out_stream_set_rate +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x924089ab amdtp_out_stream_get_max_payload +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x92a3857b cmp_connection_break +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x9df307dd amdtp_out_stream_init +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xa141b8d1 amdtp_out_stream_update +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xa513e557 fw_iso_resources_free +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xad08b173 fcp_avc_transaction +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xb1cee141 amdtp_out_stream_pcm_abort +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xc5357d7d amdtp_out_stream_pcm_pointer +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xcf687d01 fcp_bus_reset +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xd98269b7 fw_iso_resources_destroy +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xdc8b039b iso_packets_buffer_init +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xe03633f0 amdtp_out_stream_set_pcm_format +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xe444ff77 fw_iso_resources_init +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xed87463f amdtp_out_stream_destroy +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xf508f3b5 amdtp_out_stream_stop +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x57f514f8 snd_ak4114_create +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x5e48422e snd_ak4114_check_rate_and_errors +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x6a184cc5 snd_ak4114_reg_write +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x9b9dbce4 snd_ak4114_external_rate +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0xe2615c7c snd_ak4114_reinit +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0xf056a802 snd_ak4114_build +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0x16ac25f5 snd_ak4117_external_rate +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0x1908e22e snd_ak4117_check_rate_and_errors +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0x80159b5b snd_ak4117_reinit +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0x9bf4897b snd_ak4117_build +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0xb1ac4ccd snd_ak4117_create +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0xdb2f2958 snd_ak4117_reg_write +EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0x063215f7 snd_akm4xxx_init +EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0xa12787ca snd_akm4xxx_write +EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0xb40d9fba snd_akm4xxx_reset +EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0xfc62632f snd_akm4xxx_build_controls +EXPORT_SYMBOL sound/i2c/other/snd-pt2258 0x3e7677fc snd_pt2258_reset +EXPORT_SYMBOL sound/i2c/other/snd-pt2258 0xdd481e33 snd_pt2258_build_controls +EXPORT_SYMBOL sound/i2c/other/snd-tea575x-tuner 0x358793d4 snd_tea575x_set_freq +EXPORT_SYMBOL sound/i2c/other/snd-tea575x-tuner 0x60ff4123 snd_tea575x_init +EXPORT_SYMBOL sound/i2c/other/snd-tea575x-tuner 0xb4528bb9 snd_tea575x_exit +EXPORT_SYMBOL sound/i2c/snd-cs8427 0x0084956b snd_cs8427_iec958_pcm +EXPORT_SYMBOL sound/i2c/snd-cs8427 0x22c5cec4 snd_cs8427_iec958_build +EXPORT_SYMBOL sound/i2c/snd-cs8427 0x49838430 snd_cs8427_reg_write +EXPORT_SYMBOL sound/i2c/snd-cs8427 0x587b81ff snd_cs8427_create +EXPORT_SYMBOL sound/i2c/snd-cs8427 0xcbd9a471 snd_cs8427_iec958_active +EXPORT_SYMBOL sound/i2c/snd-i2c 0x2934f615 snd_i2c_probeaddr +EXPORT_SYMBOL sound/i2c/snd-i2c 0x6f6c3cc4 snd_i2c_device_free +EXPORT_SYMBOL sound/i2c/snd-i2c 0x94a558d3 snd_i2c_sendbytes +EXPORT_SYMBOL sound/i2c/snd-i2c 0xbbf92cd9 snd_i2c_device_create +EXPORT_SYMBOL sound/i2c/snd-i2c 0xde1d4eae snd_i2c_bus_create +EXPORT_SYMBOL sound/i2c/snd-i2c 0xede16da4 snd_i2c_readbytes +EXPORT_SYMBOL sound/i2c/snd-tea6330t 0xb06328ea snd_tea6330t_detect +EXPORT_SYMBOL sound/i2c/snd-tea6330t 0xc5f8aa34 snd_tea6330t_update_mixer +EXPORT_SYMBOL sound/isa/es1688/snd-es1688-lib 0x001145da snd_es1688_pcm +EXPORT_SYMBOL sound/isa/es1688/snd-es1688-lib 0x4ad9c84d snd_es1688_mixer +EXPORT_SYMBOL sound/isa/es1688/snd-es1688-lib 0x5e9485a2 snd_es1688_mixer_write +EXPORT_SYMBOL sound/isa/es1688/snd-es1688-lib 0xd93e01e1 snd_es1688_reset +EXPORT_SYMBOL sound/isa/es1688/snd-es1688-lib 0xf988359b snd_es1688_create +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x01874992 snd_gf1_alloc_voice +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x0d3bb64c snd_gus_dram_write +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x0ea1c75f snd_gf1_dram_addr +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x1c1ce117 snd_gus_interrupt +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x260fcab6 snd_gf1_write_addr +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x27a4c5da snd_gf1_i_look8 +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x38ce6e3a snd_gus_use_dec +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x43893039 snd_gus_create +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x46db8d67 snd_gf1_lvol_to_gvol_raw +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x488dd721 snd_gf1_pcm_new +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x528161e4 snd_gus_use_inc +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x5c2979d6 snd_gf1_rawmidi_new +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x5cd2e15e snd_gus_dram_read +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x6351676d snd_gf1_delay +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x6c667d35 snd_gf1_mem_lock +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x6fee6fff snd_gf1_mem_alloc +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x74029179 snd_gf1_look16 +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x8a776274 snd_gf1_look8 +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0x99bf7fb1 snd_gf1_ctrl_stop +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0xa097f7d1 snd_gf1_i_look16 +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0xa0febf4a snd_gf1_peek +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0xa9b960dd snd_gf1_write8 +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0xc23ea8c7 snd_gf1_new_mixer +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0xc43a5527 snd_gf1_atten_table +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0xd6159d63 snd_gf1_poke +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0xde5a342d snd_gf1_i_write8 +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0xdea09733 snd_gf1_mem_free +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0xe0fc10e3 snd_gf1_translate_freq +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0xe1c8e626 snd_gf1_free_voice +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0xe48d42f6 snd_gf1_mem_xfree +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0xe8bde75f snd_gf1_stop_voice +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0xed90debc snd_gf1_write16 +EXPORT_SYMBOL sound/isa/gus/snd-gus-lib 0xfc9f53a2 snd_gus_initialize +EXPORT_SYMBOL sound/isa/msnd/snd-msnd-lib 0x08a59825 snd_msndmix_new +EXPORT_SYMBOL sound/isa/msnd/snd-msnd-lib 0x0e096be3 snd_msnd_init_queue +EXPORT_SYMBOL sound/isa/msnd/snd-msnd-lib 0x13ffde22 snd_msnd_pcm +EXPORT_SYMBOL sound/isa/msnd/snd-msnd-lib 0x225cc395 snd_msndmix_force_recsrc +EXPORT_SYMBOL sound/isa/msnd/snd-msnd-lib 0x5b646590 snd_msnd_send_word +EXPORT_SYMBOL sound/isa/msnd/snd-msnd-lib 0x650c99ce snd_msnd_DAPQ +EXPORT_SYMBOL sound/isa/msnd/snd-msnd-lib 0x75026b24 snd_msndmidi_input_read +EXPORT_SYMBOL sound/isa/msnd/snd-msnd-lib 0x84084cbe snd_msnd_DARQ +EXPORT_SYMBOL sound/isa/msnd/snd-msnd-lib 0xa34dee66 snd_msnd_enable_irq +EXPORT_SYMBOL sound/isa/msnd/snd-msnd-lib 0xc1df8737 snd_msnd_disable_irq +EXPORT_SYMBOL sound/isa/msnd/snd-msnd-lib 0xcd1e89f9 snd_msnd_send_dsp_cmd +EXPORT_SYMBOL sound/isa/msnd/snd-msnd-lib 0xe3604ce6 snd_msnd_upload_host +EXPORT_SYMBOL sound/isa/msnd/snd-msnd-lib 0xf8a3a850 snd_msndmix_setup +EXPORT_SYMBOL sound/isa/msnd/snd-msnd-lib 0xfb972909 snd_msnd_dsp_halt +EXPORT_SYMBOL sound/isa/opti9xx/snd-miro 0x02e9c17c snd_aci_cmd +EXPORT_SYMBOL sound/isa/opti9xx/snd-miro 0x6bf9a9df snd_aci_get_aci +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x11c8f0ae snd_sbmixer_new +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x1ef8b5fc snd_sbmixer_read +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x39b317b3 snd_sbdsp_command +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x448650c0 snd_sbdsp_create +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x556adfbd snd_sbmixer_write +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x624b1b61 snd_sbdsp_get_byte +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x7b2d4c50 snd_sbmixer_resume +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x98b98c3a snd_sbmixer_suspend +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0xaf92fb3f snd_sbmixer_add_ctl +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0xf11b0dba snd_sbdsp_reset +EXPORT_SYMBOL sound/isa/sb/snd-sb16-csp 0xc738b0b6 snd_sb_csp_new +EXPORT_SYMBOL sound/isa/sb/snd-sb16-dsp 0x05d2125b snd_sb16dsp_get_pcm_ops +EXPORT_SYMBOL sound/isa/sb/snd-sb16-dsp 0x1053db52 snd_sb16dsp_pcm +EXPORT_SYMBOL sound/isa/sb/snd-sb16-dsp 0xe0b3f690 snd_sb16dsp_interrupt +EXPORT_SYMBOL sound/isa/sb/snd-sb16-dsp 0xe774cd69 snd_sb16dsp_configure +EXPORT_SYMBOL sound/isa/sb/snd-sb8-dsp 0x032adc22 snd_sb8dsp_midi +EXPORT_SYMBOL sound/isa/sb/snd-sb8-dsp 0x5e658ec1 snd_sb8dsp_interrupt +EXPORT_SYMBOL sound/isa/sb/snd-sb8-dsp 0xb533d6ba snd_sb8dsp_midi_interrupt +EXPORT_SYMBOL sound/isa/sb/snd-sb8-dsp 0xeadd18e7 snd_sb8dsp_pcm +EXPORT_SYMBOL sound/isa/sb/snd-sbawe 0x01b6d70a snd_emu8000_load_reverb_fx +EXPORT_SYMBOL sound/isa/sb/snd-sbawe 0x06129d74 snd_emu8000_poke +EXPORT_SYMBOL sound/isa/sb/snd-sbawe 0x1e7af907 snd_emu8000_load_chorus_fx +EXPORT_SYMBOL sound/isa/sb/snd-sbawe 0x29dca3ee snd_emu8000_update_chorus_mode +EXPORT_SYMBOL sound/isa/sb/snd-sbawe 0x431a8f0c snd_emu8000_poke_dw +EXPORT_SYMBOL sound/isa/sb/snd-sbawe 0x478c4fcf snd_emu8000_peek +EXPORT_SYMBOL sound/isa/sb/snd-sbawe 0x5b2abcd0 snd_emu8000_update_equalizer +EXPORT_SYMBOL sound/isa/sb/snd-sbawe 0x9d93c576 snd_emu8000_dma_chan +EXPORT_SYMBOL sound/isa/sb/snd-sbawe 0xd03af289 snd_emu8000_peek_dw +EXPORT_SYMBOL sound/isa/sb/snd-sbawe 0xdb55ad1c snd_emu8000_update_reverb_mode +EXPORT_SYMBOL sound/isa/sb/snd-sbawe 0xec554cdd snd_emu8000_init_fm +EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0x08c32d2f snd_wss_mce_up +EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0x11708a93 snd_wss_chip_id +EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0x1c06f166 snd_wss_info_single +EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0x1fdb365a snd_wss_info_double +EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0x26476899 snd_wss_mixer +EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0x2f033649 snd_cs4236_ext_out +EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0x70c5c7ad snd_wss_overrange +EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0x73628567 snd_wss_mce_down +EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0x77fbbbcd snd_wss_timer +EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0x7b202637 snd_wss_interrupt +EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0x852784bf snd_wss_get_single +EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0x8c4b30ea snd_wss_pcm +EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0x9351a189 snd_wss_put_double +EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0x9471ab85 snd_wss_get_pcm_ops +EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0xaa4b25ff snd_wss_get_double +EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0xbc3d00c9 snd_wss_put_single +EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0xbe3d2eae snd_wss_in +EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0xc23c9e4d snd_wss_create +EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0xd3fe2974 snd_wss_out +EXPORT_SYMBOL sound/isa/wss/snd-wss-lib 0xe86e1b48 snd_cs4236_ext_in +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x15fecda5 snd_ac97_get_short_name +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x197f1bea snd_ac97_resume +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x1b0571fd snd_ac97_tune_hardware +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x2f6d3850 snd_ac97_mixer +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x45408c5a snd_ac97_write_cache +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x4584f897 snd_ac97_update_power +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x4942fc11 snd_ac97_update_bits +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x718b0f97 snd_ac97_pcm_assign +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x75eb11ea snd_ac97_read +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x9e161321 snd_ac97_update +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x9face21e snd_ac97_write +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xb071e600 snd_ac97_pcm_close +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xb67b4196 snd_ac97_suspend +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xb9c1da08 snd_ac97_pcm_double_rate_rules +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xc191ad28 snd_ac97_bus +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xc98b4b92 snd_ac97_set_rate +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xdb777b73 snd_ac97_pcm_open +EXPORT_SYMBOL sound/pci/asihpi/snd-asihpi 0x492ffb82 hpi_send_recv +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x06357204 snd_emu10k1_synth_bzero +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x0e17a6aa snd_emu10k1_ptr_read +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x1b729305 snd_emu10k1_synth_copy_from_user +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x1e525411 snd_emu10k1_synth_alloc +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x431171b0 snd_emu10k1_voice_free +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x8c0b9297 snd_emu10k1_voice_alloc +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x8f64c64a snd_emu10k1_memblk_map +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0xc963177d snd_emu10k1_ptr_write +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0xe40060f4 snd_emu10k1_synth_free +EXPORT_SYMBOL sound/pci/ice1712/snd-ice17xx-ak4xxx 0x39f80d72 snd_ice1712_akm4xxx_init +EXPORT_SYMBOL sound/pci/ice1712/snd-ice17xx-ak4xxx 0x88704539 snd_ice1712_akm4xxx_free +EXPORT_SYMBOL sound/pci/ice1712/snd-ice17xx-ak4xxx 0xed6ff569 snd_ice1712_akm4xxx_build_controls +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x014fd5fd oxygen_write8 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x0bf936c0 oxygen_read16 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x0c995d7d oxygen_pci_probe +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x158af0d2 oxygen_read_ac97 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x1fa6d749 oxygen_write32_masked +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x2c6b5e25 oxygen_pci_shutdown +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x3010b303 oxygen_write_ac97_masked +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x337e6c54 oxygen_write32 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x3693e184 oxygen_write_ac97 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x4398455d oxygen_reset_uart +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x55af9ec4 oxygen_pci_remove +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x9880878a oxygen_write16_masked +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xa441011d oxygen_write_uart +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xa45a168b oxygen_write16 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xb4b98bb8 oxygen_write8_masked +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xb7a56d1a oxygen_write_i2c +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xc03c593b oxygen_read32 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xd6664d20 oxygen_write_spi +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xdc5cc62b oxygen_read8 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xee48e362 oxygen_pci_pm +EXPORT_SYMBOL sound/pci/trident/snd-trident 0x36e3884d snd_trident_free_voice +EXPORT_SYMBOL sound/pci/trident/snd-trident 0x4045cb29 snd_trident_stop_voice +EXPORT_SYMBOL sound/pci/trident/snd-trident 0x82817820 snd_trident_start_voice +EXPORT_SYMBOL sound/pci/trident/snd-trident 0xaec67c7f snd_trident_alloc_voice +EXPORT_SYMBOL sound/pci/trident/snd-trident 0xe4e28ba8 snd_trident_write_voice_regs +EXPORT_SYMBOL sound/soundcore 0x6d4cc130 sound_class +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x08429ec5 snd_emux_lock_voice +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x0babf7b0 snd_emux_free +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x214c6e11 snd_emux_register +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x36554ca0 snd_emux_unlock_voice +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x5e54fa45 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 0x87295100 snd_emux_new +EXPORT_SYMBOL sound/synth/snd-util-mem 0x0186f011 snd_util_memhdr_free +EXPORT_SYMBOL sound/synth/snd-util-mem 0x1ed9cfcb __snd_util_mem_free +EXPORT_SYMBOL sound/synth/snd-util-mem 0x229325cb __snd_util_memblk_new +EXPORT_SYMBOL sound/synth/snd-util-mem 0x2ddf3b11 snd_util_memhdr_new +EXPORT_SYMBOL sound/synth/snd-util-mem 0x8bb193e4 __snd_util_mem_alloc +EXPORT_SYMBOL sound/synth/snd-util-mem 0x931efe13 snd_util_mem_alloc +EXPORT_SYMBOL sound/synth/snd-util-mem 0xcbbf08e4 snd_util_mem_avail +EXPORT_SYMBOL sound/synth/snd-util-mem 0xd030913c snd_util_mem_free +EXPORT_SYMBOL sound/usb/snd-usbmidi-lib 0x16756dc0 snd_usbmidi_input_start +EXPORT_SYMBOL sound/usb/snd-usbmidi-lib 0x23b80a07 snd_usbmidi_create +EXPORT_SYMBOL sound/usb/snd-usbmidi-lib 0x63343b1d snd_usbmidi_input_stop +EXPORT_SYMBOL sound/usb/snd-usbmidi-lib 0xd9d2bb03 snd_usbmidi_disconnect +EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0x35c95b1b dm_mem_cache_client_create +EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0x55d27c51 dm_mem_cache_free +EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0x86e5acf9 dm_mem_cache_grow +EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0x920a7a41 dm_message_parse +EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0xa43471b6 dm_mem_cache_shrink +EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0xd55b290c dm_mem_cache_client_destroy +EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0xe6f5f9aa dm_mem_cache_alloc +EXPORT_SYMBOL ubuntu/lttng/lib/lttng-lib-ring-buffer 0x2776a3e5 lib_ring_buffer_nesting +EXPORT_SYMBOL vmlinux 0x00000000 softirq_work_list +EXPORT_SYMBOL vmlinux 0x0016d5b9 tcp_recvmsg +EXPORT_SYMBOL vmlinux 0x004756c0 ip_options_rcv_srr +EXPORT_SYMBOL vmlinux 0x00514eee padata_do_serial +EXPORT_SYMBOL vmlinux 0x00801678 flush_scheduled_work +EXPORT_SYMBOL vmlinux 0x0084e86d unregister_shrinker +EXPORT_SYMBOL vmlinux 0x0087d8fa blk_rq_map_user_iov +EXPORT_SYMBOL vmlinux 0x008cb692 pci_bus_read_config_byte +EXPORT_SYMBOL vmlinux 0x009862c7 pnp_get_resource +EXPORT_SYMBOL vmlinux 0x00a7af2b free_buffer_head +EXPORT_SYMBOL vmlinux 0x00a7e9c8 sock_i_ino +EXPORT_SYMBOL vmlinux 0x00c4222b tty_insert_flip_string_flags +EXPORT_SYMBOL vmlinux 0x00c52430 ida_simple_get +EXPORT_SYMBOL vmlinux 0x00e363f4 __locks_copy_lock +EXPORT_SYMBOL vmlinux 0x00e5d4fe pm_vt_switch_required +EXPORT_SYMBOL vmlinux 0x00e8097b csum_partial_copy_fromiovecend +EXPORT_SYMBOL vmlinux 0x00edb761 sk_stream_error +EXPORT_SYMBOL vmlinux 0x01139ffc max_mapnr +EXPORT_SYMBOL vmlinux 0x012e0428 vfs_readv +EXPORT_SYMBOL vmlinux 0x0134cfb0 sk_stream_write_space +EXPORT_SYMBOL vmlinux 0x01444cd1 idr_replace +EXPORT_SYMBOL vmlinux 0x015aa253 phy_connect_direct +EXPORT_SYMBOL vmlinux 0x01659cd6 blk_queue_segment_boundary +EXPORT_SYMBOL vmlinux 0x016a5f4d acpi_pm_device_sleep_state +EXPORT_SYMBOL vmlinux 0x01705771 simple_readpage +EXPORT_SYMBOL vmlinux 0x0181abd7 netdev_master_upper_dev_get +EXPORT_SYMBOL vmlinux 0x018ba14b key_invalidate +EXPORT_SYMBOL vmlinux 0x01902adf netpoll_trap +EXPORT_SYMBOL vmlinux 0x01d19038 acpi_enable_subsystem +EXPORT_SYMBOL vmlinux 0x020ba59c mmc_free_host +EXPORT_SYMBOL vmlinux 0x02124474 ip_send_check +EXPORT_SYMBOL vmlinux 0x0237b57a arch_unregister_cpu +EXPORT_SYMBOL vmlinux 0x0242a2e4 elv_rb_latter_request +EXPORT_SYMBOL vmlinux 0x024572c4 scsi_host_set_state +EXPORT_SYMBOL vmlinux 0x02649054 security_sock_rcv_skb +EXPORT_SYMBOL vmlinux 0x0274dc2b netif_get_num_default_rss_queues +EXPORT_SYMBOL vmlinux 0x02872748 posix_acl_to_xattr +EXPORT_SYMBOL vmlinux 0x028a7804 vlan_vids_del_by_dev +EXPORT_SYMBOL vmlinux 0x029444f0 native_read_tsc +EXPORT_SYMBOL vmlinux 0x02a18c74 nf_conntrack_destroy +EXPORT_SYMBOL vmlinux 0x02a6ce5a crc16_table +EXPORT_SYMBOL vmlinux 0x02e92c3e scsi_host_lookup +EXPORT_SYMBOL vmlinux 0x02ee26c1 free_pages_exact +EXPORT_SYMBOL vmlinux 0x0313724d request_key_async +EXPORT_SYMBOL vmlinux 0x0334da4e scsi_command_size_tbl +EXPORT_SYMBOL vmlinux 0x033c4996 generic_file_aio_read +EXPORT_SYMBOL vmlinux 0x033f03aa key_alloc +EXPORT_SYMBOL vmlinux 0x03578fcc bdi_set_max_ratio +EXPORT_SYMBOL vmlinux 0x03592ea0 security_unix_stream_connect +EXPORT_SYMBOL vmlinux 0x036346eb clocksource_register +EXPORT_SYMBOL vmlinux 0x0366307a console_suspend_enabled +EXPORT_SYMBOL vmlinux 0x036a2d65 try_to_writeback_inodes_sb +EXPORT_SYMBOL vmlinux 0x037a0cba kfree +EXPORT_SYMBOL vmlinux 0x03862fd8 kernel_sock_ioctl +EXPORT_SYMBOL vmlinux 0x03936729 proc_mkdir_mode +EXPORT_SYMBOL vmlinux 0x03a1b9b1 skb_pad +EXPORT_SYMBOL vmlinux 0x03b580eb wait_for_completion_killable +EXPORT_SYMBOL vmlinux 0x03bd889d param_get_ulong +EXPORT_SYMBOL vmlinux 0x03c06156 bitmap_fold +EXPORT_SYMBOL vmlinux 0x03d8a491 padata_free +EXPORT_SYMBOL vmlinux 0x03e5f41a inet_sendpage +EXPORT_SYMBOL vmlinux 0x03fca55d dev_trans_start +EXPORT_SYMBOL vmlinux 0x03fd2571 vm_unmap_ram +EXPORT_SYMBOL vmlinux 0x04006539 scsi_device_get +EXPORT_SYMBOL vmlinux 0x0411d1b7 journal_force_commit +EXPORT_SYMBOL vmlinux 0x0422fe4a inet_csk_timer_bug_msg +EXPORT_SYMBOL vmlinux 0x042bd1c6 get_gendisk +EXPORT_SYMBOL vmlinux 0x04327e0f pm860x_page_reg_read +EXPORT_SYMBOL vmlinux 0x04482cdb __refrigerator +EXPORT_SYMBOL vmlinux 0x044ff670 dev_mc_del +EXPORT_SYMBOL vmlinux 0x046c1f16 param_ops_invbool +EXPORT_SYMBOL vmlinux 0x04718663 lease_get_mtime +EXPORT_SYMBOL vmlinux 0x04873820 skb_prepare_seq_read +EXPORT_SYMBOL vmlinux 0x0487f831 fb_find_best_display +EXPORT_SYMBOL vmlinux 0x0499badc acpi_bios_warning +EXPORT_SYMBOL vmlinux 0x04a15977 scsi_put_command +EXPORT_SYMBOL vmlinux 0x04d8c750 release_perfctr_nmi +EXPORT_SYMBOL vmlinux 0x04e973ff udp_sendmsg +EXPORT_SYMBOL vmlinux 0x04ea56f9 _kstrtol +EXPORT_SYMBOL vmlinux 0x050877b9 dmi_first_match +EXPORT_SYMBOL vmlinux 0x0509d621 security_file_permission +EXPORT_SYMBOL vmlinux 0x05240ee7 percpu_counter_batch +EXPORT_SYMBOL vmlinux 0x05243645 thaw_bdev +EXPORT_SYMBOL vmlinux 0x05425c86 neigh_lookup +EXPORT_SYMBOL vmlinux 0x054434d6 radix_tree_tag_set +EXPORT_SYMBOL vmlinux 0x055a8ec1 kobject_init +EXPORT_SYMBOL vmlinux 0x056ee730 ipv6_hash_secret +EXPORT_SYMBOL vmlinux 0x0579669e phy_device_create +EXPORT_SYMBOL vmlinux 0x057ce975 hex_dump_to_buffer +EXPORT_SYMBOL vmlinux 0x0593a99b init_timer_key +EXPORT_SYMBOL vmlinux 0x059f09b6 fifo_create_dflt +EXPORT_SYMBOL vmlinux 0x05f40f0c input_event +EXPORT_SYMBOL vmlinux 0x061651be strcat +EXPORT_SYMBOL vmlinux 0x0620ce62 mmc_start_req +EXPORT_SYMBOL vmlinux 0x0634100a bitmap_parselist_user +EXPORT_SYMBOL vmlinux 0x06412e7a fb_set_var +EXPORT_SYMBOL vmlinux 0x067d8d35 security_release_secctx +EXPORT_SYMBOL vmlinux 0x0686e63b request_key_async_with_auxdata +EXPORT_SYMBOL vmlinux 0x068c7263 ioremap_cache +EXPORT_SYMBOL vmlinux 0x0694ac1f dm_kcopyd_copy +EXPORT_SYMBOL vmlinux 0x06c0dae5 __kernel_fpu_end +EXPORT_SYMBOL vmlinux 0x06d2f086 dma_spin_lock +EXPORT_SYMBOL vmlinux 0x06e458e0 ida_get_new_above +EXPORT_SYMBOL vmlinux 0x06ee5dfa agp_find_bridge +EXPORT_SYMBOL vmlinux 0x06fa8e6c inet_csk_destroy_sock +EXPORT_SYMBOL vmlinux 0x06fe3b14 default_grn +EXPORT_SYMBOL vmlinux 0x07049e9c led_blink_set +EXPORT_SYMBOL vmlinux 0x070ac476 bdev_stack_limits +EXPORT_SYMBOL vmlinux 0x0727c4f3 iowrite8 +EXPORT_SYMBOL vmlinux 0x073dfa12 generate_resume_trace +EXPORT_SYMBOL vmlinux 0x07608604 acpi_get_vendor_resource +EXPORT_SYMBOL vmlinux 0x076ebea8 pv_lock_ops +EXPORT_SYMBOL vmlinux 0x07850019 __cleancache_invalidate_page +EXPORT_SYMBOL vmlinux 0x0789cadf wake_up_process +EXPORT_SYMBOL vmlinux 0x0799aca4 local_bh_enable +EXPORT_SYMBOL vmlinux 0x07a66cf2 tcf_hash_release +EXPORT_SYMBOL vmlinux 0x07a890c8 fb_alloc_cmap +EXPORT_SYMBOL vmlinux 0x07aa3290 acpi_walk_resource_buffer +EXPORT_SYMBOL vmlinux 0x07abbacd ida_destroy +EXPORT_SYMBOL vmlinux 0x07bf5d83 qdisc_watchdog_init +EXPORT_SYMBOL vmlinux 0x07cc4a5d printk_timed_ratelimit +EXPORT_SYMBOL vmlinux 0x07d50a24 csum_partial +EXPORT_SYMBOL vmlinux 0x07dc7d62 dev_get_by_index +EXPORT_SYMBOL vmlinux 0x07f6c5ae mdiobus_unregister +EXPORT_SYMBOL vmlinux 0x0800cb0c scsi_host_put +EXPORT_SYMBOL vmlinux 0x0822e211 tty_port_lower_dtr_rts +EXPORT_SYMBOL vmlinux 0x082c3213 pci_root_buses +EXPORT_SYMBOL vmlinux 0x082c7c95 generic_shutdown_super +EXPORT_SYMBOL vmlinux 0x08351991 pci_try_set_mwi +EXPORT_SYMBOL vmlinux 0x083709cc copy_strings_kernel +EXPORT_SYMBOL vmlinux 0x083ab8c0 account_page_dirtied +EXPORT_SYMBOL vmlinux 0x083eb21c rfkill_unregister +EXPORT_SYMBOL vmlinux 0x0842e39a elv_rb_add +EXPORT_SYMBOL vmlinux 0x0849e772 qdisc_watchdog_cancel +EXPORT_SYMBOL vmlinux 0x0853f4fa dev_addr_del_multiple +EXPORT_SYMBOL vmlinux 0x0859d061 __mod_zone_page_state +EXPORT_SYMBOL vmlinux 0x08639c98 try_to_free_buffers +EXPORT_SYMBOL vmlinux 0x088038a5 kernel_accept +EXPORT_SYMBOL vmlinux 0x088fe23e netlink_broadcast +EXPORT_SYMBOL vmlinux 0x0897287b acpi_disable_all_gpes +EXPORT_SYMBOL vmlinux 0x08bf826c _raw_spin_unlock_bh +EXPORT_SYMBOL vmlinux 0x08e756ed tty_port_carrier_raised +EXPORT_SYMBOL vmlinux 0x08f2b2d4 release_sock +EXPORT_SYMBOL vmlinux 0x092dbf14 kfree_skb +EXPORT_SYMBOL vmlinux 0x09442dbe __inet6_lookup_established +EXPORT_SYMBOL vmlinux 0x094d583b __sk_dst_check +EXPORT_SYMBOL vmlinux 0x095646ec __dst_free +EXPORT_SYMBOL vmlinux 0x095aa295 dquot_enable +EXPORT_SYMBOL vmlinux 0x0960d7e7 pm860x_page_bulk_read +EXPORT_SYMBOL vmlinux 0x098b71c6 fb_dealloc_cmap +EXPORT_SYMBOL vmlinux 0x098dcf8a processors +EXPORT_SYMBOL vmlinux 0x0992780d efi_enabled +EXPORT_SYMBOL vmlinux 0x099a38ca swiotlb_dma_mapping_error +EXPORT_SYMBOL vmlinux 0x09bd8df2 __remove_inode_hash +EXPORT_SYMBOL vmlinux 0x09c55cec schedule_timeout_interruptible +EXPORT_SYMBOL vmlinux 0x09c8eb55 font_vga_8x16 +EXPORT_SYMBOL vmlinux 0x09d1c104 fsnotify_put_group +EXPORT_SYMBOL vmlinux 0x09d44df9 in_lock_functions +EXPORT_SYMBOL vmlinux 0x09f8a620 blk_queue_end_tag +EXPORT_SYMBOL vmlinux 0x0a081894 d_invalidate +EXPORT_SYMBOL vmlinux 0x0a1661d9 pci_bus_alloc_resource +EXPORT_SYMBOL vmlinux 0x0a2487e0 unblock_all_signals +EXPORT_SYMBOL vmlinux 0x0a3131f6 strnchr +EXPORT_SYMBOL vmlinux 0x0a469d23 mfd_clone_cell +EXPORT_SYMBOL vmlinux 0x0a56372b blk_queue_logical_block_size +EXPORT_SYMBOL vmlinux 0x0a56e319 fib_default_rule_add +EXPORT_SYMBOL vmlinux 0x0a6a61b4 __devcgroup_inode_permission +EXPORT_SYMBOL vmlinux 0x0a6e20d3 __neigh_for_each_release +EXPORT_SYMBOL vmlinux 0x0a78a65c pfifo_qdisc_ops +EXPORT_SYMBOL vmlinux 0x0a8bffc5 phy_find_first +EXPORT_SYMBOL vmlinux 0x0aa17abe fasync_helper +EXPORT_SYMBOL vmlinux 0x0ac525e6 register_sysctl +EXPORT_SYMBOL vmlinux 0x0ac77185 neigh_sysctl_unregister +EXPORT_SYMBOL vmlinux 0x0ac829ce kernel_recvmsg +EXPORT_SYMBOL vmlinux 0x0acb1a3c __bitmap_shift_right +EXPORT_SYMBOL vmlinux 0x0acf7679 dma_issue_pending_all +EXPORT_SYMBOL vmlinux 0x0ad68679 textsearch_destroy +EXPORT_SYMBOL vmlinux 0x0ad816c9 input_alloc_absinfo +EXPORT_SYMBOL vmlinux 0x0adcfc8e blk_init_allocated_queue +EXPORT_SYMBOL vmlinux 0x0af62a7c jbd2_inode_cache +EXPORT_SYMBOL vmlinux 0x0b0d3a19 dcb_ieee_setapp +EXPORT_SYMBOL vmlinux 0x0b0d888b icmpv6_err_convert +EXPORT_SYMBOL vmlinux 0x0b1beb31 vmalloc_32_user +EXPORT_SYMBOL vmlinux 0x0b21cf13 pci_find_parent_resource +EXPORT_SYMBOL vmlinux 0x0b396be3 uart_register_driver +EXPORT_SYMBOL vmlinux 0x0b43800e ipv6_dev_get_saddr +EXPORT_SYMBOL vmlinux 0x0b48677a __kfifo_init +EXPORT_SYMBOL vmlinux 0x0b4aa5cd sk_stream_wait_memory +EXPORT_SYMBOL vmlinux 0x0b53bed0 md_set_array_sectors +EXPORT_SYMBOL vmlinux 0x0b5d45f7 filemap_fdatawait +EXPORT_SYMBOL vmlinux 0x0b742fd7 simple_strtol +EXPORT_SYMBOL vmlinux 0x0b7aea07 jbd2_journal_set_features +EXPORT_SYMBOL vmlinux 0x0b95a348 genphy_resume +EXPORT_SYMBOL vmlinux 0x0ba852bb release_firmware +EXPORT_SYMBOL vmlinux 0x0bbc5908 gen_estimator_active +EXPORT_SYMBOL vmlinux 0x0bc477a2 irq_set_irq_type +EXPORT_SYMBOL vmlinux 0x0bcb5db7 rps_may_expire_flow +EXPORT_SYMBOL vmlinux 0x0bd8d841 vlan_dev_vlan_id +EXPORT_SYMBOL vmlinux 0x0beafcde gen_pool_for_each_chunk +EXPORT_SYMBOL vmlinux 0x0bfd58b6 create_syslog_header +EXPORT_SYMBOL vmlinux 0x0c17cff3 blk_integrity_merge_bio +EXPORT_SYMBOL vmlinux 0x0c328773 dquot_disable +EXPORT_SYMBOL vmlinux 0x0c58a8cd netdev_increment_features +EXPORT_SYMBOL vmlinux 0x0c62c644 d_find_any_alias +EXPORT_SYMBOL vmlinux 0x0c65e73c scsi_normalize_sense +EXPORT_SYMBOL vmlinux 0x0c7b04c9 set_groups +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 0x0cb28f5a drop_super +EXPORT_SYMBOL vmlinux 0x0cc89901 dmam_alloc_coherent +EXPORT_SYMBOL vmlinux 0x0cdb7d12 __kernel_fpu_begin +EXPORT_SYMBOL vmlinux 0x0ce4b8b1 jbd2_journal_errno +EXPORT_SYMBOL vmlinux 0x0ce5f387 mntput +EXPORT_SYMBOL vmlinux 0x0cee2c51 abort_creds +EXPORT_SYMBOL vmlinux 0x0d0c35ac netlink_rcv_skb +EXPORT_SYMBOL vmlinux 0x0d15406f notify_change +EXPORT_SYMBOL vmlinux 0x0d3dda14 acpi_get_type +EXPORT_SYMBOL vmlinux 0x0d542439 __ipv6_addr_type +EXPORT_SYMBOL vmlinux 0x0d57dff7 sock_no_recvmsg +EXPORT_SYMBOL vmlinux 0x0d5ebbaa padata_remove_cpu +EXPORT_SYMBOL vmlinux 0x0d74c6f4 fsnotify_alloc_group +EXPORT_SYMBOL vmlinux 0x0da10ec3 security_sock_graft +EXPORT_SYMBOL vmlinux 0x0dab598b sk_dst_check +EXPORT_SYMBOL vmlinux 0x0df0176b block_write_full_page_endio +EXPORT_SYMBOL vmlinux 0x0e0078de posix_unblock_lock +EXPORT_SYMBOL vmlinux 0x0e120dfa sock_wfree +EXPORT_SYMBOL vmlinux 0x0e287339 udp_flush_pending_frames +EXPORT_SYMBOL vmlinux 0x0e3ce2ab blk_pre_runtime_suspend +EXPORT_SYMBOL vmlinux 0x0e5200b5 tty_write_room +EXPORT_SYMBOL vmlinux 0x0e53240c ip_mc_dec_group +EXPORT_SYMBOL vmlinux 0x0e5aad10 __cleancache_get_page +EXPORT_SYMBOL vmlinux 0x0e6780a6 devm_clk_put +EXPORT_SYMBOL vmlinux 0x0e6da44a set_normalized_timespec +EXPORT_SYMBOL vmlinux 0x0ea634c4 netpoll_parse_options +EXPORT_SYMBOL vmlinux 0x0eb23c31 kmem_cache_alloc +EXPORT_SYMBOL vmlinux 0x0eb80d5d blk_register_region +EXPORT_SYMBOL vmlinux 0x0ebad3b2 __ip_select_ident +EXPORT_SYMBOL vmlinux 0x0eed1513 phy_drivers_register +EXPORT_SYMBOL vmlinux 0x0ef75754 serial8250_set_isa_configurator +EXPORT_SYMBOL vmlinux 0x0ef9eda6 pci_dev_driver +EXPORT_SYMBOL vmlinux 0x0efd92d0 dquot_scan_active +EXPORT_SYMBOL vmlinux 0x0f1a91ef file_remove_suid +EXPORT_SYMBOL vmlinux 0x0f2b6f2e dget_parent +EXPORT_SYMBOL vmlinux 0x0f3350d1 nla_append +EXPORT_SYMBOL vmlinux 0x0f340a18 mmc_get_card +EXPORT_SYMBOL vmlinux 0x0f4c91ed ns_to_timespec +EXPORT_SYMBOL vmlinux 0x0f99f6d7 unregister_framebuffer +EXPORT_SYMBOL vmlinux 0x0fad8f93 dev_set_mtu +EXPORT_SYMBOL vmlinux 0x0faef0ed __tasklet_schedule +EXPORT_SYMBOL vmlinux 0x0fd00a68 acpi_clear_event +EXPORT_SYMBOL vmlinux 0x0fd72e93 jbd2_journal_load +EXPORT_SYMBOL vmlinux 0x0fed7058 fb_firmware_edid +EXPORT_SYMBOL vmlinux 0x0ff2b602 slhc_compress +EXPORT_SYMBOL vmlinux 0x10018f5a ndo_dflt_bridge_getlink +EXPORT_SYMBOL vmlinux 0x102c56de irq_regs +EXPORT_SYMBOL vmlinux 0x104adf5d netif_rx +EXPORT_SYMBOL vmlinux 0x106f13ab crc_t10dif_generic +EXPORT_SYMBOL vmlinux 0x109859cb mdiobus_alloc_size +EXPORT_SYMBOL vmlinux 0x10ab7e68 down_killable +EXPORT_SYMBOL vmlinux 0x10b4cdcf udp6_csum_init +EXPORT_SYMBOL vmlinux 0x10d39890 elevator_alloc +EXPORT_SYMBOL vmlinux 0x10ee20bb default_blu +EXPORT_SYMBOL vmlinux 0x11089ac7 _ctype +EXPORT_SYMBOL vmlinux 0x111b3b85 mpage_writepages +EXPORT_SYMBOL vmlinux 0x11267875 scsi_extd_sense_format +EXPORT_SYMBOL vmlinux 0x11346197 led_set_brightness +EXPORT_SYMBOL vmlinux 0x1139d0a0 single_open +EXPORT_SYMBOL vmlinux 0x11538277 page_symlink_inode_operations +EXPORT_SYMBOL vmlinux 0x1163473a bio_map_user +EXPORT_SYMBOL vmlinux 0x1163f0a7 blk_max_low_pfn +EXPORT_SYMBOL vmlinux 0x1169d775 remap_vmalloc_range +EXPORT_SYMBOL vmlinux 0x117093be qdisc_class_hash_init +EXPORT_SYMBOL vmlinux 0x117b8cef journal_flush +EXPORT_SYMBOL vmlinux 0x118db3b1 tcp_md5_hash_skb_data +EXPORT_SYMBOL vmlinux 0x11cb3bf9 vfs_fsync_range +EXPORT_SYMBOL vmlinux 0x11dd01ad intel_scu_ipc_command +EXPORT_SYMBOL vmlinux 0x11e2ec12 flex_array_free_parts +EXPORT_SYMBOL vmlinux 0x11f7ed4c hex_to_bin +EXPORT_SYMBOL vmlinux 0x120513a7 blk_integrity_compare +EXPORT_SYMBOL vmlinux 0x120b336a __rb_insert_augmented +EXPORT_SYMBOL vmlinux 0x1211c687 i8042_check_port_owner +EXPORT_SYMBOL vmlinux 0x12290152 serial8250_do_pm +EXPORT_SYMBOL vmlinux 0x12358ef4 gen_pool_add_virt +EXPORT_SYMBOL vmlinux 0x125f10d4 i8042_install_filter +EXPORT_SYMBOL vmlinux 0x1288fad8 clocksource_change_rating +EXPORT_SYMBOL vmlinux 0x128a5cf9 complete_all +EXPORT_SYMBOL vmlinux 0x12a38747 usleep_range +EXPORT_SYMBOL vmlinux 0x12b3637c __secpath_destroy +EXPORT_SYMBOL vmlinux 0x12d12e90 mpage_writepage +EXPORT_SYMBOL vmlinux 0x12da5bb2 __kmalloc +EXPORT_SYMBOL vmlinux 0x12dc5d5d swiotlb_unmap_sg +EXPORT_SYMBOL vmlinux 0x12e0b68b md_check_recovery +EXPORT_SYMBOL vmlinux 0x131a5fcd test_set_page_writeback +EXPORT_SYMBOL vmlinux 0x13241899 phy_attach +EXPORT_SYMBOL vmlinux 0x13307fde vsscanf +EXPORT_SYMBOL vmlinux 0x135c4a73 pci_dev_get +EXPORT_SYMBOL vmlinux 0x1385da42 skb_make_writable +EXPORT_SYMBOL vmlinux 0x13873654 tty_devnum +EXPORT_SYMBOL vmlinux 0x139112ce flush_old_exec +EXPORT_SYMBOL vmlinux 0x13a9f693 inode_add_rsv_space +EXPORT_SYMBOL vmlinux 0x13b715e2 blk_finish_plug +EXPORT_SYMBOL vmlinux 0x13c2c084 names_cachep +EXPORT_SYMBOL vmlinux 0x13d0adf7 __kfifo_out +EXPORT_SYMBOL vmlinux 0x13d38e92 unregister_nls +EXPORT_SYMBOL vmlinux 0x13f42152 system_entering_hibernation +EXPORT_SYMBOL vmlinux 0x13f7f53a get_user_pages +EXPORT_SYMBOL vmlinux 0x1402db07 single_release +EXPORT_SYMBOL vmlinux 0x1406ecd5 do_splice_direct +EXPORT_SYMBOL vmlinux 0x140e2ab5 unlock_new_inode +EXPORT_SYMBOL vmlinux 0x1420b379 kstrtou16_from_user +EXPORT_SYMBOL vmlinux 0x1457af1f current_fs_time +EXPORT_SYMBOL vmlinux 0x146c6812 __pci_enable_wake +EXPORT_SYMBOL vmlinux 0x14bdb1db elevator_exit +EXPORT_SYMBOL vmlinux 0x14fbe7f5 jbd2_journal_stop +EXPORT_SYMBOL vmlinux 0x150389d6 acpi_processor_power_init_bm_check +EXPORT_SYMBOL vmlinux 0x1507bb4e vga_put +EXPORT_SYMBOL vmlinux 0x151299ec dump_seek +EXPORT_SYMBOL vmlinux 0x1516f252 pci_get_domain_bus_and_slot +EXPORT_SYMBOL vmlinux 0x154187d3 cdev_alloc +EXPORT_SYMBOL vmlinux 0x154c6338 dm_kcopyd_client_destroy +EXPORT_SYMBOL vmlinux 0x1551dc51 bitmap_find_free_region +EXPORT_SYMBOL vmlinux 0x15673f39 agp_generic_free_gatt_table +EXPORT_SYMBOL vmlinux 0x1567e2ec __scsi_device_lookup +EXPORT_SYMBOL vmlinux 0x1568a469 vmalloc_to_page +EXPORT_SYMBOL vmlinux 0x15692c87 param_ops_int +EXPORT_SYMBOL vmlinux 0x1573814a gen_new_estimator +EXPORT_SYMBOL vmlinux 0x1580ae58 __cleancache_init_shared_fs +EXPORT_SYMBOL vmlinux 0x1583cc6f in_dev_finish_destroy +EXPORT_SYMBOL vmlinux 0x15aec90f pm860x_page_reg_write +EXPORT_SYMBOL vmlinux 0x15b9125f hdmi_avi_infoframe_pack +EXPORT_SYMBOL vmlinux 0x15ecb039 soft_cursor +EXPORT_SYMBOL vmlinux 0x15eeb669 generic_pipe_buf_unmap +EXPORT_SYMBOL vmlinux 0x15f0e192 __set_page_dirty_buffers +EXPORT_SYMBOL vmlinux 0x15f1f879 napi_get_frags +EXPORT_SYMBOL vmlinux 0x15f571ec blk_set_stacking_limits +EXPORT_SYMBOL vmlinux 0x160b1386 unregister_quota_format +EXPORT_SYMBOL vmlinux 0x160ea4c8 sfi_disabled +EXPORT_SYMBOL vmlinux 0x16305289 warn_slowpath_null +EXPORT_SYMBOL vmlinux 0x1631fc5a neigh_table_clear +EXPORT_SYMBOL vmlinux 0x163ab2e1 agp_alloc_bridge +EXPORT_SYMBOL vmlinux 0x16571156 scsi_dma_map +EXPORT_SYMBOL vmlinux 0x16593d99 scsi_finish_command +EXPORT_SYMBOL vmlinux 0x167e7f9d __get_user_1 +EXPORT_SYMBOL vmlinux 0x168f1082 _raw_write_unlock_irqrestore +EXPORT_SYMBOL vmlinux 0x16ad5a18 get_agp_version +EXPORT_SYMBOL vmlinux 0x16aeabe7 rawv6_mh_filter_unregister +EXPORT_SYMBOL vmlinux 0x16b9525f xfrm_init_state +EXPORT_SYMBOL vmlinux 0x16d54be6 input_register_handle +EXPORT_SYMBOL vmlinux 0x16dbfc7e neigh_sysctl_register +EXPORT_SYMBOL vmlinux 0x16e06957 generic_delete_inode +EXPORT_SYMBOL vmlinux 0x16feddcb truncate_inode_pages +EXPORT_SYMBOL vmlinux 0x170c25ee acpi_get_next_object +EXPORT_SYMBOL vmlinux 0x171427cd mmc_wait_for_app_cmd +EXPORT_SYMBOL vmlinux 0x17171aca remove_proc_entry +EXPORT_SYMBOL vmlinux 0x173ed59a __block_page_mkwrite +EXPORT_SYMBOL vmlinux 0x174ea6f7 input_mt_report_pointer_emulation +EXPORT_SYMBOL vmlinux 0x17558022 twl6040_get_pll +EXPORT_SYMBOL vmlinux 0x17799c8f open_exec +EXPORT_SYMBOL vmlinux 0x17850eab xfrm_cfg_mutex +EXPORT_SYMBOL vmlinux 0x1790d76b _raw_read_lock_irqsave +EXPORT_SYMBOL vmlinux 0x17b1125d gen_kill_estimator +EXPORT_SYMBOL vmlinux 0x17b451f0 nf_ip6_checksum +EXPORT_SYMBOL vmlinux 0x17bb699e __invalidate_device +EXPORT_SYMBOL vmlinux 0x17d6d06f handle_edge_irq +EXPORT_SYMBOL vmlinux 0x17d8e644 set_pages_array_uc +EXPORT_SYMBOL vmlinux 0x17f341a0 i8042_lock_chip +EXPORT_SYMBOL vmlinux 0x17fa81cd __idr_get_new_above +EXPORT_SYMBOL vmlinux 0x17fc4bef sock_no_setsockopt +EXPORT_SYMBOL vmlinux 0x1826f089 __tracepoint_kmem_cache_alloc_node +EXPORT_SYMBOL vmlinux 0x183fa88b mempool_alloc_slab +EXPORT_SYMBOL vmlinux 0x184913b9 set_pages_array_wb +EXPORT_SYMBOL vmlinux 0x1849640f done_path_create +EXPORT_SYMBOL vmlinux 0x184b82fb mmc_vddrange_to_ocrmask +EXPORT_SYMBOL vmlinux 0x184e6c85 radix_tree_gang_lookup_slot +EXPORT_SYMBOL vmlinux 0x1856a212 tty_hangup +EXPORT_SYMBOL vmlinux 0x1856fa5b icmpv6_send +EXPORT_SYMBOL vmlinux 0x186d756d journal_update_format +EXPORT_SYMBOL vmlinux 0x187ee814 agp_generic_enable +EXPORT_SYMBOL vmlinux 0x188a3dfb timespec_trunc +EXPORT_SYMBOL vmlinux 0x189868d7 get_random_bytes_arch +EXPORT_SYMBOL vmlinux 0x1898885c simple_link +EXPORT_SYMBOL vmlinux 0x18b4daad invalidate_mapping_pages +EXPORT_SYMBOL vmlinux 0x18d96501 atomic64_dec_if_positive_cx8 +EXPORT_SYMBOL vmlinux 0x18f8ee22 inet_twsk_deschedule +EXPORT_SYMBOL vmlinux 0x1928a111 inet_release +EXPORT_SYMBOL vmlinux 0x193bb6f7 dev_alloc_name +EXPORT_SYMBOL vmlinux 0x1942de50 write_inode_now +EXPORT_SYMBOL vmlinux 0x1976aa06 param_ops_bool +EXPORT_SYMBOL vmlinux 0x199ed0cd net_disable_timestamp +EXPORT_SYMBOL vmlinux 0x19a9e62b complete +EXPORT_SYMBOL vmlinux 0x19bd383b security_secmark_refcount_dec +EXPORT_SYMBOL vmlinux 0x19c6894b journal_dirty_data +EXPORT_SYMBOL vmlinux 0x19c91091 tcp_v4_md5_hash_skb +EXPORT_SYMBOL vmlinux 0x19df48b0 input_mt_destroy_slots +EXPORT_SYMBOL vmlinux 0x19ec222c __blk_end_request_all +EXPORT_SYMBOL vmlinux 0x19ec79bb ip_queue_xmit +EXPORT_SYMBOL vmlinux 0x19f96a85 swiotlb_map_sg_attrs +EXPORT_SYMBOL vmlinux 0x1a07f3c8 sock_common_setsockopt +EXPORT_SYMBOL vmlinux 0x1a35817e tcp_rcv_state_process +EXPORT_SYMBOL vmlinux 0x1a45cb6c acpi_disabled +EXPORT_SYMBOL vmlinux 0x1a4ef030 fget_raw +EXPORT_SYMBOL vmlinux 0x1a54768f scsi_device_quiesce +EXPORT_SYMBOL vmlinux 0x1a5993ca tty_insert_flip_string_fixed_flag +EXPORT_SYMBOL vmlinux 0x1a63af34 vga_switcheroo_process_delayed_switch +EXPORT_SYMBOL vmlinux 0x1a6c7848 filemap_fdatawrite +EXPORT_SYMBOL vmlinux 0x1a6fba33 md_integrity_register +EXPORT_SYMBOL vmlinux 0x1a75ba4e vlan_untag +EXPORT_SYMBOL vmlinux 0x1a8947a6 register_xen_selfballooning +EXPORT_SYMBOL vmlinux 0x1aadfeb5 flock_lock_file_wait +EXPORT_SYMBOL vmlinux 0x1ab34b88 security_sb_set_mnt_opts +EXPORT_SYMBOL vmlinux 0x1abe5684 mmc_hw_reset_check +EXPORT_SYMBOL vmlinux 0x1ace087b unregister_key_type +EXPORT_SYMBOL vmlinux 0x1ace138d bitmap_allocate_region +EXPORT_SYMBOL vmlinux 0x1ae14ef5 _raw_write_trylock +EXPORT_SYMBOL vmlinux 0x1ae1da41 mmc_wait_for_req +EXPORT_SYMBOL vmlinux 0x1b015d25 bitmap_parselist +EXPORT_SYMBOL vmlinux 0x1b0ac272 __tracepoint_kmalloc_node +EXPORT_SYMBOL vmlinux 0x1b19a7b5 lz4_decompress +EXPORT_SYMBOL vmlinux 0x1b1e1088 sg_nents +EXPORT_SYMBOL vmlinux 0x1b6314fd in_aton +EXPORT_SYMBOL vmlinux 0x1b7d3878 pnp_register_driver +EXPORT_SYMBOL vmlinux 0x1b827b13 mmc_erase_group_aligned +EXPORT_SYMBOL vmlinux 0x1b82fefa md_unplug +EXPORT_SYMBOL vmlinux 0x1b8a88ba sockfd_lookup +EXPORT_SYMBOL vmlinux 0x1b8b95ad i8042_unlock_chip +EXPORT_SYMBOL vmlinux 0x1b9e0ff1 scsilun_to_int +EXPORT_SYMBOL vmlinux 0x1bb42447 delete_from_page_cache +EXPORT_SYMBOL vmlinux 0x1bbc75cf devm_iounmap +EXPORT_SYMBOL vmlinux 0x1bc06e33 __pagevec_release +EXPORT_SYMBOL vmlinux 0x1bd3e46f arp_send +EXPORT_SYMBOL vmlinux 0x1bdce474 x86_hyper_xen_hvm +EXPORT_SYMBOL vmlinux 0x1c04e03d i2c_transfer +EXPORT_SYMBOL vmlinux 0x1c210a6e cdrom_ioctl +EXPORT_SYMBOL vmlinux 0x1c212a7d skb_checksum +EXPORT_SYMBOL vmlinux 0x1c40df16 tcp_md5_hash_header +EXPORT_SYMBOL vmlinux 0x1c46347f dma_declare_coherent_memory +EXPORT_SYMBOL vmlinux 0x1c7e2ea2 dev_getfirstbyhwtype +EXPORT_SYMBOL vmlinux 0x1c7fa3d4 tcf_exts_dump +EXPORT_SYMBOL vmlinux 0x1c8a04b0 acpi_reset +EXPORT_SYMBOL vmlinux 0x1cc5d581 scsi_device_put +EXPORT_SYMBOL vmlinux 0x1cd33e2f __pagevec_lru_add +EXPORT_SYMBOL vmlinux 0x1cfac110 inet_getname +EXPORT_SYMBOL vmlinux 0x1d2b918e mount_pseudo +EXPORT_SYMBOL vmlinux 0x1d4197b6 sk_receive_skb +EXPORT_SYMBOL vmlinux 0x1d5e4b80 netdev_state_change +EXPORT_SYMBOL vmlinux 0x1d6aaab7 nf_ip_checksum +EXPORT_SYMBOL vmlinux 0x1d76ffeb bdgrab +EXPORT_SYMBOL vmlinux 0x1d875c32 dquot_quota_sync +EXPORT_SYMBOL vmlinux 0x1da3d44a writeback_inodes_sb +EXPORT_SYMBOL vmlinux 0x1dac6344 __frontswap_store +EXPORT_SYMBOL vmlinux 0x1dadf807 pci_request_selected_regions_exclusive +EXPORT_SYMBOL vmlinux 0x1dc36131 fb_destroy_modedb +EXPORT_SYMBOL vmlinux 0x1dd212d4 vga_switcheroo_register_client +EXPORT_SYMBOL vmlinux 0x1dd571e6 fb_copy_cmap +EXPORT_SYMBOL vmlinux 0x1dd9a6aa tcf_destroy_chain +EXPORT_SYMBOL vmlinux 0x1de8e908 mnt_unpin +EXPORT_SYMBOL vmlinux 0x1e047854 warn_slowpath_fmt +EXPORT_SYMBOL vmlinux 0x1e0c2be4 ioremap_wc +EXPORT_SYMBOL vmlinux 0x1e26be3b get_anon_bdev +EXPORT_SYMBOL vmlinux 0x1e457c8a dcbnl_ieee_notify +EXPORT_SYMBOL vmlinux 0x1e4c177b mnt_drop_write_file +EXPORT_SYMBOL vmlinux 0x1e6d26a8 strstr +EXPORT_SYMBOL vmlinux 0x1e6d5fc0 genphy_suspend +EXPORT_SYMBOL vmlinux 0x1e810b43 insert_inode_locked +EXPORT_SYMBOL vmlinux 0x1e86f4a3 freeze_bdev +EXPORT_SYMBOL vmlinux 0x1e92bcca swiotlb_sync_sg_for_cpu +EXPORT_SYMBOL vmlinux 0x1e9edfb7 seq_hlist_start_head_rcu +EXPORT_SYMBOL vmlinux 0x1e9f59a7 ps2_init +EXPORT_SYMBOL vmlinux 0x1ec3bed9 hdmi_audio_infoframe_init +EXPORT_SYMBOL vmlinux 0x1ec4eb34 flex_array_prealloc +EXPORT_SYMBOL vmlinux 0x1ed7272a tty_check_change +EXPORT_SYMBOL vmlinux 0x1ee70a0e try_to_release_page +EXPORT_SYMBOL vmlinux 0x1ef32093 netdev_class_remove_file +EXPORT_SYMBOL vmlinux 0x1ef46678 tty_port_open +EXPORT_SYMBOL vmlinux 0x1efd5e0f kernel_getsockopt +EXPORT_SYMBOL vmlinux 0x1f0cafd2 nf_setsockopt +EXPORT_SYMBOL vmlinux 0x1f0f8523 brioctl_set +EXPORT_SYMBOL vmlinux 0x1f15f0c1 install_exec_creds +EXPORT_SYMBOL vmlinux 0x1f301908 devfreq_monitor_stop +EXPORT_SYMBOL vmlinux 0x1f364c47 pnp_is_active +EXPORT_SYMBOL vmlinux 0x1f3a361a abx500_register_ops +EXPORT_SYMBOL vmlinux 0x1f607d24 tty_set_operations +EXPORT_SYMBOL vmlinux 0x1f7340bc d_add_ci +EXPORT_SYMBOL vmlinux 0x1f75f7c0 set_blocksize +EXPORT_SYMBOL vmlinux 0x1f7e807f kstrtoint_from_user +EXPORT_SYMBOL vmlinux 0x1f8202f6 input_allocate_device +EXPORT_SYMBOL vmlinux 0x1fb920b6 alloc_xenballooned_pages +EXPORT_SYMBOL vmlinux 0x1fbd16da ip_tos2prio +EXPORT_SYMBOL vmlinux 0x1fc20e73 update_devfreq +EXPORT_SYMBOL vmlinux 0x1fd07fff kdb_grepping_flag +EXPORT_SYMBOL vmlinux 0x1fe912f1 netdev_alloc_frag +EXPORT_SYMBOL vmlinux 0x1fe9f800 unregister_cpu_notifier +EXPORT_SYMBOL vmlinux 0x1fedf0f4 __request_region +EXPORT_SYMBOL vmlinux 0x20000329 simple_strtoul +EXPORT_SYMBOL vmlinux 0x2005e68a acpi_remove_fixed_event_handler +EXPORT_SYMBOL vmlinux 0x202980c4 locks_init_lock +EXPORT_SYMBOL vmlinux 0x202d2377 ndisc_mc_map +EXPORT_SYMBOL vmlinux 0x203e56f5 pnpacpi_protocol +EXPORT_SYMBOL vmlinux 0x204c19f5 tcp_alloc_md5sig_pool +EXPORT_SYMBOL vmlinux 0x205ccdc6 scsi_is_host_device +EXPORT_SYMBOL vmlinux 0x2072ee9b request_threaded_irq +EXPORT_SYMBOL vmlinux 0x2079d69b mb_cache_entry_alloc +EXPORT_SYMBOL vmlinux 0x208739f6 acpi_load_table +EXPORT_SYMBOL vmlinux 0x208d3673 tcp_disconnect +EXPORT_SYMBOL vmlinux 0x20a789ac irq_set_chip_data +EXPORT_SYMBOL vmlinux 0x20b82553 dev_get_by_index_rcu +EXPORT_SYMBOL vmlinux 0x20b8eb7e d_path +EXPORT_SYMBOL vmlinux 0x20c55ae0 sscanf +EXPORT_SYMBOL vmlinux 0x20c6192f intel_scu_ipc_ioread32 +EXPORT_SYMBOL vmlinux 0x20d1897f blk_rq_map_integrity_sg +EXPORT_SYMBOL vmlinux 0x20e0cfa8 tcp_v4_conn_request +EXPORT_SYMBOL vmlinux 0x21041166 pci_get_device +EXPORT_SYMBOL vmlinux 0x21315700 param_get_bool +EXPORT_SYMBOL vmlinux 0x215a45a1 blk_queue_dma_pad +EXPORT_SYMBOL vmlinux 0x215c1517 jbd2_journal_revoke +EXPORT_SYMBOL vmlinux 0x215ebd78 bitrev16 +EXPORT_SYMBOL vmlinux 0x217dda13 flex_array_get +EXPORT_SYMBOL vmlinux 0x21829a39 dev_alert +EXPORT_SYMBOL vmlinux 0x2189935d prepare_binprm +EXPORT_SYMBOL vmlinux 0x21964605 devfreq_resume_device +EXPORT_SYMBOL vmlinux 0x2199337a down_timeout +EXPORT_SYMBOL vmlinux 0x219fabf2 softnet_data +EXPORT_SYMBOL vmlinux 0x21b0af4e elv_unregister_queue +EXPORT_SYMBOL vmlinux 0x21de412a simple_unlink +EXPORT_SYMBOL vmlinux 0x21e0ea22 acpi_get_id +EXPORT_SYMBOL vmlinux 0x21eec9f4 tcp_mtup_init +EXPORT_SYMBOL vmlinux 0x21fb443e _raw_spin_lock_irqsave +EXPORT_SYMBOL vmlinux 0x21fb9b08 pci_alloc_dev +EXPORT_SYMBOL vmlinux 0x22152683 xfrm_policy_destroy +EXPORT_SYMBOL vmlinux 0x221779b8 skb_copy_datagram_iovec +EXPORT_SYMBOL vmlinux 0x221df4d5 dev_remove_pack +EXPORT_SYMBOL vmlinux 0x221fbe6f security_path_link +EXPORT_SYMBOL vmlinux 0x222e7ce2 sysfs_streq +EXPORT_SYMBOL vmlinux 0x22341f56 xfrm_unregister_km +EXPORT_SYMBOL vmlinux 0x2256d28e dquot_file_open +EXPORT_SYMBOL vmlinux 0x2276db98 kstrtoint +EXPORT_SYMBOL vmlinux 0x22986884 read_cache_pages +EXPORT_SYMBOL vmlinux 0x22ae6fcf crypto_sha256_update +EXPORT_SYMBOL vmlinux 0x22b325d5 kd_mksound +EXPORT_SYMBOL vmlinux 0x22b4c19b seq_bitmap_list +EXPORT_SYMBOL vmlinux 0x22d6a6aa ppp_dev_name +EXPORT_SYMBOL vmlinux 0x22f0fc50 jbd2_journal_ack_err +EXPORT_SYMBOL vmlinux 0x2305b678 bio_endio +EXPORT_SYMBOL vmlinux 0x2306e22c filp_close +EXPORT_SYMBOL vmlinux 0x231d4001 fb_edid_add_monspecs +EXPORT_SYMBOL vmlinux 0x234b1178 scsi_add_host_with_dma +EXPORT_SYMBOL vmlinux 0x23532c4d ftrace_print_flags_seq +EXPORT_SYMBOL vmlinux 0x23738d9c neigh_event_ns +EXPORT_SYMBOL vmlinux 0x2378c2f7 pci_unmap_rom +EXPORT_SYMBOL vmlinux 0x23935e22 audit_log_start +EXPORT_SYMBOL vmlinux 0x23a574fd security_secmark_relabel_packet +EXPORT_SYMBOL vmlinux 0x23b25832 nf_register_queue_handler +EXPORT_SYMBOL vmlinux 0x23b3a5a2 pci_set_master +EXPORT_SYMBOL vmlinux 0x23b9d6e2 mangle_path +EXPORT_SYMBOL vmlinux 0x23c8f257 slhc_uncompress +EXPORT_SYMBOL vmlinux 0x23cc0e28 dquot_claim_space_nodirty +EXPORT_SYMBOL vmlinux 0x23cfe53e tty_port_hangup +EXPORT_SYMBOL vmlinux 0x23f44b59 jbd2_journal_lock_updates +EXPORT_SYMBOL vmlinux 0x23fd3028 vmalloc_node +EXPORT_SYMBOL vmlinux 0x240b5e7e deactivate_locked_super +EXPORT_SYMBOL vmlinux 0x24212d86 __frontswap_invalidate_page +EXPORT_SYMBOL vmlinux 0x24428be5 strncpy_from_user +EXPORT_SYMBOL vmlinux 0x2459bbcc console_set_on_cmdline +EXPORT_SYMBOL vmlinux 0x247b9e98 __genl_register_family_with_ops +EXPORT_SYMBOL vmlinux 0x247d4ad1 splice_from_pipe_feed +EXPORT_SYMBOL vmlinux 0x2482e688 vsprintf +EXPORT_SYMBOL vmlinux 0x2490a4cc ida_remove +EXPORT_SYMBOL vmlinux 0x249da1f4 dev_warn +EXPORT_SYMBOL vmlinux 0x24a114ea put_io_context +EXPORT_SYMBOL vmlinux 0x24c375c6 __inc_zone_page_state +EXPORT_SYMBOL vmlinux 0x24c68ae5 qdisc_warn_nonwc +EXPORT_SYMBOL vmlinux 0x24d3557f sk_release_kernel +EXPORT_SYMBOL vmlinux 0x24d7b4eb cancel_delayed_work_sync +EXPORT_SYMBOL vmlinux 0x24f169fc down_read_trylock +EXPORT_SYMBOL vmlinux 0x24f58be1 pci_request_regions_exclusive +EXPORT_SYMBOL vmlinux 0x24fdac79 wake_bit_function +EXPORT_SYMBOL vmlinux 0x24fe0dff blk_queue_dma_alignment +EXPORT_SYMBOL vmlinux 0x250113b4 memory_read_from_buffer +EXPORT_SYMBOL vmlinux 0x2518a834 i2c_clients_command +EXPORT_SYMBOL vmlinux 0x25277497 rfkill_register +EXPORT_SYMBOL vmlinux 0x252a8646 max8925_bulk_write +EXPORT_SYMBOL vmlinux 0x253bdb78 param_get_int +EXPORT_SYMBOL vmlinux 0x256c2813 posix_lock_file_wait +EXPORT_SYMBOL vmlinux 0x256f379c dev_kfree_skb_any +EXPORT_SYMBOL vmlinux 0x25820c64 fs_overflowuid +EXPORT_SYMBOL vmlinux 0x259cb561 genl_notify +EXPORT_SYMBOL vmlinux 0x25c3a5bb __mark_inode_dirty +EXPORT_SYMBOL vmlinux 0x25c677c4 mac_pton +EXPORT_SYMBOL vmlinux 0x25ce81ad inode_claim_rsv_space +EXPORT_SYMBOL vmlinux 0x25e61004 mmc_suspend_host +EXPORT_SYMBOL vmlinux 0x25fb5c44 acpi_bus_hot_remove_device +EXPORT_SYMBOL vmlinux 0x260d0169 padata_start +EXPORT_SYMBOL vmlinux 0x260e1fad __page_symlink +EXPORT_SYMBOL vmlinux 0x263beb75 ecryptfs_get_versions +EXPORT_SYMBOL vmlinux 0x26452525 scsi_register +EXPORT_SYMBOL vmlinux 0x2650d835 sysctl_ip_early_demux +EXPORT_SYMBOL vmlinux 0x265dd82c i2c_smbus_read_byte +EXPORT_SYMBOL vmlinux 0x2678bde8 sb_min_blocksize +EXPORT_SYMBOL vmlinux 0x26852f8e ida_simple_remove +EXPORT_SYMBOL vmlinux 0x2685c3d7 __sg_alloc_table +EXPORT_SYMBOL vmlinux 0x268cc6a2 sys_close +EXPORT_SYMBOL vmlinux 0x2697f5f0 udp_push_pending_frames +EXPORT_SYMBOL vmlinux 0x26bb950b __kfifo_from_user_r +EXPORT_SYMBOL vmlinux 0x26c8e0c5 pcim_iomap_table +EXPORT_SYMBOL vmlinux 0x26d955d1 __ww_mutex_lock +EXPORT_SYMBOL vmlinux 0x26e76fb8 sysctl_udp_wmem_min +EXPORT_SYMBOL vmlinux 0x26eede70 blkdev_get +EXPORT_SYMBOL vmlinux 0x26f0453a blk_set_default_limits +EXPORT_SYMBOL vmlinux 0x26fd7046 d_alloc_name +EXPORT_SYMBOL vmlinux 0x27017aa3 xfrm_unregister_type +EXPORT_SYMBOL vmlinux 0x271cba95 acpi_bus_private_data_handler +EXPORT_SYMBOL vmlinux 0x272183ef inet_dgram_ops +EXPORT_SYMBOL vmlinux 0x2728ae78 neigh_parms_release +EXPORT_SYMBOL vmlinux 0x272d394e mtrr_del +EXPORT_SYMBOL vmlinux 0x274d08dc __kfifo_dma_out_prepare +EXPORT_SYMBOL vmlinux 0x27571caf unregister_binfmt +EXPORT_SYMBOL vmlinux 0x27810361 acpi_os_wait_events_complete +EXPORT_SYMBOL vmlinux 0x27864d57 memparse +EXPORT_SYMBOL vmlinux 0x27ae7d0c ec_transaction +EXPORT_SYMBOL vmlinux 0x27bbf221 disable_irq_nosync +EXPORT_SYMBOL vmlinux 0x27c2197f param_set_short +EXPORT_SYMBOL vmlinux 0x27d5d516 vfs_rmdir +EXPORT_SYMBOL vmlinux 0x281823c5 __kfifo_out_peek +EXPORT_SYMBOL vmlinux 0x282b7422 get_write_access +EXPORT_SYMBOL vmlinux 0x283fc5b2 __get_user_pages +EXPORT_SYMBOL vmlinux 0x284a0069 pci_get_class +EXPORT_SYMBOL vmlinux 0x2873379e mdio_bus_type +EXPORT_SYMBOL vmlinux 0x287bf28b dev_add_offload +EXPORT_SYMBOL vmlinux 0x287fd72c poll_initwait +EXPORT_SYMBOL vmlinux 0x28a2ed02 scsi_build_sense_buffer +EXPORT_SYMBOL vmlinux 0x28add852 devm_request_threaded_irq +EXPORT_SYMBOL vmlinux 0x28b715a6 isapnp_cfg_end +EXPORT_SYMBOL vmlinux 0x28c1b5dd elv_register_queue +EXPORT_SYMBOL vmlinux 0x28e1a6b9 nla_put +EXPORT_SYMBOL vmlinux 0x28efc9e7 nf_reinject +EXPORT_SYMBOL vmlinux 0x290c785c key_link +EXPORT_SYMBOL vmlinux 0x29369109 eth_header_cache +EXPORT_SYMBOL vmlinux 0x294523e8 sk_prot_clear_portaddr_nulls +EXPORT_SYMBOL vmlinux 0x29537c9e alloc_chrdev_region +EXPORT_SYMBOL vmlinux 0x2958cd4c bdevname +EXPORT_SYMBOL vmlinux 0x296456fe clear_bdi_congested +EXPORT_SYMBOL vmlinux 0x296f1b62 vfs_mkdir +EXPORT_SYMBOL vmlinux 0x29745608 iw_handler_get_spy +EXPORT_SYMBOL vmlinux 0x29b33827 journal_restart +EXPORT_SYMBOL vmlinux 0x29c58b56 pm860x_reg_read +EXPORT_SYMBOL vmlinux 0x29fdda53 kstrtos8_from_user +EXPORT_SYMBOL vmlinux 0x2a093a98 simple_transaction_read +EXPORT_SYMBOL vmlinux 0x2a0ae4bf generic_pipe_buf_confirm +EXPORT_SYMBOL vmlinux 0x2a0b49f9 generic_pipe_buf_map +EXPORT_SYMBOL vmlinux 0x2a0e0f63 sk_reset_timer +EXPORT_SYMBOL vmlinux 0x2a0edddb wireless_send_event +EXPORT_SYMBOL vmlinux 0x2a303d4d check_signature +EXPORT_SYMBOL vmlinux 0x2a375381 ip6_expire_frag_queue +EXPORT_SYMBOL vmlinux 0x2a37d074 dma_pool_free +EXPORT_SYMBOL vmlinux 0x2a5def2f intel_scu_ipc_iowrite32 +EXPORT_SYMBOL vmlinux 0x2a79ac13 clkdev_add +EXPORT_SYMBOL vmlinux 0x2a86c6a4 ether_setup +EXPORT_SYMBOL vmlinux 0x2aa0e4fc strncasecmp +EXPORT_SYMBOL vmlinux 0x2aa425bc elv_rb_find +EXPORT_SYMBOL vmlinux 0x2ab3bb53 __nlmsg_put +EXPORT_SYMBOL vmlinux 0x2ad27d6a blk_queue_update_dma_alignment +EXPORT_SYMBOL vmlinux 0x2addbbf8 kernel_connect +EXPORT_SYMBOL vmlinux 0x2b0ba2b0 scsi_sense_desc_find +EXPORT_SYMBOL vmlinux 0x2b164d03 dm_unregister_target +EXPORT_SYMBOL vmlinux 0x2b2438a9 km_query +EXPORT_SYMBOL vmlinux 0x2b2ce78b kstrtos8 +EXPORT_SYMBOL vmlinux 0x2b318c91 generic_pipe_buf_get +EXPORT_SYMBOL vmlinux 0x2b3b5db9 kill_anon_super +EXPORT_SYMBOL vmlinux 0x2b554aaf request_firmware_nowait +EXPORT_SYMBOL vmlinux 0x2b636aed blk_queue_max_hw_sectors +EXPORT_SYMBOL vmlinux 0x2b95a17d phy_connect +EXPORT_SYMBOL vmlinux 0x2b9da7a4 genl_lock +EXPORT_SYMBOL vmlinux 0x2ba707a8 sysctl_tcp_low_latency +EXPORT_SYMBOL vmlinux 0x2bb55d6e acpi_remove_notify_handler +EXPORT_SYMBOL vmlinux 0x2bb95c07 __sk_mem_reclaim +EXPORT_SYMBOL vmlinux 0x2bbec6b2 search_binary_handler +EXPORT_SYMBOL vmlinux 0x2bc95bd4 memset +EXPORT_SYMBOL vmlinux 0x2bddc9b0 xfrm_dst_ifdown +EXPORT_SYMBOL vmlinux 0x2bf710b3 simple_dir_operations +EXPORT_SYMBOL vmlinux 0x2bf8d577 sleep_on_timeout +EXPORT_SYMBOL vmlinux 0x2bfeb410 acpi_get_handle +EXPORT_SYMBOL vmlinux 0x2c14323a kstrtol_from_user +EXPORT_SYMBOL vmlinux 0x2c1c7fb6 pcie_port_service_unregister +EXPORT_SYMBOL vmlinux 0x2c256e1f input_scancode_to_scalar +EXPORT_SYMBOL vmlinux 0x2c3a019a xfrm_policy_insert +EXPORT_SYMBOL vmlinux 0x2c512c04 skb_queue_tail +EXPORT_SYMBOL vmlinux 0x2c5a69c9 xfrm_policy_delete +EXPORT_SYMBOL vmlinux 0x2c6fe739 inet_csk_reset_keepalive_timer +EXPORT_SYMBOL vmlinux 0x2c7dccc5 generic_file_remap_pages +EXPORT_SYMBOL vmlinux 0x2c899690 md_write_start +EXPORT_SYMBOL vmlinux 0x2c900d91 cpufreq_put_global_kobject +EXPORT_SYMBOL vmlinux 0x2c97a5d4 netdev_upper_dev_link +EXPORT_SYMBOL vmlinux 0x2c9b4bf4 kernel_bind +EXPORT_SYMBOL vmlinux 0x2c9ce6c1 file_ns_capable +EXPORT_SYMBOL vmlinux 0x2ca84494 tcp_rcv_established +EXPORT_SYMBOL vmlinux 0x2cd21a5c phy_scan_fixups +EXPORT_SYMBOL vmlinux 0x2cd7390c mfd_cell_enable +EXPORT_SYMBOL vmlinux 0x2d140a58 genl_unlock +EXPORT_SYMBOL vmlinux 0x2d24b7a0 commit_creds +EXPORT_SYMBOL vmlinux 0x2d3385d3 system_wq +EXPORT_SYMBOL vmlinux 0x2d37342e cpu_online_mask +EXPORT_SYMBOL vmlinux 0x2d4d93e2 linkwatch_fire_event +EXPORT_SYMBOL vmlinux 0x2d709f43 user_path_create +EXPORT_SYMBOL vmlinux 0x2d7dc482 skb_find_text +EXPORT_SYMBOL vmlinux 0x2d89342a scsi_show_sense_hdr +EXPORT_SYMBOL vmlinux 0x2d91665b unregister_cdrom +EXPORT_SYMBOL vmlinux 0x2dcf37d5 __scsi_add_device +EXPORT_SYMBOL vmlinux 0x2dd16564 arch_register_cpu +EXPORT_SYMBOL vmlinux 0x2dd20ae0 serio_rescan +EXPORT_SYMBOL vmlinux 0x2deda4a1 security_sk_classify_flow +EXPORT_SYMBOL vmlinux 0x2dedc4c2 acpi_format_exception +EXPORT_SYMBOL vmlinux 0x2def7f76 rtc_cmos_write +EXPORT_SYMBOL vmlinux 0x2df3527b inet6_register_protosw +EXPORT_SYMBOL vmlinux 0x2e131de2 skb_store_bits +EXPORT_SYMBOL vmlinux 0x2e1ca751 clk_put +EXPORT_SYMBOL vmlinux 0x2e281e99 __cleancache_invalidate_fs +EXPORT_SYMBOL vmlinux 0x2e2ca981 alloc_file +EXPORT_SYMBOL vmlinux 0x2e2ce9e0 sysctl_tcp_syncookies +EXPORT_SYMBOL vmlinux 0x2e464556 __getblk +EXPORT_SYMBOL vmlinux 0x2e60bace memcpy +EXPORT_SYMBOL vmlinux 0x2e68d8f2 dev_uc_unsync +EXPORT_SYMBOL vmlinux 0x2e713b1a idr_init +EXPORT_SYMBOL vmlinux 0x2e780f6a blk_queue_free_tags +EXPORT_SYMBOL vmlinux 0x2e84b50e pci_find_bus +EXPORT_SYMBOL vmlinux 0x2ea3efd2 serio_open +EXPORT_SYMBOL vmlinux 0x2ec524ad __kfifo_in_r +EXPORT_SYMBOL vmlinux 0x2ecb60fc scsi_nonblockable_ioctl +EXPORT_SYMBOL vmlinux 0x2eeceb42 sk_chk_filter +EXPORT_SYMBOL vmlinux 0x2ef63ad6 scsi_dev_info_list_del_keyed +EXPORT_SYMBOL vmlinux 0x2f03fc4b security_secmark_refcount_inc +EXPORT_SYMBOL vmlinux 0x2f064b55 allocate_resource +EXPORT_SYMBOL vmlinux 0x2f22134f input_set_keycode +EXPORT_SYMBOL vmlinux 0x2f287f0d copy_to_user +EXPORT_SYMBOL vmlinux 0x2f384db3 acpi_is_video_device +EXPORT_SYMBOL vmlinux 0x2f73157b sg_miter_next +EXPORT_SYMBOL vmlinux 0x2f78f0c9 sk_run_filter +EXPORT_SYMBOL vmlinux 0x2f99f287 dentry_unhash +EXPORT_SYMBOL vmlinux 0x2fb6de5d add_device_randomness +EXPORT_SYMBOL vmlinux 0x2fce8ac6 skb_queue_purge +EXPORT_SYMBOL vmlinux 0x2fdc083d jbd2_journal_update_sb_errno +EXPORT_SYMBOL vmlinux 0x2fe252cc unregister_inet6addr_notifier +EXPORT_SYMBOL vmlinux 0x2fedee05 xfrm_state_update +EXPORT_SYMBOL vmlinux 0x30001c06 simple_statfs +EXPORT_SYMBOL vmlinux 0x3010ac88 tcp_md5_hash_key +EXPORT_SYMBOL vmlinux 0x301acd39 bioset_free +EXPORT_SYMBOL vmlinux 0x30226ddf agp_device_command +EXPORT_SYMBOL vmlinux 0x3048b752 sock_tx_timestamp +EXPORT_SYMBOL vmlinux 0x3054e0a8 pci_disable_msi +EXPORT_SYMBOL vmlinux 0x30557a40 pci_scan_root_bus +EXPORT_SYMBOL vmlinux 0x30617a66 set_security_override_from_ctx +EXPORT_SYMBOL vmlinux 0x306a6a48 elv_abort_queue +EXPORT_SYMBOL vmlinux 0x307c2fd0 generic_check_addressable +EXPORT_SYMBOL vmlinux 0x308d6f37 scsi_get_host_dev +EXPORT_SYMBOL vmlinux 0x3091e29b journal_load +EXPORT_SYMBOL vmlinux 0x30a80826 __kfifo_from_user +EXPORT_SYMBOL vmlinux 0x30aff9bb tcp_init_sock +EXPORT_SYMBOL vmlinux 0x30b8804d filemap_write_and_wait_range +EXPORT_SYMBOL vmlinux 0x30cada8f radix_tree_next_hole +EXPORT_SYMBOL vmlinux 0x30d348e4 tcp_shutdown +EXPORT_SYMBOL vmlinux 0x30e74134 tty_termios_copy_hw +EXPORT_SYMBOL vmlinux 0x3102d70b frontswap_curr_pages +EXPORT_SYMBOL vmlinux 0x310917fe sort +EXPORT_SYMBOL vmlinux 0x31260125 phy_register_fixup_for_id +EXPORT_SYMBOL vmlinux 0x31289cae netdev_crit +EXPORT_SYMBOL vmlinux 0x313ad274 bio_add_page +EXPORT_SYMBOL vmlinux 0x3145216f pci_dev_present +EXPORT_SYMBOL vmlinux 0x3147857d default_red +EXPORT_SYMBOL vmlinux 0x31897c47 udp_seq_open +EXPORT_SYMBOL vmlinux 0x318cadb1 reciprocal_value +EXPORT_SYMBOL vmlinux 0x3191f109 __krealloc +EXPORT_SYMBOL vmlinux 0x31ce118b xfrm4_rcv +EXPORT_SYMBOL vmlinux 0x31e76b57 recalibrate_cpu_khz +EXPORT_SYMBOL vmlinux 0x31e893be pci_biosrom_size +EXPORT_SYMBOL vmlinux 0x31f0bb78 __kmap_atomic_idx +EXPORT_SYMBOL vmlinux 0x3202435a wrmsr_safe_regs +EXPORT_SYMBOL vmlinux 0x32183ccf set_create_files_as +EXPORT_SYMBOL vmlinux 0x322f48d4 abx500_dump_all_banks +EXPORT_SYMBOL vmlinux 0x3232c37f sync_inode +EXPORT_SYMBOL vmlinux 0x3236e516 tty_vhangup +EXPORT_SYMBOL vmlinux 0x323968d8 __bforget +EXPORT_SYMBOL vmlinux 0x3242e245 vfs_fsync +EXPORT_SYMBOL vmlinux 0x3255972d hdmi_vendor_infoframe_pack +EXPORT_SYMBOL vmlinux 0x326425ca pci_unmap_biosrom +EXPORT_SYMBOL vmlinux 0x3274b08e hdmi_avi_infoframe_init +EXPORT_SYMBOL vmlinux 0x3286d42f netpoll_setup +EXPORT_SYMBOL vmlinux 0x32b88354 tty_schedule_flip +EXPORT_SYMBOL vmlinux 0x32bb04c8 from_kqid +EXPORT_SYMBOL vmlinux 0x32c1a931 inode_dio_wait +EXPORT_SYMBOL vmlinux 0x32cea339 tcp_sockets_allocated +EXPORT_SYMBOL vmlinux 0x32d1ed0a iterate_mounts +EXPORT_SYMBOL vmlinux 0x32d81015 mmc_stop_bkops +EXPORT_SYMBOL vmlinux 0x32eeaded _raw_write_lock_bh +EXPORT_SYMBOL vmlinux 0x32f7885f inet_frags_init +EXPORT_SYMBOL vmlinux 0x330cbdbe dmam_alloc_noncoherent +EXPORT_SYMBOL vmlinux 0x33177c6c generic_make_request +EXPORT_SYMBOL vmlinux 0x33226cbc wait_on_sync_kiocb +EXPORT_SYMBOL vmlinux 0x333c9380 simple_dir_inode_operations +EXPORT_SYMBOL vmlinux 0x33400da3 dquot_transfer +EXPORT_SYMBOL vmlinux 0x3343538f datagram_poll +EXPORT_SYMBOL vmlinux 0x336d639d agp_allocate_memory +EXPORT_SYMBOL vmlinux 0x337cce46 put_cmsg +EXPORT_SYMBOL vmlinux 0x339d69b0 filemap_page_mkwrite +EXPORT_SYMBOL vmlinux 0x33ab90a3 aio_put_req +EXPORT_SYMBOL vmlinux 0x33ac417f acpi_os_hotplug_execute +EXPORT_SYMBOL vmlinux 0x33ac8944 submit_bh +EXPORT_SYMBOL vmlinux 0x33dbfd93 tcp_memory_allocated +EXPORT_SYMBOL vmlinux 0x33f0768c cpufreq_quick_get_max +EXPORT_SYMBOL vmlinux 0x34184afe current_kernel_time +EXPORT_SYMBOL vmlinux 0x341ec8ae page_zero_new_buffers +EXPORT_SYMBOL vmlinux 0x342a7375 free_xenballooned_pages +EXPORT_SYMBOL vmlinux 0x342f60fe apm_info +EXPORT_SYMBOL vmlinux 0x3437d4a9 proc_doulongvec_ms_jiffies_minmax +EXPORT_SYMBOL vmlinux 0x34530bd7 submit_bio_wait +EXPORT_SYMBOL vmlinux 0x346784ee __alloc_pages_nodemask +EXPORT_SYMBOL vmlinux 0x3469b3e7 get_super +EXPORT_SYMBOL vmlinux 0x347013de nla_validate +EXPORT_SYMBOL vmlinux 0x347ba844 make_bad_inode +EXPORT_SYMBOL vmlinux 0x347fd65a elevator_change +EXPORT_SYMBOL vmlinux 0x349cba85 strchr +EXPORT_SYMBOL vmlinux 0x34bcd9cd agp_generic_free_by_type +EXPORT_SYMBOL vmlinux 0x34c6cab7 generic_readlink +EXPORT_SYMBOL vmlinux 0x34e1f833 acpi_notifier_call_chain +EXPORT_SYMBOL vmlinux 0x34ec284e jbd2_log_wait_commit +EXPORT_SYMBOL vmlinux 0x34f3484e security_tun_dev_attach_queue +EXPORT_SYMBOL vmlinux 0x34f4c41a netpoll_rx_enable +EXPORT_SYMBOL vmlinux 0x34f68a44 blk_end_request_all +EXPORT_SYMBOL vmlinux 0x34fd7b1d generic_setlease +EXPORT_SYMBOL vmlinux 0x3517383e register_reboot_notifier +EXPORT_SYMBOL vmlinux 0x352b2665 xfrm_state_check_expire +EXPORT_SYMBOL vmlinux 0x35445d53 kset_register +EXPORT_SYMBOL vmlinux 0x3567bc42 kernel_setsockopt +EXPORT_SYMBOL vmlinux 0x35698939 inet_stream_connect +EXPORT_SYMBOL vmlinux 0x3573bd31 init_buffer +EXPORT_SYMBOL vmlinux 0x3580294f dcb_setapp +EXPORT_SYMBOL vmlinux 0x358b80c4 scsi_unregister +EXPORT_SYMBOL vmlinux 0x358ba561 I_BDEV +EXPORT_SYMBOL vmlinux 0x358f4b9b jbd2_journal_get_write_access +EXPORT_SYMBOL vmlinux 0x359ab70e tty_register_ldisc +EXPORT_SYMBOL vmlinux 0x35b30d53 mmc_fixup_device +EXPORT_SYMBOL vmlinux 0x35b6b772 param_ops_charp +EXPORT_SYMBOL vmlinux 0x35d2e905 rtnl_configure_link +EXPORT_SYMBOL vmlinux 0x35e9db4e vlan_vid_add +EXPORT_SYMBOL vmlinux 0x360b1afe probe_irq_mask +EXPORT_SYMBOL vmlinux 0x360b8d16 x86_cpu_to_apicid +EXPORT_SYMBOL vmlinux 0x362e49e1 mmc_add_host +EXPORT_SYMBOL vmlinux 0x362ef408 _copy_from_user +EXPORT_SYMBOL vmlinux 0x3678856a bd_set_size +EXPORT_SYMBOL vmlinux 0x367c5531 gen_pool_destroy +EXPORT_SYMBOL vmlinux 0x3686ea09 spi_print_msg +EXPORT_SYMBOL vmlinux 0x369ff918 phy_disconnect +EXPORT_SYMBOL vmlinux 0x36aad357 __wake_up_bit +EXPORT_SYMBOL vmlinux 0x36c6af51 intel_scu_ipc_iowrite8 +EXPORT_SYMBOL vmlinux 0x36c741c9 blkdev_issue_write_same +EXPORT_SYMBOL vmlinux 0x36d9e394 input_handler_for_each_handle +EXPORT_SYMBOL vmlinux 0x36e26fed vfs_open +EXPORT_SYMBOL vmlinux 0x36e360e3 __hw_addr_add_multiple +EXPORT_SYMBOL vmlinux 0x36ecd6e1 idr_remove +EXPORT_SYMBOL vmlinux 0x36f9cd94 rcu_is_cpu_idle +EXPORT_SYMBOL vmlinux 0x3709faca security_d_instantiate +EXPORT_SYMBOL vmlinux 0x370a7749 alloc_etherdev_mqs +EXPORT_SYMBOL vmlinux 0x372d26f3 __netif_schedule +EXPORT_SYMBOL vmlinux 0x373e7823 netlink_ack +EXPORT_SYMBOL vmlinux 0x3744cf36 vmalloc_to_pfn +EXPORT_SYMBOL vmlinux 0x374fe40c cpufreq_global_kobject +EXPORT_SYMBOL vmlinux 0x37544923 dma_common_get_sgtable +EXPORT_SYMBOL vmlinux 0x375848e3 max8998_bulk_read +EXPORT_SYMBOL vmlinux 0x376d3979 sock_no_poll +EXPORT_SYMBOL vmlinux 0x3771a9cb xfrm_state_lookup_byaddr +EXPORT_SYMBOL vmlinux 0x3779ea59 kmap_atomic +EXPORT_SYMBOL vmlinux 0x3788f3b3 thermal_cdev_update +EXPORT_SYMBOL vmlinux 0x37977519 generic_write_checks +EXPORT_SYMBOL vmlinux 0x37a8c2e3 bdi_register_dev +EXPORT_SYMBOL vmlinux 0x37b777df param_set_copystring +EXPORT_SYMBOL vmlinux 0x37befc70 jiffies_to_msecs +EXPORT_SYMBOL vmlinux 0x37bfb442 pci_setup_cardbus +EXPORT_SYMBOL vmlinux 0x37c4696c pci_set_ltr +EXPORT_SYMBOL vmlinux 0x37ca8eb8 security_inode_readlink +EXPORT_SYMBOL vmlinux 0x37db8f19 dmi_get_date +EXPORT_SYMBOL vmlinux 0x37e74642 get_jiffies_64 +EXPORT_SYMBOL vmlinux 0x37f614b7 __kfifo_len_r +EXPORT_SYMBOL vmlinux 0x37fcb6d8 scsi_free_command +EXPORT_SYMBOL vmlinux 0x37ff4c06 copy_from_user_overflow +EXPORT_SYMBOL vmlinux 0x381144a9 __tracepoint_module_get +EXPORT_SYMBOL vmlinux 0x38159023 netlink_set_err +EXPORT_SYMBOL vmlinux 0x381a798a setup_max_cpus +EXPORT_SYMBOL vmlinux 0x381ccc13 __kfifo_dma_in_prepare_r +EXPORT_SYMBOL vmlinux 0x381e7531 pci_set_dma_seg_boundary +EXPORT_SYMBOL vmlinux 0x3820fa8f __mem_cgroup_count_vm_event +EXPORT_SYMBOL vmlinux 0x38272079 skb_copy_and_csum_datagram_iovec +EXPORT_SYMBOL vmlinux 0x382fc7db release_pages +EXPORT_SYMBOL vmlinux 0x38321450 input_mt_report_finger_count +EXPORT_SYMBOL vmlinux 0x385992e4 pcix_set_mmrbc +EXPORT_SYMBOL vmlinux 0x385e22cf x86_hyper_ms_hyperv +EXPORT_SYMBOL vmlinux 0x387ad1a4 iget5_locked +EXPORT_SYMBOL vmlinux 0x38869d88 kstat +EXPORT_SYMBOL vmlinux 0x388799f6 unregister_kmmio_probe +EXPORT_SYMBOL vmlinux 0x3888fe29 uart_remove_one_port +EXPORT_SYMBOL vmlinux 0x388f9128 xfrm_state_walk_done +EXPORT_SYMBOL vmlinux 0x38a71b7e pci_free_resource_list +EXPORT_SYMBOL vmlinux 0x38b74225 i2c_smbus_write_byte +EXPORT_SYMBOL vmlinux 0x38ba8f4a acpi_gpiochip_free_interrupts +EXPORT_SYMBOL vmlinux 0x38de35bc nla_reserve +EXPORT_SYMBOL vmlinux 0x38e09425 elv_rb_former_request +EXPORT_SYMBOL vmlinux 0x38ea617e proc_remove +EXPORT_SYMBOL vmlinux 0x38f2b2cb blk_delay_queue +EXPORT_SYMBOL vmlinux 0x38f73c4f twl6040_set_pll +EXPORT_SYMBOL vmlinux 0x392b077b proc_set_size +EXPORT_SYMBOL vmlinux 0x392f5dd5 scm_fp_dup +EXPORT_SYMBOL vmlinux 0x3939f8f0 rfkill_pause_polling +EXPORT_SYMBOL vmlinux 0x39568d1b __lock_page +EXPORT_SYMBOL vmlinux 0x395e8620 ns_capable +EXPORT_SYMBOL vmlinux 0x39777d73 pcie_capability_clear_and_set_word +EXPORT_SYMBOL vmlinux 0x3983eb5a ll_rw_block +EXPORT_SYMBOL vmlinux 0x39862508 kill_litter_super +EXPORT_SYMBOL vmlinux 0x39871f22 blk_integrity_is_initialized +EXPORT_SYMBOL vmlinux 0x3989e031 key_validate +EXPORT_SYMBOL vmlinux 0x39a055f3 acpi_remove_gpe_handler +EXPORT_SYMBOL vmlinux 0x39b68220 pci_scan_slot +EXPORT_SYMBOL vmlinux 0x39e7f672 get_fs_type +EXPORT_SYMBOL vmlinux 0x39ef8ceb skb_copy +EXPORT_SYMBOL vmlinux 0x3a013b7d remove_wait_queue +EXPORT_SYMBOL vmlinux 0x3a08475f platform_thermal_notify +EXPORT_SYMBOL vmlinux 0x3a212901 blk_init_queue +EXPORT_SYMBOL vmlinux 0x3a32839e intel_gtt_chipset_flush +EXPORT_SYMBOL vmlinux 0x3a3e090a netdev_class_create_file +EXPORT_SYMBOL vmlinux 0x3a56cf4e phy_register_fixup +EXPORT_SYMBOL vmlinux 0x3a8c7783 mdiobus_register +EXPORT_SYMBOL vmlinux 0x3a991de0 devm_input_allocate_device +EXPORT_SYMBOL vmlinux 0x3a9b6fb9 blk_unregister_region +EXPORT_SYMBOL vmlinux 0x3aec6de2 isapnp_protocol +EXPORT_SYMBOL vmlinux 0x3b200460 jbd2_journal_file_inode +EXPORT_SYMBOL vmlinux 0x3b201620 machine_real_restart +EXPORT_SYMBOL vmlinux 0x3b3d48ac inode_init_always +EXPORT_SYMBOL vmlinux 0x3b67c164 build_skb +EXPORT_SYMBOL vmlinux 0x3b6ae600 blk_queue_prep_rq +EXPORT_SYMBOL vmlinux 0x3b6cfd7b scsi_register_interface +EXPORT_SYMBOL vmlinux 0x3b812262 blk_rq_count_integrity_sg +EXPORT_SYMBOL vmlinux 0x3b8b8b4a ata_dev_acpi_handle +EXPORT_SYMBOL vmlinux 0x3b946df1 nf_log_unbind_pf +EXPORT_SYMBOL vmlinux 0x3bcf8a1f blk_stop_queue +EXPORT_SYMBOL vmlinux 0x3bd1b1f6 msecs_to_jiffies +EXPORT_SYMBOL vmlinux 0x3bdfe2e9 n_tty_ioctl_helper +EXPORT_SYMBOL vmlinux 0x3bedc40c inet_select_addr +EXPORT_SYMBOL vmlinux 0x3bef03b9 flow_cache_lookup +EXPORT_SYMBOL vmlinux 0x3bf06043 __sk_backlog_rcv +EXPORT_SYMBOL vmlinux 0x3bfbc129 abx500_remove_ops +EXPORT_SYMBOL vmlinux 0x3c0e3df9 tcf_exts_destroy +EXPORT_SYMBOL vmlinux 0x3c1be740 posix_lock_file +EXPORT_SYMBOL vmlinux 0x3c74f3f2 blk_rq_map_sg +EXPORT_SYMBOL vmlinux 0x3c80c06c kstrtoull +EXPORT_SYMBOL vmlinux 0x3c950790 simple_empty +EXPORT_SYMBOL vmlinux 0x3c9d1211 string_get_size +EXPORT_SYMBOL vmlinux 0x3cb3931b sg_copy_to_buffer +EXPORT_SYMBOL vmlinux 0x3cbcf8cb phy_ethtool_get_wol +EXPORT_SYMBOL vmlinux 0x3ce4ca6f disable_irq +EXPORT_SYMBOL vmlinux 0x3cf6ce08 kdb_current_task +EXPORT_SYMBOL vmlinux 0x3d1ef05b __module_get +EXPORT_SYMBOL vmlinux 0x3d36fd5b gen_pool_alloc +EXPORT_SYMBOL vmlinux 0x3d3a0a4f lookup_one_len +EXPORT_SYMBOL vmlinux 0x3d587a70 i2c_put_adapter +EXPORT_SYMBOL vmlinux 0x3d70f8c7 may_umount_tree +EXPORT_SYMBOL vmlinux 0x3d7a995c nf_log_unset +EXPORT_SYMBOL vmlinux 0x3d7c1ed7 msrs_alloc +EXPORT_SYMBOL vmlinux 0x3da171f9 pci_mem_start +EXPORT_SYMBOL vmlinux 0x3daf7d6f dev_notice +EXPORT_SYMBOL vmlinux 0x3dcb88a0 irq_set_handler_data +EXPORT_SYMBOL vmlinux 0x3dfc897c seq_hlist_start_head +EXPORT_SYMBOL vmlinux 0x3e2ae3a8 acpi_release_global_lock +EXPORT_SYMBOL vmlinux 0x3e361b28 page_put_link +EXPORT_SYMBOL vmlinux 0x3e3abe7f netlink_unicast +EXPORT_SYMBOL vmlinux 0x3e3c7be2 scsi_setup_blk_pc_cmnd +EXPORT_SYMBOL vmlinux 0x3e5b2355 sock_wmalloc +EXPORT_SYMBOL vmlinux 0x3e882943 pcibios_align_resource +EXPORT_SYMBOL vmlinux 0x3e8be452 unregister_tcf_proto_ops +EXPORT_SYMBOL vmlinux 0x3e9110fa __hw_addr_unsync +EXPORT_SYMBOL vmlinux 0x3eae292f param_set_byte +EXPORT_SYMBOL vmlinux 0x3eaf291d param_get_string +EXPORT_SYMBOL vmlinux 0x3ec16c3b in_group_p +EXPORT_SYMBOL vmlinux 0x3ed63055 zlib_inflateReset +EXPORT_SYMBOL vmlinux 0x3eda6577 udp_poll +EXPORT_SYMBOL vmlinux 0x3ef78d80 vm_get_page_prot +EXPORT_SYMBOL vmlinux 0x3eff5ac2 intel_scu_ipc_writev +EXPORT_SYMBOL vmlinux 0x3f0546a8 ioread32_rep +EXPORT_SYMBOL vmlinux 0x3f200a5b icmp_send +EXPORT_SYMBOL vmlinux 0x3f325ced bdi_unregister +EXPORT_SYMBOL vmlinux 0x3f372602 journal_invalidatepage +EXPORT_SYMBOL vmlinux 0x3f4547a7 put_unused_fd +EXPORT_SYMBOL vmlinux 0x3f5ebaae read_code +EXPORT_SYMBOL vmlinux 0x3f6880ab __mutex_init +EXPORT_SYMBOL vmlinux 0x3f6f6b0b pagecache_write_begin +EXPORT_SYMBOL vmlinux 0x3f7db8c9 i2c_smbus_xfer +EXPORT_SYMBOL vmlinux 0x3f84e9ce jbd2_journal_dirty_metadata +EXPORT_SYMBOL vmlinux 0x3f8f3456 acpi_bus_generate_proc_event +EXPORT_SYMBOL vmlinux 0x3f9f868f __percpu_counter_init +EXPORT_SYMBOL vmlinux 0x3fa58ef8 wait_for_completion +EXPORT_SYMBOL vmlinux 0x3fb8d678 inet_frags_exit_net +EXPORT_SYMBOL vmlinux 0x3fbaaa1e netdev_master_upper_dev_link +EXPORT_SYMBOL vmlinux 0x3fbbae71 register_netdevice +EXPORT_SYMBOL vmlinux 0x3fc77aed ida_pre_get +EXPORT_SYMBOL vmlinux 0x3fd28096 idr_alloc_cyclic +EXPORT_SYMBOL vmlinux 0x3fdba1c3 dentry_open +EXPORT_SYMBOL vmlinux 0x3fdcdc90 proc_set_user +EXPORT_SYMBOL vmlinux 0x3fec048f sg_next +EXPORT_SYMBOL vmlinux 0x3ff52c1c scsi_setup_fs_cmnd +EXPORT_SYMBOL vmlinux 0x3ff62317 local_bh_disable +EXPORT_SYMBOL vmlinux 0x3fffb2e2 dev_uc_sync_multiple +EXPORT_SYMBOL vmlinux 0x402b8281 __request_module +EXPORT_SYMBOL vmlinux 0x402d18c4 seq_release_private +EXPORT_SYMBOL vmlinux 0x40332ca7 kern_unmount +EXPORT_SYMBOL vmlinux 0x404a727b follow_pfn +EXPORT_SYMBOL vmlinux 0x4059792f print_hex_dump +EXPORT_SYMBOL vmlinux 0x405a796b ipv6_getsockopt +EXPORT_SYMBOL vmlinux 0x405c1144 get_seconds +EXPORT_SYMBOL vmlinux 0x40708b5f napi_gro_frags +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 0x40a2d1dd dm_table_get_size +EXPORT_SYMBOL vmlinux 0x40a9b349 vzalloc +EXPORT_SYMBOL vmlinux 0x40acaad0 buffer_check_dirty_writeback +EXPORT_SYMBOL vmlinux 0x40b86c7c __neigh_event_send +EXPORT_SYMBOL vmlinux 0x40c01859 gen_pool_best_fit +EXPORT_SYMBOL vmlinux 0x40c7247c si_meminfo +EXPORT_SYMBOL vmlinux 0x40c89d46 acpi_get_table_by_index +EXPORT_SYMBOL vmlinux 0x40d04664 console_trylock +EXPORT_SYMBOL vmlinux 0x40df8e61 cpu_info +EXPORT_SYMBOL vmlinux 0x40e0b1fb stop_tty +EXPORT_SYMBOL vmlinux 0x40f48c6d x86_hyper +EXPORT_SYMBOL vmlinux 0x40ff0a5e blk_queue_resize_tags +EXPORT_SYMBOL vmlinux 0x410354cf vfs_write +EXPORT_SYMBOL vmlinux 0x4116f188 serio_reconnect +EXPORT_SYMBOL vmlinux 0x411f1968 gen_pool_set_algo +EXPORT_SYMBOL vmlinux 0x41296882 tcp_valid_rtt_meas +EXPORT_SYMBOL vmlinux 0x41482d8b strndup_user +EXPORT_SYMBOL vmlinux 0x414f988b mutex_unlock +EXPORT_SYMBOL vmlinux 0x41652c0b skb_realloc_headroom +EXPORT_SYMBOL vmlinux 0x4188d439 neigh_rand_reach_time +EXPORT_SYMBOL vmlinux 0x41a3971a mmc_wait_for_cmd +EXPORT_SYMBOL vmlinux 0x41a65fb9 unregister_netdevice_queue +EXPORT_SYMBOL vmlinux 0x41d1da34 scsi_block_when_processing_errors +EXPORT_SYMBOL vmlinux 0x41d61260 pnp_release_card_device +EXPORT_SYMBOL vmlinux 0x41d6cb07 wait_for_completion_io_timeout +EXPORT_SYMBOL vmlinux 0x41f63530 dput +EXPORT_SYMBOL vmlinux 0x41f9b2e7 phy_register_fixup_for_uid +EXPORT_SYMBOL vmlinux 0x4211c3c1 zlib_inflateInit2 +EXPORT_SYMBOL vmlinux 0x42350e8d ucs2_strlen +EXPORT_SYMBOL vmlinux 0x42595e58 vgacon_text_force +EXPORT_SYMBOL vmlinux 0x4266aef0 audit_log_task_info +EXPORT_SYMBOL vmlinux 0x42764e53 skb_abort_seq_read +EXPORT_SYMBOL vmlinux 0x428f24f9 posix_acl_create +EXPORT_SYMBOL vmlinux 0x4292364c schedule +EXPORT_SYMBOL vmlinux 0x42977ad4 __hw_addr_del_multiple +EXPORT_SYMBOL vmlinux 0x42a1b208 gen_pool_first_fit +EXPORT_SYMBOL vmlinux 0x42c377fa __tcf_em_tree_match +EXPORT_SYMBOL vmlinux 0x42c8de35 ioremap_nocache +EXPORT_SYMBOL vmlinux 0x42dd733e pm860x_bulk_write +EXPORT_SYMBOL vmlinux 0x42e492f0 scsi_eh_prep_cmnd +EXPORT_SYMBOL vmlinux 0x42eee5ce scsi_eh_finish_cmd +EXPORT_SYMBOL vmlinux 0x42fec1d1 __skb_gso_segment +EXPORT_SYMBOL vmlinux 0x4302d0eb free_pages +EXPORT_SYMBOL vmlinux 0x4333cd60 netdev_alert +EXPORT_SYMBOL vmlinux 0x4346b722 xfrm_stateonly_find +EXPORT_SYMBOL vmlinux 0x434b43b3 pci_find_capability +EXPORT_SYMBOL vmlinux 0x4351577a fb_parse_edid +EXPORT_SYMBOL vmlinux 0x436c2179 iowrite32 +EXPORT_SYMBOL vmlinux 0x437afdae pcix_get_mmrbc +EXPORT_SYMBOL vmlinux 0x4382f3ad netif_device_attach +EXPORT_SYMBOL vmlinux 0x438610bd security_tun_dev_alloc_security +EXPORT_SYMBOL vmlinux 0x43a69ab4 kmalloc_caches +EXPORT_SYMBOL vmlinux 0x43a84634 blk_queue_alignment_offset +EXPORT_SYMBOL vmlinux 0x43d233ee nf_register_hooks +EXPORT_SYMBOL vmlinux 0x43e7a044 __register_binfmt +EXPORT_SYMBOL vmlinux 0x43f23311 dm_table_get_md +EXPORT_SYMBOL vmlinux 0x4411c503 prandom_seed +EXPORT_SYMBOL vmlinux 0x44158877 bio_integrity_endio +EXPORT_SYMBOL vmlinux 0x442406bc setup_arg_pages +EXPORT_SYMBOL vmlinux 0x44366cfc simple_write_to_buffer +EXPORT_SYMBOL vmlinux 0x443f94f4 md_error +EXPORT_SYMBOL vmlinux 0x44413e57 con_is_bound +EXPORT_SYMBOL vmlinux 0x44438b96 hex2bin +EXPORT_SYMBOL vmlinux 0x445fea5b inet_sock_destruct +EXPORT_SYMBOL vmlinux 0x4470a79b param_ops_long +EXPORT_SYMBOL vmlinux 0x449919f7 blk_queue_invalidate_tags +EXPORT_SYMBOL vmlinux 0x44a50980 fifo_set_limit +EXPORT_SYMBOL vmlinux 0x44aaf30f tsc_khz +EXPORT_SYMBOL vmlinux 0x44abffd4 rtnl_link_get_net +EXPORT_SYMBOL vmlinux 0x44c34478 genl_unregister_family +EXPORT_SYMBOL vmlinux 0x44d2722d unmap_mapping_range +EXPORT_SYMBOL vmlinux 0x44d507cb tcf_hash_create +EXPORT_SYMBOL vmlinux 0x44df2d35 jbd2_journal_start_commit +EXPORT_SYMBOL vmlinux 0x44e9a829 match_token +EXPORT_SYMBOL vmlinux 0x44f04f1e max8925_reg_read +EXPORT_SYMBOL vmlinux 0x44f0deb4 pci_prepare_to_sleep +EXPORT_SYMBOL vmlinux 0x44f0eb37 neigh_destroy +EXPORT_SYMBOL vmlinux 0x44f1606d down_trylock +EXPORT_SYMBOL vmlinux 0x44fea67d security_path_unlink +EXPORT_SYMBOL vmlinux 0x45081703 ec_get_handle +EXPORT_SYMBOL vmlinux 0x450bcd64 uart_match_port +EXPORT_SYMBOL vmlinux 0x4513bd2e inet_csk_clear_xmit_timers +EXPORT_SYMBOL vmlinux 0x45283e7f __dquot_free_space +EXPORT_SYMBOL vmlinux 0x452ea490 devfreq_suspend_device +EXPORT_SYMBOL vmlinux 0x453c8403 pci_msi_enabled +EXPORT_SYMBOL vmlinux 0x453dc130 netdev_master_upper_dev_get_rcu +EXPORT_SYMBOL vmlinux 0x4578661a _atomic_dec_and_lock +EXPORT_SYMBOL vmlinux 0x4578f528 __kfifo_to_user +EXPORT_SYMBOL vmlinux 0x4586097e pci_bus_read_config_dword +EXPORT_SYMBOL vmlinux 0x4587efd7 mem_map +EXPORT_SYMBOL vmlinux 0x4589179d dev_loopback_xmit +EXPORT_SYMBOL vmlinux 0x4592b569 init_special_inode +EXPORT_SYMBOL vmlinux 0x45a6be13 cpufreq_sysfs_remove_file +EXPORT_SYMBOL vmlinux 0x45a765cf pci_add_resource +EXPORT_SYMBOL vmlinux 0x45ad61b1 __dynamic_dev_dbg +EXPORT_SYMBOL vmlinux 0x45af8a08 journal_dirty_metadata +EXPORT_SYMBOL vmlinux 0x45be2211 __put_cred +EXPORT_SYMBOL vmlinux 0x45c35a44 inet_frag_kill +EXPORT_SYMBOL vmlinux 0x45c8cd86 ifla_policy +EXPORT_SYMBOL vmlinux 0x45d8a54f dev_crit +EXPORT_SYMBOL vmlinux 0x45dcd878 journal_get_create_access +EXPORT_SYMBOL vmlinux 0x460c00d9 netdev_boot_setup_check +EXPORT_SYMBOL vmlinux 0x462a2e75 match_strlcpy +EXPORT_SYMBOL vmlinux 0x464a51e2 module_refcount +EXPORT_SYMBOL vmlinux 0x465cab34 secure_ipv6_port_ephemeral +EXPORT_SYMBOL vmlinux 0x46608fa0 getnstimeofday +EXPORT_SYMBOL vmlinux 0x466c14a7 __delay +EXPORT_SYMBOL vmlinux 0x467f974c sk_filter +EXPORT_SYMBOL vmlinux 0x4697995b no_llseek +EXPORT_SYMBOL vmlinux 0x46a73484 get_phy_device +EXPORT_SYMBOL vmlinux 0x46b00e16 __get_page_tail +EXPORT_SYMBOL vmlinux 0x46cc39f3 sock_alloc_file +EXPORT_SYMBOL vmlinux 0x46d903cf pm8606_osc_enable +EXPORT_SYMBOL vmlinux 0x46eab504 mb_cache_destroy +EXPORT_SYMBOL vmlinux 0x46feb099 dm_read_arg +EXPORT_SYMBOL vmlinux 0x47006718 tcp_parse_options +EXPORT_SYMBOL vmlinux 0x4707a686 kernel_sock_shutdown +EXPORT_SYMBOL vmlinux 0x471b307e register_filesystem +EXPORT_SYMBOL vmlinux 0x472af72a scsi_device_lookup_by_target +EXPORT_SYMBOL vmlinux 0x47343555 mddev_congested +EXPORT_SYMBOL vmlinux 0x473c49a4 splice_direct_to_actor +EXPORT_SYMBOL vmlinux 0x47416e14 cpu_rmap_add +EXPORT_SYMBOL vmlinux 0x475100c2 inet_get_local_port_range +EXPORT_SYMBOL vmlinux 0x47593833 journal_blocks_per_page +EXPORT_SYMBOL vmlinux 0x475f010b acpi_purge_cached_objects +EXPORT_SYMBOL vmlinux 0x476593de keyring_search +EXPORT_SYMBOL vmlinux 0x476fb347 skb_tx_error +EXPORT_SYMBOL vmlinux 0x47822a75 tty_register_driver +EXPORT_SYMBOL vmlinux 0x4784cb4c dev_get_drvdata +EXPORT_SYMBOL vmlinux 0x478d10b2 ht_destroy_irq +EXPORT_SYMBOL vmlinux 0x4792c572 down_interruptible +EXPORT_SYMBOL vmlinux 0x47939e0d __tasklet_hi_schedule +EXPORT_SYMBOL vmlinux 0x479c3c86 find_next_zero_bit +EXPORT_SYMBOL vmlinux 0x47b3f862 radix_tree_lookup_slot +EXPORT_SYMBOL vmlinux 0x47b6a10f ftrace_print_symbols_seq +EXPORT_SYMBOL vmlinux 0x47cbcb16 file_sb_list_del +EXPORT_SYMBOL vmlinux 0x47d679ff padata_register_cpumask_notifier +EXPORT_SYMBOL vmlinux 0x47da671c netif_receive_skb +EXPORT_SYMBOL vmlinux 0x47f9e9c1 jbd2_log_start_commit +EXPORT_SYMBOL vmlinux 0x4804c715 netdev_rx_csum_fault +EXPORT_SYMBOL vmlinux 0x481222f7 ilookup5 +EXPORT_SYMBOL vmlinux 0x48191043 pci_restore_state +EXPORT_SYMBOL vmlinux 0x48193639 acpi_lid_open +EXPORT_SYMBOL vmlinux 0x481cb9ab acpi_enter_sleep_state_prep +EXPORT_SYMBOL vmlinux 0x4825ebf1 __break_lease +EXPORT_SYMBOL vmlinux 0x4830b287 security_dentry_init_security +EXPORT_SYMBOL vmlinux 0x4845c423 param_array_ops +EXPORT_SYMBOL vmlinux 0x4859b8bb rtc_year_days +EXPORT_SYMBOL vmlinux 0x486d2f29 dqstats +EXPORT_SYMBOL vmlinux 0x4873ec6d pnp_activate_dev +EXPORT_SYMBOL vmlinux 0x487d9343 param_ops_ushort +EXPORT_SYMBOL vmlinux 0x4883be15 nf_hook_slow +EXPORT_SYMBOL vmlinux 0x4895ed16 sk_common_release +EXPORT_SYMBOL vmlinux 0x48a19356 input_unregister_handler +EXPORT_SYMBOL vmlinux 0x48a348ea __cleancache_init_fs +EXPORT_SYMBOL vmlinux 0x48aab5c7 pci_set_mwi +EXPORT_SYMBOL vmlinux 0x48af209b blk_run_queue +EXPORT_SYMBOL vmlinux 0x48f73884 twl6040_get_vibralr_status +EXPORT_SYMBOL vmlinux 0x49045426 icmp_err_convert +EXPORT_SYMBOL vmlinux 0x49603fb8 security_sb_copy_data +EXPORT_SYMBOL vmlinux 0x49753d33 agp_generic_create_gatt_table +EXPORT_SYMBOL vmlinux 0x497c02ce pci_release_regions +EXPORT_SYMBOL vmlinux 0x49b07aec tcp_select_initial_window +EXPORT_SYMBOL vmlinux 0x49b163b8 acpi_bus_scan +EXPORT_SYMBOL vmlinux 0x4a081f1c scsi_remove_device +EXPORT_SYMBOL vmlinux 0x4a091331 bdi_register +EXPORT_SYMBOL vmlinux 0x4a0f7459 vlan_vid_del +EXPORT_SYMBOL vmlinux 0x4a1c1491 __ht_create_irq +EXPORT_SYMBOL vmlinux 0x4a358252 __bitmap_subset +EXPORT_SYMBOL vmlinux 0x4a54f1c6 agp_backend_acquire +EXPORT_SYMBOL vmlinux 0x4a8729e2 kmap_atomic_to_page +EXPORT_SYMBOL vmlinux 0x4a881179 pci_map_rom +EXPORT_SYMBOL vmlinux 0x4a93171c __blockdev_direct_IO +EXPORT_SYMBOL vmlinux 0x4a9d0cc5 __blk_end_request +EXPORT_SYMBOL vmlinux 0x4ab063f7 tty_mutex +EXPORT_SYMBOL vmlinux 0x4abbe3c2 vm_brk +EXPORT_SYMBOL vmlinux 0x4ac9935d devfreq_remove_governor +EXPORT_SYMBOL vmlinux 0x4acd93d3 release_resource +EXPORT_SYMBOL vmlinux 0x4af23ed3 cookie_check_timestamp +EXPORT_SYMBOL vmlinux 0x4afe9a77 scsi_partsize +EXPORT_SYMBOL vmlinux 0x4b052b2d vga_switcheroo_unregister_client +EXPORT_SYMBOL vmlinux 0x4b085dbf agp3_generic_configure +EXPORT_SYMBOL vmlinux 0x4b1ec3e2 kstrtoul_from_user +EXPORT_SYMBOL vmlinux 0x4b34fbf5 block_all_signals +EXPORT_SYMBOL vmlinux 0x4b382aa0 jbd2_journal_check_available_features +EXPORT_SYMBOL vmlinux 0x4b4a94bd __generic_block_fiemap +EXPORT_SYMBOL vmlinux 0x4b4fccdb gnet_stats_start_copy_compat +EXPORT_SYMBOL vmlinux 0x4b5324c2 alloc_fcdev +EXPORT_SYMBOL vmlinux 0x4b537dd2 inet_rtx_syn_ack +EXPORT_SYMBOL vmlinux 0x4b590897 padata_alloc_possible +EXPORT_SYMBOL vmlinux 0x4b5fd49e dm_kcopyd_do_callback +EXPORT_SYMBOL vmlinux 0x4bc4d5a5 __cond_resched_lock +EXPORT_SYMBOL vmlinux 0x4bcf9e38 ps2_begin_command +EXPORT_SYMBOL vmlinux 0x4be85a03 memweight +EXPORT_SYMBOL vmlinux 0x4bf7b27d inode_sb_list_lock +EXPORT_SYMBOL vmlinux 0x4bff4374 pci_disable_msix +EXPORT_SYMBOL vmlinux 0x4c113dd5 xfrm_unregister_mode +EXPORT_SYMBOL vmlinux 0x4c1182cb bitmap_scnprintf +EXPORT_SYMBOL vmlinux 0x4c2ae700 strnstr +EXPORT_SYMBOL vmlinux 0x4c3c8d56 clear_inode +EXPORT_SYMBOL vmlinux 0x4c3e4267 tcp_syn_flood_action +EXPORT_SYMBOL vmlinux 0x4c4c30d2 devm_gpio_request +EXPORT_SYMBOL vmlinux 0x4c5894a2 phy_start_aneg +EXPORT_SYMBOL vmlinux 0x4c5aab47 phy_driver_unregister +EXPORT_SYMBOL vmlinux 0x4c6a38ca dmam_free_coherent +EXPORT_SYMBOL vmlinux 0x4ca6f8b8 sync_dirty_buffer +EXPORT_SYMBOL vmlinux 0x4cacbb8e fib_default_rule_pref +EXPORT_SYMBOL vmlinux 0x4cb25891 __dynamic_netdev_dbg +EXPORT_SYMBOL vmlinux 0x4cbbd171 __bitmap_weight +EXPORT_SYMBOL vmlinux 0x4cd35836 seq_put_decimal_ll +EXPORT_SYMBOL vmlinux 0x4cdb3178 ns_to_timeval +EXPORT_SYMBOL vmlinux 0x4d1b3ab3 read_cache_page +EXPORT_SYMBOL vmlinux 0x4d3b73f0 tcp_gro_receive +EXPORT_SYMBOL vmlinux 0x4d3c153f sigprocmask +EXPORT_SYMBOL vmlinux 0x4d405db8 param_ops_string +EXPORT_SYMBOL vmlinux 0x4d45d89e udp_memory_allocated +EXPORT_SYMBOL vmlinux 0x4d4fbc54 pci_request_region +EXPORT_SYMBOL vmlinux 0x4d6a4275 ipv6_push_nfrag_opts +EXPORT_SYMBOL vmlinux 0x4d8b781b nlmsg_notify +EXPORT_SYMBOL vmlinux 0x4d8ee16e seq_open +EXPORT_SYMBOL vmlinux 0x4d8f4c51 dm_kcopyd_zero +EXPORT_SYMBOL vmlinux 0x4d974b9c register_sysrq_key +EXPORT_SYMBOL vmlinux 0x4d9b652b rb_erase +EXPORT_SYMBOL vmlinux 0x4daa360a acpi_resource_to_address64 +EXPORT_SYMBOL vmlinux 0x4db46a8d find_get_pages_contig +EXPORT_SYMBOL vmlinux 0x4dde5f41 pci_fixup_cardbus +EXPORT_SYMBOL vmlinux 0x4de34a07 cpu_rmap_put +EXPORT_SYMBOL vmlinux 0x4de90bb9 __xfrm_route_forward +EXPORT_SYMBOL vmlinux 0x4dec2d1c kthread_stop +EXPORT_SYMBOL vmlinux 0x4df119fa __bitmap_parse +EXPORT_SYMBOL vmlinux 0x4e1732c0 dentry_path_raw +EXPORT_SYMBOL vmlinux 0x4e270e4f dev_set_drvdata +EXPORT_SYMBOL vmlinux 0x4e3567f7 match_int +EXPORT_SYMBOL vmlinux 0x4e49e832 skb_append_datato_frags +EXPORT_SYMBOL vmlinux 0x4e64cbe5 register_sysctl_paths +EXPORT_SYMBOL vmlinux 0x4e6853aa lock_sock_fast +EXPORT_SYMBOL vmlinux 0x4e6e8ea7 fg_console +EXPORT_SYMBOL vmlinux 0x4e830a3e strnicmp +EXPORT_SYMBOL vmlinux 0x4ea25709 dql_reset +EXPORT_SYMBOL vmlinux 0x4eb96647 bprm_change_interp +EXPORT_SYMBOL vmlinux 0x4ecfacbf pci_set_dma_max_seg_size +EXPORT_SYMBOL vmlinux 0x4eee168d inet6_del_offload +EXPORT_SYMBOL vmlinux 0x4ef1163a generic_listxattr +EXPORT_SYMBOL vmlinux 0x4f092abf kernel_write +EXPORT_SYMBOL vmlinux 0x4f1cd128 security_tun_dev_create +EXPORT_SYMBOL vmlinux 0x4f225a47 pci_bus_write_config_word +EXPORT_SYMBOL vmlinux 0x4f228c68 __neigh_create +EXPORT_SYMBOL vmlinux 0x4f384082 mmc_register_driver +EXPORT_SYMBOL vmlinux 0x4f391d0e nla_parse +EXPORT_SYMBOL vmlinux 0x4f476e96 init_cdrom_command +EXPORT_SYMBOL vmlinux 0x4f68e5c9 do_gettimeofday +EXPORT_SYMBOL vmlinux 0x4f783f30 acpi_read +EXPORT_SYMBOL vmlinux 0x4f866821 bio_map_kern +EXPORT_SYMBOL vmlinux 0x4fa4691c nobh_write_begin +EXPORT_SYMBOL vmlinux 0x4fa6efec tty_driver_flush_buffer +EXPORT_SYMBOL vmlinux 0x4fb43e4a blk_rq_map_user +EXPORT_SYMBOL vmlinux 0x4fdee897 i8042_command +EXPORT_SYMBOL vmlinux 0x4feb9302 neigh_table_init +EXPORT_SYMBOL vmlinux 0x50097088 security_tun_dev_free_security +EXPORT_SYMBOL vmlinux 0x50192e45 padata_unregister_cpumask_notifier +EXPORT_SYMBOL vmlinux 0x5024854b posix_test_lock +EXPORT_SYMBOL vmlinux 0x50469eb9 sock_alloc_send_skb +EXPORT_SYMBOL vmlinux 0x50474272 security_path_mkdir +EXPORT_SYMBOL vmlinux 0x50529870 acpi_get_gpe_status +EXPORT_SYMBOL vmlinux 0x5066a063 __ethtool_get_settings +EXPORT_SYMBOL vmlinux 0x508640b0 mmc_gpio_request_cd +EXPORT_SYMBOL vmlinux 0x5088814a spi_schedule_dv_device +EXPORT_SYMBOL vmlinux 0x50a00257 neigh_ifdown +EXPORT_SYMBOL vmlinux 0x50a90e5d tcf_action_exec +EXPORT_SYMBOL vmlinux 0x50bb1cfc generic_pipe_buf_release +EXPORT_SYMBOL vmlinux 0x50d68377 arch_phys_wc_del +EXPORT_SYMBOL vmlinux 0x50d85026 skb_free_datagram_locked +EXPORT_SYMBOL vmlinux 0x50eedeb8 printk +EXPORT_SYMBOL vmlinux 0x511061ca mmc_can_erase +EXPORT_SYMBOL vmlinux 0x5118c382 secure_dccp_sequence_number +EXPORT_SYMBOL vmlinux 0x5124235a do_sync_write +EXPORT_SYMBOL vmlinux 0x51436bd8 inet6_unregister_protosw +EXPORT_SYMBOL vmlinux 0x5143c678 param_get_invbool +EXPORT_SYMBOL vmlinux 0x5152e605 memcmp +EXPORT_SYMBOL vmlinux 0x516a45ae ip_cmsg_recv +EXPORT_SYMBOL vmlinux 0x5186518f profile_pc +EXPORT_SYMBOL vmlinux 0x51980c67 tcp_sendpage +EXPORT_SYMBOL vmlinux 0x51ac945d bio_init +EXPORT_SYMBOL vmlinux 0x51d12d4e acpi_pci_disabled +EXPORT_SYMBOL vmlinux 0x51dce73b xfrm_state_walk_init +EXPORT_SYMBOL vmlinux 0x51ef33b8 kstrndup +EXPORT_SYMBOL vmlinux 0x52006d56 acpi_walk_resources +EXPORT_SYMBOL vmlinux 0x52026cdf security_sb_parse_opts_str +EXPORT_SYMBOL vmlinux 0x5206459c proc_dointvec_ms_jiffies +EXPORT_SYMBOL vmlinux 0x52095e19 acpi_get_data +EXPORT_SYMBOL vmlinux 0x521b36b5 qdisc_put_rtab +EXPORT_SYMBOL vmlinux 0x523d41de blk_rq_init +EXPORT_SYMBOL vmlinux 0x52428cc8 parent_mem_cgroup +EXPORT_SYMBOL vmlinux 0x52593e07 security_path_chown +EXPORT_SYMBOL vmlinux 0x525e026f acpi_os_unmap_generic_address +EXPORT_SYMBOL vmlinux 0x52666652 dev_close +EXPORT_SYMBOL vmlinux 0x526c5db4 dquot_quota_on_mount +EXPORT_SYMBOL vmlinux 0x527b11e4 quota_send_warning +EXPORT_SYMBOL vmlinux 0x528c709d simple_read_from_buffer +EXPORT_SYMBOL vmlinux 0x52d42c95 set_current_groups +EXPORT_SYMBOL vmlinux 0x52e154f6 ata_ap_acpi_handle +EXPORT_SYMBOL vmlinux 0x52faeb59 noop_llseek +EXPORT_SYMBOL vmlinux 0x530b1e4c rdmsr_on_cpus +EXPORT_SYMBOL vmlinux 0x530b1e98 pm_suspend +EXPORT_SYMBOL vmlinux 0x5314027b serio_unregister_child_port +EXPORT_SYMBOL vmlinux 0x531b604e __virt_addr_valid +EXPORT_SYMBOL vmlinux 0x531e9b90 xfrm_state_lookup +EXPORT_SYMBOL vmlinux 0x532f40f3 skb_checksum_help +EXPORT_SYMBOL vmlinux 0x53326531 mempool_alloc_pages +EXPORT_SYMBOL vmlinux 0x53329d05 do_splice_from +EXPORT_SYMBOL vmlinux 0x533b12a9 tty_port_close_end +EXPORT_SYMBOL vmlinux 0x5383f34b _raw_spin_trylock +EXPORT_SYMBOL vmlinux 0x53b0fbe8 single_open_size +EXPORT_SYMBOL vmlinux 0x53b347e1 alloc_netdev_mqs +EXPORT_SYMBOL vmlinux 0x53b6885b udp_disconnect +EXPORT_SYMBOL vmlinux 0x53cf2170 sock_i_uid +EXPORT_SYMBOL vmlinux 0x53d57b79 lease_modify +EXPORT_SYMBOL vmlinux 0x53f2ef10 wait_for_completion_interruptible +EXPORT_SYMBOL vmlinux 0x5400968b dev_get_flags +EXPORT_SYMBOL vmlinux 0x5409775b free_irq_cpu_rmap +EXPORT_SYMBOL vmlinux 0x540d208d jbd2_journal_init_dev +EXPORT_SYMBOL vmlinux 0x54152e04 percpu_counter_compare +EXPORT_SYMBOL vmlinux 0x54180338 unregister_netdev +EXPORT_SYMBOL vmlinux 0x543ef284 seq_hlist_start +EXPORT_SYMBOL vmlinux 0x544b0c11 acpi_lid_notifier_register +EXPORT_SYMBOL vmlinux 0x5464538f __idr_remove_all +EXPORT_SYMBOL vmlinux 0x547ecad9 kill_fasync +EXPORT_SYMBOL vmlinux 0x548c7dc5 pci_fixup_device +EXPORT_SYMBOL vmlinux 0x54926a54 tty_unthrottle +EXPORT_SYMBOL vmlinux 0x54935666 acpi_os_read_port +EXPORT_SYMBOL vmlinux 0x549ef8df tcp_init_xmit_timers +EXPORT_SYMBOL vmlinux 0x54a0cfd5 dev_mc_sync +EXPORT_SYMBOL vmlinux 0x54a9db5f _kstrtoul +EXPORT_SYMBOL vmlinux 0x54ab879c dev_remove_offload +EXPORT_SYMBOL vmlinux 0x54e6fcdd net_enable_timestamp +EXPORT_SYMBOL vmlinux 0x54efb18d i2c_get_adapter +EXPORT_SYMBOL vmlinux 0x54efb5d6 cpu_number +EXPORT_SYMBOL vmlinux 0x54f21cff __send_remote_softirq +EXPORT_SYMBOL vmlinux 0x5500261b set_trace_device +EXPORT_SYMBOL vmlinux 0x550051ad cdrom_open +EXPORT_SYMBOL vmlinux 0x551bd071 __rb_erase_color +EXPORT_SYMBOL vmlinux 0x553339ae __register_chrdev +EXPORT_SYMBOL vmlinux 0x5541ea93 on_each_cpu +EXPORT_SYMBOL vmlinux 0x5567c227 kernel_cpustat +EXPORT_SYMBOL vmlinux 0x557b79bc xfrm_policy_walk +EXPORT_SYMBOL vmlinux 0x5594be03 bitmap_remap +EXPORT_SYMBOL vmlinux 0x55a10748 md_register_thread +EXPORT_SYMBOL vmlinux 0x55c4a7ed seq_path +EXPORT_SYMBOL vmlinux 0x55e430cb devm_gpio_free +EXPORT_SYMBOL vmlinux 0x56082aaf gnet_stats_copy_app +EXPORT_SYMBOL vmlinux 0x5614b010 xfrm_policy_walk_done +EXPORT_SYMBOL vmlinux 0x562b82bb netif_carrier_off +EXPORT_SYMBOL vmlinux 0x5635a60a vmalloc_user +EXPORT_SYMBOL vmlinux 0x56380ee3 textsearch_find_continuous +EXPORT_SYMBOL vmlinux 0x5641fbbb path_get +EXPORT_SYMBOL vmlinux 0x5642793a radix_tree_tag_clear +EXPORT_SYMBOL vmlinux 0x5646d51e xfrm_input_resume +EXPORT_SYMBOL vmlinux 0x564eacb4 netdev_update_features +EXPORT_SYMBOL vmlinux 0x56509758 jbd2_journal_forget +EXPORT_SYMBOL vmlinux 0x566262f0 dmam_free_noncoherent +EXPORT_SYMBOL vmlinux 0x5676a3e5 intel_scu_ipc_ioread8 +EXPORT_SYMBOL vmlinux 0x5676f10e simple_lookup +EXPORT_SYMBOL vmlinux 0x568d858b dqget +EXPORT_SYMBOL vmlinux 0x56b53816 kill_pgrp +EXPORT_SYMBOL vmlinux 0x56c8799d scsi_kunmap_atomic_sg +EXPORT_SYMBOL vmlinux 0x56e3215e simple_release_fs +EXPORT_SYMBOL vmlinux 0x56e612a4 dmam_pool_create +EXPORT_SYMBOL vmlinux 0x56e7d23e dst_destroy +EXPORT_SYMBOL vmlinux 0x5705088a __vmalloc +EXPORT_SYMBOL vmlinux 0x57241f38 mmc_can_secure_erase_trim +EXPORT_SYMBOL vmlinux 0x572e85d4 blk_lookup_devt +EXPORT_SYMBOL vmlinux 0x5743b150 elv_rq_merge_ok +EXPORT_SYMBOL vmlinux 0x57575f08 dmaengine_put +EXPORT_SYMBOL vmlinux 0x575af70c on_each_cpu_mask +EXPORT_SYMBOL vmlinux 0x575edc2c dev_set_promiscuity +EXPORT_SYMBOL vmlinux 0x57674fd7 __sw_hweight16 +EXPORT_SYMBOL vmlinux 0x577fc6bc inet_addr_type +EXPORT_SYMBOL vmlinux 0x579def90 tty_register_device +EXPORT_SYMBOL vmlinux 0x579fbcd2 cpu_possible_mask +EXPORT_SYMBOL vmlinux 0x57b82312 inet_bind +EXPORT_SYMBOL vmlinux 0x57c99b04 ping_prot +EXPORT_SYMBOL vmlinux 0x57eb5cb0 pci_release_selected_regions +EXPORT_SYMBOL vmlinux 0x57f4d887 lock_may_read +EXPORT_SYMBOL vmlinux 0x57f9c1ce i2c_verify_adapter +EXPORT_SYMBOL vmlinux 0x5813eb04 __nla_put_nohdr +EXPORT_SYMBOL vmlinux 0x5838f6c9 rtc_valid_tm +EXPORT_SYMBOL vmlinux 0x584738f9 rdmsr_safe_on_cpu +EXPORT_SYMBOL vmlinux 0x584c5ca6 jbd2_journal_invalidatepage +EXPORT_SYMBOL vmlinux 0x5857b225 ioread16_rep +EXPORT_SYMBOL vmlinux 0x586103be acpi_setup_gpe_for_wake +EXPORT_SYMBOL vmlinux 0x5869bb6f sock_init_data +EXPORT_SYMBOL vmlinux 0x5891df6c journal_init_inode +EXPORT_SYMBOL vmlinux 0x5892d54c acpi_remove_address_space_handler +EXPORT_SYMBOL vmlinux 0x58c834c7 unregister_filesystem +EXPORT_SYMBOL vmlinux 0x58db5ab0 kill_block_super +EXPORT_SYMBOL vmlinux 0x58e34d7b vlan_vids_add_by_dev +EXPORT_SYMBOL vmlinux 0x58fd6973 generic_file_buffered_write +EXPORT_SYMBOL vmlinux 0x58fef6f8 ist_info +EXPORT_SYMBOL vmlinux 0x591732e4 journal_get_undo_access +EXPORT_SYMBOL vmlinux 0x5924eb7b neigh_connected_output +EXPORT_SYMBOL vmlinux 0x592b59af acpi_evaluate_object_typed +EXPORT_SYMBOL vmlinux 0x59335df9 __lru_cache_add +EXPORT_SYMBOL vmlinux 0x594bf15b ioport_map +EXPORT_SYMBOL vmlinux 0x59590ca6 bio_phys_segments +EXPORT_SYMBOL vmlinux 0x59686644 tty_port_tty_get +EXPORT_SYMBOL vmlinux 0x596ac76d put_page +EXPORT_SYMBOL vmlinux 0x596b546f vm_insert_pfn +EXPORT_SYMBOL vmlinux 0x59717800 md_wait_for_blocked_rdev +EXPORT_SYMBOL vmlinux 0x5976150b alloc_disk +EXPORT_SYMBOL vmlinux 0x59767e8b inet6_unregister_icmp_sender +EXPORT_SYMBOL vmlinux 0x59bc9609 acpi_write_bit_register +EXPORT_SYMBOL vmlinux 0x59e4e526 ps2_cmd_aborted +EXPORT_SYMBOL vmlinux 0x5a2aa62e __wait_on_bit_lock +EXPORT_SYMBOL vmlinux 0x5a363ab0 blk_queue_bounce +EXPORT_SYMBOL vmlinux 0x5a38cd16 iget_locked +EXPORT_SYMBOL vmlinux 0x5a4896a8 __put_user_2 +EXPORT_SYMBOL vmlinux 0x5a5514ff unload_nls +EXPORT_SYMBOL vmlinux 0x5a5845a0 blk_integrity_unregister +EXPORT_SYMBOL vmlinux 0x5a80c328 netdev_printk +EXPORT_SYMBOL vmlinux 0x5a8c9da8 acpi_video_backlight_quirks +EXPORT_SYMBOL vmlinux 0x5a906b0d ilookup5_nowait +EXPORT_SYMBOL vmlinux 0x5a9df40a bdget +EXPORT_SYMBOL vmlinux 0x5ac21822 irq_stat +EXPORT_SYMBOL vmlinux 0x5ac376a5 acpi_install_fixed_event_handler +EXPORT_SYMBOL vmlinux 0x5ac4b2e9 tcp_close +EXPORT_SYMBOL vmlinux 0x5ad0004c splice_from_pipe_begin +EXPORT_SYMBOL vmlinux 0x5b0efa01 pci_enable_msix +EXPORT_SYMBOL vmlinux 0x5b19634d div_s64_rem +EXPORT_SYMBOL vmlinux 0x5b271d86 acpi_video_dmi_promote_vendor +EXPORT_SYMBOL vmlinux 0x5b334567 mutex_lock_interruptible +EXPORT_SYMBOL vmlinux 0x5b3e5aad blk_post_runtime_suspend +EXPORT_SYMBOL vmlinux 0x5b4e20bd pnp_find_dev +EXPORT_SYMBOL vmlinux 0x5b6c1afb scsi_target_quiesce +EXPORT_SYMBOL vmlinux 0x5b79997c __scm_destroy +EXPORT_SYMBOL vmlinux 0x5b7c3c4c ww_mutex_unlock +EXPORT_SYMBOL vmlinux 0x5b7c7a5f fb_find_mode +EXPORT_SYMBOL vmlinux 0x5b974f49 i2c_add_adapter +EXPORT_SYMBOL vmlinux 0x5ba53020 vfs_fstat +EXPORT_SYMBOL vmlinux 0x5bb82444 iw_handler_get_thrspy +EXPORT_SYMBOL vmlinux 0x5bc4f68c mb_cache_entry_insert +EXPORT_SYMBOL vmlinux 0x5bf45c04 journal_get_write_access +EXPORT_SYMBOL vmlinux 0x5bf9204a seq_write +EXPORT_SYMBOL vmlinux 0x5c1b3a4b agp_generic_destroy_page +EXPORT_SYMBOL vmlinux 0x5c3edd59 _raw_write_unlock_bh +EXPORT_SYMBOL vmlinux 0x5c545234 ucs2_strncmp +EXPORT_SYMBOL vmlinux 0x5c8327e3 sock_kmalloc +EXPORT_SYMBOL vmlinux 0x5c85f85b __napi_schedule +EXPORT_SYMBOL vmlinux 0x5c8a1cda pci_save_state +EXPORT_SYMBOL vmlinux 0x5ca2f878 remap_vmalloc_range_partial +EXPORT_SYMBOL vmlinux 0x5cabba1d blk_queue_start_tag +EXPORT_SYMBOL vmlinux 0x5cb32de5 tcf_unregister_action +EXPORT_SYMBOL vmlinux 0x5cc1fa5a i2c_smbus_write_byte_data +EXPORT_SYMBOL vmlinux 0x5cdcedeb qdisc_reset +EXPORT_SYMBOL vmlinux 0x5cf53ce2 input_free_minor +EXPORT_SYMBOL vmlinux 0x5cf5dc0f dev_uc_sync +EXPORT_SYMBOL vmlinux 0x5d0b1892 param_set_invbool +EXPORT_SYMBOL vmlinux 0x5d3040d9 locks_mandatory_area +EXPORT_SYMBOL vmlinux 0x5d327347 kthread_create_on_node +EXPORT_SYMBOL vmlinux 0x5d346146 kmalloc_dma_caches +EXPORT_SYMBOL vmlinux 0x5d548945 cancel_dirty_page +EXPORT_SYMBOL vmlinux 0x5d550c4d scsi_sd_probe_domain +EXPORT_SYMBOL vmlinux 0x5d57fe93 should_remove_suid +EXPORT_SYMBOL vmlinux 0x5d5b5a16 radix_tree_delete +EXPORT_SYMBOL vmlinux 0x5d69d09a contig_page_data +EXPORT_SYMBOL vmlinux 0x5d6f34e5 redirty_page_for_writepage +EXPORT_SYMBOL vmlinux 0x5d74dbcf pnp_range_reserved +EXPORT_SYMBOL vmlinux 0x5d79a745 kmem_cache_create +EXPORT_SYMBOL vmlinux 0x5d90e086 default_llseek +EXPORT_SYMBOL vmlinux 0x5dac0b0e devfreq_monitor_start +EXPORT_SYMBOL vmlinux 0x5dc491b3 unlock_page +EXPORT_SYMBOL vmlinux 0x5dcc426e replace_mount_options +EXPORT_SYMBOL vmlinux 0x5dce6b75 complete_and_exit +EXPORT_SYMBOL vmlinux 0x5e3333ec input_mt_assign_slots +EXPORT_SYMBOL vmlinux 0x5e526bc6 dquot_get_dqinfo +EXPORT_SYMBOL vmlinux 0x5e5ff465 key_payload_reserve +EXPORT_SYMBOL vmlinux 0x5e6a02f0 sock_no_listen +EXPORT_SYMBOL vmlinux 0x5e712b4e __dev_remove_pack +EXPORT_SYMBOL vmlinux 0x5e95b1cd current_umask +EXPORT_SYMBOL vmlinux 0x5e995e15 inet_register_protosw +EXPORT_SYMBOL vmlinux 0x5e9abbe8 pci_enable_obff +EXPORT_SYMBOL vmlinux 0x5eb24829 dm_shift_arg +EXPORT_SYMBOL vmlinux 0x5ed040b0 pm_set_vt_switch +EXPORT_SYMBOL vmlinux 0x5ed2fd4a input_free_device +EXPORT_SYMBOL vmlinux 0x5f005368 kstrtou8 +EXPORT_SYMBOL vmlinux 0x5f1a4ccf intel_scu_ipc_update_register +EXPORT_SYMBOL vmlinux 0x5f27544a mempool_destroy +EXPORT_SYMBOL vmlinux 0x5f347340 sdev_enable_disk_events +EXPORT_SYMBOL vmlinux 0x5f3c8f5c mmc_assume_removable +EXPORT_SYMBOL vmlinux 0x5f4bcf9b nf_nat_decode_session_hook +EXPORT_SYMBOL vmlinux 0x5f579212 __dec_zone_page_state +EXPORT_SYMBOL vmlinux 0x5f58f676 flex_array_get_ptr +EXPORT_SYMBOL vmlinux 0x5f7157f5 path_put +EXPORT_SYMBOL vmlinux 0x5f748cb0 blk_queue_max_discard_sectors +EXPORT_SYMBOL vmlinux 0x5fb003ac pcibios_set_irq_routing +EXPORT_SYMBOL vmlinux 0x5fb6a8e7 bio_integrity_tag_size +EXPORT_SYMBOL vmlinux 0x5fb851b0 abx500_event_registers_startup_state_get +EXPORT_SYMBOL vmlinux 0x5fc0ff7d pci_enable_msi_block +EXPORT_SYMBOL vmlinux 0x5fd34e5c scsi_set_medium_removal +EXPORT_SYMBOL vmlinux 0x5fdb6cbd d_tmpfile +EXPORT_SYMBOL vmlinux 0x5fe41fb6 percpu_counter_set +EXPORT_SYMBOL vmlinux 0x5feb077b filemap_flush +EXPORT_SYMBOL vmlinux 0x5fedda58 sk_wait_data +EXPORT_SYMBOL vmlinux 0x5ff42b08 acpi_video_get_capabilities +EXPORT_SYMBOL vmlinux 0x60046700 pm860x_bulk_read +EXPORT_SYMBOL vmlinux 0x600683d3 do_unblank_screen +EXPORT_SYMBOL vmlinux 0x600aea31 xfrm4_prepare_output +EXPORT_SYMBOL vmlinux 0x601bf1e1 ps2_command +EXPORT_SYMBOL vmlinux 0x601e62e0 inode_sub_bytes +EXPORT_SYMBOL vmlinux 0x601f665f dm_io_client_create +EXPORT_SYMBOL vmlinux 0x6022828a journal_revoke +EXPORT_SYMBOL vmlinux 0x602bb323 i2c_master_send +EXPORT_SYMBOL vmlinux 0x602ed00d acpi_current_gpe_count +EXPORT_SYMBOL vmlinux 0x60352082 register_inet6addr_notifier +EXPORT_SYMBOL vmlinux 0x6052121c inet_dgram_connect +EXPORT_SYMBOL vmlinux 0x606d0b09 secure_tcpv6_sequence_number +EXPORT_SYMBOL vmlinux 0x6073465c __nla_reserve_nohdr +EXPORT_SYMBOL vmlinux 0x609f1c7e synchronize_net +EXPORT_SYMBOL vmlinux 0x60a32ea9 pm_power_off +EXPORT_SYMBOL vmlinux 0x60b2e38a rwsem_down_write_failed +EXPORT_SYMBOL vmlinux 0x60b7a1f2 netif_skb_features +EXPORT_SYMBOL vmlinux 0x60b86f61 sg_pcopy_to_buffer +EXPORT_SYMBOL vmlinux 0x60ff29f2 __qdisc_calculate_pkt_len +EXPORT_SYMBOL vmlinux 0x610c3fcd napi_complete +EXPORT_SYMBOL vmlinux 0x6116424a pci_disable_link_state_locked +EXPORT_SYMBOL vmlinux 0x611bcc76 bio_get_nr_vecs +EXPORT_SYMBOL vmlinux 0x612390ad netpoll_set_trap +EXPORT_SYMBOL vmlinux 0x6128b5fc __printk_ratelimit +EXPORT_SYMBOL vmlinux 0x614383c0 acpi_get_object_info +EXPORT_SYMBOL vmlinux 0x6150dbde journal_force_commit_nested +EXPORT_SYMBOL vmlinux 0x615236dd __skb_warn_lro_forwarding +EXPORT_SYMBOL vmlinux 0x61528b43 kobject_get +EXPORT_SYMBOL vmlinux 0x61584e88 generic_file_aio_write +EXPORT_SYMBOL vmlinux 0x617643a2 param_set_long +EXPORT_SYMBOL vmlinux 0x619b187b add_wait_queue_exclusive +EXPORT_SYMBOL vmlinux 0x61b455ce set_security_override +EXPORT_SYMBOL vmlinux 0x61b5ade0 down_write +EXPORT_SYMBOL vmlinux 0x61b7b126 simple_strtoull +EXPORT_SYMBOL vmlinux 0x61b956f6 pnp_start_dev +EXPORT_SYMBOL vmlinux 0x61be7fde dma_sync_wait +EXPORT_SYMBOL vmlinux 0x61c426dc simple_transaction_set +EXPORT_SYMBOL vmlinux 0x61cdd542 blk_queue_unprep_rq +EXPORT_SYMBOL vmlinux 0x61de5813 prepare_creds +EXPORT_SYMBOL vmlinux 0x61deb2e4 amd_northbridges +EXPORT_SYMBOL vmlinux 0x62049256 acpi_disable +EXPORT_SYMBOL vmlinux 0x62139c35 dev_addr_init +EXPORT_SYMBOL vmlinux 0x6214aef2 cpufreq_unregister_notifier +EXPORT_SYMBOL vmlinux 0x621d77a0 sleep_on +EXPORT_SYMBOL vmlinux 0x621fb850 agp3_generic_tlbflush +EXPORT_SYMBOL vmlinux 0x6225637e md5_transform +EXPORT_SYMBOL vmlinux 0x6226b9fa machine_to_phys_mapping +EXPORT_SYMBOL vmlinux 0x6228c21f smp_call_function_single +EXPORT_SYMBOL vmlinux 0x6229e9fd phy_drivers_unregister +EXPORT_SYMBOL vmlinux 0x622fa02a prepare_to_wait +EXPORT_SYMBOL vmlinux 0x6237f6b5 acpi_enable_event +EXPORT_SYMBOL vmlinux 0x623d50ea journal_try_to_free_buffers +EXPORT_SYMBOL vmlinux 0x623dd4c6 kill_bdev +EXPORT_SYMBOL vmlinux 0x624198a9 dev_uc_del +EXPORT_SYMBOL vmlinux 0x6241a2ab __copy_from_user_ll_nocache +EXPORT_SYMBOL vmlinux 0x6243b782 backlight_force_update +EXPORT_SYMBOL vmlinux 0x62560889 dquot_resume +EXPORT_SYMBOL vmlinux 0x625b96a0 blk_alloc_queue +EXPORT_SYMBOL vmlinux 0x62737e1d sock_unregister +EXPORT_SYMBOL vmlinux 0x62822d05 iov_iter_single_seg_count +EXPORT_SYMBOL vmlinux 0x62827bec security_secctx_to_secid +EXPORT_SYMBOL vmlinux 0x62849ac7 dev_valid_name +EXPORT_SYMBOL vmlinux 0x6294ae2c bio_unmap_user +EXPORT_SYMBOL vmlinux 0x62a37491 dst_cow_metrics_generic +EXPORT_SYMBOL vmlinux 0x62ae8946 pci_enable_ido +EXPORT_SYMBOL vmlinux 0x62b640cb pci_enable_ltr +EXPORT_SYMBOL vmlinux 0x62b887cc pnp_request_card_device +EXPORT_SYMBOL vmlinux 0x62cb4cee interruptible_sleep_on +EXPORT_SYMBOL vmlinux 0x62cc4d20 dqput +EXPORT_SYMBOL vmlinux 0x62d0c489 blk_fetch_request +EXPORT_SYMBOL vmlinux 0x62d2d7c7 max8925_reg_write +EXPORT_SYMBOL vmlinux 0x62fd6207 param_set_charp +EXPORT_SYMBOL vmlinux 0x62fffac7 simple_getattr +EXPORT_SYMBOL vmlinux 0x6304ae5c check_disk_change +EXPORT_SYMBOL vmlinux 0x6306a848 jbd2_journal_release_jbd_inode +EXPORT_SYMBOL vmlinux 0x63187451 pcie_aspm_support_enabled +EXPORT_SYMBOL vmlinux 0x631e7343 mount_bdev +EXPORT_SYMBOL vmlinux 0x6320ce4d eth_type_trans +EXPORT_SYMBOL vmlinux 0x632b7d54 unlock_buffer +EXPORT_SYMBOL vmlinux 0x63373d5f fbcon_set_tileops +EXPORT_SYMBOL vmlinux 0x635687ac eth_header +EXPORT_SYMBOL vmlinux 0x636a5691 acpi_register_ioapic +EXPORT_SYMBOL vmlinux 0x63805a23 xfrm_state_register_afinfo +EXPORT_SYMBOL vmlinux 0x6384dc09 zero_fill_bio +EXPORT_SYMBOL vmlinux 0x638ff741 security_sb_clone_mnt_opts +EXPORT_SYMBOL vmlinux 0x63917bf8 mmc_power_restore_host +EXPORT_SYMBOL vmlinux 0x63922bbd vfs_stat +EXPORT_SYMBOL vmlinux 0x63989044 xfrm4_rcv_encap +EXPORT_SYMBOL vmlinux 0x63a01291 acpi_leave_sleep_state_prep +EXPORT_SYMBOL vmlinux 0x63ae0138 intel_gtt_get +EXPORT_SYMBOL vmlinux 0x63c521c2 starget_for_each_device +EXPORT_SYMBOL vmlinux 0x63cca0aa nf_getsockopt +EXPORT_SYMBOL vmlinux 0x63eb9355 panic_blink +EXPORT_SYMBOL vmlinux 0x63fc232f strlen_user +EXPORT_SYMBOL vmlinux 0x6403e338 tcp_memory_pressure +EXPORT_SYMBOL vmlinux 0x644dc23d vga_switcheroo_register_audio_client +EXPORT_SYMBOL vmlinux 0x6478134c ec_burst_enable +EXPORT_SYMBOL vmlinux 0x6483b924 dev_err +EXPORT_SYMBOL vmlinux 0x6487b7b2 unmap_underlying_metadata +EXPORT_SYMBOL vmlinux 0x64999478 congestion_wait +EXPORT_SYMBOL vmlinux 0x6499ccd1 blk_init_tags +EXPORT_SYMBOL vmlinux 0x64a4b84d cpu_rmap_update +EXPORT_SYMBOL vmlinux 0x64a52ade block_write_begin +EXPORT_SYMBOL vmlinux 0x64b92d8b neigh_changeaddr +EXPORT_SYMBOL vmlinux 0x64cdf898 pcie_port_service_register +EXPORT_SYMBOL vmlinux 0x64eae7ad set_memory_array_wb +EXPORT_SYMBOL vmlinux 0x650a6767 prandom_u32_state +EXPORT_SYMBOL vmlinux 0x65125138 acpi_check_address_range +EXPORT_SYMBOL vmlinux 0x6513a3fa fb_get_color_depth +EXPORT_SYMBOL vmlinux 0x651a4139 test_taint +EXPORT_SYMBOL vmlinux 0x651a625c inode_newsize_ok +EXPORT_SYMBOL vmlinux 0x65408378 zlib_inflate_blob +EXPORT_SYMBOL vmlinux 0x65557c97 __find_get_block +EXPORT_SYMBOL vmlinux 0x655f1ab0 set_memory_array_wc +EXPORT_SYMBOL vmlinux 0x6565d33f scsi_kmap_atomic_sg +EXPORT_SYMBOL vmlinux 0x657879ce __init_rwsem +EXPORT_SYMBOL vmlinux 0x657a1e1a skb_copy_expand +EXPORT_SYMBOL vmlinux 0x6585e310 alloc_pages_exact_nid +EXPORT_SYMBOL vmlinux 0x658c635c skb_mac_gso_segment +EXPORT_SYMBOL vmlinux 0x65a295bb atomic64_xchg_cx8 +EXPORT_SYMBOL vmlinux 0x65d67a20 blk_start_plug +EXPORT_SYMBOL vmlinux 0x65d9e877 cpufreq_register_notifier +EXPORT_SYMBOL vmlinux 0x65dccf13 xz_dec_end +EXPORT_SYMBOL vmlinux 0x65f3ad9a fb_videomode_to_var +EXPORT_SYMBOL vmlinux 0x6605f97f flex_array_clear +EXPORT_SYMBOL vmlinux 0x66355efc vprintk +EXPORT_SYMBOL vmlinux 0x66393ea9 agp_unbind_memory +EXPORT_SYMBOL vmlinux 0x663f7cd0 acpi_install_table_handler +EXPORT_SYMBOL vmlinux 0x667b90cf vm_insert_page +EXPORT_SYMBOL vmlinux 0x668da8d5 zlib_inflateIncomp +EXPORT_SYMBOL vmlinux 0x66a67dab flex_array_shrink +EXPORT_SYMBOL vmlinux 0x66b7023b d_instantiate_unique +EXPORT_SYMBOL vmlinux 0x66c1471d tcp_enter_memory_pressure +EXPORT_SYMBOL vmlinux 0x66c8b825 cpu_sibling_map +EXPORT_SYMBOL vmlinux 0x66d33507 pneigh_lookup +EXPORT_SYMBOL vmlinux 0x66df20ba twl6040_power +EXPORT_SYMBOL vmlinux 0x66feec8e jbd2_journal_init_jbd_inode +EXPORT_SYMBOL vmlinux 0x67023a40 bdi_setup_and_register +EXPORT_SYMBOL vmlinux 0x6729d3df __get_user_4 +EXPORT_SYMBOL vmlinux 0x67320048 ppp_input +EXPORT_SYMBOL vmlinux 0x673f815e agp_bridges +EXPORT_SYMBOL vmlinux 0x6797bf58 kunmap +EXPORT_SYMBOL vmlinux 0x67a89074 generic_file_readonly_mmap +EXPORT_SYMBOL vmlinux 0x67b27ec1 tty_std_termios +EXPORT_SYMBOL vmlinux 0x67b78eb3 seq_hlist_next_rcu +EXPORT_SYMBOL vmlinux 0x67dcffb7 lg_lock_init +EXPORT_SYMBOL vmlinux 0x67f62ff3 generic_block_fiemap +EXPORT_SYMBOL vmlinux 0x67f7403e _raw_spin_lock +EXPORT_SYMBOL vmlinux 0x68171464 pid_task +EXPORT_SYMBOL vmlinux 0x681aad96 uart_get_divisor +EXPORT_SYMBOL vmlinux 0x68399dec __scsi_iterate_devices +EXPORT_SYMBOL vmlinux 0x68427ebe pci_request_region_exclusive +EXPORT_SYMBOL vmlinux 0x6852a3d1 key_reject_and_link +EXPORT_SYMBOL vmlinux 0x68558953 serial8250_register_8250_port +EXPORT_SYMBOL vmlinux 0x687b6a16 kdbgetsymval +EXPORT_SYMBOL vmlinux 0x687baa6b inet_frags_init_net +EXPORT_SYMBOL vmlinux 0x689e25fe find_get_pages_tag +EXPORT_SYMBOL vmlinux 0x68b2135a tty_unregister_device +EXPORT_SYMBOL vmlinux 0x68d65ca2 pci_scan_bus_parented +EXPORT_SYMBOL vmlinux 0x68dd117b misc_deregister +EXPORT_SYMBOL vmlinux 0x68dfc59f __init_waitqueue_head +EXPORT_SYMBOL vmlinux 0x68e05d57 getrawmonotonic +EXPORT_SYMBOL vmlinux 0x691b8deb mmc_flush_cache +EXPORT_SYMBOL vmlinux 0x6922879f fput +EXPORT_SYMBOL vmlinux 0x694ddb5b scsi_verify_blk_ioctl +EXPORT_SYMBOL vmlinux 0x6954fc90 scsi_bios_ptable +EXPORT_SYMBOL vmlinux 0x6971447a rtc_month_days +EXPORT_SYMBOL vmlinux 0x698404d6 bmap +EXPORT_SYMBOL vmlinux 0x6988d0ca cpu_dr7 +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 0x6a037cf1 mempool_kfree +EXPORT_SYMBOL vmlinux 0x6a08f57b __scsi_alloc_queue +EXPORT_SYMBOL vmlinux 0x6a0c7b62 sock_update_classid +EXPORT_SYMBOL vmlinux 0x6a10bd39 jbd2_journal_restart +EXPORT_SYMBOL vmlinux 0x6a27bfce csum_partial_copy_generic +EXPORT_SYMBOL vmlinux 0x6a2d1114 kunmap_high +EXPORT_SYMBOL vmlinux 0x6a48e16b percpu_counter_destroy +EXPORT_SYMBOL vmlinux 0x6a5ecb18 unregister_module_notifier +EXPORT_SYMBOL vmlinux 0x6a5ffe49 inet6_ioctl +EXPORT_SYMBOL vmlinux 0x6a76f3ac blk_iopoll_enable +EXPORT_SYMBOL vmlinux 0x6a9a19cc pcie_set_readrq +EXPORT_SYMBOL vmlinux 0x6a9bb4bc blkdev_issue_flush +EXPORT_SYMBOL vmlinux 0x6aa34200 get_tz_trend +EXPORT_SYMBOL vmlinux 0x6ab3bbc5 update_region +EXPORT_SYMBOL vmlinux 0x6acb973d iowrite32be +EXPORT_SYMBOL vmlinux 0x6ad85887 acpi_enable_gpe +EXPORT_SYMBOL vmlinux 0x6add5c9a dmi_find_device +EXPORT_SYMBOL vmlinux 0x6aef1c31 ftrace_raw_output_prep +EXPORT_SYMBOL vmlinux 0x6af0f392 journal_set_features +EXPORT_SYMBOL vmlinux 0x6afbca69 sock_no_sendmsg +EXPORT_SYMBOL vmlinux 0x6afe450f set_binfmt +EXPORT_SYMBOL vmlinux 0x6b0173b9 journal_stop +EXPORT_SYMBOL vmlinux 0x6b06fdce delayed_work_timer_fn +EXPORT_SYMBOL vmlinux 0x6b1b67d3 __bdevname +EXPORT_SYMBOL vmlinux 0x6b2db8ae vfs_lstat +EXPORT_SYMBOL vmlinux 0x6b2dc060 dump_stack +EXPORT_SYMBOL vmlinux 0x6b374881 simple_transaction_get +EXPORT_SYMBOL vmlinux 0x6b3abf5f i2c_release_client +EXPORT_SYMBOL vmlinux 0x6b699543 udp_ioctl +EXPORT_SYMBOL vmlinux 0x6b70a61b x86_hyper_vmware +EXPORT_SYMBOL vmlinux 0x6b7589f4 param_set_bool +EXPORT_SYMBOL vmlinux 0x6b7c266a ip_setsockopt +EXPORT_SYMBOL vmlinux 0x6b7dc88d mmc_gpio_request_ro +EXPORT_SYMBOL vmlinux 0x6b99ea9b dev_set_mac_address +EXPORT_SYMBOL vmlinux 0x6b9f1fe8 xfrm_policy_flush +EXPORT_SYMBOL vmlinux 0x6b9f25ff kmap_to_page +EXPORT_SYMBOL vmlinux 0x6bacbcae proto_unregister +EXPORT_SYMBOL vmlinux 0x6bb70405 alloc_fddidev +EXPORT_SYMBOL vmlinux 0x6bc3fbc0 __unregister_chrdev +EXPORT_SYMBOL vmlinux 0x6bdcfd99 qdisc_class_hash_remove +EXPORT_SYMBOL vmlinux 0x6bed3b57 unlazy_fpu +EXPORT_SYMBOL vmlinux 0x6bffbda1 bfifo_qdisc_ops +EXPORT_SYMBOL vmlinux 0x6c1b7b74 ata_print_version +EXPORT_SYMBOL vmlinux 0x6c1ce5ce strcspn +EXPORT_SYMBOL vmlinux 0x6c1fb2c8 __dev_get_by_index +EXPORT_SYMBOL vmlinux 0x6c26675a __mmc_claim_host +EXPORT_SYMBOL vmlinux 0x6c2e3320 strncmp +EXPORT_SYMBOL vmlinux 0x6c2f0e5e mmc_of_parse +EXPORT_SYMBOL vmlinux 0x6c389761 acpi_bus_get_private_data +EXPORT_SYMBOL vmlinux 0x6c399fa6 lro_receive_frags +EXPORT_SYMBOL vmlinux 0x6c4a085a pipe_lock +EXPORT_SYMBOL vmlinux 0x6c61ce70 num_registered_fb +EXPORT_SYMBOL vmlinux 0x6c6fb545 blk_put_request +EXPORT_SYMBOL vmlinux 0x6c702af7 sysctl_udp_rmem_min +EXPORT_SYMBOL vmlinux 0x6c8c918f blk_queue_max_segments +EXPORT_SYMBOL vmlinux 0x6ca0f2a0 qdisc_tree_decrease_qlen +EXPORT_SYMBOL vmlinux 0x6cb4dfd3 __inet6_hash +EXPORT_SYMBOL vmlinux 0x6cca2b8b blk_bio_map_sg +EXPORT_SYMBOL vmlinux 0x6cdc5c6b nla_strlcpy +EXPORT_SYMBOL vmlinux 0x6ce091d3 elv_dispatch_sort +EXPORT_SYMBOL vmlinux 0x6ce5e7dc neigh_resolve_output +EXPORT_SYMBOL vmlinux 0x6d044c26 param_ops_uint +EXPORT_SYMBOL vmlinux 0x6d0f1f89 dm_table_get_mode +EXPORT_SYMBOL vmlinux 0x6d11e94b __breadahead +EXPORT_SYMBOL vmlinux 0x6d17dce9 tty_wait_until_sent +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 0x6d896cbb skb_copy_and_csum_dev +EXPORT_SYMBOL vmlinux 0x6ddd5d8b vlan_ioctl_set +EXPORT_SYMBOL vmlinux 0x6de2d222 ethtool_op_get_ts_info +EXPORT_SYMBOL vmlinux 0x6def2db2 half_md4_transform +EXPORT_SYMBOL vmlinux 0x6e26f990 dma_async_memcpy_buf_to_buf +EXPORT_SYMBOL vmlinux 0x6e2cae27 scsi_target_resume +EXPORT_SYMBOL vmlinux 0x6e364a9c __genl_register_family +EXPORT_SYMBOL vmlinux 0x6e42d319 loop_register_transfer +EXPORT_SYMBOL vmlinux 0x6e49b69c fb_validate_mode +EXPORT_SYMBOL vmlinux 0x6e51ac2e _raw_spin_trylock_bh +EXPORT_SYMBOL vmlinux 0x6e65f2dc rtc_lock +EXPORT_SYMBOL vmlinux 0x6e720ff2 rtnl_unlock +EXPORT_SYMBOL vmlinux 0x6e891f2e pm860x_reg_write +EXPORT_SYMBOL vmlinux 0x6e9dd606 __symbol_put +EXPORT_SYMBOL vmlinux 0x6eb4fb70 md_integrity_add_rdev +EXPORT_SYMBOL vmlinux 0x6eb9d2b9 cont_write_begin +EXPORT_SYMBOL vmlinux 0x6ebb3e03 tcp_simple_retransmit +EXPORT_SYMBOL vmlinux 0x6ebeeab9 dev_mc_del_global +EXPORT_SYMBOL vmlinux 0x6ee8d721 __netlink_kernel_create +EXPORT_SYMBOL vmlinux 0x6ef81c8d tty_port_tty_set +EXPORT_SYMBOL vmlinux 0x6f20960a full_name_hash +EXPORT_SYMBOL vmlinux 0x6f26f6ef ihold +EXPORT_SYMBOL vmlinux 0x6f44d199 rtnl_notify +EXPORT_SYMBOL vmlinux 0x6f4c6b71 lg_local_unlock +EXPORT_SYMBOL vmlinux 0x6f4d5a26 km_state_notify +EXPORT_SYMBOL vmlinux 0x6f556bdb acpi_get_gpe_device +EXPORT_SYMBOL vmlinux 0x6f60ac63 ip_mc_inc_group +EXPORT_SYMBOL vmlinux 0x6fabf2a2 padata_stop +EXPORT_SYMBOL vmlinux 0x6fbec2cf d_rehash +EXPORT_SYMBOL vmlinux 0x6fbefe04 i2c_smbus_read_i2c_block_data +EXPORT_SYMBOL vmlinux 0x6fc832b4 phy_ethtool_set_wol +EXPORT_SYMBOL vmlinux 0x6fcb87a1 touch_softlockup_watchdog +EXPORT_SYMBOL vmlinux 0x6fea11e6 ppp_unregister_compressor +EXPORT_SYMBOL vmlinux 0x6feb2039 acpi_write +EXPORT_SYMBOL vmlinux 0x6ffc2ce9 vfs_readlink +EXPORT_SYMBOL vmlinux 0x702243d5 account_page_redirty +EXPORT_SYMBOL vmlinux 0x7023bea8 unregister_acpi_notifier +EXPORT_SYMBOL vmlinux 0x702de12d blk_queue_find_tag +EXPORT_SYMBOL vmlinux 0x703b4352 _raw_read_unlock_irqrestore +EXPORT_SYMBOL vmlinux 0x7040dd71 mark_page_accessed +EXPORT_SYMBOL vmlinux 0x704192bd sock_release +EXPORT_SYMBOL vmlinux 0x70523a7a __cond_resched_softirq +EXPORT_SYMBOL vmlinux 0x7054a3e4 request_dma +EXPORT_SYMBOL vmlinux 0x70594516 blk_rq_unmap_user +EXPORT_SYMBOL vmlinux 0x707f43f6 __ctzdi2 +EXPORT_SYMBOL vmlinux 0x7082c0ea generic_file_llseek +EXPORT_SYMBOL vmlinux 0x70938316 backlight_device_unregister +EXPORT_SYMBOL vmlinux 0x7094c9f5 con_copy_unimap +EXPORT_SYMBOL vmlinux 0x70b415c0 ppp_unit_number +EXPORT_SYMBOL vmlinux 0x70bc17d7 inode_wait +EXPORT_SYMBOL vmlinux 0x70d053fd try_to_del_timer_sync +EXPORT_SYMBOL vmlinux 0x70d1f8f3 strncat +EXPORT_SYMBOL vmlinux 0x70d89ae8 tcp_initialize_rcv_mss +EXPORT_SYMBOL vmlinux 0x70d8ab82 acpi_acquire_global_lock +EXPORT_SYMBOL vmlinux 0x70ec8ab6 vga_client_register +EXPORT_SYMBOL vmlinux 0x710003ab mmc_release_host +EXPORT_SYMBOL vmlinux 0x7114a71f bit_waitqueue +EXPORT_SYMBOL vmlinux 0x7129e5f8 hex_asc +EXPORT_SYMBOL vmlinux 0x713e81cb vga_tryget +EXPORT_SYMBOL vmlinux 0x71599178 writeback_inodes_sb_nr +EXPORT_SYMBOL vmlinux 0x716a5285 pcim_iounmap +EXPORT_SYMBOL vmlinux 0x716c8ee6 kmem_cache_destroy +EXPORT_SYMBOL vmlinux 0x7171121c overflowgid +EXPORT_SYMBOL vmlinux 0x71a26c76 __brelse +EXPORT_SYMBOL vmlinux 0x71a50dbc register_blkdev +EXPORT_SYMBOL vmlinux 0x71a672ef dmam_pool_destroy +EXPORT_SYMBOL vmlinux 0x71a8302d cleancache_register_ops +EXPORT_SYMBOL vmlinux 0x71b30a49 iw_handler_set_thrspy +EXPORT_SYMBOL vmlinux 0x71b778c9 inet_dev_addr_type +EXPORT_SYMBOL vmlinux 0x71cdc044 pm860x_page_set_bits +EXPORT_SYMBOL vmlinux 0x71e9ef64 scsi_print_result +EXPORT_SYMBOL vmlinux 0x71f65175 hdmi_spd_infoframe_pack +EXPORT_SYMBOL vmlinux 0x72490b4b acpi_gpiochip_request_interrupts +EXPORT_SYMBOL vmlinux 0x7263c55c vfs_rename +EXPORT_SYMBOL vmlinux 0x726823f9 dcache_dir_lseek +EXPORT_SYMBOL vmlinux 0x72873355 i2c_register_driver +EXPORT_SYMBOL vmlinux 0x729e4875 seq_put_decimal_ull +EXPORT_SYMBOL vmlinux 0x72ab78cd bioset_create +EXPORT_SYMBOL vmlinux 0x72b0a36c kobject_set_name +EXPORT_SYMBOL vmlinux 0x72b243d4 free_dma +EXPORT_SYMBOL vmlinux 0x72bf2140 mtrr_add +EXPORT_SYMBOL vmlinux 0x72c7c923 netdev_refcnt_read +EXPORT_SYMBOL vmlinux 0x72d58de9 kstrtou8_from_user +EXPORT_SYMBOL vmlinux 0x72df2f2a up_read +EXPORT_SYMBOL vmlinux 0x72e928da bitmap_unplug +EXPORT_SYMBOL vmlinux 0x72ea7b2d scsi_device_type +EXPORT_SYMBOL vmlinux 0x72f3aa32 acpi_get_physical_device_location +EXPORT_SYMBOL vmlinux 0x732b4229 i2c_verify_client +EXPORT_SYMBOL vmlinux 0x732b7f61 dm_io +EXPORT_SYMBOL vmlinux 0x732fb3b9 __serio_register_port +EXPORT_SYMBOL vmlinux 0x73309c51 get_io_context +EXPORT_SYMBOL vmlinux 0x73311c79 skb_insert +EXPORT_SYMBOL vmlinux 0x733657cb locks_free_lock +EXPORT_SYMBOL vmlinux 0x73375063 journal_unlock_updates +EXPORT_SYMBOL vmlinux 0x733c3b54 kasprintf +EXPORT_SYMBOL vmlinux 0x733f76c8 generic_write_sync +EXPORT_SYMBOL vmlinux 0x73434237 inet_csk_delete_keepalive_timer +EXPORT_SYMBOL vmlinux 0x7349a89f iw_handler_set_spy +EXPORT_SYMBOL vmlinux 0x735a0bd5 native_io_delay +EXPORT_SYMBOL vmlinux 0x73603a01 pci_unregister_driver +EXPORT_SYMBOL vmlinux 0x737de5e9 radix_tree_tag_get +EXPORT_SYMBOL vmlinux 0x738803e6 strnlen +EXPORT_SYMBOL vmlinux 0x73bbb72c key_put +EXPORT_SYMBOL vmlinux 0x73d1dd12 pnp_register_card_driver +EXPORT_SYMBOL vmlinux 0x73dd54eb irq_fpu_usable +EXPORT_SYMBOL vmlinux 0x73e20c1c strlcpy +EXPORT_SYMBOL vmlinux 0x73f25b95 ab3100_event_register +EXPORT_SYMBOL vmlinux 0x7406f5c5 kobject_put +EXPORT_SYMBOL vmlinux 0x740a1b95 reserve_evntsel_nmi +EXPORT_SYMBOL vmlinux 0x7413793a EISA_bus +EXPORT_SYMBOL vmlinux 0x741bb2d5 __scsi_device_lookup_by_target +EXPORT_SYMBOL vmlinux 0x741cf26a sync_inodes_sb +EXPORT_SYMBOL vmlinux 0x7421c665 inet6_add_offload +EXPORT_SYMBOL vmlinux 0x742260cb sg_miter_start +EXPORT_SYMBOL vmlinux 0x7426bb53 fixed_size_llseek +EXPORT_SYMBOL vmlinux 0x74298852 sk_free +EXPORT_SYMBOL vmlinux 0x7430712b freeze_super +EXPORT_SYMBOL vmlinux 0x743b2779 shrink_dcache_sb +EXPORT_SYMBOL vmlinux 0x743b4ae3 atomic64_inc_not_zero_cx8 +EXPORT_SYMBOL vmlinux 0x7469fcfe radix_tree_tagged +EXPORT_SYMBOL vmlinux 0x746c1edb xfrm_policy_unregister_afinfo +EXPORT_SYMBOL vmlinux 0x74800b17 netif_stacked_transfer_operstate +EXPORT_SYMBOL vmlinux 0x7485e15e unregister_chrdev_region +EXPORT_SYMBOL vmlinux 0x749c6473 pnpbios_protocol +EXPORT_SYMBOL vmlinux 0x74bb2181 register_sysctl_table +EXPORT_SYMBOL vmlinux 0x74c134b9 __sw_hweight32 +EXPORT_SYMBOL vmlinux 0x74cdaa24 inode_init_owner +EXPORT_SYMBOL vmlinux 0x74ce05b8 flush_delayed_work +EXPORT_SYMBOL vmlinux 0x74d6bdaf genl_register_ops +EXPORT_SYMBOL vmlinux 0x74d9c380 tcp_prot +EXPORT_SYMBOL vmlinux 0x74e5c98f ucs2_strnlen +EXPORT_SYMBOL vmlinux 0x74e5ff1a udpv6_encap_enable +EXPORT_SYMBOL vmlinux 0x74e96587 mmc_align_data_size +EXPORT_SYMBOL vmlinux 0x74f2483b remap_pfn_range +EXPORT_SYMBOL vmlinux 0x750145f0 netdev_info +EXPORT_SYMBOL vmlinux 0x75057c31 posix_acl_equiv_mode +EXPORT_SYMBOL vmlinux 0x7505bdef memchr_inv +EXPORT_SYMBOL vmlinux 0x75072d5d vfs_symlink +EXPORT_SYMBOL vmlinux 0x75271716 save_processor_state +EXPORT_SYMBOL vmlinux 0x7531e3dc acpi_get_event_resources +EXPORT_SYMBOL vmlinux 0x7538b132 agp_off +EXPORT_SYMBOL vmlinux 0x753ffa62 seq_printf +EXPORT_SYMBOL vmlinux 0x754dac78 blk_limits_io_min +EXPORT_SYMBOL vmlinux 0x754ec312 __xfrm_state_destroy +EXPORT_SYMBOL vmlinux 0x75589d13 sk_alloc +EXPORT_SYMBOL vmlinux 0x755df8ec inode_init_once +EXPORT_SYMBOL vmlinux 0x75656c1e seq_putc +EXPORT_SYMBOL vmlinux 0x7593d385 div64_s64 +EXPORT_SYMBOL vmlinux 0x75abc11a pci_enable_device +EXPORT_SYMBOL vmlinux 0x75bb675a finish_wait +EXPORT_SYMBOL vmlinux 0x75bda77a seq_hlist_next +EXPORT_SYMBOL vmlinux 0x75bdea12 iommu_area_alloc +EXPORT_SYMBOL vmlinux 0x75d21809 vprintk_emit +EXPORT_SYMBOL vmlinux 0x75e8c4da rtmsg_ifinfo +EXPORT_SYMBOL vmlinux 0x75f9eae5 eth_commit_mac_addr_change +EXPORT_SYMBOL vmlinux 0x760a0f4f yield +EXPORT_SYMBOL vmlinux 0x76118af8 adjust_managed_page_count +EXPORT_SYMBOL vmlinux 0x7628f3c7 this_cpu_off +EXPORT_SYMBOL vmlinux 0x762add85 atomic64_inc_return_cx8 +EXPORT_SYMBOL vmlinux 0x7647726c handle_sysrq +EXPORT_SYMBOL vmlinux 0x764bd77c request_resource +EXPORT_SYMBOL vmlinux 0x7676eade tcp_make_synack +EXPORT_SYMBOL vmlinux 0x767ddb02 set_memory_wc +EXPORT_SYMBOL vmlinux 0x76911744 sock_create_kern +EXPORT_SYMBOL vmlinux 0x769e06d7 smp_call_function_many +EXPORT_SYMBOL vmlinux 0x76ac64fe key_instantiate_and_link +EXPORT_SYMBOL vmlinux 0x76b5a97a ip6_xmit +EXPORT_SYMBOL vmlinux 0x76bf656d __bitmap_shift_left +EXPORT_SYMBOL vmlinux 0x76c71d9b blk_queue_physical_block_size +EXPORT_SYMBOL vmlinux 0x76cdd154 cfb_copyarea +EXPORT_SYMBOL vmlinux 0x76d3cd60 laptop_mode +EXPORT_SYMBOL vmlinux 0x76d451c4 add_taint +EXPORT_SYMBOL vmlinux 0x76e1e777 scsi_report_device_reset +EXPORT_SYMBOL vmlinux 0x770a0036 isapnp_cfg_begin +EXPORT_SYMBOL vmlinux 0x7713853c tcp_md5_do_del +EXPORT_SYMBOL vmlinux 0x771cf835 dma_pool_alloc +EXPORT_SYMBOL vmlinux 0x771e1e8b nf_register_sockopt +EXPORT_SYMBOL vmlinux 0x772f9eec __percpu_counter_add +EXPORT_SYMBOL vmlinux 0x77341e56 xfrm_user_policy +EXPORT_SYMBOL vmlinux 0x773a9c94 blk_iopoll_enabled +EXPORT_SYMBOL vmlinux 0x77456e0a acpi_root_dir +EXPORT_SYMBOL vmlinux 0x774d5bd1 __ps2_command +EXPORT_SYMBOL vmlinux 0x774f04f5 nf_afinfo +EXPORT_SYMBOL vmlinux 0x776faf9c set_pages_nx +EXPORT_SYMBOL vmlinux 0x77897936 simple_write_end +EXPORT_SYMBOL vmlinux 0x779a18af kstrtoll +EXPORT_SYMBOL vmlinux 0x77a0dd1b generic_removexattr +EXPORT_SYMBOL vmlinux 0x77bc13a0 strim +EXPORT_SYMBOL vmlinux 0x77bd2895 console_stop +EXPORT_SYMBOL vmlinux 0x77be8db7 console_start +EXPORT_SYMBOL vmlinux 0x77c45346 dquot_initialize +EXPORT_SYMBOL vmlinux 0x77c6d017 igrab +EXPORT_SYMBOL vmlinux 0x77ccca44 i2c_del_adapter +EXPORT_SYMBOL vmlinux 0x77ce93b3 qid_lt +EXPORT_SYMBOL vmlinux 0x77d195a1 con_set_default_unimap +EXPORT_SYMBOL vmlinux 0x77df0847 __set_personality +EXPORT_SYMBOL vmlinux 0x77e0bf76 mmc_remove_host +EXPORT_SYMBOL vmlinux 0x77e29093 bdev_read_only +EXPORT_SYMBOL vmlinux 0x77ecac9f zlib_inflateEnd +EXPORT_SYMBOL vmlinux 0x780002d5 __skb_checksum_complete_head +EXPORT_SYMBOL vmlinux 0x780fdfd1 intel_enable_gtt +EXPORT_SYMBOL vmlinux 0x782a5952 sock_from_file +EXPORT_SYMBOL vmlinux 0x78314697 inet_ioctl +EXPORT_SYMBOL vmlinux 0x783583d3 eth_mac_addr +EXPORT_SYMBOL vmlinux 0x783b3563 wake_up_atomic_t +EXPORT_SYMBOL vmlinux 0x783ebee4 udp_proc_register +EXPORT_SYMBOL vmlinux 0x78400600 tcp_splice_read +EXPORT_SYMBOL vmlinux 0x787c9f20 wait_iff_congested +EXPORT_SYMBOL vmlinux 0x7880c781 dm_kcopyd_prepare_callback +EXPORT_SYMBOL vmlinux 0x789affb1 frontswap_tmem_exclusive_gets +EXPORT_SYMBOL vmlinux 0x789be518 __wait_on_buffer +EXPORT_SYMBOL vmlinux 0x78bb2011 dm_ratelimit_state +EXPORT_SYMBOL vmlinux 0x78bd89e4 user_revoke +EXPORT_SYMBOL vmlinux 0x78c2da75 set_user_nice +EXPORT_SYMBOL vmlinux 0x78db38d3 proc_dointvec +EXPORT_SYMBOL vmlinux 0x78dbaa13 xfrm_garbage_collect +EXPORT_SYMBOL vmlinux 0x78df6bd7 no_pci_devices +EXPORT_SYMBOL vmlinux 0x78f37138 genphy_read_status +EXPORT_SYMBOL vmlinux 0x78f9e824 ndo_dflt_fdb_dump +EXPORT_SYMBOL vmlinux 0x79068fda acpi_install_method +EXPORT_SYMBOL vmlinux 0x79217b98 bio_alloc_bioset +EXPORT_SYMBOL vmlinux 0x7953c971 neigh_direct_output +EXPORT_SYMBOL vmlinux 0x79620055 blk_queue_merge_bvec +EXPORT_SYMBOL vmlinux 0x796fc5ce scsi_get_sense_info_fld +EXPORT_SYMBOL vmlinux 0x797a372a ip_ct_attach +EXPORT_SYMBOL vmlinux 0x798e50ca sock_setsockopt +EXPORT_SYMBOL vmlinux 0x79aa04a2 get_random_bytes +EXPORT_SYMBOL vmlinux 0x79b97822 __dquot_transfer +EXPORT_SYMBOL vmlinux 0x79d8619a dev_mc_init +EXPORT_SYMBOL vmlinux 0x79eaf13d journal_forget +EXPORT_SYMBOL vmlinux 0x79ef891d dquot_drop +EXPORT_SYMBOL vmlinux 0x7a188791 prandom_bytes +EXPORT_SYMBOL vmlinux 0x7a27c184 ewma_init +EXPORT_SYMBOL vmlinux 0x7a4497db kzfree +EXPORT_SYMBOL vmlinux 0x7a621135 blk_queue_bounce_limit +EXPORT_SYMBOL vmlinux 0x7a700276 locks_copy_lock +EXPORT_SYMBOL vmlinux 0x7a7188a5 pcix_get_max_mmrbc +EXPORT_SYMBOL vmlinux 0x7a799b48 blk_dump_rq_flags +EXPORT_SYMBOL vmlinux 0x7a91726b clkdev_alloc +EXPORT_SYMBOL vmlinux 0x7a925833 cpufreq_get_global_kobject +EXPORT_SYMBOL vmlinux 0x7a9bf88d udplite_table +EXPORT_SYMBOL vmlinux 0x7ab5f800 netdev_features_change +EXPORT_SYMBOL vmlinux 0x7ab88a45 system_freezing_cnt +EXPORT_SYMBOL vmlinux 0x7aba493a bdput +EXPORT_SYMBOL vmlinux 0x7ac39158 pfifo_fast_ops +EXPORT_SYMBOL vmlinux 0x7ad2a758 scsi_reset_provider +EXPORT_SYMBOL vmlinux 0x7ad41bf9 posix_acl_valid +EXPORT_SYMBOL vmlinux 0x7adb6005 lock_fb_info +EXPORT_SYMBOL vmlinux 0x7addbd96 journal_start_commit +EXPORT_SYMBOL vmlinux 0x7aec9089 clear_user +EXPORT_SYMBOL vmlinux 0x7afa89fc vsnprintf +EXPORT_SYMBOL vmlinux 0x7b027e9f tcp_v4_md5_lookup +EXPORT_SYMBOL vmlinux 0x7b03848a verify_mem_not_deleted +EXPORT_SYMBOL vmlinux 0x7b134ddf acpi_get_name +EXPORT_SYMBOL vmlinux 0x7b1aa02a dcache_dir_close +EXPORT_SYMBOL vmlinux 0x7b496939 dev_add_pack +EXPORT_SYMBOL vmlinux 0x7b52a859 wrmsr_safe_on_cpu +EXPORT_SYMBOL vmlinux 0x7b548e0f tcf_hash_check +EXPORT_SYMBOL vmlinux 0x7b5c8440 vm_munmap +EXPORT_SYMBOL vmlinux 0x7b6d0285 dm_put_device +EXPORT_SYMBOL vmlinux 0x7b7f519c scsi_device_set_state +EXPORT_SYMBOL vmlinux 0x7b949ee0 mmc_gpio_get_cd +EXPORT_SYMBOL vmlinux 0x7b9a6116 intel_agp_enabled +EXPORT_SYMBOL vmlinux 0x7bcaabdc dma_async_tx_descriptor_init +EXPORT_SYMBOL vmlinux 0x7bdc03bf ps2_end_command +EXPORT_SYMBOL vmlinux 0x7bebdeef xfrm_state_walk +EXPORT_SYMBOL vmlinux 0x7c04b2df __f_setown +EXPORT_SYMBOL vmlinux 0x7c1372e8 panic +EXPORT_SYMBOL vmlinux 0x7c2f2183 pcie_capability_read_dword +EXPORT_SYMBOL vmlinux 0x7c41077f dev_activate +EXPORT_SYMBOL vmlinux 0x7c46233a cpufreq_quick_get +EXPORT_SYMBOL vmlinux 0x7c61340c __release_region +EXPORT_SYMBOL vmlinux 0x7c61f427 scsi_is_target_device +EXPORT_SYMBOL vmlinux 0x7c68b772 sock_queue_rcv_skb +EXPORT_SYMBOL vmlinux 0x7c741b72 simple_open +EXPORT_SYMBOL vmlinux 0x7c7df492 mark_buffer_async_write +EXPORT_SYMBOL vmlinux 0x7c7ea320 pci_disable_ido +EXPORT_SYMBOL vmlinux 0x7c83165a i2c_use_client +EXPORT_SYMBOL vmlinux 0x7c8d6b11 skb_copy_datagram_from_iovec +EXPORT_SYMBOL vmlinux 0x7c9c3faf ip6_route_output +EXPORT_SYMBOL vmlinux 0x7cb1ae69 cpu_down +EXPORT_SYMBOL vmlinux 0x7cc3670a xfrm_sad_getinfo +EXPORT_SYMBOL vmlinux 0x7cc896da ppp_unregister_channel +EXPORT_SYMBOL vmlinux 0x7cda6055 pm860x_page_bulk_write +EXPORT_SYMBOL vmlinux 0x7ce648e9 skb_clone +EXPORT_SYMBOL vmlinux 0x7ce83365 acpi_remove_table_handler +EXPORT_SYMBOL vmlinux 0x7ce8cfce netif_rx_ni +EXPORT_SYMBOL vmlinux 0x7cf7c989 ip_defrag +EXPORT_SYMBOL vmlinux 0x7d032bf9 mmc_gpio_free_ro +EXPORT_SYMBOL vmlinux 0x7d0db45c jiffies_to_clock_t +EXPORT_SYMBOL vmlinux 0x7d0eda2e unregister_exec_domain +EXPORT_SYMBOL vmlinux 0x7d11c268 jiffies +EXPORT_SYMBOL vmlinux 0x7d466cf8 tcp_hashinfo +EXPORT_SYMBOL vmlinux 0x7d737920 inet_frag_find +EXPORT_SYMBOL vmlinux 0x7d74ad8c dquot_free_inode +EXPORT_SYMBOL vmlinux 0x7d78b1a0 netif_device_detach +EXPORT_SYMBOL vmlinux 0x7d87ff9b bitmap_close_sync +EXPORT_SYMBOL vmlinux 0x7d9614b5 acpi_device_set_power +EXPORT_SYMBOL vmlinux 0x7da9231c end_buffer_write_sync +EXPORT_SYMBOL vmlinux 0x7dbc2e57 mmiotrace_printk +EXPORT_SYMBOL vmlinux 0x7deff673 dm_consume_args +EXPORT_SYMBOL vmlinux 0x7dfb4cae block_truncate_page +EXPORT_SYMBOL vmlinux 0x7e2cf7fd inet_listen +EXPORT_SYMBOL vmlinux 0x7e394c4e sysctl_local_reserved_ports +EXPORT_SYMBOL vmlinux 0x7e746560 devfreq_monitor_suspend +EXPORT_SYMBOL vmlinux 0x7e86eda6 xfrm_policy_byid +EXPORT_SYMBOL vmlinux 0x7eb2bd6d simple_setattr +EXPORT_SYMBOL vmlinux 0x7ec36205 max8998_update_reg +EXPORT_SYMBOL vmlinux 0x7ecb001b __per_cpu_offset +EXPORT_SYMBOL vmlinux 0x7ecd968d sock_create_lite +EXPORT_SYMBOL vmlinux 0x7f24de73 jiffies_to_usecs +EXPORT_SYMBOL vmlinux 0x7f24ee43 devm_ioremap_nocache +EXPORT_SYMBOL vmlinux 0x7f2b435f fb_show_logo +EXPORT_SYMBOL vmlinux 0x7f396162 keyring_alloc +EXPORT_SYMBOL vmlinux 0x7f4bf534 balance_dirty_pages_ratelimited +EXPORT_SYMBOL vmlinux 0x7f658e80 _raw_write_lock +EXPORT_SYMBOL vmlinux 0x7f779f66 mdiobus_scan +EXPORT_SYMBOL vmlinux 0x7faecfaf kmap_high +EXPORT_SYMBOL vmlinux 0x7fc1779d dev_emerg +EXPORT_SYMBOL vmlinux 0x7fe32873 rb_replace_node +EXPORT_SYMBOL vmlinux 0x7fe76814 max8925_bulk_read +EXPORT_SYMBOL vmlinux 0x7ff36ab2 sock_no_shutdown +EXPORT_SYMBOL vmlinux 0x800322ca generic_write_end +EXPORT_SYMBOL vmlinux 0x800d8530 input_reset_device +EXPORT_SYMBOL vmlinux 0x8020ae8f eth_prepare_mac_addr_change +EXPORT_SYMBOL vmlinux 0x80284e8e journal_check_used_features +EXPORT_SYMBOL vmlinux 0x80337f11 call_usermodehelper_setup +EXPORT_SYMBOL vmlinux 0x80350c14 invalidate_bdev +EXPORT_SYMBOL vmlinux 0x8038aa23 tcp_tso_segment +EXPORT_SYMBOL vmlinux 0x804745d9 __idr_pre_get +EXPORT_SYMBOL vmlinux 0x80476431 bio_advance +EXPORT_SYMBOL vmlinux 0x804b070a pci_find_next_bus +EXPORT_SYMBOL vmlinux 0x80ca5026 _bin2bcd +EXPORT_SYMBOL vmlinux 0x80cf3ecb rfkill_alloc +EXPORT_SYMBOL vmlinux 0x80d68d3e fb_register_client +EXPORT_SYMBOL vmlinux 0x80f599b0 scsi_device_lookup +EXPORT_SYMBOL vmlinux 0x80ff542f xfrm_register_type +EXPORT_SYMBOL vmlinux 0x81472677 acpi_get_table +EXPORT_SYMBOL vmlinux 0x81483cac mmc_set_data_timeout +EXPORT_SYMBOL vmlinux 0x814e7730 nf_ct_destroy +EXPORT_SYMBOL vmlinux 0x8150c0ba mempool_resize +EXPORT_SYMBOL vmlinux 0x8158dd35 tcp_v4_destroy_sock +EXPORT_SYMBOL vmlinux 0x815b5dd4 match_octal +EXPORT_SYMBOL vmlinux 0x815c56d0 cpu_present_mask +EXPORT_SYMBOL vmlinux 0x815f2897 empty_zero_page +EXPORT_SYMBOL vmlinux 0x81610e72 pnp_device_detach +EXPORT_SYMBOL vmlinux 0x8171517f kthread_bind +EXPORT_SYMBOL vmlinux 0x8180355e pci_request_selected_regions +EXPORT_SYMBOL vmlinux 0x818d8bf7 pcie_capability_write_word +EXPORT_SYMBOL vmlinux 0x818f2058 phy_start +EXPORT_SYMBOL vmlinux 0x819e1c25 acpi_evaluate_reference +EXPORT_SYMBOL vmlinux 0x81c54ad4 journal_destroy +EXPORT_SYMBOL vmlinux 0x81cabe28 dma_pool_create +EXPORT_SYMBOL vmlinux 0x81d10f5f trace_seq_putc +EXPORT_SYMBOL vmlinux 0x81d1d094 end_buffer_read_sync +EXPORT_SYMBOL vmlinux 0x81db6ebb xz_dec_reset +EXPORT_SYMBOL vmlinux 0x81e6b37f dmi_get_system_info +EXPORT_SYMBOL vmlinux 0x81fa5303 mmc_unregister_driver +EXPORT_SYMBOL vmlinux 0x82072614 tasklet_kill +EXPORT_SYMBOL vmlinux 0x8212721d xenbus_dev_request_and_reply +EXPORT_SYMBOL vmlinux 0x82297229 blk_integrity_merge_rq +EXPORT_SYMBOL vmlinux 0x822f45ea pcie_get_readrq +EXPORT_SYMBOL vmlinux 0x8235805b memmove +EXPORT_SYMBOL vmlinux 0x8243f0ed dquot_acquire +EXPORT_SYMBOL vmlinux 0x8251bcc3 bitmap_release_region +EXPORT_SYMBOL vmlinux 0x82596cf4 arp_invalidate +EXPORT_SYMBOL vmlinux 0x8260686f bitmap_find_next_zero_area +EXPORT_SYMBOL vmlinux 0x827544c7 tty_lock +EXPORT_SYMBOL vmlinux 0x828062b1 __frontswap_init +EXPORT_SYMBOL vmlinux 0x82ac88c8 inc_zone_page_state +EXPORT_SYMBOL vmlinux 0x82acfb70 blk_iopoll_sched +EXPORT_SYMBOL vmlinux 0x82b1c817 ps2_handle_ack +EXPORT_SYMBOL vmlinux 0x82b1ff0c neigh_seq_next +EXPORT_SYMBOL vmlinux 0x82bea9f4 agp_backend_release +EXPORT_SYMBOL vmlinux 0x82d48f57 do_sync_read +EXPORT_SYMBOL vmlinux 0x82f65b4d udp_lib_setsockopt +EXPORT_SYMBOL vmlinux 0x82f9a74e touch_atime +EXPORT_SYMBOL vmlinux 0x830e547b ioremap_prot +EXPORT_SYMBOL vmlinux 0x832ca86d netdev_change_features +EXPORT_SYMBOL vmlinux 0x833c03aa acpi_enable_all_runtime_gpes +EXPORT_SYMBOL vmlinux 0x836d548b sock_kfree_s +EXPORT_SYMBOL vmlinux 0x837445f8 register_exec_domain +EXPORT_SYMBOL vmlinux 0x838746bb sdev_disable_disk_events +EXPORT_SYMBOL vmlinux 0x839ee62c lro_flush_pkt +EXPORT_SYMBOL vmlinux 0x839ff87b kernel_getpeername +EXPORT_SYMBOL vmlinux 0x83a476ce bitmap_scnlistprintf +EXPORT_SYMBOL vmlinux 0x83a84492 jbd2_journal_check_used_features +EXPORT_SYMBOL vmlinux 0x83b4ff74 add_disk +EXPORT_SYMBOL vmlinux 0x83c8a355 param_set_int +EXPORT_SYMBOL vmlinux 0x83de33d6 inet_add_offload +EXPORT_SYMBOL vmlinux 0x84060081 xen_poll_irq_timeout +EXPORT_SYMBOL vmlinux 0x8406ede2 tcf_hash_insert +EXPORT_SYMBOL vmlinux 0x8417f512 acpi_update_all_gpes +EXPORT_SYMBOL vmlinux 0x84264179 blk_free_tags +EXPORT_SYMBOL vmlinux 0x843aff35 pci_dev_put +EXPORT_SYMBOL vmlinux 0x84833e2e xfrm6_prepare_output +EXPORT_SYMBOL vmlinux 0x84be886f completion_done +EXPORT_SYMBOL vmlinux 0x84e34e38 inet6_del_protocol +EXPORT_SYMBOL vmlinux 0x84fa2e6e bio_integrity_prep +EXPORT_SYMBOL vmlinux 0x84ffea8b idr_preload +EXPORT_SYMBOL vmlinux 0x850a094f devm_ioport_map +EXPORT_SYMBOL vmlinux 0x851df90a mb_cache_entry_find_first +EXPORT_SYMBOL vmlinux 0x852bf16a tcp_prequeue +EXPORT_SYMBOL vmlinux 0x85432601 iov_iter_copy_from_user_atomic +EXPORT_SYMBOL vmlinux 0x8562d474 __skb_get_rxhash +EXPORT_SYMBOL vmlinux 0x85670f1d rtnl_is_locked +EXPORT_SYMBOL vmlinux 0x857c9786 arp_create +EXPORT_SYMBOL vmlinux 0x85b5e625 rfkill_set_states +EXPORT_SYMBOL vmlinux 0x85bfd129 set_device_ro +EXPORT_SYMBOL vmlinux 0x85dafab0 cdev_init +EXPORT_SYMBOL vmlinux 0x85df9b6c strsep +EXPORT_SYMBOL vmlinux 0x85e7deb2 iov_iter_fault_in_readable +EXPORT_SYMBOL vmlinux 0x85ecd161 skb_dequeue +EXPORT_SYMBOL vmlinux 0x85f945a7 mmc_can_reset +EXPORT_SYMBOL vmlinux 0x8601a169 pci_bus_find_capability +EXPORT_SYMBOL vmlinux 0x861fba98 wait_for_completion_io +EXPORT_SYMBOL vmlinux 0x862c4553 lookup_bdev +EXPORT_SYMBOL vmlinux 0x86341410 tcf_hash_destroy +EXPORT_SYMBOL vmlinux 0x8648831a elv_add_request +EXPORT_SYMBOL vmlinux 0x865029ac __hw_addr_sync +EXPORT_SYMBOL vmlinux 0x865c0c52 end_buffer_async_write +EXPORT_SYMBOL vmlinux 0x8664f62e cpufreq_update_policy +EXPORT_SYMBOL vmlinux 0x8672150c mfd_cell_disable +EXPORT_SYMBOL vmlinux 0x867352ea blk_queue_stack_limits +EXPORT_SYMBOL vmlinux 0x868acba5 get_options +EXPORT_SYMBOL vmlinux 0x869c9581 scm_detach_fds +EXPORT_SYMBOL vmlinux 0x86a4889a kmalloc_order_trace +EXPORT_SYMBOL vmlinux 0x86d5255f _raw_write_lock_irqsave +EXPORT_SYMBOL vmlinux 0x86fb9b05 bitmap_parse_user +EXPORT_SYMBOL vmlinux 0x8704695c xfrm_find_acq_byseq +EXPORT_SYMBOL vmlinux 0x870bf928 radix_tree_lookup +EXPORT_SYMBOL vmlinux 0x8715a5b2 tcp_gro_complete +EXPORT_SYMBOL vmlinux 0x871c0a7e fiemap_check_flags +EXPORT_SYMBOL vmlinux 0x871da267 dquot_quotactl_ops +EXPORT_SYMBOL vmlinux 0x87286659 ioc_lookup_icq +EXPORT_SYMBOL vmlinux 0x873ebb57 kmap +EXPORT_SYMBOL vmlinux 0x87555ddd mdiobus_read +EXPORT_SYMBOL vmlinux 0x8763b839 tcp_md5_do_lookup +EXPORT_SYMBOL vmlinux 0x876ccb51 security_path_rename +EXPORT_SYMBOL vmlinux 0x876dafc3 ec_write +EXPORT_SYMBOL vmlinux 0x87795dc7 blk_queue_init_tags +EXPORT_SYMBOL vmlinux 0x878ab3ce sysctl_tcp_adv_win_scale +EXPORT_SYMBOL vmlinux 0x8798e453 __tracepoint_kfree +EXPORT_SYMBOL vmlinux 0x879c22ac pm860x_set_bits +EXPORT_SYMBOL vmlinux 0x879eaacd kern_path +EXPORT_SYMBOL vmlinux 0x87aaddf8 wrmsr_safe_regs_on_cpu +EXPORT_SYMBOL vmlinux 0x87b0bab7 inet_unregister_protosw +EXPORT_SYMBOL vmlinux 0x87becad5 dev_addr_add_multiple +EXPORT_SYMBOL vmlinux 0x87e94fb5 dentry_update_name_case +EXPORT_SYMBOL vmlinux 0x87f40a54 bh_submit_read +EXPORT_SYMBOL vmlinux 0x881039d0 zlib_inflate +EXPORT_SYMBOL vmlinux 0x881fc7bf inet_frag_destroy +EXPORT_SYMBOL vmlinux 0x882dab9d sg_pcopy_from_buffer +EXPORT_SYMBOL vmlinux 0x8834396c mod_timer +EXPORT_SYMBOL vmlinux 0x88994ebf rename_lock +EXPORT_SYMBOL vmlinux 0x891fcb75 agp_free_memory +EXPORT_SYMBOL vmlinux 0x8923f8e5 __i2c_transfer +EXPORT_SYMBOL vmlinux 0x892b26a0 set_memory_nx +EXPORT_SYMBOL vmlinux 0x8953f8ff __tracepoint_kmem_cache_alloc +EXPORT_SYMBOL vmlinux 0x8955afee scsi_remove_target +EXPORT_SYMBOL vmlinux 0x8961d707 address_space_init_once +EXPORT_SYMBOL vmlinux 0x896c8cb6 vfs_link +EXPORT_SYMBOL vmlinux 0x89719bbe cfb_imageblit +EXPORT_SYMBOL vmlinux 0x897473df mktime +EXPORT_SYMBOL vmlinux 0x8979867f journal_abort +EXPORT_SYMBOL vmlinux 0x897f2bc9 tcp_ioctl +EXPORT_SYMBOL vmlinux 0x89a74290 ip_route_input_noref +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 0x89e94a94 neigh_parms_alloc +EXPORT_SYMBOL vmlinux 0x8a1ab4ee timeval_to_jiffies +EXPORT_SYMBOL vmlinux 0x8a269756 serio_unregister_driver +EXPORT_SYMBOL vmlinux 0x8a3f3cf3 agp_create_memory +EXPORT_SYMBOL vmlinux 0x8a412dc5 dquot_mark_dquot_dirty +EXPORT_SYMBOL vmlinux 0x8a490c90 rfkill_set_sw_state +EXPORT_SYMBOL vmlinux 0x8a623588 x86_dma_fallback_dev +EXPORT_SYMBOL vmlinux 0x8a7d1c31 high_memory +EXPORT_SYMBOL vmlinux 0x8a99a016 mempool_free_slab +EXPORT_SYMBOL vmlinux 0x8aadc63a blk_post_runtime_resume +EXPORT_SYMBOL vmlinux 0x8ace8ca3 groups_alloc +EXPORT_SYMBOL vmlinux 0x8ae831b8 pci_disable_ltr +EXPORT_SYMBOL vmlinux 0x8b0b1829 journal_wipe +EXPORT_SYMBOL vmlinux 0x8b18496f __copy_to_user_ll +EXPORT_SYMBOL vmlinux 0x8b1a7a66 pcie_aspm_enabled +EXPORT_SYMBOL vmlinux 0x8b1c4ff6 agp_generic_alloc_by_type +EXPORT_SYMBOL vmlinux 0x8b2037b8 wait_on_page_bit +EXPORT_SYMBOL vmlinux 0x8b226a81 acpi_video_dmi_demote_vendor +EXPORT_SYMBOL vmlinux 0x8b35e873 sg_last +EXPORT_SYMBOL vmlinux 0x8b43159b register_cpu_notifier +EXPORT_SYMBOL vmlinux 0x8b5d33e8 tcp_seq_open +EXPORT_SYMBOL vmlinux 0x8b5f4a2e IO_APIC_get_PCI_irq_vector +EXPORT_SYMBOL vmlinux 0x8b618d08 overflowuid +EXPORT_SYMBOL vmlinux 0x8b965476 swiotlb_sync_sg_for_device +EXPORT_SYMBOL vmlinux 0x8b989cf9 acpi_bus_can_wakeup +EXPORT_SYMBOL vmlinux 0x8ba38d38 free_task +EXPORT_SYMBOL vmlinux 0x8bb6ebf9 clocksource_unregister +EXPORT_SYMBOL vmlinux 0x8bc1c5a3 tc_classify_compat +EXPORT_SYMBOL vmlinux 0x8bc27b63 tcf_em_unregister +EXPORT_SYMBOL vmlinux 0x8bcae213 iterate_supers_type +EXPORT_SYMBOL vmlinux 0x8bcc2cf6 scsi_adjust_queue_depth +EXPORT_SYMBOL vmlinux 0x8bf2f356 register_netdev +EXPORT_SYMBOL vmlinux 0x8bfe8c57 param_set_uint +EXPORT_SYMBOL vmlinux 0x8bffe338 task_tgid_nr_ns +EXPORT_SYMBOL vmlinux 0x8c0247e2 tty_port_destroy +EXPORT_SYMBOL vmlinux 0x8c0e7dd1 skb_copy_bits +EXPORT_SYMBOL vmlinux 0x8c183cbe iowrite16 +EXPORT_SYMBOL vmlinux 0x8c1cc5fe intel_gmch_probe +EXPORT_SYMBOL vmlinux 0x8c44e913 bio_pair_release +EXPORT_SYMBOL vmlinux 0x8c44f250 ps2_drain +EXPORT_SYMBOL vmlinux 0x8c637d43 irq_cpu_rmap_add +EXPORT_SYMBOL vmlinux 0x8c840c6f mount_ns +EXPORT_SYMBOL vmlinux 0x8c9473e0 tcf_hash_new_index +EXPORT_SYMBOL vmlinux 0x8c9af996 kmap_atomic_prot +EXPORT_SYMBOL vmlinux 0x8ca74260 dev_kfree_skb_irq +EXPORT_SYMBOL vmlinux 0x8cc79cab iowrite16_rep +EXPORT_SYMBOL vmlinux 0x8ccb8abb twl6040_reg_read +EXPORT_SYMBOL vmlinux 0x8cd103be blk_sync_queue +EXPORT_SYMBOL vmlinux 0x8cda8029 xen_clear_irq_pending +EXPORT_SYMBOL vmlinux 0x8d011a04 ipv6_skip_exthdr +EXPORT_SYMBOL vmlinux 0x8d051df2 tcp_poll +EXPORT_SYMBOL vmlinux 0x8d1681b5 pnp_device_attach +EXPORT_SYMBOL vmlinux 0x8d3fb6d0 complete_request_key +EXPORT_SYMBOL vmlinux 0x8d551bef sysctl_tcp_rmem +EXPORT_SYMBOL vmlinux 0x8d5a9e28 idr_get_next +EXPORT_SYMBOL vmlinux 0x8d5c1777 register_quota_format +EXPORT_SYMBOL vmlinux 0x8d6f81b4 __div64_32 +EXPORT_SYMBOL vmlinux 0x8d8ae5ab cdrom_get_media_event +EXPORT_SYMBOL vmlinux 0x8d8d96c6 acpi_get_sleep_type_data +EXPORT_SYMBOL vmlinux 0x8d950155 atomic_dec_and_mutex_lock +EXPORT_SYMBOL vmlinux 0x8da1a3cb acpi_remove_interface +EXPORT_SYMBOL vmlinux 0x8daf8c42 dql_init +EXPORT_SYMBOL vmlinux 0x8dc6e564 restore_processor_state +EXPORT_SYMBOL vmlinux 0x8dd3aa00 dump_trace +EXPORT_SYMBOL vmlinux 0x8de1b3da alloc_buffer_head +EXPORT_SYMBOL vmlinux 0x8dfe1815 find_or_create_page +EXPORT_SYMBOL vmlinux 0x8e002cda acpi_remove_gpe_block +EXPORT_SYMBOL vmlinux 0x8e033ae2 tcp_v4_syn_recv_sock +EXPORT_SYMBOL vmlinux 0x8e0d66f4 __tracepoint_kmalloc +EXPORT_SYMBOL vmlinux 0x8e187e22 xfrm_policy_register_afinfo +EXPORT_SYMBOL vmlinux 0x8e28cd42 in_egroup_p +EXPORT_SYMBOL vmlinux 0x8e307d83 security_path_truncate +EXPORT_SYMBOL vmlinux 0x8e322206 tcp_get_md5sig_pool +EXPORT_SYMBOL vmlinux 0x8e33fe37 md_wakeup_thread +EXPORT_SYMBOL vmlinux 0x8e345c70 path_is_under +EXPORT_SYMBOL vmlinux 0x8e4e5cea clear_page_dirty_for_io +EXPORT_SYMBOL vmlinux 0x8e58ab91 alloc_disk_node +EXPORT_SYMBOL vmlinux 0x8e62216b agp_alloc_page_array +EXPORT_SYMBOL vmlinux 0x8e6650b2 i2c_master_recv +EXPORT_SYMBOL vmlinux 0x8e87aed4 idr_for_each +EXPORT_SYMBOL vmlinux 0x8e888ec3 cpumask_next_and +EXPORT_SYMBOL vmlinux 0x8e8bada7 netdev_upper_dev_unlink +EXPORT_SYMBOL vmlinux 0x8e91e17f current_task +EXPORT_SYMBOL vmlinux 0x8e97c5ea simple_fill_super +EXPORT_SYMBOL vmlinux 0x8e9bae43 i2c_smbus_write_i2c_block_data +EXPORT_SYMBOL vmlinux 0x8eaf2a5f vga_switcheroo_unregister_handler +EXPORT_SYMBOL vmlinux 0x8eb19025 page_symlink +EXPORT_SYMBOL vmlinux 0x8f045d1c cancel_delayed_work +EXPORT_SYMBOL vmlinux 0x8f051205 devfreq_interval_update +EXPORT_SYMBOL vmlinux 0x8f2703b7 wbinvd_on_all_cpus +EXPORT_SYMBOL vmlinux 0x8f28e8d2 pci_reenable_device +EXPORT_SYMBOL vmlinux 0x8f681d9f finish_open +EXPORT_SYMBOL vmlinux 0x8f7014a1 param_set_ulong +EXPORT_SYMBOL vmlinux 0x8f9c199c __get_user_2 +EXPORT_SYMBOL vmlinux 0x8fb98f48 __blk_end_request_cur +EXPORT_SYMBOL vmlinux 0x8fdb8453 page_readlink +EXPORT_SYMBOL vmlinux 0x8ff14f40 scsi_host_alloc +EXPORT_SYMBOL vmlinux 0x8ff4079b pv_irq_ops +EXPORT_SYMBOL vmlinux 0x8ffdb3b8 crc16 +EXPORT_SYMBOL vmlinux 0x900451ed skb_unlink +EXPORT_SYMBOL vmlinux 0x900f0c93 pci_bus_type +EXPORT_SYMBOL vmlinux 0x900fa395 max8998_write_reg +EXPORT_SYMBOL vmlinux 0x901966c6 fsnotify_get_group +EXPORT_SYMBOL vmlinux 0x901d28d0 bio_clone_bioset +EXPORT_SYMBOL vmlinux 0x901fcdee lro_flush_all +EXPORT_SYMBOL vmlinux 0x9026b79d tty_port_init +EXPORT_SYMBOL vmlinux 0x90332ddc nobh_write_end +EXPORT_SYMBOL vmlinux 0x904409c6 acpi_set_firmware_waking_vector +EXPORT_SYMBOL vmlinux 0x9045eda8 ioctl_by_bdev +EXPORT_SYMBOL vmlinux 0x90596ab8 bh_uptodate_or_lock +EXPORT_SYMBOL vmlinux 0x9060502a scsi_get_device_flags_keyed +EXPORT_SYMBOL vmlinux 0x906a4be4 genlmsg_put +EXPORT_SYMBOL vmlinux 0x9084aee7 tty_port_close_start +EXPORT_SYMBOL vmlinux 0x90c4ea9a dev_graft_qdisc +EXPORT_SYMBOL vmlinux 0x90c5e819 kstrtoll_from_user +EXPORT_SYMBOL vmlinux 0x90e09485 input_mt_sync_frame +EXPORT_SYMBOL vmlinux 0x90e43206 pci_match_id +EXPORT_SYMBOL vmlinux 0x90e51595 __xfrm_init_state +EXPORT_SYMBOL vmlinux 0x90f1f873 inc_nlink +EXPORT_SYMBOL vmlinux 0x90fce2da netpoll_rx_disable +EXPORT_SYMBOL vmlinux 0x910b7138 __scm_send +EXPORT_SYMBOL vmlinux 0x912ea6e0 create_empty_buffers +EXPORT_SYMBOL vmlinux 0x9139b6c2 abx500_set_register_interruptible +EXPORT_SYMBOL vmlinux 0x9141ec9e proc_doulongvec_minmax +EXPORT_SYMBOL vmlinux 0x9144a8e2 ec_burst_disable +EXPORT_SYMBOL vmlinux 0x91463b1d kstrtos16 +EXPORT_SYMBOL vmlinux 0x9152875f lz4_decompress_unknownoutputsize +EXPORT_SYMBOL vmlinux 0x915a92c5 write_one_page +EXPORT_SYMBOL vmlinux 0x91607d95 set_memory_wb +EXPORT_SYMBOL vmlinux 0x91715312 sprintf +EXPORT_SYMBOL vmlinux 0x9188c8ac net_dma_find_channel +EXPORT_SYMBOL vmlinux 0x91967e8e xen_selfballoon_init +EXPORT_SYMBOL vmlinux 0x919e2ce8 input_mt_init_slots +EXPORT_SYMBOL vmlinux 0x91dd4e94 sock_wake_async +EXPORT_SYMBOL vmlinux 0x9205953f send_remote_softirq +EXPORT_SYMBOL vmlinux 0x92247d49 skb_try_coalesce +EXPORT_SYMBOL vmlinux 0x923b1276 dmaengine_get +EXPORT_SYMBOL vmlinux 0x92897e3d default_idle +EXPORT_SYMBOL vmlinux 0x92911b11 __seq_open_private +EXPORT_SYMBOL vmlinux 0x92a468b6 spi_release_transport +EXPORT_SYMBOL vmlinux 0x92a49867 eth_header_cache_update +EXPORT_SYMBOL vmlinux 0x92a74399 scsi_scan_target +EXPORT_SYMBOL vmlinux 0x92a9c60c time_to_tm +EXPORT_SYMBOL vmlinux 0x92b91f5e scsi_prep_return +EXPORT_SYMBOL vmlinux 0x92cd0937 cdev_add +EXPORT_SYMBOL vmlinux 0x92e7fd49 get_disk +EXPORT_SYMBOL vmlinux 0x92fff6fe swiotlb_map_sg +EXPORT_SYMBOL vmlinux 0x9305f8e6 cpufreq_get +EXPORT_SYMBOL vmlinux 0x9320c3f5 tty_chars_in_buffer +EXPORT_SYMBOL vmlinux 0x93215e1d __kfifo_skip_r +EXPORT_SYMBOL vmlinux 0x9328e7a7 revert_creds +EXPORT_SYMBOL vmlinux 0x93350a14 idr_find_slowpath +EXPORT_SYMBOL vmlinux 0x93448c57 screen_info +EXPORT_SYMBOL vmlinux 0x9345104e splice_from_pipe_end +EXPORT_SYMBOL vmlinux 0x93551e5c nf_unregister_hook +EXPORT_SYMBOL vmlinux 0x93570698 get_task_io_context +EXPORT_SYMBOL vmlinux 0x935c3e5a pci_scan_bus +EXPORT_SYMBOL vmlinux 0x938e31ad phy_get_eee_err +EXPORT_SYMBOL vmlinux 0x938eb9c4 mpage_readpage +EXPORT_SYMBOL vmlinux 0x939f4e0c km_state_expired +EXPORT_SYMBOL vmlinux 0x93a6e0b2 io_schedule +EXPORT_SYMBOL vmlinux 0x93b3fc74 register_dcbevent_notifier +EXPORT_SYMBOL vmlinux 0x93c393aa input_flush_device +EXPORT_SYMBOL vmlinux 0x93c651be acpi_info +EXPORT_SYMBOL vmlinux 0x93ec6636 jbd2_journal_extend +EXPORT_SYMBOL vmlinux 0x93fca811 __get_free_pages +EXPORT_SYMBOL vmlinux 0x940f786f generic_show_options +EXPORT_SYMBOL vmlinux 0x9443b1c6 irq_set_chip +EXPORT_SYMBOL vmlinux 0x9480cb8f __bio_clone +EXPORT_SYMBOL vmlinux 0x94961283 vunmap +EXPORT_SYMBOL vmlinux 0x94b541b5 cpu_active_mask +EXPORT_SYMBOL vmlinux 0x94b56ffa __generic_file_aio_write +EXPORT_SYMBOL vmlinux 0x94b756e4 scsi_cmd_get_serial +EXPORT_SYMBOL vmlinux 0x94be2ae2 scsi_mode_sense +EXPORT_SYMBOL vmlinux 0x94f0f77f vfs_llseek +EXPORT_SYMBOL vmlinux 0x950e286e sget +EXPORT_SYMBOL vmlinux 0x95154350 scsi_eh_restore_cmnd +EXPORT_SYMBOL vmlinux 0x954488a4 syncookie_secret +EXPORT_SYMBOL vmlinux 0x9545af6d tasklet_init +EXPORT_SYMBOL vmlinux 0x95472f8b qdisc_class_hash_grow +EXPORT_SYMBOL vmlinux 0x95879930 devm_backlight_device_register +EXPORT_SYMBOL vmlinux 0x95949502 mfd_remove_devices +EXPORT_SYMBOL vmlinux 0x95a7ac7c register_nls +EXPORT_SYMBOL vmlinux 0x95ad3114 dquot_quota_on +EXPORT_SYMBOL vmlinux 0x95e2751e netlink_kernel_release +EXPORT_SYMBOL vmlinux 0x95e6e500 blk_stack_limits +EXPORT_SYMBOL vmlinux 0x95e8522f tcp_read_sock +EXPORT_SYMBOL vmlinux 0x95f1a8ba truncate_setsize +EXPORT_SYMBOL vmlinux 0x95f2ce8d pci_iomap +EXPORT_SYMBOL vmlinux 0x95f89a33 _raw_write_lock_irq +EXPORT_SYMBOL vmlinux 0x9612cace __dst_destroy_metrics_generic +EXPORT_SYMBOL vmlinux 0x96157509 elv_dispatch_add_tail +EXPORT_SYMBOL vmlinux 0x9620ea9b inet_confirm_addr +EXPORT_SYMBOL vmlinux 0x96346349 sock_alloc_send_pskb +EXPORT_SYMBOL vmlinux 0x963ad3b0 set_pages_x +EXPORT_SYMBOL vmlinux 0x96424fd0 pnp_find_card +EXPORT_SYMBOL vmlinux 0x964ad1c2 sk_send_sigurg +EXPORT_SYMBOL vmlinux 0x96573b80 __kfifo_dma_in_finish_r +EXPORT_SYMBOL vmlinux 0x966219e4 set_page_dirty_lock +EXPORT_SYMBOL vmlinux 0x9664f68a fail_migrate_page +EXPORT_SYMBOL vmlinux 0x96898769 sysfs_format_mac +EXPORT_SYMBOL vmlinux 0x969bd37f __set_page_dirty_nobuffers +EXPORT_SYMBOL vmlinux 0x96b6a470 do_truncate +EXPORT_SYMBOL vmlinux 0x96cd2b04 scsi_sense_key_string +EXPORT_SYMBOL vmlinux 0x96d5bac2 inet_proto_csum_replace4 +EXPORT_SYMBOL vmlinux 0x96e30f97 ip_generic_getfrag +EXPORT_SYMBOL vmlinux 0x96f5d386 scsi_device_resume +EXPORT_SYMBOL vmlinux 0x9706bb35 rtnl_set_sk_err +EXPORT_SYMBOL vmlinux 0x970fb250 bio_uncopy_user +EXPORT_SYMBOL vmlinux 0x972a4693 agp_collect_device_status +EXPORT_SYMBOL vmlinux 0x972ca32d udp_prot +EXPORT_SYMBOL vmlinux 0x973fa82e register_acpi_notifier +EXPORT_SYMBOL vmlinux 0x9754ec10 radix_tree_preload +EXPORT_SYMBOL vmlinux 0x975521f0 page_address +EXPORT_SYMBOL vmlinux 0x976823d3 sock_no_socketpair +EXPORT_SYMBOL vmlinux 0x976d97c0 scsi_scan_host +EXPORT_SYMBOL vmlinux 0x976e8c3d give_up_console +EXPORT_SYMBOL vmlinux 0x97717b0a request_key_with_auxdata +EXPORT_SYMBOL vmlinux 0x97723309 dev_driver_string +EXPORT_SYMBOL vmlinux 0x97999817 rfkill_set_hw_state +EXPORT_SYMBOL vmlinux 0x979bce15 shrink_dcache_parent +EXPORT_SYMBOL vmlinux 0x97b4500c __tracepoint_kmem_cache_free +EXPORT_SYMBOL vmlinux 0x97b59586 lg_local_lock_cpu +EXPORT_SYMBOL vmlinux 0x97b8a84e __xfrm_policy_check +EXPORT_SYMBOL vmlinux 0x97c5bd0a acpi_unload_parent_table +EXPORT_SYMBOL vmlinux 0x97cfffc8 blk_init_queue_node +EXPORT_SYMBOL vmlinux 0x97dcef29 acpi_processor_unregister_performance +EXPORT_SYMBOL vmlinux 0x97de0ddd acpi_install_gpe_block +EXPORT_SYMBOL vmlinux 0x97e0477f dcache_readdir +EXPORT_SYMBOL vmlinux 0x98002344 dev_get_by_flags_rcu +EXPORT_SYMBOL vmlinux 0x98018021 write_dirty_buffer +EXPORT_SYMBOL vmlinux 0x9815738e km_new_mapping +EXPORT_SYMBOL vmlinux 0x9820b644 warn_slowpath_fmt_taint +EXPORT_SYMBOL vmlinux 0x98246989 d_set_d_op +EXPORT_SYMBOL vmlinux 0x984cea52 jbd2__journal_restart +EXPORT_SYMBOL vmlinux 0x985afd4f udp_lib_rehash +EXPORT_SYMBOL vmlinux 0x986e6135 fb_pad_unaligned_buffer +EXPORT_SYMBOL vmlinux 0x9876706b tcf_em_tree_validate +EXPORT_SYMBOL vmlinux 0x98776490 page_follow_link_light +EXPORT_SYMBOL vmlinux 0x9878c975 rtnl_create_link +EXPORT_SYMBOL vmlinux 0x988ed85d set_memory_x +EXPORT_SYMBOL vmlinux 0x98c26828 pci_scan_single_device +EXPORT_SYMBOL vmlinux 0x98df2072 ata_scsi_cmd_error_handler +EXPORT_SYMBOL vmlinux 0x98ec6fe7 pm_vt_switch_unregister +EXPORT_SYMBOL vmlinux 0x98f8e984 module_put +EXPORT_SYMBOL vmlinux 0x98fa21b0 mod_timer_pinned +EXPORT_SYMBOL vmlinux 0x99052a84 acpi_os_write_port +EXPORT_SYMBOL vmlinux 0x99517682 udp_encap_enable +EXPORT_SYMBOL vmlinux 0x99552a7f dma_mark_declared_memory_occupied +EXPORT_SYMBOL vmlinux 0x99591a7a ipv6_ext_hdr +EXPORT_SYMBOL vmlinux 0x996f05db skb_kill_datagram +EXPORT_SYMBOL vmlinux 0x9979d18b inet_proto_csum_replace16 +EXPORT_SYMBOL vmlinux 0x9994c0ca ps2_is_keyboard_id +EXPORT_SYMBOL vmlinux 0x999e8297 vfree +EXPORT_SYMBOL vmlinux 0x99c0fc1a try_module_get +EXPORT_SYMBOL vmlinux 0x99c61c77 pcibios_bus_to_resource +EXPORT_SYMBOL vmlinux 0x99cdc86b sysctl_tcp_reordering +EXPORT_SYMBOL vmlinux 0x99eb23bf pci_disable_device +EXPORT_SYMBOL vmlinux 0x9a0ba1d7 agp_bridge +EXPORT_SYMBOL vmlinux 0x9a1dfd65 strpbrk +EXPORT_SYMBOL vmlinux 0x9a1fc4b4 jiffies_to_timeval +EXPORT_SYMBOL vmlinux 0x9a5195a5 dquot_set_dqinfo +EXPORT_SYMBOL vmlinux 0x9a64c067 pm8606_osc_disable +EXPORT_SYMBOL vmlinux 0x9a6a83f9 cmos_lock +EXPORT_SYMBOL vmlinux 0x9a82cdf9 vfs_path_lookup +EXPORT_SYMBOL vmlinux 0x9a855c88 prepare_kernel_cred +EXPORT_SYMBOL vmlinux 0x9abbd22c inet_csk_init_xmit_timers +EXPORT_SYMBOL vmlinux 0x9abf0ef9 journal_errno +EXPORT_SYMBOL vmlinux 0x9ad836a7 phy_ethtool_get_eee +EXPORT_SYMBOL vmlinux 0x9adb1b52 proc_symlink +EXPORT_SYMBOL vmlinux 0x9aebb1fc remove_arg_zero +EXPORT_SYMBOL vmlinux 0x9afe31a4 security_inode_init_security +EXPORT_SYMBOL vmlinux 0x9afe680d gnet_stats_start_copy +EXPORT_SYMBOL vmlinux 0x9b075005 xfrm_state_unregister_afinfo +EXPORT_SYMBOL vmlinux 0x9b16f239 security_inode_setsecctx +EXPORT_SYMBOL vmlinux 0x9b2b1f69 submit_bio +EXPORT_SYMBOL vmlinux 0x9b33e0d7 unregister_dcbevent_notifier +EXPORT_SYMBOL vmlinux 0x9b388444 get_zeroed_page +EXPORT_SYMBOL vmlinux 0x9b6e84d4 kfree_skb_partial +EXPORT_SYMBOL vmlinux 0x9b6eb137 ksize +EXPORT_SYMBOL vmlinux 0x9b75cb81 _raw_read_trylock +EXPORT_SYMBOL vmlinux 0x9b7ba12b ppp_input_error +EXPORT_SYMBOL vmlinux 0x9b8f34a1 default_file_splice_read +EXPORT_SYMBOL vmlinux 0x9b9e05f9 alloc_cpu_rmap +EXPORT_SYMBOL vmlinux 0x9ba7089d argv_split +EXPORT_SYMBOL vmlinux 0x9bde2771 d_hash_and_lookup +EXPORT_SYMBOL vmlinux 0x9be7bde4 security_tun_dev_attach +EXPORT_SYMBOL vmlinux 0x9bead1fd sock_queue_err_skb +EXPORT_SYMBOL vmlinux 0x9bf934fb netdev_warn +EXPORT_SYMBOL vmlinux 0x9c077242 mmc_alloc_host +EXPORT_SYMBOL vmlinux 0x9c2c944a __copy_from_user_ll_nocache_nozero +EXPORT_SYMBOL vmlinux 0x9c3a5026 gen_pool_free +EXPORT_SYMBOL vmlinux 0x9c3f02a1 module_layout +EXPORT_SYMBOL vmlinux 0x9c491f60 sg_alloc_table +EXPORT_SYMBOL vmlinux 0x9c5be4ff fddi_change_mtu +EXPORT_SYMBOL vmlinux 0x9c760856 pcim_iomap_regions_request_all +EXPORT_SYMBOL vmlinux 0x9c8ecd26 abort_exclusive_wait +EXPORT_SYMBOL vmlinux 0x9c9fb40d generic_file_direct_write +EXPORT_SYMBOL vmlinux 0x9ca04d13 neigh_compat_output +EXPORT_SYMBOL vmlinux 0x9ca480a1 alloc_mdio_bitbang +EXPORT_SYMBOL vmlinux 0x9cab34a6 rfkill_set_led_trigger_name +EXPORT_SYMBOL vmlinux 0x9cbfcf15 skb_add_rx_frag +EXPORT_SYMBOL vmlinux 0x9ceb163c memcpy_toiovec +EXPORT_SYMBOL vmlinux 0x9cf75db8 cap_mmap_file +EXPORT_SYMBOL vmlinux 0x9cfd56c5 scsi_print_status +EXPORT_SYMBOL vmlinux 0x9d05f6c4 ktime_get_clocktai +EXPORT_SYMBOL vmlinux 0x9d0d6206 unregister_netdevice_notifier +EXPORT_SYMBOL vmlinux 0x9d2c5a3f mnt_set_expiry +EXPORT_SYMBOL vmlinux 0x9d33ef5e acpi_enable +EXPORT_SYMBOL vmlinux 0x9d3aa376 blk_iopoll_init +EXPORT_SYMBOL vmlinux 0x9d613223 register_gifconf +EXPORT_SYMBOL vmlinux 0x9d654103 devfreq_add_governor +EXPORT_SYMBOL vmlinux 0x9d791bf6 twl6040_reg_write +EXPORT_SYMBOL vmlinux 0x9d794203 gnet_stats_copy_basic +EXPORT_SYMBOL vmlinux 0x9d79473d twl6040_set_bits +EXPORT_SYMBOL vmlinux 0x9da089ad inet_frag_evictor +EXPORT_SYMBOL vmlinux 0x9de1c675 neigh_update +EXPORT_SYMBOL vmlinux 0x9e0c711d vzalloc_node +EXPORT_SYMBOL vmlinux 0x9e1cabf2 init_task +EXPORT_SYMBOL vmlinux 0x9e2000a7 memcpy_toiovecend +EXPORT_SYMBOL vmlinux 0x9e2b725a block_commit_write +EXPORT_SYMBOL vmlinux 0x9e363b6b acpi_disable_gpe +EXPORT_SYMBOL vmlinux 0x9e4b3747 sg_copy_from_buffer +EXPORT_SYMBOL vmlinux 0x9e4faeef dm_io_client_destroy +EXPORT_SYMBOL vmlinux 0x9e5da876 __devm_request_region +EXPORT_SYMBOL vmlinux 0x9e61bb05 set_freezable +EXPORT_SYMBOL vmlinux 0x9e64fbfe rtc_cmos_read +EXPORT_SYMBOL vmlinux 0x9e7741a9 padata_alloc +EXPORT_SYMBOL vmlinux 0x9e7cdd7d pci_bus_assign_resources +EXPORT_SYMBOL vmlinux 0x9e7d6bd0 __udelay +EXPORT_SYMBOL vmlinux 0x9e9f1714 __bitmap_andnot +EXPORT_SYMBOL vmlinux 0x9ea0ad49 __sg_free_table +EXPORT_SYMBOL vmlinux 0x9ea19291 agp_generic_alloc_page +EXPORT_SYMBOL vmlinux 0x9eb57fd2 xfrm_state_delete +EXPORT_SYMBOL vmlinux 0x9ebd4c04 adjust_resource +EXPORT_SYMBOL vmlinux 0x9ed685ee iov_iter_advance +EXPORT_SYMBOL vmlinux 0x9ef5f536 log_wait_commit +EXPORT_SYMBOL vmlinux 0x9efdfcf5 nf_log_bind_pf +EXPORT_SYMBOL vmlinux 0x9f01b188 empty_aops +EXPORT_SYMBOL vmlinux 0x9f2101ef sock_no_getname +EXPORT_SYMBOL vmlinux 0x9f267ea5 pci_bus_set_ops +EXPORT_SYMBOL vmlinux 0x9f2bdaac __bitmap_or +EXPORT_SYMBOL vmlinux 0x9f46ced8 __sw_hweight64 +EXPORT_SYMBOL vmlinux 0x9f491e5d ftrace_print_symbols_seq_u64 +EXPORT_SYMBOL vmlinux 0x9f51d58f mutex_lock_killable +EXPORT_SYMBOL vmlinux 0x9f529679 d_alloc_pseudo +EXPORT_SYMBOL vmlinux 0x9f533be8 remove_proc_subtree +EXPORT_SYMBOL vmlinux 0x9f889ef7 key_task_permission +EXPORT_SYMBOL vmlinux 0x9f984513 strrchr +EXPORT_SYMBOL vmlinux 0x9f98cee9 inet6_register_icmp_sender +EXPORT_SYMBOL vmlinux 0x9fab8785 xfrm6_input_addr +EXPORT_SYMBOL vmlinux 0x9fb3dd30 memcpy_fromiovec +EXPORT_SYMBOL vmlinux 0x9fb7a395 xfrm_lookup +EXPORT_SYMBOL vmlinux 0x9fba77d8 sock_get_timestamp +EXPORT_SYMBOL vmlinux 0x9fc8dcb3 skb_split +EXPORT_SYMBOL vmlinux 0x9fdecc31 unregister_netdevice_many +EXPORT_SYMBOL vmlinux 0x9ffa3a75 netdev_max_backlog +EXPORT_SYMBOL vmlinux 0xa00aca2a dql_completed +EXPORT_SYMBOL vmlinux 0xa0186a03 read_cache_page_async +EXPORT_SYMBOL vmlinux 0xa0339861 sock_create +EXPORT_SYMBOL vmlinux 0xa041bf98 pci_vpd_truncate +EXPORT_SYMBOL vmlinux 0xa044bf52 backlight_device_register +EXPORT_SYMBOL vmlinux 0xa046a90d max8925_set_bits +EXPORT_SYMBOL vmlinux 0xa04a01bd qdisc_class_hash_insert +EXPORT_SYMBOL vmlinux 0xa04fc7b7 scsi_free_host_dev +EXPORT_SYMBOL vmlinux 0xa05c03df mempool_kmalloc +EXPORT_SYMBOL vmlinux 0xa06df9e1 __kfifo_dma_out_finish_r +EXPORT_SYMBOL vmlinux 0xa076bfcc textsearch_register +EXPORT_SYMBOL vmlinux 0xa07ed110 xz_dec_init +EXPORT_SYMBOL vmlinux 0xa0809cb2 sync_blockdev +EXPORT_SYMBOL vmlinux 0xa083c4df cdrom_number_of_slots +EXPORT_SYMBOL vmlinux 0xa0b04675 vmalloc_32 +EXPORT_SYMBOL vmlinux 0xa0b703e0 sock_sendmsg +EXPORT_SYMBOL vmlinux 0xa0ceef51 out_of_line_wait_on_bit +EXPORT_SYMBOL vmlinux 0xa0eeee6e add_to_page_cache_locked +EXPORT_SYMBOL vmlinux 0xa0fbac79 wake_up_bit +EXPORT_SYMBOL vmlinux 0xa103dff3 dev_printk_emit +EXPORT_SYMBOL vmlinux 0xa108eb4d sysctl_optmem_max +EXPORT_SYMBOL vmlinux 0xa109d68a dquot_release +EXPORT_SYMBOL vmlinux 0xa10f988a phy_driver_register +EXPORT_SYMBOL vmlinux 0xa11f9f1e pci_back_from_sleep +EXPORT_SYMBOL vmlinux 0xa120d33c tty_unregister_ldisc +EXPORT_SYMBOL vmlinux 0xa121dd57 iput +EXPORT_SYMBOL vmlinux 0xa144426e seq_vprintf +EXPORT_SYMBOL vmlinux 0xa14f3d8c ewma_add +EXPORT_SYMBOL vmlinux 0xa16525fb dquot_get_dqblk +EXPORT_SYMBOL vmlinux 0xa1694816 input_inject_event +EXPORT_SYMBOL vmlinux 0xa1854d34 poll_freewait +EXPORT_SYMBOL vmlinux 0xa18d92f5 dma_set_mask +EXPORT_SYMBOL vmlinux 0xa1a59556 block_write_full_page +EXPORT_SYMBOL vmlinux 0xa1a63c02 iterate_fd +EXPORT_SYMBOL vmlinux 0xa1b71ce0 dquot_set_dqblk +EXPORT_SYMBOL vmlinux 0xa1b759ce fb_add_videomode +EXPORT_SYMBOL vmlinux 0xa1bc200f f_setown +EXPORT_SYMBOL vmlinux 0xa1be341d md_write_end +EXPORT_SYMBOL vmlinux 0xa1be4b6f phy_stop_interrupts +EXPORT_SYMBOL vmlinux 0xa1c76e0a _cond_resched +EXPORT_SYMBOL vmlinux 0xa1e2bbb9 xen_biovec_phys_mergeable +EXPORT_SYMBOL vmlinux 0xa201c86a jbd2_journal_get_create_access +EXPORT_SYMBOL vmlinux 0xa2090927 __sync_dirty_buffer +EXPORT_SYMBOL vmlinux 0xa20aab1a inetpeer_invalidate_tree +EXPORT_SYMBOL vmlinux 0xa20ce1b8 net_msg_warn +EXPORT_SYMBOL vmlinux 0xa21fcb0a framebuffer_alloc +EXPORT_SYMBOL vmlinux 0xa2359456 vfs_create +EXPORT_SYMBOL vmlinux 0xa248bc9a key_revoke +EXPORT_SYMBOL vmlinux 0xa250c838 param_get_charp +EXPORT_SYMBOL vmlinux 0xa271a05e sk_stop_timer +EXPORT_SYMBOL vmlinux 0xa27284db pnp_unregister_driver +EXPORT_SYMBOL vmlinux 0xa2797725 inet_stream_ops +EXPORT_SYMBOL vmlinux 0xa27db39f mount_single +EXPORT_SYMBOL vmlinux 0xa2848c50 ecryptfs_get_auth_tok_key +EXPORT_SYMBOL vmlinux 0xa2a5fd77 inet_ehash_secret +EXPORT_SYMBOL vmlinux 0xa2aabae1 sock_rfree +EXPORT_SYMBOL vmlinux 0xa2bd4d2a blk_rq_map_kern +EXPORT_SYMBOL vmlinux 0xa2d8bb7c writeback_in_progress +EXPORT_SYMBOL vmlinux 0xa2df1829 rawv6_mh_filter_register +EXPORT_SYMBOL vmlinux 0xa2ef34d7 rps_sock_flow_table +EXPORT_SYMBOL vmlinux 0xa2ffa003 arp_xmit +EXPORT_SYMBOL vmlinux 0xa308c0a3 bio_add_pc_page +EXPORT_SYMBOL vmlinux 0xa32df36b clear_nlink +EXPORT_SYMBOL vmlinux 0xa33d9a48 acpi_decode_pld_buffer +EXPORT_SYMBOL vmlinux 0xa34228a0 swiotlb_dma_supported +EXPORT_SYMBOL vmlinux 0xa34f1ef5 crc32_le +EXPORT_SYMBOL vmlinux 0xa3504378 rwsem_wake +EXPORT_SYMBOL vmlinux 0xa350a8f8 set_memory_array_uc +EXPORT_SYMBOL vmlinux 0xa35cdba3 input_mt_get_slot_by_key +EXPORT_SYMBOL vmlinux 0xa35de80f ipv4_config +EXPORT_SYMBOL vmlinux 0xa363dab4 udp_table +EXPORT_SYMBOL vmlinux 0xa39b120c input_unregister_handle +EXPORT_SYMBOL vmlinux 0xa3a4a606 read_dev_sector +EXPORT_SYMBOL vmlinux 0xa3b0f6bb phy_ethtool_gset +EXPORT_SYMBOL vmlinux 0xa3f5a9a1 sk_stream_wait_connect +EXPORT_SYMBOL vmlinux 0xa40bd68d block_page_mkwrite +EXPORT_SYMBOL vmlinux 0xa42c205a elevator_init +EXPORT_SYMBOL vmlinux 0xa43b1297 vscnprintf +EXPORT_SYMBOL vmlinux 0xa43b9539 memcpy_fromiovecend +EXPORT_SYMBOL vmlinux 0xa4701e9e timekeeping_inject_offset +EXPORT_SYMBOL vmlinux 0xa4840a8a i2c_smbus_read_block_data +EXPORT_SYMBOL vmlinux 0xa48b47f3 tcp_v4_do_rcv +EXPORT_SYMBOL vmlinux 0xa496713a inet_sk_rebuild_header +EXPORT_SYMBOL vmlinux 0xa49e9cbe fget +EXPORT_SYMBOL vmlinux 0xa4b94fea iowrite8_rep +EXPORT_SYMBOL vmlinux 0xa4d4f0e6 global_cache_flush +EXPORT_SYMBOL vmlinux 0xa4eb4eff _raw_spin_lock_bh +EXPORT_SYMBOL vmlinux 0xa50a111e inet_peer_xrlim_allow +EXPORT_SYMBOL vmlinux 0xa5163770 security_old_inode_init_security +EXPORT_SYMBOL vmlinux 0xa51cdfe8 __FIXADDR_TOP +EXPORT_SYMBOL vmlinux 0xa53ee99b dev_get_by_name +EXPORT_SYMBOL vmlinux 0xa5526619 rb_insert_color +EXPORT_SYMBOL vmlinux 0xa5589da7 tcp_md5_do_add +EXPORT_SYMBOL vmlinux 0xa56bde51 write_cache_pages +EXPORT_SYMBOL vmlinux 0xa577a850 param_get_short +EXPORT_SYMBOL vmlinux 0xa593138c xfrm_policy_alloc +EXPORT_SYMBOL vmlinux 0xa598e29c vesa_modes +EXPORT_SYMBOL vmlinux 0xa5d6566b pci_bus_add_devices +EXPORT_SYMBOL vmlinux 0xa5da0abd acpi_enter_sleep_state_s4bios +EXPORT_SYMBOL vmlinux 0xa5dbeae4 sock_no_getsockopt +EXPORT_SYMBOL vmlinux 0xa5dd45f3 prandom_bytes_state +EXPORT_SYMBOL vmlinux 0xa5ff747f dquot_alloc_inode +EXPORT_SYMBOL vmlinux 0xa601df22 sb_set_blocksize +EXPORT_SYMBOL vmlinux 0xa61a1e3e psched_ratecfg_precompute +EXPORT_SYMBOL vmlinux 0xa61fa321 xfrm_register_km +EXPORT_SYMBOL vmlinux 0xa62764d8 serio_close +EXPORT_SYMBOL vmlinux 0xa62e6e4f acpi_get_table_with_size +EXPORT_SYMBOL vmlinux 0xa63928d2 dev_open +EXPORT_SYMBOL vmlinux 0xa63d85ab slhc_remember +EXPORT_SYMBOL vmlinux 0xa63da86e generic_error_remove_page +EXPORT_SYMBOL vmlinux 0xa6468800 vlan_uses_dev +EXPORT_SYMBOL vmlinux 0xa6529952 filemap_fdatawait_range +EXPORT_SYMBOL vmlinux 0xa6715115 do_settimeofday +EXPORT_SYMBOL vmlinux 0xa675804c utf8s_to_utf16s +EXPORT_SYMBOL vmlinux 0xa67adbde netdev_notice +EXPORT_SYMBOL vmlinux 0xa67da660 mempool_alloc +EXPORT_SYMBOL vmlinux 0xa67e2845 dq_data_lock +EXPORT_SYMBOL vmlinux 0xa681fe88 generate_random_uuid +EXPORT_SYMBOL vmlinux 0xa6970398 __kfifo_to_user_r +EXPORT_SYMBOL vmlinux 0xa6b13658 __percpu_counter_sum +EXPORT_SYMBOL vmlinux 0xa6da5ae0 __blk_run_queue +EXPORT_SYMBOL vmlinux 0xa6ef57b5 blk_queue_io_opt +EXPORT_SYMBOL vmlinux 0xa6fb97cb __kfree_skb +EXPORT_SYMBOL vmlinux 0xa70fabbe release_evntsel_nmi +EXPORT_SYMBOL vmlinux 0xa71e7463 __first_cpu +EXPORT_SYMBOL vmlinux 0xa7212934 bitmap_startwrite +EXPORT_SYMBOL vmlinux 0xa7245ad8 __module_put_and_exit +EXPORT_SYMBOL vmlinux 0xa735db59 prandom_u32 +EXPORT_SYMBOL vmlinux 0xa75ba99c crypto_sha512_update +EXPORT_SYMBOL vmlinux 0xa762b4b5 d_drop +EXPORT_SYMBOL vmlinux 0xa7a7ca8c sock_get_timestampns +EXPORT_SYMBOL vmlinux 0xa7b58013 ip6_frag_match +EXPORT_SYMBOL vmlinux 0xa7c3e462 qdisc_watchdog_schedule_ns +EXPORT_SYMBOL vmlinux 0xa7c8705b pagecache_write_end +EXPORT_SYMBOL vmlinux 0xa7cf6c2f atomic64_dec_return_cx8 +EXPORT_SYMBOL vmlinux 0xa7ea3eb0 tty_name +EXPORT_SYMBOL vmlinux 0xa7f205c7 genphy_config_aneg +EXPORT_SYMBOL vmlinux 0xa80171b6 send_sig +EXPORT_SYMBOL vmlinux 0xa808b439 scsi_get_command +EXPORT_SYMBOL vmlinux 0xa81d595b security_path_rmdir +EXPORT_SYMBOL vmlinux 0xa8232c78 strtobool +EXPORT_SYMBOL vmlinux 0xa82b4642 tty_driver_kref_put +EXPORT_SYMBOL vmlinux 0xa843805a get_unused_fd_flags +EXPORT_SYMBOL vmlinux 0xa85d6421 efi +EXPORT_SYMBOL vmlinux 0xa8721b97 system_state +EXPORT_SYMBOL vmlinux 0xa8821b1c inode_get_bytes +EXPORT_SYMBOL vmlinux 0xa8a6f639 __check_region +EXPORT_SYMBOL vmlinux 0xa8bcbc3e fb_blank +EXPORT_SYMBOL vmlinux 0xa8d0bafd acpi_processor_notify_smm +EXPORT_SYMBOL vmlinux 0xa8d68abd acpi_warning +EXPORT_SYMBOL vmlinux 0xa8fa7568 update_time +EXPORT_SYMBOL vmlinux 0xa8fef7bb security_unix_may_send +EXPORT_SYMBOL vmlinux 0xa905f0d3 blkdev_fsync +EXPORT_SYMBOL vmlinux 0xa9113a9e blk_start_queue +EXPORT_SYMBOL vmlinux 0xa91b5561 acpi_video_backlight_support +EXPORT_SYMBOL vmlinux 0xa92a42a9 dst_discard +EXPORT_SYMBOL vmlinux 0xa93ce01a dev_queue_xmit +EXPORT_SYMBOL vmlinux 0xa9729ad7 cfb_fillrect +EXPORT_SYMBOL vmlinux 0xa98c83d7 bio_integrity_enabled +EXPORT_SYMBOL vmlinux 0xa9a431de ip6_route_me_harder +EXPORT_SYMBOL vmlinux 0xa9a8e17f arch_phys_wc_add +EXPORT_SYMBOL vmlinux 0xa9a91806 dma_async_memcpy_pg_to_pg +EXPORT_SYMBOL vmlinux 0xa9adcae7 agp_copy_info +EXPORT_SYMBOL vmlinux 0xa9dde07d pci_lost_interrupt +EXPORT_SYMBOL vmlinux 0xa9f42387 uart_get_baud_rate +EXPORT_SYMBOL vmlinux 0xaa17dac8 mmc_calc_max_discard +EXPORT_SYMBOL vmlinux 0xaa326bd4 pci_wake_from_d3 +EXPORT_SYMBOL vmlinux 0xaa4cb300 __pskb_copy +EXPORT_SYMBOL vmlinux 0xaa5e2a0d vm_event_states +EXPORT_SYMBOL vmlinux 0xaa6901ac __kfifo_out_r +EXPORT_SYMBOL vmlinux 0xaa6f23ad rfkill_get_led_trigger_name +EXPORT_SYMBOL vmlinux 0xaa7aa246 redraw_screen +EXPORT_SYMBOL vmlinux 0xaa811622 request_firmware +EXPORT_SYMBOL vmlinux 0xaa8fea18 acpi_processor_register_performance +EXPORT_SYMBOL vmlinux 0xaa9a9bce tcp_setsockopt +EXPORT_SYMBOL vmlinux 0xaab8dd36 phy_mac_interrupt +EXPORT_SYMBOL vmlinux 0xaad6d92f rfkill_init_sw_state +EXPORT_SYMBOL vmlinux 0xaae8ab0e acpi_bus_power_manageable +EXPORT_SYMBOL vmlinux 0xaafafc59 dump_write +EXPORT_SYMBOL vmlinux 0xaafdc258 strcasecmp +EXPORT_SYMBOL vmlinux 0xab06f658 jbd2_journal_abort +EXPORT_SYMBOL vmlinux 0xab1377e6 generic_file_open +EXPORT_SYMBOL vmlinux 0xab1d6cc1 param_get_long +EXPORT_SYMBOL vmlinux 0xab28271c i8253_lock +EXPORT_SYMBOL vmlinux 0xab3ef9e4 netdev_emerg +EXPORT_SYMBOL vmlinux 0xab600421 probe_irq_off +EXPORT_SYMBOL vmlinux 0xab65ed80 set_memory_uc +EXPORT_SYMBOL vmlinux 0xab694444 bsearch +EXPORT_SYMBOL vmlinux 0xab6bde28 sysctl_max_syn_backlog +EXPORT_SYMBOL vmlinux 0xab770678 rdmsr_safe_regs_on_cpu +EXPORT_SYMBOL vmlinux 0xab781570 fb_get_options +EXPORT_SYMBOL vmlinux 0xab78d740 napi_gro_flush +EXPORT_SYMBOL vmlinux 0xab8a09f7 cdrom_media_changed +EXPORT_SYMBOL vmlinux 0xabb00c0f sock_no_bind +EXPORT_SYMBOL vmlinux 0xabc03ce5 blk_queue_max_write_same_sectors +EXPORT_SYMBOL vmlinux 0xabc6dd63 cpufreq_sysfs_create_file +EXPORT_SYMBOL vmlinux 0xabcaa577 free_anon_bdev +EXPORT_SYMBOL vmlinux 0xabd0c91c rtc_time_to_tm +EXPORT_SYMBOL vmlinux 0xac0ba8c1 blk_iopoll_disable +EXPORT_SYMBOL vmlinux 0xac1a55be unregister_reboot_notifier +EXPORT_SYMBOL vmlinux 0xac1c8563 user_path_at +EXPORT_SYMBOL vmlinux 0xac2d2fb8 gen_pool_virt_to_phys +EXPORT_SYMBOL vmlinux 0xac314bfe vfs_unlink +EXPORT_SYMBOL vmlinux 0xac58ea5e acpi_unload_table_id +EXPORT_SYMBOL vmlinux 0xac67e5ee blk_queue_io_min +EXPORT_SYMBOL vmlinux 0xac6e6cd3 devm_ioport_unmap +EXPORT_SYMBOL vmlinux 0xacab29b7 seq_hlist_start_percpu +EXPORT_SYMBOL vmlinux 0xaccabc6a in4_pton +EXPORT_SYMBOL vmlinux 0xacd6013d tcf_em_tree_destroy +EXPORT_SYMBOL vmlinux 0xacd8954b set_pages_uc +EXPORT_SYMBOL vmlinux 0xace202be twl6040_clear_bits +EXPORT_SYMBOL vmlinux 0xace2150f pci_scan_bridge +EXPORT_SYMBOL vmlinux 0xacf4d843 match_strdup +EXPORT_SYMBOL vmlinux 0xacffb1d7 generic_file_fsync +EXPORT_SYMBOL vmlinux 0xad04137a force_sig +EXPORT_SYMBOL vmlinux 0xad0413d4 match_hex +EXPORT_SYMBOL vmlinux 0xad13c689 acpi_os_execute +EXPORT_SYMBOL vmlinux 0xad2a8bd2 x86_bios_cpu_apicid +EXPORT_SYMBOL vmlinux 0xad3587c3 spi_attach_transport +EXPORT_SYMBOL vmlinux 0xad3fe3fd nobh_writepage +EXPORT_SYMBOL vmlinux 0xad48b913 mb_cache_shrink +EXPORT_SYMBOL vmlinux 0xad49e93a ata_port_printk +EXPORT_SYMBOL vmlinux 0xad59f51f elv_rb_del +EXPORT_SYMBOL vmlinux 0xad5da74f __cleancache_invalidate_inode +EXPORT_SYMBOL vmlinux 0xad6ce0cb security_inode_permission +EXPORT_SYMBOL vmlinux 0xad70b8bc inet6_protos +EXPORT_SYMBOL vmlinux 0xad7f1df3 ab3100_event_unregister +EXPORT_SYMBOL vmlinux 0xad84bef8 dm_table_event +EXPORT_SYMBOL vmlinux 0xad9dd027 km_policy_notify +EXPORT_SYMBOL vmlinux 0xad9e26ae __skb_dst_set_noref +EXPORT_SYMBOL vmlinux 0xadb5559d param_ops_byte +EXPORT_SYMBOL vmlinux 0xadc48f37 pcim_pin_device +EXPORT_SYMBOL vmlinux 0xadd367c2 tag_pages_for_writeback +EXPORT_SYMBOL vmlinux 0xadddcad1 tty_kref_put +EXPORT_SYMBOL vmlinux 0xade1234d finish_no_open +EXPORT_SYMBOL vmlinux 0xade2299b generic_cont_expand_simple +EXPORT_SYMBOL vmlinux 0xade65143 security_path_chmod +EXPORT_SYMBOL vmlinux 0xadedcec5 blk_integrity_register +EXPORT_SYMBOL vmlinux 0xadf27d3a block_read_full_page +EXPORT_SYMBOL vmlinux 0xae0f0316 bioset_integrity_free +EXPORT_SYMBOL vmlinux 0xae3b5c67 rt6_lookup +EXPORT_SYMBOL vmlinux 0xae4d6ab3 netpoll_send_skb_on_dev +EXPORT_SYMBOL vmlinux 0xae611dae eisa_driver_unregister +EXPORT_SYMBOL vmlinux 0xae729e59 security_req_classify_flow +EXPORT_SYMBOL vmlinux 0xae783c53 sock_recvmsg +EXPORT_SYMBOL vmlinux 0xaea1cd2a pci_add_new_bus +EXPORT_SYMBOL vmlinux 0xaea976a8 acpi_check_resource_conflict +EXPORT_SYMBOL vmlinux 0xaec655c7 alloc_pages_exact +EXPORT_SYMBOL vmlinux 0xaef462db fs_bio_set +EXPORT_SYMBOL vmlinux 0xaef6ebf6 generic_file_llseek_size +EXPORT_SYMBOL vmlinux 0xaf1a341e __napi_complete +EXPORT_SYMBOL vmlinux 0xaf3dd7dc scsi_logging_level +EXPORT_SYMBOL vmlinux 0xaf4b1540 acpi_get_irq_routing_table +EXPORT_SYMBOL vmlinux 0xaf611eac amd_nb_misc_ids +EXPORT_SYMBOL vmlinux 0xaf6366ef scsi_cmd_print_sense_hdr +EXPORT_SYMBOL vmlinux 0xaf665285 gnet_stats_copy_rate_est +EXPORT_SYMBOL vmlinux 0xaf773eb2 mnt_pin +EXPORT_SYMBOL vmlinux 0xaf91d89f __kernel_param_lock +EXPORT_SYMBOL vmlinux 0xaf99a184 generic_getxattr +EXPORT_SYMBOL vmlinux 0xaf9d9ecc __register_nmi_handler +EXPORT_SYMBOL vmlinux 0xafa8e52b blk_cleanup_queue +EXPORT_SYMBOL vmlinux 0xafc0ae12 pci_bus_put +EXPORT_SYMBOL vmlinux 0xafcd9ebb security_path_symlink +EXPORT_SYMBOL vmlinux 0xaff0c214 sched_autogroup_detach +EXPORT_SYMBOL vmlinux 0xaffe73ce xfrm_init_replay +EXPORT_SYMBOL vmlinux 0xb0149f7d pci_iounmap +EXPORT_SYMBOL vmlinux 0xb01b1db8 intel_gtt_insert_sg_entries +EXPORT_SYMBOL vmlinux 0xb0207ecf ___ratelimit +EXPORT_SYMBOL vmlinux 0xb02654e8 mmc_detect_change +EXPORT_SYMBOL vmlinux 0xb0286c8b rc5t583_ext_power_req_config +EXPORT_SYMBOL vmlinux 0xb054d439 consume_skb +EXPORT_SYMBOL vmlinux 0xb05fc310 sysctl_rmem_max +EXPORT_SYMBOL vmlinux 0xb0638115 __pskb_pull_tail +EXPORT_SYMBOL vmlinux 0xb077c6f8 sock_common_recvmsg +EXPORT_SYMBOL vmlinux 0xb077ef32 acpi_enter_sleep_state +EXPORT_SYMBOL vmlinux 0xb07d30b1 __nla_put +EXPORT_SYMBOL vmlinux 0xb08b2e81 inode_set_bytes +EXPORT_SYMBOL vmlinux 0xb08b46d6 genlmsg_multicast_allns +EXPORT_SYMBOL vmlinux 0xb09bc09b scsi_report_bus_reset +EXPORT_SYMBOL vmlinux 0xb09e33f9 sync_inode_metadata +EXPORT_SYMBOL vmlinux 0xb0a0da0c rational_best_approximation +EXPORT_SYMBOL vmlinux 0xb0aa9f97 dev_change_flags +EXPORT_SYMBOL vmlinux 0xb0b20152 splice_from_pipe_next +EXPORT_SYMBOL vmlinux 0xb0b847ac __bitmap_full +EXPORT_SYMBOL vmlinux 0xb0d15b46 pci_bus_read_config_word +EXPORT_SYMBOL vmlinux 0xb0e10781 get_option +EXPORT_SYMBOL vmlinux 0xb0ffda2f blk_limits_max_hw_sectors +EXPORT_SYMBOL vmlinux 0xb11b13ff xfrm_prepare_input +EXPORT_SYMBOL vmlinux 0xb121390a probe_irq_on +EXPORT_SYMBOL vmlinux 0xb12cbacb fb_unregister_client +EXPORT_SYMBOL vmlinux 0xb12fc103 migrate_page +EXPORT_SYMBOL vmlinux 0xb14b200f scsi_block_requests +EXPORT_SYMBOL vmlinux 0xb14d5c4c seq_puts +EXPORT_SYMBOL vmlinux 0xb1589753 inode_needs_sync +EXPORT_SYMBOL vmlinux 0xb1645a2e sg_free_table +EXPORT_SYMBOL vmlinux 0xb16c81f2 skb_put +EXPORT_SYMBOL vmlinux 0xb16f7f0d blk_run_queue_async +EXPORT_SYMBOL vmlinux 0xb1914fb7 free_inode_nonrcu +EXPORT_SYMBOL vmlinux 0xb19760c3 bitmap_onto +EXPORT_SYMBOL vmlinux 0xb1a4ff29 __frontswap_load +EXPORT_SYMBOL vmlinux 0xb1ada3e8 xfrm_state_alloc +EXPORT_SYMBOL vmlinux 0xb1b83db0 tcf_register_action +EXPORT_SYMBOL vmlinux 0xb1be903a tcp_proc_register +EXPORT_SYMBOL vmlinux 0xb1c3a01a oops_in_progress +EXPORT_SYMBOL vmlinux 0xb1ce7b50 pci_pme_capable +EXPORT_SYMBOL vmlinux 0xb1cf44df fb_find_best_mode +EXPORT_SYMBOL vmlinux 0xb1cfad22 rdmsr_on_cpu +EXPORT_SYMBOL vmlinux 0xb1d9523e wait_for_completion_timeout +EXPORT_SYMBOL vmlinux 0xb1fb0ce1 jbd2_journal_get_undo_access +EXPORT_SYMBOL vmlinux 0xb219d56c wbinvd_on_cpu +EXPORT_SYMBOL vmlinux 0xb22442ed dev_disable_lro +EXPORT_SYMBOL vmlinux 0xb23bf325 dm_register_target +EXPORT_SYMBOL vmlinux 0xb23c2fa2 generic_file_splice_read +EXPORT_SYMBOL vmlinux 0xb23ea8b3 unregister_qdisc +EXPORT_SYMBOL vmlinux 0xb24b73b8 pci_pme_active +EXPORT_SYMBOL vmlinux 0xb2682405 utf8_to_utf32 +EXPORT_SYMBOL vmlinux 0xb2744b36 down_write_trylock +EXPORT_SYMBOL vmlinux 0xb27e472e blk_alloc_queue_node +EXPORT_SYMBOL vmlinux 0xb287ec10 mmc_set_blockcount +EXPORT_SYMBOL vmlinux 0xb291af70 inet_sk_rx_dst_set +EXPORT_SYMBOL vmlinux 0xb296df28 bitmap_end_sync +EXPORT_SYMBOL vmlinux 0xb29f9da1 dev_set_allmulti +EXPORT_SYMBOL vmlinux 0xb2b4b9f9 devm_clk_get +EXPORT_SYMBOL vmlinux 0xb2b94674 __crc32c_le +EXPORT_SYMBOL vmlinux 0xb2be6e92 netdev_stats_to_stats64 +EXPORT_SYMBOL vmlinux 0xb2c40745 file_update_time +EXPORT_SYMBOL vmlinux 0xb2d307de param_ops_short +EXPORT_SYMBOL vmlinux 0xb2d48a2e queue_work_on +EXPORT_SYMBOL vmlinux 0xb2dd3f79 __cleancache_put_page +EXPORT_SYMBOL vmlinux 0xb2f1e414 __ip_dev_find +EXPORT_SYMBOL vmlinux 0xb2f74fb6 intel_gmch_remove +EXPORT_SYMBOL vmlinux 0xb2fd5ceb __put_user_4 +EXPORT_SYMBOL vmlinux 0xb2ff8566 inet_csk_prepare_forced_close +EXPORT_SYMBOL vmlinux 0xb3284531 acpi_dbg_layer +EXPORT_SYMBOL vmlinux 0xb329fc1d tty_unlock_pair +EXPORT_SYMBOL vmlinux 0xb32ca0c1 dev_uc_add +EXPORT_SYMBOL vmlinux 0xb340a505 ipv6_chk_prefix +EXPORT_SYMBOL vmlinux 0xb34d4c2e acpi_terminate +EXPORT_SYMBOL vmlinux 0xb352177e find_first_bit +EXPORT_SYMBOL vmlinux 0xb3730db2 pci_stop_and_remove_bus_device +EXPORT_SYMBOL vmlinux 0xb381df99 unregister_md_personality +EXPORT_SYMBOL vmlinux 0xb384f331 register_cdrom +EXPORT_SYMBOL vmlinux 0xb38dc28f d_make_root +EXPORT_SYMBOL vmlinux 0xb3e0590d acpi_set_current_resources +EXPORT_SYMBOL vmlinux 0xb3f4cd73 netpoll_cleanup +EXPORT_SYMBOL vmlinux 0xb3f7646e kthread_should_stop +EXPORT_SYMBOL vmlinux 0xb423c8c6 ndo_dflt_fdb_add +EXPORT_SYMBOL vmlinux 0xb423dba1 console_blanked +EXPORT_SYMBOL vmlinux 0xb426a4e2 vm_map_ram +EXPORT_SYMBOL vmlinux 0xb42efa42 neigh_lookup_nodev +EXPORT_SYMBOL vmlinux 0xb4390f9a mcount +EXPORT_SYMBOL vmlinux 0xb43ffb42 blk_end_request +EXPORT_SYMBOL vmlinux 0xb4464b89 pv_cpu_ops +EXPORT_SYMBOL vmlinux 0xb44fc0c0 uart_unregister_driver +EXPORT_SYMBOL vmlinux 0xb45578b8 memscan +EXPORT_SYMBOL vmlinux 0xb461265a scsi_print_sense +EXPORT_SYMBOL vmlinux 0xb467865c dcache_dir_open +EXPORT_SYMBOL vmlinux 0xb4709322 scsi_dev_info_add_list +EXPORT_SYMBOL vmlinux 0xb4f5ebaf call_netdevice_notifiers +EXPORT_SYMBOL vmlinux 0xb502decd vfs_mknod +EXPORT_SYMBOL vmlinux 0xb5036407 fb_set_suspend +EXPORT_SYMBOL vmlinux 0xb52ee8be intel_gtt_clear_range +EXPORT_SYMBOL vmlinux 0xb54088a3 posix_acl_alloc +EXPORT_SYMBOL vmlinux 0xb54533f7 usecs_to_jiffies +EXPORT_SYMBOL vmlinux 0xb54935de ht_create_irq +EXPORT_SYMBOL vmlinux 0xb554ee98 acpi_bus_get_status +EXPORT_SYMBOL vmlinux 0xb57343c2 frontswap_shrink +EXPORT_SYMBOL vmlinux 0xb59e04b6 devm_ioremap +EXPORT_SYMBOL vmlinux 0xb5a459dc unregister_blkdev +EXPORT_SYMBOL vmlinux 0xb5aa7165 dma_pool_destroy +EXPORT_SYMBOL vmlinux 0xb5ca1c46 slhc_free +EXPORT_SYMBOL vmlinux 0xb5cf5e1e ps2_sendbyte +EXPORT_SYMBOL vmlinux 0xb5ed6698 da903x_query_status +EXPORT_SYMBOL vmlinux 0xb60bb373 inet_sendmsg +EXPORT_SYMBOL vmlinux 0xb6117c33 set_anon_super +EXPORT_SYMBOL vmlinux 0xb6149c79 mmc_resume_host +EXPORT_SYMBOL vmlinux 0xb6244511 sg_init_one +EXPORT_SYMBOL vmlinux 0xb64937ea drop_nlink +EXPORT_SYMBOL vmlinux 0xb654de73 mmc_start_bkops +EXPORT_SYMBOL vmlinux 0xb65d49ab iterate_dir +EXPORT_SYMBOL vmlinux 0xb678366f int_sqrt +EXPORT_SYMBOL vmlinux 0xb6822a33 radix_tree_gang_lookup_tag +EXPORT_SYMBOL vmlinux 0xb6896671 crc_t10dif +EXPORT_SYMBOL vmlinux 0xb68db35b put_tty_driver +EXPORT_SYMBOL vmlinux 0xb69031f9 __sock_create +EXPORT_SYMBOL vmlinux 0xb690e43f dcb_ieee_getapp_mask +EXPORT_SYMBOL vmlinux 0xb6936ffe _bcd2bin +EXPORT_SYMBOL vmlinux 0xb6a68816 find_last_bit +EXPORT_SYMBOL vmlinux 0xb6c0eb83 xfrm_find_acq +EXPORT_SYMBOL vmlinux 0xb6c5a973 scsi_show_result +EXPORT_SYMBOL vmlinux 0xb6d47fd8 devfreq_add_device +EXPORT_SYMBOL vmlinux 0xb6ddf1e8 secpath_dup +EXPORT_SYMBOL vmlinux 0xb6ed1e53 strncpy +EXPORT_SYMBOL vmlinux 0xb6fd0cad mmc_cache_ctrl +EXPORT_SYMBOL vmlinux 0xb72518dd pci_get_subsys +EXPORT_SYMBOL vmlinux 0xb726e96b gnet_stats_finish_copy +EXPORT_SYMBOL vmlinux 0xb758b225 acpi_disable_event +EXPORT_SYMBOL vmlinux 0xb77add1a vfs_statfs +EXPORT_SYMBOL vmlinux 0xb7a1d705 uart_resume_port +EXPORT_SYMBOL vmlinux 0xb7a8cccb pci_choose_state +EXPORT_SYMBOL vmlinux 0xb7b61546 crc32_be +EXPORT_SYMBOL vmlinux 0xb7c52152 tty_unlock +EXPORT_SYMBOL vmlinux 0xb7ce2b45 agp_generic_type_to_mask_type +EXPORT_SYMBOL vmlinux 0xb7e91cea i2c_smbus_read_word_data +EXPORT_SYMBOL vmlinux 0xb7f55ecc atomic64_add_return_cx8 +EXPORT_SYMBOL vmlinux 0xb8039631 block_is_partially_uptodate +EXPORT_SYMBOL vmlinux 0xb81960ca snprintf +EXPORT_SYMBOL vmlinux 0xb835b3e4 radix_tree_prev_hole +EXPORT_SYMBOL vmlinux 0xb83bed07 key_type_keyring +EXPORT_SYMBOL vmlinux 0xb83e4861 xfrm6_rcv_spi +EXPORT_SYMBOL vmlinux 0xb86db058 devfreq_monitor_resume +EXPORT_SYMBOL vmlinux 0xb874b87a __clzsi2 +EXPORT_SYMBOL vmlinux 0xb8802210 swiotlb_sync_single_for_cpu +EXPORT_SYMBOL vmlinux 0xb8af5615 invalidate_inode_buffers +EXPORT_SYMBOL vmlinux 0xb8b828fa agp_generic_insert_memory +EXPORT_SYMBOL vmlinux 0xb8cfee7f ethtool_op_get_link +EXPORT_SYMBOL vmlinux 0xb8e7ce2c __put_user_8 +EXPORT_SYMBOL vmlinux 0xb8e877e7 kstrtouint_from_user +EXPORT_SYMBOL vmlinux 0xb907513f unpoison_memory +EXPORT_SYMBOL vmlinux 0xb911e33e inet_del_offload +EXPORT_SYMBOL vmlinux 0xb93fc813 scsi_cmd_blk_ioctl +EXPORT_SYMBOL vmlinux 0xb949c246 bitmap_cond_end_sync +EXPORT_SYMBOL vmlinux 0xb954402e call_usermodehelper_exec +EXPORT_SYMBOL vmlinux 0xb95e77ed tc_classify +EXPORT_SYMBOL vmlinux 0xb9631a38 scsi_calculate_bounce_limit +EXPORT_SYMBOL vmlinux 0xb9642e7b dma_release_from_coherent +EXPORT_SYMBOL vmlinux 0xb96c0af5 filemap_write_and_wait +EXPORT_SYMBOL vmlinux 0xb97056d5 proc_create_data +EXPORT_SYMBOL vmlinux 0xb988d7d7 mutex_lock +EXPORT_SYMBOL vmlinux 0xb98a0185 rtc_tm_to_time +EXPORT_SYMBOL vmlinux 0xb991bd14 tcp_proc_unregister +EXPORT_SYMBOL vmlinux 0xb99d69fe frontswap_register_ops +EXPORT_SYMBOL vmlinux 0xb9a7fc6a mdiobus_write +EXPORT_SYMBOL vmlinux 0xb9b89c90 jbd2_journal_clear_err +EXPORT_SYMBOL vmlinux 0xb9bd022b bio_copy_user +EXPORT_SYMBOL vmlinux 0xb9c94c73 fsnotify_destroy_mark +EXPORT_SYMBOL vmlinux 0xb9d9597d mb_cache_entry_release +EXPORT_SYMBOL vmlinux 0xb9fd2205 add_efi_memmap +EXPORT_SYMBOL vmlinux 0xb9fd5802 skb_recv_datagram +EXPORT_SYMBOL vmlinux 0xba0d2dc3 arch_debugfs_dir +EXPORT_SYMBOL vmlinux 0xba1a2336 tty_port_close +EXPORT_SYMBOL vmlinux 0xba2d8594 ec_read +EXPORT_SYMBOL vmlinux 0xba35cebb wait_for_key_construction +EXPORT_SYMBOL vmlinux 0xba464f0b alloc_pci_dev +EXPORT_SYMBOL vmlinux 0xba497f13 loops_per_jiffy +EXPORT_SYMBOL vmlinux 0xba4a76c8 simple_transaction_release +EXPORT_SYMBOL vmlinux 0xba6b6208 ppp_register_net_channel +EXPORT_SYMBOL vmlinux 0xba6f0f13 mmc_read_bkops_status +EXPORT_SYMBOL vmlinux 0xba8d3899 blk_queue_make_request +EXPORT_SYMBOL vmlinux 0xba8ea6ad rwsem_downgrade_wake +EXPORT_SYMBOL vmlinux 0xba966047 kmem_cache_alloc_trace +EXPORT_SYMBOL vmlinux 0xbab335de invalidate_partition +EXPORT_SYMBOL vmlinux 0xbabf8469 sock_register +EXPORT_SYMBOL vmlinux 0xbae1d950 journal_check_available_features +EXPORT_SYMBOL vmlinux 0xbaeffa05 qid_eq +EXPORT_SYMBOL vmlinux 0xbb05a5d4 cdev_del +EXPORT_SYMBOL vmlinux 0xbb189cad disallow_signal +EXPORT_SYMBOL vmlinux 0xbb22ce2a skb_queue_head +EXPORT_SYMBOL vmlinux 0xbb4c26af generic_fillattr +EXPORT_SYMBOL vmlinux 0xbb4efb91 phy_init_eee +EXPORT_SYMBOL vmlinux 0xbb5d343d xfrm_get_acqseq +EXPORT_SYMBOL vmlinux 0xbb713e6d sk_filter_release_rcu +EXPORT_SYMBOL vmlinux 0xbb96aa55 dma_find_channel +EXPORT_SYMBOL vmlinux 0xbb99125c get_default_font +EXPORT_SYMBOL vmlinux 0xbb9aaac7 uart_update_timeout +EXPORT_SYMBOL vmlinux 0xbbba93be __splice_from_pipe +EXPORT_SYMBOL vmlinux 0xbc1afedf up_write +EXPORT_SYMBOL vmlinux 0xbc2031de acpi_processor_get_bios_limit +EXPORT_SYMBOL vmlinux 0xbc247601 generic_pipe_buf_steal +EXPORT_SYMBOL vmlinux 0xbc2d880b have_submounts +EXPORT_SYMBOL vmlinux 0xbc4bb07c generic_writepages +EXPORT_SYMBOL vmlinux 0xbc864e01 tcp_create_openreq_child +EXPORT_SYMBOL vmlinux 0xbc8cef06 sync_mapping_buffers +EXPORT_SYMBOL vmlinux 0xbc8dd978 km_policy_expired +EXPORT_SYMBOL vmlinux 0xbcbec6bc generic_setxattr +EXPORT_SYMBOL vmlinux 0xbcc308bb strnlen_user +EXPORT_SYMBOL vmlinux 0xbcd20041 dev_printk +EXPORT_SYMBOL vmlinux 0xbcdfcb4a ip_check_defrag +EXPORT_SYMBOL vmlinux 0xbcdff85c inet_add_protocol +EXPORT_SYMBOL vmlinux 0xbce7c2c3 dev_mc_add_excl +EXPORT_SYMBOL vmlinux 0xbceb5068 d_find_alias +EXPORT_SYMBOL vmlinux 0xbcedf5c6 dev_load +EXPORT_SYMBOL vmlinux 0xbcf21a07 seq_read +EXPORT_SYMBOL vmlinux 0xbcf65f71 scsi_dma_unmap +EXPORT_SYMBOL vmlinux 0xbd0f9050 genl_unregister_mc_group +EXPORT_SYMBOL vmlinux 0xbd136f37 __vlan_find_dev_deep +EXPORT_SYMBOL vmlinux 0xbd165518 twl6040_get_sysclk +EXPORT_SYMBOL vmlinux 0xbd16d327 sg_miter_stop +EXPORT_SYMBOL vmlinux 0xbd3ad749 __dquot_alloc_space +EXPORT_SYMBOL vmlinux 0xbd3b69d2 bio_split +EXPORT_SYMBOL vmlinux 0xbd45ef15 blk_get_backing_dev_info +EXPORT_SYMBOL vmlinux 0xbd5b008c vfs_getattr +EXPORT_SYMBOL vmlinux 0xbd6693f5 pagevec_lookup +EXPORT_SYMBOL vmlinux 0xbd769a4e blk_make_request +EXPORT_SYMBOL vmlinux 0xbd795866 devm_free_irq +EXPORT_SYMBOL vmlinux 0xbd9a454f tcp_release_cb +EXPORT_SYMBOL vmlinux 0xbdba9828 hdmi_audio_infoframe_pack +EXPORT_SYMBOL vmlinux 0xbdbde209 sock_common_getsockopt +EXPORT_SYMBOL vmlinux 0xbded91be agp_generic_alloc_pages +EXPORT_SYMBOL vmlinux 0xbe0c16ae __skb_tx_hash +EXPORT_SYMBOL vmlinux 0xbe0e5118 nla_memcmp +EXPORT_SYMBOL vmlinux 0xbe0f4f34 security_mmap_file +EXPORT_SYMBOL vmlinux 0xbe144916 pci_bus_get +EXPORT_SYMBOL vmlinux 0xbe21104d pci_bus_write_config_byte +EXPORT_SYMBOL vmlinux 0xbe254e92 param_set_ushort +EXPORT_SYMBOL vmlinux 0xbe254f2c md_flush_request +EXPORT_SYMBOL vmlinux 0xbe2c0274 add_timer +EXPORT_SYMBOL vmlinux 0xbe3765c6 ata_std_end_eh +EXPORT_SYMBOL vmlinux 0xbe525ef9 is_bad_inode +EXPORT_SYMBOL vmlinux 0xbe5ed91f mark_info_dirty +EXPORT_SYMBOL vmlinux 0xbe60441b noop_qdisc +EXPORT_SYMBOL vmlinux 0xbe8c37d9 intel_scu_ipc_simple_command +EXPORT_SYMBOL vmlinux 0xbe98fef6 ilookup +EXPORT_SYMBOL vmlinux 0xbea1b666 acpi_device_hid +EXPORT_SYMBOL vmlinux 0xbea33af6 dmam_declare_coherent_memory +EXPORT_SYMBOL vmlinux 0xbec30d05 x86_match_cpu +EXPORT_SYMBOL vmlinux 0xbecf85a5 neigh_seq_stop +EXPORT_SYMBOL vmlinux 0xbee90f2f __kfifo_out_peek_r +EXPORT_SYMBOL vmlinux 0xbef263c2 scsi_prep_fn +EXPORT_SYMBOL vmlinux 0xbef43296 console_conditional_schedule +EXPORT_SYMBOL vmlinux 0xbf1f2c8d sched_autogroup_create_attach +EXPORT_SYMBOL vmlinux 0xbf2d4847 tcf_hash_lookup +EXPORT_SYMBOL vmlinux 0xbf2e2f9c eisa_driver_register +EXPORT_SYMBOL vmlinux 0xbf331b51 padata_add_cpu +EXPORT_SYMBOL vmlinux 0xbf4d4bb9 acpi_bios_error +EXPORT_SYMBOL vmlinux 0xbf521954 block_invalidatepage +EXPORT_SYMBOL vmlinux 0xbf566f8d acpi_bus_register_driver +EXPORT_SYMBOL vmlinux 0xbf5b8950 bio_copy_kern +EXPORT_SYMBOL vmlinux 0xbf7fd2f5 schedule_timeout_killable +EXPORT_SYMBOL vmlinux 0xbf8b39e9 isapnp_present +EXPORT_SYMBOL vmlinux 0xbf9bcc8d __cap_empty_set +EXPORT_SYMBOL vmlinux 0xbfbda65e posix_acl_from_xattr +EXPORT_SYMBOL vmlinux 0xbfc177bc iowrite32_rep +EXPORT_SYMBOL vmlinux 0xbfc407b4 param_ops_bint +EXPORT_SYMBOL vmlinux 0xbfcd7751 blk_end_request_cur +EXPORT_SYMBOL vmlinux 0xbfce0ef3 jbd2_journal_set_triggers +EXPORT_SYMBOL vmlinux 0xbfee3ad5 loop_unregister_transfer +EXPORT_SYMBOL vmlinux 0xbff9bde9 nf_log_unregister +EXPORT_SYMBOL vmlinux 0xc01cf848 _raw_read_lock +EXPORT_SYMBOL vmlinux 0xc01eed33 __copy_from_user_ll_nozero +EXPORT_SYMBOL vmlinux 0xc020d2e2 fb_pan_display +EXPORT_SYMBOL vmlinux 0xc022f18e xfrm_state_add +EXPORT_SYMBOL vmlinux 0xc02cf69b clkdev_drop +EXPORT_SYMBOL vmlinux 0xc0675ee4 inetdev_by_index +EXPORT_SYMBOL vmlinux 0xc068440e __kfifo_alloc +EXPORT_SYMBOL vmlinux 0xc0713ac6 genphy_restart_aneg +EXPORT_SYMBOL vmlinux 0xc0763484 rfkill_blocked +EXPORT_SYMBOL vmlinux 0xc0875c69 jbd2_trans_will_send_data_barrier +EXPORT_SYMBOL vmlinux 0xc087d917 filemap_fault +EXPORT_SYMBOL vmlinux 0xc08c5151 d_instantiate +EXPORT_SYMBOL vmlinux 0xc08f7d0c nla_put_nohdr +EXPORT_SYMBOL vmlinux 0xc09eb27c loop_backing_file +EXPORT_SYMBOL vmlinux 0xc0a3d105 find_next_bit +EXPORT_SYMBOL vmlinux 0xc0a87e02 phy_ethtool_set_eee +EXPORT_SYMBOL vmlinux 0xc0a8ff16 acpi_evaluate_object +EXPORT_SYMBOL vmlinux 0xc0ac832c qdisc_list_del +EXPORT_SYMBOL vmlinux 0xc0c34f4f noop_fsync +EXPORT_SYMBOL vmlinux 0xc0d71f2b get_unmapped_area +EXPORT_SYMBOL vmlinux 0xc0e8ca8b dma_ops +EXPORT_SYMBOL vmlinux 0xc0f2f973 register_qdisc +EXPORT_SYMBOL vmlinux 0xc0f8d850 i2c_smbus_read_byte_data +EXPORT_SYMBOL vmlinux 0xc11949b7 sk_stream_kill_queues +EXPORT_SYMBOL vmlinux 0xc11d8093 iov_shorten +EXPORT_SYMBOL vmlinux 0xc11e3d8d kernel_getsockname +EXPORT_SYMBOL vmlinux 0xc1283d33 journal_trans_will_send_data_barrier +EXPORT_SYMBOL vmlinux 0xc12ec3a6 dns_query +EXPORT_SYMBOL vmlinux 0xc14c442d load_nls +EXPORT_SYMBOL vmlinux 0xc1515a4f dma_async_device_unregister +EXPORT_SYMBOL vmlinux 0xc16563b6 dev_uc_init +EXPORT_SYMBOL vmlinux 0xc18400fb dev_mc_add_global +EXPORT_SYMBOL vmlinux 0xc1c2dd09 __hw_addr_flush +EXPORT_SYMBOL vmlinux 0xc1eb75ec follow_down +EXPORT_SYMBOL vmlinux 0xc20fc969 generic_file_mmap +EXPORT_SYMBOL vmlinux 0xc2125b1b inode_add_bytes +EXPORT_SYMBOL vmlinux 0xc22b50ad param_set_bint +EXPORT_SYMBOL vmlinux 0xc22ce009 padata_set_cpumasks +EXPORT_SYMBOL vmlinux 0xc23b3023 kmem_cache_free +EXPORT_SYMBOL vmlinux 0xc240b620 freezing_slow_path +EXPORT_SYMBOL vmlinux 0xc2424641 agp3_generic_cleanup +EXPORT_SYMBOL vmlinux 0xc256e762 __bitmap_equal +EXPORT_SYMBOL vmlinux 0xc25cc8ff tty_pair_get_tty +EXPORT_SYMBOL vmlinux 0xc26f32c5 seq_bitmap +EXPORT_SYMBOL vmlinux 0xc280a525 __copy_from_user_ll +EXPORT_SYMBOL vmlinux 0xc288ac76 security_task_getsecid +EXPORT_SYMBOL vmlinux 0xc293a804 proc_dointvec_minmax +EXPORT_SYMBOL vmlinux 0xc2a469ca padata_do_parallel +EXPORT_SYMBOL vmlinux 0xc2c48d7b would_dump +EXPORT_SYMBOL vmlinux 0xc2c89ebe dev_set_group +EXPORT_SYMBOL vmlinux 0xc2d711e1 krealloc +EXPORT_SYMBOL vmlinux 0xc2db4030 d_obtain_alias +EXPORT_SYMBOL vmlinux 0xc2e47cfc udp_lib_getsockopt +EXPORT_SYMBOL vmlinux 0xc2e587d1 reset_devices +EXPORT_SYMBOL vmlinux 0xc2e6c5b8 ppp_channel_index +EXPORT_SYMBOL vmlinux 0xc2f63865 netpoll_send_udp +EXPORT_SYMBOL vmlinux 0xc2f9c045 timespec_to_jiffies +EXPORT_SYMBOL vmlinux 0xc2fe1e41 d_validate +EXPORT_SYMBOL vmlinux 0xc32d7403 security_inode_notifysecctx +EXPORT_SYMBOL vmlinux 0xc34033a7 blk_complete_request +EXPORT_SYMBOL vmlinux 0xc3432185 devm_request_and_ioremap +EXPORT_SYMBOL vmlinux 0xc3536fd5 fb_get_buffer_offset +EXPORT_SYMBOL vmlinux 0xc36383d0 poll_schedule_timeout +EXPORT_SYMBOL vmlinux 0xc374fa96 truncate_inode_pages_range +EXPORT_SYMBOL vmlinux 0xc38cf1e3 registered_fb +EXPORT_SYMBOL vmlinux 0xc3aaf0a9 __put_user_1 +EXPORT_SYMBOL vmlinux 0xc3fa6a59 memchr +EXPORT_SYMBOL vmlinux 0xc41e8f7a wait_for_completion_interruptible_timeout +EXPORT_SYMBOL vmlinux 0xc41f0516 node_states +EXPORT_SYMBOL vmlinux 0xc4462917 ipv4_specific +EXPORT_SYMBOL vmlinux 0xc4554217 up +EXPORT_SYMBOL vmlinux 0xc467c105 nf_register_hook +EXPORT_SYMBOL vmlinux 0xc47d2340 ps2_handle_response +EXPORT_SYMBOL vmlinux 0xc47d4b05 set_pages_wb +EXPORT_SYMBOL vmlinux 0xc48b3c8b tty_pair_get_pty +EXPORT_SYMBOL vmlinux 0xc499ae1e kstrdup +EXPORT_SYMBOL vmlinux 0xc4a506cb grab_cache_page_write_begin +EXPORT_SYMBOL vmlinux 0xc4b7cecd bio_integrity_alloc +EXPORT_SYMBOL vmlinux 0xc4d9de7e mod_zone_page_state +EXPORT_SYMBOL vmlinux 0xc50567f5 ip6_dst_hoplimit +EXPORT_SYMBOL vmlinux 0xc512aef9 mem_cgroup_subsys +EXPORT_SYMBOL vmlinux 0xc518a84b scsi_remove_host +EXPORT_SYMBOL vmlinux 0xc5534d64 ioread16 +EXPORT_SYMBOL vmlinux 0xc56412f7 pci_clear_master +EXPORT_SYMBOL vmlinux 0xc575243f eisa_bus_type +EXPORT_SYMBOL vmlinux 0xc57ab7bc proc_dostring +EXPORT_SYMBOL vmlinux 0xc5d232f3 tcp_getsockopt +EXPORT_SYMBOL vmlinux 0xc5d40c72 pci_bus_read_dev_vendor_id +EXPORT_SYMBOL vmlinux 0xc5d9c46c agp_try_unsupported_boot +EXPORT_SYMBOL vmlinux 0xc5ee032d scsi_host_get +EXPORT_SYMBOL vmlinux 0xc5f6790e abx500_get_chip_id +EXPORT_SYMBOL vmlinux 0xc5fdef94 call_usermodehelper +EXPORT_SYMBOL vmlinux 0xc60d9745 input_get_keycode +EXPORT_SYMBOL vmlinux 0xc6183469 dma_async_memcpy_buf_to_pg +EXPORT_SYMBOL vmlinux 0xc631580a console_unlock +EXPORT_SYMBOL vmlinux 0xc63cc125 prepare_to_wait_exclusive +EXPORT_SYMBOL vmlinux 0xc64ea5f7 dmam_release_declared_memory +EXPORT_SYMBOL vmlinux 0xc65abeb7 agp3_generic_sizes +EXPORT_SYMBOL vmlinux 0xc6645b42 mempool_create_node +EXPORT_SYMBOL vmlinux 0xc6647cc1 netif_napi_del +EXPORT_SYMBOL vmlinux 0xc6941a60 scsi_unblock_requests +EXPORT_SYMBOL vmlinux 0xc69b22d3 fsnotify_init_mark +EXPORT_SYMBOL vmlinux 0xc69d6d10 inet6_getname +EXPORT_SYMBOL vmlinux 0xc6b18347 __d_drop +EXPORT_SYMBOL vmlinux 0xc6b23120 intel_scu_ipc_iowrite16 +EXPORT_SYMBOL vmlinux 0xc6c7f902 skb_pull +EXPORT_SYMBOL vmlinux 0xc6cbbc89 capable +EXPORT_SYMBOL vmlinux 0xc6fd8615 phy_detach +EXPORT_SYMBOL vmlinux 0xc6ff1eb1 thaw_super +EXPORT_SYMBOL vmlinux 0xc702156b param_get_ushort +EXPORT_SYMBOL vmlinux 0xc7208c3a serial8250_resume_port +EXPORT_SYMBOL vmlinux 0xc7407fa3 lro_receive_skb +EXPORT_SYMBOL vmlinux 0xc743a3ab generic_block_bmap +EXPORT_SYMBOL vmlinux 0xc7452e50 pci_set_power_state +EXPORT_SYMBOL vmlinux 0xc76283de get_thermal_instance +EXPORT_SYMBOL vmlinux 0xc7652aa1 blk_queue_update_dma_pad +EXPORT_SYMBOL vmlinux 0xc768de19 cpu_all_bits +EXPORT_SYMBOL vmlinux 0xc7773284 bio_integrity_clone +EXPORT_SYMBOL vmlinux 0xc781bd9f rfkill_resume_polling +EXPORT_SYMBOL vmlinux 0xc7856a3d inet6addr_notifier_call_chain +EXPORT_SYMBOL vmlinux 0xc79bcd36 dm_vcalloc +EXPORT_SYMBOL vmlinux 0xc7a4fbed rtnl_lock +EXPORT_SYMBOL vmlinux 0xc7c3e686 phy_start_interrupts +EXPORT_SYMBOL vmlinux 0xc7cac5b3 abx500_startup_irq_enabled +EXPORT_SYMBOL vmlinux 0xc7dd400c cdrom_check_events +EXPORT_SYMBOL vmlinux 0xc7ec2f37 blkdev_get_by_dev +EXPORT_SYMBOL vmlinux 0xc7ec6c27 strspn +EXPORT_SYMBOL vmlinux 0xc8276a79 nf_hooks_needed +EXPORT_SYMBOL vmlinux 0xc8339e24 string_unescape +EXPORT_SYMBOL vmlinux 0xc841aa81 padata_set_cpumask +EXPORT_SYMBOL vmlinux 0xc84a0a7e seq_hlist_start_rcu +EXPORT_SYMBOL vmlinux 0xc864a632 d_genocide +EXPORT_SYMBOL vmlinux 0xc8736359 scsi_init_io +EXPORT_SYMBOL vmlinux 0xc87fd57d __quota_error +EXPORT_SYMBOL vmlinux 0xc88d8850 mb_cache_entry_get +EXPORT_SYMBOL vmlinux 0xc897c382 sg_init_table +EXPORT_SYMBOL vmlinux 0xc89c6a20 deactivate_super +EXPORT_SYMBOL vmlinux 0xc8af9756 blk_queue_max_segment_size +EXPORT_SYMBOL vmlinux 0xc8b57c27 autoremove_wake_function +EXPORT_SYMBOL vmlinux 0xc8e4c43c ipv6_select_ident +EXPORT_SYMBOL vmlinux 0xc8eb0721 inode_permission +EXPORT_SYMBOL vmlinux 0xc94b5828 __lock_buffer +EXPORT_SYMBOL vmlinux 0xc95a80a0 kblockd_schedule_work +EXPORT_SYMBOL vmlinux 0xc95b3491 input_release_device +EXPORT_SYMBOL vmlinux 0xc974325b truncate_pagecache +EXPORT_SYMBOL vmlinux 0xc996d097 del_timer +EXPORT_SYMBOL vmlinux 0xc9d25dfa free_netdev +EXPORT_SYMBOL vmlinux 0xc9e8fc8e cdrom_mode_select +EXPORT_SYMBOL vmlinux 0xc9f4200a seq_lseek +EXPORT_SYMBOL vmlinux 0xca0aee35 acpi_bus_unregister_driver +EXPORT_SYMBOL vmlinux 0xca13b005 inet_csk_accept +EXPORT_SYMBOL vmlinux 0xca33556a blk_queue_softirq_done +EXPORT_SYMBOL vmlinux 0xca490c86 nf_log_packet +EXPORT_SYMBOL vmlinux 0xca5967e3 vm_stat +EXPORT_SYMBOL vmlinux 0xca5dbc50 scsi_print_sense_hdr +EXPORT_SYMBOL vmlinux 0xca792612 __insert_inode_hash +EXPORT_SYMBOL vmlinux 0xca8acc78 acpi_dbg_level +EXPORT_SYMBOL vmlinux 0xca8fd015 pipe_to_file +EXPORT_SYMBOL vmlinux 0xca9360b5 rb_next +EXPORT_SYMBOL vmlinux 0xcaa5a0c2 skb_dequeue_tail +EXPORT_SYMBOL vmlinux 0xcad36868 cad_pid +EXPORT_SYMBOL vmlinux 0xcae6ab79 inode_change_ok +EXPORT_SYMBOL vmlinux 0xcaf51084 agp_put_bridge +EXPORT_SYMBOL vmlinux 0xcafcf705 jbd2_journal_start_reserved +EXPORT_SYMBOL vmlinux 0xcb0288ea ledtrig_cpu +EXPORT_SYMBOL vmlinux 0xcb07f41d unregister_sysctl_table +EXPORT_SYMBOL vmlinux 0xcb0805a2 pci_disable_obff +EXPORT_SYMBOL vmlinux 0xcb09b956 tty_port_block_til_ready +EXPORT_SYMBOL vmlinux 0xcb17f51f kernel_read +EXPORT_SYMBOL vmlinux 0xcb197c30 arp_find +EXPORT_SYMBOL vmlinux 0xcb382686 journal_lock_updates +EXPORT_SYMBOL vmlinux 0xcb3b9361 fbcon_set_bitops +EXPORT_SYMBOL vmlinux 0xcb3f014b agp_generic_destroy_pages +EXPORT_SYMBOL vmlinux 0xcb5f015a md_done_sync +EXPORT_SYMBOL vmlinux 0xcb6c5ff0 vlan_dev_real_dev +EXPORT_SYMBOL vmlinux 0xcb733bf2 acpi_bus_set_power +EXPORT_SYMBOL vmlinux 0xcb8a771d ipv6_chk_addr +EXPORT_SYMBOL vmlinux 0xcb97bbe1 iget_failed +EXPORT_SYMBOL vmlinux 0xcb9bf972 try_to_writeback_inodes_sb_nr +EXPORT_SYMBOL vmlinux 0xcbaa1b78 input_set_capability +EXPORT_SYMBOL vmlinux 0xcbae6c7a acpi_lid_notifier_unregister +EXPORT_SYMBOL vmlinux 0xcbbf0a6f audit_log_task_context +EXPORT_SYMBOL vmlinux 0xcbc9557f unregister_sysrq_key +EXPORT_SYMBOL vmlinux 0xcbf7dd14 vc_cons +EXPORT_SYMBOL vmlinux 0xcbf8a8b7 audit_log +EXPORT_SYMBOL vmlinux 0xcc099b0c first_ec +EXPORT_SYMBOL vmlinux 0xcc248d26 serial8250_suspend_port +EXPORT_SYMBOL vmlinux 0xcc28dcff lock_rename +EXPORT_SYMBOL vmlinux 0xcc37f55c blk_limits_io_opt +EXPORT_SYMBOL vmlinux 0xcc4d1bfb atomic64_read_cx8 +EXPORT_SYMBOL vmlinux 0xcc5005fe msleep_interruptible +EXPORT_SYMBOL vmlinux 0xcc52b423 __inode_permission +EXPORT_SYMBOL vmlinux 0xcc5b27b5 acpi_extract_package +EXPORT_SYMBOL vmlinux 0xcc5bfacc jbd2_journal_wipe +EXPORT_SYMBOL vmlinux 0xcc68155e vga_switcheroo_register_handler +EXPORT_SYMBOL vmlinux 0xcc7fa952 local_bh_enable_ip +EXPORT_SYMBOL vmlinux 0xcc81517e udp_proc_unregister +EXPORT_SYMBOL vmlinux 0xcc898900 vga_switcheroo_get_client_state +EXPORT_SYMBOL vmlinux 0xccc21f5e input_get_new_minor +EXPORT_SYMBOL vmlinux 0xcccc2fe2 pci_write_vpd +EXPORT_SYMBOL vmlinux 0xccdafda8 vfs_read +EXPORT_SYMBOL vmlinux 0xccef42af ip_mc_rejoin_groups +EXPORT_SYMBOL vmlinux 0xcd00604a __skb_recv_datagram +EXPORT_SYMBOL vmlinux 0xcd112daf scsi_add_device +EXPORT_SYMBOL vmlinux 0xcd279169 nla_find +EXPORT_SYMBOL vmlinux 0xcd314a2a blk_peek_request +EXPORT_SYMBOL vmlinux 0xcd41e7b4 md_unregister_thread +EXPORT_SYMBOL vmlinux 0xcd67dae3 acpi_pm_device_run_wake +EXPORT_SYMBOL vmlinux 0xcdaa9cc2 __dev_remove_offload +EXPORT_SYMBOL vmlinux 0xcdbbb87d tcp_child_process +EXPORT_SYMBOL vmlinux 0xcdc1bcc6 pcim_iomap +EXPORT_SYMBOL vmlinux 0xcdc39c9e security_ismaclabel +EXPORT_SYMBOL vmlinux 0xcdc40fae panic_notifier_list +EXPORT_SYMBOL vmlinux 0xcde172ac radix_tree_gang_lookup_tag_slot +EXPORT_SYMBOL vmlinux 0xcde31ef7 __xfrm_state_delete +EXPORT_SYMBOL vmlinux 0xce1f5873 kobject_add +EXPORT_SYMBOL vmlinux 0xce2840e7 irq_set_irq_wake +EXPORT_SYMBOL vmlinux 0xce42248a simple_rmdir +EXPORT_SYMBOL vmlinux 0xce4904a4 acpi_leave_sleep_state +EXPORT_SYMBOL vmlinux 0xce5ac24f zlib_inflate_workspacesize +EXPORT_SYMBOL vmlinux 0xce61f3d6 nobh_truncate_page +EXPORT_SYMBOL vmlinux 0xce88efb4 boot_cpu_data +EXPORT_SYMBOL vmlinux 0xce946043 find_get_page +EXPORT_SYMBOL vmlinux 0xcecc1c78 new_inode +EXPORT_SYMBOL vmlinux 0xcecfb794 devm_gpio_request_one +EXPORT_SYMBOL vmlinux 0xcef51982 kstrtou16 +EXPORT_SYMBOL vmlinux 0xcefcd99a serial8250_unregister_port +EXPORT_SYMBOL vmlinux 0xcf1d28ab acpi_error +EXPORT_SYMBOL vmlinux 0xcf1f0c53 scsi_rescan_device +EXPORT_SYMBOL vmlinux 0xcf5a875e textsearch_prepare +EXPORT_SYMBOL vmlinux 0xcf6cfe1f msrs_free +EXPORT_SYMBOL vmlinux 0xcf79b8a2 skb_copy_and_csum_bits +EXPORT_SYMBOL vmlinux 0xcf8d07cb tcp_sync_mss +EXPORT_SYMBOL vmlinux 0xcfaeeb1b pci_get_slot +EXPORT_SYMBOL vmlinux 0xcfb4e32a bdget_disk +EXPORT_SYMBOL vmlinux 0xcfc1638c mpage_readpages +EXPORT_SYMBOL vmlinux 0xcfe05d4d register_kmmio_probe +EXPORT_SYMBOL vmlinux 0xd014251a d_prune_aliases +EXPORT_SYMBOL vmlinux 0xd0181f4f __bitmap_xor +EXPORT_SYMBOL vmlinux 0xd03cc4bf tcf_exts_validate +EXPORT_SYMBOL vmlinux 0xd05db2e0 dev_get_stats +EXPORT_SYMBOL vmlinux 0xd0720a17 on_each_cpu_cond +EXPORT_SYMBOL vmlinux 0xd072d9c2 pci_enable_msi_block_auto +EXPORT_SYMBOL vmlinux 0xd079ce58 skb_append +EXPORT_SYMBOL vmlinux 0xd0802100 __dev_getfirstbyhwtype +EXPORT_SYMBOL vmlinux 0xd08197fa acpi_load_tables +EXPORT_SYMBOL vmlinux 0xd08299a4 read_cache_page_gfp +EXPORT_SYMBOL vmlinux 0xd0a91bab skip_spaces +EXPORT_SYMBOL vmlinux 0xd0baff70 pneigh_enqueue +EXPORT_SYMBOL vmlinux 0xd0cca772 ip_mc_leave_group +EXPORT_SYMBOL vmlinux 0xd0d42c42 mod_timer_pending +EXPORT_SYMBOL vmlinux 0xd0d8621b strlen +EXPORT_SYMBOL vmlinux 0xd0ee38b8 schedule_timeout_uninterruptible +EXPORT_SYMBOL vmlinux 0xd0f0d945 down_read +EXPORT_SYMBOL vmlinux 0xd0f36f0d audit_log_format +EXPORT_SYMBOL vmlinux 0xd0f38aae simple_rename +EXPORT_SYMBOL vmlinux 0xd0fb7cd4 __tasklet_hi_schedule_first +EXPORT_SYMBOL vmlinux 0xd0fef3b2 agp_free_key +EXPORT_SYMBOL vmlinux 0xd101bcec dev_mc_unsync +EXPORT_SYMBOL vmlinux 0xd107102b mmc_detect_card_removed +EXPORT_SYMBOL vmlinux 0xd11815a2 ip4_datagram_connect +EXPORT_SYMBOL vmlinux 0xd11c0dc1 __kernel_param_unlock +EXPORT_SYMBOL vmlinux 0xd13ec6d9 bio_reset +EXPORT_SYMBOL vmlinux 0xd15c0bf0 dev_mc_sync_multiple +EXPORT_SYMBOL vmlinux 0xd1626a59 inet_del_protocol +EXPORT_SYMBOL vmlinux 0xd17a085c find_lock_page +EXPORT_SYMBOL vmlinux 0xd1816f32 frontswap_writethrough +EXPORT_SYMBOL vmlinux 0xd18a6b08 pipe_unlock +EXPORT_SYMBOL vmlinux 0xd18b6eb2 acpi_unmap_lsapic +EXPORT_SYMBOL vmlinux 0xd1926b7e input_register_device +EXPORT_SYMBOL vmlinux 0xd196c9be kstrtos16_from_user +EXPORT_SYMBOL vmlinux 0xd197691a ndo_dflt_fdb_del +EXPORT_SYMBOL vmlinux 0xd1f6c5f3 smp_num_siblings +EXPORT_SYMBOL vmlinux 0xd200a4ae bio_sector_offset +EXPORT_SYMBOL vmlinux 0xd20fa7e5 seq_open_private +EXPORT_SYMBOL vmlinux 0xd220cf8a jiffies_to_timespec +EXPORT_SYMBOL vmlinux 0xd2329de3 wait_for_completion_killable_timeout +EXPORT_SYMBOL vmlinux 0xd240a1af xfrm_state_insert +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 0xd266efe7 mempool_create +EXPORT_SYMBOL vmlinux 0xd27b25dd blk_check_plugged +EXPORT_SYMBOL vmlinux 0xd2822fd7 inode_sub_rsv_space +EXPORT_SYMBOL vmlinux 0xd287d09d journal_extend +EXPORT_SYMBOL vmlinux 0xd2887142 vga_set_legacy_decoding +EXPORT_SYMBOL vmlinux 0xd28d1f01 jbd2_journal_init_inode +EXPORT_SYMBOL vmlinux 0xd2af138b reservation_ww_class +EXPORT_SYMBOL vmlinux 0xd2bd8671 register_key_type +EXPORT_SYMBOL vmlinux 0xd2d2501f i2c_smbus_write_block_data +EXPORT_SYMBOL vmlinux 0xd2da1048 register_netdevice_notifier +EXPORT_SYMBOL vmlinux 0xd2e6a582 acpi_processor_preregister_performance +EXPORT_SYMBOL vmlinux 0xd2eb54dc acpi_bus_get_device +EXPORT_SYMBOL vmlinux 0xd2fbb0ec vfs_writev +EXPORT_SYMBOL vmlinux 0xd35e249a _raw_read_lock_irq +EXPORT_SYMBOL vmlinux 0xd3760122 __sb_start_write +EXPORT_SYMBOL vmlinux 0xd392bc7f xfrm_input +EXPORT_SYMBOL vmlinux 0xd3aa77c1 pcie_capability_read_word +EXPORT_SYMBOL vmlinux 0xd3d3a477 posix_acl_init +EXPORT_SYMBOL vmlinux 0xd3dcab0b flex_array_alloc +EXPORT_SYMBOL vmlinux 0xd4160432 journal_init_dev +EXPORT_SYMBOL vmlinux 0xd41f2681 mb_cache_entry_free +EXPORT_SYMBOL vmlinux 0xd4835ef8 dmi_check_system +EXPORT_SYMBOL vmlinux 0xd4c3b174 printk_emit +EXPORT_SYMBOL vmlinux 0xd4d979ac blk_pre_runtime_resume +EXPORT_SYMBOL vmlinux 0xd4fc38e8 kmem_cache_shrink +EXPORT_SYMBOL vmlinux 0xd4ffa484 acpi_initialize_subsystem +EXPORT_SYMBOL vmlinux 0xd50fef48 acpi_detach_data +EXPORT_SYMBOL vmlinux 0xd51d0bbc set_bh_page +EXPORT_SYMBOL vmlinux 0xd522ce18 dev_mc_add +EXPORT_SYMBOL vmlinux 0xd5352139 led_blink_set_oneshot +EXPORT_SYMBOL vmlinux 0xd54a70a2 from_kqid_munged +EXPORT_SYMBOL vmlinux 0xd5838157 find_vma +EXPORT_SYMBOL vmlinux 0xd59be6b5 mutex_trylock +EXPORT_SYMBOL vmlinux 0xd5a7428d bio_copy_data +EXPORT_SYMBOL vmlinux 0xd5b1376d register_shrinker +EXPORT_SYMBOL vmlinux 0xd5f2172f del_timer_sync +EXPORT_SYMBOL vmlinux 0xd5f49b92 scsi_cmd_ioctl +EXPORT_SYMBOL vmlinux 0xd60d12e7 sock_no_sendpage +EXPORT_SYMBOL vmlinux 0xd616683a ecryptfs_fill_auth_tok +EXPORT_SYMBOL vmlinux 0xd626faca generic_splice_sendpage +EXPORT_SYMBOL vmlinux 0xd62c833f schedule_timeout +EXPORT_SYMBOL vmlinux 0xd639ccb5 touch_buffer +EXPORT_SYMBOL vmlinux 0xd648e564 fb_match_mode +EXPORT_SYMBOL vmlinux 0xd657ba13 bitmap_endwrite +EXPORT_SYMBOL vmlinux 0xd65ccd7c lock_may_write +EXPORT_SYMBOL vmlinux 0xd688716b dm_kcopyd_client_create +EXPORT_SYMBOL vmlinux 0xd6adb2c2 tty_lock_pair +EXPORT_SYMBOL vmlinux 0xd6b33026 cpu_khz +EXPORT_SYMBOL vmlinux 0xd6bfd75f dev_uc_flush +EXPORT_SYMBOL vmlinux 0xd6d7ffa7 netif_carrier_on +EXPORT_SYMBOL vmlinux 0xd6eceb6e jbd2_journal_blocks_per_page +EXPORT_SYMBOL vmlinux 0xd6ee688f vmalloc +EXPORT_SYMBOL vmlinux 0xd711c4e3 sock_no_accept +EXPORT_SYMBOL vmlinux 0xd74e10d8 agp_free_page_array +EXPORT_SYMBOL vmlinux 0xd75c79df smp_call_function +EXPORT_SYMBOL vmlinux 0xd75dcaf2 rtnetlink_put_metrics +EXPORT_SYMBOL vmlinux 0xd75e03c9 register_tcf_proto_ops +EXPORT_SYMBOL vmlinux 0xd76500e0 d_delete +EXPORT_SYMBOL vmlinux 0xd76ccbb9 nf_ct_attach +EXPORT_SYMBOL vmlinux 0xd77a5aa5 __bitmap_and +EXPORT_SYMBOL vmlinux 0xd794f618 serio_interrupt +EXPORT_SYMBOL vmlinux 0xd79b5a02 allow_signal +EXPORT_SYMBOL vmlinux 0xd7bd3af2 add_wait_queue +EXPORT_SYMBOL vmlinux 0xd7c9ae72 register_console +EXPORT_SYMBOL vmlinux 0xd7dd777b reserve_perfctr_nmi +EXPORT_SYMBOL vmlinux 0xd7e56a4e simple_strtoll +EXPORT_SYMBOL vmlinux 0xd7e59c8f xfrm_policy_bysel_ctx +EXPORT_SYMBOL vmlinux 0xd7ea7094 nf_unregister_queue_handler +EXPORT_SYMBOL vmlinux 0xd7ec58bb ip_fragment +EXPORT_SYMBOL vmlinux 0xd7fc2ead in6_dev_finish_destroy +EXPORT_SYMBOL vmlinux 0xd80a06e1 eth_change_mtu +EXPORT_SYMBOL vmlinux 0xd811f585 pci_enable_bridges +EXPORT_SYMBOL vmlinux 0xd85833cb __kfifo_dma_out_prepare_r +EXPORT_SYMBOL vmlinux 0xd86bd608 xfrm6_rcv +EXPORT_SYMBOL vmlinux 0xd86db7e4 setattr_copy +EXPORT_SYMBOL vmlinux 0xd86e8c28 __alloc_skb +EXPORT_SYMBOL vmlinux 0xd87599af __devm_release_region +EXPORT_SYMBOL vmlinux 0xd88cf9e5 mmc_gpio_get_ro +EXPORT_SYMBOL vmlinux 0xd89da37f movable_zone +EXPORT_SYMBOL vmlinux 0xd8a05acf scsi_ioctl +EXPORT_SYMBOL vmlinux 0xd8b19466 __ww_mutex_lock_interruptible +EXPORT_SYMBOL vmlinux 0xd8e0e63e end_page_writeback +EXPORT_SYMBOL vmlinux 0xd8e484f0 register_chrdev_region +EXPORT_SYMBOL vmlinux 0xd8e7783d tty_throttle +EXPORT_SYMBOL vmlinux 0xd8e7aa70 agp_enable +EXPORT_SYMBOL vmlinux 0xd8ea7819 mdiobus_free +EXPORT_SYMBOL vmlinux 0xd9091363 acpi_install_notify_handler +EXPORT_SYMBOL vmlinux 0xd914ff3d phy_device_register +EXPORT_SYMBOL vmlinux 0xd916928f __frontswap_test +EXPORT_SYMBOL vmlinux 0xd92afabe bitmap_clear +EXPORT_SYMBOL vmlinux 0xd9462fad pcim_enable_device +EXPORT_SYMBOL vmlinux 0xd95e32dc iunique +EXPORT_SYMBOL vmlinux 0xd969b2c7 amd_e400_c1e_detected +EXPORT_SYMBOL vmlinux 0xd970c239 pcie_capability_clear_and_set_dword +EXPORT_SYMBOL vmlinux 0xd985dc99 mempool_free_pages +EXPORT_SYMBOL vmlinux 0xd98762a2 nf_unregister_sockopt +EXPORT_SYMBOL vmlinux 0xd990546c lg_local_unlock_cpu +EXPORT_SYMBOL vmlinux 0xd9a54e6c send_sig_info +EXPORT_SYMBOL vmlinux 0xd9a9bb30 getname +EXPORT_SYMBOL vmlinux 0xd9e61fcb qid_valid +EXPORT_SYMBOL vmlinux 0xd9f880b3 mmc_hw_reset +EXPORT_SYMBOL vmlinux 0xda08c0d7 pcibios_get_irq_routing_table +EXPORT_SYMBOL vmlinux 0xda0a6b0e acpi_map_lsapic +EXPORT_SYMBOL vmlinux 0xda0c3849 idr_destroy +EXPORT_SYMBOL vmlinux 0xda10cd4e fsnotify_add_mark +EXPORT_SYMBOL vmlinux 0xda1881f7 tty_port_put +EXPORT_SYMBOL vmlinux 0xda206c86 i2c_smbus_write_word_data +EXPORT_SYMBOL vmlinux 0xda2e3e2a qdisc_destroy +EXPORT_SYMBOL vmlinux 0xda36028f input_open_device +EXPORT_SYMBOL vmlinux 0xda3d10a8 security_tun_dev_open +EXPORT_SYMBOL vmlinux 0xda74caa6 revalidate_disk +EXPORT_SYMBOL vmlinux 0xda7ca6cb fb_mode_is_equal +EXPORT_SYMBOL vmlinux 0xda86a39d blkdev_get_by_path +EXPORT_SYMBOL vmlinux 0xda8af7ad fb_find_nearest_mode +EXPORT_SYMBOL vmlinux 0xda8fd495 isapnp_write_byte +EXPORT_SYMBOL vmlinux 0xdaa1e7c1 acpi_match_device_ids +EXPORT_SYMBOL vmlinux 0xdaa2596e tty_free_termios +EXPORT_SYMBOL vmlinux 0xdaa57ec3 totalhigh_pages +EXPORT_SYMBOL vmlinux 0xdabcda8e sock_no_connect +EXPORT_SYMBOL vmlinux 0xdac2bef0 dev_uc_add_excl +EXPORT_SYMBOL vmlinux 0xdb19f1b4 ip_route_me_harder +EXPORT_SYMBOL vmlinux 0xdb37c2eb security_inode_listsecurity +EXPORT_SYMBOL vmlinux 0xdb3cf551 dquot_commit +EXPORT_SYMBOL vmlinux 0xdb4a193b max8998_bulk_write +EXPORT_SYMBOL vmlinux 0xdb5216bc blk_execute_rq +EXPORT_SYMBOL vmlinux 0xdb68bbad rfkill_destroy +EXPORT_SYMBOL vmlinux 0xdb6be91f mapping_tagged +EXPORT_SYMBOL vmlinux 0xdb760f52 __kfifo_free +EXPORT_SYMBOL vmlinux 0xdb815d9e blk_requeue_request +EXPORT_SYMBOL vmlinux 0xdb847f81 mmc_interrupt_hpi +EXPORT_SYMBOL vmlinux 0xdba9c1a4 blkdev_put +EXPORT_SYMBOL vmlinux 0xdbaec3ce netif_set_real_num_tx_queues +EXPORT_SYMBOL vmlinux 0xdbcd416e sysctl_ip_nonlocal_bind +EXPORT_SYMBOL vmlinux 0xdbea89e3 grab_cache_page_nowait +EXPORT_SYMBOL vmlinux 0xdbefbd40 serial8250_do_set_termios +EXPORT_SYMBOL vmlinux 0xdbf91dc1 ida_init +EXPORT_SYMBOL vmlinux 0xdc047fc4 scsi_dev_info_list_add_keyed +EXPORT_SYMBOL vmlinux 0xdc14eda7 pci_pci_problems +EXPORT_SYMBOL vmlinux 0xdc271a38 dma_supported +EXPORT_SYMBOL vmlinux 0xdc2b4ea1 phy_ethtool_sset +EXPORT_SYMBOL vmlinux 0xdc3fcbc9 __sw_hweight8 +EXPORT_SYMBOL vmlinux 0xdc49a971 genl_register_mc_group +EXPORT_SYMBOL vmlinux 0xdc500054 pci_bus_write_config_dword +EXPORT_SYMBOL vmlinux 0xdc55678d dcb_ieee_delapp +EXPORT_SYMBOL vmlinux 0xdc570f62 lg_global_unlock +EXPORT_SYMBOL vmlinux 0xdc57f532 acpi_install_gpe_handler +EXPORT_SYMBOL vmlinux 0xdc682bc9 uart_suspend_port +EXPORT_SYMBOL vmlinux 0xdc6d41cf vfs_fstatat +EXPORT_SYMBOL vmlinux 0xdc89a5ca abx500_get_register_page_interruptible +EXPORT_SYMBOL vmlinux 0xdc950ab8 mfd_add_devices +EXPORT_SYMBOL vmlinux 0xdc996ea2 tcf_action_dump_1 +EXPORT_SYMBOL vmlinux 0xdcc9f5d6 inet6_release +EXPORT_SYMBOL vmlinux 0xdced73b3 kernel_sendmsg +EXPORT_SYMBOL vmlinux 0xdcfd3b0f dma_async_device_register +EXPORT_SYMBOL vmlinux 0xdd06e115 __xfrm_decode_session +EXPORT_SYMBOL vmlinux 0xdd0a2ba2 strlcat +EXPORT_SYMBOL vmlinux 0xdd1a2871 down +EXPORT_SYMBOL vmlinux 0xdd4a5569 param_get_byte +EXPORT_SYMBOL vmlinux 0xdd4cc730 acpi_get_hp_hw_control_from_firmware +EXPORT_SYMBOL vmlinux 0xdd78d7fb __dev_get_by_name +EXPORT_SYMBOL vmlinux 0xdd8e6ef6 locks_remove_posix +EXPORT_SYMBOL vmlinux 0xddc5b3b7 do_splice_to +EXPORT_SYMBOL vmlinux 0xddd5f24b scsi_register_driver +EXPORT_SYMBOL vmlinux 0xddf5ff5f mb_cache_create +EXPORT_SYMBOL vmlinux 0xddf78ca4 inet_accept +EXPORT_SYMBOL vmlinux 0xddf7d839 pci_bus_size_bridges +EXPORT_SYMBOL vmlinux 0xde16dc16 tboot +EXPORT_SYMBOL vmlinux 0xde1b4cfc mmc_gpio_free_cd +EXPORT_SYMBOL vmlinux 0xde458b66 __netdev_alloc_skb +EXPORT_SYMBOL vmlinux 0xde53cdee dev_vprintk_emit +EXPORT_SYMBOL vmlinux 0xde5615a7 fddi_type_trans +EXPORT_SYMBOL vmlinux 0xde8221a0 set_pages_array_wc +EXPORT_SYMBOL vmlinux 0xde9360ba totalram_pages +EXPORT_SYMBOL vmlinux 0xde9b17ed agp3_generic_fetch_size +EXPORT_SYMBOL vmlinux 0xdea83675 vm_iomap_memory +EXPORT_SYMBOL vmlinux 0xded99f0f eth_rebuild_header +EXPORT_SYMBOL vmlinux 0xdee2aed5 mmc_can_discard +EXPORT_SYMBOL vmlinux 0xdee901ba directly_mappable_cdev_bdi +EXPORT_SYMBOL vmlinux 0xdf0da3cc acpi_get_devices +EXPORT_SYMBOL vmlinux 0xdf2c2742 rb_last +EXPORT_SYMBOL vmlinux 0xdf34f5e2 irq_to_desc +EXPORT_SYMBOL vmlinux 0xdf48a0eb flex_array_put +EXPORT_SYMBOL vmlinux 0xdf54a8f7 netlink_unregister_notifier +EXPORT_SYMBOL vmlinux 0xdf60cc27 __print_symbol +EXPORT_SYMBOL vmlinux 0xdf695af1 netdev_has_upper_dev +EXPORT_SYMBOL vmlinux 0xdf73da5b blk_get_request +EXPORT_SYMBOL vmlinux 0xdf85e1d8 pci_map_biosrom +EXPORT_SYMBOL vmlinux 0xdf8c695a __ndelay +EXPORT_SYMBOL vmlinux 0xdf929370 fs_overflowgid +EXPORT_SYMBOL vmlinux 0xdfc5169b slhc_init +EXPORT_SYMBOL vmlinux 0xdfdb3661 scsi_allocate_command +EXPORT_SYMBOL vmlinux 0xdfdb5e67 __pci_register_driver +EXPORT_SYMBOL vmlinux 0xdfe844e8 napi_gro_receive +EXPORT_SYMBOL vmlinux 0xe02a82a9 ppp_output_wakeup +EXPORT_SYMBOL vmlinux 0xe02b945c mmc_erase +EXPORT_SYMBOL vmlinux 0xe03dd4e3 scsi_report_opcode +EXPORT_SYMBOL vmlinux 0xe041ad5e nf_log_register +EXPORT_SYMBOL vmlinux 0xe0449ee7 mmc_put_card +EXPORT_SYMBOL vmlinux 0xe04f7caa dm_read_arg_group +EXPORT_SYMBOL vmlinux 0xe05eb849 simple_write_begin +EXPORT_SYMBOL vmlinux 0xe06141e9 security_sk_clone +EXPORT_SYMBOL vmlinux 0xe075d6eb iter_div_u64_rem +EXPORT_SYMBOL vmlinux 0xe0a16a20 intel_scu_ipc_i2c_cntrl +EXPORT_SYMBOL vmlinux 0xe0a4a27c sk_stream_wait_close +EXPORT_SYMBOL vmlinux 0xe0ac8bd2 acpi_bus_generate_netlink_event +EXPORT_SYMBOL vmlinux 0xe0ad7223 jbd2_journal_start +EXPORT_SYMBOL vmlinux 0xe0b13336 argv_free +EXPORT_SYMBOL vmlinux 0xe0b8e1ed inet_recvmsg +EXPORT_SYMBOL vmlinux 0xe0cb700c blk_recount_segments +EXPORT_SYMBOL vmlinux 0xe0df6769 scsi_print_command +EXPORT_SYMBOL vmlinux 0xe102d369 cdrom_get_last_written +EXPORT_SYMBOL vmlinux 0xe10bafe3 __task_pid_nr_ns +EXPORT_SYMBOL vmlinux 0xe1211b7a del_gendisk +EXPORT_SYMBOL vmlinux 0xe13cd8a7 dmi_name_in_vendors +EXPORT_SYMBOL vmlinux 0xe1761617 security_inet_conn_request +EXPORT_SYMBOL vmlinux 0xe18bfd32 dquot_alloc +EXPORT_SYMBOL vmlinux 0xe1a38a1d ip_getsockopt +EXPORT_SYMBOL vmlinux 0xe1a5c5b9 rtnl_unicast +EXPORT_SYMBOL vmlinux 0xe1ba538c d_alloc +EXPORT_SYMBOL vmlinux 0xe1bbd970 kern_path_create +EXPORT_SYMBOL vmlinux 0xe1c05d27 scsi_command_normalize_sense +EXPORT_SYMBOL vmlinux 0xe1c4b336 eth_validate_addr +EXPORT_SYMBOL vmlinux 0xe1d45d3e seq_release +EXPORT_SYMBOL vmlinux 0xe1fa85cd vfsmount_lock +EXPORT_SYMBOL vmlinux 0xe200d2d5 param_get_uint +EXPORT_SYMBOL vmlinux 0xe200f872 secure_dccpv6_sequence_number +EXPORT_SYMBOL vmlinux 0xe2034333 acpi_evaluate_hotplug_ost +EXPORT_SYMBOL vmlinux 0xe21734d0 mmc_set_blocklen +EXPORT_SYMBOL vmlinux 0xe21bfbd1 setup_new_exec +EXPORT_SYMBOL vmlinux 0xe23913c1 tty_port_free_xmit_buf +EXPORT_SYMBOL vmlinux 0xe23ae481 blk_iopoll_complete +EXPORT_SYMBOL vmlinux 0xe24d3a97 jiffies_64 +EXPORT_SYMBOL vmlinux 0xe25aef64 swiotlb_unmap_sg_attrs +EXPORT_SYMBOL vmlinux 0xe26944d4 netif_set_xps_queue +EXPORT_SYMBOL vmlinux 0xe2805346 pv_mmu_ops +EXPORT_SYMBOL vmlinux 0xe2962357 pnp_possible_config +EXPORT_SYMBOL vmlinux 0xe29e1d0e out_of_line_wait_on_atomic_t +EXPORT_SYMBOL vmlinux 0xe2aba04c follow_up +EXPORT_SYMBOL vmlinux 0xe2bf2cdf kernel_listen +EXPORT_SYMBOL vmlinux 0xe2d5255a strcmp +EXPORT_SYMBOL vmlinux 0xe2d841e2 __sb_end_write +EXPORT_SYMBOL vmlinux 0xe2e41751 pci_release_region +EXPORT_SYMBOL vmlinux 0xe2e8065e memdup_user +EXPORT_SYMBOL vmlinux 0xe2f6ba42 kernel_sendpage +EXPORT_SYMBOL vmlinux 0xe2fae716 kmemdup +EXPORT_SYMBOL vmlinux 0xe2ff23b8 blk_pm_runtime_init +EXPORT_SYMBOL vmlinux 0xe319eb24 acpi_pci_osc_control_set +EXPORT_SYMBOL vmlinux 0xe31fe3e0 agp_generic_mask_memory +EXPORT_SYMBOL vmlinux 0xe345a87a tcf_exts_change +EXPORT_SYMBOL vmlinux 0xe35655e2 blk_put_queue +EXPORT_SYMBOL vmlinux 0xe35e1f2e neigh_seq_start +EXPORT_SYMBOL vmlinux 0xe36d05f4 dev_change_carrier +EXPORT_SYMBOL vmlinux 0xe3a7415e security_inode_getsecctx +EXPORT_SYMBOL vmlinux 0xe3b624e5 journal_release_buffer +EXPORT_SYMBOL vmlinux 0xe3c25942 flush_signals +EXPORT_SYMBOL vmlinux 0xe3cfd3d5 tcf_generic_walker +EXPORT_SYMBOL vmlinux 0xe3d6f284 fb_find_mode_cvt +EXPORT_SYMBOL vmlinux 0xe3e9ec45 scsi_test_unit_ready +EXPORT_SYMBOL vmlinux 0xe4170c34 phy_print_status +EXPORT_SYMBOL vmlinux 0xe439b2be input_set_abs_params +EXPORT_SYMBOL vmlinux 0xe45f60d8 __wake_up +EXPORT_SYMBOL vmlinux 0xe479681a aio_complete +EXPORT_SYMBOL vmlinux 0xe484e35f ioread32 +EXPORT_SYMBOL vmlinux 0xe4d6f107 pci_platform_rom +EXPORT_SYMBOL vmlinux 0xe4df06be dev_mc_flush +EXPORT_SYMBOL vmlinux 0xe4e2a019 km_report +EXPORT_SYMBOL vmlinux 0xe4e888bc fb_class +EXPORT_SYMBOL vmlinux 0xe504ed53 scsi_track_queue_full +EXPORT_SYMBOL vmlinux 0xe50f904f intel_scu_ipc_ioread16 +EXPORT_SYMBOL vmlinux 0xe5122890 flow_cache_genid +EXPORT_SYMBOL vmlinux 0xe518a19e i2c_del_driver +EXPORT_SYMBOL vmlinux 0xe5208918 acpi_gbl_FADT +EXPORT_SYMBOL vmlinux 0xe5225e8c bio_put +EXPORT_SYMBOL vmlinux 0xe523ad75 synchronize_irq +EXPORT_SYMBOL vmlinux 0xe530d757 acpi_clear_gpe +EXPORT_SYMBOL vmlinux 0xe534f28d keyring_clear +EXPORT_SYMBOL vmlinux 0xe575ea81 put_disk +EXPORT_SYMBOL vmlinux 0xe57878a1 in6_pton +EXPORT_SYMBOL vmlinux 0xe5867808 dlci_ioctl_set +EXPORT_SYMBOL vmlinux 0xe59a0119 proc_dointvec_userhz_jiffies +EXPORT_SYMBOL vmlinux 0xe59d222d truncate_pagecache_range +EXPORT_SYMBOL vmlinux 0xe5ac47e6 inet_frags_fini +EXPORT_SYMBOL vmlinux 0xe5c78a99 do_blank_screen +EXPORT_SYMBOL vmlinux 0xe5c79bd1 mmc_power_save_host +EXPORT_SYMBOL vmlinux 0xe5d95985 param_ops_ulong +EXPORT_SYMBOL vmlinux 0xe5ed5467 xfrm_policy_walk_init +EXPORT_SYMBOL vmlinux 0xe5ed785b mmc_request_done +EXPORT_SYMBOL vmlinux 0xe623ac44 sk_page_frag_refill +EXPORT_SYMBOL vmlinux 0xe631d933 scsi_prep_state_check +EXPORT_SYMBOL vmlinux 0xe64c7e12 phy_device_free +EXPORT_SYMBOL vmlinux 0xe64d1601 follow_down_one +EXPORT_SYMBOL vmlinux 0xe64d98fe rdmsr_safe_regs +EXPORT_SYMBOL vmlinux 0xe6507c7a proto_register +EXPORT_SYMBOL vmlinux 0xe651ccdb dev_deactivate +EXPORT_SYMBOL vmlinux 0xe67d1ae9 pci_disable_link_state +EXPORT_SYMBOL vmlinux 0xe6837b2c bio_alloc_pages +EXPORT_SYMBOL vmlinux 0xe6891ca5 spi_display_xfer_agreement +EXPORT_SYMBOL vmlinux 0xe697d108 __blk_iopoll_complete +EXPORT_SYMBOL vmlinux 0xe6b3fe21 interruptible_sleep_on_timeout +EXPORT_SYMBOL vmlinux 0xe6c2766e key_unlink +EXPORT_SYMBOL vmlinux 0xe6c88d07 set_disk_ro +EXPORT_SYMBOL vmlinux 0xe6ebc016 key_create_or_update +EXPORT_SYMBOL vmlinux 0xe6f446fd udp_lib_get_port +EXPORT_SYMBOL vmlinux 0xe6fbe430 can_do_mlock +EXPORT_SYMBOL vmlinux 0xe716baed acpi_unregister_ioapic +EXPORT_SYMBOL vmlinux 0xe7326b05 nonseekable_open +EXPORT_SYMBOL vmlinux 0xe73c2b6a inet_shutdown +EXPORT_SYMBOL vmlinux 0xe73c31c9 textsearch_unregister +EXPORT_SYMBOL vmlinux 0xe74be2b8 abx500_get_register_interruptible +EXPORT_SYMBOL vmlinux 0xe755d8bb __scsi_put_command +EXPORT_SYMBOL vmlinux 0xe75af56b __block_write_begin +EXPORT_SYMBOL vmlinux 0xe768d842 dquot_writeback_dquots +EXPORT_SYMBOL vmlinux 0xe7722171 flex_array_free +EXPORT_SYMBOL vmlinux 0xe77401f7 dm_get_device +EXPORT_SYMBOL vmlinux 0xe7772ce5 pci_enable_device_io +EXPORT_SYMBOL vmlinux 0xe781b5f6 intel_scu_ipc_readv +EXPORT_SYMBOL vmlinux 0xe7827e4a ip_options_compile +EXPORT_SYMBOL vmlinux 0xe798d71c cpu_core_map +EXPORT_SYMBOL vmlinux 0xe7a664c4 nf_hooks +EXPORT_SYMBOL vmlinux 0xe7a81967 audit_log_secctx +EXPORT_SYMBOL vmlinux 0xe7aef731 phy_mii_ioctl +EXPORT_SYMBOL vmlinux 0xe7c8fb9f __elv_add_request +EXPORT_SYMBOL vmlinux 0xe7d4daac seq_list_next +EXPORT_SYMBOL vmlinux 0xe7fb377e clk_add_alias +EXPORT_SYMBOL vmlinux 0xe7fba873 generic_ro_fops +EXPORT_SYMBOL vmlinux 0xe80ce219 sysctl_tcp_dma_copybreak +EXPORT_SYMBOL vmlinux 0xe8223f5a tcf_em_tree_dump +EXPORT_SYMBOL vmlinux 0xe851bb05 queue_delayed_work_on +EXPORT_SYMBOL vmlinux 0xe85aa5c7 crypto_sha1_update +EXPORT_SYMBOL vmlinux 0xe85dab51 dev_addr_flush +EXPORT_SYMBOL vmlinux 0xe8794ce1 slhc_toss +EXPORT_SYMBOL vmlinux 0xe88e7a93 lg_global_lock +EXPORT_SYMBOL vmlinux 0xe897bc39 __netdev_pick_tx +EXPORT_SYMBOL vmlinux 0xe89983e2 bdi_init +EXPORT_SYMBOL vmlinux 0xe8a4335c save_mount_options +EXPORT_SYMBOL vmlinux 0xe8a7ae0b fsnotify_put_mark +EXPORT_SYMBOL vmlinux 0xe8b30c58 vfs_follow_link +EXPORT_SYMBOL vmlinux 0xe8b63ace radix_tree_range_tag_if_tagged +EXPORT_SYMBOL vmlinux 0xe8b68849 wrmsr_on_cpus +EXPORT_SYMBOL vmlinux 0xe8b85eb2 dcbnl_cee_notify +EXPORT_SYMBOL vmlinux 0xe8bea3bc qdisc_put_stab +EXPORT_SYMBOL vmlinux 0xe8cce889 dev_get_by_name_rcu +EXPORT_SYMBOL vmlinux 0xe8de3f32 jbd2_journal_begin_ordered_truncate +EXPORT_SYMBOL vmlinux 0xe8efc5e1 init_net +EXPORT_SYMBOL vmlinux 0xe8f0d447 agp_generic_remove_memory +EXPORT_SYMBOL vmlinux 0xe8f2813e spi_dv_device +EXPORT_SYMBOL vmlinux 0xe914e41e strcpy +EXPORT_SYMBOL vmlinux 0xe9328581 netdev_err +EXPORT_SYMBOL vmlinux 0xe9503674 swiotlb_alloc_coherent +EXPORT_SYMBOL vmlinux 0xe953b21f get_next_ino +EXPORT_SYMBOL vmlinux 0xe9613b29 devm_backlight_device_unregister +EXPORT_SYMBOL vmlinux 0xe97a6008 check_disk_size_change +EXPORT_SYMBOL vmlinux 0xe9827e14 fb_is_primary_device +EXPORT_SYMBOL vmlinux 0xe997667b wrmsr_on_cpu +EXPORT_SYMBOL vmlinux 0xe99daf3d mark_buffer_dirty_inode +EXPORT_SYMBOL vmlinux 0xe9a8ddda agp_generic_alloc_user +EXPORT_SYMBOL vmlinux 0xe9acf206 netif_set_real_num_rx_queues +EXPORT_SYMBOL vmlinux 0xe9b58d03 bio_integrity_advance +EXPORT_SYMBOL vmlinux 0xe9b59421 md_reap_sync_thread +EXPORT_SYMBOL vmlinux 0xe9feb50a blkdev_issue_discard +EXPORT_SYMBOL vmlinux 0xe9fef667 abx500_mask_and_set_register_interruptible +EXPORT_SYMBOL vmlinux 0xea054b22 nla_policy_len +EXPORT_SYMBOL vmlinux 0xea0ebdd4 gnet_stats_copy_queue +EXPORT_SYMBOL vmlinux 0xea10212a int_to_scsilun +EXPORT_SYMBOL vmlinux 0xea10655a __bitmap_intersects +EXPORT_SYMBOL vmlinux 0xea1a5676 framebuffer_release +EXPORT_SYMBOL vmlinux 0xea290842 mmc_can_sanitize +EXPORT_SYMBOL vmlinux 0xea434ef0 pci_remove_bus +EXPORT_SYMBOL vmlinux 0xea7987f1 key_update +EXPORT_SYMBOL vmlinux 0xea7b8a44 acpi_install_interface +EXPORT_SYMBOL vmlinux 0xea90bdd3 acpi_attach_data +EXPORT_SYMBOL vmlinux 0xea96cdaf tty_unregister_driver +EXPORT_SYMBOL vmlinux 0xea9db5fa __serio_register_driver +EXPORT_SYMBOL vmlinux 0xeaa56736 mount_nodev +EXPORT_SYMBOL vmlinux 0xeaa8287b pci_target_state +EXPORT_SYMBOL vmlinux 0xeacaa91e vmap +EXPORT_SYMBOL vmlinux 0xead4ec11 dma_mmap_from_coherent +EXPORT_SYMBOL vmlinux 0xead52ef2 bio_integrity_set_tag +EXPORT_SYMBOL vmlinux 0xeae3dfd6 __const_udelay +EXPORT_SYMBOL vmlinux 0xeae88332 generic_file_splice_write +EXPORT_SYMBOL vmlinux 0xeb0fb2ef generic_permission +EXPORT_SYMBOL vmlinux 0xeb37101c audit_log_end +EXPORT_SYMBOL vmlinux 0xeb55a931 __kfifo_max_r +EXPORT_SYMBOL vmlinux 0xebacb83e iov_iter_copy_from_user +EXPORT_SYMBOL vmlinux 0xebadf278 phy_stop +EXPORT_SYMBOL vmlinux 0xebdbe48c radix_tree_gang_lookup +EXPORT_SYMBOL vmlinux 0xebdf2950 netif_napi_add +EXPORT_SYMBOL vmlinux 0xebe77c7a seq_escape +EXPORT_SYMBOL vmlinux 0xebe847c3 pci_select_bars +EXPORT_SYMBOL vmlinux 0xebfa1015 bioset_integrity_create +EXPORT_SYMBOL vmlinux 0xec0b61bd dquot_operations +EXPORT_SYMBOL vmlinux 0xec154bc7 register_md_personality +EXPORT_SYMBOL vmlinux 0xec2c77ad netdev_notify_peers +EXPORT_SYMBOL vmlinux 0xec4d9e3a clk_get_sys +EXPORT_SYMBOL vmlinux 0xec5b9d7d __inet_stream_connect +EXPORT_SYMBOL vmlinux 0xec6392e9 pcim_iomap_regions +EXPORT_SYMBOL vmlinux 0xec729dc9 load_nls_default +EXPORT_SYMBOL vmlinux 0xecaf776f lock_sock_nested +EXPORT_SYMBOL vmlinux 0xecb721f1 try_wait_for_completion +EXPORT_SYMBOL vmlinux 0xeccd3e0c acpi_handle_printk +EXPORT_SYMBOL vmlinux 0xece784c2 rb_first +EXPORT_SYMBOL vmlinux 0xed056fa3 mark_buffer_dirty +EXPORT_SYMBOL vmlinux 0xed0ed2ac dma_alloc_from_coherent +EXPORT_SYMBOL vmlinux 0xed0f289b xfrm_spd_getinfo +EXPORT_SYMBOL vmlinux 0xed116e2e pci_claim_resource +EXPORT_SYMBOL vmlinux 0xed2682ef serio_unregister_port +EXPORT_SYMBOL vmlinux 0xed4dbda8 get_super_thawed +EXPORT_SYMBOL vmlinux 0xed597524 qdisc_get_rtab +EXPORT_SYMBOL vmlinux 0xed7a4348 filp_open +EXPORT_SYMBOL vmlinux 0xed7e1295 gen_pool_create +EXPORT_SYMBOL vmlinux 0xed800f25 input_mt_report_slot_state +EXPORT_SYMBOL vmlinux 0xed93f29e __kunmap_atomic +EXPORT_SYMBOL vmlinux 0xed9f9a20 __ctzsi2 +EXPORT_SYMBOL vmlinux 0xedbaee5e nla_strcmp +EXPORT_SYMBOL vmlinux 0xedbc1123 mb_cache_entry_find_next +EXPORT_SYMBOL vmlinux 0xedc03953 iounmap +EXPORT_SYMBOL vmlinux 0xedc5447b sock_no_mmap +EXPORT_SYMBOL vmlinux 0xedd439c4 jbd2_journal_flush +EXPORT_SYMBOL vmlinux 0xedee3324 jbd2_complete_transaction +EXPORT_SYMBOL vmlinux 0xee291d09 jbd2_journal_clear_features +EXPORT_SYMBOL vmlinux 0xee2d0fc7 _local_bh_enable +EXPORT_SYMBOL vmlinux 0xee5a720e __nla_reserve +EXPORT_SYMBOL vmlinux 0xee645b38 cdrom_mode_sense +EXPORT_SYMBOL vmlinux 0xee67ddf8 task_nice +EXPORT_SYMBOL vmlinux 0xee71f492 __netlink_dump_start +EXPORT_SYMBOL vmlinux 0xee7cf104 inet6_bind +EXPORT_SYMBOL vmlinux 0xee7eb9e1 pnp_platform_devices +EXPORT_SYMBOL vmlinux 0xee842ce6 dst_alloc +EXPORT_SYMBOL vmlinux 0xee941644 nla_reserve_nohdr +EXPORT_SYMBOL vmlinux 0xee95a2ed posix_acl_from_mode +EXPORT_SYMBOL vmlinux 0xee9aa91a __starget_for_each_device +EXPORT_SYMBOL vmlinux 0xeea0f1b9 xfrm_register_mode +EXPORT_SYMBOL vmlinux 0xeea9dbaf bitmap_bitremap +EXPORT_SYMBOL vmlinux 0xeed67af1 sock_no_ioctl +EXPORT_SYMBOL vmlinux 0xeef06f43 arp_tbl +EXPORT_SYMBOL vmlinux 0xeefc1c6f PDE_DATA +EXPORT_SYMBOL vmlinux 0xef1d35b7 acpi_install_address_space_handler +EXPORT_SYMBOL vmlinux 0xef9aedfc boot_option_idle_override +EXPORT_SYMBOL vmlinux 0xef9daaf4 swiotlb_sync_single_for_device +EXPORT_SYMBOL vmlinux 0xef9de672 tty_port_alloc_xmit_buf +EXPORT_SYMBOL vmlinux 0xef9e1d02 tcp_v4_send_check +EXPORT_SYMBOL vmlinux 0xefa8032b qdisc_create_dflt +EXPORT_SYMBOL vmlinux 0xefabb487 tty_hung_up_p +EXPORT_SYMBOL vmlinux 0xefc00add insert_inode_locked4 +EXPORT_SYMBOL vmlinux 0xefc8241f skb_trim +EXPORT_SYMBOL vmlinux 0xefdd70ce security_secid_to_secctx +EXPORT_SYMBOL vmlinux 0xefe099c3 acpi_get_event_status +EXPORT_SYMBOL vmlinux 0xefe9b3bd may_umount +EXPORT_SYMBOL vmlinux 0xf0009fee put_pages_list +EXPORT_SYMBOL vmlinux 0xf0040079 rwsem_down_read_failed +EXPORT_SYMBOL vmlinux 0xf009cb9b jbd2_journal_destroy +EXPORT_SYMBOL vmlinux 0xf0187927 __sg_page_iter_next +EXPORT_SYMBOL vmlinux 0xf03a9d62 disk_stack_limits +EXPORT_SYMBOL vmlinux 0xf041f3c0 vfs_setpos +EXPORT_SYMBOL vmlinux 0xf04a1889 udplite_prot +EXPORT_SYMBOL vmlinux 0xf04e7eab ___pskb_trim +EXPORT_SYMBOL vmlinux 0xf05ffa15 fb_var_to_videomode +EXPORT_SYMBOL vmlinux 0xf0619801 timekeeping_clocktai +EXPORT_SYMBOL vmlinux 0xf065f629 ioread16be +EXPORT_SYMBOL vmlinux 0xf078d4a7 devfreq_remove_device +EXPORT_SYMBOL vmlinux 0xf087137d __dynamic_pr_debug +EXPORT_SYMBOL vmlinux 0xf08943db tcp_connect +EXPORT_SYMBOL vmlinux 0xf08f636d inode_dio_done +EXPORT_SYMBOL vmlinux 0xf0943afb pci_clear_mwi +EXPORT_SYMBOL vmlinux 0xf09de776 get_random_int +EXPORT_SYMBOL vmlinux 0xf0a0abbc file_open_root +EXPORT_SYMBOL vmlinux 0xf0af0296 kiocb_set_cancel_fn +EXPORT_SYMBOL vmlinux 0xf0bdc5ff bitmap_start_sync +EXPORT_SYMBOL vmlinux 0xf0c6fc85 do_SAK +EXPORT_SYMBOL vmlinux 0xf0c8fadd genl_unregister_ops +EXPORT_SYMBOL vmlinux 0xf0c93730 free_mdio_bitbang +EXPORT_SYMBOL vmlinux 0xf0ce7d50 proc_dointvec_jiffies +EXPORT_SYMBOL vmlinux 0xf0d68ed6 clk_register_clkdevs +EXPORT_SYMBOL vmlinux 0xf0e5f5f2 unlock_rename +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 0xf1077604 pcibios_resource_to_bus +EXPORT_SYMBOL vmlinux 0xf10de535 ioread8 +EXPORT_SYMBOL vmlinux 0xf11543ff find_first_zero_bit +EXPORT_SYMBOL vmlinux 0xf1255fe6 skb_seq_read +EXPORT_SYMBOL vmlinux 0xf127a736 sg_alloc_table_from_pages +EXPORT_SYMBOL vmlinux 0xf12d331c lg_local_lock +EXPORT_SYMBOL vmlinux 0xf13c47d2 jbd2_journal_force_commit +EXPORT_SYMBOL vmlinux 0xf13feb57 radix_tree_next_chunk +EXPORT_SYMBOL vmlinux 0xf147dcb2 hdmi_spd_infoframe_init +EXPORT_SYMBOL vmlinux 0xf1594454 md_finish_reshape +EXPORT_SYMBOL vmlinux 0xf15c0398 clk_get +EXPORT_SYMBOL vmlinux 0xf18242e1 atomic64_set_cx8 +EXPORT_SYMBOL vmlinux 0xf195c682 fb_invert_cmaps +EXPORT_SYMBOL vmlinux 0xf1984066 pagevec_lookup_tag +EXPORT_SYMBOL vmlinux 0xf19ddd3b jbd2__journal_start +EXPORT_SYMBOL vmlinux 0xf1bda690 override_creds +EXPORT_SYMBOL vmlinux 0xf1c58d41 proc_mkdir +EXPORT_SYMBOL vmlinux 0xf1db1704 nla_memcpy +EXPORT_SYMBOL vmlinux 0xf1deabf2 div64_u64 +EXPORT_SYMBOL vmlinux 0xf1e03ffc ip6_frag_init +EXPORT_SYMBOL vmlinux 0xf1e98c74 avenrun +EXPORT_SYMBOL vmlinux 0xf1faac3a _raw_spin_lock_irq +EXPORT_SYMBOL vmlinux 0xf202c5cb radix_tree_insert +EXPORT_SYMBOL vmlinux 0xf20dabd8 free_irq +EXPORT_SYMBOL vmlinux 0xf2172b37 ip6_find_1stfragopt +EXPORT_SYMBOL vmlinux 0xf22f4f2f fb_get_mode +EXPORT_SYMBOL vmlinux 0xf2357254 acpi_evaluate_integer +EXPORT_SYMBOL vmlinux 0xf23fcb99 __kfifo_in +EXPORT_SYMBOL vmlinux 0xf24d9025 sock_edemux +EXPORT_SYMBOL vmlinux 0xf2678337 d_move +EXPORT_SYMBOL vmlinux 0xf28ed6e2 machine_to_phys_nr +EXPORT_SYMBOL vmlinux 0xf2997713 tty_termios_hw_change +EXPORT_SYMBOL vmlinux 0xf2a9542b tcf_hash_search +EXPORT_SYMBOL vmlinux 0xf2b1ac8e __getnstimeofday +EXPORT_SYMBOL vmlinux 0xf2bea5e2 skb_free_datagram +EXPORT_SYMBOL vmlinux 0xf2c3a674 kill_pid +EXPORT_SYMBOL vmlinux 0xf2d10c12 scsi_release_buffers +EXPORT_SYMBOL vmlinux 0xf2dd8d81 netdev_has_any_upper_dev +EXPORT_SYMBOL vmlinux 0xf2de88c7 inet_frag_maybe_warn_overflow +EXPORT_SYMBOL vmlinux 0xf3085c97 mmc_can_trim +EXPORT_SYMBOL vmlinux 0xf312cb9d ucs2_strsize +EXPORT_SYMBOL vmlinux 0xf313da4e sha_transform +EXPORT_SYMBOL vmlinux 0xf32055e7 dev_base_lock +EXPORT_SYMBOL vmlinux 0xf326e882 vm_insert_mixed +EXPORT_SYMBOL vmlinux 0xf3341268 __clear_user +EXPORT_SYMBOL vmlinux 0xf33c4933 filemap_fdatawrite_range +EXPORT_SYMBOL vmlinux 0xf3408898 cpufreq_get_policy +EXPORT_SYMBOL vmlinux 0xf3453525 input_grab_device +EXPORT_SYMBOL vmlinux 0xf346231f seq_list_start_head +EXPORT_SYMBOL vmlinux 0xf34702ea fsync_bdev +EXPORT_SYMBOL vmlinux 0xf353a698 register_module_notifier +EXPORT_SYMBOL vmlinux 0xf36c7f4a jbd2_journal_free_reserved +EXPORT_SYMBOL vmlinux 0xf37260ab _raw_read_unlock_bh +EXPORT_SYMBOL vmlinux 0xf377a79f skb_flow_dissect +EXPORT_SYMBOL vmlinux 0xf389fe60 __hw_addr_init +EXPORT_SYMBOL vmlinux 0xf38fd8a4 bio_integrity_trim +EXPORT_SYMBOL vmlinux 0xf3916987 global_cursor_default +EXPORT_SYMBOL vmlinux 0xf396cd21 tcp_parse_md5sig_option +EXPORT_SYMBOL vmlinux 0xf3986b06 acpi_os_map_generic_address +EXPORT_SYMBOL vmlinux 0xf3a8459d tcp_syn_ack_timeout +EXPORT_SYMBOL vmlinux 0xf3b17cdc set_page_dirty +EXPORT_SYMBOL vmlinux 0xf3bba00b tcp_timewait_state_process +EXPORT_SYMBOL vmlinux 0xf3bf0bce __bitmap_complement +EXPORT_SYMBOL vmlinux 0xf41c38ab register_framebuffer +EXPORT_SYMBOL vmlinux 0xf4237512 pci_request_regions +EXPORT_SYMBOL vmlinux 0xf43c4c7c devm_ioremap_resource +EXPORT_SYMBOL vmlinux 0xf441ac43 ioread8_rep +EXPORT_SYMBOL vmlinux 0xf445b9f9 wireless_spy_update +EXPORT_SYMBOL vmlinux 0xf45a4e52 posix_acl_chmod +EXPORT_SYMBOL vmlinux 0xf4657118 jbd2_journal_unlock_updates +EXPORT_SYMBOL vmlinux 0xf46c02de agp_bind_memory +EXPORT_SYMBOL vmlinux 0xf484356e tcp_check_req +EXPORT_SYMBOL vmlinux 0xf49efb57 bio_integrity_split +EXPORT_SYMBOL vmlinux 0xf4a5c213 avail_to_resrv_perfctr_nmi_bit +EXPORT_SYMBOL vmlinux 0xf4a90858 nf_log_set +EXPORT_SYMBOL vmlinux 0xf4b754fd acpi_resources_are_enforced +EXPORT_SYMBOL vmlinux 0xf4bdbeb9 __frontswap_invalidate_area +EXPORT_SYMBOL vmlinux 0xf4f14de6 rtnl_trylock +EXPORT_SYMBOL vmlinux 0xf4f19e51 downgrade_write +EXPORT_SYMBOL vmlinux 0xf4f6e279 pci_enable_device_mem +EXPORT_SYMBOL vmlinux 0xf4fb387f scsi_execute +EXPORT_SYMBOL vmlinux 0xf502d273 acpi_get_current_resources +EXPORT_SYMBOL vmlinux 0xf51ae235 touch_nmi_watchdog +EXPORT_SYMBOL vmlinux 0xf53014ba sk_reset_txq +EXPORT_SYMBOL vmlinux 0xf536d22e acpi_set_gpe_wake_mask +EXPORT_SYMBOL vmlinux 0xf53d4c26 qdisc_class_hash_destroy +EXPORT_SYMBOL vmlinux 0xf54210e8 blkdev_issue_zeroout +EXPORT_SYMBOL vmlinux 0xf557ca5c kobject_del +EXPORT_SYMBOL vmlinux 0xf5609e02 skb_push +EXPORT_SYMBOL vmlinux 0xf5768f31 eth_header_parse +EXPORT_SYMBOL vmlinux 0xf59277a7 cdrom_release +EXPORT_SYMBOL vmlinux 0xf593c0aa udp_lib_unhash +EXPORT_SYMBOL vmlinux 0xf5b10e67 acpi_install_global_event_handler +EXPORT_SYMBOL vmlinux 0xf5c05914 generic_segment_checks +EXPORT_SYMBOL vmlinux 0xf5eb86ea blk_verify_command +EXPORT_SYMBOL vmlinux 0xf5faed6a jbd2_journal_force_commit_nested +EXPORT_SYMBOL vmlinux 0xf610ee8b dquot_destroy +EXPORT_SYMBOL vmlinux 0xf618728c dma_common_mmap +EXPORT_SYMBOL vmlinux 0xf61fe646 dcb_getapp +EXPORT_SYMBOL vmlinux 0xf626e79e ata_link_printk +EXPORT_SYMBOL vmlinux 0xf63545a0 fget_light +EXPORT_SYMBOL vmlinux 0xf6388c56 sysctl_ip_default_ttl +EXPORT_SYMBOL vmlinux 0xf63cc34c input_close_device +EXPORT_SYMBOL vmlinux 0xf64ef3b4 tcp_sendmsg +EXPORT_SYMBOL vmlinux 0xf664ea59 pci_read_vpd +EXPORT_SYMBOL vmlinux 0xf68285c0 register_inetaddr_notifier +EXPORT_SYMBOL vmlinux 0xf68687be __sg_page_iter_start +EXPORT_SYMBOL vmlinux 0xf6a6379a ipv6_chk_custom_prefix +EXPORT_SYMBOL vmlinux 0xf6bb4729 color_table +EXPORT_SYMBOL vmlinux 0xf6bf0dfb log_start_commit +EXPORT_SYMBOL vmlinux 0xf6c00718 pnp_unregister_card_driver +EXPORT_SYMBOL vmlinux 0xf6ebc03b net_ratelimit +EXPORT_SYMBOL vmlinux 0xf71e2896 md_check_no_bitmap +EXPORT_SYMBOL vmlinux 0xf726d02f atomic64_add_unless_cx8 +EXPORT_SYMBOL vmlinux 0xf73d98c9 tty_do_resize +EXPORT_SYMBOL vmlinux 0xf745cb16 atomic64_sub_return_cx8 +EXPORT_SYMBOL vmlinux 0xf7584a9c find_font +EXPORT_SYMBOL vmlinux 0xf75bc434 files_lglock +EXPORT_SYMBOL vmlinux 0xf78d8b15 tty_flip_buffer_push +EXPORT_SYMBOL vmlinux 0xf7a96400 inode_owner_or_capable +EXPORT_SYMBOL vmlinux 0xf7e37635 __wait_on_bit +EXPORT_SYMBOL vmlinux 0xf7ecd899 uart_write_wakeup +EXPORT_SYMBOL vmlinux 0xf7f1706f simple_pin_fs +EXPORT_SYMBOL vmlinux 0xf7f1bbbd request_key +EXPORT_SYMBOL vmlinux 0xf7fadfb3 __sk_mem_schedule +EXPORT_SYMBOL vmlinux 0xf803fe39 bitmap_set +EXPORT_SYMBOL vmlinux 0xf80c7eaa bio_integrity_free +EXPORT_SYMBOL vmlinux 0xf811e69d scsi_eh_flush_done_q +EXPORT_SYMBOL vmlinux 0xf822cb6a d_splice_alias +EXPORT_SYMBOL vmlinux 0xf827cb83 free_reserved_area +EXPORT_SYMBOL vmlinux 0xf82abc1d isa_dma_bridge_buggy +EXPORT_SYMBOL vmlinux 0xf82e3d47 acpi_initialize_objects +EXPORT_SYMBOL vmlinux 0xf82ec573 rb_prev +EXPORT_SYMBOL vmlinux 0xf83fa9b7 neigh_for_each +EXPORT_SYMBOL vmlinux 0xf85bb2b8 ipv6_find_hdr +EXPORT_SYMBOL vmlinux 0xf85cba3d ata_dev_printk +EXPORT_SYMBOL vmlinux 0xf8783ac8 mmc_try_claim_host +EXPORT_SYMBOL vmlinux 0xf88e0ee2 acpi_get_table_header +EXPORT_SYMBOL vmlinux 0xf8986deb genphy_update_link +EXPORT_SYMBOL vmlinux 0xf8a01146 dev_addr_add +EXPORT_SYMBOL vmlinux 0xf8be6e6a unregister_console +EXPORT_SYMBOL vmlinux 0xf8dee034 scsicam_bios_param +EXPORT_SYMBOL vmlinux 0xf8fd4bd1 netlink_broadcast_filtered +EXPORT_SYMBOL vmlinux 0xf911ff63 tcf_em_register +EXPORT_SYMBOL vmlinux 0xf9163d2b blk_start_request +EXPORT_SYMBOL vmlinux 0xf92fc5de max8998_read_reg +EXPORT_SYMBOL vmlinux 0xf9348cbc xz_dec_run +EXPORT_SYMBOL vmlinux 0xf9386f1c dec_zone_page_state +EXPORT_SYMBOL vmlinux 0xf940a328 __next_cpu +EXPORT_SYMBOL vmlinux 0xf9461e5e gen_replace_estimator +EXPORT_SYMBOL vmlinux 0xf94edf06 dquot_commit_info +EXPORT_SYMBOL vmlinux 0xf97056c8 bio_integrity_add_page +EXPORT_SYMBOL vmlinux 0xf97456ea _raw_spin_unlock_irqrestore +EXPORT_SYMBOL vmlinux 0xf97f0807 block_write_end +EXPORT_SYMBOL vmlinux 0xf98bf075 sock_diag_put_filterinfo +EXPORT_SYMBOL vmlinux 0xf98c81fe dst_release +EXPORT_SYMBOL vmlinux 0xf99225cc d_lookup +EXPORT_SYMBOL vmlinux 0xf99d6bb5 dquot_quota_off +EXPORT_SYMBOL vmlinux 0xf9a482f9 msleep +EXPORT_SYMBOL vmlinux 0xf9d608a6 generic_read_dir +EXPORT_SYMBOL vmlinux 0xf9dbf6f8 ppp_register_compressor +EXPORT_SYMBOL vmlinux 0xf9e3f9fe neigh_app_ns +EXPORT_SYMBOL vmlinux 0xf9e73082 scnprintf +EXPORT_SYMBOL vmlinux 0xf9fdff3a __destroy_inode +EXPORT_SYMBOL vmlinux 0xfa0d9b95 vm_mmap +EXPORT_SYMBOL vmlinux 0xfa19f967 swiotlb_free_coherent +EXPORT_SYMBOL vmlinux 0xfa1cf11d tcp_v4_connect +EXPORT_SYMBOL vmlinux 0xfa2c4010 pci_assign_resource +EXPORT_SYMBOL vmlinux 0xfa30957c mempool_free +EXPORT_SYMBOL vmlinux 0xfa599bb2 netlink_register_notifier +EXPORT_SYMBOL vmlinux 0xfa5d9530 mount_subtree +EXPORT_SYMBOL vmlinux 0xfa774f26 _dev_info +EXPORT_SYMBOL vmlinux 0xfa7f3156 wl12xx_get_platform_data +EXPORT_SYMBOL vmlinux 0xfa98fb07 call_netdevice_notifiers_info +EXPORT_SYMBOL vmlinux 0xfabb505e __skb_checksum_complete +EXPORT_SYMBOL vmlinux 0xfabf77e8 set_bdi_congested +EXPORT_SYMBOL vmlinux 0xfac2def1 journal_create +EXPORT_SYMBOL vmlinux 0xfac8865f sysctl_wmem_max +EXPORT_SYMBOL vmlinux 0xfae67b1f cap_mmap_addr +EXPORT_SYMBOL vmlinux 0xfaf98462 bitrev32 +EXPORT_SYMBOL vmlinux 0xfb0443fb acpi_get_parent +EXPORT_SYMBOL vmlinux 0xfb20df3f scsi_execute_req_flags +EXPORT_SYMBOL vmlinux 0xfb519da5 journal_start +EXPORT_SYMBOL vmlinux 0xfb550f6a account_page_writeback +EXPORT_SYMBOL vmlinux 0xfb5f789a dma_release_declared_memory +EXPORT_SYMBOL vmlinux 0xfb6af58d recalc_sigpending +EXPORT_SYMBOL vmlinux 0xfb80c7a0 acpi_walk_namespace +EXPORT_SYMBOL vmlinux 0xfb839405 pskb_expand_head +EXPORT_SYMBOL vmlinux 0xfb86599f xfrm6_find_1stfragopt +EXPORT_SYMBOL vmlinux 0xfb94103e __clzdi2 +EXPORT_SYMBOL vmlinux 0xfbaaf01e console_lock +EXPORT_SYMBOL vmlinux 0xfbb3a67e scsi_is_sdev_device +EXPORT_SYMBOL vmlinux 0xfbb914e1 fb_set_cmap +EXPORT_SYMBOL vmlinux 0xfbc10526 ipv6_setsockopt +EXPORT_SYMBOL vmlinux 0xfbccfe7a pcie_capability_write_dword +EXPORT_SYMBOL vmlinux 0xfbe3698d pnp_disable_dev +EXPORT_SYMBOL vmlinux 0xfc02b7ad sysctl_tcp_wmem +EXPORT_SYMBOL vmlinux 0xfc268970 start_tty +EXPORT_SYMBOL vmlinux 0xfc279370 nf_unregister_hooks +EXPORT_SYMBOL vmlinux 0xfc39e32f ioport_unmap +EXPORT_SYMBOL vmlinux 0xfc4d9156 tcf_exts_dump_stats +EXPORT_SYMBOL vmlinux 0xfc55f283 ppp_register_channel +EXPORT_SYMBOL vmlinux 0xfc562165 acpi_run_osc +EXPORT_SYMBOL vmlinux 0xfc65459a kstrtoull_from_user +EXPORT_SYMBOL vmlinux 0xfc872fd1 get_ibs_caps +EXPORT_SYMBOL vmlinux 0xfcaa04a0 out_of_line_wait_on_bit_lock +EXPORT_SYMBOL vmlinux 0xfcac0d40 acpi_install_interface_handler +EXPORT_SYMBOL vmlinux 0xfcb50c76 uart_add_one_port +EXPORT_SYMBOL vmlinux 0xfcc2a43c utf32_to_utf8 +EXPORT_SYMBOL vmlinux 0xfce0fbab __free_pages +EXPORT_SYMBOL vmlinux 0xfcec0987 enable_irq +EXPORT_SYMBOL vmlinux 0xfcfa03ff fb_videomode_to_modelist +EXPORT_SYMBOL vmlinux 0xfd142da1 kset_unregister +EXPORT_SYMBOL vmlinux 0xfd29709f vc_resize +EXPORT_SYMBOL vmlinux 0xfd2ce9c0 vga_switcheroo_client_fb_set +EXPORT_SYMBOL vmlinux 0xfd406a58 journal_clear_err +EXPORT_SYMBOL vmlinux 0xfd4a2550 pcim_iounmap_regions +EXPORT_SYMBOL vmlinux 0xfd6293c2 boot_tvec_bases +EXPORT_SYMBOL vmlinux 0xfd675052 skb_copy_datagram_const_iovec +EXPORT_SYMBOL vmlinux 0xfd7d7713 acpi_exception +EXPORT_SYMBOL vmlinux 0xfd8c222d input_unregister_device +EXPORT_SYMBOL vmlinux 0xfd99623a ip_frag_ecn_table +EXPORT_SYMBOL vmlinux 0xfda0dbe8 ftrace_print_hex_seq +EXPORT_SYMBOL vmlinux 0xfda2a90f bio_integrity_get_tag +EXPORT_SYMBOL vmlinux 0xfdaa59c8 netpoll_print_options +EXPORT_SYMBOL vmlinux 0xfdb9b629 ioread32be +EXPORT_SYMBOL vmlinux 0xfdbe0288 pci_add_resource_offset +EXPORT_SYMBOL vmlinux 0xfdd3fb71 buffer_migrate_page +EXPORT_SYMBOL vmlinux 0xfdd42071 tty_port_raise_dtr_rts +EXPORT_SYMBOL vmlinux 0xfddfcd51 __tty_alloc_driver +EXPORT_SYMBOL vmlinux 0xfdee7d42 _raw_read_lock_bh +EXPORT_SYMBOL vmlinux 0xfdfc0b3b fiemap_fill_next_extent +EXPORT_SYMBOL vmlinux 0xfe029963 unregister_inetaddr_notifier +EXPORT_SYMBOL vmlinux 0xfe205688 dev_getbyhwaddr_rcu +EXPORT_SYMBOL vmlinux 0xfe3a7407 jbd2_journal_try_to_free_buffers +EXPORT_SYMBOL vmlinux 0xfe3cf3be unlink_framebuffer +EXPORT_SYMBOL vmlinux 0xfe3d46df inet6_add_protocol +EXPORT_SYMBOL vmlinux 0xfe4853fb pnp_stop_dev +EXPORT_SYMBOL vmlinux 0xfe517d46 xfrm_state_flush +EXPORT_SYMBOL vmlinux 0xfe5d4bb2 sys_tz +EXPORT_SYMBOL vmlinux 0xfe65325a bdi_destroy +EXPORT_SYMBOL vmlinux 0xfe6d6972 xfrm_state_delete_tunnel +EXPORT_SYMBOL vmlinux 0xfe774ed1 ip_mc_join_group +EXPORT_SYMBOL vmlinux 0xfe7c4287 nr_cpu_ids +EXPORT_SYMBOL vmlinux 0xfe87d42e input_register_handler +EXPORT_SYMBOL vmlinux 0xfe8d5a49 dev_addr_del +EXPORT_SYMBOL vmlinux 0xfe977d3c security_path_mknod +EXPORT_SYMBOL vmlinux 0xfeaec66f mntget +EXPORT_SYMBOL vmlinux 0xfedcdb60 seq_hlist_next_percpu +EXPORT_SYMBOL vmlinux 0xfedfd0b6 blk_get_queue +EXPORT_SYMBOL vmlinux 0xfef5ec9e vga_get +EXPORT_SYMBOL vmlinux 0xfef96e23 __scsi_print_command +EXPORT_SYMBOL vmlinux 0xff0da32b dm_get_mapinfo +EXPORT_SYMBOL vmlinux 0xff1e9dd8 seq_list_start +EXPORT_SYMBOL vmlinux 0xff2c8c7c i8042_remove_filter +EXPORT_SYMBOL vmlinux 0xff375755 xfrm_alloc_spi +EXPORT_SYMBOL vmlinux 0xff3d88f8 kblockd_schedule_delayed_work +EXPORT_SYMBOL vmlinux 0xff480992 dump_fpu +EXPORT_SYMBOL vmlinux 0xff4d10c2 misc_register +EXPORT_SYMBOL vmlinux 0xff626461 kfree_skb_list +EXPORT_SYMBOL vmlinux 0xff6878cf fb_default_cmap +EXPORT_SYMBOL vmlinux 0xff7559e4 ioport_resource +EXPORT_SYMBOL vmlinux 0xff821edc journal_ack_err +EXPORT_SYMBOL vmlinux 0xff83cf9a inet_put_port +EXPORT_SYMBOL vmlinux 0xff9ca065 fb_edid_to_monspecs +EXPORT_SYMBOL vmlinux 0xffc163f2 fd_install +EXPORT_SYMBOL vmlinux 0xffd5a395 default_wake_function +EXPORT_SYMBOL vmlinux 0xffdcf1cb set_nlink +EXPORT_SYMBOL vmlinux 0xffe5095d groups_free +EXPORT_SYMBOL vmlinux 0xfff5b473 __bread +EXPORT_SYMBOL_GPL arch/x86/crypto/ablk_helper 0x145b09ea ablk_exit +EXPORT_SYMBOL_GPL arch/x86/crypto/ablk_helper 0x22567747 ablk_set_key +EXPORT_SYMBOL_GPL arch/x86/crypto/ablk_helper 0x55dadea8 __ablk_encrypt +EXPORT_SYMBOL_GPL arch/x86/crypto/ablk_helper 0x618403d8 ablk_init_common +EXPORT_SYMBOL_GPL arch/x86/crypto/ablk_helper 0x67851aa3 ablk_decrypt +EXPORT_SYMBOL_GPL arch/x86/crypto/ablk_helper 0xa3c9f92f ablk_encrypt +EXPORT_SYMBOL_GPL arch/x86/crypto/ablk_helper 0xa5d43bcd ablk_init +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/crypto/glue_helper 0x17e99c9e glue_xts_crypt_128bit +EXPORT_SYMBOL_GPL arch/x86/crypto/glue_helper 0x440a2090 glue_ecb_crypt_128bit +EXPORT_SYMBOL_GPL arch/x86/crypto/glue_helper 0x46862241 glue_ctr_crypt_128bit +EXPORT_SYMBOL_GPL arch/x86/crypto/glue_helper 0x8f02ac4d glue_xts_crypt_128bit_one +EXPORT_SYMBOL_GPL arch/x86/crypto/glue_helper 0x91e57409 glue_cbc_encrypt_128bit +EXPORT_SYMBOL_GPL arch/x86/crypto/glue_helper 0x94cf553f glue_cbc_decrypt_128bit +EXPORT_SYMBOL_GPL arch/x86/crypto/glue_helper 0xb2ba3805 glue_ctr_crypt_final_128bit +EXPORT_SYMBOL_GPL arch/x86/crypto/twofish-i586 0x28afd262 twofish_enc_blk +EXPORT_SYMBOL_GPL arch/x86/crypto/twofish-i586 0x6f068d90 twofish_dec_blk +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 0x02ab2070 kvm_lapic_set_eoi +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x0ba5fcc9 kvm_mmu_get_spte_hierarchy +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x0df4ddb7 kvm_require_cpl +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x0f6f13b6 kvm_set_xcr +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x119b814a kvm_requeue_exception +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x13291b73 kvm_resched +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x14a77e29 kvm_inject_realmode_interrupt +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x16365c5f kvm_set_rflags +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x18e257ab __tracepoint_kvm_nested_vmexit +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x1a4342a5 __tracepoint_kvm_invlpga +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x1cfe78d1 kvm_release_pfn_dirty +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x1d180991 gfn_to_page_many_atomic +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x1fb72798 kvm_queue_exception +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x20de5193 kvm_disable_largepages +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x2260f7ae kvm_is_visible_gfn +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x2433d6fd __tracepoint_kvm_exit +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x255ff0b3 kvm_get_rflags +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x27046576 kvm_exit +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x27ad528b kvm_vcpu_uninit +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x2f636c31 kvm_spurious_fault +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x30482683 kvm_get_kvm +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x31706d89 kvm_cpuid +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x317f9e6b kvm_enable_efer_bits +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x32248d74 kvm_set_dr +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x32746abd gfn_to_pfn_async +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x330ab9e5 kvm_read_guest_cached +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x34266b78 kvm_init +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x34b10542 kvm_write_guest_page +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x3de08404 kvm_set_shared_msr +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x3ee59a92 __tracepoint_kvm_skinit +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x485cd7f6 kvm_rebooting +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x49b2f111 kvm_get_cr8 +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x4ae4f496 kvm_write_tsc +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x4d99866c kvm_init_shadow_mmu +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x4ed4805d kvm_requeue_exception_e +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x4eeb6100 gfn_to_pfn +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x4f8be1d9 kvm_set_cr8 +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x504c9cf8 kvm_clear_guest +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x5096b3f4 gfn_to_pfn_prot +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x52e57d6b kvm_task_switch +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x553fd1d6 kvm_apic_update_irr +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x57179753 kvm_is_linear_rip +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x573f61be kvm_vcpu_on_spin +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x5a575a7e kvm_release_page_clean +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x5b89daff kvm_put_kvm +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x5e25f48f kvm_vcpu_kick +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x5f5a0f68 kvm_read_guest +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x600418d4 kvm_read_guest_virt +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x602a915f kvm_mmu_page_fault +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x617d7d4f kvm_mmu_unprotect_page_virt +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x630d5fbb gfn_to_page +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x63c8e567 kvm_inject_pending_timer_irqs +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x6433afc0 kvm_get_msr_common +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x64b9f2be kvm_get_dr +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x669da1fd kvm_set_pfn_dirty +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x677e4118 kvm_inject_nmi +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x69c147fb kvm_vcpu_cache +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x69ffa79a kvm_gfn_to_hva_cache_init +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x6ca19e8a gfn_to_hva +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x6fbff697 kvm_set_msr_common +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x75e40bf8 kvm_inject_page_fault +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x7a8cf62a kvm_write_guest_virt_system +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x7aa64803 kvm_release_pfn_clean +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x7aba9514 kvm_irq_has_notifier +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x8086db6f kvm_clear_guest_page +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x831327da kvm_max_guest_tsc_khz +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x84ceb28c __tracepoint_kvm_msr +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x8779c568 kvm_vcpu_init +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x896e4ea8 kvm_mmu_unload +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x8985264b kvm_get_guest_memory_type +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x8a858aee handle_mmio_page_fault_common +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x8bb03e6e __tracepoint_kvm_write_tsc_offset +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x8ce4f3ab kvm_enable_tdp +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x8d2f754e kvm_emulate_hypercall +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 0x94b687d1 kvm_read_guest_page_mmu +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x9653603e fx_init +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x9a216313 kvm_define_shared_msr +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x9bf0a69d kvm_valid_efer +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x9c1e4b02 kvm_emulate_cpuid +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x9dc3673e load_pdptrs +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x9de0dd19 kvm_cpu_has_interrupt +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xa0ec3a0a gfn_to_hva_memslot +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xa248dcd5 kvm_emulate_halt +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xa7fa62cc __kvm_set_memory_region +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xa8529239 kvm_vcpu_yield_to +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xa897ded0 kvm_apic_write_nodecode +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xaaa35f01 kvm_set_cr3 +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xaac7c868 __tracepoint_kvm_nested_intr_vmexit +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xab75c286 kvm_lmsw +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xacf7f97c gfn_to_pfn_memslot_atomic +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xafb11b8d kvm_mmu_reset_context +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xb0b4eb8e kvm_apic_set_eoi_accelerated +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xb1ba535b kvm_rdpmc +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xb284eed4 __tracepoint_kvm_nested_vmexit_inject +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xb2a65cca __tracepoint_kvm_page_fault +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xb32534d0 kvm_emulate_wbinvd +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xb410cf40 kvm_set_cr4 +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xb9111be4 kvm_find_cpuid_entry +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xba9ed435 kvm_mmu_set_mmio_spte_mask +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xbad67fff kvm_get_cs_db_l_bits +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xbb1f3f95 kvm_read_guest_page +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xbc2b538e __tracepoint_kvm_nested_vmrun +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xbf05ab76 __tracepoint_kvm_inj_virq +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xc856959e kvm_complete_insn_gp +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xcaea02ed kvm_set_memory_region +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xcb67ce10 __tracepoint_kvm_nested_intercepts +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xcc410fc0 kvm_set_page_dirty +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xcea5dceb kvm_set_apic_base +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xd0459e67 kvm_has_tsc_control +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xd0b2727a kvm_mmu_set_mask_ptes +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xd12ec932 kvm_fast_pio_out +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xd96864bf x86_emulate_instruction +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xd9974178 kvm_mmu_invlpg +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xdc44d8e9 kvm_release_page_dirty +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xe0679d20 kvm_get_apic_base +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xe1c96c44 kvm_queue_exception_e +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xe299d537 kvm_set_cr0 +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xe31e90e8 kvm_write_guest_cached +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xe5590328 gfn_to_pfn_atomic +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xe9790e86 __tracepoint_kvm_cr +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xe9cfba1b kvm_after_handle_nmi +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xebdf1f92 kvm_mmu_unprotect_page +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xf0cd8e99 gfn_to_memslot +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xf3cf8247 kvm_x86_ops +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xf8d99f95 kvm_mmu_load +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xfc17e4a3 kvm_before_handle_nmi +EXPORT_SYMBOL_GPL crypto/af_alg 0x1ff09be2 af_alg_free_sg +EXPORT_SYMBOL_GPL crypto/af_alg 0x2f77ee16 af_alg_release +EXPORT_SYMBOL_GPL crypto/af_alg 0x67f5fc95 af_alg_accept +EXPORT_SYMBOL_GPL crypto/af_alg 0x749be6f9 af_alg_register_type +EXPORT_SYMBOL_GPL crypto/af_alg 0x7e7cde9c af_alg_wait_for_completion +EXPORT_SYMBOL_GPL crypto/af_alg 0x93957c0c af_alg_cmsg_send +EXPORT_SYMBOL_GPL crypto/af_alg 0xc0c2b79f af_alg_unregister_type +EXPORT_SYMBOL_GPL crypto/af_alg 0xc67ee3f6 af_alg_complete +EXPORT_SYMBOL_GPL crypto/af_alg 0xd8e46dcf af_alg_make_sg +EXPORT_SYMBOL_GPL crypto/async_tx/async_memcpy 0x6d365be1 async_memcpy +EXPORT_SYMBOL_GPL crypto/async_tx/async_pq 0x69bf6695 async_syndrome_val +EXPORT_SYMBOL_GPL crypto/async_tx/async_pq 0x7001e74a async_gen_syndrome +EXPORT_SYMBOL_GPL crypto/async_tx/async_raid6_recov 0x3eeb8569 async_raid6_2data_recov +EXPORT_SYMBOL_GPL crypto/async_tx/async_raid6_recov 0x687d0929 async_raid6_datap_recov +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0x65dff33c async_trigger_callback +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0x93addb16 async_tx_submit +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0xc80e333a async_tx_quiesce +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0xfc3832f9 __async_tx_find_channel +EXPORT_SYMBOL_GPL crypto/async_tx/async_xor 0xbe107a24 async_xor_val +EXPORT_SYMBOL_GPL crypto/async_tx/async_xor 0xc272e745 async_xor +EXPORT_SYMBOL_GPL crypto/blowfish_common 0xf43cd574 blowfish_setkey +EXPORT_SYMBOL_GPL crypto/cast5_generic 0x27278ca9 __cast5_encrypt +EXPORT_SYMBOL_GPL crypto/cast5_generic 0x3f3615eb cast5_setkey +EXPORT_SYMBOL_GPL crypto/cast5_generic 0x4a2a3ca6 __cast5_decrypt +EXPORT_SYMBOL_GPL crypto/cast6_generic 0x1291971c __cast6_setkey +EXPORT_SYMBOL_GPL crypto/cast6_generic 0x1e2c961f __cast6_decrypt +EXPORT_SYMBOL_GPL crypto/cast6_generic 0x8f04034a __cast6_encrypt +EXPORT_SYMBOL_GPL crypto/cast6_generic 0xb1137b47 cast6_setkey +EXPORT_SYMBOL_GPL crypto/cast_common 0x08aa6fb7 cast_s1 +EXPORT_SYMBOL_GPL crypto/cast_common 0x0c5fbf8a cast_s3 +EXPORT_SYMBOL_GPL crypto/cast_common 0xe39dd4b4 cast_s2 +EXPORT_SYMBOL_GPL crypto/cast_common 0xee83a4f3 cast_s4 +EXPORT_SYMBOL_GPL crypto/cryptd 0x01118541 cryptd_free_ablkcipher +EXPORT_SYMBOL_GPL crypto/cryptd 0x08f24d44 cryptd_alloc_ablkcipher +EXPORT_SYMBOL_GPL crypto/cryptd 0x508a4e91 cryptd_free_ahash +EXPORT_SYMBOL_GPL crypto/cryptd 0x64e2a637 cryptd_alloc_ahash +EXPORT_SYMBOL_GPL crypto/cryptd 0x713ab491 cryptd_ahash_child +EXPORT_SYMBOL_GPL crypto/cryptd 0xad10b295 cryptd_aead_child +EXPORT_SYMBOL_GPL crypto/cryptd 0xb7c87dbd cryptd_ablkcipher_child +EXPORT_SYMBOL_GPL crypto/cryptd 0xba1555da cryptd_shash_desc +EXPORT_SYMBOL_GPL crypto/cryptd 0xee83143b cryptd_free_aead +EXPORT_SYMBOL_GPL crypto/cryptd 0xf1a49c1b cryptd_alloc_aead +EXPORT_SYMBOL_GPL crypto/des_generic 0xcfd9a2c0 des_ekey +EXPORT_SYMBOL_GPL crypto/lrw 0x3864eb66 lrw_free_table +EXPORT_SYMBOL_GPL crypto/lrw 0xc850595c lrw_crypt +EXPORT_SYMBOL_GPL crypto/lrw 0xcd074900 lrw_init_table +EXPORT_SYMBOL_GPL crypto/serpent_generic 0x418d8e27 serpent_setkey +EXPORT_SYMBOL_GPL crypto/serpent_generic 0x5ddb33e9 __serpent_encrypt +EXPORT_SYMBOL_GPL crypto/serpent_generic 0x77b39cb4 __serpent_setkey +EXPORT_SYMBOL_GPL crypto/serpent_generic 0x8a1a99ad __serpent_decrypt +EXPORT_SYMBOL_GPL crypto/twofish_common 0x6c3229bb __twofish_setkey +EXPORT_SYMBOL_GPL crypto/twofish_common 0xa818f7aa twofish_setkey +EXPORT_SYMBOL_GPL crypto/xts 0x930618d6 xts_crypt +EXPORT_SYMBOL_GPL drivers/acpi/sbshc 0x1c8984c7 acpi_smbus_unregister_callback +EXPORT_SYMBOL_GPL drivers/acpi/sbshc 0x87bd07bd acpi_smbus_register_callback +EXPORT_SYMBOL_GPL drivers/acpi/sbshc 0xb9a141b0 acpi_smbus_read +EXPORT_SYMBOL_GPL drivers/acpi/sbshc 0xe1372311 acpi_smbus_write +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x03c1210a ahci_start_engine +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x11145605 ahci_pmp_retry_srst_ops +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x24535a58 ahci_set_em_messages +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x2bb8469c ahci_stop_engine +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x3c2e05eb ahci_print_info +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x41491e62 ahci_dev_classify +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x5440c6d1 ahci_fill_cmd_slot +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x5eacba1f ahci_interrupt +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x67753aac ahci_sdev_attrs +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x694f923e ahci_thread_fn +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x6c5f9aad ahci_kick_engine +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x6caeae78 ahci_check_ready +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x6e05c4e7 ahci_hw_interrupt +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x7038b201 ahci_shost_attrs +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x724b4eae ahci_reset_controller +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x94f5e4e6 ahci_init_controller +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xa44c87cc ahci_port_resume +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xd22df378 ahci_reset_em +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xe85b0baf ahci_save_initial_config +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 0xf8620032 ahci_ops +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xfc47873f ahci_do_softreset +EXPORT_SYMBOL_GPL drivers/ata/pata_platform 0x741814fe __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/bcma/bcma 0x062b7afc bcma_pmu_get_bus_clock +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x2851d985 bcma_chipco_chipctl_maskset +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x2eb2cbbb bcma_find_core +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x32b1d215 bcma_core_pll_ctl +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x343d7bb2 bcma_core_is_enabled +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x392b3a01 bcma_core_pci_extend_L1timer +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x6a381568 bcma_chipco_gpio_outen +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x6d0e339a bcma_pmu_spuravoid_pllupdate +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x8267ac7d bcma_core_enable +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x850298e2 __bcma_driver_register +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x8c30dc55 bcma_chipco_gpio_control +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x99e468df bcma_core_disable +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x9bc4c9e8 bcma_chipco_pll_read +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xa58ce204 bcma_chipco_regctl_maskset +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xb7687753 bcma_core_set_clockmode +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xcb406162 bcma_driver_unregister +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xd7a9ca7b bcma_chipco_pll_write +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xe089023d bcma_chipco_pll_maskset +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xe09ca830 bcma_core_pci_irq_ctl +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xf1a4b295 bcma_chipco_gpio_out +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xfcb4d032 bcma_chipco_get_alp_clock +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x10cd4493 btmrvl_interrupt +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x1d7a596b btmrvl_register_hdev +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x6901c1de btmrvl_enable_hs +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x6fc10a48 btmrvl_process_event +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x882768da btmrvl_send_module_cfg_cmd +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x8aa93615 btmrvl_send_hscfg_cmd +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xb3d20642 btmrvl_add_card +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xe0f8fbef btmrvl_enable_ps +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xe234acd5 btmrvl_remove_card +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xf0140289 btmrvl_check_evtpkt +EXPORT_SYMBOL_GPL drivers/char/scx200_gpio 0xbb57865b scx200_gpio_ops +EXPORT_SYMBOL_GPL drivers/dca/dca 0x01a33ab9 dca_unregister_notify +EXPORT_SYMBOL_GPL drivers/dca/dca 0x2952f255 dca_add_requester +EXPORT_SYMBOL_GPL drivers/dca/dca 0x31a2c8df dca_get_tag +EXPORT_SYMBOL_GPL drivers/dca/dca 0x58abeefa alloc_dca_provider +EXPORT_SYMBOL_GPL drivers/dca/dca 0x7a4a2f49 unregister_dca_provider +EXPORT_SYMBOL_GPL drivers/dca/dca 0xa2b1baed free_dca_provider +EXPORT_SYMBOL_GPL drivers/dca/dca 0xac34ecec dca_register_notify +EXPORT_SYMBOL_GPL drivers/dca/dca 0xc2763cbc dca3_get_tag +EXPORT_SYMBOL_GPL drivers/dca/dca 0xc608ecbc register_dca_provider +EXPORT_SYMBOL_GPL drivers/dca/dca 0xd854a561 dca_remove_requester +EXPORT_SYMBOL_GPL drivers/dma/dw/dw_dmac_core 0x2c57ff04 dw_dma_remove +EXPORT_SYMBOL_GPL drivers/dma/dw/dw_dmac_core 0x9ff84573 dw_dma_shutdown +EXPORT_SYMBOL_GPL drivers/dma/dw/dw_dmac_core 0xa1c0d418 dw_dma_resume +EXPORT_SYMBOL_GPL drivers/dma/dw/dw_dmac_core 0xd6971bd9 dw_dma_suspend +EXPORT_SYMBOL_GPL drivers/dma/dw/dw_dmac_core 0xe8775e92 dw_dma_probe +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x0acaffa7 edac_pci_create_generic_ctl +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x0c32ff8a edac_pci_alloc_index +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x264de65d edac_pci_release_generic_ctl +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x2f1ceff2 edac_pci_free_ctl_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x33a898c5 edac_pci_handle_pe +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x3eb8e754 edac_pci_alloc_ctl_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x4fd51585 edac_pci_handle_npe +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x5d4a3b82 edac_pci_add_device +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x5e8dac1e edac_device_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 0x817387f4 edac_device_handle_ue +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x81c60f99 edac_mc_find_csrow_by_page +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x89d21760 edac_device_alloc_ctl_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x8d5dd1b7 edac_device_add_device +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xa95e0bd3 edac_device_free_ctl_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xacb37057 edac_pci_del_device +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xb16e8af8 edac_mc_handle_error +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xc0dcb59e edac_layer_name +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xc2be77dd edac_mc_del_mc +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xc62a2002 edac_raw_mc_handle_error +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xc8b207d0 find_mci_by_dev +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xcd6f4a4d edac_pci_reset_delay_period +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xf8c28da3 edac_mc_add_mc +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xf91bd010 edac_mc_free +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xfa52877f edac_mc_alloc +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xfd963a18 edac_device_handle_ce +EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0x14878009 amd_report_gart_errors +EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0x1d34e996 pp_msgs +EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0x21626132 amd_register_ecc_decoder +EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0x737912b3 amd_unregister_ecc_decoder +EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0xb30b7e56 amd_decode_mce +EXPORT_SYMBOL_GPL drivers/firewire/firewire-core 0xf4ade51f fw_card_release +EXPORT_SYMBOL_GPL drivers/gpio/gpio-cs5535 0x013fbdac cs5535_gpio_set +EXPORT_SYMBOL_GPL drivers/gpio/gpio-cs5535 0x93f8fe67 cs5535_gpio_set_irq +EXPORT_SYMBOL_GPL drivers/gpio/gpio-cs5535 0xc0bb404a cs5535_gpio_setup_event +EXPORT_SYMBOL_GPL drivers/gpio/gpio-cs5535 0xd3bd9300 cs5535_gpio_isset +EXPORT_SYMBOL_GPL drivers/gpio/gpio-cs5535 0xe07c0954 cs5535_gpio_clear +EXPORT_SYMBOL_GPL drivers/gpio/gpio-generic 0x2631489b bgpio_remove +EXPORT_SYMBOL_GPL drivers/gpio/gpio-generic 0x855f43f9 bgpio_init +EXPORT_SYMBOL_GPL drivers/gpio/gpio-max730x 0x3f0a6340 __max730x_probe +EXPORT_SYMBOL_GPL drivers/gpio/gpio-max730x 0xda78101c __max730x_remove +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x131cb8ce drm_vm_open_locked +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x63713b8d drm_class_device_register +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0xb7a61a88 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 0x2b2c59ae i915_release_power_well +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 0x96108893 i915_request_power_well +EXPORT_SYMBOL_GPL drivers/gpu/drm/i915/i915 0xe7237b0b i915_gpu_turbo_disable +EXPORT_SYMBOL_GPL drivers/gpu/drm/ttm/ttm 0x0db7fb26 ttm_dma_unpopulate +EXPORT_SYMBOL_GPL drivers/gpu/drm/ttm/ttm 0x7b42c125 ttm_dma_page_alloc_debugfs +EXPORT_SYMBOL_GPL drivers/gpu/drm/ttm/ttm 0x939f30dc ttm_dma_populate +EXPORT_SYMBOL_GPL drivers/hid/hid 0x05495392 hid_debug +EXPORT_SYMBOL_GPL drivers/hid/hid 0x0603a828 hid_unregister_driver +EXPORT_SYMBOL_GPL drivers/hid/hid 0x070debc3 hid_check_keys_pressed +EXPORT_SYMBOL_GPL drivers/hid/hid 0x08e4820e hidinput_calc_abs_res +EXPORT_SYMBOL_GPL drivers/hid/hid 0x0aad67cd hid_output_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0x0be7bd22 hid_register_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0x0e16c467 hid_ignore +EXPORT_SYMBOL_GPL drivers/hid/hid 0x187c5b59 hid_add_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0x1c25bd7f hidraw_disconnect +EXPORT_SYMBOL_GPL drivers/hid/hid 0x1fb1a954 __hid_register_driver +EXPORT_SYMBOL_GPL drivers/hid/hid 0x24204e11 hid_report_raw_event +EXPORT_SYMBOL_GPL drivers/hid/hid 0x25b0d04f hidinput_get_led_field +EXPORT_SYMBOL_GPL drivers/hid/hid 0x283fa060 hid_allocate_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0x286d3863 hid_validate_values +EXPORT_SYMBOL_GPL drivers/hid/hid 0x3357c54f hid_dump_field +EXPORT_SYMBOL_GPL drivers/hid/hid 0x35d60ae5 hid_input_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0x3be84f9a hid_resolv_usage +EXPORT_SYMBOL_GPL drivers/hid/hid 0x3fb188d7 hidraw_report_event +EXPORT_SYMBOL_GPL drivers/hid/hid 0x485f7af5 hid_disconnect +EXPORT_SYMBOL_GPL drivers/hid/hid 0x4906a967 hid_snto32 +EXPORT_SYMBOL_GPL drivers/hid/hid 0x5c73f97d hid_set_field +EXPORT_SYMBOL_GPL drivers/hid/hid 0x65063fa3 hid_dump_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0x6661aa58 hidinput_find_field +EXPORT_SYMBOL_GPL drivers/hid/hid 0x6a6fe98d hidraw_connect +EXPORT_SYMBOL_GPL drivers/hid/hid 0x6c783755 hidinput_count_leds +EXPORT_SYMBOL_GPL drivers/hid/hid 0x6dd35078 hid_parse_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0x7fa526a3 hid_open_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0x851b201d hid_dump_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0xbc0433ea hidinput_report_event +EXPORT_SYMBOL_GPL drivers/hid/hid 0xc9013277 hid_dump_input +EXPORT_SYMBOL_GPL drivers/hid/hid 0xd3e0e57c hid_connect +EXPORT_SYMBOL_GPL drivers/hid/hid 0xdac4e452 hidinput_disconnect +EXPORT_SYMBOL_GPL drivers/hid/hid 0xddebdefe hidinput_connect +EXPORT_SYMBOL_GPL drivers/hid/hid 0xf1afe93c hid_debug_event +EXPORT_SYMBOL_GPL drivers/hid/hid 0xf4861597 hid_alloc_report_buf +EXPORT_SYMBOL_GPL drivers/hid/hid 0xfbc74440 hid_destroy_device +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat 0x2f622ea1 roccat_disconnect +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat 0x6a1e73b3 roccat_connect +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat 0x8c4181ec roccat_report_event +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat-common 0x22fd0841 roccat_common2_receive +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat-common 0x3629755d roccat_common2_send_with_status +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat-common 0xffd0b018 roccat_common2_send +EXPORT_SYMBOL_GPL drivers/hid/hid-sensor-hub 0x28a00254 sensor_hub_set_feature +EXPORT_SYMBOL_GPL drivers/hid/hid-sensor-hub 0x3f15975e sensor_hub_input_attr_get_raw_value +EXPORT_SYMBOL_GPL drivers/hid/hid-sensor-hub 0x465d4822 sensor_hub_get_feature +EXPORT_SYMBOL_GPL drivers/hid/hid-sensor-hub 0x5be4edcc sensor_hub_register_callback +EXPORT_SYMBOL_GPL drivers/hid/hid-sensor-hub 0x635334f3 sensor_hub_remove_callback +EXPORT_SYMBOL_GPL drivers/hid/hid-sensor-hub 0xc9ff6f87 sensor_hub_input_get_attribute_info +EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0x01fd453e usbhid_lookup_quirk +EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0x2f2521f0 hiddev_hid_event +EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0x9c402915 usbhid_set_leds +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x03b1f4b9 hsi_register_controller +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x640ed164 hsi_alloc_controller +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x7b87f291 hsi_register_port_event +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x7fcf2280 hsi_alloc_msg +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0xac8328fb hsi_unregister_port_event +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0xba372380 hsi_event +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0xd80b6bcf hsi_register_client_driver +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0xdf2118ab hsi_release_port +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0xf4e1fa99 hsi_free_msg +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0xf547c995 hsi_unregister_controller +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0xfb729969 hsi_claim_port +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0xfcdeb277 hsi_put_controller +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0xff84c790 hsi_async +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0x08ef5079 __vmbus_driver_register +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0x0b51f62d vmbus_establish_gpadl +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0x137335a7 vmbus_recvpacket_raw +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0x1ef6c84c vmbus_are_subchannels_present +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0x20dd2fb4 vmbus_close +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0x358fafa5 vmbus_prep_negotiate_resp +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0x46a417ca vmbus_proto_version +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0x708a4665 vmbus_sendpacket_multipagebuffer +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0xa4dcbc25 vmbus_get_outgoing_channel +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0xd1b1d4bc vmbus_teardown_gpadl +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0xd57a32fd vmbus_driver_unregister +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0xdb40e8c0 vmbus_open +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0xe0a3e54c vmbus_sendpacket_pagebuffer +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0xf466ccf9 vmbus_set_sc_create_callback +EXPORT_SYMBOL_GPL drivers/hwmon/adt7x10 0x542d9423 adt7x10_dev_pm_ops +EXPORT_SYMBOL_GPL drivers/hwmon/adt7x10 0x59ec44ca adt7x10_remove +EXPORT_SYMBOL_GPL drivers/hwmon/adt7x10 0xe53030a1 adt7x10_probe +EXPORT_SYMBOL_GPL drivers/hwmon/pmbus/pmbus_core 0x01e5a459 pmbus_write_word_data +EXPORT_SYMBOL_GPL drivers/hwmon/pmbus/pmbus_core 0x0877a0eb pmbus_check_word_register +EXPORT_SYMBOL_GPL drivers/hwmon/pmbus/pmbus_core 0x0e308de9 pmbus_read_word_data +EXPORT_SYMBOL_GPL drivers/hwmon/pmbus/pmbus_core 0x464e88b1 pmbus_set_page +EXPORT_SYMBOL_GPL drivers/hwmon/pmbus/pmbus_core 0x66741cd8 pmbus_clear_faults +EXPORT_SYMBOL_GPL drivers/hwmon/pmbus/pmbus_core 0x6c165c6d pmbus_clear_cache +EXPORT_SYMBOL_GPL drivers/hwmon/pmbus/pmbus_core 0x72b8e7d3 pmbus_read_byte_data +EXPORT_SYMBOL_GPL drivers/hwmon/pmbus/pmbus_core 0x90021a2b pmbus_write_byte +EXPORT_SYMBOL_GPL drivers/hwmon/pmbus/pmbus_core 0xaf910170 pmbus_do_probe +EXPORT_SYMBOL_GPL drivers/hwmon/pmbus/pmbus_core 0xeaf06592 pmbus_do_remove +EXPORT_SYMBOL_GPL drivers/hwmon/pmbus/pmbus_core 0xeb4625fd pmbus_check_byte_register +EXPORT_SYMBOL_GPL drivers/hwmon/pmbus/pmbus_core 0xf7e1e138 pmbus_get_driver_info +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0x309da30b i2c_dw_xfer +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0x31cdf845 i2c_dw_func +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0x5bb1170b i2c_dw_isr +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0x6bfab036 i2c_dw_read_comp_param +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0x7d210987 i2c_dw_enable +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0x881130c9 i2c_dw_is_enabled +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0x8e85d117 i2c_dw_clear_int +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0xa00b3f53 i2c_dw_disable +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0xd92603e5 i2c_dw_init +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0xe30854e9 i2c_dw_disable_int +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-nforce2 0xaa5406c5 nforce2_smbus +EXPORT_SYMBOL_GPL drivers/i2c/i2c-mux 0x30b3beaa i2c_del_mux_adapter +EXPORT_SYMBOL_GPL drivers/i2c/i2c-mux 0xd036af45 i2c_add_mux_adapter +EXPORT_SYMBOL_GPL drivers/i2c/i2c-smbus 0x40fd82df i2c_setup_smbus_alert +EXPORT_SYMBOL_GPL drivers/i2c/i2c-smbus 0x5f1f18dc i2c_handle_smbus_alert +EXPORT_SYMBOL_GPL drivers/iio/adc/ad_sigma_delta 0x05abaed7 ad_sd_validate_trigger +EXPORT_SYMBOL_GPL drivers/iio/adc/ad_sigma_delta 0x30d28f49 ad_sd_set_comm +EXPORT_SYMBOL_GPL drivers/iio/adc/ad_sigma_delta 0x7f52717d ad_sd_setup_buffer_and_trigger +EXPORT_SYMBOL_GPL drivers/iio/adc/ad_sigma_delta 0xa2abd9eb ad_sd_write_reg +EXPORT_SYMBOL_GPL drivers/iio/adc/ad_sigma_delta 0xa4d963c9 ad_sd_init +EXPORT_SYMBOL_GPL drivers/iio/adc/ad_sigma_delta 0xa89b3173 ad_sd_calibrate_all +EXPORT_SYMBOL_GPL drivers/iio/adc/ad_sigma_delta 0xc593dea2 ad_sd_read_reg +EXPORT_SYMBOL_GPL drivers/iio/adc/ad_sigma_delta 0xd67e8f5d ad_sd_cleanup_buffer_and_trigger +EXPORT_SYMBOL_GPL drivers/iio/adc/ad_sigma_delta 0xe3752277 ad_sigma_delta_single_conversion +EXPORT_SYMBOL_GPL drivers/iio/imu/adis_lib 0x36d05feb adis_init +EXPORT_SYMBOL_GPL drivers/iio/imu/adis_lib 0x5a07853d adis_single_conversion +EXPORT_SYMBOL_GPL drivers/iio/imu/adis_lib 0x619e5d0a adis_update_scan_mode +EXPORT_SYMBOL_GPL drivers/iio/imu/adis_lib 0x824dffea adis_remove_trigger +EXPORT_SYMBOL_GPL drivers/iio/imu/adis_lib 0x82a13077 adis_cleanup_buffer_and_trigger +EXPORT_SYMBOL_GPL drivers/iio/imu/adis_lib 0x886b816f adis_read_reg +EXPORT_SYMBOL_GPL drivers/iio/imu/adis_lib 0xa4ee9aba adis_initial_startup +EXPORT_SYMBOL_GPL drivers/iio/imu/adis_lib 0xb1c8c115 adis_probe_trigger +EXPORT_SYMBOL_GPL drivers/iio/imu/adis_lib 0xb5fe62f9 adis_check_status +EXPORT_SYMBOL_GPL drivers/iio/imu/adis_lib 0xcbbd6f94 adis_write_reg +EXPORT_SYMBOL_GPL drivers/iio/imu/adis_lib 0xd9601308 adis_reset +EXPORT_SYMBOL_GPL drivers/iio/imu/adis_lib 0xfde3274c adis_setup_buffer_and_trigger +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x09ea19b8 iio_validate_scan_mask_onehot +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x0a76c04a iio_push_to_buffers +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x1c252ed8 iio_map_array_unregister +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x267c0508 iio_channel_release_all_cb +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x26f6b499 iio_str_to_fixpoint +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x2a1fab3c iio_channel_stop_all_cb +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x2a2e2cb9 iio_map_array_register +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x3daa2ee2 iio_channel_get_all_cb +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x4bd0d835 iio_dealloc_pollfunc +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x4ec940a2 iio_update_buffers +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x59e3abdf iio_scan_mask_set +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x5d1e9605 iio_update_demux +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x67f0d0cf iio_read_channel_raw +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x6fd57f43 iio_enum_read +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x71818b22 iio_channel_release_all +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x7a711aef iio_channel_start_all_cb +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x7d8c1a7e iio_scan_mask_query +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x826a6ad2 iio_convert_raw_to_processed +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x956165af iio_channel_get_all +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xb24acf75 iio_read_channel_processed +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xb6d28a39 iio_channel_cb_get_channels +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xca93406f iio_read_channel_scale +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xcd729687 iio_alloc_pollfunc +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xce52fede iio_channel_release +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xeaf47695 iio_enum_available_read +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xf313fa0e iio_get_channel_type +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xf6c1ad6b iio_enum_write +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xf82d22e2 iio_channel_get +EXPORT_SYMBOL_GPL drivers/infiniband/core/ib_core 0xdbd019c4 ib_wq +EXPORT_SYMBOL_GPL drivers/input/ff-memless 0xef135a91 input_ff_create_memless +EXPORT_SYMBOL_GPL drivers/input/misc/adxl34x 0x143aa8a9 adxl34x_probe +EXPORT_SYMBOL_GPL drivers/input/misc/adxl34x 0x49a4fcbd adxl34x_remove +EXPORT_SYMBOL_GPL drivers/input/misc/adxl34x 0x66535a18 adxl34x_suspend +EXPORT_SYMBOL_GPL drivers/input/misc/adxl34x 0xe4586827 adxl34x_resume +EXPORT_SYMBOL_GPL drivers/input/touchscreen/cyttsp4_core 0xe4894898 cyttsp4_pm_ops +EXPORT_SYMBOL_GPL drivers/input/touchscreen/cyttsp4_core 0xe507f407 cyttsp4_remove +EXPORT_SYMBOL_GPL drivers/input/touchscreen/cyttsp4_core 0xf53aa12b cyttsp4_probe +EXPORT_SYMBOL_GPL drivers/input/touchscreen/cyttsp_core 0xc24ef71c cyttsp_pm_ops +EXPORT_SYMBOL_GPL drivers/input/touchscreen/cyttsp_core 0xdfb24e59 cyttsp_probe +EXPORT_SYMBOL_GPL drivers/input/touchscreen/cyttsp_core 0xf494e20c cyttsp_remove +EXPORT_SYMBOL_GPL drivers/input/touchscreen/cyttsp_i2c_common 0xb9e2def8 cyttsp_i2c_read_block_data +EXPORT_SYMBOL_GPL drivers/input/touchscreen/cyttsp_i2c_common 0xef60c66f cyttsp_i2c_write_block_data +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x1a91c092 wm97xx_config_gpio +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x24a9c58a wm97xx_read_aux_adc +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x2991e7d0 wm9713_codec +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x2eef7d08 wm97xx_set_suspend_mode +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x3a3e8cbf wm97xx_get_gpio +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x8943333a wm97xx_reg_read +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x9033b052 wm97xx_set_gpio +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x9e9e5680 wm97xx_reg_write +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xe53be74e wm9712_codec +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xebfc8919 wm97xx_unregister_mach_ops +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xf885fa14 wm9705_codec +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xfbf54180 wm97xx_register_mach_ops +EXPORT_SYMBOL_GPL drivers/ipack/ipack 0x3dd1affb ipack_device_init +EXPORT_SYMBOL_GPL drivers/ipack/ipack 0x4fcf3474 ipack_put_device +EXPORT_SYMBOL_GPL drivers/ipack/ipack 0x5cc22588 ipack_device_del +EXPORT_SYMBOL_GPL drivers/ipack/ipack 0x73a16ac2 ipack_bus_register +EXPORT_SYMBOL_GPL drivers/ipack/ipack 0xc19dee98 ipack_bus_unregister +EXPORT_SYMBOL_GPL drivers/ipack/ipack 0xc8b3988f ipack_get_device +EXPORT_SYMBOL_GPL drivers/ipack/ipack 0xce181016 ipack_driver_unregister +EXPORT_SYMBOL_GPL drivers/ipack/ipack 0xdbc565be ipack_device_add +EXPORT_SYMBOL_GPL drivers/ipack/ipack 0xfb48a423 ipack_driver_register +EXPORT_SYMBOL_GPL drivers/isdn/capi/kernelcapi 0x23359aff unregister_capictr_notifier +EXPORT_SYMBOL_GPL drivers/isdn/capi/kernelcapi 0xce1414b2 register_capictr_notifier +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x11b56c67 gigaset_initcs +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x123fb34d gigaset_blockdriver +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x2f2612b0 gigaset_handle_modem_response +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x35a3baaf gigaset_start +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x43d262da gigaset_stop +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x4414bfcf gigaset_m10x_send_skb +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x454aa44f gigaset_debuglevel +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x5b54ce71 gigaset_freecs +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x60ff43ad gigaset_add_event +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x6f0a0ede gigaset_initdriver +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x8cbc1066 gigaset_shutdown +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x8d2078a9 gigaset_skb_sent +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x8eff32df gigaset_dbg_buffer +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xb8971bf1 gigaset_fill_inbuf +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xc9007140 gigaset_freedriver +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xca4fd012 gigaset_isdn_rcv_err +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xd50d742b gigaset_skb_rcvd +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xdd79387e gigaset_m10x_input +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xe05ac19b gigaset_if_receive +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0x0a0dc5b5 lp55xx_register_leds +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0x492252b5 lp55xx_init_device +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0x713ba483 lp55xx_of_populate_pdata +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0x71790a4d lp55xx_deinit_device +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0x9dbc67ac lp55xx_read +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0xab433deb lp55xx_unregister_leds +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0xad703e39 lp55xx_write +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0xae339cc2 lp55xx_register_sysfs +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0xaf122f43 lp55xx_update_bits +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0xcfaf4804 lp55xx_unregister_sysfs +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0xd6c5f08f lp55xx_is_extclk_used +EXPORT_SYMBOL_GPL drivers/leds/trigger/ledtrig-camera 0x749e05f2 ledtrig_flash_ctrl +EXPORT_SYMBOL_GPL drivers/leds/trigger/ledtrig-camera 0x7903e46e ledtrig_torch_ctrl +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x10e06e97 __tracepoint_bcache_btree_set_root +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x155ea9c7 __tracepoint_bcache_bypass_sequential +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x1822fd23 __tracepoint_bcache_btree_gc_coalesce +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x1f2ba9ac __tracepoint_bcache_journal_entry_full +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x260d47cf __tracepoint_bcache_btree_cache_cannibalize +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x27831e89 __tracepoint_bcache_journal_full +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x2dec45e0 __tracepoint_bcache_btree_write +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x347aebe1 __tracepoint_bcache_btree_node_free +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x370fa54a closure_put +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x41c861f0 __tracepoint_bcache_alloc_fail +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x49856e5a __tracepoint_bcache_btree_node_compact +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x50e8c39f __tracepoint_bcache_write +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x574ba881 __tracepoint_bcache_btree_node_alloc +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x5f09187e closure_sync +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x628eb712 __tracepoint_bcache_btree_insert_key +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x6770a402 __tracepoint_bcache_gc_copy_collision +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x6cd3907a __closure_lock +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x785cfc9f __tracepoint_bcache_gc_end +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x7b488fb1 __tracepoint_bcache_alloc_invalidate +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x91f2af34 __tracepoint_bcache_btree_node_alloc_fail +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xa09069a3 __tracepoint_bcache_writeback_collision +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xa591c5d6 __tracepoint_bcache_read +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xa6890b59 __tracepoint_bcache_btree_read +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xa6ceafe4 closure_wait +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xa9e16bd0 __closure_flush_sync +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xab54f7af closure_queue +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xaf60c34b __tracepoint_bcache_journal_write +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xb05e3c19 closure_sub +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xb17649d5 closure_trylock +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xb950d2ae __tracepoint_bcache_request_start +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xbc24bf52 __closure_delay +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xbd4b89b6 __tracepoint_bcache_btree_node_split +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xce0e6218 __tracepoint_bcache_gc_copy +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xd40fba32 __tracepoint_bcache_gc_start +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xdc5ea5a5 __tracepoint_bcache_cache_insert +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xe3c17af1 __closure_wake_up +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xf116fa20 __closure_flush +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xf58ce244 __tracepoint_bcache_journal_replay_key +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xf5bcbdc7 __tracepoint_bcache_read_retry +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xfc1d5275 __tracepoint_bcache_writeback +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xfcdf28c9 __tracepoint_bcache_request_end +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xfcfb00b7 do_closure_timer_init +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xffc308e4 __tracepoint_bcache_bypass_congested +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x0e4983b2 dm_get_cell +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x17dd39d6 dm_deferred_set_create +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x2d0e0481 dm_bio_prison_alloc_cell +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x2eb01e04 dm_deferred_set_destroy +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x4d3eb285 dm_bio_detain +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x4d9c226b dm_cell_release +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x579e1605 dm_cell_error +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x6791a44e dm_deferred_entry_dec +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x849b05ac dm_bio_prison_free_cell +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0xb00dbc8f dm_cell_release_no_holder +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0xb6d5c65d dm_deferred_set_add_work +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0xb70b342a dm_bio_prison_destroy +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0xca2e3a88 dm_deferred_entry_inc +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0xebd06eaf dm_bio_prison_create +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x0ad0dc4f dm_bufio_mark_buffer_dirty +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x22163b69 dm_bufio_release_move +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x3909d3a8 dm_bufio_prefetch +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x594952bd dm_bufio_read +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x62a23587 dm_bufio_get_device_size +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x6d3f57bd dm_bufio_get_client +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x74dcd98c dm_bufio_get_aux_data +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x7c381a76 dm_bufio_get_block_size +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x913442a6 dm_bufio_client_create +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x9b2b253a dm_bufio_get +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0xa82b2066 dm_bufio_write_dirty_buffers +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0xc9a3422d dm_bufio_write_dirty_buffers_async +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0xd4bddf5c dm_bufio_issue_flush +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0xdc69e37a dm_bufio_get_block_number +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0xe004ee92 dm_bufio_new +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0xe6024e59 dm_bufio_release +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0xebcc64a4 dm_bufio_get_block_data +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0xeca7949e dm_bufio_client_destroy +EXPORT_SYMBOL_GPL drivers/md/dm-cache 0x2e650636 dm_cache_policy_create +EXPORT_SYMBOL_GPL drivers/md/dm-cache 0x31f6d63c dm_cache_policy_destroy +EXPORT_SYMBOL_GPL drivers/md/dm-cache 0x3543e22f dm_cache_policy_get_version +EXPORT_SYMBOL_GPL drivers/md/dm-cache 0x423cb3f6 dm_cache_policy_register +EXPORT_SYMBOL_GPL drivers/md/dm-cache 0x9ebb37c4 dm_cache_policy_get_hint_size +EXPORT_SYMBOL_GPL drivers/md/dm-cache 0xb5405cdf dm_cache_policy_get_name +EXPORT_SYMBOL_GPL drivers/md/dm-cache 0xc6bebe49 dm_cache_policy_unregister +EXPORT_SYMBOL_GPL drivers/md/dm-multipath 0x9d7fc9d1 dm_register_path_selector +EXPORT_SYMBOL_GPL drivers/md/dm-multipath 0xe217c7d3 dm_unregister_path_selector +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x01d2f9ac dm_rh_recovery_start +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x06830491 dm_region_hash_create +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x09472122 dm_rh_dec +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x11fd4bb5 dm_rh_inc_pending +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x38efaf5a dm_region_hash_destroy +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x3a18389a dm_rh_update_states +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x5287f68c dm_rh_dirty_log +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x75504454 dm_rh_bio_to_region +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x7774620f dm_rh_stop_recovery +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x7d053fc5 dm_rh_start_recovery +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x8841b537 dm_rh_mark_nosync +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xa53387c7 dm_rh_flush +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xa83588eb dm_rh_recovery_end +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xa8813ad6 dm_rh_region_to_sector +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xbe38a431 dm_rh_recovery_prepare +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xc66ce277 dm_rh_get_region_size +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xcab63c3d dm_rh_get_state +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xd8aa4284 dm_rh_region_context +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xf37a3cfe dm_rh_get_region_key +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xf73951b3 dm_rh_delay +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xfd93482e dm_rh_recovery_in_flight +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x0054f69d dm_tm_pre_commit +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x01445176 dm_btree_find_highest_key +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x11eab9fe dm_bm_read_lock +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x150c85ce dm_tm_open_with_sm +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x1cac81ac dm_bitset_clear_bit +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x1e3f728d dm_block_data +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x2025e954 dm_array_info_init +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x261554be dm_block_manager_create +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x2c112836 dm_block_location +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x2e730a21 dm_bm_checksum +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x2f74609d dm_bitset_test_bit +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x32b5f546 dm_array_empty +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x33c03da6 dm_sm_disk_open +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x371fd72c dm_bm_flush_and_unlock +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x38c75c44 dm_bitset_empty +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x40f7bd91 dm_tm_inc +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x5e6aea80 dm_btree_walk +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x619701dc dm_sm_disk_create +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x62c1b9ee dm_array_walk +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x688d422d dm_bm_block_size +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x68fae9d2 dm_disk_bitset_init +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x72289260 dm_block_manager_destroy +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x7ade1071 dm_tm_destroy +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x7b047bd9 dm_tm_create_non_blocking_clone +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x80c89b3d dm_tm_unlock +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x832bf228 dm_array_del +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x858c8d94 dm_array_set_value +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x89f1e1cc dm_btree_insert_notify +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x966a8838 dm_btree_lookup +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x9b4b5b29 dm_bm_write_lock +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x9e798e22 dm_bm_set_read_only +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xa0bbbb49 dm_bitset_resize +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xa13861b4 dm_bitset_del +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xa2507774 dm_tm_shadow_block +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xa87c5b4d dm_array_resize +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xaee02382 dm_btree_empty +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xb7bad799 dm_bm_unlock +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xb9a6ecf8 dm_tm_dec +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xbcfdc290 dm_tm_read_lock +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xbd50ebbb dm_btree_del +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xbe0497aa dm_tm_create_with_sm +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xca40abd5 dm_btree_insert +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xd041d62b dm_array_get_value +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xd163cade dm_tm_commit +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xe44b4b9b dm_bitset_set_bit +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xead1e727 dm_bm_write_lock_zero +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xed1e1f96 dm_btree_remove +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xf475af48 dm_bitset_flush +EXPORT_SYMBOL_GPL drivers/md/raid1 0x2cc46b31 md_raid1_congested +EXPORT_SYMBOL_GPL drivers/md/raid10 0x2f3afef6 md_raid10_congested +EXPORT_SYMBOL_GPL drivers/md/raid456 0x074df4c0 md_raid5_congested +EXPORT_SYMBOL_GPL drivers/media/common/b2c2/b2c2-flexcop 0x66c0289a b2c2_flexcop_debug +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0x0a1b684c saa7146_pgtable_free +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0x11a14bca saa7146_wait_for_debi_done +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0x1db095ee saa7146_pgtable_build_single +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0x2505c7b6 saa7146_setgpio +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0x33d69d2a saa7146_vmalloc_build_pgtable +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0x415905e2 saa7146_i2c_adapter_prepare +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0x477294e5 saa7146_unregister_extension +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0x48efd14d saa7146_pgtable_alloc +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0x51b5ebb9 saa7146_vfree_destroy_pgtable +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0x68d6a14d saa7146_register_extension +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0xe3cd9b5c saa7146_debug +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146_vv 0x1b509c5f saa7146_register_device +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146_vv 0x3600f1e2 saa7146_vv_release +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146_vv 0x775c2539 saa7146_start_preview +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146_vv 0x7dfcdf1b saa7146_stop_preview +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146_vv 0xa03e3dbe saa7146_unregister_device +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146_vv 0xbc4586d7 saa7146_vv_init +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146_vv 0xe9170467 saa7146_set_hps_source_and_sync +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x10edf62c smscore_get_board_id +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x21e36bf2 smscore_registry_getmode +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x2601dcf0 sms_board_power +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x37d91069 smsendian_handle_tx_message +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x3aee0152 smscore_register_client +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x3b583234 smscore_onresponse +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x4313c25f smscore_register_hotplug +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x45284ae9 smsendian_handle_rx_message +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x455f7f3e smscore_register_device +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x5d9f4ac9 smscore_getbuffer +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x63222b29 smsclient_sendrequest +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x708b5ab9 smscore_unregister_hotplug +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x74ee9098 sms_board_load_modules +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x7c576277 smsendian_handle_message_header +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x844539ae sms_get_board +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x898c47ee smscore_start_device +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x8c277732 sms_board_setup +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x9c2225ed smscore_translate_msg +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x9db8be0e smscore_get_device_mode +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0xa121228d smscore_set_board_id +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0xb7864fff sms_board_led_feedback +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0xbbdb5c42 smscore_unregister_client +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0xc6405028 sms_board_lna_control +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0xe7c96304 sms_board_event +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0xf431ef3a smscore_putbuffer +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0xfbd97094 smscore_unregister_device +EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/tda18271c2dd 0xa5df8261 tda18271c2dd_attach +EXPORT_SYMBOL_GPL drivers/media/pci/cx88/cx88xx 0x1f83154b cx88_setup_xc3028 +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x055f8dc4 mantis_stream_control +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x09ba29c6 mantis_uart_exit +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x11b70bff mantis_dma_exit +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x35285511 mantis_gpio_set_bits +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x3b0893e3 mantis_get_mac +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x473697f1 mantis_i2c_exit +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x614bb994 mantis_dvb_exit +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x61723726 mantis_uart_init +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x64601337 mantis_ca_init +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x776f533c mantis_pci_init +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x8b0ce03f mantis_pci_exit +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x8c24137a mantis_i2c_init +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0xaa593d1f mantis_dvb_init +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0xadb3fdab mantis_ca_exit +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0xccdfffc5 mantis_frontend_soft_reset +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0xdaa58f74 mantis_dma_init +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0xfbcd1302 mantis_frontend_power +EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0x33485bbd saa7134_s_std_internal +EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0x5e899c9c saa7134_queryctrl +EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0x7383dfe4 saa7134_ts_qops +EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0x82c96dda saa7134_g_ctrl_internal +EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0xfdb6c28c saa7134_s_ctrl_internal +EXPORT_SYMBOL_GPL drivers/media/pci/ttpci/budget-core 0x249ec483 ttpci_budget_irq10_handler +EXPORT_SYMBOL_GPL drivers/media/pci/ttpci/budget-core 0x7948c222 budget_debug +EXPORT_SYMBOL_GPL drivers/media/pci/ttpci/budget-core 0x8bc7f460 ttpci_budget_debiread +EXPORT_SYMBOL_GPL drivers/media/pci/ttpci/budget-core 0x9c926441 ttpci_budget_deinit +EXPORT_SYMBOL_GPL drivers/media/pci/ttpci/budget-core 0xdc615f76 ttpci_budget_init_hooks +EXPORT_SYMBOL_GPL drivers/media/pci/ttpci/budget-core 0xe41e3d55 ttpci_budget_debiwrite +EXPORT_SYMBOL_GPL drivers/media/pci/ttpci/budget-core 0xe6252504 ttpci_budget_init +EXPORT_SYMBOL_GPL drivers/media/pci/ttpci/budget-core 0xf15e9d41 ttpci_budget_set_video_port +EXPORT_SYMBOL_GPL drivers/media/radio/radio-isa 0x04a281c1 radio_isa_pnp_remove +EXPORT_SYMBOL_GPL drivers/media/radio/radio-isa 0x216af73a radio_isa_probe +EXPORT_SYMBOL_GPL drivers/media/radio/radio-isa 0xb262dbae radio_isa_match +EXPORT_SYMBOL_GPL drivers/media/radio/radio-isa 0xe4680b73 radio_isa_remove +EXPORT_SYMBOL_GPL drivers/media/radio/radio-isa 0xf3ffcfe5 radio_isa_pnp_probe +EXPORT_SYMBOL_GPL drivers/media/radio/shark2 0x541a63b8 radio_tea5777_exit +EXPORT_SYMBOL_GPL drivers/media/radio/shark2 0xe0670469 radio_tea5777_init +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x051cd812 rc_map_get +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x07e004b0 rc_keyup +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x087efbf6 rc_keydown +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x3b172519 ir_raw_event_store_edge +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x45b80357 rc_map_register +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x553efb91 rc_core_debug +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x826edbc8 ir_raw_event_store_with_filter +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x8420b6f5 rc_register_device +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x86f8cb58 rc_repeat +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x90b7068d rc_allocate_device +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xb9e89563 ir_raw_event_handle +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xc44aab62 rc_free_device +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xc601e013 rc_keydown_notimeout +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xccdf2329 rc_unregister_device +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xda884324 ir_raw_event_set_idle +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xf2a445d5 rc_map_unregister +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xfa18d6f2 ir_raw_event_store +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xfe497bdc rc_g_keycode_from_table +EXPORT_SYMBOL_GPL drivers/media/tuners/mt2063 0xb39ac7b7 mt2063_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/mt20xx 0x159f86a2 microtune_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/mxl5007t 0xace2624c mxl5007t_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/r820t 0x404eee31 r820t_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/tda18271 0x10dba7d5 tda18271_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/tda827x 0x6759475f tda827x_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/tda8290 0xd0526cb2 tda829x_probe +EXPORT_SYMBOL_GPL drivers/media/tuners/tda8290 0xddee2a12 tda829x_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/tda9887 0x331bd2de tda9887_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/tea5761 0x27eac708 tea5761_autodetection +EXPORT_SYMBOL_GPL drivers/media/tuners/tea5761 0x8aa794e5 tea5761_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/tea5767 0x8acfa827 tea5767_autodetection +EXPORT_SYMBOL_GPL drivers/media/tuners/tea5767 0xd725a16b tea5767_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/tuner-simple 0x1d03ae35 simple_tuner_attach +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x017ea7c7 cx231xx_tuner_callback +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x2ce241c1 cx231xx_uninit_vbi_isoc +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x312e9fdb cx231xx_unmute_audio +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x38e022ec cx231xx_dev_uninit +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x4282af06 cx231xx_uninit_isoc +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x46c6221f cx231xx_uninit_bulk +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x490ad2bf cx231xx_send_usb_command +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x4e156882 cx231xx_capture_start +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x50a04518 cx231xx_demod_reset +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x51a47a12 cx231xx_set_mode +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x5c3f253a cx231xx_enable_i2c_port_3 +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x84ff8451 cx231xx_init_isoc +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x9bdc0aed cx231xx_disable656 +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0xb865337b cx231xx_set_alt_setting +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0xc4d88cb6 cx231xx_dev_init +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0xc5c69e4a cx231xx_send_gpio_cmd +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0xd2469b6b is_fw_load +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0xd26524da cx231xx_enable656 +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0xe0709b07 cx231xx_init_vbi_isoc +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0xee25c0f3 cx231xx_init_bulk +EXPORT_SYMBOL_GPL drivers/media/usb/dvb-usb-v2/mxl111sf-demod 0x52f34e92 mxl111sf_demod_attach +EXPORT_SYMBOL_GPL drivers/media/usb/dvb-usb-v2/mxl111sf-tuner 0xaca1ba1e mxl111sf_tuner_attach +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x06eb3a24 em28xx_read_ac97 +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x09990c82 em28xx_audio_analog_set +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x5d5075ac em28xx_set_mode +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x66c7c454 em28xx_init_usb_xfer +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x69360d8c em28xx_write_ac97 +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x6d990090 em28xx_gpio_set +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x6eaf1b90 em28xx_write_reg_bits +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x73b7137b em28xx_stop_urbs +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x7fc8652c em28xx_tuner_callback +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x87e7caf5 em28xx_read_reg +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0xb15dc5bd em28xx_write_regs +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0xbac31f54 em28xx_uninit_usb_xfer +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0xdb4e8237 em28xx_alloc_urbs +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0xe38e7486 em28xx_audio_setup +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0xeb698110 em28xx_write_reg +EXPORT_SYMBOL_GPL drivers/media/usb/tm6000/tm6000 0x008c8077 tm6000_get_reg +EXPORT_SYMBOL_GPL drivers/media/usb/tm6000/tm6000 0x2309a6d6 tm6000_xc5000_callback +EXPORT_SYMBOL_GPL drivers/media/usb/tm6000/tm6000 0x5bb70bdf tm6000_set_audio_bitrate +EXPORT_SYMBOL_GPL drivers/media/usb/tm6000/tm6000 0x734c6dad tm6000_set_reg +EXPORT_SYMBOL_GPL drivers/media/usb/tm6000/tm6000 0x89b611dd tm6000_debug +EXPORT_SYMBOL_GPL drivers/media/usb/tm6000/tm6000 0xa77eed49 tm6000_set_reg_mask +EXPORT_SYMBOL_GPL drivers/media/usb/tm6000/tm6000 0xdff8e89d tm6000_tuner_callback +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-common 0x01c483a9 v4l2_get_timestamp +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-common 0x133a85c5 v4l2_i2c_subdev_addr +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-common 0x1719460a v4l2_i2c_subdev_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-common 0x184337ca v4l2_spi_new_subdev +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-common 0x53105839 v4l2_detect_cvt +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-common 0x5b18adca v4l2_spi_subdev_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-common 0x5d9d3491 v4l_match_dv_timings +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-common 0x6f344bb9 v4l2_calc_aspect_ratio +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-common 0x7eaf8e7a v4l2_detect_gtf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-common 0x813f3de4 v4l2_find_nearest_format +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-common 0xc10acfa4 v4l2_i2c_new_subdev +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-common 0xd8afa5ad v4l2_i2c_new_subdev_board +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-common 0xf2a353ac v4l2_i2c_tuner_addrs +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-common 0xf5ef842e v4l_bound_align_image +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-int-device 0x27dd97a2 v4l2_int_ioctl_0 +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-int-device 0x944edd38 v4l2_int_ioctl_1 +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-int-device 0xa5228b24 v4l2_int_device_try_attach_all +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-int-device 0xa75b883c v4l2_int_device_register +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-int-device 0xb3a5e613 v4l2_int_device_unregister +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x09847083 v4l2_m2m_ctx_release +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x0d7b45a4 v4l2_m2m_ctx_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x17eb0eee v4l2_m2m_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x253b1b70 v4l2_m2m_expbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x2798315e v4l2_m2m_reqbufs +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x29c778af v4l2_m2m_dqbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x5874a37e v4l2_m2m_buf_remove +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x60439ded v4l2_m2m_qbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x69c4c318 v4l2_m2m_streamon +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x7417d529 v4l2_m2m_next_buf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x9176c8fe v4l2_m2m_querybuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x9527079e v4l2_m2m_buf_queue +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0xc6fca5ad v4l2_m2m_release +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0xc7def321 v4l2_m2m_streamoff +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0xdea50120 v4l2_m2m_create_bufs +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0xef4355ae v4l2_m2m_poll +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x0fa0b04d videobuf_queue_cancel +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x1430d7c2 videobuf_queue_to_vaddr +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x15a241ba videobuf_mmap_mapper +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x1c6ee333 videobuf_qbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x441962f3 __videobuf_mmap_setup +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x44f959c1 videobuf_querybuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x466a3127 videobuf_poll_stream +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x4ec95ab7 videobuf_read_start +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x56af7d55 videobuf_read_one +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x75120e68 videobuf_queue_is_busy +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x9f02d775 videobuf_streamon +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0xa052369d videobuf_next_field +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0xa82188d2 videobuf_stop +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0xaba48e4d videobuf_queue_core_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0xad7d5581 videobuf_waiton +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0xae63d2e3 videobuf_reqbufs +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0xbc1dc6e4 videobuf_read_stream +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0xcb2761b2 videobuf_streamoff +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0xd134ae44 videobuf_mmap_free +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0xd691a02d videobuf_mmap_setup +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0xf1e226df videobuf_read_stop +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0xf3df3d19 videobuf_iolock +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0xf8c131d2 videobuf_dqbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0xf97f6d4e videobuf_alloc_vb +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-contig 0x1449f834 videobuf_to_dma_contig +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-contig 0x7e36dd6e videobuf_dma_contig_free +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-contig 0xbda224da videobuf_queue_dma_contig_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-sg 0x6feb95e1 videobuf_dma_map +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-sg 0x743bedc7 videobuf_dma_init_overlay +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-sg 0x78157105 videobuf_to_dma +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-sg 0x7a044aaf videobuf_queue_sg_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-sg 0x80cf1cda videobuf_dma_unmap +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-sg 0x9cfd1a29 videobuf_dma_init_kernel +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-sg 0xa825c75b videobuf_sg_alloc +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-sg 0xe7cbfc06 videobuf_dma_free +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-sg 0xedf5633d videobuf_dma_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-sg 0xf58d56f0 videobuf_dma_init_user +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-vmalloc 0x8fd2662a videobuf_queue_vmalloc_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-vmalloc 0xdf87e23a videobuf_to_vmalloc +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-vmalloc 0xf3013dfe videobuf_vmalloc_free +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x13c35a37 vb2_ioctl_expbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x15bc51f6 vb2_ioctl_dqbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x248ebe38 vb2_ioctl_streamon +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x31ea0ccd vb2_fop_poll +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x33082754 vb2_ioctl_create_bufs +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x3a4ffc13 vb2_wait_for_all_buffers +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x3e00fe4d vb2_qbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x48823eee vb2_ops_wait_prepare +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x4e647d0b vb2_create_bufs +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x4e9c954c vb2_reqbufs +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x52d9a63c vb2_streamon +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x6bca9648 vb2_ioctl_querybuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x75a3b056 vb2_queue_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x7956a124 vb2_ioctl_prepare_buf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x7e7be61f vb2_fop_release +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x8a4c3393 vb2_plane_cookie +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x94e673e9 vb2_fop_mmap +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x9593f9af vb2_poll +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x9cc70797 vb2_dqbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x9dc3afa2 vb2_streamoff +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0xa07e0746 vb2_read +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0xc06b1ab4 vb2_ioctl_streamoff +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0xc1aedd94 vb2_ioctl_reqbufs +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0xc5947891 vb2_prepare_buf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0xcf4e78dd vb2_fop_read +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0xd115f143 vb2_ioctl_qbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0xdd53d424 vb2_expbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0xe3a30e8f vb2_queue_release +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0xe73483a7 vb2_fop_write +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0xf4a6ecda vb2_buffer_done +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0xf6277773 vb2_write +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0xf6fa0495 vb2_mmap +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0xfd391c5d vb2_plane_vaddr +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0xfefbf1c1 vb2_ops_wait_finish +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-dma-contig 0x4c20fb97 vb2_dma_contig_memops +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-dma-contig 0xd9c5e9d8 vb2_dma_contig_init_ctx +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-dma-contig 0xe57f0426 vb2_dma_contig_cleanup_ctx +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-dma-sg 0xec5ac98e vb2_dma_sg_memops +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-memops 0x13d03413 vb2_get_vma +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-memops 0x2d6844f7 vb2_put_vma +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-memops 0x31bdd8ff vb2_common_vm_ops +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-memops 0xcfbfde97 vb2_get_contig_userptr +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-vmalloc 0x73318ed3 vb2_vmalloc_memops +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x068b2b4c v4l2_event_subdev_unsubscribe +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x0958ead2 v4l2_device_put +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x09fd6ede v4l2_fh_exit +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x0af38d8a v4l2_event_subscribe +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x10fe0c6e v4l2_fh_release +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x142d50f9 v4l2_device_register_subdev +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x180c07a1 v4l2_fh_is_singular +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x25465f6e v4l2_fh_del +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x2d76dad0 v4l2_fh_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x437e7e94 v4l2_device_unregister_subdev +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x4593e1e8 v4l2_device_register_subdev_nodes +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x593d9bf5 v4l2_device_disconnect +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x68a30162 v4l2_device_unregister +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x830014aa v4l2_event_unsubscribe +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x8700ac57 v4l2_fh_add +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xa545d7b8 v4l2_device_set_name +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xb28aecf3 v4l2_fh_open +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xb5e36475 v4l2_event_queue_fh +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xbc672c68 v4l2_event_unsubscribe_all +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xda3dad5c v4l2_device_register +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xda8e1e87 v4l2_event_dequeue +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xe10b6d61 v4l2_event_pending +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xff52b1cd v4l2_event_queue +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x5dcdf003 i2o_dma_free +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x6aea5616 i2o_sg_tablesize +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x788ca420 i2o_dma_map_sg +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0xc1334adf i2o_dma_map_single +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0xd40ee961 i2o_pool_alloc +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0xdcada81a i2o_dma_alloc +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0xed17ce87 i2o_pool_free +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0xf42c44a5 i2o_dma_realloc +EXPORT_SYMBOL_GPL drivers/mfd/88pm80x 0x0f9f4540 pm80x_regmap_config +EXPORT_SYMBOL_GPL drivers/mfd/88pm80x 0x3d919925 pm80x_init +EXPORT_SYMBOL_GPL drivers/mfd/88pm80x 0xd99fd720 pm80x_deinit +EXPORT_SYMBOL_GPL drivers/mfd/88pm80x 0xe82671f6 pm80x_pm_ops +EXPORT_SYMBOL_GPL drivers/mfd/kempld-core 0x22220337 kempld_write8 +EXPORT_SYMBOL_GPL drivers/mfd/kempld-core 0x2698c254 kempld_read16 +EXPORT_SYMBOL_GPL drivers/mfd/kempld-core 0x49079aca kempld_write32 +EXPORT_SYMBOL_GPL drivers/mfd/kempld-core 0x75ebfa4c kempld_write16 +EXPORT_SYMBOL_GPL drivers/mfd/kempld-core 0x79e3c317 kempld_release_mutex +EXPORT_SYMBOL_GPL drivers/mfd/kempld-core 0x8d03f800 kempld_read8 +EXPORT_SYMBOL_GPL drivers/mfd/kempld-core 0xd7bf4e66 kempld_get_mutex +EXPORT_SYMBOL_GPL drivers/mfd/kempld-core 0xeeaa6649 kempld_read32 +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-core 0x029c1268 lm3533_read +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-core 0x32891a86 lm3533_write +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-core 0x4c0b9f05 lm3533_update +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-ctrlbank 0x2e41a941 lm3533_ctrlbank_enable +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-ctrlbank 0x9f9c53ce lm3533_ctrlbank_disable +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-ctrlbank 0xb4d93f66 lm3533_ctrlbank_set_pwm +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-ctrlbank 0xcb9e5bc9 lm3533_ctrlbank_set_brightness +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-ctrlbank 0xd37a9dc8 lm3533_ctrlbank_get_pwm +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-ctrlbank 0xea7b42ca lm3533_ctrlbank_get_brightness +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-ctrlbank 0xf71da916 lm3533_ctrlbank_set_max_current +EXPORT_SYMBOL_GPL drivers/mfd/mc13xxx-core 0x41d3f350 mc13xxx_adc_do_conversion +EXPORT_SYMBOL_GPL drivers/mfd/mc13xxx-core 0xa021103e mc13xxx_common_init +EXPORT_SYMBOL_GPL drivers/mfd/mc13xxx-core 0xa139ded7 mc13xxx_variant_mc13783 +EXPORT_SYMBOL_GPL drivers/mfd/mc13xxx-core 0xb3362bbf mc13xxx_variant_mc34708 +EXPORT_SYMBOL_GPL drivers/mfd/mc13xxx-core 0xcca588c8 mc13xxx_common_cleanup +EXPORT_SYMBOL_GPL drivers/mfd/mc13xxx-core 0xe18395f7 mc13xxx_variant_mc13892 +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x0d936bbd pcf50633_irq_mask_get +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x126982c3 pcf50633_reg_set_bit_mask +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x218f7c6e pcf50633_reg_write +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x3186ce44 pcf50633_irq_unmask +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x38476b2f pcf50633_irq_mask +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x3eaef7bc pcf50633_write_block +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x44f6fbfc pcf50633_reg_read +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x8dbe9331 pcf50633_register_irq +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x98edde7c pcf50633_reg_clear_bits +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xdf9c3638 pcf50633_read_block +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xfb18ce43 pcf50633_free_irq +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-adc 0xba672264 pcf50633_adc_sync_read +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-adc 0xee1d50a3 pcf50633_adc_async_read +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0x53e96670 pcf50633_gpio_invert_get +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0x54cf264f pcf50633_gpio_power_supply_set +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0xb2093960 pcf50633_gpio_get +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0xb291701c pcf50633_gpio_set +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0xfcf78ccb pcf50633_gpio_invert_set +EXPORT_SYMBOL_GPL drivers/mfd/retu-mfd 0x01a33234 retu_write +EXPORT_SYMBOL_GPL drivers/mfd/retu-mfd 0x4fca3918 retu_read +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0x046f8cb3 rtsx_pci_send_cmd +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0x057fcdfc rtsx_pci_card_pull_ctl_enable +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0x17996e54 rtsx_pci_switch_output_voltage +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0x2a7bac04 rtsx_pci_switch_clock +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0x368a2fd4 rtsx_pci_transfer_data +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0x42c3079e rtsx_pci_read_register +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0x4e8deb18 rtsx_pci_card_power_on +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0x53f4f0cf rtsx_pci_read_phy_register +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0x7158d520 rtsx_pci_card_exist +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0x728154d3 rtsx_pci_stop_cmd +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0x75ad3931 rtsx_pci_complete_unfinished_transfer +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0x76087bcc rtsx_pci_send_cmd_no_wait +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0x8bef0cd3 rtsx_pci_write_phy_register +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0x9b08b05c rtsx_pci_add_cmd +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0xa975d344 rtsx_pci_start_run +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0xadfd9f12 rtsx_pci_write_ppbuf +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0xbd02f741 rtsx_pci_card_power_off +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0xccb5f20a rtsx_pci_write_register +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0xdb538dd3 rtsx_pci_card_pull_ctl_disable +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0xe1d1811f rtsx_pci_card_exclusive_check +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0xe2990683 rtsx_pci_read_ppbuf +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x004ad724 si476x_core_cmd_zif_pin_cfg +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x0311649e si476x_core_cmd_fm_seek_start +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x0dde99ff si476x_core_is_a_primary_tuner +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x10fac0c1 si476x_core_i2c_xfer +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x1daa3e51 si476x_core_has_diversity +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x1e0d82d5 si476x_core_cmd_fm_phase_diversity +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x27c017c2 si476x_core_has_am +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x2d5c4d2d si476x_core_cmd_set_property +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x3663f1b7 si476x_core_cmd_func_info +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x397d7ee2 si476x_core_cmd_am_acf_status +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x3a9b56dc si476x_core_cmd_intb_pin_cfg +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x41310b07 si476x_core_cmd_fm_rsq_status +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x46046f2b si476x_core_cmd_fm_rds_blockcount +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x4941caa5 si476x_core_cmd_fm_tune_freq +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x4b69b1f1 si476x_core_cmd_agc_status +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x595da5d2 si476x_core_stop +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x59ec0cbe si476x_core_cmd_power_down +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x6e690121 si476x_core_is_a_secondary_tuner +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x7cda7785 si476x_core_is_powered_up +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x8e13a0d0 si476x_core_cmd_power_up +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x92c65f51 si476x_core_is_in_am_receiver_mode +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x93777832 si476x_core_cmd_get_property +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xa000835c si476x_core_cmd_ic_link_gpo_ctl_pin_cfg +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xa1ce6546 si476x_core_cmd_am_seek_start +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xb839c0fe si476x_core_start +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xc366d845 si476x_core_cmd_fm_acf_status +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xcbd37fe7 si476x_core_cmd_am_rsq_status +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xd05e71e1 si476x_core_cmd_fm_rds_status +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xdea98014 si476x_core_cmd_am_tune_freq +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xe720e32f si476x_core_cmd_fm_phase_div_status +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xe7883b42 si476x_core_cmd_ana_audio_pin_cfg +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xeb7eb173 si476x_core_set_power_state +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xf16d8075 devm_regmap_init_si476x +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xfdb58ebb si476x_core_cmd_dig_audio_pin_cfg +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x2188ae64 sm501_misc_control +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x48ae4ac8 sm501_unit_power +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x79ba353e sm501_modify_reg +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0xc1eca959 sm501_find_clock +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0xf1f8a705 sm501_set_clock +EXPORT_SYMBOL_GPL drivers/mfd/ti_am335x_tscadc 0x07df216b am335x_tsc_se_update +EXPORT_SYMBOL_GPL drivers/mfd/ti_am335x_tscadc 0x0f82d44e am335x_tsc_se_set +EXPORT_SYMBOL_GPL drivers/mfd/ti_am335x_tscadc 0x9ecba4d6 am335x_tsc_se_clr +EXPORT_SYMBOL_GPL drivers/mfd/tps65217 0x742a7459 tps65217_set_bits +EXPORT_SYMBOL_GPL drivers/mfd/tps65217 0x788c39e6 tps65217_clear_bits +EXPORT_SYMBOL_GPL drivers/mfd/tps65217 0x8fa63267 tps65217_reg_read +EXPORT_SYMBOL_GPL drivers/mfd/tps65217 0xdddda060 tps65217_reg_write +EXPORT_SYMBOL_GPL drivers/mfd/ucb1400_core 0xf8326a17 ucb1400_adc_read +EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0x2eee074e cb710_set_irq_handler +EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0x4f5e2b41 cb710_sg_dwiter_read_next_block +EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0x80ec2bf6 cb710_pci_update_config_reg +EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0xb4dd1049 cb710_sg_dwiter_write_next_block +EXPORT_SYMBOL_GPL drivers/misc/eeprom/eeprom_93cx6 0x27cb133b eeprom_93cx6_multiread +EXPORT_SYMBOL_GPL drivers/misc/eeprom/eeprom_93cx6 0x63d2ff63 eeprom_93cx6_wren +EXPORT_SYMBOL_GPL drivers/misc/eeprom/eeprom_93cx6 0x822222db eeprom_93cx6_write +EXPORT_SYMBOL_GPL drivers/misc/eeprom/eeprom_93cx6 0x98bb5a22 eeprom_93cx6_read +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x03a54108 enclosure_component_register +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x1c784703 enclosure_find +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x39fc494e enclosure_unregister +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x6bcf37ad enclosure_register +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x7667a174 enclosure_add_device +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x8889e641 enclosure_for_each_device +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0xcd833682 enclosure_remove_device +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0x097fefc4 lis3lv02d_joystick_enable +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0x25ce213a lis3lv02d_poweroff +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0x4a4fb154 lis3lv02d_remove_fs +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0x4a67b248 lis3lv02d_init_dt +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0x76496509 lis3_dev +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0xb3d69954 lis3lv02d_poweron +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0xf59e85c5 lis3lv02d_init_device +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0xff00ded4 lis3lv02d_joystick_disable +EXPORT_SYMBOL_GPL drivers/misc/mei/mei 0x008f8187 mei_irq_read_handler +EXPORT_SYMBOL_GPL drivers/misc/mei/mei 0x0217c775 __mei_cl_driver_register +EXPORT_SYMBOL_GPL drivers/misc/mei/mei 0x162f818d mei_cl_enable_device +EXPORT_SYMBOL_GPL drivers/misc/mei/mei 0x261490c1 mei_deregister +EXPORT_SYMBOL_GPL drivers/misc/mei/mei 0x2961188d mei_irq_compl_handler +EXPORT_SYMBOL_GPL drivers/misc/mei/mei 0x4c673d1b mei_cl_set_drvdata +EXPORT_SYMBOL_GPL drivers/misc/mei/mei 0x5778223f mei_cl_driver_unregister +EXPORT_SYMBOL_GPL drivers/misc/mei/mei 0x58606eb6 mei_cl_get_drvdata +EXPORT_SYMBOL_GPL drivers/misc/mei/mei 0x66850798 mei_irq_write_handler +EXPORT_SYMBOL_GPL drivers/misc/mei/mei 0x91803a84 mei_start +EXPORT_SYMBOL_GPL drivers/misc/mei/mei 0x9c2c4b58 mei_stop +EXPORT_SYMBOL_GPL drivers/misc/mei/mei 0xa2181270 mei_cl_recv +EXPORT_SYMBOL_GPL drivers/misc/mei/mei 0xac39666e mei_cl_send +EXPORT_SYMBOL_GPL drivers/misc/mei/mei 0xc69955f1 mei_cl_remove_device +EXPORT_SYMBOL_GPL drivers/misc/mei/mei 0xc8bb6cbd mei_cl_add_device +EXPORT_SYMBOL_GPL drivers/misc/mei/mei 0xdbd585c4 mei_cl_register_event_cb +EXPORT_SYMBOL_GPL drivers/misc/mei/mei 0xe3e4e806 mei_cl_disable_device +EXPORT_SYMBOL_GPL drivers/misc/mei/mei 0xebb4de1b mei_register +EXPORT_SYMBOL_GPL drivers/misc/mei/mei 0xee449ed6 mei_reset +EXPORT_SYMBOL_GPL drivers/misc/mei/mei 0xf83c3fd5 mei_device_init +EXPORT_SYMBOL_GPL drivers/misc/pti 0x19f09b98 pti_release_masterchannel +EXPORT_SYMBOL_GPL drivers/misc/pti 0x23bde487 pti_request_masterchannel +EXPORT_SYMBOL_GPL drivers/misc/pti 0x52a78e81 pti_writedata +EXPORT_SYMBOL_GPL drivers/misc/ti-st/st_drv 0x9dcdd96e st_unregister +EXPORT_SYMBOL_GPL drivers/misc/ti-st/st_drv 0xe573fed8 st_register +EXPORT_SYMBOL_GPL drivers/misc/vmw_vmci/vmw_vmci 0x0f6680ea vmci_qpair_produce_buf_ready +EXPORT_SYMBOL_GPL drivers/misc/vmw_vmci/vmw_vmci 0x1152e318 vmci_qpair_get_produce_indexes +EXPORT_SYMBOL_GPL drivers/misc/vmw_vmci/vmw_vmci 0x13aa5a5d vmci_datagram_create_handle +EXPORT_SYMBOL_GPL drivers/misc/vmw_vmci/vmw_vmci 0x1872c7af vmci_qpair_produce_free_space +EXPORT_SYMBOL_GPL drivers/misc/vmw_vmci/vmw_vmci 0x1a195863 vmci_context_get_priv_flags +EXPORT_SYMBOL_GPL drivers/misc/vmw_vmci/vmw_vmci 0x2e30d970 vmci_qpair_dequeue +EXPORT_SYMBOL_GPL drivers/misc/vmw_vmci/vmw_vmci 0x3ef56cd5 vmci_qpair_alloc +EXPORT_SYMBOL_GPL drivers/misc/vmw_vmci/vmw_vmci 0x4b630dac vmci_get_context_id +EXPORT_SYMBOL_GPL drivers/misc/vmw_vmci/vmw_vmci 0x4c498e60 vmci_qpair_peekv +EXPORT_SYMBOL_GPL drivers/misc/vmw_vmci/vmw_vmci 0x4ea2ccbc vmci_qpair_peek +EXPORT_SYMBOL_GPL drivers/misc/vmw_vmci/vmw_vmci 0x50a255c9 vmci_doorbell_create +EXPORT_SYMBOL_GPL drivers/misc/vmw_vmci/vmw_vmci 0x612df9ae vmci_qpair_detach +EXPORT_SYMBOL_GPL drivers/misc/vmw_vmci/vmw_vmci 0x69ef87ff vmci_datagram_destroy_handle +EXPORT_SYMBOL_GPL drivers/misc/vmw_vmci/vmw_vmci 0x6bfa603a vmci_qpair_dequev +EXPORT_SYMBOL_GPL drivers/misc/vmw_vmci/vmw_vmci 0x6cc1a5f7 vmci_datagram_create_handle_priv +EXPORT_SYMBOL_GPL drivers/misc/vmw_vmci/vmw_vmci 0x722d488a vmci_event_unsubscribe +EXPORT_SYMBOL_GPL drivers/misc/vmw_vmci/vmw_vmci 0x76f1d5c5 vmci_is_context_owner +EXPORT_SYMBOL_GPL drivers/misc/vmw_vmci/vmw_vmci 0x7d540b50 vmci_qpair_consume_free_space +EXPORT_SYMBOL_GPL drivers/misc/vmw_vmci/vmw_vmci 0x8b8ad67a vmci_qpair_enqueue +EXPORT_SYMBOL_GPL drivers/misc/vmw_vmci/vmw_vmci 0x9624c58c vmci_datagram_send +EXPORT_SYMBOL_GPL drivers/misc/vmw_vmci/vmw_vmci 0x9973b9b2 vmci_qpair_consume_buf_ready +EXPORT_SYMBOL_GPL drivers/misc/vmw_vmci/vmw_vmci 0x9d16164a vmci_send_datagram +EXPORT_SYMBOL_GPL drivers/misc/vmw_vmci/vmw_vmci 0xbbcb4c48 vmci_qpair_enquev +EXPORT_SYMBOL_GPL drivers/misc/vmw_vmci/vmw_vmci 0xccbb53d1 vmci_doorbell_notify +EXPORT_SYMBOL_GPL drivers/misc/vmw_vmci/vmw_vmci 0xcf5ed7ef vmci_event_subscribe +EXPORT_SYMBOL_GPL drivers/misc/vmw_vmci/vmw_vmci 0xdac94780 vmci_qpair_get_consume_indexes +EXPORT_SYMBOL_GPL drivers/misc/vmw_vmci/vmw_vmci 0xe7e7c107 vmci_doorbell_destroy +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x17eeebe4 sdhci_suspend_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x3aa51707 sdhci_enable_irq_wakeups +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x77c7eebd sdhci_runtime_suspend_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x781ddc87 sdhci_resume_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x7e7294cd sdhci_disable_irq_wakeups +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x86b12523 sdhci_free_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xad64ff3c sdhci_add_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xb898aaa0 sdhci_alloc_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xbfd5b828 sdhci_remove_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xe1965018 sdhci_runtime_resume_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci-pltfm 0x0809709d sdhci_get_of_property +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci-pltfm 0x437cbd9c sdhci_pltfm_unregister +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci-pltfm 0x4934c8f4 sdhci_pltfm_pmops +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci-pltfm 0x50f705ef sdhci_pltfm_clk_get_max_clock +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci-pltfm 0x633fdd0f sdhci_pltfm_init +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci-pltfm 0xb8b0ceff sdhci_pltfm_free +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci-pltfm 0xe6457f52 sdhci_pltfm_register +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0001 0x18d4b3e1 cfi_cmdset_0001 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0001 0x27fd9609 cfi_cmdset_0003 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0001 0xdae3b39f cfi_cmdset_0200 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0002 0x1f9f6ff1 cfi_cmdset_0002 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0002 0x61cd2421 cfi_cmdset_0006 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0002 0xec66a077 cfi_cmdset_0701 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0020 0xa9ae627a cfi_cmdset_0020 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_util 0x04e6a0eb cfi_qry_present +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_util 0x1011d36c cfi_qry_mode_off +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_util 0x7f7340d6 cfi_qry_mode_on +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x01b97661 __put_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x0a5f7b3d register_mtd_user +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x1125ac66 register_mtd_parser +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x1715b6af mtd_table_mutex +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x18cbc824 mtd_get_fact_prot_info +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x20c059ba mtd_add_partition +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x233142e3 mtd_get_user_prot_info +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x239e05d5 mtd_erase_callback +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x2c7469a3 __get_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x32d0507a unregister_mtd_user +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x3ac8f06d mtd_get_unmapped_area +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x3dd62b3a mtd_read +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x3eed1e14 mtd_point +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x44542ffc deregister_mtd_parser +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x44b8e1e7 mtd_block_markbad +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x49cc9648 mtd_lock +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x4ada1be1 get_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x5101887d mtd_unpoint +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x568e09a8 mtd_is_locked +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x59b66544 __mtd_next_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x63fa7039 mtd_read_user_prot_reg +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x64410636 mtd_is_partition +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x6e6a82c3 mtd_erase +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x72af71cf mtd_writev +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x784c0abe mtd_write +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x7e99ff6a mtd_read_oob +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x971262a4 put_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x9cdfe836 mtd_lock_user_prot_reg +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xa16fb2f0 mtd_block_isbad +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xa34ad8e7 mount_mtd +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xab5d39e6 mtd_panic_write +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xb0795275 mtd_device_parse_register +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xca01ad63 mtd_unlock +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xcacccc81 mtd_get_device_size +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xce2d161a mtd_read_fact_prot_reg +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xdd5948af mtd_device_unregister +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xdf4a4ecf kill_mtd_super +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xe668809b mtd_del_partition +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xe7584884 mtd_kmalloc_up_to +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xe8a647f1 mtd_write_user_prot_reg +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xf840458f get_mtd_device_nm +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0x189f3394 del_mtd_blktrans_dev +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0x7d9e1ae5 deregister_mtd_blktrans +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0x838d7574 mtd_blktrans_cease_background +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0x9a7bd0e3 register_mtd_blktrans +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0xe033d24a add_mtd_blktrans_dev +EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0x0d50f3ce nand_wait_ready +EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0x64c52d5e nand_update_bbt +EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0xd9ac11b2 nand_release +EXPORT_SYMBOL_GPL drivers/mtd/nand/sm_common 0xf1d14856 sm_register_device +EXPORT_SYMBOL_GPL drivers/mtd/onenand/onenand 0x0239da45 onenand_release +EXPORT_SYMBOL_GPL drivers/mtd/onenand/onenand 0xc99d3cf4 onenand_scan +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x01d432cc ubi_leb_write +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x0dfae3ab ubi_open_volume +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x210691e0 ubi_do_get_device_info +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x31b93a74 ubi_leb_read +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x36249e0f ubi_leb_erase +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x38e10c1d ubi_flush +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x42801d20 ubi_sync +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x53612a09 ubi_close_volume +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x5cfdd22d ubi_get_device_info +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x6437ee5d ubi_leb_change +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x75e05b2c ubi_get_volume_info +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x770d703d ubi_open_volume_path +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x80c5cff7 ubi_is_mapped +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x85a8ee76 ubi_unregister_volume_notifier +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x8d130c86 ubi_leb_unmap +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xd817f09e ubi_open_volume_nm +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xeb073197 ubi_leb_map +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xf5ee9ba8 ubi_register_volume_notifier +EXPORT_SYMBOL_GPL drivers/net/can/c_can/c_can 0x663dff1e unregister_c_can_dev +EXPORT_SYMBOL_GPL drivers/net/can/c_can/c_can 0x681528dd alloc_c_can_dev +EXPORT_SYMBOL_GPL drivers/net/can/c_can/c_can 0x986ca406 c_can_power_up +EXPORT_SYMBOL_GPL drivers/net/can/c_can/c_can 0xa25853db register_c_can_dev +EXPORT_SYMBOL_GPL drivers/net/can/c_can/c_can 0xd19f6451 free_c_can_dev +EXPORT_SYMBOL_GPL drivers/net/can/c_can/c_can 0xeccf1669 c_can_power_down +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x005b5a23 can_free_echo_skb +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x005c5d1d open_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x04edd3cb devm_can_led_init +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x222c295a can_len2dlc +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x5ce0eaad can_put_echo_skb +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x6ecffdcd alloc_can_skb +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xa21b1888 can_led_event +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xb1fc8267 alloc_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xb3271c4b alloc_can_err_skb +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xb346573b can_dlc2len +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xb3717c6e safe_candev_priv +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xb6fab695 register_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xb75217ab unregister_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xbc24e3b1 can_bus_off +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xc41b434d close_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xd5129f3e can_get_echo_skb +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xe8cef2de free_candev +EXPORT_SYMBOL_GPL drivers/net/can/cc770/cc770 0x1b407695 alloc_cc770dev +EXPORT_SYMBOL_GPL drivers/net/can/cc770/cc770 0x2028dca9 free_cc770dev +EXPORT_SYMBOL_GPL drivers/net/can/cc770/cc770 0x3b09d52e register_cc770dev +EXPORT_SYMBOL_GPL drivers/net/can/cc770/cc770 0x3fefa8d7 unregister_cc770dev +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x49ebd0d2 sja1000_interrupt +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x685845a0 unregister_sja1000dev +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x83921633 register_sja1000dev +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x845e41dc alloc_sja1000dev +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x8e8cbb3a free_sja1000dev +EXPORT_SYMBOL_GPL drivers/net/ethernet/cadence/macb 0x0579169c macb_ethtool_ops +EXPORT_SYMBOL_GPL drivers/net/ethernet/cadence/macb 0x1001ab2d macb_set_rx_mode +EXPORT_SYMBOL_GPL drivers/net/ethernet/cadence/macb 0x2e099e40 macb_set_hwaddr +EXPORT_SYMBOL_GPL drivers/net/ethernet/cadence/macb 0x6f72b996 macb_mii_init +EXPORT_SYMBOL_GPL drivers/net/ethernet/cadence/macb 0x893473a7 macb_ioctl +EXPORT_SYMBOL_GPL drivers/net/ethernet/cadence/macb 0xac1de2af macb_get_stats +EXPORT_SYMBOL_GPL drivers/net/ethernet/cadence/macb 0xd80dd654 macb_get_hwaddr +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x01e838b0 mlx4_bf_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x02519b7c mlx4_get_vf_config +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x0f1db56a mlx4_counter_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x10caeda8 mlx4_counter_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x10fa43a3 mlx4_xrcd_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x12a12653 mlx4_cq_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x13de0e39 mlx4_wol_write +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x15155fb0 mlx4_srq_arm +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x18a978b9 mlx4_pd_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x1d15d4e6 mlx4_flow_steer_promisc_remove +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x1de21a27 mlx4_unicast_attach +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x23d94369 mlx4_qp_release_range +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x23daac28 mlx4_mw_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x253195b0 mlx4_unregister_vlan +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x27970ebe mlx4_qp_reserve_range +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x2bc70f49 mlx4_SYNC_TPT +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x2c55a579 mlx4_flow_steer_promisc_add +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x2f7e9823 mlx4_db_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x3374a961 mlx4_mw_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x3860e84a mlx4_INIT_PORT +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x39399234 mlx4_qp_remove +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x3ab34589 mlx4_cq_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x3b325de9 mlx4_cq_resize +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x3def86c9 mlx4_srq_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x45acec4e mlx4_wol_read +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x474a3299 mlx4_fmr_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x47eb23c3 mlx4_mtt_addr +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x48bdc007 mlx4_fmr_unmap +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x4bdb811a mlx4_unicast_promisc_remove +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x4d56ab46 mlx4_uar_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x519e8c90 mlx4_find_cached_vlan +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x536da30d mlx4_alloc_cmd_mailbox +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x54961164 mlx4_buf_write_mtt +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x5adfbb51 mlx4_register_vlan +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x6a81eda1 mlx4_multicast_promisc_add +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x6fdb401f mlx4_register_mac +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x771c7719 mlx4_srq_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x78830fcc __mlx4_unregister_mac +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x78e68010 mlx4_srq_query +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7a0a54b3 __mlx4_cmd +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7bb65bbb mlx4_hw_rule_sz +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7cf1fd5b mlx4_mr_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7f463db6 mlx4_db_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x81a8c389 mlx4_set_vf_mac +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x82cc506d mlx4_buf_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x832d272d mlx4_qp_query +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x83766c8d mlx4_get_protocol_dev +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x85c57ad3 mlx4_flow_detach +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x883a9d3b mlx4_unicast_promisc_add +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x89fe0d2c mlx4_write_mtt +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x8c33a48a mlx4_multicast_attach +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x8eb4a7e6 __mlx4_replace_mac +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x94a772eb mlx4_set_vf_spoofchk +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x9cdc5248 mlx4_map_sw_to_hw_steering_mode +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x9db68b45 mlx4_qp_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa00e06be mlx4_fmr_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa1eb38c6 mlx4_pd_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa4f7f95e mlx4_mr_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xab67c7ae mlx4_uar_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xac59fa5b mlx4_map_sw_to_hw_steering_id +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xb13b7a1c mlx4_fmr_enable +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xb22d63f3 mlx4_set_vf_link_state +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xb3e68b89 mlx4_get_base_qpn +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xb7fa7ae7 mlx4_mw_enable +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xb96effcb mlx4_unregister_interface +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xba58c6d9 mlx4_CLOSE_PORT +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xbaec8973 mlx4_mr_enable +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xbb1be210 mlx4_buf_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xbc6a4536 mlx4_cq_modify +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xbf17cbcb mlx4_free_hwq_res +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xbf2fa96e mlx4_set_vf_vlan +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc03da347 mlx4_map_phys_fmr +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc2aa9eae mlx4_qp_to_ready +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc50cd670 mlx4_xrcd_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc8d3af2c mlx4_multicast_promisc_remove +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xcb7b8a2e mlx4_flow_attach +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xce6b7deb mlx4_bf_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd7db122f mlx4_mtt_init +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd8e90a1b mlx4_register_interface +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe1846efd mlx4_qp_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe3cfd3ad mlx4_free_cmd_mailbox +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe599d129 mlx4_srq_lookup +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe6543b05 mlx4_unicast_detach +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xece1b1dc mlx4_multicast_detach +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xed522e04 mlx4_read_clock +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf03a6a12 mlx4_alloc_hwq_res +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf1541dd2 __mlx4_register_mac +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf829fc95 mlx4_mtt_cleanup +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xfad73b69 mlx4_qp_modify +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xff23e5c7 mlx4_unregister_mac +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x2dc9bc83 mlx5_buf_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x2f86e8aa mlx5_core_qp_modify +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x53274f99 mlx5_core_xrcd_dealloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x555e087a mlx5_db_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x5ad07503 mlx5_core_create_qp +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x760591c0 mlx5_set_port_caps +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x8b04cb07 mlx5_core_access_reg +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x91435523 mlx5_core_qp_query +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x9488201f mlx5_core_mad_ifc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xb08af360 mlx5_create_map_eq +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xb0ad58b4 mlx5_core_xrcd_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xb5412949 mlx5_db_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xb762c3c2 mlx5_destroy_unmap_eq +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xcfe6478d mlx5_core_destroy_qp +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xd6c4ef56 mlx5_fill_page_array +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xee4b6455 mlx5_buf_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xfb9672c7 mlx5_core_eq_query +EXPORT_SYMBOL_GPL drivers/net/macvlan 0x23bd07f5 macvlan_common_newlink +EXPORT_SYMBOL_GPL drivers/net/macvlan 0x30c1888a macvlan_dellink +EXPORT_SYMBOL_GPL drivers/net/macvlan 0x69777467 macvlan_link_register +EXPORT_SYMBOL_GPL drivers/net/macvlan 0x97322a1a macvlan_common_setup +EXPORT_SYMBOL_GPL drivers/net/macvlan 0xcd5a16d5 macvlan_start_xmit +EXPORT_SYMBOL_GPL drivers/net/macvtap 0x6c617aad macvtap_get_socket +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0x2380e881 usbnet_generic_cdc_bind +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0x26f81ea8 usbnet_cdc_bind +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0x85550944 usbnet_cdc_unbind +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0xb2368d38 usbnet_cdc_status +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ncm 0x06bcf905 cdc_ncm_bind_common +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ncm 0x172f5ec9 cdc_ncm_select_altsetting +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ncm 0x5b362907 cdc_ncm_unbind +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ncm 0x63129cc8 cdc_ncm_fill_tx_frame +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ncm 0xa20956b4 cdc_ncm_rx_verify_ndp16 +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ncm 0xf60e0214 cdc_ncm_rx_verify_nth16 +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x31c40874 rndis_tx_fixup +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x75dea0de rndis_rx_fixup +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x99c8e52b rndis_unbind +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x99c9b0cf rndis_command +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0xae914e80 rndis_status +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0xe7759e55 generic_rndis_bind +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x04d6fc89 usbnet_open +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x04e10b19 usbnet_get_settings +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x0742d876 usbnet_suspend +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x1fac466d usbnet_write_cmd_async +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x2d14eac9 usbnet_get_ethernet_addr +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x3b36c1ea usbnet_start_xmit +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x44a739b6 usbnet_pause_rx +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x4a0281f7 usbnet_probe +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x5211306c usbnet_resume +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x7602b4c4 usbnet_nway_reset +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x7933e845 usbnet_get_endpoints +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x7f82234e usbnet_skb_return +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x8524cfc8 usbnet_set_msglevel +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x8621a7cb usbnet_purge_paused_rxq +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x8b749e28 usbnet_tx_timeout +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xa2bc7250 usbnet_get_drvinfo +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xa367b50e usbnet_write_cmd_nopm +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xabb1f945 usbnet_status_stop +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xb2c3367d usbnet_set_settings +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xbdf00cd8 usbnet_defer_kevent +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xc0d8f379 usbnet_get_msglevel +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xc15bebb4 usbnet_disconnect +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xcc46e180 usbnet_read_cmd +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xcf70280b usbnet_status_start +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xd6f9f9fa usbnet_change_mtu +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xe0c795c8 usbnet_unlink_rx_urbs +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xe97ee762 usbnet_get_link +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xef68e1f1 usbnet_stop +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xf3b92510 usbnet_resume_rx +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xf562bd66 usbnet_read_cmd_nopm +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xfd615e44 usbnet_write_cmd +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x08bbd464 i2400m_tx_msg_sent +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x37ac598c i2400m_release +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x58543a62 i2400m_rx +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x5baca1f1 i2400m_tx_msg_get +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x79415a00 i2400m_reset +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x888881cd i2400m_is_boot_barker +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x9dd87e43 i2400m_post_reset +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xa7463a06 i2400m_cmd_enter_powersave +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xb00b793c i2400m_bm_cmd_prepare +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xbb34556a i2400m_init +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xbeda1089 i2400m_pre_reset +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xc060a4ab i2400m_setup +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xc113e7b1 i2400m_netdev_setup +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xce1ed3c6 i2400m_tx +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xd9d864fd i2400m_dev_bootstrap +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xdad4c750 i2400m_error_recovery +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xdb1912bf i2400m_dev_reset_handle +EXPORT_SYMBOL_GPL drivers/net/wireless/cw1200/cw1200_core 0x354592f9 cw1200_core_probe +EXPORT_SYMBOL_GPL drivers/net/wireless/cw1200/cw1200_core 0xc23c0363 cw1200_can_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/cw1200/cw1200_core 0xcb75123d cw1200_irq_handler +EXPORT_SYMBOL_GPL drivers/net/wireless/cw1200/cw1200_core 0xe16a4cad cw1200_core_release +EXPORT_SYMBOL_GPL drivers/net/wireless/ipw2x00/libipw 0x4092f6c2 libipw_rx_any +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlegacy/iwlegacy 0x5443d3f3 il_mac_tx_last_beacon +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlegacy/iwlegacy 0x6684a43a il_remove_station +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlegacy/iwlegacy 0x845bfafc il_dealloc_bcast_stations +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlegacy/iwlegacy 0xd4f0d4e6 _il_grab_nic_access +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlegacy/iwlegacy 0xd9967ec5 il_prep_station +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x0f7c8b4a __iwl_warn +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x1418c854 __iwl_info +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x14ef36a6 iwl_clear_bits_prph +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x1ad388de iwl_poll_bit +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x215daec5 iwl_abort_notification_waits +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x225cc9f3 iwl_read_prph +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x35033c81 iwl_phy_db_free +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x3e0dc6e3 iwl_notification_wait_notify +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x3ecb0240 iwl_set_bits_prph +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x4dfe091a iwl_parse_nvm_data +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x4e119bad iwl_set_bits_mask_prph +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x5a04e855 iwl_nvm_check_version +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x5a339924 __iwl_err +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x5c52e109 iwl_opmode_deregister +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x5d0a212e iwlwifi_mod_params +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x5fe37fd7 iwl_read_direct32 +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x60236ff5 __iwl_crit +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x6101306b iwl_init_notification_wait +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x63918aad iwl_opmode_register +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x73041f51 iwl_poll_direct_bit +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x730cd234 iwl_parse_eeprom_data +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x776221bf iwl_send_phy_db_data +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x77d7af6f iwl_read_eeprom +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x7b10ebd7 iwl_notification_wait_init +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x8c5d5ab3 iwl_phy_db_set_section +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x8caceb62 iwl_wait_notification +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0xa60912ef iwl_phy_db_init +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0xcea0b361 iwl_remove_notification +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0xd2a0e1ef iwl_write_prph +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0xe4896d71 __iwl_dbg +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0xf0a1e170 iwl_write_direct32 +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x0bb0a92d lbs_cmd_copyback +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x168c5f73 lbs_get_firmware_async +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x2889574f lbs_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x5f9b3c09 lbs_send_tx_feedback +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x5fdf38b8 lbs_disablemesh +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x6846adb6 lbs_stop_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x74989d93 __lbs_cmd +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x86407abc lbs_queue_event +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x8f7f309d lbs_add_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xbb61975a lbs_process_rxed_packet +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xc38f7b6f lbs_host_to_card_done +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xdd517a6b lbs_notify_command_response +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xe44a85c6 lbs_remove_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xe8035b79 lbs_get_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xe95decae lbs_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xeed74006 lbs_host_sleep_cfg +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xeff81537 lbs_start_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xf64277de lbs_debug +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x0166bcab lbtf_remove_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x3d76a7c0 lbtf_add_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x51d8ce9c lbtf_cmd_response_rx +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x5b5339d6 lbtf_rx +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x820ab170 __lbtf_cmd +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x95a2b35b lbtf_send_tx_feedback +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x9b3c64ac lbtf_cmd_copyback +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xb7429844 lbtf_bcn_sent +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xc85e6899 lbtf_debug +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf_usb 0x4bfcf2bd if_usb_reset_device +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf_usb 0xf991ed51 if_usb_prog_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x1f9b068f mwifiex_del_virtual_intf +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x206a26a0 mwifiex_enable_hs +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x2b009da8 mwifiex_remove_card +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x55ffc22f mwifiex_disable_auto_ds +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x562372ee mwifiex_add_virtual_intf +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x5c2d5ece mwifiex_process_sleep_confirm_resp +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x7c42250f mwifiex_handle_rx_packet +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x86402338 mwifiex_add_card +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x8b10d7c8 mwifiex_main_process +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x962736fa mwifiex_cancel_hs +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0xbb492ea8 mwifiex_process_hs_config +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0xc7548183 mwifiex_deauthenticate +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0xe700385f mwifiex_init_shutdown_fw +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0xebe8e6df mwifiex_write_data_complete +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x12873f0c p54_free_skb +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x2291e60e p54_init_common +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x279f3b1a p54_rx +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x29c367f5 p54_free_common +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x38c613e3 p54_read_eeprom +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x820c03ec p54_register_common +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x8eb6281c p54_parse_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0xc5887c86 p54_unregister_common +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0xdbc9a4b7 p54_parse_eeprom +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x0792c8f1 rt2800_config_filter +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x12b6eeec rt2800_config_intf +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x23abe20e rt2800_config +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x23e56544 rt2800_read_eeprom_efuse +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x312f47ee rt2800_txdone_entry +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x39289990 rt2800_enable_radio +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x3a093c1a rt2800_probe_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x4005336c rt2800_gain_calibration +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x41d37420 rt2800_sta_add +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x55a03671 rt2800_get_tsf +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x56e9654b rt2800_ampdu_action +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x59b67e1b rt2800_get_survey +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x5efde042 rt2800_write_beacon +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x67eff2f5 rt2800_link_tuner +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x6c73afff rt2800_config_erp +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x755f55f3 rt2800_set_rts_threshold +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x79a2beef rt2800_reset_tuner +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x7f62e1c7 rt2800_wait_csr_ready +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x814f3ec4 rt2800_conf_tx +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x8ae873a0 rt2800_config_ant +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x915ad1ec rt2800_load_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x98260302 rt2800_disable_radio +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x9bdecfe5 rt2800_mcu_request +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x9e6954ef rt2800_get_tkip_seq +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xb82bf6ca rt2800_check_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xc2d02be1 rt2800_config_shared_key +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xcc74ea48 rt2800_vco_calibration +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xcedb057d rt2800_clear_beacon +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xd1a71150 rt2800_wait_wpdma_ready +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xd55e8f57 rt2800_rfkill_poll +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xdd4904bd rt2800_write_tx_data +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xdf79efd1 rt2800_disable_wpdma +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xe0fa6279 rt2800_process_rxwi +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xe4ad3e1e rt2800_link_stats +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xe4dd28cb rt2800_efuse_detect +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xedf0b811 rt2800_config_pairwise_key +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xf2fa2744 rt2800_sta_remove +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x0cff514f rt2x00mac_configure_filter +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x255e5811 rt2x00mac_sw_scan_complete +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x2856edb8 rt2x00mac_sta_add +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x28784a83 rt2x00queue_stop_queues +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x353df8ab rt2x00mac_set_key +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x47be9061 rt2x00queue_for_each_entry +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x492aa52a rt2x00mac_tx +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x4a1ab96d rt2x00queue_map_txskb +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x4f597f09 rt2x00lib_pretbtt +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x58ee81df rt2x00mac_set_tim +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x59c57bcb rt2x00lib_probe_dev +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x59f253ec rt2x00lib_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x59f55fd0 rt2x00mac_sta_remove +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x608301a0 rt2x00lib_remove_dev +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x6088b0c2 rt2x00queue_get_entry +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x6248917b rt2x00mac_set_antenna +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x6e18d5c4 rt2x00lib_get_bssidx +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x70faaad1 rt2x00mac_conf_tx +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x7ab5952d rt2x00mac_add_interface +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x7c621f10 rt2x00mac_start +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x800990c8 rt2x00mac_flush +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x8325d988 rt2x00lib_dmadone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x88af013f rt2x00lib_dmastart +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x8a680e02 rt2x00mac_config +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x8cde8d63 rt2x00lib_txdone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x9074036a rt2x00mac_sw_scan_start +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x90c428e5 rt2x00mac_get_ringparam +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x91d04b55 rt2x00mac_rfkill_poll +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xaf333e21 rt2x00lib_beacondone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xb348298b rt2x00queue_flush_queues +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xb9d68b92 rt2x00mac_get_stats +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xc55d5a61 rt2x00queue_start_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xccd357a3 rt2x00mac_bss_info_changed +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xce3d5bfc rt2x00queue_start_queues +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xd533c1b3 rt2x00lib_txdone_noinfo +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xd898614a rt2x00mac_remove_interface +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xd95bb3bd rt2x00queue_flush_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xde4ddfcb rt2x00mac_get_antenna +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xdea3cf09 rt2x00queue_unmap_skb +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xe310242e rt2x00queue_stop_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xe959cc07 rt2x00queue_pause_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xeb124419 rt2x00mac_stop +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xedeaf1e5 rt2x00lib_rxdone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xee722bc5 rt2x00mac_tx_frames_pending +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xef0743c8 rt2x00queue_unpause_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xf216a73f rt2x00lib_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00mmio 0x05e4831c rt2x00mmio_flush_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00mmio 0x3a89d33c rt2x00mmio_uninitialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00mmio 0x4e93afab rt2x00mmio_rxdone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00mmio 0x7e64541a rt2x00mmio_initialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00mmio 0xdbe4a26f rt2x00mmio_regbusy_read +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x1a609ad4 rt2x00pci_probe +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xbaa316ac rt2x00pci_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xe4f3f22a rt2x00pci_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xf0fbfd87 rt2x00pci_remove +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x04d46734 rt2x00usb_clear_entry +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x0ae2986f rt2x00usb_vendor_request +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x2231ec49 rt2x00usb_probe +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x231d2db7 rt2x00usb_initialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x29aeac1e rt2x00usb_vendor_request_buff +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x2b0fa4d2 rt2x00usb_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x4fff3f1c rt2x00usb_watchdog +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x5d20f0fc rt2x00usb_kick_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x75995a71 rt2x00usb_vendor_req_buff_lock +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x7e79f869 rt2x00usb_disable_radio +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xa9104910 rt2x00usb_register_read_async +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xb1ffe512 rt2x00usb_flush_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xb75eb8cb rt2x00usb_uninitialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xba7fdf63 rt2x00usb_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xdca85cbf rt2x00usb_regbusy_read +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xec6d0a3d rt2x00usb_disconnect +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x45e2abff rtl92c_set_p2p_ps_offload_cmd +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0x2297d04e rtl_beacon_statistic +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0x241dedc1 rtl_tid_to_ac +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0x2ba1bc2a rtl_ips_nic_on +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0x318577db rtl_recognize_peer +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0x3ea2d68d rtl_deinit_core +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0x48e2dc62 read_efuse_byte +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0x4c66a1ea rtl_is_special_data +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0x613e9f2b rtl_global_var +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0x65826034 rtl_deinit_deferred_work +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0x67d4c0cb rtl_ops +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0x7a8c15ef rtl_dbgp_flag_init +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0x7bce096b rtl_swlps_beacon +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0x91e159c0 rtl_p2p_info +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0xb556b784 rtl_deinit_rfkill +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0xc80a008b rtl_init_rx_config +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0xca8b02be rtl_action_proc +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0xd0e377fd rtl_tx_mgmt_proc +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0xd343226b rtl_init_core +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0xda44491a rtl_attribute_group +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0xf8ff6add rtl_lps_change_work_callback +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wl1251/wl1251 0x2b67e8c8 wl1251_free_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wl1251/wl1251 0x3f251cab wl1251_init_ieee80211 +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wl1251/wl1251 0x9286f324 wl1251_alloc_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x013e4b2e wlcore_disable_interrupts +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x05294fba wl1271_format_buffer +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x06b30cde wlcore_remove +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x1869f730 wlcore_event_rssi_trigger +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x18905819 wl1271_acx_init_mem_config +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x1ad3a6c0 wl12xx_cmd_build_probe_req +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x1b50fc31 wlcore_probe +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x21b4d8b0 wlcore_event_soft_gemini_sense +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x24efaf7c wl1271_cmd_test +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x28ded173 wlcore_boot_upload_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x2c5cf447 wlcore_set_key +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x2cd12722 wl1271_cmd_data_path +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x30307e07 wlcore_event_inactive_sta +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x3095e6bb wlcore_cmd_wait_for_event_or_timeout +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x377ca9ca wl1271_acx_sleep_auth +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x3dcd60d6 wlcore_event_max_tx_failure +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x4348e3e8 wl1271_debugfs_update_stats +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x53dff67d wl12xx_debug_level +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x57ec00ce wlcore_enable_interrupts +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x5d2fb85c wl12xx_acx_mem_cfg +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x5efddc21 wlcore_event_dummy_packet +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x6921ac32 wl1271_tx_flush +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x6f370dab wlcore_set_partition +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x71f92c8c wl1271_acx_set_ht_capabilities +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x8597faae wl1271_cmd_send +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x868086d3 wlcore_free_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x8867c8e8 wlcore_boot_upload_nvs +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x994aff3e wlcore_scan_sched_scan_ssid_list +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xa023f3e6 wlcore_event_beacon_loss +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xa165acd6 wlcore_boot_run_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xa32e2d07 wl1271_acx_pm_config +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xacbc4deb wlcore_synchronize_interrupts +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xb05883b2 wlcore_event_channel_switch +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xbe4649aa wlcore_disable_interrupts_nosync +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xbf62b874 wlcore_translate_addr +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xd46c0b0c wlcore_scan_sched_scan_results +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xd59a2369 wlcore_event_ba_rx_constraint +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xdb312379 wl1271_tx_min_rate_get +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xdb58a7e0 wlcore_event_sched_scan_completed +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xf0d6745d wlcore_alloc_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xf97bd0a9 wlcore_event_roc_complete +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xfab522b3 wl1271_cmd_configure +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xfdeaf0ff wlcore_set_scan_chan_params +EXPORT_SYMBOL_GPL drivers/nfc/mei_phy 0x076ffa2a nfc_mei_phy_alloc +EXPORT_SYMBOL_GPL drivers/nfc/mei_phy 0x3201995c nfc_mei_phy_free +EXPORT_SYMBOL_GPL drivers/nfc/mei_phy 0x3b577068 nfc_mei_phy_disable +EXPORT_SYMBOL_GPL drivers/nfc/mei_phy 0x6e22f29d mei_phy_ops +EXPORT_SYMBOL_GPL drivers/nfc/mei_phy 0x8b4e7b3b nfc_mei_event_cb +EXPORT_SYMBOL_GPL drivers/nfc/mei_phy 0xe82e19a5 nfc_mei_phy_enable +EXPORT_SYMBOL_GPL drivers/platform/x86/asus-wmi 0x5e3a2efa asus_wmi_register_driver +EXPORT_SYMBOL_GPL drivers/platform/x86/asus-wmi 0x98f2e7f1 asus_wmi_unregister_driver +EXPORT_SYMBOL_GPL drivers/platform/x86/intel_ips 0x46809fa9 ips_link_to_i915_driver +EXPORT_SYMBOL_GPL drivers/platform/x86/mxm-wmi 0x232b5238 mxm_wmi_supported +EXPORT_SYMBOL_GPL drivers/platform/x86/mxm-wmi 0x61cdf799 mxm_wmi_call_mxds +EXPORT_SYMBOL_GPL drivers/platform/x86/mxm-wmi 0xe26032eb mxm_wmi_call_mxmx +EXPORT_SYMBOL_GPL drivers/platform/x86/wmi 0x3ecf6cfc wmi_install_notify_handler +EXPORT_SYMBOL_GPL drivers/platform/x86/wmi 0x64ebe677 wmi_query_block +EXPORT_SYMBOL_GPL drivers/platform/x86/wmi 0xa9b7afd8 wmi_set_block +EXPORT_SYMBOL_GPL drivers/platform/x86/wmi 0xb5a6ebe2 wmi_remove_notify_handler +EXPORT_SYMBOL_GPL drivers/platform/x86/wmi 0xc5e3dddf wmi_get_event_data +EXPORT_SYMBOL_GPL drivers/platform/x86/wmi 0xc9d4d6d1 wmi_has_guid +EXPORT_SYMBOL_GPL drivers/platform/x86/wmi 0xe2426710 wmi_evaluate_method +EXPORT_SYMBOL_GPL drivers/power/pcf50633-charger 0x052f8ae2 pcf50633_mbc_get_status +EXPORT_SYMBOL_GPL drivers/power/pcf50633-charger 0x9a2f0847 pcf50633_mbc_get_usb_online_status +EXPORT_SYMBOL_GPL drivers/power/pcf50633-charger 0xb08266fb pcf50633_mbc_usb_curlim_set +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0x4d945282 mc13xxx_fixed_regulator_ops +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0x5070a741 mc13xxx_regulator_ops +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0xf1ce8574 mc13xxx_fixed_regulator_set_voltage +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x045035e6 wm8350_ldo_set_slot +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x187ef00a wm8350_dcdc_set_slot +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x5d1db431 wm8350_dcdc25_set_mode +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x958bc784 wm8350_isink_set_flash +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0xc26b365c wm8350_register_regulator +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0xd0e66c99 wm8350_register_led +EXPORT_SYMBOL_GPL drivers/regulator/wm8400-regulator 0x0d2bc5b2 wm8400_register_regulator +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x05a240cb cxgbi_conn_init_pdu +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x0791cdbb cxgbi_bind_conn +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x1174d01d cxgbi_sock_rcv_peer_close +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x1507f3a0 cxgbi_parse_pdu_itt +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x15db9289 cxgbi_ep_connect +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x2ad55927 cxgbi_set_conn_param +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x2f2cb9cd cxgbi_cleanup_task +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x2fc525dd cxgbi_set_host_param +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x34fce78d cxgbi_sock_established +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x360b54e9 cxgbi_conn_pdu_ready +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x373d5d29 cxgbi_get_host_param +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x3a5c4389 cxgbi_ddp_page_size_factor +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x3fa0c365 cxgbi_hbas_add +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x42d76ba4 cxgbi_iscsi_init +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x50647b69 cxgbi_iscsi_cleanup +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x531e829f cxgbi_sock_check_wr_invariants +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x54b39cc9 cxgbi_ddp_ppod_set +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x5d2830c4 cxgbi_device_find_by_lldev +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x5fb25103 cxgbi_sock_closed +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x6f0a7e15 cxgbi_hbas_remove +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x718b8fe6 cxgbi_destroy_session +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x747ac746 cxgbi_ddp_cleanup +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x771d4ad7 cxgbi_sock_fail_act_open +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x7a4b0d83 cxgbi_device_portmap_create +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x7bb21cb0 cxgbi_sock_free_cpl_skbs +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x7fdb6004 cxgbi_device_unregister_all +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x890798ce cxgbi_create_conn +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x8c2ba369 cxgbi_ddp_ppod_clear +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x8ce484f7 cxgbi_sock_rcv_abort_rpl +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x8d66bf87 cxgbi_conn_alloc_pdu +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x8f64180d cxgbi_sock_rcv_close_conn_rpl +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x93723b9a cxgbi_device_unregister +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xa160e068 cxgbi_get_ep_param +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xaab7a3b1 cxgbi_conn_tx_open +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xbc30adf7 cxgbi_get_conn_stats +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xc30da4f0 cxgbi_sock_purge_wr_queue +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xc6ac0149 cxgbi_device_register +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xcdc5ffac cxgbi_sock_select_mss +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xd521c125 cxgbi_create_session +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xd99d90de cxgbi_ddp_init +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xdbc4925a cxgbi_device_portmap_cleanup +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xdde94744 cxgbi_sock_skb_entail +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xdfeb74fe cxgbi_ep_poll +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xe890fd52 cxgbi_sock_act_open_req_arp_failure +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xea9f68ca cxgbi_sock_rcv_wr_ack +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xee806100 cxgbi_ep_disconnect +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xef346615 cxgbi_attr_is_visible +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xf166da12 cxgbi_conn_xmit_pdu +EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0x2b97c58e scsi_register_device_handler +EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0x2edcdbc1 scsi_dh_detach +EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0x593a36c2 scsi_dh_handler_exist +EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0x5a379fea scsi_dh_attached_handler_name +EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0x797f325d scsi_unregister_device_handler +EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0x8c3c6404 scsi_dh_activate +EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0x9b1f03a0 scsi_dh_set_params +EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0xcf53a0f2 scsi_dh_attach +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x0f10c5a0 fcoe_check_wait_queue +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x0fb51275 fcoe_queue_timer +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x1c09dd04 fcoe_get_wwn +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x215ef71b fcoe_libfc_config +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x216540e8 fcoe_fcf_device_delete +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x33b69bc0 fcoe_ctlr_get_lesb +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x374c1e1c fcoe_wwn_from_mac +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x425df861 fcoe_validate_vport_create +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x516dc504 fcoe_get_lesb +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x69752ee2 fcoe_get_paged_crc_eof +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x6bb6dbe0 fcoe_fc_crc +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x809b3bf0 fcoe_ctlr_device_add +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x82905f22 fcoe_link_speed_update +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x84b3d915 fcoe_wwn_to_str +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x89ca8451 fcoe_ctlr_device_delete +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x8ad0f894 __fcoe_get_lesb +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x9c637924 fcoe_clean_pending_queue +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x9e589c91 fcoe_start_io +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xdd02f173 fcoe_fcf_device_add +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0x0aeb8ce4 iscsi_boot_create_target +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0x58904f84 iscsi_boot_create_host_kset +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0x678aa4fa iscsi_boot_create_ethernet +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0x71db3963 iscsi_boot_destroy_kset +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0xb9a68010 iscsi_boot_create_kset +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0xe8f475ae iscsi_boot_create_initiator +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x027da9c8 iscsi_host_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x08bbce3e iscsi_eh_session_reset +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x0a0a50b7 iscsi_suspend_queue +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x12b2ad06 iscsi_switch_str_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x17230022 iscsi_eh_device_reset +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x1ad47985 iscsi_eh_recover_target +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x1f0eda0a iscsi_set_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x27a8026d iscsi_session_recovery_timedout +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x2eb88f8b iscsi_pool_init +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x2f48f6b4 iscsi_conn_teardown +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x32b2dd16 iscsi_change_queue_depth +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x340ad654 iscsi_session_failure +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x3737283d iscsi_session_setup +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x37541ba8 iscsi_conn_send_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x41dc11b4 iscsi_target_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x4250d909 iscsi_session_teardown +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x4298254b iscsi_conn_get_addr_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x433dd4ef iscsi_conn_start +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x44bc6872 iscsi_complete_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x475de170 iscsi_update_cmdsn +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x54ae05ad iscsi_conn_queue_work +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x565c3950 iscsi_prep_data_out_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x63e2b722 iscsi_conn_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x65182c53 iscsi_eh_abort +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x689f23b5 iscsi_conn_failure +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x7028130e iscsi_conn_bind +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x8032eefd iscsi_suspend_tx +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x817c3d33 __iscsi_put_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x82d9670c iscsi_session_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x864cbdb0 iscsi_itt_to_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x868e10ab iscsi_requeue_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x8abeb2d2 iscsi_host_add +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x901ad903 __iscsi_get_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x93a82fc3 iscsi_conn_stop +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xa4832cf0 iscsi_pool_free +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xb3055898 iscsi_eh_target_reset +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xb825f92f iscsi_host_set_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xd83b6dd2 iscsi_conn_setup +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xd897cffd iscsi_host_remove +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xdee7dc73 __iscsi_complete_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xe30a63ea iscsi_host_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xe7997af4 iscsi_itt_to_ctask +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xe9ae315f iscsi_complete_scsi_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xeae40255 iscsi_put_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xf9a70483 iscsi_queuecommand +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xfb1189c2 iscsi_host_free +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xfe8dcb49 iscsi_verify_itt +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x102e9dd6 iscsi_tcp_conn_teardown +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x12dd6ac2 iscsi_tcp_recv_skb +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x1e29ee18 iscsi_tcp_recv_segment_is_hdr +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x21461f75 iscsi_tcp_r2tpool_free +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x566dc5aa iscsi_tcp_conn_setup +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x5947a946 iscsi_tcp_task_init +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x6cb194db iscsi_tcp_segment_done +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x73d89a6a iscsi_tcp_task_xmit +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x759c8621 iscsi_tcp_conn_get_stats +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x7ac8b254 iscsi_tcp_dgst_header +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x86e40be1 iscsi_tcp_r2tpool_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x99bdaf29 iscsi_tcp_set_max_r2t +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x9c0da113 iscsi_segment_seek_sg +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x9ce46e71 iscsi_tcp_segment_unmap +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x9d2b16fb iscsi_tcp_hdr_recv_prep +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xa2c66e21 iscsi_tcp_cleanup_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xda3337e8 iscsi_segment_init_linear +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x028fd9c5 sas_alloc_task +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x09ae389b sas_target_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x138a03a4 sas_request_addr +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x155b5d74 sas_change_queue_depth +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x180d88b9 sas_phy_reset +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x22f7d5a4 sas_bios_param +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x29ee8f6f sas_ata_schedule_reset +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x35bb5951 sas_free_task +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x4a0ddd9d sas_domain_attach_transport +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x6994fbe6 sas_alloc_slow_task +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x74482f86 sas_drain_work +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x844d2f6c sas_task_abort +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x8aef63e7 sas_eh_bus_reset_handler +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x9bf9ae07 sas_queuecommand +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x9f60f00b sas_eh_device_reset_handler +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xb5bd3600 sas_register_ha +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xb9ed58eb sas_ioctl +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xc21c1740 sas_unregister_ha +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xca76f303 sas_eh_abort_handler +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xd9d43c42 sas_change_queue_type +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xdaa3e9c0 sas_get_local_phy +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xea4a3b59 sas_domain_release_transport +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xfc527064 sas_ssp_task_response +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xfcd51e50 sas_slave_configure +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xfea33a55 sas_target_destroy +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x01ada4e6 srp_iu_get +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x15ef1b65 srp_target_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x26ab08c2 srp_iu_put +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x54ec66bd srp_cmd_queue +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x8a93b228 srp_target_free +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x8f064619 srp_transfer_data +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x0ba74a4e scsi_tgt_it_nexus_destroy +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x0cc80f1d scsi_tgt_it_nexus_create +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x7af40c43 scsi_tgt_cmd_to_host +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x826883eb scsi_tgt_free_queue +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x920f2a1e scsi_host_put_command +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xbd6a0b64 scsi_host_get_command +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xbf7f4881 scsi_tgt_queue_command +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xc3315018 scsi_tgt_tsk_mgmt_request +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xd287b060 scsi_tgt_alloc_queue +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x08c8c76d iscsi_register_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x0a647ba8 iscsi_find_flashnode_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x0c276670 iscsi_create_endpoint +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x1889b94a iscsi_unregister_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x19cf4f93 iscsi_get_port_state_name +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x1f9c4526 iscsi_add_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x209f88ba iscsi_post_host_event +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x347bf727 iscsi_session_chkready +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x3d30efde iscsi_destroy_all_flashnode +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x40471ec7 iscsi_flashnode_bus_match +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x44e6d148 iscsi_get_port_speed_name +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x451db7f7 iscsi_free_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x4e0908db iscsi_destroy_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x58c59c81 iscsi_is_session_dev +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x5c1faf45 iscsi_recv_pdu +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x699fe53e iscsi_get_discovery_parent_name +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x69a23405 iscsi_create_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x6f87bb20 iscsi_ping_comp_event +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x7eb201cb iscsi_remove_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x81772eef iscsi_create_flashnode_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x883c092a iscsi_scan_finished +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x8ad59f90 iscsi_block_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x8c3f973e iscsi_lookup_endpoint +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x8d279e1b iscsi_is_flashnode_conn_dev +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x90ed2110 iscsi_is_session_online +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x938fb034 iscsi_conn_error_event +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x95247a00 iscsi_destroy_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x991d9163 iscsi_destroy_flashnode_sess +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xa804c603 iscsi_create_iface +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xb812d769 iscsi_alloc_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xc2c63c13 iscsi_create_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xc2f8b546 iscsi_offload_mesg +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xc3f645c3 iscsi_create_flashnode_sess +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xc4cbc584 iscsi_host_for_each_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xcb50a4b6 iscsi_find_flashnode_sess +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xd11cb4a1 iscsi_block_scsi_eh +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xdcb983a8 iscsi_unblock_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xe63663c8 iscsi_session_event +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xef4939e3 iscsi_destroy_iface +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xf20f18a0 iscsi_conn_login_event +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xf4904b7b iscsi_destroy_endpoint +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0x460acab2 sas_tlr_supported +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0x966b8430 sas_disable_tlr +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0x99dbd311 sas_enable_tlr +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0xd25453f9 sas_is_tlr_enabled +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x0982d2bd srp_release_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x1f625c23 srp_attach_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x28b87611 srp_remove_host +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x817a17e4 srp_rport_add +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0xe9c8664a srp_rport_del +EXPORT_SYMBOL_GPL drivers/scsi/ufs/ufshcd 0x300b6ac1 ufshcd_suspend +EXPORT_SYMBOL_GPL drivers/scsi/ufs/ufshcd 0xe0eed02b ufshcd_init +EXPORT_SYMBOL_GPL drivers/scsi/ufs/ufshcd 0xf73ce3a2 ufshcd_remove +EXPORT_SYMBOL_GPL drivers/scsi/ufs/ufshcd 0xfac8d709 ufshcd_resume +EXPORT_SYMBOL_GPL drivers/spi/spi-bitbang 0x25cb4fa1 spi_bitbang_transfer +EXPORT_SYMBOL_GPL drivers/spi/spi-bitbang 0x46c17300 spi_bitbang_start +EXPORT_SYMBOL_GPL drivers/spi/spi-bitbang 0x4ab3a445 spi_bitbang_setup +EXPORT_SYMBOL_GPL drivers/spi/spi-bitbang 0x782e9bc5 spi_bitbang_cleanup +EXPORT_SYMBOL_GPL drivers/spi/spi-bitbang 0xc527e771 spi_bitbang_stop +EXPORT_SYMBOL_GPL drivers/spi/spi-bitbang 0xf776f82c spi_bitbang_setup_transfer +EXPORT_SYMBOL_GPL drivers/spi/spi-dw 0x608cdca6 dw_spi_xfer_done +EXPORT_SYMBOL_GPL drivers/spi/spi-dw 0x695d55d1 dw_spi_add_host +EXPORT_SYMBOL_GPL drivers/spi/spi-dw 0x8d327b87 dw_spi_resume_host +EXPORT_SYMBOL_GPL drivers/spi/spi-dw 0xa307fb36 dw_spi_suspend_host +EXPORT_SYMBOL_GPL drivers/spi/spi-dw 0xf6ec6035 dw_spi_remove_host +EXPORT_SYMBOL_GPL drivers/ssb/ssb 0xe8240b16 ssb_pmu_spuravoid_pllupdate +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x0506a4f4 comedi_buf_read_alloc +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x056084a3 comedi_pcmcia_enable +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x06799b4f comedi_to_usb_dev +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x0910b660 comedi_pci_disable +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x09d4f3a5 comedi_usb_auto_config +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x0a45a647 comedi_event +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x0a7b6887 comedi_pcmcia_driver_unregister +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x0bb7e820 comedi_pci_enable +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x0cd330f4 range_unknown +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x0de13b6e comedi_buf_get +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x0fc15243 comedi_dev_from_minor +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x196333dc comedi_request_region +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x21102f87 range_0_32mA +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x2290026e comedi_pcmcia_auto_unconfig +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x251c4d33 comedi_to_pcmcia_dev +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x26174329 comedi_pci_auto_config +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x2a55ac79 comedi_pcmcia_auto_config +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x2f0ad9d3 range_bipolar5 +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x36b0291f comedi_pcmcia_disable +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x3ed15f33 comedi_buf_read_free +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x4236eaaf range_4_20mA +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x430ccc07 comedi_buf_put +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x4ec23542 comedi_load_firmware +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x4fe634f3 range_bipolar2_5 +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x50fd2973 comedi_pci_driver_unregister +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x585078a1 comedi_alloc_subdevices +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x616f4547 comedi_to_pci_dev +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x77da85ee comedi_buf_memcpy_to +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x78021ee2 comedi_driver_unregister +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x8113872c range_unipolar10 +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x8b6a48d0 comedi_legacy_detach +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x8fbd2e39 comedi_usb_driver_register +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x91e9a5a3 comedi_driver_register +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x991fca34 comedi_buf_write_free +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x9bc5ffc2 comedi_buf_write_alloc +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x9fd8add7 comedi_set_hw_dev +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xa0516c3c comedi_alloc_spriv +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xa61f1693 comedi_error +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xae3a3a0f comedi_buf_read_n_available +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xb6365482 comedi_is_subdevice_running +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xb679cebc range_0_20mA +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xbb52fc7f range_bipolar10 +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xbdbe75c6 range_unipolar2_5 +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xc1477fe4 comedi_auto_unconfig +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xc93177a5 comedi_to_usb_interface +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xcff2c706 comedi_pcmcia_driver_register +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xd16b1f0f comedi_pci_auto_unconfig +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xd30613eb comedi_usb_driver_unregister +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xd6481781 __comedi_request_region +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xdb2044b2 range_unipolar5 +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xe75822ea comedi_pci_driver_register +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xea8ff36e comedi_buf_memcpy_from +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xf18be74d comedi_usb_auto_unconfig +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xf3ba5ac5 comedi_auto_config +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xfe13c2f6 comedi_check_chanlist +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/8255 0x15260ca2 subdev_8255_init_irq +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/8255 0x999a20a1 subdev_8255_init +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/8255 0xae2765cc subdev_8255_interrupt +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/addi_watchdog 0x6d64867b addi_watchdog_init +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/addi_watchdog 0x79f4a6cf addi_watchdog_reset +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/amplc_dio200_common 0x21738849 amplc_dio200_common_detach +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/amplc_dio200_common 0x8e56969a amplc_dio200_set_enhance +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/amplc_dio200_common 0x916e4df2 amplc_dio200_common_attach +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/comedi_fc 0x0ccf796c cfc_write_array_to_buffer +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/comedi_fc 0x5068289a cfc_read_array_from_buffer +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/comedi_fc 0x61a7f455 cfc_handle_events +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/das08 0x4c7b2760 das08_common_attach +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0x014cc521 mite_done +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0x0b13f115 mite_dma_tcr +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0x0ed95521 mite_bytes_read_from_memory_lb +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0x41f971ef mite_dma_arm +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0x42ea244f mite_request_channel_in_range +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0x4d79e786 mite_sync_output_dma +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0x50bde22e mite_bytes_written_to_memory_lb +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0x591e1103 mite_get_status +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0x6177ea2f mite_buf_change +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0x821bb5f2 mite_release_channel +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0x8f7120cf mite_dma_disarm +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0x9074377d mite_prep_dma +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0x91b66aff mite_unsetup +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0x9257722c mite_bytes_read_from_memory_ub +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0x96b955f9 mite_alloc +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0x97c5a595 mite_free_ring +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0xb4ca4bf3 mite_alloc_ring +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0xcb16ffd5 mite_sync_input_dma +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0xcc33c523 mite_bytes_written_to_memory_ub +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0xde0ea8cd mite_setup +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0xf93f0e0b mite_setup2 +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0xff318218 mite_bytes_in_transit +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_labpc 0x74895de4 labpc_common_attach +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0x2bfcd2b5 ni_tio_set_gate_src +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0xba3bf910 ni_gpct_device_destroy +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0xc893998c ni_tio_arm +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0xd07bb463 ni_gpct_device_construct +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0xdbe9b1f4 ni_tio_winsn +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0xe18ee459 ni_tio_rinsn +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0xf60affa2 ni_tio_init_counter +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0xffc85b3e ni_tio_insn_config +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tiocmd 0x20a8e995 ni_tio_cmdtest +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tiocmd 0x3fd45dc9 ni_tio_acknowledge_and_confirm +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tiocmd 0xbf9e4778 ni_tio_set_mite_channel +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tiocmd 0xd79b73a8 ni_tio_cancel +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tiocmd 0xde694a81 ni_tio_handle_interrupt +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tiocmd 0xf90bb6c3 ni_tio_cmd +EXPORT_SYMBOL_GPL drivers/staging/comedi/kcomedilib/kcomedilib 0x272f552a comedi_find_subdevice_by_type +EXPORT_SYMBOL_GPL drivers/staging/comedi/kcomedilib/kcomedilib 0x4799d075 comedi_dio_config +EXPORT_SYMBOL_GPL drivers/staging/comedi/kcomedilib/kcomedilib 0x56b82475 comedi_dio_bitfield +EXPORT_SYMBOL_GPL drivers/staging/comedi/kcomedilib/kcomedilib 0x87db8dd8 comedi_open +EXPORT_SYMBOL_GPL drivers/staging/comedi/kcomedilib/kcomedilib 0x939b39be comedi_get_n_channels +EXPORT_SYMBOL_GPL drivers/staging/comedi/kcomedilib/kcomedilib 0xa92367e0 comedi_close +EXPORT_SYMBOL_GPL drivers/staging/dwc2/dwc2 0x0bc318a0 dwc2_hcd_remove +EXPORT_SYMBOL_GPL drivers/staging/dwc2/dwc2 0x1691da48 dwc2_hcd_init +EXPORT_SYMBOL_GPL drivers/staging/dwc2/dwc2 0x2206b003 dwc2_handle_common_intr +EXPORT_SYMBOL_GPL drivers/staging/dwc2/dwc2 0xa8514446 dwc2_set_all_params +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0x1a1b5249 oslec_flush +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0x2feda75b oslec_hpf_tx +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0x3227a28e oslec_snapshot +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0x7dc9dddd oslec_adaption_mode +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0xb2c66001 oslec_create +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0xc8b5a524 oslec_free +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0xd370f679 oslec_update +EXPORT_SYMBOL_GPL drivers/staging/iio/addac/adt7316 0xa1f0e58a adt7316_pm_ops +EXPORT_SYMBOL_GPL drivers/staging/rts5139/rts5139 0xbd5a0e51 rts5139_usb_ids +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 0x1b75f03a synth_add +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x2a69e80a spk_var_store +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x2c66e72e spk_synth_is_alive_restart +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x2f0575a9 spk_do_catch_up +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x30dbca29 spk_var_show +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 0x5bf6b43e spk_serial_synth_probe +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x5f23a9c8 speakup_event +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x63c6cfb0 spk_synth_is_alive_nop +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 0xb4296838 synth_remove +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xb48956f8 synth_buffer_peek +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xbbd15a51 speakup_start_ttys +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xc751218f spk_synth_flush +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xc766ae09 synth_printf +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xce56e8c5 speakup_info +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xd1b551a2 spk_get_var +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xd3ddf0a3 spk_synth_immediate +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/usbip/usbip-core 0x03bc496c usbip_recv_xbuff +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x0ca06395 usbip_start_eh +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x10775fba usbip_alloc_iso_desc_pdu +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x16441f0b usbip_dump_urb +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x496c4ad3 usbip_stop_eh +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x58e3c1ca usbip_event_happened +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x78b72f44 usbip_debug_flag +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x84d400d7 usbip_pad_iso +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x8563a7e9 usbip_event_add +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0xa349a5fe sockfd_to_socket +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0xb63efbc7 usbip_recv_iso +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0xbdd415a2 usbip_pack_pdu +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0xbe0665cf dev_attr_usbip_debug +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0xd02753dc usbip_header_correct_endian +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0xd3d43217 usbip_recv +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0xe1ea0586 usbip_dump_header +EXPORT_SYMBOL_GPL drivers/tty/n_tracesink 0x585ebaac n_tracesink_datadrain +EXPORT_SYMBOL_GPL drivers/uio/uio 0x087a34bd uio_event_notify +EXPORT_SYMBOL_GPL drivers/uio/uio 0x7ec63ee6 __uio_register_device +EXPORT_SYMBOL_GPL drivers/uio/uio 0xfa669607 uio_unregister_device +EXPORT_SYMBOL_GPL drivers/usb/atm/usbatm 0x5d95ca89 usbatm_usb_probe +EXPORT_SYMBOL_GPL drivers/usb/atm/usbatm 0xb4f1dd82 usbatm_usb_disconnect +EXPORT_SYMBOL_GPL drivers/usb/chipidea/ci_hdrc 0x81b46b1a ci_hdrc_add_device +EXPORT_SYMBOL_GPL drivers/usb/chipidea/ci_hdrc 0xf27a2d04 ci_hdrc_remove_device +EXPORT_SYMBOL_GPL drivers/usb/dwc3/dwc3-omap 0x4db92025 dwc3_omap_mailbox +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x05351f6b usb_function_deactivate +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x0c4cc39c usb_function_activate +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x107b00bd usb_add_config_only +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x15f93197 usb_string_id +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x193dfaa0 usb_composite_probe +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x1e4ba00a config_ep_by_speed +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x245f37e6 usb_string_ids_tab +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x28d954e3 usb_string_ids_n +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x2959543c usb_get_function_instance +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x2d2eed12 usb_function_register +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x2e09263f usb_copy_descriptors +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x305bf6f1 usb_remove_function +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x306f08f4 usb_put_function_instance +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x319937fb usb_function_unregister +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x3853d608 usb_get_function +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x4cfc1265 usb_interface_id +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x4fdf05f4 usb_ep_autoconfig_reset +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x5b830911 usb_composite_overwrite_options +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x5f775bd5 usb_ep_autoconfig +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x835ea00e usb_free_all_descriptors +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x94d7075a usb_gadget_get_string +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xab4fe1c1 usb_add_function +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xac832230 usb_ep_autoconfig_ss +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xadc015fa usb_assign_descriptors +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xae4ff571 usb_composite_unregister +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xc9320da9 usb_put_function +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xd291c5b5 usb_add_config +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xd2ea2134 usb_descriptor_fillbuf +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xd5f00895 usb_composite_setup_continue +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xf474a207 usb_gadget_config_buf +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xfd75322d usb_gstrings_attach +EXPORT_SYMBOL_GPL drivers/usb/gadget/u_serial 0x33bfdca2 gserial_alloc_line +EXPORT_SYMBOL_GPL drivers/usb/gadget/u_serial 0x46e5503e gserial_connect +EXPORT_SYMBOL_GPL drivers/usb/gadget/u_serial 0x8e27d6de gs_alloc_req +EXPORT_SYMBOL_GPL drivers/usb/gadget/u_serial 0xb6652875 gserial_free_line +EXPORT_SYMBOL_GPL drivers/usb/gadget/u_serial 0xc8ea0ebc gserial_disconnect +EXPORT_SYMBOL_GPL drivers/usb/gadget/u_serial 0xf1981607 gs_free_req +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc-core 0x053f1e5c usb_add_gadget_udc_release +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc-core 0x0e997bc5 udc_attach_driver +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc-core 0x29b9f0c5 usb_gadget_unregister_driver +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc-core 0x4e568ee8 usb_gadget_unmap_request +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc-core 0x77f5c05c usb_gadget_probe_driver +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc-core 0x88503bf2 usb_del_gadget_udc +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc-core 0x942177e8 usb_gadget_set_state +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc-core 0x9d50ede9 usb_gadget_map_request +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc-core 0xd1d229c4 usb_add_gadget_udc +EXPORT_SYMBOL_GPL drivers/usb/misc/ezusb 0x49f18b5a ezusb_fx1_ihex_firmware_download +EXPORT_SYMBOL_GPL drivers/usb/misc/ezusb 0xc28a885f ezusb_fx1_set_reset +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x14f97df1 usb_ftdi_elan_edset_input +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x2dbbbe79 usb_ftdi_elan_write_pcimem +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x428c9920 usb_ftdi_elan_edset_empty +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x4ba1d8ef usb_ftdi_elan_edset_flush +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x4bca4119 usb_ftdi_elan_edset_single +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x58513498 usb_ftdi_elan_edset_setup +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x90d3ef29 usb_ftdi_elan_edset_output +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x95c5d415 ftdi_elan_gone_away +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0xdfb2734e usb_ftdi_elan_read_pcimem +EXPORT_SYMBOL_GPL drivers/usb/musb/musb_hdrc 0x25689d1e musb_interrupt +EXPORT_SYMBOL_GPL drivers/usb/musb/tusb6010 0xb180ff8b tusb_get_revision +EXPORT_SYMBOL_GPL drivers/usb/phy/phy-isp1301 0x906c80e7 isp1301_get_client +EXPORT_SYMBOL_GPL drivers/usb/phy/phy-omap-control 0xbd7cb77b omap_control_usb_set_mode +EXPORT_SYMBOL_GPL drivers/usb/phy/phy-omap-control 0xd4939deb omap_control_usb3_phy_power +EXPORT_SYMBOL_GPL drivers/usb/phy/phy-omap-control 0xe9daa68c omap_control_usb_phy_power +EXPORT_SYMBOL_GPL drivers/usb/phy/phy-omap-control 0xf297a3e0 omap_get_control_dev +EXPORT_SYMBOL_GPL drivers/usb/phy/phy-samsung-usb 0x2fa04fbf samsung_usbphy_rate_to_clksel_64xx +EXPORT_SYMBOL_GPL drivers/usb/phy/phy-samsung-usb 0x3a68aa68 samsung_usbphy_cfg_sel +EXPORT_SYMBOL_GPL drivers/usb/phy/phy-samsung-usb 0x62f68a51 samsung_usbphy_get_refclk_freq +EXPORT_SYMBOL_GPL drivers/usb/phy/phy-samsung-usb 0x6ca2215e samsung_usbphy_set_isolation_4210 +EXPORT_SYMBOL_GPL drivers/usb/phy/phy-samsung-usb 0x88bb661f samsung_usbphy_rate_to_clksel_4x12 +EXPORT_SYMBOL_GPL drivers/usb/phy/phy-samsung-usb 0xe0d673e4 samsung_usbphy_parse_dt +EXPORT_SYMBOL_GPL drivers/usb/phy/phy-samsung-usb 0xfbfae0e6 samsung_usbphy_set_type +EXPORT_SYMBOL_GPL drivers/usb/serial/usb_wwan 0x006506bc usb_wwan_port_probe +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x081f3411 usb_serial_generic_throttle +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x0948745e usb_serial_generic_open +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x0b6fe5c3 usb_serial_generic_submit_read_urbs +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x12782889 usb_serial_generic_wait_until_sent +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x1483267a usb_serial_generic_resume +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x15b4e3b6 usb_serial_generic_unthrottle +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x42fdcbf3 usb_serial_generic_get_icount +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x6fbbfa15 usb_serial_generic_tiocmiwait +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x7b93739a usb_serial_handle_sysrq_char +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x815a8d41 usb_serial_generic_read_bulk_callback +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x90c93a53 usb_serial_deregister_drivers +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x9801ab1a usb_serial_generic_close +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xa53e7465 usb_serial_handle_break +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xd9f76c00 usb_serial_register_drivers +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xe01620ce usb_serial_generic_chars_in_buffer +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xe26452ee usb_serial_handle_dcd_change +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xe6f4a958 usb_serial_generic_write +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xed96d04c usb_serial_generic_write_bulk_callback +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xeeffe189 usb_serial_port_softint +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xf76402ef usb_serial_generic_process_read_urb +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x014d87a3 usb_stor_ctrl_transfer +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x1a30e294 usb_stor_transparent_scsi_command +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x1bc3edc2 usb_stor_sense_invalidCDB +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x20f57ebc usb_stor_CB_transport +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x23a634fd usb_stor_pre_reset +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x5c22e4a9 usb_stor_post_reset +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x5d3a82e8 usb_stor_reset_resume +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x604f22c4 usb_stor_CB_reset +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x63f35e46 usb_stor_suspend +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x6e7082eb usb_stor_resume +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x73617875 usb_stor_control_msg +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x82aa9445 usb_stor_bulk_srb +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x837fed0f usb_stor_Bulk_reset +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x876c2ae8 usb_stor_set_xfer_buf +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x8c09e5c0 fill_inquiry_response +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x90b7225b usb_stor_Bulk_transport +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xb35269a4 usb_stor_bulk_transfer_sg +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xb71e16ef usb_stor_probe1 +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xbc9e3bcd usb_stor_access_xfer_buf +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xc0d6d5fe usb_stor_clear_halt +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xc9c47245 usb_stor_disconnect +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xd205540e usb_stor_probe2 +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xf1207631 usb_stor_bulk_transfer_buf +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0x01151d20 wa_create +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0x78f81a29 __wa_destroy +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0xa0376b3e wa_urb_enqueue +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0xa2c1be96 wa_urb_dequeue +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0xc17fafe1 rpipe_ep_disable +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0xcb55ad58 rpipe_destroy +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0xf4654c3f wa_urb_enqueue_run +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x0bb6bf5e wusb_cluster_id_get +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x0cfa70ee wusbhc_mmcie_set +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x240224a0 wusbhc_chid_set +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x30aed983 wusbhc_create +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x344132fb wusbhc_b_destroy +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x3d2d8e56 wusbhc_reset_all +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x4ea79286 __wusb_dev_get_by_usb_dev +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x538af8d2 wusbhc_b_create +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x70d4b8f1 wusbhc_rh_control +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x7f0b7631 wusb_dev_destroy +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x9754538a wusbhc_destroy +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x98551f50 wusbhc_handle_dn +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xb01ddff3 wusbhc_mmcie_rm +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xb725d128 wusb_cluster_id_put +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xb7ca5505 wusbhc_rh_start_port_reset +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xba9851b0 wusbhc_giveback_urb +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xcc848b4f wusbhc_rh_status_data +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xf770a6b4 wusbd +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xfe2e17d7 wusb_et_name +EXPORT_SYMBOL_GPL drivers/uwb/i1480/dfu/i1480-dfu-usb 0x2f387f78 i1480_rceb_check +EXPORT_SYMBOL_GPL drivers/uwb/i1480/dfu/i1480-dfu-usb 0xb5ee0dc2 i1480_cmd +EXPORT_SYMBOL_GPL drivers/uwb/i1480/dfu/i1480-dfu-usb 0xcfdbd083 i1480_fw_upload +EXPORT_SYMBOL_GPL drivers/uwb/umc 0x1af5a786 umc_device_register +EXPORT_SYMBOL_GPL drivers/uwb/umc 0x2c1d21fb umc_driver_unregister +EXPORT_SYMBOL_GPL drivers/uwb/umc 0x61c497f7 umc_device_create +EXPORT_SYMBOL_GPL drivers/uwb/umc 0xb3584bd8 __umc_driver_register +EXPORT_SYMBOL_GPL drivers/uwb/umc 0xc465add0 umc_controller_reset +EXPORT_SYMBOL_GPL drivers/uwb/umc 0xda09b5d4 umc_device_unregister +EXPORT_SYMBOL_GPL drivers/uwb/umc 0xe978202e umc_match_pci_id +EXPORT_SYMBOL_GPL drivers/uwb/umc 0xebb99bac umc_bus_type +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x001b11cb uwb_rc_reset_all +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x0b6e97ff uwb_rc_neh_grok +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x0b8aad57 uwb_est_unregister +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x0cc5fb4c uwb_rc_vcmd +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x193a589a uwb_rc_cmd_async +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x2d8ea2aa uwb_rc_cmd +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x2e59ce49 uwb_rc_init +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x3071e78a uwb_rc_post_reset +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x34606970 uwb_rc_put +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x3643e4ce uwb_rsv_create +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x3ee1d30b uwb_rc_get_by_dev +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x40bdddea uwb_notifs_deregister +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x461e18f8 uwb_rc_pre_reset +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x46666938 uwb_rc_dev_addr_get +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x4bc196ad __uwb_rc_try_get +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x4d57ae3c uwb_rsv_type_str +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x515f87b9 uwb_rc_alloc +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x52e04160 uwb_rc_neh_error +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x58f90a94 uwb_dev_for_each +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x5e4bc088 __uwb_addr_print +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x6ed1dd69 uwb_radio_start +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x7bf0636c uwb_notifs_register +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x7c9b3112 uwb_pal_unregister +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x7dcfcd23 uwb_ie_next +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x850e2b1f uwb_rsv_accept +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x98413234 uwb_rsv_state_str +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x9ac7df0f uwb_rsv_terminate +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xa4113b9a uwb_dev_try_get +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xad92d263 uwb_pal_register +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xb18ecdef uwb_est_find_size +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xb1afc34e uwb_rsv_establish +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xb9355aa4 uwb_rsv_get_usable_mas +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xc5a66855 uwb_rsv_modify +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xc6b8a9e4 uwb_pal_init +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xd8848fd4 uwb_radio_stop +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xd9234c6d uwb_rc_ie_add +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xdda34e13 uwb_rc_mac_addr_get +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xde7f572a uwb_rc_rm +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xe1716f06 uwb_est_register +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xe4243458 uwb_rc_add +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xe8066751 uwb_rc_ie_rm +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xf541cebf uwb_rsv_destroy +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xf6f9a949 uwb_rc_get_by_grandpa +EXPORT_SYMBOL_GPL drivers/uwb/whci 0xbdb86f64 whci_wait_for +EXPORT_SYMBOL_GPL drivers/vfio/vfio 0x0f267d74 vfio_del_group_dev +EXPORT_SYMBOL_GPL drivers/vfio/vfio 0x21216f00 vfio_add_group_dev +EXPORT_SYMBOL_GPL drivers/vfio/vfio 0x7b0232ca vfio_device_get_from_dev +EXPORT_SYMBOL_GPL drivers/vfio/vfio 0x95258207 vfio_device_data +EXPORT_SYMBOL_GPL drivers/vfio/vfio 0x969c73d9 vfio_device_put +EXPORT_SYMBOL_GPL drivers/vfio/vfio 0xaa654f04 vfio_unregister_iommu_driver +EXPORT_SYMBOL_GPL drivers/vfio/vfio 0xba0d673f vfio_register_iommu_driver +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x06ab8652 vhost_poll_init +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x0c28c164 vhost_dev_stop +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x1d55a257 vhost_dev_set_owner +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x26325d6b vhost_dev_init +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x269f7a09 vhost_dev_reset_owner_prepare +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x2772ac57 vhost_poll_stop +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x2abb43b1 vhost_init_used +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x32c6091c vhost_dev_reset_owner +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x3ac8c76f vhost_work_flush +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x420bc6de vhost_dev_check_owner +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x444632a5 vhost_poll_queue +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x45c2b736 vhost_work_init +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x61a9b130 vhost_log_access_ok +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x750406e5 vhost_add_used_and_signal_n +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x7651ee6d vhost_add_used_n +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x7e02dc01 vhost_enable_notify +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x7e8bae16 vhost_add_used_and_signal +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x843d39c1 vhost_vq_access_ok +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x84c93f14 vhost_dev_cleanup +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x884c6241 vhost_log_write +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x8f59bf69 vhost_poll_flush +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x900124af vhost_dev_ioctl +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xa76c79d1 vhost_poll_start +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xafdd143a vhost_work_queue +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xb7f9b6bb vhost_get_vq_desc +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xc1aa5caf vhost_vring_ioctl +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xd49224ae vhost_signal +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xd7a59cba vhost_discard_vq_desc +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xe2164fa8 vhost_add_used +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xeaeaa759 vhost_disable_notify +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xfa46e7c0 vhost_dev_has_owner +EXPORT_SYMBOL_GPL drivers/video/auo_k190x 0x0c06e2aa auok190x_send_cmdargs_pixels +EXPORT_SYMBOL_GPL drivers/video/auo_k190x 0x4374a658 auok190x_common_probe +EXPORT_SYMBOL_GPL drivers/video/auo_k190x 0x466d8f63 auok190x_send_cmdargs +EXPORT_SYMBOL_GPL drivers/video/auo_k190x 0x48509419 auok190x_send_cmdargs_pixels_nowait +EXPORT_SYMBOL_GPL drivers/video/auo_k190x 0x554a322d auok190x_common_remove +EXPORT_SYMBOL_GPL drivers/video/auo_k190x 0x65e06169 auok190x_send_command +EXPORT_SYMBOL_GPL drivers/video/auo_k190x 0x77f107b7 auok190x_read_cmdargs +EXPORT_SYMBOL_GPL drivers/video/auo_k190x 0xd48fa4f6 auok190x_send_command_nowait +EXPORT_SYMBOL_GPL drivers/video/auo_k190x 0xf6a673d5 auok190x_send_cmdargs_nowait +EXPORT_SYMBOL_GPL drivers/video/auo_k190x 0xf6c0fc36 auok190x_pm +EXPORT_SYMBOL_GPL drivers/video/backlight/apple_bl 0x2c63e051 apple_bl_register +EXPORT_SYMBOL_GPL drivers/video/backlight/apple_bl 0xdab0f892 apple_bl_unregister +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x28087871 ili9320_suspend +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x4f42fbfb ili9320_write_regs +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x924d630b ili9320_shutdown +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x9fb528a3 ili9320_resume +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0xb9d1fe10 ili9320_probe_spi +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0xd3ec7a7c ili9320_write +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0xd94399d0 ili9320_remove +EXPORT_SYMBOL_GPL drivers/video/fb_ddc 0xe7f2d257 fb_ddc_read +EXPORT_SYMBOL_GPL drivers/video/fb_sys_fops 0x6dee8203 fb_sys_write +EXPORT_SYMBOL_GPL drivers/video/fb_sys_fops 0xbd149434 fb_sys_read +EXPORT_SYMBOL_GPL drivers/video/sis/sisfb 0x278c3817 sis_malloc_new +EXPORT_SYMBOL_GPL drivers/video/sis/sisfb 0xee07d833 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 0x56fc0a05 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 0x2c7306e2 w1_write_block +EXPORT_SYMBOL_GPL drivers/w1/wire 0x3ad21319 w1_reset_bus +EXPORT_SYMBOL_GPL drivers/w1/wire 0x54a4d6c5 w1_touch_block +EXPORT_SYMBOL_GPL drivers/w1/wire 0x57ea5353 w1_reset_select_slave +EXPORT_SYMBOL_GPL drivers/w1/wire 0x7c2f2afb w1_calc_crc8 +EXPORT_SYMBOL_GPL drivers/w1/wire 0x973802dc w1_read_block +EXPORT_SYMBOL_GPL drivers/w1/wire 0x9bf9df57 w1_read_8 +EXPORT_SYMBOL_GPL drivers/w1/wire 0xaea49035 w1_next_pullup +EXPORT_SYMBOL_GPL drivers/w1/wire 0xbc75cbab w1_reset_resume_command +EXPORT_SYMBOL_GPL drivers/w1/wire 0xcef4b7f3 w1_write_8 +EXPORT_SYMBOL_GPL drivers/xen/xen-privcmd 0xb0b3e7fe xen_privcmd_fops +EXPORT_SYMBOL_GPL fs/dlm/dlm 0x9321df95 dlm_lock +EXPORT_SYMBOL_GPL fs/dlm/dlm 0x969ed302 dlm_posix_unlock +EXPORT_SYMBOL_GPL fs/dlm/dlm 0xc6dc8c2f dlm_new_lockspace +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 0xdd0ae199 dlm_posix_get +EXPORT_SYMBOL_GPL fs/dlm/dlm 0xf2f93b47 dlm_posix_lock +EXPORT_SYMBOL_GPL fs/fscache/fscache 0x092cf98e fscache_object_sleep_till_congested +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x043cbfb8 nlmclnt_init +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x17ce645d locks_end_grace +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x348ef36f nlmsvc_ops +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x37428575 nlmclnt_proc +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x6d472420 nlmclnt_done +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x77e35ccc nlmsvc_unlock_all_by_ip +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x8cf54455 locks_start_grace +EXPORT_SYMBOL_GPL fs/lockd/lockd 0xb6bd4ec1 lockd_up +EXPORT_SYMBOL_GPL fs/lockd/lockd 0xce8a1a74 locks_in_grace +EXPORT_SYMBOL_GPL fs/lockd/lockd 0xe2317662 nlmsvc_unlock_all_by_sb +EXPORT_SYMBOL_GPL fs/lockd/lockd 0xe92356cd lockd_down +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x00d288c0 nfs_refresh_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x020a8541 nfs_flock +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x02d7bbef nfs_request_add_commit_list +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x040cdc6a nfs_pageio_reset_read_mds +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x08d53410 nfs_sops +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x08edb294 nfs_file_operations +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x0c993daf nfs_fs_type +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x1005ed45 nfs_server_insert_lists +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x126db3c7 nfs_file_write +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x12a5c379 nfs_clone_sb_security +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x18b7cdfa nfs_instantiate +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x19c79eab nfs_show_stats +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x1b21c74b nfs_commitdata_release +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x1d3f66a5 nfs_init_commit +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x1e0fd396 nfs_pageio_init +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x1e9952d9 nfs_setlease +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x1fcd7b8c nfs_access_zap_cache +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x206cf518 nfs_probe_fsinfo +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x214894ce nfs_initiate_read +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x23a27e3f nfs_readdata_release +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x26069bfc nfs_zap_acl_cache +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x26884ff7 nfs_alloc_fhandle +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x2d7d62c5 nfs_clone_server +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x3263df10 nfs_init_client +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x3406a094 nfs_pageio_init_read +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x37bef879 nfs_retry_commit +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x383e876c nfs_create_server +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x39e05ac3 nfs_idmap_cache_timeout +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x3ca31f35 nfs_net_id +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x3cd3edf3 nfs_show_path +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x3db86ef7 nfs_file_splice_read +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x3dbb1c5b nfs_create_rpc_client +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x3e048baf nfs_writehdr_alloc +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x3f2690f2 nfs_check_flags +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x419e7cd4 unregister_nfs_version +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x42f2c81f nfs4_client_id_uniquifier +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x4392a255 nfs_do_submount +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x4531aa00 nfs_remount +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x46fa8775 nfs_access_set_mask +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x47caa9bd nfs4_fs_type +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x4edbe9e8 nfs_drop_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x50ebf3c5 nfs_permission +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x5120fc39 nfs_file_llseek +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x517de56f nfs_writedata_release +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x51892d61 nfs_callback_set_tcpport +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x52304b58 nfs_force_lookup_revalidate +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x52a27549 nfs_put_client +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x5764d832 nfs_path +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x5bf3efa4 nfs_readhdr_free +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x5ca9c57a nfs_fhget +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x5e1d863a nfs_sockaddr_match_ipaddr +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x606a05f3 nfs_fs_mount_common +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x643b230f nfs_pageio_reset_write_mds +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x65866640 nfs_access_add_cache +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x671bee77 nfs_fill_super +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x68ea003e nfs_mknod +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x6a65f458 nfs_file_release +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x6a7a517a nfs_show_devname +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x6b677792 nfs_file_fsync_commit +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x6b992d12 nfs_try_mount +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x6d7f3c1f nfs_alloc_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x6db875c2 nfs_alloc_fattr +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7116ae75 nfs_post_op_update_inode_force_wcc +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x72526efb nfs_pageio_init_write +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x733692b2 nfs_wb_all +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x73613daf nfs_inode_attach_open_context +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x73b7badd nfs_initiate_commit +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x742a2c5e nfs_post_op_update_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x75785245 nfs_sb_active +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x76adfed1 nfs_generic_pg_test +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x77e56837 register_nfs_version +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x796d7233 nfs_may_open +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7b13f67e nfs_generic_flush +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7b1e1adf nfs_kill_super +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7f11effe nfs_show_options +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x804d60a6 nfs_request_remove_commit_list +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x84b763ef nfs_mark_client_ready +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x89bc5a64 nfs_wait_bit_killable +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x8b50b61e nfs_setattr_update_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x8e3546da nfs_destroy_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x90a5530f nfsiod_workqueue +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x91d1fe52 max_session_slots +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x921e97cf nfs_mkdir +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x96a87bcf nfs_initiate_write +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x97b72784 nfs_close_context +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x9833190f nfs_revalidate_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x9a58f434 put_nfs_open_context +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x9d57b646 nfs_generic_pagein +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xa2998357 nfs_atomic_open +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xa58719e7 nfs_file_set_open_context +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xa5c55a49 nfs_free_client +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xa7d699be nfs_fs_mount +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xa85a5b23 nfs_init_server_rpcclient +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xa8d2d1ce nfs_callback_tcpport +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xa8e9e1ae send_implementation_id +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xa904f462 nfs_server_copy_userdata +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xaa0df63f nfs_unlink +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xaaa14361 nfs_dreq_bytes_left +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xab30cec8 alloc_nfs_open_context +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xab93f352 nfs_file_mmap +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xac333ed4 nfs_write_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xb357ca4d nfs_set_sb_security +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xb69f52a7 nfs_commitdata_alloc +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xb88d6a5a nfs_clear_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xb8c1d513 nfs4_dentry_operations +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xb94f65ae nfs_symlink +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xb98b28ce nfs_fscache_set_inode_cookie +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xba8f2994 nfs_sb_deactive +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xbe9e5c19 nfs_init_cinfo +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xbff003fd nfs_file_splice_write +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xc005d00a nfs_file_read +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xc087eaf4 nfs_pageio_add_request +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xc0b2c253 nfs_rename +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xc5ef47d5 nfs_init_timeout_values +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xca3e896e nfs_pageio_complete +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xcd81b79c nfs_create +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xce03e6fa nfs_alloc_server +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xd0392494 nfs_writehdr_free +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xd1063a5b nfs4_label_alloc +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xd126919a nfs_readhdr_alloc +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xd3593d0e get_nfs_open_context +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xd5c0e42e nfs_statfs +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xd639843b nfs_setattr +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xd6f10e93 nfs_wait_client_init_complete +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xda432f43 nfs_getattr +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xdae9b5d7 nfs4_disable_idmapping +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xe53ac71d nfs_rmdir +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xe713c3da nfs_setsecurity +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xeadda0e7 nfs_file_flush +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xec47d62e nfs_invalidate_atime +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xed9981bb nfs_pgheader_init +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xedbb5ef9 nfs_free_server +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xedbeccff nfs_lock +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xeeceb206 nfs_fattr_init +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xf058c349 nfs_dentry_operations +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xf1bfa60f nfs_alloc_client +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xf2d0bc26 nfs_get_client +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xf56f885e nfs_put_super +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xf934ea3d nfs_umount_begin +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xfbacca93 nfs_commit_free +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xfd399987 nfs_submount +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xfd7de726 nfs_lookup +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xff420766 nfs_link +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x0806a848 nfs4_set_rw_stateid +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x08343518 nfs4_mark_deviceid_unavailable +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x11f49857 pnfs_generic_pg_writepages +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x1281d453 nfs4_test_deviceid_unavailable +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x12aff139 pnfs_generic_pg_init_read +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x157db421 nfs4_find_get_deviceid +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x170f3ed6 nfs41_maxgetdevinfo_overhead +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x1f09dcdf nfs4_init_ds_session +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x1fcf8231 nfs4_schedule_session_recovery +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x28e5ae83 nfs4_schedule_lease_recovery +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x2dd1c0c3 pnfs_destroy_layout +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x317d5e9c pnfs_generic_pg_init_write +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x358c6e38 nfs4_schedule_stateid_recovery +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x36db7d54 nfs_remove_bad_delegation +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x3a0a8110 nfs41_setup_sequence +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x424a976b pnfs_unregister_layoutdriver +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x4adb2fce pnfs_update_layout +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x6458ed6b _pnfs_return_layout +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x659abe1a nfs4_insert_deviceid_node +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x68a8138b pnfs_ld_read_done +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x6adf8366 pnfs_register_layoutdriver +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x6c2dd4f2 nfs4_proc_getdevicelist +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x79efd573 pnfs_put_lseg +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x7d396c93 pnfs_generic_pg_readpages +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x936d9827 nfs4_init_deviceid_node +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x9908c49b pnfs_writehdr_free +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x9ca9391e pnfs_set_layoutcommit +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xaa9c4f49 nfs4_delete_deviceid +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xb0f4a92a pnfs_readhdr_free +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xc8cfc7c4 nfs4_set_ds_client +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xd2552927 pnfs_write_done_resend_to_mds +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xd2b3a001 nfs4_put_deviceid_node +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xdbbea634 pnfs_generic_pg_test +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xe192112a nfs4_proc_getdeviceinfo +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xe5c3562d pnfs_read_done_resend_to_mds +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xed15fb41 nfs4_print_deviceid +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xf21f940b pnfs_ld_write_done +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xf923653e pnfs_set_lo_fail +EXPORT_SYMBOL_GPL fs/nfs_common/nfs_acl 0x325162d3 nfsacl_encode +EXPORT_SYMBOL_GPL fs/nfs_common/nfs_acl 0x58b54e60 nfsacl_decode +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x05f80838 o2nm_get_node_by_ip +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x0f5013b7 o2nm_node_put +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x180acbfd o2hb_register_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x1b89c6ee o2hb_fill_node_map +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x1cb231d0 mlog_not_bits +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x1d747ce3 o2hb_check_node_heartbeating +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 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 0x97e5234d 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 0xb8e5a35f o2hb_setup_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xbaeb4700 o2hb_check_node_heartbeating_from_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xbb91311a o2nm_node_get +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 0xd859ac8c o2net_fill_node_map +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xe17f36b1 o2nm_get_node_by_num +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xf1a5611d o2net_unregister_handler_list +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x01c1a55a dlmunlock +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x3dcaad29 dlm_print_one_lock +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x43719ad6 dlm_register_eviction_cb +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x521ee6f0 dlm_register_domain +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x7a1211f8 dlm_setup_eviction_cb +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x834f8c25 dlmlock +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xd650bfa5 dlm_unregister_domain +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xd7ba575e dlm_errmsg +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xd8fa57a6 dlm_unregister_eviction_cb +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xfb86b96f dlm_errname +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x025e2d69 ocfs2_cluster_connect_agnostic +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x0562c415 ocfs2_cluster_this_node +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x0e1904a2 ocfs2_stack_glue_register +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x16b2e575 ocfs2_dlm_unlock +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x4d3af7fa ocfs2_cluster_hangup +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x5469ce31 ocfs2_dlm_lvb_valid +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x7083dbd5 ocfs2_dlm_dump_lksb +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x792f7395 ocfs2_plock +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x89502fe7 ocfs2_cluster_connect +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xa02e78ab 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/bch 0x231d70fc encode_bch +EXPORT_SYMBOL_GPL lib/bch 0x6b770f49 decode_bch +EXPORT_SYMBOL_GPL lib/bch 0x9463ff71 init_bch +EXPORT_SYMBOL_GPL lib/bch 0xbdf512de free_bch +EXPORT_SYMBOL_GPL lib/notifier-error-inject 0x8cc5c3f0 notifier_err_inject_dir +EXPORT_SYMBOL_GPL lib/notifier-error-inject 0xd494b5f6 notifier_err_inject_init +EXPORT_SYMBOL_GPL lib/raid6/raid6_pq 0x021957e1 raid6_datap_recov +EXPORT_SYMBOL_GPL lib/raid6/raid6_pq 0x05513b71 raid6_call +EXPORT_SYMBOL_GPL lib/raid6/raid6_pq 0x0f8a2742 raid6_2data_recov +EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0x201d8ea3 encode_rs8 +EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0x29fa419f decode_rs8 +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 0x1c8213d1 garp_register_application +EXPORT_SYMBOL_GPL net/802/garp 0x400f397a garp_init_applicant +EXPORT_SYMBOL_GPL net/802/garp 0x554a81c5 garp_request_join +EXPORT_SYMBOL_GPL net/802/garp 0x691560fb garp_uninit_applicant +EXPORT_SYMBOL_GPL net/802/garp 0x7f1ceff0 garp_unregister_application +EXPORT_SYMBOL_GPL net/802/garp 0xa435b423 garp_request_leave +EXPORT_SYMBOL_GPL net/802/mrp 0x0b03d116 mrp_request_leave +EXPORT_SYMBOL_GPL net/802/mrp 0x8d2fc496 mrp_register_application +EXPORT_SYMBOL_GPL net/802/mrp 0x90357ed7 mrp_unregister_application +EXPORT_SYMBOL_GPL net/802/mrp 0x95f362b1 mrp_init_applicant +EXPORT_SYMBOL_GPL net/802/mrp 0xb76409f5 mrp_uninit_applicant +EXPORT_SYMBOL_GPL net/802/mrp 0xf8ddf0ca mrp_request_join +EXPORT_SYMBOL_GPL net/802/stp 0x0e94bc07 stp_proto_register +EXPORT_SYMBOL_GPL net/802/stp 0x1b2965cc stp_proto_unregister +EXPORT_SYMBOL_GPL net/9p/9pnet 0x2604d128 p9_client_xattrcreate +EXPORT_SYMBOL_GPL net/9p/9pnet 0x8ffac70c p9_client_xattrwalk +EXPORT_SYMBOL_GPL net/atm/atm 0xb09faf79 register_atmdevice_notifier +EXPORT_SYMBOL_GPL net/atm/atm 0xcfb6a3da 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 0xf459e811 ax25_register_pid +EXPORT_SYMBOL_GPL net/bluetooth/bluetooth 0x5e549f26 bt_debugfs +EXPORT_SYMBOL_GPL net/dccp/dccp 0x01e98e72 dccp_sync_mss +EXPORT_SYMBOL_GPL net/dccp/dccp 0x067b8ad5 dccp_poll +EXPORT_SYMBOL_GPL net/dccp/dccp 0x07a0d650 dccp_death_row +EXPORT_SYMBOL_GPL net/dccp/dccp 0x0881bbb5 dccp_sendmsg +EXPORT_SYMBOL_GPL net/dccp/dccp 0x0e6cff1b dccp_close +EXPORT_SYMBOL_GPL net/dccp/dccp 0x1093ae4e dccp_init_sock +EXPORT_SYMBOL_GPL net/dccp/dccp 0x16621cf5 dccp_connect +EXPORT_SYMBOL_GPL net/dccp/dccp 0x1d99d49a dccp_timestamp +EXPORT_SYMBOL_GPL net/dccp/dccp 0x2a7693b0 dccp_disconnect +EXPORT_SYMBOL_GPL net/dccp/dccp 0x3b4cb54a dccp_send_sync +EXPORT_SYMBOL_GPL net/dccp/dccp 0x425619b5 dccp_child_process +EXPORT_SYMBOL_GPL net/dccp/dccp 0x48efc797 dccp_create_openreq_child +EXPORT_SYMBOL_GPL net/dccp/dccp 0x4b98c0d6 dccp_ioctl +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 0x51a7a834 dccp_send_ack +EXPORT_SYMBOL_GPL net/dccp/dccp 0x681fb30b dccp_set_state +EXPORT_SYMBOL_GPL net/dccp/dccp 0x68bc89e3 dccp_make_response +EXPORT_SYMBOL_GPL net/dccp/dccp 0x6cc04fae dccp_parse_options +EXPORT_SYMBOL_GPL net/dccp/dccp 0x6e6a597b dccp_setsockopt +EXPORT_SYMBOL_GPL net/dccp/dccp 0x78262e28 dccp_getsockopt +EXPORT_SYMBOL_GPL net/dccp/dccp 0x86be7924 dccp_packet_name +EXPORT_SYMBOL_GPL net/dccp/dccp 0x86d0475c dccp_destroy_sock +EXPORT_SYMBOL_GPL net/dccp/dccp 0x8eb68a86 dccp_orphan_count +EXPORT_SYMBOL_GPL net/dccp/dccp 0x92b2f38c dccp_rcv_established +EXPORT_SYMBOL_GPL net/dccp/dccp 0x9598d24d dccp_ackvec_parsed_cleanup +EXPORT_SYMBOL_GPL net/dccp/dccp 0x9cfba494 dccp_reqsk_init +EXPORT_SYMBOL_GPL net/dccp/dccp 0xa2ecb82f dccp_ctl_make_reset +EXPORT_SYMBOL_GPL net/dccp/dccp 0xa7de88a9 dccp_feat_nn_get +EXPORT_SYMBOL_GPL net/dccp/dccp 0xaac988ff dccp_reqsk_send_ack +EXPORT_SYMBOL_GPL net/dccp/dccp 0xb4ea5483 dccp_done +EXPORT_SYMBOL_GPL net/dccp/dccp 0xc0b062ca inet_dccp_listen +EXPORT_SYMBOL_GPL net/dccp/dccp 0xc7527dec dccp_check_req +EXPORT_SYMBOL_GPL net/dccp/dccp 0xce1bea8a dccp_insert_option +EXPORT_SYMBOL_GPL net/dccp/dccp 0xcea7ee40 dccp_rcv_state_process +EXPORT_SYMBOL_GPL net/dccp/dccp 0xe134679e dccp_recvmsg +EXPORT_SYMBOL_GPL net/dccp/dccp 0xe17f845b dccp_feat_signal_nn_change +EXPORT_SYMBOL_GPL net/dccp/dccp 0xe6eec659 dccp_shutdown +EXPORT_SYMBOL_GPL net/dccp/dccp 0xeb141511 dccp_hashinfo +EXPORT_SYMBOL_GPL net/dccp/dccp 0xf3017e21 dccp_statistics +EXPORT_SYMBOL_GPL net/dccp/dccp 0xf86c95e1 dccp_insert_option_elapsed_time +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x0e7e829b dccp_v4_request_recv_sock +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x1c1dc67d dccp_v4_connect +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x5d62443c dccp_v4_do_rcv +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x8c22265e dccp_v4_send_check +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x969c5ff4 dccp_v4_conn_request +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x9d388cf2 dccp_invalid_packet +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0x23164ba4 unregister_switch_driver +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0xc5936d84 register_switch_driver +EXPORT_SYMBOL_GPL net/ipv4/gre 0x0b043471 gre_build_header +EXPORT_SYMBOL_GPL net/ipv4/gre 0x445ada78 gre_del_protocol +EXPORT_SYMBOL_GPL net/ipv4/gre 0x7612846d gre_handle_offloads +EXPORT_SYMBOL_GPL net/ipv4/gre 0x8f366f84 gre_cisco_register +EXPORT_SYMBOL_GPL net/ipv4/gre 0xaa3adcf3 gre_cisco_unregister +EXPORT_SYMBOL_GPL net/ipv4/gre 0xe20ff5cc gre_add_protocol +EXPORT_SYMBOL_GPL net/ipv4/inet_diag 0x0c06811a inet_diag_bc_sk +EXPORT_SYMBOL_GPL net/ipv4/inet_diag 0x4c21c2ee inet_diag_dump_icsk +EXPORT_SYMBOL_GPL net/ipv4/inet_diag 0x4e1828c3 inet_diag_dump_one_icsk +EXPORT_SYMBOL_GPL net/ipv4/inet_diag 0x5b2dff8b inet_sk_diag_fill +EXPORT_SYMBOL_GPL net/ipv4/inet_diag 0x6ea83e13 inet_diag_unregister +EXPORT_SYMBOL_GPL net/ipv4/inet_diag 0xf34f0362 inet_diag_register +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x1a9e73b4 ip_tunnel_init +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x33c3bb2f ip_tunnel_dellink +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x342ccd30 ip_tunnel_newlink +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x3909709b ip_tunnel_setup +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x3c764b0d ip_tunnel_get_stats64 +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x83d28d68 ip_tunnel_lookup +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x88fcd36e ip_tunnel_change_mtu +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x8998c703 ip_tunnel_ioctl +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x99b5ad15 ip_tunnel_delete_net +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0xdc797d70 ip_tunnel_rcv +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0xe2f42fe3 ip_tunnel_xmit +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0xe6d24e53 ip_tunnel_init_net +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0xef4d19be ip_tunnel_uninit +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0xfacc3bb0 ip_tunnel_changelink +EXPORT_SYMBOL_GPL net/ipv4/netfilter/arp_tables 0x4737db5f arpt_alloc_initial_table +EXPORT_SYMBOL_GPL net/ipv4/netfilter/ip_tables 0x31a7af58 ipt_alloc_initial_table +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_ipv4 0xa59cc038 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 0x0ad5ad3b tcp_vegas_cwnd_event +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x34c4e819 tcp_vegas_pkts_acked +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x55b83f98 tcp_vegas_init +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0x7d64f853 tcp_vegas_state +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0xc3d735f7 tcp_vegas_get_info +EXPORT_SYMBOL_GPL net/ipv4/xfrm4_mode_tunnel 0x383104f7 xfrm4_mode_tunnel_input_register +EXPORT_SYMBOL_GPL net/ipv4/xfrm4_mode_tunnel 0x80f9597c xfrm4_mode_tunnel_input_deregister +EXPORT_SYMBOL_GPL net/ipv6/ip6_tunnel 0x2c380dd0 ip6_tnl_dst_reset +EXPORT_SYMBOL_GPL net/ipv6/ip6_tunnel 0x3b2336bf ip6_tnl_rcv_ctl +EXPORT_SYMBOL_GPL net/ipv6/ip6_tunnel 0x5c9d4895 ip6_tnl_xmit_ctl +EXPORT_SYMBOL_GPL net/ipv6/ip6_tunnel 0x60cab761 ip6_tnl_dst_store +EXPORT_SYMBOL_GPL net/ipv6/ip6_tunnel 0x8b7bd2ac ip6_tnl_dst_check +EXPORT_SYMBOL_GPL net/ipv6/netfilter/ip6_tables 0x335b046e ip6t_alloc_initial_table +EXPORT_SYMBOL_GPL net/ipv6/netfilter/nf_defrag_ipv6 0x6eb85693 nf_defrag_ipv6_enable +EXPORT_SYMBOL_GPL net/ipv6/netfilter/nf_nat_ipv6 0xc1d81fe2 nf_nat_icmpv6_reply_translation +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x18c761f5 l2tp_tunnel_sock_lookup +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x2be51679 l2tp_session_find_by_ifname +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x4ff79111 l2tp_session_find_nth +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x549ee197 l2tp_tunnel_sock_put +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x5d07a987 l2tp_session_delete +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x63a4e2a0 l2tp_xmit_skb +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x677c8d0c l2tp_session_find +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x8657c7e2 __l2tp_session_unhash +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x8cd1750e l2tp_tunnel_create +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xa7dd2a22 l2tp_udp_encap_recv +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xb34958bb l2tp_tunnel_delete +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xbcacbd3d l2tp_session_free +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xd19ba9e3 l2tp_tunnel_find +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xd58af791 l2tp_tunnel_closeall +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xd99a3fb6 l2tp_session_queue_purge +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xdb249307 l2tp_tunnel_find_nth +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xed767459 l2tp_session_create +EXPORT_SYMBOL_GPL net/l2tp/l2tp_netlink 0x337f2432 l2tp_nl_unregister_ops +EXPORT_SYMBOL_GPL net/l2tp/l2tp_netlink 0x7aa49e23 l2tp_nl_register_ops +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x14ef2870 ieee80211_iterate_active_interfaces +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x291cbceb ieee80211_ready_on_channel +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x59032fb4 ieee80211_request_smps +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x6a48b38b ieee80211_gtk_rekey_notify +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x988b781f ieee80211_remain_on_channel_expired +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xb17a6019 ieee80211_find_sta_by_ifaddr +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xb1a9a731 ieee80211_iterate_active_interfaces_atomic +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xbd1b8ca1 ieee80211_iter_chan_contexts_atomic +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xc6188f67 ieee80211_ave_rssi +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xc94b2d8c ieee80211_resume_disconnect +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x397f6231 ip_set_free +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x457dc87e ip_set_test +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x54c71a4f ip_set_type_unregister +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x6344eaf6 ip_set_alloc +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x6614ec9b ip_set_get_ip4_port +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x67da3d22 ip_set_add +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x7762965e ip_set_nfnl_put +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x7924b6de ip_set_hostmask_map +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x80ee118c ip_set_nfnl_get +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x81fff2d1 ip_set_netmask_map +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x83dfb707 ip_set_type_register +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x883d6572 ip_set_name_byindex +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x9e98722b ip_set_get_ipaddr6 +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xa293f8a6 ip_set_get_ipaddr4 +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xa2d623f3 ip_set_range_to_cidr +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xa46b0828 ip_set_get_byname +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xaf328c72 ip_set_get_ip_port +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xc3b062db ip_set_nfnl_get_byindex +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xceaa2280 ip_set_get_ip6_port +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xdb6be93a ip_set_get_extensions +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xfa214a11 ip_set_del +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xfda3ec7a ip_set_put_byindex +EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0x24c47b7d register_ip_vs_pe +EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0x8387663d unregister_ip_vs_pe +EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0x946f60cb ip_vs_conn_in_get_proto +EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0xebf34c8b 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 0x090f173c nf_ct_remove_expectations +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x09918833 nf_ct_l3proto_pernet_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x0e0741d9 nf_conntrack_l4proto_udp6 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x114ef8df __nf_ct_try_assign_helper +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x14838679 nf_ct_port_tuple_to_nlattr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x1908618e nf_conntrack_tuple_taken +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x1b0c4df3 nf_ct_nat_offset +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x1cd23346 __nf_ct_kill_acct +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x1f922a62 nf_nat_seq_adjust_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x1fe3dee6 __nf_conntrack_helper_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x262e230d nf_conntrack_in +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x287e6e13 nf_ct_l4proto_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x289c3714 nf_ct_alloc_hashtable +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x294b754e nf_conntrack_helper_try_module_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x2c4982b2 nf_conntrack_unregister_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x2c4bd585 nf_conntrack_flush_report +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x2ef60487 nf_conntrack_hash_check_insert +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x32267c0c nf_ct_timeout_find_get_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x327d9830 nf_ct_helper_expectfn_find_by_symbol +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x33c3a8b8 nf_ct_l3proto_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x35ee2a74 nf_conntrack_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x37386cac nf_conntrack_hash_rnd +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3c31235b nf_conntrack_l4proto_udp4 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3e05104f __nf_ct_expect_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3f1534a5 nf_ct_invert_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3f5b1415 nf_ct_port_nlattr_to_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x42fd042e __nf_ct_l4proto_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x45da0354 nf_ct_extend_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x4cc9536d nfnetlink_parse_nat_setup_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x4fb3ad89 nf_ct_get_tuplepr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x545750e1 nf_ct_expect_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x5b14276c nf_conntrack_helper_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x5d601149 nf_ct_helper_log +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x5e11f99b nf_ct_helper_expectfn_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x61e7812d nf_conntrack_l3proto_generic +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x62813e5c nf_ct_port_nlattr_tuple_size +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x633013d3 nf_connlabels_replace +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x68983e55 nf_ct_dying_timeout +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x693c3961 nf_ct_helper_hash +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6e224a7a need_conntrack +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x73189fb5 nf_connlabel_set +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x747f8a39 nf_ct_l3proto_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x74fc87d1 nf_ct_l3proto_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x757e48ce nf_ct_l4proto_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x78f9b710 nf_ct_l3proto_try_module_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7a889be4 nf_conntrack_lock +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7d5dea0a seq_print_acct +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7e5b1101 nf_ct_unlink_expect_report +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x820d1cba nf_conntrack_free +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x867959cf nf_ct_delete_from_lists +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x867c165e nf_ct_l3protos +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x887244f3 nf_ct_unexpect_related +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8f6cc299 nf_ct_helper_ext_add +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 0x9568fed2 nf_ct_expect_unregister_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x95e86906 nf_conntrack_helper_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa40da7e8 nf_ct_expect_register_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa4feea3c nf_ct_expect_init +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa6b67165 __nf_conntrack_confirm +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xab3d1f95 nf_ct_untracked_status_or +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xac56b85a nf_ct_l4proto_pernet_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xad1bb027 nf_ct_free_hashtable +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xae69b85f nf_ct_l3proto_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb13dfbb3 nf_ct_timeout_put_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb259d349 __nf_conntrack_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb602c57e nf_ct_l3proto_module_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb75284fe nf_conntrack_register_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb784ecd0 nf_ct_expect_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb957fdad __nf_ct_refresh_acct +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xbf036a52 nf_ct_expect_related_report +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc0240dd4 nf_conntrack_set_hashsize +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc18ac88d nf_ct_expect_hsize +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc300bd91 nf_ct_deliver_cached_events +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc40f284c nf_ct_helper_hsize +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc5db0ca0 nf_conntrack_l4proto_tcp4 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xd13f1d0f nf_ct_iterate_cleanup +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xd3e370c5 nf_ct_l3proto_pernet_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xd5622c28 nf_ct_l4proto_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xd596f4f2 nf_ct_get_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xdb85dbb2 nf_ct_l4proto_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xe08c27d6 nf_conntrack_alter_reply +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xe9837612 nf_conntrack_alloc +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xebc7d4be nf_ct_l4proto_pernet_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xec259db0 nf_ct_helper_expectfn_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xed27221d nf_ct_extend_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf38bcdf3 nf_conntrack_max +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf777c3e9 nf_connlabel_match +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf7ed6e22 nf_conntrack_l4proto_tcp6 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf987d583 nf_ct_expect_alloc +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xffa76491 nf_ct_helper_expectfn_find_by_name +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_amanda 0x04e99cff nf_nat_amanda_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_broadcast 0xe84e21b2 nf_conntrack_broadcast_help +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_ftp 0x3c3acafa nf_nat_ftp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x72d10a62 nat_t120_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x75bd5744 set_h245_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x891dd4d5 nat_callforwarding_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x9f1963c5 nat_rtp_rtcp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xa44b33d4 set_h225_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xc604bffe nat_h245_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xe1f6b2cf nat_q931_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xe43a8a29 set_ras_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xf9470107 get_h225_addr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0xfc98caf9 set_sig_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_irc 0x342abcc8 nf_nat_irc_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0xb212676d nf_nat_pptp_hook_exp_gre +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0xbef9848c nf_nat_pptp_hook_expectfn +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0xd238f707 nf_nat_pptp_hook_outbound +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0xf71bd6fd nf_nat_pptp_hook_inbound +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_proto_gre 0x20ef29f1 nf_ct_gre_keymap_destroy +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_proto_gre 0xcadec85c nf_ct_gre_keymap_add +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x46d1f7fc nf_nat_sdp_media_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x4a2d6a0b ct_sip_parse_header_uri +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x591caa38 nf_nat_sdp_port_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x6d7cd9c3 ct_sip_parse_numerical_param +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xa28aa7fe nf_nat_sdp_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xa75b3dab nf_nat_sip_expect_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xc903288c nf_nat_sdp_session_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xd110e10c ct_sip_parse_request +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xd3c1c616 nf_nat_sip_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xd4e74382 ct_sip_parse_address_param +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xe3274827 ct_sip_get_header +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xeea2bcf7 ct_sip_get_sdp_header +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xf6f6a92a nf_nat_sip_seq_adjust_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_snmp 0xa2184eb5 nf_nat_snmp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_tftp 0x5f6634fa nf_nat_tftp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x0d9bae4b nf_nat_l4proto_nlattr_to_range +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x131f636c nf_nat_l4proto_in_range +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x16ef5c60 nf_nat_packet +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x1ce7592f __nf_nat_l4proto_find +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x402c66c0 nf_nat_tcp_seq_adjust +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x4734ed32 nf_nat_l4proto_unique_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x47b5b334 nf_nat_l3proto_register +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x5ad15bf9 nf_nat_l4proto_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x81873fbb nf_nat_l3proto_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x9a6854eb nf_nat_l4proto_register +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x9ce5204c nf_nat_set_seq_adjust +EXPORT_SYMBOL_GPL net/netfilter/nf_tproxy_core 0x055a9051 nf_tproxy_assign_sock +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x42cfcd80 nfnetlink_unicast +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x47211e6d nfnetlink_alloc_skb +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x5ce3b588 nfnl_lock +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x649f2105 nfnetlink_send +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x81b09d5d nfnetlink_subsys_register +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xa7c3182f nfnetlink_set_err +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xbe0f2eb0 nfnetlink_subsys_unregister +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xc1b10bf8 nfnetlink_has_listeners +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xdb065657 nfnl_unlock +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink_acct 0x21f6bba6 nfnl_acct_find_get +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink_acct 0xaf8f2bd8 nfnl_acct_update +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink_acct 0xbecf5d14 nfnl_acct_put +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink_log 0x46cbe709 nfulnl_log_packet +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x0a742ea0 xt_find_table_lock +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x40728a63 xt_find_revision +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x45a42af1 xt_check_match +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x4d5523f0 xt_proto_init +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x63c30fa6 xt_replace_table +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x6eea60fe xt_request_find_target +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x785eb5ec xt_hook_unlink +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x807d2b2c xt_recseq +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x810f8cd4 xt_request_find_match +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x868733d0 xt_unregister_table +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x92b6c279 xt_register_table +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x9a8a6961 xt_hook_link +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xc775994e xt_table_unlock +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xd9bac9a3 xt_check_target +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xff8290c9 xt_proto_fini +EXPORT_SYMBOL_GPL net/netfilter/xt_RATEEST 0x3a099777 xt_rateest_put +EXPORT_SYMBOL_GPL net/netfilter/xt_RATEEST 0xf4e9cb5d xt_rateest_lookup +EXPORT_SYMBOL_GPL net/nfc/nci/nci 0x0ad44856 nci_spi_recv_frame +EXPORT_SYMBOL_GPL net/nfc/nci/nci 0x61e44a25 nci_spi_allocate_device +EXPORT_SYMBOL_GPL net/nfc/nci/nci 0x7568a3e4 nci_spi_unregister_device +EXPORT_SYMBOL_GPL net/nfc/nci/nci 0xe5d56a23 nci_spi_register_device +EXPORT_SYMBOL_GPL net/nfc/nci/nci 0xfa832f29 nci_spi_free_device +EXPORT_SYMBOL_GPL net/rds/rds 0x00a467af rds_wq +EXPORT_SYMBOL_GPL net/rds/rds 0x0e1caca8 rds_conn_create_outgoing +EXPORT_SYMBOL_GPL net/rds/rds 0x2c5c5514 rds_message_add_rdma_dest_extension +EXPORT_SYMBOL_GPL net/rds/rds 0x3101936e rds_message_add_extension +EXPORT_SYMBOL_GPL net/rds/rds 0x3b4fc0fc rds_page_remainder_alloc +EXPORT_SYMBOL_GPL net/rds/rds 0x4446eed0 rds_message_unmapped +EXPORT_SYMBOL_GPL net/rds/rds 0x44a35bf3 rds_send_get_message +EXPORT_SYMBOL_GPL net/rds/rds 0x50cbe7b3 rds_stats +EXPORT_SYMBOL_GPL net/rds/rds 0x60984cfd rds_trans_unregister +EXPORT_SYMBOL_GPL net/rds/rds 0x651a2124 rds_inc_init +EXPORT_SYMBOL_GPL net/rds/rds 0x69356735 rds_conn_destroy +EXPORT_SYMBOL_GPL net/rds/rds 0x6d41d2a5 rds_inc_put +EXPORT_SYMBOL_GPL net/rds/rds 0x73aac73d rds_message_populate_header +EXPORT_SYMBOL_GPL net/rds/rds 0x7705e91c rds_recv_incoming +EXPORT_SYMBOL_GPL net/rds/rds 0x7a6abb29 rds_info_deregister_func +EXPORT_SYMBOL_GPL net/rds/rds 0x8ca83400 rds_trans_register +EXPORT_SYMBOL_GPL net/rds/rds 0x92ce7aea rds_info_register_func +EXPORT_SYMBOL_GPL net/rds/rds 0x96fafe85 rds_stats_info_copy +EXPORT_SYMBOL_GPL net/rds/rds 0x97deb61e rds_cong_map_updated +EXPORT_SYMBOL_GPL net/rds/rds 0x9a72342c rds_rdma_send_complete +EXPORT_SYMBOL_GPL net/rds/rds 0xa493254e rds_conn_connect_if_down +EXPORT_SYMBOL_GPL net/rds/rds 0xb4c04782 rds_conn_create +EXPORT_SYMBOL_GPL net/rds/rds 0xb4e803af rds_for_each_conn_info +EXPORT_SYMBOL_GPL net/rds/rds 0xbaeb73ed rds_atomic_send_complete +EXPORT_SYMBOL_GPL net/rds/rds 0xbe932cb0 rds_connect_complete +EXPORT_SYMBOL_GPL net/rds/rds 0xc2dab779 rds_info_copy +EXPORT_SYMBOL_GPL net/rds/rds 0xc326400d rds_conn_drop +EXPORT_SYMBOL_GPL net/rds/rds 0xc6498877 rds_message_put +EXPORT_SYMBOL_GPL net/rds/rds 0xce8c5c68 rds_message_addref +EXPORT_SYMBOL_GPL net/rds/rds 0xcfa93973 rds_send_drop_acked +EXPORT_SYMBOL_GPL net/rds/rds 0xd771c9f5 rds_page_copy_user +EXPORT_SYMBOL_GPL net/rxrpc/af-rxrpc 0x14e70bc0 rxrpc_unregister_security +EXPORT_SYMBOL_GPL net/rxrpc/af-rxrpc 0xa070e163 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 0x899ec44b svcauth_gss_flavor +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x8d1a827e svcauth_gss_register_pseudoflavor +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xb5dea7ef g_token_size +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xd5b7170b gss_mech_register +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xe295c4f7 gss_mech_unregister +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xf8b2ff6e g_verify_token_header +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x016cf2f4 svc_find_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x01c8dda3 svc_bind +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x038caf8b svc_print_addr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0451bf73 svc_unreg_xprt_class +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x045834e9 rpcauth_get_pseudoflavor +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x045fecfe rpc_exit +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0470e49b xprt_complete_rqst +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x055fd5e2 rpcauth_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x05b35405 svc_exit_thread +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 0x068652a1 svc_close_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x076228c6 xprt_unregister_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x08a1942a rpc_pipe_generic_upcall +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0918f765 rpc_release_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0cf934c6 rpc_peeraddr2str +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0e86de8f xdr_partial_copy_from_skb +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0f668ba9 svc_auth_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x102ed56c svc_max_payload +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x11e0747d rpcb_getport_async +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x12471d1c xprt_release_rqst_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x15d30780 rpc_peeraddr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x161a9926 xprt_wait_for_buffer_space +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1672d161 xdr_encode_array2 +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x16f3e6ea auth_domain_put +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1791d7cd cache_create_net +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x18f3a98a rpc_bind_new_program +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1ba1eb34 svcauth_unix_purge +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1f6ede96 cache_unregister_net +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x207159c6 rpc_wake_up_first +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2188c2c8 svc_create_pooled +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2327cc69 rpc_destroy_pipe_data +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x237a937f svc_destroy +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x255c760f bc_svc_process +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2662d656 xdr_buf_trim +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x269d9bd7 xprt_destroy_backchannel +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x274694a0 xprt_write_space +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x27e818b1 svc_addsock +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2919b156 xdr_decode_string_inplace +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2eec63c9 xdr_encode_netobj +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2f8ebbe0 rpc_ntop +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x31a89d59 rpc_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x31d097e6 rpc_call_null +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3320c5a2 cache_purge +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x385f7b02 rpc_get_sb_net +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x387e1639 rpc_pipefs_notifier_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x39fdb1b5 xdr_skb_read_bits +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3a106ef8 xprt_lock_and_alloc_slot +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3d6160ff rpc_sleep_on_priority +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3dba7edd xdr_inline_decode +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x43af2f17 sunrpc_cache_lookup +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x48b5f99f rpc_print_iostats +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x49235e23 svc_xprt_copy_addrs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4a086c6d svc_xprt_names +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4d3d7c07 rpc_free_iostats +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4d9f663c xdr_decode_array2 +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x504a9cca auth_domain_find +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x514e6606 rpc_restart_call +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x52c3a3eb xprt_reserve_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x53445f68 nlm_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x53a81610 cache_check +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5513f494 rpc_wake_up_next +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x57969b64 xprt_register_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x582f14bd xdr_buf_read_netobj +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5a1bd515 rpc_localaddr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5d3e21f7 rpc_delay +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5d71e2e3 rpc_rmdir +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5d82b48a svc_reserve +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5ee516ac sunrpc_destroy_cache_detail +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5f2e1454 rpc_task_reset_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5f4a0a5a xprt_set_retrans_timeout_def +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x61cbcc54 auth_domain_lookup +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x63e72c16 svc_recv +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6465ff38 sunrpc_cache_update +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x65c71639 rpc_wake_up_status +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x66d3c0c2 svc_authenticate +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x69bbe399 rpc_unlink +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6a5ed06e svc_process +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6d1f5314 xdr_buf_from_iov +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6d93f17f rpc_run_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6da7e5e9 rpc_force_rebind +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6e6dacd4 rpc_clone_client_set_auth +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6e9e7557 rpcauth_create +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6f263de0 svc_create +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6fe03443 svc_shutdown_net +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x71fa908a cache_flush +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x72067ede svc_create_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x72a4652d __rpc_wait_for_completion_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x733e52cb xprt_adjust_cwnd +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x73bfb78c xdr_encode_word +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x743ce5b3 xdr_terminate_string +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x747b7611 xdr_process_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x74d415b8 svc_proc_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7697f81f rpc_put_task_async +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x770dc017 svc_xprt_put +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x784f9c86 rpc_restart_call_prepare +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7897946a xdr_inline_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x79c46610 sunrpc_cache_pipe_upcall +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7b4273cc xdr_shift_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7c2f57da svc_rpcb_cleanup +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7c85e396 xdr_write_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7ce37515 rpcauth_lookup_credcache +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7de53067 rpc_init_rtt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7e6ae2fb xprt_disconnect_done +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7ea013e3 rpc_put_sb_net +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x80951b28 rpcauth_get_gssinfo +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x81bbf988 rpc_create +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x81d5a5b7 rpc_queue_upcall +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x825dbb70 xdr_init_encode +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x83d19098 xdr_stream_pos +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x86861a2e read_bytes_from_xdr_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8a1354d3 xdr_enter_page +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8b10440a rpc_max_payload +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8b242bfd xdr_decode_word +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8b48afaf rpc_get_timeout +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8e043d08 xs_swapper +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8f629520 csum_partial_copy_to_xdr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x91815593 rpc_lookup_machine_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9240b082 rpc_alloc_iostats +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9335179e rpc_pton +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x940009d4 cache_register_net +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x942e4350 write_bytes_to_xdr_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x95e83f75 xprt_alloc_slot +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x964dc2bc xprt_reserve_xprt_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x969b514f xprt_lookup_rqst +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x98b75d64 rpcauth_list_flavors +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9a8d8c90 rpc_d_lookup_sb +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9ae12aa7 rpc_sleep_on +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9ba5df5f rpc_lookup_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9c29a614 xprt_free +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9dc7bebb rpc_mkpipe_dentry +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9efd365d xprt_set_retrans_timeout_rtt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9f1e5555 svc_wake_up +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa0b9025d rpc_mkpipe_data +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa105a27c xdr_buf_subsegment +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa4af2870 rpc_shutdown_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa58a5207 sunrpc_init_cache_detail +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa5c03c35 rpc_put_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa823aeb9 rpc_wake_up_queued_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xaac8ebcd xdr_set_scratch_buffer +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xaafae0f5 rpc_clone_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xab45d089 svc_reg_xprt_class +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xabab445d xprt_setup_backchannel +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xac6d6812 rpc_killall_tasks +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xad719d3a svc_drop +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xaee5bb66 xdr_init_decode +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xaf5bf6ef nfs_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb0116611 rpc_destroy_wait_queue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb0387644 cache_destroy_net +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb1244c92 rpc_proc_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb42f1f20 unix_domain_find +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb4351daa svc_set_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb51a3724 rpc_pipefs_notifier_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb9d9f36f rpc_setbufsize +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbaac8188 sunrpc_cache_unregister_pipefs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbcaec1e0 rpcauth_destroy_credcache +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbdef3b22 svc_xprt_init +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbe45eddd rpc_malloc +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbf9d1b96 nfsd_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc0a6c279 rpc_call_async +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc12435e3 rpc_calc_rto +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc226fe13 svc_auth_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc2c621ee _copy_from_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc320894a rpc_proc_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc3880471 xdr_decode_netobj +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc836c040 xdr_read_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc8db3dee rpc_call_start +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc8e96dea qword_addhex +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xccf570ce xprt_wake_pending_tasks +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcee467f3 xprt_load_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcf11781e rpcauth_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd074c2c6 svc_xprt_enqueue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd0b03870 rpc_call_sync +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd1ac465f svc_prepare_thread +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd5471409 rpc_count_iostats +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd5504347 rpc_init_priority_wait_queue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd7275c9c put_rpccred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xdaa365ce rpc_protocol +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xdffc60bd xprt_alloc +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe01a11b2 svc_sock_update_bufs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe1ac2bb8 sunrpc_net_id +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe35aaed1 sunrpc_cache_register_pipefs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe4b6a6f3 rpc_uaddr2sockaddr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe5919cb1 xdr_encode_opaque +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe62fc1f4 svc_rpcb_setup +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe97f4ce5 qword_get +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xebecad93 svc_seq_show +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xec0a35ac svcauth_unix_set_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xedcf6be4 qword_add +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xee431aa6 xprt_release_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xeeacab69 rpc_update_rtt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xeebc783d rpcauth_generic_bind_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xef47ae19 rpcauth_init_credcache +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf0e6ae7d rpcauth_init_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf72c4464 rpc_init_wait_queue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf7bd9a8e svc_set_num_threads +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf822ab08 xdr_reserve_space +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf8532f42 xdr_init_decode_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf9d1164c rpc_free +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfbb737cf rpc_wake_up +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xff11a560 xprt_release_xprt_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xff1375b3 svc_proc_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xff80a511 rpc_net_ns +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x0aacdeb4 vsock_enqueue_accept +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x0c79d5ef vm_sockets_get_local_cid +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x15c0c57c vsock_addr_init +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x23fcf726 vsock_remove_connected +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x2663cb64 vsock_addr_equals_addr +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x2e1ae4e9 __vsock_create +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x303596e0 vsock_remove_bound +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x40e74d51 vsock_for_each_connected_socket +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x4b4887a9 vsock_find_connected_socket +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x7311924d vsock_core_init +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x74e91915 vsock_addr_cast +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x751ff010 vsock_addr_unbind +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x7f730c80 vsock_core_exit +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x9a07b1b3 vsock_add_pending +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0xad53357d vsock_find_bound_socket +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0xb4fd8761 vsock_insert_connected +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0xb6fe0638 vsock_stream_has_space +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0xbd0f699d vsock_addr_bound +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0xc2f2a4e7 vsock_remove_pending +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0xd95ac116 vsock_addr_validate +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0xf33e1cb4 vsock_stream_has_data +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0xf593c40a vsock_pending_work +EXPORT_SYMBOL_GPL net/wimax/wimax 0x11a8f733 wimax_msg_data +EXPORT_SYMBOL_GPL net/wimax/wimax 0x1eb9e6cd wimax_state_get +EXPORT_SYMBOL_GPL net/wimax/wimax 0x2ace630e wimax_dev_rm +EXPORT_SYMBOL_GPL net/wimax/wimax 0x36f4ac83 wimax_report_rfkill_hw +EXPORT_SYMBOL_GPL net/wimax/wimax 0x47e73cb6 wimax_msg_send +EXPORT_SYMBOL_GPL net/wimax/wimax 0x623404f0 wimax_dev_add +EXPORT_SYMBOL_GPL net/wimax/wimax 0x95c16344 wimax_msg_alloc +EXPORT_SYMBOL_GPL net/wimax/wimax 0x994396eb wimax_msg_data_len +EXPORT_SYMBOL_GPL net/wimax/wimax 0x9f9e8c87 wimax_msg_len +EXPORT_SYMBOL_GPL net/wimax/wimax 0xa88efc6f wimax_report_rfkill_sw +EXPORT_SYMBOL_GPL net/wimax/wimax 0xb45722fb wimax_state_change +EXPORT_SYMBOL_GPL net/wimax/wimax 0xba312cae wimax_dev_init +EXPORT_SYMBOL_GPL net/wimax/wimax 0xfa77ebab wimax_msg +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x62ffa7da cfg80211_wext_siwscan +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x6fd2e698 cfg80211_wext_giwname +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x7d4b26de cfg80211_wext_giwrange +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x7d8831c1 cfg80211_wext_giwrts +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x85f30dfc cfg80211_wext_siwfrag +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xa5152e45 cfg80211_wext_giwmode +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xb36b37bc cfg80211_wext_siwmode +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xbe36ade7 cfg80211_wext_giwfrag +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xc7ef69fc cfg80211_wext_giwscan +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xd608e2e1 cfg80211_wext_siwrts +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xe7dd1e9f cfg80211_wext_giwretry +EXPORT_SYMBOL_GPL net/xfrm/xfrm_algo 0x00778770 xfrm_ealg_get_byname +EXPORT_SYMBOL_GPL net/xfrm/xfrm_algo 0x056bb269 xfrm_ealg_get_byidx +EXPORT_SYMBOL_GPL net/xfrm/xfrm_algo 0x0a575945 xfrm_count_pfkey_auth_supported +EXPORT_SYMBOL_GPL net/xfrm/xfrm_algo 0x0b9e5852 xfrm_aead_get_byname +EXPORT_SYMBOL_GPL net/xfrm/xfrm_algo 0x28e23139 xfrm_probe_algs +EXPORT_SYMBOL_GPL net/xfrm/xfrm_algo 0x74e1a843 xfrm_aalg_get_byidx +EXPORT_SYMBOL_GPL net/xfrm/xfrm_algo 0x7a8ca627 xfrm_count_pfkey_enc_supported +EXPORT_SYMBOL_GPL net/xfrm/xfrm_algo 0x7c30b8c7 xfrm_calg_get_byname +EXPORT_SYMBOL_GPL net/xfrm/xfrm_algo 0x92dbc6c1 xfrm_aalg_get_byid +EXPORT_SYMBOL_GPL net/xfrm/xfrm_algo 0xbc8b0f41 xfrm_calg_get_byid +EXPORT_SYMBOL_GPL net/xfrm/xfrm_algo 0xce7a55c1 xfrm_ealg_get_byid +EXPORT_SYMBOL_GPL net/xfrm/xfrm_algo 0xe122af95 xfrm_aalg_get_byname +EXPORT_SYMBOL_GPL net/xfrm/xfrm_algo 0xe7ec0b91 pskb_put +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0x68c0e214 ipcomp_destroy +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0x93bf8f17 ipcomp_init_state +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0xa74f0d54 ipcomp_input +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0xf677e085 ipcomp_output +EXPORT_SYMBOL_GPL sound/core/snd 0x1d032592 snd_kctl_jack_new +EXPORT_SYMBOL_GPL sound/core/snd 0x23ea603b snd_ctl_sync_vmaster +EXPORT_SYMBOL_GPL sound/core/snd 0x3ca17104 __snd_printk +EXPORT_SYMBOL_GPL sound/core/snd 0x4341a9fb snd_ctl_add_vmaster_hook +EXPORT_SYMBOL_GPL sound/core/snd 0x9ef756d9 snd_kctl_jack_report +EXPORT_SYMBOL_GPL sound/core/snd 0xc5c6e479 snd_ctl_activate_id +EXPORT_SYMBOL_GPL sound/core/snd-compress 0x11ba1476 snd_compress_register +EXPORT_SYMBOL_GPL sound/core/snd-compress 0x996553c0 snd_compress_deregister +EXPORT_SYMBOL_GPL sound/core/snd-compress 0xf4c53075 snd_compress_new +EXPORT_SYMBOL_GPL sound/core/snd-pcm 0x04e1b99f snd_pcm_std_chmaps +EXPORT_SYMBOL_GPL sound/core/snd-pcm 0x09e913c1 snd_pcm_alt_chmaps +EXPORT_SYMBOL_GPL sound/core/snd-pcm 0x49a40ecd snd_pcm_add_chmap_ctls +EXPORT_SYMBOL_GPL sound/core/snd-pcm 0xa286a234 snd_pcm_format_name +EXPORT_SYMBOL_GPL sound/core/snd-pcm 0xb90a7c40 snd_pcm_lib_default_mmap +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0x23e63467 snd_ak4113_check_rate_and_errors +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0x2909e93a snd_ak4113_external_rate +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0x70bf1047 snd_ak4113_create +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0x9df3773c snd_ak4113_build +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0xaf329bc4 snd_ak4113_reinit +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0xeb890b98 snd_ak4113_reg_write +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x003c1021 snd_hda_codec_amp_update +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x033d357b snd_hda_get_hint +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x03528f16 snd_hda_gen_init +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x036e331d snd_hda_jack_tbl_new +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x03d1fee6 snd_hda_codec_resume_amp +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x0459cd6c snd_hda_sequence_write +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x04b5f128 snd_hda_add_vmaster_hook +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x05dda29d snd_hda_shutup_pins +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x065de776 snd_hda_mixer_amp_switch_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x0672af12 snd_hda_codec_cleanup +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 0x06b1b1fa snd_hda_codec_set_power_to_all +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x06fc230f snd_hda_override_conn_list +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x07c9bb77 snd_hda_codec_configure +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x07e2acf8 snd_hda_mixer_amp_switch_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x0c703f18 snd_hda_codec_set_pincfg +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x0c95cf8b snd_hda_ch_mode_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x0e5d505f snd_hda_jack_tbl_get +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x13786827 snd_hda_gen_build_pcms +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x1a06a672 snd_hda_override_pin_caps +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x1adafd72 snd_hda_create_dig_out_ctls +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x1ba5b930 snd_hda_query_supported_pcm +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x1d3574d0 snd_hda_set_vmaster_tlv +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x1ea5a84e snd_hda_codec_get_pincfg +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x1ebba6a4 snd_hda_queue_unsol_event +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x1eeb9cc7 snd_hda_mixer_bind_switch_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x212d5b36 snd_hda_gen_spec_free +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x21c50354 snd_hda_create_spdif_in_ctls +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x22395817 snd_hda_bus_reboot_notify +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x22ade029 snd_hda_gen_free +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x252033fb snd_hda_build_pcms +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x25907feb snd_hda_create_spdif_share_sw +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x2c32443a snd_hda_bind_sw +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x2faae59c snd_hda_spdif_ctls_assign +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x31262cd7 snd_hda_jack_add_kctl +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x31d7b645 snd_hda_resume +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x3531c40a snd_hda_detach_beep_device +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x375cacd5 snd_hda_input_mux_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x386487c3 snd_hda_get_path_idx +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x3c94e683 snd_hda_spdif_out_of_nid +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x3d4f281f snd_hda_add_verbs +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x3d839e4a snd_hda_apply_pincfgs +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4168cbce snd_hda_codec_amp_init_stereo +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x44977473 snd_hda_gen_add_kctl +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x44aedadf snd_hda_get_bool_hint +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x45bda783 snd_hda_get_path_from_idx +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x465ce4ec snd_hda_gen_hp_automute +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x46c2d0ee snd_hda_multi_out_dig_cleanup +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x46c4423b snd_hda_jack_set_dirty_all +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4b5b41b8 snd_hda_query_pin_caps +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4be3952c 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 0x4e8aa2bd snd_hda_mixer_amp_volume_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4f35e933 snd_hda_mixer_amp_volume_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x55bf3419 snd_hda_codec_update_cache +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x566b2640 snd_hda_bind_vol +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5a812832 snd_hda_jack_unsol_event +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5a9ddcfc snd_hda_codec_read +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5ad532ed snd_hda_delete_codec_preset +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5bf358ed snd_hda_parse_generic_codec +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5cfcc462 snd_hda_gen_line_automute +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5e89138d snd_hda_mixer_bind_ctls_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5f365803 snd_hda_mixer_bind_ctls_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5f848c3c snd_hda_multi_out_analog_cleanup +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x60183b92 snd_hda_override_amp_caps +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x624d49ad snd_hda_codec_resume_cache +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x62dc268e snd_hda_is_supported_format +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x645e67b4 snd_hda_sync_vmaster_hook +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x679cf0f1 snd_hda_gen_check_power_status +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x67eb4619 snd_hda_jack_detect_enable +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x6a1e22e3 snd_hda_jack_tbl_get_from_tag +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x6a6135de __snd_hda_codec_cleanup_stream +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x6a788758 snd_hda_mixer_amp_tlv +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x6f3c7947 snd_hda_codec_amp_init +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x72358931 snd_hda_ch_mode_get +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x76dc6871 hda_main_out_badness +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7733574e snd_hda_add_nid +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7989a049 snd_hda_check_board_config +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7d402c02 snd_hda_ctl_add +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7db9b758 snd_hda_mixer_amp_switch_put_beep +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7fb09275 snd_hda_correct_pin_ctl +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x80e29ea3 snd_hda_mixer_amp_volume_get +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x82404be3 snd_hda_enable_beep_device +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x871a6e44 hda_extra_out_badness +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x88622176 snd_hda_gen_spec_init +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x890c2a27 snd_hda_gen_mic_autoswitch +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x8ae114bd snd_hda_jack_report_sync +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x8b6495e6 snd_hda_multi_out_analog_open +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x8e4c6826 snd_hda_calc_stream_format +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x90e12f93 snd_hda_mixer_bind_ctls_get +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x934520a8 snd_hda_codec_prepare +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x94570310 snd_hda_suspend +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x95c43559 snd_hda_jack_set_gating_jack +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x96334de5 snd_hda_codec_flush_cache +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x966a32d7 snd_hda_pin_sense +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x98838cde snd_hda_codec_amp_stereo +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9a8e1877 snd_array_free +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9abe9f48 snd_hda_unlock_devices +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9b58ffd1 snd_hda_codec_new +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa1699acf snd_hda_add_new_path +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa21b347d snd_hda_jack_detect_enable_callback +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa2827d76 snd_hda_get_jack_location +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa4977d73 snd_hda_activate_path +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa8855d7c snd_hda_ch_mode_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa945f978 snd_hda_get_nid_path +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa946ba74 snd_hda_sequence_write_cache +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa97f2275 snd_hda_get_pin_label +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xaa4775d5 snd_hda_find_mixer_ctl +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xaf6ad647 snd_hda_lock_devices +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xafc6afa9 query_amp_caps +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb16f4d79 snd_hda_codec_get_pin_target +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb3249caf snd_hda_codec_write +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb491f2a0 snd_hda_add_new_ctls +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb97d557b snd_hda_multi_out_dig_close +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xbae3d511 snd_hda_bus_new +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xbd33afaa __snd_hda_add_vmaster +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xbe7d101c snd_hda_check_amp_list_power +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xbe7dd7dc snd_array_new +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc05954cf hda_get_autocfg_input_label +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc11e6985 is_jack_detectable +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc536d548 snd_hda_codec_setup_stream +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc5910353 snd_hda_jack_detect +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc652fd69 snd_hda_get_jack_connectivity +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc6c4bd8b snd_hda_gen_parse_auto_config +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc98a90e6 snd_hda_mixer_amp_switch_get +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc98aa07e snd_hda_apply_fixup +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xca82fad6 snd_hda_spdif_ctls_unassign +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xcb301b6e snd_hda_get_jack_type +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xccaa3de9 snd_hda_codec_amp_read +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xcd13ca8a snd_hda_multi_out_analog_prepare +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xce12f6c4 snd_hda_codec_set_pin_target +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xcf237837 snd_hda_gen_build_controls +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd083a0d9 snd_hda_mixer_bind_switch_get +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd113f279 snd_hda_build_controls +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd1ad2f84 snd_hda_multi_out_dig_open +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd2943c1d snd_hda_get_connections +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd3cfbe7e snd_hda_get_conn_list +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd3e32412 snd_hda_codec_update_widgets +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd76d08fe snd_hda_apply_verbs +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xdab7b38d snd_hda_pick_fixup +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xdc07a355 snd_hda_mixer_bind_tlv +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe0ddadd1 snd_hda_codec_eapd_power_filter +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe118de5d snd_pcm_2_1_chmaps +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe14ec199 snd_hda_power_save +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe288c63f snd_hda_jack_poll_all +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe289b119 snd_hda_check_board_codec_sid_config +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe65d30e9 _snd_hda_set_pin_ctl +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe835a62f snd_hda_parse_nid_path +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe866c469 snd_hda_get_default_vref +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe8898c64 snd_hda_load_patch +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe97aabbc snd_hda_mixer_amp_switch_get_beep +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xea7ce0ef snd_hda_jack_add_kctls +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xeaa5310f snd_hda_get_conn_index +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xeda3a721 snd_print_pcm_bits +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xee09f2d3 snd_hda_attach_beep_device +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xef809aa7 snd_hda_enum_helper_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf011a5c4 snd_hda_get_sub_nodes +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf1124306 snd_hda_add_codec_preset +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf9f2cb59 snd_hda_input_mux_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf9fd1196 snd_hda_gen_update_outputs +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xfaa84fba snd_hda_multi_out_dig_prepare +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xfabc6d00 snd_hda_parse_pin_defcfg +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xfadaf55a snd_hda_get_int_hint +EXPORT_SYMBOL_GPL sound/soc/atmel/snd-soc-atmel-pcm 0x024f82d4 atmel_pcm_new +EXPORT_SYMBOL_GPL sound/soc/atmel/snd-soc-atmel-pcm 0x67fd98c9 atmel_pcm_mmap +EXPORT_SYMBOL_GPL sound/soc/atmel/snd-soc-atmel-pcm 0x73750d3d atmel_pcm_free +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-88pm860x 0x4df4d346 pm860x_mic_jack_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-88pm860x 0x57d04aec pm860x_hs_jack_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ab8500-codec 0x159a82e1 ab8500_audio_setup_mics +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ab8500-codec 0x4df35290 ab8500_audio_set_ear_cmv +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-arizona 0x05ddbf0f arizona_lhpf4_mode +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-arizona 0x0e5b5d11 arizona_init_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-arizona 0x11ebc751 arizona_set_fll +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-arizona 0x12ecde17 arizona_out_vi_ramp +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-arizona 0x196694e3 arizona_ng_hold +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-arizona 0x2043fac5 arizona_in_ev +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-arizona 0x206e3ddf arizona_in_vi_ramp +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-arizona 0x3f429d4c arizona_isrc_fsl +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-arizona 0x41b95c1f arizona_in_vd_ramp +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-arizona 0x547a7178 arizona_rate_val +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-arizona 0x57e590a8 arizona_lhpf1_mode +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-arizona 0x5ca5d865 arizona_out_ev +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-arizona 0x62837dcf arizona_hp_ev +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-arizona 0x660d8a35 arizona_lhpf2_mode +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-arizona 0x6a883f5f arizona_init_spk +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-arizona 0x733bbfd7 arizona_out_vd_ramp +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-arizona 0x7e01a8f4 arizona_set_fll_refclk +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-arizona 0x8c821bc2 arizona_rate_text +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-arizona 0x8dd35bf2 arizona_mixer_values +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-arizona 0x90f689ba arizona_simple_dai_ops +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-arizona 0xa79f273e arizona_set_output_mode +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-arizona 0xab6861be arizona_mixer_texts +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-arizona 0xc07a8181 arizona_lhpf3_mode +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-arizona 0xc9c29637 arizona_mixer_tlv +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-arizona 0xceeb7bf1 arizona_dai_ops +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-arizona 0xf1954d88 arizona_init_fll +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-arizona 0xfbf409ea arizona_set_sysclk +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cx20442 0x4e86671a v253_ops +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-l3 0x78c84c7e l3_write +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-max98090 0xf672b24f max98090_mic_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-max98095 0xf11536c9 max98095_jack_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-max9877 0xa49e042d max9877_add_controls +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-sn95031 0x3ddabf20 sn95031_jack_detection +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tpa6130a2 0xa0f3ebb0 tpa6130a2_stereo_enable +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tpa6130a2 0xd3067e6e tpa6130a2_add_controls +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-twl6040 0x5aff8ff2 twl6040_get_dl1_gain +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-twl6040 0x653e3c94 twl6040_hs_jack_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-twl6040 0xa845c2d8 twl6040_get_clk_id +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-twl6040 0xc1a72063 twl6040_get_trim_value +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-twl6040 0xeb3e643e twl6040_get_hs_step_size +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wl1273 0x3ced1702 wl1273_get_format +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-adsp 0x2de9692e wm_adsp1_event +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-adsp 0x52f9e993 wm_adsp1_init +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-adsp 0x598c92ad wm_adsp2_init +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-adsp 0x7708d5c6 wm_adsp1_fw_controls +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-adsp 0x97961bfb wm_adsp2_event +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-adsp 0x9d8e08a4 wm_adsp2_fw_controls +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-hubs 0x0e61c7ab wm_hubs_vmid_ena +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-hubs 0x5a1d3985 wm_hubs_add_analogue_controls +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-hubs 0x5ac109c0 wm_hubs_hpr_mux +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-hubs 0x5cd7eb9b wm_hubs_dcs_done +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-hubs 0x5f6b6b22 wm_hubs_set_bias_level +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-hubs 0x631d6a2b wm_hubs_hpl_mux +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 0xc971e571 wm_hubs_add_analogue_routes +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-hubs 0xd6989b35 wm_hubs_handle_analogue_pdata +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-hubs 0xf1b80dc7 wm_hubs_update_class_w +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8350 0x1c68fd60 wm8350_mic_jack_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8350 0xc4389c81 wm8350_hp_jack_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8903 0xb7e300d5 wm8903_mic_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8962 0x7a5b2a7b wm8962_mic_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8994 0xa02ae907 wm8958_mic_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8994 0xefe0fefd wm8994_mic_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8996 0x3aa42392 wm8996_detect +EXPORT_SYMBOL_GPL sound/soc/mid-x86/snd-soc-sst-platform 0x64c3a150 sst_unregister_dsp +EXPORT_SYMBOL_GPL sound/soc/mid-x86/snd-soc-sst-platform 0xabc0ee35 sst_register_dsp +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x0030d5b7 snd_soc_dapm_new_widgets +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x009411aa snd_soc_dpcm_be_can_update +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x01d45fcc snd_soc_dai_digital_mute +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x060f1c4a snd_soc_dapm_nc_pin +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x0653596d snd_soc_remove_platform +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x06dceffb snd_soc_of_parse_daifmt +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x07228f06 snd_soc_codec_set_cache_io +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x0d04611e snd_soc_jack_add_pins +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x0e0b8133 snd_soc_dapm_disable_pin +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x0f23701c snd_soc_register_component +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x13208744 snd_soc_get_strobe +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x16c64f98 snd_soc_dapm_put_pin_switch +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x179ca98c snd_soc_free_ac97_codec +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x17ad5a33 snd_soc_add_card_controls +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x18fd2f1f snd_soc_jack_add_gpios +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x19baa6d7 snd_soc_set_runtime_hwparams +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x1a075724 snd_soc_dapm_get_pin_switch +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x1dc060d0 snd_soc_put_volsw_s8 +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x1f76017d snd_soc_limit_volume +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x1fdd8243 snd_soc_default_readable_register +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x20d8e5a3 dapm_mark_io_dirty +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x21c94386 snd_soc_dapm_info_pin_switch +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x22cea7de snd_soc_dapm_new_controls +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x23161d05 snd_soc_unregister_platform +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x23d107f7 snd_soc_dai_set_pll +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x23e9beb1 snd_soc_add_codec_controls +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x246ce35e snd_soc_put_xr_sx +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2541a979 snd_soc_calc_frame_size +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2715c661 snd_soc_get_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2729afd1 snd_soc_dpcm_be_get_state +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2822b695 snd_soc_dpcm_can_be_free_stop +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x296fd274 snd_soc_platform_write +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2c1c6e80 snd_soc_codec_writable_register +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2cdea127 snd_soc_read +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x31867630 dapm_clock_event +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x31a82d69 snd_soc_poweroff +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x35840967 soc_ac97_ops +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x3872aab7 snd_soc_dpcm_can_be_params +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x38e527a8 snd_soc_jack_free_gpios +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x39d698be snd_soc_get_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x3a0b4c38 snd_soc_lookup_platform +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x3c7f9a69 snd_soc_resume +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x400442d2 snd_soc_codec_set_pll +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x49d2b89d snd_soc_register_platform +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x49ed3b4c snd_soc_dapm_force_enable_pin +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x4aab6e19 snd_soc_write +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x50611790 snd_soc_dapm_get_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x514c2d88 snd_soc_get_volsw_s8 +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x51ab7701 snd_soc_new_ac97_codec +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x52b54d20 snd_soc_dapm_put_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x556156f9 snd_soc_dapm_get_pin_status +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x55df2c01 snd_soc_codec_readable_register +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x58b4e028 snd_soc_dapm_del_routes +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x5ad3d1a7 snd_soc_dapm_mux_update_power +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x5bd0033c snd_soc_update_bits_locked +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x5e3dfc9f snd_soc_dapm_sync +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x5e6a9f52 snd_soc_info_volsw_range +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x5f5d7ebc snd_soc_dapm_get_value_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x5f7d61dd snd_soc_info_volsw_ext +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x62fcfcdb snd_soc_dpcm_be_set_state +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x64185dce dapm_mark_dirty +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x65460512 snd_soc_dapm_get_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x654fc5ba snd_soc_dai_set_tristate +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x6911a68a snd_soc_dai_set_tdm_slot +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x6cc6610d snd_soc_put_volsw_range +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x6f75bc9d dapm_reg_event +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x72ddb200 snd_soc_dai_set_fmt +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x736be3a7 snd_soc_info_xr_sx +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x753acf4b snd_soc_pm_ops +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x75df451b snd_soc_default_volatile_register +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7da438d5 snd_soc_jack_report +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7e606130 snd_soc_calc_bclk +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x81c8b1f3 snd_soc_get_volsw_sx +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x825f1cb7 snd_soc_cache_read +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x82c92352 snd_soc_unregister_component +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x868bd8b8 snd_soc_bulk_write_raw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x88dd7c6e dpcm_be_dai_trigger +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x896c0ad0 snd_soc_dai_set_sysclk +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x89a0b366 snd_soc_put_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x8b7fa0be snd_soc_default_writable_register +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x8d5d2dbb snd_soc_jack_add_zones +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x8e94e7c4 snd_soc_dpcm_get_substream +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x8eb5d8d6 snd_soc_suspend +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x939d0950 snd_soc_dapm_free +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x941ac886 snd_soc_get_xr_sx +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x94894a63 snd_soc_get_pcm_runtime +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x97bc98b4 snd_soc_dapm_ignore_suspend +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x97f529f5 snd_soc_platform_trigger +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x9b0f0a1b snd_soc_test_bits +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x9b1b886b snd_soc_dapm_put_enum_virt +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x9b98ab89 snd_soc_put_strobe +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x9c4b48f4 snd_soc_bytes_get +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x9fa07921 snd_soc_of_parse_card_name +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xa2148447 snd_soc_dapm_enable_pin +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xa38cca1d snd_soc_cache_sync +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xa457dd2f snd_soc_codec_volatile_register +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xa79d3bad snd_soc_dapm_put_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xa89d23b9 snd_soc_get_dai_substream +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xa8b6b859 snd_soc_jack_new +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xa8c48f0d snd_soc_register_card +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xaabd14c1 snd_soc_get_value_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xaac96d07 snd_soc_dapm_mixer_update_power +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xac24d505 snd_soc_bytes_put +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xad941f37 snd_soc_jack_notifier_unregister +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xaf15240c dapm_regulator_event +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xafb0e00a snd_soc_get_volsw_range +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb185eee8 snd_soc_info_volsw_s8 +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb6e1df0b snd_soc_register_codec +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xbb59b448 snd_soc_info_enum_ext +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc1cb4909 snd_soc_add_platform +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc21ca726 snd_soc_dapm_add_routes +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc630c146 snd_soc_of_parse_audio_routing +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc8269f94 snd_soc_params_to_frame_size +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc9aea54d snd_soc_dapm_put_value_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xcd44fcab snd_soc_put_volsw_sx +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xcd902c3e snd_soc_bytes_info +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xcebfc3c6 snd_soc_set_ac97_ops +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd07e615c snd_soc_cache_write +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd20273a4 snd_soc_unregister_card +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd42c3b64 snd_soc_dapm_weak_routes +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd8b39dcd snd_soc_info_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd9625efa snd_soc_jack_notifier_register +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd98f2da0 snd_soc_jack_get_type +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xdb259e56 snd_soc_add_dai_controls +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xdcb39a02 snd_soc_debugfs_root +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe352f6b4 snd_soc_add_platform_controls +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe4634766 snd_soc_put_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe519fdd2 snd_soc_dai_set_clkdiv +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe5dfbcfc snd_soc_codec_set_sysclk +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe6836a02 snd_soc_put_value_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe88c7b9e snd_soc_platform_read +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xeb711ae7 snd_soc_params_to_bclk +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xec180ca0 snd_soc_dapm_get_enum_virt +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf018d382 snd_soc_cnew +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf316128a snd_soc_info_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf5b3f130 snd_soc_update_bits +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf6589635 snd_soc_dai_set_channel_map +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf7f485a2 snd_soc_unregister_codec +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xfabac96e snd_soc_dpcm_fe_can_update +EXPORT_SYMBOL_GPL ubuntu/lttng/lib/lttng-lib-ring-buffer 0x0929d619 channel_reset +EXPORT_SYMBOL_GPL ubuntu/lttng/lib/lttng-lib-ring-buffer 0x1b0b72a6 lib_ring_buffer_ioctl +EXPORT_SYMBOL_GPL ubuntu/lttng/lib/lttng-lib-ring-buffer 0x1bc8af0a _lib_ring_buffer_write +EXPORT_SYMBOL_GPL ubuntu/lttng/lib/lttng-lib-ring-buffer 0x21e7f88d lib_ring_buffer_get_subbuf +EXPORT_SYMBOL_GPL ubuntu/lttng/lib/lttng-lib-ring-buffer 0x22ff6382 lib_ring_buffer_payload_file_operations +EXPORT_SYMBOL_GPL ubuntu/lttng/lib/lttng-lib-ring-buffer 0x2338e1ef lib_ring_buffer_iterator_open +EXPORT_SYMBOL_GPL ubuntu/lttng/lib/lttng-lib-ring-buffer 0x27b38223 lib_ring_buffer_move_consumer +EXPORT_SYMBOL_GPL ubuntu/lttng/lib/lttng-lib-ring-buffer 0x314630e9 lib_ring_buffer_reset +EXPORT_SYMBOL_GPL ubuntu/lttng/lib/lttng-lib-ring-buffer 0x34daa784 lib_ring_buffer_read +EXPORT_SYMBOL_GPL ubuntu/lttng/lib/lttng-lib-ring-buffer 0x3aa67978 lib_ring_buffer_snapshot +EXPORT_SYMBOL_GPL ubuntu/lttng/lib/lttng-lib-ring-buffer 0x44770743 lib_ring_buffer_put_subbuf +EXPORT_SYMBOL_GPL ubuntu/lttng/lib/lttng-lib-ring-buffer 0x4547b5c5 lib_ring_buffer_release +EXPORT_SYMBOL_GPL ubuntu/lttng/lib/lttng-lib-ring-buffer 0x4955c76e lib_ring_buffer_get_next_record +EXPORT_SYMBOL_GPL ubuntu/lttng/lib/lttng-lib-ring-buffer 0x4cdb5570 lib_ring_buffer_release_read +EXPORT_SYMBOL_GPL ubuntu/lttng/lib/lttng-lib-ring-buffer 0x52949a63 lib_ring_buffer_file_operations +EXPORT_SYMBOL_GPL ubuntu/lttng/lib/lttng-lib-ring-buffer 0x53ddadea channel_iterator_release +EXPORT_SYMBOL_GPL ubuntu/lttng/lib/lttng-lib-ring-buffer 0x5c00037f vfs_lib_ring_buffer_splice_read +EXPORT_SYMBOL_GPL ubuntu/lttng/lib/lttng-lib-ring-buffer 0x6080c5ad lib_ring_buffer_reserve_slow +EXPORT_SYMBOL_GPL ubuntu/lttng/lib/lttng-lib-ring-buffer 0x63c1275a vfs_lib_ring_buffer_mmap +EXPORT_SYMBOL_GPL ubuntu/lttng/lib/lttng-lib-ring-buffer 0x66550f55 channel_get_ring_buffer +EXPORT_SYMBOL_GPL ubuntu/lttng/lib/lttng-lib-ring-buffer 0x6c1989e6 channel_payload_file_operations +EXPORT_SYMBOL_GPL ubuntu/lttng/lib/lttng-lib-ring-buffer 0x73d5a8cb lib_ring_buffer_read_get_page +EXPORT_SYMBOL_GPL ubuntu/lttng/lib/lttng-lib-ring-buffer 0x7753909b channel_get_next_record +EXPORT_SYMBOL_GPL ubuntu/lttng/lib/lttng-lib-ring-buffer 0x7a46703e vfs_lib_ring_buffer_no_llseek +EXPORT_SYMBOL_GPL ubuntu/lttng/lib/lttng-lib-ring-buffer 0x7aa4aac5 lib_ring_buffer_open_read +EXPORT_SYMBOL_GPL ubuntu/lttng/lib/lttng-lib-ring-buffer 0x8285d003 _lib_ring_buffer_copy_from_user_inatomic +EXPORT_SYMBOL_GPL ubuntu/lttng/lib/lttng-lib-ring-buffer 0x8acb2f14 __lib_ring_buffer_copy_to_user +EXPORT_SYMBOL_GPL ubuntu/lttng/lib/lttng-lib-ring-buffer 0x8d35b4fc lib_ring_buffer_mmap +EXPORT_SYMBOL_GPL ubuntu/lttng/lib/lttng-lib-ring-buffer 0x9a2c49ec channel_iterator_open +EXPORT_SYMBOL_GPL ubuntu/lttng/lib/lttng-lib-ring-buffer 0x9d864a8c lib_ring_buffer_splice_read +EXPORT_SYMBOL_GPL ubuntu/lttng/lib/lttng-lib-ring-buffer 0xadc5854c _lib_ring_buffer_memset +EXPORT_SYMBOL_GPL ubuntu/lttng/lib/lttng-lib-ring-buffer 0xb1070f79 lib_ring_buffer_switch_slow +EXPORT_SYMBOL_GPL ubuntu/lttng/lib/lttng-lib-ring-buffer 0xbc81b89f lib_ring_buffer_read_offset_address +EXPORT_SYMBOL_GPL ubuntu/lttng/lib/lttng-lib-ring-buffer 0xd685eaca channel_destroy +EXPORT_SYMBOL_GPL ubuntu/lttng/lib/lttng-lib-ring-buffer 0xdddd54ee lib_ring_buffer_poll +EXPORT_SYMBOL_GPL ubuntu/lttng/lib/lttng-lib-ring-buffer 0xe0fada7e lib_ring_buffer_open +EXPORT_SYMBOL_GPL ubuntu/lttng/lib/lttng-lib-ring-buffer 0xe6307fde lib_ring_buffer_switch_remote +EXPORT_SYMBOL_GPL ubuntu/lttng/lib/lttng-lib-ring-buffer 0xeb93b514 channel_create +EXPORT_SYMBOL_GPL ubuntu/lttng/lib/lttng-lib-ring-buffer 0xf185a825 lib_ring_buffer_read_cstr +EXPORT_SYMBOL_GPL ubuntu/lttng/lib/lttng-lib-ring-buffer 0xf98ee56c lib_ring_buffer_offset_address +EXPORT_SYMBOL_GPL ubuntu/lttng/lib/lttng-lib-ring-buffer 0xf9f7ce4b lib_ring_buffer_iterator_release +EXPORT_SYMBOL_GPL ubuntu/lttng/lttng-statedump 0x5ef84cb2 lttng_statedump_start +EXPORT_SYMBOL_GPL ubuntu/lttng/lttng-tracer 0x158d1476 lttng_add_vppid_to_ctx +EXPORT_SYMBOL_GPL ubuntu/lttng/lttng-tracer 0x182da7d1 lttng_probe_unregister +EXPORT_SYMBOL_GPL ubuntu/lttng/lttng-tracer 0x2122549d lttng_add_pid_to_ctx +EXPORT_SYMBOL_GPL ubuntu/lttng/lttng-tracer 0x22f23965 lttng_add_nice_to_ctx +EXPORT_SYMBOL_GPL ubuntu/lttng/lttng-tracer 0x268aa765 lttng_add_prio_to_ctx +EXPORT_SYMBOL_GPL ubuntu/lttng/lttng-tracer 0x431771b8 lttng_transport_register +EXPORT_SYMBOL_GPL ubuntu/lttng/lttng-tracer 0x6139c88d lttng_event_put +EXPORT_SYMBOL_GPL ubuntu/lttng/lttng-tracer 0x69e4e15e lttng_add_hostname_to_ctx +EXPORT_SYMBOL_GPL ubuntu/lttng/lttng-tracer 0x74871b5e lttng_add_vtid_to_ctx +EXPORT_SYMBOL_GPL ubuntu/lttng/lttng-tracer 0x7766019d lttng_transport_unregister +EXPORT_SYMBOL_GPL ubuntu/lttng/lttng-tracer 0x8b482a32 lttng_add_tid_to_ctx +EXPORT_SYMBOL_GPL ubuntu/lttng/lttng-tracer 0xb2ccc5f8 lttng_add_procname_to_ctx +EXPORT_SYMBOL_GPL ubuntu/lttng/lttng-tracer 0xbb9535dd lttng_find_context +EXPORT_SYMBOL_GPL ubuntu/lttng/lttng-tracer 0xbde4b604 lttng_remove_context_field +EXPORT_SYMBOL_GPL ubuntu/lttng/lttng-tracer 0xd8dd9c54 lttng_event_get +EXPORT_SYMBOL_GPL ubuntu/lttng/lttng-tracer 0xdeed65f1 lttng_add_vpid_to_ctx +EXPORT_SYMBOL_GPL ubuntu/lttng/lttng-tracer 0xe1f4b279 lttng_add_ppid_to_ctx +EXPORT_SYMBOL_GPL ubuntu/lttng/lttng-tracer 0xe211257e lttng_probe_register +EXPORT_SYMBOL_GPL ubuntu/lttng/lttng-tracer 0xed925905 lttng_metadata_channel_destroy +EXPORT_SYMBOL_GPL ubuntu/lttng/lttng-tracer 0xf330bc30 lttng_append_context +EXPORT_SYMBOL_GPL ubuntu/lttng/probes/lttng-ftrace 0x9c95726f lttng_ftrace_register +EXPORT_SYMBOL_GPL ubuntu/lttng/probes/lttng-ftrace 0xd98fee3c lttng_ftrace_destroy_private +EXPORT_SYMBOL_GPL ubuntu/lttng/probes/lttng-ftrace 0xf82195a2 lttng_ftrace_unregister +EXPORT_SYMBOL_GPL ubuntu/lttng/probes/lttng-kprobes 0x44fb6fa7 lttng_kprobes_register +EXPORT_SYMBOL_GPL ubuntu/lttng/probes/lttng-kprobes 0x6781729e lttng_kprobes_destroy_private +EXPORT_SYMBOL_GPL ubuntu/lttng/probes/lttng-kprobes 0x877b5730 lttng_kprobes_unregister +EXPORT_SYMBOL_GPL ubuntu/lttng/probes/lttng-kretprobes 0x9cf8b336 lttng_kretprobes_destroy_private +EXPORT_SYMBOL_GPL ubuntu/lttng/probes/lttng-kretprobes 0xb6904157 lttng_kretprobes_register +EXPORT_SYMBOL_GPL ubuntu/lttng/probes/lttng-kretprobes 0xc7f6407b lttng_kretprobes_unregister +EXPORT_SYMBOL_GPL vmlinux 0x00332a97 pm_wakeup_event +EXPORT_SYMBOL_GPL vmlinux 0x00398282 tpm_write +EXPORT_SYMBOL_GPL vmlinux 0x00418363 __rtnl_register +EXPORT_SYMBOL_GPL vmlinux 0x004dab39 tpm_show_enabled +EXPORT_SYMBOL_GPL vmlinux 0x00611d9b irq_set_chip_and_handler_name +EXPORT_SYMBOL_GPL vmlinux 0x00632780 work_busy +EXPORT_SYMBOL_GPL vmlinux 0x0067df75 ata_tf_from_fis +EXPORT_SYMBOL_GPL vmlinux 0x007deb8d efivars_unregister +EXPORT_SYMBOL_GPL vmlinux 0x009e1218 crypto_unregister_shash +EXPORT_SYMBOL_GPL vmlinux 0x00c4dc87 timecounter_init +EXPORT_SYMBOL_GPL vmlinux 0x00c8ea5e free_vm_area +EXPORT_SYMBOL_GPL vmlinux 0x00ebcb5d ata_id_string +EXPORT_SYMBOL_GPL vmlinux 0x00ef4ff8 bus_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x0100568c rtc_class_close +EXPORT_SYMBOL_GPL vmlinux 0x01010c6d klist_add_before +EXPORT_SYMBOL_GPL vmlinux 0x01177859 ata_port_abort +EXPORT_SYMBOL_GPL vmlinux 0x011cf028 regulator_suspend_finish +EXPORT_SYMBOL_GPL vmlinux 0x01293730 tps65912_clear_bits +EXPORT_SYMBOL_GPL vmlinux 0x0137b7a2 unregister_asymmetric_key_parser +EXPORT_SYMBOL_GPL vmlinux 0x01637649 device_create_bin_file +EXPORT_SYMBOL_GPL vmlinux 0x016945ec xfrm_audit_policy_delete +EXPORT_SYMBOL_GPL vmlinux 0x016da003 crypto_init_spawn2 +EXPORT_SYMBOL_GPL vmlinux 0x0170cb6c efivar_work +EXPORT_SYMBOL_GPL vmlinux 0x01715676 __mnt_drop_write +EXPORT_SYMBOL_GPL vmlinux 0x0176e82a platform_device_register +EXPORT_SYMBOL_GPL vmlinux 0x01848a8e local_apic_timer_c2_ok +EXPORT_SYMBOL_GPL vmlinux 0x0193adb6 pcie_update_link_speed +EXPORT_SYMBOL_GPL vmlinux 0x01a81afc print_context_stack_bp +EXPORT_SYMBOL_GPL vmlinux 0x01d11a05 wakeup_source_register +EXPORT_SYMBOL_GPL vmlinux 0x01e1a8de kgdb_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0x0226315f wm8400_reset_codec_reg_cache +EXPORT_SYMBOL_GPL vmlinux 0x024592cb ping_get_port +EXPORT_SYMBOL_GPL vmlinux 0x026211e2 memory_failure_queue +EXPORT_SYMBOL_GPL vmlinux 0x0269869f mnt_want_write_file +EXPORT_SYMBOL_GPL vmlinux 0x026cd682 nf_queue_entry_release_refs +EXPORT_SYMBOL_GPL vmlinux 0x0270a708 usb_hcd_pci_probe +EXPORT_SYMBOL_GPL vmlinux 0x02c103e3 acpi_subsys_runtime_suspend +EXPORT_SYMBOL_GPL vmlinux 0x02c4c3dd dequeue_signal +EXPORT_SYMBOL_GPL vmlinux 0x02f9ef6f fat_dir_empty +EXPORT_SYMBOL_GPL vmlinux 0x033f049b sk_setup_caps +EXPORT_SYMBOL_GPL vmlinux 0x034109be ipv4_sk_redirect +EXPORT_SYMBOL_GPL vmlinux 0x0343bdf1 __i2c_board_list +EXPORT_SYMBOL_GPL vmlinux 0x035b2d8e rio_request_inb_pwrite +EXPORT_SYMBOL_GPL vmlinux 0x0379b291 inet6_csk_bind_conflict +EXPORT_SYMBOL_GPL vmlinux 0x03865e5d blk_update_request +EXPORT_SYMBOL_GPL vmlinux 0x03e3686c ata_timing_cycle2mode +EXPORT_SYMBOL_GPL vmlinux 0x0402695c __irq_set_handler +EXPORT_SYMBOL_GPL vmlinux 0x041078b3 net_ns_type_operations +EXPORT_SYMBOL_GPL vmlinux 0x04152314 vfs_listxattr +EXPORT_SYMBOL_GPL vmlinux 0x042fd5f5 inet_hashinfo_init +EXPORT_SYMBOL_GPL vmlinux 0x04387f26 crypto_unregister_instance +EXPORT_SYMBOL_GPL vmlinux 0x04486e88 rcu_batches_completed +EXPORT_SYMBOL_GPL vmlinux 0x0465a073 regmap_reg_in_ranges +EXPORT_SYMBOL_GPL vmlinux 0x04687062 thermal_cooling_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x04a62c69 inet6_csk_update_pmtu +EXPORT_SYMBOL_GPL vmlinux 0x04bf26af ioremap_page_range +EXPORT_SYMBOL_GPL vmlinux 0x04c3f2c1 gnttab_empty_grant_references +EXPORT_SYMBOL_GPL vmlinux 0x04c4f603 mpi_get_buffer +EXPORT_SYMBOL_GPL vmlinux 0x04d8b0b4 sdio_writeb_readb +EXPORT_SYMBOL_GPL vmlinux 0x051401d2 pci_max_pasids +EXPORT_SYMBOL_GPL vmlinux 0x0531dcb8 ata_dev_classify +EXPORT_SYMBOL_GPL vmlinux 0x054aa6cb class_find_device +EXPORT_SYMBOL_GPL vmlinux 0x054e550b kernel_halt +EXPORT_SYMBOL_GPL vmlinux 0x0551f0ce tick_nohz_idle_exit +EXPORT_SYMBOL_GPL vmlinux 0x058b582a vt_get_leds +EXPORT_SYMBOL_GPL vmlinux 0x05ab1a0e ata_sff_port_intr +EXPORT_SYMBOL_GPL vmlinux 0x05dcff2d dev_pm_qos_expose_latency_limit +EXPORT_SYMBOL_GPL vmlinux 0x05ebbe33 driver_find +EXPORT_SYMBOL_GPL vmlinux 0x060d1064 set_memory_ro +EXPORT_SYMBOL_GPL vmlinux 0x062591ad xfrm_output_resume +EXPORT_SYMBOL_GPL vmlinux 0x0626da5f od_unregister_powersave_bias_handler +EXPORT_SYMBOL_GPL vmlinux 0x062fc169 xen_hvm_resume_frames +EXPORT_SYMBOL_GPL vmlinux 0x063be8e4 swiotlb_unmap_page +EXPORT_SYMBOL_GPL vmlinux 0x064db9a5 mark_mounts_for_expiry +EXPORT_SYMBOL_GPL vmlinux 0x064dba28 virtqueue_get_vring_size +EXPORT_SYMBOL_GPL vmlinux 0x067c9a91 simple_attr_write +EXPORT_SYMBOL_GPL vmlinux 0x067f58b7 __netlink_remove_tap +EXPORT_SYMBOL_GPL vmlinux 0x068c29a0 usb_clear_halt +EXPORT_SYMBOL_GPL vmlinux 0x06963c36 intel_msic_bulk_write +EXPORT_SYMBOL_GPL vmlinux 0x06adf143 cgroup_add_cftypes +EXPORT_SYMBOL_GPL vmlinux 0x06b49e5c regulator_set_voltage_sel_regmap +EXPORT_SYMBOL_GPL vmlinux 0x06e17341 usb_hub_clear_tt_buffer +EXPORT_SYMBOL_GPL vmlinux 0x06e3162c fb_deferred_io_cleanup +EXPORT_SYMBOL_GPL vmlinux 0x070ff3d4 pci_dev_run_wake +EXPORT_SYMBOL_GPL vmlinux 0x07142ea9 perf_event_disable +EXPORT_SYMBOL_GPL vmlinux 0x07180b31 bitmap_resize +EXPORT_SYMBOL_GPL vmlinux 0x072ba0d6 disk_map_sector_rcu +EXPORT_SYMBOL_GPL vmlinux 0x072bbb81 attribute_container_classdev_to_container +EXPORT_SYMBOL_GPL vmlinux 0x0762403c edac_put_sysfs_subsys +EXPORT_SYMBOL_GPL vmlinux 0x0767437b tcp_twsk_unique +EXPORT_SYMBOL_GPL vmlinux 0x078c0137 btree_visitor +EXPORT_SYMBOL_GPL vmlinux 0x07b21f85 kdb_get_kbd_char +EXPORT_SYMBOL_GPL vmlinux 0x07b52e38 rtnl_unregister +EXPORT_SYMBOL_GPL vmlinux 0x07cf3227 clk_fixed_rate_ops +EXPORT_SYMBOL_GPL vmlinux 0x07f300c3 smp_call_function_any +EXPORT_SYMBOL_GPL vmlinux 0x07fc478e acpi_dev_resource_interrupt +EXPORT_SYMBOL_GPL vmlinux 0x0852e11f dm_set_target_max_io_len +EXPORT_SYMBOL_GPL vmlinux 0x0865286f fsnotify +EXPORT_SYMBOL_GPL vmlinux 0x086aaa18 dma_buf_map_attachment +EXPORT_SYMBOL_GPL vmlinux 0x086c7a11 setup_irq +EXPORT_SYMBOL_GPL vmlinux 0x0889f5da led_trigger_blink_oneshot +EXPORT_SYMBOL_GPL vmlinux 0x08e1f628 tpm_store_cancel +EXPORT_SYMBOL_GPL vmlinux 0x08ee91fb rtc_update_irq_enable +EXPORT_SYMBOL_GPL vmlinux 0x091eb9b4 round_jiffies +EXPORT_SYMBOL_GPL vmlinux 0x09437748 ring_buffer_read_events_cpu +EXPORT_SYMBOL_GPL vmlinux 0x09469482 kfree_call_rcu +EXPORT_SYMBOL_GPL vmlinux 0x0962d0e8 irq_set_affinity_notifier +EXPORT_SYMBOL_GPL vmlinux 0x099930b4 ata_eh_analyze_ncq_error +EXPORT_SYMBOL_GPL vmlinux 0x09a3bd29 netlink_add_tap +EXPORT_SYMBOL_GPL vmlinux 0x0a27d862 usb_hcd_end_port_resume +EXPORT_SYMBOL_GPL vmlinux 0x0a3b8d2f device_find_child +EXPORT_SYMBOL_GPL vmlinux 0x0a50a68e sysfs_remove_bin_file +EXPORT_SYMBOL_GPL vmlinux 0x0a544976 wm831x_auxadc_read +EXPORT_SYMBOL_GPL vmlinux 0x0a6053f3 pm_generic_thaw +EXPORT_SYMBOL_GPL vmlinux 0x0abb3710 ata_sff_prereset +EXPORT_SYMBOL_GPL vmlinux 0x0ac95b33 __inet_inherit_port +EXPORT_SYMBOL_GPL vmlinux 0x0acec770 scsi_schedule_eh +EXPORT_SYMBOL_GPL vmlinux 0x0af65f09 proc_get_parent_data +EXPORT_SYMBOL_GPL vmlinux 0x0afc545c regulator_enable_regmap +EXPORT_SYMBOL_GPL vmlinux 0x0afd4610 zs_malloc +EXPORT_SYMBOL_GPL vmlinux 0x0b05509d kern_mount_data +EXPORT_SYMBOL_GPL vmlinux 0x0b07abe2 unshare_fs_struct +EXPORT_SYMBOL_GPL vmlinux 0x0b0a6846 acpi_subsys_runtime_resume +EXPORT_SYMBOL_GPL vmlinux 0x0b19ed7c apei_estatus_check_header +EXPORT_SYMBOL_GPL vmlinux 0x0b1a482c exportfs_decode_fh +EXPORT_SYMBOL_GPL vmlinux 0x0b2bcffa wm8350_block_read +EXPORT_SYMBOL_GPL vmlinux 0x0b48bebb tpm_register_hardware +EXPORT_SYMBOL_GPL vmlinux 0x0b52e502 apei_resources_add +EXPORT_SYMBOL_GPL vmlinux 0x0b5741f1 debugfs_create_u32_array +EXPORT_SYMBOL_GPL vmlinux 0x0b59390b __tracepoint_rpm_suspend +EXPORT_SYMBOL_GPL vmlinux 0x0b68c143 ata_bmdma_start +EXPORT_SYMBOL_GPL vmlinux 0x0b71154f ata_sas_port_async_resume +EXPORT_SYMBOL_GPL vmlinux 0x0b98e2eb posix_timer_event +EXPORT_SYMBOL_GPL vmlinux 0x0bae62b1 ktime_get_monotonic_offset +EXPORT_SYMBOL_GPL vmlinux 0x0bfa3a19 rcu_idle_exit +EXPORT_SYMBOL_GPL vmlinux 0x0c0c015e ring_buffer_swap_cpu +EXPORT_SYMBOL_GPL vmlinux 0x0c2c947c sysfs_create_file +EXPORT_SYMBOL_GPL vmlinux 0x0c2cdbf1 synchronize_sched +EXPORT_SYMBOL_GPL vmlinux 0x0c2de0c9 wm831x_reg_unlock +EXPORT_SYMBOL_GPL vmlinux 0x0c350665 led_trigger_unregister_simple +EXPORT_SYMBOL_GPL vmlinux 0x0c4aa76d cpu_subsys +EXPORT_SYMBOL_GPL vmlinux 0x0c57c939 pm_runtime_enable +EXPORT_SYMBOL_GPL vmlinux 0x0c805f93 clflush_cache_range +EXPORT_SYMBOL_GPL vmlinux 0x0c80e3fe efivar_init +EXPORT_SYMBOL_GPL vmlinux 0x0c902151 tpm_do_selftest +EXPORT_SYMBOL_GPL vmlinux 0x0cbf043e pci_rescan_bus +EXPORT_SYMBOL_GPL vmlinux 0x0cc1e40f crypto_it_tab +EXPORT_SYMBOL_GPL vmlinux 0x0ccd067e ip6_dst_lookup +EXPORT_SYMBOL_GPL vmlinux 0x0cdab6c9 dev_pm_qos_add_ancestor_request +EXPORT_SYMBOL_GPL vmlinux 0x0cdadff4 pm_generic_freeze_late +EXPORT_SYMBOL_GPL vmlinux 0x0ce8e0a3 dma_buf_kmap_atomic +EXPORT_SYMBOL_GPL vmlinux 0x0d3227e1 crypto_alloc_ablkcipher +EXPORT_SYMBOL_GPL vmlinux 0x0d337a31 __platform_driver_register +EXPORT_SYMBOL_GPL vmlinux 0x0d34727c serial8250_release_dma +EXPORT_SYMBOL_GPL vmlinux 0x0d3b4e8c perf_event_refresh +EXPORT_SYMBOL_GPL vmlinux 0x0d4b9a7b crypto_alloc_ahash +EXPORT_SYMBOL_GPL vmlinux 0x0d8ecb2f raw_seq_start +EXPORT_SYMBOL_GPL vmlinux 0x0d9b334e da9052_free_irq +EXPORT_SYMBOL_GPL vmlinux 0x0da0f9e1 irq_domain_add_legacy +EXPORT_SYMBOL_GPL vmlinux 0x0e13cb4d apei_resources_release +EXPORT_SYMBOL_GPL vmlinux 0x0e15d8cb devm_regmap_init +EXPORT_SYMBOL_GPL vmlinux 0x0e321195 i2c_unregister_device +EXPORT_SYMBOL_GPL vmlinux 0x0e3a524c tc3589x_reg_write +EXPORT_SYMBOL_GPL vmlinux 0x0e53f8ce acpi_dev_suspend_late +EXPORT_SYMBOL_GPL vmlinux 0x0e823419 unix_outq_len +EXPORT_SYMBOL_GPL vmlinux 0x0e99e6f5 xen_unmap_domain_mfn_range +EXPORT_SYMBOL_GPL vmlinux 0x0ed2a891 extcon_get_extcon_dev +EXPORT_SYMBOL_GPL vmlinux 0x0ee8a3d9 dma_request_slave_channel +EXPORT_SYMBOL_GPL vmlinux 0x0ef06974 spi_populate_ppr_msg +EXPORT_SYMBOL_GPL vmlinux 0x0f2275a3 handle_level_irq +EXPORT_SYMBOL_GPL vmlinux 0x0f2d7d87 mce_unregister_decode_chain +EXPORT_SYMBOL_GPL vmlinux 0x0f319708 skb_partial_csum_set +EXPORT_SYMBOL_GPL vmlinux 0x0f5b3088 arizona_free_irq +EXPORT_SYMBOL_GPL vmlinux 0x0f5b3272 inverse_translate +EXPORT_SYMBOL_GPL vmlinux 0x0f5fe39a cpuidle_unregister_device +EXPORT_SYMBOL_GPL vmlinux 0x0f682fe8 pci_restore_msi_state +EXPORT_SYMBOL_GPL vmlinux 0x0f6d3693 tpm_show_owned +EXPORT_SYMBOL_GPL vmlinux 0x0f7429fa pci_hp_create_module_link +EXPORT_SYMBOL_GPL vmlinux 0x0f751aea input_event_from_user +EXPORT_SYMBOL_GPL vmlinux 0x0f8033ae platform_driver_probe +EXPORT_SYMBOL_GPL vmlinux 0x0fa138de xen_hvm_need_lapic +EXPORT_SYMBOL_GPL vmlinux 0x0fae6e29 ata_dev_disable +EXPORT_SYMBOL_GPL vmlinux 0x0fc01e9f static_key_slow_inc +EXPORT_SYMBOL_GPL vmlinux 0x0fc7be9f pci_user_read_config_byte +EXPORT_SYMBOL_GPL vmlinux 0x0fcc1969 copy_from_user_nmi +EXPORT_SYMBOL_GPL vmlinux 0x0fd72052 xenbus_dev_attrs +EXPORT_SYMBOL_GPL vmlinux 0x0fdfd63e btree_insert +EXPORT_SYMBOL_GPL vmlinux 0x0fe2d570 xenbus_directory +EXPORT_SYMBOL_GPL vmlinux 0x100a6252 register_hotplug_dock_device +EXPORT_SYMBOL_GPL vmlinux 0x10138352 tracing_on +EXPORT_SYMBOL_GPL vmlinux 0x10219ed1 pci_intx +EXPORT_SYMBOL_GPL vmlinux 0x10291853 devm_regulator_put +EXPORT_SYMBOL_GPL vmlinux 0x103a43c8 cpci_hp_unregister_controller +EXPORT_SYMBOL_GPL vmlinux 0x106c275d sata_scr_read +EXPORT_SYMBOL_GPL vmlinux 0x107e6cca tps6586x_write +EXPORT_SYMBOL_GPL vmlinux 0x1095e1f1 da9052_enable_irq +EXPORT_SYMBOL_GPL vmlinux 0x10ba72c5 extcon_update_state +EXPORT_SYMBOL_GPL vmlinux 0x10e8c47d sec_bulk_read +EXPORT_SYMBOL_GPL vmlinux 0x10ecc52c usb_amd_quirk_pll_enable +EXPORT_SYMBOL_GPL vmlinux 0x10ed6eae acpiphp_unregister_attention +EXPORT_SYMBOL_GPL vmlinux 0x110106c1 cper_severity_to_aer +EXPORT_SYMBOL_GPL vmlinux 0x114cf603 ata_sff_dev_classify +EXPORT_SYMBOL_GPL vmlinux 0x1172ce54 rtc_ktime_to_tm +EXPORT_SYMBOL_GPL vmlinux 0x1176d29b bus_find_device +EXPORT_SYMBOL_GPL vmlinux 0x117c7305 hwpoison_filter_dev_major +EXPORT_SYMBOL_GPL vmlinux 0x11b645bd pci_enable_pasid +EXPORT_SYMBOL_GPL vmlinux 0x11d937eb usb_kill_urb +EXPORT_SYMBOL_GPL vmlinux 0x11f19a6a rt_mutex_timed_lock +EXPORT_SYMBOL_GPL vmlinux 0x11f447ce __gpio_to_irq +EXPORT_SYMBOL_GPL vmlinux 0x11f59b39 wakeup_source_unregister +EXPORT_SYMBOL_GPL vmlinux 0x12053981 debugfs_rename +EXPORT_SYMBOL_GPL vmlinux 0x121d958a unregister_die_notifier +EXPORT_SYMBOL_GPL vmlinux 0x121ed3f3 add_timer_on +EXPORT_SYMBOL_GPL vmlinux 0x124f2056 crypto_get_attr_type +EXPORT_SYMBOL_GPL vmlinux 0x1258d9d9 regulator_disable +EXPORT_SYMBOL_GPL vmlinux 0x125e1a60 crypto_shoot_alg +EXPORT_SYMBOL_GPL vmlinux 0x1268f357 resume_device_irqs +EXPORT_SYMBOL_GPL vmlinux 0x12704502 da903x_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x128fe197 max8997_update_reg +EXPORT_SYMBOL_GPL vmlinux 0x12aca6b3 ata_host_alloc_pinfo +EXPORT_SYMBOL_GPL vmlinux 0x12ca4443 subsys_dev_iter_exit +EXPORT_SYMBOL_GPL vmlinux 0x12eb6c21 serial8250_modem_status +EXPORT_SYMBOL_GPL vmlinux 0x12fcaea0 inet6_csk_addr2sockaddr +EXPORT_SYMBOL_GPL vmlinux 0x12fd7308 usb_match_id +EXPORT_SYMBOL_GPL vmlinux 0x131a5ed7 regmap_del_irq_chip +EXPORT_SYMBOL_GPL vmlinux 0x131db64a system_long_wq +EXPORT_SYMBOL_GPL vmlinux 0x138aff76 gnttab_init +EXPORT_SYMBOL_GPL vmlinux 0x139a067b device_register +EXPORT_SYMBOL_GPL vmlinux 0x13acd3a8 register_user_hw_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0x13dae8bb led_trigger_unregister +EXPORT_SYMBOL_GPL vmlinux 0x13f3e3fb klist_init +EXPORT_SYMBOL_GPL vmlinux 0x1417db7e device_create_vargs +EXPORT_SYMBOL_GPL vmlinux 0x141e3010 __clocksource_register_scale +EXPORT_SYMBOL_GPL vmlinux 0x143462a3 sysfs_unmerge_group +EXPORT_SYMBOL_GPL vmlinux 0x1447dd6c find_vpid +EXPORT_SYMBOL_GPL vmlinux 0x1455ed22 driver_find_device +EXPORT_SYMBOL_GPL vmlinux 0x145784d1 gdt_page +EXPORT_SYMBOL_GPL vmlinux 0x145f3b15 efivars_register +EXPORT_SYMBOL_GPL vmlinux 0x1492163f blkcg_policy_unregister +EXPORT_SYMBOL_GPL vmlinux 0x149fab13 acpi_match_device +EXPORT_SYMBOL_GPL vmlinux 0x14d0d4f5 debugfs_create_bool +EXPORT_SYMBOL_GPL vmlinux 0x14d735af device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x14d79396 efivar_entry_iter +EXPORT_SYMBOL_GPL vmlinux 0x14f875ce devm_regmap_init_mmio_clk +EXPORT_SYMBOL_GPL vmlinux 0x14fc0c63 atomic_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0x15010e1f arbitrary_virt_to_machine +EXPORT_SYMBOL_GPL vmlinux 0x150a7d55 arizona_clk32k_enable +EXPORT_SYMBOL_GPL vmlinux 0x150ad363 ehci_init_driver +EXPORT_SYMBOL_GPL vmlinux 0x150b1c6c pci_find_ht_capability +EXPORT_SYMBOL_GPL vmlinux 0x150b2cd8 get_task_mm +EXPORT_SYMBOL_GPL vmlinux 0x153a0c91 usb_anchor_empty +EXPORT_SYMBOL_GPL vmlinux 0x15568631 lookup_address +EXPORT_SYMBOL_GPL vmlinux 0x1558a841 crypto_lookup_aead +EXPORT_SYMBOL_GPL vmlinux 0x1571ede1 __scsi_get_command +EXPORT_SYMBOL_GPL vmlinux 0x15892417 async_synchronize_cookie +EXPORT_SYMBOL_GPL vmlinux 0x158e864e ipv4_update_pmtu +EXPORT_SYMBOL_GPL vmlinux 0x1590c566 wm8350_reg_read +EXPORT_SYMBOL_GPL vmlinux 0x159e1905 acpi_processor_get_performance_info +EXPORT_SYMBOL_GPL vmlinux 0x15b0606e e820_any_mapped +EXPORT_SYMBOL_GPL vmlinux 0x15e975b7 xen_find_device_domain_owner +EXPORT_SYMBOL_GPL vmlinux 0x16000a3c dm_device_name +EXPORT_SYMBOL_GPL vmlinux 0x1602b003 pci_find_next_ht_capability +EXPORT_SYMBOL_GPL vmlinux 0x1607bfe7 relay_switch_subbuf +EXPORT_SYMBOL_GPL vmlinux 0x162c0c25 anon_inode_getfile +EXPORT_SYMBOL_GPL vmlinux 0x1650bf27 rcutorture_record_progress +EXPORT_SYMBOL_GPL vmlinux 0x165c2efb clk_get_rate +EXPORT_SYMBOL_GPL vmlinux 0x16621ad9 bus_get_kset +EXPORT_SYMBOL_GPL vmlinux 0x16722371 crypto_unregister_pcomp +EXPORT_SYMBOL_GPL vmlinux 0x16912aab tpm_remove_hardware +EXPORT_SYMBOL_GPL vmlinux 0x16d4d06f ata_bmdma_dumb_qc_prep +EXPORT_SYMBOL_GPL vmlinux 0x16d6c05e ata_sff_wait_after_reset +EXPORT_SYMBOL_GPL vmlinux 0x16e82aef stmpe_enable +EXPORT_SYMBOL_GPL vmlinux 0x16f00d44 sdio_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0x16fde19e gnttab_map_refs +EXPORT_SYMBOL_GPL vmlinux 0x170e7cf1 __blk_end_request_err +EXPORT_SYMBOL_GPL vmlinux 0x172768df __rtnl_link_register +EXPORT_SYMBOL_GPL vmlinux 0x172e72d4 vdso_enabled +EXPORT_SYMBOL_GPL vmlinux 0x1746f98e __srcu_read_unlock +EXPORT_SYMBOL_GPL vmlinux 0x174d5d32 add_to_page_cache_lru +EXPORT_SYMBOL_GPL vmlinux 0x1756cdda iommu_domain_has_cap +EXPORT_SYMBOL_GPL vmlinux 0x175972f5 ftrace_event_reg +EXPORT_SYMBOL_GPL vmlinux 0x17614bf3 apei_resources_sub +EXPORT_SYMBOL_GPL vmlinux 0x17628247 xenbus_switch_state +EXPORT_SYMBOL_GPL vmlinux 0x1762cf0a ata_link_abort +EXPORT_SYMBOL_GPL vmlinux 0x176e4d40 extcon_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x17725547 do_unbind_con_driver +EXPORT_SYMBOL_GPL vmlinux 0x17c8243b tcp_get_info +EXPORT_SYMBOL_GPL vmlinux 0x17c99124 hwmon_device_register +EXPORT_SYMBOL_GPL vmlinux 0x17cee9a3 sdio_f0_readb +EXPORT_SYMBOL_GPL vmlinux 0x1817ce7e vring_new_virtqueue +EXPORT_SYMBOL_GPL vmlinux 0x1829b9ed hwpoison_filter_memcg +EXPORT_SYMBOL_GPL vmlinux 0x1853653c btree_alloc +EXPORT_SYMBOL_GPL vmlinux 0x18582826 amd_pmu_disable_virt +EXPORT_SYMBOL_GPL vmlinux 0x185a4b0a hwmon_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x1866cec2 ring_buffer_size +EXPORT_SYMBOL_GPL vmlinux 0x1878f62b edac_err_assert +EXPORT_SYMBOL_GPL vmlinux 0x188aa133 xattr_getsecurity +EXPORT_SYMBOL_GPL vmlinux 0x1899d486 pm_runtime_autosuspend_expiration +EXPORT_SYMBOL_GPL vmlinux 0x18a27f34 jump_label_rate_limit +EXPORT_SYMBOL_GPL vmlinux 0x18ba9ced crypto_register_algs +EXPORT_SYMBOL_GPL vmlinux 0x18be8536 __efivar_entry_get +EXPORT_SYMBOL_GPL vmlinux 0x18c0a955 acpi_dma_request_slave_chan_by_name +EXPORT_SYMBOL_GPL vmlinux 0x18ca8c5e wakeup_source_destroy +EXPORT_SYMBOL_GPL vmlinux 0x18dde5c5 ata_sff_pause +EXPORT_SYMBOL_GPL vmlinux 0x18eddef0 __pci_hp_register +EXPORT_SYMBOL_GPL vmlinux 0x18f83fab gnttab_grant_foreign_access_ref +EXPORT_SYMBOL_GPL vmlinux 0x19105d30 crypto_init_shash_spawn +EXPORT_SYMBOL_GPL vmlinux 0x193d48e0 trace_current_buffer_unlock_commit +EXPORT_SYMBOL_GPL vmlinux 0x19496284 tcp_orphan_count +EXPORT_SYMBOL_GPL vmlinux 0x196614ce hw_breakpoint_restore +EXPORT_SYMBOL_GPL vmlinux 0x1995744d crypto_dequeue_request +EXPORT_SYMBOL_GPL vmlinux 0x19a304ba usb_disabled +EXPORT_SYMBOL_GPL vmlinux 0x19cc6999 acpi_bind_one +EXPORT_SYMBOL_GPL vmlinux 0x19fc7f60 regulator_set_mode +EXPORT_SYMBOL_GPL vmlinux 0x1a00db46 i2c_adapter_type +EXPORT_SYMBOL_GPL vmlinux 0x1a082d69 max77693_update_reg +EXPORT_SYMBOL_GPL vmlinux 0x1a323362 __ftrace_vbprintk +EXPORT_SYMBOL_GPL vmlinux 0x1a47978b blkcipher_walk_phys +EXPORT_SYMBOL_GPL vmlinux 0x1a98f40a cpuidle_disable_device +EXPORT_SYMBOL_GPL vmlinux 0x1a9e7a3b rdev_get_dev +EXPORT_SYMBOL_GPL vmlinux 0x1ab710a4 cpuidle_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0x1ad83009 trace_seq_vprintf +EXPORT_SYMBOL_GPL vmlinux 0x1afa123a cpci_hp_register_controller +EXPORT_SYMBOL_GPL vmlinux 0x1b1f2bda speedstep_get_freqs +EXPORT_SYMBOL_GPL vmlinux 0x1b523f7e device_attach +EXPORT_SYMBOL_GPL vmlinux 0x1b52db1c probe_kernel_read +EXPORT_SYMBOL_GPL vmlinux 0x1b670076 blocking_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0x1b9aca3f jprobe_return +EXPORT_SYMBOL_GPL vmlinux 0x1ba0d4ff usb_match_one_id +EXPORT_SYMBOL_GPL vmlinux 0x1ba72e92 blkcipher_walk_done +EXPORT_SYMBOL_GPL vmlinux 0x1bc4d63e da903x_update +EXPORT_SYMBOL_GPL vmlinux 0x1bd06aab cpufreq_frequency_table_get_attr +EXPORT_SYMBOL_GPL vmlinux 0x1be260b7 power_supply_set_battery_charged +EXPORT_SYMBOL_GPL vmlinux 0x1bfee4ad ata_sas_slave_configure +EXPORT_SYMBOL_GPL vmlinux 0x1c5b1f28 irq_free_descs +EXPORT_SYMBOL_GPL vmlinux 0x1c80d27d btree_geo128 +EXPORT_SYMBOL_GPL vmlinux 0x1c87a811 __round_jiffies_up +EXPORT_SYMBOL_GPL vmlinux 0x1c8ab505 sk_clone_lock +EXPORT_SYMBOL_GPL vmlinux 0x1c9af21b devres_open_group +EXPORT_SYMBOL_GPL vmlinux 0x1cb47fc4 irq_domain_associate_many +EXPORT_SYMBOL_GPL vmlinux 0x1cc9dd6d ata_std_sched_eh +EXPORT_SYMBOL_GPL vmlinux 0x1cd9c97f led_trigger_show +EXPORT_SYMBOL_GPL vmlinux 0x1cdc0142 devm_acpi_dma_controller_free +EXPORT_SYMBOL_GPL vmlinux 0x1ce98df1 atomic_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x1ce9f0e8 sysfs_merge_group +EXPORT_SYMBOL_GPL vmlinux 0x1cf75bae put_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0x1cffc4df RSA_public_key_algorithm +EXPORT_SYMBOL_GPL vmlinux 0x1d00cf71 dev_get_gen_pool +EXPORT_SYMBOL_GPL vmlinux 0x1d097c56 bmp085_remove +EXPORT_SYMBOL_GPL vmlinux 0x1d0c62ee ata_pci_bmdma_clear_simplex +EXPORT_SYMBOL_GPL vmlinux 0x1d10ca7d sata_link_debounce +EXPORT_SYMBOL_GPL vmlinux 0x1d13bb2a usb_enable_autosuspend +EXPORT_SYMBOL_GPL vmlinux 0x1d22c454 wm831x_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x1d459685 xstate_size +EXPORT_SYMBOL_GPL vmlinux 0x1d478e28 usb_add_hcd +EXPORT_SYMBOL_GPL vmlinux 0x1d525c6f ata_sff_data_xfer +EXPORT_SYMBOL_GPL vmlinux 0x1d58ae14 lpddr2_jedec_timings +EXPORT_SYMBOL_GPL vmlinux 0x1d5c9136 sata_pmp_error_handler +EXPORT_SYMBOL_GPL vmlinux 0x1d739e1c xen_set_callback_via +EXPORT_SYMBOL_GPL vmlinux 0x1d77b0f8 unix_socket_table +EXPORT_SYMBOL_GPL vmlinux 0x1d8fb3bb acpi_dev_resource_address_space +EXPORT_SYMBOL_GPL vmlinux 0x1d9b6194 blkg_lookup_create +EXPORT_SYMBOL_GPL vmlinux 0x1da30949 bio_clone_mddev +EXPORT_SYMBOL_GPL vmlinux 0x1dc68fee __netpoll_cleanup +EXPORT_SYMBOL_GPL vmlinux 0x1e000879 hwpoison_filter_enable +EXPORT_SYMBOL_GPL vmlinux 0x1e314b21 regulator_use_dummy_regulator +EXPORT_SYMBOL_GPL vmlinux 0x1e3740d6 tty_ldisc_ref +EXPORT_SYMBOL_GPL vmlinux 0x1e37b338 netdev_set_default_ethtool_ops +EXPORT_SYMBOL_GPL vmlinux 0x1e3a88fb trace_seq_printf +EXPORT_SYMBOL_GPL vmlinux 0x1e459c71 led_classdev_resume +EXPORT_SYMBOL_GPL vmlinux 0x1e5b03dc pm_qos_add_notifier +EXPORT_SYMBOL_GPL vmlinux 0x1e7bbcb3 kernel_restart +EXPORT_SYMBOL_GPL vmlinux 0x1e7de3f5 thermal_zone_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x1e7ed8d2 sdio_memcpy_fromio +EXPORT_SYMBOL_GPL vmlinux 0x1eb4c64b do_take_over_console +EXPORT_SYMBOL_GPL vmlinux 0x1eb6288b crypto_register_shash +EXPORT_SYMBOL_GPL vmlinux 0x1eb9516e round_jiffies_relative +EXPORT_SYMBOL_GPL vmlinux 0x1ebc4c66 dma_run_dependencies +EXPORT_SYMBOL_GPL vmlinux 0x1ebe52a3 ata_sas_port_alloc +EXPORT_SYMBOL_GPL vmlinux 0x1ebf6c2a pci_power_names +EXPORT_SYMBOL_GPL vmlinux 0x1edc21cb hwpoison_filter_flags_mask +EXPORT_SYMBOL_GPL vmlinux 0x1f157e83 ata_bmdma_irq_clear +EXPORT_SYMBOL_GPL vmlinux 0x1f1988f7 hwpoison_filter_flags_value +EXPORT_SYMBOL_GPL vmlinux 0x1f54f1b4 do_trace_rcu_torture_read +EXPORT_SYMBOL_GPL vmlinux 0x1f75fde1 sysfs_get +EXPORT_SYMBOL_GPL vmlinux 0x1f7f6fac register_jprobe +EXPORT_SYMBOL_GPL vmlinux 0x1f8544b8 panic_timeout +EXPORT_SYMBOL_GPL vmlinux 0x1f881966 usb_interrupt_msg +EXPORT_SYMBOL_GPL vmlinux 0x1f89be0d thermal_zone_device_update +EXPORT_SYMBOL_GPL vmlinux 0x1f8db7f9 ring_buffer_overrun_cpu +EXPORT_SYMBOL_GPL vmlinux 0x1f9c60c6 dev_pm_qos_expose_flags +EXPORT_SYMBOL_GPL vmlinux 0x1fb54011 __mmc_switch +EXPORT_SYMBOL_GPL vmlinux 0x1fcece42 inet_twdr_twcal_tick +EXPORT_SYMBOL_GPL vmlinux 0x1fff9b44 device_del +EXPORT_SYMBOL_GPL vmlinux 0x200e8aa6 ata_cable_80wire +EXPORT_SYMBOL_GPL vmlinux 0x2010da03 inet_csk_listen_start +EXPORT_SYMBOL_GPL vmlinux 0x20129e16 spi_master_suspend +EXPORT_SYMBOL_GPL vmlinux 0x201335de usb_get_dev +EXPORT_SYMBOL_GPL vmlinux 0x20331b77 usb_driver_release_interface +EXPORT_SYMBOL_GPL vmlinux 0x205d7d1a noop_backing_dev_info +EXPORT_SYMBOL_GPL vmlinux 0x20671650 call_srcu +EXPORT_SYMBOL_GPL vmlinux 0x20872c61 dev_pm_qos_add_request +EXPORT_SYMBOL_GPL vmlinux 0x209ba643 bus_for_each_drv +EXPORT_SYMBOL_GPL vmlinux 0x209ec764 xen_event_channel_op_compat +EXPORT_SYMBOL_GPL vmlinux 0x20ae77b3 usb_hcd_check_unlink_urb +EXPORT_SYMBOL_GPL vmlinux 0x20bc3470 orderly_poweroff +EXPORT_SYMBOL_GPL vmlinux 0x20ca40b2 exportfs_encode_inode_fh +EXPORT_SYMBOL_GPL vmlinux 0x20cb9263 transport_setup_device +EXPORT_SYMBOL_GPL vmlinux 0x20f4b3f1 filter_current_check_discard +EXPORT_SYMBOL_GPL vmlinux 0x2123bffa iommu_set_fault_handler +EXPORT_SYMBOL_GPL vmlinux 0x21269a2e m2p_remove_override +EXPORT_SYMBOL_GPL vmlinux 0x217a16a6 led_stop_software_blink +EXPORT_SYMBOL_GPL vmlinux 0x21890c92 crypto_enqueue_request +EXPORT_SYMBOL_GPL vmlinux 0x2191496e acpi_pci_find_root +EXPORT_SYMBOL_GPL vmlinux 0x219fbaab sdio_memcpy_toio +EXPORT_SYMBOL_GPL vmlinux 0x21a3ecc2 scsi_mode_select +EXPORT_SYMBOL_GPL vmlinux 0x21ac8b77 iommu_group_get_by_id +EXPORT_SYMBOL_GPL vmlinux 0x220b43a3 pm_runtime_allow +EXPORT_SYMBOL_GPL vmlinux 0x22264fb1 fb_bl_default_curve +EXPORT_SYMBOL_GPL vmlinux 0x2266752b ata_port_schedule_eh +EXPORT_SYMBOL_GPL vmlinux 0x22858199 sec_reg_read +EXPORT_SYMBOL_GPL vmlinux 0x228ebb65 transport_remove_device +EXPORT_SYMBOL_GPL vmlinux 0x2296c00d crypto_attr_u32 +EXPORT_SYMBOL_GPL vmlinux 0x22c07787 pm_runtime_forbid +EXPORT_SYMBOL_GPL vmlinux 0x22ea5c1b rio_release_inb_dbell +EXPORT_SYMBOL_GPL vmlinux 0x22ed2b03 unregister_dock_notifier +EXPORT_SYMBOL_GPL vmlinux 0x22f65e18 ata_scsi_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x235f95bf platform_device_register_full +EXPORT_SYMBOL_GPL vmlinux 0x2366a2c0 errata +EXPORT_SYMBOL_GPL vmlinux 0x23679939 __iowrite32_copy +EXPORT_SYMBOL_GPL vmlinux 0x2373352a clk_fixed_factor_ops +EXPORT_SYMBOL_GPL vmlinux 0x23838ba0 rio_dev_get +EXPORT_SYMBOL_GPL vmlinux 0x23864ce7 cpuset_mem_spread_node +EXPORT_SYMBOL_GPL vmlinux 0x238e0d5b regmap_add_irq_chip +EXPORT_SYMBOL_GPL vmlinux 0x2392bc6e pm_qos_request_active +EXPORT_SYMBOL_GPL vmlinux 0x2399bb88 __pm_runtime_idle +EXPORT_SYMBOL_GPL vmlinux 0x23a3da37 pm_runtime_set_memalloc_noio +EXPORT_SYMBOL_GPL vmlinux 0x23bb2be7 __blkg_prfill_u64 +EXPORT_SYMBOL_GPL vmlinux 0x240580a9 xenbus_probe +EXPORT_SYMBOL_GPL vmlinux 0x2417310f usb_get_intf +EXPORT_SYMBOL_GPL vmlinux 0x243629ea adp5520_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x2447533c ktime_get_real +EXPORT_SYMBOL_GPL vmlinux 0x2462e073 xenbus_match +EXPORT_SYMBOL_GPL vmlinux 0x247ef831 kdb_unregister +EXPORT_SYMBOL_GPL vmlinux 0x24a0f964 regmap_init +EXPORT_SYMBOL_GPL vmlinux 0x24aac4d9 crypto_aes_expand_key +EXPORT_SYMBOL_GPL vmlinux 0x24abb953 usb_unpoison_urb +EXPORT_SYMBOL_GPL vmlinux 0x24c7698a xenbus_write +EXPORT_SYMBOL_GPL vmlinux 0x24d36f2e md_stop +EXPORT_SYMBOL_GPL vmlinux 0x24eb7e32 leds_list +EXPORT_SYMBOL_GPL vmlinux 0x24f057f9 blk_queue_lld_busy +EXPORT_SYMBOL_GPL vmlinux 0x24f2d831 regulator_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x24f39c39 reset_control_reset +EXPORT_SYMBOL_GPL vmlinux 0x24fc46b6 regulator_bulk_free +EXPORT_SYMBOL_GPL vmlinux 0x2500ff75 ip6_dst_lookup_flow +EXPORT_SYMBOL_GPL vmlinux 0x252c1d2c tty_buffer_request_room +EXPORT_SYMBOL_GPL vmlinux 0x2545c170 unregister_xenbus_watch +EXPORT_SYMBOL_GPL vmlinux 0x255119a5 class_interface_unregister +EXPORT_SYMBOL_GPL vmlinux 0x2556c048 __sock_recv_timestamp +EXPORT_SYMBOL_GPL vmlinux 0x2587b4bd ata_sg_init +EXPORT_SYMBOL_GPL vmlinux 0x25b263c4 wm8994_reg_write +EXPORT_SYMBOL_GPL vmlinux 0x25cc945c efivar_entry_size +EXPORT_SYMBOL_GPL vmlinux 0x25e6848c pci_num_vf +EXPORT_SYMBOL_GPL vmlinux 0x26095d10 scsi_autopm_put_device +EXPORT_SYMBOL_GPL vmlinux 0x2624ecfc __put_net +EXPORT_SYMBOL_GPL vmlinux 0x262f20a8 local_clock +EXPORT_SYMBOL_GPL vmlinux 0x26383a99 ata_sff_exec_command +EXPORT_SYMBOL_GPL vmlinux 0x26407049 ata_host_register +EXPORT_SYMBOL_GPL vmlinux 0x264a072e pci_enable_pcie_error_reporting +EXPORT_SYMBOL_GPL vmlinux 0x265106ec usb_hcd_giveback_urb +EXPORT_SYMBOL_GPL vmlinux 0x26520970 vm_memory_committed +EXPORT_SYMBOL_GPL vmlinux 0x2660d661 usb_get_status +EXPORT_SYMBOL_GPL vmlinux 0x2664764c cpuidle_enable_device +EXPORT_SYMBOL_GPL vmlinux 0x26965721 slow_virt_to_phys +EXPORT_SYMBOL_GPL vmlinux 0x26aaad75 pstore_register +EXPORT_SYMBOL_GPL vmlinux 0x26acbb22 task_current_syscall +EXPORT_SYMBOL_GPL vmlinux 0x26b71fb4 ring_buffer_time_stamp +EXPORT_SYMBOL_GPL vmlinux 0x26c90ea4 scsi_eh_get_sense +EXPORT_SYMBOL_GPL vmlinux 0x27297e6a nfq_ct_nat_hook +EXPORT_SYMBOL_GPL vmlinux 0x2742fa90 pm_runtime_irq_safe +EXPORT_SYMBOL_GPL vmlinux 0x2768c38f vma_kernel_pagesize +EXPORT_SYMBOL_GPL vmlinux 0x277a84e8 blk_end_request_err +EXPORT_SYMBOL_GPL vmlinux 0x2787db00 vbin_printf +EXPORT_SYMBOL_GPL vmlinux 0x278ec596 firmware_kobj +EXPORT_SYMBOL_GPL vmlinux 0x279aee43 regmap_exit +EXPORT_SYMBOL_GPL vmlinux 0x279cb985 apei_exec_pre_map_gars +EXPORT_SYMBOL_GPL vmlinux 0x27c1e63f usb_amd_find_chipset_info +EXPORT_SYMBOL_GPL vmlinux 0x27c8e919 balloon_page_enqueue +EXPORT_SYMBOL_GPL vmlinux 0x27ddb33d acpi_dev_resource_io +EXPORT_SYMBOL_GPL vmlinux 0x27e09448 regmap_update_bits +EXPORT_SYMBOL_GPL vmlinux 0x27f4f029 ftrace_set_global_filter +EXPORT_SYMBOL_GPL vmlinux 0x27fa66e1 nr_free_buffer_pages +EXPORT_SYMBOL_GPL vmlinux 0x27fa95d4 udp4_lib_lookup +EXPORT_SYMBOL_GPL vmlinux 0x27fcda06 vring_transport_features +EXPORT_SYMBOL_GPL vmlinux 0x28041afd tps6586x_read +EXPORT_SYMBOL_GPL vmlinux 0x280e4516 kobject_get_path +EXPORT_SYMBOL_GPL vmlinux 0x28148012 wm831x_reg_write +EXPORT_SYMBOL_GPL vmlinux 0x2869ebaf regulator_bulk_force_disable +EXPORT_SYMBOL_GPL vmlinux 0x2872a695 usb_debug_root +EXPORT_SYMBOL_GPL vmlinux 0x2884f229 blkdev_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x28a82da4 snmp_mib_init +EXPORT_SYMBOL_GPL vmlinux 0x28a903c8 timerqueue_add +EXPORT_SYMBOL_GPL vmlinux 0x28d25b64 regmap_write +EXPORT_SYMBOL_GPL vmlinux 0x28fd8374 tpm_release +EXPORT_SYMBOL_GPL vmlinux 0x29059b53 __wake_up_locked_key +EXPORT_SYMBOL_GPL vmlinux 0x291dc9b9 shmem_read_mapping_page_gfp +EXPORT_SYMBOL_GPL vmlinux 0x293f073e vrtc_cmos_write +EXPORT_SYMBOL_GPL vmlinux 0x29408cea cpufreq_frequency_table_cpuinfo +EXPORT_SYMBOL_GPL vmlinux 0x29dadf04 __rtnl_af_unregister +EXPORT_SYMBOL_GPL vmlinux 0x29e7b041 virtqueue_enable_cb_prepare +EXPORT_SYMBOL_GPL vmlinux 0x29ff914d fb_deferred_io_init +EXPORT_SYMBOL_GPL vmlinux 0x2a0c96d6 pm_runtime_set_autosuspend_delay +EXPORT_SYMBOL_GPL vmlinux 0x2a11ec77 ohci_init_driver +EXPORT_SYMBOL_GPL vmlinux 0x2a1d25ec dma_buf_begin_cpu_access +EXPORT_SYMBOL_GPL vmlinux 0x2a1dfd1d sock_diag_unregister +EXPORT_SYMBOL_GPL vmlinux 0x2a2d449e usb_remove_phy +EXPORT_SYMBOL_GPL vmlinux 0x2a2f4a0c extcon_get_cable_state +EXPORT_SYMBOL_GPL vmlinux 0x2a52d279 __udp4_lib_lookup +EXPORT_SYMBOL_GPL vmlinux 0x2a678a13 __suspend_report_result +EXPORT_SYMBOL_GPL vmlinux 0x2a9a1bec map_vm_area +EXPORT_SYMBOL_GPL vmlinux 0x2ab46cf3 dm_kill_unmapped_request +EXPORT_SYMBOL_GPL vmlinux 0x2ac36de7 btree_last +EXPORT_SYMBOL_GPL vmlinux 0x2acd5ca2 adp5520_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x2ad17daa __sock_recv_wifi_status +EXPORT_SYMBOL_GPL vmlinux 0x2ad1ece4 zs_get_total_size_bytes +EXPORT_SYMBOL_GPL vmlinux 0x2adee3ae blk_lld_busy +EXPORT_SYMBOL_GPL vmlinux 0x2b36c0d0 rio_set_port_lockout +EXPORT_SYMBOL_GPL vmlinux 0x2b4e4098 hvc_remove +EXPORT_SYMBOL_GPL vmlinux 0x2b57bde8 sdio_writeb +EXPORT_SYMBOL_GPL vmlinux 0x2b5f1768 vfs_test_lock +EXPORT_SYMBOL_GPL vmlinux 0x2b67f096 speedstep_get_frequency +EXPORT_SYMBOL_GPL vmlinux 0x2b70a3ff usb_get_current_frame_number +EXPORT_SYMBOL_GPL vmlinux 0x2b7a6de8 syscon_regmap_lookup_by_phandle +EXPORT_SYMBOL_GPL vmlinux 0x2bbe7e0b ata_link_next +EXPORT_SYMBOL_GPL vmlinux 0x2bdb85c1 crypto_alloc_tfm +EXPORT_SYMBOL_GPL vmlinux 0x2bf4ff1a iommu_group_get +EXPORT_SYMBOL_GPL vmlinux 0x2c0d72d3 relay_reset +EXPORT_SYMBOL_GPL vmlinux 0x2c208607 power_supply_is_system_supplied +EXPORT_SYMBOL_GPL vmlinux 0x2c30ee7d regmap_init_i2c +EXPORT_SYMBOL_GPL vmlinux 0x2c3bd5d1 xenbus_dev_fatal +EXPORT_SYMBOL_GPL vmlinux 0x2c519e4f __page_file_mapping +EXPORT_SYMBOL_GPL vmlinux 0x2c6a0410 xen_set_domain_pte +EXPORT_SYMBOL_GPL vmlinux 0x2c7d9c64 xen_store_interface +EXPORT_SYMBOL_GPL vmlinux 0x2c7db649 irq_dispose_mapping +EXPORT_SYMBOL_GPL vmlinux 0x2ca4ebcd regulator_set_drvdata +EXPORT_SYMBOL_GPL vmlinux 0x2ce98559 kcrypto_wq +EXPORT_SYMBOL_GPL vmlinux 0x2cea32ee unregister_oldmem_pfn_is_ram +EXPORT_SYMBOL_GPL vmlinux 0x2cedaed8 ping_rcv +EXPORT_SYMBOL_GPL vmlinux 0x2cf92e9b ata_sff_qc_fill_rtf +EXPORT_SYMBOL_GPL vmlinux 0x2d018765 rio_get_asm +EXPORT_SYMBOL_GPL vmlinux 0x2d17a0e1 cgroup_taskset_size +EXPORT_SYMBOL_GPL vmlinux 0x2d1b02d2 usermodehelper_read_lock_wait +EXPORT_SYMBOL_GPL vmlinux 0x2d2eb28c usb_get_from_anchor +EXPORT_SYMBOL_GPL vmlinux 0x2d41e6f5 __trace_puts +EXPORT_SYMBOL_GPL vmlinux 0x2d4e3005 ata_sff_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x2d59c954 edac_handlers +EXPORT_SYMBOL_GPL vmlinux 0x2d6c3366 arizona_request_irq +EXPORT_SYMBOL_GPL vmlinux 0x2d9c8ca9 ata_sff_thaw +EXPORT_SYMBOL_GPL vmlinux 0x2d9f2ce3 sched_clock_idle_wakeup_event +EXPORT_SYMBOL_GPL vmlinux 0x2e0c9547 ip6_update_pmtu +EXPORT_SYMBOL_GPL vmlinux 0x2e2360b1 ftrace_set_global_notrace +EXPORT_SYMBOL_GPL vmlinux 0x2e2f1740 ring_buffer_record_disable_cpu +EXPORT_SYMBOL_GPL vmlinux 0x2e45e488 rcu_note_context_switch +EXPORT_SYMBOL_GPL vmlinux 0x2e8b6c8c __pm_wakeup_event +EXPORT_SYMBOL_GPL vmlinux 0x2e9e59a2 sdio_enable_func +EXPORT_SYMBOL_GPL vmlinux 0x2e9e772b tcp_cong_avoid_ai +EXPORT_SYMBOL_GPL vmlinux 0x2ebe3135 cpu_is_hotpluggable +EXPORT_SYMBOL_GPL vmlinux 0x2ecfb11d spi_get_device_id +EXPORT_SYMBOL_GPL vmlinux 0x2eda36ec unregister_virtio_device +EXPORT_SYMBOL_GPL vmlinux 0x2f0d9053 usb_otg_state_string +EXPORT_SYMBOL_GPL vmlinux 0x2f2b15a6 cpufreq_register_governor +EXPORT_SYMBOL_GPL vmlinux 0x2f4113a2 dcookie_register +EXPORT_SYMBOL_GPL vmlinux 0x2f64415f unregister_acpi_hed_notifier +EXPORT_SYMBOL_GPL vmlinux 0x2f857551 machine_check_poll +EXPORT_SYMBOL_GPL vmlinux 0x2fd8cba9 freeze_wake +EXPORT_SYMBOL_GPL vmlinux 0x2ff32112 balloon_page_dequeue +EXPORT_SYMBOL_GPL vmlinux 0x3069b6f9 tpm_show_timeouts +EXPORT_SYMBOL_GPL vmlinux 0x308b733a getboottime +EXPORT_SYMBOL_GPL vmlinux 0x3099ce99 usb_hc_died +EXPORT_SYMBOL_GPL vmlinux 0x309c64f0 ipv6_dup_options +EXPORT_SYMBOL_GPL vmlinux 0x30a4f4ca bstr_printf +EXPORT_SYMBOL_GPL vmlinux 0x30ed851b __cpufreq_driver_getavg +EXPORT_SYMBOL_GPL vmlinux 0x3109b751 cpu_clock +EXPORT_SYMBOL_GPL vmlinux 0x310b05c7 cpuidle_get_driver +EXPORT_SYMBOL_GPL vmlinux 0x311a52e2 rio_lock_device +EXPORT_SYMBOL_GPL vmlinux 0x311a613b platform_driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0x31266931 con_debug_leave +EXPORT_SYMBOL_GPL vmlinux 0x315bb54e __atomic_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x31689784 wm5110_patch +EXPORT_SYMBOL_GPL vmlinux 0x317d59a6 atomic_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0x31a6890d inet_csk_listen_stop +EXPORT_SYMBOL_GPL vmlinux 0x31bf2db7 inet_csk_route_req +EXPORT_SYMBOL_GPL vmlinux 0x31c0c2d1 dm_put +EXPORT_SYMBOL_GPL vmlinux 0x31c7970f pciserial_suspend_ports +EXPORT_SYMBOL_GPL vmlinux 0x31d508fa sdio_readb +EXPORT_SYMBOL_GPL vmlinux 0x31f29e26 pci_bus_add_device +EXPORT_SYMBOL_GPL vmlinux 0x32092a3b serial8250_handle_irq +EXPORT_SYMBOL_GPL vmlinux 0x3223fa30 pci_assign_unassigned_bridge_resources +EXPORT_SYMBOL_GPL vmlinux 0x3227da1a n_tty_inherit_ops +EXPORT_SYMBOL_GPL vmlinux 0x32469838 spi_alloc_device +EXPORT_SYMBOL_GPL vmlinux 0x3256f216 smpboot_register_percpu_thread +EXPORT_SYMBOL_GPL vmlinux 0x325e677c gnttab_grant_foreign_transfer_ref +EXPORT_SYMBOL_GPL vmlinux 0x32894e8f __get_vm_area +EXPORT_SYMBOL_GPL vmlinux 0x328995b5 tracing_generic_entry_update +EXPORT_SYMBOL_GPL vmlinux 0x328d7bf2 xen_swiotlb_sync_single_for_device +EXPORT_SYMBOL_GPL vmlinux 0x32924a4d scatterwalk_copychunks +EXPORT_SYMBOL_GPL vmlinux 0x329bbbde timerqueue_del +EXPORT_SYMBOL_GPL vmlinux 0x32a0f9e2 da903x_writes +EXPORT_SYMBOL_GPL vmlinux 0x32a4e839 xenbus_dev_changed +EXPORT_SYMBOL_GPL vmlinux 0x32b31a8c ktime_get_boottime +EXPORT_SYMBOL_GPL vmlinux 0x32b9923a intel_scu_notifier +EXPORT_SYMBOL_GPL vmlinux 0x32c3cb4e class_compat_register +EXPORT_SYMBOL_GPL vmlinux 0x32c4ef92 __pm_runtime_set_status +EXPORT_SYMBOL_GPL vmlinux 0x32e46de0 queue_kthread_work +EXPORT_SYMBOL_GPL vmlinux 0x32ec2347 crypto_spawn_tfm2 +EXPORT_SYMBOL_GPL vmlinux 0x32f31790 blkcg_deactivate_policy +EXPORT_SYMBOL_GPL vmlinux 0x32fd447a monotonic_to_bootbased +EXPORT_SYMBOL_GPL vmlinux 0x32fd4b62 __wake_up_sync +EXPORT_SYMBOL_GPL vmlinux 0x333228ec intel_msic_reg_read +EXPORT_SYMBOL_GPL vmlinux 0x335c570f enable_percpu_irq +EXPORT_SYMBOL_GPL vmlinux 0x336154ca rcutorture_record_test_transition +EXPORT_SYMBOL_GPL vmlinux 0x33655159 xen_pcpu_hotplug_sync +EXPORT_SYMBOL_GPL vmlinux 0x3379b344 user_destroy +EXPORT_SYMBOL_GPL vmlinux 0x33828ae3 xen_unregister_device_domain_owner +EXPORT_SYMBOL_GPL vmlinux 0x3384f5ef crypto_alg_mod_lookup +EXPORT_SYMBOL_GPL vmlinux 0x33883929 clk_divider_ops +EXPORT_SYMBOL_GPL vmlinux 0x33903387 tcp_set_state +EXPORT_SYMBOL_GPL vmlinux 0x33a8a5c4 iommu_group_for_each_dev +EXPORT_SYMBOL_GPL vmlinux 0x33b103cd iptunnel_pull_header +EXPORT_SYMBOL_GPL vmlinux 0x33b96e5d apei_exec_write_register +EXPORT_SYMBOL_GPL vmlinux 0x33c6b5b8 pci_cfg_access_trylock +EXPORT_SYMBOL_GPL vmlinux 0x33cde53b blk_queue_bypass_end +EXPORT_SYMBOL_GPL vmlinux 0x33cf5368 virtqueue_poll +EXPORT_SYMBOL_GPL vmlinux 0x34359ee9 rio_mport_get_feature +EXPORT_SYMBOL_GPL vmlinux 0x3441c3d6 gpio_set_value_cansleep +EXPORT_SYMBOL_GPL vmlinux 0x344bf715 skcipher_geniv_alloc +EXPORT_SYMBOL_GPL vmlinux 0x345a451e con_debug_enter +EXPORT_SYMBOL_GPL vmlinux 0x347fd4b3 eventfd_ctx_get +EXPORT_SYMBOL_GPL vmlinux 0x34809c9a pm_generic_runtime_suspend +EXPORT_SYMBOL_GPL vmlinux 0x34868209 regulator_set_voltage_time_sel +EXPORT_SYMBOL_GPL vmlinux 0x349bf491 cgroup_load_subsys +EXPORT_SYMBOL_GPL vmlinux 0x34a10296 regmap_update_bits_check +EXPORT_SYMBOL_GPL vmlinux 0x34a6bd44 sk_unattached_filter_destroy +EXPORT_SYMBOL_GPL vmlinux 0x34ac50a4 visitorl +EXPORT_SYMBOL_GPL vmlinux 0x34b551ff inet_unhash +EXPORT_SYMBOL_GPL vmlinux 0x34c0a1f7 sata_link_scr_lpm +EXPORT_SYMBOL_GPL vmlinux 0x34cc0157 tcp_init_congestion_ops +EXPORT_SYMBOL_GPL vmlinux 0x34d5e280 tpm_add_ppi +EXPORT_SYMBOL_GPL vmlinux 0x34db736c regmap_field_free +EXPORT_SYMBOL_GPL vmlinux 0x34ddfc74 wm8994_bulk_write +EXPORT_SYMBOL_GPL vmlinux 0x34ed0019 pm_schedule_suspend +EXPORT_SYMBOL_GPL vmlinux 0x3504eb3c pwm_get_chip_data +EXPORT_SYMBOL_GPL vmlinux 0x35159579 device_set_wakeup_enable +EXPORT_SYMBOL_GPL vmlinux 0x351c7526 __pci_reset_function_locked +EXPORT_SYMBOL_GPL vmlinux 0x352650ee gnttab_batch_map +EXPORT_SYMBOL_GPL vmlinux 0x354028fa __lock_page_killable +EXPORT_SYMBOL_GPL vmlinux 0x354de544 gpiochip_find +EXPORT_SYMBOL_GPL vmlinux 0x35584a7b usb_driver_claim_interface +EXPORT_SYMBOL_GPL vmlinux 0x3581f995 enable_kprobe +EXPORT_SYMBOL_GPL vmlinux 0x3593f9bd uhci_reset_hc +EXPORT_SYMBOL_GPL vmlinux 0x35a8ca7d class_compat_create_link +EXPORT_SYMBOL_GPL vmlinux 0x35d17e5e ata_slave_link_init +EXPORT_SYMBOL_GPL vmlinux 0x35f0b1e0 dbs_check_cpu +EXPORT_SYMBOL_GPL vmlinux 0x35f165f1 devm_reset_control_put +EXPORT_SYMBOL_GPL vmlinux 0x35f3ae51 unix_table_lock +EXPORT_SYMBOL_GPL vmlinux 0x36075bb5 iommu_group_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x361e2bcc save_stack_trace +EXPORT_SYMBOL_GPL vmlinux 0x3655a5d9 uart_handle_cts_change +EXPORT_SYMBOL_GPL vmlinux 0x36583726 ata_pci_bmdma_init +EXPORT_SYMBOL_GPL vmlinux 0x3683df79 ipv4_sk_update_pmtu +EXPORT_SYMBOL_GPL vmlinux 0x368961e9 irq_domain_simple_ops +EXPORT_SYMBOL_GPL vmlinux 0x369fcd70 tracing_snapshot +EXPORT_SYMBOL_GPL vmlinux 0x36b5497e intel_iommu_enabled +EXPORT_SYMBOL_GPL vmlinux 0x36ba2551 intel_scu_devices_destroy +EXPORT_SYMBOL_GPL vmlinux 0x36d05482 fat_search_long +EXPORT_SYMBOL_GPL vmlinux 0x36e9088a proc_mkdir_data +EXPORT_SYMBOL_GPL vmlinux 0x3700154c pkey_hash_algo +EXPORT_SYMBOL_GPL vmlinux 0x373c514d usb_deregister +EXPORT_SYMBOL_GPL vmlinux 0x3756927a irq_alloc_generic_chip +EXPORT_SYMBOL_GPL vmlinux 0x37620240 pci_disable_pcie_error_reporting +EXPORT_SYMBOL_GPL vmlinux 0x376b1ff3 scsi_internal_device_unblock +EXPORT_SYMBOL_GPL vmlinux 0x37897edf tcp_done +EXPORT_SYMBOL_GPL vmlinux 0x37d75406 __ip_route_output_key +EXPORT_SYMBOL_GPL vmlinux 0x37df0595 cpufreq_driver_target +EXPORT_SYMBOL_GPL vmlinux 0x3806f043 blkg_lookup +EXPORT_SYMBOL_GPL vmlinux 0x382a94de usb_hcd_is_primary_hcd +EXPORT_SYMBOL_GPL vmlinux 0x384fe22b ata_pci_sff_init_one +EXPORT_SYMBOL_GPL vmlinux 0x38620e38 gnttab_grant_foreign_access_trans_ref +EXPORT_SYMBOL_GPL vmlinux 0x3875adc7 crypto_unregister_template +EXPORT_SYMBOL_GPL vmlinux 0x38843994 acpi_dev_runtime_resume +EXPORT_SYMBOL_GPL vmlinux 0x3893b443 ip6_datagram_recv_ctl +EXPORT_SYMBOL_GPL vmlinux 0x3893d5c3 ata_pci_sff_prepare_host +EXPORT_SYMBOL_GPL vmlinux 0x38a9c2c7 input_ff_effect_from_user +EXPORT_SYMBOL_GPL vmlinux 0x38af6911 i2c_probe_func_quick_read +EXPORT_SYMBOL_GPL vmlinux 0x38d2362c netlink_remove_tap +EXPORT_SYMBOL_GPL vmlinux 0x38f49605 gov_queue_work +EXPORT_SYMBOL_GPL vmlinux 0x39270d14 synchronize_srcu_expedited +EXPORT_SYMBOL_GPL vmlinux 0x3931337e usb_deregister_device_driver +EXPORT_SYMBOL_GPL vmlinux 0x39328883 dev_attr_unload_heads +EXPORT_SYMBOL_GPL vmlinux 0x393ca3e9 ata_bmdma_stop +EXPORT_SYMBOL_GPL vmlinux 0x39470404 blocking_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x394b125a rio_mport_get_physefb +EXPORT_SYMBOL_GPL vmlinux 0x395da010 device_rename +EXPORT_SYMBOL_GPL vmlinux 0x39614cfb cm_notify_event +EXPORT_SYMBOL_GPL vmlinux 0x3986f8f4 ata_scsi_port_error_handler +EXPORT_SYMBOL_GPL vmlinux 0x39a1f411 max8997_bulk_read +EXPORT_SYMBOL_GPL vmlinux 0x39b0fdfa get_dcookie +EXPORT_SYMBOL_GPL vmlinux 0x39e670aa kset_create_and_add +EXPORT_SYMBOL_GPL vmlinux 0x3a26ed11 sched_clock +EXPORT_SYMBOL_GPL vmlinux 0x3a2abdbf clk_disable +EXPORT_SYMBOL_GPL vmlinux 0x3a38dc65 memory_failure +EXPORT_SYMBOL_GPL vmlinux 0x3a4dbdc2 usb_hcd_pci_remove +EXPORT_SYMBOL_GPL vmlinux 0x3a4f6a32 ata_sff_interrupt +EXPORT_SYMBOL_GPL vmlinux 0x3a536bd7 ring_buffer_read_finish +EXPORT_SYMBOL_GPL vmlinux 0x3a7e10bb extcon_find_cable_index +EXPORT_SYMBOL_GPL vmlinux 0x3a83e1c8 device_show_int +EXPORT_SYMBOL_GPL vmlinux 0x3aa39641 ata_bmdma_port_start32 +EXPORT_SYMBOL_GPL vmlinux 0x3aaf7d2b devres_add +EXPORT_SYMBOL_GPL vmlinux 0x3ad1d619 xen_swiotlb_map_sg_attrs +EXPORT_SYMBOL_GPL vmlinux 0x3aec6873 dev_attr_sw_activity +EXPORT_SYMBOL_GPL vmlinux 0x3afc12c8 input_ff_erase +EXPORT_SYMBOL_GPL vmlinux 0x3b28058f tps6586x_update +EXPORT_SYMBOL_GPL vmlinux 0x3b28da48 usb_mon_register +EXPORT_SYMBOL_GPL vmlinux 0x3b2ae032 rtc_device_register +EXPORT_SYMBOL_GPL vmlinux 0x3b302fc8 usb_get_phy_dev +EXPORT_SYMBOL_GPL vmlinux 0x3b32f0e3 sdio_claim_host +EXPORT_SYMBOL_GPL vmlinux 0x3b428f3b irq_domain_xlate_twocell +EXPORT_SYMBOL_GPL vmlinux 0x3b662182 __ata_change_queue_depth +EXPORT_SYMBOL_GPL vmlinux 0x3b7094b9 ip_local_out +EXPORT_SYMBOL_GPL vmlinux 0x3b7145bb apei_exec_read_register_value +EXPORT_SYMBOL_GPL vmlinux 0x3b8ab4bc get_user_pages_fast +EXPORT_SYMBOL_GPL vmlinux 0x3b9c3aa6 efivar_entry_set_get_size +EXPORT_SYMBOL_GPL vmlinux 0x3bafd9a6 blk_queue_dma_drain +EXPORT_SYMBOL_GPL vmlinux 0x3c055b7c tps65912_reg_read +EXPORT_SYMBOL_GPL vmlinux 0x3c5e494c blkg_conf_finish +EXPORT_SYMBOL_GPL vmlinux 0x3c766439 usb_init_urb +EXPORT_SYMBOL_GPL vmlinux 0x3c8f26ad irq_domain_associate +EXPORT_SYMBOL_GPL vmlinux 0x3c9390db pci_vpd_find_tag +EXPORT_SYMBOL_GPL vmlinux 0x3cac21b9 regulator_sync_voltage +EXPORT_SYMBOL_GPL vmlinux 0x3cd06035 add_input_randomness +EXPORT_SYMBOL_GPL vmlinux 0x3cda21a4 register_ftrace_function +EXPORT_SYMBOL_GPL vmlinux 0x3ce1f174 generic_access_phys +EXPORT_SYMBOL_GPL vmlinux 0x3cf04db4 hrtimer_try_to_cancel +EXPORT_SYMBOL_GPL vmlinux 0x3cf2024f pci_renumber_slot +EXPORT_SYMBOL_GPL vmlinux 0x3d12771e fanout_mutex +EXPORT_SYMBOL_GPL vmlinux 0x3d388324 dpm_resume_end +EXPORT_SYMBOL_GPL vmlinux 0x3d3c7718 trace_event_raw_init +EXPORT_SYMBOL_GPL vmlinux 0x3d410936 tcp_reno_cong_avoid +EXPORT_SYMBOL_GPL vmlinux 0x3d43f287 usb_queue_reset_device +EXPORT_SYMBOL_GPL vmlinux 0x3d45bafc skb_tstamp_tx +EXPORT_SYMBOL_GPL vmlinux 0x3d59dbc6 device_show_bool +EXPORT_SYMBOL_GPL vmlinux 0x3d7ea99a gnttab_grant_foreign_transfer +EXPORT_SYMBOL_GPL vmlinux 0x3d909616 sata_std_hardreset +EXPORT_SYMBOL_GPL vmlinux 0x3da35582 pci_check_and_mask_intx +EXPORT_SYMBOL_GPL vmlinux 0x3db5bda2 sdio_align_size +EXPORT_SYMBOL_GPL vmlinux 0x3db95e93 rio_release_outb_mbox +EXPORT_SYMBOL_GPL vmlinux 0x3dc916b6 crypto_fl_tab +EXPORT_SYMBOL_GPL vmlinux 0x3dd4d3a7 bprintf +EXPORT_SYMBOL_GPL vmlinux 0x3dd8120c clk_register +EXPORT_SYMBOL_GPL vmlinux 0x3ddba1c3 rt_mutex_unlock +EXPORT_SYMBOL_GPL vmlinux 0x3de41f9a pci_pri_stopped +EXPORT_SYMBOL_GPL vmlinux 0x3de9cae1 crypto_remove_final +EXPORT_SYMBOL_GPL vmlinux 0x3e10974a fuse_dev_operations +EXPORT_SYMBOL_GPL vmlinux 0x3e110ea6 mmu_notifier_register +EXPORT_SYMBOL_GPL vmlinux 0x3e1d88c0 iommu_group_add_device +EXPORT_SYMBOL_GPL vmlinux 0x3e2621cf debugfs_create_symlink +EXPORT_SYMBOL_GPL vmlinux 0x3e2fa31f wm8997_i2c_regmap +EXPORT_SYMBOL_GPL vmlinux 0x3e480ff4 regmap_check_range_table +EXPORT_SYMBOL_GPL vmlinux 0x3e5e2368 cpufreq_cpu_put +EXPORT_SYMBOL_GPL vmlinux 0x3e6dc303 lp8788_write_byte +EXPORT_SYMBOL_GPL vmlinux 0x3e7080cb mpi_read_from_buffer +EXPORT_SYMBOL_GPL vmlinux 0x3e757637 cpu_bit_bitmap +EXPORT_SYMBOL_GPL vmlinux 0x3e768a59 __inet_lookup_listener +EXPORT_SYMBOL_GPL vmlinux 0x3e7f0dfc __wake_up_sync_key +EXPORT_SYMBOL_GPL vmlinux 0x3e97d370 tty_port_install +EXPORT_SYMBOL_GPL vmlinux 0x3e9a6d87 irq_gc_ack_set_bit +EXPORT_SYMBOL_GPL vmlinux 0x3ea5196d apei_osc_setup +EXPORT_SYMBOL_GPL vmlinux 0x3ea89c28 usb_enable_intel_xhci_ports +EXPORT_SYMBOL_GPL vmlinux 0x3eb44e31 put_pid +EXPORT_SYMBOL_GPL vmlinux 0x3ecde204 adp5520_read +EXPORT_SYMBOL_GPL vmlinux 0x3efb35c9 get_online_cpus +EXPORT_SYMBOL_GPL vmlinux 0x3f02bef2 alloc_vm_area +EXPORT_SYMBOL_GPL vmlinux 0x3f0b6748 clk_notifier_unregister +EXPORT_SYMBOL_GPL vmlinux 0x3f13c689 spi_sync_locked +EXPORT_SYMBOL_GPL vmlinux 0x3f229c4c oops_begin +EXPORT_SYMBOL_GPL vmlinux 0x3f59ec82 posix_clock_register +EXPORT_SYMBOL_GPL vmlinux 0x3f6a9640 sata_pmp_qc_defer_cmd_switch +EXPORT_SYMBOL_GPL vmlinux 0x3f84d4c9 gnttab_release_grant_reference +EXPORT_SYMBOL_GPL vmlinux 0x3f9c87a9 user_update +EXPORT_SYMBOL_GPL vmlinux 0x3fc2339f spi_sync +EXPORT_SYMBOL_GPL vmlinux 0x3fd97cff aead_geniv_init +EXPORT_SYMBOL_GPL vmlinux 0x3ff15c56 subsys_interface_register +EXPORT_SYMBOL_GPL vmlinux 0x3ff5888b __fib_lookup +EXPORT_SYMBOL_GPL vmlinux 0x3ffad319 get_current_tty +EXPORT_SYMBOL_GPL vmlinux 0x400a024b acpi_scan_lock_release +EXPORT_SYMBOL_GPL vmlinux 0x400fa822 rio_local_get_device_id +EXPORT_SYMBOL_GPL vmlinux 0x4025e87e xen_swiotlb_unmap_page +EXPORT_SYMBOL_GPL vmlinux 0x403f9529 gpio_request_one +EXPORT_SYMBOL_GPL vmlinux 0x4045c494 filter_match_preds +EXPORT_SYMBOL_GPL vmlinux 0x4065d168 pm_print_active_wakeup_sources +EXPORT_SYMBOL_GPL vmlinux 0x407c2214 da9052_regmap_config +EXPORT_SYMBOL_GPL vmlinux 0x40aae6af devm_add_action +EXPORT_SYMBOL_GPL vmlinux 0x40af0dec ata_xfer_mode2mask +EXPORT_SYMBOL_GPL vmlinux 0x40c3202b __clk_get_name +EXPORT_SYMBOL_GPL vmlinux 0x40c81757 device_create +EXPORT_SYMBOL_GPL vmlinux 0x40d46b21 crypto_ft_tab +EXPORT_SYMBOL_GPL vmlinux 0x40f0683e reset_control_put +EXPORT_SYMBOL_GPL vmlinux 0x410178bc of_pwm_get +EXPORT_SYMBOL_GPL vmlinux 0x41026a39 __pci_reset_function +EXPORT_SYMBOL_GPL vmlinux 0x410463b2 tpm_open +EXPORT_SYMBOL_GPL vmlinux 0x411ccb18 clockevent_delta2ns +EXPORT_SYMBOL_GPL vmlinux 0x41310b01 scsi_get_vpd_page +EXPORT_SYMBOL_GPL vmlinux 0x414a21f4 usb_unlocked_enable_lpm +EXPORT_SYMBOL_GPL vmlinux 0x41803a9e devres_release +EXPORT_SYMBOL_GPL vmlinux 0x41814cb8 dirty_writeback_interval +EXPORT_SYMBOL_GPL vmlinux 0x41894bf6 hvc_alloc +EXPORT_SYMBOL_GPL vmlinux 0x4195f9f2 crypto_register_template +EXPORT_SYMBOL_GPL vmlinux 0x41d1c48e pci_bus_resource_n +EXPORT_SYMBOL_GPL vmlinux 0x41e1064f acpi_get_gpio +EXPORT_SYMBOL_GPL vmlinux 0x41f18f32 napi_hash_del +EXPORT_SYMBOL_GPL vmlinux 0x4205ad24 cancel_work_sync +EXPORT_SYMBOL_GPL vmlinux 0x4213a51a efivar_entry_set_safe +EXPORT_SYMBOL_GPL vmlinux 0x42160169 flush_workqueue +EXPORT_SYMBOL_GPL vmlinux 0x4220c410 device_store_int +EXPORT_SYMBOL_GPL vmlinux 0x422c7bb5 led_classdev_unregister +EXPORT_SYMBOL_GPL vmlinux 0x422ce561 sched_setscheduler +EXPORT_SYMBOL_GPL vmlinux 0x423b67eb ata_acpi_gtm +EXPORT_SYMBOL_GPL vmlinux 0x424acc6d scatterwalk_done +EXPORT_SYMBOL_GPL vmlinux 0x426f82f7 locks_alloc_lock +EXPORT_SYMBOL_GPL vmlinux 0x42769c09 scsi_autopm_get_device +EXPORT_SYMBOL_GPL vmlinux 0x427e8468 dev_pm_put_subsys_data +EXPORT_SYMBOL_GPL vmlinux 0x42825ce2 rcu_scheduler_active +EXPORT_SYMBOL_GPL vmlinux 0x42ac760c __root_device_register +EXPORT_SYMBOL_GPL vmlinux 0x42bd96e3 _submit_bh +EXPORT_SYMBOL_GPL vmlinux 0x42c8b1e2 da903x_reads +EXPORT_SYMBOL_GPL vmlinux 0x42c989ff iomap_atomic_prot_pfn +EXPORT_SYMBOL_GPL vmlinux 0x430fceb0 regulator_list_voltage_table +EXPORT_SYMBOL_GPL vmlinux 0x4327cd37 rio_register_mport +EXPORT_SYMBOL_GPL vmlinux 0x432fd7f6 __gpio_set_value +EXPORT_SYMBOL_GPL vmlinux 0x435e3b73 ata_pio_need_iordy +EXPORT_SYMBOL_GPL vmlinux 0x435e6c6e crypto_alg_sem +EXPORT_SYMBOL_GPL vmlinux 0x4373d560 rio_release_inb_pwrite +EXPORT_SYMBOL_GPL vmlinux 0x437cecdf ata_sff_tf_load +EXPORT_SYMBOL_GPL vmlinux 0x437f25e7 of_reset_simple_xlate +EXPORT_SYMBOL_GPL vmlinux 0x43a53735 __alloc_workqueue_key +EXPORT_SYMBOL_GPL vmlinux 0x43f56e82 ata_xfer_mode2shift +EXPORT_SYMBOL_GPL vmlinux 0x43fa3052 da903x_write +EXPORT_SYMBOL_GPL vmlinux 0x44063f1c ata_sff_check_status +EXPORT_SYMBOL_GPL vmlinux 0x44404f11 kdb_register_repeat +EXPORT_SYMBOL_GPL vmlinux 0x4455e1b3 regulator_disable_deferred +EXPORT_SYMBOL_GPL vmlinux 0x445621bd xfrm_audit_state_add +EXPORT_SYMBOL_GPL vmlinux 0x4484a5a4 wait_for_device_probe +EXPORT_SYMBOL_GPL vmlinux 0x44cc9c55 klist_iter_exit +EXPORT_SYMBOL_GPL vmlinux 0x44d3d268 task_cgroup_path +EXPORT_SYMBOL_GPL vmlinux 0x4512b086 intel_scu_devices_create +EXPORT_SYMBOL_GPL vmlinux 0x45159e32 key_type_user +EXPORT_SYMBOL_GPL vmlinux 0x451a652f dev_pm_qos_remove_notifier +EXPORT_SYMBOL_GPL vmlinux 0x451d32db ata_sas_scsi_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x452dfc28 __inet_hash_nolisten +EXPORT_SYMBOL_GPL vmlinux 0x4541fe0d mtrr_state +EXPORT_SYMBOL_GPL vmlinux 0x45489f35 dev_set_name +EXPORT_SYMBOL_GPL vmlinux 0x457594fa crypto_alg_list +EXPORT_SYMBOL_GPL vmlinux 0x45801e8b cred_to_ucred +EXPORT_SYMBOL_GPL vmlinux 0x4586f5d2 xenbus_register_backend +EXPORT_SYMBOL_GPL vmlinux 0x45889b02 unix_inq_len +EXPORT_SYMBOL_GPL vmlinux 0x458dc80f devm_regulator_get +EXPORT_SYMBOL_GPL vmlinux 0x45a00872 usb_add_phy_dev +EXPORT_SYMBOL_GPL vmlinux 0x45a39cb6 rio_get_device +EXPORT_SYMBOL_GPL vmlinux 0x45a4cb22 register_dock_notifier +EXPORT_SYMBOL_GPL vmlinux 0x45a65bf4 md_allow_write +EXPORT_SYMBOL_GPL vmlinux 0x45a848fc sysfs_put +EXPORT_SYMBOL_GPL vmlinux 0x45bf1ff3 crypto_inc +EXPORT_SYMBOL_GPL vmlinux 0x45d14bdf hypercall_page +EXPORT_SYMBOL_GPL vmlinux 0x45d1bf77 usb_enable_lpm +EXPORT_SYMBOL_GPL vmlinux 0x45ef8f88 xenbus_register_driver_common +EXPORT_SYMBOL_GPL vmlinux 0x460115a7 nf_register_afinfo +EXPORT_SYMBOL_GPL vmlinux 0x46074c17 sdev_evt_alloc +EXPORT_SYMBOL_GPL vmlinux 0x460f31aa rodata_test_data +EXPORT_SYMBOL_GPL vmlinux 0x460f7531 wait_rcu_gp +EXPORT_SYMBOL_GPL vmlinux 0x4629e25e xenbus_dev_suspend +EXPORT_SYMBOL_GPL vmlinux 0x46355e0e crypto_shash_finup +EXPORT_SYMBOL_GPL vmlinux 0x46549c7b sk_detach_filter +EXPORT_SYMBOL_GPL vmlinux 0x4672e88b __crypto_dequeue_request +EXPORT_SYMBOL_GPL vmlinux 0x4688d7ec pvclock_gtod_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x46b49a93 single_open_net +EXPORT_SYMBOL_GPL vmlinux 0x46b4b81d blkcg_policy_register +EXPORT_SYMBOL_GPL vmlinux 0x46bcdb8e virtqueue_enable_cb +EXPORT_SYMBOL_GPL vmlinux 0x46cfbb3d cpuidle_unregister +EXPORT_SYMBOL_GPL vmlinux 0x46dc82ca crypto_ahash_digest +EXPORT_SYMBOL_GPL vmlinux 0x46e2ffaf irq_create_strict_mappings +EXPORT_SYMBOL_GPL vmlinux 0x46eb6544 inode_sb_list_add +EXPORT_SYMBOL_GPL vmlinux 0x470bc1d9 ata_msleep +EXPORT_SYMBOL_GPL vmlinux 0x47133b7a usb_hcd_unlink_urb_from_ep +EXPORT_SYMBOL_GPL vmlinux 0x47229b5c gpio_request +EXPORT_SYMBOL_GPL vmlinux 0x47319d12 blk_abort_request +EXPORT_SYMBOL_GPL vmlinux 0x473372e0 scsi_unregister_acpi_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x4735623c tty_wakeup +EXPORT_SYMBOL_GPL vmlinux 0x475912eb debugfs_remove +EXPORT_SYMBOL_GPL vmlinux 0x4761f17c register_netevent_notifier +EXPORT_SYMBOL_GPL vmlinux 0x476c2e6d blk_trace_remove +EXPORT_SYMBOL_GPL vmlinux 0x477a6ec6 cpufreq_frequency_get_table +EXPORT_SYMBOL_GPL vmlinux 0x47884890 system_power_efficient_wq +EXPORT_SYMBOL_GPL vmlinux 0x478aa0c7 xenbus_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0x47aad3b9 have_governor_per_policy +EXPORT_SYMBOL_GPL vmlinux 0x47f4981f sync_page_io +EXPORT_SYMBOL_GPL vmlinux 0x47f5cee2 pm_generic_thaw_early +EXPORT_SYMBOL_GPL vmlinux 0x47ff399f regulator_is_supported_voltage +EXPORT_SYMBOL_GPL vmlinux 0x4828e77b acpi_scan_lock_acquire +EXPORT_SYMBOL_GPL vmlinux 0x4850e272 ata_sas_port_init +EXPORT_SYMBOL_GPL vmlinux 0x48682db9 perf_guest_get_msrs +EXPORT_SYMBOL_GPL vmlinux 0x4884ca32 rio_request_outb_mbox +EXPORT_SYMBOL_GPL vmlinux 0x48ab5da7 pkey_algo +EXPORT_SYMBOL_GPL vmlinux 0x48c0f16e wm8350_device_init +EXPORT_SYMBOL_GPL vmlinux 0x48c9bc14 driver_create_file +EXPORT_SYMBOL_GPL vmlinux 0x48ca5a58 bmp085_probe +EXPORT_SYMBOL_GPL vmlinux 0x48ca8947 pm_qos_add_request +EXPORT_SYMBOL_GPL vmlinux 0x48d587b8 wakeup_source_add +EXPORT_SYMBOL_GPL vmlinux 0x48eacf6d regulator_is_enabled_regmap +EXPORT_SYMBOL_GPL vmlinux 0x490a8df6 x86_platform +EXPORT_SYMBOL_GPL vmlinux 0x4913e8ed tty_prepare_flip_string_flags +EXPORT_SYMBOL_GPL vmlinux 0x491f5f30 i2c_add_numbered_adapter +EXPORT_SYMBOL_GPL vmlinux 0x4943e867 fib_table_lookup +EXPORT_SYMBOL_GPL vmlinux 0x49472f8a sysfs_notify +EXPORT_SYMBOL_GPL vmlinux 0x49545e34 pm_generic_poweroff_late +EXPORT_SYMBOL_GPL vmlinux 0x496f145e __clk_register +EXPORT_SYMBOL_GPL vmlinux 0x4982a57f probe_kernel_write +EXPORT_SYMBOL_GPL vmlinux 0x498d293a trace_buffer_unlock_commit +EXPORT_SYMBOL_GPL vmlinux 0x499043d3 crypto_init_queue +EXPORT_SYMBOL_GPL vmlinux 0x49910d94 watchdog_unregister_device +EXPORT_SYMBOL_GPL vmlinux 0x49a2b54b ip6_flush_pending_frames +EXPORT_SYMBOL_GPL vmlinux 0x49b83936 usb_find_interface +EXPORT_SYMBOL_GPL vmlinux 0x4a00180a bio_alloc_mddev +EXPORT_SYMBOL_GPL vmlinux 0x4a097094 xenbus_dev_cancel +EXPORT_SYMBOL_GPL vmlinux 0x4a338f51 spi_register_master +EXPORT_SYMBOL_GPL vmlinux 0x4a3c3cf9 microcode_sanity_check +EXPORT_SYMBOL_GPL vmlinux 0x4a6960d1 acpi_subsys_suspend_late +EXPORT_SYMBOL_GPL vmlinux 0x4a7512a5 unregister_kretprobes +EXPORT_SYMBOL_GPL vmlinux 0x4aadeb9a ring_buffer_alloc_read_page +EXPORT_SYMBOL_GPL vmlinux 0x4afb573b vrtc_cmos_read +EXPORT_SYMBOL_GPL vmlinux 0x4b3a6554 wait_for_stable_page +EXPORT_SYMBOL_GPL vmlinux 0x4b752256 crypto_ablkcipher_type +EXPORT_SYMBOL_GPL vmlinux 0x4b8b408e usb_hcd_poll_rh_status +EXPORT_SYMBOL_GPL vmlinux 0x4bc62a81 audit_enabled +EXPORT_SYMBOL_GPL vmlinux 0x4bdb2840 devm_pwm_put +EXPORT_SYMBOL_GPL vmlinux 0x4bea2db3 mmu_notifier_unregister +EXPORT_SYMBOL_GPL vmlinux 0x4bff1ad9 regmap_async_complete +EXPORT_SYMBOL_GPL vmlinux 0x4c09f386 pwm_config +EXPORT_SYMBOL_GPL vmlinux 0x4c10d14d __wake_up_locked +EXPORT_SYMBOL_GPL vmlinux 0x4c133146 securityfs_remove +EXPORT_SYMBOL_GPL vmlinux 0x4c16f764 btree_remove +EXPORT_SYMBOL_GPL vmlinux 0x4c2a472b __static_cpu_has_safe +EXPORT_SYMBOL_GPL vmlinux 0x4c602bf1 __blkg_release_rcu +EXPORT_SYMBOL_GPL vmlinux 0x4c662914 get_cpu_device +EXPORT_SYMBOL_GPL vmlinux 0x4c69a8a7 extcon_get_cable_state_ +EXPORT_SYMBOL_GPL vmlinux 0x4c759827 byte_rev_table +EXPORT_SYMBOL_GPL vmlinux 0x4ca3ee83 console_drivers +EXPORT_SYMBOL_GPL vmlinux 0x4cde016e rio_mport_send_doorbell +EXPORT_SYMBOL_GPL vmlinux 0x4d2b2e17 skb_segment +EXPORT_SYMBOL_GPL vmlinux 0x4d3f6f85 crypto_ahash_type +EXPORT_SYMBOL_GPL vmlinux 0x4dacac9d __fsnotify_parent +EXPORT_SYMBOL_GPL vmlinux 0x4dca50e6 sysfs_rename_link +EXPORT_SYMBOL_GPL vmlinux 0x4dcb1d13 xen_swiotlb_free_coherent +EXPORT_SYMBOL_GPL vmlinux 0x4de125c4 crypto_givcipher_type +EXPORT_SYMBOL_GPL vmlinux 0x4de17ab3 usb_state_string +EXPORT_SYMBOL_GPL vmlinux 0x4df70354 usb_set_interface +EXPORT_SYMBOL_GPL vmlinux 0x4dfb7ee5 fat_fill_super +EXPORT_SYMBOL_GPL vmlinux 0x4dfdf09d virtqueue_enable_cb_delayed +EXPORT_SYMBOL_GPL vmlinux 0x4e109192 ring_buffer_entries +EXPORT_SYMBOL_GPL vmlinux 0x4e156122 pm_generic_restore_noirq +EXPORT_SYMBOL_GPL vmlinux 0x4e17cbed __pci_complete_power_transition +EXPORT_SYMBOL_GPL vmlinux 0x4e242f5f pstore_cannot_block_path +EXPORT_SYMBOL_GPL vmlinux 0x4e32bceb pcie_bus_configure_settings +EXPORT_SYMBOL_GPL vmlinux 0x4e57723d apei_read +EXPORT_SYMBOL_GPL vmlinux 0x4e64c91c page_mkclean +EXPORT_SYMBOL_GPL vmlinux 0x4e68c4a5 pm_generic_poweroff_noirq +EXPORT_SYMBOL_GPL vmlinux 0x4e7142f4 devm_regmap_init_spi +EXPORT_SYMBOL_GPL vmlinux 0x4e74e625 gnttab_batch_copy +EXPORT_SYMBOL_GPL vmlinux 0x4e890e33 pwmchip_add +EXPORT_SYMBOL_GPL vmlinux 0x4e988728 pci_load_and_free_saved_state +EXPORT_SYMBOL_GPL vmlinux 0x4e9fc759 regulator_bulk_get +EXPORT_SYMBOL_GPL vmlinux 0x4ea5ee95 ip6_sk_redirect +EXPORT_SYMBOL_GPL vmlinux 0x4ec652fe class_interface_register +EXPORT_SYMBOL_GPL vmlinux 0x4ec7efb1 max8997_bulk_write +EXPORT_SYMBOL_GPL vmlinux 0x4edb9345 sk_set_memalloc +EXPORT_SYMBOL_GPL vmlinux 0x4ef35a5a devres_remove +EXPORT_SYMBOL_GPL vmlinux 0x4ef5bcf4 perf_swevent_get_recursion_context +EXPORT_SYMBOL_GPL vmlinux 0x4f213b69 usb_reset_endpoint +EXPORT_SYMBOL_GPL vmlinux 0x4f4979bc skb_complete_wifi_ack +EXPORT_SYMBOL_GPL vmlinux 0x4f5672dc sdio_disable_func +EXPORT_SYMBOL_GPL vmlinux 0x4f7f578e usb_get_descriptor +EXPORT_SYMBOL_GPL vmlinux 0x4f8167c4 regulator_map_voltage_ascend +EXPORT_SYMBOL_GPL vmlinux 0x4f8245fc usb_free_streams +EXPORT_SYMBOL_GPL vmlinux 0x4f865b03 crypto_drop_spawn +EXPORT_SYMBOL_GPL vmlinux 0x4f867625 cpufreq_unregister_governor +EXPORT_SYMBOL_GPL vmlinux 0x4fd4b385 dm_path_uevent +EXPORT_SYMBOL_GPL vmlinux 0x4fd4e89d ring_buffer_empty_cpu +EXPORT_SYMBOL_GPL vmlinux 0x4fdc945d sata_deb_timing_normal +EXPORT_SYMBOL_GPL vmlinux 0x4fdff065 uart_handle_dcd_change +EXPORT_SYMBOL_GPL vmlinux 0x4fe1eddf unregister_netevent_notifier +EXPORT_SYMBOL_GPL vmlinux 0x4ff783d4 crypto_init_ahash_spawn +EXPORT_SYMBOL_GPL vmlinux 0x50167c3c ata_host_init +EXPORT_SYMBOL_GPL vmlinux 0x5026585c xen_irq_from_gsi +EXPORT_SYMBOL_GPL vmlinux 0x504d790b sysfs_remove_files +EXPORT_SYMBOL_GPL vmlinux 0x505ab52d clk_round_rate +EXPORT_SYMBOL_GPL vmlinux 0x506691f1 sock_diag_check_cookie +EXPORT_SYMBOL_GPL vmlinux 0x506cc085 tracepoint_iter_stop +EXPORT_SYMBOL_GPL vmlinux 0x506d2d0d xenbus_register_frontend +EXPORT_SYMBOL_GPL vmlinux 0x5086ac3a alg_test +EXPORT_SYMBOL_GPL vmlinux 0x5091b823 ring_buffer_read_start +EXPORT_SYMBOL_GPL vmlinux 0x50c89f23 __alloc_percpu +EXPORT_SYMBOL_GPL vmlinux 0x50df3324 regulator_disable_regmap +EXPORT_SYMBOL_GPL vmlinux 0x50e7193a __i2c_first_dynamic_bus_num +EXPORT_SYMBOL_GPL vmlinux 0x50fad434 round_jiffies_up +EXPORT_SYMBOL_GPL vmlinux 0x5108b3fc acpi_os_map_memory +EXPORT_SYMBOL_GPL vmlinux 0x510bb062 class_dev_iter_next +EXPORT_SYMBOL_GPL vmlinux 0x510c4aa1 fat_flush_inodes +EXPORT_SYMBOL_GPL vmlinux 0x51207601 subsys_interface_unregister +EXPORT_SYMBOL_GPL vmlinux 0x512d53b1 usb_free_urb +EXPORT_SYMBOL_GPL vmlinux 0x512efa5b md_do_sync +EXPORT_SYMBOL_GPL vmlinux 0x5134c2e1 hvc_poll +EXPORT_SYMBOL_GPL vmlinux 0x5140a13a udp6_lib_lookup +EXPORT_SYMBOL_GPL vmlinux 0x5148ba4e tpm_read +EXPORT_SYMBOL_GPL vmlinux 0x5187ac4b xen_store_evtchn +EXPORT_SYMBOL_GPL vmlinux 0x518c2fc6 hpet_rtc_dropped_irq +EXPORT_SYMBOL_GPL vmlinux 0x51a52562 regmap_raw_write_async +EXPORT_SYMBOL_GPL vmlinux 0x51c0eb4c dm_disk +EXPORT_SYMBOL_GPL vmlinux 0x51d785ce set_task_ioprio +EXPORT_SYMBOL_GPL vmlinux 0x51df68ef sysfs_chmod_file +EXPORT_SYMBOL_GPL vmlinux 0x51f00d6a fuse_put_request +EXPORT_SYMBOL_GPL vmlinux 0x5210a5bf hsi_board_list +EXPORT_SYMBOL_GPL vmlinux 0x5217e4c1 __rt_mutex_init +EXPORT_SYMBOL_GPL vmlinux 0x52212010 __tracepoint_block_bio_remap +EXPORT_SYMBOL_GPL vmlinux 0x522e1ff9 tps6586x_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x52478fc2 fb_deferred_io_fsync +EXPORT_SYMBOL_GPL vmlinux 0x52574d04 irq_gc_mask_clr_bit +EXPORT_SYMBOL_GPL vmlinux 0x525ca5c2 da9052_disable_irq_nosync +EXPORT_SYMBOL_GPL vmlinux 0x525cbf07 alarm_start +EXPORT_SYMBOL_GPL vmlinux 0x528fd4a8 extcon_register_interest +EXPORT_SYMBOL_GPL vmlinux 0x52dcc753 pci_load_saved_state +EXPORT_SYMBOL_GPL vmlinux 0x530fa32f subsys_virtual_register +EXPORT_SYMBOL_GPL vmlinux 0x5358fc36 ring_buffer_discard_commit +EXPORT_SYMBOL_GPL vmlinux 0x53614269 get_cpu_idle_time_us +EXPORT_SYMBOL_GPL vmlinux 0x5391b3b0 srcu_batches_completed +EXPORT_SYMBOL_GPL vmlinux 0x5395f8d4 xen_swiotlb_unmap_sg_attrs +EXPORT_SYMBOL_GPL vmlinux 0x539f157b pci_xen_swiotlb_init_late +EXPORT_SYMBOL_GPL vmlinux 0x53a3e486 regulator_get_current_limit +EXPORT_SYMBOL_GPL vmlinux 0x53a97499 xfrm_audit_state_notfound_simple +EXPORT_SYMBOL_GPL vmlinux 0x53b18f42 ata_sff_error_handler +EXPORT_SYMBOL_GPL vmlinux 0x53e0b41d watchdog_init_timeout +EXPORT_SYMBOL_GPL vmlinux 0x53ec523d __blkg_prfill_rwstat +EXPORT_SYMBOL_GPL vmlinux 0x53ecb908 rt_mutex_destroy +EXPORT_SYMBOL_GPL vmlinux 0x53ed9b3d init_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0x53fb1762 usb_disable_ltm +EXPORT_SYMBOL_GPL vmlinux 0x541bd60a irq_work_run +EXPORT_SYMBOL_GPL vmlinux 0x544221dc blkg_stat_recursive_sum +EXPORT_SYMBOL_GPL vmlinux 0x54578c36 device_move +EXPORT_SYMBOL_GPL vmlinux 0x545f4bd1 get_governor_parent_kobj +EXPORT_SYMBOL_GPL vmlinux 0x5460c8d8 fsnotify_get_cookie +EXPORT_SYMBOL_GPL vmlinux 0x54740eb7 get_cpu_idle_time +EXPORT_SYMBOL_GPL vmlinux 0x54792d58 ip4_datagram_release_cb +EXPORT_SYMBOL_GPL vmlinux 0x549525ef handle_nested_irq +EXPORT_SYMBOL_GPL vmlinux 0x5498a2c6 tps65912_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x54b8ac68 gen_pool_avail +EXPORT_SYMBOL_GPL vmlinux 0x54cb76b0 irq_get_domain_generic_chip +EXPORT_SYMBOL_GPL vmlinux 0x54d735db scsi_target_block +EXPORT_SYMBOL_GPL vmlinux 0x55179784 raw_seq_open +EXPORT_SYMBOL_GPL vmlinux 0x55417264 unregister_vt_notifier +EXPORT_SYMBOL_GPL vmlinux 0x55526907 xen_features +EXPORT_SYMBOL_GPL vmlinux 0x5555b5aa vfs_lock_file +EXPORT_SYMBOL_GPL vmlinux 0x55784228 regmap_irq_get_virq +EXPORT_SYMBOL_GPL vmlinux 0x557c4b88 ip6_redirect +EXPORT_SYMBOL_GPL vmlinux 0x55af3e0a blkg_prfill_rwstat +EXPORT_SYMBOL_GPL vmlinux 0x55bdb7e6 dma_buf_kmap +EXPORT_SYMBOL_GPL vmlinux 0x55c4568b blkg_prfill_stat +EXPORT_SYMBOL_GPL vmlinux 0x55e58434 __fsnotify_inode_delete +EXPORT_SYMBOL_GPL vmlinux 0x55e87a08 fl6_sock_lookup +EXPORT_SYMBOL_GPL vmlinux 0x55edd53d unregister_jprobes +EXPORT_SYMBOL_GPL vmlinux 0x56310925 regulator_mode_to_status +EXPORT_SYMBOL_GPL vmlinux 0x56398615 mark_tsc_unstable +EXPORT_SYMBOL_GPL vmlinux 0x5641485b tty_termios_encode_baud_rate +EXPORT_SYMBOL_GPL vmlinux 0x564f1dca klist_add_after +EXPORT_SYMBOL_GPL vmlinux 0x5654f836 erst_get_record_id_next +EXPORT_SYMBOL_GPL vmlinux 0x565b6892 uuid_le_gen +EXPORT_SYMBOL_GPL vmlinux 0x567f299f crypto_attr_alg2 +EXPORT_SYMBOL_GPL vmlinux 0x568363d9 __fat_fs_error +EXPORT_SYMBOL_GPL vmlinux 0x568793aa acpi_ec_remove_query_handler +EXPORT_SYMBOL_GPL vmlinux 0x56886b19 scatterwalk_map +EXPORT_SYMBOL_GPL vmlinux 0x56947347 dmi_walk +EXPORT_SYMBOL_GPL vmlinux 0x56b63670 lzo1x_1_compress +EXPORT_SYMBOL_GPL vmlinux 0x56bb4af1 xenbus_dev_remove +EXPORT_SYMBOL_GPL vmlinux 0x56c8c23f ata_sff_postreset +EXPORT_SYMBOL_GPL vmlinux 0x56d697ce cpu_up +EXPORT_SYMBOL_GPL vmlinux 0x56e4a390 pid_vnr +EXPORT_SYMBOL_GPL vmlinux 0x56e75d47 klist_node_attached +EXPORT_SYMBOL_GPL vmlinux 0x57231f45 ring_buffer_record_on +EXPORT_SYMBOL_GPL vmlinux 0x575b4dc1 __mmdrop +EXPORT_SYMBOL_GPL vmlinux 0x5779d445 xenbus_exists +EXPORT_SYMBOL_GPL vmlinux 0x579a19de ata_port_freeze +EXPORT_SYMBOL_GPL vmlinux 0x579e0bf5 rtnl_unregister_all +EXPORT_SYMBOL_GPL vmlinux 0x57fab6f2 reset_control_get +EXPORT_SYMBOL_GPL vmlinux 0x582b3a04 skcipher_geniv_init +EXPORT_SYMBOL_GPL vmlinux 0x582ddee6 inet_hash +EXPORT_SYMBOL_GPL vmlinux 0x5839fc62 gen_pool_size +EXPORT_SYMBOL_GPL vmlinux 0x58413099 ipv6_fixup_options +EXPORT_SYMBOL_GPL vmlinux 0x584497a7 tcp_peer_is_proven +EXPORT_SYMBOL_GPL vmlinux 0x585704ab aer_recover_queue +EXPORT_SYMBOL_GPL vmlinux 0x589e4569 syscon_regmap_lookup_by_pdevname +EXPORT_SYMBOL_GPL vmlinux 0x58b9b40c tcp_fetch_timewait_stamp +EXPORT_SYMBOL_GPL vmlinux 0x58c7e5f8 __rio_local_write_config_8 +EXPORT_SYMBOL_GPL vmlinux 0x58d03cbe zap_vma_ptes +EXPORT_SYMBOL_GPL vmlinux 0x58d206aa cgroup_rightmost_descendant +EXPORT_SYMBOL_GPL vmlinux 0x58e4aef3 pci_check_and_unmask_intx +EXPORT_SYMBOL_GPL vmlinux 0x58e7d5c6 debugfs_create_x64 +EXPORT_SYMBOL_GPL vmlinux 0x58ee6f14 ip6_append_data +EXPORT_SYMBOL_GPL vmlinux 0x58f6a1ad __pneigh_lookup +EXPORT_SYMBOL_GPL vmlinux 0x58fa564f tcp_register_congestion_control +EXPORT_SYMBOL_GPL vmlinux 0x58fe9409 rio_inb_pwrite_handler +EXPORT_SYMBOL_GPL vmlinux 0x591061dc ata_std_qc_defer +EXPORT_SYMBOL_GPL vmlinux 0x591b3650 dma_buf_fd +EXPORT_SYMBOL_GPL vmlinux 0x5922a39d iommu_group_remove_device +EXPORT_SYMBOL_GPL vmlinux 0x5947abbe max77693_bulk_write +EXPORT_SYMBOL_GPL vmlinux 0x59481766 crypto_hash_walk_first +EXPORT_SYMBOL_GPL vmlinux 0x59855dce disk_part_iter_exit +EXPORT_SYMBOL_GPL vmlinux 0x598cf4b2 rio_unmap_inb_region +EXPORT_SYMBOL_GPL vmlinux 0x599792f5 inet_csk_bind_conflict +EXPORT_SYMBOL_GPL vmlinux 0x59bdfef1 usb_submit_urb +EXPORT_SYMBOL_GPL vmlinux 0x59d2eac0 iommu_domain_set_attr +EXPORT_SYMBOL_GPL vmlinux 0x59e2743e call_rcu_bh +EXPORT_SYMBOL_GPL vmlinux 0x59eae699 ring_buffer_read_prepare +EXPORT_SYMBOL_GPL vmlinux 0x5a2b1b67 gnttab_free_grant_reference +EXPORT_SYMBOL_GPL vmlinux 0x5a3e62f5 sysfs_schedule_callback +EXPORT_SYMBOL_GPL vmlinux 0x5a441ebd efi_query_variable_store +EXPORT_SYMBOL_GPL vmlinux 0x5a48534a regulator_count_voltages +EXPORT_SYMBOL_GPL vmlinux 0x5a516a6f dma_buf_end_cpu_access +EXPORT_SYMBOL_GPL vmlinux 0x5a6f4804 ata_sff_drain_fifo +EXPORT_SYMBOL_GPL vmlinux 0x5a7bfe41 crypto_probing_notify +EXPORT_SYMBOL_GPL vmlinux 0x5a8a5340 get_net_ns_by_pid +EXPORT_SYMBOL_GPL vmlinux 0x5aab920e usb_register_dev +EXPORT_SYMBOL_GPL vmlinux 0x5aabd62c skb_cow_data +EXPORT_SYMBOL_GPL vmlinux 0x5ad32297 __audit_inode_child +EXPORT_SYMBOL_GPL vmlinux 0x5ade93b3 aead_geniv_exit +EXPORT_SYMBOL_GPL vmlinux 0x5af03a28 gnttab_claim_grant_reference +EXPORT_SYMBOL_GPL vmlinux 0x5b0e2181 swiotlb_tbl_sync_single +EXPORT_SYMBOL_GPL vmlinux 0x5b30b825 platform_get_resource +EXPORT_SYMBOL_GPL vmlinux 0x5b84b677 mddev_suspend +EXPORT_SYMBOL_GPL vmlinux 0x5babf842 register_jprobes +EXPORT_SYMBOL_GPL vmlinux 0x5bc7b770 rio_unregister_scan +EXPORT_SYMBOL_GPL vmlinux 0x5bcb22f3 find_get_pid +EXPORT_SYMBOL_GPL vmlinux 0x5bcf137f acpi_dma_controller_register +EXPORT_SYMBOL_GPL vmlinux 0x5c66e90c efivar_run_worker +EXPORT_SYMBOL_GPL vmlinux 0x5c6b0950 rio_dev_put +EXPORT_SYMBOL_GPL vmlinux 0x5c717221 ata_pci_bmdma_prepare_host +EXPORT_SYMBOL_GPL vmlinux 0x5c86dabf xen_swiotlb_sync_sg_for_device +EXPORT_SYMBOL_GPL vmlinux 0x5c8a1527 devm_pwm_get +EXPORT_SYMBOL_GPL vmlinux 0x5cabdced dev_pm_qos_remove_global_notifier +EXPORT_SYMBOL_GPL vmlinux 0x5cabe176 rtc_class_open +EXPORT_SYMBOL_GPL vmlinux 0x5d12e48f input_event_to_user +EXPORT_SYMBOL_GPL vmlinux 0x5d15dcfb blkcg_activate_policy +EXPORT_SYMBOL_GPL vmlinux 0x5d2fd4f9 regulator_get_exclusive +EXPORT_SYMBOL_GPL vmlinux 0x5d366dec gnttab_cancel_free_callback +EXPORT_SYMBOL_GPL vmlinux 0x5d48a650 m2p_find_override_pfn +EXPORT_SYMBOL_GPL vmlinux 0x5d57ab9a isa_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0x5d65926d elv_unregister +EXPORT_SYMBOL_GPL vmlinux 0x5d66dcf7 acpi_dev_get_resources +EXPORT_SYMBOL_GPL vmlinux 0x5d6868f5 usb_sg_cancel +EXPORT_SYMBOL_GPL vmlinux 0x5d7d265c platform_device_put +EXPORT_SYMBOL_GPL vmlinux 0x5da5b900 ablkcipher_walk_done +EXPORT_SYMBOL_GPL vmlinux 0x5dd18380 regulator_get_init_drvdata +EXPORT_SYMBOL_GPL vmlinux 0x5ded6c2d print_context_stack +EXPORT_SYMBOL_GPL vmlinux 0x5df5a383 da903x_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x5e191fbd shmem_truncate_range +EXPORT_SYMBOL_GPL vmlinux 0x5e367371 sock_diag_register +EXPORT_SYMBOL_GPL vmlinux 0x5e388df7 md_rdev_clear +EXPORT_SYMBOL_GPL vmlinux 0x5e45b971 rio_route_add_entry +EXPORT_SYMBOL_GPL vmlinux 0x5e51cd74 swiotlb_nr_tbl +EXPORT_SYMBOL_GPL vmlinux 0x5e5caeef usb_put_phy +EXPORT_SYMBOL_GPL vmlinux 0x5e7631ec find_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0x5e82cc41 tty_set_termios +EXPORT_SYMBOL_GPL vmlinux 0x5ef2e02d crypto_aead_type +EXPORT_SYMBOL_GPL vmlinux 0x5f248f72 set_timer_slack +EXPORT_SYMBOL_GPL vmlinux 0x5f2da8c4 check_tsc_unstable +EXPORT_SYMBOL_GPL vmlinux 0x5f403f42 ata_pci_bmdma_init_one +EXPORT_SYMBOL_GPL vmlinux 0x5f6c8b09 devm_usb_get_phy +EXPORT_SYMBOL_GPL vmlinux 0x5f74b849 sync_filesystem +EXPORT_SYMBOL_GPL vmlinux 0x5fb49dbb tasklet_hrtimer_init +EXPORT_SYMBOL_GPL vmlinux 0x5fc27be9 acpi_dev_irq_flags +EXPORT_SYMBOL_GPL vmlinux 0x5fcdebd7 dm_underlying_device_busy +EXPORT_SYMBOL_GPL vmlinux 0x5fd359c0 ping_queue_rcv_skb +EXPORT_SYMBOL_GPL vmlinux 0x5fdfa2c1 amd_pmu_enable_virt +EXPORT_SYMBOL_GPL vmlinux 0x5ff27249 ata_do_eh +EXPORT_SYMBOL_GPL vmlinux 0x5ff2c5d8 stmpe_block_read +EXPORT_SYMBOL_GPL vmlinux 0x5fffcc00 rtc_irq_set_state +EXPORT_SYMBOL_GPL vmlinux 0x60506751 unmap_kernel_range_noflush +EXPORT_SYMBOL_GPL vmlinux 0x6065130a blkcg_print_blkgs +EXPORT_SYMBOL_GPL vmlinux 0x609ad9e7 inet_twsk_purge +EXPORT_SYMBOL_GPL vmlinux 0x60a13e90 rcu_barrier +EXPORT_SYMBOL_GPL vmlinux 0x60cd73ed pv_apic_ops +EXPORT_SYMBOL_GPL vmlinux 0x60f8b91a sock_update_netprioidx +EXPORT_SYMBOL_GPL vmlinux 0x60ffde32 regulator_unregister +EXPORT_SYMBOL_GPL vmlinux 0x61024fd3 replace_page_cache_page +EXPORT_SYMBOL_GPL vmlinux 0x6106df4e attribute_container_unregister +EXPORT_SYMBOL_GPL vmlinux 0x611006d5 apic +EXPORT_SYMBOL_GPL vmlinux 0x6114d8a4 regulator_force_disable +EXPORT_SYMBOL_GPL vmlinux 0x611d02c4 crypto_tfm_in_queue +EXPORT_SYMBOL_GPL vmlinux 0x6129f4da pci_pasid_features +EXPORT_SYMBOL_GPL vmlinux 0x613dcdfa xfrm_output +EXPORT_SYMBOL_GPL vmlinux 0x616728db rio_route_clr_table +EXPORT_SYMBOL_GPL vmlinux 0x616b7f9c __mrst_cpu_chip +EXPORT_SYMBOL_GPL vmlinux 0x6189783d tty_get_pgrp +EXPORT_SYMBOL_GPL vmlinux 0x618f5249 exportfs_encode_fh +EXPORT_SYMBOL_GPL vmlinux 0x61dd559d pm_runtime_no_callbacks +EXPORT_SYMBOL_GPL vmlinux 0x61e969a8 wm8350_clear_bits +EXPORT_SYMBOL_GPL vmlinux 0x62103dec vfs_setlease +EXPORT_SYMBOL_GPL vmlinux 0x62168550 usb_string +EXPORT_SYMBOL_GPL vmlinux 0x622693c8 sysfs_remove_file_from_group +EXPORT_SYMBOL_GPL vmlinux 0x622c7922 register_oom_notifier +EXPORT_SYMBOL_GPL vmlinux 0x622dacba tick_nohz_idle_enter +EXPORT_SYMBOL_GPL vmlinux 0x623803c8 hest_disable +EXPORT_SYMBOL_GPL vmlinux 0x6248b5be __clk_get_flags +EXPORT_SYMBOL_GPL vmlinux 0x624a6406 hwrng_register +EXPORT_SYMBOL_GPL vmlinux 0x6263a414 ata_pci_remove_one +EXPORT_SYMBOL_GPL vmlinux 0x62a0f815 crypto_nivaead_type +EXPORT_SYMBOL_GPL vmlinux 0x6308893c unregister_acpi_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x631d5bbe pwm_disable +EXPORT_SYMBOL_GPL vmlinux 0x63205de1 ata_scsi_unlock_native_capacity +EXPORT_SYMBOL_GPL vmlinux 0x63419972 fuse_file_poll +EXPORT_SYMBOL_GPL vmlinux 0x635ec980 apei_exec_post_unmap_gars +EXPORT_SYMBOL_GPL vmlinux 0x636441fe ata_acpi_stm +EXPORT_SYMBOL_GPL vmlinux 0x63743249 dev_pm_qos_flags +EXPORT_SYMBOL_GPL vmlinux 0x63933954 fat_detach +EXPORT_SYMBOL_GPL vmlinux 0x63bc16e5 spi_get_next_queued_message +EXPORT_SYMBOL_GPL vmlinux 0x63bd6ec9 alarm_expires_remaining +EXPORT_SYMBOL_GPL vmlinux 0x63c1ae9e pm_generic_restore +EXPORT_SYMBOL_GPL vmlinux 0x63d98a15 ata_wait_register +EXPORT_SYMBOL_GPL vmlinux 0x640dc22e xen_remap_domain_mfn_range +EXPORT_SYMBOL_GPL vmlinux 0x641d24a8 xen_swiotlb_alloc_coherent +EXPORT_SYMBOL_GPL vmlinux 0x64256424 visitor32 +EXPORT_SYMBOL_GPL vmlinux 0x6449732a anon_transport_class_register +EXPORT_SYMBOL_GPL vmlinux 0x6458685a ata_sff_queue_pio_task +EXPORT_SYMBOL_GPL vmlinux 0x6459a31c usb_store_new_id +EXPORT_SYMBOL_GPL vmlinux 0x647202ab rdev_get_drvdata +EXPORT_SYMBOL_GPL vmlinux 0x64ad658f tpm_show_pubek +EXPORT_SYMBOL_GPL vmlinux 0x64aff771 generic_fh_to_dentry +EXPORT_SYMBOL_GPL vmlinux 0x64c33cf4 md_ack_all_badblocks +EXPORT_SYMBOL_GPL vmlinux 0x64c43f97 crypto_hash_walk_done +EXPORT_SYMBOL_GPL vmlinux 0x64c79e87 iommu_domain_free +EXPORT_SYMBOL_GPL vmlinux 0x64d2c97e crypto_destroy_tfm +EXPORT_SYMBOL_GPL vmlinux 0x64e6e309 simple_attr_read +EXPORT_SYMBOL_GPL vmlinux 0x64eba495 usb_set_device_state +EXPORT_SYMBOL_GPL vmlinux 0x6509536c tcp_slow_start +EXPORT_SYMBOL_GPL vmlinux 0x651b2fee irq_create_direct_mapping +EXPORT_SYMBOL_GPL vmlinux 0x6521bb4b __init_kthread_worker +EXPORT_SYMBOL_GPL vmlinux 0x6527a231 dbgp_external_startup +EXPORT_SYMBOL_GPL vmlinux 0x653b81c0 cgroup_next_descendant_pre +EXPORT_SYMBOL_GPL vmlinux 0x653cb02d intel_msic_bulk_read +EXPORT_SYMBOL_GPL vmlinux 0x657c62b4 xfrm_audit_state_delete +EXPORT_SYMBOL_GPL vmlinux 0x658c8186 amd_get_nb_id +EXPORT_SYMBOL_GPL vmlinux 0x658f5cc7 ata_bmdma_port_start +EXPORT_SYMBOL_GPL vmlinux 0x65b0dec3 devm_usb_get_phy_dev +EXPORT_SYMBOL_GPL vmlinux 0x65bbbc78 schedule_hrtimeout_range +EXPORT_SYMBOL_GPL vmlinux 0x65ccb6f0 call_netevent_notifiers +EXPORT_SYMBOL_GPL vmlinux 0x65d2afa1 tpm_remove_ppi +EXPORT_SYMBOL_GPL vmlinux 0x65d5c12b irq_find_mapping +EXPORT_SYMBOL_GPL vmlinux 0x65d6d0f0 gpio_direction_input +EXPORT_SYMBOL_GPL vmlinux 0x65fa533b usb_unpoison_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0x65ff2579 get_matching_microcode +EXPORT_SYMBOL_GPL vmlinux 0x6602064f wm831x_regmap_config +EXPORT_SYMBOL_GPL vmlinux 0x661601de sprint_symbol +EXPORT_SYMBOL_GPL vmlinux 0x6627eec6 cleanup_srcu_struct +EXPORT_SYMBOL_GPL vmlinux 0x6633d346 __srcu_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x663c16d6 gnttab_grant_foreign_access_subpage_ref +EXPORT_SYMBOL_GPL vmlinux 0x664d101c usb_hcd_start_port_resume +EXPORT_SYMBOL_GPL vmlinux 0x66554e30 rdev_set_badblocks +EXPORT_SYMBOL_GPL vmlinux 0x66813391 cpufreq_cooling_register +EXPORT_SYMBOL_GPL vmlinux 0x66834a62 pci_bus_sem +EXPORT_SYMBOL_GPL vmlinux 0x668402aa crypto_put_default_rng +EXPORT_SYMBOL_GPL vmlinux 0x66ca4d50 pci_slots_kset +EXPORT_SYMBOL_GPL vmlinux 0x66d3b166 acpi_unbind_one +EXPORT_SYMBOL_GPL vmlinux 0x66d87d38 symbol_put_addr +EXPORT_SYMBOL_GPL vmlinux 0x66e21ea2 xen_swiotlb_sync_single_for_cpu +EXPORT_SYMBOL_GPL vmlinux 0x66ee190d ata_sff_freeze +EXPORT_SYMBOL_GPL vmlinux 0x66f7f60d wm8997_aod +EXPORT_SYMBOL_GPL vmlinux 0x66fb2862 devm_usb_get_phy_by_phandle +EXPORT_SYMBOL_GPL vmlinux 0x6700ca5b pci_test_config_bits +EXPORT_SYMBOL_GPL vmlinux 0x670560b6 xenbus_map_ring_valloc +EXPORT_SYMBOL_GPL vmlinux 0x6710ce81 bsg_job_done +EXPORT_SYMBOL_GPL vmlinux 0x67135c96 ata_std_error_handler +EXPORT_SYMBOL_GPL vmlinux 0x6739a503 balloon_set_new_target +EXPORT_SYMBOL_GPL vmlinux 0x674e13e1 public_key_destroy +EXPORT_SYMBOL_GPL vmlinux 0x67601cdc sata_scr_valid +EXPORT_SYMBOL_GPL vmlinux 0x67643d26 pm_qos_remove_request +EXPORT_SYMBOL_GPL vmlinux 0x67780a68 ahash_free_instance +EXPORT_SYMBOL_GPL vmlinux 0x677833b9 rtnl_link_register +EXPORT_SYMBOL_GPL vmlinux 0x67955ce6 profile_hits +EXPORT_SYMBOL_GPL vmlinux 0x67cc8ac8 __clocksource_updatefreq_scale +EXPORT_SYMBOL_GPL vmlinux 0x67ee2738 usb_for_each_dev +EXPORT_SYMBOL_GPL vmlinux 0x6812cf8d __tracepoint_rpm_idle +EXPORT_SYMBOL_GPL vmlinux 0x681964ae device_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x683f0f33 irq_gc_mask_set_bit +EXPORT_SYMBOL_GPL vmlinux 0x6844c3fa swiotlb_map_page +EXPORT_SYMBOL_GPL vmlinux 0x684dac0b pm_generic_resume_noirq +EXPORT_SYMBOL_GPL vmlinux 0x687a72b0 crypto_lookup_skcipher +EXPORT_SYMBOL_GPL vmlinux 0x68956406 static_key_slow_dec +EXPORT_SYMBOL_GPL vmlinux 0x68ab6023 xen_pci_frontend +EXPORT_SYMBOL_GPL vmlinux 0x68b150b1 ata_pci_device_do_resume +EXPORT_SYMBOL_GPL vmlinux 0x6923ce63 irq_work_sync +EXPORT_SYMBOL_GPL vmlinux 0x693265d8 ftrace_set_notrace +EXPORT_SYMBOL_GPL vmlinux 0x69447467 ring_buffer_write +EXPORT_SYMBOL_GPL vmlinux 0x6945725e mpi_read_raw_data +EXPORT_SYMBOL_GPL vmlinux 0x695e6cbd usb_ep0_reinit +EXPORT_SYMBOL_GPL vmlinux 0x696e8b97 devres_get +EXPORT_SYMBOL_GPL vmlinux 0x697c5d0d tracing_snapshot_alloc +EXPORT_SYMBOL_GPL vmlinux 0x698a899f ring_buffer_peek +EXPORT_SYMBOL_GPL vmlinux 0x698be398 regulator_get_voltage +EXPORT_SYMBOL_GPL vmlinux 0x69a19375 kobject_init_and_add +EXPORT_SYMBOL_GPL vmlinux 0x69b610f4 usb_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x69b80ba0 dev_pm_qos_hide_flags +EXPORT_SYMBOL_GPL vmlinux 0x69b929ce thermal_cooling_device_register +EXPORT_SYMBOL_GPL vmlinux 0x69e9a2cb ata_scsi_slave_config +EXPORT_SYMBOL_GPL vmlinux 0x6a10f3e7 clockevents_unbind +EXPORT_SYMBOL_GPL vmlinux 0x6a1733eb iommu_group_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x6a2a6a19 disable_kprobe +EXPORT_SYMBOL_GPL vmlinux 0x6a2f3e4a acpi_dev_runtime_suspend +EXPORT_SYMBOL_GPL vmlinux 0x6a4db516 ftrace_set_filter +EXPORT_SYMBOL_GPL vmlinux 0x6a5fb566 rcu_sched_force_quiescent_state +EXPORT_SYMBOL_GPL vmlinux 0x6a8441be cpci_hp_start +EXPORT_SYMBOL_GPL vmlinux 0x6a887361 shake_page +EXPORT_SYMBOL_GPL vmlinux 0x6ab77430 wm5110_aod +EXPORT_SYMBOL_GPL vmlinux 0x6ab922b2 regulator_get_drvdata +EXPORT_SYMBOL_GPL vmlinux 0x6aba167a regulator_list_voltage +EXPORT_SYMBOL_GPL vmlinux 0x6aca5c00 ata_sas_port_async_suspend +EXPORT_SYMBOL_GPL vmlinux 0x6acad21f acpi_get_cpuid +EXPORT_SYMBOL_GPL vmlinux 0x6b088695 crypto_shash_setkey +EXPORT_SYMBOL_GPL vmlinux 0x6b152875 efivar_entry_get +EXPORT_SYMBOL_GPL vmlinux 0x6b193f5d ata_pci_device_do_suspend +EXPORT_SYMBOL_GPL vmlinux 0x6b29a1fa ring_buffer_event_length +EXPORT_SYMBOL_GPL vmlinux 0x6b6bbc99 crypto_register_pcomp +EXPORT_SYMBOL_GPL vmlinux 0x6bf45254 regmap_field_alloc +EXPORT_SYMBOL_GPL vmlinux 0x6c1251fd apei_exec_read_register +EXPORT_SYMBOL_GPL vmlinux 0x6c13c9bf crypto_find_alg +EXPORT_SYMBOL_GPL vmlinux 0x6c2d04a6 arizona_clk32k_disable +EXPORT_SYMBOL_GPL vmlinux 0x6c37d3fa serial8250_rx_chars +EXPORT_SYMBOL_GPL vmlinux 0x6c49c4f2 clockevents_notify +EXPORT_SYMBOL_GPL vmlinux 0x6c4b6684 reset_control_assert +EXPORT_SYMBOL_GPL vmlinux 0x6c534131 tc3589x_reg_read +EXPORT_SYMBOL_GPL vmlinux 0x6c655913 register_acpi_hed_notifier +EXPORT_SYMBOL_GPL vmlinux 0x6c6fd9b1 tpm_show_active +EXPORT_SYMBOL_GPL vmlinux 0x6c70ac32 shash_ahash_finup +EXPORT_SYMBOL_GPL vmlinux 0x6c749afe __tracepoint_block_unplug +EXPORT_SYMBOL_GPL vmlinux 0x6c8d5ae8 __gpio_get_value +EXPORT_SYMBOL_GPL vmlinux 0x6ca4bf88 async_synchronize_full_domain +EXPORT_SYMBOL_GPL vmlinux 0x6cbc5b09 netdev_rx_handler_register +EXPORT_SYMBOL_GPL vmlinux 0x6cd57cab put_device +EXPORT_SYMBOL_GPL vmlinux 0x6d017c1a shash_ahash_update +EXPORT_SYMBOL_GPL vmlinux 0x6d2fc5a6 net_namespace_list +EXPORT_SYMBOL_GPL vmlinux 0x6d31e93b tracepoint_iter_next +EXPORT_SYMBOL_GPL vmlinux 0x6da4435d bsg_unregister_queue +EXPORT_SYMBOL_GPL vmlinux 0x6da75f24 wm8350_device_exit +EXPORT_SYMBOL_GPL vmlinux 0x6dc51864 tpm_dev_vendor_release +EXPORT_SYMBOL_GPL vmlinux 0x6dddb1a0 regmap_field_read +EXPORT_SYMBOL_GPL vmlinux 0x6dfeeddf bsg_setup_queue +EXPORT_SYMBOL_GPL vmlinux 0x6e04a077 usb_bind_phy +EXPORT_SYMBOL_GPL vmlinux 0x6e281b4d device_add +EXPORT_SYMBOL_GPL vmlinux 0x6e2e764c scsi_eh_ready_devs +EXPORT_SYMBOL_GPL vmlinux 0x6e58ddf0 gnttab_end_foreign_transfer_ref +EXPORT_SYMBOL_GPL vmlinux 0x6e6829e1 unregister_ftrace_event +EXPORT_SYMBOL_GPL vmlinux 0x6e6cce8f __get_user_pages_fast +EXPORT_SYMBOL_GPL vmlinux 0x6e782c23 iomap_create_wc +EXPORT_SYMBOL_GPL vmlinux 0x6e7943ec iommu_group_id +EXPORT_SYMBOL_GPL vmlinux 0x6e85b00b local_touch_nmi +EXPORT_SYMBOL_GPL vmlinux 0x6e89a560 regmap_irq_chip_get_base +EXPORT_SYMBOL_GPL vmlinux 0x6eb71e8a sysfs_remove_link_from_group +EXPORT_SYMBOL_GPL vmlinux 0x6ec1874e scsi_queue_work +EXPORT_SYMBOL_GPL vmlinux 0x6ec35bcd bdi_writeout_inc +EXPORT_SYMBOL_GPL vmlinux 0x6ed8bbec rtc_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x6eeba6b2 i2c_lock_adapter +EXPORT_SYMBOL_GPL vmlinux 0x6f1ee69e kgdb_unregister_io_module +EXPORT_SYMBOL_GPL vmlinux 0x6f361dd0 crypto_alloc_instance2 +EXPORT_SYMBOL_GPL vmlinux 0x6f66273a clockevents_register_device +EXPORT_SYMBOL_GPL vmlinux 0x6f6996cb crypto_unregister_shashes +EXPORT_SYMBOL_GPL vmlinux 0x6fc535b1 input_ff_destroy +EXPORT_SYMBOL_GPL vmlinux 0x6fd04d10 br_fdb_test_addr_hook +EXPORT_SYMBOL_GPL vmlinux 0x6fe3d8cf ktime_add_safe +EXPORT_SYMBOL_GPL vmlinux 0x6fee6383 task_active_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0x6ff607b6 crypto_get_default_rng +EXPORT_SYMBOL_GPL vmlinux 0x70201233 unregister_jprobe +EXPORT_SYMBOL_GPL vmlinux 0x703189d7 regulator_get_mode +EXPORT_SYMBOL_GPL vmlinux 0x703a38a8 key_type_logon +EXPORT_SYMBOL_GPL vmlinux 0x7048cae8 scsi_nl_sock +EXPORT_SYMBOL_GPL vmlinux 0x70559992 pwm_enable +EXPORT_SYMBOL_GPL vmlinux 0x707ff1bb ata_xfer_mask2mode +EXPORT_SYMBOL_GPL vmlinux 0x70825112 srcu_barrier +EXPORT_SYMBOL_GPL vmlinux 0x70825f83 sysfs_create_bin_file +EXPORT_SYMBOL_GPL vmlinux 0x70a18d80 platform_bus +EXPORT_SYMBOL_GPL vmlinux 0x70b5ccba unregister_hw_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0x70baebff tty_perform_flush +EXPORT_SYMBOL_GPL vmlinux 0x70bb651d __tracepoint_block_rq_remap +EXPORT_SYMBOL_GPL vmlinux 0x70cf032f usb_hcd_irq +EXPORT_SYMBOL_GPL vmlinux 0x70efc960 led_trigger_event +EXPORT_SYMBOL_GPL vmlinux 0x70f48e13 debugfs_create_size_t +EXPORT_SYMBOL_GPL vmlinux 0x710c73b6 crypto_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x710d3f79 balloon_mapping_alloc +EXPORT_SYMBOL_GPL vmlinux 0x71506f92 screen_glyph +EXPORT_SYMBOL_GPL vmlinux 0x716265c7 debugfs_initialized +EXPORT_SYMBOL_GPL vmlinux 0x716ce60f ping_unhash +EXPORT_SYMBOL_GPL vmlinux 0x71754b60 cn_add_callback +EXPORT_SYMBOL_GPL vmlinux 0x718ce50a blk_rq_err_bytes +EXPORT_SYMBOL_GPL vmlinux 0x718e522a ping_seq_fops +EXPORT_SYMBOL_GPL vmlinux 0x71a2f90c devm_regmap_field_alloc +EXPORT_SYMBOL_GPL vmlinux 0x71a31c83 default_backing_dev_info +EXPORT_SYMBOL_GPL vmlinux 0x71aa9889 stmpe_set_altfunc +EXPORT_SYMBOL_GPL vmlinux 0x71befdfe __sock_recv_ts_and_drops +EXPORT_SYMBOL_GPL vmlinux 0x71d4e589 crypto_larval_lookup +EXPORT_SYMBOL_GPL vmlinux 0x71d84a45 blk_queue_rq_timeout +EXPORT_SYMBOL_GPL vmlinux 0x71dc9998 crypto_il_tab +EXPORT_SYMBOL_GPL vmlinux 0x720778fb crypto_unregister_algs +EXPORT_SYMBOL_GPL vmlinux 0x72142c1e bus_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x721d6ed8 stmpe_reg_write +EXPORT_SYMBOL_GPL vmlinux 0x722bef9a pci_create_slot +EXPORT_SYMBOL_GPL vmlinux 0x722d85e2 power_supply_am_i_supplied +EXPORT_SYMBOL_GPL vmlinux 0x723357cb uart_set_options +EXPORT_SYMBOL_GPL vmlinux 0x72419502 arizona_pm_ops +EXPORT_SYMBOL_GPL vmlinux 0x7267db00 hwrng_unregister +EXPORT_SYMBOL_GPL vmlinux 0x72695242 spi_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x726ced54 tps80031_ext_power_req_config +EXPORT_SYMBOL_GPL vmlinux 0x72741f25 trace_vbprintk +EXPORT_SYMBOL_GPL vmlinux 0x7278d328 all_vm_events +EXPORT_SYMBOL_GPL vmlinux 0x72a9b93f register_mce_write_callback +EXPORT_SYMBOL_GPL vmlinux 0x72b212ff regulator_bulk_enable +EXPORT_SYMBOL_GPL vmlinux 0x72c09f38 stmpe_reg_read +EXPORT_SYMBOL_GPL vmlinux 0x73013896 xenbus_printf +EXPORT_SYMBOL_GPL vmlinux 0x73056d81 regulator_get_linear_step +EXPORT_SYMBOL_GPL vmlinux 0x7316d586 wm8350_reg_lock +EXPORT_SYMBOL_GPL vmlinux 0x731a3677 usb_bulk_msg +EXPORT_SYMBOL_GPL vmlinux 0x731dba7a xen_domain_type +EXPORT_SYMBOL_GPL vmlinux 0x7324c361 usb_create_hcd +EXPORT_SYMBOL_GPL vmlinux 0x735b1cd6 btree_grim_visitor +EXPORT_SYMBOL_GPL vmlinux 0x735d431d ref_module +EXPORT_SYMBOL_GPL vmlinux 0x7368dfc4 user_describe +EXPORT_SYMBOL_GPL vmlinux 0x737960f6 vring_del_virtqueue +EXPORT_SYMBOL_GPL vmlinux 0x738b363a mmc_send_ext_csd +EXPORT_SYMBOL_GPL vmlinux 0x738fd248 intel_msic_reg_update +EXPORT_SYMBOL_GPL vmlinux 0x739c8603 ata_sas_port_destroy +EXPORT_SYMBOL_GPL vmlinux 0x73a3e9be dev_get_regmap +EXPORT_SYMBOL_GPL vmlinux 0x73a48b4a ata_sff_std_ports +EXPORT_SYMBOL_GPL vmlinux 0x73b01498 platform_create_bundle +EXPORT_SYMBOL_GPL vmlinux 0x73d69364 ring_buffer_change_overwrite +EXPORT_SYMBOL_GPL vmlinux 0x73fee0bd device_remove_bin_file +EXPORT_SYMBOL_GPL vmlinux 0x7402987b reset_controller_register +EXPORT_SYMBOL_GPL vmlinux 0x7402c697 sdio_writew +EXPORT_SYMBOL_GPL vmlinux 0x74033903 devres_release_group +EXPORT_SYMBOL_GPL vmlinux 0x740b1001 ping_hash +EXPORT_SYMBOL_GPL vmlinux 0x743a165e ata_pack_xfermask +EXPORT_SYMBOL_GPL vmlinux 0x743fe440 ehci_resume +EXPORT_SYMBOL_GPL vmlinux 0x74457e56 apei_resources_fini +EXPORT_SYMBOL_GPL vmlinux 0x7452adff user_return_notifier_register +EXPORT_SYMBOL_GPL vmlinux 0x7464ea38 dev_pm_qos_add_global_notifier +EXPORT_SYMBOL_GPL vmlinux 0x748d801a pcap_adc_sync +EXPORT_SYMBOL_GPL vmlinux 0x74954462 timecounter_read +EXPORT_SYMBOL_GPL vmlinux 0x74a22028 ehci_setup +EXPORT_SYMBOL_GPL vmlinux 0x74aa683d devres_for_each_res +EXPORT_SYMBOL_GPL vmlinux 0x74baf17a tracing_is_on +EXPORT_SYMBOL_GPL vmlinux 0x74c08941 kvm_async_pf_task_wake +EXPORT_SYMBOL_GPL vmlinux 0x74c2735d usb_hcd_platform_shutdown +EXPORT_SYMBOL_GPL vmlinux 0x74d9fac3 flush_kthread_work +EXPORT_SYMBOL_GPL vmlinux 0x74deb10c used_vectors +EXPORT_SYMBOL_GPL vmlinux 0x74ef1c96 debugfs_create_regset32 +EXPORT_SYMBOL_GPL vmlinux 0x750e6d65 user_match +EXPORT_SYMBOL_GPL vmlinux 0x7520757b ping_proc_register +EXPORT_SYMBOL_GPL vmlinux 0x7521afb6 leave_mm +EXPORT_SYMBOL_GPL vmlinux 0x7522f3ba irq_modify_status +EXPORT_SYMBOL_GPL vmlinux 0x7561b7bd __mmu_notifier_invalidate_range_end +EXPORT_SYMBOL_GPL vmlinux 0x756a4f56 i2c_for_each_dev +EXPORT_SYMBOL_GPL vmlinux 0x75798be8 thermal_zone_bind_cooling_device +EXPORT_SYMBOL_GPL vmlinux 0x757eab8f spi_add_device +EXPORT_SYMBOL_GPL vmlinux 0x758a782e blk_fill_rwbs +EXPORT_SYMBOL_GPL vmlinux 0x75a521db virtqueue_disable_cb +EXPORT_SYMBOL_GPL vmlinux 0x75b6ecb8 rdev_get_id +EXPORT_SYMBOL_GPL vmlinux 0x75c2b9f1 memalloc_socks +EXPORT_SYMBOL_GPL vmlinux 0x75c8a11c inet_twdr_twkill_work +EXPORT_SYMBOL_GPL vmlinux 0x75df1a1a cpufreq_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0x75e6c5c3 usb_put_intf +EXPORT_SYMBOL_GPL vmlinux 0x75ec9bb4 __crypto_alloc_tfm +EXPORT_SYMBOL_GPL vmlinux 0x763a31b8 ata_pci_sff_init_host +EXPORT_SYMBOL_GPL vmlinux 0x764b2088 device_reprobe +EXPORT_SYMBOL_GPL vmlinux 0x764ec2cd virtqueue_get_buf +EXPORT_SYMBOL_GPL vmlinux 0x7671e25f cpci_hp_unregister_bus +EXPORT_SYMBOL_GPL vmlinux 0x7681946c unregister_pm_notifier +EXPORT_SYMBOL_GPL vmlinux 0x769f4c14 apei_get_debugfs_dir +EXPORT_SYMBOL_GPL vmlinux 0x76a9abf3 crypto_grab_aead +EXPORT_SYMBOL_GPL vmlinux 0x76cd77e3 yield_to +EXPORT_SYMBOL_GPL vmlinux 0x76f051ef ata_ehi_push_desc +EXPORT_SYMBOL_GPL vmlinux 0x770cf981 tpm_send +EXPORT_SYMBOL_GPL vmlinux 0x7712771a unbind_from_irqhandler +EXPORT_SYMBOL_GPL vmlinux 0x7719df57 inet_csk_addr2sockaddr +EXPORT_SYMBOL_GPL vmlinux 0x77214cea sprint_OID +EXPORT_SYMBOL_GPL vmlinux 0x7729cbdd task_handoff_register +EXPORT_SYMBOL_GPL vmlinux 0x774ec5f4 inet_csk_search_req +EXPORT_SYMBOL_GPL vmlinux 0x774ed0d9 pci_walk_bus +EXPORT_SYMBOL_GPL vmlinux 0x7754f559 pci_find_next_capability +EXPORT_SYMBOL_GPL vmlinux 0x775a6ef5 kvm_read_and_reset_pf_reason +EXPORT_SYMBOL_GPL vmlinux 0x7761c378 fsstack_copy_attr_all +EXPORT_SYMBOL_GPL vmlinux 0x777a6c04 pci_hp_change_slot_info +EXPORT_SYMBOL_GPL vmlinux 0x7790adc0 aout_dump_debugregs +EXPORT_SYMBOL_GPL vmlinux 0x77cb60d4 driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0x77e65040 spi_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x77e78218 regulator_allow_bypass +EXPORT_SYMBOL_GPL vmlinux 0x77f3ca01 fat_scan +EXPORT_SYMBOL_GPL vmlinux 0x7803d3c3 inet_csk_reqsk_queue_hash_add +EXPORT_SYMBOL_GPL vmlinux 0x781c6eca hrtimer_init +EXPORT_SYMBOL_GPL vmlinux 0x781decec ata_wait_after_reset +EXPORT_SYMBOL_GPL vmlinux 0x782adb74 hpet_rtc_interrupt +EXPORT_SYMBOL_GPL vmlinux 0x7841feeb inet6_lookup +EXPORT_SYMBOL_GPL vmlinux 0x789a54fc xenbus_bind_evtchn +EXPORT_SYMBOL_GPL vmlinux 0x78e9a415 platform_get_irq_byname +EXPORT_SYMBOL_GPL vmlinux 0x78ea68a6 fb_deferred_io_open +EXPORT_SYMBOL_GPL vmlinux 0x78f01d51 da903x_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x7903f3a9 kick_process +EXPORT_SYMBOL_GPL vmlinux 0x7907efad ata_port_pbar_desc +EXPORT_SYMBOL_GPL vmlinux 0x793366ff blk_queue_bio +EXPORT_SYMBOL_GPL vmlinux 0x793f0aca pci_disable_ats +EXPORT_SYMBOL_GPL vmlinux 0x7944e0fc tracing_off +EXPORT_SYMBOL_GPL vmlinux 0x7946801c uprobe_unregister +EXPORT_SYMBOL_GPL vmlinux 0x796c2d48 dm_get_md +EXPORT_SYMBOL_GPL vmlinux 0x796d471d rio_register_scan +EXPORT_SYMBOL_GPL vmlinux 0x79763252 trace_buffer_unlock_commit_regs +EXPORT_SYMBOL_GPL vmlinux 0x79808f5c register_wide_hw_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0x7991fd8d crash_vmclear_loaded_vmcss +EXPORT_SYMBOL_GPL vmlinux 0x799eaf51 page_cache_sync_readahead +EXPORT_SYMBOL_GPL vmlinux 0x79a71c48 kernel_stack_pointer +EXPORT_SYMBOL_GPL vmlinux 0x79acf39e xenbus_map_ring +EXPORT_SYMBOL_GPL vmlinux 0x79b7e208 xenbus_dev_is_online +EXPORT_SYMBOL_GPL vmlinux 0x79bfbed3 ohci_resume +EXPORT_SYMBOL_GPL vmlinux 0x79e69460 intel_iommu_gfx_mapped +EXPORT_SYMBOL_GPL vmlinux 0x79fb95d2 dev_attr_link_power_management_policy +EXPORT_SYMBOL_GPL vmlinux 0x7a05099e tty_port_tty_hangup +EXPORT_SYMBOL_GPL vmlinux 0x7a062140 shash_attr_alg +EXPORT_SYMBOL_GPL vmlinux 0x7a1d7b4d crypto_create_tfm +EXPORT_SYMBOL_GPL vmlinux 0x7a245174 usb_get_hcd +EXPORT_SYMBOL_GPL vmlinux 0x7a2e4b44 ezx_pcap_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x7a3bcfea ata_sas_queuecmd +EXPORT_SYMBOL_GPL vmlinux 0x7a44270c crypto_ahash_setkey +EXPORT_SYMBOL_GPL vmlinux 0x7a4c1438 pv_info +EXPORT_SYMBOL_GPL vmlinux 0x7a5936d2 max8997_read_reg +EXPORT_SYMBOL_GPL vmlinux 0x7a66d7a8 subsys_find_device_by_id +EXPORT_SYMBOL_GPL vmlinux 0x7a83ff25 crypto_spawn_tfm +EXPORT_SYMBOL_GPL vmlinux 0x7a933c98 clk_enable +EXPORT_SYMBOL_GPL vmlinux 0x7a944007 rcu_idle_enter +EXPORT_SYMBOL_GPL vmlinux 0x7ab3ca18 eventfd_ctx_read +EXPORT_SYMBOL_GPL vmlinux 0x7ab4ae03 napi_by_id +EXPORT_SYMBOL_GPL vmlinux 0x7ac8e5b0 acpi_gsi_to_irq +EXPORT_SYMBOL_GPL vmlinux 0x7acc418e efivar_entry_remove +EXPORT_SYMBOL_GPL vmlinux 0x7ae1ae8e cpufreq_frequency_table_put_attr +EXPORT_SYMBOL_GPL vmlinux 0x7afae6a6 usb_reset_configuration +EXPORT_SYMBOL_GPL vmlinux 0x7b02e834 perf_event_create_kernel_counter +EXPORT_SYMBOL_GPL vmlinux 0x7b0a1ad6 pm_generic_suspend_noirq +EXPORT_SYMBOL_GPL vmlinux 0x7b0f1ab3 ring_buffer_free_read_page +EXPORT_SYMBOL_GPL vmlinux 0x7b1d544d edac_handler_set +EXPORT_SYMBOL_GPL vmlinux 0x7b1e074f uhci_check_and_reset_hc +EXPORT_SYMBOL_GPL vmlinux 0x7b2e03c1 devm_regmap_field_free +EXPORT_SYMBOL_GPL vmlinux 0x7b335f92 debugfs_create_u16 +EXPORT_SYMBOL_GPL vmlinux 0x7b494c55 usb_autopm_put_interface_async +EXPORT_SYMBOL_GPL vmlinux 0x7b4eef97 debugfs_create_x32 +EXPORT_SYMBOL_GPL vmlinux 0x7b638551 cpufreq_frequency_table_verify +EXPORT_SYMBOL_GPL vmlinux 0x7b6db32b event_storage_mutex +EXPORT_SYMBOL_GPL vmlinux 0x7b6f7d87 ata_sff_data_xfer_noirq +EXPORT_SYMBOL_GPL vmlinux 0x7b7fbfdd xen_swiotlb_map_page +EXPORT_SYMBOL_GPL vmlinux 0x7b90d1a9 bind_virq_to_irqhandler +EXPORT_SYMBOL_GPL vmlinux 0x7bddeb19 pm_generic_freeze +EXPORT_SYMBOL_GPL vmlinux 0x7bff4171 unregister_kprobes +EXPORT_SYMBOL_GPL vmlinux 0x7c129a72 kobject_uevent +EXPORT_SYMBOL_GPL vmlinux 0x7c2374e2 evm_inode_init_security +EXPORT_SYMBOL_GPL vmlinux 0x7c3a8825 spi_unregister_master +EXPORT_SYMBOL_GPL vmlinux 0x7c704bcf agp_add_bridge +EXPORT_SYMBOL_GPL vmlinux 0x7c75e63f xenbus_dev_probe +EXPORT_SYMBOL_GPL vmlinux 0x7c8f9488 usb_altnum_to_altsetting +EXPORT_SYMBOL_GPL vmlinux 0x7c991352 sdio_writel +EXPORT_SYMBOL_GPL vmlinux 0x7cc1b7fd max77693_bulk_read +EXPORT_SYMBOL_GPL vmlinux 0x7cd588cb crypto_larval_alloc +EXPORT_SYMBOL_GPL vmlinux 0x7cd6f042 cpufreq_get_current_driver +EXPORT_SYMBOL_GPL vmlinux 0x7cea5d06 usb_register_device_driver +EXPORT_SYMBOL_GPL vmlinux 0x7ceaf0d5 generic_handle_irq +EXPORT_SYMBOL_GPL vmlinux 0x7cfed4b0 ata_bmdma_error_handler +EXPORT_SYMBOL_GPL vmlinux 0x7d1f09e8 lp8788_update_bits +EXPORT_SYMBOL_GPL vmlinux 0x7d4444fe sdio_get_host_pm_caps +EXPORT_SYMBOL_GPL vmlinux 0x7d44b25b regmap_async_complete_cb +EXPORT_SYMBOL_GPL vmlinux 0x7d59dd46 pm_wq +EXPORT_SYMBOL_GPL vmlinux 0x7d880b30 fl6_merge_options +EXPORT_SYMBOL_GPL vmlinux 0x7dab26b6 wm831x_isinkv_values +EXPORT_SYMBOL_GPL vmlinux 0x7dc99cc6 pci_cfg_access_lock +EXPORT_SYMBOL_GPL vmlinux 0x7de99a47 cgroup_is_descendant +EXPORT_SYMBOL_GPL vmlinux 0x7e3ba959 tty_put_char +EXPORT_SYMBOL_GPL vmlinux 0x7e51abd5 xfrm_audit_policy_add +EXPORT_SYMBOL_GPL vmlinux 0x7e54c331 rt_mutex_lock +EXPORT_SYMBOL_GPL vmlinux 0x7e64181d usb_calc_bus_time +EXPORT_SYMBOL_GPL vmlinux 0x7e779d89 dev_change_net_namespace +EXPORT_SYMBOL_GPL vmlinux 0x7e878736 irq_domain_add_simple +EXPORT_SYMBOL_GPL vmlinux 0x7e9201f2 iommu_present +EXPORT_SYMBOL_GPL vmlinux 0x7eb4e4b5 usb_reset_device +EXPORT_SYMBOL_GPL vmlinux 0x7ec22f9a apei_estatus_check +EXPORT_SYMBOL_GPL vmlinux 0x7edb314f xfrm_audit_state_notfound +EXPORT_SYMBOL_GPL vmlinux 0x7ee226e5 spi_new_device +EXPORT_SYMBOL_GPL vmlinux 0x7ee5c900 ehci_handshake +EXPORT_SYMBOL_GPL vmlinux 0x7f15a841 dma_buf_attach +EXPORT_SYMBOL_GPL vmlinux 0x7f60eef4 acpi_dev_pm_add_dependent +EXPORT_SYMBOL_GPL vmlinux 0x7f7c840d get_kernel_pages +EXPORT_SYMBOL_GPL vmlinux 0x7f86d4b1 fpu_finit +EXPORT_SYMBOL_GPL vmlinux 0x7fa1ff7c platform_device_del +EXPORT_SYMBOL_GPL vmlinux 0x7fa4a2fd regmap_field_write +EXPORT_SYMBOL_GPL vmlinux 0x7fe6b6cb key_set_timeout +EXPORT_SYMBOL_GPL vmlinux 0x7fec1b09 devm_regmap_init_i2c +EXPORT_SYMBOL_GPL vmlinux 0x7ff767f4 sysfs_update_group +EXPORT_SYMBOL_GPL vmlinux 0x7ffc8718 gpio_set_debounce +EXPORT_SYMBOL_GPL vmlinux 0x80075870 sysfs_notify_dirent +EXPORT_SYMBOL_GPL vmlinux 0x800808d5 wm8997_irq +EXPORT_SYMBOL_GPL vmlinux 0x801aac96 devm_kfree +EXPORT_SYMBOL_GPL vmlinux 0x803fd0c1 usb_unlink_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0x805992d4 sdio_set_host_pm_flags +EXPORT_SYMBOL_GPL vmlinux 0x80660aa0 rtc_alarm_irq_enable +EXPORT_SYMBOL_GPL vmlinux 0x808ec1a3 crypto_alg_tested +EXPORT_SYMBOL_GPL vmlinux 0x80965cde ping_err +EXPORT_SYMBOL_GPL vmlinux 0x809ca530 iommu_unmap +EXPORT_SYMBOL_GPL vmlinux 0x80abce7d stmpe_block_write +EXPORT_SYMBOL_GPL vmlinux 0x80cd3662 devm_remove_action +EXPORT_SYMBOL_GPL vmlinux 0x80d5e57a mpi_free +EXPORT_SYMBOL_GPL vmlinux 0x80db7230 usb_bus_list_lock +EXPORT_SYMBOL_GPL vmlinux 0x80f3268f __trace_printk +EXPORT_SYMBOL_GPL vmlinux 0x81004fe9 blk_queue_bypass_start +EXPORT_SYMBOL_GPL vmlinux 0x811dc334 usb_unregister_notify +EXPORT_SYMBOL_GPL vmlinux 0x814296ae usb_alloc_coherent +EXPORT_SYMBOL_GPL vmlinux 0x8149ea54 ata_timing_find_mode +EXPORT_SYMBOL_GPL vmlinux 0x814e4f42 xen_xenbus_fops +EXPORT_SYMBOL_GPL vmlinux 0x81c6de96 pwm_free +EXPORT_SYMBOL_GPL vmlinux 0x81c973f1 dma_release_channel +EXPORT_SYMBOL_GPL vmlinux 0x81e4d30c hrtimer_cancel +EXPORT_SYMBOL_GPL vmlinux 0x81fcddfa ata_dev_set_feature +EXPORT_SYMBOL_GPL vmlinux 0x821132e1 crypto_alg_lookup +EXPORT_SYMBOL_GPL vmlinux 0x8226642f __gpio_cansleep +EXPORT_SYMBOL_GPL vmlinux 0x8234020b tcp_reno_min_cwnd +EXPORT_SYMBOL_GPL vmlinux 0x823fa2a6 i2c_unlock_adapter +EXPORT_SYMBOL_GPL vmlinux 0x828c038e inet_csk_clone_lock +EXPORT_SYMBOL_GPL vmlinux 0x82939ebd rcu_batches_completed_sched +EXPORT_SYMBOL_GPL vmlinux 0x8297acd5 device_for_each_child +EXPORT_SYMBOL_GPL vmlinux 0x829aeb08 fuse_conn_kill +EXPORT_SYMBOL_GPL vmlinux 0x829b9c02 device_initialize +EXPORT_SYMBOL_GPL vmlinux 0x82d79b51 sysctl_vfs_cache_pressure +EXPORT_SYMBOL_GPL vmlinux 0x82da3bb7 cpufreq_cpu_get +EXPORT_SYMBOL_GPL vmlinux 0x82dbec19 erst_write +EXPORT_SYMBOL_GPL vmlinux 0x82f89884 wakeup_source_prepare +EXPORT_SYMBOL_GPL vmlinux 0x833732fe usb_autopm_get_interface_no_resume +EXPORT_SYMBOL_GPL vmlinux 0x83392305 bsg_register_queue +EXPORT_SYMBOL_GPL vmlinux 0x83618a78 rio_route_get_entry +EXPORT_SYMBOL_GPL vmlinux 0x8384e07b key_type_trusted +EXPORT_SYMBOL_GPL vmlinux 0x838b13e7 ring_buffer_free +EXPORT_SYMBOL_GPL vmlinux 0x83a5ae2e __tracepoint_rpm_resume +EXPORT_SYMBOL_GPL vmlinux 0x83ba1620 devm_of_pwm_get +EXPORT_SYMBOL_GPL vmlinux 0x83c20779 debugfs_create_x8 +EXPORT_SYMBOL_GPL vmlinux 0x83f6b246 ata_port_desc +EXPORT_SYMBOL_GPL vmlinux 0x843c42c7 __module_address +EXPORT_SYMBOL_GPL vmlinux 0x843d70ef acpi_is_root_bridge +EXPORT_SYMBOL_GPL vmlinux 0x8456f58f flush_kthread_worker +EXPORT_SYMBOL_GPL vmlinux 0x845ee0b4 power_supply_unregister +EXPORT_SYMBOL_GPL vmlinux 0x84796acb regmap_can_raw_write +EXPORT_SYMBOL_GPL vmlinux 0x848658b4 skb_scrub_packet +EXPORT_SYMBOL_GPL vmlinux 0x849662f5 usb_hcd_map_urb_for_dma +EXPORT_SYMBOL_GPL vmlinux 0x84967447 devm_clk_register +EXPORT_SYMBOL_GPL vmlinux 0x84c2498c inet6_hash_connect +EXPORT_SYMBOL_GPL vmlinux 0x84e66d1d sata_set_spd +EXPORT_SYMBOL_GPL vmlinux 0x85050965 __irq_alloc_descs +EXPORT_SYMBOL_GPL vmlinux 0x85216155 ezx_pcap_read +EXPORT_SYMBOL_GPL vmlinux 0x852b1122 bus_register +EXPORT_SYMBOL_GPL vmlinux 0x85478a0b inet6_hash_frag +EXPORT_SYMBOL_GPL vmlinux 0x85526eef usb_show_dynids +EXPORT_SYMBOL_GPL vmlinux 0x856629e7 __tracepoint_rpm_return_int +EXPORT_SYMBOL_GPL vmlinux 0x856d4e28 tps65912_reg_write +EXPORT_SYMBOL_GPL vmlinux 0x8574ca6c gpio_request_array +EXPORT_SYMBOL_GPL vmlinux 0x8576dfda hrtimer_get_remaining +EXPORT_SYMBOL_GPL vmlinux 0x8590c745 __mnt_is_readonly +EXPORT_SYMBOL_GPL vmlinux 0x85b4dfbe raw_unhash_sk +EXPORT_SYMBOL_GPL vmlinux 0x85c10896 rcu_batches_completed_bh +EXPORT_SYMBOL_GPL vmlinux 0x85c7f674 ring_buffer_normalize_time_stamp +EXPORT_SYMBOL_GPL vmlinux 0x85d7edfd hpet_set_periodic_freq +EXPORT_SYMBOL_GPL vmlinux 0x85edeca0 dma_buf_vunmap +EXPORT_SYMBOL_GPL vmlinux 0x861adbf4 irq_alloc_domain_generic_chips +EXPORT_SYMBOL_GPL vmlinux 0x862f98a3 xen_create_contiguous_region +EXPORT_SYMBOL_GPL vmlinux 0x86623fd7 notify_remote_via_irq +EXPORT_SYMBOL_GPL vmlinux 0x86670db4 sk_clear_memalloc +EXPORT_SYMBOL_GPL vmlinux 0x8685f528 __rtnl_af_register +EXPORT_SYMBOL_GPL vmlinux 0x86862f80 unregister_ftrace_function +EXPORT_SYMBOL_GPL vmlinux 0x868784cb __symbol_get +EXPORT_SYMBOL_GPL vmlinux 0x86a3ce3d pwm_request_from_chip +EXPORT_SYMBOL_GPL vmlinux 0x86a51007 gnttab_end_foreign_transfer +EXPORT_SYMBOL_GPL vmlinux 0x86aa16e6 klist_iter_init +EXPORT_SYMBOL_GPL vmlinux 0x86ba29f3 rio_add_device +EXPORT_SYMBOL_GPL vmlinux 0x86dabcc9 regulator_get_bypass_regmap +EXPORT_SYMBOL_GPL vmlinux 0x86e1a9ed relay_file_operations +EXPORT_SYMBOL_GPL vmlinux 0x86f0fc30 tty_standard_install +EXPORT_SYMBOL_GPL vmlinux 0x86f6b99d synchronize_rcu_expedited +EXPORT_SYMBOL_GPL vmlinux 0x86f8c910 pcap_set_ts_bits +EXPORT_SYMBOL_GPL vmlinux 0x87027676 usb_hcd_resume_root_hub +EXPORT_SYMBOL_GPL vmlinux 0x870bb7d2 __rio_local_read_config_8 +EXPORT_SYMBOL_GPL vmlinux 0x870e16b7 xen_test_irq_shared +EXPORT_SYMBOL_GPL vmlinux 0x872f0705 usb_disable_autosuspend +EXPORT_SYMBOL_GPL vmlinux 0x873fbaea edac_atomic_assert_error +EXPORT_SYMBOL_GPL vmlinux 0x874637b9 sock_diag_put_meminfo +EXPORT_SYMBOL_GPL vmlinux 0x8748e840 iommu_iova_to_phys +EXPORT_SYMBOL_GPL vmlinux 0x875a72f6 blk_unprep_request +EXPORT_SYMBOL_GPL vmlinux 0x87984b16 __tracepoint_cpu_idle +EXPORT_SYMBOL_GPL vmlinux 0x87b6592a fat_sync_inode +EXPORT_SYMBOL_GPL vmlinux 0x87d403e3 iommu_domain_window_disable +EXPORT_SYMBOL_GPL vmlinux 0x87ea926c ata_scsi_simulate +EXPORT_SYMBOL_GPL vmlinux 0x8810ad5e crypto_xor +EXPORT_SYMBOL_GPL vmlinux 0x8820692a ata_host_resume +EXPORT_SYMBOL_GPL vmlinux 0x8831f8b1 kmap_atomic_pfn +EXPORT_SYMBOL_GPL vmlinux 0x88434d1c usb_hcd_unmap_urb_setup_for_dma +EXPORT_SYMBOL_GPL vmlinux 0x8845915a iommu_attach_device +EXPORT_SYMBOL_GPL vmlinux 0x88514072 pingv6_ops +EXPORT_SYMBOL_GPL vmlinux 0x887dd76c use_mm +EXPORT_SYMBOL_GPL vmlinux 0x88ab6fe3 kgdb_active +EXPORT_SYMBOL_GPL vmlinux 0x88b00aee edac_get_sysfs_subsys +EXPORT_SYMBOL_GPL vmlinux 0x88b0844e btree_init_mempool +EXPORT_SYMBOL_GPL vmlinux 0x88b18d8e crypto_blkcipher_type +EXPORT_SYMBOL_GPL vmlinux 0x88b5647c trace_clock_local +EXPORT_SYMBOL_GPL vmlinux 0x88b8cbbb regulator_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x88d6dff1 clk_get_parent +EXPORT_SYMBOL_GPL vmlinux 0x8904497e xenbus_probe_node +EXPORT_SYMBOL_GPL vmlinux 0x891a5a7f gnttab_max_grant_frames +EXPORT_SYMBOL_GPL vmlinux 0x8924eb1e rcu_force_quiescent_state +EXPORT_SYMBOL_GPL vmlinux 0x89485687 iommu_group_put +EXPORT_SYMBOL_GPL vmlinux 0x89502f0c gnttab_subpage_grants_available +EXPORT_SYMBOL_GPL vmlinux 0x8956aeae apei_exec_ctx_init +EXPORT_SYMBOL_GPL vmlinux 0x8986985b trace_event_buffer_lock_reserve +EXPORT_SYMBOL_GPL vmlinux 0x898aa97a register_acpi_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x899ffdd1 pci_user_write_config_dword +EXPORT_SYMBOL_GPL vmlinux 0x89a43a9b bd_link_disk_holder +EXPORT_SYMBOL_GPL vmlinux 0x89b16f63 scsi_target_unblock +EXPORT_SYMBOL_GPL vmlinux 0x89bbafc6 usb_register_notify +EXPORT_SYMBOL_GPL vmlinux 0x89bef237 sec_reg_update +EXPORT_SYMBOL_GPL vmlinux 0x89ca75ee crypto_init_spawn +EXPORT_SYMBOL_GPL vmlinux 0x89ce36fa wm8350_reg_unlock +EXPORT_SYMBOL_GPL vmlinux 0x89d75dc0 thermal_generate_netlink_event +EXPORT_SYMBOL_GPL vmlinux 0x89f3a399 fuse_sync_release +EXPORT_SYMBOL_GPL vmlinux 0x8a039264 dev_forward_skb +EXPORT_SYMBOL_GPL vmlinux 0x8a04b9fe tracepoint_iter_reset +EXPORT_SYMBOL_GPL vmlinux 0x8a141af5 regcache_cache_only +EXPORT_SYMBOL_GPL vmlinux 0x8a16b1b4 handle_simple_irq +EXPORT_SYMBOL_GPL vmlinux 0x8a51d88c tcp_twsk_destructor +EXPORT_SYMBOL_GPL vmlinux 0x8a59713f regulator_get_voltage_sel_regmap +EXPORT_SYMBOL_GPL vmlinux 0x8a5c7a80 regulator_enable +EXPORT_SYMBOL_GPL vmlinux 0x8a6fa828 spi_master_resume +EXPORT_SYMBOL_GPL vmlinux 0x8a78989f irq_from_evtchn +EXPORT_SYMBOL_GPL vmlinux 0x8a78aa63 pciserial_init_ports +EXPORT_SYMBOL_GPL vmlinux 0x8a7cb9c4 platform_thermal_package_rate_control +EXPORT_SYMBOL_GPL vmlinux 0x8a8660aa spi_bus_lock +EXPORT_SYMBOL_GPL vmlinux 0x8abacc47 get_max_files +EXPORT_SYMBOL_GPL vmlinux 0x8abba76b virtqueue_notify +EXPORT_SYMBOL_GPL vmlinux 0x8acd6091 key_type_asymmetric +EXPORT_SYMBOL_GPL vmlinux 0x8afb8c52 crypto_rng_type +EXPORT_SYMBOL_GPL vmlinux 0x8b04668e bind_interdomain_evtchn_to_irqhandler +EXPORT_SYMBOL_GPL vmlinux 0x8b0630ea iommu_map +EXPORT_SYMBOL_GPL vmlinux 0x8b21fb80 __udp6_lib_lookup +EXPORT_SYMBOL_GPL vmlinux 0x8b4fee1f irq_domain_xlate_onetwocell +EXPORT_SYMBOL_GPL vmlinux 0x8b66f9e0 xen_platform_pci_unplug +EXPORT_SYMBOL_GPL vmlinux 0x8b752ac1 ata_tf_to_fis +EXPORT_SYMBOL_GPL vmlinux 0x8baffd31 bd_unlink_disk_holder +EXPORT_SYMBOL_GPL vmlinux 0x8bba6dca ata_cable_sata +EXPORT_SYMBOL_GPL vmlinux 0x8bcf7f3e rio_mport_read_config_16 +EXPORT_SYMBOL_GPL vmlinux 0x8bf86a32 register_net_sysctl +EXPORT_SYMBOL_GPL vmlinux 0x8c03d20c destroy_workqueue +EXPORT_SYMBOL_GPL vmlinux 0x8c06a108 xenbus_transaction_start +EXPORT_SYMBOL_GPL vmlinux 0x8c22250d raw_seq_stop +EXPORT_SYMBOL_GPL vmlinux 0x8c3ce7e2 da9052_adc_manual_read +EXPORT_SYMBOL_GPL vmlinux 0x8c3d8752 ata_cable_40wire +EXPORT_SYMBOL_GPL vmlinux 0x8c488ae8 wm5110_irq +EXPORT_SYMBOL_GPL vmlinux 0x8c48cc17 inet_csk_get_port +EXPORT_SYMBOL_GPL vmlinux 0x8c4b7d55 __efivar_entry_iter +EXPORT_SYMBOL_GPL vmlinux 0x8c4db1b5 usb_kill_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0x8cc4646a efivar_entry_find +EXPORT_SYMBOL_GPL vmlinux 0x8cd9f935 setup_APIC_eilvt +EXPORT_SYMBOL_GPL vmlinux 0x8d152954 mmput +EXPORT_SYMBOL_GPL vmlinux 0x8d22bb58 iommu_group_alloc +EXPORT_SYMBOL_GPL vmlinux 0x8d2ef4d5 devres_find +EXPORT_SYMBOL_GPL vmlinux 0x8d44bfe6 pwm_request +EXPORT_SYMBOL_GPL vmlinux 0x8d4ad810 rio_mport_write_config_16 +EXPORT_SYMBOL_GPL vmlinux 0x8d4b0aa1 xenbus_read_otherend_details +EXPORT_SYMBOL_GPL vmlinux 0x8d7724c0 __class_create +EXPORT_SYMBOL_GPL vmlinux 0x8d846ca0 mddev_resume +EXPORT_SYMBOL_GPL vmlinux 0x8d950772 pci_configure_slot +EXPORT_SYMBOL_GPL vmlinux 0x8d965eea ip6_sk_update_pmtu +EXPORT_SYMBOL_GPL vmlinux 0x8db4712a sdio_claim_irq +EXPORT_SYMBOL_GPL vmlinux 0x8dcf4de3 acpi_dev_pm_attach +EXPORT_SYMBOL_GPL vmlinux 0x8de5d8c4 skb_morph +EXPORT_SYMBOL_GPL vmlinux 0x8e050d6b wm8997_patch +EXPORT_SYMBOL_GPL vmlinux 0x8e170a9f remove_irq +EXPORT_SYMBOL_GPL vmlinux 0x8e1e9e2a dm_get_rq_mapinfo +EXPORT_SYMBOL_GPL vmlinux 0x8e558064 pcie_port_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x8e5a77d2 tc3589x_block_read +EXPORT_SYMBOL_GPL vmlinux 0x8e689bf1 tpm_bios_log_setup +EXPORT_SYMBOL_GPL vmlinux 0x8e73916a led_classdev_register +EXPORT_SYMBOL_GPL vmlinux 0x8ea960cb blocking_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0x8edcc167 part_round_stats +EXPORT_SYMBOL_GPL vmlinux 0x8edfb574 injectm +EXPORT_SYMBOL_GPL vmlinux 0x8effebd3 pm_qos_update_request +EXPORT_SYMBOL_GPL vmlinux 0x8f0779b9 ata_pci_sff_activate_host +EXPORT_SYMBOL_GPL vmlinux 0x8f200d72 blkio_subsys +EXPORT_SYMBOL_GPL vmlinux 0x8f39e299 xen_register_device_domain_owner +EXPORT_SYMBOL_GPL vmlinux 0x8f6cee77 __round_jiffies_relative +EXPORT_SYMBOL_GPL vmlinux 0x8f9a4e09 vga_default_device +EXPORT_SYMBOL_GPL vmlinux 0x8fb576b8 usb_scuttle_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0x8fc00167 ata_sff_dev_select +EXPORT_SYMBOL_GPL vmlinux 0x8fc34ff1 scsi_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x8fd134a5 inet_putpeer +EXPORT_SYMBOL_GPL vmlinux 0x8fd4a05e ip6_local_out +EXPORT_SYMBOL_GPL vmlinux 0x8fe106ea rtnl_link_unregister +EXPORT_SYMBOL_GPL vmlinux 0x8fe4a461 virtqueue_kick_prepare +EXPORT_SYMBOL_GPL vmlinux 0x9009602a acpi_bus_get_ejd +EXPORT_SYMBOL_GPL vmlinux 0x902410ca dma_buf_vmap +EXPORT_SYMBOL_GPL vmlinux 0x902a410b crypto_register_instance +EXPORT_SYMBOL_GPL vmlinux 0x9053c05f simple_attr_release +EXPORT_SYMBOL_GPL vmlinux 0x9062c322 ring_buffer_consume +EXPORT_SYMBOL_GPL vmlinux 0x906bd2e0 lp8788_read_byte +EXPORT_SYMBOL_GPL vmlinux 0x90705b7f syscon_node_to_regmap +EXPORT_SYMBOL_GPL vmlinux 0x9092cf15 ata_sff_busy_sleep +EXPORT_SYMBOL_GPL vmlinux 0x90982e37 ata_sff_lost_interrupt +EXPORT_SYMBOL_GPL vmlinux 0x90991d6a perf_event_release_kernel +EXPORT_SYMBOL_GPL vmlinux 0x90a1004a crypto_has_alg +EXPORT_SYMBOL_GPL vmlinux 0x90c84a29 pm_relax +EXPORT_SYMBOL_GPL vmlinux 0x90dddd9a usb_unlocked_disable_lpm +EXPORT_SYMBOL_GPL vmlinux 0x90de0452 platform_thermal_package_notify +EXPORT_SYMBOL_GPL vmlinux 0x918ad429 ring_buffer_lock_reserve +EXPORT_SYMBOL_GPL vmlinux 0x918d2243 blk_add_driver_data +EXPORT_SYMBOL_GPL vmlinux 0x91c6e5b0 pcap_to_irq +EXPORT_SYMBOL_GPL vmlinux 0x91c80f15 ata_std_bios_param +EXPORT_SYMBOL_GPL vmlinux 0x91e09d0d __pm_runtime_use_autosuspend +EXPORT_SYMBOL_GPL vmlinux 0x91eda5c3 extcon_set_cable_state +EXPORT_SYMBOL_GPL vmlinux 0x9216f8e7 usb_get_urb +EXPORT_SYMBOL_GPL vmlinux 0x9224017e led_trigger_set +EXPORT_SYMBOL_GPL vmlinux 0x9225c507 cpufreq_cooling_unregister +EXPORT_SYMBOL_GPL vmlinux 0x922a99c5 md_is_badblock +EXPORT_SYMBOL_GPL vmlinux 0x924c46f8 zs_unmap_object +EXPORT_SYMBOL_GPL vmlinux 0x92504287 acpi_get_pci_dev +EXPORT_SYMBOL_GPL vmlinux 0x929c0965 user_instantiate +EXPORT_SYMBOL_GPL vmlinux 0x929c467f btree_get_prev +EXPORT_SYMBOL_GPL vmlinux 0x92b57248 flush_work +EXPORT_SYMBOL_GPL vmlinux 0x92d31cfb fixed_phy_add +EXPORT_SYMBOL_GPL vmlinux 0x92e2fbc5 i2c_new_device +EXPORT_SYMBOL_GPL vmlinux 0x92e3e38b sock_diag_unregister_inet_compat +EXPORT_SYMBOL_GPL vmlinux 0x92eb3685 pid_nr_ns +EXPORT_SYMBOL_GPL vmlinux 0x9312d80e evtchn_put +EXPORT_SYMBOL_GPL vmlinux 0x9324e78e acpi_dev_resource_memory +EXPORT_SYMBOL_GPL vmlinux 0x936a8e9a pingv6_prot +EXPORT_SYMBOL_GPL vmlinux 0x937b2b3a pci_enable_ats +EXPORT_SYMBOL_GPL vmlinux 0x938af48e bus_set_iommu +EXPORT_SYMBOL_GPL vmlinux 0x93af3e5a od_register_powersave_bias_handler +EXPORT_SYMBOL_GPL vmlinux 0x93d2422d snmp_mib_free +EXPORT_SYMBOL_GPL vmlinux 0x941f2aaa eventfd_ctx_put +EXPORT_SYMBOL_GPL vmlinux 0x943fc708 xen_setup_shutdown_event +EXPORT_SYMBOL_GPL vmlinux 0x946d4081 sata_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x9478632b shash_ahash_digest +EXPORT_SYMBOL_GPL vmlinux 0x94965f59 iommu_detach_device +EXPORT_SYMBOL_GPL vmlinux 0x949f709d device_pm_wait_for_dev +EXPORT_SYMBOL_GPL vmlinux 0x94a328e1 __rio_local_write_config_32 +EXPORT_SYMBOL_GPL vmlinux 0x94a68723 ata_scsi_slave_destroy +EXPORT_SYMBOL_GPL vmlinux 0x94abb745 sprint_oid +EXPORT_SYMBOL_GPL vmlinux 0x94c318be apei_exec_collect_resources +EXPORT_SYMBOL_GPL vmlinux 0x94e6c2c7 pci_user_read_config_dword +EXPORT_SYMBOL_GPL vmlinux 0x94ef4d05 cpci_hp_stop +EXPORT_SYMBOL_GPL vmlinux 0x950c35e4 clockevents_config_and_register +EXPORT_SYMBOL_GPL vmlinux 0x952664c5 do_exit +EXPORT_SYMBOL_GPL vmlinux 0x95457df0 bus_for_each_dev +EXPORT_SYMBOL_GPL vmlinux 0x955327b8 ablkcipher_walk_phys +EXPORT_SYMBOL_GPL vmlinux 0x95589c70 xfrm_local_error +EXPORT_SYMBOL_GPL vmlinux 0x955b0e2e kthread_worker_fn +EXPORT_SYMBOL_GPL vmlinux 0x956a91ba gpio_get_value_cansleep +EXPORT_SYMBOL_GPL vmlinux 0x957850ed class_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x958df3ac zs_free +EXPORT_SYMBOL_GPL vmlinux 0x95ac7c55 tty_ldisc_ref_wait +EXPORT_SYMBOL_GPL vmlinux 0x95bc9078 btree_free +EXPORT_SYMBOL_GPL vmlinux 0x95c62607 virtqueue_add_inbuf +EXPORT_SYMBOL_GPL vmlinux 0x95cefdab dma_buf_unmap_attachment +EXPORT_SYMBOL_GPL vmlinux 0x96085d94 unix_peer_get +EXPORT_SYMBOL_GPL vmlinux 0x9621849f ring_buffer_event_data +EXPORT_SYMBOL_GPL vmlinux 0x962c2733 wm831x_device_shutdown +EXPORT_SYMBOL_GPL vmlinux 0x96430fa3 class_create_file +EXPORT_SYMBOL_GPL vmlinux 0x964add15 xenbus_scanf +EXPORT_SYMBOL_GPL vmlinux 0x96554810 register_keyboard_notifier +EXPORT_SYMBOL_GPL vmlinux 0x96a22790 vmcore_cleanup +EXPORT_SYMBOL_GPL vmlinux 0x96b1993d tty_port_tty_wakeup +EXPORT_SYMBOL_GPL vmlinux 0x96e64e94 __blk_put_request +EXPORT_SYMBOL_GPL vmlinux 0x96e762ba md_stop_writes +EXPORT_SYMBOL_GPL vmlinux 0x97199e17 cpufreq_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x973800ab adp5520_clr_bits +EXPORT_SYMBOL_GPL vmlinux 0x97495395 extcon_dev_register +EXPORT_SYMBOL_GPL vmlinux 0x976043d7 security_inode_create +EXPORT_SYMBOL_GPL vmlinux 0x9775d77f tty_init_termios +EXPORT_SYMBOL_GPL vmlinux 0x97813baf regcache_sync_region +EXPORT_SYMBOL_GPL vmlinux 0x97a3ec56 ata_sff_queue_delayed_work +EXPORT_SYMBOL_GPL vmlinux 0x97b093dd btree_update +EXPORT_SYMBOL_GPL vmlinux 0x97b4fc4b unregister_virtio_driver +EXPORT_SYMBOL_GPL vmlinux 0x97beaaeb regulator_list_voltage_linear +EXPORT_SYMBOL_GPL vmlinux 0x97bf9e72 fuse_request_send_background +EXPORT_SYMBOL_GPL vmlinux 0x97de2b83 debug_locks_silent +EXPORT_SYMBOL_GPL vmlinux 0x980e5009 usb_unlink_urb +EXPORT_SYMBOL_GPL vmlinux 0x9833bc0c hvc_kick +EXPORT_SYMBOL_GPL vmlinux 0x9845d9b3 scsi_flush_work +EXPORT_SYMBOL_GPL vmlinux 0x98503a63 mpi_alloc +EXPORT_SYMBOL_GPL vmlinux 0x9850f2da ata_sff_hsm_move +EXPORT_SYMBOL_GPL vmlinux 0x9879932b crypto_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x987b506c ping_getfrag +EXPORT_SYMBOL_GPL vmlinux 0x98ac5570 nfq_ct_hook +EXPORT_SYMBOL_GPL vmlinux 0x98cc564a regulator_set_voltage +EXPORT_SYMBOL_GPL vmlinux 0x98dc344c rio_unlock_device +EXPORT_SYMBOL_GPL vmlinux 0x9924c496 __usb_get_extra_descriptor +EXPORT_SYMBOL_GPL vmlinux 0x995d1071 prof_on +EXPORT_SYMBOL_GPL vmlinux 0x99648652 __inet_twsk_hashdance +EXPORT_SYMBOL_GPL vmlinux 0x99965954 srcu_init_notifier_head +EXPORT_SYMBOL_GPL vmlinux 0x99a43a17 tpm_show_caps +EXPORT_SYMBOL_GPL vmlinux 0x99a7f38d usb_hcd_unmap_urb_for_dma +EXPORT_SYMBOL_GPL vmlinux 0x99bdfc5d dma_buf_detach +EXPORT_SYMBOL_GPL vmlinux 0x99c0f352 gnttab_unmap_refs +EXPORT_SYMBOL_GPL vmlinux 0x99c9de72 fat_getattr +EXPORT_SYMBOL_GPL vmlinux 0x99c9ed3f driver_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x99d33898 skb_pull_rcsum +EXPORT_SYMBOL_GPL vmlinux 0x99dfb317 pci_cfg_access_unlock +EXPORT_SYMBOL_GPL vmlinux 0x99edde30 mddev_init +EXPORT_SYMBOL_GPL vmlinux 0x9a0f29c6 aead_geniv_free +EXPORT_SYMBOL_GPL vmlinux 0x9a11a0fc crypto_attr_alg_name +EXPORT_SYMBOL_GPL vmlinux 0x9a440dbd ip_build_and_send_pkt +EXPORT_SYMBOL_GPL vmlinux 0x9a627a11 dpm_for_each_dev +EXPORT_SYMBOL_GPL vmlinux 0x9a726a8b ata_host_suspend +EXPORT_SYMBOL_GPL vmlinux 0x9a89dbf7 lpddr2_jedec_min_tck +EXPORT_SYMBOL_GPL vmlinux 0x9a8f56b8 blkcipher_walk_virt +EXPORT_SYMBOL_GPL vmlinux 0x9a9824ef btree_lookup +EXPORT_SYMBOL_GPL vmlinux 0x9ac11b74 suspend_set_ops +EXPORT_SYMBOL_GPL vmlinux 0x9aca444b get_monotonic_boottime +EXPORT_SYMBOL_GPL vmlinux 0x9ad8d263 pci_enable_pri +EXPORT_SYMBOL_GPL vmlinux 0x9aeacb87 ring_buffer_iter_empty +EXPORT_SYMBOL_GPL vmlinux 0x9b279511 unregister_acpi_bus_notifier +EXPORT_SYMBOL_GPL vmlinux 0x9b36e409 fuse_dev_release +EXPORT_SYMBOL_GPL vmlinux 0x9b3ef580 device_set_wakeup_capable +EXPORT_SYMBOL_GPL vmlinux 0x9b650062 wm5102_spi_regmap +EXPORT_SYMBOL_GPL vmlinux 0x9b759245 fuse_get_req_for_background +EXPORT_SYMBOL_GPL vmlinux 0x9b847ec8 ping_bind +EXPORT_SYMBOL_GPL vmlinux 0x9b855e69 blkg_rwstat_recursive_sum +EXPORT_SYMBOL_GPL vmlinux 0x9b8d9503 hv_register_vmbus_handler +EXPORT_SYMBOL_GPL vmlinux 0x9b9f3648 pcibios_scan_specific_bus +EXPORT_SYMBOL_GPL vmlinux 0x9babf390 wakeup_source_create +EXPORT_SYMBOL_GPL vmlinux 0x9bb2f445 usb_create_shared_hcd +EXPORT_SYMBOL_GPL vmlinux 0x9bbb0ae8 pci_sriov_set_totalvfs +EXPORT_SYMBOL_GPL vmlinux 0x9bd72b78 apei_write +EXPORT_SYMBOL_GPL vmlinux 0x9bece81b mpi_cmp_ui +EXPORT_SYMBOL_GPL vmlinux 0x9bf6501f crypto_shash_final +EXPORT_SYMBOL_GPL vmlinux 0x9c0efbcd css_id +EXPORT_SYMBOL_GPL vmlinux 0x9c122243 mnt_clone_write +EXPORT_SYMBOL_GPL vmlinux 0x9c2e4b66 acpi_unregister_gsi +EXPORT_SYMBOL_GPL vmlinux 0x9c5e90d2 md_run +EXPORT_SYMBOL_GPL vmlinux 0x9c85774a crypto_lookup_template +EXPORT_SYMBOL_GPL vmlinux 0x9c860aa2 usb_autopm_get_interface +EXPORT_SYMBOL_GPL vmlinux 0x9c8a0865 ohci_suspend +EXPORT_SYMBOL_GPL vmlinux 0x9c8c1b51 arizona_set_irq_wake +EXPORT_SYMBOL_GPL vmlinux 0x9c90fffe da9052_disable_irq +EXPORT_SYMBOL_GPL vmlinux 0x9c9af7c8 regmap_irq_get_domain +EXPORT_SYMBOL_GPL vmlinux 0x9cc4f70a register_pm_notifier +EXPORT_SYMBOL_GPL vmlinux 0x9cd0184d init_srcu_struct +EXPORT_SYMBOL_GPL vmlinux 0x9ce200ca attribute_container_find_class_device +EXPORT_SYMBOL_GPL vmlinux 0x9cec5694 pm_generic_suspend +EXPORT_SYMBOL_GPL vmlinux 0x9ced55a3 regmap_get_val_bytes +EXPORT_SYMBOL_GPL vmlinux 0x9d030b99 stop_machine +EXPORT_SYMBOL_GPL vmlinux 0x9d06688b register_xenbus_watch +EXPORT_SYMBOL_GPL vmlinux 0x9d0ca2a4 btree_merge +EXPORT_SYMBOL_GPL vmlinux 0x9d1fd0f3 pci_disable_pasid +EXPORT_SYMBOL_GPL vmlinux 0x9d33891e xenbus_dev_resume +EXPORT_SYMBOL_GPL vmlinux 0x9d35b04b cgroup_next_sibling +EXPORT_SYMBOL_GPL vmlinux 0x9d3850e1 gnttab_alloc_grant_references +EXPORT_SYMBOL_GPL vmlinux 0x9d3c4dcc ohci_restart +EXPORT_SYMBOL_GPL vmlinux 0x9d452106 dev_pm_qos_add_notifier +EXPORT_SYMBOL_GPL vmlinux 0x9d5f166d inet6_sk_rebuild_header +EXPORT_SYMBOL_GPL vmlinux 0x9d62c898 unregister_kprobe +EXPORT_SYMBOL_GPL vmlinux 0x9d8331c0 ring_buffer_read_page +EXPORT_SYMBOL_GPL vmlinux 0x9d87ccba sdio_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x9d8f9bb6 mnt_drop_write +EXPORT_SYMBOL_GPL vmlinux 0x9d94267b rtnl_af_unregister +EXPORT_SYMBOL_GPL vmlinux 0x9daf2111 acpi_pci_check_ejectable +EXPORT_SYMBOL_GPL vmlinux 0x9db865c1 device_store_ulong +EXPORT_SYMBOL_GPL vmlinux 0x9dcfaf53 perf_trace_buf_prepare +EXPORT_SYMBOL_GPL vmlinux 0x9deadc39 led_trigger_rename_static +EXPORT_SYMBOL_GPL vmlinux 0x9dec1761 skcipher_geniv_exit +EXPORT_SYMBOL_GPL vmlinux 0x9df60408 dm_suspended +EXPORT_SYMBOL_GPL vmlinux 0x9dfdf722 gpio_free_array +EXPORT_SYMBOL_GPL vmlinux 0x9e06cb6c iommu_detach_group +EXPORT_SYMBOL_GPL vmlinux 0x9e22d71c pm_generic_suspend_late +EXPORT_SYMBOL_GPL vmlinux 0x9e58faab of_pwm_xlate_with_flags +EXPORT_SYMBOL_GPL vmlinux 0x9e7f2e2d inet6_lookup_listener +EXPORT_SYMBOL_GPL vmlinux 0x9e8526a5 uart_console_write +EXPORT_SYMBOL_GPL vmlinux 0x9ea22986 crypto_alloc_instance +EXPORT_SYMBOL_GPL vmlinux 0x9ea2b6a0 ping_init_sock +EXPORT_SYMBOL_GPL vmlinux 0x9ebff902 start_thread +EXPORT_SYMBOL_GPL vmlinux 0x9ed554b3 unregister_keyboard_notifier +EXPORT_SYMBOL_GPL vmlinux 0x9ed7f7f6 rtc_set_mmss +EXPORT_SYMBOL_GPL vmlinux 0x9ed94def sec_reg_write +EXPORT_SYMBOL_GPL vmlinux 0x9f0664bf dm_get_queue_limits +EXPORT_SYMBOL_GPL vmlinux 0x9f26aa65 pci_hp_add_bridge +EXPORT_SYMBOL_GPL vmlinux 0x9f2be00d xfrm_audit_state_icvfail +EXPORT_SYMBOL_GPL vmlinux 0x9f8a6382 crypto_shash_update +EXPORT_SYMBOL_GPL vmlinux 0x9fce80db fb_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x9fe6c217 rtnl_put_cacheinfo +EXPORT_SYMBOL_GPL vmlinux 0x9fe939e1 mpi_powm +EXPORT_SYMBOL_GPL vmlinux 0xa00b70c2 sock_prot_inuse_add +EXPORT_SYMBOL_GPL vmlinux 0xa0206376 irq_setup_alt_chip +EXPORT_SYMBOL_GPL vmlinux 0xa0208e02 irq_set_affinity_hint +EXPORT_SYMBOL_GPL vmlinux 0xa0311466 usb_autopm_get_interface_async +EXPORT_SYMBOL_GPL vmlinux 0xa03bbf06 crypto_register_ahash +EXPORT_SYMBOL_GPL vmlinux 0xa040db36 find_module +EXPORT_SYMBOL_GPL vmlinux 0xa04a7eb0 tps6586x_reads +EXPORT_SYMBOL_GPL vmlinux 0xa04d70ca fsstack_copy_inode_size +EXPORT_SYMBOL_GPL vmlinux 0xa0635710 devm_clk_unregister +EXPORT_SYMBOL_GPL vmlinux 0xa0739ae8 dma_get_required_mask +EXPORT_SYMBOL_GPL vmlinux 0xa0831caa apply_to_page_range +EXPORT_SYMBOL_GPL vmlinux 0xa0a1a24d virtqueue_add_sgs +EXPORT_SYMBOL_GPL vmlinux 0xa0c71dac spi_populate_sync_msg +EXPORT_SYMBOL_GPL vmlinux 0xa0de5a07 ata_port_wait_eh +EXPORT_SYMBOL_GPL vmlinux 0xa0e15817 xenbus_dev_error +EXPORT_SYMBOL_GPL vmlinux 0xa0f54941 usb_autopm_put_interface +EXPORT_SYMBOL_GPL vmlinux 0xa11216be xen_store_domain_type +EXPORT_SYMBOL_GPL vmlinux 0xa11a9d94 usb_hcd_pci_shutdown +EXPORT_SYMBOL_GPL vmlinux 0xa144e1bb register_kretprobe +EXPORT_SYMBOL_GPL vmlinux 0xa156a1f2 erst_get_record_id_end +EXPORT_SYMBOL_GPL vmlinux 0xa15ad9e4 iommu_domain_window_enable +EXPORT_SYMBOL_GPL vmlinux 0xa180a470 subsys_system_register +EXPORT_SYMBOL_GPL vmlinux 0xa19833ed pci_set_cacheline_size +EXPORT_SYMBOL_GPL vmlinux 0xa1a3cca6 register_ftrace_event +EXPORT_SYMBOL_GPL vmlinux 0xa1bd7822 __tracepoint_block_bio_complete +EXPORT_SYMBOL_GPL vmlinux 0xa1e3f44a gpiochip_remove +EXPORT_SYMBOL_GPL vmlinux 0xa20f1adc split_page +EXPORT_SYMBOL_GPL vmlinux 0xa214ed16 raw_seq_next +EXPORT_SYMBOL_GPL vmlinux 0xa2281044 tpm_calc_ordinal_duration +EXPORT_SYMBOL_GPL vmlinux 0xa22ba9b6 irq_set_default_host +EXPORT_SYMBOL_GPL vmlinux 0xa23b392b usb_sg_init +EXPORT_SYMBOL_GPL vmlinux 0xa2580a2c blk_queue_flush +EXPORT_SYMBOL_GPL vmlinux 0xa26d9b4f workqueue_congested +EXPORT_SYMBOL_GPL vmlinux 0xa270567f i2c_new_probed_device +EXPORT_SYMBOL_GPL vmlinux 0xa28b198d file_ra_state_init +EXPORT_SYMBOL_GPL vmlinux 0xa29d0086 pci_user_read_config_word +EXPORT_SYMBOL_GPL vmlinux 0xa29e4141 inet_hash_connect +EXPORT_SYMBOL_GPL vmlinux 0xa2b0dd64 md_trim_bio +EXPORT_SYMBOL_GPL vmlinux 0xa2b4ed60 cgroup_next_descendant_post +EXPORT_SYMBOL_GPL vmlinux 0xa2be00e9 regmap_bulk_read +EXPORT_SYMBOL_GPL vmlinux 0xa2bfd45b crypto_alloc_shash +EXPORT_SYMBOL_GPL vmlinux 0xa2c46da9 vfs_kern_mount +EXPORT_SYMBOL_GPL vmlinux 0xa2e67f08 acpi_bus_generate_proc_event4 +EXPORT_SYMBOL_GPL vmlinux 0xa3003473 led_trigger_register +EXPORT_SYMBOL_GPL vmlinux 0xa32270cf wm8400_block_read +EXPORT_SYMBOL_GPL vmlinux 0xa353fffc xenbus_rm +EXPORT_SYMBOL_GPL vmlinux 0xa38602cd drain_workqueue +EXPORT_SYMBOL_GPL vmlinux 0xa3890cee rio_request_outb_dbell +EXPORT_SYMBOL_GPL vmlinux 0xa389a49a profile_event_register +EXPORT_SYMBOL_GPL vmlinux 0xa399f24a driver_attach +EXPORT_SYMBOL_GPL vmlinux 0xa3a04602 btree_geo64 +EXPORT_SYMBOL_GPL vmlinux 0xa3a4dc19 device_show_ulong +EXPORT_SYMBOL_GPL vmlinux 0xa3b585f5 acpi_bus_trim +EXPORT_SYMBOL_GPL vmlinux 0xa3b94793 PageHuge +EXPORT_SYMBOL_GPL vmlinux 0xa3bac75c regcache_drop_region +EXPORT_SYMBOL_GPL vmlinux 0xa3bb2017 ata_sff_dma_pause +EXPORT_SYMBOL_GPL vmlinux 0xa3c15a17 fat_time_unix2fat +EXPORT_SYMBOL_GPL vmlinux 0xa3e7c113 ring_buffer_iter_peek +EXPORT_SYMBOL_GPL vmlinux 0xa40c60b7 wm8350_block_write +EXPORT_SYMBOL_GPL vmlinux 0xa444bcd2 fuse_get_req +EXPORT_SYMBOL_GPL vmlinux 0xa44bab54 ata_bmdma32_port_ops +EXPORT_SYMBOL_GPL vmlinux 0xa452c297 hpet_mask_rtc_irq_bit +EXPORT_SYMBOL_GPL vmlinux 0xa452f2a4 xen_pirq_from_irq +EXPORT_SYMBOL_GPL vmlinux 0xa466de38 acpi_processor_ffh_cstate_enter +EXPORT_SYMBOL_GPL vmlinux 0xa46cb978 devm_usb_put_phy +EXPORT_SYMBOL_GPL vmlinux 0xa48196c8 kdb_poll_idx +EXPORT_SYMBOL_GPL vmlinux 0xa4b3affa led_classdev_suspend +EXPORT_SYMBOL_GPL vmlinux 0xa4d58669 math_state_restore +EXPORT_SYMBOL_GPL vmlinux 0xa4f7f776 pci_reset_function +EXPORT_SYMBOL_GPL vmlinux 0xa50d5ae1 unuse_mm +EXPORT_SYMBOL_GPL vmlinux 0xa50d8bdf invalidate_inode_pages2_range +EXPORT_SYMBOL_GPL vmlinux 0xa54dbdd7 irq_generic_chip_ops +EXPORT_SYMBOL_GPL vmlinux 0xa588c54c dev_attr_em_message +EXPORT_SYMBOL_GPL vmlinux 0xa5bb68e5 blk_insert_cloned_request +EXPORT_SYMBOL_GPL vmlinux 0xa5efbf4c async_synchronize_full +EXPORT_SYMBOL_GPL vmlinux 0xa5f7b343 pci_find_ext_capability +EXPORT_SYMBOL_GPL vmlinux 0xa616fd22 tty_register_device_attr +EXPORT_SYMBOL_GPL vmlinux 0xa61b1477 tracepoint_iter_start +EXPORT_SYMBOL_GPL vmlinux 0xa61c1fb1 rtc_irq_register +EXPORT_SYMBOL_GPL vmlinux 0xa625110d kmsg_dump_rewind +EXPORT_SYMBOL_GPL vmlinux 0xa62892c6 efivar_sysfs_list +EXPORT_SYMBOL_GPL vmlinux 0xa62b2e07 ata_dev_next +EXPORT_SYMBOL_GPL vmlinux 0xa652e086 seq_open_net +EXPORT_SYMBOL_GPL vmlinux 0xa68e2d3d devm_acpi_dma_controller_register +EXPORT_SYMBOL_GPL vmlinux 0xa6a0a273 max77693_write_reg +EXPORT_SYMBOL_GPL vmlinux 0xa6ae5c23 sysfs_remove_group +EXPORT_SYMBOL_GPL vmlinux 0xa6b21ef2 dpm_suspend_end +EXPORT_SYMBOL_GPL vmlinux 0xa6e1a69d kick_all_cpus_sync +EXPORT_SYMBOL_GPL vmlinux 0xa6f5a1ba pci_store_saved_state +EXPORT_SYMBOL_GPL vmlinux 0xa724257f init_uts_ns +EXPORT_SYMBOL_GPL vmlinux 0xa73c6b86 regmap_init_spi +EXPORT_SYMBOL_GPL vmlinux 0xa74c542a device_schedule_callback_owner +EXPORT_SYMBOL_GPL vmlinux 0xa75312bc call_rcu_sched +EXPORT_SYMBOL_GPL vmlinux 0xa759b3e0 rio_mport_get_efb +EXPORT_SYMBOL_GPL vmlinux 0xa75d506a cgroup_taskset_next +EXPORT_SYMBOL_GPL vmlinux 0xa7aae053 mm_kobj +EXPORT_SYMBOL_GPL vmlinux 0xa7e20df3 clk_mux_ops +EXPORT_SYMBOL_GPL vmlinux 0xa7f92105 add_uevent_var +EXPORT_SYMBOL_GPL vmlinux 0xa801b359 efivar_entry_iter_begin +EXPORT_SYMBOL_GPL vmlinux 0xa81be352 elv_register +EXPORT_SYMBOL_GPL vmlinux 0xa8294115 spi_setup +EXPORT_SYMBOL_GPL vmlinux 0xa851973a raw_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xa85b49c0 posix_timers_register_clock +EXPORT_SYMBOL_GPL vmlinux 0xa8618ab5 add_page_wait_queue +EXPORT_SYMBOL_GPL vmlinux 0xa87de165 balloon_devinfo_alloc +EXPORT_SYMBOL_GPL vmlinux 0xa8b82a53 xen_destroy_contiguous_region +EXPORT_SYMBOL_GPL vmlinux 0xa8c2041f ata_cable_unknown +EXPORT_SYMBOL_GPL vmlinux 0xa8f59416 gpio_direction_output +EXPORT_SYMBOL_GPL vmlinux 0xa8f85471 perf_tp_event +EXPORT_SYMBOL_GPL vmlinux 0xa909db84 input_class +EXPORT_SYMBOL_GPL vmlinux 0xa9126bff hpet_set_rtc_irq_bit +EXPORT_SYMBOL_GPL vmlinux 0xa96116ca pci_disable_pri +EXPORT_SYMBOL_GPL vmlinux 0xa996155b iommu_attach_group +EXPORT_SYMBOL_GPL vmlinux 0xa99f080f rtc_set_time +EXPORT_SYMBOL_GPL vmlinux 0xa9a82042 gnttab_trans_grants_available +EXPORT_SYMBOL_GPL vmlinux 0xa9bfd9a9 xenbus_alloc_evtchn +EXPORT_SYMBOL_GPL vmlinux 0xa9c7e063 disk_get_part +EXPORT_SYMBOL_GPL vmlinux 0xa9e18049 task_handoff_unregister +EXPORT_SYMBOL_GPL vmlinux 0xa9fc3f54 gnttab_grant_foreign_access_trans +EXPORT_SYMBOL_GPL vmlinux 0xaa2a72bf __iowrite64_copy +EXPORT_SYMBOL_GPL vmlinux 0xaa48bd71 platform_add_devices +EXPORT_SYMBOL_GPL vmlinux 0xaa4b2cd4 tcp_death_row +EXPORT_SYMBOL_GPL vmlinux 0xaa5ef56d rtc_irq_unregister +EXPORT_SYMBOL_GPL vmlinux 0xaa981f5d tty_port_register_device_attr +EXPORT_SYMBOL_GPL vmlinux 0xaaa918c9 ftrace_dump +EXPORT_SYMBOL_GPL vmlinux 0xaab30cd4 extcon_unregister_interest +EXPORT_SYMBOL_GPL vmlinux 0xaacc19f4 xenbus_dev_shutdown +EXPORT_SYMBOL_GPL vmlinux 0xaaf8a879 fat_get_dotdot_entry +EXPORT_SYMBOL_GPL vmlinux 0xab01acbe gnttab_request_free_callback +EXPORT_SYMBOL_GPL vmlinux 0xab0752d2 md_rdev_init +EXPORT_SYMBOL_GPL vmlinux 0xab55fa13 rio_get_comptag +EXPORT_SYMBOL_GPL vmlinux 0xab6babaf pm_qos_request +EXPORT_SYMBOL_GPL vmlinux 0xabc521ff cpuidle_get_cpu_driver +EXPORT_SYMBOL_GPL vmlinux 0xabf8e8d2 input_ff_upload +EXPORT_SYMBOL_GPL vmlinux 0xabffffb6 blk_add_request_payload +EXPORT_SYMBOL_GPL vmlinux 0xac038ffb subsys_dev_iter_init +EXPORT_SYMBOL_GPL vmlinux 0xac0afad7 x86_hyper_kvm +EXPORT_SYMBOL_GPL vmlinux 0xac25fb3b security_inode_mkdir +EXPORT_SYMBOL_GPL vmlinux 0xac2f3daa rio_release_dma +EXPORT_SYMBOL_GPL vmlinux 0xac3327c2 virtqueue_add_outbuf +EXPORT_SYMBOL_GPL vmlinux 0xac40dc52 nf_unregister_afinfo +EXPORT_SYMBOL_GPL vmlinux 0xac716302 ata_bmdma_qc_prep +EXPORT_SYMBOL_GPL vmlinux 0xac72b2b6 ata_eh_thaw_port +EXPORT_SYMBOL_GPL vmlinux 0xac9ce195 kvm_async_pf_task_wait +EXPORT_SYMBOL_GPL vmlinux 0xaca10f58 regmap_reinit_cache +EXPORT_SYMBOL_GPL vmlinux 0xaca3e06a sysfs_remove_link +EXPORT_SYMBOL_GPL vmlinux 0xacafa8e7 vector_used_by_percpu_irq +EXPORT_SYMBOL_GPL vmlinux 0xaccd3485 power_supply_get_by_name +EXPORT_SYMBOL_GPL vmlinux 0xacd33e27 ata_sff_data_xfer32 +EXPORT_SYMBOL_GPL vmlinux 0xace5c0fc usb_bus_list +EXPORT_SYMBOL_GPL vmlinux 0xad3543eb ata_link_offline +EXPORT_SYMBOL_GPL vmlinux 0xad3b3145 sata_link_hardreset +EXPORT_SYMBOL_GPL vmlinux 0xad595ff2 shash_register_instance +EXPORT_SYMBOL_GPL vmlinux 0xad5a6715 clk_prepare +EXPORT_SYMBOL_GPL vmlinux 0xad8d8ab0 xen_physdev_op_compat +EXPORT_SYMBOL_GPL vmlinux 0xada38534 regulator_bulk_disable +EXPORT_SYMBOL_GPL vmlinux 0xadaab85f fuse_conn_init +EXPORT_SYMBOL_GPL vmlinux 0xadba06d1 wm831x_reg_lock +EXPORT_SYMBOL_GPL vmlinux 0xadc785ec kgdb_register_io_module +EXPORT_SYMBOL_GPL vmlinux 0xadeebfdc fib_rules_register +EXPORT_SYMBOL_GPL vmlinux 0xadf19966 hvc_instantiate +EXPORT_SYMBOL_GPL vmlinux 0xadf6aa4d tpm_pcr_read +EXPORT_SYMBOL_GPL vmlinux 0xae0f6b4e regulator_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0xae5f68f0 rtnl_af_register +EXPORT_SYMBOL_GPL vmlinux 0xae61648e disk_part_iter_next +EXPORT_SYMBOL_GPL vmlinux 0xae64782d __rio_local_write_config_16 +EXPORT_SYMBOL_GPL vmlinux 0xae69b1c1 usermodehelper_read_unlock +EXPORT_SYMBOL_GPL vmlinux 0xae6eaf93 hwpoison_filter_dev_minor +EXPORT_SYMBOL_GPL vmlinux 0xae7c231d mpi_cmp +EXPORT_SYMBOL_GPL vmlinux 0xae7c5411 ms_hyperv +EXPORT_SYMBOL_GPL vmlinux 0xae92f29e fuse_direct_io +EXPORT_SYMBOL_GPL vmlinux 0xaebd9d0e power_supply_register +EXPORT_SYMBOL_GPL vmlinux 0xaec5015d regulator_map_voltage_linear +EXPORT_SYMBOL_GPL vmlinux 0xaec8fb28 ata_dummy_port_ops +EXPORT_SYMBOL_GPL vmlinux 0xaeefcb75 eventfd_fget +EXPORT_SYMBOL_GPL vmlinux 0xaf002bfd usb_free_coherent +EXPORT_SYMBOL_GPL vmlinux 0xaf3845ec rio_mport_write_config_32 +EXPORT_SYMBOL_GPL vmlinux 0xaf86fa20 crypto_aes_set_key +EXPORT_SYMBOL_GPL vmlinux 0xaf9341c4 da9052_adc_read_temp +EXPORT_SYMBOL_GPL vmlinux 0xafa0b4f1 led_trigger_remove +EXPORT_SYMBOL_GPL vmlinux 0xafa2b7b9 leds_list_lock +EXPORT_SYMBOL_GPL vmlinux 0xafbd6199 sdio_release_host +EXPORT_SYMBOL_GPL vmlinux 0xafc360eb blk_execute_rq_nowait +EXPORT_SYMBOL_GPL vmlinux 0xafe7dc65 usb_lock_device_for_reset +EXPORT_SYMBOL_GPL vmlinux 0xb004ca4d rio_map_inb_region +EXPORT_SYMBOL_GPL vmlinux 0xb01c07fe class_for_each_device +EXPORT_SYMBOL_GPL vmlinux 0xb02ac411 register_xenstore_notifier +EXPORT_SYMBOL_GPL vmlinux 0xb03c3221 arizona_dev_exit +EXPORT_SYMBOL_GPL vmlinux 0xb03c62f6 tty_port_link_device +EXPORT_SYMBOL_GPL vmlinux 0xb0868b1b fat_remove_entries +EXPORT_SYMBOL_GPL vmlinux 0xb097b086 get_task_pid +EXPORT_SYMBOL_GPL vmlinux 0xb0a16034 dma_wait_for_async_tx +EXPORT_SYMBOL_GPL vmlinux 0xb0a407ab crypto_aead_setauthsize +EXPORT_SYMBOL_GPL vmlinux 0xb0b85f47 ring_buffer_iter_reset +EXPORT_SYMBOL_GPL vmlinux 0xb0cadc06 __irq_domain_add +EXPORT_SYMBOL_GPL vmlinux 0xb0ccd9f1 __netpoll_setup +EXPORT_SYMBOL_GPL vmlinux 0xb10d55bc cn_netlink_send +EXPORT_SYMBOL_GPL vmlinux 0xb1114c75 ata_bmdma_qc_issue +EXPORT_SYMBOL_GPL vmlinux 0xb11eb1f0 alloc_page_buffers +EXPORT_SYMBOL_GPL vmlinux 0xb1320e2f set_cpus_allowed_ptr +EXPORT_SYMBOL_GPL vmlinux 0xb1384fb5 i2c_new_dummy +EXPORT_SYMBOL_GPL vmlinux 0xb140d14c ring_buffer_read +EXPORT_SYMBOL_GPL vmlinux 0xb1425b32 dm_table_add_target_callbacks +EXPORT_SYMBOL_GPL vmlinux 0xb146b883 ata_host_activate +EXPORT_SYMBOL_GPL vmlinux 0xb172ffac efivars_sysfs_init +EXPORT_SYMBOL_GPL vmlinux 0xb1831ea5 scsi_register_acpi_bus_type +EXPORT_SYMBOL_GPL vmlinux 0xb18429eb suspend_device_irqs +EXPORT_SYMBOL_GPL vmlinux 0xb19d4e59 class_dev_iter_exit +EXPORT_SYMBOL_GPL vmlinux 0xb1acbcce rcu_barrier_sched +EXPORT_SYMBOL_GPL vmlinux 0xb1bd3dcc usb_alloc_urb +EXPORT_SYMBOL_GPL vmlinux 0xb1bed25d dpm_resume_start +EXPORT_SYMBOL_GPL vmlinux 0xb1c0c1c2 async_schedule_domain +EXPORT_SYMBOL_GPL vmlinux 0xb1d8dd9a gpiochip_is_requested +EXPORT_SYMBOL_GPL vmlinux 0xb1e09f82 dev_attr_em_message_type +EXPORT_SYMBOL_GPL vmlinux 0xb1e25684 __trace_bputs +EXPORT_SYMBOL_GPL vmlinux 0xb2210d64 reset_control_deassert +EXPORT_SYMBOL_GPL vmlinux 0xb24c2e04 acpi_dev_pm_detach +EXPORT_SYMBOL_GPL vmlinux 0xb250a21f ata_link_online +EXPORT_SYMBOL_GPL vmlinux 0xb26a1b8b acpi_subsys_resume_early +EXPORT_SYMBOL_GPL vmlinux 0xb2c3d99f usb_unanchor_urb +EXPORT_SYMBOL_GPL vmlinux 0xb2e764e8 suspend_valid_only_mem +EXPORT_SYMBOL_GPL vmlinux 0xb2f9a77b ata_sas_sync_probe +EXPORT_SYMBOL_GPL vmlinux 0xb30fa1e9 security_inode_setattr +EXPORT_SYMBOL_GPL vmlinux 0xb3253ed9 hpet_rtc_timer_init +EXPORT_SYMBOL_GPL vmlinux 0xb3326ecf usb_autopm_put_interface_no_suspend +EXPORT_SYMBOL_GPL vmlinux 0xb3366d8e spi_async +EXPORT_SYMBOL_GPL vmlinux 0xb350f190 clk_set_parent +EXPORT_SYMBOL_GPL vmlinux 0xb39b3d79 crypto_larval_kill +EXPORT_SYMBOL_GPL vmlinux 0xb3ad5e88 bus_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0xb3b16953 blk_trace_setup +EXPORT_SYMBOL_GPL vmlinux 0xb3dc4a82 usb_put_hcd +EXPORT_SYMBOL_GPL vmlinux 0xb3fea5f0 class_unregister +EXPORT_SYMBOL_GPL vmlinux 0xb41c6f95 ata_bmdma_post_internal_cmd +EXPORT_SYMBOL_GPL vmlinux 0xb4267f64 __pm_runtime_suspend +EXPORT_SYMBOL_GPL vmlinux 0xb42ed495 ata_eh_qc_retry +EXPORT_SYMBOL_GPL vmlinux 0xb431777e rio_mport_write_config_8 +EXPORT_SYMBOL_GPL vmlinux 0xb44887c3 efivars_kobject +EXPORT_SYMBOL_GPL vmlinux 0xb4614cd2 register_virtio_driver +EXPORT_SYMBOL_GPL vmlinux 0xb493d9b5 adp5520_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0xb4b90fb6 usb_driver_set_configuration +EXPORT_SYMBOL_GPL vmlinux 0xb4b97c90 pvclock_gtod_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0xb4dead51 tc3589x_set_bits +EXPORT_SYMBOL_GPL vmlinux 0xb4e14553 gnttab_query_foreign_access +EXPORT_SYMBOL_GPL vmlinux 0xb4e52b1c tpm_dev_release +EXPORT_SYMBOL_GPL vmlinux 0xb4ea7cf7 kgdb_connected +EXPORT_SYMBOL_GPL vmlinux 0xb519dd55 inet_peer_base_init +EXPORT_SYMBOL_GPL vmlinux 0xb51fbd64 edac_op_state +EXPORT_SYMBOL_GPL vmlinux 0xb53620d1 pci_vpd_find_info_keyword +EXPORT_SYMBOL_GPL vmlinux 0xb57345f7 spi_bus_unlock +EXPORT_SYMBOL_GPL vmlinux 0xb58dcfa2 synchronize_sched_expedited +EXPORT_SYMBOL_GPL vmlinux 0xb5a0e11e lpddr2_jedec_addressing_table +EXPORT_SYMBOL_GPL vmlinux 0xb5a7cf13 ping_seq_next +EXPORT_SYMBOL_GPL vmlinux 0xb5c81488 need_load_eval +EXPORT_SYMBOL_GPL vmlinux 0xb5cb8145 hrtimer_get_res +EXPORT_SYMBOL_GPL vmlinux 0xb5cd75a8 lp8788_read_multi_bytes +EXPORT_SYMBOL_GPL vmlinux 0xb5e896fb tpm_get_random +EXPORT_SYMBOL_GPL vmlinux 0xb5f17edf perf_register_guest_info_callbacks +EXPORT_SYMBOL_GPL vmlinux 0xb5fa8a13 inet_ctl_sock_create +EXPORT_SYMBOL_GPL vmlinux 0xb611572a __rio_local_read_config_32 +EXPORT_SYMBOL_GPL vmlinux 0xb611f1a8 free_css_id +EXPORT_SYMBOL_GPL vmlinux 0xb6164a85 smpboot_unregister_percpu_thread +EXPORT_SYMBOL_GPL vmlinux 0xb616f157 __blkdev_driver_ioctl +EXPORT_SYMBOL_GPL vmlinux 0xb6212caa alarm_cancel +EXPORT_SYMBOL_GPL vmlinux 0xb6230f1f gnttab_grant_foreign_access +EXPORT_SYMBOL_GPL vmlinux 0xb6261484 register_die_notifier +EXPORT_SYMBOL_GPL vmlinux 0xb65c7dfa regulator_register +EXPORT_SYMBOL_GPL vmlinux 0xb67b2219 cm_suspend_again +EXPORT_SYMBOL_GPL vmlinux 0xb67c64fd __tracepoint_kfree_skb +EXPORT_SYMBOL_GPL vmlinux 0xb6877384 xenbus_unmap_ring +EXPORT_SYMBOL_GPL vmlinux 0xb6a572a6 tty_mode_ioctl +EXPORT_SYMBOL_GPL vmlinux 0xb6aeb661 ata_id_c_string +EXPORT_SYMBOL_GPL vmlinux 0xb6bc49a9 __supported_pte_mask +EXPORT_SYMBOL_GPL vmlinux 0xb6c635af wm5110_i2c_regmap +EXPORT_SYMBOL_GPL vmlinux 0xb709e339 efivar_validate +EXPORT_SYMBOL_GPL vmlinux 0xb715c0ad pci_ioremap_bar +EXPORT_SYMBOL_GPL vmlinux 0xb717b243 debugfs_print_regs32 +EXPORT_SYMBOL_GPL vmlinux 0xb718f2f9 sfi_table_parse +EXPORT_SYMBOL_GPL vmlinux 0xb7245760 irq_find_host +EXPORT_SYMBOL_GPL vmlinux 0xb7274bf5 tps6586x_writes +EXPORT_SYMBOL_GPL vmlinux 0xb73bec79 ipv6_recv_error +EXPORT_SYMBOL_GPL vmlinux 0xb73c2f33 bus_sort_breadthfirst +EXPORT_SYMBOL_GPL vmlinux 0xb76454f5 ip_route_output_flow +EXPORT_SYMBOL_GPL vmlinux 0xb7779e73 idr_alloc +EXPORT_SYMBOL_GPL vmlinux 0xb7844008 ohci_setup +EXPORT_SYMBOL_GPL vmlinux 0xb78ca5f4 skcipher_geniv_free +EXPORT_SYMBOL_GPL vmlinux 0xb7ada9b7 tcp_unregister_congestion_control +EXPORT_SYMBOL_GPL vmlinux 0xb7b14f17 netlink_has_listeners +EXPORT_SYMBOL_GPL vmlinux 0xb7d4030e crypto_grab_skcipher +EXPORT_SYMBOL_GPL vmlinux 0xb7d7c12e hpet_set_alarm_time +EXPORT_SYMBOL_GPL vmlinux 0xb7e3d1a7 ata_host_detach +EXPORT_SYMBOL_GPL vmlinux 0xb7e44d66 class_compat_remove_link +EXPORT_SYMBOL_GPL vmlinux 0xb7ef86cb dm_noflush_suspending +EXPORT_SYMBOL_GPL vmlinux 0xb7f77027 rtc_tm_to_ktime +EXPORT_SYMBOL_GPL vmlinux 0xb7fa0dca extcon_set_state +EXPORT_SYMBOL_GPL vmlinux 0xb81bdfe6 sec_bulk_write +EXPORT_SYMBOL_GPL vmlinux 0xb82bf194 devm_regulator_bulk_get +EXPORT_SYMBOL_GPL vmlinux 0xb83b18ca rio_release_outb_dbell +EXPORT_SYMBOL_GPL vmlinux 0xb86bcceb klist_next +EXPORT_SYMBOL_GPL vmlinux 0xb872074b crypto_mod_get +EXPORT_SYMBOL_GPL vmlinux 0xb87991ea sb800_prefetch +EXPORT_SYMBOL_GPL vmlinux 0xb892420c blk_rq_prep_clone +EXPORT_SYMBOL_GPL vmlinux 0xb89a4628 cpufreq_freq_attr_scaling_available_freqs +EXPORT_SYMBOL_GPL vmlinux 0xb8a26d88 sdio_readsb +EXPORT_SYMBOL_GPL vmlinux 0xb8a4bfa0 module_mutex +EXPORT_SYMBOL_GPL vmlinux 0xb8b2b1f7 mce_register_decode_chain +EXPORT_SYMBOL_GPL vmlinux 0xb903674c scatterwalk_map_and_copy +EXPORT_SYMBOL_GPL vmlinux 0xb9176155 asn1_ber_decoder +EXPORT_SYMBOL_GPL vmlinux 0xb92a5640 __ablkcipher_walk_complete +EXPORT_SYMBOL_GPL vmlinux 0xb97b26af ata_sas_port_start +EXPORT_SYMBOL_GPL vmlinux 0xb9882c86 ip6_push_pending_frames +EXPORT_SYMBOL_GPL vmlinux 0xb98909f4 inet_csk_reqsk_queue_prune +EXPORT_SYMBOL_GPL vmlinux 0xb999f00c alarm_restart +EXPORT_SYMBOL_GPL vmlinux 0xb99d5837 xenbus_read +EXPORT_SYMBOL_GPL vmlinux 0xb9b09973 __efivar_entry_delete +EXPORT_SYMBOL_GPL vmlinux 0xb9b9df41 usb_amd_dev_put +EXPORT_SYMBOL_GPL vmlinux 0xb9c425de register_syscore_ops +EXPORT_SYMBOL_GPL vmlinux 0xb9d025c9 llist_del_first +EXPORT_SYMBOL_GPL vmlinux 0xb9da2997 snmp_fold_field64 +EXPORT_SYMBOL_GPL vmlinux 0xb9ecde33 bus_unregister +EXPORT_SYMBOL_GPL vmlinux 0xb9f257a7 regmap_register_patch +EXPORT_SYMBOL_GPL vmlinux 0xba1b5e8d virtqueue_kick +EXPORT_SYMBOL_GPL vmlinux 0xba2066b6 ata_sff_qc_issue +EXPORT_SYMBOL_GPL vmlinux 0xba270365 inet_twsk_alloc +EXPORT_SYMBOL_GPL vmlinux 0xba35a45b __rio_local_read_config_16 +EXPORT_SYMBOL_GPL vmlinux 0xba39066d mmc_app_cmd +EXPORT_SYMBOL_GPL vmlinux 0xba425689 root_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0xba561e3e sdev_evt_send +EXPORT_SYMBOL_GPL vmlinux 0xba658f08 sysfs_add_file_to_group +EXPORT_SYMBOL_GPL vmlinux 0xba6aff8c css_lookup +EXPORT_SYMBOL_GPL vmlinux 0xba744405 cgroup_attach_task_all +EXPORT_SYMBOL_GPL vmlinux 0xba837c39 ping_proc_unregister +EXPORT_SYMBOL_GPL vmlinux 0xba9a9936 netdev_rx_handler_unregister +EXPORT_SYMBOL_GPL vmlinux 0xbacb64eb reset_controller_unregister +EXPORT_SYMBOL_GPL vmlinux 0xbaee46c0 usb_alloc_streams +EXPORT_SYMBOL_GPL vmlinux 0xbafa646a devm_reset_control_get +EXPORT_SYMBOL_GPL vmlinux 0xbb038ce4 perf_unregister_guest_info_callbacks +EXPORT_SYMBOL_GPL vmlinux 0xbb0a2666 key_type_encrypted +EXPORT_SYMBOL_GPL vmlinux 0xbb0ab47b debug_locks +EXPORT_SYMBOL_GPL vmlinux 0xbb18e2cf fixed_phy_set_link_update +EXPORT_SYMBOL_GPL vmlinux 0xbb2380c2 dev_pm_qos_remove_request +EXPORT_SYMBOL_GPL vmlinux 0xbb2f4e21 fuse_do_open +EXPORT_SYMBOL_GPL vmlinux 0xbb31b5d4 perf_event_read_value +EXPORT_SYMBOL_GPL vmlinux 0xbb58b814 iomap_free +EXPORT_SYMBOL_GPL vmlinux 0xbb7b56fb thermal_zone_get_zone_by_name +EXPORT_SYMBOL_GPL vmlinux 0xbba8f431 usb_anchor_urb +EXPORT_SYMBOL_GPL vmlinux 0xbbb98859 edid_info +EXPORT_SYMBOL_GPL vmlinux 0xbbbdaaa5 dma_buf_kunmap +EXPORT_SYMBOL_GPL vmlinux 0xbbd14070 __dma_request_channel +EXPORT_SYMBOL_GPL vmlinux 0xbbd4f657 xen_pcpu_id +EXPORT_SYMBOL_GPL vmlinux 0xbbe8c2d7 rtnl_register +EXPORT_SYMBOL_GPL vmlinux 0xbbeb7cd6 ata_qc_complete +EXPORT_SYMBOL_GPL vmlinux 0xbbf141cd usb_deregister_dev +EXPORT_SYMBOL_GPL vmlinux 0xbca0201a sfi_mrtc_array +EXPORT_SYMBOL_GPL vmlinux 0xbcac6160 pm_qos_remove_notifier +EXPORT_SYMBOL_GPL vmlinux 0xbcaf9ac1 ata_pci_device_suspend +EXPORT_SYMBOL_GPL vmlinux 0xbcb838a1 amd_flush_garts +EXPORT_SYMBOL_GPL vmlinux 0xbccfd4d8 register_oldmem_pfn_is_ram +EXPORT_SYMBOL_GPL vmlinux 0xbcdd5b99 iommu_group_set_name +EXPORT_SYMBOL_GPL vmlinux 0xbd1b6f85 fuse_conn_put +EXPORT_SYMBOL_GPL vmlinux 0xbd36d1be sdio_writesb +EXPORT_SYMBOL_GPL vmlinux 0xbd3e7909 ata_eh_qc_complete +EXPORT_SYMBOL_GPL vmlinux 0xbd506a46 unregister_hotplug_dock_device +EXPORT_SYMBOL_GPL vmlinux 0xbd5cb8b9 ring_buffer_resize +EXPORT_SYMBOL_GPL vmlinux 0xbd781c04 rio_mport_read_config_32 +EXPORT_SYMBOL_GPL vmlinux 0xbd80e71d sysfs_create_link +EXPORT_SYMBOL_GPL vmlinux 0xbd85da61 da9055_regmap_config +EXPORT_SYMBOL_GPL vmlinux 0xbdb257ba hrtimer_start +EXPORT_SYMBOL_GPL vmlinux 0xbdb960a8 task_user_regset_view +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 0xbde65a3c devres_alloc +EXPORT_SYMBOL_GPL vmlinux 0xbdf9eeab tps6586x_irq_get_virq +EXPORT_SYMBOL_GPL vmlinux 0xbdfd0982 debugfs_create_dir +EXPORT_SYMBOL_GPL vmlinux 0xbe1887e4 ata_unpack_xfermask +EXPORT_SYMBOL_GPL vmlinux 0xbe27f807 do_unregister_con_driver +EXPORT_SYMBOL_GPL vmlinux 0xbe4553ba pwm_set_chip_data +EXPORT_SYMBOL_GPL vmlinux 0xbe6f85d4 ata_base_port_ops +EXPORT_SYMBOL_GPL vmlinux 0xbe71c49b pwm_can_sleep +EXPORT_SYMBOL_GPL vmlinux 0xbe98086e clk_unregister +EXPORT_SYMBOL_GPL vmlinux 0xbebaa142 cgroup_path +EXPORT_SYMBOL_GPL vmlinux 0xbed03f87 skb_to_sgvec +EXPORT_SYMBOL_GPL vmlinux 0xbed99616 pwm_get +EXPORT_SYMBOL_GPL vmlinux 0xbf041102 register_vt_notifier +EXPORT_SYMBOL_GPL vmlinux 0xbf15334d dev_pm_qos_update_request +EXPORT_SYMBOL_GPL vmlinux 0xbf3293d4 dma_buf_get +EXPORT_SYMBOL_GPL vmlinux 0xbf6f39d5 d_materialise_unique +EXPORT_SYMBOL_GPL vmlinux 0xbfbc5434 pciserial_resume_ports +EXPORT_SYMBOL_GPL vmlinux 0xbfc26456 debugfs_create_atomic_t +EXPORT_SYMBOL_GPL vmlinux 0xbfc56e1f xfrm_audit_state_replay_overflow +EXPORT_SYMBOL_GPL vmlinux 0xbff6e7de crypto_ahash_finup +EXPORT_SYMBOL_GPL vmlinux 0xbffcb3b7 acpi_os_get_iomem +EXPORT_SYMBOL_GPL vmlinux 0xc00131cf visitor64 +EXPORT_SYMBOL_GPL vmlinux 0xc007d86b platform_get_irq +EXPORT_SYMBOL_GPL vmlinux 0xc05367ff get_device +EXPORT_SYMBOL_GPL vmlinux 0xc08647ff ring_buffer_bytes_cpu +EXPORT_SYMBOL_GPL vmlinux 0xc0a6123d xenbus_watch_pathfmt +EXPORT_SYMBOL_GPL vmlinux 0xc0a68c32 class_dev_iter_init +EXPORT_SYMBOL_GPL vmlinux 0xc0bf6ead timecounter_cyc2time +EXPORT_SYMBOL_GPL vmlinux 0xc0d26387 kmsg_dump_unregister +EXPORT_SYMBOL_GPL vmlinux 0xc0e68cf1 regcache_cache_bypass +EXPORT_SYMBOL_GPL vmlinux 0xc0e75cec visitor128 +EXPORT_SYMBOL_GPL vmlinux 0xc0ee4311 __module_text_address +EXPORT_SYMBOL_GPL vmlinux 0xc10292e0 usb_remove_hcd +EXPORT_SYMBOL_GPL vmlinux 0xc11087af rtc_update_irq +EXPORT_SYMBOL_GPL vmlinux 0xc1123d0a alarm_start_relative +EXPORT_SYMBOL_GPL vmlinux 0xc11b4470 balloon_stats +EXPORT_SYMBOL_GPL vmlinux 0xc11bd00f tracepoint_probe_unregister +EXPORT_SYMBOL_GPL vmlinux 0xc1317707 transport_class_register +EXPORT_SYMBOL_GPL vmlinux 0xc15c1355 ata_common_sdev_attrs +EXPORT_SYMBOL_GPL vmlinux 0xc164642e xenbus_otherend_changed +EXPORT_SYMBOL_GPL vmlinux 0xc17515d7 usb_hcds_loaded +EXPORT_SYMBOL_GPL vmlinux 0xc18578ed process_srcu +EXPORT_SYMBOL_GPL vmlinux 0xc1990403 register_pernet_subsys +EXPORT_SYMBOL_GPL vmlinux 0xc1c329e9 usb_control_msg +EXPORT_SYMBOL_GPL vmlinux 0xc1d8c810 dm_dispatch_request +EXPORT_SYMBOL_GPL vmlinux 0xc1dc0d5d acpi_find_child +EXPORT_SYMBOL_GPL vmlinux 0xc205fa4e synchronize_srcu +EXPORT_SYMBOL_GPL vmlinux 0xc22a3091 vm_unmap_aliases +EXPORT_SYMBOL_GPL vmlinux 0xc26351f8 bind_evtchn_to_irq +EXPORT_SYMBOL_GPL vmlinux 0xc280fb46 kdb_register +EXPORT_SYMBOL_GPL vmlinux 0xc2994ea8 ata_host_start +EXPORT_SYMBOL_GPL vmlinux 0xc2af4bd9 devres_close_group +EXPORT_SYMBOL_GPL vmlinux 0xc2b1a7a1 device_destroy +EXPORT_SYMBOL_GPL vmlinux 0xc2dfa5fc crypto_unregister_alg +EXPORT_SYMBOL_GPL vmlinux 0xc2e99447 cpuidle_register_driver +EXPORT_SYMBOL_GPL vmlinux 0xc2fcc528 subsys_dev_iter_next +EXPORT_SYMBOL_GPL vmlinux 0xc31f6c74 xen_swiotlb_dma_supported +EXPORT_SYMBOL_GPL vmlinux 0xc328a46a kobject_uevent_env +EXPORT_SYMBOL_GPL vmlinux 0xc341ae6d zs_map_object +EXPORT_SYMBOL_GPL vmlinux 0xc34efe27 snmp_fold_field +EXPORT_SYMBOL_GPL vmlinux 0xc3568e3b max8997_write_reg +EXPORT_SYMBOL_GPL vmlinux 0xc37226a5 tpm_pcr_extend +EXPORT_SYMBOL_GPL vmlinux 0xc3a457a0 get_kernel_page +EXPORT_SYMBOL_GPL vmlinux 0xc3bb9ac1 sdio_f0_writeb +EXPORT_SYMBOL_GPL vmlinux 0xc3d53e2b ip6_datagram_connect +EXPORT_SYMBOL_GPL vmlinux 0xc3dcc67c debugfs_create_file +EXPORT_SYMBOL_GPL vmlinux 0xc3ea75f6 adp5520_write +EXPORT_SYMBOL_GPL vmlinux 0xc414b1ca dm_send_uevents +EXPORT_SYMBOL_GPL vmlinux 0xc419e743 debugfs_create_u32 +EXPORT_SYMBOL_GPL vmlinux 0xc4246444 pci_reset_pri +EXPORT_SYMBOL_GPL vmlinux 0xc428068d sata_deb_timing_long +EXPORT_SYMBOL_GPL vmlinux 0xc45389c4 dev_pm_get_subsys_data +EXPORT_SYMBOL_GPL vmlinux 0xc45899c9 serial8250_request_dma +EXPORT_SYMBOL_GPL vmlinux 0xc45d79dd m2p_add_override +EXPORT_SYMBOL_GPL vmlinux 0xc4645746 debugfs_create_x16 +EXPORT_SYMBOL_GPL vmlinux 0xc4656ca1 __page_file_index +EXPORT_SYMBOL_GPL vmlinux 0xc47a992c verify_signature +EXPORT_SYMBOL_GPL vmlinux 0xc47cecb6 bus_create_file +EXPORT_SYMBOL_GPL vmlinux 0xc48b7ccf ata_mode_string +EXPORT_SYMBOL_GPL vmlinux 0xc49d94da inet6_destroy_sock +EXPORT_SYMBOL_GPL vmlinux 0xc4c29a0e inet6_csk_xmit +EXPORT_SYMBOL_GPL vmlinux 0xc4c98f48 generic_fh_to_parent +EXPORT_SYMBOL_GPL vmlinux 0xc4e129a8 uart_insert_char +EXPORT_SYMBOL_GPL vmlinux 0xc4e51f84 fat_free_clusters +EXPORT_SYMBOL_GPL vmlinux 0xc5190ab2 regcache_sync +EXPORT_SYMBOL_GPL vmlinux 0xc527ec4e cpufreq_notify_transition +EXPORT_SYMBOL_GPL vmlinux 0xc5397da6 xenbus_mkdir +EXPORT_SYMBOL_GPL vmlinux 0xc5503ac8 pm_generic_resume +EXPORT_SYMBOL_GPL vmlinux 0xc55a5a49 xenbus_probe_devices +EXPORT_SYMBOL_GPL vmlinux 0xc55f24d3 ping_seq_stop +EXPORT_SYMBOL_GPL vmlinux 0xc575c737 debug_locks_off +EXPORT_SYMBOL_GPL vmlinux 0xc5950546 pci_enable_rom +EXPORT_SYMBOL_GPL vmlinux 0xc5bab3fe btree_init +EXPORT_SYMBOL_GPL vmlinux 0xc5d37180 ping_common_sendmsg +EXPORT_SYMBOL_GPL vmlinux 0xc5fc8367 ata_cable_ignore +EXPORT_SYMBOL_GPL vmlinux 0xc606cf41 crypto_unregister_ahash +EXPORT_SYMBOL_GPL vmlinux 0xc60f75ec __ftrace_vprintk +EXPORT_SYMBOL_GPL vmlinux 0xc617f82c unregister_oom_notifier +EXPORT_SYMBOL_GPL vmlinux 0xc6238834 bitmap_load +EXPORT_SYMBOL_GPL vmlinux 0xc65d3eed ring_buffer_entries_cpu +EXPORT_SYMBOL_GPL vmlinux 0xc66b77b1 iommu_group_set_iommudata +EXPORT_SYMBOL_GPL vmlinux 0xc6711f44 crypto_chain +EXPORT_SYMBOL_GPL vmlinux 0xc68aa090 mod_delayed_work_on +EXPORT_SYMBOL_GPL vmlinux 0xc690866c irq_work_queue +EXPORT_SYMBOL_GPL vmlinux 0xc69b7ee5 zs_destroy_pool +EXPORT_SYMBOL_GPL vmlinux 0xc6a03725 blk_rq_unprep_clone +EXPORT_SYMBOL_GPL vmlinux 0xc6e017e0 inet_twsk_put +EXPORT_SYMBOL_GPL vmlinux 0xc7002ac4 evtchn_make_refcounted +EXPORT_SYMBOL_GPL vmlinux 0xc701818f fat_alloc_new_dir +EXPORT_SYMBOL_GPL vmlinux 0xc70b4f97 cpuidle_register_device +EXPORT_SYMBOL_GPL vmlinux 0xc72e1233 __trace_bprintk +EXPORT_SYMBOL_GPL vmlinux 0xc73192b2 acpi_i2c_register_devices +EXPORT_SYMBOL_GPL vmlinux 0xc73c5d03 dev_pm_qos_hide_latency_limit +EXPORT_SYMBOL_GPL vmlinux 0xc7926f7e wm831x_bulk_read +EXPORT_SYMBOL_GPL vmlinux 0xc7952023 get_pid_task +EXPORT_SYMBOL_GPL vmlinux 0xc7a1840e llist_add_batch +EXPORT_SYMBOL_GPL vmlinux 0xc7c6391c mpi_set_buffer +EXPORT_SYMBOL_GPL vmlinux 0xc7e39bca ring_buffer_dropped_events_cpu +EXPORT_SYMBOL_GPL vmlinux 0xc80e38c8 blk_queue_rq_timed_out +EXPORT_SYMBOL_GPL vmlinux 0xc816532c ip6_route_lookup +EXPORT_SYMBOL_GPL vmlinux 0xc83567f4 usb_hub_find_child +EXPORT_SYMBOL_GPL vmlinux 0xc835d515 kill_pid_info_as_cred +EXPORT_SYMBOL_GPL vmlinux 0xc87c1f84 ktime_get +EXPORT_SYMBOL_GPL vmlinux 0xc87e487a sched_clock_idle_sleep_event +EXPORT_SYMBOL_GPL vmlinux 0xc8a0390a ata_do_set_mode +EXPORT_SYMBOL_GPL vmlinux 0xc8add232 ring_buffer_record_disable +EXPORT_SYMBOL_GPL vmlinux 0xc90eee27 bsg_request_fn +EXPORT_SYMBOL_GPL vmlinux 0xc90fa734 led_trigger_blink +EXPORT_SYMBOL_GPL vmlinux 0xc91277a1 kgdb_schedule_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0xc9245ba7 skb_copy_ubufs +EXPORT_SYMBOL_GPL vmlinux 0xc9561772 fb_destroy_modelist +EXPORT_SYMBOL_GPL vmlinux 0xc95f889b transport_configure_device +EXPORT_SYMBOL_GPL vmlinux 0xc968aa02 rio_attach_device +EXPORT_SYMBOL_GPL vmlinux 0xc975efa4 ata_sas_async_probe +EXPORT_SYMBOL_GPL vmlinux 0xc979644a dio_end_io +EXPORT_SYMBOL_GPL vmlinux 0xc97d1140 cpufreq_cooling_get_level +EXPORT_SYMBOL_GPL vmlinux 0xc98891dc pci_destroy_slot +EXPORT_SYMBOL_GPL vmlinux 0xc9c12498 rio_dma_prep_slave_sg +EXPORT_SYMBOL_GPL vmlinux 0xc9c3f176 hpet_register_irq_handler +EXPORT_SYMBOL_GPL vmlinux 0xc9c87f5c bus_get_device_klist +EXPORT_SYMBOL_GPL vmlinux 0xc9e0856b rio_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0xc9e4221b smp_ops +EXPORT_SYMBOL_GPL vmlinux 0xc9ec4e21 free_percpu +EXPORT_SYMBOL_GPL vmlinux 0xc9f411f7 __inet_lookup_established +EXPORT_SYMBOL_GPL vmlinux 0xca0aeec9 scsi_internal_device_block +EXPORT_SYMBOL_GPL vmlinux 0xca4a7ceb pci_hp_remove_module_link +EXPORT_SYMBOL_GPL vmlinux 0xca679301 __put_task_struct +EXPORT_SYMBOL_GPL vmlinux 0xca7b4480 simple_attr_open +EXPORT_SYMBOL_GPL vmlinux 0xca7d8764 kthread_freezable_should_stop +EXPORT_SYMBOL_GPL vmlinux 0xca81ea9a xenbus_transaction_end +EXPORT_SYMBOL_GPL vmlinux 0xca85d8cf tracepoint_probe_update_all +EXPORT_SYMBOL_GPL vmlinux 0xca93ff6a ahash_attr_alg +EXPORT_SYMBOL_GPL vmlinux 0xca9a5aa8 each_symbol_section +EXPORT_SYMBOL_GPL vmlinux 0xcaa6ea47 disk_part_iter_init +EXPORT_SYMBOL_GPL vmlinux 0xcabe04de cpuidle_resume_and_unlock +EXPORT_SYMBOL_GPL vmlinux 0xcaca0be0 blkdev_aio_write +EXPORT_SYMBOL_GPL vmlinux 0xcacb0c39 power_supply_changed +EXPORT_SYMBOL_GPL vmlinux 0xcb15eee9 sdhci_pci_get_data +EXPORT_SYMBOL_GPL vmlinux 0xcb400e1b agp_remove_bridge +EXPORT_SYMBOL_GPL vmlinux 0xcb469d2b ddebug_add_module +EXPORT_SYMBOL_GPL vmlinux 0xcb7314d6 ata_sff_tf_read +EXPORT_SYMBOL_GPL vmlinux 0xcbee20b2 get_cpu_iowait_time_us +EXPORT_SYMBOL_GPL vmlinux 0xcc1f1c3d inet_twdr_hangman +EXPORT_SYMBOL_GPL vmlinux 0xcc44ab1c vfs_getxattr +EXPORT_SYMBOL_GPL vmlinux 0xcc564396 tpm_show_pcrs +EXPORT_SYMBOL_GPL vmlinux 0xcc586223 modify_user_hw_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0xcc6ab305 is_dock_device +EXPORT_SYMBOL_GPL vmlinux 0xcc7b2421 unregister_net_sysctl_table +EXPORT_SYMBOL_GPL vmlinux 0xcc84ea7c class_destroy +EXPORT_SYMBOL_GPL vmlinux 0xcc85fcb6 async_schedule +EXPORT_SYMBOL_GPL vmlinux 0xcc8a7266 register_asymmetric_key_parser +EXPORT_SYMBOL_GPL vmlinux 0xcc8b6106 __pm_runtime_resume +EXPORT_SYMBOL_GPL vmlinux 0xcc8e4fc3 stmpe_set_bits +EXPORT_SYMBOL_GPL vmlinux 0xcca3506d blkcipher_walk_virt_block +EXPORT_SYMBOL_GPL vmlinux 0xcccfb2fa sata_deb_timing_hotplug +EXPORT_SYMBOL_GPL vmlinux 0xccd17f88 input_ff_event +EXPORT_SYMBOL_GPL vmlinux 0xccea4e34 perf_get_x86_pmu_capability +EXPORT_SYMBOL_GPL vmlinux 0xccf13256 relay_open +EXPORT_SYMBOL_GPL vmlinux 0xcd1516df register_kprobe +EXPORT_SYMBOL_GPL vmlinux 0xcd211b96 fs_kobj +EXPORT_SYMBOL_GPL vmlinux 0xcd2b81fc pci_enable_sriov +EXPORT_SYMBOL_GPL vmlinux 0xcd55400e shash_free_instance +EXPORT_SYMBOL_GPL vmlinux 0xcd575a1f spi_finalize_current_message +EXPORT_SYMBOL_GPL vmlinux 0xcd91b127 system_highpri_wq +EXPORT_SYMBOL_GPL vmlinux 0xcd933c46 ata_sas_port_stop +EXPORT_SYMBOL_GPL vmlinux 0xcda7b7b3 usb_block_urb +EXPORT_SYMBOL_GPL vmlinux 0xcdba0371 pm_generic_poweroff +EXPORT_SYMBOL_GPL vmlinux 0xcdca3691 nr_irqs +EXPORT_SYMBOL_GPL vmlinux 0xce06c538 dummy_irq_chip +EXPORT_SYMBOL_GPL vmlinux 0xce0b9b59 max77693_read_reg +EXPORT_SYMBOL_GPL vmlinux 0xce456165 pm_generic_runtime_resume +EXPORT_SYMBOL_GPL vmlinux 0xce46e140 ktime_get_ts +EXPORT_SYMBOL_GPL vmlinux 0xce6a9d9a trace_current_buffer_discard_commit +EXPORT_SYMBOL_GPL vmlinux 0xce75dd36 crypto_alloc_aead +EXPORT_SYMBOL_GPL vmlinux 0xcec5c1c8 pci_ats_queue_depth +EXPORT_SYMBOL_GPL vmlinux 0xced23cf8 blk_trace_startstop +EXPORT_SYMBOL_GPL vmlinux 0xcedb6dfc crypto_remove_spawns +EXPORT_SYMBOL_GPL vmlinux 0xcee1641c kgdb_unregister_nmi_console +EXPORT_SYMBOL_GPL vmlinux 0xcef1dd0e perf_check_microcode +EXPORT_SYMBOL_GPL vmlinux 0xcf3186b9 mmc_switch +EXPORT_SYMBOL_GPL vmlinux 0xcf54ea93 async_unregister_domain +EXPORT_SYMBOL_GPL vmlinux 0xcf5debea usb_disable_lpm +EXPORT_SYMBOL_GPL vmlinux 0xcf675028 __ata_ehi_push_desc +EXPORT_SYMBOL_GPL vmlinux 0xcf7b6a92 inet6_csk_reqsk_queue_hash_add +EXPORT_SYMBOL_GPL vmlinux 0xcf7c1b75 clk_notifier_register +EXPORT_SYMBOL_GPL vmlinux 0xcfaaf45a __trace_note_message +EXPORT_SYMBOL_GPL vmlinux 0xcfbf952e input_ff_create +EXPORT_SYMBOL_GPL vmlinux 0xcfc62f27 xen_start_info +EXPORT_SYMBOL_GPL vmlinux 0xcfc68341 synchronize_rcu_bh +EXPORT_SYMBOL_GPL vmlinux 0xcfca2554 serial8250_rx_dma +EXPORT_SYMBOL_GPL vmlinux 0xcfe7656b ipv4_redirect +EXPORT_SYMBOL_GPL vmlinux 0xcfeeae43 unregister_pernet_device +EXPORT_SYMBOL_GPL vmlinux 0xcffa2aff spi_populate_width_msg +EXPORT_SYMBOL_GPL vmlinux 0xd026e3b3 rio_request_dma +EXPORT_SYMBOL_GPL vmlinux 0xd03443fa rio_mport_chk_dev_access +EXPORT_SYMBOL_GPL vmlinux 0xd0345775 attribute_container_register +EXPORT_SYMBOL_GPL vmlinux 0xd03c7700 secure_ipv4_port_ephemeral +EXPORT_SYMBOL_GPL vmlinux 0xd0458ccb xenbus_strstate +EXPORT_SYMBOL_GPL vmlinux 0xd058cc77 driver_for_each_device +EXPORT_SYMBOL_GPL vmlinux 0xd06524ba raw_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0xd067d3c5 system_freezable_power_efficient_wq +EXPORT_SYMBOL_GPL vmlinux 0xd0698c74 device_create_with_groups +EXPORT_SYMBOL_GPL vmlinux 0xd06f8525 xenbus_watch_path +EXPORT_SYMBOL_GPL vmlinux 0xd0a8b38c devres_remove_group +EXPORT_SYMBOL_GPL vmlinux 0xd0c05159 emergency_restart +EXPORT_SYMBOL_GPL vmlinux 0xd0d966a1 extcon_set_cable_state_ +EXPORT_SYMBOL_GPL vmlinux 0xd10ae66f bus_find_device_by_name +EXPORT_SYMBOL_GPL vmlinux 0xd10c5148 thermal_notify_framework +EXPORT_SYMBOL_GPL vmlinux 0xd10c62bc ata_ehi_clear_desc +EXPORT_SYMBOL_GPL vmlinux 0xd13d6c10 fuse_abort_conn +EXPORT_SYMBOL_GPL vmlinux 0xd146071b clone_private_mount +EXPORT_SYMBOL_GPL vmlinux 0xd14bc4d9 sock_diag_save_cookie +EXPORT_SYMBOL_GPL vmlinux 0xd1507e59 erst_clear +EXPORT_SYMBOL_GPL vmlinux 0xd15e9f32 pci_add_dynid +EXPORT_SYMBOL_GPL vmlinux 0xd16712f3 crypto_check_attr_type +EXPORT_SYMBOL_GPL vmlinux 0xd1b2db37 tracepoint_probe_register_noupdate +EXPORT_SYMBOL_GPL vmlinux 0xd1ce6896 vfs_cancel_lock +EXPORT_SYMBOL_GPL vmlinux 0xd1e40511 sk_unattached_filter_create +EXPORT_SYMBOL_GPL vmlinux 0xd1f78129 pci_disable_sriov +EXPORT_SYMBOL_GPL vmlinux 0xd205c76a spi_async_locked +EXPORT_SYMBOL_GPL vmlinux 0xd20bf6ba dcookie_unregister +EXPORT_SYMBOL_GPL vmlinux 0xd21161a3 __blocking_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xd217ce9f wakeup_source_remove +EXPORT_SYMBOL_GPL vmlinux 0xd217e9e6 trace_set_clr_event +EXPORT_SYMBOL_GPL vmlinux 0xd217f942 acpi_subsys_prepare +EXPORT_SYMBOL_GPL vmlinux 0xd2446593 preempt_notifier_register +EXPORT_SYMBOL_GPL vmlinux 0xd2542c8d securityfs_create_dir +EXPORT_SYMBOL_GPL vmlinux 0xd273b1b1 __round_jiffies_up_relative +EXPORT_SYMBOL_GPL vmlinux 0xd278cb4b xfrm_inner_extract_output +EXPORT_SYMBOL_GPL vmlinux 0xd2aaeb4e kmsg_dump_get_buffer +EXPORT_SYMBOL_GPL vmlinux 0xd2b45a23 pci_bus_max_busnr +EXPORT_SYMBOL_GPL vmlinux 0xd2c58ab2 apei_exec_noop +EXPORT_SYMBOL_GPL vmlinux 0xd2c89514 rtc_read_time +EXPORT_SYMBOL_GPL vmlinux 0xd2d4dac8 __pm_stay_awake +EXPORT_SYMBOL_GPL vmlinux 0xd2eb230d extcon_dev_unregister +EXPORT_SYMBOL_GPL vmlinux 0xd30da808 wm8350_read_auxadc +EXPORT_SYMBOL_GPL vmlinux 0xd32fe193 ata_scsi_change_queue_depth +EXPORT_SYMBOL_GPL vmlinux 0xd3666b22 fat_setattr +EXPORT_SYMBOL_GPL vmlinux 0xd37cec77 tty_encode_baud_rate +EXPORT_SYMBOL_GPL vmlinux 0xd37e13b4 regulator_set_optimum_mode +EXPORT_SYMBOL_GPL vmlinux 0xd398ad3a tty_find_polling_driver +EXPORT_SYMBOL_GPL vmlinux 0xd3e6528f hypervisor_kobj +EXPORT_SYMBOL_GPL vmlinux 0xd3fbc638 dma_buf_export_named +EXPORT_SYMBOL_GPL vmlinux 0xd4034828 system_freezable_wq +EXPORT_SYMBOL_GPL vmlinux 0xd441d91f transport_class_unregister +EXPORT_SYMBOL_GPL vmlinux 0xd44a5eac kgdb_register_nmi_console +EXPORT_SYMBOL_GPL vmlinux 0xd4524a34 thermal_zone_device_register +EXPORT_SYMBOL_GPL vmlinux 0xd454dc7b sock_prot_inuse_get +EXPORT_SYMBOL_GPL vmlinux 0xd463cfe9 bmp085_regmap_config +EXPORT_SYMBOL_GPL vmlinux 0xd463df11 xfrm_audit_state_replay +EXPORT_SYMBOL_GPL vmlinux 0xd478238a ata_timing_compute +EXPORT_SYMBOL_GPL vmlinux 0xd47f1de7 mnt_want_write +EXPORT_SYMBOL_GPL vmlinux 0xd4c14632 system_unbound_wq +EXPORT_SYMBOL_GPL vmlinux 0xd4f1e87e xenbus_unmap_ring_vfree +EXPORT_SYMBOL_GPL vmlinux 0xd51e1944 inet_twsk_schedule +EXPORT_SYMBOL_GPL vmlinux 0xd5234106 ping_seq_start +EXPORT_SYMBOL_GPL vmlinux 0xd5388de2 serial8250_tx_chars +EXPORT_SYMBOL_GPL vmlinux 0xd540f438 init_fpu +EXPORT_SYMBOL_GPL vmlinux 0xd544e902 pgprot_writecombine +EXPORT_SYMBOL_GPL vmlinux 0xd5498894 pm_generic_freeze_noirq +EXPORT_SYMBOL_GPL vmlinux 0xd550560f __pm_relax +EXPORT_SYMBOL_GPL vmlinux 0xd55ad93b iommu_group_get_iommudata +EXPORT_SYMBOL_GPL vmlinux 0xd5668410 tty_ldisc_deref +EXPORT_SYMBOL_GPL vmlinux 0xd56b3a2e trace_define_field +EXPORT_SYMBOL_GPL vmlinux 0xd5806efd led_trigger_register_simple +EXPORT_SYMBOL_GPL vmlinux 0xd5906a49 irq_domain_remove +EXPORT_SYMBOL_GPL vmlinux 0xd5bd7dac ring_buffer_record_enable_cpu +EXPORT_SYMBOL_GPL vmlinux 0xd5e9a531 pci_user_write_config_word +EXPORT_SYMBOL_GPL vmlinux 0xd5f20b22 rtc_set_alarm +EXPORT_SYMBOL_GPL vmlinux 0xd62a1a83 ata_scsi_queuecmd +EXPORT_SYMBOL_GPL vmlinux 0xd6418630 rt_mutex_lock_interruptible +EXPORT_SYMBOL_GPL vmlinux 0xd67364f7 eventfd_ctx_fdget +EXPORT_SYMBOL_GPL vmlinux 0xd6752ca8 kallsyms_on_each_symbol +EXPORT_SYMBOL_GPL vmlinux 0xd67f5217 btree_destroy +EXPORT_SYMBOL_GPL vmlinux 0xd68385d7 da903x_read +EXPORT_SYMBOL_GPL vmlinux 0xd69791ca blkg_conf_prep +EXPORT_SYMBOL_GPL vmlinux 0xd69a2ce3 relay_flush +EXPORT_SYMBOL_GPL vmlinux 0xd6c2e04b __tracepoint_napi_poll +EXPORT_SYMBOL_GPL vmlinux 0xd6cf22ae rio_bus_type +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 0xd7399d2a efivar_entry_iter_end +EXPORT_SYMBOL_GPL vmlinux 0xd7466a7e ata_platform_remove_one +EXPORT_SYMBOL_GPL vmlinux 0xd768e985 regulator_has_full_constraints +EXPORT_SYMBOL_GPL vmlinux 0xd773951c tpm_show_caps_1_2 +EXPORT_SYMBOL_GPL vmlinux 0xd77c0bc8 klist_remove +EXPORT_SYMBOL_GPL vmlinux 0xd7ab2c0c speedstep_detect_processor +EXPORT_SYMBOL_GPL vmlinux 0xd7aecbf3 sdev_evt_send_simple +EXPORT_SYMBOL_GPL vmlinux 0xd7b2056c pm_generic_resume_early +EXPORT_SYMBOL_GPL vmlinux 0xd7cba4d7 tpm_show_durations +EXPORT_SYMBOL_GPL vmlinux 0xd7d79132 put_online_cpus +EXPORT_SYMBOL_GPL vmlinux 0xd7dee0cc devm_rtc_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0xd808989e usb_poison_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0xd810cb99 ata_do_dev_read_id +EXPORT_SYMBOL_GPL vmlinux 0xd81953e0 digsig_verify +EXPORT_SYMBOL_GPL vmlinux 0xd81d72c3 pci_vfs_assigned +EXPORT_SYMBOL_GPL vmlinux 0xd81de62c ring_buffer_record_enable +EXPORT_SYMBOL_GPL vmlinux 0xd820c283 eventfd_ctx_remove_wait_queue +EXPORT_SYMBOL_GPL vmlinux 0xd8250a5c iounmap_atomic +EXPORT_SYMBOL_GPL vmlinux 0xd8268d5d register_acpi_bus_notifier +EXPORT_SYMBOL_GPL vmlinux 0xd84fe718 pci_pri_status +EXPORT_SYMBOL_GPL vmlinux 0xd8525ea7 fl6_update_dst +EXPORT_SYMBOL_GPL vmlinux 0xd85ac634 regulator_put +EXPORT_SYMBOL_GPL vmlinux 0xd85dc12e wm5102_i2c_regmap +EXPORT_SYMBOL_GPL vmlinux 0xd86f623b wm8994_reg_read +EXPORT_SYMBOL_GPL vmlinux 0xd87601cc ring_buffer_unlock_commit +EXPORT_SYMBOL_GPL vmlinux 0xd87ea5f7 pm_runtime_barrier +EXPORT_SYMBOL_GPL vmlinux 0xd88ee954 sysfs_add_link_to_group +EXPORT_SYMBOL_GPL vmlinux 0xd899d05b iommu_domain_get_attr +EXPORT_SYMBOL_GPL vmlinux 0xd8d81217 driver_register +EXPORT_SYMBOL_GPL vmlinux 0xd8e5d29e extcon_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0xd919806a amd_cache_northbridges +EXPORT_SYMBOL_GPL vmlinux 0xd938fc8c sata_sff_hardreset +EXPORT_SYMBOL_GPL vmlinux 0xd93d94b6 xen_swiotlb_sync_sg_for_cpu +EXPORT_SYMBOL_GPL vmlinux 0xd942d353 ring_buffer_record_off +EXPORT_SYMBOL_GPL vmlinux 0xd94b737e erst_read +EXPORT_SYMBOL_GPL vmlinux 0xd96b4fed usb_hcd_pci_pm_ops +EXPORT_SYMBOL_GPL vmlinux 0xd97743ff usb_enable_ltm +EXPORT_SYMBOL_GPL vmlinux 0xd989dff5 srcu_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xd9937f5c platform_bus_type +EXPORT_SYMBOL_GPL vmlinux 0xd9aef62d skb_gro_receive +EXPORT_SYMBOL_GPL vmlinux 0xd9c4d451 rio_request_inb_dbell +EXPORT_SYMBOL_GPL vmlinux 0xd9d46b64 user_read +EXPORT_SYMBOL_GPL vmlinux 0xd9d7f623 pkey_id_type +EXPORT_SYMBOL_GPL vmlinux 0xd9e7480c netlink_alloc_skb +EXPORT_SYMBOL_GPL vmlinux 0xd9ecb670 ring_buffer_overruns +EXPORT_SYMBOL_GPL vmlinux 0xda005b40 ata_std_prereset +EXPORT_SYMBOL_GPL vmlinux 0xda3a7ca9 regulator_is_enabled +EXPORT_SYMBOL_GPL vmlinux 0xda44cb37 setup_charger_manager +EXPORT_SYMBOL_GPL vmlinux 0xda5ca29a single_release_net +EXPORT_SYMBOL_GPL vmlinux 0xda95ad51 spi_write_then_read +EXPORT_SYMBOL_GPL vmlinux 0xdaa2f946 dm_set_device_limits +EXPORT_SYMBOL_GPL vmlinux 0xdaa6973f xen_swiotlb_dma_mapping_error +EXPORT_SYMBOL_GPL vmlinux 0xdaf4dfb3 fb_mode_option +EXPORT_SYMBOL_GPL vmlinux 0xdafcfcab sg_scsi_ioctl +EXPORT_SYMBOL_GPL vmlinux 0xdb04cacc tracepoint_probe_unregister_noupdate +EXPORT_SYMBOL_GPL vmlinux 0xdb533107 platform_device_add +EXPORT_SYMBOL_GPL vmlinux 0xdb58ad07 ata_acpi_cbl_80wire +EXPORT_SYMBOL_GPL vmlinux 0xdb8a1b3f usermodehelper_read_trylock +EXPORT_SYMBOL_GPL vmlinux 0xdba4ad93 static_key_slow_dec_deferred +EXPORT_SYMBOL_GPL vmlinux 0xdbac68d7 fat_attach +EXPORT_SYMBOL_GPL vmlinux 0xdbbb1ae3 fuse_request_alloc +EXPORT_SYMBOL_GPL vmlinux 0xdbcfddd1 uprobe_register +EXPORT_SYMBOL_GPL vmlinux 0xdbe31bb0 efivar_entry_add +EXPORT_SYMBOL_GPL vmlinux 0xdbefcd64 hrtimer_start_range_ns +EXPORT_SYMBOL_GPL vmlinux 0xdbf7cb70 mpi_get_nbits +EXPORT_SYMBOL_GPL vmlinux 0xdc14a211 xen_hvm_evtchn_do_upcall +EXPORT_SYMBOL_GPL vmlinux 0xdc26738e ata_sff_irq_on +EXPORT_SYMBOL_GPL vmlinux 0xdc59a32f wakeup_source_drop +EXPORT_SYMBOL_GPL vmlinux 0xdc6699cb acpi_dev_free_resource_list +EXPORT_SYMBOL_GPL vmlinux 0xdc740d3a unregister_kretprobe +EXPORT_SYMBOL_GPL vmlinux 0xdc825d6c usb_amd_quirk_pll_disable +EXPORT_SYMBOL_GPL vmlinux 0xdc97af2e syscore_suspend +EXPORT_SYMBOL_GPL vmlinux 0xdc9fa232 raw_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0xdca3b6a7 md_new_event +EXPORT_SYMBOL_GPL vmlinux 0xdcc055b2 alarm_try_to_cancel +EXPORT_SYMBOL_GPL vmlinux 0xdce57037 apei_estatus_print +EXPORT_SYMBOL_GPL vmlinux 0xdd1028ac fuse_conn_get +EXPORT_SYMBOL_GPL vmlinux 0xdd2efc0f ring_buffer_reset_cpu +EXPORT_SYMBOL_GPL vmlinux 0xdd391eff profile_event_unregister +EXPORT_SYMBOL_GPL vmlinux 0xdd439e16 platform_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0xdd44a320 seq_release_net +EXPORT_SYMBOL_GPL vmlinux 0xdd794d33 phys_wc_to_mtrr_index +EXPORT_SYMBOL_GPL vmlinux 0xdd9316c3 iommu_domain_alloc +EXPORT_SYMBOL_GPL vmlinux 0xdd9c3e6d get_task_comm +EXPORT_SYMBOL_GPL vmlinux 0xddd58dc0 ring_buffer_reset +EXPORT_SYMBOL_GPL vmlinux 0xddefbc51 ata_host_alloc +EXPORT_SYMBOL_GPL vmlinux 0xde024adf rtc_initialize_alarm +EXPORT_SYMBOL_GPL vmlinux 0xde12af7d init_dummy_netdev +EXPORT_SYMBOL_GPL vmlinux 0xde37e771 task_xstate_cachep +EXPORT_SYMBOL_GPL vmlinux 0xde3838d8 devm_kzalloc +EXPORT_SYMBOL_GPL vmlinux 0xde747356 intel_msic_reg_write +EXPORT_SYMBOL_GPL vmlinux 0xde8f877f kernel_kobj +EXPORT_SYMBOL_GPL vmlinux 0xde90ae8c watchdog_register_device +EXPORT_SYMBOL_GPL vmlinux 0xde9e5e42 ping_close +EXPORT_SYMBOL_GPL vmlinux 0xdec9fbdb devres_destroy +EXPORT_SYMBOL_GPL vmlinux 0xdf0f75c6 eventfd_signal +EXPORT_SYMBOL_GPL vmlinux 0xdf11ce79 pci_find_next_ext_capability +EXPORT_SYMBOL_GPL vmlinux 0xdf16d38f hwpoison_filter +EXPORT_SYMBOL_GPL vmlinux 0xdf1882af dbgp_reset_prep +EXPORT_SYMBOL_GPL vmlinux 0xdf2af64c alarm_forward +EXPORT_SYMBOL_GPL vmlinux 0xdf443906 device_init_wakeup +EXPORT_SYMBOL_GPL vmlinux 0xdf48e132 cpufreq_frequency_table_target +EXPORT_SYMBOL_GPL vmlinux 0xdf52227e acpi_ec_add_query_handler +EXPORT_SYMBOL_GPL vmlinux 0xdf8c2bf0 blk_rq_check_limits +EXPORT_SYMBOL_GPL vmlinux 0xdfa02d58 usb_find_alt_setting +EXPORT_SYMBOL_GPL vmlinux 0xdfa1fd06 klist_iter_init_node +EXPORT_SYMBOL_GPL vmlinux 0xdfc23c38 blkcg_root +EXPORT_SYMBOL_GPL vmlinux 0xdfdbde32 power_supply_powers +EXPORT_SYMBOL_GPL vmlinux 0xdff4241b relay_close +EXPORT_SYMBOL_GPL vmlinux 0xe007de41 kallsyms_lookup_name +EXPORT_SYMBOL_GPL vmlinux 0xe02eb6d0 ring_buffer_commit_overrun_cpu +EXPORT_SYMBOL_GPL vmlinux 0xe0413236 __hvc_resize +EXPORT_SYMBOL_GPL vmlinux 0xe047ef24 ip6_datagram_send_ctl +EXPORT_SYMBOL_GPL vmlinux 0xe089cfcc agp_memory_reserved +EXPORT_SYMBOL_GPL vmlinux 0xe0a74f55 sata_pmp_port_ops +EXPORT_SYMBOL_GPL vmlinux 0xe0afa163 cgroup_unload_subsys +EXPORT_SYMBOL_GPL vmlinux 0xe0c3373b acpi_dma_simple_xlate +EXPORT_SYMBOL_GPL vmlinux 0xe0c77bb5 mce_notify_irq +EXPORT_SYMBOL_GPL vmlinux 0xe10cd6ad erst_get_record_id_begin +EXPORT_SYMBOL_GPL vmlinux 0xe10ebb9d sata_scr_write +EXPORT_SYMBOL_GPL vmlinux 0xe118a4bc alloc_acpi_hp_work +EXPORT_SYMBOL_GPL vmlinux 0xe12036b8 tps6586x_clr_bits +EXPORT_SYMBOL_GPL vmlinux 0xe12255b9 ata_bmdma_status +EXPORT_SYMBOL_GPL vmlinux 0xe12392d4 usb_sg_wait +EXPORT_SYMBOL_GPL vmlinux 0xe1358ce8 dma_buf_mmap +EXPORT_SYMBOL_GPL vmlinux 0xe155b751 spi_busnum_to_master +EXPORT_SYMBOL_GPL vmlinux 0xe15a6c9f ata_dev_pair +EXPORT_SYMBOL_GPL vmlinux 0xe1781d5f arizona_dev_init +EXPORT_SYMBOL_GPL vmlinux 0xe189472f ata_sff_softreset +EXPORT_SYMBOL_GPL vmlinux 0xe1964dd9 device_wakeup_disable +EXPORT_SYMBOL_GPL vmlinux 0xe19c26ab sysfs_create_files +EXPORT_SYMBOL_GPL vmlinux 0xe1a719d6 regmap_read +EXPORT_SYMBOL_GPL vmlinux 0xe1bd6c99 rio_init_mports +EXPORT_SYMBOL_GPL vmlinux 0xe1c067b0 platform_device_add_data +EXPORT_SYMBOL_GPL vmlinux 0xe1caa1be tty_ldisc_flush +EXPORT_SYMBOL_GPL vmlinux 0xe22efd4d ipv6_find_tlv +EXPORT_SYMBOL_GPL vmlinux 0xe23fe12d pci_pri_enabled +EXPORT_SYMBOL_GPL vmlinux 0xe24af000 cpufreq_get_measured_perf +EXPORT_SYMBOL_GPL vmlinux 0xe26e46f0 acpi_dev_resource_ext_address_space +EXPORT_SYMBOL_GPL vmlinux 0xe26f2223 pwm_set_polarity +EXPORT_SYMBOL_GPL vmlinux 0xe281423a locks_release_private +EXPORT_SYMBOL_GPL vmlinux 0xe28efafc unregister_wide_hw_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0xe295c0ff is_hpet_enabled +EXPORT_SYMBOL_GPL vmlinux 0xe2a3e6e8 debugfs_create_u8 +EXPORT_SYMBOL_GPL vmlinux 0xe2a5bf42 sdio_release_irq +EXPORT_SYMBOL_GPL vmlinux 0xe2a81542 crypto_mod_put +EXPORT_SYMBOL_GPL vmlinux 0xe2ce9a61 nl_table +EXPORT_SYMBOL_GPL vmlinux 0xe2dd67e5 regulator_set_current_limit +EXPORT_SYMBOL_GPL vmlinux 0xe2e7840d regmap_init_mmio_clk +EXPORT_SYMBOL_GPL vmlinux 0xe3043ff9 request_any_context_irq +EXPORT_SYMBOL_GPL vmlinux 0xe30ed3a5 ata_eh_freeze_port +EXPORT_SYMBOL_GPL vmlinux 0xe33dd8d2 __rtnl_link_unregister +EXPORT_SYMBOL_GPL vmlinux 0xe3614932 pci_sriov_get_totalvfs +EXPORT_SYMBOL_GPL vmlinux 0xe384a102 usb_speed_string +EXPORT_SYMBOL_GPL vmlinux 0xe389d606 rtc_irq_set_freq +EXPORT_SYMBOL_GPL vmlinux 0xe3b26cab usb_wakeup_notification +EXPORT_SYMBOL_GPL vmlinux 0xe3bc7fd4 hpet_unregister_irq_handler +EXPORT_SYMBOL_GPL vmlinux 0xe41534ce bind_evtchn_to_irqhandler +EXPORT_SYMBOL_GPL vmlinux 0xe42744f8 acpi_register_gsi +EXPORT_SYMBOL_GPL vmlinux 0xe4309905 syscore_resume +EXPORT_SYMBOL_GPL vmlinux 0xe439815c erst_get_record_count +EXPORT_SYMBOL_GPL vmlinux 0xe466c1f6 mmc_regulator_set_ocr +EXPORT_SYMBOL_GPL vmlinux 0xe4875dbd irq_get_irq_data +EXPORT_SYMBOL_GPL vmlinux 0xe49fdd0c irq_remove_generic_chip +EXPORT_SYMBOL_GPL vmlinux 0xe4ba905a crypto_alloc_base +EXPORT_SYMBOL_GPL vmlinux 0xe4c331b6 acpi_os_unmap_memory +EXPORT_SYMBOL_GPL vmlinux 0xe4c4f4bd thermal_zone_get_temp +EXPORT_SYMBOL_GPL vmlinux 0xe4e68bc8 apei_map_generic_address +EXPORT_SYMBOL_GPL vmlinux 0xe4f6ad83 acpiphp_register_attention +EXPORT_SYMBOL_GPL vmlinux 0xe53ac38f alarm_forward_now +EXPORT_SYMBOL_GPL vmlinux 0xe5874b33 pci_user_write_config_byte +EXPORT_SYMBOL_GPL vmlinux 0xe5883bd9 class_compat_unregister +EXPORT_SYMBOL_GPL vmlinux 0xe58fb452 aer_irq +EXPORT_SYMBOL_GPL vmlinux 0xe59677cd evm_verifyxattr +EXPORT_SYMBOL_GPL vmlinux 0xe5a0b657 thermal_zone_unbind_cooling_device +EXPORT_SYMBOL_GPL vmlinux 0xe5d8091e __mmu_notifier_register +EXPORT_SYMBOL_GPL vmlinux 0xe5e25fd6 vfs_setxattr +EXPORT_SYMBOL_GPL vmlinux 0xe62f5f80 find_symbol +EXPORT_SYMBOL_GPL vmlinux 0xe632f89d srcu_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0xe63a4876 nf_queue_entry_get_refs +EXPORT_SYMBOL_GPL vmlinux 0xe64ad8ea unregister_nmi_handler +EXPORT_SYMBOL_GPL vmlinux 0xe64c1c35 rio_mport_read_config_8 +EXPORT_SYMBOL_GPL vmlinux 0xe651f76e selinux_is_enabled +EXPORT_SYMBOL_GPL vmlinux 0xe65503ca pm_stay_awake +EXPORT_SYMBOL_GPL vmlinux 0xe66417dc sysfs_remove_file +EXPORT_SYMBOL_GPL vmlinux 0xe6646878 srcu_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0xe676f097 wm8400_reg_read +EXPORT_SYMBOL_GPL vmlinux 0xe6c68334 ddebug_remove_module +EXPORT_SYMBOL_GPL vmlinux 0xe6dd04af init_user_ns +EXPORT_SYMBOL_GPL vmlinux 0xe6e1c5fe uuid_be_gen +EXPORT_SYMBOL_GPL vmlinux 0xe71214b1 ahash_register_instance +EXPORT_SYMBOL_GPL vmlinux 0xe7232e0f user_return_notifier_unregister +EXPORT_SYMBOL_GPL vmlinux 0xe769232e sprint_symbol_no_offset +EXPORT_SYMBOL_GPL vmlinux 0xe7798520 acpi_dma_controller_free +EXPORT_SYMBOL_GPL vmlinux 0xe79211ea sk_attach_filter +EXPORT_SYMBOL_GPL vmlinux 0xe79e7975 serial8250_tx_dma +EXPORT_SYMBOL_GPL vmlinux 0xe7a362c2 pci_cleanup_aer_uncorrect_error_status +EXPORT_SYMBOL_GPL vmlinux 0xe7b0dd12 debugfs_create_u64 +EXPORT_SYMBOL_GPL vmlinux 0xe7ba3c1e ata_sff_wait_ready +EXPORT_SYMBOL_GPL vmlinux 0xe7bc5e70 regulator_set_bypass_regmap +EXPORT_SYMBOL_GPL vmlinux 0xe7bccd64 page_cache_async_readahead +EXPORT_SYMBOL_GPL vmlinux 0xe7ecbaab pci_msi_off +EXPORT_SYMBOL_GPL vmlinux 0xe7f51669 regulator_map_voltage_iterate +EXPORT_SYMBOL_GPL vmlinux 0xe7fcabcd hrtimer_init_sleeper +EXPORT_SYMBOL_GPL vmlinux 0xe7ffe877 pcpu_base_addr +EXPORT_SYMBOL_GPL vmlinux 0xe80d2f44 spi_alloc_master +EXPORT_SYMBOL_GPL vmlinux 0xe818b32b ata_bmdma_interrupt +EXPORT_SYMBOL_GPL vmlinux 0xe823e6c8 wait_for_tpm_stat +EXPORT_SYMBOL_GPL vmlinux 0xe8312b22 xenbus_free_evtchn +EXPORT_SYMBOL_GPL vmlinux 0xe84f6e5c pciserial_remove_ports +EXPORT_SYMBOL_GPL vmlinux 0xe862c4b7 dpm_suspend_start +EXPORT_SYMBOL_GPL vmlinux 0xe86a6a77 clk_set_rate +EXPORT_SYMBOL_GPL vmlinux 0xe91b46b6 usb_put_dev +EXPORT_SYMBOL_GPL vmlinux 0xe91d5aa2 show_class_attr_string +EXPORT_SYMBOL_GPL vmlinux 0xe93e49c3 devres_free +EXPORT_SYMBOL_GPL vmlinux 0xe93e9ca9 tty_prepare_flip_string +EXPORT_SYMBOL_GPL vmlinux 0xe962d9f2 wm8350_reg_write +EXPORT_SYMBOL_GPL vmlinux 0xe9b12944 platform_device_alloc +EXPORT_SYMBOL_GPL vmlinux 0xe9b62532 pci_hp_deregister +EXPORT_SYMBOL_GPL vmlinux 0xe9b95068 anon_transport_class_unregister +EXPORT_SYMBOL_GPL vmlinux 0xe9c9b82e posix_clock_unregister +EXPORT_SYMBOL_GPL vmlinux 0xe9ca0062 led_trigger_store +EXPORT_SYMBOL_GPL vmlinux 0xe9d1b7cf irq_to_pcap +EXPORT_SYMBOL_GPL vmlinux 0xe9d78ce0 sata_scr_write_flush +EXPORT_SYMBOL_GPL vmlinux 0xe9f5eeb3 cpuidle_register +EXPORT_SYMBOL_GPL vmlinux 0xea03d087 blocking_notifier_chain_cond_register +EXPORT_SYMBOL_GPL vmlinux 0xea124bd1 gcd +EXPORT_SYMBOL_GPL vmlinux 0xea22de68 fib_rules_lookup +EXPORT_SYMBOL_GPL vmlinux 0xea403d87 pci_scan_child_bus +EXPORT_SYMBOL_GPL vmlinux 0xea418e0f atapi_cmd_type +EXPORT_SYMBOL_GPL vmlinux 0xea5fc395 ata_acpi_gtm_xfermask +EXPORT_SYMBOL_GPL vmlinux 0xea75f9ac sdio_readl +EXPORT_SYMBOL_GPL vmlinux 0xeaaad53d __cpufreq_driver_target +EXPORT_SYMBOL_GPL vmlinux 0xeaaef7cc pci_disable_rom +EXPORT_SYMBOL_GPL vmlinux 0xeabe1a1f ipv6_opt_accepted +EXPORT_SYMBOL_GPL vmlinux 0xeafd06a2 ata_bmdma_port_intr +EXPORT_SYMBOL_GPL vmlinux 0xeb1c3628 nf_ipv6_ops +EXPORT_SYMBOL_GPL vmlinux 0xeb229d02 napi_hash_add +EXPORT_SYMBOL_GPL vmlinux 0xeb370805 __apei_exec_run +EXPORT_SYMBOL_GPL vmlinux 0xeb3be3ce transport_add_device +EXPORT_SYMBOL_GPL vmlinux 0xeb4b2441 da9052_request_irq +EXPORT_SYMBOL_GPL vmlinux 0xeb58b4c7 acpi_debugfs_dir +EXPORT_SYMBOL_GPL vmlinux 0xeb6a7611 anon_inode_getfd +EXPORT_SYMBOL_GPL vmlinux 0xeb9abbee ata_sff_queue_work +EXPORT_SYMBOL_GPL vmlinux 0xeba7f7c0 preempt_notifier_unregister +EXPORT_SYMBOL_GPL vmlinux 0xebb91630 sis_info133_for_sata +EXPORT_SYMBOL_GPL vmlinux 0xebe7d438 led_trigger_set_default +EXPORT_SYMBOL_GPL vmlinux 0xebec57c4 ring_buffer_oldest_event_ts +EXPORT_SYMBOL_GPL vmlinux 0xec04986e power_supply_class +EXPORT_SYMBOL_GPL vmlinux 0xec1b043e regulator_suspend_prepare +EXPORT_SYMBOL_GPL vmlinux 0xec25f967 klist_del +EXPORT_SYMBOL_GPL vmlinux 0xec282dcc dma_buf_kunmap_atomic +EXPORT_SYMBOL_GPL vmlinux 0xec404491 perf_pmu_migrate_context +EXPORT_SYMBOL_GPL vmlinux 0xec44e3c0 regmap_raw_write +EXPORT_SYMBOL_GPL vmlinux 0xec5a14bf swiotlb_tbl_map_single +EXPORT_SYMBOL_GPL vmlinux 0xec7e3579 debugfs_create_blob +EXPORT_SYMBOL_GPL vmlinux 0xec7fa3a8 iptunnel_xmit +EXPORT_SYMBOL_GPL vmlinux 0xecddc3e2 invalidate_inode_pages2 +EXPORT_SYMBOL_GPL vmlinux 0xecf3ebfb usb_poison_urb +EXPORT_SYMBOL_GPL vmlinux 0xed43923d ata_std_postreset +EXPORT_SYMBOL_GPL vmlinux 0xed52f156 kobject_create_and_add +EXPORT_SYMBOL_GPL vmlinux 0xedbc6f67 gnttab_end_foreign_access +EXPORT_SYMBOL_GPL vmlinux 0xedbd51ba __mmu_notifier_invalidate_range_start +EXPORT_SYMBOL_GPL vmlinux 0xedc3d243 virtio_check_driver_offered_feature +EXPORT_SYMBOL_GPL vmlinux 0xedd49930 zs_create_pool +EXPORT_SYMBOL_GPL vmlinux 0xedd7587b blk_queue_flush_queueable +EXPORT_SYMBOL_GPL vmlinux 0xede2c395 acpi_get_gpio_by_index +EXPORT_SYMBOL_GPL vmlinux 0xedf3f1f1 do_machine_check +EXPORT_SYMBOL_GPL vmlinux 0xedf750e0 tpm_pm_suspend +EXPORT_SYMBOL_GPL vmlinux 0xee274f97 kobject_rename +EXPORT_SYMBOL_GPL vmlinux 0xee45bebc tcp_is_cwnd_limited +EXPORT_SYMBOL_GPL vmlinux 0xee49d3ea shmem_file_setup +EXPORT_SYMBOL_GPL vmlinux 0xee6b71c4 syscon_regmap_lookup_by_compatible +EXPORT_SYMBOL_GPL vmlinux 0xee787c50 crypto_ahash_final +EXPORT_SYMBOL_GPL vmlinux 0xee81ef8d ftrace_set_filter_ip +EXPORT_SYMBOL_GPL vmlinux 0xee8ac0f3 tc3589x_block_write +EXPORT_SYMBOL_GPL vmlinux 0xeec02bb0 pci_restore_ats_state +EXPORT_SYMBOL_GPL vmlinux 0xeec1789c cpci_hp_register_bus +EXPORT_SYMBOL_GPL vmlinux 0xeec24d31 usb_wait_anchor_empty_timeout +EXPORT_SYMBOL_GPL vmlinux 0xeefb8ac2 da903x_clr_bits +EXPORT_SYMBOL_GPL vmlinux 0xef0859a3 relay_subbufs_consumed +EXPORT_SYMBOL_GPL vmlinux 0xef1f6e23 apei_resources_request +EXPORT_SYMBOL_GPL vmlinux 0xef202b44 rio_release_inb_mbox +EXPORT_SYMBOL_GPL vmlinux 0xef23d470 klist_add_tail +EXPORT_SYMBOL_GPL vmlinux 0xef2ba513 public_key_subtype +EXPORT_SYMBOL_GPL vmlinux 0xef409b74 kmsg_dump_get_line +EXPORT_SYMBOL_GPL vmlinux 0xef6c3f70 round_jiffies_up_relative +EXPORT_SYMBOL_GPL vmlinux 0xef782b88 gnttab_grant_foreign_access_subpage +EXPORT_SYMBOL_GPL vmlinux 0xef8c7850 pcap_adc_async +EXPORT_SYMBOL_GPL vmlinux 0xef945170 tpm_gen_interrupt +EXPORT_SYMBOL_GPL vmlinux 0xefc91531 irq_create_of_mapping +EXPORT_SYMBOL_GPL vmlinux 0xefce329a mmc_regulator_get_supply +EXPORT_SYMBOL_GPL vmlinux 0xefd6f850 wm831x_auxadc_read_uv +EXPORT_SYMBOL_GPL vmlinux 0xeff3732b ehci_cf_port_reset_rwsem +EXPORT_SYMBOL_GPL vmlinux 0xf0004088 rio_register_driver +EXPORT_SYMBOL_GPL vmlinux 0xf054ac97 intel_msic_irq_read +EXPORT_SYMBOL_GPL vmlinux 0xf0696401 acpi_pci_detect_ejectable +EXPORT_SYMBOL_GPL vmlinux 0xf0951f1b usb_get_phy +EXPORT_SYMBOL_GPL vmlinux 0xf0a28c5f ping_recvmsg +EXPORT_SYMBOL_GPL vmlinux 0xf0a49c49 ata_bmdma_setup +EXPORT_SYMBOL_GPL vmlinux 0xf0c70228 vfs_removexattr +EXPORT_SYMBOL_GPL vmlinux 0xf0f5dbc2 timerqueue_iterate_next +EXPORT_SYMBOL_GPL vmlinux 0xf0f72dee clk_unprepare +EXPORT_SYMBOL_GPL vmlinux 0xf0fb8dca register_kretprobes +EXPORT_SYMBOL_GPL vmlinux 0xf115fb33 pci_get_hp_params +EXPORT_SYMBOL_GPL vmlinux 0xf1172c48 fuse_do_ioctl +EXPORT_SYMBOL_GPL vmlinux 0xf11912e5 rio_enable_rx_tx_port +EXPORT_SYMBOL_GPL vmlinux 0xf12e3f0b i2c_bus_type +EXPORT_SYMBOL_GPL vmlinux 0xf184d189 kernel_power_off +EXPORT_SYMBOL_GPL vmlinux 0xf186c82f nl_table_lock +EXPORT_SYMBOL_GPL vmlinux 0xf1940e60 pci_sriov_migration +EXPORT_SYMBOL_GPL vmlinux 0xf1b31314 delayacct_on +EXPORT_SYMBOL_GPL vmlinux 0xf1b551d9 ibft_addr +EXPORT_SYMBOL_GPL vmlinux 0xf1c67249 usb_acpi_power_manageable +EXPORT_SYMBOL_GPL vmlinux 0xf1e5c718 ip6_sk_dst_lookup_flow +EXPORT_SYMBOL_GPL vmlinux 0xf1eac845 pm_generic_restore_early +EXPORT_SYMBOL_GPL vmlinux 0xf20b5de1 fat_add_entries +EXPORT_SYMBOL_GPL vmlinux 0xf20e04d0 rt_mutex_trylock +EXPORT_SYMBOL_GPL vmlinux 0xf2170e35 pwmchip_remove +EXPORT_SYMBOL_GPL vmlinux 0xf21e1f9b disable_percpu_irq +EXPORT_SYMBOL_GPL vmlinux 0xf25a537e tpm_show_temp_deactivated +EXPORT_SYMBOL_GPL vmlinux 0xf27977e2 async_synchronize_cookie_domain +EXPORT_SYMBOL_GPL vmlinux 0xf281bb28 usb_ifnum_to_if +EXPORT_SYMBOL_GPL vmlinux 0xf2b3146f sdio_set_block_size +EXPORT_SYMBOL_GPL vmlinux 0xf2b4cfdc tpm_pm_resume +EXPORT_SYMBOL_GPL vmlinux 0xf2c85436 hrtimer_forward +EXPORT_SYMBOL_GPL vmlinux 0xf2e4fe64 raw_hash_sk +EXPORT_SYMBOL_GPL vmlinux 0xf2e81568 device_create_file +EXPORT_SYMBOL_GPL vmlinux 0xf2fca922 uart_parse_options +EXPORT_SYMBOL_GPL vmlinux 0xf2fd3eef crypto_register_alg +EXPORT_SYMBOL_GPL vmlinux 0xf30e105d ezx_pcap_write +EXPORT_SYMBOL_GPL vmlinux 0xf30fda27 lzo1x_decompress_safe +EXPORT_SYMBOL_GPL vmlinux 0xf31b3fd1 workqueue_set_max_active +EXPORT_SYMBOL_GPL vmlinux 0xf32bdc5d unregister_xenstore_notifier +EXPORT_SYMBOL_GPL vmlinux 0xf331236f btree_geo32 +EXPORT_SYMBOL_GPL vmlinux 0xf34a4dc8 usb_hcd_link_urb_to_ep +EXPORT_SYMBOL_GPL vmlinux 0xf36aad47 xenbus_grant_ring +EXPORT_SYMBOL_GPL vmlinux 0xf39a6aae edac_subsys +EXPORT_SYMBOL_GPL vmlinux 0xf39c1f4e gpiochip_add +EXPORT_SYMBOL_GPL vmlinux 0xf3a1c045 inet6_csk_search_req +EXPORT_SYMBOL_GPL vmlinux 0xf3b451ca kdb_poll_funcs +EXPORT_SYMBOL_GPL vmlinux 0xf3c16b76 ata_qc_complete_multiple +EXPORT_SYMBOL_GPL vmlinux 0xf3c98143 usb_root_hub_lost_power +EXPORT_SYMBOL_GPL vmlinux 0xf3d3fb44 pci_set_pcie_reset_state +EXPORT_SYMBOL_GPL vmlinux 0xf3dd036d regulator_set_voltage_time +EXPORT_SYMBOL_GPL vmlinux 0xf3ffce45 acpi_dev_pm_remove_dependent +EXPORT_SYMBOL_GPL vmlinux 0xf418f574 bus_rescan_devices +EXPORT_SYMBOL_GPL vmlinux 0xf43bbaf4 platform_get_resource_byname +EXPORT_SYMBOL_GPL vmlinux 0xf458565d __netpoll_free_async +EXPORT_SYMBOL_GPL vmlinux 0xf46177c8 rtc_read_alarm +EXPORT_SYMBOL_GPL vmlinux 0xf494f618 mmc_regulator_get_ocrmask +EXPORT_SYMBOL_GPL vmlinux 0xf499fdb2 rcu_barrier_bh +EXPORT_SYMBOL_GPL vmlinux 0xf4c35de6 fat_build_inode +EXPORT_SYMBOL_GPL vmlinux 0xf4e88ed6 __srcu_read_lock +EXPORT_SYMBOL_GPL vmlinux 0xf4e9fa18 usb_disable_xhci_ports +EXPORT_SYMBOL_GPL vmlinux 0xf4fc2d6c __ring_buffer_alloc +EXPORT_SYMBOL_GPL vmlinux 0xf522f067 register_pernet_device +EXPORT_SYMBOL_GPL vmlinux 0xf54bd49b lcm +EXPORT_SYMBOL_GPL vmlinux 0xf553318d cpuidle_pause_and_lock +EXPORT_SYMBOL_GPL vmlinux 0xf5785b42 evtchn_get +EXPORT_SYMBOL_GPL vmlinux 0xf5814ac1 ehci_suspend +EXPORT_SYMBOL_GPL vmlinux 0xf5945bac gnttab_free_grant_references +EXPORT_SYMBOL_GPL vmlinux 0xf5a691cd invalidate_bh_lrus +EXPORT_SYMBOL_GPL vmlinux 0xf5d1dbb1 ata_bmdma_port_ops +EXPORT_SYMBOL_GPL vmlinux 0xf5f538ab cpufreq_governor_dbs +EXPORT_SYMBOL_GPL vmlinux 0xf5fef4e3 wm5110_spi_regmap +EXPORT_SYMBOL_GPL vmlinux 0xf64418cc tty_port_register_device +EXPORT_SYMBOL_GPL vmlinux 0xf6508394 acpi_dev_resume_early +EXPORT_SYMBOL_GPL vmlinux 0xf65a717d crypto_register_shashes +EXPORT_SYMBOL_GPL vmlinux 0xf6840c90 wm8350_gpio_config +EXPORT_SYMBOL_GPL vmlinux 0xf69617e7 swiotlb_tbl_unmap_single +EXPORT_SYMBOL_GPL vmlinux 0xf6a72dc7 virtqueue_detach_unused_buf +EXPORT_SYMBOL_GPL vmlinux 0xf6d538b3 rdev_clear_badblocks +EXPORT_SYMBOL_GPL vmlinux 0xf6da905d tun_get_socket +EXPORT_SYMBOL_GPL vmlinux 0xf6e04730 event_storage +EXPORT_SYMBOL_GPL vmlinux 0xf6e874f5 ata_timing_merge +EXPORT_SYMBOL_GPL vmlinux 0xf6e8e944 sata_async_notification +EXPORT_SYMBOL_GPL vmlinux 0xf6eba3b3 inet_csk_update_pmtu +EXPORT_SYMBOL_GPL vmlinux 0xf7016530 xenbus_gather +EXPORT_SYMBOL_GPL vmlinux 0xf70274b9 stmpe_disable +EXPORT_SYMBOL_GPL vmlinux 0xf71f2358 cgroup_taskset_cur_cgroup +EXPORT_SYMBOL_GPL vmlinux 0xf7306d36 tpm_get_timeouts +EXPORT_SYMBOL_GPL vmlinux 0xf7322bc8 pv_time_ops +EXPORT_SYMBOL_GPL vmlinux 0xf74656ab regulator_can_change_voltage +EXPORT_SYMBOL_GPL vmlinux 0xf7a14f56 apei_mce_report_mem_error +EXPORT_SYMBOL_GPL vmlinux 0xf7a21854 pwm_put +EXPORT_SYMBOL_GPL vmlinux 0xf7daadc3 register_kprobes +EXPORT_SYMBOL_GPL vmlinux 0xf7df3cdd rio_request_inb_mbox +EXPORT_SYMBOL_GPL vmlinux 0xf7e10fdf tcp_reno_ssthresh +EXPORT_SYMBOL_GPL vmlinux 0xf7e57a33 regmap_raw_read +EXPORT_SYMBOL_GPL vmlinux 0xf80a6785 pm_generic_thaw_noirq +EXPORT_SYMBOL_GPL vmlinux 0xf812b773 cgroup_taskset_first +EXPORT_SYMBOL_GPL vmlinux 0xf82ad670 dm_requeue_unmapped_request +EXPORT_SYMBOL_GPL vmlinux 0xf82f16b3 execute_in_process_context +EXPORT_SYMBOL_GPL vmlinux 0xf82f3657 work_on_cpu +EXPORT_SYMBOL_GPL vmlinux 0xf849645e relay_buf_full +EXPORT_SYMBOL_GPL vmlinux 0xf85ea134 regulator_get +EXPORT_SYMBOL_GPL vmlinux 0xf86a3a9f clk_gate_ops +EXPORT_SYMBOL_GPL vmlinux 0xf8802492 print_stack_trace +EXPORT_SYMBOL_GPL vmlinux 0xf8912dda sock_diag_register_inet_compat +EXPORT_SYMBOL_GPL vmlinux 0xf89ea12c device_reset +EXPORT_SYMBOL_GPL vmlinux 0xf8d6341f ata_dummy_port_info +EXPORT_SYMBOL_GPL vmlinux 0xf8dafad4 dma_buf_put +EXPORT_SYMBOL_GPL vmlinux 0xf8f3a0fb ata_ratelimit +EXPORT_SYMBOL_GPL vmlinux 0xf8fe3d0b kmsg_dump_register +EXPORT_SYMBOL_GPL vmlinux 0xf92ce956 kdb_printf +EXPORT_SYMBOL_GPL vmlinux 0xf92d72a7 wm8350_set_bits +EXPORT_SYMBOL_GPL vmlinux 0xf932015f __raw_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xf9492123 acpi_dma_request_slave_chan_by_index +EXPORT_SYMBOL_GPL vmlinux 0xf952715d register_virtio_device +EXPORT_SYMBOL_GPL vmlinux 0xf9570177 perf_event_enable +EXPORT_SYMBOL_GPL vmlinux 0xf960711c devm_rtc_device_register +EXPORT_SYMBOL_GPL vmlinux 0xf97015ce tpm_bios_log_teardown +EXPORT_SYMBOL_GPL vmlinux 0xf9765833 dmi_match +EXPORT_SYMBOL_GPL vmlinux 0xf97666a0 set_memory_rw +EXPORT_SYMBOL_GPL vmlinux 0xf99700d0 inet_getpeer +EXPORT_SYMBOL_GPL vmlinux 0xf9a054b5 __round_jiffies +EXPORT_SYMBOL_GPL vmlinux 0xf9b048a3 sdio_readw +EXPORT_SYMBOL_GPL vmlinux 0xf9b48f95 __pm_runtime_disable +EXPORT_SYMBOL_GPL vmlinux 0xf9ca3160 ata_id_xfermask +EXPORT_SYMBOL_GPL vmlinux 0xf9d9264e xen_have_vector_callback +EXPORT_SYMBOL_GPL vmlinux 0xf9ffcb11 sata_link_resume +EXPORT_SYMBOL_GPL vmlinux 0xfa012fe7 tracepoint_probe_register +EXPORT_SYMBOL_GPL vmlinux 0xfa10a576 ata_noop_qc_prep +EXPORT_SYMBOL_GPL vmlinux 0xfa1eb910 unregister_syscore_ops +EXPORT_SYMBOL_GPL vmlinux 0xfa1f4662 scatterwalk_start +EXPORT_SYMBOL_GPL vmlinux 0xfa463c2c xenbus_frontend_closed +EXPORT_SYMBOL_GPL vmlinux 0xfa4a16ed sysfs_get_dirent +EXPORT_SYMBOL_GPL vmlinux 0xfa5e9026 regmap_bulk_write +EXPORT_SYMBOL_GPL vmlinux 0xfa701667 device_store_bool +EXPORT_SYMBOL_GPL vmlinux 0xfa714f9c device_bind_driver +EXPORT_SYMBOL_GPL vmlinux 0xfaa058d4 device_release_driver +EXPORT_SYMBOL_GPL vmlinux 0xfb057e6b platform_device_add_resources +EXPORT_SYMBOL_GPL vmlinux 0xfb197f9a save_stack_trace_tsk +EXPORT_SYMBOL_GPL vmlinux 0xfb31ddbc crypto_default_rng +EXPORT_SYMBOL_GPL vmlinux 0xfb32b30f ring_buffer_read_prepare_sync +EXPORT_SYMBOL_GPL vmlinux 0xfb5067ef crypto_alloc_pcomp +EXPORT_SYMBOL_GPL vmlinux 0xfb534fe7 serial8250_clear_and_reinit_fifos +EXPORT_SYMBOL_GPL vmlinux 0xfb555a27 unregister_pernet_subsys +EXPORT_SYMBOL_GPL vmlinux 0xfb64b230 acpi_processor_ffh_cstate_probe +EXPORT_SYMBOL_GPL vmlinux 0xfb6eedf9 power_group_name +EXPORT_SYMBOL_GPL vmlinux 0xfb80517b irq_domain_xlate_onecell +EXPORT_SYMBOL_GPL vmlinux 0xfb83db03 cpufreq_show_cpus +EXPORT_SYMBOL_GPL vmlinux 0xfb9194fb irq_create_mapping +EXPORT_SYMBOL_GPL vmlinux 0xfbc14487 eventfd_ctx_fileget +EXPORT_SYMBOL_GPL vmlinux 0xfc03d97a page_is_ram +EXPORT_SYMBOL_GPL vmlinux 0xfc2cb3bb vfs_truncate +EXPORT_SYMBOL_GPL vmlinux 0xfc3b4246 acpi_bus_update_power +EXPORT_SYMBOL_GPL vmlinux 0xfc4f4953 alarm_init +EXPORT_SYMBOL_GPL vmlinux 0xfc6a8669 wm831x_reg_read +EXPORT_SYMBOL_GPL vmlinux 0xfc968c8b apei_exec_write_register_value +EXPORT_SYMBOL_GPL vmlinux 0xfc9c5e9d __class_register +EXPORT_SYMBOL_GPL vmlinux 0xfca46cd0 acpi_kobj +EXPORT_SYMBOL_GPL vmlinux 0xfcadfd1b regcache_mark_dirty +EXPORT_SYMBOL_GPL vmlinux 0xfcd1a908 bmp085_detect +EXPORT_SYMBOL_GPL vmlinux 0xfcd7bc0b ring_buffer_empty +EXPORT_SYMBOL_GPL vmlinux 0xfcfea0d7 securityfs_create_file +EXPORT_SYMBOL_GPL vmlinux 0xfd05464b klist_add_head +EXPORT_SYMBOL_GPL vmlinux 0xfd1b7c44 inet_csk_route_child_sock +EXPORT_SYMBOL_GPL vmlinux 0xfd2d9a12 fuse_request_send +EXPORT_SYMBOL_GPL vmlinux 0xfd51b281 gnttab_end_foreign_access_ref +EXPORT_SYMBOL_GPL vmlinux 0xfd6a95ce isa_register_driver +EXPORT_SYMBOL_GPL vmlinux 0xfd7243c7 erst_disable +EXPORT_SYMBOL_GPL vmlinux 0xfe03e342 irq_setup_generic_chip +EXPORT_SYMBOL_GPL vmlinux 0xfe187cf2 efivar_entry_set +EXPORT_SYMBOL_GPL vmlinux 0xfe1e8dcd usb_add_phy +EXPORT_SYMBOL_GPL vmlinux 0xfe38a168 debugfs_remove_recursive +EXPORT_SYMBOL_GPL vmlinux 0xfe727411 get_phys_to_machine +EXPORT_SYMBOL_GPL vmlinux 0xfe927caa transport_destroy_device +EXPORT_SYMBOL_GPL vmlinux 0xfe990052 gpio_free +EXPORT_SYMBOL_GPL vmlinux 0xfea639f9 pci_intx_mask_supported +EXPORT_SYMBOL_GPL vmlinux 0xfed11ed1 usb_mon_deregister +EXPORT_SYMBOL_GPL vmlinux 0xfeda4e1c look_up_OID +EXPORT_SYMBOL_GPL vmlinux 0xfeea6e8a device_wakeup_enable +EXPORT_SYMBOL_GPL vmlinux 0xfef8a166 trace_current_buffer_lock_reserve +EXPORT_SYMBOL_GPL vmlinux 0xff05fa13 vring_interrupt +EXPORT_SYMBOL_GPL vmlinux 0xff087b74 wm8994_set_bits +EXPORT_SYMBOL_GPL vmlinux 0xff5a8cfe cn_del_callback +EXPORT_SYMBOL_GPL vmlinux 0xff5bef24 ata_pci_device_resume +EXPORT_SYMBOL_GPL vmlinux 0xff5f2b0e __i2c_board_lock +EXPORT_SYMBOL_GPL vmlinux 0xff5fe611 sysfs_create_group +EXPORT_SYMBOL_GPL vmlinux 0xff6917c3 crypto_shash_digest +EXPORT_SYMBOL_GPL vmlinux 0xff95107e aead_geniv_alloc +EXPORT_SYMBOL_GPL vmlinux 0xffd800b2 fib_rules_unregister +EXPORT_SYMBOL_GPL vmlinux 0xfff0ad6b usb_acpi_set_power_state +EXPORT_SYMBOL_GPL vmlinux 0xfffa8c52 efivar_entry_delete --- linux-3.11.0.orig/debian.master/abi/3.11.0-15.23/amd64/generic.compiler +++ linux-3.11.0/debian.master/abi/3.11.0-15.23/amd64/generic.compiler @@ -0,0 +1 @@ +GCC: (Ubuntu/Linaro 4.8.1-10ubuntu8) 4.8.1 --- linux-3.11.0.orig/debian.master/abi/3.11.0-15.23/amd64/generic.modules +++ linux-3.11.0/debian.master/abi/3.11.0-15.23/amd64/generic.modules @@ -0,0 +1,3955 @@ +3c574_cs +3c589_cs +3c59x +3w-9xxx +3w-sas +3w-xxxx +6lowpan +6pack +8021q +8139cp +8139too +8250_dw +8255 +8255_pci +8390 +88pm800 +88pm805 +88pm80x +88pm80x_onkey +88pm860x_battery +88pm860x_bl +88pm860x_charger +88pm860x_onkey +88pm860x-ts +9p +9pnet +9pnet_rdma +9pnet_virtio +a100u2w +a3d +a8293 +aacraid +aat2870_bl +aat2870-regulator +ab3100 +ab3100-otp +abituguru +abituguru3 +ablk_helper +ac97_bus +acard-ahci +acecad +acenic +acerhdf +acer-wmi +acpi_ipmi +acpi_pad +acpiphp_ibm +acpi_power_meter +acquirewdt +act200l-sir +act_csum +act_gact +act_ipt +actisys-sir +act_mirred +act_nat +act_pedit +act_police +act_simple +act_skbedit +ad2s1200 +ad2s1210 +ad2s90 +ad5064 +ad525x_dpot +ad525x_dpot-i2c +ad525x_dpot-spi +ad5360 +ad5380 +ad5398 +ad5421 +ad5446 +ad5449 +ad5504 +ad5624r_spi +ad5686 +ad5755 +ad5764 +ad5791 +ad5930 +ad5933 +ad714x +ad714x-i2c +ad714x-spi +ad7150 +ad7152 +ad7192 +ad7266 +ad7280a +ad7291 +ad7298 +ad7303 +ad7314 +ad7414 +ad7418 +ad7476 +ad7606 +ad7746 +ad7780 +ad7791 +ad7793 +ad7816 +ad7877 +ad7879 +ad7879-i2c +ad7879-spi +ad7887 +ad7923 +ad799x +ad8366 +ad9523 +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_2032 +addi_apci_2200 +addi_apci_3120 +addi_apci_3501 +addi_apci_3xxx +addi_watchdog +ade7753 +ade7754 +ade7758 +ade7759 +ade7854 +ade7854-i2c +ade7854-spi +adf4350 +adfs +adi +adis16060 +adis16080 +adis16130 +adis16136 +adis16201 +adis16203 +adis16204 +adis16209 +adis16220 +adis16240 +adis16260 +adis16400 +adis16480 +adis_lib +adjd_s311 +adl_pci6208 +adl_pci7x3x +adl_pci8164 +adl_pci9111 +adl_pci9118 +adm1021 +adm1025 +adm1026 +adm1029 +adm1031 +adm1275 +adm8211 +adm9240 +adp5520_bl +adp5520-keys +adp5588-keys +adp5589-keys +adp8860_bl +adp8870_bl +ads1015 +ads7828 +ads7846 +ads7871 +ad_sigma_delta +adt7310 +adt7316 +adt7316-i2c +adt7316-spi +adt7410 +adt7411 +adt7462 +adt7470 +adt7475 +adt7x10 +adummy +adutux +adv7170 +adv7175 +adv7180 +advansys +advantechwdt +adv_pci1710 +adv_pci1723 +adv_pci1724 +adv_pci_dio +adxl34x +adxl34x-i2c +adxl34x-spi +adxrs450 +aesni-intel +aes-x86_64 +af_802154 +af9013 +af9033 +af_alg +affs +af_key +af_packet_diag +af-rxrpc +ah4 +ah6 +aha152x_cs +ahci +ahci_imx +ahci_platform +aic79xx +aic7xxx +aic94xx +aiptek +aircable +airo +airo_cs +ak8975 +alauda +algif_hash +algif_skcipher +ali-ircc +alim1535_wdt +alim7101_wdt +alphatrack +altera-ci +altera_jtaguart +altera_ps2 +altera-stapl +altera_uart +alx +ambassador +amc6821 +amd5536udc +amd64_edac_mod +amd76xrom +amd8111e +amd_freq_sensitivity +amd_iommu_v2 +amd-rng +amilo-rfkill +amplc_dio200_common +amplc_dio200_pci +amplc_pc236 +amplc_pci224 +amplc_pci230 +amplc_pci263 +ams369fg06 +analog +anatop-regulator +ansi_cprng +anubis +aoe +apanel +apds9802als +apds990x +apple_bl +appledisplay +apple-gmux +applesmc +appletalk +appletouch +applicom +ar5523 +ar7part +arc4 +arcfb +arcmsr +arcnet +arc_ps2 +arc-rawmode +arc-rimi +arc_uart +arizona-haptics +arizona-i2c +arizona-ldo1 +arizona-micsupp +arizona-spi +ark3116 +arkfb +arptable_filter +arp_tables +arpt_mangle +as3711_bl +as3711-regulator +as5011 +asb100 +asc7621 +asix +ast +asus_atk0110 +asus-laptop +asus-nb-wmi +asus_oled +asus-wmi +async_memcpy +async_pq +async_raid6_recov +async_tx +async_xor +at24 +at25 +at76c50x-usb +at86rf230 +at91_ether +atbm8830 +aten +ath +ath10k_core +ath10k_pci +ath3k +ath5k +ath6kl_core +ath6kl_sdio +ath6kl_usb +ath9k +ath9k_common +ath9k_htc +ath9k_hw +ati_remote +ati_remote2 +atl1 +atl1c +atl1e +atl2 +atlas_btns +atm +atmel +atmel_cs +atmel_mxt_ts +atmel_pci +atmel_pwm +atmel-pwm-bl +atmel-ssc +atmtcp +atp +atp870u +atxp1 +aty128fb +atyfb +au0828 +au8522_common +au8522_decoder +au8522_dig +aufs +auo_k1900fb +auo_k1901fb +auo_k190x +auo-pixcir-ts +authenc +authencesn +auth_rpcgss +autofs4 +avma1_cs +avm_cs +avmfritz +ax25 +ax88179_178a +axnet_cs +b1 +b1dma +b1pci +b1pcmcia +b2c2-flexcop +b2c2-flexcop-pci +b2c2-flexcop-usb +b43 +b43legacy +b44 +bas_gigaset +batman-adv +baycom_par +baycom_ser_fdx +baycom_ser_hdx +bcache +bch +bcm203x +bcm3510 +bcm5974 +bcma +bcma-hcd +bcm_wimax +be2iscsi +be2net +befs +belkin_sa +bfa +bfs +bfusb +bh1770glc +bh1780gli +binfmt_misc +block2mtd +blocklayoutdriver +blowfish_common +blowfish_generic +blowfish-x86_64 +bluecard_cs +bluetooth +bma150 +bmp085-i2c +bmp085-spi +bna +bnep +bnx2 +bnx2fc +bnx2i +bnx2x +bonding +bpa10x +bpck +bpctl_mod +bpqether +bq2415x_charger +bq27x00_battery +br2684 +brcmfmac +brcmsmac +brcmutil +bridge +broadsheetfb +bsd_comp +bt3c_cs +bt819 +bt856 +bt866 +bt878 +btcx-risc +btmrvl +btmrvl_sdio +btmtk_usb +btrfs +btsdio +bttv +btuart_cs +btusb +btwilink +bu21013_ts +budget +budget-av +budget-ci +budget-core +budget-patch +BusLogic +bw-qcam +bypass +c2port-duramar2150 +c4 +c67x00 +cachefiles +cafe_ccic +cafe_nand +caif +caif_hsi +caif_serial +caif_socket +caif_usb +caif_virtio +camellia-aesni-avx-x86_64 +camellia_generic +camellia-x86_64 +can +can-bcm +can-dev +can-gw +can-raw +capi +capidrv +capmode +carl9170 +carminefb +cassini +cast5-avx-x86_64 +cast5_generic +cast6-avx-x86_64 +cast6_generic +cast_common +catc +cb710 +cb710-mmc +cb_das16_cs +cb_pcidas +cb_pcidas64 +cb_pcidda +cb_pcimdas +cb_pcimdda +cc770 +cc770_isa +cc770_platform +c_can +c_can_pci +c_can_platform +cciss +ccm +cdc-acm +cdc_eem +cdc_ether +cdc_mbim +cdc_ncm +cdc-phonet +cdc_subset +cdc-wdm +cedusb +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 +chromeos_laptop +cifs +ci_hdrc +ci_hdrc_msm +ci_hdrc_pci +cirrus +cirrusfb +ck804xrom +classmate-laptop +clearpad_tm1217 +clip +clk-max77686 +clk-si5351 +clk-twl6040 +clk-wm831x +cls_basic +cls_cgroup +cls_flow +cls_fw +cls_route +cls_rsvp +cls_rsvp6 +cls_tcindex +cls_u32 +cm109 +cm4000_cs +cm4040_cs +cma3000_d0x +cma3000_d0x_i2c +cmac +cmdlinepart +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 +cordic +core +coretemp +cp210x +cpcihp_generic +cpcihp_zt5550 +cpia2 +cpqarray +cpu5wdt +cpuid +cpu-notifier-error-inject +c-qcam +cramfs +cr_bllcd +crc32 +crc32-pclmul +crc7 +crc8 +crc-ccitt +crc-itu-t +crct10dif-pclmul +cros_ec +cros_ec_i2c +cros_ec_keyb +cros_ec_spi +crvml +cryptd +cryptoloop +crypto_null +crypto_user +crystalhd +cs5345 +cs53l32a +cs5535-mfd +csiostor +ct82c710 +ctr +cts +cuse +cw1200_core +cw1200_wlan_sdio +cw1200_wlan_spi +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 +cxd2099 +cxd2820r +cxgb +cxgb3 +cxgb3i +cxgb4 +cxgb4i +cxgb4vf +cxt1e1 +cy8ctmg110_ts +cyapa +cyber2000fb +cyberjack +cyclades +cypress_cy7c63 +cypress_firmware +cypress_m8 +cytherm +cyttsp4_core +cyttsp4_i2c +cyttsp4_spi +cyttsp_core +cyttsp_i2c +cyttsp_i2c_common +cyttsp_spi +da9030_battery +da9034-ts +da903x +da903x_bl +da9052-battery +da9052_bl +da9052-hwmon +da9052_onkey +da9052-regulator +da9052_tsi +da9052_wdt +da9055-hwmon +da9055_onkey +da9055-regulator +da9055_wdt +DAC960 +daqboard2000 +das08 +das08_cs +das08_pci +db9 +dc395x +dca +dccp +dccp_diag +dccp_ipv4 +dccp_ipv6 +dccp_probe +dcdbas +ddbridge +de2104x +de4x5 +decnet +deflate +defxx +dell-laptop +dell-led +dell_rbu +dell-wmi +dell-wmi-aio +denali +denali_dt +denali_pci +des_generic +designware_i2s +dgrp +dib0070 +dib0090 +dib3000mb +dib3000mc +dib7000m +dib7000p +dib8000 +dibx000_common +digi_acceleport +diskonchip +divacapi +divadidd +diva_idi +diva_mnt +divas +dl2k +dlci +dlm +dm1105 +dm9601 +dm-bio-prison +dm-bufio +dm-cache +dm-cache-cleaner +dm-cache-mq +dm-crypt +dm-delay +dme1737 +dmfe +dm-flakey +dmi-sysfs +dm-log +dm-log-userspace +dm-mirror +dm-multipath +dm-persistent-data +dm-queue-length +dm-raid +dm-raid45 +dm-region-hash +dm-round-robin +dm-service-time +dm-snapshot +dm-switch +dm-thin-pool +dm-verity +dmx3191d +dm-zero +dnet +dn_rtmsg +docg3 +docg4 +dpt_i2o +drbd +drm +drm_kms_helper +drm_usb +drxd +drxk +ds1621 +ds1682 +ds1wm +ds2482 +ds2490 +ds2760_battery +ds2780_battery +ds2781_battery +ds2782_battery +ds3000 +ds620 +dsa_core +dsbr100 +dscc4 +dss1_divert +dst +dst_ca +dstr +dt3000 +dt3155v4l +dt9812 +dtl1_cs +dummy +dummy-irq +dvb-as102 +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-af9035 +dvb-usb-anysee +dvb-usb-au6610 +dvb-usb-az6007 +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-it913x +dvb-usb-lmedm04 +dvb-usb-m920x +dvb-usb-mxl111sf +dvb-usb-nova-t-usb2 +dvb-usb-opera +dvb-usb-pctv452e +dvb-usb-rtl28xxu +dvb-usb-technisat-usb2 +dvb-usb-ttusb2 +dvb-usb-umt-010 +dvb_usb_v2 +dvb-usb-vp702x +dvb-usb-vp7045 +dwc2 +dwc2_pci +dwc2_platform +dwc3 +dwc3-exynos +dwc3-omap +dwc3-pci +dw_dmac +dw_dmac_core +dw_dmac_pci +dyna_pci10xx +dynapro +e100 +e1000 +e1000e +e4000 +e752x_edac +earth-pt1 +eata +ebt_802_3 +ebtable_broute +ebtable_filter +ebtable_nat +ebtables +ebt_among +ebt_arp +ebt_arpreply +ebt_dnat +ebt_ip +ebt_ip6 +ebt_limit +ebt_log +ebt_mark +ebt_mark_m +ebt_nflog +ebt_pkttype +ebt_redirect +ebt_snat +ebt_stp +ebt_vlan +ec100 +echo +ec_sys +edac_core +edac_mce_amd +edt-ft5x06 +eeepc-laptop +eeepc-wmi +eeprom +eeprom_93cx6 +eeprom_93xx46 +eeti_ts +efi-pstore +efs +einj +elo +elsa_cs +em28xx +em28xx-alsa +em28xx-dvb +em28xx-rc +emc1403 +emc2103 +emc6w201 +em_canid +em_cmp +emi26 +emi62 +em_ipset +em_meta +em_nbyte +empeg +ems_pci +ems_pcmcia +ems_usb +em_text +emu10k1-gp +em_u32 +enc28j60 +enclosure +ene_ir +eni +enic +epat +epia +epic100 +eql +esb2rom +esd_usb2 +esi-sir +esp4 +esp6 +et131x +ethoc +eurotechwdt +evbug +exofs +ext2 +extcon-adc-jack +extcon-arizona +extcon-gpio +extcon-max77693 +extcon-max8997 +extcon-palmas +exynos-rng +ezusb +f2fs +f71805f +f71808e_wdt +f71882fg +f75375s +f81232 +fakelb +fam15h_power +fan53555 +farsync +faulty +fb_ddc +fb_sys_fops +fc0011 +fc0012 +fc0013 +fc2580 +fcoe +fcrypt +fdomain +fdomain_cs +fealnx +ff-memless +fintek-cir +firedtv +firestream +firewire-core +firewire-net +firewire-ohci +firewire-sbp2 +firewire-serial +fit2 +fit3 +fixed +flashloader +floppy +fm801-gp +fmc +fmc-chardev +fmc-fakedev +fmc-trivial +fmc-write-eeprom +fm_drv +fmvj18x_cs +fnic +forcedeth +fore_200e +fotg210-udc +freevxfs +friq +frpw +fsa9480 +fscache +fschmd +fsl_lpuart +ft1000 +ft1000_pcmcia +ftdi-elan +ftdi_sio +ftl +fujitsu-laptop +fujitsu-tablet +fujitsu_ts +funsoft +fusbh200-hcd +g450_pll +g760a +g762 +g_acm_ms +gadgetfs +gamecon +gameport +garmin_gps +garp +g_audio +g_cdc +gcm +g_dbgp +gdmwm +gdth +generic +generic-adc-battery +generic_bl +gen_probe +g_ether +gf128mul +gf2k +g_ffs +gfs2 +ghash-clmulni-intel +ghash-generic +g_hid +gigaset +girbil-sir +gl518sm +gl520sm +gl620a +gluebi +glue_helper +gma500_gfx +g_mass_storage +g_midi +g_ncm +g_nokia +go7007 +go7007-loader +go7007-usb +goku_udc +goldfish_battery +goldfishfb +gp2ap002a00f +gpio-74x164 +gpio-addr-flash +gpio-adp5520 +gpio-adp5588 +gpio-amd8111 +gpio-arizona +gpio-charger +gpio-cs5535 +gpio-da9052 +gpio-da9055 +gpio-fan +gpio-generic +gpio-ich +gpio-ir-recv +gpio-it8761e +gpio-janz-ttl +gpio_keys +gpio_keys_polled +gpio-max7300 +gpio-max7301 +gpio-max730x +gpio-max732x +gpio-mc33880 +gpio-mcp23s08 +gpio-ml-ioh +gpio_mouse +gpio-pca953x +gpio-pcf857x +gpio-pch +gpio-rdc321x +gpio-regulator +gpio-sch +gpio_tilt_polled +gpio-tps65912 +gpio-ts5500 +gpio-twl6040 +gpio-viperboard +gpio-vx855 +gpio-wm831x +gpio-wm8350 +gpio-wm8994 +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_jl2005bcd +gspca_kinect +gspca_konica +gspca_m5602 +gspca_main +gspca_mars +gspca_mr97310a +gspca_nw80x +gspca_ov519 +gspca_ov534 +gspca_ov534_9 +gspca_pac207 +gspca_pac7302 +gspca_pac7311 +gspca_se401 +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_topro +gspca_tv8532 +gspca_vc032x +gspca_vicam +gspca_xirlink_cit +gspca_zc3xx +gtco +guillemot +gunze +g_webcam +g_zero +hamachi +hampshire +hangcheck-timer +hanwang +hci +hci_uart +hci_vhci +hdaps +hdlc +hdlc_cisco +hdlcdrv +hdlc_fr +hdlc_ppp +hdlc_raw +hdlc_raw_eth +hdlc_x25 +hdpvr +he +hecubafb +hexium_gemini +hexium_orion +hfc4s8s_l1 +hfcmulti +hfcpci +hfcsusb +hfc_usb +hfs +hfsplus +hgafb +hid +hid-a4tech +hid-apple +hid-appleir +hid-aureal +hid-axff +hid-belkin +hid-cherry +hid-chicony +hid-cypress +hid-dr +hid-elecom +hid-elo +hid-emsff +hid-ezkey +hid-gaff +hid-generic +hid-gyration +hid-holtekff +hid-holtek-kbd +hid-holtek-mouse +hid-huion +hid-hyperv +hid-icade +hid-kensington +hid-keytouch +hid-kye +hid-lcpower +hid-lenovo-tpkbd +hid-logitech +hid-logitech-dj +hid-magicmouse +hid-microsoft +hid-monterey +hid-multitouch +hid-ntrig +hid-ortek +hidp +hid-petalynx +hid-picolcd +hid-pl +hid-primax +hid-prodikeys +hid-roccat +hid-roccat-arvo +hid-roccat-common +hid-roccat-isku +hid-roccat-kone +hid-roccat-koneplus +hid-roccat-konepure +hid-roccat-kovaplus +hid-roccat-lua +hid-roccat-pyra +hid-roccat-savu +hid-saitek +hid-samsung +hid-sensor-accel-3d +hid-sensor-als +hid-sensor-gyro-3d +hid-sensor-hub +hid-sensor-iio-common +hid-sensor-magn-3d +hid-sensor-trigger +hid-sjoy +hid-sony +hid-speedlink +hid-steelseries +hid-sunplus +hid-thingm +hid-tivo +hid-tmff +hid-topseed +hid-twinhan +hid-uclogic +hid-wacom +hid-waltop +hid-wiimote +hid-zpff +hid-zydacron +hih6130 +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 +hpwdt +hp-wmi +hsi +hsi_char +hso +htc-pasic3 +hv_balloon +hv_netvsc +hv_storvsc +hv_utils +hv_vmbus +hwa-hc +hwa-rc +hwmon-vid +hwpoison-inject +hx8357 +hyperv_fb +hysdn +i1480-dfu-usb +i1480-est +i2400m +i2400m-usb +i2c-algo-bit +i2c-algo-pca +i2c-ali1535 +i2c-ali1563 +i2c-ali15x3 +i2c-amd756 +i2c-amd756-s4882 +i2c-amd8111 +i2c-cbus-gpio +i2c-designware-core +i2c-designware-pci +i2c-designware-platform +i2c-dev +i2c-diolan-u2c +i2c-eg20t +i2c-gpio +i2c-hid +i2c-i801 +i2c-isch +i2c-ismt +i2c-kempld +i2c-matroxfb +i2c-mux +i2c-mux-gpio +i2c-mux-pca9541 +i2c-mux-pca954x +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-viperboard +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 +i740fb +i7core_edac +i810 +i82092 +i82975x_edac +i8k +i915 +ib700wdt +ib_addr +ib_cm +ib_core +ib_ipath +ib_ipoib +ib_iser +ib_isert +ib_mad +ibmaem +ibmasm +ibmasr +ibmpex +ibm_rtl +ib_mthca +ib_qib +ib_sa +ib_srp +ib_srpt +ib_ucm +ib_umad +ib_uverbs +ichxrom +icp_multi +ics932s401 +ideapad-laptop +idmouse +idt77252 +ie6xx_wdt +ieee802154 +ifb +iforce +igb +igbvf +iguanair +iio_dummy +iio_hwmon +iio-trig-interrupt +iio-trig-periodic-rtc +iio-trig-sysfs +ii_pci20kc +ili210x +ili922x +ili9320 +imm +imon +ims-pcu +imx074 +ina209 +ina2xx +industrialio +industrialio-triggered-buffer +inet_diag +inexio +inftl +initio +input-polldev +int51x1 +intelfb +intel_ips +intel_menlow +intel_mid_dma +intel_oaktrail +intel_powerclamp +intel-rng +intel-rst +intel-smartconnect +intel_vr_nor +interact +interval_tree_test +inv-mpu6050 +ioatdma +ioc4 +io_edgeport +io_ti +iowarrior +ip6_gre +ip6table_filter +ip6table_mangle +ip6table_nat +ip6table_raw +ip6_tables +ip6table_security +ip6t_ah +ip6t_eui64 +ip6t_frag +ip6t_hbh +ip6t_ipv6header +ip6t_MASQUERADE +ip6t_mh +ip6t_NPT +ip6t_REJECT +ip6t_rpfilter +ip6t_rt +ip6_tunnel +ipack +ipaq +ipcomp +ipcomp6 +ipddp +ipg +ip_gre +iphase +ipheth +ipip +ipmi_devintf +ipmi_msghandler +ipmi_poweroff +ipmi_si +ipmi_watchdog +ipoctal +ipr +ips +ip_set +ip_set_bitmap_ip +ip_set_bitmap_ipmac +ip_set_bitmap_port +ip_set_hash_ip +ip_set_hash_ipport +ip_set_hash_ipportip +ip_set_hash_ipportnet +ip_set_hash_net +ip_set_hash_netiface +ip_set_hash_netport +ip_set_list_set +iptable_filter +iptable_mangle +iptable_nat +iptable_raw +ip_tables +iptable_security +ipt_ah +ipt_CLUSTERIP +ipt_ECN +ipt_MASQUERADE +ipt_REJECT +ipt_rpfilter +ipt_ULOG +ip_tunnel +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 +ip_vti +ipw +ipw2100 +ipw2200 +ipwireless +ipx +ircomm +ircomm-tty +irda +irda-usb +ir-jvc-decoder +ir-kbd-i2c +irlan +ir-lirc-codec +ir-mce_kbd-decoder +ir-nec-decoder +irnet +ir-rc5-decoder +ir-rc5-sz-decoder +ir-rc6-decoder +ir-sanyo-decoder +ir-sony-decoder +irtty-sir +ir-usb +isci +iscsi_boot_sysfs +iscsi_ibft +iscsi_target_mod +iscsi_tcp +isdn +isdn_bsdcomp +isdnhdlc +isicom +isight_firmware +isl29003 +isl29018 +isl29020 +isl29028 +isl6271a-regulator +isl6405 +isl6421 +isl6423 +isofs +isp116x-hcd +isp1362-hcd +isp1704_charger +isp1760 +it87 +it8712f_wdt +it87_wdt +it913x-fe +iTCO_vendor_support +iTCO_wdt +itd1000 +ite-cir +itg3200 +iuu_phoenix +ivtv +ivtv-alsa +ivtvfb +iw_c2 +iw_cm +iw_cxgb3 +iw_cxgb4 +iwl3945 +iwl4965 +iwldvm +iwlegacy +iwlmvm +iwlwifi +iw_nes +ix2505v +ixgb +ixgbe +ixgbevf +janz-cmodio +janz-ican3 +jc42 +jedec_probe +jffs2 +jfs +jmb38x_ms +jme +joydev +joydump +jr3_pci +jsm +k10temp +k8temp +kafs +kalmia +kaweth +kb3886_bl +kbic +kbtab +kcomedilib +ke_counter +kempld-core +kempld_wdt +kernelcapi +keucr +keyspan +keyspan_pda +keyspan_remote +kfifo_buf +khazad +kingsun-sir +kl5kusb105 +kobil_sct +ks0108 +ks0127 +ks8842 +ks8851 +ks8851_mll +ks959-sir +ksdazzle-sir +ksz884x +ktti +kvaser_pci +kvaser_usb +kvm +kvm-amd +kvm-intel +kxsd9 +kxtj9 +kyrofb +l1oip +l2tp_core +l2tp_debugfs +l2tp_eth +l2tp_ip +l2tp_ip6 +l2tp_netlink +l2tp_ppp +l440gx +l4f00242t03 +l64781 +lanai +lapb +lapbether +latch-addr-flash +lattice-ecp3-config +lcd +ld9040 +ldusb +lec +leds-88pm860x +leds-adp5520 +leds-atmel-pwm +leds-bd2802 +leds-blinkm +leds-clevo-mail +leds-da903x +leds-da9052 +leds-dac124s085 +leds-gpio +leds-lm3530 +leds-lm3533 +leds-lm355x +leds-lm3642 +leds-lp3944 +leds-lp5521 +leds-lp5523 +leds-lp5562 +leds-lp55xx-common +leds-lp8788 +leds-lt3593 +leds-max8997 +leds-mc13783 +leds-ot200 +leds-pca9532 +leds-pca955x +leds-pca9633 +leds-pwm +leds-regulator +leds-ss4200 +leds-tca6507 +leds-wm831x-status +leds-wm8350 +ledtrig-backlight +ledtrig-camera +ledtrig-default-on +ledtrig-gpio +ledtrig-heartbeat +ledtrig-oneshot +ledtrig-timer +ledtrig-transient +legousbtower +lg2160 +lgdt3305 +lgdt330x +lgs8gxx +lg-vl600 +lib80211 +lib80211_crypt_ccmp +lib80211_crypt_tkip +lib80211_crypt_wep +libahci +libceph +libcomposite +libcrc32c +libcxgbi +libertas +libertas_cs +libertas_sdio +libertas_spi +libertas_tf +libertas_tf_usb +libfc +libfcoe +libipw +libiscsi +libiscsi_tcp +libore +libosd +libsas +libsrp +lightning +line6usb +lineage-pem +linear +lirc_bt829 +lirc_dev +lirc_igorplugusb +lirc_imon +lirc_parallel +lirc_sasem +lirc_serial +lirc_sir +lirc_zilog +lis3l02dq +lis3lv02d +lis3lv02d_i2c +litelink-sir +lkkbd +llc +llc2 +lm25066 +lm3533-als +lm3533_bl +lm3533-core +lm3533-ctrlbank +lm3630_bl +lm3639_bl +lm63 +lm70 +lm73 +lm75 +lm77 +lm78 +lm80 +lm83 +lm8323 +lm8333 +lm85 +lm87 +lm90 +lm92 +lm93 +lm95234 +lm95241 +lm95245 +lmc +lms283gf05 +lms501kf03 +lnbp21 +lnbp22 +lockd +lp +lp3971 +lp3972 +lp855x_bl +lp8727_charger +lp8755 +lp8788_bl +lp8788-charger +lpc_ich +lpc_sch +lpddr_cmds +lpfc +lru_cache +lrw +ltc2978 +ltc4151 +ltc4215 +ltc4245 +ltc4261 +lttng-ftrace +lttng-kprobes +lttng-kretprobes +lttng-lib-ring-buffer +lttng-probe-asoc +lttng-probe-block +lttng-probe-btrfs +lttng-probe-compaction +lttng-probe-ext3 +lttng-probe-ext4 +lttng-probe-gpio +lttng-probe-irq +lttng-probe-jbd +lttng-probe-jbd2 +lttng-probe-kmem +lttng-probe-kvm +lttng-probe-kvm-x86 +lttng-probe-kvm-x86-mmu +lttng-probe-module +lttng-probe-napi +lttng-probe-net +lttng-probe-power +lttng-probe-printk +lttng-probe-random +lttng-probe-rcu +lttng-probe-regmap +lttng-probe-regulator +lttng-probe-rpm +lttng-probe-sched +lttng-probe-scsi +lttng-probe-signal +lttng-probe-skb +lttng-probe-sock +lttng-probe-statedump +lttng-probe-sunrpc +lttng-probe-timer +lttng-probe-udp +lttng-probe-vmscan +lttng-probe-workqueue +lttng-probe-writeback +lttng-ring-buffer-client-discard +lttng-ring-buffer-client-mmap-discard +lttng-ring-buffer-client-mmap-overwrite +lttng-ring-buffer-client-overwrite +lttng-ring-buffer-metadata-client +lttng-ring-buffer-metadata-mmap-client +lttng-statedump +lttng-tracer +lttng-types +ltv350qv +lz4 +lz4_compress +lz4hc +lz4hc_compress +m25p80 +m2m-deinterlace +m52790 +m88rs2000 +ma600-sir +mac80211 +mac80211_hwsim +mac802154 +macb +mac-celtic +mac-centeuro +mac-croatian +mac-cyrillic +mac-gaelic +mac-greek +mac_hid +machzwd +mac-iceland +mac-inuit +macmodes +mac-roman +mac-romanian +mac-turkish +macvlan +macvtap +magellan +mantis +mantis_core +map_absent +map_funcs +map_ram +map_rom +matrix-keymap +matrix_keypad +matroxfb_accel +matroxfb_base +matroxfb_crtc2 +matroxfb_DAC1064 +matroxfb_g450 +matroxfb_maven +matroxfb_misc +matroxfb_Ti3026 +matrox_w1 +max1111 +max11801_ts +max1363 +max1586 +max16064 +max16065 +max1619 +max1668 +max17040_battery +max17042_battery +max197 +max2165 +max3100 +max34440 +max517 +max6639 +max6642 +max6650 +max6697 +max6875 +max7359_keypad +max77686 +max77693 +max8649 +max8660 +max8688 +max8903_charger +max8907 +max8907-regulator +max8925_bl +max8925_onkey +max8925_power +max8925-regulator +max8952 +max8973-regulator +max8997 +max8997_charger +max8998 +max8998_charger +mb862xxfb +mb86a16 +mb86a20s +mc13783-adc +mc13783-pwrbutton +mc13783-regulator +mc13783_ts +mc13892-regulator +mc13xxx-core +mc13xxx-i2c +mc13xxx-regulator-core +mc13xxx-spi +mc44s803 +mce_amd_inj +mce-inject +mceusb +mcp2120-sir +mcp251x +mcp3021 +mcp320x +mcp4725 +mcs5000_ts +mcs7780 +mcs7830 +mcs_touchkey +mct_u232 +md4 +mdc800 +mdio +me4000 +me_daq +megaraid +megaraid_mbox +megaraid_mm +megaraid_sas +mei +mei-me +mei_phy +mem2mem_testdev +memory-notifier-error-inject +memstick +mena21_wdt +metronomefb +metro-usb +meye +mfd +mga +michael_mic +microcode +microread +microread_i2c +microread_mei +microtek +mii +minix +mip6 +mISDN_core +mISDN_dsp +mISDNinfineon +mISDNipac +mISDNisar +mite +mk712 +mkiss +mlx4_core +mlx4_en +mlx4_ib +mlx5_core +mlx5_ib +mma8450 +mmc_block +mmc_spi +mms114 +mos7720 +mos7840 +moto_modem +moxa +mpoa +mpr121_touchkey +mpt2sas +mpt3sas +mptbase +mptctl +mptfc +mptlan +mptsas +mptscsih +mptspi +mpu3050 +mrf24j40 +mrp +mrst_max3110 +msdos +msi-laptop +msi-wmi +msp3400 +mspro_block +msr +mt2060 +mt2063 +mt20xx +mt2131 +mt2266 +mt312 +mt352 +mt9m001 +mt9m111 +mt9t031 +mt9t112 +mt9v011 +mt9v022 +mtd +mtd_blkdevs +mtdblock +mtdblock_ro +mtd_dataflash +mtdoops +mtdram +mtdswap +mtip32xx +mtouch +multipath +musb_hdrc +mv88e6060 +mv88e6xxx_drv +mvmdio +mvsas +mv_u3d_core +mv_udc +mvumi +mwave +mwifiex +mwifiex_pcie +mwifiex_sdio +mwifiex_usb +mwl8k +mxb +mxl111sf-demod +mxl111sf-tuner +mxl5005s +mxl5007t +mxm-wmi +mxser +myri10ge +n411 +nand +nand_bch +nand_ecc +nand_ids +nandsim +natsemi +navman +nbd +nci +ncpfs +nct6775 +ne2k-pci +neofb +net1080 +net2272 +net2280 +netconsole +netjet +netlink_diag +netprio_cgroup +netrom +netsc520 +nettel +netxen_nic +newtonkbd +nfc +nf_conntrack +nf_conntrack_amanda +nf_conntrack_broadcast +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_snmp +nf_conntrack_tftp +nfcsim +nfcwilink +nf_defrag_ipv4 +nf_defrag_ipv6 +nf_nat +nf_nat_amanda +nf_nat_ftp +nf_nat_h323 +nf_nat_ipv4 +nf_nat_ipv6 +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_acct +nfnetlink_cthelper +nfnetlink_cttimeout +nfnetlink_log +nfnetlink_queue +nfs +nfs_acl +nfsd +nfs_layout_nfsv41_files +nfsv2 +nfsv3 +nfsv4 +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 +ni_labpc_pci +nilfs2 +ni_mio_cs +ni_pcidio +ni_pcimio +ni_tio +ni_tiocmd +niu +nlmon +nls_ascii +nls_cp1250 +nls_cp1251 +nls_cp1255 +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 +nosy +notifier-error-inject +nouveau +nozomi +n_r3964 +ns558 +ns83820 +nsc-ircc +ntb +ntb_netdev +ntc_thermistor +ntfs +n_tracerouter +n_tracesink +nuvoton-cir +nvidiafb +nvme +nvram +nv_tco +nxt200x +nxt6000 +objlayoutdriver +ocfs2 +ocfs2_dlm +ocfs2_dlmfs +ocfs2_nodemanager +ocfs2_stackglue +ocfs2_stack_o2cb +ocfs2_stack_user +ocrdma +old_belkin-sir +omfs +omninet +on20 +on26 +onenand +opencores-kbd +openvswitch +oprofile +opticon +option +or51132 +or51211 +orinoco +orinoco_cs +orinoco_nortel +orinoco_plx +orinoco_tmd +orinoco_usb +osd +osdblk +osst +oti6858 +output +ov2640 +ov5642 +ov6650 +ov7640 +ov7670 +ov772x +ov9640 +ov9740 +overlayfs +oxu210hp-hcd +ozwpan +p4-clockmod +p54common +p54pci +p54spi +p54usb +p8022 +p8023 +padlock-aes +padlock-sha +palmas-regulator +panasonic-laptop +panel +paride +parkbd +parport +parport_ax88796 +parport_cs +parport_pc +parport_serial +pata_acpi +pata_ali +pata_amd +pata_arasan_cf +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_piccolo +pata_platform +pata_radisys +pata_rdc +pata_rz1000 +pata_sc1200 +pata_sch +pata_serverworks +pata_sil680 +pata_sl82c105 +pata_triflex +pata_via +pc300too +pc87360 +pc87413_wdt +pc87427 +pcap_keys +pcap-regulator +pcap_ts +pcbc +pcd +pcf50633 +pcf50633-adc +pcf50633-backlight +pcf50633-charger +pcf50633-gpio +pcf50633-input +pcf50633-regulator +pcf8574_keypad +pcf8591 +pch_can +pch_dma +pch_gbe +pch_phub +pch_uart +pch_udc +pci +pci200syn +pcips2 +pci-stub +pcmcia +pcmcia_core +pcmciamtd +pcmcia_rsrc +pcnet32 +pcnet_cs +pcrypt +pcspkr +pcwd_pci +pcwd_usb +pd +pd6729 +pda_power +pdc_adma +peak_pci +peak_pcmcia +peak_usb +pegasus +penmount +pf +pg +phantom +phison +phonet +phram +phy-gpio-vbus-usb +phy-isp1301 +phy-nop +phy-omap-control +phy-omap-usb3 +phy-rcar-usb +phy-samsung-usb +phy-samsung-usb2 +phy-samsung-usb3 +physmap +pixcir_i2c_ts +pktcdvd +pktgen +pl2303 +platform_lcd +plat_nand +plat-ram +plip +plusb +pluto2 +plx_pci +pm2fb +pm3fb +pm80xx +pmbus +pmbus_core +pmc551 +pmcraid +pm-notifier-error-inject +pn533 +pn544 +pn544_i2c +pn544_mei +pn_pep +poseidon +powermate +ppa +ppdev +ppp_async +ppp_deflate +ppp_mppe +pppoatm +pppoe +pppox +ppp_synctty +pps_core +pps-gpio +pps-ldisc +pps_parport +pptp +prism2_usb +ps2mult +psmouse +psnap +pt +ptp +ptp_pch +pvpanic +pvrusb2 +pwc +pwm-beeper +pwm_bl +pxa27x_udc +qcaux +qcserial +qinfo_probe +qla1280 +qla2xxx +qla3xxx +qla4xxx +qlcnic +qlge +qlogic_cs +qlogicfas408 +qmi_wwan +qnx4 +qnx6 +qt1010 +qt1070 +qt2160 +quatech2 +quatech_daqp_cs +quickstart +quota_tree +quota_v1 +quota_v2 +qxl +r128 +r592 +r6040 +r8152 +r815x +r8169 +r8187se +r8192e_pci +r8192u_usb +r820t +r852 +r8712u +r8a66597-hcd +r8a66597-udc +radeon +radeonfb +radio-i2c-si470x +radio-keene +radio-ma901 +radio-maxiradio +radio-mr800 +radio-shark +radio-si4713 +radio-si476x +radio-tea5764 +radio-timb +radio-usb-si470x +radio-wl1273 +raid0 +raid1 +raid10 +raid456 +raid6_pq +raid6test +raid_class +ramoops +raw +ray_cs +rbd +rbtree_test +rc5t583-regulator +rc-adstech-dvb-t-pci +rc-alink-dtu-m +rc-anysee +rc-apac-viewcomp +rc-asus-pc39 +rc-asus-ps3-100 +rc-ati-tv-wonder-hd-600 +rc-ati-x10 +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-delock-61959 +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 +rc-imon-mce +rc-imon-pad +rc-iodata-bctv7e +rc-it913x-v1 +rc-it913x-v2 +rc-kaiomy +rc-kworld-315u +rc-kworld-pc150u +rc-kworld-plus-tv-analog +rc-leadtek-y04g0051 +rc-lirc +rc-lme2510 +rc-loopback +rc-manli +rc-medion-x10 +rc-medion-x10-digitainer +rc-medion-x10-or2x +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-rc6-mce +rc-real-audio-220-32-keys +rc-reddo +rc-snapstream-firefly +rc-streamzap +rc-tbs-nec +rc-technisat-usb2 +rc-terratec-cinergy-xs +rc-terratec-slim +rc-terratec-slim-2 +rc-tevii-nec +rc-tivo +rc-total-media-in-hand +rc-total-media-in-hand-02 +rc-trekstor +rc-tt-1500 +rc-twinhan1027 +rc-videomate-m1f +rc-videomate-s350 +rc-videomate-tv-pvr +rc-winfast +rc-winfast-usbii-deluxe +rdc321x-southbridge +rdma_cm +rdma_ucm +rds +rds_rdma +rds_tcp +redboot +redrat3 +reed_solomon +reiserfs +remoteproc +renesas_usbhs +retu-mfd +retu-pwrbutton +retu_wdt +rfc1051 +rfc1201 +rfcomm +rfd_ftl +rfkill-gpio +rfkill-regulator +rio500 +rionet +rio-scan +rivafb +rj54n1cb0c +rmd128 +rmd160 +rmd256 +rmd320 +rndis_host +rndis_wlan +rocket +romfs +rose +rotary_encoder +rp2 +rpcsec_gss_krb5 +rsxx +rt2400pci +rt2500pci +rt2500usb +rt2800lib +rt2800pci +rt2800usb +rt2x00lib +rt2x00mmio +rt2x00pci +rt2x00usb +rt61pci +rt73usb +rtc-88pm80x +rtc-88pm860x +rtc-ab3100 +rtc-bq32k +rtc-bq4802 +rtc-da9052 +rtc-da9055 +rtc-ds1286 +rtc-ds1305 +rtc-ds1307 +rtc-ds1374 +rtc-ds1390 +rtc-ds1511 +rtc-ds1553 +rtc-ds1672 +rtc-ds1742 +rtc-ds2404 +rtc-ds3232 +rtc-ds3234 +rtc-em3027 +rtc-fm3130 +rtc-hid-sensor-time +rtc-isl12022 +rtc-isl1208 +rtc-lp8788 +rtc-m41t80 +rtc-m41t93 +rtc-m41t94 +rtc-m48t35 +rtc-m48t59 +rtc-m48t86 +rtc-max6900 +rtc-max6902 +rtc-max77686 +rtc-max8907 +rtc-max8925 +rtc-max8997 +rtc-max8998 +rtc-mc13xxx +rtc-msm6242 +rtc-palmas +rtc-pcap +rtc-pcf2123 +rtc-pcf2127 +rtc-pcf50633 +rtc-pcf8523 +rtc-pcf8563 +rtc-pcf8583 +rtc-r9701 +rtc-rc5t583 +rtc-rp5c01 +rtc-rs5c348 +rtc-rs5c372 +rtc-rv3029c2 +rtc-rx4581 +rtc-rx8025 +rtc-rx8581 +rtc-s35390a +rtc-stk17ta8 +rtc-tps6586x +rtc-tps65910 +rtc-tps80031 +rtc-v3020 +rtc-wm831x +rtc-wm8350 +rtc-x1205 +rtd520 +rtl2830 +rtl2832 +rtl8150 +rtl8180 +rtl8187 +rtl8188ee +rtl8192c-common +rtl8192ce +rtl8192cu +rtl8192de +rtl8192se +rtl8723ae +rtllib +rtllib_crypt_ccmp +rtllib_crypt_tkip +rtllib_crypt_wep +rtl_pci +rtl_usb +rtlwifi +rts5139 +rtsx_pci +rtsx_pci_ms +rtsx_pci_sdmmc +rxkad +s1d13xxxfb +s2250 +s2255drv +s2io +s2mps11 +s3fb +s5h1409 +s5h1411 +s5h1420 +s5m8767 +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 +samsung-keypad +samsung-laptop +samsung-q10 +sata_inic162x +sata_mv +sata_nv +sata_promise +sata_qstor +sata_rcar +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 +sb_edac +sbni +sbp_target +sbs +sbs-battery +sbshc +sc1200wdt +sc520cdp +sc520_wdt +sc92031 +sca3000 +scb2_flash +sch311x_wdt +sch5627 +sch5636 +sch56xx-common +sch_atm +sch_cbq +sch_choke +sch_codel +sch_drr +sch_dsmark +sch_fq_codel +sch_gred +sch_hfsc +sch_htb +sch_ingress +sch_mqprio +sch_multiq +sch_netem +sch_plug +sch_prio +sch_qfq +sch_red +sch_sfb +sch_sfq +sch_tbf +sch_teql +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_srp +sctp +sctp_probe +sdhci +sdhci-acpi +sdhci-pci +sdhci-pltfm +sdhci-pxav2 +sdhci-pxav3 +sdio_uart +sdricoh_cs +sedlbauer_cs +seed +sep_driver +seqiv +ser_gigaset +serial2002 +serial_cs +serio_raw +sermouse +serpent-avx-x86_64 +serpent_generic +serpent-sse2-x86_64 +serport +serqt_usb2 +ses +sfc +sha1-ssse3 +sha256-ssse3 +sha512-ssse3 +shark2 +sh_eth +sh_mobile_ceu_camera +sh_mobile_csi2 +shpchp +sht15 +sht21 +sh_veu +si21xx +si4713-i2c +si476x-core +sidewinder +siemens_mpi +sierra +sierra_net +sil164 +sir-dev +sis +sis190 +sis5595 +sis900 +sis-agp +sisfb +sisusbvga +sit +sja1000 +sja1000_isa +sja1000_platform +skel +skfp +skge +sky2 +sl811_cs +sl811-hcd +slcan +slicoss +slip +slram +sm501 +sm501fb +sm7xxfb +smb347-charger +smc91c92_cs +sm_common +sm_ftl +smm665 +smsc37b787_wdt +smsc47b397 +smsc47m1 +smsc47m192 +smsc75xx +smsc911x +smsc9420 +smsc95xx +smsc-ircc2 +smscufx +smsdvb +smsmdtv +smssdio +smsusb +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-at73c213 +snd-atiixp +snd-atiixp-modem +snd-au8810 +snd-au8820 +snd-au8830 +snd-aw2 +snd-azt3328 +snd-bt87x +snd-ca0106 +snd-cmipci +snd-compress +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-firewire-lib +snd-firewire-speakers +snd-fm801 +snd-gina20 +snd-gina24 +snd-hda-codec +snd-hda-codec-analog +snd-hda-codec-ca0110 +snd-hda-codec-ca0132 +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-isight +snd-korg1212 +snd-layla20 +snd-layla24 +snd-lola +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-scs1x +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-ab8500-codec +snd-soc-ad1836 +snd-soc-ad193x +snd-soc-ad73311 +snd-soc-adau1373 +snd-soc-adav80x +snd-soc-ads117x +snd-soc-ak4104 +snd-soc-ak4535 +snd-soc-ak4641 +snd-soc-ak4642 +snd-soc-ak4671 +snd-soc-ak5386 +snd-soc-alc5623 +snd-soc-alc5632 +snd-soc-arizona +snd-soc-atmel-pcm +snd-soc-bt-sco +snd-soc-core +snd-soc-cs4270 +snd-soc-cs4271 +snd-soc-cs42l51 +snd-soc-cs42l52 +snd-soc-cs42l73 +snd-soc-cx20442 +snd-soc-da7210 +snd-soc-da7213 +snd-soc-da732x +snd-soc-da9055 +snd-soc-hdmi-codec +snd-soc-isabelle +snd-soc-jz4740-codec +snd-soc-l3 +snd-soc-lm4857 +snd-soc-lm49453 +snd-soc-max9768 +snd-soc-max98088 +snd-soc-max98090 +snd-soc-max98095 +snd-soc-max9850 +snd-soc-max9877 +snd-soc-mc13783 +snd-soc-ml26124 +snd-soc-pcm3008 +snd-soc-rt5631 +snd-soc-rt5640 +snd-soc-sgtl5000 +snd-soc-si476x +snd-soc-simple-card +snd-soc-spdif-rx +snd-soc-spdif-tx +snd-soc-ssm2518 +snd-soc-ssm2602 +snd-soc-sta32x +snd-soc-sta529 +snd-soc-tas5086 +snd-soc-tlv320aic23 +snd-soc-tlv320aic26 +snd-soc-tlv320aic32x4 +snd-soc-tlv320aic3x +snd-soc-tlv320dac33 +snd-soc-tpa6130a2 +snd-soc-twl6040 +snd-soc-uda134x +snd-soc-uda1380 +snd-soc-wl1273 +snd-soc-wm0010 +snd-soc-wm1250-ev1 +snd-soc-wm2000 +snd-soc-wm2200 +snd-soc-wm5100 +snd-soc-wm5102 +snd-soc-wm5110 +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-wm8782 +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-wm8983 +snd-soc-wm8985 +snd-soc-wm8988 +snd-soc-wm8990 +snd-soc-wm8991 +snd-soc-wm8993 +snd-soc-wm8994 +snd-soc-wm8995 +snd-soc-wm8996 +snd-soc-wm9081 +snd-soc-wm9090 +snd-soc-wm-adsp +snd-soc-wm-hubs +snd-sonicvibes +snd-tea575x-tuner +snd-timer +snd-trident +snd-ua101 +snd-usb-6fire +snd-usb-audio +snd-usb-caiaq +snd-usb-hiface +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 +soc_scale_crop +softdog +softing +softing_cs +solo6x10 +solos-pci +sony-btf-mpx +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 +spectrum_cs +speedfax +speedstep-lib +speedtch +spi-altera +spi-bitbang +spi-butterfly +spidev +spi-dw +spi-dw-midpci +spi-dw-mmio +spi-gpio +spi_ks8995 +spi-lm70llp +spi-oc-tiny +spi-pxa2xx-pci +spi-pxa2xx-platform +spi-sc18is602 +spi-tle62x0 +spi-topcliff-pch +spi-xcomm +squashfs +ssb +ssb-hcd +ssfdc +sst25l +sstfb +ssu100 +ssv_dnp +st +st1232 +st_accel +st_accel_i2c +st_accel_spi +starfire +stb0899 +stb6000 +stb6100 +st_drv +ste_modem_rproc +stex +st_gyro +st_gyro_i2c +st_gyro_spi +stinger +stir4200 +stk1160 +stkwebcam +st_magn +st_magn_i2c +st_magn_spi +stmmac +stmpe-keypad +stmpe-ts +stowaway +stp +st_pressure +st_pressure_i2c +st_pressure_spi +streamzap +st_sensors +st_sensors_i2c +st_sensors_spi +stv0288 +stv0297 +stv0299 +stv0367 +stv0900 +stv090x +stv6110 +stv6110x +sundance +sungem +sungem_phy +sunhme +suni +sunkbd +sunrpc +suunto +svcrdma +svgalib +sx8 +sym53c500_cs +sym53c8xx +symbolserial +synaptics_i2c +synaptics_i2c_rmi4 +synaptics_usb +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 +tca8418_keypad +tcm_fc +tcm_loop +tcm_qla2xxx +tcm_usb_gadget +tcp_bic +tcp_diag +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 +tda10071 +tda10086 +tda18212 +tda18218 +tda18271 +tda18271c2dd +tda665x +tda7432 +tda8083 +tda8261 +tda826x +tda827x +tda8290 +tda9840 +tda9887 +tda998x +tdfx +tdfxfb +tdo24m +tea +tea5761 +tea5767 +tea6415c +tea6420 +tef6862 +tehuti +tekram-sir +teles_cs +test-kstrtox +test_power +test-string_helpers +tg3 +tgr192 +thinkpad_acpi +thmc50 +ti-adc081c +ti_am335x_adc +ti_am335x_tsc +ti_am335x_tscadc +ti_dac7512 +tifm_7xx1 +tifm_core +tifm_ms +tifm_sd +timb_dma +timberdale +timblogiw +timbuart +timeriomem-rng +tipc +ti_usb_3410_5052 +tlan +tlclk +tm6000 +tm6000-alsa +tm6000-dvb +tmdc +tmem +tmiofb +tmp102 +tmp401 +tmp421 +tmscsim +toim3232-sir +topstar-laptop +toshiba_acpi +toshiba_bluetooth +touchit213 +touchright +touchwin +tpci200 +tpm_atmel +tpm_i2c_infineon +tpm_i2c_stm_st33 +tpm_infineon +tpm_nsc +tpm-rng +tpm_tis +tps51632-regulator +tps6105x +tps6105x-regulator +tps62360-regulator +tps65010 +tps65023-regulator +tps6507x +tps6507x-regulator +tps6507x-ts +tps65090-charger +tps65090-regulator +tps65217 +tps65217_bl +tps65217-regulator +tps6524x-regulator +tps6586x-regulator +tps65910-regulator +tps65912-regulator +tps80031-regulator +trancevibrator +tranzport +tridentfb +ts2020 +ts5500_flash +ts_bm +tsc2005 +tsc2007 +tsc40 +ts_fsm +ts_kmp +tsl2550 +tsl2563 +tsl2583 +tsl2x7x_core +ttm +ttpci-eeprom +ttusb_dec +ttusbdecfe +ttusbir +tua6100 +tua9001 +tulip +tuner +tuner_it913x +tuner-simple +tuner-types +tuner-xc2028 +tunnel4 +tunnel6 +turbografx +tusb6010 +tvaudio +tveeprom +tvp5150 +tw2804 +tw9903 +tw9906 +tw9910 +twidjoy +twl6040-vibra +twofish-avx-x86_64 +twofish_common +twofish_generic +twofish-x86_64 +twofish-x86_64-3way +typhoon +u132-hcd +uartlite +ubi +ubifs +ucb1400_core +ucb1400_ts +ucd9000 +ucd9200 +uda1342 +udc-core +udf +udl +udlfb +udp_diag +ueagle-atm +u_ether +ufs +ufshcd +ufshcd-pci +ufshcd-pltfrm +uhid +uio +uio_aec +uio_cif +uio_dmem_genirq +uio_netx +uio_pci_generic +uio_pdrv +uio_pdrv_genirq +uio_sercos3 +uli526x +umc +umem +ums-alauda +ums-cypress +ums-datafab +ums-eneub6250 +ums-freecom +ums-isd200 +ums-jumpshot +ums-karma +ums-onetouch +ums-realtek +ums-sddr09 +ums-sddr55 +ums-usbat +unioxx5 +unix_diag +upd64031a +upd64083 +uPD98402 +u_rndis +usb3503 +usb_8dev +usb8xxx +usbatm +usb_debug +usbdux +usbduxfast +usbduxsigma +usb_f_acm +usb_f_ecm +usb_f_ecm_subset +usb_f_eem +usb_f_ncm +usb_f_obex +usb_f_phonet +usb_f_rndis +usb_f_serial +usb_f_ss_lb +usb_gigaset +usbhid +usbip-core +usbip-host +usbkbd +usblcd +usbled +usblp +usbmon +usbmouse +usbnet +usbserial +usbsevseg +usb-storage +usbtest +usbtmc +usbtouchscreen +usbtv +usbvision +usb_wwan +u_serial +userspace-consumer +ushc +uss720 +uvcvideo +uvesafb +uwb +ux500 +v4l2-common +v4l2-int-device +v4l2-mem2mem +vcan +vcnl4000 +ves1820 +ves1x93 +vesafb +veth +vfio +vfio_iommu_type1 +vfio-pci +vga16fb +vgastate +vgg2432a4 +vhci-hcd +vhost +vhost_net +vhost_scsi +via +via686a +via-camera +via-cputemp +viafb +via-ircc +via-rhine +via-rng +via-sdmmc +via-velocity +via_wdt +video +videobuf2-core +videobuf2-dma-contig +videobuf2-dma-sg +videobuf2-memops +videobuf2-vmalloc +videobuf-core +videobuf-dma-contig +videobuf-dma-sg +videobuf-dvb +videobuf-vmalloc +videocodec +videodev +viperboard +viperboard_adc +virtio_balloon +virtio_console +virtio_mmio +virtio-rng +virtio_scsi +virtual +visor +vivi +vivopay-serial +vlsi_ir +vmac +vme +vme_ca91cx42 +vme_pio2 +vme_tsi148 +vme_user +vme_vmivme7805 +vmk80xx +vmlfb +vmw_balloon +vmwgfx +vmw_pvscsi +vmw_vmci +vmw_vsock_vmci_transport +vmxnet3 +vp27smpx +vpx3220 +vringh +vsock +vsxxxaa +vt1211 +vt6655_stage +vt6656_stage +vt8231 +vt8623fb +vub300 +vx855 +vxge +vxlan +w1_bq27000 +w1_ds2408 +w1_ds2413 +w1_ds2423 +w1_ds2431 +w1_ds2433 +w1_ds2760 +w1_ds2780 +w1_ds2781 +w1_ds28e04 +w1-gpio +w1_smem +w1_therm +w35und +w5100 +w5300 +w6692 +w83627ehf +w83627hf +w83627hf_wdt +w83697hf_wdt +w83697ug_wdt +w83781d +w83791d +w83792d +w83793 +w83795 +w83877f_wdt +w83977af_ir +w83977f_wdt +w83l785ts +w83l786ng +w90p910_ts +w9966 +wacom +wacom_i2c +wacom_w8001 +wafer5823wdt +walkera0701 +wanxl +warrior +wbsd +wdt_pci +whci +whci-hcd +whc-rc +whiteheat +wil6210 +wimax +winbond-840 +winbond-cir +wire +wishbone-serial +wl1251 +wl1251_sdio +wl1251_spi +wl1273-core +wl12xx +wl18xx +wl3501_cs +wlags49_h25_cs +wlags49_h2_cs +wlcore +wlcore_sdio +wlcore_spi +wm831x_backup +wm831x_bl +wm831x-dcdc +wm831x-hwmon +wm831x-isink +wm831x-ldo +wm831x-on +wm831x_power +wm831x-ts +wm831x_wdt +wm8350-hwmon +wm8350_power +wm8350-regulator +wm8350_wdt +wm8400-regulator +wm8739 +wm8775 +wm8994-regulator +wm97xx-ts +wmi +wp512 +wusb-cbaf +wusbcore +wusb-wa +x25 +x25_asy +x38_edac +x86_pkg_temp_thermal +xc4000 +xc5000 +xcbc +xen-blkback +xen-evtchn +xen-fbfront +xenfs +xen-gntalloc +xen-gntdev +xen-kbdfront +xen-netback +xen-pciback +xen-pcifront +xen-privcmd +xen_wdt +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_algo +xfrm_ipcomp +xfrm_user +xfs +xgifb +xgmac +xirc2ps_cs +xircom_cb +xo15-ebook +xor +xpad +xprtrdma +xsens_mt +x_tables +xt_addrtype +xt_AUDIT +xt_bpf +xt_CHECKSUM +xt_CLASSIFY +xt_cluster +xt_comment +xt_connbytes +xt_connlabel +xt_connlimit +xt_connmark +xt_CONNSECMARK +xt_conntrack +xt_cpu +xt_CT +xt_dccp +xt_devgroup +xt_dscp +xt_DSCP +xt_ecn +xt_esp +xt_hashlimit +xt_helper +xt_hl +xt_HL +xt_HMARK +xt_IDLETIMER +xt_iprange +xt_ipvs +xtkbd +xt_LED +xt_length +xt_limit +xt_LOG +xt_mac +xt_mark +xt_multiport +xt_nat +xt_NETMAP +xt_nfacct +xt_NFLOG +xt_NFQUEUE +xt_osf +xt_owner +xt_physdev +xt_pkttype +xt_policy +xt_quota +xt_rateest +xt_RATEEST +xt_realm +xt_recent +xt_REDIRECT +xts +xt_sctp +xt_SECMARK +xt_set +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 +xz_dec_test +yam +yealink +yellowfin +yenta_socket +yurex +zatm +zaurus +zd1201 +zd1211rw +zhenhua +zio +zl10036 +zl10039 +zl10353 +zl6100 +zlib +zlib_deflate +zr36016 +zr36050 +zr36060 +zr36067 +zr364xx +zram +zte_ev --- linux-3.11.0.orig/debian.master/abi/3.11.0-15.23/amd64/generic +++ linux-3.11.0/debian.master/abi/3.11.0-15.23/amd64/generic @@ -0,0 +1,15576 @@ +EXPORT_SYMBOL arch/x86/kvm/kvm 0x729f9869 kvm_cpu_has_pending_timer +EXPORT_SYMBOL arch/x86/kvm/kvm 0xbe6ba33f kvm_read_guest_atomic +EXPORT_SYMBOL crypto/gf128mul 0x0c2f123f gf128mul_4k_bbe +EXPORT_SYMBOL crypto/gf128mul 0x1068004b gf128mul_bbe +EXPORT_SYMBOL crypto/gf128mul 0x2f2889a0 gf128mul_init_64k_lle +EXPORT_SYMBOL crypto/gf128mul 0x3755f990 gf128mul_init_64k_bbe +EXPORT_SYMBOL crypto/gf128mul 0x384ef9ce gf128mul_64k_bbe +EXPORT_SYMBOL crypto/gf128mul 0x56af0dbd gf128mul_x_ble +EXPORT_SYMBOL crypto/gf128mul 0x83581089 gf128mul_init_4k_lle +EXPORT_SYMBOL crypto/gf128mul 0x9b2560b9 gf128mul_init_4k_bbe +EXPORT_SYMBOL crypto/gf128mul 0x9e13f6f6 gf128mul_lle +EXPORT_SYMBOL crypto/gf128mul 0xbd17a0df gf128mul_4k_lle +EXPORT_SYMBOL crypto/gf128mul 0xc0890413 gf128mul_64k_lle +EXPORT_SYMBOL crypto/gf128mul 0xd60736ec gf128mul_free_64k +EXPORT_SYMBOL crypto/xor 0x5b6c00e6 xor_blocks +EXPORT_SYMBOL drivers/acpi/video 0x4293802a 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 0x175da34c suni_init +EXPORT_SYMBOL drivers/atm/uPD98402 0x380e300b uPD98402_init +EXPORT_SYMBOL drivers/bcma/bcma 0xfed5231c bcma_core_dma_translation +EXPORT_SYMBOL drivers/block/drbd/drbd 0x127a5901 drbd_set_st_err_str +EXPORT_SYMBOL drivers/block/drbd/drbd 0x35131b36 drbd_role_str +EXPORT_SYMBOL drivers/block/drbd/drbd 0x7730f22d drbd_conn_str +EXPORT_SYMBOL drivers/block/drbd/drbd 0xaf27bebf drbd_disk_str +EXPORT_SYMBOL drivers/block/paride/paride 0x14f4b62a pi_write_regr +EXPORT_SYMBOL drivers/block/paride/paride 0x54578084 pi_init +EXPORT_SYMBOL drivers/block/paride/paride 0x5bedb467 pi_read_regr +EXPORT_SYMBOL drivers/block/paride/paride 0x623ad3c5 pi_connect +EXPORT_SYMBOL drivers/block/paride/paride 0x63a55a32 pi_schedule_claimed +EXPORT_SYMBOL drivers/block/paride/paride 0x63ed729f pi_do_claimed +EXPORT_SYMBOL drivers/block/paride/paride 0x75954dc3 pi_read_block +EXPORT_SYMBOL drivers/block/paride/paride 0x885b940a pi_release +EXPORT_SYMBOL drivers/block/paride/paride 0xc1e9ee1b paride_unregister +EXPORT_SYMBOL drivers/block/paride/paride 0xc522488d pi_disconnect +EXPORT_SYMBOL drivers/block/paride/paride 0xda15a285 paride_register +EXPORT_SYMBOL drivers/block/paride/paride 0xf882b6be pi_write_block +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x011ed379 ipmi_get_smi_info +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x1348760d ipmi_request_settime +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x16dcec76 ipmi_set_my_address +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x1a10c898 ipmi_set_maintenance_mode +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x1aba5db8 ipmi_unregister_smi +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x40f2b10c ipmi_alloc_smi_msg +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x423b776a ipmi_create_user +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x441e2ba5 ipmi_smi_watcher_unregister +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x4c971bec ipmi_smi_msg_received +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x524f6f51 ipmi_get_my_address +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x547ce352 ipmi_smi_add_proc_entry +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x5e80f37c ipmi_unregister_for_cmd +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x5fcdcc05 ipmi_get_my_LUN +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x67cb9784 ipmi_poll_interface +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x751b1551 ipmi_register_smi +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x78fd36e7 ipmi_request_supply_msgs +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x804f922a ipmi_addr_length +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x8c8ee770 ipmi_destroy_user +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x8dc84161 ipmi_smi_watcher_register +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0x96cbcc81 ipmi_get_version +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xa28a2ace ipmi_set_gets_events +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xa2a98b91 ipmi_get_maintenance_mode +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xe0fa83f2 ipmi_register_for_cmd +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xe4f4665b ipmi_validate_addr +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xe6ab72a6 ipmi_set_my_LUN +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xf2576cb9 ipmi_smi_watchdog_pretimeout +EXPORT_SYMBOL drivers/char/ipmi/ipmi_msghandler 0xfcb77cfd ipmi_free_recv_msg +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/dma/dw/dw_dmac_core 0x3e4801fe dw_dma_cyclic_prep +EXPORT_SYMBOL drivers/dma/dw/dw_dmac_core 0x4d05b5c4 dw_dma_cyclic_stop +EXPORT_SYMBOL drivers/dma/dw/dw_dmac_core 0x5732d316 dw_dma_cyclic_start +EXPORT_SYMBOL drivers/dma/dw/dw_dmac_core 0x70548212 dw_dma_get_src_addr +EXPORT_SYMBOL drivers/dma/dw/dw_dmac_core 0x7eb33fd9 dw_dma_cyclic_free +EXPORT_SYMBOL drivers/dma/dw/dw_dmac_core 0xb62096e5 dw_dma_get_dst_addr +EXPORT_SYMBOL drivers/dma/ioat/ioatdma 0xc7a5857b ioat_dma_setup_interrupts +EXPORT_SYMBOL drivers/edac/edac_core 0xfd310b1a edac_mc_find +EXPORT_SYMBOL drivers/firewire/firewire-core 0x04d0f641 fw_core_remove_descriptor +EXPORT_SYMBOL drivers/firewire/firewire-core 0x0f7d6af8 fw_csr_string +EXPORT_SYMBOL drivers/firewire/firewire-core 0x16e91e21 fw_csr_iterator_next +EXPORT_SYMBOL drivers/firewire/firewire-core 0x19f5c41e fw_iso_context_stop +EXPORT_SYMBOL drivers/firewire/firewire-core 0x2885fec5 fw_get_request_speed +EXPORT_SYMBOL drivers/firewire/firewire-core 0x2b82a65b fw_card_initialize +EXPORT_SYMBOL drivers/firewire/firewire-core 0x394329fc fw_iso_resource_manage +EXPORT_SYMBOL drivers/firewire/firewire-core 0x3c56ef91 fw_workqueue +EXPORT_SYMBOL drivers/firewire/firewire-core 0x3ebb9de5 fw_run_transaction +EXPORT_SYMBOL drivers/firewire/firewire-core 0x47aaed3f fw_card_add +EXPORT_SYMBOL drivers/firewire/firewire-core 0x4e4c4dc0 fw_iso_context_flush_completions +EXPORT_SYMBOL drivers/firewire/firewire-core 0x4e7e12f8 fw_core_handle_response +EXPORT_SYMBOL drivers/firewire/firewire-core 0x645b715f fw_core_add_descriptor +EXPORT_SYMBOL drivers/firewire/firewire-core 0x65c9438b fw_csr_iterator_init +EXPORT_SYMBOL drivers/firewire/firewire-core 0x6a88d3c5 fw_send_response +EXPORT_SYMBOL drivers/firewire/firewire-core 0x767003e0 fw_iso_context_queue +EXPORT_SYMBOL drivers/firewire/firewire-core 0x77e2702d fw_send_request +EXPORT_SYMBOL drivers/firewire/firewire-core 0x79a6ba31 fw_core_remove_card +EXPORT_SYMBOL drivers/firewire/firewire-core 0x86468d44 fw_rcode_string +EXPORT_SYMBOL drivers/firewire/firewire-core 0x8eea24a6 fw_schedule_bus_reset +EXPORT_SYMBOL drivers/firewire/firewire-core 0x90863005 fw_high_memory_region +EXPORT_SYMBOL drivers/firewire/firewire-core 0x9225f9d8 fw_bus_type +EXPORT_SYMBOL drivers/firewire/firewire-core 0x9c8eba83 fw_iso_context_start +EXPORT_SYMBOL drivers/firewire/firewire-core 0x9f9229bc fw_device_enable_phys_dma +EXPORT_SYMBOL drivers/firewire/firewire-core 0xa0ad84ee fw_iso_context_queue_flush +EXPORT_SYMBOL drivers/firewire/firewire-core 0xaaf34985 fw_core_add_address_handler +EXPORT_SYMBOL drivers/firewire/firewire-core 0xab4fdca9 fw_core_remove_address_handler +EXPORT_SYMBOL drivers/firewire/firewire-core 0xcec1fbd6 fw_iso_context_create +EXPORT_SYMBOL drivers/firewire/firewire-core 0xdbbd0ca0 fw_iso_buffer_destroy +EXPORT_SYMBOL drivers/firewire/firewire-core 0xe25a1842 fw_core_handle_bus_reset +EXPORT_SYMBOL drivers/firewire/firewire-core 0xe75e698d fw_core_handle_request +EXPORT_SYMBOL drivers/firewire/firewire-core 0xeca1a166 fw_iso_buffer_init +EXPORT_SYMBOL drivers/firewire/firewire-core 0xf74e206f fw_iso_context_destroy +EXPORT_SYMBOL drivers/firewire/firewire-core 0xf988522a fw_fill_response +EXPORT_SYMBOL drivers/firewire/firewire-core 0xfea0ca8f fw_cancel_transaction +EXPORT_SYMBOL drivers/firmware/dcdbas 0xa75079d6 dcdbas_smi_request +EXPORT_SYMBOL drivers/fmc/fmc 0x28d4fc91 fmc_driver_unregister +EXPORT_SYMBOL drivers/fmc/fmc 0x2e7e20db fmc_scan_sdb_tree +EXPORT_SYMBOL drivers/fmc/fmc 0x44c2bdc5 fmc_device_unregister_n +EXPORT_SYMBOL drivers/fmc/fmc 0x508ced7f fmc_device_unregister +EXPORT_SYMBOL drivers/fmc/fmc 0x7d845d9d fmc_driver_register +EXPORT_SYMBOL drivers/fmc/fmc 0x8cc1fd04 fmc_reprogram +EXPORT_SYMBOL drivers/fmc/fmc 0xa701520c fmc_free_sdb_tree +EXPORT_SYMBOL drivers/fmc/fmc 0xad5ec97b fmc_device_register +EXPORT_SYMBOL drivers/fmc/fmc 0xd3a5e468 fmc_device_register_n +EXPORT_SYMBOL drivers/fmc/fmc 0xd50cf6e0 fmc_find_sdb_device +EXPORT_SYMBOL drivers/fmc/fmc 0xdcbae4b7 fmc_show_sdb_tree +EXPORT_SYMBOL drivers/gpu/drm/drm 0x01e27e86 drm_mode_create_from_cmdline_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0x025c90f5 drm_mm_init_scan +EXPORT_SYMBOL drivers/gpu/drm/drm 0x02e6e099 drm_mode_width +EXPORT_SYMBOL drivers/gpu/drm/drm 0x03da5227 drm_mm_put_block +EXPORT_SYMBOL drivers/gpu/drm/drm 0x048b870f drm_vblank_pre_modeset +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0584cfa1 drm_pcie_get_speed_cap_mask +EXPORT_SYMBOL drivers/gpu/drm/drm 0x065e004d drm_pci_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0719997f drm_framebuffer_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x09550654 drm_gem_prime_export +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0ae4b94c drm_ht_remove +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0bab51aa drm_mm_create_block +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0c60fa69 drm_probe_ddc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0fd34471 drm_core_ioremapfree +EXPORT_SYMBOL drivers/gpu/drm/drm 0x0fd60df2 drm_get_connector_status_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1055c61d drm_gem_vm_close +EXPORT_SYMBOL drivers/gpu/drm/drm 0x11065515 drm_mode_equal +EXPORT_SYMBOL drivers/gpu/drm/drm 0x11bdbfaf drm_mode_create_dvi_i_properties +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1274217e drm_get_pci_dev +EXPORT_SYMBOL drivers/gpu/drm/drm 0x12c6276a drm_buffer_read_object +EXPORT_SYMBOL drivers/gpu/drm/drm 0x131aa695 drm_gem_object_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0x142b8b35 drm_buffer_copy_from_user +EXPORT_SYMBOL drivers/gpu/drm/drm 0x14a9a178 drm_get_format_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1549bc82 drm_core_reclaim_buffers +EXPORT_SYMBOL drivers/gpu/drm/drm 0x17a7854e drm_framebuffer_remove +EXPORT_SYMBOL drivers/gpu/drm/drm 0x17bf7f2d drm_property_create_bitmask +EXPORT_SYMBOL drivers/gpu/drm/drm 0x181bf87b drm_i2c_encoder_restore +EXPORT_SYMBOL drivers/gpu/drm/drm 0x18c80efb drm_plane_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x194eadaa drm_edid_header_is_valid +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1a47f357 drm_framebuffer_unregister_private +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1a770ac3 drm_detect_hdmi_monitor +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1a93a7fc drm_i2c_encoder_commit +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1b584c77 drm_mm_insert_node +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1d5a9193 drm_agp_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x1f079530 drm_agp_bind +EXPORT_SYMBOL drivers/gpu/drm/drm 0x20645642 drm_debug +EXPORT_SYMBOL drivers/gpu/drm/drm 0x21dfdea9 drm_mode_connector_update_edid_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x223bfc33 drm_gem_object_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2265c60a drm_encoder_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x22a9979a drm_agp_unbind +EXPORT_SYMBOL drivers/gpu/drm/drm 0x251039b8 drm_master_put +EXPORT_SYMBOL drivers/gpu/drm/drm 0x26256356 drm_mode_equal_no_clocks +EXPORT_SYMBOL drivers/gpu/drm/drm 0x283412a8 drm_connector_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2b535a79 drm_idlelock_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2bdf3806 drm_av_sync_delay +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2d50570f drm_rect_calc_hscale +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2d7dbefe drm_irq_uninstall +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2e44269e drm_mm_insert_node_in_range +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2e7a4300 drm_rgb_quant_range_selectable +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2f96e542 drm_ati_pcigart_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x2fe34629 drm_vblank_post_modeset +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3074f033 drm_order +EXPORT_SYMBOL drivers/gpu/drm/drm 0x30bfcc9c drm_i2c_encoder_dpms +EXPORT_SYMBOL drivers/gpu/drm/drm 0x31dd3c68 drm_mm_init_scan_with_range +EXPORT_SYMBOL drivers/gpu/drm/drm 0x324453c1 drm_vblank_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3362feca drm_debugfs_create_files +EXPORT_SYMBOL drivers/gpu/drm/drm 0x344df3d0 drm_mm_scan_add_block +EXPORT_SYMBOL drivers/gpu/drm/drm 0x35261e03 drm_get_last_vbltimestamp +EXPORT_SYMBOL drivers/gpu/drm/drm 0x363fe4a4 drm_gem_vm_open +EXPORT_SYMBOL drivers/gpu/drm/drm 0x36d6b6a7 drm_mm_insert_node_generic +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3876f9e3 drm_irq_install +EXPORT_SYMBOL drivers/gpu/drm/drm 0x38a4f7ae drm_format_num_planes +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3912b40e drm_global_mutex +EXPORT_SYMBOL drivers/gpu/drm/drm 0x391ec498 drm_gem_create_mmap_offset +EXPORT_SYMBOL drivers/gpu/drm/drm 0x393bd174 drm_core_ioremap +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3ac1fef9 drm_mode_legacy_fb_format +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3afb1ad3 drm_calc_timestamping_constants +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3b9d009a drm_format_plane_cpp +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3c91a8b6 drm_prime_pages_to_sg +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3e312542 drm_addmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3eb37b9d drm_ht_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0x3ed589d7 drm_crtc_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x41738c37 drm_poll +EXPORT_SYMBOL drivers/gpu/drm/drm 0x42d6f133 drm_mode_connector_detach_encoder +EXPORT_SYMBOL drivers/gpu/drm/drm 0x42f66632 drm_gem_handle_delete +EXPORT_SYMBOL drivers/gpu/drm/drm 0x43384bd9 drm_buffer_alloc +EXPORT_SYMBOL drivers/gpu/drm/drm 0x43aeeec4 drm_mode_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0x43ceb90d drm_send_vblank_event +EXPORT_SYMBOL drivers/gpu/drm/drm 0x441bc692 drm_free_agp +EXPORT_SYMBOL drivers/gpu/drm/drm 0x44a0c113 drm_mode_height +EXPORT_SYMBOL drivers/gpu/drm/drm 0x498dcb5e drm_ut_debug_printk +EXPORT_SYMBOL drivers/gpu/drm/drm 0x49b102b3 drm_mode_create_tv_properties +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4bf5763b drm_property_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4c511235 drm_edid_is_valid +EXPORT_SYMBOL drivers/gpu/drm/drm 0x4ea1f5a2 drm_gem_object_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x50e28c07 drm_edid_to_sad +EXPORT_SYMBOL drivers/gpu/drm/drm 0x51042605 drm_platform_exit +EXPORT_SYMBOL drivers/gpu/drm/drm 0x51646289 drm_mm_scan_remove_block +EXPORT_SYMBOL drivers/gpu/drm/drm 0x51ca0308 drm_i2c_encoder_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0x526f6f71 drm_rect_calc_hscale_relaxed +EXPORT_SYMBOL drivers/gpu/drm/drm 0x52e29487 drm_gem_free_mmap_offset +EXPORT_SYMBOL drivers/gpu/drm/drm 0x54d9adf0 drm_mm_search_free_generic +EXPORT_SYMBOL drivers/gpu/drm/drm 0x552ac517 drm_pci_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x55a76644 drm_property_create_enum +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5665684c drm_mode_object_find +EXPORT_SYMBOL drivers/gpu/drm/drm 0x57bfc995 drm_edid_to_eld +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5d47298f drm_framebuffer_reference +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5d7318dc drm_global_item_ref +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5e2ed319 drm_gem_object_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x5eafb8e9 drm_mode_set_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0x60361af1 drm_mode_crtc_set_gamma_size +EXPORT_SYMBOL drivers/gpu/drm/drm 0x629c05e1 drm_clflush_sg +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6386bd59 drm_gem_object_handle_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6900d335 drm_rect_clip_scaled +EXPORT_SYMBOL drivers/gpu/drm/drm 0x69db77a8 drm_gem_handle_create +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6a213949 drm_modeset_unlock_all +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6a403b5d drm_addbufs_pci +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6b6d7375 drm_timestamp_precision +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6c92e86b drm_sysfs_hotplug_event +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6cee2e42 drm_object_property_get_value +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6d96d7c6 drm_vblank_get +EXPORT_SYMBOL drivers/gpu/drm/drm 0x6e9044ad drm_read +EXPORT_SYMBOL drivers/gpu/drm/drm 0x71d674cd drm_gem_mmap_obj +EXPORT_SYMBOL drivers/gpu/drm/drm 0x739628ad drm_mode_group_init_legacy_group +EXPORT_SYMBOL drivers/gpu/drm/drm 0x73d6bb7a drm_select_eld +EXPORT_SYMBOL drivers/gpu/drm/drm 0x74ab80fb drm_cvt_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0x759e7020 drm_mode_create_scaling_mode_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x76f36578 drm_vblank_put +EXPORT_SYMBOL drivers/gpu/drm/drm 0x78c16c82 drm_plane_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x79270146 drm_vblank_off +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7a4e7297 drm_edid_block_valid +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7a60eead drm_crtc_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7a6e3bd3 drm_warn_on_modeset_not_all_locked +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7b2e6a1c drm_addbufs_agp +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7b42b5d4 drm_mode_copy +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7b69ec48 drm_i2c_encoder_mode_fixup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7df48dcf drm_gtf_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0x7e3f8f54 drm_gem_private_object_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x80087991 drm_prime_lookup_buf_handle +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8172ae32 drm_mm_pre_get +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8578e2da drm_put_dev +EXPORT_SYMBOL drivers/gpu/drm/drm 0x866654f8 drm_gem_prime_fd_to_handle +EXPORT_SYMBOL drivers/gpu/drm/drm 0x871ab41a drm_rect_intersect +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8a4b6a35 drm_mm_get_block_generic +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8af4a014 drm_i2c_encoder_prepare +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8b661c91 drm_fasync +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8c510862 drm_find_cea_extension +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8ce326ae drm_prime_sg_to_page_addr_arrays +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8d0a4166 drm_mode_parse_command_line_for_connector +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8d530396 drm_mode_set_config_internal +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8de13715 drm_format_vert_chroma_subsampling +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8dfb019d drm_buffer_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8e8c530d drm_mode_validate_clocks +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8eff9111 drm_ht_find_item +EXPORT_SYMBOL drivers/gpu/drm/drm 0x8f7df3a7 drm_object_attach_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0x90135399 drm_gem_prime_import +EXPORT_SYMBOL drivers/gpu/drm/drm 0x919e9dc7 drm_mm_search_free_in_range_generic +EXPORT_SYMBOL drivers/gpu/drm/drm 0x91fec1cc drm_rect_calc_vscale +EXPORT_SYMBOL drivers/gpu/drm/drm 0x94caee01 drm_platform_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9688efae drm_mm_debug_table +EXPORT_SYMBOL drivers/gpu/drm/drm 0x96a24fd1 drm_i2c_encoder_save +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9745d638 drm_err +EXPORT_SYMBOL drivers/gpu/drm/drm 0x98807911 drm_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0x98dfc292 drm_vblank_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9972db48 drm_rect_calc_vscale_relaxed +EXPORT_SYMBOL drivers/gpu/drm/drm 0x997b62f7 drm_pci_exit +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9a40e763 drm_unplug_dev +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9d18ed97 drm_connector_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9e1a3e51 drm_mode_connector_attach_encoder +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9f8fcdf8 drm_master_get +EXPORT_SYMBOL drivers/gpu/drm/drm 0x9fd99d16 drm_mode_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa1eabd87 drm_mode_list_concat +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa26bf0b3 drm_mode_config_reset +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa3544c1b drm_prime_init_file_private +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa5f4a0fa drm_i2c_encoder_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa5fa05ee drm_mode_connector_list_update +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa62cfa97 drm_mode_prune_invalid +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa6efefba drm_add_modes_noedid +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa96acfcb drm_rect_debug_print +EXPORT_SYMBOL drivers/gpu/drm/drm 0xa9aab36d drm_get_platform_dev +EXPORT_SYMBOL drivers/gpu/drm/drm 0xabebcc0e drm_mmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0xac50d585 drm_mm_replace_node +EXPORT_SYMBOL drivers/gpu/drm/drm 0xadb5a434 drm_connector_unplug_all +EXPORT_SYMBOL drivers/gpu/drm/drm 0xaeb03219 drm_mode_config_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xaf0c89af drm_mm_get_block_range_generic +EXPORT_SYMBOL drivers/gpu/drm/drm 0xaf3fc480 drm_modeset_lock_all +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb08bbae5 drm_put_minor +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb0cd9c1f drm_mode_config_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb315f11e drm_fill_in_dev +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb5540008 drm_global_item_unref +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb567e6ce drm_mm_dump_table +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb7811fb4 drm_ioctl +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb8dd450e drm_idlelock_take +EXPORT_SYMBOL drivers/gpu/drm/drm 0xb95beb55 drm_object_property_set_value +EXPORT_SYMBOL drivers/gpu/drm/drm 0xba2d0719 drm_mode_hsync +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbaad4d6d drm_vblank_count_and_time +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbadcbb59 drm_gem_mmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbaf7f721 drm_core_ioremap_wc +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbba283ab drm_pci_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbd2fff25 drm_vblank_count +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbd61adf3 drm_i2c_encoder_mode_set +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbe001c53 drm_property_add_enum +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbe6d1430 drm_agp_enable +EXPORT_SYMBOL drivers/gpu/drm/drm 0xbe89e479 drm_mm_clean +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc25a61ec drm_mode_set_crtcinfo +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc3193742 drm_sysfs_connector_add +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc414c422 drm_vblank_offdelay +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc443ff06 drm_unbind_agp +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc4952726 drm_agp_info +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc6129d14 drm_handle_vblank +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc67849ec drm_calc_vbltimestamp_from_scanoutpos +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc7c22bbe drm_mode_find_dmt +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc87fe131 drm_mm_insert_node_in_range_generic +EXPORT_SYMBOL drivers/gpu/drm/drm 0xc88e7e3c drm_plane_force_disable +EXPORT_SYMBOL drivers/gpu/drm/drm 0xca45efbc drm_format_horz_chroma_subsampling +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcb1beab5 drm_mode_vrefresh +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcc026904 drm_i2c_encoder_detect +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcd0fc417 drm_ht_just_insert_please +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcd547a92 drm_prime_destroy_file_private +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcda91c46 drm_mode_debug_printmodeline +EXPORT_SYMBOL drivers/gpu/drm/drm 0xce7de061 drm_compat_ioctl +EXPORT_SYMBOL drivers/gpu/drm/drm 0xceeaa273 drm_add_edid_modes +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcf1ce9f6 drm_agp_bind_pages +EXPORT_SYMBOL drivers/gpu/drm/drm 0xcf873a8b drm_clflush_pages +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd125790d drm_hdmi_avi_infoframe_from_display_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd2335101 drm_fb_get_bpp_depth +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd30214ba drm_agp_free +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd3261c9a drm_mode_remove +EXPORT_SYMBOL drivers/gpu/drm/drm 0xd3f0878e drm_getsarea +EXPORT_SYMBOL drivers/gpu/drm/drm 0xda5b0a05 drm_framebuffer_lookup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xdb86adbf drm_mm_takedown +EXPORT_SYMBOL drivers/gpu/drm/drm 0xdbb5a9f5 drm_ht_remove_item +EXPORT_SYMBOL drivers/gpu/drm/drm 0xdc48c8f8 drm_gtf_mode_complex +EXPORT_SYMBOL drivers/gpu/drm/drm 0xdc6d52e3 drm_debugfs_remove_files +EXPORT_SYMBOL drivers/gpu/drm/drm 0xdd943167 drm_get_minor +EXPORT_SYMBOL drivers/gpu/drm/drm 0xdf061ada drm_agp_release +EXPORT_SYMBOL drivers/gpu/drm/drm 0xdfe58bc9 drm_agp_acquire +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe319a5e1 drm_prime_remove_buf_handle +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe33f710c drm_get_edid +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe48e0a00 drm_property_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe49b6f42 drm_mm_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe57e4222 drm_ati_pcigart_init +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe6ed13ec drm_get_connector_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe6f46e6e drm_clflush_virt_range +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe7197773 drm_ht_insert_item +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe77924e8 drm_match_cea_mode +EXPORT_SYMBOL drivers/gpu/drm/drm 0xe9f06849 drm_encoder_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xeb01692e drm_rmmap +EXPORT_SYMBOL drivers/gpu/drm/drm 0xecb9918c drm_mode_probed_add +EXPORT_SYMBOL drivers/gpu/drm/drm 0xed063b19 drm_get_encoder_name +EXPORT_SYMBOL drivers/gpu/drm/drm 0xef31171e drm_sysfs_connector_remove +EXPORT_SYMBOL drivers/gpu/drm/drm 0xef885aa0 drm_mode_create_dirty_info_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0xefc6ff5d drm_mode_validate_size +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf1421d13 drm_mode_sort +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf15dec4b drm_mode_duplicate +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf5280bb5 drm_rmmap_locked +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf60a8e80 drm_gem_object_lookup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf7e763e7 drm_property_create_range +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf7efe36d drm_mode_create_dithering_property +EXPORT_SYMBOL drivers/gpu/drm/drm 0xf9705f6c drm_mm_remove_node +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfa345305 drm_gem_prime_handle_to_fd +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfb482163 drm_framebuffer_unreference +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfb6de3d1 drm_framebuffer_cleanup +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfe806402 drm_open +EXPORT_SYMBOL drivers/gpu/drm/drm 0xfea0e4c5 drm_prime_gem_destroy +EXPORT_SYMBOL drivers/gpu/drm/drm 0xffc6c87a drm_detect_monitor_audio +EXPORT_SYMBOL drivers/gpu/drm/drm 0xffe09dce drm_noop +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x0705423a drm_helper_probe_single_connector_modes +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x07f61aa8 i2c_dp_aux_add_bus +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x14cd11e7 drm_kms_helper_poll_disable +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x15b4e3c5 drm_helper_move_panel_connectors_to_head +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x1abaa655 drm_fb_helper_fill_fix +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x236ddb24 drm_fb_helper_fill_var +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x251d7c45 drm_fb_helper_debug_leave +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x259539f0 drm_crtc_helper_set_config +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x2624cd62 drm_helper_resume_force_mode +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x2ca01763 drm_fb_helper_setcmap +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x2d414a5f drm_fb_helper_check_var +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x2d7a787f drm_dp_clock_recovery_ok +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x2eb9e689 drm_fb_helper_initial_config +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x313899ca drm_helper_hpd_irq_event +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x38b90cd5 drm_fb_helper_hotplug_event +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x42ea7259 drm_helper_disable_unused_functions +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x4af6fe8c drm_fb_helper_restore_fbdev_mode +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x5bb960df drm_crtc_helper_set_mode +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x5bd55509 drm_fb_helper_single_add_all_connectors +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x643bfca4 drm_kms_helper_poll_init +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x6aa2a2a6 drm_fb_helper_debug_enter +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x711a004a drm_dp_link_rate_to_bw_code +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x793b3eb0 drm_fb_helper_fini +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x8207398c drm_fb_helper_init +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x91941a91 drm_fb_helper_pan_display +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0x9f78523c drm_helper_connector_dpms +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xa671adf8 drm_helper_mode_fill_fb_struct +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xa67fb916 drm_helper_encoder_in_use +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xa7141a7a drm_helper_crtc_in_use +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xa8d6809d drm_dp_bw_code_to_link_rate +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xb37a0603 drm_dp_link_train_channel_eq_delay +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xc4282a86 drm_kms_helper_hotplug_event +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xc550372c drm_kms_helper_poll_enable +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xc7fd39bb drm_dp_channel_eq_ok +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xd02c73c7 drm_dp_link_train_clock_recovery_delay +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xd33f1b00 drm_kms_helper_poll_fini +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xd42809c7 drm_fb_helper_blank +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xd5d8b6b8 drm_dp_get_adjust_request_pre_emphasis +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xf9653368 drm_fb_helper_set_par +EXPORT_SYMBOL drivers/gpu/drm/drm_kms_helper 0xfee43a69 drm_dp_get_adjust_request_voltage +EXPORT_SYMBOL drivers/gpu/drm/drm_usb 0x01c486f0 drm_usb_exit +EXPORT_SYMBOL drivers/gpu/drm/drm_usb 0x4d8c64f9 drm_get_usb_dev +EXPORT_SYMBOL drivers/gpu/drm/drm_usb 0x5b01ee4c drm_usb_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x02857330 ttm_mem_io_lock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x03e819b5 ttm_bo_wait +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x06084713 ttm_bo_acc_size +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x08488482 ttm_read_unlock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x08a29178 ttm_mem_global_release +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x0cdcd0fd ttm_bo_device_release +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x0d1180f3 ttm_base_object_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x0e00c45c ttm_pool_populate +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x0ebbe826 ttm_write_lock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x0f7bdbc3 ttm_mem_io_free +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x17e48a1d ttm_base_object_lookup +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x18ebe205 ttm_vt_lock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x1993ea98 ttm_bo_create +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x2010429e ttm_suspend_unlock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x22e465f0 ttm_tt_set_placement_caching +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x2b54aa9a ttm_object_file_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x2daf5071 ttm_bo_lock_delayed_workqueue +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x38edc4a1 ttm_dma_tt_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x3d1f7444 ttm_tt_bind +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x43c383d1 ttm_eu_backoff_reservation +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x45bdb939 ttm_tt_fini +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x4783781d ttm_bo_move_memcpy +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x48e81f8c ttm_bo_manager_func +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x4a4e4e50 ttm_mem_global_free +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x4b2dcfda ttm_bo_mem_space +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x4d1eea63 ttm_base_object_unref +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x4e8dd264 ttm_bo_global_release +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x4f8c0ad9 ttm_bo_unmap_virtual +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x564e1aee ttm_bo_global_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x60030863 ttm_bo_add_to_lru +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x6052860c ttm_round_pot +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x6528139f ttm_bo_del_sub_from_lru +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x67f1a1df ttm_bo_mmap +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x6892bcfe ttm_page_alloc_debugfs +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x6953827e ttm_dma_tt_fini +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x6a18b2d3 ttm_bo_move_accel_cleanup +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x734395f0 ttm_bo_kmap +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x7462a9a7 ttm_bo_swapout_all +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x757d0ae3 ttm_mem_io_reserve +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x78c61b50 ttm_vt_unlock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x7bd0b575 ttm_eu_reserve_buffers +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x80d86f0e ttm_object_device_release +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x81e7545f ttm_object_device_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x84996bad ttm_bo_init_mm +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x874562d5 ttm_agp_tt_create +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x89f5f531 ttm_bo_dma_acc_size +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x8ccb4f08 ttm_bo_validate +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x929731c1 ttm_eu_fence_buffer_objects +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x9385b73e ttm_mem_global_alloc +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x94485e78 ttm_pool_unpopulate +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x998e45c0 ttm_ref_object_base_unref +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x9a8bd8ac ttm_read_lock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0x9ecc3dc8 ttm_bo_mem_put +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xa3eec440 ttm_bo_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xa5555194 ttm_bo_synccpu_write_grab +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xa86dde99 ttm_bo_move_ttm +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xacc2feab ttm_write_unlock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xb6c62e66 ttm_bo_clean_mm +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xb7199b7a ttm_agp_tt_populate +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xb7902d7f ttm_ref_object_add +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xbfd72fb2 ttm_bo_kunmap +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xc4d4618d ttm_io_prot +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xc850d617 ttm_mem_global_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xca60ba80 ttm_lock_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xd36436c4 ttm_suspend_lock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xd9ae43ec ttm_agp_tt_unpopulate +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xe13bf707 ttm_bo_evict_mm +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xe149b5b8 ttm_mem_io_unlock +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xe593e0ce ttm_tt_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xeeb9f4b3 ttm_bo_synccpu_write_release +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xf117ba5e ttm_fbdev_mmap +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xf2a055f6 ttm_bo_unref +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xf63f82c8 ttm_bo_device_init +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xf6e136ae ttm_bo_unlock_delayed_workqueue +EXPORT_SYMBOL drivers/gpu/drm/ttm/ttm 0xfbc2c5ec ttm_object_file_release +EXPORT_SYMBOL drivers/hv/hv_vmbus 0xc8272dff vmbus_recvpacket +EXPORT_SYMBOL drivers/hv/hv_vmbus 0xfe3b1bc7 vmbus_sendpacket +EXPORT_SYMBOL drivers/hwmon/hwmon-vid 0x0903c239 vid_from_reg +EXPORT_SYMBOL drivers/hwmon/hwmon-vid 0xef1c781c vid_which_vrm +EXPORT_SYMBOL drivers/hwmon/sch56xx-common 0x0e2a6864 sch56xx_read_virtual_reg +EXPORT_SYMBOL drivers/hwmon/sch56xx-common 0x0f5877d4 sch56xx_read_virtual_reg16 +EXPORT_SYMBOL drivers/hwmon/sch56xx-common 0x34257f35 sch56xx_watchdog_unregister +EXPORT_SYMBOL drivers/hwmon/sch56xx-common 0xa8244caf sch56xx_watchdog_register +EXPORT_SYMBOL drivers/hwmon/sch56xx-common 0xe5022f95 sch56xx_read_virtual_reg12 +EXPORT_SYMBOL drivers/hwmon/sch56xx-common 0xed1d2a08 sch56xx_write_virtual_reg +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-bit 0x890f1447 i2c_bit_algo +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-bit 0x8979ff34 i2c_bit_add_bus +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-bit 0x8fb2fda3 i2c_bit_add_numbered_bus +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-pca 0xe7629820 i2c_pca_add_bus +EXPORT_SYMBOL drivers/i2c/algos/i2c-algo-pca 0xf397e162 i2c_pca_add_numbered_bus +EXPORT_SYMBOL drivers/i2c/busses/i2c-amd756 0xea1756a9 amd756_smbus +EXPORT_SYMBOL drivers/iio/accel/st_accel 0x709a1b97 st_accel_common_remove +EXPORT_SYMBOL drivers/iio/accel/st_accel 0xbf8440e4 st_accel_common_probe +EXPORT_SYMBOL drivers/iio/common/hid-sensors/hid-sensor-iio-common 0x103ddf59 hid_sensor_read_samp_freq_value +EXPORT_SYMBOL drivers/iio/common/hid-sensors/hid-sensor-iio-common 0x14ae499f hid_sensor_write_raw_hyst_value +EXPORT_SYMBOL drivers/iio/common/hid-sensors/hid-sensor-iio-common 0x259a1d83 hid_sensor_write_samp_freq_value +EXPORT_SYMBOL drivers/iio/common/hid-sensors/hid-sensor-iio-common 0x67a3dd2e hid_sensor_parse_common_attributes +EXPORT_SYMBOL drivers/iio/common/hid-sensors/hid-sensor-iio-common 0x91244c34 hid_sensor_read_raw_hyst_value +EXPORT_SYMBOL drivers/iio/common/hid-sensors/hid-sensor-trigger 0xc60d2731 hid_sensor_setup_trigger +EXPORT_SYMBOL drivers/iio/common/hid-sensors/hid-sensor-trigger 0xf6ede4d1 hid_sensor_remove_trigger +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0x074d7047 st_sensors_trigger_handler +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0x09f8a08b st_sensors_set_odr +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0x0c25f374 st_sensors_init_sensor +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0x0e0ac04c st_sensors_set_axis_enable +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0x1149d44c st_sensors_get_buffer_element +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0x122129a2 st_sensors_set_enable +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0x30566b6f st_sensors_sysfs_get_sampling_frequency +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0x31f6dd4f st_sensors_read_info_raw +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0x33ee65bc st_sensors_set_fullscale_by_gain +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0x47ce0edd st_sensors_deallocate_trigger +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0x496ef21d st_sensors_set_dataready_irq +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0x64a6e1d7 st_sensors_allocate_trigger +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0xcf1bd851 st_sensors_check_device_support +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0xd52466c5 st_sensors_sysfs_scale_avail +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0xe9dd12e0 st_sensors_sysfs_sampling_frequency_avail +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors 0xf9b9433c st_sensors_sysfs_set_sampling_frequency +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors_i2c 0xc4c3fec8 st_sensors_i2c_configure +EXPORT_SYMBOL drivers/iio/common/st_sensors/st_sensors_spi 0xa5335169 st_sensors_spi_configure +EXPORT_SYMBOL drivers/iio/gyro/st_gyro 0x096ca4a0 st_gyro_common_remove +EXPORT_SYMBOL drivers/iio/gyro/st_gyro 0xf8fec622 st_gyro_common_probe +EXPORT_SYMBOL drivers/iio/imu/adis_lib 0x064be1e7 adis_enable_irq +EXPORT_SYMBOL drivers/iio/imu/adis_lib 0xe19af2b9 adis_debugfs_reg_access +EXPORT_SYMBOL drivers/iio/industrialio 0x0b440f6b iio_triggered_buffer_postenable +EXPORT_SYMBOL drivers/iio/industrialio 0x14672f9d iio_device_free +EXPORT_SYMBOL drivers/iio/industrialio 0x15638537 iio_trigger_free +EXPORT_SYMBOL drivers/iio/industrialio 0x1e1c5786 iio_buffer_read_length +EXPORT_SYMBOL drivers/iio/industrialio 0x20ab4d1f iio_device_alloc +EXPORT_SYMBOL drivers/iio/industrialio 0x2418869a iio_triggered_buffer_predisable +EXPORT_SYMBOL drivers/iio/industrialio 0x2d6bcdcb iio_trigger_generic_data_rdy_poll +EXPORT_SYMBOL drivers/iio/industrialio 0x3f5c64ee iio_trigger_unregister +EXPORT_SYMBOL drivers/iio/industrialio 0x51447588 iio_trigger_alloc +EXPORT_SYMBOL drivers/iio/industrialio 0x5761c00a iio_buffer_show_enable +EXPORT_SYMBOL drivers/iio/industrialio 0x5d099746 iio_bus_type +EXPORT_SYMBOL drivers/iio/industrialio 0x68808099 iio_trigger_notify_done +EXPORT_SYMBOL drivers/iio/industrialio 0x737453ef iio_trigger_poll_chained +EXPORT_SYMBOL drivers/iio/industrialio 0x7a6faa70 iio_buffer_init +EXPORT_SYMBOL drivers/iio/industrialio 0x7fc21cfe iio_trigger_poll +EXPORT_SYMBOL drivers/iio/industrialio 0x93d850c0 iio_buffer_write_length +EXPORT_SYMBOL drivers/iio/industrialio 0x9f157e60 iio_device_unregister +EXPORT_SYMBOL drivers/iio/industrialio 0xa69644a0 iio_trigger_register +EXPORT_SYMBOL drivers/iio/industrialio 0xae9ad1a4 iio_push_event +EXPORT_SYMBOL drivers/iio/industrialio 0xb3fac415 iio_sw_buffer_preenable +EXPORT_SYMBOL drivers/iio/industrialio 0xbb94a604 iio_buffer_register +EXPORT_SYMBOL drivers/iio/industrialio 0xd0779bfa iio_device_register +EXPORT_SYMBOL drivers/iio/industrialio 0xdbe71f79 iio_read_const_attr +EXPORT_SYMBOL drivers/iio/industrialio 0xde9a696a iio_buffer_unregister +EXPORT_SYMBOL drivers/iio/industrialio 0xdf76bbeb iio_pollfunc_store_time +EXPORT_SYMBOL drivers/iio/industrialio 0xedbeff0b iio_buffer_store_enable +EXPORT_SYMBOL drivers/iio/industrialio-triggered-buffer 0xd2e9a503 iio_triggered_buffer_cleanup +EXPORT_SYMBOL drivers/iio/industrialio-triggered-buffer 0xd71f4f19 iio_triggered_buffer_setup +EXPORT_SYMBOL drivers/iio/kfifo_buf 0x9030ff5d iio_kfifo_free +EXPORT_SYMBOL drivers/iio/kfifo_buf 0xeb8f529f iio_kfifo_allocate +EXPORT_SYMBOL drivers/iio/magnetometer/st_magn 0x94ef1492 st_magn_common_remove +EXPORT_SYMBOL drivers/iio/magnetometer/st_magn 0xa9395ba7 st_magn_common_probe +EXPORT_SYMBOL drivers/iio/pressure/st_pressure 0x0447fa1a st_press_common_remove +EXPORT_SYMBOL drivers/iio/pressure/st_pressure 0xd3b75767 st_press_common_probe +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x1c3c0ad3 rdma_addr_size +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x2107de5f rdma_addr_unregister_client +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x37838b44 rdma_translate_ip +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x501c1a6e rdma_copy_addr +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x6f6ee97c rdma_addr_register_client +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x8ef35bcc rdma_resolve_ip +EXPORT_SYMBOL drivers/infiniband/core/ib_addr 0x9d1f522d rdma_addr_cancel +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x464c9fdb ib_cm_listen +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x5574e9f4 ib_send_cm_sidr_rep +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x5c626400 cm_class +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x757ef3d9 ib_send_cm_req +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x872be68d ib_send_cm_dreq +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x9c372b55 ib_cm_init_qp_attr +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x9cfe430f ib_send_cm_rtu +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0x9d5c42aa ib_send_cm_mra +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xa78c1b50 ib_destroy_cm_id +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xa82b1ce3 ib_create_cm_id +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xbd16457d ib_send_cm_rej +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xc443e385 ib_send_cm_sidr_req +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xcd7ebc3c ib_send_cm_rep +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xd3e637d1 ib_send_cm_drep +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xdb155acc ib_send_cm_lap +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xf0ae9014 ib_cm_notify +EXPORT_SYMBOL drivers/infiniband/core/ib_cm 0xfebeb79d ib_send_cm_apr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x018ff1d8 ib_query_srq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x03b1aa4c ib_dealloc_fmr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x06c82fcf mult_to_ib_rate +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x082c3d02 ib_find_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x094ec54c ib_create_ah_from_wc +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x0a60f64d ib_alloc_fast_reg_page_list +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x0c1b9ac1 ib_ud_header_unpack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x0fbcf308 ib_get_dma_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x119c40af ibnl_add_client +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x11f0a937 rdma_port_get_link_layer +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x14f84918 ib_rate_to_mbps +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x171f99f1 ib_rate_to_mult +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1e491a04 ib_unmap_fmr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x1fe23f81 ib_modify_qp_is_ok +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x22f3cf93 ib_pack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x2481c30c ib_get_cached_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x268c3ff7 ib_modify_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x2704d185 ib_modify_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x28079bc0 ib_find_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x28d6ba68 ib_find_cached_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x2ed60cc2 ib_get_client_data +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x2ed6e386 ib_ud_header_pack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x2f1d8a3d ib_create_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3410d9c9 ib_modify_port +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x357a1c56 ib_create_cq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3a0c3224 ib_free_fast_reg_page_list +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3a72e4d4 ib_query_port +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3b2a73a0 ib_unregister_client +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x3bc376b3 ib_dealloc_mw +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x4a649f08 ib_register_event_handler +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x4de836ec ib_query_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x4f2ba97e ib_unregister_event_handler +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x50dbc447 ib_flush_fmr_pool +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x535a2fa6 ib_modify_cq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x5734e280 ib_close_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x589cbfad ib_umem_page_count +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x5bc1aa18 ib_register_client +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x5fad7f1f ib_alloc_fast_reg_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x654d297d ib_dereg_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x66f7bb7a ib_alloc_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x67c32a86 ib_alloc_pd +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x6adcc18f ib_alloc_xrcd +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x6cc3667c ib_destroy_cq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7395bca5 ib_query_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x79431a63 ibnl_put_msg +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x7d7d926e ib_umem_release +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x8023a12b ib_rereg_phys_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x8bb0a3de ib_find_exact_cached_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x8e7e91fe ib_alloc_fmr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x8f0cd9e1 ib_dealloc_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x948bf406 ib_destroy_srq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x94d28069 ib_modify_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x96ce6c46 rdma_node_get_transport +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x99179512 ib_resize_cq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x99ddeada ib_unregister_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x9b28423a ib_query_gid +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0x9ddeac69 ib_create_srq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xa432baf6 ib_unpack +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xada33c2c ib_reg_phys_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xadf3acfe ib_dealloc_pd +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xb2ec2fee ib_get_cached_lmc +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xba356336 ib_destroy_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xbdb3acbf ib_create_fmr_pool +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc1438037 ib_query_mr +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc1f7a331 ib_attach_mcast +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc2c9d01c ib_get_cached_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc32b59ff ib_destroy_fmr_pool +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc5d424d5 ib_query_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc67f14a5 ibnl_remove_client +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xc9d38499 ib_query_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xcbc8034a ib_open_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xcc98dc7e ib_alloc_mw +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xcecb00f9 ib_find_cached_pkey +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd042497f ib_umem_get +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd16e044e ib_dealloc_xrcd +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd41e6129 ib_set_client_data +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd45fe62e ib_register_device +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xd7223860 ib_init_ah_from_wc +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xdb917bdb ib_dispatch_event +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe53816f6 ib_modify_srq +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe7873f0f ib_create_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe791d801 ib_destroy_ah +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xe7ea497d ib_fmr_pool_map_phys +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf0aaf7d5 ib_fmr_pool_unmap +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xf9a7e9b9 ib_detach_mcast +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xfc150956 ib_ud_header_init +EXPORT_SYMBOL drivers/infiniband/core/ib_core 0xfd3274e5 ibnl_put_attr +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x1a93ed75 ib_create_send_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x365d86ee ib_free_send_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x5a14ff5f ib_post_send_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x63365e37 ib_unregister_mad_agent +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x6f077fcf ib_get_mad_data_offset +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x6f66693b ib_free_recv_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x7b5d4b7a ib_is_mad_class_rmpp +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0x946d5d27 ib_response_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xaf810a77 ib_get_rmpp_segment +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xba0c6e2c ib_process_mad_wc +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xce956a4c ib_register_mad_agent +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xda4bc1f9 ib_cancel_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xdb55c9b0 ib_register_mad_snoop +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xdb9292d4 ib_modify_mad +EXPORT_SYMBOL drivers/infiniband/core/ib_mad 0xe65e1a8c ib_redirect_mad_qp +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x2fd0e42f ib_sa_unregister_client +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x30341ab9 ib_sa_join_multicast +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x5034915f ib_sa_service_rec_query +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x576fdbac ib_sa_free_multicast +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0x74cce1fa ib_sa_get_mcmember_rec +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xb9c9e4f7 ib_init_ah_from_mcmember +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xc1955a3f ib_sa_register_client +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xda0d50ec ib_sa_cancel_query +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xdd69a7c0 ib_sa_guid_info_rec_query +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xe2b87e77 ib_init_ah_from_path +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xe64c35db ib_sa_path_rec_get +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xe9efd86f ib_sa_pack_path +EXPORT_SYMBOL drivers/infiniband/core/ib_sa 0xf6b6444b ib_sa_unpack_path +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x02f847bc ib_copy_path_rec_from_user +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x07cf5a51 ib_copy_ah_attr_to_user +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x18382f6a ib_copy_path_rec_to_user +EXPORT_SYMBOL drivers/infiniband/core/ib_uverbs 0x184f3575 ib_copy_qp_attr_to_user +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x1bb75172 iw_cm_disconnect +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x2691330d iw_cm_listen +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x38cc8170 iw_cm_connect +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x617420cd iw_destroy_cm_id +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x8fcb0e3c iw_cm_reject +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0x941a67f4 iw_create_cm_id +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0xa9188be1 iw_cm_init_qp_attr +EXPORT_SYMBOL drivers/infiniband/core/iw_cm 0xdf5c26b5 iw_cm_accept +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x03ec4212 rdma_init_qp_attr +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x136d81ad rdma_get_service_id +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x14262131 rdma_set_reuseaddr +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x239fcd87 rdma_set_ib_paths +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x24cc9cf2 rdma_destroy_id +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x323d67e5 rdma_create_id +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x35c2e55f rdma_resolve_route +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x4985edc2 rdma_set_afonly +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x78a40106 rdma_resolve_addr +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x7dcd625f rdma_connect +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0x9ebc2d3c rdma_listen +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xb66397af rdma_destroy_qp +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xbdc65b7f rdma_create_qp +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xbe5f251b rdma_reject +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xc9d8dd9f rdma_notify +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xcae7880f rdma_leave_multicast +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xd362ee0c rdma_accept +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xe2a28fb8 rdma_disconnect +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xf1cd41a7 rdma_bind_addr +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xfad50b65 rdma_set_service_type +EXPORT_SYMBOL drivers/infiniband/core/rdma_cm 0xffaeac97 rdma_join_multicast +EXPORT_SYMBOL drivers/input/gameport/gameport 0x2374888a gameport_stop_polling +EXPORT_SYMBOL drivers/input/gameport/gameport 0x463e5814 __gameport_register_driver +EXPORT_SYMBOL drivers/input/gameport/gameport 0x5e986e20 gameport_set_phys +EXPORT_SYMBOL drivers/input/gameport/gameport 0x613a41ef gameport_close +EXPORT_SYMBOL drivers/input/gameport/gameport 0x7581b252 gameport_unregister_port +EXPORT_SYMBOL drivers/input/gameport/gameport 0x80109d3b gameport_open +EXPORT_SYMBOL drivers/input/gameport/gameport 0xa36ca356 __gameport_register_port +EXPORT_SYMBOL drivers/input/gameport/gameport 0xb9ab6e40 gameport_unregister_driver +EXPORT_SYMBOL drivers/input/gameport/gameport 0xf55d6881 gameport_start_polling +EXPORT_SYMBOL drivers/input/input-polldev 0x60970675 input_register_polled_device +EXPORT_SYMBOL drivers/input/input-polldev 0x829ac572 input_unregister_polled_device +EXPORT_SYMBOL drivers/input/input-polldev 0xba001a85 input_allocate_polled_device +EXPORT_SYMBOL drivers/input/input-polldev 0xda372661 input_free_polled_device +EXPORT_SYMBOL drivers/input/matrix-keymap 0x5114532f matrix_keypad_build_keymap +EXPORT_SYMBOL drivers/input/misc/ad714x 0x4ba296b7 ad714x_probe +EXPORT_SYMBOL drivers/input/misc/ad714x 0x5427b284 ad714x_enable +EXPORT_SYMBOL drivers/input/misc/ad714x 0x7fdf988b ad714x_remove +EXPORT_SYMBOL drivers/input/misc/ad714x 0xfbf87dc8 ad714x_disable +EXPORT_SYMBOL drivers/input/misc/cma3000_d0x 0x32640b9a cma3000_init +EXPORT_SYMBOL drivers/input/misc/cma3000_d0x 0x892d76b2 cma3000_resume +EXPORT_SYMBOL drivers/input/misc/cma3000_d0x 0x89d9444e cma3000_exit +EXPORT_SYMBOL drivers/input/misc/cma3000_d0x 0xca3f100a cma3000_suspend +EXPORT_SYMBOL drivers/input/sparse-keymap 0x12d41386 sparse_keymap_report_entry +EXPORT_SYMBOL drivers/input/sparse-keymap 0x1b44b7df sparse_keymap_setup +EXPORT_SYMBOL drivers/input/sparse-keymap 0x7b83c6b7 sparse_keymap_entry_from_scancode +EXPORT_SYMBOL drivers/input/sparse-keymap 0x93e1f68a sparse_keymap_entry_from_keycode +EXPORT_SYMBOL drivers/input/sparse-keymap 0xc49c1b04 sparse_keymap_report_event +EXPORT_SYMBOL drivers/input/sparse-keymap 0xe1dce6cc sparse_keymap_free +EXPORT_SYMBOL drivers/input/touchscreen/ad7879 0x3be8a8b3 ad7879_pm_ops +EXPORT_SYMBOL drivers/input/touchscreen/ad7879 0x7bf2b067 ad7879_probe +EXPORT_SYMBOL drivers/input/touchscreen/ad7879 0x97f83edf ad7879_remove +EXPORT_SYMBOL drivers/iommu/amd_iommu_v2 0x53a84dbf amd_iommu_init_device +EXPORT_SYMBOL drivers/iommu/amd_iommu_v2 0x9a608281 amd_iommu_bind_pasid +EXPORT_SYMBOL drivers/iommu/amd_iommu_v2 0xb5bbbb3b amd_iommu_set_invalidate_ctx_cb +EXPORT_SYMBOL drivers/iommu/amd_iommu_v2 0xc11339c6 amd_iommu_free_device +EXPORT_SYMBOL drivers/iommu/amd_iommu_v2 0xcf9a8db8 amd_iommu_set_invalid_ppr_cb +EXPORT_SYMBOL drivers/iommu/amd_iommu_v2 0xea40b165 amd_iommu_unbind_pasid +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x04403fcf unregister_capi_driver +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x14f2aa5a capi20_get_version +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x2b8eab1f capilib_free_ncci +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x2baa6586 capilib_new_ncci +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x31c24aa4 capi20_isinstalled +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x47d3fc51 capi_info2str +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x50b33ca4 capi_cmsg2message +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x6057c6f3 capi_message2cmsg +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x62e32d43 capilib_data_b3_conf +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x71e8d5ba capilib_data_b3_req +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x7292ab34 cdebbuf_free +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x72a25a72 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 0x899a5f1c capi20_release +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x8a0c3cd3 capi_ctr_suspend_output +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x8f699913 capilib_release +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0x9bcc5ca6 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 0xbf20523e capi_ctr_resume_output +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xc6eb6cdd capi20_put_message +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xe19a11ac capi20_get_profile +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xe72d7f58 attach_capi_ctr +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xe966a397 capi_ctr_ready +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xecedfff3 capi_ctr_down +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xed061606 capi20_manufacturer +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xfd552f7a capi_message2str +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xff773a12 capi_ctr_handle_message +EXPORT_SYMBOL drivers/isdn/capi/kernelcapi 0xffed230f detach_capi_ctr +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x015da019 b1_send_message +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x1c226ce6 b1_reset_ctr +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x2024f99f b1_load_t4file +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x517f8f22 b1_getrevision +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x54ba1569 b1_release_appl +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x57c335b9 b1_parse_version +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x85f09690 b1_irq_table +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0x92c62c4a b1_free_card +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xa1abbcbb b1_loaded +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xac6b63af avmcard_dma_free +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xad625d6e avmcard_dma_alloc +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xc08d3d3d b1_alloc_card +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xca03c0cb b1_load_firmware +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xd24645d9 b1ctl_proc_fops +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xdfd28376 b1_detect +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xe2ad1464 b1_register_appl +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xe7ef09fe b1_load_config +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1 0xfa10fee4 b1_interrupt +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x00029a70 b1dma_reset +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x2eba7dc6 b1dmactl_proc_fops +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x6b05c17f t1pci_detect +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x79a39fd2 b1dma_send_message +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0x9224c7ba b1pciv4_detect +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0xa5c5c59b b1dma_register_appl +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0xc6d0a7f5 b1dma_load_firmware +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0xd4eb3b32 b1dma_release_appl +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0xd6f9f1ea b1dma_interrupt +EXPORT_SYMBOL drivers/isdn/hardware/avm/b1dma 0xe9030487 b1dma_reset_ctr +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 0x7ab59853 proc_net_eicon +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0x82bc1178 mISDNisac_irq +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0xb8fd0f2b mISDNipac_init +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0xdb896d9f mISDNipac_irq +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNipac 0xdd503209 mISDNisac_init +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNisar 0x9ebc7d69 mISDNisar_irq +EXPORT_SYMBOL drivers/isdn/hardware/mISDN/mISDNisar 0xbe3ed019 mISDNisar_init +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x07f4f2ce hisax_unregister +EXPORT_SYMBOL drivers/isdn/hisax/hisax 0x0a65cf54 hisax_init_pcmcia +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/hisax/hisax_isac 0x3f3b323a isac_d_l2l1 +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0x422ce618 isac_irq +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0x46bd6cd8 isac_init +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0x929b6bc0 isacsx_setup +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0xac622191 isac_setup +EXPORT_SYMBOL drivers/isdn/hisax/hisax_isac 0xad7f8913 isacsx_irq +EXPORT_SYMBOL drivers/isdn/i4l/isdn 0x07c6b61a isdn_ppp_register_compressor +EXPORT_SYMBOL drivers/isdn/i4l/isdn 0x42fd3f6d isdn_ppp_unregister_compressor +EXPORT_SYMBOL drivers/isdn/i4l/isdn 0x999202e1 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 0x00ae3e82 mISDN_unregister_Bprotocol +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x0cc625d6 mISDN_ctrl_bchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x13c8fa04 recv_Dchannel_skb +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x204d5194 mISDN_freebchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x2348cc3c mISDN_FsmFree +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x27021617 dchannel_senddata +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x29a0c040 recv_Bchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x483c5840 get_next_bframe +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x4fb6f3f8 mISDNDevName4ch +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x50c2230c mISDN_FsmChangeState +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x533c9cad queue_ch_frame +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x54451388 mISDN_FsmRestartTimer +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x57d547cc bchannel_senddata +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x588886a6 l1_event +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x614ede30 mISDN_FsmAddTimer +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x72ee3331 create_l1 +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x7cdd7f2a bchannel_get_rxbuf +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x882390b6 mISDN_register_Bprotocol +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x898a9b84 recv_Dchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x8a4e99fb mISDN_clock_update +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0x96309324 mISDN_FsmDelTimer +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xa440cfd0 mISDN_freedchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xa7521aa4 mISDN_clear_bchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xc3401729 mISDN_register_clock +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xc68cd62e recv_Bchannel_skb +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xcb4d73fe 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 0xda223879 mISDN_initdchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xdb59a88c recv_Echannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xe3e78412 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 0xee92961a mISDN_initbchannel +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xf9e7832f mISDN_FsmNew +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_core 0xfc341ffa mISDN_unregister_device +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_dsp 0x01087af0 mISDN_dsp_element_unregister +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_dsp 0x60721da7 dsp_audio_law_to_s32 +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_dsp 0xa215f1b2 dsp_audio_s16_to_law +EXPORT_SYMBOL drivers/isdn/mISDN/mISDN_dsp 0xb98308d8 mISDN_dsp_element_register +EXPORT_SYMBOL drivers/md/dm-log 0x3a81660d dm_dirty_log_destroy +EXPORT_SYMBOL drivers/md/dm-log 0x4a2b896b dm_dirty_log_type_unregister +EXPORT_SYMBOL drivers/md/dm-log 0xeaa055b3 dm_dirty_log_create +EXPORT_SYMBOL drivers/md/dm-log 0xf2cc1d51 dm_dirty_log_type_register +EXPORT_SYMBOL drivers/md/dm-snapshot 0x09349b81 dm_exception_store_create +EXPORT_SYMBOL drivers/md/dm-snapshot 0x6623b566 dm_snap_origin +EXPORT_SYMBOL drivers/md/dm-snapshot 0x736acc7c dm_exception_store_type_register +EXPORT_SYMBOL drivers/md/dm-snapshot 0x7bba1761 dm_snap_cow +EXPORT_SYMBOL drivers/md/dm-snapshot 0xa056b8c9 dm_exception_store_destroy +EXPORT_SYMBOL drivers/md/dm-snapshot 0xd5515ad7 dm_exception_store_type_unregister +EXPORT_SYMBOL drivers/md/raid456 0x89919b19 raid5_set_cache_size +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0x05736861 flexcop_dump_reg +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0x1aef1a2a flexcop_pid_feed_control +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0x355bce1b flexcop_device_exit +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0x476d9429 flexcop_pass_dmx_data +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0x58b16162 flexcop_pass_dmx_packets +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0x6382d78f flexcop_device_kfree +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0x8bcb5493 flexcop_wan_set_speed +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0x8edec7a3 flexcop_device_kmalloc +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0x9e6b69c0 flexcop_sram_set_dest +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0xb4a5cd80 flexcop_sram_ctrl +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0xb95fe63f flexcop_device_initialize +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0xbc9fe0a4 flexcop_eeprom_check_mac_addr +EXPORT_SYMBOL drivers/media/common/b2c2/b2c2-flexcop 0xbfb99547 flexcop_i2c_request +EXPORT_SYMBOL drivers/media/common/btcx-risc 0x495e4b0c btcx_calc_skips +EXPORT_SYMBOL drivers/media/common/btcx-risc 0x5f54667a btcx_riscmem_alloc +EXPORT_SYMBOL drivers/media/common/btcx-risc 0xad2fe38b btcx_sort_clips +EXPORT_SYMBOL drivers/media/common/btcx-risc 0xc368f8e6 btcx_align +EXPORT_SYMBOL drivers/media/common/btcx-risc 0xcda0ded2 btcx_screen_clips +EXPORT_SYMBOL drivers/media/common/btcx-risc 0xeaa56578 btcx_riscmem_free +EXPORT_SYMBOL drivers/media/common/cx2341x 0x1ca0c084 cx2341x_log_status +EXPORT_SYMBOL drivers/media/common/cx2341x 0x2c91d793 cx2341x_handler_setup +EXPORT_SYMBOL drivers/media/common/cx2341x 0x2f25eee2 cx2341x_update +EXPORT_SYMBOL drivers/media/common/cx2341x 0x3db8be82 cx2341x_ctrl_query +EXPORT_SYMBOL drivers/media/common/cx2341x 0x5b88faf6 cx2341x_ext_ctrls +EXPORT_SYMBOL drivers/media/common/cx2341x 0x6489daaf cx2341x_handler_set_busy +EXPORT_SYMBOL drivers/media/common/cx2341x 0x9e1a5d5f cx2341x_handler_set_50hz +EXPORT_SYMBOL drivers/media/common/cx2341x 0xbf855f86 cx2341x_handler_init +EXPORT_SYMBOL drivers/media/common/cx2341x 0xc184ec1e cx2341x_ctrl_get_menu +EXPORT_SYMBOL drivers/media/common/cx2341x 0xcf76ce95 cx2341x_fill_defaults +EXPORT_SYMBOL drivers/media/common/cx2341x 0xcf8b77a4 cx2341x_mpeg_ctrls +EXPORT_SYMBOL drivers/media/common/cypress_firmware 0x7af1c60e cypress_load_firmware +EXPORT_SYMBOL drivers/media/common/tveeprom 0xa291feea tveeprom_hauppauge_analog +EXPORT_SYMBOL drivers/media/common/tveeprom 0xcd10d38e tveeprom_read +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x0c651bb2 dvb_ringbuffer_read +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x17523ce7 dvb_frontend_sleep_until +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x19ee55fc dvb_ca_en50221_camready_irq +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x1a9160a8 dvb_net_init +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x1b475a54 dvb_dmxdev_release +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x21b19ced dvb_dmxdev_init +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x398aab01 dvb_ringbuffer_flush_spinlock_wakeup +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x472cdd95 dvb_ca_en50221_release +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x47f7093e dvb_register_frontend +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x49979588 dvb_net_release +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x60ca9961 dvb_frontend_detach +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x64d6d7a9 dvb_ringbuffer_avail +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x672078ac dvb_ca_en50221_frda_irq +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x6de21843 dvb_dmx_swfilter +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x74a5a698 dvb_filter_pes2ts_init +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x77f3e703 dvb_dmx_swfilter_204 +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x80e3832d dvb_filter_get_ac3info +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x887caf4f dvb_ringbuffer_init +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0x8d0df2a1 dvb_ringbuffer_free +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xa2a65e70 dvb_ringbuffer_read_user +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xa2cd3c48 dvb_unregister_frontend +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xa7302bb5 dvb_register_adapter +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xac4ca1b0 intlog2 +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xb0c75751 dvb_unregister_device +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xb108013e dvb_ca_en50221_init +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xb19170cf dvb_generic_ioctl +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xb5d20d91 dvb_unregister_adapter +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xbf049a3c dvb_generic_open +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xbfc3f36e dvb_dmx_init +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xbfcb59cd dvb_dmx_swfilter_packets +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xc81eee65 dvb_generic_release +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xca329322 dvb_ca_en50221_camchange_irq +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xca4965f1 dvb_ringbuffer_empty +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xd4c459be dvb_frontend_resume +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xd68a099e timeval_usec_diff +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xd83f9981 dvb_register_device +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xdc6b8dea dvb_dmx_release +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xe15697bd dvb_ringbuffer_write +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xe5ae8707 intlog10 +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xe9caebc6 dvb_frontend_suspend +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xef8a7c6e dvb_dmx_swfilter_raw +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xefcef46b dvb_ringbuffer_flush +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xf09d542f dvb_frontend_reinitialise +EXPORT_SYMBOL drivers/media/dvb-core/dvb-core 0xf826deb0 dvb_filter_pes2ts +EXPORT_SYMBOL drivers/media/dvb-frontends/a8293 0x3fd6b402 a8293_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/af9013 0x2280c4b2 af9013_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/af9033 0xeb4dc7e8 af9033_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/atbm8830 0x84cd7f0e atbm8830_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_common 0x03576bad au8522_release_state +EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_common 0x1373fe62 au8522_get_state +EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_common 0x3308d126 au8522_writereg +EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_common 0x4158c4c6 au8522_sleep +EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_common 0x5870f773 au8522_analog_i2c_gate_ctrl +EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_common 0x64ad953f au8522_init +EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_common 0xa2ec9d73 au8522_readreg +EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_common 0xb9f9a192 au8522_led_ctrl +EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_common 0xe7e77e8e au8522_i2c_gate_ctrl +EXPORT_SYMBOL drivers/media/dvb-frontends/au8522_dig 0xab521809 au8522_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/bcm3510 0xc718b14f bcm3510_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/cx22700 0xe9809aa2 cx22700_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/cx22702 0x5edcee24 cx22702_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/cx24110 0xadf8274c cx24110_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/cx24113 0x6f2c5b68 cx24113_agc_callback +EXPORT_SYMBOL drivers/media/dvb-frontends/cx24113 0x9de493a7 cx24113_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/cx24116 0x797276d2 cx24116_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/cx24123 0x9c9806c7 cx24123_get_tuner_i2c_adapter +EXPORT_SYMBOL drivers/media/dvb-frontends/cx24123 0xd1cc6aa3 cx24123_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/cxd2820r 0x38191a83 cxd2820r_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0070 0x18c34e00 dib0070_set_rf_output +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0070 0x1cfcc97e dib0070_get_rf_output +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0070 0xa3d932be dib0070_wbd_offset +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0070 0xc9a8279d dib0070_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0070 0xf07056f4 dib0070_ctrl_agc_filter +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x14a3e9f7 dib0090_set_dc_servo +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x3c23c8d4 dib0090_pwm_gain_reset +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x619d1931 dib0090_dcc_freq +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x677c0e57 dib0090_gain_control +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x6da62c4d dib0090_get_current_gain +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x7381628e dib0090_update_rframp_7090 +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x8d64ae17 dib0090_update_tuning_table_7090 +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0x98199795 dib0090_set_tune_state +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0xb9d95f37 dib0090_get_tune_state +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0xd199412f dib0090_get_wbd_target +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0xdc9fc8c4 dib0090_set_vga +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0xdf6f9686 dib0090_register +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0xfa10b1af dib0090_set_switch +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0xfafc1c22 dib0090_fw_register +EXPORT_SYMBOL drivers/media/dvb-frontends/dib0090 0xff923825 dib0090_get_wbd_offset +EXPORT_SYMBOL drivers/media/dvb-frontends/dib3000mb 0xf28e8170 dib3000mb_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/dib3000mc 0x208cdf3d dib3000mc_get_tuner_i2c_master +EXPORT_SYMBOL drivers/media/dvb-frontends/dib3000mc 0x38a1e51e dib3000mc_pid_control +EXPORT_SYMBOL drivers/media/dvb-frontends/dib3000mc 0x5323dd0a dib3000mc_set_config +EXPORT_SYMBOL drivers/media/dvb-frontends/dib3000mc 0x8bf02fc1 dib3000mc_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/dib3000mc 0xcdbdc8eb dib3000mc_pid_parse +EXPORT_SYMBOL drivers/media/dvb-frontends/dib3000mc 0xe5964e59 dib3000mc_i2c_enumeration +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000m 0x18cb10e9 dib7000m_get_i2c_master +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000m 0x30aacbd6 dib7000m_pid_filter +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000m 0x97679c49 dib7000m_pid_filter_ctrl +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000m 0xf5e18e1c dib7000m_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0x099eb289 dib7000pc_detection +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0x26507b15 dib7090_tuner_sleep +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0x27b89ae8 dib7090_slave_reset +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0x65db6218 dib7000p_update_pll +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0x680caeb9 dib7090_get_i2c_tuner +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0x6bdeb6de dib7000p_i2c_enumeration +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0x6e308469 dib7000p_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0x84c2bef0 dib7000p_pid_filter +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0x8a3ff6c4 dib7000p_get_i2c_master +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0x8caf9e52 dib7000p_get_agc_values +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0x999d3f62 dib7000p_set_agc1_min +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0xa19f6af3 dib7000p_set_wbd_ref +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0xa9e1a47d dib7090_get_adc_power +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0xc0330cc4 dib7000p_ctrl_timf +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0xf5349e1c dib7000p_pid_filter_ctrl +EXPORT_SYMBOL drivers/media/dvb-frontends/dib7000p 0xffcbbf70 dib7000p_set_gpio +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0x03adf176 dib8000_i2c_enumeration +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0x1895d171 dib8000_pid_filter +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0x2b6f3b32 dib8090p_get_dc_power +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0x4b4ae246 dib8000_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0x523afb5a dib8000_ctrl_timf +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0x5657ae6c dib8000_set_slave_frontend +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0x6768e092 dib8000_get_tune_state +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0x6823fccb dib8000_pwm_agc_reset +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0x7d336f8f dib8000_pid_filter_ctrl +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0x7d66cde0 dib8000_remove_slave_frontend +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0x7eb73542 dib8000_update_pll +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0x89a12ada dib8000_get_adc_power +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0x935dfc0e dib8000_set_gpio +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0x9cef50d4 dib8000_get_i2c_master +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0xa9722863 dib8096p_get_i2c_tuner +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0xaf6c3cf1 dib8000_get_slave_frontend +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0xbd2ced51 dib8096p_tuner_sleep +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0xd8bbd35c dib8000_set_tune_state +EXPORT_SYMBOL drivers/media/dvb-frontends/dib8000 0xfc4e7adc dib8000_set_wbd_ref +EXPORT_SYMBOL drivers/media/dvb-frontends/dibx000_common 0x212bafd4 dibx000_get_i2c_adapter +EXPORT_SYMBOL drivers/media/dvb-frontends/dibx000_common 0x33415c01 dibx000_exit_i2c_master +EXPORT_SYMBOL drivers/media/dvb-frontends/dibx000_common 0x36557c5d dibx000_init_i2c_master +EXPORT_SYMBOL drivers/media/dvb-frontends/dibx000_common 0xaab6a21a dibx000_i2c_set_speed +EXPORT_SYMBOL drivers/media/dvb-frontends/dibx000_common 0xad3ad91c systime +EXPORT_SYMBOL drivers/media/dvb-frontends/dibx000_common 0xb5a4aa1d dibx000_reset_i2c_master +EXPORT_SYMBOL drivers/media/dvb-frontends/drxd 0x04acbee1 drxd_config_i2c +EXPORT_SYMBOL drivers/media/dvb-frontends/drxd 0xc6608ddf drxd_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/drxk 0x339eab6d drxk_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/ds3000 0x87b201f6 ds3000_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/dvb-pll 0x5c3b64c8 dvb_pll_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/ec100 0xc0d714e0 ec100_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/isl6405 0x8575e203 isl6405_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/isl6421 0x62279ad7 isl6421_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/isl6423 0x77c82718 isl6423_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/it913x-fe 0xe7c731cc it913x_fe_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/itd1000 0xce980be5 itd1000_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/ix2505v 0xf81743ff ix2505v_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/l64781 0x81e616ec l64781_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/lg2160 0x82ae2c4a lg2160_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/lgdt3305 0xf683eccd lgdt3305_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/lgdt330x 0xbdfcf38e lgdt330x_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/lgs8gxx 0x17ccf6a2 lgs8gxx_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/lnbp21 0x5fdbc5e2 lnbp21_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/lnbp21 0x94d479de lnbh24_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/lnbp22 0x8988836b lnbp22_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/m88rs2000 0x14ae1d47 m88rs2000_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/mb86a16 0x0d1bea24 mb86a16_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/mb86a20s 0x245642f7 mb86a20s_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/mt312 0xf0d8b9aa mt312_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/mt352 0x2c1137f9 mt352_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/nxt200x 0xa4c41362 nxt200x_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/nxt6000 0x7445b1a5 nxt6000_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/or51132 0x25beff85 or51132_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/or51211 0xfd20cd60 or51211_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/rtl2830 0x287f1b2e rtl2830_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/rtl2830 0x2d846358 rtl2830_get_tuner_i2c_adapter +EXPORT_SYMBOL drivers/media/dvb-frontends/rtl2832 0xe1b86593 rtl2832_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/s5h1409 0x201d04c2 s5h1409_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/s5h1411 0xd899a937 s5h1411_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/s5h1420 0x0f2e0f45 s5h1420_get_tuner_i2c_adapter +EXPORT_SYMBOL drivers/media/dvb-frontends/s5h1420 0x61d95c67 s5h1420_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/s921 0xef541816 s921_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/si21xx 0x3bb67cca si21xx_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/sp8870 0x034d8519 sp8870_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/sp887x 0x9bd17cc2 sp887x_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stb0899 0xa4e3329b stb0899_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stb6000 0xf92643a6 stb6000_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stb6100 0x5aba7ee9 stb6100_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stv0288 0x97955b01 stv0288_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stv0297 0xd9ed5011 stv0297_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stv0299 0xf8a951d6 stv0299_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stv0367 0x7597f927 stv0367cab_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stv0367 0xad54d91a stv0367ter_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stv0900 0x908d5419 stv0900_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stv090x 0x31c4bfd5 stv090x_set_gpio +EXPORT_SYMBOL drivers/media/dvb-frontends/stv090x 0x88fe72ef stv090x_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stv6110 0x42fd658d stv6110_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/stv6110x 0xb12edcc9 stv6110x_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda10021 0xc8e01850 tda10021_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda10023 0xb5b13a30 tda10023_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda10048 0x1b6fbad4 tda10048_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda1004x 0x5bba21eb tda10045_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda1004x 0x8bd6b2ff tda10046_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda10071 0xb75fb6f2 tda10071_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda10086 0xe026d19f tda10086_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda665x 0x3dbcf763 tda665x_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda8083 0xe89aad9f tda8083_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda8261 0x0bf53323 tda8261_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tda826x 0x6cc3f5d6 tda826x_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/ts2020 0x7bba2f71 ts2020_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/tua6100 0x6337c8eb tua6100_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/ves1820 0x6fd4bca9 ves1820_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/ves1x93 0x0eb126b0 ves1x93_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/zl10036 0x834bd035 zl10036_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/zl10039 0xce89a58e zl10039_attach +EXPORT_SYMBOL drivers/media/dvb-frontends/zl10353 0x2dc67fae zl10353_attach +EXPORT_SYMBOL drivers/media/pci/b2c2/b2c2-flexcop-pci 0x11511ccb flexcop_dma_xfer_control +EXPORT_SYMBOL drivers/media/pci/b2c2/b2c2-flexcop-pci 0x84d06f4a flexcop_dma_config_timer +EXPORT_SYMBOL drivers/media/pci/b2c2/b2c2-flexcop-pci 0x95c39053 flexcop_dma_config +EXPORT_SYMBOL drivers/media/pci/b2c2/b2c2-flexcop-pci 0x95d533fd flexcop_dma_control_size_irq +EXPORT_SYMBOL drivers/media/pci/b2c2/b2c2-flexcop-pci 0xc2c940ca flexcop_dma_allocate +EXPORT_SYMBOL drivers/media/pci/b2c2/b2c2-flexcop-pci 0xd2a052a2 flexcop_dma_free +EXPORT_SYMBOL drivers/media/pci/b2c2/b2c2-flexcop-pci 0xd8a2ef6b flexcop_dma_control_timer_irq +EXPORT_SYMBOL drivers/media/pci/bt8xx/bt878 0x187f44ff bt878_device_control +EXPORT_SYMBOL drivers/media/pci/bt8xx/bt878 0x54df515e bt878_stop +EXPORT_SYMBOL drivers/media/pci/bt8xx/bt878 0x75b01963 bt878_start +EXPORT_SYMBOL drivers/media/pci/bt8xx/bt878 0xaa56bc60 bt878 +EXPORT_SYMBOL drivers/media/pci/bt8xx/bt878 0xd5d0bdef bt878_num +EXPORT_SYMBOL drivers/media/pci/bt8xx/bttv 0x11dc4b6d bttv_gpio_enable +EXPORT_SYMBOL drivers/media/pci/bt8xx/bttv 0x2e613c18 bttv_sub_register +EXPORT_SYMBOL drivers/media/pci/bt8xx/bttv 0x84cb0e67 bttv_get_pcidev +EXPORT_SYMBOL drivers/media/pci/bt8xx/bttv 0x8ecf4acc bttv_write_gpio +EXPORT_SYMBOL drivers/media/pci/bt8xx/bttv 0xbcf2d2fb bttv_read_gpio +EXPORT_SYMBOL drivers/media/pci/bt8xx/bttv 0xf75944db bttv_sub_unregister +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0x36c16c2d write_dst +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0x3cb8d4fb dst_comm_init +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0x3d485b86 dst_attach +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0x506a84d6 read_dst +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0x5f380063 dst_pio_disable +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0x82c86d8c dst_wait_dst_ready +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0xbdbd19f5 dst_error_bailout +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0xcd17b54b rdc_reset_state +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0xdf1c9180 dst_error_recovery +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst 0xe94b8c9c dst_check_sum +EXPORT_SYMBOL drivers/media/pci/bt8xx/dst_ca 0x84b6a5ab dst_ca_attach +EXPORT_SYMBOL drivers/media/pci/cx18/cx18 0x2cdea06d cx18_reset_ir_gpio +EXPORT_SYMBOL drivers/media/pci/cx18/cx18 0x421b9157 cx18_stop_v4l2_encode_stream +EXPORT_SYMBOL drivers/media/pci/cx18/cx18 0x68f9555f cx18_start_v4l2_encode_stream +EXPORT_SYMBOL drivers/media/pci/cx18/cx18 0x7601bcf3 cx18_claim_stream +EXPORT_SYMBOL drivers/media/pci/cx18/cx18 0xa8606e09 cx18_release_stream +EXPORT_SYMBOL drivers/media/pci/cx18/cx18 0xee9616d2 cx18_ext_init +EXPORT_SYMBOL drivers/media/pci/cx23885/altera-ci 0x6417f38d altera_pid_feed_control +EXPORT_SYMBOL drivers/media/pci/cx23885/altera-ci 0x6ff7510d altera_ci_tuner_reset +EXPORT_SYMBOL drivers/media/pci/cx23885/altera-ci 0x9247b72f altera_hw_filt_release +EXPORT_SYMBOL drivers/media/pci/cx23885/altera-ci 0xaed69fd5 altera_ci_init +EXPORT_SYMBOL drivers/media/pci/cx23885/altera-ci 0xb3110f41 altera_hw_filt_init +EXPORT_SYMBOL drivers/media/pci/cx23885/altera-ci 0xdb3faf38 altera_ci_release +EXPORT_SYMBOL drivers/media/pci/cx23885/altera-ci 0xe66b9812 altera_ci_irq +EXPORT_SYMBOL drivers/media/pci/cx25821/cx25821 0x0e894ac9 cx25821_sram_channel_setup_audio +EXPORT_SYMBOL drivers/media/pci/cx25821/cx25821 0x28dd9b60 cx25821_risc_databuffer_audio +EXPORT_SYMBOL drivers/media/pci/cx25821/cx25821 0x3f1d0329 cx25821_sram_channel_dump_audio +EXPORT_SYMBOL drivers/media/pci/cx25821/cx25821 0x784853c3 cx25821_print_irqbits +EXPORT_SYMBOL drivers/media/pci/cx25821/cx25821 0xa40717f7 cx25821_dev_get +EXPORT_SYMBOL drivers/media/pci/cx25821/cx25821 0xc5d38741 cx25821_sram_channels +EXPORT_SYMBOL drivers/media/pci/cx25821/cx25821 0xdaa33d4d cx25821_dev_unregister +EXPORT_SYMBOL drivers/media/pci/cx25821/cx25821 0xefd66e84 cx25821_set_gpiopin_direction +EXPORT_SYMBOL drivers/media/pci/cx88/cx88-vp3054-i2c 0x8b5efa36 vp3054_i2c_probe +EXPORT_SYMBOL drivers/media/pci/cx88/cx88-vp3054-i2c 0xfe966de2 vp3054_i2c_remove +EXPORT_SYMBOL drivers/media/pci/cx88/cx8800 0x16c49337 cx88_enum_input +EXPORT_SYMBOL drivers/media/pci/cx88/cx8800 0x6f152ecc cx88_video_mux +EXPORT_SYMBOL drivers/media/pci/cx88/cx8800 0x713321f2 cx88_set_freq +EXPORT_SYMBOL drivers/media/pci/cx88/cx8800 0xa34b3dcb cx88_querycap +EXPORT_SYMBOL drivers/media/pci/cx88/cx8802 0x11f53876 cx8802_unregister_driver +EXPORT_SYMBOL drivers/media/pci/cx88/cx8802 0x15cca4f7 cx8802_buf_queue +EXPORT_SYMBOL drivers/media/pci/cx88/cx8802 0xaf76b42b cx8802_get_driver +EXPORT_SYMBOL drivers/media/pci/cx88/cx8802 0xcc77f44e cx8802_buf_prepare +EXPORT_SYMBOL drivers/media/pci/cx88/cx8802 0xe7915895 cx8802_register_driver +EXPORT_SYMBOL drivers/media/pci/cx88/cx8802 0xfdbf2480 cx8802_cancel_buffers +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x04178191 cx88_risc_buffer +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x05e28ea8 cx88_ir_start +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x1400ab7f cx88_sram_channel_setup +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x1ba996f3 cx88_vdev_init +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x24c56f51 cx88_risc_stopper +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x2674cab1 cx88_set_stereo +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x4216fc84 cx88_sram_channels +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x4afb3480 cx88_risc_databuffer +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x4d7dba94 cx88_set_tvaudio +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x4f80268b cx88_wakeup +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x6141c8c5 cx88_tuner_callback +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x6e5a01cb cx88_free_buffer +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x740b3579 cx88_sram_channel_dump +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x7642ed3c cx88_print_irqbits +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x783b3472 cx88_core_irq +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x7aa087ed cx88_set_tvnorm +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x803dbb48 cx88_dsp_detect_stereo_sap +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x86c9cbc0 cx88_reset +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0x904b8696 cx88_audio_thread +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0xa6c036a7 cx88_ir_stop +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0xb49775e8 cx88_set_scale +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0xb79ce538 cx88_core_put +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0xbff3741c cx88_shutdown +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0xc20edd96 cx88_core_get +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0xdd408ef3 cx88_newstation +EXPORT_SYMBOL drivers/media/pci/cx88/cx88xx 0xfde17cc7 cx88_get_stereo +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x01c368f2 ivtv_udma_alloc +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x0acd7947 ivtv_set_irq_mask +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x14f67530 ivtv_debug +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x2495e409 ivtv_vapi_result +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x3c5e0203 ivtv_udma_prepare +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x5bfc531b ivtv_api +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x60f26a9d ivtv_firmware_check +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x70547bad ivtv_clear_irq_mask +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x76c42075 ivtv_claim_stream +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x81d0502d ivtv_udma_setup +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0x94e16275 ivtv_udma_unmap +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0xa92d8aff ivtv_reset_ir_gpio +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0xaed07010 ivtv_start_v4l2_encode_stream +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0xaf070324 ivtv_init_on_first_open +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0xb3f86419 ivtv_vapi +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0xb964d277 ivtv_stop_v4l2_encode_stream +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0xd5d415bf ivtv_ext_init +EXPORT_SYMBOL drivers/media/pci/ivtv/ivtv 0xf2d40dce ivtv_release_stream +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x04e83446 saa7134_tuner_callback +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x1211df5d saa7134_devlist +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x1379b47c saa7134_set_gpio +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x13d674c8 saa7134_ts_unregister +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x29ac2f88 saa7134_ts_register +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x3b9a0944 saa7134_dmasound_init +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x4b691e00 saa7134_dmasound_exit +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x64d8e974 saa7134_pgtable_build +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x6c04461f saa7134_tvaudio_setmute +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0x73039031 saa7134_boards +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0xa75b91a0 saa7134_set_dmabits +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0xae7447a7 saa7134_pgtable_free +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0xb670004a saa7134_pgtable_alloc +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0xbb46b5d9 saa_dsp_writel +EXPORT_SYMBOL drivers/media/pci/saa7134/saa7134 0xd6a7b4a5 saa7134_devlist_lock +EXPORT_SYMBOL drivers/media/pci/ttpci/ttpci-eeprom 0xac01ea11 ttpci_eeprom_parse_mac +EXPORT_SYMBOL drivers/media/pci/ttpci/ttpci-eeprom 0xc3e4c127 ttpci_eeprom_decode_mac +EXPORT_SYMBOL drivers/media/pci/zoran/videocodec 0x815348ad videocodec_register +EXPORT_SYMBOL drivers/media/pci/zoran/videocodec 0xe08291d6 videocodec_detach +EXPORT_SYMBOL drivers/media/pci/zoran/videocodec 0xe36b5291 videocodec_attach +EXPORT_SYMBOL drivers/media/pci/zoran/videocodec 0xfd8a66b0 videocodec_unregister +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_camera 0x39af45ee soc_camera_host_unregister +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_camera 0x48b9db56 soc_camera_power_off +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_camera 0x4e203469 soc_camera_apply_board_flags +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_camera 0x646da016 soc_camera_lock +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_camera 0x73cf0daa soc_camera_power_on +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_camera 0xb4ea6c9f soc_camera_xlate_by_fourcc +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_camera 0xc6b403f7 soc_camera_unlock +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_camera 0xd1891373 soc_camera_host_register +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_camera 0xe2514be0 soc_camera_power_init +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_mediabus 0x25c52d97 soc_mbus_samples_per_pixel +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_mediabus 0x2863728e soc_mbus_image_size +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_mediabus 0x46b1be73 soc_mbus_find_fmtdesc +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_mediabus 0x5f3e3558 soc_mbus_bytes_per_line +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_mediabus 0xc8b28da5 soc_mbus_config_compatible +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_mediabus 0xd4d5a2f0 soc_mbus_get_fmtdesc +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_scale_crop 0x27a4770c soc_camera_client_scale +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_scale_crop 0x2f3001f8 soc_camera_client_s_crop +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_scale_crop 0x4337ab79 soc_camera_calc_client_output +EXPORT_SYMBOL drivers/media/platform/soc_camera/soc_scale_crop 0x8d939153 soc_camera_client_g_rect +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0x014d6055 lirc_dev_fop_write +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0x04dca738 lirc_unregister_driver +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0x050ee20e lirc_dev_fop_ioctl +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0x080b8fe0 lirc_dev_fop_close +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0x208a19c4 lirc_get_pdata +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0x4f06cc94 lirc_dev_fop_open +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0x58acb17b lirc_dev_fop_poll +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0x82dc487a lirc_dev_fop_read +EXPORT_SYMBOL drivers/media/rc/lirc_dev 0xe89b26ff lirc_register_driver +EXPORT_SYMBOL drivers/media/rc/rc-core 0x25d90a5c ir_raw_handler_register +EXPORT_SYMBOL drivers/media/rc/rc-core 0x285939bb ir_raw_handler_unregister +EXPORT_SYMBOL drivers/media/tuners/e4000 0xac9ba5e2 e4000_attach +EXPORT_SYMBOL drivers/media/tuners/fc0011 0x838591ea fc0011_attach +EXPORT_SYMBOL drivers/media/tuners/fc0012 0xa59f8584 fc0012_attach +EXPORT_SYMBOL drivers/media/tuners/fc0013 0x5e6b1f10 fc0013_rc_cal_reset +EXPORT_SYMBOL drivers/media/tuners/fc0013 0x82c22947 fc0013_rc_cal_add +EXPORT_SYMBOL drivers/media/tuners/fc0013 0xc9a1a089 fc0013_attach +EXPORT_SYMBOL drivers/media/tuners/fc2580 0x66a8b253 fc2580_attach +EXPORT_SYMBOL drivers/media/tuners/max2165 0xdd740936 max2165_attach +EXPORT_SYMBOL drivers/media/tuners/mc44s803 0x6f24738d mc44s803_attach +EXPORT_SYMBOL drivers/media/tuners/mt2060 0x4b2821d2 mt2060_attach +EXPORT_SYMBOL drivers/media/tuners/mt2131 0x606b4996 mt2131_attach +EXPORT_SYMBOL drivers/media/tuners/mt2266 0xc01b992e mt2266_attach +EXPORT_SYMBOL drivers/media/tuners/mxl5005s 0x50d675f2 mxl5005s_attach +EXPORT_SYMBOL drivers/media/tuners/qt1010 0x2df4bab8 qt1010_attach +EXPORT_SYMBOL drivers/media/tuners/tda18212 0xd92cdc1a tda18212_attach +EXPORT_SYMBOL drivers/media/tuners/tda18218 0xe4e34491 tda18218_attach +EXPORT_SYMBOL drivers/media/tuners/tua9001 0x4e0e80ae tua9001_attach +EXPORT_SYMBOL drivers/media/tuners/tuner-types 0x0cb4b189 tuners +EXPORT_SYMBOL drivers/media/tuners/tuner-types 0xc2821775 tuner_count +EXPORT_SYMBOL drivers/media/tuners/tuner-xc2028 0x425e0895 xc2028_attach +EXPORT_SYMBOL drivers/media/tuners/tuner_it913x 0x257f6f5d it913x_attach +EXPORT_SYMBOL drivers/media/tuners/xc4000 0x229eeea9 xc4000_attach +EXPORT_SYMBOL drivers/media/tuners/xc5000 0x6a3ee786 xc5000_attach +EXPORT_SYMBOL drivers/media/usb/cx231xx/cx231xx 0x2cc6a429 cx231xx_register_extension +EXPORT_SYMBOL drivers/media/usb/cx231xx/cx231xx 0x9208201b cx231xx_unregister_extension +EXPORT_SYMBOL drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0x0ef0c414 dvb_usbv2_generic_rw_locked +EXPORT_SYMBOL drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0x0f2a83df dvb_usbv2_generic_write +EXPORT_SYMBOL drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0x2ba72f8b dvb_usbv2_generic_rw +EXPORT_SYMBOL drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0x2d05853d dvb_usbv2_generic_write_locked +EXPORT_SYMBOL drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0x4953e7e8 dvb_usbv2_disconnect +EXPORT_SYMBOL drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0x66a4ae6f dvb_usbv2_reset_resume +EXPORT_SYMBOL drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0xae5b822e dvb_usbv2_resume +EXPORT_SYMBOL drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0xd073b21d dvb_usbv2_suspend +EXPORT_SYMBOL drivers/media/usb/dvb-usb-v2/dvb_usb_v2 0xd1efb6c0 dvb_usbv2_probe +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb 0x119e16b5 dvb_usb_device_init +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb 0x15f5a552 usb_cypress_load_firmware +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb 0x3fc90dde dvb_usb_get_hexline +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb 0x793441c2 dvb_usb_nec_rc_key_to_event +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb 0xa51c653d dvb_usb_generic_write +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb 0xc8587953 dvb_usb_generic_rw +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb 0xfbdca07a dvb_usb_device_exit +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-af9005-remote 0x0109ade7 af9005_rc_decode +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-af9005-remote 0x13e247e0 rc_map_af9005_table +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-af9005-remote 0xd4e288db rc_map_af9005_table_size +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x083ef305 dibusb_power_ctrl +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x15a9e70a dibusb_rc_query +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x17ccc234 dibusb2_0_power_ctrl +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x22962393 dibusb2_0_streaming_ctrl +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x5a4dde3c dibusb_pid_filter +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x5f2ce470 dibusb_dib3000mc_frontend_attach +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x76c3322d dibusb_read_eeprom_byte +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0x8d5a8441 dibusb_streaming_ctrl +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0xb47559e0 rc_map_dibusb_table +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0xbd29e001 dibusb_i2c_algo +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0xe3e79847 dibusb_pid_filter_ctrl +EXPORT_SYMBOL drivers/media/usb/dvb-usb/dvb-usb-dibusb-common 0xfaa3f64f dibusb_dib3000mc_tuner_attach +EXPORT_SYMBOL drivers/media/usb/em28xx/em28xx 0x060ab5ea em28xx_register_extension +EXPORT_SYMBOL drivers/media/usb/em28xx/em28xx 0xb80e45c7 em28xx_unregister_extension +EXPORT_SYMBOL drivers/media/usb/gspca/gspca_main 0x08fb4743 gspca_dev_probe2 +EXPORT_SYMBOL drivers/media/usb/gspca/gspca_main 0x22278e59 gspca_coarse_grained_expo_autogain +EXPORT_SYMBOL drivers/media/usb/gspca/gspca_main 0x65a2fd11 gspca_expo_autogain +EXPORT_SYMBOL drivers/media/usb/gspca/gspca_main 0x6c2e5857 gspca_dev_probe +EXPORT_SYMBOL drivers/media/usb/gspca/gspca_main 0x7d64fbc0 gspca_suspend +EXPORT_SYMBOL drivers/media/usb/gspca/gspca_main 0x9670af2c gspca_debug +EXPORT_SYMBOL drivers/media/usb/gspca/gspca_main 0x9b4d7e24 gspca_resume +EXPORT_SYMBOL drivers/media/usb/gspca/gspca_main 0xb125e067 gspca_disconnect +EXPORT_SYMBOL drivers/media/usb/gspca/gspca_main 0xcd231a86 gspca_frame_add +EXPORT_SYMBOL drivers/media/usb/tm6000/tm6000 0x03fa4689 tm6000_init_digital_mode +EXPORT_SYMBOL drivers/media/usb/tm6000/tm6000 0xe9359868 tm6000_register_extension +EXPORT_SYMBOL drivers/media/usb/tm6000/tm6000 0xf27cb764 tm6000_unregister_extension +EXPORT_SYMBOL drivers/media/usb/ttusb-dec/ttusbdecfe 0x4b766184 ttusbdecfe_dvbt_attach +EXPORT_SYMBOL drivers/media/usb/ttusb-dec/ttusbdecfe 0x60b1604e ttusbdecfe_dvbs_attach +EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-common 0x42c8e001 v4l2_ctrl_next +EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-common 0x4adaf0f3 v4l2_ctrl_query_menu_valid_items +EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-common 0x53c9394f v4l2_ctrl_query_menu +EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-common 0x5f96a661 v4l2_ctrl_check +EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-common 0xabe27502 v4l2_ctrl_query_fill +EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-mem2mem 0x1bc7b26d v4l2_m2m_get_vq +EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-mem2mem 0x459e133f v4l2_m2m_get_curr_priv +EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-mem2mem 0xc44b2373 v4l2_m2m_job_finish +EXPORT_SYMBOL drivers/media/v4l2-core/v4l2-mem2mem 0xf336a591 v4l2_m2m_mmap +EXPORT_SYMBOL drivers/media/v4l2-core/videobuf-dvb 0x044946e9 videobuf_dvb_unregister_bus +EXPORT_SYMBOL drivers/media/v4l2-core/videobuf-dvb 0x2037f7d8 videobuf_dvb_dealloc_frontends +EXPORT_SYMBOL drivers/media/v4l2-core/videobuf-dvb 0x385b436a videobuf_dvb_register_bus +EXPORT_SYMBOL drivers/media/v4l2-core/videobuf-dvb 0x4010406c videobuf_dvb_alloc_frontend +EXPORT_SYMBOL drivers/media/v4l2-core/videobuf-dvb 0x7a025992 videobuf_dvb_get_frontend +EXPORT_SYMBOL drivers/media/v4l2-core/videobuf-dvb 0x95173a00 videobuf_dvb_find_frontend +EXPORT_SYMBOL drivers/media/v4l2-core/videobuf2-core 0x6728fc78 vb2_querybuf +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x011027dd v4l2_querymenu +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x0267040a v4l2_subdev_queryctrl +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x0578780e v4l2_ctrl_g_ctrl_int64 +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x0614dd5a v4l2_video_std_frame_period +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x09a8c50a v4l2_ctrl_new_custom +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x0e03e601 __video_register_device +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x123959a1 v4l2_type_names +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x12cbb426 v4l2_clk_register +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x16244fe5 v4l2_prio_check +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x1fef0e68 v4l2_ctrl_grab +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x21eade06 v4l2_async_register_subdev +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x22e60391 v4l2_subdev_init +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x2342f1ae v4l2_prio_open +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x25e6d1e5 v4l2_ctrl_subscribe_event +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x27e1070b v4l2_ctrl_s_ctrl_int64 +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x29264b13 v4l2_ctrl_auto_cluster +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x2d8043b7 v4l2_ctrl_handler_free +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x2ee55f0b v4l2_ctrl_find +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x30a88bc6 v4l2_ctrl_new_std_menu +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x30e6334d v4l2_subdev_g_ctrl +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x3619121d v4l2_ctrl_sub_ev_ops +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x3adbd595 v4l2_field_names +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x3bdd0f94 v4l2_prio_change +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x3f31b148 v4l2_ctrl_subdev_log_status +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x3ff2945d video_unregister_device +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x40e795ab v4l2_ctrl_new_std +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x4306a8b8 v4l2_subdev_g_ext_ctrls +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x45c94c3a v4l2_clk_enable +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x495426ee v4l2_ctrl_get_name +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x4b279904 video_usercopy +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x4f3e3e33 v4l2_ctrl_handler_log_status +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x5115a894 v4l2_async_notifier_unregister +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x5cfe35b1 video_device_alloc +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x5f23f2e8 v4l2_ctrl_cluster +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x673faef8 video_device_release +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x6855df98 v4l2_clk_put +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x6b0d9456 v4l2_s_ctrl +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x6bb9800e v4l2_ctrl_new_std_menu_items +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x6dc3e479 video_ioctl2 +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x7a3cd015 v4l2_ctrl_get_menu +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x7e2c94ce v4l2_s_ext_ctrls +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x7e813a4e video_devdata +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x8106095a v4l2_prio_max +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x8228221a v4l2_subdev_s_ext_ctrls +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x84f0731d v4l2_ctrl_modify_range +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x88776844 v4l2_clk_get_rate +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x8a465fc3 v4l2_ctrl_g_ctrl +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x8e1360da v4l2_ctrl_handler_setup +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x8e280391 v4l2_g_ctrl +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0x988a9566 v4l2_ctrl_subdev_subscribe_event +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xa2ca9b1e v4l2_ctrl_activate +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xa4cdb13a v4l2_try_ext_ctrls +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xa6ff56e2 v4l2_subdev_try_ext_ctrls +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xa8fac452 v4l2_async_unregister_subdev +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xa9dad259 video_device_release_empty +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xb30e08c3 v4l2_clk_set_rate +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xb6c214f7 v4l2_ctrl_new_int_menu +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xb6e60da8 v4l2_clk_unregister +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xb77b0159 v4l2_prio_init +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xb8e56ae9 v4l2_clk_disable +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xbac4a225 v4l2_ctrl_fill +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xbba1967c v4l2_ctrl_add_ctrl +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xbc5671dc v4l_printk_ioctl +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xbfb62f21 v4l2_ctrl_log_status +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xc12cf8f8 v4l2_ctrl_replace +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xc5053946 v4l2_g_ext_ctrls +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xc52d4ef0 v4l2_ctrl_add_handler +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xc84733d1 v4l2_clk_get +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xcb64d0bb v4l2_async_notifier_register +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xccf50493 v4l2_queryctrl +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xcda04a5b v4l2_prio_close +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xd01dcd4c v4l2_ctrl_poll +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xd3e6fc3e v4l2_ctrl_s_ctrl +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xd7574fd7 v4l2_subdev_querymenu +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xd7f115c0 v4l2_ctrl_radio_filter +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xe2b92059 v4l2_video_std_construct +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xe650508f v4l2_subdev_s_ctrl +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xe6fce6f2 v4l2_ctrl_merge +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xf06086bf v4l2_ctrl_handler_init_class +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xf3251e7b v4l2_norm_to_name +EXPORT_SYMBOL drivers/media/v4l2-core/videodev 0xf6cfa558 v4l2_ctrl_notify +EXPORT_SYMBOL drivers/memstick/core/memstick 0x043075a4 memstick_new_req +EXPORT_SYMBOL drivers/memstick/core/memstick 0x07fffc9e memstick_add_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0x228942dd memstick_register_driver +EXPORT_SYMBOL drivers/memstick/core/memstick 0x3a8f7823 memstick_resume_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0x5d820a02 memstick_init_req_sg +EXPORT_SYMBOL drivers/memstick/core/memstick 0x63c50ef5 memstick_free_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0x6b07a6bf memstick_detect_change +EXPORT_SYMBOL drivers/memstick/core/memstick 0x6f4cf64b memstick_remove_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0x7ed302c0 memstick_unregister_driver +EXPORT_SYMBOL drivers/memstick/core/memstick 0x9f23f5a0 memstick_next_req +EXPORT_SYMBOL drivers/memstick/core/memstick 0xb497f38a memstick_suspend_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0xbf10d74e memstick_alloc_host +EXPORT_SYMBOL drivers/memstick/core/memstick 0xdc07e67e memstick_init_req +EXPORT_SYMBOL drivers/memstick/core/memstick 0xfd00aace memstick_set_rw_addr +EXPORT_SYMBOL drivers/memstick/host/r592 0x52f1b23b memstick_debug_get_tpc_name +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x069b05d0 mpt_set_taskmgmt_in_progress_flag +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x0e64a286 mpt_halt_firmware +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x1099ecb4 mpt_send_handshake_request +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x19c0569a mpt_HardResetHandler +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x4526289b mpt_event_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x45766de1 mpt_free_msg_frame +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x502108d0 mpt_fwfault_debug +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x676d9f3c mpt_findImVolumes +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x71f413ab mpt_clear_taskmgmt_in_progress_flag +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x81070c10 mpt_suspend +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x8fb1e8b9 mpt_raid_phys_disk_pg0 +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x92604e2f mpt_detach +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x9acabbe5 mpt_verify_adapter +EXPORT_SYMBOL drivers/message/fusion/mptbase 0x9ca2ba1b mpt_alloc_fw_memory +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xa0801699 mpt_Soft_Hard_ResetHandler +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xa28d0470 mpt_GetIocState +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xa446ddef mpt_raid_phys_disk_get_num_paths +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xa517e303 mpt_reset_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xae57833f mpt_put_msg_frame +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xaf07f09c mpt_get_msg_frame +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xb38c2aef mpt_raid_phys_disk_pg1 +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xc0e69f82 mpt_device_driver_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xc47c22e8 mpt_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xc658d1ab mpt_attach +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xcba5772b mpt_print_ioc_summary +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xcdaa5218 mpt_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xd15801cd mptbase_sas_persist_operation +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xd2bee4a6 mpt_free_fw_memory +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xd512b235 mpt_device_driver_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xd6daf63b mpt_event_register +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xd9a92a75 mpt_reset_deregister +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xdc717a98 mpt_resume +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xdd805159 ioc_list +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xdf98885f mpt_config +EXPORT_SYMBOL drivers/message/fusion/mptbase 0xed4c0164 mpt_put_msg_frame_hi_pri +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x1cc24cb3 mptscsih_slave_configure +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x1f6142a0 mptscsih_dev_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x24da7518 mptscsih_taskmgmt_complete +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x28d7a7fb mptscsih_suspend +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x2941ce69 mptscsih_slave_destroy +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x29d529eb mptscsih_remove +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x2f24161f mptscsih_resume +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x45a0bb08 mptscsih_taskmgmt_response_code +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x58f34dda mptscsih_info +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x637b332f mptscsih_IssueTaskMgmt +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x6698043e mptscsih_bus_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x6c5aa422 mptscsih_abort +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x70910e63 mptscsih_qcmd +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x87a3babc mptscsih_change_queue_depth +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x8aecf7d6 mptscsih_ioc_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x9041f8c9 mptscsih_shutdown +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0x979450ad mptscsih_is_phys_disk +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xb8583a88 mptscsih_event_process +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xbb7d543b mptscsih_host_attrs +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xbfa23db8 mptscsih_host_reset +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xc88631f9 mptscsih_get_scsi_lookup +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xcd8cb3d5 mptscsih_io_done +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xd0a8022a mptscsih_bios_param +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xd9195e26 mptscsih_flush_running_cmds +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xd99c98ba mptscsih_show_info +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xed0a5a01 mptscsih_scandv_complete +EXPORT_SYMBOL drivers/message/fusion/mptscsih 0xef5bd954 mptscsih_raid_id_to_num +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x1c45ac51 i2o_event_register +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x1dbf6e13 i2o_device_claim_release +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x2a02b208 i2o_driver_notify_controller_remove_all +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x2a843bef i2o_dump_message +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x305bbd33 i2o_device_claim +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x38732d09 i2o_driver_register +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x395b5971 i2o_find_iop +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x3d087937 i2o_cntxt_list_get +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x4e916f5e i2o_parm_field_get +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x55754139 i2o_cntxt_list_remove +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x57e34dd1 i2o_cntxt_list_get_ptr +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x693e9bae i2o_msg_get_wait +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x6e3db4ef i2o_msg_post_wait_mem +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x6f887fce i2o_exec_lct_get +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0x8a4b27ee i2o_status_get +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xa17c6fb3 i2o_parm_table_get +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xb4c00dcf i2o_controllers +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xb55d0bb8 i2o_iop_find_device +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xb9d01856 i2o_driver_unregister +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xd5716e58 i2o_cntxt_list_add +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xd97ab97e i2o_driver_notify_device_add_all +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xdfa23f46 i2o_driver_notify_controller_add_all +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xe6b0fc26 i2o_parm_issue +EXPORT_SYMBOL drivers/message/i2o/i2o_core 0xf008a449 i2o_driver_notify_device_remove_all +EXPORT_SYMBOL drivers/mfd/cros_ec 0x2064295f cros_ec_suspend +EXPORT_SYMBOL drivers/mfd/cros_ec 0x4d17c398 cros_ec_remove +EXPORT_SYMBOL drivers/mfd/cros_ec 0x90a70416 cros_ec_register +EXPORT_SYMBOL drivers/mfd/cros_ec 0xe64cbaf2 cros_ec_resume +EXPORT_SYMBOL drivers/mfd/cros_ec 0xef1714a3 cros_ec_prepare_tx +EXPORT_SYMBOL drivers/mfd/htc-pasic3 0x5f2a9268 pasic3_read_register +EXPORT_SYMBOL drivers/mfd/htc-pasic3 0xe1da16fb pasic3_write_register +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x2298e334 mc13xxx_irq_unmask +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x357eb468 mc13xxx_irq_mask +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x3f571687 mc13xxx_get_flags +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x4ff10f50 mc13xxx_reg_rmw +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x52c050bd mc13xxx_unlock +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x55ad2259 mc13xxx_lock +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x707b404f mc13xxx_irq_request +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0x9a87d588 mc13xxx_reg_read +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0xb00d3d43 mc13xxx_reg_write +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0xb3950f75 mc13xxx_irq_ack +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0xb6bce926 mc13xxx_irq_request_nounmask +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0xb96756e3 mc13xxx_irq_status +EXPORT_SYMBOL drivers/mfd/mc13xxx-core 0xe469f958 mc13xxx_irq_free +EXPORT_SYMBOL drivers/mfd/tps6105x 0x2ddf1c92 tps6105x_get +EXPORT_SYMBOL drivers/mfd/tps6105x 0x4917bbb0 tps6105x_set +EXPORT_SYMBOL drivers/mfd/tps6105x 0xee45be34 tps6105x_mask_and_set +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 0x6a32ea0c ad_dpot_remove +EXPORT_SYMBOL drivers/misc/ad525x_dpot 0xdd3dfec4 ad_dpot_probe +EXPORT_SYMBOL drivers/misc/altera-stapl/altera-stapl 0x1746ab2d altera_init +EXPORT_SYMBOL drivers/misc/atmel-ssc 0x2ac84df3 ssc_request +EXPORT_SYMBOL drivers/misc/atmel-ssc 0xdf3d3cef ssc_free +EXPORT_SYMBOL drivers/misc/atmel_pwm 0x0e9755b9 pwm_channel_free +EXPORT_SYMBOL drivers/misc/atmel_pwm 0x5a8b82f9 pwm_channel_handler +EXPORT_SYMBOL drivers/misc/atmel_pwm 0x5d5c2951 pwm_clk_free +EXPORT_SYMBOL drivers/misc/atmel_pwm 0x6a5e1f70 pwm_channel_alloc +EXPORT_SYMBOL drivers/misc/atmel_pwm 0x73330c97 pwm_clk_alloc +EXPORT_SYMBOL drivers/misc/atmel_pwm 0xeb7f2c6f __pwm_channel_onoff +EXPORT_SYMBOL drivers/misc/c2port/core 0x721d7da1 c2port_device_register +EXPORT_SYMBOL drivers/misc/c2port/core 0x8c7c53ea c2port_device_unregister +EXPORT_SYMBOL drivers/misc/ioc4 0x770bf328 ioc4_unregister_submodule +EXPORT_SYMBOL drivers/misc/ioc4 0x7ac3235b ioc4_register_submodule +EXPORT_SYMBOL drivers/misc/tifm_core 0x01d41c8f tifm_register_driver +EXPORT_SYMBOL drivers/misc/tifm_core 0x1855ee0e tifm_alloc_device +EXPORT_SYMBOL drivers/misc/tifm_core 0x190e75b7 tifm_alloc_adapter +EXPORT_SYMBOL drivers/misc/tifm_core 0x40e398f7 tifm_eject +EXPORT_SYMBOL drivers/misc/tifm_core 0x4d400dea tifm_free_device +EXPORT_SYMBOL drivers/misc/tifm_core 0x5beb706c tifm_map_sg +EXPORT_SYMBOL drivers/misc/tifm_core 0xa8c2ec46 tifm_queue_work +EXPORT_SYMBOL drivers/misc/tifm_core 0xad36c6e6 tifm_free_adapter +EXPORT_SYMBOL drivers/misc/tifm_core 0xb0acb722 tifm_unmap_sg +EXPORT_SYMBOL drivers/misc/tifm_core 0xba989c68 tifm_remove_adapter +EXPORT_SYMBOL drivers/misc/tifm_core 0xbdab56e2 tifm_has_ms_pif +EXPORT_SYMBOL drivers/misc/tifm_core 0xc7e80515 tifm_add_adapter +EXPORT_SYMBOL drivers/misc/tifm_core 0xf541bef9 tifm_unregister_driver +EXPORT_SYMBOL drivers/mmc/card/mmc_block 0xfd62836c mmc_cleanup_queue +EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0x77a39da7 cfi_read_pri +EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0xabce3508 cfi_fixup +EXPORT_SYMBOL drivers/mtd/chips/cfi_util 0xef6c7f44 cfi_varsize_frob +EXPORT_SYMBOL drivers/mtd/chips/chipreg 0x612ebc9e register_mtd_chip_driver +EXPORT_SYMBOL drivers/mtd/chips/chipreg 0x91aa0721 do_map_probe +EXPORT_SYMBOL drivers/mtd/chips/chipreg 0x9a04487e map_destroy +EXPORT_SYMBOL drivers/mtd/chips/chipreg 0xfb206568 unregister_mtd_chip_driver +EXPORT_SYMBOL drivers/mtd/chips/gen_probe 0x3df9b282 mtd_do_chip_probe +EXPORT_SYMBOL drivers/mtd/lpddr/lpddr_cmds 0x7b433cc3 lpddr_cmdset +EXPORT_SYMBOL drivers/mtd/maps/map_funcs 0x33bc0f0d simple_map_init +EXPORT_SYMBOL drivers/mtd/mtd 0x3cd423b3 mtd_concat_create +EXPORT_SYMBOL drivers/mtd/mtd 0x473c6b79 mtd_concat_destroy +EXPORT_SYMBOL drivers/mtd/nand/denali 0x645b5240 denali_init +EXPORT_SYMBOL drivers/mtd/nand/denali 0xdb5a2ca0 denali_remove +EXPORT_SYMBOL drivers/mtd/nand/nand 0x303acd76 nand_default_bbt +EXPORT_SYMBOL drivers/mtd/nand/nand 0x38b0687e nand_scan_bbt +EXPORT_SYMBOL drivers/mtd/nand/nand 0x5bfe1e98 nand_lock +EXPORT_SYMBOL drivers/mtd/nand/nand 0x784ed713 nand_scan_ident +EXPORT_SYMBOL drivers/mtd/nand/nand 0x91b8a65c nand_unlock +EXPORT_SYMBOL drivers/mtd/nand/nand 0xbc30a9aa nand_scan_tail +EXPORT_SYMBOL drivers/mtd/nand/nand 0xe079dc1c nand_scan +EXPORT_SYMBOL drivers/mtd/nand/nand_bch 0x70097aa0 nand_bch_free +EXPORT_SYMBOL drivers/mtd/nand/nand_bch 0xb9cfb32d nand_bch_calculate_ecc +EXPORT_SYMBOL drivers/mtd/nand/nand_bch 0xd364f05a nand_bch_correct_data +EXPORT_SYMBOL drivers/mtd/nand/nand_bch 0xf24dbaa3 nand_bch_init +EXPORT_SYMBOL drivers/mtd/nand/nand_ecc 0x3132ee65 __nand_calculate_ecc +EXPORT_SYMBOL drivers/mtd/nand/nand_ecc 0x76ed804d nand_correct_data +EXPORT_SYMBOL drivers/mtd/nand/nand_ecc 0xb4b94377 __nand_correct_data +EXPORT_SYMBOL drivers/mtd/nand/nand_ecc 0xb4c3c29a nand_calculate_ecc +EXPORT_SYMBOL drivers/mtd/nand/nand_ids 0x224c011d nand_flash_ids +EXPORT_SYMBOL drivers/mtd/nand/nand_ids 0xa336feb7 nand_manuf_ids +EXPORT_SYMBOL drivers/mtd/onenand/onenand 0x1e7c811d onenand_addr +EXPORT_SYMBOL drivers/mtd/onenand/onenand 0x42a975e1 onenand_scan_bbt +EXPORT_SYMBOL drivers/mtd/onenand/onenand 0x9ca34d32 onenand_default_bbt +EXPORT_SYMBOL drivers/mtd/onenand/onenand 0xbc15eab7 flexonenand_region +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x054a1599 arc_raw_proto +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x389f2051 arcnet_open +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x6534792a arcnet_debug +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x73d8d4ac arc_bcast_proto +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x95d16097 arcnet_timeout +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0x9b8ddf19 arc_proto_map +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xa6eca68b arcnet_unregister_proto +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xd04234dd arc_proto_default +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xecb730b0 arcnet_interrupt +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xf54a7496 arcnet_close +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xfb3e03bc alloc_arcdev +EXPORT_SYMBOL drivers/net/arcnet/arcnet 0xfffefa46 arcnet_send_packet +EXPORT_SYMBOL drivers/net/arcnet/com20020 0x5c28ec83 com20020_check +EXPORT_SYMBOL drivers/net/arcnet/com20020 0x8bd21288 com20020_netdev_ops +EXPORT_SYMBOL drivers/net/arcnet/com20020 0xe2333692 com20020_found +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x119721ac ei_interrupt +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x1fd8958b ei_get_stats +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x3eec49d3 ei_close +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x8ef21000 ei_start_xmit +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x8f182e78 ei_tx_timeout +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0x9f6e6e20 ei_open +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0xd03c0970 __alloc_ei_netdev +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0xe1fccca1 ei_netdev_ops +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0xe2500694 ei_set_multicast_list +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0xe2d55e6f NS8390_init +EXPORT_SYMBOL drivers/net/ethernet/8390/8390 0xf072d09d ei_poll +EXPORT_SYMBOL drivers/net/ethernet/broadcom/cnic 0x636af174 cnic_unregister_driver +EXPORT_SYMBOL drivers/net/ethernet/broadcom/cnic 0xc6a1972a cnic_register_driver +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x346d77ea cxgb3_free_atid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x54156c3d cxgb3_queue_tid_release +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x69f5b0b6 cxgb3_insert_tid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x6b075745 cxgb3_unregister_client +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x73e1d2d3 dev2t3cdev +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x82d9dc15 cxgb3_register_client +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x84f4fd36 cxgb3_alloc_atid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0x9edcfaa4 cxgb3_alloc_stid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xbeb851a0 t3_l2e_free +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xbf9c09c0 t3_l2t_get +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xce0a1dc8 t3_l2t_send_event +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xdf21da3c t3_register_cpl_handler +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xe12383dc cxgb3_ofld_send +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xe159d786 cxgb3_free_stid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xe5e72a7a t3_l2t_send_slow +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb3/cxgb3 0xf004f4e2 cxgb3_remove_tid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x0476d481 cxgb4_disable_db_coalescing +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x04c185ef cxgb4_port_viid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x1005e960 cxgb4_alloc_atid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x352a66ff cxgb4_l2t_send +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x4d5f7673 cxgb4_remove_tid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x58bf015a cxgb4_free_atid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x655a3d23 cxgb4_free_stid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x67408ceb cxgb4_alloc_sftid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x6cbaed27 cxgb4_l2t_release +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x747a1610 cxgb4_port_idx +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x77fcea96 cxgb4_sync_txq_pidx +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x79a7733b cxgb4_l2t_get +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x7bc6ed79 cxgb4_enable_db_coalescing +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x7f45b1b0 cxgb4_remove_server_filter +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x8d5b24e1 cxgb4_dbfifo_count +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x926f938d cxgb4_create_server +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x92720b70 cxgb4_pktgl_to_skb +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0x98cbf901 cxgb4_flush_eq_cache +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xacb06514 cxgb4_create_server_filter +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xb3fc7a2f cxgb4_iscsi_init +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xc7f03d55 cxgb4_ofld_send +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xd00e5a36 cxgb4_unregister_uld +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xd11dff14 cxgb4_get_tcp_stats +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xd69a0294 cxgb4_best_mtu +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xe1577c05 cxgb4_alloc_stid +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xf15cd01d cxgb4_port_chan +EXPORT_SYMBOL drivers/net/ethernet/chelsio/cxgb4/cxgb4 0xfebe17b4 cxgb4_register_uld +EXPORT_SYMBOL drivers/net/ethernet/emulex/benet/be2net 0x7f26495c be_roce_register_driver +EXPORT_SYMBOL drivers/net/ethernet/emulex/benet/be2net 0x87c2a7a7 be_roce_unregister_driver +EXPORT_SYMBOL drivers/net/ethernet/emulex/benet/be2net 0xbab62e22 be_roce_mcc_cmd +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x0a8d8a07 set_and_calc_slave_port_state +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x0aa2a69f mlx4_SET_PORT_SCHEDULER +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x213370b2 mlx4_set_stats_bitmap +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x23817587 mlx4_gen_slaves_port_mgt_ev +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x31df4d57 mlx4_get_slave_pkey_gid_tbl_len +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x44f84787 mlx4_get_slave_node_guid +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x48fdd65d mlx4_gen_pkey_eqe +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x580d938b mlx4_test_interrupts +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x5bdb074d mlx4_SET_MCAST_FLTR +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x5eecb743 mlx4_SET_PORT_general +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x767a3b7f mlx4_gen_port_state_change_eqe +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x78d0d6a3 mlx4_get_slave_port_state +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7d96b009 mlx4_put_slave_node_guid +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x8c0671df mlx4_gen_guid_change_eqe +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x92f6612b mlx4_is_slave_active +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xac3f13b8 mlx4_release_eq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xb734dcf3 mlx4_assign_eq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc2bad2d5 mlx4_sync_pkey_table +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xcafa2dee mlx4_get_parav_qkey +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd8d1055e mlx4_SET_PORT_PRIO2TC +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe4a61e09 mlx4_SET_PORT_qpn_calc +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x11a3237c mlx5_core_get_srq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x189c7dc9 mlx5_core_destroy_mkey +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x2396b759 mlx5_core_arm_srq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x248c39c3 mlx5_dev_init +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x2e319f82 mlx5_core_create_mkey +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x2eb1f0a4 mlx5_cmd_free_uar +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x343971ee mlx5_cmd_alloc_uar +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x400493df mlx5_core_query_srq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x4182160c mlx5_core_destroy_srq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x492a727e mlx5_core_create_cq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x60145de6 mlx5_core_query_cq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x60271249 mlx5_core_dump_fill_mkey +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7d7283f9 mlx5_core_query_mkey +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x814b74fd mlx5_core_destroy_cq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x8bf3e641 mlx5_dev_cleanup +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x960a97db mlx5_cmd_init +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x9b470d8e mlx5_cmd_comp_handler +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xa686153b mlx5_core_attach_mcg +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xa6c2aaf6 mlx5_core_dealloc_pd +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xcb0c6825 mlx5_cmd_cleanup +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xd20bf96b mlx5_core_create_srq +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xeb09ee66 mlx5_core_alloc_pd +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xeb1b6644 mlx5_core_detach_mcg +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xf4ecd16b mlx5_cmd_exec +EXPORT_SYMBOL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xf9a0a5cb mlx5_debugfs_root +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x14f4d42f hdlcdrv_receiver +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x1ed1d998 hdlcdrv_register +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0x64303718 hdlcdrv_arbitrate +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0xb1d742be hdlcdrv_transmitter +EXPORT_SYMBOL drivers/net/hamradio/hdlcdrv 0xb8a9c10f hdlcdrv_unregister +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x122a401d sirdev_set_dtr_rts +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x1d851ef0 sirdev_raw_write +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x2161b040 sirdev_write_complete +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x2623df07 irda_register_dongle +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x3c0e9b19 sirdev_put_instance +EXPORT_SYMBOL drivers/net/irda/sir-dev 0x5c2a8f11 irda_unregister_dongle +EXPORT_SYMBOL drivers/net/irda/sir-dev 0xbce51f8d sirdev_receive +EXPORT_SYMBOL drivers/net/irda/sir-dev 0xc4105fd7 sirdev_get_instance +EXPORT_SYMBOL drivers/net/irda/sir-dev 0xcf014182 sirdev_raw_read +EXPORT_SYMBOL drivers/net/irda/sir-dev 0xe22fc3a2 sirdev_set_dongle +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/mdio 0xddc98749 mdio45_ethtool_gset_npage +EXPORT_SYMBOL drivers/net/mii 0x2c45f90f mii_check_gmii_support +EXPORT_SYMBOL drivers/net/mii 0x4830eeaa mii_check_media +EXPORT_SYMBOL drivers/net/mii 0x5af3ec71 mii_nway_restart +EXPORT_SYMBOL drivers/net/mii 0x87ecb2f2 mii_check_link +EXPORT_SYMBOL drivers/net/mii 0x903e1549 generic_mii_ioctl +EXPORT_SYMBOL drivers/net/mii 0x9734ae80 mii_link_ok +EXPORT_SYMBOL drivers/net/mii 0x974d95ce mii_ethtool_sset +EXPORT_SYMBOL drivers/net/mii 0xa3d60853 mii_ethtool_gset +EXPORT_SYMBOL drivers/net/ppp/pppox 0x6e6119c5 register_pppox_proto +EXPORT_SYMBOL drivers/net/ppp/pppox 0xce612c7c pppox_unbind_sock +EXPORT_SYMBOL drivers/net/ppp/pppox 0xd5abca9a pppox_ioctl +EXPORT_SYMBOL drivers/net/ppp/pppox 0xe0ff7a18 unregister_pppox_proto +EXPORT_SYMBOL drivers/net/sungem_phy 0x559fe45d sungem_phy_probe +EXPORT_SYMBOL drivers/net/usb/usbnet 0x3e92c6ba usbnet_link_change +EXPORT_SYMBOL drivers/net/usb/usbnet 0x7d6dec54 usbnet_device_suggests_idle +EXPORT_SYMBOL drivers/net/usb/usbnet 0xb23b25ae usbnet_manage_power +EXPORT_SYMBOL drivers/net/wan/hdlc 0x010ed15a hdlc_open +EXPORT_SYMBOL drivers/net/wan/hdlc 0x1d52bcfd detach_hdlc_protocol +EXPORT_SYMBOL drivers/net/wan/hdlc 0x3b1eff0d alloc_hdlcdev +EXPORT_SYMBOL drivers/net/wan/hdlc 0x49b642f2 hdlc_close +EXPORT_SYMBOL drivers/net/wan/hdlc 0x5a0df813 hdlc_start_xmit +EXPORT_SYMBOL drivers/net/wan/hdlc 0x5f1be6bb unregister_hdlc_protocol +EXPORT_SYMBOL drivers/net/wan/hdlc 0xa5ee3ca3 register_hdlc_protocol +EXPORT_SYMBOL drivers/net/wan/hdlc 0xdb84b586 attach_hdlc_protocol +EXPORT_SYMBOL drivers/net/wan/hdlc 0xe9b8aaab hdlc_ioctl +EXPORT_SYMBOL drivers/net/wan/hdlc 0xee6593f7 hdlc_change_mtu +EXPORT_SYMBOL drivers/net/wan/hdlc 0xf1ee2a1e unregister_hdlc_device +EXPORT_SYMBOL drivers/net/wimax/i2400m/i2400m 0x6055c2cf i2400m_unknown_barker +EXPORT_SYMBOL drivers/net/wireless/airo 0x2b17d00e init_airo_card +EXPORT_SYMBOL drivers/net/wireless/airo 0xadbed814 stop_airo_card +EXPORT_SYMBOL drivers/net/wireless/airo 0xedd6d60f reset_airo_card +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x0e90a2f4 ath_hw_cycle_counters_update +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x0eb59f53 ath_rxbuf_alloc +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x1e1656c8 ath_hw_setbssidmask +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x2803fbcc ath_regd_init +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x319c6026 ath_is_49ghz_allowed +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x3316b1e1 ath_key_config +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x3f12f562 ath_hw_keyreset +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x4e2481d5 ath_is_world_regd +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x53358ce3 ath_regd_get_band_ctl +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0x729a0c86 ath_reg_notifier_apply +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xb6d0f5f5 ath_key_delete +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xbcc11fdb ath_printk +EXPORT_SYMBOL drivers/net/wireless/ath/ath 0xf1c975e5 ath_hw_get_listen_time +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x79c133c3 ath10k_core_target_resume +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x8246be6c ath10k_err +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x8619b841 ath10k_core_create +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x895f9dc2 ath10k_info +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x8caaf1b6 ath10k_core_unregister +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0x980d4d29 ath10k_core_register +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0xaf096710 ath10k_warn +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0xdcb2d288 ath10k_core_target_suspend +EXPORT_SYMBOL drivers/net/wireless/ath/ath10k/ath10k_core 0xfc38e399 ath10k_core_destroy +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x0199ec46 ath6kl_info +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x0435ecd2 ath6kl_core_destroy +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x08ea765e ath6kl_core_rx_complete +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x27cf1694 ath6kl_warn +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x36d010c1 ath6kl_cfg80211_suspend +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x4c6ddcb4 ath6kl_err +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x4e1380ee ath6kl_printk +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x743de332 ath6kl_core_create +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x7eb122fc ath6kl_hif_intr_bh_handler +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x807874e6 ath6kl_core_tx_complete +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0x91cfb84a ath6kl_hif_rw_comp_handler +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0xb457dfd1 ath6kl_cfg80211_resume +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0xd196ac8d ath6kl_core_init +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0xd64fc1f9 ath6kl_core_cleanup +EXPORT_SYMBOL drivers/net/wireless/ath/ath6kl/ath6kl_core 0xeef3e2e9 ath6kl_stop_txrx +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k 0x0d7e5763 ath9k_hw_wow_wakeup +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k 0x0f6ff60f ath9k_hw_wow_apply_pattern +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k 0x42e1a44d ath9k_hw_wow_enable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k 0x91fc76f5 ath9k_hw_wow_event_to_string +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x063f2202 ath9k_cmn_init_crypto +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x1d896766 ath9k_cmn_update_ichannel +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x33ac5a3f ath9k_cmn_update_txpow +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0x6173bddc ath9k_cmn_get_curchannel +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xc1548e64 ath9k_cmn_get_hw_crypto_keytype +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_common 0xd2981357 ath9k_cmn_count_streams +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x03ef938d ath9k_hw_getrxfilter +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x07840495 ath9k_hw_set_txq_props +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x0a39b617 ath9k_hw_beaconinit +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x0b69b2de ath9k_hw_wait +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x0c065463 ath9k_hw_settsf64 +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x0d978924 ath9k_hw_btcoex_set_weight +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x158e463b ar9003_mci_get_interrupt +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x177c1283 ath9k_hw_putrxbuf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x1823ec3a ath9k_hw_set_sta_beacon_timers +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x19691e4b ath9k_hw_setmcastfilter +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x24034653 ar9003_paprd_init_table +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x2d20344c ath9k_hw_setpower +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x31f37a0e ath9k_hw_reset +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x324b9f6f ath9k_hw_stopdmarecv +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x3312268b ath9k_hw_deinit +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x3447f7d9 ath9k_hw_write_associd +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x3471b3b2 ar9003_mci_send_message +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x3487af4d ath9k_hw_gen_timer_stop +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x37f5c1b1 ar9003_paprd_enable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x38a90afe ar9003_paprd_populate_single_table +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x3a3178dd ath9k_hw_set_rx_bufsize +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x3a32157e ath9k_hw_rxprocdesc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x3d560c85 ath9k_hw_abort_tx_dma +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x3d747460 ath9k_hw_getnf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x419d6071 ath9k_hw_enable_interrupts +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x46e689e2 ath9k_hw_btcoex_init_3wire +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x47404a2e ath9k_hw_set_tsfadjust +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x4d3fb7c7 ar9003_mci_get_next_gpm_offset +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x4fdd937b ath9k_hw_gen_timer_start +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x531005f5 ath9k_hw_btcoex_disable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x548b10ab ath_gen_timer_isr +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x549c2f48 ath9k_hw_addrxbuf_edma +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x54f17db8 ath9k_hw_gettsf32 +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x55222f98 ar9003_mci_set_bt_version +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x5c71bc27 ath9k_hw_cfg_output +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x5cab7acf ath9k_hw_phy_disable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x5f10dfea ath9k_hw_init +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x61396f58 ath9k_hw_abortpcurecv +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x63473e68 ar9003_hw_bb_watchdog_dbg_info +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x63937193 ath9k_hw_set_interrupts +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x64301aa5 ath9k_hw_gettxbuf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x66057284 ar9003_paprd_setup_gain_table +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x68a7acf2 ath9k_hw_kill_interrupts +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x6b5324dc ar9003_mci_cleanup +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x6f4e87c5 ath9k_hw_releasetxqueue +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x70ec5d8e ath9k_hw_disable_interrupts +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7118aa2b ath9k_hw_setopmode +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x713d829e ath9k_hw_getchan_noise +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x715cf911 ath9k_hw_btcoex_init_mci +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x72412fec ath9k_hw_init_global_settings +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x74b2a915 ath9k_hw_btcoex_init_2wire +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x77a320c7 ath9k_hw_name +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x7cfef3ff ath9k_hw_setuptxqueue +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x81ccae8d ath9k_hw_beaconq_setup +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x859451de ath9k_hw_updatetxtriglevel +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x8698d327 ath9k_hw_init_btcoex_hw +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x8acb72f4 ath9k_hw_disable_mib_counters +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x9319dde7 ath9k_hw_setantenna +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x955457e5 ath9k_hw_btcoex_set_concur_txprio +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x9bb66c8b ath9k_hw_setrxfilter +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0x9d490e66 ath9k_hw_setrxabort +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa15fc462 ath9k_hw_resettxqueue +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa33439ff ath9k_hw_cfg_gpio_input +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa35a908d ath9k_hw_gettsf64 +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa35cf60d ath_gen_timer_free +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa5e2edf2 ath9k_hw_startpcureceive +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xa73470f2 ath9k_hw_bstuck_nfcal +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xac4219e2 ath9k_hw_txstart +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xaf59dce3 ar9003_hw_disable_phy_restart +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb0c96227 ar9003_mci_state +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb15d5409 ath9k_hw_computetxtime +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xb1673474 ath9k_hw_ani_monitor +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xbab9e8be ar9003_mci_send_wlan_channels +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xbe8bd99c ath9k_hw_intrpend +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xbedd547e ar9003_paprd_create_curve +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xbfd0c72b ath9k_hw_btcoex_init_scheme +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc1bc4303 ath9k_hw_numtxpending +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc1c67e7a ath9k_hw_check_alive +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc41c35bd ath9k_hw_setup_statusring +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xc48abee1 ath9k_hw_set_txpowerlimit +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd25b088a ath9k_hw_stop_dma_queue +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd75c3696 ath9k_hw_btcoex_bt_stomp +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd8d36f6e ath9k_hw_disable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xd9a861f2 ath9k_hw_reset_calvalid +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xda5b702c ath9k_hw_process_rxdesc_edma +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xddbcda1b ath9k_hw_reset_tsf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xdefd7c38 ath9k_hw_setuprxdesc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe42d22ab ath9k_hw_get_txq_props +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe6d27a53 ar9003_paprd_is_done +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe800e80e ar9003_is_paprd_enabled +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xe808d783 ar9003_mci_setup +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xed74e7c9 ath9k_hw_gpio_get +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xef952724 ath_gen_timer_alloc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf0c575dd ath9k_hw_btcoex_enable +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf428a4b3 ath9k_hw_puttxbuf +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf7e3c88d ar9003_get_pll_sqsum_dvc +EXPORT_SYMBOL drivers/net/wireless/ath/ath9k/ath9k_hw 0xf8847d9d ath9k_hw_set_gpio +EXPORT_SYMBOL drivers/net/wireless/atmel 0x3f8bd5c8 atmel_open +EXPORT_SYMBOL drivers/net/wireless/atmel 0x6ec0f17c stop_atmel_card +EXPORT_SYMBOL drivers/net/wireless/atmel 0xaccaa9a9 init_atmel_card +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmfmac/brcmfmac 0x4b8fa205 brcmf_sdio_probe +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmfmac/brcmfmac 0x8fb76ffd brcmf_sdio_remove +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x02a45b0c brcmu_pktq_mlen +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x0e3d7847 brcmu_pktq_flush +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x2dc227f8 brcmu_d11_attach +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x3fe97c59 brcmu_pktq_penq +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x4383beab brcmu_pktq_pdeq_tail +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x4d0e47f3 brcmu_pkt_buf_get_skb +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0x9359c0be brcmu_pkt_buf_free_skb +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0xb5e8ea0e brcmu_pktq_mdeq +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0xc0b5e2f5 brcmu_pktq_init +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0xc5470189 brcmu_pktq_pflush +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0xced3ab04 brcmu_pktq_pdeq +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0xd40b07df brcmu_pktq_pdeq_match +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0xd7dae549 brcmu_pktq_penq_head +EXPORT_SYMBOL drivers/net/wireless/brcm80211/brcmutil/brcmutil 0xd849148b brcmu_pktq_peek_tail +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x0336c2a3 hostap_set_hostapd +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x10e39d7b hostap_set_hostapd_sta +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x1723ac32 hostap_set_multicast_list_queue +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x1c53bb12 hostap_80211_rx +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x34ea96bc hostap_set_string +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x35b40a78 hostap_init_proc +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x374e1b0d hostap_remove_proc +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x3af2d36b hostap_check_sta_fw_version +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x4073b97c hostap_80211_ops +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x42d3c917 hostap_free_data +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x6124430c hostap_info_init +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x6de09193 hostap_set_encryption +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x79b98954 hostap_setup_dev +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x7fae18c6 hostap_init_ap_proc +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x87f52b39 hostap_add_interface +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x8f5c8aeb hostap_init_data +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0x9b9fa292 hostap_master_start_xmit +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xa12ad27f hostap_dump_tx_header +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xb214182e hostap_get_porttype +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 0xcd55968b hostap_handle_sta_tx_exc +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xcd7f471f prism2_update_comms_qual +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xd3e03365 hostap_set_auth_algs +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xd5145770 hostap_remove_interface +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xdb8fda4c hostap_set_word +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xdb93360a hostap_set_antsel +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xf295b0c6 hostap_info_process +EXPORT_SYMBOL drivers/net/wireless/hostap/hostap 0xfe50d5da hostap_set_roaming +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x1b1a0fa3 libipw_is_valid_channel +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x3ba5ffac libipw_channel_to_freq +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x40602afa libipw_rx +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x45e57dd2 free_libipw +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x58179d95 libipw_freq_to_channel +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x5ab3d671 libipw_wx_set_encode +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x5ec8060b libipw_change_mtu +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x632b7304 libipw_wx_get_encodeext +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x6ad3bad6 libipw_wx_get_scan +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x7c9c5d00 libipw_get_geo +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0x8789dbf9 libipw_get_channel_flags +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xb95c9504 libipw_rx_mgt +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xc20aa53c libipw_txb_free +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xc2e62040 libipw_networks_age +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xdab976fe libipw_set_geo +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xe719ef27 alloc_libipw +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xe98c5698 libipw_get_channel +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xeb101fe6 libipw_wx_set_encodeext +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xf49c7e73 libipw_xmit +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xf6264159 libipw_wx_get_encode +EXPORT_SYMBOL drivers/net/wireless/ipw2x00/libipw 0xfc28bc1d libipw_channel_to_index +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x000d65ca il_add_station_common +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x042e7b01 il_set_rxon_hwcrypto +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x065ee460 il_send_rxon_timing +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x066b40e6 il_get_active_dwell_time +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x07227f7a il_get_free_ucode_key_idx +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x08d55306 il_power_initialize +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x0e68433f il_send_cmd_pdu +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x0ff59aa9 il_fill_probe_req +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x121d110c il_init_channel_map +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x1512c50b il_set_flags_for_band +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x15edd0e5 il_setup_rx_scan_handlers +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x1664f54b il_set_bit +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x16d28688 il_scan_cancel +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x1872dddd il_mac_hw_scan +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x1aee32a6 il_add_beacon_time +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x1b6c8671 il_eeprom_query_addr +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x1d3253c5 il_hdl_error +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x1e7660f7 il_init_scan_params +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x22bc6a84 il_tx_cmd_protection +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x26d3c84d il_free_geos +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x27ad942c il_mac_sta_remove +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x2932402f il_set_decrypted_flag +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x2b2b9517 il_mac_conf_tx +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x2b921c3e il_mac_bss_info_changed +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x2d2ef482 il_apm_init +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x3359f4c5 il_irq_handle_error +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x35059429 il_set_rxon_ht +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x406fd7dd il_get_single_channel_number +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x4219ef5b il_eeprom_free +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x4319e252 il_set_rate +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x46f4d21a il_full_rxon_required +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x47a4a1a6 il_usecs_to_beacons +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x4aa39103 il_get_cmd_string +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x4f72f5d2 il_send_stats_request +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x52fe070a il_tx_queue_init +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x5347e9d6 il_chswitch_done +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x54ecfd84 il_mac_flush +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x5645287b il_is_ht40_tx_allowed +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x564c6740 il_debug_level +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x5b68978e il_cmd_queue_free +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x5fcb35e8 il_eeprom_query16 +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x60bb056e il_get_lowest_plcp +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x62c785c4 il_tx_cmd_complete +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x63cde9c7 il_mac_config +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x68baf388 il_send_add_sta +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x6ad8a5bb il_send_cmd_pdu_async +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x6b88dc57 il_wr_prph +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x6f316c96 il_free_channel_map +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x72af3e3d il_restore_stations +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x768261cb il_power_update_mode +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x7b40684c il_mac_add_interface +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x7b4de22d il_clear_bit +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x7ca9fed4 il_cmd_queue_unmap +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x862eb8a3 il_mac_remove_interface +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x86a96d42 il_apm_stop +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x8b8a460f il_init_geos +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x8d12ace9 il_hdl_spectrum_measurement +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x91b4ac39 il_read_targ_mem +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x981a962e il_tx_queue_free +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0x9bb4e4d8 il_get_passive_dwell_time +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xa1245580 il_mac_change_interface +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xa62beff7 il_dbgfs_unregister +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xa84fccca il_eeprom_init +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xa853905c il_set_tx_power +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xb30be2bb il_hdl_csa +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xb31aeb36 il_rx_queue_space +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xb408998c il_setup_scan_deferred_work +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xb57d1fea il_scan_cancel_timeout +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xb57e87ab il_hdl_pm_debug_stats +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xb7bd33ff il_isr +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xb8d43e67 il_send_cmd_sync +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xb95b22d4 il_get_channel_info +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xbad6840e il_hdl_pm_sleep +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xbe6d8ce3 il_leds_init +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xbed3d6cf il_send_cmd +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xbf8e0f0e il_rx_queue_update_write_ptr +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xbfb2dc70 _il_apm_stop +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xc09ba086 il_force_reset +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xc39cf12c il_bg_watchdog +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xc4b6e5ca il_mac_reset_tsf +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xc632bdf4 il_free_txq_mem +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xc677e2f0 il_set_rxon_channel +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xc955afd5 il_pm_ops +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xcad747be il_dbgfs_register +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xcb3e8fe2 il_cancel_scan_deferred_work +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xce68ec56 il_alloc_txq_mem +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xd12777b9 il_txq_update_write_ptr +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xd1ae79c2 _il_poll_bit +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xd40ec0ad il_connection_init_rx_config +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xd5c5ede2 il_check_rxon_cmd +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xd6db37b1 il_tx_queue_unmap +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xd97a939c il_rx_queue_alloc +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xe05e47e2 il_write_targ_mem +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xe384246f il_update_stats +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xe403a985 il_tx_queue_reset +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xe435493a il_queue_space +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xe6a68d35 il_clear_ucode_stations +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xf10a3122 il_rd_prph +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xf501278b il_bcast_addr +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xf5b33540 il_send_bt_config +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xf6a1b277 il_poll_bit +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xfa8efae7 il_setup_watchdog +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xfda0b493 il_leds_exit +EXPORT_SYMBOL drivers/net/wireless/iwlegacy/iwlegacy 0xfe679fab il_send_lq_cmd +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0x08dd8699 __tracepoint_iwlwifi_dev_rx +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0x0c50fa2b __tracepoint_iwlwifi_dev_tx +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0x1ecc5465 __tracepoint_iwlwifi_err +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0x2f7b7e55 __tracepoint_iwlwifi_dev_ucode_wrap_event +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0x3b9d00d6 __tracepoint_iwlwifi_dev_ioread32 +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0x675bcb86 __tracepoint_iwlwifi_info +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0x779dd6f5 __tracepoint_iwlwifi_dev_iowrite32 +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0x85c1bb84 __tracepoint_iwlwifi_dev_iowrite8 +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0x8de37664 __tracepoint_iwlwifi_dbg +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0x954eb7a7 __tracepoint_iwlwifi_crit +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0x963a6f8a __tracepoint_iwlwifi_dev_ucode_error +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0xb8f7026f __tracepoint_iwlwifi_dev_ucode_cont_event +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0xe2dcc8de __tracepoint_iwlwifi_warn +EXPORT_SYMBOL drivers/net/wireless/iwlwifi/iwlwifi 0xf9ec6bdd __tracepoint_iwlwifi_dev_ucode_event +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x00794f19 __orinoco_ev_rx +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x0925e152 free_orinocodev +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x09ec3f4e orinoco_stop +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x1a9932db orinoco_set_multicast_list +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x46719ded orinoco_if_add +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x50d3101f orinoco_down +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x85cda4b3 __orinoco_ev_info +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x8841a627 alloc_orinocodev +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x8e4aaa4a orinoco_init +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x908d9c2e orinoco_tx_timeout +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0x958b722d orinoco_if_del +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xa50390f9 orinoco_up +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xaaddef68 orinoco_open +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xdb0cbd65 hermes_struct_init +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xf02b42ce orinoco_change_mtu +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xf2c8e2cb orinoco_get_stats +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xffb4e823 orinoco_process_xmit_skb +EXPORT_SYMBOL drivers/net/wireless/orinoco/orinoco 0xffe27bca orinoco_interrupt +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x027e9c7d rtl92c_set_fw_rsvdpagepkt +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x0befd62c rtl92c_dm_write_dig +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x0c440a5b rtl92c_dm_bt_coexist +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x15de638e rtl92c_download_fw +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x1f12b59d _rtl92c_phy_dbm_to_txpwr_Idx +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x243aef53 rtl92c_dm_init_edca_turbo +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x2471cca6 _rtl92c_phy_init_bb_rf_register_definition +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x273f8d87 rtl92c_phy_set_io +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x2775762e rtl92c_phy_lc_calibrate +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x2983ca1d rtl92c_phy_set_rfpath_switch +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x2d68d374 rtl92c_phy_set_bw_mode +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x389b346a rtl92c_dm_watchdog +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x3d81a683 _rtl92c_phy_rf_serial_write +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x4a22aef5 rtl92c_phy_set_bb_reg +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x4a653e58 rtl92c_dm_check_txpower_tracking +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x4dfde4ef _rtl92c_phy_txpwr_idx_to_dbm +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x5922c2b8 _rtl92c_phy_fw_rf_serial_read +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x610d690e rtl92c_dm_init +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x68e12217 rtl92c_dm_init_rate_adaptive_mask +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x690d8643 rtl92c_phy_scan_operation_backup +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x6bc6865d rtl92c_phy_update_txpower_dbm +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x6efa9dc2 rtl92c_phy_rf_config +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x70746b21 rtl92c_phy_set_txpower_level +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x766fb040 rtl92c_phy_set_io_cmd +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x892a9aa4 rtl92c_phy_sw_chnl +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x8fec6e88 rtl92c_phy_ap_calibrate +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x90d8cd3d rtl92c_fill_h2c_cmd +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x96f6dcc1 rtl92c_firmware_selfreset +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x99fa4d7c _rtl92c_phy_fw_rf_serial_write +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x9a2721fa rtl92c_phy_sw_chnl_callback +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0x9d38ce24 rtl92c_phy_iq_calibrate +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xa1352f71 _rtl92c_phy_bb8192c_config_parafile +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xa505a872 rtl92c_phy_query_bb_reg +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xa9252e83 rtl92c_set_fw_pwrmode_cmd +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xaa28301a rtl8192_phy_check_is_legal_rfpath +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xb166d97d _rtl92c_phy_set_rf_sleep +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xb3314d48 _rtl92c_phy_calculate_bit_shift +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xcbbfd26a _rtl92c_phy_rf_serial_read +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xce02d89e rtl92ce_phy_set_rf_on +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xd69194f2 _rtl92c_store_pwrIndex_diffrate_offset +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xda4477ce rtl92c_bt_rssi_state_change +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xddf1cca4 rtl92c_dm_rf_saving +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xe26d8d5c rtl92c_set_fw_joinbss_report_cmd +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl_pci 0x53844de9 rtl_pci_probe +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl_pci 0xe02c8041 rtl_pci_disconnect +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl_pci 0xeb5e0625 rtl_pci_suspend +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl_pci 0xf2d862c5 rtl_pci_resume +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl_usb 0x80d8b025 rtl_usb_disconnect +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl_usb 0x878413e3 rtl_usb_suspend +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl_usb 0x8a505b77 rtl_usb_probe +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtl_usb 0xd01fc838 rtl_usb_resume +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x207fbb70 rtl_evm_db_to_percentage +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x27bc8c96 rtl_process_phyinfo +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x28b3fef5 rtl_cam_add_one_entry +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x37e187c1 rtl_ps_enable_nic +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x39734210 rtl_cam_delete_one_entry +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x703f32c6 rtlwifi_rate_mapping +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x738b2045 rtl_send_smps_action +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x7843cdbb rtl_ps_set_rf_state +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x785f50d0 rtl_cam_get_free_entry +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x79188a02 rtl_query_rxpwrpercentage +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x888d63aa rtl_cam_empty_entry +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x8c456be1 rtl_ps_disable_nic +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0x93d0f5d9 efuse_read_1byte +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xa59f7497 rtl_cam_reset_all_entry +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xa99dc229 rtl_cam_mark_invalid +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xaf45b34e rtl_efuse_shadow_map_update +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xd6b5cc4d rtl_fw_cb +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xd6fb74af rtl_init_rfkill +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xed340734 rtl_cam_del_entry +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xf0daad62 rtl_signal_scale_mapping +EXPORT_SYMBOL drivers/net/wireless/rtlwifi/rtlwifi 0xfa7798bc rtl_get_tcb_desc +EXPORT_SYMBOL drivers/net/wireless/ti/wlcore/wlcore 0x11a3fc47 wl12xx_is_dummy_packet +EXPORT_SYMBOL drivers/net/wireless/ti/wlcore/wlcore 0x135b4b80 wlcore_calc_packet_alignment +EXPORT_SYMBOL drivers/net/wireless/ti/wlcore/wlcore 0x9203eef9 wl1271_free_tx_id +EXPORT_SYMBOL drivers/net/wireless/ti/wlcore/wlcore 0xa906d73a wlcore_tx_complete +EXPORT_SYMBOL drivers/nfc/microread/microread 0x0577bff4 microread_probe +EXPORT_SYMBOL drivers/nfc/microread/microread 0x118593d5 microread_remove +EXPORT_SYMBOL drivers/nfc/pn544/pn544 0x5ec7badc pn544_hci_probe +EXPORT_SYMBOL drivers/nfc/pn544/pn544 0x82a82434 pn544_hci_remove +EXPORT_SYMBOL drivers/parport/parport 0x000ba124 parport_ieee1284_ecp_read_data +EXPORT_SYMBOL drivers/parport/parport 0x04dae807 parport_write +EXPORT_SYMBOL drivers/parport/parport 0x15c24643 parport_find_number +EXPORT_SYMBOL drivers/parport/parport 0x18743143 parport_set_timeout +EXPORT_SYMBOL drivers/parport/parport 0x18d2d17a parport_register_driver +EXPORT_SYMBOL drivers/parport/parport 0x21b85dba parport_remove_port +EXPORT_SYMBOL drivers/parport/parport 0x24ff1875 parport_read +EXPORT_SYMBOL drivers/parport/parport 0x295583ee parport_ieee1284_epp_read_data +EXPORT_SYMBOL drivers/parport/parport 0x34474170 parport_find_base +EXPORT_SYMBOL drivers/parport/parport 0x4d2a941b parport_ieee1284_interrupt +EXPORT_SYMBOL drivers/parport/parport 0x5e3a3912 parport_irq_handler +EXPORT_SYMBOL drivers/parport/parport 0x649e3358 parport_wait_event +EXPORT_SYMBOL drivers/parport/parport 0x6a24eb33 parport_claim +EXPORT_SYMBOL drivers/parport/parport 0x80168abe parport_ieee1284_ecp_write_addr +EXPORT_SYMBOL drivers/parport/parport 0x8148c280 parport_put_port +EXPORT_SYMBOL drivers/parport/parport 0x8ed7800a parport_ieee1284_epp_write_data +EXPORT_SYMBOL drivers/parport/parport 0x972ff264 parport_register_device +EXPORT_SYMBOL drivers/parport/parport 0x97a68472 parport_get_port +EXPORT_SYMBOL drivers/parport/parport 0x9cd3894e parport_unregister_driver +EXPORT_SYMBOL drivers/parport/parport 0xa0a66a4a parport_release +EXPORT_SYMBOL drivers/parport/parport 0xadfd96cf parport_announce_port +EXPORT_SYMBOL drivers/parport/parport 0xc2de20ba parport_negotiate +EXPORT_SYMBOL drivers/parport/parport 0xca5c4d89 parport_claim_or_block +EXPORT_SYMBOL drivers/parport/parport 0xd5fc7af3 parport_ieee1284_epp_read_addr +EXPORT_SYMBOL drivers/parport/parport 0xd9c69778 parport_unregister_device +EXPORT_SYMBOL drivers/parport/parport 0xda29119f parport_wait_peripheral +EXPORT_SYMBOL drivers/parport/parport 0xeec95857 parport_ieee1284_read_nibble +EXPORT_SYMBOL drivers/parport/parport 0xef977c40 parport_ieee1284_write_compat +EXPORT_SYMBOL drivers/parport/parport 0xf582346d parport_ieee1284_read_byte +EXPORT_SYMBOL drivers/parport/parport 0xf6c775ec parport_ieee1284_ecp_write_data +EXPORT_SYMBOL drivers/parport/parport 0xf8067f58 parport_ieee1284_epp_write_addr +EXPORT_SYMBOL drivers/parport/parport 0xffe51c2f parport_register_port +EXPORT_SYMBOL drivers/parport/parport_pc 0x3c4bb851 parport_pc_unregister_port +EXPORT_SYMBOL drivers/parport/parport_pc 0x9b99c25a parport_pc_probe_port +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x02bfdc42 pcmcia_dev_present +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x0b2fdfa8 pcmcia_get_mac_from_cis +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x1826a4dd pcmcia_unregister_driver +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x3714db09 pcmcia_read_config_byte +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x3b5dda92 pcmcia_write_config_byte +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x3d6756d6 pcmcia_enable_device +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x7104ef06 pcmcia_loop_config +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x73d2d530 pcmcia_fixup_iowidth +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x742f5665 pcmcia_parse_tuple +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x76f13fc5 pcmcia_request_window +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x7e00b3a4 pcmcia_register_driver +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x88140cc9 pcmcia_disable_device +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0x9a2821e9 __pcmcia_request_exclusive_irq +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xaa2863b2 pcmcia_request_io +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xbd2e4b07 pcmcia_request_irq +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xc5334c43 pcmcia_map_mem_page +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xc6f4dc6b pcmcia_fixup_vpp +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xd4b3990b pcmcia_get_tuple +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xd5c7e427 pcmcia_loop_tuple +EXPORT_SYMBOL drivers/pcmcia/pcmcia 0xd70486af pcmcia_release_window +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x00b9230c pcmcia_unregister_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x0a505d02 pcmcia_get_socket_by_nr +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x10c4baac pcmcia_parse_events +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x10c704cf pcmcia_register_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x19c1c5bc pcmcia_socket_list_rwsem +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x212db8d2 pcmcia_socket_list +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x4cbbba23 pcmcia_reset_card +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x620d0fd2 pcmcia_socket_class +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x7e6dbcf9 pcmcia_parse_uevents +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x8ef4289e pcmcia_put_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0x9f7a337f pccard_register_pcmcia +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xcf97f3bd dead_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_core 0xdf12629c pcmcia_get_socket +EXPORT_SYMBOL drivers/pcmcia/pcmcia_rsrc 0x30115fce pccard_static_ops +EXPORT_SYMBOL drivers/pcmcia/pcmcia_rsrc 0x80f4aaa0 pccard_nonstatic_ops +EXPORT_SYMBOL drivers/platform/x86/sony-laptop 0x5bb1e117 sony_pic_camera_command +EXPORT_SYMBOL drivers/pps/pps_core 0x4c4d62d0 pps_unregister_source +EXPORT_SYMBOL drivers/pps/pps_core 0x4c89bb61 pps_lookup_dev +EXPORT_SYMBOL drivers/pps/pps_core 0x7f7039f6 pps_register_source +EXPORT_SYMBOL drivers/pps/pps_core 0xc87c2d72 pps_event +EXPORT_SYMBOL drivers/ptp/ptp 0x142b932c ptp_clock_unregister +EXPORT_SYMBOL drivers/ptp/ptp 0x1ea01ca5 ptp_clock_register +EXPORT_SYMBOL drivers/ptp/ptp 0x36eea9bd ptp_clock_event +EXPORT_SYMBOL drivers/ptp/ptp 0x3e1194df ptp_clock_index +EXPORT_SYMBOL drivers/ptp/ptp_pch 0x12aeb005 pch_ch_event_write +EXPORT_SYMBOL drivers/ptp/ptp_pch 0x8463917f pch_src_uuid_lo_read +EXPORT_SYMBOL drivers/ptp/ptp_pch 0x885f98b2 pch_ch_control_read +EXPORT_SYMBOL drivers/ptp/ptp_pch 0x88da8678 pch_ch_event_read +EXPORT_SYMBOL drivers/ptp/ptp_pch 0x89b3ac04 pch_rx_snap_read +EXPORT_SYMBOL drivers/ptp/ptp_pch 0xaed3237e pch_ch_control_write +EXPORT_SYMBOL drivers/ptp/ptp_pch 0xdf576938 pch_src_uuid_hi_read +EXPORT_SYMBOL drivers/ptp/ptp_pch 0xe8d9bf12 pch_set_station_address +EXPORT_SYMBOL drivers/ptp/ptp_pch 0xfbb44861 pch_tx_snap_read +EXPORT_SYMBOL drivers/remoteproc/remoteproc 0x29f4d1ad rproc_da_to_va +EXPORT_SYMBOL drivers/remoteproc/remoteproc 0x40039c1d rproc_report_crash +EXPORT_SYMBOL drivers/remoteproc/remoteproc 0x59bfafd1 rproc_add +EXPORT_SYMBOL drivers/remoteproc/remoteproc 0x8936f7a4 rproc_alloc +EXPORT_SYMBOL drivers/remoteproc/remoteproc 0xaf6e1c84 rproc_vq_interrupt +EXPORT_SYMBOL drivers/remoteproc/remoteproc 0xbd2b57c1 rproc_boot +EXPORT_SYMBOL drivers/remoteproc/remoteproc 0xbdb8ae9e rproc_put +EXPORT_SYMBOL drivers/remoteproc/remoteproc 0xc86db6b0 rproc_del +EXPORT_SYMBOL drivers/remoteproc/remoteproc 0xd3fe7471 rproc_shutdown +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x204efe68 fcoe_ctlr_link_up +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x51f90cff fcoe_ctlr_recv +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x5f259e0c fcoe_transport_attach +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x6205d339 fcoe_ctlr_destroy +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x7bac274f fcoe_ctlr_link_down +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x7df5d2d1 fcoe_ctlr_init +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x8505bf84 fcoe_ctlr_set_fip_mode +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0x90eb8fb7 fcoe_ctlr_destroy_store +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xbe1cd736 fcoe_transport_detach +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xe9f195b9 fcoe_ctlr_recv_flogi +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xed65f826 fcoe_fcf_get_selected +EXPORT_SYMBOL drivers/scsi/fcoe/libfcoe 0xf0d06945 fcoe_ctlr_els_send +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x095e158e fc_exch_mgr_add +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x0ebb1ad4 fc_disc_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x0f94e6df fc_fc4_register_provider +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x168450d5 fc_fcp_destroy +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x198ef442 libfc_vport_create +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x19a71d2c fc_frame_alloc_fill +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x1b737fd9 fc_rport_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x22b90986 fc_exch_mgr_del +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x28c89281 _fc_frame_alloc +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x298e5960 fc_lport_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x2c846b16 fc_lport_logo_resp +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x30302d44 fc_fc4_deregister_provider +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x32dec077 fc_linkup +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x3636015e fc_set_rport_loss_tmo +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x36499afc fc_change_queue_type +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x36e5fbaf fc_cpu_mask +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x3fdf94be fc_elsct_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x424d8e1f fc_fcp_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x4a9a29a8 fc_exch_mgr_free +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x4ba77645 fc_rport_terminate_io +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x4bd2b911 fc_lport_flogi_resp +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x4c98ec81 fc_exch_update_stats +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x4fc86285 fc_lport_destroy +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x551f70fa fc_frame_crc_check +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x62a52165 fc_slave_alloc +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x64976847 fc_exch_init +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x6514bd32 fc_vport_id_lookup +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x68e0057a fc_lport_config +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x791a8e4d fc_fabric_login +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x83089cfc fc_lport_bsg_request +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x89ed3297 fc_queuecommand +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x8d00a3aa fc_change_queue_depth +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x945ff872 fc_set_mfs +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0x98491e80 fc_lport_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xa71cc37f fc_eh_host_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xb197330a fc_eh_abort +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xbad08534 fc_fill_reply_hdr +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xc592f6bc fc_exch_mgr_alloc +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xc982ab89 fc_get_host_speed +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xce638856 fc_get_host_port_state +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xd2ee5605 fc_elsct_send +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xd3e7710e fc_lport_set_local_id +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xdadf4bc9 fc_disc_config +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xdc90b4fc fc_exch_mgr_list_clone +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xdcbdb756 fc_exch_mgr_reset +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xe98c2583 fc_fabric_logoff +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xf37805a7 fc_vport_setlink +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xf3d20f7f fc_fill_hdr +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xf4133775 fc_linkdown +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xf530f0c3 fc_lport_notifier_head +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xf5fa9e93 fc_lport_iterate +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xf79148b7 fc_get_host_stats +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xfd7c37db fc_exch_recv +EXPORT_SYMBOL drivers/scsi/libfc/libfc 0xfd937d10 fc_eh_device_reset +EXPORT_SYMBOL drivers/scsi/libsas/libsas 0x249a8d05 sas_wait_eh +EXPORT_SYMBOL drivers/scsi/libsas/libsas 0x8a87e724 try_test_sas_gpio_gp_bit +EXPORT_SYMBOL drivers/scsi/libsas/libsas 0xc38993c3 sas_prep_resume_ha +EXPORT_SYMBOL drivers/scsi/libsas/libsas 0xe96be750 sas_suspend_ha +EXPORT_SYMBOL drivers/scsi/libsas/libsas 0xfe97dd79 sas_resume_ha +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 0xc5d287f8 mraid_mm_register_adp +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x00785012 osd_req_create_object +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x0594a319 osd_req_list_partition_objects +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x0b255935 osd_req_get_attributes +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x0c17edb1 osd_sec_init_nosec_doall_caps +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x29713bdb osd_req_flush_partition +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x3b9f0816 osd_finalize_request +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x3eeb282f osd_req_read_sg +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x3f49ed86 osd_req_decode_get_attr_list +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x41c8432e osd_start_request +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x4b3260c2 osd_req_write_kern +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x590dade2 osd_req_flush_collection +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x5a55a1e6 osd_req_decode_sense_full +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x5be0faaf osd_dev_init +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x7003f028 osd_auto_detect_ver +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x740fdf7c osd_req_add_get_attr_page +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x74d043e5 osd_req_flush_obsd +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x79db5854 osd_req_flush_object +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x8df46c1d osd_req_write_sg_kern +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x8e2607a5 osd_execute_request_async +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x9716911e osd_req_remove_partition +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x97b4fc5f osd_req_create_partition +EXPORT_SYMBOL drivers/scsi/osd/libosd 0x9b5463b2 osd_req_list_dev_partitions +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xc5b4fe72 osd_req_list_collection_objects +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xc83d9267 osd_req_read +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xce9e18d2 osd_req_format +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xcf4e5506 osd_execute_request +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xd26c14f8 osd_req_remove_object +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xd37f4036 osd_req_write +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xd7ba41e9 osd_req_write_sg +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xd85d85fa osd_dev_fini +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xd9708545 osd_end_request +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xe60546c3 osd_req_set_attributes +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xe73dd9d8 osd_req_list_partition_collections +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xe8693258 osd_req_read_kern +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xf4d04a1b osd_req_add_get_attr_list +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xf951b58b osd_req_add_set_attr_list +EXPORT_SYMBOL drivers/scsi/osd/libosd 0xff1a5af1 osd_req_read_sg_kern +EXPORT_SYMBOL drivers/scsi/osd/osd 0x3ee964fe osduld_device_info +EXPORT_SYMBOL drivers/scsi/osd/osd 0x57095655 osduld_put_device +EXPORT_SYMBOL drivers/scsi/osd/osd 0x5fc48609 osduld_unregister_test +EXPORT_SYMBOL drivers/scsi/osd/osd 0x8c110df8 osduld_info_lookup +EXPORT_SYMBOL drivers/scsi/osd/osd 0xa442712a osduld_path_lookup +EXPORT_SYMBOL drivers/scsi/osd/osd 0xbf5c0dc9 osduld_device_same +EXPORT_SYMBOL drivers/scsi/osd/osd 0xedc92a63 osduld_register_test +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0x0b9489b1 qlt_stop_phase1 +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0x1e47debf qlt_lport_deregister +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0x22237956 qlt_enable_vha +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0x400ce09c qlt_free_cmd +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0xa3da9260 qlt_stop_phase2 +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0xc68d17e4 qlt_unreg_sess +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0xc886d51d qlt_rdy_to_xfer +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0xd4f300a8 qlt_free_mcmd +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0xd8394d5f qlt_xmit_tm_rsp +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0xe7e41279 qlt_xmit_response +EXPORT_SYMBOL drivers/scsi/qla2xxx/qla2xxx 0xfebd6e92 qlt_lport_register +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x08b3d715 qlogicfas408_bus_reset +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x1f55cd70 qlogicfas408_ihandl +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x3fd8cd71 qlogicfas408_detect +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x728d5145 qlogicfas408_queuecommand +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x8d4a61ac qlogicfas408_biosparam +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0x94cf6057 qlogicfas408_disable_ints +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xc0db84d8 qlogicfas408_abort +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xd3cd8db5 qlogicfas408_info +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xe76b3b20 qlogicfas408_get_chip_type +EXPORT_SYMBOL drivers/scsi/qlogicfas408 0xf2b95199 qlogicfas408_setup +EXPORT_SYMBOL drivers/scsi/raid_class 0x2bfe9ce9 raid_class_attach +EXPORT_SYMBOL drivers/scsi/raid_class 0xa36ec146 raid_class_release +EXPORT_SYMBOL drivers/scsi/raid_class 0xf49bfc4b raid_component_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x090d2b5b scsi_is_fc_vport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x44852f41 fc_vport_terminate +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x5311defc fc_host_post_vendor_event +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x55d96359 fc_remove_host +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x6119c1c2 fc_remote_port_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x6e48234f fc_host_post_event +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x7460b660 scsi_is_fc_rport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x77089b93 fc_release_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x7954b1ea fc_get_event_number +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0x98e284a1 fc_remote_port_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xb8fa7833 fc_remote_port_rolechg +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xe242941f fc_attach_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xe346b564 fc_block_scsi_eh +EXPORT_SYMBOL drivers/scsi/scsi_transport_fc 0xedf66d34 fc_vport_create +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x00be5993 scsi_is_sas_port +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x0ab2f169 sas_port_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x102f6ecc scsi_is_sas_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x12c8d70d sas_port_delete_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x321cc118 sas_phy_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x32930555 sas_remove_host +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x358ccd18 sas_end_device_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x4850ed02 sas_port_mark_backlink +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x51ec6975 sas_rphy_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x654ea10f sas_remove_children +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x74783958 sas_port_add_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x770337f0 sas_port_alloc_num +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x81c20d92 sas_rphy_remove +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x883a0bc6 sas_port_get_phy +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x8852fb18 sas_port_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x8990cc0a sas_phy_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x9d471c23 sas_rphy_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0x9dc72e55 sas_phy_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xa4fc41a5 sas_expander_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xb0c19950 sas_port_alloc +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xb2ff3734 sas_release_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xb87740a8 sas_phy_delete +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xc5a0b3c3 sas_read_port_mode_page +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xcb4d3d07 sas_rphy_free +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xd2a5352b sas_rphy_unlink +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xdfa57f3c sas_port_add +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xf49c748a sas_attach_transport +EXPORT_SYMBOL drivers/scsi/scsi_transport_sas 0xfad83df5 scsi_is_sas_rphy +EXPORT_SYMBOL drivers/ssb/ssb 0x0283d30c ssb_pmu_set_ldo_voltage +EXPORT_SYMBOL drivers/ssb/ssb 0x07d71c12 ssb_pcihost_register +EXPORT_SYMBOL drivers/ssb/ssb 0x198481cd ssb_bus_pcibus_register +EXPORT_SYMBOL drivers/ssb/ssb 0x281ff288 ssb_bus_sdiobus_register +EXPORT_SYMBOL drivers/ssb/ssb 0x3cc2f9be ssb_device_disable +EXPORT_SYMBOL drivers/ssb/ssb 0x3ea983d5 ssb_bus_unregister +EXPORT_SYMBOL drivers/ssb/ssb 0x42b56f03 ssb_pmu_set_ldo_paref +EXPORT_SYMBOL drivers/ssb/ssb 0x4758b449 ssb_device_is_enabled +EXPORT_SYMBOL drivers/ssb/ssb 0x53757a98 ssb_pcicore_dev_irqvecs_enable +EXPORT_SYMBOL drivers/ssb/ssb 0x55dbdf39 ssb_bus_resume +EXPORT_SYMBOL drivers/ssb/ssb 0x56f71910 ssb_commit_settings +EXPORT_SYMBOL drivers/ssb/ssb 0x88b4597c ssb_driver_unregister +EXPORT_SYMBOL drivers/ssb/ssb 0x9229d64f ssb_chipco_gpio_control +EXPORT_SYMBOL drivers/ssb/ssb 0x9b7b6756 ssb_bus_may_powerdown +EXPORT_SYMBOL drivers/ssb/ssb 0xa167c6b9 ssb_set_devtypedata +EXPORT_SYMBOL drivers/ssb/ssb 0xbc70cacf ssb_dma_translation +EXPORT_SYMBOL drivers/ssb/ssb 0xbe923f25 ssb_bus_suspend +EXPORT_SYMBOL drivers/ssb/ssb 0xc0512e0f ssb_admatch_base +EXPORT_SYMBOL drivers/ssb/ssb 0xc5402d31 ssb_device_enable +EXPORT_SYMBOL drivers/ssb/ssb 0xcc23b4a4 __ssb_driver_register +EXPORT_SYMBOL drivers/ssb/ssb 0xd481192b ssb_admatch_size +EXPORT_SYMBOL drivers/ssb/ssb 0xd4e28063 ssb_clockspeed +EXPORT_SYMBOL drivers/ssb/ssb 0xd97dba06 ssb_bus_powerup +EXPORT_SYMBOL drivers/staging/fwserial/firewire-serial 0x3a5fc9f9 fwtty_port_put +EXPORT_SYMBOL drivers/staging/fwserial/firewire-serial 0xdd6c0f0b fwtty_port_get +EXPORT_SYMBOL drivers/staging/iio/addac/adt7316 0x4d06cacc adt7316_remove +EXPORT_SYMBOL drivers/staging/iio/addac/adt7316 0x80d07294 adt7316_probe +EXPORT_SYMBOL drivers/staging/iio/meter/ade7854 0xd62dda76 ade7854_remove +EXPORT_SYMBOL drivers/staging/iio/meter/ade7854 0xee00898f ade7854_probe +EXPORT_SYMBOL drivers/staging/media/cxd2099/cxd2099 0x18a9c8d7 cxd2099_attach +EXPORT_SYMBOL drivers/staging/media/go7007/go7007 0x2987cae2 go7007_update_board +EXPORT_SYMBOL drivers/staging/media/go7007/go7007 0x29ece2e4 go7007_parse_video_stream +EXPORT_SYMBOL drivers/staging/media/go7007/go7007 0x33a7a898 go7007_register_encoder +EXPORT_SYMBOL drivers/staging/media/go7007/go7007 0x3af089b7 go7007_snd_init +EXPORT_SYMBOL drivers/staging/media/go7007/go7007 0x41a940b5 go7007_alloc +EXPORT_SYMBOL drivers/staging/media/go7007/go7007 0x86785776 go7007_read_addr +EXPORT_SYMBOL drivers/staging/media/go7007/go7007 0x896bd058 go7007_boot_encoder +EXPORT_SYMBOL drivers/staging/media/go7007/go7007 0xadfa78f2 go7007_read_interrupt +EXPORT_SYMBOL drivers/staging/media/go7007/go7007 0xbb828164 go7007_snd_remove +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x03ab0a7b rtllib_wx_set_gen_ie +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x06c389f5 rtllib_xmit +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x0a477901 rtllib_wx_set_rawtx +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x0b1ef236 HT_update_self_and_peer_setting +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x0cbdd5b0 dot11d_init +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x0f38bd06 rtllib_wx_set_freq +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x109a2847 rtllib_wx_set_mlme +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x120fcac3 rtllib_wx_set_encode_ext +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x123ee47f rtllib_wx_set_essid +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x124d3aa7 rtllib_ps_tx_ack +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x1aef0d37 rtllib_wx_get_power +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x2129b8a7 rtllib_wx_get_scan +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x22de426b rtllib_sta_ps_send_null_frame +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x37cbec31 free_rtllib +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x3f9061f7 rtllib_wx_get_rts +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x45ded23a rtllib_start_send_beacons +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x47890bc1 rtllib_wx_set_scan +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x4bf37977 rtllib_DisableIntelPromiscuousMode +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x552e3eff rtllib_get_beacon +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x57c48db4 rtllib_wx_get_wap +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x69980e60 rtllib_wx_get_freq +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x6ea24f86 rtllib_wx_set_auth +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x78c4ebce rtllib_wpa_supplicant_ioctl +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x7c1ab565 notify_wx_assoc_event +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x7c91914b rtllib_rx +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x80d2070c rtllib_legal_channel +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x8723faff rtllib_act_scanning +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x8b3f70b7 rtllib_stop_scan +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x930eb291 rtllib_reset_queue +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x96a7a3e4 rtllib_wx_set_rate +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x9918cd2d rtllib_wx_set_rts +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x9987eba9 rtllib_softmac_stop_protocol +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0x9e859825 rtllib_softmac_start_protocol +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xa0baadd4 rtllib_stop_scan_syncro +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xa311a275 rtllib_stop_send_beacons +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xb68980a1 rtllib_wx_get_essid +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xbb81587f rtllib_wx_set_encode +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xbe1420f2 rt_global_debug_component +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xbe5869e9 rtllib_wx_set_power +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xbfc9e2fe rtllib_wx_set_mode +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xc52f2465 rtllib_EnableIntelPromiscuousMode +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xc868b7d8 rtllib_MgntDisconnect +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xd9695198 rtllib_wx_get_mode +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xda4e10c8 rtllib_wx_get_encode +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xdf78f620 rtllib_wlan_frequencies +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xe0e5ed11 rtllib_start_scan_syncro +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xe6886f61 rtllib_wx_get_name +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xf0071082 rtllib_wx_get_rate +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xf14c216e rtllib_wx_set_wap +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xf6290b29 alloc_rtllib +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xfbbc521c RemovePeerTS +EXPORT_SYMBOL drivers/staging/rtl8192e/rtllib 0xfbea012b Dot11d_Channelmap +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x0a9bed33 ieee80211_wx_get_encode_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x0d3adf0e ieee80211_wx_set_gen_ie_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x1801303e ieee80211_reset_queue_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x180a89c3 ieee80211_wx_set_auth_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x1f8aa375 ieee80211_softmac_stop_protocol_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x207077aa ieee80211_wx_set_encode_ext_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x2372fdc5 ieee80211_wx_get_rts_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x26505ebd ieee80211_wx_get_freq_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x2a8cd0e5 ieee80211_wx_set_scan_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x39885659 ieee80211_disassociate_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x3aee3087 ieee80211_stop_send_beacons_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x3d41fe83 Dot11d_Init +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x42e68727 ieee80211_wx_get_encode_ext_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x44ac5fd6 DOT11D_ScanComplete +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x4adbe2ea ieee80211_txb_free_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x4b27e6f1 ieee80211_wx_set_essid_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x56994b8d ieee80211_get_beacon_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x5827c739 ieee80211_start_scan_syncro_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x59d0db97 ieee80211_wx_get_name_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x5a69dea3 ieee80211_wx_get_power_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x60ccb524 ieee80211_start_send_beacons_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x6135e6fe ieee80211_wx_set_encode_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x61369071 ieee80211_wx_set_rate_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x69e9d3db ieee80211_rx_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x6ff9d4c0 ieee80211_wx_set_wap_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x75762701 ieee80211_wx_get_mode_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x802f20b2 SendDisassociation_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x81347ec9 ieee80211_wx_get_rate_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x83c198a4 DOT11D_GetMaxTxPwrInDbm +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x8605a92c ieee80211_send_probe_requests_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x86cbcb88 ieee80211_rx_mgt_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x88e3b62e Dot11d_UpdateCountryIe +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x8938571a ToLegalChannel +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x8e723f72 ieee80211_stop_scan_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x8e7ddfa1 ieee80211_wx_get_essid_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x9574c9b9 ieee80211_wx_set_mode_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x96b0638a ieee80211_softmac_scan_syncro_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0x9f33e7f3 ieee80211_wx_set_power_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xaa3af03c ieee80211_softmac_start_protocol_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xb237518f IsLegalChannel +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xb2c26ef7 ieee80211_ps_tx_ack_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xb8ca4d61 ieee80211_wx_set_mlme_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xb8fe72ca ieee80211_wx_get_wap_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xbae5a8b8 Dot11d_Reset +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xc1f7bae7 ieee80211_is_shortslot_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xc370a43e ieee80211_wlan_frequencies_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xc652b005 ieee80211_wx_set_freq_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xca8e3e5d ieee80211_wx_get_scan_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xd91cd015 HTUpdateSelfAndPeerSetting +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xe218a8f2 ieee80211_is_54g_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xe8a41b87 ieee80211_wx_set_rawtx_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xe8e52c9d ieee80211_softmac_xmit_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xef322e41 notify_wx_assoc_event_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xf0f63728 ieee80211_wake_queue_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xf364848e ieee80211_wpa_supplicant_ioctl_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xf4755bcf ieee80211_wx_set_rts_rsl +EXPORT_SYMBOL drivers/staging/rtl8192u/r8192u_usb 0xffbfea68 ieee80211_stop_queue_rsl +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x0017f35f set_bp_disc_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x00ea0cde set_tap_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x06d6f244 get_bp_dis_disc_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x09df8f3e set_tap_pwup_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x0a8d32c3 get_bypass_slave_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x1936264c set_dis_bypass_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x1d2eb8ca get_tap_change_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x203af1f7 reset_bypass_wd_timer_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x2070f14a set_bypass_pwup_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x27b990ef get_bypass_info_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x2ba7cd35 get_wd_autoreset_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x2c3f1c17 get_tx_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x2f59e636 get_tap_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x2fdb893a get_tap_pwup_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x361cf40a get_dis_bypass_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x45ca99c3 set_wd_autoreset_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x550a188c set_bypass_wd_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x5cb59e92 get_bypass_pwup_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x66b60122 set_bypass_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x675208c0 set_tx_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x692623f2 get_std_nic_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x75131ec6 set_bypass_pwoff_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x76c0b7d0 set_tpl_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x7e872825 get_wd_exp_mode_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x7e8d701e get_wd_expire_time_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x86388b07 get_bp_disc_change_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x93ae4648 get_wd_set_caps_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x95e42b0d is_bypass_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x9df5f807 set_dis_tap_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0x9e21f42e set_std_nic_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0xa689a214 get_bypass_wd_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0xae117788 get_bp_disc_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0xc368d30d get_dis_tap_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0xccab5de0 get_bypass_caps_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0xd3e034b3 get_bypass_pwoff_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0xd9c1ccfc get_bp_disc_pwup_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0xd9d38d97 set_wd_exp_mode_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0xe640f06e set_bp_disc_pwup_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0xecdaa456 set_bp_hw_reset_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0xedcd3c1b get_bypass_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0xf06d67bf set_bp_dis_disc_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0xf57c1671 get_bp_hw_reset_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0xf693c3a1 bp_if_scan_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0xf8237882 get_bypass_change_sd +EXPORT_SYMBOL drivers/staging/silicom/bpctl_mod 0xfa59240d get_tpl_sd +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x05af3c4c set_wd_exp_mode +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x05b08a42 set_bp_hw_reset +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x0b0d5ce0 get_tap_pwup +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x0fc2e83c reset_bypass_wd_timer +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x123a8133 get_tx +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x157ec89c get_bp_disc +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x2440f05a get_bypass +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x2b01d1d4 set_bp_dis_disc +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x2c27a2f0 set_dis_bypass +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x2da97f4b is_bypass +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x2e86c67b get_tap +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x37416370 get_bp_hw_reset +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x37bdab27 get_wd_autoreset +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x3da96a18 get_bypass_caps +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x4025805e get_bypass_change +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x4940a0cc get_bypass_info +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x4d21ff51 get_bypass_pwup +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x5147360c get_bp_disc_change +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x515d4df1 get_bypass_slave +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x5560267e set_wd_autoreset +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x5be44d44 set_tap +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x6653590c get_wd_exp_mode +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x6bda14ec get_bp_dis_disc +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x72c618ae set_bypass_wd +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x76d47e6f set_bp_disc_pwup +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x794e3815 set_tap_pwup +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x7c6cbc16 get_tpl +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x84a263dc set_tx +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x8a16f22c set_tpl +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x946ff795 get_wd_set_caps +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x94f6aff2 get_bypass_wd +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0x9d1ecf73 set_bypass_pwoff +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0xb1385629 set_bypass +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0xbff68c45 set_bypass_pwup +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0xc871c561 get_dis_bypass +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0xcee528df set_std_nic +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0xd202dd85 get_bypass_pwoff +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0xd787f151 get_wd_expire_time +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0xdb6a39d2 get_dis_tap +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0xebd25ae5 get_std_nic +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0xf1e9f8c1 set_bp_disc +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0xf224abd9 get_tap_change +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0xf5a591b2 set_dis_tap +EXPORT_SYMBOL drivers/staging/silicom/bypasslib/bypass 0xf643fd4c get_bp_disc_pwup +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x02830a88 iscsit_handle_logout_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x09e0d761 iscsit_build_task_mgt_rsp +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x0dcab777 iscsit_logout_post_handler +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x1740abe5 iscsit_check_dataout_payload +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x18f515df iscsit_unregister_transport +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x1a3a28df iscsit_handle_text_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x2b62354c iscsit_cause_connection_reinstatement +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x41b0fd6e iscsit_setup_nop_out +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x4ea7dd55 iscsit_sequence_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x5247ed28 iscsit_setup_scsi_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x5523f659 iscsit_build_nopin_rsp +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x66709284 iscsit_build_logout_rsp +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x7157d85d iscsit_build_rsp_pdu +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x7c2c0ec9 iscsit_allocate_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0x8750b003 iscsit_process_text_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xa21f9574 iscsit_build_reject +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xa25b3be2 iscsit_handle_task_mgt_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xa899644c iscsit_stop_dataout_timer +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xad2c946a iscsit_set_unsoliticed_dataout +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xb4e10702 iscsit_setup_text_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xb5f43967 iscsit_build_text_rsp +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xcffc5cbf iscsit_tmr_post_handler +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xd359a585 iscsit_process_nop_out +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xdabe1c4e iscsit_check_dataout_hdr +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xdbc1c371 iscsit_register_transport +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xe25d8099 iscsit_process_scsi_cmd +EXPORT_SYMBOL drivers/target/iscsi/iscsi_target_mod 0xfb260ae8 iscsit_increment_maxcmdsn +EXPORT_SYMBOL drivers/target/target_core_mod 0x02de3b18 transport_set_vpd_ident +EXPORT_SYMBOL drivers/target/target_core_mod 0x04e34dba transport_init_session +EXPORT_SYMBOL drivers/target/target_core_mod 0x081c81ea iscsi_get_pr_transport_id +EXPORT_SYMBOL drivers/target/target_core_mod 0x13c925aa transport_kunmap_data_sg +EXPORT_SYMBOL drivers/target/target_core_mod 0x205a22f6 sbc_execute_unmap +EXPORT_SYMBOL drivers/target/target_core_mod 0x26c8dcff transport_kmap_data_sg +EXPORT_SYMBOL drivers/target/target_core_mod 0x2b5218ed fc_get_fabric_proto_ident +EXPORT_SYMBOL drivers/target/target_core_mod 0x32c2b3e5 iscsi_get_fabric_proto_ident +EXPORT_SYMBOL drivers/target/target_core_mod 0x37b1acb6 target_setup_cmd_from_cdb +EXPORT_SYMBOL drivers/target/target_core_mod 0x37ef7360 transport_lookup_cmd_lun +EXPORT_SYMBOL drivers/target/target_core_mod 0x39cc68e0 target_execute_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x3dea365a core_tpg_clear_object_luns +EXPORT_SYMBOL drivers/target/target_core_mod 0x3f259637 spc_emulate_inquiry_std +EXPORT_SYMBOL drivers/target/target_core_mod 0x3fd0fe59 sbc_parse_cdb +EXPORT_SYMBOL drivers/target/target_core_mod 0x49432829 spc_parse_cdb +EXPORT_SYMBOL drivers/target/target_core_mod 0x49b749f0 iscsi_get_pr_transport_id_len +EXPORT_SYMBOL drivers/target/target_core_mod 0x4d2acfee target_fabric_configfs_free +EXPORT_SYMBOL drivers/target/target_core_mod 0x51e66410 transport_handle_cdb_direct +EXPORT_SYMBOL drivers/target/target_core_mod 0x53a4b001 core_tmr_alloc_req +EXPORT_SYMBOL drivers/target/target_core_mod 0x54898103 transport_deregister_session_configfs +EXPORT_SYMBOL drivers/target/target_core_mod 0x55ebe120 core_alua_check_nonop_delay +EXPORT_SYMBOL drivers/target/target_core_mod 0x5839c142 transport_generic_new_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x588ae12a transport_generic_free_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x5b14de76 sas_get_pr_transport_id +EXPORT_SYMBOL drivers/target/target_core_mod 0x63ca4cad sas_get_pr_transport_id_len +EXPORT_SYMBOL drivers/target/target_core_mod 0x65cf99cd target_put_sess_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x69a6e366 transport_subsystem_register +EXPORT_SYMBOL drivers/target/target_core_mod 0x6a7756b7 target_submit_tmr +EXPORT_SYMBOL drivers/target/target_core_mod 0x6f1724b3 transport_generic_request_failure +EXPORT_SYMBOL drivers/target/target_core_mod 0x791a5599 core_tpg_set_initiator_node_tag +EXPORT_SYMBOL drivers/target/target_core_mod 0x7a7d159d target_get_sess_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x7c6a58bd iscsi_parse_pr_out_transport_id +EXPORT_SYMBOL drivers/target/target_core_mod 0x7cb2a562 target_complete_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0x7dbada9d transport_set_vpd_ident_type +EXPORT_SYMBOL drivers/target/target_core_mod 0x7e4d4cd2 transport_lookup_tmr_lun +EXPORT_SYMBOL drivers/target/target_core_mod 0x85aa880c transport_set_vpd_assoc +EXPORT_SYMBOL drivers/target/target_core_mod 0x8778614c core_tpg_check_initiator_node_acl +EXPORT_SYMBOL drivers/target/target_core_mod 0x881ab84e spc_emulate_evpd_83 +EXPORT_SYMBOL drivers/target/target_core_mod 0x8bc65c90 target_put_session +EXPORT_SYMBOL drivers/target/target_core_mod 0x92db853a target_fabric_configfs_init +EXPORT_SYMBOL drivers/target/target_core_mod 0x97f3b2b0 transport_generic_handle_tmr +EXPORT_SYMBOL drivers/target/target_core_mod 0x982aba7d target_sess_cmd_list_set_waiting +EXPORT_SYMBOL drivers/target/target_core_mod 0x982f52d2 core_tpg_deregister +EXPORT_SYMBOL drivers/target/target_core_mod 0x9d4fc01d transport_wait_for_tasks +EXPORT_SYMBOL drivers/target/target_core_mod 0xa41b84e8 target_submit_cmd_map_sgls +EXPORT_SYMBOL drivers/target/target_core_mod 0xa6222d6a core_tpg_set_initiator_node_queue_depth +EXPORT_SYMBOL drivers/target/target_core_mod 0xab98596f transport_send_check_condition_and_sense +EXPORT_SYMBOL drivers/target/target_core_mod 0xaca61098 target_get_session +EXPORT_SYMBOL drivers/target/target_core_mod 0xb1c565a6 transport_deregister_session +EXPORT_SYMBOL drivers/target/target_core_mod 0xb54e464d sbc_get_device_type +EXPORT_SYMBOL drivers/target/target_core_mod 0xbf01a8c0 sas_get_fabric_proto_ident +EXPORT_SYMBOL drivers/target/target_core_mod 0xbf023034 sas_parse_pr_out_transport_id +EXPORT_SYMBOL drivers/target/target_core_mod 0xbff64ece target_wait_for_sess_cmds +EXPORT_SYMBOL drivers/target/target_core_mod 0xc18010fa fc_get_pr_transport_id_len +EXPORT_SYMBOL drivers/target/target_core_mod 0xc460d355 transport_register_session +EXPORT_SYMBOL drivers/target/target_core_mod 0xc5e3e97f core_tpg_register +EXPORT_SYMBOL drivers/target/target_core_mod 0xc7305fb4 target_submit_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0xcdf3c9ad __transport_register_session +EXPORT_SYMBOL drivers/target/target_core_mod 0xd74c85f9 sbc_get_write_same_sectors +EXPORT_SYMBOL drivers/target/target_core_mod 0xd7545b05 fc_parse_pr_out_transport_id +EXPORT_SYMBOL drivers/target/target_core_mod 0xd91e13d4 target_fabric_configfs_register +EXPORT_SYMBOL drivers/target/target_core_mod 0xd93b7969 transport_check_aborted_status +EXPORT_SYMBOL drivers/target/target_core_mod 0xd98486e1 core_tpg_add_initiator_node_acl +EXPORT_SYMBOL drivers/target/target_core_mod 0xdf01eed5 spc_emulate_report_luns +EXPORT_SYMBOL drivers/target/target_core_mod 0xe7f5d57d transport_init_se_cmd +EXPORT_SYMBOL drivers/target/target_core_mod 0xeb8f5bc0 core_tpg_del_initiator_node_acl +EXPORT_SYMBOL drivers/target/target_core_mod 0xf01621c7 transport_set_vpd_proto_id +EXPORT_SYMBOL drivers/target/target_core_mod 0xf0daa0f3 transport_free_session +EXPORT_SYMBOL drivers/target/target_core_mod 0xf2759e97 target_fabric_configfs_deregister +EXPORT_SYMBOL drivers/target/target_core_mod 0xf9a76db9 fc_get_pr_transport_id +EXPORT_SYMBOL drivers/target/target_core_mod 0xfaaf1cf3 transport_subsystem_release +EXPORT_SYMBOL drivers/usb/class/cdc-wdm 0x024128ba usb_cdc_wdm_register +EXPORT_SYMBOL drivers/usb/gadget/u_ether 0x06fb3c8a gether_set_dev_addr +EXPORT_SYMBOL drivers/usb/gadget/u_ether 0x2fb6f7b3 gether_setup_name_default +EXPORT_SYMBOL drivers/usb/gadget/u_ether 0x35ce6120 gether_connect +EXPORT_SYMBOL drivers/usb/gadget/u_ether 0x57395f3f gether_get_ifname +EXPORT_SYMBOL drivers/usb/gadget/u_ether 0x6da2edab gether_disconnect +EXPORT_SYMBOL drivers/usb/gadget/u_ether 0x6fa01f2d gether_get_dev_addr +EXPORT_SYMBOL drivers/usb/gadget/u_ether 0x70717ff0 gether_get_qmult +EXPORT_SYMBOL drivers/usb/gadget/u_ether 0x8878cfa6 gether_cleanup +EXPORT_SYMBOL drivers/usb/gadget/u_ether 0xa1c72f9a gether_get_host_addr_cdc +EXPORT_SYMBOL drivers/usb/gadget/u_ether 0xbc9fa292 gether_get_host_addr +EXPORT_SYMBOL drivers/usb/gadget/u_ether 0xc60c951a gether_get_host_addr_u8 +EXPORT_SYMBOL drivers/usb/gadget/u_ether 0xcf115eb0 gether_register_netdev +EXPORT_SYMBOL drivers/usb/gadget/u_ether 0xdd33a49f gether_set_qmult +EXPORT_SYMBOL drivers/usb/gadget/u_ether 0xe2a9a830 gether_set_gadget +EXPORT_SYMBOL drivers/usb/gadget/u_ether 0xf6108631 gether_set_host_addr +EXPORT_SYMBOL drivers/usb/gadget/u_ether 0xf6c3b029 gether_setup_name +EXPORT_SYMBOL drivers/usb/gadget/u_rndis 0x32a0fcea rndis_set_param_dev +EXPORT_SYMBOL drivers/usb/gadget/u_rndis 0x3a6d4f22 rndis_free_response +EXPORT_SYMBOL drivers/usb/gadget/u_rndis 0x3ca38e3a rndis_signal_connect +EXPORT_SYMBOL drivers/usb/gadget/u_rndis 0x4ca90996 rndis_signal_disconnect +EXPORT_SYMBOL drivers/usb/gadget/u_rndis 0x5d22b406 rndis_register +EXPORT_SYMBOL drivers/usb/gadget/u_rndis 0x785d494b rndis_msg_parser +EXPORT_SYMBOL drivers/usb/gadget/u_rndis 0x7a7aac97 rndis_rm_hdr +EXPORT_SYMBOL drivers/usb/gadget/u_rndis 0x840dd143 rndis_deregister +EXPORT_SYMBOL drivers/usb/gadget/u_rndis 0x988ad2a2 rndis_set_param_vendor +EXPORT_SYMBOL drivers/usb/gadget/u_rndis 0x9acf72e4 rndis_set_param_medium +EXPORT_SYMBOL drivers/usb/gadget/u_rndis 0xa90054ee rndis_uninit +EXPORT_SYMBOL drivers/usb/gadget/u_rndis 0xb289fefa rndis_add_hdr +EXPORT_SYMBOL drivers/usb/gadget/u_rndis 0xb971ebca rndis_get_next_response +EXPORT_SYMBOL drivers/usb/gadget/u_rndis 0xd2fe47b1 rndis_set_host_mac +EXPORT_SYMBOL drivers/usb/gadget/usb_f_rndis 0x5a46f5e8 rndis_borrow_net +EXPORT_SYMBOL drivers/usb/host/sl811-hcd 0x0d6edf5c sl811h_driver +EXPORT_SYMBOL drivers/usb/phy/phy-nop 0xa64a4cea usb_nop_xceiv_unregister +EXPORT_SYMBOL drivers/usb/phy/phy-nop 0xd0e43207 usb_nop_xceiv_register +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x100ce755 usb_wwan_open +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x261730cc usb_wwan_chars_in_buffer +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x3dc9f09f usb_wwan_set_termios +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x446aa14d usb_wwan_tiocmget +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x48ba35bb usb_wwan_ioctl +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x5e6549f1 usb_wwan_resume +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x5f95b698 usb_wwan_dtr_rts +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x7d37666a usb_wwan_tiocmset +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0x8056cd3d usb_wwan_suspend +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xae59026c usb_wwan_write_room +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xc81694e4 usb_wwan_write +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xd9e14bdb usb_wwan_close +EXPORT_SYMBOL drivers/usb/serial/usb_wwan 0xf7d0f60b usb_wwan_port_remove +EXPORT_SYMBOL drivers/usb/serial/usbserial 0x2eb11529 usb_serial_suspend +EXPORT_SYMBOL drivers/usb/serial/usbserial 0x66ac6f20 usb_serial_resume +EXPORT_SYMBOL drivers/vhost/vringh 0x0dda8c5a vringh_complete_kern +EXPORT_SYMBOL drivers/vhost/vringh 0x1f063017 vringh_init_user +EXPORT_SYMBOL drivers/vhost/vringh 0x2eae4a2a vringh_getdesc_user +EXPORT_SYMBOL drivers/vhost/vringh 0x36dfce73 vringh_complete_multi_user +EXPORT_SYMBOL drivers/vhost/vringh 0x3b304ebb vringh_iov_push_user +EXPORT_SYMBOL drivers/vhost/vringh 0x3eaf442a vringh_abandon_kern +EXPORT_SYMBOL drivers/vhost/vringh 0x3fa42e4f vringh_notify_enable_user +EXPORT_SYMBOL drivers/vhost/vringh 0x4311cd91 vringh_iov_pull_user +EXPORT_SYMBOL drivers/vhost/vringh 0x5dafbd4e vringh_init_kern +EXPORT_SYMBOL drivers/vhost/vringh 0x66af098b vringh_notify_enable_kern +EXPORT_SYMBOL drivers/vhost/vringh 0x6d0e7948 vringh_abandon_user +EXPORT_SYMBOL drivers/vhost/vringh 0x76bd9a5d vringh_getdesc_kern +EXPORT_SYMBOL drivers/vhost/vringh 0x97fa07e9 vringh_iov_push_kern +EXPORT_SYMBOL drivers/vhost/vringh 0xaf8e4a0e vringh_notify_disable_kern +EXPORT_SYMBOL drivers/vhost/vringh 0xafb47dae vringh_need_notify_user +EXPORT_SYMBOL drivers/vhost/vringh 0xc884d704 vringh_notify_disable_user +EXPORT_SYMBOL drivers/vhost/vringh 0xc8bee0a4 vringh_need_notify_kern +EXPORT_SYMBOL drivers/vhost/vringh 0xda4ea4cc vringh_complete_user +EXPORT_SYMBOL drivers/vhost/vringh 0xde804bb9 vringh_iov_pull_kern +EXPORT_SYMBOL drivers/video/backlight/generic_bl 0x366d19ef genericbl_limit_intensity +EXPORT_SYMBOL drivers/video/backlight/lcd 0x16ffa387 devm_lcd_device_unregister +EXPORT_SYMBOL drivers/video/backlight/lcd 0x1f40c126 lcd_device_register +EXPORT_SYMBOL drivers/video/backlight/lcd 0x8edc6c6a devm_lcd_device_register +EXPORT_SYMBOL drivers/video/backlight/lcd 0xd7af03d7 lcd_device_unregister +EXPORT_SYMBOL drivers/video/cyber2000fb 0x0cc3ede5 cyber2000fb_detach +EXPORT_SYMBOL drivers/video/cyber2000fb 0x534b6f18 cyber2000fb_disable_extregs +EXPORT_SYMBOL drivers/video/cyber2000fb 0x571eb8a4 cyber2000fb_attach +EXPORT_SYMBOL drivers/video/cyber2000fb 0xb39f68d1 cyber2000fb_enable_extregs +EXPORT_SYMBOL drivers/video/macmodes 0x233917d1 mac_vmode_to_var +EXPORT_SYMBOL drivers/video/macmodes 0x441e2d5b mac_find_mode +EXPORT_SYMBOL drivers/video/macmodes 0xe2304303 mac_map_monitor_sense +EXPORT_SYMBOL drivers/video/matrox/g450_pll 0x3fa331e5 matroxfb_g450_setclk +EXPORT_SYMBOL drivers/video/matrox/g450_pll 0xa0e693dc g450_mnp2f +EXPORT_SYMBOL drivers/video/matrox/g450_pll 0xc60302f6 matroxfb_g450_setpll_cond +EXPORT_SYMBOL drivers/video/matrox/matroxfb_DAC1064 0xe93dbe13 matrox_mystique +EXPORT_SYMBOL drivers/video/matrox/matroxfb_DAC1064 0xeb5ae908 DAC1064_global_restore +EXPORT_SYMBOL drivers/video/matrox/matroxfb_DAC1064 0xf2bb066f matrox_G100 +EXPORT_SYMBOL drivers/video/matrox/matroxfb_DAC1064 0xf4023aac DAC1064_global_init +EXPORT_SYMBOL drivers/video/matrox/matroxfb_Ti3026 0x1eea1865 matrox_millennium +EXPORT_SYMBOL drivers/video/matrox/matroxfb_accel 0x6e3eb325 matrox_cfbX_init +EXPORT_SYMBOL drivers/video/matrox/matroxfb_base 0x31c5c30b matroxfb_wait_for_sync +EXPORT_SYMBOL drivers/video/matrox/matroxfb_base 0xaa2ed191 matroxfb_register_driver +EXPORT_SYMBOL drivers/video/matrox/matroxfb_base 0xc7814b9a matroxfb_enable_irq +EXPORT_SYMBOL drivers/video/matrox/matroxfb_base 0xed8b868d matroxfb_unregister_driver +EXPORT_SYMBOL drivers/video/matrox/matroxfb_g450 0xcdfb592d matroxfb_g450_shutdown +EXPORT_SYMBOL drivers/video/matrox/matroxfb_g450 0xdebb91c6 matroxfb_g450_connect +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0x11fa3f6a matroxfb_DAC_in +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0x25cf8049 matroxfb_PLL_calcclock +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0x343cd501 matroxfb_DAC_out +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0xc42b7041 matroxfb_vgaHWinit +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0xcdc90c64 matroxfb_var2my +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0xd6aef38a matroxfb_vgaHWrestore +EXPORT_SYMBOL drivers/video/matrox/matroxfb_misc 0xf48ec21c matroxfb_read_pins +EXPORT_SYMBOL drivers/video/mb862xx/mb862xxfb 0x60f57d07 mb862xxfb_init_accel +EXPORT_SYMBOL drivers/video/output 0x32ef0151 video_output_unregister +EXPORT_SYMBOL drivers/video/output 0xc21a7a9a 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 0x0d2f81ec svga_settile +EXPORT_SYMBOL drivers/video/svgalib 0x17f3f471 svga_set_default_seq_regs +EXPORT_SYMBOL drivers/video/svgalib 0x1be6dc30 svga_set_textmode_vga_regs +EXPORT_SYMBOL drivers/video/svgalib 0x21cfcc49 svga_tilefill +EXPORT_SYMBOL drivers/video/svgalib 0x2a654115 svga_tileblit +EXPORT_SYMBOL drivers/video/svgalib 0x4ab38ef2 svga_set_default_crt_regs +EXPORT_SYMBOL drivers/video/svgalib 0x53933e9e svga_tilecopy +EXPORT_SYMBOL drivers/video/svgalib 0x6e4adb1e svga_check_timings +EXPORT_SYMBOL drivers/video/svgalib 0x7de3cc0f svga_get_caps +EXPORT_SYMBOL drivers/video/svgalib 0x80f24d95 svga_wcrt_multi +EXPORT_SYMBOL drivers/video/svgalib 0x8de63fb4 svga_set_timings +EXPORT_SYMBOL drivers/video/svgalib 0x93affdfa svga_tilecursor +EXPORT_SYMBOL drivers/video/svgalib 0xb107110b svga_get_tilemax +EXPORT_SYMBOL drivers/video/svgalib 0xd1429fca svga_wseq_multi +EXPORT_SYMBOL drivers/video/svgalib 0xd22ca511 svga_set_default_atc_regs +EXPORT_SYMBOL drivers/video/svgalib 0xe28d2a49 svga_set_default_gfx_regs +EXPORT_SYMBOL drivers/video/svgalib 0xef774f5d svga_compute_pll +EXPORT_SYMBOL drivers/video/svgalib 0xf2db5956 svga_match_format +EXPORT_SYMBOL drivers/video/syscopyarea 0xe969e7c8 sys_copyarea +EXPORT_SYMBOL drivers/video/sysfillrect 0xf98495ce sys_fillrect +EXPORT_SYMBOL drivers/video/sysimgblt 0x18a173d7 sys_imageblit +EXPORT_SYMBOL drivers/video/vgastate 0x686de290 restore_vga +EXPORT_SYMBOL drivers/video/vgastate 0xe7a2620e save_vga +EXPORT_SYMBOL drivers/vme/vme 0x00d7e722 vme_lm_count +EXPORT_SYMBOL drivers/vme/vme 0x072f901c vme_master_rmw +EXPORT_SYMBOL drivers/vme/vme 0x0b77e4f8 vme_dma_list_free +EXPORT_SYMBOL drivers/vme/vme 0x0c6bdc3f vme_master_read +EXPORT_SYMBOL drivers/vme/vme 0x0ec5babe vme_dma_free +EXPORT_SYMBOL drivers/vme/vme 0x20df5a3d vme_dma_pci_attribute +EXPORT_SYMBOL drivers/vme/vme 0x2a8860d4 vme_slot_get +EXPORT_SYMBOL drivers/vme/vme 0x3e95083c vme_slave_get +EXPORT_SYMBOL drivers/vme/vme 0x41e35d7a vme_register_bridge +EXPORT_SYMBOL drivers/vme/vme 0x46649cd1 vme_lm_set +EXPORT_SYMBOL drivers/vme/vme 0x48b99a13 vme_lm_free +EXPORT_SYMBOL drivers/vme/vme 0x4aada223 vme_slave_request +EXPORT_SYMBOL drivers/vme/vme 0x4baf35a7 vme_master_get +EXPORT_SYMBOL drivers/vme/vme 0x4c57373a vme_lm_request +EXPORT_SYMBOL drivers/vme/vme 0x52983a4f vme_master_write +EXPORT_SYMBOL drivers/vme/vme 0x535c8308 vme_dma_pattern_attribute +EXPORT_SYMBOL drivers/vme/vme 0x5aff4177 vme_lm_get +EXPORT_SYMBOL drivers/vme/vme 0x666232d6 vme_irq_request +EXPORT_SYMBOL drivers/vme/vme 0x79a33f85 vme_get_size +EXPORT_SYMBOL drivers/vme/vme 0x7be66665 vme_dma_request +EXPORT_SYMBOL drivers/vme/vme 0x7cf35220 vme_master_free +EXPORT_SYMBOL drivers/vme/vme 0x7d7bd989 vme_irq_free +EXPORT_SYMBOL drivers/vme/vme 0x8b83e6be vme_dma_list_add +EXPORT_SYMBOL drivers/vme/vme 0x8f8468d9 vme_register_driver +EXPORT_SYMBOL drivers/vme/vme 0x92fa5abb vme_lm_detach +EXPORT_SYMBOL drivers/vme/vme 0x9487d8b3 vme_unregister_driver +EXPORT_SYMBOL drivers/vme/vme 0x9aeb07e8 vme_lm_attach +EXPORT_SYMBOL drivers/vme/vme 0xa2a335bd vme_alloc_consistent +EXPORT_SYMBOL drivers/vme/vme 0xa31bdf07 vme_master_set +EXPORT_SYMBOL drivers/vme/vme 0xc68b92fd vme_irq_generate +EXPORT_SYMBOL drivers/vme/vme 0xca42598b vme_dma_list_exec +EXPORT_SYMBOL drivers/vme/vme 0xca5ee09a vme_free_consistent +EXPORT_SYMBOL drivers/vme/vme 0xd3c171cd vme_irq_handler +EXPORT_SYMBOL drivers/vme/vme 0xdff042ef vme_new_dma_list +EXPORT_SYMBOL drivers/vme/vme 0xdff905e5 vme_slave_free +EXPORT_SYMBOL drivers/vme/vme 0xee71bcf7 vme_unregister_bridge +EXPORT_SYMBOL drivers/vme/vme 0xefd1624a vme_dma_free_attribute +EXPORT_SYMBOL drivers/vme/vme 0xf135b4ff vme_master_request +EXPORT_SYMBOL drivers/vme/vme 0xf5a10e25 vme_slave_set +EXPORT_SYMBOL drivers/vme/vme 0xf6294b64 vme_bus_type +EXPORT_SYMBOL drivers/vme/vme 0xfacd8e72 vme_dma_vme_attribute +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0x509ede43 w1_ds2760_recall_eeprom +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0x8ce1b584 w1_ds2760_read +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0xc32477ba w1_ds2760_store_eeprom +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2760 0xe86efedc w1_ds2760_write +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2780 0x27df7585 w1_ds2780_eeprom_cmd +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2780 0x85a0f4b6 w1_ds2780_io +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2781 0x407dda5d w1_ds2781_io +EXPORT_SYMBOL drivers/w1/slaves/w1_ds2781 0x97ca3fc7 w1_ds2781_eeprom_cmd +EXPORT_SYMBOL drivers/w1/wire 0x529727e6 w1_unregister_family +EXPORT_SYMBOL drivers/w1/wire 0x9c9f390d w1_register_family +EXPORT_SYMBOL drivers/w1/wire 0xd908df3d w1_remove_master_device +EXPORT_SYMBOL drivers/w1/wire 0xe1e5ba98 w1_add_master_device +EXPORT_SYMBOL drivers/watchdog/iTCO_vendor_support 0x04e133fc iTCO_vendor_check_noreboot_on +EXPORT_SYMBOL drivers/watchdog/iTCO_vendor_support 0xa78bd894 iTCO_vendor_pre_set_heartbeat +EXPORT_SYMBOL drivers/watchdog/iTCO_vendor_support 0xb5f20875 iTCO_vendor_pre_keepalive +EXPORT_SYMBOL drivers/watchdog/iTCO_vendor_support 0xc4f657bf iTCO_vendor_pre_stop +EXPORT_SYMBOL drivers/watchdog/iTCO_vendor_support 0xdc6effc9 iTCO_vendor_pre_start +EXPORT_SYMBOL fs/btrfs/btrfs 0x27476846 ulist_reinit +EXPORT_SYMBOL fs/btrfs/btrfs 0x41e6a9d2 ulist_init +EXPORT_SYMBOL fs/btrfs/btrfs 0x7e2ee765 ulist_free +EXPORT_SYMBOL fs/btrfs/btrfs 0xa2eec2e8 ulist_fini +EXPORT_SYMBOL fs/btrfs/btrfs 0xb1320bc8 ulist_add +EXPORT_SYMBOL fs/btrfs/btrfs 0xb42289d2 ulist_alloc +EXPORT_SYMBOL fs/btrfs/btrfs 0xc2c745db ulist_next +EXPORT_SYMBOL fs/configfs/configfs 0x016569fd config_item_init +EXPORT_SYMBOL fs/configfs/configfs 0x09b092bd configfs_depend_item +EXPORT_SYMBOL fs/configfs/configfs 0x0d8f70e8 config_item_set_name +EXPORT_SYMBOL fs/configfs/configfs 0x1a8fe309 config_group_init_type_name +EXPORT_SYMBOL fs/configfs/configfs 0x2255526e config_item_get +EXPORT_SYMBOL fs/configfs/configfs 0x2b635347 configfs_unregister_subsystem +EXPORT_SYMBOL fs/configfs/configfs 0x3628f443 config_group_find_item +EXPORT_SYMBOL fs/configfs/configfs 0x3877c7e0 config_item_init_type_name +EXPORT_SYMBOL fs/configfs/configfs 0x55311bf2 configfs_register_subsystem +EXPORT_SYMBOL fs/configfs/configfs 0x5d092f42 configfs_undepend_item +EXPORT_SYMBOL fs/configfs/configfs 0xca17a629 config_group_init +EXPORT_SYMBOL fs/configfs/configfs 0xd9f765a9 config_item_put +EXPORT_SYMBOL fs/exofs/libore 0x011500ad ore_calc_stripe_info +EXPORT_SYMBOL fs/exofs/libore 0x11262885 ore_get_io_state +EXPORT_SYMBOL fs/exofs/libore 0x17d26e6a ore_remove +EXPORT_SYMBOL fs/exofs/libore 0x1bc28b09 ore_truncate +EXPORT_SYMBOL fs/exofs/libore 0x28806871 ore_verify_layout +EXPORT_SYMBOL fs/exofs/libore 0x290bb524 ore_write +EXPORT_SYMBOL fs/exofs/libore 0x64fd51c9 extract_attr_from_ios +EXPORT_SYMBOL fs/exofs/libore 0x84ad312a ore_check_io +EXPORT_SYMBOL fs/exofs/libore 0xa393e422 ore_get_rw_state +EXPORT_SYMBOL fs/exofs/libore 0xa3d2a634 g_attr_logical_length +EXPORT_SYMBOL fs/exofs/libore 0xc06d5205 ore_create +EXPORT_SYMBOL fs/exofs/libore 0xc85448fe ore_put_io_state +EXPORT_SYMBOL fs/exofs/libore 0xd4545cc0 ore_read +EXPORT_SYMBOL fs/fscache/fscache 0x0296f0df fscache_object_destroy +EXPORT_SYMBOL fs/fscache/fscache 0x1a8e508d fscache_object_lookup_negative +EXPORT_SYMBOL fs/fscache/fscache 0x1bb31bc1 __fscache_unregister_netfs +EXPORT_SYMBOL fs/fscache/fscache 0x25ec5d23 __fscache_relinquish_cookie +EXPORT_SYMBOL fs/fscache/fscache 0x41c32860 fscache_op_complete +EXPORT_SYMBOL fs/fscache/fscache 0x41e2b4db __fscache_register_netfs +EXPORT_SYMBOL fs/fscache/fscache 0x42bf28ea __fscache_acquire_cookie +EXPORT_SYMBOL fs/fscache/fscache 0x51b60f88 __fscache_wait_on_invalidate +EXPORT_SYMBOL fs/fscache/fscache 0x531fdb48 fscache_mark_page_cached +EXPORT_SYMBOL fs/fscache/fscache 0x5525eac7 fscache_io_error +EXPORT_SYMBOL fs/fscache/fscache 0x5dfb49bd fscache_fsdef_index +EXPORT_SYMBOL fs/fscache/fscache 0x652b9fa1 fscache_init_cache +EXPORT_SYMBOL fs/fscache/fscache 0x68bc9e3c __fscache_wait_on_page_write +EXPORT_SYMBOL fs/fscache/fscache 0x74530ecd fscache_op_debug_id +EXPORT_SYMBOL fs/fscache/fscache 0x7611b765 __fscache_check_page_write +EXPORT_SYMBOL fs/fscache/fscache 0x7b0aec35 fscache_put_operation +EXPORT_SYMBOL fs/fscache/fscache 0x8162b438 fscache_withdraw_cache +EXPORT_SYMBOL fs/fscache/fscache 0x838adc84 fscache_check_aux +EXPORT_SYMBOL fs/fscache/fscache 0x951e6054 __fscache_uncache_all_inode_pages +EXPORT_SYMBOL fs/fscache/fscache 0x978f85b0 fscache_object_init +EXPORT_SYMBOL fs/fscache/fscache 0xa6d175ee fscache_obtained_object +EXPORT_SYMBOL fs/fscache/fscache 0xa74cf379 fscache_enqueue_operation +EXPORT_SYMBOL fs/fscache/fscache 0xa894a66f __fscache_update_cookie +EXPORT_SYMBOL fs/fscache/fscache 0xaafb81d2 __fscache_write_page +EXPORT_SYMBOL fs/fscache/fscache 0xbfe21561 fscache_mark_pages_cached +EXPORT_SYMBOL fs/fscache/fscache 0xc263232a __fscache_read_or_alloc_page +EXPORT_SYMBOL fs/fscache/fscache 0xcba14213 fscache_add_cache +EXPORT_SYMBOL fs/fscache/fscache 0xce9c3f92 __fscache_invalidate +EXPORT_SYMBOL fs/fscache/fscache 0xe126412a __fscache_maybe_release_page +EXPORT_SYMBOL fs/fscache/fscache 0xe74bdba6 fscache_cache_cleared_wq +EXPORT_SYMBOL fs/fscache/fscache 0xe7f888bb __fscache_uncache_page +EXPORT_SYMBOL fs/fscache/fscache 0xee26921b __fscache_read_or_alloc_pages +EXPORT_SYMBOL fs/fscache/fscache 0xf5f08309 __fscache_alloc_page +EXPORT_SYMBOL fs/fscache/fscache 0xfbe5df88 __fscache_attr_changed +EXPORT_SYMBOL fs/nfsd/nfsd 0x040ea5a0 nfs4_acl_nfsv4_to_posix +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 0xcb152562 nfs4_acl_posix_to_nfsv4 +EXPORT_SYMBOL fs/nfsd/nfsd 0xda45bc09 nfs4_acl_new +EXPORT_SYMBOL fs/ocfs2/cluster/ocfs2_nodemanager 0xbfd7d7a2 o2hb_global_heartbeat_active +EXPORT_SYMBOL fs/quota/quota_tree 0x26971420 qtree_release_dquot +EXPORT_SYMBOL fs/quota/quota_tree 0x46d20003 qtree_delete_dquot +EXPORT_SYMBOL fs/quota/quota_tree 0x9137594e qtree_write_dquot +EXPORT_SYMBOL fs/quota/quota_tree 0xbc32ed6a qtree_read_dquot +EXPORT_SYMBOL fs/quota/quota_tree 0xc1b34dd9 qtree_entry_unused +EXPORT_SYMBOL lib/cordic 0x434bfd07 cordic_calc_iq +EXPORT_SYMBOL lib/crc-ccitt 0x1a703ba1 crc_ccitt +EXPORT_SYMBOL lib/crc-ccitt 0x75811312 crc_ccitt_table +EXPORT_SYMBOL lib/crc-itu-t 0x6d356209 crc_itu_t +EXPORT_SYMBOL lib/crc-itu-t 0xd29b009f crc_itu_t_table +EXPORT_SYMBOL lib/crc7 0x6c1f6fee crc7 +EXPORT_SYMBOL lib/crc7 0xd80c3603 crc7_syndrome_table +EXPORT_SYMBOL lib/crc8 0xab9ad613 crc8_populate_lsb +EXPORT_SYMBOL lib/crc8 0xd09b2cba crc8 +EXPORT_SYMBOL lib/crc8 0xd4534d80 crc8_populate_msb +EXPORT_SYMBOL lib/libcrc32c 0x27000b29 crc32c +EXPORT_SYMBOL lib/lru_cache 0x0aadeff8 lc_set +EXPORT_SYMBOL lib/lru_cache 0x2fdff88c lc_try_lock +EXPORT_SYMBOL lib/lru_cache 0x5a715eee lc_is_used +EXPORT_SYMBOL lib/lru_cache 0x6a7f6af5 lc_seq_dump_details +EXPORT_SYMBOL lib/lru_cache 0x6e4937ae lc_committed +EXPORT_SYMBOL lib/lru_cache 0x931b585c lc_reset +EXPORT_SYMBOL lib/lru_cache 0x95d31d89 lc_get_cumulative +EXPORT_SYMBOL lib/lru_cache 0x9a945ce3 lc_try_get +EXPORT_SYMBOL lib/lru_cache 0xaf372984 lc_create +EXPORT_SYMBOL lib/lru_cache 0xca2cde01 lc_del +EXPORT_SYMBOL lib/lru_cache 0xd0b9c96f lc_destroy +EXPORT_SYMBOL lib/lru_cache 0xe7e6d7b2 lc_get +EXPORT_SYMBOL lib/lru_cache 0xeae82f48 lc_find +EXPORT_SYMBOL lib/lru_cache 0xeb0a363c lc_index_of +EXPORT_SYMBOL lib/lru_cache 0xf09044ea lc_seq_printf_stats +EXPORT_SYMBOL lib/lru_cache 0xf7f7e631 lc_element_by_index +EXPORT_SYMBOL lib/lru_cache 0xfa63e10c lc_put +EXPORT_SYMBOL lib/lz4/lz4_compress 0x0c222eb5 lz4_compress +EXPORT_SYMBOL lib/lz4/lz4hc_compress 0x682a23e0 lz4hc_compress +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/raid6/raid6_pq 0xd9e91f83 raid6_vgfmul +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 0xe9f7149c zlib_deflate_workspacesize +EXPORT_SYMBOL lib/zlib_deflate/zlib_deflate 0xf741c793 zlib_deflateEnd +EXPORT_SYMBOL net/802/p8022 0x384f404d unregister_8022_client +EXPORT_SYMBOL net/802/p8022 0xc31ff576 register_8022_client +EXPORT_SYMBOL net/802/p8023 0x854793a0 make_8023_client +EXPORT_SYMBOL net/802/p8023 0xb3c3d4a0 destroy_8023_client +EXPORT_SYMBOL net/802/psnap 0x977e082b unregister_snap_client +EXPORT_SYMBOL net/802/psnap 0xc232f2c5 register_snap_client +EXPORT_SYMBOL net/9p/9pnet 0x03a1fd0a p9_client_begin_disconnect +EXPORT_SYMBOL net/9p/9pnet 0x05aaee9c p9_client_walk +EXPORT_SYMBOL net/9p/9pnet 0x1f7045b8 v9fs_unregister_trans +EXPORT_SYMBOL net/9p/9pnet 0x2a209bea p9_client_rename +EXPORT_SYMBOL net/9p/9pnet 0x2ad9f036 p9_client_getlock_dotl +EXPORT_SYMBOL net/9p/9pnet 0x2bc687e7 p9_client_symlink +EXPORT_SYMBOL net/9p/9pnet 0x2d662cdc p9_payload_gup +EXPORT_SYMBOL net/9p/9pnet 0x3271ae66 p9_client_clunk +EXPORT_SYMBOL net/9p/9pnet 0x32b6a340 p9_client_setattr +EXPORT_SYMBOL net/9p/9pnet 0x35d1e27e p9_idpool_get +EXPORT_SYMBOL net/9p/9pnet 0x3721a334 p9_client_disconnect +EXPORT_SYMBOL net/9p/9pnet 0x3aeaa2d6 p9_parse_header +EXPORT_SYMBOL net/9p/9pnet 0x3d73a797 p9_errstr2errno +EXPORT_SYMBOL net/9p/9pnet 0x41d77fe8 p9_client_write +EXPORT_SYMBOL net/9p/9pnet 0x43f71b18 p9_client_fsync +EXPORT_SYMBOL net/9p/9pnet 0x49140dcf p9_client_stat +EXPORT_SYMBOL net/9p/9pnet 0x49de941c p9_client_wstat +EXPORT_SYMBOL net/9p/9pnet 0x4d774ef8 p9_client_link +EXPORT_SYMBOL net/9p/9pnet 0x4e060ed8 p9stat_free +EXPORT_SYMBOL net/9p/9pnet 0x5a53cd7b p9_client_mkdir_dotl +EXPORT_SYMBOL net/9p/9pnet 0x5b1fe9cf p9_release_pages +EXPORT_SYMBOL net/9p/9pnet 0x6523b2e9 p9_client_cb +EXPORT_SYMBOL net/9p/9pnet 0x6fe15ce0 p9_client_attach +EXPORT_SYMBOL net/9p/9pnet 0x770c4ebc p9_client_getattr_dotl +EXPORT_SYMBOL net/9p/9pnet 0x7832d3fb p9_is_proto_dotl +EXPORT_SYMBOL net/9p/9pnet 0x7a923366 p9_client_readlink +EXPORT_SYMBOL net/9p/9pnet 0x84b8068a p9_client_create_dotl +EXPORT_SYMBOL net/9p/9pnet 0x93aa9a83 v9fs_register_trans +EXPORT_SYMBOL net/9p/9pnet 0x93c26c3c p9_tag_lookup +EXPORT_SYMBOL net/9p/9pnet 0x9582a22f p9_client_remove +EXPORT_SYMBOL net/9p/9pnet 0x977a0030 p9_nr_pages +EXPORT_SYMBOL net/9p/9pnet 0xa5f07e98 p9_client_open +EXPORT_SYMBOL net/9p/9pnet 0xa892758d p9_client_create +EXPORT_SYMBOL net/9p/9pnet 0xaddbb035 p9dirent_read +EXPORT_SYMBOL net/9p/9pnet 0xb24436dc v9fs_get_default_trans +EXPORT_SYMBOL net/9p/9pnet 0xb463f114 v9fs_get_trans_by_name +EXPORT_SYMBOL net/9p/9pnet 0xb9483af3 p9_client_readdir +EXPORT_SYMBOL net/9p/9pnet 0xbb6f8d35 p9_client_read +EXPORT_SYMBOL net/9p/9pnet 0xc2a09ab6 p9_client_fcreate +EXPORT_SYMBOL net/9p/9pnet 0xc2e43206 p9_client_lock_dotl +EXPORT_SYMBOL net/9p/9pnet 0xc5db54a9 p9_idpool_destroy +EXPORT_SYMBOL net/9p/9pnet 0xc6df8e1f p9_client_unlinkat +EXPORT_SYMBOL net/9p/9pnet 0xcc48bea0 p9_is_proto_dotu +EXPORT_SYMBOL net/9p/9pnet 0xcd9c1a38 p9stat_read +EXPORT_SYMBOL net/9p/9pnet 0xce6942c2 p9_client_mknod_dotl +EXPORT_SYMBOL net/9p/9pnet 0xd698a0d2 p9_client_destroy +EXPORT_SYMBOL net/9p/9pnet 0xd7bc549a p9_client_renameat +EXPORT_SYMBOL net/9p/9pnet 0xe58a3360 p9_error_init +EXPORT_SYMBOL net/9p/9pnet 0xf4a111d8 p9_idpool_create +EXPORT_SYMBOL net/9p/9pnet 0xf84f2022 p9_idpool_put +EXPORT_SYMBOL net/9p/9pnet 0xfd40c79d p9_idpool_check +EXPORT_SYMBOL net/9p/9pnet 0xfe78060d p9_client_statfs +EXPORT_SYMBOL net/appletalk/appletalk 0x06b96edc alloc_ltalkdev +EXPORT_SYMBOL net/appletalk/appletalk 0x1051d983 atrtr_get_dev +EXPORT_SYMBOL net/appletalk/appletalk 0x2ef391ba aarp_send_ddp +EXPORT_SYMBOL net/appletalk/appletalk 0x99087626 atalk_find_dev_addr +EXPORT_SYMBOL net/atm/atm 0x2cc2d52d vcc_hash +EXPORT_SYMBOL net/atm/atm 0x31fc5659 atm_dev_register +EXPORT_SYMBOL net/atm/atm 0x4443d399 atm_proc_root +EXPORT_SYMBOL net/atm/atm 0x538d10b9 atm_dev_lookup +EXPORT_SYMBOL net/atm/atm 0x83978258 vcc_process_recv_queue +EXPORT_SYMBOL net/atm/atm 0x85a8f5ad atm_dev_deregister +EXPORT_SYMBOL net/atm/atm 0x93136f41 vcc_sklist_lock +EXPORT_SYMBOL net/atm/atm 0x9feaf287 sonet_subtract_stats +EXPORT_SYMBOL net/atm/atm 0xa921c1cb atm_dev_signal_change +EXPORT_SYMBOL net/atm/atm 0xaa024146 sonet_copy_stats +EXPORT_SYMBOL net/atm/atm 0xbdc3547e deregister_atm_ioctl +EXPORT_SYMBOL net/atm/atm 0xbfa001fe vcc_release_async +EXPORT_SYMBOL net/atm/atm 0xd6d51f89 atm_dev_release_vccs +EXPORT_SYMBOL net/atm/atm 0xdaf548eb atm_alloc_charge +EXPORT_SYMBOL net/atm/atm 0xea9453f1 atm_init_aal5 +EXPORT_SYMBOL net/atm/atm 0xf49bc67a atm_pcr_goal +EXPORT_SYMBOL net/atm/atm 0xf6352790 vcc_insert_socket +EXPORT_SYMBOL net/atm/atm 0xfc7a9b82 register_atm_ioctl +EXPORT_SYMBOL net/atm/atm 0xfcac3024 atm_charge +EXPORT_SYMBOL net/ax25/ax25 0x026c1368 ax25_display_timer +EXPORT_SYMBOL net/ax25/ax25 0x13e0d5e8 ax25_findbyuid +EXPORT_SYMBOL net/ax25/ax25 0x1da8dbc2 ax25_header_ops +EXPORT_SYMBOL net/ax25/ax25 0x242852b9 ax25_uid_policy +EXPORT_SYMBOL net/ax25/ax25 0x3a3dc23d ax25_hard_header +EXPORT_SYMBOL net/ax25/ax25 0x3c3133f9 ax25_linkfail_release +EXPORT_SYMBOL net/ax25/ax25 0x443c8743 ax25_rebuild_header +EXPORT_SYMBOL net/ax25/ax25 0x4502c65a asc2ax +EXPORT_SYMBOL net/ax25/ax25 0x4b266deb ax25_send_frame +EXPORT_SYMBOL net/ax25/ax25 0x53dea1ff ax2asc +EXPORT_SYMBOL net/ax25/ax25 0x56f64ac3 ax25_listen_register +EXPORT_SYMBOL net/ax25/ax25 0x6f425824 ax25_listen_release +EXPORT_SYMBOL net/ax25/ax25 0x8ede9e26 ax25_protocol_release +EXPORT_SYMBOL net/ax25/ax25 0xa7696a6a ax25_linkfail_register +EXPORT_SYMBOL net/ax25/ax25 0xc1444946 ax25cmp +EXPORT_SYMBOL net/ax25/ax25 0xd43ecbf1 null_ax25_address +EXPORT_SYMBOL net/ax25/ax25 0xd44b65bc ax25_find_cb +EXPORT_SYMBOL net/bluetooth/bluetooth 0x124a88ae hci_conn_check_secure +EXPORT_SYMBOL net/bluetooth/bluetooth 0x136fa426 hci_free_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x17e189ec hci_resume_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x25f88f72 hci_alloc_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x28c3cc27 bt_sock_link +EXPORT_SYMBOL net/bluetooth/bluetooth 0x3573bbcb hci_unregister_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x35f0a7b0 __hci_cmd_sync +EXPORT_SYMBOL net/bluetooth/bluetooth 0x41c21809 bt_sock_reclassify_lock +EXPORT_SYMBOL net/bluetooth/bluetooth 0x420c8ee9 __hci_cmd_sync_ev +EXPORT_SYMBOL net/bluetooth/bluetooth 0x4e735125 hci_conn_security +EXPORT_SYMBOL net/bluetooth/bluetooth 0x4fa12318 bt_procfs_init +EXPORT_SYMBOL net/bluetooth/bluetooth 0x5e1f3c52 hci_register_cb +EXPORT_SYMBOL net/bluetooth/bluetooth 0x6bec33b8 bt_accept_unlink +EXPORT_SYMBOL net/bluetooth/bluetooth 0x6c8eff87 bt_procfs_cleanup +EXPORT_SYMBOL net/bluetooth/bluetooth 0x722e1246 hci_get_route +EXPORT_SYMBOL net/bluetooth/bluetooth 0x7c640527 bt_info +EXPORT_SYMBOL net/bluetooth/bluetooth 0x879ba322 bt_accept_enqueue +EXPORT_SYMBOL net/bluetooth/bluetooth 0x8fea24bd bt_sock_unregister +EXPORT_SYMBOL net/bluetooth/bluetooth 0x8ff6e024 l2cap_conn_put +EXPORT_SYMBOL net/bluetooth/bluetooth 0x91c9a325 bt_to_errno +EXPORT_SYMBOL net/bluetooth/bluetooth 0x9398d2b6 bt_sock_register +EXPORT_SYMBOL net/bluetooth/bluetooth 0x96e4e3d5 l2cap_register_user +EXPORT_SYMBOL net/bluetooth/bluetooth 0x9c91e270 hci_suspend_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0xa2bb8a0c bt_sock_stream_recvmsg +EXPORT_SYMBOL net/bluetooth/bluetooth 0xafdcecca hci_register_dev +EXPORT_SYMBOL net/bluetooth/bluetooth 0xb0ba15cb hci_recv_stream_fragment +EXPORT_SYMBOL net/bluetooth/bluetooth 0xb61a0c3b bt_err +EXPORT_SYMBOL net/bluetooth/bluetooth 0xb9847480 hci_unregister_cb +EXPORT_SYMBOL net/bluetooth/bluetooth 0xbe0f9007 hci_conn_switch_role +EXPORT_SYMBOL net/bluetooth/bluetooth 0xcc1fb551 baswap +EXPORT_SYMBOL net/bluetooth/bluetooth 0xcc53dbea hci_recv_frame +EXPORT_SYMBOL net/bluetooth/bluetooth 0xd046315a l2cap_unregister_user +EXPORT_SYMBOL net/bluetooth/bluetooth 0xd2bce341 bt_sock_ioctl +EXPORT_SYMBOL net/bluetooth/bluetooth 0xd4f07015 bt_accept_dequeue +EXPORT_SYMBOL net/bluetooth/bluetooth 0xd55b5b6d bt_sock_unlink +EXPORT_SYMBOL net/bluetooth/bluetooth 0xdf5f06a8 bt_sock_poll +EXPORT_SYMBOL net/bluetooth/bluetooth 0xe248eb42 hci_recv_fragment +EXPORT_SYMBOL net/bluetooth/bluetooth 0xe3b61ec3 l2cap_is_socket +EXPORT_SYMBOL net/bluetooth/bluetooth 0xe73286ad bt_sock_recvmsg +EXPORT_SYMBOL net/bluetooth/bluetooth 0xea81830a l2cap_conn_get +EXPORT_SYMBOL net/bluetooth/bluetooth 0xf72c25bd bt_sock_wait_state +EXPORT_SYMBOL net/bridge/bridge 0x814a2162 br_should_route_hook +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x0ca34a79 ebt_do_table +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x488f7499 ebt_register_table +EXPORT_SYMBOL net/bridge/netfilter/ebtables 0x995d748c ebt_unregister_table +EXPORT_SYMBOL net/caif/caif 0x1446b60a caif_client_register_refcnt +EXPORT_SYMBOL net/caif/caif 0x2a09f713 cfpkt_fromnative +EXPORT_SYMBOL net/caif/caif 0x329dbd06 cfpkt_info +EXPORT_SYMBOL net/caif/caif 0x38701a7c cfcnfg_del_phy_layer +EXPORT_SYMBOL net/caif/caif 0x4a237e57 cfpkt_tonative +EXPORT_SYMBOL net/caif/caif 0x5d491f5a caif_enroll_dev +EXPORT_SYMBOL net/caif/caif 0x6a44fc70 cfpkt_extr_head +EXPORT_SYMBOL net/caif/caif 0x839ddb7b cfcnfg_set_phy_state +EXPORT_SYMBOL net/caif/caif 0x966d7de2 cfpkt_add_head +EXPORT_SYMBOL net/caif/caif 0x9e3e305d cfpkt_set_prio +EXPORT_SYMBOL net/caif/caif 0xaadf1f20 cfcnfg_add_phy_layer +EXPORT_SYMBOL net/caif/caif 0xb7b6874e caif_free_client +EXPORT_SYMBOL net/caif/caif 0xbb2b41b0 caif_connect_client +EXPORT_SYMBOL net/caif/caif 0xdddec139 get_cfcnfg +EXPORT_SYMBOL net/caif/caif 0xf7e26097 caif_disconnect_client +EXPORT_SYMBOL net/can/can 0x098187b5 can_rx_register +EXPORT_SYMBOL net/can/can 0x668c2cee can_rx_unregister +EXPORT_SYMBOL net/can/can 0xa236259d can_proto_unregister +EXPORT_SYMBOL net/can/can 0xc4692109 can_proto_register +EXPORT_SYMBOL net/can/can 0xc9218bfc can_ioctl +EXPORT_SYMBOL net/can/can 0xcc34dd40 can_send +EXPORT_SYMBOL net/ceph/libceph 0x01e0160e ceph_msg_new +EXPORT_SYMBOL net/ceph/libceph 0x0384b0e6 ceph_con_open +EXPORT_SYMBOL net/ceph/libceph 0x064f27b6 ceph_compare_options +EXPORT_SYMBOL net/ceph/libceph 0x06fa06d9 osd_req_op_cls_request_data_pages +EXPORT_SYMBOL net/ceph/libceph 0x08b6a5e5 ceph_release_page_vector +EXPORT_SYMBOL net/ceph/libceph 0x09290ab3 ceph_debugfs_init +EXPORT_SYMBOL net/ceph/libceph 0x0d61c270 ceph_pagelist_set_cursor +EXPORT_SYMBOL net/ceph/libceph 0x0ee5e81e ceph_con_init +EXPORT_SYMBOL net/ceph/libceph 0x11f58d91 ceph_copy_to_page_vector +EXPORT_SYMBOL net/ceph/libceph 0x1475bf0d ceph_pg_poolid_by_name +EXPORT_SYMBOL net/ceph/libceph 0x176363dc osd_req_op_extent_update +EXPORT_SYMBOL net/ceph/libceph 0x197effcb ceph_osdc_release_request +EXPORT_SYMBOL net/ceph/libceph 0x1a52d970 ceph_osdc_readpages +EXPORT_SYMBOL net/ceph/libceph 0x20d151cb ceph_osdc_setup +EXPORT_SYMBOL net/ceph/libceph 0x25ef1abd ceph_copy_from_page_vector +EXPORT_SYMBOL net/ceph/libceph 0x2b10d4ba ceph_messenger_init +EXPORT_SYMBOL net/ceph/libceph 0x2e9205ed ceph_get_direct_page_vector +EXPORT_SYMBOL net/ceph/libceph 0x32dccdbe osd_req_op_cls_init +EXPORT_SYMBOL net/ceph/libceph 0x37a4c539 ceph_con_send +EXPORT_SYMBOL net/ceph/libceph 0x380cb5b3 ceph_monc_validate_auth +EXPORT_SYMBOL net/ceph/libceph 0x395d63af osd_req_op_extent_osd_data_pages +EXPORT_SYMBOL net/ceph/libceph 0x3a349c5f ceph_auth_destroy_authorizer +EXPORT_SYMBOL net/ceph/libceph 0x3abec91f ceph_pr_addr +EXPORT_SYMBOL net/ceph/libceph 0x3ceed59b osd_req_op_extent_init +EXPORT_SYMBOL net/ceph/libceph 0x3df0ec7c ceph_calc_ceph_pg +EXPORT_SYMBOL net/ceph/libceph 0x3f688151 ceph_put_snap_context +EXPORT_SYMBOL net/ceph/libceph 0x4205ffd7 ceph_destroy_options +EXPORT_SYMBOL net/ceph/libceph 0x43e458f6 ceph_file_part +EXPORT_SYMBOL net/ceph/libceph 0x43efd647 ceph_calc_file_object_mapping +EXPORT_SYMBOL net/ceph/libceph 0x43f1dece ceph_con_keepalive +EXPORT_SYMBOL net/ceph/libceph 0x466b85b8 libceph_compatible +EXPORT_SYMBOL net/ceph/libceph 0x46a41fbd ceph_alloc_page_vector +EXPORT_SYMBOL net/ceph/libceph 0x4883c93e ceph_create_client +EXPORT_SYMBOL net/ceph/libceph 0x496508a6 ceph_osdc_alloc_request +EXPORT_SYMBOL net/ceph/libceph 0x4a283545 ceph_pagelist_release +EXPORT_SYMBOL net/ceph/libceph 0x4e94de0e osd_req_op_cls_request_data_pagelist +EXPORT_SYMBOL net/ceph/libceph 0x4f6281cf __ceph_open_session +EXPORT_SYMBOL net/ceph/libceph 0x50982a4e ceph_monc_got_mdsmap +EXPORT_SYMBOL net/ceph/libceph 0x51a27e1c ceph_open_session +EXPORT_SYMBOL net/ceph/libceph 0x5379cea3 ceph_caps_for_mode +EXPORT_SYMBOL net/ceph/libceph 0x570ceb67 ceph_buffer_new +EXPORT_SYMBOL net/ceph/libceph 0x57baf885 ceph_str_hash +EXPORT_SYMBOL net/ceph/libceph 0x59259464 ceph_osdc_put_event +EXPORT_SYMBOL net/ceph/libceph 0x612c8273 ceph_osdc_unregister_linger_request +EXPORT_SYMBOL net/ceph/libceph 0x63758856 ceph_str_hash_name +EXPORT_SYMBOL net/ceph/libceph 0x687468f5 ceph_copy_user_to_page_vector +EXPORT_SYMBOL net/ceph/libceph 0x6b2e3bcd ceph_get_snap_context +EXPORT_SYMBOL net/ceph/libceph 0x6c5b66a6 ceph_con_close +EXPORT_SYMBOL net/ceph/libceph 0x6c5d5ac1 ceph_calc_pg_primary +EXPORT_SYMBOL net/ceph/libceph 0x7168baf8 ceph_pagelist_free_reserve +EXPORT_SYMBOL net/ceph/libceph 0x7552c04f osd_req_op_extent_osd_data +EXPORT_SYMBOL net/ceph/libceph 0x77692acb ceph_msg_last_put +EXPORT_SYMBOL net/ceph/libceph 0x777bace4 osd_req_op_extent_osd_data_bio +EXPORT_SYMBOL net/ceph/libceph 0x81eae1b6 ceph_pagelist_append +EXPORT_SYMBOL net/ceph/libceph 0x859524db ceph_auth_verify_authorizer_reply +EXPORT_SYMBOL net/ceph/libceph 0x8f5d82db ceph_osdc_writepages +EXPORT_SYMBOL net/ceph/libceph 0x90b83ef1 ceph_check_fsid +EXPORT_SYMBOL net/ceph/libceph 0x946be1c2 ceph_auth_invalidate_authorizer +EXPORT_SYMBOL net/ceph/libceph 0x9871470e ceph_osdc_wait_request +EXPORT_SYMBOL net/ceph/libceph 0x9872c416 ceph_zero_page_vector_range +EXPORT_SYMBOL net/ceph/libceph 0x99e36571 ceph_osdc_cleanup +EXPORT_SYMBOL net/ceph/libceph 0x9da715ca osd_req_op_extent_osd_data_pagelist +EXPORT_SYMBOL net/ceph/libceph 0x9e7854aa ceph_msg_data_add_pages +EXPORT_SYMBOL net/ceph/libceph 0x9ede2037 ceph_monc_create_snapid +EXPORT_SYMBOL net/ceph/libceph 0x9f534f4d ceph_buffer_release +EXPORT_SYMBOL net/ceph/libceph 0xa05da7a1 ceph_copy_page_vector_to_user +EXPORT_SYMBOL net/ceph/libceph 0xa44b39b5 ceph_osdc_create_event +EXPORT_SYMBOL net/ceph/libceph 0xae3515ba ceph_create_snap_context +EXPORT_SYMBOL net/ceph/libceph 0xafb8a407 ceph_msgr_flush +EXPORT_SYMBOL net/ceph/libceph 0xb37ce6b3 ceph_monc_init +EXPORT_SYMBOL net/ceph/libceph 0xb54676fa ceph_msg_type_name +EXPORT_SYMBOL net/ceph/libceph 0xb6081d6d ceph_msgr_exit +EXPORT_SYMBOL net/ceph/libceph 0xb6d9ebdb ceph_msg_data_add_pagelist +EXPORT_SYMBOL net/ceph/libceph 0xb8dcfca8 ceph_auth_is_authenticated +EXPORT_SYMBOL net/ceph/libceph 0xb9658103 ceph_osdc_start_request +EXPORT_SYMBOL net/ceph/libceph 0xbf6037da ceph_auth_create_authorizer +EXPORT_SYMBOL net/ceph/libceph 0xbf7fd6e0 ceph_osdc_set_request_linger +EXPORT_SYMBOL net/ceph/libceph 0xc4a80955 ceph_debugfs_cleanup +EXPORT_SYMBOL net/ceph/libceph 0xc55de604 ceph_parse_options +EXPORT_SYMBOL net/ceph/libceph 0xc9f82b38 ceph_msgr_init +EXPORT_SYMBOL net/ceph/libceph 0xcb50a624 ceph_parse_ips +EXPORT_SYMBOL net/ceph/libceph 0xcf5e0829 ceph_osdc_new_request +EXPORT_SYMBOL net/ceph/libceph 0xd2c107bb ceph_flags_to_mode +EXPORT_SYMBOL net/ceph/libceph 0xd480785f ceph_destroy_client +EXPORT_SYMBOL net/ceph/libceph 0xd504e873 ceph_monc_open_session +EXPORT_SYMBOL net/ceph/libceph 0xd55ac294 ceph_monc_stop +EXPORT_SYMBOL net/ceph/libceph 0xdfbb3c16 ceph_osdc_cancel_event +EXPORT_SYMBOL net/ceph/libceph 0xe010c5f8 osd_req_op_init +EXPORT_SYMBOL net/ceph/libceph 0xe1ee27be ceph_osdc_sync +EXPORT_SYMBOL net/ceph/libceph 0xe49ef4ff ceph_client_id +EXPORT_SYMBOL net/ceph/libceph 0xe82c9c32 ceph_pg_pool_name_by_id +EXPORT_SYMBOL net/ceph/libceph 0xe9af5bb5 ceph_osdc_build_request +EXPORT_SYMBOL net/ceph/libceph 0xeb1c30c5 osd_req_op_cls_response_data_pages +EXPORT_SYMBOL net/ceph/libceph 0xed229339 ceph_pagelist_reserve +EXPORT_SYMBOL net/ceph/libceph 0xf29fd638 ceph_msg_dump +EXPORT_SYMBOL net/ceph/libceph 0xf5774cba ceph_pagelist_truncate +EXPORT_SYMBOL net/ceph/libceph 0xf60b889e ceph_auth_update_authorizer +EXPORT_SYMBOL net/ceph/libceph 0xfa0bbfeb ceph_msg_data_add_bio +EXPORT_SYMBOL net/ceph/libceph 0xfb0784b0 osd_req_op_watch_init +EXPORT_SYMBOL net/ceph/libceph 0xfc4055e6 osd_req_op_raw_data_in_pages +EXPORT_SYMBOL net/ceph/libceph 0xfc479795 osd_req_op_cls_response_data +EXPORT_SYMBOL net/ceph/libceph 0xfcac9c66 ceph_monc_do_statfs +EXPORT_SYMBOL net/ceph/libceph 0xfcf9d888 ceph_put_page_vector +EXPORT_SYMBOL net/dccp/dccp_ipv4 0x9cc2bbd2 dccp_syn_ack_timeout +EXPORT_SYMBOL net/ieee802154/ieee802154 0x1f984f67 wpan_phy_register +EXPORT_SYMBOL net/ieee802154/ieee802154 0x2751e5a3 ieee802154_nl_disassoc_confirm +EXPORT_SYMBOL net/ieee802154/ieee802154 0x32ccf370 wpan_phy_for_each +EXPORT_SYMBOL net/ieee802154/ieee802154 0x3d77cbe4 wpan_phy_alloc +EXPORT_SYMBOL net/ieee802154/ieee802154 0x4946c005 ieee802154_nl_beacon_indic +EXPORT_SYMBOL net/ieee802154/ieee802154 0x77a0693f ieee802154_nl_assoc_confirm +EXPORT_SYMBOL net/ieee802154/ieee802154 0x865c772a ieee802154_nl_disassoc_indic +EXPORT_SYMBOL net/ieee802154/ieee802154 0x92dd3899 ieee802154_nl_start_confirm +EXPORT_SYMBOL net/ieee802154/ieee802154 0x9ed65875 wpan_phy_find +EXPORT_SYMBOL net/ieee802154/ieee802154 0xaf196ca9 wpan_phy_free +EXPORT_SYMBOL net/ieee802154/ieee802154 0xb975284f wpan_phy_unregister +EXPORT_SYMBOL net/ieee802154/ieee802154 0xea7c214a ieee802154_nl_assoc_indic +EXPORT_SYMBOL net/ieee802154/ieee802154 0xecdd9b56 ieee802154_nl_scan_confirm +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0x4f5053b6 arpt_register_table +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0xc573cb3e arpt_do_table +EXPORT_SYMBOL net/ipv4/netfilter/arp_tables 0xde3aa17e arpt_unregister_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0x29909c21 ipt_register_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0xa96fc3d5 ipt_do_table +EXPORT_SYMBOL net/ipv4/netfilter/ip_tables 0xb04632b3 ipt_unregister_table +EXPORT_SYMBOL net/ipv4/tunnel4 0x399f5fd9 xfrm4_tunnel_register +EXPORT_SYMBOL net/ipv4/tunnel4 0xbb2f541d xfrm4_tunnel_deregister +EXPORT_SYMBOL net/ipv6/ip6_tunnel 0xaec96776 ip6_tnl_parse_tlv_enc_lim +EXPORT_SYMBOL net/ipv6/ip6_tunnel 0xec1720a6 ip6_tnl_get_cap +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0x07dff61e ip6t_do_table +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0xa1a8a8bc ip6t_register_table +EXPORT_SYMBOL net/ipv6/netfilter/ip6_tables 0xf5c7a014 ip6t_unregister_table +EXPORT_SYMBOL net/ipv6/tunnel6 0x28234ed8 xfrm6_tunnel_deregister +EXPORT_SYMBOL net/ipv6/tunnel6 0x89b14c1d xfrm6_tunnel_register +EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0x9285e5c8 xfrm6_tunnel_alloc_spi +EXPORT_SYMBOL net/ipv6/xfrm6_tunnel 0xe588a90f xfrm6_tunnel_spi_lookup +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x03cc5e75 ircomm_flow_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x096edce6 ircomm_control_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x10fb08bb ircomm_open +EXPORT_SYMBOL net/irda/ircomm/ircomm 0x3351c61a ircomm_close +EXPORT_SYMBOL net/irda/ircomm/ircomm 0xad96eb1d ircomm_disconnect_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0xc2a2a331 ircomm_connect_request +EXPORT_SYMBOL net/irda/ircomm/ircomm 0xea42fcf3 ircomm_connect_response +EXPORT_SYMBOL net/irda/ircomm/ircomm 0xfa84b133 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 0x09f58a8b hashbin_lock_find +EXPORT_SYMBOL net/irda/irda 0x16e7ebef irttp_dup +EXPORT_SYMBOL net/irda/irda 0x1afcdbd4 irttp_connect_request +EXPORT_SYMBOL net/irda/irda 0x2036ad06 irda_param_insert +EXPORT_SYMBOL net/irda/irda 0x26e6b539 irias_add_string_attrib +EXPORT_SYMBOL net/irda/irda 0x28704b6e irttp_disconnect_request +EXPORT_SYMBOL net/irda/irda 0x33cbe2c6 proc_irda +EXPORT_SYMBOL net/irda/irda 0x3b22ad3e iriap_close +EXPORT_SYMBOL net/irda/irda 0x3b6d5f65 hashbin_remove_this +EXPORT_SYMBOL net/irda/irda 0x423a79dd async_unwrap_char +EXPORT_SYMBOL net/irda/irda 0x42a9904d irias_delete_object +EXPORT_SYMBOL net/irda/irda 0x448b8aaa irda_qos_bits_to_value +EXPORT_SYMBOL net/irda/irda 0x46c1c4a2 irlmp_unregister_service +EXPORT_SYMBOL net/irda/irda 0x48674fb8 irlap_open +EXPORT_SYMBOL net/irda/irda 0x4b1213ff irlmp_close_lsap +EXPORT_SYMBOL net/irda/irda 0x5614da04 irlap_close +EXPORT_SYMBOL net/irda/irda 0x5c839df3 irttp_close_tsap +EXPORT_SYMBOL net/irda/irda 0x615ee918 irias_new_object +EXPORT_SYMBOL net/irda/irda 0x66ef7db3 irias_add_integer_attrib +EXPORT_SYMBOL net/irda/irda 0x6b043eba irda_init_max_qos_capabilies +EXPORT_SYMBOL net/irda/irda 0x6c0e2eb7 irlmp_data_request +EXPORT_SYMBOL net/irda/irda 0x6eb89be8 irda_device_set_media_busy +EXPORT_SYMBOL net/irda/irda 0x7042bc54 irlmp_register_client +EXPORT_SYMBOL net/irda/irda 0x71442a9b irttp_open_tsap +EXPORT_SYMBOL net/irda/irda 0x763e54a4 irlmp_unregister_client +EXPORT_SYMBOL net/irda/irda 0x76ef9f52 irias_insert_object +EXPORT_SYMBOL net/irda/irda 0x7957f728 irlmp_update_client +EXPORT_SYMBOL net/irda/irda 0x7dabe31e hashbin_remove +EXPORT_SYMBOL net/irda/irda 0x7fb81606 irias_add_octseq_attrib +EXPORT_SYMBOL net/irda/irda 0x828b8db1 irttp_udata_request +EXPORT_SYMBOL net/irda/irda 0x86b5f4ce hashbin_delete +EXPORT_SYMBOL net/irda/irda 0x8b69b459 hashbin_get_next +EXPORT_SYMBOL net/irda/irda 0x8da13c26 irlmp_open_lsap +EXPORT_SYMBOL net/irda/irda 0x8dd879ff irttp_data_request +EXPORT_SYMBOL net/irda/irda 0x91815586 irda_param_pack +EXPORT_SYMBOL net/irda/irda 0x925e66b6 async_wrap_skb +EXPORT_SYMBOL net/irda/irda 0x96f4caa0 irlmp_disconnect_request +EXPORT_SYMBOL net/irda/irda 0x993ad14b irda_param_extract_all +EXPORT_SYMBOL net/irda/irda 0xa4548c32 hashbin_insert +EXPORT_SYMBOL net/irda/irda 0xad66e1db hashbin_get_first +EXPORT_SYMBOL net/irda/irda 0xb0476610 irttp_connect_response +EXPORT_SYMBOL net/irda/irda 0xb9394173 irias_delete_value +EXPORT_SYMBOL net/irda/irda 0xbafb3ea3 irlmp_connect_request +EXPORT_SYMBOL net/irda/irda 0xbc233f6a irlmp_connect_response +EXPORT_SYMBOL net/irda/irda 0xbcd3ef13 irias_object_change_attribute +EXPORT_SYMBOL net/irda/irda 0xbe40ace9 irlmp_discovery_request +EXPORT_SYMBOL net/irda/irda 0xbfaf446b iriap_getvaluebyclass_request +EXPORT_SYMBOL net/irda/irda 0xc310cf21 hashbin_new +EXPORT_SYMBOL net/irda/irda 0xcada061c irttp_flow_request +EXPORT_SYMBOL net/irda/irda 0xd1ae6745 irias_find_object +EXPORT_SYMBOL net/irda/irda 0xd57045a8 hashbin_find +EXPORT_SYMBOL net/irda/irda 0xd6deeaae irda_setup_dma +EXPORT_SYMBOL net/irda/irda 0xde4c6b3c irlmp_service_to_hint +EXPORT_SYMBOL net/irda/irda 0xe32a1c6b iriap_open +EXPORT_SYMBOL net/irda/irda 0xedd521c2 irlmp_get_discoveries +EXPORT_SYMBOL net/irda/irda 0xf151cd53 irda_notify_init +EXPORT_SYMBOL net/irda/irda 0xfa66181c alloc_irdadev +EXPORT_SYMBOL net/l2tp/l2tp_core 0x93be7303 l2tp_recv_common +EXPORT_SYMBOL net/lapb/lapb 0x07599c69 lapb_setparms +EXPORT_SYMBOL net/lapb/lapb 0x3c513344 lapb_data_received +EXPORT_SYMBOL net/lapb/lapb 0x740380e5 lapb_data_request +EXPORT_SYMBOL net/lapb/lapb 0x9e87d499 lapb_getparms +EXPORT_SYMBOL net/lapb/lapb 0xb58f1bcf lapb_connect_request +EXPORT_SYMBOL net/lapb/lapb 0xdccb55b4 lapb_disconnect_request +EXPORT_SYMBOL net/lapb/lapb 0xe78f106f lapb_unregister +EXPORT_SYMBOL net/lapb/lapb 0xf1e28003 lapb_register +EXPORT_SYMBOL net/llc/llc 0x2e4a9369 llc_build_and_send_ui_pkt +EXPORT_SYMBOL net/llc/llc 0x38b92846 llc_remove_pack +EXPORT_SYMBOL net/llc/llc 0x52d7b2fd llc_sap_list +EXPORT_SYMBOL net/llc/llc 0x6c6cdb31 llc_sap_list_lock +EXPORT_SYMBOL net/llc/llc 0x8adb5b50 llc_sap_close +EXPORT_SYMBOL net/llc/llc 0x917bd37b llc_sap_open +EXPORT_SYMBOL net/llc/llc 0x972cabeb llc_set_station_handler +EXPORT_SYMBOL net/llc/llc 0xc458aad3 llc_mac_hdr_init +EXPORT_SYMBOL net/llc/llc 0xe2f008c7 llc_add_pack +EXPORT_SYMBOL net/llc/llc 0xffe600d8 llc_sap_find +EXPORT_SYMBOL net/mac80211/mac80211 0x009376f2 ieee80211_sta_set_buffered +EXPORT_SYMBOL net/mac80211/mac80211 0x07cb4650 ieee80211_tx_status +EXPORT_SYMBOL net/mac80211/mac80211 0x10a0d296 ieee80211_get_tkip_p2k +EXPORT_SYMBOL net/mac80211/mac80211 0x140ed9e4 ieee80211_unregister_hw +EXPORT_SYMBOL net/mac80211/mac80211 0x143a3ba4 ieee80211_register_hw +EXPORT_SYMBOL net/mac80211/mac80211 0x1d8f1c62 ieee80211_sched_scan_stopped +EXPORT_SYMBOL net/mac80211/mac80211 0x1dab2844 ieee80211_wake_queues +EXPORT_SYMBOL net/mac80211/mac80211 0x1fa18006 ieee80211_sta_block_awake +EXPORT_SYMBOL net/mac80211/mac80211 0x21a2ae71 ieee80211_sta_ps_transition +EXPORT_SYMBOL net/mac80211/mac80211 0x2234122a ieee80211_ap_probereq_get +EXPORT_SYMBOL net/mac80211/mac80211 0x24646595 ieee80211_cqm_rssi_notify +EXPORT_SYMBOL net/mac80211/mac80211 0x2e466b29 ieee80211_stop_rx_ba_session +EXPORT_SYMBOL net/mac80211/mac80211 0x314f1855 ieee80211_disable_rssi_reports +EXPORT_SYMBOL net/mac80211/mac80211 0x352ec21f ieee80211_stop_queues +EXPORT_SYMBOL net/mac80211/mac80211 0x36864d9b ieee80211_radar_detected +EXPORT_SYMBOL net/mac80211/mac80211 0x43175902 ieee80211_tx_status_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0x4d48f297 ieee80211_rx +EXPORT_SYMBOL net/mac80211/mac80211 0x5194807b ieee80211_rate_control_register +EXPORT_SYMBOL net/mac80211/mac80211 0x51f98208 ieee80211_sched_scan_results +EXPORT_SYMBOL net/mac80211/mac80211 0x545951cd ieee80211_report_low_ack +EXPORT_SYMBOL net/mac80211/mac80211 0x5c28cca5 ieee80211_get_tkip_p1k_iv +EXPORT_SYMBOL net/mac80211/mac80211 0x670b2e69 ieee80211_beacon_get_tim +EXPORT_SYMBOL net/mac80211/mac80211 0x67ab28d4 ieee80211_start_tx_ba_cb_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0x69429d3d ieee80211_ctstoself_get +EXPORT_SYMBOL net/mac80211/mac80211 0x6d295a01 ieee80211_rx_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0x6df0d795 ieee80211_scan_completed +EXPORT_SYMBOL net/mac80211/mac80211 0x7bc95e9b ieee80211_get_tx_rates +EXPORT_SYMBOL net/mac80211/mac80211 0x8339d206 ieee80211_find_sta +EXPORT_SYMBOL net/mac80211/mac80211 0x83962b8f ieee80211_chswitch_done +EXPORT_SYMBOL net/mac80211/mac80211 0x934e772a ieee80211_rts_get +EXPORT_SYMBOL net/mac80211/mac80211 0x95b53137 ieee80211_rate_control_unregister +EXPORT_SYMBOL net/mac80211/mac80211 0x9c5e6334 ieee80211_sta_eosp +EXPORT_SYMBOL net/mac80211/mac80211 0x9d83d973 ieee80211_stop_tx_ba_cb_irqsafe +EXPORT_SYMBOL net/mac80211/mac80211 0xa1fc36c4 ieee80211_start_tx_ba_session +EXPORT_SYMBOL net/mac80211/mac80211 0xa4bebc52 ieee80211_free_hw +EXPORT_SYMBOL net/mac80211/mac80211 0xa73b1084 __ieee80211_get_rx_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0xaa157485 ieee80211_get_tkip_rx_p1k +EXPORT_SYMBOL net/mac80211/mac80211 0xae24cce0 ieee80211_get_buffered_bc +EXPORT_SYMBOL net/mac80211/mac80211 0xb1a5c663 rate_control_set_rates +EXPORT_SYMBOL net/mac80211/mac80211 0xb1e9a3c5 ieee80211_send_bar +EXPORT_SYMBOL net/mac80211/mac80211 0xb24f072f ieee80211_wake_queue +EXPORT_SYMBOL net/mac80211/mac80211 0xb33430a6 ieee80211_connection_loss +EXPORT_SYMBOL net/mac80211/mac80211 0xb6ee49ba ieee80211_queue_stopped +EXPORT_SYMBOL net/mac80211/mac80211 0xb93d04a5 ieee80211_enable_rssi_reports +EXPORT_SYMBOL net/mac80211/mac80211 0xbb98347e __ieee80211_get_tx_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0xc0c41bf1 ieee80211_queue_work +EXPORT_SYMBOL net/mac80211/mac80211 0xc0d0d7d5 ieee80211_iter_keys +EXPORT_SYMBOL net/mac80211/mac80211 0xc1f703c4 ieee80211_proberesp_get +EXPORT_SYMBOL net/mac80211/mac80211 0xc7e9782e ieee80211_get_key_tx_seq +EXPORT_SYMBOL net/mac80211/mac80211 0xc8c0ccc7 ieee80211_ctstoself_duration +EXPORT_SYMBOL net/mac80211/mac80211 0xca58033a ieee80211_pspoll_get +EXPORT_SYMBOL net/mac80211/mac80211 0xcccafe99 ieee80211_stop_tx_ba_session +EXPORT_SYMBOL net/mac80211/mac80211 0xd07a6169 ieee80211_nullfunc_get +EXPORT_SYMBOL net/mac80211/mac80211 0xd33139ed ieee80211_alloc_hw +EXPORT_SYMBOL net/mac80211/mac80211 0xd3d42dc9 ieee80211_beacon_loss +EXPORT_SYMBOL net/mac80211/mac80211 0xd40eb346 __ieee80211_get_radio_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0xd6eb0beb ieee80211_restart_hw +EXPORT_SYMBOL net/mac80211/mac80211 0xddb47d52 ieee80211_get_key_rx_seq +EXPORT_SYMBOL net/mac80211/mac80211 0xe663b4c2 __ieee80211_create_tpt_led_trigger +EXPORT_SYMBOL net/mac80211/mac80211 0xea113f5c ieee80211_queue_delayed_work +EXPORT_SYMBOL net/mac80211/mac80211 0xec347e33 ieee80211_probereq_get +EXPORT_SYMBOL net/mac80211/mac80211 0xefeffa4a rate_control_send_low +EXPORT_SYMBOL net/mac80211/mac80211 0xf153fe1e ieee80211_free_txskb +EXPORT_SYMBOL net/mac80211/mac80211 0xf395de03 ieee80211_aes_cmac_calculate_k1_k2 +EXPORT_SYMBOL net/mac80211/mac80211 0xf4999e17 ieee80211_report_wowlan_wakeup +EXPORT_SYMBOL net/mac80211/mac80211 0xf70573c5 ieee80211_rts_duration +EXPORT_SYMBOL net/mac80211/mac80211 0xf7a9dfe6 __ieee80211_get_assoc_led_name +EXPORT_SYMBOL net/mac80211/mac80211 0xfce77f58 wiphy_to_ieee80211_hw +EXPORT_SYMBOL net/mac80211/mac80211 0xfeca41a6 ieee80211_generic_frame_duration +EXPORT_SYMBOL net/mac80211/mac80211 0xfeed2f68 ieee80211_stop_queue +EXPORT_SYMBOL net/mac802154/mac802154 0x105cc0a0 ieee802154_alloc_device +EXPORT_SYMBOL net/mac802154/mac802154 0x245e5abd ieee802154_register_device +EXPORT_SYMBOL net/mac802154/mac802154 0xce75b20a ieee802154_rx_irqsafe +EXPORT_SYMBOL net/mac802154/mac802154 0xd219a717 ieee802154_unregister_device +EXPORT_SYMBOL net/mac802154/mac802154 0xd9aaa4c4 ieee802154_free_device +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x1cfec785 unregister_ip_vs_app +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x4a383712 ip_vs_conn_new +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x5d1d7123 ip_vs_proto_get +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x5d774814 ip_vs_proto_data_get +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x6d75418c ip_vs_conn_in_get +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x7325efb3 ip_vs_conn_put +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x7a1feb75 ip_vs_scheduler_err +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x851e6f61 register_ip_vs_app +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0x857e837a ip_vs_tcp_conn_listen +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xa23ca199 register_ip_vs_app_inc +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xa5a2ff01 register_ip_vs_scheduler +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xb645cc86 ip_vs_nfct_expect_related +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xb9fa1a27 unregister_ip_vs_scheduler +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xc4c57680 ip_vs_conn_out_get +EXPORT_SYMBOL net/netfilter/ipvs/ip_vs 0xd831a1a2 ip_vs_proto_name +EXPORT_SYMBOL net/netfilter/nf_conntrack 0x1de3837b __nf_ct_ext_add_length +EXPORT_SYMBOL net/netfilter/nf_conntrack 0xda7797d6 __nf_ct_ext_destroy +EXPORT_SYMBOL net/netfilter/nf_conntrack 0xe05acbd5 nf_conntrack_untracked +EXPORT_SYMBOL net/netfilter/nf_conntrack_pptp 0x827cc6a1 pptp_msg_name +EXPORT_SYMBOL net/netfilter/nf_conntrack_proto_gre 0x6f971dc3 nf_ct_gre_keymap_flush +EXPORT_SYMBOL net/netfilter/nf_nat 0x14cc1a57 nf_nat_follow_master +EXPORT_SYMBOL net/netfilter/nf_nat 0x4171ff7a nf_nat_mangle_udp_packet +EXPORT_SYMBOL net/netfilter/nf_nat 0x6faa0ef7 nf_xfrm_me_harder +EXPORT_SYMBOL net/netfilter/nf_nat 0x860804ac nf_nat_used_tuple +EXPORT_SYMBOL net/netfilter/nf_nat 0x9ca9a1d2 nf_nat_setup_info +EXPORT_SYMBOL net/netfilter/nf_nat 0xcbb17496 __nf_nat_mangle_tcp_packet +EXPORT_SYMBOL net/netfilter/x_tables 0x08c473b7 xt_alloc_table_info +EXPORT_SYMBOL net/netfilter/x_tables 0x169b6df7 xt_unregister_targets +EXPORT_SYMBOL net/netfilter/x_tables 0x1c548b58 xt_register_matches +EXPORT_SYMBOL net/netfilter/x_tables 0x253e8b44 xt_compat_init_offsets +EXPORT_SYMBOL net/netfilter/x_tables 0x32de4cc4 xt_register_targets +EXPORT_SYMBOL net/netfilter/x_tables 0x5af82911 xt_register_target +EXPORT_SYMBOL net/netfilter/x_tables 0x66f84452 xt_unregister_target +EXPORT_SYMBOL net/netfilter/x_tables 0x74a4ecf1 xt_find_match +EXPORT_SYMBOL net/netfilter/x_tables 0xb28f5ef1 xt_free_table_info +EXPORT_SYMBOL net/netfilter/x_tables 0xc558e171 xt_find_target +EXPORT_SYMBOL net/netfilter/x_tables 0xd0d87053 xt_register_match +EXPORT_SYMBOL net/netfilter/x_tables 0xedd61eab xt_unregister_matches +EXPORT_SYMBOL net/netfilter/x_tables 0xefa858d1 xt_unregister_match +EXPORT_SYMBOL net/nfc/hci/hci 0x018b4aa0 nfc_hci_get_clientdata +EXPORT_SYMBOL net/nfc/hci/hci 0x046cd633 nfc_hci_send_response +EXPORT_SYMBOL net/nfc/hci/hci 0x1d5cce44 nfc_hci_unregister_device +EXPORT_SYMBOL net/nfc/hci/hci 0x1f21f5e1 nfc_hci_allocate_device +EXPORT_SYMBOL net/nfc/hci/hci 0x29cef51b nfc_hci_disconnect_all_gates +EXPORT_SYMBOL net/nfc/hci/hci 0x2cbabf6b nfc_hci_target_discovered +EXPORT_SYMBOL net/nfc/hci/hci 0x3502ec96 nfc_hci_set_param +EXPORT_SYMBOL net/nfc/hci/hci 0x43028a27 nfc_hci_result_to_errno +EXPORT_SYMBOL net/nfc/hci/hci 0x45146c1a nfc_hci_send_cmd +EXPORT_SYMBOL net/nfc/hci/hci 0x53c07b33 nfc_hci_send_event +EXPORT_SYMBOL net/nfc/hci/hci 0x5f7ba875 nfc_hci_driver_failure +EXPORT_SYMBOL net/nfc/hci/hci 0x62db62dd nfc_hci_disconnect_gate +EXPORT_SYMBOL net/nfc/hci/hci 0x7d577bdb nfc_hci_free_device +EXPORT_SYMBOL net/nfc/hci/hci 0x8719cc2c nfc_hci_register_device +EXPORT_SYMBOL net/nfc/hci/hci 0x97f1a386 nfc_hci_recv_frame +EXPORT_SYMBOL net/nfc/hci/hci 0xb5cbfe77 nfc_hci_send_cmd_async +EXPORT_SYMBOL net/nfc/hci/hci 0xbca0b4fd nfc_hci_sak_to_protocol +EXPORT_SYMBOL net/nfc/hci/hci 0xdf5435c3 nfc_hci_set_clientdata +EXPORT_SYMBOL net/nfc/hci/hci 0xe16ff701 nfc_hci_connect_gate +EXPORT_SYMBOL net/nfc/hci/hci 0xf96915c6 nfc_hci_get_param +EXPORT_SYMBOL net/nfc/nci/nci 0x4fdca237 nci_recv_frame +EXPORT_SYMBOL net/nfc/nci/nci 0x7b6e15ff nci_free_device +EXPORT_SYMBOL net/nfc/nci/nci 0xa9dccc83 nci_register_device +EXPORT_SYMBOL net/nfc/nci/nci 0xba490602 nci_to_errno +EXPORT_SYMBOL net/nfc/nci/nci 0xc465f446 nci_allocate_device +EXPORT_SYMBOL net/nfc/nci/nci 0xd3507b9a nci_unregister_device +EXPORT_SYMBOL net/nfc/nfc 0x0a6ca30d nfc_targets_found +EXPORT_SYMBOL net/nfc/nfc 0x0ce840f0 nfc_register_device +EXPORT_SYMBOL net/nfc/nfc 0x10ba1b1b nfc_tm_activated +EXPORT_SYMBOL net/nfc/nfc 0x1a030ecd nfc_proto_unregister +EXPORT_SYMBOL net/nfc/nfc 0x2b0bb756 nfc_set_remote_general_bytes +EXPORT_SYMBOL net/nfc/nfc 0x2d7a0b46 nfc_add_se +EXPORT_SYMBOL net/nfc/nfc 0x48e0ad7c nfc_get_local_general_bytes +EXPORT_SYMBOL net/nfc/nfc 0x67b20407 nfc_unregister_device +EXPORT_SYMBOL net/nfc/nfc 0x73615570 nfc_dep_link_is_up +EXPORT_SYMBOL net/nfc/nfc 0x9005316b nfc_target_lost +EXPORT_SYMBOL net/nfc/nfc 0x9be34cd3 nfc_remove_se +EXPORT_SYMBOL net/nfc/nfc 0xabac09d6 nfc_allocate_device +EXPORT_SYMBOL net/nfc/nfc 0xb554978b nfc_tm_data_received +EXPORT_SYMBOL net/nfc/nfc 0xb826313f nfc_tm_deactivated +EXPORT_SYMBOL net/nfc/nfc 0xc8dc0447 nfc_proto_register +EXPORT_SYMBOL net/nfc/nfc 0xc96b2646 nfc_fw_download_done +EXPORT_SYMBOL net/nfc/nfc 0xccffa9f7 nfc_class +EXPORT_SYMBOL net/nfc/nfc 0xd9424e6c nfc_driver_failure +EXPORT_SYMBOL net/nfc/nfc 0xfeac556b nfc_alloc_recv_skb +EXPORT_SYMBOL net/phonet/phonet 0x21e3b381 pn_skb_send +EXPORT_SYMBOL net/phonet/phonet 0x289ac92b pn_sock_unhash +EXPORT_SYMBOL net/phonet/phonet 0x64cf3a14 phonet_proto_register +EXPORT_SYMBOL net/phonet/phonet 0x7f48ef25 phonet_stream_ops +EXPORT_SYMBOL net/phonet/phonet 0xa8e41c26 pn_sock_hash +EXPORT_SYMBOL net/phonet/phonet 0xb23df36a phonet_header_ops +EXPORT_SYMBOL net/phonet/phonet 0xcefe3088 phonet_proto_unregister +EXPORT_SYMBOL net/phonet/phonet 0xec63142d pn_sock_get_port +EXPORT_SYMBOL net/rds/rds 0x7505d413 rds_str_array +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x00ba3a78 rxrpc_get_server_data_key +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x02ff2883 key_type_rxrpc +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x1785f84e rxrpc_kernel_accept_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x23c656ef rxrpc_kernel_data_delivered +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x2b4dea89 rxrpc_kernel_abort_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x3fed9b65 rxrpc_kernel_free_skb +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x4265652c rxrpc_kernel_begin_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x50c0997a rxrpc_kernel_end_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x7901cbfa rxrpc_kernel_send_data +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0x91a1da90 rxrpc_kernel_intercept_rx_messages +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xcc5bfe41 rxrpc_kernel_reject_call +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xd13f3d2d rxrpc_get_null_key +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xd1c35870 rxrpc_kernel_get_error_number +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xe11a35d6 rxrpc_kernel_get_abort_code +EXPORT_SYMBOL net/rxrpc/af-rxrpc 0xf2c60ad6 rxrpc_kernel_is_data_last +EXPORT_SYMBOL net/sctp/sctp 0x64c5ca03 sctp_do_peeloff +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0x1f6508ed gss_mech_put +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0x9dc775ea gss_pseudoflavor_to_service +EXPORT_SYMBOL net/sunrpc/auth_gss/auth_rpcgss 0xf8ce9212 gss_mech_get +EXPORT_SYMBOL net/sunrpc/sunrpc 0x93364a84 svc_pool_stats_open +EXPORT_SYMBOL net/wimax/wimax 0x52b886bd wimax_rfkill +EXPORT_SYMBOL net/wimax/wimax 0xf690832e wimax_reset +EXPORT_SYMBOL net/wireless/cfg80211 0x00a1948b cfg80211_unlink_bss +EXPORT_SYMBOL net/wireless/cfg80211 0x00edaf55 cfg80211_sched_scan_results +EXPORT_SYMBOL net/wireless/cfg80211 0x016d3f1c cfg80211_roamed_bss +EXPORT_SYMBOL net/wireless/cfg80211 0x03db234a cfg80211_tx_mlme_mgmt +EXPORT_SYMBOL net/wireless/cfg80211 0x03dca601 cfg80211_pmksa_candidate_notify +EXPORT_SYMBOL net/wireless/cfg80211 0x069bb95d ieee80211_data_from_8023 +EXPORT_SYMBOL net/wireless/cfg80211 0x06c44f7e cfg80211_cqm_pktloss_notify +EXPORT_SYMBOL net/wireless/cfg80211 0x09c64fbd ieee80211_frequency_to_channel +EXPORT_SYMBOL net/wireless/cfg80211 0x09d86112 ieee80211_amsdu_to_8023s +EXPORT_SYMBOL net/wireless/cfg80211 0x0aa0cfb8 cfg80211_rx_unexpected_4addr_frame +EXPORT_SYMBOL net/wireless/cfg80211 0x0b8085c2 cfg80211_inform_bss_frame +EXPORT_SYMBOL net/wireless/cfg80211 0x0e672fc8 cfg80211_conn_failed +EXPORT_SYMBOL net/wireless/cfg80211 0x14693900 cfg80211_gtk_rekey_notify +EXPORT_SYMBOL net/wireless/cfg80211 0x14cde5e9 cfg80211_mgmt_tx_status +EXPORT_SYMBOL net/wireless/cfg80211 0x169a5ec2 cfg80211_cac_event +EXPORT_SYMBOL net/wireless/cfg80211 0x177dde65 cfg80211_put_bss +EXPORT_SYMBOL net/wireless/cfg80211 0x1879fcbd bridge_tunnel_header +EXPORT_SYMBOL net/wireless/cfg80211 0x19e03378 cfg80211_get_p2p_attr +EXPORT_SYMBOL net/wireless/cfg80211 0x1f7c0e4c cfg80211_ft_event +EXPORT_SYMBOL net/wireless/cfg80211 0x1fc3b8dd cfg80211_crit_proto_stopped +EXPORT_SYMBOL net/wireless/cfg80211 0x2726c78b wiphy_new +EXPORT_SYMBOL net/wireless/cfg80211 0x2c90be6d cfg80211_tdls_oper_request +EXPORT_SYMBOL net/wireless/cfg80211 0x2f72adf6 cfg80211_rx_unprot_mlme_mgmt +EXPORT_SYMBOL net/wireless/cfg80211 0x355040f2 cfg80211_ready_on_channel +EXPORT_SYMBOL net/wireless/cfg80211 0x357a4a2e cfg80211_rx_spurious_frame +EXPORT_SYMBOL net/wireless/cfg80211 0x3f3c555e cfg80211_radar_event +EXPORT_SYMBOL net/wireless/cfg80211 0x406a8302 cfg80211_chandef_valid +EXPORT_SYMBOL net/wireless/cfg80211 0x45bfb24e cfg80211_testmode_reply +EXPORT_SYMBOL net/wireless/cfg80211 0x48da051b ieee80211_data_to_8023 +EXPORT_SYMBOL net/wireless/cfg80211 0x4aa3e674 __ieee80211_get_channel +EXPORT_SYMBOL net/wireless/cfg80211 0x4bcb7826 cfg80211_inform_bss +EXPORT_SYMBOL net/wireless/cfg80211 0x4c3b5878 ieee80211_get_response_rate +EXPORT_SYMBOL net/wireless/cfg80211 0x4d1fc3f0 cfg80211_ref_bss +EXPORT_SYMBOL net/wireless/cfg80211 0x4f0fc87e cfg80211_testmode_alloc_event_skb +EXPORT_SYMBOL net/wireless/cfg80211 0x514d1b35 wiphy_register +EXPORT_SYMBOL net/wireless/cfg80211 0x5574fa27 cfg80211_probe_status +EXPORT_SYMBOL net/wireless/cfg80211 0x5978df04 cfg80211_assoc_timeout +EXPORT_SYMBOL net/wireless/cfg80211 0x5cbc6ab3 wiphy_apply_custom_regulatory +EXPORT_SYMBOL net/wireless/cfg80211 0x69b18f43 rfc1042_header +EXPORT_SYMBOL net/wireless/cfg80211 0x6d6cb9ad ieee80211_operating_class_to_band +EXPORT_SYMBOL net/wireless/cfg80211 0x708d7c3d regulatory_hint +EXPORT_SYMBOL net/wireless/cfg80211 0x7859432f cfg80211_scan_done +EXPORT_SYMBOL net/wireless/cfg80211 0x7ef39823 ieee80211_hdrlen +EXPORT_SYMBOL net/wireless/cfg80211 0x7fe1a403 cfg80211_find_ie +EXPORT_SYMBOL net/wireless/cfg80211 0x850cc740 cfg80211_auth_timeout +EXPORT_SYMBOL net/wireless/cfg80211 0x87d2f339 cfg80211_connect_result +EXPORT_SYMBOL net/wireless/cfg80211 0x8baa6e03 cfg80211_michael_mic_failure +EXPORT_SYMBOL net/wireless/cfg80211 0x8ef1f2e4 cfg80211_reg_can_beacon +EXPORT_SYMBOL net/wireless/cfg80211 0x905e58f0 cfg80211_report_obss_beacon +EXPORT_SYMBOL net/wireless/cfg80211 0x92c0c538 ieee80211_bss_get_ie +EXPORT_SYMBOL net/wireless/cfg80211 0x982e6b6d ieee80211_radiotap_iterator_init +EXPORT_SYMBOL net/wireless/cfg80211 0xa1425906 ieee80211_channel_to_frequency +EXPORT_SYMBOL net/wireless/cfg80211 0xa197b1ff ieee80211_get_mesh_hdrlen +EXPORT_SYMBOL net/wireless/cfg80211 0xa2497e6f wiphy_unregister +EXPORT_SYMBOL net/wireless/cfg80211 0xa4c3d8c2 cfg80211_classify8021d +EXPORT_SYMBOL net/wireless/cfg80211 0xa6cd60cc cfg80211_testmode_alloc_reply_skb +EXPORT_SYMBOL net/wireless/cfg80211 0xa780032e wiphy_rfkill_stop_polling +EXPORT_SYMBOL net/wireless/cfg80211 0xa7dbef41 ieee80211_get_hdrlen_from_skb +EXPORT_SYMBOL net/wireless/cfg80211 0xa918ccb3 cfg80211_rx_mgmt +EXPORT_SYMBOL net/wireless/cfg80211 0xafab11b4 cfg80211_testmode_event +EXPORT_SYMBOL net/wireless/cfg80211 0xb23de84a cfg80211_rx_assoc_resp +EXPORT_SYMBOL net/wireless/cfg80211 0xb7a6c1d5 freq_reg_info +EXPORT_SYMBOL net/wireless/cfg80211 0xb7d1afeb cfg80211_disconnected +EXPORT_SYMBOL net/wireless/cfg80211 0xbc35424b cfg80211_cqm_txe_notify +EXPORT_SYMBOL net/wireless/cfg80211 0xc15c8611 cfg80211_chandef_create +EXPORT_SYMBOL net/wireless/cfg80211 0xc39a0d45 cfg80211_ch_switch_notify +EXPORT_SYMBOL net/wireless/cfg80211 0xc4d72416 cfg80211_cqm_rssi_notify +EXPORT_SYMBOL net/wireless/cfg80211 0xc63f1b81 ieee80211_radiotap_iterator_next +EXPORT_SYMBOL net/wireless/cfg80211 0xc8955906 cfg80211_del_sta +EXPORT_SYMBOL net/wireless/cfg80211 0xcde94707 cfg80211_get_bss +EXPORT_SYMBOL net/wireless/cfg80211 0xcf618a57 cfg80211_calculate_bitrate +EXPORT_SYMBOL net/wireless/cfg80211 0xd053f968 cfg80211_unregister_wdev +EXPORT_SYMBOL net/wireless/cfg80211 0xd1629a95 cfg80211_rx_mlme_mgmt +EXPORT_SYMBOL net/wireless/cfg80211 0xd1674441 cfg80211_report_wowlan_wakeup +EXPORT_SYMBOL net/wireless/cfg80211 0xd1ed9b95 cfg80211_sched_scan_stopped +EXPORT_SYMBOL net/wireless/cfg80211 0xd24d59ff wiphy_rfkill_set_hw_state +EXPORT_SYMBOL net/wireless/cfg80211 0xd47fcfab cfg80211_roamed +EXPORT_SYMBOL net/wireless/cfg80211 0xd4b2d2b1 cfg80211_chandef_usable +EXPORT_SYMBOL net/wireless/cfg80211 0xd57a3e57 cfg80211_new_sta +EXPORT_SYMBOL net/wireless/cfg80211 0xd6ac09ca cfg80211_ibss_joined +EXPORT_SYMBOL net/wireless/cfg80211 0xd75fa223 cfg80211_remain_on_channel_expired +EXPORT_SYMBOL net/wireless/cfg80211 0xd795b1de cfg80211_check_station_change +EXPORT_SYMBOL net/wireless/cfg80211 0xe0a37f36 wiphy_free +EXPORT_SYMBOL net/wireless/cfg80211 0xe3167eca ieee80211_mandatory_rates +EXPORT_SYMBOL net/wireless/cfg80211 0xee42db3c cfg80211_chandef_compatible +EXPORT_SYMBOL net/wireless/cfg80211 0xeeca291f cfg80211_notify_new_peer_candidate +EXPORT_SYMBOL net/wireless/cfg80211 0xfda4857a wiphy_rfkill_start_polling +EXPORT_SYMBOL net/wireless/cfg80211 0xfed4d591 cfg80211_find_vendor_ie +EXPORT_SYMBOL net/wireless/lib80211 0x0b037b28 lib80211_register_crypto_ops +EXPORT_SYMBOL net/wireless/lib80211 0x1fd116aa lib80211_crypt_info_init +EXPORT_SYMBOL net/wireless/lib80211 0x2d0f99e5 print_ssid +EXPORT_SYMBOL net/wireless/lib80211 0x2ee6ecff lib80211_get_crypto_ops +EXPORT_SYMBOL net/wireless/lib80211 0x6cc10eeb lib80211_crypt_delayed_deinit +EXPORT_SYMBOL net/wireless/lib80211 0x7b6ad2ea lib80211_unregister_crypto_ops +EXPORT_SYMBOL net/wireless/lib80211 0xd7b5040f lib80211_crypt_info_free +EXPORT_SYMBOL sound/ac97_bus 0x46a9e513 ac97_bus_type +EXPORT_SYMBOL sound/core/seq/snd-seq 0x1a724fcc snd_seq_kernel_client_ctl +EXPORT_SYMBOL sound/core/seq/snd-seq 0x291699ce snd_seq_create_kernel_client +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 0x5b79fbd7 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 0x9d8374ad 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 0xbcf5478d snd_seq_kernel_client_enqueue_blocking +EXPORT_SYMBOL sound/core/seq/snd-seq 0xcac0a3be snd_seq_kernel_client_enqueue +EXPORT_SYMBOL sound/core/seq/snd-seq 0xe934da1d snd_seq_dump_var_event +EXPORT_SYMBOL sound/core/seq/snd-seq-device 0x081ba4b6 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 0xf137241a 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 0x01b82065 snd_midi_event_reset_encode +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x0d2b74da snd_midi_event_reset_decode +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x2ceec35d snd_midi_event_decode +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x668570c0 snd_midi_event_encode +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0x7f92860c snd_midi_event_no_status +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0xb494afee snd_midi_event_free +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0xc7b2b6c2 snd_midi_event_encode_byte +EXPORT_SYMBOL sound/core/seq/snd-seq-midi-event 0xe0a50454 snd_midi_event_new +EXPORT_SYMBOL sound/core/seq/snd-seq-virmidi 0x655cf223 snd_virmidi_new +EXPORT_SYMBOL sound/core/snd 0x04fd5e1d snd_ctl_make_virtual_master +EXPORT_SYMBOL sound/core/snd 0x07806007 snd_device_free +EXPORT_SYMBOL sound/core/snd 0x0842c8a0 snd_info_create_module_entry +EXPORT_SYMBOL sound/core/snd 0x08efa469 snd_card_proc_new +EXPORT_SYMBOL sound/core/snd 0x09af8fa3 snd_card_file_add +EXPORT_SYMBOL sound/core/snd 0x127ccf96 snd_component_add +EXPORT_SYMBOL sound/core/snd 0x173cd511 snd_unregister_device +EXPORT_SYMBOL sound/core/snd 0x1743717c snd_ctl_boolean_mono_info +EXPORT_SYMBOL sound/core/snd 0x18e1683f snd_dma_program +EXPORT_SYMBOL sound/core/snd 0x191e88cf snd_dma_pointer +EXPORT_SYMBOL sound/core/snd 0x1ca8a033 snd_card_create +EXPORT_SYMBOL sound/core/snd 0x1cc3b917 snd_cards +EXPORT_SYMBOL sound/core/snd 0x21191ca6 snd_info_create_card_entry +EXPORT_SYMBOL sound/core/snd 0x216865c7 snd_jack_set_key +EXPORT_SYMBOL sound/core/snd 0x22696644 snd_jack_set_parent +EXPORT_SYMBOL sound/core/snd 0x24a94b26 snd_info_get_line +EXPORT_SYMBOL sound/core/snd 0x276e6678 snd_card_register +EXPORT_SYMBOL sound/core/snd 0x28cca95d snd_add_device_sysfs_file +EXPORT_SYMBOL sound/core/snd 0x2abd10aa snd_ctl_new1 +EXPORT_SYMBOL sound/core/snd 0x2ae3deaa release_and_free_resource +EXPORT_SYMBOL sound/core/snd 0x2dfd7e2e snd_card_set_id +EXPORT_SYMBOL sound/core/snd 0x342a2354 copy_to_user_fromio +EXPORT_SYMBOL sound/core/snd 0x3971b4df snd_ecards_limit +EXPORT_SYMBOL sound/core/snd 0x3b3d0c8b snd_jack_new +EXPORT_SYMBOL sound/core/snd 0x4a3ea5c0 snd_request_card +EXPORT_SYMBOL sound/core/snd 0x4b015768 snd_iprintf +EXPORT_SYMBOL sound/core/snd 0x561ec38b snd_ctl_free_one +EXPORT_SYMBOL sound/core/snd 0x58c32857 snd_ctl_find_numid +EXPORT_SYMBOL sound/core/snd 0x5c33052a snd_ctl_remove_id +EXPORT_SYMBOL sound/core/snd 0x5e938bfd snd_jack_report +EXPORT_SYMBOL sound/core/snd 0x6a405ddc snd_card_unref +EXPORT_SYMBOL sound/core/snd 0x70c15ac1 snd_dma_disable +EXPORT_SYMBOL sound/core/snd 0x7c82e231 _snd_ctl_add_slave +EXPORT_SYMBOL sound/core/snd 0x81b69e41 snd_ctl_enum_info +EXPORT_SYMBOL sound/core/snd 0x82171533 snd_ctl_register_ioctl +EXPORT_SYMBOL sound/core/snd 0x8f595b11 snd_major +EXPORT_SYMBOL sound/core/snd 0x972b1251 snd_ctl_add +EXPORT_SYMBOL sound/core/snd 0x999308a1 snd_ctl_notify +EXPORT_SYMBOL sound/core/snd 0x9e6d79f8 snd_info_get_str +EXPORT_SYMBOL sound/core/snd 0x9f77cc0b snd_ctl_boolean_stereo_info +EXPORT_SYMBOL sound/core/snd 0x9f9b5901 snd_card_disconnect +EXPORT_SYMBOL sound/core/snd 0xa0fd2427 snd_pci_quirk_lookup_id +EXPORT_SYMBOL sound/core/snd 0xa198730b snd_card_file_remove +EXPORT_SYMBOL sound/core/snd 0xa282449a snd_card_free_when_closed +EXPORT_SYMBOL sound/core/snd 0xabd64263 snd_ctl_unregister_ioctl +EXPORT_SYMBOL sound/core/snd 0xb14a271d snd_ctl_replace +EXPORT_SYMBOL sound/core/snd 0xb2e5ae4a snd_lookup_minor_data +EXPORT_SYMBOL sound/core/snd 0xb3a3e44c snd_device_register +EXPORT_SYMBOL sound/core/snd 0xc6da78bd snd_ctl_remove +EXPORT_SYMBOL sound/core/snd 0xcdd4e1c1 snd_seq_root +EXPORT_SYMBOL sound/core/snd 0xce265cfe snd_info_register +EXPORT_SYMBOL sound/core/snd 0xcedcf22f snd_device_new +EXPORT_SYMBOL sound/core/snd 0xd024ce43 snd_pci_quirk_lookup +EXPORT_SYMBOL sound/core/snd 0xd6a0b7a1 snd_ctl_rename_id +EXPORT_SYMBOL sound/core/snd 0xde13f298 snd_ctl_register_ioctl_compat +EXPORT_SYMBOL sound/core/snd 0xe50202bf snd_ctl_unregister_ioctl_compat +EXPORT_SYMBOL sound/core/snd 0xe8b73625 snd_info_free_entry +EXPORT_SYMBOL sound/core/snd 0xe9385a2b snd_ctl_find_id +EXPORT_SYMBOL sound/core/snd 0xefb2234f snd_register_device_for_dev +EXPORT_SYMBOL sound/core/snd 0xf44000c6 snd_power_wait +EXPORT_SYMBOL sound/core/snd 0xf6cd6118 snd_card_free +EXPORT_SYMBOL sound/core/snd 0xfffd89db copy_from_user_toio +EXPORT_SYMBOL sound/core/snd-hwdep 0x122c6dff snd_hwdep_new +EXPORT_SYMBOL sound/core/snd-page-alloc 0x06b310c9 snd_free_pages +EXPORT_SYMBOL sound/core/snd-page-alloc 0x22bed3fe snd_dma_reserve_buf +EXPORT_SYMBOL sound/core/snd-page-alloc 0x5898dcba snd_malloc_pages +EXPORT_SYMBOL sound/core/snd-page-alloc 0x87e73023 snd_dma_alloc_pages +EXPORT_SYMBOL sound/core/snd-page-alloc 0x8f7784aa snd_dma_get_reserved_buf +EXPORT_SYMBOL sound/core/snd-page-alloc 0x96b06297 snd_dma_alloc_pages_fallback +EXPORT_SYMBOL sound/core/snd-page-alloc 0xca34c226 snd_sgbuf_get_chunk_size +EXPORT_SYMBOL sound/core/snd-page-alloc 0xe09c9206 snd_dma_free_pages +EXPORT_SYMBOL sound/core/snd-pcm 0x0283dfe3 _snd_pcm_hw_params_any +EXPORT_SYMBOL sound/core/snd-pcm 0x04cda566 snd_interval_refine +EXPORT_SYMBOL sound/core/snd-pcm 0x08dc4080 snd_pcm_hw_param_first +EXPORT_SYMBOL sound/core/snd-pcm 0x09f58435 snd_pcm_hw_constraint_pow2 +EXPORT_SYMBOL sound/core/snd-pcm 0x0c2c66ed snd_pcm_set_ops +EXPORT_SYMBOL sound/core/snd-pcm 0x1a4227fe snd_pcm_period_elapsed +EXPORT_SYMBOL sound/core/snd-pcm 0x1cab465b snd_pcm_hw_constraint_ratnums +EXPORT_SYMBOL sound/core/snd-pcm 0x1d027e4b snd_pcm_format_signed +EXPORT_SYMBOL sound/core/snd-pcm 0x2127f4e8 snd_pcm_lib_preallocate_free_for_all +EXPORT_SYMBOL sound/core/snd-pcm 0x2879b915 snd_pcm_release_substream +EXPORT_SYMBOL sound/core/snd-pcm 0x287cd962 snd_pcm_lib_ioctl +EXPORT_SYMBOL sound/core/snd-pcm 0x3796bdcc snd_pcm_format_little_endian +EXPORT_SYMBOL sound/core/snd-pcm 0x39bf9301 _snd_pcm_hw_param_setempty +EXPORT_SYMBOL sound/core/snd-pcm 0x42d61ef9 snd_pcm_kernel_ioctl +EXPORT_SYMBOL sound/core/snd-pcm 0x48666de1 snd_pcm_lib_read +EXPORT_SYMBOL sound/core/snd-pcm 0x4870665f snd_pcm_hw_constraint_integer +EXPORT_SYMBOL sound/core/snd-pcm 0x4f816e9b snd_pcm_format_big_endian +EXPORT_SYMBOL sound/core/snd-pcm 0x51303744 snd_pcm_mmap_data +EXPORT_SYMBOL sound/core/snd-pcm 0x52e3e4a5 snd_pcm_hw_param_value +EXPORT_SYMBOL sound/core/snd-pcm 0x5c7e01be snd_pcm_lib_get_vmalloc_page +EXPORT_SYMBOL sound/core/snd-pcm 0x5e4415a4 snd_pcm_lib_write +EXPORT_SYMBOL sound/core/snd-pcm 0x5e7f4920 snd_pcm_format_set_silence +EXPORT_SYMBOL sound/core/snd-pcm 0x6439d462 _snd_pcm_lib_alloc_vmalloc_buffer +EXPORT_SYMBOL sound/core/snd-pcm 0x650f8603 snd_pcm_format_silence_64 +EXPORT_SYMBOL sound/core/snd-pcm 0x67489230 snd_pcm_hw_constraint_list +EXPORT_SYMBOL sound/core/snd-pcm 0x678e1190 snd_pcm_hw_refine +EXPORT_SYMBOL sound/core/snd-pcm 0x68a24153 snd_pcm_format_physical_width +EXPORT_SYMBOL sound/core/snd-pcm 0x6c7215bf snd_pcm_new_stream +EXPORT_SYMBOL sound/core/snd-pcm 0x6ef8fcd8 snd_pcm_format_linear +EXPORT_SYMBOL sound/core/snd-pcm 0x73472313 snd_pcm_lib_malloc_pages +EXPORT_SYMBOL sound/core/snd-pcm 0x779e468b snd_pcm_sgbuf_ops_page +EXPORT_SYMBOL sound/core/snd-pcm 0x7ba3b209 snd_pcm_lib_mmap_iomem +EXPORT_SYMBOL sound/core/snd-pcm 0x7c78a174 snd_pcm_notify +EXPORT_SYMBOL sound/core/snd-pcm 0x7f4ef9b2 snd_pcm_lib_free_pages +EXPORT_SYMBOL sound/core/snd-pcm 0x8096fb59 snd_pcm_lib_writev +EXPORT_SYMBOL sound/core/snd-pcm 0x834dc955 snd_pcm_format_size +EXPORT_SYMBOL sound/core/snd-pcm 0x94098ff8 snd_interval_list +EXPORT_SYMBOL sound/core/snd-pcm 0x95445237 snd_pcm_hw_constraint_msbits +EXPORT_SYMBOL sound/core/snd-pcm 0x96a3dd30 snd_pcm_suspend_all +EXPORT_SYMBOL sound/core/snd-pcm 0x9aaa384e snd_pcm_new +EXPORT_SYMBOL sound/core/snd-pcm 0xa53116ba snd_pcm_hw_rule_add +EXPORT_SYMBOL sound/core/snd-pcm 0xa61aa028 snd_pcm_format_unsigned +EXPORT_SYMBOL sound/core/snd-pcm 0xa7429219 snd_pcm_new_internal +EXPORT_SYMBOL sound/core/snd-pcm 0xa9adc229 snd_pcm_link_rwlock +EXPORT_SYMBOL sound/core/snd-pcm 0xab8dcb19 snd_pcm_set_sync +EXPORT_SYMBOL sound/core/snd-pcm 0xb13c229d snd_pcm_lib_readv +EXPORT_SYMBOL sound/core/snd-pcm 0xb34d11d0 snd_pcm_lib_preallocate_pages +EXPORT_SYMBOL sound/core/snd-pcm 0xb410d9dc snd_pcm_hw_param_last +EXPORT_SYMBOL sound/core/snd-pcm 0xb9638db4 snd_pcm_rate_to_rate_bit +EXPORT_SYMBOL sound/core/snd-pcm 0xc63e8fca snd_pcm_debug_name +EXPORT_SYMBOL sound/core/snd-pcm 0xc8480ce5 snd_pcm_hw_constraint_step +EXPORT_SYMBOL sound/core/snd-pcm 0xc868fe6e snd_pcm_hw_rule_noresample +EXPORT_SYMBOL sound/core/snd-pcm 0xce0a3223 snd_pcm_suspend +EXPORT_SYMBOL sound/core/snd-pcm 0xd15bd9d3 snd_pcm_open_substream +EXPORT_SYMBOL sound/core/snd-pcm 0xd3a18133 snd_pcm_hw_constraint_minmax +EXPORT_SYMBOL sound/core/snd-pcm 0xd960ee49 snd_pcm_lib_free_vmalloc_buffer +EXPORT_SYMBOL sound/core/snd-pcm 0xe1209216 snd_pcm_stop +EXPORT_SYMBOL sound/core/snd-pcm 0xe56a9336 snd_pcm_format_width +EXPORT_SYMBOL sound/core/snd-pcm 0xe9dba079 snd_pcm_hw_constraint_ratdens +EXPORT_SYMBOL sound/core/snd-pcm 0xea018fc6 snd_pcm_limit_hw_rates +EXPORT_SYMBOL sound/core/snd-pcm 0xebcae582 snd_pcm_lib_preallocate_pages_for_all +EXPORT_SYMBOL sound/core/snd-pcm 0xf3797152 snd_interval_ratnum +EXPORT_SYMBOL sound/core/snd-pcm 0xff6104d0 snd_pcm_rate_bit_to_rate +EXPORT_SYMBOL sound/core/snd-rawmidi 0x146f2f32 snd_rawmidi_drain_input +EXPORT_SYMBOL sound/core/snd-rawmidi 0x19db8e59 snd_rawmidi_transmit +EXPORT_SYMBOL sound/core/snd-rawmidi 0x1decfe84 snd_rawmidi_kernel_read +EXPORT_SYMBOL sound/core/snd-rawmidi 0x248f75e8 snd_rawmidi_transmit_empty +EXPORT_SYMBOL sound/core/snd-rawmidi 0x255bae5e snd_rawmidi_drop_output +EXPORT_SYMBOL sound/core/snd-rawmidi 0x387917ce snd_rawmidi_kernel_open +EXPORT_SYMBOL sound/core/snd-rawmidi 0x3f503dcf snd_rawmidi_drain_output +EXPORT_SYMBOL sound/core/snd-rawmidi 0x48852862 snd_rawmidi_transmit_ack +EXPORT_SYMBOL sound/core/snd-rawmidi 0x4a9c2bdb snd_rawmidi_info_select +EXPORT_SYMBOL sound/core/snd-rawmidi 0x5246b1b0 snd_rawmidi_kernel_write +EXPORT_SYMBOL sound/core/snd-rawmidi 0x526b42ad snd_rawmidi_output_params +EXPORT_SYMBOL sound/core/snd-rawmidi 0x63148357 snd_rawmidi_input_params +EXPORT_SYMBOL sound/core/snd-rawmidi 0x70cc9906 snd_rawmidi_kernel_release +EXPORT_SYMBOL sound/core/snd-rawmidi 0x83148dc1 snd_rawmidi_receive +EXPORT_SYMBOL sound/core/snd-rawmidi 0x89bdeb31 snd_rawmidi_set_ops +EXPORT_SYMBOL sound/core/snd-rawmidi 0x968d6ad3 snd_rawmidi_transmit_peek +EXPORT_SYMBOL sound/core/snd-rawmidi 0xf22f9676 snd_rawmidi_new +EXPORT_SYMBOL sound/core/snd-timer 0x183586f9 snd_timer_open +EXPORT_SYMBOL sound/core/snd-timer 0x1fe0e2fc snd_timer_resolution +EXPORT_SYMBOL sound/core/snd-timer 0x2dac5099 snd_timer_new +EXPORT_SYMBOL sound/core/snd-timer 0x2e2d0174 snd_timer_start +EXPORT_SYMBOL sound/core/snd-timer 0x36ba297e snd_timer_interrupt +EXPORT_SYMBOL sound/core/snd-timer 0x5f1e292a snd_timer_global_new +EXPORT_SYMBOL sound/core/snd-timer 0x7d438bef snd_timer_continue +EXPORT_SYMBOL sound/core/snd-timer 0x8634e7b0 snd_timer_global_register +EXPORT_SYMBOL sound/core/snd-timer 0x9107428a snd_timer_close +EXPORT_SYMBOL sound/core/snd-timer 0x99ba1f7a snd_timer_notify +EXPORT_SYMBOL sound/core/snd-timer 0xab8e8aaa snd_timer_global_free +EXPORT_SYMBOL sound/core/snd-timer 0xce7df45e snd_timer_pause +EXPORT_SYMBOL sound/core/snd-timer 0xd3908948 snd_timer_stop +EXPORT_SYMBOL sound/drivers/mpu401/snd-mpu401-uart 0x6d629c59 snd_mpu401_uart_interrupt_tx +EXPORT_SYMBOL sound/drivers/mpu401/snd-mpu401-uart 0x6effb137 snd_mpu401_uart_new +EXPORT_SYMBOL sound/drivers/mpu401/snd-mpu401-uart 0xc0fec227 snd_mpu401_uart_interrupt +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x05060a19 snd_opl3_regmap +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x415b2c7b snd_opl3_init +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x4988912f snd_opl3_timer_new +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x5f666841 snd_opl3_reset +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0x9907f95a snd_opl3_load_patch +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0xa4e28b2c snd_opl3_find_patch +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0xb261350b snd_opl3_hwdep_new +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0xc9d37526 snd_opl3_create +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0xd3135e86 snd_opl3_interrupt +EXPORT_SYMBOL sound/drivers/opl3/snd-opl3-lib 0xdabc7d20 snd_opl3_new +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x1f581285 snd_vx_suspend +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x1fe7d269 snd_vx_dsp_load +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x3ad1905d snd_vx_setup_firmware +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x6b4c2801 snd_vx_resume +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0x9fd3cb75 snd_vx_load_boot_image +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0xee21ac1c snd_vx_check_reg_bit +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0xf1f04d23 snd_vx_irq_handler +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0xf2dcb50f snd_vx_dsp_boot +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0xfc68feae snd_vx_create +EXPORT_SYMBOL sound/drivers/vx/snd-vx-lib 0xfc857c4e snd_vx_free_firmware +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x017b315d iso_packets_buffer_destroy +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x0c575d93 cmp_connection_break +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x0d6d53c3 amdtp_out_stream_stop +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x10423d76 amdtp_out_stream_get_max_payload +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x1afe3fa5 fcp_bus_reset +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x41186328 amdtp_out_stream_pcm_prepare +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x47698af5 cmp_connection_establish +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x4ad773e3 fw_iso_resources_update +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x4b882f47 amdtp_out_stream_pcm_pointer +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x4feb8beb fw_iso_resources_destroy +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x564d8ce8 amdtp_out_stream_update +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x5d810dab amdtp_out_stream_destroy +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x62e18b52 amdtp_out_stream_init +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x651a3806 fcp_avc_transaction +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x6b5ce9c4 cmp_connection_init +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x6e006ba6 amdtp_out_stream_set_pcm_format +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x6e4e0fbd iso_packets_buffer_init +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x7a6a37fa amdtp_out_stream_set_rate +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x815954db fw_iso_resources_allocate +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0x83798a93 cmp_connection_destroy +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xa623af94 cmp_connection_update +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xbf1f6b75 fw_iso_resources_init +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xc8056a8f amdtp_out_stream_pcm_abort +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xd03bba28 fw_iso_resources_free +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xdde4f0e9 snd_fw_transaction +EXPORT_SYMBOL sound/firewire/snd-firewire-lib 0xf23bffe0 amdtp_out_stream_start +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x050588f2 snd_ak4114_create +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x351d75a9 snd_ak4114_build +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x41d1090b snd_ak4114_reinit +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x79d41019 snd_ak4114_reg_write +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0x81213317 snd_ak4114_check_rate_and_errors +EXPORT_SYMBOL sound/i2c/other/snd-ak4114 0xfd5c19b8 snd_ak4114_external_rate +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0x0923aa99 snd_ak4117_build +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0x69cc251e snd_ak4117_reg_write +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0x8916695a snd_ak4117_check_rate_and_errors +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0xa9a75e86 snd_ak4117_create +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0xad95e2c4 snd_ak4117_external_rate +EXPORT_SYMBOL sound/i2c/other/snd-ak4117 0xd82c8c82 snd_ak4117_reinit +EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0x7626fd9f snd_akm4xxx_write +EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0x7a6bd0d9 snd_akm4xxx_init +EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0x8a92d376 snd_akm4xxx_build_controls +EXPORT_SYMBOL sound/i2c/other/snd-ak4xxx-adda 0xd053ebf4 snd_akm4xxx_reset +EXPORT_SYMBOL sound/i2c/other/snd-pt2258 0x01eaf9cc snd_pt2258_reset +EXPORT_SYMBOL sound/i2c/other/snd-pt2258 0xca3b40b5 snd_pt2258_build_controls +EXPORT_SYMBOL sound/i2c/other/snd-tea575x-tuner 0x4f159599 snd_tea575x_init +EXPORT_SYMBOL sound/i2c/other/snd-tea575x-tuner 0xe77c1784 snd_tea575x_exit +EXPORT_SYMBOL sound/i2c/other/snd-tea575x-tuner 0xfc7d6003 snd_tea575x_set_freq +EXPORT_SYMBOL sound/i2c/snd-cs8427 0x7282accc snd_cs8427_iec958_build +EXPORT_SYMBOL sound/i2c/snd-cs8427 0x95adbff6 snd_cs8427_create +EXPORT_SYMBOL sound/i2c/snd-cs8427 0x9928c474 snd_cs8427_iec958_pcm +EXPORT_SYMBOL sound/i2c/snd-cs8427 0xaaf0e817 snd_cs8427_iec958_active +EXPORT_SYMBOL sound/i2c/snd-cs8427 0xccec2c67 snd_cs8427_reg_write +EXPORT_SYMBOL sound/i2c/snd-i2c 0x1f547db7 snd_i2c_sendbytes +EXPORT_SYMBOL sound/i2c/snd-i2c 0x4c5e4cab snd_i2c_probeaddr +EXPORT_SYMBOL sound/i2c/snd-i2c 0x57ea3cfe snd_i2c_device_create +EXPORT_SYMBOL sound/i2c/snd-i2c 0x6c725596 snd_i2c_bus_create +EXPORT_SYMBOL sound/i2c/snd-i2c 0x99e77151 snd_i2c_readbytes +EXPORT_SYMBOL sound/i2c/snd-i2c 0xc884365f snd_i2c_device_free +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x0681633d snd_sbdsp_reset +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x1adb52ad snd_sbmixer_new +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x72507998 snd_sbmixer_suspend +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x8add6804 snd_sbdsp_create +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x8b616bdc snd_sbmixer_add_ctl +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0x8b7a8c16 snd_sbdsp_get_byte +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0xb6de4dbc snd_sbmixer_read +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0xe246ef48 snd_sbmixer_resume +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0xe4773820 snd_sbdsp_command +EXPORT_SYMBOL sound/isa/sb/snd-sb-common 0xfb348579 snd_sbmixer_write +EXPORT_SYMBOL sound/isa/sb/snd-sb16-dsp 0x402bb827 snd_sb16dsp_get_pcm_ops +EXPORT_SYMBOL sound/isa/sb/snd-sb16-dsp 0x88c91710 snd_sb16dsp_configure +EXPORT_SYMBOL sound/isa/sb/snd-sb16-dsp 0xdb57e133 snd_sb16dsp_pcm +EXPORT_SYMBOL sound/isa/sb/snd-sb16-dsp 0xe0b3f690 snd_sb16dsp_interrupt +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x02907b69 snd_ac97_suspend +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x07fdd861 snd_ac97_pcm_assign +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x080f0a40 snd_ac97_set_rate +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x2a346bed snd_ac97_get_short_name +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x2be70beb snd_ac97_mixer +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x5511e8a6 snd_ac97_pcm_open +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x5efb24f6 snd_ac97_pcm_close +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x62a213b7 snd_ac97_update +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x731d4010 snd_ac97_write_cache +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0x95878d51 snd_ac97_update_power +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xa78e4a6f snd_ac97_update_bits +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xaafec2c9 snd_ac97_bus +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xac9b574e snd_ac97_pcm_double_rate_rules +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xb628f973 snd_ac97_resume +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xbca85efc snd_ac97_tune_hardware +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xefad6df0 snd_ac97_read +EXPORT_SYMBOL sound/pci/ac97/snd-ac97-codec 0xface1c1d snd_ac97_write +EXPORT_SYMBOL sound/pci/asihpi/snd-asihpi 0x802ab80b hpi_send_recv +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x22fe0036 snd_emu10k1_memblk_map +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x26ee3e4f snd_emu10k1_synth_free +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x431b4353 snd_emu10k1_voice_alloc +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x43a50df0 snd_emu10k1_voice_free +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x494ecd0b snd_emu10k1_synth_bzero +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0x5bb471bb snd_emu10k1_synth_copy_from_user +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0xa4fae597 snd_emu10k1_synth_alloc +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0xc7705b38 snd_emu10k1_ptr_write +EXPORT_SYMBOL sound/pci/emu10k1/snd-emu10k1 0xf0e0ce2d snd_emu10k1_ptr_read +EXPORT_SYMBOL sound/pci/ice1712/snd-ice17xx-ak4xxx 0x612f2878 snd_ice1712_akm4xxx_free +EXPORT_SYMBOL sound/pci/ice1712/snd-ice17xx-ak4xxx 0x8543249a snd_ice1712_akm4xxx_init +EXPORT_SYMBOL sound/pci/ice1712/snd-ice17xx-ak4xxx 0x9b43e9a2 snd_ice1712_akm4xxx_build_controls +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x0fc2c4f3 oxygen_write_uart +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x1dbaa84f oxygen_write32_masked +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x41c0ee10 oxygen_write_spi +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x46ffe00d oxygen_write8_masked +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x4d5effaa oxygen_reset_uart +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x52ee3d3c oxygen_pci_pm +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x567b7e27 oxygen_write16 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x572e3b0f oxygen_pci_probe +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x58e19c95 oxygen_read32 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x5f701113 oxygen_write_i2c +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0x7a2f96c3 oxygen_write8 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xa54b6d6a oxygen_read_ac97 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xa7d62e21 oxygen_write_ac97 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xa845ae58 oxygen_read8 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xb90917b6 oxygen_write_ac97_masked +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xba520353 oxygen_write16_masked +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xc42809d5 oxygen_pci_remove +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xc83d26af oxygen_read16 +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xf3c0cc9f oxygen_pci_shutdown +EXPORT_SYMBOL sound/pci/oxygen/snd-oxygen-lib 0xf666ab63 oxygen_write32 +EXPORT_SYMBOL sound/pci/trident/snd-trident 0x051bcec5 snd_trident_stop_voice +EXPORT_SYMBOL sound/pci/trident/snd-trident 0x28cedf8c snd_trident_free_voice +EXPORT_SYMBOL sound/pci/trident/snd-trident 0x4ad0d303 snd_trident_start_voice +EXPORT_SYMBOL sound/pci/trident/snd-trident 0x795bf73e snd_trident_write_voice_regs +EXPORT_SYMBOL sound/pci/trident/snd-trident 0x8b47f186 snd_trident_alloc_voice +EXPORT_SYMBOL sound/soundcore 0x316690fd sound_class +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x265be5ad 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 0x83244130 snd_emux_lock_voice +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x8bcf224f snd_emux_terminate_all +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x8e4a55cb snd_emux_register +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0x8f5b0496 snd_emux_free +EXPORT_SYMBOL sound/synth/emux/snd-emux-synth 0xad271899 snd_emux_new +EXPORT_SYMBOL sound/synth/snd-util-mem 0x2157257d __snd_util_mem_free +EXPORT_SYMBOL sound/synth/snd-util-mem 0x21574d79 snd_util_memhdr_new +EXPORT_SYMBOL sound/synth/snd-util-mem 0x547dfe81 __snd_util_memblk_new +EXPORT_SYMBOL sound/synth/snd-util-mem 0x66745317 __snd_util_mem_alloc +EXPORT_SYMBOL sound/synth/snd-util-mem 0xac9ee235 snd_util_memhdr_free +EXPORT_SYMBOL sound/synth/snd-util-mem 0xe18b93c0 snd_util_mem_alloc +EXPORT_SYMBOL sound/synth/snd-util-mem 0xf70a5417 snd_util_mem_free +EXPORT_SYMBOL sound/synth/snd-util-mem 0xf9b5e4fa snd_util_mem_avail +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 0x7708a01d snd_usbmidi_create +EXPORT_SYMBOL sound/usb/snd-usbmidi-lib 0xd9d2bb03 snd_usbmidi_disconnect +EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0x35c95b1b dm_mem_cache_client_create +EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0x3d107c85 dm_mem_cache_alloc +EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0x86e5acf9 dm_mem_cache_grow +EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0x920a7a41 dm_message_parse +EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0xa43471b6 dm_mem_cache_shrink +EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0xcbaa7d63 dm_mem_cache_free +EXPORT_SYMBOL ubuntu/dm-raid4-5/dm-raid45 0xd55b290c dm_mem_cache_client_destroy +EXPORT_SYMBOL ubuntu/lttng/lib/lttng-lib-ring-buffer 0x2776a3e5 lib_ring_buffer_nesting +EXPORT_SYMBOL vmlinux 0x00000000 softirq_work_list +EXPORT_SYMBOL vmlinux 0x000dcaa4 tty_port_hangup +EXPORT_SYMBOL vmlinux 0x000e7267 security_path_truncate +EXPORT_SYMBOL vmlinux 0x0028b47b tcp_init_xmit_timers +EXPORT_SYMBOL vmlinux 0x0064f5d2 pci_bus_write_config_dword +EXPORT_SYMBOL vmlinux 0x00801678 flush_scheduled_work +EXPORT_SYMBOL vmlinux 0x008e5725 sock_common_getsockopt +EXPORT_SYMBOL vmlinux 0x009185a0 tty_port_free_xmit_buf +EXPORT_SYMBOL vmlinux 0x0093a79b dentry_path_raw +EXPORT_SYMBOL vmlinux 0x009f40b7 sock_no_listen +EXPORT_SYMBOL vmlinux 0x00a16fdc ps2_end_command +EXPORT_SYMBOL vmlinux 0x00de6271 pci_disable_link_state +EXPORT_SYMBOL vmlinux 0x01000e51 schedule +EXPORT_SYMBOL vmlinux 0x0103d815 bio_uncopy_user +EXPORT_SYMBOL vmlinux 0x011bce7c set_groups +EXPORT_SYMBOL vmlinux 0x014ea6a7 fb_firmware_edid +EXPORT_SYMBOL vmlinux 0x015122fb write_one_page +EXPORT_SYMBOL vmlinux 0x015ddbdc wait_for_completion_interruptible +EXPORT_SYMBOL vmlinux 0x01783484 dev_mc_add_excl +EXPORT_SYMBOL vmlinux 0x018c33ec dquot_commit +EXPORT_SYMBOL vmlinux 0x01902adf netpoll_trap +EXPORT_SYMBOL vmlinux 0x01a41905 bioset_create +EXPORT_SYMBOL vmlinux 0x01d19038 acpi_enable_subsystem +EXPORT_SYMBOL vmlinux 0x01d8a3cb __dev_remove_offload +EXPORT_SYMBOL vmlinux 0x02124474 ip_send_check +EXPORT_SYMBOL vmlinux 0x02286b10 generic_write_checks +EXPORT_SYMBOL vmlinux 0x0237b57a arch_unregister_cpu +EXPORT_SYMBOL vmlinux 0x02649054 security_sock_rcv_skb +EXPORT_SYMBOL vmlinux 0x02685db0 iw_handler_get_spy +EXPORT_SYMBOL vmlinux 0x0274dc2b netif_get_num_default_rss_queues +EXPORT_SYMBOL vmlinux 0x029444f0 native_read_tsc +EXPORT_SYMBOL vmlinux 0x02a18c74 nf_conntrack_destroy +EXPORT_SYMBOL vmlinux 0x02a50598 uart_unregister_driver +EXPORT_SYMBOL vmlinux 0x02a6ce5a crc16_table +EXPORT_SYMBOL vmlinux 0x02cde004 dev_set_group +EXPORT_SYMBOL vmlinux 0x02ec38a0 simple_transaction_release +EXPORT_SYMBOL vmlinux 0x031eb06d abx500_get_chip_id +EXPORT_SYMBOL vmlinux 0x03339483 jbd2_journal_start_commit +EXPORT_SYMBOL vmlinux 0x0334da4e scsi_command_size_tbl +EXPORT_SYMBOL vmlinux 0x033506a1 mnt_set_expiry +EXPORT_SYMBOL vmlinux 0x03402665 mfd_cell_enable +EXPORT_SYMBOL vmlinux 0x034611d6 invalidate_inode_buffers +EXPORT_SYMBOL vmlinux 0x03498156 cpu_rmap_update +EXPORT_SYMBOL vmlinux 0x03592ea0 security_unix_stream_connect +EXPORT_SYMBOL vmlinux 0x0366307a console_suspend_enabled +EXPORT_SYMBOL vmlinux 0x036c65cf page_symlink_inode_operations +EXPORT_SYMBOL vmlinux 0x037a0cba kfree +EXPORT_SYMBOL vmlinux 0x038b2821 generic_make_request +EXPORT_SYMBOL vmlinux 0x03a42898 agp_generic_destroy_pages +EXPORT_SYMBOL vmlinux 0x03b01938 nf_ip6_checksum +EXPORT_SYMBOL vmlinux 0x03bd889d param_get_ulong +EXPORT_SYMBOL vmlinux 0x03c06156 bitmap_fold +EXPORT_SYMBOL vmlinux 0x03c5e050 tty_schedule_flip +EXPORT_SYMBOL vmlinux 0x03c7983c udp_lib_getsockopt +EXPORT_SYMBOL vmlinux 0x03cc400f blk_queue_physical_block_size +EXPORT_SYMBOL vmlinux 0x03db8187 gen_pool_set_algo +EXPORT_SYMBOL vmlinux 0x03ebda85 dns_query +EXPORT_SYMBOL vmlinux 0x03ed4257 journal_extend +EXPORT_SYMBOL vmlinux 0x03fb0c53 __breadahead +EXPORT_SYMBOL vmlinux 0x03fd2571 vm_unmap_ram +EXPORT_SYMBOL vmlinux 0x040bd15c d_invalidate +EXPORT_SYMBOL vmlinux 0x04145f8d skb_seq_read +EXPORT_SYMBOL vmlinux 0x042263ac abx500_mask_and_set_register_interruptible +EXPORT_SYMBOL vmlinux 0x0422fe4a inet_csk_timer_bug_msg +EXPORT_SYMBOL vmlinux 0x0429b830 dcb_ieee_setapp +EXPORT_SYMBOL vmlinux 0x043b3e96 jbd2_journal_start_reserved +EXPORT_SYMBOL vmlinux 0x04482cdb __refrigerator +EXPORT_SYMBOL vmlinux 0x0456014b end_buffer_async_write +EXPORT_SYMBOL vmlinux 0x045cb95d dqput +EXPORT_SYMBOL vmlinux 0x046c1f16 param_ops_invbool +EXPORT_SYMBOL vmlinux 0x047a07f4 scsi_init_io +EXPORT_SYMBOL vmlinux 0x048515a6 pm860x_page_bulk_write +EXPORT_SYMBOL vmlinux 0x0487f831 fb_find_best_display +EXPORT_SYMBOL vmlinux 0x04927208 cpu_active_mask +EXPORT_SYMBOL vmlinux 0x0499badc acpi_bios_warning +EXPORT_SYMBOL vmlinux 0x04a6223b __idr_pre_get +EXPORT_SYMBOL vmlinux 0x04a8d653 md_finish_reshape +EXPORT_SYMBOL vmlinux 0x04c20a81 init_net +EXPORT_SYMBOL vmlinux 0x04c8c0a2 inet_unregister_protosw +EXPORT_SYMBOL vmlinux 0x04d8c750 release_perfctr_nmi +EXPORT_SYMBOL vmlinux 0x04ea56f9 _kstrtol +EXPORT_SYMBOL vmlinux 0x04ea5d10 ksize +EXPORT_SYMBOL vmlinux 0x04f6ba79 mpage_readpage +EXPORT_SYMBOL vmlinux 0x05031f17 dev_addr_del +EXPORT_SYMBOL vmlinux 0x050877b9 dmi_first_match +EXPORT_SYMBOL vmlinux 0x05240ee7 percpu_counter_batch +EXPORT_SYMBOL vmlinux 0x054434d6 radix_tree_tag_set +EXPORT_SYMBOL vmlinux 0x05449ff9 seq_lseek +EXPORT_SYMBOL vmlinux 0x055c8559 __kfifo_dma_in_prepare_r +EXPORT_SYMBOL vmlinux 0x0567ccd9 tcf_em_tree_validate +EXPORT_SYMBOL vmlinux 0x056ee730 ipv6_hash_secret +EXPORT_SYMBOL vmlinux 0x0570f84f amd_iommu_flush_tlb +EXPORT_SYMBOL vmlinux 0x057a1824 sync_inode +EXPORT_SYMBOL vmlinux 0x0593a99b init_timer_key +EXPORT_SYMBOL vmlinux 0x05b9cc8a phy_connect +EXPORT_SYMBOL vmlinux 0x05bb12e1 nf_reinject +EXPORT_SYMBOL vmlinux 0x05d2e9a4 i2c_smbus_write_byte_data +EXPORT_SYMBOL vmlinux 0x05e87c58 tcp_setsockopt +EXPORT_SYMBOL vmlinux 0x061651be strcat +EXPORT_SYMBOL vmlinux 0x061b657d elevator_exit +EXPORT_SYMBOL vmlinux 0x061f4039 acpi_get_table_with_size +EXPORT_SYMBOL vmlinux 0x0634100a bitmap_parselist_user +EXPORT_SYMBOL vmlinux 0x064379c1 qdisc_destroy +EXPORT_SYMBOL vmlinux 0x064a5954 padata_remove_cpu +EXPORT_SYMBOL vmlinux 0x0672cf39 scsi_block_requests +EXPORT_SYMBOL vmlinux 0x067d8d35 security_release_secctx +EXPORT_SYMBOL vmlinux 0x068be615 tcf_exts_dump +EXPORT_SYMBOL vmlinux 0x068c7263 ioremap_cache +EXPORT_SYMBOL vmlinux 0x0697cea9 security_path_chown +EXPORT_SYMBOL vmlinux 0x06ba8ce1 blk_queue_max_segment_size +EXPORT_SYMBOL vmlinux 0x06c0dae5 __kernel_fpu_end +EXPORT_SYMBOL vmlinux 0x06c69f69 simple_open +EXPORT_SYMBOL vmlinux 0x06f091cd blk_cleanup_queue +EXPORT_SYMBOL vmlinux 0x06fe3b14 default_grn +EXPORT_SYMBOL vmlinux 0x071b13db __netdev_alloc_skb +EXPORT_SYMBOL vmlinux 0x0727c4f3 iowrite8 +EXPORT_SYMBOL vmlinux 0x07310b5e try_to_writeback_inodes_sb +EXPORT_SYMBOL vmlinux 0x073dfa12 generate_resume_trace +EXPORT_SYMBOL vmlinux 0x07518183 neigh_seq_start +EXPORT_SYMBOL vmlinux 0x0799aca4 local_bh_enable +EXPORT_SYMBOL vmlinux 0x07a890c8 fb_alloc_cmap +EXPORT_SYMBOL vmlinux 0x07bdac92 do_sync_write +EXPORT_SYMBOL vmlinux 0x07cc4a5d printk_timed_ratelimit +EXPORT_SYMBOL vmlinux 0x07cff523 simple_write_end +EXPORT_SYMBOL vmlinux 0x07d51abc serio_rescan +EXPORT_SYMBOL vmlinux 0x07e3dfc4 max8998_update_reg +EXPORT_SYMBOL vmlinux 0x07ee2ef4 neigh_changeaddr +EXPORT_SYMBOL vmlinux 0x08179341 dquot_claim_space_nodirty +EXPORT_SYMBOL vmlinux 0x081b30a0 mb_cache_entry_insert +EXPORT_SYMBOL vmlinux 0x081e9e18 tcp_close +EXPORT_SYMBOL vmlinux 0x082c3213 pci_root_buses +EXPORT_SYMBOL vmlinux 0x083eb21c rfkill_unregister +EXPORT_SYMBOL vmlinux 0x08408d85 pci_iomap +EXPORT_SYMBOL vmlinux 0x0846f59a cpu_info +EXPORT_SYMBOL vmlinux 0x084c1265 netpoll_send_udp +EXPORT_SYMBOL vmlinux 0x089061cf inode_change_ok +EXPORT_SYMBOL vmlinux 0x0897287b acpi_disable_all_gpes +EXPORT_SYMBOL vmlinux 0x08aae601 __bforget +EXPORT_SYMBOL vmlinux 0x08cadf84 get_user_pages +EXPORT_SYMBOL vmlinux 0x08f28cf8 freeze_bdev +EXPORT_SYMBOL vmlinux 0x08f64aa4 _raw_spin_unlock_irqrestore +EXPORT_SYMBOL vmlinux 0x08fd7868 blk_sync_queue +EXPORT_SYMBOL vmlinux 0x09033aa5 mutex_lock +EXPORT_SYMBOL vmlinux 0x0970ef5a tty_chars_in_buffer +EXPORT_SYMBOL vmlinux 0x0980176f inet_add_offload +EXPORT_SYMBOL vmlinux 0x098431ba acpi_get_current_resources +EXPORT_SYMBOL vmlinux 0x098b6dac proc_dointvec_jiffies +EXPORT_SYMBOL vmlinux 0x098b71c6 fb_dealloc_cmap +EXPORT_SYMBOL vmlinux 0x0992780d efi_enabled +EXPORT_SYMBOL vmlinux 0x09990aa6 cpufreq_get_policy +EXPORT_SYMBOL vmlinux 0x09be5ee6 pcim_iomap +EXPORT_SYMBOL vmlinux 0x09c1e96e __vlan_find_dev_deep +EXPORT_SYMBOL vmlinux 0x09c55cec schedule_timeout_interruptible +EXPORT_SYMBOL vmlinux 0x09c8eb55 font_vga_8x16 +EXPORT_SYMBOL vmlinux 0x09d44df9 in_lock_functions +EXPORT_SYMBOL vmlinux 0x09d7bc24 netdev_printk +EXPORT_SYMBOL vmlinux 0x09d95cad dmam_free_noncoherent +EXPORT_SYMBOL vmlinux 0x09fccfef con_is_bound +EXPORT_SYMBOL vmlinux 0x0a1e9a78 d_drop +EXPORT_SYMBOL vmlinux 0x0a2487e0 unblock_all_signals +EXPORT_SYMBOL vmlinux 0x0a25ef28 rawv6_mh_filter_unregister +EXPORT_SYMBOL vmlinux 0x0a4c6bad block_read_full_page +EXPORT_SYMBOL vmlinux 0x0a4d106a pneigh_enqueue +EXPORT_SYMBOL vmlinux 0x0a59905a inet_sock_destruct +EXPORT_SYMBOL vmlinux 0x0a654675 set_bdi_congested +EXPORT_SYMBOL vmlinux 0x0a770832 register_memory_notifier +EXPORT_SYMBOL vmlinux 0x0a7b45d4 jbd2_journal_try_to_free_buffers +EXPORT_SYMBOL vmlinux 0x0a7deefe check_disk_size_change +EXPORT_SYMBOL vmlinux 0x0a875b19 blk_queue_end_tag +EXPORT_SYMBOL vmlinux 0x0a8d0851 journal_init_inode +EXPORT_SYMBOL vmlinux 0x0a902c3c mod_zone_page_state +EXPORT_SYMBOL vmlinux 0x0aabe265 blk_delay_queue +EXPORT_SYMBOL vmlinux 0x0ac7a879 __bread +EXPORT_SYMBOL vmlinux 0x0acb1a3c __bitmap_shift_right +EXPORT_SYMBOL vmlinux 0x0acf7679 dma_issue_pending_all +EXPORT_SYMBOL vmlinux 0x0ad0e67c idr_replace +EXPORT_SYMBOL vmlinux 0x0b068d4f sock_no_connect +EXPORT_SYMBOL vmlinux 0x0b0d888b icmpv6_err_convert +EXPORT_SYMBOL vmlinux 0x0b14c1a1 mmc_alloc_host +EXPORT_SYMBOL vmlinux 0x0b16985a free_xenballooned_pages +EXPORT_SYMBOL vmlinux 0x0b1beb31 vmalloc_32_user +EXPORT_SYMBOL vmlinux 0x0b22d2e8 fib_default_rule_add +EXPORT_SYMBOL vmlinux 0x0b36b580 blk_get_queue +EXPORT_SYMBOL vmlinux 0x0b3887e7 acpi_bus_register_driver +EXPORT_SYMBOL vmlinux 0x0b40aac1 set_disk_ro +EXPORT_SYMBOL vmlinux 0x0b50bebc inet_csk_reset_keepalive_timer +EXPORT_SYMBOL vmlinux 0x0b58b676 scsi_report_opcode +EXPORT_SYMBOL vmlinux 0x0b658ca1 tty_driver_kref_put +EXPORT_SYMBOL vmlinux 0x0b6689e2 bio_add_page +EXPORT_SYMBOL vmlinux 0x0b72f389 remove_proc_subtree +EXPORT_SYMBOL vmlinux 0x0b742fd7 simple_strtol +EXPORT_SYMBOL vmlinux 0x0ba434f9 elv_abort_queue +EXPORT_SYMBOL vmlinux 0x0bb620b5 agp_generic_alloc_user +EXPORT_SYMBOL vmlinux 0x0bbc5908 gen_estimator_active +EXPORT_SYMBOL vmlinux 0x0bbf1db8 pci_scan_bus +EXPORT_SYMBOL vmlinux 0x0bc477a2 irq_set_irq_type +EXPORT_SYMBOL vmlinux 0x0bca8bdb neigh_seq_stop +EXPORT_SYMBOL vmlinux 0x0bdaf457 input_mt_destroy_slots +EXPORT_SYMBOL vmlinux 0x0be7b037 __scsi_device_lookup_by_target +EXPORT_SYMBOL vmlinux 0x0bfe4eb6 __secpath_destroy +EXPORT_SYMBOL vmlinux 0x0c15872d __neigh_event_send +EXPORT_SYMBOL vmlinux 0x0c2f273e free_mdio_bitbang +EXPORT_SYMBOL vmlinux 0x0c33662a cancel_dirty_page +EXPORT_SYMBOL vmlinux 0x0c4a378f fb_set_cmap +EXPORT_SYMBOL vmlinux 0x0c58a8cd netdev_increment_features +EXPORT_SYMBOL vmlinux 0x0c599479 scm_detach_fds +EXPORT_SYMBOL vmlinux 0x0c65e73c scsi_normalize_sense +EXPORT_SYMBOL vmlinux 0x0c704106 blk_integrity_unregister +EXPORT_SYMBOL vmlinux 0x0c71de93 file_update_time +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 0x0cdb7d12 __kernel_fpu_begin +EXPORT_SYMBOL vmlinux 0x0ce029cd vga_switcheroo_register_client +EXPORT_SYMBOL vmlinux 0x0cfc481a send_sig +EXPORT_SYMBOL vmlinux 0x0d2891b8 nobh_write_begin +EXPORT_SYMBOL vmlinux 0x0d31f5ea truncate_pagecache_range +EXPORT_SYMBOL vmlinux 0x0d3dda14 acpi_get_type +EXPORT_SYMBOL vmlinux 0x0d542439 __ipv6_addr_type +EXPORT_SYMBOL vmlinux 0x0d554ab9 ppp_register_compressor +EXPORT_SYMBOL vmlinux 0x0d7e8f88 __alloc_skb +EXPORT_SYMBOL vmlinux 0x0da10ec3 security_sock_graft +EXPORT_SYMBOL vmlinux 0x0da13045 bd_set_size +EXPORT_SYMBOL vmlinux 0x0da38ef1 igrab +EXPORT_SYMBOL vmlinux 0x0deeb4fb netdev_has_any_upper_dev +EXPORT_SYMBOL vmlinux 0x0e0ce1b7 skb_mac_gso_segment +EXPORT_SYMBOL vmlinux 0x0e12b1cc dev_get_flags +EXPORT_SYMBOL vmlinux 0x0e3001a9 jbd2_journal_unlock_updates +EXPORT_SYMBOL vmlinux 0x0e30bcf5 neigh_sysctl_unregister +EXPORT_SYMBOL vmlinux 0x0e6da44a set_normalized_timespec +EXPORT_SYMBOL vmlinux 0x0e814b7e seq_vprintf +EXPORT_SYMBOL vmlinux 0x0ea271e4 __i2c_transfer +EXPORT_SYMBOL vmlinux 0x0eaea612 pnp_register_driver +EXPORT_SYMBOL vmlinux 0x0eb8a1d8 max8925_set_bits +EXPORT_SYMBOL vmlinux 0x0ec868c6 netlink_unicast +EXPORT_SYMBOL vmlinux 0x0ed8cc7b acpi_evaluate_object_typed +EXPORT_SYMBOL vmlinux 0x0efbb63d mdiobus_alloc_size +EXPORT_SYMBOL vmlinux 0x0f058b37 tcp_init_sock +EXPORT_SYMBOL vmlinux 0x0f17ad87 ps2_handle_response +EXPORT_SYMBOL vmlinux 0x0f1ca075 agp_backend_release +EXPORT_SYMBOL vmlinux 0x0f23bcc1 skb_copy_and_csum_dev +EXPORT_SYMBOL vmlinux 0x0f246c35 tty_kref_put +EXPORT_SYMBOL vmlinux 0x0f3f5076 sock_alloc_send_skb +EXPORT_SYMBOL vmlinux 0x0f417816 inet_stream_ops +EXPORT_SYMBOL vmlinux 0x0f4c91ed ns_to_timespec +EXPORT_SYMBOL vmlinux 0x0f89f2e5 locks_free_lock +EXPORT_SYMBOL vmlinux 0x0f9105a4 sched_autogroup_create_attach +EXPORT_SYMBOL vmlinux 0x0faef0ed __tasklet_schedule +EXPORT_SYMBOL vmlinux 0x0fc66c66 __skb_checksum_complete +EXPORT_SYMBOL vmlinux 0x0fd00a68 acpi_clear_event +EXPORT_SYMBOL vmlinux 0x0ff2b602 slhc_compress +EXPORT_SYMBOL vmlinux 0x100bf283 uart_add_one_port +EXPORT_SYMBOL vmlinux 0x1016d69e iget_failed +EXPORT_SYMBOL vmlinux 0x102be8e7 sg_alloc_table_from_pages +EXPORT_SYMBOL vmlinux 0x102e4a63 __devm_release_region +EXPORT_SYMBOL vmlinux 0x103006c4 tty_insert_flip_string_fixed_flag +EXPORT_SYMBOL vmlinux 0x1041e4ac mmc_cache_ctrl +EXPORT_SYMBOL vmlinux 0x105a208d pcie_capability_read_dword +EXPORT_SYMBOL vmlinux 0x105f1dd5 skb_pull +EXPORT_SYMBOL vmlinux 0x106e14e0 blk_init_queue_node +EXPORT_SYMBOL vmlinux 0x1072a394 csum_partial_copy_from_user +EXPORT_SYMBOL vmlinux 0x1092069d xfrm_state_walk +EXPORT_SYMBOL vmlinux 0x10ba8fa4 mmc_unregister_driver +EXPORT_SYMBOL vmlinux 0x10d18e27 keyring_search +EXPORT_SYMBOL vmlinux 0x10d240f1 misc_deregister +EXPORT_SYMBOL vmlinux 0x10d41330 pci_release_region +EXPORT_SYMBOL vmlinux 0x10d7f662 have_submounts +EXPORT_SYMBOL vmlinux 0x10d9bba3 genl_unregister_family +EXPORT_SYMBOL vmlinux 0x10ee160a audit_log_start +EXPORT_SYMBOL vmlinux 0x10ee20bb default_blu +EXPORT_SYMBOL vmlinux 0x10f91026 elv_register_queue +EXPORT_SYMBOL vmlinux 0x11089ac7 _ctype +EXPORT_SYMBOL vmlinux 0x11267875 scsi_extd_sense_format +EXPORT_SYMBOL vmlinux 0x113474d9 udp_lib_rehash +EXPORT_SYMBOL vmlinux 0x113918a1 bio_alloc_bioset +EXPORT_SYMBOL vmlinux 0x1163f0a7 blk_max_low_pfn +EXPORT_SYMBOL vmlinux 0x117093be qdisc_class_hash_init +EXPORT_SYMBOL vmlinux 0x11824fb0 PDE_DATA +EXPORT_SYMBOL vmlinux 0x1184cb4f sock_no_sendpage +EXPORT_SYMBOL vmlinux 0x119e795b elv_dispatch_sort +EXPORT_SYMBOL vmlinux 0x11a03d01 mb_cache_shrink +EXPORT_SYMBOL vmlinux 0x11b728c8 cdrom_media_changed +EXPORT_SYMBOL vmlinux 0x11baac55 kernel_sendpage +EXPORT_SYMBOL vmlinux 0x11d04446 tcp_valid_rtt_meas +EXPORT_SYMBOL vmlinux 0x11db896b xfrm_find_acq_byseq +EXPORT_SYMBOL vmlinux 0x11e2ec12 flex_array_free_parts +EXPORT_SYMBOL vmlinux 0x11f7ed4c hex_to_bin +EXPORT_SYMBOL vmlinux 0x120b336a __rb_insert_augmented +EXPORT_SYMBOL vmlinux 0x120d67d4 unregister_memory_isolate_notifier +EXPORT_SYMBOL vmlinux 0x12106219 netif_device_attach +EXPORT_SYMBOL vmlinux 0x1218b1d3 alloc_xenballooned_pages +EXPORT_SYMBOL vmlinux 0x122fe515 input_release_device +EXPORT_SYMBOL vmlinux 0x126326d6 agp_bridge +EXPORT_SYMBOL vmlinux 0x127f60f1 dev_change_flags +EXPORT_SYMBOL vmlinux 0x127fd425 swiotlb_sync_sg_for_device +EXPORT_SYMBOL vmlinux 0x128e8f2e d_make_root +EXPORT_SYMBOL vmlinux 0x129de341 wrmsr_on_cpus +EXPORT_SYMBOL vmlinux 0x129f3352 netif_skb_features +EXPORT_SYMBOL vmlinux 0x12a38747 usleep_range +EXPORT_SYMBOL vmlinux 0x12dfeb12 vprintk_emit +EXPORT_SYMBOL vmlinux 0x12f9bfeb xfrm_alloc_spi +EXPORT_SYMBOL vmlinux 0x1305d532 ucs2_strncmp +EXPORT_SYMBOL vmlinux 0x1308c944 jbd2_journal_clear_features +EXPORT_SYMBOL vmlinux 0x131e910e bioset_integrity_free +EXPORT_SYMBOL vmlinux 0x1321b5ec sock_get_timestampns +EXPORT_SYMBOL vmlinux 0x13303ae2 md_integrity_register +EXPORT_SYMBOL vmlinux 0x133060fa seq_write +EXPORT_SYMBOL vmlinux 0x13307fde vsscanf +EXPORT_SYMBOL vmlinux 0x133588f5 phy_register_fixup_for_uid +EXPORT_SYMBOL vmlinux 0x1345f5dc bio_pair_release +EXPORT_SYMBOL vmlinux 0x135117a6 xfrm_policy_destroy +EXPORT_SYMBOL vmlinux 0x135e028f alloc_etherdev_mqs +EXPORT_SYMBOL vmlinux 0x137eb9c3 d_prune_aliases +EXPORT_SYMBOL vmlinux 0x138ed98c flush_old_exec +EXPORT_SYMBOL vmlinux 0x13b715e2 blk_finish_plug +EXPORT_SYMBOL vmlinux 0x13c38a7c clear_inode +EXPORT_SYMBOL vmlinux 0x13ca95ca dev_uc_init +EXPORT_SYMBOL vmlinux 0x13cd884b posix_lock_file_wait +EXPORT_SYMBOL vmlinux 0x13d0adf7 __kfifo_out +EXPORT_SYMBOL vmlinux 0x13e81758 page_readlink +EXPORT_SYMBOL vmlinux 0x13f42152 system_entering_hibernation +EXPORT_SYMBOL vmlinux 0x13f8998f mmc_start_bkops +EXPORT_SYMBOL vmlinux 0x13fc85c4 __ww_mutex_lock +EXPORT_SYMBOL vmlinux 0x140c5ae4 finish_open +EXPORT_SYMBOL vmlinux 0x142d8409 proc_remove +EXPORT_SYMBOL vmlinux 0x14408d36 netdev_notify_peers +EXPORT_SYMBOL vmlinux 0x144accaa generic_readlink +EXPORT_SYMBOL vmlinux 0x146d0ea8 pci_set_mwi +EXPORT_SYMBOL vmlinux 0x1477545e ab3100_event_unregister +EXPORT_SYMBOL vmlinux 0x1483340c acpi_notifier_call_chain +EXPORT_SYMBOL vmlinux 0x1495b7ef kill_pgrp +EXPORT_SYMBOL vmlinux 0x149e2513 bio_integrity_tag_size +EXPORT_SYMBOL vmlinux 0x14ac7157 dev_mc_sync +EXPORT_SYMBOL vmlinux 0x150389d6 acpi_processor_power_init_bm_check +EXPORT_SYMBOL vmlinux 0x153d2b85 agp_copy_info +EXPORT_SYMBOL vmlinux 0x154188da input_handler_for_each_handle +EXPORT_SYMBOL vmlinux 0x154c6338 dm_kcopyd_client_destroy +EXPORT_SYMBOL vmlinux 0x1551dc51 bitmap_find_free_region +EXPORT_SYMBOL vmlinux 0x1566a923 textsearch_prepare +EXPORT_SYMBOL vmlinux 0x15682d25 simple_statfs +EXPORT_SYMBOL vmlinux 0x15692c87 param_ops_int +EXPORT_SYMBOL vmlinux 0x15cac562 vfs_rename +EXPORT_SYMBOL vmlinux 0x15d82d38 __mem_cgroup_count_vm_event +EXPORT_SYMBOL vmlinux 0x15dabfb0 netdev_class_remove_file +EXPORT_SYMBOL vmlinux 0x15f571ec blk_set_stacking_limits +EXPORT_SYMBOL vmlinux 0x15fe6a06 tcp_v4_md5_lookup +EXPORT_SYMBOL vmlinux 0x15ffa954 invalidate_bdev +EXPORT_SYMBOL vmlinux 0x160ea4c8 sfi_disabled +EXPORT_SYMBOL vmlinux 0x16118e23 xfrm_state_lookup +EXPORT_SYMBOL vmlinux 0x1611ceed bdi_register +EXPORT_SYMBOL vmlinux 0x1623441e free_inode_nonrcu +EXPORT_SYMBOL vmlinux 0x16305289 warn_slowpath_null +EXPORT_SYMBOL vmlinux 0x1637ff0f _raw_spin_lock_bh +EXPORT_SYMBOL vmlinux 0x16381d14 xfrm6_rcv +EXPORT_SYMBOL vmlinux 0x16774c8a call_netdevice_notifiers +EXPORT_SYMBOL vmlinux 0x167c5967 print_hex_dump +EXPORT_SYMBOL vmlinux 0x167e7f9d __get_user_1 +EXPORT_SYMBOL vmlinux 0x168f1082 _raw_write_unlock_irqrestore +EXPORT_SYMBOL vmlinux 0x1694b71d pid_task +EXPORT_SYMBOL vmlinux 0x16d03d7a phy_drivers_register +EXPORT_SYMBOL vmlinux 0x16ed31d2 netdev_refcnt_read +EXPORT_SYMBOL vmlinux 0x16f059ed tty_port_close +EXPORT_SYMBOL vmlinux 0x16f1dc27 gen_replace_estimator +EXPORT_SYMBOL vmlinux 0x170c25ee acpi_get_next_object +EXPORT_SYMBOL vmlinux 0x1739d674 i2c_smbus_read_block_data +EXPORT_SYMBOL vmlinux 0x174e27be max8998_bulk_write +EXPORT_SYMBOL vmlinux 0x176757c5 mmc_align_data_size +EXPORT_SYMBOL vmlinux 0x177c02c2 pci_fixup_device +EXPORT_SYMBOL vmlinux 0x177c18c9 qdisc_create_dflt +EXPORT_SYMBOL vmlinux 0x177f68ef fsnotify_alloc_group +EXPORT_SYMBOL vmlinux 0x1790d76b _raw_read_lock_irqsave +EXPORT_SYMBOL vmlinux 0x1797653d compat_nf_setsockopt +EXPORT_SYMBOL vmlinux 0x1798e36d generic_block_bmap +EXPORT_SYMBOL vmlinux 0x17a99a5c ata_std_end_eh +EXPORT_SYMBOL vmlinux 0x17b1125d gen_kill_estimator +EXPORT_SYMBOL vmlinux 0x17b64d09 dqstats +EXPORT_SYMBOL vmlinux 0x17d275be padata_add_cpu +EXPORT_SYMBOL vmlinux 0x17dd1203 dec_zone_page_state +EXPORT_SYMBOL vmlinux 0x17e1feea i2c_smbus_write_word_data +EXPORT_SYMBOL vmlinux 0x17f341a0 i8042_lock_chip +EXPORT_SYMBOL vmlinux 0x181b25fb __dec_zone_page_state +EXPORT_SYMBOL vmlinux 0x181e893f jbd2_journal_stop +EXPORT_SYMBOL vmlinux 0x18366ba0 unload_nls +EXPORT_SYMBOL vmlinux 0x183fa88b mempool_alloc_slab +EXPORT_SYMBOL vmlinux 0x184b82fb mmc_vddrange_to_ocrmask +EXPORT_SYMBOL vmlinux 0x184e6c85 radix_tree_gang_lookup_slot +EXPORT_SYMBOL vmlinux 0x184f5499 i2c_add_adapter +EXPORT_SYMBOL vmlinux 0x1867a096 spi_display_xfer_agreement +EXPORT_SYMBOL vmlinux 0x18844be4 nf_ct_attach +EXPORT_SYMBOL vmlinux 0x18869414 __dynamic_dev_dbg +EXPORT_SYMBOL vmlinux 0x188a3dfb timespec_trunc +EXPORT_SYMBOL vmlinux 0x189868d7 get_random_bytes_arch +EXPORT_SYMBOL vmlinux 0x189dd580 mark_buffer_dirty +EXPORT_SYMBOL vmlinux 0x18a7adff free_task +EXPORT_SYMBOL vmlinux 0x18b72573 register_kmmio_probe +EXPORT_SYMBOL vmlinux 0x18c4c3f2 register_gifconf +EXPORT_SYMBOL vmlinux 0x18c9177f truncate_inode_pages_range +EXPORT_SYMBOL vmlinux 0x18cc5686 ip6_xmit +EXPORT_SYMBOL vmlinux 0x18dc91ed freezing_slow_path +EXPORT_SYMBOL vmlinux 0x18ee2858 pci_get_slot +EXPORT_SYMBOL vmlinux 0x18f97f2a lock_may_write +EXPORT_SYMBOL vmlinux 0x19444627 memcpy_fromiovecend +EXPORT_SYMBOL vmlinux 0x1976aa06 param_ops_bool +EXPORT_SYMBOL vmlinux 0x199ed0cd net_disable_timestamp +EXPORT_SYMBOL vmlinux 0x19bd213b generic_file_open +EXPORT_SYMBOL vmlinux 0x19bd383b security_secmark_refcount_dec +EXPORT_SYMBOL vmlinux 0x19cec06e lease_get_mtime +EXPORT_SYMBOL vmlinux 0x1a0903a5 __blk_run_queue +EXPORT_SYMBOL vmlinux 0x1a20ae50 clk_get +EXPORT_SYMBOL vmlinux 0x1a2da15f pnp_unregister_driver +EXPORT_SYMBOL vmlinux 0x1a376c05 get_agp_version +EXPORT_SYMBOL vmlinux 0x1a45cb6c acpi_disabled +EXPORT_SYMBOL vmlinux 0x1a46ee28 eth_prepare_mac_addr_change +EXPORT_SYMBOL vmlinux 0x1a54df29 key_unlink +EXPORT_SYMBOL vmlinux 0x1a63af34 vga_switcheroo_process_delayed_switch +EXPORT_SYMBOL vmlinux 0x1abad0e9 kern_unmount +EXPORT_SYMBOL vmlinux 0x1abc6e24 sock_update_classid +EXPORT_SYMBOL vmlinux 0x1ac5d3cb strcspn +EXPORT_SYMBOL vmlinux 0x1ace138d bitmap_allocate_region +EXPORT_SYMBOL vmlinux 0x1ad1522a md_check_no_bitmap +EXPORT_SYMBOL vmlinux 0x1ae14ef5 _raw_write_trylock +EXPORT_SYMBOL vmlinux 0x1b015d25 bitmap_parselist +EXPORT_SYMBOL vmlinux 0x1b16542c registered_fb +EXPORT_SYMBOL vmlinux 0x1b1e1088 sg_nents +EXPORT_SYMBOL vmlinux 0x1b2cf8a0 __dynamic_netdev_dbg +EXPORT_SYMBOL vmlinux 0x1b353088 clk_register_clkdevs +EXPORT_SYMBOL vmlinux 0x1b3cc6db neigh_app_ns +EXPORT_SYMBOL vmlinux 0x1b4afcac ___pskb_trim +EXPORT_SYMBOL vmlinux 0x1b62539d tcp_shutdown +EXPORT_SYMBOL vmlinux 0x1b6314fd in_aton +EXPORT_SYMBOL vmlinux 0x1b72e972 vfs_llseek +EXPORT_SYMBOL vmlinux 0x1b82fefa md_unplug +EXPORT_SYMBOL vmlinux 0x1b86077c dmam_pool_create +EXPORT_SYMBOL vmlinux 0x1b883c98 nf_register_sockopt +EXPORT_SYMBOL vmlinux 0x1b8b95ad i8042_unlock_chip +EXPORT_SYMBOL vmlinux 0x1b9810b7 pci_request_regions_exclusive +EXPORT_SYMBOL vmlinux 0x1b9e0ff1 scsilun_to_int +EXPORT_SYMBOL vmlinux 0x1bb11bb4 __napi_schedule +EXPORT_SYMBOL vmlinux 0x1bca284e generic_ro_fops +EXPORT_SYMBOL vmlinux 0x1bcb05f2 nf_unregister_sockopt +EXPORT_SYMBOL vmlinux 0x1bd6548a module_refcount +EXPORT_SYMBOL vmlinux 0x1bdc26cf sg_copy_from_buffer +EXPORT_SYMBOL vmlinux 0x1bec4918 skb_put +EXPORT_SYMBOL vmlinux 0x1c015911 lz4_decompress +EXPORT_SYMBOL vmlinux 0x1c114a6a vm_event_states +EXPORT_SYMBOL vmlinux 0x1c30124c setattr_copy +EXPORT_SYMBOL vmlinux 0x1c4d419b fsnotify_get_group +EXPORT_SYMBOL vmlinux 0x1c55248b mark_buffer_dirty_inode +EXPORT_SYMBOL vmlinux 0x1c57eca3 dev_uc_del +EXPORT_SYMBOL vmlinux 0x1c5c5df4 bio_integrity_add_page +EXPORT_SYMBOL vmlinux 0x1c76abad pci_enable_ido +EXPORT_SYMBOL vmlinux 0x1c784373 mount_subtree +EXPORT_SYMBOL vmlinux 0x1c8a04b0 acpi_reset +EXPORT_SYMBOL vmlinux 0x1c8deb64 scsi_device_resume +EXPORT_SYMBOL vmlinux 0x1cb145a1 kill_fasync +EXPORT_SYMBOL vmlinux 0x1cd38ecb d_path +EXPORT_SYMBOL vmlinux 0x1cff0d52 pci_pme_capable +EXPORT_SYMBOL vmlinux 0x1d4b5ce0 read_cache_page_gfp +EXPORT_SYMBOL vmlinux 0x1d74dae4 scsi_print_result +EXPORT_SYMBOL vmlinux 0x1d8906da inet6_ioctl +EXPORT_SYMBOL vmlinux 0x1d8c49c6 proc_mkdir_mode +EXPORT_SYMBOL vmlinux 0x1d900056 xfrm_unregister_mode +EXPORT_SYMBOL vmlinux 0x1d925f4a irq_to_desc +EXPORT_SYMBOL vmlinux 0x1d9bc05b d_find_alias +EXPORT_SYMBOL vmlinux 0x1daa982b blk_queue_merge_bvec +EXPORT_SYMBOL vmlinux 0x1db7706b __copy_user_nocache +EXPORT_SYMBOL vmlinux 0x1db9d07c eth_mac_addr +EXPORT_SYMBOL vmlinux 0x1dc2cb8b tcp_v4_send_check +EXPORT_SYMBOL vmlinux 0x1dc36131 fb_destroy_modedb +EXPORT_SYMBOL vmlinux 0x1dd571e6 fb_copy_cmap +EXPORT_SYMBOL vmlinux 0x1df3c338 lro_receive_frags +EXPORT_SYMBOL vmlinux 0x1df4cbf6 scsi_print_sense +EXPORT_SYMBOL vmlinux 0x1e01a3af __ethtool_get_settings +EXPORT_SYMBOL vmlinux 0x1e047854 warn_slowpath_fmt +EXPORT_SYMBOL vmlinux 0x1e0c2be4 ioremap_wc +EXPORT_SYMBOL vmlinux 0x1e26be3b get_anon_bdev +EXPORT_SYMBOL vmlinux 0x1e32c36e xfrm_policy_walk +EXPORT_SYMBOL vmlinux 0x1e4f345a blk_queue_prep_rq +EXPORT_SYMBOL vmlinux 0x1e6d26a8 strstr +EXPORT_SYMBOL vmlinux 0x1e6f05d5 amd_iommu_domain_clear_gcr3 +EXPORT_SYMBOL vmlinux 0x1e73ad5b lro_receive_skb +EXPORT_SYMBOL vmlinux 0x1e74dd79 sock_from_file +EXPORT_SYMBOL vmlinux 0x1e767e16 __mod_zone_page_state +EXPORT_SYMBOL vmlinux 0x1e98fa32 compat_ip_setsockopt +EXPORT_SYMBOL vmlinux 0x1e98fe9a tcp_recvmsg +EXPORT_SYMBOL vmlinux 0x1e992f88 __get_user_pages +EXPORT_SYMBOL vmlinux 0x1e9edfb7 seq_hlist_start_head_rcu +EXPORT_SYMBOL vmlinux 0x1ec3bed9 hdmi_audio_infoframe_init +EXPORT_SYMBOL vmlinux 0x1ec4eb34 flex_array_prealloc +EXPORT_SYMBOL vmlinux 0x1edb9cc4 seq_path +EXPORT_SYMBOL vmlinux 0x1ef61045 find_lock_page +EXPORT_SYMBOL vmlinux 0x1f0a1322 vfs_path_lookup +EXPORT_SYMBOL vmlinux 0x1f0d3761 follow_up +EXPORT_SYMBOL vmlinux 0x1f183c13 inode_newsize_ok +EXPORT_SYMBOL vmlinux 0x1f1d35c1 revalidate_disk +EXPORT_SYMBOL vmlinux 0x1f54fbdf sk_stream_wait_connect +EXPORT_SYMBOL vmlinux 0x1f6ce67a sg_pcopy_to_buffer +EXPORT_SYMBOL vmlinux 0x1f716de7 compat_sock_common_getsockopt +EXPORT_SYMBOL vmlinux 0x1f752784 sock_no_ioctl +EXPORT_SYMBOL vmlinux 0x1fb2abfb crypto_sha256_update +EXPORT_SYMBOL vmlinux 0x1fbd16da ip_tos2prio +EXPORT_SYMBOL vmlinux 0x1fd07fff kdb_grepping_flag +EXPORT_SYMBOL vmlinux 0x1fd3477e flock_lock_file_wait +EXPORT_SYMBOL vmlinux 0x1fda30e4 neigh_parms_alloc +EXPORT_SYMBOL vmlinux 0x1fe912f1 netdev_alloc_frag +EXPORT_SYMBOL vmlinux 0x1fe9f800 unregister_cpu_notifier +EXPORT_SYMBOL vmlinux 0x1fedf0f4 __request_region +EXPORT_SYMBOL vmlinux 0x20000329 simple_strtoul +EXPORT_SYMBOL vmlinux 0x2005e68a acpi_remove_fixed_event_handler +EXPORT_SYMBOL vmlinux 0x20092385 acpi_enter_sleep_state_s4bios +EXPORT_SYMBOL vmlinux 0x2012daa1 filemap_page_mkwrite +EXPORT_SYMBOL vmlinux 0x203a72cf dev_load +EXPORT_SYMBOL vmlinux 0x2044aea7 amd_iommu_pc_get_max_banks +EXPORT_SYMBOL vmlinux 0x204c19f5 tcp_alloc_md5sig_pool +EXPORT_SYMBOL vmlinux 0x2072ee9b request_threaded_irq +EXPORT_SYMBOL vmlinux 0x20781105 jbd2_journal_check_used_features +EXPORT_SYMBOL vmlinux 0x208739f6 acpi_load_table +EXPORT_SYMBOL vmlinux 0x20a789ac irq_set_chip_data +EXPORT_SYMBOL vmlinux 0x20a9245b fb_is_primary_device +EXPORT_SYMBOL vmlinux 0x20abc15b acpi_processor_register_performance +EXPORT_SYMBOL vmlinux 0x20c55ae0 sscanf +EXPORT_SYMBOL vmlinux 0x20c60121 journal_dirty_data +EXPORT_SYMBOL vmlinux 0x20d4adf8 tty_flip_buffer_push +EXPORT_SYMBOL vmlinux 0x20da2648 scsi_unregister +EXPORT_SYMBOL vmlinux 0x20da4e77 scsi_target_resume +EXPORT_SYMBOL vmlinux 0x20eadeb6 ip_compute_csum +EXPORT_SYMBOL vmlinux 0x21279534 tty_free_termios +EXPORT_SYMBOL vmlinux 0x212c2040 posix_unblock_lock +EXPORT_SYMBOL vmlinux 0x21315700 param_get_bool +EXPORT_SYMBOL vmlinux 0x214d6aad twl6040_get_sysclk +EXPORT_SYMBOL vmlinux 0x2154237e netdev_notice +EXPORT_SYMBOL vmlinux 0x215ebd78 bitrev16 +EXPORT_SYMBOL vmlinux 0x216ab189 __set_page_dirty_nobuffers +EXPORT_SYMBOL vmlinux 0x2173179b request_key_async +EXPORT_SYMBOL vmlinux 0x217ad790 bio_split +EXPORT_SYMBOL vmlinux 0x217dda13 flex_array_get +EXPORT_SYMBOL vmlinux 0x218299ee phy_disconnect +EXPORT_SYMBOL vmlinux 0x21dc3421 uart_resume_port +EXPORT_SYMBOL vmlinux 0x21e0ea22 acpi_get_id +EXPORT_SYMBOL vmlinux 0x21e99ab3 tcp_rcv_established +EXPORT_SYMBOL vmlinux 0x21ecb90a netdev_state_change +EXPORT_SYMBOL vmlinux 0x21fb64b7 fasync_helper +EXPORT_SYMBOL vmlinux 0x222e7ce2 sysfs_streq +EXPORT_SYMBOL vmlinux 0x223669ac simple_pin_fs +EXPORT_SYMBOL vmlinux 0x223b0cbe set_pages_wb +EXPORT_SYMBOL vmlinux 0x2250944d simple_write_begin +EXPORT_SYMBOL vmlinux 0x226c8063 pnp_device_attach +EXPORT_SYMBOL vmlinux 0x2276db98 kstrtoint +EXPORT_SYMBOL vmlinux 0x2289042b dev_mc_add +EXPORT_SYMBOL vmlinux 0x22ad0b86 tty_vhangup +EXPORT_SYMBOL vmlinux 0x22aea247 __blockdev_direct_IO +EXPORT_SYMBOL vmlinux 0x22b325d5 kd_mksound +EXPORT_SYMBOL vmlinux 0x22ba5855 generic_file_readonly_mmap +EXPORT_SYMBOL vmlinux 0x22cee044 netpoll_setup +EXPORT_SYMBOL vmlinux 0x22f254ac fget_raw +EXPORT_SYMBOL vmlinux 0x22fd9ad0 sleep_on_timeout +EXPORT_SYMBOL vmlinux 0x23101797 bio_integrity_set_tag +EXPORT_SYMBOL vmlinux 0x2314d4a2 page_put_link +EXPORT_SYMBOL vmlinux 0x231d4001 fb_edid_add_monspecs +EXPORT_SYMBOL vmlinux 0x23269288 abx500_event_registers_startup_state_get +EXPORT_SYMBOL vmlinux 0x23532c4d ftrace_print_flags_seq +EXPORT_SYMBOL vmlinux 0x23551c1c blk_peek_request +EXPORT_SYMBOL vmlinux 0x2358c2f5 __nla_put_nohdr +EXPORT_SYMBOL vmlinux 0x2363c52b request_key +EXPORT_SYMBOL vmlinux 0x2391d876 writeback_in_progress +EXPORT_SYMBOL vmlinux 0x23933691 md_write_start +EXPORT_SYMBOL vmlinux 0x23a574fd security_secmark_relabel_packet +EXPORT_SYMBOL vmlinux 0x23aa794a scsi_allocate_command +EXPORT_SYMBOL vmlinux 0x23ab353d pskb_expand_head +EXPORT_SYMBOL vmlinux 0x23b9d6e2 mangle_path +EXPORT_SYMBOL vmlinux 0x23c8f257 slhc_uncompress +EXPORT_SYMBOL vmlinux 0x23c9891c kstrtoint_from_user +EXPORT_SYMBOL vmlinux 0x23e1c242 pci_bus_put +EXPORT_SYMBOL vmlinux 0x23ec5c1a tty_driver_flush_buffer +EXPORT_SYMBOL vmlinux 0x23ee70d0 blk_requeue_request +EXPORT_SYMBOL vmlinux 0x23fd3028 vmalloc_node +EXPORT_SYMBOL vmlinux 0x240809a9 pci_unregister_driver +EXPORT_SYMBOL vmlinux 0x241190f6 devm_gpio_free +EXPORT_SYMBOL vmlinux 0x24212d86 __frontswap_invalidate_page +EXPORT_SYMBOL vmlinux 0x2429a3d4 kill_anon_super +EXPORT_SYMBOL vmlinux 0x242f9100 jbd2_journal_blocks_per_page +EXPORT_SYMBOL vmlinux 0x24428be5 strncpy_from_user +EXPORT_SYMBOL vmlinux 0x2459bbcc console_set_on_cmdline +EXPORT_SYMBOL vmlinux 0x246adc4d mmc_gpio_request_cd +EXPORT_SYMBOL vmlinux 0x2482e688 vsprintf +EXPORT_SYMBOL vmlinux 0x2484adc3 __kfifo_to_user_r +EXPORT_SYMBOL vmlinux 0x248c273b ida_remove +EXPORT_SYMBOL vmlinux 0x24906bbf netif_rx_ni +EXPORT_SYMBOL vmlinux 0x24c9ce2a pci_write_vpd +EXPORT_SYMBOL vmlinux 0x24d215b9 unlock_new_inode +EXPORT_SYMBOL vmlinux 0x24fdac79 wake_bit_function +EXPORT_SYMBOL vmlinux 0x2511e212 mnt_unpin +EXPORT_SYMBOL vmlinux 0x251cbdee posix_acl_to_xattr +EXPORT_SYMBOL vmlinux 0x251d6200 pci_scan_root_bus +EXPORT_SYMBOL vmlinux 0x25277497 rfkill_register +EXPORT_SYMBOL vmlinux 0x253bdb78 param_get_int +EXPORT_SYMBOL vmlinux 0x253f7d6f devm_clk_get +EXPORT_SYMBOL vmlinux 0x25441406 __elv_add_request +EXPORT_SYMBOL vmlinux 0x2547978b tcp_child_process +EXPORT_SYMBOL vmlinux 0x256fbbf6 kfree_skb_list +EXPORT_SYMBOL vmlinux 0x25820c64 fs_overflowuid +EXPORT_SYMBOL vmlinux 0x259ae36a kfree_skb +EXPORT_SYMBOL vmlinux 0x25a5f788 devfreq_suspend_device +EXPORT_SYMBOL vmlinux 0x25abaf51 xfrm_state_update +EXPORT_SYMBOL vmlinux 0x25c677c4 mac_pton +EXPORT_SYMBOL vmlinux 0x25e8dd6e posix_test_lock +EXPORT_SYMBOL vmlinux 0x25fb5c44 acpi_bus_hot_remove_device +EXPORT_SYMBOL vmlinux 0x2603dcd3 read_dev_sector +EXPORT_SYMBOL vmlinux 0x263122f8 wait_for_completion_interruptible_timeout +EXPORT_SYMBOL vmlinux 0x263beb75 ecryptfs_get_versions +EXPORT_SYMBOL vmlinux 0x263f5f42 genl_unregister_ops +EXPORT_SYMBOL vmlinux 0x2650d835 sysctl_ip_early_demux +EXPORT_SYMBOL vmlinux 0x2663dfe2 skb_kill_datagram +EXPORT_SYMBOL vmlinux 0x2665d53a key_create_or_update +EXPORT_SYMBOL vmlinux 0x26691780 blk_post_runtime_suspend +EXPORT_SYMBOL vmlinux 0x26752938 ip_generic_getfrag +EXPORT_SYMBOL vmlinux 0x2679dd8b wireless_spy_update +EXPORT_SYMBOL vmlinux 0x267c61f1 vfs_link +EXPORT_SYMBOL vmlinux 0x2685c3d7 __sg_alloc_table +EXPORT_SYMBOL vmlinux 0x2693b021 generic_file_mmap +EXPORT_SYMBOL vmlinux 0x26948d96 copy_user_enhanced_fast_string +EXPORT_SYMBOL vmlinux 0x26a36c52 mutex_lock_killable +EXPORT_SYMBOL vmlinux 0x26b6ef19 __sk_mem_reclaim +EXPORT_SYMBOL vmlinux 0x26b77fb9 __cleancache_invalidate_page +EXPORT_SYMBOL vmlinux 0x26e298e0 unregister_memory_notifier +EXPORT_SYMBOL vmlinux 0x26e76fb8 sysctl_udp_wmem_min +EXPORT_SYMBOL vmlinux 0x26f0453a blk_set_default_limits +EXPORT_SYMBOL vmlinux 0x271cba95 acpi_bus_private_data_handler +EXPORT_SYMBOL vmlinux 0x272d394e mtrr_del +EXPORT_SYMBOL vmlinux 0x27415fcd acpi_gpiochip_request_interrupts +EXPORT_SYMBOL vmlinux 0x274d08dc __kfifo_dma_out_prepare +EXPORT_SYMBOL vmlinux 0x27517922 blk_queue_update_dma_alignment +EXPORT_SYMBOL vmlinux 0x2761b692 cpu_sibling_map +EXPORT_SYMBOL vmlinux 0x27810361 acpi_os_wait_events_complete +EXPORT_SYMBOL vmlinux 0x27864d57 memparse +EXPORT_SYMBOL vmlinux 0x27ae7d0c ec_transaction +EXPORT_SYMBOL vmlinux 0x27b88668 jbd2_journal_errno +EXPORT_SYMBOL vmlinux 0x27bbf221 disable_irq_nosync +EXPORT_SYMBOL vmlinux 0x27c2197f param_set_short +EXPORT_SYMBOL vmlinux 0x27c33efe csum_ipv6_magic +EXPORT_SYMBOL vmlinux 0x27ce43f4 scsi_add_host_with_dma +EXPORT_SYMBOL vmlinux 0x27d30f9c pci_enable_msi_block_auto +EXPORT_SYMBOL vmlinux 0x27dfe615 register_key_type +EXPORT_SYMBOL vmlinux 0x27e1a049 printk +EXPORT_SYMBOL vmlinux 0x27f09be4 scsi_eh_restore_cmnd +EXPORT_SYMBOL vmlinux 0x281823c5 __kfifo_out_peek +EXPORT_SYMBOL vmlinux 0x28318305 snprintf +EXPORT_SYMBOL vmlinux 0x2840c8c2 abort_creds +EXPORT_SYMBOL vmlinux 0x28a2ed02 scsi_build_sense_buffer +EXPORT_SYMBOL vmlinux 0x28a92403 tty_pair_get_tty +EXPORT_SYMBOL vmlinux 0x28abfe6e scsi_kmap_atomic_sg +EXPORT_SYMBOL vmlinux 0x28d9690c module_put +EXPORT_SYMBOL vmlinux 0x28fa6562 acpi_bus_get_status +EXPORT_SYMBOL vmlinux 0x292a8d92 __free_pages +EXPORT_SYMBOL vmlinux 0x294ff3b9 bitmap_start_sync +EXPORT_SYMBOL vmlinux 0x29537c9e alloc_chrdev_region +EXPORT_SYMBOL vmlinux 0x295511b4 kernel_getsockname +EXPORT_SYMBOL vmlinux 0x2957d1be ip_queue_xmit +EXPORT_SYMBOL vmlinux 0x295f515f security_inode_listsecurity +EXPORT_SYMBOL vmlinux 0x298532db generic_fillattr +EXPORT_SYMBOL vmlinux 0x2987390d set_pages_array_wc +EXPORT_SYMBOL vmlinux 0x29b1e295 dma_async_memcpy_buf_to_buf +EXPORT_SYMBOL vmlinux 0x29bf6fad pci_choose_state +EXPORT_SYMBOL vmlinux 0x29dd88ea bio_map_kern +EXPORT_SYMBOL vmlinux 0x29e41f4d mmc_wait_for_cmd +EXPORT_SYMBOL vmlinux 0x29fb78ce amd_iommu_device_info +EXPORT_SYMBOL vmlinux 0x2a01667e km_new_mapping +EXPORT_SYMBOL vmlinux 0x2a13e22c send_sig_info +EXPORT_SYMBOL vmlinux 0x2a2f2aa5 journal_update_format +EXPORT_SYMBOL vmlinux 0x2a303d4d check_signature +EXPORT_SYMBOL vmlinux 0x2a37d074 dma_pool_free +EXPORT_SYMBOL vmlinux 0x2a3ed007 neigh_ifdown +EXPORT_SYMBOL vmlinux 0x2a6671ac generic_listxattr +EXPORT_SYMBOL vmlinux 0x2a6e6109 __init_rwsem +EXPORT_SYMBOL vmlinux 0x2a76533d netdev_upper_dev_link +EXPORT_SYMBOL vmlinux 0x2a79ac13 clkdev_add +EXPORT_SYMBOL vmlinux 0x2a7b4a83 d_instantiate +EXPORT_SYMBOL vmlinux 0x2aa3b949 padata_set_cpumasks +EXPORT_SYMBOL vmlinux 0x2ab82db9 key_payload_reserve +EXPORT_SYMBOL vmlinux 0x2ac5b660 inet_csk_accept +EXPORT_SYMBOL vmlinux 0x2ae4d3b7 mmc_hw_reset_check +EXPORT_SYMBOL vmlinux 0x2afeb029 pci_set_dma_seg_boundary +EXPORT_SYMBOL vmlinux 0x2b0524c8 bdev_read_only +EXPORT_SYMBOL vmlinux 0x2b0ba2b0 scsi_sense_desc_find +EXPORT_SYMBOL vmlinux 0x2b2643a3 netdev_master_upper_dev_get +EXPORT_SYMBOL vmlinux 0x2b2ce78b kstrtos8 +EXPORT_SYMBOL vmlinux 0x2b38911c __skb_checksum_complete_head +EXPORT_SYMBOL vmlinux 0x2b51837e proc_doulongvec_ms_jiffies_minmax +EXPORT_SYMBOL vmlinux 0x2b7f45de pfifo_fast_ops +EXPORT_SYMBOL vmlinux 0x2b8da9bf xfrm_init_state +EXPORT_SYMBOL vmlinux 0x2b9da7a4 genl_lock +EXPORT_SYMBOL vmlinux 0x2ba707a8 sysctl_tcp_low_latency +EXPORT_SYMBOL vmlinux 0x2bb47576 devfreq_monitor_start +EXPORT_SYMBOL vmlinux 0x2bb55d6e acpi_remove_notify_handler +EXPORT_SYMBOL vmlinux 0x2bc34b89 set_pages_array_uc +EXPORT_SYMBOL vmlinux 0x2bcd035e pcibios_resource_to_bus +EXPORT_SYMBOL vmlinux 0x2bfeb410 acpi_get_handle +EXPORT_SYMBOL vmlinux 0x2c16ce84 netif_set_xps_queue +EXPORT_SYMBOL vmlinux 0x2c216586 tcp_enter_memory_pressure +EXPORT_SYMBOL vmlinux 0x2c256e1f input_scancode_to_scalar +EXPORT_SYMBOL vmlinux 0x2c33d625 netdev_info +EXPORT_SYMBOL vmlinux 0x2c37652e neigh_sysctl_register +EXPORT_SYMBOL vmlinux 0x2c639d14 sk_filter +EXPORT_SYMBOL vmlinux 0x2c68a732 security_task_getsecid +EXPORT_SYMBOL vmlinux 0x2c900d91 cpufreq_put_global_kobject +EXPORT_SYMBOL vmlinux 0x2c9462f6 inet_rtx_syn_ack +EXPORT_SYMBOL vmlinux 0x2ca218f9 set_pages_x +EXPORT_SYMBOL vmlinux 0x2cb86cf8 eth_header_parse +EXPORT_SYMBOL vmlinux 0x2cbc3ccb dquot_commit_info +EXPORT_SYMBOL vmlinux 0x2cf73cb7 kstrtoll_from_user +EXPORT_SYMBOL vmlinux 0x2cfca54c alloc_pci_dev +EXPORT_SYMBOL vmlinux 0x2d015b72 kthread_create_on_node +EXPORT_SYMBOL vmlinux 0x2d140a58 genl_unlock +EXPORT_SYMBOL vmlinux 0x2d2861e3 path_put +EXPORT_SYMBOL vmlinux 0x2d3385d3 system_wq +EXPORT_SYMBOL vmlinux 0x2d89342a scsi_show_sense_hdr +EXPORT_SYMBOL vmlinux 0x2da12f7c d_alloc_pseudo +EXPORT_SYMBOL vmlinux 0x2db01abe swiotlb_dma_supported +EXPORT_SYMBOL vmlinux 0x2dbd0752 kernel_accept +EXPORT_SYMBOL vmlinux 0x2dd16564 arch_register_cpu +EXPORT_SYMBOL vmlinux 0x2deda4a1 security_sk_classify_flow +EXPORT_SYMBOL vmlinux 0x2dedc4c2 acpi_format_exception +EXPORT_SYMBOL vmlinux 0x2def7f76 rtc_cmos_write +EXPORT_SYMBOL vmlinux 0x2e043efe scsi_execute_req_flags +EXPORT_SYMBOL vmlinux 0x2e0d2f7f queue_work_on +EXPORT_SYMBOL vmlinux 0x2e0e722f pci_request_region +EXPORT_SYMBOL vmlinux 0x2e1ca751 clk_put +EXPORT_SYMBOL vmlinux 0x2e2b40d2 strncat +EXPORT_SYMBOL vmlinux 0x2e2ce9e0 sysctl_tcp_syncookies +EXPORT_SYMBOL vmlinux 0x2e2ee12b __serio_register_port +EXPORT_SYMBOL vmlinux 0x2e4833d5 scsi_scan_target +EXPORT_SYMBOL vmlinux 0x2e5a704c udp_table +EXPORT_SYMBOL vmlinux 0x2e7ed077 tty_pair_get_pty +EXPORT_SYMBOL vmlinux 0x2e8a70d3 cdrom_mode_sense +EXPORT_SYMBOL vmlinux 0x2e8df0d8 __f_setown +EXPORT_SYMBOL vmlinux 0x2eb28be7 bh_submit_read +EXPORT_SYMBOL vmlinux 0x2ebc03a2 start_tty +EXPORT_SYMBOL vmlinux 0x2edf720c bio_put +EXPORT_SYMBOL vmlinux 0x2eec1f89 ioc_lookup_icq +EXPORT_SYMBOL vmlinux 0x2eeceb42 sk_chk_filter +EXPORT_SYMBOL vmlinux 0x2ef63ad6 scsi_dev_info_list_del_keyed +EXPORT_SYMBOL vmlinux 0x2f03fc4b security_secmark_refcount_inc +EXPORT_SYMBOL vmlinux 0x2f064b55 allocate_resource +EXPORT_SYMBOL vmlinux 0x2f0ae197 vga_switcheroo_register_audio_client +EXPORT_SYMBOL vmlinux 0x2f1932ab agp_generic_enable +EXPORT_SYMBOL vmlinux 0x2f384db3 acpi_is_video_device +EXPORT_SYMBOL vmlinux 0x2f54d6fd dev_mc_add_global +EXPORT_SYMBOL vmlinux 0x2f6d69f2 dquot_writeback_dquots +EXPORT_SYMBOL vmlinux 0x2f9a97a3 blk_start_request +EXPORT_SYMBOL vmlinux 0x2fae5714 scsi_eh_finish_cmd +EXPORT_SYMBOL vmlinux 0x2fb3750c on_each_cpu_mask +EXPORT_SYMBOL vmlinux 0x2fb6de5d add_device_randomness +EXPORT_SYMBOL vmlinux 0x2fc18e62 cpufreq_global_kobject +EXPORT_SYMBOL vmlinux 0x2fc37b74 d_genocide +EXPORT_SYMBOL vmlinux 0x2fd4ae08 dcb_getapp +EXPORT_SYMBOL vmlinux 0x2fe252cc unregister_inet6addr_notifier +EXPORT_SYMBOL vmlinux 0x2ff063b5 acpi_get_name +EXPORT_SYMBOL vmlinux 0x3000ebd0 journal_force_commit +EXPORT_SYMBOL vmlinux 0x300935b7 agp_generic_alloc_page +EXPORT_SYMBOL vmlinux 0x300a6dc1 dev_set_allmulti +EXPORT_SYMBOL vmlinux 0x301d3061 wait_for_completion_killable_timeout +EXPORT_SYMBOL vmlinux 0x30226ddf agp_device_command +EXPORT_SYMBOL vmlinux 0x302f95a7 lock_rename +EXPORT_SYMBOL vmlinux 0x30368745 xfrm_find_acq +EXPORT_SYMBOL vmlinux 0x303a3b90 skb_insert +EXPORT_SYMBOL vmlinux 0x3046c6af bdget_disk +EXPORT_SYMBOL vmlinux 0x304b403b scsi_verify_blk_ioctl +EXPORT_SYMBOL vmlinux 0x305abe0b sock_no_sendmsg +EXPORT_SYMBOL vmlinux 0x307c2fd0 generic_check_addressable +EXPORT_SYMBOL vmlinux 0x3089a479 mmc_free_host +EXPORT_SYMBOL vmlinux 0x308c946e dev_addr_add +EXPORT_SYMBOL vmlinux 0x30a80826 __kfifo_from_user +EXPORT_SYMBOL vmlinux 0x30bd4c5e __frontswap_test +EXPORT_SYMBOL vmlinux 0x30cada8f radix_tree_next_hole +EXPORT_SYMBOL vmlinux 0x30cc3dbe dma_sync_wait +EXPORT_SYMBOL vmlinux 0x30e74134 tty_termios_copy_hw +EXPORT_SYMBOL vmlinux 0x30f32ea5 hdmi_avi_infoframe_pack +EXPORT_SYMBOL vmlinux 0x3102d70b frontswap_curr_pages +EXPORT_SYMBOL vmlinux 0x314351d4 scsi_is_host_device +EXPORT_SYMBOL vmlinux 0x3145216f pci_dev_present +EXPORT_SYMBOL vmlinux 0x3147857d default_red +EXPORT_SYMBOL vmlinux 0x314deecf devm_ioremap_nocache +EXPORT_SYMBOL vmlinux 0x31763697 dma_async_device_register +EXPORT_SYMBOL vmlinux 0x318cadb1 reciprocal_value +EXPORT_SYMBOL vmlinux 0x318fc3dd __skb_dst_set_noref +EXPORT_SYMBOL vmlinux 0x319e0726 __tracepoint_kmalloc +EXPORT_SYMBOL vmlinux 0x31a87f79 dquot_free_inode +EXPORT_SYMBOL vmlinux 0x31b31f5c csum_partial_copy_nocheck +EXPORT_SYMBOL vmlinux 0x31e76b57 recalibrate_cpu_khz +EXPORT_SYMBOL vmlinux 0x31ed1403 bio_endio +EXPORT_SYMBOL vmlinux 0x31f80153 proc_set_user +EXPORT_SYMBOL vmlinux 0x3202435a wrmsr_safe_regs +EXPORT_SYMBOL vmlinux 0x3210b159 vfs_mkdir +EXPORT_SYMBOL vmlinux 0x321375d9 input_alloc_absinfo +EXPORT_SYMBOL vmlinux 0x322f48d4 abx500_dump_all_banks +EXPORT_SYMBOL vmlinux 0x324ede8f simple_setattr +EXPORT_SYMBOL vmlinux 0x326425ca pci_unmap_biosrom +EXPORT_SYMBOL vmlinux 0x32677aa5 inet_recvmsg +EXPORT_SYMBOL vmlinux 0x3267966e pci_bus_size_bridges +EXPORT_SYMBOL vmlinux 0x3267ffe2 sock_common_recvmsg +EXPORT_SYMBOL vmlinux 0x3274b08e hdmi_avi_infoframe_init +EXPORT_SYMBOL vmlinux 0x3278d6db __cleancache_init_shared_fs +EXPORT_SYMBOL vmlinux 0x3294ec44 pnp_unregister_card_driver +EXPORT_SYMBOL vmlinux 0x32969300 md_check_recovery +EXPORT_SYMBOL vmlinux 0x32a037af ip_mc_inc_group +EXPORT_SYMBOL vmlinux 0x32aa0346 blk_rq_map_integrity_sg +EXPORT_SYMBOL vmlinux 0x32bb04c8 from_kqid +EXPORT_SYMBOL vmlinux 0x32c454bf dquot_quota_on_mount +EXPORT_SYMBOL vmlinux 0x32d29181 scsi_finish_command +EXPORT_SYMBOL vmlinux 0x32debb16 cpumask_next_and +EXPORT_SYMBOL vmlinux 0x32eeaded _raw_write_lock_bh +EXPORT_SYMBOL vmlinux 0x33020c46 blk_queue_segment_boundary +EXPORT_SYMBOL vmlinux 0x3307e0b5 vga_switcheroo_unregister_client +EXPORT_SYMBOL vmlinux 0x333cb37c __kfifo_dma_out_prepare_r +EXPORT_SYMBOL vmlinux 0x335dbf82 agp_generic_destroy_page +EXPORT_SYMBOL vmlinux 0x33ac417f acpi_os_hotplug_execute +EXPORT_SYMBOL vmlinux 0x33b84f74 copy_page +EXPORT_SYMBOL vmlinux 0x33f0768c cpufreq_quick_get_max +EXPORT_SYMBOL vmlinux 0x33fcf44a __kfifo_out_r +EXPORT_SYMBOL vmlinux 0x34184afe current_kernel_time +EXPORT_SYMBOL vmlinux 0x341cbed2 cpu_present_mask +EXPORT_SYMBOL vmlinux 0x341dde6a mmc_interrupt_hpi +EXPORT_SYMBOL vmlinux 0x342617f6 mem_cgroup_subsys +EXPORT_SYMBOL vmlinux 0x344aa831 sock_i_uid +EXPORT_SYMBOL vmlinux 0x344e9af4 __idr_get_new_above +EXPORT_SYMBOL vmlinux 0x344fb045 tcp_prot +EXPORT_SYMBOL vmlinux 0x345a0e86 dev_graft_qdisc +EXPORT_SYMBOL vmlinux 0x347013de nla_validate +EXPORT_SYMBOL vmlinux 0x3494e32a touch_atime +EXPORT_SYMBOL vmlinux 0x349cba85 strchr +EXPORT_SYMBOL vmlinux 0x34ab0ae5 dput +EXPORT_SYMBOL vmlinux 0x34c5d0f8 pci_dev_get +EXPORT_SYMBOL vmlinux 0x34c9e46e vfs_open +EXPORT_SYMBOL vmlinux 0x34cf8eb4 blk_queue_logical_block_size +EXPORT_SYMBOL vmlinux 0x34e21dc0 register_sysctl +EXPORT_SYMBOL vmlinux 0x34f3484e security_tun_dev_attach_queue +EXPORT_SYMBOL vmlinux 0x34f77bf7 nf_log_bind_pf +EXPORT_SYMBOL vmlinux 0x35144fa7 invalidate_mapping_pages +EXPORT_SYMBOL vmlinux 0x3517383e register_reboot_notifier +EXPORT_SYMBOL vmlinux 0x35217dc9 mmc_can_discard +EXPORT_SYMBOL vmlinux 0x35225ea3 down_write_trylock +EXPORT_SYMBOL vmlinux 0x352b605d unregister_binfmt +EXPORT_SYMBOL vmlinux 0x3539f11b match_strlcpy +EXPORT_SYMBOL vmlinux 0x353d0bdb pcim_pin_device +EXPORT_SYMBOL vmlinux 0x3549824f iget_locked +EXPORT_SYMBOL vmlinux 0x35515c6c blk_integrity_compare +EXPORT_SYMBOL vmlinux 0x3568b743 dentry_update_name_case +EXPORT_SYMBOL vmlinux 0x356ff8b8 kmem_cache_alloc_node +EXPORT_SYMBOL vmlinux 0x35706e53 kernel_connect +EXPORT_SYMBOL vmlinux 0x35709ea4 __page_symlink +EXPORT_SYMBOL vmlinux 0x3576f198 vm_map_ram +EXPORT_SYMBOL vmlinux 0x35779549 register_xen_selfballooning +EXPORT_SYMBOL vmlinux 0x357b6bcc journal_try_to_free_buffers +EXPORT_SYMBOL vmlinux 0x359d0fb2 ip4_datagram_connect +EXPORT_SYMBOL vmlinux 0x35b0a70d qdisc_tree_decrease_qlen +EXPORT_SYMBOL vmlinux 0x35b6b772 param_ops_charp +EXPORT_SYMBOL vmlinux 0x35c06132 ip6_route_me_harder +EXPORT_SYMBOL vmlinux 0x35ca823c vfs_write +EXPORT_SYMBOL vmlinux 0x35d145bd xfrm6_find_1stfragopt +EXPORT_SYMBOL vmlinux 0x35dd3e08 ip_mc_join_group +EXPORT_SYMBOL vmlinux 0x35defc50 iov_iter_advance +EXPORT_SYMBOL vmlinux 0x35f64327 inet_frags_fini +EXPORT_SYMBOL vmlinux 0x360b1afe probe_irq_mask +EXPORT_SYMBOL vmlinux 0x360b8d16 x86_cpu_to_apicid +EXPORT_SYMBOL vmlinux 0x360e5eac tcp_md5_do_add +EXPORT_SYMBOL vmlinux 0x36391d9b phy_device_free +EXPORT_SYMBOL vmlinux 0x365b5945 tty_wait_until_sent +EXPORT_SYMBOL vmlinux 0x36777181 mb_cache_destroy +EXPORT_SYMBOL vmlinux 0x3686ea09 spi_print_msg +EXPORT_SYMBOL vmlinux 0x368b0fa6 bio_copy_kern +EXPORT_SYMBOL vmlinux 0x369e1115 kstrtou8_from_user +EXPORT_SYMBOL vmlinux 0x36d9b00d xfrm6_prepare_output +EXPORT_SYMBOL vmlinux 0x36de458e __sk_dst_check +EXPORT_SYMBOL vmlinux 0x36e360e3 __hw_addr_add_multiple +EXPORT_SYMBOL vmlinux 0x36f9cd94 rcu_is_cpu_idle +EXPORT_SYMBOL vmlinux 0x3701a196 csum_partial_copy_to_user +EXPORT_SYMBOL vmlinux 0x37168adf skb_abort_seq_read +EXPORT_SYMBOL vmlinux 0x37449a1d input_open_device +EXPORT_SYMBOL vmlinux 0x3744cf36 vmalloc_to_pfn +EXPORT_SYMBOL vmlinux 0x374e716a bdput +EXPORT_SYMBOL vmlinux 0x375e465b clear_bdi_congested +EXPORT_SYMBOL vmlinux 0x37611d45 pci_match_id +EXPORT_SYMBOL vmlinux 0x37685651 inet_frags_exit_net +EXPORT_SYMBOL vmlinux 0x376d22a9 check_disk_change +EXPORT_SYMBOL vmlinux 0x377a5391 datagram_poll +EXPORT_SYMBOL vmlinux 0x37b777df param_set_copystring +EXPORT_SYMBOL vmlinux 0x37befc70 jiffies_to_msecs +EXPORT_SYMBOL vmlinux 0x37c4595d security_inode_readlink +EXPORT_SYMBOL vmlinux 0x37d2b766 console_start +EXPORT_SYMBOL vmlinux 0x37db8f19 dmi_get_date +EXPORT_SYMBOL vmlinux 0x37ef710f single_open_size +EXPORT_SYMBOL vmlinux 0x37ff4c06 copy_from_user_overflow +EXPORT_SYMBOL vmlinux 0x3804303e inode_set_bytes +EXPORT_SYMBOL vmlinux 0x381a798a setup_max_cpus +EXPORT_SYMBOL vmlinux 0x38208bae do_splice_from +EXPORT_SYMBOL vmlinux 0x3829cf93 dev_remove_offload +EXPORT_SYMBOL vmlinux 0x382db189 rtnl_notify +EXPORT_SYMBOL vmlinux 0x383888dc rtnl_create_link +EXPORT_SYMBOL vmlinux 0x38869d88 kstat +EXPORT_SYMBOL vmlinux 0x388f9128 xfrm_state_walk_done +EXPORT_SYMBOL vmlinux 0x389bfe0d rtc_lock +EXPORT_SYMBOL vmlinux 0x38a71b7e pci_free_resource_list +EXPORT_SYMBOL vmlinux 0x38b1c10a do_splice_to +EXPORT_SYMBOL vmlinux 0x38b7d4a8 tcp_splice_read +EXPORT_SYMBOL vmlinux 0x38d4d696 led_blink_set +EXPORT_SYMBOL vmlinux 0x38e3cfe6 dquot_drop +EXPORT_SYMBOL vmlinux 0x38f33bed dump_fpu +EXPORT_SYMBOL vmlinux 0x39106ba5 rt6_lookup +EXPORT_SYMBOL vmlinux 0x39123e72 __lock_buffer +EXPORT_SYMBOL vmlinux 0x3919c296 journal_get_write_access +EXPORT_SYMBOL vmlinux 0x391adb22 input_set_keycode +EXPORT_SYMBOL vmlinux 0x3928efe9 __per_cpu_offset +EXPORT_SYMBOL vmlinux 0x3939f8f0 rfkill_pause_polling +EXPORT_SYMBOL vmlinux 0x3955fcf6 __kfifo_in_r +EXPORT_SYMBOL vmlinux 0x395e8620 ns_capable +EXPORT_SYMBOL vmlinux 0x397f733a __block_write_begin +EXPORT_SYMBOL vmlinux 0x399ad043 __kfifo_dma_out_finish_r +EXPORT_SYMBOL vmlinux 0x399e0add jbd2_journal_free_reserved +EXPORT_SYMBOL vmlinux 0x39a055f3 acpi_remove_gpe_handler +EXPORT_SYMBOL vmlinux 0x39b65e13 nf_log_register +EXPORT_SYMBOL vmlinux 0x39bb372f dq_data_lock +EXPORT_SYMBOL vmlinux 0x39d24405 generic_file_buffered_write +EXPORT_SYMBOL vmlinux 0x39d46b74 security_path_mknod +EXPORT_SYMBOL vmlinux 0x39e7fa59 kernel_sendmsg +EXPORT_SYMBOL vmlinux 0x3a08475f platform_thermal_notify +EXPORT_SYMBOL vmlinux 0x3a0c4965 netif_device_detach +EXPORT_SYMBOL vmlinux 0x3a20ff73 __crc32c_le +EXPORT_SYMBOL vmlinux 0x3a32839e intel_gtt_chipset_flush +EXPORT_SYMBOL vmlinux 0x3a729389 blk_recount_segments +EXPORT_SYMBOL vmlinux 0x3a7f4c31 unregister_framebuffer +EXPORT_SYMBOL vmlinux 0x3a82e039 mmc_wait_for_app_cmd +EXPORT_SYMBOL vmlinux 0x3a8ead89 dquot_transfer +EXPORT_SYMBOL vmlinux 0x3a9b6fb9 blk_unregister_region +EXPORT_SYMBOL vmlinux 0x3a9ef65b secpath_dup +EXPORT_SYMBOL vmlinux 0x3ade6fe0 textsearch_unregister +EXPORT_SYMBOL vmlinux 0x3ae26da1 i2c_del_driver +EXPORT_SYMBOL vmlinux 0x3b228287 pcie_port_service_register +EXPORT_SYMBOL vmlinux 0x3b2b7e91 pci_scan_bus_parented +EXPORT_SYMBOL vmlinux 0x3b2c6929 page_zero_new_buffers +EXPORT_SYMBOL vmlinux 0x3b34bb70 dma_ops +EXPORT_SYMBOL vmlinux 0x3b477cca mb_cache_entry_get +EXPORT_SYMBOL vmlinux 0x3b4ceb4a up_write +EXPORT_SYMBOL vmlinux 0x3b5a416a wait_on_sync_kiocb +EXPORT_SYMBOL vmlinux 0x3b7afd67 mmc_wait_for_req +EXPORT_SYMBOL vmlinux 0x3ba79af1 sk_stop_timer +EXPORT_SYMBOL vmlinux 0x3ba7defb kthread_bind +EXPORT_SYMBOL vmlinux 0x3baaa980 phy_mii_ioctl +EXPORT_SYMBOL vmlinux 0x3bca9d89 writeback_inodes_sb_nr +EXPORT_SYMBOL vmlinux 0x3bd1b1f6 msecs_to_jiffies +EXPORT_SYMBOL vmlinux 0x3beb690b lg_local_unlock +EXPORT_SYMBOL vmlinux 0x3bef03b9 flow_cache_lookup +EXPORT_SYMBOL vmlinux 0x3c269f6d tcp_md5_do_del +EXPORT_SYMBOL vmlinux 0x3c2bf4f1 md_error +EXPORT_SYMBOL vmlinux 0x3c378795 flush_signals +EXPORT_SYMBOL vmlinux 0x3c472e38 pci_bus_read_config_byte +EXPORT_SYMBOL vmlinux 0x3c57999a scsi_device_quiesce +EXPORT_SYMBOL vmlinux 0x3c6c941b netdev_master_upper_dev_get_rcu +EXPORT_SYMBOL vmlinux 0x3c7c5db7 bprm_change_interp +EXPORT_SYMBOL vmlinux 0x3c80c06c kstrtoull +EXPORT_SYMBOL vmlinux 0x3c8a36a2 netif_napi_del +EXPORT_SYMBOL vmlinux 0x3c9d1211 string_get_size +EXPORT_SYMBOL vmlinux 0x3ca738df pci_back_from_sleep +EXPORT_SYMBOL vmlinux 0x3cac3bfb input_register_device +EXPORT_SYMBOL vmlinux 0x3cadff93 d_delete +EXPORT_SYMBOL vmlinux 0x3ce4ca6f disable_irq +EXPORT_SYMBOL vmlinux 0x3cee15e8 dquot_quota_off +EXPORT_SYMBOL vmlinux 0x3d3fa33e input_grab_device +EXPORT_SYMBOL vmlinux 0x3d41c9c9 vfs_readlink +EXPORT_SYMBOL vmlinux 0x3d5844b3 strnicmp +EXPORT_SYMBOL vmlinux 0x3d6ab7e0 simple_fill_super +EXPORT_SYMBOL vmlinux 0x3d7c1ed7 msrs_alloc +EXPORT_SYMBOL vmlinux 0x3d8d6130 blk_rq_map_user +EXPORT_SYMBOL vmlinux 0x3d96e043 __skb_gso_segment +EXPORT_SYMBOL vmlinux 0x3d9ee9f0 clear_page +EXPORT_SYMBOL vmlinux 0x3da171f9 pci_mem_start +EXPORT_SYMBOL vmlinux 0x3dcb88a0 irq_set_handler_data +EXPORT_SYMBOL vmlinux 0x3dd3f142 udp_prot +EXPORT_SYMBOL vmlinux 0x3de37e2a clk_add_alias +EXPORT_SYMBOL vmlinux 0x3dfc897c seq_hlist_start_head +EXPORT_SYMBOL vmlinux 0x3e0329b1 read_cache_page_async +EXPORT_SYMBOL vmlinux 0x3e04b4cd uart_update_timeout +EXPORT_SYMBOL vmlinux 0x3e1dac56 ip_route_me_harder +EXPORT_SYMBOL vmlinux 0x3e2ae3a8 acpi_release_global_lock +EXPORT_SYMBOL vmlinux 0x3e33aa79 alloc_fddidev +EXPORT_SYMBOL vmlinux 0x3e425997 mmc_read_bkops_status +EXPORT_SYMBOL vmlinux 0x3e5f2129 netpoll_rx_disable +EXPORT_SYMBOL vmlinux 0x3e5f5e23 uart_register_driver +EXPORT_SYMBOL vmlinux 0x3e6d713f follow_down_one +EXPORT_SYMBOL vmlinux 0x3e882943 pcibios_align_resource +EXPORT_SYMBOL vmlinux 0x3e9110fa __hw_addr_unsync +EXPORT_SYMBOL vmlinux 0x3e9f74eb __ip_select_ident +EXPORT_SYMBOL vmlinux 0x3ea0773c ida_get_new_above +EXPORT_SYMBOL vmlinux 0x3eae292f param_set_byte +EXPORT_SYMBOL vmlinux 0x3eaf291d param_get_string +EXPORT_SYMBOL vmlinux 0x3eb34767 phy_attach +EXPORT_SYMBOL vmlinux 0x3ec16c3b in_group_p +EXPORT_SYMBOL vmlinux 0x3ed17626 tcp_disconnect +EXPORT_SYMBOL vmlinux 0x3ed63055 zlib_inflateReset +EXPORT_SYMBOL vmlinux 0x3f0546a8 ioread32_rep +EXPORT_SYMBOL vmlinux 0x3f26424f sock_release +EXPORT_SYMBOL vmlinux 0x3f41144a input_inject_event +EXPORT_SYMBOL vmlinux 0x3f4547a7 put_unused_fd +EXPORT_SYMBOL vmlinux 0x3f6544ba ethtool_op_get_link +EXPORT_SYMBOL vmlinux 0x3f66d24a __xfrm_state_delete +EXPORT_SYMBOL vmlinux 0x3f6754a8 blk_bio_map_sg +EXPORT_SYMBOL vmlinux 0x3f71faa1 mempool_create +EXPORT_SYMBOL vmlinux 0x3f995caa drop_nlink +EXPORT_SYMBOL vmlinux 0x3fc32278 register_tcf_proto_ops +EXPORT_SYMBOL vmlinux 0x3fcb79f0 sync_blockdev +EXPORT_SYMBOL vmlinux 0x3fd4ead1 serial8250_do_pm +EXPORT_SYMBOL vmlinux 0x3fd8f89d mmc_try_claim_host +EXPORT_SYMBOL vmlinux 0x3fe2ccbe memweight +EXPORT_SYMBOL vmlinux 0x3fe7f8dd unregister_qdisc +EXPORT_SYMBOL vmlinux 0x3fec048f sg_next +EXPORT_SYMBOL vmlinux 0x3ff62317 local_bh_disable +EXPORT_SYMBOL vmlinux 0x40256835 complete_all +EXPORT_SYMBOL vmlinux 0x402906be tty_port_tty_set +EXPORT_SYMBOL vmlinux 0x402b8281 __request_module +EXPORT_SYMBOL vmlinux 0x4037dd51 find_or_create_page +EXPORT_SYMBOL vmlinux 0x40459207 skb_free_datagram +EXPORT_SYMBOL vmlinux 0x405af52d tcf_hash_release +EXPORT_SYMBOL vmlinux 0x405c1144 get_seconds +EXPORT_SYMBOL vmlinux 0x405c7194 input_reset_device +EXPORT_SYMBOL vmlinux 0x4070e909 scsi_host_set_state +EXPORT_SYMBOL vmlinux 0x407bc0b2 set_bh_page +EXPORT_SYMBOL vmlinux 0x407f3f75 __cleancache_invalidate_fs +EXPORT_SYMBOL vmlinux 0x40898aed pcie_capability_clear_and_set_dword +EXPORT_SYMBOL vmlinux 0x4091fa30 mmc_detect_card_removed +EXPORT_SYMBOL vmlinux 0x40973662 sysctl_udp_mem +EXPORT_SYMBOL vmlinux 0x4097fa45 acpi_read_bit_register +EXPORT_SYMBOL vmlinux 0x40983de4 dev_set_promiscuity +EXPORT_SYMBOL vmlinux 0x409873e3 tty_termios_baud_rate +EXPORT_SYMBOL vmlinux 0x409db036 fbcon_set_bitops +EXPORT_SYMBOL vmlinux 0x40a27c37 scsi_dev_info_remove_list +EXPORT_SYMBOL vmlinux 0x40a9b349 vzalloc +EXPORT_SYMBOL vmlinux 0x40c01859 gen_pool_best_fit +EXPORT_SYMBOL vmlinux 0x40c7247c si_meminfo +EXPORT_SYMBOL vmlinux 0x40c89d46 acpi_get_table_by_index +EXPORT_SYMBOL vmlinux 0x40d04664 console_trylock +EXPORT_SYMBOL vmlinux 0x40d10cb6 blk_get_backing_dev_info +EXPORT_SYMBOL vmlinux 0x40e64fb3 tty_unlock_pair +EXPORT_SYMBOL vmlinux 0x410234cb tty_mutex +EXPORT_SYMBOL vmlinux 0x411063a6 netdev_features_change +EXPORT_SYMBOL vmlinux 0x4115945d phy_stop +EXPORT_SYMBOL vmlinux 0x41165aee bitmap_endwrite +EXPORT_SYMBOL vmlinux 0x411b8ac0 dev_mc_unsync +EXPORT_SYMBOL vmlinux 0x411f6572 input_free_device +EXPORT_SYMBOL vmlinux 0x41247b1e mmc_add_host +EXPORT_SYMBOL vmlinux 0x4125d762 write_cache_pages +EXPORT_SYMBOL vmlinux 0x41482d8b strndup_user +EXPORT_SYMBOL vmlinux 0x416b28f6 __sock_create +EXPORT_SYMBOL vmlinux 0x4188d439 neigh_rand_reach_time +EXPORT_SYMBOL vmlinux 0x418d2028 pm860x_bulk_read +EXPORT_SYMBOL vmlinux 0x41b0e2ba cookie_check_timestamp +EXPORT_SYMBOL vmlinux 0x41c84b7e lock_fb_info +EXPORT_SYMBOL vmlinux 0x41db3560 scsi_device_lookup_by_target +EXPORT_SYMBOL vmlinux 0x41db9e0d proto_register +EXPORT_SYMBOL vmlinux 0x41e8f999 i2c_master_send +EXPORT_SYMBOL vmlinux 0x41ebd2a7 pci_claim_resource +EXPORT_SYMBOL vmlinux 0x420b9bed sock_no_accept +EXPORT_SYMBOL vmlinux 0x4211c3c1 zlib_inflateInit2 +EXPORT_SYMBOL vmlinux 0x422de04d dump_write +EXPORT_SYMBOL vmlinux 0x42350e8d ucs2_strlen +EXPORT_SYMBOL vmlinux 0x4243625b md_unregister_thread +EXPORT_SYMBOL vmlinux 0x42486ba2 security_d_instantiate +EXPORT_SYMBOL vmlinux 0x424ee193 inet6_release +EXPORT_SYMBOL vmlinux 0x42595e58 vgacon_text_force +EXPORT_SYMBOL vmlinux 0x428f24f9 posix_acl_create +EXPORT_SYMBOL vmlinux 0x428fe46f blk_pre_runtime_resume +EXPORT_SYMBOL vmlinux 0x42977ad4 __hw_addr_del_multiple +EXPORT_SYMBOL vmlinux 0x42a1b208 gen_pool_first_fit +EXPORT_SYMBOL vmlinux 0x42c1afa9 remove_arg_zero +EXPORT_SYMBOL vmlinux 0x42c8de35 ioremap_nocache +EXPORT_SYMBOL vmlinux 0x42dd2ec0 scsi_free_command +EXPORT_SYMBOL vmlinux 0x42fca74b km_state_notify +EXPORT_SYMBOL vmlinux 0x4302d0eb free_pages +EXPORT_SYMBOL vmlinux 0x4310e642 empty_aops +EXPORT_SYMBOL vmlinux 0x43261dca _raw_spin_lock_irq +EXPORT_SYMBOL vmlinux 0x4351577a fb_parse_edid +EXPORT_SYMBOL vmlinux 0x43629ba3 agp_find_bridge +EXPORT_SYMBOL vmlinux 0x436c2179 iowrite32 +EXPORT_SYMBOL vmlinux 0x437ee08e sock_queue_err_skb +EXPORT_SYMBOL vmlinux 0x43834f17 fb_get_buffer_offset +EXPORT_SYMBOL vmlinux 0x438610bd security_tun_dev_alloc_security +EXPORT_SYMBOL vmlinux 0x43a39ed8 ip6_route_output +EXPORT_SYMBOL vmlinux 0x43a982a6 fb_class +EXPORT_SYMBOL vmlinux 0x43c443f7 blk_integrity_merge_bio +EXPORT_SYMBOL vmlinux 0x43e08c75 inet_release +EXPORT_SYMBOL vmlinux 0x43f23311 dm_table_get_md +EXPORT_SYMBOL vmlinux 0x44009af1 _dev_info +EXPORT_SYMBOL vmlinux 0x4411c503 prandom_seed +EXPORT_SYMBOL vmlinux 0x441964d1 genl_register_mc_group +EXPORT_SYMBOL vmlinux 0x44204809 blk_init_tags +EXPORT_SYMBOL vmlinux 0x44336452 pcie_get_readrq +EXPORT_SYMBOL vmlinux 0x443e0b6d vmap +EXPORT_SYMBOL vmlinux 0x444787a7 vmalloc_to_page +EXPORT_SYMBOL vmlinux 0x4457a09d udp_flush_pending_frames +EXPORT_SYMBOL vmlinux 0x446a96ce serio_close +EXPORT_SYMBOL vmlinux 0x446f8ba5 phy_register_fixup_for_id +EXPORT_SYMBOL vmlinux 0x4470a79b param_ops_long +EXPORT_SYMBOL vmlinux 0x4476e9e2 panic_notifier_list +EXPORT_SYMBOL vmlinux 0x448eac3e kmemdup +EXPORT_SYMBOL vmlinux 0x449ad0a7 memcmp +EXPORT_SYMBOL vmlinux 0x44a36e2a ping_prot +EXPORT_SYMBOL vmlinux 0x44a81d5f acpi_evaluate_object +EXPORT_SYMBOL vmlinux 0x44aaf30f tsc_khz +EXPORT_SYMBOL vmlinux 0x44e6ecc8 ida_simple_get +EXPORT_SYMBOL vmlinux 0x44e7ce7a swiotlb_sync_single_for_device +EXPORT_SYMBOL vmlinux 0x44e9a829 match_token +EXPORT_SYMBOL vmlinux 0x44f0b656 netdev_err +EXPORT_SYMBOL vmlinux 0x45044497 percpu_counter_destroy +EXPORT_SYMBOL vmlinux 0x45081703 ec_get_handle +EXPORT_SYMBOL vmlinux 0x45109837 kern_path +EXPORT_SYMBOL vmlinux 0x45357a6c inet_confirm_addr +EXPORT_SYMBOL vmlinux 0x45379976 dev_addr_del_multiple +EXPORT_SYMBOL vmlinux 0x453c8403 pci_msi_enabled +EXPORT_SYMBOL vmlinux 0x4578f528 __kfifo_to_user +EXPORT_SYMBOL vmlinux 0x458d3236 generic_shutdown_super +EXPORT_SYMBOL vmlinux 0x4599a563 __locks_copy_lock +EXPORT_SYMBOL vmlinux 0x459c6076 atomic_dec_and_mutex_lock +EXPORT_SYMBOL vmlinux 0x45a63493 irq_set_chip +EXPORT_SYMBOL vmlinux 0x45a6be13 cpufreq_sysfs_remove_file +EXPORT_SYMBOL vmlinux 0x45a765cf pci_add_resource +EXPORT_SYMBOL vmlinux 0x45c2bc24 filemap_flush +EXPORT_SYMBOL vmlinux 0x45c8cd86 ifla_policy +EXPORT_SYMBOL vmlinux 0x45c92723 idr_destroy +EXPORT_SYMBOL vmlinux 0x45d21d46 phy_ethtool_set_wol +EXPORT_SYMBOL vmlinux 0x45e85570 bio_integrity_free +EXPORT_SYMBOL vmlinux 0x45e93997 load_nls +EXPORT_SYMBOL vmlinux 0x45eb8a4b fb_blank +EXPORT_SYMBOL vmlinux 0x45f294c6 nlmsg_notify +EXPORT_SYMBOL vmlinux 0x45f51ec4 twl6040_reg_write +EXPORT_SYMBOL vmlinux 0x461ac773 kstrtol_from_user +EXPORT_SYMBOL vmlinux 0x4628891d skb_try_coalesce +EXPORT_SYMBOL vmlinux 0x46313adc dev_uc_sync +EXPORT_SYMBOL vmlinux 0x465cab34 secure_ipv6_port_ephemeral +EXPORT_SYMBOL vmlinux 0x46608fa0 getnstimeofday +EXPORT_SYMBOL vmlinux 0x466374b6 register_nls +EXPORT_SYMBOL vmlinux 0x4669bb79 set_security_override +EXPORT_SYMBOL vmlinux 0x4669bddc iput +EXPORT_SYMBOL vmlinux 0x466c14a7 __delay +EXPORT_SYMBOL vmlinux 0x46b3fb37 compat_tcp_setsockopt +EXPORT_SYMBOL vmlinux 0x46c47fb6 __node_distance +EXPORT_SYMBOL vmlinux 0x46ee3057 vlan_vid_del +EXPORT_SYMBOL vmlinux 0x46feb099 dm_read_arg +EXPORT_SYMBOL vmlinux 0x47048068 jbd2_journal_get_write_access +EXPORT_SYMBOL vmlinux 0x4707439c vga_put +EXPORT_SYMBOL vmlinux 0x47416e14 cpu_rmap_add +EXPORT_SYMBOL vmlinux 0x47469d81 nf_ip_checksum +EXPORT_SYMBOL vmlinux 0x475100c2 inet_get_local_port_range +EXPORT_SYMBOL vmlinux 0x4755a55d mount_bdev +EXPORT_SYMBOL vmlinux 0x475b8ddd genl_register_ops +EXPORT_SYMBOL vmlinux 0x475f010b acpi_purge_cached_objects +EXPORT_SYMBOL vmlinux 0x47660378 simple_dir_operations +EXPORT_SYMBOL vmlinux 0x477e6dcb amd_iommu_pc_get_set_reg_val +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 0x47b3f862 radix_tree_lookup_slot +EXPORT_SYMBOL vmlinux 0x47b6a10f ftrace_print_symbols_seq +EXPORT_SYMBOL vmlinux 0x48099c9c update_region +EXPORT_SYMBOL vmlinux 0x48193639 acpi_lid_open +EXPORT_SYMBOL vmlinux 0x481cb9ab acpi_enter_sleep_state_prep +EXPORT_SYMBOL vmlinux 0x4841bdee strnchr +EXPORT_SYMBOL vmlinux 0x4845c423 param_array_ops +EXPORT_SYMBOL vmlinux 0x484e93cd thermal_cdev_update +EXPORT_SYMBOL vmlinux 0x4850233e compat_sock_common_setsockopt +EXPORT_SYMBOL vmlinux 0x4859b8bb rtc_year_days +EXPORT_SYMBOL vmlinux 0x487d5c77 set_create_files_as +EXPORT_SYMBOL vmlinux 0x487d9343 param_ops_ushort +EXPORT_SYMBOL vmlinux 0x488e2995 sk_stream_kill_queues +EXPORT_SYMBOL vmlinux 0x489307bb blk_queue_max_hw_sectors +EXPORT_SYMBOL vmlinux 0x48b312cc ethtool_op_get_ts_info +EXPORT_SYMBOL vmlinux 0x48d50e79 amd_iommu_register_ppr_notifier +EXPORT_SYMBOL vmlinux 0x48d8210e sdev_enable_disk_events +EXPORT_SYMBOL vmlinux 0x49045426 icmp_err_convert +EXPORT_SYMBOL vmlinux 0x492725f6 security_old_inode_init_security +EXPORT_SYMBOL vmlinux 0x49360748 agp_allocate_memory +EXPORT_SYMBOL vmlinux 0x4936db71 km_policy_expired +EXPORT_SYMBOL vmlinux 0x494e3393 vm_get_page_prot +EXPORT_SYMBOL vmlinux 0x494f5ea0 mfd_remove_devices +EXPORT_SYMBOL vmlinux 0x49603fb8 security_sb_copy_data +EXPORT_SYMBOL vmlinux 0x49b07aec tcp_select_initial_window +EXPORT_SYMBOL vmlinux 0x49b163b8 acpi_bus_scan +EXPORT_SYMBOL vmlinux 0x49c27680 __skb_tx_hash +EXPORT_SYMBOL vmlinux 0x49d97a6c scsi_register +EXPORT_SYMBOL vmlinux 0x49f57159 ip6_dst_hoplimit +EXPORT_SYMBOL vmlinux 0x4a162e95 bio_init +EXPORT_SYMBOL vmlinux 0x4a237297 kernel_bind +EXPORT_SYMBOL vmlinux 0x4a358252 __bitmap_subset +EXPORT_SYMBOL vmlinux 0x4a5e26c0 compat_sock_get_timestampns +EXPORT_SYMBOL vmlinux 0x4a69b3ed blk_queue_stack_limits +EXPORT_SYMBOL vmlinux 0x4a72c9fb fail_migrate_page +EXPORT_SYMBOL vmlinux 0x4a9cd35b seq_read +EXPORT_SYMBOL vmlinux 0x4aad52d7 mempool_free +EXPORT_SYMBOL vmlinux 0x4ab4550f __netlink_dump_start +EXPORT_SYMBOL vmlinux 0x4abbe3c2 vm_brk +EXPORT_SYMBOL vmlinux 0x4acd93d3 release_resource +EXPORT_SYMBOL vmlinux 0x4ad2af2f pci_bus_set_ops +EXPORT_SYMBOL vmlinux 0x4ae33043 scsi_get_device_flags_keyed +EXPORT_SYMBOL vmlinux 0x4afe9a77 scsi_partsize +EXPORT_SYMBOL vmlinux 0x4b06d2e7 complete +EXPORT_SYMBOL vmlinux 0x4b06e69a udp_push_pending_frames +EXPORT_SYMBOL vmlinux 0x4b070442 user_path_create +EXPORT_SYMBOL vmlinux 0x4b085dbf agp3_generic_configure +EXPORT_SYMBOL vmlinux 0x4b1b96ae key_put +EXPORT_SYMBOL vmlinux 0x4b2a8585 kdb_current_task +EXPORT_SYMBOL vmlinux 0x4b3c4477 dma_set_mask +EXPORT_SYMBOL vmlinux 0x4b5fd49e dm_kcopyd_do_callback +EXPORT_SYMBOL vmlinux 0x4b83808d stop_tty +EXPORT_SYMBOL vmlinux 0x4b9f7f07 dump_seek +EXPORT_SYMBOL vmlinux 0x4ba2fc54 mmc_can_trim +EXPORT_SYMBOL vmlinux 0x4baf6fb8 dmam_free_coherent +EXPORT_SYMBOL vmlinux 0x4bafb0d1 serio_unregister_driver +EXPORT_SYMBOL vmlinux 0x4bafbf70 vfs_getattr +EXPORT_SYMBOL vmlinux 0x4bcf961c pci_get_domain_bus_and_slot +EXPORT_SYMBOL vmlinux 0x4bfd30f2 __starget_for_each_device +EXPORT_SYMBOL vmlinux 0x4c03aafa dev_add_offload +EXPORT_SYMBOL vmlinux 0x4c04b89f read_code +EXPORT_SYMBOL vmlinux 0x4c1182cb bitmap_scnprintf +EXPORT_SYMBOL vmlinux 0x4c14fcd1 xfrm_cfg_mutex +EXPORT_SYMBOL vmlinux 0x4c29ec05 scsi_remove_host +EXPORT_SYMBOL vmlinux 0x4c2c5e1a kernel_write +EXPORT_SYMBOL vmlinux 0x4c49e39b jbd2__journal_restart +EXPORT_SYMBOL vmlinux 0x4c4fef19 kernel_stack +EXPORT_SYMBOL vmlinux 0x4c5fb0d6 __ww_mutex_lock_interruptible +EXPORT_SYMBOL vmlinux 0x4c8175e5 fib_default_rule_pref +EXPORT_SYMBOL vmlinux 0x4c9d28b0 phys_base +EXPORT_SYMBOL vmlinux 0x4c9d3251 tty_port_tty_get +EXPORT_SYMBOL vmlinux 0x4ca9669f scnprintf +EXPORT_SYMBOL vmlinux 0x4cbbd171 __bitmap_weight +EXPORT_SYMBOL vmlinux 0x4cbe5da3 security_path_unlink +EXPORT_SYMBOL vmlinux 0x4cdb3178 ns_to_timeval +EXPORT_SYMBOL vmlinux 0x4cead110 dev_get_by_index_rcu +EXPORT_SYMBOL vmlinux 0x4d021a2a journal_release_buffer +EXPORT_SYMBOL vmlinux 0x4d0415c5 dev_addr_flush +EXPORT_SYMBOL vmlinux 0x4d1023f8 mempool_resize +EXPORT_SYMBOL vmlinux 0x4d26ec31 napi_gro_receive +EXPORT_SYMBOL vmlinux 0x4d3859e1 __xfrm_init_state +EXPORT_SYMBOL vmlinux 0x4d3b2e82 skb_copy_datagram_const_iovec +EXPORT_SYMBOL vmlinux 0x4d405db8 param_ops_string +EXPORT_SYMBOL vmlinux 0x4d445d24 dev_trans_start +EXPORT_SYMBOL vmlinux 0x4d569b47 abx500_set_register_interruptible +EXPORT_SYMBOL vmlinux 0x4d88e8d8 filemap_write_and_wait +EXPORT_SYMBOL vmlinux 0x4d91989b copy_strings_kernel +EXPORT_SYMBOL vmlinux 0x4d974b9c register_sysrq_key +EXPORT_SYMBOL vmlinux 0x4d9b0c07 phy_print_status +EXPORT_SYMBOL vmlinux 0x4d9b652b rb_erase +EXPORT_SYMBOL vmlinux 0x4da95f93 proc_set_size +EXPORT_SYMBOL vmlinux 0x4daa360a acpi_resource_to_address64 +EXPORT_SYMBOL vmlinux 0x4db00dbe genphy_config_aneg +EXPORT_SYMBOL vmlinux 0x4dbfa0ea pci_bus_read_config_dword +EXPORT_SYMBOL vmlinux 0x4de34a07 cpu_rmap_put +EXPORT_SYMBOL vmlinux 0x4df119fa __bitmap_parse +EXPORT_SYMBOL vmlinux 0x4df656cc bio_integrity_trim +EXPORT_SYMBOL vmlinux 0x4e324065 __xfrm_state_destroy +EXPORT_SYMBOL vmlinux 0x4e3567f7 match_int +EXPORT_SYMBOL vmlinux 0x4e3ac15b devm_iounmap +EXPORT_SYMBOL vmlinux 0x4e3cc45e pagecache_write_begin +EXPORT_SYMBOL vmlinux 0x4e3d1d83 journal_wipe +EXPORT_SYMBOL vmlinux 0x4e6e8ea7 fg_console +EXPORT_SYMBOL vmlinux 0x4ea25709 dql_reset +EXPORT_SYMBOL vmlinux 0x4eabd77c agp_create_memory +EXPORT_SYMBOL vmlinux 0x4ec08c33 sk_free +EXPORT_SYMBOL vmlinux 0x4ed23fc6 dst_cow_metrics_generic +EXPORT_SYMBOL vmlinux 0x4edd72f7 block_all_signals +EXPORT_SYMBOL vmlinux 0x4efcef22 pci_biosrom_size +EXPORT_SYMBOL vmlinux 0x4f01b977 elv_unregister_queue +EXPORT_SYMBOL vmlinux 0x4f1cd128 security_tun_dev_create +EXPORT_SYMBOL vmlinux 0x4f20342a simple_release_fs +EXPORT_SYMBOL vmlinux 0x4f391d0e nla_parse +EXPORT_SYMBOL vmlinux 0x4f3b4f48 input_mt_init_slots +EXPORT_SYMBOL vmlinux 0x4f3b8730 scsi_get_host_dev +EXPORT_SYMBOL vmlinux 0x4f41e94e bdevname +EXPORT_SYMBOL vmlinux 0x4f430a6c neigh_destroy +EXPORT_SYMBOL vmlinux 0x4f476e96 init_cdrom_command +EXPORT_SYMBOL vmlinux 0x4f6472a7 arch_debugfs_dir +EXPORT_SYMBOL vmlinux 0x4f68e5c9 do_gettimeofday +EXPORT_SYMBOL vmlinux 0x4f6b400b _copy_from_user +EXPORT_SYMBOL vmlinux 0x4f6d00fb dm_unregister_target +EXPORT_SYMBOL vmlinux 0x4f783f30 acpi_read +EXPORT_SYMBOL vmlinux 0x4f8b5ddb _copy_to_user +EXPORT_SYMBOL vmlinux 0x4f94f1ba idr_get_next +EXPORT_SYMBOL vmlinux 0x4fc1cfe1 netif_set_real_num_rx_queues +EXPORT_SYMBOL vmlinux 0x4fd18c14 pci_scan_bridge +EXPORT_SYMBOL vmlinux 0x4fdee897 i8042_command +EXPORT_SYMBOL vmlinux 0x50097088 security_tun_dev_free_security +EXPORT_SYMBOL vmlinux 0x50108d19 vga_switcheroo_register_handler +EXPORT_SYMBOL vmlinux 0x50123863 rtnl_configure_link +EXPORT_SYMBOL vmlinux 0x504a0459 try_module_get +EXPORT_SYMBOL vmlinux 0x50529870 acpi_get_gpe_status +EXPORT_SYMBOL vmlinux 0x50641a04 serio_unregister_port +EXPORT_SYMBOL vmlinux 0x50661395 km_state_expired +EXPORT_SYMBOL vmlinux 0x5079d4cb security_inode_setsecctx +EXPORT_SYMBOL vmlinux 0x50850737 inet_csk_prepare_forced_close +EXPORT_SYMBOL vmlinux 0x509c41f4 textsearch_find_continuous +EXPORT_SYMBOL vmlinux 0x50a90e8d bsearch +EXPORT_SYMBOL vmlinux 0x50d2592d hex_dump_to_buffer +EXPORT_SYMBOL vmlinux 0x50d68377 arch_phys_wc_del +EXPORT_SYMBOL vmlinux 0x50f0c88f max8925_reg_write +EXPORT_SYMBOL vmlinux 0x50f545a1 scsi_cmd_ioctl +EXPORT_SYMBOL vmlinux 0x5108ce37 unregister_console +EXPORT_SYMBOL vmlinux 0x510f621d dquot_acquire +EXPORT_SYMBOL vmlinux 0x5117e5c8 pci_enable_device +EXPORT_SYMBOL vmlinux 0x5118c382 secure_dccp_sequence_number +EXPORT_SYMBOL vmlinux 0x511ab427 wait_for_completion_killable +EXPORT_SYMBOL vmlinux 0x51259587 free_buffer_head +EXPORT_SYMBOL vmlinux 0x512b7c7f proc_dointvec_userhz_jiffies +EXPORT_SYMBOL vmlinux 0x51372ec3 jbd2_journal_revoke +EXPORT_SYMBOL vmlinux 0x513d72a4 ip_fragment +EXPORT_SYMBOL vmlinux 0x5143c678 param_get_invbool +EXPORT_SYMBOL vmlinux 0x5164795b processors +EXPORT_SYMBOL vmlinux 0x5174eac8 dm_get_device +EXPORT_SYMBOL vmlinux 0x517e0861 skb_free_datagram_locked +EXPORT_SYMBOL vmlinux 0x5182420f ida_pre_get +EXPORT_SYMBOL vmlinux 0x51aa1cd4 file_sb_list_del +EXPORT_SYMBOL vmlinux 0x51aae676 delete_from_page_cache +EXPORT_SYMBOL vmlinux 0x51d12d4e acpi_pci_disabled +EXPORT_SYMBOL vmlinux 0x51dce73b xfrm_state_walk_init +EXPORT_SYMBOL vmlinux 0x51f1eee1 input_register_handler +EXPORT_SYMBOL vmlinux 0x52006d56 acpi_walk_resources +EXPORT_SYMBOL vmlinux 0x52026cdf security_sb_parse_opts_str +EXPORT_SYMBOL vmlinux 0x52095e19 acpi_get_data +EXPORT_SYMBOL vmlinux 0x52130046 acpi_check_address_range +EXPORT_SYMBOL vmlinux 0x521b23a6 seq_release +EXPORT_SYMBOL vmlinux 0x521b36b5 qdisc_put_rtab +EXPORT_SYMBOL vmlinux 0x52428cc8 parent_mem_cgroup +EXPORT_SYMBOL vmlinux 0x5247e0d0 jbd2_journal_forget +EXPORT_SYMBOL vmlinux 0x5255764c blkdev_issue_write_same +EXPORT_SYMBOL vmlinux 0x525e026f acpi_os_unmap_generic_address +EXPORT_SYMBOL vmlinux 0x525fdada __mmc_claim_host +EXPORT_SYMBOL vmlinux 0x527b11e4 quota_send_warning +EXPORT_SYMBOL vmlinux 0x52a66fc0 may_umount +EXPORT_SYMBOL vmlinux 0x52bdf743 pcim_iomap_regions_request_all +EXPORT_SYMBOL vmlinux 0x52cf2dea __lock_page +EXPORT_SYMBOL vmlinux 0x52d42c95 set_current_groups +EXPORT_SYMBOL vmlinux 0x52dbd7e1 dev_get_by_name +EXPORT_SYMBOL vmlinux 0x52dd2f1b input_mt_get_slot_by_key +EXPORT_SYMBOL vmlinux 0x52e1077c jbd2_journal_lock_updates +EXPORT_SYMBOL vmlinux 0x530b1e98 pm_suspend +EXPORT_SYMBOL vmlinux 0x531b604e __virt_addr_valid +EXPORT_SYMBOL vmlinux 0x53326531 mempool_alloc_pages +EXPORT_SYMBOL vmlinux 0x533f2f40 udp6_csum_init +EXPORT_SYMBOL vmlinux 0x5341a192 mmc_erase +EXPORT_SYMBOL vmlinux 0x536b9970 generic_permission +EXPORT_SYMBOL vmlinux 0x5377e556 hex2bin +EXPORT_SYMBOL vmlinux 0x5388da30 blk_rq_unmap_user +EXPORT_SYMBOL vmlinux 0x5392a9a3 wireless_send_event +EXPORT_SYMBOL vmlinux 0x5399afaf blk_queue_alignment_offset +EXPORT_SYMBOL vmlinux 0x53b6566f __genl_register_family_with_ops +EXPORT_SYMBOL vmlinux 0x53c1fda9 jbd2_journal_force_commit +EXPORT_SYMBOL vmlinux 0x53ddf462 xfrm_spd_getinfo +EXPORT_SYMBOL vmlinux 0x53e07913 install_exec_creds +EXPORT_SYMBOL vmlinux 0x53f6ffbc wait_for_completion_timeout +EXPORT_SYMBOL vmlinux 0x54059a2a amd_iommu_pc_get_max_counters +EXPORT_SYMBOL vmlinux 0x5409775b free_irq_cpu_rmap +EXPORT_SYMBOL vmlinux 0x54245b39 kstrtoull_from_user +EXPORT_SYMBOL vmlinux 0x542d7f21 tcp_connect +EXPORT_SYMBOL vmlinux 0x5434553e console_stop +EXPORT_SYMBOL vmlinux 0x5435ed3b __remove_inode_hash +EXPORT_SYMBOL vmlinux 0x543aee4e udp_ioctl +EXPORT_SYMBOL vmlinux 0x543ef284 seq_hlist_start +EXPORT_SYMBOL vmlinux 0x544b0c11 acpi_lid_notifier_register +EXPORT_SYMBOL vmlinux 0x54554948 kobject_put +EXPORT_SYMBOL vmlinux 0x5455c3a3 i2c_smbus_write_byte +EXPORT_SYMBOL vmlinux 0x5470f768 phy_get_eee_err +EXPORT_SYMBOL vmlinux 0x54a9db5f _kstrtoul +EXPORT_SYMBOL vmlinux 0x54e6fcdd net_enable_timestamp +EXPORT_SYMBOL vmlinux 0x54efb5d6 cpu_number +EXPORT_SYMBOL vmlinux 0x54f21cff __send_remote_softirq +EXPORT_SYMBOL vmlinux 0x551bd071 __rb_erase_color +EXPORT_SYMBOL vmlinux 0x551eca78 nf_log_set +EXPORT_SYMBOL vmlinux 0x55333d82 keyring_clear +EXPORT_SYMBOL vmlinux 0x553d9a7d mutex_lock_interruptible +EXPORT_SYMBOL vmlinux 0x5541ea93 on_each_cpu +EXPORT_SYMBOL vmlinux 0x555b89d3 genlmsg_put +EXPORT_SYMBOL vmlinux 0x55671680 lg_lock_init +EXPORT_SYMBOL vmlinux 0x5567c227 kernel_cpustat +EXPORT_SYMBOL vmlinux 0x55702687 bitmap_close_sync +EXPORT_SYMBOL vmlinux 0x5574fc29 abx500_get_register_page_interruptible +EXPORT_SYMBOL vmlinux 0x557f59c3 scsi_add_device +EXPORT_SYMBOL vmlinux 0x5594be03 bitmap_remap +EXPORT_SYMBOL vmlinux 0x559e98f5 scsi_host_alloc +EXPORT_SYMBOL vmlinux 0x55b08916 set_pages_uc +EXPORT_SYMBOL vmlinux 0x55b88bd4 devfreq_monitor_suspend +EXPORT_SYMBOL vmlinux 0x55ccd4d2 hdmi_audio_infoframe_pack +EXPORT_SYMBOL vmlinux 0x55f5019b __kmalloc_node +EXPORT_SYMBOL vmlinux 0x560ffb71 tcf_hash_lookup +EXPORT_SYMBOL vmlinux 0x5614b010 xfrm_policy_walk_done +EXPORT_SYMBOL vmlinux 0x562a088e sb_min_blocksize +EXPORT_SYMBOL vmlinux 0x5635a60a vmalloc_user +EXPORT_SYMBOL vmlinux 0x5642793a radix_tree_tag_clear +EXPORT_SYMBOL vmlinux 0x567f9896 dquot_quota_on +EXPORT_SYMBOL vmlinux 0x567fa316 tty_port_close_start +EXPORT_SYMBOL vmlinux 0x569ee328 inode_init_owner +EXPORT_SYMBOL vmlinux 0x56c8799d scsi_kunmap_atomic_sg +EXPORT_SYMBOL vmlinux 0x56d5b91a ipv6_chk_prefix +EXPORT_SYMBOL vmlinux 0x56d63a2e dma_common_get_sgtable +EXPORT_SYMBOL vmlinux 0x570a83e5 vfs_create +EXPORT_SYMBOL vmlinux 0x572e85d4 blk_lookup_devt +EXPORT_SYMBOL vmlinux 0x5735cdcf journal_start_commit +EXPORT_SYMBOL vmlinux 0x57575f08 dmaengine_put +EXPORT_SYMBOL vmlinux 0x57674fd7 __sw_hweight16 +EXPORT_SYMBOL vmlinux 0x5791658f blk_queue_free_tags +EXPORT_SYMBOL vmlinux 0x5792f848 strlcpy +EXPORT_SYMBOL vmlinux 0x57a6ccd0 down_read +EXPORT_SYMBOL vmlinux 0x57a8a5d4 input_unregister_device +EXPORT_SYMBOL vmlinux 0x57b71e5c mmc_suspend_host +EXPORT_SYMBOL vmlinux 0x57c26013 nf_register_hook +EXPORT_SYMBOL vmlinux 0x57c7f93f dev_notice +EXPORT_SYMBOL vmlinux 0x57c8214f xfrm_state_insert +EXPORT_SYMBOL vmlinux 0x57d14e8f scsi_setup_blk_pc_cmnd +EXPORT_SYMBOL vmlinux 0x57daf37f ip_getsockopt +EXPORT_SYMBOL vmlinux 0x57f37fc7 pci_enable_msix +EXPORT_SYMBOL vmlinux 0x57f3fceb __cleancache_init_fs +EXPORT_SYMBOL vmlinux 0x581181e7 xfrm_register_mode +EXPORT_SYMBOL vmlinux 0x5838f6c9 rtc_valid_tm +EXPORT_SYMBOL vmlinux 0x584738f9 rdmsr_safe_on_cpu +EXPORT_SYMBOL vmlinux 0x584a4bf2 kmem_cache_destroy +EXPORT_SYMBOL vmlinux 0x5857b225 ioread16_rep +EXPORT_SYMBOL vmlinux 0x585d7c03 __scsi_put_command +EXPORT_SYMBOL vmlinux 0x5860aad4 add_wait_queue +EXPORT_SYMBOL vmlinux 0x586103be acpi_setup_gpe_for_wake +EXPORT_SYMBOL vmlinux 0x5864b431 xfrm_policy_alloc +EXPORT_SYMBOL vmlinux 0x589b632c bmap +EXPORT_SYMBOL vmlinux 0x58b1c3c8 dev_uc_add +EXPORT_SYMBOL vmlinux 0x58b518fb mount_ns +EXPORT_SYMBOL vmlinux 0x58ce13e7 simple_transaction_set +EXPORT_SYMBOL vmlinux 0x58dca9ca bio_add_pc_page +EXPORT_SYMBOL vmlinux 0x58fb12e4 mmc_can_reset +EXPORT_SYMBOL vmlinux 0x593c8eaf open_exec +EXPORT_SYMBOL vmlinux 0x594bf15b ioport_map +EXPORT_SYMBOL vmlinux 0x594e90f2 generic_pipe_buf_map +EXPORT_SYMBOL vmlinux 0x5960a339 agp_free_memory +EXPORT_SYMBOL vmlinux 0x5967c929 __tracepoint_kmem_cache_alloc_node +EXPORT_SYMBOL vmlinux 0x59759b2b vfsmount_lock +EXPORT_SYMBOL vmlinux 0x597b06a9 lz4_decompress_unknownoutputsize +EXPORT_SYMBOL vmlinux 0x59843a76 security_inode_notifysecctx +EXPORT_SYMBOL vmlinux 0x5988c1b5 nla_put_nohdr +EXPORT_SYMBOL vmlinux 0x5991219c cancel_delayed_work +EXPORT_SYMBOL vmlinux 0x599cb1e7 blk_alloc_queue_node +EXPORT_SYMBOL vmlinux 0x59a0bca4 dev_loopback_xmit +EXPORT_SYMBOL vmlinux 0x59b34548 pcix_get_mmrbc +EXPORT_SYMBOL vmlinux 0x59b4d445 dma_async_tx_descriptor_init +EXPORT_SYMBOL vmlinux 0x59bc9609 acpi_write_bit_register +EXPORT_SYMBOL vmlinux 0x59c34c83 mb_cache_entry_release +EXPORT_SYMBOL vmlinux 0x59cc5e54 security_file_permission +EXPORT_SYMBOL vmlinux 0x59da2133 tcp_md5_hash_header +EXPORT_SYMBOL vmlinux 0x59dd5ddb inet_del_offload +EXPORT_SYMBOL vmlinux 0x59f3013f fb_set_suspend +EXPORT_SYMBOL vmlinux 0x59f950d5 unregister_filesystem +EXPORT_SYMBOL vmlinux 0x5a037fe0 fsnotify_destroy_mark +EXPORT_SYMBOL vmlinux 0x5a06365b create_syslog_header +EXPORT_SYMBOL vmlinux 0x5a1d01c6 fsync_bdev +EXPORT_SYMBOL vmlinux 0x5a42c4b8 tty_hung_up_p +EXPORT_SYMBOL vmlinux 0x5a4896a8 __put_user_2 +EXPORT_SYMBOL vmlinux 0x5a5d4689 padata_register_cpumask_notifier +EXPORT_SYMBOL vmlinux 0x5a8c9da8 acpi_video_backlight_quirks +EXPORT_SYMBOL vmlinux 0x5a921311 strncmp +EXPORT_SYMBOL vmlinux 0x5ac21822 irq_stat +EXPORT_SYMBOL vmlinux 0x5ac376a5 acpi_install_fixed_event_handler +EXPORT_SYMBOL vmlinux 0x5ae50279 iov_iter_single_seg_count +EXPORT_SYMBOL vmlinux 0x5aeb145f complete_and_exit +EXPORT_SYMBOL vmlinux 0x5b271d86 acpi_video_dmi_promote_vendor +EXPORT_SYMBOL vmlinux 0x5b29f86c scsi_print_command +EXPORT_SYMBOL vmlinux 0x5b56860c vm_munmap +EXPORT_SYMBOL vmlinux 0x5b5bb9e0 pipe_lock +EXPORT_SYMBOL vmlinux 0x5ba53020 vfs_fstat +EXPORT_SYMBOL vmlinux 0x5baf1f6b sock_create +EXPORT_SYMBOL vmlinux 0x5bc10524 printk_emit +EXPORT_SYMBOL vmlinux 0x5bc92b06 lease_modify +EXPORT_SYMBOL vmlinux 0x5bcf3f31 tcf_destroy_chain +EXPORT_SYMBOL vmlinux 0x5bec4814 notify_change +EXPORT_SYMBOL vmlinux 0x5c3edd59 _raw_write_unlock_bh +EXPORT_SYMBOL vmlinux 0x5c50e246 swiotlb_alloc_coherent +EXPORT_SYMBOL vmlinux 0x5c73a45b block_is_partially_uptodate +EXPORT_SYMBOL vmlinux 0x5c8b5ce8 prepare_to_wait +EXPORT_SYMBOL vmlinux 0x5c8b9070 uart_write_wakeup +EXPORT_SYMBOL vmlinux 0x5cae8890 bio_integrity_split +EXPORT_SYMBOL vmlinux 0x5cefabaa try_to_free_buffers +EXPORT_SYMBOL vmlinux 0x5cf53ce2 input_free_minor +EXPORT_SYMBOL vmlinux 0x5d0b1892 param_set_invbool +EXPORT_SYMBOL vmlinux 0x5d247011 del_gendisk +EXPORT_SYMBOL vmlinux 0x5d2b6b73 ipv6_skip_exthdr +EXPORT_SYMBOL vmlinux 0x5d550c4d scsi_sd_probe_domain +EXPORT_SYMBOL vmlinux 0x5d56314c block_write_full_page_endio +EXPORT_SYMBOL vmlinux 0x5d56d2d8 input_allocate_device +EXPORT_SYMBOL vmlinux 0x5d5b5a16 radix_tree_delete +EXPORT_SYMBOL vmlinux 0x5d5d5437 splice_from_pipe_next +EXPORT_SYMBOL vmlinux 0x5d74dbcf pnp_range_reserved +EXPORT_SYMBOL vmlinux 0x5d9d8f6f pci_find_bus +EXPORT_SYMBOL vmlinux 0x5dfa4572 input_unregister_handle +EXPORT_SYMBOL vmlinux 0x5e106959 xfrm_unregister_type +EXPORT_SYMBOL vmlinux 0x5e144eb2 locks_init_lock +EXPORT_SYMBOL vmlinux 0x5e15d54c ida_init +EXPORT_SYMBOL vmlinux 0x5e28e9ff scsi_ioctl +EXPORT_SYMBOL vmlinux 0x5e2ca8d8 d_hash_and_lookup +EXPORT_SYMBOL vmlinux 0x5e46b864 phy_driver_register +EXPORT_SYMBOL vmlinux 0x5e477e49 simple_readpage +EXPORT_SYMBOL vmlinux 0x5e4f7575 vlan_untag +EXPORT_SYMBOL vmlinux 0x5e795e61 pci_disable_msi +EXPORT_SYMBOL vmlinux 0x5e7d7e61 dev_add_pack +EXPORT_SYMBOL vmlinux 0x5e908b83 __neigh_for_each_release +EXPORT_SYMBOL vmlinux 0x5e95b1cd current_umask +EXPORT_SYMBOL vmlinux 0x5eb24829 dm_shift_arg +EXPORT_SYMBOL vmlinux 0x5eb2a9a2 fsnotify_init_mark +EXPORT_SYMBOL vmlinux 0x5eba54aa neigh_parms_release +EXPORT_SYMBOL vmlinux 0x5ed040b0 pm_set_vt_switch +EXPORT_SYMBOL vmlinux 0x5eddb182 inet_dgram_connect +EXPORT_SYMBOL vmlinux 0x5edfbd43 udp_poll +EXPORT_SYMBOL vmlinux 0x5ef5a727 pv_mmu_ops +EXPORT_SYMBOL vmlinux 0x5f005368 kstrtou8 +EXPORT_SYMBOL vmlinux 0x5f0f4a4a padata_start +EXPORT_SYMBOL vmlinux 0x5f1e6f80 gnet_stats_copy_app +EXPORT_SYMBOL vmlinux 0x5f2ea640 seq_printf +EXPORT_SYMBOL vmlinux 0x5f3c8f5c mmc_assume_removable +EXPORT_SYMBOL vmlinux 0x5f3f0fd6 unmap_underlying_metadata +EXPORT_SYMBOL vmlinux 0x5f41d9a7 i2c_smbus_read_byte_data +EXPORT_SYMBOL vmlinux 0x5f557703 acpi_evaluate_hotplug_ost +EXPORT_SYMBOL vmlinux 0x5f567400 uart_remove_one_port +EXPORT_SYMBOL vmlinux 0x5f58f676 flex_array_get_ptr +EXPORT_SYMBOL vmlinux 0x5f60febe put_tty_driver +EXPORT_SYMBOL vmlinux 0x5fb14a73 generic_file_direct_write +EXPORT_SYMBOL vmlinux 0x5fb2a613 vga_switcheroo_get_client_state +EXPORT_SYMBOL vmlinux 0x5fbe1328 page_follow_link_light +EXPORT_SYMBOL vmlinux 0x5fcd3815 scsi_host_get +EXPORT_SYMBOL vmlinux 0x5fd8a01d pci_request_selected_regions_exclusive +EXPORT_SYMBOL vmlinux 0x5fe22bf5 pm8606_osc_enable +EXPORT_SYMBOL vmlinux 0x5ff42b08 acpi_video_get_capabilities +EXPORT_SYMBOL vmlinux 0x5ff7d01a pci_bus_write_config_word +EXPORT_SYMBOL vmlinux 0x600683d3 do_unblank_screen +EXPORT_SYMBOL vmlinux 0x60105cd4 sock_wake_async +EXPORT_SYMBOL vmlinux 0x601f665f dm_io_client_create +EXPORT_SYMBOL vmlinux 0x6029a8a8 xfrm_state_unregister_afinfo +EXPORT_SYMBOL vmlinux 0x602ed00d acpi_current_gpe_count +EXPORT_SYMBOL vmlinux 0x60348f4d journal_lock_updates +EXPORT_SYMBOL vmlinux 0x60352082 register_inet6addr_notifier +EXPORT_SYMBOL vmlinux 0x60402af1 update_time +EXPORT_SYMBOL vmlinux 0x6056be5c tc_classify_compat +EXPORT_SYMBOL vmlinux 0x6059fc21 amd_iommu_domain_set_gcr3 +EXPORT_SYMBOL vmlinux 0x6067cd17 tcp_gro_receive +EXPORT_SYMBOL vmlinux 0x606d0b09 secure_tcpv6_sequence_number +EXPORT_SYMBOL vmlinux 0x607affd9 fsnotify_put_group +EXPORT_SYMBOL vmlinux 0x60918c2b __d_drop +EXPORT_SYMBOL vmlinux 0x609f1c7e synchronize_net +EXPORT_SYMBOL vmlinux 0x609f5b35 ucs2_strnlen +EXPORT_SYMBOL vmlinux 0x60a32ea9 pm_power_off +EXPORT_SYMBOL vmlinux 0x60b4b1d6 block_write_begin +EXPORT_SYMBOL vmlinux 0x60c5ba11 account_page_redirty +EXPORT_SYMBOL vmlinux 0x60cd6eb1 skb_flow_dissect +EXPORT_SYMBOL vmlinux 0x60f061a8 dev_queue_xmit +EXPORT_SYMBOL vmlinux 0x60f21583 __wait_on_bit_lock +EXPORT_SYMBOL vmlinux 0x610f6f20 nf_unregister_hooks +EXPORT_SYMBOL vmlinux 0x610ff59c deactivate_locked_super +EXPORT_SYMBOL vmlinux 0x612390ad netpoll_set_trap +EXPORT_SYMBOL vmlinux 0x61273b07 da903x_query_status +EXPORT_SYMBOL vmlinux 0x6128b5fc __printk_ratelimit +EXPORT_SYMBOL vmlinux 0x612b2b4a generic_getxattr +EXPORT_SYMBOL vmlinux 0x613cf38b netpoll_print_options +EXPORT_SYMBOL vmlinux 0x61437537 gnet_stats_copy_basic +EXPORT_SYMBOL vmlinux 0x614383c0 acpi_get_object_info +EXPORT_SYMBOL vmlinux 0x61751fc7 aio_complete +EXPORT_SYMBOL vmlinux 0x617643a2 param_set_long +EXPORT_SYMBOL vmlinux 0x617d7244 __invalidate_device +EXPORT_SYMBOL vmlinux 0x618911fc numa_node +EXPORT_SYMBOL vmlinux 0x619cb7dd simple_read_from_buffer +EXPORT_SYMBOL vmlinux 0x61a19f9b generic_pipe_buf_unmap +EXPORT_SYMBOL vmlinux 0x61b1f9a3 pci_target_state +EXPORT_SYMBOL vmlinux 0x61b7b126 simple_strtoull +EXPORT_SYMBOL vmlinux 0x61c65eb9 netif_carrier_off +EXPORT_SYMBOL vmlinux 0x61d292a3 netdev_boot_setup_check +EXPORT_SYMBOL vmlinux 0x61fb248a node_states +EXPORT_SYMBOL vmlinux 0x61fcf22d gnet_stats_start_copy_compat +EXPORT_SYMBOL vmlinux 0x62049256 acpi_disable +EXPORT_SYMBOL vmlinux 0x620bbdcf arp_invalidate +EXPORT_SYMBOL vmlinux 0x6214aef2 cpufreq_unregister_notifier +EXPORT_SYMBOL vmlinux 0x62174c1b serio_open +EXPORT_SYMBOL vmlinux 0x6225637e md5_transform +EXPORT_SYMBOL vmlinux 0x6226b9fa machine_to_phys_mapping +EXPORT_SYMBOL vmlinux 0x6228c21f smp_call_function_single +EXPORT_SYMBOL vmlinux 0x62310359 pci_release_selected_regions +EXPORT_SYMBOL vmlinux 0x6237f6b5 acpi_enable_event +EXPORT_SYMBOL vmlinux 0x623dda47 mmc_register_driver +EXPORT_SYMBOL vmlinux 0x6253e120 tty_hangup +EXPORT_SYMBOL vmlinux 0x62582314 mmc_of_parse +EXPORT_SYMBOL vmlinux 0x626493c9 agp_generic_free_gatt_table +EXPORT_SYMBOL vmlinux 0x62737e1d sock_unregister +EXPORT_SYMBOL vmlinux 0x62748e70 acpi_set_current_resources +EXPORT_SYMBOL vmlinux 0x628121e9 register_sysctl_table +EXPORT_SYMBOL vmlinux 0x62827bec security_secctx_to_secid +EXPORT_SYMBOL vmlinux 0x62849ac7 dev_valid_name +EXPORT_SYMBOL vmlinux 0x628fcf3d blk_get_request +EXPORT_SYMBOL vmlinux 0x629a59d3 pm860x_set_bits +EXPORT_SYMBOL vmlinux 0x62ac92f7 remove_proc_entry +EXPORT_SYMBOL vmlinux 0x62b22819 page_symlink +EXPORT_SYMBOL vmlinux 0x62fd6207 param_set_charp +EXPORT_SYMBOL vmlinux 0x6301a5e4 swiotlb_sync_single_for_cpu +EXPORT_SYMBOL vmlinux 0x63187451 pcie_aspm_support_enabled +EXPORT_SYMBOL vmlinux 0x63225c4f dquot_resume +EXPORT_SYMBOL vmlinux 0x63239e80 sk_release_kernel +EXPORT_SYMBOL vmlinux 0x633dd20f no_llseek +EXPORT_SYMBOL vmlinux 0x634be61c clocksource_change_rating +EXPORT_SYMBOL vmlinux 0x6360839b pci_add_new_bus +EXPORT_SYMBOL vmlinux 0x636a5691 acpi_register_ioapic +EXPORT_SYMBOL vmlinux 0x636ab13d dcb_setapp +EXPORT_SYMBOL vmlinux 0x636bb781 input_mt_assign_slots +EXPORT_SYMBOL vmlinux 0x63922bbd vfs_stat +EXPORT_SYMBOL vmlinux 0x63a01291 acpi_leave_sleep_state_prep +EXPORT_SYMBOL vmlinux 0x63a59d9a sock_create_lite +EXPORT_SYMBOL vmlinux 0x63bcdba0 starget_for_each_device +EXPORT_SYMBOL vmlinux 0x63bdb040 bio_advance +EXPORT_SYMBOL vmlinux 0x63d81699 pm860x_bulk_write +EXPORT_SYMBOL vmlinux 0x63eb9355 panic_blink +EXPORT_SYMBOL vmlinux 0x63ebec34 agp_backend_acquire +EXPORT_SYMBOL vmlinux 0x63fc232f strlen_user +EXPORT_SYMBOL vmlinux 0x64005b5a vfs_follow_link +EXPORT_SYMBOL vmlinux 0x6403e338 tcp_memory_pressure +EXPORT_SYMBOL vmlinux 0x642a9cc3 bioset_free +EXPORT_SYMBOL vmlinux 0x6449fd41 acpi_install_address_space_handler +EXPORT_SYMBOL vmlinux 0x645b44b0 pcim_iounmap +EXPORT_SYMBOL vmlinux 0x645e3266 input_set_capability +EXPORT_SYMBOL vmlinux 0x6478134c ec_burst_enable +EXPORT_SYMBOL vmlinux 0x6483ac21 sock_get_timestamp +EXPORT_SYMBOL vmlinux 0x6491a81c nf_hook_slow +EXPORT_SYMBOL vmlinux 0x64999478 congestion_wait +EXPORT_SYMBOL vmlinux 0x64bbc288 string_unescape +EXPORT_SYMBOL vmlinux 0x64e5b0a3 padata_do_serial +EXPORT_SYMBOL vmlinux 0x64eae7ad set_memory_array_wb +EXPORT_SYMBOL vmlinux 0x64f85f79 dev_mc_init +EXPORT_SYMBOL vmlinux 0x650a6767 prandom_u32_state +EXPORT_SYMBOL vmlinux 0x6513a3fa fb_get_color_depth +EXPORT_SYMBOL vmlinux 0x651a4139 test_taint +EXPORT_SYMBOL vmlinux 0x652ce9aa nla_memcmp +EXPORT_SYMBOL vmlinux 0x65408378 zlib_inflate_blob +EXPORT_SYMBOL vmlinux 0x65468a2e blk_queue_resize_tags +EXPORT_SYMBOL vmlinux 0x6555bdae input_mt_report_slot_state +EXPORT_SYMBOL vmlinux 0x655f1ab0 set_memory_array_wc +EXPORT_SYMBOL vmlinux 0x657fc51e jbd2_journal_begin_ordered_truncate +EXPORT_SYMBOL vmlinux 0x6596c315 inetdev_by_index +EXPORT_SYMBOL vmlinux 0x65c433ea generic_cont_expand_simple +EXPORT_SYMBOL vmlinux 0x65c6ee04 unlazy_fpu +EXPORT_SYMBOL vmlinux 0x65d67a20 blk_start_plug +EXPORT_SYMBOL vmlinux 0x65d9e877 cpufreq_register_notifier +EXPORT_SYMBOL vmlinux 0x65dccf13 xz_dec_end +EXPORT_SYMBOL vmlinux 0x65dd3c90 crypto_sha1_update +EXPORT_SYMBOL vmlinux 0x65e0d6d7 memory_read_from_buffer +EXPORT_SYMBOL vmlinux 0x65f3ad9a fb_videomode_to_var +EXPORT_SYMBOL vmlinux 0x66024c31 ps2_command +EXPORT_SYMBOL vmlinux 0x6605f97f flex_array_clear +EXPORT_SYMBOL vmlinux 0x661fcbe0 netif_carrier_on +EXPORT_SYMBOL vmlinux 0x66303479 bio_integrity_prep +EXPORT_SYMBOL vmlinux 0x663ec370 pci_enable_device_io +EXPORT_SYMBOL vmlinux 0x663f7cd0 acpi_install_table_handler +EXPORT_SYMBOL vmlinux 0x664b8ed6 alloc_pages_current +EXPORT_SYMBOL vmlinux 0x666f2b40 dev_mc_del +EXPORT_SYMBOL vmlinux 0x6675960f swiotlb_map_sg_attrs +EXPORT_SYMBOL vmlinux 0x6689c308 netlink_rcv_skb +EXPORT_SYMBOL vmlinux 0x668da8d5 zlib_inflateIncomp +EXPORT_SYMBOL vmlinux 0x668e2acd simple_link +EXPORT_SYMBOL vmlinux 0x66a67dab flex_array_shrink +EXPORT_SYMBOL vmlinux 0x66acfbbd agp_enable +EXPORT_SYMBOL vmlinux 0x66f40316 jbd2_journal_ack_err +EXPORT_SYMBOL vmlinux 0x66f7be3c scsi_execute +EXPORT_SYMBOL vmlinux 0x66f94cc6 unlock_buffer +EXPORT_SYMBOL vmlinux 0x670526de dev_activate +EXPORT_SYMBOL vmlinux 0x670dd992 textsearch_register +EXPORT_SYMBOL vmlinux 0x671e5056 skb_dequeue_tail +EXPORT_SYMBOL vmlinux 0x6725f7b0 scsi_command_normalize_sense +EXPORT_SYMBOL vmlinux 0x6729d3df __get_user_4 +EXPORT_SYMBOL vmlinux 0x673936f7 inode_dio_wait +EXPORT_SYMBOL vmlinux 0x673f815e agp_bridges +EXPORT_SYMBOL vmlinux 0x674c80be dquot_disable +EXPORT_SYMBOL vmlinux 0x67991638 vga_tryget +EXPORT_SYMBOL vmlinux 0x679f5c30 loop_backing_file +EXPORT_SYMBOL vmlinux 0x67a0306a percpu_counter_set +EXPORT_SYMBOL vmlinux 0x67a2a048 bio_sector_offset +EXPORT_SYMBOL vmlinux 0x67a5dec1 pnp_start_dev +EXPORT_SYMBOL vmlinux 0x67b27ec1 tty_std_termios +EXPORT_SYMBOL vmlinux 0x67b78eb3 seq_hlist_next_rcu +EXPORT_SYMBOL vmlinux 0x67d396b0 rwsem_down_read_failed +EXPORT_SYMBOL vmlinux 0x67d4a64b request_firmware_nowait +EXPORT_SYMBOL vmlinux 0x67e839f0 kfree_skb_partial +EXPORT_SYMBOL vmlinux 0x680a92e1 skb_clone +EXPORT_SYMBOL vmlinux 0x68414a7e blk_queue_dma_pad +EXPORT_SYMBOL vmlinux 0x685de782 kernel_recvmsg +EXPORT_SYMBOL vmlinux 0x6866fba4 vlan_dev_real_dev +EXPORT_SYMBOL vmlinux 0x686a967d skb_dequeue +EXPORT_SYMBOL vmlinux 0x687692c0 vm_insert_pfn +EXPORT_SYMBOL vmlinux 0x687b6a16 kdbgetsymval +EXPORT_SYMBOL vmlinux 0x687fad06 bitmap_unplug +EXPORT_SYMBOL vmlinux 0x689099e9 fd_install +EXPORT_SYMBOL vmlinux 0x689f3a2f ipv6_getsockopt +EXPORT_SYMBOL vmlinux 0x68a64354 filemap_fdatawrite_range +EXPORT_SYMBOL vmlinux 0x68aca4ad down +EXPORT_SYMBOL vmlinux 0x68d013ff backlight_device_register +EXPORT_SYMBOL vmlinux 0x68e05d57 getrawmonotonic +EXPORT_SYMBOL vmlinux 0x68f69add netif_set_real_num_tx_queues +EXPORT_SYMBOL vmlinux 0x691001b5 acpi_evaluate_integer +EXPORT_SYMBOL vmlinux 0x6913650e kill_litter_super +EXPORT_SYMBOL vmlinux 0x691d5274 nla_reserve_nohdr +EXPORT_SYMBOL vmlinux 0x693539fe override_creds +EXPORT_SYMBOL vmlinux 0x693e9b8d get_tz_trend +EXPORT_SYMBOL vmlinux 0x69514730 phy_ethtool_set_eee +EXPORT_SYMBOL vmlinux 0x6971447a rtc_month_days +EXPORT_SYMBOL vmlinux 0x6988d0ca cpu_dr7 +EXPORT_SYMBOL vmlinux 0x698dff9a ppp_register_net_channel +EXPORT_SYMBOL vmlinux 0x699edb04 journal_unlock_updates +EXPORT_SYMBOL vmlinux 0x69a0ca7d iowrite16be +EXPORT_SYMBOL vmlinux 0x69a358a6 iomem_resource +EXPORT_SYMBOL vmlinux 0x69acdf38 memcpy +EXPORT_SYMBOL vmlinux 0x69ad2f20 kstrtouint +EXPORT_SYMBOL vmlinux 0x69bf0c27 i2c_release_client +EXPORT_SYMBOL vmlinux 0x69c2c8af gen_pool_add_virt +EXPORT_SYMBOL vmlinux 0x69d38ed9 __scsi_print_sense +EXPORT_SYMBOL vmlinux 0x69e27c7a bitmap_copy_le +EXPORT_SYMBOL vmlinux 0x69f7c773 __page_cache_alloc +EXPORT_SYMBOL vmlinux 0x69fbc0a2 acpi_get_event_resources +EXPORT_SYMBOL vmlinux 0x6a037cf1 mempool_kfree +EXPORT_SYMBOL vmlinux 0x6a1c682b blk_put_request +EXPORT_SYMBOL vmlinux 0x6a5ecb18 unregister_module_notifier +EXPORT_SYMBOL vmlinux 0x6a5fa363 sigprocmask +EXPORT_SYMBOL vmlinux 0x6a76f3ac blk_iopoll_enable +EXPORT_SYMBOL vmlinux 0x6a8f86bb tty_port_raise_dtr_rts +EXPORT_SYMBOL vmlinux 0x6ab40a35 pci_bus_read_dev_vendor_id +EXPORT_SYMBOL vmlinux 0x6acb973d iowrite32be +EXPORT_SYMBOL vmlinux 0x6ad85887 acpi_enable_gpe +EXPORT_SYMBOL vmlinux 0x6adc4fdc max8925_bulk_write +EXPORT_SYMBOL vmlinux 0x6add5c9a dmi_find_device +EXPORT_SYMBOL vmlinux 0x6af309d0 default_llseek +EXPORT_SYMBOL vmlinux 0x6b06fdce delayed_work_timer_fn +EXPORT_SYMBOL vmlinux 0x6b1b67d3 __bdevname +EXPORT_SYMBOL vmlinux 0x6b217fd8 scsi_scan_host +EXPORT_SYMBOL vmlinux 0x6b294330 log_start_commit +EXPORT_SYMBOL vmlinux 0x6b2db8ae vfs_lstat +EXPORT_SYMBOL vmlinux 0x6b2dc060 dump_stack +EXPORT_SYMBOL vmlinux 0x6b640864 nla_strlcpy +EXPORT_SYMBOL vmlinux 0x6b7589f4 param_set_bool +EXPORT_SYMBOL vmlinux 0x6b8a3fd3 inet_add_protocol +EXPORT_SYMBOL vmlinux 0x6bc11a64 journal_create +EXPORT_SYMBOL vmlinux 0x6bc2333b dcb_ieee_delapp +EXPORT_SYMBOL vmlinux 0x6bc3fbc0 __unregister_chrdev +EXPORT_SYMBOL vmlinux 0x6bcdf094 redraw_screen +EXPORT_SYMBOL vmlinux 0x6bdcfd99 qdisc_class_hash_remove +EXPORT_SYMBOL vmlinux 0x6c26a5d4 neigh_seq_next +EXPORT_SYMBOL vmlinux 0x6c389761 acpi_bus_get_private_data +EXPORT_SYMBOL vmlinux 0x6c433396 __mark_inode_dirty +EXPORT_SYMBOL vmlinux 0x6c5101d8 percpu_counter_compare +EXPORT_SYMBOL vmlinux 0x6c5bc8fe tcf_exts_dump_stats +EXPORT_SYMBOL vmlinux 0x6c61ce70 num_registered_fb +EXPORT_SYMBOL vmlinux 0x6c702af7 sysctl_udp_rmem_min +EXPORT_SYMBOL vmlinux 0x6c744919 netlink_ack +EXPORT_SYMBOL vmlinux 0x6c771d51 tcp_proc_register +EXPORT_SYMBOL vmlinux 0x6c7ea4f1 security_path_symlink +EXPORT_SYMBOL vmlinux 0x6c9a01bc __scm_send +EXPORT_SYMBOL vmlinux 0x6ca0a9a9 inode_init_always +EXPORT_SYMBOL vmlinux 0x6ca59276 get_gendisk +EXPORT_SYMBOL vmlinux 0x6cbaca3f posix_lock_file +EXPORT_SYMBOL vmlinux 0x6cc00ae7 release_pages +EXPORT_SYMBOL vmlinux 0x6cda63d5 revert_creds +EXPORT_SYMBOL vmlinux 0x6ce7140d inet6_register_icmp_sender +EXPORT_SYMBOL vmlinux 0x6ce7d2bd pnp_release_card_device +EXPORT_SYMBOL vmlinux 0x6cfdac26 mnt_drop_write_file +EXPORT_SYMBOL vmlinux 0x6cff3586 dquot_mark_dquot_dirty +EXPORT_SYMBOL vmlinux 0x6d044c26 param_ops_uint +EXPORT_SYMBOL vmlinux 0x6d0aba34 wait_for_completion +EXPORT_SYMBOL vmlinux 0x6d0f1f89 dm_table_get_mode +EXPORT_SYMBOL vmlinux 0x6d27ef64 __bitmap_empty +EXPORT_SYMBOL vmlinux 0x6d294e43 clock_t_to_jiffies +EXPORT_SYMBOL vmlinux 0x6d2fa80a unregister_cdrom +EXPORT_SYMBOL vmlinux 0x6d334118 __get_user_8 +EXPORT_SYMBOL vmlinux 0x6d340f64 tty_termios_input_baud_rate +EXPORT_SYMBOL vmlinux 0x6d3d0177 phy_ethtool_gset +EXPORT_SYMBOL vmlinux 0x6d42dd42 finish_no_open +EXPORT_SYMBOL vmlinux 0x6d50d99d sock_rfree +EXPORT_SYMBOL vmlinux 0x6d5a84ad tty_do_resize +EXPORT_SYMBOL vmlinux 0x6d6818ff gen_pool_alloc +EXPORT_SYMBOL vmlinux 0x6d71eb07 sock_wfree +EXPORT_SYMBOL vmlinux 0x6d785ace __scsi_iterate_devices +EXPORT_SYMBOL vmlinux 0x6dbfe9af bioset_integrity_create +EXPORT_SYMBOL vmlinux 0x6dc8e29c blk_queue_io_opt +EXPORT_SYMBOL vmlinux 0x6dc931f2 dev_err +EXPORT_SYMBOL vmlinux 0x6def2db2 half_md4_transform +EXPORT_SYMBOL vmlinux 0x6e03fed4 seq_escape +EXPORT_SYMBOL vmlinux 0x6e1b9a3c dev_change_carrier +EXPORT_SYMBOL vmlinux 0x6e297a62 __percpu_counter_init +EXPORT_SYMBOL vmlinux 0x6e720ff2 rtnl_unlock +EXPORT_SYMBOL vmlinux 0x6e74b728 inet_dev_addr_type +EXPORT_SYMBOL vmlinux 0x6e96b775 seq_release_private +EXPORT_SYMBOL vmlinux 0x6e9dd606 __symbol_put +EXPORT_SYMBOL vmlinux 0x6ea69fca mntput +EXPORT_SYMBOL vmlinux 0x6eaca373 dev_open +EXPORT_SYMBOL vmlinux 0x6ebe3ed9 __set_page_dirty_buffers +EXPORT_SYMBOL vmlinux 0x6ebe48c4 elevator_alloc +EXPORT_SYMBOL vmlinux 0x6ebec622 blk_make_request +EXPORT_SYMBOL vmlinux 0x6ec87c21 acpi_bus_get_device +EXPORT_SYMBOL vmlinux 0x6ed315b8 tty_port_close_end +EXPORT_SYMBOL vmlinux 0x6ed5deb4 dcache_dir_lseek +EXPORT_SYMBOL vmlinux 0x6eddd391 test_set_page_writeback +EXPORT_SYMBOL vmlinux 0x6efafd02 phy_start_aneg +EXPORT_SYMBOL vmlinux 0x6f1a89ca devm_free_irq +EXPORT_SYMBOL vmlinux 0x6f20960a full_name_hash +EXPORT_SYMBOL vmlinux 0x6f2098e1 swiotlb_dma_mapping_error +EXPORT_SYMBOL vmlinux 0x6f311126 set_security_override_from_ctx +EXPORT_SYMBOL vmlinux 0x6f36c782 idr_find_slowpath +EXPORT_SYMBOL vmlinux 0x6f4c812f __percpu_counter_add +EXPORT_SYMBOL vmlinux 0x6f556bdb acpi_get_gpe_device +EXPORT_SYMBOL vmlinux 0x6f9e4a66 __qdisc_calculate_pkt_len +EXPORT_SYMBOL vmlinux 0x6fa7faac max8925_bulk_read +EXPORT_SYMBOL vmlinux 0x6fc57bc2 hdmi_vendor_infoframe_pack +EXPORT_SYMBOL vmlinux 0x6fcb87a1 touch_softlockup_watchdog +EXPORT_SYMBOL vmlinux 0x6fcfa0a1 mount_nodev +EXPORT_SYMBOL vmlinux 0x6fd040ec generic_segment_checks +EXPORT_SYMBOL vmlinux 0x6fd2f218 complete_request_key +EXPORT_SYMBOL vmlinux 0x6fd6845c blk_queue_max_write_same_sectors +EXPORT_SYMBOL vmlinux 0x6fd7dfb3 security_sb_set_mnt_opts +EXPORT_SYMBOL vmlinux 0x6fdebafa pipe_unlock +EXPORT_SYMBOL vmlinux 0x6fe56894 fb_validate_mode +EXPORT_SYMBOL vmlinux 0x6feb2039 acpi_write +EXPORT_SYMBOL vmlinux 0x6ff4cbe2 bio_integrity_alloc +EXPORT_SYMBOL vmlinux 0x7004fb61 scsi_bios_ptable +EXPORT_SYMBOL vmlinux 0x7023bea8 unregister_acpi_notifier +EXPORT_SYMBOL vmlinux 0x702b6c54 udplite_table +EXPORT_SYMBOL vmlinux 0x703b4352 _raw_read_unlock_irqrestore +EXPORT_SYMBOL vmlinux 0x704226ff scsi_adjust_queue_depth +EXPORT_SYMBOL vmlinux 0x70449307 jbd2_journal_release_jbd_inode +EXPORT_SYMBOL vmlinux 0x70523a7a __cond_resched_softirq +EXPORT_SYMBOL vmlinux 0x7054a3e4 request_dma +EXPORT_SYMBOL vmlinux 0x707dce7d freeze_super +EXPORT_SYMBOL vmlinux 0x707f43f6 __ctzdi2 +EXPORT_SYMBOL vmlinux 0x708648c1 tty_port_destroy +EXPORT_SYMBOL vmlinux 0x70bc17d7 inode_wait +EXPORT_SYMBOL vmlinux 0x70d053fd try_to_del_timer_sync +EXPORT_SYMBOL vmlinux 0x70d8ab82 acpi_acquire_global_lock +EXPORT_SYMBOL vmlinux 0x70e51106 blk_queue_unprep_rq +EXPORT_SYMBOL vmlinux 0x70eb5011 amd_iommu_domain_direct_map +EXPORT_SYMBOL vmlinux 0x710aef6c sk_prot_clear_portaddr_nulls +EXPORT_SYMBOL vmlinux 0x711d3397 consume_skb +EXPORT_SYMBOL vmlinux 0x7129e5f8 hex_asc +EXPORT_SYMBOL vmlinux 0x7129ffec __module_put_and_exit +EXPORT_SYMBOL vmlinux 0x7139bd09 d_instantiate_unique +EXPORT_SYMBOL vmlinux 0x7154f95c mmc_calc_max_discard +EXPORT_SYMBOL vmlinux 0x71602ad1 genl_notify +EXPORT_SYMBOL vmlinux 0x7171121c overflowgid +EXPORT_SYMBOL vmlinux 0x71763632 mnt_pin +EXPORT_SYMBOL vmlinux 0x71a50dbc register_blkdev +EXPORT_SYMBOL vmlinux 0x71a5dac3 generic_setlease +EXPORT_SYMBOL vmlinux 0x71a672ef dmam_pool_destroy +EXPORT_SYMBOL vmlinux 0x71b7fb73 napi_gro_flush +EXPORT_SYMBOL vmlinux 0x71cc4227 vlan_ioctl_set +EXPORT_SYMBOL vmlinux 0x71e3cecb up +EXPORT_SYMBOL vmlinux 0x71f59e7e generic_file_splice_write +EXPORT_SYMBOL vmlinux 0x71f88ba2 pci_disable_obff +EXPORT_SYMBOL vmlinux 0x72120831 path_is_under +EXPORT_SYMBOL vmlinux 0x722d2a05 blk_alloc_queue +EXPORT_SYMBOL vmlinux 0x723e3d12 blk_post_runtime_resume +EXPORT_SYMBOL vmlinux 0x7256b58e agp_collect_device_status +EXPORT_SYMBOL vmlinux 0x72a0d430 prepare_kernel_cred +EXPORT_SYMBOL vmlinux 0x72a98fdb copy_user_generic_unrolled +EXPORT_SYMBOL vmlinux 0x72b243d4 free_dma +EXPORT_SYMBOL vmlinux 0x72bf2140 mtrr_add +EXPORT_SYMBOL vmlinux 0x72ddafe2 unregister_key_type +EXPORT_SYMBOL vmlinux 0x72ea7b2d scsi_device_type +EXPORT_SYMBOL vmlinux 0x72ec48e4 skb_copy_and_csum_bits +EXPORT_SYMBOL vmlinux 0x72f3aa32 acpi_get_physical_device_location +EXPORT_SYMBOL vmlinux 0x72f3f57f elevator_change +EXPORT_SYMBOL vmlinux 0x7306482e iterate_supers_type +EXPORT_SYMBOL vmlinux 0x733c3b54 kasprintf +EXPORT_SYMBOL vmlinux 0x735a0bd5 native_io_delay +EXPORT_SYMBOL vmlinux 0x7369d9c0 set_blocksize +EXPORT_SYMBOL vmlinux 0x736f4298 security_mmap_file +EXPORT_SYMBOL vmlinux 0x7375b1e2 set_binfmt +EXPORT_SYMBOL vmlinux 0x737de5e9 radix_tree_tag_get +EXPORT_SYMBOL vmlinux 0x739af39b vfs_fsync_range +EXPORT_SYMBOL vmlinux 0x73a78bc4 downgrade_write +EXPORT_SYMBOL vmlinux 0x73b4e2fc generic_writepages +EXPORT_SYMBOL vmlinux 0x73be8535 x86_hyper_xen_hvm +EXPORT_SYMBOL vmlinux 0x73d97a81 xfrm_state_delete +EXPORT_SYMBOL vmlinux 0x73dd54eb irq_fpu_usable +EXPORT_SYMBOL vmlinux 0x73efa7fe __devm_request_region +EXPORT_SYMBOL vmlinux 0x7409cfbc unregister_netdev +EXPORT_SYMBOL vmlinux 0x740a1b95 reserve_evntsel_nmi +EXPORT_SYMBOL vmlinux 0x74294282 scsi_report_device_reset +EXPORT_SYMBOL vmlinux 0x742d0912 sock_common_setsockopt +EXPORT_SYMBOL vmlinux 0x74313052 __napi_complete +EXPORT_SYMBOL vmlinux 0x7469fcfe radix_tree_tagged +EXPORT_SYMBOL vmlinux 0x7485e15e unregister_chrdev_region +EXPORT_SYMBOL vmlinux 0x749ca9bb elv_rb_find +EXPORT_SYMBOL vmlinux 0x74aa7b0c blk_end_request_cur +EXPORT_SYMBOL vmlinux 0x74c134b9 __sw_hweight32 +EXPORT_SYMBOL vmlinux 0x74c7f685 cfb_imageblit +EXPORT_SYMBOL vmlinux 0x74d0f9a8 __scsi_alloc_queue +EXPORT_SYMBOL vmlinux 0x74def377 __register_chrdev +EXPORT_SYMBOL vmlinux 0x74e5ff1a udpv6_encap_enable +EXPORT_SYMBOL vmlinux 0x75057c31 posix_acl_equiv_mode +EXPORT_SYMBOL vmlinux 0x751006af pci_request_regions +EXPORT_SYMBOL vmlinux 0x75109522 tcp_v4_do_rcv +EXPORT_SYMBOL vmlinux 0x7532588a alloc_pages_exact +EXPORT_SYMBOL vmlinux 0x7538b132 agp_off +EXPORT_SYMBOL vmlinux 0x754d539c strlen +EXPORT_SYMBOL vmlinux 0x754dac78 blk_limits_io_min +EXPORT_SYMBOL vmlinux 0x755a2ce7 __sb_start_write +EXPORT_SYMBOL vmlinux 0x755a3792 scsi_release_buffers +EXPORT_SYMBOL vmlinux 0x757a30d7 xfrm_state_delete_tunnel +EXPORT_SYMBOL vmlinux 0x7582059d pci_save_state +EXPORT_SYMBOL vmlinux 0x75b1f1fb kobject_get +EXPORT_SYMBOL vmlinux 0x75bda77a seq_hlist_next +EXPORT_SYMBOL vmlinux 0x75bdea12 iommu_area_alloc +EXPORT_SYMBOL vmlinux 0x75db9e87 d_alloc +EXPORT_SYMBOL vmlinux 0x75e649dc inet_bind +EXPORT_SYMBOL vmlinux 0x75fbdefd acpi_remove_address_space_handler +EXPORT_SYMBOL vmlinux 0x760a0f4f yield +EXPORT_SYMBOL vmlinux 0x7628f3c7 this_cpu_off +EXPORT_SYMBOL vmlinux 0x7629ddc2 __inet6_hash +EXPORT_SYMBOL vmlinux 0x7634cd19 pcie_set_readrq +EXPORT_SYMBOL vmlinux 0x7647726c handle_sysrq +EXPORT_SYMBOL vmlinux 0x764bd77c request_resource +EXPORT_SYMBOL vmlinux 0x7655afde ioctl_by_bdev +EXPORT_SYMBOL vmlinux 0x76572dff tcp_tso_segment +EXPORT_SYMBOL vmlinux 0x765ff474 crc_t10dif_generic +EXPORT_SYMBOL vmlinux 0x76620e20 __dquot_transfer +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 0x76bf656d __bitmap_shift_left +EXPORT_SYMBOL vmlinux 0x76d3cd60 laptop_mode +EXPORT_SYMBOL vmlinux 0x76d451c4 add_taint +EXPORT_SYMBOL vmlinux 0x76e1e620 inet_frag_find +EXPORT_SYMBOL vmlinux 0x76e22336 mmc_set_blocklen +EXPORT_SYMBOL vmlinux 0x76e7e936 max8998_write_reg +EXPORT_SYMBOL vmlinux 0x76f333d8 tty_lock +EXPORT_SYMBOL vmlinux 0x76fa7196 sk_page_frag_refill +EXPORT_SYMBOL vmlinux 0x76fb08a7 amd_iommu_unregister_ppr_notifier +EXPORT_SYMBOL vmlinux 0x76fef51a kmem_cache_create +EXPORT_SYMBOL vmlinux 0x770560b7 compat_ip_getsockopt +EXPORT_SYMBOL vmlinux 0x7706731b md_write_end +EXPORT_SYMBOL vmlinux 0x771cf835 dma_pool_alloc +EXPORT_SYMBOL vmlinux 0x77339711 cleancache_register_ops +EXPORT_SYMBOL vmlinux 0x773a9c94 blk_iopoll_enabled +EXPORT_SYMBOL vmlinux 0x773d515f inet_getname +EXPORT_SYMBOL vmlinux 0x773fa409 __kfifo_dma_in_finish_r +EXPORT_SYMBOL vmlinux 0x77456e0a acpi_root_dir +EXPORT_SYMBOL vmlinux 0x779a18af kstrtoll +EXPORT_SYMBOL vmlinux 0x77a31da9 inet_listen +EXPORT_SYMBOL vmlinux 0x77bc13a0 strim +EXPORT_SYMBOL vmlinux 0x77ce93b3 qid_lt +EXPORT_SYMBOL vmlinux 0x77d54e77 tcp_make_synack +EXPORT_SYMBOL vmlinux 0x77d9eb20 tag_pages_for_writeback +EXPORT_SYMBOL vmlinux 0x77df0847 __set_personality +EXPORT_SYMBOL vmlinux 0x77ecac9f zlib_inflateEnd +EXPORT_SYMBOL vmlinux 0x77f53abc acpi_get_vendor_resource +EXPORT_SYMBOL vmlinux 0x780fdfd1 intel_enable_gtt +EXPORT_SYMBOL vmlinux 0x783b3563 wake_up_atomic_t +EXPORT_SYMBOL vmlinux 0x7846af3e __kfifo_len_r +EXPORT_SYMBOL vmlinux 0x786201c5 dev_uc_unsync +EXPORT_SYMBOL vmlinux 0x78764f4e pv_irq_ops +EXPORT_SYMBOL vmlinux 0x7880c781 dm_kcopyd_prepare_callback +EXPORT_SYMBOL vmlinux 0x789affb1 frontswap_tmem_exclusive_gets +EXPORT_SYMBOL vmlinux 0x78a4aa2d dev_printk_emit +EXPORT_SYMBOL vmlinux 0x78a6f685 inet_dgram_ops +EXPORT_SYMBOL vmlinux 0x78ac11de agp_put_bridge +EXPORT_SYMBOL vmlinux 0x78bb3e24 abort_exclusive_wait +EXPORT_SYMBOL vmlinux 0x78bd138f input_close_device +EXPORT_SYMBOL vmlinux 0x78ccbb67 generic_write_sync +EXPORT_SYMBOL vmlinux 0x78df6bd7 no_pci_devices +EXPORT_SYMBOL vmlinux 0x78e6e112 dmam_alloc_coherent +EXPORT_SYMBOL vmlinux 0x79068fda acpi_install_method +EXPORT_SYMBOL vmlinux 0x7927e055 __dst_free +EXPORT_SYMBOL vmlinux 0x7944e036 pcix_get_max_mmrbc +EXPORT_SYMBOL vmlinux 0x794a42ab update_devfreq +EXPORT_SYMBOL vmlinux 0x794d9ad0 acpi_bus_unregister_driver +EXPORT_SYMBOL vmlinux 0x796c69e7 ps2_init +EXPORT_SYMBOL vmlinux 0x796fc5ce scsi_get_sense_info_fld +EXPORT_SYMBOL vmlinux 0x7975ac24 elv_rb_add +EXPORT_SYMBOL vmlinux 0x797c8fa9 cancel_delayed_work_sync +EXPORT_SYMBOL vmlinux 0x797f0e36 twl6040_set_pll +EXPORT_SYMBOL vmlinux 0x7984eefc key_update +EXPORT_SYMBOL vmlinux 0x7991f372 get_thermal_instance +EXPORT_SYMBOL vmlinux 0x79945d9f proc_dointvec_ms_jiffies +EXPORT_SYMBOL vmlinux 0x79a38e61 ___ratelimit +EXPORT_SYMBOL vmlinux 0x79aa04a2 get_random_bytes +EXPORT_SYMBOL vmlinux 0x79d2f6e6 mmc_start_req +EXPORT_SYMBOL vmlinux 0x79dc393b blk_queue_io_min +EXPORT_SYMBOL vmlinux 0x79e03888 end_page_writeback +EXPORT_SYMBOL vmlinux 0x79e83dec inet_frags_init_net +EXPORT_SYMBOL vmlinux 0x79f100bc agp_generic_mask_memory +EXPORT_SYMBOL vmlinux 0x79f565fe ip_route_input_noref +EXPORT_SYMBOL vmlinux 0x7a188791 prandom_bytes +EXPORT_SYMBOL vmlinux 0x7a27c184 ewma_init +EXPORT_SYMBOL vmlinux 0x7a3a41be netif_stacked_transfer_operstate +EXPORT_SYMBOL vmlinux 0x7a3e7a60 dev_uc_add_excl +EXPORT_SYMBOL vmlinux 0x7a4497db kzfree +EXPORT_SYMBOL vmlinux 0x7a91726b clkdev_alloc +EXPORT_SYMBOL vmlinux 0x7a925833 cpufreq_get_global_kobject +EXPORT_SYMBOL vmlinux 0x7a9eb6d1 mmc_release_host +EXPORT_SYMBOL vmlinux 0x7ab88a45 system_freezing_cnt +EXPORT_SYMBOL vmlinux 0x7ac3f3bf security_path_rmdir +EXPORT_SYMBOL vmlinux 0x7acd4eb4 security_path_link +EXPORT_SYMBOL vmlinux 0x7ad41bf9 posix_acl_valid +EXPORT_SYMBOL vmlinux 0x7aec9089 clear_user +EXPORT_SYMBOL vmlinux 0x7afdcf51 lock_may_read +EXPORT_SYMBOL vmlinux 0x7b03848a verify_mem_not_deleted +EXPORT_SYMBOL vmlinux 0x7b2aef6c __krealloc +EXPORT_SYMBOL vmlinux 0x7b443c06 agp_alloc_bridge +EXPORT_SYMBOL vmlinux 0x7b52a859 wrmsr_safe_on_cpu +EXPORT_SYMBOL vmlinux 0x7b902a39 mmc_get_card +EXPORT_SYMBOL vmlinux 0x7b94b94c vlan_dev_vlan_id +EXPORT_SYMBOL vmlinux 0x7b9a6116 intel_agp_enabled +EXPORT_SYMBOL vmlinux 0x7bb2552f ndo_dflt_fdb_del +EXPORT_SYMBOL vmlinux 0x7c1372e8 panic +EXPORT_SYMBOL vmlinux 0x7c223f59 scsi_nonblockable_ioctl +EXPORT_SYMBOL vmlinux 0x7c2d098f krealloc +EXPORT_SYMBOL vmlinux 0x7c4162bd blk_put_queue +EXPORT_SYMBOL vmlinux 0x7c458915 __dev_getfirstbyhwtype +EXPORT_SYMBOL vmlinux 0x7c46233a cpufreq_quick_get +EXPORT_SYMBOL vmlinux 0x7c578628 netdev_crit +EXPORT_SYMBOL vmlinux 0x7c61340c __release_region +EXPORT_SYMBOL vmlinux 0x7c7d90c0 buffer_check_dirty_writeback +EXPORT_SYMBOL vmlinux 0x7ca46555 tcp_sockets_allocated +EXPORT_SYMBOL vmlinux 0x7ca566b6 sock_init_data +EXPORT_SYMBOL vmlinux 0x7cb1ae69 cpu_down +EXPORT_SYMBOL vmlinux 0x7cb4943c inetpeer_invalidate_tree +EXPORT_SYMBOL vmlinux 0x7cbf7081 gen_pool_destroy +EXPORT_SYMBOL vmlinux 0x7cd50465 udplite_prot +EXPORT_SYMBOL vmlinux 0x7ce3b847 blk_complete_request +EXPORT_SYMBOL vmlinux 0x7ce83365 acpi_remove_table_handler +EXPORT_SYMBOL vmlinux 0x7cec826c xfrm_garbage_collect +EXPORT_SYMBOL vmlinux 0x7cf3a16b put_cmsg +EXPORT_SYMBOL vmlinux 0x7d08c97f phy_driver_unregister +EXPORT_SYMBOL vmlinux 0x7d0db45c jiffies_to_clock_t +EXPORT_SYMBOL vmlinux 0x7d0e6b33 dquot_initialize +EXPORT_SYMBOL vmlinux 0x7d11c268 jiffies +EXPORT_SYMBOL vmlinux 0x7d23d44e netpoll_send_skb_on_dev +EXPORT_SYMBOL vmlinux 0x7d26e12c compat_mc_getsockopt +EXPORT_SYMBOL vmlinux 0x7d3420dc single_release +EXPORT_SYMBOL vmlinux 0x7d87095e gnet_stats_finish_copy +EXPORT_SYMBOL vmlinux 0x7d94f746 acpi_os_write_port +EXPORT_SYMBOL vmlinux 0x7d97b331 pci_vpd_truncate +EXPORT_SYMBOL vmlinux 0x7dae97a9 I_BDEV +EXPORT_SYMBOL vmlinux 0x7dbc2e57 mmiotrace_printk +EXPORT_SYMBOL vmlinux 0x7dcd79b5 serio_interrupt +EXPORT_SYMBOL vmlinux 0x7dd554fc unregister_kmmio_probe +EXPORT_SYMBOL vmlinux 0x7dec2947 sched_autogroup_detach +EXPORT_SYMBOL vmlinux 0x7deff673 dm_consume_args +EXPORT_SYMBOL vmlinux 0x7dff80ee __seq_open_private +EXPORT_SYMBOL vmlinux 0x7e02bd81 request_key_with_auxdata +EXPORT_SYMBOL vmlinux 0x7e11e053 __wake_up_bit +EXPORT_SYMBOL vmlinux 0x7e1e08c0 block_page_mkwrite +EXPORT_SYMBOL vmlinux 0x7e2c402e key_invalidate +EXPORT_SYMBOL vmlinux 0x7e2f3089 dmam_alloc_noncoherent +EXPORT_SYMBOL vmlinux 0x7e394c4e sysctl_local_reserved_ports +EXPORT_SYMBOL vmlinux 0x7e3b2f37 journal_set_features +EXPORT_SYMBOL vmlinux 0x7e5026c4 bio_phys_segments +EXPORT_SYMBOL vmlinux 0x7e5355aa neigh_connected_output +EXPORT_SYMBOL vmlinux 0x7e645207 __destroy_inode +EXPORT_SYMBOL vmlinux 0x7e6b88e1 ip_ct_attach +EXPORT_SYMBOL vmlinux 0x7e74f450 noop_fsync +EXPORT_SYMBOL vmlinux 0x7eb0f6ca blk_register_region +EXPORT_SYMBOL vmlinux 0x7ebcb3c4 tcf_hash_create +EXPORT_SYMBOL vmlinux 0x7ec8f4f0 clocksource_unregister +EXPORT_SYMBOL vmlinux 0x7eceb93b fget +EXPORT_SYMBOL vmlinux 0x7ed914c9 acpi_decode_pld_buffer +EXPORT_SYMBOL vmlinux 0x7f24de73 jiffies_to_usecs +EXPORT_SYMBOL vmlinux 0x7f564870 scsi_calculate_bounce_limit +EXPORT_SYMBOL vmlinux 0x7f6559f3 redirty_page_for_writepage +EXPORT_SYMBOL vmlinux 0x7f658e80 _raw_write_lock +EXPORT_SYMBOL vmlinux 0x7f7e9ef5 inet_shutdown +EXPORT_SYMBOL vmlinux 0x7f96361c devm_ioport_map +EXPORT_SYMBOL vmlinux 0x7fa2e6d9 kernel_getpeername +EXPORT_SYMBOL vmlinux 0x7fc7559c __xfrm_decode_session +EXPORT_SYMBOL vmlinux 0x7fdd7528 pci_get_device +EXPORT_SYMBOL vmlinux 0x7fe32873 rb_replace_node +EXPORT_SYMBOL vmlinux 0x7fe38f48 sg_copy_to_buffer +EXPORT_SYMBOL vmlinux 0x7fe3a60e follow_down +EXPORT_SYMBOL vmlinux 0x80176f5e tty_register_driver +EXPORT_SYMBOL vmlinux 0x802d0e93 crc32_le +EXPORT_SYMBOL vmlinux 0x80383998 bitmap_cond_end_sync +EXPORT_SYMBOL vmlinux 0x80712b30 set_pages_nx +EXPORT_SYMBOL vmlinux 0x808eccdc netdev_has_upper_dev +EXPORT_SYMBOL vmlinux 0x80a04718 add_to_page_cache_locked +EXPORT_SYMBOL vmlinux 0x80ba6397 amd_iommu_get_v2_domain +EXPORT_SYMBOL vmlinux 0x80c11e10 pci_alloc_dev +EXPORT_SYMBOL vmlinux 0x80ca5026 _bin2bcd +EXPORT_SYMBOL vmlinux 0x80d68d3e fb_register_client +EXPORT_SYMBOL vmlinux 0x80ef839d bio_get_nr_vecs +EXPORT_SYMBOL vmlinux 0x80fdc09f netpoll_rx_enable +EXPORT_SYMBOL vmlinux 0x8112df23 iget5_locked +EXPORT_SYMBOL vmlinux 0x811adb18 try_to_release_page +EXPORT_SYMBOL vmlinux 0x813537b9 i8042_remove_filter +EXPORT_SYMBOL vmlinux 0x81472677 acpi_get_table +EXPORT_SYMBOL vmlinux 0x814e7730 nf_ct_destroy +EXPORT_SYMBOL vmlinux 0x81533963 sysfs_format_mac +EXPORT_SYMBOL vmlinux 0x815912cf softnet_data +EXPORT_SYMBOL vmlinux 0x815b4256 blk_start_queue +EXPORT_SYMBOL vmlinux 0x815b5dd4 match_octal +EXPORT_SYMBOL vmlinux 0x815f2897 empty_zero_page +EXPORT_SYMBOL vmlinux 0x8180c36f eth_validate_addr +EXPORT_SYMBOL vmlinux 0x8196f73b misc_register +EXPORT_SYMBOL vmlinux 0x81c97ae5 blk_queue_bounce +EXPORT_SYMBOL vmlinux 0x81d10f5f trace_seq_putc +EXPORT_SYMBOL vmlinux 0x81d51d76 scsi_target_quiesce +EXPORT_SYMBOL vmlinux 0x81db6ebb xz_dec_reset +EXPORT_SYMBOL vmlinux 0x81e6b37f dmi_get_system_info +EXPORT_SYMBOL vmlinux 0x81fa1414 scsi_setup_fs_cmnd +EXPORT_SYMBOL vmlinux 0x82072614 tasklet_kill +EXPORT_SYMBOL vmlinux 0x8212721d xenbus_dev_request_and_reply +EXPORT_SYMBOL vmlinux 0x8219104e ppp_output_wakeup +EXPORT_SYMBOL vmlinux 0x821a5152 journal_get_create_access +EXPORT_SYMBOL vmlinux 0x82319223 splice_from_pipe_begin +EXPORT_SYMBOL vmlinux 0x823289c6 scsi_put_command +EXPORT_SYMBOL vmlinux 0x823fc145 __netdev_pick_tx +EXPORT_SYMBOL vmlinux 0x82477240 ida_destroy +EXPORT_SYMBOL vmlinux 0x8251bcc3 bitmap_release_region +EXPORT_SYMBOL vmlinux 0x8260686f bitmap_find_next_zero_area +EXPORT_SYMBOL vmlinux 0x826437fe agp_free_page_array +EXPORT_SYMBOL vmlinux 0x828062b1 __frontswap_init +EXPORT_SYMBOL vmlinux 0x829d4e08 rwsem_down_write_failed +EXPORT_SYMBOL vmlinux 0x82acfb70 blk_iopoll_sched +EXPORT_SYMBOL vmlinux 0x82d21040 swiotlb_unmap_sg +EXPORT_SYMBOL vmlinux 0x82d4de54 fb_set_var +EXPORT_SYMBOL vmlinux 0x82e20b5f pnp_register_card_driver +EXPORT_SYMBOL vmlinux 0x82fc1e05 __pskb_copy +EXPORT_SYMBOL vmlinux 0x830d88f0 bdi_set_max_ratio +EXPORT_SYMBOL vmlinux 0x830e547b ioremap_prot +EXPORT_SYMBOL vmlinux 0x8326bbd9 kthread_stop +EXPORT_SYMBOL vmlinux 0x8332209d ppp_channel_index +EXPORT_SYMBOL vmlinux 0x8333b3c4 fifo_create_dflt +EXPORT_SYMBOL vmlinux 0x833c03aa acpi_enable_all_runtime_gpes +EXPORT_SYMBOL vmlinux 0x83579ef2 scsi_dma_unmap +EXPORT_SYMBOL vmlinux 0x8398df67 adjust_managed_page_count +EXPORT_SYMBOL vmlinux 0x83a476ce bitmap_scnlistprintf +EXPORT_SYMBOL vmlinux 0x83b1b55b md_register_thread +EXPORT_SYMBOL vmlinux 0x83c4f845 tcf_exts_destroy +EXPORT_SYMBOL vmlinux 0x83c8a355 param_set_int +EXPORT_SYMBOL vmlinux 0x83d1ea39 pci_enable_ltr +EXPORT_SYMBOL vmlinux 0x83e0ed41 dqget +EXPORT_SYMBOL vmlinux 0x83f3cdff gen_pool_virt_to_phys +EXPORT_SYMBOL vmlinux 0x84060081 xen_poll_irq_timeout +EXPORT_SYMBOL vmlinux 0x840750f2 journal_load +EXPORT_SYMBOL vmlinux 0x8417f512 acpi_update_all_gpes +EXPORT_SYMBOL vmlinux 0x84186b4a compat_tcp_getsockopt +EXPORT_SYMBOL vmlinux 0x8422fb3a xfrm_unregister_km +EXPORT_SYMBOL vmlinux 0x84387622 set_user_nice +EXPORT_SYMBOL vmlinux 0x843fc8e0 get_super_thawed +EXPORT_SYMBOL vmlinux 0x84450027 wait_on_page_bit +EXPORT_SYMBOL vmlinux 0x8451f377 mntget +EXPORT_SYMBOL vmlinux 0x845b22fc d_rehash +EXPORT_SYMBOL vmlinux 0x846b4deb eth_commit_mac_addr_change +EXPORT_SYMBOL vmlinux 0x846e7c17 genlmsg_multicast_allns +EXPORT_SYMBOL vmlinux 0x8473e392 i8042_install_filter +EXPORT_SYMBOL vmlinux 0x8480b380 init_special_inode +EXPORT_SYMBOL vmlinux 0x84866a21 dev_uc_sync_multiple +EXPORT_SYMBOL vmlinux 0x8487585f do_splice_direct +EXPORT_SYMBOL vmlinux 0x84b3d821 input_get_keycode +EXPORT_SYMBOL vmlinux 0x84b9f151 __nla_reserve_nohdr +EXPORT_SYMBOL vmlinux 0x84cacab4 cdrom_number_of_slots +EXPORT_SYMBOL vmlinux 0x84e4269d xfrm_lookup +EXPORT_SYMBOL vmlinux 0x84e89bf1 padata_do_parallel +EXPORT_SYMBOL vmlinux 0x84ffea8b idr_preload +EXPORT_SYMBOL vmlinux 0x851dbe21 mpage_writepages +EXPORT_SYMBOL vmlinux 0x851fc5aa blk_queue_max_segments +EXPORT_SYMBOL vmlinux 0x85219281 acpi_bus_generate_proc_event +EXPORT_SYMBOL vmlinux 0x853d4876 unregister_nls +EXPORT_SYMBOL vmlinux 0x8552ab4b __ht_create_irq +EXPORT_SYMBOL vmlinux 0x8554cff9 thaw_bdev +EXPORT_SYMBOL vmlinux 0x85590935 netdev_change_features +EXPORT_SYMBOL vmlinux 0x85670f1d rtnl_is_locked +EXPORT_SYMBOL vmlinux 0x857ed609 jbd2_journal_init_inode +EXPORT_SYMBOL vmlinux 0x85898955 tcp_v4_conn_request +EXPORT_SYMBOL vmlinux 0x85b5e625 rfkill_set_states +EXPORT_SYMBOL vmlinux 0x85c2b5c0 scsi_device_get +EXPORT_SYMBOL vmlinux 0x85d26db6 kill_bdev +EXPORT_SYMBOL vmlinux 0x85df9b6c strsep +EXPORT_SYMBOL vmlinux 0x85e7b3b0 elv_rb_del +EXPORT_SYMBOL vmlinux 0x8620ce78 md_flush_request +EXPORT_SYMBOL vmlinux 0x86230bdf nf_unregister_hook +EXPORT_SYMBOL vmlinux 0x86350c4e xfrm6_rcv_spi +EXPORT_SYMBOL vmlinux 0x86442749 input_register_handle +EXPORT_SYMBOL vmlinux 0x865029ac __hw_addr_sync +EXPORT_SYMBOL vmlinux 0x8664f62e cpufreq_update_policy +EXPORT_SYMBOL vmlinux 0x868acba5 get_options +EXPORT_SYMBOL vmlinux 0x86b376f2 skb_append +EXPORT_SYMBOL vmlinux 0x86b6053d filemap_fault +EXPORT_SYMBOL vmlinux 0x86d5255f _raw_write_lock_irqsave +EXPORT_SYMBOL vmlinux 0x86ec3586 amd_iommu_enable_device_erratum +EXPORT_SYMBOL vmlinux 0x86fb9b05 bitmap_parse_user +EXPORT_SYMBOL vmlinux 0x86fefd30 would_dump +EXPORT_SYMBOL vmlinux 0x870861a7 invalidate_partition +EXPORT_SYMBOL vmlinux 0x870bf928 radix_tree_lookup +EXPORT_SYMBOL vmlinux 0x871c0a7e fiemap_check_flags +EXPORT_SYMBOL vmlinux 0x872bd550 crypto_sha512_update +EXPORT_SYMBOL vmlinux 0x873f565d submit_bio +EXPORT_SYMBOL vmlinux 0x874db866 ipv6_push_nfrag_opts +EXPORT_SYMBOL vmlinux 0x874dd58d i2c_transfer +EXPORT_SYMBOL vmlinux 0x8766cd32 mmc_flush_cache +EXPORT_SYMBOL vmlinux 0x876a7c4c __skb_get_rxhash +EXPORT_SYMBOL vmlinux 0x876dafc3 ec_write +EXPORT_SYMBOL vmlinux 0x87768142 sk_alloc +EXPORT_SYMBOL vmlinux 0x877b5445 ip_cmsg_recv +EXPORT_SYMBOL vmlinux 0x878ab3ce sysctl_tcp_adv_win_scale +EXPORT_SYMBOL vmlinux 0x87a04330 drop_super +EXPORT_SYMBOL vmlinux 0x87a5dd5e __generic_block_fiemap +EXPORT_SYMBOL vmlinux 0x87aaddf8 wrmsr_safe_regs_on_cpu +EXPORT_SYMBOL vmlinux 0x87afbfbe mdiobus_write +EXPORT_SYMBOL vmlinux 0x87c58a96 smp_call_function_many +EXPORT_SYMBOL vmlinux 0x87cc4271 kern_path_create +EXPORT_SYMBOL vmlinux 0x87dab956 journal_restart +EXPORT_SYMBOL vmlinux 0x87dc469a mempool_create_node +EXPORT_SYMBOL vmlinux 0x87e1e99a dev_close +EXPORT_SYMBOL vmlinux 0x881039d0 zlib_inflate +EXPORT_SYMBOL vmlinux 0x8834396c mod_timer +EXPORT_SYMBOL vmlinux 0x8834967a ilookup5_nowait +EXPORT_SYMBOL vmlinux 0x8843eff5 pnp_request_card_device +EXPORT_SYMBOL vmlinux 0x884a3235 nf_setsockopt +EXPORT_SYMBOL vmlinux 0x884bc219 simple_empty +EXPORT_SYMBOL vmlinux 0x8857b02a kernel_sock_ioctl +EXPORT_SYMBOL vmlinux 0x88664dbe textsearch_destroy +EXPORT_SYMBOL vmlinux 0x886c6353 mmc_gpio_free_cd +EXPORT_SYMBOL vmlinux 0x886ed819 dcb_ieee_getapp_mask +EXPORT_SYMBOL vmlinux 0x8896a585 agp_generic_free_by_type +EXPORT_SYMBOL vmlinux 0x88b04e39 __register_nmi_handler +EXPORT_SYMBOL vmlinux 0x88d80422 __ip_dev_find +EXPORT_SYMBOL vmlinux 0x88f00d18 lg_global_unlock +EXPORT_SYMBOL vmlinux 0x88fbff24 iov_iter_copy_from_user_atomic +EXPORT_SYMBOL vmlinux 0x892b26a0 set_memory_nx +EXPORT_SYMBOL vmlinux 0x89356522 setup_new_exec +EXPORT_SYMBOL vmlinux 0x8959ad6d kmem_cache_alloc +EXPORT_SYMBOL vmlinux 0x8966b1d2 generic_show_options +EXPORT_SYMBOL vmlinux 0x897473df mktime +EXPORT_SYMBOL vmlinux 0x8977b226 scsi_device_set_state +EXPORT_SYMBOL vmlinux 0x8979c57f nf_afinfo +EXPORT_SYMBOL vmlinux 0x89803bed unlink_framebuffer +EXPORT_SYMBOL vmlinux 0x898c2e12 filemap_fdatawait_range +EXPORT_SYMBOL vmlinux 0x899399d2 blk_queue_start_tag +EXPORT_SYMBOL vmlinux 0x89988f53 set_page_dirty +EXPORT_SYMBOL vmlinux 0x89afe34e __kfifo_dma_in_prepare +EXPORT_SYMBOL vmlinux 0x89b96639 pcim_iomap_regions +EXPORT_SYMBOL vmlinux 0x89d5538d fb_pad_aligned_buffer +EXPORT_SYMBOL vmlinux 0x89d66811 build_ehash_secret +EXPORT_SYMBOL vmlinux 0x89dc1d5f mutex_unlock +EXPORT_SYMBOL vmlinux 0x89f0c0b2 dev_get_drvdata +EXPORT_SYMBOL vmlinux 0x89fb25e5 pci_set_power_state +EXPORT_SYMBOL vmlinux 0x89fe0131 pnp_get_resource +EXPORT_SYMBOL vmlinux 0x8a1ab4ee timeval_to_jiffies +EXPORT_SYMBOL vmlinux 0x8a490c90 rfkill_set_sw_state +EXPORT_SYMBOL vmlinux 0x8a6af65c kstrtoul_from_user +EXPORT_SYMBOL vmlinux 0x8a7d1c31 high_memory +EXPORT_SYMBOL vmlinux 0x8a8896aa dma_find_channel +EXPORT_SYMBOL vmlinux 0x8a96104c nf_log_packet +EXPORT_SYMBOL vmlinux 0x8a99a016 mempool_free_slab +EXPORT_SYMBOL vmlinux 0x8ac7af50 blk_integrity_merge_rq +EXPORT_SYMBOL vmlinux 0x8ace8ca3 groups_alloc +EXPORT_SYMBOL vmlinux 0x8af554b3 pci_restore_state +EXPORT_SYMBOL vmlinux 0x8afaf736 inode_get_bytes +EXPORT_SYMBOL vmlinux 0x8b0a02e5 fs_bio_set +EXPORT_SYMBOL vmlinux 0x8b1a7a66 pcie_aspm_enabled +EXPORT_SYMBOL vmlinux 0x8b226a81 acpi_video_dmi_demote_vendor +EXPORT_SYMBOL vmlinux 0x8b35e873 sg_last +EXPORT_SYMBOL vmlinux 0x8b3b390e blk_queue_bounce_limit +EXPORT_SYMBOL vmlinux 0x8b43159b register_cpu_notifier +EXPORT_SYMBOL vmlinux 0x8b5b4ca3 sk_send_sigurg +EXPORT_SYMBOL vmlinux 0x8b5db8ae tcp_sendmsg +EXPORT_SYMBOL vmlinux 0x8b5f4a2e IO_APIC_get_PCI_irq_vector +EXPORT_SYMBOL vmlinux 0x8b618d08 overflowuid +EXPORT_SYMBOL vmlinux 0x8b77232d module_layout +EXPORT_SYMBOL vmlinux 0x8b989cf9 acpi_bus_can_wakeup +EXPORT_SYMBOL vmlinux 0x8bc4d523 pci_enable_obff +EXPORT_SYMBOL vmlinux 0x8bc5d49c d_set_d_op +EXPORT_SYMBOL vmlinux 0x8bd74b90 journal_trans_will_send_data_barrier +EXPORT_SYMBOL vmlinux 0x8bfe8c57 param_set_uint +EXPORT_SYMBOL vmlinux 0x8c183cbe iowrite16 +EXPORT_SYMBOL vmlinux 0x8c637d43 irq_cpu_rmap_add +EXPORT_SYMBOL vmlinux 0x8c6424a5 linkwatch_fire_event +EXPORT_SYMBOL vmlinux 0x8c819eb6 inet_csk_destroy_sock +EXPORT_SYMBOL vmlinux 0x8c899ebc agp_alloc_page_array +EXPORT_SYMBOL vmlinux 0x8c919fa2 icmp_send +EXPORT_SYMBOL vmlinux 0x8c9c96ee bdget +EXPORT_SYMBOL vmlinux 0x8caaeef4 inet_del_protocol +EXPORT_SYMBOL vmlinux 0x8cc79cab iowrite16_rep +EXPORT_SYMBOL vmlinux 0x8cd54de5 key_task_permission +EXPORT_SYMBOL vmlinux 0x8cda8029 xen_clear_irq_pending +EXPORT_SYMBOL vmlinux 0x8cef4bd4 sock_alloc_file +EXPORT_SYMBOL vmlinux 0x8d0d23a1 bdev_stack_limits +EXPORT_SYMBOL vmlinux 0x8d0f443c mdiobus_free +EXPORT_SYMBOL vmlinux 0x8d1d13cf vm_iomap_memory +EXPORT_SYMBOL vmlinux 0x8d27b0b1 netdev_upper_dev_unlink +EXPORT_SYMBOL vmlinux 0x8d297184 proto_unregister +EXPORT_SYMBOL vmlinux 0x8d3b7b58 dev_kfree_skb_any +EXPORT_SYMBOL vmlinux 0x8d4a793f mmc_fixup_device +EXPORT_SYMBOL vmlinux 0x8d551bef sysctl_tcp_rmem +EXPORT_SYMBOL vmlinux 0x8d5ca75d pci_find_parent_resource +EXPORT_SYMBOL vmlinux 0x8d605c2f __put_cred +EXPORT_SYMBOL vmlinux 0x8d68f224 jbd2_journal_extend +EXPORT_SYMBOL vmlinux 0x8d82d69a skb_checksum_help +EXPORT_SYMBOL vmlinux 0x8d8c74d9 devm_backlight_device_register +EXPORT_SYMBOL vmlinux 0x8d8d96c6 acpi_get_sleep_type_data +EXPORT_SYMBOL vmlinux 0x8da1a3cb acpi_remove_interface +EXPORT_SYMBOL vmlinux 0x8daf8c42 dql_init +EXPORT_SYMBOL vmlinux 0x8db1ac25 __scm_destroy +EXPORT_SYMBOL vmlinux 0x8db7b81e amd_iommu_complete_ppr +EXPORT_SYMBOL vmlinux 0x8dc88006 cdev_alloc +EXPORT_SYMBOL vmlinux 0x8df18ce4 dquot_set_dqblk +EXPORT_SYMBOL vmlinux 0x8df46912 agp_generic_create_gatt_table +EXPORT_SYMBOL vmlinux 0x8df92f66 memchr_inv +EXPORT_SYMBOL vmlinux 0x8e002cda acpi_remove_gpe_block +EXPORT_SYMBOL vmlinux 0x8e0d9e20 filp_close +EXPORT_SYMBOL vmlinux 0x8e253743 dentry_open +EXPORT_SYMBOL vmlinux 0x8e28cd42 in_egroup_p +EXPORT_SYMBOL vmlinux 0x8e2c05e5 current_fs_time +EXPORT_SYMBOL vmlinux 0x8e332829 flush_delayed_work +EXPORT_SYMBOL vmlinux 0x8e382627 devm_request_threaded_irq +EXPORT_SYMBOL vmlinux 0x8e3fd6fa fget_light +EXPORT_SYMBOL vmlinux 0x8e594e7e locks_remove_posix +EXPORT_SYMBOL vmlinux 0x8e5ce89d unregister_netdevice_queue +EXPORT_SYMBOL vmlinux 0x8e631a05 filp_open +EXPORT_SYMBOL vmlinux 0x8e908a51 call_usermodehelper_setup +EXPORT_SYMBOL vmlinux 0x8e93430a sock_kmalloc +EXPORT_SYMBOL vmlinux 0x8e9b5372 scsi_cmd_print_sense_hdr +EXPORT_SYMBOL vmlinux 0x8ea88e6e vm_mmap +EXPORT_SYMBOL vmlinux 0x8eaf2a5f vga_switcheroo_unregister_handler +EXPORT_SYMBOL vmlinux 0x8f022709 phy_start_interrupts +EXPORT_SYMBOL vmlinux 0x8f03954b generic_delete_inode +EXPORT_SYMBOL vmlinux 0x8f0c1abd sync_inode_metadata +EXPORT_SYMBOL vmlinux 0x8f237a56 xfrm_policy_delete +EXPORT_SYMBOL vmlinux 0x8f252d5c tcf_hash_destroy +EXPORT_SYMBOL vmlinux 0x8f2703b7 wbinvd_on_all_cpus +EXPORT_SYMBOL vmlinux 0x8f280b2d __xfrm_policy_check +EXPORT_SYMBOL vmlinux 0x8f2bce37 padata_stop +EXPORT_SYMBOL vmlinux 0x8f41ffc0 register_netdevice +EXPORT_SYMBOL vmlinux 0x8f47a0a2 pfifo_qdisc_ops +EXPORT_SYMBOL vmlinux 0x8f52a40d kobject_set_name +EXPORT_SYMBOL vmlinux 0x8f7014a1 param_set_ulong +EXPORT_SYMBOL vmlinux 0x8f792287 skb_find_text +EXPORT_SYMBOL vmlinux 0x8f88d270 jbd2_journal_init_jbd_inode +EXPORT_SYMBOL vmlinux 0x8f90bf45 sock_edemux +EXPORT_SYMBOL vmlinux 0x8f9c199c __get_user_2 +EXPORT_SYMBOL vmlinux 0x8fa7502e __dev_remove_pack +EXPORT_SYMBOL vmlinux 0x8fa95772 ppp_unit_number +EXPORT_SYMBOL vmlinux 0x8fcba5f9 sget +EXPORT_SYMBOL vmlinux 0x8fd8dcd8 tcp_md5_hash_key +EXPORT_SYMBOL vmlinux 0x8fde72e3 ip_mc_rejoin_groups +EXPORT_SYMBOL vmlinux 0x8fe2c889 seq_putc +EXPORT_SYMBOL vmlinux 0x8fe48b08 register_sysctl_paths +EXPORT_SYMBOL vmlinux 0x8ff98b4f blk_execute_rq +EXPORT_SYMBOL vmlinux 0x8ffa2322 single_open +EXPORT_SYMBOL vmlinux 0x901173c3 bdi_destroy +EXPORT_SYMBOL vmlinux 0x9015566a tty_port_init +EXPORT_SYMBOL vmlinux 0x904409c6 acpi_set_firmware_waking_vector +EXPORT_SYMBOL vmlinux 0x90446e8b acpi_pm_device_sleep_state +EXPORT_SYMBOL vmlinux 0x9050f6ba twl6040_get_pll +EXPORT_SYMBOL vmlinux 0x9052f454 xen_biovec_phys_mergeable +EXPORT_SYMBOL vmlinux 0x907f77c4 generic_file_splice_read +EXPORT_SYMBOL vmlinux 0x90b17e8f lock_sock_fast +EXPORT_SYMBOL vmlinux 0x90c93ca6 generic_pipe_buf_confirm +EXPORT_SYMBOL vmlinux 0x90ff9013 inet_sk_rx_dst_set +EXPORT_SYMBOL vmlinux 0x912c9a83 build_skb +EXPORT_SYMBOL vmlinux 0x9144a8e2 ec_burst_disable +EXPORT_SYMBOL vmlinux 0x9144b6f8 balance_dirty_pages_ratelimited +EXPORT_SYMBOL vmlinux 0x91463b1d kstrtos16 +EXPORT_SYMBOL vmlinux 0x91569d42 md_integrity_add_rdev +EXPORT_SYMBOL vmlinux 0x91607d95 set_memory_wb +EXPORT_SYMBOL vmlinux 0x916292bf netlink_set_err +EXPORT_SYMBOL vmlinux 0x9162dffd free_netdev +EXPORT_SYMBOL vmlinux 0x9166fada strncpy +EXPORT_SYMBOL vmlinux 0x91715312 sprintf +EXPORT_SYMBOL vmlinux 0x917e75ae netif_rx +EXPORT_SYMBOL vmlinux 0x91869cee __alloc_pages_nodemask +EXPORT_SYMBOL vmlinux 0x918d51ec pci_disable_msix +EXPORT_SYMBOL vmlinux 0x918ea37a i2c_use_client +EXPORT_SYMBOL vmlinux 0x9193a1ab dev_getfirstbyhwtype +EXPORT_SYMBOL vmlinux 0x91967e8e xen_selfballoon_init +EXPORT_SYMBOL vmlinux 0x91a3cdf4 down_timeout +EXPORT_SYMBOL vmlinux 0x91a940cf generic_pipe_buf_get +EXPORT_SYMBOL vmlinux 0x91ac822f vscnprintf +EXPORT_SYMBOL vmlinux 0x91df8806 pci_bus_type +EXPORT_SYMBOL vmlinux 0x91e930d4 splice_from_pipe_feed +EXPORT_SYMBOL vmlinux 0x91ebad18 tcp_check_req +EXPORT_SYMBOL vmlinux 0x920407c5 jbd2_journal_init_dev +EXPORT_SYMBOL vmlinux 0x9205953f send_remote_softirq +EXPORT_SYMBOL vmlinux 0x921720f1 phy_mac_interrupt +EXPORT_SYMBOL vmlinux 0x92229d9b generic_file_aio_write +EXPORT_SYMBOL vmlinux 0x923b1276 dmaengine_get +EXPORT_SYMBOL vmlinux 0x923ff655 dquot_destroy +EXPORT_SYMBOL vmlinux 0x925439ba skb_queue_purge +EXPORT_SYMBOL vmlinux 0x926dc456 ndisc_mc_map +EXPORT_SYMBOL vmlinux 0x927d4422 __pci_enable_wake +EXPORT_SYMBOL vmlinux 0x927ec729 ilookup +EXPORT_SYMBOL vmlinux 0x9291cd3b memdup_user +EXPORT_SYMBOL vmlinux 0x92a9c60c time_to_tm +EXPORT_SYMBOL vmlinux 0x92bb14f5 inet6_del_offload +EXPORT_SYMBOL vmlinux 0x92cc3c22 jbd2_log_start_commit +EXPORT_SYMBOL vmlinux 0x92d47591 dma_async_memcpy_buf_to_pg +EXPORT_SYMBOL vmlinux 0x9305f8e6 cpufreq_get +EXPORT_SYMBOL vmlinux 0x93072a80 journal_force_commit_nested +EXPORT_SYMBOL vmlinux 0x930a9d84 genphy_update_link +EXPORT_SYMBOL vmlinux 0x9327f5ce _raw_spin_lock_irqsave +EXPORT_SYMBOL vmlinux 0x933faf01 file_remove_suid +EXPORT_SYMBOL vmlinux 0x93448c57 screen_info +EXPORT_SYMBOL vmlinux 0x936c5323 elv_add_request +EXPORT_SYMBOL vmlinux 0x938a619a agp_generic_alloc_by_type +EXPORT_SYMBOL vmlinux 0x93a6e0b2 io_schedule +EXPORT_SYMBOL vmlinux 0x93a81f38 release_firmware +EXPORT_SYMBOL vmlinux 0x93b3fc74 register_dcbevent_notifier +EXPORT_SYMBOL vmlinux 0x93c651be acpi_info +EXPORT_SYMBOL vmlinux 0x93d19e29 acpi_pm_device_run_wake +EXPORT_SYMBOL vmlinux 0x93f2d3fb ab3100_event_register +EXPORT_SYMBOL vmlinux 0x93f3e52b acpi_extract_package +EXPORT_SYMBOL vmlinux 0x93fca811 __get_free_pages +EXPORT_SYMBOL vmlinux 0x940705e1 xfrm_policy_byid +EXPORT_SYMBOL vmlinux 0x9431685f devfreq_remove_device +EXPORT_SYMBOL vmlinux 0x94342ea1 thaw_super +EXPORT_SYMBOL vmlinux 0x943bb031 __insert_inode_hash +EXPORT_SYMBOL vmlinux 0x943e1289 nf_nat_decode_session_hook +EXPORT_SYMBOL vmlinux 0x9451ed18 inet_sk_rebuild_header +EXPORT_SYMBOL vmlinux 0x945fb4bd seq_bitmap +EXPORT_SYMBOL vmlinux 0x94961283 vunmap +EXPORT_SYMBOL vmlinux 0x949ca0ae inode_sub_rsv_space +EXPORT_SYMBOL vmlinux 0x94a34147 sock_no_getsockopt +EXPORT_SYMBOL vmlinux 0x94a85a25 make_bad_inode +EXPORT_SYMBOL vmlinux 0x94cd93a3 splice_from_pipe_end +EXPORT_SYMBOL vmlinux 0x95015dbe kernel_setsockopt +EXPORT_SYMBOL vmlinux 0x950c168c generic_block_fiemap +EXPORT_SYMBOL vmlinux 0x9518b623 register_shrinker +EXPORT_SYMBOL vmlinux 0x951dfc47 task_nice +EXPORT_SYMBOL vmlinux 0x954488a4 syncookie_secret +EXPORT_SYMBOL vmlinux 0x9545af6d tasklet_init +EXPORT_SYMBOL vmlinux 0x9546e8a6 vfs_symlink +EXPORT_SYMBOL vmlinux 0x95867ace neigh_table_init +EXPORT_SYMBOL vmlinux 0x958ee8a8 ndo_dflt_fdb_dump +EXPORT_SYMBOL vmlinux 0x95930b5b jbd2_journal_dirty_metadata +EXPORT_SYMBOL vmlinux 0x9596f73c pci_map_biosrom +EXPORT_SYMBOL vmlinux 0x95a2ebce swiotlb_sync_sg_for_cpu +EXPORT_SYMBOL vmlinux 0x95bbc41a km_policy_notify +EXPORT_SYMBOL vmlinux 0x95f89a33 _raw_write_lock_irq +EXPORT_SYMBOL vmlinux 0x961ad5e2 dquot_release +EXPORT_SYMBOL vmlinux 0x96372596 dquot_alloc_inode +EXPORT_SYMBOL vmlinux 0x963c002e register_framebuffer +EXPORT_SYMBOL vmlinux 0x9649a636 devm_gpio_request_one +EXPORT_SYMBOL vmlinux 0x968b4f1d kiocb_set_cancel_fn +EXPORT_SYMBOL vmlinux 0x969abe02 n_tty_compat_ioctl_helper +EXPORT_SYMBOL vmlinux 0x969c0f35 acpi_processor_unregister_performance +EXPORT_SYMBOL vmlinux 0x96b29254 strncasecmp +EXPORT_SYMBOL vmlinux 0x96b534d2 mmc_gpio_get_ro +EXPORT_SYMBOL vmlinux 0x96bd8aa5 scsi_rescan_device +EXPORT_SYMBOL vmlinux 0x96bd98ab __blk_end_request_all +EXPORT_SYMBOL vmlinux 0x96c4774c genphy_resume +EXPORT_SYMBOL vmlinux 0x96ca90dc iterate_dir +EXPORT_SYMBOL vmlinux 0x96cd2b04 scsi_sense_key_string +EXPORT_SYMBOL vmlinux 0x96d7f152 dst_destroy +EXPORT_SYMBOL vmlinux 0x96f8ad1a bitmap_end_sync +EXPORT_SYMBOL vmlinux 0x970a8c65 ip6_expire_frag_queue +EXPORT_SYMBOL vmlinux 0x97216d52 __scsi_device_lookup +EXPORT_SYMBOL vmlinux 0x9725b589 proc_doulongvec_minmax +EXPORT_SYMBOL vmlinux 0x9738b808 dquot_quota_sync +EXPORT_SYMBOL vmlinux 0x97399806 skb_unlink +EXPORT_SYMBOL vmlinux 0x973fa82e register_acpi_notifier +EXPORT_SYMBOL vmlinux 0x9754ec10 radix_tree_preload +EXPORT_SYMBOL vmlinux 0x97824ea4 force_sig +EXPORT_SYMBOL vmlinux 0x97838ac5 ftrace_raw_output_prep +EXPORT_SYMBOL vmlinux 0x97868aef __kfifo_alloc +EXPORT_SYMBOL vmlinux 0x97999817 rfkill_set_hw_state +EXPORT_SYMBOL vmlinux 0x97c2aa26 intel_gmch_probe +EXPORT_SYMBOL vmlinux 0x97c5bd0a acpi_unload_parent_table +EXPORT_SYMBOL vmlinux 0x97de0ddd acpi_install_gpe_block +EXPORT_SYMBOL vmlinux 0x97f1babd journal_flush +EXPORT_SYMBOL vmlinux 0x980323a8 skb_realloc_headroom +EXPORT_SYMBOL vmlinux 0x9820b644 warn_slowpath_fmt_taint +EXPORT_SYMBOL vmlinux 0x982807c2 simple_getattr +EXPORT_SYMBOL vmlinux 0x9829fc11 __kfifo_out_peek_r +EXPORT_SYMBOL vmlinux 0x98345916 journal_check_used_features +EXPORT_SYMBOL vmlinux 0x98412067 dquot_quotactl_ops +EXPORT_SYMBOL vmlinux 0x986e6135 fb_pad_unaligned_buffer +EXPORT_SYMBOL vmlinux 0x9881f948 dcache_readdir +EXPORT_SYMBOL vmlinux 0x988ed85d set_memory_x +EXPORT_SYMBOL vmlinux 0x98926d4f genphy_suspend +EXPORT_SYMBOL vmlinux 0x98efd39f agp_generic_insert_memory +EXPORT_SYMBOL vmlinux 0x98fa21b0 mod_timer_pinned +EXPORT_SYMBOL vmlinux 0x99195078 vsnprintf +EXPORT_SYMBOL vmlinux 0x9926a346 init_buffer +EXPORT_SYMBOL vmlinux 0x993b62e4 cdrom_get_media_event +EXPORT_SYMBOL vmlinux 0x99508924 do_SAK +EXPORT_SYMBOL vmlinux 0x99517682 udp_encap_enable +EXPORT_SYMBOL vmlinux 0x99541de4 journal_get_undo_access +EXPORT_SYMBOL vmlinux 0x99591a7a ipv6_ext_hdr +EXPORT_SYMBOL vmlinux 0x9994c0ca ps2_is_keyboard_id +EXPORT_SYMBOL vmlinux 0x999e8297 vfree +EXPORT_SYMBOL vmlinux 0x999ecc4c elv_rq_merge_ok +EXPORT_SYMBOL vmlinux 0x99a510a5 scsi_prep_fn +EXPORT_SYMBOL vmlinux 0x99c307ca key_reject_and_link +EXPORT_SYMBOL vmlinux 0x99cdc86b sysctl_tcp_reordering +EXPORT_SYMBOL vmlinux 0x99d3a43c dm_table_get_size +EXPORT_SYMBOL vmlinux 0x99daa9bf try_offline_node +EXPORT_SYMBOL vmlinux 0x99de537e soft_cursor +EXPORT_SYMBOL vmlinux 0x99e0e347 inet_accept +EXPORT_SYMBOL vmlinux 0x99e27fa3 sg_miter_next +EXPORT_SYMBOL vmlinux 0x99f068d5 x86_cpu_to_node_map +EXPORT_SYMBOL vmlinux 0x99f5fa9b cap_mmap_file +EXPORT_SYMBOL vmlinux 0x9a1dfd65 strpbrk +EXPORT_SYMBOL vmlinux 0x9a1fc4b4 jiffies_to_timeval +EXPORT_SYMBOL vmlinux 0x9a27e528 register_filesystem +EXPORT_SYMBOL vmlinux 0x9a3b0cdf xfrm_register_type +EXPORT_SYMBOL vmlinux 0x9a5ffc64 __tracepoint_kmem_cache_alloc +EXPORT_SYMBOL vmlinux 0x9a7dcc49 scsi_prep_return +EXPORT_SYMBOL vmlinux 0x9aae7fee shrink_dcache_sb +EXPORT_SYMBOL vmlinux 0x9ac41be8 genphy_restart_aneg +EXPORT_SYMBOL vmlinux 0x9ad5a3a1 rtnl_set_sk_err +EXPORT_SYMBOL vmlinux 0x9ad5d39b jbd2_journal_get_undo_access +EXPORT_SYMBOL vmlinux 0x9ae3e1a9 qdisc_list_del +EXPORT_SYMBOL vmlinux 0x9af89f98 memcpy_fromiovec +EXPORT_SYMBOL vmlinux 0x9b05051a set_nlink +EXPORT_SYMBOL vmlinux 0x9b2f952d security_inode_init_security +EXPORT_SYMBOL vmlinux 0x9b33e0d7 unregister_dcbevent_notifier +EXPORT_SYMBOL vmlinux 0x9b388444 get_zeroed_page +EXPORT_SYMBOL vmlinux 0x9b46cb5c uart_match_port +EXPORT_SYMBOL vmlinux 0x9b6ee85b max8925_reg_read +EXPORT_SYMBOL vmlinux 0x9b75cb81 _raw_read_trylock +EXPORT_SYMBOL vmlinux 0x9b7ffd39 key_link +EXPORT_SYMBOL vmlinux 0x9b8f92d5 tty_register_device +EXPORT_SYMBOL vmlinux 0x9b9e05f9 alloc_cpu_rmap +EXPORT_SYMBOL vmlinux 0x9ba7089d argv_split +EXPORT_SYMBOL vmlinux 0x9bafae80 __pagevec_release +EXPORT_SYMBOL vmlinux 0x9be7bde4 security_tun_dev_attach +EXPORT_SYMBOL vmlinux 0x9be7e0ec bdi_unregister +EXPORT_SYMBOL vmlinux 0x9c00a0f7 dquot_set_dqinfo +EXPORT_SYMBOL vmlinux 0x9c1f6d19 nf_register_queue_handler +EXPORT_SYMBOL vmlinux 0x9c27862e __block_page_mkwrite +EXPORT_SYMBOL vmlinux 0x9c491f60 sg_alloc_table +EXPORT_SYMBOL vmlinux 0x9cab34a6 rfkill_set_led_trigger_name +EXPORT_SYMBOL vmlinux 0x9cca3e06 xfrm_policy_unregister_afinfo +EXPORT_SYMBOL vmlinux 0x9ccacbc5 path_get +EXPORT_SYMBOL vmlinux 0x9cdf2b50 blk_stop_queue +EXPORT_SYMBOL vmlinux 0x9ce04179 audit_log_task_info +EXPORT_SYMBOL vmlinux 0x9ce6cf89 xfrm_state_check_expire +EXPORT_SYMBOL vmlinux 0x9cfd56c5 scsi_print_status +EXPORT_SYMBOL vmlinux 0x9d01c373 d_find_any_alias +EXPORT_SYMBOL vmlinux 0x9d05f6c4 ktime_get_clocktai +EXPORT_SYMBOL vmlinux 0x9d0d6206 unregister_netdevice_notifier +EXPORT_SYMBOL vmlinux 0x9d11785f key_revoke +EXPORT_SYMBOL vmlinux 0x9d1a5e3a __memcpy +EXPORT_SYMBOL vmlinux 0x9d273273 xfrm6_input_addr +EXPORT_SYMBOL vmlinux 0x9d33ef5e acpi_enable +EXPORT_SYMBOL vmlinux 0x9d3aa376 blk_iopoll_init +EXPORT_SYMBOL vmlinux 0x9d488178 find_get_pages_contig +EXPORT_SYMBOL vmlinux 0x9d6dbebd kobject_init +EXPORT_SYMBOL vmlinux 0x9d860985 put_disk +EXPORT_SYMBOL vmlinux 0x9db05710 blk_integrity_register +EXPORT_SYMBOL vmlinux 0x9ded188e kobject_del +EXPORT_SYMBOL vmlinux 0x9e0c711d vzalloc_node +EXPORT_SYMBOL vmlinux 0x9e2f13c6 swiotlb_unmap_sg_attrs +EXPORT_SYMBOL vmlinux 0x9e363b6b acpi_disable_gpe +EXPORT_SYMBOL vmlinux 0x9e40399d spi_schedule_dv_device +EXPORT_SYMBOL vmlinux 0x9e4e3540 xfrm_stateonly_find +EXPORT_SYMBOL vmlinux 0x9e4faeef dm_io_client_destroy +EXPORT_SYMBOL vmlinux 0x9e5b093a napi_complete +EXPORT_SYMBOL vmlinux 0x9e61a2bf scsi_host_lookup +EXPORT_SYMBOL vmlinux 0x9e61bb05 set_freezable +EXPORT_SYMBOL vmlinux 0x9e64fbfe rtc_cmos_read +EXPORT_SYMBOL vmlinux 0x9e7d6bd0 __udelay +EXPORT_SYMBOL vmlinux 0x9e9f1714 __bitmap_andnot +EXPORT_SYMBOL vmlinux 0x9ea0ad49 __sg_free_table +EXPORT_SYMBOL vmlinux 0x9eb3da10 new_inode +EXPORT_SYMBOL vmlinux 0x9ebd4c04 adjust_resource +EXPORT_SYMBOL vmlinux 0x9ec7a6fc ipv6_find_hdr +EXPORT_SYMBOL vmlinux 0x9f0226f8 tty_lock_pair +EXPORT_SYMBOL vmlinux 0x9f15395b mutex_trylock +EXPORT_SYMBOL vmlinux 0x9f20fca2 pci_dev_driver +EXPORT_SYMBOL vmlinux 0x9f251019 pci_reenable_device +EXPORT_SYMBOL vmlinux 0x9f2bdaac __bitmap_or +EXPORT_SYMBOL vmlinux 0x9f46ced8 __sw_hweight64 +EXPORT_SYMBOL vmlinux 0x9f46f63f ht_create_irq +EXPORT_SYMBOL vmlinux 0x9f4cee7c zero_fill_bio +EXPORT_SYMBOL vmlinux 0x9f4f3ff8 blk_queue_update_dma_pad +EXPORT_SYMBOL vmlinux 0x9f6aca11 dcache_dir_open +EXPORT_SYMBOL vmlinux 0x9f6e19ab mem_section +EXPORT_SYMBOL vmlinux 0x9f80b316 dev_vprintk_emit +EXPORT_SYMBOL vmlinux 0x9f8ceec5 acpi_processor_notify_smm +EXPORT_SYMBOL vmlinux 0x9f984513 strrchr +EXPORT_SYMBOL vmlinux 0x9f9b1e70 vm_stat +EXPORT_SYMBOL vmlinux 0x9fd7d3eb tcp_md5_do_lookup +EXPORT_SYMBOL vmlinux 0x9fdecc31 unregister_netdevice_many +EXPORT_SYMBOL vmlinux 0x9febe7a1 proc_symlink +EXPORT_SYMBOL vmlinux 0x9ffa3a75 netdev_max_backlog +EXPORT_SYMBOL vmlinux 0xa007141d pci_disable_ido +EXPORT_SYMBOL vmlinux 0xa00aca2a dql_completed +EXPORT_SYMBOL vmlinux 0xa017a13b devfreq_monitor_stop +EXPORT_SYMBOL vmlinux 0xa03fa222 gnet_stats_copy_queue +EXPORT_SYMBOL vmlinux 0xa04a01bd qdisc_class_hash_insert +EXPORT_SYMBOL vmlinux 0xa04cf485 blk_queue_find_tag +EXPORT_SYMBOL vmlinux 0xa04ebca8 sk_run_filter +EXPORT_SYMBOL vmlinux 0xa05c03df mempool_kmalloc +EXPORT_SYMBOL vmlinux 0xa06678f3 current_task +EXPORT_SYMBOL vmlinux 0xa074c994 security_path_rename +EXPORT_SYMBOL vmlinux 0xa07a37f0 memchr +EXPORT_SYMBOL vmlinux 0xa07ed110 xz_dec_init +EXPORT_SYMBOL vmlinux 0xa0834a47 gen_pool_free +EXPORT_SYMBOL vmlinux 0xa0b04675 vmalloc_32 +EXPORT_SYMBOL vmlinux 0xa0c6564f inet_csk_init_xmit_timers +EXPORT_SYMBOL vmlinux 0xa0ceef51 out_of_line_wait_on_bit +EXPORT_SYMBOL vmlinux 0xa0e39cbc blk_free_tags +EXPORT_SYMBOL vmlinux 0xa0e57df8 tcf_em_register +EXPORT_SYMBOL vmlinux 0xa0e6f1ad alloc_fcdev +EXPORT_SYMBOL vmlinux 0xa0f11bc5 rc5t583_ext_power_req_config +EXPORT_SYMBOL vmlinux 0xa0f5152f napi_get_frags +EXPORT_SYMBOL vmlinux 0xa0fbac79 wake_up_bit +EXPORT_SYMBOL vmlinux 0xa0ff74d6 udp_memory_allocated +EXPORT_SYMBOL vmlinux 0xa103e276 inet_stream_connect +EXPORT_SYMBOL vmlinux 0xa108eb4d sysctl_optmem_max +EXPORT_SYMBOL vmlinux 0xa120d33c tty_unregister_ldisc +EXPORT_SYMBOL vmlinux 0xa12f5bb9 posix_acl_from_xattr +EXPORT_SYMBOL vmlinux 0xa143af74 acpi_device_set_power +EXPORT_SYMBOL vmlinux 0xa14a8c93 inet6_register_protosw +EXPORT_SYMBOL vmlinux 0xa14f3d8c ewma_add +EXPORT_SYMBOL vmlinux 0xa16a5e73 blkdev_get_by_dev +EXPORT_SYMBOL vmlinux 0xa194db98 ps2_begin_command +EXPORT_SYMBOL vmlinux 0xa1b759ce fb_add_videomode +EXPORT_SYMBOL vmlinux 0xa1bdd2a9 inode_add_bytes +EXPORT_SYMBOL vmlinux 0xa1c7194c register_console +EXPORT_SYMBOL vmlinux 0xa1c76e0a _cond_resched +EXPORT_SYMBOL vmlinux 0xa1cceebc __find_get_block +EXPORT_SYMBOL vmlinux 0xa1dc8988 inet_csk_clear_xmit_timers +EXPORT_SYMBOL vmlinux 0xa1ee56e5 set_page_dirty_lock +EXPORT_SYMBOL vmlinux 0xa202a8e5 kmalloc_order_trace +EXPORT_SYMBOL vmlinux 0xa20ce1b8 net_msg_warn +EXPORT_SYMBOL vmlinux 0xa20e9b6c simple_unlink +EXPORT_SYMBOL vmlinux 0xa250c838 param_get_charp +EXPORT_SYMBOL vmlinux 0xa25e8203 mmc_gpio_get_cd +EXPORT_SYMBOL vmlinux 0xa265fb11 generic_file_remap_pages +EXPORT_SYMBOL vmlinux 0xa2811289 noop_qdisc +EXPORT_SYMBOL vmlinux 0xa2848c50 ecryptfs_get_auth_tok_key +EXPORT_SYMBOL vmlinux 0xa2a5fd77 inet_ehash_secret +EXPORT_SYMBOL vmlinux 0xa2b8886b acpi_gpiochip_free_interrupts +EXPORT_SYMBOL vmlinux 0xa2bead2e led_set_brightness +EXPORT_SYMBOL vmlinux 0xa2c03023 skb_split +EXPORT_SYMBOL vmlinux 0xa2c1d79b __serio_register_driver +EXPORT_SYMBOL vmlinux 0xa2c2d686 tcp_prequeue +EXPORT_SYMBOL vmlinux 0xa2cfa671 netpoll_cleanup +EXPORT_SYMBOL vmlinux 0xa2d8b403 __generic_file_aio_write +EXPORT_SYMBOL vmlinux 0xa2ea913f sk_common_release +EXPORT_SYMBOL vmlinux 0xa2ef34d7 rps_sock_flow_table +EXPORT_SYMBOL vmlinux 0xa2f635d3 mdiobus_unregister +EXPORT_SYMBOL vmlinux 0xa3039878 rfkill_alloc +EXPORT_SYMBOL vmlinux 0xa3082a21 give_up_console +EXPORT_SYMBOL vmlinux 0xa311766d frontswap_register_ops +EXPORT_SYMBOL vmlinux 0xa32116cb generic_setxattr +EXPORT_SYMBOL vmlinux 0xa337f75d alloc_file +EXPORT_SYMBOL vmlinux 0xa350a8f8 set_memory_array_uc +EXPORT_SYMBOL vmlinux 0xa35de80f ipv4_config +EXPORT_SYMBOL vmlinux 0xa363d808 register_netdev +EXPORT_SYMBOL vmlinux 0xa3738e71 ata_scsi_cmd_error_handler +EXPORT_SYMBOL vmlinux 0xa379963e pci_set_ltr +EXPORT_SYMBOL vmlinux 0xa3805296 locks_mandatory_area +EXPORT_SYMBOL vmlinux 0xa38b1886 __quota_error +EXPORT_SYMBOL vmlinux 0xa396ee72 padata_alloc_possible +EXPORT_SYMBOL vmlinux 0xa3a77c69 down_read_trylock +EXPORT_SYMBOL vmlinux 0xa3bfb698 ppp_unregister_compressor +EXPORT_SYMBOL vmlinux 0xa3d60ede pci_set_master +EXPORT_SYMBOL vmlinux 0xa3dee472 pci_enable_bridges +EXPORT_SYMBOL vmlinux 0xa3f96685 wait_for_completion_io_timeout +EXPORT_SYMBOL vmlinux 0xa3fc3d50 __tracepoint_module_get +EXPORT_SYMBOL vmlinux 0xa400159f crc32_be +EXPORT_SYMBOL vmlinux 0xa4073fa3 register_qdisc +EXPORT_SYMBOL vmlinux 0xa40cbe20 loop_register_transfer +EXPORT_SYMBOL vmlinux 0xa421bed1 __splice_from_pipe +EXPORT_SYMBOL vmlinux 0xa427f3f4 qdisc_watchdog_init +EXPORT_SYMBOL vmlinux 0xa42ebe60 inet6_unregister_protosw +EXPORT_SYMBOL vmlinux 0xa4511467 crc16 +EXPORT_SYMBOL vmlinux 0xa46fba6a dev_set_drvdata +EXPORT_SYMBOL vmlinux 0xa4701e9e timekeeping_inject_offset +EXPORT_SYMBOL vmlinux 0xa47cc609 __blk_end_request_cur +EXPORT_SYMBOL vmlinux 0xa47f7aac dm_io +EXPORT_SYMBOL vmlinux 0xa486f6a3 writeback_inodes_sb +EXPORT_SYMBOL vmlinux 0xa489b7d3 uart_get_baud_rate +EXPORT_SYMBOL vmlinux 0xa4b0d637 mpage_writepage +EXPORT_SYMBOL vmlinux 0xa4b94fea iowrite8_rep +EXPORT_SYMBOL vmlinux 0xa4c9e250 neigh_lookup +EXPORT_SYMBOL vmlinux 0xa4d4f0e6 global_cache_flush +EXPORT_SYMBOL vmlinux 0xa4e6dbb9 neigh_direct_output +EXPORT_SYMBOL vmlinux 0xa4e99ca1 pm860x_page_set_bits +EXPORT_SYMBOL vmlinux 0xa4ed67a7 inode_dio_done +EXPORT_SYMBOL vmlinux 0xa4f623bb bdi_init +EXPORT_SYMBOL vmlinux 0xa4fada1b generic_removexattr +EXPORT_SYMBOL vmlinux 0xa4fff4ce serial8250_set_isa_configurator +EXPORT_SYMBOL vmlinux 0xa50a111e inet_peer_xrlim_allow +EXPORT_SYMBOL vmlinux 0xa50cf9d5 end_buffer_write_sync +EXPORT_SYMBOL vmlinux 0xa50fdcd3 netlink_broadcast +EXPORT_SYMBOL vmlinux 0xa51df2b4 down_killable +EXPORT_SYMBOL vmlinux 0xa521044a udp_proc_register +EXPORT_SYMBOL vmlinux 0xa53352d6 padata_alloc +EXPORT_SYMBOL vmlinux 0xa547d791 audit_log +EXPORT_SYMBOL vmlinux 0xa54c9ae4 fsnotify_put_mark +EXPORT_SYMBOL vmlinux 0xa5526619 rb_insert_color +EXPORT_SYMBOL vmlinux 0xa577a850 param_get_short +EXPORT_SYMBOL vmlinux 0xa58a3166 lg_local_lock +EXPORT_SYMBOL vmlinux 0xa58c973d qdisc_class_hash_grow +EXPORT_SYMBOL vmlinux 0xa598e29c vesa_modes +EXPORT_SYMBOL vmlinux 0xa599e96c tty_insert_flip_string_flags +EXPORT_SYMBOL vmlinux 0xa5b645ba nonseekable_open +EXPORT_SYMBOL vmlinux 0xa5c4ab7e __inet_stream_connect +EXPORT_SYMBOL vmlinux 0xa5cfe1b8 dquot_alloc +EXPORT_SYMBOL vmlinux 0xa5d5df6f generic_pipe_buf_release +EXPORT_SYMBOL vmlinux 0xa5dd45f3 prandom_bytes_state +EXPORT_SYMBOL vmlinux 0xa5e23746 tcf_register_action +EXPORT_SYMBOL vmlinux 0xa5e4f65c __next_cpu_nr +EXPORT_SYMBOL vmlinux 0xa5e55e5d inet6_getname +EXPORT_SYMBOL vmlinux 0xa5eb06f6 bio_integrity_advance +EXPORT_SYMBOL vmlinux 0xa6080829 ppp_dev_name +EXPORT_SYMBOL vmlinux 0xa61a1e3e psched_ratecfg_precompute +EXPORT_SYMBOL vmlinux 0xa63d85ab slhc_remember +EXPORT_SYMBOL vmlinux 0xa63f48e2 pci_bus_find_capability +EXPORT_SYMBOL vmlinux 0xa6415bea blk_rq_map_user_iov +EXPORT_SYMBOL vmlinux 0xa64469da agp_unbind_memory +EXPORT_SYMBOL vmlinux 0xa65e63e5 pm860x_page_reg_read +EXPORT_SYMBOL vmlinux 0xa6715115 do_settimeofday +EXPORT_SYMBOL vmlinux 0xa67500a6 vc_resize +EXPORT_SYMBOL vmlinux 0xa675804c utf8s_to_utf16s +EXPORT_SYMBOL vmlinux 0xa681fe88 generate_random_uuid +EXPORT_SYMBOL vmlinux 0xa6dbd006 insert_inode_locked4 +EXPORT_SYMBOL vmlinux 0xa6e7b937 padata_unregister_cpumask_notifier +EXPORT_SYMBOL vmlinux 0xa70fabbe release_evntsel_nmi +EXPORT_SYMBOL vmlinux 0xa710229e tcp_syn_ack_timeout +EXPORT_SYMBOL vmlinux 0xa714dad4 sock_no_bind +EXPORT_SYMBOL vmlinux 0xa72a0f5b nr_online_nodes +EXPORT_SYMBOL vmlinux 0xa730faae simple_transaction_read +EXPORT_SYMBOL vmlinux 0xa735db59 prandom_u32 +EXPORT_SYMBOL vmlinux 0xa738de70 i8042_check_port_owner +EXPORT_SYMBOL vmlinux 0xa74b12a4 do_sync_read +EXPORT_SYMBOL vmlinux 0xa769a4f7 dev_disable_lro +EXPORT_SYMBOL vmlinux 0xa76c3c85 net_dma_find_channel +EXPORT_SYMBOL vmlinux 0xa787adb3 phy_ethtool_sset +EXPORT_SYMBOL vmlinux 0xa7a2b3e2 skb_copy_bits +EXPORT_SYMBOL vmlinux 0xa7d4f754 __pagevec_lru_add +EXPORT_SYMBOL vmlinux 0xa7ec9bcc inode_owner_or_capable +EXPORT_SYMBOL vmlinux 0xa7f37e77 dm_register_target +EXPORT_SYMBOL vmlinux 0xa81bfb46 netdev_emerg +EXPORT_SYMBOL vmlinux 0xa8232c78 strtobool +EXPORT_SYMBOL vmlinux 0xa843805a get_unused_fd_flags +EXPORT_SYMBOL vmlinux 0xa84b15f2 unlock_rename +EXPORT_SYMBOL vmlinux 0xa85d6421 efi +EXPORT_SYMBOL vmlinux 0xa8653d81 proc_mkdir +EXPORT_SYMBOL vmlinux 0xa8721b97 system_state +EXPORT_SYMBOL vmlinux 0xa8a6f639 __check_region +EXPORT_SYMBOL vmlinux 0xa8cfac54 jbd2_journal_check_available_features +EXPORT_SYMBOL vmlinux 0xa8d68abd acpi_warning +EXPORT_SYMBOL vmlinux 0xa8fef7bb security_unix_may_send +EXPORT_SYMBOL vmlinux 0xa90d08e0 lookup_one_len +EXPORT_SYMBOL vmlinux 0xa916b694 strnlen +EXPORT_SYMBOL vmlinux 0xa91b5561 acpi_video_backlight_support +EXPORT_SYMBOL vmlinux 0xa91eb97a journal_forget +EXPORT_SYMBOL vmlinux 0xa95d3cdb gen_pool_for_each_chunk +EXPORT_SYMBOL vmlinux 0xa961994d pnp_is_active +EXPORT_SYMBOL vmlinux 0xa97cc950 f_setown +EXPORT_SYMBOL vmlinux 0xa981fa2d iov_iter_fault_in_readable +EXPORT_SYMBOL vmlinux 0xa9877a9a generic_file_aio_read +EXPORT_SYMBOL vmlinux 0xa98855cc md_done_sync +EXPORT_SYMBOL vmlinux 0xa9a8e17f arch_phys_wc_add +EXPORT_SYMBOL vmlinux 0xa9b9b351 vlan_uses_dev +EXPORT_SYMBOL vmlinux 0xa9bccc59 dev_set_mac_address +EXPORT_SYMBOL vmlinux 0xa9bd2676 __vmalloc +EXPORT_SYMBOL vmlinux 0xa9d8f55e ida_simple_remove +EXPORT_SYMBOL vmlinux 0xa9f5f244 netdev_update_features +EXPORT_SYMBOL vmlinux 0xaa0097f5 xfrm_sad_getinfo +EXPORT_SYMBOL vmlinux 0xaa5b1d21 neigh_event_ns +EXPORT_SYMBOL vmlinux 0xaa5df5f8 sock_wmalloc +EXPORT_SYMBOL vmlinux 0xaa6d3fb6 uart_get_divisor +EXPORT_SYMBOL vmlinux 0xaa6f23ad rfkill_get_led_trigger_name +EXPORT_SYMBOL vmlinux 0xaa74b8c8 dev_emerg +EXPORT_SYMBOL vmlinux 0xaa76bab0 devm_backlight_device_unregister +EXPORT_SYMBOL vmlinux 0xaa9d845d inet6_bind +EXPORT_SYMBOL vmlinux 0xaab003a1 inet6_add_protocol +EXPORT_SYMBOL vmlinux 0xaab1eaaf eth_change_mtu +EXPORT_SYMBOL vmlinux 0xaacc55aa spi_attach_transport +EXPORT_SYMBOL vmlinux 0xaad6d92f rfkill_init_sw_state +EXPORT_SYMBOL vmlinux 0xaadd4b2e unmap_mapping_range +EXPORT_SYMBOL vmlinux 0xaadf40cb tcp_mtup_init +EXPORT_SYMBOL vmlinux 0xaae5f224 vm_insert_page +EXPORT_SYMBOL vmlinux 0xaae8ab0e acpi_bus_power_manageable +EXPORT_SYMBOL vmlinux 0xaafc1ec4 i2c_smbus_read_word_data +EXPORT_SYMBOL vmlinux 0xaafdc258 strcasecmp +EXPORT_SYMBOL vmlinux 0xab00e834 eth_type_trans +EXPORT_SYMBOL vmlinux 0xab04aafe mmc_hw_reset +EXPORT_SYMBOL vmlinux 0xab0e4fc8 spi_dv_device +EXPORT_SYMBOL vmlinux 0xab104cd2 lock_sock_nested +EXPORT_SYMBOL vmlinux 0xab1d6cc1 param_get_long +EXPORT_SYMBOL vmlinux 0xab274835 ppp_register_channel +EXPORT_SYMBOL vmlinux 0xab2a30cc qdisc_watchdog_schedule_ns +EXPORT_SYMBOL vmlinux 0xab2abddf dma_spin_lock +EXPORT_SYMBOL vmlinux 0xab3619d6 tcp_timewait_state_process +EXPORT_SYMBOL vmlinux 0xab600421 probe_irq_off +EXPORT_SYMBOL vmlinux 0xab65ed80 set_memory_uc +EXPORT_SYMBOL vmlinux 0xab6bcf34 pci_stop_and_remove_bus_device +EXPORT_SYMBOL vmlinux 0xab6bde28 sysctl_max_syn_backlog +EXPORT_SYMBOL vmlinux 0xab770678 rdmsr_safe_regs_on_cpu +EXPORT_SYMBOL vmlinux 0xab781570 fb_get_options +EXPORT_SYMBOL vmlinux 0xab84064c udp_seq_open +EXPORT_SYMBOL vmlinux 0xabc6dd63 cpufreq_sysfs_create_file +EXPORT_SYMBOL vmlinux 0xabcaa577 free_anon_bdev +EXPORT_SYMBOL vmlinux 0xabcfb21b do_truncate +EXPORT_SYMBOL vmlinux 0xabd0c91c rtc_time_to_tm +EXPORT_SYMBOL vmlinux 0xabecc33d vga_get +EXPORT_SYMBOL vmlinux 0xabf3eb21 tcf_em_tree_dump +EXPORT_SYMBOL vmlinux 0xac008130 tcf_em_unregister +EXPORT_SYMBOL vmlinux 0xac0653a8 jbd2_journal_wipe +EXPORT_SYMBOL vmlinux 0xac0ba8c1 blk_iopoll_disable +EXPORT_SYMBOL vmlinux 0xac1a55be unregister_reboot_notifier +EXPORT_SYMBOL vmlinux 0xac237d2d xfrm4_rcv +EXPORT_SYMBOL vmlinux 0xac2b09c0 __ps2_command +EXPORT_SYMBOL vmlinux 0xac2e1c73 mfd_add_devices +EXPORT_SYMBOL vmlinux 0xac3b9695 agp_bind_memory +EXPORT_SYMBOL vmlinux 0xac3d20e2 unregister_sysctl_table +EXPORT_SYMBOL vmlinux 0xac58ea5e acpi_unload_table_id +EXPORT_SYMBOL vmlinux 0xac59530f set_anon_super +EXPORT_SYMBOL vmlinux 0xaca8133c pci_read_vpd +EXPORT_SYMBOL vmlinux 0xaca94a86 sk_stream_write_space +EXPORT_SYMBOL vmlinux 0xacab29b7 seq_hlist_start_percpu +EXPORT_SYMBOL vmlinux 0xacb0373f generic_file_llseek +EXPORT_SYMBOL vmlinux 0xaccabc6a in4_pton +EXPORT_SYMBOL vmlinux 0xaccb6ed5 mmc_can_erase +EXPORT_SYMBOL vmlinux 0xaccdf604 block_write_full_page +EXPORT_SYMBOL vmlinux 0xacf4d843 match_strdup +EXPORT_SYMBOL vmlinux 0xad01744f kstrtos8_from_user +EXPORT_SYMBOL vmlinux 0xad0413d4 match_hex +EXPORT_SYMBOL vmlinux 0xad104c5f xfrm_state_flush +EXPORT_SYMBOL vmlinux 0xad13c689 acpi_os_execute +EXPORT_SYMBOL vmlinux 0xad164875 kstrtos16_from_user +EXPORT_SYMBOL vmlinux 0xad2a8bd2 x86_bios_cpu_apicid +EXPORT_SYMBOL vmlinux 0xad3f0b3b devm_input_allocate_device +EXPORT_SYMBOL vmlinux 0xad4136fd pci_bus_add_devices +EXPORT_SYMBOL vmlinux 0xad4c9fb5 __skb_warn_lro_forwarding +EXPORT_SYMBOL vmlinux 0xad6e1f8e neigh_compat_output +EXPORT_SYMBOL vmlinux 0xad72e2a0 ip_mc_dec_group +EXPORT_SYMBOL vmlinux 0xad7fa8f3 write_dirty_buffer +EXPORT_SYMBOL vmlinux 0xad80f9b9 d_add_ci +EXPORT_SYMBOL vmlinux 0xad843546 blk_fetch_request +EXPORT_SYMBOL vmlinux 0xad84bef8 dm_table_event +EXPORT_SYMBOL vmlinux 0xada2a5d7 bitmap_startwrite +EXPORT_SYMBOL vmlinux 0xadaabe1b pv_lock_ops +EXPORT_SYMBOL vmlinux 0xadb32ec1 sk_receive_skb +EXPORT_SYMBOL vmlinux 0xadb45eda inode_add_rsv_space +EXPORT_SYMBOL vmlinux 0xadb5559d param_ops_byte +EXPORT_SYMBOL vmlinux 0xadc8dbab blkdev_fsync +EXPORT_SYMBOL vmlinux 0xadeeb8af md_set_array_sectors +EXPORT_SYMBOL vmlinux 0xadf9ce4e journal_destroy +EXPORT_SYMBOL vmlinux 0xae129e3e key_validate +EXPORT_SYMBOL vmlinux 0xae334f5d blk_init_queue +EXPORT_SYMBOL vmlinux 0xae3f41d8 write_inode_now +EXPORT_SYMBOL vmlinux 0xae4bc931 km_query +EXPORT_SYMBOL vmlinux 0xae5bff1d dget_parent +EXPORT_SYMBOL vmlinux 0xae63c675 i2c_get_adapter +EXPORT_SYMBOL vmlinux 0xae729e59 security_req_classify_flow +EXPORT_SYMBOL vmlinux 0xae817023 security_path_mkdir +EXPORT_SYMBOL vmlinux 0xaea976a8 acpi_check_resource_conflict +EXPORT_SYMBOL vmlinux 0xaeadcf7a ata_link_printk +EXPORT_SYMBOL vmlinux 0xaeb54f84 jbd2_journal_force_commit_nested +EXPORT_SYMBOL vmlinux 0xaebaa154 dev_uc_flush +EXPORT_SYMBOL vmlinux 0xaec8fc20 jbd2_log_wait_commit +EXPORT_SYMBOL vmlinux 0xaee5fd83 mpage_readpages +EXPORT_SYMBOL vmlinux 0xaee92cbb cad_pid +EXPORT_SYMBOL vmlinux 0xaf3dd7dc scsi_logging_level +EXPORT_SYMBOL vmlinux 0xaf4ad270 __nla_reserve +EXPORT_SYMBOL vmlinux 0xaf5d591e get_disk +EXPORT_SYMBOL vmlinux 0xaf611eac amd_nb_misc_ids +EXPORT_SYMBOL vmlinux 0xaf6ae696 kstrndup +EXPORT_SYMBOL vmlinux 0xaf6dbba1 icmpv6_send +EXPORT_SYMBOL vmlinux 0xaf6de6c8 create_empty_buffers +EXPORT_SYMBOL vmlinux 0xaf718df0 pci_find_next_bus +EXPORT_SYMBOL vmlinux 0xaf91d89f __kernel_param_lock +EXPORT_SYMBOL vmlinux 0xaf924bef pci_wake_from_d3 +EXPORT_SYMBOL vmlinux 0xafa3f4f8 __dquot_free_space +EXPORT_SYMBOL vmlinux 0xafb6afa9 cdev_del +EXPORT_SYMBOL vmlinux 0xafb8c6ff copy_user_generic_string +EXPORT_SYMBOL vmlinux 0xafd354e1 sock_no_socketpair +EXPORT_SYMBOL vmlinux 0xafd5ff2c amd_iommu_v2_supported +EXPORT_SYMBOL vmlinux 0xafd886af vfs_writev +EXPORT_SYMBOL vmlinux 0xafe4310e tcp_simple_retransmit +EXPORT_SYMBOL vmlinux 0xafea49f8 vfs_fsync +EXPORT_SYMBOL vmlinux 0xb009ab3e i2c_smbus_read_byte +EXPORT_SYMBOL vmlinux 0xb017b887 pcix_set_mmrbc +EXPORT_SYMBOL vmlinux 0xb01b1db8 intel_gtt_insert_sg_entries +EXPORT_SYMBOL vmlinux 0xb02278bb eth_header_cache_update +EXPORT_SYMBOL vmlinux 0xb0597285 arp_xmit +EXPORT_SYMBOL vmlinux 0xb05fc310 sysctl_rmem_max +EXPORT_SYMBOL vmlinux 0xb098f528 qdisc_watchdog_cancel +EXPORT_SYMBOL vmlinux 0xb0a0da0c rational_best_approximation +EXPORT_SYMBOL vmlinux 0xb0a61639 __frontswap_load +EXPORT_SYMBOL vmlinux 0xb0b847ac __bitmap_full +EXPORT_SYMBOL vmlinux 0xb0d090dd key_type_keyring +EXPORT_SYMBOL vmlinux 0xb0dceaeb mmc_put_card +EXPORT_SYMBOL vmlinux 0xb0e10781 get_option +EXPORT_SYMBOL vmlinux 0xb0e602eb memmove +EXPORT_SYMBOL vmlinux 0xb0ffda2f blk_limits_max_hw_sectors +EXPORT_SYMBOL vmlinux 0xb109758a task_tgid_nr_ns +EXPORT_SYMBOL vmlinux 0xb121390a probe_irq_on +EXPORT_SYMBOL vmlinux 0xb12cbacb fb_unregister_client +EXPORT_SYMBOL vmlinux 0xb138d0bf dm_ratelimit_state +EXPORT_SYMBOL vmlinux 0xb15e2a0e account_page_writeback +EXPORT_SYMBOL vmlinux 0xb1645a2e sg_free_table +EXPORT_SYMBOL vmlinux 0xb19760c3 bitmap_onto +EXPORT_SYMBOL vmlinux 0xb1b42470 idr_init +EXPORT_SYMBOL vmlinux 0xb1c3a01a oops_in_progress +EXPORT_SYMBOL vmlinux 0xb1cf44df fb_find_best_mode +EXPORT_SYMBOL vmlinux 0xb1cfad22 rdmsr_on_cpu +EXPORT_SYMBOL vmlinux 0xb20ecf88 acpi_run_osc +EXPORT_SYMBOL vmlinux 0xb219d56c wbinvd_on_cpu +EXPORT_SYMBOL vmlinux 0xb22e0d8a generic_error_remove_page +EXPORT_SYMBOL vmlinux 0xb23528df tty_port_open +EXPORT_SYMBOL vmlinux 0xb2535a67 unregister_exec_domain +EXPORT_SYMBOL vmlinux 0xb2682405 utf8_to_utf32 +EXPORT_SYMBOL vmlinux 0xb2803379 sk_reset_timer +EXPORT_SYMBOL vmlinux 0xb2964645 block_truncate_page +EXPORT_SYMBOL vmlinux 0xb2be6e92 netdev_stats_to_stats64 +EXPORT_SYMBOL vmlinux 0xb2d12a27 dst_release +EXPORT_SYMBOL vmlinux 0xb2d307de param_ops_short +EXPORT_SYMBOL vmlinux 0xb2df2df6 skb_append_datato_frags +EXPORT_SYMBOL vmlinux 0xb2e08e7b lg_local_unlock_cpu +EXPORT_SYMBOL vmlinux 0xb2edc639 filemap_write_and_wait_range +EXPORT_SYMBOL vmlinux 0xb2f74fb6 intel_gmch_remove +EXPORT_SYMBOL vmlinux 0xb2fd5ceb __put_user_4 +EXPORT_SYMBOL vmlinux 0xb30e2b09 __blk_end_request +EXPORT_SYMBOL vmlinux 0xb3120c0d __neigh_create +EXPORT_SYMBOL vmlinux 0xb3284531 acpi_dbg_layer +EXPORT_SYMBOL vmlinux 0xb346c0bf xfrm_policy_register_afinfo +EXPORT_SYMBOL vmlinux 0xb34d4c2e acpi_terminate +EXPORT_SYMBOL vmlinux 0xb352177e find_first_bit +EXPORT_SYMBOL vmlinux 0xb3607588 __cleancache_invalidate_inode +EXPORT_SYMBOL vmlinux 0xb3988750 md_wakeup_thread +EXPORT_SYMBOL vmlinux 0xb3b7cccb devfreq_remove_governor +EXPORT_SYMBOL vmlinux 0xb3d99bf9 acpi_device_hid +EXPORT_SYMBOL vmlinux 0xb3df43f1 get_fs_type +EXPORT_SYMBOL vmlinux 0xb3ef9204 tcp_get_md5sig_pool +EXPORT_SYMBOL vmlinux 0xb3f7646e kthread_should_stop +EXPORT_SYMBOL vmlinux 0xb423dba1 console_blanked +EXPORT_SYMBOL vmlinux 0xb4290cf4 devm_ioremap_resource +EXPORT_SYMBOL vmlinux 0xb4303c7f tcp_parse_options +EXPORT_SYMBOL vmlinux 0xb4709322 scsi_dev_info_add_list +EXPORT_SYMBOL vmlinux 0xb47189b5 reservation_ww_class +EXPORT_SYMBOL vmlinux 0xb475a308 inet_sendpage +EXPORT_SYMBOL vmlinux 0xb4902b30 __genl_register_family +EXPORT_SYMBOL vmlinux 0xb49f059c blkdev_get +EXPORT_SYMBOL vmlinux 0xb4a8ec93 neigh_table_clear +EXPORT_SYMBOL vmlinux 0xb4d65cb5 journal_errno +EXPORT_SYMBOL vmlinux 0xb4df380f compat_mc_setsockopt +EXPORT_SYMBOL vmlinux 0xb4e818dd bio_alloc_pages +EXPORT_SYMBOL vmlinux 0xb4fb616f simple_rename +EXPORT_SYMBOL vmlinux 0xb50df6b6 x86_dma_fallback_dev +EXPORT_SYMBOL vmlinux 0xb51d6df8 bio_integrity_endio +EXPORT_SYMBOL vmlinux 0xb52574c3 i2c_smbus_write_i2c_block_data +EXPORT_SYMBOL vmlinux 0xb52875fc bio_integrity_clone +EXPORT_SYMBOL vmlinux 0xb52ee8be intel_gtt_clear_range +EXPORT_SYMBOL vmlinux 0xb5308f76 ppp_input +EXPORT_SYMBOL vmlinux 0xb53a9f09 alloc_mdio_bitbang +EXPORT_SYMBOL vmlinux 0xb54088a3 posix_acl_alloc +EXPORT_SYMBOL vmlinux 0xb54533f7 usecs_to_jiffies +EXPORT_SYMBOL vmlinux 0xb5463bae pci_bus_alloc_resource +EXPORT_SYMBOL vmlinux 0xb57343c2 frontswap_shrink +EXPORT_SYMBOL vmlinux 0xb574d98f disk_stack_limits +EXPORT_SYMBOL vmlinux 0xb57b47a4 vfs_statfs +EXPORT_SYMBOL vmlinux 0xb57f2457 sg_pcopy_from_buffer +EXPORT_SYMBOL vmlinux 0xb58ac2e8 blk_run_queue +EXPORT_SYMBOL vmlinux 0xb5a459dc unregister_blkdev +EXPORT_SYMBOL vmlinux 0xb5aa7165 dma_pool_destroy +EXPORT_SYMBOL vmlinux 0xb5ca1c46 slhc_free +EXPORT_SYMBOL vmlinux 0xb5dbcb9e eth_header +EXPORT_SYMBOL vmlinux 0xb5dcab5b remove_wait_queue +EXPORT_SYMBOL vmlinux 0xb5e9f7e0 iw_handler_set_thrspy +EXPORT_SYMBOL vmlinux 0xb604e9a7 blk_queue_invalidate_tags +EXPORT_SYMBOL vmlinux 0xb6244511 sg_init_one +EXPORT_SYMBOL vmlinux 0xb6392ef3 vga_client_register +EXPORT_SYMBOL vmlinux 0xb646accf blk_rq_map_sg +EXPORT_SYMBOL vmlinux 0xb650e514 mmc_can_secure_erase_trim +EXPORT_SYMBOL vmlinux 0xb678366f int_sqrt +EXPORT_SYMBOL vmlinux 0xb6822a33 radix_tree_gang_lookup_tag +EXPORT_SYMBOL vmlinux 0xb6936ffe _bcd2bin +EXPORT_SYMBOL vmlinux 0xb69dcc07 mb_cache_create +EXPORT_SYMBOL vmlinux 0xb6a68816 find_last_bit +EXPORT_SYMBOL vmlinux 0xb6c5a973 scsi_show_result +EXPORT_SYMBOL vmlinux 0xb6cbe886 acpi_get_node +EXPORT_SYMBOL vmlinux 0xb6cd01b0 jbd2_journal_invalidatepage +EXPORT_SYMBOL vmlinux 0xb6d415c3 xfrm_policy_flush +EXPORT_SYMBOL vmlinux 0xb6f8281e sock_no_setsockopt +EXPORT_SYMBOL vmlinux 0xb70f28f4 devfreq_monitor_resume +EXPORT_SYMBOL vmlinux 0xb7140c7a netdev_warn +EXPORT_SYMBOL vmlinux 0xb72b4a2a input_event +EXPORT_SYMBOL vmlinux 0xb758b225 acpi_disable_event +EXPORT_SYMBOL vmlinux 0xb7c40331 dev_driver_string +EXPORT_SYMBOL vmlinux 0xb7d27f31 inet_register_protosw +EXPORT_SYMBOL vmlinux 0xb7d59057 add_disk +EXPORT_SYMBOL vmlinux 0xb7e80628 ata_dev_acpi_handle +EXPORT_SYMBOL vmlinux 0xb7ea6bcf inet_select_addr +EXPORT_SYMBOL vmlinux 0xb7f47feb inode_sb_list_lock +EXPORT_SYMBOL vmlinux 0xb7f9c50f may_umount_tree +EXPORT_SYMBOL vmlinux 0xb81a54ea security_path_chmod +EXPORT_SYMBOL vmlinux 0xb823ffee tcp_read_sock +EXPORT_SYMBOL vmlinux 0xb835b3e4 radix_tree_prev_hole +EXPORT_SYMBOL vmlinux 0xb85e265e kill_block_super +EXPORT_SYMBOL vmlinux 0xb874b87a __clzsi2 +EXPORT_SYMBOL vmlinux 0xb88c88ba pagevec_lookup +EXPORT_SYMBOL vmlinux 0xb8916c0d tcf_exts_validate +EXPORT_SYMBOL vmlinux 0xb8a5838a __pci_register_driver +EXPORT_SYMBOL vmlinux 0xb8b245e0 pci_disable_device +EXPORT_SYMBOL vmlinux 0xb8b816b2 __xfrm_route_forward +EXPORT_SYMBOL vmlinux 0xb8cf5b61 tcf_action_dump_1 +EXPORT_SYMBOL vmlinux 0xb8e7ce2c __put_user_8 +EXPORT_SYMBOL vmlinux 0xb901efb9 arp_create +EXPORT_SYMBOL vmlinux 0xb907513f unpoison_memory +EXPORT_SYMBOL vmlinux 0xb919bd9b fb_find_mode +EXPORT_SYMBOL vmlinux 0xb9249d16 cpu_possible_mask +EXPORT_SYMBOL vmlinux 0xb960f533 dev_alloc_name +EXPORT_SYMBOL vmlinux 0xb96892bb call_netdevice_notifiers_info +EXPORT_SYMBOL vmlinux 0xb96db7df n_tty_ioctl_helper +EXPORT_SYMBOL vmlinux 0xb9705e92 wait_iff_congested +EXPORT_SYMBOL vmlinux 0xb9740ca8 __wait_on_buffer +EXPORT_SYMBOL vmlinux 0xb9782164 i2c_clients_command +EXPORT_SYMBOL vmlinux 0xb9829faf mark_buffer_async_write +EXPORT_SYMBOL vmlinux 0xb98a0185 rtc_tm_to_time +EXPORT_SYMBOL vmlinux 0xb98ce15b filemap_fdatawrite +EXPORT_SYMBOL vmlinux 0xb9937422 phy_device_register +EXPORT_SYMBOL vmlinux 0xb99a6746 vfs_rmdir +EXPORT_SYMBOL vmlinux 0xb9a772c6 rtnl_link_get_net +EXPORT_SYMBOL vmlinux 0xb9aca4f8 sk_stream_wait_close +EXPORT_SYMBOL vmlinux 0xb9b4e181 alloc_pages_exact_nid +EXPORT_SYMBOL vmlinux 0xb9d1a837 con_copy_unimap +EXPORT_SYMBOL vmlinux 0xb9da3797 dev_crit +EXPORT_SYMBOL vmlinux 0xb9db164f phy_start +EXPORT_SYMBOL vmlinux 0xb9fd2205 add_efi_memmap +EXPORT_SYMBOL vmlinux 0xba0bcb67 tcf_hash_search +EXPORT_SYMBOL vmlinux 0xba1b8dd5 splice_direct_to_actor +EXPORT_SYMBOL vmlinux 0xba2d8594 ec_read +EXPORT_SYMBOL vmlinux 0xba497f13 loops_per_jiffy +EXPORT_SYMBOL vmlinux 0xba527435 amd_northbridges +EXPORT_SYMBOL vmlinux 0xba63339c _raw_spin_unlock_bh +EXPORT_SYMBOL vmlinux 0xba6b0f2d twl6040_clear_bits +EXPORT_SYMBOL vmlinux 0xba8b7908 is_bad_inode +EXPORT_SYMBOL vmlinux 0xba90d63e __nla_put +EXPORT_SYMBOL vmlinux 0xba962a74 get_write_access +EXPORT_SYMBOL vmlinux 0xbadb825d dev_get_stats +EXPORT_SYMBOL vmlinux 0xbaef3775 nobh_truncate_page +EXPORT_SYMBOL vmlinux 0xbaeffa05 qid_eq +EXPORT_SYMBOL vmlinux 0xbb013a1e kmem_cache_shrink +EXPORT_SYMBOL vmlinux 0xbb189cad disallow_signal +EXPORT_SYMBOL vmlinux 0xbb34134a iov_shorten +EXPORT_SYMBOL vmlinux 0xbb363755 compat_nf_getsockopt +EXPORT_SYMBOL vmlinux 0xbb4f4766 simple_write_to_buffer +EXPORT_SYMBOL vmlinux 0xbb5d343d xfrm_get_acqseq +EXPORT_SYMBOL vmlinux 0xbb61114b tty_throttle +EXPORT_SYMBOL vmlinux 0xbb70f7ad try_to_writeback_inodes_sb_nr +EXPORT_SYMBOL vmlinux 0xbb713e6d sk_filter_release_rcu +EXPORT_SYMBOL vmlinux 0xbb7b41c7 scsi_unblock_requests +EXPORT_SYMBOL vmlinux 0xbb940f60 scsi_reset_provider +EXPORT_SYMBOL vmlinux 0xbb99125c get_default_font +EXPORT_SYMBOL vmlinux 0xbbb08e96 __cleancache_put_page +EXPORT_SYMBOL vmlinux 0xbbbf545e __netif_schedule +EXPORT_SYMBOL vmlinux 0xbbe5186c nf_log_unregister +EXPORT_SYMBOL vmlinux 0xbbf931e1 insert_inode_locked +EXPORT_SYMBOL vmlinux 0xbbfcaca5 bit_waitqueue +EXPORT_SYMBOL vmlinux 0xbc018951 arp_send +EXPORT_SYMBOL vmlinux 0xbc05300f xfrm_user_policy +EXPORT_SYMBOL vmlinux 0xbc159870 kill_pid +EXPORT_SYMBOL vmlinux 0xbc2031de acpi_processor_get_bios_limit +EXPORT_SYMBOL vmlinux 0xbc2978e9 lg_global_lock +EXPORT_SYMBOL vmlinux 0xbc3a2381 scsi_prep_state_check +EXPORT_SYMBOL vmlinux 0xbc5eeba8 get_super +EXPORT_SYMBOL vmlinux 0xbc87d582 mmc_gpio_free_ro +EXPORT_SYMBOL vmlinux 0xbc909e4a alloc_netdev_mqs +EXPORT_SYMBOL vmlinux 0xbcc308bb strnlen_user +EXPORT_SYMBOL vmlinux 0xbcce65d0 abx500_get_register_interruptible +EXPORT_SYMBOL vmlinux 0xbccea3a1 ip6_frag_match +EXPORT_SYMBOL vmlinux 0xbcdf30a9 pci_scan_slot +EXPORT_SYMBOL vmlinux 0xbcf2faf4 dquot_scan_active +EXPORT_SYMBOL vmlinux 0xbcf3af02 security_inode_permission +EXPORT_SYMBOL vmlinux 0xbcf3c745 dev_addr_add_multiple +EXPORT_SYMBOL vmlinux 0xbcf91bf1 journal_clear_err +EXPORT_SYMBOL vmlinux 0xbd100793 cpu_online_mask +EXPORT_SYMBOL vmlinux 0xbd16044e jbd2_journal_update_sb_errno +EXPORT_SYMBOL vmlinux 0xbd212ad6 blk_queue_make_request +EXPORT_SYMBOL vmlinux 0xbd232374 dev_getbyhwaddr_rcu +EXPORT_SYMBOL vmlinux 0xbd27d5f9 __lru_cache_add +EXPORT_SYMBOL vmlinux 0xbd2e8d8d xfrm_register_km +EXPORT_SYMBOL vmlinux 0xbd3a03a0 rtnl_unicast +EXPORT_SYMBOL vmlinux 0xbd462b55 __kfifo_init +EXPORT_SYMBOL vmlinux 0xbd6c9c7f clocksource_register +EXPORT_SYMBOL vmlinux 0xbd7ff669 qdisc_reset +EXPORT_SYMBOL vmlinux 0xbd8fea31 jbd2_journal_load +EXPORT_SYMBOL vmlinux 0xbd9f8003 devfreq_add_device +EXPORT_SYMBOL vmlinux 0xbda0405f framebuffer_release +EXPORT_SYMBOL vmlinux 0xbdace523 ipv6_setsockopt +EXPORT_SYMBOL vmlinux 0xbdaf5b07 acpi_os_read_port +EXPORT_SYMBOL vmlinux 0xbdc5477b acpi_match_device_ids +EXPORT_SYMBOL vmlinux 0xbde910f3 ip_defrag +EXPORT_SYMBOL vmlinux 0xbdfb6dbb __fentry__ +EXPORT_SYMBOL vmlinux 0xbe0f3a20 elevator_init +EXPORT_SYMBOL vmlinux 0xbe18153d try_wait_for_completion +EXPORT_SYMBOL vmlinux 0xbe1e9b6a md_wait_for_blocked_rdev +EXPORT_SYMBOL vmlinux 0xbe22321e d_move +EXPORT_SYMBOL vmlinux 0xbe254e92 param_set_ushort +EXPORT_SYMBOL vmlinux 0xbe2c0274 add_timer +EXPORT_SYMBOL vmlinux 0xbe365f42 ll_rw_block +EXPORT_SYMBOL vmlinux 0xbe4ef469 xfrm_policy_insert +EXPORT_SYMBOL vmlinux 0xbe5477f7 phy_detach +EXPORT_SYMBOL vmlinux 0xbe6d4482 sock_diag_put_filterinfo +EXPORT_SYMBOL vmlinux 0xbe83e4ff kset_unregister +EXPORT_SYMBOL vmlinux 0xbe92edd8 agp_generic_type_to_mask_type +EXPORT_SYMBOL vmlinux 0xbeb095dc tcp_syn_flood_action +EXPORT_SYMBOL vmlinux 0xbeb59c94 prepare_creds +EXPORT_SYMBOL vmlinux 0xbec30d05 x86_match_cpu +EXPORT_SYMBOL vmlinux 0xbef43296 console_conditional_schedule +EXPORT_SYMBOL vmlinux 0xbf00e9c4 acpi_get_hp_hw_control_from_firmware +EXPORT_SYMBOL vmlinux 0xbf12cca6 dev_printk +EXPORT_SYMBOL vmlinux 0xbf18543b fput +EXPORT_SYMBOL vmlinux 0xbf19289c first_ec +EXPORT_SYMBOL vmlinux 0xbf249b56 pci_release_regions +EXPORT_SYMBOL vmlinux 0xbf25b958 nla_reserve +EXPORT_SYMBOL vmlinux 0xbf3ec0f3 ip_mc_leave_group +EXPORT_SYMBOL vmlinux 0xbf4591db vlan_vid_add +EXPORT_SYMBOL vmlinux 0xbf4d4bb9 acpi_bios_error +EXPORT_SYMBOL vmlinux 0xbf78232c mmc_erase_group_aligned +EXPORT_SYMBOL vmlinux 0xbf7fd2f5 schedule_timeout_killable +EXPORT_SYMBOL vmlinux 0xbf8299e7 jbd2_journal_abort +EXPORT_SYMBOL vmlinux 0xbf8ba54a vprintk +EXPORT_SYMBOL vmlinux 0xbf9bcc8d __cap_empty_set +EXPORT_SYMBOL vmlinux 0xbfb012dc pci_dev_put +EXPORT_SYMBOL vmlinux 0xbfc177bc iowrite32_rep +EXPORT_SYMBOL vmlinux 0xbfc407b4 param_ops_bint +EXPORT_SYMBOL vmlinux 0xbfe402d5 lookup_bdev +EXPORT_SYMBOL vmlinux 0xbfee3ad5 loop_unregister_transfer +EXPORT_SYMBOL vmlinux 0xc01cf848 _raw_read_lock +EXPORT_SYMBOL vmlinux 0xc02ce5d0 swiotlb_map_sg +EXPORT_SYMBOL vmlinux 0xc02cf69b clkdev_drop +EXPORT_SYMBOL vmlinux 0xc02e34a6 tcp_md5_hash_skb_data +EXPORT_SYMBOL vmlinux 0xc040d57e nla_put +EXPORT_SYMBOL vmlinux 0xc047c796 pcie_capability_write_word +EXPORT_SYMBOL vmlinux 0xc0763484 rfkill_blocked +EXPORT_SYMBOL vmlinux 0xc0935452 d_lookup +EXPORT_SYMBOL vmlinux 0xc0a3d105 find_next_bit +EXPORT_SYMBOL vmlinux 0xc0b4bb52 tcp_create_openreq_child +EXPORT_SYMBOL vmlinux 0xc0b4e989 tcf_hash_insert +EXPORT_SYMBOL vmlinux 0xc0ccfa09 shrink_dcache_parent +EXPORT_SYMBOL vmlinux 0xc0f7d66d inet_addr_type +EXPORT_SYMBOL vmlinux 0xc103347a get_task_io_context +EXPORT_SYMBOL vmlinux 0xc1156e3c scm_fp_dup +EXPORT_SYMBOL vmlinux 0xc16c6523 pcie_capability_read_word +EXPORT_SYMBOL vmlinux 0xc18842ad journal_invalidatepage +EXPORT_SYMBOL vmlinux 0xc19d006e kblockd_schedule_work +EXPORT_SYMBOL vmlinux 0xc19f781f key_instantiate_and_link +EXPORT_SYMBOL vmlinux 0xc1c2dd09 __hw_addr_flush +EXPORT_SYMBOL vmlinux 0xc1c4d3b3 pm860x_page_bulk_read +EXPORT_SYMBOL vmlinux 0xc20fff90 amd_iommu_flush_page +EXPORT_SYMBOL vmlinux 0xc21fcd94 scsi_is_target_device +EXPORT_SYMBOL vmlinux 0xc223a665 udp_disconnect +EXPORT_SYMBOL vmlinux 0xc22b50ad param_set_bint +EXPORT_SYMBOL vmlinux 0xc2424641 agp3_generic_cleanup +EXPORT_SYMBOL vmlinux 0xc252a8b0 bdi_register_dev +EXPORT_SYMBOL vmlinux 0xc256e762 __bitmap_equal +EXPORT_SYMBOL vmlinux 0xc26400ac sk_reset_txq +EXPORT_SYMBOL vmlinux 0xc26948ea vga_set_legacy_decoding +EXPORT_SYMBOL vmlinux 0xc26b00fd dev_get_by_name_rcu +EXPORT_SYMBOL vmlinux 0xc292db37 sock_no_mmap +EXPORT_SYMBOL vmlinux 0xc2935ca6 pci_map_rom +EXPORT_SYMBOL vmlinux 0xc29bf967 strspn +EXPORT_SYMBOL vmlinux 0xc2ac15f7 skb_copy_datagram_iovec +EXPORT_SYMBOL vmlinux 0xc2b27b50 bio_map_user +EXPORT_SYMBOL vmlinux 0xc2bfa359 replace_mount_options +EXPORT_SYMBOL vmlinux 0xc2c44acb cdrom_ioctl +EXPORT_SYMBOL vmlinux 0xc2d6afb6 names_cachep +EXPORT_SYMBOL vmlinux 0xc2e587d1 reset_devices +EXPORT_SYMBOL vmlinux 0xc2e65e41 inet6_add_offload +EXPORT_SYMBOL vmlinux 0xc2eaf668 tty_unthrottle +EXPORT_SYMBOL vmlinux 0xc2f0be1a __devcgroup_inode_permission +EXPORT_SYMBOL vmlinux 0xc2f5d61b dev_get_by_index +EXPORT_SYMBOL vmlinux 0xc2f9c045 timespec_to_jiffies +EXPORT_SYMBOL vmlinux 0xc310b981 strnstr +EXPORT_SYMBOL vmlinux 0xc3636c63 netdev_master_upper_dev_link +EXPORT_SYMBOL vmlinux 0xc3662090 bio_copy_data +EXPORT_SYMBOL vmlinux 0xc3a59bec dm_get_mapinfo +EXPORT_SYMBOL vmlinux 0xc3aaf0a9 __put_user_1 +EXPORT_SYMBOL vmlinux 0xc3b12c80 pci_assign_resource +EXPORT_SYMBOL vmlinux 0xc3b5a3e6 dentry_unhash +EXPORT_SYMBOL vmlinux 0xc3cbbaa6 mddev_congested +EXPORT_SYMBOL vmlinux 0xc412602d jbd2_journal_get_create_access +EXPORT_SYMBOL vmlinux 0xc42be284 twl6040_get_vibralr_status +EXPORT_SYMBOL vmlinux 0xc43cab30 pci_setup_cardbus +EXPORT_SYMBOL vmlinux 0xc48e6359 kmalloc_caches +EXPORT_SYMBOL vmlinux 0xc499ae1e kstrdup +EXPORT_SYMBOL vmlinux 0xc49f72cb unregister_md_personality +EXPORT_SYMBOL vmlinux 0xc4acdda9 pci_lost_interrupt +EXPORT_SYMBOL vmlinux 0xc4c1e22e pci_clear_master +EXPORT_SYMBOL vmlinux 0xc4f3a6bf read_cache_page +EXPORT_SYMBOL vmlinux 0xc4f60f44 journal_dirty_metadata +EXPORT_SYMBOL vmlinux 0xc4f7e53b __tcf_em_tree_match +EXPORT_SYMBOL vmlinux 0xc502b416 kmem_cache_alloc_trace +EXPORT_SYMBOL vmlinux 0xc50bab05 unregister_shrinker +EXPORT_SYMBOL vmlinux 0xc5409aa7 tty_unregister_device +EXPORT_SYMBOL vmlinux 0xc5534d64 ioread16 +EXPORT_SYMBOL vmlinux 0xc558530d profile_pc +EXPORT_SYMBOL vmlinux 0xc57e408a address_space_init_once +EXPORT_SYMBOL vmlinux 0xc5806bf5 x86_hyper +EXPORT_SYMBOL vmlinux 0xc58a6ec1 __sync_dirty_buffer +EXPORT_SYMBOL vmlinux 0xc593b162 pm860x_page_reg_write +EXPORT_SYMBOL vmlinux 0xc5943dca kmem_cache_alloc_node_trace +EXPORT_SYMBOL vmlinux 0xc5a65af4 ip_check_defrag +EXPORT_SYMBOL vmlinux 0xc5cd223e jbd2_journal_start +EXPORT_SYMBOL vmlinux 0xc5d9c46c agp_try_unsupported_boot +EXPORT_SYMBOL vmlinux 0xc5e02d03 files_lglock +EXPORT_SYMBOL vmlinux 0xc5fdef94 call_usermodehelper +EXPORT_SYMBOL vmlinux 0xc5fe849b iterate_mounts +EXPORT_SYMBOL vmlinux 0xc60eb986 led_blink_set_oneshot +EXPORT_SYMBOL vmlinux 0xc61d42a9 i2c_verify_client +EXPORT_SYMBOL vmlinux 0xc631580a console_unlock +EXPORT_SYMBOL vmlinux 0xc647dc17 tc_classify +EXPORT_SYMBOL vmlinux 0xc65abeb7 agp3_generic_sizes +EXPORT_SYMBOL vmlinux 0xc666a132 crc_t10dif +EXPORT_SYMBOL vmlinux 0xc68c9564 ndo_dflt_fdb_add +EXPORT_SYMBOL vmlinux 0xc6988b60 pci_try_set_mwi +EXPORT_SYMBOL vmlinux 0xc6a66180 rwsem_wake +EXPORT_SYMBOL vmlinux 0xc6a67170 deactivate_super +EXPORT_SYMBOL vmlinux 0xc6bf1734 d_obtain_alias +EXPORT_SYMBOL vmlinux 0xc6c1e89d journal_init_dev +EXPORT_SYMBOL vmlinux 0xc6cb465a __kfifo_max_r +EXPORT_SYMBOL vmlinux 0xc6cbbc89 capable +EXPORT_SYMBOL vmlinux 0xc6f3c8fe __inode_permission +EXPORT_SYMBOL vmlinux 0xc6f61808 generic_file_llseek_size +EXPORT_SYMBOL vmlinux 0xc6f914c0 __dst_destroy_metrics_generic +EXPORT_SYMBOL vmlinux 0xc702156b param_get_ushort +EXPORT_SYMBOL vmlinux 0xc715d9e0 boot_cpu_data +EXPORT_SYMBOL vmlinux 0xc7208c3a serial8250_resume_port +EXPORT_SYMBOL vmlinux 0xc7484703 scsi_remove_target +EXPORT_SYMBOL vmlinux 0xc7485080 pci_get_class +EXPORT_SYMBOL vmlinux 0xc770d15c idr_alloc_cyclic +EXPORT_SYMBOL vmlinux 0xc772fc66 block_invalidatepage +EXPORT_SYMBOL vmlinux 0xc781bd9f rfkill_resume_polling +EXPORT_SYMBOL vmlinux 0xc7856a3d inet6addr_notifier_call_chain +EXPORT_SYMBOL vmlinux 0xc79bcd36 dm_vcalloc +EXPORT_SYMBOL vmlinux 0xc7a4fbed rtnl_lock +EXPORT_SYMBOL vmlinux 0xc7c570f8 tcp_gro_complete +EXPORT_SYMBOL vmlinux 0xc7c80542 inode_claim_rsv_space +EXPORT_SYMBOL vmlinux 0xc7cbbe00 mark_page_accessed +EXPORT_SYMBOL vmlinux 0xc81ac68a submit_bh +EXPORT_SYMBOL vmlinux 0xc821c2e9 kernel_getsockopt +EXPORT_SYMBOL vmlinux 0xc84a0a7e seq_hlist_start_rcu +EXPORT_SYMBOL vmlinux 0xc84d11f9 skb_add_rx_frag +EXPORT_SYMBOL vmlinux 0xc8623c1d init_task +EXPORT_SYMBOL vmlinux 0xc862e559 find_vma +EXPORT_SYMBOL vmlinux 0xc88d3ee8 devm_gpio_request +EXPORT_SYMBOL vmlinux 0xc897c382 sg_init_table +EXPORT_SYMBOL vmlinux 0xc8ae1a13 __cleancache_get_page +EXPORT_SYMBOL vmlinux 0xc8aea1c5 i2c_put_adapter +EXPORT_SYMBOL vmlinux 0xc8b57c27 autoremove_wake_function +EXPORT_SYMBOL vmlinux 0xc8dde9a3 inode_permission +EXPORT_SYMBOL vmlinux 0xc905181d should_remove_suid +EXPORT_SYMBOL vmlinux 0xc927b95d blkdev_issue_discard +EXPORT_SYMBOL vmlinux 0xc938ea54 in_dev_finish_destroy +EXPORT_SYMBOL vmlinux 0xc9546e56 aio_put_req +EXPORT_SYMBOL vmlinux 0xc955cffc seq_bitmap_list +EXPORT_SYMBOL vmlinux 0xc9654eb6 grab_cache_page_write_begin +EXPORT_SYMBOL vmlinux 0xc978479a xz_dec_run +EXPORT_SYMBOL vmlinux 0xc996d097 del_timer +EXPORT_SYMBOL vmlinux 0xc99d14c8 poll_freewait +EXPORT_SYMBOL vmlinux 0xc9a7e3e7 blk_stack_limits +EXPORT_SYMBOL vmlinux 0xc9a955aa dev_deactivate +EXPORT_SYMBOL vmlinux 0xc9c9acc9 __dev_get_by_name +EXPORT_SYMBOL vmlinux 0xc9d4034a register_cdrom +EXPORT_SYMBOL vmlinux 0xc9ea72cf __break_lease +EXPORT_SYMBOL vmlinux 0xc9ee6cb5 setup_arg_pages +EXPORT_SYMBOL vmlinux 0xca138be1 user_revoke +EXPORT_SYMBOL vmlinux 0xca16be9d blk_queue_softirq_done +EXPORT_SYMBOL vmlinux 0xca1a5763 cont_write_begin +EXPORT_SYMBOL vmlinux 0xca1cbfe9 pci_prepare_to_sleep +EXPORT_SYMBOL vmlinux 0xca38fbfe pci_request_region_exclusive +EXPORT_SYMBOL vmlinux 0xca4ca404 gen_pool_create +EXPORT_SYMBOL vmlinux 0xca5b43fd sock_no_shutdown +EXPORT_SYMBOL vmlinux 0xca5dbc50 scsi_print_sense_hdr +EXPORT_SYMBOL vmlinux 0xca65f14c neigh_for_each +EXPORT_SYMBOL vmlinux 0xca6f33be nobh_write_end +EXPORT_SYMBOL vmlinux 0xca7ea347 dquot_get_dqblk +EXPORT_SYMBOL vmlinux 0xca8acc78 acpi_dbg_level +EXPORT_SYMBOL vmlinux 0xca8cc911 pci_scan_single_device +EXPORT_SYMBOL vmlinux 0xca9360b5 rb_next +EXPORT_SYMBOL vmlinux 0xcaab2916 sb_set_blocksize +EXPORT_SYMBOL vmlinux 0xcabe548f pci_unmap_rom +EXPORT_SYMBOL vmlinux 0xcae8d3cf load_nls_default +EXPORT_SYMBOL vmlinux 0xcaef1b77 idr_remove +EXPORT_SYMBOL vmlinux 0xcaf72c3c tcp_v4_syn_recv_sock +EXPORT_SYMBOL vmlinux 0xcb0288ea ledtrig_cpu +EXPORT_SYMBOL vmlinux 0xcb1170a6 scsi_host_put +EXPORT_SYMBOL vmlinux 0xcb1dfb06 request_key_async_with_auxdata +EXPORT_SYMBOL vmlinux 0xcb277c00 pci_get_subsys +EXPORT_SYMBOL vmlinux 0xcb45a99a pagevec_lookup_tag +EXPORT_SYMBOL vmlinux 0xcb554b5d cdev_add +EXPORT_SYMBOL vmlinux 0xcb561375 ether_setup +EXPORT_SYMBOL vmlinux 0xcb5860bf dcbnl_ieee_notify +EXPORT_SYMBOL vmlinux 0xcb63a442 i2c_verify_adapter +EXPORT_SYMBOL vmlinux 0xcb710124 mount_pseudo +EXPORT_SYMBOL vmlinux 0xcb733bf2 acpi_bus_set_power +EXPORT_SYMBOL vmlinux 0xcba14ce5 __idr_remove_all +EXPORT_SYMBOL vmlinux 0xcbae6c7a acpi_lid_notifier_unregister +EXPORT_SYMBOL vmlinux 0xcbbf0a6f audit_log_task_context +EXPORT_SYMBOL vmlinux 0xcbc9557f unregister_sysrq_key +EXPORT_SYMBOL vmlinux 0xcbdc0a41 km_report +EXPORT_SYMBOL vmlinux 0xcbf4990f fsnotify_add_mark +EXPORT_SYMBOL vmlinux 0xcbf7ef0e agp_generic_remove_memory +EXPORT_SYMBOL vmlinux 0xcc151d19 dma_supported +EXPORT_SYMBOL vmlinux 0xcc173cab acpi_walk_resource_buffer +EXPORT_SYMBOL vmlinux 0xcc18a0b5 __bio_clone +EXPORT_SYMBOL vmlinux 0xcc248d26 serial8250_suspend_port +EXPORT_SYMBOL vmlinux 0xcc37f55c blk_limits_io_opt +EXPORT_SYMBOL vmlinux 0xcc4ed092 sync_mapping_buffers +EXPORT_SYMBOL vmlinux 0xcc5005fe msleep_interruptible +EXPORT_SYMBOL vmlinux 0xcc52bbe6 rtmsg_ifinfo +EXPORT_SYMBOL vmlinux 0xcc7fa952 local_bh_enable_ip +EXPORT_SYMBOL vmlinux 0xcc93dfbf mount_single +EXPORT_SYMBOL vmlinux 0xccc21f5e input_get_new_minor +EXPORT_SYMBOL vmlinux 0xcccae869 elv_rb_latter_request +EXPORT_SYMBOL vmlinux 0xcd20667a kstrtou16_from_user +EXPORT_SYMBOL vmlinux 0xcd261685 journal_start +EXPORT_SYMBOL vmlinux 0xcd279169 nla_find +EXPORT_SYMBOL vmlinux 0xcd285902 tty_name +EXPORT_SYMBOL vmlinux 0xcd3bc598 __wait_on_bit +EXPORT_SYMBOL vmlinux 0xcd42eff5 compat_ipv6_getsockopt +EXPORT_SYMBOL vmlinux 0xcd44205e register_md_personality +EXPORT_SYMBOL vmlinux 0xcd5a665b ww_mutex_unlock +EXPORT_SYMBOL vmlinux 0xcd6d1542 tty_port_carrier_raised +EXPORT_SYMBOL vmlinux 0xcd7c6b13 __task_pid_nr_ns +EXPORT_SYMBOL vmlinux 0xcdc2c429 tcf_exts_change +EXPORT_SYMBOL vmlinux 0xcdc39c9e security_ismaclabel +EXPORT_SYMBOL vmlinux 0xcdcec343 mdiobus_register +EXPORT_SYMBOL vmlinux 0xcddfa9b1 xfrm_policy_bysel_ctx +EXPORT_SYMBOL vmlinux 0xcde172ac radix_tree_gang_lookup_tag_slot +EXPORT_SYMBOL vmlinux 0xcde2a13d __dquot_alloc_space +EXPORT_SYMBOL vmlinux 0xcdf446b7 iw_handler_set_spy +EXPORT_SYMBOL vmlinux 0xcdf7e34c pm8606_osc_disable +EXPORT_SYMBOL vmlinux 0xce00e4ec inet_proto_csum_replace16 +EXPORT_SYMBOL vmlinux 0xce08e4b0 mmc_power_save_host +EXPORT_SYMBOL vmlinux 0xce12e7bf dev_remove_pack +EXPORT_SYMBOL vmlinux 0xce206046 skb_copy +EXPORT_SYMBOL vmlinux 0xce2840e7 irq_set_irq_wake +EXPORT_SYMBOL vmlinux 0xce36d7af serial8250_do_set_termios +EXPORT_SYMBOL vmlinux 0xce4904a4 acpi_leave_sleep_state +EXPORT_SYMBOL vmlinux 0xce4e47b6 __kfifo_skip_r +EXPORT_SYMBOL vmlinux 0xce5ac24f zlib_inflate_workspacesize +EXPORT_SYMBOL vmlinux 0xce5c6939 __frontswap_store +EXPORT_SYMBOL vmlinux 0xce669e54 __getblk +EXPORT_SYMBOL vmlinux 0xceb30ea5 nf_register_hooks +EXPORT_SYMBOL vmlinux 0xcef51982 kstrtou16 +EXPORT_SYMBOL vmlinux 0xcefcd99a serial8250_unregister_port +EXPORT_SYMBOL vmlinux 0xceffda13 input_unregister_handler +EXPORT_SYMBOL vmlinux 0xcf1d28ab acpi_error +EXPORT_SYMBOL vmlinux 0xcf21d241 __wake_up +EXPORT_SYMBOL vmlinux 0xcf2b6317 iov_iter_copy_from_user +EXPORT_SYMBOL vmlinux 0xcf324371 gnet_stats_copy_rate_est +EXPORT_SYMBOL vmlinux 0xcf4e7194 i2c_register_driver +EXPORT_SYMBOL vmlinux 0xcf527295 sock_recvmsg +EXPORT_SYMBOL vmlinux 0xcf60fb5a tty_unlock +EXPORT_SYMBOL vmlinux 0xcf679d8a ata_ap_acpi_handle +EXPORT_SYMBOL vmlinux 0xcf6cfe1f msrs_free +EXPORT_SYMBOL vmlinux 0xcf81a93e vlan_vids_del_by_dev +EXPORT_SYMBOL vmlinux 0xcf9f3f11 xfrm_dst_ifdown +EXPORT_SYMBOL vmlinux 0xcfb67214 spi_release_transport +EXPORT_SYMBOL vmlinux 0xcfc3ee1f remap_pfn_range +EXPORT_SYMBOL vmlinux 0xcfcaf1f7 scsi_device_put +EXPORT_SYMBOL vmlinux 0xcff353bb sk_dst_check +EXPORT_SYMBOL vmlinux 0xd005d85b clear_page_dirty_for_io +EXPORT_SYMBOL vmlinux 0xd00630ea seq_puts +EXPORT_SYMBOL vmlinux 0xd0181f4f __bitmap_xor +EXPORT_SYMBOL vmlinux 0xd01c5064 phy_register_fixup +EXPORT_SYMBOL vmlinux 0xd022352e ipv6_chk_custom_prefix +EXPORT_SYMBOL vmlinux 0xd025ea81 d_alloc_name +EXPORT_SYMBOL vmlinux 0xd0298b8b proc_dointvec_minmax +EXPORT_SYMBOL vmlinux 0xd0315710 alloc_buffer_head +EXPORT_SYMBOL vmlinux 0xd03adf71 blk_rq_map_kern +EXPORT_SYMBOL vmlinux 0xd067fc5c proc_dointvec +EXPORT_SYMBOL vmlinux 0xd06d98c1 keyring_alloc +EXPORT_SYMBOL vmlinux 0xd0720a17 on_each_cpu_cond +EXPORT_SYMBOL vmlinux 0xd08197fa acpi_load_tables +EXPORT_SYMBOL vmlinux 0xd0a91bab skip_spaces +EXPORT_SYMBOL vmlinux 0xd0cf7d4c set_pages_array_wb +EXPORT_SYMBOL vmlinux 0xd0d0aa72 acpi_processor_preregister_performance +EXPORT_SYMBOL vmlinux 0xd0d42c42 mod_timer_pending +EXPORT_SYMBOL vmlinux 0xd0dbb7e0 nobh_writepage +EXPORT_SYMBOL vmlinux 0xd0ee38b8 schedule_timeout_uninterruptible +EXPORT_SYMBOL vmlinux 0xd0f06840 jbd2_journal_file_inode +EXPORT_SYMBOL vmlinux 0xd0f36f0d audit_log_format +EXPORT_SYMBOL vmlinux 0xd0fb7cd4 __tasklet_hi_schedule_first +EXPORT_SYMBOL vmlinux 0xd0fef3b2 agp_free_key +EXPORT_SYMBOL vmlinux 0xd10f0885 ip_setsockopt +EXPORT_SYMBOL vmlinux 0xd11c0dc1 __kernel_param_unlock +EXPORT_SYMBOL vmlinux 0xd12df82c cdrom_release +EXPORT_SYMBOL vmlinux 0xd1816f32 frontswap_writethrough +EXPORT_SYMBOL vmlinux 0xd18b6eb2 acpi_unmap_lsapic +EXPORT_SYMBOL vmlinux 0xd1a65cb7 udp_lib_get_port +EXPORT_SYMBOL vmlinux 0xd1c9e55b uart_suspend_port +EXPORT_SYMBOL vmlinux 0xd1d5158b mmc_detect_change +EXPORT_SYMBOL vmlinux 0xd1db85ff max8998_bulk_read +EXPORT_SYMBOL vmlinux 0xd1e61405 clear_nlink +EXPORT_SYMBOL vmlinux 0xd1f442b3 sk_stream_error +EXPORT_SYMBOL vmlinux 0xd1f6c5f3 smp_num_siblings +EXPORT_SYMBOL vmlinux 0xd220cf8a jiffies_to_timespec +EXPORT_SYMBOL vmlinux 0xd227892e sleep_on +EXPORT_SYMBOL vmlinux 0xd2314033 follow_pfn +EXPORT_SYMBOL vmlinux 0xd23aaa3e devm_ioport_unmap +EXPORT_SYMBOL vmlinux 0xd24104c5 cdrom_mode_select +EXPORT_SYMBOL vmlinux 0xd2426c97 inet_proto_csum_replace4 +EXPORT_SYMBOL vmlinux 0xd24bee5f bdi_setup_and_register +EXPORT_SYMBOL vmlinux 0xd251d7b0 security_socket_getpeersec_dgram +EXPORT_SYMBOL vmlinux 0xd2555f19 jiffies_64_to_clock_t +EXPORT_SYMBOL vmlinux 0xd25d4f74 console_blank_hook +EXPORT_SYMBOL vmlinux 0xd27aeb43 tcp_proc_unregister +EXPORT_SYMBOL vmlinux 0xd27b25dd blk_check_plugged +EXPORT_SYMBOL vmlinux 0xd27c6925 sg_miter_stop +EXPORT_SYMBOL vmlinux 0xd2865aaf twl6040_set_bits +EXPORT_SYMBOL vmlinux 0xd2add1f1 inode_sub_bytes +EXPORT_SYMBOL vmlinux 0xd2b09ce5 __kmalloc +EXPORT_SYMBOL vmlinux 0xd2bfb166 tty_port_put +EXPORT_SYMBOL vmlinux 0xd2da1048 register_netdevice_notifier +EXPORT_SYMBOL vmlinux 0xd2e25dd2 request_firmware +EXPORT_SYMBOL vmlinux 0xd2f000b3 serio_unregister_child_port +EXPORT_SYMBOL vmlinux 0xd2f1b260 interruptible_sleep_on +EXPORT_SYMBOL vmlinux 0xd2f79f52 tcp_v4_connect +EXPORT_SYMBOL vmlinux 0xd30299f5 bio_copy_user +EXPORT_SYMBOL vmlinux 0xd305e202 vfs_read +EXPORT_SYMBOL vmlinux 0xd32d3c26 inet_frag_evictor +EXPORT_SYMBOL vmlinux 0xd337eb3d inet_ioctl +EXPORT_SYMBOL vmlinux 0xd33a8a1f nla_append +EXPORT_SYMBOL vmlinux 0xd35e249a _raw_read_lock_irq +EXPORT_SYMBOL vmlinux 0xd36257ba memcpy_toiovecend +EXPORT_SYMBOL vmlinux 0xd38d24af fixed_size_llseek +EXPORT_SYMBOL vmlinux 0xd397be5d mmc_gpio_request_ro +EXPORT_SYMBOL vmlinux 0xd3a27043 dma_async_memcpy_pg_to_pg +EXPORT_SYMBOL vmlinux 0xd3b1e206 vfs_setpos +EXPORT_SYMBOL vmlinux 0xd3bdb26e seq_open_private +EXPORT_SYMBOL vmlinux 0xd3c3a0b0 neigh_resolve_output +EXPORT_SYMBOL vmlinux 0xd3d3a477 posix_acl_init +EXPORT_SYMBOL vmlinux 0xd3dcab0b flex_array_alloc +EXPORT_SYMBOL vmlinux 0xd3ddd0ca tcf_hash_new_index +EXPORT_SYMBOL vmlinux 0xd3e64ddc devfreq_add_governor +EXPORT_SYMBOL vmlinux 0xd3e6cf3e __dev_get_by_index +EXPORT_SYMBOL vmlinux 0xd4373768 default_file_splice_read +EXPORT_SYMBOL vmlinux 0xd44c82c3 mmc_resume_host +EXPORT_SYMBOL vmlinux 0xd4835ef8 dmi_check_system +EXPORT_SYMBOL vmlinux 0xd48e7188 __module_get +EXPORT_SYMBOL vmlinux 0xd497b6d9 vc_cons +EXPORT_SYMBOL vmlinux 0xd4a21fc9 x86_hyper_vmware +EXPORT_SYMBOL vmlinux 0xd4aeea45 phy_drivers_unregister +EXPORT_SYMBOL vmlinux 0xd4b08e54 wait_for_completion_io +EXPORT_SYMBOL vmlinux 0xd4dfb2d2 sock_no_poll +EXPORT_SYMBOL vmlinux 0xd4ea03d7 block_commit_write +EXPORT_SYMBOL vmlinux 0xd4edeb04 cpu_core_map +EXPORT_SYMBOL vmlinux 0xd4f0d2f0 migrate_page +EXPORT_SYMBOL vmlinux 0xd4ffa484 acpi_initialize_subsystem +EXPORT_SYMBOL vmlinux 0xd50fef48 acpi_detach_data +EXPORT_SYMBOL vmlinux 0xd52bf1ce _raw_spin_lock +EXPORT_SYMBOL vmlinux 0xd5450184 ndo_dflt_bridge_getlink +EXPORT_SYMBOL vmlinux 0xd54a70a2 from_kqid_munged +EXPORT_SYMBOL vmlinux 0xd54f66bc dev_set_mtu +EXPORT_SYMBOL vmlinux 0xd56c7d5f dst_alloc +EXPORT_SYMBOL vmlinux 0xd572b0c7 ps2_drain +EXPORT_SYMBOL vmlinux 0xd59007da skb_recv_datagram +EXPORT_SYMBOL vmlinux 0xd5bb68fc lro_flush_all +EXPORT_SYMBOL vmlinux 0xd5dad320 generic_write_end +EXPORT_SYMBOL vmlinux 0xd5ef1c61 __brelse +EXPORT_SYMBOL vmlinux 0xd5f2172f del_timer_sync +EXPORT_SYMBOL vmlinux 0xd607af85 backlight_device_unregister +EXPORT_SYMBOL vmlinux 0xd611bca3 completion_done +EXPORT_SYMBOL vmlinux 0xd616683a ecryptfs_fill_auth_tok +EXPORT_SYMBOL vmlinux 0xd6261222 pci_bus_assign_resources +EXPORT_SYMBOL vmlinux 0xd62c833f schedule_timeout +EXPORT_SYMBOL vmlinux 0xd648e564 fb_match_mode +EXPORT_SYMBOL vmlinux 0xd65aba99 ppp_input_error +EXPORT_SYMBOL vmlinux 0xd660145c pci_enable_msi_block +EXPORT_SYMBOL vmlinux 0xd665262e arp_tbl +EXPORT_SYMBOL vmlinux 0xd667d519 scsi_remove_device +EXPORT_SYMBOL vmlinux 0xd6725a98 phy_init_eee +EXPORT_SYMBOL vmlinux 0xd688716b dm_kcopyd_client_create +EXPORT_SYMBOL vmlinux 0xd694ba53 tcp_hashinfo +EXPORT_SYMBOL vmlinux 0xd6b33026 cpu_khz +EXPORT_SYMBOL vmlinux 0xd6bf3208 truncate_setsize +EXPORT_SYMBOL vmlinux 0xd6c30723 xfrm_state_register_afinfo +EXPORT_SYMBOL vmlinux 0xd6dbc0c4 mb_cache_entry_find_next +EXPORT_SYMBOL vmlinux 0xd6dc5ef1 phy_connect_direct +EXPORT_SYMBOL vmlinux 0xd6e45e39 tty_write_room +EXPORT_SYMBOL vmlinux 0xd6ee688f vmalloc +EXPORT_SYMBOL vmlinux 0xd6f1d011 phy_ethtool_get_eee +EXPORT_SYMBOL vmlinux 0xd702cfa4 netlink_kernel_release +EXPORT_SYMBOL vmlinux 0xd72e7c55 input_flush_device +EXPORT_SYMBOL vmlinux 0xd7301202 sk_stream_wait_memory +EXPORT_SYMBOL vmlinux 0xd7445f66 d_validate +EXPORT_SYMBOL vmlinux 0xd75c79df smp_call_function +EXPORT_SYMBOL vmlinux 0xd77a5aa5 __bitmap_and +EXPORT_SYMBOL vmlinux 0xd7853d13 pcie_port_service_unregister +EXPORT_SYMBOL vmlinux 0xd79b5a02 allow_signal +EXPORT_SYMBOL vmlinux 0xd7a769cb pci_select_bars +EXPORT_SYMBOL vmlinux 0xd7b59453 commit_creds +EXPORT_SYMBOL vmlinux 0xd7cbddda memcpy_toiovec +EXPORT_SYMBOL vmlinux 0xd7dd777b reserve_perfctr_nmi +EXPORT_SYMBOL vmlinux 0xd7e56a4e simple_strtoll +EXPORT_SYMBOL vmlinux 0xd7ea7094 nf_unregister_queue_handler +EXPORT_SYMBOL vmlinux 0xd7eecfae blk_init_allocated_queue +EXPORT_SYMBOL vmlinux 0xd803c12d dquot_get_dqinfo +EXPORT_SYMBOL vmlinux 0xd80fd7ee ppp_unregister_channel +EXPORT_SYMBOL vmlinux 0xd823901a dquot_enable +EXPORT_SYMBOL vmlinux 0xd826965b tty_check_change +EXPORT_SYMBOL vmlinux 0xd83eb668 padata_free +EXPORT_SYMBOL vmlinux 0xd845706f devm_request_and_ioremap +EXPORT_SYMBOL vmlinux 0xd851c96d blk_end_request +EXPORT_SYMBOL vmlinux 0xd855184c touch_buffer +EXPORT_SYMBOL vmlinux 0xd862bb69 blk_pm_runtime_init +EXPORT_SYMBOL vmlinux 0xd8696370 rtnetlink_put_metrics +EXPORT_SYMBOL vmlinux 0xd87e181a mdiobus_read +EXPORT_SYMBOL vmlinux 0xd88de31e dst_discard +EXPORT_SYMBOL vmlinux 0xd89da37f movable_zone +EXPORT_SYMBOL vmlinux 0xd8a939cd scsi_report_bus_reset +EXPORT_SYMBOL vmlinux 0xd8c49a2a xfrm_input +EXPORT_SYMBOL vmlinux 0xd8c53ece generic_file_fsync +EXPORT_SYMBOL vmlinux 0xd8d03779 netdev_alert +EXPORT_SYMBOL vmlinux 0xd8d24c66 __get_page_tail +EXPORT_SYMBOL vmlinux 0xd8e484f0 register_chrdev_region +EXPORT_SYMBOL vmlinux 0xd9091363 acpi_install_notify_handler +EXPORT_SYMBOL vmlinux 0xd90ff087 skb_tx_error +EXPORT_SYMBOL vmlinux 0xd92afabe bitmap_clear +EXPORT_SYMBOL vmlinux 0xd92e16ba csum_partial_copy_fromiovecend +EXPORT_SYMBOL vmlinux 0xd932ef06 pci_enable_device_mem +EXPORT_SYMBOL vmlinux 0xd94322e7 acpi_evaluate_reference +EXPORT_SYMBOL vmlinux 0xd94627ee tty_set_operations +EXPORT_SYMBOL vmlinux 0xd94cf746 skb_queue_head +EXPORT_SYMBOL vmlinux 0xd94f8076 inet_twsk_deschedule +EXPORT_SYMBOL vmlinux 0xd9626e8f pagecache_write_end +EXPORT_SYMBOL vmlinux 0xd9692715 tty_port_lower_dtr_rts +EXPORT_SYMBOL vmlinux 0xd969b2c7 amd_e400_c1e_detected +EXPORT_SYMBOL vmlinux 0xd985dc99 mempool_free_pages +EXPORT_SYMBOL vmlinux 0xd99c8b27 tcp_sync_mss +EXPORT_SYMBOL vmlinux 0xd99e22bd jbd2_journal_flush +EXPORT_SYMBOL vmlinux 0xd9a9bb30 getname +EXPORT_SYMBOL vmlinux 0xd9b55547 blk_queue_init_tags +EXPORT_SYMBOL vmlinux 0xd9c08732 sock_sendmsg +EXPORT_SYMBOL vmlinux 0xd9c93025 __scsi_add_device +EXPORT_SYMBOL vmlinux 0xd9e61fcb qid_valid +EXPORT_SYMBOL vmlinux 0xd9f7d655 ata_port_printk +EXPORT_SYMBOL vmlinux 0xda0a6b0e acpi_map_lsapic +EXPORT_SYMBOL vmlinux 0xda3d10a8 security_tun_dev_open +EXPORT_SYMBOL vmlinux 0xda520307 max8998_read_reg +EXPORT_SYMBOL vmlinux 0xda5c1daf journal_ack_err +EXPORT_SYMBOL vmlinux 0xda62b525 ilookup5 +EXPORT_SYMBOL vmlinux 0xda678538 dev_kfree_skb_irq +EXPORT_SYMBOL vmlinux 0xda720d86 jbd2_journal_destroy +EXPORT_SYMBOL vmlinux 0xda7ca6cb fb_mode_is_equal +EXPORT_SYMBOL vmlinux 0xda8af7ad fb_find_nearest_mode +EXPORT_SYMBOL vmlinux 0xdadba9a4 input_mt_sync_frame +EXPORT_SYMBOL vmlinux 0xdaea6e0d mfd_clone_cell +EXPORT_SYMBOL vmlinux 0xdaf33ba7 arp_find +EXPORT_SYMBOL vmlinux 0xdaf9f356 dma_async_device_unregister +EXPORT_SYMBOL vmlinux 0xdb279db6 inode_needs_sync +EXPORT_SYMBOL vmlinux 0xdb289408 dev_mc_sync_multiple +EXPORT_SYMBOL vmlinux 0xdb68bbad rfkill_destroy +EXPORT_SYMBOL vmlinux 0xdb760f52 __kfifo_free +EXPORT_SYMBOL vmlinux 0xdb7cb7ee seq_open +EXPORT_SYMBOL vmlinux 0xdb816d9f dma_pool_create +EXPORT_SYMBOL vmlinux 0xdb869ca0 pm_vt_switch_unregister +EXPORT_SYMBOL vmlinux 0xdb98d5ab input_set_abs_params +EXPORT_SYMBOL vmlinux 0xdbcd416e sysctl_ip_nonlocal_bind +EXPORT_SYMBOL vmlinux 0xdbcf4408 inc_nlink +EXPORT_SYMBOL vmlinux 0xdbdce3f7 nf_log_unset +EXPORT_SYMBOL vmlinux 0xdbf18ab6 scsi_set_medium_removal +EXPORT_SYMBOL vmlinux 0xdc047fc4 scsi_dev_info_list_add_keyed +EXPORT_SYMBOL vmlinux 0xdc09d31b search_binary_handler +EXPORT_SYMBOL vmlinux 0xdc14eda7 pci_pci_problems +EXPORT_SYMBOL vmlinux 0xdc3fcbc9 __sw_hweight8 +EXPORT_SYMBOL vmlinux 0xdc57f532 acpi_install_gpe_handler +EXPORT_SYMBOL vmlinux 0xdc6d41cf vfs_fstatat +EXPORT_SYMBOL vmlinux 0xdc73588d sock_tx_timestamp +EXPORT_SYMBOL vmlinux 0xdc8d1dde _raw_spin_trylock_bh +EXPORT_SYMBOL vmlinux 0xdc8ffb18 abx500_startup_irq_enabled +EXPORT_SYMBOL vmlinux 0xdc90ae15 unregister_quota_format +EXPORT_SYMBOL vmlinux 0xdc945f4d skb_prepare_seq_read +EXPORT_SYMBOL vmlinux 0xdcb0349b sys_close +EXPORT_SYMBOL vmlinux 0xdcbbdd53 scsi_register_driver +EXPORT_SYMBOL vmlinux 0xdcc643fa blk_end_request_all +EXPORT_SYMBOL vmlinux 0xdcc87f29 filemap_fdatawait +EXPORT_SYMBOL vmlinux 0xdcd20846 inet_frag_kill +EXPORT_SYMBOL vmlinux 0xdcf4bcd7 sock_no_getname +EXPORT_SYMBOL vmlinux 0xdd1f28c8 __kfree_skb +EXPORT_SYMBOL vmlinux 0xdd44897b inet_frags_init +EXPORT_SYMBOL vmlinux 0xdd44c86a blkdev_put +EXPORT_SYMBOL vmlinux 0xdd4a5569 param_get_byte +EXPORT_SYMBOL vmlinux 0xdd653f17 ipv4_specific +EXPORT_SYMBOL vmlinux 0xdd8b8bd1 blk_queue_dma_alignment +EXPORT_SYMBOL vmlinux 0xdd9681da tcp_release_cb +EXPORT_SYMBOL vmlinux 0xdda1b2e2 dquot_operations +EXPORT_SYMBOL vmlinux 0xdda39a80 inet_frag_maybe_warn_overflow +EXPORT_SYMBOL vmlinux 0xdda86bd9 xfrm_state_add +EXPORT_SYMBOL vmlinux 0xddded655 mdiobus_scan +EXPORT_SYMBOL vmlinux 0xdde63576 security_inode_getsecctx +EXPORT_SYMBOL vmlinux 0xdde83545 intel_gtt_get +EXPORT_SYMBOL vmlinux 0xde16dc16 tboot +EXPORT_SYMBOL vmlinux 0xde18afd7 skb_push +EXPORT_SYMBOL vmlinux 0xde4504e7 __nlmsg_put +EXPORT_SYMBOL vmlinux 0xde6151db tcp_memory_allocated +EXPORT_SYMBOL vmlinux 0xde8bf14b xfrm4_rcv_encap +EXPORT_SYMBOL vmlinux 0xde9360ba totalram_pages +EXPORT_SYMBOL vmlinux 0xde9b17ed agp3_generic_fetch_size +EXPORT_SYMBOL vmlinux 0xdea3b887 poll_initwait +EXPORT_SYMBOL vmlinux 0xded0f601 dcbnl_cee_notify +EXPORT_SYMBOL vmlinux 0xded90f54 poll_schedule_timeout +EXPORT_SYMBOL vmlinux 0xdef74761 devm_clk_put +EXPORT_SYMBOL vmlinux 0xdf0af04c sk_wait_data +EXPORT_SYMBOL vmlinux 0xdf0da3cc acpi_get_devices +EXPORT_SYMBOL vmlinux 0xdf2aeb1a pipe_to_file +EXPORT_SYMBOL vmlinux 0xdf2c2742 rb_last +EXPORT_SYMBOL vmlinux 0xdf48a0eb flex_array_put +EXPORT_SYMBOL vmlinux 0xdf54a8f7 netlink_unregister_notifier +EXPORT_SYMBOL vmlinux 0xdf5bf2ef pci_fixup_cardbus +EXPORT_SYMBOL vmlinux 0xdf60cc27 __print_symbol +EXPORT_SYMBOL vmlinux 0xdf7179d0 key_alloc +EXPORT_SYMBOL vmlinux 0xdf75be8f journal_revoke +EXPORT_SYMBOL vmlinux 0xdf8c695a __ndelay +EXPORT_SYMBOL vmlinux 0xdf929370 fs_overflowgid +EXPORT_SYMBOL vmlinux 0xdfb352d7 napi_gro_frags +EXPORT_SYMBOL vmlinux 0xdfc5169b slhc_init +EXPORT_SYMBOL vmlinux 0xdfea62a4 blkdev_issue_flush +EXPORT_SYMBOL vmlinux 0xdff18dec scsi_cmd_blk_ioctl +EXPORT_SYMBOL vmlinux 0xe012969d scsi_mode_sense +EXPORT_SYMBOL vmlinux 0xe0162157 nf_getsockopt +EXPORT_SYMBOL vmlinux 0xe029f55f iw_handler_get_thrspy +EXPORT_SYMBOL vmlinux 0xe04f7caa dm_read_arg_group +EXPORT_SYMBOL vmlinux 0xe05197b0 pci_remove_bus +EXPORT_SYMBOL vmlinux 0xe0537b45 dump_trace +EXPORT_SYMBOL vmlinux 0xe0568881 mb_cache_entry_free +EXPORT_SYMBOL vmlinux 0xe06141e9 security_sk_clone +EXPORT_SYMBOL vmlinux 0xe06e4199 cpu_all_bits +EXPORT_SYMBOL vmlinux 0xe073bf71 pm860x_reg_read +EXPORT_SYMBOL vmlinux 0xe075d6eb iter_div_u64_rem +EXPORT_SYMBOL vmlinux 0xe08d5492 inode_init_once +EXPORT_SYMBOL vmlinux 0xe0ac8bd2 acpi_bus_generate_netlink_event +EXPORT_SYMBOL vmlinux 0xe0b13336 argv_free +EXPORT_SYMBOL vmlinux 0xe0dee835 inet_put_port +EXPORT_SYMBOL vmlinux 0xe0f0d3d0 ihold +EXPORT_SYMBOL vmlinux 0xe113bbbc csum_partial +EXPORT_SYMBOL vmlinux 0xe13172f3 tcp_seq_open +EXPORT_SYMBOL vmlinux 0xe13cd8a7 dmi_name_in_vendors +EXPORT_SYMBOL vmlinux 0xe15f42bb _raw_spin_trylock +EXPORT_SYMBOL vmlinux 0xe16fbb43 user_path_at +EXPORT_SYMBOL vmlinux 0xe1761617 security_inet_conn_request +EXPORT_SYMBOL vmlinux 0xe17ccfae pnp_activate_dev +EXPORT_SYMBOL vmlinux 0xe1842781 vlan_vids_add_by_dev +EXPORT_SYMBOL vmlinux 0xe18ad749 scsi_dma_map +EXPORT_SYMBOL vmlinux 0xe1e4ab8d dm_kcopyd_zero +EXPORT_SYMBOL vmlinux 0xe1ec9a7a fb_get_mode +EXPORT_SYMBOL vmlinux 0xe1f2e505 ipv6_select_ident +EXPORT_SYMBOL vmlinux 0xe200d2d5 param_get_uint +EXPORT_SYMBOL vmlinux 0xe200f872 secure_dccpv6_sequence_number +EXPORT_SYMBOL vmlinux 0xe202b571 end_buffer_read_sync +EXPORT_SYMBOL vmlinux 0xe2236ff1 vfs_mknod +EXPORT_SYMBOL vmlinux 0xe23aa919 pci_bus_read_config_word +EXPORT_SYMBOL vmlinux 0xe23ae481 blk_iopoll_complete +EXPORT_SYMBOL vmlinux 0xe24a3ce4 mapping_tagged +EXPORT_SYMBOL vmlinux 0xe24d3a97 jiffies_64 +EXPORT_SYMBOL vmlinux 0xe2724632 sockfd_lookup +EXPORT_SYMBOL vmlinux 0xe276deaf phy_stop_interrupts +EXPORT_SYMBOL vmlinux 0xe2833992 eth_header_cache +EXPORT_SYMBOL vmlinux 0xe29b04e9 acpi_set_firmware_waking_vector64 +EXPORT_SYMBOL vmlinux 0xe29e1d0e out_of_line_wait_on_atomic_t +EXPORT_SYMBOL vmlinux 0xe29ea9fb __sb_end_write +EXPORT_SYMBOL vmlinux 0xe2a7ba67 skb_copy_datagram_from_iovec +EXPORT_SYMBOL vmlinux 0xe2b8f7ca __skb_recv_datagram +EXPORT_SYMBOL vmlinux 0xe2bcbd80 jbd2_inode_cache +EXPORT_SYMBOL vmlinux 0xe2c1012c input_mt_report_pointer_emulation +EXPORT_SYMBOL vmlinux 0xe2cfb038 __cond_resched_lock +EXPORT_SYMBOL vmlinux 0xe2d5255a strcmp +EXPORT_SYMBOL vmlinux 0xe2dbd905 skb_store_bits +EXPORT_SYMBOL vmlinux 0xe2e71e97 neigh_update +EXPORT_SYMBOL vmlinux 0xe319eb24 acpi_pci_osc_control_set +EXPORT_SYMBOL vmlinux 0xe3449a97 blkdev_issue_zeroout +EXPORT_SYMBOL vmlinux 0xe36528c4 xfrm_state_alloc +EXPORT_SYMBOL vmlinux 0xe36747e1 mmc_request_done +EXPORT_SYMBOL vmlinux 0xe3a53f4c sort +EXPORT_SYMBOL vmlinux 0xe3c407f8 ps2_cmd_aborted +EXPORT_SYMBOL vmlinux 0xe3d5c13d blkdev_get_by_path +EXPORT_SYMBOL vmlinux 0xe3d6f284 fb_find_mode_cvt +EXPORT_SYMBOL vmlinux 0xe3e12008 __first_cpu +EXPORT_SYMBOL vmlinux 0xe3f24ede submit_bio_wait +EXPORT_SYMBOL vmlinux 0xe3f42ad8 mb_cache_entry_alloc +EXPORT_SYMBOL vmlinux 0xe3fd8414 dev_mc_del_global +EXPORT_SYMBOL vmlinux 0xe4481557 pv_cpu_ops +EXPORT_SYMBOL vmlinux 0xe4675aac simple_rmdir +EXPORT_SYMBOL vmlinux 0xe484e35f ioread32 +EXPORT_SYMBOL vmlinux 0xe4a9769f vm_insert_mixed +EXPORT_SYMBOL vmlinux 0xe4b458f9 tty_port_block_til_ready +EXPORT_SYMBOL vmlinux 0xe4b74ceb skb_copy_expand +EXPORT_SYMBOL vmlinux 0xe4c26ad9 scsi_cmd_get_serial +EXPORT_SYMBOL vmlinux 0xe4cca18d sock_alloc_send_pskb +EXPORT_SYMBOL vmlinux 0xe50729c1 unregister_tcf_proto_ops +EXPORT_SYMBOL vmlinux 0xe51003ef kernel_listen +EXPORT_SYMBOL vmlinux 0xe5122890 flow_cache_genid +EXPORT_SYMBOL vmlinux 0xe518fb29 sock_setsockopt +EXPORT_SYMBOL vmlinux 0xe5208918 acpi_gbl_FADT +EXPORT_SYMBOL vmlinux 0xe523ad75 synchronize_irq +EXPORT_SYMBOL vmlinux 0xe530d757 acpi_clear_gpe +EXPORT_SYMBOL vmlinux 0xe570c2b5 pm860x_reg_write +EXPORT_SYMBOL vmlinux 0xe5718fb5 rawv6_mh_filter_register +EXPORT_SYMBOL vmlinux 0xe57878a1 in6_pton +EXPORT_SYMBOL vmlinux 0xe5867808 dlci_ioctl_set +EXPORT_SYMBOL vmlinux 0xe597653f skb_pad +EXPORT_SYMBOL vmlinux 0xe5bec95c i8253_lock +EXPORT_SYMBOL vmlinux 0xe5c78a99 do_blank_screen +EXPORT_SYMBOL vmlinux 0xe5ce9fec kernel_read +EXPORT_SYMBOL vmlinux 0xe5d95985 param_ops_ulong +EXPORT_SYMBOL vmlinux 0xe5ed5467 xfrm_policy_walk_init +EXPORT_SYMBOL vmlinux 0xe60a82d9 bio_integrity_enabled +EXPORT_SYMBOL vmlinux 0xe60af3ad mmc_stop_bkops +EXPORT_SYMBOL vmlinux 0xe624301b pci_set_dma_max_seg_size +EXPORT_SYMBOL vmlinux 0xe64d98fe rdmsr_safe_regs +EXPORT_SYMBOL vmlinux 0xe66244cc put_io_context +EXPORT_SYMBOL vmlinux 0xe66c7d1b iunique +EXPORT_SYMBOL vmlinux 0xe68e9286 swiotlb_free_coherent +EXPORT_SYMBOL vmlinux 0xe697d108 __blk_iopoll_complete +EXPORT_SYMBOL vmlinux 0xe69a9df4 hdmi_spd_infoframe_pack +EXPORT_SYMBOL vmlinux 0xe6d6e821 alloc_disk_node +EXPORT_SYMBOL vmlinux 0xe6e3b875 down_write +EXPORT_SYMBOL vmlinux 0xe6fb675c node_to_cpumask_map +EXPORT_SYMBOL vmlinux 0xe6fbe430 can_do_mlock +EXPORT_SYMBOL vmlinux 0xe6fe32b2 rps_may_expire_flow +EXPORT_SYMBOL vmlinux 0xe716baed acpi_unregister_ioapic +EXPORT_SYMBOL vmlinux 0xe727d06f d_tmpfile +EXPORT_SYMBOL vmlinux 0xe737fbc7 __tty_alloc_driver +EXPORT_SYMBOL vmlinux 0xe738bef0 ip_options_rcv_srr +EXPORT_SYMBOL vmlinux 0xe75183db mmc_set_data_timeout +EXPORT_SYMBOL vmlinux 0xe7722171 flex_array_free +EXPORT_SYMBOL vmlinux 0xe776defa vfs_readv +EXPORT_SYMBOL vmlinux 0xe783328d brioctl_set +EXPORT_SYMBOL vmlinux 0xe790fe60 pcim_enable_device +EXPORT_SYMBOL vmlinux 0xe795bf42 fddi_change_mtu +EXPORT_SYMBOL vmlinux 0xe79d0d4b pm_vt_switch_required +EXPORT_SYMBOL vmlinux 0xe7a664c4 nf_hooks +EXPORT_SYMBOL vmlinux 0xe7a81967 audit_log_secctx +EXPORT_SYMBOL vmlinux 0xe7d4daac seq_list_next +EXPORT_SYMBOL vmlinux 0xe7d5498f xfrm_input_resume +EXPORT_SYMBOL vmlinux 0xe7e0a567 compat_sock_get_timestamp +EXPORT_SYMBOL vmlinux 0xe8068a0e backlight_force_update +EXPORT_SYMBOL vmlinux 0xe80ce219 sysctl_tcp_dma_copybreak +EXPORT_SYMBOL vmlinux 0xe817f5ff scsi_is_sdev_device +EXPORT_SYMBOL vmlinux 0xe86850a5 register_quota_format +EXPORT_SYMBOL vmlinux 0xe8794ce1 slhc_toss +EXPORT_SYMBOL vmlinux 0xe8b63ace radix_tree_range_tag_if_tagged +EXPORT_SYMBOL vmlinux 0xe8bea3bc qdisc_put_stab +EXPORT_SYMBOL vmlinux 0xe8ca41d4 generic_splice_sendpage +EXPORT_SYMBOL vmlinux 0xe8dbafef __next_cpu +EXPORT_SYMBOL vmlinux 0xe8ee80e8 jbd2_journal_set_features +EXPORT_SYMBOL vmlinux 0xe914e41e strcpy +EXPORT_SYMBOL vmlinux 0xe91b4639 dev_addr_init +EXPORT_SYMBOL vmlinux 0xe9252639 truncate_inode_pages +EXPORT_SYMBOL vmlinux 0xe953b21f get_next_ino +EXPORT_SYMBOL vmlinux 0xe969e704 __pskb_pull_tail +EXPORT_SYMBOL vmlinux 0xe972632f scsi_eh_prep_cmnd +EXPORT_SYMBOL vmlinux 0xe97f3f17 set_device_ro +EXPORT_SYMBOL vmlinux 0xe984ebf3 qdisc_warn_nonwc +EXPORT_SYMBOL vmlinux 0xe98fd202 kset_register +EXPORT_SYMBOL vmlinux 0xe997667b wrmsr_on_cpu +EXPORT_SYMBOL vmlinux 0xe9a0884d get_phy_device +EXPORT_SYMBOL vmlinux 0xe9abc1c1 iterate_fd +EXPORT_SYMBOL vmlinux 0xe9c2e3e3 journal_stop +EXPORT_SYMBOL vmlinux 0xe9dff136 mempool_alloc +EXPORT_SYMBOL vmlinux 0xea054b22 nla_policy_len +EXPORT_SYMBOL vmlinux 0xea10212a int_to_scsilun +EXPORT_SYMBOL vmlinux 0xea10655a __bitmap_intersects +EXPORT_SYMBOL vmlinux 0xea18e48a sock_queue_rcv_skb +EXPORT_SYMBOL vmlinux 0xea21bc71 tcp_sendpage +EXPORT_SYMBOL vmlinux 0xea2bf0ce ip6_frag_init +EXPORT_SYMBOL vmlinux 0xea304a3b abx500_register_ops +EXPORT_SYMBOL vmlinux 0xea362f61 skb_make_writable +EXPORT_SYMBOL vmlinux 0xea710b8f tcp_poll +EXPORT_SYMBOL vmlinux 0xea737566 framebuffer_alloc +EXPORT_SYMBOL vmlinux 0xea786d9f mmc_can_sanitize +EXPORT_SYMBOL vmlinux 0xea7b8a44 acpi_install_interface +EXPORT_SYMBOL vmlinux 0xea8c413b xfrm_prepare_input +EXPORT_SYMBOL vmlinux 0xea8c61e9 fb_pan_display +EXPORT_SYMBOL vmlinux 0xea90bdd3 acpi_attach_data +EXPORT_SYMBOL vmlinux 0xea93cb50 twl6040_reg_read +EXPORT_SYMBOL vmlinux 0xeab1e5d7 mark_info_dirty +EXPORT_SYMBOL vmlinux 0xeac73847 irq_regs +EXPORT_SYMBOL vmlinux 0xead93dcb padata_set_cpumask +EXPORT_SYMBOL vmlinux 0xeae3dfd6 __const_udelay +EXPORT_SYMBOL vmlinux 0xeaeeece8 lro_flush_pkt +EXPORT_SYMBOL vmlinux 0xeaf2737e pnp_possible_config +EXPORT_SYMBOL vmlinux 0xeb192537 read_cache_pages +EXPORT_SYMBOL vmlinux 0xeb37101c audit_log_end +EXPORT_SYMBOL vmlinux 0xeb44339a free_pages_exact +EXPORT_SYMBOL vmlinux 0xeb4ef200 jbd2_journal_clear_err +EXPORT_SYMBOL vmlinux 0xeb5e6db0 tcf_action_exec +EXPORT_SYMBOL vmlinux 0xeb70f387 cdrom_check_events +EXPORT_SYMBOL vmlinux 0xeb896527 x86_hyper_ms_hyperv +EXPORT_SYMBOL vmlinux 0xebd2b4a1 scsi_track_queue_full +EXPORT_SYMBOL vmlinux 0xebdbe48c radix_tree_gang_lookup +EXPORT_SYMBOL vmlinux 0xebfb96c2 unlock_page +EXPORT_SYMBOL vmlinux 0xec17b242 security_dentry_init_security +EXPORT_SYMBOL vmlinux 0xec47f253 con_set_default_unimap +EXPORT_SYMBOL vmlinux 0xec4d9e3a clk_get_sys +EXPORT_SYMBOL vmlinux 0xec4fcbf4 mmc_power_restore_host +EXPORT_SYMBOL vmlinux 0xec730387 _atomic_dec_and_lock +EXPORT_SYMBOL vmlinux 0xecafc5d2 sync_inodes_sb +EXPORT_SYMBOL vmlinux 0xecba1bf6 elv_dispatch_add_tail +EXPORT_SYMBOL vmlinux 0xecc2289a agp_generic_alloc_pages +EXPORT_SYMBOL vmlinux 0xecccc835 pnp_disable_dev +EXPORT_SYMBOL vmlinux 0xeccd3e0c acpi_handle_printk +EXPORT_SYMBOL vmlinux 0xecd5967d inet_sendmsg +EXPORT_SYMBOL vmlinux 0xecdbb1d1 cfb_fillrect +EXPORT_SYMBOL vmlinux 0xece784c2 rb_first +EXPORT_SYMBOL vmlinux 0xecf79d32 fifo_set_limit +EXPORT_SYMBOL vmlinux 0xed1326c2 find_get_pages_tag +EXPORT_SYMBOL vmlinux 0xed206d2c pnp_device_detach +EXPORT_SYMBOL vmlinux 0xed39c41f mfd_cell_disable +EXPORT_SYMBOL vmlinux 0xed44bbf9 blk_queue_max_discard_sectors +EXPORT_SYMBOL vmlinux 0xed44f36b jbd2_journal_set_triggers +EXPORT_SYMBOL vmlinux 0xed50cc9b handle_edge_irq +EXPORT_SYMBOL vmlinux 0xed597524 qdisc_get_rtab +EXPORT_SYMBOL vmlinux 0xed5dd28c blk_integrity_is_initialized +EXPORT_SYMBOL vmlinux 0xed624b0c ip6_find_1stfragopt +EXPORT_SYMBOL vmlinux 0xed75bda5 inet6_del_protocol +EXPORT_SYMBOL vmlinux 0xed7eeb1a wait_for_key_construction +EXPORT_SYMBOL vmlinux 0xed84a801 tcf_hash_check +EXPORT_SYMBOL vmlinux 0xed9f9a20 __ctzsi2 +EXPORT_SYMBOL vmlinux 0xedb508d5 kmalloc_dma_caches +EXPORT_SYMBOL vmlinux 0xedbaee5e nla_strcmp +EXPORT_SYMBOL vmlinux 0xedc03953 iounmap +EXPORT_SYMBOL vmlinux 0xedcdfc19 phy_find_first +EXPORT_SYMBOL vmlinux 0xedeb36cf sock_create_kern +EXPORT_SYMBOL vmlinux 0xedf6df96 genl_unregister_mc_group +EXPORT_SYMBOL vmlinux 0xedfa197e agp3_generic_tlbflush +EXPORT_SYMBOL vmlinux 0xee0352e3 neigh_lookup_nodev +EXPORT_SYMBOL vmlinux 0xee0a055c __percpu_counter_sum +EXPORT_SYMBOL vmlinux 0xee18dae3 grab_cache_page_nowait +EXPORT_SYMBOL vmlinux 0xee21ad5d nf_log_unbind_pf +EXPORT_SYMBOL vmlinux 0xee227b80 prepare_binprm +EXPORT_SYMBOL vmlinux 0xee29f17e dcache_dir_close +EXPORT_SYMBOL vmlinux 0xee2d0fc7 _local_bh_enable +EXPORT_SYMBOL vmlinux 0xee46885d add_wait_queue_exclusive +EXPORT_SYMBOL vmlinux 0xee4ddc9f block_write_end +EXPORT_SYMBOL vmlinux 0xee64ba62 netdev_class_create_file +EXPORT_SYMBOL vmlinux 0xee6a5dcb dev_alert +EXPORT_SYMBOL vmlinux 0xee7720e9 mdio_bus_type +EXPORT_SYMBOL vmlinux 0xee7eb9e1 pnp_platform_devices +EXPORT_SYMBOL vmlinux 0xee81593d __sk_backlog_rcv +EXPORT_SYMBOL vmlinux 0xee95a2ed posix_acl_from_mode +EXPORT_SYMBOL vmlinux 0xeea24d64 bh_uptodate_or_lock +EXPORT_SYMBOL vmlinux 0xeea9dbaf bitmap_bitremap +EXPORT_SYMBOL vmlinux 0xeeb5bd3b __tracepoint_kfree +EXPORT_SYMBOL vmlinux 0xeec0bb5f bfifo_qdisc_ops +EXPORT_SYMBOL vmlinux 0xeee5f7e7 register_exec_domain +EXPORT_SYMBOL vmlinux 0xeeec26a7 queue_delayed_work_on +EXPORT_SYMBOL vmlinux 0xeefce514 dm_kcopyd_copy +EXPORT_SYMBOL vmlinux 0xef1ae198 jbd2_trans_will_send_data_barrier +EXPORT_SYMBOL vmlinux 0xef200993 pcim_iomap_table +EXPORT_SYMBOL vmlinux 0xef2d0e64 cdrom_get_last_written +EXPORT_SYMBOL vmlinux 0xef36f9f6 mmc_set_blockcount +EXPORT_SYMBOL vmlinux 0xef383b10 scsicam_bios_param +EXPORT_SYMBOL vmlinux 0xef3aad0b sync_dirty_buffer +EXPORT_SYMBOL vmlinux 0xef6c8e8c i2c_smbus_write_block_data +EXPORT_SYMBOL vmlinux 0xef77ef59 tcp_initialize_rcv_mss +EXPORT_SYMBOL vmlinux 0xef7d883d scsi_get_command +EXPORT_SYMBOL vmlinux 0xef9aedfc boot_option_idle_override +EXPORT_SYMBOL vmlinux 0xef9f75ba dev_get_by_flags_rcu +EXPORT_SYMBOL vmlinux 0xefa60cc6 journal_blocks_per_page +EXPORT_SYMBOL vmlinux 0xefb6b186 interruptible_sleep_on_timeout +EXPORT_SYMBOL vmlinux 0xefba93e1 mempool_destroy +EXPORT_SYMBOL vmlinux 0xefdd70ce security_secid_to_secctx +EXPORT_SYMBOL vmlinux 0xefe099c3 acpi_get_event_status +EXPORT_SYMBOL vmlinux 0xefee0c5f ps2_handle_ack +EXPORT_SYMBOL vmlinux 0xf0009fee put_pages_list +EXPORT_SYMBOL vmlinux 0xf0187927 __sg_page_iter_next +EXPORT_SYMBOL vmlinux 0xf0202ca5 i2c_master_recv +EXPORT_SYMBOL vmlinux 0xf03548d6 directly_mappable_cdev_bdi +EXPORT_SYMBOL vmlinux 0xf03f9efe tcp_v4_md5_hash_skb +EXPORT_SYMBOL vmlinux 0xf047b71f call_usermodehelper_exec +EXPORT_SYMBOL vmlinux 0xf05c1f98 jbd2_complete_transaction +EXPORT_SYMBOL vmlinux 0xf05f97bf file_open_root +EXPORT_SYMBOL vmlinux 0xf05ffa15 fb_var_to_videomode +EXPORT_SYMBOL vmlinux 0xf0619801 timekeeping_clocktai +EXPORT_SYMBOL vmlinux 0xf065f629 ioread16be +EXPORT_SYMBOL vmlinux 0xf067257c register_memory_isolate_notifier +EXPORT_SYMBOL vmlinux 0xf0829ae0 pci_iounmap +EXPORT_SYMBOL vmlinux 0xf087137d __dynamic_pr_debug +EXPORT_SYMBOL vmlinux 0xf09b7e52 phy_ethtool_get_wol +EXPORT_SYMBOL vmlinux 0xf09de776 get_random_int +EXPORT_SYMBOL vmlinux 0xf0b2eeb8 skb_copy_and_csum_datagram_iovec +EXPORT_SYMBOL vmlinux 0xf0b80152 cdev_init +EXPORT_SYMBOL vmlinux 0xf0e98010 skb_queue_tail +EXPORT_SYMBOL vmlinux 0xf0ea4e0f alloc_disk +EXPORT_SYMBOL vmlinux 0xf0ef15b4 list_sort +EXPORT_SYMBOL vmlinux 0xf0f1246c kvasprintf +EXPORT_SYMBOL vmlinux 0xf0fdf6cb __stack_chk_fail +EXPORT_SYMBOL vmlinux 0xf100416a remove_conflicting_framebuffers +EXPORT_SYMBOL vmlinux 0xf10de535 ioread8 +EXPORT_SYMBOL vmlinux 0xf11543ff find_first_zero_bit +EXPORT_SYMBOL vmlinux 0xf116d4b5 copy_in_user +EXPORT_SYMBOL vmlinux 0xf1242cd7 inet6_protos +EXPORT_SYMBOL vmlinux 0xf129fb35 pci_disable_ltr +EXPORT_SYMBOL vmlinux 0xf1373a9a ata_print_version +EXPORT_SYMBOL vmlinux 0xf13feb57 radix_tree_next_chunk +EXPORT_SYMBOL vmlinux 0xf14629f2 amd_iommu_domain_enable_v2 +EXPORT_SYMBOL vmlinux 0xf147dcb2 hdmi_spd_infoframe_init +EXPORT_SYMBOL vmlinux 0xf147ecb1 down_trylock +EXPORT_SYMBOL vmlinux 0xf1700ac8 bio_unmap_user +EXPORT_SYMBOL vmlinux 0xf195c682 fb_invert_cmaps +EXPORT_SYMBOL vmlinux 0xf1a23871 i2c_del_adapter +EXPORT_SYMBOL vmlinux 0xf1ba2008 sock_register +EXPORT_SYMBOL vmlinux 0xf1ca14fd eth_rebuild_header +EXPORT_SYMBOL vmlinux 0xf1db1704 nla_memcpy +EXPORT_SYMBOL vmlinux 0xf1e75eac i2c_smbus_xfer +EXPORT_SYMBOL vmlinux 0xf1e98c74 avenrun +EXPORT_SYMBOL vmlinux 0xf1ff7fe1 abx500_remove_ops +EXPORT_SYMBOL vmlinux 0xf202c5cb radix_tree_insert +EXPORT_SYMBOL vmlinux 0xf20dabd8 free_irq +EXPORT_SYMBOL vmlinux 0xf22431ba pneigh_lookup +EXPORT_SYMBOL vmlinux 0xf22449ae down_interruptible +EXPORT_SYMBOL vmlinux 0xf23fcb99 __kfifo_in +EXPORT_SYMBOL vmlinux 0xf28ed6e2 machine_to_phys_nr +EXPORT_SYMBOL vmlinux 0xf29074ba __sk_mem_schedule +EXPORT_SYMBOL vmlinux 0xf2997713 tty_termios_hw_change +EXPORT_SYMBOL vmlinux 0xf2b1ac8e __getnstimeofday +EXPORT_SYMBOL vmlinux 0xf2efdddb pci_disable_link_state_locked +EXPORT_SYMBOL vmlinux 0xf2f9dfe2 dma_common_mmap +EXPORT_SYMBOL vmlinux 0xf3017f1c skb_checksum +EXPORT_SYMBOL vmlinux 0xf312cb9d ucs2_strsize +EXPORT_SYMBOL vmlinux 0xf313da4e sha_transform +EXPORT_SYMBOL vmlinux 0xf31580dd sock_kfree_s +EXPORT_SYMBOL vmlinux 0xf3198dba inet_frag_destroy +EXPORT_SYMBOL vmlinux 0xf32055e7 dev_base_lock +EXPORT_SYMBOL vmlinux 0xf3341268 __clear_user +EXPORT_SYMBOL vmlinux 0xf3365a58 tty_port_alloc_xmit_buf +EXPORT_SYMBOL vmlinux 0xf3436014 genphy_read_status +EXPORT_SYMBOL vmlinux 0xf346231f seq_list_start_head +EXPORT_SYMBOL vmlinux 0xf353a698 register_module_notifier +EXPORT_SYMBOL vmlinux 0xf353ea12 get_io_context +EXPORT_SYMBOL vmlinux 0xf35ce71b devfreq_resume_device +EXPORT_SYMBOL vmlinux 0xf363b9a4 serio_reconnect +EXPORT_SYMBOL vmlinux 0xf37260ab _raw_read_unlock_bh +EXPORT_SYMBOL vmlinux 0xf389fe60 __hw_addr_init +EXPORT_SYMBOL vmlinux 0xf3906cf5 tcp_v4_destroy_sock +EXPORT_SYMBOL vmlinux 0xf3916987 global_cursor_default +EXPORT_SYMBOL vmlinux 0xf396cd21 tcp_parse_md5sig_option +EXPORT_SYMBOL vmlinux 0xf3986b06 acpi_os_map_generic_address +EXPORT_SYMBOL vmlinux 0xf3b1a83a tty_register_ldisc +EXPORT_SYMBOL vmlinux 0xf3bf0bce __bitmap_complement +EXPORT_SYMBOL vmlinux 0xf3d39f54 bio_reset +EXPORT_SYMBOL vmlinux 0xf3e95223 log_wait_commit +EXPORT_SYMBOL vmlinux 0xf43222a4 pnp_stop_dev +EXPORT_SYMBOL vmlinux 0xf432dd3d __init_waitqueue_head +EXPORT_SYMBOL vmlinux 0xf441ac43 ioread8_rep +EXPORT_SYMBOL vmlinux 0xf45a4e52 posix_acl_chmod +EXPORT_SYMBOL vmlinux 0xf48566de tcf_em_tree_destroy +EXPORT_SYMBOL vmlinux 0xf4a5c213 avail_to_resrv_perfctr_nmi_bit +EXPORT_SYMBOL vmlinux 0xf4b4e2e9 __netlink_kernel_create +EXPORT_SYMBOL vmlinux 0xf4b754fd acpi_resources_are_enforced +EXPORT_SYMBOL vmlinux 0xf4bdbeb9 __frontswap_invalidate_area +EXPORT_SYMBOL vmlinux 0xf4cb3038 netif_napi_add +EXPORT_SYMBOL vmlinux 0xf4cf5b5f journal_check_available_features +EXPORT_SYMBOL vmlinux 0xf4d24ef7 pcibios_bus_to_resource +EXPORT_SYMBOL vmlinux 0xf4ebddcd wake_up_process +EXPORT_SYMBOL vmlinux 0xf4f14de6 rtnl_trylock +EXPORT_SYMBOL vmlinux 0xf4f641ed md_reap_sync_thread +EXPORT_SYMBOL vmlinux 0xf5132f7b netif_receive_skb +EXPORT_SYMBOL vmlinux 0xf51ae235 touch_nmi_watchdog +EXPORT_SYMBOL vmlinux 0xf51bf88b nf_hooks_needed +EXPORT_SYMBOL vmlinux 0xf536d22e acpi_set_gpe_wake_mask +EXPORT_SYMBOL vmlinux 0xf53d4c26 qdisc_class_hash_destroy +EXPORT_SYMBOL vmlinux 0xf547d0dc generic_pipe_buf_steal +EXPORT_SYMBOL vmlinux 0xf5605c1c tcp_getsockopt +EXPORT_SYMBOL vmlinux 0xf5893abf up_read +EXPORT_SYMBOL vmlinux 0xf58fb95b kobject_add +EXPORT_SYMBOL vmlinux 0xf598be6a rwsem_downgrade_wake +EXPORT_SYMBOL vmlinux 0xf5a49ad1 udp_lib_unhash +EXPORT_SYMBOL vmlinux 0xf5aa1331 file_ns_capable +EXPORT_SYMBOL vmlinux 0xf5b10e67 acpi_install_global_event_handler +EXPORT_SYMBOL vmlinux 0xf5ce272b idr_for_each +EXPORT_SYMBOL vmlinux 0xf5cf40ff jbd2__journal_start +EXPORT_SYMBOL vmlinux 0xf5eb86ea blk_verify_command +EXPORT_SYMBOL vmlinux 0xf62c19ad simple_dir_inode_operations +EXPORT_SYMBOL vmlinux 0xf6388c56 sysctl_ip_default_ttl +EXPORT_SYMBOL vmlinux 0xf640698d simple_transaction_get +EXPORT_SYMBOL vmlinux 0xf653a600 __mutex_init +EXPORT_SYMBOL vmlinux 0xf668dea8 elv_rb_former_request +EXPORT_SYMBOL vmlinux 0xf66e3e59 sg_miter_start +EXPORT_SYMBOL vmlinux 0xf68285c0 register_inetaddr_notifier +EXPORT_SYMBOL vmlinux 0xf68687be __sg_page_iter_start +EXPORT_SYMBOL vmlinux 0xf6995d3a tcp_rcv_state_process +EXPORT_SYMBOL vmlinux 0xf69d2368 __inc_zone_page_state +EXPORT_SYMBOL vmlinux 0xf6a71558 kernel_sock_shutdown +EXPORT_SYMBOL vmlinux 0xf6bb4729 color_table +EXPORT_SYMBOL vmlinux 0xf6cccd15 save_mount_options +EXPORT_SYMBOL vmlinux 0xf6ebc03b net_ratelimit +EXPORT_SYMBOL vmlinux 0xf716837b blk_pre_runtime_suspend +EXPORT_SYMBOL vmlinux 0xf716cd95 scsi_register_interface +EXPORT_SYMBOL vmlinux 0xf7289d14 __tracepoint_kmem_cache_free +EXPORT_SYMBOL vmlinux 0xf74975c9 pcie_capability_clear_and_set_word +EXPORT_SYMBOL vmlinux 0xf7584a9c find_font +EXPORT_SYMBOL vmlinux 0xf76983c6 ipv6_dev_get_saddr +EXPORT_SYMBOL vmlinux 0xf79817d7 kmem_cache_free +EXPORT_SYMBOL vmlinux 0xf7a21309 skb_trim +EXPORT_SYMBOL vmlinux 0xf7adcaf3 __tracepoint_kmalloc_node +EXPORT_SYMBOL vmlinux 0xf7b0ff3e dev_warn +EXPORT_SYMBOL vmlinux 0xf7cb4d0d pci_platform_rom +EXPORT_SYMBOL vmlinux 0xf7ded983 pci_bus_get +EXPORT_SYMBOL vmlinux 0xf7e0a547 tty_unregister_driver +EXPORT_SYMBOL vmlinux 0xf7f930e7 __inet6_lookup_established +EXPORT_SYMBOL vmlinux 0xf803fe39 bitmap_set +EXPORT_SYMBOL vmlinux 0xf811e69d scsi_eh_flush_done_q +EXPORT_SYMBOL vmlinux 0xf812cff6 memscan +EXPORT_SYMBOL vmlinux 0xf819e075 find_get_page +EXPORT_SYMBOL vmlinux 0xf827cb83 free_reserved_area +EXPORT_SYMBOL vmlinux 0xf829daf4 i2c_smbus_read_i2c_block_data +EXPORT_SYMBOL vmlinux 0xf82abc1d isa_dma_bridge_buggy +EXPORT_SYMBOL vmlinux 0xf82cfd1a proc_dostring +EXPORT_SYMBOL vmlinux 0xf82e3d47 acpi_initialize_objects +EXPORT_SYMBOL vmlinux 0xf82ec573 rb_prev +EXPORT_SYMBOL vmlinux 0xf8360026 pcie_capability_write_dword +EXPORT_SYMBOL vmlinux 0xf85c47a8 xfrm4_prepare_output +EXPORT_SYMBOL vmlinux 0xf88e0ee2 acpi_get_table_header +EXPORT_SYMBOL vmlinux 0xf8983de7 prepare_to_wait_exclusive +EXPORT_SYMBOL vmlinux 0xf8992f49 blk_rq_init +EXPORT_SYMBOL vmlinux 0xf89c5614 phy_device_create +EXPORT_SYMBOL vmlinux 0xf8ac1e9c twl6040_power +EXPORT_SYMBOL vmlinux 0xf8addb20 ipv6_chk_addr +EXPORT_SYMBOL vmlinux 0xf8b42d59 inet6_unregister_icmp_sender +EXPORT_SYMBOL vmlinux 0xf8c27f6a tty_devnum +EXPORT_SYMBOL vmlinux 0xf8d37b28 xfrm_init_replay +EXPORT_SYMBOL vmlinux 0xf91acda5 devm_ioremap +EXPORT_SYMBOL vmlinux 0xf95b1490 inc_zone_page_state +EXPORT_SYMBOL vmlinux 0xf9665c6b udp_sendmsg +EXPORT_SYMBOL vmlinux 0xf9889310 sock_i_ino +EXPORT_SYMBOL vmlinux 0xf98e6ae4 xfrm_state_lookup_byaddr +EXPORT_SYMBOL vmlinux 0xf99139ff ps2_sendbyte +EXPORT_SYMBOL vmlinux 0xf9977142 remap_vmalloc_range_partial +EXPORT_SYMBOL vmlinux 0xf99ed897 netdev_rx_csum_fault +EXPORT_SYMBOL vmlinux 0xf9a482f9 msleep +EXPORT_SYMBOL vmlinux 0xf9c0b663 strlcat +EXPORT_SYMBOL vmlinux 0xf9c7b2d5 tcf_unregister_action +EXPORT_SYMBOL vmlinux 0xf9ca80b1 scsi_free_host_dev +EXPORT_SYMBOL vmlinux 0xf9d85da3 pci_find_capability +EXPORT_SYMBOL vmlinux 0xf9ff20e9 truncate_pagecache +EXPORT_SYMBOL vmlinux 0xfa010518 pci_bus_write_config_byte +EXPORT_SYMBOL vmlinux 0xfa0f86c7 mmc_remove_host +EXPORT_SYMBOL vmlinux 0xfa1acafc pcim_iounmap_regions +EXPORT_SYMBOL vmlinux 0xfa36fe5f remap_vmalloc_range +EXPORT_SYMBOL vmlinux 0xfa599bb2 netlink_register_notifier +EXPORT_SYMBOL vmlinux 0xfa5ab8f7 seq_put_decimal_ll +EXPORT_SYMBOL vmlinux 0xfa66f77c finish_wait +EXPORT_SYMBOL vmlinux 0xfa7f3156 wl12xx_get_platform_data +EXPORT_SYMBOL vmlinux 0xfaa6cd42 pci_request_selected_regions +EXPORT_SYMBOL vmlinux 0xfaab27bf buffer_migrate_page +EXPORT_SYMBOL vmlinux 0xfab383b9 rename_lock +EXPORT_SYMBOL vmlinux 0xfac44333 gen_new_estimator +EXPORT_SYMBOL vmlinux 0xfac8865f sysctl_wmem_max +EXPORT_SYMBOL vmlinux 0xfae67b1f cap_mmap_addr +EXPORT_SYMBOL vmlinux 0xfaf98462 bitrev32 +EXPORT_SYMBOL vmlinux 0xfb0443fb acpi_get_parent +EXPORT_SYMBOL vmlinux 0xfb0fe646 mb_cache_entry_find_first +EXPORT_SYMBOL vmlinux 0xfb299d67 put_page +EXPORT_SYMBOL vmlinux 0xfb35dd90 inet_csk_delete_keepalive_timer +EXPORT_SYMBOL vmlinux 0xfb3c666b compat_ipv6_setsockopt +EXPORT_SYMBOL vmlinux 0xfb54d4c3 simple_lookup +EXPORT_SYMBOL vmlinux 0xfb578fc5 memset +EXPORT_SYMBOL vmlinux 0xfb611d3c scsi_block_when_processing_errors +EXPORT_SYMBOL vmlinux 0xfb6af58d recalc_sigpending +EXPORT_SYMBOL vmlinux 0xfb7be8bf phy_scan_fixups +EXPORT_SYMBOL vmlinux 0xfb80c7a0 acpi_walk_namespace +EXPORT_SYMBOL vmlinux 0xfb94103e __clzdi2 +EXPORT_SYMBOL vmlinux 0xfbaaf01e console_lock +EXPORT_SYMBOL vmlinux 0xfbd292d1 fbcon_set_tileops +EXPORT_SYMBOL vmlinux 0xfbd4765c journal_abort +EXPORT_SYMBOL vmlinux 0xfbdb6fd9 jbd2_journal_restart +EXPORT_SYMBOL vmlinux 0xfbf011f3 udp_lib_setsockopt +EXPORT_SYMBOL vmlinux 0xfc02b7ad sysctl_tcp_wmem +EXPORT_SYMBOL vmlinux 0xfc08554c netpoll_parse_options +EXPORT_SYMBOL vmlinux 0xfc2102dc fddi_type_trans +EXPORT_SYMBOL vmlinux 0xfc36c3d7 cfb_copyarea +EXPORT_SYMBOL vmlinux 0xfc39e32f ioport_unmap +EXPORT_SYMBOL vmlinux 0xfc47d6a6 in6_dev_finish_destroy +EXPORT_SYMBOL vmlinux 0xfc5a5522 bio_integrity_get_tag +EXPORT_SYMBOL vmlinux 0xfc7a646c release_sock +EXPORT_SYMBOL vmlinux 0xfc7da69f bio_clone_bioset +EXPORT_SYMBOL vmlinux 0xfc7eb77b kblockd_schedule_delayed_work +EXPORT_SYMBOL vmlinux 0xfc872fd1 get_ibs_caps +EXPORT_SYMBOL vmlinux 0xfca571a8 dev_mc_flush +EXPORT_SYMBOL vmlinux 0xfca5e76a input_mt_report_finger_count +EXPORT_SYMBOL vmlinux 0xfcaa04a0 out_of_line_wait_on_bit_lock +EXPORT_SYMBOL vmlinux 0xfcac0d40 acpi_install_interface_handler +EXPORT_SYMBOL vmlinux 0xfcb4f77a ata_dev_printk +EXPORT_SYMBOL vmlinux 0xfcb683af devfreq_interval_update +EXPORT_SYMBOL vmlinux 0xfcb75807 bdgrab +EXPORT_SYMBOL vmlinux 0xfcb926cd kstrtouint_from_user +EXPORT_SYMBOL vmlinux 0xfcc2a43c utf32_to_utf8 +EXPORT_SYMBOL vmlinux 0xfcc54f91 lg_local_lock_cpu +EXPORT_SYMBOL vmlinux 0xfce5568e vfs_unlink +EXPORT_SYMBOL vmlinux 0xfcec0987 enable_irq +EXPORT_SYMBOL vmlinux 0xfcfa03ff fb_videomode_to_modelist +EXPORT_SYMBOL vmlinux 0xfd18bc82 node_data +EXPORT_SYMBOL vmlinux 0xfd28609a tcp_ioctl +EXPORT_SYMBOL vmlinux 0xfd6293c2 boot_tvec_bases +EXPORT_SYMBOL vmlinux 0xfd62dcf1 security_sb_clone_mnt_opts +EXPORT_SYMBOL vmlinux 0xfd7d7713 acpi_exception +EXPORT_SYMBOL vmlinux 0xfd8310b0 udp_proc_unregister +EXPORT_SYMBOL vmlinux 0xfd99623a ip_frag_ecn_table +EXPORT_SYMBOL vmlinux 0xfd9ce325 blk_rq_count_integrity_sg +EXPORT_SYMBOL vmlinux 0xfda0dbe8 ftrace_print_hex_seq +EXPORT_SYMBOL vmlinux 0xfdb5b93c fb_show_logo +EXPORT_SYMBOL vmlinux 0xfdb5d1e7 noop_llseek +EXPORT_SYMBOL vmlinux 0xfdb9b629 ioread32be +EXPORT_SYMBOL vmlinux 0xfdbe0288 pci_add_resource_offset +EXPORT_SYMBOL vmlinux 0xfdd9520c blk_run_queue_async +EXPORT_SYMBOL vmlinux 0xfddf99f5 serial8250_register_8250_port +EXPORT_SYMBOL vmlinux 0xfde86554 get_unmapped_area +EXPORT_SYMBOL vmlinux 0xfdee7d42 _raw_read_lock_bh +EXPORT_SYMBOL vmlinux 0xfdf72a84 generic_read_dir +EXPORT_SYMBOL vmlinux 0xfdfb792f amd_iommu_pc_supported +EXPORT_SYMBOL vmlinux 0xfdfc0b3b fiemap_fill_next_extent +EXPORT_SYMBOL vmlinux 0xfe029963 unregister_inetaddr_notifier +EXPORT_SYMBOL vmlinux 0xfe0312ca gnet_stats_start_copy +EXPORT_SYMBOL vmlinux 0xfe0338cd d_splice_alias +EXPORT_SYMBOL vmlinux 0xfe047ce6 acpi_enter_sleep_state +EXPORT_SYMBOL vmlinux 0xfe26fc7c nr_node_ids +EXPORT_SYMBOL vmlinux 0xfe41d35c dm_put_device +EXPORT_SYMBOL vmlinux 0xfe4eb103 proc_create_data +EXPORT_SYMBOL vmlinux 0xfe5d4bb2 sys_tz +EXPORT_SYMBOL vmlinux 0xfe6aad16 netlink_broadcast_filtered +EXPORT_SYMBOL vmlinux 0xfe7c4287 nr_cpu_ids +EXPORT_SYMBOL vmlinux 0xfe8c79be cdrom_open +EXPORT_SYMBOL vmlinux 0xfea4f320 seq_put_decimal_ull +EXPORT_SYMBOL vmlinux 0xfebb1aa2 vga_switcheroo_client_fb_set +EXPORT_SYMBOL vmlinux 0xfed1be15 done_path_create +EXPORT_SYMBOL vmlinux 0xfedbcba4 __register_binfmt +EXPORT_SYMBOL vmlinux 0xfedcdb60 seq_hlist_next_percpu +EXPORT_SYMBOL vmlinux 0xfee02b3a account_page_dirtied +EXPORT_SYMBOL vmlinux 0xfeebc7c4 __kfifo_from_user_r +EXPORT_SYMBOL vmlinux 0xfef141f7 sock_no_recvmsg +EXPORT_SYMBOL vmlinux 0xfef96e23 __scsi_print_command +EXPORT_SYMBOL vmlinux 0xff0741f6 dquot_file_open +EXPORT_SYMBOL vmlinux 0xff099b52 scsi_device_lookup +EXPORT_SYMBOL vmlinux 0xff0aca23 tcf_generic_walker +EXPORT_SYMBOL vmlinux 0xff144490 pnpacpi_protocol +EXPORT_SYMBOL vmlinux 0xff1e9dd8 seq_list_start +EXPORT_SYMBOL vmlinux 0xff6878cf fb_default_cmap +EXPORT_SYMBOL vmlinux 0xff70e0dd set_trace_device +EXPORT_SYMBOL vmlinux 0xff7559e4 ioport_resource +EXPORT_SYMBOL vmlinux 0xff76c8f9 ip_options_compile +EXPORT_SYMBOL vmlinux 0xff7768ec scsi_test_unit_ready +EXPORT_SYMBOL vmlinux 0xff9ca065 fb_edid_to_monspecs +EXPORT_SYMBOL vmlinux 0xff9da683 locks_copy_lock +EXPORT_SYMBOL vmlinux 0xffa21544 pci_clear_mwi +EXPORT_SYMBOL vmlinux 0xffa3d08b pci_pme_active +EXPORT_SYMBOL vmlinux 0xffba6543 sdev_disable_disk_events +EXPORT_SYMBOL vmlinux 0xffc18422 blk_dump_rq_flags +EXPORT_SYMBOL vmlinux 0xffd5a395 default_wake_function +EXPORT_SYMBOL vmlinux 0xffe5095d groups_free +EXPORT_SYMBOL_GPL arch/x86/crypto/ablk_helper 0x344ad4c4 ablk_init_common +EXPORT_SYMBOL_GPL arch/x86/crypto/ablk_helper 0x738068d3 ablk_set_key +EXPORT_SYMBOL_GPL arch/x86/crypto/ablk_helper 0x8e61a027 __ablk_encrypt +EXPORT_SYMBOL_GPL arch/x86/crypto/ablk_helper 0xa8cf2f0b ablk_decrypt +EXPORT_SYMBOL_GPL arch/x86/crypto/ablk_helper 0xb1630a95 ablk_init +EXPORT_SYMBOL_GPL arch/x86/crypto/ablk_helper 0xe9572591 ablk_encrypt +EXPORT_SYMBOL_GPL arch/x86/crypto/ablk_helper 0xf3cabdfb ablk_exit +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/crypto/camellia-aesni-avx-x86_64 0x13a65ecf camellia_ecb_enc_16way +EXPORT_SYMBOL_GPL arch/x86/crypto/camellia-aesni-avx-x86_64 0x17bf48dc camellia_xts_dec_16way +EXPORT_SYMBOL_GPL arch/x86/crypto/camellia-aesni-avx-x86_64 0x1a08ded1 camellia_xts_enc +EXPORT_SYMBOL_GPL arch/x86/crypto/camellia-aesni-avx-x86_64 0x47129015 camellia_xts_enc_16way +EXPORT_SYMBOL_GPL arch/x86/crypto/camellia-aesni-avx-x86_64 0x7d54edc2 camellia_cbc_dec_16way +EXPORT_SYMBOL_GPL arch/x86/crypto/camellia-aesni-avx-x86_64 0x7e87ef55 camellia_ecb_dec_16way +EXPORT_SYMBOL_GPL arch/x86/crypto/camellia-aesni-avx-x86_64 0x8f185793 camellia_xts_dec +EXPORT_SYMBOL_GPL arch/x86/crypto/camellia-aesni-avx-x86_64 0x9e8086dc camellia_ctr_16way +EXPORT_SYMBOL_GPL arch/x86/crypto/camellia-x86_64 0x16061d06 __camellia_setkey +EXPORT_SYMBOL_GPL arch/x86/crypto/camellia-x86_64 0x1636abdf __camellia_enc_blk +EXPORT_SYMBOL_GPL arch/x86/crypto/camellia-x86_64 0x1da0e256 camellia_crypt_ctr +EXPORT_SYMBOL_GPL arch/x86/crypto/camellia-x86_64 0x2bddf4f8 lrw_camellia_exit_tfm +EXPORT_SYMBOL_GPL arch/x86/crypto/camellia-x86_64 0x31bbe42b camellia_crypt_ctr_2way +EXPORT_SYMBOL_GPL arch/x86/crypto/camellia-x86_64 0x50dc55b6 __camellia_enc_blk_2way +EXPORT_SYMBOL_GPL arch/x86/crypto/camellia-x86_64 0x930f687f camellia_decrypt_cbc_2way +EXPORT_SYMBOL_GPL arch/x86/crypto/camellia-x86_64 0x9532f8a5 lrw_camellia_setkey +EXPORT_SYMBOL_GPL arch/x86/crypto/camellia-x86_64 0xa41a5ad3 camellia_dec_blk +EXPORT_SYMBOL_GPL arch/x86/crypto/camellia-x86_64 0xdc8d7f5e xts_camellia_setkey +EXPORT_SYMBOL_GPL arch/x86/crypto/camellia-x86_64 0xf4521fda camellia_dec_blk_2way +EXPORT_SYMBOL_GPL arch/x86/crypto/glue_helper 0x09b02e39 glue_ctr_crypt_128bit +EXPORT_SYMBOL_GPL arch/x86/crypto/glue_helper 0x28c04d56 glue_ctr_crypt_final_128bit +EXPORT_SYMBOL_GPL arch/x86/crypto/glue_helper 0x578f794e glue_ecb_crypt_128bit +EXPORT_SYMBOL_GPL arch/x86/crypto/glue_helper 0x69591382 glue_cbc_decrypt_128bit +EXPORT_SYMBOL_GPL arch/x86/crypto/glue_helper 0x8f02ac4d glue_xts_crypt_128bit_one +EXPORT_SYMBOL_GPL arch/x86/crypto/glue_helper 0x99a7d62a glue_cbc_encrypt_128bit +EXPORT_SYMBOL_GPL arch/x86/crypto/glue_helper 0xbb9e5610 glue_xts_crypt_128bit +EXPORT_SYMBOL_GPL arch/x86/crypto/serpent-avx-x86_64 0x016a957f serpent_xts_enc_8way_avx +EXPORT_SYMBOL_GPL arch/x86/crypto/serpent-avx-x86_64 0x0c5a8af6 serpent_xts_dec_8way_avx +EXPORT_SYMBOL_GPL arch/x86/crypto/serpent-avx-x86_64 0x0ff3c26d serpent_xts_dec +EXPORT_SYMBOL_GPL arch/x86/crypto/serpent-avx-x86_64 0x23f043cb xts_serpent_setkey +EXPORT_SYMBOL_GPL arch/x86/crypto/serpent-avx-x86_64 0x606a8162 serpent_cbc_dec_8way_avx +EXPORT_SYMBOL_GPL arch/x86/crypto/serpent-avx-x86_64 0x66c76fef lrw_serpent_exit_tfm +EXPORT_SYMBOL_GPL arch/x86/crypto/serpent-avx-x86_64 0x79ff0b7a serpent_ecb_dec_8way_avx +EXPORT_SYMBOL_GPL arch/x86/crypto/serpent-avx-x86_64 0x9ae34b2f serpent_xts_enc +EXPORT_SYMBOL_GPL arch/x86/crypto/serpent-avx-x86_64 0x9e018632 __serpent_crypt_ctr +EXPORT_SYMBOL_GPL arch/x86/crypto/serpent-avx-x86_64 0x9f99663c serpent_ctr_8way_avx +EXPORT_SYMBOL_GPL arch/x86/crypto/serpent-avx-x86_64 0xa84ea33d serpent_ecb_enc_8way_avx +EXPORT_SYMBOL_GPL arch/x86/crypto/serpent-avx-x86_64 0xf530f52d lrw_serpent_setkey +EXPORT_SYMBOL_GPL arch/x86/crypto/twofish-x86_64 0x19dc7881 twofish_dec_blk +EXPORT_SYMBOL_GPL arch/x86/crypto/twofish-x86_64 0x5e752773 twofish_enc_blk +EXPORT_SYMBOL_GPL arch/x86/crypto/twofish-x86_64-3way 0x1fd77fb1 twofish_dec_blk_3way +EXPORT_SYMBOL_GPL arch/x86/crypto/twofish-x86_64-3way 0x42b4c876 lrw_twofish_exit_tfm +EXPORT_SYMBOL_GPL arch/x86/crypto/twofish-x86_64-3way 0x47c1a789 xts_twofish_setkey +EXPORT_SYMBOL_GPL arch/x86/crypto/twofish-x86_64-3way 0x61694b97 twofish_dec_blk_cbc_3way +EXPORT_SYMBOL_GPL arch/x86/crypto/twofish-x86_64-3way 0x8d75ab44 twofish_enc_blk_ctr +EXPORT_SYMBOL_GPL arch/x86/crypto/twofish-x86_64-3way 0x8e856922 twofish_enc_blk_ctr_3way +EXPORT_SYMBOL_GPL arch/x86/crypto/twofish-x86_64-3way 0x9101116f lrw_twofish_setkey +EXPORT_SYMBOL_GPL arch/x86/crypto/twofish-x86_64-3way 0xf2e80e9c __twofish_enc_blk_3way +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 0x020688aa kvm_mmu_page_fault +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x03d6657e kvm_set_cr4 +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x04e2aa60 kvm_lmsw +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x08b03d20 kvm_clear_guest +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x0d671b47 kvm_mmu_unprotect_page +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x116f9803 kvm_is_visible_gfn +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x12c02287 kvm_set_cr3 +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x12dde3aa gfn_to_pfn_prot +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x152136ab kvm_vcpu_uninit +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x15f2a789 kvm_apic_set_eoi_accelerated +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x1679292f kvm_mmu_load +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x168d748b kvm_get_apic_base +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x16e771b5 kvm_inject_nmi +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x1cecd8ae __kvm_set_memory_region +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x1cfe78d1 kvm_release_pfn_dirty +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x20de5193 kvm_disable_largepages +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x22494277 kvm_irq_has_notifier +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x25772b03 kvm_read_guest_page_mmu +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x27046576 kvm_exit +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x2b10c096 kvm_get_rflags +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x317f9e6b kvm_enable_efer_bits +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x31ce78f2 kvm_read_guest_virt +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x32ad43a2 fx_init +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x32f47559 kvm_complete_insn_gp +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x34fd0bc9 kvm_valid_efer +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x38446dd2 kvm_mmu_reset_context +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x3b5dd35e __tracepoint_kvm_msr +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x3de08404 kvm_set_shared_msr +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x3fc5f7aa kvm_release_page_clean +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x3fcb2a33 kvm_init_shadow_mmu +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x4044cdfd kvm_cpu_has_interrupt +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x45e86150 kvm_set_rflags +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x463d7c61 x86_emulate_instruction +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x467ec002 gfn_to_pfn +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x477d02d9 kvm_find_cpuid_entry +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x485cd7f6 kvm_rebooting +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x4af917ec kvm_set_xcr +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x4c51f664 __tracepoint_kvm_exit +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x4ce1a09c kvm_set_msr_common +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x4db48580 gfn_to_pfn_atomic +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x50c5b614 kvm_gfn_to_hva_cache_init +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x51827a4e kvm_emulate_wbinvd +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x536062aa gfn_to_page_many_atomic +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x53a2a3f7 __tracepoint_kvm_inj_virq +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x5aeb8845 kvm_task_switch +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x63812bc5 kvm_get_kvm +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x64a34f49 __tracepoint_kvm_nested_vmexit_inject +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x64ac75e1 kvm_apic_write_nodecode +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x6505072e kvm_init +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x669da1fd kvm_set_pfn_dirty +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x698869b1 kvm_set_cr8 +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x6bd12f07 kvm_write_guest_virt_system +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x6e5549d0 kvm_get_dr +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x6fde7632 kvm_queue_exception +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x70234f15 kvm_set_memory_region +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x709cd8cb kvm_spurious_fault +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x724089f8 kvm_inject_realmode_interrupt +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x759fe12e kvm_release_page_dirty +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x77cf6e10 kvm_set_apic_base +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x79e36a2b kvm_lapic_set_eoi +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x7a9f2a7e kvm_put_kvm +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x7aa64803 kvm_release_pfn_clean +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x7ac3c561 kvm_cpuid +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x7c502ab9 __tracepoint_kvm_nested_intr_vmexit +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x7f2c1163 __tracepoint_kvm_nested_vmexit +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x831327da kvm_max_guest_tsc_khz +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x85ad1205 kvm_get_guest_memory_type +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x876ccd8d kvm_get_cs_db_l_bits +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x877508a2 kvm_clear_guest_page +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x8a26f7b0 __tracepoint_kvm_nested_intercepts +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x8a8ad75b kvm_get_cr8 +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 0x8fd5bf7c kvm_get_msr_common +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x907e48b6 gfn_to_memslot +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x9271aee2 gfn_to_pfn_async +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x93336304 kvm_set_cr0 +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x964bdb5d kvm_vcpu_yield_to +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x9a216313 kvm_define_shared_msr +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x9aaab803 kvm_require_cpl +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0x9ee59155 __tracepoint_kvm_page_fault +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xa0ec3a0a gfn_to_hva_memslot +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xa18389f9 kvm_mmu_get_spte_hierarchy +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xa2a5a9ab kvm_inject_pending_timer_irqs +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xa308476d kvm_write_guest_cached +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xa508e36b __tracepoint_kvm_skinit +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xa6e9dcb4 kvm_read_guest_cached +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xa7eae682 load_pdptrs +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xaa79cab5 __tracepoint_kvm_cr +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xac1b56b5 kvm_requeue_exception_e +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xacf7f97c gfn_to_pfn_memslot_atomic +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xaf275715 __tracepoint_kvm_nested_vmrun +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xafa9e346 kvm_requeue_exception +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xb09532cd handle_mmio_page_fault_common +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xb41bb4bb gfn_to_hva +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xb82bbc76 kvm_resched +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xb927a7a5 kvm_vcpu_on_spin +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xba3fa06a kvm_emulate_hypercall +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xba9ed435 kvm_mmu_set_mmio_spte_mask +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xbaee155b kvm_vcpu_cache +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xc08578d2 kvm_set_dr +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xc407faba kvm_apic_update_irr +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xc56ec8ad kvm_read_guest +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xc6c345e6 kvm_queue_exception_e +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xcd88ca71 kvm_emulate_halt +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xcef3fec5 __tracepoint_kvm_write_tsc_offset +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xd0459e67 kvm_has_tsc_control +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xd0b2727a kvm_mmu_set_mask_ptes +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xd3719462 kvm_is_linear_rip +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xd96c864f kvm_emulate_cpuid +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xdad5b804 kvm_rdpmc +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xdeb9e564 __tracepoint_kvm_invlpga +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xdee547b6 kvm_read_guest_page +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xdf21878e gfn_to_page +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xe141643b kvm_write_tsc +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xe2894e31 kvm_before_handle_nmi +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xe4e3a7ee kvm_inject_page_fault +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xe517c054 kvm_x86_ops +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xe71bf015 kvm_write_guest_page +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xec2c9914 kvm_vcpu_kick +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xee05e80d kvm_mmu_invlpg +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xee089a0b kvm_set_page_dirty +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xeed099dd kvm_mmu_unprotect_page_virt +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xf0ceffd5 kvm_after_handle_nmi +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xf162229d kvm_vcpu_init +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xf517a72d kvm_fast_pio_out +EXPORT_SYMBOL_GPL arch/x86/kvm/kvm 0xf6511a36 kvm_mmu_unload +EXPORT_SYMBOL_GPL crypto/af_alg 0x289197b2 af_alg_cmsg_send +EXPORT_SYMBOL_GPL crypto/af_alg 0x5a2e21d1 af_alg_accept +EXPORT_SYMBOL_GPL crypto/af_alg 0x65eef7f4 af_alg_wait_for_completion +EXPORT_SYMBOL_GPL crypto/af_alg 0x780e3e14 af_alg_complete +EXPORT_SYMBOL_GPL crypto/af_alg 0xa507eea6 af_alg_unregister_type +EXPORT_SYMBOL_GPL crypto/af_alg 0xb09e8c44 af_alg_make_sg +EXPORT_SYMBOL_GPL crypto/af_alg 0xb0c085c4 af_alg_register_type +EXPORT_SYMBOL_GPL crypto/af_alg 0xb7e9dc88 af_alg_release +EXPORT_SYMBOL_GPL crypto/af_alg 0xf76d2b72 af_alg_free_sg +EXPORT_SYMBOL_GPL crypto/async_tx/async_memcpy 0xd69ab49d async_memcpy +EXPORT_SYMBOL_GPL crypto/async_tx/async_pq 0x3756d589 async_syndrome_val +EXPORT_SYMBOL_GPL crypto/async_tx/async_pq 0x746b7560 async_gen_syndrome +EXPORT_SYMBOL_GPL crypto/async_tx/async_raid6_recov 0x1de5256c async_raid6_datap_recov +EXPORT_SYMBOL_GPL crypto/async_tx/async_raid6_recov 0x4f81bf43 async_raid6_2data_recov +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0x60eed74c async_tx_submit +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0x8b4a1836 __async_tx_find_channel +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0xa51622ca async_tx_quiesce +EXPORT_SYMBOL_GPL crypto/async_tx/async_tx 0xcb7c4878 async_trigger_callback +EXPORT_SYMBOL_GPL crypto/async_tx/async_xor 0x373df0cf async_xor +EXPORT_SYMBOL_GPL crypto/async_tx/async_xor 0xe8121d5e async_xor_val +EXPORT_SYMBOL_GPL crypto/blowfish_common 0x8e580785 blowfish_setkey +EXPORT_SYMBOL_GPL crypto/cast5_generic 0x27278ca9 __cast5_encrypt +EXPORT_SYMBOL_GPL crypto/cast5_generic 0x337eb104 cast5_setkey +EXPORT_SYMBOL_GPL crypto/cast5_generic 0x4a2a3ca6 __cast5_decrypt +EXPORT_SYMBOL_GPL crypto/cast6_generic 0x1291971c __cast6_setkey +EXPORT_SYMBOL_GPL crypto/cast6_generic 0x1e2c961f __cast6_decrypt +EXPORT_SYMBOL_GPL crypto/cast6_generic 0x8f04034a __cast6_encrypt +EXPORT_SYMBOL_GPL crypto/cast6_generic 0xa98c7260 cast6_setkey +EXPORT_SYMBOL_GPL crypto/cast_common 0x08aa6fb7 cast_s1 +EXPORT_SYMBOL_GPL crypto/cast_common 0x0c5fbf8a cast_s3 +EXPORT_SYMBOL_GPL crypto/cast_common 0xe39dd4b4 cast_s2 +EXPORT_SYMBOL_GPL crypto/cast_common 0xee83a4f3 cast_s4 +EXPORT_SYMBOL_GPL crypto/cryptd 0x020b4bef cryptd_free_ablkcipher +EXPORT_SYMBOL_GPL crypto/cryptd 0x0b196824 cryptd_alloc_aead +EXPORT_SYMBOL_GPL crypto/cryptd 0x1bce5f6e cryptd_free_aead +EXPORT_SYMBOL_GPL crypto/cryptd 0x438f1b41 cryptd_shash_desc +EXPORT_SYMBOL_GPL crypto/cryptd 0x92aa14ab cryptd_ahash_child +EXPORT_SYMBOL_GPL crypto/cryptd 0xa13e7b82 cryptd_free_ahash +EXPORT_SYMBOL_GPL crypto/cryptd 0xa5a943d1 cryptd_ablkcipher_child +EXPORT_SYMBOL_GPL crypto/cryptd 0xb61d3271 cryptd_alloc_ablkcipher +EXPORT_SYMBOL_GPL crypto/cryptd 0xded06ac9 cryptd_aead_child +EXPORT_SYMBOL_GPL crypto/cryptd 0xebf2de3f cryptd_alloc_ahash +EXPORT_SYMBOL_GPL crypto/des_generic 0xcfd9a2c0 des_ekey +EXPORT_SYMBOL_GPL crypto/lrw 0x3864eb66 lrw_free_table +EXPORT_SYMBOL_GPL crypto/lrw 0xc9d79dff lrw_crypt +EXPORT_SYMBOL_GPL crypto/lrw 0xcd074900 lrw_init_table +EXPORT_SYMBOL_GPL crypto/serpent_generic 0x5880894f serpent_setkey +EXPORT_SYMBOL_GPL crypto/serpent_generic 0x5ddb33e9 __serpent_encrypt +EXPORT_SYMBOL_GPL crypto/serpent_generic 0x77b39cb4 __serpent_setkey +EXPORT_SYMBOL_GPL crypto/serpent_generic 0x8a1a99ad __serpent_decrypt +EXPORT_SYMBOL_GPL crypto/twofish_common 0x6c3229bb __twofish_setkey +EXPORT_SYMBOL_GPL crypto/twofish_common 0xec3cf23a twofish_setkey +EXPORT_SYMBOL_GPL crypto/xts 0x816ac3e0 xts_crypt +EXPORT_SYMBOL_GPL drivers/acpi/sbshc 0x1c8984c7 acpi_smbus_unregister_callback +EXPORT_SYMBOL_GPL drivers/acpi/sbshc 0x87bd07bd acpi_smbus_register_callback +EXPORT_SYMBOL_GPL drivers/acpi/sbshc 0xb9a141b0 acpi_smbus_read +EXPORT_SYMBOL_GPL drivers/acpi/sbshc 0xe1372311 acpi_smbus_write +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x04c9bf4d ahci_start_engine +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x0b901101 ahci_pmp_retry_srst_ops +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x142d524a ahci_dev_classify +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x270c8012 ahci_shost_attrs +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x2cd4e884 ahci_set_em_messages +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x3bf20cd8 ahci_sdev_attrs +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x575ff81f ahci_save_initial_config +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x5d100e4e ahci_check_ready +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x5eacba1f ahci_interrupt +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x694f923e ahci_thread_fn +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x6e05c4e7 ahci_hw_interrupt +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x7529a36e ahci_kick_engine +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x7f85e35f ahci_reset_controller +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x83a536d9 ahci_fill_cmd_slot +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x91270068 ahci_port_resume +EXPORT_SYMBOL_GPL drivers/ata/libahci 0x99566558 ahci_print_info +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xc56315d4 ahci_stop_engine +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xc6e18aea ahci_init_controller +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xdecdb765 ahci_reset_em +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xe52b230a ahci_ops +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xea50dad3 ahci_ignore_sss +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xf3218c49 ahci_do_softreset +EXPORT_SYMBOL_GPL drivers/ata/libahci 0xf6464980 ahci_em_messages +EXPORT_SYMBOL_GPL drivers/ata/pata_platform 0x2a05d9fc __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/bcma/bcma 0x070328c3 bcma_pmu_spuravoid_pllupdate +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x08269c48 bcma_core_enable +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x0b88f824 bcma_pmu_get_bus_clock +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x2de07d65 bcma_chipco_chipctl_maskset +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x3b3040dc bcma_core_set_clockmode +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x4760756b bcma_core_pci_irq_ctl +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x4a59e856 bcma_chipco_gpio_out +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x4b3945ec bcma_driver_unregister +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x4bc0a7c6 bcma_chipco_pll_write +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x69d61270 bcma_chipco_pll_read +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x733df758 bcma_chipco_gpio_control +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x81c2fdfe bcma_find_core +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x9867ffbf bcma_core_disable +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0x9b7e6406 bcma_chipco_get_alp_clock +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xa4d7cea0 bcma_core_is_enabled +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xac888d14 bcma_core_pll_ctl +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xb8176f59 bcma_chipco_regctl_maskset +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xbf22b012 __bcma_driver_register +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xc0603d17 bcma_chipco_gpio_outen +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xd36eb0ff bcma_core_pci_extend_L1timer +EXPORT_SYMBOL_GPL drivers/bcma/bcma 0xdc29ebf1 bcma_chipco_pll_maskset +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x240452e9 btmrvl_interrupt +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x5bdf0c50 btmrvl_enable_hs +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x960c7e2d btmrvl_check_evtpkt +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0x9a6735bb btmrvl_register_hdev +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xb64219c2 btmrvl_process_event +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xc4b165cb btmrvl_remove_card +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xcd210f98 btmrvl_enable_ps +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xe0e964cf btmrvl_send_hscfg_cmd +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xe660ce3a btmrvl_send_module_cfg_cmd +EXPORT_SYMBOL_GPL drivers/bluetooth/btmrvl 0xfc133d90 btmrvl_add_card +EXPORT_SYMBOL_GPL drivers/cpufreq/speedstep-lib 0x1b1f2bda speedstep_get_freqs +EXPORT_SYMBOL_GPL drivers/cpufreq/speedstep-lib 0x2b67f096 speedstep_get_frequency +EXPORT_SYMBOL_GPL drivers/cpufreq/speedstep-lib 0xd7ab2c0c speedstep_detect_processor +EXPORT_SYMBOL_GPL drivers/dca/dca 0x01a33ab9 dca_unregister_notify +EXPORT_SYMBOL_GPL drivers/dca/dca 0x31a2c8df dca_get_tag +EXPORT_SYMBOL_GPL drivers/dca/dca 0x3d4f4f19 dca3_get_tag +EXPORT_SYMBOL_GPL drivers/dca/dca 0x507eca46 unregister_dca_provider +EXPORT_SYMBOL_GPL drivers/dca/dca 0x6a3e20ae alloc_dca_provider +EXPORT_SYMBOL_GPL drivers/dca/dca 0x7735737a free_dca_provider +EXPORT_SYMBOL_GPL drivers/dca/dca 0x7a2b17f5 dca_add_requester +EXPORT_SYMBOL_GPL drivers/dca/dca 0x8316e97c register_dca_provider +EXPORT_SYMBOL_GPL drivers/dca/dca 0xac34ecec dca_register_notify +EXPORT_SYMBOL_GPL drivers/dca/dca 0xba591c33 dca_remove_requester +EXPORT_SYMBOL_GPL drivers/dma/dw/dw_dmac_core 0x3aba44b3 dw_dma_remove +EXPORT_SYMBOL_GPL drivers/dma/dw/dw_dmac_core 0x3c44dbde dw_dma_shutdown +EXPORT_SYMBOL_GPL drivers/dma/dw/dw_dmac_core 0x7385583a dw_dma_resume +EXPORT_SYMBOL_GPL drivers/dma/dw/dw_dmac_core 0xe51d367b dw_dma_suspend +EXPORT_SYMBOL_GPL drivers/dma/dw/dw_dmac_core 0xee8bb2a9 dw_dma_probe +EXPORT_SYMBOL_GPL drivers/edac/amd64_edac_mod 0x1e252f53 amd64_get_dram_hole_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x0223ca84 edac_mc_handle_error +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x0c32ff8a edac_pci_alloc_index +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x0f3fe78e edac_raw_mc_handle_error +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x1616e50e edac_pci_alloc_ctl_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x16b3b944 edac_device_add_device +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x26521dc4 edac_device_free_ctl_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x2dea7309 edac_mc_add_mc +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x2f40a3ac edac_pci_reset_delay_period +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x36964d68 edac_pci_del_device +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x429ccffb edac_device_alloc_ctl_info +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x505d3f7c edac_pci_add_device +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x56b3e03b edac_mc_alloc +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x69259f22 edac_mem_types +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x6a364e73 edac_pci_create_generic_ctl +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x6e3ff83a edac_device_alloc_index +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x70181bcc edac_mc_free +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x718fd6cf edac_pci_handle_pe +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x78fff70e edac_device_handle_ce +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x7e7d62d0 edac_mc_del_mc +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0x8aa5164c edac_pci_handle_npe +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xa83e34d4 edac_device_handle_ue +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xb6bfb878 find_mci_by_dev +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xb7cd66c0 edac_device_del_device +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xc0dcb59e edac_layer_name +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xc139ba30 edac_mc_find_csrow_by_page +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xd99d392a edac_pci_release_generic_ctl +EXPORT_SYMBOL_GPL drivers/edac/edac_core 0xf12c7455 edac_pci_free_ctl_info +EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0x14878009 amd_report_gart_errors +EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0x1d34e996 pp_msgs +EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0x21626132 amd_register_ecc_decoder +EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0x737912b3 amd_unregister_ecc_decoder +EXPORT_SYMBOL_GPL drivers/edac/edac_mce_amd 0xb30b7e56 amd_decode_mce +EXPORT_SYMBOL_GPL drivers/firewire/firewire-core 0xf4ade51f fw_card_release +EXPORT_SYMBOL_GPL drivers/gpio/gpio-cs5535 0x013fbdac cs5535_gpio_set +EXPORT_SYMBOL_GPL drivers/gpio/gpio-cs5535 0x93f8fe67 cs5535_gpio_set_irq +EXPORT_SYMBOL_GPL drivers/gpio/gpio-cs5535 0xc0bb404a cs5535_gpio_setup_event +EXPORT_SYMBOL_GPL drivers/gpio/gpio-cs5535 0xd3bd9300 cs5535_gpio_isset +EXPORT_SYMBOL_GPL drivers/gpio/gpio-cs5535 0xe07c0954 cs5535_gpio_clear +EXPORT_SYMBOL_GPL drivers/gpio/gpio-generic 0x5c363e7c bgpio_init +EXPORT_SYMBOL_GPL drivers/gpio/gpio-generic 0xcd94e949 bgpio_remove +EXPORT_SYMBOL_GPL drivers/gpio/gpio-max730x 0x3710dd84 __max730x_probe +EXPORT_SYMBOL_GPL drivers/gpio/gpio-max730x 0xc767fb86 __max730x_remove +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x3f8359f3 drm_class_device_register +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0x6b4ab8a3 drm_vm_open_locked +EXPORT_SYMBOL_GPL drivers/gpu/drm/drm 0xd9ca8fee 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 0x2b2c59ae i915_release_power_well +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 0x96108893 i915_request_power_well +EXPORT_SYMBOL_GPL drivers/gpu/drm/i915/i915 0xe7237b0b i915_gpu_turbo_disable +EXPORT_SYMBOL_GPL drivers/gpu/drm/ttm/ttm 0x09d3e0b8 ttm_dma_populate +EXPORT_SYMBOL_GPL drivers/gpu/drm/ttm/ttm 0x2ae52ab0 ttm_dma_unpopulate +EXPORT_SYMBOL_GPL drivers/gpu/drm/ttm/ttm 0xf8b7f4d7 ttm_dma_page_alloc_debugfs +EXPORT_SYMBOL_GPL drivers/hid/hid 0x046404ea hidraw_disconnect +EXPORT_SYMBOL_GPL drivers/hid/hid 0x05495392 hid_debug +EXPORT_SYMBOL_GPL drivers/hid/hid 0x0f8d7cf5 hid_dump_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0x1457eed6 hid_open_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0x19d050dd hid_debug_event +EXPORT_SYMBOL_GPL drivers/hid/hid 0x1ddd4715 hid_add_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0x211f56ff hid_register_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0x31c6b6eb hidinput_find_field +EXPORT_SYMBOL_GPL drivers/hid/hid 0x3ab1744d hidinput_count_leds +EXPORT_SYMBOL_GPL drivers/hid/hid 0x4906a967 hid_snto32 +EXPORT_SYMBOL_GPL drivers/hid/hid 0x4c06f8a6 hid_set_field +EXPORT_SYMBOL_GPL drivers/hid/hid 0x5c85bf43 __hid_register_driver +EXPORT_SYMBOL_GPL drivers/hid/hid 0x5f7e8da5 hid_ignore +EXPORT_SYMBOL_GPL drivers/hid/hid 0x63b2317a hid_resolv_usage +EXPORT_SYMBOL_GPL drivers/hid/hid 0x6a3f88a8 hidinput_disconnect +EXPORT_SYMBOL_GPL drivers/hid/hid 0x6a644d30 hidinput_connect +EXPORT_SYMBOL_GPL drivers/hid/hid 0x7cb4be07 hidinput_calc_abs_res +EXPORT_SYMBOL_GPL drivers/hid/hid 0x8045f0bb hid_output_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0x86ac0a2a hid_dump_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0x91786dbe hidinput_report_event +EXPORT_SYMBOL_GPL drivers/hid/hid 0x91e7578d hid_validate_values +EXPORT_SYMBOL_GPL drivers/hid/hid 0x9a626ee8 hid_alloc_report_buf +EXPORT_SYMBOL_GPL drivers/hid/hid 0x9dbfbc5b hid_connect +EXPORT_SYMBOL_GPL drivers/hid/hid 0xa30a692e hid_unregister_driver +EXPORT_SYMBOL_GPL drivers/hid/hid 0xa7c9bef4 hid_destroy_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0xac029f03 hid_parse_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0xaf2f1cc0 hid_check_keys_pressed +EXPORT_SYMBOL_GPL drivers/hid/hid 0xb055bf78 hid_disconnect +EXPORT_SYMBOL_GPL drivers/hid/hid 0xb436e6ea hid_dump_input +EXPORT_SYMBOL_GPL drivers/hid/hid 0xb7c85e19 hid_input_report +EXPORT_SYMBOL_GPL drivers/hid/hid 0xd2c7ab52 hid_dump_field +EXPORT_SYMBOL_GPL drivers/hid/hid 0xd54cf561 hidraw_connect +EXPORT_SYMBOL_GPL drivers/hid/hid 0xd70fa01d hidinput_get_led_field +EXPORT_SYMBOL_GPL drivers/hid/hid 0xd813559e hid_allocate_device +EXPORT_SYMBOL_GPL drivers/hid/hid 0xe126a862 hid_report_raw_event +EXPORT_SYMBOL_GPL drivers/hid/hid 0xf9d75610 hidraw_report_event +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat 0x2f622ea1 roccat_disconnect +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat 0x8c4181ec roccat_report_event +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat 0xc9b7e877 roccat_connect +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat-common 0x2166f5c4 roccat_common2_send +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat-common 0xcd5b40ce roccat_common2_receive +EXPORT_SYMBOL_GPL drivers/hid/hid-roccat-common 0xf4badf34 roccat_common2_send_with_status +EXPORT_SYMBOL_GPL drivers/hid/hid-sensor-hub 0x0c169719 sensor_hub_input_attr_get_raw_value +EXPORT_SYMBOL_GPL drivers/hid/hid-sensor-hub 0x11a10391 sensor_hub_remove_callback +EXPORT_SYMBOL_GPL drivers/hid/hid-sensor-hub 0x4b99f751 sensor_hub_input_get_attribute_info +EXPORT_SYMBOL_GPL drivers/hid/hid-sensor-hub 0x9a06c471 sensor_hub_set_feature +EXPORT_SYMBOL_GPL drivers/hid/hid-sensor-hub 0xd6ba1b31 sensor_hub_get_feature +EXPORT_SYMBOL_GPL drivers/hid/hid-sensor-hub 0xe45aac33 sensor_hub_register_callback +EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0x01fd453e usbhid_lookup_quirk +EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0x2f6f5e9d usbhid_set_leds +EXPORT_SYMBOL_GPL drivers/hid/usbhid/usbhid 0x743f0e39 hiddev_hid_event +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x0170e0bc hsi_put_controller +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x19650053 hsi_alloc_msg +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x237e794d hsi_unregister_controller +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x47d34e5a hsi_register_port_event +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x61e48f23 hsi_unregister_port_event +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x6aa66c38 hsi_claim_port +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x8936252d hsi_register_controller +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0x9ccabe9d hsi_register_client_driver +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0xb961b033 hsi_event +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0xbf5bff5c hsi_alloc_controller +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0xce12b13c hsi_async +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0xda88a4fe hsi_release_port +EXPORT_SYMBOL_GPL drivers/hsi/hsi 0xdd3887b2 hsi_free_msg +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0x2e392951 vmbus_driver_unregister +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0x358fafa5 vmbus_prep_negotiate_resp +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0x37f0e11c vmbus_sendpacket_pagebuffer +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0x46a417ca vmbus_proto_version +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0x7dc03453 vmbus_get_outgoing_channel +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0x9b065019 vmbus_teardown_gpadl +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0xa1c7c737 vmbus_recvpacket_raw +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0xad9d5bd6 vmbus_sendpacket_multipagebuffer +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0xadf057ad __vmbus_driver_register +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0xb6cc7949 vmbus_open +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0xe5ad866e vmbus_set_sc_create_callback +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0xebae55d0 vmbus_are_subchannels_present +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0xf0adb537 vmbus_establish_gpadl +EXPORT_SYMBOL_GPL drivers/hv/hv_vmbus 0xffabbe50 vmbus_close +EXPORT_SYMBOL_GPL drivers/hwmon/adt7x10 0x126c3bb0 adt7x10_probe +EXPORT_SYMBOL_GPL drivers/hwmon/adt7x10 0x6d32bf09 adt7x10_dev_pm_ops +EXPORT_SYMBOL_GPL drivers/hwmon/adt7x10 0x75ef8c08 adt7x10_remove +EXPORT_SYMBOL_GPL drivers/hwmon/pmbus/pmbus_core 0x084e5135 pmbus_check_word_register +EXPORT_SYMBOL_GPL drivers/hwmon/pmbus/pmbus_core 0x0f98ef56 pmbus_clear_cache +EXPORT_SYMBOL_GPL drivers/hwmon/pmbus/pmbus_core 0x1e477d9c pmbus_read_byte_data +EXPORT_SYMBOL_GPL drivers/hwmon/pmbus/pmbus_core 0x26c5a4f2 pmbus_set_page +EXPORT_SYMBOL_GPL drivers/hwmon/pmbus/pmbus_core 0x28da65b7 pmbus_check_byte_register +EXPORT_SYMBOL_GPL drivers/hwmon/pmbus/pmbus_core 0x35de1289 pmbus_write_byte +EXPORT_SYMBOL_GPL drivers/hwmon/pmbus/pmbus_core 0x3d93c3f4 pmbus_read_word_data +EXPORT_SYMBOL_GPL drivers/hwmon/pmbus/pmbus_core 0x46c471d4 pmbus_get_driver_info +EXPORT_SYMBOL_GPL drivers/hwmon/pmbus/pmbus_core 0x46f9d198 pmbus_do_probe +EXPORT_SYMBOL_GPL drivers/hwmon/pmbus/pmbus_core 0x4b06efba pmbus_write_word_data +EXPORT_SYMBOL_GPL drivers/hwmon/pmbus/pmbus_core 0x53fb1c33 pmbus_do_remove +EXPORT_SYMBOL_GPL drivers/hwmon/pmbus/pmbus_core 0xfe24e973 pmbus_clear_faults +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0x1c1ddb67 i2c_dw_disable_int +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0x2b6237b6 i2c_dw_enable +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0x2f92ab75 i2c_dw_clear_int +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0x3b300f43 i2c_dw_func +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0x5477f73e i2c_dw_init +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0x5bb1170b i2c_dw_isr +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0x98aae2b9 i2c_dw_is_enabled +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0xbd596c7d i2c_dw_xfer +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0xc86ea9cb i2c_dw_read_comp_param +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-designware-core 0xd7a7d4dc i2c_dw_disable +EXPORT_SYMBOL_GPL drivers/i2c/busses/i2c-nforce2 0x0f097ee0 nforce2_smbus +EXPORT_SYMBOL_GPL drivers/i2c/i2c-mux 0x210703ee i2c_add_mux_adapter +EXPORT_SYMBOL_GPL drivers/i2c/i2c-mux 0x710c14de i2c_del_mux_adapter +EXPORT_SYMBOL_GPL drivers/i2c/i2c-smbus 0x15640b99 i2c_setup_smbus_alert +EXPORT_SYMBOL_GPL drivers/i2c/i2c-smbus 0xa22cd48c i2c_handle_smbus_alert +EXPORT_SYMBOL_GPL drivers/iio/adc/ad_sigma_delta 0x0d00b21d ad_sd_set_comm +EXPORT_SYMBOL_GPL drivers/iio/adc/ad_sigma_delta 0x3a445e27 ad_sigma_delta_single_conversion +EXPORT_SYMBOL_GPL drivers/iio/adc/ad_sigma_delta 0x73b633fb ad_sd_init +EXPORT_SYMBOL_GPL drivers/iio/adc/ad_sigma_delta 0xaff78f4f ad_sd_validate_trigger +EXPORT_SYMBOL_GPL drivers/iio/adc/ad_sigma_delta 0xb18b9ed8 ad_sd_setup_buffer_and_trigger +EXPORT_SYMBOL_GPL drivers/iio/adc/ad_sigma_delta 0xbdc4d9b1 ad_sd_write_reg +EXPORT_SYMBOL_GPL drivers/iio/adc/ad_sigma_delta 0xc5e4b59a ad_sd_calibrate_all +EXPORT_SYMBOL_GPL drivers/iio/adc/ad_sigma_delta 0xdbf57003 ad_sd_cleanup_buffer_and_trigger +EXPORT_SYMBOL_GPL drivers/iio/adc/ad_sigma_delta 0xea8be9e2 ad_sd_read_reg +EXPORT_SYMBOL_GPL drivers/iio/imu/adis_lib 0x1f151e29 adis_read_reg +EXPORT_SYMBOL_GPL drivers/iio/imu/adis_lib 0x2a1870b3 adis_initial_startup +EXPORT_SYMBOL_GPL drivers/iio/imu/adis_lib 0x2ab5c8bc adis_cleanup_buffer_and_trigger +EXPORT_SYMBOL_GPL drivers/iio/imu/adis_lib 0x2cb91f93 adis_setup_buffer_and_trigger +EXPORT_SYMBOL_GPL drivers/iio/imu/adis_lib 0x434759a6 adis_write_reg +EXPORT_SYMBOL_GPL drivers/iio/imu/adis_lib 0x5e352c45 adis_init +EXPORT_SYMBOL_GPL drivers/iio/imu/adis_lib 0x64be2ea3 adis_update_scan_mode +EXPORT_SYMBOL_GPL drivers/iio/imu/adis_lib 0x73bb9a10 adis_single_conversion +EXPORT_SYMBOL_GPL drivers/iio/imu/adis_lib 0xa8b5bd1e adis_check_status +EXPORT_SYMBOL_GPL drivers/iio/imu/adis_lib 0xe1a27842 adis_remove_trigger +EXPORT_SYMBOL_GPL drivers/iio/imu/adis_lib 0xeab2ed9a adis_reset +EXPORT_SYMBOL_GPL drivers/iio/imu/adis_lib 0xf7d909d5 adis_probe_trigger +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x0ba99675 iio_channel_get +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x18d287b7 iio_convert_raw_to_processed +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x23781034 iio_channel_release_all +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x267c0508 iio_channel_release_all_cb +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x26f6b499 iio_str_to_fixpoint +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x2a1fab3c iio_channel_stop_all_cb +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x39dc9478 iio_channel_cb_get_channels +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x3df8e7f8 iio_read_channel_raw +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x458e9f43 iio_get_channel_type +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x4c7ffdf4 iio_enum_available_read +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x4c8463ce iio_validate_scan_mask_onehot +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x562053d6 iio_enum_read +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x5bb8595b iio_update_demux +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x61b2b1aa iio_map_array_register +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x7a711aef iio_channel_start_all_cb +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x83a9e0d8 iio_enum_write +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x86dc886b iio_read_channel_scale +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0x9908b528 iio_channel_release +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xa282cc0b iio_scan_mask_query +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xa834174f iio_channel_get_all +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xadacb0d0 iio_map_array_unregister +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xb79bedd5 iio_channel_get_all_cb +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xc6de023f iio_dealloc_pollfunc +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xc704d79d iio_alloc_pollfunc +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xd9f5f96e iio_read_channel_processed +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xe6dd9bf0 iio_push_to_buffers +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xf156a270 iio_update_buffers +EXPORT_SYMBOL_GPL drivers/iio/industrialio 0xf7e4a094 iio_scan_mask_set +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 0x8b496162 input_ff_create_memless +EXPORT_SYMBOL_GPL drivers/input/misc/adxl34x 0x49a4fcbd adxl34x_remove +EXPORT_SYMBOL_GPL drivers/input/misc/adxl34x 0x66535a18 adxl34x_suspend +EXPORT_SYMBOL_GPL drivers/input/misc/adxl34x 0xce48b819 adxl34x_probe +EXPORT_SYMBOL_GPL drivers/input/misc/adxl34x 0xe4586827 adxl34x_resume +EXPORT_SYMBOL_GPL drivers/input/touchscreen/cyttsp4_core 0x78b102c4 cyttsp4_pm_ops +EXPORT_SYMBOL_GPL drivers/input/touchscreen/cyttsp4_core 0xb7530886 cyttsp4_probe +EXPORT_SYMBOL_GPL drivers/input/touchscreen/cyttsp4_core 0xfbcd9bc9 cyttsp4_remove +EXPORT_SYMBOL_GPL drivers/input/touchscreen/cyttsp_core 0x9730a29e cyttsp_probe +EXPORT_SYMBOL_GPL drivers/input/touchscreen/cyttsp_core 0xde45dc0b cyttsp_pm_ops +EXPORT_SYMBOL_GPL drivers/input/touchscreen/cyttsp_core 0xf06685c4 cyttsp_remove +EXPORT_SYMBOL_GPL drivers/input/touchscreen/cyttsp_i2c_common 0x193faeb2 cyttsp_i2c_write_block_data +EXPORT_SYMBOL_GPL drivers/input/touchscreen/cyttsp_i2c_common 0x4f119132 cyttsp_i2c_read_block_data +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x182457c2 wm97xx_config_gpio +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x209854d1 wm97xx_set_suspend_mode +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x382cb752 wm97xx_unregister_mach_ops +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x3a4099c8 wm97xx_get_gpio +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x5c9ed337 wm97xx_reg_read +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x5f50f3c1 wm97xx_reg_write +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x6aaf861b wm97xx_read_aux_adc +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x746a2773 wm9713_codec +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0x90aea56d wm97xx_register_mach_ops +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xa57e3ab7 wm9705_codec +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xb5791fd8 wm97xx_set_gpio +EXPORT_SYMBOL_GPL drivers/input/touchscreen/wm97xx-ts 0xb8c027ed wm9712_codec +EXPORT_SYMBOL_GPL drivers/ipack/ipack 0x1635fe6f ipack_bus_register +EXPORT_SYMBOL_GPL drivers/ipack/ipack 0x2389fda5 ipack_device_del +EXPORT_SYMBOL_GPL drivers/ipack/ipack 0x6b7fd01e ipack_bus_unregister +EXPORT_SYMBOL_GPL drivers/ipack/ipack 0x7738801e ipack_get_device +EXPORT_SYMBOL_GPL drivers/ipack/ipack 0x963bf7d3 ipack_device_add +EXPORT_SYMBOL_GPL drivers/ipack/ipack 0xa0381dc8 ipack_device_init +EXPORT_SYMBOL_GPL drivers/ipack/ipack 0xa3ee41d4 ipack_driver_register +EXPORT_SYMBOL_GPL drivers/ipack/ipack 0xda1144e2 ipack_driver_unregister +EXPORT_SYMBOL_GPL drivers/ipack/ipack 0xf1f593eb ipack_put_device +EXPORT_SYMBOL_GPL drivers/isdn/capi/kernelcapi 0x23359aff unregister_capictr_notifier +EXPORT_SYMBOL_GPL drivers/isdn/capi/kernelcapi 0xce1414b2 register_capictr_notifier +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x005e5094 gigaset_isdn_rcv_err +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x075d6ed0 gigaset_shutdown +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x18b4ce83 gigaset_initcs +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x19ac769f gigaset_m10x_send_skb +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x1c5812ef gigaset_stop +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x3aa32f5f gigaset_fill_inbuf +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x454aa44f gigaset_debuglevel +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x4f2d5686 gigaset_handle_modem_response +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x524b7658 gigaset_skb_rcvd +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x5f59ec90 gigaset_blockdriver +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x64c96c0b gigaset_freedriver +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x772fd0ba gigaset_m10x_input +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x84030919 gigaset_initdriver +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0x9c40094b gigaset_add_event +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xa120e398 gigaset_start +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xa3151853 gigaset_dbg_buffer +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xceaca794 gigaset_if_receive +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xfb41ed79 gigaset_freecs +EXPORT_SYMBOL_GPL drivers/isdn/gigaset/gigaset 0xfb9d1fa2 gigaset_skb_sent +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0x0099c46d lp55xx_deinit_device +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0x10dd4b01 lp55xx_register_sysfs +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0x16ad5e6c lp55xx_update_bits +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0x17434cb3 lp55xx_of_populate_pdata +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0x1927f05b lp55xx_init_device +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0x44566ca7 lp55xx_register_leds +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0x56664084 lp55xx_unregister_sysfs +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0x78652fde lp55xx_unregister_leds +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0x8addfe2b lp55xx_is_extclk_used +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0xc3c9d650 lp55xx_write +EXPORT_SYMBOL_GPL drivers/leds/leds-lp55xx-common 0xfd8dbda1 lp55xx_read +EXPORT_SYMBOL_GPL drivers/leds/trigger/ledtrig-camera 0x749e05f2 ledtrig_flash_ctrl +EXPORT_SYMBOL_GPL drivers/leds/trigger/ledtrig-camera 0x7903e46e ledtrig_torch_ctrl +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x0ec17d44 __tracepoint_bcache_bypass_congested +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x26062738 __tracepoint_bcache_alloc_fail +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x3c72f62f closure_trylock +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x40c27b88 __tracepoint_bcache_cache_insert +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x43516248 closure_queue +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x49434eb7 closure_wait +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x4b207c80 __closure_delay +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x4c49fc16 __tracepoint_bcache_btree_node_split +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x51a15737 __tracepoint_bcache_btree_set_root +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x616b6217 __tracepoint_bcache_read +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x6907ac0d __tracepoint_bcache_request_end +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x70a6c1db do_closure_timer_init +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x7be42a1c __tracepoint_bcache_journal_replay_key +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x7e532a71 __tracepoint_bcache_btree_cache_cannibalize +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x829e9ce0 __closure_flush_sync +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x8a4afa11 __tracepoint_bcache_alloc_invalidate +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x914361f4 __tracepoint_bcache_journal_entry_full +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x9272fb0f __tracepoint_bcache_read_retry +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x938cc2b2 __tracepoint_bcache_btree_insert_key +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0x99a2fcb2 closure_sync +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xa649dd21 __tracepoint_bcache_btree_node_alloc +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xb157059f __tracepoint_bcache_gc_copy_collision +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xb2886f6c __closure_flush +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xb317649e __tracepoint_bcache_btree_node_alloc_fail +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xb493772a __tracepoint_bcache_gc_start +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xb834c124 __tracepoint_bcache_btree_write +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xbb1fc0a4 __tracepoint_bcache_journal_full +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xbc4fcb1e __tracepoint_bcache_write +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xc1474d91 __tracepoint_bcache_btree_read +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xc379085a __tracepoint_bcache_bypass_sequential +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xc5aed8ad __tracepoint_bcache_writeback_collision +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xc5f2fa43 __closure_lock +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xc7eda602 __tracepoint_bcache_btree_node_compact +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xce055cbe __tracepoint_bcache_btree_gc_coalesce +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xcff402ed closure_put +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xd80c0488 closure_sub +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xe20fe821 __tracepoint_bcache_gc_end +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xe24daf87 __tracepoint_bcache_gc_copy +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xe2ed0930 __tracepoint_bcache_btree_node_free +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xe3c17af1 __closure_wake_up +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xea2303e0 __tracepoint_bcache_journal_write +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xef1156ee __tracepoint_bcache_writeback +EXPORT_SYMBOL_GPL drivers/md/bcache/bcache 0xfc131205 __tracepoint_bcache_request_start +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x02b7e184 dm_bio_detain +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x1530ee4d dm_get_cell +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x175c84cd dm_cell_release_no_holder +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x17dd39d6 dm_deferred_set_create +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x2eb01e04 dm_deferred_set_destroy +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x3ce8d847 dm_bio_prison_free_cell +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x6791a44e dm_deferred_entry_dec +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0x75fc9935 dm_cell_release +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0xa5dba4ac dm_cell_error +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0xb6d5c65d dm_deferred_set_add_work +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0xb70b342a dm_bio_prison_destroy +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0xca2e3a88 dm_deferred_entry_inc +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0xd07683e4 dm_bio_prison_alloc_cell +EXPORT_SYMBOL_GPL drivers/md/dm-bio-prison 0xebd06eaf dm_bio_prison_create +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x0ad0dc4f dm_bufio_mark_buffer_dirty +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x6aba7f5e dm_bufio_get_block_number +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x6d3f57bd dm_bufio_get_client +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x74dcd98c dm_bufio_get_aux_data +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x7c381a76 dm_bufio_get_block_size +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x9310ba06 dm_bufio_release_move +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0x9c256008 dm_bufio_get_device_size +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0xa1d2413a dm_bufio_read +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0xa448e19f dm_bufio_prefetch +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0xa82b2066 dm_bufio_write_dirty_buffers +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0xafbda3f3 dm_bufio_new +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0xbb61ff40 dm_bufio_client_create +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0xc9a3422d dm_bufio_write_dirty_buffers_async +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0xcbb1bae2 dm_bufio_get +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0xd4bddf5c dm_bufio_issue_flush +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0xe6024e59 dm_bufio_release +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0xebcc64a4 dm_bufio_get_block_data +EXPORT_SYMBOL_GPL drivers/md/dm-bufio 0xeca7949e dm_bufio_client_destroy +EXPORT_SYMBOL_GPL drivers/md/dm-cache 0x0aec2ba2 dm_cache_policy_get_name +EXPORT_SYMBOL_GPL drivers/md/dm-cache 0x3a1dcb24 dm_cache_policy_create +EXPORT_SYMBOL_GPL drivers/md/dm-cache 0x8799d39d dm_cache_policy_unregister +EXPORT_SYMBOL_GPL drivers/md/dm-cache 0x9869a73c dm_cache_policy_destroy +EXPORT_SYMBOL_GPL drivers/md/dm-cache 0xc230a5bf dm_cache_policy_register +EXPORT_SYMBOL_GPL drivers/md/dm-cache 0xcbc168cd dm_cache_policy_get_version +EXPORT_SYMBOL_GPL drivers/md/dm-cache 0xffee90af dm_cache_policy_get_hint_size +EXPORT_SYMBOL_GPL drivers/md/dm-multipath 0x8f4fa26c dm_register_path_selector +EXPORT_SYMBOL_GPL drivers/md/dm-multipath 0x9f29abaf dm_unregister_path_selector +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x01d2f9ac dm_rh_recovery_start +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x37e48b04 dm_rh_inc_pending +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x38efaf5a dm_region_hash_destroy +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x3a18389a dm_rh_update_states +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x4430764e dm_rh_region_to_sector +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x44e47ff1 dm_region_hash_create +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x45ab972a dm_rh_dec +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x7774620f dm_rh_stop_recovery +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x7d053fc5 dm_rh_start_recovery +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0x9d752393 dm_rh_dirty_log +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xa53387c7 dm_rh_flush +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xa68e1f06 dm_rh_get_state +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xa83588eb dm_rh_recovery_end +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xaa35d594 dm_rh_mark_nosync +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xbe38a431 dm_rh_recovery_prepare +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xd1701d48 dm_rh_delay +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xd8aa4284 dm_rh_region_context +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xda48aee1 dm_rh_bio_to_region +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xfad9d53a dm_rh_get_region_size +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xfc62ef4e dm_rh_get_region_key +EXPORT_SYMBOL_GPL drivers/md/dm-region-hash 0xfd93482e dm_rh_recovery_in_flight +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x0054f69d dm_tm_pre_commit +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x01445176 dm_btree_find_highest_key +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x17c36f29 dm_bm_checksum +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x1cac81ac dm_bitset_clear_bit +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x1e3f728d dm_block_data +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x2025e954 dm_array_info_init +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x2c112836 dm_block_location +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x2f74609d dm_bitset_test_bit +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x32b5f546 dm_array_empty +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x371fd72c dm_bm_flush_and_unlock +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x38c75c44 dm_bitset_empty +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x40f7bd91 dm_tm_inc +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x42dbdfc3 dm_tm_read_lock +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x49b35849 dm_sm_disk_create +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x55b4bd4d dm_tm_create_with_sm +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x5e6aea80 dm_btree_walk +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x62c1b9ee dm_array_walk +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x688d422d dm_bm_block_size +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x68fae9d2 dm_disk_bitset_init +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x72289260 dm_block_manager_destroy +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x7ade1071 dm_tm_destroy +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x7b047bd9 dm_tm_create_non_blocking_clone +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x80c89b3d dm_tm_unlock +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x827a42f4 dm_tm_open_with_sm +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x832bf228 dm_array_del +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x858c8d94 dm_array_set_value +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x89f1e1cc dm_btree_insert_notify +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x966a8838 dm_btree_lookup +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x9e798e22 dm_bm_set_read_only +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0x9f624559 dm_sm_disk_open +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xa0bbbb49 dm_bitset_resize +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xa13861b4 dm_bitset_del +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xa87c5b4d dm_array_resize +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xaee02382 dm_btree_empty +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xafeda29f dm_bm_write_lock_zero +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xb7bad799 dm_bm_unlock +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xb846b5a9 dm_block_manager_create +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xb9a6ecf8 dm_tm_dec +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xbd50ebbb dm_btree_del +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xca40abd5 dm_btree_insert +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xd041d62b dm_array_get_value +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xd163cade dm_tm_commit +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xd29923fb dm_tm_shadow_block +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xe44b4b9b dm_bitset_set_bit +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xed1e1f96 dm_btree_remove +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xf375d009 dm_bm_write_lock +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xf475af48 dm_bitset_flush +EXPORT_SYMBOL_GPL drivers/md/persistent-data/dm-persistent-data 0xf5455120 dm_bm_read_lock +EXPORT_SYMBOL_GPL drivers/md/raid1 0xeab595b1 md_raid1_congested +EXPORT_SYMBOL_GPL drivers/md/raid10 0xd0da1a2e md_raid10_congested +EXPORT_SYMBOL_GPL drivers/md/raid456 0xe47a21c3 md_raid5_congested +EXPORT_SYMBOL_GPL drivers/media/common/b2c2/b2c2-flexcop 0x66c0289a b2c2_flexcop_debug +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0x1dc2d9b7 saa7146_pgtable_alloc +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0x3d73fe58 saa7146_vfree_destroy_pgtable +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0x63144e7b saa7146_wait_for_debi_done +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0x6b4afce3 saa7146_pgtable_free +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0xaadf340a saa7146_i2c_adapter_prepare +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0xabce5c3d saa7146_pgtable_build_single +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0xcd5cba10 saa7146_vmalloc_build_pgtable +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0xd10d5a19 saa7146_unregister_extension +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0xe3cd9b5c saa7146_debug +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0xf328dc05 saa7146_register_extension +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146 0xf7b458f7 saa7146_setgpio +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146_vv 0x20c04c39 saa7146_set_hps_source_and_sync +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146_vv 0x2dff407c saa7146_register_device +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146_vv 0x2e1fdc9d saa7146_vv_init +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146_vv 0x40faa230 saa7146_stop_preview +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146_vv 0x50075d92 saa7146_start_preview +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146_vv 0xbcdaabf5 saa7146_unregister_device +EXPORT_SYMBOL_GPL drivers/media/common/saa7146/saa7146_vv 0xbd83c1fd saa7146_vv_release +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x0fa54566 smscore_register_client +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x12770a75 smscore_set_board_id +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x15cb048b smscore_putbuffer +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x17514619 smscore_onresponse +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x21e36bf2 smscore_registry_getmode +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x2a4816f0 sms_board_power +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x37d91069 smsendian_handle_tx_message +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x420c3c4c smscore_get_board_id +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x45284ae9 smsendian_handle_rx_message +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x508743c7 smscore_start_device +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x57af6d72 sms_board_lna_control +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x5941230f sms_board_setup +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x6d9932da smscore_unregister_hotplug +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x74ee9098 sms_board_load_modules +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x7c576277 smsendian_handle_message_header +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x844539ae sms_get_board +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x8d46fcf1 smscore_register_hotplug +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x8de097ee sms_board_led_feedback +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x99a81ab3 smsclient_sendrequest +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0x9c2225ed smscore_translate_msg +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0xb9a06c12 sms_board_event +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0xbbdb5c42 smscore_unregister_client +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0xbdb1bbe9 smscore_register_device +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0xbe83dc19 smscore_get_device_mode +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0xc5961d59 smscore_getbuffer +EXPORT_SYMBOL_GPL drivers/media/common/siano/smsmdtv 0xcc44b416 smscore_unregister_device +EXPORT_SYMBOL_GPL drivers/media/dvb-frontends/tda18271c2dd 0x0deba9b2 tda18271c2dd_attach +EXPORT_SYMBOL_GPL drivers/media/pci/cx88/cx88xx 0xbf8d3963 cx88_setup_xc3028 +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x1bfc58e0 mantis_ca_exit +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x29e18b31 mantis_pci_exit +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x31849996 mantis_ca_init +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x34c34992 mantis_gpio_set_bits +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x6f27f13f mantis_frontend_soft_reset +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x81b7169f mantis_i2c_init +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x84b013d9 mantis_pci_init +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x8811df62 mantis_frontend_power +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x8b952e5c mantis_dma_exit +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0x9a16d510 mantis_dvb_init +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0xbac7ffce mantis_get_mac +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0xc223d8d8 mantis_i2c_exit +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0xc801e01b mantis_dma_init +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0xd6d4b9d7 mantis_uart_exit +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0xd9821b57 mantis_dvb_exit +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0xeb613d77 mantis_stream_control +EXPORT_SYMBOL_GPL drivers/media/pci/mantis/mantis_core 0xfb0de21c mantis_uart_init +EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0x0b564705 saa7134_g_ctrl_internal +EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0x0e93c36c saa7134_queryctrl +EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0x2a08bc57 saa7134_ts_qops +EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0x2e0dd5d4 saa7134_s_ctrl_internal +EXPORT_SYMBOL_GPL drivers/media/pci/saa7134/saa7134 0x85a55282 saa7134_s_std_internal +EXPORT_SYMBOL_GPL drivers/media/pci/ttpci/budget-core 0x06fd8595 ttpci_budget_debiwrite +EXPORT_SYMBOL_GPL drivers/media/pci/ttpci/budget-core 0x3701eae2 ttpci_budget_irq10_handler +EXPORT_SYMBOL_GPL drivers/media/pci/ttpci/budget-core 0x3bd7c597 ttpci_budget_set_video_port +EXPORT_SYMBOL_GPL drivers/media/pci/ttpci/budget-core 0x7948c222 budget_debug +EXPORT_SYMBOL_GPL drivers/media/pci/ttpci/budget-core 0x7e7f4be4 ttpci_budget_deinit +EXPORT_SYMBOL_GPL drivers/media/pci/ttpci/budget-core 0x89a44a76 ttpci_budget_debiread +EXPORT_SYMBOL_GPL drivers/media/pci/ttpci/budget-core 0xa07290ef ttpci_budget_init_hooks +EXPORT_SYMBOL_GPL drivers/media/pci/ttpci/budget-core 0xf5c4d8b0 ttpci_budget_init +EXPORT_SYMBOL_GPL drivers/media/radio/shark2 0x0be20b0d radio_tea5777_exit +EXPORT_SYMBOL_GPL drivers/media/radio/shark2 0x8f62dbef radio_tea5777_init +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x1c6ca745 rc_g_keycode_from_table +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x37c071b0 rc_map_unregister +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x4915c9db 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 0x7bbcaa1a rc_keyup +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x81aac2bf rc_map_register +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0x9b3cc2cf rc_repeat +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xa5b8c7f7 rc_keydown +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xab85ceb6 rc_unregister_device +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xac0d2c72 ir_raw_event_set_idle +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xaedc846b rc_register_device +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xbd56dff3 rc_keydown_notimeout +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xbeb76c9c rc_map_get +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xcf746f9c ir_raw_event_store +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xe9911623 ir_raw_event_store_with_filter +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xeb9eba6a rc_allocate_device +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xf02ab99d rc_free_device +EXPORT_SYMBOL_GPL drivers/media/rc/rc-core 0xfc93c460 ir_raw_event_handle +EXPORT_SYMBOL_GPL drivers/media/tuners/mt2063 0x1172947c mt2063_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/mt20xx 0xb2cd0b4c microtune_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/mxl5007t 0x3258248b mxl5007t_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/r820t 0x5a2832c4 r820t_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/tda18271 0x29cbcf7d tda18271_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/tda827x 0x3696d4c9 tda827x_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/tda8290 0x206fc42d tda829x_probe +EXPORT_SYMBOL_GPL drivers/media/tuners/tda8290 0xd81cdaf1 tda829x_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/tda9887 0xc275e5fd tda9887_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/tea5761 0x5b3fcfd3 tea5761_autodetection +EXPORT_SYMBOL_GPL drivers/media/tuners/tea5761 0x94808acd tea5761_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/tea5767 0x34c49dac tea5767_autodetection +EXPORT_SYMBOL_GPL drivers/media/tuners/tea5767 0xc902bf43 tea5767_attach +EXPORT_SYMBOL_GPL drivers/media/tuners/tuner-simple 0x70d661a0 simple_tuner_attach +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x017ea7c7 cx231xx_tuner_callback +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x02fc118c cx231xx_disable656 +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x0a874f46 cx231xx_send_usb_command +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x20289565 cx231xx_uninit_isoc +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x2a09cad4 cx231xx_set_mode +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x2bae6a97 cx231xx_demod_reset +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x49c680ae cx231xx_enable_i2c_port_3 +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x5910acef cx231xx_dev_init +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x61349e2d cx231xx_dev_uninit +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x78b58d9f cx231xx_init_bulk +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0x95b11c39 cx231xx_uninit_vbi_isoc +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0xb8690ff4 cx231xx_capture_start +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0xbb5ccdd6 cx231xx_init_isoc +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0xc864fb20 cx231xx_init_vbi_isoc +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0xc9212e74 cx231xx_set_alt_setting +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0xe160f63a is_fw_load +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0xe1e426ed cx231xx_send_gpio_cmd +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0xe275fdf4 cx231xx_enable656 +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0xefb86abe cx231xx_uninit_bulk +EXPORT_SYMBOL_GPL drivers/media/usb/cx231xx/cx231xx 0xf0414227 cx231xx_unmute_audio +EXPORT_SYMBOL_GPL drivers/media/usb/dvb-usb-v2/mxl111sf-demod 0xcd827d65 mxl111sf_demod_attach +EXPORT_SYMBOL_GPL drivers/media/usb/dvb-usb-v2/mxl111sf-tuner 0x25211111 mxl111sf_tuner_attach +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x25a071fe em28xx_write_regs +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x32295433 em28xx_read_ac97 +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x36a416fc em28xx_write_ac97 +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x3ab08473 em28xx_audio_analog_set +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x489c6219 em28xx_write_reg_bits +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x4f7e2039 em28xx_stop_urbs +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x525e46d7 em28xx_set_mode +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x75e5b74e em28xx_uninit_usb_xfer +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x7a7c4a21 em28xx_init_usb_xfer +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0x7fc8652c em28xx_tuner_callback +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0xafea4db8 em28xx_alloc_urbs +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0xbf5cbc61 em28xx_gpio_set +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0xcb70bd7a em28xx_write_reg +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0xd9d982ce em28xx_audio_setup +EXPORT_SYMBOL_GPL drivers/media/usb/em28xx/em28xx 0xee796f36 em28xx_read_reg +EXPORT_SYMBOL_GPL drivers/media/usb/tm6000/tm6000 0x1e4631b2 tm6000_set_reg_mask +EXPORT_SYMBOL_GPL drivers/media/usb/tm6000/tm6000 0x2309a6d6 tm6000_xc5000_callback +EXPORT_SYMBOL_GPL drivers/media/usb/tm6000/tm6000 0x476ab7dd tm6000_set_reg +EXPORT_SYMBOL_GPL drivers/media/usb/tm6000/tm6000 0x89b611dd tm6000_debug +EXPORT_SYMBOL_GPL drivers/media/usb/tm6000/tm6000 0xdff8e89d tm6000_tuner_callback +EXPORT_SYMBOL_GPL drivers/media/usb/tm6000/tm6000 0xe1dd5629 tm6000_set_audio_bitrate +EXPORT_SYMBOL_GPL drivers/media/usb/tm6000/tm6000 0xe9b27d9f tm6000_get_reg +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-common 0x01c483a9 v4l2_get_timestamp +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-common 0x3815a9d8 v4l2_spi_subdev_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-common 0x3f32075f v4l2_i2c_new_subdev_board +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-common 0x53105839 v4l2_detect_cvt +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-common 0x5d9d3491 v4l_match_dv_timings +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-common 0x6f344bb9 v4l2_calc_aspect_ratio +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-common 0x7eaf8e7a v4l2_detect_gtf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-common 0x813f3de4 v4l2_find_nearest_format +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-common 0x818ffec8 v4l2_i2c_new_subdev +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-common 0xa91057e5 v4l2_i2c_subdev_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-common 0xafc7fb27 v4l2_spi_new_subdev +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-common 0xeb349f6a v4l2_i2c_subdev_addr +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-common 0xf2a353ac v4l2_i2c_tuner_addrs +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-common 0xf5ef842e v4l_bound_align_image +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-int-device 0x40e6b669 v4l2_int_ioctl_0 +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-int-device 0x5dce3b76 v4l2_int_device_unregister +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-int-device 0x79c9b4b3 v4l2_int_ioctl_1 +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-int-device 0xa5228b24 v4l2_int_device_try_attach_all +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-int-device 0xd170092a v4l2_int_device_register +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x02f9bf15 v4l2_m2m_create_bufs +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x0d0de1ee v4l2_m2m_poll +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x17eb0eee v4l2_m2m_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x22d9d43c v4l2_m2m_streamon +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x33b1e346 v4l2_m2m_querybuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0x46d31816 v4l2_m2m_buf_remove +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0xb98768c1 v4l2_m2m_next_buf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0xc250dc37 v4l2_m2m_qbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0xc6fca5ad v4l2_m2m_release +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0xc755ffa7 v4l2_m2m_dqbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0xd50278bc v4l2_m2m_ctx_release +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0xda5e5b7a v4l2_m2m_streamoff +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0xdbf32534 v4l2_m2m_ctx_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0xe7df0007 v4l2_m2m_expbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0xf06d3a8c v4l2_m2m_reqbufs +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/v4l2-mem2mem 0xf62f53f2 v4l2_m2m_buf_queue +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x010ab226 videobuf_read_stop +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x1b8177ae videobuf_streamoff +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x1b9c6f73 videobuf_mmap_mapper +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x1efffa9c __videobuf_mmap_setup +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x1f5d3beb videobuf_dqbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x2b1b1076 videobuf_streamon +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x2eab2e3e videobuf_mmap_free +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x346a4f8e videobuf_iolock +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x4c387f19 videobuf_queue_to_vaddr +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x63a805bb videobuf_waiton +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x6440b72e videobuf_read_stream +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x656d982d videobuf_alloc_vb +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x68745227 videobuf_reqbufs +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x76225beb videobuf_qbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x8ec80a7d videobuf_read_one +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0x9cd72952 videobuf_querybuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0xa202267b videobuf_queue_cancel +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0xbdfcd7ec videobuf_next_field +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0xc7ad18fc videobuf_queue_core_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0xdb1f264e videobuf_queue_is_busy +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0xdc5e3977 videobuf_stop +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0xe96d7045 videobuf_poll_stream +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0xf4079197 videobuf_read_start +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-core 0xfd3f3c71 videobuf_mmap_setup +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-contig 0x4eeb2d41 videobuf_dma_contig_free +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-contig 0xa0c885b8 videobuf_to_dma_contig +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-contig 0xec340f78 videobuf_queue_dma_contig_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-sg 0x24bdbf5b videobuf_dma_free +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-sg 0x490840fc videobuf_dma_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-sg 0x4cdc65e7 videobuf_dma_init_kernel +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-sg 0x4da3560c videobuf_queue_sg_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-sg 0x553a86d0 videobuf_sg_alloc +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-sg 0x7e0e5ca8 videobuf_dma_unmap +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-sg 0x937de4ad videobuf_dma_map +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-sg 0xd298ef35 videobuf_dma_init_overlay +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-sg 0xe7e3c36e videobuf_dma_init_user +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-dma-sg 0xf5dfbfbe videobuf_to_dma +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-vmalloc 0x082fc3a5 videobuf_vmalloc_free +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-vmalloc 0x5294ebe1 videobuf_to_vmalloc +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf-vmalloc 0x56535207 videobuf_queue_vmalloc_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x05573684 vb2_queue_release +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x062c6e28 vb2_fop_release +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x0f607a5b vb2_fop_mmap +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x1ae69831 vb2_reqbufs +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x2d3e92d9 vb2_prepare_buf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x339ac98d vb2_ioctl_dqbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x5271eb76 vb2_fop_write +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x59b31ffa vb2_dqbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x5f86e7df vb2_poll +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x7132b93d vb2_ioctl_expbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x7453d5ef vb2_read +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x7d33e04b vb2_buffer_done +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x7fee1ec8 vb2_plane_cookie +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x86db77f4 vb2_queue_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0x94b656e1 vb2_ioctl_prepare_buf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0xa1524369 vb2_ioctl_querybuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0xa2c6be33 vb2_mmap +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0xa3e1d9ab vb2_ops_wait_finish +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0xa3f68529 vb2_ioctl_create_bufs +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0xa57ff18e vb2_fop_read +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0xa5abd8fa vb2_create_bufs +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0xacf0bc43 vb2_ioctl_streamon +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0xb9aed110 vb2_expbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0xbcda83ef vb2_fop_poll +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0xbfbc5fb8 vb2_qbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0xd024727b vb2_ioctl_reqbufs +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0xd3f5b4d3 vb2_ioctl_streamoff +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0xd4b4282a vb2_streamon +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0xd56f5144 vb2_plane_vaddr +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0xd93032bc vb2_ops_wait_prepare +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0xdcdceb98 vb2_write +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0xe808fb59 vb2_wait_for_all_buffers +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0xe8f0ccc9 vb2_streamoff +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-core 0xf04e569a vb2_ioctl_qbuf +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-dma-contig 0x24c31b99 vb2_dma_contig_memops +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-dma-contig 0x5bd5ee1e vb2_dma_contig_init_ctx +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-dma-contig 0xe57f0426 vb2_dma_contig_cleanup_ctx +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-dma-sg 0xc357bbf2 vb2_dma_sg_memops +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-memops 0x590f3415 vb2_put_vma +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-memops 0x6f212902 vb2_get_vma +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-memops 0x7de3f8dd vb2_get_contig_userptr +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-memops 0x9cd4b057 vb2_common_vm_ops +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videobuf2-vmalloc 0x2aadbeb6 vb2_vmalloc_memops +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x11439727 v4l2_fh_release +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x15c07531 v4l2_device_unregister_subdev +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x1de9bc05 v4l2_event_unsubscribe +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x229b2e5b v4l2_event_queue_fh +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x2ebb7fb9 v4l2_event_unsubscribe_all +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x443e7711 v4l2_device_disconnect +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x4a3ff840 v4l2_device_put +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x4d065fe5 v4l2_fh_add +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x51351b2d v4l2_event_pending +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x5a73ff4f v4l2_fh_del +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x6b6b3bb6 v4l2_fh_open +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x7435754d v4l2_device_register_subdev +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x755111bc v4l2_device_unregister +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x8168c847 v4l2_event_dequeue +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x8aa4c89b v4l2_fh_init +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0x9305a7a1 v4l2_event_queue +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xa37a8797 v4l2_device_register +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xac57fc66 v4l2_compat_ioctl32 +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xb404563e v4l2_event_subscribe +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xba3e5015 v4l2_device_register_subdev_nodes +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xbf11fa67 v4l2_device_set_name +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xe5f3be66 v4l2_fh_is_singular +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xe6591aa1 v4l2_event_subdev_unsubscribe +EXPORT_SYMBOL_GPL drivers/media/v4l2-core/videodev 0xf59be8fc v4l2_fh_exit +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x0a206491 i2o_dma_map_sg +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x0c63cb44 i2o_dma_map_single +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x16b74335 i2o_dma_free +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0x61d2e6a0 i2o_dma_alloc +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0xb7aa95fc i2o_sg_tablesize +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0xc33d339a i2o_pool_alloc +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0xd60b190f i2o_pool_free +EXPORT_SYMBOL_GPL drivers/message/i2o/i2o_core 0xe79ef463 i2o_dma_realloc +EXPORT_SYMBOL_GPL drivers/mfd/88pm80x 0x01069ac0 pm80x_regmap_config +EXPORT_SYMBOL_GPL drivers/mfd/88pm80x 0x65f96fae pm80x_init +EXPORT_SYMBOL_GPL drivers/mfd/88pm80x 0x864e7087 pm80x_pm_ops +EXPORT_SYMBOL_GPL drivers/mfd/88pm80x 0xd99fd720 pm80x_deinit +EXPORT_SYMBOL_GPL drivers/mfd/kempld-core 0x2ceea20b kempld_read8 +EXPORT_SYMBOL_GPL drivers/mfd/kempld-core 0x69ceadd8 kempld_write32 +EXPORT_SYMBOL_GPL drivers/mfd/kempld-core 0x9ee8d5be kempld_release_mutex +EXPORT_SYMBOL_GPL drivers/mfd/kempld-core 0xa95552c0 kempld_write16 +EXPORT_SYMBOL_GPL drivers/mfd/kempld-core 0xbdac5fac kempld_get_mutex +EXPORT_SYMBOL_GPL drivers/mfd/kempld-core 0xc879e7c1 kempld_write8 +EXPORT_SYMBOL_GPL drivers/mfd/kempld-core 0xcf4aaa8c kempld_read32 +EXPORT_SYMBOL_GPL drivers/mfd/kempld-core 0xd2c56e79 kempld_read16 +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-core 0x2b5f0018 lm3533_read +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-core 0xcc487589 lm3533_write +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-core 0xdeefb65b lm3533_update +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-ctrlbank 0x1d65145c lm3533_ctrlbank_enable +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-ctrlbank 0x44329dab lm3533_ctrlbank_get_brightness +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-ctrlbank 0x75b8059c lm3533_ctrlbank_disable +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-ctrlbank 0x991017af lm3533_ctrlbank_set_max_current +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-ctrlbank 0xa1216784 lm3533_ctrlbank_get_pwm +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-ctrlbank 0xa850159d lm3533_ctrlbank_set_brightness +EXPORT_SYMBOL_GPL drivers/mfd/lm3533-ctrlbank 0xaf92f98b lm3533_ctrlbank_set_pwm +EXPORT_SYMBOL_GPL drivers/mfd/mc13xxx-core 0x053a04ed mc13xxx_common_cleanup +EXPORT_SYMBOL_GPL drivers/mfd/mc13xxx-core 0x69071d88 mc13xxx_adc_do_conversion +EXPORT_SYMBOL_GPL drivers/mfd/mc13xxx-core 0x7dc8405f mc13xxx_common_init +EXPORT_SYMBOL_GPL drivers/mfd/mc13xxx-core 0xa7d1eb7d mc13xxx_variant_mc34708 +EXPORT_SYMBOL_GPL drivers/mfd/mc13xxx-core 0xb5de1e15 mc13xxx_variant_mc13783 +EXPORT_SYMBOL_GPL drivers/mfd/mc13xxx-core 0xf5645535 mc13xxx_variant_mc13892 +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x011525a5 pcf50633_reg_read +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x04e7c647 pcf50633_register_irq +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x2e9e90d1 pcf50633_read_block +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x36e31a69 pcf50633_irq_mask_get +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x6fac110e pcf50633_write_block +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x767b7312 pcf50633_irq_unmask +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0x9c8d8e59 pcf50633_reg_write +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xdaaaff48 pcf50633_reg_clear_bits +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xdb68d881 pcf50633_reg_set_bit_mask +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xe4c22a89 pcf50633_free_irq +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633 0xec3cebf3 pcf50633_irq_mask +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-adc 0x848636ce pcf50633_adc_sync_read +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-adc 0xdbd3568d pcf50633_adc_async_read +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0x1b991bae pcf50633_gpio_get +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0x5372e734 pcf50633_gpio_power_supply_set +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0x883deb7a pcf50633_gpio_invert_get +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0x9358eaf3 pcf50633_gpio_invert_set +EXPORT_SYMBOL_GPL drivers/mfd/pcf50633-gpio 0xa6945ee7 pcf50633_gpio_set +EXPORT_SYMBOL_GPL drivers/mfd/retu-mfd 0x01a33234 retu_write +EXPORT_SYMBOL_GPL drivers/mfd/retu-mfd 0x4fca3918 retu_read +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0x09c58f5b rtsx_pci_card_power_on +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0x24bd2725 rtsx_pci_write_register +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0x2b378f85 rtsx_pci_complete_unfinished_transfer +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0x2c4b8de4 rtsx_pci_write_phy_register +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0x33c14264 rtsx_pci_add_cmd +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0x42ece591 rtsx_pci_switch_output_voltage +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0x45aacd99 rtsx_pci_card_pull_ctl_disable +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0x4cea9d19 rtsx_pci_send_cmd_no_wait +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0x547685dc rtsx_pci_transfer_data +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0x5857a1d2 rtsx_pci_write_ppbuf +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0x5ab4bfae rtsx_pci_card_power_off +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0x5ca05371 rtsx_pci_stop_cmd +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0x74b977af rtsx_pci_switch_clock +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0x89b1ac12 rtsx_pci_card_exclusive_check +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0x8d7f3a5f rtsx_pci_card_exist +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0xb2bbcec8 rtsx_pci_read_register +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0xba38fd40 rtsx_pci_card_pull_ctl_enable +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0xcd4cac56 rtsx_pci_read_ppbuf +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0xd8368d36 rtsx_pci_read_phy_register +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0xe46a89ad rtsx_pci_start_run +EXPORT_SYMBOL_GPL drivers/mfd/rtsx_pci 0xff8fd7e5 rtsx_pci_send_cmd +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x08dfba51 si476x_core_cmd_intb_pin_cfg +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x0acfc9f6 si476x_core_cmd_fm_tune_freq +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x0bff290f si476x_core_cmd_power_up +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x0e49b2f1 si476x_core_cmd_dig_audio_pin_cfg +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x180728f5 devm_regmap_init_si476x +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x2016a8b3 si476x_core_cmd_am_rsq_status +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x25721172 si476x_core_is_powered_up +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x28960eb4 si476x_core_cmd_func_info +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x33995ee9 si476x_core_cmd_am_acf_status +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x3fb3b3af si476x_core_cmd_set_property +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x425e186b si476x_core_cmd_ic_link_gpo_ctl_pin_cfg +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x47682302 si476x_core_cmd_ana_audio_pin_cfg +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x5a9c6ea9 si476x_core_has_am +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x5c7980b9 si476x_core_is_a_primary_tuner +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x60213abc si476x_core_cmd_get_property +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x731bc36b si476x_core_cmd_fm_phase_div_status +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x73aee7c7 si476x_core_cmd_fm_acf_status +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x759e11bd si476x_core_cmd_fm_rsq_status +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x7b30c8cf si476x_core_has_diversity +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x7f03dcbb si476x_core_cmd_am_seek_start +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x82a18c2c si476x_core_is_in_am_receiver_mode +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x82cc2dfc si476x_core_is_a_secondary_tuner +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x855f148f si476x_core_cmd_fm_seek_start +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x88ebef11 si476x_core_set_power_state +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x96a401de si476x_core_start +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0x9818e02d si476x_core_cmd_am_tune_freq +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xb54ef8b6 si476x_core_cmd_zif_pin_cfg +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xb699aad5 si476x_core_cmd_fm_rds_blockcount +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xc3a178b8 si476x_core_cmd_agc_status +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xd7068451 si476x_core_cmd_fm_rds_status +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xd7a89305 si476x_core_stop +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xd86efdda si476x_core_cmd_fm_phase_diversity +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xe37f4a8c si476x_core_i2c_xfer +EXPORT_SYMBOL_GPL drivers/mfd/si476x-core 0xf2191588 si476x_core_cmd_power_down +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x53578541 sm501_unit_power +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0x68f2b9a7 sm501_modify_reg +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0xe4000d8a sm501_set_clock +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0xe758e50a sm501_misc_control +EXPORT_SYMBOL_GPL drivers/mfd/sm501 0xee21ba40 sm501_find_clock +EXPORT_SYMBOL_GPL drivers/mfd/ti_am335x_tscadc 0x19020606 am335x_tsc_se_clr +EXPORT_SYMBOL_GPL drivers/mfd/ti_am335x_tscadc 0x9d5ff92b am335x_tsc_se_update +EXPORT_SYMBOL_GPL drivers/mfd/ti_am335x_tscadc 0xb9689df2 am335x_tsc_se_set +EXPORT_SYMBOL_GPL drivers/mfd/tps65217 0x000ac447 tps65217_clear_bits +EXPORT_SYMBOL_GPL drivers/mfd/tps65217 0x0810dd17 tps65217_reg_read +EXPORT_SYMBOL_GPL drivers/mfd/tps65217 0x916ab065 tps65217_set_bits +EXPORT_SYMBOL_GPL drivers/mfd/tps65217 0xa49f1c41 tps65217_reg_write +EXPORT_SYMBOL_GPL drivers/mfd/ucb1400_core 0x6d31d22a ucb1400_adc_read +EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0x509fc3aa cb710_pci_update_config_reg +EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0x8afce19c cb710_sg_dwiter_write_next_block +EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0x955f9b40 cb710_sg_dwiter_read_next_block +EXPORT_SYMBOL_GPL drivers/misc/cb710/cb710 0xbe20e117 cb710_set_irq_handler +EXPORT_SYMBOL_GPL drivers/misc/eeprom/eeprom_93cx6 0x27cb133b eeprom_93cx6_multiread +EXPORT_SYMBOL_GPL drivers/misc/eeprom/eeprom_93cx6 0x63d2ff63 eeprom_93cx6_wren +EXPORT_SYMBOL_GPL drivers/misc/eeprom/eeprom_93cx6 0x822222db eeprom_93cx6_write +EXPORT_SYMBOL_GPL drivers/misc/eeprom/eeprom_93cx6 0x98bb5a22 eeprom_93cx6_read +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x2106fb61 enclosure_component_register +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x36390aa7 enclosure_find +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x39d35a92 enclosure_add_device +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0x455eb88d enclosure_for_each_device +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0xb3eff554 enclosure_remove_device +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0xcc7f8152 enclosure_unregister +EXPORT_SYMBOL_GPL drivers/misc/enclosure 0xfb456b9c enclosure_register +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0x3b7a7bef lis3lv02d_init_device +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0x5a7a1138 lis3lv02d_remove_fs +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0x7203a2cc lis3lv02d_poweron +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0x7435b767 lis3lv02d_init_dt +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0xc1e95507 lis3lv02d_joystick_disable +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0xc25bfe3e lis3_dev +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0xd8ee0525 lis3lv02d_poweroff +EXPORT_SYMBOL_GPL drivers/misc/lis3lv02d/lis3lv02d 0xe52739ff lis3lv02d_joystick_enable +EXPORT_SYMBOL_GPL drivers/misc/mei/mei 0x281c0b0e mei_cl_recv +EXPORT_SYMBOL_GPL drivers/misc/mei/mei 0x2bac3363 mei_stop +EXPORT_SYMBOL_GPL drivers/misc/mei/mei 0x2cd2b63d mei_cl_get_drvdata +EXPORT_SYMBOL_GPL drivers/misc/mei/mei 0x2e630b4e mei_cl_remove_device +EXPORT_SYMBOL_GPL drivers/misc/mei/mei 0x5ba36584 mei_deregister +EXPORT_SYMBOL_GPL drivers/misc/mei/mei 0x60dd90e9 mei_device_init +EXPORT_SYMBOL_GPL drivers/misc/mei/mei 0x65e062bf __mei_cl_driver_register +EXPORT_SYMBOL_GPL drivers/misc/mei/mei 0x6b625841 mei_cl_enable_device +EXPORT_SYMBOL_GPL drivers/misc/mei/mei 0x72fdeb18 mei_cl_set_drvdata +EXPORT_SYMBOL_GPL drivers/misc/mei/mei 0x79692069 mei_reset +EXPORT_SYMBOL_GPL drivers/misc/mei/mei 0x82cc6292 mei_cl_driver_unregister +EXPORT_SYMBOL_GPL drivers/misc/mei/mei 0x863b1d47 mei_start +EXPORT_SYMBOL_GPL drivers/misc/mei/mei 0x86c36e91 mei_cl_register_event_cb +EXPORT_SYMBOL_GPL drivers/misc/mei/mei 0x8bbd3a53 mei_irq_compl_handler +EXPORT_SYMBOL_GPL drivers/misc/mei/mei 0x94ca0e17 mei_cl_send +EXPORT_SYMBOL_GPL drivers/misc/mei/mei 0xb13e31b5 mei_register +EXPORT_SYMBOL_GPL drivers/misc/mei/mei 0xc48c2a23 mei_cl_disable_device +EXPORT_SYMBOL_GPL drivers/misc/mei/mei 0xd5c21e7e mei_cl_add_device +EXPORT_SYMBOL_GPL drivers/misc/mei/mei 0xe947a5f0 mei_irq_write_handler +EXPORT_SYMBOL_GPL drivers/misc/mei/mei 0xfa68e422 mei_irq_read_handler +EXPORT_SYMBOL_GPL drivers/misc/ti-st/st_drv 0x329a1d60 st_unregister +EXPORT_SYMBOL_GPL drivers/misc/ti-st/st_drv 0xfa818db8 st_register +EXPORT_SYMBOL_GPL drivers/misc/vmw_vmci/vmw_vmci 0x0f6680ea vmci_qpair_produce_buf_ready +EXPORT_SYMBOL_GPL drivers/misc/vmw_vmci/vmw_vmci 0x1152e318 vmci_qpair_get_produce_indexes +EXPORT_SYMBOL_GPL drivers/misc/vmw_vmci/vmw_vmci 0x13aa5a5d vmci_datagram_create_handle +EXPORT_SYMBOL_GPL drivers/misc/vmw_vmci/vmw_vmci 0x1872c7af vmci_qpair_produce_free_space +EXPORT_SYMBOL_GPL drivers/misc/vmw_vmci/vmw_vmci 0x1a195863 vmci_context_get_priv_flags +EXPORT_SYMBOL_GPL drivers/misc/vmw_vmci/vmw_vmci 0x31f6ad8f vmci_qpair_peekv +EXPORT_SYMBOL_GPL drivers/misc/vmw_vmci/vmw_vmci 0x3ef56cd5 vmci_qpair_alloc +EXPORT_SYMBOL_GPL drivers/misc/vmw_vmci/vmw_vmci 0x4b630dac vmci_get_context_id +EXPORT_SYMBOL_GPL drivers/misc/vmw_vmci/vmw_vmci 0x4ba5c46b vmci_qpair_peek +EXPORT_SYMBOL_GPL drivers/misc/vmw_vmci/vmw_vmci 0x50a255c9 vmci_doorbell_create +EXPORT_SYMBOL_GPL drivers/misc/vmw_vmci/vmw_vmci 0x53c20507 vmci_qpair_enquev +EXPORT_SYMBOL_GPL drivers/misc/vmw_vmci/vmw_vmci 0x612df9ae vmci_qpair_detach +EXPORT_SYMBOL_GPL drivers/misc/vmw_vmci/vmw_vmci 0x69ef87ff vmci_datagram_destroy_handle +EXPORT_SYMBOL_GPL drivers/misc/vmw_vmci/vmw_vmci 0x6cc1a5f7 vmci_datagram_create_handle_priv +EXPORT_SYMBOL_GPL drivers/misc/vmw_vmci/vmw_vmci 0x722d488a vmci_event_unsubscribe +EXPORT_SYMBOL_GPL drivers/misc/vmw_vmci/vmw_vmci 0x76f1d5c5 vmci_is_context_owner +EXPORT_SYMBOL_GPL drivers/misc/vmw_vmci/vmw_vmci 0x7d540b50 vmci_qpair_consume_free_space +EXPORT_SYMBOL_GPL drivers/misc/vmw_vmci/vmw_vmci 0x81d61eef vmci_qpair_dequeue +EXPORT_SYMBOL_GPL drivers/misc/vmw_vmci/vmw_vmci 0x9624c58c vmci_datagram_send +EXPORT_SYMBOL_GPL drivers/misc/vmw_vmci/vmw_vmci 0x9973b9b2 vmci_qpair_consume_buf_ready +EXPORT_SYMBOL_GPL drivers/misc/vmw_vmci/vmw_vmci 0x9d16164a vmci_send_datagram +EXPORT_SYMBOL_GPL drivers/misc/vmw_vmci/vmw_vmci 0xccbb53d1 vmci_doorbell_notify +EXPORT_SYMBOL_GPL drivers/misc/vmw_vmci/vmw_vmci 0xcf5ed7ef vmci_event_subscribe +EXPORT_SYMBOL_GPL drivers/misc/vmw_vmci/vmw_vmci 0xcff91c6e vmci_qpair_dequev +EXPORT_SYMBOL_GPL drivers/misc/vmw_vmci/vmw_vmci 0xdac94780 vmci_qpair_get_consume_indexes +EXPORT_SYMBOL_GPL drivers/misc/vmw_vmci/vmw_vmci 0xe67343c1 vmci_qpair_enqueue +EXPORT_SYMBOL_GPL drivers/misc/vmw_vmci/vmw_vmci 0xe7e7c107 vmci_doorbell_destroy +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x25cce751 sdhci_disable_irq_wakeups +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x863f55de sdhci_free_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0x952f019c sdhci_suspend_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xb267f0b8 sdhci_runtime_suspend_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xbc95d91a sdhci_resume_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xd8f65614 sdhci_enable_irq_wakeups +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xdd7f96cc sdhci_alloc_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xe212c239 sdhci_add_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xe3665aab sdhci_remove_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci 0xf625576b sdhci_runtime_resume_host +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci-pltfm 0x1a1e821d sdhci_get_of_property +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci-pltfm 0x3df00789 sdhci_pltfm_unregister +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci-pltfm 0x581f1d2e sdhci_pltfm_register +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci-pltfm 0x72b7418a sdhci_pltfm_init +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci-pltfm 0x844e127c sdhci_pltfm_free +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci-pltfm 0x8b1fa11b sdhci_pltfm_clk_get_max_clock +EXPORT_SYMBOL_GPL drivers/mmc/host/sdhci-pltfm 0xe6ce3623 sdhci_pltfm_pmops +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0001 0x229c04f2 cfi_cmdset_0200 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0001 0xdf822164 cfi_cmdset_0003 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0001 0xe0ab048c cfi_cmdset_0001 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0002 0x26b51e16 cfi_cmdset_0701 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0002 0xab1e9a40 cfi_cmdset_0006 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0002 0xd54cd190 cfi_cmdset_0002 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_cmdset_0020 0x51d1d517 cfi_cmdset_0020 +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_util 0x35019665 cfi_qry_present +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_util 0x7a94e2e1 cfi_qry_mode_off +EXPORT_SYMBOL_GPL drivers/mtd/chips/cfi_util 0xf0f6f4ae cfi_qry_mode_on +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x0465acaa mtd_device_unregister +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x05bc2b45 mtd_erase +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x05f0fb0d mtd_get_device_size +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x07e2517d get_mtd_device_nm +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x0a07191a mtd_is_partition +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x1154729e mtd_panic_write +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x1dade15d mtd_device_parse_register +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x1f2b4f1b mount_mtd +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x2726bdec mtd_kmalloc_up_to +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x33b1a756 mtd_lock_user_prot_reg +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x398d017a mtd_read_fact_prot_reg +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x45728636 register_mtd_user +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x4ebe778c __put_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x4fd6a1e9 mtd_erase_callback +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x570a4bcf kill_mtd_super +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x58be79f3 __mtd_next_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x5b3e04bb __get_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x615c2e85 put_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x65eeece9 mtd_add_partition +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x67fafd25 mtd_block_isbad +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x73941fc5 deregister_mtd_parser +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x79863d16 mtd_read_oob +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x7e3d7cfd mtd_get_user_prot_info +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x8dbe95cf mtd_lock +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x8ecbfbc2 mtd_get_unmapped_area +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x9401c360 mtd_unpoint +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0x9e424cf2 mtd_block_markbad +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xab465d70 mtd_unlock +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xafb54a22 mtd_table_mutex +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xb0904381 mtd_point +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xb698a07f mtd_read_user_prot_reg +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xbb385850 mtd_write_user_prot_reg +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xc1033b28 register_mtd_parser +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xcdbcd90d mtd_del_partition +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xd63f6b40 unregister_mtd_user +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xd8fa7c2a mtd_is_locked +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xdffd5a94 mtd_read +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xe9c607be mtd_get_fact_prot_info +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xefff7b1a mtd_writev +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xf277412d mtd_write +EXPORT_SYMBOL_GPL drivers/mtd/mtd 0xfab5c762 get_mtd_device +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0x490d08f8 deregister_mtd_blktrans +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0x4c4c13ad add_mtd_blktrans_dev +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0xb0be242a del_mtd_blktrans_dev +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0xb9da387d mtd_blktrans_cease_background +EXPORT_SYMBOL_GPL drivers/mtd/mtd_blkdevs 0xfd981d53 register_mtd_blktrans +EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0x50358eca nand_release +EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0x96d8fe30 nand_update_bbt +EXPORT_SYMBOL_GPL drivers/mtd/nand/nand 0xde4eb39e nand_wait_ready +EXPORT_SYMBOL_GPL drivers/mtd/nand/sm_common 0xa4145937 sm_register_device +EXPORT_SYMBOL_GPL drivers/mtd/onenand/onenand 0xa8b7b8d4 onenand_scan +EXPORT_SYMBOL_GPL drivers/mtd/onenand/onenand 0xc10c380c onenand_release +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x3657c4a1 ubi_leb_unmap +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x38e10c1d ubi_flush +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x42801d20 ubi_sync +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x47fad147 ubi_get_volume_info +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x4ba617c2 ubi_leb_read +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x5cfdd22d ubi_get_device_info +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x6305f0e1 ubi_leb_map +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x85a8ee76 ubi_unregister_volume_notifier +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x923c6399 ubi_leb_write +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0x98340f25 ubi_leb_change +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xa9e9e789 ubi_open_volume_nm +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xb62c40b1 ubi_is_mapped +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xbb68d5d0 ubi_open_volume_path +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xd0d29a03 ubi_do_get_device_info +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xe1b5ec97 ubi_close_volume +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xe941ba2f ubi_open_volume +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xf30c9eba ubi_leb_erase +EXPORT_SYMBOL_GPL drivers/mtd/ubi/ubi 0xf5ee9ba8 ubi_register_volume_notifier +EXPORT_SYMBOL_GPL drivers/net/can/c_can/c_can 0x198cd41a free_c_can_dev +EXPORT_SYMBOL_GPL drivers/net/can/c_can/c_can 0xb64d490f unregister_c_can_dev +EXPORT_SYMBOL_GPL drivers/net/can/c_can/c_can 0xe185d766 register_c_can_dev +EXPORT_SYMBOL_GPL drivers/net/can/c_can/c_can 0xf19e6a73 c_can_power_down +EXPORT_SYMBOL_GPL drivers/net/can/c_can/c_can 0xf91c7318 alloc_c_can_dev +EXPORT_SYMBOL_GPL drivers/net/can/c_can/c_can 0xfc78853f c_can_power_up +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x222c295a can_len2dlc +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x35563734 can_bus_off +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x478c38bb can_put_echo_skb +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x5bd88c5a devm_can_led_init +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x7262d0a8 safe_candev_priv +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x831b4e0f alloc_can_err_skb +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x831bb3b9 unregister_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x866c7f35 open_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x8b21868f alloc_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x95436f14 can_free_echo_skb +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0x9c247361 can_get_echo_skb +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xa9a2a14b free_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xb346573b can_dlc2len +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xc5d00026 alloc_can_skb +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xdc16f9f0 close_candev +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xe9dd8835 can_led_event +EXPORT_SYMBOL_GPL drivers/net/can/can-dev 0xfddf2380 register_candev +EXPORT_SYMBOL_GPL drivers/net/can/cc770/cc770 0x2249e08c unregister_cc770dev +EXPORT_SYMBOL_GPL drivers/net/can/cc770/cc770 0x8262acf8 register_cc770dev +EXPORT_SYMBOL_GPL drivers/net/can/cc770/cc770 0xe9cfb925 free_cc770dev +EXPORT_SYMBOL_GPL drivers/net/can/cc770/cc770 0xf1f6d380 alloc_cc770dev +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x0d5df22a register_sja1000dev +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x15571a19 alloc_sja1000dev +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x3964e348 unregister_sja1000dev +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x49ebd0d2 sja1000_interrupt +EXPORT_SYMBOL_GPL drivers/net/can/sja1000/sja1000 0x5416c63e free_sja1000dev +EXPORT_SYMBOL_GPL drivers/net/ethernet/cadence/macb 0x06cd930b macb_ioctl +EXPORT_SYMBOL_GPL drivers/net/ethernet/cadence/macb 0x0f87ec5b macb_get_stats +EXPORT_SYMBOL_GPL drivers/net/ethernet/cadence/macb 0x5e120d34 macb_mii_init +EXPORT_SYMBOL_GPL drivers/net/ethernet/cadence/macb 0x87757039 macb_set_hwaddr +EXPORT_SYMBOL_GPL drivers/net/ethernet/cadence/macb 0xa4e5422f macb_ethtool_ops +EXPORT_SYMBOL_GPL drivers/net/ethernet/cadence/macb 0xae958bce macb_get_hwaddr +EXPORT_SYMBOL_GPL drivers/net/ethernet/cadence/macb 0xcc981740 macb_set_rx_mode +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x07e47081 __mlx4_register_mac +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x0b4823ea mlx4_mr_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x0ce49700 mlx4_counter_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x0f71e5fb mlx4_unicast_detach +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x105c9cbe mlx4_cq_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x13a76d8b mlx4_fmr_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x13ac2c37 __mlx4_cmd +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x189cb7cc mlx4_wol_read +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x191e280a mlx4_unicast_attach +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x1df3bd17 mlx4_map_sw_to_hw_steering_mode +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x1f1993ad mlx4_srq_lookup +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x21b86a36 mlx4_flow_steer_promisc_add +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x2473bfed mlx4_flow_steer_promisc_remove +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x251a700a mlx4_fmr_enable +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x2a898c36 __mlx4_unregister_mac +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x2ce36e8a mlx4_mw_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x2dd11667 mlx4_free_hwq_res +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x330bdc13 mlx4_set_vf_spoofchk +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x36952d54 mlx4_mw_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x3be67c6d mlx4_counter_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x3de96875 mlx4_free_cmd_mailbox +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x45d8af30 mlx4_cq_resize +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x495a587a mlx4_qp_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x4f3620d4 mlx4_register_vlan +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x4ffe9449 mlx4_pd_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x5380deb5 mlx4_srq_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x57494173 mlx4_mtt_cleanup +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x5e5b612e mlx4_cq_modify +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x5e6f8a74 mlx4_xrcd_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x60cd060c mlx4_wol_write +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x6123752b mlx4_map_sw_to_hw_steering_id +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x6bcbe39d mlx4_SYNC_TPT +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x6d8dcf56 mlx4_db_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x6e5b60f3 mlx4_mtt_addr +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x722e1394 mlx4_cq_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x73eecbf9 mlx4_get_protocol_dev +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x75725ceb mlx4_multicast_promisc_add +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x79d66f6f mlx4_qp_query +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7e7ae258 mlx4_qp_to_ready +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x7fa9b894 mlx4_qp_reserve_range +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x811fb2f7 mlx4_buf_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x82f2001c mlx4_get_base_qpn +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x882a40c0 mlx4_flow_detach +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x8a675bee mlx4_alloc_cmd_mailbox +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x8b71cd02 mlx4_bf_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x92a4cdd7 mlx4_unicast_promisc_add +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x9373abae mlx4_srq_query +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x95c0b3e4 mlx4_uar_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x9ad1b4c0 mlx4_fmr_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x9b02b10a mlx4_bf_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x9df06861 mlx4_mtt_init +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0x9e431735 mlx4_alloc_hwq_res +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa2c5acd8 mlx4_buf_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa42853bf mlx4_mr_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa460f499 mlx4_uar_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa585dadf mlx4_buf_write_mtt +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa8e6ca62 mlx4_mr_enable +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa975858b mlx4_mw_enable +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xa99bfead mlx4_set_vf_vlan +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xac681572 mlx4_srq_arm +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xaf0854d1 mlx4_db_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xb0830edb mlx4_unregister_mac +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xb2accfad mlx4_write_mtt +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xb41a0642 mlx4_find_cached_vlan +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xb9d50ce3 mlx4_hw_rule_sz +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xba8f8e4e mlx4_pd_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xbb550fae mlx4_multicast_detach +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xbcb7f547 mlx4_unregister_vlan +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc04047ef mlx4_qp_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xc7b39af9 mlx4_map_phys_fmr +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xcbfe01bf mlx4_multicast_promisc_remove +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xcc2a3334 mlx4_CLOSE_PORT +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xce05b4cc mlx4_qp_release_range +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xceaca615 mlx4_multicast_attach +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xcfaf56b7 mlx4_set_vf_mac +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xcff7a4f9 mlx4_fmr_unmap +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd36e9703 __mlx4_replace_mac +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd67e41bf mlx4_get_vf_config +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd6be040f mlx4_set_vf_link_state +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xd8353083 mlx4_flow_attach +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xddad0e5b mlx4_INIT_PORT +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe165d116 mlx4_unicast_promisc_remove +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe3e8e8fe mlx4_srq_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xe9b425ff mlx4_qp_remove +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xecc9b46a mlx4_read_clock +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xee7eec9a mlx4_xrcd_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf2ccf9fb mlx4_unregister_interface +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xf9d4a9a6 mlx4_register_interface +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xfbeec891 mlx4_register_mac +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx4/mlx4_core 0xff18ba19 mlx4_qp_modify +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x2e59ab2b mlx5_core_qp_modify +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x491d4294 mlx5_set_port_caps +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x498f93f9 mlx5_core_xrcd_dealloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x5f9b6d82 mlx5_create_map_eq +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x6b4ef393 mlx5_core_destroy_qp +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7babd7a5 mlx5_core_create_qp +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x7da7bbcd mlx5_db_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x85edeff0 mlx5_db_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x8a7fee35 mlx5_core_access_reg +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x8d2e5edb mlx5_destroy_unmap_eq +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0x92a6283e mlx5_buf_free +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xa5534351 mlx5_core_qp_query +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xb9950b27 mlx5_core_eq_query +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xc13eb552 mlx5_core_mad_ifc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xd6c4ef56 mlx5_fill_page_array +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xe1ab9e13 mlx5_core_xrcd_alloc +EXPORT_SYMBOL_GPL drivers/net/ethernet/mellanox/mlx5/core/mlx5_core 0xe1d1c84e mlx5_buf_alloc +EXPORT_SYMBOL_GPL drivers/net/macvlan 0x317d3032 macvlan_common_newlink +EXPORT_SYMBOL_GPL drivers/net/macvlan 0x6062ce57 macvlan_dellink +EXPORT_SYMBOL_GPL drivers/net/macvlan 0x6dc1e5ef macvlan_start_xmit +EXPORT_SYMBOL_GPL drivers/net/macvlan 0xc8a7714b macvlan_link_register +EXPORT_SYMBOL_GPL drivers/net/macvlan 0xef0f55b9 macvlan_common_setup +EXPORT_SYMBOL_GPL drivers/net/macvtap 0xf201d473 macvtap_get_socket +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0x2688dfdc usbnet_cdc_bind +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0x3e4c64e4 usbnet_generic_cdc_bind +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0x8d949dee usbnet_cdc_unbind +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ether 0xce9fa318 usbnet_cdc_status +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ncm 0x30f8ac31 cdc_ncm_rx_verify_ndp16 +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ncm 0x57946e96 cdc_ncm_bind_common +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ncm 0x9cab00c4 cdc_ncm_rx_verify_nth16 +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ncm 0xad324a59 cdc_ncm_fill_tx_frame +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ncm 0xdfd0bf83 cdc_ncm_unbind +EXPORT_SYMBOL_GPL drivers/net/usb/cdc_ncm 0xfda5b076 cdc_ncm_select_altsetting +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x03f014f7 generic_rndis_bind +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x393ab19e rndis_command +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x71dcb3c3 rndis_unbind +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0x94a0463a rndis_rx_fixup +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0xbc7f04d1 rndis_status +EXPORT_SYMBOL_GPL drivers/net/usb/rndis_host 0xcd390b06 rndis_tx_fixup +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x01faa7ed usbnet_suspend +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x04f6a847 usbnet_open +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x1e5c2639 usbnet_probe +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x20597fd1 usbnet_nway_reset +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x29151bcb usbnet_get_settings +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x397b7cf4 usbnet_skb_return +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x3aa63383 usbnet_resume_rx +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x3d7ebcb8 usbnet_disconnect +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x5448423b usbnet_get_msglevel +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x5d63339a usbnet_tx_timeout +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x64ee2e19 usbnet_resume +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x6c917224 usbnet_start_xmit +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x7140236f usbnet_set_msglevel +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x7c25f3f6 usbnet_get_link +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x7d4d1b05 usbnet_read_cmd_nopm +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x7ef48554 usbnet_change_mtu +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0x98960f32 usbnet_set_settings +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xac795787 usbnet_write_cmd_nopm +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xb2639dc3 usbnet_status_start +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xb928c3b3 usbnet_read_cmd +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xced2a757 usbnet_status_stop +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xd313843b usbnet_stop +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xdee25fb5 usbnet_get_ethernet_addr +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xe34deb88 usbnet_write_cmd +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xe53d45cc usbnet_purge_paused_rxq +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xe891e2f1 usbnet_pause_rx +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xea60ae0c usbnet_write_cmd_async +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xee7d0ce5 usbnet_get_drvinfo +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xf1312024 usbnet_defer_kevent +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xf803e472 usbnet_get_endpoints +EXPORT_SYMBOL_GPL drivers/net/usb/usbnet 0xf8718956 usbnet_unlink_rx_urbs +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x24174e3a i2400m_reset +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x4c62b78e i2400m_error_recovery +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x72ef149d i2400m_post_reset +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x7d1451d5 i2400m_tx_msg_sent +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x811375c0 i2400m_netdev_setup +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x863df273 i2400m_setup +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x8f25fea3 i2400m_cmd_enter_powersave +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x9026a9ac i2400m_dev_bootstrap +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0x92302c82 i2400m_release +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xa4032a68 i2400m_tx_msg_get +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xab38a3a8 i2400m_init +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xb00b793c i2400m_bm_cmd_prepare +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xb1cdc99b i2400m_rx +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xe0454d2e i2400m_is_boot_barker +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xe6d41e9b i2400m_tx +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xeee94222 i2400m_pre_reset +EXPORT_SYMBOL_GPL drivers/net/wimax/i2400m/i2400m 0xfc76a7c8 i2400m_dev_reset_handle +EXPORT_SYMBOL_GPL drivers/net/wireless/cw1200/cw1200_core 0x433c8ace cw1200_core_probe +EXPORT_SYMBOL_GPL drivers/net/wireless/cw1200/cw1200_core 0x49b296a0 cw1200_can_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/cw1200/cw1200_core 0xe35146c4 cw1200_core_release +EXPORT_SYMBOL_GPL drivers/net/wireless/cw1200/cw1200_core 0xea90c9fb cw1200_irq_handler +EXPORT_SYMBOL_GPL drivers/net/wireless/ipw2x00/libipw 0x266dbf0d libipw_rx_any +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlegacy/iwlegacy 0x41c338d8 il_remove_station +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlegacy/iwlegacy 0x4a22c920 _il_grab_nic_access +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlegacy/iwlegacy 0x870bf336 il_mac_tx_last_beacon +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlegacy/iwlegacy 0xc0cd74c1 il_dealloc_bcast_stations +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlegacy/iwlegacy 0xcd345e2b il_prep_station +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x129e037d iwl_nvm_check_version +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x21890380 __iwl_warn +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x23b31849 iwl_notification_wait_notify +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x25b2527d iwl_read_prph +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x2c3b8c6f iwl_phy_db_init +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x35033c81 iwl_phy_db_free +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x40c07971 iwl_set_bits_mask_prph +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x4233b341 __iwl_crit +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x45a1d4bf iwl_read_direct32 +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x4bb44470 __iwl_dbg +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x569a220a iwl_opmode_register +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x59f50a3f iwl_write_direct32 +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x5c52e109 iwl_opmode_deregister +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x5d0a212e iwlwifi_mod_params +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x61155e03 iwl_read_eeprom +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x6715334b iwl_init_notification_wait +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x702f518e iwl_poll_bit +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x71445364 iwl_clear_bits_prph +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x776221bf iwl_send_phy_db_data +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x7cff80bb iwl_parse_eeprom_data +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x8c5d5ab3 iwl_phy_db_set_section +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x91b13b89 iwl_write_prph +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0x95795c57 iwl_abort_notification_waits +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0xabdf4c25 iwl_poll_direct_bit +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0xb041ed82 __iwl_info +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0xc4ca9d7e iwl_parse_nvm_data +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0xcf341945 iwl_notification_wait_init +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0xd1db77fe iwl_wait_notification +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0xdd3e32a4 iwl_remove_notification +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0xf57685ce __iwl_err +EXPORT_SYMBOL_GPL drivers/net/wireless/iwlwifi/iwlwifi 0xf7c1cca3 iwl_set_bits_prph +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x07b11bf8 lbs_host_sleep_cfg +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x0c30fcbb lbs_process_rxed_packet +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x2c8194e8 lbs_stop_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x406b63d0 lbs_notify_command_response +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x5abb3ecf lbs_host_to_card_done +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x5fdf38b8 lbs_disablemesh +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x646d426c lbs_cmd_copyback +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x6bf3b7ff __lbs_cmd +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x6ca8e142 lbs_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x70688c75 lbs_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x83932d7b lbs_start_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0x9943285e lbs_remove_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xbaa95019 lbs_get_firmware_async +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xd6ebbc31 lbs_queue_event +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xe0e86a7e lbs_send_tx_feedback +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xe3d2790d lbs_get_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xf258b4d3 lbs_add_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas/libertas 0xf64277de lbs_debug +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x10b9ac86 lbtf_cmd_copyback +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x17c7f868 __lbtf_cmd +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x1b996d8a lbtf_remove_card +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0x99cd6534 lbtf_cmd_response_rx +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xaabc7280 lbtf_rx +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xb2129bf8 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 0xe75cb737 lbtf_bcn_sent +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf 0xf0a00c16 lbtf_send_tx_feedback +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf_usb 0x54735609 if_usb_prog_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/libertas_tf/libertas_tf_usb 0x651142bc if_usb_reset_device +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x1b1b3055 mwifiex_disable_auto_ds +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x25e83cc4 mwifiex_process_sleep_confirm_resp +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x357719dc mwifiex_add_card +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x3e95a57a mwifiex_remove_card +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x4c7f7f53 mwifiex_add_virtual_intf +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x63aaf666 mwifiex_cancel_hs +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x64bf7db6 mwifiex_process_hs_config +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x69d6e40b mwifiex_main_process +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x70f6cab2 mwifiex_deauthenticate +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0x7b44b5e4 mwifiex_del_virtual_intf +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0xb49adb0e mwifiex_init_shutdown_fw +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0xbc1b75ac mwifiex_enable_hs +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0xc032054b mwifiex_write_data_complete +EXPORT_SYMBOL_GPL drivers/net/wireless/mwifiex/mwifiex 0xd5d4f2f8 mwifiex_handle_rx_packet +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x08127cd1 p54_free_skb +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x25fe9067 p54_parse_eeprom +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x42ae8f1e p54_unregister_common +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x581dc8ba p54_free_common +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x697993f7 p54_parse_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x7b679751 p54_register_common +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x80fe99ff p54_init_common +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0x9f7cf07d p54_read_eeprom +EXPORT_SYMBOL_GPL drivers/net/wireless/p54/p54common 0xd2e396de p54_rx +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x041536f7 rt2800_config_erp +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x1df04fce rt2800_config_filter +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x2fc9f263 rt2800_clear_beacon +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x42722c03 rt2800_ampdu_action +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x43e85f48 rt2800_config_intf +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x4988398a rt2800_vco_calibration +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x4ab5ba9a rt2800_gain_calibration +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x4c29630d rt2800_check_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x4da19669 rt2800_reset_tuner +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x546a7e4c rt2800_enable_radio +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x55427050 rt2800_disable_radio +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x5a10349b rt2800_disable_wpdma +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x64b1ba52 rt2800_wait_wpdma_ready +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x6919204a rt2800_efuse_detect +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x6a43d331 rt2800_process_rxwi +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x6f5d0536 rt2800_link_stats +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x6ffaacb4 rt2800_config_ant +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x74157e89 rt2800_write_tx_data +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x772f7a7c rt2800_write_beacon +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x7c1be960 rt2800_config_pairwise_key +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x7da6fdda rt2800_read_eeprom_efuse +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x86f5a9de rt2800_sta_add +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x8efb2dc8 rt2800_mcu_request +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0x8f4a05b8 rt2800_load_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xa2b20ef1 rt2800_get_survey +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xa41ec01d rt2800_sta_remove +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xa68b72b7 rt2800_rfkill_poll +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xaa159992 rt2800_probe_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xc9858f39 rt2800_get_tkip_seq +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xcb11783d rt2800_wait_csr_ready +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xcf2e0f0b rt2800_txdone_entry +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xd8da7e98 rt2800_config_shared_key +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xda8d8cf0 rt2800_link_tuner +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xdeed2322 rt2800_config +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xdef72870 rt2800_conf_tx +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xea3cfe37 rt2800_get_tsf +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2800lib 0xec3afdae rt2800_set_rts_threshold +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x05d86a36 rt2x00mac_tx_frames_pending +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x062e14c4 rt2x00queue_flush_queues +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x0a599365 rt2x00lib_pretbtt +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x0d0197bc rt2x00lib_dmastart +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x0fbb74d8 rt2x00mac_flush +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x1991aaa7 rt2x00queue_start_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x1ae7f935 rt2x00mac_conf_tx +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x1bdac6ec rt2x00mac_tx +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x25c5ef2d rt2x00lib_txdone_noinfo +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x29a95fa7 rt2x00queue_start_queues +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x34ed210d rt2x00lib_beacondone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x35af1008 rt2x00lib_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x3e295e90 rt2x00queue_stop_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x4482de5f rt2x00lib_rxdone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x46a565c5 rt2x00mac_rfkill_poll +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x46e702bc rt2x00mac_remove_interface +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x482a1579 rt2x00mac_sw_scan_complete +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x61c6618a rt2x00mac_sw_scan_start +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x6cd9bdc8 rt2x00lib_txdone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x6f54e8c0 rt2x00mac_stop +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x7084232c rt2x00lib_remove_dev +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x7c5c336d rt2x00mac_set_tim +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x7ef26b5e rt2x00mac_configure_filter +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x8153988f rt2x00mac_set_key +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x8c53014f rt2x00lib_dmadone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x9133425c rt2x00queue_stop_queues +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x92f5e408 rt2x00queue_get_entry +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x9305b40d rt2x00lib_get_bssidx +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x94268a6e rt2x00mac_get_antenna +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x959c0ebe rt2x00queue_for_each_entry +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x98ba89fc rt2x00mac_set_antenna +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x98d79371 rt2x00queue_flush_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x991bce74 rt2x00mac_start +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x9acc4907 rt2x00mac_add_interface +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0x9e513c98 rt2x00mac_get_ringparam +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xada15cb7 rt2x00lib_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xb02ce93c rt2x00queue_unmap_skb +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xb509f1b3 rt2x00mac_sta_remove +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xb85ff33a rt2x00mac_bss_info_changed +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xb96729a5 rt2x00mac_get_stats +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xbee99856 rt2x00queue_pause_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xc39a4c84 rt2x00mac_sta_add +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xca7b77ab rt2x00lib_probe_dev +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xcdfd68c2 rt2x00queue_unpause_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xe251cfa7 rt2x00queue_map_txskb +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00lib 0xe8d24ced rt2x00mac_config +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00mmio 0x0483c8af rt2x00mmio_rxdone +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00mmio 0x2f78c541 rt2x00mmio_regbusy_read +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00mmio 0x49f14e19 rt2x00mmio_uninitialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00mmio 0xbae640e3 rt2x00mmio_flush_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00mmio 0xc0a4a007 rt2x00mmio_initialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x27ac906e rt2x00pci_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0x971e8393 rt2x00pci_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xbb87a6d3 rt2x00pci_remove +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00pci 0xece6a2d2 rt2x00pci_probe +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x01dd819c rt2x00usb_vendor_req_buff_lock +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x073fba35 rt2x00usb_register_read_async +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x31066c3c rt2x00usb_probe +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x3848cab2 rt2x00usb_suspend +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x47129769 rt2x00usb_clear_entry +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x49df8418 rt2x00usb_disable_radio +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x5a2a702c rt2x00usb_kick_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x809c93df rt2x00usb_vendor_request_buff +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0x838a59b2 rt2x00usb_watchdog +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xa8bcbba8 rt2x00usb_flush_queue +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xb2e5b391 rt2x00usb_disconnect +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xd590f92a rt2x00usb_regbusy_read +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xe9dfec8c rt2x00usb_vendor_request +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xeaeb54a0 rt2x00usb_initialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xeda06ff9 rt2x00usb_resume +EXPORT_SYMBOL_GPL drivers/net/wireless/rt2x00/rt2x00usb 0xf29f751f rt2x00usb_uninitialize +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtl8192c/rtl8192c-common 0xb68a7a18 rtl92c_set_p2p_ps_offload_cmd +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0x0e33f1c9 rtl_ips_nic_on +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0x241dedc1 rtl_tid_to_ac +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0x285e184b rtl_init_core +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0x36c1e2e5 rtl_tx_mgmt_proc +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0x3786caeb rtl_p2p_info +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0x4c88c522 rtl_deinit_rfkill +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0x521a13e9 rtl_deinit_deferred_work +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0x52408d22 rtl_recognize_peer +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0x572c0b2d rtl_swlps_beacon +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0x5eea0838 read_efuse_byte +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0x6a7e16e5 rtl_dbgp_flag_init +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0x6b4de810 rtl_lps_change_work_callback +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0x73b25b06 rtl_ops +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0x8f0d3f0e rtl_deinit_core +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0xb396e9ae rtl_attribute_group +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0xc5f6a672 rtl_beacon_statistic +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0xcc3e2af1 rtl_is_special_data +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0xd2b1f48a rtl_global_var +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0xd62aa69c rtl_init_rx_config +EXPORT_SYMBOL_GPL drivers/net/wireless/rtlwifi/rtlwifi 0xf993cf47 rtl_action_proc +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wl1251/wl1251 0x157276e5 wl1251_init_ieee80211 +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wl1251/wl1251 0xefe65048 wl1251_free_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wl1251/wl1251 0xf138fd69 wl1251_alloc_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x01b6c6ea wl1271_cmd_test +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x06363f32 wlcore_event_channel_switch +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x10c4084e wlcore_event_rssi_trigger +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x110e73d4 wlcore_boot_run_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x19e89cc9 wlcore_translate_addr +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x1b5682f3 wl12xx_cmd_build_probe_req +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x20b033bf wl1271_acx_set_ht_capabilities +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x20b9fa66 wlcore_free_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x22bc6b27 wl1271_tx_flush +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x25b2a00c wl1271_acx_pm_config +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x2732e388 wlcore_scan_sched_scan_results +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x2b145932 wl1271_cmd_configure +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x2eae17f4 wl1271_acx_sleep_auth +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x319c53a7 wlcore_boot_upload_firmware +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x3625d01e wlcore_event_dummy_packet +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x3bfaf3f2 wl1271_acx_init_mem_config +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x4da3b16d wlcore_event_inactive_sta +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x53dff67d wl12xx_debug_level +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x5541a5b6 wlcore_event_sched_scan_completed +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x63ffafcf wlcore_set_partition +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x6f43c572 wlcore_event_max_tx_failure +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x71b43420 wlcore_probe +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x806a6154 wl1271_debugfs_update_stats +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x85bc6620 wlcore_alloc_hw +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x89ae53bc wlcore_synchronize_interrupts +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x9079bafa wlcore_disable_interrupts_nosync +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x90c4beb8 wlcore_disable_interrupts +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x91d56ca2 wl1271_cmd_data_path +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0x9949cb2d wlcore_enable_interrupts +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xa6edf446 wl1271_tx_min_rate_get +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xa9a27bec wlcore_scan_sched_scan_ssid_list +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xae2cde43 wlcore_event_roc_complete +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xbabeeafb wlcore_event_soft_gemini_sense +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xbf6bd7b1 wlcore_event_ba_rx_constraint +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xc1bcd256 wlcore_event_beacon_loss +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xc73cdfed wlcore_cmd_wait_for_event_or_timeout +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xcc3045fa wlcore_set_key +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xd140ac7a wl12xx_acx_mem_cfg +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xd316d87b wlcore_boot_upload_nvs +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xd39bb505 wl1271_format_buffer +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xdfac6474 wl1271_cmd_send +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xf2f458fc wlcore_remove +EXPORT_SYMBOL_GPL drivers/net/wireless/ti/wlcore/wlcore 0xf92ac369 wlcore_set_scan_chan_params +EXPORT_SYMBOL_GPL drivers/nfc/mei_phy 0x03192995 nfc_mei_phy_free +EXPORT_SYMBOL_GPL drivers/nfc/mei_phy 0x3b577068 nfc_mei_phy_disable +EXPORT_SYMBOL_GPL drivers/nfc/mei_phy 0x3ef6a602 nfc_mei_phy_alloc +EXPORT_SYMBOL_GPL drivers/nfc/mei_phy 0x8b4e7b3b nfc_mei_event_cb +EXPORT_SYMBOL_GPL drivers/nfc/mei_phy 0xc4993f08 mei_phy_ops +EXPORT_SYMBOL_GPL drivers/nfc/mei_phy 0xe82e19a5 nfc_mei_phy_enable +EXPORT_SYMBOL_GPL drivers/ntb/ntb 0x30934216 ntb_transport_max_size +EXPORT_SYMBOL_GPL drivers/ntb/ntb 0x32537aca ntb_transport_link_query +EXPORT_SYMBOL_GPL drivers/ntb/ntb 0x34688842 ntb_unregister_client +EXPORT_SYMBOL_GPL drivers/ntb/ntb 0x3d54dbfc ntb_transport_tx_enqueue +EXPORT_SYMBOL_GPL drivers/ntb/ntb 0x436098aa ntb_transport_link_down +EXPORT_SYMBOL_GPL drivers/ntb/ntb 0x75277907 ntb_transport_create_queue +EXPORT_SYMBOL_GPL drivers/ntb/ntb 0x77ae9ef1 ntb_register_client_dev +EXPORT_SYMBOL_GPL drivers/ntb/ntb 0x82e6c13d ntb_transport_qp_num +EXPORT_SYMBOL_GPL drivers/ntb/ntb 0x9c992c8f ntb_transport_link_up +EXPORT_SYMBOL_GPL drivers/ntb/ntb 0xc270dc24 ntb_transport_free_queue +EXPORT_SYMBOL_GPL drivers/ntb/ntb 0xc37d9036 ntb_transport_rx_remove +EXPORT_SYMBOL_GPL drivers/ntb/ntb 0xd08fd6e6 ntb_register_client +EXPORT_SYMBOL_GPL drivers/ntb/ntb 0xd40e7a02 ntb_transport_rx_enqueue +EXPORT_SYMBOL_GPL drivers/ntb/ntb 0xfe897ddd ntb_unregister_client_dev +EXPORT_SYMBOL_GPL drivers/platform/x86/asus-wmi 0x02e45c69 asus_wmi_register_driver +EXPORT_SYMBOL_GPL drivers/platform/x86/asus-wmi 0x8efb2d9b asus_wmi_unregister_driver +EXPORT_SYMBOL_GPL drivers/platform/x86/intel_ips 0x46809fa9 ips_link_to_i915_driver +EXPORT_SYMBOL_GPL drivers/platform/x86/mxm-wmi 0x232b5238 mxm_wmi_supported +EXPORT_SYMBOL_GPL drivers/platform/x86/mxm-wmi 0x61cdf799 mxm_wmi_call_mxds +EXPORT_SYMBOL_GPL drivers/platform/x86/mxm-wmi 0xe26032eb mxm_wmi_call_mxmx +EXPORT_SYMBOL_GPL drivers/platform/x86/wmi 0x3ecf6cfc wmi_install_notify_handler +EXPORT_SYMBOL_GPL drivers/platform/x86/wmi 0x561c634a wmi_evaluate_method +EXPORT_SYMBOL_GPL drivers/platform/x86/wmi 0x876d29f1 wmi_get_event_data +EXPORT_SYMBOL_GPL drivers/platform/x86/wmi 0xb5a6ebe2 wmi_remove_notify_handler +EXPORT_SYMBOL_GPL drivers/platform/x86/wmi 0xc9d4d6d1 wmi_has_guid +EXPORT_SYMBOL_GPL drivers/platform/x86/wmi 0xda29f8b0 wmi_set_block +EXPORT_SYMBOL_GPL drivers/platform/x86/wmi 0xfb882fb7 wmi_query_block +EXPORT_SYMBOL_GPL drivers/power/pcf50633-charger 0x41536c9d pcf50633_mbc_get_status +EXPORT_SYMBOL_GPL drivers/power/pcf50633-charger 0x509a4534 pcf50633_mbc_get_usb_online_status +EXPORT_SYMBOL_GPL drivers/power/pcf50633-charger 0xc635bbe8 pcf50633_mbc_usb_curlim_set +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0x012e0691 mc13xxx_fixed_regulator_ops +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0x2f71793e mc13xxx_fixed_regulator_set_voltage +EXPORT_SYMBOL_GPL drivers/regulator/mc13xxx-regulator-core 0xd9ba7696 mc13xxx_regulator_ops +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x41a607c6 wm8350_isink_set_flash +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x4b8e0fe2 wm8350_register_led +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x5585b823 wm8350_ldo_set_slot +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x79939e1d wm8350_dcdc25_set_mode +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0x9a9b45a6 wm8350_dcdc_set_slot +EXPORT_SYMBOL_GPL drivers/regulator/wm8350-regulator 0xdb261240 wm8350_register_regulator +EXPORT_SYMBOL_GPL drivers/regulator/wm8400-regulator 0x18040d13 wm8400_register_regulator +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x0a8f7f7b cxgbi_iscsi_init +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x0b385b63 cxgbi_iscsi_cleanup +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x0be41408 cxgbi_conn_init_pdu +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x0c994dfd cxgbi_sock_rcv_wr_ack +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x12502e12 cxgbi_set_conn_param +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x1a27ed98 cxgbi_sock_closed +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x1b720f16 cxgbi_conn_pdu_ready +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x1f26bce4 cxgbi_parse_pdu_itt +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x276e7694 cxgbi_get_host_param +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x2d6dcd81 cxgbi_device_register +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x3a5c4389 cxgbi_ddp_page_size_factor +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x41e04cab cxgbi_hbas_remove +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x420fc943 cxgbi_conn_tx_open +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x4c06675c cxgbi_ddp_cleanup +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x4f848d5c cxgbi_device_portmap_cleanup +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x526973ec cxgbi_sock_skb_entail +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x646cf0c7 cxgbi_sock_select_mss +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x675e9e65 cxgbi_create_conn +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x6d9177f0 cxgbi_sock_act_open_req_arp_failure +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x719784d6 cxgbi_sock_rcv_abort_rpl +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x7223fa1b cxgbi_ep_disconnect +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x7485c3fd cxgbi_cleanup_task +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x74a0cd57 cxgbi_device_portmap_create +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x76f44587 cxgbi_sock_fail_act_open +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x7fdb6004 cxgbi_device_unregister_all +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x8798cb61 cxgbi_sock_purge_wr_queue +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x87ccfb04 cxgbi_ddp_ppod_set +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x8a826405 cxgbi_ddp_init +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x8c2ba369 cxgbi_ddp_ppod_clear +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x976af08f cxgbi_ep_connect +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x993f33af cxgbi_set_host_param +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0x9e3aef27 cxgbi_get_conn_stats +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xa1f1146f cxgbi_bind_conn +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xa3384b62 cxgbi_sock_rcv_close_conn_rpl +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xa7d09c41 cxgbi_hbas_add +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xb53ec609 cxgbi_sock_check_wr_invariants +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xc8ac4772 cxgbi_ep_poll +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xcb385620 cxgbi_conn_alloc_pdu +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xd67d1f83 cxgbi_device_find_by_lldev +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xd760994c cxgbi_destroy_session +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xdc1e12f9 cxgbi_sock_free_cpl_skbs +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xddbb4074 cxgbi_conn_xmit_pdu +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xdebaa447 cxgbi_create_session +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xe55415cf cxgbi_device_unregister +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xe6bb5b10 cxgbi_sock_established +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xe6d532b8 cxgbi_sock_rcv_peer_close +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xef346615 cxgbi_attr_is_visible +EXPORT_SYMBOL_GPL drivers/scsi/cxgbi/libcxgbi 0xfa9e941e cxgbi_get_ep_param +EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0x004a7943 scsi_dh_activate +EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0x02ec2c8a scsi_register_device_handler +EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0x3050c8e5 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 0x62ef5905 scsi_dh_attached_handler_name +EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0x63847deb scsi_dh_attach +EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0x8f31034e scsi_unregister_device_handler +EXPORT_SYMBOL_GPL drivers/scsi/device_handler/scsi_dh 0xb971c735 scsi_dh_detach +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x0fb51275 fcoe_queue_timer +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x253d400d fcoe_ctlr_get_lesb +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x25bd5fbd fcoe_get_lesb +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x34f1e5b4 fcoe_fc_crc +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x364ca299 fcoe_link_speed_update +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x374c1e1c fcoe_wwn_from_mac +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x47900de7 fcoe_ctlr_device_add +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x5b2cb8d0 fcoe_clean_pending_queue +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x62b21dc9 fcoe_get_wwn +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x6665a3cb fcoe_get_paged_crc_eof +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x84b3d915 fcoe_wwn_to_str +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x8c4e63b0 fcoe_fcf_device_delete +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x981e053c fcoe_ctlr_device_delete +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0x9a9d2c10 fcoe_fcf_device_add +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xb023dafe fcoe_libfc_config +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xc2705b82 fcoe_check_wait_queue +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xd2461a2a __fcoe_get_lesb +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xe3dedc3b fcoe_validate_vport_create +EXPORT_SYMBOL_GPL drivers/scsi/fcoe/libfcoe 0xf26e3d49 fcoe_start_io +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0x5112b2c2 iscsi_boot_create_kset +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0x7a985521 iscsi_boot_create_ethernet +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0x9b333f80 iscsi_boot_destroy_kset +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0xa5777cbf iscsi_boot_create_host_kset +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0xe1e1f7c3 iscsi_boot_create_target +EXPORT_SYMBOL_GPL drivers/scsi/iscsi_boot_sysfs 0xf9e86c03 iscsi_boot_create_initiator +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x09704c1b iscsi_conn_bind +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x0beb4669 iscsi_session_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x0cde7392 __iscsi_complete_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x10904d25 iscsi_session_setup +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x12b2ad06 iscsi_switch_str_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x1b0d3ee0 iscsi_complete_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x21093446 iscsi_suspend_queue +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x2747dcc4 __iscsi_put_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x28a1aef9 iscsi_conn_setup +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x2eb88f8b iscsi_pool_init +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x3577d212 iscsi_conn_stop +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x4060726b iscsi_eh_target_reset +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x4298254b iscsi_conn_get_addr_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x47c218a3 iscsi_set_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x48ee82e2 iscsi_host_add +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x4a19c6c5 iscsi_target_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x4d5432cb iscsi_conn_queue_work +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x4fbd5cda iscsi_complete_scsi_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x64d3c785 iscsi_host_set_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x67ed3f64 iscsi_host_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x68a2e19c iscsi_eh_device_reset +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x6b5d48ac iscsi_put_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x6be4d4f5 iscsi_conn_start +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x746ad0df iscsi_prep_data_out_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x76bdb33a iscsi_host_free +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x7c1c0e26 iscsi_update_cmdsn +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x83dc68a7 iscsi_itt_to_ctask +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x891ec038 iscsi_session_recovery_timedout +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x893f78cf iscsi_verify_itt +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0x99f66fd4 iscsi_host_remove +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xa4832cf0 iscsi_pool_free +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xa8f62ea9 iscsi_itt_to_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xaba0056c iscsi_session_failure +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xb00d9866 iscsi_conn_teardown +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xb7733c0f iscsi_requeue_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xbed96345 iscsi_eh_recover_target +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xcb4e86b3 iscsi_conn_failure +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xce20b547 __iscsi_get_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xd7bc701b iscsi_queuecommand +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xd9301910 iscsi_eh_session_reset +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xde4c9c96 iscsi_conn_send_pdu +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xe4f64c3c iscsi_conn_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xe976bcb2 iscsi_eh_abort +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xec25c7a4 iscsi_host_get_param +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xef71308f iscsi_change_queue_depth +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xf641362d iscsi_session_teardown +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi 0xf9c49265 iscsi_suspend_tx +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x0d16f5b2 iscsi_tcp_r2tpool_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x16d79086 iscsi_tcp_cleanup_task +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x18b820e8 iscsi_tcp_task_xmit +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x21c21c99 iscsi_segment_seek_sg +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x49e01032 iscsi_tcp_dgst_header +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x4f03dded iscsi_tcp_conn_teardown +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x5024936c iscsi_tcp_recv_skb +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x705e3ff0 iscsi_tcp_set_max_r2t +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x7fe343c3 iscsi_tcp_conn_setup +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x87a31d71 iscsi_tcp_recv_segment_is_hdr +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x96bb4016 iscsi_tcp_segment_done +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0x97c8227a iscsi_tcp_segment_unmap +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xc442d4bb iscsi_tcp_task_init +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xccb4b6b7 iscsi_tcp_conn_get_stats +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xdc8f7822 iscsi_tcp_hdr_recv_prep +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xe0bdbc6d iscsi_tcp_r2tpool_free +EXPORT_SYMBOL_GPL drivers/scsi/libiscsi_tcp 0xe8b35b1b iscsi_segment_init_linear +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x0c191aa2 sas_phy_reset +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x0cdf7b6e sas_domain_release_transport +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x0cf66972 sas_register_ha +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x1d7ec791 sas_drain_work +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x232e455b sas_eh_bus_reset_handler +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x28bd2875 sas_request_addr +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x2c81cb73 sas_bios_param +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x31b9ffec sas_change_queue_type +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x56d6a769 sas_ssp_task_response +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x5e9b8dfb sas_target_destroy +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x6835606e sas_free_task +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x8801fe45 sas_unregister_ha +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x880585cd sas_task_abort +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0x8c7a09ab sas_slave_configure +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xb0422a59 sas_eh_device_reset_handler +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xbf1cdd88 sas_alloc_task +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xbfc716af sas_get_local_phy +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xc67ff6a6 sas_ioctl +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xdb02acdf sas_target_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xe36d429b sas_change_queue_depth +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xe3ed8a24 sas_domain_attach_transport +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xe7618d69 sas_ata_schedule_reset +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xe8ab2615 sas_alloc_slow_task +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xf5452b4e sas_queuecommand +EXPORT_SYMBOL_GPL drivers/scsi/libsas/libsas 0xf92b7075 sas_eh_abort_handler +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0x2d941ae3 srp_target_free +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0xaefb65dd srp_cmd_queue +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0xb0d39afa srp_transfer_data +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0xba79a188 srp_target_alloc +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0xd145a3e7 srp_iu_put +EXPORT_SYMBOL_GPL drivers/scsi/libsrp 0xfa10817c srp_iu_get +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x1f7cacee scsi_host_get_command +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x25511eb8 scsi_tgt_it_nexus_destroy +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x49c656e6 scsi_tgt_free_queue +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x4c97ba70 scsi_tgt_alloc_queue +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0x5cec538f scsi_tgt_it_nexus_create +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xb4a609bb scsi_tgt_queue_command +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xb7578d1e scsi_host_put_command +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xc6e21748 scsi_tgt_cmd_to_host +EXPORT_SYMBOL_GPL drivers/scsi/scsi_tgt 0xda79cbc6 scsi_tgt_tsk_mgmt_request +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x02a1f482 iscsi_host_for_each_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x1186b6e7 iscsi_is_flashnode_conn_dev +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x145821f3 iscsi_scan_finished +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x1a0254d9 iscsi_destroy_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x208e028d iscsi_alloc_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x2aaa0f61 iscsi_create_flashnode_sess +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x2ad1b717 iscsi_lookup_endpoint +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x314df511 iscsi_session_event +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x3179be13 iscsi_add_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x3884e3be iscsi_get_port_state_name +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x480e8016 iscsi_is_session_online +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x4a9ad6da iscsi_flashnode_bus_match +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x4ea6d5f3 iscsi_destroy_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x5f389070 iscsi_get_port_speed_name +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x6082edf1 iscsi_block_scsi_eh +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x65ba1e47 iscsi_find_flashnode_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x6880e7f9 iscsi_conn_login_event +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x699fe53e iscsi_get_discovery_parent_name +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x6dca82e0 iscsi_unblock_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x70104d56 iscsi_create_iface +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x78c4fe77 iscsi_free_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x8793fb01 iscsi_offload_mesg +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x8ddd3f31 iscsi_ping_comp_event +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x8fece567 iscsi_recv_pdu +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0x937f2202 iscsi_register_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xa126dd5f iscsi_create_flashnode_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xaac94659 iscsi_create_endpoint +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xaaeca0f0 iscsi_create_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xadb9c5d3 iscsi_destroy_flashnode_sess +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xadf6bc68 iscsi_create_conn +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xb9117f04 iscsi_session_chkready +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xc2724efc iscsi_find_flashnode_sess +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xca47c130 iscsi_unregister_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xd55a5793 iscsi_post_host_event +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xd96d652d iscsi_destroy_all_flashnode +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xda37647d iscsi_remove_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xdc79ba14 iscsi_block_session +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xe555ed3c iscsi_destroy_iface +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xf0610dd4 iscsi_conn_error_event +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xf2c6b8f2 iscsi_is_session_dev +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_iscsi 0xfad053c5 iscsi_destroy_endpoint +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0x1d775faa sas_disable_tlr +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0xd6840e3f sas_is_tlr_enabled +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0xf2e5aa8f sas_tlr_supported +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_sas 0xff1ff007 sas_enable_tlr +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x21ccec52 srp_rport_del +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x3a6a5321 srp_remove_host +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x75de414e srp_rport_add +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0x9f848493 srp_release_transport +EXPORT_SYMBOL_GPL drivers/scsi/scsi_transport_srp 0xf4793615 srp_attach_transport +EXPORT_SYMBOL_GPL drivers/scsi/ufs/ufshcd 0x26c6b1d5 ufshcd_init +EXPORT_SYMBOL_GPL drivers/scsi/ufs/ufshcd 0x352aaed8 ufshcd_suspend +EXPORT_SYMBOL_GPL drivers/scsi/ufs/ufshcd 0x91c0b54d ufshcd_resume +EXPORT_SYMBOL_GPL drivers/scsi/ufs/ufshcd 0xa2b4deeb ufshcd_remove +EXPORT_SYMBOL_GPL drivers/spi/spi-bitbang 0x5a9a2858 spi_bitbang_setup_transfer +EXPORT_SYMBOL_GPL drivers/spi/spi-bitbang 0x5edf06bd spi_bitbang_cleanup +EXPORT_SYMBOL_GPL drivers/spi/spi-bitbang 0x846290bb spi_bitbang_start +EXPORT_SYMBOL_GPL drivers/spi/spi-bitbang 0x9581cc60 spi_bitbang_stop +EXPORT_SYMBOL_GPL drivers/spi/spi-bitbang 0xa4c2d6ba spi_bitbang_transfer +EXPORT_SYMBOL_GPL drivers/spi/spi-bitbang 0xe720c5d3 spi_bitbang_setup +EXPORT_SYMBOL_GPL drivers/spi/spi-dw 0x1d47a184 dw_spi_resume_host +EXPORT_SYMBOL_GPL drivers/spi/spi-dw 0x355ef28b dw_spi_suspend_host +EXPORT_SYMBOL_GPL drivers/spi/spi-dw 0x860d178e dw_spi_add_host +EXPORT_SYMBOL_GPL drivers/spi/spi-dw 0xd32f5819 dw_spi_remove_host +EXPORT_SYMBOL_GPL drivers/spi/spi-dw 0xfd06a1a9 dw_spi_xfer_done +EXPORT_SYMBOL_GPL drivers/ssb/ssb 0x6c66b252 ssb_pmu_spuravoid_pllupdate +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x01b5db1c comedi_pcmcia_enable +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x05567fc5 comedi_buf_write_alloc +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x0cd330f4 range_unknown +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x11e714d5 comedi_buf_memcpy_to +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x155769c2 comedi_pcmcia_auto_config +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x16988247 comedi_driver_unregister +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x16dc6bf9 comedi_buf_read_alloc +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x18d30863 comedi_buf_read_free +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x209c926e comedi_pcmcia_disable +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x21102f87 range_0_32mA +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x27cc8917 comedi_usb_auto_config +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x2a45f7d9 comedi_buf_memcpy_from +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x2eec08bc comedi_pci_driver_register +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x2f0ad9d3 range_bipolar5 +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x2faaeb82 comedi_legacy_detach +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x36d3b9d3 comedi_load_firmware +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x37e335a2 comedi_event +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x3d5de554 comedi_pci_enable +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x3e0d5279 comedi_error +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x3fdbb0ff comedi_check_chanlist +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x4236eaaf range_4_20mA +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x471efcb4 comedi_buf_put +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x4733c9a7 comedi_buf_read_n_available +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x4fe634f3 range_bipolar2_5 +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x5b4560fc comedi_pci_driver_unregister +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x6dcb2ce4 comedi_auto_unconfig +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x7a82df00 comedi_usb_driver_unregister +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x8113872c range_unipolar10 +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x82d4b5ee comedi_to_usb_dev +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x83444115 comedi_pci_auto_config +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x8aaab40f comedi_request_region +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x91e18d18 comedi_pci_disable +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x94d2d02e comedi_alloc_subdevices +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0x973c4ac1 __comedi_request_region +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xa01845db comedi_pcmcia_driver_unregister +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xa25e73f7 comedi_set_hw_dev +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xa26cd583 comedi_buf_get +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xa6c72307 comedi_to_usb_interface +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xad1ac22c comedi_to_pci_dev +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xb679cebc range_0_20mA +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xb891bd25 comedi_usb_auto_unconfig +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xbb0859ba comedi_usb_driver_register +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xbb52fc7f range_bipolar10 +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xbbe54ad6 comedi_is_subdevice_running +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xbdbe75c6 range_unipolar2_5 +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xc5f3f613 comedi_auto_config +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xdb2044b2 range_unipolar5 +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xe0717517 comedi_to_pcmcia_dev +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xe9330092 comedi_alloc_spriv +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xec15b702 comedi_driver_register +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xedd0b341 comedi_pcmcia_driver_register +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xef61f17a comedi_pci_auto_unconfig +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xf2e69dc8 comedi_pcmcia_auto_unconfig +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xfbdc741a comedi_dev_from_minor +EXPORT_SYMBOL_GPL drivers/staging/comedi/comedi 0xfe5f627b comedi_buf_write_free +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/8255 0x262e6550 subdev_8255_init_irq +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/8255 0x4295305c subdev_8255_init +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/8255 0x479565d6 subdev_8255_interrupt +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/addi_watchdog 0x1d284fe7 addi_watchdog_init +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/addi_watchdog 0x79f4a6cf addi_watchdog_reset +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/amplc_dio200_common 0x4eb43582 amplc_dio200_common_detach +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/amplc_dio200_common 0x97a41d79 amplc_dio200_common_attach +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/amplc_dio200_common 0xe9ee4f01 amplc_dio200_set_enhance +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/comedi_fc 0x657021f6 cfc_read_array_from_buffer +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/comedi_fc 0x7385138a cfc_write_array_to_buffer +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/comedi_fc 0xd1f25d01 cfc_handle_events +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/das08 0xcaf7c201 das08_common_attach +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0x08fff955 mite_bytes_written_to_memory_lb +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0x0bcb868b mite_dma_disarm +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0x14c54432 mite_buf_change +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0x1fde2fd8 mite_free_ring +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0x1fed4fef mite_prep_dma +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0x3445d071 mite_dma_arm +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0x4b198a22 mite_dma_tcr +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0x4c3fb48b mite_alloc_ring +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0x4c54bce9 mite_bytes_written_to_memory_ub +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0x5eba4875 mite_done +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0x7fb116f1 mite_setup +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0x8d6076cc mite_bytes_read_from_memory_ub +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0x8f3dbb91 mite_unsetup +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0x92fa1158 mite_alloc +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0x9478d308 mite_sync_input_dma +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0xa8227443 mite_bytes_in_transit +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0xb43db53d mite_release_channel +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0xc9cb3370 mite_bytes_read_from_memory_lb +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0xf4f58333 mite_sync_output_dma +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0xf5e7d4d1 mite_setup2 +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0xf9d6e0b9 mite_get_status +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/mite 0xffb9ef1d mite_request_channel_in_range +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_labpc 0xc0ddd23a labpc_common_attach +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0x1aecd06c ni_tio_set_gate_src +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0x1ce9e78b ni_gpct_device_destroy +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0x3d2bf965 ni_tio_arm +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0x457aed1a ni_tio_winsn +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0xa1879873 ni_tio_init_counter +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0xa294bc50 ni_gpct_device_construct +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0xe57d1e26 ni_tio_insn_config +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tio 0xffe533fe ni_tio_rinsn +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tiocmd 0x1a555cfe ni_tio_handle_interrupt +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tiocmd 0x2f1a8ddf ni_tio_acknowledge_and_confirm +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tiocmd 0x4860ec3d ni_tio_cancel +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tiocmd 0x6d98c8b3 ni_tio_set_mite_channel +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tiocmd 0x935f3657 ni_tio_cmdtest +EXPORT_SYMBOL_GPL drivers/staging/comedi/drivers/ni_tiocmd 0xbf78d282 ni_tio_cmd +EXPORT_SYMBOL_GPL drivers/staging/comedi/kcomedilib/kcomedilib 0x174b3642 comedi_dio_config +EXPORT_SYMBOL_GPL drivers/staging/comedi/kcomedilib/kcomedilib 0x30efcd39 comedi_dio_bitfield +EXPORT_SYMBOL_GPL drivers/staging/comedi/kcomedilib/kcomedilib 0x4b7d35a1 comedi_find_subdevice_by_type +EXPORT_SYMBOL_GPL drivers/staging/comedi/kcomedilib/kcomedilib 0x91033875 comedi_get_n_channels +EXPORT_SYMBOL_GPL drivers/staging/comedi/kcomedilib/kcomedilib 0xadb105d4 comedi_close +EXPORT_SYMBOL_GPL drivers/staging/comedi/kcomedilib/kcomedilib 0xc6805136 comedi_open +EXPORT_SYMBOL_GPL drivers/staging/dwc2/dwc2 0x1ef4ae1f dwc2_hcd_init +EXPORT_SYMBOL_GPL drivers/staging/dwc2/dwc2 0x2206b003 dwc2_handle_common_intr +EXPORT_SYMBOL_GPL drivers/staging/dwc2/dwc2 0x8c0aab2f dwc2_hcd_remove +EXPORT_SYMBOL_GPL drivers/staging/dwc2/dwc2 0xa8514446 dwc2_set_all_params +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0x1a1b5249 oslec_flush +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0x2feda75b oslec_hpf_tx +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0x3227a28e oslec_snapshot +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0x7dc9dddd oslec_adaption_mode +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0xb2c66001 oslec_create +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0xc8b5a524 oslec_free +EXPORT_SYMBOL_GPL drivers/staging/echo/echo 0xd370f679 oslec_update +EXPORT_SYMBOL_GPL drivers/staging/iio/addac/adt7316 0x1b3e09d6 adt7316_pm_ops +EXPORT_SYMBOL_GPL drivers/staging/rts5139/rts5139 0xbd5a0e51 rts5139_usb_ids +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x0e81c76d spk_serial_out +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x12889f69 spk_synth_immediate +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x14f06fe7 spk_serial_in_nowait +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 0x61f948e2 synth_add +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x70ff4c4e spk_synth_is_alive_restart +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0x892d7c77 spk_var_show +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 0x9b986f06 synth_remove +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xaecf60f9 spk_synth_flush +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xb48956f8 synth_buffer_peek +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xb9509a14 spk_serial_synth_probe +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 0xcb1b4ff4 spk_do_catch_up +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xcda38867 speakup_event +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xd1b551a2 spk_get_var +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xde7ae2e8 speakup_info +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 0xe8f25f62 spk_synth_is_alive_nop +EXPORT_SYMBOL_GPL drivers/staging/speakup/speakup 0xfb56156d spk_var_store +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x31f16117 sockfd_to_socket +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x31ff0c08 usbip_dump_urb +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x4d110d0c usbip_recv_xbuff +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x78b72f44 usbip_debug_flag +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x9501f075 usbip_event_add +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x9d59c35c usbip_recv_iso +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0x9e33de34 usbip_start_eh +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0xa44dbe32 dev_attr_usbip_debug +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0xa80d4d62 usbip_stop_eh +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0xa869adb7 usbip_recv +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0xac94aa45 usbip_alloc_iso_desc_pdu +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0xbe98a027 usbip_event_happened +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0xcc20ca5d usbip_pack_pdu +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0xd02753dc usbip_header_correct_endian +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0xd130caba usbip_pad_iso +EXPORT_SYMBOL_GPL drivers/staging/usbip/usbip-core 0xe1ea0586 usbip_dump_header +EXPORT_SYMBOL_GPL drivers/tty/n_tracesink 0x585ebaac n_tracesink_datadrain +EXPORT_SYMBOL_GPL drivers/uio/uio 0x03e4869b uio_event_notify +EXPORT_SYMBOL_GPL drivers/uio/uio 0xe13b8b06 __uio_register_device +EXPORT_SYMBOL_GPL drivers/uio/uio 0xe7abab8f uio_unregister_device +EXPORT_SYMBOL_GPL drivers/usb/atm/usbatm 0xca1812b6 usbatm_usb_disconnect +EXPORT_SYMBOL_GPL drivers/usb/atm/usbatm 0xcbca8c3b usbatm_usb_probe +EXPORT_SYMBOL_GPL drivers/usb/chipidea/ci_hdrc 0x9621f89e ci_hdrc_remove_device +EXPORT_SYMBOL_GPL drivers/usb/chipidea/ci_hdrc 0xec1e5527 ci_hdrc_add_device +EXPORT_SYMBOL_GPL drivers/usb/dwc3/dwc3-omap 0x4db92025 dwc3_omap_mailbox +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x1ae7f134 usb_string_ids_n +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x24711f6a usb_string_ids_tab +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x2e09263f usb_copy_descriptors +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x31e54848 usb_remove_function +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x37b3c7a9 usb_ep_autoconfig_reset +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x5ec1cdda usb_ep_autoconfig +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x7149d89c usb_assign_descriptors +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x7795c81f usb_function_unregister +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x7a988663 usb_free_all_descriptors +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x7bee2201 usb_add_function +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x7bf15b8b usb_ep_autoconfig_ss +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x7e156ea4 usb_put_function_instance +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x807abe7b usb_composite_setup_continue +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x8fdb40b2 config_ep_by_speed +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x94202b22 usb_put_function +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x94d7075a usb_gadget_get_string +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0x99dea24f usb_get_function_instance +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xa963b964 usb_add_config +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xab12acb6 usb_function_register +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xad8675f1 usb_get_function +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xb1d484ab usb_interface_id +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xbbe6522e usb_composite_overwrite_options +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xc6707846 usb_composite_probe +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xc9e0add3 usb_function_deactivate +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xd2ea2134 usb_descriptor_fillbuf +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xd47f3d26 usb_gstrings_attach +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xf474a207 usb_gadget_config_buf +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xf84a6e94 usb_function_activate +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xf95df054 usb_string_id +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xfd8d255f usb_add_config_only +EXPORT_SYMBOL_GPL drivers/usb/gadget/libcomposite 0xfef41254 usb_composite_unregister +EXPORT_SYMBOL_GPL drivers/usb/gadget/u_serial 0x33bfdca2 gserial_alloc_line +EXPORT_SYMBOL_GPL drivers/usb/gadget/u_serial 0x3b82ef3a gserial_disconnect +EXPORT_SYMBOL_GPL drivers/usb/gadget/u_serial 0x8a0ed13e gserial_connect +EXPORT_SYMBOL_GPL drivers/usb/gadget/u_serial 0x8e27d6de gs_alloc_req +EXPORT_SYMBOL_GPL drivers/usb/gadget/u_serial 0xb6652875 gserial_free_line +EXPORT_SYMBOL_GPL drivers/usb/gadget/u_serial 0xf1981607 gs_free_req +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc-core 0x09aad849 usb_add_gadget_udc_release +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc-core 0x09bfca19 usb_add_gadget_udc +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc-core 0x6d030192 usb_gadget_set_state +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc-core 0x7261ff38 usb_gadget_unregister_driver +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc-core 0x76cda3d2 usb_del_gadget_udc +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc-core 0x8799443c usb_gadget_map_request +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc-core 0x9571e01a usb_gadget_probe_driver +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc-core 0xdc4c25e8 usb_gadget_unmap_request +EXPORT_SYMBOL_GPL drivers/usb/gadget/udc-core 0xf63f235e udc_attach_driver +EXPORT_SYMBOL_GPL drivers/usb/misc/ezusb 0x0f40df0a ezusb_fx1_set_reset +EXPORT_SYMBOL_GPL drivers/usb/misc/ezusb 0xe3e4b53a ezusb_fx1_ihex_firmware_download +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x477ace89 usb_ftdi_elan_edset_setup +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x492bf6c4 usb_ftdi_elan_edset_input +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x4e19ba46 usb_ftdi_elan_write_pcimem +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x5307f97f usb_ftdi_elan_edset_empty +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0x5bf4ffbe usb_ftdi_elan_edset_output +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0xa866e9dd usb_ftdi_elan_read_pcimem +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0xc16bdb6f usb_ftdi_elan_edset_single +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0xcd3e4911 usb_ftdi_elan_edset_flush +EXPORT_SYMBOL_GPL drivers/usb/misc/ftdi-elan 0xdfb501e2 ftdi_elan_gone_away +EXPORT_SYMBOL_GPL drivers/usb/musb/musb_hdrc 0x51662998 musb_interrupt +EXPORT_SYMBOL_GPL drivers/usb/musb/tusb6010 0xf7c80075 tusb_get_revision +EXPORT_SYMBOL_GPL drivers/usb/phy/phy-isp1301 0x408ae8b1 isp1301_get_client +EXPORT_SYMBOL_GPL drivers/usb/phy/phy-omap-control 0x7e47a3d5 omap_control_usb3_phy_power +EXPORT_SYMBOL_GPL drivers/usb/phy/phy-omap-control 0xc2ff261c omap_control_usb_set_mode +EXPORT_SYMBOL_GPL drivers/usb/phy/phy-omap-control 0xeeea7281 omap_get_control_dev +EXPORT_SYMBOL_GPL drivers/usb/phy/phy-omap-control 0xf6bd922f omap_control_usb_phy_power +EXPORT_SYMBOL_GPL drivers/usb/phy/phy-samsung-usb 0x08551399 samsung_usbphy_rate_to_clksel_4x12 +EXPORT_SYMBOL_GPL drivers/usb/phy/phy-samsung-usb 0x26b0dc24 samsung_usbphy_cfg_sel +EXPORT_SYMBOL_GPL drivers/usb/phy/phy-samsung-usb 0x6e43d8c9 samsung_usbphy_get_refclk_freq +EXPORT_SYMBOL_GPL drivers/usb/phy/phy-samsung-usb 0xabd90409 samsung_usbphy_set_type +EXPORT_SYMBOL_GPL drivers/usb/phy/phy-samsung-usb 0xbb65e4ae samsung_usbphy_rate_to_clksel_64xx +EXPORT_SYMBOL_GPL drivers/usb/phy/phy-samsung-usb 0xe053e99c samsung_usbphy_set_isolation_4210 +EXPORT_SYMBOL_GPL drivers/usb/phy/phy-samsung-usb 0xf2e3b8ef samsung_usbphy_parse_dt +EXPORT_SYMBOL_GPL drivers/usb/serial/usb_wwan 0xf495195f usb_wwan_port_probe +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x280e1ed4 usb_serial_generic_open +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x39497c77 usb_serial_generic_get_icount +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x41943a78 usb_serial_generic_resume +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x47566d77 usb_serial_register_drivers +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x4fc37bfc usb_serial_generic_wait_until_sent +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x58280c52 usb_serial_generic_process_read_urb +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x61155ab1 usb_serial_generic_chars_in_buffer +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x6a0153d8 usb_serial_generic_submit_read_urbs +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x7bce72d0 usb_serial_generic_write_bulk_callback +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x82e186b5 usb_serial_generic_write +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x8cecae09 usb_serial_deregister_drivers +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0x9252f8db usb_serial_handle_dcd_change +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xb2bd3ad1 usb_serial_port_softint +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xc9c70b00 usb_serial_handle_sysrq_char +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xd49fdfc6 usb_serial_generic_unthrottle +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xdd2851a5 usb_serial_generic_tiocmiwait +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xe7ebf557 usb_serial_handle_break +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xf268460a usb_serial_generic_read_bulk_callback +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xfc24dde3 usb_serial_generic_close +EXPORT_SYMBOL_GPL drivers/usb/serial/usbserial 0xfd214860 usb_serial_generic_throttle +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x017c0871 usb_stor_post_reset +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x05d7a35e usb_stor_transparent_scsi_command +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x1000723c usb_stor_control_msg +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x1363f84a usb_stor_disconnect +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x1b359319 usb_stor_resume +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x1bc3edc2 usb_stor_sense_invalidCDB +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x1c7b731e usb_stor_CB_reset +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x44391999 usb_stor_CB_transport +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x4bbb844c usb_stor_Bulk_transport +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x5bcef0b8 usb_stor_suspend +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x68b3a683 usb_stor_pre_reset +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x7595b4b2 usb_stor_reset_resume +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x7de4121a fill_inquiry_response +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0x8962f518 usb_stor_bulk_srb +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xbf97da36 usb_stor_ctrl_transfer +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xc09a9492 usb_stor_bulk_transfer_buf +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xc627cb10 usb_stor_access_xfer_buf +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xc6ac07a7 usb_stor_probe2 +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xc971b1a3 usb_stor_Bulk_reset +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xd690e68b usb_stor_probe1 +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xd6dd8aee usb_stor_clear_halt +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xec83b036 usb_stor_bulk_transfer_sg +EXPORT_SYMBOL_GPL drivers/usb/storage/usb-storage 0xf3d9c9f5 usb_stor_set_xfer_buf +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0x122f15ac wa_urb_enqueue_run +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0x263dc253 wa_urb_dequeue +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0x6ad738a9 wa_create +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0x94f7ccdf rpipe_ep_disable +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0xadc509a3 wa_urb_enqueue +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0xcb55ad58 rpipe_destroy +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusb-wa 0xecd0524d __wa_destroy +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x0635b907 __wusb_dev_get_by_usb_dev +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x0bb6bf5e wusb_cluster_id_get +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x192f0682 wusbhc_b_create +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x282a9a2d wusbhc_rh_status_data +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x2a57e037 wusbhc_rh_control +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x4d220941 wusbhc_reset_all +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x79d80524 wusbhc_b_destroy +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x7f0b7631 wusb_dev_destroy +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x863421e1 wusbhc_rh_start_port_reset +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x8d83895f wusbhc_handle_dn +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x9366dc97 wusbhc_mmcie_rm +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0x9e9136bb wusbhc_chid_set +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xb0fde0b6 wusbhc_mmcie_set +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xb46b4a98 wusbhc_destroy +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xb725d128 wusb_cluster_id_put +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xc809fa62 wusbhc_create +EXPORT_SYMBOL_GPL drivers/usb/wusbcore/wusbcore 0xcae2fe37 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 0x9d297c72 i1480_rceb_check +EXPORT_SYMBOL_GPL drivers/uwb/i1480/dfu/i1480-dfu-usb 0xd1230281 i1480_cmd +EXPORT_SYMBOL_GPL drivers/uwb/i1480/dfu/i1480-dfu-usb 0xfc0e366b i1480_fw_upload +EXPORT_SYMBOL_GPL drivers/uwb/umc 0x08387a88 umc_device_unregister +EXPORT_SYMBOL_GPL drivers/uwb/umc 0x452d4c01 umc_driver_unregister +EXPORT_SYMBOL_GPL drivers/uwb/umc 0xa5e599ff umc_controller_reset +EXPORT_SYMBOL_GPL drivers/uwb/umc 0xc1b93ea7 umc_match_pci_id +EXPORT_SYMBOL_GPL drivers/uwb/umc 0xc4176028 umc_device_register +EXPORT_SYMBOL_GPL drivers/uwb/umc 0xc7a73674 __umc_driver_register +EXPORT_SYMBOL_GPL drivers/uwb/umc 0xd04464cb umc_bus_type +EXPORT_SYMBOL_GPL drivers/uwb/umc 0xe5e2fc33 umc_device_create +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x00518a17 uwb_rsv_terminate +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x03657328 uwb_rc_init +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x06bd1c65 uwb_rc_neh_error +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x0a5f146d uwb_radio_start +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x0d78016e __uwb_addr_print +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x0fc02440 uwb_est_unregister +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x20f7bf1c uwb_rc_alloc +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x38d5c488 uwb_rc_dev_addr_get +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x3c06cb3f uwb_rc_post_reset +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x4d57ae3c uwb_rsv_type_str +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x60cdf09f uwb_rc_ie_add +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x6434a889 uwb_notifs_register +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x67a296a8 uwb_pal_register +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x69d0ba43 uwb_rc_vcmd +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x6bab2f3e uwb_rsv_destroy +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x6e808c23 uwb_rc_cmd +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x76e1d8a0 uwb_rc_cmd_async +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x777e4381 uwb_rsv_get_usable_mas +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x7a65bed7 uwb_pal_init +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x7d9c5dcf uwb_rsv_create +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x816b9e92 uwb_est_register +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x823d439e uwb_radio_stop +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x8b7beb78 uwb_rc_get_by_dev +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x92c28f19 uwb_rc_neh_grok +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x93f1b8c1 uwb_dev_for_each +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0x98413234 uwb_rsv_state_str +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xab74095a uwb_rc_ie_rm +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xac97316b uwb_ie_next +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xb11ae5df uwb_rsv_accept +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xb52af3c5 uwb_est_find_size +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xbc9a0d33 uwb_rc_mac_addr_get +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xc3ac0661 uwb_rc_add +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xc850fc99 uwb_rc_put +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xc8c7a970 uwb_rc_pre_reset +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xc981e6df uwb_rsv_modify +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xca2bea1f uwb_rc_reset_all +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xca93d575 uwb_pal_unregister +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xcfd1d8ea uwb_rc_rm +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xd073cc95 __uwb_rc_try_get +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xd332c354 uwb_rsv_establish +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xd916f2d7 uwb_notifs_deregister +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xde1e552d uwb_rc_get_by_grandpa +EXPORT_SYMBOL_GPL drivers/uwb/uwb 0xe17716bb uwb_dev_try_get +EXPORT_SYMBOL_GPL drivers/uwb/whci 0x9635c1d5 whci_wait_for +EXPORT_SYMBOL_GPL drivers/vfio/vfio 0x168a8308 vfio_device_get_from_dev +EXPORT_SYMBOL_GPL drivers/vfio/vfio 0x6bf70015 vfio_del_group_dev +EXPORT_SYMBOL_GPL drivers/vfio/vfio 0x95258207 vfio_device_data +EXPORT_SYMBOL_GPL drivers/vfio/vfio 0x969c73d9 vfio_device_put +EXPORT_SYMBOL_GPL drivers/vfio/vfio 0xc3a0c97d vfio_unregister_iommu_driver +EXPORT_SYMBOL_GPL drivers/vfio/vfio 0xf95e3d00 vfio_add_group_dev +EXPORT_SYMBOL_GPL drivers/vfio/vfio 0xfc1f038d vfio_register_iommu_driver +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x0c7fb9a1 vhost_add_used_and_signal +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x0e56986e vhost_init_used +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x0fb015c9 vhost_dev_stop +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x1b0682e5 vhost_poll_start +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x1bc8f909 vhost_enable_notify +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x22a197a7 vhost_vring_ioctl +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x269e2a43 vhost_get_vq_desc +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x269f7a09 vhost_dev_reset_owner_prepare +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x2cb9c182 vhost_log_access_ok +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x3a58937d vhost_dev_init +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x3e46def4 vhost_poll_queue +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x3fada7a6 vhost_log_write +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x4c836726 vhost_poll_stop +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x5e3e4b3d vhost_signal +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x5feca2cb vhost_poll_flush +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x601cd8bc vhost_dev_has_owner +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x68cc4c3b vhost_add_used +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x6959a60e vhost_dev_set_owner +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x6f4943bc vhost_dev_cleanup +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x71b02de7 vhost_add_used_n +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x725ee96b vhost_dev_ioctl +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x87fa63d2 vhost_dev_check_owner +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0x8d1f1704 vhost_discard_vq_desc +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xa1dcbcf2 vhost_work_init +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xae01fa12 vhost_disable_notify +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xba2bb107 vhost_add_used_and_signal_n +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xbd0e4803 vhost_work_queue +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xcd550c31 vhost_poll_init +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xdc108152 vhost_dev_reset_owner +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xe3553195 vhost_vq_access_ok +EXPORT_SYMBOL_GPL drivers/vhost/vhost 0xf8da5d4b vhost_work_flush +EXPORT_SYMBOL_GPL drivers/video/auo_k190x 0x140bc7c0 auok190x_send_command_nowait +EXPORT_SYMBOL_GPL drivers/video/auo_k190x 0x1ec25b67 auok190x_send_cmdargs +EXPORT_SYMBOL_GPL drivers/video/auo_k190x 0x3ad17481 auok190x_send_cmdargs_nowait +EXPORT_SYMBOL_GPL drivers/video/auo_k190x 0x42663798 auok190x_send_command +EXPORT_SYMBOL_GPL drivers/video/auo_k190x 0x7ce28ef5 auok190x_common_probe +EXPORT_SYMBOL_GPL drivers/video/auo_k190x 0x816e72af auok190x_send_cmdargs_pixels +EXPORT_SYMBOL_GPL drivers/video/auo_k190x 0x8ffdeb80 auok190x_pm +EXPORT_SYMBOL_GPL drivers/video/auo_k190x 0x95820867 auok190x_send_cmdargs_pixels_nowait +EXPORT_SYMBOL_GPL drivers/video/auo_k190x 0x9a54cf40 auok190x_common_remove +EXPORT_SYMBOL_GPL drivers/video/auo_k190x 0xb91a4d58 auok190x_read_cmdargs +EXPORT_SYMBOL_GPL drivers/video/backlight/apple_bl 0x2c63e051 apple_bl_register +EXPORT_SYMBOL_GPL drivers/video/backlight/apple_bl 0xdab0f892 apple_bl_unregister +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x0eed72b6 ili9320_suspend +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x15fdd822 ili9320_remove +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0x3590dc7a ili9320_write_regs +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0xb6af4728 ili9320_write +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0xd37d2a11 ili9320_shutdown +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0xe964ad40 ili9320_probe_spi +EXPORT_SYMBOL_GPL drivers/video/backlight/ili9320 0xe9ee72fe ili9320_resume +EXPORT_SYMBOL_GPL drivers/video/fb_ddc 0x85669a74 fb_ddc_read +EXPORT_SYMBOL_GPL drivers/video/fb_sys_fops 0x6275ee94 fb_sys_read +EXPORT_SYMBOL_GPL drivers/video/fb_sys_fops 0x7d2187a6 fb_sys_write +EXPORT_SYMBOL_GPL drivers/video/sis/sisfb 0x12d58232 sis_malloc_new +EXPORT_SYMBOL_GPL drivers/video/sis/sisfb 0x63b924e4 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 0x79e6190a viafb_irq_disable +EXPORT_SYMBOL_GPL drivers/video/via/viafb 0x83f8a18f viafb_find_i2c_adapter +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 0x03d028e1 w1_write_block +EXPORT_SYMBOL_GPL drivers/w1/wire 0x33d68437 w1_reset_bus +EXPORT_SYMBOL_GPL drivers/w1/wire 0x33e3ccbc w1_reset_select_slave +EXPORT_SYMBOL_GPL drivers/w1/wire 0x70321b3d w1_read_block +EXPORT_SYMBOL_GPL drivers/w1/wire 0x7c2f2afb w1_calc_crc8 +EXPORT_SYMBOL_GPL drivers/w1/wire 0x974cc2eb w1_next_pullup +EXPORT_SYMBOL_GPL drivers/w1/wire 0xa025ccc5 w1_read_8 +EXPORT_SYMBOL_GPL drivers/w1/wire 0xaf756d67 w1_reset_resume_command +EXPORT_SYMBOL_GPL drivers/w1/wire 0xc81c2675 w1_touch_block +EXPORT_SYMBOL_GPL drivers/w1/wire 0xf2972e7f w1_write_8 +EXPORT_SYMBOL_GPL drivers/xen/xen-privcmd 0x29c8a42e xen_privcmd_fops +EXPORT_SYMBOL_GPL fs/dlm/dlm 0x08048852 dlm_posix_lock +EXPORT_SYMBOL_GPL fs/dlm/dlm 0x9321df95 dlm_lock +EXPORT_SYMBOL_GPL fs/dlm/dlm 0xbb96bb95 dlm_posix_get +EXPORT_SYMBOL_GPL fs/dlm/dlm 0xc6dc8c2f dlm_new_lockspace +EXPORT_SYMBOL_GPL fs/dlm/dlm 0xce6c029a 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/fscache/fscache 0x092cf98e fscache_object_sleep_till_congested +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x0747fdda nlmsvc_unlock_all_by_sb +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x17ce645d locks_end_grace +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x3bbf7c8f locks_start_grace +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x5ce8238c nlmclnt_proc +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x6d32186f nlmsvc_ops +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x6ea39e70 lockd_down +EXPORT_SYMBOL_GPL fs/lockd/lockd 0x77e35ccc nlmsvc_unlock_all_by_ip +EXPORT_SYMBOL_GPL fs/lockd/lockd 0xc771f216 locks_in_grace +EXPORT_SYMBOL_GPL fs/lockd/lockd 0xe4225406 nlmclnt_init +EXPORT_SYMBOL_GPL fs/lockd/lockd 0xed6c4618 lockd_up +EXPORT_SYMBOL_GPL fs/lockd/lockd 0xf47ab964 nlmclnt_done +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x017a17a3 nfs_getattr +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x020eaa99 nfs_clone_sb_security +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x03666846 nfs_readdata_release +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x03f80929 nfs_fs_mount_common +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x04d494f4 nfs_post_op_update_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x0669bd2e nfs_request_remove_commit_list +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x0a4c5087 nfs_refresh_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x0b73d58e nfs_initiate_write +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x0d8c8237 nfs_generic_flush +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x130205c8 nfs_fs_type +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x1311763a nfs_sb_active +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x13164791 alloc_nfs_open_context +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x14b77089 nfs_put_super +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x174e4f43 nfs_pageio_complete +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x1b892bb3 nfs_init_client +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x1eea8118 nfs_destroy_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x25388b43 nfs_close_context +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x26884ff7 nfs_alloc_fhandle +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x29a24383 nfs_lookup +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x2a312667 nfs_file_llseek +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x2cff0ce0 nfs_mkdir +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x2e0ef7d0 nfs_lock +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x3199c724 nfs_clear_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x3258836a nfs_show_devname +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x332800ea put_nfs_open_context +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x34954729 unregister_nfs_version +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x34bcbc6e nfs_file_read +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x35095bf3 nfs_create +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x393a4f1a nfs_kill_super +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x39e05ac3 nfs_idmap_cache_timeout +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x3a1a7fdf nfs_server_copy_userdata +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x3b713949 nfs_fill_super +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x3b9e1bed nfs_sops +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x3ca31f35 nfs_net_id +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x3f2690f2 nfs_check_flags +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x416f4649 nfs_server_insert_lists +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x42f2c81f nfs4_client_id_uniquifier +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x4547c002 nfs_file_splice_read +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x45f26719 nfs_get_client +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x461b5aed nfs_umount_begin +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x464e60f6 nfs_path +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x476569f3 nfs_flock +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x49e4b8c7 nfs4_label_alloc +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x4a0d372c nfs_instantiate +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x4a83e473 nfs_initiate_read +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x4b81b8ad nfs_pageio_reset_read_mds +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x4de05f6f nfs_commitdata_release +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x4edb95bf nfs_file_operations +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x4f3afa90 nfs_may_open +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x51892d61 nfs_callback_set_tcpport +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x5447e635 nfs_show_options +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x551c92b7 nfs_revalidate_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x5601e306 nfs_file_fsync_commit +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x586765eb nfs_wait_client_init_complete +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x5bb78058 nfs_retry_commit +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x5c85ed26 nfs_zap_acl_cache +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x5e1d863a nfs_sockaddr_match_ipaddr +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x6147cd0c nfs_sb_deactive +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x624d46a4 nfs_setattr +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x62c3a9c8 nfs_permission +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x65c5d45c nfs_writedata_release +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x68063771 nfs_file_splice_write +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x6a20608d nfs_link +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x6aba9283 nfs_symlink +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x6b68b955 nfs_do_submount +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x6c03e28e nfs_rmdir +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x6db875c2 nfs_alloc_fattr +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x73c4542a nfs_create_rpc_client +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x74a0ec37 nfs_show_stats +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x767fc09e nfs_free_client +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x79285289 nfs_alloc_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7c9722ba nfs_dreq_bytes_left +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x7e2ee568 nfs_readhdr_free +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x82fecf48 nfs_wb_all +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x86cb4f50 nfs_free_server +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x88db764f nfs_show_path +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x89bc5a64 nfs_wait_bit_killable +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x89c8f464 nfs_force_lookup_revalidate +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x90a5530f nfsiod_workqueue +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x91573ea7 nfs_fhget +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x91d1fe52 max_session_slots +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x93c01f08 nfs_write_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x9403c67e nfs4_fs_type +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x9533af78 nfs_pgheader_init +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x95a7196b nfs_access_set_mask +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x966d2180 nfs_invalidate_atime +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x96e50b02 nfs_clone_server +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x981fe109 nfs_alloc_client +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x992b87cc nfs_commit_free +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x9bcdbace get_nfs_open_context +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x9e6973e3 nfs_access_zap_cache +EXPORT_SYMBOL_GPL fs/nfs/nfs 0x9ea40b44 nfs_dentry_operations +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xa4ca71b9 nfs_set_sb_security +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xa73a26ee nfs_pageio_init +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xa8d2d1ce nfs_callback_tcpport +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xa8e9e1ae send_implementation_id +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xab4bde77 nfs_inode_attach_open_context +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xacbd22c1 nfs_access_add_cache +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xad46d1c3 nfs_statfs +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xad9565ee nfs_initiate_commit +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xb09b029a nfs_file_write +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xb3be4a3a nfs_setsecurity +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xb425bac2 nfs_atomic_open +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xc1a0cac9 nfs_setlease +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xc3bbb7b5 register_nfs_version +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xc564f232 nfs_fscache_set_inode_cookie +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xc59e2e73 nfs_probe_fsinfo +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xc5da4b91 nfs_writehdr_alloc +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xc5ef47d5 nfs_init_timeout_values +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xc61e5566 nfs4_dentry_operations +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xc651a553 nfs_commitdata_alloc +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xc8b7605a nfs_init_commit +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xc91ed524 nfs_drop_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xc941f344 nfs_readhdr_alloc +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xca889b30 nfs_request_add_commit_list +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xd0bd4188 nfs_setattr_update_inode +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xd12e6c15 nfs_pageio_init_write +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xd5a7650d nfs_file_release +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xd5c38287 nfs_submount +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xd6af8bf0 nfs_file_mmap +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xd8892628 nfs_rename +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xdadb54ba nfs_post_op_update_inode_force_wcc +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xdae9b5d7 nfs4_disable_idmapping +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xdd33b90b nfs_generic_pagein +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xdec0db2a nfs_pageio_reset_write_mds +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xe063bdd8 nfs_init_cinfo +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xe1c4d0d1 nfs_fs_mount +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xe1c6ad88 nfs_create_server +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xe1c974a5 nfs_file_set_open_context +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xe6e421aa nfs_init_server_rpcclient +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xe7e9cf8b nfs_pageio_add_request +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xe94c12a6 nfs_alloc_server +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xe98166a2 nfs_file_flush +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xeaf19b7c nfs_writehdr_free +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xebe9c0e3 nfs_mark_client_ready +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xed56ba57 nfs_generic_pg_test +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xeeceb206 nfs_fattr_init +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xefbb719f nfs_mknod +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xf36d865b nfs_pageio_init_read +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xf74fa525 nfs_put_client +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xf7d0caf8 nfs_unlink +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xfa0f1d0a nfs_try_mount +EXPORT_SYMBOL_GPL fs/nfs/nfs 0xfbb08f5d nfs_remount +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x0e1a04b8 nfs4_mark_deviceid_unavailable +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x170f3ed6 nfs41_maxgetdevinfo_overhead +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x191b58f3 nfs4_schedule_lease_recovery +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x320076a5 nfs4_init_ds_session +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x33d339af nfs41_setup_sequence +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x3cc78bd2 nfs4_schedule_stateid_recovery +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x3e544d7f nfs4_proc_getdeviceinfo +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x44a573ff pnfs_generic_pg_test +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x5467b1d8 pnfs_generic_pg_readpages +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x55008723 pnfs_read_done_resend_to_mds +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x5845735a pnfs_unregister_layoutdriver +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x6090837d nfs4_put_deviceid_node +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x678d4764 pnfs_register_layoutdriver +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x69faf754 nfs4_set_rw_stateid +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x78842cdc pnfs_write_done_resend_to_mds +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x800ccf85 nfs4_init_deviceid_node +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x81048059 _pnfs_return_layout +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x9b1b8591 pnfs_destroy_layout +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x9c6b79fb pnfs_writehdr_free +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0x9d16b632 pnfs_set_lo_fail +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xa12a091b pnfs_generic_pg_init_write +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xa395e3cd pnfs_readhdr_free +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xa40e2875 nfs4_set_ds_client +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xa46765bc nfs_remove_bad_delegation +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xae1765a8 pnfs_ld_read_done +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xb43d8f8c nfs4_test_deviceid_unavailable +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xb45e98ca pnfs_update_layout +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xba5ab986 nfs4_find_get_deviceid +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xbb5fb2f5 nfs4_schedule_session_recovery +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xbb6e7ffc pnfs_put_lseg +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xc66fd1e9 nfs4_delete_deviceid +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xc84b93a7 pnfs_ld_write_done +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xe2733d99 nfs4_insert_deviceid_node +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xe406c2ee pnfs_set_layoutcommit +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xed15fb41 nfs4_print_deviceid +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xf3596451 nfs4_proc_getdevicelist +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xf7c34db2 pnfs_generic_pg_init_read +EXPORT_SYMBOL_GPL fs/nfs/nfsv4 0xff51fa79 pnfs_generic_pg_writepages +EXPORT_SYMBOL_GPL fs/nfs_common/nfs_acl 0x493548c0 nfsacl_encode +EXPORT_SYMBOL_GPL fs/nfs_common/nfs_acl 0xebfde403 nfsacl_decode +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x01030013 o2nm_get_node_by_num +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x0fab2db4 o2nm_get_node_by_ip +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x1b89c6ee o2hb_fill_node_map +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x1d747ce3 o2hb_check_node_heartbeating +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x2cac9fc0 o2nm_node_put +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x36418553 o2net_send_message +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x36a28a9e o2net_send_message_vec +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x4900035b o2hb_stop_all_regions +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x5a182453 o2hb_register_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x79ef8acd o2hb_setup_callback +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0x81a17396 mlog_and_bits +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xa06eac21 o2nm_node_get +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xa82a8645 o2nm_this_node +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xa87bc9e7 o2nm_configured_node_map +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 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 0xd859ac8c o2net_fill_node_map +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xf1a5611d o2net_unregister_handler_list +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xf56c2017 mlog_not_bits +EXPORT_SYMBOL_GPL fs/ocfs2/cluster/ocfs2_nodemanager 0xf765753a o2hb_unregister_callback +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x04afad20 dlm_unregister_domain +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x33ae59da dlm_register_eviction_cb +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x417a8f6f dlm_print_one_lock +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0x7069257a dlmlock +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 0xef1b5aa7 dlm_register_domain +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xfb86b96f dlm_errname +EXPORT_SYMBOL_GPL fs/ocfs2/dlm/ocfs2_dlm 0xfecc17e7 dlmunlock +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x025e2d69 ocfs2_cluster_connect_agnostic +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x0562c415 ocfs2_cluster_this_node +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x16b2e575 ocfs2_dlm_unlock +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x2b7430d9 ocfs2_stack_glue_unregister +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x4d3af7fa ocfs2_cluster_hangup +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x5469ce31 ocfs2_dlm_lvb_valid +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x554c9419 ocfs2_stack_glue_register +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x7083dbd5 ocfs2_dlm_dump_lksb +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0x89502fe7 ocfs2_cluster_connect +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xb4bd060c ocfs2_dlm_lock_status +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xbbc4ef97 ocfs2_stack_supports_plocks +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xdc823ea4 ocfs2_cluster_disconnect +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xe00e2b94 ocfs2_plock +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xe2bd47db ocfs2_dlm_lock +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xe40cffce ocfs2_stack_glue_set_max_proto_version +EXPORT_SYMBOL_GPL fs/ocfs2/ocfs2_stackglue 0xe417d940 ocfs2_dlm_lvb +EXPORT_SYMBOL_GPL lib/bch 0x231d70fc encode_bch +EXPORT_SYMBOL_GPL lib/bch 0x6b770f49 decode_bch +EXPORT_SYMBOL_GPL lib/bch 0x9463ff71 init_bch +EXPORT_SYMBOL_GPL lib/bch 0xbdf512de free_bch +EXPORT_SYMBOL_GPL lib/notifier-error-inject 0xaf7431c5 notifier_err_inject_init +EXPORT_SYMBOL_GPL lib/notifier-error-inject 0xb489a0d3 notifier_err_inject_dir +EXPORT_SYMBOL_GPL lib/raid6/raid6_pq 0x1803a6ed raid6_2data_recov +EXPORT_SYMBOL_GPL lib/raid6/raid6_pq 0xe4b051cf raid6_datap_recov +EXPORT_SYMBOL_GPL lib/raid6/raid6_pq 0xfdfcb8cb raid6_call +EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0x201d8ea3 encode_rs8 +EXPORT_SYMBOL_GPL lib/reed_solomon/reed_solomon 0x29fa419f decode_rs8 +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 0x088806eb garp_init_applicant +EXPORT_SYMBOL_GPL net/802/garp 0x383ba449 garp_request_join +EXPORT_SYMBOL_GPL net/802/garp 0x783877c7 garp_uninit_applicant +EXPORT_SYMBOL_GPL net/802/garp 0xe621ea9b garp_register_application +EXPORT_SYMBOL_GPL net/802/garp 0xfc512912 garp_unregister_application +EXPORT_SYMBOL_GPL net/802/garp 0xfe7ffdc6 garp_request_leave +EXPORT_SYMBOL_GPL net/802/mrp 0x271767b6 mrp_init_applicant +EXPORT_SYMBOL_GPL net/802/mrp 0x732731af mrp_register_application +EXPORT_SYMBOL_GPL net/802/mrp 0x8c16c37a mrp_request_join +EXPORT_SYMBOL_GPL net/802/mrp 0xaed6b124 mrp_uninit_applicant +EXPORT_SYMBOL_GPL net/802/mrp 0xf1eeb020 mrp_unregister_application +EXPORT_SYMBOL_GPL net/802/mrp 0xfb88ce22 mrp_request_leave +EXPORT_SYMBOL_GPL net/802/stp 0x1b284008 stp_proto_unregister +EXPORT_SYMBOL_GPL net/802/stp 0x32bee757 stp_proto_register +EXPORT_SYMBOL_GPL net/9p/9pnet 0xa160a805 p9_client_xattrwalk +EXPORT_SYMBOL_GPL net/9p/9pnet 0xf2a32169 p9_client_xattrcreate +EXPORT_SYMBOL_GPL net/atm/atm 0xb09faf79 register_atmdevice_notifier +EXPORT_SYMBOL_GPL net/atm/atm 0xcfb6a3da 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 0xfa8c7f98 ax25_register_pid +EXPORT_SYMBOL_GPL net/bluetooth/bluetooth 0x199aaaef bt_debugfs +EXPORT_SYMBOL_GPL net/dccp/dccp 0x003bc9b7 dccp_connect +EXPORT_SYMBOL_GPL net/dccp/dccp 0x0c65f74f compat_dccp_getsockopt +EXPORT_SYMBOL_GPL net/dccp/dccp 0x0eb7f0e4 dccp_insert_option +EXPORT_SYMBOL_GPL net/dccp/dccp 0x121517bb dccp_ioctl +EXPORT_SYMBOL_GPL net/dccp/dccp 0x16d1750c dccp_done +EXPORT_SYMBOL_GPL net/dccp/dccp 0x16fc53a9 dccp_setsockopt +EXPORT_SYMBOL_GPL net/dccp/dccp 0x180c1f40 dccp_poll +EXPORT_SYMBOL_GPL net/dccp/dccp 0x1d99d49a dccp_timestamp +EXPORT_SYMBOL_GPL net/dccp/dccp 0x1fe1319b dccp_destroy_sock +EXPORT_SYMBOL_GPL net/dccp/dccp 0x2230e6af dccp_set_state +EXPORT_SYMBOL_GPL net/dccp/dccp 0x32a3b120 inet_dccp_listen +EXPORT_SYMBOL_GPL net/dccp/dccp 0x3442041a dccp_rcv_state_process +EXPORT_SYMBOL_GPL net/dccp/dccp 0x3769d080 dccp_check_req +EXPORT_SYMBOL_GPL net/dccp/dccp 0x4122c67e compat_dccp_setsockopt +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 0x588e1ae7 dccp_shutdown +EXPORT_SYMBOL_GPL net/dccp/dccp 0x62ed235b dccp_death_row +EXPORT_SYMBOL_GPL net/dccp/dccp 0x74890366 dccp_sync_mss +EXPORT_SYMBOL_GPL net/dccp/dccp 0x7b447136 dccp_parse_options +EXPORT_SYMBOL_GPL net/dccp/dccp 0x7c91ddba dccp_close +EXPORT_SYMBOL_GPL net/dccp/dccp 0x7f7810a9 dccp_feat_signal_nn_change +EXPORT_SYMBOL_GPL net/dccp/dccp 0x8362268b dccp_recvmsg +EXPORT_SYMBOL_GPL net/dccp/dccp 0x86be7924 dccp_packet_name +EXPORT_SYMBOL_GPL net/dccp/dccp 0x8904c8d7 dccp_getsockopt +EXPORT_SYMBOL_GPL net/dccp/dccp 0x9598d24d dccp_ackvec_parsed_cleanup +EXPORT_SYMBOL_GPL net/dccp/dccp 0x989a53db dccp_disconnect +EXPORT_SYMBOL_GPL net/dccp/dccp 0x9ac1a0ae dccp_child_process +EXPORT_SYMBOL_GPL net/dccp/dccp 0xa254d7e4 dccp_reqsk_init +EXPORT_SYMBOL_GPL net/dccp/dccp 0xa71bb9ff dccp_feat_nn_get +EXPORT_SYMBOL_GPL net/dccp/dccp 0xaabbbda7 dccp_hashinfo +EXPORT_SYMBOL_GPL net/dccp/dccp 0xaef3d5fc dccp_rcv_established +EXPORT_SYMBOL_GPL net/dccp/dccp 0xaf36e133 dccp_ctl_make_reset +EXPORT_SYMBOL_GPL net/dccp/dccp 0xbcf292e7 dccp_create_openreq_child +EXPORT_SYMBOL_GPL net/dccp/dccp 0xc3595b4a dccp_insert_option_elapsed_time +EXPORT_SYMBOL_GPL net/dccp/dccp 0xcb57e337 dccp_send_ack +EXPORT_SYMBOL_GPL net/dccp/dccp 0xdb43e601 dccp_sendmsg +EXPORT_SYMBOL_GPL net/dccp/dccp 0xe3691b9d dccp_orphan_count +EXPORT_SYMBOL_GPL net/dccp/dccp 0xe43d3e36 dccp_reqsk_send_ack +EXPORT_SYMBOL_GPL net/dccp/dccp 0xf3017e21 dccp_statistics +EXPORT_SYMBOL_GPL net/dccp/dccp 0xf41a8510 dccp_send_sync +EXPORT_SYMBOL_GPL net/dccp/dccp 0xfb079d70 dccp_init_sock +EXPORT_SYMBOL_GPL net/dccp/dccp 0xfd4b47c3 dccp_make_response +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x48f196d3 dccp_v4_send_check +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x5e3893b7 dccp_invalid_packet +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0x6b111aed dccp_v4_request_recv_sock +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0xaa2d1594 dccp_v4_conn_request +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0xf6a32955 dccp_v4_do_rcv +EXPORT_SYMBOL_GPL net/dccp/dccp_ipv4 0xf9af8996 dccp_v4_connect +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0xa5b63665 unregister_switch_driver +EXPORT_SYMBOL_GPL net/dsa/dsa_core 0xf407ba59 register_switch_driver +EXPORT_SYMBOL_GPL net/ipv4/gre 0x14b53f54 gre_cisco_register +EXPORT_SYMBOL_GPL net/ipv4/gre 0x7f9352cc gre_cisco_unregister +EXPORT_SYMBOL_GPL net/ipv4/gre 0x7fc54431 gre_add_protocol +EXPORT_SYMBOL_GPL net/ipv4/gre 0xa2a3f9b8 gre_del_protocol +EXPORT_SYMBOL_GPL net/ipv4/gre 0xa6a9d3f8 gre_build_header +EXPORT_SYMBOL_GPL net/ipv4/gre 0xaea06154 gre_handle_offloads +EXPORT_SYMBOL_GPL net/ipv4/inet_diag 0x23302ec8 inet_diag_unregister +EXPORT_SYMBOL_GPL net/ipv4/inet_diag 0x3e23e14e inet_diag_bc_sk +EXPORT_SYMBOL_GPL net/ipv4/inet_diag 0x715dedae inet_diag_register +EXPORT_SYMBOL_GPL net/ipv4/inet_diag 0x785e71ca inet_sk_diag_fill +EXPORT_SYMBOL_GPL net/ipv4/inet_diag 0x87cd83ca inet_diag_dump_one_icsk +EXPORT_SYMBOL_GPL net/ipv4/inet_diag 0xcc35494a inet_diag_dump_icsk +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x2b4e9d8c ip_tunnel_xmit +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x30f60599 ip_tunnel_newlink +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x65893f7c ip_tunnel_init +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x6d5b489c ip_tunnel_setup +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x7cd6af51 ip_tunnel_change_mtu +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x942835b3 ip_tunnel_delete_net +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x945bf672 ip_tunnel_uninit +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x9c3cf4ff ip_tunnel_init_net +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0x9c682a28 ip_tunnel_get_stats64 +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0xa0c0cadc ip_tunnel_rcv +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0xba9770d3 ip_tunnel_ioctl +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0xe3c3b6c6 ip_tunnel_lookup +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0xfc516226 ip_tunnel_dellink +EXPORT_SYMBOL_GPL net/ipv4/ip_tunnel 0xfe81f7d8 ip_tunnel_changelink +EXPORT_SYMBOL_GPL net/ipv4/netfilter/arp_tables 0x30b811d0 arpt_alloc_initial_table +EXPORT_SYMBOL_GPL net/ipv4/netfilter/ip_tables 0xd69c5895 ipt_alloc_initial_table +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_ipv4 0x601f758a 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 0x9a6bfc7b tcp_vegas_init +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0xa141546f tcp_vegas_cwnd_event +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0xb72d5a87 tcp_vegas_pkts_acked +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0xcad35adb tcp_vegas_state +EXPORT_SYMBOL_GPL net/ipv4/tcp_vegas 0xd7934d9e tcp_vegas_get_info +EXPORT_SYMBOL_GPL net/ipv4/xfrm4_mode_tunnel 0x95f40de0 xfrm4_mode_tunnel_input_deregister +EXPORT_SYMBOL_GPL net/ipv4/xfrm4_mode_tunnel 0xa0e595aa xfrm4_mode_tunnel_input_register +EXPORT_SYMBOL_GPL net/ipv6/ip6_tunnel 0x185adc1a ip6_tnl_xmit_ctl +EXPORT_SYMBOL_GPL net/ipv6/ip6_tunnel 0x2115148c ip6_tnl_dst_store +EXPORT_SYMBOL_GPL net/ipv6/ip6_tunnel 0x69ed48a2 ip6_tnl_dst_check +EXPORT_SYMBOL_GPL net/ipv6/ip6_tunnel 0xb120e57b ip6_tnl_dst_reset +EXPORT_SYMBOL_GPL net/ipv6/ip6_tunnel 0xff489df1 ip6_tnl_rcv_ctl +EXPORT_SYMBOL_GPL net/ipv6/netfilter/ip6_tables 0xf6987666 ip6t_alloc_initial_table +EXPORT_SYMBOL_GPL net/ipv6/netfilter/nf_defrag_ipv6 0x6eb85693 nf_defrag_ipv6_enable +EXPORT_SYMBOL_GPL net/ipv6/netfilter/nf_nat_ipv6 0x9bf40b55 nf_nat_icmpv6_reply_translation +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x088c3c0e l2tp_tunnel_sock_put +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x0c5aa706 l2tp_session_free +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x3f6dfea8 l2tp_session_find_by_ifname +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x450e6c3a l2tp_session_find +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x4b0de836 l2tp_xmit_skb +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x51dde0c0 __l2tp_session_unhash +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0x8da6489e l2tp_tunnel_find +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xa1f8870d l2tp_tunnel_sock_lookup +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xa2b94ec0 l2tp_tunnel_closeall +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xa62947a1 l2tp_session_queue_purge +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xc18168ae l2tp_tunnel_delete +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xc6430f0d l2tp_session_find_nth +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xdb4f0be8 l2tp_session_create +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xe26404b0 l2tp_tunnel_find_nth +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xef936440 l2tp_session_delete +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xf1e9c98d l2tp_tunnel_create +EXPORT_SYMBOL_GPL net/l2tp/l2tp_core 0xf45dfacd l2tp_udp_encap_recv +EXPORT_SYMBOL_GPL net/l2tp/l2tp_netlink 0x337f2432 l2tp_nl_unregister_ops +EXPORT_SYMBOL_GPL net/l2tp/l2tp_netlink 0x6e0ef086 l2tp_nl_register_ops +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x0aa5cb73 ieee80211_ready_on_channel +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x21bf7dbb ieee80211_resume_disconnect +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0x42252d33 ieee80211_gtk_rekey_notify +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xbb30386b ieee80211_find_sta_by_ifaddr +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xcd392ff5 ieee80211_remain_on_channel_expired +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xe9134d4a ieee80211_iterate_active_interfaces_atomic +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xea807016 ieee80211_iterate_active_interfaces +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xeb1e32a6 ieee80211_request_smps +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xf08d27df ieee80211_iter_chan_contexts_atomic +EXPORT_SYMBOL_GPL net/mac80211/mac80211 0xf3aae968 ieee80211_ave_rssi +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x0f25095d ip_set_del +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x111524eb ip_set_get_byname +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x397f6231 ip_set_free +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x3d80f343 ip_set_add +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x41336843 ip_set_get_ip_port +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x58774167 ip_set_test +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x6cbe50a0 ip_set_type_unregister +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x701e8c2a ip_set_get_ip4_port +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x7762965e ip_set_nfnl_put +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x790c584a ip_set_type_register +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x7924b6de ip_set_hostmask_map +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x80ee118c ip_set_nfnl_get +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x81fff2d1 ip_set_netmask_map +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x883d6572 ip_set_name_byindex +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0x9e98722b ip_set_get_ipaddr6 +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xa293f8a6 ip_set_get_ipaddr4 +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xa2d623f3 ip_set_range_to_cidr +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xc3b062db ip_set_nfnl_get_byindex +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xe4688ca1 ip_set_get_ip6_port +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xeb12497a ip_set_get_extensions +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xf3b4d4ae ip_set_alloc +EXPORT_SYMBOL_GPL net/netfilter/ipset/ip_set 0xfda3ec7a ip_set_put_byindex +EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0x39f398d1 unregister_ip_vs_pe +EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0xc85037a0 ip_vs_conn_out_get_proto +EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0xee73f43c ip_vs_conn_in_get_proto +EXPORT_SYMBOL_GPL net/netfilter/ipvs/ip_vs 0xf7470e14 register_ip_vs_pe +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x005881fe nf_ct_unexpect_related +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x02921e89 nf_conntrack_hash_check_insert +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x045072cd nf_ct_port_nla_policy +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x0a8ebb6b nf_conntrack_l4proto_tcp4 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x0f776060 __nf_ct_kill_acct +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x11534482 nf_conntrack_tuple_taken +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x13f1c3bb nf_ct_timeout_put_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x1e20b899 nf_conntrack_helper_try_module_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x1f33ea00 nf_ct_delete_from_lists +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x283846ab nf_conntrack_flush_report +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x289c3714 nf_ct_alloc_hashtable +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x2916563d nf_conntrack_helper_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x2e78c535 nf_conntrack_alter_reply +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x2f4aa87b nf_ct_extend_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x30216542 nf_ct_deliver_cached_events +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x31ed92f2 nf_ct_l4proto_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x34a8cdf4 nf_ct_get_tuplepr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x37386cac nf_conntrack_hash_rnd +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x38b8d9e9 nf_conntrack_l4proto_tcp6 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3ae65e8d nf_ct_l3proto_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3e32b269 nf_conntrack_register_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3ea58f49 nf_connlabels_replace +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3f5b1415 nf_ct_port_nlattr_to_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x3fcf3c69 nf_conntrack_l3proto_generic +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x40c65135 __nf_ct_l4proto_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x44a3f49b __nf_ct_refresh_acct +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x4711e0e6 __nf_conntrack_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x48a33f77 nf_ct_expect_alloc +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x4c339e6c nf_ct_l4proto_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x4d5b08fa nf_ct_expect_related_report +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x4dcc572b nf_ct_expect_unregister_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x4face71e seq_print_acct +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x5e5b8c89 nf_conntrack_free +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6083cce3 nf_ct_expect_register_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x62813e5c nf_ct_port_nlattr_tuple_size +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x689920dd nf_ct_expect_init +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x693c3961 nf_ct_helper_hash +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6d9d9d61 nf_ct_helper_ext_add +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x6e224a7a need_conntrack +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x723e3378 __nf_ct_expect_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x72e25f31 nf_ct_port_tuple_to_nlattr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x781dd70b nf_ct_helper_expectfn_find_by_name +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x78f9b710 nf_ct_l3proto_try_module_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7cbe9297 nf_ct_dying_timeout +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7d311951 nf_nat_seq_adjust_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7d895b22 nf_ct_iterate_cleanup +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7deed01a __nf_conntrack_confirm +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x7f848616 nf_conntrack_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x85e471ad nf_ct_expect_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x869a412f nf_connlabel_match +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8722195e __nf_conntrack_helper_find +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8e08ca5c nf_ct_l3proto_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8eb3f7c8 nf_connlabel_set +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x8ffe7e89 nf_conntrack_htable_size +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x90539009 nf_ct_invert_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x90ff6c9f nf_ct_invert_tuplepr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x9a4902c9 nf_ct_l4proto_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0x9e576932 nf_ct_expect_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xa2d8706a nf_ct_l3proto_pernet_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xaa628248 nf_ct_l3protos +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xab3d1f95 nf_ct_untracked_status_or +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xad1bb027 nf_ct_free_hashtable +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xaf3b5e0c nf_ct_l3proto_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb228adc6 nf_ct_helper_log +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb25bc812 nf_ct_l4proto_pernet_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb602c57e nf_ct_l3proto_module_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb874d335 nf_ct_helper_expectfn_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xb9b4348d nfnetlink_parse_nat_setup_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xbdd3acea nf_ct_l3proto_find_get +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc0240dd4 nf_conntrack_set_hashsize +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc0cd71bf nf_conntrack_lock +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc169438d nf_ct_get_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc18ac88d nf_ct_expect_hsize +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc40f284c nf_ct_helper_hsize +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xc7d88b94 nf_ct_helper_expectfn_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xd020c8bc nf_ct_l3proto_pernet_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xd0f8685d nf_conntrack_alloc +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xd2106c55 nf_ct_l4proto_pernet_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xd2bc1838 nf_ct_l4proto_put +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xd41e051c __nf_ct_try_assign_helper +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xdb93df91 nf_ct_timeout_find_get_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xdc32ca01 nf_ct_unlink_expect_report +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xdc97e0d2 nf_conntrack_l4proto_udp4 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xe1a258ae nf_conntrack_helper_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xe367f6dd nf_conntrack_unregister_notifier +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xe83a5c46 nf_ct_extend_register +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xebbb9f2c nf_ct_helper_expectfn_find_by_symbol +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xee2f775d nf_ct_remove_expectations +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xeea18250 nf_conntrack_l4proto_udp6 +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xf38bcdf3 nf_conntrack_max +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xfae73feb nf_conntrack_in +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack 0xfb97eeb1 nf_ct_nat_offset +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_amanda 0xfb3092da nf_nat_amanda_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_broadcast 0x6e854dbe nf_conntrack_broadcast_help +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_ftp 0x95ac2bd0 nf_nat_ftp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x083e4942 nat_callforwarding_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x1fae182c nat_h245_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x3182b46b nat_q931_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x424dd2fb set_ras_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x6a724030 set_h245_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x7e3f6cae set_h225_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x8cd8b867 get_h225_addr +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x908888e3 set_sig_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x98d6cae0 nat_t120_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_h323 0x9c4b31ae nat_rtp_rtcp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_irc 0x24eb8196 nf_nat_irc_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x6f2ef63a nf_nat_pptp_hook_exp_gre +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0x89f96e84 nf_nat_pptp_hook_outbound +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0xd25fc121 nf_nat_pptp_hook_expectfn +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_pptp 0xd765023b nf_nat_pptp_hook_inbound +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_proto_gre 0x5456921d nf_ct_gre_keymap_destroy +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_proto_gre 0xf0984853 nf_ct_gre_keymap_add +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x084fe31e nf_nat_sip_expect_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x0e2c049d ct_sip_parse_header_uri +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x0eb85c5e nf_nat_sip_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x28cfc75d nf_nat_sdp_media_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x3fbdd992 nf_nat_sdp_addr_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x42d57653 ct_sip_get_header +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x49c3357a ct_sip_parse_request +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x8d67b181 nf_nat_sdp_port_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0x8f5e4949 nf_nat_sip_seq_adjust_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xab5e3818 nf_nat_sdp_session_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xae859aeb ct_sip_parse_numerical_param +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xca184492 ct_sip_get_sdp_header +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_sip 0xdca158aa ct_sip_parse_address_param +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_snmp 0x5dd005c1 nf_nat_snmp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_conntrack_tftp 0x8dec0b14 nf_nat_tftp_hook +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x096edfe1 nf_nat_packet +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x0d9bae4b nf_nat_l4proto_nlattr_to_range +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x131f636c nf_nat_l4proto_in_range +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x24c846b3 __nf_nat_l4proto_find +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x3ee58782 nf_nat_l3proto_register +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x469bd53e nf_nat_set_seq_adjust +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x67a6de77 nf_nat_l4proto_unique_tuple +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0x71c80b08 nf_nat_l4proto_register +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0xc156454c nf_nat_l3proto_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0xc979b1e0 nf_nat_tcp_seq_adjust +EXPORT_SYMBOL_GPL net/netfilter/nf_nat 0xf458ba93 nf_nat_l4proto_unregister +EXPORT_SYMBOL_GPL net/netfilter/nf_tproxy_core 0xa183e8f9 nf_tproxy_assign_sock +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x06d2be90 nfnetlink_alloc_skb +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x1370c2e2 nfnetlink_unicast +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x18cb0641 nfnetlink_set_err +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x1d231720 nfnetlink_subsys_register +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x5ce3b588 nfnl_lock +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0x9f4a9ae1 nfnetlink_has_listeners +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xb4caffd7 nfnetlink_subsys_unregister +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xdb065657 nfnl_unlock +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink 0xeac6ba1b nfnetlink_send +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink_acct 0x21f6bba6 nfnl_acct_find_get +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink_acct 0x4eac9980 nfnl_acct_update +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink_acct 0xbecf5d14 nfnl_acct_put +EXPORT_SYMBOL_GPL net/netfilter/nfnetlink_log 0x49ebaaae nfulnl_log_packet +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x01995b5c xt_unregister_table +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x0689159e xt_proto_fini +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x161d1417 xt_compat_unlock +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x355b3df8 xt_request_find_target +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x35f05c7c xt_replace_table +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x37b81198 xt_request_find_match +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x40728a63 xt_find_revision +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x529d3de0 xt_compat_match_from_user +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x56c1a6b4 xt_find_table_lock +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x5f82f1f7 xt_compat_flush_offsets +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x691a6d69 xt_compat_calc_jump +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x70b1eae9 xt_check_target +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x70ce4a99 xt_compat_target_offset +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x73d4ec92 xt_hook_unlink +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x807d2b2c xt_recseq +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0x8d400e66 xt_proto_init +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xa57133c4 xt_table_unlock +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xb6672baa xt_compat_match_offset +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xbd09cecf xt_compat_target_from_user +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xbeaa9e76 xt_compat_match_to_user +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xc01df904 xt_compat_target_to_user +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xc69fc9ee xt_register_table +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xe0b4971b xt_compat_lock +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xe6966b26 xt_hook_link +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xec24fd82 xt_compat_add_offset +EXPORT_SYMBOL_GPL net/netfilter/x_tables 0xf2714d45 xt_check_match +EXPORT_SYMBOL_GPL net/netfilter/xt_RATEEST 0x132318ac xt_rateest_lookup +EXPORT_SYMBOL_GPL net/netfilter/xt_RATEEST 0xd7e1b517 xt_rateest_put +EXPORT_SYMBOL_GPL net/nfc/nci/nci 0x35c5f3b7 nci_spi_register_device +EXPORT_SYMBOL_GPL net/nfc/nci/nci 0x41948df3 nci_spi_unregister_device +EXPORT_SYMBOL_GPL net/nfc/nci/nci 0x4b7ea7b7 nci_spi_free_device +EXPORT_SYMBOL_GPL net/nfc/nci/nci 0x835269a6 nci_spi_recv_frame +EXPORT_SYMBOL_GPL net/nfc/nci/nci 0xc66e1c89 nci_spi_allocate_device +EXPORT_SYMBOL_GPL net/rds/rds 0x00a467af rds_wq +EXPORT_SYMBOL_GPL net/rds/rds 0x0bef4936 rds_cong_map_updated +EXPORT_SYMBOL_GPL net/rds/rds 0x1f83db05 rds_trans_unregister +EXPORT_SYMBOL_GPL net/rds/rds 0x2c5c5514 rds_message_add_rdma_dest_extension +EXPORT_SYMBOL_GPL net/rds/rds 0x2f173969 rds_conn_create_outgoing +EXPORT_SYMBOL_GPL net/rds/rds 0x2f7342ec rds_recv_incoming +EXPORT_SYMBOL_GPL net/rds/rds 0x3101936e rds_message_add_extension +EXPORT_SYMBOL_GPL net/rds/rds 0x36df7927 rds_inc_init +EXPORT_SYMBOL_GPL net/rds/rds 0x3b48e5fd rds_conn_destroy +EXPORT_SYMBOL_GPL net/rds/rds 0x3b4fc0fc rds_page_remainder_alloc +EXPORT_SYMBOL_GPL net/rds/rds 0x4b60cacb rds_page_copy_user +EXPORT_SYMBOL_GPL net/rds/rds 0x50cbe7b3 rds_stats +EXPORT_SYMBOL_GPL net/rds/rds 0x6642eb49 rds_rdma_send_complete +EXPORT_SYMBOL_GPL net/rds/rds 0x6b293acc rds_connect_complete +EXPORT_SYMBOL_GPL net/rds/rds 0x703fea79 rds_send_drop_acked +EXPORT_SYMBOL_GPL net/rds/rds 0x706f7950 rds_trans_register +EXPORT_SYMBOL_GPL net/rds/rds 0x73aac73d rds_message_populate_header +EXPORT_SYMBOL_GPL net/rds/rds 0x7bc62829 rds_stats_info_copy +EXPORT_SYMBOL_GPL net/rds/rds 0x7bca0799 rds_info_register_func +EXPORT_SYMBOL_GPL net/rds/rds 0x7c4c77f2 rds_atomic_send_complete +EXPORT_SYMBOL_GPL net/rds/rds 0x8d4bdb69 rds_for_each_conn_info +EXPORT_SYMBOL_GPL net/rds/rds 0x942f4057 rds_message_unmapped +EXPORT_SYMBOL_GPL net/rds/rds 0xa65c7244 rds_conn_drop +EXPORT_SYMBOL_GPL net/rds/rds 0xafcc3c1b rds_send_get_message +EXPORT_SYMBOL_GPL net/rds/rds 0xc2dab779 rds_info_copy +EXPORT_SYMBOL_GPL net/rds/rds 0xc92e70bd rds_info_deregister_func +EXPORT_SYMBOL_GPL net/rds/rds 0xc9ed5c30 rds_message_put +EXPORT_SYMBOL_GPL net/rds/rds 0xd0d7145d rds_conn_create +EXPORT_SYMBOL_GPL net/rds/rds 0xdf0452db rds_inc_put +EXPORT_SYMBOL_GPL net/rds/rds 0xe5c4b8ad rds_conn_connect_if_down +EXPORT_SYMBOL_GPL net/rds/rds 0xf1449795 rds_message_addref +EXPORT_SYMBOL_GPL net/rxrpc/af-rxrpc 0x38af7642 rxrpc_unregister_security +EXPORT_SYMBOL_GPL net/rxrpc/af-rxrpc 0xdd4cc4cc 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 0x5caea2f6 svcauth_gss_flavor +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x85b58d79 gss_mech_register +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0x8d1a827e svcauth_gss_register_pseudoflavor +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xb5dea7ef g_token_size +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xf1d145dd gss_mech_unregister +EXPORT_SYMBOL_GPL net/sunrpc/auth_gss/auth_rpcgss 0xf8b2ff6e g_verify_token_header +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x02f14a14 rpc_init_wait_queue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x045834e9 rpcauth_get_pseudoflavor +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x05e19cf7 svc_close_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x05e807a9 xdr_encode_string +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x05fc044d svc_shutdown_net +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x06304edf svc_auth_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x065994f1 xdr_encode_opaque_fixed +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x08aa76e0 xprt_write_space +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x08f73e13 sunrpc_cache_update +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0a3fde48 xdr_write_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0c2feff1 rpc_proc_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0c6a6344 svc_wake_up +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x0f668ba9 svc_auth_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1021216a xdr_stream_pos +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x13e50e6b svc_authenticate +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x15073874 put_rpccred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x15c74702 rpc_proc_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x17377d4c svc_create_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x18dd0971 xdr_process_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1be2bef0 rpcauth_init_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x1f2a9970 rpc_ntop +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x208d4d37 rpc_init_priority_wait_queue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2169cf64 xprt_register_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x217d57c6 svc_exit_thread +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x21fc8ccb rpc_localaddr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x239f357b write_bytes_to_xdr_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x262e7278 svc_set_num_threads +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x26754ed2 sunrpc_destroy_cache_detail +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x26c37659 svc_find_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x270859bd cache_purge +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2919b156 xdr_decode_string_inplace +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2b07267a svc_print_addr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2e1e696d sunrpc_cache_register_pipefs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2ed2563f rpc_mkpipe_data +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2eec63c9 xdr_encode_netobj +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2efcfc72 xdr_buf_trim +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2f7ef4b3 rpc_put_sb_net +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x2fdffebe xprt_set_retrans_timeout_rtt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x30edd7d4 xprt_adjust_cwnd +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x31908c63 rpc_destroy_wait_queue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x31a89d59 rpc_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x31f6aadb xprt_free +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3545b187 rpc_net_ns +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x361e6c0c rpc_call_sync +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3850c87c rpc_mkpipe_dentry +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x387e1639 rpc_pipefs_notifier_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3a80a543 rpc_wake_up_queued_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3c8aecb8 xdr_init_decode_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3d5b9fe8 rpc_alloc_iostats +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3e3e5def svc_xprt_enqueue +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3e540e4a xdr_enter_page +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3e5902f9 svc_xprt_names +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x3fdadb2f cache_register_net +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x406ef3de cache_destroy_net +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x420c6117 xdr_encode_word +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x437a3277 svc_rpcb_setup +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x44571ac0 svc_rpcb_cleanup +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x449122f4 rpc_print_iostats +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x476decc2 rpc_task_reset_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x48012347 _copy_from_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4945816c xprt_setup_backchannel +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4952a256 sunrpc_cache_pipe_upcall +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4cb0232a bc_svc_process +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4d3d7c07 rpc_free_iostats +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4e3b00df xdr_inline_decode +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4e56c257 rpc_release_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4eb9033f xprt_destroy_backchannel +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x4f5d7baa cache_unregister_net +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x50f13378 rpcauth_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x53445f68 nlm_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5434fe6c rpc_peeraddr2str +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x56de09a0 rpc_pipe_generic_upcall +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5772ab72 rpc_put_task_async +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x597f495c svc_proc_register +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5a7133f8 rpc_force_rebind +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5b6f4a78 rpc_queue_upcall +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5e54f1a4 rpc_get_timeout +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5eb09e13 svc_max_payload +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5eb7a215 rpc_restart_call +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5f0f95a9 rpc_bind_new_program +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5f11a804 rpc_unlink +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x5f7d5852 sunrpc_init_cache_detail +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x60ef63ab rpc_create +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x63d6dffd rpc_call_start +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x65bf0c85 xdr_terminate_string +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6728efdc rpc_shutdown_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x67685eda rpc_wake_up_first +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x68d497a1 rpcauth_init_credcache +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6a5f4448 rpcauth_create +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6be75ab1 rpc_uaddr2sockaddr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6c8e676b auth_domain_find +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x6d294e13 rpc_lookup_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7034c859 xprt_reserve_xprt_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x704e50aa xdr_shift_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x70544066 xs_swapper +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x71fa908a cache_flush +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7307df7a auth_domain_lookup +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x73859ce4 rpc_wake_up_next +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x73a93113 cache_check +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7437fe78 rpc_call_async +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x743dcd19 svc_recv +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x747d9e9d unix_domain_find +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x74991367 xprt_release_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x76dd8d46 xdr_decode_word +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x76f841c5 rpc_malloc +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7823ba71 rpc_protocol +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x78b8f160 rpc_clone_client_set_auth +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7a36ddbd rpc_wake_up +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7b6c703c rpcauth_generic_bind_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7bc6e279 svc_proc_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7cba4cad xdr_buf_from_iov +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7de53067 rpc_init_rtt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7f772f7a rpc_delay +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7fe6941b xdr_skb_read_bits +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x7ff2541e xprt_disconnect_done +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x80951b28 rpcauth_get_gssinfo +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x826c06e1 svc_addsock +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x83135946 rpc_d_lookup_sb +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x83cd726f rpc_clone_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x86806230 svc_prepare_thread +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x86b5fddb rpcb_getport_async +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8732b8ba rpc_setbufsize +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8897cb26 svc_create +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8af7f59d svc_drop +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8be26fea svc_bind +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8e8c61dc svc_destroy +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8ed856f1 xdr_encode_array2 +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x8f9e77e9 xdr_init_encode +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9100298f xprt_unregister_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x948c7eb9 xdr_inline_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x94b1b2c6 rpc_sleep_on_priority +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x95a022b3 rpc_destroy_pipe_data +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x98b75d64 rpcauth_list_flavors +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x99c8178c rpc_sleep_on +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9b4fc648 csum_partial_copy_to_xdr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0x9e399eb6 xprt_reserve_xprt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa41f3005 rpc_pton +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa67bb650 xprt_release_xprt_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xa8fe2f6d xdr_set_scratch_buffer +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xaaa72a28 __rpc_wait_for_completion_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xab2cc788 read_bytes_from_xdr_buf +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xabd7e39c xprt_complete_rqst +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xae3a2146 xprt_lookup_rqst +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xaf5bf6ef nfs_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb254bd82 svc_reserve +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb51a3724 rpc_pipefs_notifier_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xb83e3c3c rpc_lookup_machine_cred +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbadb7513 svc_sock_update_bufs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbdbd943c rpc_exit +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbf1cfab9 rpc_put_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xbf9d1b96 nfsd_debug +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc0c35bca rpc_get_sb_net +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc11f48ce xdr_partial_copy_from_skb +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc12435e3 rpc_calc_rto +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc30dbfd6 svc_process +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc3880471 xdr_decode_netobj +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc422d451 xprt_wait_for_buffer_space +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc6cceb97 xdr_reserve_space +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc852ef9d rpc_peeraddr +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc8adb474 sunrpc_cache_lookup +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc8e96dea qword_addhex +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xc9a1b885 rpc_killall_tasks +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xca028235 xdr_buf_subsegment +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xca2d415c sunrpc_cache_unregister_pipefs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xca63877b xprt_alloc +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcaeb7ea6 cache_create_net +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xceb39384 svc_xprt_init +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcee467f3 xprt_load_transport +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xcef162b0 svcauth_unix_set_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd41a32be svc_reg_xprt_class +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd5062ecd svc_xprt_put +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd5189ea0 xprt_set_retrans_timeout_def +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xd7ede4d8 rpcauth_unregister +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xde3a0b16 svc_set_client +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xde3dbbe2 rpc_rmdir +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe0a893b0 xdr_decode_array2 +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe1ac2bb8 sunrpc_net_id +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe28c8e15 xdr_init_decode +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe2af8e74 rpcauth_destroy_credcache +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe5919cb1 xdr_encode_opaque +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe5b94ea5 auth_domain_put +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe624373f svc_create_pooled +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe6a41176 rpc_max_payload +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe7c3f8e7 svc_unreg_xprt_class +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe9337d14 rpcauth_lookup_credcache +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xe97f4ce5 qword_get +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xed626db0 svc_seq_show +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xeda33d5e rpc_run_task +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xedcf6be4 qword_add +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xee26b8be xprt_release_rqst_cong +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xeeacab69 rpc_update_rtt +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xeed2d5ed svc_xprt_copy_addrs +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf236f98b rpc_count_iostats +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf45bc564 rpc_wake_up_status +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf46f911f xdr_read_pages +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf48e86b3 xprt_lock_and_alloc_slot +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf5b8a5dc svcauth_unix_purge +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf9699adc rpc_call_null +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf96b99f0 xprt_alloc_slot +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf9d1164c rpc_free +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xf9db5fc2 xprt_wake_pending_tasks +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfdfe3646 xdr_buf_read_netobj +EXPORT_SYMBOL_GPL net/sunrpc/sunrpc 0xfefd37c8 rpc_restart_call_prepare +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x05bf470e vsock_add_pending +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x0c79d5ef vm_sockets_get_local_cid +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x0da8ce47 vsock_find_bound_socket +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x0f31cc50 vsock_for_each_connected_socket +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x15c0c57c vsock_addr_init +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x2663cb64 vsock_addr_equals_addr +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x27c9666c vsock_stream_has_data +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x59d943c8 vsock_addr_cast +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x5c4706b9 vsock_insert_connected +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x751ff010 vsock_addr_unbind +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x76a9755c vsock_stream_has_space +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x7f730c80 vsock_core_exit +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x896c5d15 vsock_remove_bound +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0x970b77bc vsock_pending_work +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0xa18158ef vsock_core_init +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0xa841622d vsock_remove_pending +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0xadfdb1d8 vsock_enqueue_accept +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0xbd0f699d vsock_addr_bound +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0xd279fc34 vsock_remove_connected +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0xd95ac116 vsock_addr_validate +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0xee85f53d __vsock_create +EXPORT_SYMBOL_GPL net/vmw_vsock/vsock 0xf61ef3fb vsock_find_connected_socket +EXPORT_SYMBOL_GPL net/wimax/wimax 0x15814864 wimax_msg +EXPORT_SYMBOL_GPL net/wimax/wimax 0x1f6952d2 wimax_report_rfkill_hw +EXPORT_SYMBOL_GPL net/wimax/wimax 0x2a81dab1 wimax_msg_send +EXPORT_SYMBOL_GPL net/wimax/wimax 0x4f2ca751 wimax_msg_len +EXPORT_SYMBOL_GPL net/wimax/wimax 0x58563e37 wimax_dev_init +EXPORT_SYMBOL_GPL net/wimax/wimax 0x6aa57523 wimax_msg_alloc +EXPORT_SYMBOL_GPL net/wimax/wimax 0x6d196cdc wimax_msg_data_len +EXPORT_SYMBOL_GPL net/wimax/wimax 0x83bddb94 wimax_dev_rm +EXPORT_SYMBOL_GPL net/wimax/wimax 0x8ca4acf3 wimax_dev_add +EXPORT_SYMBOL_GPL net/wimax/wimax 0x91754eb1 wimax_msg_data +EXPORT_SYMBOL_GPL net/wimax/wimax 0xa2e97d3e wimax_report_rfkill_sw +EXPORT_SYMBOL_GPL net/wimax/wimax 0xa5d505eb wimax_state_get +EXPORT_SYMBOL_GPL net/wimax/wimax 0xe89e09a4 wimax_state_change +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x074c7a68 cfg80211_wext_giwmode +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x0b5b2cda cfg80211_wext_siwrts +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x21cf42b7 cfg80211_wext_giwfrag +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x30a1de32 cfg80211_wext_giwrts +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x60fc2355 cfg80211_wext_siwscan +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x89ce384f cfg80211_wext_siwmode +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0x8f25d20f cfg80211_wext_siwfrag +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xaf90f838 cfg80211_wext_giwretry +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xd88072ca cfg80211_wext_giwname +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xe170d841 cfg80211_wext_giwscan +EXPORT_SYMBOL_GPL net/wireless/cfg80211 0xedd44c32 cfg80211_wext_giwrange +EXPORT_SYMBOL_GPL net/xfrm/xfrm_algo 0x00778770 xfrm_ealg_get_byname +EXPORT_SYMBOL_GPL net/xfrm/xfrm_algo 0x056bb269 xfrm_ealg_get_byidx +EXPORT_SYMBOL_GPL net/xfrm/xfrm_algo 0x0a575945 xfrm_count_pfkey_auth_supported +EXPORT_SYMBOL_GPL net/xfrm/xfrm_algo 0x0b9e5852 xfrm_aead_get_byname +EXPORT_SYMBOL_GPL net/xfrm/xfrm_algo 0x28e23139 xfrm_probe_algs +EXPORT_SYMBOL_GPL net/xfrm/xfrm_algo 0x53cd6e06 pskb_put +EXPORT_SYMBOL_GPL net/xfrm/xfrm_algo 0x74e1a843 xfrm_aalg_get_byidx +EXPORT_SYMBOL_GPL net/xfrm/xfrm_algo 0x7a8ca627 xfrm_count_pfkey_enc_supported +EXPORT_SYMBOL_GPL net/xfrm/xfrm_algo 0x7c30b8c7 xfrm_calg_get_byname +EXPORT_SYMBOL_GPL net/xfrm/xfrm_algo 0x92dbc6c1 xfrm_aalg_get_byid +EXPORT_SYMBOL_GPL net/xfrm/xfrm_algo 0xbc8b0f41 xfrm_calg_get_byid +EXPORT_SYMBOL_GPL net/xfrm/xfrm_algo 0xce7a55c1 xfrm_ealg_get_byid +EXPORT_SYMBOL_GPL net/xfrm/xfrm_algo 0xe122af95 xfrm_aalg_get_byname +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0x2abd20c5 ipcomp_output +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0xae69294d ipcomp_destroy +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0xc479605d ipcomp_init_state +EXPORT_SYMBOL_GPL net/xfrm/xfrm_ipcomp 0xd0ac8746 ipcomp_input +EXPORT_SYMBOL_GPL sound/core/snd 0x3ca17104 __snd_printk +EXPORT_SYMBOL_GPL sound/core/snd 0x596fb7bc snd_kctl_jack_new +EXPORT_SYMBOL_GPL sound/core/snd 0x6c4fb415 snd_ctl_activate_id +EXPORT_SYMBOL_GPL sound/core/snd 0x8b3e049d snd_ctl_sync_vmaster +EXPORT_SYMBOL_GPL sound/core/snd 0xb453c359 snd_ctl_add_vmaster_hook +EXPORT_SYMBOL_GPL sound/core/snd 0xd630828f snd_kctl_jack_report +EXPORT_SYMBOL_GPL sound/core/snd-compress 0x198e4d0a snd_compress_register +EXPORT_SYMBOL_GPL sound/core/snd-compress 0x71e58ee5 snd_compress_deregister +EXPORT_SYMBOL_GPL sound/core/snd-compress 0x813a654f snd_compress_new +EXPORT_SYMBOL_GPL sound/core/snd-pcm 0x04e1b99f snd_pcm_std_chmaps +EXPORT_SYMBOL_GPL sound/core/snd-pcm 0x09e913c1 snd_pcm_alt_chmaps +EXPORT_SYMBOL_GPL sound/core/snd-pcm 0x11461a49 snd_pcm_lib_default_mmap +EXPORT_SYMBOL_GPL sound/core/snd-pcm 0xa286a234 snd_pcm_format_name +EXPORT_SYMBOL_GPL sound/core/snd-pcm 0xf5e5f57d snd_pcm_add_chmap_ctls +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0x03056ef6 snd_ak4113_create +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0x7922a0c0 snd_ak4113_reinit +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0xa1765805 snd_ak4113_reg_write +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0xc45da189 snd_ak4113_external_rate +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0xcfd3b834 snd_ak4113_check_rate_and_errors +EXPORT_SYMBOL_GPL sound/i2c/other/snd-ak4113 0xff23bbcb snd_ak4113_build +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x01e4dc57 __snd_hda_add_vmaster +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x02237d8e snd_hda_add_new_path +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x030b72ec snd_hda_query_supported_pcm +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x04f433a8 snd_hda_get_hint +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 0x068bdb8d snd_hda_jack_tbl_new +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x088769f6 snd_hda_parse_generic_codec +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x08c90284 snd_hda_get_sub_nodes +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x091a56b6 snd_hda_query_pin_caps +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x0a6daf1d snd_hda_codec_setup_stream +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x0bb8b8cf snd_hda_jack_tbl_get +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x0c966fb1 snd_hda_pin_sense +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x0d24769e snd_hda_jack_report_sync +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x0dfb2995 snd_hda_jack_unsol_event +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x0f69d3e1 snd_hda_load_patch +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x135674c5 snd_hda_gen_line_automute +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x141deb87 snd_hda_mixer_amp_switch_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x1634b630 snd_hda_mixer_amp_switch_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x1976d37f snd_hda_mixer_amp_switch_put_beep +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x1995c868 snd_hda_ch_mode_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x1bd00a54 snd_hda_jack_set_dirty_all +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x1bf8646f snd_hda_jack_set_gating_jack +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x1ed93326 snd_hda_codec_new +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x1f5540c1 snd_hda_is_supported_format +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x2152a51d snd_hda_override_pin_caps +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x2361eaef snd_hda_create_spdif_share_sw +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x2571edee snd_hda_codec_read +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x28365151 snd_hda_ctl_add +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x2ac7318d snd_hda_codec_write +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x2b24551b snd_hda_mixer_bind_switch_get +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x2e392c19 snd_hda_multi_out_dig_cleanup +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x2f1cc784 snd_hda_codec_amp_stereo +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x2f9160e6 snd_hda_check_amp_list_power +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x300c9236 snd_hda_get_conn_list +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x32f4ad5a snd_hda_codec_update_widgets +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x33bdbda7 snd_hda_find_mixer_ctl +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x3669e6a5 snd_hda_codec_configure +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x375cacd5 snd_hda_input_mux_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x39441b12 snd_hda_mixer_amp_volume_get +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x3a0d9c2d snd_hda_apply_pincfgs +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x3aa901bd snd_hda_get_nid_path +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x3c066579 snd_hda_gen_spec_init +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x3ca8f4b6 snd_hda_bind_vol +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x3fa50f33 snd_hda_check_board_codec_sid_config +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x48609adc snd_hda_unlock_devices +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4b08b328 snd_hda_gen_update_outputs +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4d012144 snd_hda_codec_write_cache +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4d9cf292 snd_hda_spdif_ctls_unassign +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4dab1f60 snd_hda_add_imux_item +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x4ece60b2 snd_hda_codec_amp_read +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5160e6f3 snd_hda_mixer_amp_tlv +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x52ddc01d snd_hda_input_mux_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5501a47a snd_hda_codec_resume_cache +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x58974ef3 snd_hda_jack_add_kctl +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5c0c5ba0 snd_hda_codec_get_pincfg +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5dda441f snd_hda_spdif_ctls_assign +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x5fc0402b snd_hda_bind_sw +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x60f72422 snd_hda_codec_amp_init_stereo +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x618d1239 snd_hda_get_int_hint +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x61f3a685 snd_hda_attach_beep_device +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x621196a4 query_amp_caps +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x636f94c2 snd_hda_gen_build_pcms +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x63b65479 snd_hda_add_vmaster_hook +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x658bc5c4 snd_hda_suspend +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x67f219c4 snd_hda_codec_get_pin_target +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x6bef9e5b snd_hda_apply_fixup +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x6c89a280 snd_hda_activate_path +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x6ef6d7c7 snd_hda_create_spdif_in_ctls +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x70e6484b snd_hda_get_connections +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x71b91da3 snd_hda_mixer_bind_ctls_get +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x725ef73e snd_hda_gen_parse_auto_config +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x72fffa1a snd_hda_set_vmaster_tlv +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7317f0f4 snd_hda_enum_helper_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x75ac2e23 snd_hda_add_new_ctls +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x76a11149 snd_hda_override_conn_list +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x76dc6871 hda_main_out_badness +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7753d06c snd_hda_get_pin_label +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x777f1383 snd_hda_sequence_write_cache +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7ba93069 hda_get_autocfg_input_label +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7c8edf46 snd_hda_build_controls +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x7d2d465f snd_hda_add_codec_preset +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x80a11099 snd_hda_jack_tbl_get_from_tag +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x80a93d1b snd_hda_mixer_bind_switch_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x8108a712 snd_hda_multi_out_analog_prepare +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x8526f98a snd_hda_multi_out_dig_close +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x8542d3ea snd_hda_multi_out_dig_prepare +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x871a6e44 hda_extra_out_badness +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x87f97b42 snd_hda_check_board_config +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x89443259 snd_hda_bus_new +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x89dd63e6 _snd_hda_set_pin_ctl +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x8c892929 __snd_hda_codec_cleanup_stream +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x8ce019a6 snd_hda_get_path_idx +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x8e4c6826 snd_hda_calc_stream_format +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x903b8fce snd_hda_sync_vmaster_hook +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x90e02ea5 snd_hda_mixer_amp_volume_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x92c97312 snd_hda_mixer_amp_volume_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x938b0c14 snd_hda_spdif_out_of_nid +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x94631db2 snd_hda_create_dig_out_ctls +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x970193f8 snd_hda_detach_beep_device +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x98b248d7 snd_hda_codec_flush_cache +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x99047d79 snd_hda_jack_add_kctls +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x99ab0b80 snd_hda_add_verbs +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9a783d56 snd_hda_parse_nid_path +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9a8e1877 snd_array_free +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9c26d616 snd_hda_codec_eapd_power_filter +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9cce2ef4 snd_hda_resume +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9d70200f snd_hda_get_bool_hint +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9deb60db snd_hda_bus_reboot_notify +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0x9e2f0fed 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 0xa3207b5c snd_hda_delete_codec_preset +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa38e2a89 snd_hda_jack_detect_enable +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xa6cc283c snd_hda_codec_resume_amp +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xaa624502 snd_hda_codec_amp_init +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xaca27d3f snd_hda_get_path_from_idx +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xae2df9c7 snd_hda_gen_free +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb16961d3 snd_hda_gen_init +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb539a215 snd_hda_codec_update_cache +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb55ca279 snd_hda_get_conn_index +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xb6274d2c snd_hda_codec_cleanup +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xbdb9de30 snd_hda_mixer_amp_switch_get +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xbddbfbcf snd_hda_mixer_amp_switch_get_beep +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xbe7dd7dc snd_array_new +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc0478e6f snd_hda_gen_add_kctl +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc06e4102 snd_hda_sequence_write +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc2510cbb snd_hda_lock_devices +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc2ef2289 snd_hda_ch_mode_get +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc51373a4 snd_hda_gen_check_power_status +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc652fd69 snd_hda_get_jack_connectivity +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc720892c snd_hda_get_default_vref +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc84483e2 snd_hda_enable_beep_device +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xc9f34092 snd_hda_multi_out_dig_open +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xcb301b6e snd_hda_get_jack_type +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xcd4d1446 snd_hda_build_pcms +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xcf50357d snd_hda_jack_detect +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd0265800 snd_hda_multi_out_analog_open +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd0a492f1 snd_hda_codec_set_pincfg +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd1a6076d snd_hda_multi_out_analog_cleanup +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd268d468 snd_hda_apply_verbs +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd644e515 is_jack_detectable +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd79328fe snd_hda_power_save +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xd81d2814 snd_hda_mixer_bind_ctls_info +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xda3475a3 snd_hda_mixer_bind_ctls_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xda55b67a snd_hda_correct_pin_ctl +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xde0b036c snd_hda_codec_set_power_to_all +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xde37b073 snd_hda_gen_hp_automute +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe071cd8d snd_hda_add_nid +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe118de5d snd_pcm_2_1_chmaps +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe20d10ff snd_hda_override_amp_caps +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe4c6e1af snd_hda_gen_spec_free +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe65b7b51 snd_hda_ch_mode_put +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xe930d954 snd_hda_jack_poll_all +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xeda3a721 snd_print_pcm_bits +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xedf2ab07 snd_hda_gen_mic_autoswitch +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf6882ecc snd_hda_codec_prepare +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xf9ea36c6 snd_hda_jack_detect_enable_callback +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xfc081c38 snd_hda_gen_build_controls +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xfc3893f6 snd_hda_parse_pin_defcfg +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xfd0988c2 snd_hda_codec_set_pin_target +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xfd4a8238 snd_hda_mixer_bind_tlv +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xfe0b4460 snd_hda_queue_unsol_event +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xfe0e8b04 snd_hda_shutup_pins +EXPORT_SYMBOL_GPL sound/pci/hda/snd-hda-codec 0xfe9aa9be snd_hda_pick_fixup +EXPORT_SYMBOL_GPL sound/soc/atmel/snd-soc-atmel-pcm 0x15ac5a3e atmel_pcm_free +EXPORT_SYMBOL_GPL sound/soc/atmel/snd-soc-atmel-pcm 0x846a632a atmel_pcm_new +EXPORT_SYMBOL_GPL sound/soc/atmel/snd-soc-atmel-pcm 0xbf217d92 atmel_pcm_mmap +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-88pm860x 0xc1815c8a pm860x_mic_jack_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-88pm860x 0xd0faa65c pm860x_hs_jack_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ab8500-codec 0x5e5b8b6d ab8500_audio_set_ear_cmv +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-ab8500-codec 0xd4619345 ab8500_audio_setup_mics +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-arizona 0x047eca9c arizona_simple_dai_ops +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-arizona 0x05ddbf0f arizona_lhpf4_mode +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-arizona 0x12ecde17 arizona_out_vi_ramp +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-arizona 0x183ba684 arizona_init_fll +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-arizona 0x196694e3 arizona_ng_hold +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-arizona 0x206e3ddf arizona_in_vi_ramp +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-arizona 0x3f429d4c arizona_isrc_fsl +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-arizona 0x41b95c1f arizona_in_vd_ramp +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-arizona 0x4ad50531 arizona_out_ev +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-arizona 0x50e0138e arizona_set_output_mode +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-arizona 0x547a7178 arizona_rate_val +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-arizona 0x57e590a8 arizona_lhpf1_mode +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-arizona 0x660d8a35 arizona_lhpf2_mode +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-arizona 0x7127e62a arizona_in_ev +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-arizona 0x733bbfd7 arizona_out_vd_ramp +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-arizona 0x8c821bc2 arizona_rate_text +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-arizona 0x8dd35bf2 arizona_mixer_values +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-arizona 0xa0f73c6b arizona_set_sysclk +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-arizona 0xab6861be arizona_mixer_texts +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-arizona 0xae9109d4 arizona_init_spk +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-arizona 0xb04ad963 arizona_set_fll +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-arizona 0xb8f6d461 arizona_hp_ev +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-arizona 0xc07a8181 arizona_lhpf3_mode +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-arizona 0xc9c29637 arizona_mixer_tlv +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-arizona 0xd143d39f arizona_set_fll_refclk +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-arizona 0xd2cfe4e2 arizona_dai_ops +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-arizona 0xf516e45f arizona_init_dai +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-cx20442 0xe9d3a7d8 v253_ops +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-l3 0x78c84c7e l3_write +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-max98090 0xedbe6c2c max98090_mic_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-max98095 0x1251592a max98095_jack_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-max9877 0xa545b65a max9877_add_controls +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tpa6130a2 0x21002840 tpa6130a2_add_controls +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-tpa6130a2 0xea97d037 tpa6130a2_stereo_enable +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-twl6040 0x198bd2db twl6040_get_dl1_gain +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-twl6040 0x1e82060e twl6040_get_clk_id +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-twl6040 0x25cb3eb6 twl6040_get_trim_value +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-twl6040 0x78fd3db3 twl6040_hs_jack_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-twl6040 0xcbf94e02 twl6040_get_hs_step_size +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wl1273 0x750e35bb wl1273_get_format +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-adsp 0x17004ddf wm_adsp1_init +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-adsp 0x435eaf3d wm_adsp2_init +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-adsp 0x58ac9c7e wm_adsp1_event +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-adsp 0x74b5df4e wm_adsp1_fw_controls +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-adsp 0x9e33022c wm_adsp2_fw_controls +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-adsp 0xb9142095 wm_adsp2_event +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-hubs 0x0382b2a7 wm_hubs_hpl_mux +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-hubs 0x142caf47 wm_hubs_handle_analogue_pdata +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-hubs 0x1ae424eb wm_hubs_update_class_w +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-hubs 0x3a5ed14c wm_hubs_hpr_mux +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-hubs 0x57486dc3 wm_hubs_vmid_ena +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-hubs 0x5cd7eb9b wm_hubs_dcs_done +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 0xa9dc1404 wm_hubs_add_analogue_controls +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-hubs 0xb26875ea wm_hubs_set_bias_level +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm-hubs 0xc207750b wm_hubs_add_analogue_routes +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8350 0x3ee32e11 wm8350_hp_jack_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8350 0x8179bfdc wm8350_mic_jack_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8903 0xd616dbec wm8903_mic_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8962 0x60590c5b wm8962_mic_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8994 0xbb907a27 wm8994_mic_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8994 0xf1819ac8 wm8958_mic_detect +EXPORT_SYMBOL_GPL sound/soc/codecs/snd-soc-wm8996 0xe4433f3d wm8996_detect +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x00afc056 snd_soc_default_volatile_register +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x0538122e soc_ac97_ops +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x062c6964 snd_soc_dpcm_be_get_state +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x06dceffb snd_soc_of_parse_daifmt +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x07531156 snd_soc_add_codec_controls +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x077113c1 snd_soc_get_dai_substream +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x080ed420 snd_soc_codec_set_pll +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x08f3ea67 snd_soc_dpcm_be_can_update +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x0a06f9c0 snd_soc_get_xr_sx +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x0e3bd3ed snd_soc_jack_add_pins +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x12dc75c0 snd_soc_set_ac97_ops +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x13e27a78 snd_soc_info_volsw_range +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x13fec0f5 snd_soc_jack_get_type +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x16566ced snd_soc_dapm_free +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x1b675847 snd_soc_dai_set_pll +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x1bfe3a68 snd_soc_dpcm_can_be_params +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x1f35a209 snd_soc_dai_set_channel_map +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x1fd08627 snd_soc_info_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2240cbdf snd_soc_dapm_force_enable_pin +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x23938bef snd_soc_dapm_get_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2510abd4 snd_soc_dapm_put_enum_virt +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2541a979 snd_soc_calc_frame_size +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2593bc80 snd_soc_dapm_ignore_suspend +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x299ce993 snd_soc_remove_platform +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x29ad98f4 snd_soc_dpcm_be_set_state +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2df68d06 snd_soc_dapm_enable_pin +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x2ea9c3e2 snd_soc_dapm_add_routes +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x315c9920 snd_soc_dpcm_get_substream +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x32145da3 snd_soc_set_runtime_hwparams +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x32bee2a3 snd_soc_lookup_platform +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x3366c60f snd_soc_of_parse_audio_routing +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x33a56ad5 snd_soc_dapm_get_pin_switch +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x34454871 snd_soc_bytes_get +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x3961a1c2 snd_soc_register_card +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x3a3c3a13 dapm_reg_event +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x3c713ed6 snd_soc_platform_trigger +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x3e64f416 snd_soc_dapm_get_pin_status +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x4077c168 snd_soc_get_volsw_s8 +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x42ba73b9 snd_soc_suspend +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x4378279c snd_soc_get_volsw_sx +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x43927d45 dapm_clock_event +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x43da22f9 snd_soc_platform_write +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x48d7583a snd_soc_update_bits_locked +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x4f58e5a3 dapm_mark_dirty +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x52388a63 snd_soc_free_ac97_codec +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x545f8ccf snd_soc_dapm_get_enum_virt +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x54e531f6 snd_soc_dapm_disable_pin +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x557654bc snd_soc_jack_notifier_register +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x55bde458 snd_soc_dapm_put_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x595ca567 snd_soc_dapm_new_widgets +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x596716f5 snd_soc_info_volsw_ext +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x5bf55cb0 snd_soc_get_pcm_runtime +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x6007e585 snd_soc_dai_set_sysclk +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x612e0b06 snd_soc_dapm_new_controls +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x62c00300 snd_soc_pm_ops +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x67ab4de4 snd_soc_of_parse_card_name +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x680713d3 snd_soc_bytes_info +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x6acebe66 snd_soc_dapm_info_pin_switch +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x6c40ad0a snd_soc_put_volsw_sx +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x6f4f4bfe snd_soc_put_volsw_s8 +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x6fecb9c0 snd_soc_get_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x714998c2 snd_soc_codec_set_cache_io +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x71eebf16 snd_soc_unregister_component +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x720a277e snd_soc_jack_add_zones +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7223f6c1 snd_soc_dapm_sync +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x72eb38e7 dapm_regulator_event +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x748ce7f9 snd_soc_codec_readable_register +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7493d440 snd_soc_dapm_nc_pin +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x74f232cc snd_soc_dapm_del_routes +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x76c71136 snd_soc_register_codec +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x77163c99 snd_soc_jack_free_gpios +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x78a63a66 snd_soc_unregister_platform +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x79a968b2 snd_soc_put_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x79ff1045 snd_soc_read +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7b229c82 snd_soc_resume +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7b476384 snd_soc_put_strobe +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7e606130 snd_soc_calc_bclk +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x7f1cb5f2 snd_soc_put_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x8048d643 dapm_mark_io_dirty +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x81bdbbd4 snd_soc_cnew +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x84c4cb6b snd_soc_put_volsw_range +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x84f55544 snd_soc_jack_notifier_unregister +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x85b826d0 snd_soc_jack_add_gpios +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x8cc381e7 snd_soc_debugfs_root +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x8dfdac57 snd_soc_default_readable_register +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x8eb37423 snd_soc_info_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x9434c759 snd_soc_get_volsw_range +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x9478117f snd_soc_cache_read +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x9aa612ca snd_soc_dpcm_can_be_free_stop +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x9f210faf snd_soc_add_platform +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0x9f33300d snd_soc_jack_report +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xa009e11d snd_soc_put_value_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xa0d1f4dd dpcm_be_dai_trigger +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xa3ce39b0 snd_soc_test_bits +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xa8f171cd snd_soc_dai_set_tdm_slot +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb0047dba snd_soc_add_card_controls +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb40a0d26 snd_soc_cache_write +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb4b314a7 snd_soc_jack_new +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb525bbea snd_soc_dapm_weak_routes +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb60b1f6d snd_soc_get_value_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb925bfb5 snd_soc_get_volsw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xb9b1ec1e snd_soc_dapm_put_pin_switch +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xbd70115b snd_soc_dai_set_tristate +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xbd84119a snd_soc_platform_read +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xbe657e0f snd_soc_dpcm_fe_can_update +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xbf037f2f snd_soc_dapm_mixer_update_power +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc33bdabc snd_soc_update_bits +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc62da2f9 snd_soc_register_component +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc6ed930d snd_soc_unregister_codec +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc7ad284e snd_soc_limit_volume +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc7ca100f snd_soc_new_ac97_codec +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc8269f94 snd_soc_params_to_frame_size +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xc9d70100 snd_soc_dapm_mux_update_power +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xca8a2ec7 snd_soc_put_xr_sx +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xcb8f2fdb snd_soc_info_xr_sx +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xd3476384 snd_soc_codec_set_sysclk +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xdec24c9b snd_soc_register_platform +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe15c0b39 snd_soc_info_volsw_s8 +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe4fb4339 snd_soc_dai_set_clkdiv +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe58610e6 snd_soc_codec_writable_register +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe5e37af0 snd_soc_get_strobe +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe69649c6 snd_soc_add_dai_controls +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe6da69db snd_soc_poweroff +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe6decdc6 snd_soc_bulk_write_raw +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xe6f01ab9 snd_soc_dai_set_fmt +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xea60cf30 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 0xee97e624 snd_soc_write +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xefd844c4 snd_soc_add_platform_controls +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf20f5da7 snd_soc_info_enum_ext +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf2449844 snd_soc_dapm_get_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf5294cad snd_soc_codec_volatile_register +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xf7b2eca4 snd_soc_dai_digital_mute +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xfb179499 snd_soc_dapm_put_value_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xfb32ffbb snd_soc_cache_sync +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xfcfa2185 snd_soc_bytes_put +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xfdde381a snd_soc_unregister_card +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xfe7897fa snd_soc_dapm_put_enum_double +EXPORT_SYMBOL_GPL sound/soc/snd-soc-core 0xff41cd90 snd_soc_default_writable_register +EXPORT_SYMBOL_GPL ubuntu/lttng/lib/lttng-lib-ring-buffer 0x09495459 lib_ring_buffer_switch_slow +EXPORT_SYMBOL_GPL ubuntu/lttng/lib/lttng-lib-ring-buffer 0x0d0f89d9 lib_ring_buffer_payload_file_operations +EXPORT_SYMBOL_GPL ubuntu/lttng/lib/lttng-lib-ring-buffer 0x0eb787eb lib_ring_buffer_release +EXPORT_SYMBOL_GPL ubuntu/lttng/lib/lttng-lib-ring-buffer 0x10a103c9 lib_ring_buffer_file_operations +EXPORT_SYMBOL_GPL ubuntu/lttng/lib/lttng-lib-ring-buffer 0x11ea7ed2 lib_ring_buffer_reserve_slow +EXPORT_SYMBOL_GPL ubuntu/lttng/lib/lttng-lib-ring-buffer 0x1466320c channel_destroy +EXPORT_SYMBOL_GPL ubuntu/lttng/lib/lttng-lib-ring-buffer 0x1f9f2955 lib_ring_buffer_open_read +EXPORT_SYMBOL_GPL ubuntu/lttng/lib/lttng-lib-ring-buffer 0x286f4e1c lib_ring_buffer_switch_remote +EXPORT_SYMBOL_GPL ubuntu/lttng/lib/lttng-lib-ring-buffer 0x29f1f566 lib_ring_buffer_iterator_release +EXPORT_SYMBOL_GPL ubuntu/lttng/lib/lttng-lib-ring-buffer 0x2eddb0f9 lib_ring_buffer_compat_ioctl +EXPORT_SYMBOL_GPL ubuntu/lttng/lib/lttng-lib-ring-buffer 0x41e4c986 lib_ring_buffer_read_offset_address +EXPORT_SYMBOL_GPL ubuntu/lttng/lib/lttng-lib-ring-buffer 0x51c7f30a lib_ring_buffer_mmap +EXPORT_SYMBOL_GPL ubuntu/lttng/lib/lttng-lib-ring-buffer 0x61767872 lib_ring_buffer_read +EXPORT_SYMBOL_GPL ubuntu/lttng/lib/lttng-lib-ring-buffer 0x620c7cf3 _lib_ring_buffer_memset +EXPORT_SYMBOL_GPL ubuntu/lttng/lib/lttng-lib-ring-buffer 0x66c378a5 _lib_ring_buffer_write +EXPORT_SYMBOL_GPL ubuntu/lttng/lib/lttng-lib-ring-buffer 0x6db2ac78 _lib_ring_buffer_copy_from_user_inatomic +EXPORT_SYMBOL_GPL ubuntu/lttng/lib/lttng-lib-ring-buffer 0x70e7d404 lib_ring_buffer_iterator_open +EXPORT_SYMBOL_GPL ubuntu/lttng/lib/lttng-lib-ring-buffer 0x73758bc2 channel_reset +EXPORT_SYMBOL_GPL ubuntu/lttng/lib/lttng-lib-ring-buffer 0x7538911e lib_ring_buffer_read_cstr +EXPORT_SYMBOL_GPL ubuntu/lttng/lib/lttng-lib-ring-buffer 0x7639081f channel_iterator_release +EXPORT_SYMBOL_GPL ubuntu/lttng/lib/lttng-lib-ring-buffer 0x78c82ae6 vfs_lib_ring_buffer_no_llseek +EXPORT_SYMBOL_GPL ubuntu/lttng/lib/lttng-lib-ring-buffer 0x83d3a267 vfs_lib_ring_buffer_mmap +EXPORT_SYMBOL_GPL ubuntu/lttng/lib/lttng-lib-ring-buffer 0x9c5a8ab8 lib_ring_buffer_get_subbuf +EXPORT_SYMBOL_GPL ubuntu/lttng/lib/lttng-lib-ring-buffer 0xa13e9d48 lib_ring_buffer_put_subbuf +EXPORT_SYMBOL_GPL ubuntu/lttng/lib/lttng-lib-ring-buffer 0xa39a7f63 lib_ring_buffer_move_consumer +EXPORT_SYMBOL_GPL ubuntu/lttng/lib/lttng-lib-ring-buffer 0xad8bc25c lib_ring_buffer_read_get_page +EXPORT_SYMBOL_GPL ubuntu/lttng/lib/lttng-lib-ring-buffer 0xb589c6c4 channel_get_next_record +EXPORT_SYMBOL_GPL ubuntu/lttng/lib/lttng-lib-ring-buffer 0xcf985895 lib_ring_buffer_get_next_record +EXPORT_SYMBOL_GPL ubuntu/lttng/lib/lttng-lib-ring-buffer 0xd228cc53 channel_get_ring_buffer +EXPORT_SYMBOL_GPL ubuntu/lttng/lib/lttng-lib-ring-buffer 0xd287a3b1 lib_ring_buffer_release_read +EXPORT_SYMBOL_GPL ubuntu/lttng/lib/lttng-lib-ring-buffer 0xd76185dd lib_ring_buffer_poll +EXPORT_SYMBOL_GPL ubuntu/lttng/lib/lttng-lib-ring-buffer 0xdced6339 lib_ring_buffer_reset +EXPORT_SYMBOL_GPL ubuntu/lttng/lib/lttng-lib-ring-buffer 0xdceecdce lib_ring_buffer_offset_address +EXPORT_SYMBOL_GPL ubuntu/lttng/lib/lttng-lib-ring-buffer 0xdd2ce812 channel_payload_file_operations +EXPORT_SYMBOL_GPL ubuntu/lttng/lib/lttng-lib-ring-buffer 0xe0a7c9e8 lib_ring_buffer_ioctl +EXPORT_SYMBOL_GPL ubuntu/lttng/lib/lttng-lib-ring-buffer 0xe3240170 lib_ring_buffer_splice_read +EXPORT_SYMBOL_GPL ubuntu/lttng/lib/lttng-lib-ring-buffer 0xe433042f lib_ring_buffer_open +EXPORT_SYMBOL_GPL ubuntu/lttng/lib/lttng-lib-ring-buffer 0xe436a7d0 vfs_lib_ring_buffer_splice_read +EXPORT_SYMBOL_GPL ubuntu/lttng/lib/lttng-lib-ring-buffer 0xe758dfed channel_create +EXPORT_SYMBOL_GPL ubuntu/lttng/lib/lttng-lib-ring-buffer 0xf0d9dea3 channel_iterator_open +EXPORT_SYMBOL_GPL ubuntu/lttng/lib/lttng-lib-ring-buffer 0xf6c9ba60 lib_ring_buffer_snapshot +EXPORT_SYMBOL_GPL ubuntu/lttng/lib/lttng-lib-ring-buffer 0xff78e101 __lib_ring_buffer_copy_to_user +EXPORT_SYMBOL_GPL ubuntu/lttng/lttng-statedump 0x826c372c lttng_statedump_start +EXPORT_SYMBOL_GPL ubuntu/lttng/lttng-tracer 0x002290f0 lttng_transport_unregister +EXPORT_SYMBOL_GPL ubuntu/lttng/lttng-tracer 0x13fdeb85 lttng_add_vppid_to_ctx +EXPORT_SYMBOL_GPL ubuntu/lttng/lttng-tracer 0x220b4dfd lttng_append_context +EXPORT_SYMBOL_GPL ubuntu/lttng/lttng-tracer 0x35151b33 lttng_add_ppid_to_ctx +EXPORT_SYMBOL_GPL ubuntu/lttng/lttng-tracer 0x3730c5b5 lttng_find_context +EXPORT_SYMBOL_GPL ubuntu/lttng/lttng-tracer 0x3c1c3936 lttng_event_put +EXPORT_SYMBOL_GPL ubuntu/lttng/lttng-tracer 0x8b00fa4a lttng_add_tid_to_ctx +EXPORT_SYMBOL_GPL ubuntu/lttng/lttng-tracer 0x8da35572 lttng_add_vtid_to_ctx +EXPORT_SYMBOL_GPL ubuntu/lttng/lttng-tracer 0x9bad5bf9 lttng_probe_register +EXPORT_SYMBOL_GPL ubuntu/lttng/lttng-tracer 0xa4b9cf9b lttng_add_hostname_to_ctx +EXPORT_SYMBOL_GPL ubuntu/lttng/lttng-tracer 0xace1ba11 lttng_event_get +EXPORT_SYMBOL_GPL ubuntu/lttng/lttng-tracer 0xaee1bab1 lttng_probe_unregister +EXPORT_SYMBOL_GPL ubuntu/lttng/lttng-tracer 0xbbcc5af5 lttng_add_pid_to_ctx +EXPORT_SYMBOL_GPL ubuntu/lttng/lttng-tracer 0xbd6ff5cd lttng_add_vpid_to_ctx +EXPORT_SYMBOL_GPL ubuntu/lttng/lttng-tracer 0xc3908596 lttng_add_procname_to_ctx +EXPORT_SYMBOL_GPL ubuntu/lttng/lttng-tracer 0xd3b95e10 lttng_transport_register +EXPORT_SYMBOL_GPL ubuntu/lttng/lttng-tracer 0xdfb33fa0 lttng_remove_context_field +EXPORT_SYMBOL_GPL ubuntu/lttng/lttng-tracer 0xf5d513d4 lttng_add_prio_to_ctx +EXPORT_SYMBOL_GPL ubuntu/lttng/lttng-tracer 0xfd93169e lttng_metadata_channel_destroy +EXPORT_SYMBOL_GPL ubuntu/lttng/lttng-tracer 0xfe09c3c4 lttng_add_nice_to_ctx +EXPORT_SYMBOL_GPL ubuntu/lttng/probes/lttng-ftrace 0x039bec92 lttng_ftrace_register +EXPORT_SYMBOL_GPL ubuntu/lttng/probes/lttng-ftrace 0x5479a280 lttng_ftrace_destroy_private +EXPORT_SYMBOL_GPL ubuntu/lttng/probes/lttng-ftrace 0xebe5b097 lttng_ftrace_unregister +EXPORT_SYMBOL_GPL ubuntu/lttng/probes/lttng-kprobes 0x04f90bc2 lttng_kprobes_register +EXPORT_SYMBOL_GPL ubuntu/lttng/probes/lttng-kprobes 0x745e41c9 lttng_kprobes_unregister +EXPORT_SYMBOL_GPL ubuntu/lttng/probes/lttng-kprobes 0xd25225cc lttng_kprobes_destroy_private +EXPORT_SYMBOL_GPL ubuntu/lttng/probes/lttng-kretprobes 0x618be214 lttng_kretprobes_destroy_private +EXPORT_SYMBOL_GPL ubuntu/lttng/probes/lttng-kretprobes 0x694bc1eb lttng_kretprobes_unregister +EXPORT_SYMBOL_GPL ubuntu/lttng/probes/lttng-kretprobes 0x8a3356ec lttng_kretprobes_register +EXPORT_SYMBOL_GPL vmlinux 0x0007d3e9 usb_disable_autosuspend +EXPORT_SYMBOL_GPL vmlinux 0x001cc898 tps6586x_clr_bits +EXPORT_SYMBOL_GPL vmlinux 0x004e412a devm_regmap_field_alloc +EXPORT_SYMBOL_GPL vmlinux 0x0067df75 ata_tf_from_fis +EXPORT_SYMBOL_GPL vmlinux 0x006bc072 hwrng_unregister +EXPORT_SYMBOL_GPL vmlinux 0x0070ef14 __tracepoint_rpm_idle +EXPORT_SYMBOL_GPL vmlinux 0x009078e0 tcp_reno_min_cwnd +EXPORT_SYMBOL_GPL vmlinux 0x00b4991a irq_domain_simple_ops +EXPORT_SYMBOL_GPL vmlinux 0x00c4dc87 timecounter_init +EXPORT_SYMBOL_GPL vmlinux 0x00d1deb7 scsi_queue_work +EXPORT_SYMBOL_GPL vmlinux 0x00d3fee7 xen_register_device_domain_owner +EXPORT_SYMBOL_GPL vmlinux 0x00d42b29 bd_unlink_disk_holder +EXPORT_SYMBOL_GPL vmlinux 0x00d8ad79 pci_find_next_ht_capability +EXPORT_SYMBOL_GPL vmlinux 0x00ebcb5d ata_id_string +EXPORT_SYMBOL_GPL vmlinux 0x01010c6d klist_add_before +EXPORT_SYMBOL_GPL vmlinux 0x0118db73 platform_device_del +EXPORT_SYMBOL_GPL vmlinux 0x011cf028 regulator_suspend_finish +EXPORT_SYMBOL_GPL vmlinux 0x0176d0c7 pci_reset_pri +EXPORT_SYMBOL_GPL vmlinux 0x01848a8e local_apic_timer_c2_ok +EXPORT_SYMBOL_GPL vmlinux 0x01a8505a sk_attach_filter +EXPORT_SYMBOL_GPL vmlinux 0x01dd35f8 __ip_route_output_key +EXPORT_SYMBOL_GPL vmlinux 0x01e1a8de kgdb_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0x01e89102 blk_queue_dma_drain +EXPORT_SYMBOL_GPL vmlinux 0x0217ec7c max8997_bulk_read +EXPORT_SYMBOL_GPL vmlinux 0x02261d12 tty_wakeup +EXPORT_SYMBOL_GPL vmlinux 0x02448233 wakeup_source_destroy +EXPORT_SYMBOL_GPL vmlinux 0x026211e2 memory_failure_queue +EXPORT_SYMBOL_GPL vmlinux 0x026e6216 pci_add_dynid +EXPORT_SYMBOL_GPL vmlinux 0x02794b9c ata_bmdma_error_handler +EXPORT_SYMBOL_GPL vmlinux 0x027a3222 pwm_disable +EXPORT_SYMBOL_GPL vmlinux 0x029836cc regcache_cache_only +EXPORT_SYMBOL_GPL vmlinux 0x029fdb30 sata_scr_valid +EXPORT_SYMBOL_GPL vmlinux 0x02dad6f6 fuse_get_req_for_background +EXPORT_SYMBOL_GPL vmlinux 0x031805b6 rio_mport_write_config_16 +EXPORT_SYMBOL_GPL vmlinux 0x031e93ec net_ns_type_operations +EXPORT_SYMBOL_GPL vmlinux 0x0334ec6f jump_label_rate_limit +EXPORT_SYMBOL_GPL vmlinux 0x0343bdf1 __i2c_board_list +EXPORT_SYMBOL_GPL vmlinux 0x036a3ce8 transport_configure_device +EXPORT_SYMBOL_GPL vmlinux 0x038067ad usb_hcd_pci_remove +EXPORT_SYMBOL_GPL vmlinux 0x03851358 blk_queue_flush +EXPORT_SYMBOL_GPL vmlinux 0x039922e9 posix_timers_register_clock +EXPORT_SYMBOL_GPL vmlinux 0x03e3686c ata_timing_cycle2mode +EXPORT_SYMBOL_GPL vmlinux 0x03eca9a1 btree_get_prev +EXPORT_SYMBOL_GPL vmlinux 0x03f282f9 thermal_zone_unbind_cooling_device +EXPORT_SYMBOL_GPL vmlinux 0x03f734c0 device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x043dcc9b extcon_get_cable_state_ +EXPORT_SYMBOL_GPL vmlinux 0x04486e88 rcu_batches_completed +EXPORT_SYMBOL_GPL vmlinux 0x0459fe5d invalidate_inode_pages2 +EXPORT_SYMBOL_GPL vmlinux 0x0465a073 regmap_reg_in_ranges +EXPORT_SYMBOL_GPL vmlinux 0x048b6c45 ata_host_activate +EXPORT_SYMBOL_GPL vmlinux 0x04b33631 iommu_domain_has_cap +EXPORT_SYMBOL_GPL vmlinux 0x04c3f2c1 gnttab_empty_grant_references +EXPORT_SYMBOL_GPL vmlinux 0x04c4f603 mpi_get_buffer +EXPORT_SYMBOL_GPL vmlinux 0x04d1371b dma_buf_unmap_attachment +EXPORT_SYMBOL_GPL vmlinux 0x04df8fbc lzo1x_decompress_safe +EXPORT_SYMBOL_GPL vmlinux 0x05143008 devres_find +EXPORT_SYMBOL_GPL vmlinux 0x0531dcb8 ata_dev_classify +EXPORT_SYMBOL_GPL vmlinux 0x053494cb tpm_get_random +EXPORT_SYMBOL_GPL vmlinux 0x053b36b4 usb_enable_lpm +EXPORT_SYMBOL_GPL vmlinux 0x054e550b kernel_halt +EXPORT_SYMBOL_GPL vmlinux 0x0551f0ce tick_nohz_idle_exit +EXPORT_SYMBOL_GPL vmlinux 0x055511c5 irq_set_default_host +EXPORT_SYMBOL_GPL vmlinux 0x055710a0 ftrace_set_filter +EXPORT_SYMBOL_GPL vmlinux 0x0560cf52 ip6_dst_lookup +EXPORT_SYMBOL_GPL vmlinux 0x058b582a vt_get_leds +EXPORT_SYMBOL_GPL vmlinux 0x05cdd007 sk_set_memalloc +EXPORT_SYMBOL_GPL vmlinux 0x05fee27b dma_buf_kunmap +EXPORT_SYMBOL_GPL vmlinux 0x060d1064 set_memory_ro +EXPORT_SYMBOL_GPL vmlinux 0x0626da5f od_unregister_powersave_bias_handler +EXPORT_SYMBOL_GPL vmlinux 0x062fc169 xen_hvm_resume_frames +EXPORT_SYMBOL_GPL vmlinux 0x063ffe3a ping_getfrag +EXPORT_SYMBOL_GPL vmlinux 0x064db9a5 mark_mounts_for_expiry +EXPORT_SYMBOL_GPL vmlinux 0x065bf70f fsstack_copy_inode_size +EXPORT_SYMBOL_GPL vmlinux 0x06a3d356 crypto_ablkcipher_type +EXPORT_SYMBOL_GPL vmlinux 0x06b913d8 find_vpid +EXPORT_SYMBOL_GPL vmlinux 0x06d2ce5a usb_poison_urb +EXPORT_SYMBOL_GPL vmlinux 0x06e9e208 ata_host_suspend +EXPORT_SYMBOL_GPL vmlinux 0x06ffd847 blocking_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0x07061d41 da9052_disable_irq_nosync +EXPORT_SYMBOL_GPL vmlinux 0x0707cd1e nf_queue_entry_release_refs +EXPORT_SYMBOL_GPL vmlinux 0x07259b45 fat_free_clusters +EXPORT_SYMBOL_GPL vmlinux 0x0739539c ehci_handshake +EXPORT_SYMBOL_GPL vmlinux 0x0760cf35 ata_port_schedule_eh +EXPORT_SYMBOL_GPL vmlinux 0x0762403c edac_put_sysfs_subsys +EXPORT_SYMBOL_GPL vmlinux 0x079170bf platform_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x07b21f85 kdb_get_kbd_char +EXPORT_SYMBOL_GPL vmlinux 0x07b52e38 rtnl_unregister +EXPORT_SYMBOL_GPL vmlinux 0x07bfbf0e hypervisor_kobj +EXPORT_SYMBOL_GPL vmlinux 0x07cf3227 clk_fixed_rate_ops +EXPORT_SYMBOL_GPL vmlinux 0x07f0a8e0 user_read +EXPORT_SYMBOL_GPL vmlinux 0x07fc478e acpi_dev_resource_interrupt +EXPORT_SYMBOL_GPL vmlinux 0x08802f73 rtc_class_close +EXPORT_SYMBOL_GPL vmlinux 0x088bfa7e cancel_work_sync +EXPORT_SYMBOL_GPL vmlinux 0x088fddc5 _submit_bh +EXPORT_SYMBOL_GPL vmlinux 0x08a78ff2 rio_route_add_entry +EXPORT_SYMBOL_GPL vmlinux 0x08a8753a bus_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x08bc0870 compat_put_timespec +EXPORT_SYMBOL_GPL vmlinux 0x09084bc3 usb_find_interface +EXPORT_SYMBOL_GPL vmlinux 0x091eb9b4 round_jiffies +EXPORT_SYMBOL_GPL vmlinux 0x094313d7 hrtimer_cancel +EXPORT_SYMBOL_GPL vmlinux 0x09437748 ring_buffer_read_events_cpu +EXPORT_SYMBOL_GPL vmlinux 0x09469482 kfree_call_rcu +EXPORT_SYMBOL_GPL vmlinux 0x09741cbc usb_deregister_device_driver +EXPORT_SYMBOL_GPL vmlinux 0x098464f9 __pci_complete_power_transition +EXPORT_SYMBOL_GPL vmlinux 0x098710ba usb_acpi_set_power_state +EXPORT_SYMBOL_GPL vmlinux 0x09cb0737 ata_cable_ignore +EXPORT_SYMBOL_GPL vmlinux 0x0a0116e0 xenbus_dev_attrs +EXPORT_SYMBOL_GPL vmlinux 0x0a0d2959 pm_generic_resume_noirq +EXPORT_SYMBOL_GPL vmlinux 0x0a8082d0 crypto_init_ahash_spawn +EXPORT_SYMBOL_GPL vmlinux 0x0a912f82 bus_get_device_klist +EXPORT_SYMBOL_GPL vmlinux 0x0a9501fe crypto_larval_kill +EXPORT_SYMBOL_GPL vmlinux 0x0a9ba235 file_ra_state_init +EXPORT_SYMBOL_GPL vmlinux 0x0afd537d agp_remove_bridge +EXPORT_SYMBOL_GPL vmlinux 0x0b07abe2 unshare_fs_struct +EXPORT_SYMBOL_GPL vmlinux 0x0b19ed7c apei_estatus_check_header +EXPORT_SYMBOL_GPL vmlinux 0x0b4882c1 dma_request_slave_channel +EXPORT_SYMBOL_GPL vmlinux 0x0b52e502 apei_resources_add +EXPORT_SYMBOL_GPL vmlinux 0x0b566d22 wm831x_reg_write +EXPORT_SYMBOL_GPL vmlinux 0x0b7b9554 wakeup_source_unregister +EXPORT_SYMBOL_GPL vmlinux 0x0b84c0a5 cgroup_next_sibling +EXPORT_SYMBOL_GPL vmlinux 0x0ba936b9 acpi_dev_get_resources +EXPORT_SYMBOL_GPL vmlinux 0x0bae62b1 ktime_get_monotonic_offset +EXPORT_SYMBOL_GPL vmlinux 0x0bbdc238 __put_task_struct +EXPORT_SYMBOL_GPL vmlinux 0x0bd9155b irq_alloc_generic_chip +EXPORT_SYMBOL_GPL vmlinux 0x0be755cc pci_intx +EXPORT_SYMBOL_GPL vmlinux 0x0be8cb31 btree_lookup +EXPORT_SYMBOL_GPL vmlinux 0x0bfa3a19 rcu_idle_exit +EXPORT_SYMBOL_GPL vmlinux 0x0c0c015e ring_buffer_swap_cpu +EXPORT_SYMBOL_GPL vmlinux 0x0c2cdbf1 synchronize_sched +EXPORT_SYMBOL_GPL vmlinux 0x0c4e5865 fat_time_unix2fat +EXPORT_SYMBOL_GPL vmlinux 0x0c70d6b9 __inet_hash_nolisten +EXPORT_SYMBOL_GPL vmlinux 0x0c805f93 clflush_cache_range +EXPORT_SYMBOL_GPL vmlinux 0x0c80e3fe efivar_init +EXPORT_SYMBOL_GPL vmlinux 0x0ca63344 __inet_twsk_hashdance +EXPORT_SYMBOL_GPL vmlinux 0x0caaceb5 cred_to_ucred +EXPORT_SYMBOL_GPL vmlinux 0x0cc13c62 da903x_reads +EXPORT_SYMBOL_GPL vmlinux 0x0cc1e40f crypto_it_tab +EXPORT_SYMBOL_GPL vmlinux 0x0ce0ade7 inet_twsk_schedule +EXPORT_SYMBOL_GPL vmlinux 0x0d149a44 dm_noflush_suspending +EXPORT_SYMBOL_GPL vmlinux 0x0d236425 xenbus_probe_devices +EXPORT_SYMBOL_GPL vmlinux 0x0d30a93e pm_generic_resume_early +EXPORT_SYMBOL_GPL vmlinux 0x0d320d16 ata_sff_softreset +EXPORT_SYMBOL_GPL vmlinux 0x0d552fb4 usb_kill_urb +EXPORT_SYMBOL_GPL vmlinux 0x0d6318ae crypto_alloc_tfm +EXPORT_SYMBOL_GPL vmlinux 0x0d981b48 ata_do_eh +EXPORT_SYMBOL_GPL vmlinux 0x0da02f91 tpm_dev_release +EXPORT_SYMBOL_GPL vmlinux 0x0da5869e __pm_runtime_idle +EXPORT_SYMBOL_GPL vmlinux 0x0db8ef7e pwm_set_chip_data +EXPORT_SYMBOL_GPL vmlinux 0x0dc32c52 usb_queue_reset_device +EXPORT_SYMBOL_GPL vmlinux 0x0dcc625a acpi_dev_runtime_suspend +EXPORT_SYMBOL_GPL vmlinux 0x0dd11f01 hrtimer_get_remaining +EXPORT_SYMBOL_GPL vmlinux 0x0dec3a9d __pci_hp_register +EXPORT_SYMBOL_GPL vmlinux 0x0df2bc01 pcie_port_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x0e02a5d8 usb_hcd_unmap_urb_for_dma +EXPORT_SYMBOL_GPL vmlinux 0x0e13cb4d apei_resources_release +EXPORT_SYMBOL_GPL vmlinux 0x0e20bc07 ata_sas_port_start +EXPORT_SYMBOL_GPL vmlinux 0x0e7692b3 mnt_drop_write +EXPORT_SYMBOL_GPL vmlinux 0x0e93c889 acpi_dma_controller_register +EXPORT_SYMBOL_GPL vmlinux 0x0eb56b30 devm_usb_put_phy +EXPORT_SYMBOL_GPL vmlinux 0x0ec9c8e9 register_wide_hw_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0x0ecf823a static_key_slow_dec +EXPORT_SYMBOL_GPL vmlinux 0x0ef06974 spi_populate_ppr_msg +EXPORT_SYMBOL_GPL vmlinux 0x0f02d6ba srcu_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x0f1dbc5e xenbus_map_ring_valloc +EXPORT_SYMBOL_GPL vmlinux 0x0f28dde9 skb_tstamp_tx +EXPORT_SYMBOL_GPL vmlinux 0x0f2d7d87 mce_unregister_decode_chain +EXPORT_SYMBOL_GPL vmlinux 0x0f529b0c virtqueue_detach_unused_buf +EXPORT_SYMBOL_GPL vmlinux 0x0f751aea input_event_from_user +EXPORT_SYMBOL_GPL vmlinux 0x0f81920c usb_autopm_get_interface +EXPORT_SYMBOL_GPL vmlinux 0x0fa138de xen_hvm_need_lapic +EXPORT_SYMBOL_GPL vmlinux 0x0fcc1969 copy_from_user_nmi +EXPORT_SYMBOL_GPL vmlinux 0x0fe2d570 xenbus_directory +EXPORT_SYMBOL_GPL vmlinux 0x0fe36459 regulator_enable_regmap +EXPORT_SYMBOL_GPL vmlinux 0x0fee2eec vfs_setlease +EXPORT_SYMBOL_GPL vmlinux 0x100a6252 register_hotplug_dock_device +EXPORT_SYMBOL_GPL vmlinux 0x100e3cc4 sdio_enable_func +EXPORT_SYMBOL_GPL vmlinux 0x10138352 tracing_on +EXPORT_SYMBOL_GPL vmlinux 0x10291853 devm_regulator_put +EXPORT_SYMBOL_GPL vmlinux 0x102d3290 dev_pm_put_subsys_data +EXPORT_SYMBOL_GPL vmlinux 0x1042ce8c ata_sas_async_probe +EXPORT_SYMBOL_GPL vmlinux 0x1058e0f6 dev_pm_qos_remove_request +EXPORT_SYMBOL_GPL vmlinux 0x107f4101 regmap_update_bits_check +EXPORT_SYMBOL_GPL vmlinux 0x109d3480 regulator_get +EXPORT_SYMBOL_GPL vmlinux 0x10d07dea gen_pool_avail +EXPORT_SYMBOL_GPL vmlinux 0x10ecc52c usb_amd_quirk_pll_enable +EXPORT_SYMBOL_GPL vmlinux 0x110106c1 cper_severity_to_aer +EXPORT_SYMBOL_GPL vmlinux 0x112686d4 ata_pio_need_iordy +EXPORT_SYMBOL_GPL vmlinux 0x114f1a20 balloon_stats +EXPORT_SYMBOL_GPL vmlinux 0x1172ce54 rtc_ktime_to_tm +EXPORT_SYMBOL_GPL vmlinux 0x117c7305 hwpoison_filter_dev_major +EXPORT_SYMBOL_GPL vmlinux 0x1187437f acpi_dev_pm_remove_dependent +EXPORT_SYMBOL_GPL vmlinux 0x1188f2ed dma_buf_mmap +EXPORT_SYMBOL_GPL vmlinux 0x119a8759 cgroup_attach_task_all +EXPORT_SYMBOL_GPL vmlinux 0x119af014 cpu_bit_bitmap +EXPORT_SYMBOL_GPL vmlinux 0x11cc8c50 spi_write_then_read +EXPORT_SYMBOL_GPL vmlinux 0x11e98397 ipv6_recv_error +EXPORT_SYMBOL_GPL vmlinux 0x11f447ce __gpio_to_irq +EXPORT_SYMBOL_GPL vmlinux 0x121183db sata_scr_write +EXPORT_SYMBOL_GPL vmlinux 0x12146c3a nf_register_afinfo +EXPORT_SYMBOL_GPL vmlinux 0x121d958a unregister_die_notifier +EXPORT_SYMBOL_GPL vmlinux 0x121ed3f3 add_timer_on +EXPORT_SYMBOL_GPL vmlinux 0x121f73bb usb_anchor_empty +EXPORT_SYMBOL_GPL vmlinux 0x122a88e5 dev_attr_em_message +EXPORT_SYMBOL_GPL vmlinux 0x122b6279 scsi_unregister_acpi_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x1231660b pci_hp_add_bridge +EXPORT_SYMBOL_GPL vmlinux 0x124f2056 crypto_get_attr_type +EXPORT_SYMBOL_GPL vmlinux 0x1258d9d9 regulator_disable +EXPORT_SYMBOL_GPL vmlinux 0x1262142c ping_get_port +EXPORT_SYMBOL_GPL vmlinux 0x1268f357 resume_device_irqs +EXPORT_SYMBOL_GPL vmlinux 0x129b2e2a pci_renumber_slot +EXPORT_SYMBOL_GPL vmlinux 0x12c6ed23 __remove_pages +EXPORT_SYMBOL_GPL vmlinux 0x12d754fa tpm_do_selftest +EXPORT_SYMBOL_GPL vmlinux 0x12f2b269 bus_unregister +EXPORT_SYMBOL_GPL vmlinux 0x1300565b device_store_bool +EXPORT_SYMBOL_GPL vmlinux 0x131a5ed7 regmap_del_irq_chip +EXPORT_SYMBOL_GPL vmlinux 0x131db64a system_long_wq +EXPORT_SYMBOL_GPL vmlinux 0x138aff76 gnttab_init +EXPORT_SYMBOL_GPL vmlinux 0x13ce87e8 asn1_ber_decoder +EXPORT_SYMBOL_GPL vmlinux 0x13fc31be virtqueue_enable_cb_delayed +EXPORT_SYMBOL_GPL vmlinux 0x1400cd1e tps6586x_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x1416c8d6 put_compat_timeval +EXPORT_SYMBOL_GPL vmlinux 0x142835ac bus_register +EXPORT_SYMBOL_GPL vmlinux 0x1433b4b4 pci_ats_queue_depth +EXPORT_SYMBOL_GPL vmlinux 0x145fd596 kset_create_and_add +EXPORT_SYMBOL_GPL vmlinux 0x146dad97 spi_add_device +EXPORT_SYMBOL_GPL vmlinux 0x14769369 locks_release_private +EXPORT_SYMBOL_GPL vmlinux 0x14811e3e tty_ldisc_flush +EXPORT_SYMBOL_GPL vmlinux 0x14a3de87 serial8250_release_dma +EXPORT_SYMBOL_GPL vmlinux 0x14b48e52 regmap_bulk_write +EXPORT_SYMBOL_GPL vmlinux 0x14d0f4ff ata_pci_bmdma_clear_simplex +EXPORT_SYMBOL_GPL vmlinux 0x14de85e1 pm_runtime_barrier +EXPORT_SYMBOL_GPL vmlinux 0x14f7a28e dm_set_device_limits +EXPORT_SYMBOL_GPL vmlinux 0x14f875ce devm_regmap_init_mmio_clk +EXPORT_SYMBOL_GPL vmlinux 0x15010e1f arbitrary_virt_to_machine +EXPORT_SYMBOL_GPL vmlinux 0x1501bf65 __wake_up_sync_key +EXPORT_SYMBOL_GPL vmlinux 0x15026a32 snmp_mib_init +EXPORT_SYMBOL_GPL vmlinux 0x15241256 xenbus_map_ring +EXPORT_SYMBOL_GPL vmlinux 0x154c6511 sdio_memcpy_fromio +EXPORT_SYMBOL_GPL vmlinux 0x156df360 wm831x_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x156e16c3 device_rename +EXPORT_SYMBOL_GPL vmlinux 0x158275f8 ip_build_and_send_pkt +EXPORT_SYMBOL_GPL vmlinux 0x1586e113 vtime_account_irq_enter +EXPORT_SYMBOL_GPL vmlinux 0x15892417 async_synchronize_cookie +EXPORT_SYMBOL_GPL vmlinux 0x15b0606e e820_any_mapped +EXPORT_SYMBOL_GPL vmlinux 0x15fa7620 pwmchip_add +EXPORT_SYMBOL_GPL vmlinux 0x16000a3c dm_device_name +EXPORT_SYMBOL_GPL vmlinux 0x1618ae1c find_module +EXPORT_SYMBOL_GPL vmlinux 0x1624fc43 napi_hash_add +EXPORT_SYMBOL_GPL vmlinux 0x162974e1 led_trigger_rename_static +EXPORT_SYMBOL_GPL vmlinux 0x1637e525 verify_signature +EXPORT_SYMBOL_GPL vmlinux 0x1650bf27 rcutorture_record_progress +EXPORT_SYMBOL_GPL vmlinux 0x165c2efb clk_get_rate +EXPORT_SYMBOL_GPL vmlinux 0x166f35e3 agp_add_bridge +EXPORT_SYMBOL_GPL vmlinux 0x1681e788 regmap_async_complete_cb +EXPORT_SYMBOL_GPL vmlinux 0x168233c1 scsi_get_vpd_page +EXPORT_SYMBOL_GPL vmlinux 0x168f5114 blocking_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x16a315ff device_reset +EXPORT_SYMBOL_GPL vmlinux 0x16a7d80b ata_qc_complete +EXPORT_SYMBOL_GPL vmlinux 0x16ed395e bitmap_resize +EXPORT_SYMBOL_GPL vmlinux 0x1704ae66 arizona_dev_exit +EXPORT_SYMBOL_GPL vmlinux 0x170c18b8 device_create_with_groups +EXPORT_SYMBOL_GPL vmlinux 0x175e88a1 cpuidle_register_device +EXPORT_SYMBOL_GPL vmlinux 0x1760b798 irq_find_mapping +EXPORT_SYMBOL_GPL vmlinux 0x17614bf3 apei_resources_sub +EXPORT_SYMBOL_GPL vmlinux 0x1793776b xenbus_dev_is_online +EXPORT_SYMBOL_GPL vmlinux 0x179fd872 watchdog_unregister_device +EXPORT_SYMBOL_GPL vmlinux 0x17a114df ata_dummy_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x17bdcf0a pci_set_pcie_reset_state +EXPORT_SYMBOL_GPL vmlinux 0x1829b9ed hwpoison_filter_memcg +EXPORT_SYMBOL_GPL vmlinux 0x1830b7e5 __pci_reset_function +EXPORT_SYMBOL_GPL vmlinux 0x183e986b __fat_fs_error +EXPORT_SYMBOL_GPL vmlinux 0x1848d7d7 __tracepoint_rpm_resume +EXPORT_SYMBOL_GPL vmlinux 0x1853653c btree_alloc +EXPORT_SYMBOL_GPL vmlinux 0x1857acc8 crypto_blkcipher_type +EXPORT_SYMBOL_GPL vmlinux 0x18582826 amd_pmu_disable_virt +EXPORT_SYMBOL_GPL vmlinux 0x185e0c7e devm_pwm_put +EXPORT_SYMBOL_GPL vmlinux 0x1866cec2 ring_buffer_size +EXPORT_SYMBOL_GPL vmlinux 0x1878f62b edac_err_assert +EXPORT_SYMBOL_GPL vmlinux 0x1887d975 rio_request_outb_dbell +EXPORT_SYMBOL_GPL vmlinux 0x18bd08fd ata_sas_queuecmd +EXPORT_SYMBOL_GPL vmlinux 0x18bf22cf pci_dev_run_wake +EXPORT_SYMBOL_GPL vmlinux 0x18dae9c6 adp5520_write +EXPORT_SYMBOL_GPL vmlinux 0x18e094e1 rio_release_dma +EXPORT_SYMBOL_GPL vmlinux 0x18ecb693 cpuidle_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x18f83fab gnttab_grant_foreign_access_ref +EXPORT_SYMBOL_GPL vmlinux 0x193477e0 seq_open_net +EXPORT_SYMBOL_GPL vmlinux 0x193d48e0 trace_current_buffer_unlock_commit +EXPORT_SYMBOL_GPL vmlinux 0x1948bfe6 dma_get_required_mask +EXPORT_SYMBOL_GPL vmlinux 0x19508cbf filter_current_check_discard +EXPORT_SYMBOL_GPL vmlinux 0x196614ce hw_breakpoint_restore +EXPORT_SYMBOL_GPL vmlinux 0x197216cb xfrm_audit_state_notfound_simple +EXPORT_SYMBOL_GPL vmlinux 0x1993e218 cpuidle_get_cpu_driver +EXPORT_SYMBOL_GPL vmlinux 0x19a081f3 rtc_update_irq_enable +EXPORT_SYMBOL_GPL vmlinux 0x19a304ba usb_disabled +EXPORT_SYMBOL_GPL vmlinux 0x19a6ea8f sysfs_merge_group +EXPORT_SYMBOL_GPL vmlinux 0x19a9bce9 ping_recvmsg +EXPORT_SYMBOL_GPL vmlinux 0x19cd03c9 cgroup_unload_subsys +EXPORT_SYMBOL_GPL vmlinux 0x19ce4278 tcp_register_congestion_control +EXPORT_SYMBOL_GPL vmlinux 0x19fc7f60 regulator_set_mode +EXPORT_SYMBOL_GPL vmlinux 0x1a02d3e3 i2c_adapter_type +EXPORT_SYMBOL_GPL vmlinux 0x1a082d69 max77693_update_reg +EXPORT_SYMBOL_GPL vmlinux 0x1a323362 __ftrace_vbprintk +EXPORT_SYMBOL_GPL vmlinux 0x1a3b97cf regcache_sync_region +EXPORT_SYMBOL_GPL vmlinux 0x1a480500 __pm_runtime_use_autosuspend +EXPORT_SYMBOL_GPL vmlinux 0x1a75b44e sec_reg_write +EXPORT_SYMBOL_GPL vmlinux 0x1a8070c9 uhci_check_and_reset_hc +EXPORT_SYMBOL_GPL vmlinux 0x1a95ed71 inet_ctl_sock_create +EXPORT_SYMBOL_GPL vmlinux 0x1aabf201 usb_autopm_put_interface_async +EXPORT_SYMBOL_GPL vmlinux 0x1ad83009 trace_seq_vprintf +EXPORT_SYMBOL_GPL vmlinux 0x1b08b126 simple_attr_read +EXPORT_SYMBOL_GPL vmlinux 0x1b27519f device_show_int +EXPORT_SYMBOL_GPL vmlinux 0x1b3c9291 tcp_orphan_count +EXPORT_SYMBOL_GPL vmlinux 0x1b60f186 ip6_datagram_recv_ctl +EXPORT_SYMBOL_GPL vmlinux 0x1b617d5b smp_ops +EXPORT_SYMBOL_GPL vmlinux 0x1b6750d5 xen_swiotlb_map_page +EXPORT_SYMBOL_GPL vmlinux 0x1b908b63 crypto_find_alg +EXPORT_SYMBOL_GPL vmlinux 0x1b9aca3f jprobe_return +EXPORT_SYMBOL_GPL vmlinux 0x1ba70bf1 platform_create_bundle +EXPORT_SYMBOL_GPL vmlinux 0x1bad70f2 cgroup_taskset_first +EXPORT_SYMBOL_GPL vmlinux 0x1bca0192 serial8250_modem_status +EXPORT_SYMBOL_GPL vmlinux 0x1bd06aab cpufreq_frequency_table_get_attr +EXPORT_SYMBOL_GPL vmlinux 0x1bd61253 da9052_adc_manual_read +EXPORT_SYMBOL_GPL vmlinux 0x1c07abf8 inet_twsk_put +EXPORT_SYMBOL_GPL vmlinux 0x1c0e490d blkcg_policy_unregister +EXPORT_SYMBOL_GPL vmlinux 0x1c139b85 wm831x_regmap_config +EXPORT_SYMBOL_GPL vmlinux 0x1c236f9d xenbus_switch_state +EXPORT_SYMBOL_GPL vmlinux 0x1c3feb09 thermal_generate_netlink_event +EXPORT_SYMBOL_GPL vmlinux 0x1c427273 arizona_request_irq +EXPORT_SYMBOL_GPL vmlinux 0x1c5b1f28 irq_free_descs +EXPORT_SYMBOL_GPL vmlinux 0x1c61bd12 sata_link_hardreset +EXPORT_SYMBOL_GPL vmlinux 0x1c77e4c8 disk_part_iter_init +EXPORT_SYMBOL_GPL vmlinux 0x1c80d27d btree_geo128 +EXPORT_SYMBOL_GPL vmlinux 0x1c87a811 __round_jiffies_up +EXPORT_SYMBOL_GPL vmlinux 0x1ca35cc6 xen_swiotlb_sync_sg_for_device +EXPORT_SYMBOL_GPL vmlinux 0x1ca8bc08 xen_pci_frontend +EXPORT_SYMBOL_GPL vmlinux 0x1ca8da75 ip6_datagram_send_ctl +EXPORT_SYMBOL_GPL vmlinux 0x1cc9a828 sdio_get_host_pm_caps +EXPORT_SYMBOL_GPL vmlinux 0x1cdb2147 zs_malloc +EXPORT_SYMBOL_GPL vmlinux 0x1cf34b0c crypto_unregister_ahash +EXPORT_SYMBOL_GPL vmlinux 0x1cf34dac xenbus_dev_shutdown +EXPORT_SYMBOL_GPL vmlinux 0x1cfd95c1 wakeup_source_register +EXPORT_SYMBOL_GPL vmlinux 0x1cffc4df RSA_public_key_algorithm +EXPORT_SYMBOL_GPL vmlinux 0x1d01bf17 ata_link_abort +EXPORT_SYMBOL_GPL vmlinux 0x1d0522af sdio_claim_irq +EXPORT_SYMBOL_GPL vmlinux 0x1d059331 ata_eh_qc_retry +EXPORT_SYMBOL_GPL vmlinux 0x1d143a7e pci_restore_ats_state +EXPORT_SYMBOL_GPL vmlinux 0x1d259d43 rtc_device_register +EXPORT_SYMBOL_GPL vmlinux 0x1d3742e3 iommu_group_remove_device +EXPORT_SYMBOL_GPL vmlinux 0x1d430e6f usb_disable_lpm +EXPORT_SYMBOL_GPL vmlinux 0x1d459685 xstate_size +EXPORT_SYMBOL_GPL vmlinux 0x1d58ae14 lpddr2_jedec_timings +EXPORT_SYMBOL_GPL vmlinux 0x1d739e1c xen_set_callback_via +EXPORT_SYMBOL_GPL vmlinux 0x1d77b0f8 unix_socket_table +EXPORT_SYMBOL_GPL vmlinux 0x1d81470c regmap_reinit_cache +EXPORT_SYMBOL_GPL vmlinux 0x1d8fb3bb acpi_dev_resource_address_space +EXPORT_SYMBOL_GPL vmlinux 0x1d9cee3e acpi_subsys_suspend_late +EXPORT_SYMBOL_GPL vmlinux 0x1d9ea74c uart_handle_cts_change +EXPORT_SYMBOL_GPL vmlinux 0x1dbec4a9 lp8788_read_multi_bytes +EXPORT_SYMBOL_GPL vmlinux 0x1e000879 hwpoison_filter_enable +EXPORT_SYMBOL_GPL vmlinux 0x1e314b21 regulator_use_dummy_regulator +EXPORT_SYMBOL_GPL vmlinux 0x1e3a88fb trace_seq_printf +EXPORT_SYMBOL_GPL vmlinux 0x1e405e07 ata_pci_sff_init_host +EXPORT_SYMBOL_GPL vmlinux 0x1e5b03dc pm_qos_add_notifier +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 0x1edb3437 rtc_irq_register +EXPORT_SYMBOL_GPL vmlinux 0x1edc21cb hwpoison_filter_flags_mask +EXPORT_SYMBOL_GPL vmlinux 0x1ee1449c pci_sriov_migration +EXPORT_SYMBOL_GPL vmlinux 0x1ef39a95 relay_open +EXPORT_SYMBOL_GPL vmlinux 0x1eff9b3b register_ftrace_function +EXPORT_SYMBOL_GPL vmlinux 0x1effc7b1 class_for_each_device +EXPORT_SYMBOL_GPL vmlinux 0x1f114ca3 mmc_switch +EXPORT_SYMBOL_GPL vmlinux 0x1f1988f7 hwpoison_filter_flags_value +EXPORT_SYMBOL_GPL vmlinux 0x1f1f1b25 tpm_register_hardware +EXPORT_SYMBOL_GPL vmlinux 0x1f294672 crypto_alloc_pcomp +EXPORT_SYMBOL_GPL vmlinux 0x1f327a2d skcipher_geniv_alloc +EXPORT_SYMBOL_GPL vmlinux 0x1f54f1b4 do_trace_rcu_torture_read +EXPORT_SYMBOL_GPL vmlinux 0x1f8544b8 panic_timeout +EXPORT_SYMBOL_GPL vmlinux 0x1f8d16dc guest_exit +EXPORT_SYMBOL_GPL vmlinux 0x1f8db7f9 ring_buffer_overrun_cpu +EXPORT_SYMBOL_GPL vmlinux 0x1fa11746 register_user_hw_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0x1fc7bf33 xenbus_watch_pathfmt +EXPORT_SYMBOL_GPL vmlinux 0x1fcece42 inet_twdr_twcal_tick +EXPORT_SYMBOL_GPL vmlinux 0x1fe478fe devm_regulator_get +EXPORT_SYMBOL_GPL vmlinux 0x201c595c balloon_mapping_alloc +EXPORT_SYMBOL_GPL vmlinux 0x203d7134 usb_free_urb +EXPORT_SYMBOL_GPL vmlinux 0x203f2916 cpuidle_get_driver +EXPORT_SYMBOL_GPL vmlinux 0x20832340 sata_sff_hardreset +EXPORT_SYMBOL_GPL vmlinux 0x209b3f30 __cpufreq_driver_target +EXPORT_SYMBOL_GPL vmlinux 0x209ec764 xen_event_channel_op_compat +EXPORT_SYMBOL_GPL vmlinux 0x20bc3470 orderly_poweroff +EXPORT_SYMBOL_GPL vmlinux 0x20d14745 rio_release_inb_dbell +EXPORT_SYMBOL_GPL vmlinux 0x20d2b4c2 tty_port_register_device +EXPORT_SYMBOL_GPL vmlinux 0x20d5d0c0 da903x_writes +EXPORT_SYMBOL_GPL vmlinux 0x20f3fa83 regulator_list_voltage_linear +EXPORT_SYMBOL_GPL vmlinux 0x21242dcf locks_alloc_lock +EXPORT_SYMBOL_GPL vmlinux 0x2191f3dd thermal_cooling_device_register +EXPORT_SYMBOL_GPL vmlinux 0x21ac8b77 iommu_group_get_by_id +EXPORT_SYMBOL_GPL vmlinux 0x2232f130 inet_unhash +EXPORT_SYMBOL_GPL vmlinux 0x224c1e35 cpu_subsys +EXPORT_SYMBOL_GPL vmlinux 0x22551462 usb_mon_register +EXPORT_SYMBOL_GPL vmlinux 0x22710ee2 pm_runtime_forbid +EXPORT_SYMBOL_GPL vmlinux 0x2296c00d crypto_attr_u32 +EXPORT_SYMBOL_GPL vmlinux 0x22a6126f crypto_register_shash +EXPORT_SYMBOL_GPL vmlinux 0x22c664e8 tcp_init_congestion_ops +EXPORT_SYMBOL_GPL vmlinux 0x22c9c528 sysfs_schedule_callback +EXPORT_SYMBOL_GPL vmlinux 0x22deb2d2 perf_event_release_kernel +EXPORT_SYMBOL_GPL vmlinux 0x22ed2b03 unregister_dock_notifier +EXPORT_SYMBOL_GPL vmlinux 0x22f017b4 xen_swiotlb_sync_single_for_cpu +EXPORT_SYMBOL_GPL vmlinux 0x2315a111 fat_getattr +EXPORT_SYMBOL_GPL vmlinux 0x231736d6 driver_create_file +EXPORT_SYMBOL_GPL vmlinux 0x232ea1d1 blk_rq_check_limits +EXPORT_SYMBOL_GPL vmlinux 0x234a67c8 usb_alloc_urb +EXPORT_SYMBOL_GPL vmlinux 0x2360cc8f of_pwm_get +EXPORT_SYMBOL_GPL vmlinux 0x2366a2c0 errata +EXPORT_SYMBOL_GPL vmlinux 0x2373352a clk_fixed_factor_ops +EXPORT_SYMBOL_GPL vmlinux 0x23864ce7 cpuset_mem_spread_node +EXPORT_SYMBOL_GPL vmlinux 0x238e3b97 page_cache_async_readahead +EXPORT_SYMBOL_GPL vmlinux 0x24011e14 vbin_printf +EXPORT_SYMBOL_GPL vmlinux 0x2401d127 crypto_grab_aead +EXPORT_SYMBOL_GPL vmlinux 0x24079ad6 cpufreq_freq_attr_scaling_available_freqs +EXPORT_SYMBOL_GPL vmlinux 0x241f63f6 usb_unlocked_enable_lpm +EXPORT_SYMBOL_GPL vmlinux 0x24206eb3 inet6_csk_search_req +EXPORT_SYMBOL_GPL vmlinux 0x2438e2db cgroup_next_descendant_pre +EXPORT_SYMBOL_GPL vmlinux 0x24436c75 css_id +EXPORT_SYMBOL_GPL vmlinux 0x2447533c ktime_get_real +EXPORT_SYMBOL_GPL vmlinux 0x2470be09 tpm_remove_hardware +EXPORT_SYMBOL_GPL vmlinux 0x2474f5ca kobject_uevent_env +EXPORT_SYMBOL_GPL vmlinux 0x247ef831 kdb_unregister +EXPORT_SYMBOL_GPL vmlinux 0x2487bd82 platform_device_register +EXPORT_SYMBOL_GPL vmlinux 0x24aac4d9 crypto_aes_expand_key +EXPORT_SYMBOL_GPL vmlinux 0x24af6d4a da903x_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x24ba4a2b rio_unregister_scan +EXPORT_SYMBOL_GPL vmlinux 0x24c7698a xenbus_write +EXPORT_SYMBOL_GPL vmlinux 0x24d742f4 rio_register_scan +EXPORT_SYMBOL_GPL vmlinux 0x24e64902 led_trigger_remove +EXPORT_SYMBOL_GPL vmlinux 0x24eb7e32 leds_list +EXPORT_SYMBOL_GPL vmlinux 0x24f2d831 regulator_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x24f39c39 reset_control_reset +EXPORT_SYMBOL_GPL vmlinux 0x24f97031 ata_pci_bmdma_init_one +EXPORT_SYMBOL_GPL vmlinux 0x24fc46b6 regulator_bulk_free +EXPORT_SYMBOL_GPL vmlinux 0x25428c81 mddev_resume +EXPORT_SYMBOL_GPL vmlinux 0x2545c170 unregister_xenbus_watch +EXPORT_SYMBOL_GPL vmlinux 0x25a97010 hrtimer_init +EXPORT_SYMBOL_GPL vmlinux 0x25cab0c5 shmem_truncate_range +EXPORT_SYMBOL_GPL vmlinux 0x25f97d47 iommu_attach_device +EXPORT_SYMBOL_GPL vmlinux 0x2612947a sdio_writeb_readb +EXPORT_SYMBOL_GPL vmlinux 0x261dd15c mmc_regulator_set_ocr +EXPORT_SYMBOL_GPL vmlinux 0x262f20a8 local_clock +EXPORT_SYMBOL_GPL vmlinux 0x2644d0aa xenbus_bind_evtchn +EXPORT_SYMBOL_GPL vmlinux 0x26512502 subsys_find_device_by_id +EXPORT_SYMBOL_GPL vmlinux 0x26520970 vm_memory_committed +EXPORT_SYMBOL_GPL vmlinux 0x265b9bef __fib_lookup +EXPORT_SYMBOL_GPL vmlinux 0x266017d6 rdev_get_id +EXPORT_SYMBOL_GPL vmlinux 0x266f62a2 tpm_show_pubek +EXPORT_SYMBOL_GPL vmlinux 0x26965721 slow_virt_to_phys +EXPORT_SYMBOL_GPL vmlinux 0x26b71fb4 ring_buffer_time_stamp +EXPORT_SYMBOL_GPL vmlinux 0x26c15bc5 default_backing_dev_info +EXPORT_SYMBOL_GPL vmlinux 0x26c90ea4 scsi_eh_get_sense +EXPORT_SYMBOL_GPL vmlinux 0x26cbfe1b ohci_setup +EXPORT_SYMBOL_GPL vmlinux 0x26fcbde6 sec_bulk_write +EXPORT_SYMBOL_GPL vmlinux 0x27303769 power_supply_unregister +EXPORT_SYMBOL_GPL vmlinux 0x2735ef9d init_srcu_struct +EXPORT_SYMBOL_GPL vmlinux 0x275ec5cb proc_get_parent_data +EXPORT_SYMBOL_GPL vmlinux 0x27831410 ata_pci_device_resume +EXPORT_SYMBOL_GPL vmlinux 0x279cb985 apei_exec_pre_map_gars +EXPORT_SYMBOL_GPL vmlinux 0x27a2f090 ip6_redirect +EXPORT_SYMBOL_GPL vmlinux 0x27bc54bd sis_info133_for_sata +EXPORT_SYMBOL_GPL vmlinux 0x27c0c4be eventfd_ctx_read +EXPORT_SYMBOL_GPL vmlinux 0x27c1e63f usb_amd_find_chipset_info +EXPORT_SYMBOL_GPL vmlinux 0x27d5b8f9 inet_twsk_purge +EXPORT_SYMBOL_GPL vmlinux 0x27ddb33d acpi_dev_resource_io +EXPORT_SYMBOL_GPL vmlinux 0x27ee6604 __dma_request_channel +EXPORT_SYMBOL_GPL vmlinux 0x27f4f029 ftrace_set_global_filter +EXPORT_SYMBOL_GPL vmlinux 0x27fa66e1 nr_free_buffer_pages +EXPORT_SYMBOL_GPL vmlinux 0x280d27f3 rio_request_dma +EXPORT_SYMBOL_GPL vmlinux 0x2814ff54 ip6_dst_lookup_flow +EXPORT_SYMBOL_GPL vmlinux 0x28568470 usb_hcd_pci_shutdown +EXPORT_SYMBOL_GPL vmlinux 0x28617d19 crypto_unregister_algs +EXPORT_SYMBOL_GPL vmlinux 0x2869ebaf regulator_bulk_force_disable +EXPORT_SYMBOL_GPL vmlinux 0x289027ef cgroup_next_descendant_post +EXPORT_SYMBOL_GPL vmlinux 0x28a903c8 timerqueue_add +EXPORT_SYMBOL_GPL vmlinux 0x28b91ac4 regmap_raw_read +EXPORT_SYMBOL_GPL vmlinux 0x28ce0166 xenbus_dev_suspend +EXPORT_SYMBOL_GPL vmlinux 0x28fe5256 mmu_notifier_register +EXPORT_SYMBOL_GPL vmlinux 0x29068744 rio_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x2929daa4 hvc_remove +EXPORT_SYMBOL_GPL vmlinux 0x295617a8 register_net_sysctl +EXPORT_SYMBOL_GPL vmlinux 0x296141c9 fat_scan +EXPORT_SYMBOL_GPL vmlinux 0x29717da4 crypto_givcipher_type +EXPORT_SYMBOL_GPL vmlinux 0x298425aa acpi_dma_simple_xlate +EXPORT_SYMBOL_GPL vmlinux 0x29b30199 crypto_register_ahash +EXPORT_SYMBOL_GPL vmlinux 0x29e694f6 usb_alloc_coherent +EXPORT_SYMBOL_GPL vmlinux 0x2a280af2 ip6_datagram_connect +EXPORT_SYMBOL_GPL vmlinux 0x2a4171e3 vfs_getxattr +EXPORT_SYMBOL_GPL vmlinux 0x2a678a13 __suspend_report_result +EXPORT_SYMBOL_GPL vmlinux 0x2ad1ece4 zs_get_total_size_bytes +EXPORT_SYMBOL_GPL vmlinux 0x2ae7a7f5 attribute_container_find_class_device +EXPORT_SYMBOL_GPL vmlinux 0x2af2d6ac pcie_bus_configure_settings +EXPORT_SYMBOL_GPL vmlinux 0x2b2a1c48 inet_csk_reqsk_queue_hash_add +EXPORT_SYMBOL_GPL vmlinux 0x2b2d1313 efivar_entry_remove +EXPORT_SYMBOL_GPL vmlinux 0x2b3cd923 pm_generic_suspend +EXPORT_SYMBOL_GPL vmlinux 0x2b50d0cc tc3589x_reg_read +EXPORT_SYMBOL_GPL vmlinux 0x2b7a6de8 syscon_regmap_lookup_by_phandle +EXPORT_SYMBOL_GPL vmlinux 0x2b96c0d9 pm_generic_suspend_late +EXPORT_SYMBOL_GPL vmlinux 0x2b98f9cd device_find_child +EXPORT_SYMBOL_GPL vmlinux 0x2ba4f6d4 btree_insert +EXPORT_SYMBOL_GPL vmlinux 0x2bae2ec5 virtqueue_enable_cb +EXPORT_SYMBOL_GPL vmlinux 0x2bb11cde sysfs_put +EXPORT_SYMBOL_GPL vmlinux 0x2bb2df05 cgroup_load_subsys +EXPORT_SYMBOL_GPL vmlinux 0x2bb65833 __mmu_notifier_register +EXPORT_SYMBOL_GPL vmlinux 0x2bc3c559 sysfs_notify_dirent +EXPORT_SYMBOL_GPL vmlinux 0x2bd591ae fuse_conn_get +EXPORT_SYMBOL_GPL vmlinux 0x2bd72b76 btree_update +EXPORT_SYMBOL_GPL vmlinux 0x2bf8843e crypto_register_instance +EXPORT_SYMBOL_GPL vmlinux 0x2bfc086a x86_hyper_kvm +EXPORT_SYMBOL_GPL vmlinux 0x2c208607 power_supply_is_system_supplied +EXPORT_SYMBOL_GPL vmlinux 0x2c76713b sock_update_netprioidx +EXPORT_SYMBOL_GPL vmlinux 0x2c7d9c64 xen_store_interface +EXPORT_SYMBOL_GPL vmlinux 0x2c7db649 irq_dispose_mapping +EXPORT_SYMBOL_GPL vmlinux 0x2c85436a da903x_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x2ca4ebcd regulator_set_drvdata +EXPORT_SYMBOL_GPL vmlinux 0x2cb33efe cpufreq_get_measured_perf +EXPORT_SYMBOL_GPL vmlinux 0x2ce98559 kcrypto_wq +EXPORT_SYMBOL_GPL vmlinux 0x2cea32ee unregister_oldmem_pfn_is_ram +EXPORT_SYMBOL_GPL vmlinux 0x2cf5631a relay_close +EXPORT_SYMBOL_GPL vmlinux 0x2d17a0e1 cgroup_taskset_size +EXPORT_SYMBOL_GPL vmlinux 0x2d1b02d2 usermodehelper_read_lock_wait +EXPORT_SYMBOL_GPL vmlinux 0x2d41e6f5 __trace_puts +EXPORT_SYMBOL_GPL vmlinux 0x2d59c954 edac_handlers +EXPORT_SYMBOL_GPL vmlinux 0x2d6b0518 perf_event_create_kernel_counter +EXPORT_SYMBOL_GPL vmlinux 0x2d86c741 pci_find_next_ext_capability +EXPORT_SYMBOL_GPL vmlinux 0x2d9f2ce3 sched_clock_idle_wakeup_event +EXPORT_SYMBOL_GPL vmlinux 0x2da3a820 sync_filesystem +EXPORT_SYMBOL_GPL vmlinux 0x2dba276a __iowrite32_copy +EXPORT_SYMBOL_GPL vmlinux 0x2deec523 posix_clock_register +EXPORT_SYMBOL_GPL vmlinux 0x2e0cdd34 __lock_page_killable +EXPORT_SYMBOL_GPL vmlinux 0x2e1da9fb probe_kernel_read +EXPORT_SYMBOL_GPL vmlinux 0x2e2360b1 ftrace_set_global_notrace +EXPORT_SYMBOL_GPL vmlinux 0x2e2f1740 ring_buffer_record_disable_cpu +EXPORT_SYMBOL_GPL vmlinux 0x2e3dd5a7 netlink_alloc_skb +EXPORT_SYMBOL_GPL vmlinux 0x2e45e488 rcu_note_context_switch +EXPORT_SYMBOL_GPL vmlinux 0x2e5317ec crypto_chain +EXPORT_SYMBOL_GPL vmlinux 0x2e5aca2a sysfs_remove_link +EXPORT_SYMBOL_GPL vmlinux 0x2e5c0c1a dma_release_channel +EXPORT_SYMBOL_GPL vmlinux 0x2e961a4e eventfd_ctx_fileget +EXPORT_SYMBOL_GPL vmlinux 0x2e986911 __rtnl_af_unregister +EXPORT_SYMBOL_GPL vmlinux 0x2e9e5607 sysfs_add_link_to_group +EXPORT_SYMBOL_GPL vmlinux 0x2ebe3135 cpu_is_hotpluggable +EXPORT_SYMBOL_GPL vmlinux 0x2edc3071 usb_lock_device_for_reset +EXPORT_SYMBOL_GPL vmlinux 0x2eff7461 xen_unmap_domain_mfn_range +EXPORT_SYMBOL_GPL vmlinux 0x2f0d9053 usb_otg_state_string +EXPORT_SYMBOL_GPL vmlinux 0x2f4113a2 dcookie_register +EXPORT_SYMBOL_GPL vmlinux 0x2f64415f unregister_acpi_hed_notifier +EXPORT_SYMBOL_GPL vmlinux 0x2f857551 machine_check_poll +EXPORT_SYMBOL_GPL vmlinux 0x2fa13696 ata_wait_register +EXPORT_SYMBOL_GPL vmlinux 0x2fbfdab3 usb_deregister +EXPORT_SYMBOL_GPL vmlinux 0x2fd8cba9 freeze_wake +EXPORT_SYMBOL_GPL vmlinux 0x2ffc7686 sata_scr_read +EXPORT_SYMBOL_GPL vmlinux 0x306a04ce ata_bmdma_irq_clear +EXPORT_SYMBOL_GPL vmlinux 0x3074bf25 platform_device_register_full +EXPORT_SYMBOL_GPL vmlinux 0x308b733a getboottime +EXPORT_SYMBOL_GPL vmlinux 0x309a4b96 pci_walk_bus +EXPORT_SYMBOL_GPL vmlinux 0x30bde5e1 __rio_local_write_config_32 +EXPORT_SYMBOL_GPL vmlinux 0x30c73a61 class_create_file +EXPORT_SYMBOL_GPL vmlinux 0x30cf9483 ipv4_sk_redirect +EXPORT_SYMBOL_GPL vmlinux 0x30d20d24 pwm_set_polarity +EXPORT_SYMBOL_GPL vmlinux 0x30e39d71 fuse_request_send_background +EXPORT_SYMBOL_GPL vmlinux 0x30ffdcec br_fdb_test_addr_hook +EXPORT_SYMBOL_GPL vmlinux 0x3106ba9a skb_cow_data +EXPORT_SYMBOL_GPL vmlinux 0x3109b751 cpu_clock +EXPORT_SYMBOL_GPL vmlinux 0x31266931 con_debug_leave +EXPORT_SYMBOL_GPL vmlinux 0x313dc05a irq_domain_associate +EXPORT_SYMBOL_GPL vmlinux 0x3162196e part_round_stats +EXPORT_SYMBOL_GPL vmlinux 0x31727f27 inet6_csk_update_pmtu +EXPORT_SYMBOL_GPL vmlinux 0x318a5812 __irq_set_handler +EXPORT_SYMBOL_GPL vmlinux 0x31c0c2d1 dm_put +EXPORT_SYMBOL_GPL vmlinux 0x31c67f02 perf_tp_event +EXPORT_SYMBOL_GPL vmlinux 0x31c7970f pciserial_suspend_ports +EXPORT_SYMBOL_GPL vmlinux 0x31fa839a dev_pm_qos_remove_notifier +EXPORT_SYMBOL_GPL vmlinux 0x321bdbb1 compat_get_timeval +EXPORT_SYMBOL_GPL vmlinux 0x323cfa52 rtnl_af_register +EXPORT_SYMBOL_GPL vmlinux 0x3247951a class_dev_iter_next +EXPORT_SYMBOL_GPL vmlinux 0x324a20ad regmap_bulk_read +EXPORT_SYMBOL_GPL vmlinux 0x32519f11 pci_num_vf +EXPORT_SYMBOL_GPL vmlinux 0x325691b6 stmpe_disable +EXPORT_SYMBOL_GPL vmlinux 0x325e677c gnttab_grant_foreign_transfer_ref +EXPORT_SYMBOL_GPL vmlinux 0x328995b5 tracing_generic_entry_update +EXPORT_SYMBOL_GPL vmlinux 0x329bbbde timerqueue_del +EXPORT_SYMBOL_GPL vmlinux 0x32b31a8c ktime_get_boottime +EXPORT_SYMBOL_GPL vmlinux 0x32bded08 __tracepoint_block_bio_remap +EXPORT_SYMBOL_GPL vmlinux 0x32bee91b nfq_ct_hook +EXPORT_SYMBOL_GPL vmlinux 0x32c3cb4e class_compat_register +EXPORT_SYMBOL_GPL vmlinux 0x32f6ed01 wm8350_device_exit +EXPORT_SYMBOL_GPL vmlinux 0x32f84983 key_set_timeout +EXPORT_SYMBOL_GPL vmlinux 0x32fd447a monotonic_to_bootbased +EXPORT_SYMBOL_GPL vmlinux 0x330d1143 apic +EXPORT_SYMBOL_GPL vmlinux 0x3310bf11 pm_qos_update_request +EXPORT_SYMBOL_GPL vmlinux 0x331bcd5e usb_enable_intel_xhci_ports +EXPORT_SYMBOL_GPL vmlinux 0x3350be8e clockevent_delta2ns +EXPORT_SYMBOL_GPL vmlinux 0x335c570f enable_percpu_irq +EXPORT_SYMBOL_GPL vmlinux 0x3360c6f3 blkg_stat_recursive_sum +EXPORT_SYMBOL_GPL vmlinux 0x336154ca rcutorture_record_test_transition +EXPORT_SYMBOL_GPL vmlinux 0x33655159 xen_pcpu_hotplug_sync +EXPORT_SYMBOL_GPL vmlinux 0x336d1c38 driver_register +EXPORT_SYMBOL_GPL vmlinux 0x33712103 kobject_rename +EXPORT_SYMBOL_GPL vmlinux 0x33883929 clk_divider_ops +EXPORT_SYMBOL_GPL vmlinux 0x338ce3cf napi_by_id +EXPORT_SYMBOL_GPL vmlinux 0x339274dc da903x_write +EXPORT_SYMBOL_GPL vmlinux 0x33a3e556 pci_cfg_access_lock +EXPORT_SYMBOL_GPL vmlinux 0x33a67d4c dbs_check_cpu +EXPORT_SYMBOL_GPL vmlinux 0x33b96e5d apei_exec_write_register +EXPORT_SYMBOL_GPL vmlinux 0x33b9855a pm_generic_suspend_noirq +EXPORT_SYMBOL_GPL vmlinux 0x33e8744a driver_find +EXPORT_SYMBOL_GPL vmlinux 0x33f7ab15 get_compat_timespec +EXPORT_SYMBOL_GPL vmlinux 0x33fcdefc clone_private_mount +EXPORT_SYMBOL_GPL vmlinux 0x34102fd6 usb_driver_set_configuration +EXPORT_SYMBOL_GPL vmlinux 0x3433b6d9 mddev_init +EXPORT_SYMBOL_GPL vmlinux 0x3441c3d6 gpio_set_value_cansleep +EXPORT_SYMBOL_GPL vmlinux 0x3448893c pm_generic_resume +EXPORT_SYMBOL_GPL vmlinux 0x346269a2 udp4_lib_lookup +EXPORT_SYMBOL_GPL vmlinux 0x3465fce6 __tracepoint_block_bio_complete +EXPORT_SYMBOL_GPL vmlinux 0x347fd4b3 eventfd_ctx_get +EXPORT_SYMBOL_GPL vmlinux 0x349d892c crypto_shash_finup +EXPORT_SYMBOL_GPL vmlinux 0x34c11658 transport_class_unregister +EXPORT_SYMBOL_GPL vmlinux 0x34e914e3 bus_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x352650ee gnttab_batch_map +EXPORT_SYMBOL_GPL vmlinux 0x35327ed9 devm_remove_action +EXPORT_SYMBOL_GPL vmlinux 0x354f25f8 devm_rtc_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x35581bc4 cpci_hp_unregister_controller +EXPORT_SYMBOL_GPL vmlinux 0x355b41a4 wm8350_reg_lock +EXPORT_SYMBOL_GPL vmlinux 0x3584fee5 class_unregister +EXPORT_SYMBOL_GPL vmlinux 0x35b3cdd5 irq_setup_generic_chip +EXPORT_SYMBOL_GPL vmlinux 0x35b6e80f rio_mport_send_doorbell +EXPORT_SYMBOL_GPL vmlinux 0x35cf11dc scsi_target_unblock +EXPORT_SYMBOL_GPL vmlinux 0x35f165f1 devm_reset_control_put +EXPORT_SYMBOL_GPL vmlinux 0x36075bb5 iommu_group_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x361e2bcc save_stack_trace +EXPORT_SYMBOL_GPL vmlinux 0x362350fb __blkg_prfill_rwstat +EXPORT_SYMBOL_GPL vmlinux 0x362893a4 dev_forward_skb +EXPORT_SYMBOL_GPL vmlinux 0x3638b2e5 relay_switch_subbuf +EXPORT_SYMBOL_GPL vmlinux 0x365cc1d0 alarm_restart +EXPORT_SYMBOL_GPL vmlinux 0x3666cd09 acpi_dev_pm_add_dependent +EXPORT_SYMBOL_GPL vmlinux 0x36678aa7 tty_put_char +EXPORT_SYMBOL_GPL vmlinux 0x367bc4d0 tps6586x_read +EXPORT_SYMBOL_GPL vmlinux 0x3687e77e wait_for_tpm_stat +EXPORT_SYMBOL_GPL vmlinux 0x368f1fea static_key_slow_inc +EXPORT_SYMBOL_GPL vmlinux 0x369b5bd1 blk_queue_lld_busy +EXPORT_SYMBOL_GPL vmlinux 0x369fcd70 tracing_snapshot +EXPORT_SYMBOL_GPL vmlinux 0x36b5497e intel_iommu_enabled +EXPORT_SYMBOL_GPL vmlinux 0x36c6be0c platform_device_add_resources +EXPORT_SYMBOL_GPL vmlinux 0x36f63718 ping_common_sendmsg +EXPORT_SYMBOL_GPL vmlinux 0x3700154c pkey_hash_algo +EXPORT_SYMBOL_GPL vmlinux 0x3700287e platform_add_devices +EXPORT_SYMBOL_GPL vmlinux 0x37040834 scsi_register_acpi_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x37098219 __rtnl_link_register +EXPORT_SYMBOL_GPL vmlinux 0x37195568 regulator_map_voltage_ascend +EXPORT_SYMBOL_GPL vmlinux 0x37223a46 spi_get_device_id +EXPORT_SYMBOL_GPL vmlinux 0x37401eda tps6586x_write +EXPORT_SYMBOL_GPL vmlinux 0x37a921fb rio_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x37c56821 inet_csk_search_req +EXPORT_SYMBOL_GPL vmlinux 0x37e2eeeb ata_pci_device_do_resume +EXPORT_SYMBOL_GPL vmlinux 0x37ef9f5c dev_get_regmap +EXPORT_SYMBOL_GPL vmlinux 0x37f1ffbf gdt_page +EXPORT_SYMBOL_GPL vmlinux 0x37f301c0 ata_acpi_stm +EXPORT_SYMBOL_GPL vmlinux 0x37fd11c7 pci_check_and_unmask_intx +EXPORT_SYMBOL_GPL vmlinux 0x380e016c da9052_free_irq +EXPORT_SYMBOL_GPL vmlinux 0x381a80d5 usb_unlink_urb +EXPORT_SYMBOL_GPL vmlinux 0x3832f596 xen_swiotlb_sync_single_for_device +EXPORT_SYMBOL_GPL vmlinux 0x38499eb4 xenbus_unmap_ring +EXPORT_SYMBOL_GPL vmlinux 0x38620e38 gnttab_grant_foreign_access_trans_ref +EXPORT_SYMBOL_GPL vmlinux 0x3868f4b7 register_kretprobe +EXPORT_SYMBOL_GPL vmlinux 0x386a4486 bsg_unregister_queue +EXPORT_SYMBOL_GPL vmlinux 0x38967706 ata_bmdma_post_internal_cmd +EXPORT_SYMBOL_GPL vmlinux 0x38cedcd7 usb_reset_device +EXPORT_SYMBOL_GPL vmlinux 0x38d7b002 fat_add_entries +EXPORT_SYMBOL_GPL vmlinux 0x38dfedb5 serial8250_request_dma +EXPORT_SYMBOL_GPL vmlinux 0x391924c0 md_ack_all_badblocks +EXPORT_SYMBOL_GPL vmlinux 0x39565f54 rio_enable_rx_tx_port +EXPORT_SYMBOL_GPL vmlinux 0x396fd41c class_find_device +EXPORT_SYMBOL_GPL vmlinux 0x398f6d60 ohci_init_driver +EXPORT_SYMBOL_GPL vmlinux 0x398f726d rio_request_inb_dbell +EXPORT_SYMBOL_GPL vmlinux 0x39e41d76 alarm_cancel +EXPORT_SYMBOL_GPL vmlinux 0x39e5afe3 set_cpus_allowed_ptr +EXPORT_SYMBOL_GPL vmlinux 0x3a237f05 attribute_container_unregister +EXPORT_SYMBOL_GPL vmlinux 0x3a26ed11 sched_clock +EXPORT_SYMBOL_GPL vmlinux 0x3a2abdbf clk_disable +EXPORT_SYMBOL_GPL vmlinux 0x3a38dc65 memory_failure +EXPORT_SYMBOL_GPL vmlinux 0x3a4245dd usb_put_intf +EXPORT_SYMBOL_GPL vmlinux 0x3a4f6a32 ata_sff_interrupt +EXPORT_SYMBOL_GPL vmlinux 0x3a4f8083 blk_trace_startstop +EXPORT_SYMBOL_GPL vmlinux 0x3a536bd7 ring_buffer_read_finish +EXPORT_SYMBOL_GPL vmlinux 0x3a5da64b usb_hcd_giveback_urb +EXPORT_SYMBOL_GPL vmlinux 0x3a902271 device_create +EXPORT_SYMBOL_GPL vmlinux 0x3aa24773 kobject_get_path +EXPORT_SYMBOL_GPL vmlinux 0x3aac1f15 ohci_resume +EXPORT_SYMBOL_GPL vmlinux 0x3acaeb96 sdio_writew +EXPORT_SYMBOL_GPL vmlinux 0x3ad09a8a pci_rescan_bus +EXPORT_SYMBOL_GPL vmlinux 0x3ad0e201 scatterwalk_copychunks +EXPORT_SYMBOL_GPL vmlinux 0x3b2ba11b tcp_reno_cong_avoid +EXPORT_SYMBOL_GPL vmlinux 0x3b48af14 rdev_get_dev +EXPORT_SYMBOL_GPL vmlinux 0x3b4a270e tty_set_termios +EXPORT_SYMBOL_GPL vmlinux 0x3b64bf86 usb_unanchor_urb +EXPORT_SYMBOL_GPL vmlinux 0x3b7145bb apei_exec_read_register_value +EXPORT_SYMBOL_GPL vmlinux 0x3bc5c22c acpi_get_gpio_by_index +EXPORT_SYMBOL_GPL vmlinux 0x3bdc0959 usb_get_phy +EXPORT_SYMBOL_GPL vmlinux 0x3c08eec2 led_trigger_blink_oneshot +EXPORT_SYMBOL_GPL vmlinux 0x3c1316af wm8350_block_write +EXPORT_SYMBOL_GPL vmlinux 0x3c143f6c xenbus_probe_node +EXPORT_SYMBOL_GPL vmlinux 0x3c1b4316 ablkcipher_walk_phys +EXPORT_SYMBOL_GPL vmlinux 0x3c267c17 cpci_hp_register_controller +EXPORT_SYMBOL_GPL vmlinux 0x3c32b1cc devm_regmap_field_free +EXPORT_SYMBOL_GPL vmlinux 0x3c486acd evm_inode_init_security +EXPORT_SYMBOL_GPL vmlinux 0x3c8d526c rtc_irq_set_freq +EXPORT_SYMBOL_GPL vmlinux 0x3c9390db pci_vpd_find_tag +EXPORT_SYMBOL_GPL vmlinux 0x3cac0f5d ata_sff_postreset +EXPORT_SYMBOL_GPL vmlinux 0x3cac21b9 regulator_sync_voltage +EXPORT_SYMBOL_GPL vmlinux 0x3cd06035 add_input_randomness +EXPORT_SYMBOL_GPL vmlinux 0x3ce7607e netlink_remove_tap +EXPORT_SYMBOL_GPL vmlinux 0x3cef5227 sock_prot_inuse_add +EXPORT_SYMBOL_GPL vmlinux 0x3d0aef81 transport_class_register +EXPORT_SYMBOL_GPL vmlinux 0x3d261fdd uart_insert_char +EXPORT_SYMBOL_GPL vmlinux 0x3d35d004 virtio_check_driver_offered_feature +EXPORT_SYMBOL_GPL vmlinux 0x3d388324 dpm_resume_end +EXPORT_SYMBOL_GPL vmlinux 0x3d4e2855 iommu_unmap +EXPORT_SYMBOL_GPL vmlinux 0x3d5f392d acpi_os_unmap_memory +EXPORT_SYMBOL_GPL vmlinux 0x3d7ea99a gnttab_grant_foreign_transfer +EXPORT_SYMBOL_GPL vmlinux 0x3dadf2b8 pci_hp_change_slot_info +EXPORT_SYMBOL_GPL vmlinux 0x3dae6404 unregister_jprobes +EXPORT_SYMBOL_GPL vmlinux 0x3daf2981 wm8350_gpio_config +EXPORT_SYMBOL_GPL vmlinux 0x3dc8c55e wait_for_stable_page +EXPORT_SYMBOL_GPL vmlinux 0x3dc916b6 crypto_fl_tab +EXPORT_SYMBOL_GPL vmlinux 0x3dd6db6f __ablkcipher_walk_complete +EXPORT_SYMBOL_GPL vmlinux 0x3de356c9 i2c_new_dummy +EXPORT_SYMBOL_GPL vmlinux 0x3de9cae1 crypto_remove_final +EXPORT_SYMBOL_GPL vmlinux 0x3df4b6af scsi_target_block +EXPORT_SYMBOL_GPL vmlinux 0x3e26c7d8 each_symbol_section +EXPORT_SYMBOL_GPL vmlinux 0x3e2fa31f wm8997_i2c_regmap +EXPORT_SYMBOL_GPL vmlinux 0x3e629652 tpm_bios_log_setup +EXPORT_SYMBOL_GPL vmlinux 0x3e7080cb mpi_read_from_buffer +EXPORT_SYMBOL_GPL vmlinux 0x3e75d0a5 pm_schedule_suspend +EXPORT_SYMBOL_GPL vmlinux 0x3ea5196d apei_osc_setup +EXPORT_SYMBOL_GPL vmlinux 0x3ee9ead4 ip6_local_out +EXPORT_SYMBOL_GPL vmlinux 0x3efb35c9 get_online_cpus +EXPORT_SYMBOL_GPL vmlinux 0x3f0b6748 clk_notifier_unregister +EXPORT_SYMBOL_GPL vmlinux 0x3f14304e acpi_ec_remove_query_handler +EXPORT_SYMBOL_GPL vmlinux 0x3f229c4c oops_begin +EXPORT_SYMBOL_GPL vmlinux 0x3f24da82 led_trigger_event +EXPORT_SYMBOL_GPL vmlinux 0x3f2f8306 trace_event_raw_init +EXPORT_SYMBOL_GPL vmlinux 0x3f496700 iommu_iova_to_phys +EXPORT_SYMBOL_GPL vmlinux 0x3f520c61 tty_port_link_device +EXPORT_SYMBOL_GPL vmlinux 0x3f782aee ata_eh_qc_complete +EXPORT_SYMBOL_GPL vmlinux 0x3f7fbc13 power_supply_set_battery_charged +EXPORT_SYMBOL_GPL vmlinux 0x3f84d4c9 gnttab_release_grant_reference +EXPORT_SYMBOL_GPL vmlinux 0x3f88cce8 gov_queue_work +EXPORT_SYMBOL_GPL vmlinux 0x3f97b5cf tpm_show_timeouts +EXPORT_SYMBOL_GPL vmlinux 0x3fc72d3d __tracepoint_kfree_skb +EXPORT_SYMBOL_GPL vmlinux 0x3fd5d8a5 usb_submit_urb +EXPORT_SYMBOL_GPL vmlinux 0x3fea38e4 shash_attr_alg +EXPORT_SYMBOL_GPL vmlinux 0x3ffb3056 pci_find_ext_capability +EXPORT_SYMBOL_GPL vmlinux 0x400a024b acpi_scan_lock_release +EXPORT_SYMBOL_GPL vmlinux 0x40135b20 devm_kfree +EXPORT_SYMBOL_GPL vmlinux 0x402946ef thermal_cooling_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x403f9529 gpio_request_one +EXPORT_SYMBOL_GPL vmlinux 0x4045c494 filter_match_preds +EXPORT_SYMBOL_GPL vmlinux 0x4065d168 pm_print_active_wakeup_sources +EXPORT_SYMBOL_GPL vmlinux 0x406e3895 bmp085_detect +EXPORT_SYMBOL_GPL vmlinux 0x40af0dec ata_xfer_mode2mask +EXPORT_SYMBOL_GPL vmlinux 0x40b6fc1d yield_to +EXPORT_SYMBOL_GPL vmlinux 0x40c3202b __clk_get_name +EXPORT_SYMBOL_GPL vmlinux 0x40ccd6e9 usb_hcd_is_primary_hcd +EXPORT_SYMBOL_GPL vmlinux 0x40d46b21 crypto_ft_tab +EXPORT_SYMBOL_GPL vmlinux 0x40e5fd79 pci_disable_rom +EXPORT_SYMBOL_GPL vmlinux 0x40f0683e reset_control_put +EXPORT_SYMBOL_GPL vmlinux 0x40f9f2c3 __inet_lookup_listener +EXPORT_SYMBOL_GPL vmlinux 0x41104ef4 pci_hp_remove_module_link +EXPORT_SYMBOL_GPL vmlinux 0x412afea8 rio_route_clr_table +EXPORT_SYMBOL_GPL vmlinux 0x412fc7c2 md_is_badblock +EXPORT_SYMBOL_GPL vmlinux 0x41496f6d tty_prepare_flip_string_flags +EXPORT_SYMBOL_GPL vmlinux 0x417601eb sata_pmp_qc_defer_cmd_switch +EXPORT_SYMBOL_GPL vmlinux 0x41814cb8 dirty_writeback_interval +EXPORT_SYMBOL_GPL vmlinux 0x41be14b2 regulator_set_voltage_time_sel +EXPORT_SYMBOL_GPL vmlinux 0x41c3dfdc xenbus_register_driver_common +EXPORT_SYMBOL_GPL vmlinux 0x41d61475 blk_rq_unprep_clone +EXPORT_SYMBOL_GPL vmlinux 0x41d8abc0 disk_part_iter_exit +EXPORT_SYMBOL_GPL vmlinux 0x41e1064f acpi_get_gpio +EXPORT_SYMBOL_GPL vmlinux 0x41fe61fe regmap_init +EXPORT_SYMBOL_GPL vmlinux 0x4213a51a efivar_entry_set_safe +EXPORT_SYMBOL_GPL vmlinux 0x42160169 flush_workqueue +EXPORT_SYMBOL_GPL vmlinux 0x4230bee4 usb_get_status +EXPORT_SYMBOL_GPL vmlinux 0x4233c71e use_mm +EXPORT_SYMBOL_GPL vmlinux 0x424664c6 xen_swiotlb_alloc_coherent +EXPORT_SYMBOL_GPL vmlinux 0x424acc6d scatterwalk_done +EXPORT_SYMBOL_GPL vmlinux 0x426691fb device_show_ulong +EXPORT_SYMBOL_GPL vmlinux 0x427d5c68 register_jprobes +EXPORT_SYMBOL_GPL vmlinux 0x42825ce2 rcu_scheduler_active +EXPORT_SYMBOL_GPL vmlinux 0x4297b25f firmware_kobj +EXPORT_SYMBOL_GPL vmlinux 0x42b57474 power_supply_am_i_supplied +EXPORT_SYMBOL_GPL vmlinux 0x42cd97c1 ping_seq_stop +EXPORT_SYMBOL_GPL vmlinux 0x42d5aab9 user_destroy +EXPORT_SYMBOL_GPL vmlinux 0x42dcd814 pci_load_saved_state +EXPORT_SYMBOL_GPL vmlinux 0x42facfce unregister_acpi_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x43050f83 pci_enable_sriov +EXPORT_SYMBOL_GPL vmlinux 0x4306d66d dm_requeue_unmapped_request +EXPORT_SYMBOL_GPL vmlinux 0x431439e2 regmap_field_read +EXPORT_SYMBOL_GPL vmlinux 0x432fd7f6 __gpio_set_value +EXPORT_SYMBOL_GPL vmlinux 0x43678e96 ata_port_pbar_desc +EXPORT_SYMBOL_GPL vmlinux 0x4395a640 ohci_suspend +EXPORT_SYMBOL_GPL vmlinux 0x43a53735 __alloc_workqueue_key +EXPORT_SYMBOL_GPL vmlinux 0x43c7a7e3 console_drivers +EXPORT_SYMBOL_GPL vmlinux 0x43dd60d2 security_inode_setattr +EXPORT_SYMBOL_GPL vmlinux 0x43f56e82 ata_xfer_mode2shift +EXPORT_SYMBOL_GPL vmlinux 0x44161252 pm_runtime_irq_safe +EXPORT_SYMBOL_GPL vmlinux 0x4437e798 xenbus_dev_resume +EXPORT_SYMBOL_GPL vmlinux 0x44404f11 kdb_register_repeat +EXPORT_SYMBOL_GPL vmlinux 0x4455e1b3 regulator_disable_deferred +EXPORT_SYMBOL_GPL vmlinux 0x446db46a ata_sff_irq_on +EXPORT_SYMBOL_GPL vmlinux 0x4484a5a4 wait_for_device_probe +EXPORT_SYMBOL_GPL vmlinux 0x4485cf1d perf_event_disable +EXPORT_SYMBOL_GPL vmlinux 0x44b80a61 led_trigger_store +EXPORT_SYMBOL_GPL vmlinux 0x44c261ad blkg_lookup +EXPORT_SYMBOL_GPL vmlinux 0x44c98ec8 __get_vm_area +EXPORT_SYMBOL_GPL vmlinux 0x44cfbd57 fib_rules_register +EXPORT_SYMBOL_GPL vmlinux 0x44f4bd3d ata_dummy_port_info +EXPORT_SYMBOL_GPL vmlinux 0x450ed331 __pm_runtime_disable +EXPORT_SYMBOL_GPL vmlinux 0x450fb522 kmsg_dump_get_buffer +EXPORT_SYMBOL_GPL vmlinux 0x45165952 virtqueue_add_sgs +EXPORT_SYMBOL_GPL vmlinux 0x451f85d2 irq_create_strict_mappings +EXPORT_SYMBOL_GPL vmlinux 0x452ea35f device_pm_wait_for_dev +EXPORT_SYMBOL_GPL vmlinux 0x4541fe0d mtrr_state +EXPORT_SYMBOL_GPL vmlinux 0x4565dd4b sdev_evt_send_simple +EXPORT_SYMBOL_GPL vmlinux 0x457594fa crypto_alg_list +EXPORT_SYMBOL_GPL vmlinux 0x4588819f regmap_field_alloc +EXPORT_SYMBOL_GPL vmlinux 0x45a4cb22 register_dock_notifier +EXPORT_SYMBOL_GPL vmlinux 0x45a7c023 apei_get_debugfs_dir +EXPORT_SYMBOL_GPL vmlinux 0x45bbb75e spi_new_device +EXPORT_SYMBOL_GPL vmlinux 0x45bf1ff3 crypto_inc +EXPORT_SYMBOL_GPL vmlinux 0x45c81cb3 crypto_grab_skcipher +EXPORT_SYMBOL_GPL vmlinux 0x45d14bdf hypercall_page +EXPORT_SYMBOL_GPL vmlinux 0x45d29154 device_move +EXPORT_SYMBOL_GPL vmlinux 0x45f4cf76 blk_rq_prep_clone +EXPORT_SYMBOL_GPL vmlinux 0x46074c17 sdev_evt_alloc +EXPORT_SYMBOL_GPL vmlinux 0x460f31aa rodata_test_data +EXPORT_SYMBOL_GPL vmlinux 0x460f7531 wait_rcu_gp +EXPORT_SYMBOL_GPL vmlinux 0x4621e466 xfrm_audit_state_replay +EXPORT_SYMBOL_GPL vmlinux 0x463571f8 efivar_entry_find +EXPORT_SYMBOL_GPL vmlinux 0x46434934 disable_kprobe +EXPORT_SYMBOL_GPL vmlinux 0x4658ae0f dev_set_name +EXPORT_SYMBOL_GPL vmlinux 0x4672e88b __crypto_dequeue_request +EXPORT_SYMBOL_GPL vmlinux 0x468094ef __udp6_lib_lookup +EXPORT_SYMBOL_GPL vmlinux 0x4688d7ec pvclock_gtod_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x469ee29a aead_geniv_free +EXPORT_SYMBOL_GPL vmlinux 0x46b0a031 vga_default_device +EXPORT_SYMBOL_GPL vmlinux 0x46cc55dd __audit_inode_child +EXPORT_SYMBOL_GPL vmlinux 0x47229b5c gpio_request +EXPORT_SYMBOL_GPL vmlinux 0x473672c5 usb_autopm_put_interface +EXPORT_SYMBOL_GPL vmlinux 0x47473806 crypto_tfm_in_queue +EXPORT_SYMBOL_GPL vmlinux 0x4761f17c register_netevent_notifier +EXPORT_SYMBOL_GPL vmlinux 0x477a6ec6 cpufreq_frequency_get_table +EXPORT_SYMBOL_GPL vmlinux 0x477e8bc0 sdio_readl +EXPORT_SYMBOL_GPL vmlinux 0x47884890 system_power_efficient_wq +EXPORT_SYMBOL_GPL vmlinux 0x47aad3b9 have_governor_per_policy +EXPORT_SYMBOL_GPL vmlinux 0x47f994d1 class_compat_remove_link +EXPORT_SYMBOL_GPL vmlinux 0x47ff399f regulator_is_supported_voltage +EXPORT_SYMBOL_GPL vmlinux 0x480f4d53 ata_std_bios_param +EXPORT_SYMBOL_GPL vmlinux 0x4810fc72 usb_disable_xhci_ports +EXPORT_SYMBOL_GPL vmlinux 0x4828e77b acpi_scan_lock_acquire +EXPORT_SYMBOL_GPL vmlinux 0x482b5b58 stmpe_reg_read +EXPORT_SYMBOL_GPL vmlinux 0x48508fdf balloon_devinfo_alloc +EXPORT_SYMBOL_GPL vmlinux 0x4859d35f uart_set_options +EXPORT_SYMBOL_GPL vmlinux 0x485f2dd9 unregister_kretprobes +EXPORT_SYMBOL_GPL vmlinux 0x48682db9 perf_guest_get_msrs +EXPORT_SYMBOL_GPL vmlinux 0x48695158 pci_vfs_assigned +EXPORT_SYMBOL_GPL vmlinux 0x48ab5da7 pkey_algo +EXPORT_SYMBOL_GPL vmlinux 0x48e327bc smpboot_unregister_percpu_thread +EXPORT_SYMBOL_GPL vmlinux 0x48ea3007 do_take_over_console +EXPORT_SYMBOL_GPL vmlinux 0x4901ac99 da9052_enable_irq +EXPORT_SYMBOL_GPL vmlinux 0x49031def inet_peer_base_init +EXPORT_SYMBOL_GPL vmlinux 0x490a8df6 x86_platform +EXPORT_SYMBOL_GPL vmlinux 0x493fe14a get_kernel_pages +EXPORT_SYMBOL_GPL vmlinux 0x495baf16 page_mkclean +EXPORT_SYMBOL_GPL vmlinux 0x49608bc1 sysfs_remove_group +EXPORT_SYMBOL_GPL vmlinux 0x4970e6b0 dm_get_rq_mapinfo +EXPORT_SYMBOL_GPL vmlinux 0x49728476 device_schedule_callback_owner +EXPORT_SYMBOL_GPL vmlinux 0x498ae57e fuse_dev_release +EXPORT_SYMBOL_GPL vmlinux 0x498d293a trace_buffer_unlock_commit +EXPORT_SYMBOL_GPL vmlinux 0x499043d3 crypto_init_queue +EXPORT_SYMBOL_GPL vmlinux 0x49b2ee2d dev_pm_get_subsys_data +EXPORT_SYMBOL_GPL vmlinux 0x4a06931b watchdog_init_timeout +EXPORT_SYMBOL_GPL vmlinux 0x4a24af28 class_interface_register +EXPORT_SYMBOL_GPL vmlinux 0x4a3c3cf9 microcode_sanity_check +EXPORT_SYMBOL_GPL vmlinux 0x4a747e49 kallsyms_on_each_symbol +EXPORT_SYMBOL_GPL vmlinux 0x4a7e8b32 tty_perform_flush +EXPORT_SYMBOL_GPL vmlinux 0x4a90160e bprintf +EXPORT_SYMBOL_GPL vmlinux 0x4aadeb9a ring_buffer_alloc_read_page +EXPORT_SYMBOL_GPL vmlinux 0x4ab964b7 vring_new_virtqueue +EXPORT_SYMBOL_GPL vmlinux 0x4abf8ae7 da9052_request_irq +EXPORT_SYMBOL_GPL vmlinux 0x4ac2f0c9 virtqueue_get_buf +EXPORT_SYMBOL_GPL vmlinux 0x4affd08b put_compat_timespec +EXPORT_SYMBOL_GPL vmlinux 0x4b2c0088 ping_err +EXPORT_SYMBOL_GPL vmlinux 0x4b3b355d usb_put_phy +EXPORT_SYMBOL_GPL vmlinux 0x4b5b986a crypto_enqueue_request +EXPORT_SYMBOL_GPL vmlinux 0x4b8b41b6 ata_sas_slave_configure +EXPORT_SYMBOL_GPL vmlinux 0x4ba3fbb8 pm_stay_awake +EXPORT_SYMBOL_GPL vmlinux 0x4ba60a4b raw_seq_start +EXPORT_SYMBOL_GPL vmlinux 0x4bbb341b debugfs_create_u16 +EXPORT_SYMBOL_GPL vmlinux 0x4bc62a81 audit_enabled +EXPORT_SYMBOL_GPL vmlinux 0x4bc6841e debugfs_create_x32 +EXPORT_SYMBOL_GPL vmlinux 0x4be5fa96 ata_sff_tf_read +EXPORT_SYMBOL_GPL vmlinux 0x4be6c4be bus_create_file +EXPORT_SYMBOL_GPL vmlinux 0x4beb5f2e blkcipher_walk_done +EXPORT_SYMBOL_GPL vmlinux 0x4bf0d6d1 wakeup_source_prepare +EXPORT_SYMBOL_GPL vmlinux 0x4c1ec497 inet_csk_route_req +EXPORT_SYMBOL_GPL vmlinux 0x4c22cc06 input_ff_erase +EXPORT_SYMBOL_GPL vmlinux 0x4c24081d sysfs_get +EXPORT_SYMBOL_GPL vmlinux 0x4c2a472b __static_cpu_has_safe +EXPORT_SYMBOL_GPL vmlinux 0x4c602bf1 __blkg_release_rcu +EXPORT_SYMBOL_GPL vmlinux 0x4c759827 byte_rev_table +EXPORT_SYMBOL_GPL vmlinux 0x4c7ce589 md_trim_bio +EXPORT_SYMBOL_GPL vmlinux 0x4ccb33bd acpi_dma_controller_free +EXPORT_SYMBOL_GPL vmlinux 0x4ced1881 srcu_init_notifier_head +EXPORT_SYMBOL_GPL vmlinux 0x4d2371c8 blk_end_request_err +EXPORT_SYMBOL_GPL vmlinux 0x4d2a42ee regmap_irq_get_domain +EXPORT_SYMBOL_GPL vmlinux 0x4d4a44fe efivar_entry_set +EXPORT_SYMBOL_GPL vmlinux 0x4d4ad57d ata_sff_data_xfer32 +EXPORT_SYMBOL_GPL vmlinux 0x4d58f44f tpm_pm_suspend +EXPORT_SYMBOL_GPL vmlinux 0x4d5c37a0 key_type_encrypted +EXPORT_SYMBOL_GPL vmlinux 0x4d5f7bb6 ata_host_alloc +EXPORT_SYMBOL_GPL vmlinux 0x4d606dcc rtc_irq_set_state +EXPORT_SYMBOL_GPL vmlinux 0x4d652897 ata_host_resume +EXPORT_SYMBOL_GPL vmlinux 0x4dcb9447 spi_alloc_master +EXPORT_SYMBOL_GPL vmlinux 0x4de17ab3 usb_state_string +EXPORT_SYMBOL_GPL vmlinux 0x4de8ad0b ata_bmdma_qc_prep +EXPORT_SYMBOL_GPL vmlinux 0x4df939d3 spi_async_locked +EXPORT_SYMBOL_GPL vmlinux 0x4e109192 ring_buffer_entries +EXPORT_SYMBOL_GPL vmlinux 0x4e20be3c devres_add +EXPORT_SYMBOL_GPL vmlinux 0x4e242f5f pstore_cannot_block_path +EXPORT_SYMBOL_GPL vmlinux 0x4e36d0c9 preempt_notifier_unregister +EXPORT_SYMBOL_GPL vmlinux 0x4e57723d apei_read +EXPORT_SYMBOL_GPL vmlinux 0x4e74e625 gnttab_batch_copy +EXPORT_SYMBOL_GPL vmlinux 0x4e84ed4a devm_usb_get_phy +EXPORT_SYMBOL_GPL vmlinux 0x4e9a05ac dev_attr_unload_heads +EXPORT_SYMBOL_GPL vmlinux 0x4ec7b8e3 tracepoint_iter_reset +EXPORT_SYMBOL_GPL vmlinux 0x4ef5bcf4 perf_swevent_get_recursion_context +EXPORT_SYMBOL_GPL vmlinux 0x4f067053 pci_hp_deregister +EXPORT_SYMBOL_GPL vmlinux 0x4f1e3daa tps6586x_reads +EXPORT_SYMBOL_GPL vmlinux 0x4f588d27 dev_pm_qos_update_request +EXPORT_SYMBOL_GPL vmlinux 0x4f5fc991 scsi_flush_work +EXPORT_SYMBOL_GPL vmlinux 0x4f6bb490 regulator_get_voltage_sel_regmap +EXPORT_SYMBOL_GPL vmlinux 0x4f74499f task_current_syscall +EXPORT_SYMBOL_GPL vmlinux 0x4fb098fc pci_cfg_access_trylock +EXPORT_SYMBOL_GPL vmlinux 0x4fc0e5b8 usb_ifnum_to_if +EXPORT_SYMBOL_GPL vmlinux 0x4fd4e89d ring_buffer_empty_cpu +EXPORT_SYMBOL_GPL vmlinux 0x4fd5cfb9 idr_alloc +EXPORT_SYMBOL_GPL vmlinux 0x4fdc945d sata_deb_timing_normal +EXPORT_SYMBOL_GPL vmlinux 0x4fe1eddf unregister_netevent_notifier +EXPORT_SYMBOL_GPL vmlinux 0x500b6dd7 atomic_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0x5026585c xen_irq_from_gsi +EXPORT_SYMBOL_GPL vmlinux 0x50305997 wm831x_reg_lock +EXPORT_SYMBOL_GPL vmlinux 0x50347bac synchronize_srcu_expedited +EXPORT_SYMBOL_GPL vmlinux 0x505ab52d clk_round_rate +EXPORT_SYMBOL_GPL vmlinux 0x506691f1 sock_diag_check_cookie +EXPORT_SYMBOL_GPL vmlinux 0x5069e6f8 irq_alloc_domain_generic_chips +EXPORT_SYMBOL_GPL vmlinux 0x506e25ed sysfs_unmerge_group +EXPORT_SYMBOL_GPL vmlinux 0x507de8c6 add_memory +EXPORT_SYMBOL_GPL vmlinux 0x5086ac3a alg_test +EXPORT_SYMBOL_GPL vmlinux 0x5091b823 ring_buffer_read_start +EXPORT_SYMBOL_GPL vmlinux 0x50a8d452 aead_geniv_init +EXPORT_SYMBOL_GPL vmlinux 0x50c41962 efivar_entry_size +EXPORT_SYMBOL_GPL vmlinux 0x50d1f870 pgprot_writecombine +EXPORT_SYMBOL_GPL vmlinux 0x50e7193a __i2c_first_dynamic_bus_num +EXPORT_SYMBOL_GPL vmlinux 0x50f2b77a shash_ahash_digest +EXPORT_SYMBOL_GPL vmlinux 0x50f441a9 __online_page_free +EXPORT_SYMBOL_GPL vmlinux 0x50fad434 round_jiffies_up +EXPORT_SYMBOL_GPL vmlinux 0x510700c8 ata_sff_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x512b1d19 register_kprobe +EXPORT_SYMBOL_GPL vmlinux 0x513ac9c9 unregister_pernet_device +EXPORT_SYMBOL_GPL vmlinux 0x5185a959 pci_destroy_slot +EXPORT_SYMBOL_GPL vmlinux 0x5187ac4b xen_store_evtchn +EXPORT_SYMBOL_GPL vmlinux 0x518c2fc6 hpet_rtc_dropped_irq +EXPORT_SYMBOL_GPL vmlinux 0x5191bd3c efivar_work +EXPORT_SYMBOL_GPL vmlinux 0x51cdff2a md_rdev_init +EXPORT_SYMBOL_GPL vmlinux 0x51eca93b netdev_set_default_ethtool_ops +EXPORT_SYMBOL_GPL vmlinux 0x5204d1e5 __scsi_get_command +EXPORT_SYMBOL_GPL vmlinux 0x5210a5bf hsi_board_list +EXPORT_SYMBOL_GPL vmlinux 0x52195e46 crypto_init_spawn2 +EXPORT_SYMBOL_GPL vmlinux 0x521b16af rio_get_asm +EXPORT_SYMBOL_GPL vmlinux 0x521fd17d regmap_check_range_table +EXPORT_SYMBOL_GPL vmlinux 0x522f538b tpm_send +EXPORT_SYMBOL_GPL vmlinux 0x523feb7e input_ff_create +EXPORT_SYMBOL_GPL vmlinux 0x524b96e5 tpm_show_durations +EXPORT_SYMBOL_GPL vmlinux 0x525b89d5 wakeup_source_add +EXPORT_SYMBOL_GPL vmlinux 0x5278d1f2 ata_scsi_port_error_handler +EXPORT_SYMBOL_GPL vmlinux 0x5297b637 xenbus_match +EXPORT_SYMBOL_GPL vmlinux 0x52b11b96 usb_get_current_frame_number +EXPORT_SYMBOL_GPL vmlinux 0x52c9e4a3 inet_hash_connect +EXPORT_SYMBOL_GPL vmlinux 0x5305646e alarm_try_to_cancel +EXPORT_SYMBOL_GPL vmlinux 0x53063169 fuse_conn_init +EXPORT_SYMBOL_GPL vmlinux 0x5307c5e6 ablkcipher_walk_done +EXPORT_SYMBOL_GPL vmlinux 0x530c5169 tps80031_ext_power_req_config +EXPORT_SYMBOL_GPL vmlinux 0x533200f7 md_allow_write +EXPORT_SYMBOL_GPL vmlinux 0x53529322 put_pid +EXPORT_SYMBOL_GPL vmlinux 0x5358fc36 ring_buffer_discard_commit +EXPORT_SYMBOL_GPL vmlinux 0x535962d9 debugfs_create_atomic_t +EXPORT_SYMBOL_GPL vmlinux 0x53614269 get_cpu_idle_time_us +EXPORT_SYMBOL_GPL vmlinux 0x538bf262 fib_table_lookup +EXPORT_SYMBOL_GPL vmlinux 0x53947087 vfs_setxattr +EXPORT_SYMBOL_GPL vmlinux 0x539f157b pci_xen_swiotlb_init_late +EXPORT_SYMBOL_GPL vmlinux 0x53a3e486 regulator_get_current_limit +EXPORT_SYMBOL_GPL vmlinux 0x53f6c7c3 usb_get_hcd +EXPORT_SYMBOL_GPL vmlinux 0x5412e3e7 pwmchip_remove +EXPORT_SYMBOL_GPL vmlinux 0x54153a03 security_inode_mkdir +EXPORT_SYMBOL_GPL vmlinux 0x541bd60a irq_work_run +EXPORT_SYMBOL_GPL vmlinux 0x54215db5 visitor64 +EXPORT_SYMBOL_GPL vmlinux 0x542ae1aa regmap_write +EXPORT_SYMBOL_GPL vmlinux 0x545ebed7 led_trigger_unregister_simple +EXPORT_SYMBOL_GPL vmlinux 0x5460c8d8 fsnotify_get_cookie +EXPORT_SYMBOL_GPL vmlinux 0x54740eb7 get_cpu_idle_time +EXPORT_SYMBOL_GPL vmlinux 0x549525ef handle_nested_irq +EXPORT_SYMBOL_GPL vmlinux 0x54a9951a ata_sff_freeze +EXPORT_SYMBOL_GPL vmlinux 0x54e52fed sdio_disable_func +EXPORT_SYMBOL_GPL vmlinux 0x55417264 unregister_vt_notifier +EXPORT_SYMBOL_GPL vmlinux 0x55436043 scsi_internal_device_unblock +EXPORT_SYMBOL_GPL vmlinux 0x554bd571 dpm_for_each_dev +EXPORT_SYMBOL_GPL vmlinux 0x55526907 xen_features +EXPORT_SYMBOL_GPL vmlinux 0x556f1f68 regmap_update_bits +EXPORT_SYMBOL_GPL vmlinux 0x55743b33 ata_sff_exec_command +EXPORT_SYMBOL_GPL vmlinux 0x55784228 regmap_irq_get_virq +EXPORT_SYMBOL_GPL vmlinux 0x5579173f transport_remove_device +EXPORT_SYMBOL_GPL vmlinux 0x559248d4 bus_find_device_by_name +EXPORT_SYMBOL_GPL vmlinux 0x5598befc usb_free_coherent +EXPORT_SYMBOL_GPL vmlinux 0x55cea856 wm8350_block_read +EXPORT_SYMBOL_GPL vmlinux 0x56310925 regulator_mode_to_status +EXPORT_SYMBOL_GPL vmlinux 0x56398615 mark_tsc_unstable +EXPORT_SYMBOL_GPL vmlinux 0x5641485b tty_termios_encode_baud_rate +EXPORT_SYMBOL_GPL vmlinux 0x564f1dca klist_add_after +EXPORT_SYMBOL_GPL vmlinux 0x5654f836 erst_get_record_id_next +EXPORT_SYMBOL_GPL vmlinux 0x565b6892 uuid_le_gen +EXPORT_SYMBOL_GPL vmlinux 0x56886b19 scatterwalk_map +EXPORT_SYMBOL_GPL vmlinux 0x56913b66 usb_autopm_put_interface_no_suspend +EXPORT_SYMBOL_GPL vmlinux 0x56947347 dmi_walk +EXPORT_SYMBOL_GPL vmlinux 0x56a5e2a2 bus_find_device +EXPORT_SYMBOL_GPL vmlinux 0x56d697ce cpu_up +EXPORT_SYMBOL_GPL vmlinux 0x56d80251 virtqueue_get_vring_size +EXPORT_SYMBOL_GPL vmlinux 0x56e75d47 klist_node_attached +EXPORT_SYMBOL_GPL vmlinux 0x56e7d899 unix_table_lock +EXPORT_SYMBOL_GPL vmlinux 0x56ff247b md_rdev_clear +EXPORT_SYMBOL_GPL vmlinux 0x56fff5eb max8997_update_reg +EXPORT_SYMBOL_GPL vmlinux 0x57092572 usb_alloc_streams +EXPORT_SYMBOL_GPL vmlinux 0x5716acde driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0x57231f45 ring_buffer_record_on +EXPORT_SYMBOL_GPL vmlinux 0x575a2c2f rtnl_register +EXPORT_SYMBOL_GPL vmlinux 0x575c5f94 execute_in_process_context +EXPORT_SYMBOL_GPL vmlinux 0x5767e18c tcp_death_row +EXPORT_SYMBOL_GPL vmlinux 0x5779d445 xenbus_exists +EXPORT_SYMBOL_GPL vmlinux 0x578216c0 blk_queue_bypass_start +EXPORT_SYMBOL_GPL vmlinux 0x57897c6f crypto_alloc_base +EXPORT_SYMBOL_GPL vmlinux 0x5797d261 usb_init_urb +EXPORT_SYMBOL_GPL vmlinux 0x579e0bf5 rtnl_unregister_all +EXPORT_SYMBOL_GPL vmlinux 0x57f8d939 wm8400_reset_codec_reg_cache +EXPORT_SYMBOL_GPL vmlinux 0x57fb3da2 tcp_get_info +EXPORT_SYMBOL_GPL vmlinux 0x581ff65a device_set_wakeup_enable +EXPORT_SYMBOL_GPL vmlinux 0x582ae400 sk_clear_memalloc +EXPORT_SYMBOL_GPL vmlinux 0x582d70b4 register_virtio_device +EXPORT_SYMBOL_GPL vmlinux 0x58413099 ipv6_fixup_options +EXPORT_SYMBOL_GPL vmlinux 0x585704ab aer_recover_queue +EXPORT_SYMBOL_GPL vmlinux 0x585fa688 sdio_f0_readb +EXPORT_SYMBOL_GPL vmlinux 0x5886c802 remove_irq +EXPORT_SYMBOL_GPL vmlinux 0x5891d0ac ata_do_dev_read_id +EXPORT_SYMBOL_GPL vmlinux 0x5896ec1f usb_hcd_map_urb_for_dma +EXPORT_SYMBOL_GPL vmlinux 0x589cbc80 regmap_field_free +EXPORT_SYMBOL_GPL vmlinux 0x589e4569 syscon_regmap_lookup_by_pdevname +EXPORT_SYMBOL_GPL vmlinux 0x58e33e08 acpi_dma_request_slave_chan_by_index +EXPORT_SYMBOL_GPL vmlinux 0x58fe9409 rio_inb_pwrite_handler +EXPORT_SYMBOL_GPL vmlinux 0x5947abbe max77693_bulk_write +EXPORT_SYMBOL_GPL vmlinux 0x596ac419 eventfd_fget +EXPORT_SYMBOL_GPL vmlinux 0x5994e661 sec_bulk_read +EXPORT_SYMBOL_GPL vmlinux 0x59974adc pci_load_and_free_saved_state +EXPORT_SYMBOL_GPL vmlinux 0x59af956a thermal_zone_bind_cooling_device +EXPORT_SYMBOL_GPL vmlinux 0x59b2adbf input_ff_effect_from_user +EXPORT_SYMBOL_GPL vmlinux 0x59e2743e call_rcu_bh +EXPORT_SYMBOL_GPL vmlinux 0x59eae699 ring_buffer_read_prepare +EXPORT_SYMBOL_GPL vmlinux 0x5a1913a9 sysfs_create_bin_file +EXPORT_SYMBOL_GPL vmlinux 0x5a2b1b67 gnttab_free_grant_reference +EXPORT_SYMBOL_GPL vmlinux 0x5a441ebd efi_query_variable_store +EXPORT_SYMBOL_GPL vmlinux 0x5a48534a regulator_count_voltages +EXPORT_SYMBOL_GPL vmlinux 0x5a53863d ata_dev_disable +EXPORT_SYMBOL_GPL vmlinux 0x5a7bfe41 crypto_probing_notify +EXPORT_SYMBOL_GPL vmlinux 0x5a8f20b8 ip6_push_pending_frames +EXPORT_SYMBOL_GPL vmlinux 0x5aa10729 usb_add_phy_dev +EXPORT_SYMBOL_GPL vmlinux 0x5ac2727f smp_call_function_any +EXPORT_SYMBOL_GPL vmlinux 0x5ad52f80 ata_slave_link_init +EXPORT_SYMBOL_GPL vmlinux 0x5af03a28 gnttab_claim_grant_reference +EXPORT_SYMBOL_GPL vmlinux 0x5af13279 __inet_lookup_established +EXPORT_SYMBOL_GPL vmlinux 0x5b065edb platform_get_irq +EXPORT_SYMBOL_GPL vmlinux 0x5b0b2458 extcon_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x5b2143c0 dma_buf_begin_cpu_access +EXPORT_SYMBOL_GPL vmlinux 0x5b3a8a39 crypto_unregister_template +EXPORT_SYMBOL_GPL vmlinux 0x5b42b607 xen_swiotlb_unmap_sg_attrs +EXPORT_SYMBOL_GPL vmlinux 0x5b5bf523 root_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0x5b8f2cac fixed_phy_set_link_update +EXPORT_SYMBOL_GPL vmlinux 0x5b98fbb8 crypto_alg_mod_lookup +EXPORT_SYMBOL_GPL vmlinux 0x5be66b2f skb_morph +EXPORT_SYMBOL_GPL vmlinux 0x5bef6f22 acpi_subsys_runtime_resume +EXPORT_SYMBOL_GPL vmlinux 0x5c10958a spi_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x5c1148e6 sysfs_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x5c1830af ehci_cf_port_reset_rwsem +EXPORT_SYMBOL_GPL vmlinux 0x5c215c5c tpm_release +EXPORT_SYMBOL_GPL vmlinux 0x5c59e3d9 rio_add_device +EXPORT_SYMBOL_GPL vmlinux 0x5c59ec91 acpi_bus_trim +EXPORT_SYMBOL_GPL vmlinux 0x5c66e90c efivar_run_worker +EXPORT_SYMBOL_GPL vmlinux 0x5c9f89c5 get_kernel_page +EXPORT_SYMBOL_GPL vmlinux 0x5ca93699 tracepoint_iter_next +EXPORT_SYMBOL_GPL vmlinux 0x5cabdced dev_pm_qos_remove_global_notifier +EXPORT_SYMBOL_GPL vmlinux 0x5ce4ccb8 PageHuge +EXPORT_SYMBOL_GPL vmlinux 0x5cf8a882 __tracepoint_block_rq_remap +EXPORT_SYMBOL_GPL vmlinux 0x5d12e48f input_event_to_user +EXPORT_SYMBOL_GPL vmlinux 0x5d14b8c0 class_dev_iter_init +EXPORT_SYMBOL_GPL vmlinux 0x5d1fe01f sata_link_resume +EXPORT_SYMBOL_GPL vmlinux 0x5d366dec gnttab_cancel_free_callback +EXPORT_SYMBOL_GPL vmlinux 0x5d458ea7 platform_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x5d48a650 m2p_find_override_pfn +EXPORT_SYMBOL_GPL vmlinux 0x5d663f3a rio_mport_get_feature +EXPORT_SYMBOL_GPL vmlinux 0x5d77952d hwrng_register +EXPORT_SYMBOL_GPL vmlinux 0x5d91af2e __efivar_entry_delete +EXPORT_SYMBOL_GPL vmlinux 0x5d96bf92 bus_sort_breadthfirst +EXPORT_SYMBOL_GPL vmlinux 0x5da4a81d regmap_field_write +EXPORT_SYMBOL_GPL vmlinux 0x5dbb0257 inet_csk_listen_start +EXPORT_SYMBOL_GPL vmlinux 0x5dd18380 regulator_get_init_drvdata +EXPORT_SYMBOL_GPL vmlinux 0x5e03923c crypto_init_spawn +EXPORT_SYMBOL_GPL vmlinux 0x5e2eac8b rio_mport_read_config_32 +EXPORT_SYMBOL_GPL vmlinux 0x5e2f8cdb debugfs_create_u32_array +EXPORT_SYMBOL_GPL vmlinux 0x5e4ad63b sdio_writel +EXPORT_SYMBOL_GPL vmlinux 0x5e51cd74 swiotlb_nr_tbl +EXPORT_SYMBOL_GPL vmlinux 0x5e64a325 crypto_aes_set_key +EXPORT_SYMBOL_GPL vmlinux 0x5e6b1d95 set_task_ioprio +EXPORT_SYMBOL_GPL vmlinux 0x5e9a5ccf pci_disable_pcie_error_reporting +EXPORT_SYMBOL_GPL vmlinux 0x5ec8e339 inet6_hash_connect +EXPORT_SYMBOL_GPL vmlinux 0x5ed41665 skb_scrub_packet +EXPORT_SYMBOL_GPL vmlinux 0x5ed49f5e ata_platform_remove_one +EXPORT_SYMBOL_GPL vmlinux 0x5f0a01e4 cpufreq_governor_dbs +EXPORT_SYMBOL_GPL vmlinux 0x5f248f72 set_timer_slack +EXPORT_SYMBOL_GPL vmlinux 0x5f2aaf57 set_online_page_callback +EXPORT_SYMBOL_GPL vmlinux 0x5f2ae4f9 shash_ahash_update +EXPORT_SYMBOL_GPL vmlinux 0x5f2da8c4 check_tsc_unstable +EXPORT_SYMBOL_GPL vmlinux 0x5f576017 irq_domain_xlate_twocell +EXPORT_SYMBOL_GPL vmlinux 0x5f607c95 zap_vma_ptes +EXPORT_SYMBOL_GPL vmlinux 0x5f670af7 pwm_config +EXPORT_SYMBOL_GPL vmlinux 0x5f79a98b __tracepoint_napi_poll +EXPORT_SYMBOL_GPL vmlinux 0x5f8f9c4c xenbus_watch_path +EXPORT_SYMBOL_GPL vmlinux 0x5fa67f92 dm_send_uevents +EXPORT_SYMBOL_GPL vmlinux 0x5fc27be9 acpi_dev_irq_flags +EXPORT_SYMBOL_GPL vmlinux 0x5fc31a82 get_net_ns_by_pid +EXPORT_SYMBOL_GPL vmlinux 0x5fdfa2c1 amd_pmu_enable_virt +EXPORT_SYMBOL_GPL vmlinux 0x601ffd9b platform_driver_probe +EXPORT_SYMBOL_GPL vmlinux 0x60506751 unmap_kernel_range_noflush +EXPORT_SYMBOL_GPL vmlinux 0x60854118 xen_xenbus_fops +EXPORT_SYMBOL_GPL vmlinux 0x60864ee9 inet6_csk_bind_conflict +EXPORT_SYMBOL_GPL vmlinux 0x608fcfd6 bio_clone_mddev +EXPORT_SYMBOL_GPL vmlinux 0x60a13e90 rcu_barrier +EXPORT_SYMBOL_GPL vmlinux 0x60a6d8c2 __pm_runtime_set_status +EXPORT_SYMBOL_GPL vmlinux 0x60b44d02 __mnt_drop_write +EXPORT_SYMBOL_GPL vmlinux 0x60b76c95 acpi_debugfs_dir +EXPORT_SYMBOL_GPL vmlinux 0x60c95350 wakeup_source_create +EXPORT_SYMBOL_GPL vmlinux 0x60cd73ed pv_apic_ops +EXPORT_SYMBOL_GPL vmlinux 0x60e202d4 irq_setup_alt_chip +EXPORT_SYMBOL_GPL vmlinux 0x60e5b762 inverse_translate +EXPORT_SYMBOL_GPL vmlinux 0x61091f38 key_type_trusted +EXPORT_SYMBOL_GPL vmlinux 0x6114d8a4 regulator_force_disable +EXPORT_SYMBOL_GPL vmlinux 0x612ee2d7 spi_unregister_master +EXPORT_SYMBOL_GPL vmlinux 0x614f552d driver_attach +EXPORT_SYMBOL_GPL vmlinux 0x614fced4 bitmap_load +EXPORT_SYMBOL_GPL vmlinux 0x615c0ae9 rio_get_comptag +EXPORT_SYMBOL_GPL vmlinux 0x61667a4d led_trigger_show +EXPORT_SYMBOL_GPL vmlinux 0x6183ff15 sprint_OID +EXPORT_SYMBOL_GPL vmlinux 0x619431cb fanout_mutex +EXPORT_SYMBOL_GPL vmlinux 0x6194ffea do_machine_check +EXPORT_SYMBOL_GPL vmlinux 0x61958fc3 sysfs_remove_file_from_group +EXPORT_SYMBOL_GPL vmlinux 0x61f1c511 usb_reset_endpoint +EXPORT_SYMBOL_GPL vmlinux 0x61f6c951 add_page_wait_queue +EXPORT_SYMBOL_GPL vmlinux 0x62122c3e bsg_setup_queue +EXPORT_SYMBOL_GPL vmlinux 0x621e6294 thermal_zone_device_register +EXPORT_SYMBOL_GPL vmlinux 0x6223d719 alarm_start +EXPORT_SYMBOL_GPL vmlinux 0x622c7922 register_oom_notifier +EXPORT_SYMBOL_GPL vmlinux 0x622dacba tick_nohz_idle_enter +EXPORT_SYMBOL_GPL vmlinux 0x623803c8 hest_disable +EXPORT_SYMBOL_GPL vmlinux 0x6248b5be __clk_get_flags +EXPORT_SYMBOL_GPL vmlinux 0x6257f477 usb_hcd_unlink_urb_from_ep +EXPORT_SYMBOL_GPL vmlinux 0x625aa619 xenbus_register_frontend +EXPORT_SYMBOL_GPL vmlinux 0x6286d9da gen_pool_size +EXPORT_SYMBOL_GPL vmlinux 0x62bbc4eb crypto_shash_setkey +EXPORT_SYMBOL_GPL vmlinux 0x62df2c11 usb_unpoison_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0x62e864ed __netpoll_cleanup +EXPORT_SYMBOL_GPL vmlinux 0x62f11450 regmap_raw_write_async +EXPORT_SYMBOL_GPL vmlinux 0x63205de1 ata_scsi_unlock_native_capacity +EXPORT_SYMBOL_GPL vmlinux 0x633526c3 sata_link_scr_lpm +EXPORT_SYMBOL_GPL vmlinux 0x63583918 adp5520_read +EXPORT_SYMBOL_GPL vmlinux 0x635ec980 apei_exec_post_unmap_gars +EXPORT_SYMBOL_GPL vmlinux 0x63769dd3 blkg_prfill_stat +EXPORT_SYMBOL_GPL vmlinux 0x638fe045 unregister_kprobe +EXPORT_SYMBOL_GPL vmlinux 0x63b3cb20 ata_sff_drain_fifo +EXPORT_SYMBOL_GPL vmlinux 0x63c4e050 subsys_virtual_register +EXPORT_SYMBOL_GPL vmlinux 0x63cb9c7e gpiochip_find +EXPORT_SYMBOL_GPL vmlinux 0x63d93bdd cpufreq_notify_transition +EXPORT_SYMBOL_GPL vmlinux 0x63ea2b34 thermal_notify_framework +EXPORT_SYMBOL_GPL vmlinux 0x6420c4e4 wm8400_block_read +EXPORT_SYMBOL_GPL vmlinux 0x646c10cc unregister_hw_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0x64831c13 ata_ehi_clear_desc +EXPORT_SYMBOL_GPL vmlinux 0x64df32f8 acpi_subsys_resume_early +EXPORT_SYMBOL_GPL vmlinux 0x64fee9ff crypto_init_shash_spawn +EXPORT_SYMBOL_GPL vmlinux 0x650d86bc cpuidle_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0x6527a231 dbgp_external_startup +EXPORT_SYMBOL_GPL vmlinux 0x6575eb8c ata_pci_sff_prepare_host +EXPORT_SYMBOL_GPL vmlinux 0x658c8186 amd_get_nb_id +EXPORT_SYMBOL_GPL vmlinux 0x659d2ddb usb_bulk_msg +EXPORT_SYMBOL_GPL vmlinux 0x65a942b5 usb_match_one_id +EXPORT_SYMBOL_GPL vmlinux 0x65b8f2ac sysfs_create_link +EXPORT_SYMBOL_GPL vmlinux 0x65bbbc78 schedule_hrtimeout_range +EXPORT_SYMBOL_GPL vmlinux 0x65ca84bd acpi_dev_runtime_resume +EXPORT_SYMBOL_GPL vmlinux 0x65ccb6f0 call_netevent_notifiers +EXPORT_SYMBOL_GPL vmlinux 0x65d3bc81 skb_partial_csum_set +EXPORT_SYMBOL_GPL vmlinux 0x65d6d0f0 gpio_direction_input +EXPORT_SYMBOL_GPL vmlinux 0x65e8a7aa pm_qos_request_active +EXPORT_SYMBOL_GPL vmlinux 0x65ee9c13 i2c_unlock_adapter +EXPORT_SYMBOL_GPL vmlinux 0x65ff2579 get_matching_microcode +EXPORT_SYMBOL_GPL vmlinux 0x66069728 tasklet_hrtimer_init +EXPORT_SYMBOL_GPL vmlinux 0x661601de sprint_symbol +EXPORT_SYMBOL_GPL vmlinux 0x663c16d6 gnttab_grant_foreign_access_subpage_ref +EXPORT_SYMBOL_GPL vmlinux 0x664d3f63 raw_hash_sk +EXPORT_SYMBOL_GPL vmlinux 0x6658328b i2c_lock_adapter +EXPORT_SYMBOL_GPL vmlinux 0x668402aa crypto_put_default_rng +EXPORT_SYMBOL_GPL vmlinux 0x66d87d38 symbol_put_addr +EXPORT_SYMBOL_GPL vmlinux 0x66f7f60d wm8997_aod +EXPORT_SYMBOL_GPL vmlinux 0x6708f0aa ip6_sk_update_pmtu +EXPORT_SYMBOL_GPL vmlinux 0x672890b6 task_active_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0x6739a503 balloon_set_new_target +EXPORT_SYMBOL_GPL vmlinux 0x673a1863 usb_wait_anchor_empty_timeout +EXPORT_SYMBOL_GPL vmlinux 0x674e13e1 public_key_destroy +EXPORT_SYMBOL_GPL vmlinux 0x67955ce6 profile_hits +EXPORT_SYMBOL_GPL vmlinux 0x67bf9d68 sysfs_remove_bin_file +EXPORT_SYMBOL_GPL vmlinux 0x686fbe4f debugfs_create_x64 +EXPORT_SYMBOL_GPL vmlinux 0x687f25f8 ata_eh_thaw_port +EXPORT_SYMBOL_GPL vmlinux 0x6899ea83 trace_define_field +EXPORT_SYMBOL_GPL vmlinux 0x68ab3093 mnt_want_write_file +EXPORT_SYMBOL_GPL vmlinux 0x68d7e870 shash_register_instance +EXPORT_SYMBOL_GPL vmlinux 0x68f8911c xenbus_dev_error +EXPORT_SYMBOL_GPL vmlinux 0x6921aa34 compat_put_timeval +EXPORT_SYMBOL_GPL vmlinux 0x6923ce63 irq_work_sync +EXPORT_SYMBOL_GPL vmlinux 0x692c30db pci_user_read_config_dword +EXPORT_SYMBOL_GPL vmlinux 0x6942c5f4 ping_seq_next +EXPORT_SYMBOL_GPL vmlinux 0x69447467 ring_buffer_write +EXPORT_SYMBOL_GPL vmlinux 0x697c5d0d tracing_snapshot_alloc +EXPORT_SYMBOL_GPL vmlinux 0x698a899f ring_buffer_peek +EXPORT_SYMBOL_GPL vmlinux 0x698be398 regulator_get_voltage +EXPORT_SYMBOL_GPL vmlinux 0x69d79a81 tpm_calc_ordinal_duration +EXPORT_SYMBOL_GPL vmlinux 0x69e9a2cb ata_scsi_slave_config +EXPORT_SYMBOL_GPL vmlinux 0x69f32429 perf_event_read_value +EXPORT_SYMBOL_GPL vmlinux 0x6a1733eb iommu_group_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x6a178194 tty_port_tty_wakeup +EXPORT_SYMBOL_GPL vmlinux 0x6a5fb566 rcu_sched_force_quiescent_state +EXPORT_SYMBOL_GPL vmlinux 0x6a6cafd2 ring_buffer_read_page +EXPORT_SYMBOL_GPL vmlinux 0x6a8441be cpci_hp_start +EXPORT_SYMBOL_GPL vmlinux 0x6a887e21 tcp_is_cwnd_limited +EXPORT_SYMBOL_GPL vmlinux 0x6a8fa640 register_virtio_driver +EXPORT_SYMBOL_GPL vmlinux 0x6a939d9b efivars_unregister +EXPORT_SYMBOL_GPL vmlinux 0x6ab77430 wm5110_aod +EXPORT_SYMBOL_GPL vmlinux 0x6ab922b2 regulator_get_drvdata +EXPORT_SYMBOL_GPL vmlinux 0x6aba167a regulator_list_voltage +EXPORT_SYMBOL_GPL vmlinux 0x6acad21f acpi_get_cpuid +EXPORT_SYMBOL_GPL vmlinux 0x6ad2d082 klist_add_head +EXPORT_SYMBOL_GPL vmlinux 0x6afb8f02 unregister_asymmetric_key_parser +EXPORT_SYMBOL_GPL vmlinux 0x6b157eb6 dm_suspended +EXPORT_SYMBOL_GPL vmlinux 0x6b29a1fa ring_buffer_event_length +EXPORT_SYMBOL_GPL vmlinux 0x6b47b960 register_pernet_subsys +EXPORT_SYMBOL_GPL vmlinux 0x6b4b3565 fuse_conn_put +EXPORT_SYMBOL_GPL vmlinux 0x6b6b97ce cpufreq_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x6b7689bd vfs_removexattr +EXPORT_SYMBOL_GPL vmlinux 0x6b8422cb __trace_note_message +EXPORT_SYMBOL_GPL vmlinux 0x6b93bf60 inet_twdr_twkill_work +EXPORT_SYMBOL_GPL vmlinux 0x6bc4972a pci_user_read_config_word +EXPORT_SYMBOL_GPL vmlinux 0x6bce3e5a xen_swiotlb_free_coherent +EXPORT_SYMBOL_GPL vmlinux 0x6bed7f62 exportfs_decode_fh +EXPORT_SYMBOL_GPL vmlinux 0x6c05043b devm_rtc_device_register +EXPORT_SYMBOL_GPL vmlinux 0x6c10609e ata_cable_unknown +EXPORT_SYMBOL_GPL vmlinux 0x6c1251fd apei_exec_read_register +EXPORT_SYMBOL_GPL vmlinux 0x6c1c2916 crypto_destroy_tfm +EXPORT_SYMBOL_GPL vmlinux 0x6c3e9ca4 pwm_enable +EXPORT_SYMBOL_GPL vmlinux 0x6c3efbd1 device_remove_bin_file +EXPORT_SYMBOL_GPL vmlinux 0x6c49c4f2 clockevents_notify +EXPORT_SYMBOL_GPL vmlinux 0x6c4b6684 reset_control_assert +EXPORT_SYMBOL_GPL vmlinux 0x6c655913 register_acpi_hed_notifier +EXPORT_SYMBOL_GPL vmlinux 0x6c8d5ae8 __gpio_get_value +EXPORT_SYMBOL_GPL vmlinux 0x6c9aa3b9 ping_seq_start +EXPORT_SYMBOL_GPL vmlinux 0x6ca4bf88 async_synchronize_full_domain +EXPORT_SYMBOL_GPL vmlinux 0x6cad2285 ata_do_set_mode +EXPORT_SYMBOL_GPL vmlinux 0x6cc178eb irq_create_direct_mapping +EXPORT_SYMBOL_GPL vmlinux 0x6d033cd9 inet_twsk_alloc +EXPORT_SYMBOL_GPL vmlinux 0x6d04e1af sysfs_create_file +EXPORT_SYMBOL_GPL vmlinux 0x6d086b43 uart_console_write +EXPORT_SYMBOL_GPL vmlinux 0x6d2785b5 pm_qos_remove_request +EXPORT_SYMBOL_GPL vmlinux 0x6d2fc5a6 net_namespace_list +EXPORT_SYMBOL_GPL vmlinux 0x6d42c964 acpi_subsys_runtime_suspend +EXPORT_SYMBOL_GPL vmlinux 0x6d4dd788 extcon_dev_unregister +EXPORT_SYMBOL_GPL vmlinux 0x6d8eb192 usb_anchor_urb +EXPORT_SYMBOL_GPL vmlinux 0x6daee6d0 __module_text_address +EXPORT_SYMBOL_GPL vmlinux 0x6dafdfe6 __blk_put_request +EXPORT_SYMBOL_GPL vmlinux 0x6dd6b180 devm_clk_register +EXPORT_SYMBOL_GPL vmlinux 0x6df8f4cd pm_qos_add_request +EXPORT_SYMBOL_GPL vmlinux 0x6dfb9a1d ipv4_sk_update_pmtu +EXPORT_SYMBOL_GPL vmlinux 0x6e04a077 usb_bind_phy +EXPORT_SYMBOL_GPL vmlinux 0x6e17e11b xen_swiotlb_sync_sg_for_cpu +EXPORT_SYMBOL_GPL vmlinux 0x6e1b1e9c pm_generic_poweroff +EXPORT_SYMBOL_GPL vmlinux 0x6e2f3962 max8997_write_reg +EXPORT_SYMBOL_GPL vmlinux 0x6e536842 irq_remove_generic_chip +EXPORT_SYMBOL_GPL vmlinux 0x6e58ddf0 gnttab_end_foreign_transfer_ref +EXPORT_SYMBOL_GPL vmlinux 0x6e7943ec iommu_group_id +EXPORT_SYMBOL_GPL vmlinux 0x6e85b00b local_touch_nmi +EXPORT_SYMBOL_GPL vmlinux 0x6e85e637 rio_mport_get_physefb +EXPORT_SYMBOL_GPL vmlinux 0x6e89a560 regmap_irq_chip_get_base +EXPORT_SYMBOL_GPL vmlinux 0x6e8a77ad blk_lld_busy +EXPORT_SYMBOL_GPL vmlinux 0x6e8bf789 hrtimer_start +EXPORT_SYMBOL_GPL vmlinux 0x6e915180 skb_copy_ubufs +EXPORT_SYMBOL_GPL vmlinux 0x6ea98361 ioremap_page_range +EXPORT_SYMBOL_GPL vmlinux 0x6ec9e63c pid_vnr +EXPORT_SYMBOL_GPL vmlinux 0x6eeab660 __blkg_prfill_u64 +EXPORT_SYMBOL_GPL vmlinux 0x6f073dc2 driver_for_each_device +EXPORT_SYMBOL_GPL vmlinux 0x6f1ee69e kgdb_unregister_io_module +EXPORT_SYMBOL_GPL vmlinux 0x6f271612 fat_search_long +EXPORT_SYMBOL_GPL vmlinux 0x6f5eef90 regmap_init_i2c +EXPORT_SYMBOL_GPL vmlinux 0x6f97c798 da9052_regmap_config +EXPORT_SYMBOL_GPL vmlinux 0x6fdb2b23 __ata_change_queue_depth +EXPORT_SYMBOL_GPL vmlinux 0x6fe3d8cf ktime_add_safe +EXPORT_SYMBOL_GPL vmlinux 0x6feda2fa led_classdev_suspend +EXPORT_SYMBOL_GPL vmlinux 0x6ff607b6 crypto_get_default_rng +EXPORT_SYMBOL_GPL vmlinux 0x700b48f1 con_debug_enter +EXPORT_SYMBOL_GPL vmlinux 0x70111c6c tpm_write +EXPORT_SYMBOL_GPL vmlinux 0x701444d5 acpi_bind_one +EXPORT_SYMBOL_GPL vmlinux 0x70193c62 crypto_ahash_setkey +EXPORT_SYMBOL_GPL vmlinux 0x703189d7 regulator_get_mode +EXPORT_SYMBOL_GPL vmlinux 0x7038d1f3 find_symbol +EXPORT_SYMBOL_GPL vmlinux 0x7041aa35 usb_add_phy +EXPORT_SYMBOL_GPL vmlinux 0x705fa97d tpm_open +EXPORT_SYMBOL_GPL vmlinux 0x707ff1bb ata_xfer_mask2mode +EXPORT_SYMBOL_GPL vmlinux 0x708e75eb irq_generic_chip_ops +EXPORT_SYMBOL_GPL vmlinux 0x709a2292 pm_runtime_no_callbacks +EXPORT_SYMBOL_GPL vmlinux 0x70bfba8d generic_fh_to_parent +EXPORT_SYMBOL_GPL vmlinux 0x70c2f9cb ata_std_prereset +EXPORT_SYMBOL_GPL vmlinux 0x70cf032f usb_hcd_irq +EXPORT_SYMBOL_GPL vmlinux 0x71075330 xen_find_device_domain_owner +EXPORT_SYMBOL_GPL vmlinux 0x710c73b6 crypto_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x710e3fb8 pci_disable_ats +EXPORT_SYMBOL_GPL vmlinux 0x71374457 virtqueue_notify +EXPORT_SYMBOL_GPL vmlinux 0x714199ea crypto_register_alg +EXPORT_SYMBOL_GPL vmlinux 0x71461c58 mddev_suspend +EXPORT_SYMBOL_GPL vmlinux 0x716265c7 debugfs_initialized +EXPORT_SYMBOL_GPL vmlinux 0x717577b0 rtc_set_time +EXPORT_SYMBOL_GPL vmlinux 0x71a98ea5 cm_notify_event +EXPORT_SYMBOL_GPL vmlinux 0x71accde8 xattr_getsecurity +EXPORT_SYMBOL_GPL vmlinux 0x71b4b97a xfrm_audit_state_replay_overflow +EXPORT_SYMBOL_GPL vmlinux 0x71cf2ebf __irq_domain_add +EXPORT_SYMBOL_GPL vmlinux 0x71dc9998 crypto_il_tab +EXPORT_SYMBOL_GPL vmlinux 0x71e2c564 device_initialize +EXPORT_SYMBOL_GPL vmlinux 0x71f131c7 usb_enable_autosuspend +EXPORT_SYMBOL_GPL vmlinux 0x722fcfeb crypto_alg_sem +EXPORT_SYMBOL_GPL vmlinux 0x723caf6a mmc_app_cmd +EXPORT_SYMBOL_GPL vmlinux 0x72438146 platform_driver_unregister +EXPORT_SYMBOL_GPL vmlinux 0x726efd81 skb_complete_wifi_ack +EXPORT_SYMBOL_GPL vmlinux 0x72741f25 trace_vbprintk +EXPORT_SYMBOL_GPL vmlinux 0x7278d328 all_vm_events +EXPORT_SYMBOL_GPL vmlinux 0x72864a86 usb_unlocked_disable_lpm +EXPORT_SYMBOL_GPL vmlinux 0x72b212ff regulator_bulk_enable +EXPORT_SYMBOL_GPL vmlinux 0x72d7700f acpi_kobj +EXPORT_SYMBOL_GPL vmlinux 0x72dc4d04 pcie_update_link_speed +EXPORT_SYMBOL_GPL vmlinux 0x72ed01e5 pci_sriov_get_totalvfs +EXPORT_SYMBOL_GPL vmlinux 0x72f3c03e usb_hub_find_child +EXPORT_SYMBOL_GPL vmlinux 0x72ff7396 ipv4_update_pmtu +EXPORT_SYMBOL_GPL vmlinux 0x73013896 xenbus_printf +EXPORT_SYMBOL_GPL vmlinux 0x73056d81 regulator_get_linear_step +EXPORT_SYMBOL_GPL vmlinux 0x731dba7a xen_domain_type +EXPORT_SYMBOL_GPL vmlinux 0x732210ac uhci_reset_hc +EXPORT_SYMBOL_GPL vmlinux 0x732b4662 wm5110_patch +EXPORT_SYMBOL_GPL vmlinux 0x735c6f86 pci_cleanup_aer_uncorrect_error_status +EXPORT_SYMBOL_GPL vmlinux 0x73741f1a ata_ehi_push_desc +EXPORT_SYMBOL_GPL vmlinux 0x73a48b4a ata_sff_std_ports +EXPORT_SYMBOL_GPL vmlinux 0x73a7d887 usb_deregister_dev +EXPORT_SYMBOL_GPL vmlinux 0x73b062b7 unuse_mm +EXPORT_SYMBOL_GPL vmlinux 0x73c2554f __iowrite64_copy +EXPORT_SYMBOL_GPL vmlinux 0x73d69364 ring_buffer_change_overwrite +EXPORT_SYMBOL_GPL vmlinux 0x73e02114 device_init_wakeup +EXPORT_SYMBOL_GPL vmlinux 0x73fd942a acpi_get_pci_dev +EXPORT_SYMBOL_GPL vmlinux 0x7419d7b3 rio_attach_device +EXPORT_SYMBOL_GPL vmlinux 0x7420edff kobject_uevent +EXPORT_SYMBOL_GPL vmlinux 0x74319d6b balloon_page_dequeue +EXPORT_SYMBOL_GPL vmlinux 0x743a165e ata_pack_xfermask +EXPORT_SYMBOL_GPL vmlinux 0x74457e56 apei_resources_fini +EXPORT_SYMBOL_GPL vmlinux 0x744c5ab0 perf_event_refresh +EXPORT_SYMBOL_GPL vmlinux 0x7452adff user_return_notifier_register +EXPORT_SYMBOL_GPL vmlinux 0x745aafd8 ata_host_init +EXPORT_SYMBOL_GPL vmlinux 0x7464ea38 dev_pm_qos_add_global_notifier +EXPORT_SYMBOL_GPL vmlinux 0x746ec22e led_trigger_set_default +EXPORT_SYMBOL_GPL vmlinux 0x74820d6f rio_mport_read_config_16 +EXPORT_SYMBOL_GPL vmlinux 0x748d801a pcap_adc_sync +EXPORT_SYMBOL_GPL vmlinux 0x74954462 timecounter_read +EXPORT_SYMBOL_GPL vmlinux 0x74baf17a tracing_is_on +EXPORT_SYMBOL_GPL vmlinux 0x74c08941 kvm_async_pf_task_wake +EXPORT_SYMBOL_GPL vmlinux 0x74d3bc68 wm8994_reg_write +EXPORT_SYMBOL_GPL vmlinux 0x74d6dd41 ata_dev_set_feature +EXPORT_SYMBOL_GPL vmlinux 0x74deb10c used_vectors +EXPORT_SYMBOL_GPL vmlinux 0x74e7f6cb pci_configure_slot +EXPORT_SYMBOL_GPL vmlinux 0x74e80870 single_release_net +EXPORT_SYMBOL_GPL vmlinux 0x75133f6e visitor128 +EXPORT_SYMBOL_GPL vmlinux 0x7521afb6 leave_mm +EXPORT_SYMBOL_GPL vmlinux 0x7522f3ba irq_modify_status +EXPORT_SYMBOL_GPL vmlinux 0x753967a2 elv_register +EXPORT_SYMBOL_GPL vmlinux 0x754e845a fuse_put_request +EXPORT_SYMBOL_GPL vmlinux 0x757b49d2 kmsg_dump_get_line +EXPORT_SYMBOL_GPL vmlinux 0x758a3812 atomic_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0x758a782e blk_fill_rwbs +EXPORT_SYMBOL_GPL vmlinux 0x75a2119c pci_user_write_config_byte +EXPORT_SYMBOL_GPL vmlinux 0x75aac4a1 efivar_entry_delete +EXPORT_SYMBOL_GPL vmlinux 0x75aea2e1 tty_encode_baud_rate +EXPORT_SYMBOL_GPL vmlinux 0x75cbb776 ping_seq_fops +EXPORT_SYMBOL_GPL vmlinux 0x75feb011 ata_host_register +EXPORT_SYMBOL_GPL vmlinux 0x760c9547 rtc_update_irq +EXPORT_SYMBOL_GPL vmlinux 0x761ee9ac get_device +EXPORT_SYMBOL_GPL vmlinux 0x7633bdf1 usb_hcd_pci_probe +EXPORT_SYMBOL_GPL vmlinux 0x7639c1bd regulator_list_voltage_table +EXPORT_SYMBOL_GPL vmlinux 0x766bab51 device_create_file +EXPORT_SYMBOL_GPL vmlinux 0x7681946c unregister_pm_notifier +EXPORT_SYMBOL_GPL vmlinux 0x768266ad sdio_set_block_size +EXPORT_SYMBOL_GPL vmlinux 0x77004fbf lp8788_read_byte +EXPORT_SYMBOL_GPL vmlinux 0x771165ef __rio_local_write_config_8 +EXPORT_SYMBOL_GPL vmlinux 0x7712771a unbind_from_irqhandler +EXPORT_SYMBOL_GPL vmlinux 0x7729cbdd task_handoff_register +EXPORT_SYMBOL_GPL vmlinux 0x772fbcaf trace_buffer_unlock_commit_regs +EXPORT_SYMBOL_GPL vmlinux 0x77487343 rio_local_get_device_id +EXPORT_SYMBOL_GPL vmlinux 0x775a6ef5 kvm_read_and_reset_pf_reason +EXPORT_SYMBOL_GPL vmlinux 0x7773895f blkg_rwstat_recursive_sum +EXPORT_SYMBOL_GPL vmlinux 0x77887efe ata_sff_lost_interrupt +EXPORT_SYMBOL_GPL vmlinux 0x77a74b48 ata_eh_analyze_ncq_error +EXPORT_SYMBOL_GPL vmlinux 0x77a97672 ata_std_qc_defer +EXPORT_SYMBOL_GPL vmlinux 0x77d5dd73 btree_init_mempool +EXPORT_SYMBOL_GPL vmlinux 0x77d83915 ata_sff_dev_classify +EXPORT_SYMBOL_GPL vmlinux 0x77db7f86 crypto_alloc_aead +EXPORT_SYMBOL_GPL vmlinux 0x77e78218 regulator_allow_bypass +EXPORT_SYMBOL_GPL vmlinux 0x782adb74 hpet_rtc_interrupt +EXPORT_SYMBOL_GPL vmlinux 0x785daac3 pci_bus_add_device +EXPORT_SYMBOL_GPL vmlinux 0x787c882b lzo1x_1_compress +EXPORT_SYMBOL_GPL vmlinux 0x7883325f ata_sff_thaw +EXPORT_SYMBOL_GPL vmlinux 0x7892b6f1 tc3589x_block_read +EXPORT_SYMBOL_GPL vmlinux 0x78aa1d01 dma_buf_kmap +EXPORT_SYMBOL_GPL vmlinux 0x78f10261 relay_file_operations +EXPORT_SYMBOL_GPL vmlinux 0x78f442b9 klist_add_tail +EXPORT_SYMBOL_GPL vmlinux 0x78f794d9 extcon_get_cable_state +EXPORT_SYMBOL_GPL vmlinux 0x7920654f xfrm_audit_state_icvfail +EXPORT_SYMBOL_GPL vmlinux 0x793b2703 sysfs_notify +EXPORT_SYMBOL_GPL vmlinux 0x7944e0fc tracing_off +EXPORT_SYMBOL_GPL vmlinux 0x79468c18 tps65912_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x79621e5e ping_proc_unregister +EXPORT_SYMBOL_GPL vmlinux 0x796c2d48 dm_get_md +EXPORT_SYMBOL_GPL vmlinux 0x79726bf1 get_task_pid +EXPORT_SYMBOL_GPL vmlinux 0x797c8597 sk_clone_lock +EXPORT_SYMBOL_GPL vmlinux 0x7991fd8d crash_vmclear_loaded_vmcss +EXPORT_SYMBOL_GPL vmlinux 0x79d7208a tpm_store_cancel +EXPORT_SYMBOL_GPL vmlinux 0x79de6a62 ip6_route_lookup +EXPORT_SYMBOL_GPL vmlinux 0x79e5b16f event_storage_mutex +EXPORT_SYMBOL_GPL vmlinux 0x79e69460 intel_iommu_gfx_mapped +EXPORT_SYMBOL_GPL vmlinux 0x7a00a11b acpi_dev_pm_attach +EXPORT_SYMBOL_GPL vmlinux 0x7a108d88 ata_acpi_cbl_80wire +EXPORT_SYMBOL_GPL vmlinux 0x7a2e4b44 ezx_pcap_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x7a3901b2 modify_user_hw_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0x7a8c3770 ata_pci_remove_one +EXPORT_SYMBOL_GPL vmlinux 0x7a8c544b bmp085_probe +EXPORT_SYMBOL_GPL vmlinux 0x7a933c98 clk_enable +EXPORT_SYMBOL_GPL vmlinux 0x7a944007 rcu_idle_enter +EXPORT_SYMBOL_GPL vmlinux 0x7ac8e5b0 acpi_gsi_to_irq +EXPORT_SYMBOL_GPL vmlinux 0x7ae1ae8e cpufreq_frequency_table_put_attr +EXPORT_SYMBOL_GPL vmlinux 0x7ae5c04a tcp_done +EXPORT_SYMBOL_GPL vmlinux 0x7b0f1ab3 ring_buffer_free_read_page +EXPORT_SYMBOL_GPL vmlinux 0x7b12cb49 ata_host_start +EXPORT_SYMBOL_GPL vmlinux 0x7b1d544d edac_handler_set +EXPORT_SYMBOL_GPL vmlinux 0x7b1f9297 __rt_mutex_init +EXPORT_SYMBOL_GPL vmlinux 0x7b292d19 static_key_slow_dec_deferred +EXPORT_SYMBOL_GPL vmlinux 0x7b312c82 iommu_domain_alloc +EXPORT_SYMBOL_GPL vmlinux 0x7b34d5b5 put_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0x7b70db6e task_xstate_cachep +EXPORT_SYMBOL_GPL vmlinux 0x7b90d1a9 bind_virq_to_irqhandler +EXPORT_SYMBOL_GPL vmlinux 0x7b91c3e2 cgroup_taskset_next +EXPORT_SYMBOL_GPL vmlinux 0x7b9acd21 blkcg_activate_policy +EXPORT_SYMBOL_GPL vmlinux 0x7ba16337 da903x_update +EXPORT_SYMBOL_GPL vmlinux 0x7baad9b8 ip6_append_data +EXPORT_SYMBOL_GPL vmlinux 0x7bacb5c6 __put_net +EXPORT_SYMBOL_GPL vmlinux 0x7bb83949 raw_seq_stop +EXPORT_SYMBOL_GPL vmlinux 0x7bcb936a ata_sg_init +EXPORT_SYMBOL_GPL vmlinux 0x7c0a5560 balloon_page_enqueue +EXPORT_SYMBOL_GPL vmlinux 0x7c0fb144 ata_bmdma32_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x7c1656f1 pci_restore_msi_state +EXPORT_SYMBOL_GPL vmlinux 0x7c1b5501 crypto_spawn_tfm +EXPORT_SYMBOL_GPL vmlinux 0x7c309fa6 __srcu_read_unlock +EXPORT_SYMBOL_GPL vmlinux 0x7c3f3aa0 crypto_ahash_finup +EXPORT_SYMBOL_GPL vmlinux 0x7c49bca0 led_classdev_register +EXPORT_SYMBOL_GPL vmlinux 0x7c5003c6 ata_sas_port_alloc +EXPORT_SYMBOL_GPL vmlinux 0x7c685d68 shash_free_instance +EXPORT_SYMBOL_GPL vmlinux 0x7c6d5efa fuse_file_poll +EXPORT_SYMBOL_GPL vmlinux 0x7c9edfc6 __init_kthread_worker +EXPORT_SYMBOL_GPL vmlinux 0x7caed1c8 xenbus_dev_changed +EXPORT_SYMBOL_GPL vmlinux 0x7cc1b7fd max77693_bulk_read +EXPORT_SYMBOL_GPL vmlinux 0x7cd6f042 cpufreq_get_current_driver +EXPORT_SYMBOL_GPL vmlinux 0x7ceaf0d5 generic_handle_irq +EXPORT_SYMBOL_GPL vmlinux 0x7d277bb5 crypto_register_pcomp +EXPORT_SYMBOL_GPL vmlinux 0x7d3b4c8e tps65912_reg_write +EXPORT_SYMBOL_GPL vmlinux 0x7d3be9d7 cgroup_taskset_cur_cgroup +EXPORT_SYMBOL_GPL vmlinux 0x7d4ba05e sk_unattached_filter_create +EXPORT_SYMBOL_GPL vmlinux 0x7d59dd46 pm_wq +EXPORT_SYMBOL_GPL vmlinux 0x7d78061a replace_page_cache_page +EXPORT_SYMBOL_GPL vmlinux 0x7d7b2be5 regmap_read +EXPORT_SYMBOL_GPL vmlinux 0x7d89e1f7 __rio_local_read_config_16 +EXPORT_SYMBOL_GPL vmlinux 0x7da5d5a1 dm_disk +EXPORT_SYMBOL_GPL vmlinux 0x7dab26b6 wm831x_isinkv_values +EXPORT_SYMBOL_GPL vmlinux 0x7dc2fdca usb_create_hcd +EXPORT_SYMBOL_GPL vmlinux 0x7dc94247 ata_sas_port_stop +EXPORT_SYMBOL_GPL vmlinux 0x7dccecbc inet6_lookup_listener +EXPORT_SYMBOL_GPL vmlinux 0x7dcd28e4 tty_get_pgrp +EXPORT_SYMBOL_GPL vmlinux 0x7dfd6e6f crypto_shoot_alg +EXPORT_SYMBOL_GPL vmlinux 0x7e00fcae tpm_pm_resume +EXPORT_SYMBOL_GPL vmlinux 0x7e131487 pid_nr_ns +EXPORT_SYMBOL_GPL vmlinux 0x7e355e93 usb_for_each_dev +EXPORT_SYMBOL_GPL vmlinux 0x7e492280 pingv6_prot +EXPORT_SYMBOL_GPL vmlinux 0x7e54926b usb_set_device_state +EXPORT_SYMBOL_GPL vmlinux 0x7e64181d usb_calc_bus_time +EXPORT_SYMBOL_GPL vmlinux 0x7e72978c led_classdev_unregister +EXPORT_SYMBOL_GPL vmlinux 0x7ea1a2bc probe_kernel_write +EXPORT_SYMBOL_GPL vmlinux 0x7ea577fd hvc_alloc +EXPORT_SYMBOL_GPL vmlinux 0x7ec22f9a apei_estatus_check +EXPORT_SYMBOL_GPL vmlinux 0x7ec60a8a netdev_rx_handler_register +EXPORT_SYMBOL_GPL vmlinux 0x7ee58834 dequeue_signal +EXPORT_SYMBOL_GPL vmlinux 0x7ef11033 regulator_unregister +EXPORT_SYMBOL_GPL vmlinux 0x7f0ad9f1 blkdev_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x7f18dd02 regcache_drop_region +EXPORT_SYMBOL_GPL vmlinux 0x7f319eb7 wm8350_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x7f44926e __clocksource_register_scale +EXPORT_SYMBOL_GPL vmlinux 0x7f4ba0da pwm_get +EXPORT_SYMBOL_GPL vmlinux 0x7f63c1d7 ref_module +EXPORT_SYMBOL_GPL vmlinux 0x7f77864d dm_path_uevent +EXPORT_SYMBOL_GPL vmlinux 0x7f845053 adp5520_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0x7ff3b036 debugfs_create_dir +EXPORT_SYMBOL_GPL vmlinux 0x7ffc8718 gpio_set_debounce +EXPORT_SYMBOL_GPL vmlinux 0x800801cc pci_user_read_config_byte +EXPORT_SYMBOL_GPL vmlinux 0x800808d5 wm8997_irq +EXPORT_SYMBOL_GPL vmlinux 0x8010eb17 register_mce_write_callback +EXPORT_SYMBOL_GPL vmlinux 0x80156244 register_kprobes +EXPORT_SYMBOL_GPL vmlinux 0x8054e45d sock_prot_inuse_get +EXPORT_SYMBOL_GPL vmlinux 0x8058b916 vring_transport_features +EXPORT_SYMBOL_GPL vmlinux 0x806e502f btree_destroy +EXPORT_SYMBOL_GPL vmlinux 0x80712e6f crypto_alloc_ablkcipher +EXPORT_SYMBOL_GPL vmlinux 0x807cd7d7 __pm_runtime_resume +EXPORT_SYMBOL_GPL vmlinux 0x8084671a debugfs_create_bool +EXPORT_SYMBOL_GPL vmlinux 0x808ec1a3 crypto_alg_tested +EXPORT_SYMBOL_GPL vmlinux 0x80a9db12 md_stop +EXPORT_SYMBOL_GPL vmlinux 0x80aeb104 sysfs_create_group +EXPORT_SYMBOL_GPL vmlinux 0x80c7c93a swiotlb_map_page +EXPORT_SYMBOL_GPL vmlinux 0x80cb0f03 clockevents_config_and_register +EXPORT_SYMBOL_GPL vmlinux 0x80d3927f __tracepoint_block_unplug +EXPORT_SYMBOL_GPL vmlinux 0x80d5e57a mpi_free +EXPORT_SYMBOL_GPL vmlinux 0x80dedccc devres_remove +EXPORT_SYMBOL_GPL vmlinux 0x80e2d12d tpm_remove_ppi +EXPORT_SYMBOL_GPL vmlinux 0x80f3268f __trace_printk +EXPORT_SYMBOL_GPL vmlinux 0x80f49743 __root_device_register +EXPORT_SYMBOL_GPL vmlinux 0x80f61b54 __rtnl_af_register +EXPORT_SYMBOL_GPL vmlinux 0x811dc334 usb_unregister_notify +EXPORT_SYMBOL_GPL vmlinux 0x81343c79 pwm_free +EXPORT_SYMBOL_GPL vmlinux 0x8149ea54 ata_timing_find_mode +EXPORT_SYMBOL_GPL vmlinux 0x81765204 rdev_set_badblocks +EXPORT_SYMBOL_GPL vmlinux 0x81daa07e blk_trace_remove +EXPORT_SYMBOL_GPL vmlinux 0x8217b877 cpufreq_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0x8226642f __gpio_cansleep +EXPORT_SYMBOL_GPL vmlinux 0x82428b14 simple_attr_write +EXPORT_SYMBOL_GPL vmlinux 0x82551437 usb_block_urb +EXPORT_SYMBOL_GPL vmlinux 0x8273f20b attribute_container_register +EXPORT_SYMBOL_GPL vmlinux 0x8275f051 tty_buffer_request_room +EXPORT_SYMBOL_GPL vmlinux 0x828e26e3 cpuidle_disable_device +EXPORT_SYMBOL_GPL vmlinux 0x82939ebd rcu_batches_completed_sched +EXPORT_SYMBOL_GPL vmlinux 0x82bf3ecd lp8788_update_bits +EXPORT_SYMBOL_GPL vmlinux 0x82cc41a1 xenbus_free_evtchn +EXPORT_SYMBOL_GPL vmlinux 0x82d79b51 sysctl_vfs_cache_pressure +EXPORT_SYMBOL_GPL vmlinux 0x82dbec19 erst_write +EXPORT_SYMBOL_GPL vmlinux 0x82f18069 usb_register_device_driver +EXPORT_SYMBOL_GPL vmlinux 0x8308c0b0 arizona_pm_ops +EXPORT_SYMBOL_GPL vmlinux 0x8316857c acpi_pci_find_root +EXPORT_SYMBOL_GPL vmlinux 0x832f84cf blk_add_driver_data +EXPORT_SYMBOL_GPL vmlinux 0x8378aa04 crypto_lookup_skcipher +EXPORT_SYMBOL_GPL vmlinux 0x837c0c4e pci_disable_pri +EXPORT_SYMBOL_GPL vmlinux 0x837ec7ac nl_table +EXPORT_SYMBOL_GPL vmlinux 0x838aeea6 mm_kobj +EXPORT_SYMBOL_GPL vmlinux 0x838b13e7 ring_buffer_free +EXPORT_SYMBOL_GPL vmlinux 0x83c0aab3 rdev_get_drvdata +EXPORT_SYMBOL_GPL vmlinux 0x83cc3235 mnt_want_write +EXPORT_SYMBOL_GPL vmlinux 0x83e60bd2 power_supply_class +EXPORT_SYMBOL_GPL vmlinux 0x83ef25b5 anon_inode_getfile +EXPORT_SYMBOL_GPL vmlinux 0x840099c3 tty_ldisc_deref +EXPORT_SYMBOL_GPL vmlinux 0x840450f4 ata_std_postreset +EXPORT_SYMBOL_GPL vmlinux 0x84083332 ata_sff_wait_ready +EXPORT_SYMBOL_GPL vmlinux 0x840af36a device_store_int +EXPORT_SYMBOL_GPL vmlinux 0x840cd3b9 __cpufreq_driver_getavg +EXPORT_SYMBOL_GPL vmlinux 0x841a3e0d dma_buf_put +EXPORT_SYMBOL_GPL vmlinux 0x843d70ef acpi_is_root_bridge +EXPORT_SYMBOL_GPL vmlinux 0x8449a90b handle_level_irq +EXPORT_SYMBOL_GPL vmlinux 0x845ed0f4 edac_get_sysfs_subsys +EXPORT_SYMBOL_GPL vmlinux 0x8484f789 sdio_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0x8487a2b6 flush_work +EXPORT_SYMBOL_GPL vmlinux 0x8493074e irq_gc_mask_set_bit +EXPORT_SYMBOL_GPL vmlinux 0x84b345ea device_reprobe +EXPORT_SYMBOL_GPL vmlinux 0x84b8a5a6 swiotlb_tbl_map_single +EXPORT_SYMBOL_GPL vmlinux 0x84daf137 class_dev_iter_exit +EXPORT_SYMBOL_GPL vmlinux 0x85024f8e user_update +EXPORT_SYMBOL_GPL vmlinux 0x85050965 __irq_alloc_descs +EXPORT_SYMBOL_GPL vmlinux 0x850c4e1b acpi_dev_suspend_late +EXPORT_SYMBOL_GPL vmlinux 0x850d1dda wm5102_spi_regmap +EXPORT_SYMBOL_GPL vmlinux 0x851a01a2 fb_deferred_io_init +EXPORT_SYMBOL_GPL vmlinux 0x85216155 ezx_pcap_read +EXPORT_SYMBOL_GPL vmlinux 0x85411533 device_create_vargs +EXPORT_SYMBOL_GPL vmlinux 0x85454b42 clk_register +EXPORT_SYMBOL_GPL vmlinux 0x85478a0b inet6_hash_frag +EXPORT_SYMBOL_GPL vmlinux 0x85515627 mmc_send_ext_csd +EXPORT_SYMBOL_GPL vmlinux 0x857638f6 fb_bl_default_curve +EXPORT_SYMBOL_GPL vmlinux 0x857f5d45 crypto_default_rng +EXPORT_SYMBOL_GPL vmlinux 0x858319b2 vfs_listxattr +EXPORT_SYMBOL_GPL vmlinux 0x858c29ce stmpe_reg_write +EXPORT_SYMBOL_GPL vmlinux 0x859a3e7a xfrm_audit_state_add +EXPORT_SYMBOL_GPL vmlinux 0x859aea9a xen_set_domain_pte +EXPORT_SYMBOL_GPL vmlinux 0x859cd679 save_stack_trace_tsk +EXPORT_SYMBOL_GPL vmlinux 0x85c10896 rcu_batches_completed_bh +EXPORT_SYMBOL_GPL vmlinux 0x85c7f674 ring_buffer_normalize_time_stamp +EXPORT_SYMBOL_GPL vmlinux 0x85d7edfd hpet_set_periodic_freq +EXPORT_SYMBOL_GPL vmlinux 0x85e65f4b rio_mport_write_config_32 +EXPORT_SYMBOL_GPL vmlinux 0x85fa44ee __wake_up_locked +EXPORT_SYMBOL_GPL vmlinux 0x8606c348 rio_request_inb_mbox +EXPORT_SYMBOL_GPL vmlinux 0x86109808 pci_cfg_access_unlock +EXPORT_SYMBOL_GPL vmlinux 0x8627b973 hvc_instantiate +EXPORT_SYMBOL_GPL vmlinux 0x862f98a3 xen_create_contiguous_region +EXPORT_SYMBOL_GPL vmlinux 0x863a6084 blkcipher_walk_virt +EXPORT_SYMBOL_GPL vmlinux 0x86421089 pci_ioremap_bar +EXPORT_SYMBOL_GPL vmlinux 0x86579b0f i2c_probe_func_quick_read +EXPORT_SYMBOL_GPL vmlinux 0x86623fd7 notify_remote_via_irq +EXPORT_SYMBOL_GPL vmlinux 0x866e8a4e usb_hcd_platform_shutdown +EXPORT_SYMBOL_GPL vmlinux 0x86799395 split_page +EXPORT_SYMBOL_GPL vmlinux 0x868784cb __symbol_get +EXPORT_SYMBOL_GPL vmlinux 0x868826f6 __fsnotify_inode_delete +EXPORT_SYMBOL_GPL vmlinux 0x86a51007 gnttab_end_foreign_transfer +EXPORT_SYMBOL_GPL vmlinux 0x86c848bd usb_create_shared_hcd +EXPORT_SYMBOL_GPL vmlinux 0x86ee4af4 pm_wakeup_event +EXPORT_SYMBOL_GPL vmlinux 0x86f6b99d synchronize_rcu_expedited +EXPORT_SYMBOL_GPL vmlinux 0x86f8c910 pcap_set_ts_bits +EXPORT_SYMBOL_GPL vmlinux 0x8702e548 process_srcu +EXPORT_SYMBOL_GPL vmlinux 0x8708858a rio_release_inb_pwrite +EXPORT_SYMBOL_GPL vmlinux 0x870e16b7 xen_test_irq_shared +EXPORT_SYMBOL_GPL vmlinux 0x871aafeb usb_unlink_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0x873466d3 trace_event_buffer_lock_reserve +EXPORT_SYMBOL_GPL vmlinux 0x873fbaea edac_atomic_assert_error +EXPORT_SYMBOL_GPL vmlinux 0x874c22ae bsg_request_fn +EXPORT_SYMBOL_GPL vmlinux 0x875f9124 __get_user_pages_fast +EXPORT_SYMBOL_GPL vmlinux 0x8764aff2 netlink_add_tap +EXPORT_SYMBOL_GPL vmlinux 0x87851adf usb_clear_halt +EXPORT_SYMBOL_GPL vmlinux 0x8794cd19 btree_visitor +EXPORT_SYMBOL_GPL vmlinux 0x87ad2812 public_key_subtype +EXPORT_SYMBOL_GPL vmlinux 0x8810ad5e crypto_xor +EXPORT_SYMBOL_GPL vmlinux 0x884789fb blkg_conf_finish +EXPORT_SYMBOL_GPL vmlinux 0x88553d62 regulator_map_voltage_linear +EXPORT_SYMBOL_GPL vmlinux 0x885be72c regulator_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x88900992 usb_scuttle_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0x88ab6fe3 kgdb_active +EXPORT_SYMBOL_GPL vmlinux 0x88ad849c ata_bmdma_status +EXPORT_SYMBOL_GPL vmlinux 0x88b5647c trace_clock_local +EXPORT_SYMBOL_GPL vmlinux 0x88d6dff1 clk_get_parent +EXPORT_SYMBOL_GPL vmlinux 0x88dfaf2e acpi_dev_pm_detach +EXPORT_SYMBOL_GPL vmlinux 0x88f75fea skcipher_geniv_free +EXPORT_SYMBOL_GPL vmlinux 0x8901ba5b regcache_sync +EXPORT_SYMBOL_GPL vmlinux 0x8904c018 tpm_read +EXPORT_SYMBOL_GPL vmlinux 0x891a5a7f gnttab_max_grant_frames +EXPORT_SYMBOL_GPL vmlinux 0x891bf7a2 thermal_zone_get_temp +EXPORT_SYMBOL_GPL vmlinux 0x8924eb1e rcu_force_quiescent_state +EXPORT_SYMBOL_GPL vmlinux 0x8927d669 extcon_update_state +EXPORT_SYMBOL_GPL vmlinux 0x89485687 iommu_group_put +EXPORT_SYMBOL_GPL vmlinux 0x89502f0c gnttab_subpage_grants_available +EXPORT_SYMBOL_GPL vmlinux 0x8956aeae apei_exec_ctx_init +EXPORT_SYMBOL_GPL vmlinux 0x89593d11 devm_pwm_get +EXPORT_SYMBOL_GPL vmlinux 0x89bbafc6 usb_register_notify +EXPORT_SYMBOL_GPL vmlinux 0x89cf85b7 init_dummy_netdev +EXPORT_SYMBOL_GPL vmlinux 0x89e4c862 setup_irq +EXPORT_SYMBOL_GPL vmlinux 0x8a0f41f7 rt_mutex_lock +EXPORT_SYMBOL_GPL vmlinux 0x8a42c7c6 efivars_register +EXPORT_SYMBOL_GPL vmlinux 0x8a4b8066 unregister_kprobes +EXPORT_SYMBOL_GPL vmlinux 0x8a5c7a80 regulator_enable +EXPORT_SYMBOL_GPL vmlinux 0x8a78989f irq_from_evtchn +EXPORT_SYMBOL_GPL vmlinux 0x8a7cb9c4 platform_thermal_package_rate_control +EXPORT_SYMBOL_GPL vmlinux 0x8ab09056 iommu_domain_get_attr +EXPORT_SYMBOL_GPL vmlinux 0x8abacc47 get_max_files +EXPORT_SYMBOL_GPL vmlinux 0x8ac1309a extcon_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x8ad531b7 cpufreq_show_cpus +EXPORT_SYMBOL_GPL vmlinux 0x8b04668e bind_interdomain_evtchn_to_irqhandler +EXPORT_SYMBOL_GPL vmlinux 0x8b24f15d extcon_set_state +EXPORT_SYMBOL_GPL vmlinux 0x8b3dce79 pci_user_write_config_word +EXPORT_SYMBOL_GPL vmlinux 0x8b435b63 register_asymmetric_key_parser +EXPORT_SYMBOL_GPL vmlinux 0x8b44ba91 max8997_bulk_write +EXPORT_SYMBOL_GPL vmlinux 0x8b52d323 device_destroy +EXPORT_SYMBOL_GPL vmlinux 0x8b66f9e0 xen_platform_pci_unplug +EXPORT_SYMBOL_GPL vmlinux 0x8b68ce9f usb_kill_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0x8b752ac1 ata_tf_to_fis +EXPORT_SYMBOL_GPL vmlinux 0x8b84d34a sb800_prefetch +EXPORT_SYMBOL_GPL vmlinux 0x8b9200fd lookup_address +EXPORT_SYMBOL_GPL vmlinux 0x8bc3562a dev_pm_qos_add_request +EXPORT_SYMBOL_GPL vmlinux 0x8c03d20c destroy_workqueue +EXPORT_SYMBOL_GPL vmlinux 0x8c06a108 xenbus_transaction_start +EXPORT_SYMBOL_GPL vmlinux 0x8c2116be regulator_register +EXPORT_SYMBOL_GPL vmlinux 0x8c470a59 unregister_virtio_driver +EXPORT_SYMBOL_GPL vmlinux 0x8c488ae8 wm5110_irq +EXPORT_SYMBOL_GPL vmlinux 0x8c51f881 usb_driver_release_interface +EXPORT_SYMBOL_GPL vmlinux 0x8c6b2031 ping_unhash +EXPORT_SYMBOL_GPL vmlinux 0x8c7cdcc9 reset_controller_unregister +EXPORT_SYMBOL_GPL vmlinux 0x8c88e02f seq_release_net +EXPORT_SYMBOL_GPL vmlinux 0x8c979c47 wm8994_bulk_write +EXPORT_SYMBOL_GPL vmlinux 0x8cbd4a42 cpufreq_frequency_table_cpuinfo +EXPORT_SYMBOL_GPL vmlinux 0x8cd9f935 setup_APIC_eilvt +EXPORT_SYMBOL_GPL vmlinux 0x8cea765f memalloc_socks +EXPORT_SYMBOL_GPL vmlinux 0x8d22bb58 iommu_group_alloc +EXPORT_SYMBOL_GPL vmlinux 0x8d3447b3 __netpoll_free_async +EXPORT_SYMBOL_GPL vmlinux 0x8d36c088 look_up_OID +EXPORT_SYMBOL_GPL vmlinux 0x8d3b5731 blk_add_request_payload +EXPORT_SYMBOL_GPL vmlinux 0x8d8476b1 relay_subbufs_consumed +EXPORT_SYMBOL_GPL vmlinux 0x8dd53099 md_new_event +EXPORT_SYMBOL_GPL vmlinux 0x8e479eea sg_scsi_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x8e65b568 fuse_conn_kill +EXPORT_SYMBOL_GPL vmlinux 0x8e672201 pwm_request +EXPORT_SYMBOL_GPL vmlinux 0x8e6f2c9d rt_mutex_lock_interruptible +EXPORT_SYMBOL_GPL vmlinux 0x8e78291a __pci_reset_function_locked +EXPORT_SYMBOL_GPL vmlinux 0x8e7b6e47 tty_standard_install +EXPORT_SYMBOL_GPL vmlinux 0x8ecb2e10 i2c_bus_type +EXPORT_SYMBOL_GPL vmlinux 0x8edfb574 injectm +EXPORT_SYMBOL_GPL vmlinux 0x8eebe379 sdio_release_irq +EXPORT_SYMBOL_GPL vmlinux 0x8ef4cdee sata_async_notification +EXPORT_SYMBOL_GPL vmlinux 0x8ef9c826 crypto_unregister_instance +EXPORT_SYMBOL_GPL vmlinux 0x8f0ebd49 noop_backing_dev_info +EXPORT_SYMBOL_GPL vmlinux 0x8f6cee77 __round_jiffies_relative +EXPORT_SYMBOL_GPL vmlinux 0x8f8a365c ata_sff_queue_delayed_work +EXPORT_SYMBOL_GPL vmlinux 0x8f911b92 crypto_unregister_shashes +EXPORT_SYMBOL_GPL vmlinux 0x8fa671a3 swiotlb_tbl_sync_single +EXPORT_SYMBOL_GPL vmlinux 0x8fd134a5 inet_putpeer +EXPORT_SYMBOL_GPL vmlinux 0x9002e6ad crypto_rng_type +EXPORT_SYMBOL_GPL vmlinux 0x9003aa50 klist_iter_init_node +EXPORT_SYMBOL_GPL vmlinux 0x9009602a acpi_bus_get_ejd +EXPORT_SYMBOL_GPL vmlinux 0x9033ce43 xen_unregister_device_domain_owner +EXPORT_SYMBOL_GPL vmlinux 0x9038c063 blk_queue_bypass_end +EXPORT_SYMBOL_GPL vmlinux 0x903d03be crypto_create_tfm +EXPORT_SYMBOL_GPL vmlinux 0x9062c322 ring_buffer_consume +EXPORT_SYMBOL_GPL vmlinux 0x90700c02 rio_dma_prep_slave_sg +EXPORT_SYMBOL_GPL vmlinux 0x90705b7f syscon_node_to_regmap +EXPORT_SYMBOL_GPL vmlinux 0x908a8dd6 netlink_has_listeners +EXPORT_SYMBOL_GPL vmlinux 0x90a1004a crypto_has_alg +EXPORT_SYMBOL_GPL vmlinux 0x90dc29df aout_dump_debugregs +EXPORT_SYMBOL_GPL vmlinux 0x90de0452 platform_thermal_package_notify +EXPORT_SYMBOL_GPL vmlinux 0x90e3ac6e ata_scsi_simulate +EXPORT_SYMBOL_GPL vmlinux 0x90f3179d usb_get_dev +EXPORT_SYMBOL_GPL vmlinux 0x9104dec4 blk_queue_rq_timeout +EXPORT_SYMBOL_GPL vmlinux 0x9122a19c xenbus_grant_ring +EXPORT_SYMBOL_GPL vmlinux 0x9122b079 __mmu_notifier_invalidate_range_end +EXPORT_SYMBOL_GPL vmlinux 0x91238715 scsi_nl_sock +EXPORT_SYMBOL_GPL vmlinux 0x914d76e5 __ata_ehi_push_desc +EXPORT_SYMBOL_GPL vmlinux 0x91810cc6 ata_timing_compute +EXPORT_SYMBOL_GPL vmlinux 0x918ad429 ring_buffer_lock_reserve +EXPORT_SYMBOL_GPL vmlinux 0x918e0114 guest_enter +EXPORT_SYMBOL_GPL vmlinux 0x91ac930f dma_buf_vunmap +EXPORT_SYMBOL_GPL vmlinux 0x91c6e5b0 pcap_to_irq +EXPORT_SYMBOL_GPL vmlinux 0x91cf08ef __platform_driver_register +EXPORT_SYMBOL_GPL vmlinux 0x91d70984 cpuidle_unregister_device +EXPORT_SYMBOL_GPL vmlinux 0x920cc389 visitorl +EXPORT_SYMBOL_GPL vmlinux 0x9225a1b0 transport_add_device +EXPORT_SYMBOL_GPL vmlinux 0x9229380e alloc_page_buffers +EXPORT_SYMBOL_GPL vmlinux 0x9230c2b2 devm_regulator_bulk_get +EXPORT_SYMBOL_GPL vmlinux 0x9242a0ca pci_set_cacheline_size +EXPORT_SYMBOL_GPL vmlinux 0x92458091 pwm_put +EXPORT_SYMBOL_GPL vmlinux 0x924c46f8 zs_unmap_object +EXPORT_SYMBOL_GPL vmlinux 0x926e273c led_trigger_unregister +EXPORT_SYMBOL_GPL vmlinux 0x926e3fed da9055_regmap_config +EXPORT_SYMBOL_GPL vmlinux 0x92bc48e7 rio_set_port_lockout +EXPORT_SYMBOL_GPL vmlinux 0x92be1ba3 pci_pri_status +EXPORT_SYMBOL_GPL vmlinux 0x92caf2f5 subsys_dev_iter_exit +EXPORT_SYMBOL_GPL vmlinux 0x92d31cfb fixed_phy_add +EXPORT_SYMBOL_GPL vmlinux 0x92f18b79 dm_set_target_max_io_len +EXPORT_SYMBOL_GPL vmlinux 0x92f99cb1 regmap_add_irq_chip +EXPORT_SYMBOL_GPL vmlinux 0x930b0369 xenbus_unmap_ring_vfree +EXPORT_SYMBOL_GPL vmlinux 0x9312d80e evtchn_put +EXPORT_SYMBOL_GPL vmlinux 0x9324e78e acpi_dev_resource_memory +EXPORT_SYMBOL_GPL vmlinux 0x93265cbb __udp4_lib_lookup +EXPORT_SYMBOL_GPL vmlinux 0x9331b8fa blocking_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0x933bd4fb ata_dev_next +EXPORT_SYMBOL_GPL vmlinux 0x939b5758 usb_hcd_link_urb_to_ep +EXPORT_SYMBOL_GPL vmlinux 0x93a21575 rt_mutex_destroy +EXPORT_SYMBOL_GPL vmlinux 0x93abb1c6 btree_init +EXPORT_SYMBOL_GPL vmlinux 0x93c1fb34 pci_enable_rom +EXPORT_SYMBOL_GPL vmlinux 0x93d2422d snmp_mib_free +EXPORT_SYMBOL_GPL vmlinux 0x93f4fc1b shash_ahash_finup +EXPORT_SYMBOL_GPL vmlinux 0x93f74001 pci_max_pasids +EXPORT_SYMBOL_GPL vmlinux 0x93fe6473 uart_handle_dcd_change +EXPORT_SYMBOL_GPL vmlinux 0x93ffb269 devm_regmap_init +EXPORT_SYMBOL_GPL vmlinux 0x940a30af rio_mport_chk_dev_access +EXPORT_SYMBOL_GPL vmlinux 0x940af97a fat_flush_inodes +EXPORT_SYMBOL_GPL vmlinux 0x940c2121 pci_bus_resource_n +EXPORT_SYMBOL_GPL vmlinux 0x940e0e2c crypto_alloc_instance +EXPORT_SYMBOL_GPL vmlinux 0x941f2aaa eventfd_ctx_put +EXPORT_SYMBOL_GPL vmlinux 0x943fc708 xen_setup_shutdown_event +EXPORT_SYMBOL_GPL vmlinux 0x9456a6db ehci_suspend +EXPORT_SYMBOL_GPL vmlinux 0x9458b9fc alloc_vm_area +EXPORT_SYMBOL_GPL vmlinux 0x949c8934 n_tty_inherit_ops +EXPORT_SYMBOL_GPL vmlinux 0x949f7342 __alloc_percpu +EXPORT_SYMBOL_GPL vmlinux 0x94a63bd4 fat_get_dotdot_entry +EXPORT_SYMBOL_GPL vmlinux 0x94a68723 ata_scsi_slave_destroy +EXPORT_SYMBOL_GPL vmlinux 0x94bc0526 raw_seq_open +EXPORT_SYMBOL_GPL vmlinux 0x94c318be apei_exec_collect_resources +EXPORT_SYMBOL_GPL vmlinux 0x94c9ecfd regulator_bulk_get +EXPORT_SYMBOL_GPL vmlinux 0x94ef4d05 cpci_hp_stop +EXPORT_SYMBOL_GPL vmlinux 0x952664c5 do_exit +EXPORT_SYMBOL_GPL vmlinux 0x9532cb9e devres_release_group +EXPORT_SYMBOL_GPL vmlinux 0x9532e545 key_type_user +EXPORT_SYMBOL_GPL vmlinux 0x955046af __mmc_switch +EXPORT_SYMBOL_GPL vmlinux 0x9551d172 dev_attr_sw_activity +EXPORT_SYMBOL_GPL vmlinux 0x955b0e2e kthread_worker_fn +EXPORT_SYMBOL_GPL vmlinux 0x956a91ba gpio_get_value_cansleep +EXPORT_SYMBOL_GPL vmlinux 0x9577fb42 ipv6_find_tlv +EXPORT_SYMBOL_GPL vmlinux 0x958df3ac zs_free +EXPORT_SYMBOL_GPL vmlinux 0x9594a6ad irq_domain_xlate_onetwocell +EXPORT_SYMBOL_GPL vmlinux 0x9599ea24 vfs_truncate +EXPORT_SYMBOL_GPL vmlinux 0x95bc9078 btree_free +EXPORT_SYMBOL_GPL vmlinux 0x95c82d5b fsnotify +EXPORT_SYMBOL_GPL vmlinux 0x95d166be spi_busnum_to_master +EXPORT_SYMBOL_GPL vmlinux 0x95ea6767 sata_set_spd +EXPORT_SYMBOL_GPL vmlinux 0x9621849f ring_buffer_event_data +EXPORT_SYMBOL_GPL vmlinux 0x963075fc rtnl_put_cacheinfo +EXPORT_SYMBOL_GPL vmlinux 0x9635c089 devres_remove_group +EXPORT_SYMBOL_GPL vmlinux 0x96481fa3 usb_store_new_id +EXPORT_SYMBOL_GPL vmlinux 0x964add15 xenbus_scanf +EXPORT_SYMBOL_GPL vmlinux 0x964d5c39 acpi_os_map_memory +EXPORT_SYMBOL_GPL vmlinux 0x964d67a8 spi_register_driver +EXPORT_SYMBOL_GPL vmlinux 0x964d9ed2 pm_runtime_set_autosuspend_delay +EXPORT_SYMBOL_GPL vmlinux 0x96554810 register_keyboard_notifier +EXPORT_SYMBOL_GPL vmlinux 0x966d821c simple_attr_release +EXPORT_SYMBOL_GPL vmlinux 0x96707f67 wm8350_reg_unlock +EXPORT_SYMBOL_GPL vmlinux 0x96a22790 vmcore_cleanup +EXPORT_SYMBOL_GPL vmlinux 0x96a78bd1 sysfs_create_files +EXPORT_SYMBOL_GPL vmlinux 0x96e051f6 find_get_pid +EXPORT_SYMBOL_GPL vmlinux 0x96f2fd53 regulator_set_bypass_regmap +EXPORT_SYMBOL_GPL vmlinux 0x97238ed2 platform_device_add +EXPORT_SYMBOL_GPL vmlinux 0x972737d0 arizona_free_irq +EXPORT_SYMBOL_GPL vmlinux 0x97414337 cpuidle_register +EXPORT_SYMBOL_GPL vmlinux 0x97887846 ata_sff_hsm_move +EXPORT_SYMBOL_GPL vmlinux 0x978aaf2b m2p_add_override +EXPORT_SYMBOL_GPL vmlinux 0x97b90733 fb_deferred_io_open +EXPORT_SYMBOL_GPL vmlinux 0x97d0b918 proc_mkdir_data +EXPORT_SYMBOL_GPL vmlinux 0x97de2b83 debug_locks_silent +EXPORT_SYMBOL_GPL vmlinux 0x98121476 handle_simple_irq +EXPORT_SYMBOL_GPL vmlinux 0x9833bc0c hvc_kick +EXPORT_SYMBOL_GPL vmlinux 0x984bea68 pci_pri_stopped +EXPORT_SYMBOL_GPL vmlinux 0x98503a63 mpi_alloc +EXPORT_SYMBOL_GPL vmlinux 0x98545b14 fuse_dev_operations +EXPORT_SYMBOL_GPL vmlinux 0x9879932b crypto_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0x988a4857 __rtnl_link_unregister +EXPORT_SYMBOL_GPL vmlinux 0x98a96cfe rio_mport_get_efb +EXPORT_SYMBOL_GPL vmlinux 0x98be63d1 wm8994_set_bits +EXPORT_SYMBOL_GPL vmlinux 0x98cc564a regulator_set_voltage +EXPORT_SYMBOL_GPL vmlinux 0x98df5a1b md_do_sync +EXPORT_SYMBOL_GPL vmlinux 0x98f57019 usb_driver_claim_interface +EXPORT_SYMBOL_GPL vmlinux 0x990349e0 inet_csk_get_port +EXPORT_SYMBOL_GPL vmlinux 0x991e0142 print_context_stack_bp +EXPORT_SYMBOL_GPL vmlinux 0x9924c496 __usb_get_extra_descriptor +EXPORT_SYMBOL_GPL vmlinux 0x9939076c pm_runtime_set_memalloc_noio +EXPORT_SYMBOL_GPL vmlinux 0x9943ab85 ahash_free_instance +EXPORT_SYMBOL_GPL vmlinux 0x9954543d led_trigger_blink +EXPORT_SYMBOL_GPL vmlinux 0x995d1071 prof_on +EXPORT_SYMBOL_GPL vmlinux 0x996107b5 cpuidle_enable_device +EXPORT_SYMBOL_GPL vmlinux 0x996ebac0 dma_wait_for_async_tx +EXPORT_SYMBOL_GPL vmlinux 0x99982f4c map_vm_area +EXPORT_SYMBOL_GPL vmlinux 0x999ae804 disk_part_iter_next +EXPORT_SYMBOL_GPL vmlinux 0x9a104e57 ftrace_set_notrace +EXPORT_SYMBOL_GPL vmlinux 0x9a11a0fc crypto_attr_alg_name +EXPORT_SYMBOL_GPL vmlinux 0x9a5a82bb class_remove_file +EXPORT_SYMBOL_GPL vmlinux 0x9a643300 get_task_mm +EXPORT_SYMBOL_GPL vmlinux 0x9a706a20 pci_bus_max_busnr +EXPORT_SYMBOL_GPL vmlinux 0x9a7dee0f ip6_update_pmtu +EXPORT_SYMBOL_GPL vmlinux 0x9a89dbf7 lpddr2_jedec_min_tck +EXPORT_SYMBOL_GPL vmlinux 0x9aaab7d5 blkio_subsys +EXPORT_SYMBOL_GPL vmlinux 0x9aaef4de serial8250_tx_chars +EXPORT_SYMBOL_GPL vmlinux 0x9ac11b74 suspend_set_ops +EXPORT_SYMBOL_GPL vmlinux 0x9aca444b get_monotonic_boottime +EXPORT_SYMBOL_GPL vmlinux 0x9acb5fa6 __rio_local_read_config_32 +EXPORT_SYMBOL_GPL vmlinux 0x9acece68 irq_gc_mask_clr_bit +EXPORT_SYMBOL_GPL vmlinux 0x9aeacb87 ring_buffer_iter_empty +EXPORT_SYMBOL_GPL vmlinux 0x9af686ee fat_alloc_new_dir +EXPORT_SYMBOL_GPL vmlinux 0x9b15179b irq_domain_add_simple +EXPORT_SYMBOL_GPL vmlinux 0x9b279511 unregister_acpi_bus_notifier +EXPORT_SYMBOL_GPL vmlinux 0x9b5c1ee8 tty_prepare_flip_string +EXPORT_SYMBOL_GPL vmlinux 0x9b6a7412 idle_notifier_register +EXPORT_SYMBOL_GPL vmlinux 0x9b70c693 shmem_file_setup +EXPORT_SYMBOL_GPL vmlinux 0x9b8cf710 fuse_abort_conn +EXPORT_SYMBOL_GPL vmlinux 0x9b8d9503 hv_register_vmbus_handler +EXPORT_SYMBOL_GPL vmlinux 0x9b9d446a usb_hcd_resume_root_hub +EXPORT_SYMBOL_GPL vmlinux 0x9b9f3648 pcibios_scan_specific_bus +EXPORT_SYMBOL_GPL vmlinux 0x9ba2bb2b gpio_request_array +EXPORT_SYMBOL_GPL vmlinux 0x9baa82ce md_stop_writes +EXPORT_SYMBOL_GPL vmlinux 0x9bd72b78 apei_write +EXPORT_SYMBOL_GPL vmlinux 0x9bd94ed6 __blkdev_driver_ioctl +EXPORT_SYMBOL_GPL vmlinux 0x9bece81b mpi_cmp_ui +EXPORT_SYMBOL_GPL vmlinux 0x9bf82eda sata_pmp_port_ops +EXPORT_SYMBOL_GPL vmlinux 0x9bfbcb50 of_pwm_xlate_with_flags +EXPORT_SYMBOL_GPL vmlinux 0x9c05af7c fat_detach +EXPORT_SYMBOL_GPL vmlinux 0x9c097af1 scsi_autopm_put_device +EXPORT_SYMBOL_GPL vmlinux 0x9c163e8c regulator_is_enabled_regmap +EXPORT_SYMBOL_GPL vmlinux 0x9c2de449 memory_add_physaddr_to_nid +EXPORT_SYMBOL_GPL vmlinux 0x9c2e4b66 acpi_unregister_gsi +EXPORT_SYMBOL_GPL vmlinux 0x9c4c643a gnttab_unmap_refs +EXPORT_SYMBOL_GPL vmlinux 0x9c6b2638 iptunnel_xmit +EXPORT_SYMBOL_GPL vmlinux 0x9c7073f6 crypto_alloc_instance2 +EXPORT_SYMBOL_GPL vmlinux 0x9c760d3d power_supply_get_by_name +EXPORT_SYMBOL_GPL vmlinux 0x9c832909 ftrace_set_filter_ip +EXPORT_SYMBOL_GPL vmlinux 0x9ca4e237 ping_queue_rcv_skb +EXPORT_SYMBOL_GPL vmlinux 0x9ca51e02 rio_dev_put +EXPORT_SYMBOL_GPL vmlinux 0x9ca534f6 usb_unpoison_urb +EXPORT_SYMBOL_GPL vmlinux 0x9cc4f70a register_pm_notifier +EXPORT_SYMBOL_GPL vmlinux 0x9ccce736 blkdev_aio_write +EXPORT_SYMBOL_GPL vmlinux 0x9d06688b register_xenbus_watch +EXPORT_SYMBOL_GPL vmlinux 0x9d1add01 spi_async +EXPORT_SYMBOL_GPL vmlinux 0x9d3850e1 gnttab_alloc_grant_references +EXPORT_SYMBOL_GPL vmlinux 0x9d3944aa spi_bus_unlock +EXPORT_SYMBOL_GPL vmlinux 0x9d48dcf8 crypto_alg_lookup +EXPORT_SYMBOL_GPL vmlinux 0x9d94f8cc regulator_map_voltage_iterate +EXPORT_SYMBOL_GPL vmlinux 0x9d9e155d pv_info +EXPORT_SYMBOL_GPL vmlinux 0x9db74886 xenbus_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0x9df5cccd __blk_end_request_err +EXPORT_SYMBOL_GPL vmlinux 0x9e4a3b42 sdio_readb +EXPORT_SYMBOL_GPL vmlinux 0x9e575682 platform_get_irq_byname +EXPORT_SYMBOL_GPL vmlinux 0x9e90812e unix_peer_get +EXPORT_SYMBOL_GPL vmlinux 0x9e93a2ed xen_remap_domain_mfn_range +EXPORT_SYMBOL_GPL vmlinux 0x9ed3143c leds_list_lock +EXPORT_SYMBOL_GPL vmlinux 0x9ed3542f device_add +EXPORT_SYMBOL_GPL vmlinux 0x9ed554b3 unregister_keyboard_notifier +EXPORT_SYMBOL_GPL vmlinux 0x9ed62f9e css_lookup +EXPORT_SYMBOL_GPL vmlinux 0x9f0664bf dm_get_queue_limits +EXPORT_SYMBOL_GPL vmlinux 0x9f10a479 rtc_initialize_alarm +EXPORT_SYMBOL_GPL vmlinux 0x9f4b3ed9 regmap_raw_write +EXPORT_SYMBOL_GPL vmlinux 0x9f6197b2 xenbus_dev_remove +EXPORT_SYMBOL_GPL vmlinux 0x9fb76c0c power_supply_register +EXPORT_SYMBOL_GPL vmlinux 0x9fce80db fb_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0x9fe01e99 pci_intx_mask_supported +EXPORT_SYMBOL_GPL vmlinux 0x9fe939e1 mpi_powm +EXPORT_SYMBOL_GPL vmlinux 0xa000ac72 dm_kill_unmapped_request +EXPORT_SYMBOL_GPL vmlinux 0xa0030096 usb_bus_list_lock +EXPORT_SYMBOL_GPL vmlinux 0xa015208f mmc_regulator_get_supply +EXPORT_SYMBOL_GPL vmlinux 0xa020dcc1 usb_debug_root +EXPORT_SYMBOL_GPL vmlinux 0xa0720ec5 debugfs_create_regset32 +EXPORT_SYMBOL_GPL vmlinux 0xa093df5c debugfs_create_blob +EXPORT_SYMBOL_GPL vmlinux 0xa0c71dac spi_populate_sync_msg +EXPORT_SYMBOL_GPL vmlinux 0xa0ca27cf find_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0xa0caee59 __online_page_increment_counters +EXPORT_SYMBOL_GPL vmlinux 0xa0ce1364 kern_mount_data +EXPORT_SYMBOL_GPL vmlinux 0xa1095781 usb_sg_cancel +EXPORT_SYMBOL_GPL vmlinux 0xa11216be xen_store_domain_type +EXPORT_SYMBOL_GPL vmlinux 0xa12e0c61 fb_deferred_io_cleanup +EXPORT_SYMBOL_GPL vmlinux 0xa134cbff xenbus_dev_cancel +EXPORT_SYMBOL_GPL vmlinux 0xa14af079 spi_alloc_device +EXPORT_SYMBOL_GPL vmlinux 0xa156a1f2 erst_get_record_id_end +EXPORT_SYMBOL_GPL vmlinux 0xa1597f79 rtc_set_alarm +EXPORT_SYMBOL_GPL vmlinux 0xa15a1183 tpm_show_caps_1_2 +EXPORT_SYMBOL_GPL vmlinux 0xa177b0fd blk_queue_flush_queueable +EXPORT_SYMBOL_GPL vmlinux 0xa182e626 inet6_sk_rebuild_header +EXPORT_SYMBOL_GPL vmlinux 0xa1a11d6d serial8250_handle_irq +EXPORT_SYMBOL_GPL vmlinux 0xa1d2195d tcp_cong_avoid_ai +EXPORT_SYMBOL_GPL vmlinux 0xa1ddf21d tpm_show_caps +EXPORT_SYMBOL_GPL vmlinux 0xa1fcc90d unregister_kretprobe +EXPORT_SYMBOL_GPL vmlinux 0xa20ee995 fuse_direct_io +EXPORT_SYMBOL_GPL vmlinux 0xa228f193 shake_page +EXPORT_SYMBOL_GPL vmlinux 0xa2332d84 xenbus_dev_fatal +EXPORT_SYMBOL_GPL vmlinux 0xa254c3bd sata_std_hardreset +EXPORT_SYMBOL_GPL vmlinux 0xa266c2aa usb_string +EXPORT_SYMBOL_GPL vmlinux 0xa26d9b4f workqueue_congested +EXPORT_SYMBOL_GPL vmlinux 0xa2883bc5 inet_getpeer +EXPORT_SYMBOL_GPL vmlinux 0xa2962c6d iommu_group_get +EXPORT_SYMBOL_GPL vmlinux 0xa2bfc7f4 irq_domain_add_legacy +EXPORT_SYMBOL_GPL vmlinux 0xa2e67f08 acpi_bus_generate_proc_event4 +EXPORT_SYMBOL_GPL vmlinux 0xa3438e64 crypto_attr_alg2 +EXPORT_SYMBOL_GPL vmlinux 0xa353fffc xenbus_rm +EXPORT_SYMBOL_GPL vmlinux 0xa3631167 dma_buf_fd +EXPORT_SYMBOL_GPL vmlinux 0xa38602cd drain_workqueue +EXPORT_SYMBOL_GPL vmlinux 0xa389a49a profile_event_register +EXPORT_SYMBOL_GPL vmlinux 0xa38e5fdd unregister_wide_hw_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0xa3a04602 btree_geo64 +EXPORT_SYMBOL_GPL vmlinux 0xa3ae6b6f sdio_register_driver +EXPORT_SYMBOL_GPL vmlinux 0xa3aed1a3 ata_link_offline +EXPORT_SYMBOL_GPL vmlinux 0xa3c61b9e crypto_unregister_alg +EXPORT_SYMBOL_GPL vmlinux 0xa3e7c113 ring_buffer_iter_peek +EXPORT_SYMBOL_GPL vmlinux 0xa3ec2b91 ata_sff_data_xfer +EXPORT_SYMBOL_GPL vmlinux 0xa3f0efa1 kill_pid_info_as_cred +EXPORT_SYMBOL_GPL vmlinux 0xa4260a5a pci_hp_create_module_link +EXPORT_SYMBOL_GPL vmlinux 0xa452c297 hpet_mask_rtc_irq_bit +EXPORT_SYMBOL_GPL vmlinux 0xa452f2a4 xen_pirq_from_irq +EXPORT_SYMBOL_GPL vmlinux 0xa452fcdc xfrm_audit_policy_add +EXPORT_SYMBOL_GPL vmlinux 0xa466de38 acpi_processor_ffh_cstate_enter +EXPORT_SYMBOL_GPL vmlinux 0xa471a7f1 dm_dispatch_request +EXPORT_SYMBOL_GPL vmlinux 0xa47bd00e reset_controller_register +EXPORT_SYMBOL_GPL vmlinux 0xa48196c8 kdb_poll_idx +EXPORT_SYMBOL_GPL vmlinux 0xa4bdc1e4 ata_pci_device_suspend +EXPORT_SYMBOL_GPL vmlinux 0xa4c5df72 extcon_dev_register +EXPORT_SYMBOL_GPL vmlinux 0xa4d58669 math_state_restore +EXPORT_SYMBOL_GPL vmlinux 0xa4d70a14 sk_detach_filter +EXPORT_SYMBOL_GPL vmlinux 0xa5117530 ata_pci_bmdma_init +EXPORT_SYMBOL_GPL vmlinux 0xa5422807 blkg_lookup_create +EXPORT_SYMBOL_GPL vmlinux 0xa555cff1 srcu_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0xa5577939 ftrace_event_reg +EXPORT_SYMBOL_GPL vmlinux 0xa56a68c4 watchdog_register_device +EXPORT_SYMBOL_GPL vmlinux 0xa56ca855 tracepoint_iter_stop +EXPORT_SYMBOL_GPL vmlinux 0xa585afa9 fuse_get_req +EXPORT_SYMBOL_GPL vmlinux 0xa59553d7 fat_sync_inode +EXPORT_SYMBOL_GPL vmlinux 0xa5dae1b7 irq_set_chip_and_handler_name +EXPORT_SYMBOL_GPL vmlinux 0xa5efbf4c async_synchronize_full +EXPORT_SYMBOL_GPL vmlinux 0xa612986d sec_reg_read +EXPORT_SYMBOL_GPL vmlinux 0xa625110d kmsg_dump_rewind +EXPORT_SYMBOL_GPL vmlinux 0xa62892c6 efivar_sysfs_list +EXPORT_SYMBOL_GPL vmlinux 0xa65da706 spi_bus_lock +EXPORT_SYMBOL_GPL vmlinux 0xa66438e8 erst_read +EXPORT_SYMBOL_GPL vmlinux 0xa66ea443 pm_generic_runtime_resume +EXPORT_SYMBOL_GPL vmlinux 0xa683a497 hrtimer_init_sleeper +EXPORT_SYMBOL_GPL vmlinux 0xa6a0a273 max77693_write_reg +EXPORT_SYMBOL_GPL vmlinux 0xa6a417d8 rio_release_outb_mbox +EXPORT_SYMBOL_GPL vmlinux 0xa6a901b1 pci_reset_function +EXPORT_SYMBOL_GPL vmlinux 0xa6b21ef2 dpm_suspend_end +EXPORT_SYMBOL_GPL vmlinux 0xa6c4b663 dev_pm_qos_expose_flags +EXPORT_SYMBOL_GPL vmlinux 0xa6e1a69d kick_all_cpus_sync +EXPORT_SYMBOL_GPL vmlinux 0xa724257f init_uts_ns +EXPORT_SYMBOL_GPL vmlinux 0xa749f549 clockevents_register_device +EXPORT_SYMBOL_GPL vmlinux 0xa75312bc call_rcu_sched +EXPORT_SYMBOL_GPL vmlinux 0xa7614d1b ata_link_online +EXPORT_SYMBOL_GPL vmlinux 0xa7646389 tc3589x_block_write +EXPORT_SYMBOL_GPL vmlinux 0xa7806879 dma_buf_kunmap_atomic +EXPORT_SYMBOL_GPL vmlinux 0xa78c7eb6 subsys_interface_unregister +EXPORT_SYMBOL_GPL vmlinux 0xa79648db devm_usb_get_phy_dev +EXPORT_SYMBOL_GPL vmlinux 0xa7b19faa ata_common_sdev_attrs +EXPORT_SYMBOL_GPL vmlinux 0xa7b8e025 ata_sff_error_handler +EXPORT_SYMBOL_GPL vmlinux 0xa7de3827 cgroup_is_descendant +EXPORT_SYMBOL_GPL vmlinux 0xa7e20df3 clk_mux_ops +EXPORT_SYMBOL_GPL vmlinux 0xa7ec0b57 tty_mode_ioctl +EXPORT_SYMBOL_GPL vmlinux 0xa7f92105 add_uevent_var +EXPORT_SYMBOL_GPL vmlinux 0xa801b359 efivar_entry_iter_begin +EXPORT_SYMBOL_GPL vmlinux 0xa8135bd3 vfs_lock_file +EXPORT_SYMBOL_GPL vmlinux 0xa851973a raw_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xa8569c63 mnt_clone_write +EXPORT_SYMBOL_GPL vmlinux 0xa88db487 __mmdrop +EXPORT_SYMBOL_GPL vmlinux 0xa8b82a53 xen_destroy_contiguous_region +EXPORT_SYMBOL_GPL vmlinux 0xa8e186e7 d_materialise_unique +EXPORT_SYMBOL_GPL vmlinux 0xa8e30c6e iommu_detach_group +EXPORT_SYMBOL_GPL vmlinux 0xa8e98ae5 ping_close +EXPORT_SYMBOL_GPL vmlinux 0xa8eda5f0 class_destroy +EXPORT_SYMBOL_GPL vmlinux 0xa8f59416 gpio_direction_output +EXPORT_SYMBOL_GPL vmlinux 0xa9126bff hpet_set_rtc_irq_bit +EXPORT_SYMBOL_GPL vmlinux 0xa925e478 __tracepoint_rpm_return_int +EXPORT_SYMBOL_GPL vmlinux 0xa9480d09 __crypto_alloc_tfm +EXPORT_SYMBOL_GPL vmlinux 0xa97a6202 ata_sas_scsi_ioctl +EXPORT_SYMBOL_GPL vmlinux 0xa9866ba6 pci_disable_pasid +EXPORT_SYMBOL_GPL vmlinux 0xa98b3493 ata_bmdma_stop +EXPORT_SYMBOL_GPL vmlinux 0xa9a82042 gnttab_trans_grants_available +EXPORT_SYMBOL_GPL vmlinux 0xa9d0e3ce bdi_writeout_inc +EXPORT_SYMBOL_GPL vmlinux 0xa9d6895b cpufreq_cooling_unregister +EXPORT_SYMBOL_GPL vmlinux 0xa9e18049 task_handoff_unregister +EXPORT_SYMBOL_GPL vmlinux 0xa9e82fd8 ata_sff_data_xfer_noirq +EXPORT_SYMBOL_GPL vmlinux 0xa9eb378f crypto_shash_final +EXPORT_SYMBOL_GPL vmlinux 0xa9f10443 led_stop_software_blink +EXPORT_SYMBOL_GPL vmlinux 0xa9fc3f54 gnttab_grant_foreign_access_trans +EXPORT_SYMBOL_GPL vmlinux 0xaa024a2f crypto_shash_digest +EXPORT_SYMBOL_GPL vmlinux 0xaa0e7f5c usb_hcd_start_port_resume +EXPORT_SYMBOL_GPL vmlinux 0xaa1d03b3 pci_assign_unassigned_bridge_resources +EXPORT_SYMBOL_GPL vmlinux 0xaa224f2a usb_hc_died +EXPORT_SYMBOL_GPL vmlinux 0xaa26a2a0 tpm_gen_interrupt +EXPORT_SYMBOL_GPL vmlinux 0xaa26c88a klist_iter_exit +EXPORT_SYMBOL_GPL vmlinux 0xaa3334d2 register_kretprobes +EXPORT_SYMBOL_GPL vmlinux 0xaa6975a0 ata_link_next +EXPORT_SYMBOL_GPL vmlinux 0xaaa918c9 ftrace_dump +EXPORT_SYMBOL_GPL vmlinux 0xaaa945b0 platform_get_resource +EXPORT_SYMBOL_GPL vmlinux 0xaabc4b0c fat_setattr +EXPORT_SYMBOL_GPL vmlinux 0xab01acbe gnttab_request_free_callback +EXPORT_SYMBOL_GPL vmlinux 0xab2ff61b debugfs_create_size_t +EXPORT_SYMBOL_GPL vmlinux 0xab4e6226 wm831x_device_shutdown +EXPORT_SYMBOL_GPL vmlinux 0xab5240b2 pci_disable_sriov +EXPORT_SYMBOL_GPL vmlinux 0xab6a3a82 cleanup_srcu_struct +EXPORT_SYMBOL_GPL vmlinux 0xab6babaf pm_qos_request +EXPORT_SYMBOL_GPL vmlinux 0xab70f659 usb_remove_hcd +EXPORT_SYMBOL_GPL vmlinux 0xabd6132f dev_change_net_namespace +EXPORT_SYMBOL_GPL vmlinux 0xabf5b1fc unregister_ftrace_event +EXPORT_SYMBOL_GPL vmlinux 0xac517418 __class_create +EXPORT_SYMBOL_GPL vmlinux 0xac5431f3 sysfs_remove_link_from_group +EXPORT_SYMBOL_GPL vmlinux 0xac5ff100 ip_local_out +EXPORT_SYMBOL_GPL vmlinux 0xac9ce195 kvm_async_pf_task_wait +EXPORT_SYMBOL_GPL vmlinux 0xacaea226 ata_acpi_gtm_xfermask +EXPORT_SYMBOL_GPL vmlinux 0xacafa8e7 vector_used_by_percpu_irq +EXPORT_SYMBOL_GPL vmlinux 0xacb11e63 xenbus_alloc_evtchn +EXPORT_SYMBOL_GPL vmlinux 0xacd688ff __rio_local_write_config_16 +EXPORT_SYMBOL_GPL vmlinux 0xace5c0fc usb_bus_list +EXPORT_SYMBOL_GPL vmlinux 0xacf3be9e stmpe_set_bits +EXPORT_SYMBOL_GPL vmlinux 0xad039c54 mod_delayed_work_on +EXPORT_SYMBOL_GPL vmlinux 0xad07b714 inet6_csk_addr2sockaddr +EXPORT_SYMBOL_GPL vmlinux 0xad237dd5 rio_lock_device +EXPORT_SYMBOL_GPL vmlinux 0xad30f3b2 cgroup_rightmost_descendant +EXPORT_SYMBOL_GPL vmlinux 0xad3b74cb sata_port_ops +EXPORT_SYMBOL_GPL vmlinux 0xad3dfe4c extcon_set_cable_state +EXPORT_SYMBOL_GPL vmlinux 0xad5a6715 clk_prepare +EXPORT_SYMBOL_GPL vmlinux 0xad5c3e57 ata_bmdma_port_ops +EXPORT_SYMBOL_GPL vmlinux 0xad8d8ab0 xen_physdev_op_compat +EXPORT_SYMBOL_GPL vmlinux 0xad8fbbbf get_pid_task +EXPORT_SYMBOL_GPL vmlinux 0xad963495 ata_sas_port_async_resume +EXPORT_SYMBOL_GPL vmlinux 0xada05bdf anon_transport_class_unregister +EXPORT_SYMBOL_GPL vmlinux 0xada38534 regulator_bulk_disable +EXPORT_SYMBOL_GPL vmlinux 0xadc785ec kgdb_register_io_module +EXPORT_SYMBOL_GPL vmlinux 0xadddc1de rtc_class_open +EXPORT_SYMBOL_GPL vmlinux 0xade97b79 da9052_disable_irq +EXPORT_SYMBOL_GPL vmlinux 0xadf6aa4d tpm_pcr_read +EXPORT_SYMBOL_GPL vmlinux 0xae0912aa efivar_entry_add +EXPORT_SYMBOL_GPL vmlinux 0xae0f6b4e regulator_unregister_notifier +EXPORT_SYMBOL_GPL vmlinux 0xae56de8d debugfs_create_u8 +EXPORT_SYMBOL_GPL vmlinux 0xae6870fc ata_noop_qc_prep +EXPORT_SYMBOL_GPL vmlinux 0xae68bcec sdio_set_host_pm_flags +EXPORT_SYMBOL_GPL vmlinux 0xae69b1c1 usermodehelper_read_unlock +EXPORT_SYMBOL_GPL vmlinux 0xae69e1d0 device_set_wakeup_capable +EXPORT_SYMBOL_GPL vmlinux 0xae6eaf93 hwpoison_filter_dev_minor +EXPORT_SYMBOL_GPL vmlinux 0xae7c231d mpi_cmp +EXPORT_SYMBOL_GPL vmlinux 0xae7c5411 ms_hyperv +EXPORT_SYMBOL_GPL vmlinux 0xaebd1c13 bmp085_regmap_config +EXPORT_SYMBOL_GPL vmlinux 0xaec23ad0 relay_buf_full +EXPORT_SYMBOL_GPL vmlinux 0xaf023a7b gpiochip_add +EXPORT_SYMBOL_GPL vmlinux 0xafb87d5f sysfs_add_file_to_group +EXPORT_SYMBOL_GPL vmlinux 0xafdfe463 elv_unregister +EXPORT_SYMBOL_GPL vmlinux 0xb0106e92 usb_free_streams +EXPORT_SYMBOL_GPL vmlinux 0xb01b4ccf queue_kthread_work +EXPORT_SYMBOL_GPL vmlinux 0xb02ac411 register_xenstore_notifier +EXPORT_SYMBOL_GPL vmlinux 0xb0398628 crypto_ahash_final +EXPORT_SYMBOL_GPL vmlinux 0xb045ab3d adp5520_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0xb05ecace devm_clk_unregister +EXPORT_SYMBOL_GPL vmlinux 0xb0694a5b crypto_larval_lookup +EXPORT_SYMBOL_GPL vmlinux 0xb0af6f39 cpci_hp_register_bus +EXPORT_SYMBOL_GPL vmlinux 0xb0b85f47 ring_buffer_iter_reset +EXPORT_SYMBOL_GPL vmlinux 0xb0d1656c gpio_free_array +EXPORT_SYMBOL_GPL vmlinux 0xb0e2040f device_bind_driver +EXPORT_SYMBOL_GPL vmlinux 0xb10d55bc cn_netlink_send +EXPORT_SYMBOL_GPL vmlinux 0xb12e5996 arizona_clk32k_enable +EXPORT_SYMBOL_GPL vmlinux 0xb13f5f00 bsg_job_done +EXPORT_SYMBOL_GPL vmlinux 0xb140d14c ring_buffer_read +EXPORT_SYMBOL_GPL vmlinux 0xb1425b32 dm_table_add_target_callbacks +EXPORT_SYMBOL_GPL vmlinux 0xb154da79 ata_port_desc +EXPORT_SYMBOL_GPL vmlinux 0xb172ffac efivars_sysfs_init +EXPORT_SYMBOL_GPL vmlinux 0xb18429eb suspend_device_irqs +EXPORT_SYMBOL_GPL vmlinux 0xb19f26e0 mmu_notifier_unregister +EXPORT_SYMBOL_GPL vmlinux 0xb1acbcce rcu_barrier_sched +EXPORT_SYMBOL_GPL vmlinux 0xb1bed25d dpm_resume_start +EXPORT_SYMBOL_GPL vmlinux 0xb1bedeb7 register_jprobe +EXPORT_SYMBOL_GPL vmlinux 0xb1c0c1c2 async_schedule_domain +EXPORT_SYMBOL_GPL vmlinux 0xb1e25684 __trace_bputs +EXPORT_SYMBOL_GPL vmlinux 0xb2183401 dma_run_dependencies +EXPORT_SYMBOL_GPL vmlinux 0xb21ad08a fat_attach +EXPORT_SYMBOL_GPL vmlinux 0xb2210d64 reset_control_deassert +EXPORT_SYMBOL_GPL vmlinux 0xb2616d99 device_remove_file +EXPORT_SYMBOL_GPL vmlinux 0xb291ec91 tpm_show_temp_deactivated +EXPORT_SYMBOL_GPL vmlinux 0xb2956deb rio_release_inb_mbox +EXPORT_SYMBOL_GPL vmlinux 0xb2aed13f wm8350_reg_read +EXPORT_SYMBOL_GPL vmlinux 0xb2e764e8 suspend_valid_only_mem +EXPORT_SYMBOL_GPL vmlinux 0xb30867e1 crypto_aead_type +EXPORT_SYMBOL_GPL vmlinux 0xb3253ed9 hpet_rtc_timer_init +EXPORT_SYMBOL_GPL vmlinux 0xb345d8a1 usb_remove_phy +EXPORT_SYMBOL_GPL vmlinux 0xb347bb2c work_busy +EXPORT_SYMBOL_GPL vmlinux 0xb34a72d3 xenbus_frontend_closed +EXPORT_SYMBOL_GPL vmlinux 0xb350f190 clk_set_parent +EXPORT_SYMBOL_GPL vmlinux 0xb3e63fcc subsys_system_register +EXPORT_SYMBOL_GPL vmlinux 0xb43725dc perf_pmu_migrate_context +EXPORT_SYMBOL_GPL vmlinux 0xb4538cc4 acpiphp_unregister_attention +EXPORT_SYMBOL_GPL vmlinux 0xb4578d6f hrtimer_try_to_cancel +EXPORT_SYMBOL_GPL vmlinux 0xb4691ac5 __netpoll_setup +EXPORT_SYMBOL_GPL vmlinux 0xb4759adc stop_machine +EXPORT_SYMBOL_GPL vmlinux 0xb48b170a pci_pri_enabled +EXPORT_SYMBOL_GPL vmlinux 0xb4b97c90 pvclock_gtod_register_notifier +EXPORT_SYMBOL_GPL vmlinux 0xb4cf97b6 sdio_align_size +EXPORT_SYMBOL_GPL vmlinux 0xb4d4afca sdio_f0_writeb +EXPORT_SYMBOL_GPL vmlinux 0xb4e14553 gnttab_query_foreign_access +EXPORT_SYMBOL_GPL vmlinux 0xb4e19138 exportfs_encode_fh +EXPORT_SYMBOL_GPL vmlinux 0xb4ea7cf7 kgdb_connected +EXPORT_SYMBOL_GPL vmlinux 0xb4fba09a xen_swiotlb_dma_supported +EXPORT_SYMBOL_GPL vmlinux 0xb51fbd64 edac_op_state +EXPORT_SYMBOL_GPL vmlinux 0xb5294543 tps6586x_writes +EXPORT_SYMBOL_GPL vmlinux 0xb5342dd2 dev_pm_qos_add_ancestor_request +EXPORT_SYMBOL_GPL vmlinux 0xb5342fac iommu_group_add_device +EXPORT_SYMBOL_GPL vmlinux 0xb53620d1 pci_vpd_find_info_keyword +EXPORT_SYMBOL_GPL vmlinux 0xb5483af0 crypto_mod_get +EXPORT_SYMBOL_GPL vmlinux 0xb579ba29 __pm_runtime_suspend +EXPORT_SYMBOL_GPL vmlinux 0xb57dd69e regulator_get_bypass_regmap +EXPORT_SYMBOL_GPL vmlinux 0xb58dcfa2 synchronize_sched_expedited +EXPORT_SYMBOL_GPL vmlinux 0xb5914299 device_del +EXPORT_SYMBOL_GPL vmlinux 0xb5a0e11e lpddr2_jedec_addressing_table +EXPORT_SYMBOL_GPL vmlinux 0xb5b3c47a get_dcookie +EXPORT_SYMBOL_GPL vmlinux 0xb5cb8145 hrtimer_get_res +EXPORT_SYMBOL_GPL vmlinux 0xb5f17edf perf_register_guest_info_callbacks +EXPORT_SYMBOL_GPL vmlinux 0xb60e0175 subsys_dev_iter_init +EXPORT_SYMBOL_GPL vmlinux 0xb6230f1f gnttab_grant_foreign_access +EXPORT_SYMBOL_GPL vmlinux 0xb6258955 tpm_show_enabled +EXPORT_SYMBOL_GPL vmlinux 0xb6261484 register_die_notifier +EXPORT_SYMBOL_GPL vmlinux 0xb6321b79 rio_unlock_device +EXPORT_SYMBOL_GPL vmlinux 0xb63923ce usb_get_from_anchor +EXPORT_SYMBOL_GPL vmlinux 0xb6404324 single_open_net +EXPORT_SYMBOL_GPL vmlinux 0xb6440ee1 ipv6_dup_options +EXPORT_SYMBOL_GPL vmlinux 0xb646208f xfrm_inner_extract_output +EXPORT_SYMBOL_GPL vmlinux 0xb6580c48 sata_pmp_error_handler +EXPORT_SYMBOL_GPL vmlinux 0xb67b2219 cm_suspend_again +EXPORT_SYMBOL_GPL vmlinux 0xb6929ece cpufreq_unregister_governor +EXPORT_SYMBOL_GPL vmlinux 0xb6aeb661 ata_id_c_string +EXPORT_SYMBOL_GPL vmlinux 0xb6c635af wm5110_i2c_regmap +EXPORT_SYMBOL_GPL vmlinux 0xb6dd0ec6 ata_msleep +EXPORT_SYMBOL_GPL vmlinux 0xb709e339 efivar_validate +EXPORT_SYMBOL_GPL vmlinux 0xb7115727 ata_sff_queue_pio_task +EXPORT_SYMBOL_GPL vmlinux 0xb718f2f9 sfi_table_parse +EXPORT_SYMBOL_GPL vmlinux 0xb71f2300 input_ff_event +EXPORT_SYMBOL_GPL vmlinux 0xb7362ba8 module_mutex +EXPORT_SYMBOL_GPL vmlinux 0xb781e5a5 spi_get_next_queued_message +EXPORT_SYMBOL_GPL vmlinux 0xb78dd270 pwm_can_sleep +EXPORT_SYMBOL_GPL vmlinux 0xb7b53f67 sec_reg_update +EXPORT_SYMBOL_GPL vmlinux 0xb7be6e91 devres_release +EXPORT_SYMBOL_GPL vmlinux 0xb7c2672b usb_get_urb +EXPORT_SYMBOL_GPL vmlinux 0xb7d7c12e hpet_set_alarm_time +EXPORT_SYMBOL_GPL vmlinux 0xb7def9f6 tty_register_device_attr +EXPORT_SYMBOL_GPL vmlinux 0xb7ebc0d2 btree_merge +EXPORT_SYMBOL_GPL vmlinux 0xb7ece0a6 need_load_eval +EXPORT_SYMBOL_GPL vmlinux 0xb7f77027 rtc_tm_to_ktime +EXPORT_SYMBOL_GPL vmlinux 0xb7fd4c82 virtqueue_kick +EXPORT_SYMBOL_GPL vmlinux 0xb8043349 usb_control_msg +EXPORT_SYMBOL_GPL vmlinux 0xb806ed60 cpufreq_frequency_table_verify +EXPORT_SYMBOL_GPL vmlinux 0xb86269b8 usb_put_hcd +EXPORT_SYMBOL_GPL vmlinux 0xb863600f thermal_zone_get_zone_by_name +EXPORT_SYMBOL_GPL vmlinux 0xb89c80bd ata_scsi_ioctl +EXPORT_SYMBOL_GPL vmlinux 0xb89d9a05 inet_csk_reqsk_queue_prune +EXPORT_SYMBOL_GPL vmlinux 0xb8b2b1f7 mce_register_decode_chain +EXPORT_SYMBOL_GPL vmlinux 0xb8f78323 class_compat_create_link +EXPORT_SYMBOL_GPL vmlinux 0xb903674c scatterwalk_map_and_copy +EXPORT_SYMBOL_GPL vmlinux 0xb91cb704 task_user_regset_view +EXPORT_SYMBOL_GPL vmlinux 0xb924b1da ata_bmdma_port_start +EXPORT_SYMBOL_GPL vmlinux 0xb9468ff8 inet_csk_compat_getsockopt +EXPORT_SYMBOL_GPL vmlinux 0xb95da7c5 wm8350_clear_bits +EXPORT_SYMBOL_GPL vmlinux 0xb99d5837 xenbus_read +EXPORT_SYMBOL_GPL vmlinux 0xb9b9df41 usb_amd_dev_put +EXPORT_SYMBOL_GPL vmlinux 0xb9c425de register_syscore_ops +EXPORT_SYMBOL_GPL vmlinux 0xb9d025c9 llist_del_first +EXPORT_SYMBOL_GPL vmlinux 0xb9d4efa4 bmp085_remove +EXPORT_SYMBOL_GPL vmlinux 0xb9dc74fe dev_get_gen_pool +EXPORT_SYMBOL_GPL vmlinux 0xba2fa624 tcp_set_state +EXPORT_SYMBOL_GPL vmlinux 0xba358450 sysfs_chmod_file +EXPORT_SYMBOL_GPL vmlinux 0xba3d6b41 do_unbind_con_driver +EXPORT_SYMBOL_GPL vmlinux 0xba4915e8 input_ff_destroy +EXPORT_SYMBOL_GPL vmlinux 0xba7b1fc3 blk_abort_request +EXPORT_SYMBOL_GPL vmlinux 0xba892596 bsg_register_queue +EXPORT_SYMBOL_GPL vmlinux 0xbaa00756 dm_underlying_device_busy +EXPORT_SYMBOL_GPL vmlinux 0xbaa62f09 ping_init_sock +EXPORT_SYMBOL_GPL vmlinux 0xbaa662c5 sk_unattached_filter_destroy +EXPORT_SYMBOL_GPL vmlinux 0xbab0edea gnttab_map_refs +EXPORT_SYMBOL_GPL vmlinux 0xbab6f0fb fat_build_inode +EXPORT_SYMBOL_GPL vmlinux 0xbb038ce4 perf_unregister_guest_info_callbacks +EXPORT_SYMBOL_GPL vmlinux 0xbb0a4ebf regcache_cache_bypass +EXPORT_SYMBOL_GPL vmlinux 0xbb0ab47b debug_locks +EXPORT_SYMBOL_GPL vmlinux 0xbb128381 irq_set_affinity_hint +EXPORT_SYMBOL_GPL vmlinux 0xbb3d42d4 sysfs_get_dirent +EXPORT_SYMBOL_GPL vmlinux 0xbb521d73 usb_register_driver +EXPORT_SYMBOL_GPL vmlinux 0xbba8a46e __efivar_entry_get +EXPORT_SYMBOL_GPL vmlinux 0xbbb1de4c relay_reset +EXPORT_SYMBOL_GPL vmlinux 0xbbb38239 btree_last +EXPORT_SYMBOL_GPL vmlinux 0xbbb98859 edid_info +EXPORT_SYMBOL_GPL vmlinux 0xbbc3ed82 dev_pm_qos_add_notifier +EXPORT_SYMBOL_GPL vmlinux 0xbbd4f657 xen_pcpu_id +EXPORT_SYMBOL_GPL vmlinux 0xbbdcda38 led_trigger_set +EXPORT_SYMBOL_GPL vmlinux 0xbbeb4c7d devm_acpi_dma_controller_register +EXPORT_SYMBOL_GPL vmlinux 0xbbf5e5c8 sock_diag_unregister_inet_compat +EXPORT_SYMBOL_GPL vmlinux 0xbc0370ff __inet_inherit_port +EXPORT_SYMBOL_GPL vmlinux 0xbc1445e2 device_register +EXPORT_SYMBOL_GPL vmlinux 0xbc58436a crypto_mod_put +EXPORT_SYMBOL_GPL vmlinux 0xbc726275 reset_control_get +EXPORT_SYMBOL_GPL vmlinux 0xbc7a1b44 acpiphp_register_attention +EXPORT_SYMBOL_GPL vmlinux 0xbc7b2347 bus_get_kset +EXPORT_SYMBOL_GPL vmlinux 0xbca27304 iommu_group_for_each_dev +EXPORT_SYMBOL_GPL vmlinux 0xbcac6160 pm_qos_remove_notifier +EXPORT_SYMBOL_GPL vmlinux 0xbcb6b515 __pneigh_lookup +EXPORT_SYMBOL_GPL vmlinux 0xbcb838a1 amd_flush_garts +EXPORT_SYMBOL_GPL vmlinux 0xbcbdd579 usb_reset_configuration +EXPORT_SYMBOL_GPL vmlinux 0xbccfc839 sdev_evt_send +EXPORT_SYMBOL_GPL vmlinux 0xbccfd4d8 register_oldmem_pfn_is_ram +EXPORT_SYMBOL_GPL vmlinux 0xbcdd5b99 iommu_group_set_name +EXPORT_SYMBOL_GPL vmlinux 0xbce7b3e8 rtc_alarm_irq_enable +EXPORT_SYMBOL_GPL vmlinux 0xbce9859f usb_get_intf +EXPORT_SYMBOL_GPL vmlinux 0xbd0897e4 aead_geniv_alloc +EXPORT_SYMBOL_GPL vmlinux 0xbd14fe47 crypto_ahash_digest +EXPORT_SYMBOL_GPL vmlinux 0xbd506a46 unregister_hotplug_dock_device +EXPORT_SYMBOL_GPL vmlinux 0xbd51959d skb_to_sgvec +EXPORT_SYMBOL_GPL vmlinux 0xbd5cb8b9 ring_buffer_resize +EXPORT_SYMBOL_GPL vmlinux 0xbd626773 pci_check_and_mask_intx +EXPORT_SYMBOL_GPL vmlinux 0xbd6cd06e tps65912_reg_read +EXPORT_SYMBOL_GPL vmlinux 0xbd72de26 skcipher_geniv_init +EXPORT_SYMBOL_GPL vmlinux 0xbd81b3c6 screen_glyph +EXPORT_SYMBOL_GPL vmlinux 0xbdaf5686 get_compat_timeval +EXPORT_SYMBOL_GPL vmlinux 0xbdc33829 pci_enable_ats +EXPORT_SYMBOL_GPL vmlinux 0xbdc4c1f1 ata_pci_sff_activate_host +EXPORT_SYMBOL_GPL vmlinux 0xbdc5a547 register_ftrace_event +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 0xbdd61c14 __add_pages +EXPORT_SYMBOL_GPL vmlinux 0xbe1887e4 ata_unpack_xfermask +EXPORT_SYMBOL_GPL vmlinux 0xbe420f54 pci_test_config_bits +EXPORT_SYMBOL_GPL vmlinux 0xbe4a2792 ata_acpi_gtm +EXPORT_SYMBOL_GPL vmlinux 0xbe55763f __page_file_mapping +EXPORT_SYMBOL_GPL vmlinux 0xbe5d0996 idle_notifier_unregister +EXPORT_SYMBOL_GPL vmlinux 0xbe7dbd41 skb_segment +EXPORT_SYMBOL_GPL vmlinux 0xbe82510a pm_runtime_autosuspend_expiration +EXPORT_SYMBOL_GPL vmlinux 0xbe8bfb4c key_type_logon +EXPORT_SYMBOL_GPL vmlinux 0xbe98086e clk_unregister +EXPORT_SYMBOL_GPL vmlinux 0xbeadba9d __clocksource_updatefreq_scale +EXPORT_SYMBOL_GPL vmlinux 0xbed20d9a __wake_up_locked_key +EXPORT_SYMBOL_GPL vmlinux 0xbee10cdb devm_acpi_dma_controller_free +EXPORT_SYMBOL_GPL vmlinux 0xbf041102 register_vt_notifier +EXPORT_SYMBOL_GPL vmlinux 0xbf0a9b4f subsys_dev_iter_next +EXPORT_SYMBOL_GPL vmlinux 0xbf0b64d9 tcp_twsk_unique +EXPORT_SYMBOL_GPL vmlinux 0xbf461517 pci_sriov_set_totalvfs +EXPORT_SYMBOL_GPL vmlinux 0xbf57c182 ata_bmdma_port_intr +EXPORT_SYMBOL_GPL vmlinux 0xbf76320c pci_enable_pcie_error_reporting +EXPORT_SYMBOL_GPL vmlinux 0xbf772149 fb_deferred_io_fsync +EXPORT_SYMBOL_GPL vmlinux 0xbf82e6af synchronize_srcu +EXPORT_SYMBOL_GPL vmlinux 0xbfbc5434 pciserial_resume_ports +EXPORT_SYMBOL_GPL vmlinux 0xbfd0cb64 fuse_sync_release +EXPORT_SYMBOL_GPL vmlinux 0xbffde8ec compat_alloc_user_space +EXPORT_SYMBOL_GPL vmlinux 0xc0151773 regulator_get_exclusive +EXPORT_SYMBOL_GPL vmlinux 0xc0334e5c adp5520_clr_bits +EXPORT_SYMBOL_GPL vmlinux 0xc0373081 rio_map_inb_region +EXPORT_SYMBOL_GPL vmlinux 0xc03b5d54 usb_hub_clear_tt_buffer +EXPORT_SYMBOL_GPL vmlinux 0xc0681b77 of_reset_simple_xlate +EXPORT_SYMBOL_GPL vmlinux 0xc0695e8e pciserial_init_ports +EXPORT_SYMBOL_GPL vmlinux 0xc06bfa2b wm8350_device_init +EXPORT_SYMBOL_GPL vmlinux 0xc08647ff ring_buffer_bytes_cpu +EXPORT_SYMBOL_GPL vmlinux 0xc0900fcf acpi_os_get_iomem +EXPORT_SYMBOL_GPL vmlinux 0xc09304b0 rtc_read_alarm +EXPORT_SYMBOL_GPL vmlinux 0xc0b0e6ec btree_grim_visitor +EXPORT_SYMBOL_GPL vmlinux 0xc0bf6ead timecounter_cyc2time +EXPORT_SYMBOL_GPL vmlinux 0xc0d26387 kmsg_dump_unregister +EXPORT_SYMBOL_GPL vmlinux 0xc0f15c4f sock_diag_register_inet_compat +EXPORT_SYMBOL_GPL vmlinux 0xc11bd00f tracepoint_probe_unregister +EXPORT_SYMBOL_GPL vmlinux 0xc132a1a7 swiotlb_unmap_page +EXPORT_SYMBOL_GPL vmlinux 0xc145087e dio_end_io +EXPORT_SYMBOL_GPL vmlinux 0xc146db0b ipv4_redirect +EXPORT_SYMBOL_GPL vmlinux 0xc14c2824 xenbus_probe +EXPORT_SYMBOL_GPL vmlinux 0xc164642e xenbus_otherend_changed +EXPORT_SYMBOL_GPL vmlinux 0xc17515d7 usb_hcds_loaded +EXPORT_SYMBOL_GPL vmlinux 0xc1b553bb regmap_init_spi +EXPORT_SYMBOL_GPL vmlinux 0xc1c14842 acpi_pci_check_ejectable +EXPORT_SYMBOL_GPL vmlinux 0xc1c26b70 fuse_do_open +EXPORT_SYMBOL_GPL vmlinux 0xc1ce2fa9 tty_find_polling_driver +EXPORT_SYMBOL_GPL vmlinux 0xc1dc0d5d acpi_find_child +EXPORT_SYMBOL_GPL vmlinux 0xc1f13378 scsi_bus_type +EXPORT_SYMBOL_GPL vmlinux 0xc20b3acc usb_put_dev +EXPORT_SYMBOL_GPL vmlinux 0xc22a3091 vm_unmap_aliases +EXPORT_SYMBOL_GPL vmlinux 0xc240f949 blkcg_deactivate_policy +EXPORT_SYMBOL_GPL vmlinux 0xc255fd0a ip_route_output_flow +EXPORT_SYMBOL_GPL vmlinux 0xc256c25b input_class +EXPORT_SYMBOL_GPL vmlinux 0xc26351f8 bind_evtchn_to_irq +EXPORT_SYMBOL_GPL vmlinux 0xc27b57cb tty_ldisc_ref_wait +EXPORT_SYMBOL_GPL vmlinux 0xc280fb46 kdb_register +EXPORT_SYMBOL_GPL vmlinux 0xc2ad8635 inet6_destroy_sock +EXPORT_SYMBOL_GPL vmlinux 0xc33b4be4 fl6_sock_lookup +EXPORT_SYMBOL_GPL vmlinux 0xc33fd06a ata_bmdma_start +EXPORT_SYMBOL_GPL vmlinux 0xc341ae6d zs_map_object +EXPORT_SYMBOL_GPL vmlinux 0xc34efe27 snmp_fold_field +EXPORT_SYMBOL_GPL vmlinux 0xc35a7d8a ping_rcv +EXPORT_SYMBOL_GPL vmlinux 0xc37226a5 tpm_pcr_extend +EXPORT_SYMBOL_GPL vmlinux 0xc3724462 crypto_hash_walk_done +EXPORT_SYMBOL_GPL vmlinux 0xc374c389 debugfs_remove_recursive +EXPORT_SYMBOL_GPL vmlinux 0xc37763fc dummy_irq_chip +EXPORT_SYMBOL_GPL vmlinux 0xc38f0f73 usb_hcd_unmap_urb_setup_for_dma +EXPORT_SYMBOL_GPL vmlinux 0xc39679cd usb_hcd_poll_rh_status +EXPORT_SYMBOL_GPL vmlinux 0xc3bdeb4d vfs_cancel_lock +EXPORT_SYMBOL_GPL vmlinux 0xc403f3fb irq_create_mapping +EXPORT_SYMBOL_GPL vmlinux 0xc408b5a0 rio_dev_get +EXPORT_SYMBOL_GPL vmlinux 0xc4177d6f irq_gc_ack_set_bit +EXPORT_SYMBOL_GPL vmlinux 0xc428068d sata_deb_timing_long +EXPORT_SYMBOL_GPL vmlinux 0xc447dd93 enable_kprobe +EXPORT_SYMBOL_GPL vmlinux 0xc45253de blkcipher_walk_phys +EXPORT_SYMBOL_GPL vmlinux 0xc45731fd devm_usb_get_phy_by_phandle +EXPORT_SYMBOL_GPL vmlinux 0xc472648f inet6_csk_reqsk_queue_hash_add +EXPORT_SYMBOL_GPL vmlinux 0xc472d5ab rtnl_link_register +EXPORT_SYMBOL_GPL vmlinux 0xc48b7ccf ata_mode_string +EXPORT_SYMBOL_GPL vmlinux 0xc4cb3f06 uprobe_unregister +EXPORT_SYMBOL_GPL vmlinux 0xc506c32d inode_sb_list_add +EXPORT_SYMBOL_GPL vmlinux 0xc51059e5 xenbus_register_backend +EXPORT_SYMBOL_GPL vmlinux 0xc512626a __supported_pte_mask +EXPORT_SYMBOL_GPL vmlinux 0xc527113c perf_event_enable +EXPORT_SYMBOL_GPL vmlinux 0xc5397da6 xenbus_mkdir +EXPORT_SYMBOL_GPL vmlinux 0xc551fd33 efivar_entry_iter +EXPORT_SYMBOL_GPL vmlinux 0xc558a597 acpi_dma_request_slave_chan_by_name +EXPORT_SYMBOL_GPL vmlinux 0xc573eec1 stmpe_block_read +EXPORT_SYMBOL_GPL vmlinux 0xc575c737 debug_locks_off +EXPORT_SYMBOL_GPL vmlinux 0xc587cd84 regmap_exit +EXPORT_SYMBOL_GPL vmlinux 0xc58b1022 sync_page_io +EXPORT_SYMBOL_GPL vmlinux 0xc5ac5637 m2p_remove_override +EXPORT_SYMBOL_GPL vmlinux 0xc5d8e73b devm_regmap_init_i2c +EXPORT_SYMBOL_GPL vmlinux 0xc5f0b00f devres_close_group +EXPORT_SYMBOL_GPL vmlinux 0xc6060bcc spi_master_resume +EXPORT_SYMBOL_GPL vmlinux 0xc60dbbca stmpe_set_altfunc +EXPORT_SYMBOL_GPL vmlinux 0xc60f75ec __ftrace_vprintk +EXPORT_SYMBOL_GPL vmlinux 0xc617f82c unregister_oom_notifier +EXPORT_SYMBOL_GPL vmlinux 0xc635dc96 wm5102_i2c_regmap +EXPORT_SYMBOL_GPL vmlinux 0xc65d3eed ring_buffer_entries_cpu +EXPORT_SYMBOL_GPL vmlinux 0xc66b77b1 iommu_group_set_iommudata +EXPORT_SYMBOL_GPL vmlinux 0xc68130ce xfrm_audit_state_delete +EXPORT_SYMBOL_GPL vmlinux 0xc68659b3 bio_alloc_mddev +EXPORT_SYMBOL_GPL vmlinux 0xc690866c irq_work_queue +EXPORT_SYMBOL_GPL vmlinux 0xc69b7ee5 zs_destroy_pool +EXPORT_SYMBOL_GPL vmlinux 0xc6c5d559 crypto_alloc_shash +EXPORT_SYMBOL_GPL vmlinux 0xc6d7ad42 wakeup_source_drop +EXPORT_SYMBOL_GPL vmlinux 0xc6e25e99 tracepoint_iter_start +EXPORT_SYMBOL_GPL vmlinux 0xc6f4d11c fuse_do_ioctl +EXPORT_SYMBOL_GPL vmlinux 0xc7002ac4 evtchn_make_refcounted +EXPORT_SYMBOL_GPL vmlinux 0xc71d6bdc ata_bmdma_port_start32 +EXPORT_SYMBOL_GPL vmlinux 0xc71d7b31 ata_host_detach +EXPORT_SYMBOL_GPL vmlinux 0xc71e3e8a gpiochip_is_requested +EXPORT_SYMBOL_GPL vmlinux 0xc72e1233 __trace_bprintk +EXPORT_SYMBOL_GPL vmlinux 0xc73851ee dma_buf_end_cpu_access +EXPORT_SYMBOL_GPL vmlinux 0xc748c883 da9052_adc_read_temp +EXPORT_SYMBOL_GPL vmlinux 0xc77620eb get_governor_parent_kobj +EXPORT_SYMBOL_GPL vmlinux 0xc79e770e crypto_dequeue_request +EXPORT_SYMBOL_GPL vmlinux 0xc7a1840e llist_add_batch +EXPORT_SYMBOL_GPL vmlinux 0xc7b15e3d devres_alloc +EXPORT_SYMBOL_GPL vmlinux 0xc7bfc8bb regulator_disable_regmap +EXPORT_SYMBOL_GPL vmlinux 0xc7c6391c mpi_set_buffer +EXPORT_SYMBOL_GPL vmlinux 0xc7e1abbb pci_enable_pasid +EXPORT_SYMBOL_GPL vmlinux 0xc7e39bca ring_buffer_dropped_events_cpu +EXPORT_SYMBOL_GPL vmlinux 0xc830291b bus_for_each_drv +EXPORT_SYMBOL_GPL vmlinux 0xc83d3ff8 i2c_new_device +EXPORT_SYMBOL_GPL vmlinux 0xc85ad4a5 __pm_stay_awake +EXPORT_SYMBOL_GPL vmlinux 0xc87c1f84 ktime_get +EXPORT_SYMBOL_GPL vmlinux 0xc87e487a sched_clock_idle_sleep_event +EXPORT_SYMBOL_GPL vmlinux 0xc899c0f2 wakeup_source_remove +EXPORT_SYMBOL_GPL vmlinux 0xc8a4c89d pm_generic_poweroff_noirq +EXPORT_SYMBOL_GPL vmlinux 0xc8add232 ring_buffer_record_disable +EXPORT_SYMBOL_GPL vmlinux 0xc8c885c6 pci_user_write_config_dword +EXPORT_SYMBOL_GPL vmlinux 0xc8ec0fb6 rdev_clear_badblocks +EXPORT_SYMBOL_GPL vmlinux 0xc8ecb992 pci_msi_off +EXPORT_SYMBOL_GPL vmlinux 0xc90adba5 ata_sff_qc_fill_rtf +EXPORT_SYMBOL_GPL vmlinux 0xc91277a1 kgdb_schedule_breakpoint +EXPORT_SYMBOL_GPL vmlinux 0xc94efd94 register_pernet_device +EXPORT_SYMBOL_GPL vmlinux 0xc9561772 fb_destroy_modelist +EXPORT_SYMBOL_GPL vmlinux 0xc9641b48 visitor32 +EXPORT_SYMBOL_GPL vmlinux 0xc96908ef usb_add_hcd +EXPORT_SYMBOL_GPL vmlinux 0xc97d1140 cpufreq_cooling_get_level +EXPORT_SYMBOL_GPL vmlinux 0xc984f921 usb_get_phy_dev +EXPORT_SYMBOL_GPL vmlinux 0xc9a795f1 tcp_reno_ssthresh +EXPORT_SYMBOL_GPL vmlinux 0xc9ae3d25 driver_remove_file +EXPORT_SYMBOL_GPL vmlinux 0xc9c1a83b flush_kthread_worker +EXPORT_SYMBOL_GPL vmlinux 0xc9c3f176 hpet_register_irq_handler +EXPORT_SYMBOL_GPL vmlinux 0xc9d7958d blk_update_request +EXPORT_SYMBOL_GPL vmlinux 0xc9ec4e21 free_percpu +EXPORT_SYMBOL_GPL vmlinux 0xca345381 crypto_shash_update +EXPORT_SYMBOL_GPL vmlinux 0xca415458 inet_csk_addr2sockaddr +EXPORT_SYMBOL_GPL vmlinux 0xca6004ef bus_remove_file +EXPORT_SYMBOL_GPL vmlinux 0xca627962 dma_buf_vmap +EXPORT_SYMBOL_GPL vmlinux 0xca72cf42 nf_queue_entry_get_refs +EXPORT_SYMBOL_GPL vmlinux 0xca7d8764 kthread_freezable_should_stop +EXPORT_SYMBOL_GPL vmlinux 0xca81ea9a xenbus_transaction_end +EXPORT_SYMBOL_GPL vmlinux 0xca85d8cf tracepoint_probe_update_all +EXPORT_SYMBOL_GPL vmlinux 0xca90ac02 crypto_unregister_pcomp +EXPORT_SYMBOL_GPL vmlinux 0xca90c163 rio_request_inb_pwrite +EXPORT_SYMBOL_GPL vmlinux 0xcabe04de cpuidle_resume_and_unlock +EXPORT_SYMBOL_GPL vmlinux 0xcafcfeac ata_pci_bmdma_prepare_host +EXPORT_SYMBOL_GPL vmlinux 0xcb0657c3 usb_set_interface +EXPORT_SYMBOL_GPL vmlinux 0xcb15eee9 sdhci_pci_get_data +EXPORT_SYMBOL_GPL vmlinux 0xcb34df44 cpufreq_register_governor +EXPORT_SYMBOL_GPL vmlinux 0xcb3e902a simple_attr_open +EXPORT_SYMBOL_GPL vmlinux 0xcb469d2b ddebug_add_module +EXPORT_SYMBOL_GPL vmlinux 0xcb49ae91 ata_sff_dev_select +EXPORT_SYMBOL_GPL vmlinux 0xcb4bbec7 serial8250_tx_dma +EXPORT_SYMBOL_GPL vmlinux 0xcb7b3ee7 attribute_container_classdev_to_container +EXPORT_SYMBOL_GPL vmlinux 0xcb82da0d cpufreq_driver_target +EXPORT_SYMBOL_GPL vmlinux 0xcb9617c9 regmap_get_val_bytes +EXPORT_SYMBOL_GPL vmlinux 0xcbe9b49b ata_std_sched_eh +EXPORT_SYMBOL_GPL vmlinux 0xcbee20b2 get_cpu_iowait_time_us +EXPORT_SYMBOL_GPL vmlinux 0xcc1f1c3d inet_twdr_hangman +EXPORT_SYMBOL_GPL vmlinux 0xcc2e8c93 kernel_kobj +EXPORT_SYMBOL_GPL vmlinux 0xcc36fbb1 __mmu_notifier_invalidate_range_start +EXPORT_SYMBOL_GPL vmlinux 0xcc46dc8d wm8997_patch +EXPORT_SYMBOL_GPL vmlinux 0xcc4f1c1c unix_outq_len +EXPORT_SYMBOL_GPL vmlinux 0xcc554eb1 tty_port_register_device_attr +EXPORT_SYMBOL_GPL vmlinux 0xcc5d0c74 debugfs_rename +EXPORT_SYMBOL_GPL vmlinux 0xcc61602f kick_process +EXPORT_SYMBOL_GPL vmlinux 0xcc6ab305 is_dock_device +EXPORT_SYMBOL_GPL vmlinux 0xcc85fcb6 async_schedule +EXPORT_SYMBOL_GPL vmlinux 0xcccfb2fa sata_deb_timing_hotplug +EXPORT_SYMBOL_GPL vmlinux 0xcce61bf0 spi_register_master +EXPORT_SYMBOL_GPL vmlinux 0xccea4e34 perf_get_x86_pmu_capability +EXPORT_SYMBOL_GPL vmlinux 0xccecc78d blk_queue_rq_timed_out +EXPORT_SYMBOL_GPL vmlinux 0xccf2c3dc ata_cable_40wire +EXPORT_SYMBOL_GPL vmlinux 0xccf36ea8 crypto_spawn_tfm2 +EXPORT_SYMBOL_GPL vmlinux 0xcd2294a9 rt_mutex_timed_lock +EXPORT_SYMBOL_GPL vmlinux 0xcd3f13b8 ata_sff_dma_pause +EXPORT_SYMBOL_GPL vmlinux 0xcd50d655 sdio_writesb +EXPORT_SYMBOL_GPL vmlinux 0xcd6265a5 tcp_slow_start +EXPORT_SYMBOL_GPL vmlinux 0xcd91b127 system_highpri_wq +EXPORT_SYMBOL_GPL vmlinux 0xcd9bfc6a ata_sff_qc_issue +EXPORT_SYMBOL_GPL vmlinux 0xcdca3691 nr_irqs +EXPORT_SYMBOL_GPL vmlinux 0xcdd8af33 gpiochip_remove +EXPORT_SYMBOL_GPL vmlinux 0xce0b9b59 max77693_read_reg +EXPORT_SYMBOL_GPL vmlinux 0xce1813e3 platform_get_resource_byname +EXPORT_SYMBOL_GPL vmlinux 0xce24db94 dma_buf_get +EXPORT_SYMBOL_GPL vmlinux 0xce46e140 ktime_get_ts +EXPORT_SYMBOL_GPL vmlinux 0xce5a85e0 ata_scsi_queuecmd +EXPORT_SYMBOL_GPL vmlinux 0xce6a9d9a trace_current_buffer_discard_commit +EXPORT_SYMBOL_GPL vmlinux 0xce7f4c84 thermal_zone_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0xce8cdaa9 irq_domain_associate_many +EXPORT_SYMBOL_GPL vmlinux 0xce8daff6 ata_eh_freeze_port +EXPORT_SYMBOL_GPL vmlinux 0xce952540 class_interface_unregister +EXPORT_SYMBOL_GPL vmlinux 0xce9d855b devm_reset_control_get +EXPORT_SYMBOL_GPL vmlinux 0xceb1f126 mpi_read_raw_data +EXPORT_SYMBOL_GPL vmlinux 0xcee1641c kgdb_unregister_nmi_console +EXPORT_SYMBOL_GPL vmlinux 0xcef1dd0e perf_check_microcode +EXPORT_SYMBOL_GPL vmlinux 0xcf02d385 acpi_unbind_one +EXPORT_SYMBOL_GPL vmlinux 0xcf0a197b spi_master_suspend +EXPORT_SYMBOL_GPL vmlinux 0xcf0b2915 usb_hcd_end_port_resume +EXPORT_SYMBOL_GPL vmlinux 0xcf373f1c debugfs_create_x8 +EXPORT_SYMBOL_GPL vmlinux 0xcf4cd300 crypto_register_shashes +EXPORT_SYMBOL_GPL vmlinux 0xcf54ea93 async_unregister_domain +EXPORT_SYMBOL_GPL vmlinux 0xcf6b88a8 usb_wakeup_notification +EXPORT_SYMBOL_GPL vmlinux 0xcf714be5 vma_kernel_pagesize +EXPORT_SYMBOL_GPL vmlinux 0xcf7c1b75 clk_notifier_register +EXPORT_SYMBOL_GPL vmlinux 0xcf89921d crypto_unregister_shash +EXPORT_SYMBOL_GPL vmlinux 0xcfa39eca __tracepoint_rpm_suspend +EXPORT_SYMBOL_GPL vmlinux 0xcfb2614c usb_disable_ltm +EXPORT_SYMBOL_GPL vmlinux 0xcfc62f27 xen_start_info +EXPORT_SYMBOL_GPL vmlinux 0xcfc68341 synchronize_rcu_bh +EXPORT_SYMBOL_GPL vmlinux 0xcfc7af18 pm_generic_thaw +EXPORT_SYMBOL_GPL vmlinux 0xcfde5862 __pm_relax +EXPORT_SYMBOL_GPL vmlinux 0xcfe8599f sched_setscheduler +EXPORT_SYMBOL_GPL vmlinux 0xcff65447 irq_find_host +EXPORT_SYMBOL_GPL vmlinux 0xcffa2aff spi_populate_width_msg +EXPORT_SYMBOL_GPL vmlinux 0xd0169345 tty_port_install +EXPORT_SYMBOL_GPL vmlinux 0xd020f0c9 platform_device_alloc +EXPORT_SYMBOL_GPL vmlinux 0xd03c7700 secure_ipv4_port_ephemeral +EXPORT_SYMBOL_GPL vmlinux 0xd0458ccb xenbus_strstate +EXPORT_SYMBOL_GPL vmlinux 0xd06050b4 tty_init_termios +EXPORT_SYMBOL_GPL vmlinux 0xd06524ba raw_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0xd067d3c5 system_freezable_power_efficient_wq +EXPORT_SYMBOL_GPL vmlinux 0xd092ee82 iommu_map +EXPORT_SYMBOL_GPL vmlinux 0xd0bd403a devm_add_action +EXPORT_SYMBOL_GPL vmlinux 0xd0c05159 emergency_restart +EXPORT_SYMBOL_GPL vmlinux 0xd0c7574b usb_acpi_power_manageable +EXPORT_SYMBOL_GPL vmlinux 0xd0d9c2b4 generic_fh_to_dentry +EXPORT_SYMBOL_GPL vmlinux 0xd0ff9600 unregister_ftrace_function +EXPORT_SYMBOL_GPL vmlinux 0xd1109007 user_describe +EXPORT_SYMBOL_GPL vmlinux 0xd13da64d dma_buf_export_named +EXPORT_SYMBOL_GPL vmlinux 0xd14bc4d9 sock_diag_save_cookie +EXPORT_SYMBOL_GPL vmlinux 0xd1507e59 erst_clear +EXPORT_SYMBOL_GPL vmlinux 0xd161e156 dev_pm_qos_flags +EXPORT_SYMBOL_GPL vmlinux 0xd16712f3 crypto_check_attr_type +EXPORT_SYMBOL_GPL vmlinux 0xd16a66e7 free_vm_area +EXPORT_SYMBOL_GPL vmlinux 0xd175b5bf ping_bind +EXPORT_SYMBOL_GPL vmlinux 0xd19930db iommu_domain_set_attr +EXPORT_SYMBOL_GPL vmlinux 0xd1a4dc43 bus_for_each_dev +EXPORT_SYMBOL_GPL vmlinux 0xd1b2db37 tracepoint_probe_register_noupdate +EXPORT_SYMBOL_GPL vmlinux 0xd1cc57b0 generic_access_phys +EXPORT_SYMBOL_GPL vmlinux 0xd1e7fc33 posix_clock_unregister +EXPORT_SYMBOL_GPL vmlinux 0xd20292b6 blkcg_print_blkgs +EXPORT_SYMBOL_GPL vmlinux 0xd20bf6ba dcookie_unregister +EXPORT_SYMBOL_GPL vmlinux 0xd2143fb1 tpm_dev_vendor_release +EXPORT_SYMBOL_GPL vmlinux 0xd217e9e6 trace_set_clr_event +EXPORT_SYMBOL_GPL vmlinux 0xd22f45a8 smpboot_register_percpu_thread +EXPORT_SYMBOL_GPL vmlinux 0xd2550bed fib_rules_unregister +EXPORT_SYMBOL_GPL vmlinux 0xd256babd rtc_set_mmss +EXPORT_SYMBOL_GPL vmlinux 0xd273b1b1 __round_jiffies_up_relative +EXPORT_SYMBOL_GPL vmlinux 0xd2afe2b2 __atomic_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xd2b03fbf ip6_sk_dst_lookup_flow +EXPORT_SYMBOL_GPL vmlinux 0xd2b3f908 scsi_mode_select +EXPORT_SYMBOL_GPL vmlinux 0xd2c58ab2 apei_exec_noop +EXPORT_SYMBOL_GPL vmlinux 0xd2ddf839 virtqueue_kick_prepare +EXPORT_SYMBOL_GPL vmlinux 0xd2ea29c9 anon_transport_class_register +EXPORT_SYMBOL_GPL vmlinux 0xd30efeea ipv6_opt_accepted +EXPORT_SYMBOL_GPL vmlinux 0xd3218ce0 wm831x_bulk_read +EXPORT_SYMBOL_GPL vmlinux 0xd3270ee6 pm_generic_thaw_early +EXPORT_SYMBOL_GPL vmlinux 0xd32fe193 ata_scsi_change_queue_depth +EXPORT_SYMBOL_GPL vmlinux 0xd37e13b4 regulator_set_optimum_mode +EXPORT_SYMBOL_GPL vmlinux 0xd3a6815f fsstack_copy_attr_all +EXPORT_SYMBOL_GPL vmlinux 0xd3bf8252 crypto_nivaead_type +EXPORT_SYMBOL_GPL vmlinux 0xd3c37482 ip6_flush_pending_frames +EXPORT_SYMBOL_GPL vmlinux 0xd3d50939 ata_port_abort +EXPORT_SYMBOL_GPL vmlinux 0xd3ecf9b4 exportfs_encode_inode_fh +EXPORT_SYMBOL_GPL vmlinux 0xd4034828 system_freezable_wq +EXPORT_SYMBOL_GPL vmlinux 0xd41a8e81 pm_generic_thaw_noirq +EXPORT_SYMBOL_GPL vmlinux 0xd426dbc4 erst_get_record_count +EXPORT_SYMBOL_GPL vmlinux 0xd42f4bda adp5520_set_bits +EXPORT_SYMBOL_GPL vmlinux 0xd42f6846 pci_get_hp_params +EXPORT_SYMBOL_GPL vmlinux 0xd44a5eac kgdb_register_nmi_console +EXPORT_SYMBOL_GPL vmlinux 0xd45b6676 ata_std_error_handler +EXPORT_SYMBOL_GPL vmlinux 0xd4736d30 task_cgroup_path +EXPORT_SYMBOL_GPL vmlinux 0xd47b857d sdio_claim_host +EXPORT_SYMBOL_GPL vmlinux 0xd4c14632 system_unbound_wq +EXPORT_SYMBOL_GPL vmlinux 0xd4c3f9a5 sdio_readsb +EXPORT_SYMBOL_GPL vmlinux 0xd4d153f4 dev_attr_em_message_type +EXPORT_SYMBOL_GPL vmlinux 0xd4d7370c hrtimer_start_range_ns +EXPORT_SYMBOL_GPL vmlinux 0xd4ee91b4 rio_unmap_inb_region +EXPORT_SYMBOL_GPL vmlinux 0xd517c3fc iptunnel_pull_header +EXPORT_SYMBOL_GPL vmlinux 0xd53212e1 ata_sff_busy_sleep +EXPORT_SYMBOL_GPL vmlinux 0xd545ab91 alarm_forward_now +EXPORT_SYMBOL_GPL vmlinux 0xd54fb36d netdev_rx_handler_unregister +EXPORT_SYMBOL_GPL vmlinux 0xd55ad93b iommu_group_get_iommudata +EXPORT_SYMBOL_GPL vmlinux 0xd55cc5fa srcu_notifier_chain_unregister +EXPORT_SYMBOL_GPL vmlinux 0xd56f10ae platform_device_put +EXPORT_SYMBOL_GPL vmlinux 0xd5866d1e inet_csk_route_child_sock +EXPORT_SYMBOL_GPL vmlinux 0xd5aa273d register_acpi_bus_type +EXPORT_SYMBOL_GPL vmlinux 0xd5bd7dac ring_buffer_record_enable_cpu +EXPORT_SYMBOL_GPL vmlinux 0xd5ea5578 transport_destroy_device +EXPORT_SYMBOL_GPL vmlinux 0xd6000fa1 device_attach +EXPORT_SYMBOL_GPL vmlinux 0xd6011bf5 srcu_batches_completed +EXPORT_SYMBOL_GPL vmlinux 0xd621554e unregister_net_sysctl_table +EXPORT_SYMBOL_GPL vmlinux 0xd62200a8 serial8250_rx_chars +EXPORT_SYMBOL_GPL vmlinux 0xd636855c ata_pci_sff_init_one +EXPORT_SYMBOL_GPL vmlinux 0xd64ed449 device_release_driver +EXPORT_SYMBOL_GPL vmlinux 0xd67364f7 eventfd_ctx_fdget +EXPORT_SYMBOL_GPL vmlinux 0xd69967ae apply_to_page_range +EXPORT_SYMBOL_GPL vmlinux 0xd69d3bc8 virtqueue_enable_cb_prepare +EXPORT_SYMBOL_GPL vmlinux 0xd6a61c1a rtc_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0xd6ed3a8e cper_next_record_id +EXPORT_SYMBOL_GPL vmlinux 0xd6feefa5 agp_num_entries +EXPORT_SYMBOL_GPL vmlinux 0xd7016c61 hvc_poll +EXPORT_SYMBOL_GPL vmlinux 0xd705b4c7 schedule_hrtimeout +EXPORT_SYMBOL_GPL vmlinux 0xd71740b6 device_store_ulong +EXPORT_SYMBOL_GPL vmlinux 0xd72feba2 xenbus_read_driver_state +EXPORT_SYMBOL_GPL vmlinux 0xd738b69b debugfs_create_u64 +EXPORT_SYMBOL_GPL vmlinux 0xd7399d2a efivar_entry_iter_end +EXPORT_SYMBOL_GPL vmlinux 0xd768e985 regulator_has_full_constraints +EXPORT_SYMBOL_GPL vmlinux 0xd77c0bc8 klist_remove +EXPORT_SYMBOL_GPL vmlinux 0xd78dcf4e page_cache_sync_readahead +EXPORT_SYMBOL_GPL vmlinux 0xd7b190b3 cpufreq_cpu_get +EXPORT_SYMBOL_GPL vmlinux 0xd7ca5997 usb_enable_ltm +EXPORT_SYMBOL_GPL vmlinux 0xd7d366fe evm_verifyxattr +EXPORT_SYMBOL_GPL vmlinux 0xd7d79132 put_online_cpus +EXPORT_SYMBOL_GPL vmlinux 0xd7d96409 i2c_new_probed_device +EXPORT_SYMBOL_GPL vmlinux 0xd7e58ea3 pci_scan_child_bus +EXPORT_SYMBOL_GPL vmlinux 0xd81de62c ring_buffer_record_enable +EXPORT_SYMBOL_GPL vmlinux 0xd820c283 eventfd_ctx_remove_wait_queue +EXPORT_SYMBOL_GPL vmlinux 0xd8268d5d register_acpi_bus_notifier +EXPORT_SYMBOL_GPL vmlinux 0xd8525ea7 fl6_update_dst +EXPORT_SYMBOL_GPL vmlinux 0xd85ac634 regulator_put +EXPORT_SYMBOL_GPL vmlinux 0xd87601cc ring_buffer_unlock_commit +EXPORT_SYMBOL_GPL vmlinux 0xd881f94f vfs_kern_mount +EXPORT_SYMBOL_GPL vmlinux 0xd88d5dc4 sysfs_rename_link +EXPORT_SYMBOL_GPL vmlinux 0xd89433d4 blk_rq_err_bytes +EXPORT_SYMBOL_GPL vmlinux 0xd8bf5a52 blk_insert_cloned_request +EXPORT_SYMBOL_GPL vmlinux 0xd8cc1abf pwm_request_from_chip +EXPORT_SYMBOL_GPL vmlinux 0xd8db8e2d sdio_memcpy_toio +EXPORT_SYMBOL_GPL vmlinux 0xd919806a amd_cache_northbridges +EXPORT_SYMBOL_GPL vmlinux 0xd91e357e usb_hcd_check_unlink_urb +EXPORT_SYMBOL_GPL vmlinux 0xd9210842 spi_setup +EXPORT_SYMBOL_GPL vmlinux 0xd93457e9 serial8250_clear_and_reinit_fifos +EXPORT_SYMBOL_GPL vmlinux 0xd93b1ce4 tpm_show_pcrs +EXPORT_SYMBOL_GPL vmlinux 0xd942d353 ring_buffer_record_off +EXPORT_SYMBOL_GPL vmlinux 0xd94ba686 tcp_fetch_timewait_stamp +EXPORT_SYMBOL_GPL vmlinux 0xd96a2de6 __srcu_read_lock +EXPORT_SYMBOL_GPL vmlinux 0xd9741764 __sock_recv_ts_and_drops +EXPORT_SYMBOL_GPL vmlinux 0xd97fdc6d crypto_lookup_template +EXPORT_SYMBOL_GPL vmlinux 0xd9aecce4 xen_swiotlb_unmap_page +EXPORT_SYMBOL_GPL vmlinux 0xd9d2c291 wm8350_read_auxadc +EXPORT_SYMBOL_GPL vmlinux 0xd9d7f623 pkey_id_type +EXPORT_SYMBOL_GPL vmlinux 0xd9ecb670 ring_buffer_overruns +EXPORT_SYMBOL_GPL vmlinux 0xd9fe5fc1 ahash_register_instance +EXPORT_SYMBOL_GPL vmlinux 0xda04da4f rio_release_outb_dbell +EXPORT_SYMBOL_GPL vmlinux 0xda383dd1 user_instantiate +EXPORT_SYMBOL_GPL vmlinux 0xda3a7ca9 regulator_is_enabled +EXPORT_SYMBOL_GPL vmlinux 0xda3bf263 cpci_hp_unregister_bus +EXPORT_SYMBOL_GPL vmlinux 0xda40021b ata_base_port_ops +EXPORT_SYMBOL_GPL vmlinux 0xda44cb37 setup_charger_manager +EXPORT_SYMBOL_GPL vmlinux 0xda7d2df0 devres_for_each_res +EXPORT_SYMBOL_GPL vmlinux 0xda8eb20c crypto_larval_alloc +EXPORT_SYMBOL_GPL vmlinux 0xdab50ae7 fpu_finit +EXPORT_SYMBOL_GPL vmlinux 0xdac124fd cpufreq_frequency_table_target +EXPORT_SYMBOL_GPL vmlinux 0xdae9aad3 crypto_aead_setauthsize +EXPORT_SYMBOL_GPL vmlinux 0xdaf4dfb3 fb_mode_option +EXPORT_SYMBOL_GPL vmlinux 0xdb04cacc tracepoint_probe_unregister_noupdate +EXPORT_SYMBOL_GPL vmlinux 0xdb60ca83 input_ff_upload +EXPORT_SYMBOL_GPL vmlinux 0xdb668945 napi_hash_del +EXPORT_SYMBOL_GPL vmlinux 0xdb8a1b3f usermodehelper_read_trylock +EXPORT_SYMBOL_GPL vmlinux 0xdb9a94ab usb_autopm_get_interface_no_resume +EXPORT_SYMBOL_GPL vmlinux 0xdb9ecb79 ata_port_freeze +EXPORT_SYMBOL_GPL vmlinux 0xdbb9232a usb_root_hub_lost_power +EXPORT_SYMBOL_GPL vmlinux 0xdbf7cb70 mpi_get_nbits +EXPORT_SYMBOL_GPL vmlinux 0xdbfee28f add_to_page_cache_lru +EXPORT_SYMBOL_GPL vmlinux 0xdc12a01c virtqueue_disable_cb +EXPORT_SYMBOL_GPL vmlinux 0xdc14a211 xen_hvm_evtchn_do_upcall +EXPORT_SYMBOL_GPL vmlinux 0xdc1a770f hwmon_device_register +EXPORT_SYMBOL_GPL vmlinux 0xdc292222 sysfs_update_group +EXPORT_SYMBOL_GPL vmlinux 0xdc53aec7 __module_address +EXPORT_SYMBOL_GPL vmlinux 0xdc57c933 posix_timer_event +EXPORT_SYMBOL_GPL vmlinux 0xdc6699cb acpi_dev_free_resource_list +EXPORT_SYMBOL_GPL vmlinux 0xdc7d5b9f tc3589x_reg_write +EXPORT_SYMBOL_GPL vmlinux 0xdc825d6c usb_amd_quirk_pll_disable +EXPORT_SYMBOL_GPL vmlinux 0xdc97af2e syscore_suspend +EXPORT_SYMBOL_GPL vmlinux 0xdc9fa232 raw_notifier_chain_register +EXPORT_SYMBOL_GPL vmlinux 0xdca4bf67 ata_port_wait_eh +EXPORT_SYMBOL_GPL vmlinux 0xdcacc139 virtqueue_poll +EXPORT_SYMBOL_GPL vmlinux 0xdcb0be20 i2c_unregister_device +EXPORT_SYMBOL_GPL vmlinux 0xdcb3d02f usb_sg_init +EXPORT_SYMBOL_GPL vmlinux 0xdcdff06d xfrm_audit_state_notfound +EXPORT_SYMBOL_GPL vmlinux 0xdce28a4a wm8994_reg_read +EXPORT_SYMBOL_GPL vmlinux 0xdce542c5 alarm_forward +EXPORT_SYMBOL_GPL vmlinux 0xdce57037 apei_estatus_print +EXPORT_SYMBOL_GPL vmlinux 0xdd211ca5 devm_kzalloc +EXPORT_SYMBOL_GPL vmlinux 0xdd226737 alloc_acpi_hp_work +EXPORT_SYMBOL_GPL vmlinux 0xdd2efc0f ring_buffer_reset_cpu +EXPORT_SYMBOL_GPL vmlinux 0xdd2f13f7 __netlink_remove_tap +EXPORT_SYMBOL_GPL vmlinux 0xdd30b93e pci_store_saved_state +EXPORT_SYMBOL_GPL vmlinux 0xdd327acc tun_get_socket +EXPORT_SYMBOL_GPL vmlinux 0xdd344678 debugfs_remove +EXPORT_SYMBOL_GPL vmlinux 0xdd391eff profile_event_unregister +EXPORT_SYMBOL_GPL vmlinux 0xdd509536 blk_unprep_request +EXPORT_SYMBOL_GPL vmlinux 0xdd5bcfaa edac_subsys +EXPORT_SYMBOL_GPL vmlinux 0xdd647991 spi_sync +EXPORT_SYMBOL_GPL vmlinux 0xdd6618ba btree_remove +EXPORT_SYMBOL_GPL vmlinux 0xdd6e3291 pingv6_ops +EXPORT_SYMBOL_GPL vmlinux 0xdd794d33 phys_wc_to_mtrr_index +EXPORT_SYMBOL_GPL vmlinux 0xdda19c9b crypto_drop_spawn +EXPORT_SYMBOL_GPL vmlinux 0xddb640e5 preempt_notifier_register +EXPORT_SYMBOL_GPL vmlinux 0xddca498a ata_bmdma_dumb_qc_prep +EXPORT_SYMBOL_GPL vmlinux 0xddd58dc0 ring_buffer_reset +EXPORT_SYMBOL_GPL vmlinux 0xddd5c2a2 devm_of_pwm_get +EXPORT_SYMBOL_GPL vmlinux 0xdded8c83 rio_route_get_entry +EXPORT_SYMBOL_GPL vmlinux 0xde0ba172 debugfs_print_regs32 +EXPORT_SYMBOL_GPL vmlinux 0xde32bf31 ata_sff_port_intr +EXPORT_SYMBOL_GPL vmlinux 0xde4e19ba klist_next +EXPORT_SYMBOL_GPL vmlinux 0xde52c3be iommu_present +EXPORT_SYMBOL_GPL vmlinux 0xde677be7 disk_map_sector_rcu +EXPORT_SYMBOL_GPL vmlinux 0xde685f8e vfs_test_lock +EXPORT_SYMBOL_GPL vmlinux 0xde6dd08f crypto_ahash_type +EXPORT_SYMBOL_GPL vmlinux 0xde9d4e4a ip4_datagram_release_cb +EXPORT_SYMBOL_GPL vmlinux 0xdebd5145 lp8788_write_byte +EXPORT_SYMBOL_GPL vmlinux 0xdecd77b8 inet_csk_clone_lock +EXPORT_SYMBOL_GPL vmlinux 0xdee693ec rio_unregister_driver +EXPORT_SYMBOL_GPL vmlinux 0xdf0f75c6 eventfd_signal +EXPORT_SYMBOL_GPL vmlinux 0xdf115301 hwpoison_filter +EXPORT_SYMBOL_GPL vmlinux 0xdf1882af dbgp_reset_prep +EXPORT_SYMBOL_GPL vmlinux 0xdf1cb38f da903x_read +EXPORT_SYMBOL_GPL vmlinux 0xdf2a53b0 get_user_pages_fast +EXPORT_SYMBOL_GPL vmlinux 0xdf2de7b4 usb_poison_anchored_urbs +EXPORT_SYMBOL_GPL vmlinux 0xdf322e5e rio_mport_read_config_8 +EXPORT_SYMBOL_GPL vmlinux 0xdf44cf3f ata_sas_sync_probe +EXPORT_SYMBOL_GPL vmlinux 0xdf57bd22 ata_cable_80wire +EXPORT_SYMBOL_GPL vmlinux 0xdf926ab0 devres_get +EXPORT_SYMBOL_GPL vmlinux 0xdfb025a8 __online_page_set_limits +EXPORT_SYMBOL_GPL vmlinux 0xdfba5bdd ata_sff_tf_load +EXPORT_SYMBOL_GPL vmlinux 0xdfbd5a4e cpuidle_unregister +EXPORT_SYMBOL_GPL vmlinux 0xe007de41 kallsyms_lookup_name +EXPORT_SYMBOL_GPL vmlinux 0xe02eb6d0 ring_buffer_commit_overrun_cpu +EXPORT_SYMBOL_GPL vmlinux 0xe040fc90 usb_match_id +EXPORT_SYMBOL_GPL vmlinux 0xe080635f usb_hcd_pci_pm_ops +EXPORT_SYMBOL_GPL vmlinux 0xe084d3c2 xfrm_output +EXPORT_SYMBOL_GPL vmlinux 0xe089cfcc agp_memory_reserved +EXPORT_SYMBOL_GPL vmlinux 0xe08bfbe5 pwm_get_chip_data +EXPORT_SYMBOL_GPL vmlinux 0xe0c77bb5 mce_notify_irq +EXPORT_SYMBOL_GPL vmlinux 0xe0dfb0df arizona_set_irq_wake +EXPORT_SYMBOL_GPL vmlinux 0xe10cd6ad erst_get_record_id_begin +EXPORT_SYMBOL_GPL vmlinux 0xe117a9a0 tcp_peer_is_proven +EXPORT_SYMBOL_GPL vmlinux 0xe12e34f4 ata_host_alloc_pinfo +EXPORT_SYMBOL_GPL vmlinux 0xe14f3199 __efivar_entry_iter +EXPORT_SYMBOL_GPL vmlinux 0xe166e547 rtnl_af_unregister +EXPORT_SYMBOL_GPL vmlinux 0xe16b0d30 unregister_jprobe +EXPORT_SYMBOL_GPL vmlinux 0xe16f1cb7 skb_pull_rcsum +EXPORT_SYMBOL_GPL vmlinux 0xe185ac8a __sock_recv_timestamp +EXPORT_SYMBOL_GPL vmlinux 0xe19bdb07 pci_find_ht_capability +EXPORT_SYMBOL_GPL vmlinux 0xe1a5a0ee vring_del_virtqueue +EXPORT_SYMBOL_GPL vmlinux 0xe1bd6c99 rio_init_mports +EXPORT_SYMBOL_GPL vmlinux 0xe1cea876 crypto_lookup_aead +EXPORT_SYMBOL_GPL vmlinux 0xe1db5bf6 anon_inode_getfd +EXPORT_SYMBOL_GPL vmlinux 0xe2515122 efivars_kobject +EXPORT_SYMBOL_GPL vmlinux 0xe26a974d wm831x_reg_read +EXPORT_SYMBOL_GPL vmlinux 0xe26e46f0 acpi_dev_resource_ext_address_space +EXPORT_SYMBOL_GPL vmlinux 0xe295c0ff is_hpet_enabled +EXPORT_SYMBOL_GPL vmlinux 0xe2976286 pm_generic_poweroff_late +EXPORT_SYMBOL_GPL vmlinux 0xe2a835d9 ata_pci_device_do_suspend +EXPORT_SYMBOL_GPL vmlinux 0xe2cfb628 tty_ldisc_ref +EXPORT_SYMBOL_GPL vmlinux 0xe2d2979b blkcipher_walk_virt_block +EXPORT_SYMBOL_GPL vmlinux 0xe2d47cb0 mmput +EXPORT_SYMBOL_GPL vmlinux 0xe2dd67e5 regulator_set_current_limit +EXPORT_SYMBOL_GPL vmlinux 0xe2e0570e ata_sff_wait_after_reset +EXPORT_SYMBOL_GPL vmlinux 0xe2e52787 tpm_show_owned +EXPORT_SYMBOL_GPL vmlinux 0xe2e7840d regmap_init_mmio_clk +EXPORT_SYMBOL_GPL vmlinux 0xe3043ff9 request_any_context_irq +EXPORT_SYMBOL_GPL vmlinux 0xe30c88c6 free_css_id +EXPORT_SYMBOL_GPL vmlinux 0xe321bcef ata_sff_prereset +EXPORT_SYMBOL_GPL vmlinux 0xe36cf0f2 blkcg_root +EXPORT_SYMBOL_GPL vmlinux 0xe37604ef usb_ep0_reinit +EXPORT_SYMBOL_GPL vmlinux 0xe384a102 usb_speed_string +EXPORT_SYMBOL_GPL vmlinux 0xe391ad26 cpufreq_cooling_register +EXPORT_SYMBOL_GPL vmlinux 0xe3a6979e led_trigger_register +EXPORT_SYMBOL_GPL vmlinux 0xe3a93496 extcon_set_cable_state_ +EXPORT_SYMBOL_GPL vmlinux 0xe3bc7fd4 hpet_unregister_irq_handler +EXPORT_SYMBOL_GPL vmlinux 0xe3ca0c52 __blocking_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xe3cee9b8 inet_csk_bind_conflict +EXPORT_SYMBOL_GPL vmlinux 0xe3d6c0cf led_trigger_register_simple +EXPORT_SYMBOL_GPL vmlinux 0xe3e46ce8 pm_generic_restore +EXPORT_SYMBOL_GPL vmlinux 0xe3e48439 ata_sas_port_destroy +EXPORT_SYMBOL_GPL vmlinux 0xe3f102d9 kobject_init_and_add +EXPORT_SYMBOL_GPL vmlinux 0xe40b4268 srcu_barrier +EXPORT_SYMBOL_GPL vmlinux 0xe40e5dd0 sdio_release_host +EXPORT_SYMBOL_GPL vmlinux 0xe41534ce bind_evtchn_to_irqhandler +EXPORT_SYMBOL_GPL vmlinux 0xe4309905 syscore_resume +EXPORT_SYMBOL_GPL vmlinux 0xe43302de acpi_ec_add_query_handler +EXPORT_SYMBOL_GPL vmlinux 0xe48d73ea __fsnotify_parent +EXPORT_SYMBOL_GPL vmlinux 0xe49940a3 irq_domain_xlate_onecell +EXPORT_SYMBOL_GPL vmlinux 0xe4a49992 __class_register +EXPORT_SYMBOL_GPL vmlinux 0xe4ab471b scsi_autopm_get_device +EXPORT_SYMBOL_GPL vmlinux 0xe4cdda92 fuse_request_alloc +EXPORT_SYMBOL_GPL vmlinux 0xe4d7a93d xenbus_read_otherend_details +EXPORT_SYMBOL_GPL vmlinux 0xe4e68bc8 apei_map_generic_address +EXPORT_SYMBOL_GPL vmlinux 0xe4fcb709 udp6_lib_lookup +EXPORT_SYMBOL_GPL vmlinux 0xe51701a9 pci_enable_pri +EXPORT_SYMBOL_GPL vmlinux 0xe5256a40 rtc_irq_unregister +EXPORT_SYMBOL_GPL vmlinux 0xe54d87dc flush_kthread_work +EXPORT_SYMBOL_GPL vmlinux 0xe5593fc2 transport_setup_device +EXPORT_SYMBOL_GPL vmlinux 0xe560c011 inet6_csk_xmit +EXPORT_SYMBOL_GPL vmlinux 0xe5883bd9 class_compat_unregister +EXPORT_SYMBOL_GPL vmlinux 0xe58fb452 aer_irq +EXPORT_SYMBOL_GPL vmlinux 0xe5a55b33 swiotlb_tbl_unmap_single +EXPORT_SYMBOL_GPL vmlinux 0xe5aaf392 usb_find_alt_setting +EXPORT_SYMBOL_GPL vmlinux 0xe5c19650 inet_csk_listen_stop +EXPORT_SYMBOL_GPL vmlinux 0xe5d71dd9 extcon_register_interest +EXPORT_SYMBOL_GPL vmlinux 0xe5fe70e5 tpm_get_timeouts +EXPORT_SYMBOL_GPL vmlinux 0xe628a094 restore_online_page_callback +EXPORT_SYMBOL_GPL vmlinux 0xe62ab77f blkg_prfill_rwstat +EXPORT_SYMBOL_GPL vmlinux 0xe64ad8ea unregister_nmi_handler +EXPORT_SYMBOL_GPL vmlinux 0xe651f76e selinux_is_enabled +EXPORT_SYMBOL_GPL vmlinux 0xe6602e9f perf_trace_buf_prepare +EXPORT_SYMBOL_GPL vmlinux 0xe67da770 blkcg_policy_register +EXPORT_SYMBOL_GPL vmlinux 0xe67e129d acpi_i2c_register_devices +EXPORT_SYMBOL_GPL vmlinux 0xe69fb660 ahash_attr_alg +EXPORT_SYMBOL_GPL vmlinux 0xe6c68334 ddebug_remove_module +EXPORT_SYMBOL_GPL vmlinux 0xe6dd04af init_user_ns +EXPORT_SYMBOL_GPL vmlinux 0xe6e1c5fe uuid_be_gen +EXPORT_SYMBOL_GPL vmlinux 0xe6e6c4e1 acpi_match_device +EXPORT_SYMBOL_GPL vmlinux 0xe71be678 dma_buf_attach +EXPORT_SYMBOL_GPL vmlinux 0xe7232e0f user_return_notifier_unregister +EXPORT_SYMBOL_GPL vmlinux 0xe742817d da903x_set_bits +EXPORT_SYMBOL_GPL vmlinux 0xe7614aa8 scsi_schedule_eh +EXPORT_SYMBOL_GPL vmlinux 0xe769232e sprint_symbol_no_offset +EXPORT_SYMBOL_GPL vmlinux 0xe78322d9 __pm_wakeup_event +EXPORT_SYMBOL_GPL vmlinux 0xe7e9eaac digsig_verify +EXPORT_SYMBOL_GPL vmlinux 0xe7f3608a hrtimer_forward +EXPORT_SYMBOL_GPL vmlinux 0xe7fbb021 rtnl_link_unregister +EXPORT_SYMBOL_GPL vmlinux 0xe7ffe877 pcpu_base_addr +EXPORT_SYMBOL_GPL vmlinux 0xe818b32b ata_bmdma_interrupt +EXPORT_SYMBOL_GPL vmlinux 0xe827e580 rio_request_outb_mbox +EXPORT_SYMBOL_GPL vmlinux 0xe82b6e7a cgroup_path +EXPORT_SYMBOL_GPL vmlinux 0xe83775c7 tps6586x_irq_get_virq +EXPORT_SYMBOL_GPL vmlinux 0xe84f6e5c pciserial_remove_ports +EXPORT_SYMBOL_GPL vmlinux 0xe862c4b7 dpm_suspend_start +EXPORT_SYMBOL_GPL vmlinux 0xe86a6a77 clk_set_rate +EXPORT_SYMBOL_GPL vmlinux 0xe86ef8f2 dev_attr_link_power_management_policy +EXPORT_SYMBOL_GPL vmlinux 0xe88d3662 ata_qc_complete_multiple +EXPORT_SYMBOL_GPL vmlinux 0xe89bd243 ata_sff_queue_work +EXPORT_SYMBOL_GPL vmlinux 0xe8b2b6e6 acpi_subsys_prepare +EXPORT_SYMBOL_GPL vmlinux 0xe8daf5dc shmem_read_mapping_page_gfp +EXPORT_SYMBOL_GPL vmlinux 0xe8eeb7c5 wm831x_reg_unlock +EXPORT_SYMBOL_GPL vmlinux 0xe8f27d6e securityfs_create_dir +EXPORT_SYMBOL_GPL vmlinux 0xe9011563 fs_kobj +EXPORT_SYMBOL_GPL vmlinux 0xe90f6e25 pm_generic_freeze_noirq +EXPORT_SYMBOL_GPL vmlinux 0xe91365dc debugfs_create_symlink +EXPORT_SYMBOL_GPL vmlinux 0xe92adc53 tpm_bios_log_teardown +EXPORT_SYMBOL_GPL vmlinux 0xe93119f0 sock_diag_put_meminfo +EXPORT_SYMBOL_GPL vmlinux 0xe93e49c3 devres_free +EXPORT_SYMBOL_GPL vmlinux 0xe96f8770 wm831x_auxadc_read +EXPORT_SYMBOL_GPL vmlinux 0xe9753920 xenbus_dev_probe +EXPORT_SYMBOL_GPL vmlinux 0xe9d1b7cf irq_to_pcap +EXPORT_SYMBOL_GPL vmlinux 0xe9d554f1 bus_rescan_devices +EXPORT_SYMBOL_GPL vmlinux 0xe9e99671 virtqueue_add_outbuf +EXPORT_SYMBOL_GPL vmlinux 0xe9ee2daa ata_dev_pair +EXPORT_SYMBOL_GPL vmlinux 0xea124bd1 gcd +EXPORT_SYMBOL_GPL vmlinux 0xea2bdd8f show_class_attr_string +EXPORT_SYMBOL_GPL vmlinux 0xea418e0f atapi_cmd_type +EXPORT_SYMBOL_GPL vmlinux 0xea5fa1b0 extcon_get_extcon_dev +EXPORT_SYMBOL_GPL vmlinux 0xea628c20 bstr_printf +EXPORT_SYMBOL_GPL vmlinux 0xea9375f3 unregister_virtio_device +EXPORT_SYMBOL_GPL vmlinux 0xeadf816e klist_init +EXPORT_SYMBOL_GPL vmlinux 0xeafbe4df ip6_sk_redirect +EXPORT_SYMBOL_GPL vmlinux 0xeb07fa4a fl6_merge_options +EXPORT_SYMBOL_GPL vmlinux 0xeb1493a3 pm_generic_runtime_suspend +EXPORT_SYMBOL_GPL vmlinux 0xeb1c3628 nf_ipv6_ops +EXPORT_SYMBOL_GPL vmlinux 0xeb1f868b irq_get_irq_data +EXPORT_SYMBOL_GPL vmlinux 0xeb370805 __apei_exec_run +EXPORT_SYMBOL_GPL vmlinux 0xeb3bc111 usb_register_dev +EXPORT_SYMBOL_GPL vmlinux 0xeb6082bf sock_diag_register +EXPORT_SYMBOL_GPL vmlinux 0xeb6a5a88 tps6586x_update +EXPORT_SYMBOL_GPL vmlinux 0xeba745e1 irq_set_affinity_notifier +EXPORT_SYMBOL_GPL vmlinux 0xebb71e59 driver_find_device +EXPORT_SYMBOL_GPL vmlinux 0xebcbe030 __rio_local_read_config_8 +EXPORT_SYMBOL_GPL vmlinux 0xebd03aa0 pm_generic_restore_early +EXPORT_SYMBOL_GPL vmlinux 0xebd47db1 pci_slots_kset +EXPORT_SYMBOL_GPL vmlinux 0xebec57c4 ring_buffer_oldest_event_ts +EXPORT_SYMBOL_GPL vmlinux 0xec1b043e regulator_suspend_prepare +EXPORT_SYMBOL_GPL vmlinux 0xec1da3fe max8997_read_reg +EXPORT_SYMBOL_GPL vmlinux 0xec25f967 klist_del +EXPORT_SYMBOL_GPL vmlinux 0xec416452 device_show_bool +EXPORT_SYMBOL_GPL vmlinux 0xec56d5b5 regulator_set_voltage_sel_regmap +EXPORT_SYMBOL_GPL vmlinux 0xec631f34 remove_memory +EXPORT_SYMBOL_GPL vmlinux 0xec785f15 alarm_expires_remaining +EXPORT_SYMBOL_GPL vmlinux 0xec78a41c arizona_clk32k_disable +EXPORT_SYMBOL_GPL vmlinux 0xec7a64d6 user_match +EXPORT_SYMBOL_GPL vmlinux 0xeca52162 crypto_register_algs +EXPORT_SYMBOL_GPL vmlinux 0xecb16d93 clockevents_unbind +EXPORT_SYMBOL_GPL vmlinux 0xecba222c inet_hash +EXPORT_SYMBOL_GPL vmlinux 0xecc3c7d7 kobject_create_and_add +EXPORT_SYMBOL_GPL vmlinux 0xece2e2c9 rt_mutex_trylock +EXPORT_SYMBOL_GPL vmlinux 0xecedbac7 pm_generic_restore_noirq +EXPORT_SYMBOL_GPL vmlinux 0xed14c4f6 pci_bus_sem +EXPORT_SYMBOL_GPL vmlinux 0xed1807ea nfq_ct_nat_hook +EXPORT_SYMBOL_GPL vmlinux 0xed21db74 securityfs_remove +EXPORT_SYMBOL_GPL vmlinux 0xed238ddf ata_sff_pause +EXPORT_SYMBOL_GPL vmlinux 0xed293bec thermal_zone_device_update +EXPORT_SYMBOL_GPL vmlinux 0xed2fe3f7 hwmon_device_unregister +EXPORT_SYMBOL_GPL vmlinux 0xed3f5844 device_wakeup_disable +EXPORT_SYMBOL_GPL vmlinux 0xed527b45 irq_domain_remove +EXPORT_SYMBOL_GPL vmlinux 0xed808b55 __srcu_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xedbc6f67 gnttab_end_foreign_access +EXPORT_SYMBOL_GPL vmlinux 0xedd49930 zs_create_pool +EXPORT_SYMBOL_GPL vmlinux 0xedeccd0e cgroup_add_cftypes +EXPORT_SYMBOL_GPL vmlinux 0xededbe13 rt_mutex_unlock +EXPORT_SYMBOL_GPL vmlinux 0xee13e697 set_personality_ia32 +EXPORT_SYMBOL_GPL vmlinux 0xee4167c3 iommu_detach_device +EXPORT_SYMBOL_GPL vmlinux 0xee6b71c4 syscon_regmap_lookup_by_compatible +EXPORT_SYMBOL_GPL vmlinux 0xef1f6e23 apei_resources_request +EXPORT_SYMBOL_GPL vmlinux 0xef3d3245 unix_inq_len +EXPORT_SYMBOL_GPL vmlinux 0xef4997b0 blk_trace_setup +EXPORT_SYMBOL_GPL vmlinux 0xef4cd380 inet_csk_compat_setsockopt +EXPORT_SYMBOL_GPL vmlinux 0xef6c3f70 round_jiffies_up_relative +EXPORT_SYMBOL_GPL vmlinux 0xef6d007a sigset_from_compat +EXPORT_SYMBOL_GPL vmlinux 0xef782b88 gnttab_grant_foreign_access_subpage +EXPORT_SYMBOL_GPL vmlinux 0xef8c7850 pcap_adc_async +EXPORT_SYMBOL_GPL vmlinux 0xefa54a9d atomic_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xefad49ac uprobe_register +EXPORT_SYMBOL_GPL vmlinux 0xefafc469 ata_sas_port_init +EXPORT_SYMBOL_GPL vmlinux 0xefb8c016 ata_cable_sata +EXPORT_SYMBOL_GPL vmlinux 0xefc91531 irq_create_of_mapping +EXPORT_SYMBOL_GPL vmlinux 0xefe4f58c wm8400_reg_read +EXPORT_SYMBOL_GPL vmlinux 0xeffa6b8f __tracepoint_cpu_idle +EXPORT_SYMBOL_GPL vmlinux 0xf0073ef4 blkg_conf_prep +EXPORT_SYMBOL_GPL vmlinux 0xf015c496 extcon_find_cable_index +EXPORT_SYMBOL_GPL vmlinux 0xf043f8ee nf_unregister_afinfo +EXPORT_SYMBOL_GPL vmlinux 0xf0451473 regmap_can_raw_write +EXPORT_SYMBOL_GPL vmlinux 0xf0696401 acpi_pci_detect_ejectable +EXPORT_SYMBOL_GPL vmlinux 0xf0e52c7f get_cpu_device +EXPORT_SYMBOL_GPL vmlinux 0xf0f35f40 fat_fill_super +EXPORT_SYMBOL_GPL vmlinux 0xf0f5dbc2 timerqueue_iterate_next +EXPORT_SYMBOL_GPL vmlinux 0xf0f72dee clk_unprepare +EXPORT_SYMBOL_GPL vmlinux 0xf105b27d usb_show_dynids +EXPORT_SYMBOL_GPL vmlinux 0xf13045da usb_sg_wait +EXPORT_SYMBOL_GPL vmlinux 0xf131267c device_wakeup_enable +EXPORT_SYMBOL_GPL vmlinux 0xf154dab7 pstore_register +EXPORT_SYMBOL_GPL vmlinux 0xf16d5514 alarm_start_relative +EXPORT_SYMBOL_GPL vmlinux 0xf1705ef9 aead_geniv_exit +EXPORT_SYMBOL_GPL vmlinux 0xf174af1a xfrm_local_error +EXPORT_SYMBOL_GPL vmlinux 0xf184d189 kernel_power_off +EXPORT_SYMBOL_GPL vmlinux 0xf186c82f nl_table_lock +EXPORT_SYMBOL_GPL vmlinux 0xf1b29fd9 debugfs_create_file +EXPORT_SYMBOL_GPL vmlinux 0xf1b31314 delayacct_on +EXPORT_SYMBOL_GPL vmlinux 0xf1b32a6e i2c_add_numbered_adapter +EXPORT_SYMBOL_GPL vmlinux 0xf1b551d9 ibft_addr +EXPORT_SYMBOL_GPL vmlinux 0xf1d3c44d od_register_powersave_bias_handler +EXPORT_SYMBOL_GPL vmlinux 0xf1e56825 ata_sas_port_async_suspend +EXPORT_SYMBOL_GPL vmlinux 0xf1ef192a __page_file_index +EXPORT_SYMBOL_GPL vmlinux 0xf1f20e99 scsi_internal_device_block +EXPORT_SYMBOL_GPL vmlinux 0xf1f215f3 scsi_eh_ready_devs +EXPORT_SYMBOL_GPL vmlinux 0xf1ff1072 __hvc_resize +EXPORT_SYMBOL_GPL vmlinux 0xf2042e30 acpi_register_gsi +EXPORT_SYMBOL_GPL vmlinux 0xf21b81fc relay_flush +EXPORT_SYMBOL_GPL vmlinux 0xf21e1f9b disable_percpu_irq +EXPORT_SYMBOL_GPL vmlinux 0xf239e2c1 print_context_stack +EXPORT_SYMBOL_GPL vmlinux 0xf27977e2 async_synchronize_cookie_domain +EXPORT_SYMBOL_GPL vmlinux 0xf2842235 sock_diag_unregister +EXPORT_SYMBOL_GPL vmlinux 0xf2a16b06 bus_set_iommu +EXPORT_SYMBOL_GPL vmlinux 0xf2b3162e raw_seq_next +EXPORT_SYMBOL_GPL vmlinux 0xf2bf1c58 sdio_readw +EXPORT_SYMBOL_GPL vmlinux 0xf2d9872a stmpe_enable +EXPORT_SYMBOL_GPL vmlinux 0xf2eef3ae efivar_entry_set_get_size +EXPORT_SYMBOL_GPL vmlinux 0xf2fa414e iommu_domain_window_disable +EXPORT_SYMBOL_GPL vmlinux 0xf2fca922 uart_parse_options +EXPORT_SYMBOL_GPL vmlinux 0xf30e105d ezx_pcap_write +EXPORT_SYMBOL_GPL vmlinux 0xf31b3fd1 workqueue_set_max_active +EXPORT_SYMBOL_GPL vmlinux 0xf32bdc5d unregister_xenstore_notifier +EXPORT_SYMBOL_GPL vmlinux 0xf331236f btree_geo32 +EXPORT_SYMBOL_GPL vmlinux 0xf3338d3d unregister_pernet_subsys +EXPORT_SYMBOL_GPL vmlinux 0xf3357a5f ping_proc_register +EXPORT_SYMBOL_GPL vmlinux 0xf33a6100 iommu_domain_free +EXPORT_SYMBOL_GPL vmlinux 0xf34d62d3 devres_destroy +EXPORT_SYMBOL_GPL vmlinux 0xf35e84fb da903x_clr_bits +EXPORT_SYMBOL_GPL vmlinux 0xf36b0596 virtqueue_add_inbuf +EXPORT_SYMBOL_GPL vmlinux 0xf37554c5 security_inode_create +EXPORT_SYMBOL_GPL vmlinux 0xf388e912 alarm_init +EXPORT_SYMBOL_GPL vmlinux 0xf3aec308 dma_buf_map_attachment +EXPORT_SYMBOL_GPL vmlinux 0xf3b451ca kdb_poll_funcs +EXPORT_SYMBOL_GPL vmlinux 0xf3be0849 efivar_entry_get +EXPORT_SYMBOL_GPL vmlinux 0xf3d16c42 tps65912_clear_bits +EXPORT_SYMBOL_GPL vmlinux 0xf3dd036d regulator_set_voltage_time +EXPORT_SYMBOL_GPL vmlinux 0xf3de1cb7 dev_pm_qos_expose_latency_limit +EXPORT_SYMBOL_GPL vmlinux 0xf3e10b1a extcon_unregister_interest +EXPORT_SYMBOL_GPL vmlinux 0xf43c7c36 raw_unhash_sk +EXPORT_SYMBOL_GPL vmlinux 0xf457d3ae sata_link_debounce +EXPORT_SYMBOL_GPL vmlinux 0xf47e6af4 ehci_resume +EXPORT_SYMBOL_GPL vmlinux 0xf48c14f9 inet_csk_update_pmtu +EXPORT_SYMBOL_GPL vmlinux 0xf4918cca debugfs_create_u32 +EXPORT_SYMBOL_GPL vmlinux 0xf494f618 mmc_regulator_get_ocrmask +EXPORT_SYMBOL_GPL vmlinux 0xf499fdb2 rcu_barrier_bh +EXPORT_SYMBOL_GPL vmlinux 0xf4a55315 devres_open_group +EXPORT_SYMBOL_GPL vmlinux 0xf4a86323 call_srcu +EXPORT_SYMBOL_GPL vmlinux 0xf4c808ca wm8350_reg_write +EXPORT_SYMBOL_GPL vmlinux 0xf4ec3ccf debugfs_create_x16 +EXPORT_SYMBOL_GPL vmlinux 0xf4fc2d6c __ring_buffer_alloc +EXPORT_SYMBOL_GPL vmlinux 0xf53a9e95 pci_find_next_capability +EXPORT_SYMBOL_GPL vmlinux 0xf54184c9 securityfs_create_file +EXPORT_SYMBOL_GPL vmlinux 0xf54bd49b lcm +EXPORT_SYMBOL_GPL vmlinux 0xf553318d cpuidle_pause_and_lock +EXPORT_SYMBOL_GPL vmlinux 0xf57091af get_current_tty +EXPORT_SYMBOL_GPL vmlinux 0xf5785b42 evtchn_get +EXPORT_SYMBOL_GPL vmlinux 0xf5945bac gnttab_free_grant_references +EXPORT_SYMBOL_GPL vmlinux 0xf5a691cd invalidate_bh_lrus +EXPORT_SYMBOL_GPL vmlinux 0xf5adb4c4 tpm_show_active +EXPORT_SYMBOL_GPL vmlinux 0xf5c02506 pm_runtime_enable +EXPORT_SYMBOL_GPL vmlinux 0xf5e5ef6a blk_queue_bio +EXPORT_SYMBOL_GPL vmlinux 0xf5fef4e3 wm5110_spi_regmap +EXPORT_SYMBOL_GPL vmlinux 0xf6062636 init_fpu +EXPORT_SYMBOL_GPL vmlinux 0xf64a829e pci_create_slot +EXPORT_SYMBOL_GPL vmlinux 0xf656645a cn_add_callback +EXPORT_SYMBOL_GPL vmlinux 0xf6674893 stmpe_block_write +EXPORT_SYMBOL_GPL vmlinux 0xf6748423 __i2c_board_lock +EXPORT_SYMBOL_GPL vmlinux 0xf6839ed8 ping_hash +EXPORT_SYMBOL_GPL vmlinux 0xf6e04730 event_storage +EXPORT_SYMBOL_GPL vmlinux 0xf6e874f5 ata_timing_merge +EXPORT_SYMBOL_GPL vmlinux 0xf6f66169 xfrm_output_resume +EXPORT_SYMBOL_GPL vmlinux 0xf7016530 xenbus_gather +EXPORT_SYMBOL_GPL vmlinux 0xf728bb5f iommu_set_fault_handler +EXPORT_SYMBOL_GPL vmlinux 0xf72d4b57 skcipher_geniv_exit +EXPORT_SYMBOL_GPL vmlinux 0xf7322bc8 pv_time_ops +EXPORT_SYMBOL_GPL vmlinux 0xf74656ab regulator_can_change_voltage +EXPORT_SYMBOL_GPL vmlinux 0xf748a007 tc3589x_set_bits +EXPORT_SYMBOL_GPL vmlinux 0xf749c5d6 sdio_writeb +EXPORT_SYMBOL_GPL vmlinux 0xf763c89e ata_bmdma_setup +EXPORT_SYMBOL_GPL vmlinux 0xf79b08b6 blocking_notifier_chain_cond_register +EXPORT_SYMBOL_GPL vmlinux 0xf7a14f56 apei_mce_report_mem_error +EXPORT_SYMBOL_GPL vmlinux 0xf7a2fd76 ehci_init_driver +EXPORT_SYMBOL_GPL vmlinux 0xf7aa5eb0 __rtnl_register +EXPORT_SYMBOL_GPL vmlinux 0xf7b42087 pm_relax +EXPORT_SYMBOL_GPL vmlinux 0xf7efa834 fib_rules_lookup +EXPORT_SYMBOL_GPL vmlinux 0xf7fc0e10 sk_setup_caps +EXPORT_SYMBOL_GPL vmlinux 0xf8291117 do_unregister_con_driver +EXPORT_SYMBOL_GPL vmlinux 0xf82f3657 work_on_cpu +EXPORT_SYMBOL_GPL vmlinux 0xf8335077 fat_dir_empty +EXPORT_SYMBOL_GPL vmlinux 0xf843d39c __sock_recv_wifi_status +EXPORT_SYMBOL_GPL vmlinux 0xf8559454 ehci_setup +EXPORT_SYMBOL_GPL vmlinux 0xf86a3a9f clk_gate_ops +EXPORT_SYMBOL_GPL vmlinux 0xf8802492 print_stack_trace +EXPORT_SYMBOL_GPL vmlinux 0xf880960c fuse_request_send +EXPORT_SYMBOL_GPL vmlinux 0xf899c6f6 fat_remove_entries +EXPORT_SYMBOL_GPL vmlinux 0xf8be9632 pm_generic_freeze +EXPORT_SYMBOL_GPL vmlinux 0xf8c02a02 crypto_register_template +EXPORT_SYMBOL_GPL vmlinux 0xf8e76edb ata_wait_after_reset +EXPORT_SYMBOL_GPL vmlinux 0xf8f3a0fb ata_ratelimit +EXPORT_SYMBOL_GPL vmlinux 0xf8fb4014 usb_get_descriptor +EXPORT_SYMBOL_GPL vmlinux 0xf8fe3d0b kmsg_dump_register +EXPORT_SYMBOL_GPL vmlinux 0xf9014a89 init_pid_ns +EXPORT_SYMBOL_GPL vmlinux 0xf9088f45 crypto_remove_spawns +EXPORT_SYMBOL_GPL vmlinux 0xf91795c4 spi_finalize_current_message +EXPORT_SYMBOL_GPL vmlinux 0xf92ce956 kdb_printf +EXPORT_SYMBOL_GPL vmlinux 0xf932015f __raw_notifier_call_chain +EXPORT_SYMBOL_GPL vmlinux 0xf945bb95 device_create_bin_file +EXPORT_SYMBOL_GPL vmlinux 0xf95a195c crypto_alloc_ahash +EXPORT_SYMBOL_GPL vmlinux 0xf96ac0c0 crypto_hash_walk_first +EXPORT_SYMBOL_GPL vmlinux 0xf96db7c7 led_classdev_resume +EXPORT_SYMBOL_GPL vmlinux 0xf9765833 dmi_match +EXPORT_SYMBOL_GPL vmlinux 0xf97666a0 set_memory_rw +EXPORT_SYMBOL_GPL vmlinux 0xf9924426 arch_add_memory +EXPORT_SYMBOL_GPL vmlinux 0xf9a054b5 __round_jiffies +EXPORT_SYMBOL_GPL vmlinux 0xf9bf673f __clk_register +EXPORT_SYMBOL_GPL vmlinux 0xf9c54f72 usb_altnum_to_altsetting +EXPORT_SYMBOL_GPL vmlinux 0xf9ca3160 ata_id_xfermask +EXPORT_SYMBOL_GPL vmlinux 0xf9d44856 dev_pm_qos_hide_flags +EXPORT_SYMBOL_GPL vmlinux 0xf9d9264e xen_have_vector_callback +EXPORT_SYMBOL_GPL vmlinux 0xfa012fe7 tracepoint_probe_register +EXPORT_SYMBOL_GPL vmlinux 0xfa01e1be bd_link_disk_holder +EXPORT_SYMBOL_GPL vmlinux 0xfa1eb910 unregister_syscore_ops +EXPORT_SYMBOL_GPL vmlinux 0xfa1f4662 scatterwalk_start +EXPORT_SYMBOL_GPL vmlinux 0xfa278dc4 xfrm_audit_policy_delete +EXPORT_SYMBOL_GPL vmlinux 0xfa48fafa __mnt_is_readonly +EXPORT_SYMBOL_GPL vmlinux 0xfa4a647e klist_iter_init +EXPORT_SYMBOL_GPL vmlinux 0xfa59e2e0 blk_execute_rq_nowait +EXPORT_SYMBOL_GPL vmlinux 0xfa901b31 compat_get_timespec +EXPORT_SYMBOL_GPL vmlinux 0xfab4d0f9 usb_autopm_get_interface_async +EXPORT_SYMBOL_GPL vmlinux 0xfacda56a device_for_each_child +EXPORT_SYMBOL_GPL vmlinux 0xfb17dec1 __wake_up_sync +EXPORT_SYMBOL_GPL vmlinux 0xfb32b30f ring_buffer_read_prepare_sync +EXPORT_SYMBOL_GPL vmlinux 0xfb4a180f disk_get_part +EXPORT_SYMBOL_GPL vmlinux 0xfb64b230 acpi_processor_ffh_cstate_probe +EXPORT_SYMBOL_GPL vmlinux 0xfb6eedf9 power_group_name +EXPORT_SYMBOL_GPL vmlinux 0xfb6fef06 put_device +EXPORT_SYMBOL_GPL vmlinux 0xfb92ad46 i2c_for_each_dev +EXPORT_SYMBOL_GPL vmlinux 0xfb9c7a19 cpufreq_cpu_put +EXPORT_SYMBOL_GPL vmlinux 0xfbc3342c iommu_attach_group +EXPORT_SYMBOL_GPL vmlinux 0xfbe5c3b5 xen_swiotlb_map_sg_attrs +EXPORT_SYMBOL_GPL vmlinux 0xfbf07488 platform_device_add_data +EXPORT_SYMBOL_GPL vmlinux 0xfbf4dee4 sysfs_remove_files +EXPORT_SYMBOL_GPL vmlinux 0xfbf81e7c inet6_lookup +EXPORT_SYMBOL_GPL vmlinux 0xfc03d97a page_is_ram +EXPORT_SYMBOL_GPL vmlinux 0xfc201b66 sprint_oid +EXPORT_SYMBOL_GPL vmlinux 0xfc3b4246 acpi_bus_update_power +EXPORT_SYMBOL_GPL vmlinux 0xfc4f92dd acpi_dev_resume_early +EXPORT_SYMBOL_GPL vmlinux 0xfc5c0dff dma_buf_detach +EXPORT_SYMBOL_GPL vmlinux 0xfc7312e6 power_supply_changed +EXPORT_SYMBOL_GPL vmlinux 0xfc968c8b apei_exec_write_register_value +EXPORT_SYMBOL_GPL vmlinux 0xfca7dec8 rio_mport_write_config_8 +EXPORT_SYMBOL_GPL vmlinux 0xfcd7bc0b ring_buffer_empty +EXPORT_SYMBOL_GPL vmlinux 0xfceba9e8 tpm_add_ppi +EXPORT_SYMBOL_GPL vmlinux 0xfcf14b32 ata_sff_check_status +EXPORT_SYMBOL_GPL vmlinux 0xfcf8dafa inet_hashinfo_init +EXPORT_SYMBOL_GPL vmlinux 0xfcfe2254 ata_bmdma_qc_issue +EXPORT_SYMBOL_GPL vmlinux 0xfcffecfb serial8250_rx_dma +EXPORT_SYMBOL_GPL vmlinux 0xfd19b01d regmap_async_complete +EXPORT_SYMBOL_GPL vmlinux 0xfd1b3f61 sata_scr_write_flush +EXPORT_SYMBOL_GPL vmlinux 0xfd1d817e ohci_restart +EXPORT_SYMBOL_GPL vmlinux 0xfd452a9e regcache_mark_dirty +EXPORT_SYMBOL_GPL vmlinux 0xfd4a1a84 spi_sync_locked +EXPORT_SYMBOL_GPL vmlinux 0xfd51b281 gnttab_end_foreign_access_ref +EXPORT_SYMBOL_GPL vmlinux 0xfd7243c7 erst_disable +EXPORT_SYMBOL_GPL vmlinux 0xfdbfcb5b iommu_domain_window_enable +EXPORT_SYMBOL_GPL vmlinux 0xfdc56fb2 pm_generic_freeze_late +EXPORT_SYMBOL_GPL vmlinux 0xfdd48552 dev_pm_qos_hide_latency_limit +EXPORT_SYMBOL_GPL vmlinux 0xfdf3f907 rtc_read_time +EXPORT_SYMBOL_GPL vmlinux 0xfdf851d0 rio_register_mport +EXPORT_SYMBOL_GPL vmlinux 0xfe17bbd4 platform_bus +EXPORT_SYMBOL_GPL vmlinux 0xfe19398d tcp_unregister_congestion_control +EXPORT_SYMBOL_GPL vmlinux 0xfe390fa0 tcp_twsk_destructor +EXPORT_SYMBOL_GPL vmlinux 0xfe446ae1 pci_pasid_features +EXPORT_SYMBOL_GPL vmlinux 0xfe65ae95 power_supply_powers +EXPORT_SYMBOL_GPL vmlinux 0xfe727411 get_phys_to_machine +EXPORT_SYMBOL_GPL vmlinux 0xfe7dedec dma_buf_kmap_atomic +EXPORT_SYMBOL_GPL vmlinux 0xfe8be81b get_task_comm +EXPORT_SYMBOL_GPL vmlinux 0xfe990052 gpio_free +EXPORT_SYMBOL_GPL vmlinux 0xfed11ed1 usb_mon_deregister +EXPORT_SYMBOL_GPL vmlinux 0xfee70589 acpi_processor_get_performance_info +EXPORT_SYMBOL_GPL vmlinux 0xfef8a166 trace_current_buffer_lock_reserve +EXPORT_SYMBOL_GPL vmlinux 0xff05fa13 vring_interrupt +EXPORT_SYMBOL_GPL vmlinux 0xff1c02a3 devm_regmap_init_spi +EXPORT_SYMBOL_GPL vmlinux 0xff37ce21 xen_swiotlb_dma_mapping_error +EXPORT_SYMBOL_GPL vmlinux 0xff4a94d3 usb_interrupt_msg +EXPORT_SYMBOL_GPL vmlinux 0xff5a8cfe cn_del_callback +EXPORT_SYMBOL_GPL vmlinux 0xff6b11c2 regmap_register_patch +EXPORT_SYMBOL_GPL vmlinux 0xff76ed92 irq_get_domain_generic_chip +EXPORT_SYMBOL_GPL vmlinux 0xff85c6a6 rio_get_device +EXPORT_SYMBOL_GPL vmlinux 0xff86d1d3 md_run +EXPORT_SYMBOL_GPL vmlinux 0xff920143 tty_port_tty_hangup +EXPORT_SYMBOL_GPL vmlinux 0xff9f31c6 pm_runtime_allow +EXPORT_SYMBOL_GPL vmlinux 0xffa6edd3 wm831x_auxadc_read_uv +EXPORT_SYMBOL_GPL vmlinux 0xffa930f5 arizona_dev_init +EXPORT_SYMBOL_GPL vmlinux 0xffc6495b key_type_asymmetric +EXPORT_SYMBOL_GPL vmlinux 0xffd256fa subsys_interface_register +EXPORT_SYMBOL_GPL vmlinux 0xffeefc12 skb_gro_receive +EXPORT_SYMBOL_GPL vmlinux 0xfff7e16f invalidate_inode_pages2_range --- linux-3.11.0.orig/debian.master/d-i/kernel-versions.in +++ linux-3.11.0/debian.master/d-i/kernel-versions.in @@ -0,0 +1,11 @@ +# arch version flavour installedname suffix bdep +amd64 PKGVER-ABINUM generic PKGVER-ABINUM-generic - + +i386 PKGVER-ABINUM generic PKGVER-ABINUM-generic - + +armhf PKGVER-ABINUM generic PKGVER-ABINUM-generic - + +armhf PKGVER-ABINUM generic-lpae PKGVER-ABINUM-generic-lpae - + +# Ports +# arch version flavour installedname suffix bdep --- linux-3.11.0.orig/debian.master/d-i/exclude-firmware.armhf-generic-lpae +++ linux-3.11.0/debian.master/d-i/exclude-firmware.armhf-generic-lpae @@ -0,0 +1,2 @@ +nic-modules +scsi-modules --- linux-3.11.0.orig/debian.master/d-i/package-list +++ linux-3.11.0/debian.master/d-i/package-list @@ -0,0 +1,201 @@ +Package: kernel-image +Provides: ext3-modules, ext4-modules +Provides_amd64: efi-modules, ext3-modules, ext4-modules +Provides_i386: efi-modules, ext3-modules, ext4-modules + +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: ext2-modules, 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: btrfs-modules, 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 +Provides: crypto-dm-modules +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 +Provides: nbd-modules +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. + +Package: ipmi-modules +Depends: kernel-image +Priority: standard +Description: ipmi modules + +Package: multipath-modules +Depends: kernel-image +Priority: extra +Description: DM-Multipath support + This package contains modules for device-mapper multipath support. + --- linux-3.11.0.orig/debian.master/d-i/exclude-firmware.armhf-generic +++ linux-3.11.0/debian.master/d-i/exclude-firmware.armhf-generic @@ -0,0 +1,2 @@ +nic-modules +scsi-modules --- linux-3.11.0.orig/debian.master/d-i/exclude-modules.armhf-generic +++ linux-3.11.0/debian.master/d-i/exclude-modules.armhf-generic @@ -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-3.11.0.orig/debian.master/d-i/kernel-versions +++ linux-3.11.0/debian.master/d-i/kernel-versions @@ -0,0 +1,11 @@ +# arch version flavour installedname suffix bdep +amd64 3.11.0-15 generic 3.11.0-15-generic - + +i386 3.11.0-15 generic 3.11.0-15-generic - + +armhf 3.11.0-15 generic 3.11.0-15-generic - + +armhf 3.11.0-15 generic-lpae 3.11.0-15-generic-lpae - + +# Ports +# arch version flavour installedname suffix bdep --- linux-3.11.0.orig/debian.master/d-i/exclude-modules.i386-virtual +++ linux-3.11.0/debian.master/d-i/exclude-modules.i386-virtual @@ -0,0 +1,15 @@ +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 +ppp-modules +sata-modules +ipmi-modules --- linux-3.11.0.orig/debian.master/d-i/exclude-modules.armhf-generic-lpae +++ linux-3.11.0/debian.master/d-i/exclude-modules.armhf-generic-lpae @@ -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-3.11.0.orig/debian.master/d-i/exclude-modules.amd64-virtual +++ linux-3.11.0/debian.master/d-i/exclude-modules.amd64-virtual @@ -0,0 +1,15 @@ +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 +ppp-modules +sata-modules +ipmi-modules --- linux-3.11.0.orig/debian.master/d-i/modules/md-modules +++ linux-3.11.0/debian.master/d-i/modules/md-modules @@ -0,0 +1,16 @@ +dm-crypt ? +dm-mirror ? +dm-raid ? +dm-snapshot ? +dm-zero ? +faulty ? +linear ? +multipath ? +raid0 ? +raid1 ? +raid10 ? +raid456 ? + +# Extras +dm-raid45 ? +dm-loop ? --- linux-3.11.0.orig/debian.master/d-i/modules/storage-core-modules +++ linux-3.11.0/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-3.11.0.orig/debian.master/d-i/modules/irda-modules +++ linux-3.11.0/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-3.11.0.orig/debian.master/d-i/modules/ipmi-modules +++ linux-3.11.0/debian.master/d-i/modules/ipmi-modules @@ -0,0 +1,5 @@ +ipmi_devintf ? +ipmi_msghandler ? +ipmi_poweroff ? +ipmi_si ? +ipmi_watchdog ? --- linux-3.11.0.orig/debian.master/d-i/modules/floppy-modules +++ linux-3.11.0/debian.master/d-i/modules/floppy-modules @@ -0,0 +1 @@ +floppy ? --- linux-3.11.0.orig/debian.master/d-i/modules/pata-modules +++ linux-3.11.0/debian.master/d-i/modules/pata-modules @@ -0,0 +1,47 @@ +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_macio.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-3.11.0.orig/debian.master/d-i/modules/scsi-modules +++ linux-3.11.0/debian.master/d-i/modules/scsi-modules @@ -0,0 +1,126 @@ +# 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 ? +3w-sas ? +isci ? + +# device handlers +scsi_dh_alua ? +scsi_dh_emc ? +scsi_dh_rdac ? +scsi_dh_hp_sw ? --- linux-3.11.0.orig/debian.master/d-i/modules/plip-modules +++ linux-3.11.0/debian.master/d-i/modules/plip-modules @@ -0,0 +1 @@ +plip ? --- linux-3.11.0.orig/debian.master/d-i/modules/fat-modules +++ linux-3.11.0/debian.master/d-i/modules/fat-modules @@ -0,0 +1,7 @@ +fat ? +vfat ? + +# Supporting modules ? +nls_cp437 ? +nls_iso8859-1 ? +nls_utf8 ? --- linux-3.11.0.orig/debian.master/d-i/modules/crypto-modules +++ linux-3.11.0/debian.master/d-i/modules/crypto-modules @@ -0,0 +1,70 @@ +aesni-intel ? +aes-x86_64 ? +af_alg ? +algif_hash ? +algif_skcipher ? +ansi_cprng ? +anubis ? +arc4 ? +async_memcpy ? +async_pq ? +async_raid6_recov ? +async_tx ? +async_xor ? +authenc ? +authencesn ? +blowfish_common ? +blowfish_generic ? +blowfish-x86_64 ? +camellia ? +cast5 ? +cast6 ? +ccm ? +cryptd ? +cryptoloop ? +crypto_null ? +crypto_user ? +ctr ? +cts ? +deflate ? +des_generic ? +fcrypt ? +gcm ? +gf128mul ? +ghash-clmulni-intel ? +ghash-generic ? +khazad ? +lrw ? +lzo ? +md4 ? +michael_mic ? +padlock-aes ? +padlock-sha ? +pcbc ? +pcrypt ? +raid6test ? +rmd128 ? +rmd160 ? +rmd256 ? +rmd320 ? +salsa20_generic ? +salsa20-x86_64 ? +seed ? +seqiv ? +serpent_generic ? +serpent-sse2-x86_64 ? +sha1-ssse3 ? +sha512_generic ? +tcrypt ? +tea ? +tgr192 ? +twofish_common ? +twofish_generic ? +twofish-x86_64 ? +twofish-x86_64-3way ? +vmac ? +wp512 ? +xcbc ? +xor ? +xts ? +zlib ? --- linux-3.11.0.orig/debian.master/d-i/modules/serial-modules +++ linux-3.11.0/debian.master/d-i/modules/serial-modules @@ -0,0 +1,3 @@ +generic_serial ? +serial_cs ? +synclink_cs ? --- linux-3.11.0.orig/debian.master/d-i/modules/sata-modules +++ linux-3.11.0/debian.master/d-i/modules/sata-modules @@ -0,0 +1,17 @@ +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 ? +ahci_platform ? +ahci ? +acard-ahci ? +libahci ? --- linux-3.11.0.orig/debian.master/d-i/modules/block-modules +++ linux-3.11.0/debian.master/d-i/modules/block-modules @@ -0,0 +1,33 @@ +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 ? +sdhci-tegra ? +sx8 ? +umem ? +virtio_blk ? +xen-blkfront ? +mtip32xx ? --- linux-3.11.0.orig/debian.master/d-i/modules/vlan-modules +++ linux-3.11.0/debian.master/d-i/modules/vlan-modules @@ -0,0 +1,3 @@ +slp ? +garp ? +8021q ? --- linux-3.11.0.orig/debian.master/d-i/modules/mouse-modules +++ linux-3.11.0/debian.master/d-i/modules/mouse-modules @@ -0,0 +1,2 @@ +psmouse ? +usbmouse ? --- linux-3.11.0.orig/debian.master/d-i/modules/fs-core-modules +++ linux-3.11.0/debian.master/d-i/modules/fs-core-modules @@ -0,0 +1,4 @@ +ext2 ? +jfs ? +reiserfs ? +xfs ? --- linux-3.11.0.orig/debian.master/d-i/modules/message-modules +++ linux-3.11.0/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-3.11.0.orig/debian.master/d-i/modules/nic-usb-modules +++ linux-3.11.0/debian.master/d-i/modules/nic-usb-modules @@ -0,0 +1,32 @@ +catc ? +kaweth ? +pegasus ? +prism2_usb ? +rtl8150 ? +usbnet ? +zd1211rw ? +zd1201 ? +rt2500usb ? +rt73usb ? +rt2570 ? +rt2800usb ? +rt2x00usb ? +cdc_ether ? +asix ? +cdc_eem ? +cdc_ether ? +cdc-phonet ? +cdc_subset ? +dm9601 ? +gl620a ? +hso ? +int51x1 ? +mcs7830 ? +net1080 ? +plusb ? +rndis_host ? +smsc95xx ? +zaurus ? +carl9170 ? +smsc75xx ? +smsc95xx ? --- linux-3.11.0.orig/debian.master/d-i/modules/nic-shared-modules +++ linux-3.11.0/debian.master/d-i/modules/nic-shared-modules @@ -0,0 +1,26 @@ +# 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 ? +rt2800lib ? + +# Atheros library (since drivers are split across nic-modules/nic-usb-modules) +ath ? + +# Wireless 802.11 modules +lib80211 ? +cfg80211 ? +lib80211_crypt_ccmp ? +lib80211_crypt_tkip ? +lib80211_crypt_wep ? --- linux-3.11.0.orig/debian.master/d-i/modules/squashfs-modules +++ linux-3.11.0/debian.master/d-i/modules/squashfs-modules @@ -0,0 +1 @@ +squashfs ? --- linux-3.11.0.orig/debian.master/d-i/modules/fs-secondary-modules +++ linux-3.11.0/debian.master/d-i/modules/fs-secondary-modules @@ -0,0 +1,5 @@ +btrfs ? +fuse ? +ntfs ? +hfs ? +hfsplus ? --- linux-3.11.0.orig/debian.master/d-i/modules/speakup-modules +++ linux-3.11.0/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-3.11.0.orig/debian.master/d-i/modules/nic-pcmcia-modules +++ linux-3.11.0/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-3.11.0.orig/debian.master/d-i/modules/ppp-modules +++ linux-3.11.0/debian.master/d-i/modules/ppp-modules @@ -0,0 +1,6 @@ +ppp_async ? +ppp_deflate ? +ppp_mppe ? +pppoe ? +pppox ? +ppp_synctty ? --- linux-3.11.0.orig/debian.master/d-i/modules/pcmcia-modules +++ linux-3.11.0/debian.master/d-i/modules/pcmcia-modules @@ -0,0 +1,8 @@ +i82092 ? +i82365 ? +pcmcia ? +pcmcia_core ? +pd6729 ? +rsrc_nonstatic ? +tcic ? +yenta_socket ? --- linux-3.11.0.orig/debian.master/d-i/modules/firewire-core-modules +++ linux-3.11.0/debian.master/d-i/modules/firewire-core-modules @@ -0,0 +1,4 @@ +firewire-core ? +firewire-ohci ? +firewire-sbp2 ? +firewire-net ? --- linux-3.11.0.orig/debian.master/d-i/modules/multipath-modules +++ linux-3.11.0/debian.master/d-i/modules/multipath-modules @@ -0,0 +1,2 @@ +dm-multipath ? +dm-round-robin ? --- linux-3.11.0.orig/debian.master/d-i/modules/parport-modules +++ linux-3.11.0/debian.master/d-i/modules/parport-modules @@ -0,0 +1,2 @@ +parport ? +parport_pc ? --- linux-3.11.0.orig/debian.master/d-i/modules/nfs-modules +++ linux-3.11.0/debian.master/d-i/modules/nfs-modules @@ -0,0 +1,6 @@ +nfs ? +nfs_acl ? +nfsv3 ? +lockd ? +sunrpc ? +cifs ? --- linux-3.11.0.orig/debian.master/d-i/modules/pcmcia-storage-modules +++ linux-3.11.0/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-3.11.0.orig/debian.master/d-i/modules/nic-modules +++ linux-3.11.0/debian.master/d-i/modules/nic-modules @@ -0,0 +1,172 @@ +3c359 ? +3c501 ? +3c503 ? +3c505 ? +3c507 ? +3c509 ? +3c515 ? +3c523 ? +3c527 ? +3c59x ? +8139cp ? +8139too ? +82596 ? +abyss ? +ac3200 ? +adm8211 ? +airo ? +airport ? +alx ? +amd8111e ? +arc4 ? +arcnet ? +arc-rawmode ? +arc-rimi ? +arlan ? +at1700 ? +ath5k ? +ath9k ? +ath9k_htc ? +atl1 ? +atl1c ? +atl1e ? +atl2 ? +atmel ? +atmel_pci ? +b44 ? +be2net ? +bmac ? +bnx2 ? +bnx2x ? +bonding ? +brcmfmac ? +brcmsmac ? +xgmac ? +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 ? +iwl3945 ? +iwl4965 ? +iwl-legacy ? +iwldvm ? +iwlwifi ? +ixgb ? +ixgbe ? +lance ? +lanstreamer ? +lasi_82596 ? +lne390 ? +lp486e ? +mace ? +mlx4_core ? +mlx4_en ? +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 ? +qlcnic ? +r8169 ? +rate_control ? +rfc1051 ? +rfc1201 ? +rrunner ? +rt2400 ? +rt2400pci ? +rt2500 ? +rt2500pci ? +rt2800pci ? +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-3.11.0.orig/debian.master/d-i/modules/kernel-image +++ linux-3.11.0/debian.master/d-i/modules/kernel-image @@ -0,0 +1,24 @@ +gpio-pca953x ? +gpio-regulator ? +i2c-mux ? +i2c-mux-pinctrl ? +i2c-tegra ? +max8907 ? +max8907-regulator ? +nvec ? +nvec_kbd ? +nvec_paz00 ? +nvec_power ? +nvec_ps2 ? +palmas-regulator ? +rtc-em3027 ? +rtc-max8907 ? +rtc-palmas ? +rtc-tps6586x ? +rtc-tps65910 ? +tps51632-regulator ? +tps62360-regulator ? +tps65090-charger ? +tps65090-regulator ? +tps6586x-regulator ? +tps65910-regulator ? --- linux-3.11.0.orig/debian.master/d-i/modules/input-modules +++ linux-3.11.0/debian.master/d-i/modules/input-modules @@ -0,0 +1,23 @@ +hid-a4tech ? +hid-apple ? +hid-belkin ? +hid-bright ? +hid-cherry ? +hid-chicony ? +hid-cypress ? +hid-dell ? +hid-ezkey ? +hid-generic ? +hid-gyration ? +hid-logitech ? +hid-logitech-dj ? +hid-microsoft ? +hid-monterey ? +hid-petalynx ? +hid-pl ? +hid-samsung ? +hid-sony ? +hid-sunplus ? +hid-tmff ? +hid-zpff ? +usbhid ? --- linux-3.11.0.orig/debian.master/d-i/modules/fb-modules +++ linux-3.11.0/debian.master/d-i/modules/fb-modules @@ -0,0 +1,3 @@ +fbcon ? +vesafb ? +vga16fb ? --- linux-3.11.0.orig/debian.master/d-i/modules/virtio-modules +++ linux-3.11.0/debian.master/d-i/modules/virtio-modules @@ -0,0 +1,9 @@ +virtio_balloon ? +virtio_pci ? +virtio_ring ? +virtio-rng ? +hv_vmbus ? +hv_utils ? +hv_netvsc ? +hv_mouse ? +hv_storvsc ? --- linux-3.11.0.orig/debian.master/d-i/modules/usb-modules +++ linux-3.11.0/debian.master/d-i/modules/usb-modules @@ -0,0 +1,10 @@ +ehci-hcd ? +isp116x-hcd ? +isp1760 ? +ohci-hcd ? +r8a66597-hcd ? +sl811_cs ? +sl811-hcd ? +u132-hcd ? +uhci-hcd ? +xhci-hcd ? --- linux-3.11.0.orig/debian.master/d-i/firmware/README.txt +++ linux-3.11.0/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-3.11.0.orig/debian.master/d-i/firmware/scsi-modules +++ linux-3.11.0/debian.master/d-i/firmware/scsi-modules @@ -0,0 +1,3 @@ +qlogic/1040.bin +qlogic/12160.bin +qlogic/1280.bin --- linux-3.11.0.orig/debian.master/d-i/firmware/nic-modules +++ linux-3.11.0/debian.master/d-i/firmware/nic-modules @@ -0,0 +1,14 @@ +e100/d101m_ucode.bin +e100/d101s_ucode.bin +e100/d102e_ucode.bin +bnx2/bnx2-mips-09-6.2.1b.fw +bnx2/bnx2-rv2p-06-6.0.15.fw +bnx2/bnx2-mips-06-6.2.3.fw +bnx2/bnx2-rv2p-09-6.0.17.fw +bnx2/bnx2-rv2p-09ax-6.0.17.fw +bnx2x/bnx2x-e1h-7.8.17.0.fw +bnx2x/bnx2x-e1-7.8.17.0.fw +bnx2x/bnx2x-e2-7.8.17.0.fw +tigon/tg3_tso5.bin +tigon/tg3_tso.bin +tigon/tg3.bin --- linux-3.11.0.orig/debian.master/d-i/firmware/kernel-image +++ linux-3.11.0/debian.master/d-i/firmware/kernel-image @@ -0,0 +1,11 @@ +device-tree/highbank.dtb ? +device-tree/imx6q-sabrelite.dtb ? +device-tree/omap3-beagle-xm.dtb ? +device-tree/omap4-panda.dtb ? +device-tree/omap4-panda-es.dtb ? +device-tree/tegra20-harmony.dtb ? +device-tree/tegra20-paz00.dtb ? +device-tree/tegra20-seaboard.dtb ? +device-tree/tegra20-trimslice.dtb ? +device-tree/tegra20-ventana.dtb ? +device-tree/tegra20-whistler.dtb ? --- linux-3.11.0.orig/debian.master/etc/kernelconfig +++ linux-3.11.0/debian.master/etc/kernelconfig @@ -0,0 +1,7 @@ +if [ "$variant" = "ports" ]; then + archs="" + family='ports' +else + archs="amd64 i386 armhf" + family='ubuntu' +fi --- linux-3.11.0.orig/debian.master/etc/getabis +++ linux-3.11.0/debian.master/etc/getabis @@ -0,0 +1,16 @@ +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" + "http://ppa.launchpad.net/canonical-kernel-team/ppa/ubuntu/pool/main/l/linux" +) + +package_prefixes linux-image linux-image-extra + +getall armhf generic +getall armhf generic-lpae +getall amd64 generic +getall i386 generic + +# Ports arches and flavours. --- linux-3.11.0.orig/debian.master/rules.d/x32.mk +++ linux-3.11.0/debian.master/rules.d/x32.mk @@ -0,0 +1,14 @@ +human_arch = 64 bit x86 (32 bit userspace) +build_arch = x86_64 +header_arch = $(build_arch) +defconfig = defconfig +flavours = +build_image = bzImage +kernel_file = arch/$(build_arch)/boot/bzImage +install_file = vmlinuz +loader = grub +no_dumpfile = true +uefi_signed = true + +do_tools = false +do_flavour_image_package = false --- linux-3.11.0.orig/debian.master/rules.d/amd64.mk +++ linux-3.11.0/debian.master/rules.d/amd64.mk @@ -0,0 +1,16 @@ +human_arch = 64 bit x86 +build_arch = x86_64 +header_arch = $(build_arch) +defconfig = defconfig +flavours = generic +build_image = bzImage +kernel_file = arch/$(build_arch)/boot/bzImage +install_file = vmlinuz +loader = grub +no_dumpfile = true +uefi_signed = true +do_tools_cpupower = true +do_tools_perf = true +do_tools_x86 = true +do_tools_hyperv = true +do_extras_package = true --- linux-3.11.0.orig/debian.master/rules.d/i386.mk +++ linux-3.11.0/debian.master/rules.d/i386.mk @@ -0,0 +1,15 @@ +human_arch = 32 bit x86 +build_arch = i386 +header_arch = x86_64 +defconfig = defconfig +flavours = generic +build_image = bzImage +kernel_file = arch/$(build_arch)/boot/bzImage +install_file = vmlinuz +loader = grub +no_dumpfile = true +do_tools_common = true +do_tools_cpupower = true +do_tools_perf = true +do_tools_x86 = true +do_extras_package = true --- linux-3.11.0.orig/debian.master/rules.d/powerpc.mk +++ linux-3.11.0/debian.master/rules.d/powerpc.mk @@ -0,0 +1,12 @@ +human_arch = PowerPC +build_arch = powerpc +header_arch = $(build_arch) +defconfig = pmac32_defconfig +flavours = +build_image = vmlinux +kernel_file = $(build_image) +install_file = $(build_image) +no_dumpfile = true +do_tools = false +loader = yaboot +do_flavour_image_package = false --- linux-3.11.0.orig/debian.master/rules.d/arm64.mk +++ linux-3.11.0/debian.master/rules.d/arm64.mk @@ -0,0 +1,13 @@ +human_arch = ARMv8 +build_arch = arm64 +header_arch = arm64 +defconfig = defconfig +flavours = +build_image = zImage +kernel_file = arch/$(build_arch)/boot/zImage +install_file = vmlinuz +no_dumpfile = true + +loader = grub +do_tools = false +do_flavour_image_package = false --- linux-3.11.0.orig/debian.master/rules.d/armhf.mk +++ linux-3.11.0/debian.master/rules.d/armhf.mk @@ -0,0 +1,31 @@ +human_arch = ARM (hard float) +build_arch = arm +header_arch = arm +defconfig = defconfig +flavours = generic generic-lpae +build_image = zImage +kernel_file = arch/$(build_arch)/boot/zImage +install_file = vmlinuz +no_dumpfile = true + +loader = grub +do_tools = true +do_tools_cpupower = true +do_tools_perf = true +gcc = gcc-4.7 + +# Flavour specific configuration. +dtb_files_generic += highbank.dtb +dtb_files_generic += imx6q-sabrelite.dtb +dtb_files_generic += omap3-beagle-xm.dtb +dtb_files_generic += omap4-panda.dtb +dtb_files_generic += omap4-panda-es.dtb +dtb_files_generic += tegra20-harmony.dtb +dtb_files_generic += tegra20-paz00.dtb +dtb_files_generic += tegra20-seaboard.dtb +dtb_files_generic += tegra20-trimslice.dtb +dtb_files_generic += tegra20-ventana.dtb +dtb_files_generic += tegra20-whistler.dtb + +dtb_files_generic-lpae += highbank.dtb +dtb_files_generic-lpae += vexpress-v2p-ca15-tc1.dtb --- linux-3.11.0.orig/debian.master/rules.d/ppc64el.mk +++ linux-3.11.0/debian.master/rules.d/ppc64el.mk @@ -0,0 +1,13 @@ +human_arch = PowerPC 64el +build_arch = powerpc +header_arch = $(build_arch) +defconfig = ppc64_defconfig +flavours = +build_image = vmlinux +kernel_file = $(build_image) +install_file = $(build_image) +no_dumpfile = true +loader = yaboot + +do_tools = false +do_flavour_image_package = false --- linux-3.11.0.orig/scripts/kallsyms.c +++ linux-3.11.0/scripts/kallsyms.c @@ -55,6 +55,7 @@ static unsigned int table_size, table_cnt; static int all_symbols = 0; static char symbol_prefix_char = '\0'; +static unsigned long long kernel_start_addr = 0; int token_profit[0x10000]; @@ -65,7 +66,10 @@ static void usage(void) { - fprintf(stderr, "Usage: kallsyms [--all-symbols] [--symbol-prefix=] < in.map > out.S\n"); + fprintf(stderr, "Usage: kallsyms [--all-symbols] " + "[--symbol-prefix=] " + "[--page-offset=] " + "< in.map > out.S\n"); exit(1); } @@ -194,6 +198,9 @@ int i; int offset = 1; + if (s->addr < kernel_start_addr) + return 0; + /* skip prefix char */ if (symbol_prefix_char && *(s->sym + 1) == symbol_prefix_char) offset++; @@ -646,6 +653,9 @@ if ((*p == '"' && *(p+2) == '"') || (*p == '\'' && *(p+2) == '\'')) p++; symbol_prefix_char = *p; + } else if (strncmp(argv[i], "--page-offset=", 14) == 0) { + const char *p = &argv[i][14]; + kernel_start_addr = strtoull(p, NULL, 16); } else usage(); } --- linux-3.11.0.orig/scripts/link-vmlinux.sh +++ linux-3.11.0/scripts/link-vmlinux.sh @@ -82,6 +82,8 @@ kallsymopt="${kallsymopt} --all-symbols" fi + kallsymopt="${kallsymopt} --page-offset=$CONFIG_PAGE_OFFSET" + local aflags="${KBUILD_AFLAGS} ${KBUILD_AFLAGS_KERNEL} \ ${NOSTDINC_FLAGS} ${LINUXINCLUDE} ${KBUILD_CPPFLAGS}" --- linux-3.11.0.orig/scripts/kconfig/lkc.h +++ linux-3.11.0/scripts/kconfig/lkc.h @@ -97,7 +97,9 @@ /* confdata.c and expr.c */ static inline void xfwrite(const void *str, size_t len, size_t count, FILE *out) { - assert(len != 0); + //assert(len != 0); + if (len == 0) + return; if (fwrite(str, len, count, out) != count) fprintf(stderr, "Error in writing or end of file.\n"); --- linux-3.11.0.orig/lib/Kconfig +++ linux-3.11.0/lib/Kconfig @@ -66,6 +66,8 @@ config CRC_T10DIF tristate "CRC calculation for the T10 Data Integrity Field" + select CRYPTO + select CRYPTO_CRCT10DIF help This option is only needed if a module that's not in the kernel tree needs to calculate CRC checks for use with the --- linux-3.11.0.orig/lib/crc-t10dif.c +++ linux-3.11.0/lib/crc-t10dif.c @@ -11,57 +11,45 @@ #include #include #include +#include +#include +#include -/* Table generated using the following polynomium: - * x^16 + x^15 + x^11 + x^9 + x^8 + x^7 + x^5 + x^4 + x^2 + x + 1 - * gt: 0x8bb7 - */ -static const __u16 t10_dif_crc_table[256] = { - 0x0000, 0x8BB7, 0x9CD9, 0x176E, 0xB205, 0x39B2, 0x2EDC, 0xA56B, - 0xEFBD, 0x640A, 0x7364, 0xF8D3, 0x5DB8, 0xD60F, 0xC161, 0x4AD6, - 0x54CD, 0xDF7A, 0xC814, 0x43A3, 0xE6C8, 0x6D7F, 0x7A11, 0xF1A6, - 0xBB70, 0x30C7, 0x27A9, 0xAC1E, 0x0975, 0x82C2, 0x95AC, 0x1E1B, - 0xA99A, 0x222D, 0x3543, 0xBEF4, 0x1B9F, 0x9028, 0x8746, 0x0CF1, - 0x4627, 0xCD90, 0xDAFE, 0x5149, 0xF422, 0x7F95, 0x68FB, 0xE34C, - 0xFD57, 0x76E0, 0x618E, 0xEA39, 0x4F52, 0xC4E5, 0xD38B, 0x583C, - 0x12EA, 0x995D, 0x8E33, 0x0584, 0xA0EF, 0x2B58, 0x3C36, 0xB781, - 0xD883, 0x5334, 0x445A, 0xCFED, 0x6A86, 0xE131, 0xF65F, 0x7DE8, - 0x373E, 0xBC89, 0xABE7, 0x2050, 0x853B, 0x0E8C, 0x19E2, 0x9255, - 0x8C4E, 0x07F9, 0x1097, 0x9B20, 0x3E4B, 0xB5FC, 0xA292, 0x2925, - 0x63F3, 0xE844, 0xFF2A, 0x749D, 0xD1F6, 0x5A41, 0x4D2F, 0xC698, - 0x7119, 0xFAAE, 0xEDC0, 0x6677, 0xC31C, 0x48AB, 0x5FC5, 0xD472, - 0x9EA4, 0x1513, 0x027D, 0x89CA, 0x2CA1, 0xA716, 0xB078, 0x3BCF, - 0x25D4, 0xAE63, 0xB90D, 0x32BA, 0x97D1, 0x1C66, 0x0B08, 0x80BF, - 0xCA69, 0x41DE, 0x56B0, 0xDD07, 0x786C, 0xF3DB, 0xE4B5, 0x6F02, - 0x3AB1, 0xB106, 0xA668, 0x2DDF, 0x88B4, 0x0303, 0x146D, 0x9FDA, - 0xD50C, 0x5EBB, 0x49D5, 0xC262, 0x6709, 0xECBE, 0xFBD0, 0x7067, - 0x6E7C, 0xE5CB, 0xF2A5, 0x7912, 0xDC79, 0x57CE, 0x40A0, 0xCB17, - 0x81C1, 0x0A76, 0x1D18, 0x96AF, 0x33C4, 0xB873, 0xAF1D, 0x24AA, - 0x932B, 0x189C, 0x0FF2, 0x8445, 0x212E, 0xAA99, 0xBDF7, 0x3640, - 0x7C96, 0xF721, 0xE04F, 0x6BF8, 0xCE93, 0x4524, 0x524A, 0xD9FD, - 0xC7E6, 0x4C51, 0x5B3F, 0xD088, 0x75E3, 0xFE54, 0xE93A, 0x628D, - 0x285B, 0xA3EC, 0xB482, 0x3F35, 0x9A5E, 0x11E9, 0x0687, 0x8D30, - 0xE232, 0x6985, 0x7EEB, 0xF55C, 0x5037, 0xDB80, 0xCCEE, 0x4759, - 0x0D8F, 0x8638, 0x9156, 0x1AE1, 0xBF8A, 0x343D, 0x2353, 0xA8E4, - 0xB6FF, 0x3D48, 0x2A26, 0xA191, 0x04FA, 0x8F4D, 0x9823, 0x1394, - 0x5942, 0xD2F5, 0xC59B, 0x4E2C, 0xEB47, 0x60F0, 0x779E, 0xFC29, - 0x4BA8, 0xC01F, 0xD771, 0x5CC6, 0xF9AD, 0x721A, 0x6574, 0xEEC3, - 0xA415, 0x2FA2, 0x38CC, 0xB37B, 0x1610, 0x9DA7, 0x8AC9, 0x017E, - 0x1F65, 0x94D2, 0x83BC, 0x080B, 0xAD60, 0x26D7, 0x31B9, 0xBA0E, - 0xF0D8, 0x7B6F, 0x6C01, 0xE7B6, 0x42DD, 0xC96A, 0xDE04, 0x55B3 -}; +static struct crypto_shash *crct10dif_tfm; __u16 crc_t10dif(const unsigned char *buffer, size_t len) { - __u16 crc = 0; - unsigned int i; + struct { + struct shash_desc shash; + char ctx[2]; + } desc; + int err; - for (i = 0 ; i < len ; i++) - crc = (crc << 8) ^ t10_dif_crc_table[((crc >> 8) ^ buffer[i]) & 0xff]; + desc.shash.tfm = crct10dif_tfm; + desc.shash.flags = 0; + *(__u16 *)desc.ctx = 0; - return crc; + err = crypto_shash_update(&desc.shash, buffer, len); + BUG_ON(err); + + return *(__u16 *)desc.ctx; } EXPORT_SYMBOL(crc_t10dif); +static int __init crc_t10dif_mod_init(void) +{ + crct10dif_tfm = crypto_alloc_shash("crct10dif", 0, 0); + return PTR_RET(crct10dif_tfm); +} + +static void __exit crc_t10dif_mod_fini(void) +{ + crypto_free_shash(crct10dif_tfm); +} + +module_init(crc_t10dif_mod_init); +module_exit(crc_t10dif_mod_fini); + MODULE_DESCRIPTION("T10 DIF CRC calculation"); MODULE_LICENSE("GPL"); +MODULE_SOFTDEP("pre: crct10dif"); --- linux-3.11.0.orig/lib/scatterlist.c +++ linux-3.11.0/lib/scatterlist.c @@ -577,7 +577,8 @@ miter->__offset += miter->consumed; miter->__remaining -= miter->consumed; - if (miter->__flags & SG_MITER_TO_SG) + if ((miter->__flags & SG_MITER_TO_SG) && + !PageSlab(miter->page)) flush_kernel_dcache_page(miter->page); if (miter->__flags & SG_MITER_ATOMIC) { --- linux-3.11.0.orig/ipc/shm.c +++ linux-3.11.0/ipc/shm.c @@ -19,6 +19,9 @@ * namespaces support * OpenVZ, SWsoft Inc. * Pavel Emelianov + * + * Better ipc lock (kern_ipc_perm.lock) handling + * Davidlohr Bueso , June 2013. */ #include @@ -80,8 +83,8 @@ } /* - * Called with shm_ids.rw_mutex (writer) and the shp structure locked. - * Only shm_ids.rw_mutex remains locked on exit. + * Called with shm_ids.rwsem (writer) and the shp structure locked. + * Only shm_ids.rwsem remains locked on exit. */ static void do_shm_rmid(struct ipc_namespace *ns, struct kern_ipc_perm *ipcp) { @@ -124,8 +127,28 @@ IPC_SHM_IDS, sysvipc_shm_proc_show); } +static inline struct shmid_kernel *shm_obtain_object(struct ipc_namespace *ns, int id) +{ + struct kern_ipc_perm *ipcp = ipc_obtain_object(&shm_ids(ns), id); + + if (IS_ERR(ipcp)) + return ERR_CAST(ipcp); + + return container_of(ipcp, struct shmid_kernel, shm_perm); +} + +static inline struct shmid_kernel *shm_obtain_object_check(struct ipc_namespace *ns, int id) +{ + struct kern_ipc_perm *ipcp = ipc_obtain_object_check(&shm_ids(ns), id); + + if (IS_ERR(ipcp)) + return ERR_CAST(ipcp); + + return container_of(ipcp, struct shmid_kernel, shm_perm); +} + /* - * shm_lock_(check_) routines are called in the paths where the rw_mutex + * shm_lock_(check_) routines are called in the paths where the rwsem * is not necessarily held. */ static inline struct shmid_kernel *shm_lock(struct ipc_namespace *ns, int id) @@ -144,15 +167,13 @@ ipc_lock_object(&ipcp->shm_perm); } -static inline struct shmid_kernel *shm_lock_check(struct ipc_namespace *ns, - int id) +static void shm_rcu_free(struct rcu_head *head) { - struct kern_ipc_perm *ipcp = ipc_lock_check(&shm_ids(ns), id); - - if (IS_ERR(ipcp)) - return (struct shmid_kernel *)ipcp; + struct ipc_rcu *p = container_of(head, struct ipc_rcu, rcu); + struct shmid_kernel *shp = ipc_rcu_to_struct(p); - return container_of(ipcp, struct shmid_kernel, shm_perm); + security_shm_free(shp); + ipc_rcu_free(head); } static inline void shm_rmid(struct ipc_namespace *ns, struct shmid_kernel *s) @@ -182,22 +203,24 @@ * @ns: namespace * @shp: struct to free * - * It has to be called with shp and shm_ids.rw_mutex (writer) locked, + * It has to be called with shp and shm_ids.rwsem (writer) locked, * but returns with shp unlocked and freed. */ static void shm_destroy(struct ipc_namespace *ns, struct shmid_kernel *shp) { + struct file *shm_file; + + shm_file = shp->shm_file; + shp->shm_file = NULL; ns->shm_tot -= (shp->shm_segsz + PAGE_SIZE - 1) >> PAGE_SHIFT; shm_rmid(ns, shp); shm_unlock(shp); - if (!is_file_hugepages(shp->shm_file)) - shmem_lock(shp->shm_file, 0, shp->mlock_user); + if (!is_file_hugepages(shm_file)) + shmem_lock(shm_file, 0, shp->mlock_user); else if (shp->mlock_user) - user_shm_unlock(file_inode(shp->shm_file)->i_size, - shp->mlock_user); - fput (shp->shm_file); - security_shm_free(shp); - ipc_rcu_putref(shp); + user_shm_unlock(file_inode(shm_file)->i_size, shp->mlock_user); + fput(shm_file); + ipc_rcu_putref(shp, shm_rcu_free); } /* @@ -230,7 +253,7 @@ struct shmid_kernel *shp; struct ipc_namespace *ns = sfd->ns; - down_write(&shm_ids(ns).rw_mutex); + down_write(&shm_ids(ns).rwsem); /* remove from the list of attaches of the shm segment */ shp = shm_lock(ns, sfd->id); BUG_ON(IS_ERR(shp)); @@ -241,10 +264,10 @@ shm_destroy(ns, shp); else shm_unlock(shp); - up_write(&shm_ids(ns).rw_mutex); + up_write(&shm_ids(ns).rwsem); } -/* Called with ns->shm_ids(ns).rw_mutex locked */ +/* Called with ns->shm_ids(ns).rwsem locked */ static int shm_try_destroy_current(int id, void *p, void *data) { struct ipc_namespace *ns = data; @@ -275,7 +298,7 @@ return 0; } -/* Called with ns->shm_ids(ns).rw_mutex locked */ +/* Called with ns->shm_ids(ns).rwsem locked */ static int shm_try_destroy_orphaned(int id, void *p, void *data) { struct ipc_namespace *ns = data; @@ -286,7 +309,7 @@ * We want to destroy segments without users and with already * exit'ed originating process. * - * As shp->* are changed under rw_mutex, it's safe to skip shp locking. + * As shp->* are changed under rwsem, it's safe to skip shp locking. */ if (shp->shm_creator != NULL) return 0; @@ -300,10 +323,10 @@ void shm_destroy_orphaned(struct ipc_namespace *ns) { - down_write(&shm_ids(ns).rw_mutex); + down_write(&shm_ids(ns).rwsem); if (shm_ids(ns).in_use) idr_for_each(&shm_ids(ns).ipcs_idr, &shm_try_destroy_orphaned, ns); - up_write(&shm_ids(ns).rw_mutex); + up_write(&shm_ids(ns).rwsem); } @@ -315,10 +338,10 @@ return; /* Destroy all already created segments, but not mapped yet */ - down_write(&shm_ids(ns).rw_mutex); + down_write(&shm_ids(ns).rwsem); if (shm_ids(ns).in_use) idr_for_each(&shm_ids(ns).ipcs_idr, &shm_try_destroy_current, ns); - up_write(&shm_ids(ns).rw_mutex); + up_write(&shm_ids(ns).rwsem); } static int shm_fault(struct vm_area_struct *vma, struct vm_fault *vmf) @@ -452,7 +475,7 @@ * @ns: namespace * @params: ptr to the structure that contains key, size and shmflg * - * Called with shm_ids.rw_mutex held as a writer. + * Called with shm_ids.rwsem held as a writer. */ static int newseg(struct ipc_namespace *ns, struct ipc_params *params) @@ -485,7 +508,7 @@ shp->shm_perm.security = NULL; error = security_shm_alloc(shp); if (error) { - ipc_rcu_putref(shp); + ipc_rcu_putref(shp, ipc_rcu_free); return error; } @@ -554,13 +577,12 @@ user_shm_unlock(size, shp->mlock_user); fput(file); no_file: - security_shm_free(shp); - ipc_rcu_putref(shp); + ipc_rcu_putref(shp, shm_rcu_free); return error; } /* - * Called with shm_ids.rw_mutex and ipcp locked. + * Called with shm_ids.rwsem and ipcp locked. */ static inline int shm_security(struct kern_ipc_perm *ipcp, int shmflg) { @@ -571,7 +593,7 @@ } /* - * Called with shm_ids.rw_mutex and ipcp locked. + * Called with shm_ids.rwsem and ipcp locked. */ static inline int shm_more_checks(struct kern_ipc_perm *ipcp, struct ipc_params *params) @@ -684,7 +706,7 @@ /* * Calculate and add used RSS and swap pages of a shm. - * Called with shm_ids.rw_mutex held as a reader + * Called with shm_ids.rwsem held as a reader */ static void shm_add_rss_swap(struct shmid_kernel *shp, unsigned long *rss_add, unsigned long *swp_add) @@ -711,7 +733,7 @@ } /* - * Called with shm_ids.rw_mutex held as a reader + * Called with shm_ids.rwsem held as a reader */ static void shm_get_stat(struct ipc_namespace *ns, unsigned long *rss, unsigned long *swp) @@ -740,9 +762,9 @@ } /* - * This function handles some shmctl commands which require the rw_mutex + * This function handles some shmctl commands which require the rwsem * to be held in write mode. - * NOTE: no locks must be held, the rw_mutex is taken inside this function. + * NOTE: no locks must be held, the rwsem is taken inside this function. */ static int shmctl_down(struct ipc_namespace *ns, int shmid, int cmd, struct shmid_ds __user *buf, int version) @@ -757,14 +779,13 @@ return -EFAULT; } - down_write(&shm_ids(ns).rw_mutex); + down_write(&shm_ids(ns).rwsem); rcu_read_lock(); - ipcp = ipcctl_pre_down(ns, &shm_ids(ns), shmid, cmd, - &shmid64.shm_perm, 0); + ipcp = ipcctl_pre_down_nolock(ns, &shm_ids(ns), shmid, cmd, + &shmid64.shm_perm, 0); if (IS_ERR(ipcp)) { err = PTR_ERR(ipcp); - /* the ipc lock is not held upon failure */ goto out_unlock1; } @@ -772,14 +793,16 @@ err = security_shm_shmctl(shp, cmd); if (err) - goto out_unlock0; + goto out_unlock1; switch (cmd) { case IPC_RMID: + ipc_lock_object(&shp->shm_perm); /* do_shm_rmid unlocks the ipc object and rcu */ do_shm_rmid(ns, ipcp); goto out_up; case IPC_SET: + ipc_lock_object(&shp->shm_perm); err = ipc_update_perm(&shmid64.shm_perm, ipcp); if (err) goto out_unlock0; @@ -787,6 +810,7 @@ break; default: err = -EINVAL; + goto out_unlock1; } out_unlock0: @@ -794,33 +818,28 @@ out_unlock1: rcu_read_unlock(); out_up: - up_write(&shm_ids(ns).rw_mutex); + up_write(&shm_ids(ns).rwsem); return err; } -SYSCALL_DEFINE3(shmctl, int, shmid, int, cmd, struct shmid_ds __user *, buf) +static int shmctl_nolock(struct ipc_namespace *ns, int shmid, + int cmd, int version, void __user *buf) { + int err; struct shmid_kernel *shp; - int err, version; - struct ipc_namespace *ns; - if (cmd < 0 || shmid < 0) { - err = -EINVAL; - goto out; + /* preliminary security checks for *_INFO */ + if (cmd == IPC_INFO || cmd == SHM_INFO) { + err = security_shm_shmctl(NULL, cmd); + if (err) + return err; } - version = ipc_parse_version(&cmd); - ns = current->nsproxy->ipc_ns; - - switch (cmd) { /* replace with proc interface ? */ + switch (cmd) { case IPC_INFO: { struct shminfo64 shminfo; - err = security_shm_shmctl(NULL, cmd); - if (err) - return err; - memset(&shminfo, 0, sizeof(shminfo)); shminfo.shmmni = shminfo.shmseg = ns->shm_ctlmni; shminfo.shmmax = ns->shm_ctlmax; @@ -830,9 +849,9 @@ if(copy_shminfo_to_user (buf, &shminfo, version)) return -EFAULT; - down_read(&shm_ids(ns).rw_mutex); + down_read(&shm_ids(ns).rwsem); err = ipc_get_maxid(&shm_ids(ns)); - up_read(&shm_ids(ns).rw_mutex); + up_read(&shm_ids(ns).rwsem); if(err<0) err = 0; @@ -842,19 +861,15 @@ { struct shm_info shm_info; - err = security_shm_shmctl(NULL, cmd); - if (err) - return err; - memset(&shm_info, 0, sizeof(shm_info)); - down_read(&shm_ids(ns).rw_mutex); + down_read(&shm_ids(ns).rwsem); shm_info.used_ids = shm_ids(ns).in_use; shm_get_stat (ns, &shm_info.shm_rss, &shm_info.shm_swp); shm_info.shm_tot = ns->shm_tot; shm_info.swap_attempts = 0; shm_info.swap_successes = 0; err = ipc_get_maxid(&shm_ids(ns)); - up_read(&shm_ids(ns).rw_mutex); + up_read(&shm_ids(ns).rwsem); if (copy_to_user(buf, &shm_info, sizeof(shm_info))) { err = -EFAULT; goto out; @@ -869,27 +884,31 @@ struct shmid64_ds tbuf; int result; + rcu_read_lock(); if (cmd == SHM_STAT) { - shp = shm_lock(ns, shmid); + shp = shm_obtain_object(ns, shmid); if (IS_ERR(shp)) { err = PTR_ERR(shp); - goto out; + goto out_unlock; } result = shp->shm_perm.id; } else { - shp = shm_lock_check(ns, shmid); + shp = shm_obtain_object_check(ns, shmid); if (IS_ERR(shp)) { err = PTR_ERR(shp); - goto out; + goto out_unlock; } result = 0; } + err = -EACCES; if (ipcperms(ns, &shp->shm_perm, S_IRUGO)) goto out_unlock; + err = security_shm_shmctl(shp, cmd); if (err) goto out_unlock; + memset(&tbuf, 0, sizeof(tbuf)); kernel_to_ipc64_perm(&shp->shm_perm, &tbuf.shm_perm); tbuf.shm_segsz = shp->shm_segsz; @@ -899,43 +918,86 @@ tbuf.shm_cpid = shp->shm_cprid; tbuf.shm_lpid = shp->shm_lprid; tbuf.shm_nattch = shp->shm_nattch; - shm_unlock(shp); - if(copy_shmid_to_user (buf, &tbuf, version)) + rcu_read_unlock(); + + if (copy_shmid_to_user(buf, &tbuf, version)) err = -EFAULT; else err = result; goto out; } + default: + return -EINVAL; + } + +out_unlock: + rcu_read_unlock(); +out: + return err; +} + +SYSCALL_DEFINE3(shmctl, int, shmid, int, cmd, struct shmid_ds __user *, buf) +{ + struct shmid_kernel *shp; + int err, version; + struct ipc_namespace *ns; + + if (cmd < 0 || shmid < 0) + return -EINVAL; + + version = ipc_parse_version(&cmd); + ns = current->nsproxy->ipc_ns; + + switch (cmd) { + case IPC_INFO: + case SHM_INFO: + case SHM_STAT: + case IPC_STAT: + return shmctl_nolock(ns, shmid, cmd, version, buf); + case IPC_RMID: + case IPC_SET: + return shmctl_down(ns, shmid, cmd, buf, version); case SHM_LOCK: case SHM_UNLOCK: { struct file *shm_file; - shp = shm_lock_check(ns, shmid); + rcu_read_lock(); + shp = shm_obtain_object_check(ns, shmid); if (IS_ERR(shp)) { err = PTR_ERR(shp); - goto out; + goto out_unlock1; } audit_ipc_obj(&(shp->shm_perm)); + err = security_shm_shmctl(shp, cmd); + if (err) + goto out_unlock1; + ipc_lock_object(&shp->shm_perm); if (!ns_capable(ns->user_ns, CAP_IPC_LOCK)) { kuid_t euid = current_euid(); - err = -EPERM; if (!uid_eq(euid, shp->shm_perm.uid) && - !uid_eq(euid, shp->shm_perm.cuid)) - goto out_unlock; - if (cmd == SHM_LOCK && !rlimit(RLIMIT_MEMLOCK)) - goto out_unlock; + !uid_eq(euid, shp->shm_perm.cuid)) { + err = -EPERM; + goto out_unlock0; + } + if (cmd == SHM_LOCK && !rlimit(RLIMIT_MEMLOCK)) { + err = -EPERM; + goto out_unlock0; + } } - err = security_shm_shmctl(shp, cmd); - if (err) - goto out_unlock; - shm_file = shp->shm_file; + + /* check if shm_destroy() is tearing down shp */ + if (shm_file == NULL) { + err = -EIDRM; + goto out_unlock0; + } + if (is_file_hugepages(shm_file)) - goto out_unlock; + goto out_unlock0; if (cmd == SHM_LOCK) { struct user_struct *user = current_user(); @@ -944,32 +1006,31 @@ shp->shm_perm.mode |= SHM_LOCKED; shp->mlock_user = user; } - goto out_unlock; + goto out_unlock0; } /* SHM_UNLOCK */ if (!(shp->shm_perm.mode & SHM_LOCKED)) - goto out_unlock; + goto out_unlock0; shmem_lock(shm_file, 0, shp->mlock_user); shp->shm_perm.mode &= ~SHM_LOCKED; shp->mlock_user = NULL; get_file(shm_file); - shm_unlock(shp); + ipc_unlock_object(&shp->shm_perm); + rcu_read_unlock(); shmem_unlock_mapping(shm_file->f_mapping); + fput(shm_file); - goto out; - } - case IPC_RMID: - case IPC_SET: - err = shmctl_down(ns, shmid, cmd, buf, version); return err; + } default: return -EINVAL; } -out_unlock: - shm_unlock(shp); -out: +out_unlock0: + ipc_unlock_object(&shp->shm_perm); +out_unlock1: + rcu_read_unlock(); return err; } @@ -1037,10 +1098,11 @@ * additional creator id... */ ns = current->nsproxy->ipc_ns; - shp = shm_lock_check(ns, shmid); + rcu_read_lock(); + shp = shm_obtain_object_check(ns, shmid); if (IS_ERR(shp)) { err = PTR_ERR(shp); - goto out; + goto out_unlock; } err = -EACCES; @@ -1051,24 +1113,39 @@ if (err) goto out_unlock; + ipc_lock_object(&shp->shm_perm); + + /* check if shm_destroy() is tearing down shp */ + if (shp->shm_file == NULL) { + ipc_unlock_object(&shp->shm_perm); + err = -EIDRM; + goto out_unlock; + } + path = shp->shm_file->f_path; path_get(&path); shp->shm_nattch++; size = i_size_read(path.dentry->d_inode); - shm_unlock(shp); + ipc_unlock_object(&shp->shm_perm); + rcu_read_unlock(); err = -ENOMEM; sfd = kzalloc(sizeof(*sfd), GFP_KERNEL); - if (!sfd) - goto out_put_dentry; + if (!sfd) { + path_put(&path); + goto out_nattch; + } file = alloc_file(&path, f_mode, is_file_hugepages(shp->shm_file) ? &shm_file_operations_huge : &shm_file_operations); err = PTR_ERR(file); - if (IS_ERR(file)) - goto out_free; + if (IS_ERR(file)) { + kfree(sfd); + path_put(&path); + goto out_nattch; + } file->private_data = sfd; file->f_mapping = shp->shm_file->f_mapping; @@ -1094,7 +1171,7 @@ addr > current->mm->start_stack - size - PAGE_SIZE * 5) goto invalid; } - + addr = do_mmap_pgoff(file, addr, size, prot, flags, 0, &populate); *raddr = addr; err = 0; @@ -1109,7 +1186,7 @@ fput(file); out_nattch: - down_write(&shm_ids(ns).rw_mutex); + down_write(&shm_ids(ns).rwsem); shp = shm_lock(ns, shmid); BUG_ON(IS_ERR(shp)); shp->shm_nattch--; @@ -1117,20 +1194,13 @@ shm_destroy(ns, shp); else shm_unlock(shp); - up_write(&shm_ids(ns).rw_mutex); - -out: + up_write(&shm_ids(ns).rwsem); return err; out_unlock: - shm_unlock(shp); - goto out; - -out_free: - kfree(sfd); -out_put_dentry: - path_put(&path); - goto out_nattch; + rcu_read_unlock(); +out: + return err; } SYSCALL_DEFINE3(shmat, int, shmid, char __user *, shmaddr, int, shmflg) @@ -1235,8 +1305,7 @@ #else /* CONFIG_MMU */ /* under NOMMU conditions, the exact address to be destroyed must be * given */ - retval = -EINVAL; - if (vma->vm_start == addr && vma->vm_ops == &shm_vm_ops) { + if (vma && vma->vm_start == addr && vma->vm_ops == &shm_vm_ops) { do_munmap(mm, vma->vm_start, vma->vm_end - vma->vm_start); retval = 0; } --- linux-3.11.0.orig/ipc/namespace.c +++ linux-3.11.0/ipc/namespace.c @@ -81,7 +81,7 @@ int next_id; int total, in_use; - down_write(&ids->rw_mutex); + down_write(&ids->rwsem); in_use = ids->in_use; @@ -89,11 +89,12 @@ perm = idr_find(&ids->ipcs_idr, next_id); if (perm == NULL) continue; - ipc_lock_by_ptr(perm); + rcu_read_lock(); + ipc_lock_object(perm); free(ns, perm); total++; } - up_write(&ids->rw_mutex); + up_write(&ids->rwsem); } static void free_ipc_ns(struct ipc_namespace *ns) --- linux-3.11.0.orig/ipc/sem.c +++ linux-3.11.0/ipc/sem.c @@ -244,70 +244,121 @@ } /* + * Wait until all currently ongoing simple ops have completed. + * Caller must own sem_perm.lock. + * New simple ops cannot start, because simple ops first check + * that sem_perm.lock is free. + * that a) sem_perm.lock is free and b) complex_count is 0. + */ +static void sem_wait_array(struct sem_array *sma) +{ + int i; + struct sem *sem; + + if (sma->complex_count) { + /* The thread that increased sma->complex_count waited on + * all sem->lock locks. Thus we don't need to wait again. + */ + return; + } + + for (i = 0; i < sma->sem_nsems; i++) { + sem = sma->sem_base + i; + spin_unlock_wait(&sem->lock); + } +} + +static void sem_rcu_free(struct rcu_head *head) +{ + struct ipc_rcu *p = container_of(head, struct ipc_rcu, rcu); + struct sem_array *sma = ipc_rcu_to_struct(p); + + security_sem_free(sma); + ipc_rcu_free(head); +} + +/* * If the request contains only one semaphore operation, and there are * no complex transactions pending, lock only the semaphore involved. * Otherwise, lock the entire semaphore array, since we either have * multiple semaphores in our own semops, or we need to look at * semaphores from other pending complex operations. - * - * Carefully guard against sma->complex_count changing between zero - * and non-zero while we are spinning for the lock. The value of - * sma->complex_count cannot change while we are holding the lock, - * so sem_unlock should be fine. - * - * The global lock path checks that all the local locks have been released, - * checking each local lock once. This means that the local lock paths - * cannot start their critical sections while the global lock is held. */ static inline int sem_lock(struct sem_array *sma, struct sembuf *sops, int nsops) { - int locknum; - again: - if (nsops == 1 && !sma->complex_count) { - struct sem *sem = sma->sem_base + sops->sem_num; + struct sem *sem; - /* Lock just the semaphore we are interested in. */ - spin_lock(&sem->lock); + if (nsops != 1) { + /* Complex operation - acquire a full lock */ + ipc_lock_object(&sma->sem_perm); - /* - * If sma->complex_count was set while we were spinning, - * we may need to look at things we did not lock here. + /* And wait until all simple ops that are processed + * right now have dropped their locks. */ - if (unlikely(sma->complex_count)) { - spin_unlock(&sem->lock); - goto lock_array; - } + sem_wait_array(sma); + return -1; + } + /* + * Only one semaphore affected - try to optimize locking. + * The rules are: + * - optimized locking is possible if no complex operation + * is either enqueued or processed right now. + * - The test for enqueued complex ops is simple: + * sma->complex_count != 0 + * - Testing for complex ops that are processed right now is + * a bit more difficult. Complex ops acquire the full lock + * and first wait that the running simple ops have completed. + * (see above) + * Thus: If we own a simple lock and the global lock is free + * and complex_count is now 0, then it will stay 0 and + * thus just locking sem->lock is sufficient. + */ + sem = sma->sem_base + sops->sem_num; + + if (sma->complex_count == 0) { /* - * Another process is holding the global lock on the - * sem_array; we cannot enter our critical section, - * but have to wait for the global lock to be released. + * It appears that no complex operation is around. + * Acquire the per-semaphore lock. */ - if (unlikely(spin_is_locked(&sma->sem_perm.lock))) { - spin_unlock(&sem->lock); - spin_unlock_wait(&sma->sem_perm.lock); - goto again; + spin_lock(&sem->lock); + + /* Then check that the global lock is free */ + if (!spin_is_locked(&sma->sem_perm.lock)) { + /* spin_is_locked() is not a memory barrier */ + smp_mb(); + + /* Now repeat the test of complex_count: + * It can't change anymore until we drop sem->lock. + * Thus: if is now 0, then it will stay 0. + */ + if (sma->complex_count == 0) { + /* fast path successful! */ + return sops->sem_num; + } } + spin_unlock(&sem->lock); + } - locknum = sops->sem_num; + /* slow path: acquire the full lock */ + ipc_lock_object(&sma->sem_perm); + + if (sma->complex_count == 0) { + /* False alarm: + * There is no complex operation, thus we can switch + * back to the fast path. + */ + spin_lock(&sem->lock); + ipc_unlock_object(&sma->sem_perm); + return sops->sem_num; } else { - int i; - /* - * Lock the semaphore array, and wait for all of the - * individual semaphore locks to go away. The code - * above ensures no new single-lock holders will enter - * their critical section while the array lock is held. + /* Not a false alarm, thus complete the sequence for a + * full lock. */ - lock_array: - ipc_lock_object(&sma->sem_perm); - for (i = 0; i < sma->sem_nsems; i++) { - struct sem *sem = sma->sem_base + i; - spin_unlock_wait(&sem->lock); - } - locknum = -1; + sem_wait_array(sma); + return -1; } - return locknum; } static inline void sem_unlock(struct sem_array *sma, int locknum) @@ -322,7 +373,7 @@ } /* - * sem_lock_(check_) routines are called in the paths where the rw_mutex + * sem_lock_(check_) routines are called in the paths where the rwsem * is not held. * * The caller holds the RCU read lock. @@ -374,12 +425,7 @@ static inline void sem_lock_and_putref(struct sem_array *sma) { sem_lock(sma, NULL, -1); - ipc_rcu_putref(sma); -} - -static inline void sem_putref(struct sem_array *sma) -{ - ipc_rcu_putref(sma); + ipc_rcu_putref(sma, ipc_rcu_free); } static inline void sem_rmid(struct ipc_namespace *ns, struct sem_array *s) @@ -426,7 +472,7 @@ * @ns: namespace * @params: ptr to the structure that contains key, semflg and nsems * - * Called with sem_ids.rw_mutex held (as a writer) + * Called with sem_ids.rwsem held (as a writer) */ static int newary(struct ipc_namespace *ns, struct ipc_params *params) @@ -458,14 +504,13 @@ sma->sem_perm.security = NULL; retval = security_sem_alloc(sma); if (retval) { - ipc_rcu_putref(sma); + ipc_rcu_putref(sma, ipc_rcu_free); return retval; } id = ipc_addid(&sem_ids(ns), &sma->sem_perm, ns->sc_semmni); if (id < 0) { - security_sem_free(sma); - ipc_rcu_putref(sma); + ipc_rcu_putref(sma, sem_rcu_free); return id; } ns->used_sems += nsems; @@ -492,7 +537,7 @@ /* - * Called with sem_ids.rw_mutex and ipcp locked. + * Called with sem_ids.rwsem and ipcp locked. */ static inline int sem_security(struct kern_ipc_perm *ipcp, int semflg) { @@ -503,7 +548,7 @@ } /* - * Called with sem_ids.rw_mutex and ipcp locked. + * Called with sem_ids.rwsem and ipcp locked. */ static inline int sem_more_checks(struct kern_ipc_perm *ipcp, struct ipc_params *params) @@ -873,6 +918,24 @@ } /** + * set_semotime(sma, sops) - set sem_otime + * @sma: semaphore array + * @sops: operations that modified the array, may be NULL + * + * sem_otime is replicated to avoid cache line trashing. + * This function sets one instance to the current time. + */ +static void set_semotime(struct sem_array *sma, struct sembuf *sops) +{ + if (sops == NULL) { + sma->sem_base[0].sem_otime = get_seconds(); + } else { + sma->sem_base[sops[0].sem_num].sem_otime = + get_seconds(); + } +} + +/** * do_smart_update(sma, sops, nsops, otime, pt) - optimized update_queue * @sma: semaphore array * @sops: operations that were performed @@ -922,17 +985,10 @@ } } } - if (otime) { - if (sops == NULL) { - sma->sem_base[0].sem_otime = get_seconds(); - } else { - sma->sem_base[sops[0].sem_num].sem_otime = - get_seconds(); - } - } + if (otime) + set_semotime(sma, sops); } - /* The following counts are associated to each semaphore: * semncnt number of tasks waiting on semval being nonzero * semzcnt number of tasks waiting on semval being zero @@ -994,8 +1050,8 @@ return semzcnt; } -/* Free a semaphore set. freeary() is called with sem_ids.rw_mutex locked - * as a writer and the spinlock for this semaphore set hold. sem_ids.rw_mutex +/* Free a semaphore set. freeary() is called with sem_ids.rwsem locked + * as a writer and the spinlock for this semaphore set hold. sem_ids.rwsem * remains locked on exit. */ static void freeary(struct ipc_namespace *ns, struct kern_ipc_perm *ipcp) @@ -1047,8 +1103,7 @@ wake_up_sem_queue_do(&tasks); ns->used_sems -= sma->sem_nsems; - security_sem_free(sma); - ipc_rcu_putref(sma); + ipc_rcu_putref(sma, sem_rcu_free); } static unsigned long copy_semid_to_user(void __user *buf, struct semid64_ds *in, int version) @@ -1116,7 +1171,7 @@ seminfo.semmnu = SEMMNU; seminfo.semmap = SEMMAP; seminfo.semume = SEMUME; - down_read(&sem_ids(ns).rw_mutex); + down_read(&sem_ids(ns).rwsem); if (cmd == SEM_INFO) { seminfo.semusz = sem_ids(ns).in_use; seminfo.semaem = ns->used_sems; @@ -1125,7 +1180,7 @@ seminfo.semaem = SEMAEM; } max_id = ipc_get_maxid(&sem_ids(ns)); - up_read(&sem_ids(ns).rw_mutex); + up_read(&sem_ids(ns).rwsem); if (copy_to_user(p, &seminfo, sizeof(struct seminfo))) return -EFAULT; return (max_id < 0) ? 0: max_id; @@ -1292,7 +1347,7 @@ rcu_read_unlock(); sem_io = ipc_alloc(sizeof(ushort)*nsems); if(sem_io == NULL) { - sem_putref(sma); + ipc_rcu_putref(sma, ipc_rcu_free); return -ENOMEM; } @@ -1328,20 +1383,20 @@ if(nsems > SEMMSL_FAST) { sem_io = ipc_alloc(sizeof(ushort)*nsems); if(sem_io == NULL) { - sem_putref(sma); + ipc_rcu_putref(sma, ipc_rcu_free); return -ENOMEM; } } if (copy_from_user (sem_io, p, nsems*sizeof(ushort))) { - sem_putref(sma); + ipc_rcu_putref(sma, ipc_rcu_free); err = -EFAULT; goto out_free; } for (i = 0; i < nsems; i++) { if (sem_io[i] > SEMVMX) { - sem_putref(sma); + ipc_rcu_putref(sma, ipc_rcu_free); err = -ERANGE; goto out_free; } @@ -1431,9 +1486,9 @@ } /* - * This function handles some semctl commands which require the rw_mutex + * This function handles some semctl commands which require the rwsem * to be held in write mode. - * NOTE: no locks must be held, the rw_mutex is taken inside this function. + * NOTE: no locks must be held, the rwsem is taken inside this function. */ static int semctl_down(struct ipc_namespace *ns, int semid, int cmd, int version, void __user *p) @@ -1448,7 +1503,7 @@ return -EFAULT; } - down_write(&sem_ids(ns).rw_mutex); + down_write(&sem_ids(ns).rwsem); rcu_read_lock(); ipcp = ipcctl_pre_down_nolock(ns, &sem_ids(ns), semid, cmd, @@ -1487,7 +1542,7 @@ out_unlock1: rcu_read_unlock(); out_up: - up_write(&sem_ids(ns).rw_mutex); + up_write(&sem_ids(ns).rwsem); return err; } @@ -1629,7 +1684,7 @@ /* step 2: allocate new undo structure */ new = kzalloc(sizeof(struct sem_undo) + sizeof(short)*nsems, GFP_KERNEL); if (!new) { - sem_putref(sma); + ipc_rcu_putref(sma, ipc_rcu_free); return ERR_PTR(-ENOMEM); } @@ -1795,12 +1850,17 @@ error = perform_atomic_semop(sma, sops, nsops, un, task_tgid_vnr(current)); - if (error <= 0) { - if (alter && error == 0) + if (error == 0) { + /* If the operation was successful, then do + * the required updates. + */ + if (alter) do_smart_update(sma, sops, nsops, 1, &tasks); - - goto out_unlock_free; + else + set_semotime(sma, sops); } + if (error <= 0) + goto out_unlock_free; /* We need to sleep on this operation, so we put the current * task into the pending queue and go to sleep. @@ -2059,6 +2119,14 @@ struct sem_array *sma = it; time_t sem_otime; + /* + * The proc interface isn't aware of sem_lock(), it calls + * ipc_lock_object() directly (in sysvipc_find_ipc). + * In order to stay compatible with sem_lock(), we must wait until + * all simple semop() calls have left their critical regions. + */ + sem_wait_array(sma); + sem_otime = get_semotime(sma); return seq_printf(s, --- linux-3.11.0.orig/ipc/msg.c +++ linux-3.11.0/ipc/msg.c @@ -70,8 +70,6 @@ #define msg_ids(ns) ((ns)->ids[IPC_MSG_IDS]) -#define msg_unlock(msq) ipc_unlock(&(msq)->q_perm) - static void freeque(struct ipc_namespace *, struct kern_ipc_perm *); static int newque(struct ipc_namespace *, struct ipc_params *); #ifdef CONFIG_PROC_FS @@ -167,12 +165,21 @@ ipc_rmid(&msg_ids(ns), &s->q_perm); } +static void msg_rcu_free(struct rcu_head *head) +{ + struct ipc_rcu *p = container_of(head, struct ipc_rcu, rcu); + struct msg_queue *msq = ipc_rcu_to_struct(p); + + security_msg_queue_free(msq); + ipc_rcu_free(head); +} + /** * newque - Create a new msg queue * @ns: namespace * @params: ptr to the structure that contains the key and msgflg * - * Called with msg_ids.rw_mutex held (writer) + * Called with msg_ids.rwsem held (writer) */ static int newque(struct ipc_namespace *ns, struct ipc_params *params) { @@ -191,15 +198,14 @@ msq->q_perm.security = NULL; retval = security_msg_queue_alloc(msq); if (retval) { - ipc_rcu_putref(msq); + ipc_rcu_putref(msq, ipc_rcu_free); return retval; } /* ipc_addid() locks msq upon success. */ id = ipc_addid(&msg_ids(ns), &msq->q_perm, ns->msg_ctlmni); if (id < 0) { - security_msg_queue_free(msq); - ipc_rcu_putref(msq); + ipc_rcu_putref(msq, msg_rcu_free); return id; } @@ -259,8 +265,8 @@ * removes the message queue from message queue ID IDR, and cleans up all the * messages associated with this queue. * - * msg_ids.rw_mutex (writer) and the spinlock for this message queue are held - * before freeque() is called. msg_ids.rw_mutex remains locked on exit. + * msg_ids.rwsem (writer) and the spinlock for this message queue are held + * before freeque() is called. msg_ids.rwsem remains locked on exit. */ static void freeque(struct ipc_namespace *ns, struct kern_ipc_perm *ipcp) { @@ -270,19 +276,19 @@ expunge_all(msq, -EIDRM); ss_wakeup(&msq->q_senders, 1); msg_rmid(ns, msq); - msg_unlock(msq); + ipc_unlock_object(&msq->q_perm); + rcu_read_unlock(); list_for_each_entry_safe(msg, t, &msq->q_messages, m_list) { atomic_dec(&ns->msg_hdrs); free_msg(msg); } atomic_sub(msq->q_cbytes, &ns->msg_bytes); - security_msg_queue_free(msq); - ipc_rcu_putref(msq); + ipc_rcu_putref(msq, msg_rcu_free); } /* - * Called with msg_ids.rw_mutex and ipcp locked. + * Called with msg_ids.rwsem and ipcp locked. */ static inline int msg_security(struct kern_ipc_perm *ipcp, int msgflg) { @@ -386,9 +392,9 @@ } /* - * This function handles some msgctl commands which require the rw_mutex + * This function handles some msgctl commands which require the rwsem * to be held in write mode. - * NOTE: no locks must be held, the rw_mutex is taken inside this function. + * NOTE: no locks must be held, the rwsem is taken inside this function. */ static int msgctl_down(struct ipc_namespace *ns, int msqid, int cmd, struct msqid_ds __user *buf, int version) @@ -403,7 +409,7 @@ return -EFAULT; } - down_write(&msg_ids(ns).rw_mutex); + down_write(&msg_ids(ns).rwsem); rcu_read_lock(); ipcp = ipcctl_pre_down_nolock(ns, &msg_ids(ns), msqid, cmd, @@ -459,7 +465,7 @@ out_unlock1: rcu_read_unlock(); out_up: - up_write(&msg_ids(ns).rw_mutex); + up_write(&msg_ids(ns).rwsem); return err; } @@ -494,7 +500,7 @@ msginfo.msgmnb = ns->msg_ctlmnb; msginfo.msgssz = MSGSSZ; msginfo.msgseg = MSGSEG; - down_read(&msg_ids(ns).rw_mutex); + down_read(&msg_ids(ns).rwsem); if (cmd == MSG_INFO) { msginfo.msgpool = msg_ids(ns).in_use; msginfo.msgmap = atomic_read(&ns->msg_hdrs); @@ -505,7 +511,7 @@ msginfo.msgtql = MSGTQL; } max_id = ipc_get_maxid(&msg_ids(ns)); - up_read(&msg_ids(ns).rw_mutex); + up_read(&msg_ids(ns).rwsem); if (copy_to_user(buf, &msginfo, sizeof(struct msginfo))) return -EFAULT; return (max_id < 0) ? 0 : max_id; @@ -680,16 +686,24 @@ goto out_unlock1; } + ipc_lock_object(&msq->q_perm); + for (;;) { struct msg_sender s; err = -EACCES; if (ipcperms(ns, &msq->q_perm, S_IWUGO)) - goto out_unlock1; + goto out_unlock0; + + /* raced with RMID? */ + if (msq->q_perm.deleted) { + err = -EIDRM; + goto out_unlock0; + } err = security_msg_queue_msgsnd(msq, msg, msgflg); if (err) - goto out_unlock1; + goto out_unlock0; if (msgsz + msq->q_cbytes <= msq->q_qbytes && 1 + msq->q_qnum <= msq->q_qbytes) { @@ -699,10 +713,9 @@ /* queue full, wait: */ if (msgflg & IPC_NOWAIT) { err = -EAGAIN; - goto out_unlock1; + goto out_unlock0; } - ipc_lock_object(&msq->q_perm); ss_add(msq, &s); if (!ipc_rcu_getref(msq)) { @@ -717,7 +730,7 @@ rcu_read_lock(); ipc_lock_object(&msq->q_perm); - ipc_rcu_putref(msq); + ipc_rcu_putref(msq, ipc_rcu_free); if (msq->q_perm.deleted) { err = -EIDRM; goto out_unlock0; @@ -730,10 +743,7 @@ goto out_unlock0; } - ipc_unlock_object(&msq->q_perm); } - - ipc_lock_object(&msq->q_perm); msq->q_lspid = task_tgid_vnr(current); msq->q_stime = get_seconds(); @@ -897,6 +907,13 @@ goto out_unlock1; ipc_lock_object(&msq->q_perm); + + /* raced with RMID? */ + if (msq->q_perm.deleted) { + msg = ERR_PTR(-EIDRM); + goto out_unlock0; + } + msg = find_msg(msq, &msgtyp, mode); if (!IS_ERR(msg)) { /* --- linux-3.11.0.orig/ipc/util.h +++ linux-3.11.0/ipc/util.h @@ -47,6 +47,13 @@ static inline void shm_exit_ns(struct ipc_namespace *ns) { } #endif +struct ipc_rcu { + struct rcu_head rcu; + atomic_t refcount; +} ____cacheline_aligned_in_smp; + +#define ipc_rcu_to_struct(p) ((void *)(p+1)) + /* * Structure that holds the parameters needed by the ipc operations * (see after) @@ -94,10 +101,10 @@ #define ipcid_to_idx(id) ((id) % SEQ_MULTIPLIER) #define ipcid_to_seqx(id) ((id) / SEQ_MULTIPLIER) -/* must be called with ids->rw_mutex acquired for writing */ +/* must be called with ids->rwsem acquired for writing */ int ipc_addid(struct ipc_ids *, struct kern_ipc_perm *, int); -/* must be called with ids->rw_mutex acquired for reading */ +/* must be called with ids->rwsem acquired for reading */ int ipc_get_maxid(struct ipc_ids *); /* must be called with both locks acquired. */ @@ -120,7 +127,8 @@ */ void* ipc_rcu_alloc(int size); int ipc_rcu_getref(void *ptr); -void ipc_rcu_putref(void *ptr); +void ipc_rcu_putref(void *ptr, void (*func)(struct rcu_head *head)); +void ipc_rcu_free(struct rcu_head *head); struct kern_ipc_perm *ipc_lock(struct ipc_ids *, int); struct kern_ipc_perm *ipc_obtain_object(struct ipc_ids *ids, int id); @@ -131,9 +139,6 @@ struct kern_ipc_perm *ipcctl_pre_down_nolock(struct ipc_namespace *ns, struct ipc_ids *ids, int id, int cmd, struct ipc64_perm *perm, int extra_perm); -struct kern_ipc_perm *ipcctl_pre_down(struct ipc_namespace *ns, - struct ipc_ids *ids, int id, int cmd, - struct ipc64_perm *perm, int extra_perm); #ifndef CONFIG_ARCH_WANT_IPC_PARSE_VERSION /* On IA-64, we always use the "64-bit version" of the IPC structures. */ @@ -174,19 +179,12 @@ assert_spin_locked(&perm->lock); } -static inline void ipc_lock_by_ptr(struct kern_ipc_perm *perm) -{ - rcu_read_lock(); - ipc_lock_object(perm); -} - static inline void ipc_unlock(struct kern_ipc_perm *perm) { ipc_unlock_object(perm); rcu_read_unlock(); } -struct kern_ipc_perm *ipc_lock_check(struct ipc_ids *ids, int id); struct kern_ipc_perm *ipc_obtain_object_check(struct ipc_ids *ids, int id); int ipcget(struct ipc_namespace *ns, struct ipc_ids *ids, struct ipc_ops *ops, struct ipc_params *params); --- linux-3.11.0.orig/ipc/util.c +++ linux-3.11.0/ipc/util.c @@ -15,6 +15,14 @@ * Jun 2006 - namespaces ssupport * OpenVZ, SWsoft Inc. * Pavel Emelianov + * + * General sysv ipc locking scheme: + * when doing ipc id lookups, take the ids->rwsem + * rcu_read_lock() + * obtain the ipc object (kern_ipc_perm) + * perform security, capabilities, auditing and permission checks, etc. + * acquire the ipc lock (kern_ipc_perm.lock) throught ipc_lock_object() + * perform data updates (ie: SET, RMID, LOCK/UNLOCK commands) */ #include @@ -119,7 +127,7 @@ void ipc_init_ids(struct ipc_ids *ids) { - init_rwsem(&ids->rw_mutex); + init_rwsem(&ids->rwsem); ids->in_use = 0; ids->seq = 0; @@ -174,7 +182,7 @@ * @ids: Identifier set * @key: The key to find * - * Requires ipc_ids.rw_mutex locked. + * Requires ipc_ids.rwsem locked. * Returns the LOCKED pointer to the ipc structure if found or NULL * if not. * If key is found ipc points to the owning ipc structure @@ -197,7 +205,8 @@ continue; } - ipc_lock_by_ptr(ipc); + rcu_read_lock(); + ipc_lock_object(ipc); return ipc; } @@ -208,7 +217,7 @@ * ipc_get_maxid - get the last assigned id * @ids: IPC identifier set * - * Called with ipc_ids.rw_mutex held. + * Called with ipc_ids.rwsem held. */ int ipc_get_maxid(struct ipc_ids *ids) @@ -246,7 +255,7 @@ * is returned. The 'new' entry is returned in a locked state on success. * On failure the entry is not locked and a negative err-code is returned. * - * Called with writer ipc_ids.rw_mutex held. + * Called with writer ipc_ids.rwsem held. */ int ipc_addid(struct ipc_ids* ids, struct kern_ipc_perm* new, int size) { @@ -312,9 +321,9 @@ { int err; - down_write(&ids->rw_mutex); + down_write(&ids->rwsem); err = ops->getnew(ns, params); - up_write(&ids->rw_mutex); + up_write(&ids->rwsem); return err; } @@ -331,7 +340,7 @@ * * On success, the IPC id is returned. * - * It is called with ipc_ids.rw_mutex and ipcp->lock held. + * It is called with ipc_ids.rwsem and ipcp->lock held. */ static int ipc_check_perms(struct ipc_namespace *ns, struct kern_ipc_perm *ipcp, @@ -376,7 +385,7 @@ * Take the lock as a writer since we are potentially going to add * a new entry + read locks are not "upgradable" */ - down_write(&ids->rw_mutex); + down_write(&ids->rwsem); ipcp = ipc_findkey(ids, params->key); if (ipcp == NULL) { /* key not used */ @@ -402,7 +411,7 @@ } ipc_unlock(ipcp); } - up_write(&ids->rw_mutex); + up_write(&ids->rwsem); return err; } @@ -413,7 +422,7 @@ * @ids: IPC identifier set * @ipcp: ipc perm structure containing the identifier to remove * - * ipc_ids.rw_mutex (as a writer) and the spinlock for this ID are held + * ipc_ids.rwsem (as a writer) and the spinlock for this ID are held * before this function is called, and remain locked on the exit. */ @@ -465,11 +474,6 @@ kfree(ptr); } -struct ipc_rcu { - struct rcu_head rcu; - atomic_t refcount; -} ____cacheline_aligned_in_smp; - /** * ipc_rcu_alloc - allocate ipc and rcu space * @size: size desired @@ -496,27 +500,24 @@ return atomic_inc_not_zero(&p->refcount); } -/** - * ipc_schedule_free - free ipc + rcu space - * @head: RCU callback structure for queued work - */ -static void ipc_schedule_free(struct rcu_head *head) -{ - vfree(container_of(head, struct ipc_rcu, rcu)); -} - -void ipc_rcu_putref(void *ptr) +void ipc_rcu_putref(void *ptr, void (*func)(struct rcu_head *head)) { struct ipc_rcu *p = ((struct ipc_rcu *)ptr) - 1; if (!atomic_dec_and_test(&p->refcount)) return; - if (is_vmalloc_addr(ptr)) { - call_rcu(&p->rcu, ipc_schedule_free); - } else { - kfree_rcu(p, rcu); - } + call_rcu(&p->rcu, func); +} + +void ipc_rcu_free(struct rcu_head *head) +{ + struct ipc_rcu *p = container_of(head, struct ipc_rcu, rcu); + + if (is_vmalloc_addr(p)) + vfree(p); + else + kfree(p); } /** @@ -621,7 +622,7 @@ } /** - * ipc_lock - Lock an ipc structure without rw_mutex held + * ipc_lock - Lock an ipc structure without rwsem held * @ids: IPC identifier set * @id: ipc id to look for * @@ -677,22 +678,6 @@ return out; } -struct kern_ipc_perm *ipc_lock_check(struct ipc_ids *ids, int id) -{ - struct kern_ipc_perm *out; - - out = ipc_lock(ids, id); - if (IS_ERR(out)) - return out; - - if (ipc_checkid(out, id)) { - ipc_unlock(out); - return ERR_PTR(-EIDRM); - } - - return out; -} - /** * ipcget - Common sys_*get() code * @ns : namsepace @@ -733,7 +718,7 @@ } /** - * ipcctl_pre_down - retrieve an ipc and check permissions for some IPC_XXX cmd + * ipcctl_pre_down_nolock - retrieve an ipc and check permissions for some IPC_XXX cmd * @ns: the ipc namespace * @ids: the table of ids where to look for the ipc * @id: the id of the ipc to retrieve @@ -746,29 +731,13 @@ * It must be called without any lock held and * - retrieves the ipc with the given id in the given table. * - performs some audit and permission check, depending on the given cmd - * - returns the ipc with the ipc lock held in case of success - * or an err-code without any lock held otherwise. + * - returns a pointer to the ipc object or otherwise, the corresponding error. * - * Call holding the both the rw_mutex and the rcu read lock. + * Call holding the both the rwsem and the rcu read lock. */ -struct kern_ipc_perm *ipcctl_pre_down(struct ipc_namespace *ns, - struct ipc_ids *ids, int id, int cmd, - struct ipc64_perm *perm, int extra_perm) -{ - struct kern_ipc_perm *ipcp; - - ipcp = ipcctl_pre_down_nolock(ns, ids, id, cmd, perm, extra_perm); - if (IS_ERR(ipcp)) - goto out; - - spin_lock(&ipcp->lock); -out: - return ipcp; -} - struct kern_ipc_perm *ipcctl_pre_down_nolock(struct ipc_namespace *ns, - struct ipc_ids *ids, int id, int cmd, - struct ipc64_perm *perm, int extra_perm) + struct ipc_ids *ids, int id, int cmd, + struct ipc64_perm *perm, int extra_perm) { kuid_t euid; int err = -EPERM; @@ -846,7 +815,8 @@ ipc = idr_find(&ids->ipcs_idr, pos); if (ipc != NULL) { *new_pos = pos + 1; - ipc_lock_by_ptr(ipc); + rcu_read_lock(); + ipc_lock_object(ipc); return ipc; } } @@ -884,7 +854,7 @@ * Take the lock - this will be released by the corresponding * call to stop(). */ - down_read(&ids->rw_mutex); + down_read(&ids->rwsem); /* pos < 0 is invalid */ if (*pos < 0) @@ -911,7 +881,7 @@ ids = &iter->ns->ids[iface->ids]; /* Release the lock we took in start() */ - up_read(&ids->rw_mutex); + up_read(&ids->rwsem); } static int sysvipc_proc_show(struct seq_file *s, void *it) --- linux-3.11.0.orig/firmware/WHENCE +++ linux-3.11.0/firmware/WHENCE @@ -629,16 +629,6 @@ -------------------------------------------------------------------------- -Driver: MYRI_SBUS - MyriCOM Gigabit Ethernet - -File: myricom/lanai.bin - -Licence: Unknown - -Found in hex form in kernel source. - --------------------------------------------------------------------------- - Driver: bnx2x: Broadcom Everest File: bnx2x/bnx2x-e1-6.2.9.0.fw --- linux-3.11.0.orig/firmware/Makefile +++ linux-3.11.0/firmware/Makefile @@ -20,80 +20,32 @@ # accurate. In the latter case it doesn't matter -- it'll use $(fw-shipped-all). # But be aware that the config file might not be included at all. -ifdef CONFIG_ACENIC_OMIT_TIGON_I -acenic-objs := acenic/tg2.bin -fw-shipped- += acenic/tg1.bin -else -acenic-objs := acenic/tg1.bin acenic/tg2.bin -endif -fw-shipped-$(CONFIG_ACENIC) += $(acenic-objs) -fw-shipped-$(CONFIG_ADAPTEC_STARFIRE) += adaptec/starfire_rx.bin \ - adaptec/starfire_tx.bin -fw-shipped-$(CONFIG_ATARI_DSP56K) += dsp56k/bootstrap.bin -fw-shipped-$(CONFIG_ATM_AMBASSADOR) += atmsar11.fw -fw-shipped-$(CONFIG_BNX2X) += bnx2x/bnx2x-e1-6.2.9.0.fw \ - bnx2x/bnx2x-e1h-6.2.9.0.fw \ - bnx2x/bnx2x-e2-6.2.9.0.fw -fw-shipped-$(CONFIG_BNX2) += bnx2/bnx2-mips-09-6.2.1a.fw \ - bnx2/bnx2-rv2p-09-6.0.17.fw \ - bnx2/bnx2-rv2p-09ax-6.0.17.fw \ - bnx2/bnx2-mips-06-6.2.1.fw \ - bnx2/bnx2-rv2p-06-6.0.15.fw -fw-shipped-$(CONFIG_CASSINI) += sun/cassini.bin -fw-shipped-$(CONFIG_CHELSIO_T3) += cxgb3/t3b_psram-1.1.0.bin \ - cxgb3/t3c_psram-1.1.0.bin \ - cxgb3/ael2005_opt_edc.bin \ - cxgb3/ael2005_twx_edc.bin \ - cxgb3/ael2020_twx_edc.bin -fw-shipped-$(CONFIG_DRM_MGA) += matrox/g200_warp.fw matrox/g400_warp.fw -fw-shipped-$(CONFIG_DRM_R128) += r128/r128_cce.bin -fw-shipped-$(CONFIG_DRM_RADEON) += radeon/R100_cp.bin radeon/R200_cp.bin \ - radeon/R300_cp.bin radeon/R420_cp.bin \ - radeon/RS690_cp.bin radeon/RS600_cp.bin \ - radeon/R520_cp.bin \ - radeon/R600_pfp.bin radeon/R600_me.bin \ - radeon/RV610_pfp.bin radeon/RV610_me.bin \ - radeon/RV630_pfp.bin radeon/RV630_me.bin \ - radeon/RV620_pfp.bin radeon/RV620_me.bin \ - radeon/RV635_pfp.bin radeon/RV635_me.bin \ - radeon/RV670_pfp.bin radeon/RV670_me.bin \ - radeon/RS780_pfp.bin radeon/RS780_me.bin \ - radeon/RV770_pfp.bin radeon/RV770_me.bin \ - radeon/RV730_pfp.bin radeon/RV730_me.bin \ - radeon/RV710_pfp.bin radeon/RV710_me.bin -fw-shipped-$(CONFIG_DVB_AV7110) += av7110/bootcode.bin -fw-shipped-$(CONFIG_DVB_TTUSB_BUDGET) += ttusb-budget/dspbootcode.bin +fw-shipped-$(CONFIG_BNX2X) += bnx2x/bnx2x-e1-7.8.17.0.fw \ + bnx2x/bnx2x-e1h-7.8.17.0.fw \ + bnx2x/bnx2x-e2-7.8.17.0.fw +fw-shipped-$(CONFIG_BNX2) += bnx2/bnx2-mips-09-6.2.1b.fw \ + bnx2/bnx2-rv2p-06-6.0.15.fw \ + bnx2/bnx2-mips-06-6.2.3.fw \ + bnx2/bnx2-rv2p-09-6.0.17.fw \ + bnx2/bnx2-rv2p-09ax-6.0.17.fw fw-shipped-$(CONFIG_E100) += e100/d101m_ucode.bin e100/d101s_ucode.bin \ e100/d102e_ucode.bin -fw-shipped-$(CONFIG_MYRI_SBUS) += myricom/lanai.bin -fw-shipped-$(CONFIG_PCMCIA_PCNET) += cis/LA-PCM.cis cis/PCMLM28.cis \ - cis/DP83903.cis cis/NE2K.cis \ - cis/tamarack.cis cis/PE-200.cis \ - cis/PE520.cis -fw-shipped-$(CONFIG_PCMCIA_3C589) += cis/3CXEM556.cis -fw-shipped-$(CONFIG_PCMCIA_3C574) += cis/3CCFEM556.cis -fw-shipped-$(CONFIG_SERIAL_8250_CS) += cis/MT5634ZLX.cis cis/RS-COM-2P.cis \ - cis/COMpad2.cis cis/COMpad4.cis \ - cis/SW_555_SER.cis cis/SW_7xx_SER.cis \ - cis/SW_8xx_SER.cis -fw-shipped-$(CONFIG_PCMCIA_SMC91C92) += ositech/Xilinx7OD.bin -fw-shipped-$(CONFIG_SCSI_ADVANSYS) += advansys/mcode.bin advansys/38C1600.bin \ - advansys/3550.bin advansys/38C0800.bin +fw-shipped-$(CONFIG_PCMCIA_PCNET) += + +fw-shipped-$(CONFIG_PCMCIA_3C589) += +fw-shipped-$(CONFIG_PCMCIA_3C574) += +fw-shipped-$(CONFIG_SERIAL_8250_CS) += + fw-shipped-$(CONFIG_SCSI_QLOGIC_1280) += qlogic/1040.bin qlogic/1280.bin \ qlogic/12160.bin fw-shipped-$(CONFIG_SCSI_QLOGICPTI) += qlogic/isp1000.bin fw-shipped-$(CONFIG_INFINIBAND_QIB) += qlogic/sd7220.fw fw-shipped-$(CONFIG_SND_KORG1212) += korg/k1212.dsp -fw-shipped-$(CONFIG_SND_MAESTRO3) += ess/maestro3_assp_kernel.fw \ - ess/maestro3_assp_minisrc.fw fw-shipped-$(CONFIG_SND_SB16_CSP) += sb16/mulaw_main.csp sb16/alaw_main.csp \ sb16/ima_adpcm_init.csp \ sb16/ima_adpcm_playback.csp \ sb16/ima_adpcm_capture.csp -fw-shipped-$(CONFIG_SND_YMFPCI) += yamaha/ds1_ctrl.fw yamaha/ds1_dsp.fw \ - yamaha/ds1e_ctrl.fw fw-shipped-$(CONFIG_SND_WAVEFRONT) += yamaha/yss225_registers.bin -fw-shipped-$(CONFIG_TEHUTI) += tehuti/bdx.bin fw-shipped-$(CONFIG_TIGON3) += tigon/tg3.bin tigon/tg3_tso.bin \ tigon/tg3_tso5.bin fw-shipped-$(CONFIG_TYPHOON) += 3com/typhoon.bin @@ -101,40 +53,8 @@ emi26/bitstream.fw fw-shipped-$(CONFIG_USB_EMI62) += emi62/loader.fw emi62/bitstream.fw \ emi62/spdif.fw emi62/midi.fw -fw-shipped-$(CONFIG_USB_KAWETH) += kaweth/new_code.bin kaweth/trigger_code.bin \ - kaweth/new_code_fix.bin \ - kaweth/trigger_code_fix.bin -ifdef CONFIG_FIRMWARE_IN_KERNEL -fw-shipped-$(CONFIG_USB_SERIAL_KEYSPAN_MPR) += keyspan/mpr.fw -fw-shipped-$(CONFIG_USB_SERIAL_KEYSPAN_USA18X) += keyspan/usa18x.fw -fw-shipped-$(CONFIG_USB_SERIAL_KEYSPAN_USA19) += keyspan/usa19.fw -fw-shipped-$(CONFIG_USB_SERIAL_KEYSPAN_USA19QI) += keyspan/usa19qi.fw -fw-shipped-$(CONFIG_USB_SERIAL_KEYSPAN_USA19QW) += keyspan/usa19qw.fw -fw-shipped-$(CONFIG_USB_SERIAL_KEYSPAN_USA19W) += keyspan/usa19w.fw -fw-shipped-$(CONFIG_USB_SERIAL_KEYSPAN_USA28) += keyspan/usa28.fw -fw-shipped-$(CONFIG_USB_SERIAL_KEYSPAN_USA28XA) += keyspan/usa28xa.fw -fw-shipped-$(CONFIG_USB_SERIAL_KEYSPAN_USA28XB) += keyspan/usa28xb.fw -fw-shipped-$(CONFIG_USB_SERIAL_KEYSPAN_USA28X) += keyspan/usa28x.fw -fw-shipped-$(CONFIG_USB_SERIAL_KEYSPAN_USA49W) += keyspan/usa49w.fw -fw-shipped-$(CONFIG_USB_SERIAL_KEYSPAN_USA49WLC) += keyspan/usa49wlc.fw -else -fw-shipped- += keyspan/mpr.fw keyspan/usa18x.fw keyspan/usa19.fw \ - keyspan/usa19qi.fw keyspan/usa19qw.fw keyspan/usa19w.fw \ - keyspan/usa28.fw keyspan/usa28xa.fw keyspan/usa28xb.fw \ - keyspan/usa28x.fw keyspan/usa49w.fw keyspan/usa49wlc.fw -endif -fw-shipped-$(CONFIG_USB_SERIAL_TI) += ti_3410.fw ti_5052.fw \ - mts_cdma.fw mts_gsm.fw mts_edge.fw -fw-shipped-$(CONFIG_USB_SERIAL_EDGEPORT) += edgeport/boot.fw edgeport/boot2.fw \ - edgeport/down.fw edgeport/down2.fw -fw-shipped-$(CONFIG_USB_SERIAL_EDGEPORT_TI) += edgeport/down3.bin fw-shipped-$(CONFIG_USB_SERIAL_WHITEHEAT) += whiteheat_loader.fw whiteheat.fw \ # whiteheat_loader_debug.fw -fw-shipped-$(CONFIG_USB_SERIAL_KEYSPAN_PDA) += keyspan_pda/keyspan_pda.fw -fw-shipped-$(CONFIG_USB_SERIAL_XIRCOM) += keyspan_pda/xircom_pgs.fw -fw-shipped-$(CONFIG_USB_VICAM) += vicam/firmware.fw -fw-shipped-$(CONFIG_VIDEO_CPIA2) += cpia2/stv0672_vp4.bin -fw-shipped-$(CONFIG_YAM) += yam/1200.bin yam/9600.bin fw-shipped-all := $(fw-shipped-y) $(fw-shipped-m) $(fw-shipped-) --- linux-3.11.0.orig/firmware/bnx2x/bnx2x-e1-7.8.17.0.fw.ihex +++ linux-3.11.0/firmware/bnx2x/bnx2x-e1-7.8.17.0.fw.ihex @@ -0,0 +1,10227 @@ +:100000000000164800000068000005D8000016B87F +:10001000000031CC00001C980000006C00004E680D +:100020000000825400004ED80000009C0000D13037 +:10003000000095340000D1D000000088000167085E +:1000400000004294000167980000008C0001AA3073 +:100050000000C2600001AAC0000011C400026D28A7 +:100060000000000400027EF0020600DC0000000137 +:100070000306100002000000010600D80000000086 +:100080000306020000030200020600DC000000007C +:1000900002060068000000B80206007800000114A3 +:1000A000010600B800000000010600C800000000C2 +:1000B0000206006C000000B80206007C000001147B +:1000C000010600BC00000000010600CC000000009A +:1000D000020D004400000032030D004C0004020336 +:1000E000040D005C00000004030D008C00110207E9 +:1000F000020D015C00000001030D01640002021802 +:10010000020D020400000001030D020C0003021A9C +:10011000030D02200002021D040D028000000012E7 +:10012000030D03000018021F040D03600000000C03 +:10013000040D400000000A00030D0004000F023708 +:10014000020D01140000000D020D01180000002D29 +:100150000310100000030246021010100000026499 +:10016000071011000010024908101140000000089B +:100170000710116000100259081011A000000018AB +:1001800007101800020002690210101000000000A1 +:1001900004104C0000000100021040280000001074 +:1001A0000210404400003FFF0210405800280000A9 +:1001B000021040840084924A02104058000000005F +:1001C000030C200800030469030C201C0004046CC9 +:1001D000030C203800110470040C207C0000004F38 +:1001E000030C21B800110481040C21FC0000000F55 +:1001F000030C223800040492010C22480000000085 +:10020000010C224C00000000010C225000000000F4 +:10021000010C225400000000010C225800000000D4 +:10022000010C225C00000000010C226000000000B4 +:10023000010C226400000000010C22680000000094 +:10024000010C226C00000000010C22700000000074 +:10025000010C227400000000010C22780000000054 +:10026000010C227C00000000020C24BC00000001F4 +:100270000A00000100000001020C2000000003E859 +:100280000A00000100000002020C20000000000A29 +:100290000A00000100000004020C20000000000120 +:1002A0000520040000850000062007800010049649 +:1002B000042200000000160004228000000000401C +:1002C00004223BD000000008042248000000000681 +:1002D0000322481800040498042248280000000C57 +:1002E000032248580004049C042248680000000CC3 +:1002F00003224898000404A0042248A80000000C2F +:10030000032248D8000404A4042248E80000000C9A +:1003100003224918000404A8042249280000000C04 +:1003200003224958000404AC042249680000000C70 +:1003300003224998000404B0042249A80000000CDC +:10034000032249D8000404B4042249E80000000C48 +:1003500003224A18000404B804224A280000000CB2 +:1003600003224A58000404BC04224A680000000C1E +:1003700003224A98000404C004224AA80000000C8A +:1003800003224AD8000404C404224AE80000000CF6 +:1003900003224B18000404C804224B280000000C60 +:1003A00003224B58000404CC04224B680000000CCC +:1003B00003224B98000404D004224BA80000000C38 +:1003C00003224BD8000404D404224BE80000000CA4 +:1003D00003224C18000404D804224C280000000C0E +:1003E00003224C58000404DC04224C680000000C7A +:1003F00003224C98000404E004224CA80000000CE6 +:1004000003224CD8000404E404224CE80000000C51 +:1004100003224D18000404E804224D280000000CBB +:1004200003224D58000404EC04224D680000000C27 +:1004300003224D98000404F004224DA80000000C93 +:1004400003224DD8000404F404224DE80000000CFF +:1004500003224E18000404F804224E280000000C69 +:1004600003224E58000404FC04224E680000000CD5 +:1004700003224E980004050004224EA80000000C40 +:1004800003224ED80004050404224EE80000000CAC +:1004900003224F180004050804224F280000000C16 +:1004A00003224F580004050C04224F680000000C82 +:1004B00003224F980004051004224FA80000000CEE +:1004C00003224FD80004051404224FE80000000660 +:1004D0000322519800040518022380000000001038 +:1004E00002238040000000120223808000000030C0 +:1004F000022380C00000000E022383800007A12099 +:10050000022383C0000001F402238BC0000000011D +:100510000A00000200000001022383000007A1205E +:1005200002238340000001F40A00000200000002E0 +:10053000022383000000138802238340000000058B +:100540000A000002000000040223830000000138BA +:10055000022383400000000005240000334D00000A +:10056000052480000F430CD406249CC06ACE051CD1 +:100570000120000000000000012000040000000035 +:1005800001200008000000000120000C0000000015 +:1005900001200010000000000120001400000000F5 +:1005A00003200020001A051E032000A400020538C5 +:1005B000022002240000000002200234000000009B +:1005C0000220024C00000000022002E40000FFFFB5 +:1005D000082020000000080004221400000000028F +:1005E00004221490000000300422390000000010A2 +:1005F0000422510800000002042251A80000000655 +:1006000004221408000000020422155000000030EB +:1006100004223940000000100422511000000002A2 +:10062000042251C00000000604102400000000E075 +:100630000310201C0002053A021020C00000000137 +:10064000031020040002053C02170008000000020D +:100650000217002C00000003031700380002053EBB +:100660000317004400060540031700600005054617 +:10067000031700780002054B021700040000000F6A +:100680000410806800000004021080000000108048 +:1006900004108040000000020410802800000002C6 +:1006A0000210803800000010031080400002054D49 +:1006B00002108050000000000210810000000000C5 +:1006C000041081200000000202108008000002B522 +:1006D0000210801000000000021081080001FFFFDE +:1006E000041082000000004A041081400000000253 +:1006F0000210800000001A80041090000000002406 +:10070000041091200000004A041093700000004A79 +:10071000041095C00000004A021080040000108000 +:100720000410804800000002041080300000000225 +:100730000210803C00000010031080480002054FAA +:10074000021080540000000002108104000000002C +:1007500004108128000000020210800C000002B585 +:1007600002108014000000000210810C0001FFFF45 +:10077000041084000000004A0410814800000002B8 +:100780000210800400001A800410909000000024E1 +:10079000041092480000004A041094980000004A97 +:1007A000041096E80000004A0200A468000AFFDC7A +:1007B0000200A280000000010300A2940004055181 +:1007C0000200A4FCFF000000030100B40002055574 +:1007D000020100DC000000010301010000020557D6 +:1007E0000201007C003000000201008400000028AB +:1007F0000201008C00000000020101300000000432 +:10080000040101380000001102010328000000006B +:100810000201055400000030020100C40000000184 +:10082000020100CC00000001020100F800000001FC +:10083000020100F000000001020100800030000011 +:100840000201008800000028020100900000000062 +:1008500002010134000000040401017C00000011C9 +:100860000201032C000000000201056400000030BA +:10087000020100C800000001020100D000000001D8 +:10088000020100FC00000001020100F40000000170 +:1008900002140000000000010214000C000000011E +:1008A00003140040000205590214000C000000006F +:1008B00002140000000000000214006C00000000A0 +:1008C00002140004000000010214003000000001C6 +:1008D00002140004000000000214005C000000008C +:1008E000021400080000000102140034000000019E +:1008F0000214000800000000021400600000000064 +:10090000030400040012055B030400540003056D9A +:100910000204007000000004030400780004057065 +:1009200004040088000000050304009C0003057413 +:10093000040400A800000004030400B800050577C3 +:10094000040400CC00000004030400DC0004057C67 +:10095000040400EC00000004010401240000000075 +:1009600001040128000000000104012C0000000027 +:100970000104013000000000020401340000000FF7 +:1009800003120490002205800212052000000002DC +:1009900002120388000000640212039000000008A5 +:1009A0000312039C000305A2021203BC0000000412 +:1009B000021203C400000004021203D00000000071 +:1009C000021203DC000000000212036C00000001B0 +:1009D000021203680000003F031201BC003C05A5A1 +:1009E000031202B0000205E103120324000205E332 +:1009F000021201B00000000107103800000505E5F3 +:100A000007103C00000505EA07103C20000505EF33 +:100A100003168030000805F402168054000000021E +:100A200003168060000505FC0416807400000007B2 +:100A300003168090000206010316809C0005060341 +:100A4000041680B000000007031680CC00080608DA +:100A5000021680F000000007041680F40000000C6D +:100A60000316812400040610041681340000000CD3 +:100A700003168164003B0614041682500000000433 +:100A8000031682600002064F041682680000000808 +:100A90000316828800080651041682A80000000A86 +:100AA00002168804000000040316880C0010065982 +:100AB000021680EC000000FF03040408001406691D +:100AC000030500440002067D030500500004067F74 +:100AD0000405006000000004030500900013068375 +:100AE00002050114000000010305011C0002069626 +:100AF00002050204000000010305020C0002069832 +:100B00000305021C0003069A040502400000000AC7 +:100B1000030502800020069D0405400000000D0032 +:100B200003050004001006BD020500E00000000EF1 +:100B3000020500E40000002E04164024000000021C +:100B400003164030000306CD02164044000000208A +:100B5000021640700000001C02164208000000014E +:100B6000021642100000000102164220000000019F +:100B70000216422800000001021642300000000167 +:100B80000216423800000001021642600000000117 +:100B90000A000001000000010216401C0003D09072 +:100BA0000A000001000000020216401C000009C4F7 +:100BB0000A000001000000040216401C0000009C16 +:100BC0000216400000000001021640D8000000019B +:100BD00003164008000306D0021642400000000041 +:100BE0000216424800000000081642700000000291 +:100BF0000216425000000000021642580000000099 +:100C0000081642800000000203042008000406D3F6 +:100C10000304201C000406D70404203800000080D0 +:100C200003042238000406DB01042248000000000F +:100C30000104224C000000000104225000000000CA +:100C400001042254000000000104225800000000AA +:100C50000104225C0000000001042260000000008A +:100C6000010422640000000001042268000000006A +:100C70000104226C0000000001042270000000004A +:100C8000010422740000000001042278000000002A +:100C90000104227C00000000020424BC00000001CA +:100CA0000A0000010000000102042000000003E827 +:100CB0000A00000100000002020420000000000AF7 +:100CC0000A000001000000040204200000000001EE +:100CD00005180400006A000006180760001406DF0B +:100CE000041A000000001600041A800000000040F2 +:100CF000031A08B0000206E1031A19C8000206E34D +:100D0000031A2FC0000406E5041A2FD000000006C5 +:100D1000031A2FE8000206E9031A300003F906EB74 +:100D2000041A3FE400000007031A487000040AE4B4 +:100D3000021B800000000034021B804000000018ED +:100D4000021B80800000000C021B80C000000020FD +:100D5000021B83800007A120021B83C0000001F456 +:100D6000021B8BC0000000010A000002000000010D +:100D7000021B83000007A120021B8340000001F436 +:100D80000A00000200000002021B8300000013881A +:100D9000021B8340000000050A000002000000045E +:100DA000021B830000000138021B8340000000008A +:100DB000051C00002D020000051C800034240B419E +:100DC000051D0000212A184A061D4D5056560AE8F6 +:100DD00001180000000000000118000400000000DD +:100DE00001180008000000000118000C00000000BD +:100DF000011800100000000001180014000000009D +:100E000003180020001A0AEA031800A400020B04C9 +:100E10000218022400000000021802340000000042 +:100E20000218024C00000000021802E4000000FF5B +:100E30000818100000000400041A08000000000256 +:100E4000041A082000000012041A09C0000000481B +:100E5000041A250000000010041A2580000000126A +:100E6000041A261000000012031A2FB000020B060D +:100E7000041A400000000006041A4030000000027E +:100E8000041A482000000002031A4C5000020B080C +:100E9000041A081000000002041A0868000000127A +:100EA000041A0AE000000048041A2540000000105F +:100EB000041A25C800000012041A26580000001267 +:100EC000031A2FB800020B0A041A4018000000068B +:100ED000041A403800000002041A482800000002EA +:100EE000031A4C5800020B0C020E004C000000329A +:100EF000030E005400040B0E040E006400000004F6 +:100F0000030E009400130B12020E014400000001B6 +:100F1000030E014C00020B25020E0204000000012A +:100F2000030E020C00020B27030E021C00040B2907 +:100F3000030E0280001B0B2D040E02EC00000017B4 +:100F4000040E200000000800030E000400110B48EE +:100F5000020E01100000000F020E01140000002F0D +:100F6000020C100000000028030C400800040B597C +:100F7000030C401C00040B5D030C403800020B61A5 +:100F8000040C40400000005E020C41B8000000016B +:100F9000040C41BC0000001F030C423800040B632A +:100FA000010C424800000000010C424C000000000F +:100FB000010C425000000000010C425400000000EF +:100FC000010C425800000000010C425C00000000CF +:100FD000010C426000000000010C426400000000AF +:100FE000010C426800000000010C426C000000008F +:100FF000010C427000000000010C4274000000006F +:10100000010C427800000000010C427C000000004E +:10101000010C428000000000020C44C000000001EE +:101020000A00000100000001020C4000000003E87B +:101030000A00000100000002020C40000000000A4B +:101040000A00000100000004020C40000000000142 +:1010500005300400009C00000630076800130B6791 +:10106000043200000000160004328000000000403E +:101070000332183000020B6903322E7000040B6B30 +:101080000432508000000008033250A000020B6FB1 +:10109000023380000000001A023380400000004E3E +:1010A0000233808000000010023380C00000002066 +:1010B000023383800007A120023383C0000001F4C3 +:1010C00002338BC0000000010A0000020000000192 +:1010D000023383000007A12002338340000001F4A3 +:1010E0000A0000020000000202338300000013889F +:1010F00002338340000000050A00000200000004E3 +:1011000002338300000001380233834000000000F6 +:101110000534000036E200000534800031DA0DB9F4 +:10112000053500002C721A300635644053780B7177 +:101130000130000000000000013000040000000049 +:1011400001300008000000000130000C0000000029 +:101150000130001000000000013000140000000009 +:1011600003300020001A0B73033000A400020B8D23 +:1011700002300224000000000230023400000000AF +:101180000230024C00000000023002E40000FFFFC9 +:10119000083020000000080004322DE000000002AA +:1011A00004324000000000D8043246C00000012094 +:1011B000043250C80000002404322DE80000000270 +:1011C00004324360000000D804324B40000001208C +:1011D000043251580000002402020058000000327E +:1011E0000302006000040B8F040200700000000482 +:1011F000030200A0000E0B93030200DC00070BA10A +:10120000020200FC000000060202012000000000B3 +:101210000202013400000002020201B000000001DD +:101220000202020C000000010302021400020BA8DB +:1012300002020404000000010302040C00020BAAD5 +:101240000302041C00040BAC03020480001F0BB05B +:10125000040204FC000000130402800000002000CF +:101260000302000400140BCF02020108000000C8B2 +:101270000202011800000002020201C40000000086 +:10128000020201CC00000000020201D400000002B2 +:10129000020201DC00000002020201E4000000FF83 +:1012A000020201EC000000FF0202010C000000C875 +:1012B0000202011C00000002020201C8000000003E +:1012C000020201D000000000020201D8000000026A +:1012D000020201E000000002020201E8000000FF3B +:1012E000020201F0000000FF0216100000000028BA +:1012F0000316600800030BE30316601C00040BE6F2 +:1013000003166038000D0BEA0416606C0000001331 +:10131000031660B800020BF7041660C00000003E20 +:10132000021661B800000001041661BC0000001F35 +:101330000316623800040BF9011662480000000031 +:101340000116624C0000000001166250000000000F +:1013500001166254000000000116625800000000EF +:101360000116625C000000000116626000000000CF +:1013700001166264000000000116626800000000AF +:101380000116626C0000000001166270000000008F +:10139000011662740000000001166278000000006F +:1013A0000116627C00000000021664BC000000010F +:1013B0000A0000010000000102166000000003E8BE +:1013C0000A00000100000002021660000000000A8E +:1013D0000A00000100000004021660000000000185 +:1013E00005280400008A00000628076800130BFD8A +:1013F000042A000000001600042A800000000040BB +:10140000032A250000020BFF032A296000040C01B7 +:10141000032A2F4800020C05032A336800020C0738 +:10142000032A392000020C09032A393000020C0B70 +:10143000032A3AC800020C0D042A3AD00000000624 +:10144000032A3B9800020C0F032A3C2000040C11D5 +:10145000022A3CD000000000022B800000000000A7 +:10146000022B804000000018022B80800000000C3E +:10147000022B80C000000066022B83800007A120A1 +:10148000022B83C0000001F4022B8BC0000000017E +:101490000A00000200000001022B83000007A120C7 +:1014A000022B8340000001F40A0000020000000249 +:1014B000022B830000001388022B834000000005EC +:1014C0000A00000200000004022B83000000013823 +:1014D000022B8340000000000A00000100000020F1 +:1014E000022A3CD400000000052C000036700000E9 +:1014F000052C800039BD0D9C052D00003ADB1C0C2D +:10150000052D800017512AC3062DAF704A120C1505 +:101510000128000000000000012800040000000075 +:1015200001280008000000000128000C0000000055 +:101530000128001000000000012800140000000035 +:1015400003280020001A0C17032800A400020C3105 +:1015500002280224000000000228023400000000DB +:101560000228024C00000000022802E40000FFFFF5 +:101570000828200000000800042A3910000000029A +:10158000042A393800000020042A3A3800000010EC +:10159000032A3AE800020C33032A3AF800100C350B +:1015A000042A3C3000000002042A5000000000021F +:1015B000042A501000000002042A502000000002FB +:1015C000042A503000000002022A504000000000AF +:1015D000042A50480000000E042A391800000002B6 +:1015E000042A39B800000020042A3A7800000010CC +:1015F000032A3AF000020C45032A3B3800100C473E +:10160000042A3C3800000002042A500800000002AE +:10161000042A501800000002042A5028000000028A +:10162000042A503800000002022A50440000000042 +:10163000042A50800000000E0400A00000000016E4 +:101640000300A06C00060C570400A08400000005F5 +:101650000200A0980FE000000400A09C000000140D +:101660000300A0EC00080C5D0400A22C00000004A4 +:101670000200A060000003070300A10C00060C6537 +:101680000400A124000000050200A1380FE00000C2 +:101690000400A13C000000140300A18C00080C6BA6 +:1016A0000400A23C000000040200A0640000030744 +:1016B000000000000000000000000000000000002A +:1016C000000000000000000000000000000000001A +:1016D000000000000000000000000000000000000A +:1016E0000000000000000005000500090009000DD1 +:1016F00000000000000000000000000000000000EA +:1017000000000000000000000000000000000000D9 +:10171000000D001B001B001C001C001D0000000031 +:1017200000000000000000000000000000000000B9 +:10173000000000000000000000000000001D002567 +:101740000000000000000000000000000000000099 +:101750000000000000000000000000000000000089 +:1017600000000000000000000025002B0000000029 +:101770000000000000000000000000000000000069 +:101780000000000000000000000000000000000059 +:1017900000000000002B00470000000000000000D7 +:1017A0000000000000000000000000000000000039 +:1017B0000000000000000000000000000000000029 +:1017C000004700AE00AE00B300B300B80000000058 +:1017D0000000000000000000000000000000000009 +:1017E00000000000000000000000000000000000F9 +:1017F00000000000000000000000000000000000E9 +:1018000000000000000000000000000000000000D8 +:10181000000000000000000000B800BC0000000054 +:1018200000000000000000000000000000000000B8 +:1018300000000000000000000000000000000000A8 +:101840000000000000BC00C3000000000000000019 +:101850000000000000000000000000000000000088 +:101860000000000000000000000000000000000078 +:1018700000C300C400C400D600D600E80000000089 +:101880000000000000000000000000000000000058 +:101890000000000000000000000000000000000048 +:1018A0000000000000000000000000000000000038 +:1018B0000000000000000000000000000000000028 +:1018C000000000000000000000E800EC0000000044 +:1018D0000000000000000000000000000000000008 +:1018E00000000000000000000000000000000000F8 +:1018F0000000000000EC00EF00EF00FA00FA010524 +:1019000000000000000000000000000000000000D7 +:1019100000000000000000000000000000000000C7 +:101920000105010B010B010F010F01130000000065 +:1019300000000000000000000000000000000000A7 +:101940000000000000000000000000000000000097 +:101950000000000000000000000000000000000087 +:101960000000000000000000000000000000000077 +:10197000000000000000000001130123000000002F +:101980000000000000000000000000000000000057 +:101990000000000000000000000000000000000047 +:1019A00000000000012301320000000000000000E0 +:1019B0000000000000000000000000000000000027 +:1019C0000000000000000000000000000000000017 +:1019D000013201350000000000000000000000009E +:1019E00000000000000000000000000000000000F7 +:1019F0000000000000000000000000000135014A66 +:101A000000000000000000000000000000000000D6 +:101A100000000000000000000000000000000000C6 +:101A20000000000000000000014A014B000000001F +:101A300000000000000000000000000000000000A6 +:101A40000000000000000000000000000000000096 +:101A500000000000014B0158015801590159015A79 +:101A60000000000000000000000000000000000076 +:101A70000000000000000000000000000000000066 +:101A8000015A016E016E01710171017400000000C4 +:101A90000000000000000000000000000000000046 +:101AA0000000000000000000000000000174018D33 +:101AB0000000000000000000000000000000000026 +:101AC0000000000000000000000000000000000016 +:101AD0000000000000000000018D01BA01BA01C53C +:101AE00001C501D00000000000000000000000005F +:101AF00000000000000000000000000000000000E6 +:101B00000000000001D001DD01DD01DE01DE01DFAA +:101B100000000000000000000000000000000000C5 +:101B200000000000000000000000000000000000B5 +:101B300001DF01E0000000000000000000000000E4 +:101B40000000000000000000000000000000000095 +:101B500000000000000000000000000001E001FDA6 +:101B60000000000000000000000000000000000075 +:101B70000000000000000000000000000000000065 +:101B8000000000000000000001FD02260226022ADB +:101B9000022A022E000000000000000000000000E9 +:101BA0000000000000000000000000000000000035 +:101BB00000000000022E024002400248024802508B +:101BC0000000000000000000000000000000000015 +:101BD0000000000000000000000000000000000005 +:101BE0000250025100000000000000000000000050 +:101BF00000000000000000000000000000000000E5 +:101C00000000000000000000000000000251026F10 +:101C100000000000000000000000000000000000C4 +:101C200000000000000000000000000000000000B4 +:101C30000000000000000000026F02A202A202AE3B +:101C400002AE02BA00000000000000000000000028 +:101C50000000000000000000000000000000000084 +:101C60000000000002BA02BB02BB02C202C202C9EB +:101C70000000000000000000000000000000000064 +:101C80000000000000000000000000000000000054 +:101C900000000000000000000000200000004000E4 +:101CA00000006000000080000000A0000000C000F4 +:101CB0000000E000000100000001200000014000E1 +:101CC00000016000000180000001A0000001C000D0 +:101CD0000001E000000200000002200000024000BD +:101CE00000026000000280000002A0000002C000AC +:101CF0000002E00000030000000320000003400099 +:101D000000036000000380000003A0000003C00087 +:101D10000003E00000040000000420000004400074 +:101D200000046000000480000004A0000004C00063 +:101D30000004E00000050000000520000005400050 +:101D400000056000000580000005A0000005C0003F +:101D50000005E0000006000000062000000640002C +:101D600000066000000680000006A0000006C0001B +:101D70000006E00000070000000720000007400008 +:101D800000076000000780000007A0000007C000F7 +:101D90000007E000000800000008200000084000E4 +:101DA00000086000000880000008A0000008C000D3 +:101DB0000008E000000900000009200000094000C0 +:101DC00000096000000980000009A0000009C000AF +:101DD0000009E000000A0000000A2000000A40009C +:101DE000000A6000000A8000000AA000000AC0008B +:101DF000000AE000000B0000000B2000000B400078 +:101E0000000B6000000B8000000BA000000BC00066 +:101E1000000BE000000C0000000C2000000C400053 +:101E2000000C6000000C8000000CA000000CC00042 +:101E3000000CE000000D0000000D2000000D40002F +:101E4000000D6000000D8000000DA000000DC0001E +:101E5000000DE000000E0000000E2000000E40000B +:101E6000000E6000000E8000000EA000000EC000FA +:101E7000000EE000000F0000000F2000000F4000E7 +:101E8000000F6000000F8000000FA000000FC000D6 +:101E9000000FE000001000000010200000104000C3 +:101EA00000106000001080000010A0000010C000B2 +:101EB0000010E0000011000000112000001140009F +:101EC00000116000001180000011A0000011C0008E +:101ED0000011E0000012000000122000001240007B +:101EE00000126000001280000012A0000012C0006A +:101EF0000012E00000130000001320000013400057 +:101F000000136000001380000013A0000013C00045 +:101F10000013E00000140000001420000014400032 +:101F200000146000001480000014A0000014C00021 +:101F30000014E0000015000000152000001540000E +:101F400000156000001580000015A0000015C000FD +:101F50000015E000001600000016200000164000EA +:101F600000166000001680000016A0000016C000D9 +:101F70000016E000001700000017200000174000C6 +:101F800000176000001780000017A0000017C000B5 +:101F90000017E000001800000018200000184000A2 +:101FA00000186000001880000018A0000018C00091 +:101FB0000018E0000019000000192000001940007E +:101FC00000196000001980000019A0000019C0006D +:101FD0000019E000001A0000001A2000001A40005A +:101FE000001A6000001A8000001AA000001AC00049 +:101FF000001AE000001B0000001B2000001B400036 +:10200000001B6000001B8000001BA000001BC00024 +:10201000001BE000001C0000001C2000001C400011 +:10202000001C6000001C8000001CA000001CC00000 +:10203000001CE000001D0000001D2000001D4000ED +:10204000001D6000001D8000001DA000001DC000DC +:10205000001DE000001E0000001E2000001E4000C9 +:10206000001E6000001E8000001EA000001EC000B8 +:10207000001EE000001F0000001F2000001F4000A5 +:10208000001F6000001F8000001FA000001FC00094 +:10209000001FE00000200000002020000020400081 +:1020A00000206000002080000020A0000020C00070 +:1020B0000020E0000021000000212000002140005D +:1020C00000216000002180000021A0000021C0004C +:1020D0000021E00000220000002220000022400039 +:1020E00000226000002280000022A0000022C00028 +:1020F0000022E00000230000002320000023400015 +:1021000000236000002380000023A0000023C00003 +:102110000023E000002400000024200000244000F0 +:1021200000246000002480000024A0000024C000DF +:102130000024E000002500000025200000254000CC +:1021400000256000002580000025A0000025C000BB +:102150000025E000002600000026200000264000A8 +:1021600000266000002680000026A0000026C00097 +:102170000026E00000270000002720000027400084 +:1021800000276000002780000027A0000027C00073 +:102190000027E00000280000002820000028400060 +:1021A00000286000002880000028A0000028C0004F +:1021B0000028E0000029000000292000002940003C +:1021C00000296000002980000029A0000029C0002B +:1021D0000029E000002A0000002A2000002A400018 +:1021E000002A6000002A8000002AA000002AC00007 +:1021F000002AE000002B0000002B2000002B4000F4 +:10220000002B6000002B8000002BA000002BC000E2 +:10221000002BE000002C0000002C2000002C4000CF +:10222000002C6000002C8000002CA000002CC000BE +:10223000002CE000002D0000002D2000002D4000AB +:10224000002D6000002D8000002DA000002DC0009A +:10225000002DE000002E0000002E2000002E400087 +:10226000002E6000002E8000002EA000002EC00076 +:10227000002EE000002F0000002F2000002F400063 +:10228000002F6000002F8000002FA000002FC00052 +:10229000002FE0000030000000302000003040003F +:1022A00000306000003080000030A0000030C0002E +:1022B0000030E0000031000000312000003140001B +:1022C00000316000003180000031A0000031C0000A +:1022D0000031E000003200000032200000324000F7 +:1022E00000326000003280000032A0000032C000E6 +:1022F0000032E000003300000033200000334000D3 +:1023000000336000003380000033A0000033C000C1 +:102310000033E000003400000034200000344000AE +:1023200000346000003480000034A0000034C0009D +:102330000034E0000035000000352000003540008A +:1023400000356000003580000035A0000035C00079 +:102350000035E00000360000003620000036400066 +:1023600000366000003680000036A0000036C00055 +:102370000036E00000370000003720000037400042 +:1023800000376000003780000037A0000037C00031 +:102390000037E0000038000000382000003840001E +:1023A00000386000003880000038A0000038C0000D +:1023B0000038E000003900000039200000394000FA +:1023C00000396000003980000039A0000039C000E9 +:1023D0000039E000003A0000003A2000003A4000D6 +:1023E000003A6000003A8000003AA000003AC000C5 +:1023F000003AE000003B0000003B2000003B4000B2 +:10240000003B6000003B8000003BA000003BC000A0 +:10241000003BE000003C0000003C2000003C40008D +:10242000003C6000003C8000003CA000003CC0007C +:10243000003CE000003D0000003D2000003D400069 +:10244000003D6000003D8000003DA000003DC00058 +:10245000003DE000003E0000003E2000003E400045 +:10246000003E6000003E8000003EA000003EC00034 +:10247000003EE000003F0000003F2000003F400021 +:10248000003F6000003F8000003FA000003FC00010 +:10249000003FE000003FE00100000000000001FFFD +:1024A0000000020000000001000000020000000027 +:1024B000000000080215002002150020081000008E +:1024C00000000033000000020000000000000005D2 +:1024D00000000005000000000000000000000002F5 +:1024E00000000003000000020000000100000004E2 +:1024F00000000002000000020000000100000002D5 +:102500000000002000000040000000400000000328 +:102510000000001800002000000040C000006180A2 +:10252000000082400000A3000000C3C00000E4805F +:102530000001054000012600000146C0000167803F +:10254000000188400001A9000001C9C00001EA8023 +:1025500000020B4000022C0000024CC000026D8003 +:1025600000028E400002AF000002CFC00002F080E7 +:102570000000114000000001000000010000000107 +:102580000000000100000001000000010000000147 +:102590000000000100000001000000010000000137 +:1025A0000000000100000001000000010000000127 +:1025B0000003D0000000003D00000001000D0000FD +:1025C000000700D000028140000B81680002022059 +:1025D00000010240000F025000010340000C000007 +:1025E000000800C000028140000B81680002022048 +:1025F0000001024000070250000202C0001000006B +:102600000008010000028180000B81A80002026026 +:1026100000018280000E8298000803800000000004 +:102620000000000000028000000B8028000200E093 +:10263000000101000000811000000118FFFFFFF3FE +:1026400001AFFFFF000000000000000000000000DC +:10265000000000000000000000000000FFFFFFF18C +:1026600000EFFFFF0000000000000000000000007D +:10267000000000000001000000000000FFFFFFF666 +:10268000005FFFFF000000000000000000000000ED +:10269000000000000002000000000000FFFFF40640 +:1026A0001CBFFFFF00000005000000000000001438 +:1026B000000000000004000000000000FFFFFFF227 +:1026C000004FFFFF000000000000000000000000BD +:1026D000000000000008000000000000FFFFFFFAFB +:1026E000002FFFFF000000000000000000000000BD +:1026F000000000000010000000000000FFFFFFF7D6 +:1027000001EFFFFF000000000000000000000000DB +:10271000000000000020000000000000FFFFFFF5A7 +:10272000002FFFFF0000000000000000000000007C +:10273000000000000040000000000000FFFFFFF369 +:10274000018FFFFF000000000000000000000000FB +:10275000000000000000000000000000FFFFFFF18B +:10276000010FFFFF0000000000000000000000005B +:10277000000000000001000000000000FFFFFFF665 +:10278000005FFFFF000000000000000000000000EC +:10279000000000000002000000000000FFFFF4063F +:1027A0001CBFFFFF00000005000000000000001437 +:1027B000000000000004000000000000FFFFFFF226 +:1027C000004FFFFF000000000000000000000000BC +:1027D000000000000008000000000000FFFFFFFAFA +:1027E000002FFFFF000000000000000000000000BC +:1027F000000000000010000000000000FFFFFFF7D5 +:1028000000EFFFFF000000000000000000000000DB +:10281000000000000020000000000000FFFFFFF5A6 +:10282000004FFFFF0000000000000000000000005B +:10283000000000000040000000000000FFFFFFFF5C +:1028400000CFFFFF0000000000000000000000CCEF +:10285000000000000000000000000000FFFFFFFF7C +:1028600000CFFFFF0000000000000000000000CCCF +:10287000000000000001000000000000FFFFFFFF5B +:1028800000CFFFFF0000000000000000000000CCAF +:10289000000000000002000000000000FFFFFFFF3A +:1028A00000CFFFFF0000000000000000000000CC8F +:1028B000000000000004000000000000FFFFFFFF18 +:1028C00000CFFFFF0000000000000000000000CC6F +:1028D000000000000008000000000000FFFFFFFFF4 +:1028E00000CFFFFF0000000000000000000000CC4F +:1028F000000000000010000000000000FFFFFFFFCC +:1029000000CFFFFF0000000000000000000000CC2E +:10291000000000000020000000000000FFFFFFFF9B +:1029200000CFFFFF0000000000000000000000CC0E +:10293000000000000040000000000000FFFFFFF367 +:10294000020FFFFF00000000000000000000000078 +:10295000000000000000000000000000FFFFFFF189 +:10296000010FFFFF00000000000000000000000059 +:10297000000000000001000000000000FFFFFFF663 +:10298000005FFFFF000000000000000000000000EA +:10299000000000000002000000000000FFFFF4063D +:1029A0001CBFFFFF00000005000000000000001435 +:1029B000000000000004000000000000FFFFFFF224 +:1029C000004FFFFF000000000000000000000000BA +:1029D000000000000008000000000000FFFFFF8A68 +:1029E000042FFFFF000000000000000000000000B6 +:1029F000000000000010000000000000FFFFFF9733 +:102A000005CFFFFF000000000000000000000000F4 +:102A1000000000000020000000000000FFFFFFF5A4 +:102A2000010FFFFF00000000000000000000000098 +:102A3000000000000040000000000000FFFFFFF366 +:102A4000000FFFFF00000000000000000000000079 +:102A5000000000000000000000000000FFFFFFF188 +:102A6000000FFFFF00000000000000000000000059 +:102A7000000000000001000000000000FFFFFFF662 +:102A8000005FFFFF000000000000000000000000E9 +:102A9000000000000002000000000000FFFFF4063C +:102AA0001CBFFFFF00000005000000000000001434 +:102AB000000000000004000000000000FFFFFFF223 +:102AC000004FFFFF000000000000000000000000B9 +:102AD000000000000008000000000000FFFFFFFAF7 +:102AE000002FFFFF000000000000000000000000B9 +:102AF000000000000010000000000000FFFFFF9732 +:102B0000040FFFFF000000000000000000000000B4 +:102B1000000000000020000000000000FFFFFFF5A3 +:102B2000000FFFFF00000000000000000000000098 +:102B3000000000000040000000000000FFFFFFFF59 +:102B400000CFFFFF0000000000000000000000CCEC +:102B5000000000000000000000000000FFFFFFFF79 +:102B600000CFFFFF0000000000000000000000CCCC +:102B7000000000000001000000000000FFFFFFFF58 +:102B800000CFFFFF0000000000000000000000CCAC +:102B9000000000000002000000000000FFFFFFFF37 +:102BA00000CFFFFF0000000000000000000000CC8C +:102BB000000000000004000000000000FFFFFFFF15 +:102BC00000CFFFFF0000000000000000000000CC6C +:102BD000000000000008000000000000FFFFFFFFF1 +:102BE00000CFFFFF0000000000000000000000CC4C +:102BF000000000000010000000000000FFFFFFFFC9 +:102C000000CFFFFF0000000000000000000000CC2B +:102C1000000000000020000000000000FFFFFFFF98 +:102C200000CFFFFF0000000000000000000000CC0B +:102C3000000000000040000000000000FFFFFFFF58 +:102C400000CFFFFF0000000000000000000000CCEB +:102C5000000000000000000000000000FFFFFFFF78 +:102C600000CFFFFF0000000000000000000000CCCB +:102C7000000000000001000000000000FFFFFFFF57 +:102C800000CFFFFF0000000000000000000000CCAB +:102C9000000000000002000000000000FFFFFFFF36 +:102CA00000CFFFFF0000000000000000000000CC8B +:102CB000000000000004000000000000FFFFFFFF14 +:102CC00000CFFFFF0000000000000000000000CC6B +:102CD000000000000008000000000000FFFFFFFFF0 +:102CE00000CFFFFF0000000000000000000000CC4B +:102CF000000000000010000000000000FFFFFFFFC8 +:102D000000CFFFFF0000000000000000000000CC2A +:102D1000000000000020000000000000FFFFFFFF97 +:102D200000CFFFFF0000000000000000000000CC0A +:102D3000000000000040000000000000FFFFFFFF57 +:102D400000CFFFFF0000000000000000000000CCEA +:102D5000000000000000000000000000FFFFFFFF77 +:102D600000CFFFFF0000000000000000000000CCCA +:102D7000000000000001000000000000FFFFFFFF56 +:102D800000CFFFFF0000000000000000000000CCAA +:102D9000000000000002000000000000FFFFFFFF35 +:102DA00000CFFFFF0000000000000000000000CC8A +:102DB000000000000004000000000000FFFFFFFF13 +:102DC00000CFFFFF0000000000000000000000CC6A +:102DD000000000000008000000000000FFFFFFFFEF +:102DE00000CFFFFF0000000000000000000000CC4A +:102DF000000000000010000000000000FFFFFFFFC7 +:102E000000CFFFFF0000000000000000000000CC29 +:102E1000000000000020000000000000FFFFFFFF96 +:102E200000CFFFFF0000000000000000000000CC09 +:102E300000000000004000000000000000000A1137 +:102E400000000A0000000A040000FFFF0000FFFF6E +:102E50000000FFFF0000FFFF000000200000002135 +:102E600000000022000000230000002400000025D4 +:102E700000000026000000270000002800000029B4 +:102E80000000002A0000002B0000002C0000002D94 +:102E90000000002E0000002F0000001000000001C4 +:102EA000000000010000000100000001000000011E +:102EB000000000010000000100000001000000010E +:102EC00000000001000000010000000100000001FE +:102ED00000000001000000010000000100000001EE +:102EE00007FFFFFF0000003F07FFFFFF0000000F8C +:102EF00000007FF800007FF80000FF1C0FFFFFFFBD +:102F00000000FF1C0FFFFFFF0000FF1C0FFFFFFF73 +:102F10000000FF1C0FFFFFFF0000FF1C0FFFFFFF63 +:102F20000000FF1C0FFFFFFF0000FF1C0FFFFFFF53 +:102F30000000FF1C0FFFFFFF0000FF1C0FFFFFFF43 +:102F40000000FF1C0FFFFFFF0000FF1C0FFFFFFF33 +:102F50000000FF1C0FFFFFFF0000FF1C0FFFFFFF23 +:102F60000000FF1C0FFFFFFF0000FF1C0FFFFFFF13 +:102F70000000FF1C0FFFFFFF0000FF1C0FFFFFFF03 +:102F80000000FF1C0FFFFFFF0000FF1C0FFFFFFFF3 +:102F90000000FF1C0FFFFFFF0000FF1C0FFFFFFFE3 +:102FA0000000FF1C0FFFFFFF0000FF1C0FFFFFFFD3 +:102FB0000000FF1C0FFFFFFF0000FF1C0FFFFFFFC3 +:102FC0000000FF1C0FFFFFFF0000FF1C0FFFFFFFB3 +:102FD0000000FF1C0FFFFFFF0000FF1C0FFFFFFFA3 +:102FE0000000FF1C0FFFFFFF0000FF1C0FFFFFFF93 +:102FF0000000FF1C0FFFFFFF0000FF1C0FFFFFFF83 +:103000000000FF1C0FFFFFFF0000FF1C0FFFFFFF72 +:103010000000FF1C0FFFFFFF0000FF1C0FFFFFFF62 +:103020000000FF1C0FFFFFFF0000FF1C0FFFFFFF52 +:103030000000FF1C0FFFFFFF0000FF1C0FFFFFFF42 +:103040000000FF1C0FFFFFFF0000FF1C0FFFFFFF32 +:103050000000FF1C0FFFFFFF0000FF1C0FFFFFFF22 +:103060000000FF1C0FFFFFFF0000FF1C0FFFFFFF12 +:103070000000FF1C0FFFFFFF0000FF1C0FFFFFFF02 +:103080000000FF1C0FFFFFFF0000FF1C0FFFFFFFF2 +:103090000000FF1C0FFFFFFF0000FF1C0FFFFFFFE2 +:1030A0000000FF1C0FFFFFFF0000FF1C0FFFFFFFD2 +:1030B0000000FF1C0FFFFFFF0000FF1C0FFFFFFFC2 +:1030C0000000FF1C0FFFFFFF0000FF1C0FFFFFFFB2 +:1030D0000000FF1C0FFFFFFF0000FF1C0FFFFFFFA2 +:1030E0000000FF1C0FFFFFFF0000FF1C0FFFFFFF92 +:1030F0000000FF1C0FFFFFFF0000FF0000000000AA +:103100000000FF0000000000000003120000350076 +:1031100000000001000000020000000300000000A9 +:103120000000000400000001000000000000000199 +:103130000000000400000000000000010000000387 +:10314000000000000000000100000004000000007A +:10315000000000010000000300000000000000016A +:103160000000000400000000000000040000000354 +:10317000000000000000000000003FFF000003FF0F +:10318000000000000000000100000001000000013C +:10319000007C100400000004000000000000000299 +:1031A00000000090000000900080009008100000D7 +:1031B0000000008A00000080000000810000008004 +:1031C00000000006000007D00000076C0000FFFFB1 +:1031D0000000FFFF0000FFFF0000FFFF071D291197 +:1031E00000000000009C042400000000000000011A +:1031F00000000001000000010000000100000001CB +:1032000000007FFF000000FF000000FF000000FF43 +:10321000000000FF000000FF000000FF000000FFB2 +:10322000000000FF0000003E000000000000003F22 +:103230000000003F0000003F000000000000003FD1 +:103240000000003F0000003F0000000F00000043AE +:10325000000000000000000600000000121700003F +:10326000221700003217000012150000221500007E +:1032700032150000021000000010000010100000C5 +:103280002010000030100000001000001214000098 +:10329000221400003214000000E38340FFFFFFFF10 +:1032A000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2E +:1032B000FFFFFFFFFFFFFFFFFFFFFFFFF0003000FA +:1032C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF0E +:1032D000FFFFFFFFFFFFFFFFFFFFFFFFFFFF3328A1 +:1032E000FFFF3338FFFFFFFFFFFFFFFFFFFFFFFF81 +:1032F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDE +:10330000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCD +:10331000FFFFFFFFFFFFFFFFFFFFFFFF00003C106D +:103320000000000800000000000000000000004055 +:103330000000180800000803000008030000004017 +:103340000000000300000803000008030000080359 +:103350000001000300000803000008030000000350 +:103360000000000300000003000000030000000351 +:103370000000000300000003000000030000000341 +:103380000000000300000003000000030000000331 +:103390000000000300000003000024030000002FD1 +:1033A00000000009000000190000018400000183F2 +:1033B00000000306000000190000000600000306DC +:1033C000000003060000030600000C860000030650 +:1033D00000000306000000060000000600000006D2 +:1033E00000000006000000060000000600000006C5 +:1033F00000000006000000060000000600000006B5 +:1034000000000006000000060000000600000006A4 +:103410000000030600000013000000060000100476 +:103420000000100400106440001064400000000020 +:10343000000000000000000000000000000020006C +:10344000000000000000000000000000000000007C +:10345000000020000000000000000000000000004C +:1034600000000000000020000000007C0000003D83 +:103470000000003F0000009C000000060000000566 +:103480000000000A000000050000014000000140AB +:103490000000000000000000000000C00000013F2C +:1034A00000007FFF0000004800000048000000000E +:1034B00000000000000000480000000400000004BC +:1034C00000000004000000040000000400000004EC +:1034D00000000004000000040000000400000009D7 +:1034E0000000000B0000000A0000000400000009BA +:1034F0000000000B0000000A0000000100000001B5 +:1035000000000001000000010000000100000001B7 +:1035100000000001000000010000000100000001A7 +:10352000000000010000000100000004000000098C +:103530000000000B0000000A000000010000000174 +:103540000000000100000001000000010000000177 +:103550000000000100000001000000010000000167 +:10356000000000010000000100000004000000094C +:103570000000000B0000000A000000000000000036 +:103580000000080000000200000001FF000004002D +:1035900000000000000000001E491E491E491E498F +:1035A0000E490E490E490E49FFFFFFFF00000000C3 +:1035B000FFFFFFFF00000000000025E40000800086 +:1035C000000000130FFF0FFF0000000000000000CC +:1035D0000FFF0FFF1000100010001000200020004F +:1035E000200020008000800080008000400040001B +:1035F0004000400000000000000000010101010146 +:10360000012001012001010101011001010101015D +:10361000012001012001010101011001200101012E +:10362000010110010101010101200101200101013D +:10363000010110010101010101200101000001232C +:1036400000000123000001230000012300000123EA +:1036500000000123000001230000012300000123DA +:1036600000000123000001230000012300000123CA +:1036700000000123000001230000012300000123BA +:1036800000000123000001230000012300000020AE +:1036900000000032000000070000000700000000EA +:1036A0000000000802150020021500200000003074 +:1036B000081000000000003300000030000000315E +:1036C00000000002000000050000000600000002EB +:1036D00000000002000000000000000500000002E1 +:1036E00000000002000000020000000100000006CF +:1036F0000000000100000002000000400000004047 +:103700000000002000000013000000200001000065 +:10371000000204C00003098000040E4000051300ED +:10372000000617C000071C80000821400009260081 +:10373000000A2AC0000B2F80000C3440000D390015 +:10374000000E3DC0000F42800010474000114C00A9 +:10375000001250C00013558000145A4000155F003D +:10376000001663C00017688000186D4000197200D1 +:10377000001A76C0001B7B80001C8040001D850065 +:10378000001E89C0001F8E800000934000000001D1 +:103790000000000100000001000000010000000125 +:1037A0000000000100000001000000010000000115 +:1037B0000000000100000001000000010000000105 +:1037C00000000001000000010000000100000008EE +:1037D0000000000C000000100000000100000001CB +:1037E00000000001000002110000020000000204BD +:1037F000000002190000FFFF0000FFFF0000FFFFB4 +:103800000000FFFF07FFFFFF0000003F07FFFFFF73 +:103810000000000F00007FF800007FF800000000AB +:10382000140AFF0000000000000000010020100149 +:1038300000000000010086000000010000000001FF +:1038400000000000000086020000000000000000F0 +:1038500000000000000086040000000000000000DE +:1038600000000000000086060000000000000000CC +:1038700000000000000086080000000000000000BA +:10388000000000000000860A0000000000000000A8 +:10389000000000000000860C000000000000000096 +:1038A000000000000000860E000000000000000084 +:1038B0000000000000008610000000000000000072 +:1038C0000000000000008612000000000000000060 +:1038D000000000000000861400000000000000004E +:1038E000000000000000861600000000000000003C +:1038F000000000000000861800000000000000002A +:10390000000000000000861A000000000000000017 +:10391000000000000000861C000000000000000005 +:10392000000000000000861E0000000000000000F3 +:1039300000000000000086200000000000000000E1 +:1039400000000000000086220000000000000000CF +:1039500000000000000086240000000000000000BD +:1039600000000000000086260000000000000000AB +:103970000000000000008628000000000000000099 +:10398000000000000000862A000000000000000087 +:10399000000000000000862C000000000000000075 +:1039A000000000000000862E000000000000000063 +:1039B0000000000000008630000000000000000051 +:1039C000000000000000863200000000000000003F +:1039D000000000000000863400000000000000002D +:1039E000000000000000863600000000000000001B +:1039F0000000000000008638000000000000000009 +:103A0000000000000000863A0000000000000000F6 +:103A1000000000000000863C0000000000000000E4 +:103A2000000000000000863E0000000000000000D2 +:103A300000000000000086400000000000000000C0 +:103A400000000000000086420000000000000000AE +:103A5000000000000000864400000000000000009C +:103A6000000000000000864600000000000000008A +:103A70000000000000008648000000000000000078 +:103A8000000000000000864A000000000000000066 +:103A9000000000000000864C000000000000000054 +:103AA000000000000000864E000000000000000042 +:103AB0000000000000008650000000000000000030 +:103AC000000000000000865200000000000000001E +:103AD000000000000000865400000000000000000C +:103AE00000000000000086560000000000000000FA +:103AF00000000000000086580000000000000000E8 +:103B0000000000000000865A0000000000000000D5 +:103B1000000000000000865C0000000000000000C3 +:103B2000000000000000865E0000000000000000B1 +:103B3000000000000000866000000000000000009F +:103B4000000000000000866200000000000000008D +:103B5000000000000000866400000000000000007B +:103B60000000000000008666000000000000000069 +:103B70000000000000008668000000000000000057 +:103B8000000000000000866A000000000000000045 +:103B9000000000000000866C000000000000000033 +:103BA000000000000000866E000000000000000021 +:103BB000000000000000867000000000000000000F +:103BC00000000000000086720000000000000000FD +:103BD00000000000000086740000000000000000EB +:103BE00000000000000086760000000000000000D9 +:103BF00000000000000086780000000000000000C7 +:103C0000000000000000867A0000000000000000B4 +:103C1000000000000000867C0000000000000000A2 +:103C2000000000000000867E000000000000000090 +:103C3000000000000000868000000000000000007E +:103C4000000000000000868200000000000000006C +:103C5000000000000000868400000000000000005A +:103C60000000000000008686000000000000000048 +:103C70000000000000008688000000000000000036 +:103C8000000000000000868A000000000000000024 +:103C9000000000000000868C000000000000000012 +:103CA000000000000000868E000000000000000000 +:103CB00000000000000086900000000000000000EE +:103CC00000000000000086920000000000000000DC +:103CD00000000000000086940000000000000000CA +:103CE00000000000000086960000000000000000B8 +:103CF00000000000000086980000000000000000A6 +:103D0000000000000000869A000000000000000093 +:103D1000000000000000869C000000000000000081 +:103D2000000000000000869E00000000000000006F +:103D300000000000000086A000000000000000005D +:103D400000000000000086A200000000000000004B +:103D500000000000000086A4000000000000000039 +:103D600000000000000086A6000000000000000027 +:103D700000000000000086A8000000000000000015 +:103D800000000000000086AA000000000000000003 +:103D900000000000000086AC0000000000000000F1 +:103DA00000000000000086AE0000000000000000DF +:103DB00000000000000086B00000000000000000CD +:103DC00000000000000086B20000000000000000BB +:103DD00000000000000086B40000000000000000A9 +:103DE00000000000000086B6000000000000000097 +:103DF00000000000000086B8000000000000000085 +:103E000000000000000086BA000000000000000072 +:103E100000000000000086BC000000000000000060 +:103E200000000000000086BE00000000000000004E +:103E300000000000000086C000000000000000003C +:103E400000000000000086C200000000000000002A +:103E500000000000000086C4000000000000000018 +:103E600000000000000086C6000000000000000006 +:103E700000000000000086C80000000000000000F4 +:103E800000000000000086CA0000000000000000E2 +:103E900000000000000086CC0000000000000000D0 +:103EA00000000000000086CE0000000000000000BE +:103EB00000000000000086D00000000000000000AC +:103EC00000000000000086D200000000000000009A +:103ED00000000000000086D4000000000000000088 +:103EE00000000000000086D6000000000000000076 +:103EF00000000000000086D8000000000000000064 +:103F000000000000000086DA000000000000000051 +:103F100000000000000086DC00000000000000003F +:103F200000000000000086DE00000000000000002D +:103F300000000000000086E000000000000000001B +:103F400000000000000086E2000000000000000009 +:103F500000000000000086E40000000000000000F7 +:103F600000000000000086E60000000000000000E5 +:103F700000000000000086E80000000000000000D3 +:103F800000000000000086EA0000000000000000C1 +:103F900000000000000086EC0000000000000000AF +:103FA00000000000000086EE00000000000000009D +:103FB00000000000000086F000000000000000008B +:103FC00000000000000086F2000000000000000079 +:103FD00000000000000086F4000000000000000067 +:103FE00000000000000086F6000000000000000055 +:103FF00000000000000086F8000000000000000043 +:1040000000000000000086FA000000000000000030 +:1040100000000000000086FC00000000000000001E +:1040200000000000000086FE00000000000000000C +:1040300000000000000087000000000000000000F9 +:1040400000000000000087020000000000000000E7 +:1040500000000000000087040000000000000000D5 +:1040600000000000000087060000000000000000C3 +:1040700000000000000087080000000000000000B1 +:10408000000000000000870A00000000000000009F +:10409000000000000000870C00000000000000008D +:1040A000000000000000870E00000000000000007B +:1040B0000000000000008710000000000000000069 +:1040C0000000000000008712000000000000000057 +:1040D0000000000000008714000000000000000045 +:1040E0000000000000008716000000000000000033 +:1040F0000000000000008718000000000000000021 +:10410000000000000000871A00000000000000000E +:10411000000000000000871C0000000000000000FC +:10412000000000000000871E0000000000000000EA +:1041300000000000000087200000000000000000D8 +:1041400000000000000087220000000000000000C6 +:1041500000000000000087240000000000000000B4 +:1041600000000000000087260000000000000000A2 +:104170000000000000008728000000000000000090 +:10418000000000000000872A00000000000000007E +:10419000000000000000872C00000000000000006C +:1041A000000000000000872E00000000000000005A +:1041B0000000000000008730000000000000000048 +:1041C0000000000000008732000000000000000036 +:1041D0000000000000008734000000000000000024 +:1041E0000000000000008736000000000000000012 +:1041F0000000000000008738000000000000000000 +:10420000000000000000873A0000000000000000ED +:10421000000000000000873C0000000000000000DB +:10422000000000000000873E0000000000000000C9 +:1042300000000000000087400000000000000000B7 +:1042400000000000000087420000000000000000A5 +:104250000000000000008744000000000000000093 +:104260000000000000008746000000000000000081 +:10427000000000000000874800000000000000006F +:10428000000000000000874A00000000000000005D +:10429000000000000000874C00000000000000004B +:1042A000000000000000874E000000000000000039 +:1042B0000000000000008750000000000000000027 +:1042C0000000000000008752000000000000000015 +:1042D0000000000000008754000000000000000003 +:1042E00000000000000087560000000000000000F1 +:1042F00000000000000087580000000000000000DF +:10430000000000000000875A0000000000000000CC +:10431000000000000000875C0000000000000000BA +:10432000000000000000875E0000000000000000A8 +:104330000000000000008760000000000000000096 +:104340000000000000008762000000000000000084 +:104350000000000000008764000000000000000072 +:104360000000000000008766000000000000000060 +:10437000000000000000876800000000000000004E +:10438000000000000000876A00000000000000003C +:10439000000000000000876C00000000000000002A +:1043A000000000000000876E000000000000000018 +:1043B0000000000000008770000000000000000006 +:1043C00000000000000087720000000000000000F4 +:1043D00000000000000087740000000000000000E2 +:1043E00000000000000087760000000000000000D0 +:1043F00000000000000087780000000000000000BE +:10440000000000000000877A0000000000000000AB +:10441000000000000000877C000000000000000099 +:10442000000000000000877E000000000000000087 +:104430000000000000008780000000000000000075 +:104440000000000000008782000000000000000063 +:104450000000000000008784000000000000000051 +:10446000000000000000878600000000000000003F +:10447000000000000000878800000000000000002D +:10448000000000000000878A00000000000000001B +:10449000000000000000878C000000000000000009 +:1044A000000000000000878E0000000000000000F7 +:1044B00000000000000087900000000000000000E5 +:1044C00000000000000087920000000000000000D3 +:1044D00000000000000087940000000000000000C1 +:1044E00000000000000087960000000000000000AF +:1044F000000000000000879800000000000000009D +:10450000000000000000879A00000000000000008A +:10451000000000000000879C000000000000000078 +:10452000000000000000879E000000000000000066 +:1045300000000000000087A0000000000000000054 +:1045400000000000000087A2000000000000000042 +:1045500000000000000087A4000000000000000030 +:1045600000000000000087A600000000000000001E +:1045700000000000000087A800000000000000000C +:1045800000000000000087AA0000000000000000FA +:1045900000000000000087AC0000000000000000E8 +:1045A00000000000000087AE0000000000000000D6 +:1045B00000000000000087B00000000000000000C4 +:1045C00000000000000087B20000000000000000B2 +:1045D00000000000000087B40000000000000000A0 +:1045E00000000000000087B600000000000000008E +:1045F00000000000000087B800000000000000007C +:1046000000000000000087BA000000000000000069 +:1046100000000000000087BC000000000000000057 +:1046200000000000000087BE000000000000000045 +:1046300000000000000087C0000000000000000033 +:1046400000000000000087C2000000000000000021 +:1046500000000000000087C400000000000000000F +:1046600000000000000087C60000000000000000FD +:1046700000000000000087C80000000000000000EB +:1046800000000000000087CA0000000000000000D9 +:1046900000000000000087CC0000000000000000C7 +:1046A00000000000000087CE0000000000000000B5 +:1046B00000000000000087D00000000000000000A3 +:1046C00000000000000087D2000000000000000091 +:1046D00000000000000087D400000000000000007F +:1046E00000000000000087D600000000000000006D +:1046F00000000000000087D800000000000000005B +:1047000000000000000087DA000000000000000048 +:1047100000000000000087DC000000000000000036 +:1047200000000000000087DE000000000000000024 +:1047300000000000000087E0000000000000000012 +:1047400000000000000087E2000000000000000000 +:1047500000000000000087E40000000000000000EE +:1047600000000000000087E60000000000000000DC +:1047700000000000000087E80000000000000000CA +:1047800000000000000087EA0000000000000000B8 +:1047900000000000000087EC0000000000000000A6 +:1047A00000000000000087EE000000000000000094 +:1047B00000000000000087F0000000000000000082 +:1047C00000000000000087F2000000000000000070 +:1047D00000000000000087F400000000000000005E +:1047E00000000000000087F600000000000000004C +:1047F00000000000000087F800000000000000003A +:1048000000000000000087FA000000000000000027 +:1048100000000000000087FC000000000000000015 +:1048200000000000000087FE0000FF000000000004 +:104830000000FF0000000000000001D20000150091 +:104840000000000100000002000000030000000062 +:104850000000000400000001000000000000000152 +:104860000000000400000000000000010000000340 +:104870000000000000000001000000040000000033 +:104880000000000100000003000000000000000123 +:10489000000000040000000000000004000000030D +:1048A000000000000000000000003FFF000003FFC8 +:1048B0000000000300BEBC20000000000000000556 +:1048C0000000000300BEBC20000000000000000546 +:1048D0000000000D0000000C0000000000000010AF +:1048E0000215002002150020000000300810000012 +:1048F0000000003300000030000000310000000222 +:10490000000000040000000000000002000000029F +:10491000000000000000000200000007000000028C +:104920000000000200000001000000030000000180 +:1049300000000002000000400000004000000004F1 +:10494000000000200000000F0000001B000080009D +:10495000000103C00001878000020B4000028F00AD +:10496000000312C00003968000041A4000049E0059 +:10497000000521C00005A580000629400006AD0005 +:10498000000730C00007B480000838400008BC00B1 +:1049900000093FC00009C380000A4740000ACB005D +:1049A000000B4EC0000BD280000C5640000CDA0009 +:1049B000000D5DC0000061800000000100000001EA +:1049C00000000001000000010000000100000001E3 +:1049D00000000001000000010000000100000001D3 +:1049E00000000001000000010000000100000001C3 +:1049F000000000010000000100000001000005AA05 +:104A0000000005990000059D000003C00000FFFFA5 +:104A10000000FFFF0000FFFF0000FFFF0000004656 +:104A20000000000C07FFFFFF0000003F07FFFFFF33 +:104A30000000000F00007FF800007FF8FFFFFFFF7D +:104A4000FFFFFFFF0000FF00000000000000FF006C +:104A5000000000000000190000000000000001D369 +:104A6000000035000000000100000002000000030B +:104A70000000000000000004000000010000000031 +:104A80000000000100000004000000000000000120 +:104A9000000000030000000000000001000000040E +:104AA0000000000000000001000000030000000002 +:104AB00000000001000000040000000000000004ED +:104AC00000000003000000000000000000003FFFA5 +:104AD000000003FF0000000F0000000700000000BE +:104AE0000000000E03150020031500200100003017 +:104AF000081000000000003300000030000000310A +:104B00000000000300000006000000030000000396 +:104B10000000000200000000000000020000000091 +:104B20000000000600000004000000020000000277 +:104B3000000000010000000400000001000000026D +:104B400000000040000000400000000400000020C1 +:104B5000000000020000001F000010000000208084 +:104B6000000031000000418000005200000062801F +:104B70000000730000008380000094000000A48007 +:104B80000000B5000000C5800000D6000000E680EF +:104B90000000F700000107800001180000012880D4 +:104BA000000139000001498000015A0000016A80BB +:104BB00000017B0000018B8000019C000001AC80A3 +:104BC0000001BD000001CD800001DE000001EE808B +:104BD00000000F00000000010000000100000001C3 +:104BE00000000001000000010000000100000001C1 +:104BF00000000001000000010000000100000001B1 +:104C000000000001000000010000000100000001A0 +:104C10000000000100000001000000010000000190 +:104C20000000000100000614000006000000060459 +:104C30000000FFFF0000FFFF0000FFFF0000FFFF7C +:104C40000000002000000020000000000000000024 +:104C500000000023000000240000002500000026C2 +:104C600000000027000000290000002A0000002B9F +:104C70000000002C000000010000000107FFFFFF02 +:104C80000000003F07FFFFFF0000000F00007FF85B +:104C900000007FF80000000000000001CCCC020101 +:104CA000CCCCCCCCCCCC0201CCCCCCCCFFFFFFFF0D +:104CB000FFFFFFFF000000000001000100110807D6 +:104CC000CCCCCCC1FFFFFFFFFFFFFFFF10000000B7 +:104CD000000028AD7058103C000000000000FF00EC +:104CE000000000000000FF0000000000000002843F +:104CF0000000150000000001000000020000000399 +:104D0000000000000000000400000001000000009E +:104D1000000000010000000400000000000000018D +:104D2000000000030000000000000001000000047B +:104D3000000000000000000100000003000000006F +:104D4000000000010000000400000000000000045A +:104D500000000003000000000000000000003FFF12 +:104D6000000003FF000E0000011600D60000FFFF48 +:104D7000000000000000FFFF000000000000FFFF37 +:104D8000000000000000FFFF000000000000FFFF27 +:104D9000000000000000FFFF000000000000000015 +:104DA000000000000000FFFF000000000072000093 +:104DB000012300F30000FFFF000000000000FFFFE0 +:104DC000000000000000FFFF000000000000FFFFE7 +:104DD000000000000000FFFF000000000000FFFFD7 +:104DE0000000000000000000000000000000FFFFC5 +:104DF00000000000BF5C0000FFF51FEF0000FFFF98 +:104E0000F00003E0000000000000A0005554000086 +:104E10005555555500005555F000000055540000FB +:104E20005555555500005555F0000000BF5C000079 +:104E3000FFF51FEF0000FFFFF00003E0000000009F +:104E40000000A0005554000055555555000055551B +:104E5000F0000000555400005555555500005555BB +:104E6000F0000000000000001F8B080000000000A0 +:104E7000000BFB51CFC0F003097772A2F215595114 +:104E8000F96D6CA8FC81C659CC0C0C8540DC0DC4B6 +:104E900015CCF8D58631618A7D9541B057493130BE +:104EA000704A40D8361203EFB7514C7BCCA089969C +:104EB0001ED420749D0684664493FF06955FAC0C57 +:104EC000A19934B19BBB042A0F0059F6FA14600370 +:104ED00000000000000000001F8B08000000000020 +:104EE000000BED7D0D7854D5B5E89E3967CE9C99C1 +:104EF0004C923361122690E049081035C0000182BF +:104F0000457B8060639BEA1050538B76402B91DF8A +:104F100048B1E659DF9D03F931F2D7203E4AADD5BD +:104F2000815A4B5BDB1B7DD1D2EFD9DE89582F7EB6 +:104F3000AFBD97025EB1856BB0D6B656BCB4D52B6B +:104F4000FD3E5ADE5A6BEF9339E76426095EF5F6AB +:104F5000FB5EF16B77F639FB67EDF5BFD75EFB8C37 +:104F60005F0D33E5E38C5DC07F501EF530C68A339C +:104F7000A5F59CA9C6CDAC96B196A8A26F85776B16 +:104F800024D6DA5B83F5C9F56C1A633E6C5FCAE020 +:104F9000CF52EA2717A9B17404DEBF24D5497A6637 +:104FA0001C77D92233A6CD84926D3F2215C01829D3 +:104FB000DFD90195D1BF0B958CB59D9CD1F0BC5527 +:104FC00087FF45597EE48DCBE18FB96CEE0589B141 +:104FD0003F6ACD85E961C67F337958932731F65E04 +:104FE00032D6F0FCA4A1EFAD75AC61EC757F11AECB +:104FF000D3543E3395B1394CA57558EB938BBA4BCE +:1050000012216877E0454DAECEC0C322B0C879F01A +:105010005C6669FFCCA1F00FE28F99341ECC93A699 +:1050200079AC7E03009F6D7DEEFE83E38AFE4C86A5 +:10503000FFE63096878F60DD8F78121FC3E7C1FAD5 +:10504000BBCC71505FF3C4128670E23AE25333F086 +:105050005BF35AEB189CDFB59E5CEB189C5FF4CBBE +:10506000856FABDD1FEB3BBB9897B1E33EBD3C8E3C +:105070007CD230A59E017D9B904FE665E8B26471BD +:1050800027C1938B2EC01FBA86F892429C9FFEAD1B +:10509000BD0EC8CE36B10063B3B3CC3F02FF24DCF3 +:1050A000FC537FFD87C23F5F12FCC31A8A492EACB6 +:1050B000F5BBF1DD52EF3BED9F360CBE457F8B7E9D +:1050C00043F82F57BFA17C6266E51331BEC52FD6CA +:1050D0003CFF557847E20FC67A887E8CC5259C3701 +:1050E0005337593CDFDECE5696001BF0299914E960 +:1050F000FA83340DCBA0897A438AC86F0CD8E5486F +:10510000F4F3292C81F469C747A5A233F0915C160A +:10511000FB06EAB1C79942F3CA1195C6013C3D4E60 +:1051200070343AF117D4E20CF9D957525D9880F1F6 +:1051300058A828AB1CDC976C6D906D7C729F8F35E6 +:10514000F78688507C9E092C3506F1777E91DE9497 +:105150009F7B1C37BEDA7DB11309D0BF66B112FB4D +:1051600026AEDF937D3DE9C1F52826E207D6931EE2 +:105170006E3DEDF993C57AB2CB7587588F05FFE088 +:10518000736B5D39FAB9E1CFF5BEC3674457C01000 +:10519000667EF675F9705D158C9DC475213D430AD8 +:1051A000D1C9174911FFC2FA4E127FB8D6077CC584 +:1051B00090AFDCEB933595F062CD2FAB5F6C9067D1 +:1051C00065E0FC1DD3689DBE413862348EA431EA8F +:1051D000F73396F81DBE07FE3B42FC1732188EAF20 +:1051E000446180E9581ACD26D0B5A37F1EAB994AF9 +:1051F0006A8BAD855209255823B4EBF88BD48CFC0F +:10520000C822B50E39791D89519C1B6F96DEB4EA10 +:10521000C710FF3543E97FECD37EAA7714C7BE8160 +:10522000B8F47A383FB8F10378F37A6CF494358E99 +:10523000CF639F9EC2F195438E9BD42F38F005FF1C +:105240000C94CB7162DC9D55AC472A847A9DD7F4CF +:10525000039DAA6AF47E58D9203E774C9AF39C0F9E +:10526000FE3CE54F14E1FC92A4F5FB80BEE35A7AC4 +:10527000098FDD82AF164BE7D5D7A0FCF2FCCAC27E +:105280009550D6793C59F9685F126007FEDC9B5453 +:10529000990C03BF778AC39F8BDF1E4DEA0EF97C02 +:1052A000B4436E4841FB47EF2D6A6A00BC7546AABD +:1052B00066928E313C32AE2BCFC3517C99987F5F82 +:1052C000E717094EC0DF6508BFC58716BF5519A689 +:1052D000A1417D22E0C70B24D67A582CADF331646E +:1052E0001B9E2CFC001E66E138457ACC2BC3F3B024 +:1052F000D16B2A7A060F5F9EEF257A6E5C3079BFFC +:105300005491817B93C7CBE92AEC319363D5A837BD +:1053100073C9DF2EC0530DC971CC83EDC6D4B3144D +:10532000CAD156F1FC1D165FE48176631A633E5CB8 +:105330000FF87F82BFA2E80CB10EC16ABBAE0E723D +:10534000FE2AD7F6213CD75A70B4087C65F8EB5A90 +:105350004F71062F167F4DF02696E073B53AB64092 +:1053600046B06B52695C77BB97B5903E31D9119CC2 +:10537000AFC863C931E7EF5095BE1FF97BA5A043C5 +:10538000516DD79D5E803F1C95098F45032B1AD127 +:105390005E054E5EF33BC69F939D1AD3D0CBBC886F +:1053A000EF7A7D0196E116D3C47923DEC44A84A343 +:1053B000A83E1D5F44FA50F3A008F6F84C86F4535B +:1053C000E7F718F110D2FB6AB6C2E69F7CC1C3E5CD +:1053D000146036523519BA3E240CD3CEBAFD81552D +:1053E00035D82E4878A962F5821F0CE6017E50055B +:1053F0003F00DD3722DDF35A748F07EA1375CD8342 +:10540000F001BF8F45FEEAF1B152ECD7D3A934A722 +:10541000385E8E237E435E81171DFE4379F6F27956 +:10542000AFF4F8683EE9568EAF428DA574A04F5E8A +:105430008D612811E42BC005AA4181B7004BF54FBF +:105440000154865C782BAA8F79D05F97AB7AD31200 +:10545000C7D37D0867D04893BD00FC3184F751B9AC +:10546000F5D5FF09EB79F4B01433998D0F19F0E1FC +:10547000D40CBEF47B41DEECFECA45FA91A85E90E6 +:105480005FE510B767967D007EFD2AC2256B9C5FA5 +:10549000476B87D436497F1DF597AC79119F96EFFE +:1054A000DDAD6D31116FEFE2588037A967461AF70D +:1054B0003B80E5D837391FA6897E9A91427B44F616 +:1054C000704EC61F09D67859DAB64E5F5990A5EDD1 +:1054D000FE48B3E9C1F9EE12CFD43685E090C13E63 +:1054E000B09ACC3AC152D038B8CC0B13B1FE259A41 +:1054F000C7EA2787583A0074DA563393D9FD6619FC +:10550000FB411B148F0B1543FBE5C68B6BBE654E31 +:105510003847DD2F24EB6F64D9F70CED27B3372C18 +:105520003C01F28EE000B333F4017FE9A007EC68A0 +:105530007BD9E326F2F97DF80AE8DAC538DD59C2ED +:10554000EBB0635299F7B49FFC369DF34B94FB5339 +:105550007E76439AE4243A3AFF2A28F8EA6196F8DC +:1055600035F295BF2C41F8DD560CF6ACC08667F4D9 +:10557000279147AA9751FB6D536F373DE8A74CD051 +:1055800066102F08BEDAA672F832F36CA175762782 +:1055900053EC573EB41B7C7C558FF3D2E2CB6ACEE2 +:1055A000C7DD354D850C9FABBDA48FF27A9E4C7B39 +:1055B00023767E34D9B2A9B84ECE775F83F282C506 +:1055C000976897A241073F5AFC668D3FB2DC45645D +:1055D000BB5D2F07F667C48FDCDE8F177C3FA1EC25 +:1055E000AC8701BDF5B8B610ED7A65738CECFB4362 +:1055F000E15F94AE2038EB35A4B7C718E3B970F972 +:10560000E8F9C2EDFF1435CAAFD9FDFB503DD46DAA +:10561000EB0BD638DF833790A9570C1DAF40F853FA +:105620004C8FC550EEB6FA52CDE0EAB149DE920594 +:1056300011A0EBD640EA04BA829DDDA50B1AA05D4D +:105640007002F02ACAA9DCABA2BC7E1C9535F2AD73 +:10565000AE939C8504BDD940AF3A1150ACCC96D9DD +:1056600056A8F60F480CF5EFF6A89CF27B0432D151 +:105670004E0AD8AC71B60FECA671EFAF39AA39C695 +:105680008FF2F6016B7CBDF57395B6F1DF9B64C1BB +:10569000D5A312BF0C00AEE07D1ECC97AA40ACF69D +:1056A000A80BD07ED6C2C61EEA6A8DC150BFB3BA5F +:1056B0000897A711FC06D0DDA477E56A93FC6EA8D5 +:1056C0006FA6FDDF728FDB9F6CF4A2DC80BD473ECE +:1056D000B1ECBD35CF88FC36DA76C0C132E8E1BB2B +:1056E000593086FEC0694FE2B35E78DEB6AC8DF904 +:1056F000000EDFB2D6CF7542D9067C4AF252E74D92 +:105700007DB342F02DF4DB191F9BC27EF298B2628A +:10571000846F671DB7B7B9E6DD96342755D9FCC548 +:105720006D407F9447D0BF6AB67E79D1AE4955604F +:10573000687736E863B52C718D91C76D728CFB2943 +:1057400096B8DB5B3C747CC638FF7B4103A3BC048A +:10575000439B18CA6190D9E4A222D32E2357CEFAD4 +:10576000DE15B747110F91B1C60C0FF0FB33A04EF9 +:10577000E2E0F245F28C27511EBEBB25BE20047428 +:1057800089F88D3BBDF0FEC52D8B176C0779885CC1 +:10579000C24839FCC87B876733F6C798CA158C1D89 +:1057A000DA72DB6633C4F18F7A726BF248E9EB3E52 +:1057B000D47B27A8DCEDE5FEE21EC1DF4139C5F54B +:1057C0005B35B4B3CBAFCCFDB0800EFDECFE4394A3 +:1057D000EB1F59F01DF8515F43FC1435C33E42479F +:1057E000BE73EE23DC787FD4EBA1798F7AF93E6F1C +:1057F0006FFE6A5AFFB98189C3EE1BBA611DB8BF3B +:10580000B0EA4705FC0867AC06E184F776FB0F6059 +:10581000A21C44962E277ACACBF8BE932D670E3F62 +:1058200059D65AADFD441FAEC3BD9F1884D3978887 +:10583000B6C2F31D61D0A5601F77F8CCE638B51B62 +:105840008836D9FCAD7289FBC783FDE6017D617C9A +:10585000D593E847F96435D1901D7F79CD3DCCA330 +:1058600067DA77097CC82C657A2766E03E82EB2DE3 +:10587000CE0D7FCEF5363BF79D83ED07F7EFF1A315 +:105880005EDB3E61506E6B2DB93DA22EB1E9A71DC6 +:10589000B51727AFDBE5015583F63B43AF754FC422 +:1058A000F849CC1B9BA4A3DCCF3CACA39ECC8FCCF3 +:1058B000B4C7A793FE85BFF2DAF6C5A11A18CFC602 +:1058C000973B2E52AE07E78FB8E76F6AA8C83EFF36 +:1058D0009F383ED85BA4F7F9D4ACAB740FE1D50D7B +:1058E0008FD54FF226CEDBE10E54F1B8C4503D38CF +:1058F000E0C0E7C5EA3F7719F2B038CA597B68A61D +:10590000B6D286977C89CBD9157E235F2A1E0AF7EB +:10591000C5EAC75CF376469CF34ECFCC5B86F34E6C +:10592000479D87762C5E60E6A11D8B6FFF03DAB181 +:10593000A0D6D3702BF2A36B3F502060ECA86BFA7B +:10594000CCE7713F5025C7886F556E3FE43A256517 +:10595000A2FDE8F1183CAE67901F16443F8C42BE92 +:10596000DC0FFB3F96FDAEB2F96195381FF7C3DC43 +:10597000F860AC4C7B23CFAEA74D2E6F623FBCB21C +:105980004E3002D36FFC25C075C7611FD97F761ECC +:105990005ADBF621AFFD8AEFE7EE10FBB9DB58BC0E +:1059A000005F9E61DE0684F70C3B5A30CB46EF4F1A +:1059B0004B223ED4ED237FC984FF10CECFF7F81CD5 +:1059C000FED4AABDCEFAEDACA904EDF0ED0FFA5865 +:1059D0000AF07187CBEE5C29717DB28AB576219D84 +:1059E0003B45BC6AA506A6175CF2753FF8FA9C1504 +:1059F000505F26717BF0661256E6CFC0B53A9452DE +:105A00000C78FFABBE59377C8C61FF54D738949F1C +:105A100030F77FDDFC706BB713BE91E077C36BF995 +:105A2000E7B9E0900F788C54167E5D29F8CDA25727 +:105A30009B5A308D15825F16E0A5B910751994FF39 +:105A40001E48B5C33C4949F0056B9DCBE3DEADD3A1 +:105A500049EF8DD0AFFD7DF6BB0FFB150FEDB72DD8 +:105A6000D21B477D6DED9B826A2BE1C223F3FDC8FB +:105A7000B6E808EFAB867FEF866B4918ECC1F4A15E +:105A8000F0817FB35B8275DD2D19377326E6F0F95F +:105A9000119F1296DC8F273F07DA6F9043DD1E18A7 +:105AA0002F10EA237F27A03BFDFE0DF807EABB6A13 +:105AB00046FA2EAFDAF9DEEDFF3C2EEC256CEF490D +:105AC0008E0A48C4500F84D264BFEAE4B7066CF271 +:105AD0006BD17D6314F4C698DCFAC90B3B3BDC1335 +:105AE000A8421F7844DD82E38F3D9E0694878D8C0B +:105AF000696D33EDE32A34EE107D701EDECF417CFC +:105B000030C6F761B128E2A93B890736783E10BF5D +:105B10000ED7DDFE92C4503FB5FB5A29FE6896337E +:105B20001DE3EAFE2AFEDE7F5C8A78B93F4C78EA04 +:105B30002A6D780CE31907251E3F82FD00C521FC64 +:105B400021D330808E5DE0778431BEFD0FFC1C6573 +:105B5000412891C07E52B4D9E7877EFFFCC4ADCD09 +:105B6000585F1DBD5AC6FDCD2131CE99EF3C398716 +:105B7000017C5DDFCB6769DA9FA414DCD7ACEE93C0 +:105B8000286EB6E61FF369FED54FAD7ABC11F1F36E +:105B9000832BF537489FB6133D563FB3F45F4DB1A5 +:105BA0001E15E8D1BE59C423CD587429745DE7672A +:105BB0009F43FFC75ABF853F55EF217BB7FA4098F7 +:105BC000E2B883722C437BE8EF87B2298BBDFB8D53 +:105BD000C4E37A6FE52BCD089FE740FF2D045FEF0C +:105BE0008D3E5C97A7AC95FD1AE63B89EBE3EDC8CB +:105BF0001E98DFF6A426C1FBB7BEBD4FA99C8AF351 +:105C0000EE5356521C6733E1C182533DB0CB44FD85 +:105C1000A5566995681A16FDE3F70A06E0F98603AA +:105C2000521AF7535052BC32A03BE348605F421E09 +:105C3000A0FB7AC197EBFBD6917E5FDFBB8DECD8E2 +:105C400086834EBD0678A573D2352F4BB146ACFF87 +:105C5000EF6F15E800CF9B47BE5980F8877956282B +:105C6000203F3ECD291738FEB9A2A1E3317696CE6A +:105C70000537F4DECFE773E9CD37F18FD2A1E7AC7A +:105C8000F9B2F39C951D1833AAB8C39AEFBDFB88EF +:105C900009F3BDF5D4EF1FC17394B57FFDD3235F26 +:105CA0004279FE714043BDBFE13BBF7EE41EC0E3CD +:105CB00099837E2FF2C5DB3FFAD6E30F41FDED5706 +:105CC000A6CC44553459E6F2FCF6937F2ED1619C64 +:105CD0004D3F5A3C16D7BDE9E94563D930FEC6DBD6 +:105CE000C04729BF1D9E14D14F3F08E38D85EAB3FD +:105CF000A274D1E350DFA10908DF9913FE18CAE6A8 +:105D0000067886F2BCBE17E8348DD7EF05BCAE7FAF +:105D1000E23E3AAF1C8A5F73BC374AFA673C86DAC8 +:105D2000D7F72DBDEECA5A2C7D311DC76367C97EDA +:105D3000BAFB6D380E749C9E9B6EEFB2F30AEAC7F5 +:105D40000D4FDCCFE775D1ED0CFE316F28DDEA9108 +:105D50006E7919BABDCBD63EFA10BEEC1B93757F97 +:105D60006E9D8BAF7BFAFAC26CE7F876FCA6478192 +:105D7000DF16119729928D65F26CE483EF3EFE5099 +:105D800004E9EB8F3522BDBFF7EE04067CF15BDF43 +:105D9000D95B50FECEFEC8AFED873EAB7FF432D963 +:105DA000E9B79FFEB9A2939D031711FCB9B7D9E0DB +:105DB000BF23E8DFAD17E7391B1ECB4FFB0B327457 +:105DC0005A9F5AD2A017D0738A27AE4F717E5F9F19 +:105DD000EA5FE6C942B76D7225B71B297E4EB6EE63 +:105DE000B15F2A2CE4A4A7A70EE978FA6A7C9E8BFF +:105DF0008ED6FA355CFF5C1B3D1FE3729A4B1EDFAB +:105E0000DEE797D10E5AF47D5BEC7737A43C2FB3D5 +:105E10002C726AF9374C5A3E2C9DDCFCD0E596E397 +:105E2000D4E8CEF7475EC7C5E1E98B7848543C1407 +:105E30005F9B4B410FA33D2A5052688FBA7CFACB2F +:105E400026F2C58B3EB61FBAB417CC617A96F856C7 +:105E500007FA795332753914A778BF1CD1683FE629 +:105E60003EEFF6C1F640B7C173E8D494B103B88FE2 +:105E7000F5F2787067FF3C86FA1FCB0A3CEF6D9B0A +:105E800045711AABBF148D519C5889EA0BB28DAF86 +:105E9000B4CDA1F643F76BADBFDD07F59DD19218E8 +:105EA000FAFBF9DAF7A3FDECE2F76DDB6593F6A1F7 +:105EB000DDA12D6AA56D1FDAADE7DC073F2F0FB31B +:105EC0000FBED8FDDBE0FC11F7FC39F7C1C7653C1C +:105ED0000F10E79043F64B5A88E20AE3843CBF2157 +:105EE000F47E394B6F66DCBF89ABF63875F3D97E2B +:105EF0008C4B7F7DC9C97D2B609E42D6417169B0B4 +:105F0000FAB517660DC7CFCEB8B4DFCBFD20161794 +:105F1000F171CFA07EE1F38973CB7319789E5C0990 +:105F20007F3E3C7780CE172F8129F1BCBB6299BEA2 +:105F300005E199B8FCC8B757103FBCBF38F920BF7E +:105F4000E816BF988EFD7DB7FEE1ECEF033EBE3E46 +:105F5000D867077CB387D2A7FB43DADF4733F34622 +:105F6000B3CD3BC46F1EE5B9E0579616F073E693C8 +:105F70001E8AD39B0B0D8F0FF974028B61EED069D3 +:105F80004FA2DA87F1B965A61FF93424B75E82FE05 +:105F9000646848BC8AC70976B8E2CC171BB71A6D8B +:105FA0009CF962E351C3C499EB7DB3878EEF8E33C6 +:105FB0004BF90FD2FE2E709171E6C81863862786C2 +:105FC000E8FED8A29FD665E2CB37FA0A16F1F8327E +:105FD000A378F24DBEABDA4D802B32DE7812DBBFF8 +:105FE000DA397F119EC74426F2F77314FEFE1E4C69 +:105FF00092C0F306D93051DEF7AEF86235E5AD4414 +:10600000D900FA67567CD3DF9C488B7C9304D22F4F +:106010004FD3FB3D3AEA61CD83EB582C85683FFABC +:10602000C7324674CF85C707447EC94EB01B58FAA5 +:106030001BF8B9607752A3FC93ADC92895DB930692 +:10604000BD7F87C5D7F9E81C919F4FEF15F18F767B +:1060500085B5607954D8EB5F0A7ECE947C1F72E8D8 +:10606000D46FF6DE8A708582E457E682AB27593D0D +:1060700089E7BFC426E1BC5DC93AAA6FF7A4753CA5 +:10608000BF6AEFFCA72D2AF07F8174368AF5AE8EA9 +:10609000E7B7D4CFA33C02B25B923E6D926CB35390 +:1060A0009D3E1ECFD0EA787E9D66C0FB59D89FE703 +:1060B000390EE12F0137B4A77C284DE3EDBFECC9C1 +:1060C0001E7F7F408CBFB3FF1AB2CB72C2F420DDBB +:1060D000A260FFB0DFCEFE57E879B7EF8881F1A567 +:1060E0009EC52CB61FD61F6EAB213877F6BFC82AC7 +:1060F000E1FD4362DED06D3D44C7D2B65AEADF1DF2 +:10610000609FE1717126F2A278DE48B78F89BC28C2 +:106110007DFF16A87F4BC011D081B50BD1FE5E4527 +:10612000E3CB55E6119107F82DE417F6BC3B7ECD85 +:10613000E3D6E35882F6E1E3AA4306FA8FE36A4A1C +:1061400016A2DF35AEEE32CA9B1C57155A41CFABB3 +:106150004B6EC5F201CFD9238B30CFADD44BF1AB11 +:1061600071D5D59FA776D557ACC2F72FFAC2044F89 +:10617000C1152DD5387E019E37E23AE423742EC82E +:10618000749DE293D639E38E5865E170FB19B26CC9 +:10619000965E24790C624CC4562F72D5C7B9DA5773 +:1061A000BADE5FE67A3FD3516F13F866B54AEA9BD1 +:1061B000680307648277BB68C35A81B1F19C5404B9 +:1061C000B4FB0B1E524FD7F0F2351B5FDD8FEB1A7D +:1061D000464F9EF471B91F17F566E0C3FF5383194C +:1061E000782A096F141FC9E8897A13931576CC1E93 +:1061F000D413A6FD1CC4A6277E8D723B544FD41425 +:106200000E0C0397A517BA849E8005531CE51D96B6 +:10621000F80FD20375A02FA6D9F541AC05F55F5450 +:10622000092D92E7913EA0F333C0503BC65D142F79 +:1062300027C9BB3EB608CFD30E9D5AB57705C8C354 +:10624000C6D94ACC8FF4177E91250F5856E40FF526 +:106250003B43D1B4C3EFB49EDBFCCD8BA3DBBC3D91 +:10626000EAE9102F313FCFD20B23D10DF3CCD81454 +:106270008E1F0C62E5D5050D1DF05128F450DEFC93 +:106280009285BA2DCFA254D02DAFDA49677FD4467C +:10629000679685CEAC9EEC814567F0D3896E25E983 +:1062A00017993E75285CFEB64B496F20DEB00C9501 +:1062B000B105864D7FF8346D1FC6C71E5CBA7EB32C +:1062C0000FF303C714CD403C4E53B89E66079DE7BD +:1062D00061D6B8A03FA62978BE196965DC45E4E718 +:1062E0005B2569AEDFF26B0D9640FD173528AF4890 +:1062F00029030F4EE774413806D7837A0FF384D40D +:1063000056665412DF265876FB365FC962DFDC76AC +:10631000C782EF0B0AD77F5639127F23FDD0AE58C4 +:10632000F80C56C73CD9FC922E6187760BFBD68DB4 +:10633000F608EBCF7D95F8B349E1F1FE40590F43E4 +:106340003C07E45805DA25539EBE08EDD2EE00EF77 +:1063500067B5B7C6BD49E03B20E8E39EF716B18EAE +:1063600031C23F77BF5F25DE2B8D3C8F4C69EC2619 +:106370007BA59429A751DF2B7A17EDF7D9E1217975 +:10638000B2AB10AF3ED69A7EAC02F1CAF5BFB5BE35 +:10639000DDCFBD42FBBDFCB256CA13DCA070BB947E +:1063A0005987785F7B84AD10ED16A0FE61C0B7B051 +:1063B000BE4D48E762A433B75F2ADAA15923F3F54B +:1063C0003D8AE6D06BD6FBA764E34B8AED3CA22B5B +:1063D000BE36FE791DF9673BD973592D30F3709D98 +:1063E0004F3077BE6607F6F3B194E9A9C89CD30E87 +:1063F000CDC31F927FB14DA1FC8B660355B33FEE19 +:10640000CABFD09D7E71B7CB2FBED8FDC968FDE253 +:106410008BDD7F0CE3177F4B1945FE4520541FBDD4 +:106420009DBD0FBF78BAF1072FFAC56C35F78BA762 +:10643000184F623D14B97911E61D45665976A1756C +:1064400011C6B72273B95D38A8DCD98E76E113AADC +:10645000F14384EFF70AE3795F71C320F3F34476E5 +:10646000BD6495BEB1FC9CBE237C8346E7F52EFE41 +:10647000F8B9E04BF779FD07357E963C80638A2DAD +:106480000FE0A35ACFBFAAC669E4FBC1F92E328F31 +:1064900001E4E6F72437AEBC8D41FEAFF672BBCA0D +:1064A00052EA129BFDD95AFDA1C76FCE2BC3C46F10 +:1064B000B6A27CBC9FF9471FBF09F9B9BE207BA5D6 +:1064C0000893DA11BE7DA43C8662BF4DDE94A82BF2 +:1064D0008FE1238E734CF60FC61B26FB3FC238C7D5 +:1064E0006CFF601EC36C7F96FC895CF902A18A5820 +:1064F0009CFCB9522F433C75CD8FF5A0DEED2AF7F9 +:106500002A5B2A32F730AC79D6FB2752BF8EA8E23D +:10651000C57872C7E1C5744ED2E56B6DA0F3C4B007 +:1065200057DB5F3114EEE57E6EC7A5B66D931E1B7B +:10653000267E2689FB571DDA730457DE8C4818EF38 +:106540000DB4F7FF8FC312EECFA2251501A8DFE32C +:1065500017FE1420F357B6F356D07B0D08BF54E650 +:10656000656837A4B69D34DF48F03508FC496DF7FF +:106570004F7A6C9873DA0F1A3E0B8F37FAB9BE91C7 +:10658000DAB6D3FC165E3B6A643A77F0A1F30F7477 +:10659000F30DF8F9FDB518BF0F22D778E91CD0F23A +:1065A0001B41BFB4911C3DEBD43F52889FB32FF2E7 +:1065B0006B7C9E402BC9A795571F4A74909DCA4B70 +:1065C0007439F603169FE4F94C86EDD5904CE7B18B +:1065D0008AE00BE9CA741CD7D333A3CA8BFC92168A +:1065E00078EC36605DD3A114EBE811F967D63C8CEA +:1065F000557D65399E6F1A9533314EFD5D21372AE1 +:106600000B91FE54110FB3F09EC1663601E0DFE539 +:1066100017E70A95AC12F977E3828D9F40FF57D5B3 +:106620004D7FB6F389A1FA8805107E6981375085C0 +:1066300079FA33B83E62D1DA11CE27F8B9AC5CC32F +:10664000EF8D5874B0F06ED1C387F791F1BE810120 +:1066500074B1D18345397E07F3CDFB9C76C9A20B7B +:10666000EC02EF5FEEB1AF7F27F181B5FE27FDE2CF +:106670009CEDBF69FD8F625009E13F74E95796C3F5 +:1066800092028637465BBC2AE06FDB3E3A2F24D36A +:106690007998C547EAC0AE7439CCF3E2DF0AFCD181 +:1066A00051DF23A173DB09CCFA77A7E37EC4047121 +:1066B0000FC68A0706D7F2786039F209D06F42CD4B +:1066C000963BBDD3288A42FBC2F19F66940706EF32 +:1066D000093F56FFF236C5717E1F6E70D6C7309ED9 +:1066E0007F369ED99E839C8DC17C2DBCAF24EE71DC +:1066F00058CFADF33AC5A5B7ADD27D5E77DEEF3C9E +:10670000BF1DE9BCCF3ABFDD05E6559D9DC1677B46 +:106710002573DC9374E3B344370DA4DF58BCE786DC +:10672000F185F92C966618554A50BC81D5F13C2D5F +:10673000599CE75AFDC32AD7272A7B87EE45296C47 +:10674000C024BDE5A2874587EE6A26F2E68D502972 +:10675000BC0F0BEA750B3A044B810E80A7B0C03F0B +:10676000AB1778F5300FF26FC17CC5710F4761DC54 +:106770002F2C12F9C941171D149137A7B89ED7AA1B +:106780005C9F5DECF9E93455D0239FE5DBE9C1B4AA +:10679000ECF9EE163D06F9F622E79B6FCD1782F96C +:1067A00026BE8FF972B473D3FF6A419F2E9DD3A783 +:1067B000AB96D343BD86CB859B9EF0AF11E947A630 +:1067C00002F8620CD20BFD6A700F292FAD91D349EC +:1067D00085FF906E639B9D74535D72918B4ED6FDC9 +:1067E00030BF6A2C277E7E3D40F12C7590AF9EED28 +:1067F0005700D6AD658CE2682F621209C613FF5AA6 +:1068000048F06F8BB114DABD71950FF0B82B6EF1B3 +:106810006CFDB7EA4DC3C6B9BE9C049B3905F6E9C9 +:106820004995CA5CEDF2954402CF8F0AE7338F1C7D +:10683000C17B8A3AF9CFF9028FE1A84EF73D1F12CA +:10684000F2421C6DBB97A534707F416DE4A552AF39 +:10685000AC6054E7F71E959A85BF9329AEE1C4A3B7 +:106860007B9CDC74B6E155CADD6EB425DE3F7DCD80 +:10687000671FBF4795D05F382E511EAB5A0BBB5ACE +:1068800084BF562B41BE506B63212A071634F07A21 +:106890007C2BBEFF21D20BFD0A83AFB340F70EBBAA +:1068A0003EFA67ED3F2A3378B1E070F3CF7F177E71 +:1068B00076207E6CF6F17E8C09007EDE6D60299676 +:1068C000C5BFB5CAA273324B63DC727EAA9BE4AF2C +:1068D000DACB907FD5F9A0DF80BF1EBAE3058ABB73 +:1068E00028BAE6916CE75B2FA8DC7F57F01E2B9D42 +:1068F00033E89EA5F9F6F7FCBE3DC8D14F548A0F88 +:106900003EA162DC6F9B9C36849C509EE1B6F3FFF7 +:10691000A4921FD8A2F071420F3AF4C76DAACF918A +:10692000E730A867A26CC06BDB175A76E2943FF1A0 +:10693000925A9CB9CFA144F97D0E2B3E69E55D3C8E +:106940007F6A6EC01EAFEC4932713ED74B71CA8769 +:10695000936C5215060E6E0B50FCBA509C9B94190A +:106960002A9DD794199AC64BBD08F9AACC881561FF +:106970007DF77C2EDF5B451CFF2971BE77409CEFC5 +:106980003D94D4A97C3C594DEF1F4BC6A8BE3F593E +:1069900047F5149EFF41FD916403957DC9383DEF95 +:1069A0004D3653F9FD64829E3F916CA1F23BC9566E +:1069B000716ED8466557D2A476DDC96E2A0F267B44 +:1069C000A87C26B997CABDC914B5DB953C40F53201 +:1069D000A3B1C143EB089E46BB56DE0AEBB6F91BDA +:1069E000183FB7FB1FB30E3BEFA55E9A2A72D4C7C0 +:1069F000B78C73B49FB2B7D2F17E52CF658EF713C6 +:106A0000BB673AEA15E6158EF697B42D74D4671F66 +:106A1000F9A4A3FD8C7493A33EFDE04D8EF6537B49 +:106A2000573ADE5F7E60B5E37D7E6CA3A3EE8FDE1A +:106A3000E368AF3D3060E23E4E99C062980F546803 +:106A4000B022BD90F42EE9D9CE30E859E0BDE9017D +:106A5000113F46EE2EA47651FC9E83AF919F07FA1C +:106A6000E633C22FBC1F87CF65437C87A2D1247F2A +:106A70004E3E791FB5B3EDDBA60790CF8F3BF707EE +:106A8000567C48B3F248C0FEE1F762982A53BBDD5A +:106A9000326FB7182FFCCDCEDCA3623199F67F633D +:106AA0003C4EBDA434F2FBC00A93FF13E38A78ED99 +:106AB000FC8287F2A2FFD39E3F356FC0599F7BC2F5 +:106AC000592F4D38EB45F57CBC413C8A731E26CBD3 +:106AD000945F1A3C3E71E6565A0FBF8FA588BC974B +:106AE000DB03DC4FEA4EF64EC3FB5E16FC20754519 +:106AF0001AEA77438F6868F76BF9F7020AF914F01E +:106B00005CD3747A1F2BC212FCC97400FDED939FF5 +:106B100038EC29C8F86D011DC6B5C1A5543BE15438 +:106B200075AE2F0235CEF5B8FDA41581F7E7278F96 +:106B3000D63FDA637D1F45DCCFB0EE7B966EEAE987 +:106B4000C7F879E96D1AE527FBA67AE3B8FFEEAA44 +:106B5000F136EC437F18EA5896AE4D6D463FA5F4EA +:106B600060C553E8175C752EBD00F9B5B4559B811F +:106B70007EC1AB015DE46B274A310E567A70976790 +:106B8000218C7332C0CF054A1B7BE87CA6FD697E51 +:106B90005EF3FCA91B35CC37FE63A48AF4DB99674E +:106BA000FC06C629CE14F1EF2E9C7966EE0B488CBC +:106BB000DF270F17D9BF8F71E6FB3F9FE383F1CF2C +:106BC0003CF5F33932E535A71CFA7CDD856373505B +:106BD000FF9B0B5935DE4FDBA0298CF21271BDE80B +:106BE000CBDCC628FEB9A744E9C2F14BC67A77626E +:106BF00019CCAB70DC970039A8A0B8A92CFA1DF607 +:106C000051BFF6178334DEC649FCF9C67009F9FB9B +:106C1000ED61BD3D8471C80ABECFD8788DE99F80F3 +:106C2000EF4F8D8D9950EFF0C0561CDF9732FAAEC2 +:106C3000CC7B15ACBA02E57691B6085382CE96733A +:106C40007D60ED4B834706C09740FBD6B3A800FAA2 +:106C5000B5C37E062809F5543BD6B719BC1E7EABDA +:106C6000750AFA11EF795B772D0738CAF22A857F0A +:106C700096E8C17BB677CFF5CE407FC63A27387409 +:106C8000CACFE1FE9944F989C00F1FB7C771F20757 +:106C90003CE4C7E4CBCC2C9CC9D883C96A8207DE0C +:106CA0001B11D8A41447F8FEB338CAEFB9E72F0375 +:106CB0003FC1AEDFE17FAFA9821E30BEBFC26BFA1B +:106CC000A6A3DDE0F62F9D5469BC87921A953F4E2E +:106CD00046E9F903499DCA6793B161E393B9CA6D67 +:106CE0002E7F65CF54580DCCBB479C4BFFA9C66B7C +:106CF000564DCFDDFFE1E4E131F59384F003DECAC8 +:106D000036F173D69CED377B3ED704FCE5BF538E3E +:106D1000EFE77AB3D47EEFB1D39728C5CDE1D9FBA5 +:106D20009EAEAF2F2539E37921B247D6508EA2AC63 +:106D300017E5AD34DAE3C17314EB3E05F91FF0E259 +:106D40008765EF1C2A447EA961BD0896529360288E +:106D50004FF3CAAB36A3BCB2A9CEE7073D5ECAEB80 +:106D6000C7F11642796F20FE5600E34A4575D2F707 +:106D7000A1FD3B7D7E1DE5F6C1E7FEACE0796FE746 +:106D80006B8A8AF1B3D2674F539E72A77740C17363 +:106D9000CF5050598CE7FF9D4AE2520C4585823D09 +:106DA0009D58DF5390F836BE8719173F1F05B9F17C +:106DB0009B5FC3F74A90990D6530BFCFFC2CAEB7EF +:106DC0009E793BD5ABE8FD78CC97BA10501677E3A7 +:106DD0007BE4B52B481D751A580FF37A68EB850EC6 +:106DE000136C9F3FC8F5040B71B91BAC6B50B7F91E +:106DF0008183CF65FE9CA9BCB4D6B5EED09F5F1849 +:106E00008FF9EACF7A7A317E54FAEC2EC22FEA2338 +:106E1000D43F079387B50E8BCE363F7C1EE65FA02E +:106E20005F9AF2A42A3DE4FAD177E74ACF1AFA66CC +:106E3000A457CA17C31488D63C6E4FE60DC03876E7 +:106E40007B268BEFE8B9BE43469F6C427A6DE7E73D +:106E500004A5B70D2818573F5867E64D83E76B56D2 +:106E600054CDDC0C747935E811F6D5CCABC7784538 +:106E70002448F70BACFC87B75CF90F6B45FE836FBA +:106E80000BBFCFB1A6A2B76426C6ED03FC5EC99ABC +:106E9000B0A8879D75EB3B590735335C04E5FA8351 +:106EA000BB26E0BD86F5ACE716BCC7C07E2A31D450 +:106EB0004FBFEB9F57F831A8AF833AAAF6757D33E1 +:106EC0003E89EB58B7DDEB45142C0C723CACEF035C +:106ED000FE09A1FC828200D572D0E8B95C465F7CD5 +:106EE000DBB38B0357021F571A9A1768FD70DE3FFA +:106EF00077AAE55057B44BD90CACFF0BF1D59A6B80 +:106F0000BCE2A30EFFF213A34ADC631887E38FED04 +:106F1000C4F3C4DA6695CEC34BBC713AD7614779E6 +:106F2000BE12B2C07CC0B714EEA0F39FFFE8F452CB +:106F30005E1A1E47E2FD865A991D96A1DCA300FD4C +:106F400030CFA94BA67EF0BCDB578474891D427DEF +:106F5000CCBAB93E9EFDAC9FF6ABB5ADC61D14B71D +:106F6000D1E6937F9389CFF17CDA4B849E9CABB1C1 +:106F700005B86F3B1BAC20606A9B6F5883FD26AE43 +:106F800058F67F0D1DBF0F9532E97CE8156E0F8214 +:106F9000DBE22D98372DFD3C14DB0C8FFBBC0B2F57 +:106FA000BF13E8D217E0F493C2896D3FC3B87DB830 +:106FB0008AD1FB70E2F778EFE26CB1AAE37942C7BD +:106FC00000ECAB0BF17D4C433A5E89FA02F1665E50 +:106FD000B7D8407DA724EE44797C74EB759D985F0B +:106FE00007789FA802DE1F095E4778EFDB6C8CD71D +:106FF0006CF5B97F013F80CE71AF237994C30FAC9C +:1070000041F986F73FC1FDCE0F8B98A00B7F5F5BE8 +:1070100069D5C1BFAA0338360B79C6832FD0FFB517 +:10702000B6F6F520CFBE85FCFD97603ECC8FC43808 +:10703000655B11AE8B99B8CF3E7BA99CDAEFE1F787 +:10704000C7F07ECAD5D2F24F4D85E7FE493C0E12FD +:107050000C733D1C0CEB645F014FB46F3CFB52287A +:1070600085F808865B7BFCF8BEBC8AF67D79293EF4 +:107070000E9648FF3C714FCFA32DE1FE67B5F3FBA1 +:107080001C7ED7F738641107955DCF1FA930FACB66 +:10709000A17FDBC012D21F7B82E29CA09CC799EF2C +:1070A0008E9B9FC07DE165677B17A2DB5073EEC8A6 +:1070B00073584E637F5888EA32A6860F61B92FC88D +:1070C0009976A6366311A9BEBADE43744CA60F9416 +:1070D000A2FE9A2DA5DAD1EF2F9CDF2BE13C636F46 +:1070E000AEBAC8F3D834E50B6C0F791B52746EF846 +:1070F00094B6C2D6FFAE3C715E24F4894FE37CDCCB +:10710000C67A16E0F74080F6FC3B2E42BFF844609A +:1071100053667CDF2E6B310DEF412DC8AF25FFED9F +:1071200084907FA97FDE75E86728A827A0FDC301AA +:107130001E6F3D5BCA7AD19F91A30623FB26F20501 +:107140003789792D7D81F957C614C69EBE76F242E5 +:10715000DCEF3E7D6DC942F4CB1F18CC373CAB58F9 +:10716000DF23A27CF4F431CF0570327ED0E0C5B4C9 +:1071700049F60DD978793CCAF7111FE9ADDD612ECA +:107180004F83FB7DB1EEA704BC9D3EAE0FEF4BF2EB +:10719000FB55CAB93C969A05FC27F4BA3F711BF11E +:1071A000991F6C1C7EAF4A65A68978B5F0A09679C8 +:1071B00059CA1EBF3D5740FD9F0AF279ACF3D35C1C +:1071C000E7C977E789EF930D392FD509EF9B06E9DA +:1071D000C2F7299BF28DB1A8A77FB890C3EDE683D3 +:1071E000B782226E72CE437058CFCF22BF013C8A45 +:1071F0009CA0EF5628E7647A6FAD7770BF36F89E93 +:10720000AFE36D8DDF8B55A25C5E958312F9792C0F +:107210002A9FB5DF3BCD43BF7B6246CEACFBB0437C +:10722000D7113B62207F55713D3B540E4DF277AC38 +:1072300075FA75E77B777ECA20DCE7C638D661C968 +:1072400057663D25F41EED09DD7793D95771DFB6FA +:107250004EE45FAC9380AF00FE6D3FE5F786DFB68E +:10726000F609CFF2EF90AEEBDB27F24074C7777AE6 +:10727000D61FBC93F6731B5E0F995E68BF1EF53276 +:10728000E06B5BDA7DFF389E1EAF67DA9F40050832 +:10729000F0BDA3B594A2BF1112F429F1A6257ECFAB +:1072A000F888847AA03318FF2DF7B39821030D3A9C +:1072B00007F5AAD28976768F92D1BB9877B827C87E +:1072C000EB469ED2D95143F69EDA87825FEB34CBF0 +:1072D000C81F10F53D9DE867ED51628730FE603EA6 +:1072E000E3D7D11F81FE06CAAB795335ED6F3A2B38 +:1072F000D938F40B9F2FE1DFD5EB7CC6BF1FE3E944 +:10730000F70612FEA06D9F75A6F817135828EB78A4 +:10731000A663BC0917371ECCDF8778B5DE3F5F72E6 +:10732000058D0FFD743A77293B720BDAD19267FC19 +:1073300014A77DD8E79477ABBC51C873575273DC60 +:10734000A35450BE91CF582BC9B53F5AE490674B18 +:10735000CE9573E359CA764E7D42D8F90C7F4DA085 +:10736000F74F09BA7625F511E6A9CC31CFE523CC44 +:1073700033CD310F6AE2C1EF9A0D13E775DFCB71A0 +:10738000EB45ABB4F4E24FC5F8324B7C210FEAABCE +:10739000077AAF46B15F126E28C7D4ED71C2EFAE67 +:1073A0003BB0EB10B263D21F7F02E983F929C8DF3B +:1073B00057F8E3A782C599FAC5CAC7C3A80B8BB310 +:1073C000EA419E0F2CF6ED9BF2639FC4FAA61D9531 +:1073D0009A39CCFECCADE7160ED1875CDF7D70F319 +:1073E000490E3A0E9D4FA1F719BB9660F63C7A6B99 +:1073F000FE4DA5C658E6947303E55CAEB0F40033C9 +:10740000512FECB6DE9BAF76D697A15F9D798FFEAC +:1074100059893FD31FBF03B43B68B57F337BFB3C27 +:1074200057FB4AABFDBBE4CFB9E1B1F40ED6D1FFB7 +:1074300093FFE21FF40F11BE5D5ED77845D678AC9E +:107440000BC7B3FCFE695BF35EC00F60EE0EF72C5A +:10745000403B7EF6F34CC7FB15DF9063C198CDDE51 +:107460004D137CAA9C0B38F09CC16F889EB3A893E7 +:107470009E9B4E7D62D87BD6BF493AEF59AF4A6C8E +:10748000A27B9FD304FD5A60E780E3B73C2C39E42C +:10749000F7EFF0FEADC07B690E7FA686CBF7DF1C51 +:1074A000BCA539E02DFB48E1DD1AE0FAF601512ECA +:1074B000D65AFBF13EC162DD43F70B1743DB4011A7 +:1074C000E6F382CF0BE562999921FAEE7F8AE7E72E +:1074D000431DE31DD7FDE50BAF7F9CBEFF11F5DA21 +:1074E000CF29FD6571962D7E8D7E37DEBBBF1FCF08 +:1074F000A3FD43DFAB22AEFF9589EB99FD1E4E4302 +:1075000048E02FC2BF73EBEE773E5F9C4BAB51AFB1 +:10751000E39C5FD41571DEF6FEE1B996BD665BCFE4 +:107520004D021E39C2B27E87677281F03F5483F2EA +:10753000E03AB4A661E3F9A387E32A075ED684F8AC +:10754000BAA51C78392AF0D2A525687FD815FDA0E8 +:10755000E070E2E35E01472E7CBC22DEB37397103D +:107560009F48821E5D62BFEA6E6FE55575A91F2EAA +:10757000DCBB47A0A39CFFD1D0F1B111E8685A70E1 +:10758000681F2E1C4F8F00C7B72D7E8A1A44970F95 +:107590000B8E17045D72C131D58243FF70F1F1F299 +:1075A0000870DC20E0581BE279AF5DD50982C7E2A4 +:1075B0005764F3AB8A72F33DC613ECE7C5C12AE703 +:1075C0007772D9EB63BDA3C9FFF8AD58DF4872F2FB +:1075D0005692E703BD29F0B03625D1794E4B94E79A +:1075E000958E345F8BCF2C192EBFFC8E94E4807F58 +:1075F0002478B684F879D5BA5E67BF3507F25C792E +:107600003426C7AF0BAF43E8F8FF393E7787B8DDC4 +:107610001F099F96BC7C54781C493E73E251E3F9E4 +:10762000641F341E4782E78551E37165377ED7ECCE +:107630005D7033307EFB777C666FBFF6EF7CF9813F +:10764000E0F131C4E328F4E5DFF1383C3C4F8F1A18 +:107650008F2B558C67FE5DBE3F18F976EF133F2ADE +:107660007CBAE7CD858F5C7875CF678DD732C2FC49 +:107670006E3C8E048755368C169FAEFDEE47864FC6 +:10768000D7BCFF657C8AF12E1A9F23C06195378D88 +:107690009A3F4D6A77407C9F60CAD7371DBD06E48C +:1076A000FF58C3AC59F49D34D998BA742A633B0A85 +:1076B000783EF21471DEE79E6F4701DF171C6D58AC +:1076C000B48E7EC7259E47FAE3B837F6B35ACCEBA3 +:1076D0006992E83CCCDDEFA8C0EF9A82B088F71B36 +:1076E000F9B3A17FD34B12DD63CBB53ED6605B17F8 +:1076F000DD03B4D1571A8AEFA34CDF518BE7348DE9 +:10770000D9E1B0E87C3CBEF4FDE9A1B8F4A1E8A160 +:1077100091E0B9A9A07294744E117E236CF0F72CFD +:107720002FE3DF23D67D780ED774D24FF78D5EC25C +:1077300047FCF77DFE5701B46F6A98C17F8FCACAB4 +:10774000A79419E59FDFFAC0A5FBE97778962DA5E8 +:10775000F65F17F19F2174B2F84BFCBED4D8E5A6B2 +:10776000CFFE7B4EAF1758E7C3ADE508479F625C7D +:10777000FE3D18FFE8B57EFAEE907F69E336BC93D4 +:1077800071FC33618FFD3B4C0705BFCD59CEF7A986 +:107790007D27123EAF6DBFFA928007FADF3C90055D +:1077A0007F7DA2FF0D098FC8BF37CA9B6C7957FF39 +:1077B000EE7AEFEEFF9382027A7F5CE4DBB9DFA71B +:1077C00045FFE6E6E1FBB36563C4EF361993EDBF11 +:1077D000DBE4C6DF9282C48B0550BEEC693D7517B1 +:1077E000CAD30295F898C9FA3484DBC2C36295758E +:1077F000E34F1A5A74BA6E7C0DD1C982C79A0F53DF +:1078000081307FA4D6E079454522EF73EEF6406AD9 +:10781000339D6B8BDF839401AE7C9AFF15E4875C0C +:10782000F35BE34664965660DCA0DF988CE75FEE7E +:107830007558ED8EFD79D1A710BEBEA35E6D4BC508 +:10784000D0F5BBF5D2E4BD4EBEF9B3E09B08C6311E +:10785000887EADE5CD36FAFDA92040FD2F969F0E1E +:10786000A00C4339F9C1569F0EE3DE288BFC6F183C +:10787000DFCE1FFB047FBD25DA47243378199EA392 +:10788000BDCCF5CB81FDF79467CB67392AEE25EDAA +:107890002FA876E4F12E6D9CD1893F4908FC528ACD +:1078A000EAABEFE815E5287737C8FCDCF480D25A5C +:1078B0003E03F95CD1D7E1B9E668D761E13BA71E89 +:1078C0001578EE3B11F7611CBD6619E7D7EB97F50C +:1078D0007BD741B94FC8ED696C6A1BE7BA42318F5B +:1078E00092680FC418AB2ADC795F7735C9399D7B64 +:1078F000D5173E701FE6B3B10EFEDDDAC9CBFEB080 +:1079000009CF55FB149E77F8D2FDF9294C68017E0A +:1079100075C4D923CBDE4B625ED94A253699E70977 +:1079200070FDF40E4B54171667F4D410BDD4B1D4C7 +:10793000FA1DBEC9763A65D6B945C0CBF9E940AA69 +:10794000A9F0561B3F250A15073D8E093DFF6FAE76 +:10795000F8D98D2778DC14D6417933BFB8B27C1FB3 +:10796000AE23D2F25E12F3EA13853C2FE6DD54E536 +:1079700033B85E6BFDD63A57EEBF62323E5FD6E853 +:10798000F693B8BC5DDF9CE77C2EFA574BC61A3ADB +:10799000A7FD14CF3BB0C68B3400BEA6E1BAE25BB4 +:1079A000F22B3278B6F0B9D2AFDF3EF8BB5100EF20 +:1079B000ADFB43FBF09E7C71FBC05DC847EF84E2EA +:1079C0008545363EFDACA06B865FB95DC47668B771 +:1079D0009A64DD97CD7E2D6D90B2C2ADF8636FB025 +:1079E0002CE7F683FAC0652F356F8F0FDB37B35660 +:1079F0002A8F4B67A93C29E861F53FC9D2F9735139 +:107A00000F354894C775B27569E14A58C7725F6F00 +:107A1000FE4C28EF12EBF8E52689E28E837E9C6B04 +:107A2000BE9BD74AE68DC06FCB851D5FBE96E7FF34 +:107A3000DCDCEA5C0FC8DFD16B70BE7FE0F31D03B6 +:107A400076A92B22FE24BFE2D554D10CBC8F710C39 +:107A5000718F7E46539EF8EE08A3DF274CF03FD986 +:107A60002B0DB7FE04F3E7B616F2FCFB630DB75E11 +:107A70008D4752ABF6B21F0FE8E83F0D6FEF13F7DB +:107A80004A0EBB3EF941A75F3B07ED4D0D4E9A2EC6 +:107A9000BFC5A64F7F13CEA3F96E58E6C91AD77D8E +:107AA000231CE2F0FC556AC9E6DF9D0F737D77FD6C +:107AB000DEECFDCF87F3F9FB87B3DBBBC5383FD9DD +:107AC00093DE72D4F3D737671F671526C3C13827F3 +:107AD000D7FDE666CCFF39EE757E37EB268DD37584 +:107AE000BEC6F5FFB1FDF77495225DD67B34BCBFF1 +:107AF000BE728C4E7AE3B36B6750FEE26CD17E7A35 +:107B000028DE5B08E5ED2736BE80EDFB96B398478F +:107B1000CFE803371C07851C5BF605ECDAEB68D76A +:107B200022F83BD3A8AFE454EC337CC9666111D290 +:107B3000DD5C4DDFA3DF1FD438DDC1EF85C689973B +:107B40009D7EECF32EF972D373D55E97DFE6E2D714 +:107B500057598CFC6BB3314F433DF0EABD52FAE309 +:107B6000507FA5316F9FFDF7492D7E3FD6386B1DA5 +:107B7000DD636CCCF3DAEF1FBACB9C7E6D63F6FD50 +:107B80008BBBFFC5FAB5C71A399FBF7AEFACFC951E +:107B900059FABD5D5831AA78C5ABF70E2F2FAF8AC1 +:107BA00075BD21D665F113FAD52B6D747FCF45973E +:107BB000E6DB9CF3DEB0DC39AF2527C7E3ED41F40B +:107BC0004B80DEE427597E2EEB983582DDE5E77D9C +:107BD000FF0F2BF7DDB70080000000001F8B0800AF +:107BE00000000000000BDD7D0B7854D5B9E8DAB356 +:107BF000F73C924C92996466F20E3384478000936E +:107C00001042A80893844828A81320109E1D1043F2 +:107C10009410A2624FDAEB291B0218D06AB094D2FA +:107C20004AED10D152EB23B1698BCAA10382D27302 +:107C3000B40D2F4B2BD6D852DE6A6AB5A2975BCF14 +:107C4000FAFFB55666EF9D84408FBDF7FB2E7E7E12 +:107C50003B6BEFF5F8D7FFFEFFF598132652DB9646 +:107C600047C8B18AD989CBE893FE53888790D91247 +:107C7000FDCB4B88CD41FF70C3F771F121FAFDDDDB +:107C8000B5844486137276AD8D44AC841C3775BFC1 +:107C900039C14588FA84E27F8AD61FBA63E9C134C4 +:107CA0002F74E37FB390BE0FFD4E2ED8424B2EE8CB +:107CB000673C215FC0BF29D167E80199446C382E29 +:107CC000F982FEBF62479CAE4CCEA498009EFBF9A1 +:107CD0003BB2219990B4DEFD9C07B8009E99B31386 +:107CE00043F6DEDFC5F33287FF2287BF2E2CABD6EB +:107CF0003184D4CE644FE378C6F6B566D5E3B84692 +:107D0000FF7785E97C72A3F00F040F2161C4CBAA31 +:107D1000367DBB957BF47870C9A4A18DF6B350690C +:107D2000334FA4745858972FDD459FCF25DAB0FD07 +:107D300073895E7C2E2424D08674F416558EA6E3B7 +:107D4000B7C612A990D2674B7C78A88F9013B34620 +:107D50000DD3C2338BD3B76A67FB468A5672C214FF +:107D60007CC40DF4FCBA4C9EA2E5774EBDB811CA96 +:107D70007FE93439243AC4DCEA92F8F1B45C744205 +:107D80002E9069F9768713C7AD9AB3D4ACEDB77A64 +:107D9000B97E3E558BF4F37989C35B6E23AABD008F +:107DA000B8AEBB30383A3ACF153B976E4AA3E3548E +:107DB000D56D9D08E3ACD871C03C82BE2F71B0F97F +:107DC000963A58FB450A9FAF8DCE379E90B7816F8C +:107DD00061BEDF90C24FC1DF4A9719DE0BB89634FF +:107DE0009C2B0FD8619E8CEFC57B95E361A5C38466 +:107DF000CFB1F6508D633CFEA9262611B24C6E28F9 +:107E000071D32A9F25121DDC9FC33C68258BD5FFAB +:107E100034C989CEA3078FF50C8F6F9F9AB5D15DBA +:107E2000D83F1E1BFB918F81F078A2353640609CB5 +:107E3000C98CBE1D16A2C2FC4F6ECE0AAFF745E13B +:107E4000FC8CC3E99AF3E95AC798281FBC7DCFB9C7 +:107E5000C520D7B4DE067B12831FF0F51D27C303B0 +:107E6000E9A2F2501495873FC793EAB63EF8F90F9E +:107E70005CAE8CF273FA2EA9451E83CF707242EF6E +:107E8000FAFDC9C5028904619C3DF75A6B5BFB187A +:107E9000EF38A7572FFD0053A0E510FF7BC59CA529 +:107EA0009BE2E9D4D7C7254C86799E368C7B9A44D1 +:107EB000E22700BFCC91FD40A7D30D4C0F2E328797 +:107EC000E30BE8B8CFF371FEB046AE08E745F58C9A +:107ED00071DCC5B5B23A8FCE7311D7278B6AE5F73F +:107EE000E0B9B8414FBF932478EB78186F261BEFA9 +:107EF00084A5E5D6224ABFE3DFCA2950E1FB9CEF07 +:107F0000C42FA3E3BEC6F9E138F0A91DDE33B804DF +:107F1000DCFF61E0975E7AF454AC9E4F38BF9F0857 +:107F2000EAFB79CDD08F91DFE61AF86D8F259805A1 +:107F3000FAEFE4AE458BEF07BEDB15EB1FEAED4D24 +:107F40009FA79C32831FF853A37F3A2CFEF73B5C1C +:107F5000C09F69FEF5DEDE7C797C6653EC52A0FBA7 +:107F6000ACB8DA303C79FB3F95E6B6CA14D43DE1B3 +:107F70005908FF3E27835BE80BC2EDD642547D5182 +:107F80003A093BF527AE3756EC78CFECA5ED978054 +:107F9000DEB073267141FFA9BBB650F8DE3671FD25 +:107FA000F1747CF8295F74BC1EFBC1F9A13F7D3FD1 +:107FB00090FDFA7DD85411D68C5BB3D3D70AE38AEF +:107FC000F2A235AC2CE0DF1336E1FB4F1A1371FE41 +:107FD00027663D8EFCF2C71FE414C8E406EC5BD8AC +:107FE000F42FB16F809F6BD9B7114E1FE26B20FB4E +:107FF0007696900AA4C7D53B1E9908F3FB6632FA21 +:108000000D6777307E4DE7F4FEA3A56BB416BEB3C3 +:108010007CBEA7F97CCFF6E0379400F64FD473729C +:108020007DF6472E077F6CD4CBC170A79EAE2B7612 +:10803000E8E15DDCA087B7D0E960F03436C5825E48 +:108040003921F8A64646BB73225886FA7D0FE87799 +:108050000D9E0B9D37266F0B24F56EA03FD915EBB7 +:10806000007E74015B80BD3CCFE8F8898DF1FB3F59 +:10807000607E7DD88F1EBD7C5E4F77F023B478DCA8 +:10808000E1F0EAE6BFB0560F17E9D6B73F6E62726D +:10809000AC6E8943BFCF6161703A5A631D2AE3E732 +:1080A00022B0833DE31BDA2F50C2BAF117733EE9C9 +:1080B0006FFC81FCA81BF523DF25FE55683767C6DA +:1080C000215EDF7D408E4CA1E5DFCF8CDB25FBFA06 +:1080D000F22BC7AD02FA7E3233CE0472D81F1CFFDA +:1080E000AFFCCB771F188776C358FF41C0EB75F8FC +:1080F00097EF3E706DFC1AFDFEFEEC498B418E063B +:10810000E2EFC7B81F78FC1F32DAB91341A6FF7B34 +:10811000EC06F76B841FB3ECB6517F2794D53BF880 +:1081200038353B2AD1EF3C6E0A6E8C077A1E333904 +:10813000801F8B4EB1F8A386FB57029ECF12F5F03D +:1081400009FB3390FD34CACFC9AA070B60DC9355F5 +:10815000F3747EEFDC2B1924921C2D57554B01F044 +:108160001B7AE435464FF7371C161CFF0DEECFF691 +:10817000B4BB928DFD08FB56B3E39E4D69141F55A9 +:108180000D5BD3B4F3D9E16476EDFB4E368F1E7FE1 +:108190005861FEB0BBA9EBFE206DFFB13D9898A4DD +:1081A000A1D311831E3AC9E90BF580FFAA94A0B9A7 +:1081B0002F3E9C3B4736E827E6A719F591A87F8A12 +:1081C000EB5DE338467C5EEF789F273A84BF7D966F +:1081D0008062BDACF74FFBE3DF9E710DF58DE3BE12 +:1081E000E5D4D3C138FE13E0FFBBA3FC6A1C2721F2 +:1081F00089E1B56807A3FBF1DB6E423E3C31EBD56C +:108200004940B7771FF8DBC979A067961F9E04E045 +:108210002724C563FD77E9945281DF4312FA85F381 +:10822000762C3D9C8672F9378CAF8F9FC8413EB645 +:108230002731FE3D6EF1EBECA0513EB770387FC4A4 +:10824000F145485B5630FEFAF1F5877EF075A3766E +:10825000634B22B393E4EAB8D1600F1EE981279201 +:1082600005E5FEE279F1A41861F16999BD594A0466 +:10827000FF31783FE885EEAA78472B4545953530A4 +:1082800003F4F8C96326D33A0987453F7016617C29 +:10829000E8FBAAEFA191F4FBACA01C00D1AB843A9F +:1082A00013295D4BED2AF457787CE64FE3212EAB82 +:1082B000B67A41EF574D09BE2F43DC392FCEBB9E16 +:1082C000D62DEA1CBCCE45BFCFAE901CD0E5216AAE +:1082D000D7BBE8FC9F81C257080390E2E68428AB35 +:1082E00033374FA5741FE9EE30D9698BEF3F3673F2 +:1082F000B38DF6BB715D301542E5AAC7466CB66515 +:1083000011E2F1043AA7F8E9FBC7464D8772C70F9F +:1083100044FBBCCD814984BC620AF924FAFDF9C74B +:10832000CAA62B143F8A3435DF44DBB7253D86EDE2 +:10833000E7CE5D75E7CFE9F7A38FD54E5768FF45C8 +:108340008B44FB55D3CB8650782789F23D3150764C +:10835000C505BDA67C42A63D96335D81F19202F72C +:10836000105ABEF4580EF6571CA275D361128DD860 +:108370005EF4574EBFAB0A25516319F93325557189 +:10838000972A81BE7BABA4A14CA1E30F4AFEE6E68F +:10839000BC11844CA8288923B43C2C79EB746B3E27 +:1083A000D02990EFA5CFDCE46DD87FD12275247C55 +:1083B000B7A8DFDB5C41DFD7E78555A0CF1312E319 +:1083C0001F73635BB377302171E6063503E9D8C2CA +:1083D000F826D33F0CF944947369395E534E65E532 +:1083E0008EF5E46BC1BEE2D264A67F3A62FBFEBEAC +:1083F00056C8EB2282F29A788A049EA5CFC3B1A414 +:10840000C346EDCDED5652584CE3E2DA243BE75B30 +:108410003EAE8DC125DA11F5F6249093998C07F1C3 +:10842000FB2C0AD7BF7379CDF1733B4022CA6CD0C5 +:10843000CBB209E171CBD2D72AE97B4F2C09B5D356 +:10844000A73B996079262181767BB4DF3778B7E541 +:1084500039C1DDC0FFE52969F94DBE683F14DE0D65 +:1084600000AFC82751B81580DB2DCFCABF274F03F7 +:10847000771E83BB2389E1830EF353F07B3A3A479F +:108480000EDE42411D97A497E7A2CE0233A1F58EDE +:108490002473B9F5B2F6EE3282F6B9FBDB316190A6 +:1084A00043620BF9839A3C4B0B9F77DD9511243C7B +:1084B0002EFABE4E8958407FD45DC9C3F7EEA6BEE2 +:1084C000E942C83A84B7EE8A93A8E3B4EFD9FCA294 +:1084D000FDB8F07B7FF05080517FAD717204F27E69 +:1084E0001B098BFFD6C4075292AEE1F7D45D91FA17 +:1084F000815FC1F7BE418474021EE97B9217858FAC +:1085000078BD68DFD638981E5AD35E9242EC1A3A8C +:10851000289C0E16367FC0B349639F7FC5F972B69B +:10852000E02F6AD741CFDD919E87F161C7E765A350 +:108530002AB1BFF558AF4361F15391C2F46151675D +:10854000924395A27C21F841D0B323A9A104F1550F +:1085500029395A7DBDE7FD1AA75F5190F22DAD9FD5 +:10856000B228242FD5C027F8DE282784FC90F109F3 +:10857000E5FFC5209710D701FC7E2A0FA3B57464D0 +:10858000704F4862768AF201A35F9A3D0CF008FCB6 +:10859000F4E6878C01F8211BBF17751EB4C03CEBB5 +:1085A000389C29A72209A3F2D83C56D2E77E484638 +:1085B000D176372531FBD4D15636EE263A7EC736F2 +:1085C0009900FB1409FD49DEFD7529D57F293D651C +:1085D000827A8BE29BEB4BEA1ED8A2F5DB93DF9D00 +:1085E000BE4189E2C705463E290A6F39A7EB349898 +:1085F000F778C49F6A4BD2C92D292E88EA1721A784 +:10860000A23FD14F6232EBC7CE9F3DFA87DB3DAA36 +:108610006F300F481E8E41FFF9CBD73BD2007AA7AF +:1086200092EB1DF6FE307573A19EC7E31F26519C89 +:108630001C3B523614FCF87B5365EF196A57E64829 +:10864000A18D80F8D9A7FC3564B0C6FF2236AF9D56 +:10865000FA134B69E52FE8B8733A635599926E7631 +:1086600030C66BD7F8651FB548C867F7D210B4B1EC +:10867000A0377FDC9B6AC1718E55E42486B470718B +:10868000FCDF0EF95BB9B77C8A3285BBC694A3F9CF +:108690006E6776A7252130229996979B4808F97C2A +:1086A000AA5BE7CFDC9AA48F37843FE34C0CF8A198 +:1086B0009DB17E7FFE8F1BC250945F960F4A698EDC +:1086C0000F03BE52DA0897CF88A90EE8281355A2E7 +:1086D000F37F35398BF98955F4E3D8687FC7A560F6 +:1086E000A6047192DBEA873C05A50BCEBF5CBEE712 +:1086F00080D9057496FC4D74D460B293DBBBEE4216 +:1087000098A73B8EF1E1E118628BA1FDBF4E9F4817 +:1087100077AE977E9B3DA215EC87D0673D7AF02A15 +:108720008BABC5F7C35265A683960FBB87E7374966 +:10873000D81F89D1F03FED97003CBFFDC77D67A6EC +:10874000507A9807B3FE5C74FC591A399850C1E608 +:10875000BD2499E17749721C3ECBE3587F877D9415 +:108760004D609CA1743E541E5E8B0DE535205CDF90 +:1087700066F4A47C0FFAD2C3E9E6B1B0F2CF5D4C47 +:108780009E2E71B96AE0654F02AB67A4CF61175F97 +:108790001F93981E7BC8FE6210F848F835B1B606E4 +:1087A00002FC4C314A809FB694D0F9F4D1CFDDC998 +:1087B0002C7F43ED18CEB7B75D61FA6F83146EC995 +:1087C000A172B0C1CCF2F08F38C28EA43EEA5BE257 +:1087D00068DC9817B543C27FFFA4AD3211F4E256AE +:1087E0008E370B8F2F051C1B78BE23E14A1CC69FBA +:1087F0000F73FF49C93D8374568A6997B4A99904D8 +:10880000558786CE668749E7F7275C49C0F67557D6 +:10881000C69170F2B5F475117E27A95E5D9CF1C911 +:10882000E97908A7715E46BC4538BCA21CC855A6AC +:10883000120D5C25C4B101C62921FAB8A43FBFE3DB +:10884000F964E1B7C83A3B1385D7A27B1FA1F19623 +:10885000AA1DFF3C1B3F3A6E1C5135E3DE9B1C7882 +:108860002119E56A92E3EC28FAA0FCFE858CF683D8 +:10887000D929FADC6567F61CF4B28857408E1D349E +:108880005EB939B9E497D0BEC7BEF176428F249E57 +:108890008AFA73126D7B33B73737733BDBE3F72903 +:1088A000CC3F157077733D25F44D85EDD5B1673418 +:1088B000F3BC3999F1F31189F11D35E859D09EF2D5 +:1088C000ABAAB5DB467C1EE57254772546C7075137 +:1088D0007CDAF1FD97E507164D0AC9A3215F5A21FD +:1088E00091A1F431612AD313A2DD5F92EDD8EE2F6E +:1088F0005C5F087D326B91BEDE055EEF02AF3790A4 +:108900009DD6DA092927AA9FEA39FD7C178F59BC21 +:10891000B45E8E8BF91D575D816ED0FF4A6CC21814 +:1089200042E9BAEBFF9479D751B8BBDF34FB5BA1C6 +:10893000BBBD8C9E25F3D73429F4BDB94D72C0B2AE +:108940009380CFDED83E76399DEFFF16FCEA62F3C6 +:10895000A873452C43E8B8E9756CFCCCB60392A229 +:10896000919BCC5A564F719939BDC3EBCA0BE17D2F +:1089700040D942496CE3EF2D80430A5F7A9B8479AA +:10898000EDF4063A714ADF743FEBD7EE0F4B77E414 +:1089900045E7D76CAACC03BDDEEC89F3835E2F716B +:1089A00087125C409FD39108B8E1134E772A1037A5 +:1089B0002E7507125DEEE8FCBCB2231DD64DE34ECA +:1089C00033B85A92F47C40352AB323A495D94199FF +:1089D0001C017F0A659C8EE7599F8B7645D4F7244E +:1089E00071BDEE21A117D1CF21CD04E944701E9EA7 +:1089F000F5C3F87A0BA363D4AF1951007E4DCEC3F3 +:108A00001105F2A82FEF64EB08467E1CCDF53D9DC5 +:108A100047AE761E03D96F51CFDC4F1C2AF83C8E2F +:108A2000F34DC97CD702985FDD865FC45925A0C38A +:108A30002E290EEDC023584FE09DC23111E0107C6D +:108A4000A424ED9132E87CEEBB8B3864D23F7C7578 +:108A50008D3F1BBB5C2B8F1B2C88FF5D16FDBAB8AE +:108A6000F0D32B5DCC3E6D73072B80AEF57BB75AF0 +:108A7000809E77ED7ECF12EA432FF7B4BF4EFC48BD +:108A8000B5CCFFAFABB68561BE25F315A4D7CA0D33 +:108A900096B095D2A5EED9F68809FCD907881FE4CF +:108AA000BAAEADFDB5748A9F8CBAC078C88B7928F0 +:108AB0009375E645ED447A5D4402BB9BDEB6B40E89 +:108AC000F93735CE0FFC0B7E28F807974BECAA44FC +:108AD000FDA2CB6635D74BBF5FF6C5FA61DDE2B5C7 +:108AE0001826E702BFAFB74F3B2251918D7FD11AB5 +:108AF00081E752776825E07BCB3A6F09D0674B3925 +:108B00007100DF50BFE35E289737D909F0FFF5CE3B +:108B10005BE809F17EC2034C0E7EC8F504FD5700E8 +:108B2000FED74617CB13527F05F5CE6B6606A7C25C +:108B3000E1BC941CF826F22308615A74FEC6713514 +:108B40007CA3021DAF1FCE360BAC9BAEE4FAA36430 +:108B5000FE6EE9CF1ABA3F0A810EAD97FEEC2EC920 +:108B60008BFCBB7B5DB90BEB13AB17DEB3FCC74AC9 +:108B7000FAFD4E8DDE10F3E8437F6C87F9D84F770E +:108B80001E62FA2382FC26E0157414F46A757911CA +:108B90003FB750F38CEF2D94AEB4BFD706C7627FBA +:108BA000429E8DF2D7CAF93ABD7AB76442BFB2137A +:108BB000E7B9AA5A41BA1C9CB76439D075952B2DD8 +:108BC0001FF870DB2F8F5A24FAFE0517F38B56B56A +:108BD000486C1DB9E5A8A50AEC80FA1319FCAD197B +:108BE000CCE493ED3F3F8A7A7F46078BA35775B459 +:108BF0002B77D8A3FCE7BB787009F0E7AA362B895E +:108C000091802ECCCE1AF98EEA059407A25A309E96 +:108C1000033F1FF52009F9C00E0BBD7989FB91C4F4 +:108C20001E2C34817EF48CCE077D7790CF53F45F79 +:108C30001EEB3F6803BD57C0FC7D619F0EBBBC426D +:108C4000CF46506F52EF15EC9BE8BFB7BE1F5500E3 +:108C5000F87D9FEB454AB737FBD2FBA27FDF13B30A +:108C600088375E430FC0B3868F4EBBD87AC86997EA +:108C700082F02AA50C4F8A85CD5F596F0B435EE3C6 +:108C8000756705C34F920DF173D8B4AC0EE8743814 +:108C90009DF14FB3697D6E03B337EF001F1D9C97A5 +:108CA00040987E61FA64DBCF985DAB53ED1847D5F1 +:108CB00085E6209D892BC60FEB812474C852151FB1 +:108CC000E537235DBD2F1EB0C03C66B431BE8EE2D9 +:108CD0002BACE343AAA790DE9792791E9CD20BF0AF +:108CE00029E2DE445B2462F6F696BB441EF786203A +:108CF000EE853CB49F95E15F5FF1AE1857B417F174 +:108D0000EECAC6FF4A83E7DDA9BFC627C451107F5C +:108D100088B84AD4B7B8999FF6218F77E2399FACCB +:108D20002C6C437DBAF24C03CA85BD82C9BFFDB429 +:108D30005E6F89B88A460C3C0E6BBB05F2E8E53FD6 +:108D4000921C4DA47FFDB202D68F406F5FA55E30AE +:108D5000F5FFEB0CEB63596EC6B7E7F65004A37E44 +:108D60006F40BFF7F24E09D753AFB73F1239210119 +:108D7000FD56F2F8E2F2B36513FF02EB2D7B1271A0 +:108D8000FFCAA567677FE32F14DECBBBA7F8C16ED0 +:108D9000BA9A82C80FDDEE183FF8B554BD55405C55 +:108DA000BDAEEDD504C8135DF8E9D802D06B856E71 +:108DB000A6072EFE4C6E047CACFFF10B93E1FBCAC0 +:108DC000B0940CFEDAE53D3FFA07D8A9DADDAB61D5 +:108DD000E70869FAE9AF2CB07E600AEF62EFF7248A +:108DE000A25F77E1C9AD9301CF4D6D4DF8FDE293E0 +:108DF000BBB07CF0C72FECFF1CFC8060821FEA5DDB +:108E0000FCD9D66F7D0E7C3B27C10FF3A80B296CD4 +:108E1000BD4FF0AB51FFB41F40B913FC3103FC3917 +:108E2000E0F36AA647047F1E2B61EB21B34AD93ACF +:108E3000CBB1E931D5E8BF72B9AB5FE0DC05726751 +:108E4000A2F84BA5EDE7CC74EE8275F0257CFE759B +:108E5000798C1F9A29B7407E202E2F62C9A0F5E693 +:108E60002D6A9F0CF86C8E25C531C8A7909C8CAEDE +:108E7000CFCC6E79FD3389D27134556767297FD3A2 +:108E8000DE767F41FDDAB7CC2C0FD0CCFDEE798BAE +:108E9000DEC37507CA008EB322EF235FCB6E29D8DD +:108EA0009FA8D7E387713C34F3BC07ED1FED48D191 +:108EB0001A9ECF949635C13AF2E1FB2393806F5FFF +:108EC0003E7F6F6C5D9E96BF59FBF40E26F7E9B5A9 +:108ED0009DB7C03CBF9ABB741C0CB38AAF93B8203B +:108EE0003F06764EB5EBF4DBD7DD4C4F7A1CC4F56C +:108EF00015C8BB28C405FBEECA09396146FC3C8590 +:108F0000FD7BADCC1FF2FE6ADE53B0AEB5DD1C4A70 +:108F10001B0F76A999DBA7DD0C5EDADE01EBE2B46C +:108F20003FC7570AB09F4E7312B65759FB69BBD95A +:108F3000BA5898C3DF9D0D760AFA2BB4835D51AB06 +:108F4000D1AE782D7EE0878B50250DF13566F1E8A6 +:108F5000E8BC8D7912D063B0BEBCCD5DF2A87B7C3D +:108F6000F429F22A467A1C83EF74DE899E00D62308 +:108F70007B92D18E0CE4771C9CF781A58B8EBBED88 +:108F800095F7500FD503BFC3F8A1333A7B2BF8698F +:108F9000FB4BEF21BFCFDACBE853BFD7678638E56D +:108FA000D2DA00F933751CEB397F6F97BA6A70FF1C +:108FB000C74B310EC8837DC0F97F65C57B67416FA4 +:108FC0000DDE9BE685F8F98397981C1C3699109F57 +:108FD000875B47ED02FB42FD5564E5FA066FAB1572 +:108FE000F1CBFCF792F9CBB7423CB5AA96F8413FDA +:108FF000D47754667AD1AE5811BFF57B8F22BF0863 +:10900000BF95DAC3E5D0AF93DA9D1888AFA6063BCB +:10901000901EAE78ACEF9C1ADA5A8EFC955F04FC79 +:109020007570DEFE4D3618772A7140FFDBB3022FD4 +:1090300065E03C2402FB1EB69B5B4A15DA7E7BB9D9 +:10904000D7413148F1B53B15EC3CC9B570BBB61CF6 +:10905000FDE1FAD4857E889B7AE98B97D6A1DF540F +:10906000EF8D457866EC95EE657E879D30F825E4BA +:10907000CB19E19BC220FFEF73BC09FC7D60EE5C65 +:109080000278F9E0E79401E9F71953199F3AA7B676 +:10909000A19E79FD25EAD78C89F263FC2FA87F4336 +:1090A000CB498A43F2A39CCDB66AE9D9626676CAF7 +:1090B000C9ED4E4E05A3EB692E47A7B9FE39EDB6B3 +:1090C00070FEE6F959873A06ECECFB9CEED81DE8F9 +:1090D0007FDEEFAAE51194A3BA67995FE6B206F2C4 +:1090E000EFD3F0ADAB8CD949912787BC39E6CB21C2 +:1090F0002E71413CEC6D85F5624A3FA4EF575DC38C +:109100000B005F5F703B9A9E2B61FC46FD35C49B54 +:1091100067FE6EA5268FE5D9FB8AFF640FCFFF257A +:10912000070B213FEB4E89473FC62D979862C00E33 +:10913000E54BFE562FAEE761BCDAED4EF3B7EAE43D +:109140009AF97BE73DF18CAEE1DF2AB0DE92E8F1DF +:10915000B27E0DFE5CEFF837C60F71CCCC16750CE5 +:10916000C40D22BF2FE61D5E175BADD563311E36E1 +:10917000CFF008520D7A81FAE376CC073BE838103D +:1091800067B7DEF4248BB39B903E1FB9D9FA6139DF +:109190009D1FF865EE9CE01A665FE3711EEE1CB23F +:1091A0000CDAB99B52A5269F16CF0EDC8FB58DD356 +:1091B00059F8E3F5545ED08F7B85F1633DF871BEBD +:1091C000FEF54394BF997E98B197D1BD7E2FB37FB2 +:1091D00022EE06BD07FB06414FF8C646E5BADED2D1 +:1091E000350CF853F079FDE4AE61809FFEF44379CD +:1091F0005C18E5AE7CD430CC2B887E3E307B71DDB4 +:10920000ED031A37A21FCBE521FE652607822EC685 +:10921000F805E0823850E8E7127770A207E032459F +:1092200036C1FABFD0A7F52F6FD6EDEF37EA539BC3 +:10923000C2F4962D1C176ED2F00FAC61C517E01367 +:10924000F759C535327CC4E57955C4776EE7CDA0B2 +:10925000AF88CD84F87E28EFC473C067333C76ECCA +:10926000F70989D1D7BAB712D2A1908761F14A6BB9 +:109270001CEEA315F918235C933D4C8E05FE459C0E +:1092800001F976A8BFC2C3E8BE80F35B8347D2D999 +:1092900071C1D75E53E83DC8BBF7677F44BB2F2B36 +:1092A0003F24C61176308AE775BAF502984F655E9D +:1092B000FFF55A0E303D23F84E7C5739BF1751DE6B +:1092C00085E7F322EF5AADB07C7E0CD1EDB312FDF1 +:1092D000F5C4E36BAFBDBFDEF10F99AD5751370356 +:1092E000FAC33C02886F69851FE6D7CCF16D6CA785 +:1092F00010E5E32EE157F934F0709F0CB61D4DEEEA +:1093000063FDAD67DC49FA75821EBFCCD04F7F701C +:10931000371BF2FDCD39FB09E49FE26C095C7EAF9F +:10932000A2DFBFB9E73C80EAAF447DC7F258038DA6 +:10933000638437C6DB37BCD74B8F66537B2DF0F386 +:10934000F39C1E64DBF5CDF3113ECFFDB09F0BDA2D +:109350002D5274EB2376BF771DE485132779F3D163 +:10936000BFE6FB31E32793BFCA945F275F69C985D6 +:10937000F31FEEA01EFE946AFDBEC6B45092AE9CD2 +:10938000519BAEAB9FD53058F77D50E348DD779FBA +:109390005AA02BE7347F45577F684BA9AE3C7CC76A +:1093A0005775F5478467E9F78BAD6BAB067918B550 +:1093B0006781AE5DA2D245F2E9FBD16DCBF4F4300A +:1093C000E073ACE06B5B5781569E2E7A06233D120C +:1093D0008BF5F89872C5B0CFF306F963EC5E037FA6 +:1093E00018DA0BF98A238C3FE2F635FF15D6AFE386 +:1093F0008C72C4FB1D43DB4D4EEAA3DF7EE4647D2B +:10940000DC1205F87F3F1434FEF45B06F92FAF4EF3 +:1094100064EB4457660DE0773339996B65EB8773DE +:10942000F93AA2F83E3285E985C129FC7CD075F273 +:10943000F329CECFC7FAE367EAE67AC05E54108C10 +:10944000C71D15EBFE0A799DF94A84E453F9D9C684 +:10945000E7B39DB7DFB1D681FDFD606D2A3E77AEE3 +:10946000F5E2FB27D6E6E233BCD68FEF5BD716E3F7 +:109470007337F503E1F9F4DA0A76AE626D10EB3D6D +:10948000B3B61A9FCFAE0DB1733D46FA5D49427B2C +:109490003B97E8F5DABC6AF9BAE8338F3CDC292758 +:1094A000F4C647AFF6F2A26BEEBF6E3C9D5F71480B +:1094B000C3A71353E25DB87E38814CC0F87680F6BE +:1094C0009FAEF5571C1A3A307F1BF9875CBD6FA819 +:1094D000761F8E78CE05864EA76296B2F521352F7F +:1094E0008AA7FEF9AA6FFC046C1FA443D03F06ECC8 +:1094F0008FA6FD0103FF0694445D1C2D9EBFE47CF6 +:1095000058C2F9B5C4C0AF3B38BF36FE7FCAAF07FB +:1095100063E2D12F3F68F666BA35F43F181387EF40 +:10952000492EF1CEA1F4A35EB2C307EB062966C4AF +:1095300087049109E68F8738304F127383F914033B +:109540001E25EA57FA687F250AD35F126C3882FE1F +:10955000FDA6A87EC57D10B151BE977BF303ED47F4 +:10956000B5803FB6AC6B01F873EFA47875FB674A22 +:1095700015F99AFABA14E4AD8FBC60AF7637286F4C +:109580003F06798BFBD7C99BE07772356788761FDA +:10959000A5789670795B92B20FE54DF07B29D83BA8 +:1095A0000D1C6F717E7F2B85C59307B99F02FC51FF +:1095B000D087BFF29B14BD9F77A3F82E214C2F12AA +:1095C000D2950E7AE246DB53C951A05D892D418DBB +:1095D0001B73E3EDFBC367AF767B5DD7956FA29AF4 +:1095E000460239AFE1D0D5D8EC2AF013D961BEDC00 +:1095F000A5E1E3CA84E085145A7FAF99EC85F509AB +:109600006AE6BD0E0FF23DE295FE0BDA68399F97D0 +:1096100027A892D742F9C64A0B8D201F5DAF7D0661 +:10962000FA229F3F27F027A45B53416EF2E2711F9D +:10963000BB5FA089E74D8B44712AD5BD1EB12511B2 +:10964000FA25D29A2408635A08ACA76F91FCCD3250 +:109650001D4F4EF1350150E32A4A648247325BF0D8 +:1096600039897436C192DD64D22D43FD9B2AD426FC +:10967000807310B9EA403E4F797AD517B02F079220 +:1096800093D781B7461B5B7FFE34863DD552C2CE51 +:10969000C3FD31260C71D30C1272A4D27AFF2607B7 +:1096A00016C3F89F9A1CEE03882CE54F5D98F7953A +:1096B000501F94DA0BABEF443966EF11DFBE683D03 +:1096C0002CCBBDCBDFDDC8F2104D9B19BF37AD638E +:1096D000E591A98CBF07F167612A938B18A2AA04B0 +:1096E000FBA594F320FE18DD7229DE8B181D10AF48 +:1096F000F623489758D28678DD5CB53DB411BF2C6F +:10970000C2FD3B522448BE88D3F2CFF5F567B3B50E +:10971000046C948F62ABDB22E66BF4A7805F48C7D2 +:1097200055E65870DFE31352E82BA910C79C961436 +:10973000AD5F69260D44F269E1B86EBA945D0F5DC4 +:10974000CCA5FECE0065C1AA5809F7A7DC287D1676 +:1097500001538F8FB2F2FE34B20BF207B52E920A8C +:10976000FB132D761BCAD9862C966FB08C24783EBD +:1097700098384CBA798A7D7482FF283E1602FC968E +:10978000B0F41EE0C792DA80F12051BA32A0DE7E3A +:1097900089F181916FEF4C1579844CC6EFE4DAF6CC +:1097A000AFFD56E7DB2E14C66766BE514CCB25CE07 +:1097B000852E07F55BBE3F61269CCF683F4A501857 +:1097C0006D69C16F837E6EAF723EEEA6F5D7FEE087 +:1097D000FCC3662A3FED8B25FCFE057CA7FCF976D1 +:1097E0000969833CD2564FE83E807FC11BDEC370BF +:1097F00084B4FDB5BBB3C1AEB8CAFC5D780E65A13B +:10980000D50BEB4F6D90C70446B94AE1A1FCF42497 +:109810008022B3F2145A9ECF512BBEEF86BF29DFB0 +:10982000E42CF7AD73411E72A7E4003F65D04EEA09 +:10983000B7D0F2B96F9371903FEE4F6F4D106555F1 +:10984000C2F3F4371BBE0BBD3664F93DEFFE3BF4AB +:10985000DF29E3BE0CA99AADE74CE0CF9BF9339F1B +:109860003FE72F67EB4F43AA278421AF77D6EC6DF4 +:10987000B2033F8E26788E94288C3FDFCA728621F1 +:109880000F734E224D90475337133CD7077205EBA9 +:109890009DFEE594D685E032DAC290A73FBEB66D54 +:1098A000EC06B3467F52DA048A585A87C19D877105 +:1098B000D82412FD07F3288FCE0BF9EC165E9E56C6 +:1098C000C7F272D600D5AB60DF0CFA388684536DD0 +:1098D000B81FD887FB40E469C401F06657440EC244 +:1098E0007AEEB84009EAD5F124F46A277D4E0CB42B +:1098F00063B9D8166E82294E81F172C07E7A15A0A6 +:109900006319F570A15C415AF0F955D286CF99A43C +:10991000139FB7916E7C0689C30CCF03A93EE4DF89 +:10992000C936AAE707E3BA1CE6E50A7658315F3A7A +:10993000AB2264F1F6E19FD488F38124948D7960A1 +:1099400025943D57E36F9C9D3F6F31DC8FE135E9F6 +:10995000F7BBBECEF5E6512E37DB25AE4756897BE9 +:109960003642DFBF939617560CF7C3B96DFA1DF355 +:10997000C0EA7C1BE6FFB69BBD59E87FC0E530908E +:10998000B7AB6BFF379200EB8C2BD2405E6B366C23 +:10999000CA8238A066263F27A3A859551A393FB76F +:1099A00094C125F63B88F77FE07A1DD7AC285CE7A9 +:1099B00028FCB84E28F2790B9CA867CAA9E300FBE3 +:1099C000D12FF07984B95E10F2532BF840512DE974 +:1099D000B4DD5CBFCF0FFBE11684599EB85C21114A +:1099E000F49705FCD5BBEE27943F16D41EC0BC7E71 +:1099F00074FF115B9F2E99DFB118C6AF596E2556C3 +:109A00005C2F6A7907E4795EADD50BE59A45528003 +:109A1000ADC3DAC243A1BCC3B711E474DE03013F96 +:109A2000E459E978988FBDC5C6D6296D747C58D79E +:109A30009B56CBF785D43ED809FC49EB05C05FBEE9 +:109A400085D657E83393B0FD74B12ADB9F143B955C +:109A5000ED4FF25A1B0EC37D24DED5C4AFD261E7B1 +:109A6000EDDC25B17DC504FDA981FC9D1F3E78D5A7 +:109A700089F126F80583E0ADCAF2C98DB217F689DF +:109A800012C581FD2CE0E73F9B6B9B301FFE4935E3 +:109A90009D1C1D7F6E8B8F9D4738C4E47C6E757E48 +:109AA00017E4A96C1556AFCC728F2AAC5FD8480565 +:109AB000CA7D3E61F98F657CDFBF316EB0355AD803 +:109AC000B824A2831FF419D8DBFEFCB0FEE627F40D +:109AD00006E897EE3EE45DAA789DF96BFC09F20F6B +:109AE000725B60F3CBF12660B520CA37E0859D3B01 +:109AF0007A80D99598A725AD3DB7B9D425B015E79B +:109B0000DCA1211BED88B616A28D236CA5C13BB547 +:109B1000FBC3379704176BD78B8AD398FC4D4CE364 +:109B20007CFF869A0DE3C99319BFFFFE4D82F7BEF5 +:109B30009C7F93E213E44FB231F91C002F03CE7FD8 +:109B400039D7E3FC19F533BD4D40DF99692CBF5679 +:109B5000585129C3FAD1B81F8ECBF826E94D9FFE84 +:109B6000F0DF1FBEFEEE0954A531BFDC743D7E79E7 +:109B7000B99CB9B08ECEFBA345565C7F1576B30079 +:109B8000880572DD49C254F6C17EA05D496B267816 +:109B90001F8F3B087BDC793FC0E6D536A2E8F2A4F4 +:109BA0000E5D39A33655573FABC1ABFB3EA83157CD +:109BB000F7DDA7FA75E59CE6625DFDA12D015D79F3 +:109BC000F88E0A5DFD11E1A0AE3C6A4FB5AEFE47CE +:109BD000744A113A9FC293B25F05FAAA81CEBCA221 +:109BE000A81D1FDD16D2B59FD0B57426E8AFB17B96 +:109BF0006B75FD90D3D46FA3E506FA1FA38B5F06A8 +:109C00003DE2AF95C80F7C8042F61DEBD3B2FFF466 +:109C1000F40BA0C717549BA3FE1EB4220FFF15E838 +:109C2000E337F889C6B87AC511F5B09DC2577BA451 +:109C3000E530C8C3B6347D5EAB5CB6E3BC3E3A21CA +:109C4000E3FE975AE05057948E1F414730EF0304CC +:109C5000F78519E7DD1387CB3BCD788F0A9D076C1D +:109C600099B6A6EAE91DE3D5D33B2E574FEF78BF4F +:109C70009EDE89C57A7A3B03B97DE237B9424F77D8 +:109C800081DF62FA1FE0F7CBC6E7BE34635E701275 +:109C9000EAD94F76703DDB5B0FCCB11545F5005529 +:109CA000A96138E724F0D64B2FD8593CD3A31776B7 +:109CB00070BDB0C3A81702AFA651F8C6877C18576D +:109CC000FE6EF1840CD073E9649F38F710FA02F548 +:109CD000B72AE4FC18C8795CA3BF4B053BB1D38A13 +:109CE000FEE4B1C335874D00A78DC5010FF140EAF1 +:109CF000ED34B1EE187A1BDAC5DA1A545013D98D47 +:109D000041D4A7E76E667CF13BD08774B2BF873839 +:109D10001D16A70C7A8418F4A0D11F167A66827AD1 +:109D200014E3E61BB51B03C5EDF98B983D11FA75DD +:109D3000022F93652AFAF7C2CE3415877C70AEA045 +:109D4000C0169089491BC777A1DD994254D4C33707 +:109D500055F81F5F03789BFEBB0CF0AB7AC5F3513F +:109D60007C9374C4771BDB575D2121BE8D7836D977 +:109D7000BCE897C466B2F5DF987481F7600CB4173D +:109D8000F87E31C68F7C76723E8B570A8F0E69B291 +:109D9000D3769EBB7CE8CFBCE8F4BF0AE593AB5812 +:109DA000FC38FE4440867D56390D3EDC6FF7A22F0D +:109DB0005806E593F7B3EF45A742B80F6B4823FB6E +:109DC0005EB0BEE15538A75FF52DF6FD95F737E19A +:109DD000F92E6AEC58FB929632289FDCC8BE4F38A9 +:109DE0001D6E82F288663EBED4F66A02D8C36FB397 +:109DF000FB157AC53D3CCE99C2E9D28BAE3C7E982C +:109E0000CCEB8B38674A35A3D7F2EEE02DC85E065F +:109E1000BA19FDFB7212C2F234A2E2733A09E3737B +:109E20000689E0F75B4917966F87909E962B89D736 +:109E30000CE5AAF45CC4FB6C1A2263DEA2D86FC3E3 +:109E4000FBF2CEFCE737484274FD5CF8092D49C1AE +:109E500055E047B8CA8278FF47553AF37BA34FE6EF +:109E60003F7892D46C3FFD7E9E9F278BAE8317E197 +:109E7000FE0D3AE4C3E0F74E4F67FB6BA69162DC40 +:109E8000373CAD989DAB9B067E31C54FE47B8A1372 +:109E9000F6E5E15D477DC4CFD17C91218FACA81858 +:109EA0008714C8DE512034F5E9A3BF0DF1F48B20EF +:109EB00090E9842C4D9F70AB8A411BF37306AA77FF +:109EC00082EFF77991AF87CE09FA4CC89FF97A3FB4 +:109ED000AA3E9DF951E2398D5497C57F89F32A58DE +:109EE000AFE2BEEEAA562B61FB74483AECC7A9213B +:109EF0000D48D7B3A355333B6FCAF44F15E7BB2AC0 +:109F0000CE4F677759910EE7EE94C290D7A9D9F951 +:109F1000FA29E0B77EFDA7BCA128B773387FFEEE13 +:109F200070CD46A6DFB95FF5BD91F217A3A2F24F3F +:109F3000FD4515EE237C7B31D38FE07EEBF4623F51 +:109F4000FEA29B97051C19AA84F6E27AF5A24BF4AF +:109F5000CFF562BAE83F40598F96B3F957A98EE121 +:109F6000C1CD9F197546FB125A0772904A5A242890 +:109F700067916E7C7A8963BD3B078E5CFA4D50CE4B +:109F8000B43554CEA4FD3B410FC2FC371F2CD4EA9C +:109F90004133CF3B9B6D0FE3BAAC42C201C82728C7 +:109FA000877AF26D7BD2BFC47C5B7BBA97E7C11A1C +:109FB00026B07D580D63E179C66C6FC63CB231DFC7 +:109FC000D22B3FA3CF63DCDCC2ED478BB01BA15487 +:109FD00098376CFFD4D98F897E2F3CA74841D42F66 +:109FE000B7A5840EC2BC6E210D9950DF64EB92C1FF +:109FF0005E6CE1E788B60C13F12CA52A3C1D2CEF12 +:10A000003E96D3F88562760EF9855C1BEE9FDFE401 +:10A01000B16C823C5EF4BC266FC7CF9F8EE1F72007 +:10A020006C8AE5F8D8128F71C923301E6D172B7B0F +:10A0300087015C7F3251AA527892891FCB16D9E1F1 +:10A040005EC7F294BF473A90AEC77268FB132F29E0 +:10A0500004E2F3171CDDB14E3ACE0BFB5AF7B452B3 +:10A06000783E3EC2CCF4237B64D53A16CE415E7E68 +:10A070006C06AD3FB6D38C26796CB109F5E4250B9F +:10A080007918F6FDCCB2C93685FA2197BECEF7E134 +:10A0900028FE6CEDBE8105994C5F1EEB278FE84EC4 +:10A0A0002A49C880EF697D9FEBBD926ED29D331423 +:10A0B000F71EFDCD4D74FB45DC49B7613FA26CBE78 +:10A0C000E224A1646D3F5EC6AF4A90C07947F315A4 +:10A0D000177E4FA47E2CAC27243A8B1588BB4A8967 +:10A0E000E35040C223DF48E75EF72A4C52BA7BFCBC +:10A0F000C7C1609798FF89795E1FACC3E8FDCEB1F8 +:10A10000445F36E6752B3399FE341BEE65A8CC34DC +:10A11000C2CBEE6510E7C33B94401CE483EE30F104 +:10A120007D54A9013CFFF8E82457FE160D5E6664D5 +:10A13000F0FB5BF83D120E5A1FEF2730CC630395FE +:10A140001F1FE5DB291992AEBED05B8B85FCA84EA4 +:10A15000F45F1771F97932939D735FEC60EB2F7F99 +:10A16000DAFC3EA6F7971E8DB50012BFB688248C88 +:10A17000A6ED42DF4DFE4DC00B7CEA3F00FB6EC8F2 +:10A18000A3CC8F7094E616B1FB04A6E23AAAA466AB +:10A19000A09EBD5E3B312779E96719E0BF2684BDEB +:10A1A0000EDA4FECC8F3B87FAF3883B0F3E33DF776 +:10A1B0005B760DD3EE1F9B935CF219F04B8B9944A9 +:10A1C00092601FE57F58197D8F9000F859ABF78F8B +:10A1D000C0BCD70B99A14FA19E38074B0E75E3B9B0 +:10A1E000DF32F04B72FAA0BFFD6313F091910F00C4 +:10A1F00070B0BF03F1432187FB8E84BEE98AFF68FC +:10A20000B9CCE6C4FB36EFE2F415E3DE287FBA7280 +:10A21000983EE99624BCF76520F8C47E6281C74F5A +:10A2200033981F249E024FC673799F6698783D76B7 +:10A230002EEF85CC20E2F5C3ACBF0E335318EEB041 +:10A24000F0FB1F0698EF03BC9F7F76BED74B87CAF3 +:10A250004C82E3DC117B7D703DFA7F09AECF333851 +:10A260005C63AE0FAE27FF87FC1120DD7F74E60C28 +:10A270000C17A5E7E72087646A37DEEB7147D2F554 +:10A28000C177E47F8837802FE9FAE0FB25C21761A8 +:10A29000F0CD257E73AACC81D19CA7319EA311E776 +:10A2A0006BE62AD496527B176B61EB6BB1B32496A5 +:10A2B00027FA27CFD3F4D0D143224E881FF75B591A +:10A2C0009ED1DF3D4C6B3F7FC3F1F34266E038C067 +:10A2D0007FC730AE172AF4F58E1BEA897B3288DD02 +:10A2E0008479F287F286E0396F387F84F0677AF1FB +:10A2F0003EDCB7B9BE17FB8FC5FAE0A6226F0AF89D +:10A300000D019B3D2253BBB069646D2EAC87045296 +:10A31000FFF314DB674DFD550D9D041C17D71E710F +:10A320000C31F78F8795F28B450D7DACABFCD813C4 +:10A330007A5F6BBF57EEF9B56388262F339A74990D +:10A3400098BFDF6D62F961BEEF26E5C6F0BE05F687 +:10A350006DB841FF0751FF0B7B51FFF24FBC608787 +:10A36000A8BD27B0CED01D1F8BF6A0696471AE7654 +:10A370001D283193E939B3E17E8BA89DFE9FDD6FE7 +:10A3800011F55F24A226F7D5BF82EF055D02F6BE68 +:10A39000E921F6D746D6B6D9CE0C857B497263E063 +:10A3A0007970AD3FE60CA54F7D72C9AD996ED8F7B7 +:10A3B000CACF2904F7DACEE8F2B7115D392D74C49B +:10A3C000764697BFEDD495C57E5AB38BEDA72D2D5C +:10A3D000B4E13EFFAC8653BA7E9A4DECFEA4418DAB +:10A3E0005DBAF6A501BBEA4C843CEF795DFD2DEB2F +:10A3F000181FE73477EBDE9B9500EE671DDA724598 +:10A40000D7CFF01D24465B1E11B6C568DB8DDAE39D +:10A41000D09547B7A5EAEA9B1DB9BA7209DF1F14A8 +:10A42000B0B17D3A65B67CDDF7FAE4CA5B33417FB3 +:10A4300091761D1C3DFBC207D867A3289B312F09CD +:10A440006B9A930A7AEF0FAF4F0E60FF46FE571FCD +:10A450009CC4D793585C2DF88114FA73E17B7F7C00 +:10A4600071BF27300FE8FE23B88F04F6B18973D08F +:10A47000B9C41B64F791F479BE663DE7FB4B96BE09 +:10A48000BFD7F4C885FE9E9228DFB27B4A2E958AFC +:10A49000FB8DF4F7CA89FA6B783F8FF0FCC340F765 +:10A4A000CB99AFC4E9EE978B8E9780EF2F0DBEF658 +:10A4B00078EB6F783CB99FF959AE790FCB7704FEF2 +:10A4C00092FAFEFE684F1C90A693FBEF64323A4569 +:10A4D000C7C9C4EF66C37D2EDAB806DE0F14D7F401 +:10A4E000DCEFF7A5C73304E1BD51FF9886E95F872C +:10A4F0007BCD06EAFF8DCCC0E00C8C63FF39BB1B23 +:10A500000B36360DFBD90B72B0C9C2CE33520D8655 +:10A51000F90911D71063DC93CBF6BF2D4EFD4FF434 +:10A520000762215740ED76ECB76270DDE46B92C3B1 +:10A5300002785D62EB7EE7712F9C3B8FBCF3BF30EE +:10A54000BF21E29A3819D6E5AE17CE9EFC0ABF6F3E +:10A5500001F2DE60B7C74E1989E76B1E85780D6082 +:10A56000E0E7241EA530A451FD9168B2E339A84468 +:10A570000B2B8F85FC0CADF709B99C04734980F94E +:10A580004F8473266C3D24719F72518B6FE37AC8A0 +:10A59000C79D7F8BC5FBB133F5EB229F9099BF1D03 +:10A5A00005782976213EC7BC3435457B8F49CFBA23 +:10A5B00091C8EFF4932F8EEE8BD1E765443EE6E62B +:10A5C0001BCCCBF4DC1F60C8CB0C9457FABB2774B0 +:10A5D00035B38FBC92E520ABD7BD2B06FD0191674B +:10A5E00012F3346531B9FE534AC094459F7FC90CBC +:10A5F000C85974BEC762585EE6D8F4698930B58F11 +:10A60000492011E253D8E79B91D49BFE9047D9A0F3 +:10A6100091FB63CEBEF584838F777B1641BC967920 +:10A62000024E18EFBC85FDCEC5F958FE4C60FA2CE1 +:10A63000B3A73E7BE6F3E779AEEFCE2711DD3DCC45 +:10A64000A2DEB82CA68FCEACB5D9360C8D7EF77EA7 +:10A65000CFDA00719D3B879FCB0A30FC7CF812F368 +:10A66000E797B7BC6781F34F93B34A6E077C403DD1 +:10A6700098C772A5CB02F767DFED0E8D80F7F55E08 +:10A68000127811F35B5D96D914CF1F727FE54333C7 +:10A69000CB137D18C39E029EC95995B7C33C3FBCDE +:10A6A000B9CB0274ED298FEF42B99B9C15C4F13EE2 +:10A6B0009C6828DFCACA84EFD308707E437BD987A1 +:10A6C0007D34DA43E33D63AB2D3CCF68D40F99F181 +:10A6D0003AFDB178DFAF916F97D8C8A60CFAFD6B41 +:10A6E000FB522C1054D426A8C31CBA7CC73FA71712 +:10A6F0003ECCEAC4796D29E9CEFE4121E62F1CAD9E +:10A70000749C55FB589E7B95985F877E7E0B393EE7 +:10A7100007BA67CFE85F0C24BFD23EBE5F8D3FC94A +:10A72000FE5F67407F93F6BF990CCF4D5203E69DC5 +:10A7300035FB6B4FBD42F9453675276BE556ACEFDF +:10A74000BC2E75E17A5C3D69417AD777D07925C016 +:10A750003326027965B2573FAFBBB4FB2D69BBBB53 +:10A76000499BC527411C618EAE0FD3FFEB4827F6EE +:10A77000B7AA4DFFDE686706E283DF70F9137C55E8 +:10A78000CBF1502BF01ED6C327EE1912F778CE204E +:10A79000A12DC0BF954E9B2A8F8575A4C062806B8A +:10A7A00029F1225D971AECA6B897E80EFB1CE4A3EA +:10A7B0003B9A8DF0072C00E79D2DD79E57CFF93B94 +:10A7C0000E7F5D16A3FFAAD8994750360A3B713D0C +:10A7D00089C2F784163EA204F0BE7151FFFDF19DBF +:10A7E0004F47E89CE4F8A936B00F739243BBA17EB3 +:10A7F000D6A9AEB3126CC4B40770BDE983BD17DE31 +:10A8000082FD7578E9C54418A06BFB4DF4CFDABD25 +:10A81000B203F201B57B5F457EED0F6F3DE7D14995 +:10A82000B780AB1DE4DA0897C83F1BE56747168B76 +:10A830008B03DEC02FA09D79701BDE7BD57D3F3B57 +:10A840000FEE92A9654D8245415502DB28EE772136 +:10A85000FE800DF27C53ACEC1E9A771CA53638EFC7 +:10A86000EE719A82A0FF36389639E1DCB3B8D7DBB7 +:10A870002399D83DFE649913EE11596CE5F7507E8B +:10A880003D2E9243F9F5571676DFA72B2E84F71B42 +:10A89000743B651CBF64FEC7E3E03E82F4ABF60286 +:10A8A000D8D7B60BF0AB8983A794758F63F76E3258 +:10A8B000BAB972187CF56ECB26B8CF7003B533F0F9 +:10A8C0007C9CCF1374355B3F083BF08E37BEEEB0F7 +:10A8D000C6C6F8B33E26F06829E41B8EB2DFD5FA6F +:10A8E000D8114884FCBFF19E48E1C7F6770FF325E5 +:10A8F0006E1FFE55F73C8AFC73BD5321AEC4683B06 +:10A9000031CF7A7E4F8D91DEE2FB2BFF90FBE40787 +:10A910005B36FBDE5F9CF3059F573DDCBBADB1C7EB +:10A92000F5D47E019CF570EFF635FCFCC7B97EAD21 +:10A9300007FF3C59FB9ED135DA8F0BBF3FC3E7F9C8 +:10A94000CC1153456B1FF0E666B3FCDD48B71284AB +:10A95000F58F511176BF657FF5C4F9ECFEE0EA286A +:10A96000ED5A0270439EB6AFF132B359BDC7B97EFE +:10A97000E848EAAA417970047E0AF1FD872F0DF7B5 +:10A9800069EF0B5439BE3F98CEECB5B867B3486950 +:10A990009080AF043D6E4E0E7E0FF403DCB3CBF21D +:10A9A000FD8C9F051D808FBDE887EBE33401F70622 +:10A9B000BE7E24E2B381EE35AD877BC7AF897F854C +:10A9C000DD9BCAE128971FC0FD11175A24DCF776DA +:10A9D00081849AB0FCB084FB3D2F1C637E2344D657 +:10A9E0005211E867260F354FCD4E8C80D487D8BEE4 +:10A9F000EAA5BB57E2BE25283F40F5C6D254769E55 +:10AA00006BD9067D5CB3FC61BD9E86756388D76A91 +:10AA10004910ED53CD367DFD5AC2D6576B0DFB9DC7 +:10AA20003CDCAE18FDF6AA6CEEAF1791A21B396F95 +:10AA3000F528092CCA467D1B9441AF8EE7FB9D2F5C +:10AA4000ECCE49D1FE3E4EBB4FD29D3382DFEB1997 +:10AA500032147EBFC781CFD5D981E5D0CFB7B243FD +:10AA60002BB2C15F39CAF1A774B3FB3EAB993DB3BA +:10AA7000421292FE695D68433FFC41B8F78BE2D118 +:10AA80006A657652F805B27C9F9C00F938295479A2 +:10AA90001B34F9E9B40AD8B7B1A524900FFA734B67 +:10AAA000A51DEF79D86562F7FBD9ACEC5EA2F03357 +:10AAB000130FC21AF990B6ADA5907275744548820D +:10AAC00017F250EB70FF4BF36482F7B789718ABBC2 +:10AAD00082ED004FF61CBB1F40DBE20BE43B34FD74 +:10AAE000136EEFEB39AE1FDF9B83F7EC7EB46F384C +:10AAF0003E4712C607E21C018C097E8CC013FCBEC7 +:10AB000011D19CCB1CD92645CCB04EDFB66E3EF0A1 +:10AB10004DDD7A761F52F77304F7E1B87E9556EA59 +:10AB20004D88C257D7FE54129E6FE0766B21C49DAC +:10AB3000B086C3FD31718E61610C51E334FB6EAAA6 +:10AB400039BFCEDFC7E2A965C49F0DED16D8488294 +:10AB500089E26C6159DB78B4332BCD4EF0376F78D6 +:10AB60001F0A972363BD8B70E602ECDD4B565C5FDA +:10AB7000AA7F3A1EF382AB4DDD387E4736D7B7C386 +:10AB8000F87AC11012807D4BF5FB87E3FA9B15EE36 +:10AB9000972A40BD6603BA1E063B4AE77DD72B3194 +:10ABA000786F5DCFFD2D0EA282BCAEDE9F82F1B12B +:10ABB0002B27907F6F1EDC17D2958DF24EF518A4CF +:10ABC000B8DF7C2274BB02F77CA4533F8596AF6448 +:10ABD000D7B3F2E0AE1A132D7B076DBA1DF6C5D4BC +:10ABE0008FEC3A0BE59183B6B27241578D4CCBE5B1 +:10ABF000837EC4EAC30634CA58B3063D7D3B9C47F6 +:10AC0000B9E8147E4317DEDF53FFF270D3160DDD73 +:10AC1000270F62FAF9620CAB77D1C7EEE326B95D74 +:10AC2000BA7B84070F32E9EEE111F314ED486ADFD5 +:10AC3000FD9FE676ED2E7EEFCE9438D21CC3EE1744 +:10AC40005761DFD6A17DC3112F07B29398DFEAE8E1 +:10AC5000C2FD35A21FE3B97C31EEDDFCF7893E3041 +:10AC6000EB7FB7F202B713749C0D384E5E201FF6CF +:10AC70009FD7CFCACC07BA517A299C5E0ABBF77717 +:10AC8000178E0BFD3AC1CF73748F037B72E86A266F +:10AC9000DEAF28E0A6FE9C1DFD2E0EFFDF387FDC18 +:10ACA000D5C4F1456196116EB63E0BF4053B53CE0B +:10ACB000F13B7950B43EF697D985BF9B70A3F3332F +:10ACC0000FFAD7CC4F439700AC331CDA3B02E92292 +:10ACD000E02764ABAE9F8BEB0CED8A09BB4F2629B6 +:10ACE00007DB3DC8EF9317F7FB423BDF18E637025F +:10ACF000FF8BFBD4486010AE73D571FDD0730F5A33 +:10AD00001B3B9F4186D0F9015E67CD2CE4F373F0C5 +:10AD1000F939B4F736F7C8DD89EEEC399ADF9111CD +:10AD2000EF7BF0DED35F5E01EF4F27BF7DF5077449 +:10AD3000EF8F1E13385DBF347A08380DF8ECC1B3BD +:10AD4000013E814F905B6C97A7979F1E7DDE434726 +:10AD500083FCFAFEC9F1F83ADEAA6F503AC27E5F70 +:10AD6000AF9E9F5775F84CF0FB71A2DD43B534AE32 +:10AD7000CFD1C4F51DF7A8907F58BDAF12F799AE9B +:10AD8000FAE573BF5069FBBB5FF86E02A1F8BEA085 +:10AD9000B478E05EA6BAA7362604201FA4A809A0AE +:10ADA0002F2F84D9EFB51AF5F9C39C0EC20FAAE76D +:10ADB00076E5E2330FDD06F8F8FB536607D8CDD50C +:10ADC0007BAC112BC6EB77A13F44CBEFB1F283985C +:10ADD000775CBD57EFFFDCFDE3EF7ABCC84F6A86B6 +:10ADE00029159E910C429FF5BBCDFE08E0EB84EC4B +:10ADF000A7C390D5A47B13C0676C0F70C0150AABB6 +:10AE0000DBE4A596C4DEDFA905B280DFB1BAE32199 +:10AE1000F4A3561BF681D7F6E3477D6B90FEDCBAB0 +:10AE2000C00B09BBD17F69FAC98F9F7F99C277E1B7 +:10AE30000F29F9785FE5EEFF4A90E8F7CB6D398985 +:10AE40004B316E5BDFE73D401F801F60D5DA534614 +:10AE50004FEF5E09732E641F7BD6992309102FD7FD +:10AE6000ED32A31F5AF7DC934F43BE87FCDE8AF70F +:10AE700026AC7CEEF05B5FA1E595ED66D74C06B69F +:10AE80005DF244E9B2DACBFC114187BB7F7618EF63 +:10AE9000EF82F7E09F0A7AAC6C3F6021A37BE3ADC1 +:10AEA000ACED00DEA7D98B2E6DEFDD82F76DFEE4F1 +:10AEB000530BF0F385FD1249F1F56E5FFBD47F254E +:10AEC000403D41971E3AF5A24FE4B6970BB11EE6FE +:10AED00005FAA3D3D7A81AC37CC52F9F43BCD7FEBE +:10AEE000C1EA8779D73E7F5F02C07F4E6960FCFC74 +:10AEF000C38D1E38EF267E0FB2D6CCDED73E713F13 +:10AF0000F2D98AA3F77BD8F9AD409AA918E797063A +:10AF1000F3BA736715CEAB868490CF6A7F2863BC83 +:10AF2000FF09FF3D01231D252F938773AD56BCBC40 +:10AF3000E91C6CDCA470A9C7D8EF9812720FD1DE9F +:10AF40007B8137CE16457FE7EF548FBD2736F0D390 +:10AF500056F35AAB773F88F7305CCC0AA440BE90DA +:10AF6000E241E5F892E03E5BF968790AA30BF12A29 +:10AF700045BC1DACDFC07BA8DF690EC48CD1B5E336 +:10AF8000E7C0D8F8221F40E18E857CE6390FCB0759 +:10AF9000D37F9DE8DF325F17F906FCCFB17C9E3D81 +:10AFA00072BD9BAD5B0AB9FEF804938BFA70650520 +:10AFB000CA7BA7399202F5C207E64828EF56DD7D25 +:10AFC000023D7CB0DBCCE555FF9DC2A5485A7CEE26 +:10AFD00097F01C64CD36ABEEDE97289F58A2EF7D2C +:10AFE00051B91371CF0A2EDF46FA19E5FDAA41DEE9 +:10AFF000C94EF735EF65F96F9A6F0BBA0080000004 +:10B000001F8B080000000000000BDD7C0B745465F2 +:10B010009270DDBEFD4AD2493A2F48E4E1EDBCD141 +:10B0200090745E105ED224806148A0F380090ADA31 +:10B030003C46101212C11933E3EC4963008161767A +:10B04000E2E2CEE22CBA0DA2CBECBA3B198D4C4613 +:10B050008169D4717007B1054450866D5111C740A4 +:10B0600002E8A067DC75ABEABB37DDB74308FA9F9F +:10B07000FF1C77C3C9A97CF77BDCFAAAEAABD757D8 +:10B0800017002F400A40A3C9F7F42F92119EB2383F +:10B09000BD0AC27F33B97D79009F3CF3F2893B4AF8 +:10B0A00010769A92AB807E5C36691CC06AFA13C730 +:10B0B00035E36F6B11B6BBEEAD827C8015CF968207 +:10B0C00032563CFF71223D7FF8928CCF3FB139015F +:10B0D000E879B7E96CD0CA0BC157F85B81CF8336EA +:10B0E0006A7947185209FA4700C2D53670FAF1BD9D +:10B0F000AB8FCB4E5C0A9AA16FA3DD36703EE1F1B7 +:10B1000039BEA7B9535E6C8E1FD80FD06776D37B3C +:10B11000BB7E72498EA3758C6783B96ABF0360B921 +:10B12000847F4CC03D9C2EAC7C256C5E96129B7C33 +:10B13000EE56FC633C8CFF4A06F80CF2E22761F302 +:10B14000CFFFB2EA660FD2057620D1D2702CFD4C2B +:10B1500005B8DAE6AC7C250BE0621BF65942CF0F4E +:10B16000DEAC307D956E7CD170ECDBA74280E310C5 +:10B1700046478D7EAB776F667AADFCD7267E4FF360 +:10B180001E8BDF8278AFF6D554523FB6DF13ED83C6 +:10B19000F552FEB5F6ABA76364FF273703E3032A36 +:10B1A000DF4D0F813716F9DEB75FF6ED42D47A1125 +:10B1B000978D48F7DE671C3E2FD2674314DCED46BF +:10B1C0003C7AED7D718908372488765F8A7923C4BB +:10B1D000879EF745414327F2A7D7DD1797600BED10 +:10B1E000BFE477729C82EDA00F2A3BC39E6B10A038 +:10B1F0009DF10882E89F21DB46B7E2FB2F776414BC +:10B200002119E1B21546B726533BABC8CBBB580753 +:10B21000500AF021B84F4C227CA3E3F2090FF0BA98 +:10B220008C6948CFA562ABB0E2B5F63830607BDF01 +:10B23000AA2A407A2DDBAAA7C33DB6FA783FEEF5DD +:10B240009E474D2179C0DFE5E0334306CEDFA17F85 +:10B25000BE12B60ABE44C88F87E4276DA0FC3469CD +:10B26000F2530885243FF8638061006BAC82DF33C2 +:10B27000E4BC9F01D1F9900C165A43CE7B6312EEC9 +:10B28000F3336CCB24F0DE1496CB559EF38C8F26D3 +:10B29000C79A9CF5909CE50CA4A7067B9EFFD3B8AB +:10B2A000077148E3DE77F3FF1161CFDE53D92F52E8 +:10B2B000FB376F8F7E17068EAF38F0C55D80EFEFDE +:10B2C0003D60617C7A0FFC61F483D47EC1E2247C12 +:10B2D0007B1FB2B8085FEF81585F16F58F427E235F +:10B2E000DFDBF75FCD0FD27980F5CC97C71433F34E +:10B2F000F3F2BEBF9E91886FFB2C0A209D9A0FC46B +:10B3000000CD6F7E21CA07347FFFD5719E3079F85A +:10B310007FDDCF6A337858FE62A1E15992D704707D +:10B32000D17E9A5F9CF0E43A7C7F53D741F352EC94 +:10B33000AFF8DD7FE593BEE97DF6A099F4D14553E2 +:10B34000F00940D5B4DB37B5C3847CBC188B8BDDEA +:10B35000845A6EA7D7EDB55D8B2E820EBD4807DAF5 +:10B3600017D26505E9C9C1E8F1E2B7961E97EEA2CA +:10B37000F737EE1B0FB2239C2E924B3C8FF55925CD +:10B38000DEBF787EE06A3ED8C80EAC0BD039186AB2 +:10B39000DFEFD0BE4BFF2FED5BF2DFC8BEBFF8D6AC +:10B3A000F25BC87F9B22EC51E4391828E7BFF90112 +:10B3B000B7FF3DD6C9F8DEE0F94F737C5BF7FF0DB0 +:10B3C000F9FE2CF23D6E68BE977D6BF73D14DF5F92 +:10B3D00053F91E6BB7903EDBFF5FA3216CFF43ED7B +:10B3E000FBBBFF4BF7DDEFFFC86E6B3AE2B715FC16 +:10B3F0000105E106D50FD9908CCE03AEB769A4B292 +:10B400004B96D87E07C87EF3DFB8E4430E89E76F1A +:10B41000004325D1454E5EC97E869CBC85FD043423 +:10B42000F78CCFA6E4C94F6FE1F9F701F97BDF573D +:10B430007D04A362F05B705CFB3A7C3F8E6B4F3106 +:10B44000D8DB157EFE1E3DB7D03A7104BFF3B1586C +:10B45000F77003F97B469B19FC617E860DB01DE6F3 +:10B460008F446786B5F1370A5EB21B910F514E23A8 +:10B47000F824724DC3E6E3F8250E3BF3311A7C5EE7 +:10B48000BBED1BD1C54A74318ABFE1571174E9A7DE +:10B490009BE81E924EC6E42D01DAB7118C5ED5CF23 +:10B4A00092BE126B2BC671F49CA60CA41B7A56910B +:10B4B000F47545E5EBD6E1FD6A74EFA7A74AEFAF57 +:10B4C0004BD748FE0C45E70D83D0390427DBD95F05 +:10B4D0008CC2F148AC6DFBE117E4D79AAACDA66403 +:10B4E000DCE77CB7E42432CC8740790CB661A1E478 +:10B4F0007C8AF7ED0E2CC3F689866DA95BB03D0FF3 +:10B500005D172862E85708DA53CB093F93E4F969DD +:10B5100029E207F34CCEA71024ED835F280534DF22 +:10B5200079D088F3E7CD4F2BA2F947E811E9798F5D +:10B53000E47B0AF186D45C23F1AF1684DCE34FFD93 +:10B5400021A4739DCACF371C89BCAFF9B1CB5EAFC4 +:10B55000C3FE39EDEE1637EE6F9EB1EF03D207F35F +:10B5600026A749ED12E3B31E70E89BAA7CCCA3C9C1 +:10B5700089849FDBD4C2F4986E3F87F4955CB7C88A +:10B580005FC50CAE1788A3E7343EC821FA1598FBB7 +:10B590004EAF45BCED4764E72E85F60BEC97C3979D +:10B5A000380FF1AD651F3BB44E756B71D5F424ECCB +:10B5B00056F181653B372497F03EBDB1B4CFC683C9 +:10B5C0001B88EEFDEDFBDFD3F7FF58DAA86BAF77F2 +:10B5D000E8DB5BA76D0C9F3FD87E6A2B0B250FFA2B +:10B5E0009C498F4A2EDF35E2230DBFD7D7C1028A8F +:10B5F000BB20D9A5D4908F4A2F4BA37E03F70FA46D +:10B6000093A0CB02195AE8DC5697C3629AAFF59B18 +:10B61000D3C5BAE674311F08D909240E2E85E28CF1 +:10B62000C1D63BB57CAA44712992CED5993770DC3E +:10B63000305A17E5E154BC3283F1B50B793A312B1E +:10B6400067E716C7E0743831CB312A1DF19CBF0F74 +:10B65000A502E5B2BC61B189ECCCFC655325B243CF +:10B6600047AB83068205E9B80F84777CE54CAB09CC +:10B67000A3571EED03DFBBEDA7220E8D5C3F4BED04 +:10B680007FC7002BA8FF9D3865D482BCF0F956EE29 +:10B69000CF4B57181E8D15F6AE0015888CE7A83ACB +:10B6A0005DD00FF290FE6343F4D7DE3B18BD34F952 +:10B6B0009B0F42FEEE6A107C26FC6BC3F09CA8F246 +:10B6C00063DB06F1DE53CB0B4C8BC3FA97A9EFA9D2 +:10B6D0001D84EECB54BA63FCCCF4DE5625F938AEAB +:10B6E00004978DE2E2E5EAF9DD861CF623ABEBDE9A +:10B6F000929D88212C9FBC9CF531EC10F1B115FF77 +:10B700007D958E61ABDF1891570818492EEA22E229 +:10B71000DF6A352EAE8E781E190FCF4DB785F22910 +:10B72000398C27E7772E1F979D14E70F2617F654BD +:10B73000198CC5A1B8B7609AC14DF47B63CAD55ABC +:10B74000DAE79AEA7403D9A16D55971397E485E86F +:10B75000183AE7195599C5A1F6EBD5E6061FEB1B7C +:10B76000118F1F55E3F16D95C551D36C213A6FAB25 +:10B77000BC9248F2D67F2EE0FAE7421B37B8DED201 +:10B78000F414EA38A27FA5C5F710A25AE754FEB414 +:10B790004AB4ED94772BAFDA399AE47E869CF7F8B9 +:10B7A0008FF0F9EB55164A27F5EBB3638F3D399AC5 +:10B7B000F229CE3DCB67401EA5173C1B5248EF54E3 +:10B7C000494ECE6748E026F93E3712D84E27F91287 +:10B7D000767A71AE5C25CE61D28E849DB7237F369A +:10B7E000ABFBACA812E3B635E8E5E55E55BF2F2FFD +:10B7F0007DF24826C295D54B4A69FD47D4F3712F97 +:10B80000C90DF1BDAA701D99A3150D8512A4D336DB +:10B810005D81BCB0F9F3C159532C85C6FF79FB9308 +:10B820003F27722EAF5C5CEA0F932B9017C6937F75 +:10B83000B872B73EEF9254A2CFDB2CF7E9FBE7E3F7 +:10B840001C5B22BDE7FAF2F74F247F3121F9D3DEEA +:10B850003718DF3479EBF78754FA7797C995E40FF7 +:10B860001724BA3CEEB0F37944A5A706BBF7FDE573 +:10B870009D55644777589C590A19E584E9767CD52B +:10B880008215D34AC86C955B0B5FA1F69D2DD8C677 +:10B89000FEEE7413CF5B647F6F4602B6EF4E955E8B +:10B8A00025B85871CC4C44F84795EE4B73A7BD8A28 +:10B8B000DB852A678DD9C3F9B2AD31F9748EF03DBD +:10B8C000E87993BEF21A1207EE671A3AE1C630BA67 +:10B8D0005558A3C018469F19F6045DFBF6D434DD15 +:10B8E000F8598A43D73F3B778CAEBFCA59A8EB378C +:10B8F00067087FE7C88EABEFFC10F779649FD94EDD +:10B90000243C4274490ED105F17D94F03D32E18131 +:10B91000D1DF43BA1E4F3732BD8F932C85E9B31365 +:10B9200055C0F279025ACEFC90E4B85AE8AFBAC7D3 +:10B93000734CE40F8251E4FFEA419CE77A55AFD59E +:10B940004E36B17F57E7D6CB51B59AFFABAE8CCC14 +:10B950009F060F13BEF3CB643BF9434910A6071DA6 +:10B96000246742DF0D256FBF7AFCEA4D744E2FA687 +:10B97000EBF3C8BF92445EDB8BFA97FCB0C1F44591 +:10B98000BFBE8B90337386902F0DA29E88277D516A +:10B9900060D68FD3E0298CB38CB8CEBB6D56867F32 +:10B9A0006AB333FCCFB65486EFB5290CDF6FCB6595 +:10B9B00068CE107624A915F999145A27A9CA6DBE24 +:10B9C000DE7989D4734782063E27476EFB7E9CC38F +:10B9D000A6C607382F312381FB3F2A7BDF26E5856A +:10B9E000E4B53B78D6467EC502F099C84EDE097EA6 +:10B9F00013E53D174190DB77236A041783C2702952 +:10BA0000B8382FFA3DE8032943F55B6F0278ECC99B +:10BA10009F3E4279BB7CB293E42F6068117E1E6A20 +:10BA20003384BFF354BA4BC9207D9CD872A68EF4E0 +:10BA3000E46D2620BF912489EC42921ACF7CF4F861 +:10BA4000F8A825D7B0B7ABD397DC92511A4E1F8F09 +:10BA500099C6217F1BD4B887F30AA684DC5DE17EFA +:10BA60004F6186B04FCF395C4E7AFF6394DB653C03 +:10BA70009CECD768F8A286976A512F7E27436FCF38 +:10BA80000ACCA82F71FD6AA7C76C4758BEBD302AE3 +:10BA9000784DFC3CB765A4E8F113FA42C8CB60FCD2 +:10BAA000D3F8FE75E546938F530ED76C7AAFD180ED +:10BAB000F139BEC798D890BA84FDC07AE67F6DC4CC +:10BAC0007E22E526BFECFDADC514A794C84E52BF3B +:10BAD000F9DD011BE98563140F15903DFCA8BC1826 +:10BAE000F975B41B3D4BE4D7515BB08ADA1F4D901A +:10BAF000ED0F61FB2349799DCEAF77A76C17F191CC +:10BB000033E0C2F63D9509455BB035778A89EDDDB6 +:10BB1000398F6317E581B6AAF89C57FD222FFA23C7 +:10BB200034EFA3EAABC7EF273FEAB1A44489E5604D +:10BB300079DC446E6718442CEB34B13FB45D66FD8C +:10BB400072BC6AE65BCB20A4AFCEA9FA4AD34BF312 +:10BB50008538C139F0A650FC375FB587F50D7AFD01 +:10BB6000535BA56F3744E89F24D23F7103F552A47D +:10BB7000FEF99B8CD890BD9307FA5BE76D7D7ED272 +:10BB8000A3DE4A89E95487F1A0A780FC8142D3391A +:10BB90001BC981C472A0E9A1BA2A8C134B082E2EAE +:10BBA000B6E2F80A8C5B289F52D7E534DD630B9729 +:10BBB000B3C566A07866FB6233DD033EE770FF2DF8 +:10BBC0009D13D3CE0A85F4F4B67D828F053BDE7ECD +:10BBD00087F63FB77AC9C634E267170A3CF173C7E4 +:10BBE000F858F2BB8EF9AE24435EB8BCB798896EA4 +:10BBF000E53B2EDD44F21B79DE818C29C57BE04ECE +:10BC0000BDAE9FA68E1B4A7F79CB2197E2D21E093B +:10BC1000FC12FAFF3DD3869513BE3DA3CC4601B37B +:10BC2000B93D439EFCB28DE85A056C7F7BD2CAAC0D +:10BC3000A27F26DFD7BD1115974FFB9DD2073A7B18 +:10BC400039F573ABCE5E36060D7CAF370DF476B8A2 +:10BC5000C2AAB7C333EC8E083BADB7C37382B6F745 +:10BC6000483E7A5E5BC871FF2CA530A2DFE02579E3 +:10BC70009D9D3B41B74E0D887BDCB90827229C83F4 +:10BC8000F0368A7B9CD3068CA37BDDB965B374EB5D +:10BC9000769B2197E4A34F8A76EE4279ACB1BAF550 +:10BCA000FBC3009FE8B83EC1EA95E3B90D13719D4F +:10BCB000C6D6BFB09C4D6AFD92FDFC427FA76E5E6A +:10BCC000F1A16EDD7B9C017B0585BF45279D2F1370 +:10BCD0002C09BA2B287C1977BEE56582AD56711FF9 +:10BCE00078354AC0070CB081F2910FC89E15642FB9 +:10BCF000AE1A7CB9643FA247CC1C45F25893B09170 +:10BD0000D081D9E0F980F4D6844F7DEDD49EFA65D8 +:10BD1000A74CF6A87D8FECB5C4139FAB625EA7FC61 +:10BD200066A7C4FE78A3CDC071DC27899DF96BC3DB +:10BD3000E4FF931F88FB514875A52E4EA67C59261B +:10BD4000E755DC15B12E19E9D3B43787F366AF6434 +:10BD50004FFB94CE851C3BDD2AECAAB1AFDF9F4898 +:10BD6000A77E57E328C427BA42667D02B79B381FD7 +:10BD7000136D70C7A9C934B62FE6DB4D1C57DF9F82 +:10BD800029F458F41F419150DEA2933CF2589A379F +:10BD90005B023ADFFDF6AF0A5C64976D996ADC4F8F +:10BDA00009351C579372FC19CABFDD9F19CBCFC749 +:10BDB0005529BF3791636F37DA490F279D74DBC769 +:10BDC000229E5DC925AC07BA4E06A6D079BD3F5369 +:10BDD000E1F1C32BA7AD9D46EF7B54061ADF659FAB +:10BDE0001E43E32137DB4079B9359407C0A1490BE5 +:10BDF00095B7294F03874C3C4E7BFF96F2933EDA72 +:10BE000047D249D72ADE6FAE4DC97270BF63D15891 +:10BE1000B23338DD32F8B97D7F6B4A8A82FBAA994A +:10BE2000664F71127C04893491E944E10FD8C94707 +:10BE3000A4B677D8D1E988D71EAD0DE007A4FB16CC +:10BE40008CCB489FD04F14B66BA4FEF1B5D3F3381A +:10BE5000EFA0F57BA10CE92B6BFDC36B693D7BC4A7 +:10BE60007ADAFA05BB871DDD944774B2ABF4B6A746 +:10BE7000B84970BFFC4A223FE37E35FE8C9695712F +:10BE8000249F4B0C4A3EC19444CFB8CC145AD79946 +:10BE90004DEDF7635DC3A73858DF9CDB4EFA66BAF9 +:10BEA00089F57873EE56BE8FEB322B7B4F26D3BDD0 +:10BEB0003C9E3F7C6EFAC9BD9DDDB86EB3FD2F7C04 +:10BEC000AE507E6793DDBB1C3024529E7F89DCBF61 +:10BED0001F1786FC70D6106AD3795B12DA8F2B138A +:10BEE000FBB784EDCF8AEDA5EAF895BB336BD7138A +:10BEF0009F9759399E5EAB9EDD2D89D021A31C5E94 +:10BF0000C99D389FDE7B652BDA5DA4691775929D0C +:10BF10004D8DF63D45344E76E7523EEB4840F88B6A +:10BF20009DC867176D4CC9D6AD7765F247B6B1B4F9 +:10BF3000CE64F48E705F4B836650485F18C16F41CA +:10BF4000BDD23579C9CB19C924970AF79FA475309A +:10BF5000CE3B9EED5A94C9F9552DBFF8A3AF955F1E +:10BF60006C56F55473D9BA3CAEBF982EB1BD0F6470 +:10BF700009B96F6EFD94E90B468F93F8DAD87A858C +:10BF8000F599D6EE5927F4418709EEAE41D8F8DF8E +:10BF9000F2DD94B742FDB789F46123BC645E13E619 +:10BFA0008F41E7A57EFD576008F96BC64765B60F60 +:10BFB00091F81A3D55FCBE1AC93E8F726DBFCD7AFD +:10BFC000B0D6887E564D947D9E84ED8D4FDD536BAB +:10BFD000447B5733CA3ECF80ED9D99AF88FE34FB3A +:10BFE000DF1B9C00079F3A2DDA0EFB5BD47E61F7C6 +:10BFF0006931BE5093EF13B52EC497738ED87E78F7 +:10C00000F7895A2FFB9136CEDB5FAE8CF259AE9397 +:10C01000D7AB6B7D5117470CE89725A12F1B841ECA +:10C02000B8302B8DF51964BA0A0DA42F6B47169101 +:10C030005E7A4CD56FC3901765F8FB7B3CAF56A476 +:10C040005F5376E0AEB80CF243365F92E2E87D07CC +:10C05000F87D8D548584CF3FC8F5FC5326E5F3A4C5 +:10C06000E019D29B4DD5C7B249EFCFCE16F129D8F2 +:10C07000FB32894F0BC0C371C60235AE33A0B092FC +:10C080005F556FCBE4F832D24FAB033FC72191FE2F +:10C090001A84C78532D51304EE32231E26950E4D21 +:10C0A000898E2C9A87783D2BF0423CB16D4A0E0C5C +:10C0B00013FEF9338A44E73BD7CAF7B0D1B79CCC1B +:10C0C000F75CC35FEF6C433B8947EAD9B66E86598C +:10C0D000D9C0FB196E0C9A9DB8CEEA93C0F669865A +:10C0E000DCC876E072B703C2F36C87557AC6778BEB +:10C0F0007C24D2D549744DCE00BF01F99AFC9BD760 +:10C100009EA1BCFD61D51E687C9C1A039D518921AE +:10C110007A231F9CC4078DEE48CF62BA4F78E5CBD7 +:10C12000C393898FB3092F9CDF152DCE7DDFF3518B +:10C130003EF20F22F13CABE21389EF673788E767E5 +:10C140003788E767AABD1A0C5FEDFC6A74D2CE2F60 +:10C15000A87A6B418363D71629D4AEAD72707CA7E1 +:10C16000E139507E762BD7929FA1E42690A5D90B7A +:10C17000A147343A6AF8697AA18BEEE574F825ECA8 +:10C18000D4E397C0E729BEF5B7ACA7E458233FAF87 +:10C19000CF4DDD49F14F7CE0325D76414256BAA089 +:10C1A00073E717407E777CEB3E1E3F603F11FBD06C +:10C1B000F463E47E347D39705FAADE54F5A8A63FAF +:10C1C000A750A443F349374BE41F7B747EDF34B898 +:10C1D00037C22FBE2F227FF543DDF8DB53D7E9FAB4 +:10C1E00067299B75FDB3731FD1B5AB9D8FE9C6CF92 +:10C1F0002DDBA9EBAFB1EED1B5270703EC771E69B4 +:10C20000ABE4F8F7B6F37DEC7FFAD538F925354E77 +:10C210007E85E2643C9FAF529C8CF0509B939FFFC5 +:10C22000475B19C3C36D2E86813637C3C8733DE79C +:10C23000B9EF1AC98F2F0B74B0DF1B93E1B92B0B29 +:10C24000CFF95C83AF3D16F931FEB4F0532155F8B8 +:10C25000599ABDDC7070C21BE467251D96214A19EE +:10C260005CFFC67F2E832B2C3F1E5FD507A4EFE318 +:10C27000D5FCC91C23ACB7207F6B6C46FF70E4D79C +:10C28000D22C917722754DF78C0D56E0FBC98606AE +:10C29000C9D90EFCDC4BF77A08FD9E2246C56D1D00 +:10C2A000A6DEF7E18FC5085E5A4F76C9701BE539E7 +:10C2B00092938C1096B79B87EFBC19E7DD61EBE496 +:10C2C000FCCF82430F352DC6E7B0DE5BCA7E936696 +:10C2D000C7BDEF18BEBAF5C6EDF8D22C717E364850 +:10C2E000221FE04D3072FE2D321F3241DDDF9C7681 +:10C2F000AF1C47F1CC9BC0F78973553B8BF4D864D6 +:10C30000490C9D434DFE6BEC467F4E1CD99D472A40 +:10C31000685EE37185E911E93768F18E26F7A8EFC9 +:10C32000DB69FCE593C0FEDCF81E5F701BBEAFACA2 +:10C33000AFA382E290899F77BE4C70A8B848C37FB4 +:10C340005F5B03CBCD81360F437FDB0A551E5BB8A5 +:10C35000FD4A5B2BB75F6DF3323CD4B64995C70EEF +:10C36000EE3FDCB69DDB47DA7CAA5CEEE1E701A29A +:10C370001FD265B3A697ACD3F83E048C0286E44185 +:10C38000F1C275E4A13155E8E748B9184C0E007CBC +:10C390000ADD97DC81F690F4D89DE01D4BF51D0D6C +:10C3A000CB3B4C93A46F2E0FF5B6474D745F11A98C +:10C3B000DFE683C27237D0DE7B9C3762EF35FD2625 +:10C3C00063DC4676CA22DFE7A43CC2D7F72F3C2DB8 +:10C3D00084C7D0EF137C31A562EC9B48F9C6134F9C +:10C3E000535EFB42A9EB904BBA061D22E2CCC6512C +:10C3F00062FED7C54FCB7F0D85DFBF67BB5ECF4ADF +:10C4000009D9B3683EF3086FB2717DB1D9E2F33D4B +:10C4100044F1DE8B517C1EC1E61A5D1396BF399143 +:10C4200025E2D4FA24D7892CF60F7A9EFE473A2FBC +:10C430005D319C6F898CA33E0D540C0FF79722F54C +:10C4400069B3FD0A9FBB01765E32B09D6F3680876F +:10C45000EA898A2C6095C8EFCF2EFF50BC7772C056 +:10C4600045EFB51BAF7B5FD9DC7A89D71FB4DF20DE +:10C47000EA969AF797DA9784E50DB2B2D53A040CAA +:10C4800010CF5943F4BB51799ED2D7A0D30FDF3AD6 +:10C49000FBE9FAA5AE7F0E9A1DA2EF5CCF2CE6C396 +:10C4A0001D14217DADBCBFCB43F03987674436C92D +:10C4B0003F6523B1FFC2DEBF66921F7DE1B609F67C +:10C4C0006930501FDEA8FED3F49EA607379A614557 +:10C4D000A72EAF935C48791D8D1F63B3F57500914E +:10C4E000E7ACB7101986F8F63E2FEAE27A63A37D2F +:10C4F00012B2DCB5EF0F27A90E099C7AFBEDB2DA78 +:10C50000B8DEB478A193ED38A01D27D5823BED09A4 +:10C510005F778651C4416074E62E0A3B37ED6A9D11 +:10C52000C31E84BF46BCE316068D4A98BC55AAF8C4 +:10C530004E5B301D38BE5CE8623F30CE2EF2433396 +:10C54000AC501245EB7E79258FD69DA3FA095B4C42 +:10C55000E027BE0D2F2B94C84F5C9DE49A954DF9B2 +:10C56000D2872727F03D17E5566F0EE9A3197255BC +:10C57000EA623A37C9463EAF9A9EA9B77D60960DEA +:10C5800054CFE0647E47D20B20F8EA369CE7EA9667 +:10C59000EC94B78F3CC7AEEE8327C9AF1FCA3F1DCF +:10C5A0004A3F45EA0F8DEE91745E9DE45E4E72A6A1 +:10C5B000E997C8FD6A79E32608B29CFE64E1B36E90 +:10C5C000824F488AB83F069F6B04F27B75F77D4027 +:10C5D000F38B645177DA374BC44391E7FB41953FC6 +:10C5E0008DAABE284A026B2AF1C303AC3F7B678D3C +:10C5F000E138E4EFB245FD15AE945D1B56D7A8F9BE +:10C60000353DEAF71B75DD515E392C7FB0313B813A +:10C61000E7D5593FD5E9C1D5AD5FE8F4D7EA3C216C +:10C620000F45ED4AF17D08D7AAF778BB46BB371313 +:10C63000DF57763EB2F7B042EFDBF1837788CF87E2 +:10C640006C422F1F4E61DAF44AFA7A9C3AEB25D5F8 +:10C65000FEEFD4DD031DAB7E9BE3DCBAAE182FD119 +:10C660005FC34B8B8F357DDD74E0E33364B77BA410 +:10C670004B671E24FA3D6F61FFAC91F04EE2B8FAB1 +:10C6800009E2D3B3870C4CDFA65916BEE701A332EB +:10C69000B636364497DE8FAF5D27A4E1A7BD4FC302 +:10C6A000AB4712790A6DDCBF660BBBF4A16AD78E6B +:10C6B000990217892F17F6DE2A51C2B1FF7942205D +:10C6C0003FC116E2CBFF2F3FE90E10FEF249C3BA7D +:10C6D000EF9B915E3D9DDB4C9C57FE86FE91866FE5 +:10C6E0007B2CF8683D7081621FC6293C5107889BEE +:10C6F000340EA3B84DB425DBAB5F901E9BA2420E57 +:10C7000022B17FB28AF646A905083F2B7430DC229D +:10C710003915825325B751E4B37D2C8F33A165249D +:10C720003DBFCDEA4C351AE8FE50E411E7256C9A7E +:10C73000C36C1C061BE93EC568F69A86915EAC8DFB +:10C7400057EB20059DB4BAC415F83B19E9624C00BB +:10C75000C588E357A0DF6E42FAD62F5FF0D33C1AAC +:10C760006F9FCC74D4EA1A691ED171FEE1966AF209 +:10C7700077BE7BF0EF8EB8F0F9C7891D9C97FD73EB +:10C780006057FEBFE19895C7F6F177458DFEC04C26 +:10C7900022EF6AE8637BA4D17F210418DE057D0CBB +:10C7A0003D60E7FE25E064B80CDC0CEF811686A73F +:10C7B000D27634E1498005C3B79A3E85101D5625CF +:10C7C000AC1F47EFB1976FCF627DA3DE4745DE6FA9 +:10C7D000D424D8F83E05FB45DDE699285FBB83EFFE +:10C7E00033FE9BCEC103B26B91A06F4B01F96BBDC1 +:10C7F000096690E8BBAD14A147BC1780F3B0BD2615 +:10C8000075FE2585DB251545ECEFC05585FDB24944 +:10C81000EA7DA3A6674B6E1575C0F095183FA54F2E +:10C820005F2F5642C94B9AFF5785EF2DA67E1E59A2 +:10C830004FA6D7C33B72841EE3522BFCB324C9D04E +:10C84000129ED7684F1D26F2826ADBA2D839CF31FB +:10C850002E479CC3DE3803CB09FED45BC711BE82D2 +:10C86000AF93F6FD5195470C388785BEB79B64F4AE +:10C870001FA4E7AB557D8FDA98EDD564924FA25790 +:10C88000B75EFF43EAAD5C17305145418B63255CD1 +:10C890006B6122C9734066B9853E862EB0B3BD2F49 +:10C8A0000727C3E9E06688F2CDB0123A187E073A4E +:10C8B0001956418021DCE27416E1FB0D56BF2CCEE7 +:10C8C000EF8FED7C8F3B6BB981F2D625DF15F59CA0 +:10C8D00043D1A52147D88FA1E9820779DC8DD0C546 +:10C8E00023F08BA4CBC85C3E471A5D347A44812F79 +:10C8F00095E838058232414A55D3FC69781CA95D18 +:10C90000012E6ECF18921EFE76BABF2B0B7A8C9C2E +:10C91000E788A4478590134D6E347DB658DD3FDD22 +:10C92000E510D4F44F478EC2F2A2E9213C6F7C5F40 +:10C93000ACCD8FD4535A7F494CF9150555FADFFC1D +:10C94000F3DE3ACA8F971497AFA512A7CD392F8976 +:10C95000F6A4F2E7D2B1FD939CDF8B764179B1C9A1 +:10C9600009B04E7AB56E3AB6DBDF54BF53B466EB0E +:10C97000BE03BC6CFB81D34E7673A4CD49FB7CD83F +:10C980008C38231E568B80728688235F6803FE5E78 +:10C9900042C3D362117E1F8EF7929F9672DEBB80D8 +:10C9A000F20CDAFE4657FA5F322924134A31E54D7C +:10C9B000268CF6ACCB290DAD8F7870BDFC08150F19 +:10C9C0006DDE049BD9C5F5A0C98E62DA77C768F71A +:10C9D000C61C3A5FB1E2DE561BB747F52F27183B5E +:10C9E00064BAFFECC811741E0CBE98E3FA5B5A27B8 +:10C9F000F2F960F6A8F7433327A176E778FE81F0D5 +:10CA00006E8EF9329BECFEC5C2631B838E905C4A2E +:10CA1000C89485B8FF76976AA7B43A7AF2CB907F2C +:10CA20001396B964526DBD1FE291C47330AEA1E597 +:10CA3000656AE3BABB785DB9EF1E92C78B09C7CCB4 +:10CA40001FF2391A29E44BD54BFB0FBCF6E008D195 +:10CA50007443D8F9693EF0C55FDEC5F3D67CD9E6EC +:10CA6000A4E1BD71823E93F63DB696E907369DBEC0 +:10CA7000D0CEDBC46E0B7F4F3469DF98EFD1B8297D +:10CA8000C74E67D0BEA69E0EB6537AAB77FFDB23A8 +:10CA9000849C6BF75557A56F62B7B57A8F356F8950 +:10CAA0007A8F3564B8A9FD6B89E3EEA64326BE4FA5 +:10CAB000FA48B5275ADDE70A757F17C8AEC9F41DD5 +:10CAC000EC52AE53019FF0A315FC47E77EFC49BD35 +:10CAD0003E6FEA8CCC0B8B3AB9C8EFAD23EB548E8A +:10CAE000E6A8F571A36014E3AFD6650EB65FAD1E80 +:10CAF000E567E03A95C3F1B25B26392D358ABAE88D +:10CB000019F28FF93CAD19955724EA59459DEFF27A +:10CB100028B1AF5FABF5F46B1E9781EA36D6EC37E0 +:10CB2000F3779C3B515D94917F5DF6049F8BE52AE2 +:10CB30008EDAF9BB7793C4F78DB0238965ABE069D2 +:10CB40000B9F9382A787BB883E0566E167EF7CDA7F +:10CB5000B289DAED1BA2BDA4777F95D077137D1F34 +:10CB6000DD1EA5D693E37BE8DEAF20BD2F9DECB99B +:10CB70003557E8A976D59E6BF79EDA7DF99AD8EC01 +:10CB8000E11497F5F7078D3AFDD1AEFAD725841F4A +:10CB9000F98B2D2671DF1E25F03FF8E6FC18F277A1 +:10CBA0009F37BA63A87EE6F2F1F478B84EFD57A934 +:10CBB0001F99709DFC45C9F1ADFC7D4EC976A3A0BF +:10CBC000872A6F2FB4B9E07D5388DE1AFE33E467FD +:10CBD0002ACC744FB80CEC2C87AF3DD96EC5F69AB1 +:10CBE000CDFC6500A29A1B4F76ABF490CCDFCD4C08 +:10CBF0003C24EAA95E0077BC1FDB9654032861F24F +:10CC000012A5448312965788C94DD4B5639D37E960 +:10CC1000C6C797A5EBFABBD47A1CAD4E59F35F1388 +:10CC20005CB7E8E64D09DCC3F5A3499545BAE7F0E2 +:10CC3000A990FB32FC27E2D41699CED5A420C02FB0 +:10CC40001CF4DD8F3395ECC6C41EFDF9B0A8755BEE +:10CC500065C10E20F98E3A6ED4D5315B6C33F93B49 +:10CC600022CB10755D65B96A5DD74818A9FBAEBCCB +:10CC70009FDEFA3AAF7190F90F934B88BE1881622C +:10CC8000FF659AC1F6067CDE307A6BE7EA05E86458 +:10CC90007B9DE2D6D37D78839EEE691E3DDD47AC59 +:10CCA000D0D37D548B9EEE37B7EAE9EBF0EAE99AF0 +:10CCB000B169A26E7C5647B9AE9DB3FD3BBAF16334 +:10CCC0007CB5BAF6AD7BEED08D1FDBB944D75FD013 +:10CCD000BDF286E4A0D0BF46374E9383E2433FBA0D +:10CCE000A61C78F11FEB431075BD654877CABF0ECF +:10CCF000C6FF76A903E2A46FCEFFD65C555F6AFC3F +:10CD0000BF417DB988EC2D9ED3398744FDD71C9B4C +:10CD100095EBC4505E72E9FEF332443BE91E5FF3CB +:10CD20000BDCAA7E996B33B29D981323F48F561FA8 +:10CD300016190F4AB6435F503E666E991491F7D3A9 +:10CD4000D7990F758F511AF0EBDA85C74126BB587A +:10CD5000FA81D21E8BEF293E2DEE4522E3CF92A021 +:10CD6000A79DCCEEF81E34C30AC5A1021FEDFE2418 +:10CD7000326E82CE5DBC4FB37A6E22E3D5070CE8EB +:10CD80004F6470DD18FBB1570D03E2D75423FBAF9E +:10CD90001EF667DB46799EC945FAFEA13FAE0DB689 +:10CDA0000BE27402F95FBDFDF54477D6D3FD5A6FEF +:10CDB0000270FDCCD1750DF55EB2F7C9600F8E1310 +:10CDC000E91DFA7939D7B397D63B2B89387271D9D7 +:10CDD000FB4F3C877876ABFEECF0859D9C475A9DD7 +:10CDE000E4FA6D6EE9C07BAC48A8E5CDB43C5A5777 +:10CDF0009B9F614C9E93E38CC87C56D020F213DE3F +:10CE00001F89EF0C3F21A42684EA5B2F6F3271DD6E +:10CE100007A871F722950F5A7E62A1BA8FB3B8C4E2 +:10CE20000AB49F8BBAFFC0FC5895DAA3E6355A9C2A +:10CE3000548AB974A48DEB3BC055EC14F92B2D5FCB +:10CE40003142FE3A7ECF50FB5F95FAB12ECF05CF2F +:10CE500024DD501D6868DF62FDB3B384DD3F3B6BAA +:10CE600004D75786D6BFC879B3452D6FEAE4FBEEE9 +:10CE7000D6533A795EEC7D4FD71F4CEE33515E307E +:10CE80005839663AF90DC8F7CF889FC1BD6933EFAD +:10CE9000447A5E78DE32EE46EAB657A57EC2EF3FB0 +:10CEA000DD1660BE6AFB3BD37692DBC1B620C3C8F9 +:10CEB000FD6979050D9A5F02D6075A1DE7C07A4AC7 +:10CEC00017D7D1FC6C4CBA9A7764D98507D69AD417 +:10CED000BA03CF76CA8F5F9D1F534879DBD36ADDD3 +:10CEE000EC69B56EF6B45A377B5AAD933DADD6C9F1 +:10CEF000F69A6C9B282F715A12F7028B4679868D11 +:10CF0000A13A81957DF974CE9A0B82774914370E38 +:10CF1000F3A48DC1F74A181EA4719DBC379BFCBFBA +:10CF2000F3066F3ED53BD58FF9977AAA673A1FED86 +:10CF3000BD481E46D52F9FAAA778ECBC599CBF853B +:10CF4000BFFC199FB7B70C32501DA3F70549D4A1F8 +:10CF5000D98266BA775A99E2C9A2F752BD16D5E3CB +:10CF6000D373924B2D8FD96B127E5CAFEACFE58DD8 +:10CF700011FEE45882A52138738C38A70B09B23F03 +:10CF8000BE359BBF8FA7EFB91CFC7E17D5AF780FBE +:10CF900058383F1259D754F43B8B5F0ACB834E1D50 +:10CFA000E3E0759233C477EEC9B3A37C54F702C1B2 +:10CFB000C068AACDEAC7F7B8A80BBD40F9613A9F8F +:10CFC00054941E565735758CF0379B5E3B7B86F22A +:10CFD0004B1FE47A2AC684D52135C51DE4BCD4BCD8 +:10CFE000310A8F433C39CEB3C8B09EF8D2640D9A53 +:10CFF00069DE50F9EDC1F67DE17B819FE739A82E0E +:10D000004AC9A2F768EF453CE611DDB5FD6A7884B0 +:10D01000D6B9BEFC6B795BAD7DACFAE16C3A3745B5 +:10D02000545F760DFBB86A8CC81B9D364144FD9950 +:10D030004A37D0EACFF2583F6D54F91CC9A756952C +:10D040004E45685F293F6F8946DB5E145A17C77BE0 +:10D05000E8FE65618BE3B9C3C9542F3996D23BA171 +:10D060003CBCBAEEAED1AE3563C2F2E1286FE2FF4E +:10D07000DB9815C5F2D174E0D419FAFF10EEFDE784 +:10D08000B1C5445F6D5E247D91AEA3889E470D7E41 +:10D09000B35AFFD63686F3E147B9BE4CA3EF37A5A6 +:10D0A00067EFA800C785BD3BBF184DF5B64DEAFD3B +:10D0B0005593766FD2A5CF0F213DBC946F18785F42 +:10D0C000027CEF6251ED86459B3FD2A89B5F13E740 +:10D0D000FE39D165AFAA1F70BCCFA0E6A3C9CEF4BC +:10D0E000E7A3553BA4A924E9A4C843971224C72069 +:10D0F0002F9EED5289F63EC48BF8B751F2B23DD760 +:10D10000F255EDAAFD9697AEE53C5E197430B4C8B1 +:10D110000EB687967781F3F5FD79A8CDAFEAE2F3F5 +:10D12000FF01B894F3D5504D00000000000000004E +:10D130001F8B080000000000000BFB51CFC0F00364 +:10D1400009E772A2F22FA1F1F9D1F89B3950F94CFD +:10D15000ECA8FCA968F2E8781D137E7942D89A9968 +:10D1600081C109883D81388019BFDA7222EC7A24A6 +:10D1700009A1DB81F46E207E0CC4AD820C0C2DC2A3 +:10D180000C0CD781F45441CADC8B8EEBF8A96BDE12 +:10D1900028260DB7C8A1F28F6A32307CD76260B002 +:10D1A000D381F06B90E4838162C73421EC77CA0CA1 +:10D1B0000CD7B419184AE4B09BFB1E287F1D289F8A +:10D1C0000C35070023238ECD68030000000000000B +:10D1D0001F8B080000000000000BCD7D0B7854D59C +:10D1E000B9E8DA7BF69E5726939D64122630849D1B +:10D1F000F00A187012120810ED24048D8A3A3C547B +:10D2000044D009D28A089A22D658693390072182DD +:10D2100004B52DA2E21090A2B53DD1A2E5F4D49EB2 +:10D22000416845E568B4F8E839D806B43E7AD51BBC +:10D2300069ADFA5D2DF7FFFFB57666EF9D17F69C99 +:10D2400073EF899F2ED75EEF7FFDEFF5AF352E7719 +:10D250002663DF60EC0CFE41FA3B8931569E4A9909 +:10D260003BBC9805185BA939F5F602C66E72848F2F +:10D27000EA65F07D841C7E44C7EF136A989F3107EE +:10D28000D6CF63AC18FF03ED9A7C723889ED5E73DC +:10D290005438F454FFF674A5C298560A29DBD2ED2F +:10D2A000807E5842EDED7133FA3B53C858C3894F25 +:10D2B000A61C31F2F06F90A507DE3D07FE67069BC6 +:10D2C00071C6C1D869DF828C241BBCFF3F37B27C9A +:10D2D000653C639F35F64E3932BE7FF94D0E56DF01 +:10D2E000550C2963EFB8B270BD71E7D553189BC6D2 +:10D2F00060D01CC8FB60113353EBBC69BF94AF1402 +:10D30000A5E6B3D2279F740D306FC6E296F6D07FA4 +:10D3100012FBB7B71FB49D02FF4C67CCCB8BD82E46 +:10D32000295681DF3D81B5F19190BFE9F12A162B95 +:10D330004EF58FF38E4E498D33E87C036737DFC19E +:10D34000E069D43BEDDBD8CAA05D93CAF1A13947AF +:10D350000E6F64FDF1C1807F936F636ECC3738FC34 +:10D36000010F740DE1EFF071BC79BDA902B6977D94 +:10D370009B79089FFACD63183C59867892F6DF8F27 +:10D38000270DFFF3F0E47B08AFFF2978C25807E7C9 +:10D39000234C7746D3CDF928C379A4EA99D25C40CF +:10D3A00003B11E47A0F513C7544CBD71E40F8E8026 +:10D3B000F26E8F699F8D76AA93C5707F9A18C73BCE +:10D3C000FA83292AA1F09E76C0C5BDCC49F5948088 +:10D3D0009BFA51B40E86F808F0DA4BE3CEB3C29153 +:10D3E000B108C3F9AAB945191C7E5903AEF7E1C6C5 +:10D3F000FAA98A095F1E56D9E22E1F6D18AD53FD9A +:10D400003E4B64231CBF5CA82F9832783F76B8014E +:10D410005DBD1903BA8AE738C38FB0143DD9D7F57B +:10D42000AF7DEB72C6114EA675FDEB50EB6A4A9FBD +:10D430009061C60BFB3C9AC5BA8C75F47D37D677E4 +:10D4400096FB3F5879B31A09D64117F1F481D7A753 +:10D45000E2FA40DEFCBB589FEA73D2BEC1BAFE7D41 +:10D46000A07529AC232249FDD7A5686E828B31AE09 +:10D47000E2FECE54655A6A7EEF318DF7DF377E9833 +:10D48000F0D2A1316A778CC5DEC3F5031E76131E78 +:10D49000FA22444FCE2074702EA691C5718067F396 +:10D4A000A199AC780AB12FB61A52A72FC6E641BD92 +:10D4B000E6AF1C8B112F59A08CFA37E6718AC9167A +:10D4C000F8F4E1B198871D5E9D08F7E2FEFBDFB935 +:10D4D000F982E0F5F85DE270B2C3C5680F7063527F +:10D4E0004E0A3F0C3CE8DC2CE01518783F55F7ADB0 +:10D4F0005395ECFE78D092335D8F150B84CAA52925 +:10D50000D1DF569D7538CEC5E5CA7117C06B524D37 +:10D5100032B81CBEBB705DD0FF3BEE58A604FD3890 +:10D5200065BD5A866F7A54ABC6B9B688F5CD751409 +:10D530007B4EC1FCEEA92DCC580EE90CDCD401F0D9 +:10D54000E88146580BE0E70F1BDD947EF6D6445A7F +:10D55000C760F8B6A3B1678AA29AF2AB9B3D1310DD +:10D56000FF027278BCCED8A835077EFF2DC4BBD190 +:10D570007A29F19E88A4E0BABC386F289F24E6017E +:10D58000709C24959BF84380C3D313894634187F3D +:10D59000128B4624D8EAECFD2C9C3470D3041F0374 +:10D5A0002E008752DC8FC240C7B3A002B182794CF3 +:10D5B000564D70B8A756A6466B2F9DD0E92848CD8A +:10D5C000FB3689E30D0B0538BE2AE120CE6330FA25 +:10D5D000BB0FE054CCE958C27A23A32C8174B45910 +:10D5E0007C3FCDA2D5B89E912B7519D7D12219FCBD +:10D5F0002BC8108F9AC5BCEF5BE0A5F9348FD676A7 +:10D60000E37C2EC379201C560A38F5C7B7CB06C277 +:10D61000B791D1684406785E2EC716E0B88EA2A4F2 +:10D6200086A4902EC5E34EE8B7D5183FCEBA71FC5C +:10D630001C89A5FE60FC345DEF44BCBF1EF703DA15 +:10D64000E7845BBF2DC37ADC272EFA80015C03617F +:10D65000258E722BA7A76E1EE6437AA20AE10ADF87 +:10D660004F22DC3DBEA8A4C2F869E57B23D8F5377C +:10D67000E4D8F5380F77B846427D26541FA6F9DE68 +:10D68000AB4619EEA75A198F4421FFC09AE9ACCED8 +:10D69000845FEBC4FA1D01164914A7F6F93E07C7CB +:10D6A00097AD65D59E1B7C58CF4BFB309995453483 +:10D6B0001FE207A005E0878AF8A1131EDC8A70D25A +:10D6C000A3FAB3846701AD5AD209FF47203EDFAB0E +:10D6D00086F3B0DDBD6B9C8B131C2EC709DE321F99 +:10D6E00007FED5114E1E91AF94541ACFB984C32BA7 +:10D6F000CBC7123A2CD4B194E7B37596C0857B1191 +:10D700006E535370F322BC106EE3C2B81D6C6451AB +:10D71000449AC0E1B309E193C63A920AEC8F5B4F99 +:10D72000C431DDA1D4FFF17BD0DF8EA38E705C37D6 +:10D73000E123037C9C9282535E0CE86E00796DD4E9 +:10D740001F5E7FE078A3F8B87C33E404E0EDFD3899 +:10D750002F45E3787BB6F2486D70E8EF203F5334F5 +:10D7600019E1E87473B8B50417C4715F3EC5BE60B3 +:10D770007D8E8E12DA278019C927FC9371DF829182 +:10D7800004CA25E287D3537A8AA7486649D33A95D3 +:10D79000909725CDFADBE2B884E3DD26EAA80D4EAA +:10D7A0009A87D3C7F705E44D8249B84E96F4A0BED8 +:10D7B00000720FDBE372CF8CC5FC9D349ED1BEBDE1 +:10D7C000A8940DA44F2BD80EEA20799C29E8DF6E8F +:10D7D00070F8D8C65B649DEF59B7F329FABB267D74 +:10D7E00071F0760A7BD7800F00F115ECC0A4076EAC +:10D7F00052D94109E44853E88771DC9F4D5804FB36 +:10D80000DBCAF8FEB3986C91738E10D7577721F16D +:10D81000603F41AE67B9D80549AA103C3BBDCB90EB +:10D8200053F7B3D8BB885F63D6F748086735B7624C +:10D83000A459BE18FA260B2DA2FA7BB6BEBBC18531 +:10D84000F2E3FB5A09E184C0AF3D02BF52E36C240E +:10D85000BE91684CB0B755941FBC7F3D1EA5FD1C02 +:10D86000B39EC9384E7E43AF84A951DE87B7826E1E +:10D870005AB62CC86058EE0ECBC8A7C676943CEBBF +:10D880000E98F135CA16A5E3D032EDCF03909E3144 +:10D89000F016C6CF5FEFB5E0AB818F674D97F1C84B +:10D8A000A171B0BE4B05FC2F15FC8395A9EFF418B0 +:10D8B000FB4AF68292CA03603EBA03FE837A6D8900 +:10D8C000947844EA5F3E4FF0A379F8DD981FCCBB13 +:10D8D000489684DDC0E5D23C5176F8A937264C83C2 +:10D8E00029BF1476C05E03749F7A6ECB34E8FFE5DF +:10D8F0009990D7C57C73B13FBE0F2F17B0480D96D6 +:10D90000974B8938F43BAF7213D917975638483E76 +:10D91000CCC3F99BE0F2F1C1BF28B80FB7545ABF8E +:10D92000972193A4F98478FFA26C4DA983FA7FA96B +:10D930004C227A3EF2D67B77CF86F91DAB94C23863 +:10D94000BF97C26FFB982F355E1FBC74A621BCEC3D +:10D95000E3A4F86080E46C9680770E28288CF802A7 +:10D96000D7BFB2C5FA72B57A9263C18A8E439C372B +:10D97000F1FD1E19E9AA423DE39EF425BF8F115C1B +:10D9800098AE4CA7D93362F84C898B71A5332E948D +:10D990009B2C827C2884DF8DFD0178E5AC34ED176B +:10D9A000FC9B16552CF3F51459CB1DE6FD2D48AD07 +:10D9B000C7C0278FA17747623ACA8D3629FE26A8AD +:10D9C000E06C8B7B72D53CA02BB587317F00E59551 +:10D9D000924860DD719CCF3B70DD00E7B4A03391CD +:10D9E00084EFEE7CC6BA91972A1D6E84AFA3381AD5 +:10D9F00097F5D4FAD9BA2CC29B3431D7CDC5AF6ACA +:10DA0000483F467FC0502C72CB8EEF8ACEED0F453B +:10DA10006FEBE6A9D027B47A86F0067D678D8CE39C +:10DA20002C9506B4B78C7186A5ABB3AD0724A1C005 +:10DA3000FA6F07C8A03ED450D9F0660C3E9E02FB98 +:10DA40001FE7A156F66EC0FDCF38BF610CF20FFF85 +:10DA500039DC7FB178F652F62EA4C14034FE2EEAAE +:10DA600035B283C3A737DF22CFD4E4D54C47FDD6E8 +:10DA7000178E4490FFB012D28380DF50BA47E6FA87 +:10DA8000CF0F44FA80CCF563586EC4DC0FE837DB67 +:10DA900064D473235AB5A2A37DC4F99BA1E7DAD756 +:10DAA00077AFA0F33DB246E9A6F4EF0471FE6E290C +:10DAB00076BF4CF08958FC039E483C89A9BDBE0A3C +:10DAC000D340FAF0CF5EEAC6F1944AC3EEAF27FB2B +:10DAD0000DF66B0FF5B7D86A2F790211410FEC43A1 +:10DAE000D20FC4F74DA3BFE51EC8BE2897633F9170 +:10DAF0004DF8EC0C72FD319D3DA8A1FF09BA1A77D3 +:10DB0000263BB56F084BC4DBD365EE840BE821DD03 +:10DB1000035C1816E393DEA1F9A23E877A64063609 +:10DB200001BC6A6FEC26BB0551A80250383D6CA2BF +:10DB300047DCDF14DD0AFA62C7C7C17A7C62DE3EC9 +:10DB40005F8CF3E530A74337FC837C26836987101D +:10DB5000D4191556FAD58AC2C43F3223D6EFB884F9 +:10DB6000F42C4CAD7CF9764867C1F70B6063715DAE +:10DB70009973E504C9501699373E37358FCC1CD0C0 +:10DB800077B1FC35D01721FF99C73F1517699ADF88 +:10DB9000299C1FAAB334BFE29EB8CCC795103E3073 +:10DBA000CF53D6F96CF904F713E669F98EF339BF50 +:10DBB000D432DF53E6F936B8F9B858AF32ABBFDF2D +:10DBC000305ECD8AEA61D27F92859F59610ACAA5EB +:10DBD0004FD987915A94673B4244277E4DC0D7DD89 +:10DBE0004DC8A8318DF8B1DD7F08FB75DABC5FAC9C +:10DBF00042E475E0B31CCED6721622BCA1BC83F5FC +:10DC0000D941CB2B0420997ED57F008BB8F1A8CACF +:10DC1000DA31FB25D49A8EF8CEFF4EBDCDE5F08DDE +:10DC20002847215DC1A27E9CDF474CAE45BBEA235D +:10DC3000C448D8878F7CD3F76CE0F8E2463C6F1677 +:10DC4000766E8E43F8937CAD9CCFB13E7C93CED064 +:10DC5000BE72FF08E879847771E6DE4072BE8DCB34 +:10DC6000AD38FC83F96F7658E5D80D3BACF96FB150 +:10DC700005B9C8BFBE759FCA90AFDF6893135FC96F +:10DC8000DC2F7303AB6F45FB6793F03B2DD7989266 +:10DC90000DFBB6E6170F4D477B2CE4E0FCE7CF60A9 +:10DCA000CFEAAE14DC570512CE48716A7D0AE3EB69 +:10DCB0006B92C297CD96065FDF26B5FB3294D7F103 +:10DCC000AD2A9D6F302127A93D0CA51C70443C5303 +:10DCD0002DED68BED7B759D737DCFAEDEB05C94C47 +:10DCE000EB5DB5BF8EF8C760EB71EE97C8DEB4F39D +:10DCF000A1690EC9A23F1B786ED019E035D7BBFED3 +:10DD0000E04934C17857E1A10CE92FF533B81FB6CB +:10DD1000FE5C4C876B77CD3FD8EE3A6C97F3F5DB22 +:10DD20005D3F48BBF640228AF466E8FB1E773DDF84 +:10DD30004485FBE7DA83C39487A0DC3144F9B8A1BA +:10DD4000DB03DD9D39037851871F490F8B87705E98 +:10DD5000A71AD1B1CED851357A39DA75475F733009 +:10DD6000B0A420AFB506715D2D928EFA79DD96F9DB +:10DD7000545E77DC11900B04F162FD828BF6A27D7C +:10DD8000B9CAA172382B3D0AEA0F75150517A0EC28 +:10DD900038AAC64399307EEDF7B9FD5155B16105FA +:10DDA000B6BB4CBF5A4579F2DCE34D4B31BF4ABF9D +:10DDB00050413E7C9B83FB033E7AEC89E90CE6777D +:10DDC000F4A7E92C89F357124ED47F56013E233E27 +:10DDD000DDF44FE9A44FAD7A72CD9E79D08FF48BEC +:10DDE000749A4FED9337EC73D1FC9A387E3EBD3078 +:10DDF000E31EB12E3780E6E806E1978CC7430BA1FE +:10DE0000C91A17BB0EF503030E067E2E6F2BF96D94 +:10DE100010E7B53F93FC6B7D78AD407D685F07E907 +:10DE20008201F07AA783FBBB3E2C702DC6794AFB9A +:10DE30000F5D4BEBEBBA4AC5F549CD99CE3FC178A2 +:10DE4000DBC43AA11EAD23FEA894180FE51F3E2A9D +:10DE5000F175754DD9ED41B8EEDFED5C4EE7101B65 +:10DE600008BEC67C97EF2F691D09F5966FC92C4433 +:10DE7000BD71CE3FFDD4DF03DF6FD9EF48A29E070F +:10DE800029E97BD7B739AC763D487409F0E066C123 +:10DE90005F6E3EB086F8EFCD5D77917CBAE5A06A03 +:10DEA000914F00673ADFBAE90D47186D929B7EFEED +:10DEB000633FEA597F0E3EE6473B0EC6A973021D3B +:10DEC000941DB3CA35ECFFF3ACFEFD81E246E739A1 +:10DED000B7746DE6E3312E470DBEF267FC9FBCFEC2 +:10DEE00072EE90C37A3EF6293B361DE53EDB9F3D40 +:10DEF000A0FE69C83583BF805DB42B0EE37EF8E4D5 +:10DF0000FFDA85FEEFA35FFD65D79D08F7673C1A32 +:10DF1000E2F72D8FFD69D77751CE1C74C988271F72 +:10DF20003FF3E37D3B21FFF1EF27962249FD87E098 +:10DF3000571F177C968BEB5FF7CCDC11888FEB9E1D +:10DF40009A33820DE0D730D28F01AF1226BC32F463 +:10DF50007BFD20F43702B2BF12A96D5F0E1F702443 +:10DF6000D145F4D19B2ED2BB6E816F0DA027DC5C16 +:10DF70007F03F90931BF1EE07BF3E3DC1EEC0FE702 +:10DF8000F82839886972149AA0371F5878F979658A +:10DF900098AA611DD7CB7A494ED9DBDD721CF6F306 +:10DFA000DCC1F7EF53F6A513E17E0BEA3353FBEF29 +:10DFB000DF47F83F33FBEFDF170EEB39F8A76CF5BF +:10DFC000C33BB1F040F680F6BBB17F6B9EBA2263D3 +:10DFD00020BF9119BEC9B380EF4AE127790EC4A1D1 +:10DFE0008274F7E44FF6ED0CE0FEBAC2F370BF7F27 +:10DFF000FA693E2AADEFABBDD722FDF53EE3D23A3A +:10E00000A1CDAA67DE2039F6F153AF3875E2E7A05B +:10E01000FA827CFE98F5FD75A3BCBE59F87D6FD9D8 +:10E020009B9E44BF8EB14F3727E6D7EA7EFA4EFE5D +:10E030009E9B131CEF6F4E1C5A240DB06F554A2146 +:10E04000971F891C82CB1ABDDBA9F9ACFB2955E0CF +:10E050003E9EBC00F16EB07D34D6AFE1FA6798F613 +:10E06000732FA7D7C1E8F2E3DD2E45CA48EDEFC70D +:10E07000428FB92521BDC106A057C33FC41C4B87A1 +:10E08000DC273B3ECC56ACF860B437D63D1C3D0F88 +:10E09000BF9EAF07AF73D0D82BEF0FB70D73397F8B +:10E0A0007EA9C04576C22BAAFEA35B113F9E57599D +:10E0B0002734B9ACF03D451FC00E7F19F5A189A9E1 +:10E0C000FCE515524B36B4BB3C02F2444FE1A9517A +:10E0D0001EAD7430DD349FD3B5EB42486787838C27 +:10E0E000CE5F8EE4B104EEC76FF2561FC1EF5BA0A6 +:10E0F0007F06FDB7366AE834646D8D414AFBCE0574 +:10E10000234532EAD96B51EFC7F1F63FF6D8638069 +:10E11000A717E30020A20E83A834DBB36F8AF9BEF1 +:10E12000DAE8263DEEEAA2271494DF52F1130ACA78 +:10E13000954B624F2878BE75A4EFBC456FC123B8DC +:10E140008B8B324BDBA1FFDF485CAE5E3C6FB7B21E +:10E15000DCD4EF25A29F4B8A778790FFBE20CE1795 +:10E16000EDF07A4AE1FC75C3A41F8770BC1746FF27 +:10E1700028C48DB120F925F3855FF2C8F81F3FB898 +:10E1800016E078B4480AA3BFEC68C3461FF2E1A3C7 +:10E19000FA420BFE1D9AF49E84FDE407772BC8AF6C +:10E1A0003B914FC0FAF6C2FA905FEC03B8617E3F34 +:10E1B000C00DD3C71A754A1F6F2CA2F29F3586294E +:10E1C000DFD55841F9271B23943FD0584BF9A71BA3 +:10E1D000A3943FD8B898D25F35AEA4EFFEF6FDCD3C +:10E1E00059E8879F2C7521BAFEBAB19ECA938D0D4E +:10E1F000547E9BC2F583FC36D686FEE286067E1EE2 +:10E20000D3A94617474DF337EA3DAA70FF426F5A2C +:10E21000AC13F9D6E9DA45E5B8FF2DE3AF9A82FBF6 +:10E220007854BF3786FAC5A7E3DC74D6402E4CA0DD +:10E230008BE7C7CFA0F3CED519B1471593BD5FD8F3 +:10E24000E664C969B88F899A5C947FDF04FD0EE0AB +:10E250007871ED6E2517FA59102BD065DACFAEE63E +:10E260002CB42BA688F279256A75F1F0FBB85ECC48 +:10E27000FBB9AAFA10D2D97342DFBA3AE660452652 +:10E280003D6461AD357F83689775D1B821CF77D371 +:10E29000C350CFA2CF703A72A1BFDCECD7D3475A9C +:10E2A000EA39B43D51F4170FC69F1CFE5AAE276BD6 +:10E2B000CABBC8DF64B477E514BF31FCA64B98F144 +:10E2C00017A1FC757D79B0B00CFD1AE0754DE4B86E +:10E2D0008AFAFAB5600229902E676127EADD60DFCD +:10E2E00052FA2D564FA92B9454F979638D86E70B7A +:10E2F0005264B6E34CDA50FE34EB3984FD1C7E0CDC +:10E300004C0CE11D9CE58E99EDAE0F047C3F13296A +:10E31000E0D11AC49FC1C631F88BC157BEF0453F4A +:10E3200051CA53FB63A483B5B7EF93311F23AE20CB +:10E33000EBA275CF8D862DEEECD0891F36F448A464 +:10E34000BF8F3D51D04967664C27FEE5F208FE2598 +:10E35000F4DF06FC5F3C375894967804E54F57810C +:10E36000A55E70A4E157EDF120FFD8D4708AD2D316 +:10E370000D85DB27B2E1D76BE7A75FF862D92AC02A +:10E38000EB4763A66E473FF9AEE71DE417DFA5F63E +:10E390005C8DF36838E1D237C27C5F562201B59CB0 +:10E3A000F8364DC5C0DF862DFAF6227D70B874B6FA +:10E3B000150E0947FBBCFAF07110FA48E109AF07E6 +:10E3C000760A7397125E267520919EB48CA7BBA126 +:10E3D00074594352C5FD7F5B894DC1795FC3122AD1 +:10E3E000E2E39890968B4CA4CAAF13BC77E5BE9B32 +:10E3F000474C45E929887E9D7820C60694E39B8496 +:10E40000DC81E9901F285FF871E4B40FF3506E547B +:10E41000A9D280F113AC41F9D01CD705B298E432EF +:10E42000D4A573993A1C18A65627F790FFAD469BC2 +:10E430005F930920BA767D8190B71C6FAE5D9FB95E +:10E440001BEDD5096A6C9ECAFD02E4EFAEF34DAE3A +:10E45000417DED6CD707A3F7A01EE812F46EACF770 +:10E460001D77EC2AECB750CBACCED491BEB9FF7877 +:10E47000AEF0379E0E30D2E707EBFF5F447CC863F7 +:10E48000B0EFE847553F641DA82F3E07FB8F7994F6 +:10E490005758FECF20AF30BF0BE415E60F83BCC248 +:10E4A000FC3320AF30FF38C82B4CF7819CC2EFA75C +:10E4B00059F446C46335C0CF9F9B9C6C25C59FD93A +:10E4C000FCDA6B05FC8DF45695E3410B3AEC505E9B +:10E4D000BCE5E4E7604AFDA805E93C45BC98B637D1 +:10E4E000E2C0B31EFF319640BDF6E2FD1D4770FD50 +:10E4F000E177B4667497DEFD52D1612FE4FD932578 +:10E500003A17DFF14A43D283E572D7613FEEE36FFA +:10E51000F939E053E32505FD2AFEEED66FA3BE5977 +:10E52000C6221BC83FABF41E7241BDB2455A18FD4E +:10E53000883B5F774670BF763AC34734D8D79F2F62 +:10E5400061E14EA42734A241AEEE192FC998FADB3F +:10E550005EBF13EBF9B7BCFB3DECCF5FF4C0AD94ED +:10E560008E7BF436FA3EEE5F6EA77C77F20E4C4758 +:10E57000689F2C7E15E6953179F32561E82FE390AD +:10E5800072111A4CC1C3DFBA0BED84E00B3B36634A +:10E590009A37BAF3F92A287F4E2D20383DF19BDCBB +:10E5A00079619847CBB7E512C4B7434A36E51FA84F +:10E5B0000F50BE54754491FF3D5DA9D4264C72FEA8 +:10E5C00041959F67EC539D942A8A83F43D23DE5046 +:10E5D000492A6437A8C7F9798E7A94E75D5A07C546 +:10E5E00083EC9262FB088FEBAD712DC639CE632AA6 +:10E5F000F74B96EEE6F87FA0474EA01FF560F7C6F2 +:10E6000034E48B07BB0B1DA83F952ADCAF72B0E743 +:10E610001E4F3AC0F9C1EEB523381F8EA75D05FD28 +:10E620003CAA7A697E4F221E949BDB6751FB1253F2 +:10E63000FB0C5C37B62F48B57F42B4FFA54A346B5C +:10E640006A2F3B300D637B1F6F8F7A47E815EBF81D +:10E65000FFACF2B89467FBB52F9571FCB1627C3BBF +:10E660003D1D12ED5AA478DA54D467D628DC4FBA8F +:10E670002E8BF4CA728FE029A2FE4981F717F79D0D +:10E68000CFC5689CA78F17D2F9F5E07C414EE91FF2 +:10E690002497BD293E4FF92C5B7EA4AD7EA1AD7CB5 +:10E6A000B2ADBCD49A5FC1F5FBB0D08B1B58E2C1B0 +:10E6B000B5281743323F4F7FBC88D617F618F8C0ED +:10E6C000E56989E803E4E85D547F9EC2A8BE90A393 +:10E6D00025428EBE9067AC5F4FC3753730EDAE629A +:10E6E000AC7F4C6604BFD858AA5F28C66789F13C46 +:10E6F0002FC63B1C2A7D11EB1F38CAE5650A9E51C7 +:10E700003AEFFC85147EB118F9C945D6FDA810F37F +:10E71000B3CBBD666716E14F67F70237EEE3BD3551 +:10E720000A8D5BD8159E83387F51A8E030A6784EBD +:10E73000F24B00D53806FC08B6B2F3DFA6CBC8779B +:10E740009E4FEF98837CE6E787804F40BEEAFDFA54 +:10E7500036F467359CB8B0BD16D2D14EABDC39ACBF +:10E760002C64683FA86D8B283E8E1D63147757B8C4 +:10E77000B9CC7183090FA68564C2BBC2CD014EFF1F +:10E7800081BDB31C82FE96A463BF2E7E3E11E2764D +:10E790009C896E473B916E170F4CB7631D2CEE4062 +:10E7A00078BF2D733DA7369E36DF14377730097C4E +:10E7B00004C60D1F2A3B7D14E3DCB459D390CF74FB +:10E7C0006E76F278CB31E13D487F539C9CAFB0F739 +:10E7D000D960716F539CE5FDE3DEC6307D5B0D4C67 +:10E7E000744C378F631E93E4E70F07BF04E9EAE830 +:10E7F0008FEFE7FFD56BD16BE40EAB3E3E8699F40D +:10E80000F18201F0FDC439A9FA85A49F52FC3BFBBB +:10E81000F20C9D5F950D12D7F330E209807837C86E +:10E820004D4C0FC617B87558C76F030B68FF583C9F +:10E83000E2AB82F6741C05F0A91071766AB33E87CC +:10E84000F84E9BDE847E36D771168E4095AC57F815 +:10E850007953679225D0CFDDA9B16CF2BFF470FF78 +:10E86000A6711E89F484FCD975DCEAF72C14E758EC +:10E87000619B9FA450F8530A6DDFED7E916B9D560E +:10E880003FE7DDDF75D03964FC7507D1F59E992C23 +:10E890002E65F0FA781EB5E302F7EE76E293DC3EE1 +:10E8A000794AF465F84B6E72F2F3A6236F4DF422A9 +:10E8B0003CD63A75C2C7CE2DD3BDB8FE3DC70B4975 +:10E8C0003F3E3C6B725A0FE9653C5EC525FAD9386C +:10E8D0006BF28B2B619CA7012E686F1F082D1F8583 +:10E8E0007165F7D4B829EECCBF471B8576EB13BB17 +:10E8F000855FFD043F9F6E17F0261B1EE0EB096944 +:10E90000A477DDE994455C6AF44EC43BD9CDCF27AA +:10E91000FC63A551E857EF2A90B87F61987E9A531F +:10E92000FD349BFB31E9812A3FE74872FF81C0FB40 +:10E930007CB78FF40FBB3E597782DF2B00BD701B75 +:10E94000F6771D8B46C83E03358FFA397BBD304EB6 +:10E95000F013F3CE0F14C8A807A5F4C3E84E27C6DA +:10E960004F86B48D58E76CF5C25D8D3C7E780FEA1A +:10E9700081E331FE09F44258C78B421F7C58E88D71 +:10E98000A0E7ED735AF4BCF0628C4F39D41A9BA304 +:10E99000CC443D2E5C8AF99FB5C69ADC901F23F7C4 +:10E9A000E66148F9E1D6BA3998F73749249A7E05E5 +:10E9B000F97808E31418D7FBF631A1F7B1AC5AC8BF +:10E9C0004F5A1108A3DF678C1C7EA108F9D42A7E58 +:10E9D000BFCABF97EB51FDE854F887FC4D996B1106 +:10E9E0005F0E0B7E7B58ECA3915FA6C492C417C147 +:10E9F0009CC6B802E39C580DC4883F1DC60007C4DE +:10EA000067A726CE9B3A46F2733648D307DC7F6E63 +:10EA1000670CB7FF7BFBF6FF65849F79FFB30BCED6 +:10EA20007EFF816F116B1BCCFE717D7E0E5ED6EA80 +:10EA3000CB9F66B1B768BF423C5EB46FDF64D0CF96 +:10EA4000217588B83DBF637E3DD2C727829E8DF475 +:10EA50007D0137F68E95BF035F7F1FE1E851EA45E0 +:10EA6000F009E7EBFE26E8C76782AFB0BF8CF92C50 +:10EA70005396FF6FA7C92F897047BBECB4016F563F +:10EA80004FF1DBA0F753FCD13F0CEF501FBCBF127E +:10EA9000F446F3CC077BECEBD05BEA1C566FD61048 +:10EAA0004FBFCFC208FB39BEF99678D35352CCEB97 +:10EAB0002A4FE9070D27C00E3917E7DFA372F8F4D4 +:10EAC000AAB89EEA6CBD4C42C59F6D99730C586103 +:10EAD0003512295E4C6277CD413F66751ACFCFDB88 +:10EAE0007461731CF378C6300BCB7F3C07CF09AA47 +:10EAF000C7F2F22896437EBE1A19E1329D73C336DF +:10EB00002498C96E54B59355C81FC06ECCC7F9E997 +:10EB100021BD1AB724BF41233C385BFE9010F4BFDF +:10EB200057F009C0AB22EC4F8D73FB7138BBAFC4FB +:10EB3000C5F1C8484B91D9E798ECBE470DBB2F31C2 +:10EB400092DB7D8991E6FDDF8BFA22F27F4527B9C2 +:10EB5000D2E7A769F670FD45E89F0586BE68E3CB5E +:10EB600086FE59E0B1E24D46BED16F84FAB5E3911D +:10EB7000A1378E15DFEAF673BCF2FFBDA96EB38430 +:10EB8000FEB75EC24B55E0D5563CDC03B8EC6EE3F5 +:10EB9000F715B2EEE071CC7BB7646562FFC79D915B +:10EBA0004B5DE5A9FDBACF19B9DC9C87FD8B0DB291 +:10EBB0007F579ECDFEA93E4FDCBC1F06FC5F12FBBB +:10EBC000D68DFB08303F26F8FC6916B90EF1A7C9AF +:10EBD000A993FF29FE8283F8EC607830981FCBD888 +:10EBE0006F839F34BAF93EA752CE875F12F50A2A87 +:10EBF000D82C2D23D5EF77055EBCE419380EEE0E28 +:10EC0000176FEF6F8A129F6222DEB1602F97D7468F +:10EC1000BD3B5D92E0239A2CF8B68CFCE43231AF18 +:10EC2000C20A56691E77B318F7322F2FB78FDBE66B +:10EC3000E27CD0E08FC6B8855BACE3B68B7E0CBDC2 +:10EC40000D3D0F38EEA4E65E8A572EC4386648F5AF +:10EC50002DD108EA112FCD7C6FEFBDA8CFE71409A5 +:10EC6000FF5184E17DB807443F3B9D91208EE70032 +:10EC700038A19F211FE68DA9EA6327898F37C449F0 +:10EC8000DF33E9FB0F101EFD75E0FB6D06DCFD0AAE +:10EC9000AB7195A6E6FD770157236FACF3B28A4FAF +:10ECA0008E64C3FC26DCC7E3B7A311EE3F2D8C8432 +:10ECB00076A3DD9C2EF6F3B1366E778C77C59E7CFD +:10ECC0001ECA1F7EC449F75E777EDF19413AD9E933 +:10ECD000D4DB517EB754CB6417E5D67C5BCA86740F +:10ECE000C70F5A9F789EE1E551EEDFE86C2BA47ABE +:10ECF0000FAECE227F86910FADE1FE8DFBF7DF7365 +:10ED000011DD4F6AE3F7933A6D7E8E7F76713FC7D0 +:10ED1000619788D7DA2FD3BD973E3F47A5F073ACF4 +:10ED2000177270856CF7731C263E3A889FE339177B +:10ED3000F773DC9FE07CA7A98DFB393A7D855EB433 +:10ED40005F3B7D0B48875423DC5EEB6C137E0E9F8C +:10ED5000E1A7D0BD57C13C7EEBE2FE829791C07324 +:10ED6000866E4F7E0E9FE1A7E0ED5F72713FC71B7D +:10ED700067D19EFC1CE9D6F15F17EDFF88EDCB87CC +:10ED80006AFF64E60D26F8FE41CCDBC9F4F6C93013 +:10ED90009F3DF7BF19A67342D6115B05F97D927EA0 +:10EDA0000FEA6DF13CAEA7ED91AC74FC91A0A37499 +:10EDB000C10F0EB7DD23A33D30A9EDBE6A2FF2F1DE +:10EDC0002D60FF32B27F65F3B86357C8E4B729DC22 +:10EDD0003C8EE391CDFE4D770BFB7705DF6FD37E45 +:10EDE0007EE51AC2FE4D77F3F51BFC069AD6E0FDD0 +:10EDF0005F635C03BFED7461DC2F5699E90FE6D5C4 +:10EE0000B198F303D02FD3DDE5A9EF2362B9C27E19 +:10EE1000020A827C7014F72F1AFC08E8B1D94C8FD3 +:10EE2000F5F67105BF1B8E1E1BFF8BE8F14AF77FBD +:10EE30000D3D9EE376503FE5EE7F981ECBDD43D03F +:10EE4000E34C37D717FFB3F458E1E6F450E5FEC7BB +:10EE5000E83122DA5FE41E8E9E06A6C75A37A7ABBA +:10EE6000F9C3B6B7D263D4FD9FA3C7EBDC9C1E1BCE +:10EE7000FBE8F1143FCF6E7B6703FAC1411D11F42B +:10EE8000A858E8511F861E1B07A7C75B683F07A14C +:10EE9000C746B17E430E43D366333D360E42171844 +:10EEA00088AA0C4D8F8D67438F76BB02ECAC08BAF5 +:10EEB000A006B32F18D86D88C7F6F3B6E1CE892F18 +:10EEC0003FFF0EF2234C502377BB4D7A7BB91ABB20 +:10EED00097F236FEA206787C7EFF7701ECF71D568E +:10EEE000BE19D3C90E7900FB1953114D5AEE3B4C94 +:10EEF0000C07C3A897675AEF4DAB1ABF57EE9FFD9B +:10EF0000654F13EEA7367D1AB6DBEF167E3DDB7D2F +:10EF10000003FEB09FFB11AEC6FEF6DDEB40D794BA +:10EF200069FEAD79570E764FA0CB6DDA4F3530F4D0 +:10EF30003D81AC8B145AEF5AC91B46FA6BCA630762 +:10EF4000D02E6B12F1227DFD80FDAB83FDDBED2E1B +:10EF5000B4C4BFDC1E885F8867E768FF73B8837D31 +:10EF60006A8133B7FF5D72EC08AEEBEE597F7ED35A +:10EF700081F17A4F7974A4D78FCB4E3B316E01DD8E +:10EF80001708B7F81D5EB23B9AA49E3A6EDF25992A +:10EF9000D92F83F790E7A3FF0EF107F95E08F0C7BA +:10EFA000740FACCACFF95753FABB7938EEDB02FFC6 +:10EFB000F12F04F41113F3AA53B8DD7B1DEBA674F3 +:10EFC00029EBA2F46D25F626AE6309EB25FFD1C629 +:10EFD00034FFF908E7FFAEF999EE9F521CA1A8CAC9 +:10EFE000F04512F37DCA2271EFCDB04BC6DCC728C5 +:10EFF000AE69625C21B95414DF48F76CC7606528BC +:10F000001FBF95D1BD332827FE6FB49F98705AE279 +:10F010004A0BDAACF9B1E2BEC37871BF93BE17E018 +:10F02000F93EBF2F37D6F6DD88FFDA851F06F09B45 +:10F03000D8FDA40ECFC0F16383D945863FF46E1688 +:10F04000F1784C78CD1AB89FA125677A70A0F606A2 +:10F050005C1D6E1E3F62DCB730EC29F625B3DCBBCD +:10F0600037E8D613D23B916EF33CDCDED92545F36D +:10F070003C39263AB4C5676D9662DC4FE38BF37278 +:10F0800011AF45572B646ED7615C56B388CFF295AC +:10F09000D593FC7115D727914F7ACB18723A261564 +:10F0A00025C8EFED2DEA0A629CCE5D83C4E95CEDD4 +:10F0B000E17265C3147E5E70D75B12D9A7778DFFAE +:10F0C0004ED01C77E530E2AE467FC7DD6382CF26A7 +:10F0D000DF5A37CAC14DA10543C2DDD1E1A078A3F3 +:10F0E00061EBB5F17A8395BB7CAC0DFDDE9F8D8E17 +:10F0F0003F87A076893897BE3811811B8EBEF88F66 +:10F10000309D33D9E3439ADC6137FAF39B420B8697 +:10F110003CCF737D2EB16436C5755C8EFB7668CAB4 +:10F120007482AB43EFA27B6669C5C0F721F586EA1E +:10F13000F14E3D70799CC8F0709FEC117A36EC96D8 +:10F1400039FE6973558C213FDB9CC7E87EBAAAD98A +:10F15000CA451C9513D76D82E3680F97BB378A1495 +:10F1600051A8A214F76D1FE12B20894674C2F8390B +:10F17000CB6A0FE763CF2991551C1FADE506BEC7CB +:10F18000AB53FE06F4A7ADBB744539E2E1EB428F09 +:10F19000F467F33874631EAF7BB83EF9BA585F3B2F +:10F1A000E06B6262CA1FE16F929232C0A977B49C91 +:10F1B000E82C407A2CA2EF9B628FD78E8571362D7A +:10F1C0001AAFE1FE7CA6C65DA8375C315AA6F3F201 +:10F1D000ADD5DE95E673DDCBFDFC9EC147FEAA23CF +:10F1E0001E48C3BE1EF2B7B088A223BE4A827F9ECD +:10F1F000AB8102807122E85724BF64D8CDE59F8897 +:10F20000B3020EFE75E2AC7EA630079E13C57D8C60 +:10F21000F4B5F41D125DDA32FC2BF7FB17FC00E7A6 +:10F22000A31E8C515CD5A1E95EE29F7F6BE171A3C7 +:10F230002797CD26FDFE5579F9C3A8BFF5FEDEC59B +:10F2400030BEF8E4A597D4223F3CB9EC9A8BB1FCD0 +:10F25000A4C46A257E69D68FF1ABFEB1FA4F0F20A8 +:10F26000DC5A3C14DFA006FF25FA0EBD0713F1CBD4 +:10F270001550FFEF8EDFA6013CFFE03BFD03540B72 +:10F2800097B124C91F239EE7C6F4D863B8CFCA3507 +:10F290009714A1FEB9D5A9E523BFD8DAEA2A45BE5D +:10F2A0009EF9093024B4EFAE48E3FEBD5ED049308C +:10F2B0004EE67B0B1F31FB4FAECDE1FBE16E688963 +:10F2C0001494E1BB0A61BA6AE81FCBF1E00B5FEC72 +:10F2D00020AEBFDA5D42F118CBEA79DC8D1187737D +:10F2E000CD4A9E7F5DF81FED7A995D0F7B56E091C8 +:10F2F00012E471EF8A8FCB1FA629B6F79DACF7CF2A +:10F30000CCF8A04DB7E2832A9BF02102F830C582E9 +:10F310000FD29973CE1E1FB6211D015CAF9CCDFD8F +:10F320003FF1EAF02B442FAFAA442F467C9C1DEFFF +:10F3300037C5D6BBE5E2FEF461D0437BD9821C9D84 +:10F34000F07FED75B42F27251D435AB419EB35FC1A +:10F35000EEAA734691FE0CBA30E821E213F766FC80 +:10F36000555B7D90C67C3D7325BD3F5DA0FC31E3C0 +:10F37000FF754827727F3A59C2C257E1F9EF1285EB +:10F38000C533B252F8BEA482DF4B5DD2B381DE1723 +:10F390005AB25E62A74CFB76E60CE4DD16B8697DD6 +:10F3A000EF2B38CE1EBEED1749ADA83FB6ABBDBFA3 +:10F3B000198170CDE474D7E491F6A3DFBE35FDDD8D +:10F3C0009611009FF65C9DE20BECFECED609698497 +:10F3D000D7ED578E22B9F683469DC500BE7FC08B00 +:10F3E00071D8DFA274C2F77B01EE31A8FFA3C6304B +:10F3F00095031DFBBDC8C79C611684F22B1DDDF56E +:10F4000087711FFE238DE21EFEF6CBD8B978EF651B +:10F41000EBF45563507EFCED8ED818ADD8BC8EC48D +:10F42000481E77DE3352E687CE220E9D89EFB1511A +:10F43000FC7B82D28760FF4FC1D67D9C5660E86F0F +:10F44000A25D0FB56BF7777B68BEB94E8DBF3F10DD +:10F45000292F87FCC273020CCFDF1E72F2FB4876A5 +:10F46000787EC3CBE5C14247878EE77B93BD397376 +:10F47000F1FCCFBB7D77477918558A9CB91779B0D5 +:10F480001EF79BB57C35AD1C85C7C38DFBA3EF98DC +:10F49000DE1D1AB3BE8BE45C5A713488F7665A8459 +:10F4A0001C6A39E4E1EFDBCC5BB617EF298D29EE5E +:10F4B00095BE598CFD29D49FBE1EFA31E96B4B6075 +:10F4C0000919A51887D341F1CADEF16E0DF9CF9263 +:10F4D000A29A0F9401F008FF4E99F0A105E5A94901 +:10F4E0002F5967E82539AD55081F6F1D9390CF2E12 +:10F4F000F116103D142242C1787F2DAA1952CE6315 +:10F500005C78DCC5E3C2E313795C38E631CE0E5398 +:10F510008C0BC714E3C2B11CE3C2318F71E198C7F1 +:10F52000B870CC635C38E6312E1CF318178EE92FC7 +:10F530001B6394627C3896633C38E6311E1CF30BE7 +:10F540005DFC9E3B2B8A79CB112E93C749B8AFDE69 +:10F55000766704EF8D1C10FB3867F3A2ADC7619D81 +:10F560006911856C84B40795CCD7789E6EF6A60594 +:10F57000B91FA235F824C3F7B5D40BD229BEFCEECF +:10F58000B77C94A62DFA39C3B8884E557764970096 +:10F59000F6B55F3CD7ED41FA624D5961CC5FD9EACF +:10F5A0009EC4D8B4B24F563D09F97DDE680BBA9AB5 +:10F5B000EECEA97D55A7FC42CA8FADAC4A67743E1A +:10F5C000B6B0E508A4976130299D8F317AF72412EF +:10F5D00093C479188BBBC731763C72005823633FC4 +:10F5E000F12E6EB98FA17FAB2B5E9D89E75257B488 +:10F5F0002C9A44ED955C8DFA9F3B454A95E7B45DA6 +:10F600006A948BFE17B644A0BF574EC8D4FF46A8D5 +:10F610001FC7FE0BB54BCB90BFBE25937C7CDDA9ED +:10F620006F24FBAA1DF805CCF7F2287FBF636C0D91 +:10F63000DBCD0A046205F0DE38F73F94A7713993F9 +:10F6400029EEB7CAC019D11EC998F77342A20CDBC4 +:10F65000BD726FB1627BEFC2FA1E48791A970BC771 +:10F660000B19BDCFD33BC99D4039BF02F1793CEEA8 +:10F6700027A7B7CBA37B748CA3185BE42E45E67C4D +:10F6800000839478BB24CECF6867AF87FDCAA6728B +:10F69000A31DFBF22F0AF28596AD3C66C25B98D0A3 +:10F6A000D7165BFB95CB06EFD7548FF4D921C667ED +:10F6B000D210FD1874E57546D2119F7BA7F07D59D5 +:10F6C000B470AB41A732DAEB5EAF557FEC4DAB6E59 +:10F6D0004D83F15BD338BE7BBD5D470BB1FD790A2D +:10F6E000F941D9FEBA1730FF9D9D32F1BD5C05F698 +:10F6F00019FACB6DD34A908F1C1774921D58B10024 +:10F70000BF67EF50985E805B1D57F15E438049F400 +:10F710007E55BBDA3197EE3DA812C5D394557CFBDC +:10F720009232F83E63EEA7447F339E9125D4535E18 +:10F73000F471BC283937BD1EE5ED25E78E9E867431 +:10F740007597EDDE8C9186D3B89DB717CBA1BEB46B +:10F75000EBCD7AD2FFCA7D12CA9FBF7DC2E5C4DB62 +:10F760005EDEEF44275F3F631DA4E76D082A74DF68 +:10F7700048CEE3A953AD5F8E78E07CC84DF7719D0C +:10F780005FCD70239F6FFADC55CBF96037E97F4E70 +:10F790004F4CC3FBB585DB653AF76AD2BC097C4B9D +:10F7A0002923BDF4A88E726BAE42FEDF8CF314C227 +:10F7B000FBCCF42B13E89FD976C843F5D5747702B8 +:10F7C000F9F7DE9ABF466BA07C6FA5427AF8DEB6E9 +:10F7D0004551A2234DD6C693DC09FF1BD2D9DEF5D5 +:10F7E000DC1F9721B128CEE3F525B38375DC5F4597 +:10F7F000F7CEE9492DD9641F83A18B7E8C595A75A8 +:10F800002DBDCB91594DF15999736BDCBC9DF51D04 +:10F8100097E61A1ED786E5D7E33A9BD9117CB7C77E +:10F8200020DDCCCC7BA402F48B7D937F6BCE9AA59C +:10F83000D7F9705CEBFDF6029F3B89FA749EC6FD1A +:10F840009C7A11D71F0B84FF02BED3FDD8BC662B58 +:10F850003D23AAA1BE39266E7D1786A1B50DEB1BEF +:10F8600025E6A18AF5CF7EDFDA7E9488FF1A65BB94 +:10F870002F3F45E0871D4EF6F5E705F66AA85FE7DE +:10F88000C5797CA37D5D7901EEA729D0BC7C7D0183 +:10F89000BE2EFB3A6669A7AA50EED9D7319B756F89 +:10F8A000403C1CDD60FD6E9FEFAC9ABD51D4676794 +:10F8B00015290493D9ACAB09ED6663DFBD8556FA13 +:10F8C0003DEE75887B4AD56B908EC7B6C920005235 +:10F8D000FD8FEFF0B2B869BC893BB22CF949899130 +:10F8E00096FAE7EC2FB4944FE99A6C293FF760A998 +:10F8F000255F929C65A93FED68B5255FDE7DB1A5CA +:10F90000FE8C371758F2337B9658EACF7E7FB9A525 +:10F91000FCBCDE5596F26F7CBED692AF62775AEA97 +:10F920001B760E0B86BB23018CCF0C9420DF32E0BC +:10F93000B52CCDEA2FB7DB35763FB53F8DC37B388D +:10F94000BBE9A634EED7C95D54C862A6EF817993AE +:10F950002DF9E0D25216B3C831AB1DD5F2D5C2C5D0 +:10F96000FCBD5337E9DDCD395792BF75ED24A78E25 +:10F970007A16995E59683666F2FB02CF8FA7FBD0E4 +:10F98000AB3322B7E1FEE33DB37836DEC373923C7E +:10F99000F3FA9C64077B7D3FE4FADF3837BDA5E4CA +:10F9A0002D4AB0D814F46BB545C7817CDCD618A7B6 +:10F9B00054298AC651AE280146F7D1B4A25ECA6B5B +:10F9C000953C7F459A4EF8A655427DD3BA540DFA20 +:10F9D00031ADEB5599C779F4821DDE69B2C3ED767E +:10F9E000774CD3F61D6029FB1BECDAE437A85D1ACF +:10F9F000B52B44C3A974703BBB92753B303D9FF55A +:10FA000052BA97D517A23EFD9A33EE1809ED6FDC76 +:10FA1000FBCA4A9CC7CC322FDDD303BBFCC1B4F276 +:10FA2000945D7E3253CB4779BDD319DD7A1CC7BDB7 +:10FA300043652837AF9D7FA91BF9C1B5939430F773 +:10FA4000E383418DF6F9FD59612EE7851C519867D6 +:10FA50001CD4BBE2AE71A5F83D57A927799BBB54D6 +:10FA600093503EFE29CD908F652417B23B94B0AEE3 +:10FA70002368F46AAC176863E124D45B5008F2127F +:10FA8000E5FB0F789C7461D1842308A751AB9312D6 +:10FA9000BE17A745743ADF2C3C71E151C98FF214AF +:10FAA000E683F2F42145E08993ECAEB5F72B647759 +:10FAB000AD7D5EF5E013516B372B25C848FCE84758 +:10FAC0009D06FD54717954F8D08404EA03774BDA2B +:10FAD0002EB2735A5C61B4731E1078F010E205D830 +:10FAE0002327735B376AD07E926F37C5539E1338D6 +:10FAF000B411D329A19332BA4BCE1D27356541BE2F +:10FB0000A4B8C081E7A5D3CAAA9A302DAFAC7304BC +:10FB1000209D512361B81BFB5D1A3F77B87AC5FC65 +:10FB20003751CFA9F2B9E9FCA070D6FB8B911FAB7E +:10FB3000C3DC13547377D03B776C85F59E6095DFFB +:10FB40004D78AE219E17504A7AA7B6282D81780E9F +:10FB50007AB684E723F12AD6857A47289294501EF4 +:10FB6000423B3AD7D3921E09FD8AA322DD12E03C24 +:10FB70001BB58ED1396E7EA447C27BB7A1D5563C4A +:10FB8000FFC217FB13E24FFEBA36CB773FFAFD00F8 +:10FB9000BECD32E73FDEAC583AE28F776A615693CA +:10FBA000CEFD76F38B5378F38CD09B1E12FA8EC168 +:10FBB000BF0D3DF6409F7DB82721035EEFEB8DB56D +:10FBC0004F42BED020DE9BE94D3AC85F74DB7CC259 +:10FBD000C77CE19F5AFAD7AE960CA45357EFE10CBD +:10FBE00024989BB8BED5E9B1DAAB953ECEAF66F8A6 +:10FBF000B87C54DB41E29F6B7AAF10FFA0FF27D6A1 +:10FC0000737D5DFD83AF2D3383B1977D7CDE537FA4 +:10FC1000A555A39FB720A93D4BE931911E8154B44E +:10FC2000C78DC7A9225DDAF7737773E005ACB79B80 +:10FC3000692F68A6542DD42EA6B8D6DFCAB45F2C7F +:10FC4000C4E81EC0EEE62C7ACF957593CF9DE5DF14 +:10FC500011A03CD46F277FCDF7BD0CED0EBD41A1A7 +:10FC6000F7E8ECE38D617DF25CA6F789E23CEF6694 +:10FC70006D1B108FCE3D687D2FAB2469CD4F3B6A45 +:10FC8000CD97775BF333DEB4E6F70BB8E23BACE33A +:10FC90000C38C07FC6E8FCE84317F1F0631AB81EC1 +:10FCA000D15FEFB1DA374CE841D789AD99D963D547 +:10FCB0003BAE13FACF75367DE2A44FBBB20ED2C86D +:10FCC0007DB17B2E0238C51A1C6109E6F0C787FE9C +:10FCD000369EEB41BD39E877FAC2A7D3BE5E7B47BB +:10FCE0009FBF313ED1E46FBC2BFC6AFD61E473BF62 +:10FCF00077316C3FD771EC6823CAA5D10AC9256D4D +:10FD0000C6EA87D3D09F8CE590BFA2401F41F7047D +:10FD10009F57695F36897376E37D26C37F7685C0FA +:10FD2000C3F906BC583C8DFB619269A89F9F7B90EC +:10FD3000B1629B3EC8CB233E2C2F49DACB23BEAA0F +:10FD4000DCBE2343988244F02E17FA27E6D7833C83 +:10FD500029B3DD1F18B1D89A0F1F55494F9DCAA26C +:10FD600019C89FD1F4C67EA60E72CF60AAB86730BC +:10FD7000D5F63D178D33807B6E992F9128E87F9EB5 +:10FD8000B645AF97B07CCB52B048A0EA2D3E71BECD +:10FD900056CC8A71DFE7E2EF1C209C5FE3F7795CC9 +:10FDA0002727BE81FA017BC541F7873615E8DB516D +:10FDB0002E692FF2F775B5345652E24B9DBBFDF01C +:10FDC0004C18DF62EFF35BFEAC9131E4EB5D8D6EBE +:10FDD000867CFEC9468DF2071A83947FBA51A7F438 +:10FDE000606311A5BF6C0C53F9AF1A2B28FFEBC64B +:10FDF00008E5938DB594FFC85FD56CF77B9AFDBF7E +:10FE000029BF27D0DD39E4F78CE111F4471E8E6F4E +:10FE10007DFECF95DC2F3C7C3FDC5F8CFE5375A0D4 +:10FE20007E847F794D1BF797AEA9E0EF30AE29E3D2 +:10FE300076473BDB6D79CFC905FD627ECD81ED74E0 +:10FE4000CEED54BBEBC9FE2BF709FBEF76B2079B57 +:10FE50001E74B38D05293BD0B0FFECFAB8C9AEB61D +:10FE6000F073F4BC205E78DD12975BCCFA1EDF44A1 +:10FE7000D4250069276BAF3C9B09AC3F21FC40C5F2 +:10FE8000C14FAAC94F24F253F5CCC359A6F2705101 +:10FE9000C99C6C53BEC87D72F10693DF685C7AE939 +:10FEA000B3D9A6FC711C90FB8922C87FFF7FFB9110 +:10FEB000BAD1FF01EBFE49CE2FB2D00F10FFA9C27D +:10FEC00030BEE63739BF18897628CA1DF4A3E15E33 +:10FED000733ECF785C73117F67B94F2EE8129D9FF8 +:10FEE00098E4C20BC47F845CC8CF8CCB184F97D8E2 +:10FEF000CBC21BF421E58383CEC575A63BA78BF34C +:10FF00007839550EDA5392BF6FC7E51B95E3FDEDC7 +:10FF1000B84CEFBD99FAE1EFD1264CFBCCD0BEB284 +:10FF2000CA89295DD6FC7F971C32F06BABD24DE7B6 +:10FF3000B05BBF1C186FCF4B9704BEF6CD5B3E3352 +:10FF400023050F8A032AC4949703F51CC275C69A29 +:10FF500055CBB8D73558F34BD759F34B565BF3A66F +:10FF6000F184BCFB9AF978E435B39C7D0703A7269E +:10FF7000A6E4EC0A567001EA17DF64617A87E6FAB4 +:10FF8000B6348B9DF71ACA42F25FF2F786978B78E8 +:10FF90000956739CCE490BD6EBA4DF4F4B37E43A9E +:10FFA00097BF6E8040DFEF9D98C62FB8485ECBDFCD +:10FFB000C4B7CA71FB7B7FCB6DEF64EA367F825B8F +:10FFC000E7EF3AE7AFB7FB3FE3DCDF0FFF87EF1C5C +:10FFD000F69FCFD71BD7E8EF14F07F849BF16E5DBF +:10FFE0001F7E2B3D5218E6B11CDF4D41F8AD6791E5 +:10FFF000DDA4E77D83E25CAE32DE8B883392BFBA4C +:020000021000EC +:10000000A091E5029FECF05EBEF477B508EFE565E0 +:1000100032F90B594321D134E16121BD03E7C4F228 +:10002000FC2D12CB9658DF7DC4AB441F5999617AE1 +:1000300027EE54333FB73FB574612EEAF5C67E0311 +:100040003C2CF7060B1A4C7299211E7079CEC4EF26 +:10005000CD7CD326B78DFD5F6E7B17F4EF48473913 +:100060002857F8EF85ACC1F338942F8CBF0BD6EE30 +:100070001B5ABEF8E784DB26A09D9729EB68E7357D +:10008000AF506A775BFD71CE33E8ECC2FFCF4DD144 +:10009000DB1F65568376FFEF30E00CDAFFEEBBD94D +:1000A000BB31A6E9F5C573DCD8EFAB99E12972093C +:1000B000470C7725E43DE19F32C8BB5CC90B6ACF92 +:1000C0004BE5BDDEF728FFBB2CFD21CCEF4867F1E7 +:1000D0009A10F6CBF39BDA5EBEE0C868310EF0ED05 +:1000E0005FA69F6A8D57A6E81D961AE7F862A5BF1E +:1000F0008FD275A28BB42AB6DDE120BB727BB99496 +:100100006A9785EDA421DACD67DB9501DAF98C7663 +:1001100020635A4DFE3BC33F278BF998C757500FBA +:10012000D062E96837DC3D57D1D07EF9CFCE237756 +:10013000B875D7B1EDEAD8FEED60DA1B8CF9CB03C8 +:10014000CF3F81E5E6F1D521E6FF5F0D8FE1FA7340 +:100150008AF2AF3D3FA8BE31F72CD60BF3C3A718E8 +:10016000981E4B9787EA0F74FD8D03AFB7C3D65F18 +:1001700026CD2F18DB3AE4FC06E90FD6BBDDB6DE50 +:100180004CA7A37F7F489F4958DF68419F1933F9E7 +:10019000BD60364521F9315A613E67E900E3AEE3BF +:1001A000792F8B27500FD4EA7A76A07DFF7A91962B +:1001B00089FC75DBA199E4EFF76E96E80901AFDAE7 +:1001C00021617C6AC58A8E2A277CDFB98E75216CF5 +:1001D00077AE4B78F0DEDBCE9E8407FDFA152B3B25 +:1001E0003723BFAC684E27DE3B937590DF38F33C76 +:1001F00085E21632CE53E8DC21337316DD4FCF98FB +:10020000C9E3CF9AB5CA3DA864373BB5F924FFBE10 +:10021000C3485F1ABD82FB974637A861F4FB8D5631 +:10022000447E3D7F97D97B5BAFA413DFEA95F09CBA +:10023000C12B4951B4EF9A23DCBFE4FD1EEB948837 +:100240005EAC7E77AFD4B1A11AE1040C18ED97BC77 +:10025000C881DB253FA727E4EF044F84B7C2F58DA3 +:10026000FB057CC7B0EE43E80763EB783BD01C2569 +:10027000BC976F9C5318F1C979EBACFACF688DFF2E +:100280008E8EE2D2B693FE78BBC21E1980FEEDF9C7 +:10029000D1DFEBCE64C5C3D71B2E9F8F3F2595754D +:1002A00016F5847D6A3F1FB0CB69BBDDCF845F80CC +:1002B000E434ECD31821B72A8A9BE7D039443F397C +:1002C000CF7F57CDC08F7E76562BB7A35C2CDCE654 +:1002D000A4B894A514A766D86FBBB022E2C9687110 +:1002E0002FD9D65E6A688F92FC3D5FF4E3656E7C21 +:1002F00007C9E582348B7E7ECA9D877401B880E78A +:10030000A9CCCFDF59D8203105BFA7C6EB6167283C +:100310003E0EF84C00DF6B9719EAF586FF20753F1B +:1003200031AA217135696137DABDC6BDC45BC5BB71 +:10033000DB9BD2C35755E17CFF4D25BC690A423D8A +:100340008C0F4AD39731B053AEBD3B72A11BE5630E +:100350003523BB64957FF626BC7FEDFA7C148B9920 +:10036000E2225D4A3D4378B93ECFB77C7F16ECE987 +:1003700098E9BDC16A5F610DCE678378C7690E0BCE +:100380003763BB396E87E51CC0F5791E8B650FD4CA +:100390007FC8F2FD59D06363AEB3E93FCD72AEE0E2 +:1003A000FA7CEC20FD4FB0F5AF0DD87FAADF6C4B87 +:1003B000BF2D0AE3EFE62EE6716B76FBE17E7F75DB +:1003C000AB3FA7FF39CCA6103F87A13FC85F10C83D +:1003D000A4FB063BFCDC9F58336FAC42FEA890F5B3 +:1003E0003CE60281BF467C404DC0FEBB17617AF7F8 +:1003F000B8DA67FF6ED57F67238F29EF3F5F39BD7E +:10040000AC9BFCE6CB5CFA50F77C4F3432F287BFF2 +:10041000E1A95F86CEA05FDCBDC0D5520179E44181 +:10042000A0273D7FF79A0BF15EF2091177DF127872 +:10043000767CDD00F695912E559852513A44B933A9 +:10044000391EF9FE5299C5F8B9736CCA02D33B2420 +:100450004B618115C4571296752DAB972CE7302749 +:10046000C47D76984F79DD00E7E7E6F954660D51D3 +:10047000EE4A96D37CF0F72D07994F65E9F0F379B2 +:100480004BF8015B02AF8E1F6A3ECB14BEBE41CB60 +:100490009DDD049F65B2E1AFB6CE6719E3F01D762E +:1004A0003EC25F0FF3291F6ABF703E9543ECD732FF +:1004B0005737C16799F8FDCF81E6537916FBB549E7 +:1004C000AD8F21DFDC2E717EE4CB68D884F7D9FFB5 +:1004D000326F6D90E843D865D760033C0753383DD1 +:1004E0002D09B9E99E97D12FBE5B1171F1FBE998F7 +:1004F00076029D47E81DCE20E5F7819D17A178ABD8 +:10050000224A1F6B0C53F9E38D159437FA295E29A3 +:1005100091BD3765B544F69E7DDD5519DCBEDB9E89 +:10052000A75DBD02F96C95979F4FAC9CCD22EE94D0 +:100530003DC758D7B3E87FD97A252B413B7AF27E65 +:100540003EEF404D2EC545784B8E743742DE7585A3 +:10055000AAA3FF186831CAF18CD13B3275B2E01DF5 +:10056000C00730CEB5273E772FF28FCA0CEE47AECC +:100570000B1D5D8C7A449DB0FFF0BA2BF97F56714C +:100580007B3ED66C7D777689F0E3E644AD7EDF2551 +:100590006CCB27FC7738ADF66680953C8F713E8139 +:1005A0007A55871D241709CAAF9C1AFEBB32579C87 +:1005B0007C4E43FD959528A43F6DF76879288FF010 +:1005C000E7D4D0CE7439391D2FB5D9994B8679D758 +:1005D000D7F89D293BDCED7EE4E91956BFF1A7ACC5 +:1005E000785B0D160EF23B4D867FB8D7CF1763C8E8 +:1005F000557B3D633E970BFEB9AB3149718AC6FC12 +:10060000F2951E09E5C49886A425EE90E1EFA39823 +:10061000F4B2C1D6B14BFA306FA877BCF3855F1D39 +:10062000F468FA3D57EC06F568FBFAAFECB7FECA82 +:1006300097C7B181E885FBCB971C75901FD0808F41 +:10064000018FFFD774A36430E3DE1A6326FF9A4359 +:100650008EBAD15F951FA8A6384DFC7ECA8227D6D8 +:10066000384DC7B31F48F81E72BF38D2865E09F9ED +:10067000873D2ED43E1F234EAEEFDE8D8FDFA30BC2 +:10068000326F18ED05FBEF2FDC2EC7884FDDEEE84B +:10069000721740F984606C5306B4FB4CEED2AA206A +:1006A000EFCB295DB91B7A5BDA7067B806CF9DB3D3 +:1006B00007F6371AF2ED9E0CEE573BA12647A35FD3 +:1006C0007D49B0FA9E8C9C01EA377C9FFA3B5FF033 +:1006D000597BF9A302AE0F08B977D59A273FD8877F +:1006E000E7B07A7129E28EB7A87B1EFE0E58DBCBED +:1006F00063E9F705768B7161A165A847BC1F882562 +:10070000324CFCD9AD6B0ABFE7D53513CBCFFF3FD9 +:10071000C54FBC0CFDB55DE2D3F09CF82F658E3261 +:100720000C75B0CF03FA7914FB717FDE4EF86BF4D1 +:10073000F36B4FCF037498149F5DFB26D8A0BFCEF8 +:10074000EC1985EF9E3CB16D646D00E8E3D7393D4F +:10075000A3B0BC56FA60D311C0CB5F23AD811CF8A7 +:1007600022E3834DA85F9C7FF1877BB6A1DE3CC16D +:1007700049F75037DBEEF985341E0F14D2AC7038D0 +:10078000B67A68381CEA0F874366F81BF37F29188E +:100790007916BFC3242F9F2661DC370BAF80394603 +:1007A000467479A6C1BEE7E95D8F6E63681E27AA0D +:1007B000F01D2FE8E7050E8736BA9766F433271841 +:1007C0007911FB39B6FAD579F83B6C9E63FC5CD2A3 +:1007D0003D8EC5D3FCD4EE1573BBC8084DE1BF7F79 +:1007E000C1F7E1580EA79B19993CCD127A4993B3F2 +:1007F00023381F526DDC0F6FD5A05D6B417CF1403B +:1008000071DAAF6846FC29BFD7D3AC75BA979BE0C5 +:10081000F88980C7BFE7467A701E4E117FD55EC14A +:10082000E1E63F965D4AF6D2385686EF53A465F26C +:10083000FA30EFF7A9FECC0E32FA3DE3F87ADB8B03 +:10084000EFA138604FF03E9E8EEBA1FBAB1ED6E5CC +:10085000C6FDFE6CDBE79B9A2B701DE122CC8FD886 +:100860007E571BC68DEF469D01F4CB4CC8A31F6E6F +:1008700017C8357CE73A3ED24976533FBE2EF6FD87 +:10088000E940E43382AF1D4EAE9E3DDBA0FDE6495C +:100890004EF29B9E2F772C5E8EF874B18FE4367CDF +:1008A0005F6CBEF73349F4F77F01BB1BB70C0080C8 +:1008B000000000001F8B080000000000000BE57D19 +:1008C0000B7C54C5B9F89C3DFB4AB29B9C6437C96C +:1008D00086BC4E1E489004372F089AE209011ADEA2 +:1008E0004B091A0DCA0644A3BC82D5BA557A399071 +:1008F0000701834604F5AAA51BAA2DBD7DC5C755D2 +:10090000AE451A04BD684163A5082A1AD1DB628B83 +:1009100025825ED6D79F3BDF3773B27B4EB210B4D1 +:10092000F777FBFBFDA17698337366E6FBE67BCF9A +:100930003767474B1642CA09D9F0B9BD2E58484807 +:10094000B3B5D333D7418894FFC0F7A578421E31A1 +:1009500091C66E5A3FB0ECC98F7E564648AC5C5883 +:1009600022105A16F4CE2C7513D2FE5A5E8948EB2B +:10097000F1127D9A4CFFE121653E272127DCFE78AC +:10098000898E7B0EFE5C49885D96CC7E3ACEAB1E8E +:100990002541A2FDD289774E297DA57D0DF1DE404E +:1009A00097A02474C794E610922677FFE25E3A8CF3 +:1009B0009D04AB4C39384E2AF4B787DA3F11E3C3B4 +:1009C000E3547B140F3C3F0073D2FFC627B2D258CA +:1009D000377BACAA389696A1B65E56DADF877144AB +:1009E000D2A9123ABFB9A603C71543B1D84F0C75A7 +:1009F000F442DD2C35113FC5C736C15F00F39023AB +:100A000082998CA37013F6477428D8FE6C0241FCBF +:100A1000459BC79CDFC6C6274D44C8193C0F1DBF68 +:100A20000CF0641C3FC6AEF44029486CFC89D31D11 +:100A3000FE20857BA289F8BB0BC3783D2499B1FDCC +:100A400071C984655B8E5AE78B681FC07F226BA7D4 +:100A50006851603F5BA4EDF6458E70FB29BE7F6F49 +:100A6000A528D500AF55203EE8B7B182ED73FC0153 +:100A7000570991E95AF249D9F78A089113051C8F51 +:100A8000EECF0CEC3FA19310DA3F269FEDCFC6C20C +:100A9000CD4486BAE7312C630BFA105FB1A4DB4E6C +:100AA000BC301F516B2A60BD74CC11845CDBD9D281 +:100AB000AE661092247A0BA0BDE8BE07DACD13080B +:100AC000E94A62ED97D03AB447832F06E0A3EB885A +:100AD00007F868FBC1325135D1759F2145DB45BA16 +:100AE000D4F80AC9BC883E6FE0709E702B7EC43B70 +:100AF000E92340AF5DA47F8F8DD2B75A21781FA71D +:100B0000703AD56EC50EF0924E3297B6DF2C317822 +:100B1000B7D169081D57BD84041F87B59B3B09E009 +:100B2000639B95AE1DDE1F61C5E731F93D05FE08EB +:100B3000FC7ECDE7AD48F43501BEBA48DF689217B8 +:100B4000DE0F233CB7F3FE9B5395DB619D46BA9EB7 +:100B500038FDE44FEFA5EB209758BD2369B1412044 +:100B60007591E33C2489B8DE87F838495FDA9B86C3 +:100B7000E2EF892B9EFBE867E719672B87BB838F22 +:100B80007360D91F6796821C38207A058A1F7B0103 +:100B900051E3E2910E3A609DF6651B91DE9574C9B2 +:100BA0000CFC4BF97DD390FCEEA2FC2E0CC9EF5B44 +:100BB000A3F0FB0343F1FB3F80BF1F1B8AFF34FE02 +:100BC000FE91343C7C1F077C2743C9F0F54DF1BDF5 +:100BD00097BFFFDC85F1FD5C147CFFEE22F1BD3791 +:100BE0000ABEF721DDF1F963B4F9F307E67F05DF0B +:100BF00033CC6F8779D9B8AFE2FAF8B84A366D17B7 +:100C000080AE25A62788BC8AD0711F99E19036D284 +:100C1000E7CFB8953FFE2FED6FDFF9F67722F0F3BF +:100C2000E5F47F9DDF6B571DFF90F9FE7E3E7DF161 +:100C30004B2ECF8DF2C2C8FF0297AF142F9FC17801 +:100C40004639D945480DD0CD336EFF575C8E4D03E4 +:100C5000B9B4EDCE246123ED9BA1F4088974BEB331 +:100C6000090C8F2B24194BEDBD6DE61EC10CFD9BAD +:100C700024411574E3591393A38F675C075D5F4CA0 +:100C80006239C8352516CADB397C4954E1C178CDB3 +:100C9000DC7EE84A521B416EA772399D9A28F09279 +:100CA000D56B5395A444A64F9261FE3365E26DA6C1 +:100CB0005C26B7811E3539ADC163F205491FE89541 +:100CC0000AA2805E0CCBFBEB1ED7E4FD1207F437C3 +:100CD000733DA564C1B8298912D6B5F1A2ADB38818 +:100CE000AFAB88AFB328BCCE517C9D979E6F9D461D +:100CF0003C0D77BD574903EB2D4B2C8F3E1EA51C99 +:100D0000DD7EC218248DF24F0BE3D73907F2D04EA7 +:100D10005306F4B4EF4A184F8993F6B9A08148B14D +:100D200030EE23560A3785F791659BABAC743D5D79 +:100D3000ABA562B0E74634323D272FCBEA12E9DC9F +:100D4000D3F938463A1D78DFDA3DBAB410F1321BD8 +:100D5000E6B9B292D90D09546EC06CC0FF948948AF +:100D6000924DF578E97ADB05D5B308E87F9AC3FBA5 +:100D7000387470D4E2FA8DE36B2521EB707E0D5E42 +:100D8000E228BB40FFB5D85F8A539B7C17D3DF4670 +:100D9000ED0B47241E5DC5882E7BFF3E17AD2BB69D +:100DA000C4E28DB4BA82DB53749F6E467E7150608C +:100DB0002784F13A787CB65F55BE2601F01C53407B +:100DC000A7023BCF479F53BC99E44ED207F6513E52 +:100DD000A58F4218EF108E175E4769A97E1DC5A525 +:100DE000B08EF0F86D9A5D73D7C5AC47EB171D2F29 +:100DF000AC5FC01E3F9650DE3B1BC34A75126D822E +:100E0000FD7B3726D84CE9E3128FBF83D16BD378B3 +:100E10005F119697B1B287801CBC92CBC12BED0EAF +:100E2000949BE42BF3C93E3B7B768EF20F95962480 +:100E30001D6C3DB240FAF3185A277DC2B9B88B9A9F +:100E4000FF5126B7F4F32F08DCE59D5C4AB1E022A0 +:100E50000B7D43D8590BC09EA6CF7FCEE9FB1D4B1F +:100E60004F26C8B96B3D937E0EE30DEA1FF8171CA1 +:100E70002F9EF4A96219A097A0BD087B935EC2F8CB +:100E800015ECC127B9BC488862DF3DC9E58A46CF69 +:100E900057B74E22B9B4B4D989EA4C62654209F217 +:100EA000D3B38948F74CAF2A3312CD8210864783DB +:100EB0004F1B779F814F175899BFF08E85D43DE126 +:100EC00060F09544AC6795A76A5F249C1A7CC6F5D0 +:100ED000EE5F13F04EA676C40B6BFC58BA02D5E455 +:100EE00003175B674C09EE9F6AA1A599F45E7F2BFF +:100EF0005D82CDE47F0DD6BDFC928FEEF152FCF405 +:100F0000DA4BD79A28BE56CEA46D39C3A78B6F4A49 +:100F10000F7788D23BFE9C301D344F29AE7383245B +:100F200052474C3B40FD8EE683DE230E5AFFE8BE5F +:100F300011D33C94FE9B5FF7D62553D5909174B6A0 +:100F4000BD83CA89E6B902CA5BA23E1C530576DCA2 +:100F500034563F93583A0DEC84E66B04B41B42F4CC +:100F60007D15DAF7E8EDB830FFB4E27ACB5D4C6F6F +:100F700035570951FA31F9F635B77B9A679DBFDFCE +:100F8000AD494CCF365F47FB0DE10F69FDE6F379C4 +:100F900003E09280DD1932A1BC6D568EFF41A0F5B1 +:100FA0003D953619F7A38C0E9842F721866FC8A796 +:100FB00089587F95EF05E5AFD8243ACEDEEFD850BB +:100FC0002F744E8F0DC27B7BBE4AEA0039DFA9E445 +:100FD000A278B2513A7094B012E8D842F95AE47546 +:100FE0004ECF8949E8A70A65EE3C944F66D89F68C2 +:100FF00074F6F2C837B3C06EA2F49406F32FBF4460 +:10100000E8047BABD79ED7E1A5F3AEDC297A6DF27D +:1010100079E86410DCA71DA0878DF0BD5621C608B5 +:101020008EC178A07017C0BCBB33FA0F5C46C7797D +:10103000B5CA645A47E7DB3BC136BA0FF59DEF529C +:101040006857DE60FA6D1870947C3338BC47FC003A +:10105000C75756A62FF93A6747D92FD1F9A903D612 +:101060000770817EA17028807731B32F03E486B6A4 +:10107000FEE1CAC719494C5E45C8C7194943D803A0 +:101080009AFC003B00DAA97DF4E94A02F631B38FFD +:10109000A2C9ADFAA48B965BF549DF406E45ECC35F +:1010A000E2A4F28BDF07BAD388670B473BADCA12C5 +:1010B000AD4F847FD3F72877F4D9F2C2742F8448D8 +:1010C0008F339ED1BF9D6E59B3DFEF7189D1C7BFFA +:1010D000C4E3BB0DE0B2B8FB44FF45ECCF9AA4419A +:1010E000FA6B4D247E8C789A229E6C4EA0F2F2749C +:1010F000A580F02A210A12CA5BEAC245C033D1DEBC +:10110000817E50029599E6022E97E97F898A9D9803 +:10111000EDE1BAAB46D2D5937D1E5DFFD43A59D7E7 +:101120009EE62FD0B5A7377A75F5CCA60A5DFFEC01 +:1011300080A2ABE7A835BAFE79ED3E5D7D64679D80 +:10114000AEFFA887FCBAF6D1C1465DFB981D4DBA2B +:101150007A517740D7FFB29DAAAEBDB8A75DD75EE2 +:10116000BABF53572FEF7D48D77FFC91A0AE7D4289 +:10117000DF0E5DFB1527BA75F5EFF4EFD4F59F4848 +:10118000CC6A1FAB0BE750D29A64B3B64F265D3BD7 +:101190003947E5F2694A9802DD5F5FB1E0556502C3 +:1011A000E4D59B4FF5ED3CD685CCEB6B9809C1326D +:1011B00032D3F221BCA7D2BFA06F29163F8C1C6787 +:1011C0002295CF10B754BC96F07358CF3BD33E2234 +:1011D0006371DE0F07F435ED57457213643AEFC4BF +:1011E000FD2209D2FACC0BD0D560B8840BC045BC27 +:1011F0003D00D79F44AF0A0F55A5373F253A5C0AFB +:10120000FD0B70CD8146FADEEC1009F60843C0C92B +:10121000E1995D219881EF06C14B98DF6F8437F02B +:10122000CE2745FB22F6ED6492D3FD67E0672FF1F0 +:101230009E1381CF1CB8DED387A85C21D1F150A5C5 +:10124000DA51AF56294210F076764D7FD1BE9143E8 +:10125000C0EB21613AA170C5C87A3E8C2BD0F3A1B6 +:10126000D3EB393F1DA9E4BCF8BE107E65FA97D9CF +:1012700069FD66C0EFC44A813C9C131DBF73CC96C8 +:1012800030FE2E02AFA92E3D5E3F2395734A29FE04 +:101290009439896688A31AE59C863FEA0F65BACA25 +:1012A000A3EB9D4B5D4CAF5D84DEB9D415A9A72E91 +:1012B0005EEF94B8BE81DEA17A61BC0BF48FD92FAA +:1012C0005F8C5F33C935482F4C720DC7AFA964716D +:1012D000704D8F917C01F9A76D02D90EF1BAD92E0C +:1012E000E6FF46F36F66F379C3FECD6973A47FA36F +:1012F000D85263412E503B611EAC47F377CE94B970 +:10130000F681C9FA318F0386E157AE827EC385BB71 +:10131000C135C85E69709DC75ED9BD96C52B761F65 +:1013200014BDDBE9AC2FBAC59E640AEF6652148483 +:10133000D88A76EE52E3278C4FCDF7ED00A78FAE1B +:101340007F298C5B235709373BE0F92A2CA3D15B1B +:10135000C075D1764EC0F5EDEC1CF59BD0DBF0FDF1 +:10136000ACA6237E0A52732BC38B7A2C0EE399EB27 +:101370003710F44BD6AF657ED176BE1F9D1CFEEBB9 +:10138000DD8C7EAAE22BD0AE6D159C281F5BDF673B +:10139000FE459B45081216477E10D6BF2F6D5C0296 +:1013A000D8AB670EBCE1F047F83BEF70B80F73B8ED +:1013B0008FDD3E00F74F006FCB7FC0E1AE5BBCA975 +:1013C0005C07778684F204E48B1886D72A7513A00D +:1013D000CBA9A203E16CC927411BEA2565E6941459 +:1013E00010DE4C6EB76430B91C077299D6ED201729 +:1013F000C17F95CDC7418EB5D3BF289F41EED1F9AE +:101400002D1EFA3C420EC780DCA3FDE308EBAFC9FA +:101410003DAD7F0C89E83F843CFC0F908774DF88EA +:1014200095A43279B8BA7D0CC2E5F744FA534679EF +:10143000A8D5F7F5E5A5F60DC13F5A995071222FB1 +:101440005F67EFF5EBEAAE9A505EBECEDE23F99110 +:10145000F5D43A7B7E64FF34BFA4ABA7377A74FD22 +:10146000339B645D7B76A040D79EA37A75F5BCF66E +:101470000A5DFF919D8AAE3EEAA11A5DFFD1419FB0 +:10148000AE3E66479DAE7F51B75FD7FE1BF807F8AB +:10149000FF2466BA42F1F41B2A07C1DFFF8BCB3A67 +:1014A0001DCF21DFBFDA03E79DADC957D923E9D1AD +:1014B00058EE4B66741BAD5DE3DBDD6B7CDEC974FF +:1014C0007F7AD6D4E9F8B886CBB37D6B1AB1FDA587 +:1014D000354DF8FC1CE723B3DBA4DAE09C62A7E9F6 +:1014E0007D1BF81952A70AF4B94DF09F437D71484E +:1014F0007F0E011611C403AF0CD1F922E0AD22D743 +:10150000782747E0A3DADEA06B9F22DDAC6BAFA1AA +:10151000F8B89CCAEBEF7A56E99E4F937FA87B6F91 +:101520006DC6A287808FD67BAC04F8683D6178D405 +:10153000F0BADECCF0ACE175FDCE451EB04306F04E +:10154000AF164D570AC3F84FDD72E974B512F0FFBC +:101550005D0FF8B5FB12297ECF43C717C2AF11AF9D +:10156000FBF9795C8D557FCE3E8DCB2BAD84F8BFDA +:101570009BE2F7E001F1533F427BFE3886717EE348 +:10158000BC545E95BBE9B81F8F7CF3C6CD64B09C9C +:101590009EE266E7163526EA58517BA7C6A2D6C05A +:1015A0003985E68F9A0586F3D6E4A95E38D7AF76FB +:1015B0000BFC9CE34E6CBF5DDB932878325341D229 +:1015C000132187849CF97520876B92AD18AFABE12E +:1015D000F900C6F7C6737C7C5B7AFAC674C4E9432B +:1015E000A3238D3EA2C97733E924803FB3839FF3C1 +:1015F00085CFED9600FEC93B945F5206F38B512FC9 +:101600001AC70F4047B09B1CEC3C0F3B82DDBFDF8D +:1016100085F65234BCAF5F2365982DE13A2141C471 +:10162000E77A81E94F6AF07ABEE7C4F1512F128F51 +:1016300003C70770E13C83CAFB02C84F50F93E3C28 +:101640009EACDC8570C039EB30E2FA8F27FBD6B94F +:10165000995D5980700EF3BDE86527A73BAF1C89E3 +:101660003737FD772FC4D7CC9D78DEB1C5A1D555CE +:10167000CC1BF1E5B3F38F1899B56BE759A9FE20A0 +:1016800081F392B8320227E2C404FDC0BE8AEB5552 +:101690004CC5843CB1A56EBA67346DCFF77B4C5E08 +:1016A000ACBF624E86733D5A87B348B5EE957D78E0 +:1016B0005E2A5D2AD0767B4BED2BFBBF8379225CC3 +:1016C000BED4BE02F4D3A5D521304DE9B02B76A00F +:1016D000AED8A9CFD5953B5057A1BE8D9F1B3FB12A +:1016E000A5F6951607C6017F05783FD06252D13E18 +:1016F00024CE20F8CDFFE87398AEC227F7E782FD2D +:10170000E5317B47CA606710DD7B47DC56C47F4507 +:101710008A7F37ACC7B9BA1FDDC1BB0B939C107F62 +:101720000BEF43D0B00F0CEFBE82203F870AE2BE22 +:10173000647B3E55ABE87CD99568F6D0FFA48D500C +:10174000975B4C520F3E48C27D3215340956C85340 +:10175000282412C8AB667E2E1857C0CE3B251BB37B +:10176000875F77B373913EB7C84B26A7123C5B588F +:10177000BE508D09FB27F0320C7F0BF6EB739B39C3 +:101780007D317CBCEAF1BFE38E3C17243D330BE88E +:101790003ABA5A9292E07CACAAC5741BE8939FF0C7 +:1017A0003C08BA4FBFC37DF2BA62FD2C7EFB01D06C +:1017B000FFA07DE3705D68DFA2ED97668F466BBF8B +:1017C000EA1AD107F099ECFEADF3E9BCCB77BA8AFF +:1017D000458AB7C37562592FADAF783E15CF61BF4B +:1017E000E47CBDD2D49F02F1E58D07BA7C50C63CA3 +:1017F000BD4A4D97416EC9BA75ACDC5585F26C5D3A +:101800005C7C25ECB7711D87BFFA4F37ECC3CCCF9A +:101810006D3E942F32F3FF172273215887C0DFBF2C +:101820009EEB93EC6466B71FE27AEB7ACDCEA58C83 +:10183000CBED56E11C35D96B7D0DB3007F8BEA44AF +:1018400002E7C50BC3ED2C8E10607EBF9DFE05BB6D +:10185000D84F12A7027B36A8FA78C012E29D9A4CA4 +:10186000FB2F6E373CE776F112435CE1EABAB05EDB +:101870003983FF1F447CD5CA4C1ED77AE38290DFA0 +:1018800030DFA7D7476F7E2D2E04FD7918DEA5EB3C +:101890003EBC60D476E867C4C72DC98C3E0F71FD8D +:1018A0003D801F827DC9229F6085D40A233E8CF033 +:1018B0000FE0CD80870673F1D46479301E8CF0532D +:1018C0008C217E9750FC423E46347C4C15675AE092 +:1018D0009C6DF15C01F5A4113F463C687E8D06CFFE +:1018E0001F353889F7701C9DEF830E0B01FD457A7B +:1018F000AEC4F3BA39BC5F043CE8BF48F42F8B0395 +:10190000C92FBA609D14991B69BF79AA45E7F72CC6 +:10191000E17ECF22E24B80381C85F378947DD6F9A6 +:101920003FC6751BE19AC5F585D14F22E69E42B0B0 +:10193000CB1626F3F8D1587DFC8894250F29778D96 +:10194000FE9246570B037375768940FC037589DA5E +:1019500015B77A44F94317F89B96AD20A6E6DAFB53 +:10196000CDC857E28204E0C7B9C42E3B68FFA5F496 +:1019700021C0354789C1BA36DEE94EA106F8F256D4 +:101980003A5C00CF9315B4DF16B22EB454F700FEC4 +:101990006EF558711E4A679F46D259343CAC49E6F1 +:1019A000FEE25832F662E0FF0A6C0E163FEB8178D9 +:1019B00072BF600F6E17C2710DFA4FD54A45E5161A +:1019C00060DAF2F07A07CE474813DA4FC388736CB7 +:1019D000491E22AEA69D136BF479BDDDD12332BA28 +:1019E0003B39401FBA73623F813846DB885BBC805D +:1019F0006F4D3F523BE727307E5B2C8B6368F23D97 +:101A000016EC1590A705E62F22E974907EDE77C3C9 +:101A10008E2E8A0BBFC34C40AFF8850F5B09DA9559 +:101A2000FD16A4AF80E574E4FB7E27952285B08E79 +:101A3000CB25281779D8F9F622C2FC26A2D2FE11AE +:101A4000715C3F6C1B7DEE8F59B1C394C7FAAD86B4 +:101A500033DEF6887173C3E31AE71BA49F0CE31B04 +:101A6000C769E3F94E6D566FAF0271BD57C4E2B559 +:101A7000D058C0ECC9DF279B747A6591DD956176FB +:101A800085EBC7D31C7591FA592BB5F734BC85ED9E +:101A9000B0D33A3BEC6ECBC77A3B8C7CFCADECB060 +:101AA000FF4AFE18EDB0B3C76C28F74FD7C40681C4 +:101AB00038B53C0533351B1292D06E56A1B407D20F +:101AC000111E2D6FC1257B05C0EBC7208CC1AF96C1 +:101AD000D9B99DCBEC15BCF4F9666ECFE01F4A076F +:101AE0009B93A42E90C3363B69894982F7989ED672 +:101AF000E61B18B7C02B4885D1E3819F275F743C54 +:101B0000F0F3E421E281074C4DEFFD08ECC25744AD +:101B10000271DBEB3C3FC4E757051663794DE06685 +:101B20002CC514361FF537C5946490536F5C770746 +:101B3000F8994FDB30FEB6FC071FDD532E037EE81D +:101B40007EC37B4B166F85B89938D284F6777B2697 +:101B5000F38FC5B502FA831B646BCDD3C067EEAAC1 +:101B6000E214E07F4FBC09F8F5742CE3D776F764F4 +:101B70007C7EF6D87ACF223A4EAC2716F3C1C4B594 +:101B800039F742FE1B7999AE97005F12D4C76D56A4 +:101B900056E6A598917EF252183DA5A730FCB65B9B +:101BA000FC054D8590570A9B1BC683DDAC12C9010D +:101BB000CFCDF85C1404B46FDA62FD05B747E04F8F +:101BC0001BD71EA2CC5B3AD4FB567C0E70E1FB49BE +:101BD0006C3D5ABF42FE7E215F973D1487F3B525C9 +:101BE000D1753922C78967CF399F19F9E491E46A21 +:101BF0002FE0A5DDAD14A720BFF459404E5EEFD90C +:101C00007F44881F8E9C63F15AE757424F36D8DDD8 +:101C10005562701DA5C758419A55067E689505F313 +:101C2000047A0BDC4E88BBBF6E969C49148E497CAF +:101C3000FF7D53A8FDC9E839B916F665CAE2711BE4 +:101C4000D934F6487DF37AE193BD9320AEAB5AD0F8 +:101C5000DF58685783B0AE08FB869FDB51BB691C19 +:101C60007F8FAE73E1645189891FC20E6C21FB2204 +:101C7000ED4B2A26F6C1B9E4BBBCFADEE433F361CE +:101C8000F97D44B2560B91F626F546C6815DC0FE3D +:101C90002C0CE8ED23A3FDB4A8CCFB924B067C747E +:101CA000FB101F4566E48BE1DA9584DC87FB7BF74C +:101CB000E4A7EC7221F85332D69D93DF50404E508A +:101CC0003B687E19C5CB9CC9A2D4437B77044C04E6 +:101CD000E4E8A6320BFA0F9B0AFA5EBE12F8B1CC0A +:101CE0002C633CA0A0B7B61ADBCB25B08B7A618AF7 +:101CF00034ECCFE2E90E477024E8EFF23FD9174702 +:101D0000D0CBA6B2E3A3418F6DE37444C5A063CAF0 +:101D1000B830FE003F320AD1B5B8AFFBEE8C45F9C2 +:101D2000F45E87C8E3D6D4D0A0F8767A183F4EE1A7 +:101D300071EDC55B05CCDF595C7EB8CA46FB2F6EE2 +:101D400015902F17AE16DF8778E2C280DE2EF337AC +:101D5000517B4D463CEBED356ECFD1C1AD40BFC39D +:101D6000B5E78CF6C9FD29DC3E2B212591F64934D7 +:101D7000FF49B34F3A88F230E31F36FF22333B8FDF +:101D800022CA3CC4EF14F1E4CB5752F84E97E5E673 +:101D9000023E6EE2FEE6A6C05B76F06F377D25223E +:101DA0009F6FB352C305F29DE32B7FBA96AE6FCF00 +:101DB0009D97A67E40DB7F9D62E5F73EE4072B8181 +:101DC0000F5EB1201D455B973D20927CCAF7310123 +:101DD000014B6D5F9C8118628E90374E7E4F25B906 +:101DE000AC5FC88D902FBFE3FC99B89AF9CDC96557 +:101DF00044C9007FB020773BE4FD51C58471A5D86C +:101E0000917209F0ABD67F9BC0F2EA6D3BAB14AA8E +:101E1000BB48365D07CC27D375809ECB09C4613D96 +:101E200037E0C2322F9088657E201DDB4706F2B076 +:101E3000BC249083CF4705C660BD20508AE5E840AA +:101E400031969706AEC0720CD573D0AF3050856511 +:101E50005160063E1F1B9887E56581B9587A03F5E6 +:101E6000D85E1C588C6549A0019F97069662BD2CD0 +:101E7000F07DAC97075661392E701796E303CD5865 +:101E80005604D662BF0981BBB17E79E07E2CAF08D3 +:101E9000DC876565E0116C1F880770BE9A9DB848A5 +:101EA0006279075E2FD867DBA2C8E12FB85EB93927 +:101EB00045390E74A4F513795EB8B1DF7FA7E8EF5A +:101EC0005199EC3DF63CF4DFF34AC07FDF46E54034 +:101ED00006DD9F15A373F1DED12729CC7F8EB57463 +:101EE0002AE942D85F4F9CCCEE03ACD8B90A4B52DA +:101EF000E11A56FCE77D9043B0DF669598307F9FEE +:101F0000E0F9534C7EAF0072A2ABD0540372FDEEE9 +:101F1000C2D37B80AF67952B6560A6CA6AF7FE5C6B +:101F20009457D565B0CE4B532DEC3E528A22A4D2A5 +:101F3000F1B2CB92A7CFA3EDD92D267467652255B8 +:101F4000415D9E4C50BE69F195AE58BD3ECC4DD51D +:101F5000ECBDBE2DD07FDB88FC12A647D8FD01F179 +:101F6000AE5CF41FB7597B0433C839EAD83CAEC91C +:101F70007EE8DFB6E8676047E5B67B5FB0C3FCAAE2 +:101F8000B714D69B9BCAF82EA7539E14431794F7F9 +:101F900090F202A4BA8D0CFA27C5D2FAA81DEA0B5A +:101FA000508EEE0E4E8AA3E5989D3D2F80F828EACC +:101FB000E99BE4A0F5CBF693BD20068A7BE56A2772 +:101FC000AD971E51F64238B2BCCF5F1D0FFB640DBA +:101FD00036C7D3F56C7B9778D7D27AC5C94E11DC5A +:101FE0008281FDB79126B0BFB47DB1CB9D0AE03BA5 +:101FF000E33609E334DBCC7D31898583F7A70BE039 +:102000000638291D80DCCF50FA711F284D94A8B8DE +:102010000FD2F402DC07462FB353056D1F4A601F31 +:10202000BA62A52A68EF9F42A4EDD05E6442796D42 +:102030006DCD45BDA2D11DC5EFE8B9CEC87D60E329 +:102040006C33D8A9D1F03BFB9F04BFC7383D47C3D1 +:102050002FD01E8B9F9E9F8F17723AA47C5C9F9AF5 +:102060001CBD5F0BC79311CF5D26B29FEA9E887B94 +:1020700031740F69D735A926EDBECEB0F0FA43C052 +:102080006BF2FF3D5EAF4A6572261A5ED1384D0B8A +:10209000DF438C266F603C807B283947304E99B3F4 +:1020A0001DE27DF770BC6EDCC9E2939A9C8B79BA15 +:1020B000AA279D84E5DCB57C5D51E5179733561E54 +:1020C000C708C7658BB603FD3FCCE739E1561E4A0A +:1020D000457F431F5FEF304955B07FEA4496BF32DA +:1020E000BBE27545C4FD91F19E321E9C00FEE20BE1 +:1020F00083B07F39D45E30D37DA7FFEC8132AE5000 +:1021000032C13D512DAF85480D9E483ED3F479989C +:102110000F357A48427F10E814FA1FE1EB0C8F2349 +:10212000B0BC861F8EE8DA1821FFBA1C19F89ED6BB +:102130003F1ADDFEB746B72D4F221EE32A997D9048 +:10214000D09284749C30D90F9A26827EFD56A0DFEF +:102150003FA68A1745BFAFFF1FC9859FA712842FCF +:10216000BB52DA03F947D954EFC8C0979514D7107A +:10217000CFF75851FEC984ED9F5CC9F2F828BE7AAA +:1021800020DEA99A9C41D02BA2AD7F32C04F6C8932 +:1021900012F83F27DCFEBED4F3F081142717C36684 +:1021A0007EF2606886230DF2D2A558A8FF9DD63B2B +:1021B0002AE03E581FE1F5BB1D13BE797CE293D4A3 +:1021C000B37F6829C4FB63A752917E7D9F40A98C91 +:1021D00092307F4DA3E30BE97F8D1FC3FC23156B6A +:1021E000FCD35088F2EF4B18571B2F9A3DF30C97F6 +:1021F0006B0E0F939BD1ED9924E427CAE78C7F38AF +:10220000FD6FEC393F9F6BEBFDE202FCBE61DA5BD8 +:102210002AF4D6E2A6761E3FD1D619E361F73063E1 +:102220006612F44B9C3C7EBA0CE2A702DC47B55F19 +:10223000207E1AD4C557B4B8A9764FDC88E7911E22 +:102240007D5E1BC8A32723E021DC9FFA3E9FB3736A +:102250009D3701EE17A8AFB23886960F3E13FE4D9C +:10226000E114BC02C6913AFF85F1DDAC0C125C476B +:10227000D73DF30B8128741D07BE10B134C64D67DE +:10228000D1F7C06E3820D88376DA7F4FB18DC0F990 +:10229000DA01A709FDBA03EF0BC807078AE3304F3D +:1022A0006A5FF178CC8330E64769E5D5FE8621F395 +:1022B000C68CF8B9FABA171DB02F8F4893EC39E8DD +:1022C00097B273464D1E6BFDE67AACDC6EF1CFF033 +:1022D000807F73437F0B7D425A2476CEA8D15F9ACC +:1022E000E3E99715FACFB465CCAE1C41826B25C7E4 +:1022F00060BA7ED5E39FEFA1E523E173BC0397D0DD +:10230000F9DB657E8EB77244652E1DE05F07CEF166 +:10231000FC3530AFE2EA2E063A7CC4FBD42FEEA5A2 +:10232000ED336DD44F05395C7ACC2D43DCB9FCC557 +:1023300064C0C72CC3FAB5528B9F19FDD1251E7DF1 +:10234000BCFC4CD93CF47FA3C5CBB5B89EE6974204 +:10235000DC4E1A428E1BF1ADCDBF4060FE27B108A6 +:1023600028C70E40D7092827EE0038490BCB275045 +:102370006C02E6131C2C2BC5F304E275F173CA9EA4 +:102380008CC8734A6D3DF4F9C8A1CE2F1744C9E734 +:10239000B8C7C3F4CC020B8B570AAB5E5C00F32EBC +:1023A00028B609ECDE16A3D385ECAC8CFC88F75F6D +:1023B000E85D8F79BCC6F3881F79985F7AC0D293A5 +:1023C00021F178A67708FA8C869723964E3CF73A47 +:1023D000B24424E0971FF48F4F2543AC5B2BDF0200 +:1023E000FAA0F85F0038498ED837D93DE4FE1F8146 +:1023F0003C1CCBE0F39E81F686188C73D701BE227D +:10240000D6FD2C87FBB087F9DFC4A616409CB77DAC +:10241000D1563BA176EA86FCD3E52AC5FB06D25FFE +:10242000BE1DE4C36A27C60DEA1A3E2B5F5B14810A +:10243000C70A86C7857B374840AF75392DC96AC43E +:102440003C467C1EF630B862383D7710E539CF50F7 +:10245000F18FFC5A46177B63BC3D747EFB9FF24AAA +:10246000408F6BF10F9887DD5766F1DADB24B60EEB +:10247000903591F45D1758A1931B3121810423EB12 +:10248000E64E8C77C684CCF8DCC8478F1AF848C370 +:1024900077B4FDD3F06D7CAEE1FB48C3860288C7FC +:1024A000B5C70E6D27C5A4E9E3E9C6F36FEDDCD728 +:1024B000F8DE477C1FCFF827207DD559D591C3E1A1 +:1024C0005F0D3F87BF5A2F01BFD8F9B9BA76AEEF7B +:1024D0002C48C273FCC375A2C2E2365217C4058EE3 +:1024E00073BDABE93DED7C30DA799FD3706E185344 +:1024F00040EB11E73F46BDA7ED63B47342E33E896D +:102500006903E7A3FAF3C1287CA3F1CBAB9C1E2F90 +:1025100094EF70B595E5311A9FBFCDF7F58CFF5F4D +:10252000E78FA3537DBFDC24011D6E9221A709E232 +:10253000A716CC773AFA958D809DE72C37FD14E2EB +:10254000DC471A8ED656835C28B7E0B9440FE5FB0A +:1025500065743D1B38FF0FC4553BC4E04801FC07C0 +:1025600041776E1B9B6FD7D567955B503F6FDA52F3 +:102570001C047FA68EB073BA0DE5DF4BE8A1FF3EC9 +:102580009A6FC5F1EC1B043C57B27FBDDE07FBDD43 +:10259000D3F0601DC653475A13413E6AF480173585 +:1025A000285FD92536C7DE91E3AE827BDCEF755814 +:1025B00008E61F0BE1736399DA7F8B73CA5280EED2 +:1025C000FA201F10CFDF799C9770F9C0E3B25A3C14 +:1025D000DC189F8D16971D6E3C56A317235D4C4D3E +:1025E0001BFADC38DA3E47C46567A50D2597E45A27 +:1025F0009D7CD1E4912617DEE2F01FCD6FBB0ECE9D +:102600008B8EFA6D1C7F0F1C5C5306F96166BCAFA4 +:102610006AFFFAE753801EC8CDC290F1D82D9A5CAC +:1026200086F3F982309EAFF187F30E819DEB1BF5A7 +:10263000798746BD105D4E9D5F0E25A631FB48D3C0 +:102640001BA01F921C4C3F989C61BAFFB67AA2AEA9 +:10265000A1D5AB1661B903C6B1E7C5E277678CFCBB +:102660006E94F3DAFC83E46748244157247FCA4C14 +:10267000DF0CC8792BB60FDC03382E049BE9501B06 +:10268000DCCAC634F00BDCCADDB0EF37BB958EB4C4 +:1026900088F19B2D2C9F513411FF13684FFB30AFF5 +:1026A000516B7F2A8DADA7B58AF5DB933CCEF35FE6 +:1026B000B46C7EBFD86381387C1A3B77DBE73C7F04 +:1026C0003EF5BD9C7EEE067934326CC76FE2FB4965 +:1026D000C157203ED26AF17922E3779BD312915EF3 +:1026E000E2273CD90B71D266C9240914F466624210 +:1026F000B9DAA2386A9E2E84F718DCAD4EE57195E2 +:10270000DB43F39DF03E5B9FD961FE2292DF9E0288 +:102710001D5C1E86CBB8DEA7D2981EE8702B4F0238 +:10272000BE6E772B4F011E0366D506F80ED887F6CE +:1027300053FE83E36B031F9F7A72782E88F38AC35C +:10274000FA5EC20B30DF1DA28ADF253B6BF29E8052 +:10275000FBF2C3BD5F7390CF1F71BFE6605AF910E3 +:10276000FDC3F7813F8673EB2A997C1A8445F27B7F +:102770004C5A9E27B5730FC17AAE6E1D3A7FB28B4D +:10278000C8E78D5339F838D4BF7E3B8DF9D7C7D20F +:10279000987FDD02F29C78D938F1171887E209CFCB +:1027A000718781BFBF32FCF9FBD07FBFC8EF4D7C82 +:1027B000C6ED9408FC7D9636043F6AF83B7B6C546A +:1027C000029C3B6ADFC930F6D3CEEBB57A7BA27EA2 +:1027D000FEB612562723D8BCAD3C4FC3CDEB76C313 +:1027E000F71CEC33D97748B4BC076D1CF70827CB2E +:1027F00007F24C728F28C77BFC980FD096A8FF5E1B +:10280000416F5A957B041D3F7E84C0E7212C7E9545 +:10281000CBCE0F8CDF3D3BCAFB1F4D9B8425155251 +:10282000A3019F56511C128F6923D8FAB57B62DA37 +:102830007D9DC59B44DD7D1D4D7F2E7E9EA07E87A8 +:10284000734FE0DB68F96BFE02E92508D97C460A84 +:10285000AD90B7F56DF52AE0332E69B05E2D1E31CF +:10286000A057BD17A9572B46940FA15789B72052DF +:102870009E6A7AB5CF705EA39573F8BE74707F1BA5 +:10288000E424C865F81E12CA6733F34737C7B37824 +:1028900025D01F7C1F610EC7BB31AF46CBA7D1F23D +:1028A0006BB47C9A81EF8218F269FAAC7DADA974A1 +:1028B000BFFA4713BC6F97BA40DA930A7908936559 +:1028C0000271A7B61C125F01EDC5262FC4E7136B7A +:1028D000A5360BAD27CA046EBAC3BD44D549C7BDE2 +:1028E0007D440EFB3E9D3A6F0F849A126469AA875D +:1028F000F64BA893F1FB475A3CF940CB3AFCBECAD1 +:10290000007E38FC09328BA3DA65E65F57914CB440 +:10291000CFC3FD4C5ABCF9468677166786CF74A0A4 +:10292000BFEE8D45FB74369CE8A31CE8C67CB7CD92 +:10293000A9D5CB808E35FE81EF4B3D11117F35E659 +:102940000FDD6EC0AB317F287601E3C741FA8EC33D +:10295000B1C9ADDC897CF3D5B973E2B8F03D35FA85 +:102960001E8173B7183793A731323B3F269280718F +:102970001DBBECF7C37A623C1512C8C966ABA35DF8 +:102980008080EC0D260279B0D57C1CA58E087F2EA8 +:10299000C05439C2E4A599FC59A373910345E79D3E +:1029A000C441A4565B471C5D7FB5E395CF0588DF26 +:1029B000E5375541FCEFC5856C8CCD51E2DC5A1EE4 +:1029C000D540DE18B9EAE0BECA88BCB156DF417D09 +:1029D000FEBEEFE0B7C91BFBD5C3BE831097FDDF7A +:1029E000CA1BD3E4D311D17FE42E8ADFF954A88027 +:1029F0007F369F8EB800E393CC4FA8E57856BFA0F2 +:102A000078B687F17CC4C2BE1B317FD7CB8847CB59 +:102A100024866ACB9D09A887347FF42A7BE7143883 +:102A2000EF3E65ED1F0BF39E7AFECD4CB00B8FFD94 +:102A3000E88C13920DDE33F73BE1F989D56F38E16D +:102A4000DED5B1D5229E135FCFEDFE856BBE1E078E +:102A5000E71E07393D8D4A57F68D88D04724908C64 +:102A6000FAF5E6205D5984BDBC74471C2736565FD5 +:102A7000DEEDD2D535BDBADCC6E2CF4B7FB5C79A05 +:102A80004ED77FF38E44F48B4FF0F398134F677655 +:102A9000815C36A5B3FD1F95EEFB13F01BAC0BFC60 +:102AA000E2F776D9480FCAA55E0B617EF24C21850C +:102AB000E54DC21FE3BA5EDA1D87E32ED9CAF441A1 +:102AC00003C56D80E2D1BFEB6694FBC6752F39D686 +:102AD000FDD208BAAE251BD8F712A0FF6AC8C70CF2 +:102AE000B0B896112EA35E58DC3D17FDC445B7B1B2 +:102AF000739E458FB2FBAB463D7103F1B657D22EA4 +:102B00004B3AF5CF6FDA7537CE7393E13EA8516F2C +:102B10008434BD318E8C3F47E54DB32337E17CF7DC +:102B20000F4FAC61CCF8D735762C4FAE91B0DC3777 +:102B300042C67D59BA73CF4BE9C8CEBDE340DFCE64 +:102B40007AB9DA7E2D09C725CC5DF37A1E91811EF4 +:102B5000795C95FB230B38DE2D84C521B6F278BC59 +:102B60002819E3F1AFD7425E80EA60DFDFD1E213DC +:102B70000B00DE883CE60517884FA4A673B8C75340 +:102B8000B8515F16BE26930BEBCB68F0477B6FB94D +:102B9000C8CE578CCF35BED8C7E5F40D8FCD6D03A9 +:102BA00014363FFF972CFC9E10CF9B13395E447E5A +:102BB0006E2112439E9C4A0E9108BA35D2E54DF023 +:102BC000F15BD0230EF69E9DD8D7E23D018D1E7796 +:102BD0006D42BC69F40237814C1083213D1E53C500 +:102BE00085EF1150BAD3D5FF6EE9CB02B97093E1EE +:102BF000FB0B7F1786F65746A7E732F865652AE88C +:102C0000A525C4D72621FCECDED70973E74B770155 +:102C10003F3F2610E0A3E5CFFEFA199043B7FC76BC +:102C20006B3CC8A18FCC9D2930DFB2C75BE3416EFE +:102C30009F30ABF1F0FE4741268F8CF3B5A66B7E3B +:102C4000BCE210A89C5C01FF848DBF419D0D7CF609 +:102C5000DF8F5B24D0A32B77D87AE0FEEB8AA7190D +:102C60001E69FD7D565F8FF85AB953CF6FB7FC7C54 +:102C70006B8ACCEEA7A573FCA583285EF19805E3CB +:102C8000A52B0E89F0D932B292F4237CC6F7611DD0 +:102C900021BA6F2BBBC5066BC2E0766AB958819F1B +:102CA00056727B71A5C12E6C8C126FB9CD40E714A2 +:102CB0002F78CF5CA5EBC1B05090C9E1E65FD81486 +:102CC000380FFAE8ADD42E88879C7CEC0FF1426176 +:102CD00098EEB5EF7F9DECCE3BAF7CF83BE78F01E4 +:102CE00039CFF589BC932E10CE6477B17299A527A0 +:102CF000FE0A8A97655D16AF4A1F2FFBB5A8806B49 +:102D0000468EDA30BEB6F4D72F1EBE9CAE67E913EE +:102D100016F74C068E03E4B3B65F2B81CE4BC2FB95 +:102D200073CB532F5AE522F61CF2DCB57D5AFAC458 +:102D30001E2BC4CF8DF8ACEEDE63657C66D8AFEE9B +:102D4000F7A782FE6DFEC5592BD0C347BB05929AEB +:102D500033F8FDC6C7FF100FFDB4FD1AD8BF41FB05 +:102D6000D633FBB932EC87799AD1F66F3E08CD7233 +:102D7000A4EFDF3C47E76D7CCBE605B81B7FF3FD96 +:102D80007858FF5FCC4D8CCE7FDC9A02FAB6D1A288 +:102D9000A64858B2E78DDB6E47FABBE9F5DB319FF9 +:102DA0009FD2771AF02F852F0DE05AF2E87C84EB42 +:102DB00046E247FA6BFC31BB2FF69999D43C31C4FB +:102DC0007E7EC9F9E42FDB6D68CCFF050EE340EE93 +:102DD000FE510CB27CAB55686768F7805112D3FA8C +:102DE0006776B63FAFA76B795C4C8EADE4BD563EBF +:102DF000B61EE5D85F339554E0778A079D3C135F94 +:102E00009F92CAE51FE6FFE27B544454C373E8DF98 +:102E10006B5162C6EADEE3F12836FF6D7C7EBAEEC6 +:102E200058E1325AA60CE429F4C23A5608EC1DA027 +:102E30001BC8731D9DC1E4F000BF3FB681ED0FE7D5 +:102E4000F74F0F3139B22238B706E540AFA5271545 +:102E5000FA05F7D40A28076CE17BCE917CFC9885B3 +:102E6000F3B1BE9DAECB2C44E273B780F6FE8D5B12 +:102E700068BF087B63E5D34C1EAF847BD4BA3C6249 +:102E8000C6875A7CFF26C3F98A561AE5C0670639F9 +:102E900030703EF068F279E3F19ABDB5CC12FCD9FE +:102EA000C3C0AF476D68CF2CFBB505F3BDFFF6ABD4 +:102EB000BD87AFA5F4FDB76E8D4FF572D5C8A78D50 +:102EC0004FCE2743F1E9DFDC3E32249FD2E743F2C5 +:102ED000A99B7D2FE31F265707F0ADE7CB9BA2C828 +:102EE000D5EC8C41F643C215B4FAD77F5B9A8DF9C5 +:102EF0000A06BC6AF834CAC7E7E0D2E510F291FED0 +:102F0000394422F0A8E14FA3CF5B7EB91CE719A09A +:102F10005B8D3E353D35409F4678F57834B67FC8A9 +:102F2000E590B6EF9675D42F86BCB6E745BCA7757D +:102F30004AEE8F87BCFFD61816073825F17A22ABE8 +:102F4000F7275BDB405E68CFFB63D8FD8E53BEFE88 +:102F5000F8C408FFECFD5D623CC4BBFB82CC9F362D +:102F6000D21F444AF13E2FF7B7A7888EAC00F85322 +:102F70009D792510C13FDD62E1F591EC7704781E63 +:102F8000C97F11DFE12B609DDABD2C5531A7513C83 +:102F90002E662092C6979BE3210EB378D752FCEEA3 +:102FA000D40D1D7AF86F74D4E2F9EE8D5BF4F70C52 +:102FB0006F22412BD8518D8FEA9FDFC2E5F92D0694 +:102FC000BAF1F3F8A1916E6ECCE0E762C5A498F96E +:102FD000B92CFFE3562EB7A6888573EA28BE4FEDBD +:102FE00017F15CE7F42E91B4019CBF62F63F515992 +:102FF000BEC00A4AB79171C7934057A3A2EBE593AD +:10300000FF7E6CDC5DB4CBB267DE1EFB082D4F3E4D +:1030100073F492DF41FDD937B3DE2683FB57EFFE11 +:10302000FC7A904FA776DBF0DEE7A9DDFF997517F4 +:10303000D49FB379619DA7D631FF56DDED447D7DE8 +:103040002A93D977CDCF9F1DDB87F296DDAFBE2FB8 +:1030500083E57F9DDEF5E5BBF07DD0D3BB2854A092 +:103060004FB93FB5F2B918F48F4F3D7F765CE4EF6E +:103070001B7C5B7856F0F3C1534E5207F936A7120A +:1030800059FC69E5EF26603EFEF2A7F758E15E4481 +:10309000F5EFBF1E0BF2E5D493CC4EA0F6EB363025 +:1030A000991F7DF48A7B2C74FFFE0E361DF5F3CB41 +:1030B0007F7CD76CF84EEB60BC303C9CA27800B8AB +:1030C000285E1A412E46C3C753FFB4F8F8E47A9835 +:1030D0007FD9AEF178DF3A8C174161CF9D983744A4 +:1030E000E167CF779F1D0B7EF385E07D3D839D5B80 +:1030F000FDFF02EFA97FDAFD65F47E4706D3374670 +:10310000BA1F4CD7CFFE00EBBF717A71BDC3E4F795 +:1031100084CC7F56F8FF77F6BBE89F16DE0BEDF701 +:10312000CB7CBF9D12F87BA79EFF3A8B5C04DC33FF +:1031300033FF59F9FAFC700FD83526AFBD8CAEEFCE +:103140002D129C5F25A0B5817646B383E5A1F7D605 +:10315000E6E07D1BC2FD86D902D3CF7764327F4182 +:103160003BC79DEDBE11ED88D9CA267E6FCD84EB9D +:10317000E97557FC6CE3107ED21C45447BEDD5B558 +:10318000747E8AA7579D26A959C6E768B7CDF7333D +:10319000FB6EBE32837D3FD4BDBF0EEE6FCEA9D095 +:1031A000FB11D71AFC82ABEBF4ED5791EDC910A7D8 +:1031B000BFAAD1428202C4870DFD33D9F79FAE2644 +:1031C0004DAD2CDE72D17841BF8EDF09248F653280 +:1031D0007F51C3CB603C703CB2EE83F066F333BFEB +:1031E000D0468CDF6FBD55873F23DE08F71331AB28 +:1031F000C314C6AF4D61F74523C643B807F0C9F104 +:103200007DB17835EECF85F07C67143C874BFD7738 +:103210000608B707670FD8830EE4A7D71E1330EE52 +:10322000FC5AC5E28E62A8FF4A403BECB3CA526228 +:10323000A770BF6A213BF19C455164691CFBFD00EE +:1032400068172AFE13E3FC0915269D7F99A8C4EA96 +:10325000E072D524E9EAC9BE11BAFEA975B9BAF679 +:1032600034FFA5BAF6F4C6125D3DB3E9725DFFEC1A +:10327000C0245D3D479DAEEB9FD7FE3D5D7D64E77D +:10328000B5BAFEA31E5AA46B1F1DBC45D73E66C728 +:10329000ADBA7A51F79DBAFE97ED5CA76B2FEED9C8 +:1032A000A86B2FDDBF59572FEF7D58D77FFC91EDCD +:1032B000BAF6097DFFA66BBFE2C493BAFA77FA9F0C +:1032C000D3F5BF32F482AE5E45FEA0EB5F6D7F4367 +:1032D000579F22BDADEBFF5DCF07BAF669F2DF74F1 +:1032E000EDDAFECF2838A37B0E670CEA38F04FD812 +:1032F0009F59DE2F75E398890FE3C356D284A59DAD +:103300007FCF2C967463E9E0E7905BC6F8FF5F26F9 +:10331000F885DBD43620AE57279CCD02B9FE5AE59E +:103320003C5D9EA1F63D9739F0FB0BF1E1F3FFF810 +:1033300090487A4A291D86042CA5501CE971513AFF +:103340000CC560991472E1735728114B77281D9FA3 +:103350002787D2B04C09E561991ACAC1D2131A83E2 +:10336000655A6834962342A5F85E7AA818CB8CD0AB +:1033700015F83C333401CBAC50353ECF0E556129A6 +:1033800087666099139A86656E681EF6CB0BCDC56D +:10339000323F548FCF4786AEC1F292D0622C478520 +:1033A0001AB02C082DC57274E8662C2F0D7D1FDF16 +:1033B0001B135A856561E82E7C5E14FA21966343DF +:1033C000CD585E165A8BA5377437F62B0E6DC0B2EA +:1033D00024743F3E2F0DDD876559E8117C5E1EFA8F +:1033E000572CC7857E8AE5F850179615A15F62397C +:1033F00021F40B2C2F0F3D85EF5D117A02CBCAD043 +:10340000EFF0F97742FF81E5C4D05E7C7E65680FFE +:10341000964AE80FF8BC2AF4329693426FE0F3EA3A +:10342000D0EB584E0EBD8DCFA7848E623935F40196 +:1034300096DF0DBD8F654DE86F584E0B7D84E5F42A +:10344000D0197C6F46E8132C6786BEC4E7B3429F51 +:103450006339E0D75746FDCE8AE91CC4531C49C3E3 +:10346000FC5EDC43BA73A307E147C4A85C9CB39A33 +:10347000DD436FAB3A3319EDD5553699DF0F35C8BB +:10348000D5AFF0771BE033B32CDF9DD2246DBF8E18 +:10349000D3EF6B157B93C10E6A2BE95B06718D4DE3 +:1034A000397D0BA06CCC627A6E6116B3036ECC6270 +:1034B00071CE7F1BC3F2D217AC1A89F171E21E1EC6 +:1034C0001C3BB87ED0FA3BF3F8EF9939FAB3F077AA +:1034D000678639CE70FB5D280F695696FFAE2C8C3F +:1034E000FF187F7767D8EF3767257FABF7EF3EDFB1 +:1034F000FCEBDD3FF03540D5AC9867D1FDAAE7FB8A +:1035000055DF7413C6C7B4EFA3F7F1EFA3DB96E959 +:10351000E335F554CE55D179EA6F63F9AFC6F63E7F +:1035200085A09DB37E19CBEBA9CF3061BF7AC3399B +:103530002A21DDF87D8D7AFEBD7163FBA22871C35F +:103540009F6519E2B09C2EEB799FF5CB443C2F3A56 +:103550007388FDCED5DE642B01FBBA6FB90DE99AF5 +:10356000B4B3B8E2DBC9CF64CA11E7330D54AE2A55 +:1035700094EFF62EBFC30374BDBEF5090B9C8FF507 +:1035800065AEC28F0384E920C8F27832099E97D4D1 +:10359000ABABF0FBF4A48064A03DC7F16931C9DD99 +:1035A00080479265C77B8FA2499F6F5D90CDCED536 +:1035B000B5F23D13C39BBA8EC5B3D75B9B0A20FE01 +:1035C00007890EA6717C9F4C302E1B67BF95EDFBC3 +:1035D00007F7E56C87FB4B11765A2CE0AF9EE8EDC0 +:1035E000B64359893C2EC9F0FE01FFAE2AFC1134C6 +:1035F0003AC843BAB0C27DC97AB71DED3FF8AEAC48 +:1036000099B2467DE7DCA5606FBE37F0DD0B0AD3CB +:10361000381EA7A3EFF957C729A3E93E1FE5FC5DB4 +:10362000AF5AD448BAB0086CBD64ADC0CF3FD465C2 +:1036300050AFEFB0E5B27B9A7C1DD046E5DA846CE2 +:1036400036CE0702C74B2661EFF1FC045B476210E0 +:10365000ECE27AB719D769C954AE87BCB4FA0C1F2B +:10366000AE9398FB6F6F80FCB30C09BF7B666B5900 +:10367000A5803CAAEF58BB0AE87C002E33315BA939 +:103680007E6D202C4F897408ECF75C22E1A378F75B +:10369000770808DF392EB73E6C15189D6F62F9E781 +:1036A000EB339BF077CA88D977E4CD8879B5FDF6FE +:1036B000C3BC745DFECE67EF10D0AE6679A47E9871 +:1036C0009FAE6321BF0F68C49B9FEE17E0F7D26CDB +:1036D0003EEF8F9C08FFE079BDD6B945E1756BF4EC +:1036E00052BFDA89E73D1ADCAD82AFAE01F0B9C94D +:1036F0008670D6C37AC686F150969DC4BE779A3935 +:10370000356BD110EBC1587104BD18E9CC62E2FBF6 +:103710009CC57E8F55A37B8D6EF2B299BCD7CA49EA +:103720007C9F23BED787F94B93B2B5DF0564DF2BAF +:10373000FB2ED19F577D3783DD6B7C8FE70D65674F +:1037400077CD81FCEBDF67F1F7E4A602CC67E5F308 +:10375000D33F0AF211EC271DBFDE61C7FDBC8CE32D +:10376000D58817A3FC4F1A5827F15BC7F17C815C01 +:10377000782EE3737F870DE950DBDFE303DF8B55A2 +:10378000B2705F248E374EDFA7389F9CCA62EF036A +:1037900039C1F7DCD4FB6C48E7DA7E18FD2F4D8E7B +:1037A000BF0B7E251DFF417844E5D9DE849502ECF0 +:1037B000D75C0E4F0AA7AF3DB685424384DCB9897A +:1037C000E33D39CA7DCB9BF8FB0A6F87FCB573E3F9 +:1037D000D08F2591F1F245D9FAEF914D759AF03CD1 +:1037E0006BC68343E76B1C9019BC33EEEDFEF48F80 +:1037F000401FF556948B0FACD5FF4ED7223EFF11DC +:10380000DE9F2C189E5E7E3720C6801DDD19FAEBE8 +:103810002F7F4BC74FF25951FE2791BE5FFE16CE48 +:10382000C5EBD8EFC2ED4D3885755B6D2EDEA7ED8B +:10383000544A106F33654107CFD60C530D9CEFEE01 +:103840004D989376038567CBDC1B851B22D6996246 +:103850004EC0FCBF3DB639698DBCBD91B6EFFEDEF2 +:103860009FC7805ED95B2FED82FCC8F85AF69D5C3D +:103870005705CB178CAF2031D01FE66D8C18CF5574 +:10388000CBDAF7CC9B9AB684BED759BB6E02BCB7D5 +:1038900065AE157F2F6BEB4CB5428C90279DB5C75D +:1038A0007BE01E70FB6482F77392E492D5201A933A +:1038B000CCF7DAE17BB4A492603EE11E5BB610194E +:1038C0003F5ACDE1546A589E65BBAC3F3FFA5466FF +:1038D000FB3A2687C5E55E88CB5E3D928E67AF35A5 +:1038E000C12FEAB2942B18BF867D57F97EA1AF1481 +:1038F000F8A95A942AA10CE4F0736BAE0FB5FBB390 +:10390000163BFB5D564B988FEDE7B83C07BEB47095 +:103910007EDAA2C9FB34263F22FA6BF48F7AC332D7 +:10392000D99A0BF2FFB761BE44FD81E3D07558EA26 +:1039300008CABDFBB4F1AED1F4875F00FDA6C97F14 +:103940004B1DD51763215F8AF0B88B3F6D6EC4772E +:10395000C3F7F2F1B766F8AFC1EF7B9B2501DAEF51 +:10396000172401F4F3739C5EC3DF1F9004B4B7788F +:103970003F4D4FDFF31D76CFF89E01B9C0D66BE502 +:1039800070537D45A0BFB5D68472C45AC9F49875EA +:10399000B28A7A6333D7D7164F043E48188E37B3AE +:1039A00073701D0F5C634578EF4B93822CCEE44F10 +:1039B000E3F832819EB583AB40F1735FA6740DD3FB +:1039C0001B2AFE9EF6FDDABACC04F183688CD81768 +:1039D0004B8D15D76557D8F7B92D192AEA134BDD4A +:1039E0003328EFEE0FC3A55853F8FD644A0AD69961 +:1039F0005665346D3FC6F1689DFC0CEA1B231C9A8A +:103A00005E19D83FC3BE0F92FF86FABD73AD693011 +:103A1000DF03745F404E3D20C8476F807DA7F408E8 +:103A2000F2BCBD96C5DFEE2934B173C0160F7EF728 +:103A3000CCC9E77672FBF7DD8A495215EDB7A58050 +:103A40007879680EBF7316FE7E26E9188897C17BC9 +:103A500065AB2E81FDF9773917E1BB77FEF176B8BA +:103A6000AFEF2836A1FCD9E23B8EF7AF7FCFF5DF71 +:103A7000E5277AAB1368BB6BA684F7F7B5E7133E6F +:103A8000EC11E1F9FF0066D74971008000000000E9 +:103A90001F8B080000000000000BB53C0B7854C5DC +:103AA000D573F7EEDDDDBC374F1209B09B7720E010 +:103AB00012080488B2E1D5200437801A4CD00D8F4B +:103AC00080219088B6D096BA0B0149354AC4D86295 +:103AD0008BFE2B458BB5D6A058698BB801B4D15A53 +:103AE0008D162B6D15A252044589F8687CFCE53FC4 +:103AF000E7CC4CF6DE0DCFDA7FFD6432775E67CE21 +:103B00009CD79C99330965F642953136A1BC95B195 +:103B100002C612CAFCCC0BE9A6D2BF968F1DCD58A7 +:103B20006C81D9C51C8CFD440936AB90F74F67EC0E +:103B300061A89F3025689F9CC4587CBAC90559E686 +:103B40009E122C1B8BF95B55A640FDE88F924ACD47 +:103B5000507F82124FE56DF8CF65F80FF3331B638A +:103B60004D9AC8FB233D4B4BA01D0BDA989DB19F8E +:103B700007623DE63468AFF0F25C47A9C71F8DE5E8 +:103B8000ADD50CFA675956FBC34EC662E04F5B02D7 +:103B9000631A33B34A48E79B19B3409AE1C8602CD3 +:103BA00019CACD2C682A64CC14559DEA85F6E5899E +:103BB000DE460FA465D0CE5C48E5B644AA0F0315D7 +:103BC000C147B5DA85F55AA04A7B348DEFC1F40CB4 +:103BD000FE26025C580FFA5D27EBB3958C8D61ECE5 +:103BE000BB369A138BD9579186FDDF57CA2AF5ED5C +:103BF000A2475B7066F43B03FF471618F3B62C63CD +:103C00005E4B37E67F29C6DD1F7786217C71806A8F +:103C1000ECFF270A8C53101A6792C34470C9F43919 +:103C20008BE356C4D7739131CCAF601E3AC3F5FB1A +:103C3000D81C40FC31E62A99333CD4FE7587458C6C +:103C4000D3A0E0FAA7E038901E5EFDDE5D4F40BBDA +:103C5000568FC3847422EBCF1470250978E47799CA +:103C60002E1D62A27289F7F0F205A27D936F357B5B +:103C70002F3BF45D15FD151DF436C524213E1C8532 +:103C8000AA23545E29DAEDCE74573A8A902E787DB5 +:103C9000B63F4271C6E8FBE7E3DBA3BD6E37CC83DA +:103CA00055CF662CAD3F1C32859525BC1DC6F52F22 +:103CB000E85FBE4FF4E7167861DFC07758FF266CE7 +:103CC0009A19AAB74AE05FE6A7C5983C01A83FE366 +:103CD000A7ACF16CFD1E11F399B1A9FDB3D701CFCB +:103CE000ACCAE27A18F96DAD918E5609BA3B2AE951 +:103CF000AF1A8877DCF9E6E3A77E27ABDDA3329025 +:103D00006F324DC4B7CD8E0CA54607C78702DEBB08 +:103D10008630AA6FB69BFDD65848A3CDEF60AACED9 +:103D200035F9AD23202DB1BCA3625A79FB272A7C3B +:103D3000B7DA5BFD28171E54BC2DB80ECC633223B6 +:103D40003F4472D2656AB49BE4C8B9F8241CDE6FA4 +:103D5000CB27C0778C8D077E095CD6EA2FF88FE6DB +:103D6000F1B003E6CF66C23C52FACF43CAA37581D5 +:103D7000C4569447202FE2BC6799874C57BFF5C9BA +:103D8000F0033AF89E7044271D1B067F8C6563CFB5 +:103D9000A8176EFF2F5FCFF003C017450EBE2EECA5 +:103DA000AD6813E23151F4F956F93EBB02EBFAA9C2 +:103DB0000B041FC076B79DF377CB6A35E027FE76FC +:103DC000477874FC60EB55993B116464AF42A9EAF3 +:103DD00070D0BADB1CAD24572CA95CEEEF8FF351E9 +:103DE0006A1574DE611D62A01749DFF1E7E0FB5A36 +:103DF00051BE4AC05D66F556E27AB3EA4203FF550A +:103E00000F31F289A4D7E74C6C29F6FB8793EFDEDC +:103E10007939CC2FA592EBA749025E593FA5D2551F +:103E20008270031FAA7ABC4C2B077E3B9BBC19C235 +:103E3000F96C01D2795108AEF07A3787C12FFB8F28 +:103E400095FD8F3B7BFF923F65BBC3BDE34723DFFF +:103E50005991F7E09BB5D26FA37C19237DAAA533B6 +:103E600037F63339739D2DB280F3655D34F2A1D5F9 +:103E7000C08F57AA67971B3F767238F7450DF90632 +:103E8000F5B26D2EB3A39CB4314FA98672C41C4702 +:103E90007284E5B154847F03E370803E74D4C038EB +:103EA000EB9D5C9EB5295CCE740AFD70F7158E6D96 +:103EB000EB14D2ABFE6E3E67CB19A4272033D31888 +:103EC000FC0EBF0C4339C3F20467BCD08B1EE60165 +:103ED000BD72B7D04FF85352443B5C48730FAB8070 +:103EE00072AD120814F8B00CFA35A31E2FF12C6332 +:103EF000B1BCBE06E358C4389699BC9E84AF791015 +:103F00000BAC83F19A15169185FAEC1A930BE51A0E +:103F100033BBD31643DE5A92E2BAC311EAD7920EEC +:103F2000FD427B2D5507AFC005D3C1153E9FEF5C09 +:103F300020BF59F1A6A1DC3F31C441788C672ECA5D +:103F4000C32F0DF92EC51CE70E10FF5C9DB608D2DD +:103F5000B68A5A6511A7D733EA184E5A084347154F +:103F6000889F685C3F87827A2AB18CD345EB37996A +:103F70001D13815EEE9B3B3B0BE7BB17F902EDB3D4 +:103F8000B92605EBDBDDF6122E5FF9787BBF8A4C94 +:103F9000ABD5D1C9DE49C7462D82F6774FB7D815C4 +:103FA00007AD07D7FF5F46061E86BF274F1893E66B +:103FB000D0D17183A087FB2ABD6E06DFEF1E97A2CA +:103FC0002CD0F5B7C6C9E97B53456D1A3321DD6D99 +:103FD00022394128417A5BAF50BFE1743A5FB4B3F4 +:103FE000097CB45D638AB041DAEA9EA42C2DC0F24C +:103FF000081AB7D51CA7E0B83637E3789BE39A6771 +:1040000006F86BD20356041DE490650994573B23D0 +:10401000A93FAB5DE87DFC25A1BD9AF2D01DCED0B5 +:10402000B84BC4B8AD4A4F2AAECB4F344EE7409F91 +:10403000D3B3A1FE4F92B30A914E365D91733FE226 +:1040400049BB6D38D919B2DD3383BDB54E488F4CAD +:10405000BAF6D0222491F1398371DE2784FC78DB13 +:10406000CECC0ACCFB6D10BE6B15ECDFE3C946BEAF +:10407000B9F28BA71739A8FD0A67B2A1FD0D48CF89 +:10408000B27DCB60CFCD587E6FF9B5649FDE57E926 +:10409000BA7F21F46729B6106932D6BD6521C07593 +:1040A000EF544670F6D91382EFD738B97CD85471E3 +:1040B0002C15E12A73723A6C45BA443E637605F9D1 +:1040C000F0DE71C7A89F94295CEE48BBAEADC2E29A +:1040D000C675DB342F679BAAF0F55C108DFDF3F9F4 +:1040E0009739399CF7B94FA72E66483F2EEA578E6D +:1040F00023E93F1EA53AA471B8BE3AFABE8FC99F04 +:10410000634F0FD2A1D33E12E7D12BECA8F84A4E51 +:10411000E71DD6385ABFB6A99E80EAE47CB298E083 +:10412000FB82F0D251E5257A4F11FC913053D05BE0 +:10413000A52590EDD4F3C9A46CE213E0032FF14957 +:1041400021B593F026CEEC7EEA09A8D731C36247A9 +:10415000F45CA9F2F95CAC1D7584388DB1C79D9EE5 +:104160001D4817206F46207ED99A446A5F6DEAC8C1 +:104170006E44FA5C17A434BC7D19D80E5D881FB359 +:104180002B05E99CA5737D7E8B90299FB614C5E114 +:10419000FECB1BCBEB2966EF58CC97FD7BE1580B90 +:1041A000EA90BFC730B4DBE767B21B67C3F71B15E4 +:1041B0000ECFFCA6E9650AC8B7A093EBB7577DB050 +:1041C000C0B98CBDE6B33137A892BFF8EC947FC379 +:1041D000974AF9377D0E4AFFE6CBA3F4A885EBDBBF +:1041E000F989EC46D2D3CC6E4179F28290072F88C0 +:1041F0007E19BB35153409C0F39722931D97ECA89F +:1042000067EA1540A51A97F357BB55D4357DF2B52B +:10421000726E94100E3C5FE39960286779A342F9AF +:104220000C46FA05D7754173FCB63B60C879331369 +:104230000DF5AF6D1E68C8BF2DD6B5A22CD3F0FD0D +:10424000FAEA61867C4D2F280E188AD92209DFB739 +:10425000DAB8DC050BCF84CC708B9DD7FDAC71EC4C +:10426000805530FE672F6B541EBE0E472D5CCEF876 +:10427000FFAAF2FD137CC775F9FCD02086F096FDED +:104280001BF6BDB84EBFB2921C5CB845617E980269 +:10429000EBF1DF80ED6E7DC8EAC27A8BB6A8CC8BDD +:1042A000F0A0D106E37DF05AF6B63B685DFD0F62E3 +:1042B000BD1EA8B70D8A8E6BCC6F07D25CD82DFAC5 +:1042C000510A0722FE8FC733773C98522722DECA55 +:1042D000415BE3A3F2D65A13EA1DF5E56413B4FF7C +:1042E000E84995211FDD74F31B63EC80D7BA17DA18 +:1042F000FF5A0CFD1D6D55991DC6FB7087F521E415 +:1043000077A09201A88743F30C8C40BADC31D063CC +:10431000CE00FAFEA03630C28EF4B02699E8BB3F3C +:104320003E60FEA84F902EA13FEFF7626C0AB0F2FC +:1043300042CD953292E888EFA7FC6C741A2B86FA6E +:104340002D5A19CA75E09B5938CFA3AD89A63B08F1 +:104350008E2789AE16981D16FD780B5A54D203B0DD +:1043600018168493DDA37AC176865F2BEFB759F1D7 +:10437000B201FDD7F1969BADB44EB70C8A0C208AE2 +:104380006FC031CEC2DF1F03EF78ADA17CDDB32A51 +:10439000D9756CB4635309CC6BD6F6C94528AF58B0 +:1043A0002AEFFFB3044937EB69FCD36E28C2F5DF6F +:1043B0001E13C0FDF549D39387CDB00E56B37704D5 +:1043C000E26FE92CFF830AB0C4A93DEFDD3D01EAAD +:1043D0007DF0B8E6C2EE5B98DB9551C4E7857CB60C +:1043E000C02CF4D8EA64E267660E3CF233187FE32F +:1043F000DF0718E47E489EACE57696AC0F60988A9D +:104400003109A6288047AF834DB303DEAA58FB06C7 +:10441000C2270B507D070209F8B3D7430A787BAF58 +:1044200028E60E7639AC978979F576FC7B829FA7D2 +:1044300065703D20E5DEED220FF5B9FCDDCBF53DE5 +:104440002CF0C12CC0CF52C6F1D3C05A3EC1FDD50D +:10445000B51919547F69E39299687FD10FF0B00CB8 +:10446000E80FD7BDD61E7F6B17E4EB7744B802D0B8 +:10447000EEDE0CCECFD0871DF9F426D1E4A5BC5BCF +:104480002C385EDDD30A4BC4F102DA51B4C36C2080 +:1044900030506E7C00EC5A9C80FD29D47F7DAB129D +:1044A00008C09F4B584F10EDE2E5BF565C41DE95CA +:1044B0000DD771B1E8B7CE7C5717C25997A7BC8307 +:1044C000FB42B603FAD5C9A3E5ED7C1C29471A982F +:1044D00039540EFCB5D8D6D285FBC7C5ACCF2E5407 +:1044E000CE207CAD9A1FEBD9986D2DF6E3898A21F9 +:1044F000B8EA002EAB530FBFCACE002E6BBD81179A +:1045000066111E145780F5876309F34C89C77940FB +:1045100079D0D11FAEF0795D2C9CB5AE0EA2937010 +:104520007875EBE0D0AFC312D6753BD253AD9FAFD9 +:104530007FED1EC033F4FFCF468D59E2880EBAB22C +:10454000C684E800E09E85F270499B0ABA294417A8 +:10455000921E6EDA19B0A0FEFD90B5C64603DFD4F8 +:104560006FD979ED386CB7F5350BEAEFEA8460B6B0 +:10457000098C8B24FF55F7945D11A2CF9B02C6F9DD +:104580002FDB61CCFFB7F083B3308F11ED002F8BA1 +:10459000B7ABB40FD1D5A3F652BF2FF5335710E602 +:1045A000BBF4A0EA429FD052D0678985970EAFC472 +:1045B000D3FF37DCE1FE89FD1931DC3FE1622EF4E7 +:1045C0004F7CCE0AE2AEC34261DF9CCB3F21E71FA6 +:1045D000AE5FDFD2C09E8075FCCCEC8E4B20391EC6 +:1045E0002EA7C70E407D23E573ADD097B2FFC5A8B7 +:1045F00027217F6CCB53B16807FEB3EDA9144C970C +:10460000A01E2A08E9A1EF2D0C0E42BDFDBD6722B8 +:104610005C489A6C66F08DEF43FEA39D2A3B9BFCA1 +:104620009C39D0FB4E06C22BF4E972F5A1C176D4B9 +:104630009F429E5EC80EFCB6F35C80F31C15EA77C1 +:10464000A198E7BBCD7C7EEFB5F0F92EEA374FB0ED +:1046500023709EBFB0BA50941F8F0892BE3F0EF3D6 +:104660006CD2D90BD23E90F3FB9CB53E1884F2E598 +:104670002BDF3C6C067AB829A76B04F263F53D5634 +:10468000B2076E7A3A26C020FF81523A80ECE103ED +:10469000C158C45FDD931C7F2138FAEC035B66B21E +:1046A000CE3EB848BCAD601EF293AED8F3C74368A7 +:1046B000AF2A6E680AF0AEB0450789DE776B27F542 +:1046C000724F7170D3DCCA5C361BAE4F3A7390BD2B +:1046D000CDAAED48A70AF3B233519837BB8FC15A20 +:1046E000D4623B80FF8BEC4F6E58497CD09383FAA9 +:1046F000B52132A80D40BB6AA7E2DA86FC766B6969 +:104700002CBA0A35D648F0E46472FB5671BBD96AFC +:10471000C09B15FA8A8471F3331DFCBBC34EAE2BCC +:10472000B615C68F09C11DFE7D169206EAC568D36F +:1047300059F7C195629CE5AA89ECEC7A0BB7B74FA3 +:1047400009FFCB984CAE5FC764F2FD5D49A69DD2D0 +:1047500053B03DC6753F35D51AC07D669785ED4689 +:104760003BEB35CDBDE547B06E6F667A27E07A78D2 +:104770004CD1F391DFD7458DD0507EAE8FAF1D82E7 +:10478000E90DAC4BC3759D555CE1C0FDF4E1149B94 +:104790004B25B9050B3206ED044EC7AF68D1CDD815 +:1047A000EF61C41DCCABAAF88F5FE23A1D86F147DA +:1047B000C3F887D32C812668E77FD64AF6C3C6485C +:1047C000E68FC0F927C591BFF47A21A7E64FB1BAA9 +:1047D000D18F533565A30753E8CFCF005FD5B69E81 +:1047E0000D23619CB526AEA7D726B000D22D5BDF86 +:1047F0005D84F8BB9CADB7E33AC2EC779D493C1FA2 +:104800003D99D931492730AFFA498CFCBE4468C57F +:10481000845F43BEDEC2CB57643E51D1560279DC81 +:104820006B203D4C5703DB603E57C388B89E57430F +:10483000BF486F0C99660C5F4FFCCD86FF4B609EA6 +:10484000B3CDCC6F4AA0B4391AD26B8A59300EE678 +:10485000177C9129080F9D8D007CD7054DC15CC048 +:10486000DBD5E66007E2EF90CA36A01D3A9B39B56A +:1048700095B01EF5EB2E0EDEE6CCDF73784D260EDE +:10488000EFF79500EE0B6E30B3032AC0D390E0F043 +:10489000D3F79B395DC3F7E6D842ACAF105D5581C5 +:1048A00090407AC6F5253AC5CA6342EB04F56D918E +:1048B000F0FDF64C27D1599580778BD794827E8076 +:1048C000E5623F78838DAD8FC1F666576C05ACD33A +:1048D000480053BF4E0D16B96F6CB7CC06FE5C0690 +:1048E000FCED04BC6C16F4BE4CF2F7AF8DFCBD0BB6 +:1048F000F90BC655D09E047C5689F45CFCB153F08C +:10490000C74EC11F0F64CA7D693BD9D1CB845C39C6 +:10491000D778CBAD2C48F87AD64AEB2EC7BD5AA42F +:104920004F64F273430987A4F35AD6684139512B77 +:10493000F4AF091613F5E7D2D65F5810094BB7EA62 +:10494000EC35FAB7D58272AA6E7BF8779DFE560DCC +:1049500072CC7406534BCF22844FB932C2857C513E +:104960006569273F8282F22D2F24DFC2DB69AD7C8F +:104970001FA9B5707BCCCAB8BCB082BD8972BE26F7 +:10498000BD6738CA0569A7D78AF5B732C73405CAE3 +:104990006BD11EC37310B43BD0FFBA85C36D16F63E +:1049A000F5C256A37D52D31C3E2F6EA7687DFD9A9B +:1049B0008FEAED0C4DD829472C3DC3515FE8FCAC84 +:1049C00064AF1C3171F8FD298CEFAB9378B959D8DD +:1049D000A392EFF7656AC2BFECA775BA9A79E28233 +:1049E0003A39EB99C2D89585E8875002480757BBFA +:1049F0004B3B79BA36A8C4223F323690F89CF3F389 +:104A0000D5EE1F939DE52953FC5158EED63ED0CFED +:104A1000EB55FC635C7F3BE97826D849A877C2CE8A +:104A2000715849E259F560B89DE49FC4F2C84F84BB +:104A30007299FB8BC95E5829EC89A96A741ECAE970 +:104A40006A25D285FB85D5B6D81178E87B1AEC6C3F +:104A5000A48FEAB723485FFF2B827F3F551AE337C5 +:104A600041FA96C8CF8FFBDE2CB4AFAB632D664CFA +:104A700057A9DD34CEBF4C3DA407F6C6AE9E826278 +:104A8000F76D7B06D977B7978EDA02361FB367D9F1 +:104A900066DB06D1F9A638A78F79DD0D70CEC57318 +:104AA0004ECAC7CE76C37EF1D4F33D37D84035E544 +:104AB0006E8F9D6D06FC9CBAAFE741CC4FDC9E3AF1 +:104AC0001BCFED4FDDD5333882F24378F95AD19FB1 +:104AD0007FC86CECEFD4FD3C9F0CE5784E573D89C8 +:104AE0008BA6EAF10AE997542117A41FADDAB48F17 +:104AF000A79358D034FAC2F5A667795233E1BB1AAE +:104B0000733406D7A522C74DF9D40CAF230BF05F41 +:104B100057A1F82D300F76309023F436EDBF370AC9 +:104B2000FFBA5CB7542167643A321BFA85F6D53771 +:104B300067C7A15E85FE867E9BFE9E1370CAFEA49B +:104B40001DB358F039F43F26ABE83FEF5FCA0DD9EB +:104B50005F4B7FF8277D9BFECD39C6FEA47D2BE7FA +:104B6000311C7913FDEE398CDB51021EF97D831265 +:104B70004CBE0EFD692FAA744EB521F99819CF19B4 +:104B8000D9D1686E3F47707E589CC5E5FC861FB939 +:104B9000E2D0CEF7FF59A573EC0D6B3D9535E8CF0C +:104BA0007A7CEC18243169877ED8F1378B03E6B123 +:104BB000429C773688F3CE15BB3A2CD3A0FF06482B +:104BC00027EBFC1DF5F2FE00EB36CF8E09C1B138A4 +:104BD000CB24F4CBDAF3DE0BB8254B117289CF7BF3 +:104BE00084985F69BEBB3E4BB70EF27B9366BCB741 +:104BF00021D3DD629E576531312EEFEF7285AF5FB5 +:104C00007524D7870BC7C4D81C9787EE47D46E7519 +:104C1000D2B9C5C48C493FC8D2E159B60BF99D7BC6 +:104C2000CEEE77DEC3FDCE723C9780B33AA1EB5651 +:104C300050F66CF7F6A99B512ECCF8A9940B2022C4 +:104C40006C787E2AF3D5B3A7A473FF27E67FBEFD59 +:104C50009ACD783EDE19C9F745F3C70E8F4439D493 +:104C6000ED8C32D9413E3DECACD98D70CE1F7BC569 +:104C700034FC5E6A8DC9A9E1E738447F0F3B3D6D86 +:104C8000588EF5D13FE5B5703AF1BEA4BAFC304F6D +:104C9000EF88282FFA053B4D6C0AEA6989BFCD5988 +:104CA0009C2E7723FE8A42E3CB7141C291BFE9E893 +:104CB000BA343A8778DC59FA4C567268DCC79DDE04 +:104CC000EDB85E725C98E608FC7EAEF1C3D7EF21CA +:104CD00031FE33627C4F09D09F4E6FCC9E1265C867 +:104CE000CF9D99C8DC7AFFF6DC81867C6575A6A12C +:104CF000FEF58B8619CACBAD5DA3F5F6815CB78B4B +:104D0000DD8F4D03BE8F03BC7475B0E1BB900F9D6A +:104D100031748EBAAC793AF9CBE37AAB28AD6F85B2 +:104D20003CF0CFF2DE39945FD11B45F9CEC8AE69B5 +:104D3000A8B73B7F1B4FFBCF57D560CECFB11F6BC2 +:104D40000CF173F9C0F9EBD0AEE88CF417DC02700B +:104D5000963FF19D325CEF15BB14F2EB96ABAC5372 +:104D60004940FE8CA0FECAD5D747DF0CDF674CE672 +:104D7000FAAC1C752B9437093FE5B9F8E688E03F9B +:104D8000AD9BC33DB5B782FA93E5FFCCE2769DCCEF +:104D90006BC9DBCD64DF8AF968DD0AA557F50EA380 +:104DA000B4615785D951807EC75F24A1FE80FAD1B6 +:104DB000A4DFA55C927CD338368E459F1BCF56214D +:104DC0007FAA50FE40BFBFC9737F8DF4366B4DB7CD +:104DD000D986E704D1163BEE1367158F4CADD5F598 +:104DE000D3D4318FA1FCB226310BEACB2A48F5F29D +:104DF000CA7B8E7B174AB6515E4939CEBC2D74E80A +:104E00007783F04748FAF858C837D9BE4BE17AD8CB +:104E1000FF343FBFF8639E37291BFAE92A65954F97 +:104E200092FCE81A8CF6FF7F0B7E585F9B42FBAD2D +:104E30006E378E3BABD861C27390B4BE79703ABD09 +:104E4000D03C2CD99CEF5E55D96AA48F57274EECE5 +:104E500072E339DF0F478D42B9C8EC3DDF209D3644 +:104E6000EC9D90897EE7FC6C0BD52FC73395D1A1C3 +:104E7000FD40C3DE283ABF69D86BDDA640BD86D8A9 +:104E80009E1C94B7B7E57BF3B3F15CEDB92F0FFF30 +:104E900010EABBA363E83E63C3DE880398BF5255A4 +:104EA00068EF373DCB3D14F1752E382F961FC3E9BF +:104EB000CCDBCCF9CF2BF8B046D0ED02C1873566FC +:104EC000D08B00F78D2FAB0CE5D38235CAF05DE8AF +:104ED0008770C4B8B2757C28F94D43BA1C85F4C9F3 +:104EE000E9B2BE375EF0B753F4CBF9A01CF7A5D0FA +:104EF0004FF9B078DAA7AFE84DA47A925F259FAA60 +:104F0000F9DE7938EFF226E06F18C7BB2E6D34F268 +:104F1000CB85E9E44BB303EF8194281AD28915D2EB +:104F2000C93AFEF6F4E965FBB4143C8F59EF34DD61 +:104F3000C142E5375C22BDCF1074B2203A988D761D +:104F4000A4D618E1C27B2ED5C90E92632B7F0C1913 +:104F500040C14ACD3319F5EACAFB15F227A2BE4576 +:104F6000BB7ACCA146F24BCBF1E7F58E600EC0D3F5 +:104F70009CDE2C4A276678EB914E6A7AAF15781C36 +:104F800071D673C7CF1A37921FEFB380D5C5C80F3C +:104F900063F41716B95D740EA9BDACB1871CE8E7C0 +:104FA000F3AAC81FC70731FBBD0AF717A2FF50FAC3 +:104FB000FBE479A2F4FB59934C86F3CFCFCDAD83BC +:104FC000D1FEEFE7FF2BE57AEDE4768DF45A7DC74D +:104FD000EB634C789EE274931F70C740EFED389FEF +:104FE000BAD981DF68905F76D753B1E89F97F86CA4 +:104FF0003707B3719FD20E78447F647B8B5A16E0DB +:105000007A3C8ACEEBA4BF54D8152F326E8F483A23 +:10501000AFEBCD24FC487D23E5F733BE54DAC44A18 +:10502000397E213D24E97BB999EBB1E540F7B86EB3 +:10503000E17C14D23F23895F18F00BF24748FF70E0 +:10504000FE08E91F41FF714368BF112ECFA57E9A6C +:10505000F068E6AEDF433F758FCDF7E03A4D1C06B2 +:10506000F200F051FF24E7837E725AE86B890F89C2 +:105070009F9744BE3ECF1D447EBA30FF44909D6B47 +:10508000F5573092B390EAE5AC1666D7CAEFCF0B6E +:105090003EB858BE794AF099845BC2D965E1F6956D +:1050A00084FF4F8CDB1F729C3FE6CD7E8BE421E8B2 +:1050B0000D1CFF9D6CAEA7FF5BF33A97FE78A76FC0 +:1050C0007E17A73F5E099B9F9C879CD7CB62BE172C +:1050D000AB5FBEC8B6887BCF46FD02F58EFD01DA18 +:1050E0009D7A36DF8E724C557A8ED17DF667231C01 +:1050F0008887579F8BA0FA6E5B1CEDEF273FF7FE6A +:10510000A73F77E03E62CE178847F71EAB99E9ECE0 +:105110003D099784F3CF026ED0435F67EBF61DF233 +:10512000FBB7D54B922FC2F9369C5FC3F973C69D6E +:105130006027E23C9F51E89E40C82E64A4A73A3302 +:1051400006D17999E46F9D9D48F608CB53E89E4FB0 +:105150007FFBEBCDD10E68FFE9E89891E85FDDAF0A +:10516000B6DF3B5E09F1F1A4C7BE7EEAEFACBFBE7D +:10517000ABC8F38EC8290AF1AFE4D30BD3E5EF3403 +:10518000D257F50AD9355648F5FACA7B0E7E1B95DB +:105190007369FCE6CCE9B367B83D1667217BEC4246 +:1051A000743735E7EC76CDB7A0BBA939C921BA3B36 +:1051B00097FD7D550EDFB702DD5D95F32DEC9FF376 +:1051C000AC2FE949497F33FEC4E98665F2FD4A67A1 +:1051D000249F6FA76510C9E92A21A7679C618D8864 +:1051E00067AFD8FF4B3A2EC8F7AED0AF3FEE4F7047 +:1051F000DF71B1766D555223C37B685E48F5724905 +:10520000DE970E5FFF5B722ECD4EA911F52F56DE95 +:10521000349D63DDCF63CFDE8DF3BF903DCBEC914A +:10522000463F41A3750ED2CDA7417EDFFC5CEBA9C2 +:105230006EE1F8EEC35BD02CED8244B40B804E36A9 +:105240007D2B3A619E54F4AF1FC63FF1DCC43F7022 +:105250002EAEC77E95C97314F24F7460FE32C61E1F +:105260007864E0C1F53A3DB559F845E47D5AF4EB70 +:10527000EC3C8B9E1E90C7E97AFFD71F3C86F12F2E +:10528000FE2116B2A7F7C7F1FB8A1B7F7C1DDD57F5 +:1052900094F53B865856F3FB8CBED4C53A3ED93FB5 +:1052A00024E51BF453ED1FC0F0860ADBFFC351DF7A +:1052B000E07D487F83EA42B7F0E1D5EF7D5803F9FE +:1052C0007FF48EB7EBE36BB47A7EFF494B6A8F595C +:1052D000AC836F7FC3A812876E3E9F8B7DFF3FD24A +:1052E000BF67473F4EC7905BBB4A11DE016682D75E +:1052F000FA65B55D29C038107E8FFC05215FB49832 +:105300008F28AEA72929034F3CE03BD7CF1BD2AF54 +:10531000B5613F4D49265A372D66BEDDA29B8F3BB6 +:10532000C9CCE172328F5E1E8CCFE5749B96CBF5B3 +:10533000DF3ED54EF30638ECE80FB8F1EBEA435DFB +:10534000288F078F71E0B9C96DB999FC5EA5C95E58 +:1053500082F6E995AA6B34D3E9B37926A1B7F2585E +:105360003AD2099D6BE07CF03C61049D33F885BF27 +:10537000DE86E7089ABC9714CBE5A5BCAF4EED4C92 +:1053800086FA742E713CC749E343F908E187A77B8D +:10539000EA74D958A5FBE664DF205F6B780E9D6444 +:1053A0007347C486EE9583549C82DF351127A60D82 +:1053B000622B66139DB76BE837FA3C47FA0579BF55 +:1053C00055028E2AC01FF6536566660BD8EB370E62 +:1053D000B08CD80DEBDF1D6D71217BCBEF72FC2AF9 +:1053E00031CE8D2A9767D67ACD708FBDEFFE7CAE19 +:1053F000BC7FEF3AF46612DA4F5126BABF86D3D19A +:10540000E3614D0CDD07E91ECC56A03CB08AF136B5 +:105410008873366BF46F57E17989FCDEBD6E02DD6F +:10542000C3DD20FD03CBC5BD2FC08B05E7857F679E +:10543000E0BC2CEE7C9C17B4778ED0C9C530787157 +:105440000DFBD633B3FFBA5CE8DEBDB46B247DFC44 +:105450003497D13A760C4959437C35C04674BF71B4 +:10546000D0B1C7F0BEAF76DB04973E7EAC63406A36 +:1054700009DE0BEE68485CD3A3E3937FD4CFB12F52 +:105480002CC0FBC3D14B91BEAFFC3A7D4D69129E3F +:105490005B4D34F0E5DEDB3EFCF499244C63E85EC2 +:1054A000FDDEAFC63B705FA89ABA494EB0AF228905 +:1054B000DE27C755A63A74FC31325711F7BEDD9787 +:1054C000E702BC6A0AF04174489E6929A3BDC82F4F +:1054D0001BA329F2816D14FEE626C51807769BE012 +:1054E000B3DB721591DAB95C343B06633F325EA4DC +:1054F000638879B5DE4F394BD49F25DA770CF9DE16 +:10550000A11A1DBE3AACCFFD790CE22B65AE8BEE35 +:1055100047A3DC43BF822FCA85F3EC1860A3F5EFE5 +:10552000186009E0B9614783CACFEDE26C0134ED40 +:10553000E53D6EEDCB6A928BB7E53A0CFEA58E0188 +:105540004984F77D6AE3212E176CA4BFFF519FF8B1 +:105550000DCA2B4D8BA3F89523A69E22E4BFDB72C8 +:1055600013B83C52802D74F6F8F521B940712DE73F +:10557000910B14B7A289FB8D17920775B94EC13FE5 +:105580008D0CF9F73F9507F8D3C6F4E7F73E7E1682 +:10559000ED255FF7B5FF7FE293EBC3F8641F2E2E76 +:1055A000E27FA342E7AD5AF2EE18BD1F7393A0D37A +:1055B0008EA838AECF1A12BF41BAB0AEAF49610E55 +:1055C0007D3D95CB4F9B8C739948F45B137DAD4625 +:1055D000760AD0E3351807946BE6719EF1DC7ED431 +:1055E0004C3DC3713ECF0CF6DE9B0BE3BC2BE2328D +:1055F00042F114F10ADE7391F04BFD26D7FF8BBE0A +:105600003C40ADBBBFF2AE22E63588917CAA4A771A +:105610009FA07BA7EB530FE8CFBDB51FC550BD8D35 +:105620006D2ADD0F96E7DF1B93A6D991DF37B62AE7 +:10563000142701BF16BC47B750B4AB1D7D730EF6DF +:10564000D79BCBFDC9DEE3F669B10EC4DFF13F3B6A +:10565000113FDF57EDD8EEB97FAB744E73C567418C +:10566000350ECF0DD63B0DF1ABDE93E669A85F6B2F +:10567000989DEE531E895D5DB616EA353DA088798A +:1056800034BEE045BE843CCA9109830E96635CF546 +:1056900084FB92C94E6BFA6E4C2CFAA30EB3C62E45 +:1056A00084D7DFA2121F817D7E200DE7AFC493FC5B +:1056B000793B7D33C54BBF9D658DA7799AD9018C08 +:1056C00087DE2FF8BF4ADC9340BCD80A43F1D340B1 +:1056D00097ECB2C2509C6BA70938A790EC4BA2DFA5 +:1056E0001745FB5A8C9FC67B21EA9E22F4A74B7973 +:1056F000658E1F4DF6EAC7BB178F4152D392E77AEA +:10570000717EA7F62C1B837838887403EB7EC7CC98 +:105710006D1EA483085BA37FA003E32FB9BC686858 +:10572000DE48F7101AF694F2384485DB1917EAF7C9 +:1057300088A0C73B3CD0AF7A11FD6E31DE6B68BAF2 +:105740003FC2A65CCED8A2B6B0EF62DF53E3377E8D +:10575000AF6A31E64D792619477E4971A1A773FFDB +:10576000B3B850531E33C48586ECF45576E4A34F8A +:10577000D3CDE4CFDC28E24237625CE859ECF66E28 +:105780001FA3389076211F24DF493EDB2FF621C06E +:105790005F95682787E2CA07297EB203DA13F15CB6 +:1057A000203E8FD3C573166E57CBF87219CF199F51 +:1057B000C7D7FD0F270B296E736F6F61893EBE6CD3 +:1057C000BFDAFDD858D2273C4EB909E8E9A9B3E0C1 +:1057D000617B8E6A38DF96F6BC940FF70AB825BD58 +:1057E00086B71F21ECFAEEB0B873EF05E2CE77670B +:1057F0004ECAC92BD2C57FEF9FC79C14FF338AF6D0 +:105800002D23C4FC8177A7A17F80A57A52F5FBC028 +:10581000F22CA39FE9DE3E397669FB99F2EDC6FDD5 +:10582000CC3D62FE7D7089785555F89BABF19C1498 +:10583000F87486804FC6A3574706B3F13E9A8C4B47 +:105840002FB3B21B2BA2F9BDEB953ABCCD10F89A41 +:10585000B189D79BD1C453ECE7A1E85079F524D1A5 +:105860009FC8CB794AF8CAB3849D22EE1387C35FE1 +:105870003EB9FD331B98B04B77B8E6E2BD916B8B18 +:1058800099B83732B2CD9D857E24233E5E95F8F1DE +:10589000171E9C8270DCCB42F7E8A07C6A495CDF73 +:1058A000793592A9ACBF64C7E5075BC8EEE2712405 +:1058B000CCDB6DE6F74A457E34E46374F9E2B0FC74 +:1058C000565E3FD6DCCDF4F115E84F50E89E9DECD6 +:1058D000CF2FF6AB3DD3F0FEFEAC5D8A1DEDF1EBB4 +:1058E0004B4E5950FE974FEE7E6120CCF7873BC65A +:1058F000CD8D8E80EFE8EF0278EFDC51DAE6378B62 +:10590000F629743F817ED676C5AD025DD6172B8110 +:105910000C677FBABE33CF786E461836B66718AFBD +:105920007329ED918EA87D06B50F5A2F61FCEB4AC5 +:10593000787C5F78BDFB653DF17E02F50FB89BD3A7 +:10594000CECF85C3EB3F24E46A97C9B41C830D1FF7 +:10595000DD714D9BED0A585FC6E9E3B11D73E7FAAF +:105960000B38B8EEB0F99E0FDE4D525EEBE6EB3031 +:10597000B60F9E0F5FF7F5C397A08FA5467A8933C0 +:105980007B0E7C0A70C42529763C6759E189684101 +:10599000FD5D3E59D2F78D73DDE930BF0866B85F13 +:1059A00011A26FEF5CA4EF154CD65FD086F2C563F1 +:1059B0006286F754A6EE51FADAE799E99D106AFF7C +:1059C000FC8E9A36BC8F01EB41E594CF3A0FBDB700 +:1059D00087E54BC2F843D037F127EE77003FD96710 +:1059E000D32B02BF1F8938F0AE495C1E77658873E0 +:1059F000837C6E671E1778EC116957A40E0FE9A11E +:105A000075865F10CFB574F3263CCD4B92F3F6CF7D +:105A10009D09F3EE4A60C315A093AFF2D6B4AD1F53 +:105A200084ED3D66BCDF6666B7B5BD0C72659EC091 +:105A30000BCBF71D1474A3209F2D27028075DFA5C3 +:105A4000F8296E08D7FD2CF37AB93F9FF8C3DABB6B +:105A5000B5F3B47FBD7F7B77587BA6255D4A7BB1CC +:105A60002E33C3D6AD2C6CDDA684E5AB653E6090CD +:105A70005F52AE2DD87DCF8694248C5751D07C4474 +:105A8000F96C5146C2908FFE786E741AD2A7431BF0 +:105A900008223DEDD13B0FDA80762B507E11BDB64A +:105AA00090BC9E83FC4DF9BBE6E2BDC16B8B1B37FE +:105AB000A442FD218FDEDD6683AAD7AFBF47C3F7BF +:105AC0007E321F6D6D3343BFF3463FF102F6675ED2 +:105AD000BBF9E04CE53CF4D91A368FAD61797F58BB +:105AE000FDB60BC8F3F561EDD78495B784E5B784AF +:105AF000E59B8DED6B1629C41735B07E88B80BF188 +:105B00004951BEF4F7B78FC67B94573CFA3F6D1BE3 +:105B10008A49CF125D4FCC0FCCD5D3A9BC675B951A +:105B2000C4FCA80FB473C8A791F9E7A093BC70FD9B +:105B3000C5CBA744FDEF53783FAAB6D56AB7021D7F +:105B40001E8DE0F14CFE37F8FE826279611E4777C8 +:105B50008E0CE039DB69A05BB4FF0FDC931B877010 +:105B60002CEE5419DE575DDEA9D27B2BE8592ED7D7 +:105B7000C505DED4A6D0FB2BB56FF17E6A77A901EF +:105B80007C32A32F1EAC4DA1763705B477F5763560 +:105B9000853642FD257B9400DEF75DB2C558BEBC5C +:105BA000DD9897F1530DCCFCAE7EBF7C04FF48EB33 +:105BB0006F7F839D4AF6D7C27C71AF57C43F5DACFF +:105BC0001DDEC2DC75F984DFB0784E69E79883C9C1 +:105BD000D7A19FF5C5C4423C7F017BD856ACBBB76B +:105BE00026CF054EFABC8C810DFEB16F29A5B2FD02 +:105BF00029A5C33210FDFAFF6474CF7FFCAE9D77F8 +:105C00004E7060FD46720E7C7C7234F9833F067BD9 +:105C1000963B0BD60939CDF9FA8A5D1DEA4086FB21 +:105C2000A6F7A2E81E537FBF3EF96D3E3D690E9C6C +:105C3000ED3E425F3CEDFF4652B9C4E307DFE7FBB0 +:105C400006696F4E10FD753C96B8673CD24D549C6A +:105C50001DFDDB4BC4FD840F76A8D4CF715BDC2324 +:105C600033D1FFBA754E0A3EE2B558EBB16060AC75 +:105C7000EBD98A58B47BFF09F582E4AF09A86827FD +:105C80008D2F6374EE303E68660E271E117A6621F2 +:105C90003D8CDBCDE30A3FC4F305CE1F74BEB0F8E4 +:105CA000772AD9B712AEC9C58261043E0F08BE7803 +:105CB0007FEB53D4CF89ED9A1DE1F978BB4674563A +:105CC00007748957D28F63BC258C5B775075A16AA6 +:105CD0003EB183F3755DBB1240F9B5FC66CD4D71E5 +:105CE0008F61743E59D6037AB5EAE8BBCE1D98465B +:105CF000FE3E41DF36F80FEFB7C7B3F6DB310E7368 +:105D0000D98EFF8CAEC3E9794FBE88E32B648597AB +:105D100012C77712F6814877F27B42FBC8D2812CFA +:105D2000241FE4BDF5260BA3FBE97E53A40BFD471E +:105D3000F27EBABC8FBECA647F1EE96415E807F420 +:105D4000138E1CCAFD6AFF32B9A6621E749B1BE348 +:105D5000D666F9ADF4EE843AD9D478B6FB6C6F0A06 +:105D6000B9B86C28A3F4AB7C1E0F25E3B69AA43F08 +:105D70003A59C40D08BF9D6C7F249FEF43BECA777C +:105D8000503B759489F62DDD1A1BCCE3D3ED83B01F +:105D90007E4554C2E70EE8FAC3FCCF68DF513121DB +:105DA000E1BB99602F7C9AFFD55CBCCF5E312AE1C4 +:105DB000E90CC87FFE682FCF5F9E50A4417EADF2F4 +:105DC000F5DC29904F18EA3E91AF834FF60BDF4F79 +:105DD000E2F7C72FF39EC2B4C112DD8CFE85534A91 +:105DE000CF0A7C484DD67F4D6187FFA084F2089F83 +:105DF000AB00F34CC07FF674FC50772F1FD7F87DB3 +:105E0000013EF503F858E0E7F130F0F3D85278DCC2 +:105E100003D2E702191FD36C8C8F612E1EC725E3B6 +:105E20009E64FC527E282E6BEBA5C4659D12F16426 +:105E3000E1F172CA1E1E57D6E467DD11B4FF35C604 +:105E4000B32C8F023A023CAD7CFAED587C2AE42652 +:105E500085CB1B96CACF87E53B622767057390FF0A +:105E6000DFF7B1A42CA0DF25AA77D050C047A7F355 +:105E70008F8351CEBDBFB52916E5D047BF515D33E5 +:105E8000A17EBD383F61DFA8417C2FA4D3994FEF9D +:105E90002E9CDCB9311DEF7B670FE572E1A453BC8A +:105EA0005BF4CDFEC13F847A6519D38B506E839C21 +:105EB000CF1D7A3639BFFD1A826F7A34C87598DFE4 +:105EC000238338DD59CDCC1FC3FDC20CE3B2344867 +:105ED000D5C2905CC6F2587A536061AAF037533C41 +:105EE0009E5C2789FF7EEB02248FEF179A6C4CC3D0 +:105EF00079E6B3AD76D45B727DA6AAD1AE20C89FF9 +:105F000095A0B7513CAF147ED1953B157A176C79AB +:105F1000A7467AF67DC1B7E1F2EB23D64371D94BA0 +:105F2000B72EE471FB425E613838D2C92CBBF9BF91 +:105F300022A72A860A3935928DBC447D5B39B4A8E4 +:105F4000FF3A4C55AB1DF8DEE4CAE4BC422B3F9F40 +:105F5000227A5922E208E4BAAC7C2093E27159F724 +:105F60002F697FBB44C0C4B6F2F89DDB9D2ABD27D4 +:105F700050BE7B2073C0A79B762B74BF6FE6EE44A8 +:105F8000CAC7F6A651BEFC970326F1F7AAF87A967F +:105F9000FF3297F2271EF9D368F12E138FEBB1333E +:105FA00019D743EB70BA92BF0360F6E7FFB404ED74 +:105FB000B74E8D051C549FE2A83C021C8F889BF2B3 +:105FC000B0F0F86E471CF6E3017B0BE997B9F9B91D +:105FD0008143C44B59534DCCA1C3F335688FC17A6B +:105FE0004438229943772FF00D113FD524E436F33E +:105FF000BBBBD04F5E29E8202A2FC150BF32BA96D2 +:10600000E821C67599A17FE6E57ED03EFAC06F49CA +:106010003C0E0BFBBFA6D2182FA6957C42F1479EE3 +:10602000BE38F746A27FADC4E84FF5A44F3BC1F898 +:10603000FC8F9E8F8E7E3654D86DF92C9FFB01FB12 +:10604000E19DF8E1F441CE0F6045FC14DFF7B8564E +:10605000E0FD34E3FC71DA1D45FCB141E043D29B25 +:106060002797C5E0D33671C546BCC6BB8DF84C2C0E +:1060700033E22BD963C4D380CA0C43799A77A8A1A1 +:106080007CE0D242437E50E37843FD21AB2719F2F6 +:106090004EFF5586FA99CDB30DF9ECD6EB0DF5739D +:1060A000B72C3094E707EA0CE5C376AC34E487B745 +:1060B000FFC050FFF2DDEB0CE523837718CA47756C +:1060C0006E36E48BBA7E66A83FF6D03643F9B8EE5A +:1060D0005F19CA271C7FD290BFA2E7F786FA137B0D +:1060E000F719F2A5EC4F86FA936D7F31E4A7DAFF3A +:1060F00061A8FF9DD4F70CE5D31D1F1ACA67E47D84 +:106100006AC897BBBE36D45F3DC87B02E54EA5A9E1 +:10611000E58120433A776C42FEBD2EC9CCDF17B92A +:1061200044BFFF2752FE09BAFD9C45DF60CA38779D +:106130007B498F6FA09E2F42BA9EC9D0CF7FBA5D98 +:1061400021BA3E97BE8D03FBD7AC9B47BCDBC6CCC8 +:106150003A3812CBEC867CB227D5507F40A5C3508D +:106160009EE6CD33940F5CEA32E40735161BEA0F46 +:1061700059ED36E49DFE3243FDCC668F219FDD5AFA +:1061800069A89FBBC56B28CF0F2C35940FDBD16856 +:10619000C80F6F5F6DA87FF96EBFA17C64B0D95046 +:1061A0003EAAB3D5902FEADA62A83FF650C0503E1F +:1061B000AE7B87A17CC2F17643FE8A9EDD86FA1310 +:1061C0007B83867C297BD1507FB2ED35437EAAFD4F +:1061D0006F86FADF497DC7503EDD71C2505EFFA178 +:1061E0008BE29AD91F148ABB9991F789A11CECED17 +:1061F0003CD48BCB59A40BEDED707B5DDA63E5AE3F +:106200002F0DE3AC3235925F7695CAEDB4CA61FCCE +:10621000DC13EC789B8DCB597EDE5FC6E8DDBD38A4 +:106220008C374FE07E471E479F44FA9554A403FDE8 +:10623000A060CFC4A2DDE270DAA1C85EC6DF21880B +:106240000AD997E96774EF625CC8BEAC45DE013ECF +:10625000681BE6AD1A5684FBB29DD370BF7213F370 +:10626000DF8EF6EF54B520AE1BF4F02B11673F071D +:106270009A6E033CEAC67B31A235BDF03CFC3BDDA7 +:106280007692EAF7F52BDEFD50609EFAF392BB6141 +:106290001F6586AD64AB0FF80CF875B3CF4EF936B9 +:1062A0005F2AE57FE27350BAC59747E9CF7C2E2A73 +:1062B000DFEA2BA6FC833E37E503BE324AB7F93C42 +:1062C000F47DBBAF92F28FF8BC94EEF02DA5F4579D +:1062D000BE462AFF35ECFF31FF1B9F9FD2765F330E +:1062E0007D7FD2D74AF95DBE2D94FFAD2F40E96E78 +:1062F000DF0E4A7FEF6BA7F23DBEDD94DFEB0B5262 +:106300003EE8EBA4FC3E5F17E50FF80E51FE055F7B +:1063100037A59DBEE394BEE4EBA1F2977DBD943F0B +:1063200029CEFB360F53C4796834BD33E899944BBA +:10633000FB3DF9FDCD4CEF665C37F99E857CB722BD +:106340007C3F10BE0E1F88FEB549FC5D0AEDB29C75 +:106350006D78EF33F4AE84631BEE0D1F10E3F4BDD4 +:106360005321ECEB25821EE5BB15F25EC012C1077E +:1063700045488F79448F2F5FCA7E47EE935333BCD5 +:106380008F0F83B46E90C94FFE81681E573B31C397 +:10639000DB8EDF6BA31B2DDC3C75D1F7722BF70F67 +:1063A000F5BCA8BAB639CE3D5E83B81F7DCEF2BD2E +:1063B00027D251FF94FD5BA5FB2EAF683195E8070E +:1063C000D927F0B06F98C990BE98E1E94078DECF48 +:1063D0006E3CF67367288EF76ADC6203BF5730079E +:1063E000C58BCF61EEE7F109C06BC0D0C3FC75CCA3 +:1063F0004FE9C34EEF4BB87EF360838079EF782B83 +:10640000BD8F596EE57C110EC7EBC3B8FDFDFA30A8 +:1064100093213D96E1791DE1389AED7EE416A8922C +:106420008E71DDC9A85F7B1E4438BE78F693634A3F +:106430006608BFD20F717BA9B87F74B322F6FFFD47 +:10644000E2E8A9BCFABBDC0F331FF65B789F4DC6B0 +:10645000C99F6ED4482E629C3DFA694F377E37172C +:10646000E10F978FD5F8EE4721C6EBDB787F6FC53C +:10647000503C94BC2F510D1638EEEB6232A59FA311 +:106480003B3A99C3E3C6FBB737EEB1927C04BAE856 +:106490002139354EA578EB574C811C7C1F6EA389A2 +:1064A000AFBFFF251E076DB67BA85DEDD6F89174D2 +:1064B0008F06E804FD5AC5051C5F920E5688FBF74F +:1064C00072FD81BEBEC1FE3FFEDDD83CA48386BD09 +:1064D000E3E85E5A9349C4598BFE112E9C871A57E4 +:1064E00040EFB095A3F180F4372E86EE0D77A86CBF +:1064F000F5CEB3C8CB8C024E47AFA4F277FC9A041A +:106500001FCAF281059CAE068A7AE5FB5EA47799E4 +:1065100056746A2EF427B3D1DD057AFF4C1FDDAE29 +:10652000FE535A966E1E0DBBDFE1E7E7ACBB60760B +:106530000C0717D755BE5F2CC7D1D08F81CA25C98C +:106540007CB26FDF908178E27A41D29F6A89F13E16 +:1065500014AD9F471FFD3B0B04FDA3DD3FCBEA8835 +:10656000BB0E40EF0614E2BEC5FB3F767AF763012F +:106570007351BA8879285D026484F4EEF1DF63C157 +:1065800073D13AD64EDF57142F1C8CF906D633251B +:1065900015FABBA679EDF3A900CA9CD67BA6A60185 +:1065A000DCB30335CF635AB15D3986E780C03F85E0 +:1065B00005E8EF511A375C86E721BF2EDD80F755DD +:1065C00066093F05D09D5B453D9AE5EAF6C3FA1D95 +:1065D000BD279FFCC7C5058AE01B7731B6AF5EC7F4 +:1065E000E94CDEFBEEE39FE2654706E25999B98785 +:1065F000DE9F6CD86B4D403AACC31DA6AAB713A55D +:10660000BEE676C232B013B01EBEAB47EF53BE1D1E +:1066100041F7EA3F5060210AFBF387B43B57A9DCFE +:106620002FF72F134C49C57DF4BD8497A5B6C0083C +:10663000C40BE8E90AC477DD7BEDB78F443FE0A4E3 +:10664000C060B45FB55F595D4D4E83DCA7779DA4F4 +:106650009FEF6E8DFBCDC2E10D87C36A617EBCC723 +:10666000A414BFF025DA192027B87C38CCE15FA547 +:106670007A53F1E210DA2F749F30DD43FE02966206 +:1066800073F177288DE3AF17E376FE2FF75BCB7BB3 +:1066900065E17028763E5E3F7822393C52FFF487F0 +:1066A00087AF8384E707055C7EB0C16E9AF75AD343 +:1066B000DAF495A8CFC64714E251D02CB3F7FB8883 +:1066C000BFD722B87F4CFAC3E43E977DD394CECF98 +:1066D000A18286F78B58985FC963B36BB81EB32449 +:1066E000FF146B06FEE9F33B9518FD4EB3998BF44E +:1066F000423E7B4BE289FC4DFF071713B47E40649A +:1067000000000000000000001F8B080000000000D7 +:10671000000B8BE46060F8518FC093D1F8E8F83B30 +:106720009A7C2E0B7EF5847006507F3210C7017163 +:1067300024108700B13F107B01B12B10E7B131303D +:106740006402710A10C70371141087027100107B74 +:10675000B321CCB16167607066C76FD772364CB138 +:106760008F5C08B62727657E19C5431F73F031304B +:10677000B0F023F87DFCA8F29C7C08768130657629 +:10678000D503F503000ADD9FC4800300000000006C +:1067900000000000000000001F8B08000000000047 +:1067A000000BDD7D0B7855D595F03E8FFBCCCDCD24 +:1067B000C9FBE60527214050C04B40888AF60001FE +:1067C000E37CFCED45AD467FB41704893C24222AC6 +:1067D0009DB1934312428054A3A246447AA188D823 +:1067E000919988CF3AE87F115BB1D53675B0BE5B21 +:1067F000AC1DEB032983B5D2FE769CB5D6DEFBE655 +:106800009E939B87B6F3FDFF3750BBD9E7ECC77A61 +:10681000EDB5D65E7BED737DFE5CA68E66EC0BFC63 +:10682000F335C6F234C6D899FDA5F9F75ABC7722DC +:10683000FC9B45189BCED8E800FCD3646C4EEBDE85 +:106840000FC64F636C577B95EA837A1953182B64F4 +:106850006C67675590417BB535527A14CA9D955641 +:10686000DE05D0EEFBEB59D436711CA6B222C62A47 +:10687000FD7C1CC66C86F5D18CD777B55F98C3427A +:1068800050EFEAF80F6D723F5CB21C6BAB2CE9A7BE +:1068900071D8170CFBE97F385A23EA958C11A8852B +:1068A000F87FE57C5CD1F6B9B71F2078BFDFA9324D +:1068B0001F1B08C7AEAED904E72E9B45F1A5840384 +:1068C000E1B3A6F7C3F765E121FC009E3358B7CAD0 +:1068D00090A6B6F58B088C572BC663FA5C3596CD1F +:1068E000D8E696C439D563196B6BB1CFA9F630D60B +:1068F000D9D24965574B373DDFD0D243F5CD7AC267 +:106900006F005C7A08DAA5CD1B30A17D4D7F3D3B41 +:10691000DAEDA8B36405F14F13F87A0B7A1CEFB3E4 +:106920006A128EFA9AECD97EC47F430B63960FE10C +:10693000F1537986A1BEE303BE6CF2442331207685 +:106940006DE8EAF90CEA81B0FD9A0FE8D79EED35C3 +:106950005B01EF09C6BC0FF0F94FC6CEF31F453AF5 +:106960001ED67F7314E6AE81BF5F54413BBD210F3D +:10697000F13883F1E7FDF462AC00E03C8F4938E187 +:106980007D1A5CE7D5A836CE3FC1D5EFBC90779194 +:106990001A66CC3FCA8AC470BEEEB47E30DF79C6B8 +:1069A000252B14E8C74EA5F5ABEAE7CFB61683F062 +:1069B000DBDE52C3ACF18CED83BA09E5F6BF688D1E +:1069C0005CFEB9BC1842FED7CC5219037C6F3B6009 +:1069D000EE6230FFED28FFB05EEE031EE173FB7E3A +:1069E00096B85FA17EA54D058CF52C2AAADD0CFD7D +:1069F000CEA807FA019C3D4AF21D06CFEDB95E1301 +:106A0000DBEDD3FB2EC47A4F3C4FB5A13EA11EE86F +:106A100007ED26C555BB78F240B981E7EF8C87F7C3 +:106A2000DB3DCC8AC17CDDB7B1442BF4ABB5801F14 +:106A3000D8EF541133F381FED7DDF8910FC6BDAD09 +:106A4000D16BFA2AFBF960C15FC4FF367DDD270AEE +:106A5000F4AFBEC26BE2BCC3F1A3AC29ED3DF2239F +:106A60003E083F1A811F9333F06121F0213C381F0B +:106A7000DCE59696047B17687A4B4B84F8D2D56296 +:106A800052B909F904FCEAC0A62503D7E566953595 +:106A9000F5821C6C0EB2A6FD280F91DA8CED64C94C +:106AA000D87AE2DF2DC8BFB3092C8BD5319683BCD1 +:106AB0002FA57A32580DF37B52750B55CC6625D530 +:106AC000DE66804FF6C4FE7A16B4BF25C0EBBF6207 +:106AD000DB2D7B667FFDB8BDD55197EFBB3C7D4973 +:106AE000750A6307D895D6C480637C0BC74F87CFE0 +:106AF0009F61BCAE00874F59DF6DD9005FB7D21DD3 +:106B00006163805E0A606F307608FAD5D7D1B854D9 +:106B1000DF73FB22FBB9B3FAE779D35E64DB40AFE6 +:106B2000452CF623A4FF8C3A184DC579938D0CE0C3 +:106B3000FA29F68779B267F2797ECAB6586D7A3F3C +:106B40005D7E696FB0715EA9D735CE62A6D97E5BD6 +:106B50000BA35D38955441DEB47C66A0DD60913CAA +:106B6000C6607ED5B018EA09C90FCDD0DF4B5FF7FC +:106B700029B910ED07E7236F07F0BF4DF047D9E5BE +:106B800008FF8FF015F077F6D9753F9F09F307FAE4 +:106B90003C51B40381897CBDE658DE042EE130D23D +:106BA00019A6087FAEB1B341649E46A1877172EA0F +:106BB0004A59221D1EBD3B827A5B8E0BF37D944E9B +:106BC0002FA87F3CD4FC3ACE6F0E9C4F9F08758453 +:106BD000A71AE0A91C386F5720DA88FA6D766DDDA8 +:106BE00037188D3356F529FDFDB2AD71A48FA20A79 +:106BF000D747211C3F0D8F10CE9387F6C139AE1CAD +:106C00000FE8C2504F0470BC021C8FC321C791FD16 +:106C1000E578EE7140E222B14943F1FFB5A40AE301 +:106C20006A735CFCB746C8FFFFA6713FD1B91CACC4 +:106C30009DE54DA01E24D39F37105F899F1BEFB5A4 +:106C40002FDD11413EA36A433A497EFE51F493F38E +:106C5000BBF939D27965FF81F36A25AC6AE0BC6E75 +:106C60007807C8EF08D751D1A909CC9A0AAA1FF50D +:106C700003B46F5D1E642817DDF52C8172D77D7813 +:106C80002EF94977A9EC05946BFB650FBB1FA6BED7 +:106C90000BF52EAE2D7B1AF5DB166625174E1C5C08 +:106CA000EFDE0B7E86ED437DC5C8DEDE05F504D440 +:106CB000CBBA75B27F7735E60516C13CDD1E781F6D +:106CC000A2E7EF1403D2459715F0E701FEBC1CDBE9 +:106CD000C3F3BB178AF6D97CBC726C0FE3145FC197 +:106CE000DB97AF54999D66C7DC70E57AD9A2580648 +:106CF0007837282AD1E509618FB6A13D0238738320 +:106D0000C622A48BD1EA3577015D6E9B5B54BA181D +:106D1000FA3F3BB748F90DCCB743E1FEF17661CFBE +:106D200052F3341B0A3AAD4F78924A3897B16F2B21 +:106D3000CC6A063EE51E4D5C86FAB973FD01E6039A +:106D4000FA94D5431D3CD3BAF073EC79AA33D2D769 +:106D5000BB95D749FFCEF0B33790FE3360FDB60147 +:106D6000FD67E8CD5A330A935D90D1EEED7CDBDF11 +:106D700098807967B477F45D44C293203EC8F77574 +:106D80006F81BCA4D1E70981E73681F735280F6907 +:106D9000EBD1C07FC2BC06AEC7C9E4FFCFD2911E03 +:106DA000EF32D2733B37DCD886F4C97D8B4535652D +:106DB000203C46BD735DCED09DF8FCADF058C4AC10 +:106DC000EF2985838F37D08EC41FC0F633849ECEC3 +:106DD000ADB7B5F8C421F1BE1CFD3DE37C46F665B8 +:106DE000B0F1DDF8DE21E809F33D9669BEFF2E7AA9 +:106DF000CC08C1B8057FFDB8B96FB9F4CB08E90B71 +:106E00002B94C601F74A477BDA5FB718AFDB03FD67 +:106E1000C274FD5FC0F7895A4190EC805600744DF2 +:106E2000C34FF6F37A19ED6351F6102EFA0320EAF8 +:106E3000E5D1EFA3EFF33BC54BEDF408B727BF5205 +:106E4000E3BF53108EF94CC77D534074F1C0780AEC +:106E5000D8436F694D0EC941A820A31EED6CE959B6 +:106E6000A0A7ADF34EA1B724DDBC552C918F74FCC7 +:106E7000FC2AF3C249838FE3A6579B27FA5A1CF5D5 +:106E80006CA1377A3F1B1C1F45F5D23C7A8197E4F1 +:106E900012F051D4C281F8F88D1843FBD1963D6EA3 +:106EA000487CDA053E6EBEB74BBC4608FF60EFDBA0 +:106EB0003D566411EE87B233E3E541BC80EE152AFE +:106EC000E79327E4253E790A6C8670037E156A06EF +:106ED0007E31166368FFDCF8E9065FAF727EDDBFC6 +:106EE00063819EDF0FE769AAC1E749C111A571342B +:106EF0008351BFB01A3F0DE703F9EB23F90B590497 +:106F0000873702039C81A5D56883FCB61F3C8B4D57 +:106F1000C47EA1285B09A5371467F3A15DBBDC57CC +:106F2000164C73AC93B1AAEAA0939B6E25C20ECB0C +:106F3000FAB6945C39F9BFED1A2FD5DB0BA3DF4706 +:106F40005ACE11F2E0A60FD06D8E9A36BE6E707AD0 +:106F50006EBB46D06B49E6755CE2BFD7412F5AB095 +:106F6000B02E73C4B85B22AC5BCBC1FD13DF1F56E0 +:106F70009AEC59DD04BA99899E45F07E23E3788C1A +:106F80000EC42F423A7AD46EE6477F77269F5FCAB7 +:106F9000D55CED453FDACFAE6855CE6228BFAD2A4D +:106FA00019E56807F80BFA58B0BB2D7E8672FAD93E +:106FB000DBE309FEC1E4ED8E16BF637DDEB14E6FEB +:106FC00040FD76C7FCDFDC763EA0BCA1A0BA96747B +:106FD0008CA5E8885700E90EF0AF10F3EFF8F68DB6 +:106FE00052EE5620FDA41C4A79ABB42C0BE31B6077 +:106FF0003519EEAFB3DB59346972DAE8697492F48B +:10700000013AAC453A840D361BE70D4CB393584A10 +:107010003A744555E2E79A33C7EDD22AFBE17E4C3C +:10702000C80B2BCFE372AA47695F32D8FABB05E8D9 +:107030003491D671B782ED4AEA5802E5B7533C3F26 +:10704000538DB5231C254B120AE2738FF0C764FCE5 +:10705000AF5DC07DCBD9DC0F6CAF3076223CB74A38 +:10706000389A04BDFAE5EB56D23B822E52BE4AEA6C +:107070002C7497D97A6FFC0E7CAF55371BA887828A +:107080004ADCF256A29F25E4DA667D38AFA1B0FE55 +:107090003F306F3862EE427DF07D95EF738C9A8EB3 +:1070A000EB30FE9353AE133D8DA38B282EE57DEB85 +:1070B000028AA3C0738ABB9458DD4C013E9446D823 +:1070C00041A4EFF5DEF8F789EE13DA93C40F66D921 +:1070D00038FF773D16A338DBCCB885FBAD1DDF9EAE +:1070E000CE16A5C9D3A388EF99A40FAC44A89FAF2F +:1070F000B76A5C4EB64C3CE95F16C27641A24B259E +:107100009B661913F1553449FB36210FC0F7471020 +:107110007FFFCCA334BF6970F840DE8B914EDFF562 +:10712000F445108EEF7EDBDB98E0F43842F455F93D +:107130003CF09F89F4F1AB1C867F543D5C6FCD63BE +:10714000B4AF088558027D77AD81D32D3BC21216AE +:10715000EEEF905E69F40920BDA034CCA84D2AAFB3 +:10716000FA44B2DA24FA3C8FF085996DA11ED1431E +:10717000DD4C83E777E8CDBFFE0E8C7FC7612D6ABB +:10718000B334F96351DA6F483A15CC877596691FA5 +:1071900027DA0FEF1F703F400F713B26ED02C8E961 +:1071A000EB08976E70391DA9FDF1AED3CCDFA2DEDE +:1071B000D20D8AE7E9C257E83016DB489F4F91C6E7 +:1071C000401FAD7B0AF109C49EEC110282FB4BAF5C +:1071D000612528568276707ABF1FE2AF5659320D6C +:1071E0004F4F79D01117668D405698EF06F1CCBB02 +:1071F000CE4B70E8601778D05AFA3B5E1A07A7F8B2 +:10720000620CD6FF81E691FDF4104B06804F9BAADD +:107210006B593C6D5FAB633F6883DB0C1EB773F645 +:107220001B9C2EAEF92E76C239E27E21DD7C2F2DFD +:107230009E37783F9DBD27E904C433908069FEDD09 +:10724000460F7B5201FBD956DE416225ED848CF35B +:10725000B1B8EAB05F5A398FA7FE4A35B97D13FB42 +:107260005A1FBB2449EB6384FBDC2C975D7D5B8953 +:107270008FD3D2FC1C6FE9E1483ABDA53FC9265E19 +:107280004CFDBAA6DC9854503EAA8C29241342BE69 +:10729000BA5C74841D34C1B909F78163D14F682683 +:1072A0007D18A88E133FFD663795BE725BF813FC00 +:1072B0007D4A6E27727BDC11E5E7135E7F92F45402 +:1072C000A8FB20D31CF21A671767239DF8F9C4BDE9 +:1072D0005072B948D0FC3E33E89057298F72FCE1D8 +:1072E000D7A5B01F6FF9685D16F4AFCBF95ABAFD98 +:1072F00090FE49EC62CEBF23354497FBC539C4C02C +:10730000F1397D3E83B1FB90BE7A9CCE93F66C5DE5 +:107310001C447CF7F45C9893CE0777790FD8B1249E +:107320006CBC76821F80E5BD2D0695F2FDBDE87729 +:1073300041FFEDC2AEC9E7FFAA71FBD5A6717BB2D2 +:10734000C71F0B225DD9A1CBFE6E0290A4FA88164E +:1073500045992BBBAD3777A8F931AE904E57A62D86 +:107360001C12DE756F952C782E3D9EA36517BC7799 +:107370003AC30DE00C5C1FC3F5FFAC25B2E039CF7A +:107380005F4F97EDC8BF52A4C3FEF536D23DF93525 +:10739000D21F55629D957432B227D56BB93D619F5E +:1073A0007FC1DFA7CEF1ACD022A88F65BCBEA7738A +:1073B000F166D4A715AF684C05B91B2BEC31DBCABD +:1073C000E3FE7EF88B7A8242E930EE98252C918498 +:1073D0007663BA9DE70B25ACEB3FD0CFAF6069E792 +:1073E0000895287717D0F95289EBDCA15C873D6EB0 +:1073F000ED5FCF87FBFF1FF1E15EBD3760A4F52F86 +:1074000053588CE25DAB7EAB2C4E93D7A7849CB2D5 +:107410007521F66E9ADEDDAEF4E6A251DAB9526D50 +:10742000E07E49EF0BE368FF74F4BCCD0CCFA16E96 +:10743000FCFDD3E8DF16BE7F1EDAF1E7B52C3E4E29 +:107440000373F86D721EF0DF9EC7F52CFDDB9DED1A +:1074500017927EBAF7F3EB0F7A806F63D7B2682B7F +:10746000F19F1DC1F32953F0DF14FCAEDFCAF95BB5 +:10747000D5C51274FE643BF95FB5C456BC38CE3A2C +:1074800016C5BE639A18F929D50BC14F01142BD626 +:1074900039CFFFAAB73AE5A358F82FC52EF93041E6 +:1074A0000EF2410EAABBE39B71FE92231AF71D5CFC +:1074B000F38F357B2FA0F9405E1264D7D3C6D1502D +:1074C000BEA2ADC80FB75C16A35C4E1E38EF5F2B93 +:1074D000777F40B9CBEA97BB4F5968F15EA86EEB56 +:1074E00098FFF238226E4C4DF7EFA5DCE9CCFA3369 +:1074F000F289C546E6078DB85DB25CA5737F81FB56 +:10750000AC3591209EEB6FF71A3FC1F374FB971ACD +:10751000437BB37D4D69693A9E3B3D5CBFEE0CF009 +:1075200032A273792DC24D1794A5BA888786595314 +:10753000BA1EEE9FBF55C481783C68FC29707CF26E +:10754000D3EB5E575D67C9A9E9F5B0A8733CDA4B88 +:10755000F8BEDD2C65143790F37464C79841FE576C +:1075600035D925793E7E28779E1FF16C0FD5E670C0 +:10757000FFCC54D3CFCFDB4355C52C0D5F791E39DB +:10758000183DDDE791A6D78AE442D99E3B8FE21EE3 +:107590006698FB0D67EA625F01CF30BE3BB3DD68E2 +:1075A0006D0559DECAACE97A21EF87F06A86B70A21 +:1075B000F7D1D0CE4A64A05FA5CEF71DB010FEEC87 +:1075C0003C670D19A4D7847CB3D0C8FCA30A3D7EC8 +:1075D00001CE6FCF66E4E7D8552CD186EBB939EEF2 +:1075E00088D341BBAFEB67523B1BF7BDA976F1389F +:1075F0004B9D0BF17617897696A35D6C40BB4631A7 +:107600002F73CC6B0D98F70A091F4B1F2F3A60BCE4 +:10761000C5A21DF9FBA976E680F196897696A39D11 +:1076200031A0DD4A810773CCCB9CF3A6DE8FF28AB2 +:10763000F731DA276D28BCC44FFB97F72B1CF2E714 +:10764000E6C3B3855C1E9F2B9CD780F272FD0B1E98 +:10765000CA633958E89453D9BEAD85D5AD1C8BFBB0 +:107660007A9BE7958476D13CF279AA5D689791F987 +:10767000F9E241DA2F16EDFD740E3098DCB4097989 +:107680006F13F2EE7E7F52ACFFCE1AB52193FCFE53 +:1076900045BC677A8CE219DE1AFB9C8919CE6BFE19 +:1076A0007FC7F3B8D07B9D35ADDDB361ABF7707BA1 +:1076B000632BC6B936456EEF9E05F557ECC6D67AF4 +:1076C000E57F1E9E3FD39739F07C8A2D6BADAFFCD2 +:1076D0009F87E747ED3738F0FC9E7DC39078CAB8A6 +:1076E000967BDC3F0ABDBFD11323FDBEA1F0C608C7 +:1076F000C2BB41E455843C75ADEBA13E89C5FF8416 +:107700007A6923FCD787FE9D6E921D1AAE9F7F82F9 +:107710001EC375B629C2FD4239EF569DEF7B6479D1 +:10772000270669018E40894E7E182BF426C60A7CF6 +:10773000F09C62BF6E70BB2CF0FBB9AB7E4C371C6B +:10774000EB16FEF167F48FF09C8CC7335CF647E8CC +:10775000C7BB73857DCE638EB87C7B764245BCE625 +:10776000B436F23C3261A78B044D0F5D716300F5B6 +:10777000DFDD8D99ED34781ED4DE2BEA1B421776BF +:1077800056621CF5250FD56F6FE1F96D1B84FD96D0 +:10779000FE8E1C7F56EB3A1AFF50E18D9BC642BF0E +:1077A00093E04762B30E21271D83C8C90F3D5C4E8D +:1077B000FE15C6C73CB2C740EEB0DC0DF538948F5D +:1077C000403D0E03FD1FF0FFE3347F849E7FB7C56D +:1077D000A4F21E80079F1F6C89527D6F4B1DD577C9 +:1077E000E1FE01EAFF24F60FD5C754B2FF7B5AD859 +:1077F00059E85A6D6DF153B9A9C5A0F2872D91B31F +:10780000302EBEA3C5A4FA2D2D35546E698952D9E8 +:10781000D6524765BD7261BD879FBBA901C073DBAE +:10782000EDD594AF36F5984EE3333D7A2834ADFF6D +:10783000B9C4B35E997D01F6FBDA0995C741FD270E +:107840000EE5646EF7750FC6254FE8BC5D28662906 +:107850000519DB5D84EDB28F70BC98D1676999C75B +:107860006BC4794B8E08F80ABA6779338F7705B6FF +:107870009BF59A802F62D41B99DB2DC67635AF0914 +:10788000F8CA6D359879DE65D82E2FCF5E4479869B +:107890002CD6EA8776C50B8D3CDC5FE5E5DBD7F1BE +:1078A000E7D6213FEEBB0AF8F37C6C4FF2C99EC3CA +:1078B00071B3A789E7D87E22F717B2A661BC478CBF +:1078C000E3E5E3DF7905F71B8A1A8D5D7E10A95B7E +:1078D000B15E80F3993BB19EE7E3F31516C59802BC +:1078E000EBADA820AE28305E0ED45558AFC505CDFF +:1078F0008A0AF57C2F9FFFCEE97D4C81E745D3A016 +:107900001DF4BB15EA2AF42B9E06EDA09EEFE3F0D2 +:107910001496C5A95DB738EFCF298BAF473FCDDBB4 +:10792000682AB834EE11F900C5113EFEF8C678ABEE +:107930000716F9382FB3BE09EFBBAF63E4BFDEEA29 +:10794000796936E6831534727DF4B4A774CEFA6A89 +:1079500080BB94C571FD6C1A3BAE04E3EA7965AC5B +:1079600019EB81713513B09E5FCAE36B9BC69D5DB9 +:1079700082F91AF9F87E22E911DB807D5D60FCCC8A +:10798000098B86D857C9F29317E7501C3DBF416554 +:10799000D650F91E96F3FC7AF4C2A307119F3F78E4 +:1079A000383EF7087C1EF4BC3E1BF3ECC20B393E9C +:1079B0006F6EF0727C467178B74C12F88CE6F06608 +:1079C0004D16F88CE2F86E992CF019CDF12D11F8C6 +:1079D000649DC1F1F944B78A8D0CFE901BFED2253F +:1079E000CE737CD3DB5C42E74D575E9D5C0A75EF3E +:1079F0005E0EDFEC8ECDADAD00DF86594CC7B8EA28 +:107A000006B11F33FCAC13E745FAE0B9DA360FF7DD +:107A1000B7245FF27EEBB5F333E45FCB52F22BEF8A +:107A2000B7FE77B09DE457FE6F83767E78F07E9246 +:107A30008FF9BF0DBD933EBE1BBF0CFC487AC0BE84 +:107A400066777CACDE09EB71D44226F220FF3C7BEA +:107A500056F540FEDCBD94E37BB7C0B744E20BF4BF +:107A6000CD03B8F74B7C05DFF242C3E02BF8991742 +:107A700012F80A7EE68786C157F0393FE4C4F787DB +:107A80001E6E6787E36B9BC0A34DECA7C12C0F8DC7 +:107A900047748478445D7844478847F4ABE17117B4 +:107AA000E29103A5C8C72A09011E7943E0617887DE +:107AB00084278587017884D3F0308243E29FC2C354 +:107AC00008BD933EFE48F1E810EBA843F0C310FC5C +:107AD00090E3B8D7D1E6094EFD163CCDA9DF369F1D +:107AE000C6F5C1369CBFB07F7D044FE7FA20B56E66 +:107AF000B3B9DF6808BA0D36DF531F38E73BFB43E5 +:107B0000E77C4F7D9879BEB33FE2F3FDADE205B966 +:107B10009EF837BC623FAEA5EF8B9B2DC7BE18DA2F +:107B20005D2CDAD95AFA3E3BEECCFF817697794547 +:107B3000BCC0D12E36A0DD95623CE698D71A30EF56 +:107B400055623CCA1BED8F170C18AF49C2A7A68F10 +:107B5000670E186F95686739DA1903DAAD11F332D9 +:107B6000C7BC03F29DAE1BD1F99DB1C4EB8837862B +:107B7000677A1DE78EFE6A675D9E1352BDB27F3E37 +:107B8000399E3C0763F19889F07464C75FC3BCC336 +:107B90006E6FFD9C023C77CA656457BA3BFEAE0D22 +:107BA000F3C475B6667402F0F0D7E82C81E389F36C +:107BB000231415A443A05CA7B8FE068FC5F0A83E09 +:107BC000501DA5F8710A4FD15EC6430693273DC2EA +:107BD000CF7FF548671F2FF9793E5BA8B8F359EEC0 +:107BE00043FAFA588C61DEBBCC3718F1B9D688CF8E +:107BF000BF588D0EF8DDC482513C0FAED4E20FE1C8 +:107C0000BCEBEAD731DC4279EB9BBFD56EE2715C0D +:107C1000B382C4308A79DE16BBCA1FC5FC5863CE56 +:107C20004C3A4F6C2B74EE073FF2F2F57CC0AB512F +:107C30006964F175CCFC76C98234FA50D2377F7F03 +:107C40001DF2E74F1D4B0F75D6413D874D51C06F5B +:107C5000B9CD5839A701F030C688FEE583F41FC3BB +:107C60001EC6F6C7BD8B0FE9C0776334233BFA69A4 +:107C7000C7CDC45F633CD70F6C9AB9B31DE0EFB9B1 +:107C8000A2680AFAC3F95F5F5789FA2235CEE95C28 +:107C90002E3EC37ED83ECEF381E4F9F8E840BC0F17 +:107CA000E9136EE84E62CAB31692793E22EF4BE4B6 +:107CB000B3B9E9FD8A97EFA3545FFFBEB2A300CF2B +:107CC00031FC51F493619E78FA393CCCF336AEC363 +:107CD000E1E699AB4DCCF94D1ADDDF13F3C87A8795 +:107CE000C82392F5BB2B5882F2CC251C5180635AD5 +:107CF0003F1CC7BC621F1CB24B68BD1B5066F7B768 +:107D0000EF9EF38F0AF2FB02357E12E16391B89E7B +:107D10004E1F7F439CCEAB53E317441DE3A79E4702 +:107D2000F8F8A97A03AF839B4AF26ECC5948F10F59 +:107D3000BD9EE731B24667BE976E34CBBC25D557A2 +:107D400038306FE97CCDD27CB40F2C37E81C8239F7 +:107D5000F7E9321F67719D18909997BE0974BDE6C7 +:107D6000B087113F3E87D669FCF8CDBB3CAFE41A23 +:107D7000714EB384C5C2F8F263A636A05C7ECC5EB9 +:107D80000E4F4DF37747FB449E5AA787CE5B6CF8A6 +:107D90008B766869B7C771FEB2ACC759BF9A5D5898 +:107DA00084EBF1EAAD1E3AC7B9C6752E93E3E3FC46 +:107DB00059C69A3BD04FDE20ECF76283E9F960D2D6 +:107DC000563D71DF74B493E37C3C0EF221EEDBD3BD +:107DD000E2F9CB4309AF05EFDF7D74EA25E730EC2C +:107DE0009FE828453D9FCB683DBBE5F6AA4E277C22 +:107DF000C3C1EF86579E7F0C0687BE57B1D2E338CA +:107E0000B29C26D6A3E4D73A7F7832269B7D16E033 +:107E1000652A0EFDAB00D99D0B31399BDA37CFE0D7 +:107E200076AAF90C2C87EB7709F63B7360BF4D05FA +:107E3000DD319443998FE1F737539C45D163A4F723 +:107E4000374586795F0EEFB521DE570FDD1FE4EF72 +:107E50008B2FA6337EC793E24D3C1F09F3DB305EC8 +:107E6000D2E6897D03F7CF6DAF680C139DDA3CCD68 +:107E700064A7EC0A66A25EF055F3F7BE235A815A56 +:107E8000298418EA1D250DBB31DFEC0A9F47C4BBCE +:107E9000A264AF7D21DBB2300EE4894772812FDE10 +:107EA0007FE47ED6AC503C8EFDB448A307CF3D9F07 +:107EB0007FE8AA46AC2F8FCCD391454D629C8F7F33 +:107EC000F0F07406F075ECCB66498AB324BC18C791 +:107ED0005AFEA846718D15FF924DF32FDFBF6CCF70 +:107EE0007C184779E25CF33DB29F6DC4B7E58F5FC4 +:107EF000F4735BE0E3073AB4AD17F97A76347211A4 +:107F0000745DE563DFC2F880C45FCA89DFECA67CDC +:107F1000A6E57B7329CF31255F3AB487FE3E28332F +:107F2000DDD7E812EBE358B697F2C195BD07AF2451 +:107F3000F87A2FF5205E4A7933FB77986FBDCF230F +:107F4000DBD1BD24FB41253116DE1F7B70A7B76A4C +:107F500012CEBBD3BB98FC9DF5440709A77FEF6DFC +:107F600036AE2B7FB551852C9EF32FFBC218F75BE5 +:107F7000BD574B625E1F9474FF3460BACE59991599 +:107F80005280EFD7924A82F2D155A477AEEDDD420E +:107F9000F903AB9F74AE37A06B340970AF78558B83 +:107FA000CEC7FA230F844D80E7C3BEFBC3487F983A +:107FB000679117E4DE6338CF7D71FC537903C763A3 +:107FC000EC8417E56C75EF263E9F6B3D7F88FF289C +:107FD0001978DEBBDFE73CEF657BF347E45FAFD8A2 +:107FE000F7E90E1BE63BB6FFA31D9867BCF23F3FC7 +:107FF000D9F10F18AF7D2660A03E5AFD837FDFF1D7 +:10800000F740C78F9FF4A92817C79F7E60CF36A877 +:108010001F7F7D7CAD02F59F0A3D71FCE13F159904 +:1080200030CEDAA7E71623DE6B1F9BE338D77497B1 +:10803000C75BF8BD9C7E7812FC9EF8930A1E86836F +:10804000E3224A173F0E3DAA318C2B7EFC9A8FF219 +:108050000056C3B375B5C89F55942780F59B81AE74 +:10806000D73EB491CED507D2D72E53235826CB3046 +:1080700015F5DA472FFAC6B9D3B0F450DEC06A76E8 +:1080800082F4BABBDFEA23C0C73306E7DBA7EC7391 +:108090002F26B9AC7E68139FD7C5B78FF11F670D28 +:1080A000E4DB073E677EC8A76CE5F7B6E1CB47F394 +:1080B00033FA8FF29C7ED563DF1C321FE0B86B9DD4 +:1080C0000E46DF26E1A73FE1B3FE8476FCD8FE7FB3 +:1080D000DAB3AD00F9EB8BCE477EEFFB741403B936 +:1080E00078DF73E24A5C7F279EF619782F69F9D30F +:1080F000AF92FD38FED82FBC26E96D1652C00F395D +:10810000CE527FFAD02FB956E195D5BBB393BE704E +:108110003F9FAE4D2C6830C3F49CFCEF6B135CDECC +:10812000AF4D1CBC58C9C0B7A8BF8ADB974421D14A +:1081300065D5EE37BDE25E7D8A9F4A1DF2F19D79DD +:10814000F87C303E4AFC0DC47F461A3F77F3753AFF +:10815000D87A3CBED3477107C9DFE3221F6D754251 +:1081600079956558A7A9BC832F99B771BADFB58EE9 +:1081700005BEC3ADE3E1F1F872742AC3C57EE640E3 +:108180007AAD2FF1D239B616F6D2FAEBF098AFE20B +:10819000D5BC132F78D82EE8D2169ECECC0C79E31E +:1081A000ED2DFCFC42D6F5508CE72F1718B5983F03 +:1081B000E4BE0FE2315466A6C1639CABC6329DEFAC +:1081C000822521FCEF127978B7CE544BF0AA81B109 +:1081D0003E427910C6EC5387C7509CBE80E7530AD5 +:1081E000BEE84CF8D9220F66303FE7AE0AB61DCB89 +:1081F0003B4BA03C63A0FF32DF1F5FECCFE0BFDC56 +:10820000A58876B9FCFEBEEE67FE20E8A93B951373 +:1082100087C7E0F3052AF97BF0BC339897D6FE2C8C +:1082200071DFDFB24C633ACF8BE5E74FF0A808FD72 +:1082300073F1E7B4A88DFE8D9735937FE2C77C1567 +:108240002883AC97CAEF88F512826588F51C76D42E +:10825000184B8325291E5028C62DF487B87F7FB17F +:108260007E2CFD7E7D806DA7780DA6837FE1B89F73 +:1082700061D3BDA9E1FAE35465F49101FEFD8C02DE +:108280000937EE2F8AC4569DF03218E25926DE16C1 +:10829000A3370578955A4905E1AE6047A93E1A41D2 +:1082A000D130A53ABE9E511C26A6209D03EC2DDAA6 +:1082B0005FA8B6AA7C71BA0BCEC27E3E32B1CFF6B1 +:1082C0008A7DB6E4F34DAAF57A1CEA3769CD4F1ED4 +:1082D000ADA4FDF7763FF6539B4FE0F3CFDE5E662D +:1082E000E2BE66ABF0F3B7663BF7D90FF8B9FD9382 +:1082F000E5D65CC1C76F0A3EEA316541DA7A20D023 +:10830000607FFB83CE6BEA697FAB733CDCCFE57C9F +:10831000BAC1CFB77CD5C6145A27712048DAFD8977 +:108320001FFAB91F353A10DB8F72182EB789F6B8CD +:108330002F3D9A61BDB8F7A5ED2D712A9FC3B58673 +:10834000F10EA31BD3E570FFFB0CC9751C16E67478 +:108350005C2F9C5F5F7E7C83EED3C0BA203FF74CDE +:10836000357E18E9EBC37B3D61CC4FE6F9BD9AC879 +:108370008396F16939CECB7EBE9F96A5CC03D6F30A +:108380001A6A76025DBA6745385D588CE212FFE6DC +:108390004FE57BD07EF64E45C4DB14BF5857CC3436 +:1083A0008AFAD795E6B76893E90144B1F4A1DC688D +:1083B0002857092AB370BD801CFE01D713CC9FCD6E +:1083C0008EF66F4A61FE9C887727FAF33A1048CB05 +:1083D000A33289A594137CEEC9E3E7C861288FFB1B +:1083E000F3781C0AEBB5B84F8E7D80748ED4F0F80C +:1083F0000E00A8D1B9B480AF48AEAF46E7FA4AC97B +:1084000063AE935E9F083AFD41C805CE8FFA65F0D2 +:10841000F53C20FEF439F2C71D7F420AF2FB6F1DC6 +:1084200095C82FE30CF61F2A7DE16663FD8B118A48 +:10843000EF3C8CF5B6F6F67A8A174DE5F2AC073AC2 +:10844000EB29FE3343C48FEA9CF1A3BC00873318A9 +:10845000E0F2C766F238445980C72574A399E21D3B +:10846000415167168F87A4EAF5BC7DAA3E91BFFFF4 +:108470000A718CB240E638467960A83886F04F2BF6 +:1084800052FACD196FAD10F761E66A21D20BDE26E4 +:108490009EBF5A6EEA36FA3D15662BBF3F23E4A90C +:1084A000F45C46F7F7E13DED4F64FFF2B5CEF86BB3 +:1084B000A0CE59CF1179A4A5AEB86C8EBCB7C4D2EA +:1084C000E2BBA83F855F22EFC10CE7979C1770F9CC +:1084D0002523CC637E59B1EA897EE25E4D5BAE33E3 +:1084E0002FC3EDC70C172F70DBD9B659535E2B0085 +:1084F000B92B7A6A2FC99DA6F7E2D515D693CDEF91 +:108500007F1CFCA697E2F7DB989FE70DBBD6FFA97F +:108510006BF87DB81D052CC11F1AF49DA62CF19E89 +:1085200019D67AF46BA5FE53E23FFE9342FCBA8E55 +:10853000F4801FF5C4987E3B1B6627A80CAC8C32D8 +:10854000BCE2FFECBAD9B9B8EFCC625D19D79F9401 +:108550008B936BB95CE8ECF41CAC47D6EA147F2A29 +:1085600089C7729208876DF5458AE84A11FDC905E9 +:10857000F14EBF0F95DFE04FDD41C27A61CC70D480 +:108580002B851C1537461CFD583BF75BF1FA173F4E +:10859000A789113D222B81669503F3E523429E4A6C +:1085A0009624496F97353BF7B511218711573FB78F +:1085B0003C7506C4BE07CC3FCA13D0219A9C4679AD +:1085C0003174DF5D3FEA23BA94025D900E2719975C +:1085D000838A45B03E2A07D243CA1BFC8FF6E3A329 +:1085E000609C24233BE3C037603AE99455E3A453ED +:1085F00076D4491F49B79C3AD3D14ED24D7E876A73 +:10860000303A9537F5AE477CBE2A9DF6C97527E806 +:10861000541602796028E7494531E9DE2EC9F90E82 +:1086200021EFC8407F9A7F25E9E296FB922690636E +:10863000D43F05CCC42B2B6C6236C59123829ECAD5 +:108640003A29E799FD4BB7BCEB0CE41DFD363FBF63 +:10865000079E857E19C9FBBB2CDD2FF3F8C376D6A8 +:10866000642CF97D0C1D1889F7E0E5BD3CD0C32FC3 +:1086700091BE78CB79FFD303702869E74CB2D474EC +:1086800066AA746731497A77BC688FFE334BC3772B +:108690003CDAD1C968BF389D9410C78F6D07BB9A6B +:1086A000764EA98BF39E91E2CD0C11BF43FB9A3518 +:1086B000707D8F467C01CFD1B64DFC366F06BF96DC +:1086C000E0B58EA0FC8E13F08D93F75A7A9CF70AD2 +:1086D000C6D89CDF555D4EF919B5D6799FA15CDCF3 +:1086E000632917F75CCA5DF759CA3C7D0AFA41DF76 +:1086F0005BCB285E597633BFEF366A2D3396A48D57 +:1087000053160F1B4B00FEDDF820439CE98B803392 +:108710005E71FD828B493F7DEFE6D97999EE49EF95 +:108720006989184BC6E2FD143F95D93DE6B318BFE1 +:10873000A9DCCEC7AC6C345433D42FA7F7B5003CBA +:108740001ECC5333A8BDB966EF840718F2259E13DB +:10875000047A8E6B8FCF427FAFB23DA6925DD72D4C +:108760002388F2D2CDCF93C7AF2B27F8C7AD1B45D7 +:10877000A5DBBE94FDE5895FCC83F94777AA51D884 +:1087800009B2D1A77C16FA4F147381FEA69D54300E +:108790008F654C90FB51EF06621538AFD96EAA1465 +:1087A0000B6EE2F74D07A39B7B3E793FECDE95FB1A +:1087B00069DE76A3C071AF6F97E0D18C20CFDB94D8 +:1087C000F7F3527E74A7BC9F67AAB84FAFEAAEA476 +:1087D0003C31F7FD3C95F138E632713FEFE781F827 +:1087E00074A28B91767FB4AAFF7E5ED9AAEA20D2CA +:1087F0006F97DF56830057D90D0C36948C4D480087 +:108800005E6972869FE0AA039427EC3E4A7E98C474 +:10881000B3DC1F32964C45FAC467137D6C6E0F5261 +:108820007412F7BE460BF9AEB999F1FB3BDD8CBE75 +:108830000335BAD36EC510C33CA1F77709BD0FEB62 +:1088400062FEA234BDBE2B6EE5611E93D4C352EF0F +:10885000823A14F6CA54D10F9870B3733D5409FD8F +:108860005AEDD2AF55422F57B99EBBF939216164F9 +:10887000E4AFC4DBBD2E1607859E2E6625989FFAB1 +:10888000299B593CD7EC9717799FCCED1FB9E3731F +:1088900072FC2949E7FC729CE1E2408A6E537CC677 +:1088A000136106FA763D85C22EB8E209293FA681FA +:1088B000DF1189807F84FA35323F4EF72D220D2C4F +:1088C0006A22FC5BB91EDEE4E5FD54BFAD607EA408 +:1088D000BFBCEF5C94E3D66088E0FE951A6B453927 +:1088E000C89FCFCF4FF2853D184A9FDA5ABF3E2D21 +:1088F0000CC6B7607FA9572B934CF5A6C52BA45E79 +:10890000977ADCADB7B3DCFA7784F9253E3D9E5CFF +:108910006C0EA40F806FA6DF8FDA5821EC4639B7B2 +:108920009BF7AED445DED8C5732DF8E7966F3E1C95 +:1089300029A48FF8B0A45107F50B147A7F38B86AD0 +:1089400003EE7FB62CE0F59782CB78FD3285F647B3 +:108950006F88F74011D2071E915FFC5961958DEB2E +:1089600065A3899040593EF47DC0B6169ECF2BDB9F +:10897000697A94EEF34A3DE373E57FE821E7B9872E +:10898000BE927F3F42EA1F7D25CF8BE828DFFFDACA +:10899000E269749F9D767B5E7F33DD73F2755F477E +:1089A000F777DC7AC82FF4D0D5A88714D243CF2329 +:1089B0005F35C3798F5DEAA14490F17B56D39AE984 +:1089C000A3653EB3593561FC9F054D7A2EE34852AD +:1089D000AFFF0CDBC3787E3DC6A2D0DED3D0CCD0B7 +:1089E0007EF8E68B384903BFFF973FDFA47B391E33 +:1089F00093919CBAE5F8B594DC5AAFA19E7C3328DC +:108A0000F68F2CAAF078208F571406636F23FC95FD +:108A100011F62C0F658F4C1EE9CF7411AFAB44FCDF +:108A20002D3654BCCEED570C90676364F924B778AB +:108A3000ADDCB9788EF7334F14E3B1C3EDA7A4BD15 +:108A400095F659DA5D69B72BB32A5DE7BABD2FA059 +:108A50001DFBAC56A5FC62397FD712D6C0BFEFC153 +:108A6000E5D827F6CA9F552C0E7A81D46696C6EFB4 +:108A7000438B7BAD522E8383DC5392F22CDB4B79FC +:108A800076B71BB11CD72CA6F5F4E976CE8FF1DDB5 +:108A9000D73D1BC86047E5B8EA403936B386B0A772 +:108AA000D705AD4A7C7F4B6DB4299601CEDC108F83 +:108AB00073DCBB726B00E5FB1EA457DABA0F668944 +:108AC000753F610DD16B9EA0D703DB9DF48A0C43EB +:108AD0002FD9FEAFA6575CD02BCAE935D8770186CF +:108AE000A0D7BCA1E8B539B6ABB30AF368E26A74A3 +:108AF0002CE0B335A626BF06F57B9AD487F03B3031 +:108B00009B63B303784F624FF4D9030ABC3F379499 +:108B1000CDE5C7481EC67676B54ADFBB6546770306 +:108B2000C2B9A7BC96BE3D9AF23BCBF9FD948DE548 +:108B30008B8357A5D1614FCFB38EEF2FEC71DDDF63 +:108B400097A53FA438CE23B62DE1718292384BE031 +:108B5000797EFD12BE8EC097A5EF17062C5E1F2FE3 +:108B6000BE93F2DC940EFA6EDDA6727EDC26FD9CCE +:108B70001E979F23E30CC16A95E2413D7130E1D01D +:108B8000CE732EF7C7B2C4BE00DE533C2838D1B92D +:108B90000FD0843FE3DBEE7A2EFC1F8FCBCF91ED1D +:108BA000B561F69DB9F547290EF69DAC945F331A71 +:108BB000FD9A6D3195F028013C5037752DED5650DA +:108BC0006F977CAE597CFD77472E9FD4EFDFDC9901 +:108BD000C5EF8F768978653469CCC150504E1D8FB2 +:108BE000674BFADE91C5E9DD25F2ACA7F5C5E66471 +:108BF0000FD54EC457EB8E76CF0967687791586FC3 +:108C00005D1E7EEFB26BAC37B11EF0EC52B87EB495 +:108C10005FF2C8EFB1105FF72C3576A2FCEC3F5C39 +:108C2000B58552F7E2269D4BED37E36A5568703DF6 +:108C3000795988C79BC735442D7E1E29C74B3EC432 +:108C4000BFEF928C2C047A2C0985A8DDFE20E80762 +:108C5000A253BCD4914717E2FEBFA4D3E3AF2DCEFD +:108C6000C2BC8A48B9499F50CF2B6F66783F42CE2D +:108C7000B7BF5CCCA79B5B26217E4B93D9E9F74B12 +:108C8000E47C8F0733EB235DCE27E8FDD4FBBB1CD0 +:108C9000F3F91A9CF3F996C07C08B7BF7BFDE46931 +:108CA00083CFF7D420F379253F04DF9E39F59B2C41 +:108CB000DC8F466A603E947F9C2F3470BE9253B71F +:108CC0002BD969EBF3AA10B7DBCF483AEAF1D20B04 +:108CD000D3F4D0CB423E1E88EDF25F65E2BD908EAC +:108CE00000CAF11E25E11F87766F8A4ADF15EDDA8B +:108CF0007E32897EEF0316F76B72EBEC5918B7C81A +:108D00000FF1F8FC03DB67533F45EF5E8FEB51EB50 +:108D100061F4BDA28D183FC0F324B73F2DFC4290F3 +:108D2000FF83B8EE47CD6794C716E969FEC904D43E +:108D300013EB54F2E3186CFFF5E9FDF1991E8F185F +:108D40004F9CAB49BFA244F8E743F8175126CFCD5B +:108D5000A8CECFD964FC86D55A4C19D37FAE21E377 +:108D600094F23C439E63E4B0E4ACF4F3B531CC52EE +:108D7000F1FD5896588FC8555AE66C3C0718D71322 +:108D80009F8D729DB716BA913FD3CCCF47C6DC9763 +:108D90009B8A6B9E03DB149449A0DF8359F23E5FEC +:108DA000BC14FD86275CF51FB9EABAF8FEB7BE848D +:108DB000EB3958A8EEEF7FE584D0EF13F12519B712 +:108DC000FFDF59DC6FDB1ABB3D807AFDEEA0951703 +:108DD0008271C7A2CE3A93F615C5D8AF643EB3F000 +:108DE0003B135A3BDF7F6A21A67E15FE46A01DE994 +:108DF000FD757C1C37DF06E3AFE4A3E4EB97E527C2 +:108E0000984C53D3E83C50F891F690FE63B97E82BB +:108E1000CE4F61FB407CAD6631E26BA9DF50919F84 +:108E200055F5E6FA00F215F62EB8DFAB08F1730738 +:108E30001F3B1AC073E2C1F8AA8BEFE6EB311E3F6D +:108E400062DD03F2A6EB33F1A9DF9EABBD8A39BC2C +:108E50001DEFA9B93D807E01D871F20BEC2695EE8D +:108E60008F8EC09ED3BECADFB56F039EA376E58A00 +:108E70007BF7A0FFEFAF447B64925CCC3CD13727FB +:108E800027CD6E7479929128B54F36E27EC7BE8F9A +:108E9000EB8907626E3D91F05F05E591AC5CA247FE +:108EA0004FF5BC1726E0BAD66DDA37C8F9DFDC1209 +:108EB000E8A07D5D284979835D0BD6D07787A45ED5 +:108EC00019D06EC0F7499DE74DBF7FFAD50ACCD3C4 +:108ED0007A7BE927D9988FF36BFD4436C2FBFECD30 +:108EE000FF968D79836FDFACD1FDF72B715CD8F7DE +:108EF0007EABE52FD3F13B2FDF11FAF4D59075034C +:108F0000AE0BB68EE7935C93D03078CDC787FF5613 +:108F1000ECCD422591AAAFEACD77D4255CAB7CFCA1 +:108F20001C6FC54307BD6598AFBB3797E259EFEBA0 +:108F30007C5DBCFF68C54E8CCF3F22ECCBABA1D88B +:108F40000694078407F9F4EB033E919FD8E7E1F616 +:108F5000D29A8FE72B71213F6EB87EFC4C168DBBE9 +:108F6000F44E8DFCAC4540EB75A0A2E34D2B281EC2 +:108F7000E4867BE9DBBD3F2E05B8966E52E877426A +:108F8000B0FDCDB07F8CAFDB487151375E8B6C6725 +:108F9000DECB55BD0B28DEBA78AD42767CF1768506 +:108FA000D6B93B0F770933B7CCACCC908F7B80E739 +:108FB000092E73C55FDDFED5DE90F0ABA6B3193C7C +:108FC0005E34F1D689E6F0E769EF839F8F49A91FE8 +:108FD000B6F8A93CD66250794388CBF58A270FFEB4 +:108FE000987488DE371DE56EFFE177B32E87576BE7 +:108FF00022DCBF3F6FE7276D8FC3EBA92C9693242C +:10900000FD65919E5928E8FF35E6374300E79DC28C +:109010008F9F7A0AEA69F89DEC56689FB706562C2E +:10902000E6DD2D447C27E3F8DCAF5F88BF5B3204CC +:10903000DECF87DCDFA5F9EBF01EACDF2A8DDF3752 +:10904000703F97EBE106219F6D4FDF3D0FE5E5F89F +:109050006D0A7D5F7AF9DE77280F75E9933E43E369 +:1090600041C823A8DFA47CBAE50FF6C55E5CF729EA +:10907000393BF05DA287940358371191771551EB76 +:1090800032C8DB30F9DDC73D4747E13A77CBD3F152 +:1090900041F62D6F86789EC212D39A87719AA52CBD +:1090A00046F95DC0E757FE9678C8EF78D6F2981774 +:1090B000E6655AF5B04EF77FCEF743AD8F8EB90314 +:1090C000FDE8293FD52987BAF6B1B2A9E8EFD5FE68 +:1090D000284446B5F685F6AFE3BAFEDA4EF13D25F3 +:1090E0006147E5EF83B8E974DEF333B5B347402F4A +:1090F000379DCEFB5C77E5C175FF18F35B6B772B73 +:10910000E49FD5BEE87E6F733DF7C4BEC751DF2E26 +:109110007FF3F630E6557FA07717211FF6EDDE10BE +:10912000C6BCC7F7753B8C74FD20A165FCEEC84535 +:10913000D98AFCFEB4237F9575DA84F71FEFF71800 +:109140009837B27AAF8FE7453EB79CF800759E0F0F +:10915000F968E6FCD5E50FDC5964F27C35671EEB57 +:109160006E0F9D7B5E0BFB329C66B0BCBE549E6056 +:10917000EFD0F98EABC5FED19DD728F345DDEB7A54 +:1091800076B6735D035D689F68033C94FE23F21816 +:10919000DB1EF4D9789FFD83378A77E279F7B1DD5A +:1091A0003F0DE33DF3D439A5C8CF3BD63B66C8EFAE +:1091B000EE1E17FA40D607CB6FDD077609CF4B5668 +:1091C000BEEE23FF66E52FD4AC8918C7D8E921B8D5 +:1091D0001E7FEDD9A249505FF1B0A7603E4787F2EC +:1091E0005825BF52F9C5823FCB1FF911E5BBA6F246 +:1091F0008C059F563C7CD08B72E2A6E79CDE835E9A +:10920000FEBD0917BF7ADF9987FB9BB6073FF3A224 +:10921000BEF9E0198515570EECDF74FF4F791EB9C2 +:10922000E0D7E079E3C9AF3F358DDA19B82F1B8C51 +:109230007F635076CE24F9FEE7A760DEA6377C94E4 +:10924000B7DEF4CFD7939CFF4E6F26395F79DF8668 +:1092500022F42B9A3C769141257FDEB4E30692BF3F +:1092600065BFB8A1487C6FB484EB03BB04F15ABA64 +:10927000FD9B84D7D52C4EF2D7749F16C338CCA74C +:109280003A6B7838033F0F67737DFCBB5D3EFA98FD +:10929000F1EF303E8BFEDACB9AF8DD23673E0D59B5 +:1092A0001EA87F2AE260DFCB56C53A03AB5E84F886 +:1092B000F23FAB776FA4FB7D1F56F07BF040075B5E +:1092C000D04B41BBA6FD626E31E70B33D15FA77E69 +:1092D000A03AE7E0736CDFE7B102931DFD445E2F17 +:1092E0009F7FAD981FE00EE2B9C0EF8AF8F7C798EC +:1092F0002BEFF9DA47AF998F79CE7F14FA20B5DEDC +:10930000778B3C71B1DEFF7084EB11CC8BA63CF601 +:109310003E4FB2D8910FED73C4CFFBF37D3D621D7C +:109320003BDF035C94AF9CA2E7330AF9BF576FF5AC +:1093300039E27FAB1F15F71ADCF941AEFCE5656237 +:10934000DDBBF9E7D603875C7A806D2F1C51DC7A90 +:10935000A5274179E7B04EC96F5BB9CF43F9BE1F6E +:109360003D74E89797835C7FD42BD7A7539FA6D6ED +:1093700027D019E9D6B4FF4C96697D7E84DFC7CD2E +:10938000B43EE179C6F51962A4BFFE66FA344567BA +:10939000E77A5C36883E3D96EDBE17303107EF8B9D +:1093A0007DF88315A3293FCD4557A93FDD7AB13319 +:1093B000DB1CE45E05F76BFAEFB970FA49B95CFEA5 +:1093C0004FAB689E94BC4AB994F669903C7D371DBA +:1093D000DDEFF7A3FE291C982F61CF6635F83B23FC +:1093E0006D5E5683F1135B0D46515EDDE717184144 +:1093F0004479BEE95946DF53B9225C99FA9D073C8E +:10940000FFB9E979FE1C2F7463FDB39FF07A748E67 +:10941000DA9CE97B49E561F1DD22F471609C7961B8 +:1094200093EAED5A4CE479F6D239509B22D6516E2C +:1094300098D69147ECBBF15E18E6F7CE13E344B340 +:10944000D44F4CF0896A6F29381FEFC146A7AAD7BD +:109450008F81FAACB079BE0EFC8A9EA33E5205F510 +:1094600039E14A5E3F439D8ADFA3D8C3AACEAFC786 +:10947000DF135015560BF3E8A5DE04CEB905D6AFC1 +:109480001FE4BB3DCCAC5C90B32C1FB303B5FD70A7 +:109490006679A19E47F89B18C768CBF5531E67BB3A +:1094A00087F71BE978729C5ADD9C43F7D6AA01D74F +:1094B000CAFE796A758EFFC49097F2AFDA73F97CB1 +:1094C000ED305F1BB593F41B5929F37CB52CCE17F7 +:1094D0002D476D7E18CAFF15E6FAFCEB61999FCF08 +:1094E000E313BF7FBA78178FA79E1845BF9FA09D33 +:1094F000FCD53FC0F3135764D139D71B412E1F97BA +:10950000E674794E837AAD7FD4F5285C6F280FDD41 +:1095100080E5F89C7863988F97C4F12EBF52E3E3FF +:10952000859AB3917F8AC5FD610598B710E8D16629 +:1095300031D33B06978A336F56D36A4F2469DE6C6A +:10954000C7BCAC1CEC0FACA74BCFE2EB09F6B66482 +:109550008F5EADE3F5C64455DB5193E0684238A613 +:10956000F81215B8FFBADC9718CBE5CCB9DF3F8EFF +:10957000E39EC1F51D7E0F779A58A7D39E5C21F319 +:1095800049493FAD7E459C27F4713F56E6F12118CD +:1095900088CF6AC411DA3D728CC7776A9F73E64937 +:1095A0009CF5228FB79DE5D24BE7883CA27386D904 +:1095B000C7AE0F0B7D5FCA4ABF4C5E689F62757273 +:1095C0007EF0DF6B99AF334BFCFE049D73AD110150 +:1095D000A5932F56E5605CD81BE6F653E6597B4D04 +:1095E0008DF2521E75E93B29AF938E1857D1EF17B4 +:1095F0001E61DFA2BC2A39AEC1E998CABB7C9FE7D5 +:109600005D4E395A7337FE2E8EE7B08725CCFE7C2F +:10961000C3934778BEE1F4C3FCBEE0E3B86FC6383D +:1096200059C4793F25600699994697AC9A3C47BD45 +:109630003D20F829F216A7F257F43B5CE9E34C35DC +:10964000F8EF60E6D45539FAB3179DF986B502BE36 +:1096500068C89F4078A61F71F2F56CE1FFCD28B075 +:10966000115356F796EB7DA881CE81CE1EE61CE8FD +:1096700069377F07D2D191B739854DBE1B7F076807 +:10968000001DDF77D251CA01D053433D9A6B39E9AF +:1096900099DFE0A46761CC49CFE24627DD4AE24E7C +:1096A0007A95359DE6785FD15CEBA88F5E77B6A39F +:1096B0007D2518A0F4FA98CEBF73B41FDB7DA1A35B +:1096C0003EBEE77247FB0989C58EF7A7EF5D3E22D4 +:1096D000FE4FEA5DE36827F97FC6937FEF184FF2EC +:1096E0005FDE63AF65DC3F898A3CD7C1F8AFA9CDA7 +:1096F0007330AF279AB4E9F79FBEAA1CFC6758F8ED +:10970000235F729D97087D8FF9CAE8A7FDDE13EAF3 +:1097100044BF34176403F5ACDBBEE71E789EE2EC71 +:10972000EE3C859B3493CE233E53ADB3285F88F542 +:10973000527CBB5D15DF3F99ED27BB7C8BAA7E2B4E +:10974000FDFCA93887EF2F8A73C4F93BD83FB47763 +:109750006559CC263BA8B2FEDFE1047A87F319CF26 +:10976000EBB16FD9585F8EF6ED688D990BFA06EB69 +:10977000E7F6EB7BB02F5371BF00FABC2A07F0BBB2 +:109780005C057D0E535D6AD8731513EFCF311BEF67 +:1097900077809DA37BD0B9AC40593311B738297B72 +:1097A000627E01427068F9E9748FE664D304FAEED0 +:1097B000E0C950EA7B8CFC77831B787EC06562BF72 +:1097C0007172C9186AF7FA95F823BA8CFD0C210753 +:1097D0003FE2752FDF7F0C17276BDA794736E6CB30 +:1097E000BC5EC3F30FE4F37A41A7FA1C9E77B07A0C +:1097F0004996CDEF637AE85C1AF747F83B82D726A3 +:10980000F8FAC53AC68936D5DFEEBC677FB8D9C647 +:10981000F8E3EA030B1CDF67B9F4551E8FBBF4FFB6 +:1098200032871F76510EBFBF7E9198F71228F03B0A +:109830004897001F72B17C7EE63C5C0FF03CA9406B +:10984000FD1B87C1F502BA2F88577A9088FFC6A200 +:10985000AF3C06A05F99C3E7BF98C53C2817BFBCC3 +:10986000725536B64B8D27C701E0D0EF7935D7F664 +:109870001481DC9C3857213B0EF3F9F1796C61D9E6 +:10988000060CA5CAF97EC9E21FBF027275218BD2F0 +:10989000B8727C6605E9FB8E520FAEB9262B990F84 +:1098A000E3AD79DD47F1E2DFAF3FF1CF37025CBFD7 +:1098B0005EFEA7C7F01E008B1FAD403B77598FC6D9 +:1098C0004CE0FBCA90B50CE586D58DEC9EF69C1F4E +:1098D00004683DACB993C7D7D63C389EEE57AFC9A4 +:1098E000767EBF53CACB35425ED6DC3F86EE63CB75 +:1098F000DFBF708F8FBFCB8CDF856813BF53BCA1D8 +:1099000080E7F1EA2CFE9D1CF4830DB50AF9B82D11 +:109910008FFFBECF887F6F05E6B7D11F621C8E9781 +:10992000849C361EC89F2AFCB14D38FE1BCFECAB81 +:1099300040FDF593090F8CA57DCDB491D183093BF2 +:10994000141578821DA27DC3EF5930EACBB06F7831 +:1099500058F85337A916F9F53709FFFE3395FBF18F +:109960009A1A8DE850EF3DA06521BDC2E82C4BBD91 +:10997000003E5C1893E4E5EFE5C2BEE674A1371241 +:10998000B7BE797E3B8F8338FD34112F927E590C00 +:10999000FEA2DEFE941DD008FF1E67DCF1ACA44AD7 +:1099A000FBC7AFEA87EDCFF96AFAB94F891F403E8E +:1099B000F4D6707DDB9B0CF2FB15608A78BE97D3E2 +:1099C0003F738FF36C0EF7CB0EA30F0CE37CD7E045 +:1099D0006516E8BF6C7E1FCED66AA94E2999E0BEF7 +:1099E0005985BC6EE7405994CFED8357395EE30744 +:1099F0003DFBE2AD473776CEC4EF3670FA621D7F8D +:109A00009792F9B3B8DF21F5E073A7F1EFB48AEFCD +:109A1000C44C137168377CD360BD91B195EB55F49C +:109A20004FFEF8CFF43D887D79E6CFCF417FFE052C +:109A30008DEE2F07F4A3DEDC0C783E8E7A753C7E2B +:109A4000EF8DDB11FF930A7D57C36FF27D67C03046 +:109A5000A6501C3BCEB230EEFDF1C36368DF7950F7 +:109A6000D0A7343BF61ED27995B673943186FCDFCD +:109A7000F7730A07D2B737C97F9F6C92CE3AF5BC0D +:109A80007EFA4A3856F74CA5C3E06B7BF2A99C805E +:109A9000FB7A78B43AC9F13CFE645BC63CFCD5C5A0 +:109AA00027FE88DFD761FFC2BF5B34E9C0D465A859 +:109AB0000F91C5783FF107A74EA7F19851C9FD67EF +:109AC0009DE91EDA572654FC5EEF6A1FD7DFC74FA9 +:109AD00069D44E8E3BE9C9599A01F2F95F81FC4A7B +:109AE0000D008000000000001F8B08000000000037 +:109AF000000BB5597B7054D519FFEE631FC92ED9E1 +:109B00009B5D084168BC24212110D2650910A2D6B2 +:109B10006B40C01061019FAD5317A84049B2AB58CC +:109B2000A93376C69B045B2AB69351A7A52DED5C9D +:109B3000A83A3E885D2048E86C329B8090203889A6 +:109B4000A005DBB18176A855C2AE6905DB694BBFC4 +:109B5000EF9C7BDD47A0FA4F9349CE9ED777BEC7D7 +:109B6000EF7B9CB395F1F63E180F901373A8FA544F +:109B70006C5F0010583FC7000120D2B304846A8094 +:109B8000443EF8059CEFC84D7E00D84F763BD4DDAF +:109B9000389FA3B483B712C7EDF06010DB0A006DE5 +:109BA0009F3B357E957E6E257A3F05C0716729689B +:109BB00006CDCBED708B3B35DFEB1907301760AA74 +:109BC000020013E89CB8E8463E92D3007633BE52BA +:109BD0007C023BD7E2B3C2D0053A3F79E189F18CF0 +:109BE0002F65B74A7C703E2156AEBE48FB158DC925 +:109BF00091A3A87E5A9FCD57A40A0CF000FCB8157B +:109C0000F7D402FD685083E3B9A9BE733A9E538C22 +:109C10009F6EA06EC1B64553D2FBA0D37A6BFFFCFA +:109C2000F6C26D5B715E96419702002E6CC7794952 +:109C30004E95C92923BD0901AE073FEAC9E5E4F302 +:109C40009FAF77225BD477F3757E8FEEAD47F9FC3B +:109C5000C7447F1B92807F5D05980710A693B1FFD4 +:109C60001D217EE15609E0D3785F958A3C351DFBC6 +:109C70006D911DDB4631F69359387FD011BA4DC135 +:109C8000730FFE41843CD4C347AFE4180DA897E995 +:109C900087761568EEB1F47E70A6F5D9C964F743EE +:109CA000828A1A87842D59447C86637FB16BD82EB3 +:109CB000E93A671FC6F6F74A6819D1ADE96A59480B +:109CC0007A5C00ED6D0AB633450845B18D16223D2C +:109CD000A4337ABA6C770BEA1D92A11B57CD027898 +:109CE0004C11989D2D3BC49EC4B972809E279DAC9B +:109CF000B5C6B35B1DFA2603D23C60E3786B8523BF +:109D00009349EF077AEF2F51916EC2909712BE667A +:109D1000BEE77C504BC35F441199DE23742EB6FF1F +:109D200056426B89EFC6DEF3F63C942FF2E76811DA +:109D3000E0924141FB9632819410978308C906193D +:109D4000342687AC7AD2F1DCE7E1743EA7FF192A0A +:109D5000DF97D6979376D243E443C47B25B3FF566F +:109D60000FDAF3B5F7BA66AC7133FEC1837A397096 +:109D7000D66190DF61FFBE28AE6B79F772D530CE29 +:109D80005FEE6EBC91F4798F62B3FCA12E97FC6EEE +:109D90002FFA03F25B69FA6D25F92DB25249FE5094 +:109DA0004DFD0A46AFC33E58CFFCF48008E4A7E857 +:109DB0000FCC3FD01F941781D6A37FB0FDE5CCEF29 +:109DC0003B06458DFA7A3CD798C6FA75ABA9DF31C8 +:109DD000B848617E2FA2EA03E4BFF13E46270A306D +:109DE0008D4C2B40305A99EEC7794C2FBDA67E4E34 +:109DF000A34F51EB92A40C3FC99344CBAF78BF4D16 +:109E000060F3EFB7DFB1ED79F41B505C2214006C06 +:109E100056381EA110FB88CF479D6C0F6C7EB37621 +:109E2000C51E946FF34989CDCFD31E5E883E05359C +:109E30004BDB0F535B1B8C2EB4117F3B2450D12E78 +:109E400073B1D5E600DC7CDFE0611B77E79964DF66 +:109E5000CEBE3B66CA84F3B30EC841163AFF99FCE6 +:109E6000E055946F4B0FEA15C6E20FD96578BB1E1B +:109E70003E13C2705E09F2BC4FB97FA99C83FEB24B +:109E800080CBF91BE5DE6D3A32E6CFD7F611EE96C0 +:109E90007843FB086789A17F16206CE1C0E9F3795C +:109EA00021B477A75D9BA9B0163646DD63E91B2672 +:109EB0001EAA1DF0B0E55F32F23BB2C3B78BFC6B5C +:109EC000A453D20A50E7A708EF84635D1B2C443DDE +:109ED0003EC4D5061B3BA5738E2A80F51AC0F71029 +:109EE0008F0F1DD9D400D47FDE767E783A5F7395CC +:109EF000D6E1DFE368EF321DFC71A41F3E2DF90DA2 +:109F000095C6E5F3C3A60DAE4EA5FF0F8B8493A6B1 +:109F100098003FC77EA4CB969AC7BF2678E613A9C0 +:109F20008A5A39451FD73DFE87492B8FA49D774A12 +:109F30001937FEC24CFC500225572586077F9CF03E +:109F4000FBAEE4DF8DC33619FA1DC8CF6B22D70BE9 +:109F5000C647E64F579E2C5C790455F2A8573BE65E +:109F600041798F79CCFC51C7E34EB2433018FE5F84 +:109F7000C6788EFDDA0FD55D3095E9E574E13C2EAB +:109F800027E1A75606765EEDE9123FD9BD06F543F7 +:109F900072AD8F098681EB37929E10DA6070F9649A +:109FA000FCBD5A4CF4DA255AB769A7003E5CD7F8D5 +:109FB0007296FC3B868E4EC2B6399A391E31F51226 +:109FC000C9D2CB3EFAB060AC7EAE58FA298222D21A +:109FD0000F480F78082FD08F4A98341627965EC8FE +:109FE000BD481F1F537CC1F5EF98F4F1C7BD067142 +:109FF000F127537E6F3EC74BD894BBC99098DCEBDA +:10A000004C7CC0331C1F4EFC25B923C0D735EF1440 +:10A010008CF8D4B1F26DDC635B63275B80610F2247 +:10A02000C037EECCC4D72653FE4D59F2874342C603 +:10A03000F9E8A7EE3568A775267EAFC74FA38DDB7D +:10A04000AF11F1A2ABFF3FFEB2ED32231FEDE2A252 +:10A050000F3023C32E4B7D5FCA2EA0E5B2B8B6D910 +:10A06000C9ED307A6486072A5338C8DEBF18E31872 +:10A07000601C5BB243606DE760DFB69B50EE40B79B +:10A08000A434E0FEC4609D6B16C5B313B29F482490 +:10A090006273B6EB18E7F6F797AE56916E604864B8 +:10A0A0007E30E764C0C84179022703AE92710C0488 +:10A0B0003ED203EE63F93371A2F45425D1E95F5423 +:10A0C0004D69BBE544C045F97E3F4A4638124EFE15 +:10A0D000FD6D3A77CE803CCF81F3DF2F9498BF2D72 +:10A0E000F9D99A971C48B72E5F6271FFE8E0E6BB8A +:10A0F000981D4E880A8D5F3A21B2754DBF940C11A0 +:10A10000FB4BF6DA587C89A0DD04C6AF8D9D1FE9B4 +:10A110009EE65BE74ED97FAD89D340BEFA5C03D59E +:10A1200075935C7ECA634BBE626379EFE20DAE5FEE +:10A13000533D53A6ED5AAC209F177FFB288B4B89CC +:10A140000E010A91F0D1C2C3AFEB28DFC53786EC10 +:10A1500080EDC2CE213BE5D9B5965F6FE3F8B0F054 +:10A16000B4212EAEB17F15E3E9602EC4911EC8ED77 +:10A1700076B24BF390D51FB6537E0E9A7550F88584 +:10A1800073ACBFA94B60F26D7A413054FC78B8FBD8 +:10A19000A09DF808EF1160E2549ADFB598D63542D9 +:10A1A000F4FB14E7B3E3C5861D99FD6F9B38FCF6FD +:10A1B00017E0F0897C333E544005E1F0F26D410F29 +:10A1C000E1FEF250AEAB12CFBF3C20313CFC0F3C65 +:10A1D000B2BC7682EA3034E8685CD4487E6BDDA598 +:10A1E00013A376AA1317C73E617A6B88F52E227DDA +:10A1F000DC09A12692EFCE984B89A3BC0DC3DCEFFE +:10A20000EA630EC310683EBA95E44CF438D8B8FE41 +:10A21000BAC0EA0B2BFE6C30EDBAC1B4C3060CAC6D +:10A220003E0C694DFD3C4FC1CE4CBB2C9B9EA99F63 +:10A230007AE0F1A23ECAE345C2169549FF89590268 +:10A24000B4537F928BD9433FC4CF0D933EF19CA66C +:10A250003D9974C25979ED47F913987F8ECA3CFF36 +:10A260008D9E96AA29AE5C2FEF67DBA3C38A0BA64F +:10A270003D1A923C3ED59B79B43FDE5A09C529FD73 +:10A2800064DBA35F2DF1842AAF7FDEDB66BD6CF556 +:10A2900057A0A3501D1655B8FE070627ECA2BA6EAC +:10A2A000D30249A77A608297D7BF4DFF59BD22805C +:10A2B0002ABB28F66DD983F31FAF899691DDF07E16 +:10A2C000F026897C6CCABA6766E3FE8F3A6C7E8A98 +:10A2D00027A0ED2AA33AE90785CF3504C84FF7D860 +:10A2E000FC741FB85423E9143F23581F031B77182D +:10A2F000547F44BAFEC6EF0784136C8331E176C203 +:10A3000009D6DB43F978FE4A4CE5E3510F2BBB300D +:10A31000BF23F9958B3EB153BCC4BAFB14CD67D7AC +:10A32000DD03A5259EB5D4CAEA44AFFBFA7577F8DC +:10A33000335EE759E361F44FD26B3826B0FB66AA6F +:10A34000CE9B28509D97E83E78C4CBE243FE6C320A +:10A350009368EAA7B32FE7F3BAA398E417B632BF1E +:10A3600008DB8CAD5E1C0FBF22B0FC0287D048F327 +:10A37000312EBE93CBF47DE90DC1705000C3BA827B +:10A38000E2F97A0E05B8B4367A9EEAE5CB1D4E5650 +:10A390004F6E40FB3C8EF85E6FE631EA7F0FEB9A22 +:10A3A000166865F79A56D8CADAF5F8F7B5C0D878BE +:10A3B00070A9ABCD4EB8B0EA10365E3C368E349BF9 +:10A3C000386FCEC275364E277833718AF26C67F7D4 +:10A3D000FD014921793AFBFEF1AB1B481F581F17BD +:10A3E00093DF9AF506EA89D93D31E436489F1F99F3 +:10A3F00078BC48F73774F5961A89E9475CC0DB9951 +:10A400003D078BC9CE89EE2B45218CBFAFF51C9C37 +:10A410004138414198DE1B5FC675697C35475DE474 +:10A42000F49FF7912F9E27DE93FC946F90AF32FB41 +:10A43000F8145F07E4E13CFF35FC4810FA98FD444E +:10A44000E14846DD1E3924058D34FF42791EA4F80B +:10A4500056EE35EB66395940F970A65765FD9618EA +:10A46000B7B7D8CD5B3CFF1EFE0E6263E78F99AF96 +:10A47000D39B68FEF25417901FC2677A03F5B71496 +:10A480004BF034F6B7BCB3A91CD2CE0781DF6B23E7 +:10A49000B66401BB370E898CBFC8D06841A99BE266 +:10A4A000DCAE4594D79699F1E268B16B23E15AA7E7 +:10A4B000732702D8493EDCBF9FF22EF21B59C0F72A +:10A4C000B79AB8EA7CA7DE358BECD53D61B684221D +:10A4D000D5E473BC2FF106EBBC7353F78FEBD59328 +:10A4E00069F71F4E1FE5247FDA7FC6613408745F69 +:10A4F000BDF2DE3748DE01AC3B907E4BB743F790B0 +:10A50000BDDECF3128EF4328F455F2EB2D3D1BCAB9 +:10A5100029FF81D0CAECF14CD743895FE0BEE6B396 +:10A520002E8AE4D0DCFD6E01CBB307E63E47750B07 +:10A53000D629CBA86ED91FB3B1BA2570B29AE16DF6 +:10A54000FF896A5F095D9CC0EF22BACD037290F467 +:10A55000D13C50FD5603D51B27EB58DD229CACF6B1 +:10A56000511C9A43F754AA5B064A59DF92E77E2FA3 +:10A57000AF5312BD39ECBD4080628E1728CDC04B61 +:10A5800053E79B2CBF3775495A3A6EAC7DCD5E9927 +:10A59000D179C4C24B54D0181EF6F2B6A96B7F0114 +:10A5A000C9D1688B32FBB6ECB1F1F90EDE02B4B35F +:10A5B000FDBA5F64F67C8B86D00EF576630A208B3D +:10A5C000C7CDFAFDF8D9D08D14078FDF162AA776EC +:10A5D000D49B190F75A8637C83B08AD97DA493D7C7 +:10A5E00053D9764C7AF9FB4B9E0F1E0C5E63FE8F9F +:10A5F000663CACB7F3771CAAC326615C7BDBCCD787 +:10A60000CB317E29185F5E35FDE51460BD2150CB4E +:10A61000EF8D51F265B4D7EA3B04A305EDBFFA4EC6 +:10A620001BAB27A086D7D941FCA5B855BE43CE8821 +:10A630005B386323BF5BBD34339EDD6DD641777FCE +:10A64000411DB4D36BD6416550C6EB71B78BDE09A3 +:10A650003FEDB72912AB3B8C52A27FBD3AE828C62A +:10A660003115E3583FC6316A312FBDE4BDC67B507A +:10A67000F67E2B2FB554FC8EBDDF1CEF3DFB7A3EE2 +:10A680008B9B39504C40FC177283FA6B564C5EB36F +:10A69000F6B7C02A66B756B82B037796FD46A8EEE4 +:10A6A000AE1C6BBFB8A9FFF074C739D24F584ADA55 +:10A6B000F10E0D3F5CFA6C9070E37406E393F1BC0D +:10A6C0000F44350327E1AE4780F2484B05AFCB4638 +:10A6D0006EE7F90BF92E72A4C5FB9149BCBEDA7284 +:10A6E0008FC0DE597B2B7EC7F27A737CD04EF1A8E7 +:10A6F000AC73CD53E4AF08BCD3F45EB3DCCC7B2B9E +:10A700009C3CCF2DB7EE6B96FC267E5AC0ABF3B8BF +:10A710003C9EB5B49EF2E07233EFADA8C9B47F3968 +:10A720000C2E9E8C7CDCAB09AC7E5AA965CEAFBAF0 +:10A730006FF69B64A62F8B9B2BDED079B26B627079 +:10A74000F41E7A1F3D5EF19722D247D8C4BBBF5C8E +:10A75000ED1AA6F7D6B794D96DB827E2CAAB521056 +:10A76000BF1F9BFA6EF5843E62FB8DF3EBE9DDD0F3 +:10A77000DA9F449949CF965FF927C29C47DCE97676 +:10A78000E3FBAD758F7915D61EB71953282E40A55A +:10A79000EF9AF7BEECF8DB5271AC8AEC70BC77A094 +:10A7A000CA9E66AF8B9B43E52C7F741F2E50DDE95C +:10A7B000F8124D7CC9AC158455665ECCC4DB45C22D +:10A7C0001BD977EFE1E5DF205C74AE1E2FA8697915 +:10A7D000F3C0A9BC6969744762125B8FF7A1B2BB71 +:10A7E000C7A5F3F914E37324CAE9A1D175760F7AEA +:10A7F00063F6BCA7B9197491FAA56B5F7A9AFC034A +:10A80000DAD87A0BA739365D9B8CF238BAB0622C55 +:10A810004EC91DB503A3A3F7388C1759BDCFE34C20 +:10A82000E29CC2EA5D802940387CC3C499DFC7E35B +:10A83000D87C0C4E84C7051095C83FE6830C0F509A +:10A840005F46C7C6F6663024F297F972BC57A86215 +:10A85000E3BA8C38BC0586D9F8ADF4E483FB6E030B +:10A8600055A6FE42D0DB2861DD148D2FA370132F77 +:10A8700090F32F20EE28E45CCB6E29BDC870C1C2D6 +:10A88000212EC66286BD635B7CCF1338DFF3357043 +:10A89000521CBDDFC7E38ADFC5E54C8E007BCFB21B +:10A8A000F8BA4986A512F27F8B0CCE5C5CBFF788A4 +:10A8B000C8FCB567583528DEF97DE6BEBFE2BEA903 +:10A8C000AC3481070229396B711FBDA3CD97F10606 +:10A8D000CCF413BFA6BC0DF4B8C5EAF3E43789DEA7 +:10A8E000C29883D531A2539708F7AB7C3CEFD1F7E0 +:10A8F0001C7948A7B65D8033F4BD450997CFA25FA8 +:10A900008B21C913A0F53C7ED113F0192FFFFE83D4 +:10A91000F6012C52483F42BC40BCEAFAF27A4C1491 +:10A9200000E33B6F5DF2D213D5A9EF81FCB1636701 +:10A9300004CC5382A6B1BCE477BAE35417A3D52F55 +:10A94000A6D7CFEB7D6BBFE543F9045561FA8110C3 +:10A95000A814EF27C24E85F28948EB7CDC4C1FA27D +:10A960009DEE35F1F57E6E5E157D6FF4B2B14A2530 +:10A970003CDF37DEE927BD079C457308B7E59E102D +:10A98000A3FBBEB0671A23221B7383E35278768140 +:10A9900056437AC62A81E1F37127A7772587B72E18 +:10A9A0000CCF4EE4673BE2DEE925FE80E15637DF5F +:10A9B00037F50F728C363CEFBB529081EF8AE87707 +:10A9C000123D280E9D998FAD5CA7A90FBBA9244706 +:10A9D000395C2939B2CF21B96EB6E41253728D3D7C +:10A9E00047B7CDA0F829AA6DC302936FBB0FE598B6 +:10A9F000ED30BE42EF0D5F7718D3880F4B2E5434E5 +:10AA0000FB5E4931F565C9A9901D282F686807CB01 +:10AA10008EA8AFEDB99972DAC09447457BCC1A2B5A +:10AA2000C77F016E376664C01C0000000000000094 +:10AA30001F8B080000000000000B2B106060F85115 +:10AA40008FC03BB950F9E8389913959FCE8D5F3D83 +:10AA5000212CC380604FE16060E86686604F28FE6D +:10AA6000C6C4C0F0108AD73043F02116841E697620 +:10AA700006062520D604620376FC76A9B1628ACD4B +:10AA8000916760705446F02F493130F04903FD253D +:10AA90004D99BF46F1D0C0B34C50F99F7551F95F45 +:10AAA000F41918544D91F8BAA4993F0DA8773A10AB +:10AAB00003007D8679E568030000000000000000C7 +:10AAC0001F8B080000000000000BCD7D0B7854D5D3 +:10AAD000B5F03E33E79C7964667212263084002715 +:10AAE0000F20F5061C428080B13D3CA595DB8E40D1 +:10AAF0006DB05E1D8242541E41ADA4967B73200F43 +:10AB000002048835D7A2A53AE00B1FB4918272AD3A +:10AB1000BD1D15BDE8ED6DD3FBDBDFC7451B1E2258 +:10AB2000C5577CDBFF6AFDD75A7B9FCC392713C002 +:10AB3000B6F7FBFFF4B39B7DF66BEDF5DA6BAFBDBB +:10AB4000F61E9F3F8FC9A319FB02FFBEC6588B8715 +:10AB5000315690491993F55E3FA6CCFCA2D491677B +:10AB60005F78CF25FFD93867DE14FDDECCD850C61C +:10AB7000BE27CAE0CFC0FC6C91B1E0B15216575964 +:10AB8000BA3CD3CF6CC6F3BA47625F48F8D5596E6A +:10AB90008DD3E88F4C60B98C7D12E0A939138AAA55 +:10ABA000207D2D906A2E66EC73962C6593B17EC342 +:10ABB000D4C4784ACFC7B45962B5DDA12C70B00DAA +:10ABC0000CEB373725269D5032DFBD723C8DFDC220 +:10ABD0007FF17B7548434CC6F96C92ACE9F518DE01 +:10ABE0002863FE687CD266C85502BC085FC293A881 +:10ABF000E4E31B2C11666C2AD3A9FF27C3535E4ADA +:10AC000042FDF7E36ADC07A5D7871F65AC84B1ADC9 +:10AC1000939F8D2501AE1CB99B69988698D15D8163 +:10AC2000EDFF91B1298C7D84F8D43370CD601E1A6C +:10AC30002703BF134F3D8CD3B943D1B7D7205EFE56 +:10AC4000C31BBF974AD3B5389FAD93877A36C31CD1 +:10AC50003635E935656318DBD8A44F9221DDA4F4BD +:10AC6000D42EC5FACF2934DFD6A672FAFEE4E4B1B9 +:10AC7000B9BD15088A73DCD682606D8AE0EC4C6E33 +:10AC80008079ADED7DE482CDD06E764117E5D52398 +:10AC90008F5DE0D3B15D84DA6D0D4055F86E865955 +:10ACA000EADE62C25FED52C887ABB44A6CA7167584 +:10ACB0001A80632657011DACF9C07F6196640CF8B9 +:10ACC00034AC9B269633B686F092E13323341CF2E3 +:10ACD000398CE389A586131FAA1ACFE71C593E9F1A +:10ACE0004D807F57009EA08D06FFFB02F0AEFCC991 +:10ACF0009B403CFBCBF8776B3CD58E4F80D3CB3A57 +:10AD0000DEF34EC0D4F95DF97C6182F059757D7037 +:10AD10003DF284F7F25CA4A352E539EA83292BC9FA +:10AD20000993664FCAE0ABF1C8AE0B0ED9E6B596F3 +:10AD300085A327FF8E21834C25FE16EDDDFC69A53A +:10AD40009F34A52E38A4D0FC3CF6F90F56BFB909A4 +:10AD5000283ECEA6078A8D184C9D6D645F376440EF +:10AD6000518B62C4A438D42B9B63CC83BC775C2208 +:10AD70001687F15BF3A0D342C67E685E9336013F2F +:10AD8000DEE66EFABE05C79E6EFB3E2B198B43DADC +:10AD90001600B9AA1838FEFF028C21DDB7483DB570 +:10ADA000AC34A30F7C824E3EEDD93F4980A7AD5213 +:10ADB000FCD35EE4BBE111E23B286F97F3299DA72A +:10ADC000566265BF8CF3F55BED64D62257523A5B51 +:10ADD000CDC77975BF54877C353C447CDE92A7A6ED +:10ADE00023D05F47B1BACB5B9C81E71926713DA8A0 +:10ADF000703DD0A138E1FE3996839CFE8C2994B633 +:10AE0000847939D39A639784B3F493C7F1F198792D +:10AE1000856986F0BBCEF91C8A2584A7584DDD8B49 +:10AE20007C6198B1056147B999672FD7D6C716A03D +:10AE30009E32A17FC08F3FC688DF6DF5391C69281F +:10AE4000473C0C475E81F9E7DD74388D72138A98B0 +:10AE5000398047B5A2ED3D6F04FB6384AF80908ECF +:10AE60008427F90CF6E32F32188AB01A4BB024C9A4 +:10AE700091535F0FC6476E3DEDD36D79FCBF982DA2 +:10AE80005F82FF5FA49DCCC9D4EF5F1FCC195C2EFD +:10AE90002DB165DF738CDF7221EBF302DD5A27AB36 +:10AEA000FA06A09B1A55D3C81FF8D73745F00DE016 +:10AEB0004BAD6AEB91401E7D38EF09D81F974FB517 +:10AEC000C829C7679327B73CFE11E53127238F1F99 +:10AED000B115A49F5922E64138C3A26F35AE9A88B6 +:10AEE0006718B707C7ED97CBA90B72513FA99A7A9C +:10AEF00094CA639DCC3EFE4694479844B194F8189A +:10AF0000F1D19CBB8D2581AEB2DAF0D2125C6726FE +:10AF1000A8424FF7C42E199F69D78344037EBC15FE +:10AF20008B26DBF0B9A3C8732EF473EB01989A81DA +:10AF3000FCCFCC28F189DCBF9E71F954242E67A385 +:10AF400025CEE7AC93EB9B88357F1CBF14F92B45CE +:10AF50009DE5B034D7CFAC81F21F5557A62592D3CB +:10AF6000DE76D48FBE6A0FF0FA40B8B637F9091F03 +:10AF700083C1BDFD42BEBE78430DEC3A1B1E352990 +:10AF800022EC8DCB35D49F9299645FA01E659D0203 +:10AF90003FF118AEF79B9B1AD97158BF024F2D662F +:10AFA0003AE495F2A46184C47CA7A19C54F1546650 +:10AFB000643FC843B5DDB82E2A45FE25FA044CB5DA +:10AFC0004B30656C3DF5AB949D77B53481A309D7C3 +:10AFD00075A588CB9BAC33E243256A727A6A5CBE66 +:10AFE00040EE264B088FDF298F567BA68112184E24 +:10AFF000793D313E8BDC597416F50695CF7EFBCB3F +:10B000009A7F4AE5764F7F9EF1BC55CF960EE5D3E9 +:10B01000477ACB3193CF27C6529416C9277BEDF2DE +:10B0200024DA35E33F6DF0B4093D4A7F00AA1C8D58 +:10B03000DFBD19E8DD367C6E6C297C5F2C71BB8826 +:10B04000CD77E2C16A0F785A8C7892358E3F0B3FEC +:10B050006DC3C7E6523E944F7472CFBB0DEC1759C7 +:10B06000C906478ADB73852C3504F5C76793CA5137 +:10B07000FF0ED68F1B8FCD4AFCA524AE47055C1E64 +:10B08000BD12B3E8C416423F37E07C10DE28E80169 +:10B09000A0BB1FE88D7A02E6718394659ED67C9AE8 +:10B0A000C3D67CA259E168C1F98CC9C0DFFF5DAC91 +:10B0B0005783B573C33F5839AEF74BC8FE72CF8B79 +:10B0C000D34DD138DDB68BF92921AEE72CBE86F9F8 +:10B0D0006DCF3EBF04F1977B7EB2E627FC58E3CBF1 +:10B0E000FEB135F2A40C9C3B258D8FD30F479CFA03 +:10B0F000F16A8CDA995272278EE78DB6919EF586A9 +:10B100000C82438D4107E7636AD4822DC95A9E9C05 +:10B11000C62AB05D28CE568CC7F530C9E643BD9629 +:10B12000CFBD9C1FA2550E7EFD91E4B69F393CAB6E +:10B13000845E70E3EDDD41F8FBDD5F5E44FC7D4045 +:10B14000E0EB0CFC7D00E7E1E6EF777F398EE3EB87 +:10B15000604156F95EE52F75E08B09FD9C2BFAEFF7 +:10B1600088B14E2FE02137EE31D1DE1CB5A87BC768 +:10B170001286F61D9F475B41F210CA95E2E9511510 +:10B180008057AFE96DC33574B398CF1CEF11FFB191 +:10B190000AB45F4B72EB80BF4E0B7DEF866327AC2A +:10B1A0001F28673B405F63FAC9AB1CEEC1F8EC8E09 +:10B1B000266D1AF2717FBE419E9782FEEFA87F2A0C +:10B1C000EF22C05F6BB4AC92CC0243A2FD5440AC02 +:10B1D0003747ACF546E007F07604F166F1DFCE358F +:10B1E00097925EF51B86A1417E14D4433B2BB28E11 +:10B1F000C1468DFFC936FC5878013CBC8E7858A9F1 +:10B20000F5AEF7C238ABAAD953985A78D85AE52187 +:10B21000BA5E3F6DEC6EBBBD38CEC3D75D5694CFE2 +:10B22000F9538675253CB8DC6D073C5590FC6A12D5 +:10B23000F2715E0DE851E0DB76FC0E78BB5F4A7C74 +:10B2400084F3C99BDDA7E23CDEB1EC3A16A3FD4CCA +:10B250008B807BFB5783044F4B81B60B6554F27098 +:10B260007E65F5025F03F94BF264E1AFBC1A032D72 +:10B2700007F6819C543C300F6F5983867A2A474ADF +:10B280001A32CCB355EC8701FC1E1C5FCBD80134BD +:10B290007E30A6D37A58E0E174D12ADAD678603EBF +:10B2A000B945B2E98354EB5D42FB2AF5C8D7FF8864 +:10B2B0005B3CF84EFB9E3CA313CD343632C69E4415 +:10B2C0003C3F2F270B10BEE0F81622532E330C1FE5 +:10B2D00054D8A618B4DF956B92462284F49DC2968A +:10B2E000D8F86AAC9837E8032315CAD077BB97F330 +:10B2F0004B47FC7DFFF210D60B129D46B32A03FB91 +:10B300001B85EC80722AF802E83F06E7AFD7F43CD1 +:10B310008B7D8CD27A554927BE1F86F8DAA6F4C6F3 +:10B32000B0DDB6352ADFCF9AEC05C2B3878F03FFB5 +:10B33000E9B4FFF07018DE95F8FE40A96364378425 +:10B34000432CA5E33EF12A9E8FC0FA69403E80F867 +:10B350008A64F013407C41AAE97113F19357D667D0 +:10B360008E65849F69085F909926F29F1CEA34706D +:10B370008A77C80D7FF847E8EF8EC3DEB8C96C7CCA +:10B3800028EC1B0B4F23EA41DEB2ACD356FDB3DBF6 +:10B390000D868CFDCDF6E790BE7F5AE80FE0D78B87 +:10B3A000916EB3B5F7885F5968C839F5E76DF4EA6F +:10B3B000278620B134B24F55E1BF688E71FBD8EBC0 +:10B3C00067A607E6E5053C2122BC9D92F077C4D92B +:10B3D000A230EEC73D8EFD851C0D3AEC7A6FA3CAF4 +:10B3E000FBAF85D60E7F538AE4C8DBCFC449CE07B6 +:10B3F0003026FA67204D07683FC1F72B4803EEFF60 +:10B40000FA81C39FB0A9AC9265DB37C88CEF2F508F +:10B410004D7D513CB0DDE078718DB7C809F739B783 +:10B420000BC9FA49AB4DC999DAC9ECA46DBFB6A1F5 +:10B43000DFEFC7E9B35161072558379A8BDA88AD3A +:10B44000FAD70B4C91BF921EC73AE62DE2FE8C84D0 +:10B4500047E7FA30C6ED2885CD4D937CC4CECDAEFE +:10B46000B2EC626B1DB7ADF79DC8777EB1FECE978B +:10B47000127720DF6DCAAB4FDBF1D3ACB27AE213A7 +:10B480007D11D5DB3466AE8EFAC2E2B34D2E7C5A06 +:10B490007EBDB6A614ED0398CEED68351627389418 +:10B4A000689252375C16FFF68F5B66F16D27E9AB49 +:10B4B00040E72D06F22F7C13FB35CEB72A685BE4FC +:10B4C0008F1F43CAF92325ECC441F8573F37BBDE31 +:10B4D000FDFDD3783C17E1A88BCD985E06FD2C6F5F +:10B4E0005C43E9B2C64DD3D05E78A3BD3462E7DFDA +:10B4F000633BC750FED80E85F4D3B19D520AD79551 +:10B50000633B6E88101D3EFBE20B2FD01BD519D17B +:10B51000932569FFB0AC5D22BFC293AF8E1BD51BD4 +:10B52000C2FCC635B8F55AB653310CFBFE5FC0D924 +:10B5300022358C43E1DBD8D453837E54CBBE7C05CB +:10B54000F9A680FC375CCE6583FC298F7B922FA304 +:10B55000DE6BFCACD9370A50D17CC417DF00559F95 +:10B560000E950C437FE35AB5619C669BC7DA7C3528 +:10B5700049EB40A8CB81B7DF7B1487BD6CC163DE8C +:10B58000CBCAE528EA83607C3DD0637688AF0BEFB9 +:10B59000F74AE47F6D167CE1C6AFD2B8659A6CA31A +:10B5A000BF0276A55E91D9377BCB796A95F7E1FA30 +:10B5B00003E37DE0E1FEAEDF7A921FD07A0B6334C5 +:10B5C000E6A39EEB98C6EDB810ED572DB9B4E05C3C +:10B5D0007F2187738B148C6F009C6D192FD665D6D5 +:10B5E000CDF7897237C3FD4BAB80777645771AF973 +:10B5F000CF9AC760FCB3A9294176D8063945EB6BD1 +:10B600007353ED34B4DF605F588B76D396A8467AD7 +:10B61000B139B4CF5F07F3DBE0E7F5B684F6FBD1D1 +:10B620001EEC684AF2F69AF8AE897ABA95DFCFF343 +:10B6300086C8C7F751BB0D26CF6F6BAAA7F65BE292 +:10B64000BCBF0D6C17AF5725FA61BB455EF4C3EE66 +:10B65000999780744BB555BE87F2E8D042F9B6F49D +:10B66000FA966A513F949A675408A6B597D7083856 +:10B67000FACB0D57F97E47F9C6A686697CDF653A95 +:10B68000EB15ED738DC32467B91B0EE67194EBCEF9 +:10B69000F65B745E5F69DCE6E02FE097695E9B9C79 +:10B6A000E720BF40F916C6E6A1BC784DE6BFB91247 +:10B6B000D8A08CB59480DE9EEBE57ECA468B1F8BAE +:10B6C000985C5D89F61D93BF9A6FF3F3E8CC4FDF6A +:10B6D000CB99DFF15D837DBD437EB3F3A5793BE775 +:10B6E0004B3FCA0F0C395B37D9B9F0DD962693F082 +:10B6F000B9A9A99AF82D47C8BDBB5EAD57D8D7AE3A +:10B70000F161BEECE67CE1EF453D7B24407E526F6B +:10B7100014E699CFE7FBD54ADB7C6230CF7C3E5FF5 +:10B72000C7F732A7FFC2FADE827264F31BC8F14A80 +:10B73000BF4EEB409AD681B5B85E16C2BAE13D3035 +:10B7400003FDDC967EDA88FA098A9E2E02FD7406D5 +:10B75000BF624B9331BD4CC175A77A3A9EAF284268 +:10B760000F3417556AA8D79A43324BA37CCB26AE29 +:10B7700021CCAF352C47BDE43B022B6E31DADD0D19 +:10B7800069944FBF060B0B437F2BD8BFD0CEAF1BA6 +:10B790006CB96D5CD9D2A79F3511DFB686B828C8C1 +:10B7A0008D73A7974DCAA2D762B3E9BB7B7EBFF565 +:10B7B00024DA91FF428D2DC47783F2C32DC00F553B +:10B7C000767DCA689FF03ED007ED796FC8F465B505 +:10B7D0009B1A6751BFD6B87B9A9F77E035A3F7AF26 +:10B7E0005F8EF4BEFED500C3FE06C3AFD27803ADB4 +:10B7F00077DEC6EF52DA4FEF689CF0E9D5C4B95D49 +:10B8000094C5C7E87C7D5FCEF5375B5789ED6FE265 +:10B81000ED93373AF061C1F55B8FF180370B5FF63E +:10B82000E3612F7B2908707F12661ACAC5D3AF4E19 +:10B83000A5F1AE3FCAE502F042787A1FF0E42BE6AC +:10B840007CDC5869D7CBF3883F40BF529A23F01372 +:10B850008837C04611E85DC1E90FD427F883555CED +:10B86000DFFBE26C2AF183555E05E50CD78504F514 +:10B87000D3DC544FFC9653D1437CA2845CFD857885 +:10B880007FAA26FA0BB9FAD3787F39159CCFC271FB +:10B8900080CF263FB05EFF16F12287601C9BFEF032 +:10B8A000C76E247C0E86AF4347C7E59E495EB63718 +:10B8B0003592BE68C7F509D2EDC5462DAD03B87EF9 +:10B8C000911CF17568ABD0D39B715D81EF41DCC4F5 +:10B8D000A25D2BF3FD593BB3FE34E687FC26C6E59B +:10B8E000A143E17A442E9353BBF1FC00FDD4A5782B +:10B8F000C8C4BFB797EB746EDC1110F52A18D5B326 +:10B90000D61D39C0FB09B35E62220BEE766D03E9EA +:10B91000F38E3CC34078DB59BBFF7ACC178BBC6CF1 +:10B92000523EA41AB4CEF91553A37C90E7DDFDBBBB +:10B93000F1E2CFDBA061FFA17CD15E6AE7ED4B9C19 +:10B94000FD75A87CBC4D72271F3FC8F367EB7F9342 +:10B95000F6430E7FBE68CF76F0F625CEFE06A35BDB +:10B9600040AF75EC3B7D31A093635D49917ECF295B +:10B97000AF77D48B543538EA3DFDEA38B2F7AC7E68 +:10B980000FF5969E915F4E0A7EE9CF079257B03C25 +:10B99000C696CA79335B8A20AF24474990BF3B7F64 +:10B9A000CA86792319AB6F9C41F6D732A1379637F7 +:10B9B0005ECCF31D4B55D4FBCB5212F9179609BD43 +:10B9C0005067B2225C7F1232B7EBAC75166C065A28 +:10B9D00067EBA2CEF5A74EE3EB4F5DCCB9FED4EDFD +:10B9E000545CFE737D14DA73CB1B6739F4F3F28E6B +:10B9F0001B088EE5429F2F17FA1BECF051B5507FC4 +:10BA0000261210E038B969DC28B2E325FDCE46F4F1 +:10BA10004F5F13A4F352377EACF38AC751AF4DCEBC +:10BA2000AC0FCB5C7104EE7499581F989C2438BFFE +:10BA3000EC7833509E00CE65D6F912CCB7767C6692 +:10BA4000FC63518E8B2A6406925BC04796738F7E8F +:10BA5000FC256F74E8F72F8BB70BC43833055CE710 +:10BA6000DADE2A6F42BCD33AD07F8EF215C4CB5FA8 +:10BA7000CA4F1B33FC44EB26AB0F925DF3D7F31593 +:10BA8000D7B35F96CE8F7B34410798D7781BDD5CA8 +:10BA9000F4B2DA5D8BF8043CB4CABA635F6AD1C908 +:10BAA0008DA763F5418F3717D2C37368FF7C87AAD0 +:10BAB0005F817AEB1AC4DF10C423C7DB4958075BE8 +:10BAC0006CF6D8B28E1B9EAD067EAB6BCFCB976C5F +:10BAD000E3D7B517B7C5A2B8FFCCAB44BFE235ED8D +:10BAE0001CCFCB772C99DE62C307E0BB0CEDE5BD24 +:10BAF00082FE03F05D26F05DE1B497EBCAB9BD5C50 +:10BB00001777E13B951DDF75826F609E2D3FA4790D +:10BB1000CECA0D8432785A1A5B4378BE23A24750AE +:10BB20009F9E84F5AD05F4D63161D71FDF3129B270 +:10BB300004E54B867C08F39379DE2FF23BA11CFBD6 +:10BB40000F89FA3B27479664D1C76E7A2C8DDD2882 +:10BB5000E4C0B4CE0DC81EF904EC113CB7182A2776 +:10BB6000FF4DC6FD43E8C13F62FCC0F1D0F57F4800 +:10BB700051B5ECEBB7D5AF365B3E66C743B006F2C6 +:10BB8000763BA0CC592E335BBED8010F0B4DE1762E +:10BB900031FF4B09BE61EC2DDB79A4D29BB714FDBC +:10BBA000A5337433FD35B433431EDD97E51C39A34B +:10BBB00087F449FDEB0AC15F3EA97FDDF1A2DD5D9F +:10BBC00072C6738B96A683D3EDE789B26C308C6F07 +:10BBD000B1EC6CB9F15FA723BF1E827E8ED2FABA98 +:10BBE000C13A6F16E7AB29871FC2DBD836CD7E7E00 +:10BBF00063F9B76065D1EDE7086D81E44BB854E7B0 +:10BC000045D66DF8FA70DB39A6DE25EA03AEF1DC25 +:10BC100064E4EC7B3767993F9D1CA05D96BE85FC74 +:10BC2000DF5ED66978D07F0FF61CC587004E7BF8A3 +:10BC30007EC38FF660B09CFBBF7215CE37EC208FB1 +:10BC4000970A0ABDD15EBE4FC37A9F8C74B66368F3 +:10BC5000F44DC9D463BD667B09EE5BC6CB0CE3B77C +:10BC60002C7F169313673C279163FCDC548EB5F749 +:10BC7000F0949F1BD8CE518B14C4EBE552F673F3AE +:10BC800073F49B9D6BBD1F3619934E8CC9C8C95A5E +:10BC90009413A05557D33C8A071CCA1A24B4176FB3 +:10BCA000F5242728A84FE6CF3351E4BCF31BFED080 +:10BCB0000269FE307D221E656E55593A11837C8ED5 +:10BCC000FE08EEDC96AB95B342307E3E6E0A607F96 +:10BCD00051A3CC6CC638A1FC527DA2077776E685CD +:10BCE000B37E5D0DF911FA7BD8BEAD7DDAAC79403B +:10BCF000EFFC718CE28A98397716C62BE4FF1DCFD2 +:10BD0000FF93CADB5BF64807F0EB09B28FD394CE02 +:10BD100052F87E7A0ED27532BA8BD3E4AF0C01DFC3 +:10BD20009E003E54E524E5D5C66729CF62FC3CD190 +:10BD3000F257B41524BF81F35B99E89D8B5D78437E +:10BD4000CC83F2B25949EDA8ABCA9C1BCF8102B497 +:10BD500093DFAFD077DBF7696B151117D5F452CDB0 +:10BD600089313CDEC52E4F5B8A5937FA79ADBCDF8D +:10BD7000C71A68BD898BB84A21F74C9C7BF8A3DAB7 +:10BD800044F44F5DAE78445CA57139F2C546C5CC2C +:10BD9000FD2A9E633FE7257B44660926E2CBE87CCB +:10BDA00088CED1808FD6E0A127F291D6D03303E39D +:10BDB0008AB47CEA8F55F4D6F4EB8512ECAF6107B8 +:10BDC000D2EB5AE5C04C05E8B531CCE9B5A2F5E0B7 +:10BDD00006C4F71A45AC932CE1A7B80FA0F1A97CD3 +:10BDE000D25F691FC5A7B11D6596DE025015DD73D0 +:10BDF000549970F67352391AAFB1DBC16A3CEE4107 +:10BE0000392B95C53A7CEA06668F03FAB1A06F4BD1 +:10BE100053BD234E55897A8EE2799C925C3109E9B3 +:10BE20003A474AB690FC80FDC06C7AD6F277E7B00C +:10BE300045B9E9628C8BBCE830C6B3DCD77498F89E +:10BE4000873D3192F4408E661338D40B2213DCC93F +:10BE5000D2810998E7F156C10AF963BBBE77C7538F +:10BE6000DDAA648F6F2C69FCC10576FFBAA75DF768 +:10BE7000A0BD6FC551FD44F0AF555ED2F84F547F61 +:10BE80007753E305C857FDF08AFD4D7FDCE73A0E96 +:10BE90007FB1D04FD6FC607FF1D44AE0978E24E882 +:10BEA0002ADCE7B5F0F3DE9CAF80C22ECEC853305B +:10BEB000C9E7678DEB9EDF4F05FE5B9B4ED1F83FD8 +:10BEC000431828DF47F91C6080C7911F0E39F1D84D +:10BED000D60E7A18F9F9056F9CD6B54D06D139D82A +:10BEE00029F0E91A871D3E0B1D747E8E75AE7438DD +:10BEF000A438E3DA2C3AB046F803FE1863E1EF33D6 +:10BF000028B5C5595A78B0E862E5019FB9BD67E028 +:10BF1000EBBB9A3E9D8EFBB3962630C121BD6BDDF7 +:10BF2000F57E1C6FF43A96423D3FBA88F3EBE82E5B +:10BF3000588AA2948FA3ECE8262FD745B9DE65F87E +:10BF40008BA394A77259E3E5B228BF6BDD4C2300A5 +:10BF5000E5318DD179694CEF7B6E1CFA7D1AB99F62 +:10BF600083E154006F778AF914AEBB711E9A218564 +:10BF70007ADFEF300E8135707F8712E5FD2AE29C73 +:10BF80002B652E3002D00F8C6D786DFDEC14F82FE0 +:10BF9000349F62F3E07BB1CEF2E7E17849E778774E +:10BFA000887A211DE0C7F27667F90E014F89556E38 +:10BFB0007038ACF24ED1BE543BC16660AA27E62170 +:10BFC0001EA0C0D1CF3651AF0CCBB19FB8B3BC438C +:10BFD0008CA3142C223D3E46F811EF6ADA4172A47C +:10BFE00014B4D07957AAA9FD022E4FBC9DE547B1E4 +:10BFF000E4ADA5A993CAF575BCFD58AD6F8661A3E4 +:10C000007FA1CAE5C24A510EF0485045850E709591 +:10C0100096839C495C4ED7C1F76087E05F37DF337A +:10C02000C803DF8E823F617F521C85C56F969FE0FB +:10C03000D0D1A90EFE638DC06FF6F8D306BEF5EB26 +:10C04000CFD7FB2F7094273567B91173E6AB7567AF +:10C05000FD78B933AFC71DF52D383A9B1AA7CD1E11 +:10C0600093F1FB7616E88568F7EF2EE0E7399BD071 +:10C070002F3C06E3686A29ED107EC06DE8BF1B8384 +:10C0800071360D941FD1D83C6DF6105C3FABA7CD37 +:10C0900056C8DF45E5B7A3BF10D299AA8807A961A2 +:10C0A0008E7810B09B66AA68671A0983D622612F22 +:10C0B0007506FA1693BF28D6C93C36BFCA4295AF5B +:10C0C000D723AC7D9FDC2DD9D79B85621C4B3FB21B +:10C0D00022D09AE867B6F80AD613DC8F2C50F9798B +:10C0E000047C8B51FCA880C75A6FE648C64284ABDB +:10C0F000B300E040FF559CDF9B185EAF531C50A47B +:10C10000BA2F8DF960854EFBBA58322DE1F9CC0873 +:10C11000B09F110F8557251DFEC69C72A7FFB13336 +:10C120008FCFAF08F7DBB0FE05701F0FEDFED33BDE +:10C13000B30EC7DDAAF2F5BB39BC6C38F2FB2B722B +:10C1400062990AF00EF9663BF1FF560C48C6780E6C +:10C150003C27023B22FFE2CBFD14C7399FC7AFB19A +:10C16000CB59D6B81B5B5CDC1AD576BE6DE1DD1A07 +:10C1700097C9C9E1C8C7BF90926BB11E2B8FF9ED6B +:10C1800076973F91A47374379CCFA8C6CD08A705B6 +:10C19000DF41D558C7F3963D02FDC2382399697A2D +:10C1A00000EE91086F04FD813AA7870B6EB09328CB +:10C1B000EE66C0FC6AB3C7ADB9E359ADF371B0C365 +:10C1C000B6AA9333F3BC5F4ADE42F33FE2E376BDA7 +:10C1D00026E29B44DC62FE90746CA28DEFF60BBEEF +:10C1E000EAB0C5D5D1BE4FC4F5D01FDA2D9807F9F6 +:10C1F000FAA9CACF55016B66CEF9686F83E18EFA52 +:10C200006EA34AF748862501108C936955C91E55BF +:10C21000EA872EC5B82490D1349E5F2B2D6D6BA478 +:10C220000919BFAF1F356C29AE9FDD9486F0C60C8F +:10C23000A411D647A986915090BEBBA4F7262452DC +:10C240008D3FB917E7BBC29F1C8DA1836F8F4CDE5A +:10C250008FB0FE1CE90270BD201B3FC3725BFD9FC7 +:10C260003BEA2BBC3E9875FBF17B2E330E70FC65D0 +:10C270008F93B7C5657E1AB2F109BBCAE396F7344E +:10C28000C9BBB07FFBE32ACE314E14FEB433F7CFE7 +:10C29000F96840FFA2FD8F722644D06E7BBADD4B59 +:10C2A000695B6329A5AF79D8B66AB4CF9FF7B26C42 +:10C2B000FE422BED453B0194C57F097E38867C0B01 +:10C2C000E912595371DFBDC4FCD374BBDF7889C94F +:10C2D000FD3DC0607391DEAFB5CE50ECFB616B1FCE +:10C2E000EC6E97F14BF58EA4FD63FF7D041EF756AF +:10C2F000576D2140FFCE7F01DCD71C56E85CDCB2D5 +:10C30000872CFC1C3BCEE3B7AE11F15C57B1440463 +:10C310000BDF661EF2D7BCCDFE3332C9B62EFD59F7 +:10C320001571CFED0AF9414CF81FAE1757772A0E59 +:10C330003FC9F21DCEFC32B66028EE439775292C1A +:10C3400005BC700DB3F95960BEEF08F95FCE1ADA7B +:10C35000703FD72AE4A84E63F210585F573EF69319 +:10C3600029A897151F5F8F4FC33E4CB7C5D95F1BD8 +:10C370004AA9B87E1FDF3FE9D20B18B64FB515E2C8 +:10C38000FE2E8F65F5EF2E6D77C27736F8DDF05A09 +:10C390007E92C1E090F770BABAC71DE2B3E241CD18 +:10C3A00073BAF737D5A78BFACE7B7F676B77C15F00 +:10C3B000D8EE6B3E9D65BB6778B676B306196F53B2 +:10C3C000B4338172D62F77FE04E15092B9DC6D8AC6 +:10C3D0009DA5BC08CABD67282F3B737B8C03C2FB9D +:10C3E00045067EA4FD747A04D95F4DFCDECA134A6B +:10C3F000E25BB86F7AE2F75E86717B4F28EC105EE5 +:10C40000A130254947BF80A15D42E5C60BDEA8A744 +:10C4100058080DD67F6FDE3D28A7DFF0F1381D26C6 +:10C42000F778B15FE3436D36FA379E50D223F2605E +:10C43000FC9A7F6249E4E3191FA69722BE2EECAB5B +:10C44000559005FEEDE1A7BF8BFD5CDB3757C6FCC1 +:10C45000B7B11FC0DFDB0F3E3285413F4FEC0DB35C +:10C4600034C22FA754DC575DBBDF4B76EA753F0B18 +:10C47000D3BA70EDBE9577CF87F1A5C7C2044FCD73 +:10C48000BEE5F7F908BE66EAE7DA4717E66E17F386 +:10C49000F2036A9E582FD625333D02E3FD57FAD8A2 +:10C4A00095685F5878B0F8735668868CF7B8AEDD3B +:10C4B0009347764C3F5FCB50BF02A32AD9950BB26E +:10C4C000EC936EF6717DF7D67B3CDE54DAF3E4151F +:10C4D00034BFEEEFD07C25A0C8EB30DE6A314FA828 +:10C4E00047F3301F905263A0FCAD07243EAFEEF13E +:10C4F000BB02C538FE2EB58EF41A3F87B1E09DB55C +:10C5000067460BCAF52C2DAF04493EEB677B493FCC +:10C51000AFDEE34DE3FE0952DA47CD0E799DF7B960 +:10C52000981192800F56914A8474FF4AD27BABBA1D +:10C53000B7D0FD90D5079DF20E788EA701FEEB5E79 +:10C54000F4C6E763FEE7F7477480E774CFBD11A434 +:10C55000078CB3440539F8DAA74EFF30F6FF69FEC1 +:10C56000C0FE18EBA3F8B3D5DD9BF8782E7D721AC8 +:10C57000FF317CE03E7797CFE96FF888FD7A0ADDDE +:10C58000DFDA3324EB7AD87F6F4BE897EBF67E74D3 +:10C59000A709E3BEB5EFCD3BF15EC18A3F7F70E7EF +:10C5A0000F70DFF5AF010DF5E2EA075FBFF366C07C +:10C5B000E7DB077D1EE493777E79FF7D7740FE9D64 +:10C5C00097C7554A90FF858FDBC1EF3CF2A7A17852 +:10C5D000DFE8C65FCE1986F3BFF1C0AC612C8B7E5D +:10C5E000B3D27780AF523EFB3A96A27EF483D0DF7F +:10C5F00030C83E2152175D9EDEFFF42884EFED9790 +:10C600007C1477B05AE77106ABBA57525C36E671C4 +:10C61000BFB5EAE18DE427188867738427C6E51C57 +:10C6200043D057ED5FF8AD0BAB3055E23AF6C7FAA1 +:10C63000687D71B75BFD02D0F3FCC1E9F711FB4CDB +:10C6400045BCAF7E78131FD745BFB7F11FD306D2C5 +:10C65000EFE501F45B7117EDA5F7678F3BB6E8B71F +:10C66000F2C0B7CF78CFEF1D97DC0E86DF7AE19F5F +:10C67000BFDF67FCD18772B72FC78C117D7DA9F909 +:10C6800050F64EEB07A318F0C529A5EF0A94BFBEDC +:10C690005FFA348C1358F2CB1755D463EF1CF89D16 +:10C6A000AA933E672109ECA87758FF5F0FDA55ABD4 +:10C6B000447CFDEA7BC269F433AC5A574F745A95F7 +:10C6C000BA649E1EA1EFE47F5895E27CBF2AF5E490 +:10C6D00022290BDD747F3ED7A3A902612766E828D3 +:10C6E0005523FD8ECE457E1B8C7ED6BC359CF754E3 +:10C6F0001B1D4D85E47430797C67974F96B05CF8CC +:10C700009D2CFB7E754A7A916591D3FEF3912F792A +:10C710000FB3D09FDD6F68CDF76C727CF6F97C3972 +:10C720007C0551D8270FC4DBFA561FE9E1D726FA5A +:10C7300028FEE9A8A2FF682DC863DF730ADB0D4D50 +:10C74000AEA87C43D1B39C83FCC165075DD928B5F5 +:10C750000D8376579A7C1D719F2325D779996EC3D7 +:10C76000CF2A5FDF6B12EE7F7E15601417F7AF01E3 +:10C77000DA0FADBE3390C275EDE9039FDC87EBC9DC +:10C780003B77F9185FE778DCE272E14F7CE3C02782 +:10C7900077FE3794BF818D75ACBFF6E4F791CF7FFC +:10C7A0002C61AC197B775FEE04BC5F751DD4C5F3BB +:10C7B000E7E5BFFAC137914F318FE7A5CB739257A9 +:10C7C00060BCD0F21F0F93D09E591DECFD33EAA13F +:10C7D000371FCF450AB0B70F7C3205E9F5E6A38FC6 +:10C7E0004D40FD07F6A16E3F27BCC6FE9E84CD7E60 +:10C7F000BFAE7B6B0FF2FD7558CEEB4B5F089941D6 +:10C800003B1CC747BBE4BA83B9466082A31EF5B39D +:10C81000DAD777539CF6DF66A1876CFA7421D2F9D8 +:10C82000BA3DCEF1AFF473BB78B5DAB78CD7EF2C45 +:10C83000E4FCD043ED56F82547B9BBBD55FF5A7F00 +:10C8400009F15BA61FDE7E9538D770D37DADE8F782 +:10C85000BA3D9F8F73F6C7F976E038FCFBF7246684 +:10C86000E2791E7B2440FBDD156A7A6C7E057DA78C +:10C87000F70BAC7CA11817F3684FFD42C8E78A207C +:10C88000CF3F2AE2E75744208FF0FA7B7F8A7CB3C0 +:10C89000F2B10043FB6CE5AFC05E02BCAE7CF4DFDE +:10C8A0004621DD56FE6A2DD17DA52F4DF4EE7BC4C9 +:10C8B000C77643BDB71E798ECADF52D2A370DC950E +:10C8C0004F048EDAEFF959E9CA6E9F70263BE7D321 +:10C8D0002CCEAD5AF0DC6A0CEDAFE8DC0D242D8EC9 +:10C8E000F323DF15C57D0EA7F9BAEDE983FEE2ACAF +:10C8F000F6732B9E8BA023D56F32CD7EAF95F1784A +:10C90000D7FFE3E23755496AB8CF54118F800F45FE +:10C910004EB6A31F55894527221FB7C5161838EFF5 +:10C920008E0A6D22CAE5A37E6EB7F9A07FB28F0F83 +:10C9300075D1B9AFBF487EDFAE2F0227421467C85A +:10C94000CA6CDF4B283491BE872AE0BBFDDC270A86 +:10C95000703BF0E43C87FF85C4F161867DFCBD003F +:10C96000667A519E17670E46699FFAB2750F466E3A +:10C97000E1E57956710B2F17F2BFBA8ECBB79B5EEC +:10C980008B9FD8D883F1FD8B9F184EFE93C5A17164 +:10C99000AFA35EFF05EA56DCCFE7F9881EE73F91BB +:10C9A00058F8F790FF87FA31A4AF2ABA13178F8788 +:10C9B000FCE5F5A5E4BF7BD9CFF76DDFDDE531956B +:10C9C0005C3C7F10F07F5F22F8AF44570C345CC2B0 +:10C9D00074956FAE533C5E82758779BEBB00E3DD14 +:10C9E0006DEDBD216CBF46A2F3C7CB7EFFC21CC458 +:10C9F000E52B2F1CA390D72B7FCDD41C1877C97E95 +:10CA0000BD8DBB53447F4F407F9E4C7F193C72BF0E +:10CA10001193FD84970C9EFC84B797FBCF5D4CBAB5 +:10CA2000F76EC333C5775B785E1C7EE932C4CFE214 +:10CA3000F0D8432C32109F6E7BC38DDF0FB108D628 +:10CA4000B3E37EE3133FE0EB79BFF1A99FFC467DA2 +:10CA5000A3E412F2237D86F955DEE4E8A1A5E4778C +:10CA60001A57807CD793DD9ECD8CC7E5EC65168F79 +:10CA7000F17D5C079F87780FE565C6F5FA075834A6 +:10CA80002D03FFCB72A81DE17B29E7A70ADA6FDF30 +:10CA9000656905DBFF03EB55902E6EBA2D65868A1E +:10CAA000E557B3741BFAF701DEFC4041065E56D42D +:10CAB00043F15DECD7E7766F6C40EAF733FFD0CCFB +:10CAC000BD94BADEF79A106F750006AE8748166EF1 +:10CAD00067E82AFA75EA8EFCF1737B39EB2FE7E7FA +:10CAE0001AFDFDF8F9BB0DB67A8E7586EA49D9FABA +:10CAF00081BC2D9E64609EC3E1FE5EE7E7EF736438 +:10CB0000818B9943118FD61F6F7F42EA3E0FDF65FD +:10CB10009919B86B763BAC330FE5F714FA213F3B1C +:10CB200070774B4B0D637B619B87E7D3909F6D16AE +:10CB300061DEB802F79B4B6510155B3CD3C5012E37 +:10CB4000871707B8BF08CA4D2CBF48E4F1CD14BC05 +:10CB500022886FF014815E3AF670E56FCED307A796 +:10CB6000535DC7173E3DCBFAC40CA647A7F07B6ABE +:10CB7000E4BF7D366EFABC9973F92FEB77CD677100 +:10CB80004AA32C41A9157F11639D9416B26E4A8B5E +:10CB9000580FA5A3581FA53AD33C9CDFB9BC95B04C +:10CBA00038E5CB5882D2BDC5FC3EC3312918DF9D84 +:10CBB000655D8175E47773A07CED7F7A294EE0E6B0 +:10CBC0004049D675C6EBBFB8A6C57E3FEC013FED28 +:10CBD000E3F7AED7890ED6F79B037CBDBF39C0ED16 +:10CBE0008DBDEBF9BB02C71EF0C777436FC7C34CBF +:10CBF000CD83718F6F7DB104E3BEAC7A0FE5F37521 +:10CC0000FAD3A38F9D87F1B9DF0C183F08101C6978 +:10CC1000E24F8B5F96FA43DC7FDFA1BC655F6786DE +:10CC20000712CD01E8E7F04F83649F5E7F8B44F6E7 +:10CC300029D32592A7AB049D1ECAEF3E8DEFAD9878 +:10CC4000DB7C3AEAE5AB3A7C47E97D8BCE3986BDA1 +:10CC5000BF5B051FB1CE1FD1B9F45567B9B77815C1 +:10CC60002CBCC867EE7E181B9987FE6EF29538E4DF +:10CC70009EFB67ADF7B9FAE3A518BF6FC26AF83D2E +:10CC8000BB5DAD6A493BDEC358AC4EC475C627F6E2 +:10CC90006B0F06F8BAAC6F63496C9FF270FCDD262F +:10CCA000EE57DF1BF052FF56BD07ADF918CCFD4E15 +:10CCB000CE838867BF59CBF8BAC1CF37526A27BD38 +:10CCC0009B75DB033E7A97667CEDA5D7A19E19BFC5 +:10CCD00007EC2390EB5BA5548CDEFBD9EB8B231E7A +:10CCE000679C57FD1EE687EEF1E908E3F83D3E0339 +:10CCF000F17A38C0ED96B1A93533417CD99B8B537D +:10CD000085E877D3313E8BFBAF2264241CE4EFAD82 +:10CD10005C277077FAE159B967F21F20B0A623EEBD +:10CD20002DC84C875ECA77E50B5DF54B1CE523F0FB +:10CD30006C0EF4C188104B87318E72833903D7FF94 +:10CD4000DBEA18C9CD485C1881BE23409FE0FB4B4D +:10CD5000780C1284B408F2B8358572E615E5B990FE +:10CD6000DEEDE99E87443F22E6AFC97DCFB514A32F +:10CD70003CB74B0D21FBFC93018A3313F3BF56C420 +:10CD800071403F0CFBBD6DCF240DF110F52516232E +:10CD90003DDEB4E8F1F045D7707A8CBB1AE9F1CFEB +:10CDA000AA710D969F5ECCDF1102FC2FC1EF15B565 +:10CDB0001F5F81E9ACDE4B96E07CDEAC55397D6AC5 +:10CDC000F979512EEB8EE07D14B6879F5B5494B3B6 +:10CDD0009482716947D617223FECC589E1B80F7B71 +:10CDE00052784F0F5542209F52338C694DE21BD829 +:10CDF000FF7099E7016E03E5A0A23C5D82F4FF227B +:10CE0000C0E391C61FB9E66D46F79053BF998E7186 +:10CE100021D33C143FF7CCAB3E7ACFE0F4DE20C9FF +:10CE2000EBE9898CE21E376E55E99EF4A5419DDF42 +:10CE3000DFFD1CBE43BBED9B82299C5F598D9AC6CA +:10CE40007BE61FF64EBCEC29C6F1EEAF24780BEB67 +:10CE5000916F370549DF007D58A412E3DA7A6B5AE7 +:10CE600028E0C018BEC0B63FED528CC5180795B378 +:10CE7000393C270A72D515205661D383E5AD1807D2 +:10CE800075DB01D0F1A0AF6EB3DE23294F06ECEFC6 +:10CE900062458392235EF4B680A857960C70FD9984 +:10CEA0000CD03B2CACA704E5EAB6DACA12DC273E6C +:10CEB000F3EAF2E1789E7FDBD683A390BEDFC279EE +:10CEC000029EDEFC3C350AF569D91E1FCDEF56B532 +:10CED000C783FAC07C94D13EE1B6BF7FE5D83D2838 +:10CEE0001F78DF14E65315CCEB3F6F45B86EC5FDD8 +:10CEF0004E2803C7B51A8FE39C14E47EE80941AEBF +:10CF00000F2A82E2FCBA62803EA808723F791AF9C1 +:10CF10007543CE37C94F5E15E4EF96303F3FD7CD0E +:10CF2000D26E5210F5C8FCCBD2188B66B5B3CE6B5F +:10CF300061BEB75F8DFCB9D51FC7FDF6E9C5F7D156 +:10CF40007ECA9AF7E9CFFB62E8BFB5E86ACD63BC59 +:10CF5000CCD2F82E1A0BC54B707EDF10705BE58CBF +:10CF6000C54BBE6D3BBFFF4690FB8F6F0D8AF272C3 +:10CF7000DE2E532EDA47C4BDEA3277395F8F9E79B1 +:10CF800075EA1FEF41780FF8C9CF787AEBA731A483 +:10CF9000D3F6CFBB397D1E06FA4CE0EB15D273A356 +:10CFA000F5AE455115E9E7223F6BF15766D35BEBD0 +:10CFB000C5FB1A3C4ED3D21F83DA8745E718F71911 +:10CFC0000303C0460F559CA7B6152497213D7DB598 +:10CFD0003D2ABACD5675493351CDCFF1CEA778123F +:10CFE000DF20F7146F6DF2E31B3C2CD5043B29BA0C +:10CFF000D7A8517AAA29466957934E6993C027A0AA +:10D000008DD6A1CD623DDB24D29B043EADD4AA6F68 +:10D01000D94972393FBF97CBDBC80F2297F177C44C +:10D02000AC773D80AF9A107E96749EEBF7C7C5B281 +:10D03000A424CEE39B91FF868AF3FDA1B5FC3C7E40 +:10D040009BE013CB6F67CD6F8B90DB2D421E6E0F75 +:10D05000E8028FFC1CD95724DE151179EB7EC81924 +:10D06000F0DF2B65C7FF6D08FFCACEA37387C3101F +:10D0700081321E5F6AC5937E58C352678AEF76D3AA +:10D0800021773E7F3760535392BE9F6AAAA7B4AB05 +:10D09000A981CAEF971277E378B935679EFF1E41E1 +:10D0A00087BD961E38C779DE1E48FC8CE80179C220 +:10D0B0007FEC1CCFDDCFB1DE318C4B86F99CC038C4 +:10D0C000E431673F575C7BEB0AF2BBDFEA493E8DF8 +:10D0D000F4FFE487DF30D1ADB5B46322C56F801DA6 +:10D0E0007908E1ADCBD53FA69BA5E6E639187F5C74 +:10D0F000E7D31FC5FC1F262D9B83F1C775C3F49B87 +:10D1000070FF91B3E55A5A07EA46338A3F1EBDE5E0 +:10D11000F656BC1FD91934FE83CF5BC9C3F7282C40 +:10D120007B6EF0F938DFA3988E9B74CE27A69D8F77 +:10D13000813F5E41B8FF52FEF8E77EF9F473FE5876 +:10D14000C4F9E356945785F8E175ECFF6CFC705A0E +:10D15000F0C15B22F5E6087D2FF82120E4DB3DFEDF +:10D1600087A2BE25EFA0CFDAED7ACFD28343BDAC44 +:10D1700001F5CC93973D7819AEE3BE3D634B705EED +:10D180000F8E4C1562DC53D4CBFD780FFEE9EEC256 +:10D1900005985EF26021EE03FAF58AD210C373C5DA +:10D1A0008AA28FAFC0F7E92ACA586A0CA5E9926231 +:10D1B000986F54D4EB12F5C6170D5DAA47FE7A7A24 +:10D1C00025838970CEE48C9EF91BF4372C87AFD76A +:10D1D00012B70FFEBAFE00BFB47EA0BD88EF86A2D4 +:10D1E000BD834FBEB178FCBCBF05BCFFAFDAE7B270 +:10D1F000A41903D6CAC5F82AA0A3AF633D43F9001A +:10D200003D6F203D025DBB4C5CCF7258DFB3183BD5 +:10D2100064F1B33A9AF399D56F6D0ED7EFB53956DD +:10D220005C05B7BDC7D23F78BE03F278FD00F5C8F4 +:10D230003871FFA69C75D2FEF93CD64D6905EBA16D +:10D240007402EBA334CE342FA6952CEE15715353F4 +:10D25000305DE14FDE855BAE1A7FF2DB0827C64DFD +:10D26000495EB487564D47F9BBCC922BD7BE968901 +:10D27000F38AB3ED7373997105F1CF60EF8DB2C18D +:10D28000EF19C5A70CBC67F425EE81ACC6F90CB844 +:10D290000772BEFE1EDDEB60CF915ECD1FA73F8201 +:10D2A000F9F0AD8FCFC1F775F3F1B635D8D3F76C80 +:10D2B000F98F67508F2AF38C34C1F070F6F8422B47 +:10D2C0005586F178BD96BC4B358AC7F3F3F33759D1 +:10D2D000F895AC7ADBD0093A7960DCDEDF7A9C81A4 +:10D2E000EF5C263AB95EE076C83D39CEF8446BFC77 +:10D2F000E628EBC6FB80DE3C66E2BB756E785A73AF +:10D30000AEE8064EE89F87359E37C4C7FBB2718BE7 +:10D31000602FDD83FC31F0DDA1FEB8C53D08B7D537 +:10D320009F3B6ED18D9F7D39DC6E5B9263ECC57E39 +:10D330006DF17E8FE44CCE1AEFB70FEB019FFEFC30 +:10D340004C7CFAE4AFF7FD667A14B54390F603A778 +:10D3500070430DF9D77779E91EFA9B9A91331EF83D +:10D36000B1E587A57113E554F86172C5FEB865E8AB +:10D37000A2C48C28BEB3C2DF8BD8D2B380E22E5EAB +:10D38000AFF1D0BB7BA9675837EEDB7284BFE4B244 +:10D39000C8109A476AFDA5F4EEF8964FBD85AFA078 +:10D3A0001DD1A132F4B33CB555A5FCE6F5AA4AEF70 +:10D3B00005FE4B72349E8BFE29CCE33053BBD45A0E +:10D3C000EB3D3684F38DC9897B374B99FCB2D8028B +:10D3D000BAA7F66E58A6FA273A170E9B16C5F7E1BC +:10D3E0005051005C5DA51E1E276B7AF8395D7FEAFF +:10D3F000E5E7703CEFC67F449C77B9BF3F1FE1EB88 +:10D40000EED26A39807AABADFA041DB644761CE5DB +:10D4100069A797E2CB20FD3AC2173166CA12C0173E +:10D42000294AE15D7FF6610EDF0F063B27D1BD8CF7 +:10D43000DC0E96351EEDC31CEE470A96B3AFD33B08 +:10D440006F8687623583D00FBFCF71E6F66FE5F048 +:10D4500077223BC5FDCF3794E4B3680ABE717B9E4B +:10D4600064DAF8570EF1F9BC0EFDF3B8A624F57F87 +:10D4700002F321CA539C53EB4F5E34D15FD03A99EB +:10D48000F341688714403E0AA5F82972A43A417E08 +:10D49000ABB6A84A70BE2125C95F9F5AAF5E4CEF5C +:10D4A000FB55033D8A292578DFF8C9778621DD837E +:10D4B0001D9DC3EDF14C9BC2FC1EED36C147A5D5A9 +:10D4C00027999E657E91AAB807F92438C8FC1B05E8 +:10D4D0009D2CFEB5EEB384BB38DE4ACB79BB94C23B +:10D4E0000A87DADAFF3CCCF16EF19DBBDFDF0BFA85 +:10D4F000B52A305FA46FBBCAF05D0E4F358F33CFB6 +:10D50000ADF2C42F8271765F98C63764D8367EFB41 +:10D510008E05A337C5D0AFB36D72BC10E13E25F8C0 +:10D52000D7ACE1EF72BBC7690973F84F57815C0153 +:10D53000BCDBB74E19856FCB1D0FF7C5A2212CE7B9 +:10D54000FBEDEDE110F9834F5755F6E17BFAA74368 +:10D550002B864ABABD1F2E47659E5421DEFB9BD702 +:10D5600051D486EF1694A1DC839DDD16296B437F91 +:10D57000CBA987BD82DE0D24CF4FA54A476068EF57 +:10D580007153A57BB0A919F1DF4C43B9DDEAA1F8CD +:10D59000A45349CB8FA60791EFEFAEDA10417EB8C6 +:10D5A000DB902B913F3ECFAD9B1702F8B7B6E70754 +:10D5B000F1FBA6168F84DFCBB6563E5F0EFD94CDF1 +:10D5C000C8A77AF406C614BA5D457CB54DBCDBAF7E +:10D5D000CDE5EFF5E5D5F07761F3E2FC1E0EE80F3F +:10D5E000BE0FA9E6E76A5AE74B3FA0770E6BF8FE3D +:10D5F000552BBAED06CA8BF31B6DB6CA9CE7087CA7 +:10D600009DB6C68334549FCFD3A1985679D253C8C0 +:10D610007EE5EF645AC7755A8F27BD0CFBADF01C31 +:10D620005D8AF04483479742FF6F5A7434AD733E6E +:10D630003EA76D178E4DA19E3A25FCC3F0BD10FD8F +:10D64000516F5AFE0A91CF94F7D1BBECDAE1BE04D8 +:10D65000C16D9EBC1CE7B1EDC24B4761BC8FD6F5D6 +:10D66000E20FE8BB387772CFEBADDCC40D88EFD6A4 +:10D6700082A15252E84B6328E3AE3F1DE585BF4FC0 +:10D680004AE73900DFEBDFE7EF8EA0CB11DF0BEAD3 +:10D690009FC73AEBF712F8FDC651A86BF95B94559A +:10D6A000F42EB9E8EFAD6E2FD5BFB341A7F7DD4E2D +:10D6B0001E80153617DF2DE7E75DFDEBCA123E4EE3 +:10D6C00078C7C635F83D5C6D3BAF82FF6E09713F90 +:10D6D000DA9B0F7F40EBED76C6EFA35BE38FC6F1DD +:10D6E0004B3279BA5F05F03C7228FFE20AE8FFAEE0 +:10D6F000C612F2CFB75878C43FA0DB306C07FA6788 +:10D70000981634BE0293BC5CC8D323A2DEB6C3DA3B +:10D7100053A85F66FCFB113FC6292E0DC7088EADCE +:10D72000D5EFD3FDE3ED1A877F7907E7C3E5B13E77 +:10D730003FFA03AFEE90B4DDB6F3B421021E8BEED8 +:10D74000A5098DE83EA443A2B8118C49F04C1126DE +:10D750004A297E37D720D2F3596FBA14FAD92EFA54 +:10D760007DBDDDC3F83B30BD0CCF8D9675308A93FF +:10D7700000BEF063FCCDB28E21E8E361BB63F1DF54 +:10D7800060FEF59D3E1DE1286D7FDF8FF5C31D5EB8 +:10D790007A2B1219D963F16D49061F63049C793BFA +:10D7A000D6D3F863AA98C1DFA7D49FA7776DBB7CB7 +:10D7B0003AADAB727C1BAD379D797C7CD6D74EF1F0 +:10D7C000E1351ECA8FA9E6F08FE97A6C2D9EDF5EE7 +:10D7D00015E3F3BEBA1AE84CF0267A4AB17E95A654 +:10D7E000E1B956DE4E5E4F190970C3385723DC523B +:10D7F000062FA502AE52840BF0558AF527D0BC0F38 +:10D80000E33C23ED43F5CDC599792C15F35A8AF005 +:10D81000D37D19CE4F4042F30BBC6AB9C82917F922 +:10D82000F35DF23F9BD797F1170E3CB88E9B34EE19 +:10D8300018715EEAC1EF12C6A13F4A709476F81CD7 +:10D84000ED3BA28B7A681E3B7CBAC4E1D2517F8546 +:10D85000045CA12E89F01ADA21E611B7F13B941F7E +:10D860007F8E99F81EE6FA7CFEEEEE1B1355F2331E +:10D8700080F1FEDAF751FEB6A9741E70F7E73CEEB0 +:10D88000363551DDB381EB1589597A0B80AC6C5676 +:10D89000A9FDF62A7EAF54ABC99FA9A27E3AD4B99E +:10D8A00090F443FCE43FD2EF90B8CE874387836483 +:10D8B0007F8E5AE7C40BC06FE07EB6C8756E1C360B +:10D8C00087CE44BD8AE57995A47F493E27DBFBC519 +:10D8D000F3955FCBA49FC387772E40FF6CE870A2BF +:10D8E00004F924E6AA571F292561081F02E8A85E4B +:10D8F0008307EB597EDC10CEB492D243988643CC9A +:10D90000CCE17953CAE73F37311BD2BD3312F4BEA5 +:10D910004778127FBF9BF09F4F691AD3CE4AF1FD23 +:10D9200070B244A354D779AA516A8D67AD935B4511 +:10D93000FD7F0F7BB2BE831936FEECB3EB2D39624F +:10D94000DEF4EF785EF8554EAF66A5AF167F57A1AF +:10D95000F940083DCDECC1BC5421BE67B446D82186 +:10D96000FD7EEA8A45641763280FCE87317E9FE8E3 +:10D97000BC70F92EE4F3F1468F670DE9311ECF78C4 +:10D98000E210D841E7E37BA94604F59D59E4A1F1F3 +:10D990005E7F867FDF18BD7414DA51DBCA424C8289 +:10D9A000EF8930D7A7DBAA37DC84FCD1BD43CA4757 +:10D9B000FD7CB7B0A7EEDEB5B20DE3BBB6E20F87D4 +:10D9C00040FDA7269F9C87F5524F7AE88C736687A7 +:10D9D00074470EF4F7C6CB018AE77BE35F3A1BB0CE +:10D9E000FCE331A1ACBFAB90F1233099DBD386C30C +:10D9F000AE0672489877D70F0E3F4676DDE8EA8488 +:10DA000089FA57AB66339078BA0150C1DE351CED08 +:10DA100031C9CE8D89FBB955FC3BF0A68E71917A48 +:10DA200011CFB7362569BFCC2AB8BFBE35BA3B1F68 +:10DA3000ED8DCD7B64BA035AB56BA1FFEF515F56F4 +:10DA400060543A63FB53969D93243BD7DAA7BF5E9D +:10DA50005E678431FEEA05AECE3B2A660EC1F568EC +:10DA6000B0F5E2C7A1AF58F710498F51C8B437B32A +:10DA70007E6CD37AFD88E7ABBA240DD78FABC0E6B6 +:10DA8000423C96EE9052F6F5232AF406E8DD0D8C22 +:10DA9000F43CD7BB51A14740FFFA29FEB19DAF0727 +:10DAA0004B63BDEDA47F3ABD7CBD90750FDA65CBAD +:10DAB0004DD0B7004B49CC1882F1525737C8718C02 +:10DAC0000BBD5AAC3396FECCAC570915EF5F5A7AB2 +:10DAD000385FC01115EBC31093AF0FF93BB95E1E51 +:10DAE000D2C5D31345493A87A158BBA199756D4F4B +:10DAF00048277CE4777493BE1FB283EB7D8B2E3076 +:10DB0000BF33FEEE44DB8E8933116FE11DC51EBCB1 +:10DB100037BA2556A7627A322C39E201888838CF85 +:10DB20001DBB48D883A6D84F14B47D1391D9BA6BC6 +:10DB3000A98AFAB0340E7285FB93A265F761B0C86A +:10DB4000DBC20E662C49EF2AB0867ABA7F1216F035 +:10DB500007AB7A0DDAC7762DFC0EE2B3B4AA7B04CC +:10DB6000DA1591AEE3ECEFE0FB7DE108CD2F5295A5 +:10DB70004AFB715D2AE7AAB8B43AE9C7FA57C73C2D +:10DB800004DB2939CD307F2ACEB4F57A669E7786BC +:10DB90007368FCFE7D43974FEC1B52146F69ED1BBD +:10DBA000364A89D7284E621AD72B1DF194B144C743 +:10DBB0007D03D713778F5477A31C8E0B09BC44FBCE +:10DBC000E87D6EDA4F803D5F117A6A2EDAF3D6FC7B +:10DBD0007C627EE1A25EFABDABEFFDF37103E10B67 +:10DBE00056778F906CF08D0E89F995F7987E84AFFB +:10DBF0000AE687F36F87F945079F5F58948763FBB1 +:10DC000072B0BF4C3F26D12392F26A488F483B6FD7 +:10DC10007735B4C37EDC7CF0B8C0CF68841DD707ED +:10DC2000C369279E2D1EEA216460C45BA565BFBA47 +:10DC3000D63D3FFFFD9E906B3D7A3152DCEFBF3306 +:10DC40006DF6ED433297D787E260FF15A3BEE7F785 +:10DC5000855047601C53E8618F390CD73B48513FD2 +:10DC600085BA65739CCD6F15AAFAB3237E693476A5 +:10DC70009C6D3F2AF6A1E12A4EDF20F0ABD7B61FFC +:10DC8000FC5198EFE37F14E67EAE6055430CE574DB +:10DC9000E0FE93C39B1BF3A42E423BF1429EDF3672 +:10DCA000D943F7E1C7A17C16A0FD728FB18446EE7F +:10DCB000ADC5FDE9C6AD2AD995A95DFCBE526A3253 +:10DCC000B727BAD3EF737B3CA5D2B9BE59CDEFFBD2 +:10DCD0006FAFD950782D8E5393A8F2DAF82752936C +:10DCE0007D1FFEAED8CFE3F22DFC2E927D5DB0F20B +:10DCF000EE763EE17FA13FF457691AAD8FF127E53B +:10DD0000C27A9473AD90E26447443C8E7791BCA98B +:10DD100030F7AFA5F9EFE558FE39EF918DFCFD9F87 +:10DD2000CCEFE58C8860BBA8F3DD1FCB6FE79BCC05 +:10DD3000F11B8EAA146C16167E9DEEB487FC19DBBF +:10DD4000638902FBEF37CC8970FF936AAADCAF309E +:10DD5000D1695F4C8DF0DF0D982CE095D39C6FDE80 +:10DD600010EBB2FC93A9FC3D971EFE5DA962B4EED8 +:10DD7000C17C8EBAE6F19E6B1E5511C46F59F679BF +:10DD80005874FC2CCCFDDFE8EF40FF8322F44928D7 +:10DD9000E5257A6FA9EA217D6AF1D57213F80ABEEA +:10DDA0007B76FE8EFC1AA5A89F80DEA9AD6EBFC64D +:10DDB000323FC2BD11EC1FF4B73BFC1B367D84F82B +:10DDC000C37EDB603CB49BDB584243BD61422F64A1 +:10DDD000CF747909AFE14E29CF8ED7D1218EAFAB69 +:10DDE00010AFA49F9FA6F1B7C64B28FEB7B5E0526F +:10DDF000F23B05DBC77AB0DD74616FB58A38E04865 +:10DE0000919AA27954F7919DB1FBC2DE18EA794B41 +:10DE10001EAC712CB84942EDF1DC5D5E4E0F8B2ECD +:10DE200015FCDD0E2F330DDC6F65A1C732E22BDD53 +:10DE3000F9FB19163D9E15E710FB7B6646ECF10BCE +:10DE40006EBBD7B26FDDF6EBB0B04EEDC332D8ABE0 +:10DE500095197BD65A67374AA957BE8AF2FA80AA23 +:10DE6000737F4422F60A1479C786E89EF1437277DD +:10DE7000B092FB43F9FB58820F8F0B7B52DE3A9531 +:10DE8000EC00A553CC7B87C4E77B763E6C3D131F2B +:10DE9000A2CF0AE1D63E2D66C6109B1F673623FF30 +:10DEA0009796E279CD54F97EE6D332AA97C53F54CE +:10DEB0008CBFC7E2F60B813EA377C0FEBFF1070916 +:10DEC000BF1E937B634E3FCFFFB81F687FE4AFF068 +:10DED0000331979FC7EDD771FB892CBF0EFED9FD8B +:10DEE000456E3F4F11DEE22D453FCFD3910B507F62 +:10DEF000367A487E4F093FE4E68E7973CD9ACCBBE3 +:10DF0000184A5A263865533DCA7F0F93CB9BA5D735 +:10DF10002D3D9F45AFFF6FE2C341F4FA1F72988811 +:10DF20008F15F2156532AEE70F3DFC941FE3625F7B +:10DF30000D0BFD6CADF7B8CEDBD6F530AEF313CEDE +:10DF4000619D17F238F87E89CBDF2DB33D01843B0C +:10DF50005FCC37AF8FA7F9BDE2F76D984269A7781C +:10DF6000B7316F9E13AFE71F74F3F37AEEF7F71B29 +:10DF7000D14B50BEE679289E75EA4BCE7AF38A9F44 +:10DF8000892E0410F3E7703AF4B70BB1824548DFED +:10DF9000D932B5BBE094B35D067E515FE3707DED91 +:10DFA000D3B3D48BF2730837FCB3FCBEECF0C78C50 +:10DFB000826F4733F05F1473D6AB5DF24CC177B21A +:10DFC000C15FC486D65665E0BFB8DC7766B8740E0C +:10DFD000FFB7AACF52AF2C3BFC0BE70D027F39FBFA +:10DFE0003ADEF7F94EED59FA1574FD6EFD99EB5DC9 +:10DFF000D9E81EC774DC5F18C0474C21FD9DDFC700 +:10E00000FD32799A42E997E72333BAC0C6476E7E5C +:10E01000983F51217E19C847827E820E67E50FC165 +:10E02000476E7E38573E72F347868FCC824B6D7CAD +:10E03000E4E687CBD728A4CFF2E730FA3DAE817C67 +:10E04000C4DB9D953F041FB9F9210B1F115FB8E197 +:10E0500077F3C9FF387F680AD73342BFE4E97F29E5 +:10E060007FA4A30B6DFCE1A67362C61CE28381FC56 +:10E0700021E822F8E3AC7417FCE1A6F3B9F2879B20 +:10E08000EE19FE48931EB1E077D339B97E4C1E3F9E +:10E09000C7EFE78B73A3B30E740E9DBBFC333BBC81 +:10E0A0002503E9FD17D359177416F29F17FF4BD7B5 +:10E0B0001358176C7476D36BD125AD44CF81741689 +:10E0C000F815743E2BFD049DCFAAB707A1B39B7E24 +:10E0D000193A336EB7CCE3F6A69B7E40E7808BCE31 +:10E0E0005F8A7E67934F377DCF46472BAD1FE47E17 +:10E0F000EF7BB9DC4E3985861DD6CBC95EEFE35C7C +:10E10000EECF9E982BEAE53AE3B4ACF4BF457FDF4F +:10E1100013F5F6613A3903C7DE0D0DF5E8F7DBF7C5 +:10E12000A43E7C816D9CFF0BC280523A00800000AF +:10E130001F8B080000000000000BED7D7B7C54D598 +:10E14000B5F03E67DE93493233E4319317332181D2 +:10E15000A0894E02A480783D7980E1A19D205540A0 +:10E16000D4415E010209D42ABDA5971308AF346AD1 +:10E17000120382459D00B1145FA1179522ED0D0F8A +:10E1800029F6EABD915A442FA5817A3150C4D85A54 +:10E19000A5F7D3FAADB5F63E99334302787BBF7F3E +:10E1A000BEDF8DBFF6B0DF7BAFB5F67AEDB5F730E9 +:10E1B00056C7D828C65AEAD8F48E7C067F3E696ACC +:10E1C0003C635FE3DF6D8CB99C12959F5DE5648ACB +:10E1D0002592DFB4C13F81417D7763E13AFCCED91E +:10E1E000308829798CFEBE66BAF697873065502450 +:10E1F000CD5898FA738E878E1D583E94CACFAEB212 +:10E2000052FF387EB0A0BFFEE306E8DF7B8DFE3311 +:10E21000A89C3195B164DEDE9AC29889FF931912E9 +:10E220000F5C302431B636C3EC33C0529F77B32A2B +:10E230008483D69FF6356598CF48374183A472A56D +:10E240005B9B47366305023E2623FCAF08FEB7CB37 +:10E25000A05A12AEACB746867E1D980A79F4F01D1E +:10E26000E594A9BD356C54C2087F23941744CAEFC6 +:10E2700010FDAF91022743304F35D31C68F731B6FC +:10E28000FE568E2FAD5E25D683F595380D629D41E5 +:10E29000867034398E9E94603E26AB4335D0FC8D1B +:10E2A00017BBAD9179553A19F5CF58A7811547E0BD +:10E2B0003250FD35B7621E7C9359B8CE7FFDFD8F7D +:10E2C00072FAE85BB0C34CED59BA399C2B45D60BBA +:10E2D000F0A17C75390BB7437E86956DB0023CD7B3 +:10E2E000494C718C847CC94AF9F8E704FCA58B7908 +:10E2F000AECF653BE59B216D64472C4588BF5A8FA7 +:10E3000003FB4933FBB07E8EC7DC29C3FCD6353313 +:10E31000351BEAAD5BEB502D50BE2E3E3B6C80F9B9 +:10E32000AFFB8A8FBBEE3E5F7835F6AF28BE24E8A0 +:10E330009F86F2F1766E6C5728EACD7686D7403B01 +:10E340002FEBB23143A47FC6325DE7E2186631A2FB +:10E3500043A71B2B5D4147113AE5F498BDD198675F +:10E3600084F57DC6EC01A4BF35AE5A8B0DBE2B9A49 +:10E370008AF35876A47EFD2ADFB87A932E6D02FCCC +:10E380003BAEEC77C5204E4FBB5DB5D38350FEA2AC +:10E39000B46C7A504727E75C9C9E8E0BBA6323834C +:10E3A00056A413E8F1F86DB83EA7EC6B90F0BBDA19 +:10E3B0003A09D3AAEC94000E61CF54EB22846BA3EC +:10E3C000ECCCA5F46AAAAF427DC4E311E7831BFC41 +:10E3D000B08E7A551E61F1617FCA94428063A2C0FB +:10E3E00053B851E6F8CD63E15C80DF8E46396D0E9F +:10E3F000CC6BA8B3A814F7F791BA876506ED9B2BF1 +:10E40000184B85FE8CAC5335E2D770AAD30AFD3D7C +:10E41000567E369883FD489CEE27181C6993A07E93 +:10E420004BD82823DB38D836F44D13A47794CBCCC3 +:10E4300002FD2776CF9EC2002FAF3AFDB44EE3A96E +:10E4400089E719D06773E37627F2855D6D29DE10C1 +:10E450007CC36DEBD270FC8471C6B37D748BFD8D73 +:10E4600037A77543B96364747E7886CFEB84FA76F8 +:10E4700006F9DAFEF6F36F27EC9F5C4137C726A654 +:10E4800048DDF9B80E5D7BA8E76A65328ECB54474C +:10E49000D2B91B19DB03FB16F7C92E59916D089FE2 +:10E4A000D352A01D8A7736AFB38474F81D9BCCF18C +:10E4B00056BF8AE57E087490E79783C82FD64A9C9A +:10E4C0000E8C0EA6205C34FCC67EB337962786FAE7 +:10E4D000E16B7DFCCD3A645CFD88487AAD89C3D997 +:10E4E000E8EC929D0057DF5E67611CCCDFA7FAF66F +:10E4F00075C33C5B0AB20A71191ABD1D9D3874EBD5 +:10E500005CA8B7FC454700F1613F653983FC20CE2C +:10E51000DAF8297E5B0ECE603EE07B712B9272733F +:10E52000601CBB2F253707F8B2C9A9305CA77185DD +:10E5300039F743C89FF0727E6AF755E6D9B0CA9999 +:10E540009B03EB6F5D65A56F8358FF8D2F4F497C53 +:10E550005007AF8F04DFD4D2C6157101FDFA925D6A +:10E56000003FE2C7614FA58E1F3FEBE27C54EB37C3 +:10E57000767CAD9C8D54BCE3010EE189666703E0B7 +:10E58000BBA4D298B608D6DFAE9A9D48FF2D75770A +:10E5900037CC427CBE63209A6899684E9BAF5B97EC +:10E5A00046C7B1FD9B45FFBBBCEA535200E9E4EE10 +:10E5B000496F79206D539F629866D3781A19D458A1 +:10E5C0004CCF98A4203D23E34E03FED39C3E4985C7 +:10E5D0007E77B9D49932F0DEC76C150D47C6403A44 +:10E5E00057FD4082F4D624D6598EEDFDBC7E5D6B7E +:10E5F000DD0615DB17F0F4BAA4FB26613A2CD6939E +:10E60000D466267A0EB7D5BB719FB4564E4BF3C174 +:10E61000B7BD30EC61D0DF59D7A7C7ACC0E79224B3 +:10E62000DE9EB1DF54E07CDA453ADE75BC02FB2B9E +:10E63000A9CC7912E1B1A3CB44F4B1E3D87766E277 +:10E640007EFF0CE085CC369CE9F306FB8177FD2A42 +:10E650004F6E2300B011BF3AFE67727A725FD0E945 +:10E6600003F181E87458F279717EF7C1F846587F5A +:10E670008BC9B715E17747F36E9E8EF779111EB7F8 +:10E68000366FE7E964014FF5299A7F8B97A7735D91 +:10E690009B69FEB1F3089B585A20FF3AE621EAFD38 +:10E6A00077D731101CAE77FCFF8FDBCF0C38AEDD97 +:10E6B0007EA72B9A0F5CD18FFFFAFAF97BE9F17FE5 +:10E6C000DBFFBF6D7F9F2B9BF8E6B5E981513DBB1A +:10E6D000CC42C8DF374D2BB5CDD6F19D82642ECF0D +:10E6E0003E7232A1472B648FB46F9A6043F9D9B25E +:10E6F0003260578680FC6D9B6647B9D5125CEDCEC3 +:10E7000045FB01F4296479F55FAEB1A25E525F2149 +:10E710003B57437A8733DB86E5CD90C6F2E6A452B9 +:10E720004AABAA1C40B9B036C96D9BA3930350AF46 +:10E7300002E5527379B677BE6E5E2D421EB19530FA +:10E740002368BF31237B7B835F670709FDA0A5AEEC +:10E7500074E270183F8CFA1DFC1D9938E118EA69C3 +:10E760002DA0A759484FCBDE9883F353E400CAA9E4 +:10E77000A1223D44310620C9866123A8EF76B270FC +:10E7800027F2E5D69F2D473EBDCE0983C378431AB5 +:10E7900043C76E8374A247F6A1FECC1A41CF053D54 +:10E7A000CF853A0E747030985D67443E3F9A119F52 +:10E7B0005F87FDA1FE1E609AFE1E5F087A129964B3 +:10E7C0003E94F7E326E5E0FC403FC4FA9A9EF67ECD +:10E7D000929FE03F08F5384887D5A2069CE7A680BF +:10E7E0009119A09D738A4EFF6257EA6FC926A6E071 +:10E7F0003A92879BC32A8CEB88D1D762F5B23EBD93 +:10E8000020087A85AE9FB83C6754FAB353B733D427 +:10E81000CB9BDF603B51B95DFB06DB4F4A6ED39368 +:10E82000048745020E7F5C1518570F08CE919C7621 +:10E83000340A0C430A7D0CE8C66668B2E237470E1C +:10E840003C5E02E31E7BC94EF05EEE3287113FCD87 +:10E85000E3EF9E8EF0EAD91ECF10BEF526E7569460 +:10E860006379C95F6E4039D56CEADA8D724C664FB8 +:10E8700034546482BD63E4F86A4FE2EB6CEFD87BFA +:10E880006137E1DB1A40703F56B1BC02F5A91E9911 +:10E89000DBB5CC18F454023DEF79D13C9DEB3F4100 +:10E8A000D27F76B5DD9A87E32C79E2D58D36B075C7 +:10E8B000F6C892D02F008EA319EB403D80D2F37E94 +:10E8C0005D9E437A27A5E35B9E6B40F9B876007D99 +:10E8D000E90EB19F3AC2F142BEB63594C09CF7949E +:10E8E00032917E6D9292C158E11A49E80F2F36603D +:10E8F0007A0F926F1A87BB0C30DD63D6EA1F9854EB +:10E90000358EE637D9007BF9974FFC78A3634C64CA +:10E910007E39EEFF7C53CDC1F26555FDE913DF4230 +:10E920007D15E8AA6324AB407840BBE961DDFEFBBE +:10E93000E5206E3FFF5A7C61DEB20FFAF11941BF4C +:10E94000866FE0A0D1BE48CF2FDC765A5F9585D583 +:10E9500062F9BE6ED93E5BD79F2F49ACDFC8E23E5D +:10E9600000BCB81ACDCE3A58862B7C2BE93FA60CBA +:10E97000339300CF725257513E94E7EE75B0DB816E +:10E980007ED66F0A905DB2634CF8B1B188DF4C3926 +:10E99000A022BF08DF58CEC01E6D8F7710FEC2BB0D +:10E9A0000C15CFF5A3478E4A32D0B8EBD5A2DA8545 +:10E9B00030CE058783ECB8E78D01A2AFE71D66A7CF +:10E9C000CA8D5C2FF2B71C399C86FA50B0257B6348 +:10E9D0003DC03747C0FB8DA4BC8DA40F3A3BEECCA5 +:10E9E0008679AC07FB0AE7B13E69AA15EDA8E66097 +:10E9F000AD1559C3CF0ED656F891CFE5CA6C358CFC +:10EA0000D35CC2F5DB9C64F724A4CF9CB56E89E986 +:10EA1000F6D907020FE100A75F3549F00723CC03C1 +:10EA2000E1B2AB3880FCCDE26445B85E5346ADA29E +:10EA3000F483CFF3A21F063AADA398B620EDBF949E +:10EA40008A133F40BED163EEF83784DF7A973DB03A +:10EA50001DF277D83A12B0FF14B75DC6F5A732F8A9 +:10EA60007F0055BD0CF8417B328339EBA05E6AAB69 +:10EA700099FC1929AD66B2635A5499F8D8DAB92CC1 +:10EA80008CEB4855E533E8E749E9FE74158EE34918 +:10EA9000923BCD989E65663E1D5FF29C3AFF15DA6B +:10EAA000A11E06F93A7E733131B8CC0DF3B6643845 +:10EAB00025B207B16E31DA95FCCFAECAAA05FA7D50 +:10EAC000B18EF3CFF53F64E1ED12955B5714F1EA97 +:10EAD000E8AF318BFAEDAFB017104E666B6397213C +:10EAE0004107D7151CAEE6D675CB701DE63CDD3C64 +:10EAF000E07FBF446707CC239301B707BEF447C646 +:10EB0000F705FE19A1280B71024BBFD8F1071BDADC +:10EB1000573D66EE57205BA458D8F73A3F458B9B8C +:10EB2000CBA1D87E064BBC9E967E86F17EF71C71EB +:10EB30004F46BA7F76457621F2F57A8D4F31DE3F2A +:10EB40008A35C44FB2D3AE0C87F97F3789F7BFC778 +:10EB50005EDBEFFE5E91C4EDA7E63701B1008F3DAD +:10EB6000AB7DDF45BB74FD66996D87AE0EB6723C1A +:10EB7000B63432E2B72D4AE03753707FD51A032AF4 +:10EB80008CDF9E27F869852F5C27FC4D2ACC375EE9 +:10EB9000CCB73D236837201D8C67CEED80C7F87257 +:10EBA000A6D86E22BEDA80ED8694BB19D22D03184A +:10EBB000CB30FF38D12EBE515D8674D09C11984960 +:10EBC000F033FAA4CA82083C1C028E7115500FED76 +:10EBD000E6A4571F41BF5AB87C2A43FEE34882711E +:10EBE0001278BF48E4E472027C391A79BDC469D155 +:10EBF0007447FC12E97E29D00DCE737434DE5B04B9 +:10EC00007CD28DACC20CF454E7E67268C7420E9712 +:10EC1000B8404C7F76DFFB55044733C37D94B53253 +:10EC2000BA3CAD35A514E92E83E9F261DC936E1789 +:10EC3000E12BEDD8B6A932AC6B6D15930D382E5380 +:10EC400095AA228E1FE41BEB27C8D46F7AB9BBD4D8 +:10EC50008C7E9A7259413CB9AAF2B7A35FAC4FCFF0 +:10EC600049724A45F958CF593AF426F2D772FD2233 +:10EC700005E81CC64B3FD6FB5D845F5A75F4FC98D3 +:10EC80007EFF19AE9D365913D4B89BD01F1ABD6FA5 +:10EC9000DF1AE4EFF323235D709735FE1FF7B71AF1 +:10ECA00013983D0FFD9B0D32F971D0D79801733445 +:10ECB000BD20ABA9D09FE505BEAF4D1D46755802DE +:10ECC000EA214C316379C6DF2CFAF9EE7AC59186D8 +:10ECD000780F0B3F9F41E8AB1A1C1A069909AE0D3D +:10ECE00082FF95BE9651867ECFB5995CEF0249446E +:10ECF000FBE76131F71E39B8250EE1F481856CF32D +:10ED0000A263EACC7F85FACE72861E63B6DE586BAC +:10ED100075E9E5160C2D7BFEFBDF16A11F85513F23 +:10ED2000BA99FC1F3391BE34BDC6D5296BF25D4143 +:10ED300051DFA76FA80D1B51BE1718BA6EB0823CE9 +:10ED4000DADCB473637926CAE1CC1B8DC073760F0D +:10ED5000EADA684AD6E90BEAAF362AE3AEA22FB068 +:10ED60000F2656A17E91A1A58F4E54403FE8B08A50 +:10ED7000B4BAE94D942BF526F525E4698B92985A9F +:10ED80003E1AF99C56BE75A3027079D1CEFB5FD4B2 +:10ED9000BA75A39A716DFD03F6A93D187F6D38858C +:10EDA0008DCC8EF2332CE0E11FB479629D4E7FA9A9 +:10EDB000DED53509CF1D34BC0C16FC15F4CE0EDCA7 +:10EDC000BFCD42FF6C4E1E4AE71DEEB05909F7A3B6 +:10EDD0000F8C1F64253A79354EB96DD0A86BD3D707 +:10EDE00078415F7F75737E5A60E0FA4D6CBFF70E15 +:10EDF00012E53BCCB5386EE96B0EE2232D7577EF4B +:10EE0000443E523A2C7F6B1CFAC9DEBFC784E91915 +:10EE1000838CD46FF8E7A1614E2EF7D2104EE80F25 +:10EE20002038BC324EC675C4C26908AEAB9FFCCA5E +:10EE30004136717EC1661E1AC9CF17D01FF7E26A2C +:10EE4000900FFDC061D1A03E3F2A53C8D871927D7A +:10EE500097E352143A2F4A0AAA8CFC12325374FCDC +:10EE6000526B6FBC9C1E75DED4E65418D6375ECE4E +:10EE7000A2FC1463B07A10C0E3A95747DF89E2EE21 +:10EE80002921CFB29CCA5284FB671B4646F9F56321 +:10EE9000BFD7EBE7FF81F06F7E537B648D5971A381 +:10EEA0003C6D6381807B08E2BD298072642353B28C +:10EEB00031FFD84B8B9A4AD01E79DB407CA45E523E +:10EEC00097CEF5A33F582D46BFF7B5EC91D87D5BA3 +:10EED000A430A247A39195239F1B8C861FFAE37D44 +:10EEE000329D93998E703D0AF9237E0D20172429B7 +:10EEF000C2378C6123951B4E5954942F06751DE91A +:10EF000037466790FCC64139B40DE1CA9A8095C274 +:10EF10007A6D1C65CCE05018DAEB03F185BD4F3CEF +:10EF2000367103EC63C311FB19EAB7538C7F6A3D5A +:10EF3000F9ABD916E8AF38D21F8CB30BF16ADD17E5 +:10EF4000EC8CD3F72FEC98DD4FFC68A33AEE2AFD4A +:10EF5000355ED1DFCF70DEB1FD697CEDF1271A2778 +:10EF60005EB5BF9D57F477A0BFF9697CAFF189C743 +:10EF700037225F327672F963C47EF18BFD41BF5652 +:10EF80008027D211F47394E0592E45F58F6620EE58 +:10EF9000D3587B49FBE6B839BF88C5FF8B75B5D31D +:10EFA000FBDB8717DCDC2E8A9597269497455C4E11 +:10EFB000A6EAE8C282F2F2A681E5E59FDD4CE30312 +:10EFC00044079A5CFE2A31F47B848B2589AFDB925F +:10EFD000C1A410E997DCEEF97BED8F19823FEEB00A +:10EFE000B1863CB42B26C84ED42335FBE1C53AE7A5 +:10EFF00044F45BAC7F540EA0FED9673708BB42B324 +:10F0000053EA914E492F95B7E3B92AD81B93C9DE2D +:10F01000007B041D4BED304F1BF2F9D6A2DF4CC133 +:10F020007AA0AF929D136B6F083BC433373AFF62EF +:10F0300062484A02F8382A64D25777E42DEFC47543 +:10F04000369433EA27D62E88D52763F5C758FD3086 +:10F05000561FCC7828463FFCC6FA18D7A7AE572FC4 +:10F06000C3BFFEF431D20F69FF7F8FCBF13A9EEE22 +:10F070001AF43D92E355715CAE1DE895C93E0F3719 +:10F08000A6B871F81D263699F4E7F13E37DA8905FE +:10F0900002CF55894E09EB81E1E8C473783989398B +:10F0A0000200C75C552E044E0C76BBE228443DBAE4 +:10F0B0004E262B6DC718B0EBF15CE81507D9CD11C2 +:10F0C000FBFD85C7C6A23E06763D9DA70E60C78F95 +:10F0D00013FBEACF6E278D6F303705F2913FD6DDF7 +:10F0E0009D8674DC6E0A92FFFA67C22FBA577C0DB8 +:10F0F000E21C492B7F55F84BF70D50BE5F941F1053 +:10F10000DFD8F25F8A769D03B43F24DA1D19A0FD93 +:10F1100051D1EED800E5BF16E56F0DD0FFBF89765F +:10F120005D03B43F2EDABD3B40FB13A2DDC92BCA01 +:10F13000B97CFD40949F8AE9FFB4A8DF2DF2CD2E63 +:10F140001FF75B0C703EF6A29FF3BBEA235D8A3F7C +:10F150002182C77437D7D3357DEE9AFE2B61DF62EB +:10F16000DF684792C93124D2DF8F05FFC4BFFAE2BE +:10F1700088FDA8F1B3DC913C3E43B343357BF1E716 +:10F180006E1FB573B40ABB957530AE7F5D1DCED3CF +:10F1900091E693E99C90FC3A487FF374F43A2BC9CA +:10F1A00044FDEE2AE4F08CC067A8ACC14786FCB9E8 +:10F1B000C27E37BB38BFDEE58AF4A7F7835708FF66 +:10F1C00055F81AF4599EC4A2EA0D4447D3C4FCC3AF +:10F1D000D7A0E78A98FE06A2AB5931F506DA5F4A56 +:10F1E000CCB803ED83604C7F2F89F20EF11D2DFC0E +:10F1F00088D7A2BF583A0EE3B9F0581CA7A841D54A +:10F20000F963347A71A832F91592596F147D24B0DC +:10F210002E1ECC22E8C374D9CF9411C45C496E76FB +:10F220000FE2F33019830CF576D3E51C2AD7E24DB3 +:10F2300036F856BB317E646D5252217503FA03FADB +:10F240003B6C621FF4E921182780723E49257D45F9 +:10F25000A7D7BD9784441F8ED6EB343D44F33FDFE0 +:10F26000B1C93C91FC9323B9BF5FCDB3921F00CCD1 +:10F270000CCF20E4C08629013C777FCFC5E9E95A4D +:10F28000E706D73A27B8D6F9C0C5A4F8248C0302FC +:10F29000A91A407935E1E5FC960A8C8B78C740E7DE +:10F2A0002D8F34A99685EC4A3EAFC55F68710D5A23 +:10F2B000FC8516EFB009FDFC78AE93E76943BF9477 +:10F2C0002F99C3F1A02ADB51EF689FC6CF73DA8F65 +:10F2D0006DAAC0F3A5CFCA6527D2459E293811D3A0 +:10F2E000ED41EE3FDED03A75D270944F61239D0F11 +:10F2F00044EC0E4FAEDEEE18EAAC2DC5F2F669A571 +:10F30000E4E7ADFFB2CC8AFC68BD33DB8676A3763A +:10F310004ED552C1CFAF764C8BCE1FE8FC2A76DD9E +:10F32000FB5D9CAEC3C25F78E3E11995185791ABC2 +:10F33000BA0B6D5C8E939FECAC4BD0CD0A03C589A4 +:10F3400024A31E05F4930BF617E25F8B1F49663A60 +:10F35000FCF831FE85D373018690A12EC0009E1A61 +:10F360007E0D57E253AB1F8B57660CE421DD5D76B3 +:10F3700039A95CE3E303F1FBCB625D4393F9BEDEA5 +:10F380006454A7923E07063FF2E5834953B9BF1C78 +:10F39000F106559A8F99886F7F06F48BFE653C972E +:10F3A000EC2F5E47C3D347229E2E165FBB4C2A9D8F +:10F3B000AB1F6A7BD883F14BEB7F1E1AECECA71FC7 +:10F3C000ED5B27FA01F0D8D09E068E6893477F2325 +:10F3D000BB6872723F768C6617D56CB2929E359080 +:10F3E000BDD767DF09BB4FB3F3747C607A32C5DBEE +:10F3F00048FDDA77DAB952D926CB9BAAF17FD4AE91 +:10F400005C40E37E43BBF27ACFA7BE819DF8487F84 +:10F41000F0D5ECC4999B6CDFD44EACEB175FD7F200 +:10F4200067F5C5CF2A0E09FAABD6D8315B467EC642 +:10F43000EF89BD522DE2EEC61B1CC4AFEC3B25F29A +:10F44000272F568D34AF6A75F532F403D33907D0C0 +:10F45000FBC2B52CACFAA99CF6B3D67E7187857534 +:10F46000EAF6DFD2BD90D6F16D3FE371650BC10EB8 +:10F47000E8D4F16B3F9E1F276079743E33CC4A4439 +:10F48000BC626C657F71992B4EB5DD7244D77F7B72 +:10F49000B2E0E3DF62DF227B44B41F681F7DB12A44 +:10F4A0007CCB11D8972592F27CB26E5F323CDC06A1 +:10F4B00078360C3F97D7DF7ED6E03A674519FB03D5 +:10F4C000F0AF57CDCE128C07559F9128CE774E398D +:10F4D0008FB71B1B96C84E9BF3FDC52390CF8DF9AC +:10F4E0003060C673C6A55DDCBF926A5856F843F813 +:10F4F0006E3AC41E088AF43294F70EC587E762B3E9 +:10F500007128687FD1545BE84439799F43417B7708 +:10F51000F634E57D3C3F983D2BDF8A709BDD6153DF +:10F52000E86B65463BCACF2FBFA6B8E07902DBB3D4 +:10F530008DCC8AF9A96666B4C1F7B5D64A33C6F54B +:10F54000A5DA9915D3C5AB617C8053C2E820CD6F95 +:10F55000F6819FFC05FB5B60EC3C48F1D3223E7BCF +:10F56000F68137FF8A76EF3C256846BDE5C65D66C5 +:10F570007EB621E05FD0119DBE795F74BAB0333A98 +:10F580003DE25874BA020F0201AEAF7F65601817F2 +:10F59000DAFBD3383A07590CFAF13FB8F934D0D72F +:10F5A000B0E8F982368C777DF56FDFFDFD0F21DD48 +:10F5B000FBB681ECF4576F001D18E1670C67E1FCA6 +:10F5C0002E3CF59367BE0FE51776A7A225C80EF56A +:10F5D000F078D6C5CF5988BE2FAD0A8C2B07BDAEAB +:10F5E0006CF1812CE4BB97F6FDF33358FEC7972CE2 +:10F5F000E4EFFEA3F0031EFC60FFB9A770DC97E206 +:10F600000A91EFFFF1C5D786229C163DFF8B2C8C0B +:10F6100043B9B0FBF9624AEFFEE94DF8BDF0D39F64 +:10F620000C9D4DCA5A380BCFE9B57E16BF603B33EF +:10F6300008E077EE638703F9592C5D7DD37E17A32D +:10F64000FF97FA5DDF3508F7DFAE7815BF8B76FDE3 +:10F65000E853FE95DEE1DF3A2A5F0490190D703C15 +:10F660001FCFE5FAE25D9628F80FDB128D8FF3A02D +:10F67000CFFC0CEA0D0F47E79F03BDE067306EDE5D +:10F68000A55993507E9E177ACF39F8EE81FA3590BE +:10F69000EF82FC4B423F885D677A0AB7276AF645DE +:10F6A0008FBFDFD87F7D7F0A97CB797872AAE30F6F +:10F6B0006996FEFDDBC344FDDDBBFBEA1BB87F02A0 +:10F6C000B613D0D862B1AF5E97B4FB13ECA174D877 +:10F6D0002F8BC579A796BF98E9D64DFE8A4022C2E6 +:10F6E000FD1D111FF18589EFDB0BAB422330BEF707 +:10F6F000DCAADAE1E53A7D6CFE966547BD4037D578 +:10F700007B928B28C65CE457FFF47002FAA56EE882 +:10F7100030913CBBB0EBF0E67948A71D2616E7A375 +:10F72000F2142CBFD8F146C2BD903F7F9BAB08CFEF +:10F7300059B5F60BB67C6F78B98EEF7DD37DA8F105 +:10F74000876A2787C36BA3BB26A4C37E5BBC450A1D +:10F7500060B5C51DDFB9EB0EB46DB619C8CF516CDD +:10F7600064414311AEE395A369905FF38B51C5B833 +:10F770001EE8621AE637C8C1C905C89F9E31913F8D +:10F7800010F28FC9406787F25ACC67611DF7A670E7 +:10F790007BA9E16E4715EA99D0DF11F4B424EC940B +:10F7A00014913E89F57B4A3B12D07E396F726C9082 +:10F7B00012914E6B7F83F3505FE4FDB24E3EEF85B6 +:10F7C000C23F5E75C044F6484DFB9A8412B4E7FE12 +:10F7D0006690308EA9B75D227EB0604B347D554176 +:10F7E000DF1E18F7425B3CF57F21399C857AD68570 +:10F7F000F870969BB7273E58B5EB577F45BEB7309C +:10F800001CDD3E961E568975C15F9E9EAEAEA41B42 +:10F8100066341647CAAB57803CD09D47547FD864A6 +:10F82000467D7DE114F355C77B1D6D0882878DEC05 +:10F83000A5C537B0721F8F2B90ACD0FF05FC17D831 +:10F84000838BA7B20A2D9FCE1390AE8164FF7CEA12 +:10F85000578F1980BED31079806FF6721CF94FFF55 +:10F86000F8B199E4C7851E502C60DD4B3D23C69549 +:10F87000EBE67771DFE1049CDF455F67821BE0B553 +:10F880001FF735A69D3CBDB8A781FCD1751D871318 +:10F89000306E6971C7203A57DEFFA2E49601CE1799 +:10F8A0007B9E8B63FDECD3453DFCDC38960F69F203 +:10F8B000F50CFE13E4F0CE14E5D914D477EB0791E0 +:10F8C0001E903AA8B6B0B69FFEB4763F49F1D17704 +:10F8D000B6C4DBA71A9653FDB73CC1DD2990EF29CA +:10F8E000ED52F0FE9067120BAC812A7F30041E7639 +:10F8F0000E4179193293FD5C9F4CE32C608017C850 +:10F900009F63649D46A0CF3928776FA234C16FCE24 +:10F910002E298C2A5D7CA325EA9ED3FC564BD43934 +:10F9200014DBA62B07F82F44B99A40E73C9DE81753 +:10F930005DB433BAFE62D649E356BFF0B545DF2F5A +:10F940002AB65CEF57CC68D7FC45C0E72D8F7218FC +:10F95000E19324E2077ADF3671B9C982FF80EB595F +:10F960002CE4F83CCB415A5FCDF7BF3F7C2EE82317 +:10F970009FACF8C1F0B983845F01F7FB1689D355BA +:10F9800039EBCC84F9CD14FACDE203526701A4E738 +:10F99000C1BA518F18FB82A4C683FC9A67656A02BC +:10F9A000D2D9BB1C2FD5623D582FB108E1A7D27820 +:10F9B000A7043E16B22E5A17C8AF352930DED21E24 +:10F9C000E009903A76B03811E9E6CFC05F713F8226 +:10F9D0005EC26CEE2BF11B0BD7AA6D3170D6C33112 +:10F9E0001BE1178D97A57B019EFDD0D926C1EF4F56 +:10F9F00033254ACF64E29EDDA63A89CB09B572066B +:10FA0000F2E9CD338A8BF1BCF271F487A5898E4679 +:10FA1000231F645AFC5DA715C6B18FE84B5379F1DB +:10FA20006A9EFEAFCD2B276F01FD7FB329E4453FD2 +:10FA3000CCE64AD07BB9DE6243BDE54B6FE86BC4D0 +:10FA4000E71C43F0281EB17F58A20C25BA5CC1E127 +:10FA5000FC6451EDF0DAABE8A5A930769C5BCC0FE5 +:10FA6000F5A80207C52179714E901F9FC5F3E36F7A +:10FA7000B2D3FDA954190CC97EE0AD7D538D60AEA3 +:10FA8000BBE9CBE2F10B03C55FA5BEA62FA6A2B2D0 +:10FA9000847AE70DB57B90BE52EFCF2F5AE38FCC1F +:10FAA00073B304FB10F5E61FF2FB337107F674A67F +:10FAB00043BD25153EF23F26DF732A0FE397F2532D +:10FAC000B9BE9028F4E4AD12AB47BF8007E85D2AC9 +:10FAD000C274B37739E48FDC2B915EBD646F8961AA +:10FAE0008983D6CFF5EAB8DA3619C77F208FC607E3 +:10FAF000BC3C3015EDB1541FF5EB75707AF5AC5682 +:10FB0000FDD84FE2A1E0B237086E3CFE0CE149EBB4 +:10FB1000B6B20DA82F7B589D84F5D62573BA5837F9 +:10FB20009BEB4368CA26BAF9F7247CC1FAAD37715A +:10FB3000B819ED3CBF1EC7D994C0E7952C1B1EA871 +:10FB400044FDBF88A7DD2B25653B6DC6668E470B40 +:10FB5000ABC075623EAE0BA6A1EC71E8E05B565BF4 +:10FB600088F3481DC2BF6F755B558CD3792B49D381 +:10FB7000833B1D484F6C9F5746B9F99090F79F986B +:10FB800094D4112847DE3131B45792B262EAE7E4E7 +:10FB9000C928371E1272F6B34059223289CF1C4A47 +:10FBA000A20BBEFB4CDC5E88C5FB03A95C1ED65CC9 +:10FBB0004E67619DFCA899FE39D90B3597B3A2F227 +:10FBC0002FAE82950CD3C9C1AA43747F7409EBA2EE +:10FBD000D0E5251D0616D6EDDF7D363EEE17BFB308 +:10FBE00010BFFA6EFBB0ED14CFCC7C0953E323FBBE +:10FBF000B5E6B281A9B0F76E31C854BF66BA99FCB8 +:10FC00008C351B0C6D782E5773D9CCCB07F3FE6A5D +:10FC10002E0F622A9E711BA19F026CF7E9BA7988A8 +:10FC2000FF5F48147F56733985CA357DB8E6B2C484 +:10FC3000EBC3B8A80FD6ECFB42ACCF48F967E18321 +:10FC4000F245DD6720F93A05E429F2DBB36159CDCD +:10FC500005FC5C0AFC81E4E9592DDE4E8C7B7115B4 +:10FC600030D46191FC4BCE6E92AF6918C781691F89 +:10FC70004F6BF0C27284D3A5E91AFFE83462BF4F1C +:10FC8000050E1AF1BE4F75E0E004A6A397085CE3E9 +:10FC9000F04E5F1F5C53D67475CAC02BB6A5BEFD6F +:10FCA000A37C1BA0F090C6B7FEFD4718D79B6290BF +:10FCB000A3F818C6246971C648229B6483E0835D5B +:10FCC0003F2ACFD0A779FD48FB77269703DF1B9902 +:10FCD000CFDB3F977AFC5F57A32CD5E49AB1372B43 +:10FCE00018AF4B5B63D20E4817E8D2CE98F2A498B7 +:10FCF000724F4C3A83D7BF3FB17B94016CCA3DA988 +:10FD00002726633CC4FDE9DDDFC37B5B8D6B4E4E74 +:10FD10002E87F49C919C2F2D3D2091BF5583DFD2DF +:10FD200000237DD511E836A3FF346E64E0A80CF5FE +:10FD3000AAF74914A7EBE8D8D3897CA61ADBF97493 +:10FD4000ED3AB89E5BDD7186DA0DD87F9E4CFBBC28 +:10FD500021EF2CD55BB2E26333EA6D1BF35B8228A3 +:10FD6000378332E757405E4A3A345CBAAF92F13893 +:10FD700054CE4F2F7995C3381FF517129D73F6EDAA +:10FD80003FECD711D91F5AFDFF2838F05B8C7789DB +:10FD90007BE8D33A23D4FFDD928F46E178FF81558B +:10FDA000C6207F0E0F47B933ABEAC1E1987FDF92DF +:10FDB000DC833885D3A6EEA7317EA437F5D2642341 +:10FDC000C8A3D3F1DD991887FCA7272F133C4F2731 +:10FDD000773F8DF05CB8E5AF3C9DD99D2943FA8B08 +:10FDE00027474EA1FAB9DD4F63FA668F87A70BBA92 +:10FDF000330D4E1415DE29E5906E77727EF80CD81F +:10FE0000CDC857FF23462E7F24F84CF750E56C2AC7 +:10FE1000EADFD55C2E3E0DB69715F8E5FD4F75BFB0 +:10FE2000D80E70B8FF1FE3E8FCB6FDE25D93821CBC +:10FE30004E41D4C35339E9EBE4A391F4254D3E6A16 +:10FE4000F888CFEAF291FC88915F4FA7288B3CC9D4 +:10FE500091EF7FF9F97791C727EC81DA421FF43BE4 +:10FE60006B9623D040F109DDA3900E1FB7F175C149 +:10FE7000FE213C3B045EBE12F2EDAB546E571E4CAD +:10FE8000194FFD81BEAF5A119F9566D2CB5A2B15E3 +:10FE9000AF3D09BF2914071DF17F98C8DE6915F72A +:10FEA0009D5B97E4927FAE4FCFFF8985DAC3761DC5 +:10FEB0008AF39889FC48C7875B179679E99EA05F0B +:10FEC000F1227FD1F826337624A31F5FE39398E6CF +:10FED000FC51A2B4C60F19837ABAFB98F79A58104E +:10FEE000ED837BDB38BFEBCB97203F3FD2CFF5E6EE +:10FEF000B7BAF8BC343999BAA683E24C539FF4BB25 +:10FF0000499F40818B7A59F3B0ED08EF2FBD53170D +:10FF10007946219C9EB33D981FA167E730250FF3DA +:10FF2000678AB8388D6EF00FFD77739E486DC3F801 +:10FF300091451E7E6EF1A10C7A17ECBB935E85FA9B +:10FF40005B84BE76FAF273FD59ACFB7BB83FFE17BB +:10FF50004FFFE378BA0FE9FFBF8BA7252B3EBA3ED0 +:10FF6000BE29F6E566A9D394CAF926F733403EEADE +:10FF700013DED450AD47E717BEFF074BBC148724F0 +:10FF8000E613F7C86B15F740F2FE4517FAF80DF3C4 +:10FF90005DA98F9FFEC0DA88FEBED3E60E920FA742 +:10FFA000C1EEAC433E2AFC82A7C5BA8BFF71F15B60 +:10FFB000687FFFCAC3EFB1A0BDCFF474B531F0DEE6 +:10FFC0000FFBA52F03B7FB7E61203DBF8FBEDA87F5 +:10FFD000117DD9041DA519C25BE7239DDDE3203FF8 +:10FFE000756BAE4C7A51EBF7E3C2A817B5FABB09B3 +:10FFF000BEAD637C4EE49B405F84BFDE1966EA17AA +:020000022000DC +:100000000188F53F999E1646F803BDF1716758893E +:100010007F3261177F52951D46FCDE8241E0589E7B +:100020002B53FB081DF62654EAE8E713E1F7FB041F +:10003000F5A3445DBEF033805E90A07F7FE35AF964 +:100040001A1DA6ACD1F603A7BB0F5B52C96F8CFB80 +:100050000BF7C15E413F1A3F3EE90DBD8C74D7A737 +:10006000676B76FEE39944AFEBE3395D6FB3F177ED +:100070002EF60A7EAF8DBF0DEC12943F608FBF82CB +:1000800074F30034DFE746BD38F4CB6E1C77854649 +:10009000C74133D2DD3CE107602BA3ED568C9FEACC +:1000A0004B1BAE4CCF57B83FFC0A3F03FB9B25BA16 +:1000B0001DD77BE2F27B4D48EF4FDAB89DA7C9B759 +:1000C0002D78B806EBDB02F8C7FDA9D5FBF345BBDD +:1000D0008C71CAC7C5FA8EBD352211FDE39A7D1E0B +:1000E0006BAF2FC52540BF353036FA976BEC3EF22B +:1000F000E3DD62E0FEF6DE764B147D9CDDE715F471 +:10010000A3CCA6F2BA781FD207B6C775D5E4600CA7 +:1001100095AEFE9661BCBE464FAF48829EC20B7143 +:100120003FA90B6F60B83F6AEC9C1E2F6D34B4E1A1 +:10013000BEB8941C5A88ED2FCDB0E38D2156839024 +:10014000C4FED5AF56A1BFEBAC91D30BFAA1F57E9F +:10015000823E3D1DFE8DF71D62F574C8570DFA7C79 +:10016000249994C8F95AB5B8CFB3543E3374B94EF4 +:100170007FC7185CF2C761257F846E107EE38AE832 +:100180007BC440F8E92E0EEAE8BAAF9E7C96FA1BD3 +:10019000C8EE5EBAE523BAB784E76E7ABAA88ED005 +:1001A0008FF4B584E3EBE849678F935E8F7EA0728E +:1001B00046EFBCC48B745C4517BDBB5223FC41C9E0 +:1001C00087BA27E0BE8A1FD9C1D03EAFE9E1FB67FD +:1001D000EC81B6C368BFBB2ABA3291DC6B849F53F3 +:1001E000A3376D9E630E341BD02E39F431A7B3D2E2 +:1001F000B3B36720BF7EDDEE2D453FD597DE90CFB0 +:100200009BACF37BB00EE253739E949C4807AFBB4C +:1002100099E22438F972104EA5667E0EB2A2DB9FD9 +:100220003F4F67978EF2F2B8F509B232CC0BDF4B35 +:1002300003C4658FF072BDABF4B42D84FA58A9DD08 +:10024000467CF0F19661DB2DFEC8F87337FBDD3894 +:10025000FE082FD7D7BEF4064778499F0E14E37ED9 +:10026000CEF6F2388352B32F07EDACD7EDA9A5B87F +:10027000BF276AE7686A490E5EDD2AF570D84FB479 +:100280005A3AE3E97CAD6938F2A7CAB976AE2FB223 +:1002900029442715829E1EF5733C3C3A91FB1B7F37 +:1002A000237524A15C93AD4D0F61FEA49CF800E280 +:1002B000E71DC995897E4EB6D0E43A678DBC6B3395 +:1002C000B09FC6C8CEE9E22A1E9540D176D397FCEE +:1002D00036F05531BD19B70FCA6DBB85E40996F3E9 +:1002E000B80CDF36947B53AC167A4F231EFD5FBCEF +:1002F000BD827E9929D65F9DC475A33F0FF92594D1 +:100300002B5ABFBC9C75E03E6101D345FDBB4B5BE6 +:100310006DDCFF07ED54E4A7F1787D91B7EBE4E3E2 +:1003200066B8F01D166D7D6B4C1D85383F7509C88C +:100330003598DFB612D59295847CDA5688FEDD9D1D +:10034000F1E64E37CC638957DC3B643EB203CF0AFB +:100350007AC8493077E2F9B6467F1E5BC912C4AB52 +:10036000068F3536C00FCAE179F600DAF3380F315F +:100370009F283845E0C2FDEE5368A8085C806ECB2C +:100380009D457AF8383AF13C3C162E03C1435B0791 +:10039000CED79D70255CB6C87B16133FBF640F7027 +:1003A0003F5B0C9C30CB4BF26923EEAFA52C44FE97 +:1003B000E1A556A6A05F6ABE6519F967AB84DF9B0D +:1003C000A1D30FF4924B32E7BB97764B2427F05C16 +:1003D00045CF2FF19C449FAED6FCBCBB62FCB14222 +:1003E000DE2D413F317E3BA2DB016727B958B32F99 +:1003F000D6EFAD46C9E9881F8CEF8BA736FB491FA6 +:10040000EC46608FC1CCD5B40FD1BFC6E5BFE24585 +:100410007FCEE685D945E86F8E33723D725ED3B0EC +:10042000ED75421F403D42F3CB69FBF94B6FE95E2E +:10043000A483ED69A52F23BCC8B933E66AFB89CF35 +:1004400053AB877EB9AB9D532C47FE07FACEBF78DE +:100450007D3C8EF1CDDC5494B3CB255F2A97B3431A +:10046000A3D2E70C213AA7D0FCEA0BF19CC0108183 +:10047000EB7CE18F9FAFF9DF014FBE183CE9D38BD6 +:100480007478F2E9F154CE3AE363F0A46FB714F054 +:1004900084ED104F51F1E1AD7CDD0F0839A1D1ADF4 +:1004A0006B659B81E9FC1489458A7F2DEA956F9ADB +:1004B000C8BFFA9F822E010FC5A817BEE529FD39D6 +:1004C000C2DD8EF64D3EEAF7AC0AF18DFEDCA9E8FE +:1004D000EF5A151A8EF17580D7E2A9FDC8C986FDBD +:1004E000B62AA4931EC1D7B5FC67BD261A9FFCF09F +:1004F000A8476CB408BDD69785FD14676BFAA28F28 +:10050000CED7E78AF3E5A5773B42D8DF59714EF0A5 +:100510009997FB1F3EF3F2386F2DADAD4F8BA7407F +:100520003FB3DE4FFA5F426E68FE5D660C515CE6DB +:100530006653D8368FF4AFA019F5AF3F5DE4747100 +:10054000ECD89C8538CF3F4DB7338C5730A6713AE5 +:10055000992BCEB5FEC47C421F1B4AFA9996EED366 +:10056000BBDA0C517A57CFCE54A177D546C54DF49E +:1005700095F70CD5F42C15F5AADE3D364D6F57F0E6 +:10058000DE81FACA30619F32B20B7A0E6452FD737B +:10059000184701A0ED3186B6E23E533BF8796D8FE6 +:1005A000D0A36A165DB809E57B0FE37C593D602155 +:1005B000FB831955D2A7CEF5E9F3E1F4BB74F8DC5F +:1005C0002FE20FABCD9D43519FEF11FA9696D6CEF9 +:1005D000FF318DF7205F17FCBCDACED36BADA1BC29 +:1005E000B4648CCFE176567502E43BAE073EC02F73 +:1005F000387D107D6239CA979E0305D17AE856AEE0 +:10060000D79E37F1F6EACFFD023EBD79E8FFEDE96E +:1006100049A177D93E099AE97E478FD03735B8ACE2 +:100620003EFF5C3AE2ADA74FBFE4F0D82CD6D16ACA +:10063000F2658D40FD0AF53A3CE7DEC0E36E6BC221 +:100640007F98857A5E4DD597F7537E4C1CC527520F +:10065000F76343691E1E3A8C5FEAE4651A1CFAFCD4 +:1006600082424F6549BD29FDE99B35E7D705291E23 +:100670008DF1F8E3B182E55E512F667CB2B78AB99D +:10068000BE4DE78D31711B4C9F365C990EA569FB01 +:10069000243AFF41F4298FC27944F7F7A1494DC0AC +:1006A000F7027ACFCB84AF25ADB3EFC7388E53A016 +:1006B000FF23FEF7B7AC2F16F7D8896EC7FE31833C +:1006C000EC39D6C4CF793F3429F7E33E7595779A54 +:1006D0001FD4C1474DE3FAC21C8BD0DF81DFEAF99A +:1006E0008D565E5CDAFF79C8AA34CE17E245BC1796 +:1006F000637759502FD88FFFF4E9EBF17E54B1BFE7 +:1007000007F7703FF3D89EDE837817B9BAA390E25B +:100710002D06AFEC24FEF0A18975A2BFE9C3ADF1AF +:100720009C7ED13F0AFDCE1FCDFB9D6F003B541731 +:1007300007B648E06DBE05EC56E0C7AFED2A31C400 +:1007400043BF8BB649018CD71D2BF835DA2F835167 +:100750007E8838A12AD6B5AE1BFA9FDFC8ACA32984 +:100760004E2C6C482738333A1749181DA678310D9E +:100770003E2077EA13A0DD22254CE721B1F1174C8A +:100780001F4F81F8C0737F9D9EB3A46923C511F4E8 +:10079000E9091DB171017FB344D38D1A254735F99D +:1007A000F95384E3A8885C19489E821EB43B6D14FB +:1007B000E18FEFE73D12C17309ABE57100429EC5C1 +:1007C000EA2DE70C5CFECEB734D3F75FD2FCDC2F0A +:1007D000C8BAC5F936D763AE85F77F1178D7F05D13 +:1007E000DDC33A6F85FE3BC5FCB57AD52B59E79240 +:1007F0009BF817ED05803397F3562EE7F16BBF0E8C +:10080000791F2BE763E57AAC3C4F3573F9ADD1879F +:10081000FEDC11F59AB12BC306C4F3D1550AC53FCE +:10082000ADB026DC84F758BFB0F1AF8A7045BE7812 +:10083000DA467AE32386C09677604B4C58CFF3D9DB +:10084000EFE3885FAED9C8F9DD1AF19EED9FC5FED2 +:10085000FFBDD83FA6740EA743384E2EDE57AAA080 +:10086000F126580B8DB8AF273A3FCD32223D01DF3C +:1008700071009C6F17F4BED4D2B90EFD5A87BD4BE0 +:100880009E7589772CF01DD209F80FC8FFD814FA8D +:10089000095EA41FCF7CF5688F8FB3862E213D940F +:1008A0000DBDDD88F26A75DCD271F4CE21533EC1F4 +:1008B000FC44A6F4A6115FCA70529C690C1D6AF331 +:1008C0002B63BD5946BC47603DF330F6A3CD377668 +:1008D0007E87BD12B77F62E6556D0D3D8BA1E83076 +:1008E0001F969E1C9967A93574A0DB47F391301FB2 +:1008F000E623A75F653EE8AE43FA345AE3E95EA318 +:100900002E4EDA81EDD929A9DF7B1A91B861FE3D1F +:10091000FC31CB463B9D6DE0EFF08E17743CDE6101 +:100920003983FB624D3CA3F7500F337B6035C0F138 +:100930009089EDC3FD08DDE5E8DF653DCCF83E5369 +:100940004FF1F825C9CAE3AC80E3FB30BEF5B0CD6A +:10095000A2105FF6F9A2E29335F97CF87799E45793 +:100960003C64B33890BEA03EE51FFA5D5C389B6CDA +:10097000645DFC71F695F4882A660FF2C575B5F4CE +:100980006E8A8775D03B3213D2FD62BD5D12CE2FC9 +:10099000E32146729B8D0E887756B93D5726D611B6 +:1009A0003BBF327C4717F1E888B6DB58D3938A1EE9 +:1009B0005E87108E8911786AF08B9DF715EBDF0248 +:1009C000702FD6C1DD6AA1778D017B2CDDDD4FFB59 +:1009D00018BBEF614F6812D2C91726D0FB50EFAE9B +:1009E000B4929C7457F4D2BDDAD391F75B689D87BB +:1009F000C5B072DCB80C8C379D23F65FECBCB4F547 +:100A0000C4AE33160EDA7CAFB5CE235A7FB1EB7588 +:100A10000ED03E669D6F9B83F390AE4FB3EE02C443 +:100A2000EFAB3817DD79A7C6A7DEC4FD987B6D7ED6 +:100A3000C558EDB738FE6B6FC6EF846FCFFE2C89BB +:100A4000DEF35C70E75B206B27DC3EFB214CBFB61E +:100A5000ED1FEE7400714D2893E8DCFB073F9EF01C +:100A600038DE6F9970CFEC8792F17D8AA72FDC99E1 +:100A7000047264C2BD9238171FF96DBCD73AE10108 +:100A80008994AAFFF334D4CF47FB3664C273FBBB0F +:100A90008DFC5D58E842D1FBABD6A6F37381B5E976 +:100AA000DCAE5997EEE3EF50333E6F369DC76F8152 +:100AB0005D619A4AF30E9970DEC76F052E9488FD2A +:100AC00086329B74FACD898996FB947C5E4F7F2E8B +:100AD000B4355D8AB2B763F59A2D627CEDFC12DB0A +:100AE0007FA7405FCEFD6E5B717ED08FC3C7E51BD5 +:100AF000CE6B5A01FFEAF5CD13334AC623197F277F +:100B0000CF5F8FBDBD6D0E3D8B783CECFD389EF404 +:100B100036637701AE03F7DF7E379D3FF3F80A17A0 +:100B20003FAF195F11D8F9087C4F006E51AF399C67 +:100B30006069AB8725BC29E8F698C68FE0AF51E322 +:100B4000BF421EE0FB4D1ADFFD95FF49E2FB93F02B +:100B5000E5AF21E8BFE9A2EF9DAC97BE41E634E1E5 +:100B6000772A0BD0F79392EE62B2BF23FCFA55DCE2 +:100B7000671F67727E7D34EE31924F27717CE49F50 +:100B8000AC93E8BD8F8FC4F0C701F9084E2F2572D2 +:100B90006EADF1312904FC13EBAF53899F25B2D020 +:100BA000511C3F5DBC0B9509FC8CECD93E3E16BD3B +:100BB0005FFACE97864B14A7F2645C02F9398F0F67 +:100BC00097C8EFF93ACA2C8473A1A4BD0368C07B0F +:100BD000AB043FE8E4F63C6936DA1FB757A4CEC150 +:100BE000EF9302CEB7CF5AD785F3BA3DEF9D9998D0 +:100BF0007F07EB3662FD6FE31570D28F9CF4EE4DEC +:100C000065BE54887EC3A263BD87F0BD9129F93CBF +:100C1000CE39D0D929637A529E8BE2A647BCC5D380 +:100C2000778C76D1BDC482BDDDAB31FD6DC545EF9E +:100C30004FDD7C20383E19FB9BE20A60B96B5612EF +:100C4000DDC760D3387DBCBFAA8AF67B2CBE2732B5 +:100C500075DA1DF03DF66E363E4FC3FE9C3E94F3B2 +:100C6000B950CEBE6E68FF1D4F4D00E737666EB3BC +:100C700001F725537F6A40FE385DE0CB15E2711D18 +:100C8000D34395A6390EA28787717D40075F201E4A +:100C900034BAD0E8E15559C073AA80A791DF7F9C90 +:100CA00016E2E71BF8372D05DDEFDA9F93F47A8D16 +:100CB0003F9E9044FBD9FCDDA4F7DE071106745576 +:100CC0001EF497239C8911C0BC4FDEE72339593E9F +:100CD000EB9E49985F1E5ADF4597899DBAFB3848BD +:100CE000571F9AA3D287059D7AA649E4FF61FAFBB4 +:100CF00038068C7FE3F7F83D0E2EB75343E6A8FB8A +:100D00003DA89FEBEB837E92924172D548F16779C3 +:100D100022FE0CA88CD651EA90C2F88EDE6B568962 +:100D200099090E2C6CF5D316E9C4F8F05BC2C14AE0 +:100D3000A423482B069D3D738F80BF29ADC28478C4 +:100D40007F7F0C7F3FE975A9E93E82CFFB0E9FA014 +:100D5000579267BB451CDB8D1E661D4CF25252D16B +:100D60009F71E36B69FC3CD0C3EF95DCB09CC36D15 +:100D7000DA2C89E1FBD9ACD14EEF9EC3B85F7FADD1 +:100D8000BBCF7DCF2C6EFF4F5B39328CAE80578B43 +:100D9000B4F8399F0999F6D4608875E2B9B7870528 +:100DA000E8BDBEAA2C592FE7DE9D262B569C27B303 +:100DB000D2398B3C8BD3C12487D486FBEE8414AE0E +:100DC00077D33ACC44BF274CC192649C8735948931 +:100DD000FEB1D2CB71AC734484AF950A799109F41A +:100DE00012A4B86FC968D4F18B583E838E339C8FA0 +:100DF000B72FADB224ED7D7E1AA79BE01CAFE91F93 +:100E0000C27ED1DEE9BBA5DB3587F0E2E0FB3B1318 +:100E1000B2F1DCEADE8C6C6E1F4CFFD549CC977CBE +:100E20009C4E4E7CCC8A719E2706B84F1ACAE0F2BF +:100E3000E48DDF2DC844FBEC447C3013EDB3251961 +:100E40003E027ACE340BBDD77FC21BA2FC13E2BE9A +:100E500009D63F83695730D345F5B91D86F5D14F83 +:100E60007E223394A97F1FEB844D6B372C03DB1D4F +:100E70004AF66560BCD4AF67A44A78AE5123E691C8 +:100E80009367A1F300AD5DCEF4F55D383EE8F7EC75 +:100E90000FC81363F8381EE7C4170DCCBF6F417F2E +:100EA00008C68D82428EF1A18F99031B0CA8CF97A3 +:100EB00087855F349A2FF7C5F15E544D283F6658F9 +:100EC00003E578951CFEE40D2911FEFB9ED8AF4F7B +:100ED0006A7C41F0E9271724929FE3DDD9317C7CBD +:100EE00014D70F6E0F09BE1DE47C1BFFF47CF1F6D6 +:100EF00059EBBB106FB172AF2C77483DAEF7F610CF +:100F0000C77B390B5279C56FEBA7A078B98BF9FA7B +:100F1000958B1AFF0B7472BE3F299FF3EDA263817C +:100F2000C3989E3252E3E39CCF4FCEF3931C787F5D +:100F3000C1BF53FAE82D1295035FDD89FCE44AFE38 +:100F4000CFD75799E3A2FD087CA73D6354441E5DAB +:100F5000AFDC95661DE5F6480CFE22760397B311CB +:100F6000F9CA548CE3CB74C8FC772858ADD49F9C45 +:100F7000D5F0F9DB881E126D4F5CA71ED0370FC667 +:100F8000FD71DAEF69404B27DA8F19A27DB195A97F +:100F900071A81F4C13F695B077403FF8D70CD28755 +:100FA000B99DE3413B07EDEFD181452EC3C0F38EE0 +:100FB000F32AFF8EEDC61B1C01E46B7F7A97BF33CB +:100FC000355199311ECF3927B1D05AFD7DE561A049 +:100FD000BF1B75726178D80A3668247DE32E67548A +:100FE000BAA0C31355FFE67DBEA8F242102AFAF25A +:100FF00011C70251E9515DA3A3EA7FEBA412951E2C +:10100000D35D1155FF969E6054FA06169271D1B7C2 +:10101000F64E8F6AF7271676D37B67AAD29597424A +:10102000F7D1E9EFB6CBA1A8F605E2FE6B095B1894 +:10103000D59EEDE5EF12D4C27F88BF1B62DE251876 +:101040002ADE4DBE7B9A29EA7D83A1784F3601BF07 +:10105000D1F563EFBB1A32E3E9F72860AF8F44792B +:101060007B057E40DD423E50B68B85C37E5C0FD54E +:1010700065376CE5F77763D7A5DD876586178C58EC +:10108000EF2F3E89E1D36B164F343E6DBE687CC6B0 +:10109000E545E3333E108DCFC4D1D1F87429D1F8A2 +:1010A0001C54118DCFE460343E53A747E3D31B8A11 +:1010B000C6677A55343E336BA3F138784534BEFCAD +:1010C0006A5554F9900DB5D1F428F099DBB422AAF1 +:1010D0009D864F15FEBB1A3ECB1CCD32DAD5153B93 +:1010E000A3DFA9B85EBCFE43A6B8C72CF07ABDF753 +:1010F0009881EF956726235F09D6BBB9FE1365EF8C +:10110000FC5AC88BC3DE3BCAF1C910FC8BB27F8688 +:10111000AF27FB47D377D01CC67D319975129F8FBF +:10112000D5E32B91DF1B90EFF7661921BDD4D0B921 +:101130000EF587CFBDEF9C960CC4AFA76702DF7892 +:10114000D8DE4CED8FC6BD44FD1FBA0A5FC673835F +:10115000EBE5837DFEA33B6BC98FA3F97306F4E334 +:10116000F83223FC8D98A74AFCAD6C455910EF6707 +:101170007F61E2719CBD13F9B960D9F74B28BFCFED +:101180004EB271F95966F567A2BE585A6191E8BD31 +:1011900044C732F2AB94BD65A2FB93C7DB78FDE395 +:1011A000E7B3699F819E4BFEB7BE383D110F75BCFA +:1011B0003070AA16EB7D6718BD635B26EE091C92A2 +:1011C00098A2A2BC4EE6F2FC78BC81F7E792284ECA +:1011D000EFB89F91FE785CCAA3FEFBCEB366B3A8BE +:1011E000F3ACFDD54E1E87A7C5E92D63E2BC13E025 +:1011F00083E50FF97CDA791FCAB1DE782D4E8FC7EF +:1012000001AA637C1447CE188F5BDCDFEA227B687F +:10121000BC78FF65BF3158EEC279E6F37BEFFB4542 +:10122000FCDE09815FF477535C4693886BD5E6D585 +:101230005840F38A957BE41FC7719B6CC23EF2D580 +:10124000E13CF6AFF4051A38FAA3ECE0FDACE3D4C8 +:1012500072AC3F9DEBC9C75D1D1FB6205C66DC10FC +:1012600000CCF6D1C9BB137F72FEB80FEDA4F574A4 +:10127000DE553E8DBF1F51E12C39F333C897A6735D +:101280003A6AF54B4D061E7FF432EEA3B4211C6F73 +:1012900015FE761BEEBF32E127FE759F3D1FBDBFD9 +:1012A0000E7B7FB86D793FFBAA4F4F624DF4FD3B3B +:1012B000F6D321BE9FDAA8BDE69F867D7F18E7ABF7 +:1012C000ADEF5D17C777F9CF2DF4BE3CD1B94EDF36 +:1012D00018685F697029BBA81AB18B4FE2F9FA351B +:1012E0003E53961A3A9EA98B77AC70876D4EF21FCB +:1012F000F5AF371C1F004E57F09D89C3C8EF53361A +:10130000AD84D6359EA9F49D882FAD5E95FF0CE87F +:1013100087F908E719F1C3DC6442BE0370EAC94CDF +:10132000BE92EF687A591F5C62EDA5EBF5C7F4E950 +:101330005BD7D213FB87D704F1FEC6FB4E29CCE363 +:10134000CE9429DE145C3FFF7B7F03DF1FE5C0875F +:1013500070DF4F16728AE573FD2100FFE1FCFEC2CB +:101360001C212BFAB172A2F58A52F1CE4679CC7BC0 +:10137000497D76A4789FA334F677B262E0A1AD37B9 +:10138000566E69F69EF63EFB40EB4FCB12F2CDC790 +:10139000867D0DE520BB486FE9FAAD81FCD26F2454 +:1013A000DF33B719E877D8B33790FFE78D947B1F09 +:1013B0007A07D3CF0C25BBE0A877C14E2C1FFA6368 +:1013C0005EAEC9BF9C2CEEB72C97A579E8F7CA1B77 +:1013D000F9FE4C3FCCE7888DDD87690FAB6AAD84A1 +:1013E000713CF9D9456B901F9819D59B7CF39211EC +:1013F000FA73DF91D80FECB3C922FE3C139F7A2C0D +:10140000A2AF11FD10999EB0D109FD9AC5BDBE7461 +:1014100023ABB7C0D7EC69723811BE76DEEF5B85BF +:10142000EF1561BFE5D93C7D6320EECC109C8F2485 +:10143000D17C6ECC933AF17DF472372F9F52F4D366 +:10144000348CA72C2FD5EADF711EEB978B777E1398 +:1014500094906938EE37E107396CE4F8B833CB4A39 +:10146000EB7ECD5162C2773DEE0E72BFD49DA3EBF1 +:1014700024946777879491181FA8ADEF8E2CFEEE09 +:10148000DBB4D1BCDEB4E06CD35CDDFAEF567AE9B4 +:101490007DDCBBA79F31227F792F661F57E23FE497 +:1014A000C83E0EE23FA0FF77EE1B46F661D92C3F07 +:1014B000EDCBBB9842DFEFB010F1B5E9AC89D23388 +:1014C00059077D67B12EBE7FCFF4EDDFC149D9B496 +:1014D0007F1FC8D2EDDFAEB87F3271BE11BD6F077E +:1014E000E263B0CFE765250FBCCF06E2DF65D39797 +:1014F0006D5BEEBF923F69766F848F77101FFAA6FF +:10150000FE616D3DB0BE1FE0FCC06E3A4071E1204F +:1015100017D01F0EF35E9935EACA751EEA873FE9B8 +:10152000F5A4BF5B3F1A402FBACAF9612BCDF33A3D +:10153000CF0F63CF270FA62899D9BAF3859A935670 +:10154000ABEF664C0759B603EF55958C1A02E5359B +:10155000C2AF15D7C59436CC17F1EBFE213EA25F82 +:101560008F99C739E07B76F8C376C5A55DA4A7F44B +:10157000263327F211EDFCFDE978685784EDF8BEBB +:10158000EE6B6F65F5765DFBD27B39FFFDFC51FE9E +:10159000BB2E9FBB24F2CB7D3EC34172F4EC63664D +:1015A0008A2B1B62E6FB3149BB9F82BF9883FB2FCE +:1015B0008BFB9F9874C8834E219535D0578B473C41 +:1015C0002BEEB57DEE0AD0BBEA9F3F9A2261BF7336 +:1015D0001B73EFC471E73666F8395279FD97B37C17 +:1015E000D4EF599FF2E9315C57A583C76BB1502105 +:1015F000FA012D869193AC787E6958D97B0CDA2F4D +:10160000C974D0EFD8950F3E7502DF973BBFD74422 +:101610006FAB2E6CBF2BB1139B19154FB0E04AFB7B +:101620006161D81465A72CDE159D5ED2119DAE892F +:10163000910FB172E04484BF0790BF5FAFFD729B12 +:10164000A4FC8ED37F98E2271609FC5B2CB53D6D78 +:10165000B07ECBE379457548EF8CC7C5A43CE12F3C +:10166000427D74B3E0FBCF6705FF13DB5B06E7DF6A +:1016700084F657E9E029B3099F5B6D3E94A79FE389 +:10168000435298FE05979FAD59BCBCF5298B4F126C +:10169000F2765431C6BDF07D55B385CB4BF8B3F22D +:1016A00077D6142BE2B3D5AC98BDD8EE9FF83D9E0B +:1016B000AA2D0BE8F78EAA5917DD7BB86130C75BFE +:1016C0008DE10533FE0EA6BF5E195E07F35D1CB407 +:1016D000D3EF2019BF32D2EF40621804C697C85624 +:1016E000C589EF772FD9C7CF37A4C1FCDC6AE39750 +:1016F000CD41EC4FBBBF64DD5BA9E291DA6D5F9534 +:10170000D3FB5F0B56DC4BEF4AF5BDFB20E2D11655 +:101710007C7F06E51FDEFAC520ECF7DCA3B213E9F7 +:10172000E0DCD3255DF83B500B1A1D3EF4B3D7B077 +:10173000DA003F8F895E77BDC4DF9FF868DB7B09E5 +:10174000C8E73FD2E2D39CB509B4BF7DB509FAFB27 +:101750005F3BB619E8FDC01D8DCBFF6D0C8CD73AF1 +:1017600075E6485CE76DAE91767C5F502BD7F47FD1 +:10177000A37BF473C8776EFBCA40FBC108F20DE38C +:101780003BCB1F9F42F18E3B827617EE3F5FE376A5 +:10179000717F99DF13D9F1A895F8959F75AC43BD7A +:1017A000B3A67102E1A7AAB18AE03FE42E3BE9119A +:1017B0003B0EC4D329ED0EE7683BB6DFC18C15FDA7 +:1017C000F99D0F66F1F3D492C1DC6FB2E35DFEDEEA +:1017D000E304C3B8492837973C2A53DCE591A91F95 +:1017E0009CC0F7AEB5FD049A561AE773FCF7431F89 +:1017F000D4E845CC67E14E03BD8B76AD7D65193CE1 +:101800008EE617BBBF76A801FA7D81D87D76ACB194 +:10181000C88EFEF1D8FDF6606336BD1FC336707FFB +:10182000D0F8C112FB5AFE46FB6ECAE07EF61DCB15 +:10183000981A15EFACED332DADF177ED1CD81A6089 +:101840004ABB83DE2DA0F8F66583F939F0B2C16694 +:101850002E4FFEBA7CD7DB00A7CB59A17B0763DCF8 +:1018600013530A91CE7CBDCE52740738447C1ECBF4 +:10187000E1F7DD369B8232D1A731F4CF6F43BEA9A9 +:10188000B16A04EEF7A58379DCEDF359A1B9D8CF9D +:10189000DC95A14F0F32A4BB1B68DFCFBD3C4DC60A +:1018A000F33A7C2F97DFD70E96E2EFB49A928244F8 +:1018B000971ADFCE85F9B6F573BEFDF860AE1FE569 +:1018C0002605A99F1A9F537B776506DAB3CF2C9222 +:1018D000E9F70A343D2C41E0CEEF63F45E9E7534A7 +:1018E00087877FB4ACDE9E40E350BE6334BFDF1D0C +:1018F00037B29361BFB9580E74B2DC63F0E13D19A1 +:101900007F809DD1D783F667B03C378FBF8B28335C +:10191000ABCF61C59F9393F9BB79AD3CADD1C19F6E +:101920009A24DAA7CB61A7E2EF0D619C3CC9CF9165 +:101930005C7E2EF7987DFA7787B6A7953410DE1572 +:101940002527497B8F9861DC04E75F5280C79BB1F4 +:1019500075BD6FC8FEC83CE75AC3651837180BB78A +:10196000B9627E3FC4F901A98C0D403A6FE0F92DB0 +:10197000117C526BAFCDCFBCD461A4DFD319C9F9B0 +:101980001A7B48A67338739AC721F831C51BA53353 +:101990007E5FE669CF2EB28362E33992ECF005BD3B +:1019A00022536646A447B3CCCAF19EC4237290CE9C +:1019B000F11E3134917DF285CCF5A397C47C329C25 +:1019C000C13DF361BC74C31E7A8FCF63535EE6FBE7 +:1019D00023FADE48ECFA3DB692BD488F5A9C94C675 +:1019E0001752D608FEBC5026FEFC60B7C4E3593639 +:1019F0008C57F4BFBBFD94DC64C579FC7EB0D0236A +:101A0000ACDC0FB3792C73A2FFC3C3025B0C43227F +:101A1000F8AA11F8920E48E21E1108281D3FD27E46 +:101A20004F224EC4FF6AE33E986FECB4F4333EFE9F +:101A3000E9E7ADD58FDBDAE5C7790DD46E9B8DDF95 +:101A4000D361EB023EACB7203BF41EC22B7DCD6CC4 +:101A50001F972F5D7E84DB212FB7E30FD97C19F808 +:101A6000DEA9763F68A07B40B1FAFB52E1A703797B +:101A7000A75A491F32133C97C6FAE97E215DD73D2C +:101A8000ECB203255EB44B6B826619F5839A7D5CDC +:101A90003F585A2F87AD5C2FA7F7237CC22FA7C1D1 +:101AA0007DB080CF2549F1A29EA5569A19FA9F5A7A +:101AB000FDDDCFFC00F58285F9E4CF8BDCCF76DA53 +:101AC00031BE26723FDB69C738E22BEF67433D1812 +:101AD0004F5AC9EF5FB4A1FF0BFD672B19F9B7DAB5 +:101AE000847FEDFF02044A420200800000000000F3 +:101AF0001F8B080000000000000BE57D0B7C94C5E7 +:101B0000B5F87CBBDFBE92DD6413421E04C26E5E7C +:101B10000408611320A2202E096054C4E5A1825A52 +:101B2000DD4080BC13A1F6468BCD2201A2620D35AB +:101B30002A5AC40DAF82451A2C2285481750A45545 +:101B40006B5AB5175F3411AABC13C107B6F4FA3F3C +:101B5000E7CC4C76BF0DF171EFFFFFFFDDFBBBB1B2 +:101B6000769CF9E69BEFCC79CD3967CECCFA6D66E1 +:101B7000C6A2196B61AD01DD68C67C45CCB5C9C193 +:101B80001853E15FA8B758B3FC0F3919FE99593CB7 +:101B900063F163E9BFA13F2B6AB5623F7BC40C1BB5 +:101BA00063DFE0DF3521ED4D4F32ECCF5F65AC39BF +:101BB000C69D149BCD982DDBE3B4BA187B6ADDF487 +:101BC000B722C64017BD8EB1ABA88B8FC1D891F09C +:101BD0004D51770364EC719D9EB101F8F452D3A48A +:101BE000812175D13FF87EE1F449E30148185B3E5D +:101BF00057E0FFAC593A59775B605E2B6DC1E76ADD +:101C000022F46F90F598E993D319F32BB23EA0C953 +:101C10000DF378D4C234DF0B854F0D1BDF00E35B7F +:101C20001DB2FFD49B264387C7F3647DEBA36E8070 +:101C3000EF5183763C33EBA9BBB122BF77F7FA4F64 +:101C40009A56C17C0733772E4B63EC628A77ACA33C +:101C50003F638E6E7B01908BAD7C7F6AD348F856D4 +:101C6000A47D267C9431C3C559CC01F835C4296EB6 +:101C70003FD6E3A02FC05A939EBA5E8F73521D3E8B +:101C8000A4A7C5E9C87B08DE2B704023E0DFA3B31F +:101C90005369889B1848866E06E65AFF2610EDD7D2 +:101CA00029DE29F8BDF8C1530F99907E3386E57877 +:101CB00061FC928BAA9BC1D819E946BF02FDCCCD2D +:101CC000CCEDCF0ED2DB64E6F436231EA8DF2D9BCD +:101CD000F0FB2D0EAF07C7937C92D1EC30E2781B5E +:101CE0000C6C36F24B7359AA4EC90E3E9FEFD011C1 +:101CF0005C19593A1AFFA1AC190516184F8D993481 +:101D000046EF08F64BB5A7EB70FEA90379BFC838BC +:101D10008F6E22F44B6DF6C6231CA9AA770ECE3B1C +:101D200075F602A3CF89E302FF001CA31BFD968971 +:101D300048CB521DCB80F16E7438381EEC25C5D8C7 +:101D4000DF30DB6C45E67DDAB3D982E36764AD6FE3 +:101D50004C8571995D7561FF0C9837F653EFBDCDD9 +:101D6000AF7706E179C8AE16211CF97AEFDD387F2E +:101D7000D6EF2AF726783E28F6FA22571463C9FAD6 +:101D80001DB98B61BC27149877C87C6579C4A910EC +:101D90007C0D8AC77713CA632E639B58F0F96017CE +:101DA00023FA2E7118095E87CF5E6086EF8CFFDC08 +:101DB000437859E250E9FD7D6A47A41DE166EEBB18 +:101DC000E7E23C3D5607C935CA39F48FAB77B89086 +:101DD0000FCC711D0F8FC4E72E9D2B8305E5FEDC14 +:101DE000EF12D63F04A0989DDE07916EF9FA8EC7D8 +:101DF0006EC2F93CAC0AFDD0B1EEA7D02F65A63576 +:101E0000EF21A83E18D7F1581194CF1898CF12CBD4 +:101E1000D82AD7036E059EEF8B6376842B12C89465 +:101E200008EF5BAD8A9FC1B8A3414EF5F8DD44C50C +:101E30009F01F8B1BABADFC6F1AF77BCEDC2FE853B +:101E40006A60BF928352E14E8FCB2716177FD0096D +:101E5000EA05A2960162F409F01C704BC337FD1825 +:101E6000535C2C6083F726337703D26F17D215E0CB +:101E70007FC208FA045E7D4267F6A36288CC76EBE7 +:101E80006D50BF2B4B194FF0C5B5333DF24D133C90 +:101E9000847A6AD60C2303FACC6FE2F23457F0212D +:101EA000535D033C23409A1D91847FF82C95731950 +:101EB000C71B5B65F46F8221521B9D46045AD28D6D +:101EC000B1A5BC1F8E07E3181F607779906F477329 +:101ED0007A0262E9F94E21978C3D20CA265E8AEF8C +:101EE0004A39AB41397370BD61CE17DF87FADC0E1A +:101EF000A513F1D6557A3E0AF5C1DC367DC0047CC7 +:101F0000C71A27BB3B846C7E932A64343EF8DED329 +:101F1000C06A16E4B736BD1FF93538CE3FA21CD6CD +:101F2000BEC779DDC1F9F5C09C2FA33AE07B4FB75E +:101F30006DB020DE9E98CE583BAD0FC0F550C6ABBD +:101F40009E7607CDC7F5F34CF8CED33FD733E4BF29 +:101F5000279476B79EF3B90BF9FCAEF41977BF0A54 +:101F6000F5D8D1C3F210AE449599F5C04FC7055EC0 +:101F7000A20F00DE60FCA7141091D8207E9F52565D +:101F8000272D82F6D1451C9FB1456E7D15EAEF984D +:101F9000EEC928B7DDD731B61EC64F88AC6D41FEFD +:101FA0004FB82B2B6F19CC336214BB6B06BC775226 +:101FB000F04912BC130D3A3BF1019F13C78B3EE071 +:101FC0002178BA4744B8D643970498BB2D96CA46A1 +:101FD0000BF6634B15ECB7A2BF42F2BCA298CD7EC4 +:101FE000219BC4488D8EE5E5112815953518F03DE7 +:101FF00095A911BCBD01BFF378149F4F7F9DFEAE24 +:10200000E9D9B45E503D16E47C3DC0F20F470CC1E7 +:1020100095606245385F6C47FE0130DC3BE07942F9 +:10202000616D2E7E3F218D970F2505545C2F9E6696 +:10203000FE359B10AF59463BE2756AD6A12348CFC7 +:10204000A966D6AA473ABA0C673AB282742C4C9861 +:10205000A977C277BACE7EB26E39B43DBE74FA9C0F +:10206000F9F8FE082B9777DF0ED74C5C3BD9C09868 +:102070004F8683ECE27B80F7F36722740A2C488753 +:102080000FA7457720EE9C1C8F886B9604CF992371 +:10209000DA0E701DDE9F49CF65FDC287AFD951684A +:1020A000C7E1FA8DF4D964F2AF7706F58F35269E35 +:1020B000EC8E7183990FE9D5BDC3E25F0F2C70AE32 +:1020C000DE357E5206F50B50BF1787F07EFAE96EBB +:1020D00085FA19884E270D8CD629DFCB23481E019F +:1020E0005DC558B7BE9CE0C0FE35BA8EED684A5853 +:1020F0000DCC8374B3B6E87C19D1417EB22AD04EA0 +:10210000FC1BB0A37D730EED1A927F77E2CC11C158 +:102110007E0D428F571A039968DFC8F7647D808966 +:10212000D5CA7A0CD4F78AF5AE3282D7979BBDA375 +:102130009CC0D7BB8CAC94C68982766B085E725506 +:102140009A770F5E3625F8512F235EB0DEFD884D5D +:102150008BB7A786F0E7B8E8E2FB0F2AF4FEB12CB4 +:102160005DC098437899FD02E99B807D7AC83C2444 +:102170001EE6ADF9F45F2C27888F791E63A73EA772 +:10218000373EE47BF3F24AA632E0A779E54BA6613D +:1021900019BE9EF5F46B34096307DA703942986111 +:1021A000DE5F5A261A91997EF28BE946E4DB05AC94 +:1021B00096CA52D64425AA291DD8698E4695E6E3CB +:1021C000D8A2F81D4EAEF674648BDA75D85E016A3B +:1021D000F86954DD3ED01A5740B3A253D0BE7234D2 +:1021E000403D01C07E50F5E1FAD37224D2AF40BF2A +:1021F0009571B080028A5736E8086FBE557C1D8203 +:1022000071133D303F5F83CE8DE3D43AB9BD80EA90 +:102210009CD65B3011091E513618B81E97DF5BCA79 +:1022200074012C750A2F57A23D60ED8D0F395E8326 +:10223000A1D68CF64AF7209D1DF9F64BA37B36CE2E +:10224000E7CBD84C86F64A83ADB6B1883F2799FADA +:10225000D21228A2E7B93A6EE0A298A17DF39EA51A +:1022600005E9BEC0A92378C3F13DBF495B5FB8460D +:102270005B2FF36BEBF398F7378930F58A2DDAF69D +:10228000054E3B8D3F97B9883E0D06C75F9CC887BA +:102290000FAA0CE15F3A90E34D378897A931936616 +:1022A000D3BA18636419042F873F35375641781B1A +:1022B00062B83CFC57E10D87B3C999C9ED28509F1E +:1022C000F8BD069003812FB2DBE66D336D403D30E3 +:1022D000CFE688C2799C56BAB3681D7AC4E6E0FAA4 +:1022E000C24EEBEC5C3B1F73ABD06BC714D7E60060 +:1022F000BCA77BF4F907711D9BF7B03E0FEDE3C25D +:102300009956D2377B4E59FD2678BF14709704FA40 +:102310007A8FEB1DB29FC3E7077F0E55AEDB40B24D +:10232000B971E09FA0BD13DA8FD669E013A9A76148 +:10233000CC0FFB7B7E877A1AD86FB80ADFFFE46484 +:10234000840BF1F8B8EED88ED746939E24FD57BD86 +:10235000A47B3383F777F4F706B0FF997BDF9FA266 +:102360003882F3EF7A7908F1CBE80653707CFCBF32 +:10237000552175FC7E234CE24A289BB5EDA56BC325 +:10238000DE63FF610A8553DA2D4F18BD43D10E7D00 +:10239000DA939F8FF03C61682A4279BF94E4FD0B89 +:1023A000C2757CB2E7908ECB5D26DA37FB2ECD4B23 +:1023B00053516F1F31BBD00E413B16F5E423C23E93 +:1023C0004F34331FAE9FD2BE957654B87C7D24EC3B +:1023D000E8734EF762B45FD925800AF0AD177693A3 +:1023E000D9FA821BED3DD6A6D87139A976B0CE8533 +:1023F000A0BFAC6D8A3B85FC261DF937D5565DE73D +:1024000015D09E61D511DE58BA4A7AA2BA99F9164A +:1024100002BDCC667720D941FD7C57E4A03FC5E1E1 +:10242000947054EF9ECEBC5682A306ED1FF44FE687 +:10243000C3770DE077E09F41F82786D94692F7D120 +:1024400071D21EF473FFA7D9DBE38FE8094F1E9DFD +:1024500087AFC3F64F2283F8FE87D39D980AF3FC1B +:102460003B36C0BAFB46A2FB12E2F70B5C9F470269 +:102470008BA572B80EBF3393D6E12F9847ACCBB77C +:1024800044A3DD26EB9FE8BD3FB1833C2C643ED2E4 +:10249000CB65CC4F256BEE477CB000D65D15F0BF09 +:1024A0006096FB3DB427502E036172195AAF64ED5C +:1024B0005C8F837C0642F8A712ED7BC06B95990573 +:1024C00022B16CD5BE57CDBAE9BD9ADDDF98021AAC +:1024D000B9E17C95A05F945B8B780AF30FA4BD2FC4 +:1024E000FD00B6A2FB55E2AFEFD9EFA4A3291EED84 +:1024F0008246857F7F8ADEEA3603FEAB1ED1915C81 +:10250000C34053C7E4E3FAC4F9A8C631E524AE7B5F +:102510007120A628FFE65D7AFF034EEAEF0A40BD70 +:10252000EA651B462458A9A3742AAEAB657EC3C7CF +:102530001D21F329673BA6A08AF982BD6144F9A851 +:10254000D8A27D5ED5AAADD730F5E31EBB0DBE5334 +:10255000F761CBB85742E4707CAA2D0EED3380CDE5 +:10256000F90DE25D7F47B4F732F221CBAFEAFDE32C +:102570005E3130768DE22E4CE57AC5887258AE32E7 +:10258000F7E5FCD32752B85C1DB45EE8E70D795E31 +:1025900090EDA3F8437EC1E5E5717A2AB7DF23DB2E +:1025A00085FDAAFA584CC8FB7DBD775B2A5FCF0E2C +:1025B0001AF9F3476D916EC463A291359AF382FDC7 +:1025C0001275ACC11C8B7106CF1DA96330FE20E3D0 +:1025D0000B3E86F6A3AF3FF72FA47F9AACD7115DD1 +:1025E00093F5E6F5CB500F0A3FE6BBF82432BBDB90 +:1025F00080F8443F1EF90F96651F83F18C3AD0ABEB +:10260000382EC824FA056B2DCC87F0C0738676BBB4 +:102610009AC0E5CF88629F87EFB38082FE03D826F9 +:10262000D85E97EA59CCF1EFCE21F91670540B3EE3 +:10263000EB8163B712B04505F915E351B80EB0262A +:1026400013E9256215AA2791DD7B14EB20B7479289 +:102650003CBE54F223F9F3798F0E22FF9ED5F52369 +:102660007DB1D2C6FD0E805B8357296F6B158EDF5F +:10267000FC82765AE7BAEF071B5F09894B08BA3E1E +:1026800092CAF128DBBF167AF8AD54F7CF717E6796 +:10269000DE339B31DE387A3497976A8F95EB599009 +:1026A0007F84AB7A0923FBAC5AF8DB1753BC6B1061 +:1026B000EE95EF5B7DFA68D4A72D148731C4794776 +:1026C000A15A4AC3F69114AF5A8BE3972CF17EB608 +:1026D0009F05E355F9DF14AE28E2F0DAD17E8A4394 +:1026E0007B3C84EF5E16FC25CB3D824F7BE61527B5 +:1026F000F0D9AA27FC463ADA29AE51BD931B13F94B +:102700007AF71CF43B58452C433FA97AE7C4DC57C1 +:10271000B1DE6AC9C53851FE0753ED68DF9DC98D2A +:102720007521BC66A7F705843345DF5186FAC536A7 +:102730003A90F24B186FB0C74A718F70FE937C9736 +:1027400000FC8AF84AB8DDEC477EED896B1898D713 +:102750009C16E4CB0DA9BC7DB05847062FF1B0F90B +:10276000D660DD1AC7E904ED3AC4CF39E7E40D08B5 +:10277000CF86541E375A94A8771C0796709AC12AA0 +:1027800049ED2D8F4E902C2BE89B9FC2E36F1005D7 +:102790003EA887D82BE79B14F29316810155971713 +:1027A0008447BEBF28D148E3475E5409AFA9761ECF +:1027B00047B4350A3C03FD11CFE3BBDB0BA361BE7D +:1027C000E9CD018ACF58F05B49F8958E874762FCC6 +:1027D000AA9F3A1EE307EBEAF20E605C477DB0FD6C +:1027E0006AC4AFA3C95E802154F55FAA87E2358C25 +:1027F000F35949B39DEC1DA6D666A1FFF2B5E0D30F +:102800008B29EE4EE4AF82770DF4FD2F1FE1F65BCE +:10281000734AE5E01878EFD87BC0974ADFFAD3C750 +:102820000E98D1CE4F5D954AF1225B238FEFB074A5 +:10283000601080577DE4431F87EF9D41084ABF34F5 +:102840002BF117BE87FEC3BC068711D1E76C663A31 +:1028500084DBB66A864E103F4981E7198DB3741840 +:102860007FC91071A3F0EF47A4717EFDFD253DC522 +:10287000DD75661EF7AD4A8F6DD173BF90F8A66AFD +:10288000481CCD5F9FC6E3AA86A689140F0FB757D1 +:10289000AA762E65C817E1FA47EA1DC977BF5779AE +:1028A0003CEDF74CC6D338FF351838BE7DFFD291CA +:1028B000FE19CCF83A92F628587C440F19D7F253F7 +:1028C000A91A1C2B1251872DED98E083D679AB62A3 +:1028D00074D5D9388E6B118DF38895D138AB520FE2 +:1028E00064A19C34DA99E2C0F1160E4639641F984F +:1028F00018F28BFA885587FA5C5DEDC656A6C6C4F9 +:102900001750FD71A843FFBFA71A08EE0F043F360A +:1029100028DD0AD935CC9D8BEBDD5BA9DECCB4314B +:1029200022BE8FF25B17E1477FC5A6727BD956F7AF +:10293000FEF34BA1BE4EF8E9058F66CF207E79509D +:10294000554CF0FD2F63FE4CFDBE1CC314B4E3F2E6 +:10295000D2741ABE0FE1976406744D7D59EF417928 +:10296000540D9CEFD507E35AF0BD67E2BD63D2E09A +:10297000BDAB1B0264AAEEB31F7FACC8D19B1E7D0A +:10298000AD07EE348758C77CD4BF46EA913685F44C +:10299000884BC7BCADDCBEB4A01C1C040261FF3A6E +:1029A00073540EEAE5AF2CBCF41570B87C472DFECD +:1029B000656477D65E41F147563B12CBB808E8070D +:1029C0007AF78DB33CFE332D8DF3D1E022D047A0B2 +:1029D000076AF13B80A7D96931D4BE3796B9EDB00B +:1029E0007E245ABCD311CF751DB989C82F7BA3E2B1 +:1029F0000BD00E8449A5E0BAF7B1888F84E32DD1BE +:102A000032F116C4CB1BC25FC4EF3AE1FBB175854E +:102A10001ED427607F919C754F37523C24F6DE8987 +:102A2000D4BE57F13FB500E771338F63354F772739 +:102A300045C46119AF43BEDDF51F7A1E2701431758 +:102A4000D7B3C2527712FA05033C461DEA8101450D +:102A5000B57FBB1FE3916F185CB8A7D1C59A52C868 +:102A60009E6DE4F15319872EC07829CC439F386AB4 +:102A70007C097CF7178AE3A912E4DF32F15D1B8F32 +:102A800033341703E3037CCD4E8EDFE6F90E929FBD +:102A90009E784F15EB89E7E0BAD2556B977130FEFF +:102AA000FC47F27907ADFB5D631D76D4833DF19E53 +:102AB00039469AC749C157BE395922FEC5E3455D1B +:102AC000B307F0FD3CF3647768FCAF4B15720B7EE7 +:102AD0000FFA5D5D7E1EFF7986F987A29C74313105 +:102AE0005E29976BA6F2FDC2AE22BE8FC0C6BACCDD +:102AF000C8175D3DFB82DD51A17122D92EF701E39C +:102B0000975DDEDEBB4AE8A753F1EEE6B4103E96D1 +:102B10007CBF372FA100FD8EBEF8FF6DC6D789B7E9 +:102B2000D23CCFE0FB93CCAE92C7A1E9A088D3B151 +:102B3000A9DC8F61AAD78BF3797740562EE2231C4C +:102B40000EA9A7F68AF786273333FAF320BB3EA4F3 +:102B5000CBB05DC3489F6E13F0A28861BC609858EB +:102B60000B8727B4C4229F7CAC38B2D164967CBD5D +:102B7000372299F83D84AF77209CBDE1F38C9831E2 +:102B8000A26FB85E4E73EF26FC88FE7DAD4F48768F +:102B9000C493D1D87A37C50BABAC2EE49F77F01134 +:102BA000BCB7E1165300E3C15D066B23CAF191C8BF +:102BB0003B0FF507D4EE317B0FE1F8B36FBD6E0527 +:102BC000D69503FD1C8B00FEAEE28E7C9CD778B3BD +:102BD000F78F28C79566EFE07840C1D941DE21D153 +:102BE000A84F3DFDC43AED19E1B92CFC1C9E42856D +:102BF0007FFF4DA3F76D3EFF0E9B2B8DF89ADE6392 +:102C0000D6FE34CE5181B7FD06F7F8CF00FEFDABFE +:102C100007E72E03780AA3DEBBBD06D7F52713729C +:102C2000C96E12783928E6355FE7890FE835F07606 +:102C3000E0772AEDC5839380DFCF1A04BC5601AF3D +:102C4000EA1AF86DF0A2CD45F271BF42F2417F5011 +:102C50007FC91743F264D22D6B21F92B36BB50FE8E +:102C6000D646808881FDF3968007FC0E86F633B445 +:102C7000937DBD89B986A10E483671B94A5EA99087 +:102C80009E9571B512E6494113F35F69DE8B88E7C3 +:102C9000BF45FEC7180CED790A6DF4DD8EF7225A98 +:102CA000685F773C87FFBBE8CFD82A1DC63F6688A0 +:102CB00078D68CB346F2A3E60BBB6A069600DF4CCF +:102CC000E636E0F76F665E03CAFDADCC47E51CE66D +:102CD000A7F27616A0E73F621D54FF7364CEA03AB8 +:102CE000C0FFF4278764601C2B04DF51E99C3FEE92 +:102CF0008AE3FCF16902C511FA7F2F7E9D2EF8034D +:102D0000E4381EC701394ECF4D0D919349FD05DDC5 +:102D10003A964503FEA6C73B73711FF29A4B9C2E51 +:102D2000538EDB093FFB15D0A47941FE0085624D2F +:102D3000023C5C2B48D87E9EAF63D7BA2B288E7D91 +:102D4000D8BD342E0EE09CACB7125DDA5D7A3FAE92 +:102D5000EF9B950EDA57796DA9B72106DA5F1BAAAA +:102D6000B896C1FBD7C54D8F0EE038E879C177DB47 +:102D7000B3153FAEE3D3D6F0B840D14043D05F8720 +:102D80007FAF4FD7D6A7BAF59DB8AF36355BEBE727 +:102D90004F63AB3EC3B8FBB4EFF0F7AF4A17FEFE8C +:102DA00030368CE26EDFDFDF9F98CEED308DBFCF07 +:102DB000301A097AEC260BD7B7EDE30F8EEB82F9C8 +:102DC0005E68731216FF3A94DBCD8BD33DD7E1FBDF +:102DD000E70C1D0B48CFD50366873076BCDECCDC14 +:102DE000C0D39FD4DBA97EA23E91CA53F50E2ACF51 +:102DF000D467D1F373F52EAA3F93EE9E9E0EE3ADFA +:102E0000B4703AC8EF2F167CBA7250FE931EF8FECB +:102E1000CA370C542F6D6D9A8261AFC5833E7E20F8 +:102E200012F0BD78AB42F1958A36B711732FE6BF29 +:102E3000E25D81CBCFC2373AA6A11AA9BAA8302F3A +:102E400088C875599EBBF03B63DE3D1E8FF8F9B410 +:102E50007E2CC171B2DE4D709CAE2FA27277BAA7E4 +:102E600004FBB9DB3A5724C278376EEB5431BE37D6 +:102E7000D9AD901D3DC1CDFC7EA0C31A035F3FD6E6 +:102E800024995D28B71347CC78E6C70CF5B2B71A7A +:102E9000F17273ECBCC9FD900FC616ABD8EF56E0CB +:102EA0004BAC4BBEFD6E79E578A8123C71769F4223 +:102EB000F8797BA79EE0387F2482F6D1CFEF8C246F +:102EC000BE3BDF6822BB62AFD1674A81FADE94085D +:102ED00017EAC9BD290368BD3409793A0D74623017 +:102EE000EF992FA625A09FF1D236A515FDEAFCED9E +:102EF0003129C8AFA7635B8FDE47FB0D468A23836A +:102F000023FBC9D3A8E70626BA50BECE097D0C160E +:102F10005E24AEEFD546694F7A8763FD7484D80F7F +:102F200081FAF46FB7E79A104F725E8B5E1C9E8039 +:102F3000FE131B1847F8C952545D5D481C02E17628 +:102F40000C09D6F7BE30DD85F3CADCFE64EA4F011A +:102F5000CECDCF3F757E0FC1EB2739DFBAFD99018A +:102F6000BF845AE58EE511E877C03ACEC6827EDB93 +:102F7000BB3AD28DF3DC6B701DAD437DFE8C95E2C8 +:102F800042BFFAF9BD1FEFC6F291AABC7B71D6E928 +:102F9000B14487925FCC999204FD36EF62B9285E06 +:102FA000C301B664802B7BCD670792E07B39FE9826 +:102FB000424CDF716DC93D3800EABF7E4909601C93 +:102FC0003FAFB565BD82B19E4B1B06A05DBB2BDD3F +:102FD000A1F1B3860F2A3A4CFBB061764376F367D2 +:102FE0000538DEF3035A17C5805C0D535A4F2D7513 +:102FF000A21CFC35CF4B78E5F19817DB66BE7D3B14 +:10300000C379F992D0EEF5151B295E8ED3C7DC9FEC +:10301000B33BD3C83ED9A5F3D1BAE49B6B76A1DD0F +:1030200076D6E37B0AF9B10AFAA3DD5995EB8BBAA0 +:103030000AFDC38FD25DC0796CD0BA6B8B103FD5BF +:103040003B1F9F3200FA9D1DCF5C0A805EFAE2852D +:1030500029E49F83178B7ED1D99DCBE26F83F71E26 +:10306000CE2EA0BC138FBE95BEC36AF8779E14EB1C +:103070001DEBC8A17D14626907653998B13DB62D75 +:10308000667F320BD2ABA66DA913E3FEA3BD661714 +:10309000FAAD6B9CBE248CAFC9F513D6C123C82FE3 +:1030A000494631AE7D26F90BDF77FD93713739DE66 +:1030B00093461E0794F1B9B546BE5E6F02BD837C90 +:1030C00027D76BF8EE89F43121F13D58547201CEC7 +:1030D000E4274D1487F9BEDF97F6558DF09B0AC49F +:1030E000BA3BBBDFB2973B60BEC7CCDECF51EFCC63 +:1030F000676E1E2F575D0ED4CB7F34BBBFE0EB68ED +:10310000770ACE01D6D5AFB15FB51EECAEB410BB19 +:10311000CBFCFDD6D52FCCEE6F48EF7FCFFEE1FA8A +:1031200078F1173A960B7CB0F871AE6F96097F7103 +:10313000992DDF4CF2FB8AAEF210ACAF57F3377B20 +:10314000C65B6CCB23F9C635F372F8DA07F2ED05EE +:10315000BD1480F5C33B043BB52FC3F88F1BFE673E +:1031600003BE9970111CCA90F531FC7DA0D3A00C50 +:103170008077228BD4F473B3188A03336BEC7F6EA1 +:10318000BE02EEF1826EE3CF1F8944BDB9F88B3CDD +:10319000D29F7DCDE765319FDFE37CA07C6BA86784 +:1031A00024C277F5E77615E57882AA67DE90751C6C +:1031B000E01F83CFDD972234F0F7F0F9F784FF1E8C +:1031C00085E74BB0CF781E529BF003DBCAB2C9CF64 +:1031D000DC857E32FA71338C64C7B6D9C0BF85FEF8 +:1031E0006D6FF627F9DF2BE337C53C0FA8CD22DE44 +:1031F000DF944076CD00137FCE12187F2EC79F1329 +:103200004FE3839EE579177322E8FBBDFDED83C391 +:103210007F437EBA99D697E65CEE97362F1D42E340 +:103220004BFF7980BEF6F511A86F9645927E6EB67B +:10323000AD6F4CC57EF7EB5DA8479A9D81DBD14F02 +:103240006FFE8CEF9383FFCCD71DD567C3BC06F010 +:10325000977BEAE847817F4CF560FE03F403BCBE30 +:1032600027E87744E5FEE911F47B4706F7098EF479 +:10327000E47DF071BCD32255E4F7F0764907D92EEE +:10328000FDDCF70DDC5E6D8E69EA8FFB6BF7657810 +:10329000EF463ACF99BFC9E20D89C3C4AB9EC519A9 +:1032A0002097C74A366DC5B82B2BE17EDDFB328FE8 +:1032B000E56BEE978F3776DC700BE061FC3F748A2C +:1032C000CFD19BFE3D7184FB759ABC9067372688F1 +:1032D0003802A777F79B7A17E5E8C8E7D64C9147FD +:1032E000A368F26D308F06E36CBE1787D0F78B664C +:1032F000703BF7FC125D0BDA1401918FF3AC88334D +:10330000FADA6C44F767051EEF127AEE59B1EFEC6A +:103310006B3570FF490D24D7E077DB8652FC20C067 +:1033200004DFED8E14CF1DD1585FF687510CE1EA12 +:10333000927A4611F93322BFE65981EF1F906FD37D +:103340008278EE33DFA64FBCC13A81FEF3BD7A4DE1 +:103350007CE6D9DA11126FFCFDA7781E534FFCA54D +:10336000CA29FC45FF8399D8BFAD3FCDF7DC9263F6 +:10337000F96B1C84B79CDDD86FA789F85CE24DD24D +:10338000F5D91E3EEBB610FF19795CEDA8BDC3164A +:10339000BA7F76D4F3890DF5D18775FA80F15BF2A7 +:1033A00070EE10F93D7788BC9E3B967C7C07AEF7AB +:1033B00077945EBA93DA2BB5790A2733DCAF22BE55 +:1033C0007AF07352A7C947DAB3B1271F89E3C7D68A +:1033D000F39CE7439CC896F9483C5FE96484C08F3E +:1033E000C8377FD149F36682FE7BD6F0F124BC7BDF +:1033F000543EFF3D7E6D7ED69E9E38939FEC508955 +:103400009765769739142F1FF6F7FE0DE17FC09A66 +:1034100067C67DEED2E882C3187FA956613D063C9F +:10342000AFCBF41E477994768A8C979E31B41FD225 +:10343000E13C967CBF75B222A2AD5A01B93DD5B62A +:10344000691796000FE183BDC0F5E8197B200AE1FA +:10345000AA80A609B1B8EF0B321CCBEB689786E7C0 +:10346000AF9068C6F3E7680F54B4EADD9628AC1B4A +:1034700083FD605CAF8ED3816DE7718972D61ABF10 +:10348000544FFE9C792CD831E776FF360AF54CB9BB +:10349000D56A5E827653583E49F9CE95ED6939BDBD +:1034A000DB7BC313A65F76E8357C7026840FE87952 +:1034B0007FA3909300C5017BEBDF405468FED919D0 +:1034C00041E73361743ED343E780269E78A6F558E2 +:1034D0000AED5FC978808BEF8356FC86EF6B2E1761 +:1034E0007AB7A25F6B3EE27D805EBBEF27CB0A33EB +:1034F00053C787F8191559CC8C749171BF0A0F53B3 +:10350000AF0AC933ADF03333D677E9407F58898E9F +:10351000AAA0278D03FD899EE566669E00F5721CB4 +:103520000F4B9D9FE2C612AE5E7084E17B7426DF76 +:103530003F582EF588CD28F4A22B11F136648D5119 +:10354000D3FF9CCD78179E5718EAD7B6CBF1DD99FB +:10355000DC6FCF0AA5B3B36FBC4C11FD9F7BAEA748 +:10356000BF9EE7F580192FF9D2C1FD2A03C2F79E4D +:1035700051C6C57E9C0CF65F05F2466A104FBB72C1 +:10358000BDC9B1509ED371BDBB2B06EAD968C7F245 +:10359000EFCB7A0FDEC3F8FC81F78C84875D6F1A5E +:1035A0005A301E532BF0D326C63F55EF1D75DC80D5 +:1035B0007187DAA12519C1792C58936B463E59B809 +:1035C00036D73C37C40F5DB6E56014E26B985547BB +:1035D000F197535B46515EDA29AB8E452AF87C940D +:1035E000199F9FB11EF89303DA17AC8DC90B3D7775 +:1035F000B070CD3D434B42F03C7C8B16EF235AB567 +:10360000F591BBB5F5FB3219F93D3FF4BDDC80B651 +:103610003EEAB0B6CEBAB5794E2F8DF5CCBC11F7D7 +:1036200097D6EA5DD8546AD5F94C20EFAA95CB31EC +:10363000DBA6A77DAE523BCF673AB16B653EDAEDB4 +:10364000151F951C42FF6CE13B1C3FE1F977A54734 +:103650000E7D4D71781D53285F6BB3427A3C3C2F31 +:103660004FC6977AEB93A5326E9E15CA4FE1743F11 +:103670002DF28F2AEB2A46E17E8EC4FF95ADAB2951 +:10368000BFBE6CAA76FE15AACA965C569FFAB87D94 +:103690006F753B103FC5E21C53E7B25BAFC7F5AF98 +:1036A000F3D6A293B82E5C5557C88E8D8207ABFE19 +:1036B0003C05F153FCB0C2509F14FF76C82B94E731 +:1036C0002AFCB385623FCD3ED6B1BB03FACDF72BC2 +:1036D0006497CE0DCBA72B59150647581EDDC2DDCA +:1036E000FBBFC6EF86E7D3C9BCABF28DDF98B479D8 +:1036F00076DCFFBFAAAD458FF39F2FE1F54DA07398 +:1037000011FC6852707FEE3856AEC47C30CFEF3378 +:10371000F1BD66FE5E15E3795E32FF6A8109FC0247 +:10372000D053876D46E28B0B6BA229EE798106831D +:10373000722D8F6B56F5E3F5AA0D0AF9BF55C2EE4F +:10374000A9FA158F5F2F5079FE3CF28B3B04EE4AAD +:10375000311FE48FD076D6C4FD67990F867962EE6B +:10376000907C824A9817E6CF637E58E87BA1F96186 +:10377000A1ED217176F2E7657CE159837FEB6680EC +:1037800053FFB30817DACD8C7922902F41DF707F79 +:10379000683AD75FBDFD95C5C25E3690BD0CFE0A86 +:1037A000CDB7B92C83FC9D01A81371FDFD9589DE71 +:1037B0002FD1F9B75AA0CD20FC98121D8F1B96DC93 +:1037C0006624FC34F77F81EC9EE6C779DC12F700B3 +:1037D000D08E6C5E3D44BB0FD893D7EDCEC4F8CEEF +:1037E0006DAB935CDAF555EE03FAFB5F7E7DF5F782 +:1037F000C775E27DFC4FC0EF6D22BFFB3691D72D20 +:10380000FD9BDB7AF2BAF938126FE1ED52EE64BB40 +:10381000F46F2E2579238784C4B59A63FC16CCCB2C +:1038200064A5DF6F5F6A93B01FBA575B683EC71528 +:103830009E0F5A12E179E81AC4DB13A9A988B7E4EC +:10384000217C3DCA2F7067DA797FDAC792F4666E01 +:103850007726FA2DC7575BF2104F329FEC682E5F28 +:103860004F2247F3BC9774314EFA109DA64C8CE062 +:10387000F95AC727F3FD0DDB688F11EDA64D0E9E9B +:10388000175562F4FCF1EA1078E0BB66C4538E1859 +:103890004FE20DE98D7648C92F4C7CDF5CF5A661BF +:1038A000FD8E235944BFE3627D937481958CF8EBC0 +:1038B000B6B7FAD3B93CA917BF9B2FE5BEB581ECCB +:1038C000B01EBEDCC4FDE8981E3F9ADBE1EC761E1C +:1038D0000F689E2CF6A181BFE43EF43FB03ED9E1D3 +:1038E000D7FAD1C03FB6503FFADBF9AC873FC2F8F8 +:1038F0002C9C6FFAE2A7EFC167B3BF8DCFE0FD311B +:103900001E5BDF7C56F5D2F3BB7CB8CFF19BC7A31F +:1039100018F43BA936C5BBD0FFDBB43CCA0DE509A2 +:10392000D51785E39DF4EB8B2E9767F384A033EED8 +:103930001F2921FBD1A79E7B781AE57D6C32D851D7 +:1039400015D66C31D139A9EA9D6594EF09F54E5E23 +:103950005F49FB3935BBC3F23F7FF578BC83F27911 +:103960007DC9980F047631E587546F3450FE68F5B1 +:103970003B7A17B2450DEB5E81F085BF8F705C041A +:10398000BEAD69D5171BA37B3F070EA1F5B766E750 +:10399000C39F61BC393C7FB454EC0B84EF2B2D1FCB +:1039A000628BA3FCE22BD81568F7015E5C01E4474B +:1039B000802783939DF877D9D65F6DDF03709E7C57 +:1039C0003F211743436736BE1E85E738E53E93DC4B +:1039D000773BD39A16EDBD0C5E65794EEC4B04E94E +:1039E000C6F5B663B782B126CCD3A6B2D210881A78 +:1039F00007DFAB6C3150BCAAF2F90D9B9F46FDFB73 +:103A00009E89CE65563CFFEA5FAF423F6087216EDC +:103A10002A9F8E55890FD2ABC6C1E3BB923EE5BF4C +:103A20007DD5E818C1DBD16E9074AAD8B1DFC84645 +:103A3000F4C66761EB7E6387F532F46AED9C42F170 +:103A4000CDAD5F1951DE4EEE535882B3F7FBA59B07 +:103A50005E8FC27E925E3DF4EB45B7C0B43DA3A934 +:103A60001FE577F445BF05182B1D83FC6D6398AFE8 +:103A700056FABEC93F15E9FAF3C5C4E79FAAB59C3B +:103A8000CF9F591E8FF66CA9C1176FA792B797AE3B +:103A9000BB47F09F3B899FA7F125E17CE6AFBD992D +:103AA000E6B3807989EF4A9FE1F94A5F809FB6E3E8 +:103AB00032748CCC52088E4FD79BE83CF9A7221F5A +:103AC000DAF717BDC83FB99BEC937BC41C29433080 +:103AD0001FE3D19C2E9D420F3371CE5CFAE1351B62 +:103AE00057B6233D4E0D722760FC0CE6EF1378525B +:103AF00030FF50FFE7C9099C1EFC3C05BD87E7D994 +:103B0000B01DFBB71BE85C45C87B8437F9FD1F8BF4 +:103B1000EF03DC11180FF8349EFB270CB774916F7C +:103B200014FE4EF592D2A90EC0FF95595C0FF4C851 +:103B3000F9C607B95C0B39FFFC1DAE3FAAFDD38B5C +:103B400048FEDB0D8104ECE7DF3F4B21F90FCF731B +:103B500017F4DF6810F2AB7D0E70A94A283EF771AA +:103B60003F7F4173483E3DE249EC17D780FD1CC8BA +:103B70000A9DA7D8F716FBC20B85BC87D32F5CFE26 +:103B80000D59625F59C8BF7C9FADBDFCFE6550DE1C +:103B90007D849F4AB02FEC28A7EF99C8AEA95CADF1 +:103BA000A77CCC63AB0EC65F097C7DBA55CAA7560D +:103BB0009FF6C8E7129E2F5FFAC22605F9335C3ED6 +:103BC0004F97FA95CBCA27B45F563E4BD9FF5D7D20 +:103BD000DA836FAD3C2EEC439F8ECCD2EAD32F58C4 +:103BE00076F4387C682F1E4CF1FD30BC4A7C86EBA5 +:103BF000C53F0E71107EC3F522C3949E103C4AFC53 +:103C000049FE64CC4BDFE9E15BC99F727DEAE1CFFD +:103C1000F0F96AF118FEFC73D43F008FE7773C7F20 +:103C2000B6B24D11E7247C879247933CBA49BDB0A8 +:103C3000A643C971A1757F58BD35ACBF3BACEE0939 +:103C4000EBEF0DABD76AFA57EE3E68E479B4014D5D +:103C50003F53DD0DE42FF5B613FC7C1F72E767467A +:103C60001FF2C5C06ECAE7353CC07C784EBCFB6510 +:103C70001EEFEA727447A13DB2DCC2EDC22EBBA8B2 +:103C8000C7F07A777FE30AD47FB2BDDBC2E3CF5DB2 +:103C90009EEEA89890F843679B9ECE6777F8797C54 +:103CA000AB373CCB08AF1D22FE35596F4DA91B8D9C +:103CB000F9D56974DEEC7C8341D433E89CB4B41B41 +:103CC000FFCE3C7F1D877046F07839F3B955CC772D +:103CD00099C749C64AFFB02C0AFDFB796D3CDFA5A8 +:103CE0006495969E0BACB3A2030ED42FDA3C958557 +:103CF000E8BFE1B9CCB5DAF6722107E56172E015EB +:103D000071FF703968927A2597E58A7812EDB72DA0 +:103D1000127A78B23EFBA6D980EFAEC37A6682FAF9 +:103D2000F9363D5B81F3DCA690BD8A073950BEA40D +:103D3000FF27F17506E564486F3CF63C7FF1A3FC74 +:103D40009F225FECFA2007F302CEEC7A2F732FD676 +:103D50005FFAF7940F58EFFE85FBBEBE13F56DD7E3 +:103D60003E13E54E74ED7B2DE5A758DF63223FBF80 +:103D7000EB0113DFCFD867A3F849D7206ED72F7B8D +:103D8000F9AB9C0E5A3FF8BD007BB3F839CFF36D09 +:103D9000FF3C8A7EDEF9369815DA05FB22495E6A19 +:103DA000F658288FA3EBE5AFF243F376FEABF39121 +:103DB00079195D367E1EBD2B86FB01357BAFDC801D +:103DC000F904553BF71BE7C1F3C2DFFF2B07F5658D +:103DD000D70BDCDE3967E85887B1D4435B3CCD862E +:103DE0002B31AEC8E83E92BBB636CD42B9E88D174E +:103DF0008E87AE7DDC9F00BC94A29EEF0B1F1FFD43 +:103E0000B7C5C7677772FD7505C3FC83205E14379D +:103E10006FB7F9CD0ACD9FB7EFFB2A07F5CB77CD6A +:103E2000F79F38DFFEFF7BE69B34F4BF2B7D39BF65 +:103E3000B7643908BE70BEEFCDD72FFD84EADB6DC5 +:103E40002E82F77BCAFB9543FF77D1FBD6FFB1F4F7 +:103E5000FE83A0B7CD8E71CEAE97FF95C27EC0BC5B +:103E60007FF23F74DED23E2FD0BB0EE742FFD75920 +:103E7000EB3B2E27591B64672C13FB02AF253AD767 +:103E8000F3F3C6DC0F2A147E508BC8FF5CC674B4F3 +:103E90005F5768AE203BB370E0239FF17C361DC1B5 +:103EA000F39AF9EACDFCDE30ADDF3769A03E80FB46 +:103EB0000F0797C2F7A1DF419BCEBE8CB77762FB9D +:103EC0001417B7EFA70CBC81F2670BCD6FCEC6B845 +:103ED000F024ABD62FBA21CCCFB9CEA17D5EC45E83 +:103EE00088C3B85B51B681EEF49A82FD43FCBFA54E +:103EF00043F9BD57D7B1A606BBF53F8517F2535519 +:103F000081973F85E1A5371E041E19B773C2F1A63C +:103F10005A1F6AA792819FCAE745FEADF45325FE5A +:103F2000C2F1C684DFABD22783F85507F2FDE290D9 +:103F3000F168DE3DF814F8FEA1780DA7CF77E1799E +:103F4000E3507E5F44389E07AAB92ACAD3D5C21E61 +:103F50009FA4C6F0FAC076BD87F0E7E7FCFBB94B3B +:103F600045BB63A23546A53C2EC7A0E0FD33C98CF6 +:103F700025ABCC67C238BFBDE31594BBE2C74C7418 +:103F8000BFCB40559CBF55799C1BA4D5179147FDCD +:103F9000DDC658ECB790E149B1E264E652787F861D +:103FA000F7F5E0213DBC6F08F7BEF0BD62B4A1B1EA +:103FB000DFC32A9DEBA63FC0773A96A934AE5B17C4 +:103FC000CBDF8FCAA3F77D3AFEBE1BCFC91B983D3E +:103FD0004501600717DA7F7204FD88E516DA479815 +:103FE0005AC0FD0529F76387F1F8872C5F1FE6109B +:103FF000E70EBC43D1CE9DD63094FC9165164FD5CB +:104000008BB80E3D1F49E78A8A57FCE8C63108DFA6 +:10401000F67E2E649753D37650FEFDDC8639F7BCCE +:104020000BEDDE2D166AEF1EE665C3009FA714C7D1 +:104030009D2F42C3DC9B0F1A31BF795AEB8E731848 +:10404000BF9B362B92F23CA7B1D63F613E289BA581 +:10405000A7F13BB7DB8C888B1B5B3F53D1BFBA7199 +:10406000BC826A8D755AEC2977033CC562FFD63A4B +:104070008CC77F9659785CB878C5A0CC5468BF11BE +:10408000CFFF5DC6BFB97A98909789CA5AF4530694 +:104090008BF340B23F8E43FA45E02361183F67231C +:1040A000EB830B79FF924653671AFA318D86C01065 +:1040B000289FCB2E48C6794E4D6553D68CA67C1DC5 +:1040C000BA37A5D3C20E51BC7CB5D3817E9C9789EB +:1040D000FC8C554E8A4F754E7419F11E95CED54EF7 +:1040E0003BE64D4766BB0F21DD1734290E94F7CE12 +:1040F000898CC7DB6D3CAFE1A83D908EF18DA3AEFE +:10410000A12E8C9B0F96F93F2322C84FBC6FB87726 +:10411000E43080B3B8A9F80D94737609E69D8FF961 +:10412000BC8C98F7E1DB225800E521783FD6E861A6 +:104130009497E9FAF91571C1FBB106EB797EEA6350 +:10414000C80F382FCC57053E5B67E828C3712E0C8B +:1041500015EDB1F67C2BE72F86F0751AEC9938BF78 +:10416000CEE5161DEED34D7D80F31BF0BF5985F7CC +:104170001F545904EEC7DB059FDDB154F5B4407DF3 +:10418000A099A978BFD58DADB9E43F9FC8F6262088 +:104190005C27EE6757219DE6AD5A4DFB22925E4C9F +:1041A0006D9FD40FBE73629393EE8193F43D915D46 +:1041B000307558289D6629441F988F19E17F2E7B02 +:1041C000EE0C1C17DAF723FDA61604D2F1FEAAC9DD +:1041D000FA4AE6C6F53491B9705D3ECFB8FC9D6FE2 +:1041E00054298E24E55DCAB59467809BE457CA6361 +:1041F000B81C6FAEE7672DB7D49BA97CAEDECED4DA +:104200000CC6B6D527527D7BBD83CAD6FA2C6A7FF1 +:10421000A1DE45F59DF563A9BEABDE4DF5DDF545A7 +:1042200054EEA9F750FB9D803ECCF380EF93BE91F6 +:104230007A06E1D3E505F580A49FA171A20EF5B43D +:10424000A41FF8BB74FF86BC17AB2FBBE0FF15FCA7 +:10425000A0C77CD17941BC62DD12A227B16E8B0D63 +:10426000CE0F5313C7C786E83995DF7780FA303E03 +:104270002F387F0C055ECC0BD205DF9B104637E450 +:10428000438917783F109F178A97338F5C81742F6B +:10429000D5B928DEC13A9E7F89EA56DABF4D31B2E0 +:1042A000DD18AFEDF89995617C54AF73259AF07CD9 +:1042B00052A9C2D49078C38F6A2D4C0D59BFEEAA73 +:1042C0008BD1D4E37E76E4550C9FFD21C1BB11F95F +:1042D000F1E8BD67FFFE2B18FFD9FB3F19E1257EF2 +:1042E0003CB3E949FCEE920817C52318DE4D47F1AF +:1042F00017DA2FC3BFD07BF4E6FA22E9DEBC75469D +:10430000FB5F7F85F1DA157A3BEAD1B90D7C5D7EE2 +:104310001FE90878FF50D051DEE7572CE3E261F740 +:10432000EBED1B96CAF59D88E71CBD2FF9E7944776 +:10433000B85C6F17E938DAFBFFC4F7E5F7C2C7FBD3 +:10434000388951DC04AC7E560774F8F87E6300CFE0 +:104350003C7FAC98E9DE05C511C7EE80766FE36B54 +:10436000745F9C527798F213BC662B9D13643EC316 +:1043700099D0F1943A7EAF1CEB181883F14D792F48 +:104380005CE468B711CFADA34E40BE999B7580EE3B +:10439000A9624D8A1DF7694A447B893C2FAF7A8711 +:1043A000CEB231F6EE303DBF176CA84AE5B5C398E2 +:1043B000D81768A27557C6B14A56F17B194B9A7245 +:1043C0008D0B42D697B9A27D1EDE1F11D2FE77312A +:1043D000EE80C6E23264C601E27E89015973CB5099 +:1043E0006F0F987DBD8AF397FDFF368CDF87F0E570 +:1043F00050FEFD6B51998DC17B48B91D3877F66D24 +:104400001BE9FC1D731831AE2ABF37372B6F05E649 +:1044100029CF5D85B73ED0BD9394F7F844D4944D31 +:10442000A8BF4E868D5B29D63B989F11F73F4F6002 +:10443000C63BED0BF3785EF9F65FD3FE5AF907261B +:104440005AC7CB47F2F59665FBF3F97D7CDAF8F9AC +:10445000A45F7F44F730D6ECE4F73542C9E3BB32C2 +:104460001EECE2F987E171DC57B67F1075D9B8F917 +:104470004EBEEFF75D7173795EAEE6773CFE2BF1D1 +:1044800058A35CA4FDA69A9797C75FEE5C1AEED777 +:10449000201F86C7D1BF2BCE1E1E574C1E7EF9FD96 +:1044A0008ABEF4A98CAFCB7A695D4EDAF151782ED1 +:1044B000CE9B391CF15E979F86F946D57513A80CE3 +:1044C0003F27575A379CFA97D78DA2E7B5C29E016E +:1044D000839BCE59CA78E6797F4634FB16386AD674 +:1044E00000B0F0FE79D5118DFB71F29C74D7363D8A +:1044F000F90F5DDB46AC47BE2C6B7BCCA883F6DAAC +:10450000E1DCCE3A1BB62F50BDED18EDD755B17694 +:10451000A20FD08D9943F787305FB05FDFF055FC75 +:10452000DA568BFC5BD6AAB837E17A646EA5F8C779 +:10453000F96D3F32F842E83975B8AA39C724E19FCE +:1045400038DCA1B9EF00E145782A4CADE7DE4749F8 +:10455000F84D24E3F7CF76FF09F76F4FAF1D45798C +:10456000D065AD3BAA791E5AA41DE32AA7C2F22347 +:10457000678BEFCD1ECEEDBFD3621FECF4763DE925 +:104580005F8417E5F894A23D6776A778EF4E81AF78 +:10459000CF518F8C09F62F6B5D4DF6E0B99D3764D6 +:1045A000A0FDDFB5FBEDA874A4AB78AF6B6724DD8D +:1045B000DBD7B5F39753F6025F9F6D9D1887F227FF +:1045C000C7BF6738BF4FE26C1BDFEF637E9EC754E7 +:1045D00085781E150A673FBAD741BE27F3B74EEF5D +:1045E000FC6D942E3B48C71A7353635A6AF03E0E13 +:1045F0008BC1E7C378826137BF9799E41BC67F30D0 +:10460000ABC983FA5BF6339BDDE4F7C97BC6983C04 +:104610003728CEAFC0FAF5A617E05F5466A478FA43 +:104620009D231DB7DE8E7AF87503D163D15016C075 +:10463000F8C5853A5B0BD27991D345FBAC778E12E6 +:104640007A26B1630CE67754362ACC8D79668929AF +:10465000FC7C8C90FD4EA7EBAD9571749E80ECECCC +:104660004ABF9E794791FEC8C47C753636908979D9 +:104670002429C027F8FEDAE1DC7E3F6AE4799B95C5 +:10468000A93C2F7FB0C83BA98CE579FC67649EFFED +:104690008C4026E6BD54BE9044792F6764DE3EB45C +:1046A000239C95793C7F5FE2B7F2BE0399C877956A +:1046B000735BB3F079A7D37E8EF28B5EB4D17D4568 +:1046C000BA976C225FCDB2DEC4D76F3AEFB06C53AD +:1046D000520BFA8DAD82CFD6F5E41DBB1251CF0E31 +:1046E000B8DF1A157AFEA0CCD8C4CF1B283CDF4512 +:1046F000D6E5BCB08EF33A23F8B92C42D405FC655C +:10470000514D0477279EAF40FC6DE5E7064E25B579 +:10471000EFA23CD4AD43E97EC74EA77FC16E7A6E4F +:10472000A1FB15CB7C0AE9F3F2E74C74FFE9C9ADB4 +:104730003CEE5E5E5F47F76F9683D8E33937288B90 +:10474000F0BCDA4943530A7EF7647F28D1AFBA9FA1 +:10475000DB4B876D4FA4907C6F3429A8AFCBC1523F +:10476000407BEF3C6BBAF369DE8E9E3A2BDF68A28A +:1047700073025E68C773A10CEC20E41B896F78AEEE +:10478000C95BEC746AEF756817F2D72EF0FACE7039 +:104790001E0FA88A6C7D2295E6C7E504E8C3F3C91D +:1047A000993FE9977198C791A1A07E286FB574A22F +:1047B000DD51BECD40F7970E96F971C20F2B0385E0 +:1047C00086FBC5658CDB9793F5DB283FECC2164B67 +:1047D0001ECEAB53DCCF597EDF4F397E5EB2B9F9C6 +:1047E0007D237417123BB93999F2C5A7620E19F1EE +:1047F000C9087E3E21B62907E959BEF20A1DE5899E +:10480000E8B9DF05A55BA13C7A33E9D14AA147AB02 +:10481000568E8B1E8772F5969EEE132F8F5E407E0E +:10482000DF0515E4E932FA3F1C6F83B3B95D500927 +:104830007282E795ABC439AB8ACDFCDECA8A153CDF +:10484000AEC89EE3F7942EB604A2F07B8B37E95DE9 +:1048500048A70A636B667FF84E4436D75FD0DF8B7C +:104860007A498EB7D8D2BA00C75BFCBC85F47944CC +:10487000761C7DEF4CEB63F168E7F6EECFE10EF6C8 +:10488000DB10159ABF23FBF5CCA795C7932EB0F686 +:104890009F7C00AF7CBECD42708144D1F9B5F0F968 +:1048A0009E36003C00FFE9E72D747EEB53D0833E3B +:1048B0003C871DE37E94F21CFEACA77B7F102E5C30 +:1048C0008F16FAB5EF57F57345631E65D55B852ADC +:1048D000BE1F9DCDF531D0E126C2D35B063AA71AA3 +:1048E0008EF7F3426FF7C8DDF391C477A70770FA2C +:1048F0009FDECEF3E73A6338DF009C2998DF7CFA2D +:10490000F921B974DE138D22A07BB99DD3FD744CBF +:104910006B8A3DE4B9E4373CD09488FC81EFA4A1D4 +:104920009DC0EDB10AF32ACA67C17CE7FC3C2A03AB +:10493000A6CBE42B033FF2BCC36C6157E0F7E24522 +:104940005E3DE9AD5623EA65AFB01F2BB785E73B67 +:10495000F3E793B2159967ED889379D698DFED5315 +:10496000282FA6A2E1EE32948B8ADAD5B723BF4A6C +:10497000F82B545684FAA053D1131C9D167E4F3643 +:104980000BFD4E2A2FEDF1C1794E13DF9B91ED9077 +:10499000F62D6B82712A1B945534BE53C60DF87CDC +:1049A000E47B800623AE139D13C5F33EE62BE10B9B +:1049B0009FAFA4EF826CAE673A9D8E47C7C705CF05 +:1049C000B99DBF342A3AF65BFC6BF45C7BF28E41F6 +:1049D000D617E35C619CB1D95C5F55007C0867E643 +:1049E0005A6DBE79D6466D7DD8366D3D7BA7B69E95 +:1049F000D3A6ADBB5ED1D66F17DF457F1FCFBBA35C +:104A0000BF8F25FAFB0E13F7F7B18EFE3E96E8EF47 +:104A1000633BFAFB58477F1FEBE8EF635DE21BFD4A +:104A20007EACA3DF8FCFB7648BFBEEC47D467B0AE1 +:104A3000BC73304ED9937F5C660D3BC735509EEFFB +:104A400091F9A0917DE48346229DE4B9D8F0F35B0F +:104A50003DF7E2869DDF42FEC2713EECEF7D3C1BDE +:104A6000E0FA44695F91A4E07D7CFEE18B689DB72C +:104A700058319FBD63F9A72BD03DDAD1DFFB7436E7 +:104A8000DA6986EECDFCBC7480F44CC752C75BD7A4 +:104A9000487B04F8A618B08B7C2CCFCF7EE77DB77F +:104AA000DF79CFAD964FA43DF7ACA13B09F5E5B159 +:104AB000ADE65508E73111BF64B3CD61F90DDC4FA8 +:104AC0005AF488B21ED7A7DDD9FC9E81F387013B3B +:104AD000DFC29FF32E8E223BBBA7BE4AD1D17D19E8 +:104AE00089F1B40E497B2C45017B0CF51FCC1FD7F7 +:104AF000E9216B741AF887FA2334FC367C4B6CD8A6 +:104B0000F993019AFE2377A7869D3F19A63DDF30D2 +:104B10006BE97E5C9F67AE1AA5E957E219178637E5 +:104B200001A7B04B4BD01EC475E67E33ED3F2E7E01 +:104B3000574F764C293E04BD588A63011D4B378A76 +:104B40003CEA3AED7A5BAA321FDE27364FAC43923D +:104B5000DF4AEDCC1D03EF9FCD6DDA8CF7B896FDE3 +:104B6000E1ED7C3B9ECB5326266070E27743BC1F71 +:104B700023DFA418DC94B75BB9232306EF753B73DE +:104B8000F855CACB947C9262B047203D5B9AB87DC1 +:104B90008FF1317D6C90DE2D4DFD22D2ADC1798536 +:104BA000E4AF903D7C01F357A0A974A2E2338E0CD0 +:104BB000C2BF48AC1B12DEE3C2FE67E97C9C1F8BC0 +:104BC000E79579AFAD8B05D29DD11DF87225AE4F1B +:104BD000B9AD9901B4D39E6E89BFCD89C70DBCFF15 +:104BE000C4792C7AB3300AF3E9BED866A0F3047F07 +:104BF0006FDEB00EF39C57366D30621CA05CF51B67 +:104C000029CF736B8B11F39CAFDDD242ED0BB61441 +:104C100093BFB890D592BF7842DEEB21E65F5AA0F1 +:104C2000ACB5E3F9DD115C4F9446F07DC7C9FAF1EC +:104C3000AFC6917DA550BEEF2CCFF4C9FDD14E6912 +:104C40008DA17B98FA8F10F76185F1FDF937F43C5F +:104C50008E3B8BD3B9AFFBA1665E74129FCFBA387F +:104C60009CFCA89B0343B9DF9AADF55B4B8D8EB7D7 +:104C700050BFB33FEAE9F7517AE2082E03D9C7558E +:104C8000B0BEE0F947CF78BD860F6B26456AF87451 +:104C9000360BE17FF8F42D98EC12529F35354DD349 +:104CA000FFD659C3C3F83A2FF89CF4C1559A7394B0 +:104CB00055D842E7500A7AB5F3F398D76BDEAF6266 +:104CC0003334E7F3CA36F27D85AA9D31B4EF582A12 +:104CD000EFD5F3F2F6EADDBC1D26A291AFC185AE99 +:104CE0007FE7EB9F81FF1683D87F988DFF9DD61BB2 +:104CF000EF60E9F5DC4780F74960FC40730F81D82D +:104D0000BF44B8C9DE15F1A4AA2C1E4FAAF2B51BE8 +:104D1000F1BE0EC0BBDA0FF3349B14A207F437F7D1 +:104D2000CBE3F5259477ADCD1FC3F130DFB2FAB0F8 +:104D3000BE18E524FC39F01DB77BF7F0BCD7856BB6 +:104D4000C2F33557D1FE6935C68742E8F6EC08074D +:104D5000F16DF9961D8706001E667A387F56B64EAD +:104D6000371467F7E627E06BBA177B0103BEC27DF5 +:104D70001F905FBFA3EF79A3B9887E879C7FB59B07 +:104D8000F3DF00E4BF9CDE7C57E5AB35D2BD2B6B77 +:104D900015F69893F7477C0C407E0CC307E12F0C67 +:104DA0000F123F3DF80A7B1E8E97055E46FCB160F0 +:104DB000B7E2F72BBDE7D117DEC2E9BA90B51BF118 +:104DC0001CCAC29D8A0BEFBD97FB396C6C581CE95D +:104DD0008D348A23557B045E241F78389FCFB8C852 +:104DE000E322B7E0BDAFA3827C316BAA561E6FBE33 +:104DF000184FCF7F289FC0CA4F71D8EFCB1F721EAC +:104E0000520F63BC90F842E44B87CB4778BC71EB00 +:104E100008116F1CC3C668F2A3FBB8A7233C3F5A16 +:104E2000AEDBE1EB46F11FF8BA21F5A757AC07DE80 +:104E3000E5867816BADEC876117F5B747F16DD478B +:104E400092B2B41FF52BB6D829BFBF7829CFBB2E9D +:104E5000867E8E10FB6145435A0AAE031F3F3864BD +:104E60009D0FEF69BA372E7E2CD0F9D872431CDE25 +:104E70007329FB7DBC7C720AE68D1C5B6D9A4DF735 +:104E800009FFCC4CBF9354B52B81DF3FA7B7C66356 +:104E9000BEE6D917FAD1FD487F16EB45E5F217A318 +:104EA000F03841C572BEFEFE6888B77D04ED3FB79D +:104EB0006CA68D0B7B4B0EEAFFBF618C08FA9FC07E +:104EC000B1F2681DA275FD84C57E0B8E7B62AB813D +:104ED000EEB182E76EDC37FAB112F8E41ABAEF46A7 +:104EE00089C7B8CD9977F5743EB34CBF3F07C7ADBE +:104EF000ACDF9D82266C691EAC97E8579ABC7FC3D5 +:104F0000EF562CDF90429B508D2DF43B0321F1DEB8 +:104F1000E323D06FC4782FD4BD4B33A2F93DB597AE +:104F20008FF74ABCF844BC77B358BFD14EC712EDD7 +:104F300074CCEF413B1DEB68A76389763AB6D7ACDA +:104F4000D1DA7147C4FEAD8CFB0ED67F46BFE3E3DA +:104F50002B6059B5B4DE5AB3D0FF5CAC44B8D05E18 +:104F60005CAC70B95EFC9185EF3FF99334FC107E28 +:104F70008FEBD5DD606B85F0ED3517CD2CF4DCF2D1 +:104F80004416A3A9179A9334FD27DB9D9AE7D726E9 +:104F90000ED53CBFCE91ABA9DF9075A5A6FF8DAE17 +:104FA000899AFA4D63AFD3F49FEE9EAEA9CF2C9AA7 +:104FB000A3E97FB3A758F3FCD6D9659AE773BC770A +:104FC0006BEAB797DEABE9FFA3DAA59AE7FFA6671E +:104FD000748F5F1BFA5726BC77C84CE5573ABB8ADB +:104FE000F6E1E23733AC48FFF185BADACBE52D8C38 +:104FF000C8E1FC3D77A43B2BA73FBF3F0AF9769061 +:10500000B81F6A5C0EA76732036B8DFCDAF624E4E6 +:10501000A3F07EE1CFC7471EB8E0001A3E96937B0F +:10502000AB0AFA68FC150746A541FD8D9C525E1F30 +:1050300077E0B7A9507F27E7B95B55D02FE3471E2C +:10504000B880CF6F1E59C5EB3319991E1DDB07DDE4 +:105050008AF932E3AF495DE5E2711071BF4680E243 +:10506000163DE759CCD6405AC83D21880F3C378FB2 +:10507000F8C032007C8CE501E0632C5F013E2E011C +:10508000FD7508F818CBC3E06F62FB1FC1DFC4F2E7 +:105090000DF037B1FC13F89958B6839F89E55FEAA4 +:1050A0006753F94EBD97DEFB6B7D299547EA6BA9E7 +:1050B000FDFDFA3A2A3FACF751FBCD3922DEB15B58 +:1050C000FBFB5472BF52EE4F2EAB651D91A8073A01 +:1050D000D418FCFD37B9EFD8B77FAFB24F42ECAF71 +:1050E00068E6F6E6D0BEA2F677349E4EF3CEC7F65B +:1050F000779D3333F082F95B2ED6BE8A2940EF8A42 +:105100007B06C2C71D97C3EDDDAB46BACB73C68421 +:10511000FCBE80D84F5F6BE0FBE6723F5DE625C8C2 +:10512000FD73FA0BC92792F90A579BF9F96D993F5C +:1051300020F393267FCE48FE2734AAB4CF66535976 +:1051400000F30C64FED1041C08E83E218E917E48D9 +:105150008076631EBFC75A0FE5C6AFA17F4E483E9B +:105160009489F930AE9920F6E5A11FC137F9732F64 +:10517000E5474D10791883701F93F7A37D5B1BFAE9 +:1051800043F87EBF8E8318874BFE27D004FA3DA3D9 +:10519000F0FC01998781FD2379FF008E9BFE0FF8BB +:1051A0007E54504ED64E6C77621C6EED3D6617C62F +:1051B000CFE4EF2A505009F03253E835DA64C7BA29 +:1051C000582FD996048A0F1588E7FDD2BD6B916ED2 +:1051D0001E93FDA34892ABB441680F4C17F6F2B78B +:1051E000D0AD05DF0BA79BA497A447483E09D14348 +:1051F000D24FD2379C8E927EE1F49274FC9F4AB7D4 +:10520000D12ABFE7CF5469A6FB03BF8B8E7775B356 +:1052100029D1D0E59D74EF38C473F145C721ACCFD7 +:105220006313E9774FE4F38FFA78EEFDBCDB101DD2 +:1052300042EFAB852E57332EDF5FF693F75FC8F151 +:1052400053B1FF98DEFD174FE6E7C28ADEE571F441 +:10525000D7C5BA89FBEAB9F921F99AD90BC92E66E3 +:10526000566E5F3AE01FD44BD75C5435F66611E3B7 +:105270007A0A166615F9AF286CDFFA7A618F5E1F1D +:10528000668F86DB975FE408FBD2C99C3FF05ED750 +:105290004B3914EFD5DA2F98F785FC9CE6D0D37DF7 +:1052A00034F21E57792FF024214793F05EE028FC5A +:1052B000FD4C2FAD87D7321F95D7C17CB0BC81057F +:1052C00068FDBC11142FD66FC2541FA81F8C9C768A +:1052D000079ED12B1C55984EF77504EF2B8C1E3969 +:1052E00086EE2BFC9B3DE4BEC203931CB4CF78C07A +:1052F000CCCF05A3BCE1EF23CAF9FC01D69D7458BD +:10530000170EC2BA84E5ABB02EA5C3FC5E83750947 +:10531000EBD767F1DF2998E2D0E6FBC8F76FB0174B +:105320008203D237BE6EC8F9DD40C4E7EB314326B5 +:10533000E17C5F8FB96212D2F7F598041D2F4D46BC +:105340002CFB7A5FF2FD0DD9FC7CEA0DF629F4BD49 +:10535000FF0FF8BCF272F81C87BC897144F3DB5173 +:1053600089A9B8BF1625EE557D33470FF593081A66 +:10537000D81113EAC6119CD7D45D49E5A7F52C1BBB +:10538000F15A69E6F80A8F43B18D09BAD0FCE36B94 +:105390004DDEEB46A27DAF6B8BBA0A9E7FBAF6ED6F +:1053A000EDE83F801D3D0DE1AAD43B56B9302EF308 +:1053B0003ACF1F65970EA6CCB0F5E647B671A6E6C4 +:1053C000BCA3E4C74AB3C4A38FEFAFA7BBC7717E2A +:1053D000E6F7A4CA3C9781267EDF82BCB713ED199D +:1053E0003AE7186637E44770BD36D0C4F5748FBE0F +:1053F000328A7519C6C9473DF86804C5192393DC7C +:10540000F3701E324E7B7E6024DD833221303C1AE5 +:10541000EB45181700500F887CAC6B87D75A538127 +:105420000EF543BD55F81ED35FD2A37E7C234361A6 +:10543000FD148CEB8EB2925FF81DF21B2EFFF78CE1 +:1054400014F29FC37234E7E4045D003ECACB39FF17 +:105450008E9EF2E326B0CC27316E5178D88099D356 +:10546000C1BCC944BE7F38F930CF030AFAA1DD04BC +:10547000E7AB76853D0DF33325EA9823448F591C1D +:1054800011CC11024F6456ACA66E730DD0F48F1E72 +:105490009BAA791EE31EA679DEAF284F53EFEFB922 +:1054A0004AD33F617681A69EE4BD5ED33FB9748640 +:1054B000A63EA8F6364DFFC1757335CF9DBE72CDA1 +:1054C00073794F29F3B9DBB3E2B99EC6BFB4C645C1 +:1054D0009A7E45D605742E32A3E93ECD78CCC1E341 +:1054E0000D3EF807F9EA0B3C780BE5E4446D1CA28D +:1054F000D03EF1152451B2C85B62CCE5C075A0D096 +:10550000AE8D4B245B8B287F3EF93BF29A76FD50A3 +:105510003EF00EBB3C1F5472BB229C0F5E45BD94F7 +:10552000C6F70942E78BFB04A178C17D82D03AEE31 +:105530001384F6C77D82D0E7B84F10FA7CD4612D72 +:10554000FDC7B46BE97FC59182EF45AF2B3BB47CBF +:1055500021E935EEC48CCBD26B36FC43EB34E3EB64 +:10556000FC24C05380F5A69BA497A4DF7F956E67AB +:10557000478AF3DE826E5FB05563F0FEFAAE62AE2C +:10558000AFFB5ABF158BFB02EAD72CE49D31BDFD62 +:105590007999071AFEFB2CFFA6EFB0E13AF195AE20 +:1055A0006304D23389F1DFC37828C1FB0DEAA50477 +:1055B000CC2641FFA6EC965C5C37BB06751FC5DFA9 +:1055C000EFFE3F2308244500800000001F8B0800E9 +:1055D00000000000000BDD5A7D7454D5B5DFF7CE16 +:1055E000CCCD4C32432621E403244CBEF81CE0CE43 +:1055F0004C625169BD20A17435B026F8418231CC8E +:1056000090044140438ACF60F165628206AAAFB13F +:1056100004A43EAB131EA0BE876D40AAB44DDBA907 +:1056200028B52E6DA9DA575A5C7190D6A25619E3A7 +:105630007ACFD8D5D6B7F73EF7643E84DAFEF1DEEE +:105640001F2F595927E76B9F7DF6D7F99D7D6E6413 +:105650009B4B3FE801FA89A9D500F16DAEC15D0A07 +:10566000C027F4733540F314681FF202D8756CAC90 +:10567000C1517ABCA67E2E408EAE72DDA5BB3570C0 +:105680000284BD6044711C58A1B419FB6B2DD888ED +:10569000F446B75BA3596500C58E905B9F04D0F3B9 +:1056A0001BBB1D72B11D3CB96E1A0F9ED2A00BE040 +:1056B0004D1B340C3993EBCAB2D8B16812CDBBCABA +:1056C00082EB15002436A8D1FD65BC0ED37FE840DF +:1056D000517417D6AF9A1673CCA0FE3DAABE1F52C6 +:1056E000FA377944BF4589503D719716DD8F5B7954 +:1056F000DB26FA235B3CD183440FA28E7AE463C697 +:105700003E9C3A93E5019FE0DF435658467C3D14AA +:10571000552355F3016645ED60B5A7F403F6F3BED6 +:10572000A38E95B8EF398FBBD3FAE70E15A7D19B9F +:105730007FDC93D6EF8BCD4CEB0FBCA0A7D5E32439 +:1057400017A45F736A41DABCA9F8A7FA013E77DAB9 +:10575000486B9FB6B16305CCE37E43CD07B822BE4C +:105760002C8DDEB40BD9AA82FDD7E9E50024D7F34E +:10577000C1B47EF008B934DF5118253B98628548E2 +:1057800016AEF32D1B441CF95C37342C3512308EC9 +:10579000D3FAACD11E94DF65C8436EBEE0CB42E3C2 +:1057A000B074F038C107F647ECD48FF4886FEC374B +:1057B000ACA23F928DF5DDB33D6C4F36ABA14205F7 +:1057C000C023B6F806B0A4D86116DAA193F56A90A2 +:1057D0001D3CB26D729A9DDE68DAE3EED9C0FB3AE9 +:1057E00068873541945BCF5D4E289B4FF3E225A43B +:1057F0009FB5A61D1F9F6E84741EEFE6FAA3AEF33D +:105800001B004934CF17EB34A9EA9A7A9AAF40C308 +:10581000516F729DCDE6FC3ABFC2EB34E70A7EE0E1 +:10582000AB1ADB91DC47B106BD763FAF3B8BECFB9F +:10583000A6FB86EE9F815D4D5ABF8DF685F6660B01 +:10584000223F758BE356F0019C7EE2D77B9D57E0AB +:10585000BE3A51AE57026C1D5AD810C17F97A39C17 +:10586000889F69F83FE9A18EE48BE588CFC2EBF70A +:10587000EBC0EB8DFB5B01B0BF8D82E06BB4538B53 +:1058800046CA927A4CD15384F472A80B59445F787B +:10589000BCCBCEE5BF77A1FD56011CEE2AE6FAB7D8 +:1058A000BB3C5C0E75CDE4F6A35D3AD78F752DE059 +:1058B000FAD35D06D78F772DE3F2FB5D416E27F3B8 +:1058C0008442804A615AE37291F623E55277B7D059 +:1058D00093678B2DB81FB750A7C232C59F94F707A7 +:1058E0003E95F739AC0BBDD2388A33725CADC59B9F +:1058F0007BD6991C27E34A661C91E5FFD67EC7E557 +:105900006B4DDAB923C5BEE5BEB1FF127E92EE4FF4 +:10591000FC73B929BF72316F823FA9B714FF61FFD1 +:105920001AF71F883792FF48F9462BD56524AF7BBD +:105930005D42CE520EEFEA425E7B7561C710319C2C +:105940003ED457C85CBAD6F2E730D94F9B4BF364CC +:10595000E19090735D1D4C00F88211DC7B2FB6AF97 +:105960001DB0C120B68771D9CE7C516E47FEC211E1 +:10597000DB9BF1947874330473630AD51216A2D7B3 +:1059800073BFE27E08EB2D7DE9E3DA40D0B9D9B9E7 +:10599000F46D5AA70DAC6FC6655C2A233AF77D609B +:1059A0009940A535390FDB3B5F1FBCEAB994F8F588 +:1059B000BAEE2A782B87022DCCFF84FCACD3AE92B2 +:1059C0001CD7DBE5BE9C7A8CFCE4358B9E85F5D13B +:1059D00068452E9D5FA81FF62B2C6359C8C7475DED +:1059E000D1AB9E43FD7AF6219140526E28CFEC99BF +:1059F000746EF45AF52ACFA7ED6B5C9E50C8EB7617 +:105A0000D8454C453BFD05C9ED8F2F58208B626C66 +:105A1000839DFD2364F6FF31F2E159EE3FE6D0A904 +:105A2000FE9EEFD4BC18EE2F44EB4FC431C5E9F411 +:105A300046B7DBC14DFE7DCC15051CF78E327828AC +:105A400017F5FE8E7AA4704159929F505CCCBF949A +:105A50003FDC342364F521BF211B1436907E0E5B9E +:105A6000F46EA4BFD3F96CA18172B95A31341FEF1F +:105A700027AA51BCBA05ED98CEA33A3C17C97E259A +:105A80009DC86C73DF19FB1A8F4B0B9528D9D16811 +:105A9000C4C2E7F8E83285F9C6B86690BC7F05480D +:105AA0001DF9AF87580195E4A79025FC944AF2535D +:105AB0009821FC94EAE4A754929F52FBB5633ED62A +:105AC000D3756357F17E437D57707DFAB4889A4D44 +:105AD000F1F946453F88C5AA03B0231BA7C6BB57AB +:105AE000D58490B5E93EC1F774F37CF9943E7DE22C +:105AF0005C79CA971E673BBA158EB31D8A382F3B57 +:105B0000EE5738CECAFA87FD66BD56D4BFB243D42D +:105B1000E336679F922BF6575925F64725EDAFD20E +:105B200026F64775DA1F95B43F6AA73844758A434D +:105B300054A73844758A4354521CA2F6B5102CA5BC +:105B4000A3E1F309802529FE75F5981D96A4F8C9EF +:105B500022C84BAB5F632F491B5FEB2E4BEBFF6201 +:105B6000F1ACB4FE2F797C69F52FCFBC226DFC72AD +:105B70007D515A1D167C2959C77806467D5AFD5A13 +:105B80006848D243395D1F0CA7D15FD5B0219D5E17 +:105B9000684BDAFC1BA1336D7E457B77DAF8359DC7 +:105BA0000AB4A6D6311C939DB5EC9BC876F2978AB1 +:105BB000600BD9F91B397FBDDD564E7A1EDE40766B +:105BC000DAB1395B177AEE5F26F4AE82D073A29118 +:105BD000F5BC5D13F55ABDC87D11FB19463D2F413B +:105BE000BDFC08F54C650CF54CE5B3A8672A9F434E +:105BF0003D2F41FD9D443D53F902EA99DA5F443D52 +:105C000053F912EA99CA9FA39EA93C857AA6F295F8 +:105C1000AE062E5FEB0AF1BCFFEC5ACFE5E9AE769B +:105C20006EFF6D572797AF7745B87D04F968B525A6 +:105C3000F9229C5B99225FC2B59529F2211C9B5ADF +:105C4000271C9B3A9E706C6A3FE1D8D47EC2B1A9F2 +:105C500075C2AFA9E309B7A6D69FD03DEC8784579C +:105C600053E7113E4DADCFED8F3CFF36D9D7C3EF93 +:105C70003F47E5F4DCF0510543C301DFCF1BAC2502 +:105C800058CF09FBF3102BD8BA5F6D58822120340E +:105C900016E078300F128C2B433896F4168A01DF09 +:105CA00003E67E5CC2FDA767091CC83FA877DF3109 +:105CB000607C797A9687DBE57C1DDC162AE5F86442 +:105CC000FDE2E332D797E3383EA6F081E7A38FE207 +:105CD000B96FBBD34FF79543AAB22688F67408F183 +:105CE000D14A8CB7730E1BAA03FB1B8EB97D160F0E +:105CF0008D6FF7D37DE53726EE91E3A75BE1059B3A +:105D00003FB98FC73E57B69FE8C57C02B726F71943 +:105D1000B7523CC738614471DEC2C4A96B72717C52 +:105D200028B2A886E8D769022FE03A57D27D6F4E95 +:105D30004431F6A7D8F78B26BD50E4C8B3145F1FD3 +:105D40007B748598972DE63DF6E8045E7F45AFB2FB +:105D5000DF82EB2F3C0CC620CE7FD5E477CEE198D6 +:105D600085D60BF78AF524DDF0C3A59A87EE93D08C +:105D70007E677135C948018ADBB8AFE7685F527E3C +:105D800072FC7474191B9E1FB712ABA8CA9D33FB1B +:105D90008324E7A02AC6D9ED062151B8F5783D50F5 +:105DA000BCFF7C755E6D01D11D069D60EAF2EA5F65 +:105DB000A6ED9BC57639D3E5F36B464489E5E056FD +:105DC0005644BAEFA6E36D7964CBF39368FC01D037 +:105DD000CB3C7CF4C017FC49FE661B47543CFEC01C +:105DE0000BA75487427A87131353EC0835711DE9CA +:105DF000DDA7DB80F4526F75DB286E649EEF122FF7 +:105E00007C487881B932FBDDA2BFE3AEB1B3F75273 +:105E10003CFAAEC00B12E784DD620FA17D0AC7B564 +:105E20000F7BF1BA4172FE6E561408AF219EF0A0AE +:105E30003DBEA7BE54B80AE76DAE8896AA28AF5BF0 +:105E4000260FCECBB7301EB0F991CF77232756342B +:105E5000209DB3BD4F1592DC3EECBD3E37C694117C +:105E600027E23AADA67C5AB7AFAFA34D86E70E69DD +:105E700074AF7913E38C3183F85F981BA77DF50B22 +:105E80009CD780BF14A7C32F4F2C24BC9589FF3605 +:105E9000F4DAC21ADED33664E0BE8D26EEDBF819E2 +:105EA000B86F8ADFC47D3AE88CFB2C4DB9A18BC456 +:105EB00063594A7C87F8A6DC7F117C03E6FDE52B5D +:105EC0000EB1CFF0CB27AE67DCD25EA5126E917813 +:105ED000A7A95BE0193802D12A85EAD7B09F367DA1 +:105EE000D7D0159CF70B13C7AC1C9BC2FA78D5C44E +:105EF0002DD78FCDE1B850177770FB0D63255CAEC1 +:105F00001A9BC5ED2B9D223EC4BF07D1BBE93E17AE +:105F1000C912386A18183765DAA90FDCB564F7B307 +:105F20000DE504C1C5E58483905E03E1A28964F7B1 +:105F3000E11D93C8EEA3C0B835D3EE573595D5D241 +:105F40003E662D5380FC55DA7D28F213B6D71568CE +:105F5000AFD4BE3CD26D2BA4798781F71732EFA75F +:105F6000D2BE33FDA139C7BCB73B45DE68FC3E4F0E +:105F70004C5E49CC071A0D2FDFA301260B0303D477 +:105F8000B3CB2BFAD7FB038DBD957C0F8AE4FA9334 +:105F9000F72CAA3B52EE555477A5E41908622C4C15 +:105FA000B9E712BE77887950E84FDECB280D3496DA +:105FB000722F2E37F997F737A26F15F36285FE64BB +:105FC000BE40E627284F4071B7D6F27A6D11E3C084 +:105FD0003CBFF057613F6F9AFE3AB17AF1C600DAE2 +:105FE0004BC7CEAA22F81B76D9827A23FF6CCE8DBE +:105FF000DFAEE039B6C30FC69205008D20E505314E +:1060000040BB5F6DD6BF73F4DADFF47959CE5CEF35 +:106010003EFAF9C608D2DFB9F01B41E22F19078317 +:1060200006E939C76B40C8FBE97DC8FCC477FC6250 +:106030007C669EA2C52BCE0999577B73E733DF4E52 +:10604000CDBFC8FC1D9E637C8FD9BBB2D8B7CB8CAB +:10605000A764570FDD72199FA7FBFDE679857EE1E6 +:106060009921F02F95847F3D5902FF529DF02F9585 +:10607000847FA99DF02FD509FF529DF02FD509FFF0 +:106080005249F897DAFF54167C58F873BF9DEEBF5B +:106090003033F1CD83B87E739706C48FBC273F7A27 +:1060A0004BB641FB78F44E8DE3A2BC2F3769A79E17 +:1060B000B79725E570A6F31B363A3F50EC551EA462 +:1060C000B3BADDA153DC9E581D7C82D6C9F1EA1A11 +:1060D000C5999037AA7850AE93DD66BEA622E1BB83 +:1060E0001DCB8D0141A7AE5C9C8BD32CF01CA05D19 +:1060F0003D5E640C519C9D581D7A8ACAB5C3BE93FF +:10610000533C744EE569A49FE6229177457996AE9B +:106110007425E57CD22FCEDDDBC997B1BC60E607E4 +:10612000514F7DE5C85F63819BE58E76DB4BF7AA17 +:10613000937E717F9179B7645EC2CAF921AD538BAA +:10614000F628229FA0F99379092927995F48CAC7A1 +:106150007D92F3A82ECD43B825EC9CBE94EC3EDC9A +:10616000AFE4533CA8B5D49D64DCFC405939E1E66A +:10617000317FFABDB0CD3CDF3AF6546825346E2746 +:10618000A237ACD7E57B984EE27EC5BDDF437E8566 +:10619000E352F240ADFBAE60BF688D6219B8B4FF48 +:1061A000DCF8C089A9DF23BB8B191AF1DBEAC6F042 +:1061B0009092F768E957D88E33EBE7FD229FD6849B +:1061C000709DE474D3D6326D2DE501115E7478694B +:1061D0001F1EEE97F39A285FEE67BD0A793C807C1C +:1061E0009789F5FC29F4D712FD94F5A51D8CFA5D6D +:1061F0004C2FECF668256554BA99CF4FC9C1947FEE +:106200004B2C6AD3891F2BAE8BF5D5EEA88DD659B2 +:10621000DBEBE3FC7BE83EB14EA82F4F9B4BF8C96C +:10622000EAD6A662BD295BF81FF2C738B315E5921E +:106230004F79B67CC495CE4FCB276CF2DBDA9FA7A3 +:10624000B5A5B53F6023FB6E34E3FDDADE459A4A1F +:10625000F3AD62BF9E8089074D79FE7E8B6317E5A3 +:10626000F91B077E5AA5905DB697F814DC677E404F +:10627000F8BF27C32F1ADDFDBC9F7179EEC1FD2346 +:10628000C9367790E9A33D44C86F5A0704FDD6810B +:10629000B0E6C5729D35A45DC6EBBB98DEF8BAFBCF +:1062A0007E62AEEBD0695D7087F89DE1AD3DAB4A93 +:1062B000791F030FDA486E2EDDB3947026DA01DB06 +:1062C000A5B487E680F03FB97F7FC0CAF4FD817432 +:1062D0007F92E791F4ABD6FBC260E0BA2DC5783E61 +:1062E0005EC4AF32F3758D66BEEE112D182B56923B +:1062F0007E8FE761FBD18B9C131BCDF5579B7A40BA +:10630000B9703C19B77F530F4D24D794F9448FE8E7 +:106310007E3160E296C5B1AA2DDEE478B96E53BE37 +:1063200098477A21FBF8A2A92F1ADFC1E3C5FAD258 +:106330009F5BC6F1EAE11D8574FE1D5138AFD67131 +:10634000FF89A977907F3F9943995B7877D3C15BA9 +:106350004BE870B546590F92AF36C427E4D7EBCC63 +:1063600073AF357671FF4ECC0E350452707FEBEE75 +:1063700027A7539CC4FDC7284EBCFEE40F7E75A51D +:1063800027795EC9FDACED1BE4B878D37D797E8BAF +:10639000888B7D1417379AFB6EE915FA02D417E142 +:1063A00037A9D770AFC2E7434BE7E551C23DE37869 +:1063B000C0D467A61EA57EA51EA5FCF11CE23CAEBE +:1063C000C4CB92FFADA61EEE0888B8B2DAB4BBD536 +:1063D000EB17715C5CDB170ED0F1DB68B637B6A645 +:1063E000B78FCBDF2DE5EFBD87EC787448C87FF41D +:1063F0003E9BC8B31D16F9C1773B9EF9F90D38EEE7 +:106400009DBD83A5A9EF2A6D66DE6C9D89176F4639 +:10641000F95F2C5F88F2EF0BA4C4BF9B1F35E55FCB +:106420003EF4FEF729BE6CC9E277B716FC5B80F23A +:1064300079F7F06EDB146CBFB14DC9237E1F0C944D +:10644000897D0E0DDACA09FFB7FBDC94E77DD08C9D +:106450000399F68CA50129F2A5F340C94FE215393D +:106460009EE2D111E463EB16C704984F74F3F2DD9A +:10647000781FF9B169A732BE48BECF6D09FF0BDDA9 +:1064800057CE39847D6FC2F9F4BE736E915EDAE146 +:106490004DE23928183AC2EF60B779F93E8EEBBF6A +:1064A00040EF0D4F9B765359198F12FF12576A1800 +:1064B0009FE8BD67BF2AF65F6E11E5BF660FCD6A24 +:1064C000FF1B78AF7253FC03E247E25989635F37E1 +:1064D000E522F1AAC49F978A3B1A1CE82BA7F783F1 +:1064E00002D07B3C493B957432E38FDCE7949CA15E +:1064F00027C84EA6DC36DB4F3840CB863EDAC72BAA +:10650000A67D66EEF35C9990E7A5F896FC8ECB012C +:106510008D71417E927FC90F625843255CF6D5B9D3 +:106520008C0BCF75EBA524A74BEDEF5C5988FD34A0 +:1065300051023A9DB3978AAB8DAD4A84E8DA3A5D51 +:106540009C77907ED23A9EFFF7E6C6E9FCED17797C +:10655000FF730A9E2BB4AF2D0E95EDC2DCDF3F9A80 +:106560007F1E0BE49B79FFB88BF05A53B6E9FF31DD +:1065700071FE8E7456F03E65BB3C7F47DC71577EE2 +:106580004ADCFD5DBB797E211DF21FE8AC007A9FDD +:106590001FE93FE752D94E057F72DE569BA00F2EB2 +:1065A0002D7A5021DC52AF85B1FDA6CE576D0A96EB +:1065B000966A61AFD32A868CA202C66D8C2B7A5C58 +:1065C0007A31ADD793A717A79EFF39CE1B38FF723C +:1065D000AE2C5649F9A884CFC1F21E71DEB094E208 +:1065E000CFC8BE3C7AE180AD8A3ED24918744716C6 +:1065F000E7D5EB54E853D83E62DA143ABFBB158EA8 +:1066000007B2FDCE39A1FC6AE2C372E4BF7F4B74CE +:1066100077E4E8C407FC19D7C5F848D769F2EBDD81 +:1066200001816B33F32199F98F699A87F323899F4D +:106630005960BF887FBFA67ADBCF6C69EF2BF2DD94 +:10664000A76DF05ACE3BB49AEF396D940709F0FB71 +:106650003D0086BC7B06AE2924BB687DA0766F0416 +:10666000CF8F520582145F7E678DD7531C383F58F9 +:1066700094DF9D72DF3913CDE277B5F383CFBC7C15 +:1066800039AEFBFEF1493E8ECB86CAE7C6CECA02C2 +:10669000D6B75E2DE2504A3ECA2882643EAA75F003 +:1066A000DE52C0F55A37F74CA7F2FCA0A381E2FDF9 +:1066B0001277FD923CA4BBEEE13CCEF79DD924F2CB +:1066C0000CB7FCB28AED7A89A9D74D7F3DF1881BC2 +:1066D000F1431BB6B971DDFF1ACA8946B06B53D7B7 +:1066E000F152FA64E2B1ACD0D5D568971BD5E11B65 +:1066F000AEA0F8AF440F95F078CF45F3D5B27C8BC0 +:10670000EE6768DF9BFFF934D3794F7D694523CE6F +:10671000DFB4F9A9094467E39E572F77AB9C2FFAA2 +:1067200032E995DE9FDC24807D83F3E8FCBD5A319D +:1067300096575F24AF92B9CEF5E67D66A5799FA9FD +:10674000CB0FDED058CD7A65FBB8147FEB8F2B6969 +:10675000EF7237457335F0723E55A3F7DF901B1883 +:10676000D79EB74027BF57997846B6B799F23B9F57 +:10677000DB5F4A7EB0E1D083A564F76FBB44BDE91F +:10678000D0AA1729EE850E64097C6D054DC7792DB9 +:1067900011818F617D3EE71BE5FAB755E730BD0DEE +:1067A000FB0269E727255CA8FD6DABF84E649AE50E +:1067B000031FE1AE33D6581BD9C919C4A711D6A7F8 +:1067C000B08F33FD96A5FC5DCA5605088F9CE97F06 +:1067D000CA55E94CE23757F5508CE2DBE663797E27 +:1067E0008B306DB6F35BDD32BE399752DC401CE670 +:1067F000263FE8F8DEF34B41D401944BCBF316135C +:106800007F8DD78F1DD108276F3A2CF0C7A6A12303 +:1068100027271790DD9AF8C3C4359B4D5C73EB3185 +:106820002197CDC7CE6A2DA9F78699F9F74C410477 +:10683000F88DEAA6C63D38344C7ABB12EFEDFE6502 +:10684000ABBBAD549AF9686B8271E1AE99AFF0FDC4 +:106850007773AF496FE62BF794F37EEB27A6E2A799 +:10686000DDD5368EB7723ECA83E775DA27CCA3F83A +:10687000F991439491C520BEF31971F0BB7AB1230D +:106880003448F67A872578641DE7D1DAE7937DFEF0 +:106890001DDF211D227B1E36CFB5D8E6EC3EC21B84 +:1068A000C6AD4E2B953D9B9D8C3F8C2DAF38285F00 +:1068B00030FC7EB6AA4C2013499C50719D5D45A1C9 +:1068C000219A5F04E89D163ABF620AE1FE0B3FFC85 +:1068D0004380F8BE303531026E7AB7685C4DEF16F2 +:1068E000C7AB4DB978E301E26FD2B3E27CF8960D05 +:1068F000FA1CFC5D4910E87B9698F9DE18F958E51A +:10690000EF4F8695D8BF71DE27CBD947DFBDBC6F6F +:10691000DAF9EF2B823FA67D9FCAB754F9695DF380 +:106920001D72AA79AFD226173BC9DE15C3804EA4CB +:10693000AF2ACFB790DD7C2D6107BAC7F798F29CDC +:106940003A79199F938AA780CE2C78D6AB46B2703D +:10695000FDAF819DDF4335D56170FFF04F3FA6EF5E +:106960008CA6583E38918BFD53EE50F41E64B579D9 +:10697000F42DFECE66E4E3C30E4AB6FDAC28F41A4D +:10698000C965B2253EF7EB0A9D4B4FDB151C5F3006 +:106990004F755BCC3CA71DED7BB1F81786B77D3CEE +:1069A000211FE72F4E649F25F95E48BCF5E433D5DF +:1069B00054DA391FB978D812CB9A47936A8DF13CD3 +:1069C00072391786FDF2241DE87F10C86F6E33CF31 +:1069D0001749EF52F32F147BACACAF849DBF93BB30 +:1069E000E054A374BF5B3C7CE234ED73B1DD19A3CA +:1069F0003C35D86D7F1CCF53D3BAA7A6E6BD3587EB +:106A00008F36F804414B618FD0E31772D3EF975064 +:106A100023EE595023709794376F3EED1C14FE2ED1 +:106A2000F91E756A222FBC5EE4F7478711D75C24F4 +:106A3000CECAF255C2358857AEAC32A0A626690739 +:106A400052EF725DA95FA947B8F3D4F3B965ACBF43 +:106A5000B95F07BAE7C4BFF50B85F5975383FC3ED2 +:106A600034B6DF477AED712D2D0B79FFFFE92D3319 +:106A7000AE84B2B19CFFE9F88271257B06961FA90E +:106A8000FDECDF186FE6937CD678DB1591478C28F8 +:106A90007F67BCA9A679E3DF3DBA54F14E68E65F93 +:106AA0007BE8BB4785BE7B04C6BB896D2EB3DFD3B5 +:106AB0006DA5FEED1E7D17F0778F62FEB69CF4EF9C +:106AC0001EB755305E2486985E44D093DF15F6D00D +:106AD0003A382F12C9E1713DF4FD636EF2BB42F208 +:106AE00065A6B309041DC957BBF8DEB2B047CC4F49 +:106AF000DCAEF1F79AA15CF15D62E882888B37D653 +:106B0000E4097BB7C66B082F7FED6E17901D4A7D99 +:106B1000F3538027A96F8BA9EFC95EA1EFC94E354A +:106B200096457A5BBFC448D5DB6E8A99F8F703C4F3 +:106B3000F576E2AF5E7C9737506F94D03BE5407DB1 +:106B4000A14AF8E8E9BF7EE58DBB88BF976D8C53FD +:106B5000077C82DF811F56307E1A51CDFD1DCAE2AF +:106B6000F99336AE2B21FD598A030B5BF19CDC9B1C +:106B70001D9D45FA1D70A93C6EA04A65FF1B281398 +:106B8000F306367899CEB8FEEE77A57DB77A617DAB +:106B9000BED49FB827581313480EA82FAEA39E1A31 +:106BA0008E72FE203121F5DDE48289232E98FA18B9 +:106BB0006F07F19DAAA4F359EDEF1486EE66FF3737 +:106BC000FB07F28C12C24599F2DED3EDEB9B4E76B9 +:106BD000E052DD84F32FA5A79C55DA230753F44335 +:106BE000C71CED3BA7E72AB607A9AFBDF2BCDA6622 +:106BF00011DFDD66E80F2E13F620EFFDD32267BF0D +:106C0000C98F32109F457E83FE3693EE892314B7D9 +:106C1000E627ED5531C4F763D23E65FCCAF45BA5A7 +:106C200013E3D9848BF9ED109FCB1FA931E9B78706 +:106C3000483EF023DD43F59E2DA74AF8BBBACFF6B8 +:106C4000DBFF20BFFDA7E2D0B7697E811927265B55 +:106C5000D05E2C6C57EBCDF74585E4FC8629BF351B +:106C6000188726A27FBC5063E6D7B667C42353DEDD +:106C7000CDE6F837DE433F9A9FD4D71AF35ED4BCF3 +:106C80003DEB2CC5B5E6ED36E11F9DB546061D8EE4 +:106C9000CB920E783E9844FB91F3D66CF8D324C285 +:106CA000C1979C1FBF2C8FDE59392EE27E5FD682A2 +:106CB0002FD27E47E01C7FBFF5D25F2CFC1E7116E1 +:106CC000E5ED213B395024EE6D7982C62BE6F9368D +:106CD000D71EFC25CD7BC9F7872ABA07C19F4F5C19 +:106CE000467C9414055FA3F69D95A3FCAE325292A8 +:106CF000B011DD91C677A6125F6B3A7FCA717B8DAA +:106D00008CDB9F21A74CF948B925F73B3A8970EEF7 +:106D1000FF95BCFE079BFC511E702F000000000079 +:106D20000000000000000000000000400000000023 +:106D30000000000000000040000000000000000013 +:106D4000000000280000000000000000000000100B +:106D500000000000000000000000004000000000F3 +:106D60000000000000000010000000000000000013 +:106D7000000000080000000000000000000000000B +:106D80000000000000000000000000000000000003 +:106D900000000000000000000000000000000000F3 +:106DA00000000000000000000000000000000000E3 +:106DB00000000000000000000000000000000000D3 +:106DC00000000000000000000000000000000000C3 +:106DD00000000000000000000000000000000000B3 +:106DE00000000000000000000000000000000000A3 +:106DF0000000000000000000000000000000000093 +:106E00000000000000000000000000000000000082 +:106E10000000000000000000000000000000000072 +:106E20000000000000000000000000000000000062 +:106E30000000000000000000000000000000000052 +:106E40000000000000000000000000000000000042 +:106E50000000000000000000000000000000000032 +:106E60000000000000000000000000000000000022 +:106E70000000000000000000000000000000000012 +:106E80000000000000000000000000000000000002 +:106E9000000033200010000000000008000033282C +:106EA000001000000000000200003320001000006D +:106EB0000000001080000000000000000000000042 +:106EC00080000000000000000000000080000000C2 +:106ED0000000000000000000800000000000000032 +:106EE0000000000000003358000100040000000111 +:106EF0000000336000000000000000020000336862 +:106F000000000000000000080000336C00000000DA +:106F1000000000020000392000000000000000080E +:106F200000003AF80040000000000040000039383E +:106F3000008000000000004800003A3800400000D7 +:106F40000000000800003A4800400000000000185F +:106F500000003370002800000000002800003C20E2 +:106F6000000800000000000100003C2100080000B3 +:106F70000000000100003C220008000000000001A9 +:106F80000000200800100000000000100000200099 +:106F90000000000000000008800000000000000069 +:106FA00000000000000000000000000000000000E1 +:106FB00000000000000000000000000000000000D1 +:106FC00000000000000000000000000000000000C1 +:106FD00000000000000000000000000000000000B1 +:106FE00000000000000000000000000000000000A1 +:106FF0000000000000000000000000000000000091 +:107000000000000000000000000000000000000080 +:107010000000000000000000000000000000000070 +:107020000000000000000000000000000000000060 +:107030000000000000000000000000000000000050 +:107040000000000000000000000000000000000040 +:1070500000000000000000008000000000000000B0 +:1070600000000000800000000000000000000000A0 +:107070008000000000000000000000008000000010 +:107080000000000000000000800000000000000080 +:107090000000000080000000000000000000000070 +:1070A00080000000000000000000000080000000E0 +:1070B0000000000000000000800000000000000050 +:1070C0000000000080000000000000000000000040 +:1070D00080000000000000000000000080000000B0 +:1070E00000000000000000000000000000000000A0 +:1070F0000000000000000000000000000000000090 +:10710000000000000000000000000000000000007F +:10711000000000000000000000000000000000006F +:1071200000000000800000000000000000000000DF +:10713000800000000000000000000000800000004F +:10714000000000000000000000000000000000003F +:1071500000000000800000000000000000000000AF +:10716000800000000000000000000000800000001F +:10717000000000000000000000000000000000000F +:1071800000000000000000000000000000000000FF +:1071900000000000000000000000000000000000EF +:1071A00000000000000000000000000000000000DF +:1071B00000000000000000000000000000000000CF +:1071C000800000000000000000000000000000003F +:1071D0000000000000000000000019C800000000CE +:1071E000000000080000200800100000000000104F +:1071F00000002000000000000000000800004870AF +:1072000000080000000000010000487100080000B4 +:1072100000000001000048720008000000000001AA +:1072200000004040003800000000003880000000EE +:1072300000000000000000008000000000000000CE +:1072400000000000800000000000000000000000BE +:10725000800000000000000000000000800000002E +:10726000000000000000000080000000000000009E +:10727000000000008000000000000000000000008E +:1072800080000000000000000000000080000000FE +:10729000000000000000000080000000000000006E +:1072A000000000008000000000000000000000005E +:1072B00000000000000000000000000000000000CE +:1072C00000000000000000000000000000000000BE +:1072D00000000000000000000000000000000000AE +:1072E000000000000000000000000000800000001E +:1072F000000000000000000080000000000000000E +:10730000000000000000000000000000000000007D +:10731000800000000000000000000000800000006D +:1073200000000000000000008000000000000000DD +:1073300000000000800000000000000000000000CD +:10734000800000000000000000000000800000003D +:1073500000000000000000000000400000400000AD +:107360000000004000004800004000000000004015 +:107370000000482E0040000000000001000048000E +:10738000004000020000000100004801004000022F +:10739000000000000000300000400000000000403D +:1073A000800000000000000000000000000030002D +:1073B0000008004000000004000030040008004005 +:1073C0000000000400003B800028000000000028AE +:1073D00000003BD0001000000000001000003BDA6D +:1073E00000100000000000010000380000800000D4 +:1073F000000000800000380000080080000000024B +:10740000000039000040000000000040000020089B +:10741000001000000000001000002000000000002C +:107420000000000800005198000800000000000162 +:107430000000519900080000000000010000519A6E +:107440000008000000000001000039800010000466 +:1074500000000004000051A80030001800000010D7 +:10746000000051B000300018000000028000000051 +:10747000000000000000000080000000000000008C +:10748000000000008000000000000000000000007C +:1074900080000000000000000000000080000000EC +:1074A000000000000000000080000000000000005C +:1074B000000000008000000000000000000000004C +:1074C00000000000000000000000000000000000BC +:1074D00000000000000000000000000000000000AC +:1074E000000000000000000000000000000000009C +:1074F000800000000000000000000000800000008C +:10750000000000000000000000000000000000007B +:1075100000000000800000000000000000000000EB +:10752000800000000000000000000000800000005B +:1075300000000000000000008000000000000000CB +:1075400000000000800000000000000000000000BB +:10755000000023E80080000000000080000000011F +:1075600000000000000000000000200800100000E3 +:1075700000000010000020000000000000000008D3 +:1075800000002E70000800000000000100002E71B5 +:10759000000800000000000100002E72000800003A +:1075A00000000001000024E800380000000000385E +:1075B00000002DD00008000000000008800000003E +:1075C000000000000000000080000000000000003B +:1075D000000000008000000000000000000000002B +:1075E000800000000000000000000000800000009B +:1075F000000000000000000080000000000000000B +:10760000000000000000000000000000000000007A +:10761000000000000000000000000000000000006A +:10762000000000000000000000000000000000005A +:1076300000000000800000000000000000000000CA +:1076400080000000000000000000000000000000BA +:1076500000000000000000008000000000000000AA +:10766000000000008000000000000000000000009A +:10767000800000000000000000000000800000000A +:10768000000000000000000080000000000000007A +:10769000000000000000250000400000000000087D +:1076A00000002508004000000000002080000000CD +:1076B000000000000000000080000000000000004A +:1076C000000000008000000000000000000000003A +:1076D000000030000000000000001000000050A179 +:1076E0000000000000000001000050B80000000091 +:1076F00000000002000050C80090000800000008D0 +:107700008000000000000000000000000000296070 +:1077100000080000000000010000296100080000CE +:1077200000000001000029700008000400000002B1 +:107730000000297800080004000000048000000018 +:10774000000000000000000000002FB00008000052 +:107750000000000400002FB4000800000000000436 +:1077600000002FC0000000000000000800002FC82B +:1077700000000000000000080000300000000000D1 +:107780000000001000005040000100010000000156 +:107790000000500000000000000000200000080869 +:1077A00000100000000000040000080C00100000A1 +:1077B00000000001000008B7000000000000000108 +:1077C000000008B6000000000000000100001000EA +:1077D00000400020000000040000100400400020D1 +:1077E000000000040000100800400020000000021B +:1077F0000000100A00400020000000020000100CF1 +:1078000000400020000000010000100D004000209A +:10781000000000010000100E0040002000000001E8 +:1078200000001010004000200000000400001014B0 +:10783000004000200000000400001018004000205C +:10784000000000040000101C0040002000000004A4 +:107850000000300001000080000800040000300437 +:1078600001000080000800040000000A0000000081 +:1078700000000000000030680100008000000001EE +:107880000000306901000080000000010000306C41 +:1078900001000080000000020000306E0100008046 +:1078A00000000002000030700100008000000004B1 +:1078B0000000307401000080000000040000306609 +:1078C0000100008000000002000030640100008020 +:1078D0000000000100003060010000800000000294 +:1078E0000000306201000080000000020000305003 +:1078F00001000080000000040000305401000080FE +:107900000000000400003058010000800000000466 +:107910000000305C01000080000000040000307CAA +:1079200001000080000000010000307D01000080A7 +:107930000000000100001C180010000000000004FE +:1079400000001C30001000000000000400001C3883 +:107950000010000000000004800000000000000093 +:107960000000000080000000000000000000000097 +:107970008000000000000000000000008000000007 +:10798000000000000000000000004C100008000093 +:107990000000000200004C1200080000000000027D +:1079A00000004C14000800000000000200004C160B +:1079B000000800000000000200004C200008000049 +:1079C0000000000800004C00000800000000000259 +:1079D00000004C02000800000000000100004C0400 +:1079E000000800000000000200004C300008000009 +:1079F0000000000800004C400008000000000004E7 +:107A000000004C44000800000000000100004C5041 +:107A1000000800000000000200004C5400080000B4 +:107A20000000000200004C520008000000000002AC +:107A300000004C600008000000000004000014007A +:107A4000000800000000000200001402000800000E +:107A50000000000100001404000800000000000203 +:107A600000001410000800000000000200001414C0 +:107A700000080000000000020000141600080000CA +:107A800000000002000019B8000800000000000813 +:107A90000000142000080000000000020000142470 +:107AA0000008000000000002000019C800080000E3 +:107AB0000000000800002C10000800000000000179 +:107AC00000002C11000800000000000100002C1232 +:107AD000000800000000000100002C130008000056 +:107AE0000000000100002C0000080000000000025F +:107AF00000002C02000800000000000100002C041F +:107B0000000800000000000200002C300008000007 +:107B10000000000200002C320008000000000002FB +:107B200000002C34000800000000000200002C209F +:107B3000000800000000000100002C2100080000E7 +:107B40000000000100002C220008000000000001DD +:107B500000002C23000800000000000100002C247D +:107B6000000800000000000100002C2500080000B3 +:107B70000000000100002C260008000000000001A9 +:107B800000001480000800000000000200001482C1 +:107B9000000800000000000100001484000800003C +:107BA000000000020000149200C000180000000253 +:107BB0000000149000C00018000000020000149C97 +:107BC00000C00018000000080000149400C0001855 +:107BD00000000008000014A700C000180000000109 +:107BE000000014A400C0001800000002000014A649 +:107BF00000C000180000000100001610000800007E +:107C00000000000800001620000800000000000826 +:107C1000000016300008000000000008800000008E +:107C200000000000000000008000000000000000D4 +:107C300000000000800000000000000000000000C4 +:107C40008000000000000000000000008000000034 +:107C500000000000000000008000000000000000A4 +:107C60000000000080000000000000000000000094 +:107C70008000000000000000000000008000000004 +:107C80000000000000000000800000000000000074 +:107C90000000000080000000000000000000000064 +:107CA00080000000000000000000000080000000D4 +:107CB0000000000000000000800000000000000044 +:107CC0000000000080000000000000000000000034 +:107CD00080000000000000000000000080000000A4 +:107CE0000000000000000000800000000000000014 +:107CF0000000000080000000000000000000000004 +:107D00008000000000000000000000008000000073 +:107D100000000000000000008000000000000000E3 +:107D200000000000800000000000000000000000D3 +:107D30008000000000000000000000008000000043 +:107D400000000000000000008000000000000000B3 +:107D500000000000800000000000000000000000A3 +:107D60008000000000000000000000008000000013 +:107D70000000000000000000800000000000000083 +:107D80000000000080000000000000000000000073 +:107D900080000000000000000000000080000000E3 +:107DA0000000000000000000800000000000000053 +:107DB0000000000080000000000000000000000043 +:107DC00080000000000000000000000080000000B3 +:107DD0000000000000000000800000000000000023 +:107DE0000000000080000000000000000000000013 +:107DF0008000000000000000000000008000000083 +:107E000000000000000000008000000000000000F2 +:107E100000000000800000000000000000000000E2 +:107E20008000000000000000000000008000000052 +:107E300000000000000000008000000000000000C2 +:107E400000000000800000000000000000000000B2 +:107E50008000000000000000000000008000000022 +:107E60000000000000000000800000000000000092 +:107E70000000000080000000000000000000000082 +:107E800080000000000000000000000080000000F2 +:107E90000000000000000000800000000000000062 +:107EA0000000000080000000000000000000000052 +:107EB00080000000000000000000000080000000C2 +:107EC0000000000000000000800000000000000032 +:107ED00000000000000000000000000000000000A2 +:107EE0008000000000000000000000000000000012 +:087EF00007081100000000006A +:00000001FF --- linux-3.11.0.orig/firmware/bnx2x/bnx2x-e1h-7.8.17.0.fw.ihex +++ linux-3.11.0/firmware/bnx2x/bnx2x-e1h-7.8.17.0.fw.ihex @@ -0,0 +1,10748 @@ +:10000000000021E800000068000005D80000225828 +:10001000000036E4000028380000007000005F2077 +:100020000000860400005F98000000A00000E5A02A +:1000300000009C8C0000E64800000088000182D887 +:1000400000004344000183680000008C0001C6B03A +:100050000000C6780001C740000011C400028DC036 +:100060000000000400029F88020600DC000000017E +:100070000306100002000000010600D80000000086 +:100080000306020000030200020600DC000000007C +:10009000010600B800000000010600C800000000D2 +:1000A0000206016C00000000010600BC0000000018 +:1000B000010600CC000000000206017000000000F4 +:1000C000020D004400000032030D004C0004020346 +:1000D000040D005C00000004030D008C00110207F9 +:1000E000020D015C00000001030D01640002021812 +:1000F000020D020400000001030D020C0003021AAD +:10010000030D02200002021D040D028000000012F7 +:10011000030D03000018021F040D03600000000C13 +:10012000040D400000000A00030D0004000F023718 +:10013000020D01140000000D020D01180000002D39 +:10014000020D01140000001D020D01180000003D09 +:10015000020D01140000004D020D01180000006D99 +:10016000020D01140000005D020D01180000007D69 +:10017000031010000003024602101050000000019E +:10018000071011000010024908101140000000087B +:100190000710116000100259081011A0000000188B +:1001A000071018000200026904104C000000010052 +:1001B00002104028000000100210404400003FFFE1 +:1001C0000210405800280000021040840084924A27 +:1001D0000210405800000000030C200800030469CE +:1001E000030C201C0004046C030C20380011047064 +:1001F000040C207C0000004F030C21B80011048186 +:10020000040C21FC0000000F030C223800040492AF +:10021000010C224800000000010C224C00000000EC +:10022000010C225000000000010C225400000000CC +:10023000010C225800000000010C225C00000000AC +:10024000010C226000000000010C2264000000008C +:10025000010C226800000000010C226C000000006C +:10026000010C227000000000010C2274000000004C +:10027000010C227800000000010C227C000000002C +:100280000A00000100000001020C2000000003E849 +:100290000A00000100000002020C20000000000A19 +:1002A0000A00000100000004020C20000000000110 +:1002B0000520040000860000062007800010049638 +:1002C000042200000000400004232400000000403D +:1002D00003221250001004980422B14000000020B4 +:1002E0000422C800000000060322C818000404A865 +:1002F0000422C8280000000C0322C858000404ACE3 +:100300000422C8680000000C0322C898000404B04E +:100310000422C8A80000000C0322C8D8000404B4BA +:100320000422C8E80000000C0322C918000404B825 +:100330000422C9280000000C0322C958000404BC90 +:100340000422C9680000000C0322C998000404C0FC +:100350000422C9A80000000C0322C9D8000404C468 +:100360000422C9E80000000C0322CA18000404C8D3 +:100370000422CA280000000C0322CA58000404CC3E +:100380000422CA680000000C0322CA98000404D0AA +:100390000422CAA80000000C0322CAD8000404D416 +:1003A0000422CAE80000000C0322CB18000404D881 +:1003B0000422CB280000000C0322CB58000404DCEC +:1003C0000422CB680000000C0322CB98000404E058 +:1003D0000422CBA80000000C0322CBD8000404E4C4 +:1003E0000422CBE80000000C0322CC18000404E82F +:1003F0000422CC280000000C0322CC58000404EC9A +:100400000422CC680000000C0322CC98000404F005 +:100410000422CCA80000000C0322CCD8000404F471 +:100420000422CCE80000000C0322CD18000404F8DC +:100430000422CD280000000C0322CD58000404FC47 +:100440000422CD680000000C0322CD9800040500B2 +:100450000422CDA80000000C0322CDD8000405041E +:100460000422CDE80000000C0322CE180004050889 +:100470000422CE280000000C0322CE580004050CF4 +:100480000422CE680000000C0322CE980004051060 +:100490000422CEA80000000C0322CED800040514CC +:1004A0000422CEE80000000C0322CF180004051837 +:1004B0000422CF280000000C0322CF580004051CA2 +:1004C0000422CF680000000C0322CF98000405200E +:1004D0000422CFA80000000C0322CFD8000405247A +:1004E0000422CFE800000006022380000000001074 +:1004F00002238040000000120223808000000030B0 +:10050000022380C00000000E022383800007A12088 +:10051000022383C0000001F402238BC0000000010D +:100520000A00000200000001022383000007A1204E +:1005300002238340000001F40A00000200000002D0 +:10054000022383000000138802238340000000057B +:100550000A000002000000040223830000000138AA +:10056000022383400000000005240000330A00003D +:100570000524800010350CC306249E706A98052857 +:100580000A000001000000020223148000000000A5 +:100590000A00000100000004022314800000000093 +:1005A0000120000000000000012000040000000005 +:1005B00001200008000000000120000C00000000E5 +:1005C00001200010000000000120001400000000C5 +:1005D00003200020001A052A032000A4000205447D +:1005E000022002240000000002200234000000006B +:1005F0000220024C00000000022002E40000FFFF85 +:100600000820200000000800042211080000000259 +:1006100004221290000000060422340000000002B0 +:10062000042260400000003004228C000000001012 +:100630000422111000000002042212A8000000068B +:10064000042234080000000204226100000000308F +:1006500004228C4000000010042211180000000247 +:10066000042212C000000006042234100000000220 +:10067000042261C00000003004228C8000000010C1 +:100680000422112000000002042212D800000006FB +:1006900004223418000000020422628000000030AE +:1006A00004228CC000000010042211280000000267 +:1006B000042212F000000006042234200000000290 +:1006C000042263400000003004228D00000000106E +:1006D000042211300000000204221308000000066A +:1006E00004223428000000020422640000000030CC +:1006F00004228D4000000010042211380000000286 +:1007000004221320000000060422343000000002FE +:10071000042264C00000003004228D80000000101C +:1007200004221140000000020422133800000006D9 +:1007300004223438000000020422658000000030EA +:1007400004228DC00000001004102400000000E00E +:100750000310201C00020546021020C00000000209 +:1007600003102004000205480217000800000002E0 +:100770000217002C00000003031700380002054A8E +:10078000031700480005054C0317006000050551DC +:100790000317007800020556021700040000000F3E +:1007A0000210800000001080041080400000000251 +:1007B000021080AC00000000021080380000001021 +:1007C00002108100000000000410812000000002DF +:1007D00002108008000002B5021080100000000026 +:1007E000021081080001FFFF041082000000004A8F +:1007F00004108140000000020210800000001A80F6 +:100800000410900000000024041091200000004A11 +:10081000041093700000004A041095C00000004AC4 +:1008200002108004000010800410804800000002C4 +:10083000021080B0000000010210803C0000001097 +:100840000210810400000000041081280000000252 +:100850000210800C000002B502108014000000009D +:100860000210810C0001FFFF041084000000004A08 +:1008700004108148000000020210800400001A8069 +:100880000410909000000024041092480000004AD8 +:10089000041094980000004A041096E80000004AF2 +:1008A0000210800000001080041080400000000250 +:1008B000021080AC0000000202108038000000101E +:1008C00002108100000000000410812000000002DE +:1008D00002108008000002B5021080100000000025 +:1008E000021081080001FFFF041082000000004A8E +:1008F00004108140000000020210800000001A80F5 +:100900000410900000000024041091200000004A10 +:10091000041093700000004A041095C00000004AC3 +:1009200002108004000010800410804800000002C3 +:10093000021080B0000000030210803C0000001094 +:100940000210810400000000041081280000000251 +:100950000210800C000002B502108014000000009C +:100960000210810C0001FFFF041084000000004A07 +:1009700004108148000000020210800400001A8068 +:100980000410909000000024041092480000004AD7 +:10099000041094980000004A041096E80000004AF1 +:1009A000021080000000108004108040000000024F +:1009B000021080AC0000000402108038000000101B +:1009C00002108100000000000410812000000002DD +:1009D00002108008000002B5021080100000000024 +:1009E000021081080001FFFF041082000000004A8D +:1009F00004108140000000020210800000001A80F4 +:100A00000410900000000024041091200000004A0F +:100A1000041093700000004A041095C00000004AC2 +:100A200002108004000010800410804800000002C2 +:100A3000021080B0000000050210803C0000001091 +:100A40000210810400000000041081280000000250 +:100A50000210800C000002B502108014000000009B +:100A60000210810C0001FFFF041084000000004A06 +:100A700004108148000000020210800400001A8067 +:100A80000410909000000024041092480000004AD6 +:100A9000041094980000004A041096E80000004AF0 +:100AA000021080000000108004108040000000024E +:100AB000021080AC00000006021080380000001018 +:100AC00002108100000000000410812000000002DC +:100AD00002108008000002B5021080100000000023 +:100AE000021081080001FFFF041082000000004A8C +:100AF00004108140000000020210800000001A80F3 +:100B00000410900000000024041091200000004A0E +:100B1000041093700000004A041095C00000004AC1 +:100B200002108004000010800410804800000002C1 +:100B3000021080B0000000070210803C000000108E +:100B4000021081040000000004108128000000024F +:100B50000210800C000002B502108014000000009A +:100B60000210810C0001FFFF041084000000004A05 +:100B700004108148000000020210800400001A8066 +:100B80000410909000000024041092480000004AD5 +:100B9000041094980000004A041096E80000004AEF +:100BA0000200A468000B01C80300A29400040558C9 +:100BB0000A000001000000800200A5F8000000000B +:100BC0000A000001000001000200A5F80000000179 +:100BD0000200A270000000000200A27400000000E9 +:100BE0000200A270000000000200A27400000000D9 +:100BF0000200A270000000000200A27400000000C9 +:100C00000200A270000000000200A27400000000B8 +:100C1000030100B40002055C020100DC00000001D9 +:100C2000030101000002055E0201007C00300000AB +:100C300002010084000000280201008C0000000076 +:100C4000020101300000000402010328000000003E +:100C50000201055400000030020160580000FFFF4F +:100C600002016070000000070201608000000001C6 +:100C7000020100C400000001020100CC00000001DC +:100C8000020100F800000001020100F00000000174 +:100C900002010080003000000201008800000028EE +:100CA0000201009000000000020101340000000475 +:100CB0000201032C00000000020105640000003066 +:100CC0000201605C0000FFFF020160740000000789 +:100CD0000201608400000001020100C80000000160 +:100CE000020100D000000001020100FC0000000130 +:100CF000020100F4000000010401013800000011AD +:100D00000401017C00000011040101380000001101 +:100D10000401017C000000110401013800000011F1 +:100D20000401017C000000110401013800000011E1 +:100D30000401017C00000011021400000000000109 +:100D40000214000C000000010314004000020560C2 +:100D50000214000C0000000002140000000000005B +:100D60000214006C000000000214000400000001E6 +:100D70000214003000000001021400040000000012 +:100D80000214005C000000000214000800000001D2 +:100D900002140034000000010214000800000000EA +:100DA0000214006000000000030400040012056249 +:100DB00002040054000000430204005C000000062E +:100DC00002040070000000040304007800040574AD +:100DD00004040088000000050304009C000305785B +:100DE000040400A800000004030400B80005057B0B +:100DF000040400CC00000004030400DC00040580AF +:100E0000040400EC000000040104012400000000C0 +:100E100001040128000000000104012C0000000072 +:100E20000104013000000000020401340000000F42 +:100E3000020401D000008906021205B00000000182 +:100E400003120490002205840312066C000205A61A +:100E500002120388000000640212039000000008E0 +:100E60000312039C000305A8031203BC000305AB97 +:100E7000021203D0000000000212036C0000000107 +:100E8000021203680000003F031201BC003C05AEE3 +:100E9000031202B0000205EA03120324000205EC6B +:100EA000021205B400000001021201B000000001AE +:100EB00007103800000505EE07103820000505F37F +:100EC00007103C00000505F803168030000805FDFA +:100ED000021680540000000203168060000506051B +:100EE0000416807400000007031680900002060AB2 +:100EF0000316809C0005060C041680B00000000755 +:100F0000031680CC00080611021680F000000007CE +:100F1000041680F40000000C031681240004061956 +:100F2000041681340000000C031681640032061D93 +:100F3000031682340007064F041682500000000496 +:100F4000031682600002065604168268000000083C +:100F50000316828800080658041682A80000000ABA +:100F600002168804000000040316880C00100660B6 +:100F70000316E000001006700416E40C0000000CDC +:100F80000316E43C000406800416E44C0000000C48 +:100F90000316E47C002E06840416E53400000004E9 +:100FA0000316E544000206B20416E54C00000008F2 +:100FB0000316E56C000606B40316E6BC000806BA84 +:100FC000021680EC000000FF03040408001406C2AF +:100FD000020404CC0000000103050044000206D610 +:100FE00003050050000406D804050060000000045A +:100FF00003050090001306DC020501140000000147 +:101000000305011C000206EF0205020400000001B6 +:101010000305020C000206F10305021C000306F39F +:10102000040502400000000A03050280002006F6C5 +:101030000405400000000D00030500040010071621 +:10104000020500E00000000E020500E40000002E92 +:10105000020500E00000001E020500E40000003E62 +:10106000020500E00000004E020500E40000006EF2 +:10107000020500E00000005E020500E40000007EC2 +:101080000416402400000002031640300003072627 +:101090000216404400000020021640700000001CB0 +:1010A0000216420800000001021642100000000172 +:1010B0000216422000000001021642280000000132 +:1010C0000216423000000001021642380000000102 +:1010D00002164260000000020A0000010000000148 +:1010E0000216401C0003D0900A000001000000021C +:1010F0000216401C000009C40A00000100000004A0 +:101100000216401C0000009C021640000000000176 +:10111000021640D80000000103164008000307290A +:101120000216424000000000021642480000000083 +:101130000816427000000002021642500000000033 +:10114000021642580000000008164280000000020B +:10115000030420080004072C0304201C00040730AB +:1011600002042038000000200404203C0000001F7E +:10117000020420B800000001040420BC0000005F4D +:101180000304223800040734010422480000000050 +:101190000104224C00000000010422500000000065 +:1011A0000104225400000000010422580000000045 +:1011B0000104225C00000000010422600000000025 +:1011C0000104226400000000010422680000000005 +:1011D0000104226C000000000104227000000000E5 +:1011E00001042274000000000104227800000000C5 +:1011F0000104227C000000000A0000010000000140 +:1012000002042000000003E80A00000100000002C0 +:10121000020420000000000A0A000001000000048F +:10122000020420000000000105180400006F000007 +:101230000618076000140738041A00000000400078 +:10124000041B240000000040031A1EC80002073AD5 +:10125000031A40400004073C041A405000000006F6 +:10126000031A406800020740031A52C000020742F6 +:10127000031A800003F90744041A8FE400000007F2 +:10128000031AA08000100B3D021B800000000034F8 +:10129000021B804000000018021B80800000000C30 +:1012A000021B80C000000020021B83800007A120D9 +:1012B000021B83C0000001F4021B8BC00000000170 +:1012C0000A00000200000001021B83000007A120A9 +:1012D000021B8340000001F40A000002000000022B +:1012E000021B830000001388021B834000000005DE +:1012F0000A00000200000004021B83000000013805 +:10130000021B834000000000051C00002FA6000007 +:10131000051C800033760BEA051D000022E118C889 +:10132000061D510055E00B4D0A00000100000002AF +:10133000021B1480000000000A00000100000004ED +:10134000021B1480000000000118000000000000D3 +:10135000011800040000000001180008000000004F +:101360000118000C0000000001180010000000002F +:10137000011800140000000003180020001A0B4F91 +:10138000031800A400020B690218022400000000E8 +:1013900002180234000000000218024C0000000095 +:1013A000021802E4000000FF08181000000004000A +:1013B000041A300000000010041A308000000010F1 +:1013C000041A310000000010041A318000000010DF +:1013D000041A330000000012041A339000000012B7 +:1013E000041A342000000070041A90000000000667 +:1013F000041A304000000010041A30C00000001031 +:10140000041A314000000010041A31C0000000101E +:10141000041A334800000012041A33D800000012E6 +:10142000041A35E000000070041A9018000000064D +:10143000031A400000020B6B041A50000000000267 +:10144000041A508000000012031A614000020B6D64 +:10145000041A903000000002041AA00000000002EC +:10146000031A400800020B6F041A5010000000021B +:10147000041A50C800000012031A614800020B71E0 +:10148000041A903800000002041AA00800000002AC +:10149000031A401000020B73041A502000000002CF +:1014A000041A511000000012031A615000020B755B +:1014B000041A904000000002041AA010000000026C +:1014C000031A401800020B77041A50300000000283 +:1014D000041A515800000012031A615800020B79D7 +:1014E000041A904800000002041AA018000000022C +:1014F000031A402000020B7B041A50400000000237 +:10150000041A51A000000012031A616000020B7D52 +:10151000041A905000000002041AA02000000002EB +:10152000031A402800020B7F041A505000000002EA +:10153000041A51E800000012031A616800020B81CE +:10154000041A905800000002041AA02800000002AB +:10155000031A403000020B83041A5060000000029E +:10156000041A523000000012031A617000020B8549 +:10157000041A906000000002041AA030000000026B +:10158000031A403800020B87041A50700000000252 +:10159000041A527800000012031A617800020B89C5 +:1015A000041A906800000002041AA038000000022B +:1015B000020E004C00000032030E005400040B8B9E +:1015C000040E006400000004030E009400130B8F4F +:1015D000020E014400000001030E014C00020BA2A8 +:1015E000020E020400000001030E020C00020BA414 +:1015F000030E021C00040BA6030E0280001B0BAAA4 +:10160000040E02EC00000017040E20000000080089 +:10161000030E000400110BC5020E01100000000FA4 +:10162000020E01140000002F020E01100000001F26 +:10163000020E01140000003F020E01100000004FD6 +:10164000020E01140000006F020E01100000005F86 +:10165000020E01140000007F020C100000000028A0 +:10166000030C400800040BD6030C401C00040BDAEA +:10167000030C403800050BDE040C404C0000005BFE +:10168000030C41B800050BE3040C41CC0000001B27 +:10169000030C423800040BE8010C42480000000033 +:1016A000010C424C00000000010C42500000000000 +:1016B000010C425400000000010C425800000000E0 +:1016C000010C425C00000000010C426000000000C0 +:1016D000010C426400000000010C426800000000A0 +:1016E000010C426C00000000010C42700000000080 +:1016F000010C427400000000010C42780000000060 +:10170000010C427C00000000010C4280000000003F +:101710000A00000100000001020C4000000003E884 +:101720000A00000100000002020C40000000000A54 +:101730000A00000100000004020C4000000000014B +:1017400005300400009E00000630076800130BEC13 +:101750000432000000004000043324000000004078 +:1017600004323E800000001003323EC000020BEE47 +:10177000033274C000080BF00332850000100BF830 +:10178000023380000000001A023380400000004E47 +:101790000233808000000010023380C0000000206F +:1017A000023383800007A120023383C0000001F4CC +:1017B00002338BC0000000010A000002000000019B +:1017C000023383000007A12002338340000001F4AC +:1017D0000A000002000000020233830000001388A8 +:1017E00002338340000000050A00000200000004EC +:1017F0000233830000000138023383400000000000 +:1018000005340000363E00000534800030F20D90B3 +:1018100005350000355719CD06357A5050B60C08FD +:101820000A000001000000020233148000000000E2 +:101830000A000001000000040233148000000000D0 +:101840000130000000000000013000040000000032 +:1018500001300008000000000130000C0000000012 +:1018600001300010000000000130001400000000F2 +:1018700003300020001A0C0A033000A400020C24DC +:101880000230022400000000023002340000000098 +:101890000230024C00000000023002E40000FFFFB2 +:1018A000083020000000080004321000000001C0D1 +:1018B00004321E000000003804323000000001C075 +:1018C00004325000000000200432510000000020CB +:1018D00004325200000000200432530000000020B7 +:1018E00004325400000000200432550000000020A3 +:1018F000043256000000002004325700000000208F +:10190000043258000000002004325900000000207A +:1019100004325A000000002004325B000000002066 +:1019200004325C000000002004325D000000002052 +:1019300004325E000000002004325F00000000203E +:1019400004328450000000020332846000040C263C +:1019500004321700000001C004321EE0000000380D +:1019600004323700000001C0043250800000002023 +:101970000432518000000020043252800000002018 +:101980000432538000000020043254800000002004 +:1019900004325580000000200432568000000020F0 +:1019A00004325780000000200432588000000020DC +:1019B000043259800000002004325A8000000020C8 +:1019C00004325B800000002004325C8000000020B4 +:1019D00004325D800000002004325E8000000020A0 +:1019E00004325F80000000200432845800000002AE +:1019F0000332847000040C2A0432401000000002FC +:101A00000432841000000002043240200000000272 +:101A1000043284180000000204324030000000024A +:101A20000432842000000002043240400000000222 +:101A300004328428000000020432405000000002FA +:101A400004328430000000020432406000000002D2 +:101A500004328438000000020432407000000002AA +:101A60000432844000000002043240800000000282 +:101A700004328448000000020202005800000032D4 +:101A80000302006000040C2E040200700000000439 +:101A9000030200A0000E0C32030200DC00070C4021 +:101AA000020200FC0000000602020120000000000B +:101AB0000202013400000002020201B00000000135 +:101AC0000202020C000000010302021400020C4793 +:101AD00002020404000000010302040C00020C498D +:101AE0000302041C00040C4B0302048000200C4F72 +:101AF0000402050000000012040280000000200023 +:101B00000302000400140C6F02020108000000C868 +:101B10000202011800000002020201C400000000DD +:101B2000020201CC00000000020201D40000000209 +:101B3000020201DC00000002020201E4000000FFDA +:101B4000020201EC000000FF0202010C000000C8CC +:101B50000202011C00000002020201C80000000095 +:101B6000020201D000000000020201D800000002C1 +:101B7000020201E000000002020201E8000000FF92 +:101B8000020201F0000000FF02020108000000C88C +:101B90000202011800000002020201C4000000005D +:101BA000020201CC00000000020201D40000000289 +:101BB000020201DC00000002020201E4000000FF5A +:101BC000020201EC000000FF0202010C000000C84C +:101BD0000202011C00000002020201C80000000015 +:101BE000020201D000000000020201D80000000241 +:101BF000020201E000000002020201E8000000FF12 +:101C0000020201F0000000FF02020108000000C80B +:101C10000202011800000002020201C400000000DC +:101C2000020201CC00000000020201D40000000208 +:101C3000020201DC00000002020201E4000000FFD9 +:101C4000020201EC000000FF0202010C000000C8CB +:101C50000202011C00000002020201C80000000094 +:101C6000020201D000000000020201D800000002C0 +:101C7000020201E000000002020201E8000000FF91 +:101C8000020201F0000000FF02020108000000C88B +:101C90000202011800000002020201C4000000005C +:101CA000020201CC00000000020201D40000000288 +:101CB000020201DC00000002020201E4000000FF59 +:101CC000020201EC000000FF0202010C000000C84B +:101CD0000202011C00000002020201C80000000014 +:101CE000020201D000000000020201D80000000240 +:101CF000020201E000000002020201E8000000FF11 +:101D0000020201F0000000FF02161000000000288F +:101D10000316600800030C830316601C00040C8685 +:101D200003166038000D0C8A0416606C0000001366 +:101D3000031660B800020C97041660C00000003E55 +:101D4000021661B800000001041661BC0000001F0B +:101D50000316623800040C99011662480000000066 +:101D60000116624C000000000116625000000000E5 +:101D700001166254000000000116625800000000C5 +:101D80000116625C000000000116626000000000A5 +:101D90000116626400000000011662680000000085 +:101DA0000116626C00000000011662700000000065 +:101DB0000116627400000000011662780000000045 +:101DC0000116627C000000000A0000010000000112 +:101DD00002166000000003E80A0000010000000293 +:101DE000021660000000000A0A0000010000000462 +:101DF00002166000000000010528040000890000B0 +:101E00000628076800130C9D042A0000000040000B +:101E1000042B240000000040032A300000020C9F25 +:101E2000032A400000100CA1032A840800080CB10A +:101E3000032A93C800040CB9032A96F000020CBDD3 +:101E4000042A96F800000006032A994000020CBFFD +:101E5000022A9A2800000001032AC0C000100CC109 +:101E6000022B800000000000022B804000000018C0 +:101E7000022B80800000000C022B80C00000006656 +:101E8000022B83800007A120022B83C0000001F4F5 +:101E9000022B8BC0000000010A00000200000001BC +:101EA000022B83000007A120022B8340000001F4D5 +:101EB0000A00000200000002022B830000001388C9 +:101EC000022B8340000000050A000002000000040D +:101ED000022B830000000138022B83400000000029 +:101EE0000A00000100000020022A9A2C00000000D5 +:101EF000052C000037260000052C8000399D0DCAF6 +:101F0000052D00003B381C32052D80001A762B0071 +:101F1000062DB6E049240CD10A00000100000002A1 +:101F2000022B1480000000000A00000100000004E1 +:101F3000022B1480000000000128000000000000B7 +:101F40000128000400000000012800080000000033 +:101F50000128000C00000000012800100000000013 +:101F6000012800140000000003280020001A0CD3F0 +:101F7000032800A400020CED022802240000000047 +:101F800002280234000000000228024C0000000079 +:101F9000022802E40000FFFF0828200000000800DB +:101FA000042A500000000002042A50100000000221 +:101FB000042A502000000002042A503000000002D1 +:101FC000042A93E000000020042A94E00000000EA0 +:101FD000032A951800020CEF042A95600000000EF9 +:101FE000032A959800020CF1042A95E00000000EE7 +:101FF000032A961800020CF3042A96600000000ED3 +:10200000032A969800020CF5032A971000020CF799 +:10201000042A500800000002042A501800000002A0 +:10202000042A502800000002042A50380000000250 +:10203000042A946000000020042A95200000000E6D +:10204000032A955800020CF9042A95A00000000EFE +:10205000032A95D800020CFB042A96200000000EEB +:10206000032A965800020CFD042A96A00000000ED8 +:10207000032A96D800020CFF032A971800020D01CC +:10208000042A50480000000E032A972000100D0378 +:10209000042A995000000002042AC0000000000237 +:1020A000042A50800000000E032A976000100D13D0 +:1020B000042A995800000002042AC0080000000207 +:1020C000042A50B80000000E032A97A000100D2328 +:1020D000042A996000000002042AC01000000002D7 +:1020E000042A50F00000000E032A97E000100D3380 +:1020F000042A996800000002042AC01800000002A7 +:10210000042A51280000000E032A982000100D43D5 +:10211000042A997000000002042AC0200000000276 +:10212000042A51600000000E032A986000100D532D +:10213000042A997800000002042AC0280000000246 +:10214000042A51980000000E032A98A000100D6385 +:10215000042A998000000002042AC0300000000216 +:10216000042A51D00000000E032A98E000100D73DD +:10217000042A998800000002042AC03800000002E6 +:102180000400A0000000000C0400A05000000002A9 +:102190000300A0EC00080D830300A18C00080D8B48 +:1021A0000200A45C00000C000200A61C000000035A +:1021B0000300A06C00060D930400A084000000053D +:1021C0000200A0980FE000000400A09C000000079F +:1021D0000300A0B8000D0D990400A22C000000041B +:1021E0000300A10C00060DA60400A12400000005B8 +:1021F0000200A1380FE000000400A13C000000072D +:102200000300A158000D0DAC0400A23C0000000426 +:102210000200A030000000000200A0340000000016 +:102220000200A038000000000200A03C00000000F6 +:102230000200A040000000000200A04400000000D6 +:102240000200A048000000000200A04C00000000B6 +:10225000000000000000000000000000000000007E +:10226000000000000000000000000000000000006E +:10227000000000000000000000000000000000005E +:102280000000000000000005000500080008000B29 +:10229000000000000000000000000000000000003E +:1022A000000000000000000000000000000000002E +:1022B000000B001900000000000000000019001AC7 +:1022C000001A001B001B001C001C001D001D001E2E +:1022D000001E001F001F00200020002100210028F8 +:1022E00000000000000000000000000000000000EE +:1022F00000000000000000000000000000000000DE +:1023000000000000000000000028002E0000000077 +:1023100000000000000000000000000000000000BD +:1023200000000000000000000000000000000000AD +:1023300000000000002E0049000000000000000026 +:10234000000000000000000000000000000000008D +:10235000000000000000000000000000000000007D +:10236000004900B4000000000000000000B400B903 +:1023700000B900BE00BE00C300C300C800C800CD45 +:1023800000CD00D200D200D700D700DC0000000052 +:10239000000000000000000000000000000000003D +:1023A000000000000000000000000000000000002D +:1023B000000000000000000000DC00E00000000061 +:1023C000000000000000000000000000000000000D +:1023D00000000000000000000000000000000000FD +:1023E0000000000000E000E7000000000000000026 +:1023F00000000000000000000000000000000000DD +:1024000000000000000000000000000000000000CC +:1024100000000000000000000000000000E700F7DE +:1024200000F70107010701170117012701270137ED +:1024300001370147014701570157016700000000BC +:10244000000000000000000000000000000000008C +:10245000000000000000000000000000000000007C +:1024600000000000000000000167016D0000000096 +:1024700000000000016D016E016E016F016F0170BF +:1024800001700171017101720172017301730174B4 +:10249000017401750175017801780185018501924A +:1024A0000192019301930194019401950195019684 +:1024B0000196019701970198019801990199019A54 +:1024C000019A01A001A001A401A401A8000000003C +:1024D00000000000000000000000000000000000FC +:1024E00000000000000000000000000000000000EC +:1024F00000000000000000000000000000000000DC +:1025000000000000000000000000000000000000CB +:10251000000000000000000001A801BA0000000057 +:1025200000000000000000000000000000000000AB +:10253000000000000000000000000000000000009B +:102540000000000001BA01C9000000000000000006 +:10255000000000000000000000000000000000007B +:10256000000000000000000000000000000000006B +:1025700001C901CC000000000000000000000000C4 +:10258000000000000000000000000000000000004B +:1025900000000000000000000000000001CC01EC81 +:1025A000000000000000000000000000000000002B +:1025B000000000000000000000000000000000001B +:1025C000000000000000000001EC01EE000000002F +:1025D00000000000000000000000000000000000FB +:1025E00000000000000000000000000000000000EB +:1025F0000000000001EE01FB0000000000000000F0 +:1026000001FB01FC01FC01FD01FD01FE01FE01FFDA +:1026100001FF0200020002010201020202020203A3 +:10262000020302170217021A021A021D000000001C +:10263000000000000000000000000000000000009A +:10264000000000000000000000000000021D023831 +:10265000000000000000000000000000000000007A +:10266000000000000000000000000000000000006A +:1026700000000000000000000238026902690271D7 +:10268000027102790279027F027F02850285028B44 +:10269000028B0291029102970297029D029D02A372 +:1026A00002A302A902A902B6000000000000000077 +:1026B00002B602B702B702B802B802B902B902BA4A +:1026C00002BA02BB02BB02BC02BC02BD02BD02BE1A +:1026D00002BE02BF00000000000000000000000079 +:1026E00000000000000000000000000000000000EA +:1026F00000000000000000000000000002BF02DB3C +:1027000000000000000000000000000000000000C9 +:1027100000000000000000000000000000000000B9 +:10272000000000000000000002DB03080308031D96 +:10273000031D0332033203340334033603360338F4 +:102740000338033A033A033C033C033E033E034091 +:102750000340034203420354000000000000000055 +:102760000354035C035C03640364036C036C037431 +:102770000374037C037C03840384038C038C039421 +:10278000039403950000000000000000000000001A +:102790000000000000000000000000000000000039 +:1027A000000000000000000000000000039503B2DC +:1027B0000000000000000000000000000000000019 +:1027C0000000000000000000000000000000000009 +:1027D000000000000000000003B203E703E703F578 +:1027E00003F50403040304070407040B040B040F9C +:1027F000040F0413041304170417041B041B041F01 +:10280000041F0423042304290429042F042F04355E +:1028100004350436043604370437043804380439E0 +:102820000439043A043A043B043B043C043C043DB0 +:102830000000000000000000000020000000400038 +:1028400000006000000080000000A0000000C00048 +:102850000000E00000010000000120000001400035 +:1028600000016000000180000001A0000001C00024 +:102870000001E00000020000000220000002400011 +:1028800000026000000280000002A0000002C00000 +:102890000002E000000300000003200000034000ED +:1028A00000036000000380000003A0000003C000DC +:1028B0000003E000000400000004200000044000C9 +:1028C00000046000000480000004A0000004C000B8 +:1028D0000004E000000500000005200000054000A5 +:1028E00000056000000580000005A0000005C00094 +:1028F0000005E00000060000000620000006400081 +:1029000000066000000680000006A0000006C0006F +:102910000006E0000007000000072000000740005C +:1029200000076000000780000007A0000007C0004B +:102930000007E00000080000000820000008400038 +:1029400000086000000880000008A0000008C00027 +:102950000008E00000090000000920000009400014 +:1029600000096000000980000009A0000009C00003 +:102970000009E000000A0000000A2000000A4000F0 +:10298000000A6000000A8000000AA000000AC000DF +:10299000000AE000000B0000000B2000000B4000CC +:1029A000000B6000000B8000000BA000000BC000BB +:1029B000000BE000000C0000000C2000000C4000A8 +:1029C000000C6000000C8000000CA000000CC00097 +:1029D000000CE000000D0000000D2000000D400084 +:1029E000000D6000000D8000000DA000000DC00073 +:1029F000000DE000000E0000000E2000000E400060 +:102A0000000E6000000E8000000EA000000EC0004E +:102A1000000EE000000F0000000F2000000F40003B +:102A2000000F6000000F8000000FA000000FC0002A +:102A3000000FE00000100000001020000010400017 +:102A400000106000001080000010A0000010C00006 +:102A50000010E000001100000011200000114000F3 +:102A600000116000001180000011A0000011C000E2 +:102A70000011E000001200000012200000124000CF +:102A800000126000001280000012A0000012C000BE +:102A90000012E000001300000013200000134000AB +:102AA00000136000001380000013A0000013C0009A +:102AB0000013E00000140000001420000014400087 +:102AC00000146000001480000014A0000014C00076 +:102AD0000014E00000150000001520000015400063 +:102AE00000156000001580000015A0000015C00052 +:102AF0000015E0000016000000162000001640003F +:102B000000166000001680000016A0000016C0002D +:102B10000016E0000017000000172000001740001A +:102B200000176000001780000017A0000017C00009 +:102B30000017E000001800000018200000184000F6 +:102B400000186000001880000018A0000018C000E5 +:102B50000018E000001900000019200000194000D2 +:102B600000196000001980000019A0000019C000C1 +:102B70000019E000001A0000001A2000001A4000AE +:102B8000001A6000001A8000001AA000001AC0009D +:102B9000001AE000001B0000001B2000001B40008A +:102BA000001B6000001B8000001BA000001BC00079 +:102BB000001BE000001C0000001C2000001C400066 +:102BC000001C6000001C8000001CA000001CC00055 +:102BD000001CE000001D0000001D2000001D400042 +:102BE000001D6000001D8000001DA000001DC00031 +:102BF000001DE000001E0000001E2000001E40001E +:102C0000001E6000001E8000001EA000001EC0000C +:102C1000001EE000001F0000001F2000001F4000F9 +:102C2000001F6000001F8000001FA000001FC000E8 +:102C3000001FE000002000000020200000204000D5 +:102C400000206000002080000020A0000020C000C4 +:102C50000020E000002100000021200000214000B1 +:102C600000216000002180000021A0000021C000A0 +:102C70000021E0000022000000222000002240008D +:102C800000226000002280000022A0000022C0007C +:102C90000022E00000230000002320000023400069 +:102CA00000236000002380000023A0000023C00058 +:102CB0000023E00000240000002420000024400045 +:102CC00000246000002480000024A0000024C00034 +:102CD0000024E00000250000002520000025400021 +:102CE00000256000002580000025A0000025C00010 +:102CF0000025E000002600000026200000264000FD +:102D000000266000002680000026A0000026C000EB +:102D10000026E000002700000027200000274000D8 +:102D200000276000002780000027A0000027C000C7 +:102D30000027E000002800000028200000284000B4 +:102D400000286000002880000028A0000028C000A3 +:102D50000028E00000290000002920000029400090 +:102D600000296000002980000029A0000029C0007F +:102D70000029E000002A0000002A2000002A40006C +:102D8000002A6000002A8000002AA000002AC0005B +:102D9000002AE000002B0000002B2000002B400048 +:102DA000002B6000002B8000002BA000002BC00037 +:102DB000002BE000002C0000002C2000002C400024 +:102DC000002C6000002C8000002CA000002CC00013 +:102DD000002CE000002D0000002D2000002D400000 +:102DE000002D6000002D8000002DA000002DC000EF +:102DF000002DE000002E0000002E2000002E4000DC +:102E0000002E6000002E8000002EA000002EC000CA +:102E1000002EE000002F0000002F2000002F4000B7 +:102E2000002F6000002F8000002FA000002FC000A6 +:102E3000002FE00000300000003020000030400093 +:102E400000306000003080000030A0000030C00082 +:102E50000030E0000031000000312000003140006F +:102E600000316000003180000031A0000031C0005E +:102E70000031E0000032000000322000003240004B +:102E800000326000003280000032A0000032C0003A +:102E90000032E00000330000003320000033400027 +:102EA00000336000003380000033A0000033C00016 +:102EB0000033E00000340000003420000034400003 +:102EC00000346000003480000034A0000034C000F2 +:102ED0000034E000003500000035200000354000DF +:102EE00000356000003580000035A0000035C000CE +:102EF0000035E000003600000036200000364000BB +:102F000000366000003680000036A0000036C000A9 +:102F10000036E00000370000003720000037400096 +:102F200000376000003780000037A0000037C00085 +:102F30000037E00000380000003820000038400072 +:102F400000386000003880000038A0000038C00061 +:102F50000038E0000039000000392000003940004E +:102F600000396000003980000039A0000039C0003D +:102F70000039E000003A0000003A2000003A40002A +:102F8000003A6000003A8000003AA000003AC00019 +:102F9000003AE000003B0000003B2000003B400006 +:102FA000003B6000003B8000003BA000003BC000F5 +:102FB000003BE000003C0000003C2000003C4000E2 +:102FC000003C6000003C8000003CA000003CC000D1 +:102FD000003CE000003D0000003D2000003D4000BE +:102FE000003D6000003D8000003DA000003DC000AD +:102FF000003DE000003E0000003E2000003E40009A +:10300000003E6000003E8000003EA000003EC00088 +:10301000003EE000003F0000003F2000003F400075 +:10302000003F6000003F8000003FA000003FC00064 +:10303000003FE000003FE00100000000000001FF51 +:10304000000002000000000100000002000000007B +:1030500000000008021500200215002008100000E2 +:103060000000003300000002000000000000000526 +:103070000000000500000000000000000000000249 +:103080000000000300000002000000010000000436 +:103090000000000200000002000000010000000229 +:1030A000000000200000004000000040000000037D +:1030B0000000001800002000000040C000006180F7 +:1030C000000082400000A3000000C3C00000E480B4 +:1030D0000001054000012600000146C00001678094 +:1030E000000188400001A9000001C9C00001EA8078 +:1030F00000020B4000022C0000024CC000026D8058 +:1031000000028E400002AF000002CFC00002F0803B +:10311000000011400000000100000001000000015B +:10312000000000010000000100000001000000019B +:10313000000000010000000100000001000000018B +:10314000000000010000000100000001000000017B +:103150000003D0000000003D00000001000D000051 +:10316000000700D000028140000B816800020220AD +:1031700000010240000F025000010340000C00005B +:10318000000800C000028140000B8168000202209C +:103190000001024000070250000202C000100000BF +:1031A0000008010000028180000B81A8000202607B +:1031B00000018280000E8298000803800000000059 +:1031C000000000000002800000090028000200B892 +:1031D000000100D8000000E8000000E8FFFFFFF356 +:1031E00001AFFFFF00000000000000000000000031 +:1031F000000000000000000000000000FFFFFFF1E1 +:1032000000EFFFFF000000000000000000000000D1 +:10321000000000000001000000000000FFFFFFF6BA +:10322000005FFFFF00000000000000000000000041 +:10323000000000000002000000000000FFFFF40694 +:103240001CBFFFFF0000000500000000000000148C +:10325000000000000004000000000000FFFFFFF27B +:10326000004FFFFF00000000000000000000000011 +:10327000000000000008000000000000FFFFFFFA4F +:10328000002FFFFF00000000000000000000000011 +:10329000000000000010000000000000FFFFFFF72A +:1032A00001EFFFFF00000000000000000000000030 +:1032B000000000000020000000000000FFFFFFF5FC +:1032C000002FFFFF000000000000000000000000D1 +:1032D000000000000040000000000000FFFFFFF3BE +:1032E000018FFFFF00000000000000000000000050 +:1032F000000000000000000000000000FFFFFFF1E0 +:10330000010FFFFF000000000000000000000000AF +:10331000000000000001000000000000FFFFFFF6B9 +:10332000005FFFFF00000000000000000000000040 +:10333000000000000002000000000000FFFFF40693 +:103340001CBFFFFF0000000500000000000000148B +:10335000000000000004000000000000FFFFFFF27A +:10336000004FFFFF00000000000000000000000010 +:10337000000000000008000000000000FFFFFFFA4E +:10338000002FFFFF00000000000000000000000010 +:10339000000000000010000000000000FFFFFFF729 +:1033A00000EFFFFF00000000000000000000000030 +:1033B000000000000020000000000000FFFFFFF5FB +:1033C000004FFFFF000000000000000000000000B0 +:1033D000000000000040000000000000FFFFFFFFB1 +:1033E00000CFFFFF0000000000000000000000CC44 +:1033F000000000000000000000000000FFFFFFFFD1 +:1034000000CFFFFF0000000000000000000000CC23 +:10341000000000000001000000000000FFFFFFFFAF +:1034200000CFFFFF0000000000000000000000CC03 +:10343000000000000002000000000000FFFFFFFF8E +:1034400000CFFFFF0000000000000000000000CCE3 +:10345000000000000004000000000000FFFFFFFF6C +:1034600000CFFFFF0000000000000000000000CCC3 +:10347000000000000008000000000000FFFFFFFF48 +:1034800000CFFFFF0000000000000000000000CCA3 +:10349000000000000010000000000000FFFFFFFF20 +:1034A00000CFFFFF0000000000000000000000CC83 +:1034B000000000000020000000000000FFFFFFFFF0 +:1034C00000CFFFFF0000000000000000000000CC63 +:1034D000000000000040000000000000FFFFFFF3BC +:1034E000020FFFFF000000000000000000000000CD +:1034F000000000000000000000000000FFFFFFF1DE +:10350000010FFFFF000000000000000000000000AD +:10351000000000000001000000000000FFFFFFF6B7 +:10352000005FFFFF0000000000000000000000003E +:10353000000000000002000000000000FFFFF40691 +:103540001CBFFFFF00000005000000000000001489 +:10355000000000000004000000000000FFFFFFF278 +:10356000004FFFFF0000000000000000000000000E +:10357000000000000008000000000000FFFFFF8ABC +:10358000042FFFFF0000000000000000000000000A +:10359000000000000010000000000000FFFFFF9787 +:1035A00005CFFFFF00000000000000000000000049 +:1035B000000000000020000000000000FFFFFFF5F9 +:1035C000010FFFFF000000000000000000000000ED +:1035D000000000000040000000000000FFFFFFF3BB +:1035E000000FFFFF000000000000000000000000CE +:1035F000000000000000000000000000FFFFFFF1DD +:10360000000FFFFF000000000000000000000000AD +:10361000000000000001000000000000FFFFFFF6B6 +:10362000005FFFFF0000000000000000000000003D +:10363000000000000002000000000000FFFFFF0685 +:103640001CBFFFFF0000000000000000000000148D +:10365000000000000004000000000000FFFFFFF277 +:10366000004FFFFF0000000000000000000000000D +:10367000000000000008000000000000FFFFFFFA4B +:10368000002FFFFF0000000000000000000000000D +:10369000000000000010000000000000FFFFFFF726 +:1036A000000FFFFF0000000000000000000000000D +:1036B000000000000020000000000000FFFFFFFFEE +:1036C00000CFFFFF0000000000000000000000CC61 +:1036D000000000000040000000000000FFFFFFFFAE +:1036E00000CFFFFF0000000000000000000000CC41 +:1036F000000000000000000000000000FFFFFFFFCE +:1037000000CFFFFF0000000000000000000000CC20 +:10371000000000000001000000000000FFFFFFFFAC +:1037200000CFFFFF0000000000000000000000CC00 +:10373000000000000002000000000000FFFFFFFF8B +:1037400000CFFFFF0000000000000000000000CCE0 +:10375000000000000004000000000000FFFFFFFF69 +:1037600000CFFFFF0000000000000000000000CCC0 +:10377000000000000008000000000000FFFFFFFF45 +:1037800000CFFFFF0000000000000000000000CCA0 +:10379000000000000010000000000000FFFFFFFF1D +:1037A00000CFFFFF0000000000000000000000CC80 +:1037B000000000000020000000000000FFFFFFFFED +:1037C00000CFFFFF0000000000000000000000CC60 +:1037D000000000000040000000000000FFFFFFFFAD +:1037E00000CFFFFF0000000000000000000000CC40 +:1037F000000000000000000000000000FFFFFFFFCD +:1038000000CFFFFF0000000000000000000000CC1F +:10381000000000000001000000000000FFFFFFFFAB +:1038200000CFFFFF0000000000000000000000CCFF +:10383000000000000002000000000000FFFFFFFF8A +:1038400000CFFFFF0000000000000000000000CCDF +:10385000000000000004000000000000FFFFFFFF68 +:1038600000CFFFFF0000000000000000000000CCBF +:10387000000000000008000000000000FFFFFFFF44 +:1038800000CFFFFF0000000000000000000000CC9F +:10389000000000000010000000000000FFFFFFFF1C +:1038A00000CFFFFF0000000000000000000000CC7F +:1038B000000000000020000000000000FFFFFFFFEC +:1038C00000CFFFFF0000000000000000000000CC5F +:1038D000000000000040000000000000FFFFFFFFAC +:1038E00000CFFFFF0000000000000000000000CC3F +:1038F000000000000000000000000000FFFFFFFFCC +:1039000000CFFFFF0000000000000000000000CC1E +:10391000000000000001000000000000FFFFFFFFAA +:1039200000CFFFFF0000000000000000000000CCFE +:10393000000000000002000000000000FFFFFFFF89 +:1039400000CFFFFF0000000000000000000000CCDE +:10395000000000000004000000000000FFFFFFFF67 +:1039600000CFFFFF0000000000000000000000CCBE +:10397000000000000008000000000000FFFFFFFF43 +:1039800000CFFFFF0000000000000000000000CC9E +:10399000000000000010000000000000FFFFFFFF1B +:1039A00000CFFFFF0000000000000000000000CC7E +:1039B000000000000020000000000000FFFFFFFFEB +:1039C00000CFFFFF0000000000000000000000CC5E +:1039D0000000000000400000000000000000021194 +:1039E00000000200000002040000FFFF0000FFFFD3 +:1039F0000000FFFF0000FFFF00000020000000218A +:103A00000000002200000023000000240000002528 +:103A10000000002600000027000000280000002908 +:103A20000000002A0000002B0000002C0000002DE8 +:103A30000000002E0000002F000000100000000118 +:103A40000000000100000001000000010000000172 +:103A50000000000100000001000000010000000162 +:103A60000000000100000001000000010000000152 +:103A70000000000100000001000000010000000142 +:103A800007FFFFFF0000003F07FFFFFF0000000FE0 +:103A900000007FF800007FF80000FF000000000039 +:103AA0000000FF00000000000000FF000000000018 +:103AB0000000FF00000000000000FF000000000008 +:103AC0000000FF00000000000000FF0000000000F8 +:103AD0000000FF00000000000000FF1C0FFFFFFFC0 +:103AE0000000FF1C0FFFFFFF0000FF1C0FFFFFFF88 +:103AF0000000FF1C0FFFFFFF0000FF1C0FFFFFFF78 +:103B00000000FF1C0FFFFFFF0000FF1C0FFFFFFF67 +:103B10000000FF1C0FFFFFFF0000FF1C0FFFFFFF57 +:103B20000000FF1C0FFFFFFF0000FF1C0FFFFFFF47 +:103B30000000FF1C0FFFFFFF0000FF1C0FFFFFFF37 +:103B40000000FF1C0FFFFFFF0000FF1C0FFFFFFF27 +:103B50000000FF1C0FFFFFFF0000FF1C0FFFFFFF17 +:103B60000000FF1C0FFFFFFF0000FF1C0FFFFFFF07 +:103B70000000FF1C0FFFFFFF0000FF1C0FFFFFFFF7 +:103B80000000FF1C0FFFFFFF0000FF1C0FFFFFFFE7 +:103B90000000FF1C0FFFFFFF0000FF1C0FFFFFFFD7 +:103BA0000000FF1C0FFFFFFF0000FF1C0FFFFFFFC7 +:103BB0000000FF1C0FFFFFFF0000FF1C0FFFFFFFB7 +:103BC0000000FF1C0FFFFFFF0000FF1C0FFFFFFFA7 +:103BD0000000FF1C0FFFFFFF0000FF1C0FFFFFFF97 +:103BE0000000FF1C0FFFFFFF0000FF1C0FFFFFFF87 +:103BF0000000FF1C0FFFFFFF0000FF1C0FFFFFFF77 +:103C00000000FF1C0FFFFFFF0000FF1C0FFFFFFF66 +:103C10000000FF1C0FFFFFFF0000FF1C0FFFFFFF56 +:103C20000000FF1C0FFFFFFF0000FF1C0FFFFFFF46 +:103C30000000FF1C0FFFFFFF0000FF1C0FFFFFFF36 +:103C40000000FF1C0FFFFFFF0000FF1C0FFFFFFF26 +:103C50000000FF1C0FFFFFFF0000FF1C0FFFFFFF16 +:103C60000000FF1C0FFFFFFF0000FF1C0FFFFFFF06 +:103C70000000FF1C0FFFFFFF0000FF1C0FFFFFFFF6 +:103C80000000FF1C0FFFFFFF0000FF1C0FFFFFFFE6 +:103C90000000FF1C0FFFFFFF0000FF1C0FFFFFFFD6 +:103CA0000000FF1C0FFFFFFF0000FF1C0FFFFFFFC6 +:103CB0000000FF1C0FFFFFFF0000FF1C0FFFFFFFB6 +:103CC0000000FF1C0FFFFFFF0000FF1C0FFFFFFFA6 +:103CD0000000FF1C0FFFFFFF000003130000150092 +:103CE00000000001000000020000000300000000CE +:103CF00000000004000000010000000000000001BE +:103D000000000004000000000000000100000003AB +:103D1000000000000000000100000004000000009E +:103D2000000000010000000300000000000000018E +:103D30000000000400000000000000040000000378 +:103D4000000000000000000000003FFF000003FF33 +:103D50000000000000000001000000010000000160 +:103D6000007C10040000000400000002000000902D +:103D70000000009000800090081000000000008A01 +:103D800000000080000000810000008000000006AC +:103D9000000007D00000076C071D2911000000007B +:103DA000009C04240000000000000001000000014D +:103DB00000000001000000010000000100007FFF82 +:103DC000000000FF000000FF000000FF000000FFF7 +:103DD0000000007F000000FF000000FF000000FF67 +:103DE0000000003E000000000000003F0000003F17 +:103DF0000000003F0000003F0000003F0000003FC7 +:103E00000000003F0000000F00000000121700003B +:103E100022170000321700001215000022150000C2 +:103E20003215000002100000001000001010000009 +:103E300020100000301000000010000012140000DC +:103E4000221400003214000000E38340FFFFFFFF54 +:103E5000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF72 +:103E6000FFFFFFFFFFFFFFFFFFFFFFFFF00050001E +:103E7000F0001000FFFFFFFFFFFFFFFFFFFFFFFF4E +:103E8000FFFFFFFFFFFFFFFFFFFFFFFFFF8090002F +:103E9000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF32 +:103EA000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF22 +:103EB000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF12 +:103EC000FFFFFFFFFFFFFFFFFFFFFFFF00003C10B2 +:103ED00000000001000000000000000800000008D1 +:103EE00000000002000000040000000500000004C3 +:103EF000000000400000180800000803000008034C +:103F00000000004000000003000008030000080358 +:103F1000000008030001000300000803000008037C +:103F20000000000300000003000000030000000385 +:103F30000000000300000003000000030000000375 +:103F40000000000300000003000000030000000365 +:103F50000000000300000003000000030000240331 +:103F60000000002F0000000900000019000001847B +:103F70000000018300000306000000190000000695 +:103F800000000306000003060000030600000C8684 +:103F90000000030600000306000000060000000603 +:103FA00000000006000000060000000600000006F9 +:103FB00000000006000000060000000600000006E9 +:103FC00000000006000000060000000600000006D9 +:103FD00000000006000003060000001300000006B9 +:103FE0000000100400001004001064400010644041 +:103FF00000000000000000000000000000000000C1 +:104000000000200000000000000000000000000090 +:10401000000000000400200000000000000000007C +:104020000000000000000000000020000000007CF4 +:104030000000003D0000003F0000009C0000000662 +:10404000000000050000000A00000005000001401B +:10405000000001400000000000000000000000C05F +:104060000000013F00007FFF000000480000004802 +:1040700000000000000000000000004800000004F4 +:104080000000000400000004000000040000000420 +:104090000000000400000004000000040000000410 +:1040A000000000090000000B0000000A00000004EE +:1040B000000000090000000B0000000A00000001E1 +:1040C00000000001000000010000000100000001EC +:1040D00000000001000000010000000100000001DC +:1040E00000000001000000010000000100000004C9 +:1040F000000000090000000B0000000A00000001A1 +:1041000000000001000000010000000100000001AB +:10411000000000010000000100000001000000019B +:104120000000000100000001000000010000000488 +:10413000000000090000000B0000000A0000000061 +:10414000000000000000080000000200000001FF65 +:104150000000040000000000000000001E491E498D +:104160001E491E490E490E490E490E49FFFFFFFF29 +:1041700000000000000025E40000800000000013A3 +:104180000FFF0FFF00000000000000000FFF0FFFF7 +:10419000100010001000100020002000200020005F +:1041A000800080008000800040004000400040000F +:1041B00000000000000000010101010101200101D7 +:1041C0002001010101011001010101010120010192 +:1041D0002001010101011001200101010101100173 +:1041E0000101010101200101200101010101100172 +:1041F0000101010101200101010101010120010171 +:104200002001010101011001010101010120010151 +:104210002001010101011001010101010120010141 +:104220002001010101011001010101010120010131 +:10423000200101010101100100000004000000093B +:104240000000000B0000000A00000004000000094C +:104250000000000B0000000A000000010000000147 +:10426000000000010000000100000001000000014A +:10427000000000010000000100000001000000013A +:10428000000000010000000100000004000000091F +:104290000000000B0000000A000000010000000107 +:1042A000000000010000000100000001000000010A +:1042B00000000001000000010000000100000001FA +:1042C00000000001000000010000000400000009DF +:1042D0000000000B0000000A1E491E491E491E492D +:1042E0000E490E490E490E49FFFFFFFF0000000076 +:1042F0000FFF0FFF00000000000000000FFF0FFF86 +:1043000010001000100010002000200020002000ED +:10431000800080008000800040004000400040009D +:104320000000000000000002000000010000000387 +:104330000000000400000006000000050000000767 +:1043400000000123000001230000012300000123DD +:1043500000000123000001230000012300000123CD +:1043600000000123000001230000012300000123BD +:1043700000000123000001230000012300000123AD +:10438000000001230000012300000123000001239D +:1043900000000020000000320000000700000007BD +:1043A0000000000000000008021500200215002097 +:1043B0000000003008100000000000330000003052 +:1043C00000000031000000020000000500000006AF +:1043D00000000002000000020000000000000005D4 +:1043E00000000002000000020000000200000001C6 +:1043F0000000000600000001000000020000004074 +:104400000000004000000020000000130000002019 +:1044100000010000000204C00003098000040E40F7 +:1044200000051300000617C000071C80000821408B +:1044300000092600000A2AC0000B2F80000C34401F +:10444000000D3900000E3DC0000F428000104740B3 +:1044500000114C00001250C00013558000145A4047 +:1044600000155F00001663C00017688000186D40DB +:1044700000197200001A76C0001B7B80001C80406F +:10448000001D8500001E89C0001F8E800000934023 +:104490000000000100000001000000010000000118 +:1044A0000000000100000001000000010000000108 +:1044B00000000001000000010000000100000001F8 +:1044C00000000001000000010000000100000001E8 +:1044D000000000080000000C0000001000000001B7 +:1044E00000000001000000010000021100000200B5 +:1044F00000000204000002190000FFFF0000FFFF9F +:104500000000FFFF0000FFFF07FFFFFF0000003F6C +:1045100007FFFFFF0000000F00007FF800007FF89A +:104520000000000000000001002010010000000059 +:1045300001009000000001000000000100000000E8 +:1045400000000000140AFF000000900200000000BC +:1045500000000000000000000000900400000000C7 +:1045600000000000000000000000900600000000B5 +:1045700000000000000000000000900800000000A3 +:1045800000000000000000000000900A0000000091 +:1045900000000000000000000000900C000000007F +:1045A00000000000000000000000900E000000006D +:1045B000000000000000000000009010000000005B +:1045C0000000000000000000000090120000000049 +:1045D0000000000000000000000090140000000037 +:1045E0000000000000000000000090160000000025 +:1045F0000000000000000000000090180000000013 +:1046000000000000000000000000901A0000000000 +:1046100000000000000000000000901C00000000EE +:1046200000000000000000000000901E00000000DC +:1046300000000000000000000000902000000000CA +:1046400000000000000000000000902200000000B8 +:1046500000000000000000000000902400000000A6 +:104660000000000000000000000090260000000094 +:104670000000000000000000000090280000000082 +:1046800000000000000000000000902A0000000070 +:1046900000000000000000000000902C000000005E +:1046A00000000000000000000000902E000000004C +:1046B000000000000000000000009030000000003A +:1046C0000000000000000000000090320000000028 +:1046D0000000000000000000000090340000000016 +:1046E0000000000000000000000090360000000004 +:1046F00000000000000000000000903800000000F2 +:1047000000000000000000000000903A00000000DF +:1047100000000000000000000000903C00000000CD +:1047200000000000000000000000903E00000000BB +:1047300000000000000000000000904000000000A9 +:104740000000000000000000000090420000000097 +:104750000000000000000000000090440000000085 +:104760000000000000000000000090460000000073 +:104770000000000000000000000090480000000061 +:1047800000000000000000000000904A000000004F +:1047900000000000000000000000904C000000003D +:1047A00000000000000000000000904E000000002B +:1047B0000000000000000000000090500000000019 +:1047C0000000000000000000000090520000000007 +:1047D00000000000000000000000905400000000F5 +:1047E00000000000000000000000905600000000E3 +:1047F00000000000000000000000905800000000D1 +:1048000000000000000000000000905A00000000BE +:1048100000000000000000000000905C00000000AC +:1048200000000000000000000000905E000000009A +:104830000000000000000000000090600000000088 +:104840000000000000000000000090620000000076 +:104850000000000000000000000090640000000064 +:104860000000000000000000000090660000000052 +:104870000000000000000000000090680000000040 +:1048800000000000000000000000906A000000002E +:1048900000000000000000000000906C000000001C +:1048A00000000000000000000000906E000000000A +:1048B00000000000000000000000907000000000F8 +:1048C00000000000000000000000907200000000E6 +:1048D00000000000000000000000907400000000D4 +:1048E00000000000000000000000907600000000C2 +:1048F00000000000000000000000907800000000B0 +:1049000000000000000000000000907A000000009D +:1049100000000000000000000000907C000000008B +:1049200000000000000000000000907E0000000079 +:104930000000000000000000000090800000000067 +:104940000000000000000000000090820000000055 +:104950000000000000000000000090840000000043 +:104960000000000000000000000090860000000031 +:10497000000000000000000000009088000000001F +:1049800000000000000000000000908A000000000D +:1049900000000000000000000000908C00000000FB +:1049A00000000000000000000000908E00000000E9 +:1049B00000000000000000000000909000000000D7 +:1049C00000000000000000000000909200000000C5 +:1049D00000000000000000000000909400000000B3 +:1049E00000000000000000000000909600000000A1 +:1049F000000000000000000000009098000000008F +:104A000000000000000000000000909A000000007C +:104A100000000000000000000000909C000000006A +:104A200000000000000000000000909E0000000058 +:104A30000000000000000000000090A00000000046 +:104A40000000000000000000000090A20000000034 +:104A50000000000000000000000090A40000000022 +:104A60000000000000000000000090A60000000010 +:104A70000000000000000000000090A800000000FE +:104A80000000000000000000000090AA00000000EC +:104A90000000000000000000000090AC00000000DA +:104AA0000000000000000000000090AE00000000C8 +:104AB0000000000000000000000090B000000000B6 +:104AC0000000000000000000000090B200000000A4 +:104AD0000000000000000000000090B40000000092 +:104AE0000000000000000000000090B60000000080 +:104AF0000000000000000000000090B8000000006E +:104B00000000000000000000000090BA000000005B +:104B10000000000000000000000090BC0000000049 +:104B20000000000000000000000090BE0000000037 +:104B30000000000000000000000090C00000000025 +:104B40000000000000000000000090C20000000013 +:104B50000000000000000000000090C40000000001 +:104B60000000000000000000000090C600000000EF +:104B70000000000000000000000090C800000000DD +:104B80000000000000000000000090CA00000000CB +:104B90000000000000000000000090CC00000000B9 +:104BA0000000000000000000000090CE00000000A7 +:104BB0000000000000000000000090D00000000095 +:104BC0000000000000000000000090D20000000083 +:104BD0000000000000000000000090D40000000071 +:104BE0000000000000000000000090D6000000005F +:104BF0000000000000000000000090D8000000004D +:104C00000000000000000000000090DA000000003A +:104C10000000000000000000000090DC0000000028 +:104C20000000000000000000000090DE0000000016 +:104C30000000000000000000000090E00000000004 +:104C40000000000000000000000090E200000000F2 +:104C50000000000000000000000090E400000000E0 +:104C60000000000000000000000090E600000000CE +:104C70000000000000000000000090E800000000BC +:104C80000000000000000000000090EA00000000AA +:104C90000000000000000000000090EC0000000098 +:104CA0000000000000000000000090EE0000000086 +:104CB0000000000000000000000090F00000000074 +:104CC0000000000000000000000090F20000000062 +:104CD0000000000000000000000090F40000000050 +:104CE0000000000000000000000090F6000000003E +:104CF0000000000000000000000090F8000000002C +:104D00000000000000000000000090FA0000000019 +:104D10000000000000000000000090FC0000000007 +:104D20000000000000000000000090FE00000000F5 +:104D300000000000000000000000910000000000E2 +:104D400000000000000000000000910200000000D0 +:104D500000000000000000000000910400000000BE +:104D600000000000000000000000910600000000AC +:104D7000000000000000000000009108000000009A +:104D800000000000000000000000910A0000000088 +:104D900000000000000000000000910C0000000076 +:104DA00000000000000000000000910E0000000064 +:104DB0000000000000000000000091100000000052 +:104DC0000000000000000000000091120000000040 +:104DD000000000000000000000009114000000002E +:104DE000000000000000000000009116000000001C +:104DF000000000000000000000009118000000000A +:104E000000000000000000000000911A00000000F7 +:104E100000000000000000000000911C00000000E5 +:104E200000000000000000000000911E00000000D3 +:104E300000000000000000000000912000000000C1 +:104E400000000000000000000000912200000000AF +:104E5000000000000000000000009124000000009D +:104E6000000000000000000000009126000000008B +:104E70000000000000000000000091280000000079 +:104E800000000000000000000000912A0000000067 +:104E900000000000000000000000912C0000000055 +:104EA00000000000000000000000912E0000000043 +:104EB0000000000000000000000091300000000031 +:104EC000000000000000000000009132000000001F +:104ED000000000000000000000009134000000000D +:104EE00000000000000000000000913600000000FB +:104EF00000000000000000000000913800000000E9 +:104F000000000000000000000000913A00000000D6 +:104F100000000000000000000000913C00000000C4 +:104F200000000000000000000000913E00000000B2 +:104F300000000000000000000000914000000000A0 +:104F4000000000000000000000009142000000008E +:104F5000000000000000000000009144000000007C +:104F6000000000000000000000009146000000006A +:104F70000000000000000000000091480000000058 +:104F800000000000000000000000914A0000000046 +:104F900000000000000000000000914C0000000034 +:104FA00000000000000000000000914E0000000022 +:104FB0000000000000000000000091500000000010 +:104FC00000000000000000000000915200000000FE +:104FD00000000000000000000000915400000000EC +:104FE00000000000000000000000915600000000DA +:104FF00000000000000000000000915800000000C8 +:1050000000000000000000000000915A00000000B5 +:1050100000000000000000000000915C00000000A3 +:1050200000000000000000000000915E0000000091 +:10503000000000000000000000009160000000007F +:10504000000000000000000000009162000000006D +:10505000000000000000000000009164000000005B +:105060000000000000000000000091660000000049 +:105070000000000000000000000091680000000037 +:1050800000000000000000000000916A0000000025 +:1050900000000000000000000000916C0000000013 +:1050A00000000000000000000000916E0000000001 +:1050B00000000000000000000000917000000000EF +:1050C00000000000000000000000917200000000DD +:1050D00000000000000000000000917400000000CB +:1050E00000000000000000000000917600000000B9 +:1050F00000000000000000000000917800000000A7 +:1051000000000000000000000000917A0000000094 +:1051100000000000000000000000917C0000000082 +:1051200000000000000000000000917E0000000070 +:10513000000000000000000000009180000000005E +:10514000000000000000000000009182000000004C +:10515000000000000000000000009184000000003A +:105160000000000000000000000091860000000028 +:105170000000000000000000000091880000000016 +:1051800000000000000000000000918A0000000004 +:1051900000000000000000000000918C00000000F2 +:1051A00000000000000000000000918E00000000E0 +:1051B00000000000000000000000919000000000CE +:1051C00000000000000000000000919200000000BC +:1051D00000000000000000000000919400000000AA +:1051E0000000000000000000000091960000000098 +:1051F0000000000000000000000091980000000086 +:1052000000000000000000000000919A0000000073 +:1052100000000000000000000000919C0000000061 +:1052200000000000000000000000919E000000004F +:105230000000000000000000000091A0000000003D +:105240000000000000000000000091A2000000002B +:105250000000000000000000000091A40000000019 +:105260000000000000000000000091A60000000007 +:105270000000000000000000000091A800000000F5 +:105280000000000000000000000091AA00000000E3 +:105290000000000000000000000091AC00000000D1 +:1052A0000000000000000000000091AE00000000BF +:1052B0000000000000000000000091B000000000AD +:1052C0000000000000000000000091B2000000009B +:1052D0000000000000000000000091B40000000089 +:1052E0000000000000000000000091B60000000077 +:1052F0000000000000000000000091B80000000065 +:105300000000000000000000000091BA0000000052 +:105310000000000000000000000091BC0000000040 +:105320000000000000000000000091BE000000002E +:105330000000000000000000000091C0000000001C +:105340000000000000000000000091C2000000000A +:105350000000000000000000000091C400000000F8 +:105360000000000000000000000091C600000000E6 +:105370000000000000000000000091C800000000D4 +:105380000000000000000000000091CA00000000C2 +:105390000000000000000000000091CC00000000B0 +:1053A0000000000000000000000091CE000000009E +:1053B0000000000000000000000091D0000000008C +:1053C0000000000000000000000091D2000000007A +:1053D0000000000000000000000091D40000000068 +:1053E0000000000000000000000091D60000000056 +:1053F0000000000000000000000091D80000000044 +:105400000000000000000000000091DA0000000031 +:105410000000000000000000000091DC000000001F +:105420000000000000000000000091DE000000000D +:105430000000000000000000000091E000000000FB +:105440000000000000000000000091E200000000E9 +:105450000000000000000000000091E400000000D7 +:105460000000000000000000000091E600000000C5 +:105470000000000000000000000091E800000000B3 +:105480000000000000000000000091EA00000000A1 +:105490000000000000000000000091EC000000008F +:1054A0000000000000000000000091EE000000007D +:1054B0000000000000000000000091F0000000006B +:1054C0000000000000000000000091F20000000059 +:1054D0000000000000000000000091F40000000047 +:1054E0000000000000000000000091F60000000035 +:1054F0000000000000000000000091F80000000023 +:105500000000000000000000000091FA0000000010 +:105510000000000000000000000091FC00000000FE +:105520000000000000000000000091FE0000FF00ED +:10553000000000000000FF00000000000000FF006D +:10554000000000000000FF00000000000000FF005D +:10555000000000000000FF00000000000000FF004D +:10556000000000000000FF0000000000000001A992 +:105570000000150000000001000000020000000310 +:105580000000000000000004000000010000000016 +:105590000000000100000004000000000000000105 +:1055A00000000003000000000000000100000004F3 +:1055B00000000000000000010000000300000000E7 +:1055C00000000001000000040000000000000004D2 +:1055D00000000003000000000000000000003FFF8A +:1055E000000003FF0000000300BEBC20000000001C +:1055F000000000050000000300BEBC200000000009 +:10560000000000050000000300BEBC2000000000F8 +:10561000000000050000000300BEBC2000000000E8 +:10562000000000050000000300BEBC2000000000D8 +:10563000000000050000000300BEBC2000000000C8 +:10564000000000050000000300BEBC2000000000B8 +:10565000000000050000000300BEBC2000000000A8 +:10566000000000050000000D0000000C000000001C +:10567000000000100215002002150020000000307C +:10568000081000000000003300000030000000316E +:105690000000000200000004000000000000000202 +:1056A00000000002000000000000000200000007EF +:1056B00000000002000000020000000100000003E2 +:1056C0000000000100000002000000400000004057 +:1056D00000000004000000200000000F0000001B7C +:1056E00000008000000103C00001878000020B4021 +:1056F00000028F00000312C00003968000041A40CD +:1057000000049E00000521C00005A5800006294078 +:105710000006AD00000730C00007B4800008384024 +:105720000008BC0000093FC00009C380000A4740D0 +:10573000000ACB00000B4EC0000BD280000C56407C +:10574000000CDA00000D5DC0000061800000000167 +:105750000000000100000001000000010000000145 +:105760000000000100000001000000010000000135 +:105770000000000100000001000000010000000125 +:105780000000000100000001000000010000000115 +:105790000000101100001000000010040000102193 +:1057A0000000FFFF0000FFFF0000FFFF0000FFFF01 +:1057B0000000004600000010000000000000000093 +:1057C00000000018000000010000000000000000C0 +:1057D000000000000000000107FFFFFF0000003F85 +:1057E00007FFFFFF0000000F00007FF800007FF8B8 +:1057F0000000190000000000FFFFFFFFFFFFFFFF98 +:10580000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA8 +:10581000FFFFFFFFFFFFFFFF0000FF000000000091 +:105820000000FF00000000000000FF00000000007A +:105830000000FF00000000000000FF00000000006A +:105840000000FF00000000000000FF00000000005A +:105850000000FF00000000000000014C00003500C7 +:105860000000000100000002000000030000000032 +:105870000000000400000001000000000000000122 +:105880000000000400000000000000010000000310 +:105890000000000000000001000000040000000003 +:1058A00000000001000000030000000000000001F3 +:1058B00000000004000000000000000400000003DD +:1058C000000000000000000000003FFF000003FF98 +:1058D00000000000039387000000000000000000AB +:1058E000000000000393870000000000000000009B +:1058F0000000000F00000007000000000000000E84 +:1059000003150020031500200100003008100000DE +:1059100000000033000000300000003100000003F0 +:105920000000000600000003000000030000000269 +:10593000000000000000000200000000000000065F +:10594000000000040000000200000002000000014E +:105950000000000400000001000000020000004000 +:1059600000000040000000040000002000000002D1 +:105970000000002000001000000020800000310026 +:1059800000004180000052000000628000007300AF +:1059900000008380000094000000A4800000B50097 +:1059A0000000C5800000D6000000E6800000F7007F +:1059B0000001078000011800000128800001390063 +:1059C0000001498000015A0000016A8000017B004B +:1059D00000018B8000019C000001AC800001BD0033 +:1059E0000001CD800001DE000001EE800001FF001B +:1059F00000000F8000000001000000010000000115 +:105A00000000000100000001000000010000000192 +:105A10000000000100000001000000010000000182 +:105A20000000000100000001000000010000000172 +:105A30000000000100000001000000010000000162 +:105A400000000001000012240000121000001214D7 +:105A50000000FFFF0000FFFF0000FFFF0000FFFF4E +:105A600000000020000000200000000000000000F6 +:105A70000000002300000024000000250000002694 +:105A800000000027000000290000002A0000002B71 +:105A90000000002C000000010000000107FFFFFFD4 +:105AA0000000003F07FFFFFF0000000F00007FF82D +:105AB00000007FF80000000000000001CCCC0201D3 +:105AC000CCCCCCCCCCCC0201CCCCCCCCCCCC020140 +:105AD000CCCCCCCCCCCC0201CCCCCCCCCCCC020130 +:105AE000CCCCCCCCCCCC0201CCCCCCCCCCCC020120 +:105AF000CCCCCCCCCCCC0201CCCCCCCCFFFFFFFFAF +:105B0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA5 +:105B1000FFFFFFFFFFFFFFFFFFFFFFFF0000000091 +:105B20000001000100110807CCCCCCC5100000001A +:105B3000000028AD7058103C000000000000FF007D +:105B4000000000000000FF00000000000000FF0057 +:105B5000000000000000FF00000000000000FF0047 +:105B6000000000000000FF00000000000000FF0037 +:105B7000000000000000FF000000000000000267BD +:105B800000003500000000010000000200000003DA +:105B90000000000000000004000000010000000000 +:105BA00000000001000000040000000000000001EF +:105BB00000000003000000000000000100000004DD +:105BC00000000000000000010000000300000000D1 +:105BD00000000001000000040000000000000004BC +:105BE00000000003000000000000000000003FFF74 +:105BF000000003FF002625A000000000002625A0CD +:105C000000000000002625A000000000002625A0BE +:105C100000000000000E0000011600D6002625A09E +:105C200000000000002625A000000000002625A09E +:105C300000000000002625A0000000000072000007 +:105C4000012300F30000FFFF000000000000FFFF41 +:105C5000000000000000FFFF000000000000FFFF48 +:105C6000000000000000FFFF000000000000FFFF38 +:105C70000000000000000000000000000000FFFF26 +:105C8000000000000000FFFF000000000000FFFF18 +:105C9000000000000000FFFF000000000000FFFF08 +:105CA000000000000000FFFF000000000000FFFFF8 +:105CB0000000000000000000000000000000FFFFE6 +:105CC000000000000000FFFF000000000000FFFFD8 +:105CD000000000000000FFFF000000000000FFFFC8 +:105CE000000000000000FFFF000000000000FFFFB8 +:105CF0000000000000000000000000000000FFFFA6 +:105D0000000000000000FFFF000000000000FFFF97 +:105D1000000000000000FFFF000000000000FFFF87 +:105D2000000000000000FFFF000000000000FFFF77 +:105D30000000000000000000000000000000FFFF65 +:105D4000000000000000FFFF000000000000FFFF57 +:105D5000000000000000FFFF000000000000FFFF47 +:105D6000000000000000FFFF000000000000FFFF37 +:105D70000000000000000000000000000000FFFF25 +:105D8000000000000000FFFF000000000000FFFF17 +:105D9000000000000000FFFF000000000000FFFF07 +:105DA000000000000000FFFF000000000000FFFFF7 +:105DB0000000000000000000000000000000FFFFE5 +:105DC000000000000000FFFF000000000000FFFFD7 +:105DD000000000000000FFFF000000000000FFFFC7 +:105DE000000000000000FFFF000000000000FFFFB7 +:105DF0000000000000000000000000000000FFFFA5 +:105E0000000000000000FFFF000000000000FFFF96 +:105E1000000000000000FFFF000000000000FFFF86 +:105E2000000000000000FFFF000000000000FFFF76 +:105E30000000000000000000000000000000FFFF64 +:105E400000000000555400005555555500005555AB +:105E5000F0000000555400005555555500005555AB +:105E6000F00000005554000055555555000055559B +:105E7000F0000000000000000001000000005014CD +:105E800000000000FF5C0000FFF55FFF0000FFFF67 +:105E9000F00003E0000000000000A000000004008B +:105EA00000000000000000000000000000001000E2 +:105EB00000000000000000000000000000004000A2 +:105EC00000000000000000000000000000010000D1 +:105ED000FF5C0000FFF55FFF0000FFFFF00003E044 +:105EE000000000000000A00000000800000000000A +:105EF0000000000000000000000020000000000082 +:105F00000000000000000000000080000000000011 +:105F1000000000000000000000020000000000007F +:105F20001F8B080000000000000BFB51CFC0F003E6 +:105F3000095772A1F2AFB0A2F2D1B1133B7E794200 +:105F400098858132FD624003E480D80A88D558F0F4 +:105F5000ABDDC98429E6288B607F91626008908060 +:105F6000B05B252873D7281E1AB84C13959FAC0E2A +:105F7000A13F6940E87234F914A83CBF0A84AED04E +:105F8000C46EAE00541E0024534894600300000009 +:105F900000000000000000001F8B0800000000004F +:105FA000000BED7D0D785C55B5E89E3967CE39F371 +:105FB0007F924ED349F3C3499AB6014299A6699B91 +:105FC00062D19336AD01AA4C7F28510B4ECB5FA016 +:105FD0007FA156C955B9336DD234A62DA4940715A7 +:105FE00010878852103460C0A29537A588F5E17DEE +:105FF000C6B648D1A2011151A1460429F7E9E5ED41 +:10600000B5F6DE33E79C6492860B3EDFF759FCDC85 +:10601000D967FFADBDD6DA6BADBDF6DA7B54AD8086 +:10602000149D41C8BBF0EF2384DCEF22844CCCA547 +:10603000645DD84D8A08F9AC46F0DFDBDED00C1287 +:1060400026A44D63E90DBE502FA4DD494232D3A1F1 +:10605000BC3C4D4284F809A99623D0C217FB7A05AF +:10606000A4AD73E3E7607A2EA485C4CDFA27A5FA20 +:106070002B7ED6F7BB12FCFF170899931B8F9C4809 +:1060800034C0F81211FF9A08B497C8CE3F4B3308BA +:10609000915BC3E48BB534AF2B24C3DBBC0BFF2770 +:1060A000AD0A2702B97939D3B6130DE9A7AA73F55A +:1060B000A7906004E190898C70F0F684A4088CEFBE +:1060C000E1A33BFB793B69A69FF20CC753BE710568 +:1060D0009EDA931AC9A8846C4FEA989722C44CD7C9 +:1060E000E03CCD472085B129FE3AAB8C5E7F85052B +:1060F0000E2FEBDF249440B3E1AF840D5F9D915BE5 +:1061000034739479932A8A2731EFCAE1F39369D7DC +:106110007D747C4A3BB317527D74389666E16821E2 +:10612000D6F98F1F8ECFD8DAFBCE2464007020D32F +:10613000F95138DCD1446A90A624CADAC9066F77CF +:106140009A78F757BB73E341B7019F8D5FB4D24292 +:106150005BF970BE4C717EEDE1F38D4B8C9F45BEBB +:1061600095C483D67A96D4C2BF52A413F9568AF83E +:1061700052520852F995412BDFF2769E7292003A04 +:10618000B4C3A762DE98D2412E8D7DAD9BA2FC46A2 +:10619000A2E0B87244C37E3EEB4ADC88702CA12496 +:1061A000A4FCE0E34DBC7A9CC052F31455871380E5 +:1061B000BF402121F386E3677B329596A75AF21EF2 +:1061C000D2DC87FC9F66E39493F4040A37F9DB4240 +:1061D0006359307F3F59FAF279B497C58E27EA6840 +:1061E0006EA212FB3ACCDF35F27C6E87F94C84F953 +:1061F0002829C00F9DCFED88BF3CF3690F4EE3F314 +:10620000898C0847079F8F803FFB5DCC2B4F3B2736 +:10621000FCF9CA3BCACCE86ADA452A38F2BC3C3001 +:106220002FBA5EBEC3E7E5092848274FA487805CE4 +:10623000A1F3FBCE48F3A37C85F2CD393F59D710AB +:106240002F627C59EB4CCBB372706688CEC6C9C244 +:106250001163725227D8EE5E92C84039E5BF01E45F +:10626000BF8049A07F254ACBCF85D46C4E51BA76EA +:106270001C9C476AA05D2046D6D1540924C8125AF6 +:10628000AFE3EF5233F02389D461FF028EEF73390D +:106290009E0F6FCB001E0B9E8F9611D68F83FE47ED +:1062A0003FA662BE6362EC6B80CBE739DE9CF8A14F +:1062B000787BDEDABFAC337C1EFDD87486AFA6894E +:1062C00036F8B27068ED367C1110A1745D4679BF66 +:1062D000026F3DC50C5F7BA3F55B41265656C76236 +:1062E00084CA99DDD1BD5B207FA796F83DB4F755F0 +:1062F0000FE1B8D1C420E251AC9745528DF7259AF1 +:10630000DED254195E43D3B0CB65E33F9176523D64 +:1063100000FC99A67A00D2B75F60F08FA2376CEBD1 +:10632000B33B2A37A569FFDDD56B7A1A28DEB6455F +:10633000AA6A51C6982E19E6E583F91884B8607CDC +:106340000A6F67F1E7104E8A3F976B768E0F05BF95 +:106350004D315B4D9D965792D68C8BF637612789D0 +:1063600065386E640B9EA28DEE941A423CF85C80F8 +:10637000EA52E34990C5E1258340B12C1E6E697253 +:10638000233D377D6C5AAF549183FB22979BC9CB39 +:1063900008E36B22C7AA416EE65B7F7B299E6AD821 +:1063A0003A7641BDC909928675B40BBE53823C430F +:1063B000E293018EC92D310FCCE7884BF05714F5CD +:1063C0006207877BEF1A1FE3AF32FD1E8067AA8B3F +:1063D000DB1F2D1C5F39FE9AEA9A9DC38BE0AFA4A8 +:1063E0003B510DE3A875699742E72BD70FA460BE18 +:1063F000ED6ED282F224450660BC6217C9FDA3E3AC +:106400008563462FF0F73CCE07C566E7F56ECA5F99 +:10641000D1A88C782C1E5CBD84B0FC8B2A4D032740 +:106420002EF83DD84F93AFEC7341FFA1D21E974495 +:10643000C753AF1CD217D0F473EEC43C8023A8A777 +:106440005CC09725EB7A5C40D73D9E56A25338D46A +:10645000F919331E007A2F26AB2DFAF7423E5FB9A9 +:1064600094D91982AE7B25C627BB1BB77AAF0940EA +:106470003D1FC2398534727EA096069D87CAF98178 +:10648000D2FD02C04F28D1E372D17695A543199869 +:1064900032E5F7490C8E5831C0B1A758694E33BC6C +:1064A0001C03FC86DC1C2706FD8FE229C8F311972C +:1064B00007E19240D151D152A893B441E92377B07A +:1064C000FC8418499B341FE2782BA94B6D01B52F32 +:1064D000F014E2F89363E92D80A73019C8C8158835 +:1064E000A7CB01CEE275832919E6AAB722FF77CBA5 +:1064F000ADBFBE91CEA7FBB0144B19163E24940F2E +:10650000CFB1DA0B74BDD9EC012E3722A7A73740E3 +:10651000BC00BFCA01A6CF847EA0FCDA0AF4937542 +:10652000C6AFA7AB87B436C97879164E04ED1D996E +:10653000DB0C5DFAD614F0D95BD0179DB7D433339A +:106540000378A3588E7DDDC02A1917CD6BBA99EE5A +:1065500046FB2D8DEB42D8235EB08B2CF687A7D45B +:106560006E179166CA6716FB4A6B53100E99EA07BD +:1065700052939B27D514683FC134DF9D0279BB1D20 +:106580002F0748C61B0279554BAC76B94C98DD0EE7 +:10659000CBE3DD8AE1EDF2E3C531DE0A3B9CA7DD0A +:1065A0002E201BAF883695A3B593C92B821F28F2E6 +:1065B000EE830E66E7E843E5DE7E17D5A3EDA5B7CB +:1065C000A5603D6D87224AD74EC2E84E126E9B1ED3 +:1065D000934ADD2FAA68B7198C5FA2CC9E52C9CA14 +:1065E0000CB417F9B1F8C2C7F9EA33247100E553C6 +:1065F0006902F1EB29DA1FB5EA1359A1F624F04834 +:10660000F50AACBFE39CAB53B0AE3DE5FA4CE405F4 +:10661000CE573B34E41DCB385B719E5DC934F98D98 +:1066200007F406EB5F33E22C157C59CDF8B8AB6666 +:106630005998C077AD0FE591BFE7E18C3B62E5C7A4 +:106640001459710ECC93D9E377D2F45DC197A0971A +:10665000A23E9B1D2EF84DF43F163EB279CDBC0CE8 +:10666000D6414B543140FEAE95482BE88596E8B4B0 +:1066700046901742DFCBEE6226170BB558860ED137 +:10668000F2AC542F19F9C769A1C244AF85DDCECE53 +:1066900001D04324ED191AB4F08F735F79D2C5F796 +:1066A0009573C95CE09B37F4E6706694FEFF903CFE +:1066B000ACA33DC0F795CE72318FB584BCAC16C289 +:1066C0003C53CA27283E036E0DF127E6271776159F +:1066D000017DD6EEFBB16E93635C7EAD95E9F6B3BA +:1066E0007638FC4E7CD27132388E683748E1B3CAB6 +:1066F0000747FB6CBF420ECAC3ECB70237FDEE6D15 +:10670000FC6C6A32C5C3DA0797323B84CE03E4AF30 +:10671000805F8C2BE6911DDF319F7CF318AFBC7E30 +:10672000A3715B2798B2C73C46591CF8A4697A2329 +:10673000E81761BF0ABA2C5DB4AD6824BF4296BFAA +:106740006462E8802F6A40233FFDBCBD1ED6D7851A +:106750006EEF8876E058FC33C7EDE09FC64B3E10E5 +:10676000FE590AFC03F8E2F6B398BF13DF2D8D1E25 +:10677000B453F2E29BB717F41BC67FF9DA0DE79327 +:106780009523F209EF5FF08B18E7BF0BEF58FC4140 +:106790001909EDC4C9F02785A78CAA55827A8EED18 +:1067A000234A38DCE555432EE02323AE2FC0FD43BA +:1067B00073EC4948EF28F845F16A036A34EAA047C8 +:1067C0005CE604D7BB679FBEBE117014B7C82F0D1F +:1067D0005AE6174ED8F3C17A7B5E25342FE65D91D9 +:1067E000EB47E77C4D8C58CC6A7FEFF20C34D3AD8D +:1067F00023E9DCBAB82142CB7779078EC3D6729BE6 +:10680000F7C286269A0F960BBF0CED95F251AFDBBF +:1068100060F8A96F423F4798EB0F323878780AE565 +:106820007FA54226DD347B7050220ACDDF1C95D334 +:106830002ADAC84DA8E7431C36D1CFCD8387B0DF15 +:106840009DF55B755BFF51563F20FA375ACFB0F686 +:10685000FF36E5F901B047646A4D007C6635C22316 +:10686000FADF59EF2685600715CB6950FEEAE02074 +:10687000DAB732194A41AAD69B1990FBC48C30FE74 +:106880001A635F22D7B1FDBC5CD735C05266BF9397 +:10689000552E271F7F1BF858A5FB09E017B19F1045 +:1068A000E38CC977A75B0FFCAD747E37105F0CF4E7 +:1068B000DD44C5747968BEAD94C4B6D279ED772550 +:1068C000326ED0AF2B5A3FBD8DE65D2BDBA60F524B +:1068D00038DAE808A89F4D779AF969293FD3763DC1 +:1068E000F14969E8479E503A11E0ED31997D9F0FDB +:1068F0008E1D4932ABCAB23FDD21F769A0FF77D4C4 +:10690000D46A23B5F3479559551368BF4DC6247D06 +:10691000143F61FE7E97D9FAAD70274EB8270EEF6F +:106920009F10B61EDC94E8B08E7C815BD17FE4239F +:1069300096755291AB975B6FF6FCDED59D684F451F +:106940002699335D743DAC9648265E4FF37EF36125 +:10695000582F974AF73404E8FA88A8E6F56E5ABE2D +:10696000596A6BD849E9163983A0D068697FC2B5E6 +:1069700005DAD3354FCE236483F4BD2DA91A867F63 +:10698000B0CB3A9399F4CB1ED8E71F4EBF4CE77BB0 +:10699000CACDF66BFF87F3BF2227D8FE2E4AEB59EC +:1069A000F4AF8FB233DA59D5B49D55CE46995C8297 +:1069B000BD0FAC17BA6F2312EC879A8732208F6411 +:1069C0007D98DF22FC92850E9A64F75B74737F8555 +:1069D000C8FBB49F97835D96951BC9E3E500776775 +:1069E0007210D35DF220F251CA2404F8AA3BF96A6E +:1069F00039CC4F37D9B8BACCE62DDA9F27B1F98A0E +:106A0000F42DB2849820A7F57B711E3A9F87BC397C +:106A10004CBE5808F99D7F8675A7EBF25FADF2CEAC +:106A2000A93FCB25AA3F01E75C7FFADAFE88700B0D +:106A3000FFBE8FE39F9CE865E388FDBB149809FEC9 +:106A40001BA147E748CC8F22DAE9848E6BDBB73095 +:106A50003824CE2F625E4E78620E78C63AA710E3D5 +:106A60009F0775293D82670A3937C4F65FF399FF9E +:106A700058F8C34375940E56F91F1DB4E56F94186A +:106A80003FF9AB293D2C7CB437D88DFC7D6A70CAA8 +:106A9000A87E28E0532B1F005FC66A185F5AF56E68 +:106AA0008E6F8E23DD7772BEE8E47CE097FBB09DAD +:106AB000BFFAB80D0E015F3036E898871DDE00651D +:106AC0006F90A73BE3AB703DCB2B987F94AC224EED +:106AD0007FCEA781EFC5FE3F1063F2F74689F94BE1 +:106AE000F77A52D156F00B14505AC2399627D11C5E +:106AF00047BF18295E66F1071CE6EB21DBAE81CAB1 +:106B0000035AEFD724B14E02BEA88906ACEBCDB72D +:106B10002A415C46AE7E17E03700E53D29F7941C1C +:106B2000BC5FE0F375C22DE0F5F0794696AF42798F +:106B3000979D67B3DD5ECAD6CFFA97E3374A163F13 +:106B40005656CE5753398F3C9ED6965AE6D75D3D62 +:106B50003EF9BE53265ED09B3D01B7B70AD679CC2D +:106B60001D9B6A809EA83D6CD071FCC148AD751F0D +:106B700075BEB6E026C9224F0235B43F0B3DBB417E +:106B80000FBC97F123CEF19735558C3CFEDD12D327 +:106B900093AF019E554EA7AE8ACF69802F273CA2A6 +:106BA000DD55EEC47D56B8D552E6371F416F7A9752 +:106BB0005AEC85F1EA4B671A709138C8A5F640ADDA +:106BC000BEC6221FF67339744A35F7C37C9C708F9A +:106BD000579FE61B775BC43EEE2F73E3FE08F0F190 +:106BE0004B2E8F7AAA95A557513CCAF150CA0FFB7C +:106BF000CE3893CBB29E413E94B97F4037197F0A7D +:106C00003F83CE61EE3099BF80EE29515FC8A692D6 +:106C10004E81DDD1E36272997E067F4180303FD59F +:106C200044EE2FB85AAC1BABBFAA12C663FE0227B4 +:106C30005EF29EE771BFED9A7ABE908871E92F29C6 +:106C40005DAF3DEC41BB92FC8DD6B6F8CB5EFACD84 +:106C5000EA25B0CFB896FB1FAF24F11014BE4EDC6E +:106C60004D00EFEBE448689685EEEF48EC9C8E749F +:106C700079D00E4FD1FF00CEAB7A3C2F59CFFDAE6D +:106C8000D96BCF5F4D9615813D77F5AD1E92A6F875 +:106C9000B8D661AFFC1EE40AEDF71AD2DA09F4DEC9 +:106CA000E6617EEF3554314DA0FA71FD77BF326752 +:106CB00035E29BF9DBFF40F5B7A1E6E0BA2E90562E +:106CC0004C5AFE9BFE592B3F44A07DBA7332ACA3B5 +:106CD00002E6A771F2C5155D76F8C682DF09AFF04E +:106CE00023E58343DEE732D323F06D4876D9CE53D4 +:106CF000F3C51F88B88319A008E938A90504FDC7A2 +:106D0000A95F05D3ED28EF58DCC158ED6B65C65778 +:106D1000EFB5FD9C31C6EF8EA4E320CF85DFCFAB6E +:106D2000C54D8625EE9F8E8E515E357A793EF8965A +:106D3000166878CE27E0A4F6F242798479BEED3663 +:106D40002F037E5601DF526EFF88F633A5E34639E6 +:106D5000D0057AD21BE887C301E235641BDD37C258 +:106D60001FA86708CA457FB5BDDC6957AF9445FCCD +:106D70004006D759089720ECDB0219D473F5F26B63 +:106D8000D9FA16FFD4A628952B13F2CB3137D10CA4 +:106D9000D82B6A5C5EB8785EC0F1468FAB09D6CB63 +:106DA000262A8ADA6AADFD2AD8EF3079F1375A3EC1 +:106DB00087EB0DDCF7C7A240CFAE24C1388E764FEB +:106DC000FC629877FBB31201F9D55ED04ADC80D71C +:106DD0003262C0F9B05A150FE339CA3129E2AEE088 +:106DE000C204E22A8A9BEE05BF7C8BEC617890633B +:106DF000E84F57032913E2273A3D8968018553F983 +:106E000077160FD0104824A09D146DF6A8B4DD8F1E +:106E10001EBCA219F2D74517CBB0AFFE0CEFE7F5B9 +:106E2000071E9E43287C9D0F054906E5405A017BBD +:106E3000F1BA7E09CF7FD67E3B88E35FF7C835DFA6 +:106E40005802F8F9EEF9C62B286FDB91AFAE7B6CD8 +:106E5000F94F537C3E1AA547FB167EAE968A45979E +:106E6000D3A6EB55F269B093C4FC05FE34A307F535 +:106E7000E275FB0AF03C32BBCE655A1FEC449A2EF9 +:106E80001B412FDE2E33BBFFB5A0D20CF0B9F61D8F +:106E9000BC1CE1EBBBD403F37295B692DF0640EF66 +:106EA000B3F9D17A6C7F71BF2B3D9596BF76FF3DCC +:106EB0004AE53930EE3DCA1A3C8FD882F5049CDA97 +:106EC000BEDD29906F5A955E095BAA85DF7E280496 +:106ED000FBDF8DFBA40CECDB698AFB77AFE176C4AA +:106EE00081980117A5FB06CE971BFAD7A3FCDFD02C +:106EF000B703F5DCC6FD76B947F18A7EBFB5CF4949 +:106F0000B12590FFCE7D2183C2F38781AF8700FF3B +:106F1000749CD50A5D3F1EDDBE2EA0FF5385C3FBCA +:106F2000236408FD5C1BFBBEC4C6EBFFD8EFC03F6B +:106F3000BAD1215FFF007F140FDF6F3C21DBFD879B +:106F400064DF84D3F287AE7DE8ADBB5374DCD71E1B +:106F5000F9E3DD1017B0EEBFFE72F717605D3FE199 +:106F6000D5413F6C7CE0B7777F9EE2F3F5FDAA1B2D +:106F7000F8E3E40FEEFBC61D347FF2F9E9B5209A81 +:106F80009EE3EBFAE4C3EF1419B49FCD3F583409E4 +:106F9000E6BFF9D18593C828F6C949CA4F69D50A11 +:106FA0004F1AFB31F6D3FE26D1EC019E3AE872A8C7 +:106FB000FF5039C0F7FA7135066B7423FD06EB7A82 +:106FC00043DF7A3C1F843CEC1B373CB81DE36F86E3 +:106FD000E33955E2C643EE4C091C1D6FE85F7EF1B4 +:106FE000F975907A6206F4478650CF3ADB6D3C46DD +:106FF000E9796E7EFABD45FEA6809CDCF8E097D864 +:10700000B87D947EA1E1F47B1DFE98379C7E7F7550 +:10701000D0EF2DB2EEAB774061FF8411FD4262BF2D +:10702000B8FED14B46DD579E74ACDB7C786EE17EBA +:10703000C243D430F3C0BA7BE49BDFB8230274565A +:10704000634B80EE0FBD554E287FBCEA19BA1CD6A3 +:10705000E3D00F54BD97B6B9EE07CFA15E3FF9E874 +:10706000CF1403E3A4A86949EDBE9324FB6F00ECA1 +:10707000C00D7CBFBDF1DE60460DE5E8B521BDB4B5 +:10708000C908E1773C27DB9066FCBF217D70856BEA +:1070900004FA7DD853C9EC8434F3E7AEBFF7970AFE +:1070A000FA012D7475D5033D5F5C0CDFF3D153CC31 +:1070B0005F87F9CFB5D0F55EB66EF3ADCF93F7A885 +:1070C00032E845279D4F72FFCAC6B4EBB991E82E4E +:1070D000ECA2F1C62BCEF338FC08E9D3F3638F3D65 +:1070E0009FF1E1ABDA6360BF4EBC6D29A6F219F4E3 +:1070F000544849839EEAF418CFA5803F7EEC21BD19 +:10710000B4497B680E3146F0AF76807D383D979765 +:1071100003713CCF96233AEEE79CF15C1EBA9D309A +:107120002CF01C7A61FA248813F4B8D979E7B68375 +:10713000F308E805482B209EA96D56ACCAE2B79229 +:10714000A2313C0755A246C348FD2B6D73B07E7635 +:10715000BF572FF67BA9EA5E9ABFA9AA2806FB842F +:10716000A0FEADE8419ADE543FDE7DF410FA336FA5 +:107170000EBC81FE72B18FBD797EDE7DF40D9E5115 +:10718000F6D1378D73FF971D3FE21C3FEF3E7A3BF0 +:107190008CDFC5E36C86EDB3F400FA2526F375FDAC +:1071A000650FB3DFCB48660B61764F5CB39E9734B7 +:1071B0000F1D047FE457969E58BDC680F88D0E3C87 +:1071C0001FA1D640DDBBB346E367FBF988E666F650 +:1071D0001189F1739A5C1C0E1B8FC7437DD3C3F4D6 +:1071E0001285E7E135F4CFBBE60EE279CD1974489C +:1071F0000F85AF628581715F53560D5CBB06F9E167 +:10720000BD9DD764F965BEF0B70CD9FC2D37CFFF13 +:1072100060FC0307F8FCE83EFD00D0C9499F9BC70E +:10722000E967C937AED33FF04C6EDC67461A7798F2 +:107230003D7D9A712FB72F0FA19DEA3FE14239B2F0 +:107240007B7908CF3902C41703BB3010305D1E5A5A +:107250007E43398951494A3C2B523F82D0A2FDAE30 +:10726000C4AF3CB47DC3AF7E1C0579B0F39CD6336C +:1072700088D56F53673FEFD8E538EFD855F7C19CF5 +:1072800077EC7AFFCE3BFED3731AE71D52F056F42B +:10729000C378C779DE119960CE74C5800C5F5EF843 +:1072A0009368EE9C23A85CB7909D73103CD7285040 +:1072B000EE6A4FD1FE2325E6C350FFF6CE3B1646BD +:1072C000E0DC630A2BFF1394A3DD6FA660FDCF51B2 +:1072D0000DE41335A1BC08FA5C2D4D31BF50940C60 +:1072E000823D27FCA76A7322C3E32D2729106FA6CE +:1072F000F71C8465A44459DCE5220890A7747BA39D +:1073000094E079623E7C7E99C757F650BD025B07D8 +:10731000F54AD203FAB92BA9E3F79B9251FCDE9D03 +:1073200034317D86C4AB148CA361F1597BB95FA560 +:107330005D212D901E11F18D0AE3F75CCAFC2C87AC +:107340005E508BAF04B8023EB443F3C1D599AC8E06 +:10735000C1F83B93314C6F49D6C7100E57DA80C342 +:107360008EF39492768DE25997F462C877CA467B81 +:1073700023CDFBB85E938C1931D9221FE72B4CCE5D +:107380002A6627DA498AC9CA757EDEEF1C7F41AEBC +:107390003E9E5F2A3AABBFDBC5E6E7AC7F019F6745 +:1073A000CFC1C7516FFB6319E64FA7FA518673BC73 +:1073B000833F2660E7757932186FB6A78CC440CF3B +:1073C000AB6D35BCFC7E5249DB2DE5FDF8EA06903D +:1073D0008EC1B63A2CEFF2C63EC1FDEE3C2E98C5EA +:1073E0004D7679088F0B367AB7D2FCE5BC7DD0A0FC +:1073F0002C4EEDEEC2B60F23DC725D6A80C78D5F46 +:107400000EF4234F39FDE3CC2F5EC2FDE925F501D3 +:1074100013ECCC92F9450BC02E2B31CFC2B893920E +:10742000AAC06ACCD7175D01F92FBBF4A58DE81768 +:1074300073639C77497DF555ACFCBC6BA03CA514EF +:10744000B0F3F4054DD578AE953D1F1FC0736C5257 +:10745000DFE4B69E5BEF8A558647DBFFA0E613723A +:1074600013D7A50F7C29967CA1233FD951BFD251B8 +:107470007E96A3BCD6966FE3F826750AD353FA64BA +:10748000F4CFEEE475C8D064063FBFEF7130F480EE +:10749000F6620D4B5FB2F05537CC6B1479B90782A9 +:1074A00066299E4AA8BD462C762CD17C39782A11B3 +:1074B0006FE85751E5C6149CD367E5451D95173312 +:1074C0006CF222653D6FB1C88BAF00FDDFABBCB87D +:1074D00089CB892E2E379E2189FB40FEA8F54C6E64 +:1074E000E4E442AC05E4E14F3BAF5928CF43B98017 +:1074F000E7BA24754D3BF86D3437CB3FD4F9A985F5 +:1075000020FF845D2AECA69BE87A81F5006945702E +:10751000B85D1A88666C76A9F86EB147C747B77927 +:107520008F31BAD114E816E27261C718FC08FE1D4B +:10753000707A75527C40EAADF799B02F0B7339E43D +:10754000A5EBC7B0DC4B185018BDC08F62A5B31AAD +:10755000B5D09958E84C1AED7AC141678AB730E046 +:10756000AD28C3E48B133EA5ED4CB6FE29FE200DDD +:1075700044630DB0EF1472C4A3EBF7807FEDD6E542 +:107580001BB6809DB06D42E14CC0E72B5C5E93FD65 +:10759000F67337D12F9523AF001F7923AD849992CD +:1075A000EC1CAD28E3C5900C9F41D25E17DC03A014 +:1075B000722C08F6FF400AE49E1C2506F89764909A +:1075C0008BB372F352400ED2BC5B3305FF26C8C8A2 +:1075D000FAEEAD91F49D530F093867A84C1E8A143A +:1075E000CEF107475987E21C5FE0D5571DC3F8F17C +:1075F0005D1F2318CFE25BC2E2EB3BB95EDAE389A1 +:10760000BDD801FB8299EC9E4B17E829F8FEE4E314 +:10761000B89F0AA80C8FFED23E027CEF976315B08C +:107620002E52F2CE85A0AFF678993E11F5051C9149 +:107630006C3B462F279C513E9F9D79F451052FCFDF +:10764000C6E1C4981E934B19FF9454AF4451281BB4 +:10765000ECBE15A567850A7AE1B05D2FA8EB7A909C +:10766000BEBBB85EEF3EF83CAEC760692BC6CF9F8D +:10767000A5BA6C71A5BBBC8E7A548FAD3E87D56F11 +:1076800040BEA37C4DBF9FAB3279A772FDA6819E01 +:107690009A70FA7C3F4765E73B1A97831AAF7F954C +:1076A000C79CAB5ACE433AE3EBE278FEA6F1FB90DF +:1076B0005A28E50727FA83C3CEC14D15E27F484F0C +:1076C000CA55913B2F1E7E5FCD1947146FC038A25B +:1076D00008B3AFA95D7D018CAFC6F3C41165CF9728 +:1076E000995DDD0D767545CEAE1EEF39F3E9DAD53D +:1076F000E33D3F1EC5AEBE4A9D3DBC7FA75DED0D7F +:107700003446AF26EFC1AE3ED7FCB31BEC6AF2E3C2 +:10771000853F81F8A1E9E6C3900F440E2C84F8BAA6 +:10772000C82CAE47C84F17C27A8ACC25A8E23FA71B +:107730000EA01DEDF19A37007CF7837149E9E089CD +:107740009B26DEDD7C7064392652CF24163FD05153 +:10775000B052C7380207BFDCCCF9D51947F07EF527 +:107760003F427CC26ED5129FF08F9ACF0EAFF95573 +:107770001BFEC6195F41D7D1FDC0FFCEFB5359FE9A +:1077800037B2FE21CD1A0FD0658CD72F9446FEEC70 +:107790000EF476555AFC32DDD579FD42DFB3F2ADF9 +:1077A00073FFDD356EBF101F3FE21C3FAF5FE87F08 +:1077B00031B9447A006F0AC75B47C1D588D751E217 +:1077C0002B8EAA16F9AA441DF115EF53BC8A33CDAE +:1077D000E73F7959CDFA315E5647F0638C57CEE4D6 +:1077E0001BD7E93FF94B6EDCBF8C346EBEF8854089 +:1077F000452C8E7660B11BE3EC3AE7C77A40EE7613 +:1078000096B995AD15B97B0E629C1A6D0AB6EB88D8 +:107810002A6EF057771C5E84E7319D9ED6263CBFCA +:107820002C70EBBD15C3E19EACB1F339A9CD3FEB94 +:10783000DE51FC7292C2FC701DFA9308977F66A419 +:1078400000EEDBB51FFCB7C312ECEBA245155E9A48 +:10785000AFE7FD41F0E26F2CE7BB845038EAF07EE1 +:107860000C01FD23B58570BCB1E05334863FA9CD32 +:107870003BEBDE51CE85DF6FF8041E276A06C74F4B +:1078800000C71778F5803144E9D55123E3F98667BD +:107890005065F7BE63EC1EA59023728D1BCF1FA908 +:1078A0007C99A3C1B807ECF2C7136076A84B63F1CB +:1078B0006492B755033E14F71B020919F5943FC1B2 +:1078C000F49598AFE013BF87C58F2A0119E32C34D4 +:1078D0007EAE239D9F8963BCEFCC2A37F0CBBF736C +:1078E0003C769A6C5E9D87D9B95D0FC4C5D5E4C658 +:1078F00021A4EAF65575E03FA8ACEDA653BF96B7B4 +:10790000534800E7A7703CA8275693725A7EB1C629 +:10791000CF2B2A4925F0EFA6864D3F62F66D4A1D12 +:10792000E9DC235FBC97D4C0E2BDC84C268F8851E8 +:1079300037861F919D030B3A08FCCB35ECFEA5075B +:10794000EEF1C0FD3C93D263468E0E59BBBFDF699A +:1079500047313A1383C5654B01760F4A21F297569A +:107960005558E7CFF856CC7FA3C6CFF1FE1FCDFF09 +:10797000329025A06F0F9D79FB2A884330DD312F8F +:10798000B42FB5F3B73F20E3799BE02365F0FA4CC1 +:1079900019ADB7FD9F057EE374E3E1D9F9F019F065 +:1079A000278C43AEB7DD2B3C83DF1B157E01BABCB1 +:1079B000D0BF5C5E2F231F9C51BFF57A7788B02320 +:1079C000443A64E9B5249D62E5881FD1BEFC8BF67C +:1079D0007747C257DAF393799C7229B17CA7FD4CA3 +:1079E00086F8B119506EFF2ECE011587DC16A9F36B +:1079F0001CF07BDA7B8B276E216606E54C94C98FE1 +:107A0000F672627B5FC089CF2283DD0F9FC4EF8750 +:107A10002BF3D97DE04292403F05A967716332970D +:107A20002BA2FD4FB95C50C99B26CA1F3288F72D87 +:107A30009CF41074D86E303A00FD8A6979015F7742 +:107A4000DB391DB46282F18105832C0E8F34F2770D +:107A5000445CC485F1CFF3EDF857F83B31853CCE5B +:107A60005B73E05BE1717C0AB1BC4742BFBFA1B967 +:107A70006CF1DEF9F0E9A4C76B821E4112B4BD239C +:107A8000A38FCCB7D9F76304DF8E73BCFF14EB323E +:107A900040C79BF21EC6CB536FF87AB2D36B31A7A7 +:107AA00057B741F87D1EB204E855CCD75B779D9D52 +:107AB0005EE29E3BE1EB43A3FF01BD2635DBE975AA +:107AC000BAF411F7A97FA8C5277B711F61B8F03DF3 +:107AD000962BFDE807D3B27C75E0A04261D95145F1 +:107AE00062B025D806420FFC0AD71E4757EBE4CAFE +:107AF0005EE6A7855C11D8110CFE1DD165A3FA3393 +:107B0000E1FD0678B7E72678C7677AFE7A212595E2 +:107B100000BFB61265EBA678B3817673A89EE1A785 +:107B2000B4D1E885B97CD2EB12FB6FDB3D665C0912 +:107B300096F7174A6B59BBCE0A92067F787433B317 +:107B400023681EFD43059BE58C87E6A3B1C5BFC72F +:107B50007D8C9C22B00F893AE45241EBD3CD2E0CA0 +:107B6000B6B3E095F26B81317439D2A9D1FE3E4FA4 +:107B7000BEF99D6E0AE72F2F4DB5F255BA09EC2DCF +:107B8000ED988471B65A3D15852148F522185FABF2 +:107B90008F05301D6C6862F97837947F8ED34F2B38 +:107BA00065F7ADC2C3E2B546C65F18FEA884F718F4 +:107BB000185E041C61075F39F1E1CCFF77F1007CAE +:107BC000F392E55EA658276F6D266932825D2BD24F +:107BD000B25332C9507B2238BFAF0BD7558D9B00B3 +:107BE000FDB5F9ECBDA63BAEFD39C65B2886EE922D +:107BF0002CFEED762FF3B3290641BB8FC8866B7937 +:107C0000D05ACEDE59F9A1666EF5A2FFF08006FECD +:107C10009CA09C6986F51D8C2904F45EB04561EF3B +:107C200046C0FD298BBCA8F07A6CF1125979112558 +:107C3000836ECB3E50E8853BB5C46EEFC4DC3D247B +:107C400025CAEE0309BFA5F0930FC75B1FFAE585B0 +:107C50007FFEE624895559FCF4E17AA2039F84EB68 +:107C6000751DF8245C6F14B27CAC10F2FBF979DF5F +:107C700083FCBC2F9D34307F77B21AD3BB9231FC8A +:107C80007E47B21EF37BF979E0EE6413E61F48C627 +:107C900031BF2FD98CE93792094CEF4DB660DA9B92 +:107CA0006CC5F4B1641BD6EF4FA6307D24D985DFB7 +:107CB000FB923D98FF56722FE67726D398EF4EEE53 +:107CC000C37CB87E49930BE1F6E1B9A84EF5AB6DE4 +:107CD000FF77A517FDF9226EFEA9176ED0004FDBC6 +:107CE00079FC7C3EBE71C633CE1BB4BFEF704E5FD5 +:107CF000A12D5F919A6CAB7F465BA5ADBCACF52C1A +:107D00005B79494BAD2D5F9C38CF56BFB07181ADCB +:107D1000FCEC7D17DAF267A697D9F2D3F77ED2D6BC +:107D20007E6ACF1A5BB91265FBA5295DD7D9EA85B2 +:107D30006E49A09C9D7B7C93EDFBEC81CFDBDA9FB1 +:107D4000E47256AFA72601C4619ACCEE51EBE9EA82 +:107D5000817C690AFDC8B43C0A7915E4D2B9580F90 +:107D6000E942CBD9FD06D263C2DD2FB99EFB9F4FFE +:107D70006C1FE0EF709D447D74CCBE6FF010BA9F15 +:107D8000A8C07750589C0A5D279F8038554DC67A09 +:107D9000DBE120C0A0FDF8345C4FE25E2089C9B869 +:107DA0000FE43A364B57AD9464BC2017C53D343AC6 +:107DB000D0BBB4CEACC32C2FE63B3363CF9FBBDF2D +:107DC0009E0FC6EC797FB53D2FCE89882C635C6B06 +:107DD000F8D814DCEF117EEF59E3704DF5F17D63B7 +:107DE000323D17EE7909F8158A677D06A4464407E7 +:107DF0007D53C7DEDB11F7F914BA5E0D2C8F1542E7 +:107E0000AA996C5EE1131F3D0CEB41E3F6B31AA592 +:107E1000FD5AE8A8CDB7C3A944D3C817AA037EA7C3 +:107E2000BD64F81CF1B0A7692F9FB69DC4EF8BA865 +:107E30003A273C8F1BC790646A9F79CAE438C8D13F +:107E4000581D31EFA169A99C715D6F9177737CCC4E +:107E5000EFF03B9FC1EE7B93DD0D68CFC98962785F +:107E600077ED367E4E51BCB9F5D737D6C1FB4B9373 +:107E70006D71D697733A3C59EE43FBEC334B997DC9 +:107E8000361065EF44059B08C6250423328178E847 +:107E9000E07115F50EA933F0BE30B8FA00D657934D +:107EA000A4F6CAA9705F43C3F4B5A48EE9A1F20B8E +:107EB0000F7E8456DA541630C04EF79CC1EDF602A0 +:107EC00005C7F96BD9D51867A3265BA3E02F3899AE +:107ED0008C62BBED07CF74C1F99D6A9E6D3BE7A430 +:107EE0006C22D1BD03856B00E3DDD5435ED46341D5 +:107EF0005DE9F55AF4588727518CEFAD7D42C17D7D +:107F000046715D8F0BCE67767B99DDB3DDD75A0D59 +:107F100071F2DB2BC9A7978EA03F3EC4F102375BFD +:107F20009522DC0FE0BF58534F430874F0952406A8 +:107F3000CF4C79B6D1E50CF9D97A1F9C77956A3D7B +:107F40000D60A7945EA91BED06D467EF2709FA78A8 +:107F5000BC24FE7000EA313ABEEC63FE99E2788FF1 +:107F60000BE8D6FE283B677BEA854B75D0AB6F44A8 +:107F7000AAD0AE7CFD31D504FFCAEB85ECFDA8D7B5 +:107F80001F9BFB34C89B3F260F175AEF57BEFEAD11 +:107F90009FCDF15082BCFEC8CFE6C8C844699BBEE5 +:107FA0005DFFEED13920F7520B48752B4D37EA0AA9 +:107FB000DE63DC086B80CD0BFDA7B715299DD07F54 +:107FC000D124F74D904E0854209CE29E0821890A46 +:107FD000F463CBBCDD610FB66BFFB10FFBDB34B5D7 +:107FE000EF10E065D3221DDF4D6A2F30DA03101742 +:107FF00051C1F67D9B2E48A9E550FEC2242C2FD0FE +:108000008EE23D5B25D30A6425BB5DB14310F2953A +:108010009A4AF01C51F807DEAE20D51554BECA0BA3 +:10802000FBD0AF36147413881FDE219B5210ECF680 +:108030006A82FD8506874C101FFAABADE782DD7EB4 +:1080400083D4BA1BFC2D53032CEE579CD36C79E1DF +:1080500086E9A3D911227D02EC073AFE93490D531C +:108060006A1FA03D91494631BF276960FE8E643585 +:10807000E6772463988A7B2A13F97ADECDCF654BA5 +:108080000CB70971E01365A2C1FDAB92133F6A867C +:1080900038E5123AE530B5D9E7F3F7BEE081366846 +:1080A0003F5F67F2EFFC08F3379C1F65EF0109F9AA +:1080B00021E4C5FC37A9BD68F39BD37C359F075DE0 +:1080C000F813D7D9CB777BFA70BF93BA80E1D9D9AF +:1080D0003EC8E12BA4E6A4543BBC3F2A1F6CF57BB1 +:1080E0000C77CA73EEF8EDDC3B1D76EE6DEBE96CB8 +:1080F000291FDDC6E31FEE5C3F27BCC6429FBB1CA9 +:10810000FB83BBAE9F1386FB6BB75D4F0C3D6CE9E9 +:1081100087B7BF2B79B8A8712A5FC4B03E37B37355 +:108120007E51AF34C5EE7D887C4FABDCD48B7A3783 +:1081300081F77AB7814CC7C73C262E324BB15FCC52 +:10814000FFC6377B119CB3156F66EBB73850D181F2 +:10815000A2BF8EF4495CEE204373B98EF62DC5DBC9 +:10816000FF340B1B75C03BAD0760297509B280F663 +:10817000F39186DA8332CA13FBF7275C6E84AF383B +:10818000DAE35A40D375BEF89B3E38AF2AAC6FFF96 +:1081900036ADFF66BF6AC078773CF90EC6CF77BCB4 +:1081A000A368B00E8B0FBC8871F51DAE41055C9ABB +:1081B000117FF722883FA1F2F14C50AA117FB453EE +:1081C000A67AEAB650E27EA664BB173D45E56B9100 +:1081D0003A7827D40FF949AA89CEF709CFE0A7C08A +:1081E000B9D2483AB7691FC6F21288DF53697F5D7A +:1081F000F36939E8048C67E9D806F879A280E523A9 +:108200003BDAB7A5683EEC67E7D324C0E44636AF57 +:10821000D3BC657F91FD2EB3EF4463A998D7FA4391 +:10822000EF3C5D02F72C0EB8FA2054A5F8C06E178B +:10823000CCAF78FF6E8C4BD89F3CAC77083A0B7C68 +:10824000D3253F0FE27FC0FF9C76A52B5DB8B5C05C +:1082500077808A6B4C630BD02BED8941084E2AC086 +:10826000E4FEBC41DA8F85AFE7C9FC5DA33CEF1F9C +:10827000A11F03E8B6939DE7EDAF4FF967D0FCDA95 +:10828000D555B55B285DF69BB736C07B261D8F574D +:10829000E07D9757FD2EBBDDC6E3715E73C4E3AC92 +:1082A000E3F1389EAD8C3FD756F415D5C27990973F +:1082B000DD8F5A5BC0F305F6BC9033FBF5544121CA +:1082C000CD6FD8BFBB1C14F506D27339DCC3213F78 +:1082D0009108ACF7DF1F9C17FE10CDAFA779D82A05 +:1082E000AFEF9F7921CC63FD4EB71B40BC88C3B96B +:1082F000A19FF25100E20E29C02ACCA7E76C99D2C7 +:10830000BF6767E3626F19218F579ABA9BD2FCC18E +:10831000C0C59DDAF934AFE8679299905FD909FC3E +:10832000B6F602375F3F2B9F36657E0F87E62FDA62 +:1083300071E736583F75CD1ADACB45EE389E179265 +:10834000236ED413C00AF329DEA5820EAD92C2F5C6 +:10835000A76D6EB447E0981BEEE7D4C9E4B04CD3E8 +:10836000DB1446C754A78CEDE8F72E4F21D0A5C7E4 +:10837000847B75A48BC9B7D907548CD7AB6B35AF49 +:10838000457FA03E1FEDE57292FD87F1DF67102665 +:108390006FE7EAA441A6F5DEF133FD57D7BC722D95 +:1083A000B49BB27AC533262DAF77A55378EEF83C4F +:1083B000D36BBE1DEC9D57E96781D816FAB9DFBDB6 +:1083C000E06CD0F3FD5E463FA920B1E33FE03CA85E +:1083D000A08A607941E28F706F6868A266C03955E3 +:1083E000C7A03BA586A13CA6031D032037F07CFF58 +:1083F000D82213E49992B81ED6E53EFFB16D10EF76 +:1084000049F13E45A378BF6FC7D16D1AA543FF164A +:10841000B344B7E4E7FE9D4A695C9747B799749DFA +:10842000CA05B7AC85754ECB7F08FEDCC70BB95CBF +:10843000E3E5759542CE517B9DCA01690B5FD7700C +:10844000404DE57E9DA57E235DD79E05ACBC838E09 +:10845000077484FD4B5B21CC8BEE93605E67CA6929 +:10846000D0CF4033B85FB5585A75D139F4BB3A957F +:10847000F9D77C054C1EFB0A0CF497533C611CC8D1 +:10848000D0B38134E0C357D0DAA342795915DE93D3 +:10849000F4A7593F9002FDFDFCBEA94B5F8AFB1972 +:1084A0006FF5E8EF19C97C7F203BBEDF5D611E2CB4 +:1084B000A3EDDB0697A21CF9AA9FDBFD65ECFCE2AD +:1084C0008678EAA37075E5ACA1BE0560FED49C1A5F +:1084D0007812D219E4CF0B406CC6B48243903EE0D0 +:1084E000674C5BABCF5C8822B0BEEF10BA858CC105 +:1084F000629063B3A5743BF85BC2F3FB241867D2A8 +:108500006555E33CE7CFE039FBCE801BDF736D0F91 +:108510003CA2AFB6B4DF16E0716A5C9E78B8DDD0DD +:10852000467A50FE50DAB377F5B87CF1708779F669 +:108530001D6F3DA6C33DBE86601DDAA12FF2F52F4B +:108540001D9C7731EC07149013B4FE5D5EE6C71FE7 +:108550002A267D10B72B474D8271743C7E75331FE0 +:1085600057C80B880734A713F2E8C7A72D003FCBE5 +:10857000A31F2F5A00FBBB5BB2F1AF438A781F12D7 +:10858000EF4F648EBADEA5F8FF6E931BDC56E46BEA +:10859000B2F95C09ACEF010FCAAD3D05767DBD397E +:1085A000C0F641DFE7F0527D8DF2707B92DD0F5413 +:1085B0004EF9499ADA972B036C3FAF26AE443E53EF +:1085C000A314CC0AD837A65280578107ADD44DD218 +:1085D000D6FDE2A910B6FFBE9FE1579CCBE78B53B7 +:1085E000D8CEE1197E0EDF8474D99CA50B93FF9B36 +:1085F00083E62490D38F2F60703BF9E02D3EAE725E +:10860000CA857088EFEF707E13EFFD28A7642C17E2 +:10861000F315F572E56C1E27758DBFE3CCD6ABB2B2 +:108620005F62F664541EB2DE9FF6C3FE614A6E9D21 +:10863000897BDDC3E7111B80384752C5E4ECF07538 +:108640009842BB47CC5335ECE5CEB8A72CDCA72627 +:10865000D8E6F1C0B0F9166139E813BCAF29932F01 +:10866000831F603D8FEB592F51BEA2F077FF84DD51 +:10867000833F29F63B07D8FB70EBFB77F3F822C367 +:1086800016B7B761FFF5E867DCF87220E5A6F537A5 +:10869000805CA6F8EACE0CBB4F9F293172F55F04CF +:1086A0005AC3FEA2ED9B73E15EF89B7A4B31D81F53 +:1086B0007E99C939D2ACA17DB0DBCBF63FA917A614 +:1086C000B37330FA3FF60E22ABE787778069BD3B84 +:1086D000F93E34C2FBEDF09AC7999D464C390AF138 +:1086E00032423E776F83F5779B42B2F21AE2676FB0 +:1086F000F3B17C3CD0BDAD83D90928BF23FE299DB1 +:10870000A9F96847F07C7927D869B729B143B07FC8 +:108710004D3DA61A00276D6FC23A4F7DB21AF7770A +:108720001D156432E0EFA90205ED9D8E47D55ED898 +:10873000D7AFF325C27E0BFE5E2FF87939A919B1A8 +:10874000BF94ADBFB2F1F547C7EF779F9B2B7FAAD0 +:1087500060CE2189B543FF02291D285F4DF3458F67 +:10876000A9784E7097C72E27447A4D40F89F74DB46 +:10877000FD6105E402F027694DB1F7B30A6D72405F +:10878000C807E55409495BE2265EE4F6418E2FCB2B +:10879000B1FCFB9C6E9D49638C712AF38C73F618B7 +:1087A000E3CCB08D03123CFB3EED28E70FCEFB6718 +:1087B0004E792A52214F9F85FE69FA0B57A23D4000 +:1087C000C7B96EB06F31888BA5054D65B0BFAEE4FB +:1087D000767BFDBEDD87C03C385F8B3FEA9FCDE2F4 +:1087E000A5F09D2835FE8A353FDE75F56080707FE7 +:1087F000CC30F9C9D615F75B6C0EC62E84FCE65D4D +:10880000957A6A94F311A77CBC68985C6172F2FD5A +:108810001B4FB2D171F8780A96E7F4618258EF8362 +:1088200088F137179B18276459E726AC7378C39AE9 +:10883000DB6D29900B7B4479EA9A4EB0D31E5772B8 +:10884000E504F777B9F6F00ED71E9FA8BFA9B3715C +:10885000FE08F5FD8EFA95A2FE8D58DF098F903B3C +:108860009007BB51FEBB9AB52B01BEDD6E477F85DD +:10887000A2BF2EEC4FEC17E6EED8F374AA0AF8B3B9 +:10888000A701F4FFD055C4E825600FC47C318B9E4E +:108890009CEB677A5D39E5B5E13987DF007E2751CA +:1088A0003B3D37BFF0D151DF17F85DD2FEBEC0357A +:1088B00089CD78BF79AE9FF1690BDD7140FF2D77CF +:1088C00049B6F5FB2F78FF59E03D338F1D54C3D6D1 +:1088D000F73F1DBCC579E02DFD87C2FB7958BFB4B9 +:1088E0007CAB8FC9DD457AEB41B80FB3C870C5E0EA +:1088F000E9FD45B4AE97AED98F426C064D17C92439 +:108900001540FB25CDEAD33CF84B2EFEFB675EFEFF +:1089100008BE7F63A21C53F918E23DF0EDA5CB46DB +:108920003D4F11EFC574F3DF3F72967BE1BC09FC4C +:108930001DD33F4EE09E921C484497D1FCA7834C28 +:108940006F1D2C5E1C053FFAEDD337E0BDDE8EE2D5 +:10895000395190ABEDC1AB6DEFCA2BFCF7949CFD88 +:108960003F15E47116A73E8AF04B3CDE633BECBF3B +:1089700046A82FE2CFB66BADB84FFBA0E6F785F760 +:10898000697EC52136BFED5A02E3433BA3EF17BC16 +:108990001F262F215C1FCEE07DCCE0B44A38EFB912 +:1089A00085E353D43F189C8370B7172C8E025F76F3 +:1089B00014CCB1C12DE5817B4188CD7FBBFE8F8179 +:1089C000FB018EEFFC702F2623EDE3E177B1467AB1 +:1089D000A76CADC07B34817CF241C3FFE498781F63 +:1089E0001FFC7FE2FD5D1864E757DB0D3BBFC3B69C +:1089F000E2C3B5F9D78D33CEC05FEDF81D892AC328 +:108A00007D3ABFEBF05A92C5558DB5CEFEC0EBBD99 +:108A1000CAE3AFAEEB93F07C655D298BE31D6BBCC5 +:108A2000759E4CD168F721D6F749B6F98C05CF551C +:108A300041760EB5769FBDDDB569BF1D0FE2DE56EE +:108A40007493067ECCB74ADD04E2CF057E87F1C180 +:108A5000FB8CD7B1F8322F5EA32CCEECFDC6EB58C1 +:108A6000F05C18344E0BAF4E3EFDA0F1F8FF1B7FBB +:108A70007E01F0387B6C3C0A7AFC8B1F47AE7FCBC3 +:108A800069F2E3BFF0383A3C0F9C263F0A79B98F70 +:108A9000DF7B9EFE95CD472EA07AF068D3AC59F8C7 +:108AA0005E936C9EB3FC1C427E1662718CD3B91F20 +:108AB000D739DECFB87D71A469E17A8CB78CFB31F0 +:108AC00086F8983BF61F75E0B75B26A19FD3D9EED9 +:108AD00008D7D3DF0E15887B05C1D9B4FDB267A5D1 +:108AE000DAEE51E8429A245BFC2C9CA4D8E24A1DA1 +:108AF000F83E428C5D75E0475B32321C82CEC7E2A5 +:108B0000CBDF1B9DE3D2072277C682E7EE50E569F3 +:108B1000D239CDFCA224FBFB3167B1DFD7343C70E6 +:108B2000CEB2EC848A717ACFC227F63B5ACF87281F +:108B30003D9635CD64BFFB267ED75126183F74C5C0 +:108B40002D67A2BF95AC588EF55F0CD9EDBD2C9D5D +:108B5000047FF1DF719BB42AE5596D994F7558F880 +:108B6000FD5BCB008E7EC53CFB21DAFF918FAB31E4 +:108B7000D8F7A9CB97EC803895639F287059DF7B95 +:108B8000F91B1F6FCE2A66EFF61F4F78DC167BAC01 +:108B900038CCCA69FBCB0647C0DF296E4FAE4CB854 +:108BA00078DCAE59B6CC72AE5E19B6973BDB7BC3B0 +:108BB000212C3FC6E3259CE5321FBFB979F4F6644A +:108BC000C504FEFB68E634EBEFA339F1F73F4289B9 +:108BD0006098F6F79CABF585CFC27A6AD0908F8902 +:108BE0006CCC00B8051EE83EB30B7E3A54D0E9E2E7 +:108BF000921AA49380478C0747BC702E5867B2F333 +:108C0000E2421E973477A737BD05CF2BF8EFAECAE7 +:108C100014AE208E5F169E987F7CD16F44261985F6 +:108C2000F6EB53CD69E09F74CE43D43BFACEC28BB2 +:108C300000BEFE236E7D6BC5F0F93BE5D2B4BD7678 +:108C4000BE393FCCCE7722DC8E27726B59B3857E3E +:108C500073C35E6C3F5E7E7A0D64354DA7DDDAEA44 +:108C60003168BF97F2DF5180FEADFCF15BCE3FB1C2 +:108C700030E170A47C67819FF339265FF6F57EBEF4 +:108C80006CA4FDC1112E375E0955DBD6CBF225331E +:108C9000B7C14F7F527E2906F1D57FE4BC325877A9 +:108CA0002B65E6D7DEA7B496CD043E578CF5E0776A +:108CB0003EDD79087CE795A31CCFFDC7E31ED8D71E +:108CC000D4AC60FC7AC98A83EEF534BD87AFDB177C +:108CD000A1AAA59F3D7C7DEC5312EDDE18212DE16C +:108CE000BEED5DD5B8CED12FD915EEDF0EE7DBA4F2 +:108CF00083BDA3396DC59F3783DFBB5F617125CF0E +:108D00007E2988F72B28BFDAFC2091156F27215E7A +:108D1000608D129BC61E0567F2E919925807FC2761 +:108D2000E4D430B9D4B15CFCDEE5342B9D72F3643D +:108D3000EF400A7EDA975E16BEC2C24FF78615DB99 +:108D40007EEFE75CCE1F75EC1F571C67FB3B3A0FAD +:108D50003C0FFDC5F965F7C03C222D6F27210EF7AA +:108D60005ECE976FA52B1F83F98AF98B79AEE93D0B +:108D70006F1A7CBFB45972DCAB60EBED92257EFBC1 +:108D800077DEBE5A32D7A21FFD22762E24FA8B340C +:108D9000517CCD8079C5B7062B727816F85CA31A82 +:108DA00057677F4789C27B456FE01E7C77A27DF0C5 +:108DB000B3C0476F06E2E1420B9F7E356CDFF70AD6 +:108DC000FD0CF5406F2D930DCF48FA6B799334224B +:108DD000DC8A1A7B858C70AE9295070E7DA9BB7BD1 +:108DE0003C50BF99B4627A4C1AC2F404A787687FDA +:108DF00082648273410E3549781E78A27539C6BBEC +:108E0000ADF2F4056B69FA389777BFDC2CE1B9FF56 +:108E1000AB7C1ECEF12E5B27A52EA5FCB62ACDF489 +:108E2000F7AA75EC5CF7B256FB7CE8FA3B72018C52 +:108E3000F7EF6CBCA3945DEA31C895D915BF4E1706 +:108E4000CE84B8EDA3807BB03396F9C53B1DF83BCB +:108E5000A009F62779BEE98A1F425CC4FF0EB373EE +:108E6000A9A34D572C061BF69ABDE4894103ECA734 +:108E7000D1F57DE28B924DAF4FBBD5FE7B7E73402B +:108E8000DFC0BA933365975BE4E9D9857EA6CF56F8 +:108E9000B846F40F9D0587CC00CF7F492D23D977A5 +:108EA0006621C3E7257B476E6F160659F95D23EBF4 +:108EB000BB2F15F8B93EE92B03397F49F3C8FD7C78 +:108EC00053677AF1C4FADF5D06F153C7DCF6F77831 +:108ED000EED6197FA67466371CEDFD7C6731D06530 +:108EE000834B87FBAE6B261828373EB56E26C6A58A +:108EF000FC1BAFFF9160FC4DD09F571FDFF434D4B3 +:108F0000EF5F45622E23270F9C70FC8DDB2542BF4F +:108F100050BDF632E8B5083C6100F24A4EC7E07E2B +:108F20000180122E04BAA7AEC3F7B27B7D3AA33BF1 +:108F3000B57B69E5FF0B2A204AA0008000000000F5 +:108F40001F8B080000000000000BED7D0B5854D76C +:108F5000B5F03E73CE3C80016660863738233E50C4 +:108F6000510744C4C6C700926024C988A2F84AC702 +:108F70004708464092686BEF4DCB206890BCC8A371 +:108F800086B6E666A09ADA246DD0D2D6245E3B1A65 +:108F90004DEC33C4476A1BD390D69A688C2169D2B2 +:108FA0007AEFF536FF5E6BEFCD9C7300C136FDFEA8 +:108FB000EFFBBFDF7EFD76F69CFD587BBDD7DA0F59 +:108FC000FCBF95735B09219FC3BFB984586C122104 +:108FD000CE70DD7F9F4C421682FF3EA7FFBFB33DA0 +:108FE0004A5327635C06924FC866FEDB3BC4534B73 +:108FF0001C8404CAA26C7BDCB47E9F1C9A4BEBBF22 +:109000002B8BEA90DDE1712F3510121A4FC8C9B2CF +:1090100069B5248F90CFCAA20CB214FEAE2F2FF2E6 +:10902000F6EF3758B0BCAB4B0E986308A92963A57F +:109030001E0E7DFF1A6328C1661D7AFCDA2EBACE99 +:10904000ACF0BA4E962D8AF55B01FE69D16B06E94C +:10905000976BA38B994EC886BDDA7EEB835AFCBC16 +:10906000731F1B67A879DFE1EB3A0FEB321372CA6B +:1090700040AABBB269E95B14BB263BDCEE061D5D72 +:109080002AD769E75DB2523BEFC9BFCBD55D561811 +:10909000A72972B5157EF58CF34513B217C6877AEA +:1090A000F33442660E0D17218DB83E01CF8952066A +:1090B0000FFDA7900442165170888B90320ED7890D +:1090C000D269D1FEEC81EB3969E8FBF50CE087FF52 +:1090D000503C7B68FBB1EDAB8F24BB109E5FE7D1AA +:1090E000DFFD9CFF2A75EBFB47F98F34C713923CD9 +:1090F000709C30BF5D9B1EFFB7F86C683A0447C494 +:10910000670E99D4035D57285DC699940E2B6A7239 +:10911000A4F5B4FC38D682FD3F8E7561B982106F1C +:1091200017D2D195BF70329DBF33924854FE02AD25 +:10913000D1C1B194A54F954F1AA7866727D085F660 +:10914000ABD8B56F1B452BE507DFC34EA0E75764CF +:10915000B287D6DF3EB37F1BD4FFDC63B049748A8D +:10916000259585D1D3693DFF949C2BD3FAE3363BFB +:10917000D2B562F16AA37A5C3DFF56E8F8F77F3911 +:10918000BC251612B0E602D7F5E5F92687D779E7B0 +:10919000AED5DB93E93C15358FCE8479EE6C3F6C10 +:1091A0009C407FDF66B3E07CDB6D2E2C572A7CBDB4 +:1091B00016BA5ECAFF6F01DFC27ABF2605F7C07F0D +:1091C0002BBD46F85DC0757BFD7B255E6B98EFC5BA +:1091D000EF47397FBE6033205C73A3FDCFDAA6E38F +:1091E0004F81D83842D6C8F5854EDA64B68D68E02E +:1091F0009EC3E130993DCF90CCF03AFAF158C7F0D8 +:10920000F8D699F26DCEBCA1F1787008F9180E8FDE +:10921000A73A23BDA88FE730FA769B4800D67F7A1D +:10922000477A70AB3B0CE76C0EA763F1DF1A6C5307 +:10923000C27CF0D6DDEFAD02B9A6ED9AAD710C7E21 +:10924000C0D76FED066C4F5C541E12C2F2F0A768D7 +:1092500052D935083FFF9ECB955E7ECEAE97DAE4BD +:10926000295806E36306B61F4A2E964BC407F3EC53 +:10927000BDC75CDD39C87C897686AF01FA019640AE +:10928000E1F5F3FFBE73F1EAEDD174E95BA362E6A9 +:10929000C03ACFEAE63D4B42D133805F16CB1EA0E9 +:1092A000D3D97AA607571A83D1B974DE4F385D7EB9 +:1092B000BF492E0D6683DE20A8F7F4F3AEAA96030D +:1092C0004BE93A5706A91E81B25A7E17CA55F55A7C +:1092D000FA9D26BE5BA6C37C656CBE53A6B65BF248 +:1092E00029FD4E7E23333700DF173F8EF62892AFDD +:1092F000EF24D7E7A7176BED856467723BA41E3D8B +:1093000013A9E59321EC8E9867A47667AFC9970EF1 +:10931000FAEF74C7CA559B81EF3A223D635D03E9BA +:1093200073C12E33F8813F55FAA7DBE4F9B0DB01B6 +:10933000FC99ECD9EA1AC89727CB983DDB5B1E5500 +:109340001D8492F7FF63515627F80F7B83E5CC4EBF +:10935000C531B885BE20DC6EAD40D517A693B0539D +:10936000E3EC4C4FDED9FEAED145FBDF0E7AC3CA2B +:1093700099C401E32775B452F8DE3270FDF14C74E4 +:1093800010FC1B319F58974787AFF5412DBE86B320 +:109390005FBF0B1A4A83AA79AB76B93B615E515F16 +:1093A000B989D5853DDB1B34E0EF9F6D89C5F59FFD +:1093B0002AFF0EF2CB1FBE9D992B93EBB06F41C3DA +:1093C000BFC4BE017EAE65DF6AED6EC4D770F6ED38 +:1093D0003C21A5488FAB6B1F9E09EBFBB778F41BB4 +:1093E000CEB7337EBD9DF3FB1F4CBD93D5F09DE7FB +:1093F000EB3DCBE97CBE1FBFFE18B07FA25D05D759 +:10940000677FE072F0872D5A39D8A093A73BDBB570 +:10941000F0AEAAD7C2BBC56E63E36D698A04BD72A4 +:109420004AF04D958C76E794AF18F5FB5ED0EF2AA5 +:109430003C6FB94E795B2E05EE02FA938E48F4B775 +:109440001DC0D6602FB3181D3FB3307E2F8A330C5A +:109450006A3FFAF5729696EEE047A8F17896CBA1AE +:10946000A8AFA8D6C2453CDAFE270D4C8E03AD51FD +:10947000E8F7D94C0C4E5B67A42DC0F8391FEC609F +:10948000FFFCBAFECB95A066FE0ECE2743CD3F9CD7 +:109490001FF5FFE398C1E3985F8E50FEBEA838E643 +:1094A000D475F2F79BDC0FD4C733FD7683FB35C24E +:1094B0008F5973EBA4BF12CAEA57B8BC56B52F44F4 +:1094C000BFF3A4C1B72D1AE879C260037ECC3FC3B5 +:1094D000E28F2AEE5F097866EBFC2C617F86B39FF2 +:1094E0007AF9395D717F2ECC7BBA62A9C6EF5D72C5 +:1094F000259584E2557AA752F282DFD02FAF115A18 +:10950000BADBEC269CDF667769F44FC5950C1C47E7 +:10951000D8B7AAF6BBB727537C54D43F9AAC5ECFDA +:10952000596ED7DEB6BBB4FEB0C2FC616753EF66BE +:109530001FEDFFA9D5171BA7A293354E8B87D39C90 +:10954000BED00EF8AF42F11907E3C3258B659D7EAF +:10955000627E9A5E1F89F6697106CDBAC43C7A7C38 +:109560008E74BE39369BF0B7CF1350ACD95AFF7406 +:1095700028FEED9F57D75E3F6F4A9C960EFAF9FF83 +:10958000184B34FCAA9FA73C8EF1657E3BA3FBC918 +:109590005B6F403E3C55FECA2CA0DB3BF7FDE5F47B +:1095A00052D033EB8ECD02F0CBE3A2B1FD3B744938 +:1095B00049C0EF7E09FDC2A5EDAB8F25A35CFE057A +:1095C000E3EB93A732918F7D9C6E274D1E8D1DD4AA +:1095D000CBE76F004EDAEE4FB1361C9F90AE74C8E9 +:1095E0000F8C145FBF1F025FD76B377E23E6BF3A35 +:1095F0006D32D88313B18C7E74F474A80F15CF8BA1 +:10960000926284C597C5D6162916FC47DF66D00B33 +:109610007D15D1B64E8A8A0AB37701E8F1D3270CBB +:10962000864609A7453FB09C303E74DFEC7E602241 +:10963000FD5EEE93BD207A0BA1CD4C4AD7226B0084 +:10964000C6CB3B59F65C34C465956617E8FD8AB90C +:10965000BE0F65883B9746B9B6D2B6F93DA31B1D30 +:10966000F4FBA25209223F7294DAF55EBAFE67A1BA +:10967000F225C200A4B83925EA81BA1DF328DD27F6 +:109680003ABB0D56DAE3EDC7EA7658E8B8DB1A7D47 +:1096900049102A7FEBB1053B2CB3094948F0F6CCC1 +:1096A000F510F2F3C76E990FF5EE6F8BFEB7EEF083 +:1096B000A611F2B2C1EF96E8F74F1EBB63BE42E1BE +:1096C00055A4793906DAFFD3B86EECBF6449ED1DB5 +:1096D0003FA6DF9D8FB7CE57E8F8F92B45FF47E649 +:1096E000178FA1F0CE12F5C723A0EE88F2B90C397E +:1096F000843CF058C97C259DCE17E7BD9BD0FAD499 +:10970000C74B765868BDC04FDBA6C022BE8DFDC5D5 +:10971000783B1E2BD911502889B614933F5152150E +:10972000F40624D0776F16D6172B74FEB5F1BB76EE +:10973000644F206446696114A1F5BBE27F34DF6C9D +:10974000073A79735C74FC9AF89FE0F8F92B0313DD +:10975000E1BB29F0E28E52FA7BABA5D307F1F266AA +:1097600089F14F84A53E64A0FF99B1C547FCE8BFCD +:10977000B531BE49F38C433E11F52C96E7EAAF278D +:10978000B17AF756F265DF20F238CAC1F44F77E4B8 +:10979000E0DF5FE1F244D78BF21A7B86789FA7E582 +:1097A000B148D26DA1F6E63633C92BA071F1F37141 +:1097B000562E477C5E0B834BF42381DBE2409F9562 +:1097C000311EC4EFE514AEC35C1F647AB81D2021BE +:1097D0006511E865D980F03865E9CB0BE9EF0991AF +:1097E000C4BF8F96CE7882F53242BCFBACE1717F6C +:1097F000C5872DC9F4ED06FE2F494CCE697287C787 +:10980000A1F03603BC229F44E156006EA75C9E7314 +:1098100077B60AEE6C0677771CC3079DE639F07BB6 +:10982000BA7B268E6EA5A07E354E2BCFF93DB9466C +:1098300042DB453BB81CBB587F673141FBDCF7502E +:109840004410E49058FC1E9F2ACF728AE3B5E6CA02 +:1098500004129CA6F26F949009F447CD956CFCDD40 +:10986000D934385D447EB2E68A9D04A6A97F67EBB1 +:109870000B8FE3C0EF43C143C30AD45F9BEC1C8151 +:109880007CDC2D84C57F9BA2BD8971D7F07B6AAE3D +:109890004843C0AFE0EFEE5184F4001EE9EF243BF3 +:1098A0000C1F292845FBB6C9C6F4D0A67D8589447E +:1098B000CDD70AA78389AD1FF06C50D967399EF1C7 +:1098C000CD22C15FD4AE839E5B9B928DF161F77F09 +:1098D000174F5A88E36D65FCADB0F8295F61FA3027 +:1098E000BF27CE1690C27C21F841D0B33BAEBE104C +:1098F000F1B550B275BA07AE3B92CF9FEFA37C4B48 +:10990000DB27AEF4CBAB55F009BED7CB09214F31E5 +:10991000FD4EF97F15C825C47500BF87CAC36435DD +:109920001D19DCFF0E7DA6231F30FA255B83008FF7 +:10993000C0CF407E481D861F32F07B7ECF1113AC16 +:10994000B386C39978261433299BAD63032D6547ED +:109950000CC2D910C7F8BABBAB78DA0D74FEEE278B +:109960006402EC93DFAF3FA55F14517D9828EAA015 +:10997000EF5D886FAE2FA97B6009B7FFEBE3D2CD17 +:10998000CD63C2F87180918F0BC3BB83EB8307F863 +:10999000BA29FE0296388DDC9282DCB07E11722AE2 +:1099A000C613E32CE2F4F1F1B25FFF70BB47F50D93 +:1099B000E601C98311E83F7FF17A471A46EF2CE4AC +:1099C0007A87FD7E8CBAB9D02E21C1334EA23839A8 +:1099D00071BC782CF8F1F724C9AE73D4AE2C96FC88 +:1099E000DB00F18BCE78AAC86895FF452C2E2BF5AD +:1099F0002756D3C69FD37917F74406644ABA45BEA3 +:109A0000089755E5977DD226219FDD435DE92DB965 +:109A100003F9E39E2413CE73A23433D6AF868BE3CF +:109A2000FF36C8DFCA03E553D429DC55864CD57709 +:109A30002BB33BA762BCB5F1B4BECE40FCC8E7F384 +:109A40009C1A7FE6D1386D5EA1DF9F89F56E827E1C +:109A5000FAF643F93F4E88FB517E593E28B1253A2C +:109A600008F84AEC225C3E43861AA0A34C3996AE15 +:109A7000DFE248677E6205FD38353CDE49C997263E +:109A8000419CE4347B204F41E982EB2F91EF3E6C07 +:109A900074009D254F139DF589783BB7777D79B08C +:109AA0004E6714E3C36311C41241C77F8D96487794 +:109AB000AE975ECF98D009F643E8B37E3D7895C562 +:109AC000D5E2FB3169619A8DD68F39C7E7344938C1 +:109AD0001E8950F13F1D97003CAFFFFDDE737329D7 +:109AE0003D8CA3D9780E3A7FB94A0E6694B2757749 +:109AF000C6333BD3191F856549141BEF989BB209E8 +:109B0000CC3396AE87CAC3AB91FEEC7A84EB214688 +:109B10004FCAF7A02F1338DD124CAC7ED5C1C6F367 +:109B2000F0F2A7BC4C8861EDF4F4B13A197DBF0F97 +:109B30004A83B66BB552BF46D6F83504F8994A2A1F +:109B4000017E6A2DA4EB19649C1FC6B3FC0DB5639E +:109B5000B8DE817685E93FC5723203F8F8E1824EBE +:109B60001BF071B391E5E31FB6056D7183F43345C6 +:109B7000D1F8313B6C8F841FFF59D7C258D08F6FFB +:109B800072FC99789C29E0696E60F9D3982B511882 +:109B900087BE11CFFC2825EB1CD25B29A06A8676F4 +:109BA00035125FC0A6A2B7D166D0F8FF315762B0B8 +:109BB0007FCD956924187F2DBD9D8FDF4952A92641 +:109BC000DEF8ECEC528453BF2E3DFE421C5E51F792 +:109BD0006629F3880AAE42626B86790A89363E1995 +:109BE000CAFFF80BD7AB3557648DBD09C36BD2FCE8 +:109BF0001EA27157403DFFFB6CFEF0BC5124A09AA1 +:109C0000F727F1DE4FE3310E9A653B3F891694EF5B +:109C10003F97D18E307B45CB0E2BB3EBA09F45DC1D +:109C200002F26CA3714B637CE155D01FFD768EF779 +:109C300013FA24F64CD8AF9368DF46EE8F3572BB2B +:109C4000D3EFFF29CC4F1570E7717E107AA7D4525D +:109C5000EC3DA7A25B63BC0BFB1F9718DF51494982 +:109C600087FE946F036AFBADC7678243E03342C34C +:109C700007617C5AF1F72FCA1FCC9FE5972743DE77 +:109C8000B45422636931631ED317A2DF448715D70A +:109C900037912A16F473B85E295FA96D37C5C1FCE8 +:109CA000FE290EA65F86B3D76A7B216586F5541D13 +:109CB000A79FFBE209938BB65BCFFD8F62A777BAB4 +:109CC00083964A64CC14120B654690D04F1DFF5BFF +:109CD000EC6AA4F0F7FDDAE8E984610F30BA162ED9 +:109CE000DBD4A4D0DF8D5D920DB6A1FAF5D016C9F4 +:109CF000BB8EE2AF90EBAB1A075B4F8D23641A4328 +:109D0000E74FA96170A4751D961495FCA455B37610 +:109D1000373B8C9CEEC1C6923CF8DDABB45252DFAF +:109D20000ABFD3F59439987E4BE99230CF9D524FBC +:109D30001140E99CE261E35A3D41696D76789D2DC1 +:109D40008685D9A0E75B12A23CA0E75B9CFEC50E0E +:109D5000A0D3D95008DCF219677B1488F3F63ABD1A +:109D600015B07EB13E976C4B81B830EA2C83AB2D99 +:109D70004ECB0FD473E276A993E94B991C07FF0AE7 +:109D8000659DCE97B0350BED4C3FDFC5713D9F40D3 +:109D9000FCFBD1EF212D04E945701D095BC7F1FDE6 +:109DA0001746CFB09F332117FC9CCC07430AE455DC +:109DB0005FDAC5F615F47C792FE76BBA8E3A589FB7 +:109DC00058C770F65CB4330E11970A7E8FE2FC53CD +:109DD000B8CCB11CD657D3FC9328B30474E890A236 +:109DE000D02E3C8CED04DE291C0D00879E9F94B87C +:109DF000BD522A5DD7BDEB894D2643C359B345F605 +:109E0000AE53EBBB6613D2A1C3A4DD2F17FE7B3B81 +:109E10008FAFDF72FA1E8179EB0E3C6A02BAAEDFB9 +:109E2000FDAEC93F889EEEEF3F423C49D52C2EA89F +:109E3000A9B40461DD85CB14A4DB866653D04CE95C +:109E400053F3FCBE9001FCDCFB8807E4BCA66BDF8F +:109E5000AB29144FA935DEE9902F4BA0CCD6931D2A +:109E6000B61B29352109EC714AD7EA1AE4E3A42884 +:109E70000FF031F8A7E0375C2AB40624EA2F5D32F0 +:109E800006B25CF4FB2577A407F6335E8D60722F73 +:109E9000F0FCDABE9B8E4B14AFD1FBCD2128F73AF4 +:109EA000FDFB61FDAD8DAE42A0536B09B101FF50CA +:109EB0007FE41EA897345909C8C148D72DF486F805 +:109EC0007DC67D4C1ECE71BD41FFE5825FF62B47FE +:109ED00034F34F0C4C0FBD6A64702A1C4E8FC37B49 +:109EE00018F912843139BC7EFDBC2AFE79ED7AF86E +:109EF0007846699709F65337703D52B86CB7F42726 +:109F000015DDDF74B07DE094E73B2417F2F1EEC677 +:109F10001207B6276617FCCEF2221BE8F73B54FA6D +:109F200043AC63103DF236E80BEBD99EA34C8F8413 +:109F300090DF04BC828E825E171CCC5EDD48CD357E +:109F4000FE6EA274A5E3BD3A3A12C71372AD97C371 +:109F50000B9CAF532A774B06F4377B709DB5950A5F +:109F6000D2E5C8D2DBD7015D6B1DC939C0874FFC74 +:109F7000F40D93447FFFAB83F971B56D12DB5F6E17 +:109F80007BC354017621F07D19FC9A05CC05203B5A +:109F90007FFC06DA8105DD2CBEAEEDDEA7ACB58612 +:109FA000F9CF7DF1C8EDC09FB55D661201FBDE4EB5 +:109FB000178EABE73BAA1F501E48C084711EF8FFE6 +:109FC000A80F89DF0D7659E84F0F878B587D7906EA +:109FD000D09309937340EF45380D5C7FB1F14B226C +:109FE0003D472CA0FF72591C20EC95D5C9F048C7FD +:109FF0000FA1FEA45E2DD83B31FE40BD3F2917F0D6 +:10A000009BE764F688D2CDE11C44FF8BF1DDFF5164 +:10A010004E5CD12A7A009E557C94E934B13C9A5327 +:10A02000C1F194228627C5C4D6AF6CB50421DFF1F7 +:10A030009ABD94E127CE82F83966585303743A9654 +:10A04000C2F9C7B035AB9ED99D3100CF91A53184FF +:10A05000E917A64F9EF811B36F35012BC65735FE91 +:10A06000C54867E288F0C03E21F11F35554487F9A5 +:10A070004D4F57D7FEC32658C7822EC6D7617C05E1 +:10A08000357C48F514D2DBE310F970BF1BF029E2F0 +:10A09000E1584B2864740D94BB581E0FFB211E869B +:10A0A000FCB487D5E1DF6071B09857F41771F08682 +:10A0B0002DBFCC3847F5FC5D493FC712E22B884BDA +:10A0C00044BC25DADFC2E39B7C5E2EE67CB221AF86 +:10A0D0000BF5E98673F52817D65226FFD6B35ABD7D +:10A0E00025E22D421EE4F159D78D905F2F795AB2A7 +:10A0F0003591A1F5CB9DB0AF047AFB2AF58A69DCD6 +:10A1000052A3DB375BE764FCFC1EEC6BA27EAF471F +:10A110003FF8D22E09CFDF8C743C123A2501FD3670 +:10A12000F078E3D2F3C533FF0CFB307B63F15CCBFB +:10A1300007CF2FFADA9F29BC9776CFF580DD7434EC +:10A14000F9901FFA9C111EF073A97A2B8578BBB188 +:10A15000EB9518C81F5D786E6A2EE8B57FE77275BB +:10A16000F147F216C0C7D6EFBD3007BE6F084AF1FF +:10A17000E0B75DDAFBF4DFC14E55EFDE083B92A499 +:10A18000E9B99F99605FC110EC60BFEF8D45FFEEAC +:10A19000C2771F9D03786EEA6AC2EF17BFDB81F5B5 +:10A1A00023DF7BE1D07F833FE08BF140BB8B3F7AA5 +:10A1B000F41BFF0D7CBB38C603EBA8F12B6C1F50C2 +:10A1C000F0AB5EFFEC3B8C7227F86301F875C0E7DB +:10A1D000954C8F08FE3C51C8F649CA8BD8FECB89F6 +:10A1E000F91195E8CF72B9AB5B6EEF00B93350FC53 +:10A1F00025D1FE8BCBEC1DB03FBE87AFBF269BF1B8 +:10A20000430BE516C81B4465874CA9B4DDD295FB0A +:10A21000E6003E5B22494104F229242DC3FB368B24 +:10A22000DA5EFB2F89D271325567E7297FD3D17669 +:10A230007F4EF9F44D23CB0FB4703F7CE9CA7725EC +:10A24000B65FA0D8CE8B7C907C2DBBA5E078A25DBC +:10A25000BF3FC6F1D0C2F321747CB423F99B789E32 +:10A26000535AD304FBCBC736876601DFBEF4FE3DED +:10A270009135D96AFE66FD53BA99DCA754F7DC081C +:10A28000EBBC396BF53498A696EF9F38206F0676B5 +:10A290002E60D5E8B7FFE4F29560238E2F413E464D +:10A2A000210E388F5742C82923E2670F7E7799998C +:10A2B0003FE4FAD9D23DB0DFB5D3E84F9E0E76A980 +:10A2C00085DBA7DD0C5EDADF06FBE5743CDB97720D +:10A2D000719C1E631CF60FB0FE37ED66FB65419165 +:10A2E000E7C9003B05E3E559C1AE042AD1AEB84C3D +:10A2F0001EE0878BD02419F13565D5E4F0BAF5F965 +:10A3000013D063780ED359F8A6D3192E45BE454F06 +:10A310008FE404FA9D8EB324C18B25D91B3FCCB9A1 +:10A320006546AF234B2F9B7AE9BC4FBCFC2EEAA1BC +:10A330003AE07798DF7F4E636F053FED7CF15DE497 +:10A34000F7F2038C3E7507DC4688573E68F0923F73 +:10A3500051C7B18EF3F74EA9B70ACF85BC186183F8 +:10A36000FCD865CEFF1B4ADF3D0F7A6BF481641782 +:10A37000C4D3975F647270CC60407C1EEB9CD401A8 +:10A38000F685FAABC8CA75F5AE4E33E297F9F1859A +:10A39000CBD63D0A71556D35F1807EA8EB5E98E60F +:10A3A00042BB6246FCD61D7803F945F8ADD41EAE1B +:10A3B0008371EDD4EE44409C35CFD78DF470446367 +:10A3C0007BFB3CFFA325C85F39F9C05F47961EDAC7 +:10A3D0006E8179E7111B8CBF33DDFB622AAE43220D +:10A3E000701E62A7B1AD48A1FD7796B86C148314B6 +:10A3F0005FBB93C0CE932C13B76BEBD01FAE4B5A01 +:10A40000E181F86980BE78B111FDA63A5724C2B344 +:10A41000E080740FF33BAC84C12F215F2E08DE1067 +:10A4200004F9FF90E34DE0EFB2B1E776C0CBE51F52 +:10A430005306A4DF17CC637C6A9FD7857AE6B517ED +:10A44000A95F3325CC8FD13FA1FE0DADC72936C9F9 +:10A450008372B6C8ACA6679B91D9293BB73B99A537 +:10A460008CAE9909CCDFC84C30F0D2A4DDB7B3056F +:10A47000A6809DFD90D31D8703FDCFC7AD5D17421C +:10A4800039AA799EF9650EB337E75E15DF3A8A99E6 +:10A490009D14F973C8A7631E1DE21207C4C5AE4E12 +:10A4A000D847A6F443FADEEC189F0BF8BA91C3958F +:10A4B0009225611C47FD35C45BC2B2DD4A5536CBDF +:10A4C000BF0F1607DECCD7E18CF7E541DED6991831 +:10A4D0008D7E8C532E3444801DCA913C9D2EDCE72A +:10A4E000C3B8B5CF99ECE9D4C835F3F7DE4F886629 +:10A4F000740DBEAEC03ECC9204D7A0FEDCC038388E +:10A50000C203714C595B600AC40D22EF2FD61D6C3B +:10A510008CAC54EB315F02D363C109A412F402F591 +:10A52000C7AD9827B6D17920DEEEBCE1BB2CDE6E3C +:10A53000C275CD4C60FB2F25747DE09739337D9B30 +:10A54000987D8DC6753833C91AE8E76C4A929ADC53 +:10A550006A3CDBF09CD65BDCCE087FBC8ECA0BFA73 +:10A56000712F337EAC033FCE3DB47E08F337D30F5B +:10A570000B0E30BAD71D60F64FC4DFA0F7E03C21C8 +:10A58000E809F7D4B05CD7997AC7017F0A3EAF9B40 +:10A59000D33B0EF033947E28890AA2DC954C1A87AF +:10A5A000F90531CE65A30BF7E32ED3B811FD582E74 +:10A5B0000FD12F31391074D1C72F0017C481423FFA +:10A5C000B7387D81048AD73A43683B9C0B10FAB4B4 +:10A5D000EEA51D9A73FF7A7D6A5198DEB204A382BC +:10A5E0004D2AFE81BDADE85C2CF1FC55D4168E0FD2 +:10A5F0008B01F1DB9A75EA07AD68FFBB42C06711BA +:10A60000693DB3417F3D96C0F2669B25E6DF8A7DBA +:10A61000FD04884D406F7446E1F95A9197D1C3B556 +:10A620008DCB8BC0BF8833200F0FED7FC8E5A28391 +:10A63000B7FB29E73B01B7E06B97C1FF2EE4E38747 +:10A64000B23FA2DF17952712F3083B18C633A3B316 +:10A65000D84780F52CCC1EBA5DDB61A66704DF8984 +:10A66000EFAF71BFF7EB9477A1FCA1C8C3FA27B095 +:10A67000FC7E04D19CBF12E389FA230DD73E776F8D +:10A68000FBBBCCF6B1A89B01F281790410DFA2528A +:10A690000FACEF758E2F7D3F85289FF60ABFCAADA0 +:10A6A0008287FB64701C69CE20FB72FDF3CED2EE74 +:10A6B0001BF4FB65BA718682BB4597FF6FC93C44AA +:10A6C00020FF146589E1F27B15FDFE1DFDF70402F4 +:10A6D0009E85A8EF581E6BB879F4F046B8068777C8 +:10A6E000A4F46831ECAB067EFE21A707D935B2751C +:10A6F0003ECCD779889F2F25EB2668F64BAC1E57AA +:10A7000023E4876367B972D0BFE6E734A3E7908F8D +:10A7100065CAAF73AEB465C1BD10A74F0B7F62A50C +:10A72000F6BC63B23F4E534FAD4ED1B44FAF1FADE9 +:10A73000F93E6ACB44CD7777205753CF6CF992A678 +:10A74000FDD8B6224D7D7CFBCD9AF61382E59A7A30 +:10A750006B635725C8C3A4BDCB35FD62955E92439C +:10A760007F9FDCB5464B0F1D3EA70ABEB6F4E6AA96 +:10A77000E529277134D22DB6408B8FB95774E73F46 +:10A78000AF933FA61ED0F187AEBF90AF28C2F8238B +:10A79000EA60CBC7B0AF1DA597233EEE14DA6F4E2B +:10A7A000DC20E30E21275BA36E5780FF0F4145E5B8 +:10A7B0004FBFA993FF92CA58B66F74A57C18BF9B70 +:10A7C000C9C91233DB4F5CC2F715C5F7BB13991E1D +:10A7D0005E9FC8F34C23E4E7339C9F4F0CC5CFD456 +:10A7E000CD4D007B514A301EB795367E0C799D6564 +:10A7F0004A88E450F97982AF6727EFDFDE60C3F162 +:10A80000BEDD9084E5AE0617FEFE1F0D5958061BEF +:10A810003CF87B67430196BBA91F08E5330DA5589B +:10A82000EE6DF061BB671B2AB17CBEC1CFEEFBE8C9 +:10A83000E977250EEDED12A2D56B4B2BE511D16713 +:10A840002979B0478E19888F01FDE595D73C97BDD2 +:10A85000E56C61F0A8AA7D2031DA711E986A06992C +:10A8600081F1ED30FDFFD6E00D1E350ECFDF7AFE13 +:10A870002157EF1DAB3E9F23CA2530770A21B73DF4 +:10A88000D9FD40203B8CA7A1F96A70FC782D975325 +:10A8900020E89F02F647D5FFB08E7FBD4AAC268EDA +:10A8A00016E5DF13995F58C8F9B550C7AFEF2432EA +:10A8B0003BF633DEEEFF357E3D12118D7EF911A39E +:10A8C0002BCDA9A2FF9188A84A761E9DB81653FAEF +:10A8D000512FD9E6A6FC1B9DC4F6FF24884C307F7F +:10A8E0003CC686799288EBCCA7E8F02851BFD24DC0 +:10A8F000C72B5498FE92E020128CEF3184F52B9EEA +:10A900008F880CF3BD3C901FE8380113F8636B7A15 +:10A9100097833F3726C9A539A758A4C8D7D4D745A8 +:10A92000206F83E40507F4BB4E79BB0CF236E95F78 +:10A93000276F82DFC9D5CC31EAF395A22CE4F2B6B9 +:10A94000E7C97750DE04BF1781BD53C1919EC4F49F +:10A95000737A12D3CF47B89F02FC913B88BFE24C79 +:10A96000D2FA79D78BEF42C2F42221BD29A027AEBB +:10A97000B73F951C05FA155A62025153AEBFFF50FE +:10A98000F81CD0EF806344F926AA692418BF8A43D3 +:10A990005765B106809F48BBF152AF8A8FBF19E35C +:10A9A000F324D1F6078CE400EC4F5033EFB22520AE +:10A9B000DF235EE93F9F85D673787D4640729928F4 +:10A9C000DF9869650BC847EFABFF05FA228797331D +:10A9D0007809E9D624909BEC683CDFEE1168E279B7 +:10A9E000D37C519D475D9C04715411C625D2A63875 +:10A9F0000863DA08ECABB74A9E1699CE2727BA9BB4 +:10AA000000A869A58532C8D374D286E52CD2D304B8 +:10AA10005B7673489F0CED6F280D34019CA3C855DD +:10AA20001BDA95C4676A3F87733A909C1C01DEFE6F +:10AA300016C1F6A1B75858F9D5C8984E28FF16C1C7 +:10AA4000F6A5034584DD9BFB4334C69D6E837F19C9 +:10AA5000E0EF6F06EF2A8047894F73F2FCEE1F7B11 +:10AA6000310F2CA17E28B2E655DE8172CD7E47FCE7 +:10AA7000BBC3EDB02E0FAC7F731BCB4B34ED60FC32 +:10AA8000DFD4C8EAF7727EAFE6E5D7B99C449040C0 +:10AA900080E0B8949209884F46C72C4A877C4617B5 +:10AAA000C4B3F538D2299274219E7754ECF46FC365 +:10AAB0002F2BF17C8F14F291CFA3D4FC34B2F12C64 +:10AAC0009636AF85F255646557C8788DF1144E5FA0 +:10AAD00065B109CF476E96FC4D80477256427E891C +:10AAE000E4E31A493D91DC6A38FE613A3D3C123A92 +:10AAF000198B3C3D5ECAA21591129E63B95E7A7DA8 +:10AB00000F98DE1966F543C9A403F20DD50E920421 +:10AB1000E71A4D560BCA6173BA2B00DF4DE308DE0E +:10AB20002B26368366DDE2FC9DE04F8A9F679228E4 +:10AB30009D4D41E95DC09729A91EE345A2F4A642B7 +:10AB4000BB4312E30B3D5F7725893C431A930772A1 +:10AB50006DFBB8EF16FB5B0E10D6C0EB65BF4AA2CB +:10AB6000F542FB0AD8F2FB5AF2AA3285FA35FBDE2F +:10AB70002028AC8B92373F04FA7B5F85FD3B4EB8B3 +:10AB8000179212F39091CAD7BE55127EBF39857EB7 +:10AB9000A7F87DAB9074419EE94C82FF10E07FF9ED +:10ABA000AF5CC7E0EAE9BE57EFCA00FC3B8A3DBD97 +:10ABB000787F6585D905FB535D90E704C6B94AE106 +:10ABC000A1FCF55D005866F5B9B4BE4CA0877FDFE7 +:10ABD0000DFF4DF928739DBBD10179CA5D920DFC23 +:10ABE0009851BBA85F43EBEF3D44A6417E7928BD59 +:10ABF0003643D40312DEC39FADFB2EF4DE98757787 +:10AC0000BFF37518BF47C6731B5225DBEF99C1CB45 +:10AC1000D9BCCCE1E5B2756C7F6A4CE58C20E4FDD3 +:10AC2000CE1B5D4D56E0C7C904EF9F1285F1E79B2F +:10AC3000E9F620E469DE934813E4D9023B08DE0715 +:10AC4000043983FD50CF3A4AEB3C70292D41C8E3CB +:10AC50009F6C20DEE6B12AFD4A69E3CD67691F06D5 +:10AC60007736C669B348F81FACA324BC2EE4B31BE7 +:10AC700079FDA61A96B7337BA9DE05FBA7D3D711BA +:10AC8000249864C173C46E3C2722DF446C006F4675 +:10AC900069E808ECF74EF316A2DE9D4EFCAFF4D047 +:10ACA00072A6771FD60B2CC12658E25C982F13ECA6 +:10ACB000AB4B013A16530F18EAA5A40DCB9B4917CD +:10ACC0009665A407CB5B491F963E623342694D7679 +:10ACD000A33CCDB1503B301AF7ED308F97DB6EC6F9 +:10ACE0007C6A79A9DFE41AC47FA912F70A893F03B5 +:10ACF000F3C48A3F6389CA1F39BF6CE92A7857C3F6 +:10AD000065D09E938D4B66FE755A32F33F764A5C52 +:10AD10008FD48AF739FCDFBA83D657948EF7C07D7B +:10AD20006FFA1DF3C4816516CC0FEE34BAD2C13F61 +:10AD300059008FCA405EAF66DF57411F9D987F67FD +:10AD400032C86B55F3F6748813AACAF8FD1A259019 +:10AD50005EA192F3F75633B8C47908F1FB580ECFD1 +:10AD600002D8D3827D640A3FEA2F91EF5B6E473DA4 +:10AD700053422A1538C79E97CCEC4190EB05213FF2 +:10AD8000D5820F94802985F65BE2717BE0DCDCF2F2 +:10AD900020CB2397282404FE743FFC951D9B09E5D6 +:10ADA0008FE5D58731EF1F3E9FC4F6AF0B9775AF88 +:10ADB00082F9ABD6998919F793DADE06795E5A6D76 +:10ADC0007641BD6AA5E465FBB496E058A8B7BBB769 +:10ADD000819C2EBDCFEB81BC2B9D0FF3B5375AD88C +:10ADE0003EA685CE0FFB7E3755F37323D5F7F700CC +:10ADF0007FD2765EF0A76FA4ED155AA61176EE2EDF +:10AE000032C0CE2F45CE63E7975CE6FA63F08E89B9 +:10AE10006B23F104E8B44B777548EC3C32C1B8675A +:10AE2000387FE8A9FBAFDAD13F06BF6114FC1A6096 +:10AE3000F9E62DB20BCE1D10C586E32CE7F7465B75 +:10AE4000AA9B305FFE592518198ACF3637BBC770C9 +:10AE500094C9F992CA9C5EC863594ACD2E99E526D9 +:10AE6000039077B6905294FB1CC2F2236BF87D01DD +:10AE70007D5C61D96262F39290067ED067607F87C5 +:10AE8000F2D3865A9FD01BA05FFA069177A9F435BA +:10AE9000E6CFF112E41FE436D7E291A30DC06A3E7B +:10AEA000946FC00BBBAF741FB32B11CF486AFB6EFE +:10AEB00071046E87233CEF1D1DB3CD8A686B23EAB6 +:10AEC00038C352E4BB437DAE7C47A16F957A3FA95E +:10AED00089F37B7332B75FBF0A64C07CF21CC6EF94 +:10AEE000BFFB35C1F762DEFF35C527C89F6461F23D +:10AEF000390C5E865DFF3AAEC77919F6435D4D4069 +:10AF0000DF279347233C79A50B65D85F9AF6D4B425 +:10AF1000D47F2303E93314FE87C2D7EC446F309902 +:10AF2000F9ED8691F8ED2572DA8A1ABAEE4F569A43 +:10AF3000717F56D8CD5C2016C8750F0952D907FB12 +:10AF4000817625B985E03B3E4E1F9C89E7E3009B57 +:10AF5000575A88A2C9A3DA34F5D4EA244DFBF47A0F +:10AF600097E6FBA82D599AEFEE804753CF6C29D076 +:10AF7000B41FDBE6D5D4C7B7976ADA4F08FA34F5C1 +:10AF8000497B2B35ED3FA14B0AD1F5E49D963D0160 +:10AF9000A06FC0DB939D1FB6E393BBFC9AFE337A90 +:10AFA000579781FE9A7AA05A330E394BFD365AAF25 +:10AFB000A7FF6374F1C8A0473CD512F9B61B50C86F +:10AFC000BE637B5AF79C9D7F01F4F8F24A63D8DF99 +:10AFD000835EE4C18F813E1E9D9FA88FBBEF3C1E08 +:10AFE0003866A5F0551F6F3B06F2F04EB2360E2FB5 +:10AFF00091ADB8AE4F4EC9783EA61A38D411A6E32B +:10B00000273010ACFB30C17363FA75F7C7E9F22E35 +:10B0100023BEBF42D70147E3CD495A7A47B8B4F4BB +:10B020008ECAD2D23BDAA3A5776C8196DE766FD634 +:10B03000A0F88D2FD5D25DE0B780FE0FF0FB45E381 +:10B04000D39CA2CF63CC423DFB593BD7B303F5C0A1 +:10B05000624B7E580F50951A84FB51026F03F482A5 +:10B0600095C537FD7AA19DEB8576BD5EF0BE022EBB +:10B07000CA74BF1BE3CEDFAE9A910A7A2E851C14E8 +:10B08000F724FC9FA3FE0E08394F4F817DC22D9EF1 +:10B09000DE00D8895D66F427F71D1B87F1C089B1F2 +:10B0A0006436861516160FB49A18BCE352C4FEA473 +:10B0B0006F5C0A2DCDD93EB8BE41DE9BCDF8E2B71C +:10B0C000A00FE9627F07713C6C5EE9F408D1E941A9 +:10B0D000BD3F2CF4CC8CC01B18575FAFDD182EAED3 +:10B0E000CF59C9EC89D0AF33789DAC09A07F2FEC44 +:10B0F0004C5381DF0DF710722D5E9918D4717E2F9D +:10B10000DA9DB924807AF88652CF773611F0AB7E7B +:10B110009B0A7ED580783F8CEF050CDFFDFBC01AC3 +:10B12000BCEAF78117019E9D88E74529AA7DE0FDCD +:10B13000111EE4AFD3CB589C92F7C698262BED97FF +:10B14000B0DE8D7ECC7EBBE715A89FAE6571E3F4C3 +:10B15000535E19CE5F65D6BBF11CDE7EB7AF18EA31 +:10B16000A737B3EFF967FC783E6BCC16F63D776BEB +:10B17000FD2B70AFBFE21BECFBCB1F6EC7FB60D497 +:10B18000C8B1FE856DC5503FBD8D7D9F7136D80419 +:10B19000F5092D7C7EA9EB9518B0830FB1F7180641 +:10B1A000C43B3CBE99CBE931809E3C6E98C3DB8B9F +:10B1B000F8666E25A3D3BA3EDF8DC8563A7AE9FD0C +:10B1C000FA12E2C7FA4D2480E57C12C4720109E14B +:10B1D000F75B482FD66F83D09ED617129711EA4F90 +:10B1E000A76421DE1751938FF98B028F05DFD73BC0 +:10B1F000F78BAF9198F0BEBAF00FDAE27CB5E03F82 +:10B20000388A7DF85EC8D329CC6F0F97629F3C9037 +:10B21000E1A1DFDFE7F7CEC2FBE3F978AE834EF9B9 +:10B2200020F8BB8FA7B0774D6E2205789EF8A60256 +:10B23000760FEF26F087297E424F2A7638AF876F48 +:10B24000230D123787F348BAFCB212C0F8235776A1 +:10B250004D0261399052FE10C4D1FB411053087960 +:10B260002E65E52D8134E457F46F866B778A9F0352 +:10B27000DACFF74917FBDC06E4CF1CADFF7480AFD3 +:10B280005F943791CAE2E82F705DB95B0378DEBB4B +:10B29000A2D34CD8F91D9202E774AA483DD2F5FC1E +:10B2A000E48091DD4F657AA782F35D05E7A7F31D82 +:10B2B00066A4C37B774841C8EF54ED7AED0CF0DB10 +:10B2C000907E53F65894DBC59C3F7F7BAC6A1BD3C2 +:10B2D000EBDC9F7A72A2FCF9A4B0DC533F3100EFA3 +:10B2E00017BEB58AE94570BB35FA70083FD1C9EB86 +:10B2F000028ED480847662A4FAD021C6E7FA304563 +:10B300008CEFA5AC47EB19FCAB54C3F0E0E4656AE5 +:10B310008DDEAEF81B410E92489B04F574D287A5D2 +:10B320008BD8B63A33E18AA6C700F5344BFDC2325A +:10B330003ABE1DF41FAC7FC7913CB5FE33F27CB41E +:10B34000D1F220EED72AA4CD0B7904E5687FDEED9B +:10B3500013B0275F54DEED6A8A0BF94D9F7FA39EE1 +:10B36000D654908373466B0BE699F5F99601F9195B +:10B370006D1E63761BB71F6DC26EF89360FD703C47 +:10B3800054633F667A5C50CE957CA867BE99E88F7F +:10B390004E7542BEA33E0DDA1B2CBD32D88B567EB5 +:10B3A000DFA895DF376A1D27E25A4A6528BD59C8CC +:10B3B0002F5339CD5F2860F7985FC8B2E039FBEDB5 +:10B3C00009A6ED90CF0BDFF3E4FDF8BDD529FC1DF8 +:10B3D00085ED911C0FADD1189F3C0CF3D27E91B23C +:10B3E0006B1CC0F74703A532852B9E78B06E926D1B +:10B3F000CE4637E62BC7A662DEAEF7B14CDAFFD4F5 +:10B400008B0A8138FD055B5FA49DCEF3C2C1CEBD22 +:10B410009D149E4F8F3373FDF05E39609E0AF727AF +:10B420002F3DB680B69FDA6344D33CB5C0807AF333 +:10B4300003137910CE07955B649F42F9E383AFF065 +:10B44000F33A8A27437DBEE09934A63F4F0C914FD3 +:10B450005C1657B81CE03A913CF8BDE079A92CEF96 +:10B46000D0FFCE087F37E92F4EA23957B22CEE56C7 +:10B470001C47D48D57ECC41FAF1EC7C5F857F11138 +:10B48000B82769BCE2C0EFB1D49F857D87587B8126 +:10B4900002F15711B11DF54A78651CE93DE05D8662 +:10B4A000594A5FBF1F391AEC14F34331DFEB86FDB5 +:10B4B0001AADFF399568EBFAFCEE53692C2E35EA8C +:10B4C000DE75782A4D0F2F7BD741DC2FEF56BC510C +:10B4D00090175A6BE0E7AD92BC785FF291598E9C61 +:10B4E00056155E9E4CE5EFBFF077286CB43DBE6FFD +:10B4F000A05B4733952337E5DF0752193CA2BDD047 +:10B5000063AB841C05ECE8C7AEE472F4511ABB27A8 +:10B51000BFCAC6F669FEB8E3434CFBAF7E23D20434 +:10B5200048FCF24A123399F6F37F33FE375E17F088 +:10B53000A9E7309CCF218F30BFC2569495CFDE2330 +:10B540009887FBAD522015F5EE48ED467BFCEA925C +:10B55000340A6F644CD065A3E3444E7C1FCFF935A9 +:10B56000A712842BB2FF7DCCDE71EA7366EDF18504 +:10B570002569D3F11C6D280ECE5BFEA799D1F73853 +:10B58000F182DFB5F1D004CC7FFD4F9ABF18DA8984 +:10B59000FBB3E4681FDE172E063F257310FA5B3FEE +:10B5A00035001FE9F90000077B3C1C3F04006EBA20 +:10B5B0009EB53183D315FFD17AB1C58EEF75FE9854 +:10B5C000D357CC7BBDFCE9C864FAA44F92F0DD9858 +:10B5D000E1E013E78E051E8B39FF8A52E0497F7F39 +:10B5E000AF38CDC0DBB1FB7BFF93E643BC7E94FE5E +:10B5F000F138238561AD89BF1F31CC7A8FFF93EB82 +:10B600001D291D9E4A63FCB336726470BDC5F5D416 +:10B61000BF1AAE1B055C534606D747FF24BEBCA429 +:10B62000EF0FF6CCE1E1A2F4BC11E849E6F5E1BB8D +:10B63000206BE346069F23ED9F872F6E64F0C9A021 +:10B64000274888C1B784788C4932074675EF467F12 +:10B65000DF46DCC359A2505B4AED5DA489EDB345DA +:10B66000964B2C5FF40FDEBBE9A7630209D9216E6C +:10B670003F6466F9464FDF38B5FD4CE172F33F6930 +:10B68000DE5100FFDA715C2F946ADB8DD2B513EFC7 +:10B690006C10AB01F3E5AD59633AD93965B6E4886E +:10B6A0003417BEA73B3E4DD29C5316FB84DBF35DA3 +:10B6B00089E037782DD6904CEDC2F689D559B02F58 +:10B6C000E24DFAC519761E9BFAAF2A3A09382E3692 +:10B6D0001CB78D310E8D870DF2FEFCFA41F6572E08 +:10B6E00027F867A6A9ECF786BD3FB78D51E58926F7 +:10B6F000935E03F3FFFB0C2C4FCCCFE7245E1FDEE1 +:10B70000FF0DFC2727E87F1FEA7F612FEA5EFABE64 +:10B710000BEC10B5F704F61BFAA223D11E344D2C06 +:10B72000C852EF07ADE8B7D7DA7731C276FA9F7B18 +:10B730001723ECBF4824103FD8F80AFE2EE8E2B5E4 +:10B740000E4E0F710E37D4102A3F6784F74C0A163D +:10B750004179A4C1BBE81CC47BF185DF4AC373B83F +:10B76000FC3E83EF78F93915BE132B7B34F564FF6B +:10B7700099F2732A3853AB7B35DFC5B95BA3839D40 +:10B78000BB2DCAB3E07D80F4FAF735FD5A0CECFD11 +:10B79000A5515BFA34BF1779AD017B2CE47BAF6810 +:10B7A000C66D6D647C9CD94216A97F372A5E3CF732 +:10B7B0003AB6CDB2483DCEF8769BA63E2198A4E994 +:10B7C0003769AF4BF37D725796765C5B81E67B21E0 +:10B7D0003F47E4B5B0F33CC59642CDF7FDF10BBF52 +:10B7E00005F256480E6BD6D37F7E7C98F3388AB22A +:10B7F00003F393B0B7392B77E039F2FDF15E1C5FAC +:10B80000CFFF81FB67F17D2516670B7E20799E2C8B +:10B81000F83E145F1C4CF07E17E87E8EBF632289D1 +:10B82000FBD259C4E563EF980C7A0FE7379CEF3FE2 +:10B83000300DFE7D3FD72346DDFB2661BE65EF9BC5 +:10B840007C5024DE47D2BE4BD72F2F7C9C87793E7D +:10B8500062B8F7E98C57A234EFD385E78BC1DF3F9D +:10B86000187DEDF9C4BA463E9F3CC4FA4CD77CBF64 +:10B87000E51D81BFB8C1BFBFD58FBF648DDCBF33AD +:10B88000200E48C3EF46DD3B30EAB8067E1F2EAEE1 +:10B89000E97F1FF00B8F6708AEE37AFD631AAE7F76 +:10B8A00005DE451B6EFCA4746F1D8B63FF31BB1B53 +:10B8B00009363619C751D2E938DB4DECDE23D560A5 +:10B8C00098AF10710DD1C73D59EC9CDCAAA45FA0C4 +:10B8D0003F100939036AB723BF1181FB275F966CBC +:10B8E00026C0EBED96BEB7BFE382FBE9A1B7FF1D13 +:10B8F000F31D22AE8992617F6EA470F6E75BF8BB00 +:10B900000C90FF06BB3D75EE44BC87F308C46B008A +:10B9100003BF4FF108852199EA8F588315EF4BC576 +:10B920009A587D2AE46B68BBCFC8A538584B0CAC3D +:10B930007F26DC4761FB22B107958B6A7CEBF745DC +:10B940003EEDF94B24D8C749E9DAFD91CF48D9EB50 +:10B9500093002F050EC4E79417E725AADF3BE9DF24 +:10B960003F12F99E21F2C7E1F331DAFC8CC8CBCC4F +:10B97000BECEFC4CFF3B03BAFCCC7079A6D989FE45 +:10B98000F9E9D7C833998EB0DFFB3A22D02F10796E +:10B9900027B1DEDBD299FC4E48F2DE964ED79B9360 +:10B9A000EEF5C1782722587EE604CC3305F6176EF3 +:10B9B0008A85A57E4ABCB110AFC2F9E0D4B881FC3B +:10B9C00000799566957C9FB00FAE376EE7F33E9594 +:10B9D0004E10CFAD09DE2FC3FCEF9BD8DFCD783FF3 +:10B9E0009297314CBFDD95CEF4D053BC5F032FDF6F +:10B9F000E7FAEFFD38A279D759B46BE4FDCE35589C +:10BA00007CCD2AFFCEF5A4B91EE23C6726BFCFE568 +:10BA10006578FAE845E6DFAF6B7BD704F7A61E4CE6 +:10BA20002F7C0AF001ED601DEB945E13BCC7BDCF07 +:10BA3000E9FF2AC05BE722DEFDD0DFD56B5A44F177 +:10BA4000FD11F75F3E32B2BCD14711AC14F03C9807 +:10BA5000BEF029E8F7D1EC5E13D0B9BF3EBD17E5C3 +:10BA6000F0C1741FCEF7D14C5DFD165627FCFC8645 +:10BA700097F31FDACF41ECA5DE3EEADF2BDB68E26D +:10BA8000F947BDBE488BD6E89355077F8E7C7CBBBB +:10BA9000856C8754D4970F269A20C8A88E098CB33A +:10BAA00069F21FFF989EF828BD07D7D55AD897F19D +:10BAB000ED3CCC67D83AE93CB507591EBC56ACAF53 +:10BAC0005BBBBEEF73BA0EF76E9FDEDF184E9EA50E +:10BAD00083FC1C1B2FC9A19FA7C278B30EFD3A1E81 +:10BAE000CAED523DE6A555E772CFBC4CF94536F498 +:10BAF000C5ABE558ECFFBC26F5E23E5D1D69437A17 +:10BB0000D775D375C540191182BC3339A05DD77A7A +:10BB1000F5394CDAEF2ED265724B105718C3FBC6BD +:10BB2000F4FF35A407C7ABEDD2FEAEB73BC3F1417E +:10BB30005A0611E73491AFAA391EAA05DE835AF8D6 +:10BB4000C4FB44E25D50B7C17F06F877A1DD1290D7 +:10BB5000A7C23E937715C0B59AB890AEAB75765430 +:10BB6000BC67B4D6BA18F9686D8B1E7EAF09E0BC0D +:10BB7000A3EDDAEB12FC7315F407C5F74BE92E2C95 +:10BB80006B23CB8EA36CE4F5E07E1385EF12C88F98 +:10BB9000808F285E7CBF5CB4FF707ACF3321BA26D9 +:10BBA000397A9E05EC457BBCFF13584FFA99DEF3BA +:10BBB000121CD0B47A713FEAF2810B6FC2B93B7CA0 +:10BBC0002C63264CD0BBF306FA9FD507641BE40711 +:10BBD000AA0FBC82FC3A14DEFAEFB1933E01D7E71C +:10BBE0006ABC09B8443E5A2F3FE7D359BEE1499792 +:10BBF00057C9007F6B7417BE97D5B799DD2377C8F7 +:10BC0000D4D2C6C1A66140025B29DE85211EAF05E4 +:10BC1000F27E73CDECFD9AB76D4516B8279F60375D +:10BC2000F840FF35DBD6D8E1BEB478273C4132B0CE +:10BC3000BF0B40D6D8E1FD915566FEAEE557A24256 +:10BC400099945F7F6662EF873AA2FCF82E429F5D6F +:10BC5000C6F90B977D3A0DDE3148B96ACD85F36E92 +:10BC60001F71FC0AF8E716F74D63EF7832BA3932E4 +:10BC7000197C754ED3767817B199DA1B282FF07599 +:10BC80003673BB03673CD9BE42D0866FC5F1FD88D1 +:10BC90004D16C6A77511DE478A200FF106FB7B5DA6 +:10BCA0009FDABCB1B02FA07F7752F8B743BDEFFC4D +:10BCB000A50CA64FFE55EF468ABC749D5D218ED81B +:10BCC000703FB1DE3AFECE8D9EEEE2FBCB7F970752 +:10BCD000E58BA519ECFB50F1CFAD7C5D75F09EB7FF +:10BCE000CA3FAFA3760CE0AC83F7BCAFE1FF5FE0E7 +:10BCF00076AB0EFCF678F5EF8CBEE1711CF8FD59C1 +:10BD0000BECE678F1B4A3B0781F7AB192CDF33D1BF +:10BD1000A9F8605F645288BD9739543B71BF7B2896 +:10BD2000B8BA8B7A6F07B8217F3BD87C1B3258BBDF +:10BD30000BDCCFE88EEBAD42B9B0799F83B8FFA39F +:10BD400017C7BBD5EF0EFE86E3FBF27C66B7C5BB1B +:10BD50009DF94ABD047C25E8D118EFFB33E815783E +:10BD6000BF97ED0330BE1674007E76A17FAE8DDFE7 +:10BD700004DCCD7C5F49C46DC3BD935A07EF995F66 +:10BD800013FF0A7B8795C371E104F31721A296F292 +:10BD9000410F337E5FBD7B039E532A91ADE8EF5C7C +:10BDA000084AF83EDF05C2CE5D5C6863F9C1AA3D72 +:10BDB000D3B683B958E367E7AF5727B17B6050BF6D +:10BDC0000FCA666DBC23E6FB8CAC34819D5CF7A08A +:10BDD000567F5713B6EF0AFBCE10DF5D38C1FCD794 +:10BDE000AA27B4E354EF5EF01EC057AD3B2795C0C1 +:10BDF000ED8EDECFFF5E06BF37994FF2AFE71E57DD +:10BE000015F1FE3003F5B14F06BD3B9D9F93BEB0CB +:10BE10003B3351FDF77822474B9AFB4B17A9DC8F38 +:10BE2000190B7F5FC886E5910CEF4F32C08F798385 +:10BE3000ADFF8D0CFF4BACCED647943EF6BE6825C9 +:10BE4000B37B66485ED2FF34AFB004E19CEEFDF0F8 +:10BE5000AE18C5AFD9CCECA9F01F64F95E3906F273 +:10BE600078927FE1ADD0E5B99B4A717FB6D09B0354 +:10BE70007AB675A115DF91E830B0F7032D66F6EEBE +:10BE800051F0D9994760AF7D4CD7A345B02563EBFE +:10BE90000D911817E4AF1AF11C4DCB1C82EFC3892A +:10BEA000790A7A7DFB009E8CC5560F80D6EAF6E6AD +:10BEB000D854E313EE17D4715A7CE74026BEEBFB4F +:10BEC000C9C1F1584E248C3FC43D049813FC1D8118 +:10BED0002FF83B4C4475EF7362971432C2564A57A1 +:10BEE000E332A073CD56F6DE52DF0F089EE771FCF9 +:10BEF0002CB9C8151386AF66DF9E38BC1FC1EDDBB9 +:10BF00000A885761EF87FB6DE21EC48A08128852C7 +:10BF10009DDFA9E4FCBEEC208BC3D6104F06F45B7A +:10BF20006E2131068AB315C55DD3D11E6D30DAC1DD +:10BF30002FBDEEF32C5CCEF4ED2E42EC0876F145ED +:10BF400033EE4BD53D138DF9C48D863E9CDF3C8A84 +:10BF5000EBE3717C9F610CF1C2F9A7BA43E371DF97 +:10BF6000CE0CEF57E5A2DEB3005D8F81BDA5EB5E81 +:10BF7000FF7204BE8BD7FF3E8C8D04405E371E4A95 +:10BF8000C4B8DA91E9CDB9271BDE23E9CD407D4065 +:10BF9000F51CA4C65DA35A6F83F3337529D49FA102 +:10BFA000F5054F3FC9EAA37BAB0CB47EEFD32FB0AE +:10BFB000FAC4DEF350FFFAD32FB17A6E6F954CEBD3 +:10BFC000ED4F1FBF0DFE8E491D1C6083FB8A4FBFC6 +:10BFD0007E1BDC67B96817FE452FBE0F54F7D27879 +:10BFE00043AB8AEE8F8E62FAFB62046B77D1CDDEB3 +:10BFF000012759BD9A778B37F376C23F12EB14FDB8 +:10C0000048D2E0E34FE5FDD6F3777DE6469196080A +:10C01000F6AE7900CE7F1D3D389EE16514BF876482 +:10C02000EBC5733A621CFDBD7F31EF5DFCEF225D15 +:10C03000366AFF5EE6AC514C6FD3799A719E6C6F95 +:10C040000E9C97AB2B4FCB01BA517A299C5E0A7B91 +:10C0500067B883C147C7B5833F68EB9B06F6E6E840 +:10C06000D5347CBF51C04DFD3E2BFA671CFE1B39F9 +:10C070007FAC6FE2F8A230CB0837DBD705FA821D20 +:10C080006AE7EB7F54D51EC74BEBC5BFD770BDEB3E +:10C09000ABE4E37CD1EB53D1C50BFB13470F4C4012 +:10C0A000BAB4F7D3FD51CD38171B75FD0A08EE5B06 +:10C0B000D5C56562BFFBF93BF6E21D61E8E79EC2AC +:10C0C000FC4BE07FF15E1BF18EC2FDB11AAE1FFA90 +:10C0D000DF59EB62F73BC818BA3EC06B79591E5F57 +:10C0E0009F8DAFCFA67E27BA5FEE4EF5652C56FD2D +:10C0F000FD1AF17B3FDEFBC7CBCEE5E369E477B009 +:10C10000F180EE43D1A3F58BA687805387CF7E3C89 +:10C11000EBE013F804B9C57ED95AF911707E7D940D +:10C1200041F34E57BFFCBAFFC1F9F8FE5FEDD728C7 +:10C130001DE1BCB04BCBCFB5DD6E03FCDD3AD1AF1A +:10C14000B55AF7F788BAEF0E409E62E3C185785E74 +:10C15000B5F6A73FF84980F6BFEB856FC6108AEFAA +:10C160000B4A5B02BCFB54B3675B8C17F2464A2058 +:10C1700006F4E58520FB3BB17A7DDECBE920FCA807 +:10C180003A6E572E3EFBC0AD808FBFEE31DAC06EE7 +:10C190006EDC6B0E9931AE5F8FFE15ADBFCBEAF74B +:10C1A00063BE72E301AD3F74D7F7BE99E0427E0AE9 +:10C1B000A41A92A00CA5125AD6ED367A4280AF533B +:10C1C000B2874E433692BEED009FBE3FC0014F3452 +:10C1D0006CEC92579B62077EA716C8047EC7C6EE1A +:10C1E00007D0EFDAD83DFF3DF01F36EACE93570F68 +:10C1F000E1579D18A57D8F42E087049DE8C7347DF7 +:10C20000FF7B3F7C89C279E1F78939F82EE6EE5F42 +:10C21000C648F4FBA5AECC58F677CDB70EFADED003 +:10C2200065F007CC6ABBCAE8EA3A20618E861C64D6 +:10C23000658D311403F1754D8711EF2FD5FCE0BBEF +:10C24000CF407E88FCCE8CEF336CF8C1B137BF4451 +:10C25000EB1BF6191D650C6CAB9410A6CF4617F3BB +:10C260004B043DEEFAD1317C270C7E07FF55D0659B +:10C27000C3BEC326327920FE8ABB0EE3BB9D03E812 +:10C28000D3F5EE8DF8AEE7F7FF6602BEBE7048222A +:10C2900089EE81FDABF7FC3206DA09FAF4D36B00C4 +:10C2A0009D42B7BE9487ED308F20E8F57F0060C2D5 +:10C2B000017C0080000000001F8B080000000000CF +:10C2C000000BDD7C0B745455B6E0BE75EB975049FE +:10C2D0002A1F4240126F3EE4A32129F223FCB492AC +:10C2E000104CDA042A216840D4021422242442DBB0 +:10C2F00066D4B5521851E4D13371B0DFA88DFD0A70 +:10C300001A68FB3576E761C434025DA84DE38818EE +:10C310003E222ACD94F814688309A0A24F6D66EFDF +:10C320007DEE4DD5AD1082CE9AB5FABDB0B24ECEEF +:10C330003DE79EB3CFFEEF7DF6A5B9ABF2344402E4 +:10C340003483F1943F13F8E77232C0F6EBF18F912A +:10C35000004DAFBCF8FB9D71000D1F581C55F8A88F +:10C36000E1F72B23613CC069634BBC231BA0F1F9AF +:10C37000D5F14E1B3E3779E2EDDC8AE70DBF7A201E +:10C380005E89005872E88178C8A6559DA30DC5D472 +:10C390007A464302C0BD1BE6CCA0E78BC1FD38BF87 +:10C3A000F7BCECF262FBA5112AFE0D9F5FA69F9BD6 +:10C3B00003EDED8AC4F09CDE640188C2D68C4B216B +:10C3C0005C9EC3B2778B44EBDE0F5004F08015D433 +:10C3D0009F15DCFF92FA0AC078C50050C803568842 +:10C3E000A7F38A9FE6CD4FF4C839007F4B748EB215 +:10C3F00067331E3C7EB1867419D7950F958FF2DB9B +:10C40000B8AF188BD4F75200CAE839CDEF3139C331 +:10C410007274EF31FEB4FD7FAAEE8F70874BB9D8EE +:10C42000C6434327E3037A088EE592786779D77D80 +:10C43000550AD2E171F59CCD2F587C16EC2FDFFC0C +:10C44000E479820FFB1F51FF8BA3728517DF5FEE2C +:10C45000ADA9801CDEDF378AE679F7D649D4EFB67E +:10C46000804F8383D6C5DFAF63E89CA605E6A8C1ED +:10C47000E30897510AC6E71EC9BB05E16FEEFAA7AC +:10C48000F332AEBBF8699C9F1998DF3CC02FE6C021 +:10C49000733EEFA302BFF2FC2837E26B099D6BD21B +:10C4A000603AB69E28F1BE11B45EAD1211F7E98D67 +:10C4B000F8C744987859C676031E7EF4E0F7B416A0 +:10C4C0002164FC349ABC5B9F43781BDFB7383C88FF +:10C4D000DFC6174D2EC2CB67DB5E3F36AF00DB4EAB +:10C4E000535C15EFE2B44945020F448766FC6DCDFD +:10C4F00013F826FC356C2F0465BC78FE480C3D7F94 +:10C5000082F1FD99CD01C4E7CDDDA653FE207C95D7 +:10C51000E173C10F9EEB0C09D4FAAE237E5E6E036D +:10C52000870FF75D7E5476288427E867BE0E7D7FEF +:10C53000801E9DB24A0FFD3840BFD9353E80FFE6D0 +:10C5400021E453C36F283E1F09C1E797901D3505AD +:10C55000BB7FFBD765D7BBB307E3F7529BD3FB8603 +:10C5600009E0F3361CB3049EC72B0AE359E9C68DD4 +:10C5700046E1D82EB505380A41F8D4F0A8F1E9D241 +:10C58000DF35F13E03FCABF1A9CABF013E0D3DB75B +:10C590001E9FA1E34E426A6180FEA647C11381F44B +:10C5A000EFDF2D7B3721687D38FE38E2BF6F5BB24D +:10C5B000D783F8591D0677BB108E3E7B7F640CB67F +:10C5C000ABA345BF7FA4F971D21FDAF3FE30A8EF09 +:10C5D000443AF5B9FA23A36D81F317FC498E54B0A0 +:10C5E000EFF74245A7ED4A7CD8CE70F8418C97CB47 +:10C5F000B6A456DCFF42476A1EA2112E5821A93567 +:10C600008EFAE3F23C7C8A550C7F5F78640EEF1F54 +:10C610009EE425BA7E02AE635388961EA77134E26B +:10C620007591383234BCD91E09A8B216ED5A564558 +:10C63000F3EE59A7C7C762DB66338D7F098F70BBE6 +:10C64000F86953803FF07729AC637A346C0879BE7F +:10C65000EB56E6A7A521FCE42618460FE6A77DC405 +:10C660004F23F08F093081E5137037D45B2B54BD15 +:10C67000562E67FF0F20BCEF97C1426BC8D9EF4C15 +:10C68000C1737F897D9968E619C97CBACC7DC60CD7 +:10C69000A901FED6F8AE97F82E636879EF7DF9AF61 +:10C6A000450FE394C61D1FE6FC12DBDE1DEFA7BF9E +:10C6B0004AFD57DE4BFA1006CF2FDBF3CD5DA4C742 +:10C6C000FAF658189EBE3D7F497A98FA3B2D0E82A5 +:10C6D000B7EF518B93E0F5EC89F08EA3F144A43FC2 +:10C6E000F241FBEE4B397ED6CB8F319D2E2866D1A1 +:10C6F000EEFAF6A44474DC655180F4E21E4406BEF2 +:10C70000DFBC33CC0BF4FEEE4B45EE20FEF87F3D54 +:10C71000CF7233B8991F23A07E3BF16F3438E93CC8 +:10C72000CDAF4EFAF52ADCBFA96BAF79118E97FD1C +:10C73000E9FB1CD2437DDBF79A494F7D6EF2FF0A7D +:10C7400050657DAF34769810DF9FA3ED853100CF23 +:10C7500026BFE8F2D8AE841781873EC4039D0BF153 +:10C76000D240FA73287CC425FFA3E2E3FC5DB47FCA +:10C77000E3AE89202707E345728AE7115EABC4E781 +:10C7800017CFF75CCA011BD987556CF7873B77FE3B +:10C790007FB9734BBE6B39772D9D7BE43FE2B905C2 +:10C7A000FF1F27FB5438580E06F3F92B3FE3FEEF2B +:10C7B000231C0CEF35CAFF8AFF6A74DF8E748F1C4E +:10C7C0009EEE4FFDA7A5FB9B2ADD23EC16D267BB8F +:10C7D000BF4F82A0F30F77EECEFFA4E71EF0876471 +:10C7E000973505E15B07BE1E0A2156AB7EC9EA38C4 +:10C7F00003FBF56BC62A9B64116B70DCC17FE3926F +:10C800001F268B786335182A082F72DC52F637E41E +:10C81000B8B5EC3FA0B96778D6C44DDDBAF60A7159 +:10C82000965131F82C38AF7D15EE8FF3DA471AECBC +:10C83000ED0A3FFF889E5B689D486A7F7256AC7B1D +:10C84000A09EFC3FA3CDAC8B436C21F144789A5958 +:10C85000177784C16B7623D221CC6104AF44AE6AD2 +:10C86000D0FB38FFD5643B9F231CBC1EBBED47E1CA +:10C8700085E342A31A8FF14B8501BC0CE04D0C0FF0 +:10C880008B2763DCDA1E3AB711302E14E7E07812FA +:10C89000D438D2C8AF0CC69B163706E197E3CBA0BD +:10C8A00075F8BC1ADE07F0A9E2FB87E235943EC3B7 +:10C8B000E1F9E410780EB453ED1C7F84E17C44D69A +:10C8C000FADDF01CF9BBA66AB3290ECF59ED921C14 +:10C8D00084866AE83F3A1BFB502F3BB6F0B95D3DBA +:10C8E000F760FFED82F5096BB13F075D7EC8E3D6C7 +:10C8F000A7506B4F2825F84C92A3C789F0C15C93D1 +:10C90000630B36B1BBE0392597DE77EC35E2FB737C +:10C910006E1B9D47EF1F849ED211A4E7E74B3C0F8F +:10C9200012328D44BF5A107C8F3F75FB11CFB35527 +:10C930007A66A5C430FCF5E09A938F00CE6C77B58B +:10C94000B8F07CB392FAD3A283F211E35392992FF9 +:10C95000E6185DA6FBB319BEC72066B0DCCFA145C3 +:10C9600063086E97A985F134DDFE29E25D72DE2051 +:10C970005F1E71B5F8D6089F6AF4910378CD35F73C +:10C980009F5889E7B11F941D9B14C203B0BF0EDFEF +:10C99000E17B788E6AEAA706D6896D7DDD3D3D167E +:10C9A000CFA3F231DCB3B13C96F08F0B926B088DC4 +:10C9B0007BCB630B82FA3FFD483FFE883443D77F31 +:10C9C0002C59DF5F573223F8FDA1CE535D906C7276 +:10C9D000E384DAA725A7F70A719406DFFA553097A2 +:10C9E000F00D714EA586168C2BE0F3D5A788BCCD33 +:10C9F000603C09BCCC95A185E439B61416B882D642 +:10CA00005FA8AEBB507D1F88F926119B38158A3F61 +:10CA1000865AEFFD25B9268A5F914F9C24F775BB96 +:10CA20002086F84B9B777F8AD097EF47B9CB195E6A +:10CA30001407B20F6FCFCDD848723F141EDE9EBBD5 +:10CA4000203105E797BA0E19497F57DF33CB44767B +:10CA5000E958CD4706CA83E5A608F8E75D56126B8C +:10CA600082CEF104C18FFB1DFEB9885343D7F5A8D0 +:10CA7000E7FBC0000D34FE41A43B71AEEE7D2BBF41 +:10CA8000FF448AC2EDB108B14E2E2A1419E52A5688 +:10CA9000DD17B211EFE30378D7F61D0A4F037CC709 +:10CAA000CA10E0AE0241DF79979D89B541FBFF4294 +:10CAB000C5D7D1D5C2EE127E17048DBFA6C2AFE195 +:10CAC0003B74BFD7543AAE9A66617D7DAC1ABC64A4 +:10CAD000DF63EB6F617D857137E3FF5885E4E5F82F +:10CAE000139C368AA397A8727E0C445EA6F65D99C5 +:10CAF000F344EF98DC8974DE25F54B386F011B4455 +:10CB00005C6DC57F975330CCF5197571762D04F5A2 +:10CB1000695F8AAB23A9D53F0F8D9B5F4CB105F2AE +:10CB200030190C27C371E1A8ECB05C455EEC09320A +:10CB300018F303F1716E8981F3A2EF4CBB544BE7FC +:10CB40005C51996A207B75B8E262CCC2EC007E032E +:10CB500072DFEE4ECB0FF4D7575AEABDC27E71DCBE +:10CB60007E548DDB0FBB8ED84AB203F87FDB753164 +:10CB700086F3B49A9CC0D5E5449B37B41ED3F41613 +:10CB8000EA3C9CBAACCAE27D14415DE670FC7519C2 +:10CB9000E9912A8B1D674069C18244F2C3CAE5A9A5 +:10CBA000CF3F80E73BBCCD426928F8ECD923631521 +:10CBB0007CEE28787006C9C90470ACA6FCEC62C98A +:10CBC000F16762512894D86E687A70C98605076942 +:10CBD0009FD9DB2489FCE2CF54FE95B749CC1FB125 +:10CBE000CF48DE5BA4001F7DB651F0CBE26D828F93 +:10CBF000CAAAFAE7D3F3F5DB2C4A301F2D55EDC353 +:10CC0000D26D825F96556F3F984676A7E029CEBBDE +:10CC10005C22B942FC35542E2AF2E1F3D955878CB7 +:10CC2000E41F82C7D9931DF43EF2DD7F9F44FBBE13 +:10CC300068723CAA04D65B356D093F3FF622F28547 +:10CC400042F970CF8C58828BF83B87F8AC63DFE8F1 +:10CC500064923377912F99E89E1F4DEB2F7B21240F +:10CC60007FA6E65D17E3AF2D86E0D38F376C0EC944 +:10CC70001F85E47F42F9D794AAE75F6DFDA1E8AE76 +:10CC8000F1EB80DFA5D2A5BB58E4AB73639CEE60EB +:10CC9000FD5C902AE8A3B5DDBBBEFA6019D9EB02B2 +:10CCA0008B631C611FA2A7DB71ABB90D2505640660 +:10CCB0004BAD13DEA0FE1D2DD8473C25A59AF8BD2F +:10CCC0003BED1F954763FFEE04691FB50B94E41914 +:10CCD00031D84E4815FA6E5166C93E440754396A38 +:10CCE000CC6ECED3AD1B91437288FB109FA11EF476 +:10CCF00018AE60BF4BD0D93706E1A3CC1A06C620C8 +:10CD0000FC95DBA375FD5B1246EBE6572AC9BAF129 +:10CD10005B33B374E3558E09BAF1E6543BF3D1C1EA +:10CD2000824BF356E2390FEE32DB098507092F718A +:10CD300001BC20BC4F13BC0727BD37F65E3CCFE4D7 +:10CD40005423BF3799726B2497469147BC6F80EF8D +:10CD500080F97D7D8DE47D14E97C5FD562E6BB7250 +:10CD6000F9C47CF227D67B05DF35143EC8FCBC1E17 +:10CD7000D0BFC2F975CF4AAC2F974C35B15F590B74 +:10CD8000AE289F34988F564D3B5DC5EB4C92ED8499 +:10CD9000CFC51BF4E3B55533988FEB42F465ADAACC +:10CDA0004743F56B281FFEA1F0D218D203B7A7EABC +:10CDB000F3DA7F90845EF7A05E27FF6E283D34A0F3 +:10CDC0004743F8AF3955E83DAD2D97B3A3480FE57C +:10CDD0009AF5F3B4F67D8CF38C48800FDBACDCFE67 +:10CDE000B5CDCEEDFF694BE0F6A33685DB8FDB32A8 +:10CDF000B96D4E15762BB615E91C1BA49FAB5CE6EE +:10CE0000ABC951A8FE3CE837B0FC1CBC697564B2E4 +:10CE10004D8D4FF0BD8753A379FC4CF1C736293BAC +:10CE2000C0C7DDFE5336F25FE682D74476F90EF0D6 +:10CE300099C82FBC13FCDCBF1BD0A1C7760128DC2E +:10CE40002E0227E765EF857E9052C96F06CE1B9AAA +:10CE5000D25E7BCA83EBE4905D267F01439B603901 +:10CE60007955C5DB8854E793A9A4E7637A4ECC26AD +:10CE70003D7B9309C83F254E247B13ABC6536F17E8 +:10CE80004E0C5B7805FB7E2065E1FAD4C260FCB8ED +:10CE9000CD340FE95BAFC65D9CD73045676E5A9BBA +:10CEA0001C98F79C8A5F5B8AF3597ADF444AB990F1 +:10CEB000E070B03FA3C18B1644AA453BF652AADEF0 +:10CEC0004EE69ADD66BA0F58EC6831531C53BA61CE +:10CED0004298FF0A743F90E2FE4D287C428F087E04 +:10CEE000198A7E1ADD7F28DF68FC5198E2ECA27D6A +:10CEF0008D0670131E8C31F5098417B0D731FD5F94 +:10CF000055CF3F14DFE4147FBC2E9FEC6495C131F4 +:10CF10000EE991D3ED08237D71588DC772AA4E1D7D +:10CF2000482BA079B25DC2F1F51513C3C8FEAFB7A7 +:10CF30007992082F672447D843A477B6C8768E9F86 +:10CF400040D8C72555F129448759D30A594F9CAE7B +:10CF50004ACE23FDFCB58ADFB33495E4D225EE1129 +:10CF6000CF543E9144EBBC5D382A8FF699556961E8 +:10CF7000B93D7D3495E3C063054BE6AC8480DEBAF1 +:10CF80009DFEC679A737CBBCCEE98A64CE4FDF4E73 +:10CF90007A0BF545DD0699F591E6F7BD5D056CC7A1 +:10CFA000574D7BCFC6F32B4D40FEE16DF3F57A680C +:10CFB000B64BDF8FDD20ECEB8FF5EFCE86E8A3508C +:10CFC000FFEEAC4DE4196A313E7523BECB2A924D7B +:10CFD0009F529CD22A315F687AA9B64AC4ADB51572 +:10CFE0000BF2AD78EE28EF4489F45D5995524EF17D +:10CFF0006B75855414EC2F5657DCCF799FEA0DF7EB +:10D000009BE97EDD96E2FA0F923FD3963285EEA53C +:10D01000D7E37EC4FCB9DEF73EA0F3CDAA5EB16FC4 +:10D0200034E9FF2E1404A2B3372382E87C78F3C5D9 +:10D03000388E3B06E4A0C34CFE55E9E6F363480E88 +:10D0400042F50090F1A578135C0957F50BD579C32B +:10D05000E9354F2964525CDC2B814FC238A4B724D8 +:10D06000BE94E0ED4D341B459B5E2AECD4D4D76DC5 +:10D0700084D72A603BD53BBAD82AC667F0BDE24CBC +:10D08000BFED23A2D7B47ED0D9D7997E8387F8E4A9 +:10D09000E6AFAD3A3BDBE837F03D6409E8EDF73B3E +:10D0A00061913984B732ABDE8E97DBF5767CE6880A +:10D0B000C84D34EF9604BD3DEF7D733EE7272A95BA +:10D0C00009BAE7B3AC495E82F3D6CC49BA756A4077 +:10D0D000DC43CFC27632B6D58E9241E3741F3DABAE +:10D0E000B852B75EB71932293FD32F853B36215F3F +:10D0F000D6585DFAF3014C277C5E0A13F78C8DB489 +:10D100003EAED3D8FA15F3DD94D6EF38BE98E0EBF7 +:10D11000D4BD97BFBF5BB78FA3C75E466178DE7192 +:10D12000C7EBD43E166DF5C8B85E81DF5586C7845F +:10D13000A2332DAF53DB6A15FB3C188E7889A27D94 +:10D14000C5BDE68332ACA67CE92583BB81ECCB5A16 +:10D1500083B77301C27B54B28FA436D9E0AE4D437E +:10D16000FD55DCDF511645307EDDF93AB5ED2FC8AF +:10D170001E4B14D1BD6AC4DB9487ED94381E68B48D +:10D180001938BEFC2CA6336765909EFEEC67E25E04 +:10D1900017129C090BE228AF97C6F91F5759845301 +:10D1A000463C35EDC8E0FC5E5E46C942DA4F8E98DB +:10D1B0006E15F6D7D83FE0FFA6D0B8736722E5B565 +:10D1C000CA84DE815B4CACBFC20DAE4835E9C77680 +:10D1D000C87C8B6923E9BF536942DF85BF050AD547 +:10D1E0007584C7BAE5F1F4DEAD12505CA2C1575B9D +:10D1F000054EB2DF0FA5A979084AFCE1BC9A914718 +:10D20000B751BEE0545A04AF5354A5FCD944F93089 +:10D21000BBD14E7E5EEC71977D3CC2D91557B0975D +:10D22000E8DD75BC671AC9EFA93485E78FAA2859CC +:10D230005942FB3D2D03CDEFB24F1F41F3C1EB101F +:10D24000F7B39497C0A9B1F395F7C83F83FD269E25 +:10D25000A7EDBFB6F4B897CE117BDCB98CCF9B6934 +:10D2600053C625F378F29DE3C91EE1EB96A1E5F8DC +:10D27000E3752347929EAA29B18FA47A9F9AA7109B +:10D280004993194F1ED2EB760388BEA7FAF0741C9F +:10D290007F41EB03F800F1BE96EA4DC608FC8761BA +:10D2A000BF461A985F3BDDC6F9106DDC03C5885F89 +:10D2B000591B9FC9E3F690F5B4F59FDF5C7D788D2F +:10D2C0008DF06457FD61FB481731F0779725C28BCD +:10D2D000568F132E2B45C4970B0D4A0EB57363DC86 +:10D2E0009BD346D2BA8E74EA7F1CE11C352D99F58A +:10D2F000CFA7CF90FE996E62BDDE9CB98EEF0DBBBD +:10D30000CCCA8EE371544F807288CF4DFF745F6733 +:10D3100037AEDB6CFF8AE50BF9F756B297177A0C3C +:10D3200031648F16CA03E77102C270CA10E893DC39 +:10D330002D0C9CC799662579099CCF8AFD45EAFC8E +:10D34000E39BEFA87D8CF8FD1E2BD379A52AC36B38 +:10D3500063A043463EBC9839F936DAF7E23A342EF8 +:10D3600088D32E1A243B9E102EEAA4E25C99945F87 +:10D370003BD823FCCA4EA4B3930EE641BE290AACA7 +:10D380007771EA69DB785A672A7A5178AE457E333D +:10D3900028A4378CE0B3A07EE99ABAF0F5D438E23D +:10D3A0004B85C78FD33A1827966638DF4AE33A0D84 +:10D3B0002DDFF9D00FCA7736ABFAAAB9785536D730 +:10D3C0008D4C97D8DEDF942EF8BEB9F50BC62F181A +:10D3D000DD0EA26B63EB45D66B5ABF7795D0071D68 +:10D3E00026B8BB06DBC6BFCB77533E0DF5E01AD29D +:10D3F0008B8DF09A794590DF069DE707F460AE21AA +:10D40000E0D7199F96D94E84C26B7457F17E35923E +:10D410007D0EE5FE32D2B7D71AD1DED584D9E748E2 +:10D42000D8FF62CBF3B546F4CF6A12ED730CD88FF8 +:10D430001AF7ADE88FB6FFC2E0C03DB6C6CEE6F93A +:10D44000C9F677A99FB905FB343E41E3EF88D94E71 +:10D4500092A708D1FF7273C46C0FE7476C7CBF7052 +:10D46000A1228CF35F43E17376EBABBA7863D0B85B +:10D470002C097D592FF4C0B9CAD1ACCF20CD39C108 +:10D4800040FAB2766C1EE925CB38A1DFE29116C5D1 +:10D49000F8FB6794572BE2AF29BDE7AE48948FD9CC +:10D4A0005D4F9E972269BF3DBC5F235551E1F379E3 +:10D4B00059EE887194AF94FC27496F36551F49A7E0 +:10D4C000B8F28FE9AA3CDAFBD3884E73C1CDF1C81C +:10D4D0005C350F614066253FABCE9666A2F975F5C7 +:10D4E00021FE1BF8385EA9AD0AAD1B0ACA63C854F9 +:10D4F000F7D0739719E130A978688A491E47EF2160 +:10D500005C8A800BE1C4BE29AE275EF8F1DB14898A +:10D51000E43BD3CAF7C5E1371CCF715FC1AFEF6CF5 +:10D52000437B8922B5BDAD9BDBF5E920F4B0D16F1B +:10D5300076E03ACB8F03DBA772B991EDC085EE643C +:10D5400008F6DB268F13FE7A54B7C893225E1D843B +:10D55000D7B854F01990AE71AFBCB9AD5DA27911D6 +:10D560003C4FA3E3CD23A0332C26806FA48383E814 +:10D57000A0E11DF1994FFEE31BDF1D984A74FC23C7 +:10D58000C185EF77850BB9EF7F39CC4B7E42289C64 +:10D590002E159E5078175D239C8BAE11CE45147CC2 +:10D5A000140E0DAF26BF1A9E34F905556FCDAD4F41 +:10D5B000DEB4560AF46BAB92390ED4E01CCC3F9B20 +:10D5C000952BF1CF707C7393C69FAA1ED1F0A8C192 +:10D5D000A7E9852EBA3FD4C117BD510F5F34CB5395 +:10D5E00054EB1F594FC911467E5E9799B091F29244 +:10D5F000513D17E8520EDAC6A5083C777E03E48752 +:10D6000047B5EEE2F983CE13720E4D3F869E47D3A7 +:10D610009783CFA5EA4D558F6AFA731A2A00D67BF5 +:10D62000A49B25F293DD3AFFAF04EED3F98765D6CC +:10D63000FB43F25FFF4D37FF968455BAF14AE54947 +:10D64000DDF8AD994FE9FAD58E6775F367156FD49C +:10D650008DD7585FD0F5A7FA7BD8EF3CD856C1716B +:10D66000F24D67FAD9FFF4A9F1F46B6A3CFD06C5E7 +:10D67000D3289FFB289EC6767F9B839FFFEFB662D1 +:10D680006E0FB439B9ED6973711B2AD7335FBADDF8 +:10D6900048FE6B714F07FBBF3F4D751F1887749A8B +:10D6A00065F0B647203D269EE894B98ED2EDD0D9DC +:10D6B000DFD57B27BD437E56EC0119C294A1F56FDF +:10D6C000D4D7323883F2F35155FD40F5D3516A9ED9 +:10D6D00065A6111EB3207D6B6C46DF28A4D7A1710F +:10D6E000C26F24754DF7A1F556E07BD4FA7AC9D103 +:10D6F0000EFCDC43F78CD8FADC790C8ACB1AAFDE4F +:10D700003FE28FC5081E5A4F76CA7013E543E262A6 +:10D710008D64E7EB6810E19C837B5E8FEFCDB37582 +:10D72000729E68EEFE479B16E07378CC53C87E93DA +:10D7300066C73D1F182EDF78ED76FC10399B5457D5 +:10D7400020897CA227DAC879BAD0BCC96FC689FC07 +:10D75000EFCC768F1C4971CD21E0FBCD59AA9D45B8 +:10D760007CACB1C404E450E3FF1ABBD197114976F5 +:10D77000E7A9327AAFF1A8C2F808F51BB4B847E3BD +:10D780007BD4F7ED34FFC271607F6E62AFD7BF5EAE +:10D79000191C870C171F69F0EF6AAB67BED9D3E677 +:10D7A000E6D6D7D6A0F2630BF7DF686BE5FEBE3690 +:10D7B0000FB7FBDBD6A8FCD8C1E307DA9EE1FEC1B8 +:10D7C00036AFCA972FF0F39B54FD73699CAA97ACB0 +:10D7D000257C1F0346D106F841F1C055F8A131411F +:10D7E000E8E750BE188A0F308050E81E651EDA4305 +:10D7F000D2637780673CD5A1D42FE930719DEA8F41 +:10D80000E4873ADBD326CA4F84EAB7DB4061BE1B0C +:10D810006CEFDD8E6BB1F79A7E93316E233B659191 +:10D82000EF77505EE187FB17EE168263F8FD045D2B +:10D830004C0918FBC6505EF2D8561F8270AED0B9A4 +:10D84000DF7985FBDFD0387367A2908B1F0A1F46F4 +:10D85000E426A2FB70F08DCD704E492F0CD8B3702A +:10D8600096796CC7D8B82EDA6CF17A1FA578EFD507 +:10D87000305117617326D504E573A6A70B7DF34CD1 +:10D88000AC737A3AFB07BD5B7F49F2D23582F32F46 +:10D89000A171D4173D65A382FDA5507DDA6CBFC888 +:10D8A0007237C8CE4B06B6F3CD067053DD539E05D6 +:10D8B000AC12C2FAD7F4D2D962DFA95CE771C16EAB +:10D8C000BCEA7D6973EB795E7FC87183A8AF6ADEBD +:10D8D0005D685F189437589FAED6456080F8A935CB +:10D8E00080BF6BE5E769FDF53AFDF00F673F9DBF2F +:10D8F000D5E7ADD0EC107E67B92B990EF32842FA2C +:10D9000041F7034E37B5B614F793441F93E4B7D1EC +:10D91000F8B91DDFA6911F7DEEA649F61218AC0FCF +:10D92000AF55FF697A4FD3838F9BD5EF6406F23AE8 +:10D93000711328AFA3D1E397E9FAFA845039EB9B2E +:10D9400080044378FB5E16F57B7D11E15E0949EEAC +:10D95000DCF597E3542F053EBDFD765A6D5C179BB1 +:10D960003FDFC1761CD08E93EB8A27ED0D5EB7DCCE +:10D9700028E220303A32EF0C929B76B5FEE2056C3D +:10D98000E9FBA5C8F97EA312C46F3B54784BE64E61 +:10D99000078E2FE73BD90F8CB48BFC50B9150AC208 +:10D9A00068DDEF2E66D3BA33553F61AD097C44B7CD +:10D9B00051C51324F213B7C73A5F49A7FCE91353C3 +:10D9C000A339FF4CB9D6EB03FAA85CAE4A584072B3 +:10D9D00013676479D5F44C9DEDDFCDB281F2DD0E95 +:10D9E000A67728BE00FCFBD6E37BCE6EC9BE16062A +:10D9F000CBB1B37BEF71F2EB87F34F87D34FA1FA33 +:10DA000043C37B289EB7C7BADEA5736AFA25F4BC68 +:10DA10005A1EB909FCCCA76BE76F7251FB80A48832 +:10DA2000FB67E8705E87F45EDE7D3FD0FB79B2A8CD +:10DA30008FEDAF14F150A87C9F55E9D3A8EA8BBCB9 +:10DA400058B026103DDCC0FAB3AF324BC4211931B7 +:10DA5000AADEE84FAF0DAABFD4FC9A5EF5BB93D9FE +:10DA6000DD611E39287FF0457AB48883AC5FE8F425 +:10DA7000E0F2D66F74FA6B79B6E087BC76259FEA40 +:10DA8000CB56AAF77D5F26B92E91DC2DED7C6AC7B7 +:10DA90000185F6DBF0B30F88CEFB6D422F1F18C94E +:10DAA000B8E993F47542B3ADE755FBBF51272F4753 +:10DAB000AADFE3387776D7080FE15F834B8B8F358A +:10DAC0007DDDB4E7EC49B2DBBDD2F9930F13FE5E06 +:10DAD000B6B07FD64870C7725C6DCBC075B7EF37F4 +:10DAE000307E9B2A2D9B64CE232AE36B230278E9A8 +:10DAF0003B7BE5FA250D3E6D3F0DAE5E49E429B452 +:10DB000079A333845D9A9D2EEEC98F987A3E27BA09 +:10DB10009CDB71A34409C781E7D13D39F41D8F46D1 +:10DB200097FF5F7ED23C10FEF271C3AA07CC88AF8C +:10DB3000DECEF526CE2BFF48FF4883B73D02BCB4AE +:10DB40001E3841B1C7730A4FD42BE2218DF114B7AF +:10DB500089BE64DBF70DE9B1696ACB41248E4F556C +:10DB6000C17E5C6AE17A402B7470BB567228D4DEA9 +:10DB70002CB98C229FED657CCD8096B1F4FC26AB50 +:10DB800023C168A07B4691479C13BD662693311E36 +:10DB90001EA7FB0EA3D9638A27BD581BA5D66B0A07 +:10DBA0003C69F5930DF83B15F1628C06C588F31BB3 +:10DBB000D06F37217EEB96CCFD7936CDB74F653CE3 +:10DBC0006AF597F41EE1F1B6032DD5E4EFDCBEF75C +:10DBD0007F1E74E2F3B3311D9C97FD5BCFA69C17AB +:10DBE00071CED223BBF83BA8465FCF0C42EF72E860 +:10DBF000677BA4E17F3EF4707B17F473EB063B8FE9 +:10DC00002F0407B7F7808BDBC5D0C2EDFBA33734F9 +:10DC1000A124C0DC51EB4C5F40000FCBA21F2BA214 +:10DC20007DECA5CF8C637DA3DE4F69F728A1F71C9F +:10DC300035D136BE0FD1EE3B920DEEA68C427E4F13 +:10DC4000DC7F9E8CF0B6F3FD87F34EC2775FB4198C +:10DC5000E83BCBBE91429F78CE01E763FB4CEAFCE8 +:10DC6000F30AF70BCAF2447DEB2585FDB329EA3DA3 +:10DC7000A4A66F0B6E1475CB7059CC9FD6AFAF575F +:10DC80002BA02426BDFFADC2F717377F6DBCAA3E7F +:10DC9000B6650A7DC6255FF86741ACA12538BFD1BE +:10DCA0009E102FF2836ADFA2D839DFB12543E8CB7B +:10DCB000BE4803F30BFED4598B085E41DF29BBDE5F +:10DCC00052F91203CFF8C0F782538CBEBDF47CB971 +:10DCD000AAF7512BB3DD9A4A7C4A7CD9ADB70390A1 +:10DCE0007023D7114C5641D0E25909D79A1F437C73 +:10DCF000DD2333FF423FB74EB0B3DD2F0507B7D367 +:10DD0000C1C52DF239B715D0C1ED4FA093DB2AE87C +:10DD1000E1166E7038E822DB60F5C9428E1FB1F360 +:10DD2000776F954B0C94BF2EB85DD4990E8797BF33 +:10DD3000A87A6A78BCA040175D0B5EDC02BE50BCBE +:10DD40008CCD6479D2F0A2E1230CBC0984C769E0D0 +:10DD500097A9A59435BD5F826249FD327072BF7C80 +:10DD6000587CF8DAE9DEBDD8EF3672BE23141F65A1 +:10DD7000824F34BED1F45A8F7AFE4708D691013DC6 +:10DD800004990AF7357D8472C7F7C8DAFBA1FA4A0D +:10DD90001B2F18517A5141D57E2EE373CE9B17E489 +:10DDA00097AEA452A96F32FE43F4A794BE9482FDAD +:10DDB0006F33BE17FDDCD27C93036095F4F7D9D3A3 +:10DDC00071F1F643426E4111F71BDA778BED8784D0 +:10DDD000DC5EB0FDCC61273B3AD6E6A0F33E61465F +:10DDE0001C223C568B68E5541157EE6C03FECE4363 +:10DDF00083D762117E20CEF790DF36F28C672EE754 +:10DE0000DFD4732655F85E3329C41B4A3EE551D64C +:10DE100024B9CF939DD4D64778585F5FA7C2A3BDDE +:10DE200037C96676125C10979C4FE7FF38C9F51525 +:10DE3000BDD71721EE5FB5792FA8FEE62463874C86 +:10DE4000F7A17407C67EC910ED8D99CEBF675CE15E +:10DE5000F950F6A9EF133327A5E232DD964CCA1F1D +:10DE60008EF82E9DFC80CF271C79DC9F1CE04F098B +:10DE700089331FCFDFEE54ED9656FF4F7E1AD271D5 +:10DE8000D23D4E99545CDF27289A280F45F52DAFD7 +:10DE900073495AA63B2693EAAFE4FEC5C4979F4751 +:10DEA0001F317FC2F23456F01908FDB47BCF9B0FAF +:10DEB0005F27BA2E0892A3E63DDF7CF521CA5DF309 +:10DEC000059B83A6F7450AFC4CD9F5EC4AC61FD83A +:10DED000747A4393BBC9DD16FE0E6ACAAEAC7B6989 +:10DEE000DEB4232752E95C379FF0B753BAAB6FF724 +:10DEF0007BD7097ED7EEAF2E493FC68E9F56EDC524 +:10DF000069ABE033AD5E65C56E89EF6F56A8F56B02 +:10DF10002BA82E19DF6ADA6FE2FB26ADEEB4413D85 +:10DF2000E739F5DEA361C32251AFEC15FEB582FFE0 +:10DF3000480F4C3C6E0CC90F8BEF7E9B3A43F2C3EB +:10DF40001BCAAEF81D79685DCBF44CB5AE25111235 +:10DF5000F93C6ADDE750E7D7EA581683F356E21337 +:10DF600024934C7C5B6814F5DCE5F2232C5F2B12C8 +:10DF7000B3F3445DADA8435E1226CE17AED62FAFE5 +:10DF8000785E061BE3C7CCF53E1B518D1493FFFD55 +:10DF9000F5BFB09C2C51CFA2C9E37D6B24BE8F840A +:10DFA0000DB1CC6BB95B2D2C37B95B4739094FB933 +:10DFB00066E1876FDC6A5943FDF6D5E11ED2C77F63 +:10DFC00088EE1F43DF7DB78789FA323297742F9826 +:10DFD0009BD29F42F6FEE14C61D7DA55BBAFDD8B99 +:10DFE0006AF7E9EDAABD5F11913E8AE2B78179F641 +:10DFF00031BAEFA2DB553FBC80E024BFB27F8C5822 +:10E00000274C9C63EFA1DB46905FFCB2D13582EADE +:10E01000CF2E1C4D8982ABD49315FA901857C97333 +:10E02000141C5DC7DF1B153C63147851F970679BA6 +:10E03000133E3605F0AE9DA35CDE5666A6FBC47BA0 +:10E0400080EB3657BCF9EB762BF6573CC95F342092 +:10E05000A8995164D70AF7CBFC1DD0E4FDA2EE6A63 +:10E06000A75A076A49308012C45F614A3828417C48 +:10E070003402FD8AE07E84638C6E7E54718A6EBCAD +:10E080004BADBFD1EAA6353F37DA7983EEBD693DA6 +:10E09000A20E2CB6224FF71CBE1072508CFF443CCF +:10E0A000DB2293BC4DF1033C974CDF31754024B625 +:10E0B000937BF5F282F4E37A1E8B5AF71576D4A897 +:10E0C000FB5EDE629BC1F5E19661EAC17E97A97EA7 +:10E0D000273F16C6EABE931FC0B7BE3EAC08D2FEAD +:10E0E000D7D402C2AF09BC387E81DE603B045E4FEC +:10E0F00010BE35F9DA099D6CCF47BAF4781F55AFD9 +:10E10000C7FB68B71EEFD735E8F19ED8A2C7FBF56D +:10E11000AD7AFC267BF4784D5D3359377F5C47A997 +:10E12000AE9FF1CC4F74F3B3BCB5BAFE8D2FCCD3F8 +:10E13000CD1FDFB950379EDBBDF49AF860826F8542 +:10E140006E9EC607F9FB1FBA221F78F01FEB47F53A +:10E15000FB8F62C43BE56987A37FB1BF0348DFFD46 +:10E16000583EE80DE5836BD49F07A8C61EEDE1CCB1 +:10E17000FDA26E6DA6CDCA756DC83799745F7A0120 +:10E18000C21D643734BFC1A5EA99593623DB8D9986 +:10E1900023841ED2EAC942E3472D8E99552C85E48B +:10E1A00009F575EDC3DD7B14F6F874FD09474126CA +:10E1B000BB59F8EF4A7B04EE937F42DCA384C6ABE5 +:10E1C000057E773B99B789BD68A6158A5FF77F43BF +:10E1D000F9A4696AABDDBB84C659B066339FD76CBE +:10E1E000D7CE21F46F68BCFBA02CFC8F4B0637FB0D +:10E1F000BF16D27F72C01F6E2F1171AF16EFBE9D7A +:10E20000E84EC9A27A30437F2CB0DFEF17F77AD0FF +:10E2100009E4AFF50DD423FD731DD563F44503D791 +:10E22000DFFC76D5FA3A0FD78F81DD5F24D243F435 +:10E230003329CB9D9D85FAF69424E2D005C51FFFB6 +:10E24000EA258437270B449DC0FC4ECE436D8F7565 +:10E25000E666150E5F3FACE5DDB43C5C579B8FDB9B +:10E2600011D90E8E4F42F3617E83C86F781E12DF84 +:10E27000C57CC64005FC8E0B6B4CEC77801AB7DF73 +:10E28000A9D245CB6FCC57CF710A976840FB7A670C +:10E29000F75F982ECB127AD5BC488B834A3B178DFB +:10E2A000B5717D0838F31D22FFA5E53BAE937F884D +:10E2B0009F34DCF997259CD5E5C9605BEC35D59595 +:10E2C00006CE2DD63F5529FC825395D7717D6660C9 +:10E2D000FDCF39EF7667CB211DBFDFDDFABE8EBFE4 +:10E2E00017783ED28DFBE3FA4D9457F457644D27CF +:10E2F000BF02E9BE8CE8EEDF317AC61D88CF732FEE +:10E300005B8AAEA53E7C59C267BCFF89B61EA6AB30 +:10E3100076BE936DC7B9EF6FF3731B7A3E2D2FA1B5 +:10E32000B5E6D780F583560F3A54BE42931BF30DE2 +:10E3300029BCCE83B2F3A488B39897E1D20A13C75D +:10E34000AF27D43ADC136A1DEE09B50EF7845A776D +:10E350007B42ADBBED33D9D6503EE38424EE15DECF +:10E360001DF3D556332EFDBB44F7CF89BFFB4AFBC7 +:10E37000BF3290FE8BF327913CAD8D7777109E24B2 +:10E380000C2B46735DBE279DFCC433064F0ED54D46 +:10E39000BDF5DB4FEAA80EEA4CB8E773F2405ECF5A +:10E3A000FAA88EE2B93366218747B2DEAAA33AA85B +:10E3B000777151AA87F4EC94443D9BCD6FA6FBABDB +:10E3C0007F1BE9DE40FB52DD177FCF88CF893FB549 +:10E3D0007C689F49F87B7DAADFF7EB2C71FFB3398E +:10E3E0004BF89F5ABB5B95D723D4B29CAE4BE7FF4B +:10E3F0000FA0CAC275E5B8BF93EA603C7B2C9C5F56 +:10E4000009AD8FCAFB93C52705E5537764258BFFBC +:10E410003F25557CD71F776B18E785C0DF934435C0 +:10E420005E03F01E15F5A5E728CF4C727A0FE8EAD7 +:10E43000B3766409BFB4E9CD5327294F352FCBBD3F +:10E44000332BA89EA929722FE7B70E6429BC1FC2DF +:10E45000C9F1A14586C7883E4D563F7FDF335C9E9C +:10E460007CA8739FBBB7E79FB393A9BE4A1947FB2C +:10E4700068FB221C07B282F2DA1A1C8175AE2E07E5 +:10E480005AFE57EB1FA97E229DE4278FEAD4AE6087 +:10E49000374F6589FCC2091384D4B1A97803AD8EC6 +:10E4A0002D9BF5D4F75957AE63EBCB12E7CF43BBA7 +:10E4B0004B797E4B38DA8ABCC0BA38DF4DF738F377 +:10E4C0005B925F3A807858BA793C7FE7A0C1A1ADF2 +:10E4D000FB6592F36C56505E1DF94DFCFF22956171 +:10E4E000CC1F4D7BDE3F49FFFFC37DBF199F4FF817 +:10E4F000D5DE0BC52FE23591F079D8E033AB7574DA +:10E500005F115EB7EF3FCC756A1A7E7F2C3EFB121F +:10E510007B388EECDBF84D12D5ED36A9F7604DDA7D +:10E52000FD4B973EBF84F8F0509E62F0BD0BF0FDAE +:10E530008D45B51F16EDFDB146DDFBBF887445DC8A +:10E5400080E7DCA1EA099CEF35A8796DB237037941 +:10E550006DD51E15AAAA483A2EF2D985D4929DCF20 +:10E560008E62FB54A0ED877011FD1E973C9C271A0C +:10E57000B0EF6A7E5B5EB492F380C5D0C1AD454E0C +:10E5800066BB68F91038EF3F90C77A721FC7F5FF76 +:10E5900017A1D911A80051000000000000000000E0 +:10E5A0001F8B080000000000000BFB51CFC0F003E0 +:10E5B000095773A3F21FA0F1E7B2A3F215B950F9FE +:10E5C00082ACA8FC7C34FD8430231769EA93981947 +:10E5D00018B280B80888AB98F1ABBDCB44D8BC5218 +:10E5E00019082D01A47D80B80C88B70B3330EC14CA +:10E5F0006560E016616038214C9AFB08E17582D4B1 +:10E60000356F149386551551F9E53A0C0C1B7419A6 +:10E61000187EE941F83248F282FA0C0C153A10F6ED +:10E620006C3506867EA01A6145ECE6CE01CA4F0025 +:10E63000CA2BE943F800D43D6BC768030000000013 +:10E6400000000000000000001F8B08000000000018 +:10E65000000BDD7D0B7854D5B5F03E67CE9957267B +:10E660009393270384E424040812601212888876A6 +:10E67000120206C53A3CD4880893884A5124525A5B +:10E68000634B9BC93B04B0C18B152DC28041D1AAFD +:10E690008D0A96EBD5FE41A846B4BD5151B1C536A1 +:10E6A00050AFF6D6C7455B5BEFFDF5F2AFB5F63E72 +:10E6B00099734E1282F7F1FFF7FBE3A7DB7DF66B50 +:10E6C000EDB5D65EAFFD18973B9969D98C9DC5BF56 +:10E6D0006F30B650628C95C453C63A45AA3BC38985 +:10E6E000E67CBF149E8A6994B1745B9AC19883F1E9 +:10E6F0003F475AEBA78E69987AA30E3FA6CAFBFD47 +:10E700006E5E7696C5DBA9592CD25DC058137E1A71 +:10E710002D1AA731A664061FEC0058329993EA29F6 +:10E72000696EEA47D1A22C02F54749914C826721D4 +:10E7300053D84CC63CCCF80B318457CDC84FC27A65 +:10E74000CC97C2D885F1791AE9AE7AD6A2A8A6BC30 +:10E75000CAAA100EC662344FF57B2C960AF0B32F6E +:10E7600097E88BA70EDF8F911AF3691A173C1129CE +:10E77000865CBA33B80FF1200D3DAF5903F37246F2 +:10E78000114FA679CD3AD7BC9A12278A79A50D09DF +:10E790004F33CE6B427C1E03DF717EBEE1DBD9E7D7 +:10E7A000315C79F3B850A01ABA88260E3D3F15E7C0 +:10E7B00097C3D862313FD5E724BAC1BC160F352FB5 +:10E7C00085454352CEE079299A9BF0628CABB89D87 +:10E7D0002DCA8C387C2B99C6FB1F183FC8902F1D63 +:10E7E0001AA376152CB212C7033EEC233EF485081B +:10E7F000BFCE00944FC7345415057C361FBE90150C +:10E80000603B5F90DD0AA9D317610BA15EF3570E41 +:10E81000CE0F69C5D4BF01C732265BF033C0C70233 +:10E820000E3BBEF68D1378B7D17FDF3DF303374043 +:10E83000FF7588A721F062B407BCD5119F08FE3090 +:10E84000F860DF3D025F6943D333CFED6851520773 +:10E85000F341D7B6993AEF073A82F53A4A8C37B97D +:10E8600022262B3A635E318F7B334BDFA986FC2651 +:10E8700029F472037CCB0D69E55E286AF0463ACC38 +:10E88000F31FB59CC9D89FB17EE639967B4E437A7B +:10E89000CFD2DCA41A987737932CE31B694B3DCC7D +:10E8A00009F8F4BE7A37A57F7B7712CD6738BE6B47 +:10E8B000ABD79AB1DE403E6D436F0EAEB3801C9C69 +:10E8C0000070AAE94BAB902F9DE3F42292412149BD +:10E8D000C1F979703E50BE57C001F8DCCBE518C7CE +:10E8E000A333C0F17A412812D200DEC92C1295A0C0 +:10E8F000DF8CFD2CD863F0A8094FA3C272D4E527A2 +:10E900003CFC14F1901BE86C0431C272AAD80B983D +:10E910001A78B867A94CF45E7FEDC4BD8E9C38DCD4 +:10E920009F08FE61F99C6E4C0906108EE1D6E1BD90 +:10E9300080A7025ACFDD2477C72E6731E4E72DE2A6 +:10E94000FB1A16FE079CCFD85BC344872EC9E0B7DD +:10E9500000437E6A1670DFBBC24BF0348FD3F620C3 +:10E960003C2F211C8887D5024F83F9EE252CB7F365 +:10E97000DDD8E51192F107E5C82B089FA338ACB1AB +:10E980005CC652A5EE1E27A05895419EFB08FC3E92 +:10E990001C3F20F06FF07F4A81BE17E5C349418FCD +:10E9A000C0C2D6DB65C067C2C905FFCC605EA3D21A +:10E9B00014C26FA0BF7A218334B3A05B7232FA7E97 +:10E9C000CA05E53E5FF430E239E58AE351EC7A9F0F +:10E9D0001C3989FD24A46D90108ECCDA208BC0F8F0 +:10E9E0003F56234CC3F53EA73B14867C4BFA4C564E +:10E9F0006DE2AF8F051D1C01168A15C4E97CAF833B +:10EA0000C3BB3DBCDE73B30FEB7909CE0B58B1E04D +:10EA10000F600BE00F27F2874E7CF011F6A32FD783 +:10EA20005FC07693035AA3A413FF8F42BC011CA3BB +:10EA3000B1DD8FD39D55318E97E3886F9F2CF0A267 +:10EA4000C33F80A74499C37090A904D7A61B210394 +:10EA5000E3A4FB584C077C3956F37C46018B856058 +:10EA6000E23E1BDE7C025F81E2600F763536587B2A +:10EA70003887E38749007F0AEB0BA9F02141EF8932 +:10EA8000A2AC6A536A7FFF03E8AFADD7118C321393 +:10EA90003F32E0C7A9713CB93361DDE50BDE60713F +:10EAA000BE34EA8FA4470CBE517C5CCF19FA02F841 +:10EAB000364522B9C6F9F67CF5925AE7D0DF43B95C +:10EAC000A66832E2D1E9E6786C092C8E227E3E47B8 +:10EAD0001C23BE3A0B894EC073A4A7F04F86BC1A04 +:10EAE00008C590FF482ECE8CDB2BEE3C99F598E6BE +:10EAF000A9647A2D795605EC06E37D47D8306A9DE6 +:10EB000093E070FA385F83DE89214B2B3ED6E3F128 +:10EB1000630D27B5C7E99E1D8FF9EFD37846FB4DEE +:10EB20007945C4A7F6792AD80EEA48D0F06CCEE031 +:10EB300076C3E3C736DE522BBCE7DDCEA7E8EF1B7A +:10EB40006D72CFD54E61EF1BF801245E36603772CF +:10EB50003AB5A9EC90047AB629B395D8AB0DFF036A +:10EB6000F46D659CFE2C225BF49D23533EE5223B15 +:10EB700041E7FD04B8BDE562F37BA842E0FCECAFE1 +:10EB80001CC15FC92CBC02F91EECC031663CAB4E07 +:10EB90006E6FB2E6A5546FEFA6EFF64868B77C4FEC +:10EBA0002B74E871BEDA6BC31B638D04D7EEFA18C1 +:10EBB000FB032C5135AD96E462F6C630D131ABEE95 +:10EBC0008C84795766BF8479A37C805F9B397FB73B +:10EBD000B42F4E6258EED665940BB99D398D6E0BED +:10EBE0009F86D952582FD98CF3E34F203D6BF02BE1 +:10EBF0008CEFAAF3127F187C69F0A1D1FF88EB316A +:10EC00001A3A9C07F3BB42E0FD0A213758B1FA5E7D +:10EC1000BF41CF5CA26F3C0FF4FDF84E07C99F685F +:10EC2000A114DB270D2E5F28E4D042FC6EC00770D4 +:10EC3000C7248919FA16F1BA50941D39F8F6C41987 +:10EC400000F2AF830EA03160F7E04B5B6640FFFF40 +:10EC50007821E475012FD6C7FF85FC3FE6B050054B +:10EC6000969748B128F4BB704E1BF91757943A4851 +:10EC70002F2C44F84D78F9E4D09F15C4FFBA39D64B +:10EC8000EF8F21EC24972A685D19F0AC2D7250FFAC +:10EC9000BF2E96681D1F7DF783BB2E02F85E9D2355 +:10ECA0000511BE5F07FFE043BA19E30DE04B671A99 +:10ECB000E2CB3ECE00BEDDC12A940FAB35A78E72EB +:10ECC000E71647B057477A8F9283FB74FC3EB10238 +:10ECD000F16FC8C537A5D1DC8FF0C9C11E6CF7A68E +:10ECE000A314F97238BAAE5618D38A20655BFAD0ED +:10ECF000CE6631F54CBF69FDD69D6C683E6A926365 +:10ED000087A5C4B4F7A73074406621DD3EF32D4ECD +:10ED1000EA61C3F7FFA77A7703FA497FAB8F361F03 +:10ED2000550797DFE260B5B89E6E61EC3D570ACE9D +:10ED300037EABC16F4C749C9CDE72FE4BA31CF5B37 +:10ED4000F67B1A14139E56FBF8BAB7C33D803FD129 +:10ED50001EFAEFC1FEEDED876DA758ED69B0674E65 +:10ED6000A13C70A7AD8F8E017CDEF2581933EB1DEC +:10ED7000841BF59E31CEB0F0A69D1FBC23ADC3CF42 +:10ED80007C8DAD68AF34A99C1F9AD3E560231BCC62 +:10ED90000F06FE9B7C8D1943E90B03FFC007BA8663 +:10EDA000F8074786F8E6ADA652D46D6364CF90F6B7 +:10EDB000F7487CE294814F12FEFBF924477673F901 +:10EDC000F03F874F26CAE9FF73F8C4B55172F6FBCE +:10EDD000D04F642F8E4AC3CF12E37AE2DBCCACDF94 +:10EDE000B1BE3613FD62FEB75261EE52900B7294C3 +:10EDF000B78F806181FA6665D465B56B0C7882E562 +:10EE0000A4F7560A7BEA70FFD36FCE84F17E1375A8 +:10EE100004511EFF66A383EC9CDFD472F9D8CF6245 +:10EE20005B67A23E38EE2039D61F3D9228FCCA2CE3 +:10EE3000C4CF55827F4FD523A2187B17FCBC9E49B7 +:10EE400084EF2C8CA7BCABF65D0F2E3BFCCD2C3B8E +:10EE50000EAECABB4880D98C7534CE6B88166094D0 +:10EE600089E7AF6E9C5716257F664BEBA5A6F9D5B3 +:10EE70006C9442644F8719F92F9B24F1BD5D2238B1 +:10EE8000DDE067A39F1391791C6294148EC826BF9E +:10EE90008FE50122CFC3AEFA3DC23F299E2F9123B9 +:10EEA0006BB09F9A8DC94ED40735ED9FAAB82E3707 +:10EEB000CB1AE763A56F1CCEBF7FC00FEB1BB768F3 +:10EEC000AA693C0FC7EF667968BFD83E5EF5C64FAA +:10EED0007F390AF5459D142437D0DD376E85C95F2B +:10EEE000EC402700E617ADE6E345474BE47F1AE523 +:10EEF000F5384E3A8E27FCBDFFF8BC37E1BA183C16 +:10EF00006F26F4694F22E2F537AB97244568DE118E +:10EF1000D2AF063FBD7CEA6115F9902D4D27BEAFFB +:10EF2000697658EC98151B122C7CB96CE39273C669 +:10EF30000358AD898FCDEB8AA5113FA4083E4967E0 +:10EF4000E02D91FDCDE31D1412017832B45AF21771 +:10EF500003A59D87B90F1023FC8C097597814A651D +:10EF600077272E7B27A25381AECCC43824FC918F07 +:10EF7000A644C57A96CEBAD03F6521B4F733F1BB2B +:10EF8000010FF05DE056937D04FFA62CB7E67DC52A +:10EF90008AC55E7098EDA99CF87C8CF9FA8C38577C +:10EFA000A893E2059BA5EE13B87EB6B8AF2F5B0819 +:10EFB000F874F633E607BE4F4C5362316C1FE4F22F +:10EFC000C581F306FE494973C77AA08F842CE048B7 +:10EFD000A48302D887D451190991DD2BE68F7134AF +:10EFE000A45B8AA0DB96CAA264AC67F4070B4E3F11 +:10EFF00057BC4229E0F13EA5A0BD8FA7DC6F776B1F +:10F00000B5843F90AF6F201FB1E5D290F14D639C66 +:10F0100091E4E279D7034F5581F9DFC1BC418CBB44 +:10F020002539832722D0B42EDF49FA569D531B453C +:10F03000FA5F2745FE09D775D22575D9C8BFD225F5 +:10F040007593FA81FFFC53B8DEAABA68397B1FD2E8 +:10F05000405A38FA3E94BB1D0EDEFF992C8B1FA937 +:10F06000F65CCB748C3FFB82A110DAF9AC90E20F16 +:10F07000AA3B48A9E6E0EB5016A9DB21ECE310FC23 +:10F0800063EAA7C11BF91BC28371378CCB397C465D +:10F090009CADFFBE9B51EE26BA49EECE7314249D63 +:10F0A00036D905643898F8C688B31979D5ED6F7EDE +:10F0B0006F06C2C1E55547E2FE00F61B6511A703C6 +:10F0C000E79317B2C6F17DDC8F89D77F2840FE0D0C +:10F0D000DAF3B0AEFC172D7763B932C788CFD71AF1 +:10F0E000716CCD81F3AAB2EA57771AB4A3F5CA3E80 +:10F0F00022FF5D7CEF987C937BA8F5FE133912709C +:10F1000098E4A433C0E33B896CA786F6096031EF2D +:10F110006CAA89DE22EE54536AF0957ECD6F81DEB3 +:10F12000DFEA55590766BF046B6626C2CFFF4EFF64 +:10F1300081FB3FDF42FF05D2552CECC7C97FCCE4F1 +:10F14000CA6E9F881301BE3FF6CD7CB021874F0168 +:10F15000E16E1671AD390E1EBF557CAD9CDFE372BA +:10F16000403A2BF1F544FB253E2E37A2CCDD40F290 +:10F17000AA9DFB0B51F807F337765AFD879B77580A +:10F18000F337B1C519C8C7376D57C1A702786DF2FB +:10F1900022CFC1E3E137B3DA56D4F36D22DE5FA3A9 +:10F1A00031251584E1DA9F3F3013E35F7305DFFDFE +:10F1B00009F84277C5F1BA262DE60C15C4E7A73049 +:10F1C0003EBF2629F8CD8BA4E1E7D7A6F67D13FD37 +:10F1D000A4E85695F891097949ED6128E58023E482 +:10F1E00099666947F0DED06E9DDF48F3B7CF1724EC +:10F1F00034CD77CDFE6AE287E1E6E3DC2F517CCFA8 +:10F20000CE57CBC43A31F8E66F1EFF34960472C174 +:10F21000CDD33BBCFEBD98FECD931543BE684421C3 +:10F22000897AB69C713FF87789B126A26FED74A4F4 +:10F23000EF48ED5BB17DC97FBC7DC77FB2FD5D232B +:10F24000C0BF29AD338CEBD988BFB8DDA110C7365C +:10F250005FCF9B0223946742B9E31CE579E76E0F09 +:10F26000EBF2EC59E09B6AFC44FA3A9A89709D16DD +:10F27000F663AF1ABE12EDBADE371D6802B3DE6464 +:10F28000AD3580F3689174B487ABB72C4AC2384E61 +:10F29000F571479A9C231637D6CF59D0857EF73D16 +:10F2A0000E55D867FD0AEA99EAD29CF9289F7BD5CA +:10F2B0006866328C5FF9431E172A2B6D5885EDBEA8 +:10F2C000A95FABBA304EFE58D372CCAFD12F555C8C +:10F2D000306E4CF4F3F1A34FCE64005FEFE389ACE2 +:10F2E00007E157624E06E91AE077E4B75B7E96487D +:10F2F0007A77CD536B1F5C08FD483F4F24782A9FD7 +:10F30000BAF92117C1D7C4F9F7992549778B79B98B +:10F310000135BD0D621F321ACD5C024DD6BAD84AF6 +:10F32000D41B061E0CFEAD692F7C318070ED4FA6FC +:10F33000FD8E01BE57A03EB4AF8674F1107CFF4B2A +:10F34000078F7B7F94E3AA4238A5FD8757D0FCBA8C +:10F35000AF51717E5273B2F39F60BC671DAA518F8B +:10F36000E6117D448A4D80F28F1E91F8BCBAA7EE5B +:10F37000F1E4E0F87B9C35B43FDC407831E0ADD976 +:10F380005FD83A06EAD56C49CE95615E737FF6B8D0 +:10F390001FEDBF75FB1D3D680F404A76C10DED0E98 +:10F3A0009B3F12F249C007B709F973DB81B5249F6F +:10F3B0006FEBDEFC29CA9F7587D4D366B900782627 +:10F3C0007FF796B71D418C15DDF2F4C37ED4BF7F65 +:10F3D000EADBE7477AC038D54E5807C5AF2A96769C +:10F3E000D8FF172983FB03854EFEDDBAEE4D7CBCAA +:10F3F00003577C8071AD750CDA9BE4CF9FF07F469C +:10F400000FF69B3F7658E32B9FB3576792BEDB9F67 +:10F410003AA4BD62F8CB861CFAE4D09F774561FC24 +:10F420008F9EFA7017EE4FF67EF5E75DDF47FC3FE3 +:10F43000EFD190CFD73DFA4FBBBE87FAE8904B464D +:10F440007EF9E4F9871FBA1FF29FBC33A90897968B +:10F450004BE172ED939CBF65201E363C3F6F14E27A +:10F4600061C3C1B9A3D810F10323FD04F82B66E2F0 +:10F470002FC31ED40F497CF3EB3991DAE873E48093 +:10F48000A3075DD98F4FB862C8D7EBE05B1DF89D2D +:10F49000B7D5DEBC90F006F98D80E7DB1EE3F1BA4C +:10F4A000C1F88E8E950398F68CC52DABDB0E2CB96A +:10F4B000F2E2624CD5A08EF36567489FD9DBAD3B85 +:10F4C0000E749D3E3C1D3F675F3A11EFEBD8163E30 +:10F4D0006EEDA51F201FD9E9F831FECF8583E938ED +:10F4E00051B1D3F1D6DDF763E181D421F7790D3A3B +:10F4F000AE3D7855D250711A339E7BCE03CFAB25EB +:10F500000ED79F1DA1994A09F2C34F1FBA3F0DE9BB +:10F51000EC0A2E44BA3FFE79161841EC8FEA991591 +:10F52000B81ECF3CEFD2F6429B35CFBF4D7AEF935A +:10F5300083AF39753AA701AE4306EE3B0EFCF5A149 +:10F540007EBF4DF8CBEBBA127B304E61D0EBB6D814 +:10F55000A24ADD4FDF297E715B8CAF83DB62879728 +:10F560004A43D06F9D92CBF5682C9DF0B256EFA325 +:10F57000388399AE5229D2F3D47CE4BFE1E869CC58 +:10F580005F7B8E0E47C4E9DAC5D7EF70EBF4933D8D +:10F59000C0F14983E9FC89B07FD6C5A4B787A2BB77 +:10F5A00011CF678EE5E7A4979D2FBEA558E362466D +:10F5B0007B63FE23ADEF91E7F5F5F05685CE41FA7A +:10F5C00060FC35CCE372FBD739B02EE1D36BAA7E59 +:10F5D000EFB7914F5E56D95E68F2CDDC0F147DEA2D +:10F5E0006078FF11ED2893DF7F65A9D4920AEDAE14 +:10F5F0000C819ED1E3FC6A9487E738986E82E7B36A +:10F60000CA0D99B8EE8E045814E5FBD1D17CBFFA2F +:10F6100097A36F3D8ADF71DF9A41FFADF51A6EEE59 +:10F62000B0F6FA00A503E73842D914875AAF31BEC5 +:10F630003FBAFFD1471F85FC653800A8AE23A04222 +:10F64000CDF18D1302DED7EBDD64FF5D9BFFA4825D +:10F650007A5D2A7852417D7379E44905CF211C1DDA +:10F6600088C7E82D7864E2B2FCE4A20EE8FF9712A6 +:10F67000D7B7972DDCA3D498FABD5CF47379C19EFB +:10F680004C94C7C7C479103BBEFE20E46DC3E48729 +:10F690003371BC63E3EECD247F9985691E59C28F17 +:10F6A0003E3AE1E19DEB018FBDF912C5D37AEB1A29 +:10F6B0007D28977BF52516FE3B3CF90309FBC90A1B +:10F6C000EC51507EEF1571982E8C9FC1FC1E02BC30 +:10F6D000617E3FE00DD347EB754A1FABCFA7F22702 +:10F6E000EA8394EFAE2FA5FC53F521CA1FA8AFA45F +:10F6F000FC33F561CA1FAAAFA2F4B9FAD5F4DDDF75 +:10F70000B1BF3905E34C1748DD1867FA457D2D95E3 +:10F71000F7D4D751F9830AF71BB2DAC13F00B95BBE +:10F7200057C7F7CDF7AAE1AAB0097EA3DEDB0AF737 +:10F730006B7DFE489F82F1EECAA52548FF9609D74A +:10F740004C453AF6EA7F1741BBE3F33C37B9ACE4EA +:10F7500012C2BA7879C22C3A9F725F72E46DC5E426 +:10F76000C7E6B63B59CF0CA463AC2203F5E18D602C +:10F77000F7011E2FABDCA364403F8B2339BA4CF456 +:10F78000EC6E4E417F64AA285F58A896178C4CC730 +:10F790004705DC2F95D566E23A7B49E271B46B23CD +:10F7A0000E966F5AFF4B2AADF97B44BB940579E75F +:10F7B0003C8F9318847A163B87AF2317EE6B9AD64B +:10F7C0008F471F63A9E7D08E5C82FEFA70F2C9E111 +:10F7D000AFE4F6B3A6BC8FF20D70209D95E3F286E0 +:10F7E000225719786EC9F80B517EE5401E3C33C391 +:10F7F000EE067C5D173AAEA21DBF025C2715ECF049 +:10F800001A1674A23D0E7E31A537B15A4A5D993D54 +:10F810002A8FF35568B80F2C852E729C4D38573CB3 +:10F82000C6BA5F6CC097B240A1F8CC7AC91B443EFF +:10F83000681ACD0EA0DFD224D6ABD15EFD620AD30A +:10F84000010FD3D55C4B7C434D0B57A19CBBA35FF1 +:10F85000D2B1FD662592AD96F08929263F5F4D8B8A +:10F86000909F582F45C6ABD0FEAED97F3AE1403BC2 +:10F87000EAA047C738F127C59F39917FC82742FEC4 +:10F88000B9D31BDB9783F9FE6A1E0CE9A1388F4BB5 +:10F89000E009CFED605CD7E5F651DC83652A1F995E +:10F8A000F74F6FD278BCA429F1FDD1386E3902C26E +:10F8B000E1629919141DA5BF6AA55F457CAE647D00 +:10F8C000942E67DD94CE5523B3701ECBC03FC27C0F +:10F8D0006382FF12A4F37F177CF6736CD04F08F994 +:10F8E0003F30DB1D31FBCF0B54CEEFD78814D6F55C +:10F8F0005A5CCFC3D1DD90F7869CCF4A0A2F52D3F2 +:10F90000E3EBC548876B6F5F37063CC6B9BC94050F +:10F910001B5E1A07F8D8DBA9937E9A5BD3EECA82E6 +:10F92000A2DD5BF422C20573CB8897AC814023F73C +:10F9300053EA18C7233B29111E593481CBEB817A36 +:10F94000E1A9685FECDAF89907E5F4671B735FC318 +:10F95000ED8B91E669D76BF7664FDB86FBCAD9BDA5 +:10F960007C1F655BF6BF1F76413EAB9FEB812C5F32 +:10F97000ED24F4D7CA7EF7CFA331DE989514F9AE03 +:10F980006AE2EF5D3FA8CDC6F1BF524277A8244797 +:10F9900037B808442167EAB6E8DBF2F5E1F1B5B71C +:10F9A0003DF79CF8B5C33D2037869163F1F5CCEB6C +:10F9B000819FC9DC45243F7A741065FD0949CFF465 +:10F9C00041E9F5753D2AF205F07127C27D1D8BA92D +:10F9D000DCAFD73210AF37693AD16157C6FBA349C4 +:10F9E000F82BFD39E1AF73CE96B121EDAD36611F35 +:10F9F000003814E7CB12713A39E1A3D1A8DFBBD4A8 +:10FA0000A1F75D581DAC0FD33E1DD84C643FC158C3 +:10FA100074DEA11A0706D0AAE57E09D75B85B6A8D1 +:10FA2000221950B462638EB08B383FADD898BC07B2 +:10FA3000E30D9BD4C8CF5492BFB514D7AEF65D503A +:10FA400081F6F5F9CE0F46EF47BBDD58CFC67C1BDC +:10FA5000BC9167B1DF5C2DB93C594739CCE3C2F3A7 +:10FA60001C3E8AEB7C96C6C80F1BAEFF23E2BCE5AA +:10FA7000DF8BB8B0EA933A513EEC05FAE3FEED13A2 +:10FA8000C0B7F8FD7F815D81F95D605760FE9760CA +:10FA90005760FE1FC0AEC0FCA3605760FA10D815B7 +:10FAA000F87D3FD8150A3F8FF82B840FE432C1D57B +:10FAB000E464ABE97CB7381769C0F196A08391BEC6 +:10FAC000ADEA34EF2E9493A8DFDF75F273264AED8A +:10FAD000D8C5893C45FE486AEFEB41F3DB5FCC6259 +:10FAE00012C0EDFBB2164F02B3A2F78287D11F9E60 +:10FAF000E04B6EF2437AF062503860A7DC351314A5 +:10FB0000762E9EB7D37F722BD273368F9B775D0C88 +:10FB1000FF9F84E7689D44E796D7189D8BDC77317B +:10FB2000702D7CF72F6CBD1DFD86FBDF8272A09BC4 +:10FB3000BFF3ADEF637ABFB3B3DC0B747E7A0C0B0B +:10FB4000A21DEDDFFEFE0FB09EBFF7FE6F533A67BA +:10FB5000FF7778FAEC1D58FF47172F6C401AFAFB15 +:10FB60007AEEC4EFE91B2365C9901F156878250755 +:10FB7000DA77663616DE00F9A75F6E7DA719F2CF39 +:10FB80001C6DAEDE02F9FB8E6EDF86E5CED11B7AF0 +:10FB90007360BCFB6B653A9F34C59943F86ACB5CD4 +:10FBA0004FDF7F529B46DF938E7DA1CD85B4709C45 +:10FBB0001CC67DD167E6289531F3BE80D341EDBCEC +:10FBC0004E11AFCEE4F6396EA0225E95A042FE9EA5 +:10FBD0007A9CEFDFA84779DEA54543924EF17CAFD2 +:10FBE00013F9B2D67A5ED4D8B7F13BB93E29DCC35B +:10FBF000D7C1817E3986F1F2437D8D09680F1FEAF6 +:10FC0000CB75A01C2BCA9469DFF6507F4A6A22E0AC +:10FC10007D67DFFA5174D60104F035D04FA2D34B83 +:10FC20007C90E1A4B5676A9F42ED0B07DADFED49EE +:10FC3000C2F963FB9C78FB74D13E0BDB9798DBCB5E +:10FC40000E4C83D8BE80B7473B31F335EBF8E39CCD +:10FC5000FCBCE7C441E32F9671FC09627CFBBA9AB5 +:10FC600020C66D91A209D3503FAF55443C3C487A21 +:10FC7000A54420CCA83FCFC9F93E09F7E3287E1858 +:10FC8000A1719E399E9BC4CEB5EF8942D59053A4F5 +:10FC9000F7BD71794FF9145B7E8CAD7EAEADFC0281 +:10FCA0005B79912D9F44F0178A6F756817A0BD503E +:10FCB0009B447AB550EC671B7AB674A09EF6CAAD29 +:10FCC000A85F172AFCBC82D0AFA5A2FE915FCDF73A +:10FCD000F6939C0ED077D740BB68C2645CA7AFCACE +:10FCE0008CF007EE30D935A2DDCFA5E02B05281F1B +:10FCF0005EE6E70EE2F80BBBB9DFC5F15D2CFA6BEF +:10FD0000EB2CA2FA7F57A904693FD3A6EFB2F110FA +:10FD100007D0A1A5EFEEB9205358F254A910DBE5A6 +:10FD2000ED0C37E290AE183BE28576339FD37F54DB +:10FD30000169510FC857583745DBF9BE6661A742C4 +:10FD4000EBA83093E75516BE7C329076A623E49D4F +:10FD50008CF3FF2D3FE755D85B64B1F32774F2F3C2 +:10FD600021BB9CDC9E553365EA47DD3EDB52EF8BC1 +:10FD7000FEF1E7D4DF5DF561CBB9F87D03FA8FD3EF +:10FD80006D82C0DB803D21F8CE4E477BBD57EEE152 +:10FD9000E714871F97FBA507058B31DADA827CA76A +:10FDA0004CE73658F432C73C459CFB9C1D2F6FDB5B +:10FDB0006E2D7F66A0FD9573316EF54CA742E5F779 +:10FDC00038AF9CDB90076415F8553BF9B97B905B25 +:10FDD0005C4E6D97EDF2699713EDEB7EEB7EA3EC35 +:10FDE000E6F73E66ECEF6C46B4DE01FF3E5B84F462 +:10FDF0000C1F498276A587741997D4CB89B126A4A4 +:10FE0000FFD393A5E05EA853B625E44013A5FBCD30 +:10FE1000F9F7AFC5362877511EBC9A770CE36F0D02 +:10FE2000EFDEB112E5DC1DA7251DE32B47FA1633E3 +:10FE3000E467F55585E4839A167444484E15396E87 +:10FE400036D16F46BE2AE44F79C25468DF92D63568 +:10FE50009BEFB586D8B2441CC7C5E573BE1AB5CDB5 +:10FE6000EF599A5FD5D0F2B7D4C1A20EE4B7376488 +:10FE70006ECF5686121699F6E90F1C077D00E396A1 +:10FE8000BCD93CE3D750AF599B3D03F546D7362745 +:10FE9000BF9792CDCFCB1C13FA81FD910D772FE048 +:10FEA00018EA01FBBD806C06EB03F090AD24D0395D +:10FEB000EFEC1EBE5FC8BE3CCBCC72C12EBFE67C51 +:10FEC000E4B5F0BBDC6EF587B399C91F26396F9393 +:10FED0005F27A7C4EBE7A27D5CF14A120513F4E4A7 +:10FEE0006940CFB24C59A77DDF68C85706705C2EB9 +:10FEF000A06843A301CBEF6131DC4FDA8D72015072 +:10FF0000BF07EC234C0F44F9FD8D96136067C0B812 +:10FF10002FA6C9C11E3C3F7E9CDBF1971BE7660BF9 +:10FF2000548A2BBAE11F1C5F6DD6E6E2BA99D0AEB7 +:10FF30003791BE3B6A8A3BC2BF33C53E73992D1EC3 +:10FF40003953C42F67DABEDBE38FFFEAB4C6A5EFEF +:10FF5000FA9E83E08ABEE5A0F3C3CF5CC8A278EE28 +:10FF60007A871CD9BC96F41A3FE77A50E0C88847D4 +:10FF70003A5DDC7F3BFAAE8BA1FFDD55E1A638612F +:10FF8000224E0EEDB0133509083FE823F27F8ECCE8 +:10FF9000F626D0F91D113F30F441E36CEF66E4E33F +:10FFA000B69765B2559F3ABA3E2043FEEE0A379D9A +:10FFB000C3F73F181D8BF1A1437BC4BED649BE3E9B +:10FFC000371189E05FEC93CE6B697BF07C46864B02 +:10FFD00036CE6B65B8D2E3EBD73F7ED118EC675FC6 +:10FFE0008E745EFD64C7FBC936F763B2E3853FD20A +:10FFF000C3FD3EC11759E82FA35D64F307AA4FF272 +:020000021000EC +:10000000737E60D75F80FDAD64E110C541F0A41739 +:100010009D9B3F6FBB3E6AF6D3B3D27264B4E3E3F9 +:10002000F67DB804FBD733B546AC73BE767D0CEDD8 +:1000300079B2D7B91DAF4619D9F5AF087B1EF91AA9 +:10004000BF837D5EE6B2D8E7C12A3CF2B3DCF5C4DB +:100050005CE542B4BFFB0BD1A05EE07AA2C93D1AB9 +:10006000CF676A6330BFC2F5B3B96E28F763000289 +:1000700096E435908FCE81F1648EF7E8434CD8EB4F +:10008000FADD9500EFE45569418CAFE6C8FD9B268B +:10009000A13E5FC3F5A0BF8BDBC176F8F788788FF0 +:1000A000BFE9D3DBD11F5EE1E271D515828E467EBA +:1000B000B312B90EE1C7B015DED7B1C7775620D25B +:1000C00080AF57BA8CF3789D63F87D55481387A4A9 +:1000D0003FF71347A27FD700FDD7B84AACF44FCD06 +:1000E000397FFA7F56B99444D870FEABEB0B58DCDD +:1000F000A678DF1A16A9237A65F2FB33037493C13D +:10010000AF82F93AC47D06BF63512DE26D8BC09773 +:10011000913609BCB1F7ACF21CE47813F6EB566AE1 +:10012000C57EBBB0E39BA01F9F09BFC27F36E0D94D +:10013000ACD474B84CFE33E21DFDEAAD06BE592DB9 +:100140009D4F037F8DEE11FD87F19D3980EF1D627C +:10015000BDD1A1A42C110F3B5F7C1BE7228C731037 +:10016000D172BD59437999C5824883B9BE45967B02 +:1001700038867D60EFEF3A29F2A8CB1497B1EBFFF8 +:100180006AD6AFF238DC1915E75D9EAA174B74BE2C +:10019000F5E4DC57039047BE243BE7B773715FA1DA +:1001A0003C81E73F6CFBAA19CFB796E3DE1FD94528 +:1001B0007F253BA87C3C2FFF172C87FC0135F4736F +:1001C0005789458EC498293EA06AA7CA508E3478B4 +:1001D00023BFE0F2432F47D265D56932CEEFFCE56D +:1001E000885BF8F54CC88B482F8E6BC89391FCFA4E +:1001F000D75CDCBE34D2D7519F9498FCFA7B0CBFFD +:100200003E3C86FBF5E131663E1988CB357BB81D57 +:1002100023FC8A1CB18F6297D7865F91E3B1F253BA +:10022000DC2F087A517FD9F9CBF013F244BF47EEA7 +:1002300073F67C03E388A56EC24FF576CE7F815DB1 +:100240007FA43896C17FFFEAD1F9B96C21F71FEC82 +:100250004CE9C847BF61019D7862EB5CA18FCC740B +:100260009AEE0A7D62A35B6418BA7D7E3E74537D6C +:100270009EA8990E06DEFB443CE75541BF5F0B3D4F +:10028000B08685FE1DFB6D72EA14878C1EE37ED35B +:1002900070F41F2E8E69D0D990371F7AB85C89A769 +:1002A0005CDEF4897AB9A56CB69614EF77B49BD767 +:1002B000EBF3B021F75F026E6E8FF89BC224C798F4 +:1002C00038B79ADBCCF5B9516F8CE807302573B994 +:1002D000AE511A16708D2F6573B4E9F1FAF96ECE2E +:1002E00087612F2FB78F3BC91857C84F63DCF19D2B +:1002F0001AC5F18C7A9307C60DCAFC3D84108D9BFC +:10030000D3CEEF7D8DDFC8E3707A67388474EB2B32 +:10031000734DD88EF6637ABE880F86189E7B9F2D0C +:10032000E0B9DF190AE0785980278C5339006E4C08 +:10033000D53A768AE4BC2F4AF6A0C9FE9FED463E28 +:10034000FA0B1BF2DCAC8177BFC22A5C26F9F5867A +:100350005BB6EC9718F30C8792E7618877DA01AD0A +:1003600010C5D6C2A044EB6E722893E260A91E8E1F +:10037000977D5D8CFC90A9AEBE65B7005E622DCE08 +:100380006023C0737FA33344F13167FF53AFE03C78 +:100390003B9C140F7BF0A06FC105906614DFDE90CC +:1003A0000AE98E83AD4FBE82CBD9CDFDA747BAEE09 +:1003B000BEEC02A8BFF3D6148A5B19F9CCB53C8E0B +:1003C00075DFF6BB174C447BA24BA6F3EE8FCCE156 +:1003D0007E8B01FFB56E7EEEF606B7783F613BF788 +:1003E0000B07E25873441C2B2AF4E5AA417EE20D68 +:1003F00084C761E25837BBF939CAFB625C0E3575B8 +:10040000C931BCFFFE88EF6E92238FF816334CD5AE +:10041000108F2301FC1E8A63F98C3854A717E34818 +:1004200037B9793C681DCA977473FBD312A659A6D5 +:10043000F614C7F2197128DEFE36378F43DD31A876 +:10044000FDE0F1298E95681DFFBBA23DBA33980EE1 +:100450003FFE53C9379BF4DF0F05DC530E45C84EF2 +:10046000992CF03BA9AB2FC837697BDC88A7DD8FBF +:10047000EFE83F06F86CDDC9E3213F15F6DB6EC9F6 +:10048000BABE7F24F86FB7E0FB233BC14F46FF782D +:10049000E7D210DEB3671B19D179D2037F91CC70FC +:1004A00064AFE271B6490F6C383679083F79B75BB3 +:1004B000F8C9AB64BB9FBCDB7D0E3FF9B3CA552FB7 +:1004C000E071E1A9CD3CCE39754B2B9D6F990A0E99 +:1004D0001FAE5BFD8B19647F657F51489705B2BEE7 +:1004E000B888F2EA1717523E7B071F6FBFB0BFA64E +:1004F000B5F3774ED41D3C4E911DB5C679523D22C1 +:10050000BE5337DBB22F33ED5034E91298D7945EE7 +:1005100047A1F9FC9E3DDD658BEFECB6C577726DAA +:1005200071C554CFD0F11DA3DE448985B1FD4F3B89 +:10053000169F33CEB84BC4778CFE26FE80C795E954 +:100540002F0DF55688CE55EEDE5873F702CC27579F +:1005500014E3FA4DF5F07383F6388CD12FD0E7759C +:10056000A48F412FC32F4BF5308B7E00145760684A +:100570002E3E2FD9B26F6392D7044F671597D74697 +:100580007E542483F44692D04B9F551EE574AF6889 +:1005900028447D1E0E9D92CD76DF8874EFE6747F31 +:1005A0005CD05DED1E9ADE491E1E4FB4D37BA4388D +:1005B000DE4874D66DF1B924A177ED7436EA1508DA +:1005C0003A3FD178EE389E4167A3BF8261E9FC4291 +:1005D000CAE5263A2779C479DAE1E99CE4491F4C57 +:1005E00067F0DF523DE497F17676FFCDD0E3A0C708 +:1005F0009ACD7AEC318F4D8F093BC1D0635362564F +:100600003D3609F59814B74BF6EC61B4DEF35DDDC9 +:100610009F1D433DB6C9AEC7A245C750CEDCE5A479 +:10062000F85FE7CE9A32E49751A50DA3D7403AE59B +:10063000671B490E05BECDF761AEF7707DF6F0CEB3 +:10064000F5F4DDD887797827D75F63F7A590DEBF0B +:100650006FA74CFACBAEC78A3C5C8FCDF188FD9872 +:100660009DB2753F66643D36C7738EFD989087FBDB +:1006700063C3EB31A1077672393B9C1EFB8687EB87 +:10068000914A1CA064083D646A3F941EBB54B40F99 +:100690000F6A3F78FCA1F4D8951EAE8FAA847C180F +:1006A0007E7CAB1EBB46B49BF658E70B68B23B1989 +:1006B000E82FEE7F92FE8A09BB66F7DFEF88BD0266 +:1006C000E54F489D8B2F43BB63348F53D8F5D86AD1 +:1006D000217FEAC43A391215F1DE2ED063E8AF0863 +:1006E0003D3679DFD07A6CF23EC59B3F841EABF37A +:1006F000B8B81D33588FD5117D87D5635C9EE50B47 +:100700003D962FF4587EACEFFCF4984D9E4D31F49D +:10071000D83072ED43D46343C8B5298F713D36EDAF +:10072000BF588F7D388C7C33EA0DC8B7F3D463464D +:100730007FBBBBF9BE685CBE451EB2CAB7553371FC +:10074000DD7EE8718C24DF7EEA19428F7D28F8DC9B +:10075000F03700C5CD663DF6E13072CC8067383D9C +:10076000F6C1801EE3F64BFE801E7BF2EBE9319B67 +:10077000FD329CDDF2C1FF253DF6C1087A6CC05EFA +:10078000394F3D66F4B77B8795CED30E009DA5B853 +:10079000BD32ED20D099E639349D81BE1F784C7171 +:1007A00063F7A1DA10866C407F7DE8E1F14736D42B +:1007B000F9327B7CEBB3CAA521A4D370712EE33D43 +:1007C0003DFBB99D91CE052E9A7F27BF57A386FE8C +:1007D000CD638A2FEC502367057C36FD2AEED90CB9 +:1007E0007AB76F98FB91017E3FD2551AEE11F7232D +:1007F0003DDE9221EE474E0A068218074A36DECFCA +:1008000033D6157F07CE7FD197FD4D28F7B49933A6 +:10081000B09F0C2FF7DBECF7024DEB2AC36B5A5756 +:1008200003F742F1229D693EADA3AF1EEEBE609676 +:10083000D7129F3CF77D41879B9FAF8C96B3FC5AA4 +:100840005F3CCEC1BE6496F7C38C79B933F5BD88E1 +:10085000A7295EC9D85F98E24D37C1693BBFBC4943 +:100860008AF0CB94BE282F17E79929FE23F3780B43 +:100870009E5B6EC2F3CB93F05E7098EBB5CC30F913 +:100880004709C52C88E712A5826EF29B120A6A03FB +:10089000788EB56D9873AC6BBDDC5E6F18C7F7F5DD +:1008A0003ADE95685FA763C2D501F3B96463BFFD03 +:1008B00068FAD5EE7ED3BA6AC95C4CFBE82D698B29 +:1008C000CF792EDEDFE9603DA9E751AF9DD71BAEA2 +:1008D0005C2D65ED787E5F55F87C5D275D6497B98A +:1008E000586D0FF987FD92781787C7010DB8A5B429 +:1008F0005AE23F23FE679C0F983BBB8AE6D3E20E89 +:10090000BBF11C2FCCE79CFAC1F58544F07DA58492 +:100910006E403A1E9EFC10E975AF5E4BF7785D990C +:100920006116998AEF8B85199E174D08323A673CFC +:10093000121DE678B9BCC6756D3E2FBCA92C42FDD0 +:100940006C1ACD82511DEF55DACAC5B963A79087DD +:10095000467FD3BDDCFEF881E817590ADF7770B80F +:100960005F24FE05CED1685F10FB81C2283ED6070A +:10097000F53E57423FF4960C2E8FAF7F7E9F478007 +:10098000007FB75BDE9BCA17FB9C461C327B3B2378 +:100990007E9A14E57A233FDA78BB8CFA032B43F96D +:1009A00084AD8CDEE78172B2578DF693624ECB3DFB +:1009B000AF9C766B7E3CEE7F42BD09E2FD2BFA0ECA +:1009C000FD8C17EF0A8DB77D37EE5D0CF7EEA27D3B +:1009D000DF34E6B5EE9B8E74EF63609F94851EA2B4 +:1009E000F52DCE4336DDC9FD087B7D039F7536BAF4 +:1009F0001969B7589783E5AF91765AFD76F1FD8B6B +:100A000053979E53DFFE16F46DB349DF9E447D0B72 +:100A1000ED7FBBF460628DCF0C5F03F57FB2FEC447 +:100A200025EF4D888FE37FE11135672A4FF17D91E6 +:100A300065B53974A467D986D754F37D88EB6BDF2D +:100A4000B9E43D133EAF0B5CDDDC4C7254F937DC8E +:100A5000AFC6E837BE1F562E33CBBC8CF13A014EE1 +:100A60004C97D772FFAC23DD19F3011D3BBEE2EFBB +:100A70008A444FF173B85BEAABA89E41D7AFBCDCA8 +:100A8000CF4AA8953CFCFD056EBF1BF2C021E2F7E2 +:100A9000037813F2C02114CB91C9AD6EFE7E4AD00B +:100AA0009D8BF2E4B883CE23751CBE8FD6B71D9FF5 +:100AB00077D5F3FB596D788F828434B75BDCC6F948 +:100AC00005619FB885BC6912F72CEA58B4BD262D84 +:100AD000DEFFB68AD72BC743BE5D4FB1DCCF6C5764 +:100AE000387D5AEBADEF6BCC4F30ECA0CE10EE9FC3 +:100AF000830CEE463F24212FC8F0FD0F987F0EE2B5 +:100B0000D8017429273D100BE0FDC00E943F43F03F +:100B1000DB092127AEDFC0EF6B76007E39BEDF98A0 +:100B2000877406D935E43EC0E40423CEFDFF177E6A +:100B3000ABFE8BF1AB2470FC2AA1A80BE3A2F6F567 +:100B4000A185BA55F3BA2D97238509E9F41E27D953 +:100B5000C32D6A38B0BE00B7A7A297D2F9D4A0B50A +:100B6000BEA95DE950ED5A0C3B256D297FEF2E049F +:100B7000EBCB642F2606611D99E089CB81462E8739 +:100B8000843CB3AFDFE1E45AEB9C46B70EE3B5FB20 +:100B9000783CC37961B13BCF849725093CEED7E41B +:100BA000E376775B69E390E5ED9A6C39976AA47F09 +:100BB000F62A5CDEE1613B9283DD217CAF11747724 +:100BC00008E9ED2E6BD4C643BE33C8E32A23C173B4 +:100BD000E308F0DC38023CD9091C9EBC84F383E7AF +:100BE0007CCFCBFFCA1BBE3DA1246E6F0EA79751D1 +:100BF000C7627F07BDE13BB0FEF5DFB92A1DF9638F +:100C00006C32DF9F6099694477287FC46F2A8F9682 +:100C1000C7F7F9707F7BC315AB4A506EBE25CE0374 +:100C2000FB53F9FD6C03AEF712781CEABD046E5F4E +:100C300074C0BA894D8AEF03FA9BA41E5C2F67C665 +:100C4000C9B1BD39A817F3E97B5BE4B14A9C7F5B6E +:100C5000661E5ABAEC6F6AD4857EAC4B9C3FDE5A56 +:100C6000EE5D6D8E776DD038BE5392CB5E477E0EB3 +:100C7000FAFA699F9385141DD73FFD3FE071BA06CC +:100C8000161F9EBFC7FD568AD70485BC17F78C5820 +:100C9000847D9D7B464F28CC81F793A33E2EEF1297 +:100CA0007748E4071BFB9ABFD0163F88F0A887223D +:100CB000748FE5F04C2FD9317F6DE1F7264F5D7FC2 +:100CC00011C5075F976B76E3BD8D33EFB818DEB3C0 +:100CD0003D75C5E59568979CBAFEBACBB0FC94C447 +:100CE0002A25FEE8901FEF6FFAC7EB8F1F40BCB5B7 +:100CF00078289EA806FE20ECB4905F2E85FAFFEEC1 +:100D0000783101F0F93BDF67F7205B5DCF7AE87C53 +:100D100084714FE2AEA4C821844BB9EEF27C940FEB +:100D20005B9D5A16C699B6B6BA8AD0BE4AFE141C46 +:100D30000E94635725F0FDF433204921BFE2074BA1 +:100D4000F699F72D57A4033DD07FAD6B09E17BC920 +:100D50006E3D484FAEF8C7733EC84A8ABC88E394DC +:100D6000BB0B8F6A6928C7F87D06E37EC375AB7934 +:100D7000FE2DB1DF6FF753ED7E699F211703FC1E37 +:100D8000B8E2E37620D314DB3B6899E48F19743220 +:100D9000F303BE6366E607BC6A34C00F21E087A98F +:100DA000167E90CE4E397F7E7800C7043EBFFA2271 +:100DB000BEEF1A2D0FBE46EBE57595D68B711FC998 +:100DC000CEF76D918D6EB960F0FA30D64347F17A67 +:100DD0004DF721FFAF5F49F7464E493ABE97A0CD88 +:100DE0005A9E8EDFAFAA76121D8C7561AC87E5FE28 +:100DF0008175F1941FD288AF7F9EA40F5E17E85FC4 +:100E00009AF97F25AE1379F03A59C682D7E039CCEA +:100E1000650A8B26A5C4F97D59297F9F67597F03F1 +:100E2000BD87BE6CA3C44E5BF403E4DD16BC69034E +:100E3000EFC03ACE1FBF1D0BA4563C6FD3A19EA19D +:100E400077CBA2C97CDD3579A4FDF8EE7A6BE2FBA5 +:100E50002D687F7464E8F4AEA6FD9C41EBC404E207 +:100E6000EB8EABC7D279877BEA751601FCFE0E15B7 +:100E700014F6B73491F8FDEF00EF11BC5F0576046E +:100E800096C33ACEF4A5239F06E9CDE9AB1D7DB507 +:100E900047707DFC3681CE91FFF5D9C8747C0F7AFE +:100EA000EBCC35749FEAAF7746B2B502F33C626390 +:100EB000F8BDEBFE3132BD1DA48B7BD84C7C8F8CF2 +:100EC000E5DF63943E00F43F0DA4F3FA730C3F4A50 +:100ED000B4EBA7761DFE3E0FC19BE1D4F87BA9A120 +:100EE0009212C82F9992C6F05CDC034EFE4E871D0D +:100EF0009FD7F9B81C5EE2E8D4F1DC5DA92F733E00 +:100F00009ECBF36EDBD35912C49041E6FC051EACB8 +:100F1000C7E3FB2D5FCD28416770777D2FD9D903BB +:100F2000FA6B63378B24A21D13263BA6E52B87ECB7 +:100F3000E6765F37EA2FFCDE60BAFF3D4F8CDB229E +:100F4000EC9D96867020C5045F8BF04B5B0E7BC8D2 +:100F50005E4F58787D9727C70CB7C2DB8BF74BB233 +:100F60000BCE483762FD866E58DB50BFE7EFC91ED7 +:100F7000049D2DAF32C72B37F65AECA6650062529E +:100F8000118ED749F783BD13DC1ACABB65F915FF6B +:100F9000AC0CC1B7F877DAC47F06FC469C6383715A +:100FA000FF3ABDB50CE9E1AD6612CAF5EFFA38DDDE +:100FB00072918161BCBFE4579C334E80F7B0C1D2BF +:100FC000A37BD8D149FC1E36E6F11E36A6780F1B4E +:100FD00053BC878DE5780F1BF3780F1BF3780F1B3D +:100FE000F3780F1BF3780F1BF3780F1BD367EB23FA +:100FF00094E27D6C2CC7FBD798C7FBD7985FE2E2E1 +:10100000EF90B1FC88B704F172419E847CE4ED70EE +:1010100086F0BD863E41BFB99B966E3D8EF66C480C +:10102000A11853C24E25F94D9E273D9D10E0FBFEB1 +:10103000AD81A718FEFE803A3FB11DCF0BDFF5AEA4 +:101040008FD284A54F3394577B55DD915A08F06CAD +:10105000A99AEF9E8CEB9935A500FF3DE7FB561B47 +:10106000DAE6338A3F5DF314E45FF0AD68C5A31D93 +:1010700077A557BEAE53BE9AF2E3E79425F2F71D6B +:10108000AB5B8FC2C8DFC44B81C63D01803B14916E +:1010900006EE05B8F3C0AC0F1D0051CCD84BBE9B7B +:1010A0005AB7EBB81FD71D2D4FC6FDAF1B5A974E31 +:1010B000A6F64A8646FDCF9F2AC5CBD3DBAF6B5D34 +:1010C000EA31F75FDD0A5367AF9DE4F70C7641FD27 +:1010D00028F69FAB5D518CF2FC5D99F4F15B4EBD3F +:1010E00091FCCE0E904F00EF956107C997F1156CFA +:1010F0000F33C5DFB57C1E8F5F94C8F55AB2788771 +:101100004A06498C7188A4854F13132585ACEFF9E5 +:10111000790B14DB7BC0D6F792F16C3ED2EB782EC4 +:10112000A377CBCF4C76C7D0AE5885FC3C01E9C93C +:10113000D7F795E10775B43BC7E7BB8B5019F4F9B6 +:1011400074A35D0FC267B4B3D7C37E6553B9D18EA4 +:101150007DF96705E550CB5646EFA17973633AFAFE +:1011600013E67EE5E2E1FB35D5638E738FCFA47382 +:10117000F463AC2BAF339488FC7C662AA7CBD225D2 +:101180005B8D752AE33EA0D76BB5577DFEF2BD8916 +:101190004087BD821E5E6F776F2EB6BF58A1F347A2 +:1011A0006C7FF531CC7FF77E99E46C86027486FE05 +:1011B00032DAB5429423677CBC5D6ADAAAC5F83D91 +:1011C0007587C2F07DFD341655F11D813426D1BBE3 +:1011D000FE1D6AE73C7A6740E5F1C7E2D2DB2F2FBC +:1011E00086EFB3E67D4EEB6FD6F3B28476D1193F2E +:1011F0005F7785D3136BD1EEBD7CFAB819B8AE36E4 +:10120000DBDEA930D28589DC0FED12711A69D7892E +:101210005AB2374B7C12EABBBF7E2AF4928073929B +:1012200093CF1F3C0DB22B1B020ABDEF218FE6A905 +:1012300053ADAD413E703EE0A677B19C5FCD72A349 +:101240005E69FAC25529DE1F257BD3E98968F8CE8D +:1012500055EE3699E2014D9A979EE64E4A2CEAD514 +:10126000514FCE53E87734922E5688EF9313AF8EBA +:10127000E13EEE8F0E7BA8BE9AE88EA1BCEFAAF8E5 +:101280004BB802CABBE6803C81FA5DED4BC3B48E1D +:1012900034599B407A2EF82B5C675D1BB520F257C2 +:1012A00012EEDF001C6F2DBB2850CDF707E87D380C +:1012B000FAC916D9146F67A17CBCAF3E5B2BAFA4F3 +:1012C000771393CBDD288792E755B8793BEBBB9B2F +:1012D000CD157C3F1DCB6FC07936B3A3F8AEB9B145 +:1012E000749393EF96F07EA47A23FFD69C325BAF83 +:1012F000F6E1B8D677E8727CEE1EB4DF476B7C5F10 +:101300004CCFE7F66A8E885BC277BAD735BAD9BABE +:101310009E91D5D0BECD8E5ADFF564185980F98DD7 +:101320001570A862FE17FDD1DA7EACB80732D6F68A +:10133000AEDD824423FE62C5937DFEA3D3BA34B4EE +:10134000E747471502C63EAFD1693C3E9BA379F9FA +:10135000FCD2F8BCECF398AD9D2E43BD679FC7450A +:10136000ACAF01F9705C9DF5BB1DDED9155D61B4B4 +:101370009F67E72B84938B587713C6DD0DBA7B7379 +:10138000ADEBF78CCF21DE0529DF84EB787CBB0C3D +:101390000A20DEFF844E2F8B9AC69BB423C5929FF2 +:1013A0001C1B63A93F657FAEA57C6AF70596F2E931 +:1013B000878A2CF9C29ED996FA337ACB2DF992BE40 +:1013C000CB2CF5679D586CC95FD8BFCC52FFA23FAC +:1013D000D658CA2F3EB3C652FE8D2FD65BF265ECAF +:1013E000FB96FA865FC502C1BE501ADECB4A2B447B +:1013F000B965E0EBCE44EB7EB1DD8FB2EF13FA13AB +:1014000038BE47F2D3DA12793C3A63692E8B98BE24 +:10141000A72DBCC0920F2C2F62118B1EB3FA6D2D1D +:101420005F2DA9E2BF07C5EF5537A75F4DEF6AAC47 +:101430009FECA473F1E4EA0188B72726D33CD6BF1A +:101440003C81DE23BB2F39B40DE98FEFBA445371D1 +:10145000DFC549FACCEB7392DFEDF5FD98DB7F79C0 +:101460006EDA83F3E6C7681FA6B9BEFD923CB0BB37 +:101470007F541FA554C90F4751AF28697C5F46CBE5 +:101480003F43796D0ECFDF9EA8D33CB53950DF3492 +:101490000F55837E4CF37C5DE6F7BDCE80DFBFD772 +:1014A000E4F7DBFDFC88A63D7480C5FD7DF0A3E973 +:1014B000DCF89996046A978B8E5AD1F07EFD1CD683 +:1014C000E7C0F4127686D22E569B8BF6FB9BCEA8F5 +:1014D000630CB4FF56D76BAB118E0B8BBDF42E0E85 +:1014E000C601124D718053C95A16EAEBFB9DE1AD5E +:1014F000C771DC3B55867A73C5A22BDC280F564C8E +:10150000568224861938F0180FB82F25C8F5BCD09C +:10151000230AF3E441BDAB36E715E1F70CA596F4D9 +:101520006DC6724D42FD28F90DFD584C7A21B55318 +:1015300009EA3AA2462FC77A69ED2CD803F516E7D7 +:1015400082BE44FD7E0FBF079F9B3FF128E269ECFE +:10155000AD3D920BEDA6904EE741724F5EDA8BF7F0 +:10156000F43B548007F5E9038AE01327F979EBEFA0 +:1015700053C8CF5BFFB2EAC9C3FC26A51005891F7B +:10158000F765812FB432AE8F721F9818437BE02E1F +:1015900049DB457E558B2B887ED54F041F3C807CD4 +:1015A0000176D3A98CD646BCB739D9B787EE554D4D +:1015B000493BDC88E9D4CC53328667A6E7494D29FC +:1015C000902F2CC871E0F9E419C5654D9896CCA907 +:1015D00076A4413AAB42C26B2FEC5F12F979976B5C +:1015E000572D3A81764E99E6A377627267FFB10A6A +:1015F000E5F1C8EFF2ECA073E16C95F55D9EB25495 +:101600001FFD2E8D867C9E4329D99DDAD28418F247 +:1016100039D8D912EEC747CBB89F9619EA91501F17 +:10162000423B09F725B51E8F847ED4D8509F043CD9 +:10163000CFC66E6074EE2C2BD42FE17E4FE6AD56F4 +:101640003ECF4A8A48181FCCDAD06EF9EEC77D43E8 +:10165000C06FB3CCE58F37259288FCE39D969BD273 +:10166000A4F338E1A28238DFBC23FC8B17047F1877 +:10167000F2DBB063FB06FCD1076332F0F54367226F +:101680001D782E2E5A27DE853DD3E3A0F8D4771699 +:10169000113F668978D8F2BF74B7E03DDCAB5C6778 +:1016A0008E24E182B985DB5B7B3D56FFB8CACFF55E +:1016B000E2123F975B6A0768FCE9A6DF73C13FE867 +:1016C000FFC98DDC5E577FE76B4F4E02BF4EC03BBC +:1016D000ED39AD1CF7B5737AB417287D55A44721B1 +:1016E00015ED91F0082A1B220EBEA739ED18D6DBA6 +:1016F000C3B4639A295573B5CBF05C177B51267A36 +:10170000B14C46FBD87B9A53E89C0003BFC40BF94D +:10171000AC3BD3280FF53B286EF7432F43BF43AFB5 +:1017200053E8FDF041F16736A0CF657A4738CAF338 +:101730006ED6DE807C34FD9049DF33D46BD6FC8CD2 +:101740005E6BBEA4CF9A9F75C29AFF95C02F782377 +:10175000C7F30C3CC07FB2E1DF3A58383ADA43B8FD +:10176000CF5BC7ED88C1768FD5BF61C20E5A2948BD +:101770007361BFD5EE5829EC9F95367BE2944FBB41 +:10178000BA1AD2D0F6089DD389D4398212C0F0FBA0 +:1017900007FE3A81DB4167D231CE95854C03F0AE2E +:1017A000B87320BE199D648A6F6E0EBE5E7B04F214 +:1017B0006F9F70510C6D9EE3D5DE7AD44B57A93ADA +:1017C000ADBB59B7EE4EC0F8F53B2EFAADA5B775D7 +:1017D0007D14D9B1BD2AD1A54D9CFF33DE5136E22F +:1017E00075B70BFE5B6BE00B37C428EED39380F626 +:1017F000F9F4438C15D8EC415E1EF26179618FBD1E +:101800003CE42BCB18781A0A448144F82E11F627B1 +:10181000E637823E293E6E7DBF745495351FEC55E8 +:10182000C94E9DC6C249289FD1F5C67EA6093C0770 +:101830006DF78AA789FBC6D36CDF3318DF9FCD28ED +:10184000F6D13BF2F67DF42D7AAD84E55B968347C5 +:10185000025537FBC57B8805AC00E93E0F7F7F044E +:10186000F1FCA683E27B579D9AF47635AEEBD7F870 +:10187000BE5D5B8EBE0DF592F68A83CE3F6809ACE5 +:10188000B0D017DF6FFFF1D920FE56E5409CF489F8 +:101890007AC650BE77D7BB19CAF7A7EA35CA1FA8C0 +:1018A0000F50FE997A9DD243F5F9943E5B1FA4F246 +:1018B000E7EA4B29FF8BFA10E57BEA2B299F925C24 +:1018C000F6889FF6A58314B7F5161E70E33EC6553D +:1018D000D73B34E433FB3A74DDBE24FD1A106D7738 +:1018E0006E7E6E5E3AE0E3ED0D0E8A2B3C72D7738E +:1018F000F3F07D0273BCD61CB78EC76B61FD4EA1A1 +:10190000786DC40D2AE57F27E8E2FE9888DBAEE615 +:10191000F1EC91FBE1716E8CFBAA43F523E2E26BE3 +:10192000DB799C776D297F7F7F6D31F75F36B16DF5 +:1019300096F7995DD02FE6D71E68E0BF8BA9F6D544 +:10194000921F59E2137EE41DE45736ED74B3C69C32 +:10195000B83F69F89176BBDEE49F5BF40246709075 +:10196000BFBC6E89EB3F36E0C710BFCDF5F37A17E9 +:1019700068AFBD805B5BCF89785241E0D3721E6F48 +:10198000E2F9697AF29114537930BF706EAA299FF7 +:10199000EF3E55D5608A3FE52516BD906ACA1FC740 +:1019A0000179BC298472FCFF753CEA231147F9696F +:1019B000FACF53309E107D5C61787EF897E93F1F27 +:1019C00083FE2CEA2F8CC721ADB9BE60FC3E643E7D +:1019D000FF1DBB01FDA24BB4EF63D22FC768FF41CF +:1019E000E897ACE4A88CEF15C5BA58B06108FE368C +:1019F000E919079DABD199EE9C29CEF3C8F17298F5 +:101A0000420F7FCF9EEB492A1F8F7A40A6F7DD4D0C +:101A1000FD105DF363263A33F4D3ACFA666AB7354A +:101A2000FFDFA5CF0CFEDAAAF4D179B0AD5F0ECD01 +:101A3000B7354992E0D701B8E5B3B3E2F8A0F39C1B +:101A4000B998F272583D87719E9166D532EECA3AC6 +:101A50006B7EF9066B7ED9ADD6BC693CA137BF66FB +:101A60003E1A7AD3ACAFDFC30B5F93E2FA7A15CBA1 +:101A7000998F76CA8D2C48EFC7DED09E60F117DFB4 +:101A8000449D4A7150FEBB6E35E2BC15AB384EFB2F +:101A9000BB391B75F213AA0CFC44B91E770306066A +:101AA0007E77C5347ECE02797D339F97C51EB0BF49 +:101AB000EF5F63FB9D38DD169770EBFC77F4B23671 +:101AC000DAE3A851A22B8E87BF6B30189EAF37AEDA +:101AD000D1DF69D0238837E31DFA01FE56FA25DCF1 +:101AE000BFA8C1F74E117F1B59680FD98BDFA073B8 +:101AF00072D718EF1F4519E9715DAC91B624CE7FFE +:101B0000767CD72C7FA312F15D532C53DC91D5E565 +:101B1000D29A263ECCA577DD9D589EB54562A91286 +:101B20001B783FE51AD1474A7290DE7D3FDDCCCF6E +:101B30000F9E5EBE2403FD0383DE808FD31C1FFC3B +:101B40003D929C3AEBFB2337326E1730F1BBDE3708 +:101B5000DAF4BF41FF1A66B22FE0FB78B0A5713E00 +:101B60006B4BF9EF32AFC57D44D42F8CBFEFBDC9AD +:101B7000776EFDE29F1B6C9F88FE62B2ACA3BFD85C +:101B8000BC4AA9DC638DEB39CF62D00CFF3F23BE8A +:101B9000DE7E2FB30A8C1FBC81E719A1FD1BDF4B32 +:101BA000DD834F50BC5535D78DFCF17A7270AA5C3D +:101BB000C819C33D07F29EE0E30CF2AEB6D72FADD5 +:101BC000BC389EF776FC2BE5DF48D11FC0FCF349FB +:101BD0002C5A9189FDF27C9BFBF4A547C789714083 +:101BE0006EFFFE477F69C3F72D8CF58E4F07707E21 +:101BF000B1AEBF14F18E614219DB863F0903FEE9E5 +:101C0000B61229DE2E05DB49E768B7886D53866872 +:101C1000E733DA818E6935C5018D389F2CE0318F2D +:101C2000AFA01DA04512D1FFB86B9EA2A11FF49FCB +:101C3000852363A47957B36DF84EACBD1D80DD607C +:101C4000C02F0F0D7F0CCBCDE3ABE780FFBF1A1F7A +:101C500023F5E714E55F1B3EA8DE98711EF305F837 +:101C60005494DF7A24513E577FE033340E3DDF4EEB +:101C70005B7FC9045F20B2F59CF089FEFE0F6142D4 +:101C8000A50C0080000000001F8B08000000000071 +:101C9000000BE57D0D7C54D595F87DF3DE7C249911 +:101CA000495E329964F2052F24D150034EBE30288C +:101CB000E20B041A1470A8A0B182194014948FF892 +:101CC00055A7953603092141A89162D7952D4E2835 +:101CD0005ABAD5365AB6B22EB241D1428D36568B4B +:101CE000F855A36DADAE6CC9822EB4D59FFF73CEEF +:101CF000BD2F33EF652680EDFE77F7B7E1C7EFE63E +:101D0000BE77DFBDE79C7BCEB9E79E73EE4D1E83A9 +:101D10001F1B63794C890C9633E660ECBECF25C659 +:101D2000B2548DB15AC6D2E6B14C870C6DFCA12DD0 +:101D3000520D63DF9EA1A89B8AA1EE62AC2F87B1F2 +:101D400022FC7E1C6319931953E03D9BA0441F861F +:101D5000EF8B14E67654313606FB85B66EC622D874 +:101D60002FBB83D7535924FA398CAB2E1E7CC05617 +:101D7000C2D891723533008DEE3D30F9C59A6C783A +:101D8000DF250552A079AABD5B0A54305677437708 +:101D9000BD039E3F7807EB651A96D1141D9E3F3810 +:101DA000184DD1E0BBBAE53BBB18BCAF6BF7300DAB +:101DB000C699CCBADB54789E79A9128C429971A944 +:101DC000A233802F33F3E2EFCBC5082F600AEDDB9F +:101DD000D529DF67D0BEDDA1CEC37AE46B8C3D0C84 +:101DE000EF8B6E50E73540FBA2B03D60D3101F5122 +:101DF0005F2B072208D79D43925681C80F49F326CF +:101E0000405D9282BD506FD715EA37F59B6CA78471 +:101E100074624C5326217D399D53A5EE75D3904EA7 +:101E2000CB601C28F2F43D7749E98CFF4C12F44456 +:101E30007A2B4C7340FDEF057DC7B28103CE6CA4B5 +:101E40001FFF8EB101699E078A7676B03407E9CC10 +:101E50007FF2EEE0F3883F9FC3FF22D516714E84D8 +:101E6000EE9CEA7D0817BB4B61383F4CCC0BB59319 +:101E700047D68BBE3990C92ACEDCEE4C75804B71AB +:101E8000659D45BBC1C5B3593AD25BF95D3CFC4B7E +:101E900018D48D7640CFC98371755EB8916E638911 +:101EA000D250BE35EB4306F8D655B44F47F8C75A63 +:101EB000BE67AC9BF8DAE00FA62B9A0ADF4BE27BF9 +:101EC000D611640CF8D1C9029D8E127CB8507DFFEA +:101ED000027A6FFB1CCA1DD810F9A488119F5BBF42 +:101EE00097C29B82383E9B2AFA49652E17C881D338 +:101EF0000925D0417230571ECA05F0820DE723DD57 +:101F000016457E5B2731059FC7C61B64389ED39557 +:101F1000D6FE3B2FC8871A7021BC1BEDACA917F960 +:101F200019083B80F3A3045514AE36785F89F8B0E6 +:101F3000808D013FDCAE729C377A02D7D423BC2F50 +:101F4000DA896FDAFCD00EBE4B4FD316B14CFCEEE3 +:101F5000AA46D7A58CFD6A1ABCBC18E4AF7B4E67B5 +:101F6000640A8C7BBA8085AA8166F87319D49516A9 +:101F700086E33B4F8F313D7FA695B1D0F9B1FA345E +:101F8000F7B80684E711A13FA6B3403B7E37DD25B5 +:101F9000B350DCBC3A4FE7B1903751FF85A6E7CF8D +:101FA000B4BA58C87936FDA7B1902BBEFF9224FD74 +:101FB0009F67E95F4DD87FAC5FAFA9DF0D0A233D76 +:101FC00012694AA3F937BE33CAFDEAB41FA93E9885 +:101FD0002F075B8EFA80F903033AD07F636176E5C1 +:101FE000268DF783FC33333BB367137CFFB46A233E +:101FF0003C1A669728A81F58A13234CCAF20F7337B +:1020000005FFDA8023907F1BB2ED16FE0F28410FEB +:10201000C26D7D1E2747205F21E407DF48786D9E53 +:102020009A0184E7B6454ECD593CF2BD51BED5CAA2 +:10203000A6969631F65A4ACB221680BABACCB5C1CA +:102040000F75D441F98CFD518D344600DFB724CE95 +:102050009F1BB29F295BEC4EDEDF4285297555A39D +:10206000BC77F495A1DE5F6863A15EE2EBD084AF3C +:1020700078E2DE038275A457A2443FE3F9A2166911 +:102080006A691C9FBD658379E0F0D42EAE181D9E51 +:102090002959A3BC77F6D5123C326B4906CF94AAD6 +:1020A00033C3F336D2A702E1F955D968F02C523880 +:1020B0007E49DF3B06883E8B903E1523E159C438AC +:1020C0007DCF088F8DF329C0533BDA7C213C5346EA +:1020D00099AF45CE01A2CF22A44F1278A69CCD7C09 +:1020E000B50273813E713A5A9A507FA656EE7195A9 +:1020F00080BC2D5824AB921627CFB75EE5BB06787F +:10210000FA8EB4A766F8806F5FBB4326FDC5D8532F +:1021100033EA4BC18891B83E9B7CDFB73B2380D725 +:10212000C9D9B769B88EB24FE17BD0D7D76153E830 +:10213000FF3A85CBE3570B1DD17571F2BC03F49ABE +:102140000E7A210AFA07CB9DA02774806B57AB9FAC +:10215000EA8FB46A54EE6E2DA7F21F016E7CFF6801 +:102160006B1DD58D7E2A964B3ADA1F13564A7A4F4D +:1021700082F95E9D29113DEECB53AFBD01F5747D13 +:102180006AE061D413CB2F61BA4BB443B859EF3333 +:10219000A9F07ECBD5AC7213D4BEB49BC39DDD90A9 +:1021A000139525A4D3C18156A83B17D83509EA2039 +:1021B000CB41CEA7CC5D0FF82EB609DD037A44855E +:1021C00076839119BB50FFACC8B4D3F88B0B9F6FCB +:1021D0009260DD5A8CEBF0445A67F83AB742A2F5A8 +:1021E00029D46E7F2F5EBF7C15D75958AF7D41C56E +:1021F000FC9C6DFE0F6F3AD199EC996B5C86CAAB73 +:102200003C5C0BF398DD62D7A25C15D1FAE76B70EA +:1022100044FB008E05EFFE5CB5A15D54A990FD75F1 +:102220005F8A9A87EB19C8150B67C5D6BD850CC6A2 +:1022300033F8A518C733D7195B4FF83079614608D2 +:10224000F53DF2C1E491740FBFB5AEFD601CDF2D0A +:10225000CDF464E3BA0B364305EACB4F58C5BD0D48 +:10226000F8B2309B8C37EBF7A75A23ED0781464530 +:10227000B086E2784E07D753D676063C7708FDBB8A +:10228000A37568EAEFCA62F08D5106255C67C686C1 +:10229000E1791C3C2C5B672CCEAE4B86C70EE9580F +:1022A0001E1B456EC7C07CC813C90E7F1FE709BB44 +:1022B000413BDC8A7F1BE29F168FFF945F96B244FE +:1022C000F2A2DDD780F272480EACD362F431E8F1AD +:1022D000FF5B6E2A330533E1CF24412F9017797DC0 +:1022E00040C3759AE5D8889FC6644FFB5099C8DFF4 +:1022F000BF67E297B83AE02D3FF3A1A4813DFF50BC +:10230000EB219A27633C981F694305F63B28E13E81 +:10231000654C1FB403FDA68599AD1DEA37603F6586 +:1023200023F59BB6F690695E4FA5A44F6419D08F34 +:102330009B95E37EC9CF5203B81F09BBF8F3BB528C +:10234000D37762792A654C14E5EB2E3914C2FDC0AF +:10235000295BAFAB18DA3D991FFAE74CDC97651E95 +:102360000C22F81B722E2E473E5A18BE3BD8007620 +:1023700099EA65CDC104FC60ACA30705DDDEB2F7C8 +:102380001565023E1FE54F3B98599BA07DF85BD435 +:10239000DF54A1CFADEFDFC47E80EEDBC5FA7ACD8E +:1023A000AA273E7C04F049D52AAA90C752CB0766DB +:1023B00057036B74FEB2A40ACDFD57C4B880700DEC +:1023C000DA2B77E6867E9519678FB834550991BE6A +:1023D000EA9D8CEFA7FEA5E2F15F427F9D57B855BD +:1023E00019F8EC648D5C63B38D8403FA7913FB7187 +:1023F0009DDE447C6EF4B33F65703BDA292C327F5E +:10240000D6D13AA8670E164850FFED7DD5B3B281FC +:102410005FF7FB060BF07DA364EB3A0872B51FF57E +:102420001DAC171764D9BAD08E997AF9B1EFDF8B4A +:10243000F6F9798E004E6B97B06B8C71E766C984A4 +:10244000CFDC2C331DFA578E4E8793826E71743811 +:1024500099880ECD05FAC7382F00E495D5F0496765 +:102460002B0BDE0030EAB9BD29D530F1795AEF0FD8 +:10247000EF65B80D8FD6DB8AA99F4F391D3AFF4310 +:102480004E8FF5F36ABEFE193EEF5FF9ABD9D5006A +:10249000574ABF1C90809EAE5216494BA7EFE4AC42 +:1024A000B8EFF45C55B115C7E661919FCBD70A2F01 +:1024B0002FB384FDD3E6E8F6CF83522DFDEEED2A4F +:1024C0007CD7511C6D4AC477B297DBB720A63A7E01 +:1024D000D7AEEE742D896B5792C5F9E2963C3D0B51 +:1024E000E170487CDDDA54C7E996DEEFADA27D5994 +:1024F00029ABF90AC8E5A55E4E3F803B3F0BBE7392 +:102500004CEE26E7424A29C77753C55686FE80140B +:10251000FF365E960EB210CC670AEB75E17C8FDF5A +:102520009AD9D55E877804CAB13EEB3BBBBA149802 +:10253000FF1EB44DC08E9D0E75DCFFEC70401BB4C9 +:10254000F3F31DB4FE59F11A2FE0989EAB8F47B8F4 +:1025500047D0C939F8FD7BE1FBAEF18E4004E09F26 +:102560006AEB6E5A82FC74B99BD67778DE148D9331 +:10257000ABEB041DAECBB2D3F75D7F72D17B2B9D4D +:10258000CF96CFF4AC11F2A667D526E4B37A847F58 +:10259000049F6524E5B359D84F023EBB3C111DACE6 +:1025A00075C5EF88A09C2AA73B0678E97A17FB91AE +:1025B0005924C2A07FA57133F52B9F4EA576F2E971 +:1025C000CD035857D4169AC75C29F4551C871D951E +:1025D00014D4F72942F5CB6E9DDE7F9839FA384A3C +:1025E0006907EF9FB530F4CF58C781FE6F4CD4BF59 +:1025F000CBA5F7211F5667F1F57EEAE5EE10AE4F49 +:102600005385FD6DD0D5E155E8FD6B593682239990 +:102610005C5C7C06B928F60ECBC59DC4E767908B41 +:10262000AFC4E4E29B244749E5621795A9E55C2E17 +:1026300052855C147B59A4D18FF07239D8BCF57BDC +:102640005D91C2989C347FE727263969823ABE4F54 +:1026500086DF255E8E3FAA14A4CF8B357204EDBDB4 +:10266000936CC24EB457D3EB5465093CFF4E9601B0 +:10267000B7BE95E8CE0619F26B0F1B3AE044F9ABF2 +:1026800093485E3C915EDD85F8B26E867EAFED824A +:10269000BF77A05D8B76EA798CE49429DD0CE96143 +:1026A00095DF94D23E5A270DF82E14F4BAD91BDCCC +:1026B00089F4ED6183E3D1BE31E6C38ACF0FC478DC +:1026C00025F9FA0FB0BD95AFCFB45EFC42AC17BF91 +:1026D00010F866FDC5D59248BEA7AE7EEAC3474650 +:1026E000E9E7E7028EFDA21F43AFA71A7ABD7C5827 +:1026F000AFEF27BDBE7213D7EB055CAF83BCFF6B9A +:1027000056A275C50BF22E2594F79F2791F74389A2 +:10271000E4FD6F20DF4770BC64F2FD9361F91B9DFF +:10272000DED95E99E0C91672F445E9FD89A0F3315E +:1027300041F751E87D8CE83492DEFF9E50BF26A71A +:10274000F727F1EB711CBDFF33AB76D475FCD34496 +:10275000F3EDC27179BFCC1B378FFA58782F215F08 +:10276000AB7C9D60DAAD682F6F077B0BF785B0AE51 +:1027700029DE047CFE3798DF2CEF28F33BD5C6ED2D +:10278000B0955B6FE9C27DFBDF603CCD3BCA7AF15F +:10279000B6E0A733ADF7D5828F802EE77B7D23F59A +:1027A000640F9892C837D3734313093F36380BF53B +:1027B000D28E6F6449182F29D4FB24B4B7C7677130 +:1027C0003A46B3342A8DEF76287D9282ED5B542908 +:1027D0002299FAABF3FA92F7678503E0BB04C7BF0F +:1027E000D9AB4FC1EF7E9065B1DB84FDD093155D11 +:1027F0008E7A7B96D0D3B3843E34EABFCFD31BB05E +:102800001FE09B2F6309F6F71DB6715C6F733B9D4C +:10281000EB69031F5B30CA06715D816D1CAE8B31A5 +:102820007DBFE86143DF2F73637BBE3E82BE0F2214 +:102830007C8D5E83FF787FC9E06C16EB65B39807EB +:10284000A30E705E2BE05C381A9C563A9D2DBC9D01 +:10285000082F5F9F6EF4FA92F7079C639A4FEC0380 +:10286000F7C5FDED5C5EAFEC2F213BED3601FF9D22 +:10287000B9C15B115E3D4D3DE8A5E0819A8AFD6ED0 +:10288000177EE3ED2BB752BCAB67AD5A89F65CFE01 +:1028900072BECE692BC7F4E07E71AD982F2B9F0ED0 +:1028A0007FEFE81D5F5D41748920DC974DE1764341 +:1028B00006E80D1C0DE51FF79559CE881FF7B39D4F +:1028C00052C4BF04F97F16D8A7D8C03D3FA1DFC3CB +:1028D000280DBF86812F73D79CA1FD3A6AAFA6450C +:1028E0005A82E7D2DE1921FB2246476F2591CB356C +:1028F00074D05B83BE864CF28745053FC03C6D2794 +:10290000F9736793BFC4A0EBC8FEF97CD5075B24BD +:10291000A4734A390C054F538211F481309BD6CDF4 +:1029200006D13E2A05FE407FA6FB55EA2F064775D5 +:10293000B5198ECA6A8423D67F87C1378F9D0B3C19 +:1029400046BBE474E1ED0C3F4232BFC193F9A17F75 +:10295000C5798F605C07E7F5379E681B01DC726103 +:102960007002967DE42FB94CE8C3CB5C6ED29FEC2D +:1029700053E5587CFC01B4262B20BFED705C4AFA6D +:102980003CED9CE018180D8EB3F55BBCE91DE1B77A +:1029900078D35B9BA0BDF05BA4B3C1888CFE1F9570 +:1029A00091FD8843165471F945FBF07DA1E7329201 +:1029B000D87BEF0BF932F8FB9A0DD3D838F427BA4D +:1029C00058C493C5CB8C2A92AF8FBC24077C9DD56D +:1029D000AFC854D0FF6AE063E067F47BDA22B70B3C +:1029E0001D7CFFF0969D353DEEE6F855C5C1632B85 +:1029F000A83FEDF58DC4CF0AEFA1D670B0C18EF11E +:102A0000AC1095DEF074F65B2F8733A58AE6316251 +:102A1000AFC2B0F2C0F5B70108AD5248CE06B85704 +:102A20009DF7E1B703409F0157F53AF4BFAE994DCA +:102A3000BEE3B3E68F2FCA17567E386553DF0AC14F +:102A4000B86D332A9BB24943D55EDE0FFBF4B6174F +:102A50000347DD01F4DFD55EEE077DD1F672A0C934 +:102A6000074BC6BC6D999B36839CB4CD93480F33FE +:102A7000F64FA9F568DFCDE2F5F26D732E473F4EB4 +:102A8000DBB512D91313E07BB427DA0E98EDBB98AF +:102A90005C6DE0FB011F5FCFDAEAA524EDB8DEAB89 +:102AA000CA16EDE68CDEEE0746BB455253223F9A2E +:102AB000D16E138E0B6518B72AF8CD691BE9E13684 +:102AC000FDBD1724A81F98C2E373EC603DF9852F64 +:102AD000330C99F67A9AA797C49C80BC5D960D7DBD +:102AE0003D7BA993D68BEECB53A3F8DD814FB33654 +:102AF000A3FEEFD6C791F439811FDC55BC447EB6E6 +:102B0000839CCBA22EF87A26F24747B154934D719D +:102B1000705541794DC66F87CB5E1B83F614F0D597 +:102B20005CCE575237DA6103AE92CD011877CD5E95 +:102B300039E0D492F3CB48BC4FB8717DB6E2F7CB05 +:102B40003A3945728FA403E0BD08C7DD5F38D47FF2 +:102B500021F4F352BDCDB61EC67B76B273FC20AD18 +:102B600083C166A48BFE0A5FF7CE028F9BB0FDB9CE +:102B7000E311381A423C3E75F07554C03937C97CB0 +:102B8000C99E8FDD081FE285EB0EE07127E2211759 +:102B90000D16A2FE30E03F5B3D19C91EA12723D9C7 +:102BA000A3E84998E7B66C6E377DBC86A1DDCCED15 +:102BB000A664FAAB3BFB9CF55777F617D05F71F331 +:102BC000F0C01799079869A2BB5D901DAA9A0AF5F3 +:102BD000A9F8BB86F91D6CD05912E37BE934EBF3FD +:102BE000A473FEC73C8DB650C8EF9593F7FF647E83 +:102BF000F08708973D7B500E9DC3FCEC11F48B9B36 +:102C00009F3DF1F4B1D269867CAC2D03F4E48929AF +:102C100012E1AB9F069448EFC2D62E0E9FA9AECD0F +:102C2000B43FCA009DA9C4C51B32751753E2E273B5 +:102C3000DE46D554F705FDA6F6B94D9AE97D5EA8A6 +:102C4000DCF4BE6079C0542F6AA933B51F1BD64D82 +:102C5000F5E248A3A97D4967D0542FEB6E32B53F0A +:102C6000FF8190E9FDF8E872D3FB0B76B798EA1381 +:102C70007AC3A6F617EE8D98DE57F6759ADE571FC3 +:102C8000EA36D56B071E30B5BFE868D4F47EF2E0B3 +:102C90006ED3FB4B3EE835D52F1DDA6B6A3F950DA1 +:102CA000E75F4994EF0696A462CC93CDF49EE24F81 +:102CB00027803131AF2E5829919F18D86BA014F47A +:102CC000C355BC09BB4AE445B1D976CAE788C03FC1 +:102CD0005C7783F1F91DC5D8AFAAA03F530FD84D3B +:102CE000F95353453ED4544B1E543D1B97A1C1B8D4 +:102CF000530FC92C0AF5D967E0AB91784967C08BAF +:102D000005FA10AF5FF37C3916D107304F2D195EED +:102D10003AFC43BCAEC497F0DDDCD38CE2C223F0B6 +:102D200014F8CCAD931494BB11F832EE0FB0E26BF3 +:102D30008D7716FB44BC33C00218F79B21BB09DE1C +:102D400013AF825E61C9E9501F71D1BA5AAF4B51BE +:102D5000A49B11F71C81AF9FC5F804F04AD1CC7237 +:102D600098566E96434FC03F3A1F45D8A8F43E137D +:102D70007D35F8C7EDB52105E93B758AC41E2C4E9B +:102D80004EDF2B15733ED1D9D275B64FC4D1055D38 +:102D90003F6153AEAC06FAE957662AE85FB5EA39F7 +:102DA000837EB04FFA8AAF36F9BAD3EC934C71D523 +:102DB000B358779A7DF1EDCF7DDDB9C9F705EC18F1 +:102DC000581756E2774C0969E7B2BFB9CB3762DDD5 +:102DD000BECB37CABA3DBCBF99C2FDE3C63AC64AAC +:102DE00025929F8EC96C27FAF1DA7CA3EF73DA7C07 +:102DF000D67DCE09257E9FA33B7353512F809DD056 +:102E000089F018FB9E9335DE83E812FC16FA076BF7 +:102E1000E3F1D7EFF1F9CE1EEFEF8EC4FBBBA3E1D8 +:102E2000BD7F1DF763EC7F510EEC84519FCB96FB69 +:102E30007C80EF563681F2608C784C63887139550E +:102E4000EEDB8D9B3F803F8AFD366AF5D20A373E26 +:102E5000BF95CA64FCF698EF9CED9CC77C7F9D9D56 +:102E6000F34F5F84DFBEF87EABE56808F96303DFEC +:102E70000F6DECE279691BD7F1FA51312FCF8B72CC +:102E80005B0EE7A3FAF43AB26F37481ED2931BDE0B +:102E9000E5FB8C0EBB1465DCCFFC22D2E160DEA426 +:102EA0000CB45B4FF6BFE20EC5ED7BDE12F81F11CE +:102EB000F8BF7DE730FEBF26FCBF26F06F5ABAA5EB +:102EC000D6847FA14AFA1AF58C1CC3DBA1F652BE48 +:102ED000C74CD94DF8B597B228E5CA307DF68C1CA1 +:102EE0004A5327FDDD5EC8F5731AEA67A8BB449E06 +:102EF000136855CA5FEA847FA4A7455E93DD1F97D8 +:102F000057C4D06FCCF368D2585CBE5371AC7D8A85 +:102F1000250FC9AA178F1B7AD1C172B95E5CDB7904 +:102F200001E115F2C7EFABAC7AD1A81F1C2CC91D6B +:102F30004C2047469951E76A2B8DD3D799BA6AAA94 +:102F40007B1BFD6DF17976BEA0667A9FDB546E7AAD +:102F50009F170A98EA05CBEB4CED8B5A74537D6CA6 +:102F6000B8D1D4BE381234D54B3A9B4CEDCBBA43D2 +:102F7000A6F7E73FB0DCF47E7CB4C554BF6077D8D9 +:102F8000D47E426FC4F4FEC7F80BF9014AAFC07398 +:102F9000013FC6BC3ED8F717E5145F81F1FC8E7780 +:102FA000AFF1633C7483EF6A573C3F5ACB833ECE0C +:102FB000B7C9DE1BF2BBBF35186C2863ACAFB5C90F +:102FC00024CF8D469E4DEB727AFF7C6B0B3DAFCDCF +:102FD000E172A4648B7CFCBDB6779DB8DF502311F1 +:102FE000843A570AD5E6A01E7DD51CA740CB08FD24 +:102FF00085979D86F1E2F0AD67D7061BE2E831DDEB +:10300000B5D8F47E86BAC2F4BE11E87131E8ED2F6E +:10301000FB6F353D9FA57DDDF4DDBAC2250FA01CF9 +:103020006DF43B28E76C236322AF92D375A3C2E90A +:103030006CD075E3DE257EB44786E91F69BC427714 +:10304000C7E83FE7BB3304FDBFECC7FDEDC14CA0B3 +:10305000EF287C7C26FA5AE97A48C4EB1A1DE63838 +:103060007CABD05746097A2984F47DB15FFE3844A1 +:10307000D88EEECFB08E6F1D17F4D52DD8DFBF9749 +:10308000BD76E35636525FDF9DC3E31A8D36D860B6 +:1030900081DDD3688F3692DF5BEC4B1589D37C835F +:1030A0006F6600E3FE5FCF91843EFF06BDBFD398FD +:1030B000932474524091F4C5E921A9784113EAE1BF +:1030C000469F83FC778D225FC0FADD2A418FBF9631 +:1030D0009FBE301F09FE30F8C8E08F64FA5DC11250 +:1030E000EA8A5BC4016371BDED3948AFB7405E72D7 +:1030F00046CA8B757DB4F61F663C8F9FB979BC8F2D +:103100001AA2FD7FC84B765332BA6F6C557505ED28 +:103110007D55CBA0F318229F1B0C5E7F7CBEF37FF6 +:10312000553BA36EE4195ADB87F157F43FF9DD8470 +:103130001792991F3E0A9563DEC40B62FEABFD7ABF +:103140001FF26FB53FF80CE91D57A81CE906F5837F +:10315000545787EBCF139DFD50C7B881AA9E557C6D +:1031600002BE7B3187DBC1463FBFA47EDCBC1FA80B +:10317000BF4CF5ECE1FA2BD4BE90B73FDB71E2FC1B +:10318000871CEF0199CE657CACE819594097ABC319 +:103190004BC90EBB36BC82CACE56B5FE7740C73788 +:1031A0005B83EDED20CF575F5BAD623ECCB5CB9638 +:1031B00052396CBF09F971142B418CFFC8C5B6E0B8 +:1031C0002E925F1E9792C1DCE1746DE7795B40E857 +:1031D000B5A05F17AE9CD7DE1E27072E3C6F54822A +:1031E000FB3FE5CFF1FBA969367D28E71CE23D23D3 +:1031F000F1039D04FCFAB1BB341A21FE9DA6268A78 +:103200002B197826EB7F61123D61E069D0CBCA773C +:103210005DA5552ACAA15206F6563AF543F617F3AC +:10322000B8843CF176D741FF4F20DD948086FC893D +:1032300075E457233E7A1D90686D556CBC69B6A045 +:103240002FB776241DCF964ED930C6008DD74D713D +:10325000BC6D6EA31EA17CA860298FEBA568FCBD88 +:1032600001076C0F18C601D36A988A8F6CD80EF7C5 +:10327000076903BAAD12F615B90F5DE11F0FEF4BE9 +:10328000437E5B80EA2F283E8C57439DCE5A3DF407 +:10329000C2C129B88F52BF8479A62E65FB0B872E39 +:1032A000A5FC2761976C7F01D7CF9EE13AEB63A025 +:1032B0003F7B5287EBBA0BF6523DE386EB11ACEF46 +:1032C00010F9105373B7BFD0CEFDD893737D188714 +:1032D000B445687FC33C513A67F8378E2FF6543CAB +:1032E00071681CEE17FC4AA04C43FB9899BE5B9694 +:1032F000EBA0F93AEC0F5D81F3E5593B44EE8C7B92 +:103300002AB23CE83F8ECD43D4320F9CEEC1F2A8E6 +:1033100088AF46695EC6FA3F8ED4C37863A7F06370 +:10332000781A5337615D6BB7A97DF4208BE6C956D7 +:10333000DE223930FFA682A9B8CEB68978775A390D +:103340008FE3AB4EBE9FBB3E97C78357E5F23CA0D1 +:1033500055B9DCFECA30F2421B6DD43E439431FCB9 +:10336000DBC5778A695FDB5C105A911B1FEF667DB6 +:10337000B3CB018E9EF6AC2C8CFBD6B7DBEE403B7C +:10338000E82191DF03F3D448F314F0A686F8BCB526 +:10339000E0F723E64DE075A6794B365FC63E2AD9A5 +:1033A000FBABAF95E9FCABCD15BA7F018CBB6AAF27 +:1033B000B712F3A98F34C93503505FFD742EE5179A +:1033C00074E6F275618D6D2807D7DBAEFEFB82587F +:1033D000BAF6DC1A2960B8DE6A26FFCB9A7DF5B40E +:1033E0000EAF4F4B9F82F36D85E3C8A73FCFC679E1 +:1033F00098FD2727C93B3AA0D07FD54CC24568BD70 +:103400008AFEAAEB851DF4682EB77F5E15F6D6F509 +:10341000C6FE8C0D9F13953E87ADE6FCE0E2394871 +:10342000BF254D32C33C88E6D87BEE070B73BF95B2 +:103430000BFEE17E2EC43267A2782E8E98FD59CB0A +:103440005860269E1B5ADA69792EF673CB2C7EB112 +:103450006B9A62F6D04916D36FF3356E47CC0FA442 +:1034600045316F6741D06C47BDF699DC1C04FC8F79 +:10347000E0B700F79185E7EFC476567A9C12FCF925 +:10348000AAB03B87E9C3A82D5B12941C78E4D14A0B +:103490000F2BFEC374B3D061B15239D3A78DA4836F +:1034A000157FA018D17719D017F38C92D163A63C61 +:1034B000DB8EF1E2A5F324B2EFACF4B1D2C1D88F28 +:1034C0001BF8FCCAC093058EA4C178BFDD6C676889 +:1034D00077B1BECB283E76A56817870FEDBB55F8B0 +:1034E000C7FD98DA735E84138889E72AAF8AD84DBE +:1034F000FBF56562BFBE840533D08F0C78BE976440 +:103500009E4DFB762BDC56BCE688F5C2BABF674AF7 +:103510005F05DA31C772855F79A2D9FFC96A7C0974 +:10352000F5AE759F6FF05573789EC99E965868B832 +:10353000AE823D719B5FD6F05CF04093FD7E5453AC +:10354000F35C43FCFCA83857348FB93437B4BF055B +:103550001E225E57EA295437FA3BD12D35A25CDE94 +:1035600006DD8569FDD569DFD1CC9B40193980F432 +:10357000BBCDEFA07180CF3E8EE7B3647470FB8546 +:103580009F63229B782EF877E532927FD5CBFA3075 +:103590001E3224B9A23BA5985F0E7E8D3840551689 +:1035A000FB8B855ED6CDF13DD64276FF59F8E98A90 +:1035B000FD09FC7446BE83C19FD7BBDC7D32E7BBEF +:1035C00063C3FC61CA770831F4C375E4DF1C407A39 +:1035D00077A472BF9BB14E823D3BC18FF1F354EE95 +:1035E0007F33F47C2ADA8332E61B813D1847B7111A +:1035F000EBF4C11B76F7007F87DC0ADB44ADCA0918 +:103600003E3AC74BF00DD9B19FE6B0FD447C3F2157 +:103610000F68950A84EB6215CB257E9EB7B184F1C5 +:10362000FD3F8B40FBB8B84408A7119F6372755CDF +:10363000FFD87E2DE6FD74C6F53F8EFAA73CB95043 +:103640005E6A1427C53AFE88F5CB329EB5BF0E914F +:10365000E7D7E1080CE8E8B7FE855CB98ED0E5FB5A +:1036600095A0DF665AFF96B8BCBA12777EFBBD3CC8 +:103670007753FCFA6D94C677063D6376DA25FDF143 +:1036800076DA3D1B6AFB0F15C5D96991DA7EDC9F9E +:103690007E513BED6B0FD4F6E379B0536F3B695D20 +:1036A00038D1C8E964E4E32860566464D1BE2C8252 +:1036B000A52B5C40F818F9395E2D20E1BC7DCBAF1D +:1036C000F1FDAFC6E3D25E2540F7606C35CE95E3E1 +:1036D0000FCCC3D62CB507F5B4D3C5DA53B2F03B43 +:1036E0008EB731DE70BFE50149AD48EEEFDEE43F55 +:1036F000E7F8CA267F82F84ABFADE59D6FA2DDF8E4 +:103700000B99615C6291FFEBF4DCBA0FDB26C66BB0 +:103710009542DB501E079A5E597417FA4FF638C966 +:10372000AFBCEA6B1F7EBB5643FAC07C57D3FEEC9E +:103730007EF407CB6536B2CF3B8BB8DF475E27D12F +:10374000FEA54B7334EE81F2F59CFA67B03FD6A824 +:10375000D9909F4FA4727E7E3DA7819E9F7A7BA3C6 +:103760001FCFE1A4FA5329CB485E577C2FDDC370ED +:1037700058A6FB113A5219ADD71D0E5EEEF1F3FCBF +:10378000CF3D82AE8F8AB2D31E2A6FA9C07C6A9CBD +:10379000DC181D5C4A84EE19709D56E8B92CEE05C4 +:1037A000E9480D95DF19473FA35FD76910E2EA4466 +:1037B000DF3BE839E245DF6771788C764F8BEF9F0E +:1037C00016F0B84EA7D1781D5900973BBE9F74FEE6 +:1037D0005CC899554ECAFDD30FE03CBE9EA33FE3A3 +:1037E00027BD3A68473D7ABDFFD051BC97E4CC7AFB +:1037F00090C7233C9F4A7D63D12EAF97A3EB8BF1FB +:103800009E13754E0DEE07EBED940733509EEDC100 +:10381000B8D2CB8AEAC17DF92B62FE833364DA5FCA +:10382000C38F6F3ECECB8CA593B8BEE3F157633DFB +:103830007AB9E289816978CE2362A7FD48B32B1259 +:1038400045B8E2EC1F1197E6F7ADD07700677383B8 +:10385000ACA7A427B013C5BD2986FD096AE220C61E +:10386000DD7F23AAEF349C5C80E00F32D5315D8A86 +:10387000B747F97D23CB44BBE6B0D97EB2DA574BCC +:103880006A02CF7B35A4476F90E8314121B9385B9C +:10389000BB93B1FB687EEF69F8A90BEF9B392CF461 +:1038A00082A7E1151DF504D8490BF0BE9C2B1B64C3 +:1038B000B50F5A6F0EDB18EAD12D3576DA5F6C2919 +:1038C0001F3C7C19CA638DA2D1BEBC7C60FE747A99 +:1038D0005FABA2DD348043E4517B1E1F72BBA36546 +:1038E000B8BED7FEDAB5348E5FB6D4BC371ED7B9B2 +:1038F0001D828F400DBA674C8AD10FE9A39112E562 +:10390000FBF883DF4825FDF4CE6659C46318DD4B10 +:10391000E2F173799C21E2354BEF97283F6D69ED19 +:10392000917ABCDF66E90689E4B279ADFC2EFAC96A +:103930009BC366BB2DD402F69C467436DB73C2DE95 +:1039400083CE1DC8BF676BEF59ED97D23C61BF5561 +:10395000B1AA78FB25D9FECAB05F14A65F90E78BA9 +:103960008DBF44E1F156A65F45F49D211F3B7C19B4 +:10397000E077A266DC38A4C7F784BF774BF80D1751 +:10398000EE7FB77C2A939CEF7080618379FEE953C8 +:10399000BEBF0EE03BF08D2FE5FE16DE4FCD7388E7 +:1039A000F34EDADF4D4139F8859DF828195CAEB049 +:1039B000CC4A41EE53C21295C6BC78C2294C89D379 +:1039C000371E713ECB5733248D8BD32FB3F3387C06 +:1039D000996BF9BEDA57C3743CEABDBA74DC4ECCBD +:1039E0006F858589FCA529C55A15F291D13E57E20C +:1039F0007E6FE7DE7A1DD62E3616E0C0F1348003E6 +:103A0000D7B9E2701AD5C785BD54968433A92C0D59 +:103A100017D0FBB2700995E7858BE9F9F9E10BA89E +:103A20005E1EAEA6727CB892CA2F852FA1F20258F4 +:103A3000E7B05D45B89ECA09E12BE8F9C4F05554DA +:103A40005E189E4765207C1DBDAF0C2FA5B22ABC19 +:103A5000989E57876FA17A4DF876AAD7866FA57280 +:103A600052F86E2A2F0AB75159175E47ED2687EF95 +:103A7000A1FAC5E1EF507949F83E2AA784B7D37B74 +:103A8000C3DE7849C8D5DCCC252ACFAB0904707FCA +:103A9000B023891EBE278FFB2BFEECD76F473E322B +:103AA000DAC9E23C84B5DDC63CF3F9419BABCF55A6 +:103AB00042FBFB922ADCDFEF003D5008F3B3BA6C07 +:103AC0001C9DB75B9FC7F56D8A3DA21714C7F6F31F +:103AD000990DFC1CCCEABDB752C9EABC67E51FBA18 +:103AE0002D8F7FBF4389D03D0E3B5A18C555534A91 +:103AF0000724D4133D15B646D4EBF7549CA07BABFA +:103B0000E6D4EA35E867D022BD87C691BE9A5E83C7 +:103B100070FE4B1E3FEF7AD8AF6F45BCC7D6F82E6C +:103B2000BF0ADE8F6DB7D17657636A3DD6B50646BC +:103B3000FACDF0BFF4A49AD7C39FE619F6DEE036BB +:103B40006CBF23BFB48AAF23FCDC8C7CF738DA5F10 +:103B5000EE70F44978EE3E021B9F870DDD8FED3B42 +:103B6000963C8276D4B8CEC0332E1C3F12A846783D +:103B70007F2AE4AEB85B9B960200953CA03F83B1E0 +:103B800086B268685A2AD4CFDF1D7906CBF1BDD141 +:103B90006969505EB0B7EF19541F13FA06A7B9A1AF +:103BA0007EE121F62CAA81CA016DBA07EAD547F554 +:103BB00067D1BD5D3B189A9E8EF3E488B6A5033CA1 +:103BC0003B7EC302EBA05E77AC5B866D446CFE9DD2 +:103BD000AC05ED2F635E5C5AB78EF42EBC43253FD7 +:103BE000CE0E653025B362E4FCF420DE886798DFF2 +:103BF0007F50A80FD13C004F5445681ED4CBCB69F1 +:103C00001E38BFBC23E417E6E1D93CF473A5AAF53E +:103C1000F87E68065377C2FBB9136CA4AF1D1BC6B0 +:103C2000D1BA62F01DD077FC3C4FFC3CF07E765858 +:103C3000ECD464F47DE77F087D57233FFB92D317D4 +:103C4000798FFB574797E3A1981C1F8B97636B3BBA +:103C50005F3EA79395CE3D367608D69EB8F360308A +:103C600087D054CDB79D135D53F31DD4FEBF9BAEDB +:103C70007F107A22195DC938CD8B9DBF4DA66FB0DC +:103C80003FC43B919E63E4C72CDE89FEC0B182AE87 +:103C90005D7BB9FFD2D073AE3DF57D055A4CCF7D2B +:103CA0007426FD25F48C43F839627EDB0974AFDF9E +:103CB00005F99271DE687C3EDACD7EB3FF7DB34DAF +:103CC000ADC7F98B4CE5F95973EB5ED6659A1FAD1C +:103CD0008A5F7FC7489E76A4574471FE8AC15E50B2 +:103CE00060DEE1D73E2CD32A541B9E8F36F2B69865 +:103CF000BAD81F2F67C67A1E9343831FB2683F88C6 +:103D00007C8AED57083863FD483C5FE7EBF974FFA8 +:103D100098F15D8FBB90BE33DA27E3DB8DE27D4FF8 +:103D2000FB1344C7B429DC3EC868CF223ECE6808E6 +:103D3000A16513C7BF2107F2EFD27CF99CF8774940 +:103D4000FE7F8F5EA8C33D7D2DC621D403985F37CB +:103D500016D61D0DE5720AD01AFDFD7E07E93F8DCE +:103D6000F1F9D3A6F03C55A0571FFA4323360FC5EF +:103D7000E764E75003E2CF9C992AEE7FEECC0DDD9D +:103D80009A3F8A1CA8695A254EE6FAFCFA39EE3C9D +:103D90003C77A1A662BD15EA9BEBF01CE42013F56D +:103DA0002DEEC95FDC3FB1FEC1CB5EC438D2EFF36C +:103DB000F448BE8FE212EB112EFD7C95F2330D3EDE +:103DC0003ED3FA6FC8634C7ED44A437EF05E33D054 +:103DD0007F9BF37DB1FE92D9335FCEE7FAF27B424F +:103DE000BF25B767B2489E40CEB9FC08FEEFEA1B7C +:103DF0005DCE0D78EFC91F5DDEBB66BD11C1D686F5 +:103E00005FD525FC27069C297E7EFE386536A37D7E +:103E10008947F85757A27F55C273D8AE33F857A3D6 +:103E200026FF8AE15735EE47B0D2F967F9E6BC4D77 +:103E3000D4474FC4E1C3C47EEA763166F7FA400640 +:103E40009E9F89BCC4FD18C67987D9F83BE0290537 +:103E500024F223757F8BCBDD9C42165D0F70CFFE65 +:103E6000B3C47480A3FFCF329556BFEA1CF80EEDA1 +:103E7000867EC9157541FB03954E86F1B77E8F8D01 +:103E8000F675FDEF4A2407FD956994FF77B0F2229D +:103E9000CAEFB1E6FD19E535A1C509F322ADF4B9C4 +:103EA00066D1736E9C97EDEA345731ED4B791CD295 +:103EB000D0C746BBF7C43A77D81F7A0BF9D873C37B +:103EC000503B3C61ED2A8F431AFC97E7DE7318EFF5 +:103ED00061CC5BC9EDCA7C165DA7BA47F275734128 +:103EE000E87DEC677B2CCED77F1E8CDFA98938DF7D +:103EF0009AFC29E3A083BF1F8EF3855E473ED7BDA2 +:103F0000BD95C887DB033FFDE1BDF07EB613F6A982 +:103F1000A887ABDFCEC67BA216D63EE7437ACCB1EC +:103F2000C06F9486FFCCBA1FFDCFFCE17802F9D3B5 +:103F30004FD65C45FBDF64FE74C3AF67EC4BD16FBB +:103F4000A726D0E3567A1BE32F94F8FE93D925D207 +:103F500063FDD87432E9095701AE73ED3C4F4677E3 +:103F60004A9427F3624D35C51B58C02BE2987D85D6 +:103F7000F1714C031E785E9628BE992CFF606C018F +:103F80005F6716DAB9BF52BAF5B98538EEC24AA7EB +:103F9000C4CF27723E6DE6B134962EDA370736521B +:103FA0009EBA355E915EC0F7A5FDF6BE4255F83368 +:103FB0000309F833195D8EDABB292E767499CC701B +:103FC0005FFE62E8A2DCD1EE5D7B03F9A38CB17FDA +:103FD000C7E0696DDCBC69D909E7FF28E697D947D6 +:103FE000C68386DF2F4E213F7793C89F309E3716BA +:103FF000707BE726813F7346CAD1CFDBB9E47E17D9 +:104000009B80791A276A2340F72E3654BB13F5C3D9 +:104010005A0FF90D9A167F52BB6E421C1DEB381DCC +:104020009B9FED52915F9B8ADB7D91B871ACF4BC94 +:1040300009F1827153043F83F97205F187D5FF516D +:104040003A9FF3C5B329813E18DFF5EB922A5CC78E +:104050000DFF078EC3CFE9737FED1D22FE80BA26C8 +:104060009EBF9BC2AB4D7A23E5B4C4A2F175A59B5C +:10407000FC9D29A7157A6E95A30905E6B89441EF32 +:1040800064F367D0DBFADCA0F7D1C55DE5E88FEB20 +:104090004C4D6C273D28DA19756B7CDC880B5BBFB7 +:1040A000FB8698C793A1C9C45F4D8E48D9D9C8AFC4 +:1040B000419F239F6E54515E5C22EE6EC4FD3DE530 +:1040C0005914E73FD224535C22B54CED41BFC0EDFB +:1040D000057CFD35D63D237E982C1EE8B1C41553D2 +:1040E000CAA11E4767EBBA67CC63B238A2759EB609 +:1040F0001598F5DD70FC3089DC18F2D22CE4EC4C1C +:10410000F910D724B9A771A598AF93A1BF5F300963 +:1041100086BABDD6A6221F6ED1F04C25FA4FED947B +:10412000D7F4FAA74E86769EA7D6F67DF4731F5D68 +:10413000FCFAFCE9A8176AED1497E803B95F097265 +:10414000DF25E47FD8AFBA598E9649B87F904C717D +:10415000DDD45297A93EA7D64EEBF3966D9551DC70 +:10416000CF34311EB7EBAAFD4A461FFCFE7AA98365 +:10417000FA7375491457727DB63188F3DDB7F8EFDD +:104180009AC89F5AE6C844FD68F08311377489FBCA +:10419000A09F2D9B7435DE5FF0CE663BA3BC7A29D1 +:1041A0001657D6C0FE5B5A5C93837C378879AE1471 +:1041B0009F177E5E26F483F0CB1AFE70AB7F369994 +:1041C0005FF66CFDB106BF58F9E2B582C471E564D3 +:1041D000F31CE797FD4D42BDA4CD37E917431F19E6 +:1041E0007AE10D81FFEBA51D8B305EF47AC829E8DA +:1041F000F7DD175B6B289F8FCE63BB3EFBC10CBA0C +:10420000B7748594D01F5B66E8658CDF97C7E87C40 +:104210006D28964F8BE27CDD72733EAD755D48AEC6 +:10422000A746D7433B0BB87D64AC1BB83E64B9F9D5 +:10423000FA60F3C4F8FEAF5D279A166F0844265063 +:10424000B91BFB7195A4D27D4B5679B7EAF9951647 +:104250003D19D3EF328B7AE3E553E3EBCDB09E7794 +:10426000D0FBE1732DEF4974AEE5931CBDA010DBCC +:10427000E5EA85583E94A31715C6F5DF66E7F9B25F +:10428000B28D851E277B3A68CAB36D28E4F3B5A1C9 +:104290009EB73BE09BE4FF3D946DEF56FAEDE88757 +:1042A0002FE471B7839ED1CF09DC2BF8E71ED447EA +:1042B00065313B7E8B984F405F47FFC8067BD01F20 +:1042C000EFBF2B29CCA4F1D3273F31807ED236D546 +:1042D00046F71EB7A90AF953DBDD4AE32EFA8EE34F +:1042E000BDC1A33F1C11F6D0020F7ECFE153DCE627 +:1042F0007CD306BCA3C617C3CB0A6F43215F07D28A +:1043000073F5E985503E95A337601956224EA47780 +:10431000D895789F7279219FBFFC4226F8DC4D71B9 +:10432000411A573EF773494FE68716E0B8A76C115C +:10433000BA9FAFCD33E99CEE370D89F98B3B4F1611 +:104340002AAC4DD03E76FEFD5B1817AED7D8C751CC +:10435000045A9CDB33F242C1EEBD09F9E79A0D899C +:10436000F32D7B9836AADFCA2DFA81FDF6EA42BE0C +:10437000DF6EC112F6DBEDA8DF5980F7937E867EF3 +:10438000804E14D73D8BFB56BE85F88E3CEF151A38 +:10439000C4FECF968E5D625EE3E8D85598404E0D20 +:1043A0003A9E7AFBFC0C8C471AF7C558DB19717CD6 +:1043B000A3DE99691EBFA38AD7B78971B3445C7B1A +:1043C000B7A8BB2CF799B866F37B798C7C08A39FC0 +:1043D000DD851EEE57CD9FB61BE9D051CCEFE7E847 +:1043E000C834DFD3B1B4B07E37E2B353F4BF5BF06F +:1043F0006FCF381E57B0DE03B852B45F59388D4ABC +:10440000505EE3914F1CB29C908E8F1572F88DF325 +:1044100091C6F9B4A55B64D3F934635D5DFA34A346 +:10442000751FE3A128CFC9F2DE42E5EAF3E8CAF935 +:1044300084553830DFEBAF5D6F919E695923D7DB30 +:10444000E70A13E7B125D37771EB6DBFA08F79BD74 +:104450006581F2783D6BACB78396388E51FE56CCB1 +:10446000CB66B10F47FD89FA1AEF0723BDADF07D8A +:10447000EAD674EEC744FEC37B417E5B68CE7F31D3 +:10448000F26D8C3C1B23EFC6C8B319BE17C79267E9 +:1044900033E818DC900BF335349ED139D3DC85EA50 +:1044A000815CCC4F68D018FAA33A8A597A1DBEAF06 +:1044B000B405D06F9F395FEDB0433D53637853200F +:1044C0009EC78D78A0DF94A2629AFFCD91AB0EE4D7 +:1044D00042BB0C4D9DE98776194D1ADD0766F899A8 +:1044E000FBDBD7D3FD4206FE7F11F86768DCBFEA2D +:1044F000D2F8BEBB9E1591DD1E6B679C6FD2FFCCC0 +:10450000E9CEFDCF780D2AEDE303A964B7CEC54807 +:104510003FDDE3D24B797225F9D359912F263F78AD +:10452000DFDAE3717E596B5E514AD1E87945A90B18 +:10453000B93C5AE7B1A488EBE3FC5C3D1DC7C3FB63 +:10454000C4E549B17399A90BF9DF0D4AC9E67A357B +:1045500045E37165A64AE4EF7169A110C293E2AF29 +:1045600053515FB639DC9D123A6A6FB031CC9F9DD2 +:104570002EFAD19B98F47E39FFD3395C6F2AEC7DFB +:10458000839F6581148C3B4DA008D6DCE634807F88 +:10459000BAFB177FC27BEF534A5BEAD12FF85C333B +:1045A000EF636B12FFB7915F15CB278BBE64CE27ED +:1045B0007BF02553DE7FE4C197FE9ABC7FFD7B0F25 +:1045C000BE84FEDAFFAA7C32433F1D954347EF06C7 +:1045D000FA2E00A582FBB605D0E342F25BFA896EA3 +:1045E000F3059D237F063ABB62743E6AE7F7A52C6C +:1045F000D87798E8689FC6496DFF4646B48DEC921F +:1046000028F57FB5AB7B06C6C18F3B8626E2B8C7CF +:104610009F7EAD08EDC5B7BF79D2834908EF284327 +:104620001E7CFEC1DA573C987FF7F65A99EC9DEB59 +:10463000C57EA0B9F5B349180F592CF8695F91DE12 +:104640005414B71EB1B08FD6D9155199B63C861EF9 +:10465000BB65779A60365E5FD5EB35D58DF5759580 +:1046600093FBA56F79F480A300E05FB13B93F6CB99 +:104670001F8838CD077B8A7A502FFF5D914D8C1FA4 +:104680005C81E3235C689FBCB3CFC9FA482F0DD887 +:1046900019DF3FCF9672787E25FE58E17A7E7F1A29 +:1046A000F5BBEC7EBE1E2CD6F8DF3908ED5B417AF7 +:1046B000DF0AF7B2B77B9FCF07B89675F17B42B0A0 +:1046C0003D9E9B0985B9BFCB8A97755D58DA7BAB58 +:1046D00083E70757CC443DF649A7447ACCBA4EDC71 +:1046E000B4EF1EEAEF0616E89C02702DEBB6BE9FF3 +:1046F000F50764EE9B2CE7A0ADEBC79622B15F9B5C +:10470000C42EFA1CF44E9B7B5CC668E76E3F68E5DE +:1047100042F96FAD2E2A8FB5AA54361569FC1EE4F6 +:10472000BD079E2F20B11E9884EBEE9CC3D35D5F26 +:104730006531BF85D27355DF760DF952F85DC57EC0 +:1047400065A1A0BF9D713FC5FDC25F2FAB567FFD28 +:10475000CBF3316F20E2E6F74F19FE8B85488FB817 +:104760003CE88567F05F3C6AE07D11E0CDFF8EC4D8 +:104770002F3576E6753319FEC9BE5B95E45E7E4340 +:104780003E9A049FDEB06B5E07863EDA9EFEC3183B +:10479000BA4F4BE4D5C9822EB2886BC8CC9247176A +:1047A00061AFB238FEBD092F812E19C9A706BF30EF +:1047B00037FFDEC55CEBE8BC81C19FFBB610FD0C8A +:1047C000BEC1134536D439ACCF6FAB3BF37904E0AF +:1047D0003F53FD8FF6C131A8276EB2DC43F2472963 +:1047E000F1BE667FD1384E074D9F89EBD43216EC6F +:1047F00050890EFCEF807DA0743F7F37CAF72E8969 +:10480000A15CAD7AF2B19FA15EBAF927F7A7A35ECA +:10481000FA50E9CEC1F1563EBC211DF5F8074A24F5 +:104820001DBFFF30CAF59375BCC231C67E5F774BA2 +:10483000A03757E3AFC8003744E6A25EFCCF87ED50 +:10484000F4F7F3D6EC76F6E1B9B9D57B381DA1FEC5 +:104850002EAF6F247AADD96B96BB9B7F707F8EC6CF +:10486000CFB51608FA15A06A5EBDCB4E7ED5D5AF82 +:10487000CA788D1F5BC386083FEBF708C76998B7F6 +:1048800035BDF26247C6C8F760C93850AED608FBDE +:1048900071CD1E3E5F6B2CF6E2F224FE99B431C25C +:1048A0005E147C0FF4A1FB16220017FFB3185C3FC7 +:1048B000B7FDD0A963FCE8C337727BD07F726CD799 +:1048C0000BE952454C0E8CFBF08EF5968CAA2FFE10 +:1048D00028E46558FF8B7546DB0B00E259827DBCEE +:1048E0005C69EF4BBF04E8B3B2C71E88C0E3958F85 +:1048F000C93A6EDDD8EB4EF2C7DDF2D873472E060B +:10490000786E79DC9E3D9BA3E346BD6DCCDB1AE45B +:10491000F7AAD83CDDFCD3E71CF8F741F039E6C72D +:104920001BF375CBE3071CE86FB7D2757AEF01076D +:10493000973BCBBCF5BE3B13D7E5B61F9E72205FFD +:104940007CB85F62B9C523BF5FFEF00BE9D8CE9893 +:10495000B7E1791C317F7D739FAAA17694D779A6A0 +:1049600079FC08FFD0602DF1FB8F9F82F197BFE1AA +:104970000C20FECB7F7C7B3AE2F107A585F3FDF7A7 +:1049800036E4E07ABCDC1EC951A9E4CF97EFB893B6 +:10499000F8F1A697EFCCE17F2750CF4379063CF39F +:1049A00010BF65FFB080F0BB9185881F977F8F9FF8 +:1049B00043FB44618D8F2798D76D426EFEB0D3497B +:1049C000C6FE1F308887FAF857FCBC2B63B7921DD0 +:1049D000629C8B270D0DF54F5C7C9E568C31F2BF8F +:1049E000B87E5B235AADD9B591F4DBBF15E9B92880 +:1049F000FF4007939E935F9E912BF422E50DD377A2 +:104A0000A032A6E3736C3F60D753269ABE137E2C68 +:104A10003EFE1D627C803B55BA10CA9CE1FC8601BB +:104A20008463B5C4BF41FEC1FCD867C770BB7E5864 +:104A3000FE7775F17912F2FFF1AB5CAFAC8ECE6B05 +:104A400024BD3060EFCBC576D103F325D20BCED891 +:104A5000B9FF78B9DE6517726D7E0F7029523C3D43 +:104A6000F7F3BFE7B4660FD7DB376E83F671721CBE +:104A7000E31747EC79714C2E8DF8C04D96F88C51A8 +:104A80005AF5C2B7C798D7C3E1F8C23FF846F5E771 +:104A90001B76D94A7BF49107517E5F7792DDB3F2A2 +:104AA000313BE58B7FF4E8B347BE0AFCFE51AF21F2 +:104AB000B7667D6B95DBE54F2C6089E4F6A3EC20AF +:104AC0004B28B7F03CA1DC66F37B64FE66FA56CC5B +:104AD000433239BD2989BEFD678BBE053B23E312F6 +:104AE000A8FEDB3FDE3296F21E2CF435E86AD59B39 +:104AF0005F19A325D49BF0F32A8BA3A74147835FBB +:104B00006FFED12A1A67988F0D7E35D6B1617EB5BA +:104B1000E26DA6A7F5FD5AFC034DBED8FCDBD7C35A +:104B20003E1AF3E39E96E93CD8716D281DCF0F6CB9 +:104B300048E17E83E3AAA867F2FA90CFD181FAC355 +:104B4000783E94C2CF891C0F0EA567C6EDE7DEDD67 +:104B500027A7A3DF7C30CAF7DF563E04CDCCFD1378 +:104B6000627F3E43768F09E3FEABBBA40A23012795 +:104B7000DAEDA25EC6FF0E87C847392ECE811D171B +:104B8000E7BE7ECF82472E217B4A57F2809E4B396B +:104B9000AA6CF9E1B674B4C797EEBB85EE69BB6148 +:104BA000B3990E37BA7791BDFE095B4BE58DDBCC2F +:104BB000E71B6F16FA7DF93F589EEFBB82F8E86657 +:104BC0000B1F85841FD2CA47B6B1423E2B5925DF41 +:104BD00027F3BC92DB845E9B21575CD904F43F7EB3 +:104BE00048A678D1897D32EB40BC1FE5F73DB1087E +:104BF000CF43580DFC1CEFBF3C867C76FE48BA0EB6 +:104C0000BFFFA7B727DD0D4D56FEECCD89DBA13CDC +:104C1000F6B3D7CFFB17AC3FF9DA9837D9C8F6D33C +:104C2000F7FFE97AD45FC7F73BE9BCE9F1FD3F1F25 +:104C30007337D69F720610CEE3EBF9FE38B2DF432E +:104C4000EBFAF1226E0FB63D7D6AE220E9637EAE9B +:104C50007BC2581E0F39B1EF2FBFC17B754FEC03DC +:104C6000AC501F8AFDD89AA752687F7DFCE9539308 +:104C7000E2FF5EC85F8BCF6A11773CEE614D98C74B +:104C8000733C93FBAFD6FCCB64CAF35FB5E78003FC +:104C9000CF5B4CFFD7CF26A2DE39FE04B727C0DE9C +:104CA000DD81A677DD435DF7DA61FEFE28FEDEE6F4 +:104CB000CB0F1DBE12EF331E49174E87E34007C4CA +:104CC0000BE8B21CF565327A5C3996E7D9FDCFA3C3 +:104CD000C77F5C8FE3AFDC77119DF38ED145D2F9AE +:104CE000730FE52301FEFCF9FE531371DF7D267C73 +:104CF00057FD1FC3F79EFFE1FCEE1DAB117C56BEB6 +:104D00001FC9D74F7E8DEA3FF60408DEB394F71F24 +:104D1000FD1F9BEFC3FF6BE7FBB0986F8F8AFBC251 +:104D2000E34F7F36869D03DE1FFC2FC57BD8CEB1B7 +:104D3000055C3500DF1B2CBAA05E22EB83EC8E36BF +:104D400037CF6F1F985F4CE77898D857CC95F8FA13 +:104D5000ECD5F87EA28DD928EF666EF68D644FCC27 +:104D6000D5B788F37036826720BBEE914D09F651B6 +:104D7000FF0FB01A29930080000000001F8B08006D +:104D800000000000000BB53D097854D5B9E7CEBD51 +:104D90007766B24F561249C24C36120861085B80E2 +:104DA000A81336C383C084CD60820E5B5804127092 +:104DB000A34F5E331010542C414069CBF38D682D06 +:104DC000756983D28A2DE244D0C6D64A6CF5898AA9 +:104DD000188522024A149771697DFFFF9F7332F78D +:104DE0000E2050FB860F0E67FFCF7FFEEDFC67B9EC +:104DF000933C6AD016CFD82BABDCF64183208CB322 +:104E0000389A9D8C4DF2A8EF61FA34DF9D9FA8255A +:104E1000107AC67FC8209C98D25EA340FAA4321BA9 +:104E20000BDA19FDBE83BFD7312B0B168AB88BB1B5 +:104E30006B6BCCF9D3D98E540DDA9FBE4067010558 +:104E4000DA8B287FB69783B1C1508F35AE75C462B7 +:104E5000AA9FB154C6740BC005E5DF6281691510C5 +:104E6000363356D90AF9CDB116C65218EB98EADA9C +:104E7000A12AD48C9DA53166E3FF671EA742F59B4E +:104E800099A5B2B518532C1E2A9F52F6C85DBC4C8A +:104E900007969FC88BC3B8EA273018D744CF3D3454 +:104EA0005E9B6F5D07854CF377723895EFA8DE72D5 +:104EB000C68630768B185B24DEE0E7D486603DEC56 +:104EC00092F048F8B579544F54BCA93D1A77373E53 +:104ED00005BE2F17AF91F373313CA7391D84974856 +:104EE0003C87C33AC7F1BE3058E663DFC5303E0A9F +:104EF000C413F609E31BA3422568FFE0C34A00710F +:104F00007DB06CCE8601187F5C7163FEE7E5039986 +:104F10001DC6FD8ACEF6280938111EA76308B6C73C +:104F2000EB2B657FFC4A013813CA2C61B8E06FA2F5 +:104F300027DA34AEE4CA24533CD57B85A97C8F9A0A +:104F40001C537E86AF8F29BFE78252533CAB71B8AA +:104F5000A97CAF15234D7197FF3F4CE573D74F36B2 +:104F6000C5F35BAE3395EFBD6DB629BF28B0C894CD +:104F7000DF77E77253BC5FEB7F9ACAF7DFB3DA944F +:104F80003F207897297F60FBBDA6F8E08E9F99CAE5 +:104F90000F3DB4C3943FACF35153FE88134F9AE2D4 +:104FA0005776FDDE54FEEAD0F3A67805FBB3A9FCE4 +:104FB00028FBDF4CF1318EB74DE5AF493F6ACA1F80 +:104FC000E73C65CA97F33FBEF0AC291DB894F98160 +:104FD0001E16F12456E5FEC6D48EC6BC807C06544F +:104FE000DB48A19DB55018CD5A298C05B6C5B0AA8D +:104FF000C4F73327D2EB03FE3B90B85E19F665B6D3 +:105000000F48F360F994041FD1B58721DD4EC2FF2C +:105010003A21B4C7FA55E43F3BF3479532161F5285 +:10502000597020D06148A1D0118A61C164A0C350D9 +:10503000148549A1644A4F0E25529812EA49E9A9FC +:10504000A10C0AD342B914F608B9284C0FF5A530C3 +:10505000235444E115A18154AF6768008599A111DB +:10506000949E151A4661766814A5F70A5550E80C07 +:105070008DA7D0151A47614E680A95CB0D555398E8 +:1050800017AAA5F4FCD00C0A0B427328EC1D9A4514 +:105090006161E8460A8B420B29EC13BA89EAF50DE7 +:1050A0002DA3B038743BA5F70BFD88C29250338511 +:1050B000FD43AB287487EEA67203427752581ADA82 +:1050C0004CE903439B281C14FA39A50F0EFD94C22A +:1050D00021A187281C1A7A90C2B2D063140E0BFD4E +:1050E0008AC2E1A1A7A8DE88D02E0ACB437FA0F414 +:1050F0002B43CF507855683FA55F1D6AA3D013FAA4 +:1051000033A557845EA27064E86F943E2AF42A8522 +:10511000A3436F53FA98D09B148E0D1DA5F09AD01F +:105120007B1456864E51382EF42185FF113A4BF5EB +:10513000C6873EA17042E81B4AAF0A7D45E177F879 +:10514000BB1A68A35C3FDD2D8F73F0DF6EF967F942 +:105150000E42169B04830A978F0CA5DCDC14134FB8 +:105160007271E24A2E17EF8FF9F800C9C96136272C +:10517000D749DB881EEB04DDAFC57F32186B1BF609 +:10518000416627E8A73B2A8E1EBE09F4937F998DBE +:10519000FD82178990BBDFC676C6F20C07A4CF1438 +:1051A000747DB06C7F2A3005BBA3B473B117DAB934 +:1051B000C7D55987A1CDA5903EFDA7D083BACB42D4 +:1051C000E19C122EFFEB96E527F8502FA65CDAF84B +:1051D000463BB97E96E59FC9E7EDB0D8AE6C6FBF90 +:1051E0004B6FE752CB7D19155FC2407EACB0F3F038 +:1051F000B6E8F81D187E19951D403DFDA1D3D7D303 +:1052000005F0F84732C2BBFF485CA099F0DCD89F9C +:10521000E0B9F476F2FE4DEDF4BB947698E6D1AAAF +:1052200060FE6AC5FC1DD6BD35B3A07C6796C5BDC2 +:105230001A926AFDF327A01E1FA3D6F1F44CCD4DA0 +:10524000B6845A47726D36B669C09F6DB1FE7EA7AF +:1052500041BED682DCAC003D5F7B33D81325E7E648 +:10526000777A18D94DEB162B013F96CBB450B95A2B +:10527000A6BDDF29E530A4AF023AC471BCBD0AE87F +:10528000D915EECFB7F89A0F71BC3EB681EC0E1F60 +:10529000D633D8172B0EAF5A73C0D0DF44575C0AF1 +:1052A000F2131BCA867EA786E9BA56F4B56EB1EA38 +:1052B0000E023C675F53DD18DF9F6A650AC43B97A7 +:1052C000D8A85FB63E95F8E4EDD4DF6539815EBFBE +:1052D0006CF2AF39A033360BE4B607F87AFF92DBF5 +:1052E000D2912FD6ADDDA5B338C4E3328661989E46 +:1052F0000244B79D59CCEAEC87F85DA611DD17B2E0 +:105300004CB217C53CE816676B10C6CBB2EDEE5F2A +:10531000405CB5301FDA99B29D0EE49FC1E1F05DAB +:105320000BC7A37FA912F805CCC93A6B6361523150 +:10533000B6C3EBB55B391D1CDDE4DAB11AF22B35CF +:1053400066D74A4DF65F34E20B141EB318ECC5481D +:10535000FB70A52B51D8658DCC0BE33AAAB09A56B9 +:10536000210714097F2ED195B51AF26D29766E6743 +:10537000B654DF88F304702E90E555E8A716E907C8 +:10538000E6A176658CA708F257B9B87C003AF177A8 +:105390001AF4B0AE70F8D912189F8BE87731C66D49 +:1053A0001B6C3977B90CFD6339909BEF89768E2A97 +:1053B000022FAB443D8DB7E3DB9018C07AB6148D55 +:1053C000E0D3B33CD77B012E9B1FE02CC1725DB7AD +:1053D00020BDCFF127B2BB20EA5BA38C45B966DBC9 +:1053E000B06A19E603FE9806A2C3A631CD0A789CDE +:1053F000C51C63D311BE0D8A5BC8CBF0F8009EDAE2 +:105400000D0A8DEF97420E1E5BAB105C9DF72801D5 +:10541000E6227AA0FE99E63DF486A15F39DFB5A2C7 +:10542000DFDA96A76F5388CE9907F1582BFABF4160 +:10543000658D188FC41BF21FE2F7AF021FC7FE2B4A +:105440008EC67F6EBF6E6B75BF30DCDDF3BF32CEB4 +:105450001355121EF75A05E403E2F31E1B8DD326E3 +:10546000E0917838EC4AA27E3A575D933DFB3CF0E0 +:10547000206D33039D44D2976E11F39CCD68BE24FA +:10548000DD4BBAF9B3A077199E14F864D88EEC47B7 +:10549000C574A11F049D5E63CC8776AFC95CC690BE +:1054A000EF886F8633F647D7E75E3FB43F5FD6732A +:1054B0003616A29C94FDC3CF437C21E8D5166BF72A +:1054C00014C1B8DF10788DC44BA41EF97D379CCC75 +:1054D000671D22E4AD05D39D945EBBC1467896F36B +:1054E000FB3EF215AD133DD9342F0E8137414FF7F6 +:1054F0008BF6EE17F5919C1494F39B6CC4FF723EEF +:1055000022F12BE5FE115CB742FBF76312C8B3FD35 +:10551000090D0ACED757623C69485F90DF66BB41F0 +:105520009965903B09395C6FA78AFCC87126E4F045 +:10553000FA1E91CFBE85F421B44EA6F996E5A24598 +:105540003B323E36CEE20D40F9F1F7031D9FA7DD59 +:105550005B7379BBE337B67EF657A48F5A2BC9C568 +:10556000FB5671F9136E97975B9D2BF05D7769FA87 +:10557000FDC80A350AF5594BE8E463BF81F693BCD0 +:105580005692FF49ACF3B1DFC0BCB21A46FDED4FF5 +:105590003843F1F8A939A52AC45B3CA584B72F4448 +:1055A000BFB2DDAD6596CA402C969F943117C6B345 +:1055B000A5BA5E996B80334D4BF00408BF93321649 +:1055C00088FC0590BF6FF2F1BEA857F6D73AF6EA0D +:1055D00000877D2A73E094273B1995B73B591496B1 +:1055E000C77E1718DA4B9ECAF3DBA68CCD9807F559 +:1055F0005AA6AE1E86F5B6545BA3F200DEAD13FCD0 +:105600006508AF2C0FF9410DF5EE68A02C484FCA84 +:105610002C5D89A231496B6A77217ECB993BDF896A +:10562000F0F5527C867E0AC43C782AA13FD4734EA2 +:10563000EEFF90F90FE4F2797D3DD74AF87F3EA660 +:10564000D7CA7C94D3532D0E54B7C4F7D87EA595F2 +:10565000F87BB3D23910F96994EA28C730278FD77D +:1056600097FA5017B254B76FE8C0F5921EE6633B45 +:10567000F93F84BEA272C0175BA4BCCFE0F2C35056 +:105680005ED23FE90D7DB43507FD2ED7E674F325D4 +:10569000E90F6A07E0D06B18F1E326D9DE0C467CEF +:1056A000C5349F827A4DCA7FBDC64BFA62ABE027F4 +:1056B00060EF0CE457898F1B45FB5B337D33D00EC5 +:1056C000669A43C1FCCD8A4341FD3C5BE4270A79DD +:1056D0000E8CAE907D26CA49BDBDFE4A1640BDBDAA +:1056E000BE5B2E7078AD62DCA0AF1896B74EB59059 +:1056F0003EB3967B49DF5A47FB976178AFD0D37AA8 +:10570000BA6692C7721C4D392EC2FB7D33AC34DEB3 +:105710004D198E00F763F93204BE2CA42F712902B3 +:10572000F8D994E598C1F54623437C6C9670698C52 +:10573000F0436834CC8B5E69E57680A793E4AE5E77 +:10574000E6277DA2D7FCEE36F4376D0E8FCB63C50E +:1057500071295C3E5A2758496FAE1578B28EFE1DEE +:10576000C9C7C87148BDD23D7F11F37E8EFC8F88BA +:105770006FACB666607FF7C1BC90FD029ABCDB6F70 +:10578000E644FBB3F79B73012F5BB22CCCE6A4FC81 +:105790005836244C9F6C4DFA81BC3432F5A8FCBAC3 +:1057A000A9CFCFA4792BB33A51CFEADEB1E40FBB36 +:1057B0004FE98CCB41395D6D71A09E882BE37EBE95 +:1057C000B841CB0A30BC1BEC43B4976FC8CDA1F9EC +:1057D000D8386DB53D07FA8D1D602179B4C5FB7EC3 +:1057E0001CF2E373421F0E3FD1312A01F293273896 +:1057F0004A91BF64FAB0634115D3932A79FA88AA13 +:1058000016587463DC4FF8DF58F1BF5543018EF82A +:10581000628DFC64F729C1F52AC2358ED17A2F69D1 +:1058200074D0310AEA2766F27E3DA3839543317E28 +:10583000B3CA14281FFB514A05FAF54628891C2EC5 +:10584000FCE70AC2841F7D2ACDBA88FB6FA85E9050 +:1058500089F41DB4A30E1BF3D09C6A0DF44DACC2A9 +:10586000F35FCDB9AF1AF56E226BA943BA637936EF +:1058700007F22DE2D19E44F3C86A209C09746A8520 +:10588000F0E59C1CA283388D052DA0DF2C3175E935 +:10589000888FAA645F23D26325926029E5DB93A9F0 +:1058A0003C9757B05E7163B90DC25F0BFD7B8D7283 +:1058B0006B8C906BC5228CF4ABC63D5F9D81ED6F08 +:1058C000AD30EB9BD8415693BF28BAD81CB7E799A7 +:1058D000E37AA6395E2DFADB9FF01D43F812841C93 +:1058E000B84FF083ECE7740EB77764F89CD5793342 +:1058F000E2EBB9E838E65730CEE584FF634DD8C710 +:10590000EEF2290639B452C863D4F338FF52BF1FF0 +:105910005971F41ED4772D5EA705E9449697FA2CA9 +:1059200045C013A9371D020E89F7C8FC58A17F9BFB +:105930009B56B0A3F9E17455B437F8355F735C0A30 +:10594000E2C3596AD44B16818FB9051E4B6EAA412A +:105950002EEE8F525C71C6F679FF8E589FC7837208 +:10596000A36E32D93117D6F3ABA9BCB47B22F3179F +:105970008BF63C17B15B5CA2DCA5DA2D775EA2DD6D +:10598000E212F8FAC965DA2DA3D4CEB32EE49B5EF9 +:1059900016E2DB759939CA2C031C5B05BC835147A1 +:1059A0000C46B5A2F9D1AFAFC56AE4DF57A75AFCE0 +:1059B000B8DE56CBADEFE1FA59ADB9E313F24B3A8D +:1059C000FC7EECA587E21B928BF0782D1AF24394B3 +:1059D00010776AAC87E4C885F8E41C7AF8817C0209 +:1059E0007C47767AF5430D9BFCC5FFD23826213DD6 +:1059F000B109308EB473C721E551F1430B36A13C98 +:105A000092FE8D0BE13FD2AF302337D6EC57B8482A +:105A10007DE9377817E705E1728FB0201E93C598AE +:105A20000F573DEF40BFC359B7469B151BD0FE87AC +:105A3000F886152AF949804CA3BC067EB08754E647 +:105A4000490619897E08089FC871D27CDB9D2D24E8 +:105A500057ACE95CEEEF4FD848A1BDDBBEEF65A2C5 +:105A60001749DF8917E27B61DFB97239DC95365F50 +:105A70000DD90175A526FED372CC7C22E955EAA783 +:105A80003F9C7EFFEEFE309EB41AAE9F4E0B7865B3 +:105A9000F9B41A7739F9CDBF056C1AF032B60AF8A5 +:105AA000ED3C7049BB3F5AD0B9842BB25C4F313EBC +:105AB00009BF6C3F5EB63FECFCED4BFE94F58E8467 +:105AC000867F867C178FBC07A0C7D734B653BC929D +:105AD000913ED5CBB87D3CAAD7727B7431E7CB45DC +:105AE00028F7726C545FF2E355EAF9E5C6406107A6 +:105AF00083FDFCAD4AF63373A09CB4316F05AE0B49 +:105B00009896407204ECE474849FFCB74ED2874EA2 +:105B10005CAF9588FA5B84DD17B6239DE4FF31D82E +:105B20004756A3DFA7DB5E6366FB686F6EA2B09388 +:105B3000BD0CEDD3483B54DA5DD20E95F673B79D9C +:105B40002CEC51FCE943C276AB75022F27E15B37A1 +:105B50000CEC5CE86F9DC2A2F2509F4DB3707F8A3F +:105B6000E6A1754D7C799AFB2E67B85D6B19B7BFBE +:105B7000FFDDF6E0BD0AD8BD30D79B045D26327745 +:105B800086B00B3390EF8CEB37E3FA0EF506DABDF7 +:105B9000A90286B6DA46E6443FC854A7827A2A5953 +:105BA000AC9B5ABECD6DBB1AD7655327E7E178F79A +:105BB000215FA07D36D5A2607987C751CEE52BEF56 +:105BC0006FDFD7D119F5063AD937F2F840B447D785 +:105BD0008FB33A1427CD07D7FF5F45D33A6554EE0C +:105BE000900CA7818E33F238DD6FADF179D08FB58F +:105BF000DE95A6CC36B45790C7E97B63753DD9C115 +:105C0000CFC734919CE85EAFADE17EC5483AB58917 +:105C10007A36818F2DD32C51765A9F8E54709D6A7F +:105C2000CB8B2264B468090AF9CF3C729DEA9E814D +:105C3000EBCF5965B43D8172C83A1FE5545E34B567 +:105C400017EF90EB212EF73656A43D7897C1EF9BC6 +:105C500098C7F9BD45E94AC779B94F977E48EFB86B +:105C60007C287F5F6A5E29D2C9C62B0B7E8A78D2D8 +:105C70007FDC8FEC0C59EF0697CF9107E1BB23A790 +:105C80001F9A8B249253908DE3DE24E4F13B0EA601 +:105C9000A13FE51D10BEAB146CDFEBCD47BEB9EAEA +:105CA0008BDFCE7552FDF4BCC1A6FAD7233DCBFAEB +:105CB000252E6F4FCCDF5C359DECD3AD35EE8CD906 +:105CC000D09ED56925D284994A9F0D706D1EC30858 +:105CD0004E39AE2E219F0AF2783B1BABEF4847B8F6 +:105CE0003ECD758AF1025D92DF9AAF1337BBEEA00D +:105CF00076D24673B923ED3A58F77B70DE36CE285C +:105D0000A0F308389FE8A7E81272ECD35C2E7FB6A8 +:105D10007A3E4D9FC7907EDCD4AEEC47D27F224ABC +:105D2000750813707E0DF4BD95C99F736F17D2610E +:105D30009663008E6387D00F89359CCEDB6C093467 +:105D40007F5BC67803AA8BF3C93C82EF0BC24B5B27 +:105D5000AD8FE83D4DF047D204416F35D640BECB04 +:105D6000C82723F3894F800F7CC427A5544FC29BBB +:105D70003CA1F329F4CBB48DB7929FE12A958FE72C +:105D800052EDA87789D318BB36CF3B19E70DE44D08 +:105D900009ADC3572653FD3A4B5B7E23F457B73A00 +:105DA000486164FD4AB01D3A683DEC4E433A678D48 +:105DB000C3499FDF2464CAD90D831370FDE58BE7C7 +:105DC000E514CD3714E395FF9C33D48A3AE4AD381B +:105DD0008676FBCC5C76C36448BF41E1F0CC6C1E98 +:105DE0005789EBDD45826E0F36C104F786755393F4 +:105DF0009D798039FFD6E4A0F8EB4DE9147FA3C963 +:105E000049E19B4D85141EB3727D3B3399DDE0E57E +:105E1000FE052BCA9346210F1AF3A4FFE3E674D0C4 +:105E20002400CFDF065B1C3865C3268FC962AC53E4 +:105E3000E7727E9247455DD32D5F6BA6C690112118 +:105E4000E3B3BC234CF9AC7060384EFE093EAFB3EF +:105E5000D727EE40BFCB8C09C9A6F2D3D7F734C5FC +:105E6000D7E5F179ADAECC35A55F57D7D7149F15DF +:105E700002C53110C9B08CF6716E16FB938C95710A +:105E8000FC3B78D9CF1A87F6B80DFAFFEC659DF286 +:105E900023E7E19895CB19FFFFAA629FC047F3F271 +:105EA000F9A12C86F056FE53A57D20F628F7AFCE3B +:105EB000D9A6303F0C8175F9AFC77A373F68736355 +:105EC000B9B9DB54E64378D06883FE4EBE9ABFE38F +:105ED0002E9A57FF0358AE0BCAED80AC133AF33B32 +:105EE0008034E7748A7694D29E88FF1389CC930815 +:105EF000A6D48751870B6E03383FAA6AA9B720AF93 +:105F0000AA2FA75AA0FE474FAA0CF968E1B2D7877B +:105F10003800AF8B5E6CFDDF3268EF588BCA1CD047 +:105F2000DFA99DB607B9DFC6D303F570789C81124F +:105F3000A44B4FB6F7D748DF27EB032574DE666521 +:105F40002AD1F7B9F880F1A33E41BA84F67CB7C6EE +:105F5000D9F1FCC41CDD9D3680E888AFA7FC6C50ED +:105F6000062B83F21BF4CA00F97F3C13719CC75ABD +:105F7000922DFC5CD3934457B335A7D5D8DFEC0DF5 +:105F80002AE901980CBEEFB049F581ED0CBF16DE91 +:105F9000EE7AC5C77A9C3B8F37E13E20B47F5356DB +:105FA0007400517C3DF6711EFEFE1878C7670BC762 +:105FB000173DAB925DC706393796E3BEF8C3A3061B +:105FC000A3BC623EDEFE6749926ED670F9E8612C92 +:105FD0001DE7FFE1B800AEAF4F5B9E3CA2C13C0C99 +:105FE000D27C87107F0B26FA1F508025CEEC3DFA1D +:105FF000931150EEE413BA9BD89F79DECAE3CA9F8F +:10600000F86CB626F4D80ABE6FC8B4C0233F433B31 +:10601000E7AD1E26B91F9627AB383FCAF20086A50A +:106020000C83609A0278F439D9584731EE1FB48A4C +:10603000F352012AEF4420017F8EC51002DE8E0E3E +:106040008EBB8BF587F98AD8373C2AF8B94BC81331 +:1060500029F706E4F3F81CB9FFB28FEB7B98E0D781 +:10606000D0AFB58071FC34887DD6058D7C5F58C972 +:10607000E7FE9886C66B3E90F61DCECF8D408738E2 +:10608000FFF58EC49B3B20BE7867943B00F5AF467E +:10609000A732EDAF3007E27DA1A8F2A7C29BACD832 +:1060A000EFA2DF2A2C19FB0DE8C7D01EB30346511F +:1060B0007E9C04B62D4BC2F6146A7F718B12C0F31E +:1060C00064F3595710EDE3258F2BEE206F8ACEDD58 +:1060D000CD13ED2ED2EEA173738B0A15DA57663B02 +:1060E000A15D835C5AD2CAFB91F2A48169C78CFB83 +:1060F00025F384DF791EEBB60FF9B9BB169DF65573 +:10610000ECCCBE0ADBF1C6C4115C8B5AF8FE7418E5 +:106110007E957D0738ADF7055E9C487850DC0176AA +:106120002E1CF3997774228E03F283CE73E18A1CBE +:10613000D7A5C259EF6E237A8984D7300F4EE33C3E +:10614000CC671D77205DD5FB391DD4EF053C43FBA3 +:106150007F6FD4993581E8A1236FC8B9F400F04F5F +:1061600044F9387F8BCA82AE307D48BA58B82B606C +:10617000457D7C8AB5C4C7021F2DDEB66BFA30A8F8 +:106180003F7FFBAB56D4E77549C17C0B181B29FE3A +:10619000C0BD9559617A5D1830E3E1C69DE6F8BF50 +:1061A0000B4F4C9C93A47A809F790FABB42E319403 +:1061B00033ED9F2DF0333A27B0E035D58D3EA20563 +:1061C000A0DF924B2F1F5E89BFFF6FB823FD150D17 +:1061D000F97129C7F13CA59BB9D15FF1392B4EB8B4 +:1061E000163385BD73217F45F7B991087D7B58072C +:1061F000FB02E6F133CD939044723D526E0FED8178 +:10620000FA47CAEB7AA13F65FBF3506F42FCF8B640 +:10621000A7E2D12EFCFB96A7D2309C8F7AA938AC8E +:10622000976E9D13CC423D7EEBD3516E24513621A7 +:10623000F8FA8F20FED12E959D4F9EBE9FE5BB277D +:106240001FE115FA7589FA60B603F5A990AF17B387 +:106250000B7FE83867E3380786DB9D23C6F9FE7AB3 +:106260003EBEA31BF878E79E334EB02B709C0FD92F +:10627000DC28DA4F440549FF9F8071361BEC076923 +:106280002FC8F17DCE5A1E0842FE92E56F1CD180C8 +:106290001E16167494203FD66DB2917DB0F0B77182 +:1062A000B4EF7F52A9E841F6F181603CE26FD193EF +:1062B0001C7F6138BAED85DDF9467BE112F1B654F9 +:1062C0009C9B5CBAF78F87D07E553C5015E05D6A89 +:1062D0008F0D12BDEF319F73539CDC54B731B7DD86 +:1062E0008EF393C99CFC9C52E4F95FCD731CE6A22B +:1062F0001EEB01FC5FE47F72FD72E283AE02D4B755 +:106300000DD141BD07DA59BB14F70EE4B79B2BE260 +:10631000D175A88BF39B7FCDE7F6AEE2F1B015A562 +:1063200074FE924543BFAFA33C4C45381CE4CA629F +:10633000DBA1FFB830DC91E9784EDB8E7A32D67281 +:10634000DE75B156C0F5E912D54276F7622BB7BFBC +:10635000CF087FCCFB028EF7F3B91D7E229F9F3BB7 +:1063600038838E4968F7CC185B00D79D1D567E6E2A +:10637000F555DDB3EDBF60DED614F83EC0F9F05A36 +:10638000626722BFAF8E29D1517EAE49ACEF85E165 +:10639000F5AC43C7799D5856EDC4F5F59134BB5B18 +:1063A00025B9051332247CCEEB153D763DB67B0432 +:1063B0007107E3AA15E7A08F40FF787EFC48863579 +:1063C000D00CF5FCCFDAC89E5817CDCFA9B29404F3 +:1063D000F29F5E27E4D4CCD1B0A2079AA91DBDCE0E +:1063E0008B21B4E76780AF3A7BD7DA01D0CF2A0B95 +:1063F000D7D7AB92183F7FB6A67330E2AF3F5BE3CF +:10640000C07984D1EFFE2EF9FBE84963C7259DC012 +:10641000B816E379B6E18C135A19E1D7145F6CE52D +:10642000F95714E853B664421CD71E480FE3D4C092 +:106430000E179EBFB5D07C4E827691DE1832CD907D +:10644000F0B9FBC9F0B71CC63959637E4B1285EB16 +:10645000F1C8E5B432164C80F1055F620AC2437B95 +:106460002500DFB5414BB037E06D92166C43FC1D43 +:1064700052D95AB44B273397BE1CE663F1EA4B83DB +:1064800077508163CA9672885BF83D82AE1F2901FE +:106490005C275CAFB1032AC0D390E4F453FA324EC8 +:1064A000D790BE3EBE14CB2B4457B52024909E718E +:1064B0007E894EB1F090F03C41797B34A49716B8B8 +:1064C000F8791301EF369F250DFD024BC4FAF07ADF +:1064D0003B5B1387F535773CEEE30E00308DF3D44C +:1064E0006095EBC856EB64E0CF1B81BF5D8097AB36 +:1064F00004BDDF28F9FB71337FFB0A9C9CEFD0BE03 +:10650000047CD68AF042FC3153B437B380FB13C607 +:106510008938F68BF473A3902B17EA6F898D0509E0 +:106520005FCFDA68DE65BF9364FF05DC6E95704867 +:106530003AAF678D569413F542FF5A6032517F2E61 +:106540006879C88A4858B0DD60B7D1BF2D569453DA +:106550008B1E8E4C37E86FD524C7E81CAF62ED9ACE +:106560008BF0295745B9912F6AADADE4575050BE15 +:106570001586E55B643DBD85AF2BF50DDC2E93FEE6 +:10658000391BD89D28E7676576F543B96063CEB1BE +:106590008A8B75DBEFF5820E6C686FC07CD5A37DAE +:1065A00086FB23689F21FEB671F835616FCF693194 +:1065B000DB29B3D6478E8FDB2B7A77BBDA31A3BDCD +:1065C00021CF6BBC6BEDEA877AC3E07F25BBE55D2D +:1065D0000B1F873F8D9FD360293C5F13F6A9E4FF13 +:1065E0008602DD741F6412F326040DF2D63B1A688E +:1065F000AF14FD134A00E96192A7A29D87AB827494 +:106600008F05ECB29E49FCDC7D3995E3F753BC95D0 +:106610008A3F86EEB9E8278DE33A88FF1976AEBD4A +:10662000B4B540D84B11FB3BAC3CF9BCFA30D25E60 +:10663000F28F6485E43F42F9CCFDC864572CEF3EED +:106640004F1D5B88F2BA4E8976E3FA419EEF3D2CEE +:10665000C24FC1FE467AA97B278ED6BD91E77ECF79 +:1066600054C4F92D10CE4CB87522CE675DBC55C30D +:10667000509E073E2CC22F2D9DD4FF0DACF314EE7F +:10668000235D93D21187E897E7AFEFA818B80D6C98 +:1066900042162CF04DB167D17EA8D8D79FF7370F9F +:1066A000C03F15F745295E3FC503EBCB332F745D23 +:1066B0006F07D5F5C623F553705FFFCCD6AE073014 +:1066C0007EE691461EBFA72B3B8AE2B74DD100AFB5 +:1066D000675689F6FCB74DC1F6CEFC94C75F807C47 +:1066E000DCD7AB1BC94557DD7085F4CF01A197A559 +:1066F000DFADCEF23C0F47B2A065D0C5CB7D55E0F3 +:106700003D80F69F1A778CCE4D28451E8A3F9FE725 +:10671000EB28807051B5E2B7C238D86B8102A1D79F +:1067200069BDBE4EF8E3E57C1EC8E7724886EFF50A +:1067300086760787F106EDBDF543DA6B88684FDA98 +:1067400039F3841C80F68FFF90F6A55C91ED9517C8 +:106750009E03FFA73FA4FDDD11ED49FB578EA31F4C +:10676000F22CD0DD903ECC048F4C5FAB0453AF4590 +:10677000FFDB4B2AED6BAD4D3DAEE1BE24F3F27D68 +:10678000D19BA2389FA4F6E676D3DAFF7227E03ACF +:10679000C0FF1795F6BDD7AEE2E7D64F3D3174087E +:1067A0009298B4534FB5BD6975C238968AFDD1062B +:1067B000B13FBA74779B752CB4DF00E128837F6406 +:1067C00071F739AC4E6D725C188ED4DE16E1275D20 +:1067D000F5BDE708727B4B7F2A1F778918DF277D7D +:1067E0003D99BD0DE396E9CDBAF99C870C178876E3 +:1067F000BE2E6042FEF1F6FA2B7CFEEAA2B9BE9CE8 +:106800003324CEEEEC1F3E4F51BFDD45FB1C1FE68F +:106810008DECD37B70B83F592FECA7EE3ABF9F7A2F +:106820002FF753CBFEDC02CEBAA48E9BC118600BAF +:106830007EF9DF9B512E8CBF5FCA05101176DC6F8D +:1068400095F1DD534697737F29C6C7FFF289CDC8FE +:10685000D7EDD17CDD347368BF68944B9DAE188B47 +:1068600003E4D5A4BC590B102F33875E3916D32B04 +:106870006C7105B3F8BE0FD1DFA43CEF68CCC7F252 +:10688000E8CFF259399DF8FEA4BAFD304E5F498C2D +:106890000FFD88ED16361AF5B8C4DFC8DE9C2E173A +:1068A000F4E6F893FDCB7E1973905FEAD8EA0CDA30 +:1068B000B7B836AF627EEFC1E17EAFCDF34DC5B85C +:1068C000EC17865982E917EA3F72FEAA05BDCC177C +:1068D000FD7BCB81FE0CFA74F2E818537CEA8464E9 +:1068E000E631FAC3A7F634C56BEA724DE5AF9BDB20 +:1068F000D7945F65EB1864B41FE4BC5DEA7A6D2C35 +:10690000F07D02E0A5A38DF5DB8D7CE88AA37DD721 +:106910001BD78F23FF7A42A896C2C52D1007FE59B8 +:10692000129A42F1A5A1188AB747778C457DDEFE01 +:10693000BB445A9F1E5483053FC7766C71C4CF5524 +:106940003D67AE46FDD31EED2FBE09E0ACFACD3556 +:106950009538DF4B772BE407AE5259BB9284FC1974 +:1069600045ED55A97F1DB40CD2C78FE27AAD0A75EB +:106970002EE4370BBFE685F866A3E01BBD93C33D4D +:1069800026544DEDC9FCADBD734CE70CF4D48735EE +:10699000B27FC578F44E85C2FF08F5A5B06177B522 +:1069A00086E771FF54F8500AEA0F281F4B7A5FCA36 +:1069B00025C9378D431358EC85F16C13F2A756DCCB +:1069C0001379A8C8F318D2F5C4959D9A1DF71562DE +:1069D000AD0E5C474E2C1B905E6F68A7B96D0673B9 +:1069E000D23D0A66457D590BA1515EF92E704E636A +:1069F00097A07F29AFA41C678EFB695D70BDF0571F +:106A000048FA78A0B7F9BC4687C2F5B0FFB77CBF9B +:106A1000636F91EF00C2DB51C16A9E24F9D1918D61 +:106A2000EB837F17FC30BF7685D6639D742F7A6227 +:106A30009993CE9BBED43D0E4EA7171BC7EFC4380B +:106A40000EAA6C05D2C7C1ABAFEEF0E0BEE0ED031D +:106A500007A25C648EAE6F914E1BF68DC845FFF4A5 +:106A60009BBDADD46E15EEC10C0AAF171AF6C5D09A +:106A70007E4FC33EDB0E05CA35C47715A0BCED5F63 +:106A8000EC7B13F170F0B9AF8EDC0EE53DB17174A3 +:106A9000FEB1615FD4018C5FA5D2F158B03B3C6F71 +:106AA00061B90BC179A9FC184967BEF59CFF7C82CE +:106AB0000F6709BA9D2DF87096067A11E0BEE16560 +:106AC00095A17C9ABD52E9B71BFD14CE383ACF2D63 +:106AD000F950F29B8E743910E993D3E5E250A2E0AD +:106AE0006F976897F34115AE5BA19DAABE89B48EDE +:106AF0005F1A4AA672925F259F868A7C518580FF25 +:106B0000AA66E06FBC97B53A6310F2CBC5E9E42BF7 +:106B10000DEF43E9E58A8E746283709481BFBDE115 +:106B2000F3D163D370FF668DCB62BC1F135F68D651 +:106B3000CF17A3936F049DCC8E0DE6A31DA93746F6 +:106B4000B9F15C4C5DAA93E4D8F23B21022858AE1F +:106B50007B47A15E5DFE5385FC8DA86FD1DE1E7262 +:106B6000A891FCD6B2FF19A112E6043C4D09E551EB +:106B7000F8619E2F13F1302B345DE0B1E4BCFB943F +:106B80009F35AE233FDF67019B9B919FC6EC4F1C57 +:106B9000EC71D3BEA5FEB2CE1E74A21FD0A7227F79 +:106BA0009CC8628ECD0AF727A27F51FA03E5FEA3A7 +:106BB000F40BDA522CA6FDD2CFB5966CB4FFCFF110 +:106BC0000F5670BD76FA619DF4DAE2B6BF0EB1E001 +:106BD000BE8BCB437E424FB66F4821DA879303BF0B +:106BE000D6217EE33D4FC5A3FF5EE2B3550BE6E33E +:106BF000FAA515F088FECAD60D2ADD7F805F4CB558 +:106C0000F1BEA1B02B5E62DC1E9174BE28944BF8DD +:106C100091FA46CAEFA79BD269912BE5F8C5F4908B +:106C2000A4EF251AD7634B80EE71DE22F928AC7FE2 +:106C30000610BF30E017E48FB0FEE1FC11D63F82B2 +:106C4000FE137AD17A23529E4BFD34E257B9BB7FB3 +:106C50000FED2C7A6CA617E7E9EABE200F001F8B18 +:106C60009FE47C10C9EF525F4B7C48FCFC49C46731 +:106C700015791A918E2ECE3F5164E7DAFCD58CE45B +:106C80002C844639AB47D8B532FD96CBE49B398589 +:106C9000E6F58484B3C3CAED2B09FF9F19B73F649F +:106CA0003F7B8B266F281CCCF506F6BFA990EBE93D +:106CB0007FD7B82EA43F36758FEFD2F4C78F23C687 +:106CC00027C721C7F5B218EFA5EA97470AADE29C9E +:106CD000B459BF40B9E37F807A679E2D72A01C53E0 +:106CE00095AEE374FEFDD92827E2E1E0735154DE4E +:106CF000634F207FFDA8E73E38FB7327AE23A63CF9 +:106D0000827CE8D96BD398C1DE93704938FF22E0CA +:106D1000063DF458A1613C32FD87EA25C917917CF4 +:106D20001BC9AF91FC39FE6EB013719C4F2B74AE32 +:106D3000206C1732D253ED3959B49F26F9DB602706 +:106D4000923DC20A153A1774AEFDF5C62027D43F0E +:106D50003B286E00FA47F6ABAD9B872B613E1EF9D0 +:106D6000D8374FBDC5CED577638B7C47485F09FECA +:106D7000957C7A71BA7C46277DB55821BBC606A1A1 +:106D8000515FF92EC06F472F93DF5E15F47810E145 +:106D9000437B2CC14AF6D8C5E8EEF37F3FDD7D6E1C +:106DA000A4BB0BD9DF5F17723F2DD0DDD7C4EFFF37 +:106DB000229D7DCFFC929E94F437FECF9C6E582E80 +:106DC0005FAF001D11FCEDD62C92D3B5424E8FFF64 +:106DD0008EDF8FF589F5BFA463571F5F769161FE43 +:106DE000717D82EB8E4BB56B6B531A199E5BF34131 +:106DF00068944B36798F2062FE738B2ECF2E4F2CEA +:106E0000BA3C7B7660D165DBB357E1F82F66CF32B1 +:106E10000FB75BC2F3619B82747336C8CFA75F68FC +:106E20003ED56D1CDFDD780B6AD22E4846BB00E8EC +:106E3000E4EAA21F6027578D6AFDCC0E26EBCCA298 +:106E4000C7A6A2BF713A9E95213FC4E35B3C792857 +:106E50006F98DC6F213F05F111C59F786D34AE2F1F +:106E600037B3F07E0CE48F294FE8F66BE0124896BA +:106E7000AF2B7AF4B50D04373F9FC47C9D1ADF9F7A +:106E800014F141108F33C4CB22E2DB79F978AD9352 +:106E900019CFED20DD29A59C4E4CEF32B0AEB17874 +:106EA0001E64E26EC581FE89EBCACF58D12F5335DF +:106EB000AAF3C59E30DEC6A2DD53638B201DE522FA +:106EC000C0EB2FDABBC5AF89FA69E4C7A29FAD5505 +:106ED000F1A878EEA44C09E015BF483CFA8BCCEB46 +:106EE0002BFC69E6FA0CCF815D4E7D9C47AA9F433F +:106EF000F583B6CBE8FFDA727E6E34B2DC4F041F46 +:106F0000C87B39D43EE06E4A2BF71F4496BF4F949E +:106F1000EFB05896E021D6078A3AB6D8AF84F96523 +:106F20009C3E024507A7FA8B39B89E88F17E1FBCAC +:106F30006B8ACCF604FE9CE6FAC1EFC3D75DE7E0AE +:106F40004BD0C70233BD2468DE0367018E8414C5AD +:106F500081F6F8526FD4065C77548D92F4FDD654C6 +:106F60004F268C2F8A99FC7061FA7E7B2AD2F752C9 +:106F700026F3DFD9827ACA6B61A67B7A63F62ADDB3 +:106F8000F50B35BA7F46F57F5F74780BE207E68331 +:106F9000F229AE7D0FBDB746C4CB23F843D037F1FD +:106FA00027CA6BC04FFE79E4C6EB023F1F89FB0581 +:106FB0001D23B95DD991C3C3CF8BB8DDF88E9887F7 +:106FC000BF8BF21DD1063C6486E7197E415CFF1839 +:106FD000C64D789A9122C6EDFF7AEA0418574712F7 +:106FE000EBA7009D9CF9D5175BD664617DAF86FB4E +:106FF000209A3FB4E5E561505EE0E5F35F7DF59AE8 +:10700000A01B05F96C091100CCFB6EC54FE7D070D1 +:10701000DECF33AEB673F9C41F51DFA37F4FFD3F00 +:107020009E5BDF13519FE92997535FCCCB8488790E +:10703000AB8C98B7D111F13A190F98E497946BB3D0 +:10704000F76C5A9B46E7FF147A630DE4B35519C0F9 +:1070500058741F6D5AEC30A44FA7DE13647C7C1F5C +:10706000EBEB76A0DD6A945F44AFB6AD28AFA72006 +:107070007F53DC3ECD9380F4D2B8361DCF23F78901 +:10708000DA6A077EBA6ECD261DEF91A6F789D9AAD6 +:1070900041BB3306FDE6456C4F53E25E9FA07C0F7B +:1070A0007DB6448C637B44DC1F517ECB45E4F99A6A +:1070B00088FA2B23F23744C4B745C4D79BEBCF9A49 +:1070C000CBF74367C1FC21E22EC6277DFA48BBB04F +:1070D0007510EEB795F6B962EB5A30BDC737733A03 +:1070E0001FF4E815D38C742AF7696B53981FF58148 +:1070F0007E01F954D0E702745218A9BF64BE371D4F +:10710000D38F08FE60FE53D350CEECEF96439CDF46 +:10711000DA540ED7958F9E7A7D0DD5E7EB947BC51B +:10712000BE84BCFF82FB2ABBCE23FF9FEECBEDCA01 +:10713000FDDFF0F719FCBDACE4CFDA9FC0EF17AC70 +:10714000BBF35ABA5FD0CD6FBDAC2BF8FD83A6F46C +:107150007906FDB0BF57DAB7B84FB4BF077F5761A4 +:10716000FFED03BFC5FB0BFE06D59DCFE83EEC2926 +:107170007CC7E3EDD07087F13EACBE989F57D653E5 +:107180005AE3E619E0DBDF30B0DC6958F77E2EFC0D +:10719000EE6F67DEEA407DDDD6EBE68E0A84B787C8 +:1071A00046F0DABEAA7328C5786F93DFFBAAEFC357 +:1071B000E5981EF711DDC36D4EC18B73982EF6B99D +:1071C00032A7DBB19DE614FE9E841E37D361358C59 +:1071D000C793A271B85CCC6BB4C7DF12F3F84C1F35 +:1071E000F10E83EAA071031C0EF4C7DFF04DDDA1A0 +:1071F0000EE847CF1EE2C4730DD97D73F979608B19 +:10720000A31CFD4357A9EE41CCB09E9C6111EBC677 +:1072100088778A6CB8CF5F627A6784DE65E87EC75C +:1072200025DE2ADE4DF8FE7785D6F77151FF905F97 +:1072300022F6C7C3EFF9A8743F8CE43FDAD57A523F +:10724000F85D21C33B3CA3315D17F7BAF52CB6744A +:1072500032D159AB8E7CB7B58FDC97E3EDCAF757C7 +:107260006AC5FB3FDDEFE8F4B096EC81F9EF8CB531 +:10727000BA9D2C9C2EFBAF15FD5CE8BD1D09CF2FE0 +:10728000FAC87792DC87DE4841FF458C85CE9BB3F8 +:10729000F3BFAFD3990D2A3E36FC6ECB5A710EC6A2 +:1072A00016CBDF4790E99DAB47D0BD99B5D23FBF24 +:1072B000449CD316EF2674BF3794C2DF4DA885FADD +:1072C000AE12C3BAE432DFE3B9D83D39E95790F4DE +:1072D0003114EFC0A622DDA7AD24BEEA6127BA5F54 +:1072E00097759CDE4DD17F3CC28DEB966E3EED9145 +:1072F0005E8EF778DA1A92577619F8E4EDC5531CCA +:10730000738AF1BE4FEC02A4EFABBEC95C59918207 +:10731000E749AE36F1E5BE1F9F3AFB740A867174E9 +:107320000F6EDFD7C39DE897552D9D2427D8D7D161 +:1073300044EFA3126AD29D06FE7855D04389CB73E1 +:10734000B00F846A1AF0416C589EE969837CC82F9B +:10735000EB62E9A6225B27F67B9B15F3BDEDECBE45 +:107360009CCFB2857CCAEE2BDEA1D39CF40E9DBCD3 +:10737000DFD9D64B5B61B4533F16FD7F2CF8BFAD10 +:10738000D7AD876619F0D5667BEE2F43105F695342 +:10739000DD749F09E51EFAF59B62DC38CEB61E76D9 +:1073A0009AFFB61ED6009EF3696B50F9799A043B9A +:1073B000E90B79EF4AFFAA8EE462765FA7E97D9A2E +:1073C000B61E2984F7E7D5C6435C2ED869FDFCF6C6 +:1073D000E2E46F515EE97A02DD377DD7D23518F9E4 +:1073E0002FBB6F92786708D8C2E00FBB2E2C17E82E +:1073F0001EEAF7C805AB78DF89BFA774117910DDE5 +:10740000D7C58CEF37FDABF2007FFA9073F9BD9BC7 +:107410009F457DC9D7DDF5FF9FF8E4BA083E791E88 +:107420002717F1BF8EBF4FA6A7EE8933EE23F6EFE5 +:10743000CBE9A42D2681EBB386E46F912E6C6B66AD +:10744000A531A7B19CCAE5A75DDE4BBD9AE877568A +:10745000EC749DFC04408FD3801E4BFA6A54AE3905 +:1074600091DBD7BAA5AB1F9D0772F906F6857EDEC4 +:1074700017F728C3F71F13153C872AE197FA4DCE5B +:10748000FF17DD71FE1E8A3C5F2ADFEBB36D51E909 +:1074900082676DA687DE3F91EFA4C8F368EF2BDE0D +:1074A0000E948FFE2CFE7E813C97B62E65AC03F9C0 +:1074B0007D5D0B7FC79789F758E6887AF5F85E0AF5 +:1074C0009E5FEC9B43E3F19D708C8D7722FE4EFC1A +:1074D00005EF61DB7EA4D2BB46CFFD53A5731257E7 +:1074E0007EC6DF43F1AD7199DE9BF09DD6C6A27ECC +:1074F0009DC51C74EFE1DDF81595ABA05CF37F2B07 +:10750000348EF795C6177D081FC4518E8CC87AAD8E +:107510000ADF4119B13595FC24CDB7C4C5E3A2E912 +:10752000086BEC4078FD1B54E2A3669D1DC8C07932 +:10753000551249FEBC93792FBD6FF24E9E2D11ED71 +:10754000BB7A8D1DC0F74BE608F9512BCE31225E78 +:10755000ECA5E1F74E802ED915A5E17729DA2DC0EB +:1075600039A5E4DF21FA5D28EAD7E37B27E8475015 +:10757000F70EC6FD6C29AFB4C441E42FFA78CFBC36 +:1075800021486A7AEA541F8EEFCCDE1B87201E6EDC +:1075900046BA8179BF73C2BD5E7ADFD6DEE8EFC935 +:1075A000F0BD0427BFD7B37E1D9D176CD85BC1EF1C +:1075B000032BDCCEB858BB4D821EEFF442BBEA254C +:1075C000B4BBCD7CDEB0F9A75176A53F6373B74459 +:1075D000A40BBFE32CBF39BD768339BEA3AF58A738 +:1075E0005FE63B0EF7F6FDD7DE71D821F859BEE312 +:1075F00010F693DDE6403E3A9BA9D17EE23A07E7DA +:10760000F775F88EC379ECFACE2646F736BDD8DE8C +:10761000E030DF493EDB2FFC80F83E1CDAC9E17721 +:1076200060B2143FD901ADC9B82FBF4BD0C5735656 +:107630006E57CBF760E4FB0BBBC4BCFFE17429BD04 +:10764000B3B02F545A6EBC0FBE5FED7C6C28E913AB +:10765000CE97B0ACA87CEA3C7818DD4735ED97486A +:107660007B5ECA87CD026E49AF91F55F11F2AD33F3 +:10767000E29D18DF45DE89995B30F2459457922FE1 +:10768000D8FE19CC45F7750792DFF01531FFC0BB66 +:1076900063713DC2D2BDE9463FEC3F0ACCFB3C9B47 +:1076A000BBE5D8E5AD67FEF188793DB3498CBF1BDA +:1076B0002EF1BE842AF67BEBF09C12F0E929313FD3 +:1076C000F2FD98BAE8603E9E1797EFC854DAD80DDD +:1076D000D5B1FC5ED47203DE4E093B63FC465E0E00 +:1076E000D67B14623B0FC686F3EB46F27A322EC786 +:1076F00029E1FB4781B053C47D9F48F847C7FCE3AD +:10770000293C1F55DF6273E07B57C7D0CF84F2ED71 +:1077100059F18EA69DB9F17DD263AF0F74E33EC2DD +:10772000A7305E943F0736F54EC0F5E5BC7695E18F +:1077300039D625EDFC1D79F42C5719EE112EDCA25B +:10774000D07B2DF587393FD4EF5603F834B0BC37E2 +:1077500006F9546F61407FDFC8D7741512CACF6F26 +:107760005502780E78FE3673BEBC4FB5A435225D47 +:10777000DC436B88781FF65DFC4FC6B97200F88554 +:10778000E820A5D87C4FEA52E581C63C3D8BC9FE76 +:107790008FB8072AF1AD0553AFC5F5DE4BC9A588F3 +:1077A0003FE04B7B99E1FC9ADC1F38DD049CD01B49 +:1077B000E46CD3020A65FD334A9BB527FAF7FFCE86 +:1077C000E83EC0F0DDBBEE1EE1C4F28D64A47C7C1B +:1077D0007A10AD4B3F06BEE246CB6A614F0528BC2E +:1077E00072779B8AF2F8E33D4763E83CD3B9FE7DAC +:1077F0009AEFB3A7B5C0F9CE2574DFC3FD4734E5D2 +:107800004B3C9EFC11975F92EE4788F6DA1E4BDEEA +:107810003B1CE92726C181EBECF9E29CC2C99D2AF9 +:10782000B573C29EF0C80468E7C4F62969F8F8D7B2 +:107830003CBDCB8A176ADDCF56C7E3FECADFA15C29 +:1078400090ECC6808AFA7A7825A3FD87E1418D39CC +:107850005DB855E89D8874316C0FBF7F780AF719C1 +:10786000B8FF83F619E63DA3129F49B8469571B853 +:10787000243E6F2DE6FCF8C1F6A7A89D0F1FD61D6C +:1078800008CFC70FEB446F8B803EF1C8FA899D7C0F +:107890001F72D15E251005F91FE27D4DCC7F4D751D +:1078A000DB01FF4B96E91EBA271941EFA37672FF61 +:1078B000CEA256FE1EB7A4F3459E00BD2BCB049D61 +:1078C000DBE10F9E7F4F64AD77E0BDCD1B77FE30CF +:1078D000FA8EA4EBA5C5E2FDE352567A39F7FE4EC7 +:1078E000835E42FA93E949AD032A7A52AB7ED3F91B +:1078F000F6662BA373EC7E4BB41BE5C4C5DEA9BEB4 +:107900004D75BC80F6D0F1626EEF7F6971EAB89E6A +:107910009992D2399A4CFD51160FDE7B63CD369287 +:107920003B91F0DD25E62D07653FD47FA298CB354E +:1079300079DFAB59AE9353C53D03B19E90F5EF2D62 +:10794000E6F2F189622785EA400BC9D34E9D65F3C3 +:107950007BEE8E2C2C5F1D93F4393E39FEC0E3552F +:10796000D3F11C7BF588A45B72C1027CE4F129D3BE +:1079700071DFA97A60D26F7320BEB37832CFEF9FE8 +:10798000345887F8AA5553A78F86FC178A3DDB8B9E +:1079900053C3F0C97621FD7F30BD22CBB7A318EDCC +:1079A000226BEC7AB47BCE285D4BF1413659FE5503 +:1079B000851DF983128E237CEE628CCB719F3F3C38 +:1079C00053EC798CF76B4E9F8D4F06013E66FBF9A9 +:1079D0003D1AF879ED69E1EF13CC96F76AD647BC0A +:1079E00047EFE6F7BFE47D2979EFA9287C9F6BFB81 +:1079F000E5DCE73A23EEA145DEB353F6F2FB68CDB2 +:107A00007ED619457AD97C0F66490CD0537F0C81FC +:107A10008EA0DCF2DFBE13EF84CE172A5C0E315F3E +:107A200019ADD76E76F0F130DF70926FF29DB20F24 +:107A30009A58631ED2F5C46001CA8B7B55DF5F1173 +:107A4000FFA75D4FC7A39AFF60FBDF7EED87F95963 +:107A50002CFC3CEC5B3588EF90B4BB8AE83D87D3C7 +:107A6000BBD665E2B9F0B704FD9D7689F790BEDD1F +:107A70009F7D3B94ABCC1937F82E1AADE77031C916 +:107A8000DD083DF0F03482735C2CC87D18EF48A708 +:107A900022DED161FE38BE7E6578BF4B87502D0D4A +:107AA000CB6DCC8FA7B70AE6A48B7531DDEBEBFE6F +:107AB000AE84988F73E6095800DF45B4D8998EF2EA +:107AC000BE886D77A05E93F3F581E0CF0FEC9C2F1D +:107AD000E57755963FCBEFB32F57B8BE5FFEBA4A56 +:107AE000E7A996B4EBE7D5EB1FB120DDF35EB07DDF +:107AF0000EC93729D7F09A39D2CF44877669F26C0C +:107B0000FBA84B9267F67E423F0F60032E533F2740 +:107B1000F43BCFBC8C51EB9CF8AEE5F2D4C252F1F1 +:107B2000ED1EA29BF9E2FE819CA7E5FF9D4BF77C31 +:107B3000D9E34FD27EE77C013BDBCEEF03DDE152A0 +:107B4000E9BD82AA3D3D99139216EE51E85CE084AE +:107B50003DC9148F0F6550BCEA973D46F27713F884 +:107B6000FC56FDB237C53F7CE4CF83C4FB4FFC9E7F +:107B700090A063392F9FD6F079D1FC45F797A37D6C +:107B8000DCAEB38093CAD3BD2CAF00C72BEE6179B6 +:107B900059E4BD716702B6E3053B8DDE4FF7707F98 +:107BA0008753DCBFB2A55B98D3301FD3DAF9FBFD56 +:107BB00051CE68E634E0FF75711FAB59C879E6F71E +:107BC00074E0FABE46D0434C6192A97C4D6C3DD125 +:107BD000459CFB0A53FBCCC7D76FDD74826929FC37 +:107BE0005E17B63FADC67CFF6C5D14D7237AF927CC +:107BF000A427BC828EF472F33AD09B3996BE0FE074 +:107C00008DB84F1F4947D5928E8A5891F1BB000617 +:107C1000BC13FD7F0A7A1ECD1BB03AEEC77744A68F +:107C20000BBCAF95F7B4F09D702CE789A377FA24CD +:107C3000BD75A0DEEBCFBF33641C377E67C8881FDD +:107C4000FCCE90318EDF193296C7EF0C19F3F13B61 +:107C500043C67CFCCE90318EDF193296C7EF0C19EB +:107C6000E3F89D216379FCCE90318EDF193296C7FF +:107C7000EF0C19F3F13B43C67CFCCE90318EDF193B +:107C80003296C7EF0C19F3F13B43C67CFCCE903122 +:107C90008EDF193296C7EF0C19F3F13B43C67CFC1B +:107CA000CE90318EDF193296C7EF0C19E3F89D2183 +:107CB0006379FCCE90318EDF193296C7EF0C19F341 +:107CC000F13B43C67CFCBE9031BE56D839F85D21ED +:107CD00063BD0EB6261FF54E8AD3B703E59025E6A1 +:107CE000B486F47E68267FFFE4D3F6290EE2FFCB4C +:107CF000F45F3CDA4FD877828E3F67B1D75B722E44 +:107D00005C5FD2E77AEC2B15E97C02BD23FF69ABFF +:107D100042741EA99FA53D9700EA5533F49BE8B134 +:107D200033CD30EEE44A87299EEA4D3795EF51E393 +:107D300034E567F80A4DF93D17B84DF1ACC632533A +:107D4000F95E2B3CA6B8CB5F692A9FBBDE6B8AE746 +:107D5000B7D498CAF7DEE633E517051698F2FBEEBE +:107D60006C34C5FBB5AE3095EFBFC76FCA1F105C52 +:107D70006FCA1FD8DE628A0FEED8662A3FF450C061 +:107D8000943FAC73A7297FC4895653FCCAAE3DA665 +:107D9000F2578782A678057BC9547E94FD55537CA3 +:107DA0008CE34D53F96BD2DF33E58F737E68CA5F86 +:107DB0007CCA4DF7A7D91F14BABF23EDB2F1859F36 +:107DC00098CAE92960EFE3B90516EDC673CE17B27C +:107DD000F3A53D57E5FECAD4EF6D2AB7D3134B7216 +:107DE00084FDCFEDBD66BF97FCFC49B810063E4947 +:107DF000C0FBED49FC7C0ABFB79F427A9754A7139A +:107E0000CFCB80DD0391248BCB85EB9098B03D9A4E +:107E1000F99DE1FD8D8BD9A3BDD06649A5EF79A56C +:107E2000940CC6F5DAAEB1B8CE59C8FC77201C6305 +:107E3000D4E204FC3ED22B51E7F7678DB3031E0D4D +:107E4000FDBD14D59259FA3DFC3BCE7E9ACA77B758 +:107E50002BDE1751607C46BFCF4F60FDA5019FB65A +:107E600034019FC102FADE2607C5B734A553FCBE14 +:107E7000262785DB9A0A29FC59939BF2B73795513F +:107E8000FC81260FC5034D9514EE68F252FAC34DDE +:107E900035147FA4C947E1CEA605143EDAD448F9CB +:107EA0008F37ADA0F8AF9BFC14B636ADA7F4279B77 +:107EB0005A28BEBB691BC57FD714A0704FD34E0A8A +:107EC0007FDFD44AF97B9BF6507C5F5390E2C1A6DA +:107ED000768A3FDFD441F1034D8728FE6253278520 +:107EE000ED4D2728FC535317E5BFDC14A2F869E1D8 +:107EF000B71C5FC2D76BF4702FDA2F237BD3FB86BE +:107F0000327D4D816F7C496AF8DD0CF93E46E4FA1A +:107F100021721E4E8AF6F591FCFD0BFD8A821D78BA +:107F20007E34FC7E857307AE25A78B7EBADFC31037 +:107F3000F6F77C4187F27D0CB9BF315FD0FD60A4BC +:107F4000C742A2C7972F677D24D7D7CFE7F9EA7139 +:107F50005C8BB22C7EF22FC4F2FBB91FE6F91662DD +:107F60007A7D6CA3959BAB6E4AAFB271FF52D74B33 +:107F7000AA7B87F3C2FD358873D617CCDFF761265D +:107F8000EA9FCA7FAAB46FF78A1E57837E94DB05E7 +:107F90001E6E2FB198C25BF2BDFF89F07C90DF7836 +:107FA000FCE7AEF07DE049B82407BEAE664E7A9F8E +:107FB000640AF3BC809F1A9906861FC6AF657E0AC5 +:107FC00027E5F99A91EF66C0C201E3BEE1367A97E0 +:107FD000B3CAC6F922128EBB051C778BFE65786F7B +:107FE000BEF76E6CE758BEE7919BA048BBB81F3E3A +:107FF00091753D80707CF1EC27C795DC307EA5FF44 +:10800000E28E0AB18FBA4C7E67E89C7BFA945F7768 +:108010000BF7E344DED397F7EC3F6DD4492EE27DB6 +:108020007EF46F7CDA78CB50DC979F09EB37DCC7A6 +:108030009772B20EDF1929C57701ECBCDDC331742C +:10804000BF2A527ECAFDA03AB02F713DF84C3EF7D0 +:1080500097BCE2FD44A7EF3FA4F0BF6786F5A4F705 +:1080600015815E1E277A19A6F2FBDC0EA0977E789A +:108070008F9BD385FF4FFC9EB5E6F07AF05C70FDD8 +:10808000F6C401B44F08F483FEB2CF4AB8FF5CD205 +:10809000C75271BE5FD205D0DD1E6CFFE367861646 +:1080A000227D34EC1B46FBEECD16718F5BB4CFD036 +:1080B000150EFDA909C5F41E5C151A154897C3E2F3 +:1080C000E85C729BCA56EC3A8F1C3D22E6F595742B +:1080D000FEAE60B3E04F99FF8698E73744B9AAE750 +:1080E0005FA277A196B6EB6EFA3EC3A0CE62A39FC5 +:1080F000A79B9E573C746B9E81DE1BF6BCC7F7079F +:108100005867F1E4380E2ECEB77C4F59F6A3A33F43 +:1081100004954D8A76BA7B7D918378E2FA42D2A5A6 +:108120006A8DF33D186B1C47375FBC83F4887C81F4 +:10813000EB82893667C2B5007A27A010D737BEFF19 +:1081400071D0BB23B3999BC2B9CC4BE17C2017E41F +:1081500003AF7F9315E779116BA5F4A56573B23171 +:10816000DEC0BA46A7437BD3D6AF7A211D4099D251 +:10817000B2694C06C03D3930EB050CAB1F568EFB87 +:108180009DC4571FE37C752A8D6BAF80FEAE7BBC10 +:10819000626D4F489F28FC1B40871E15F56A9EBBE9 +:1081A000D30FF3776C5311F9A53F2BE1EBDD7BF394 +:1081B0003D9F21FC75AB19D18B3C57DECD57653700 +:1081C000BEDB13CFFC685DF41E66C33E5B12AE2BB4 +:1081D0001731AEC7C3FE1DAEBF25DFE0BB7EF44E38 +:1081E000E613FC1D87930A4C40E979DEB71076A8A8 +:1081F000E487C8EFDA7D69E17604CBF6A597E686D9 +:10820000F5F5494B60487C2EE9F384FE388F237DD9 +:108210001B06E07AF9D78ABB1960399918C86E8CA9 +:1082200035E9077A674AFA0F7FA2737F5CA4FD2BBA +:10823000C71109A7CDCAFCB87FDB6DF794BDF895CF +:10824000725E787DE9B871DA8C53928B70799DE714 +:1082500083638DE8BFFD1FDC4FEECFE2DFA189C451 +:10826000A7E2E0FD5CC8DF6A8BE67049BD75613C42 +:10827000F2F92AEFEFE2E704047C20400A1DD0BFA8 +:10828000A645D33BA7AF4671FF9BF4ABC975F24A35 +:10829000CD37A2FF60CCE77EB976D70779A47FBF40 +:1082A0006DCEE4E71D83A6F796264ABE2AD34D7C01 +:1082B000C522FC5AACFCFC7E47AFDD41F26F327345 +:1082C000937E29628725FEC8AFF57F4D33449A50CF +:1082D0007A000000000000001F8B08000000000072 +:1082E000000BCBE06060F8518FC08BD1F8E8988329 +:1082F00013959FCB825F3D219C01D49F0CC471409C +:108300001C09C42140EC0FC45E40EC0AC4796C0C1B +:108310000C99409C02C4F1401C05C4A1401C00C43F +:10832000DE6C0873DCD81918FCD8F1DBB59A0D5354 +:108330008C851BC18EE1A4CC2FA378E863453E0653 +:1083400006157E047F033FAABC121F82BD509832DF +:10835000BB3601F50300B982EFA2800300000000E4 +:1083600000000000000000001F8B0800000000005B +:10837000000BDD7D0B7854D5B9E8DA8F796666B2EB +:10838000934CC2E4053B0F20541E4388181475F328 +:1083900090C61E6CC737F5503B204A409088D87273 +:1083A0007AACD9900711538D889522EA4011B147D4 +:1083B0007B22A2B556BD035AC56ADBD8627D1F6316 +:1083C000EDA9D40752AC85F6DAEBFDFF7FAD95CC75 +:1083D000DE3321B13DE7BBDF3D50BB587BAFD7FF5C +:1083E00058FF6BFD6B8FCF5FC00ACF64EC33FC038B +:1083F0006591C6182B1E2CC77C4B4BF64E847F33E1 +:108400008BB112C6CC00FCD3646CCEF5C74BEB1A13 +:1084100018DBD15EADFAA05ECE146ABFBD6B7FF0F3 +:10842000A4283CB7591C7BA9D7C7CAFAA1FFF6AA52 +:10843000789941E33015C7A9F2F37118B369DC31BB +:108440008CD777B49F97CF4250EFEEFCA33679706C +:108450005DB2ACB55596AEA371D8670CFBE97FEA67 +:1084600097F52AC6688A62FCBFB98C4D8721FDFC4E +:10847000DDD36F1EA3F57EBF4B653E96BD8E1DDD21 +:10848000B0EE86C175CB75E0FAACE983EBFBBCEBD3 +:1084900021F8603D53585A658853DB7A3106E3D59D +:1084A0008BF198DEA126C28C75B49ABDB51EC6BAF2 +:1084B0005A1995DDAD7E2ADB5A0D2A37B6C67A6B7E +:1084C000C7423B3DE137605D0113DA65CC1B8E434B +:1084D0007BFF605D0F198E7A5E5DCCD19EB1058405 +:1084E000774DC0EF8D9A8EF7ABC3B3FD08FFC6562C +:1084F000A0BC0FD7E5A7728AA1BEED03BADCE08964 +:10850000C71280ECFAD015F319D40311FB151FE044 +:10851000AF3DEC35D7231D8C797FC0E73F1B3BCFA8 +:10852000DF8F783CA0FFB61FE6AA83BF9F55433B71 +:10853000BDAB10E198C2F8F3417C311605FC9CC933 +:10854000FF09EBCE780FFF9D19556D5F04E9ECEC48 +:108550007766C8BB4885F9FCA3AD5802E74BC17BE1 +:10856000090FCC77A671D1950AF4639F3A9F4BFA15 +:10857000A45B0D82EF47AD75CC1ACFD8FD5037B153 +:10858000FE376D416F06DF1609FE5F7D8ECA18C08B +:10859000BBF5717307B2FE26FCBF93197BD4D3F2EF +:1085A000CF0CF8DF3EC76BDE43F01C797529D4EFA2 +:1085B000585952BF11FA4D69E6F8BB43697987DA19 +:1085C0002DE3EDEED7D3E761FD8E1585AAAD64F3FB +:1085D000C9C415AA3D0AD65F3F1FF01DA1FADBE30F +:1085E0002723A16F7BDF07FDEA125E7323E2FD788C +:1085F0000933A761A79E8F1558DFC485F01CC69B61 +:10860000D82CE8F1E6AE00EE47490F0BFE221EB66D +:108610008E901EB398C7498F1543D023C1E9914569 +:1086200087854087C943D3C15DB6B5A6D83BC0F79F +:108630009DAD31A24F7BAB49E5CD4827286FC2A63F +:1086400033B2F7658FCA9A916E3D41D6BC07E16D92 +:10865000ACCFD94E968CAD23FA75C25E6365B42C4F +:108660008B3532E60B0DD4D3C15A981FDF9F2ADE1B +:1086700057C0F8CAC07B9B01FC9ED0C07B3B0FDA81 +:108680007706F8FBFF60DB2C7BE660FDB0BDD951BF +:1086900097EFDB3D89342B60EC7176A93531E0181A +:1086A000DFC2F133D7E7CF315E7B80CFAFACEBB128 +:1086B0006C58DF7794748CD5803C51FA62CC60ECB6 +:1086C00029E837B711C7853A48BA5D9B16D94FCF0D +:1086D000189CE7757B916D030C8B58E2A788FF19F6 +:1086E000B123A5C0F930AFB5804D65EC79EC0FF33F +:1086F000782A78FBE7D98D569B3E8897DFD81D36C0 +:10870000CEEB0BF53053C84F9233827FB4EBFCB6FF +:108710001641BDD018273E6C2C64AC14EAB516C3C4 +:10872000BAA48766E8BFEF77C82BC117A2FDD07443 +:10873000E4ED60FD6FD2FA8D235FC5F5FF145F0194 +:108740007D679735FE7226EC97509F278E7A20849E +:108750006B84BAAFC19B62C0B75EC433B08AF753B3 +:108760008D9D0A533D819B0FC6F1C5CA582A733DA2 +:108770007A3A86725B8E0BF3BD9F892FA87F78A211 +:10878000F903627EF77C8110D461DFFAE2B01E2526 +:108790007BDEF640CF0294BBB30B1BBFC2689CB11B +:1087A000AA0FD60D2468C271E20A97433A8E573F4A +:1087B000B87E39AEA7818FEB319CE3CAF1002F0C54 +:1087C000C70BB9DAEBB8CEC2EC71DDE3C036892550 +:1087D00026E13EE8FB7CF46F00FA8786A7FF7FD78F +:1087E000B81F038008EF9A93BD299BC34BC2D70DD6 +:1087F000EF007C2EB8D7FCFCA918D2D98B0F0A0742 +:10880000E9F967D14FCEEFA6E748E795FDB3E7FD5D +:10881000758C5567CFEB5E6F16FF8E701F458F4FBF +:10882000605611D835281F404EACFFB697F6CBAD39 +:10883000364B219FDC7AE02CB29336ABF1E790AF58 +:10884000ED5F79D83D30F56694BB48A7EB1AA8DFF9 +:10885000DDE196D2F34243CBDD5BC1CEB041EFDE2A +:10886000AEB005BDD06E2BD453B0418A7A41EF81B2 +:10887000BED8DAAC0617015D6FF730D2C7F0FC6DD9 +:10888000D48765CB74FE3CC09F477BB99EBC638593 +:10889000681FE6E395AFE4EDA2D82FC3AE8CCE57A8 +:1088A000999DA1CF4C6F7C5122C73A3B1495F0F1B2 +:1088B00063A187EE177AC80CB2C5888FA2EBBDE61C +:1088C0000E25BBDF5D0AB78B6F453D063272FFBADE +:1088D000790AF263D17C6B9F0EA8294B004F02BE30 +:1088E0007EEC49AD8B80DCFF1785592D40A7E8A1B0 +:1088F000F425289FBBD63DCE7C809F49095E6F8CB6 +:108900003CCD9EA53A2379BB537995E4EF0CFF91BA +:108910005711FF3360FFB621A9F41EAD85F01FCDBE +:1089200049E7D47FFA17A4001F33ECCEBEF3D12E53 +:108930006229A2837C7FEAEF805F32F0F263849742 +:10894000ECA21895CD0A9767721F16E13F018E229F +:10895000DC8793711F36291EC4CBFB8CE45C6ADD77 +:1089600077DB90CFA3BF6371AD2A7B3D4509E7BE9E +:108970009CA13BE1F9AF826311B3EE568A871E2FAB +:108980005B8F24EFC5F633849C8E26525A327422B4 +:10899000B8FD65CD08F7F91CEEA1C677C37B2BE2C5 +:1089A00093CFF770AEF9FEBBF0312304E336FCE35E +:1089B000E3465DE38E14BF6079083E4AEBA84F079B +:1089C000EB16E3753BDB2ECC94FB51EE276AD120EE +:1089D000C97F2D0A78CD5C87E8E71DCDC88FD510FB +:1089E000CFA5A2332C51AF887F1FEDE377152FB5AC +:1089F000D3635C8FBCA526DF253E990F2219ECDFDF +:108A0000A0E8E281F114B413CAEAF293A86742D154 +:108A10009C7665576BA250F764D43D5C0E49BC79D7 +:108A2000AB59AA88FC91CBCCF3260D3D8E1B5F6D14 +:108A300095F15792402FBBD81BBF870D0D8FA27A9F +:108A4000B91D10F5125F023C8A7A72363C7E03042F +:108A500009E88FB6F0B813C2D32EE071D3BD5DC262 +:108A600035C2F50FF5BEBDD28A2D42FD11CE0D9750 +:108A700007E102BC57AA5E610778894E9EA8CD70B7 +:108A8000DD005FA59A835E8C2518EA3F377CBAC16A +:108A9000F7AB9C5FF75F54A8170DAEF30BAAC1E7C5 +:108AA0001958479CC6D10C46FD226AF20B884FE04C +:108AB000BF3EE2BF9045EBF0C6E0FD142CAD05369D +:108AC000F06FFBBE196C22F60BC5D90A28BDA12494 +:108AD0009B0FEDDAA55F196D70EC93B1AAEAC09314 +:108AE0001B6FA5420FCBFAD64AC9574EFA6F5DC627 +:108AF000F5747B71FCFB88CB39821FDCF801BCCD9F +:108B00005133E8A91B1C9F5B97097C2DC9BD8F4B76 +:108B1000FDE73BF055DD64ECD74DC6376E09992271 +:108B2000F46723E3F8DB143BB46511BCEF528E7499 +:108B3000AD83F5848C3E52BBF581E4F999F3173689 +:108B4000F5D2FC92AFCED24281DFA21F6755E72F4C +:108B500086FAB75425271FB581BDA0839F7877ABD0 +:108B60009FCA636F8EA7F50FC56F9DADFE82CCFDCA +:108B7000D9195AD25585FC1755E363619D5AB8E15E +:108B80009524F25D81594FB2C65274842B88F887C0 +:108B9000F72B5461671B2D92FF5620FF497E947C72 +:108BA000576D252C8C7B55B184A5C078055D2C9E16 +:108BB00016B8D133F0543893FBD1808F6B719C7011 +:108BC000D4988DF80CCDEDB5B194F8E8B154A2EB82 +:108BD000EAB3C6EDD032EC8D4704DFB0BA42E20F03 +:108BE000A6C7C93F196A1F6E027C4D1CCB01C37515 +:108BF000469B580AF9F8467C0E7839594D74E03A8C +:108C000040FF2808CFF71426E220318AABB58B75D8 +:108C10006FFA5290F359A5B11DF57A0FAE03F9AC76 +:108C200059E06B90CF7A687F0ABC483E8B3625D2DC +:108C30002AC0B7CE9BDC8C7CA0C7E306CAA3A0D217 +:108C4000437B4F53416E8768D97D386F91C206FFD1 +:108C5000C0BCE15A7307CA859D822F8A1A3BAFC6F2 +:108C6000B8436148277C16F52FE2F1A937CEFE0301 +:108C7000C64DE039C55FA2F3D39602F396D6C6D7A8 +:108C8000A1CD7D8D37B993F03E612FC3E785402F8D +:108C90002F0C798B27C1302EE299D963A1DFD5162D +:108CA0009EC71665D8870F0BBCEB5166A54283742F +:108CB000DDA4713EB9796675606908DB05092FD5B9 +:108CC0006CAE85E355C136417EF0087E00BAEF45B3 +:108CD000F8F39AFA68FEAA28AC8F11DF8F423CDDC8 +:108CE000E2314AB1DF2D612FE961C0C741C46F9EF7 +:108CF0002A7061C25FC04F48E5F3B6AA1E9AAFEB77 +:108D0000DB1C4FD03765029E34203FDA6105B52C5D +:108D10008513E4097C49FCE4097C15C5E316D225DA +:108D20003AD15C57C5F17380F0C3D24CAF42F9DB46 +:108D30006B215F76EA2D6F7D1BC6EF3CA0C56D33BE +:108D400083FF589CFC0E89275F0CF65B0EBD2CDB65 +:108D50000F6F27707B400F717D26F503F0E96BB82C +:108D60002EDDE07C3A523DE45DAB99BF43F9A51B93 +:108D700014D7936BEB3416DB88AF4F909688AF9E79 +:108D8000A969C417B03DE9255C880AEFBD8695DA6C +:108D900048BC98A2FD20ED117F9D331EECA908B2BE +:108DA0007426DC0BC0CB83F9AE15CFBC6BBDB40E03 +:108DB0001DF4039B3808277A74380E4EF1590DD6EE +:108DC000FF95E691FDF4104B07805E1BEBEA5932EC +:108DD000831F75EC076DD0EDE0F13B67BFA1F1E2B9 +:108DE0009AEF02E73A47DC2FA49BBF977DAA4FD4A6 +:108DF0004F67BF977802E4152002A53F01F4D9E040 +:108E0000618F2AA047DB2A3A9163D906FC3FA06B09 +:108E100027E3746749D5A1C7B40AF56D1FD96D263C +:108E2000E79718E72B1FBB284D71F6D8C8F82C4FD1 +:108E3000E8D73795E4382D432F79CB0EC432F1ECC7 +:108E4000F5727B924DBC80DA774FFD461AF7B3B7C7 +:108E5000DA984ABC20F8AADB853FF0A009CE1B4473 +:108E60005CD31BE3FA23509B243AFACD1E2A7D15CE +:108E7000B6B027F8FB017E9DC8F571679C9F4F78BF +:108E8000FD69924FA19E7D4C73F069925D007C1448 +:108E9000602AF1C31D50727E48D1FC3E705C33F9EC +:108EA00054F2A11C7FF8FDD8A3209F96BEE1A3FD3C +:108EB000181DDC8FF3116FA54B84DE90F661E20282 +:108EC0004EB7A600E1E51E71EE903D3EC7CF3118CA +:108ED000BB0FF1AB2783B82F766D5E1C4478776D9E +:108EE000392F3F930EEEF27BA0BFD2E0786D073BA7 +:108EF00000CB3B5A0D2AE5FB3BD0EE82FEDB843EE5 +:108F000093CF7FA27139DEA671BDBECB9F08225ED2 +:108F1000D9535FFDD2044049ED412D8EA1D5F25BBE +:108F20007A0B4E347FC50AE7FE67DAC213AE77EDDF +:108F30001B2F163C9D19CFD1C2D1DF9F04FF38856E +:108F40009D82FB62B8FEC75AFB0A9EF6FCE378D905 +:108F500026E2BF3FD1F6ACB311EFE933496E548B33 +:108F6000FD55DAC5486FD4AE013D826D3FFD8CBF23 +:108F70001F38C7B3428BA04E2605D477752DDE88E7 +:108F800072B4F2258DA9C07763855E619BF9398142 +:108F90001FFEA27CA050368C5BB384A5D2D0AEA6B7 +:108FA000C779DE53CABAFF88767E25CB382FA84210 +:108FB000BE3B9BCE334A5DE70E153A0FF5FFA37417 +:108FC000B8E7FF111DEED07B034646FF728525787A +:108FD000FCEA77CAE20C7E7D4CF0295B1B62EF64F1 +:108FE000C8DB6D4A6F012AA3ED2BD4266E8FF43EA9 +:108FF000378EFCA7FE33D016DFB2E81B1F3D01F50C +:109000008EE2436760DCE9592D8F8FD3C41CF69A3A +:109010009C07ECB667B50CBB767BFB79249FEEF81A +:10902000F49A7D1EA0DBD8352CBE9EE8CF0EE279E7 +:109030009529E86F0A7ACFDDCCE95BDDCDE385CCFD +:1090400076D2BF7A89AD78719CB52C8E7D6B9A19DA +:10905000D92BB50BB97D52B93683EEF05FED66279B +:109060007F8C1276CB28177F98C00745C007B53D87 +:10907000C98D387FE9418DDB0CAEF9C79ABD67D346 +:109080007CC02F29D2E719E368C85FF1F5480F3794 +:109090005F8E42BE9C9C3DEF3FCA777F42BECB1B9A +:1090A000E4BB4FD8A78B7643F5EE8E177E368E5AEB +:1090B000596AA65D25F94E67D65F51EEB2C4C8EC79 +:1090C0009F11B7635F24792DCFD167AD8E0531BE77 +:1090D000BECD6B04F13CDDFE8DC650DF6C5B5D5692 +:1090E0009609E77611A7DD2EE2B2319DF36B89CEAA +:1090F000EDD2329DDBEBDB22FC9C2E7BFEF5C21E0B +:10910000E0F1A071C7C1E0999659F7BAEA3A4B1756 +:1091100065D623A2CEE1682FE67EFB981246710346 +:10912000394F47D826FD098EAE4A769C90674F1579 +:10913000CCF3239CEDA1FA7C6E9725D5CCF3F2F607 +:1091400050F52896016FBB38371E0A9F1D781E09FF +:10915000ED3B445C7C8CD78A1540D95E308FE21E93 +:109160006322DC6E3859E7FE13EE4D148E33DB8D2F +:10917000F5EB819737336BBA5ECCFBA13FA9197F22 +:10918000AE5AC4A81DF91DEEF9AAF420A7DF44FDCC +:10919000AFFD19F2013D6F926B82BF596864765141 +:1091A000A59E3C1BE7B76733B273ECC92CD586FB91 +:1091B000B925E188D341BB2FEB27533B1BCF9F073A +:1091C000DA25B9DF97D1EE7CD1CE72B44B64B55BB2 +:1091D00020E6658E79ADAC79BF26D7C732C78B67DD +:1091E0008DB758B4233B7FA09D9935DE52D1CE7206 +:1091F000B433B2DAAD107030C7BCCC39EFC0FBD19C +:109200005EF99EFCA38EE28BFCE4B7A41638F8CF7F +:109210004D87FDC59C1F9F2E9ED784FC72CD731E6B +:10922000CA63D957ECE453D9BEAD9575ADC8C8270C +:10923000690BEDA079E4F38176A11D46EEE78B87FB +:1092400068BF58B4F79F90DFDB04BFB7097E77BFD4 +:109250003F2AF67F571DE8A91CFBFF6FE23DD313A1 +:1092600014C7F0D6B1DE891972F2FF17380F0BB9A7 +:10927000D755B7BE6736B8780FB62F58EF07FADF65 +:1092800010DBD4330BEA2FD90BD6CF55FEE7C1F94B +:109290000B7DA903CEC7D8D2F573ABFEE7C1F97E2B +:1092A000FBB50E38EFB6AF3D219C1DE27CD33DEE01 +:1092B0009F85DCDFE049907CEF28FE460CD7DB5130 +:1092C000C9F540C8D3B87E1DD427B1E45F502E6DD8 +:1092D00080FFFA506FE926E9A1E1FAF927E809DCF5 +:1092E0006737C4B85D28E7DDAC73BF4796B76150F8 +:1092F00007D61128D5C90E63C5DED458010F9E5379 +:10930000ECD10DAE97057CBF74D53FD00DC7BE859F +:109310007FFC15ED2303E1AFC9A17F847CEC291507 +:10932000FAB9CCA99F3BC33D6AA67EF60B5DF6D485 +:109330002C2FE531CDB9DE1FA8C6F8E30B1AC33CCC +:1093400044B79E9E757DD30113DEF71CF088BC3FA9 +:109350006ECFC8716E037B1CF9A143E413A17D9508 +:1093600029877BCCD9074C90DB9FBCE0E1F3168FBB +:10937000CBC7793B059F740EC1273FF6703E79023B +:10938000C63761FC8781EFB0FC3ED49330CF4350A9 +:10939000C7B20DECFF24E5D7C5A8EC69355912DA40 +:1093A0006D83F560BDA3354EF57B5B1BA9BE1DFD2E +:1093B00007A8FF00FD07286BFEA492FEBFA79575C6 +:1093C00063DC7B4BAB9FCAEE5683CA9FB4C6A8BC76 +:1093D000B3D5A4F296D6BA6E34C16E6A8D53BDB3BE +:1093E000B591CAB9CA79733D646FC5F7FB015F7760 +:1093F0003F585D8FFEC2B43FE916C51BF5F853A177 +:1094000086C1E712CEB9CAECB3B19F765CE5EDFC3C +:1094100071D2BF39DA7DD90374F61FD7799C3464D1 +:1094200033359AB3DDF9D8CE3828C63398A2E71E73 +:109430006F01CE5B7150AC2F9A567CB9C7FB1AB640 +:10944000F3BCC2F1C4623C0E9FA3DD626C37FE1513 +:10945000B1BE8A96FD81DCF32EC576C5852D8B12B3 +:109460003C5E371BF165584621B62B2E6AB95A3C33 +:109470006FF337E0B90F7F5E32D8DE0EE2398D210F +:109480009E0FB4EF49E3734F548CE3E5EDBF378B88 +:10949000D13EF49BC60E3FB0D4A659DC8E302C735F +:1094A0003BD68B7DBC7F6924CE14D86F7EC0AB02C7 +:1094B000F542A8AB9328EEABA8502F91E3155A4C78 +:1094C0009984E77ED00EE0DC047515FA19806715E3 +:1094D000EA2572BC51096A77AB38EF2F1C65939D62 +:1094E000E6314D05B7C65691FF6044F9F8E3CC84E8 +:1094F000AA82FC1BE765D685F0FED6AB19E527DC12 +:10950000ECF9F96CCC078B995C1E3DE1299BB3AE5D +:1095100016D65DC6E367DD532F2AC5787A71396B9D +:10952000C17AA87EC104AC97C8F7F5CBE97D8978EC +:109530000F26BD6D805F179AB662C2A21CFBCE5D7E +:109540007EFCC21C8A9F975CA0322B87BE916574FB +:10955000BE333F66B4D5A7E800CF9F3C1C9EAD024A +:109560009EFB3CAFCEC63CBB028BC3F37A8797C34E +:10957000339A9F53DC3443C03306D60B65E4540161 +:109580008F7C7FAA8047BC2F13F0444EE3F07CAC65 +:109590005BA38C1CF6907BFDE5CDCEF58EF1B2522F +:1095A000EC3766F674B604EADA4EBEBED99D1BD718 +:1095B000AF87F5B59DC3748AA70A7FACC8CFBA70D0 +:1095C0005EC40F9EAB6DF5707B4BD2A5F803AF5D0B +:1095D0009423FF5A96925EC51FF8DFC676925E25E9 +:1095E0001F044FD84FD2B1E483D0DB4591A1E1CB2A +:1095F000A68741F408777EA8DE06BC5429F0CFD8B0 +:109600005F67CFAACDA64FCF3280371FCA00D7B72A +:1096100065125EC06F21D4F74878055D8A63006FDC +:10962000E404F00A7A15C7FCB46E49CF9258F0846E +:10963000FD249D4B62A1B733F1F2630FD7B3C3D1C1 +:10964000B56D99A09BF0A7CBF461E09839423866DC +:10965000BAE09839423866FE7D7074097A748505DF +:109660001C2180A3F00470540CC37F128E0AC17FAA +:10967000128E8A61F84FC251E1E4BF11D3E31C2777 +:109680003D8A043DE438EE7DF49D939DF22D3CDD52 +:1096900029DFBE339DCB83AD387FF1E0FE089FC24A +:1096A000E541FB391C6FED026F45026F43CDF7F8C2 +:1096B0001F9DF3CD3CEA9CEFF1A3B9E79BF9319FE5 +:1096C000EFBF2A5E50E0497EC52BFC712DD32F6E73 +:1096D000493AFC6768778168676B997E7632E9F072 +:1096E0009FA1DD57BD225EE06897C86A77A9188FF1 +:1096F00039E6B5B2E6BD4C8C975633C78B678DD72C +:109700002CD7A7668E67668DB752B4B31CED8CACB0 +:1097100076ABC5BCCC312F73CECBD8D5233AB72B83 +:109720004A781DE78BE126673D2FEEAC7BC4791D9F +:10973000D5AB06E793E3C9F32F96B4C97EBF21DC0E +:10974000F30AE61D6EF6CE9D1385E7371470B9BB9C +:10975000B9737E1B9D136005ECE990B0978F4D5552 +:1097600009AE6058A77C6A0F53297E120AF9531478 +:109770005F15E74B3A4B137DC251164F43BF700341 +:10978000CF9F71F3916C0F84314F94CFA0D7F273B8 +:1097900061BDB6AB8F973A9D07B2858A3BDF653BCB +:1097A000D2C9C7120CF3E2651EC288CFBD467C3E0B +:1097B000C6EAD06EFD260BC6F19CB8C00B762C74A1 +:1097C0005D5BC1E3E5D55A720FF281776ECBD7DBD3 +:1097D000A1AECC5B3B1EFD8A186B51307E6F8CE2D4 +:1097E000795EEC327F1CF3698D3933E9FCB1ADD879 +:1097F000E93F7EE2E5FB7FBF57A3D2C8E3F28DF9D4 +:10980000EDD27333E2C4211FF747E0FDD5484F6D19 +:1098100043F3535D8D50CF67531570CE6E31AE9EBE +:10982000D304701935A27FC510FD6BD883D8FEB85C +:10983000F7F2A774E007630C23BDFB59E73AE20790 +:10984000633C9727ACC1DCDE0EEBDFF2B592A97862 +:10985000EFA5E8CB6BAB50BE0C8C7312671D650394 +:10986000EF07EC6F65E6F5D50792BF41FC849BD20C +:1098700069CCCFD042322F48E48989FCB7B3B48990 +:10988000F9BFCDC0C75B5EC5919F26F382645DF3CF +:10989000FFA2E077D3701D837E6B6714CF45FCF188 +:1098A0008D7C1B2633CFF3611DEF22BF7CDE751C40 +:1098B000F13AF3943A312F29231E717B254BA19F56 +:1098C0003BB08E38ACA361701D7FF60A3F3A6497B7 +:1098D000925C30A00C0FB6EF9973BD82FC70B69A03 +:1098E000FC14F1C462493D137FFAFC641ACB81F188 +:1098F000A371C7F803CF637CFC817A13AF7BF0BE02 +:109900005F0DF2DD428AA7E873795E245BE0CC1F2D +:10991000CBC87F0AF98AB3F39FBEA859611FED87B0 +:109920000A83CE3598D3EF97793D8B1BC580CCBC8D +:10993000F875C0EB32F0D7891E9F42EB0C7AFCF62B +:109940009D4574FF699938F759C212117CF921536A +:109950009B906F3F64BF8A4CCB9023137C22EFAD6A +:109960008BDF5BB2E12FEAB5CB7B9CF798966E71EB +:10997000D6AF60E795E0FEBD62B387CE8596B9CFDE +:109980001F7D9C3E4B594B27C6273A843DB0D8607B +:109990007A11A8C8953FBA733AE69BC77D3CAEF3EF +:1099A0001EC60132CEF99687525E0BDEBFB377DA60 +:1099B00045A731EC9FEA2C43BD51C068BFBBE5CA47 +:1099C000655DCEF50DB77EF77AE579CA50EBD077B5 +:1099D0002B39CF11CEF0298EFCDB6381C86406F6EB +:1099E000C85A3F2FBF198CECC0F25860740AE97155 +:1099F00029066132E3DDFF114EB5D1B95ACB14E42B +:109A000087E1FA2F1EA6FFC6682A817C29F33CFC59 +:109A1000FE16D23B8A9EA073C98DB161DE57C07B12 +:109A20002DF37DC2E287969C8F37D6BAFB3BDF03CE +:109A30003F7EF6D974C6634914CFE2794E5DADFC22 +:109A40005CB7CD93A07B346D2F690CEF73B415B464 +:109A500030B2072A998972C2579BC8C7F883EFA012 +:109A60001655AB045363FE5469D34ECC635BE6F3E7 +:109A700088F8599CEC065FC8B62C8C337992B102F9 +:109A800098DF7B3DB7E36685C040827E5A6C8107D4 +:109A9000CF559FBDFFB205585F1E9BA723C9D6882F +:109AA000713EFCC183D319ACAFF381304B531C27FB +:109AB000E5C57382E57B358A9B5CF9EF619A7FF996 +:109AC0009EA5BBE6C338CA8F4E377F4FF1B636EA44 +:109AD000BFFC91F37F690B78FC8087B675220FD0AD +:109AE0008EC7CE87AE2B7DECEB785F42C22FF9C6D6 +:109AF0006FF6509ED4F2DD05943F39C06F3AB487BB +:109B0000FE3E28CFCBE1E76EF1F138E40722CF4DDE +:109B1000D9BDEF525A5FEFC51E844BA96861FF099A +:109B2000F37D47C007EDE89E927D9F921A0BEF3FB1 +:109B3000B86FBBB77A12CEBBDDBB98ECAE75C4F77D +:109B4000729DFEDDB7D8B8CFFCB546359278CEBF52 +:109B50003F10C1FB18AB766B69CC0B8492F2030308 +:109B6000A6EB1C97592105E87E15892828F7AE2415 +:109B7000397455EF8D949FB0EA51E7FE03BCC6D30C +:109B8000B0EE2B5FD6E2F3B1FED0BD1113D6F35E7B +:109B9000DF3D11C43FCCB3C89B8FF7799CE7CA382F +:109BA000FEF1C2ECF150A3209FADEABD81CFB7F723 +:109BB0009C77F17C7D956B9FBF87FF28CD3E57FE3C +:109BC0005F3E573EC3EEA211D9F1573EF0C95D3654 +:109BD000CCFBC19EF7EFC27CE615FFE7E3BBFE15A9 +:109BE000E3C24F060C9453AB7EF09F777D0BF0F9E8 +:109BF000E1A33E15F9E3F013F7EEDA0AF5C3AF8EF1 +:109C0000AF57A0FE8AD0F7871FFC4B8909E3AC79D8 +:109C1000E2AC5108FF9A87E738CE4FDDE5E1567E8A +:109C2000FF67703D291AC77C54C14377706444E9CB +:109C3000A2CB537B351680F57DF88A8FF20D56C185 +:109C4000B3B5F548A795948F80F5EB00BF57DDBFFE +:109C500081CEEFB3F16C97AB312CD3E598EA7AD58E +:109C6000DEF3BF727A03961ECA4F58C58E90BC773A +:109C7000F75B7510E8396568FA7DC23EF56232CD52 +:109C8000AAFB6FE0F3F602FD22D9F4FB10FF3123AB +:109C90009B7EC75CF4FB84ADB87B2BBEDC5B94D3AE +:109CA0001E9579012B1FBEF084F907875DFB76288E +:109CB0003C370BBFE0699FE5F3E3BEDBF36FBBB658 +:109CC0004691CEBEF87CA4FB039F8C66C01F873CE8 +:109CD000472EC5FD78E4099F81F7A1963FF132E94F +:109CE00097C30FBFE835C9BF612105EC94C36CE091 +:109CF0004F1FDA2D5729BCB26A6738ED8B0CD2EBB7 +:109D0000AAD4B94D66849E933D7F558AF3FF55A929 +:109D10007D172839E877A6BF9ACBCF5431E165E5A6 +:109D2000CED7BDE21EFF005D9546A4E7DBF3F0F958 +:109D300050F494F01B08FF291974DDC9F7ED50FBAE +:109D4000F3F0761FF9EB6E3A1F167970AB52CACB5F +:109D5000B9E83E90EFF039F3454EF53BF34524DC8E +:109D6000C3EDEBE1E1F97CF89A809BBF381B6FEB08 +:109D70004ABDE4FF69112FEDC74E8FF9B28DFCF19A +:109D80009C87ED802E6D91E9CCCCE1D7B5B7F2730D +:109D90001359D743093A57D0A3463DE546B8EEA13B +:109DA000780C75204705D7639CAE26729D2B33D661 +:109DB0004DEBFCAEC8FFBB79A65A8A571C8C6FC707 +:109DC00028FFC2987DFC400D9D0F144EE5F370BA3C +:109DD000E8CC90F792D44C3F7D287BE6BB956C1B7A +:109DE00096B795423965D0BEF9677F72B5FF04F624 +:109DF000CD7715F1BC80A5EE51282FD91F04F97538 +:109E00009B72E4400D3E3F5725FB109E77050B33B8 +:109E1000DACFE0ED996599C6749E8FCBED16785434 +:109E200082F6BCF8F385B88DF68F17EC19B45FFC99 +:109E3000982F5383F67C2F95DF11FB2704DB12EB61 +:109E4000F9ACDF184B83A5291E512CC62DF687B817 +:109E50003F7081FE41E63DFE00DB46F1224C43FFB0 +:109E60002C23FF86897B5BC3F5C7A9CAE9A3071525 +:109E7000D43E2AD72DBE3F523A0097C110CE72F180 +:109E800076145A5B1ADEA74C5359C9FAA91C834BA6 +:109E9000D130953BB98EF1BC11BAEF10606F903F95 +:109EA000A2DAAAF2D949AE7566D055D28D097FDE05 +:109EB0002BFC7937BDBFA959AF26ABC8AF7FC00F08 +:109EC0007C724C6D79B41FEABEFC2BFA31057FB36E +:109ED000F00F36879DFEFBA37EAE1F65B9B940D05B +:109EE000F342414F3DA19C9BB13F688998A7E95F30 +:109EF0003D17EFE9E37B84C7FD5CCEA71BFCBCCB21 +:109F00001737383F27013119F7377EE6E7FE497DDD +:109F100020F114AE3B5CD14B34407FB63FC7FE917D +:109F20006597B867D3D99AA4F225DC7BD0DF67F0B8 +:109F30007B0BE037FF12C783F952C837BAA0DBE7C3 +:109F40001FDF60FCDE590BD9C327ABC95771FF80F7 +:109F50009BD083F2D557C1F38C35918FDDE675E642 +:109F600093BDE3E7FE8B2C653EB2B7AC79F7763C48 +:109F7000179E1513FB3C41F18EDF093A005EC90FB5 +:109F8000BE4D11713FC52FF617338D92C1FDA5F956 +:109F90002D724E3D0028963EE41F0DF92B45651E9F +:109FA000EE1BD8479E40358D1B66FD83CE2CCC9F83 +:109FB0001FF36E47BB5F0704698554A6B1947C828A +:109FC000CF3D85FC3C3A82715F7F218F7761BD1E5A +:109FD000FDEBC45F111FB13A1E3782056AB84F4AC4 +:109FE000C4FA4AE43E5BE0DC6703FC58E0CC83D66D +:109FF000031C7E4F40DC6B81F951CE0CBDAF878DC9 +:10A0000073E50772C4B910A3FC5E5E6715D2CF98E2 +:10A01000C2FE88E787CCEE99FB4223C5911EC47A25 +:10A020009B7ED3DC268C334DE3FC3DEA865BE65217 +:10A030009CE91411A76A74C6A9C606383F570638AA +:10A040003FB2993C9E3139C0FD75DD68A1B849A584 +:10A05000A8338BC75506EA7379FB81FA44FEFEEFFD +:10A0600088874C46B873C443A604488F0C110F115F +:10A07000F6ECE801B9E78C038FEEE7F18FB3B4108B +:10A08000C989C00A309301EF9513751BFD96D11352 +:10A09000D7F3FB3C82BFCA2F67F45D01784FF6937C +:10A0A000EC5FB9D6EBF06F420DCE38B1CCBB2E775A +:10A0B000C58B07F3AE33DAA35C15764B076339ED36 +:10A0C0000FB7DD726EC065B78C30BFFA578A7571F5 +:10A0D00000F114E5E7106D85CCCEF59DA891C62B57 +:10A0E00086D2C36DB3A6BE1205FE2B796C0FF19F0D +:10A0F000A6F7E2951AB625CCEFA5ECBBD04BF1EB59 +:10A10000ADCCCFF39A5D72E1F8327E4FEFAE284BC3 +:10A11000F187067D472A4FBC6786B50EED6029178B +:10A1200095E4337F417BD68BF4D6502FA788DFA4EC +:10A130001E8EB023540656C4197E8A60FFDAD905F4 +:10A14000E8B7E6B1EE9CFB52F2C7D1353CEF5A6757 +:10A1500027E5633DB646A778566932918F717766D9 +:10A160005B7DB112BAEA447FF05C5BCFA0535193A0 +:10A170009F65DEDB2A4E188E7A95E0A7510B628E22 +:10A180007EAC9DDBB7782D8D9F2325081FB11580F0 +:10A19000B3AAEC7CFE9888E7952E49933C2F6F710B +:10A1A000FAC531916F1D73F573F3D5B680F093C086 +:10A1B0003C40BE023CC4D38887831ADDC7D7FB7DF1 +:10A1C000849732C00BE2E128E3F4AF5C04FBA42ADD +:10A1D0001B1F92EFE07FE4CF8F8671D20CEFB33973 +:10A1E000F114309D78CAAB73E2291C77E247E22D67 +:10A1F000BFD174B4937893DFC91A0A4F15CDBDEB64 +:10A20000109EBF174FFBE4FE13782A0F013F30E486 +:10A21000F3B4A298783EC8F9FC2EC1EF48407F867F +:10A22000FD25F1E2E6FBD266E063942F5166E295EC +:10A230001A36314C71E998C0A7B256F2796EFBD349 +:10A24000CDEF3A037E47BBCECFEFA9E7A1DD46FCB9 +:10A25000FE0ECBB4DB3CFE889D37194B2EB7742025 +:10A2600024DED397F705411EBF4D72F70DE7BD54AD +:10A270000FAC43C9380793A5A63353A5BB95699284 +:10A28000BFE3457BB4AF5906BCE351BF4E463DC664 +:10A29000F1A484387C6C1BE8DB8C73545D9C378D97 +:10A2A000146E6688F81FEADDBCECFD3D06E18D0CFE +:10A2B0007E27CFBC0EEC5E685463733AC2420F2215 +:10A2C0001FCBFB3843DDBFA9EE76F2CFE835CEFBDE +:10A2D000161542DE57087D50E1BA6F53EEE953D0B0 +:10A2E0003E4AAD6114EF2CB7F93DBCD16B587C49A7 +:10A2F000C6B8E5C9487C09E8F032114770F36351EC +:10A30000D0A90FAE39F702924F297B7F30975EB804 +:10A31000A735165FE2C1FB337E2AC39BCDF598AF0C +:10A3200055B585C35BB5C050F13B41924FEF6C858D +:10A33000F5003276B71AD47ECCEAE3A5F732A44B07 +:10A34000B226087C31B63D390BEDC0AA764B4D9252 +:10A35000DD65D506911F9AF979DFB8B515F1254568 +:10A36000784F6534C1E1D633E57FFBD18BF3308F75 +:10A37000BF4B8D83C7C8C61CF7596857518C6606FA +:10A380008ECB54CC13ABE932C97F3D25C8EDAC630D +:10A39000016B2A9F877F8F6728BCB9E793F7D7EEB9 +:10A3A00058B187E66D37A28E7B873BC418FF14E453 +:10A3B000769CBC3F28C7E9EC92F7074DCAAFACEEDC +:10A3C000A95A8FF96AEEFB832AE371D0A5E2FEE079 +:10A3D0003B81E497105FCCC8B8D75A3D787FB07CFA +:10A3E000656D10E5F70EBFAD623E5BF9B50C1C4E16 +:10A3F000C626A400AE4CBE62FC1344A377C667FB1E +:10A4000033E03C16485E88F8A8F08708DFA66D1296 +:10A410003DE47DB431829FEBAE63FC5E510FA373CC +:10A42000E6315DF67A0C41CC13F27E8790F7B00FDF +:10A43000E62FCA90E73B925621DDC717F257CA5B59 +:10A440001083424F99E4DF4FB8CEB90FAA855CADB7 +:10A4500075C9D56A218FAB5DCFDD749C903272D205 +:10A4600055C2E9DE0FD7CAFD308A9562DEEC276C53 +:10A47000E6A8B3CC413E91F7DCDCF6913B8E27C7D2 +:10A480009F9A76CE2FC7192E4EA4E836C56F3C3161 +:10A4900066E0FDA92DC5421FB8E20C03F64B137E02 +:10A4A0001303D9C89F42B91A9B9FA47B20B12616DB +:10A4B0003771FD9BB9FCDDE8E5FD54BFAD7831BFD8 +:10A4C000B1A2EF74E4DFDB82215AF75B6AE236E483 +:10A4D000B3A2F9FCDCA648E88113C9515B1B94A325 +:10A4E0001382C9BBB0BF94A75569A67A33E218524C +:10A4F0009E4BF9ED96D7796EB93BC2BC179F9E4C27 +:10A500002F36B3F103CB77E42F6CA814FAA282EBB9 +:10A51000CB3B56E8FCBB81F6D7CEB26A19BBF1C281 +:10A520000763C5062D276D803F74E3D90ABD7F7D83 +:10A53000E3373AD0BFBFF15C5EEFDFD8D281FED007 +:10A540008D5F55C83FFA50BC870AE5317B645E4693 +:10A5500071B58DFB6583892B81B2E2C4F714F1DC00 +:10A560001CF38B653B4D8FF37B5242BEF85C79291F +:10A570007AC8795EA2E37721270FCA1D7D05F73FD0 +:10A580003A2BF6BCB2B881EED7D37756BDFE16860D +:10A59000FBD1D77335DD2B72CB1FBF903F57A0FC8B +:10A5A0005148FEBC8674D50CE7BD7A297F1E42C592 +:10A5B0000E7418D7D042F7E97D6692F4C0DB419360 +:10A5C000F333E3F12529CFDFC6F6309E5F4FB03875 +:10A5D000B4F334B5D0F7E57CF345DCA489DF4B2C2C +:10A5E0009A6FD27D218FC9884FDD7CFCFE00DF5A37 +:10A5F000EFA3FC3A1C14FE238B2B3CFF87C72F26AE +:10A60000041347F07D558CEDE721EF91F123FD997F +:10A610002EE2785508BFC54E14C773DB1359FC6C86 +:10A620008C2C8FE526AF5570169EFFFDC213C778A0 +:10A63000ED50FE94D4AF521F4B3D2BF5B4F4B74E02 +:10A64000CEAB1AE27CB7F739D463C7EAD5C2CC7C6B +:10A65000EBEE25AC897F7784F3B34FF8CCC72A178C +:10A6600007BDE8E2E469FCBEB6B8772BF93338C41D +:10A670003D2AC9D7B2BDE46B77BB11F373DD62DA53 +:10A68000579F6CE37419DF7335E58DBBF9588EABBA +:10A6900066F373431EF2C910FAB43D689D9C07F03F +:10A6A000DD541F6FCEF55DBAB1211EEFB863C5E66C +:10A6B000800978FA1EE22B63FF07F3C4FE9FB09A6D +:10A6C000F075491ECF13BA779B135FB161F025DB9C +:10A6D000FFC3F84A0A7CC539BE86FA6EC109F07517 +:10A6E00049DE09EC8F8D891D5D781FC44EF2EFF8AD +:10A6F0006C4EA8E933A1FEBD66F57EFC3ECDC6C416 +:10A70000ECC058A8EF8AEF7F5C81F7E786C29C7F98 +:10A710008CF4016C67D7AA26C5F98C9E265CE7AE3F +:10A720008A7A86712DB99E5D15FCFECC868AC5C1DC +:10A73000CB32F0B06BCB7EC7F72176B9BE2F20CBE2 +:10A740008A90E238B7D8BA84C7094A932C85F900B1 +:10A750007397F07D1188F2B84EC0E2F5F1217EEFDB +:10A76000FEE9A99DB330BE7643053F9E93F6CE1613 +:10A7700097BD23E30CC15AFE5DA12D497E8FC273A4 +:10A780003AB7C7E4775EE03D9D7707273AFD004D75 +:10A79000D835BE6DAEE7C20EF2B8EC1DD95E1BC651 +:10A7A000EF2C98DB4FF1B05BF2849F3E8A8D41FB2A +:10A7B000666B4225384A010E9451DD97F728689F51 +:10A7C000967EAA597CFFF7C42E993468E7DC97C7B8 +:10A7D000EFB7768B38663C6DCCC14FBFE437F238AB +:10A7E000B7C4EFBD793CEEDB2DF2DE1BFA1273C26B +:10A7F000276A27E2AE8DFD3D732239DA2D15FBADB8 +:10A80000DBC3EF85768FF5A6F00339DD0A9793F663 +:10A81000CF3DF23B3144D75D971BDB917FF61CA8FF +:10A82000BE91520793DCFEDF037AA93A34B4DC5CB4 +:10A8300029F8645C53DCE2E79772BCF4FDFCBB339F +:10A84000E9D8C24978FD9FEB9D3D41900F84A764F4 +:10A8500059663CB46470BD04FF23AF2CCEC3BC8CDE +:10A86000588559887AACB0A285E1FD0D39DF9E0A82 +:10A87000319F6EDE3809E1BB3C1DDE9801BF9CEFC5 +:10A8800091606E79140BA90E7C3F766887633E5FFA +:10A8900093733EDF12980FD7EDEF5937B961E8F99E +:10A8A0001E1B62BE32099FA0DB93C77F9B87FE6899 +:10A8B000AC0EE643FEC7F942D9F3951EDFA48433FC +:10A8C000F6E737C53C4F4A3CEAC9B2F332E4D0EF71 +:10A8D000057FDC9BD8E1BF0CC6BD616C6700F978D1 +:10A8E0009792F28F433D3655A5EF9E766F3B9A4681 +:10A8F000FBF75E8BDB37058DF62C8C5B8C47FBF111 +:10A900006494A3B3A99FA2F7ACC3FDA86DE177BD82 +:10A910003760FC209F65DBD5C23E04FEDF87FB7EEF +:10A92000F47CFE4DB5D896969F4D4039B156257BA7 +:10A930008E81FBAF4F1F8CCF6CF188F1C4B99BB4F3 +:10A940002F4A859D7E023B23CEE4B91AD5F9399C66 +:10A950008CDFB07A8B293583E71D324E29CF39E45D +:10A96000F9463E4BCFCA3C7FABC17B7535188F484B +:10A97000AD43E0AA2C93BE6F366E4B7236F275E192 +:10A980001AE846764D0B3F37A9B9B36020AE791A65 +:10A9900063D7214F02FE9FC893799BC932F4D39E9F +:10A9A000CF93F70D79FD55575D4F723DA42FE1729E +:10A9B0000E36AAFBBB6435219EE745F0CAF8FD2A96 +:10A9C00031CFE6C4A600CAF51F04AD7121A8CFC8D7 +:10A9D000E3EB00FFE224EC573A9F59F81D0CAD9DC4 +:10A9E000FBA15A88A97F0F7D6318B7207AF271DC2A +:10A9F000741B8ABE928E92AE9F979EE8626B1A9DE0 +:10AA0000130A7BD23EA11D59A11F51B0043782E821 +:10AA10005ACB1244D732BFA1223DABE79AEB024892 +:10AA2000577067D0EFAB0CF1F3071FEB0FE039F273 +:10AA30005074D5EB049D123C7EC47AB2F2B617E492 +:10AA4000A2D3A03E577B1573783DBEA56E5300ED93 +:10AA500002D0E36417D8CD2ADD6F1D813E27FFAAFF +:10AA6000A2FB47E45F751788EF0280FCC7EFF7DFB2 +:10AA7000976712BFCC3CD237273F436F747BD2B16C +:10AA8000F8446C9F5E807E8F7D279713F726DC72DB +:10AA900022E5BF0CCA437905848F2DB5F39E9B80B8 +:10AAA000FB5AB7C97F90F37F74635127F97721FE72 +:10AAB0005DE7EE7357D37791A45CC96AE78A6B7E32 +:10AAC000F4C4CB9598CFF5E6E51F87315FE72DFD00 +:10AAD0004818D777E8BA5F8731CFF0CDEB34BA8F1B +:10AAE0007FA988D37DBDF56FD3F1BB33370BF9F95F +:10AAF0005EC8DA80FB80ADE57926CB521A06AB3909 +:10AB0000BFC17F57EECE43A130505FD95BE4A8CBE5 +:10AB100075ACF4F1F3BB2BEFDFE72D073C2CDB5DCD +:10AB200040F1AB433ADF0787F6566EC778FC3342F5 +:10AB30009FBC174ADC8EF3E27A902E6F3DEE13F93C +:10AB40008C7D1EAE1FADF9789E9214FCE25ED73369 +:10AB50004FE6D1B897DFA6915DB50870BB16447279 +:10AB6000B2F94A8A03B9D77DF99BBDCF94C1BA2EF9 +:10AB7000BF41A1EFDA61FBEBC06F4CAEDD4071501D +:10AB8000375C8B6C673ECC65BD577B89C9B589F353 +:10AB900046C1389F74292407DC79BC4B1FE7F98331 +:10ABA0004B9879E3CCAA1C79BDCDFF44797E4B5DEF +:10ABB0007157B75DF59390B0A7A6B35378BC68E220 +:10ABC000CD13CDE1CFD30E817D8FC9ACEFB5FAA9FE +:10ABD000FCA0D5A07243C8E4F97F8FEE7B86648722 +:10ABE000DE371DF96DCF8177F22E8157AB63DCAE76 +:10ABF0003F63FBC76D8FC0EB692C919F26B96591B0 +:10AC00007C5928E87026F39B2158E76DC27E9F7619 +:10AC10001CEA19F01DED51C8BF5B0D3B15F3F4168E +:10AC2000223E26E3F8DC9E5F88BFA77202B85F0B66 +:10AC3000B9BF97F38FC13D54BF951ABFD7E07E2EA1 +:10AC4000F7C506C1A76D4FDC3E0FF9E6F02D4A1C93 +:10AC5000539997EF7E9BF2572F7FD467683C087912 +:10AC600010E59AE453C65ABCB8BFDDFC28F96280EF +:10AC7000EF1EFF0EE145F203ECA398C8CF8AA98D21 +:10AC800039F86F987CF1C39EFED1B8EFDD7C757802 +:10AC900008BFE57088E72F2C31AD7918AFB99C2536 +:10ACA0003AF9BD7CEBA5FF0E78241FD5F31818E602 +:10ACB000755A7361FFEEF994FB45EBF7D6DC8AF623 +:10ACC000F4D4E775CAC5AE7FB87C1ADA7DF53F0DBE +:10ACD0009172AD7FAEFDCBB8DFCFDC2EBEFB24F48E +:10ACE000E919F84F331B5F673C3B533B750478739E +:10ACF000E3EB8C4F7557DE5CCF33981F5BBF53215E +:10AD00003BADFE05F77B9BCBBF1F3DF008CAE1E5DD +:10AD1000AF6F8A607EF61FF49E12A4C7033B3B22EE +:10AD2000982F7948B72388DF3FA4B49CDF47591692 +:10AD300056643E9A23FF9575D904F79FEFF1189852 +:10AD400057B26AB78FE7533EBD9CE800759E47B97E +:10AD50003777FEEBF27B6F2B31F97D35671EEC4EBA +:10AD60000F9D7F5E05FE194E33541EE0405E61EF7D +:10AD700089F32457093F72D5D35FCA99C72CF34D85 +:10AD8000DDFB7D41D899070BF821BFD18675D159DC +:10AD900097C87F6CBBCF67E379CB1F5E1BB51DCF18 +:10ADA000BF3FD8F97C04EFC50F9C5B8ABCBE0F7A0D +:10ADB0006B4EF89DE0C3424EC8FA50F9B10F80DEE9 +:10ADC000C2F39315AFFAC8DE59F1A29A3711E31A0C +:10ADD000DB3DB4AE475ED95F3209EA573EE889CE23 +:10ADE000E7E0501EACA4DB409EB2A0D3F2877E4ABF +:10ADF000F9B203F9CA825E573EB8CF8BFCE2C6EBCC +:10AE00009CDE7DDEFE500EBAF5BE3D0FFD9DB6FB0D +:10AE10008E79510EFDE149858DAACAEEDF7CCFF314 +:10AE20003C2F5DD06DE83CF4F4971F6BA07606FADA +:10AE300069C3D1B11179E964E2F71F3E06F337BF68 +:10AE4000E6A37CF8E61F5E437CFFAEDE427CBFE2F9 +:10AE5000CE8E12B43F9A3D768941257FDE7CD7B5F0 +:10AE6000C48F4B5FBCB6447C1FB594CB07BB14E1C9 +:10AE7000BB7CDB8504DF152C49FCD87CA796C0F889 +:10AE8000CC273A6B7A30075DFBC3DC8F7B77870F6B +:10AE90009D14F62EC66FD18EFB95C6F3BB5CF936BA +:10AEA000A499A0FE89888F3D125665DE931FE5C9DF +:10AEB0002AD16AD5CE0D74EFF0BD4A7E7F1FF060B7 +:10AEC0000BBC29A8F7B417CF1AC5E9C34CB4E3A942 +:10AED0001F88D439F81CDBF779ACC064473F911761 +:10AEE000CCE75F23E6877507F1DCE0DD129EE7C65D +:10AEF0005CF9D357ED5D361FF3A5F3235C3E0CECF4 +:10AF0000FF9D221F59ECFF3F1DE47205F3AB896ED4 +:10AF10007D9EF428475EB5CF115F1FCC17F6887D64 +:10AF2000ED7C0FEBA2BCE7017C3EA9905DBC6A2FD3 +:10AF300097FB576CF639E283ABF69E2DF2DFDDF717 +:10AF4000519D79D04B851C70D3D12D175E0FBBF26C +:10AF500089B6158F28BEBDC293A23C76D8B764E7E8 +:10AF6000AD78C04379C3EFDFFFD46F2E013E7FBFC2 +:10AF700057EE57A79C1DD8AF806FC45FF39E9359BF +:10AF8000AEFDFA3E7ED737D77E85E739F76B8891DD +:10AF90003CFB2F93B302FF83F876EECFA543C8594D +:10AFA0004F24CBAECAC77B6AEFFDE0CA3194CFE62F +:10AFB000C2AF94AB6E797977D81CE2DE06B78324F2 +:10AFC0003E251E259F2EFFB79534CF00FF4A3E95A4 +:10AFD000FA6B88FC7F373EDDEF9F4379549C9D5789 +:10AFE00061CF6675F87B296D5E568771165B0DC65D +:10AFF000917F87CB1FFB974895D0C3F134F2FD3783 +:10B000009F62F4BD18B45FF0FCE8D8338C7EF7CDB6 +:10B010001335B54C3D139FA3B6E4FA0ED429112E77 +:10B020005F1E421F18C65D1431A9DEAE2544DE68DE +:10B030002F9D23D19909AEB32042FBCC23FC75BCD4 +:10B040008F86F9C28BC438F13CF563136CA8732268 +:10B05000D55FC4FBBAF169EA3535505F78D3A42FC8 +:10B06000EA40BFF869EA43D550BFF4A6C9FCFD1415 +:10B07000759A075876B73DE58B73F19EB6AAB07AFC +:10B0800098472FF3D239CD8DB0BFFDC0F7ED1166D3 +:10B090001500FFE5F9981DA81F5C679E17EAF4519B +:10B0A0007BCBC4F8475B819FF242F1F7C1B0DF4828 +:10B0B000C793E3D4EBE61CFA7DAE5A80B56A709E66 +:10B0C0007A9DC33F31E4A5BCADF6023E5F3BCCD7D1 +:10B0D00046ED24FE4656CAEF3968799C2E5ABEDAF0 +:10B0E000F220EA1381C7651199FFCFE31A1F3D31A2 +:10B0F0006A078FC31E194DBF0BA11DFD8F7F85E70A +:10B1000047BE9647E764AF0539BFBC16E47C727151 +:10B110007EB7E70BF0BCDE3FFA1A64BAD794FBAFF8 +:10B12000C5F2ECFCE49A081F378DE35E72A9C6C72E +:10B130000DB584918E8AC5ED680588B810F0D26689 +:10B1400031D35B835BC8998FAB69F547D2347FD825 +:10B15000313FAB003D05FBECE2197C9F81AF4C7A9F +:10B16000EBE5465E97EB5B90AA6EEB37693D1D11F0 +:10B170008077AA2F5589FEDC25BED458CE77CE7CA9 +:10B18000D5C338FE142CA1FF642E1FF1FBBF0D6246 +:10B190003F373C7AA5234F75D587DC6E677DDC1E73 +:10B1A000967981B82C848F699F96D0B9D00B2AD913 +:10B1B000EBF54F3BF32F4E13F947335EE071BC19AB +:10B1C0002E3976DAA3FF44F2EDB461FCE494946B7B +:10B1D00065ACECF3E49DF629D6BD11D2FBFC776A91 +:10B1E000E6EBCC12BFBB41E767AB037C8EA32F54C9 +:10B1F000E763BC794C4419C89FC67C6EAFA951BEA9 +:10B20000CB5E977C94FC3CE9A07119AE7FD241F6ED +:10B21000758E4F31AEC1F13990CF7988E7734EED1D +:10B22000AFBB1D7FB7C773C0C352E6601EE3D183B7 +:10B230003C8F71FA017E8FF111F4CB31FE1673DE73 +:10B240008F0998416666E025AFAED0516F0F70FA56 +:10B25000CA7CC869FC150BC7CB1CE34C33F8EF7FE5 +:10B26000E637563BFAB3179C798CF5F8FB17B0BE5E +:10B27000F81BFC7B0FD30F3AE9AB09B97AAAB027C8 +:10B28000E3699BE465E31BCE76A7869AE89CE9D444 +:10B2900061CE99DE74D3391B9F8EBCD0A96CF2EDC0 +:10B2A000F8FB4A59F83CE4C4A7E407C0AB86F2B601 +:10B2B000C072E2B5A8C989D7E28413AFA31638F1EA +:10B2C000579A74E2ADBCF90B8EF7952DF58EFA986E +:10B2D000B5A73ADA5781E2CAACD7747DC9D17E6C82 +:10B2E000CF798EFAF82D9738DA4F482D76BC3F6922 +:10B2F000F7F211F1C1A4DED58E76920FA63CFA2D9D +:10B30000C778920FE4BD7BFC8942C47B5CE4D10E1C +:10B31000C707A7446DE4FCBF9B0F46E70B7FF173A3 +:10B32000EEF706A117301F1AED3C69077CE409759A +:10B33000A19D5B003C82F27828BBA0E0F16729AEBA +:10B34000EFCE7338A69A74FEB1594BD07D8D722022 +:10B35000A10A7CD42E7EAFF42655FD7AE6395763D8 +:10B360003EB7E31BF3C5393FE84BD48FE579CC26D4 +:10B37000BDA932C7EF834630B7837E7FF4EE0DF868 +:10B380003B9DED05FD7566018A1CA89F9EAD97400B +:10B390001F4D433F04E4FEDC7C904397A820F761F7 +:10B3A000CA8B0DFB2C05602CF7331BEF99807EA414 +:10B3B0007BDB052CAAAC9E88AED380FE313F03A672 +:10B3C000786AF949749FE768F304FA0EEDD1D0C0AA +:10B3D000F729F9EF289B71CA47F8AAF0638E2EA9C6 +:10B3E000A176AF5E8A3F2ACCD82F70C9606FBC2A85 +:10B3F000EEEF0C179F6BDE7E6B18F3745EADE3F916 +:10B400000EF2F915F95CEE5E91CFF342562DC9B3F9 +:10B41000F97D510F9D83A3DF85BF8F78558AEF6734 +:10B42000AC633C6AE3DC1DCEEF021C68B131EEB9BF +:10B43000EAF173D9C0EFBDC1F38B5FE671C08BFF3A +:10B440003773D86FD7E6F3FBE8D7E6F3FC8A8BA017 +:10B45000C0EF425D04F428C0F2D999F3707FC0F3C5 +:10B46000B402F5AF1C00930DF07E6EB2CA8348FCA7 +:10B47000358BBFF4302CDDCE3769DD17B08407E59E +:10B48000CB6F2E5D19C67603E3C9716071682FBD5D +:10B490005C607B4A406E1D395D21BD0FF3F9F17987 +:10B4A000626179078670E57CBF61C90F5F82FD71BB +:10B4B0001E8BD3B8727C86E738197271F5B2BC74F2 +:10B4C000118CB7FA551F9D437DB4EEC80FBF01EB39 +:10B4D0007A6BF95F1EC67B072CD95F89FAEFAB5BED +:10B4E00034FA9DE1EB43D60DF968BF348EEC3EF99A +:10B4F0009C1F04683FACBE85EBB1D5F78DA77BE000 +:10B50000ABC3CEEF994A7E5926F865F53D35746F89 +:10B510005CFE0E887BFC8E56FE5D0BFC9E26DE1BC1 +:10B52000ED88F2BC619D25EF46BE6E378E5661FDFB +:10B53000EE02FE3B47AC6264F98FB8A76CB49F186B +:10B540005FC7CF059F2E78BC689AB0DFFE0DE17F04 +:10B55000EDC9072A519EFD6CC2BD63C93F6A181927 +:10B560003EA45C7950D8534CE8A9B8801BF414F978 +:10B57000231FB1601CF13594BC7950D861DFD42C05 +:10B58000F2038EA90971FF0CDC488DA4C3F3A7A1B7 +:10B590003DBE4FA5B864048551C6EF1C4730595FC6 +:10B5A000FCAEB11FFCA693845CF9E9CD87BFD8CE71 +:10B5B000E32E4EFB4EC4A9A43D9780BF28DF4F1356 +:10B5C000F6C6F82DCEB8E78CB44A7EEA801DE7B601 +:10B5D000DF307E3402FBED95BF539EF729C9DF2291 +:10B5E0009D7AEBB83CEE4D07F97D0F505DFC3EAF08 +:10B5F000D3AE738F7348C895C3F95C2F3C64F032A7 +:10B600000FE46398DFDBB3B57AAA53AA28987D5676 +:10B6100031AFDBF950CE2BE2EDBDCAE13A3FC8E3D2 +:10B62000A3377FBCA16B267E8782E319EBF83B9E94 +:10B63000B0A988EF574B39F9F417F8F7E7C57770D9 +:10B640001A443CDCBDBE06D88F5C398BFD2CFAA7B2 +:10B650009FF92B7DDFE28142F39748FF23CF697486 +:10B66000EF3AA0F77BF1FBF3FF1732DE05C0008055 +:10B67000000000001F8B080000000000000B95591F +:10B680000D505457963EEFA77FA09BE675B7A24694 +:10B69000973C41411448DBA02249362FE8A8438853 +:10B6A0007634C9B83BD94DAB157110E8C464DD548C +:10B6B0008D5569D0C9B826B5C56E3233CC4C76EA03 +:10B6C000E126A96C02B3ED08B1936AA8068982D17C +:10B6D000141893C1EC5406DD2DCD668426EE46B3D6 +:10B6E0005676D973EE7D2FFD03EE64B5A8CB7DEFC2 +:10B6F000DE73CFF9CE777EEE637A1AFFDD07306D09 +:10B700008C6F3F0700C5006B15116015803D2A68DE +:10B710007A298EAA06C21C802C45592909B8260808 +:10B720008E529C4F1C2BF41F5101AEE6E2C3B900B0 +:10B7300077E5049C0A8E4D5247BE52083022682E8F +:10B740009A03C4E5400E409D0C5AC409108917E4C1 +:10B75000EEC4B14C86C3B207E03363BFA947A8BDAE +:10B7600002C00BD0DCEE65634914DFE3A3505C62DA +:10B77000E364F4A027589A5CFFCDBE795337FE05E9 +:10B78000F5827FB6FA5EC3A12C56510FE538E2EF81 +:10B79000163CE7CDAF56307945CA62661F9E2FD35F +:10B7A00073005DDC8A8B42367832827227BF92D872 +:10B7B0003A536E59F47E49710194C6DB0680708855 +:10B7C000D9D4308AC87A15382EB12C1D50C550DF17 +:10B7D00046102A01126EF009F8BE2B7BEA53C0F91D +:10B7E00054AF4D3D2A107E6DE041F95D56783C80A6 +:10B7F000630980F61B67F2B9795E56EC6700F8DCE6 +:10B80000BE04349DDECB6D70AF33F9FE6A6E0EC39D +:10B810006BA3026CECCA8E8B4ED4636A29C051A60E +:10B8200057524F60E79A7A96E86181CE9FBAF2C389 +:10B83000394C2FE5A84A7A703D2156ACBE46FB151F +:10B840008DD991A5A83E5A9FA957A81C74C805F880 +:10B85000DB56DC534DF8810655F83C3B39B72FC316 +:10B86000730AF0B73B685A7278FDA2D4398469BD77 +:10B87000B9FF2FDA561C3E84EF6519C2921FC081B2 +:10B88000638E87EC54997D32CA9BEBE738F810271A +:10B89000879DBFFF66BD1DD5A2B993AFF3E5863D79 +:10B8A000B5689FEFB4E83B8822E0EB6980D5C827F4 +:10B8B0003A19E7CF08F12BF7A18BBF8C0F94ABA8F7 +:10B8C00053E3E977F3AD38EE15633F2DC3F783B645 +:10B8D00060BD82FC38F13B115C88C3E7FF94A5D7BB +:10B8E000212ECBDEE9C8D39C33E5FD78ACF5EF170C +:10B8F00092DFDF1154441C1296A97CD2B33976D55D +:10B90000AAE1B8317AC93A8EA3E80E3E4572ABA2DD +:10B910002DEB08C7B5D07650C1718508411617F3D5 +:10B92000511ECAB97EA1E8680BC5D954F04EE2E5B4 +:10B930002F95F4F8881971DAF79C9D8D9971608EB6 +:10B940006118580828B3C7C2F9D60A830B09F79EB5 +:10B95000FE3F2B54516E42973711BF567C6C7F5C73 +:10B960004BE1DF4F8CF8FF099D8BE35277F030E914 +:10B97000BDB7FFB2D585F685FE2D920F228BEF2342 +:10B98000B3C6B7ACE6A6F279467C67C457489EB208 +:10B99000120EA1CF80E51BF4FFA15CF4E75B1F470B +:10B9A00097EF7032FD211771E9B968D329EE70BEA7 +:10B9B0009DE2B4E5A31BE5E3F8FE46EFDE3B09CFCD +:10B9C000038A85E98BF150934D71770CE3414DC6A5 +:10B9D0006D29C52DAA524AF15049F31226AFCB3A30 +:10B9E00052CBE2B447048A538C07161F180F0AE59E +:10B9F000915205E383ED2F6671DF35226A340FC75C +:10BA0000B3F5A56C5EB38DE65D23EB1516F7224208 +:10BA1000EFA7F88D0F303911C4905C2B4020529A5B +:10BA20001AC72E868B993F6F614C91FE0E494A8B47 +:10BA30001397249A71C5E70705F65EF8BBC70EBFDA +:10BA4000BC88A2AD42243EEE53381F2188F33C80CF +:10BA5000A7ED6C0FEC7BAF7A4B27DAB7EF9CC4DE17 +:10BA6000AFD69E5C873105559BDA4ED2581D88AC07 +:10BA7000B3907EED12A8E89755386A9867EFD93EE3 +:10BA800072D2C2C37905F9B77BE0BB2B64E2F945FA +:10BA90001B64A10ADDB7A63E7D13EDDBDF87B8C2CC +:10BAA0004CFEA1BA8C6FB7E36742187715A2CE633C +:10BAB0004AE326390BE3652DB7F323A5E17018158A +:10BAC000FB73B73646BC7BC6131C239E25466FE529 +:10BAD000512EEFB970D915447F775BB5150A1B61FC +:10BAE0004FC43953FE29E203EEABA4BC6EC4974C9D +:10BAF00075ABDDDB41F135D12D697988F92D83EF07 +:10BB000010D646E6236E4F70D8604FB774C986F5DD +:10BB100063B786DC423E3E31D85047F564F7CB969A +:10BB2000CBE3CBF89A695A873FCFA2BF8B08049426 +:10BB3000DF1C11749DE2573A20D2FCCB98005E8145 +:10BB4000D6C997C70D9F4C234F1AE1C52F249417D0 +:10BB50008A5A92CFF1A771B0F62A9DD348EB972568 +:10BB6000D73FFBBB51F760CAB9B7949C39571CF853 +:10BB70004B21144E4B8C17BE38F1F823C977946AC9 +:10BB80009E0C4336D4EB2D91E3837992C5D5CDE756 +:10BB900046DC83088DEED12672119F0983775D35CF +:10BBA0003CFF4C75093A8B833730AFE3BCFA33B5B1 +:10BBB0000316337C2ECC5FCDED251E55CB7C7D75D9 +:10BBC0006C318BA32A0D7C71B477F705C9A7132EAE +:10BBD00084978BCA2BB70FCB2D4C1790BC3689702E +:10BBE00069780571C17D7BDF48B73F64E0D2D83EFC +:10BBF0007A6A01CE9B2219EF0D7C4219F8FC867EF1 +:10BC0000593B13A73BDD064EF9904F3881F4582E6F +:10BC1000F10786108C05337963E243E146FCF903B2 +:10BC2000E51B5C7FDE908FFF9C3B9027FF6AE070F6 +:10BC3000B79BF3A759E3FE6FD4255D477D76197C4A +:10BC40008117395FECF89FEC4784ADCCFE6E017E26 +:10BC500021CCB46F4FA76587157DD260E000F0A4BA +:10BC600095E26FCF2BE9BC6B307068C8C0A1392852 +:10BC7000A4E981F1EBDC817EDB65F0FAF67A451E02 +:10BC8000257F36745AE008E3EFD74CCF2FBBB99F1E +:10BC900032F534F533F5FDFFEA99E9A7874D3F2DDD +:10BCA00087E5697EDAE4FD567EC28ACFF2DE3E3B4E +:10BCB000F7CBF5C1E5B9509AE445E6FE0DEDBC9F22 +:10BCC000DCD8CEFBCBEE9181C377A3FDFE5E49A904 +:10BCD000C3FD89911A4719E5BBB3B28F442462159D +:10BCE0002F84D1BEE3434BB6A928D73F2AB2F8A888 +:10BCF00038E7D7B3D01EFF39BFA3308791C21B28C6 +:10BD000063FB587D4D9C5DF26129C9195A5F49B0AA +:10BD1000B69CF53BA81F388E9611AF8473FFF901CE +:10BD20009D5B312CAFB6E1FBE7E74B2CAE36FE7CDA +:10BD3000C7EB36CA136E89F1EBD4C8BE87C91F4D55 +:10BD40006745859E4F9E15D9BAC67F907411E71B33 +:10BD50008F5958FC8530FE05A6AF859D1FEA5DEA28 +:10BD6000DDE54CF260A7C15BBF5B7DA98EFABE0525 +:10BD70000ED62F6FFC130BAB8BD7EE70FC23F53B6D +:10BD8000455AC70605F5BCF6EED32C8F25BA0498A4 +:10BD90008F824FCD3FF9EB30DA77EDED512B35D770 +:10BDA000EBBA47AD5487779AF17E98F3C4E4557D9A +:10BDB0005CDC61BD0BF3CC4836C4511EC86D56F235 +:10BDC0004BD3A8391FB752FD0E187D52F3AB97D84D +:10BDD000BC81FA7EE2E3AB82AEE2AF277B4F303E1E +:10BDE00036770A306F31BDEFD840EBF642E479AADE +:10BDF000039979E407063FEBDB339E1B7CFCC11FF4 +:10BE0000E1E3EBC447BC32604350427CBC717F200D +:10BE1000378EEB6E8C66B3FBCF8D6189F1E2FFE06C +:10BE200025AB7F67A95F43C75E8F8B1AE160AE9B2E +:10BE30003C7BDD4AFDE486D8170CBFBA58FF7AC2B6 +:10BE4000E5410836929D0FC61C4A1CEDAE1BE779F2 +:10BE5000A536666375E541881C227B137D36F63C6A +:10BE6000FCAEC0FA10332FD51BFEAD37FC518F89C5 +:10BE7000D78BA9AE7188D7337825DD3F0F2C4BC700 +:10BE8000A71678FEA88DF0FC91B04464F243A24C52 +:10BE90008036CA2F842BCA4D2C7030FF84BBF8F932 +:10BEA0008D9DE9729A096717AD4FAF7B51F75C160C +:10BEB000AFD7655E2FAE5F902AC3EAEDFB844CBF1F +:10BEC0005C34F384E197BA296075AF96EA0ECA191B +:10BED0008AB796424112A74CBF0CA985B9B3DD1FA2 +:10BEE000CDF103A3BF36E75B3070A86F8B28DC0F62 +:10BEF000C323733BA8DE35AC95C2D43FD4784466E7 +:10BF00004FE3FF6CDBE247E8AE8903FB3BF1FD1F2B +:10BF100076448AC87F789FF8824C3EBD68D78B2BC9 +:10BF200071FFE75D161FE517D03A8A285FFE78FE9D +:10BF30004B757E8ADB4E8B8FEE0F93555298F269CC +:10BF400008FB6960CF6D3AF52BA1E87FF0FB04F1A7 +:10BF500005C7404CF80EF105FBF3FF76637E7808C9 +:10BF60004BFE1CC4E1A128F60128FEA1F55F58296B +:10BF70007F629F3EED9EA54F1F5E52C8EEE1C3B2A9 +:10BF80003ACFE3BC7D9FDEFC15EF0BCDE7CD18AFBC +:10BF9000846B734C60F7D3645F384FA0BE30D17BA5 +:10BFA00062D0C3F2857B25B9E92E0FAF8FDD03592F +:10BFB000BCBFE811F402E2AB7088C547B385FBAFA4 +:10BFC00019F316F100DE4127ADC13C79FECD4324C3 +:10BFD00067F24DC16763E1A45DA03E7737A7024CCD +:10BFE000EE8C5CA6FEFA46979DF59FF5E89F67915B +:10BFF000E7BB8DFA46F303D8FFB4402BBB07B5C2AD +:10C000002136EEC69F3FF5CFCC0B93D18356E28508 +:10C01000D9AFB0E7C8A32683EF99F9A5C9E0775354 +:10C0200006BF33F95AE349CF232DE7B35F60DF0939 +:10C030008625C5467DF4C07FFDEA0EC205FB6A86F3 +:10C040008BD197205ECCFF8951A74EB87E6EF0F25F +:10C050001ADDFB1090962A89E124AEE5E38ABE132F +:10C0600005E4EF44EFCDFC20E6E5B7FA4E2C27BE01 +:10C07000A0410CFFBD6FE0BA14BD9A220E4A02DF48 +:10C08000CC512F5E3F3E9618DEA85791754E52AFA9 +:10C090001E79DCE59B259E046180F9511406D3FAD4 +:10C0A000FDD03B52404F8933B4E771CA770F1B7CF8 +:10C0B00000792A8FEAE4768FCAE62D31EE77B197C0 +:10C0C0008F78FEA3FCFB89859D3FE37D4DB891DE13 +:10C0D000DF58EC008A47F82A5C47F3FD05121CC1C3 +:10C0E000F9FEF30DC590723E08FC3E1CB24CE5B162 +:10C0F000FBE6A8C8F40B8D5ECF5BE2A4BCD7B19E73 +:10C10000EADD0346DE3855E0D843FC0ED3B9F30030 +:10C11000AC641FEEFF3DD5638C93D05ABEBFD5E013 +:10C1200057F7F95A4719F9AB77EE4A094DDA69F42E +:10C1300085CF780221CFAAE4BDE5767D67CABD89A7 +:10C14000CB473B29AE8E8FD9F43A81EEB9373FFE0B +:10C150003ED93B8CFD08CA6FE9B58573C95F9F6402 +:10C16000E9D40F40307817C5F7FEBEFA62AA8B20DB +:10C17000B4327FBC187D22F14BDCD774D141991DBC +:10C180009A7A3FCA63F5B767D54BD4CF60FFF20008 +:10C19000F533C76316D6CFF8CF5532BE1D3F5BE9E6 +:10C1A0002DA40B17F81C24B769580E101E4DC3950B +:10C1B000EFD7511F72AE86F533C2B94A2FE5A30AF5 +:10C1C000BADF523F33BC84CD4D7B9EF770BC12FD6D +:10C1D00059EC3B8300059C2FB0248D2F8DDDEFB1F2 +:10C1E000BADF1895B454DE98FB7EE191999C5F9973 +:10C1F0007C89081AE3C3313E36468FE7911D7B2DBB +:10C2000011E6DF964E0B7FDFC5478036B62F8C6D6B +:10C2100022F9F37D7A847EA8B5EA8B00553C63F45D +:10C22000F9672E06EFA47C78E6FE60318D055EFE90 +:10C230001D24F95DA586E90DC256E6F7896EDE6715 +:10C2400065FA51F5F27CEAF2C2E38159DEBBBCBC6F +:10C250006ED45AF9F71FEACF16607EFBC0A8DF9BA9 +:10C26000318FD177C731A3BE7C08010BDEF570E4B6 +:10C27000F7CDC8329E37B761DE6CC1F5DB1EB4B0B6 +:10C28000FE02AA78FF1DC0FF94BF8ADBE5B4BCF5AF +:10C29000C837F70AD5427EDDB6293DAF3D62F44787 +:10C2A0008FFC91FEE88C99D78AA088F7EB4E077D2A +:10C2B00067FC72C8A248AC1FD197507CDFAE3F3AF2 +:10C2C00085F94CC57C3684F98C46AC53173CB3D405 +:10C2D000A9CCFD669D6A29F92DFBFE73A6FFE2AF8E +:10C2E000DD2C7F66410111F26BD406716C520C5D3E +:10C2F00033F6B7C056E6BF5678388D7FA61F27A8FD +:10C300002F2F9DE9C749C30FCDCB6C9708BF660996 +:10C31000EF71E88F239B8E06883F767B20BE10CF7F +:10C32000FBBDA8A6D5D1E6E8534075A5A584F76B5B +:10C3300013DF1174CAFBA877BE2D25EF4F2CE07DCB +:10C34000D7FE4705F69DB6BFE4B7ACCE37C547ACC0 +:10C3500094978ABA77FC88E216097881EE399B8D2A +:10C360003AB8C5CEEBDE66F35E67DA6FF0A8053C3F +:10C37000619E9FE7B091D6535DDC6CD4C12D55E929 +:10C38000FE2F86910D0B518FEF6902EBA71ED22C69 +:10C39000B3F267EBF695EF91BBBE2D7F8ABD41B737 +:10C3A0007715DDABAE3F4ADF59CF945CCD275C9A61 +:10C3B0000DFEFB8AD5E8387DB77D5F597910F7848B +:10C3C0001CAE7205F9BCD0CBF368C891AF53BD7DEC +:10C3D0003537788797F2897E79377D8734E5508FB6 +:10C3E00042EBCC78F3CD838AA79CA97EE4FE33D7B9 +:10C3F0001DF5286C3C63D11751BE8052EFACF7C4D9 +:10C40000CCBCDC5272BA9CFC72A67FB8DC9AE2BF4C +:10C410006BFB82C5ACAEF49ECC539DA97C130DBEC4 +:10C42000C96C1484AD46BD4CE7DF35E21FF9FBD87B +:10C43000C9CDDF279E746F9B23A829F5B4E743D7A6 +:10C44000D214B9133189ADC7FB53D12339A97AFE70 +:10C4500088E93911E1F2D0E230BB37BDBD72F51188 +:10C46000EE8EB048F3653B5F67F77C38C8D69BBC5F +:10C47000CDB684B585688F2D8A1D6541D2EE8815AD +:10C48000989C709F4D7F8DDD0B80F573894B0AEB77 +:10C4900087011601F1F26D837741C36F6BB00926F6 +:10C4A0007EAE858844F1B20664788CE632063A8E18 +:10C4B000F7802E51FCAC91E3FD42397B1E9691979B +:10C4C000F7C2387B7E1F7D3AC27DF7832AD37C1D5D +:10C4D000840F5221BB3B127F80D24F3C4F765F418D +:10C4E000FE510A9ACD6F495C64B862F211176393EA +:10C4F000C3BE8B9B7AAF16B8DE6B34B0537EFD1B88 +:10C5000023EE7D0E6EE7D404B0EF62A65E77CBB06B +:10C510004942FDEF95C19E8DEB8F0D8A2C7EFBC6A7 +:10C52000559DF29FCF6BECFB77DCB798B52CF0985C +:10C530003F696735EEA3EF716B64BC31337CE2B3C6 +:10C54000DA7BC0CBFF5E8592FE92E4AD8BD9587F3B +:10C5500023DAC312F1BED5ABF2EFC6889B0BE554CC +:10C56000B70930467F0729E4F699F2AB3145E5FA81 +:10C57000693DAF67F44979CCC3FF9EE2627F075BF8 +:10C58000AF103E423C4F9C767C7B1C1379C0F47606 +:10C59000ED9A9AFC6165F2EF4ABED8E93101E355A4 +:10C5A000D03456AF7C76679CFA68F4FAB5D4FEFABC +:10C5B000A7DE9D2F535E105485E103415029FFCF24 +:10C5C000835714AA2F22AD432C3FC97695D3DF9D04 +:10C5D000C85D9FA1BFBE67F0EC936C9E17DED0B71D +:10C5E000AAC4EBED73EC3EC2DF6FCFAF20FE7E3707 +:10C5F00037F832E58B4F84CEA54C98ACAF0AE424D3 +:10C6000079ED00AD8AF0BE99C5E56337C1F8FAACA3 +:10C610009DCFFF3ADB75944607A66F3BEAF702C64B +:10C62000819DBEA366F173294689CF61E3FB69F85A +:10C63000D31C9D3ED1DF14038C94185DAA88F2E1CF +:10C64000C03A95BE3F3FEFB6FB28EE6C649F23696E +:10C650009F79BE6967E6F964F73DA6DD62F27CD397 +:10C66000FE99E7872DCB390E4FD37AC4A1DFC0E105 +:10C67000AFD8A1A02F251C4CFBD131ECEF5A8A81F9 +:10C68000AB8983427EA3BAA2A1DF4CBF23AE2F6445 +:10C69000731C4CFBF11A67677254F45FD94CFBFEB4 +:10C6A000173ACAD026701E000000000000000000EB +:10C6B0001F8B080000000000000BDB2FC0C0F0A3A0 +:10C6C0001E81BF70A1F2D17116272A7F0B377EF52C +:10C6D00084B00C03823D9B8381A18E1982ADA0F8AA +:10C6E000311303C339285EC80CC1DB59107AA4D9B1 +:10C6F00019189481581B888DD909D8C58A2966A133 +:10C70000C0C0F05019C1D7906660C807E293D294B8 +:10C71000F96B140F0D5C638ACA5FAF87CABF6CC028 +:10C72000C0C06D86E06FD023CDFC06A0DE4620069B +:10C7300000DAD58344680300000000000000000018 +:10C740001F8B080000000000000BCD7D0B7854D536 +:10C75000B9E8DA337BEFD9339999EC09933009437F +:10C76000D87900A90D388400B1A2DDE1255EA99D2C +:10C77000A2D568AD0EE1290A046B25AD7AB22193EA +:10C78000172410356AB43E06D0362AB4C1838FD33D +:10C79000AA1D842A9EE3ED8D3DF6AA3D68C3434061 +:10C7A000501AB5167AAFD6B3FE7FAD9DD9B33321FB +:10C7B000D89EF3DD1BBF76B1F67AFDEB5FFF6BFD14 +:10C7C000EB5F6B5C4A8004BF49C897F047D3E50E26 +:10C7D00042C8B4544A88A8F52B9012E3CB92B43CDB +:10C7E000F9D2792EF9CF27A6E70D427221FD31212A +:10C7F0007984FC9097D13F1DF27378C684C74C4969 +:10C800004426C9B2543F7308CB6B0E817C29C0D734 +:10C81000F472739CD36EFF64924D48BDC2D2751EF4 +:10C82000FF36484FBB0B13C44FEB925829CCD3981B +:10C83000459B54D2F43D5FA211FBAB3B3F3A8910BC +:10C84000FAEF9A5E6F0678C806C44F6343EF3D4720 +:10C85000C6A7BE3BC39124F443AA48E4718DA65EEB +:10C8600022C2BC5AA14FC8937EC319A4D006235339 +:10C8700037D2FC540A37F433D5119DCAF0A293A8DD +:10C880000F9A6BF87D8F6FFADB315AFF934A39E2CA +:10C89000A29F6EF13D4B4831219B2FF8DFA1583903 +:10C8A0002159622F51297C59A544EF2D87F6771223 +:10C8B000329D90CF14369E09D72CE2407CA4E04FE5 +:10C8C000C7D7EF085BEF8EB1DA9699743CE37F3AF5 +:10C8D000238F63695F0D09C278798E8D740E6D0D9B +:10C8E000C964A944484B03E91469DA26F5772F0691 +:10C8F000BCBD26E17C9B1A14FCBEE78209D9FD145D +:10C900009E1930EEB4D4B84DB99E9A04C2D9198399 +:10C910007ED7457ABFBEB18810F784FD04F072FA65 +:10C92000E0AE0B61F966C0E2D0769B6919D4337C26 +:10C9300024F17811E2AF7B31CDFBABD40AC09F303C +:10C94000A17E228C3327770981540E77EA14E744BD +:10C95000ACA2EB62D21DFD9F9FC408A1F4EBD70CE3 +:10C9600003CA09598B784AD19FEECDA7F92CC2D7BB +:10C97000A9EF522C975596CF8AC41690C9F4DFE5DB +:10C98000146FB48D4AFFFB92AE83F4576714F0AE78 +:10C9900094B2EFE6784ED2FEB1733260D982670A64 +:10C9A000BFF3C0A51FC0D49CB6EFD2175744816E09 +:10C9B0003657DDE2590FB4E2BC2E3B46E194AA1C87 +:10C9C000075DB4BE14F377CE1995C2A3F740757214 +:10C9D0005F596ABCDB892F78F4EB88B81948FFBC33 +:10C9E000BD9D6ECDF474839EDC27E13C1D563E1C3C +:10C9F000AE7E630321C989A97CBC480F5114904DB8 +:10CA0000E4325DBC80E6253D244468BD924BF4F9D8 +:10CA1000F974F889C950848EDF1EA09D1610729F8C +:10CA2000B13269D0BCB3B117BF6F82B1BF61F93EFB +:10CA30003B168A503C36BB29BF950F1DFFF7146388 +:10CA400040BF9B84FE1A529292172EBE5E2EF59521 +:10CA5000BF0A144F9B85C8997EA0C77C3FD2232D67 +:10CA60006F1573309D2F57406545847555CC7622E0 +:10CA7000898B1598CE9173605EBD6FD702BDE57B43 +:10CA800091FEE30139E9A7FD7514C95B9D420A9E39 +:10CA9000578980F41997987CE890D2E5C473504E7A +:10CAA000E1FD6722611AF7B17911B531F41D5F8696 +:10CAB0007E020C1FBF326286510EDF19FF6FA6C5C2 +:10CAC00002C05324271E07BAD08DD0425F5AB91135 +:10CAD000B096ABEB430B2781F8A3FD53FC282182D2 +:10CAE000746FA9CFE048D272C0433E122B9103CBA2 +:10CAF000F62781EE5592869FA98ED8ABD0AE29FB42 +:10CB0000FA815A2D259FECF27B38BAB1CB6D97662E +:10CB1000C9C3FF852CF962F8FFB07A342B557F50DA +:10CB20005F18D5389E64B22BF961DAF8F18BC880B2 +:10CB300093AE53FB05B2B601F8292227811EE06FA0 +:10CB400000F818FE01DFAB9AFB04E04BAFDFC80230 +:10CB5000BEE27C2A856C708DC03FF536FE3B69E3F2 +:10CB6000BFCFC8CD28A749E77CE42F3F8753AE94B9 +:10CB70000D2617DAFB201DE4C30B1766835C925564 +:10CB8000F9A093C2258712C43A7E2BF01F2562417B +:10CB9000889E017C34663F82E5A26C846A41DF4C4A +:10CBA00096B9BCEE0F7D6752AADDEFB8DCBF1F8AD5 +:10CBB000722DF8249D5CBF4742A0E79A1BEAC96129 +:10CBC000AAC73C2F5F43B449808F3A5DA774220205 +:10CBD0004D5D007451C95291A09E14F3D46DA00F05 +:10CBE000244D59A401FE34F53B9012B21EFB95CAA8 +:10CBF000CE5B2AE0F7E68F613E2289E902AD2F96EF +:10CC000012C4BBA846117E4A5F4101E050D2E96ED2 +:10CC100090CE544ADCF998D7A29332D097391F5E50 +:10CC20006F583A1C32EF840CFD59F284E50D1B9EBF +:10CC30008C34BA93CA0C462F65248169B978B4DF65 +:10CC40004A37BC5D23FCD3024FF358CE77F04741FF +:10CC5000158391EDA0F79AF3E78516D3EF5502B34C +:10CC600003C882743C98ED299EAA845CC05B0CF1D9 +:10CC700066E2A7397F4236D801C49B83EB639F7776 +:10CC800033D5D7A2C53E69964C3812CC7E2920896F +:10CC900051C0279F4F2D03B9325C3F763C368E8DB5 +:10CCA000BC1D03399BCBE80E64235F277205ED673B +:10CCB000219F8F18E4F44ED71B4891CE6321CCC33B +:10CCC0003E4F733E8D3E733EC18C70C4613E520A2E +:10CCD000FEC1EF5CFE0ED7CE0EFF70E5F1B17A68B3 +:10CCE00011DA1BF679B1759354B66EABF9FC242FAB +:10CCF0009D1FC89160CCA4E7D599E71745FAB2CF3C +:10CD00004F5415C48F39BEA8BC921447A5E0BC5D32 +:10CD100050D938837044B01FA74AB0DD0D42EC767D +:10CD2000E01F67B019E589D3AB13E85F0ED1F2F3CA +:10CD300021D56BA8ED44E27B2E20E5D0CE1B213718 +:10CD40004F02F917230B68BDF8174E460FC1CA34BE +:10CD50007ABD4DB0DB8B0C9ED55C1ED8F1F6A76179 +:10CD6000E8FB4F2F5E82F4DD35327D7765A2EF3F21 +:10CD7000BD3891E1EBF9DC8CFCBD5AD99B862FC202 +:10CD8000ED821007A550EBAB0672D94418DCDDA18B +:10CD9000E3DD8BE8B85B42C7E7C1F756A1AFD945E1 +:10CDA000E17C3337F69860996F28461C30EE46CE0A +:10CDB0002F739D5EF7219A76EAC5D9B514BED705C3 +:10CDC000218DFECC14EC24E0B7071B144C4FBFCBD5 +:10CDD000E01F8EDE9A1B483A7F7A97B41601FD0554 +:10CDE0001D91F1144EA7AF12ED7F29A055A03AD4A2 +:10CDF00005DC4F28029BDF4B36382C74F812D085A7 +:10CE000029674D7C16EA515DA5F08C25511DEC8AF1 +:10CE1000403DA11B16F6275AF0169AE930C0EEA441 +:10CE2000787915F0B22AD8572D527856CF210ED0E6 +:10CE3000A5265E3A7507AEF72D73276CB3DA471E49 +:10CE400007B3FB49790EA35B91EA19DFF0FCD84DDB +:10CE5000F1563E1EF24901EA856354BED2F1DBF978 +:10CE6000F76621FA16C011AE1B90613EA74C3B0637 +:10CE700020A6F414E77077D77A109E78AE8AF6DA97 +:10CE8000614EC76405C7DB50BA3B9C89EEC2B1282E +:10CE900071D27A1F88B163585E1951417E65099D30 +:10CEA000C445FB753A480CE58D41FA60FC7CBE1E1A +:10CEB00026FDFB4AB56D40FF67046607E65735AFB0 +:10CEC0007550FE0C7945C46B7EFF22DC4FB8F97EAD +:10CED000807E3FE8A2F9F092A40E5D8D2BED048ECA +:10CEE00021BE72F63D29C6CE001C1ED510008E71E3 +:10CEF00077B075BD4B8AE2FE4F9AD9A947CB41BEA8 +:10CF0000CC238B2C76839BAF8318247AC29B5AE761 +:10CF10006E27C3C396991BDCCBBD50CF837016928E +:10CF2000393AF43796E201E843E2F441E94071D03E +:10CF3000722DD6270BB4DDD860FF3C48293F8C0604 +:10CF4000FABE4B52F3A1DD5D3E99EDEF0CF226E007 +:10CF5000DBE3E0F24FA3FF513C7979FE0D81D9C5A7 +:10CF6000AD37327CD1B6090DF64737B37CA0942497 +:10CF700000111EC09B3F85270FE00DF01789E80EBA +:10CF8000DA4FB8CC580FDB428A9F30C0E7234922E2 +:10CF9000829DE74DE860AA348B757FBC93F6D7BCC1 +:10CFA000DF1931340B3D72BBC7C4932B44BBC8A0FF +:10CFB000C7CDFA23DB15BA08FDCD51B2501FECE501 +:10CFC000F286D2ED64806B8EFA31D22DF18E3AA7C3 +:10CFD000FE9CF54EED08C8355145FBD1C5EDC7C6E1 +:10CFE00030B513297E9D0A311C95E06F200903F0AE +:10CFF000D629F0FD7F845C49E957D61C69F6AC1848 +:10D00000F4A4EF4FEB65D67F0DA5A7343F4C02F992 +:10D01000C93948CC75E8CF1029EC1B09A64937DA85 +:10D02000D5CC5E065A657EA1DBD3F6D3AD5A05C9D1 +:10D03000643F8B84ED93812DBE2C1ADA6E78BCD8B8 +:10D04000C6BB321DEE736EE715B5A3669BE2B3B5A2 +:10D0500013C951CBBE6529D0ADC52EA476D4F342F9 +:10D06000365D8FD0552446E9AA198AE8BAB6F0751C +:10D070002731479A9E73861CC8C7538168412E8604 +:10D08000195DC98A9EC441C2E74667A63C37F5BC14 +:10D09000C51EE804BA53B87EFEBA10BDD341C769B5 +:10D0A0000BAC485AF1D32893154827DA9558AF6D41 +:10D0B000FC3C6D51798ACEDA6CF834FD5CCD0D09FB +:10D0C000DC1F108DD9D97228827098FAC60E974944 +:10D0D000BF83E396B2FD8D53E94479E5EEBC4B077F +:10D0E000FAA5DFF8BE85D32D156E401F3FA129A3F9 +:10D0F0008F04975FC3D0AF766E767F86EFD9B05F2F +:10D100005CF1BA93809C5E1CFAA0AB742A21B5F541 +:10D11000F9F742BABC7E4A9748D343ED257EABFE71 +:10D120003ED4BA14F3471F1A8FE9A1877E7003F02B +:10D13000C7F16E9786B6E2E75F7EE9A4EB5ECBD7D8 +:10D140007DCF032E9467471F161260672C6F158CD6 +:10D150002CD8F705B4C228C5C3D1B6E58524837D94 +:10D16000507B802AAE6C282F2A2419F868796BCB63 +:10D170005AD85F2D4F48BA6EC1CBA07D1EA89B0820 +:10D180004CDCD450F6E0112965C7BE0AF4978BFB3E +:10D19000611DF59712417F41F57B9786FA69FE6123 +:10D1A00047EC159057F183978460DCBD8179680F57 +:10D1B000DFF2AE2B02BE967572DD44D502CF3ABFC8 +:10D1C0001C4379EFED4A5B873D0E29CD2E31E132CC +:10D1D0001E2765541751D03C1110DC73BC54BD8020 +:10D1E0007FB35FC0FE9B389D0D911BF553BB440B75 +:10D1F0003D51FB92685E9453380F67194BCDF2771F +:10D20000B93EEB7738118E5F3962FD302F906BF5A8 +:10D2100039C08F955DCC6EF4AAB86F27E9FE86F50C +:10D220001731385B044F6403C55DCB24BEBF207546 +:10D230006C5F2AD611D82F357278E784EB9242655D +:10D240006A1EC3D16347C3997BC0DE6B69205D90C2 +:10D2500076F8FA8107C80631A24759FF0AF88736DF +:10D26000282CDFD4A060BD96F0AD4A2DC5F30695FD +:10D270007D6FD16E6179CDCCF3729DE783B41CFADA +:10D280003558BEAD4165FD046F65DFC914562FC426 +:10D29000EB910A9E37CB2BE7833DD1526A965761BB +:10D2A0001E1C4420274CFDD052CAEA6F6A0861FF59 +:10D2B0001BBC91F97A39277E6BBD32D68FBF7E3A7F +:10D2C000E23D554FB7D563FD99F84AD533D2EB957A +:10D2D000B3F90FAD4784F47AB70E57CF91562F723A +:10D2E0004BC6715B22E9F09829A5A7F39C16FA7644 +:10D2F000013D4D45F93F1FE4ABD320CA8F2BC06ED3 +:10D3000024F162CAC7339CCC4EAF37E9354CC42AEE +:10D310005AEE2C25E2C539A97EA8CDA9E0F732A2A4 +:10D32000A47D57ED7E86CC746B3CC0E85632F92B59 +:10D33000C8ECFC91E892CA892E11FDFAFD489F12B3 +:10D3400049E72733BDD4C9ED7ADBF874BEE4C739A9 +:10D35000383F9477E4801BFD91CE209D670E9BEFB4 +:10D36000C51596F984E83C73D87CD3BE87D3E769AA +:10D370007E8F039F49A9FC0FC13807BD10AA503406 +:10D380006FCA7EAF7EEF9A109C033481FC2A1F2A5D +:10D39000BF869B7F5BC3F1AED2F140C7FD987AB8E0 +:10D3A0009C688C54A820171BBD2249027F8A510219 +:10D3B000FD4AA575CB719F7BC08D7E45A59CDBCBBF +:10D3C000A554919194BD2D053BC9720BFDB94DB982 +:10D3D000FB7903D2F3462F631577FDA9AED25143F3 +:10D3E000E1F2843E44BDB4CECFF61BF6F26B9D3223 +:10D3F000976FD1DB9D20D7EBCBCF2AD78CBB287D75 +:10D40000545AE52F5BAF4FE87AE1BEC66BB832DA0B +:10D410006DF527EF01FA7E00FA9A0678BE00F1DC7E +:10D4200078701DE2A1F15D371A597BE1BCAA7264E4 +:10D430007C4BF56350CF523B01D3C1F5A7721DED74 +:10D4400004959FA30509EE83C1BE003CC2F077544A +:10D4500040FB42D63E16BE17F0361C7E5A06F1A39C +:10D460003FE2CC3D0B5E7692B73DA0970EB85438A4 +:10D470007FD9FBEE0C1CFF96838C6F289E106F9F4C +:10D4800050BC811E37E923C53FCABD40378D0D030F +:10D49000483F591C5F83F329B7CD27D49B44FB3DFC +:10D4A0004866A07D68968758797BC3992E76CEA66C +:10D4B000DE0B6956790CE7EF0D4790FE06EB8769A6 +:10D4C0007D9AF834DA5F10F96C06CC6AB05C63E5DB +:10D4D00059E506817D9E1CA4705AEC05AAEFF70160 +:10D4E0005E94B09AF6DD1362781D0E5FFB0E4ECC93 +:10D4F000EECF80EF14BF6A284FDA40CF49785E54F0 +:10D5000003FAA51DF41FCE4BC1EF9BB9DED804FA78 +:10D5100009F8DB59C4E48BC8F68B6D8470FF994A17 +:10D5200094E96C0F02F90E89D1AD582626B6097020 +:10D53000BE632071B489EC7B5BB99668A45D75B855 +:10D5400079BD08496C2B62FD00DF896ED68F9F0C78 +:10D55000E0F9C8A01C50EF467DD111D099DE24DD42 +:10D56000CA2D902FE279B113F33E59C7FDB65BEA9D +:10D570005431EF61797BFF76BCB80377ABD0BF2F16 +:10D5800087B717BA59FBE2F4FE3A6436DE4631C17A +:10D59000C6F7E8DC3E387BFF1BD56D0CFE1CDE9E1B +:10D5A000F4B0F6C5E9FD0DB76E9E52BA5E16F9AB42 +:10D5B00084E93AA5D997095C1F6FB99A562FBB2AFF +:10D5C00094566FEFBB1347F75BC6D9D75F72567A95 +:10D5D000390AF462B1FB8EBA63D79300DD9EC6B3FD +:10D5E00066C567D2BC142B14687EFBDD910DF32F4A +:10D5F000A2767BFD07F7809C5BC6E5C8F2FA4F91E7 +:10D60000DF96B52F96411F2C4B08287F9771395113 +:10D610006B9030E8A7B9A2274D0F53DD8E7AB8364C +:10D6200098AE9F6A55A69F6A43E9FAA9F621E96870 +:10D630007F1A3EA81DEF83F14F7659E5D8F2F61F09 +:10D64000201CCB093B975F0EF27D2AD48F15D6D0D4 +:10D65000FA336001A7817D3FB110E4ED21417BA445 +:10D660001EFCE9377AF0DCD28E1FF35CE561332EC5 +:10D6700083EB8F65B6737E7BBA8CEB0F22C610CE20 +:10D68000AF3ADE74E027CAEFCB4CBD45E75B3329E8 +:10D6900035FEA120C3C5D760F141BE8A141F19CE43 +:10D6A0006906F107F2DA8AA7AF88B7088C330DF064 +:10D6B000C7F070AEEDCDF25B01EFE9E7405F03BC70 +:10D6C000FCBDF474478A9E98DDB3C28376CF3F4E8B +:10D6D000574CCE7ED5757ED8A1F275A0F39A6459C9 +:10D6E00037DB7A99ED6EE0F8FC3138777387AE93CB +:10D6F0001D4F8756781C4E6ACF1EDA3F17F7F30F7F +:10D70000CADAF520576E04FC4D053C32BC1DA5FA63 +:10D71000306EE1E765ED3F78A58AD25B6D6B2047FF +:10D72000B08C5FDB5AD41CA2302D7B28500126DD43 +:10D730008DAD0CCFCBBBDDF7C62DF285E2BB14EC73 +:10D74000E96D9CCE86E0BB94E3BB3CDD9EAE2D63D1 +:10D75000F6746DC486EF44667CD772BAA1F38CDF91 +:10D760008DF39C9DEDF6A6F0B438948F7AF141BF0D +:10D77000E607797D94EA3798E7216EF71FEE9EEA77 +:10D7800007FFEB2191E6BD909FC6F20ACF3F44CB45 +:10D79000A17F2FAFFFD034CCDBD7D3BE1E8B07F5D4 +:10D7A0003183D39815399EC0782557A4518338A06A +:10D7B000D88B22EC5BFDDF5881713594C1C19E7B13 +:10D7C000D03FF3B79A06ED32EBF1FC3AF190D5DE9B +:10D7D000F6C568DE6A0744D2CB2562C91759E8143A +:10D7E00046986E3D9F4F70BA21E4C33C766C0CF4B2 +:10D7F0002BF5071683FFB65A3374B04F3E093A34FF +:10D80000B0A786A36B20C041BD82702B9DA2C52FFF +:10D81000D7142C3EEBF94A6343FF7DA265DFE0A4F9 +:10D820008640A4DCE237A83F7A1FD0EBBE203BC77E +:10D83000F8C4AB6E75E1BC36D8FC1789B4BCB37EB6 +:10D8400032EEF7CCF97B06CFE78CB4738E3677E7F0 +:10D85000DBA0B203FE751B2E057F9B79FE5AD635E1 +:10D8600078AE8876A77FCEE31B33E0014F36E0FC2D +:10D870002FB907CF6DE82E8480DFCA47ED4888D7DF +:10D880007053DCF6E1BE24A1003FFA2A99FF4D92C5 +:10D8900034BE2E51F4AFFA380E37563EAD82FD78C5 +:10D8A0007A6C7A3B525A96568FF427E697005C932F +:10D8B0004466739505F9F97FE4ACE7F062293BEF24 +:10D8C000154B5BFB582A62FC92E5FC374702B8AE69 +:10D8D00013329FF7979DDBF9EDB9D6BBBB2171CF12 +:10D8E00011469468BFAFA3140D710B5D0D3D18B7C1 +:10D8F0009747EA04B0FFC4F99124D0E86D8ED804AC +:10D90000806FD4E5558B803E4F1F14D0AF275C5EEF +:10D910003F11EC979CD1DA1438926D9149321AA2DA +:10D92000F92C6D17ECF816CB91D95EBA9E39B05927 +:10D930002820A452FA6623C4F1E49468531CB0234F +:10D9400034BE31FB75A83F46FB18DA37B74E9F3D12 +:10D950009FC29F339160DC0F3166CFD6A1FFAFB37A +:10D960007CBD4CDB7B53764A2BA56398C7A686E328 +:10D97000F701DC174A6C1F7E11ACF334886A32D091 +:10D98000AFAA507A3E32D51217587FEA3EF49386FA +:10D99000D8B9A8E9EF783337360BE6B92ADA3F0F62 +:10D9A000BA707ACDF3CE4437C49398E7DF73690138 +:10D9B000F2E91DDA3697E57CAF4E4A3F778C53F596 +:10D9C00062E53351B9FC0180E3D15CD28B71122E38 +:10D9D000520774DFDC10417F24C5198B8BE4F07C87 +:10D9E0005762E774943EBE0B7089A168F24EA00B9B +:10D9F00031867411978CEC8BE15CF43527DA2B328D +:10DA0000A9233C0E0CCFB3D0FF4EBB5829F1FD83A8 +:10DA1000AAABD595E0CFCA9982F47B47D5838372B0 +:10DA2000A418E3D5BA71DD9A76CD92F2313E0BD7C8 +:10DA30006DA9F4CC06C0FB4A89EB5152A700BDBBCF +:10DA4000E8DA1DAFC038B2A42B07BBE92ECDE371D5 +:10DA500045B43F57D071509A3CF279AF1C8E3E606E +:10DA6000B59BB334CD01FC572CF2F8CDE3FF4CACA1 +:10DA7000F13B5D7C9DE30DFB918ECDEF52909D2798 +:10DA800048B1D7EF013C970AB13B91AFA87D412C3B +:10DA900072580AB238A271E4CAEC2445CDB8039793 +:10DAA000EC07BF7173C300D213E95C8076C138956F +:10DAB000987F48276E9E7187D9798F9BC749B9EFA8 +:10DAC00010FF62D50FF638A876C917C4F82D5B1C75 +:10DAD000A2525F82F460C2EFD00C02FC64C63FDD4C +:10DAE000C7E59559AED44FC0FAAD0DDA0300E72073 +:10DAF000BC7CFF33CE941B9D97A1DC2AE03099F3C8 +:10DB0000DBFB6E8BD14EE9652B150340B75B5738B5 +:10DB1000908EC78DA782BC28C5576E83CDCF1CD7EA +:10DB20003EBF9F71FC3FD6A0DE0FE3F7000CB9901B +:10DB30000FDD0F7C388E0A8D5F425C61F70284C373 +:10DB4000C423A5D148928EA7BDE98C009CA5454968 +:10DB5000F403B82374BC0C78240F8DB00EC6575B49 +:10DB60008717A5CCF1A0A49EFE51384BCD513EA7FE +:10DB7000A5D3B908D6527830D7C5CCD3FD5C76FF93 +:10DB800059E8BAA541BB1FF7F90D65F7337FF536A4 +:10DB900005F8C015260990FFAE3216C7DAAADD4295 +:10DBA000DC142F1BC344077B4FD158B9C2CBE3EA27 +:10DBB0000656AEB1725165E5222F173BEBF61755AD +:10DBC000A2588880BC0E192C4F1714FD2605E1C7FA +:10DBD000E617E164281F50FC3DC2E75560D4F555B7 +:10DBE00083BD58C7FC215290F52B95713EEA3494C1 +:10DBF00062F0DFC569BF96F60F71341519B41CC603 +:10DC000059C1DA9BE50F9AEBA3C58559B84EBA8284 +:10DC1000F0B43278CC7ADD1C8E62B35C4FEFA79300 +:10DC2000F753A21E21D5901AD1F910074265545A14 +:10DC30003F9B793DAF118D827CA30DB1DC1BBC45B0 +:10DC4000AFB6D46BE7E3C51B220F009D961ADC1F0D +:10DC5000A95CF600EA035EAF85F767F2D9B6061D48 +:10DC6000EB271AAA30DFC4E3DFC556D65E36C82CD0 +:10DC7000D0534199C96B7B0AFC10A2F2713CD85079 +:10DC800014BE9252CA6F02E3D73BE877773BA76393 +:10DC90003BFD139AA7F45B48FFB87D2A80DC35E989 +:10DCA000CEF427EC3B38238D0E493DA53B8B5C27FA +:10DCB0007565E9F91591F47CAC2A3DAFEBF70FCA15 +:10DCC00063C857CD4F2F8F44D3CBC33569F994FE2A +:10DCD000D3BAE68C8738967EF4DBC573B502D81FBD +:10DCE0006CCB65F8DBDC40D03FF813EE676E053F88 +:10DCF000A194F2F3353784D0CFB7B1A1FF1EE82746 +:10DD000050FFF52E88F77E00FC8AF4FB16F003D254 +:10DD1000EF33399E4D7F37D597336590FB33495AA2 +:10DD20007C8B694FC5DDE45AD89F65C57A0587C5E8 +:10DD3000FFF26D99E9EF80B93F1455C1AA77BE2D66 +:10DD40003BD2FC24244CAD63DA7F13EFDF53D68B38 +:10DD5000712697CB01669F523D83E7C81AB5342CD4 +:10DD6000F192500FED51AE874A05FDDB006F3C97F5 +:10DD7000C2550EFCDFA983DF327F058B6FF246FAB6 +:10DD800074B80790AD6BB81FF457C5604F47F131B9 +:10DD900019F151B024DD7FA9CEA478B1C8BD788037 +:10DDA000CD57E6FBF431DCAFFEAA73D6F5F234B002 +:10DDB000DB985E6FF42DCB07B8FE9718AD85EFA307 +:10DDC0002E6F45385B40A14F037AED44FBE2D1F959 +:10DDD0000BD0AE702F5030AE835C978E678AFF9B5E +:10DDE000A0BDBB949D7F8FBB83AD8B390E1554F9BD +:10DDF00040C70F0AB1B5B84E6521C56A8729D15809 +:10DE000012FAB1C3F56B59BF95C1CBE0795AD66F01 +:10DE1000B3C24F09391FD6772C891970C43996C3FC +:10DE2000D72C6BCCFEB1C12992A80E7A30E7B2EBA9 +:10DE3000502E8B0B58DC21A9C91C8F37DCB9FE543E +:10DE400087DE22E3BE8E9D83360BB14D90771D7029 +:10DE5000617FAE308FCFE2F19839A33A43532C74EF +:10DE6000F7734E5783FB20C2F7874E936E09EA5132 +:10DE700009F294BF7A6416F74FB166649D0FF637C6 +:10DE800035EC41EEB5C8781F64748CE03EF2C126D3 +:10DE900019ED536945DE6288ABA23C9CC4F8EE786C +:10DEA000339E939BF6A2C2D7D5437A31F5923E7644 +:10DEB0002F84FB8155A2E27EE04F8BFA6F83459A57 +:10DEC000ADC47E06EB76B3121B07A1641F8D8DFDDA +:10DED0000C60DD09EB42BFBF26EA4FC0FC2DF57791 +:10DEE000A6D597587D6ADEFD1CBE6713FD1748074F +:10DEF000C3C4B95BE24DCF782D74429638EC74F709 +:10DF00004B185786FD9DD3120F728EF1AFC03A6742 +:10DF1000EF9FD1D190FE79FBBBB2FC32D86FF7678F +:10DF2000F95F01FC1F5AEF427FC37B0E165F628EC2 +:10DF3000B767BDAB10E4757FDB448C63D8DBE6F2DA +:10DF400043BBE6FA12BFD51FDCDF5A929D29CE6192 +:10DF5000B01CEC0B2AFFFE83CBBF4340E7345D24AB +:10DF6000AA32ECE7171945F75BEDEA4506F32351B2 +:10DF7000029E07F0BDD7542D59F7D7E6BEDADE2E44 +:10DF8000E5EFEA1FCBEE39707CF138BFDA2A136176 +:10DF9000DAD5FF41517DE37E89ED8FB91D65E2F34E +:10DFA000D06116A776238F5B5B42A27E28FC88385F +:10DFB000D00FF411F99D7FAA054F7F9365364EABC4 +:10DFC00084FE1783FE07FA6569A794E68F59DE9DE4 +:10DFD0009E5F4616E6C1BE765997441214FF37DAA3 +:10DFE000FC33A7B8BC584EEA9A613FD8C4F9AE5684 +:10DFF00025E228AA8F573DF7F07490DB928BF1E56C +:10E0000009BA8FD35C29B8567A13329C831FDE3D40 +:10E01000F5AA0B09B44F3417C0FE304032FA8D1701 +:10E02000B7A6C33712FC76784DBFCB7070883D6CB5 +:10E030005DEDE38E720969F15923DDFBBBD0A5715B +:10E040003F1AC978EF6FA4F6DF7431FEF87BDBCF9F +:10E05000FE07C7BF6484F15B834614E4D8201F2BFE +:10E06000BACEE42B93E7ADA111CAC3B4DC7996F222 +:10E07000D2B3B7873828B85FA4C327DCA727C7A0C7 +:10E080003DD7C0EEB1BC2045BF0DFEB6177EEFA454 +:10E09000961E4D03641F5C3131044103BF83AE7E85 +:10E0A000271BCED3F5379D414711672AA8FFF1FC06 +:10E0B000C7808F2F77495CBFF639A15FFDCFEA1C7F +:10E0C000B04B5F90926302944E66FE1389019D5798 +:10E0D000FF39B918F073D1408D0424F2EA8EBDDF08 +:10E0E000837E560ECC13217F0DEFE7A327774D27B4 +:10E0F000B49F1776FA4812E49C9890C14FB672B755 +:10E100005387F8A69B7EE1433DB3F2E955DB17D078 +:10E11000F185E77C08CFCCA797FF94F90B1BB19F43 +:10E1200095CF5E91BD85CF8BEE6DC80BEBB99E335D +:10E130009263E05EC42A17B901EC13130F26FDCEDB +:10E14000F6568B708F6B654F00EDA041BA1769FDD5 +:10E1500072882E25372CCCB0FFFA27CEB71F7ECC85 +:10E16000E26E859E3DD7E3FC7AAFC6F90A4410DF24 +:10E17000A7E3FDC02599F5701EC61342623C2DFF32 +:10E18000F00981CDAB77D25677118CBF55AE45B92A +:10E19000C7CE7F4C7867F754C781EF67AB81625871 +:10E1A000F2D9BFD889F27B4D8F3309FB279AE23E23 +:10E1B0006A8ED7997E8F8AE85E81D2C16A149934BB +:10E1C000DDBD0AE5E2EADE4D782F68CDF3E9F280A5 +:10E1D000E23992A4F0DFF49633B200F2FFFC33BFD1 +:10E1E00046E139D1F7B81FD6838EB348A67CF0CD6F +:10E1F00033E97E6AE8FF4CCED0FE0819C07B3E6B47 +:10E200007ADBD878BBBF750CEC833536B97302FE68 +:10E21000913F741FFD5357BA3FE333F2FA74BCD7F2 +:10E22000D5332AA39E1DBCCFC5E5D04D3B3F7BC453 +:10E23000A0E37FF8F4C947E01EC6CD7FFBF491DB75 +:10E24000615FF7925B05F9B9E6C9F71FF931C5EBD4 +:10E2500047CFBB1C402FA75EFCD94F1FA4F953EF3B +:10E260004CAC1034A01166A79FDAF5D73CB897756F +:10E27000EB8B7347031E6E7D66F6E8B3E9CB5394D0 +:10E28000BE122EABBE4B603FDAF3B4BFD134FB02FB +:10E290004F6DEBB377F7DE4280EFA3B759FCC61A98 +:10E2A000FAADBE02D66B15C6AB431EF671AB77B4A2 +:10E2B000A01F6228BE8D318E10E37708CD5FBDFBB5 +:10E2C0008A6F5F5409A91401F1B0860CA01EB2B781 +:10E2D0005BF3265DD7F3875FC7CFC8E732E07DCD1C +:10E2E0008E36366E2F5D47FFD075FC08FE71C1D0AB +:10E2F00075FCA36BC8FDBC4771EFBE3B733CB6B960 +:10E300008EAB9EF9EE59EF019EB2F1F170785EC1CD +:10E31000E37277B8F43FB9800F9FCE3242B8CEAEE9 +:10E32000C4025A76AAE9D34242E9E3B834703DF018 +:10E33000E3C08B2E15E21A16BDF8960C72EDD4339D +:10E340006FC81ADE4F235E81DA69A7C8E05F1FD865 +:10E350006D782F07F0F8982F097E8DD577ACC0F532 +:10E360005A9DF8CE7CCD8FDFD17FB23AC1F860756F +:10E3700062CF954286F59BA8E430B99AC835CF3371 +:10E3800006D753A882753C380FE86EB87534E7ADF0 +:10E39000C2BC6758D6D390906F87E3CF535B5D22A2 +:10E3A000C453AFE1FEAD3577CCC7F535F7116B122D +:10E3B000C25B99D6DBB417BEEA7DCD2225B39FD2CE +:10E3C0009CF7487C3DF2BCBE1ADE5460FEDCA1F82E +:10E3D0005BDFE442F9FCDE1417C6671D94B4FBD77B +:10E3E00051FE1C784D22DB6893EB2B8E495A867BBD +:10E3F000357FB4D94F37D40BCDA369BB1B0CA65FB7 +:10E40000ECE759B13B9C44B3E067B56BE03D8867EE +:10E4100025BF76138CE37BC98DFBAE358FB8318E6B +:10E4200079EF33A77F0A7AE6D4A32EC2F41F8BBB01 +:10E430005CCEFD97C79E39FDC8FFA5E5C7A0B10614 +:10E44000F5D71DFD11D0FB4F0402A6CB9F9ECE9E9B +:10E450004C28BFDF44EBC279F8F25FDF7E39D02B66 +:10E46000E4E1FC767956EC7AD0FFCB7F325A8038E3 +:10E470009E359EFEBF815C3AF9CB6C5801F2D133D8 +:10E48000A7A7C37A9D7CF6B9C9200FA95DA959CF6A +:10E49000296FB4BE4361B1FB6FEAEDE803FABF092F +:10E4A000CA597DE14BCE3B60BFC3F860AFDCF47C62 +:10E4B000B6EE9E9C560FFB59E31AB80DEEAFD3F59E +:10E4C0002D70E05E205900EB7C534FFAF8CB14A678 +:10E4D00097D7C803CB58FDCE02460F7DD8EE070A6A +:10E4E000B357CD727B7BB3FE5AA538AD9ED97E352E +:10E4F0009CA764A0F77F5298BEB8A9E78B8999EED4 +:10E50000A50E1D877DFFA1400CF0C3905D6EDC570A +:10E51000DF2C2727E494E3777CDFC0CC17F0712150 +:10E520000F76D6AF387FDEEC61F967F9FD829BFD8F +:10E53000340FF02AFD3F07BA59F59C1BE3EC57FD59 +:10E540009ADA5114AFAB9E7D15E3DE57FD7A1DAE0E +:10E55000FB2A5712D77B60978B409CD687BB5EC344 +:10E56000F20FA564218CBBEA05F741EB3D49335D11 +:10E57000D5EBE29BD6F4F9C0B92FF831E3FCBCCC63 +:10E58000C9CFFFE0441BE687E7D1903F3016E30791 +:10E5900086B3B7934A11DF4F30BBDBB4AF9BE03C8F +:10E5A000061CB88A4154CBF9B64858FCEAFFB1D1F1 +:10E5B0009D2CC554D8A7CA804FF0C38AB156F0032A +:10E5C0004BA1E014A0E7E6D0428CD36D2F57A700F3 +:10E5D0007FBEC4E9C745FB47FB795F17DEF350C236 +:10E5E000E22756B9E15E928DFA98945ABE17E3512C +:10E5F00003C6497ACBE977CB7ACBC1FD69EF62D804 +:10E60000E3027E3578AFCE70023F5F631E40000AA2 +:10E61000297FBC639E0F8B71561E308BE3AC9CF33D +:10E62000FF9A5AC6DF7B1765231E4D3C5CF3424BB5 +:10E630001FDCCBBFE6857CF4D35CE39DF83EE0F5C0 +:10E64000573C9ECF08B890FECE7F217AC5B768FEB2 +:10E65000FB2BC6A3BC2AEF8D5E3689E6AF5B5182E9 +:10E660007EC17ECE3FDFDBEA3024DA3FCA66B06B84 +:10E670007F24E07ADE00AE0BDA7011D164B6294F48 +:10E68000B0F80DD2EB63F9DE5C88DFB7B4777AA11E +:10E69000FD5A01CF3DAFFDFD9B7301877F78F3509D +:10E6A00013A437BC4EE42C3AEEA2DD5A3373DBF0F0 +:10E6B000FE5EA0FD3952FD0DE24F54101F29FC28CB +:10E6C00088AF7706CF770C0796A7F08BF1E8267E08 +:10E6D000AFF1BD7D2DE0A5D14DE9F07CC84FD84705 +:10E6E000FC43E9DF6E77D8F1FB6728A2FAEC84A23D +:10E6F000FF4DA1F87A43D1BF54D03F35502816A31F +:10E70000BFCAE9A6ED563B63E3F24AD0BF353117E5 +:10E71000E8AD2FB37D9B1A8FF1D93BC478B11FE5CB +:10E72000673B9B0F7F2FC584FB1DC2E4FBA7508571 +:10E73000F6F78E9FCE83C2F58EE86D0538AF25BD06 +:10E7400012D0F775A40FD3EBC900A631A2CA90D698 +:10E75000C2031225E83FC194C29BEF46F8FBD10EDD +:10E76000FFCBA237DE13603D5F3FB77B7543524559 +:10E77000214A5EEABE4E6DFFC70D005F2D251FD0FA +:10E7800087B03CCCCED064F007D51EF8E00B6B39D7 +:10E79000192C67E72983FD28EC7D074BBD343D83A9 +:10E7A000F5844CFDD07C5ABC8B3DCFE0B07FAF559B +:10E7B000D87B1619E022461ED0BDF9C7DA1F117AA0 +:10E7C000CF83F75A2E6DDB36A795EA93A772FA0A24 +:10E7D000149ABFACEDA7F17898909D74FB07E7E120 +:10E7E000343FC7980979FD7AD8872E1629AB58E2AD +:10E7F000AB16BA99BE59E866F7D469B901E597BB7B +:10E8000099DF09DE5281AB6DF0664F98CAA3433B96 +:10E810002A7E7B9E36FC3AD5B67FE9D232E827A223 +:10E82000132D389DDDE3433FC32B11C3857ED528CF +:10E83000CAC7AFEADFCD21114C83248AA919071278 +:10E84000229D9816905E4CC3A40FD3423280A946F5 +:10E850005407F367307E2B2611CC979228A63B8B6A +:10E86000D8FD8B438227027A6C243F4EDC5DCCFDC1 +:10E870008D756FCC85B8AD7F774E81778D4C3D63BC +:10E88000C78F53D9FE40DC7AAFEE0905F7FD3BD7C1 +:10E890006BB83EE6F7B89BC9C7B89BF94B77AE6734 +:10E8A000EF351C7A42896CA3BD1FF6113940E1385F +:10E8B000DCF156319CE398F59ECA61FAFBCCC1E7C6 +:10E8C000CE837397EFBAF52637C29744BA35E96815 +:10E8D000B1E265E707EDD28756BDA3B9A31DC09F7E +:10E8E000FB7FEE41BBF596BB04B45B8926209F2DD0 +:10E8F000E1EBF7544EEF0988633236BB3490D74BC7 +:10E90000DA5D07613F423AE7EAD6FE1EE6F4453A91 +:10E91000EFC7F3F12523DCF75C421531D09FBD1F13 +:10E9200042C606C0DE47DF4A9A3C60FE5EF39D2F7A +:10E93000F3BB4253BC9F58C3FC9C5B9BE4E256BABA +:10E940003E5B76BA503FFBF97E6E37C79BF61EBB27 +:10E950007F90E0FEEF935C0FFCC2CDEE9F99F576C1 +:10E96000F375A1F46C7F676737E04D366AD8BB3129 +:10E97000FCFC2E2177D6001E4F3EE1C2776D26EDBE +:10E98000B8FA26903F937AA8DD44E9E71E2111C228 +:10E99000F781C6CA11C063F579551F43FEA61EE66E +:10E9A0008F9FD4E3D201AFBF73B3B8980989B5B3D1 +:10E9B000285B93969D5B0BC09FAF41FC18F377F9E2 +:10E9C000D9BB58D1B4FBC627C2B3CEEA9707B56509 +:10E9D00058E2F180F38C34799563CB17D8EA17A706 +:10E9E000958F81B3402A27C67849D247D39D1B8C87 +:10E9F0006AB00B5AA822007E1A0B8A93AEEF182A2F +:10EA000067E0BD263886F1D0344CF3B075A5E5C477 +:10EA1000C9CBB369BADDD13B1F16FDA89BD971AA3A +:10EA200038F05ABC08F8BC55A8F35AE7DF8BFE252E +:10EA300073FE2B79BC2DED8740BF277BA6AA80876C +:10EA40002E595F0BF09C1C2B6B702FB07CC7E9EB31 +:10EA5000611D2685E7DD08EB72AF14C5B8B1133B25 +:10EA6000F97AF54C5C0AE5F7CA09BCEF49D763119E +:10EA7000E4CBCB4842C234590CEBE3193C974F60CE +:10EA8000FCF4461FA3C7493B46A31EA7EB5308E768 +:10EA9000B32DCF508451BDDAF2C4BA1A1DD7CB8B37 +:10EAA00076D3CAA086EFF1905B795C1DD735A2873B +:10EAB000F30FA7A713D03E7BE83A52FA133D96FD19 +:10EAC000E0CA9E45E8C79DDDBFF6D5B11047A51148 +:10EAD000F4075139A914025FF43821C685EC048487 +:10EAE0004379424EE07C69D69D83A9E183B426FA3E +:10EAF0003F00FE7C91E5293E75E0CF49076EFC089A +:10EB0000F050EC6174F9143154909F27C2B7FCF1B6 +:10EB10004EDADFE61D02BED6755A62EF5FADDCE16C +:10EB2000C1FEAB7B84E437693EAF5D46B992BD83DD +:10EB3000DD933D1D88ED8173E39561B81349E917B5 +:10EB4000EA815FB3D583F13E737A761582BFF2E432 +:10EB5000948110BE53E0D170DC2D5FC4F2416E96FB +:10EB6000D6C849789FE1CFFD53AE7D99E0BC0A56E7 +:10EB7000C0BCDA3C282F819E940AA433E2AF807B8C +:10EB80002D550FC63180A313DFE332F1D626517E17 +:10EB9000A57A74F2C6E2B94188F77423C993551B6C +:10EBA000E736413CE0C967E87C28BC27CDF76ACA54 +:10EBB0007AFDD6F7C066F0F532F327DDBC5E69AFAB +:10EBC0009FBD4FD4EB87F14E737B77E56E250174C3 +:10EBD00058DDB3EBB7DF80F9B72BF84EE0E9779F4C +:10EBE0009331FE06F0733EE0252600A99C0E2464B6 +:10EBF000986F5ECF56F46F0FE2A5A31EEFFB6EE495 +:10EC00007869F982D221E0A5C79584F717EE91FBC8 +:10EC10001C200F8D6709EE9F4EF07BC527BFF5873F +:10EC2000438F51506EF004F8BD9DDE4298CF3DB049 +:10EC30000FF4A6E05FA9B2F8B6EF7B98BFBDC6C3DC +:10EC4000F6375779B83C2C1F220FAFF2803C54A204 +:10EC5000C938ADB221EB723C7FBCC1C3CFBF955E5A +:10EC6000E4930CEDBE0F742C2FB83619D752ED2853 +:10EC7000DE0AAD71B92777AEC37BDB254FB2F8CE84 +:10EC8000EA9EB5F84EC4CA1DECBED7F0785B8B2C5B +:10EC900037279C28B49E5F9EE8781EF7AB26FE4E71 +:10ECA000025D79537465E263924892F01E1DF1464D +:10ECB0008A014F77F2F99BE584448ABF6BD1FB77D9 +:10ECC0007A98DFFE1E0F2F2F63ED52E5BCBD9FDF4C +:10ECD000EB2FB59733BD73FA5D365FCA1F9A13FDEC +:10ECE000FC6C7ED5E1C8078FD1EF79BB19DD98F3B5 +:10ECF000A3FC2400FCAE9A848CF3ED598BF7C35B24 +:10ED00003A7AD2EEAB9FB0F10FD80D2037B698FA11 +:10ED10001482FE291F841512572A32E90F76CE403D +:10ED2000AA8268BF9B727C58FB9DD71BD1CE0F5126 +:10ED3000036D7A2A7E4EE6E7EA6FE6C6B6027DB834 +:10ED40006AFA64706FAEEE1266C1F66DAE7301C6FC +:10ED500015B978FCBFBDDF7B1A1478638A241AA822 +:10ED6000AD341EEF53637ABC218469578386E92F43 +:10ED700039FF7AF8FB301B391EDA78BA8BAF8799E6 +:10ED80009AF54D3B562C63711C625933FAA9C45253 +:10ED9000F61E9C25DEE797003FDD20658CF7A10578 +:10EDA000028FCB7809EAE5F1388FBC1A1697B19932 +:10EDB000D3D929DB7B85AF703A7A85C3B5DDAD71D8 +:10EDC0003CB2780257D8607C1432E3C06385677B1D +:10EDD000CF87E2BF5FC88CFF3780AF57751E9C9707 +:10EDE000AF41DC0C8B3B36E38CFF3C9324CE761F8B +:10EDF000C0BE0ED90BD8BB176D0D31FC7EBC6105B2 +:10EE0000A65D0D7558DE2C44DF033C64CF3CFBFC53 +:10EE10000FF375386ECAA3739CE77677F48487EF97 +:10EE20002711FFA1738CBF38C77A87207E7D7C6A4B +:10EE30001F7104E2D6A5E1F713C62CBDE235761E9C +:10EE40008CF7426E73C4BE84F99FBE7B259E9F885B +:10EE5000AD5392E086A4763DC9A2DF6BB3B5BFB0D7 +:10EE60001BCBBBE6BE4EF781B52EED59C8D7CD8C76 +:10EE7000CF85F8F4DAD1DA6DB04FACD9D48AFAACD8 +:10EE8000761CC1F8F49BB392A8CFFECDA3BBB370A0 +:10EE9000FE5200DE5531EDEBE1E795FEAE4A0B3850 +:10EEA0005318BD18D678574A277959FF009DDCCBF7 +:10EEB000E9C3A497EC2B4D3A514DBA2882FE47A2E4 +:10EEC0008B09598C1ECAB2187D44B354AEE7185D45 +:10EED0008C72B07366FBF8115EFF1EBE0FA072ADA0 +:10EEE000D52AFF4C7998E76471F17BAE7DF25AB078 +:10EEF000575C3D138A615E4F8E4D14C0BB031E27C5 +:10EF0000F3B73EF9D7ED050B21FDDA9305B02F0BD2 +:10EF100072F9D225D585E05CB83CFC97EBE1FDC5E4 +:10EF2000F20524311EECCA05C9E2A2C91639C4EBA8 +:10EF30004D0AE72D86F3A028872F6577D6E1BD150A +:10EF4000D3EE24621DBE53DAC6EDC5B6B17FA9610A +:10EF5000EF2678F9FB6EEC7D2B28D7CE4FF537786E +:10EF6000FF2325AFA240678376E91079F58FD1CDD5 +:10EF70004F3CD16BB17F2EF7FE0BFA5B82F42CC6AF +:10EF800004666FFD63FDD175467D06FB0899DB8F36 +:10EF9000F0C4228944CEFBAF80F7FF55FB6C1233DF +:10EFA00042607F43DC1FC477B7AF27C0A754EF741C +:10EFB00000FEDC5D5B0DD0AF5964E015B0AF4CBE18 +:10EFC00092C7317A37FB7D3C8BD9818F6799FB14CF +:10EFD000B6279B30482784B4D33C5C9301F9359124 +:10EFE000DF1F2B239DE86F398FF4625A4EFA309D54 +:10EFF0004C06308D10D50969058938793CDF744895 +:10F000006F56628FC2567CB612DB067403F17CE049 +:10F010003FDC90B5FA1B40AF3FCB32E32B9369FE48 +:10F020000EC2CFB746F27F6413FD29260F8779C73A +:10F03000960C7F4F4ECF704FEEEFB8BFF4128C3F5F +:10F04000ECFDA5F3B58FD97DA481B9781F69A2B66F +:10F050000BF2BE5187E6C2BBCD39F07A00DDAF7C42 +:10F060009AF5D96FE01E8C345FC77EC90E92F1FD10 +:10F070003C339546B3B8D278E02A15E34B15768E2B +:10F080002B72BFA459EF5D70A24F1B1A5FFA5F3D50 +:10F090008EBDFFA98EE81FD9BA30B9F3A929C77967 +:10F0A0001CAD397E6390F4C2FD566780BD9F6987B1 +:10F0B000A729EBFA5E4A1983F330C7737AD9785FD0 +:10F0C00035BE96CAC74F810E87BEEBA59BF1B5A78B +:10F0D000B19CF727AAE9F1B576FC085EC64F3FCF91 +:10F0E000D23F877696B854E29D96312E55F0E622AF +:10F0F000DD3ABCD386A7DB3DAF3F8DFB4B29E0C19A +:10F100007DC27170BCD0FCFB5B9DF8FEC24955CF3F +:10F110009A44E92D7E77097B678FFBEBB2B91F25F7 +:10F120009E776514EE5F6C8A306B6353DF42F4B7F1 +:10F13000BC3FD3311FE2F912BF21BDB02FCEE27E1A +:10F14000B527FCA3701E89F5578560BE9BCE380B92 +:10F15000FE00764DBB4CE07CE6E50E19F31BD7CBE9 +:10F1600032ECD736FE4B6C1CECEBE7FB59BC706203 +:10F17000AB5C63BE7708701E9B167D7CA390CA2F84 +:10F180000B2DC4FB9617FB45AC7FA4F38AD1174027 +:10F19000DC7918040785ABABC4C1DE83341CEC9C5E +:10F1A000773075B2735C96B7E3DFCFCF4BEDDFF30B +:10F1B000B3997C5B5C25BA418E35571D4155EAEF0A +:10F1C0003EC8D24E27C635D2F45280CFAFCF1205FB +:10F1D0000A9F3F9C206239C487B17DB3A773AA03FD +:10F1E000F096DD4E32C641CEF6B2F97BCAC8A5C054 +:10F1F000FF7EDD8131C51EDA0FB41BA9FD855E16C9 +:10F2000087DAC9EF331F9362AF80A97AEC818060FF +:10F210009054BD2BBCCC2E7A9FF6CFE2E562D8FF8E +:10F2200011C8A3FD1043FF42D3C36F19E0BF699A11 +:10F23000C6E8C0DB2DB8818EBC091685E0AF8AA276 +:10F240007FB33928239CC784189EF324D6CB97011B +:10F250001E3C55743D8A3045788F3D7CF568587763 +:10F260004F7B67BE354EEE6DB8B84AC7D8CCE9A81B +:10F27000A4EA28BE0F36647D2A230EA013CF30F3F4 +:10F280007FD5CFED7F4EBF1E4E32BE2E86B7923257 +:10F29000D62E2191823C4B7B879FF9794DBAB3F7EB +:10F2A0005BEA65FBF826298ABFA7E06F9509BC33A6 +:10F2B000E3A8E2F71D2A1D914BE838DB2E4AE2EF66 +:10F2C000206C66B7468927785B08CE17374F8B14BA +:10F2D00000DCC739FD1A33D97BEFF671FEDDC7E0DC +:10F2E0003F5149F98AC2BBA5637A21BCDD78D83782 +:10F2F000100A7AA19CC1B1C5E7C5738313951503A4 +:10F30000F0FB0D27BC37E7099AB51F369F5247A27D +:10F3100000EEABDEEF9DD30CEF709402DF53FBFFEA +:10F32000F79B2F6B06FBFFF80E275FEF3AE4E7979A +:10F330001325632004FDB021E3BDEE4475E4B71747 +:10F3400000DF763830DEED78CCF4B76A1EA0FBED36 +:10F35000951BFC400FDB75B102E863815A7B3FC807 +:10F36000A18ED61C0F7C6F8B3B04F85EDA51F1AF97 +:10F3700065B49FD2EA1CAC876F524EC7DB804857FA +:10F380009BF93B2FEA3C928078D2C04CF62E73203A +:10F39000C2EE7751F9C1CE87ABD8BD01B5F3EDDB35 +:10F3A00041BFAA33D9FE5A0DDFF703CCF3F33F7503 +:10F3B0008E4CD2CFA198DE36C7A3A977450E4BF36A +:10F3C00020AD7424A7637C007B8FD63CF655FB1CD4 +:10F3D000C965D06FB9E3E0628027E839B87832BCFC +:10F3E00017CFD7D160F010FEAEFAE68B2624404E40 +:10F3F0001DE7E708F47B01F8FB4E0E9E2BB37CAAB9 +:10F400007C00DFEF53F70F44116EE3E875308FCDCA +:10F41000175D5508FE61B5EBADDBF13B3FB7B4CFEF +:10F42000EB4235FA32C8FFA6DC3C21C6E525D821DF +:10F430007E3E4F7F257B0718CF03297CEFFF88A0F6 +:10F44000BCF7C315CD1CCB3CEE307F9F83DDC72DB1 +:10F4500004598BE7E2B4551EBCCBCAFAFBB0D7897E +:10F46000F51FA9D312C0EF479FA11A361BEE9DB31B +:10F47000F3D241BDB2888DE3EB6E590BDF7D55961B +:10F48000F34EFABF7E6F00E9FCE48E4F51DF6E2130 +:10F49000EC7D0573FC71307E712A8FF700293CBB2F +:10F4A000F6E55C564EFB7FB4BE780AC411C44D3CF1 +:10F4B000C21F5DB7D1D08ECA9FD1AA47FF1A9DE463 +:10F4C000539C9F76F17A9BF7AB2F837CA9FEB70301 +:10F4D0000AD8534FFB4258DE51F58902F4BF456507 +:10F4E000F02F6F6774B83C34A080DF7469BBA06EE6 +:10F4F000B39CC78EE2F098EB5E125571DD47B50BF9 +:10F500001877040683633A37194BE0BBB116909E17 +:10F5100043FA932545F07E35EBF7FD5607D9867AF9 +:10F52000AD1FDE1C23CBDA09C6D950BA50207E6B42 +:10F5300059FB28F041916DA1C86F21FFFE432E0DAC +:10F54000E02869FD4481FABE7627BEC50A84EC3006 +:10F55000E9B638858FF11CCE40F77A1C7F7C25D127 +:10F56000D9FBAFDABF825CF777B934D4AB626433CE +:10F57000EA9BCE001B9F0CB4E2BD84990ECC8FAFEA +:10F5800062F08FEF7A6E1D9CFB2F09B1792FADE2EF +:10F59000EF3289D1BE12A85FA9AA709F22F010ABEA +:10F5A000278DA570D3719602DC420A2F251CAE125E +:10F5B000808BE2AB04EAE339C9C07E98A7BF354F20 +:10F5C000DB58949AC7623EAFC5003FD4BB8ED113BF +:10F5D0005D42E34B78FAE1CA74BEC85960E3FF3973 +:10F5E000ACBE08BF9CE1003D6EE0B8E3F979BB0317 +:10F5F000BE0B70FFE15984A3A4DD95D6BE3D7865AE +:10F600001FCEA3DBA5090C2E0DE49797C3E5ED12E1 +:10F6100010AFDE6E3E8F8885DE69F9E1D788215014 +:10F620007B747D0E7BDFFAD81419FD1FD4787FEF31 +:10F6300047C07F9B653C8FD9FE058BE74E4C917B85 +:10F640003630B92210536E51202B1A656CBFA5922B +:10F65000DD835667E6CC92413EEDEBBC02E543E428 +:10F66000E89D78DE648B2FF0EEF7A0FD5978473ADD +:10F670005E28FC3AEC6FC3B6B8039F91370BE42ABF +:10F6800094072A50FE227F4EB3F60BE770AFB3F714 +:10F69000AD7DFB1F5A08FE63EFFE6831BE876DAB80 +:10F6A000F79CBF04F5910FA247B05E9D03EAB570C9 +:10F6B000B908A63EA9C0741FA43E2F31B258DE106F +:10F6C00072D8CF9ACCA1E9CEEA28BE57E39BCADE16 +:10F6D000CF47FCE7609A84B4B3827FDF1F2B56319B +:10F6E000D53496AA989AE3997AB283D72FF03B3211 +:10F6F000BE33EBD3FFE6B2CA2DD16FDCF66F707E5E +:10F7000076315BAF4669A06611CD373EE3054F38D1 +:10F710007932902880F7B9927E662F9AE391F22B86 +:10F72000D12E86103081BD3F80EB7C9EAF6C2BD0FC +:10F73000F924BDCFB116E5188B873DB28FDA41E7CA +:10F74000C3BB08BA1FE49D1176E078EFFF867D6F9A +:10F75000095E550876D4E6522F11E8F7477D4C9E96 +:10F760006EAEDA701BD0476FB79003F2793BB7A744 +:10F77000B66F5DD50CF1811D1D02CAF197A71D9DC5 +:10F780000FF5127B1C78BF7E56BBF06016EDEFD8EC +:10F790003B6E8C073DF62F9D7550FE97F17421CE80 +:10F7A000E2A70394307B5A4FB3ABE11D78C8DBEB83 +:10F7B0007BF20FA15D37AE2A6A80FC55AB48352C31 +:10F7C0009E06B74F66C0BB287D06DAB9FCBD65ADA5 +:10F7D000927DA7B4A9415CAD1666F9A68624DB57D5 +:10F7E00097B3F384A6E0B61CB03736F688F81B5002 +:10F7F000955BAF50BE05F2B21C6E3B10B23B61DAB6 +:10F800003931C2CE891388E7F7CB6A751FC4EDBDC5 +:10F81000C9C4797BF9AC51A08F86D31727BC5F632D +:10F82000FB4E8DC9310CC177A6F4C766B55F013CAC +:10F830002FE912E0A577B2244C905F4BBA8584552E +:10F840007F04B9DCA07277034139CFE46E90CB110D +:10F850002A7F158C9F6D25FC7DE3FE56943F9D4EBF +:10F86000A62F44CD0176D97283CA5B0A4B71481F1B +:10F8700005F1764BEBC408C4152FE57AC6949F2991 +:10F880007D1595E11CDA94C3391C8E20D70FA30C8B +:10F89000A61F721E62727954174B8F8463789E88FC +:10F8A0001BE1BC945E3BEDD5101F39EDBD28EF4741 +:10F8B0007533B96FAECB48EFCD34774F990578F3F8 +:10F8C000751739E07EF3A650AD0CE934CE3FA61D86 +:10F8D0008F8B08F3ECDE8ACCEEE1F7E18FE5365F43 +:10F8E0000EC86CDABA5806795812A17C05FB93F061 +:10F8F000B29F42B0D14CBE9F2424A6A0BFAE6E05DD +:10F90000DE6BF271F83D95FD3AEE63BBAEB81AF0CE +:10F910005952D93B06EF2D771D265FA7DF3FF3F93C +:10F92000110E7F6522A9805E2A63A2B8A42AA64090 +:10F93000FDA52107C2765C4C12C81F8F1075BD96BD +:10F940009AE747BEACF47D43978BEF1B1218AF6B61 +:10F95000EE1B5A84E87B184F7301932BED9184BE04 +:10F9600048837D039313DBC7CADB800F6FF372BC40 +:10F970000407F0FD7BDC4F507BFEF6F60FE681BFFF +:10F98000C79C9F8BCFCF17EEC7DF53FBE1BD8775B9 +:10F9900080CF53D53B46B0C0B7DACBE757D6672800 +:10F9A000005F259D1FCCBF95CE2F38FCFC7CBCDCB6 +:10F9B000177A3A0BFA4BF563E07AF8134E15D6C373 +:10F9C000DFCADA2DA5EDA01F3B1DB8FD0C3FAB0132 +:10F9D000F65C90B7E976E248F1744F010103DE2A44 +:10F9E0004CFBD5A6F7C0AF847A225D1F4DC82E1AF6 +:10F9F000F4E71916FBF629FEFEE45311F62EBFE8D4 +:10FA000067E7032023200ECEBBC3618C067D4753DE +:10FA1000904FDE5ED19868F15B792BFF9616FFB6AA +:10FA20001A3AB6D0F1E07E94EF437D956C7D3D941B +:10FA30005EADBFBF71D4C7DE3D3DEA63FE4C4F658E +:10FA40005D08F874E8FE93C19B1D72242E013BF102 +:10FA50002296DF3CCD81EF36DCC6F9B33DF898BE87 +:10FA60000847EEAF81FD694B878C7665622BBB073B +:10FA70009798C6EC89DEE427CC1E4FC8183F615426 +:10FA8000B1F729B6CCDC50B012C69919AD745AE85A +:10FA9000C73F33F33EFC62F8C12C76AE2670BF8BB5 +:10FAA00060D50B66DEDECEC5FD2FF807FE2A554574 +:10FAB000FD18D92316AC003E570B307E6BA5DFC175 +:10FAC000FD7FFCFDFC848FF9D792ECF7AA4CFF9CDC +:10FAD000F3400B7BC72AF57B552BFDC83FE9E7199F +:10FAE000A6DFCE358DE1D717943158D1C7FD3ABD89 +:10FAF0004907FA33B684A2B94E8B3EECE2FE27D911 +:10FB000090995F614ABA7DD1EC67EF0BC639BC6250 +:10FB100092D1CD31AE97C58767A05C96FAD877A908 +:10FB200092A0DEA3F339689BC7C7B67934FA01BF48 +:10FB3000A599E761AEE3657EE627057F07FECE085F +:10FB40009727DE8413D77B53651FCA5393AE961B4A +:10FB500094AEE877C7436FA05FA304E413ED37D1F9 +:10FB600061F76B2C5300EE166AFF80FF3DCDBF613D +:10FB70009147803FE8B7998E0776733389AA20377B +:10FB80008C0861F64C9713F1EAEB140256BCAEE612 +:10FB90007ED025805794CF7B71FC8E4831C68F373D +:10FBA000E55E857E274FEB0407B46BE37E9F261E40 +:10FBB00057E30FCB099C47D500DA19DB2EEAC7F7CC +:10FBC000A44D7E30C731E1460EB5DE03E872B2F5D2 +:10FBD00030D7A59CBD5FE384DF412BCAB81ECFE0C0 +:10FBE0007A68E9BF5363AE47AE97ADC3EEBE597EA8 +:10FBF0007C5F6218BBD7B46FEDF6EB321F83DB2757 +:10FC0000527BB52265CF9A7AB64548FCE162E0D7CF +:10FC100027648DF923A2A13FD022E7042FDE6F7F56 +:10FC20004AECF554307F287B7F84D3E1616E4F8AA4 +:10FC30001D33D00E903AF9BCBB0536DF91E9F04D8B +:10FC4000E4A761E870B197C93FF54C11D14759FC61 +:10FC5000387308FABFD404CBAB86CCF633674AB10D +:10FC60005E06FF5011BC9F67F70BC1EFE5815EFF99 +:10FC7000FFC61FC4FD7A44EC0FA5FB79FEDBFD40F7 +:10FC8000CEEC697FBF1F88D8FC3C76BF8EDD4F6409 +:10FC9000FA75E0CFEA2FB2FB79C2703BBC04FC3CA2 +:10FCA0007BFD1782FCAC7720FF1EE77EC877BC7512 +:10FCB000F3203E5D829BE625F04E22FB7D25D19010 +:10FCC000F1BE90C96FA65C37E57C06B93E3EFB2CC1 +:10FCD000727D32A7C39DEB397F058908FAFCA91D07 +:10FCE0002F2B103F5DCEF77F83FA1EF4BC45AFFB90 +:10FCF00040CF4F3E073DCFF971F8FD12E3BFBBE6A1 +:10FD000038DC78DEC4E71B1860694E3F7B6F3140FA +:10FD1000244C3BF93BA481F9E9783DFF793B3DAFA9 +:10FD2000C7F13B153DF81DE0AFF90EBC0733E3ED1D +:10FD3000F47AF38B7E13BC8282983397ADC3603B19 +:10FD40002FC9BD12D6778E88ED2E3C9EDE2E053F44 +:10FD5000AFAF32B8BE7966847A41760E61877FB6DE +:10FD6000E2CA0C7F48CFFD6E3005FF25A1F47A353D +:10FD70008B7E937B7526F8C324AFA63205FF65659D +:10FD8000AEB3C3A531F8BF5D3542BDD2CCF05F3113 +:10FD90007F18F8CBC8A5704FECEA9A11FAE5EBFA98 +:10FDA000BD1567AF7743BD7D1C23EDFECB103A2216 +:10FDB00012CAEF9C01E69709A812A65F9D8E8CE0FF +:10FDC000420B1DD9E961C11409E965281DF1F5E36C +:10FDD000EB30227D703AB2D3C3B9D2919D3E5274BA +:10FDE00064E45E65A1233B3D5CB756427996339748 +:10FDF0006C731665A223D66E44FAE07464A7870C70 +:10FE00007484746187DF4E27FFEDF4A14A4CCE70F5 +:10FE1000F912D0FE5EFA4806AFB0D0877D9DA3D51B +:10FE200073910E86D2075F174E1F23AE3BA70FFBC1 +:10FE30003A9F2B7DD8D73D451F49942326FCF67564 +:10FE40008EAD1F1F60E7F88374716EEBACD175F651 +:10FE50009E3BFF132BBCC543D77BA475FE4FF60317 +:10FE60009F020080000000001F8B080000000000BF +:10FE7000000BED7D7B7C54D5B5F03E679E99CC247C +:10FE800033C34CDE8F49082160829300117CD493E8 +:10FE9000102084A8138818147510C40081446A9532 +:10FEA000B6F8314080840625212258B443508B5641 +:10FEB0006CF05AA508BDC3431A1FED8DA2545B4ACE +:10FEC00003F5D28088B1B582B70FBFB5D6DE2773F0 +:10FED000669208F6DEEF9FEF77D39F3DEC73F673E3 +:10FEE000BDD7DA6BEF612CC0989BB1D63239C66FA3 +:10FEF00065CC19D2074C718C393C067A3AED8653A1 +:10FF0000A63150F6C213CA9BF4ACBC13EA39CA8DB1 +:10FF1000CC6366F4F715FC77F55E28E785CB8CADEE +:10FF2000626C3CD4373377F538C602E5B2F71978FE +:10FF30003BC96C8AA8575DB5D63DCB05E34C968B83 +:10FF4000741E4D3B6BC87D1BBC0F94E9A9DDD4A486 +:10FF5000C8765FE1DF8D9AFA763EAFE97997A9E737 +:10FF6000827AF903E77FCB04D3E0F34F827FE23C50 +:10FF7000CA59F01989B199E591F5FCAB46C4F8F37B +:10FF800035F5D3D8342FCCE3B69ACBCC43C0F18E21 +:10FF9000DAAFAFC7B4F3CC66ECEEE5D1F3E4F88B9F +:10FFA0007E42B70DD8BFDA9FFA54EC327DBF269E51 +:10FFB000F17AB183D79B2CEA05D47AF1502F7F6078 +:10FFC000BD0A51EF88A827D9199FB798C7EED50D5C +:10FFD000B53E68F7D2414FF20CEBC0F5B5AD6235D6 +:10FFE0009D043F8F34C316FEEEB74BF4FDF44A3B3D +:10FFF000534CE1F79B9AB2A630A8EF6C295C87CFEF +:020000022000DC +:10000000794DC3983208FC1C978633659876BC20DE +:10001000F5679F0C1D23FD5ECAA5EFA7579AA97F20 +:100020001CDF573058FFB143F49F7C99FED3E87B27 +:10003000182F8C99131833F07F325DFCFE733AA0B1 +:10004000ABB569468F0E96FA1327AB1D0CBE8634EE +:10005000E329690CD26099D2A3CE03E86005C207F8 +:10006000FA35E8E1BF22F86F978EF835BADE1A1933 +:10007000FAB562C99FA4856F23E20DE66B0EEA957F +:1000800020C25F0FDF0BC2DFB70BF8AF91BC1FF8C8 +:1000900091FED38DDE67803FD7DFC0F1A5D60B8AF6 +:1000A0007A9BEC3AB14E1F43381AAC473F90603E02 +:1000B00006B335A0A3F9EBCFF768E8386867A27EEE +:1000C00048C78AC37019AAFE9A1B381FAE71B3E0E5 +:1000D000AAAC2BEFBFD1EEA1F915EC34527B966A96 +:1000E0000C8E90C2EB05F870FE5EC6F93BCDCC9A43 +:1000F000CC00CF751253AC28B72433BDC73F3BE0CB +:100100002F55CC73FD08F6B47C3594F5EC88A9081E +:10011000F1D79064C57E528C1EAC9F93640CC9309D +:10012000BF75AD2C900DF5D6ADB5064CF07D9D2D6F +:100130003BA883F9AFFB071F77DD9D9EE06AEC5F6C +:10014000513C2EE89F86F2F0764E6C5728EACDB5EA +:1001500007D740BB64D61DC374E1FE194B779C8959 +:1001600065F88A111DDA9D5869001D85E994D363ED +:1001700076B33E4F0FEBFB9C59BC487F6B1C0DA622 +:1001800018783E8D8880F7CBAD96E0EA2C0DBDAC9B +:100190000C851A4768CA06A08341E4C6D1619CAEAB +:1001A0009E7734D4F8E0FB6EE9FE1A9F865EC63B6C +:1001B00039DD663BB8DC60E37C66A417E8F1DD1B43 +:1001C000719D76D9B341C2E76A7305969B64A430EA +:1001D000D69134C3BC08F11190ED233C585EFDEE7E +:1001E0008D5886FA88CF23F67B9AB2A0DCD8248F6C +:1001F0002576664A6521C0335EE0AB2320D3BA0280 +:10020000792C3802D6150C64A7CC83F9E5DAE552CF +:10021000E4F323CD0FCA08E7D672C612A13F3D0B07 +:1002200005F4F8D49D606618EF91B2D3BE1CEC477C +:10023000E2EB9EA2CB4FC1F9B505F5328E77704740 +:10024000EE1B06E83F58263313F41FDF33B7920145 +:100250007E8C8E2C8287FEC4B4B30CE8B435D0619A +:1002600047F9B06B873105F546DCF5FAD33D1A3D09 +:100270007470556E0AAEB375879199605CEBB8C81F +:10028000EFADB33D2976686F61F05EE5F32CFE0CAF +:10029000011F0D17F4D3D56C947BACB80E4D7BA821 +:1002A000E769B14BA8E75999D58574233924E297BA +:1002B0005DB222C720FD9E9448DF3E0DEA5F8BB7FA +:1002C0002637E7F3C695CCFB11D0415E96EC43B9D7 +:1002D000B156C0436F650ACA0515BFD1CFECE6B26F +:1002E00078FF20F2AD5FCE990F871A35F274AD8199 +:1002F000CB19BDBD5BB6033C1C2FDB0B63A12B47A9 +:1003000099676F0FC2BD20A31097A1D2DBD169B945 +:10031000DBE643BD65BBAD5EC487E584E914CA85F1 +:100320005873CB67F86C3B389B7940FEC52E7779C4 +:1003300073601C8B27C19B3316C6B52B0CE1A15FE4 +:100340006EF47E04EFA7FC343FB1E76BE6B961A51C +:10035000DD9B03EB6F5F69A6E706B1FEAB7E5A1922 +:100360007F8F861FAE717078A965FDF21F6CD2AECB +:10037000CFED00F8915C0E265569E4F2A7A29DDA54 +:100380006FF4F8EA77364E499E0C70E89866B46FC1 +:10039000806249554ECA2228EF6C32DA71FD6DCD6C +:1003A000C51BE620BDBFA36323B03C2D376581A6E6 +:1003B000BF8E21FA9FE5E0F8DA951C7842F2A2B8E8 +:1003C00078B8E26DB08176C5049E605866DFAF787C +:1003D0007B02949129AF257952A100BC76A1DC481B +:1003E00001FBA8B5B422806547E0761964F023319B +:1003F000F51B8E4C84F288C06FD136F8938B85CA7A +:10040000B0BF2C5EFF3FDA9F6B0A203F14F0F27BF7 +:10041000AEC60A2C77E07A60FE2EE003A4E78E1DBC +:100420008D4EE49BF6AA71291EE87F6761308941F1 +:100430007F856D496F9841DEB924DE9EB1BF952B53 +:10044000506FA728DFE9F8AF72EC0FE0F3F81CE477 +:10045000EF6E8317F9AAB56BFCEDC8EF9F03BC18CC +:10046000CCA523DD93EC1B04EF2D2B93BC2D239007 +:10047000EEE16908BFB77993BC2F68F8D2608F2C82 +:1004800077489E6484D76E185F0FEB6F3378B66140 +:10049000F9C9D677CBF530DF369B2719E1B1B1F535 +:1004A0004DFEDD2DE01938548EF06C4BE6E5EF384B +:1004B0007E41F38F9E4787C193E2CDBF8279887AD0 +:1004C000FFEA3A8682C3958EFFFF71FBDBD1CEBF78 +:1004D0005CFBCFA3E4C0807EB2AEAC9FFF2E3DFE9E +:1004E0006FFBFFB7ED773BB2496E5E9E1E18D5B32A +:1004F000C8CC8FF2F7B1EAD298B91A39FC7D37D758 +:1005000067D7887A60C7905FB273E314F23383CC05 +:10051000F58609947C53B0D15901F2B1AD45F6A2EC +:10052000A8CBAB72C68C0079D6E842A90BCFBF0F1F +:10053000E7E572D9BE9AA13D5C4AE56013AF1F742E +:10054000C9E5A4BF5DB2659E66FC60397F0FF651B8 +:10055000B2565FB4097DC156C08CA09FE6B4EC8E44 +:100560000D1AFBF06E611FB43597BE91877A09FDB5 +:100570000B0FD855D3A674A15DD706769A89ECB433 +:10058000ECE61CB4D31499E470AE287B14BD178A32 +:100590006C244E1EE30176160C41FD8E96979691C3 +:1005A000FD8B460FDA55819E00B83CECA0EF9E2EE5 +:1005B000B4FF8249BC5F6605A502F68F13610D1D6D +:1005C000ADC37E50FF79996ABFDB0AE13BB9641E77 +:1005D000D4F3D60D39A80FC02E447DA9DA6723DDE8 +:1005E0005904F76168BF41B9A349AEC0F93DE6D5EA +:1005F000338C4FD82B3576171B68BFB90D4CC1F91A +:10060000BA4719830118D71A65A745DB63FDF68041 +:100610000FEC094DBFB179F688F2E727A6821105E4 +:10062000EDCDD3B77D04764BEBEBEC69346E77BE42 +:10063000CEF631F0133E5EE9DB86F639DBF4386343 +:1006400060F72E1270C891EC16740E74C30B3D68DF +:100650001CC6E83699F199237B1F2D81F1BB5E4CB6 +:10066000993D1FE6BB6C472CE163A721508CA06E1F +:1006700034D8B7A17E7DF0B1E1CDA89F5A0DDDCF72 +:10068000A3FE92D9BE0DE5E08BFD44CFF1D4E1820B +:1006900075A2FEEC7CF9DCF3488F7633D1D723E5E5 +:1006A000CBCAD18EEA95B95FCBF4BEA42AA0E33DB4 +:1006B000BB8D35DCEEF191DDB36BC70D7938CE6BB8 +:1006C0009B7FDF1C03BECE1E59127605C011EC8C39 +:1006D0004ED4FF546E79B34C4FF62695E7B4FD6ABD +:1006E00003EAC5B543D8313F7473FFA23368137A68 +:1006F000B56B4309B4DF53CA44F964859206F6C367 +:100700001A49D80DEF6D50AEC7F19928C35A01862A +:100710007B8C6AFD3F56D4D27769BA0E78D3D67EE9 +:10072000A8D93A313CBF6FB759DF44C2DC23DF5F41 +:10073000EB1B643E6B8789F98CE3F127685713D470 +:10074000D81B3617F79F93C5B3335820A39D93AD9D +:10075000E776B5F7608E6591A6FE0AA72522CEB38F +:10076000B727DBA29523F52E319E9EC5FE16F034E9 +:100770003C60B4AF02FC0E0FDAC8EE31A419990444 +:1007800078935DDD45F92EB4AFAD0C288CAD9F0C90 +:10079000AB877E8213838F5C8BF664BAEC0DC0FB53 +:1007A0009D362BE1AD6397AEFC59847BF0AA32A451 +:1007B0003B75BC3562DEEB9B8AFA6AA1DD39ABD5AD +:1007C0002E79904EBC35C8873FB11AED01EEDC267C +:1007D000A33CCB91832968FF3CD536ADB911E09A93 +:1007E00023E03CCC7D4B33DA8F1DF6CE9BB3A1DDED +:1007F0007AF0A770FCF5AE19669C57ABAFC18CF4CC +:10080000F9D2C186F22CE4DF11325B0DE3B49670AD +:100810007F21C7EDACC0F5E5AC05C743C35FA35C62 +:100820005CAE7678855C7009B9A087798CC3F8498D +:10083000B117E599C9CE8A705D86B4064519048F53 +:1008400013443F0CC48DB598588DF82CA1FCF8F7D3 +:10085000515EF41A3B7F8D705BEFB0783BE07D30EA +:10086000A6330EFB4F705A645C7F2283FF0750351E +:10087000CA8017E497344678496C31521C23A1C5CD +:10088000487E4B5B934CFCB5763E887C98576293D0 +:100890004C71D8849ECF56E238492E396404FF3219 +:1008A000614E64DC35E9C4D97FA0DF99C43471435B +:1008B000687F9DDDF7EF4EC08F294DF87F58B71840 +:1008C000FD48FE676992297EB47B1587CFFA875968 +:1008D000107C04FC6E5E5EC4ABA37C358AFA3B7F61 +:1008E000C65E403819CD2DDDBA380D5C9773B81A45 +:1008F0005BD6DD8FEB30E645C659ADEE04825F3A3C +:1009000003E90E72E863C6F901FFF4F029037102EE +:100910004B3FDFF9C718F4A77A8D3C8E40BE47B134 +:10092000F0E7B3C3F8E87172BD13DD4FA6C4EBA9BD +:10093000E5A718EF77CF11E774A4F71F2DCF2E444A +:1009400079DEA8CA27C6FB473586F871DB2DCA2891 +:1009500098FF4117EF7F8FA56150BE3EEAE2FE523D +:10096000EB1B805880C79ED59E6FA31FBAFE1199BE +:10097000754057075B78DCA12DC082A8A7DA14EF79 +:10098000B14AE4AB06BD3780F2368FCBD19DE59EF0 +:10099000E02A11670AC07C6D62BE3BD3BC161DB451 +:1009A0005F3B99D93B008FB632A6C460BC4BEFDDEC +:1009B00080ED3C654E8674CB00C632CC3F56B4B356 +:1009C0000502F7231DB4A6B1DB097E7A8F545510BA +:1009D000868755C031B61CEAA19FEC7AE5218CA729 +:1009E0007594CD602877AC2E18278EF78B444EA1D6 +:1009F00026C09735C0EBC55747D21DC949A4FBA5F2 +:100A0000403738CF0991786F13F049D5B37223D0AE +:100A1000D32A945F688F2CE47089F546F567F1243A +:100A2000D7121C8D0CF9286345E4F794968452A4E0 +:100A3000BB34A6790FE3E60E7310BE52BAB6CF9060 +:100A4000615D6B6B99ACC3715940A92DE2F841B956 +:100A5000B17E8A4CFDA696394B8D6368FF43413CBD +:100A6000396AF33B301EA6E2D7E1B24B45F958CFC5 +:100A70005E9A3B86E2B49CCE1380CE61BCD4AEBEFF +:100A80006F23FC52EAA2F73F34EBD75DBE6C30C750 +:100A90000562C7601C34926F535D59229ECEE98275 +:100AA00087AAF1FF789C551FE7D980F6165BADA7A2 +:100AB000F82CC618D3608E8617E44022F46782278C +:100AC000CA0D43A73E30320EED0FA618F17BDA3F78 +:100AD0004DDAF9EEFA593EF9D51D22EEA213F6A928 +:100AE0000A870F8719691E1F0A3D56FA6ADA248C95 +:100AF00077AE4D675E1E6FDB4BFCF3A0987BAFECCF +:100B0000DB1A8B70FAAD89A13C28EA0ADCFE16D408 +:100B1000B797318C14B3F5FA06B343A3CF60EA411B +:100B200039E95F7FB6097BA803EDA1788A77DC8E6F +:100B300078EAEDB0318CB73A42B2AAD71554F1FD3C +:100B40007646604F732DD80105BAEED166D0475B6B +:100B500036BDD55C968EFA37FD2A3DC89C2F375F8F +:100B60006C368CD7DA099F36A3DD30B49D20919D79 +:100B70005098A6963F99A600D03BCD6A79FF1BE816 +:100B8000DF371A022FA24CDBEB6281B20928E7D4CF +:100B9000EFA166FCBEDBC2FBDFDB1E6A0EA45DDEDE +:100BA000EE60668F05E9E17270EAD07B2CA83F3BCE +:100BB000101ED0BE7ED88169AB72C2764BDDAEEE20 +:100BC0000ADC6F50F1B254C8D7B5AFB34EE45FD56D +:100BD000DEDCE936CA28443C41A3121C442E6E1EBA +:100BE00066A67606ABB271D8F8CBD3D766A42FA091 +:100BF000ABA9C3F87805BAC1F7A59E53BFEF343649 +:100C0000A0FD54FAAA95E4485BF3ACA731EE5A3A3A +:100C1000327F5B2CDAA51FDE66C0F28F87E9A9DF81 +:100C20008E9FFB47DAF93E530AC209FD7F82C3CF8C +:100C3000AC32C67F07C04BAC2BFAFD8F86C508BF10 +:100C4000CC73FB2117DF57D8E009EF7345CF77AF9F +:100C500098EFDA954CEC33D9C99FCB71FB14DA27A6 +:100C60004AF207707C23D81583ED33E92FA546ECB3 +:100C700033EDB02B0CEBEB2F65D0FB58BD6F1FC2D3 +:100C8000F7895726DC8CEAEE09A1CF96D895FDC3EB +:100C9000DC18DF1A97A7D597D1CF2B8DEBBF25F6A0 +:100CA0009BFE553F648D5171A25EDDC1BC5EE77055 +:100CB000C4FF262FEA9366A664E3FBAE17176D2ADE +:100CC000413FE4573A9227AD938BC94E55F9F772DD +:100CD000FE4834FF16298CF6B5F47A5686F26E0972 +:100CE0003A7E1887F7703BC77044A6FD6C9493F862 +:100CF000D431BF82F6B02A3FF4413D7DD79D300507 +:100D000050CFE89AD675A33DA3B7FB285E3C56F6B4 +:100D10007F8C70679B40A426703589EBD45915866B +:100D20007EFA50F241D7FEB3694DC0CFBA23965335 +:100D3000D46F488C7F623DC5A9D956E8AF38DC1F17 +:100D40008C7311F168DCEB0BC56AFB177ECC979BAB +:100D50005F6A0E5CFF35FDB50CE84F728D1FD89FA2 +:100D60002ADF4E6EFEB76981AF9BDFD303FA8B1D7E +:100D7000B43F21FF7EB7F99566944FFA10D7437AB6 +:100D8000EC179FD81FEE8F003CD15E817EDCD80F20 +:100D90002B9322FA4737D0671BE82FA9CF6F3BB9B7 +:100DA000DC88C6FFEE550D3583F1E304A1BFA2F543 +:100DB000A601F56611D797891ABA30A1DE1C33B4A3 +:100DC000DE2C41BAE2FBBB4407AA7EAEB4FBC7E00F +:100DD0007A4C2EBE6E531A93789E00F77FFEBB7E30 +:100DE000C88F855C0EC6782CE5E85F4C91ED684FA6 +:100DF000AA7EC4EE55F66918B758BF4AF6A21DDAA6 +:100E0000EF3F08FF42F5571A6526EC53B903F75533 +:100E1000C1EF984E7E07F825B819B913E61903FCFF +:100E2000D0DA5274AC12EB81DD4AFE4EB4DF21FC05 +:100E300091A4F991EFAFB3FB7D08076BB94C766BCA +:100E4000306F5908D7B9A18C513FD1FE41B45D191B +:100E50006D4746DB89D17661DA035176E237B6CB4E +:100E6000B85D75A5F619FE0D6697919D48FCBFBD4E +:100E700019F1477E1594335DDB499FAB7917FBFB76 +:100E800064F2CF3B02094EF447820646F05FBFD1C1 +:100E9000E3C4B8CA0A81E7DA78AF8CFE22389076CC +:100EA000A457D9C5AC5EB4579BE442EEB72BD642EB +:100EB0008C8735CB45A4AC26825F3F0EFD342BF9E1 +:100EC000CF3B6D2F3C722DD21BF8F3B47F3A841FB9 +:100ED000BF41F053C9303B8DAB336EF2E6631CAEBD +:100EE000B998F62B771ABC14AF7E49C43F5F16CF72 +:100EF0009962DF48FDFE8A8893EE1DE2FB3EF17D9C +:100F0000BF78467FFF8568171AA2FD21D1EEC81071 +:100F1000ED8F8A765D437C7F537C7F7B88FE7F2DBF +:100F2000DA750FD1FE5DD1EEBD21DA1F17ED3E1847 +:100F3000F09DEBD7DF8AEF27A2FA3F29EAF788F77F +:100F4000B31C1E6EBF0CB11FB63B8BCBB9BA23DDF1 +:100F50004A565C188F8B9C5CCEA9F6DC65E356C2C2 +:100F6000BFC5BED18F2491363CDCDF59A7DCEF87AB +:100F7000341687FD47558E0D1FC7F332543F54F585 +:100F8000174DC3F8FCAD2DC26F659D24CF3B104EAD +:100F9000F943C3F95994CDE3695F90EC45A4BF7B55 +:100FA00035F2FC7997817F2FE4F00CC3275756E187 +:100FB0002343FD97847F3ECB21FA7384FB9BA7E9F3 +:100FC0006F0BC6AFC687E735147DB6B9B8BC57EB13 +:100FD0000D45471D51F586A2E72D629D6ABDA1E82A +:100FE000EAF9A87A43F1D72351F586E283A7A2E66E +:100FF000F7A2F8DE299EEB449CEB72F4174DC71D57 +:10100000EA3EB06336C567F14F1B6FB036713DE005 +:10101000667D11F411C7BA79128BA00FC3A52CA657 +:101020008C25A14AFAF26A9787FB137A1F43BBDD2E +:10103000702987BEABF9254D9ED54ECCC758EB72B3 +:10104000155237603760BCA346D06DBFFD81790172 +:10105000A8DF5D7EBEEF1FB6E746B891E88391F644 +:101060009C6A7FA871E71FBAC74CA3FDE9714CE1E8 +:10107000F924668A03809B91340CE364BA4AEF0238 +:10108000984FAE93C7432FB75F70B9FD81CBED0B7F +:101090005CEBB6511E0768532FEAA9293FCD6F4379 +:1010A0007B60D93B3A8AE7E76C52C80F7EA847F2CB +:1010B00068E31AEA53CDBB50F319D4BC0B35CFE12A +:1010C000317D6006B65FDBE294303EB554C4D50F87 +:1010D000BA6650FCB5A35A267BBDA3EBB1F21198BA +:1010E0004F5426DB116E4D2D456FA27D150CEA691C +:1010F0003FC0222BD330EFE6B1EA6C0BEA11DC3FA4 +:10110000D3FA1DB9F68652ACB7B3BA94E2BC8D7F60 +:101110009F644679B4DE9E1DE3C1B82FEE4BC1B388 +:10112000ADDC19837C1BAC8E7CDF5A36F87E55F41F +:101130007A2D422E76309E7F79D5E1D95598473168 +:10114000BCC959184350F5519CAC50A59BE53ACA0F +:101150000B7137717F6138F85F887F355FC4CD349C +:10116000F8C1508D93D373014602D0066000478DBD +:101170001D118D4FB57E345E99DE9B877437D5691E +:101180008F90E343C9FBA9625D0FB8395FF7E32D88 +:10119000A8672897557C05ABF9BE5BB0CB4072FBC6 +:1011A00073A05F96C5F72107CBCF51F1748DC313A0 +:1011B000B18FADE26B972140FBE887763C9884F9CC +:1011C00046EB7FEECFB40FD28FFA7C47E4E3017891 +:1011D00062D09F068918234FF846FED036F720FECE +:1011E00086EA0F1D707BC9BE1ACACFEBF7EB84BF2E +:1011F000A7FA771A39F0AC9BF26BA441FD3A753F20 +:10120000A9D57DF51B819CFF517FF267247FBEA18C +:101210003F79A5FB52DFC03F7C7D30F8AAFEE12E6E +:1012200077E137F50FFF63507C5D2E9ED59F37AB7E +:101230005825E8AF8EA97FF7539CF13B82A7EA447B +:101240009EDD649D95E8D9F2B444F1E4C5019EC7E2 +:101250005E17587D3FC681699F03E87FE15A46FBD0 +:1012600095F09DFC21B5FDE24E130B69E4F2D29797 +:10127000A1ACE1C72CC6F3C81682FD1FD2F07B16C5 +:10128000EE1BC7E1F7C8F74C37271EF18A39958363 +:10129000E5632E3F51123AA2E9FF2FAA1CBF865DDB +:1012A000437E88683F141F5D5CA9848E18306B599B +:1012B000F9D2ADE14B869BDA00CF0DA3CEE40DC68B +:1012C000CF2A5CE72D9FC4FE08FAF315A3BD04F3F3 +:1012D00040034F49E407CF13F975D70625F2CFE64F +:1012E0007DF7ADCD18E799F891D73817FA5BDACDCD +:1012F000E32A89BAFB0B1F86E76387D8DD3E51BE20 +:101300001FFD5BABE2C17DB1B902FFE70D0D857634 +:10131000CC2BBCD3AAA09F3BB75AF910F70FE6CE4F +:10132000C93723DCE676C628F43433BD05F5E7DF9C +:10133000BFA27CE07B05B6E7EA9919DF271A993E40 +:10134000069EAFB65719318F2FD1C2CC582E5E0DE5 +:10135000E3039CE226F8687E73F7FFF8AFD8DF7DE1 +:10136000FAD041CA9B1679D973F7BFF125FABBF7BA +:101370002A3E23C6CFAEDA651444CAE15FD01959BC +:10138000C6F30CDA726128B23CB62BB2FC186E04BC +:10139000025C5FFB878E611E68DF73B1B40FB21809 +:1013A000ECE36F39F93430C6B0E827053B30BFF5C0 +:1013B000957F7EFB0F0F43B9EF573AF2CF5F190DC0 +:1013C0003630C24F1FCCC0F99D7BE2C74F7D17F767 +:1013D000519F4F440F901DEA7D2917F7D32FACF48E +:1013E0006D2B03793C69F1FE0C94B717F6FEDB53C5 +:1013F00048D71FBF68A238D9C722FE77F0B7FBCE07 +:101400003C81E3BD185B88FAF9E3DDAFE6227C1688 +:10141000FDE44006EE139F7BFE27C5547EFEB931E6 +:10142000F83CF7DC8F73E7929116CCC07D79B59FBD +:10143000C52FC49C1A86748FF13ED077673EB15A8F +:10144000B5FEE237ED7731C67DA9DFF5DDC390EF5C +:1014500076D902F85CB4EB079FF1A7F40E7FAEA239 +:10146000EF8B002213007E676D5C9F2FDE658A8004 +:10147000FBC8AD9178380BF6CB4B506F5430F2FD72 +:1014800019B0075E8271F32ECCA940BD7956D839C8 +:1014900067E0B907EAD7C37B07BCBF20F611A3F901 +:1014A000A63681DBCDF57B23C7DFA71FBCFED204A8 +:1014B000AE8FF370C754231752863897F14082C815 +:1014C0009B7EBEBFBE8EC723808D80B6160B7E7AF4 +:1014D0004D52CF4BB00752814F1623716487DF2FD7 +:1014E000669A75C3787F31C775D841FF648AF95C05 +:1014F00034707E3DB732B4F923901F67562A4A995B +:10150000268F69C1D6FB8F2603DDD4ED7117514EAE +:10151000B9785FF7DCE1388C638CEEE4E780CEEDE0 +:101520003ABCE55EA4CF4E0343B90EDF13F0FBF9DE +:10153000CED7E3EE80F70BB63BE83C8FDAFEBEADCC +:101540009395328DBCFBA6FCA7CA853A3B87C3ABFB +:1015500013BAA7A4029F2DDE2A79B1DAE2CE5B6727 +:10156000DE843ECD761DC5378AF5CCA72BC275FC2F +:10157000EC680ABCAF3F30BE18D7035D54E3FB0DE7 +:10158000B26F7A01CAA5A70C94EF0CEFBB64A0B3AD +:1015900043796DC6D3B08E5D02DF1B66596BD1BE39 +:1015A00084FE8EC8D02EEE694911E50FB07E6F69BA +:1015B000671CFA2D670DD626291EE9B4E118CE2343 +:1015C000B09BF7CB427CDE0B451CBC76BF81FC9008 +:1015D000FA67D6C495609CE49F3A498F72E01989F6 +:1015E000E4C07D5B23E9AB16FA4E8271CFEDB051BA +:1015F000FFE7DCC10CB4AFCED982194EDE9EE45FAA +:10160000EDAE5F7E89F26E6130B27D343DBC9D20CF +:10161000A97E7C9E96AEA2EBA124D21787BFD72DC0 +:10162000073DA0D987A8FB689311EDF48595C6AF57 +:101630001D0FE89279081E31E4272D1ECDCA3C3CCF +:101640009F403243FFE7F05FE0072E9EC1CAD5F707 +:10165000B46F80740D24FB9713BF7C4407F49D8204 +:10166000C8C3F8D74F63295EFAF12746D21BE77A41 +:10167000C1A080752F4D9AB9AD4C33BFF37B0FC716 +:10168000E1FCCE7B42714EF4E785BD7FDECECB8B95 +:101690007B3750FC7955E7E13894AB8B3B87D17EA3 +:1016A000F2BEDD925306389FEF7D36960DC2A78BB2 +:1016B0007AF97E71B41C52F5EA29FC27E8DFCF12D3 +:1016C00094F30968BFA07305FA3F71584361C320C2 +:1016D000FDA9ED3E4FF0D073AEC4DB27EA9651FD75 +:1016E000CC64DFC504C0575269B782E785922A9857 +:1016F000770D54F9A3CEFBA07D38EA49BF91FCE6F3 +:1017000046378D731F03BCC0FB797A16D2037DCE9A +:10171000437D3B86CA04BF79BBA4209A72B6165398 +:10172000C47ED38276286BD7B35DF31DE0BF10F57E +:10173000691CEDE784300EBAE8E9C8FA8B5988C60F +:10174000AD7BE12B93B65F346839BD2946F467FE63 +:101750002AE09399ACD813E1BD34C34CF3FAF66E8A +:10176000B0DB803E5C228FA0EFB178CA3F592CF4E9 +:10177000F8BDA683B4CEFAEFCE55E6833DF2E9F28A +:1017800079CAFC6122AE807CBF55E2F455C642E9BD +:1017900030CFDB857DB378BF142A80F2BDB07EB434 +:1017A00023AE7D410AD8407FDD6B668138A4B7F750 +:1017B000387EEAC4BAB05E7C11C23140E38D4EF48B +:1017C000D0FC17B26E233F5C115C9300E32DED0556 +:1017D000D900A5AE83C5F1483F7F61DE78E44BB008 +:1017E0004B588C73209EA3E15BBB3D0ADE5A7866A2 +:1017F000231C23F1B3F46580EB20F4F69890FB27CB +:1018000099126167AAE7EB1E5B25717D11A89A8D7D +:10181000F27ACBECE262DCAF7C14E36129A2A3098B +:10182000280F999A771732C33896B1FD65FA5EBCD6 +:101830009A97CB1FDF397D2BF81B5B0CFE648CC3A2 +:101840006CA902BB97DB2D3168B754A5F86F42BC79 +:10185000CED3F98EE216FB47254A2ED1E7720EE76A +:10186000C78B1A46357C8D5D9A0863C73AC5FCD094 +:101870008E2AB0121D24E39CE0BD2D83BFB78DB12D +:10188000D0B9A944191CC941E0AD3E13F5E0AE3B07 +:10189000E9C96CF884816C5F535FB51713D1684256 +:1018A000BB7374C31EA4AFC4BBF28BD66485E7B907 +:1018B00045027E44BBF9617E5E2676FF9E502AD4A7 +:1018C0005B52EEA1F8A3FBB6137998BFF4BD442E8A +:1018D0006FE3859DBC4D628D181748023A978AB018 +:1018E000DC9ABC0CDE8F7B5922BB7AC9CB25BA258A +:1018F000565A3FB7AB631B76C838FEDD79343EE0FD +:10190000E5EE19F07EA5A0CB642BA7D7A4D5812C3A +:10191000EC27FE90EFFED7096E3CFF0CE149EB3659 +:10192000B326B49793D82A09EBAD7373BA58379797 +:10193000DB45B84517EFE4CF0FE009DE6FA381C3A5 +:101940004D6FE1EF1B719CC7E2F8BCDCB2EEEE2AF2 +:10195000B4FF8B78D9B942523A88195B391E4DAC25 +:101960001CD789EF715D300D658F5503DF490D85FB +:10197000388FC4E1FCF9768F3980793A6FBB543BDC +:1019800038646564E7F864D4070F08BDFFA94149CE +:101990001C8BFAE41D03437FC59511553F278FD754 +:1019A00017FAF673EFA47814129F5B9578073CF74B +:1019B0001AB8BF108DF7DD024FF597525950A34763 +:1019C000EA6BBE207FA1FE5246C4FBF32B612523A8 +:1019D00035FAB0F6109D1B5DC2BA29557949A78E1C +:1019E0000535FCBB37868F7BF1F7269257DF6E1EDD +:1019F000DE81F67A34BFD65FD2B100F0DE753A9957 +:101A0000EAD7D718299FB8BE49B703F7E3EA2F19D9 +:101A1000F9F74CDE5FFDA5612C807B907A4F1C9E10 +:101A200067BC4EF7D9BA7B11FF0724CA3FABBF94FE +:101A300040DFFBD773498A2CEFBD28D6A7E7FD4CC2 +:101A4000E8894339ADDAFB95A05751DEAA763563B4 +:101A50003D7108FFD37B8791FC3BBF120429C0E195 +:101A6000B438CF7C3A28074668FC83D36A5E9E98D8 +:101A70005FF4FB0BF61ED2C7293A7EBEF882879729 +:101A8000D57AF81DE179A1469533213DE2F309EFBE +:101A9000413DE693D4790F4E611ABA0AC33F16CF7F +:101AA000FAF5C33F614D77480699F2E9E35FFC2000 +:101AB0007F1490E82121DF02977E80F93C093A39B2 +:101AC00042DE61EE929A878CA4F498ACE3F232F095 +:101AD000E50FCAD2346551BFBF7DE0BFA6E3F77101 +:101AE000F9BCFD978FFFEDADD514CF107A50DF977D +:101AF000E1B369CAE6A8B215CA059AB23DEABB2BA2 +:101B0000EA7B5254398DD7BF2BBE67BC0E7C4FFD8C +:101B1000D6AFA6E379A3BB527BBE83E7B95A7472F2 +:101B2000651994E78DE3F26BE97E89E2B32AFC96AE +:101B30007A19D9B7566F8F11E3ACB1E3BC4765A8EA +:101B400057B757A27C5E6BE79E10CAA33A6CE7D1E9 +:101B5000B4EBE476715DE7296A3764FF7932C983B3 +:101B60000D79A7A9DE92E59F18D1CE6BCA5FED4330 +:101B7000FD3A56E6724DCFFC4A2AF0C7D2BD558CCD +:101B8000E7AB72B97B2159398CF3091C90681FB4FB +:101B90009F8EB15F6B988FD4FABF2BD8FF3EE6C5FE +:101BA000C43EF0D92A3DD4FFFD923F8DC7F17E8718 +:101BB0005526A21C0F8E42FD34A7F69E51F8FECE8C +:101BC00025230EE2144E1A7A9EC4FC92495B132B15 +:101BD00031DFE4A4AD271DF39527276557223C4F3D +:101BE000BA7B9E4478EE4F1ACEBFA7F7A4CB50AE77 +:101BF00048BA8B9747F43C89E5D55B4B78FD829ECC +:101C0000741DB42F0A9412FC9FB173B9F914F8D95A +:101C1000287F7F17A5BFAF4DE2FEC7A32395F149EB +:101C2000B89E3AAE3F9F045FCD0C72F5AE277A7630 +:101C30003F0370B8EB7BB1B4BFFBCCF999153E0EF6 +:101C4000271FDAED899CF4357A544FF108558FAA95 +:101C5000F8B065747B48CF44E9B97309CA81247729 +:101C6000F8B92D9B3F0F2479445CAEA1D003FDCE83 +:101C70009963F56EA0FC859EF148878FC6F07501CB +:101C8000FF109EAD022F3EB11E5F12F743E31227F5 +:101C90001FC075817F1030233EAB8C64BFB55729C0 +:101CA000C916173E13285F3A1C2731907FD42ECED9 +:101CB00043B72F194171BC7EBF6033F72F54B975FC +:101CC0003BCA2D8D9C6B5F382919E55C7B96928C05 +:101CD000F24595AF4CDFE9C678BF2A4FB1CCE5A8F5 +:101CE00044E5B0DC837A9A739A7718988FEE6FD8B0 +:101CF0001129EFEE90E07D7EB89F2B7DDFEEE0F3C3 +:101D000052F569E29A4EDA5F4A7C3CCB4976072A63 +:101D100066B4DF5A477620BCAB5266103EDAAB9E03 +:101D20008DB9273F4CCFA191CAF7F1FDED227F4E2F +:101D3000A51BFCC338DFBCCD893B30BFE480C0C3EA +:101D40004732D867C07705290AE1E300C6E4E9C94C +:101D5000F71DE6B09EEF207FFC2F9EFEC7F1D489D1 +:101D6000F0FE57F1B464F99FAE4C6E0ABEDC2285DA +:101D70000C895C6EF2B804BCC7FB20EE4BF41FC6A6 +:101D8000F9A9EBBCEBFB4B92294F49CC27F6A157A5 +:101D9000CB6F83E25D8BCEF5CB1BE66103ECF69354 +:101DA000BF35B7605CF0A4B193F4C349F05357A1B9 +:101DB0001C1571C49362DDC5DF5BFC36E54B27F370 +:101DC000FD768C0F302D5D357B7FF3F0A0F4A5E31D +:101DD0007EE1011DF903ED85C16D0BF0FBADF994BA +:101DE000471F23E808E88CEC25F67D1E27681F7145 +:101DF0009AE0D93E91D1B9B8F62CFEBD7D762E9DE4 +:101E0000CF02FA0A907C9C6DA17E99F0933FAD4978 +:101E10000A22FE80DEF8B80B65929F2ADDF6D7CB4A +:101E2000C90E229E06D2615F5C95867E3E1571C208 +:101E30004FD13E8AD7BC177109B00BE2B4F7735C7F +:101E4000EEBD4A87096B547EE074F7515B22C5975B +:101E5000C16CC9453E302573FA51E571418A5F4E28 +:101E6000766BEC71352EF0683AD1EB7A1BA7EBED6F +:101E700031FC1E0C533297F7EAF8DBC17F41FD03BA +:101E8000FEBB19FBB91B9AEF85F2DD89FE5FF4E01A +:101E9000B8CB553AF61991EEEE157103B622D2BFC2 +:101EA000C5FCAAFEB26E607981C2E3E603E212ECE1 +:101EB0009FA6C876DCEE89CDEF3320BD3F1EC3FD63 +:101EC0004155BF6D95245ADFD6EFC6D2FD196ABDC4 +:101ED000BF9CB7C898CF3C42ACAFEBEDB1F1184F07 +:101EE00057FDF868BF7E292E01FAAD87B1311E5D1E +:101EF0006FE921BF568D57F87FA0A3FB32AED3F117 +:101F0000733B7D3F93889EA41966A2B733CDBA1D5B +:101F100018DFC0F6B8AEFA1CC6AE77227D0517A250 +:101F20003DD3B7D0C238FDF917E27C4FD78C664459 +:101F30007F82AE60BC0CB283DD3D14FFAB4788618D +:101F40003F817FACE4C93680D284F03E19C6A9B582 +:101F5000F1830BF01F9E7F50E917CA018C8386E93D +:101F6000D51387F45227CEF344DBF3C43D09148F15 +:101F7000A7739897B3EB97CAA7729769ECFA687F33 +:101F80000BE1797D113D8FE8085F3DC53EDB20F513 +:101F9000E4D3D4CF50FEFAD2AD7FA2F34EB85FA700 +:101FA000A593BA303D495F49386F0D7D69FC78B221 +:101FB000F3515E9431BA17C626CAB1E5DD744F4BB2 +:101FC000BD8823B90FF54C413CD8C67532F4EBEB14 +:101FD0007B393F5DBB7FC761F4FB1DE5DDE988BE52 +:101FE0007A112755E94F9DE7C4FDAD3AF4530E7DB4 +:101FF000C2E9AEF4F4DCD928BF5FB32497627CABAE +:102000002AC5FF9DE4F19A7809EB24BA99F7B864E0 +:1020100047F9F29A93297682932707E154EAE4FB81 +:1020200028259651F9FF09CF43A7B3F20DD0FF86BB +:10203000649EEF3E4A5656207F5E18229FBB299928 +:10204000EF37949E8CF1A37D566A892139F968DBBC +:10205000C80E535678FCF95BB29C387E5332F78F2A +:10206000AB527C4DC964FF798B91BF1F4AE67982E0 +:10207000A5464F0ED2E76B96C452E4F769EAFE5BC1 +:10208000A02407EFB5294DE2B09F6636856CB42FCA +:10209000B76914CAABAAF9166E3FB24AA2AF724131 +:1020A000BF1BB3381E364EE3F1CA6352A70BF59C33 +:1020B0006CDEF400BEAFC8B179113FEF488E748C6E +:1020C00093B28506C71973F81E9CA1E80505DE19B1 +:1020D000952FA0F24609F481939E14EF816700CBFF +:1020E0005B2C2C20A11EB798C87EC1EF3C9FC3B3C8 +:1020F0001DF560A5D964C7389A0DE366BCBD82F1B1 +:102100009C4AF32F3FC075631C10E5277C57D47E93 +:10211000F977D689FCC5BC86F3DA7B9AB6C5F0B8E8 +:1021200021B40BA07CB5E1B147DE2EC4C74D739C32 +:10213000B92ABCBE3586CE429C5F6089D58B7A7346 +:102140007B49C094E142B91D5388F1E1A76DC69067 +:1021500013E67148C87F9837F985A7053DE4C4198F +:1021600043B82FAED25F664CC921C4AB0A8F35315C +:10217000801FD4CBF75ABCA847711E623E11700A6B +:10218000C385C7ED2B69A8305C806ECBEC455AF84F +:102190005843B88F1E0D97A1E0A1AE03E7EB8C1B4F +:1021A0000897ADF29EC524DF2F58BC3C3E1705278B +:1021B0007C954CFAEA24F2D752E6FF167E5C6A66FA +:1021C0000AC6B31698EEA7B86EAD889B330C16827C +:1021D0009D7201839700CF0BCF4BA437705F462BC6 +:1021E0004F719F455BAE53E3C3BBA2E2B842FF2DE4 +:1021F000C1F8323E3B23DB81E4273D59BF373A6EBD +:102200001E88D0DBE1F819E78B27B664917DD8836F +:10221000C09E882F57131F625C8EDB034A32C68133 +:10222000B62CCC2EC2384DAC9EDB95F76E1AD9B1C8 +:102230004AD8076857A8F13C959FAB524A63526051 +:10224000DC4B29A5FA14F43B312834F1EBF889CFA3 +:1022500053AD87F1BCAFDBE75886F20FEC1F578A0E +:1022600087E65BFEC68844D4BBCB244F22D7BBB9DC +:1022700011E5333A3FED73A8F1F885B8CFA00BC351 +:10228000758188E32F50E3F65B23EFC7433C69CBAE +:102290008B3478D2DEAB5757C642B6283C69DB2D6B +:1022A000053C613BC453443E793B5FF7DD424FA898 +:1022B00074EB58B143C734718BF822256B2DEAF9C2 +:1022C000370C1497FD4F4197808762B41333934BBB +:1022D000E310DE16F477F2D1DE67B5886F8C03E386 +:1022E000BD7917563225C740782D9E31889EDCB0C7 +:1022F0002FA616E9E4861439C25EFB3C99E7C95261 +:10230000FC1EED926693B0733D19D84F71B66A3FCB +:102310007A687F7EBED89F5E3ACBEAC7FE4E8BFDC1 +:10232000856929DC7F9F96C2CF01AA65757D6A1EEB +:1023300006C6A7B5F1D55BFAEBF1B830D83794CF24 +:10234000B9C5108CB997EC319F11EDB13F9FE7747F +:10235000D1D5356F21CEF3CF351686793CB3059DA7 +:10236000CC17FB627F661E619FE592BDA696FBEDD2 +:10237000AE1D3AB2D399BEE10F0F03BC7BDF1EE660 +:1023800045FAEFB7E3CF1AA3EDF800DA5FBD9DA3DE +:1023900082C2DE5224B2DF389CCE8AFB1C02070ABE +:1023A000C43D12FE6DB88FD2DBE9F6A2FC3F83F983 +:1023B0001800E25E7DF0B967515EEE8F21FFAA57EB +:1023C000D84D17E4BE0C3CD3DCDB6F2F05C85E3A5A +:1023D000D36FDF0753676AF0B94FE42DD61943B9BD +:1023E00068DFABEDD4B29A3F80653C3FF99A90E745 +:1023F00075165E6E31FB1F46FE7DC5C8FDAEBA3850 +:10240000786F1D0C3E5C3EF43625D23A103E12C564 +:102410008D6D11F0E9B75F77E8C82EB84EC7E56259 +:10242000DFCF25019FBE3CDA07399BEB413DB4FA73 +:10243000AC91ECED7D3BB8BDFBA9CF48E7427A8576 +:102440003DD91B151F8E86CB16B19E768327632C34 +:10245000DA5968DFE17E7913CFDBAD0FFE710EDA5A +:102460007BF5B57FBF8BDE47E5637C2AF53C924B5D +:102470007A80DF07B2D4CEBFA9F050C7AD17762E51 +:1024800073F5250C6677D69F5DE7A37C36C6F39778 +:10249000AF15A27740BDA8F1C90F2BE6F639ED576D +:1024A00046E57F306D5937B0FC4A3FBF44BEDF8BF5 +:1024B000B16637CE23B2BF8F0C81B86B89AE6592FF +:1024C0002B4BDAE7DE85F920A313FCFF8EF2645F65 +:1024D000DBFA62710E9EE214D77E9C467E1EDBC440 +:1024E000F78B3F32287721BF3ACA42C67B34F03996 +:1024F0002EE4C83C13B7DF19C85DADDC51BF179798 +:102500000EBE9FF2BE58874DE48B3136D384F6C1A0 +:102510003EFCA7475B8FF7731CF91C9E99BD3CFEE0 +:102520007C6D6FDF413CCB5CD75948791B992B42BE +:1025300024273E32B010C6A13EDAC6E9149785FDC5 +:102540002E98C0FB5DA003FF549347B648E06D8111 +:1025500009FC5990CBAFEE2AD1D9302F6ABBE48D5C +:1025600081FAD70AB98D7E5326EA11916F54CBBAFE +:10257000D7F540FF0B5A987902E5990575A90467CC +:10258000CA1D66711382946FA6C207F44F631CB410 +:102590005BA404693F253A8F8369F332101F983F8B +:1025A000A0B177966C6AA67C847E7BA1333ABFE0AB +:1025B0009FA648BA0944E853558F7E25E4A5AA5F33 +:1025C00086D2AB600FB1548E3FCECF7B2482E71210 +:1025D000D6C0F309845E8BB65FCEE8B81E5E606A33 +:1025E000A5A71B834D6E84738FD81FE7F6CCE5F04B +:1025F000EE4EE5FE878AEFBA5E16BA01FA4F48F54D +:1026000044F84D752B5868C918FE44BF01E0CCF55D +:10261000BD99EB7B7C5AAE40EF47EBFB68FD1EADEE +:10262000D7138D5C8FABF4A1DDB744FBE6DA15411F +:102630001DE2F9E8CAE066BC0FF1624CDC18CCF38D +:102640005D6EE6CF872C711DF8BC18931144791587 +:102650004038A39C3C69237FE6A2ECDDFA0E3CA740 +:10266000ACE7F4B3A699CBBD35E23EDC5B52B9BF13 +:10267000559CCAF968412AE79343389E01CF3DED46 +:10268000A271A7980BF5C8DFD3ED9F65E8A18A0E6C +:10269000ECA15890AF20F389DF757B6D94573125FD +:1026A000F58610E2F9B0CDE8D18938A515F032955C +:1026B00085FFF07ED329F80F1872AA35F73F51BE77 +:1026C0004E1178AF33FB7F8457767E62F0FF180F90 +:1026D000F04F32FB2B907E26334F23C603268D9975 +:1026E0004AF3D033657A2AEE7733A53295F661D274 +:1026F000EC94D71A45B7EA3AD4F9AAEB405D85764F +:10270000AA6EBF89F278A3E7A913EB5AF3731BED06 +:10271000FF1F4EFED53AA4ABE8F9ABF0895E07CCBB +:102720007B2ECEFB8BE477EE42FA7DD092D588F5F6 +:1027300061DEF7E07B98F7BC54F7D0F3D6333FE582 +:102740002BE9CDB64054FEF6125AEF0969D0F323B7 +:10275000E17C66FE3CFC09CBC638006BE2F7024F19 +:1027600016F5275B4DA790DFD6D818DDCF7A98599C +:10277000BC18573A64607B91CFA1BB1CED3DB1877B +:1027800019E7DFC0091BD9279299E781819DE2C132 +:10279000BCDBC3312685E4BDC7139137ADC6FD0E42 +:1027A000FF3E95EC9E4331262BD22BD647F97A4833 +:1027B0003207B3A5305D3397263F3A7B209DA3298E +:1027C000DB5B14A677F59E9B5D423EA48AFB5ED23E +:1027D00031EE04FDA75B657EEFADF01B27A9F08A03 +:1027E0009AE724BCDF17F5B435D23F649B1E57B47B +:1027F000703B84F08C0FC3558563F4BC07C0612B1C +:10280000C0BF58037FB389EE5B062CB254E720EDBE +:10281000A3FCCB3792FC2F20DE2F1AB8BDD9576509 +:10282000263DEC2CEFA3F3BE27C3F7CBD03A0F8B9A +:1028300061E5D8EBD3302FF675C1D7D1F352D7135A +:10284000BDCE6838A8F3BDDC3A8FA8FD45AFD73EB2 +:1028500044FBA875FED2E8FB25AEF324EB29403CEF +:1028600056A30CD1D073B41C7C4BF0DF95CA43C681 +:102870001AAE46BD31E596B99FBBE89ED1E76EC65C +:102880007B47A74C9DFB0096AF4BFF3F375B81C852 +:10289000A64C92F839F51F6E7E14EF899A72DBDC34 +:1028A00007DCF0FD2F4F16DEE2C2EF7748625F7E55 +:1028B000E52D788FC694BB2532DE363EC5EBC78E3C +:1028C000F31B306F6096B8570B50A068E363BDA947 +:1028D0007C5FA257E0E5ACD047041A8C0DD6F03CE3 +:1028E00033F0630C3368DFDD6FC0791FBB81C9B87B +:1028F000FF314BEF4FDFA4B5A36E32DDA958793D10 +:10290000EDBED4DF855C57FDFB68FBE96F423FAA53 +:10291000FBA7D8FED602ED773D7DFF3BCE0FFAB187 +:102920007AB81EC5795517F0A7D6AE3D3EBBE47503 +:102930003C6A74AB17E41D437CFAE5349443C99FA9 +:10294000D8C83ED4F714E03A900FF73969FF3B80BE +:10295000F9860107DF2F9A5CEE7DFA21781E37E0B9 +:102960005D65D02ECEB4A31196E04DE3F3EC52E5B5 +:1029700013FCB5A8F21AFA6D8D7D246D19C0AD2235 +:10298000CD44E7C42AAC1C8E6F8D9054FEA77BA863 +:1029900054B95DC9BAF5485F53F34792DCBE99F567 +:1029A00051D9C7EC067CCE605E7A7E5AD2534C7108 +:1029B00000552FA5F7EBA5745C57390B52BBA3B19B +:1029C000BF20BDF261FFFC42C417FDF2264A9E0EF5 +:1029D000296F707A09E17D7555DE49F385BC5D1775 +:1029E00020F916CFFC056911F2AE5B22FF7A8257FF +:1029F000DC731DC957FDFB5FA32492DFADB171E409 +:102A00006F4DCF933A50FFBD66E83C42F27D9A8904 +:102A1000FC2BF8D3E1F95B822F7432354F9A8B701F +:102A20007A1C951BF4D355C8F328A77A12E7219F87 +:102A30004D2D0738C685D73F75FEFA6E948B53F33C +:102A4000DEB91DDBDDC47AF4D8CF2D78B41DE65B8A +:102A5000C5BC93F10EAC6A9F83EEF799912FD179A3 +:102A6000CAF7567691BEBE7ABF670DBE9FEECDA265 +:102A7000FBB3BCA1908CF7AD54E439285F7CECDB50 +:102A8000BC7CD30407B52B78B96735966F511C54BD +:102A9000FFEAFDF6128AFB563BBCF8DD3147CFF961 +:102AA0002A47EABF675D4B0FE5EF375622D8EE4C59 +:102AB000CB253A9FE893D814683FB15A7A16B77677 +:102AC00056C72EBD9EF63903CFE950BEDE26F0E88C +:102AD00098C3F3516E9B5365C0FB2D815E1EC4F5F8 +:102AE000A1FE4F1B3F906E5EC17825C2F96695BF6F +:102AF000B9DF3FD33732B841CCAB5AABA7704324D0 +:102B0000212C5F8F4BA2FD5C7E2FD49B1F82030A7A +:102B1000F26052655619C2990408ACF3BD3B3DD42E +:102B2000DFA4BCDB2A102F937CEBBBE9BB354AFE4C +:102B30007EA4394F04E577117FD05F52B544712AE6 +:102B4000A63D6FA4C3FC3E7E3F415239A7C744BF98 +:102B500031E2FC12FA0FDAFA60E704D2487E83D53C +:102B600008F0CE13F975407DB48ED93E2988E7D799 +:102B70005E9D2F3123E2D7CF82E62C629D10E6C105 +:102B80005F17F455211D4159D169FCAD99823F0C65 +:102B900029BB1A9DD0AE6B22BF1FEA35293087E0D2 +:102BA000F3A1D5F38C46EF3F2FF2F4AE4A62E64C28 +:102BB000D2B75200E31057BD9AC2F73193F8B999D2 +:102BC000D1CB38DC2A2A2586760D6BB1D03DEE308C +:102BD000EE575F69CEABCFACE4F1898A15E382187A +:102BE000AA78A548CD0F0C1850D8D7F8FC2C04FDB6 +:102BF0004F4F625EDCFF95F325B277663033D99B89 +:102C00006F5667AF75E13C3F307A4710787C93DDB3 +:102C1000F0BDBADA4E7124E6BA498EC23BBF171531 +:102C2000E43ED979207F309E577A299685C686F171 +:102C3000562AF40D5A167A8D1C49073AF221FCA245 +:102C4000E4100668109EC9FDE50073A9BF3F80EB44 +:102C500036F710BC6DAA1D23FC2CF53EC2EB7A1C86 +:102C6000F3083F3ECEE78935BFFC009F47D3B2094A +:102C700058608731DC7793905EA0DEF14F5831CAFF +:102C800087E3439C9B7D57C879D5CE99E197BC18C3 +:102C9000522C295FA547BFF236BF44FAEFA223703A +:102CA000C4CDE506DDCB38BDBCD5807E52D9FCB99C +:102CB000E9B89F7ADCE64B47FFF393340FF597535F +:102CC0006DA2DF31389EECA7F7C7C5B99C8BBF7FDB +:102CD000E86EE497191E4716FA2B259EFB33912EBA +:102CE000A6CF7764A17CEB49E3FAB9A69C8F3BDDC4 +:102CF0005F45E3DC3A7F2EE1B9AC66471ACE4B1D47 +:102D0000E74D47F004C6F58ECD36A165CA722AC5D7 +:102D1000B83191E3CDCA87F1E07B493E1FEFD64A37 +:102D20003EDE05B1FE1935301EC0E956B1AED9956B +:102D30003BF4B4BEBCFB697DBF7137A4633CF15D5D +:102D40001C07DAE5949B689F25A7667D378E776818 +:102D5000A5C2FE8871DC283D84DB63B6A2A1F5CF55 +:102D6000751857C2FC5DF07F314FF711A3B74907C3 +:102D70007C5C5A161471E648BDD29F4F7D3E48FADE +:102D8000AFDAEC2D73713D26372584F587AA171E1F +:102D9000973ADF2E42BAB7F1732B8FCF8C27F9F712 +:102DA000EE2889E27EAF19847C2BE4725AD53B531E +:102DB000CB41CFC0B375663CC9B759E3F8F9CB59DD +:102DC000565EFFD84489F6C5A756727D1EAD7FF0CA +:102DD0004F2BEFC37A88FB9565CC477A7C1A0B544E +:102DE000DF04DFBBDEFB33F9B94B75A175F81DFCC1 +:102DF000B893122EDACCF5D58363A442E4D3A2AE05 +:102E0000BE43A8772AF31DE27785BC87499F8D834F +:102E1000EF50CEEFE4F3BBB9D24172225A8F819EBC +:102E2000C84B077CBF37F30FA5F8FEE88D5C0F8E0B +:102E3000D9CBFBF595717D06727454FAF881F87C54 +:102E40004FF07D3F3EA3F93B0ABFFDF6848FF3238D +:102E50005BD740F64312EB94F87E70B784F34D7B5A +:102E600080D1EF630C654FA8787F2B6C8F45FA57A4 +:102E70005768EFA8F32149A4F9DD13FC851FF4B3CB +:102E8000D344FB62F4DF71DEF9AA1DD4A0DA41B7A6 +:102E9000A4BBC3F34EC27903BED64CF02E72E886B3 +:102EA0009EB73F599989F09CACB37A514EFFF93DDA +:102EB0007E1FD874A5B90CE543250BACB56BE4D3E4 +:102EC00048F067F41A3D372A6806DF3C5CBE6A9713 +:102ED0003DA25CD0991451FFEABD9E88EF85A024E5 +:102EE000B5DFC7767923CAE3BB2744D4BFE6032501 +:102EF000A23CB1A73CA2FE75BDBE88F268E6977100 +:102F0000D137F4D544B4FB330BE89DB0DED1CF808C +:102F10005E227028DD7909748F00FDDD78C91FD12C +:102F20004F8138B75CC21646F4C35EE6F74934C039 +:102F3000FF108FA3A3EE93C815F75CD73C1D792F24 +:102F4000452E9E6F8EC36764FDE873CA4DE9361740 +:102F5000E20D787D1CDA1103F084BFE403F8BE753E +:102F6000170B06255C17D565A3B7F173D7D1EB52C4 +:102F7000CF3133DDDB7AACF757D0DF78659E292976 +:102F800012AF319E48BCC6E645E2D5E68DC46BFC67 +:102F90008448BC3A9448BC0E2B8FC4ABDB1789D74E +:102FA000C49A48BC26FB23F19A5A1B89D7F4864859 +:102FB0007C662E8FC45756A036E2FBF0A68648BA30 +:102FC00014F81CB16979443B159F01F8DFD7E1F390 +:102FD000D6EA1203C61B66FA0C11F78B5C295E0F4A +:102FE00047E1F54ACF9F83FC7B03F95CB573F02F73 +:102FF000D2FF1BF3E40380D772F4FF3CF83240FEAB +:10300000CC24BF89E4C1E1E49B8E38052D68F5C06E +:10301000646FAB1EF36354FB0EC305E4EFF8B93FD6 +:103020005321FCC468FF7026EBCBD00F1FA81F1ED6 +:10303000B4641984FD7F0AE54B39DE8CAD43FFF0A3 +:10304000D734CE7BFDF30F0DF00F713FE74AE565F6 +:10305000BFFCBEB981E4F665E5B7273D2C0749C83A +:1030600006480E4E5A3EC987E7EE2F1A78DE6DDF0E +:103070004D268ACF4FFA6E09BD7F4DE27658E05754 +:103080005C5FAFFAFD35E978EEBCB4D224A1BE9EF8 +:10309000649688EF4A7B65F2074BAD85E99671E847 +:1030A0008F9864FC546A95287EF9CA3F754A00E3FC +:1030B000FF6EBE9F774CE4ED1E736411BFBE6F338D +:1030C000F9CDB0BE49E21CC8A1283FE7988DE7655D +:1030D0001E5BC2EFA93E964534C48EDDEF11F99513 +:1030E000EFD2BAFBBEC33C22BF92E20AFBAC4E9EBB +:1030F0003799D943798B7D13991DF755C2FBB29D42 +:1031000021B4A3F6B567F1FD4950D2B43FD9DABF77 +:103110002FCBFDE68D05FD7E238EB36F5332F9096B +:1031200093C53D3FFBF4A0A971BE1E7EBFC13E9179 +:103130007F795CE8C77DCCB38AF25C563091171B6F +:10314000A078C5BE9A5C6EEF47E9CB7D2C90D38604 +:10315000F56B2C6AFD71EF62FDDAD1BC3E8B8C13EE +:1031600040FDFC97B0BECF4CF58F39BCE9B88FABB2 +:10317000D2CBB19BA6A623DF96811F88F32DABE6A9 +:10318000F78394D95BF5F85EAAE17AB57D84B4093A +:10319000DF57A5F8276600FDA68C94A8DEB411CFF2 +:1031A000D0EF361E1B32FEF2ADDF3F3048FCE55D4E +:1031B0001BB7CB0E27173472FF2292FFD4B8816A57 +:1031C0007F95E32F160E47F91EA2E7C0B801F09DC8 +:1031D0006E30BE2B34301E97F1E1BC2B987F7F0FF1 +:1031E0000726C5A7407E54E17B75FDEF393A0FC72E +:1031F00001BECA6224AE07911F34F6CB50FCA7C2B1 +:103200006D9AFD5406AEFB50CCC50CADFC6A4DF476 +:10321000FB33347911D39CC118FBD7D8CD6F0D097E +:10322000CF5F9C40FA9821E039C3EAA1FCE1633109 +:10323000DC1F8A86E3A4EA121ECF12F6EF64D0F3F5 +:10324000DC9E0D12FC2A8790635F13DFFA2EAE63BB +:103250003AC08FC7B7BE65C079011CBF9731881DC2 +:10326000FABE58C795DAA1D1F4DB2FD7AA23E35CC5 +:1032700043C7F3078767D710FB179287F73B45DCF7 +:10328000DFF2A69DFB0FF8FB6DC99A7CC0379B3817 +:103290007F035D905C2A17FA12C040FAD10BFFC37E +:1032A000F9FF9559FD6619EDFE483D582AEE69294A +:1032B0008BBA6FAB54DCEB521AF55E5D77B49E545B +:1032C000F735865AFF0B19428F7AD8C8AFE03BE832 +:1032D00048B28FBADFD7D1BEC0EBEEDBE6B7C23A59 +:1032E00046FE6834F919AF27DCF1C03B587E2A97B7 +:1032F000FC94A3C9F73D8DDF737FC8BFAB7AF61589 +:103300004C22413E91A57B319E9837EEC3DBB360E2 +:10331000DE4762D89D584E62B5ED55304E527E76EE +:10332000D11AE8A7CCC8A8DEF4AB978CD5EEEB1F7A +:10333000CDE071E7E9E2DC413A5E015A444F3DC617 +:1033400071D293827A3BF46B14E73E53F5ACD1040F +:103350004F63D226AB1DE167E1FDBE5DF89B22EC19 +:10336000B72C9B97AFF2C69E1A8EF391249ACF5535 +:10337000795208EFCF2F73F2EF9545CFA560DE6C41 +:1033800059A95AFFA6B358BF4CDC031DA7F80DA3DB +:10339000303E22E248BFD173FAE8C930D3BA5F9D0C +:1033A0005362C07B5F66F9785CEFE609AB24D48B8F +:1033B000B3FCCA38ED39CA3F6418687DD51378BDAF +:1033C0006ADF5CC37CCDFA67297D747FF2AC9A53C7 +:1033D0007A940FEF47F17915FE43463EBFEBCEEFEF +:1033E00060DCA78CDB2DD582CFDF453ED7C84B1FD5 +:1033F000FE03F5ED1C2EE7AACA399FCF620DC49FCC +:10340000356C133D6F679DF49CC3BA397F9FEAE723 +:10341000EF4CF4CB35FCFD57E4E35B9942F5BA631E +:10342000C71878FE46245F0F2507410EFC8DCB811F +:10343000C1F9F0CD21EDB417B7A35C9BADDA6935C6 +:10344000ADAF939D56CEEDB40172AD6038ED230C57 +:10345000A52786926B43DB673BF4C23E73678E0FF2 +:10346000C7ED357A2221D33D100EC706916F5A7BE6 +:103470006D483BAD52C8B3CBD96943D8675FB30F32 +:103480003C26F31BEC0347EF33C7252AFBB335FB80 +:1034900042F51F98CD9EABB1EC63D9563C8F57F2E5 +:1034A000FE70E8BF5EC41363BB99B203DE3F29CE52 +:1034B0003D1C1CEEA17E938C3C0F06EF4BC41F4AB3 +:1034C0002C2EEDA673397D6EB0B33CE1FC8C276DDC +:1034D000D0AE08DB71B9D0DFDECC1A2D9AF6A57715 +:1034E00070F9FCC54623C9E72F1C12C587BE986D2D +:1034F000253BEFF42346CA3F1C6EE4FCEC52CF356B +:10350000E12F31417F559959FC5CA6742809835DF0 +:1035100001B6819E6ADEEA69711EF20B8797EEFDA5 +:10352000FE62638284FDCE6F1971338E3BBF252D01 +:103530008B2395D79F96C9E779DAA37CD685EBAA2A +:10354000B2D2B933C6FC85187F35E9C6559875A83F +:103550005756F47541FB25E9563BD27559E689E388 +:1035600079503EFBB281EEEC5DF8CCCCF81036D34E +:103570002B49BE82817ECEC260A41E59BC2BB2BC38 +:10358000A433B25C1FA547A2F5474366BF7EF0A2F5 +:103590007EB8523F2B43521EE2F41FA4FC9A450210 +:1035A000FF265343EF0E58BFE9D1BCA25544673CF8 +:1035B0006F2A61735611DACDDE4CAE372667FA56A4 +:1035C000225D9A32F3C7A05D599A593997F0B92D07 +:1035D000C683FEC11731DC5FF8E200D7AFED19FCFE +:1035E0007BFB13268F44FCAF548E2FC6BC284ECFD6 +:1035F000F55BB93E853F33BFC74F31233EDB8D8A34 +:103600003119DBFD1F7EFEAB76EB7DF43B5A75ACCA +:103610009BEEC9398A7843FAD5BD60C4DF55CD6ABF +:103620005446AD82F92EF659E8F7B5F4FFD0D3EF42 +:103630008AAEC72E2762BEBF62C77BE197ECE5FB6F +:10364000493FCCE471DFA6BFAFF2617FEAB937E34F +:10365000CB550164CF1BFF5146F7CBDDB7FC353AA4 +:1036600087E132F60D2B41BF61A34C747FDF777F7A +:10367000BE99E7359677E3EF879DD968A5DF0F3BC5 +:10368000BCCD44EB3F7380DB1F679EE4F0B82FCDC9 +:103690001A344B03D7DF288544BE53771CE2E34F2F +:1036A0004F3E148778FC939ACF686FA073F4CCD305 +:1036B00010713E66E7761DDD57B9B365D9AF27C2F5 +:1036C000BADA67DC3E0ED77DA3639C05EFB354BF27 +:1036D000ABF9197AE78467510EDDF80F1DF1871EEB +:1036E000F425E605973D5A4979B23B7D1607CED7BA +:1036F000D3D241E7E0615D84B79D1BCDB4AE2CD63B +:10370000B98ECE0BB54C217CD5B6D4123E86CFB443 +:10371000905DB273BF8D76DB77DA2758B0FD4EA689 +:103720002F1F2CFE7F4726DF172FC9E4F19E9DEF48 +:10373000F1FB45A7E8AEAF403DBC64A34CF9BA47E6 +:1037400066FCF638DEFBA9F2973463424A0FCF7F5E +:10375000A0DFA7BD47A51F319F854FEBE81EBECB5D +:10376000F19929F37A9A5F34BFED0C78E9F72CA22E +:10377000F9AEABA5C882F1FF68FEBBA7259BEE2D75 +:10378000624D9C0F4F65F2DFBFFD067CD83B181FD2 +:10379000B2B4191179F22ADFA96555DEABFBF966DF +:1037A0002F539EB1D23D19742EC2E6E1E7766C1E0E +:1037B0009E5FADFF72D9AE5F019CDA32FD17916F4B +:1037C00033995288F4E6E9B397A2B96215F99C2CB3 +:1037D000879F9BDC62F0C9448F7AFFBFFD0ADE1B26 +:1037E0005A6AC722FF5B3CFC3EEFC9997EE681E73F +:1037F000FC15FECF0E32A4BBD12407FE2F6B48C5AB +:1038000034008000000000001F8B08000000000052 +:10381000000BE57D0B7C54C5D5F8DCBD77379B6488 +:1038200037D93CC81392DDBC0879B1091051119702 +:1038300004302AE2F25041AD6E2040DE41E823B66A +:10384000D82C264054ACA1464545DC20205AD460F3 +:10385000112904BA8022FDD49A56ED87B6A589585D +:1038600094670256C57EFAF93FE7CC4CF61122F870 +:103870003D7EBFFE7F5F5ABDCEDCB93367CE9CF77D +:103880009C99AD383F5B67CD63CCD4CE1C1E133CF6 +:10389000EDCE92D058C6F4B1CEB1AA95B158952DBF +:1038A000EE84FA4C3B737440BB6FF1EF6ADF33D7A1 +:1038B000AA676C18BC8F75523F669B85B1710CFE70 +:1038C0001C7315E8677DB58EDD0FFDB0AFBF555990 +:1038D00031631146467F362B73874430661CAFA395 +:1038E000716DE375EE6B22681CAA37613DF4173EDB +:1038F000D6CBB0DF4C7C5FC0D89204D5FA710CB443 +:10390000B7B35EFF76F07D2FBECFCCD651BD8E19FA +:10391000AD26186B19FCD7B73678DFCECBF8F72D6C +:10392000FC73AE4D29EB84EF963066692C023800AB +:10393000E04E1A0FE669C2710C348E9CE7F9A44977 +:1039400059569C97C391110BF330F1AED86C98087F +:10395000CE57B133AF19C6672BFB5FD7D97C7056F2 +:10396000183DA5A1D6C178AB10F0DD83F0298C5DA0 +:10397000618772F6D0F0855AF938F27B099FA1DE93 +:10398000A4B102821B160BFEF9A1CE9309E31B9290 +:10399000124C2C82BACBD6E05D320BB3DF0FE33C86 +:1039A00095B0651AD67F191A51C022E19330788EEE +:1039B00066ACD1C8CB3F098BD880CF113AA629304D +:1039C000AE41C7262BD1D83EC583DFC586C113C6FD +:1039D000FB89EA644C857A5D9BC2D219BB41C01752 +:1039E000CFBC8A02F54F54ED28B4C0B8C31A4C8539 +:1039F0002AC0931AEA986E1D86E058539C66C63E0C +:103A0000D2B3394857C178490D9D348BF0DC0A6B2D +:103A100012C7D83CFA84B1B8663EBFFE2A9D670340 +:103A2000F437AF47E95510DFAD531C3D725DD360ED +:103A30005C5D9B11E1FAB9D54674C98C3D0CE7FF7A +:103A4000E815CC723F1413987DAD9AEE5BC706B1B2 +:103A50008E4A97C2D70FDE188B7DE3B2B6C760706F +:103A6000C0AF85B793E3CECBD3BC2117181FFFFCA3 +:103A7000E196EDC31FEFB6215C437DB72E94B98D5F +:103A8000D1483F762BB60B4977FD18F190DC5C6E80 +:103A900045FC32D66D43BCED4FF46A58DE1F6A1DFB +:103AA0006E07FA98667CE330F63FCDC83A555C6FF6 +:103AB000BBFE544FB63F3CC3A38EE5D25231C46F18 +:103AC0007D63A9F3E331804A038C87F89C61207CF5 +:103AD000D6DF3D89EA772B8BFF760FE0CBFDB6DE94 +:103AE000BE09BE699FE1480C8BC5679CCE0DF4B33F +:103AF000E33F55BE0E2B601DA0ACCC2C4B54A17DDA +:103B000083D3A00B817E4ABBCE1A7A605D1B76F60A +:103B10001A583EA02061D6E315D06F95F1FAC791EF +:103B20005EDB97972422F39C517AD6FF0CC7A9320B +:103B3000D937019EDA6D8EC46898CF95AAEE4E27CC +:103B4000329766099B01F3BD32950D946762595512 +:103B5000A87C1CE8E76562426897EF5BCF5481F769 +:103B60000E8D11FF747874EE4CA0676519F027E094 +:103B7000A7835997233DB897319A1FD33ABD3A2866 +:103B8000779459ED28A73C665894486C077FD8CEA7 +:103B900064F46CB2F9C6C7E5457A881BCF710CEDA9 +:103BA000CA908E259DD8043DB547F1F998F39C360F +:103BB000939DB1314FAF7F270CE8314ED501B35300 +:103BC00013371B2FF8F60A4177F0AF477480DF24D4 +:103BD0002C4E5B3379827F99B7F77DFFF08CC9C398 +:103BE0000118E85BBE87E560A66C9D2C3B50EEACEF +:103BF00032FBDE6B09D0BE4594DDAE19533498AF6D +:103C000022DF57B53900DE874259C078FEF069419E +:103C1000FDEBA17F9355B67FFCC62919006F912C4F +:103C20007FF99003E07B481FD81F91BCF81E0B72F0 +:103C3000BCA8F4E235AB87E3FA390A91BE7F99EA72 +:103C4000FA13D2BFB5DF5202CBC1567D38AD6DB489 +:103C500015F97016095FFDF9D9A417F4B10AE90F37 +:103C60003DD0A415E9D09AB641A5F5B2BA71FD8C44 +:103C700089D6225CD71EAB42F2608C8EEB277DEC9E +:103C8000246F3234D333FB86B7A1FD9454D7C728B1 +:103C90009FE252A71D0CC1F59B9953E082FE2BCEEB +:103CA0006B0EA4F7CC0C8347817646D49379BEF58E +:103CB0000E113C6C443C50BB9B37A930D4D536D751 +:103CC00019EC4FCAB5CC76AB01FB7B46C8BDF6AA52 +:103CD000349DE2A74F559B8EEBD16CAECFEECF9EBD +:103CE000497A588B9A3C0EF5B06C9766C9D0E1FCC6 +:103CF000D3860BFD087A7712B44B6B77C5211C690C +:103D00009A6B2ECE3B6DCE4283DB86FDAA34DFB1AB +:103D1000AD9ED049B896953A9609FD9D14F25A6F1A +:103D2000A928C7F6FA39461312EF13CECDA1D87FD2 +:103D300066F686D634D42716CD8EED3361DED84EA6 +:103D4000BBFB560FE257C273BF452B43388A55D78A +:103D50005DA47F62AE7020BF8C88BEAECC0EFC9698 +:103D6000AC6E2B5C0AFD3DAAC0BC2F603FFC248DCD +:103D7000AF4B8BE274DF88FC56C818F2E5803EB08A +:103D800073BB24C966A07656B7A504E5D6847F38F0 +:103D9000092F49368DE6B157EB09B720DCCC71D736 +:103DA0003C9CA7D36445B9C218F037B48F6DE2FCD0 +:103DB0006D8CED796034BEB7EBEC99C4FF9CCFCF2E +:103DC000FC267E03EAC7CD36D748DB389C4FCFC3ED +:103DD00037E27C1ED0483E318DCBAB9459A622D41D +:103DE00023F7C5F63C5C06CFA7F4CC1D0A727BB561 +:103DF000FD5E8702EFF7C6320BC2150ECB9400DFD3 +:103E00009B4C8A8741BF63814F514EB20485F4B306 +:103E1000C9DEFF2EF67F9DF55D3BB62FD5BCFB4876 +:103E20009F05D9174454502E11A54C60A36346B486 +:103E30006F58CBB7313EBB630A73B4E0FA497BE4F9 +:103E40005103C813F8F4519DD18382213CCFA19A2C +:103E5000A17C67B63281E08BED662AD20DA86F9403 +:103E60009769D9330D0CD667411BE7A779820E9964 +:103E7000664F72827CBDC616CEF5296BA1FE49BF86 +:103E8000E17C561B3C9BA08BB45658203F7DCED87E +:103E900072DE0EFB837E0CF772399E3696AF2720BA +:103EA00096DECFB429C25EBC573CDBF8538C2BF9AD +:103EB000AC01F9CCCAE586BF7E96FAB5AFF25C04D8 +:103EC000CA83795DAA17EDBF8BE9E52780D44291BB +:103ED000DEBA5492EFBE7EFE1961350DDD4F958D31 +:103EE000D3EBFEB95F44F4C0784F743D138A787BFE +:103EF00074066868D25340F5F00CD79CF536C2972B +:103F0000FD175930CE13BF50C90E7E54E976A89CD8 +:103F1000CE49FFDC9931F3AED7A11C3D36A708E1AD +:103F20004AD09851057ABA578C13B91FF006FD3F55 +:103F3000AE008B44FBF0FBB8B2267109D48F2DE3A1 +:103F4000F88C2E73A875F07C28AA7F0AF26DFFB555 +:103F50008C6D80FEE3C3177720FDC7DF995DD40C1D +:103F6000F30C1BC3EE9C09DFAD423A81FE13E19BCB +:103F70004890D909F7BA6DD85FE47E27C1D39F1F57 +:103F800066DF004DE261EEE6687AB686623BB65CBB +:103F9000C1762B8729C4CF2BCB410FE7111B699129 +:103FA000D1FC79189E8AC65AF4F89DC6B4305EDFFB +:103FB00082E33C12C1E7334CA7DE39238FF4059529 +:103FC000A381CF37002C6B6D5104577C082BC3F9AC +:103FD000623DD20FDAE7DBE07D7CE9E2421C3F3E46 +:103FE0009D3FEF17F6D013CCB37613E235DB60417B +:103FF000BC4ECB3EF89D76D19AF8591DC8E77DA7F7 +:104000008FAD5F01758F2C9F3177017E9FCFED11B2 +:10401000E6DE669F45FA3ED07E3A772A4CA780427C +:104020003A74283D12ED9C1704BF21AE5922BC679B +:10403000D6480BC075685F16BD97E5CFFEF28605C2 +:1040400099F64AD4DFB83E5106B29F00316EB43FB4 +:104050004CDB123DF7DBC8DEF1D2FB5742E8BDB4C2 +:104060009BCE34391F9F8C024B73929C316DCBB425 +:10407000A31C027B88E472FF1E33D971C7F50E9230 +:10408000E7EE3D23AD9BA4318272680FEF9F65F789 +:1040900014A01D69D23327AE9FA983DB4792AE4C93 +:1040A0000AD4131D7B2D68EF9C61DC8E629A23611C +:1040B00056BEAF5D8B90E7B5066F16DA39F23B5905 +:1040C0004E0AE17E2396A3A0BC5BE8BDDA305E5EBB +:1040D0006D74FD11F1BFC3C02AA99F08A837F9E18B +:1040E000A7501BC00FC1FFE0080FCAE72B53F97C94 +:1040F000FAEF5302F0A3CC34929E3E56A86D0851BD +:104100007C76E2D16C9DD750E06F2F7A2D33FCE6A0 +:1041100021F1307FED27DFA05F23F131DF69E85522 +:104120000B06E3437E37BFA882FCA8F9D5CBA6E3F4 +:104130003358AF0DB46B0D11460FF7EBFA700D80CD +:10414000BEBF089D6440A2FAF12F6718907E17B297 +:10415000C5F4AC646D066EEF33A30EEC356BAB4665 +:10416000F3B56E513C561B177F3AB23D2D3AACAFBA +:104170000171FC048A7037488FCBA05AD129686737 +:10418000595BA01C0F60DFA7B9510F751C0EF728F3 +:10419000D06E55ACD58074B8AA45C7EDDBD55C1F91 +:1041A00041BF094817EE169D03FB894CE376C3C84F +:1041B00034033D81CA3D048F78B6E8855D2EC65B29 +:1041C000CE745E7CEA14FE5C8576C105FC3BD95F4B +:1041D0008B7EB111ED96FE113A0BCA992F0C8E39D8 +:1041E000389F2FA2B318DA2D2DE6C5AD65FC3DF141 +:1041F000D617A1DE327A5FA8E3862EB21BDA391F0A +:104200008476205DE8D3B8FD148CEF056D81E5451B +:104210006B03CB559EC0F27CE67A2901A65EB325DE +:10422000B05E9F66A1FEE7313BAD4F8BDEFA471BC8 +:10423000F2DD7D1A43F8970FE778D38DE0CFB4A86D +:10424000C973483F46195826C1CBE14F2B8C5610F5 +:10425000DE9628CE0FFF5D7883E11C9D96C5F11B8D +:10426000C5F9A405F844E08BE4C4FCAD21CFA01C43 +:10427000986FB646E03C4E2AFDD9A48F1E345B37BA +:10428000513B0BE9DB79C2DF2D4BE37AE2A862DF19 +:10429000EC85EF740FBD701FEAB3F90FA8456827CE +:1042A00097CE3211DFED3A61F220DF5502EE124176 +:1042B0006EEFB2BF477674F0FCE0CFAA49FD0D4B1C +:1042C000362F16FC14F287FDDA91BE063A91F21AE7 +:1042D000FACC8973CE49237DEAC945FFEDD8711E1A +:1042E000CF78447774DB1BB80EDB42495FD52FEBE8 +:1042F000DFCCE0FB6F87B9EEC4F6A7EEFE70AA62D2 +:10430000F5CDBF6FCF48A297B12D21BEFEF15FABB7 +:10431000FDCA387E2B4CE27278B607D657AE0BFA40 +:104320008EFD67883F9CD27E79D4E01A85F6E8132B +:10433000CEE26284E7517D5B19F2FB8C24D75D6984 +:10434000F0FEE329CE833ACE775968E7ECFD7A7E1A +:10435000BA0678741F36DA516EA33D8B7232D7C617 +:10436000F19F60646ED4A3D2CE95F654307F2D4B6E +:10437000E3F6D483698E28B23F44DC4D15F693D121 +:10438000F4B203ED3ED6A558509DD45B59EF228C74 +:10439000A375D948CE3624303BE2ABDEA4EBBD0C8E +:1043A000E371269D2305E9D8AAF3201DD7B733F77B +:1043B00022582FA3DEE14DB6513BF76505E857596A +:1043C00003E253F53B67309789E030A39C473F6594 +:1043D00001C615C1FFC03FBDF053F4730CC4EF63B9 +:1043E00063A55DE8A17E32DB5D037E09F973CCA98C +:1043F00073727D6C3916EEC3F7E3698E57719DFFBA +:104400008E15A07F53131D4F227E3F473D3D1AE47A +:104410005E1A87EBD07BB3481F7FCE9C423FDF1CE8 +:1044200089F69B2C1F535D3FB6003F2C626E92CBEA +:1044300055CC434FD61E4374B050635E0DF0BF7031 +:10444000B6E303B42B902FBD417CE95FAE65DD5C24 +:104450008E037F7AFDE8A716ED7CC06B9D9179C332 +:10446000F1D919F85D3DEBA7EF1A767E1BE20DE05E +:104470001B4E57F1EA92C2C588A74B8C435E6ABBBC +:10448000E3D6B6380C35801E25BDD0BA47F1603C66 +:1044900067AA6A7218A15CF7A08EF81B3A9C36AE28 +:1044A00018F514A7A706EBD4E31417047645FA31E0 +:1044B000EE503DF7DAA8BDDD0BE5BA3D668C50B095 +:1044C0004A6BE534D4AF551EFD473D7EF3AA66DB4B +:1044D000A6A2A8F99CBD65403EA9D912F8BEAE338C +:1044E000B0DCC0B48F06EC3818A7F12F93BCAFF93D +:1044F000F1E35FD2CCB1441F5666FB16F1AFDE1E6E +:10450000E9BA009FC8E7974D0EEF6B7AF0EB14C73E +:1045100051215F0CC88FD51A8F0707B7B7A772FE56 +:104520003A60FA2CC6E5F7BE24CF4DF188E2920B33 +:10453000F3E559C197E1DDC29ED5DC2CCAEFFBA1A2 +:10454000BEFBA7D06B070CFCFD43E67007E231C150 +:10455000C05A8D45BE76093AD682F1C3AB6DCEAF57 +:1045600091FE8D56196F7033B4FFDDC3B8BF21FDC6 +:10457000D5645547EB9AAC1A373403687FB40A3FC9 +:10458000EC22F4129ED7AF477CA25F8F7408EAD961 +:10459000CDA2294EECC06732E01EFD0419CF84F78E +:1045A0000CEDF899F1BC1F03B27F117ECFBC185FF0 +:1045B0005E08360AD627A43B63D209FF0EB24F2508 +:1045C0001CF582CE06E0D8A9501C4FD22DC6A750AC +:1045D0001FB0B610B2638854A89C487EE9112C0322 +:1045E000FFE62739ADD4BFF0F7E73F3482FC7DD634 +:1045F000184372639599FB210077005E25DFAD5368 +:10460000387E8B4BBA49DFF5DF0336BFE217A710C0 +:10461000EB9A9FAE04C8C1B562DD1BD21D0538FE02 +:10462000A90F8C468C2F8E15F1FA7AA789E24AF5EC +:10463000200710AEFA658CECB47AE17FFF32D535F5 +:104640003E7D1CC6BF4C6E3512E56A07C565F4B1E8 +:10465000AE31289ED2B17E34C5AF2660FF15CB5C4B +:1046600067F7315FFCAAF8DBD295651C5E0BDA5167 +:10467000B16897FBD1DD0FD2397DC9E7AD41F0A715 +:10468000C60A7C76AA84DF706B37F91FF5DBB95157 +:1046900051ACF27D1E5613CDD06FAADF3EA9F07546 +:1046A0002C77861662DCA8F8CFD32C68E79D2A8C7D +:1046B000B623BC9B6DAE99389F14B5A70AE59C79CB +:1046C000AC37E549E82FD569A2384830FD49BA8BA7 +:1046D000077A457CC5DF66F420BD0EC439F4CC658D +:1046E0004CF7D16569BA95E6912AF449EA32275B1D +:1046F00060F2954DB17C9DA05E87F879306D4A29B6 +:10470000E2AD345DA3EF06F6978C609DA40DE647FD +:104710001BE3FB343F13FB3640E5BE7DA5B4C1FB74 +:1047200036121EF9BDDCB7093FAF115ED32C3CAE8B +:10473000686E157886F5473C4FE8EF2E8D84F96654 +:10474000B47B295E138A6325E2283D0F8CC6785618 +:104750008C3601E309EB1B8BF6639C47BBAFFB2A4E +:10476000C4AFB5CD52822155ED1BCD49F11BC6E931 +:10477000ACA2DD42760FD31667A31FF3B858E75FEC +:10478000A63A96E37A94BCAFA7F1BF7890DB71EDBF +:1047900029B5A951F0DDD10F802E95A1E5A79BED9C +:1047A00037A2BD9FB63A8DE247E6561EEF6119402B +:1047B0002000AFF6E05FDC1CBEF7462028BF4E3776 +:1047C000D1B8F81DFA11F35BAC06449FAD9DE9101A +:1047D0006EF3EA993AB1F8890ABCCF6C9DADC37803 +:1047E0004CA68823058FFFBC98C76FBF56290EAF14 +:1047F00033F238709D35BA43E5FE23D14D5D7A6CB6 +:1048000007DABDCF209D63DCB36D12C5C783ED967B +:10481000BAEDE564B704CB1F297724DDFD56E3F13B +:10482000B5DF32195FE3F4D7A2E7F8767FA323F967 +:10483000932AF615D31FFA3AD145EB21E35C1E7A91 +:104840006A7AEBCA049461CB7B26BAA176FEEA2889 +:104850005D7D1EF6635F42FD3C6862D4CFEAB4FD25 +:10486000D9C827AD16A658B1BF45A9C887ECCF2136 +:104870000CE9457BD0A44379AEAD71602DD3A2E2A3 +:104880004AA8FC0894A1FD8A743D8DF7B3740E7F8D +:104890008BD2AF907DC31C85A8EF1AD25D07910E15 +:1048A00006F6111BC3C8DE336BDC6E36377EF8C2EA +:1048B0007228AF17FE7AC9437933895EEED314B4F8 +:1048C00013BE88FA03B5FB621C53D09EFBA3C0F352 +:1048D00005E82599C1BAA6ED519DC88F9A9ED3BD12 +:1048E000765F6C077E7722CEF53EC271558B974C72 +:1048F000D6BD968F1F2EB30E5E8FA1F4418FE03789 +:10490000E6705F707FCFAE63AE4E6E6786221FCCBF +:10491000B372FD23F74383F741E5BEA7BB84C3E928 +:104920003E6226F9C3D8E2D18837B97FFAD6691E2C +:104930001792FBA3FD02CFA965209F402E2CC671C4 +:10494000016FFF4CE7F1ADDDD1CC6189C6FD4ED7DB +:104950006738DFC69EC204A49FDD1171250AEDDB16 +:104960005E749FF43CCAADB7841F89E3DB008E6898 +:10497000DCDF8B19BCBF178DFB7B31B8BFE7797CBF +:1049800021CEE326B1EF36687F6FE9DFEEC1EFDEBF +:10499000D6DB515FC8FDBD24DCDF83F7A5959C3EC7 +:1049A00092BA54921349651C2FD12EE6314259C553 +:1049B000FDBE18BFFD3E338F33B42F601407FFA533 +:1049C000627DBC22D67FDF8F7FDF5E67F5E0FA6312 +:1049D000FC07E9BAFF2E26E33FF4BEEF768B88FF93 +:1049E000F430F493FA2FE7FA6CE0FD9C2C1E3F4361 +:1049F000A6C7F7738D221EC6E347EEB9391EFF78AE +:104A0000585F46348F87897D66195FEFD304FFFEB8 +:104A10005047EDFBC4FE6109C687615DFA98A0832B +:104A2000CA30B12F28C6AF4C23F898718AC33FCE45 +:104A300008EDDDE86FB94D3AD19EEF37F689FD46B6 +:104A4000B99E7D621F51EE1BC6355FD81EFC50E833 +:104A5000E9F1F18EF1197E742EF96277517C09FA31 +:104A60002743F1C7BB8CEB91A519CE49F8FD64A390 +:104A7000BDE211A83A20E2796C1AF77798E672E164 +:104A8000BCDE4FCA2E443C05C321E5D86EF15D6EF5 +:104A90003233A2DF0FBCED467B2067470EE91B6770 +:104AA000864EEC1BC0EA039E7384AECC8DEF884625 +:104AB000FDFF9162CD4B517C74BE3B2C99E8DF8F9A +:104AC000CE6F423807C3E7CC9F993F345CE5198E1F +:104AD000DB33C6F9DA0FA5BF5022217C0643E75D20 +:104AE0001447AD33D9916EDEC357F0DD3337877885 +:104AF000317EDCA737B5227F1F0EBFE3E03040EDEB +:104B00007EA3AB1AFB9F73CBB52BB1ACEC8FB12E50 +:104B100001F8FBCA7B8A715EA546573DC25D6B7486 +:104B2000A5C6010A4E8F708D8C4479EB8C117ADC0E +:104B300099EFBC20FC1C9E52858FFF86C1F5133E69 +:104B4000FF1EB31DFD19AD87BE63A661D4CF1181D1 +:104B5000B77D7AC784B300FFBE35A985CD004F6904 +:104B6000C407B735A0DE7F2CBE90EC2A8197036284 +:104B70005E0B74CE38AF1A006F0BCEA7D6529E9A3A +:104B800008747B5A2FE035097835FBF0EF82976483 +:104B900022D2F93D4A009FBDEA8E223E0BD13577E5 +:104BA000105F961BEDC8D7EBC28055C03E7A47C058 +:104BB000037E0943FB1AEAC9FEDEC4EC39281B92C6 +:104BC00043387F25AF523CB87F21E36F15CC9982E3 +:104BD000266847866B1DE2E76FE1FF390EB7509DEF +:104BE000A5661AB7E78330AEFF2770F82FB6FE8CA4 +:104BF000ADD6619C64A6887BCD3C6D203F6B81B0B7 +:104C0000BB66E213E09BC51C7A1CFF26E6D2A3FE1E +:104C1000BC85B9E9399779E8791BF3D2FB1FB01E3F +:104C20002AFF21BC604423E07FC663233331DEE5E5 +:104C300087EF9709DF46D79DB19C3E3E89A778C391 +:104C4000B04BA2D719823E808F77613FC0C71985CC +:104C5000697E7C32799858B79EE648C0DF8C385B15 +:104C600021EE175CFD355F97A91F5B083FFB149091 +:104C700060453EFA0081624A043C5C2396B0FB1C0E +:104C8000D76FD7386A28DE7DC8B13C3616E09CA2C3 +:104C90009A685DBAED2AC509369F057D09EDDE5893 +:104CA000CED7EB8DCB15D293D725AC998CA148A646 +:104CB0009ACC6E18F77387CA70DCE96B79DCA06C4C +:104CC000B8DEE7CFC33FD7650496A73954CAE702D9 +:104CD000874243FA9B9617180F98CE569FC538FD0A +:104CE000F48BC405FE9621E202392C87E274971EEC +:104CF0001738967181B800C3E825C8B31B43B9DCE7 +:104D0000ED9E70E0CA3E98F7675D36C2E6EA1C8504 +:104D1000EFAF653ACFE0FA9CD1F72C2479D704188D +:104D20001EC9D8C74D46E600DA3ED664A1F2A74DAB +:104D300009F43CD164A5E7A9A66C7A7FA6C94EE523 +:104D400029998E2F108E55A17C3DE4F84B05BDAE00 +:104D50000AE576C7D2D01F1D2E0738968EE071B6B1 +:104D6000CACEB6A938EDEA9D9D07F109F52AF840AB +:104D70006CE91AF0AC00EE05AFB956A239B4E8AD53 +:104D80009EE92856C6BDFF711CE2A5EEBCC25CC000 +:104D90003ADF643BF49930EE274DE3099EE34D0E74 +:104DA00082E76453193D5D99CEB04C989FA3AB77D1 +:104DB0006502F477C3D65E2D199E531C0AD9DD1304 +:104DC0001DCCE381F558ABE7FA646DA2D18E7C3C33 +:104DD000297FE6533F6428A75DB1F8FD4DD1F3A7C5 +:104DE000C440FDF4F1E51AB6BB05E814CB928E2F52 +:104DF000CEBF1C1F7582364EEF55084FA7F74611E0 +:104E00005EDEDDAE123CE70E87911D726E7B38F1DF +:104E1000C1B9D6100FEE9BEF36B84352A0BC3B256C +:104E2000CC8EF273774A12E9D110C1672761DD1881 +:104E3000CC7FD62BE9F1E89FBCBA55E9447FBCF89A +:104E4000C5A814A4E393D19D477E4AFB15068A4367 +:104E500003BD1E7B02E5DFF004DAA73B23E43458F0 +:104E600082E16877D61BA41DEACAC5F2C930B19F9A +:104E700002E519DF6DF75D86EB113CBF25AFE4C697 +:104E8000A3FFC586C712BEB2154DD7E817C740F8B5 +:104E9000AD237DE5DD2FCFB0E3FCB25E7C2CED676A +:104EA00000EFE6171E3FB78BE0F6901C78EEC5A723 +:104EB000929E8452EDB61561E8B7809E67E341FE8D +:104EC000ED5E13EEC0F9EED6DB8F34A2BC7FCA4490 +:104ED00071A5677F71F7473BF1F9605DD1DDF09C0B +:104EE00093194DFD54FC72EED44468B779072B44F6 +:104EF000B6CB05D89201AEBCB567F727C278059E40 +:104F0000A8524C07B26F293C9004E55FBDAA7871A6 +:104F10003FA0A8B363838224FCF533496807DF818F +:104F2000C1043F3F3A7744D92195E73706D8157930 +:104F3000ED674BB0BF17923A974401BFE5289D2714 +:104F400096C3FAAE1AF1A722F2EB443CE795AE59AC +:104F5000EFDEC6705EEE44B493DDE5068ABBE3F493 +:104F60003197E8F4F674B25F76E8DCA4B7DCF38C32 +:104F700076F4C34E3BDD8F237DD6417BB497EB0A9D +:104F8000DD1157A07FF9D70C3B50221BB1FE9A329E +:104F9000C44FFDF647A62641BBD313783CBDF2951E +:104FA000CFA6927F0F5E30FA55A7B737C7DD0ADF6D +:104FB0003D905742792C4EB593C6610D7C9CC784B9 +:104FC0003E643D05B41F43246EA5AC0923D6477744 +:104FD00045ED4B66BEF56AE85A6E43BB78ACCB68CC +:104FE000C778F95A9B3B11E37352BF829E7423DD4D +:104FF000241A44BF9659E45F5CAA7E94713BD9DFC2 +:1050000063061E4794F1BD7506AECF37813C42BAA8 +:1050100093FA1CC66DCB1CE7171F04E15F087026CE +:105020003F16C2FDA84B1C5FDA5F0DC2DF2A117A62 +:10503000794E4CF39E1EF41B8DAE7538BF05CCC166 +:10504000E3EE9ADD8AF2FA0F46C75399A467FB5341 +:10505000700EA0773BB05CAF825D96EE6797192F1C +:105060004DEF7E6D743C8BDF5F6AFB6039BDF4737E +:105070001D2B44F9FC08973BCDC2EF6C167E66B33E +:10508000B9D8487CFC9AAEF620E8E1AB780F03FD76 +:105090002E3517119F633AEC85F0B617F8DC0572D0 +:1050A000CA0BFAC535121B7537631CC901FF3703DC +:1050B000FD4C3C0F8EA89FFE0CFE1ED6EB20CE6F43 +:1050C000120B0F68E76051144F66A6E8FFD2BC27A9 +:1050D000887593F04F107EF2847387C3519E2EFD26 +:1050E000BC88E4EA50F3DA23E6F55B9C173C57E40E +:1050F000383F4038AFFA874543BE9EA8A9CCE5A704 +:10510000EF611E7F437A707C1D16308F01BABFC4D9 +:1051100079FC48616E8C9FB3B33CCFA94BC42BBACA +:10512000AAF228EEB303FD6CF407671AC8EEED325D +:105130002F26FFB9EBED61240F76CB785039CF33B2 +:10514000EA0A15DF0FB390BF9B14C2DFB3DB06FA88 +:10515000273DD5353789FADFAD78735FC2FE671812 +:1051600087F0D755CA73EC5F1E42FE6E7BE1E237D3 +:10517000F3F1FDF25C1A5FFAE349AAA7350DE54F9A +:1051800093CAFB31EFBF0DFDD2F6B3064A5A1D9C00 +:105190007FEB36639E84CCBF95FE3CD6A3DF3538CB +:1051A0000F17DA035E3F10EB7758E3FEEC61F49FD4 +:1051B00047FBF61D0E0FE493F07E5CD3C335A4FFCE +:1051C000E07AB90EB25EFAC51FEAB97DDB1ED536AC +:1051D0000CF7ED32B25CC959400773176C0A75F9C8 +:1051E000C575C235E7882C58BFA3159B9EC3382EC2 +:1051F000ABE07EE08702BFEEAFB83F3EC1D073FDAB +:10520000CD809709FFD4296EEBE0F51FC847B98719 +:10521000E79D338DE7473FFD560CCFBF49E5EBD700 +:105220006FE671161F9E785ECFD39DA378DC425542 +:105230001CE817CBBC9EE3128E3DF9B4EE65B8EFC7 +:1052400086F6C8325D07DA1C5E91EFF3B4885FBA68 +:105250003BF504EFD3029F770AF9F734F326A39FB7 +:10526000E7EE0A15F9CC9CBE9EDE994BE37A9935A0 +:1052700092E2158754C6E30FF604CC6BEA937247AB +:10528000117939226FE76981EFEF91C7733DE279B8 +:10529000C83C9E01BC819E80F2D38D3132CF49C47F +:1052A00079CCC178E3F0D7DA04DE3AEECBC27EF6F1 +:1052B000E8C9AE3AAEEF7FFB329CCF6FD2799E1633 +:1052C00098306BB1DF9D23289E22E37180B7829DC9 +:1052D000D86E7B08E145E24DC6E7E43C07F286EE76 +:1052E000D16D403FC665E071BA23961EB3FFFEDC68 +:1052F00011E73133CAA7BF34AA5EC377E4FBDC2EC3 +:10530000F2886E17F943B72FFBE87694EBB7577E18 +:105310007D07D5D706E6433C92E5B82BCB9FCE8ED2 +:10532000EB06E25E88AF5DA668892F9EE775DC34E8 +:1053300088CE28FFE2D31C81AF6D94EFDAFF8A227A +:10534000F0C5F1E97E7CA487E77778C2FDF39F760C +:10535000893CF95D9EC03CB05D32AF5DF390BD2AE3 +:10536000F1D26CB11BFDF19213E77A00E1BFD75483 +:1053700064C4FDF4CAC8924318BFA9D7405F03BEF6 +:10538000A78D74B5217F4A3B46C6634FE9BB0FEA40 +:10539000109E6597A6476BC2BAEA15E0E3135D9BC2 +:1053A00076E013E021FA612F73B97ACAE28D40B832 +:1053B0006AA06A6234EE2B034F47F332DAADC1794B +:1053C00032C42A71FC3DDA0B359DAA233402CB0688 +:1053D0005F3BA4071DC71F7B91C735AA5967DC72C5 +:1053E00095FC40E378B073CEECFC7504CA9D6A93DB +:1053F000C9B80CEDAAA0BC95EAEDABBAD30B06D7A1 +:105400000F862748DE6C53051D7823FCCF41F8D664 +:10541000DD1B71E1F310D01ED6572FDA9D12EB7B06 +:105420002A687D4F0DAC2FEF67A0BEF3680AEAF93A +:1054300033328E60E7FBAB352FF1FDD21542FED63D +:10544000C4741623BE93D4C0FD44F9AC31326D82CE +:105450009FFF5193CD8CB81E325E58E364DA157EFF +:10546000F9AC351E66C4F20E1DC81113AD9F26D6C9 +:1054700091FA81F6B48ED546669C08E56AEC0F9FDA +:105480003A4F0AAE9F846B101C4178FE5B168F4723 +:10549000AE907C613678A45C44BC8D5C6B08687F00 +:1054A000C66CB8D301F08CF204D6CBFE4F66F1FD8A +:1054B000A76CFFF5B50D8D97B3593C2EF0FCF303A7 +:1054C000ED559E3704E6BDA4472BF7B7F408DF0778 +:1054D00006194FFB6132D883354813693E3CED28ED +:1054E000742547C3F38C8ECBDF1D5150CE43FB9602 +:1054F0008F2FCB03780FA2EF7B3F58988C793129FF +:1055000023395E82EDD1E5E6E2787CDF25C63BD12A +:10551000E47DF863BD6F3EC79A1C8E8A4C5F79E1CB +:10552000DA4223D2CFA27585C6797EFE6BF396034D +:105530001188C71C133F9F7762CB18CA873B61D283 +:10554000B17005DF8F31E2FB53A6FDBFB742FDC24C +:10555000755145FEE71E16AD9DE2A8F0C37FEE969D +:10556000C0F5C8EF0C2C8FDE1958CE465B78DCF7FF +:10557000FFAED01B581E7328B0CCFA03F3AB5E1DF0 +:10558000EF9C7503EE67AD53ED585569D2B9F1BC88 +:105590009766E27CCDB6AAB4AF5669E179549FEE26 +:1055A00058558CF67DCD5F2B0EA23FB7E83D8E9F00 +:1055B000E0BCBFCAC307BF427F1DD65DA13CB1CDD1 +:1055C0000AE9B5E07C4019A71A2C5F968BF81ECB30 +:1055D000F6A7B3607A3829F29E6A1BDF7CD8FFFCFD +:1055E000E3E59D6B28BFBF6A5AE0FC6B348D2DBB91 +:1055F000A07C75733FC0E4B0227ECAC579A9DEE6FF +:105600005BAE43BAEABDA5EC38EA892B1A4BD9D177 +:1056100031F062F51FA6227ECA1F5018CA99F25FA8 +:105620008F7C8DF26B853FB748ECDF59C65B77F610 +:1056300040BB051E1EBF9A1794C757B13A088EA0EB +:10564000FCBD453BF77D85E306E7F1C97CAFEA8DFC +:10565000DF8604E6F7F178C1155D1D2ACE7F8180D3 +:1056600057DA19CC3D91CE67F023528C7D8CFFBA6E +:105670001CF3D05CF52387F9EC8D2BDAF9F7758CE8 +:10568000E799C9FCAF8521E03F801C3B6436107D63 +:105690007CB63692E2A99F613F585EA7909F501753 +:1056A000C3CB75CFF0B86A9DD8E7AA7B96C7C5175C +:1056B0006A3C8F1FE9C6E1077FAD9817D2897F3D0D +:1056C0006BE37EB7CC47C33C35875F1E432DCC0BC5 +:1056D000F3F8313FCDFF3BFFFC34FF7ABFF83DC507 +:1056E00001645CE269BDE7B9CD00A7FAF3303BDAAB +:1056F000D78C39C3903E411E71BF6906976F17DB87 +:10570000876C2FE4F36FAFCA24BF28096526EAE54A +:105710008743E97BA917F5C2DFA900731ECF4F5558 +:105720005487117EDA87E9C8CE6B9F6BA0F85FBB08 +:105730008DEFC3B53F62233F6960DF714D48C0BE46 +:10574000E3AD0379E78E2C23BD0FB54B7B96DE0FBF +:10575000B34AFB3E480F7B86A13EF910FF13F07C55 +:10576000ABC833BF55E4974B7FE8D681FC72CF308E +:10577000D4C3127FC1F5920F65BDF4876624B97654 +:105780008FF4DB676F8FF284627E28ABBCB47DAF91 +:105790004D621E302FB22B3F56785E6A4598F3FE5D +:1057A000AB117F8FA6A521FEDE1CC9F55C71892394 +:1057B000CBE28707B9EECCE1C842BBF3E335A145A4 +:1057C000880F99CF76A490EB1D3C578DF91BEF8D78 +:1057D000E4FAEF3DA16FE433218CE78B7D3C85EF4C +:1057E0009F98C73A0D6857818D4F79591506E7BFC5 +:1057F0005DE5070F8C6B443C1D11FD49BCC1BA3BF4 +:10580000D05EA9F86508AD3BD35CE958BEFD7036A3 +:10581000E50B7F2CF4A05C17C6B8BF7EEB3BC3E85A +:105820009CA0949317A74F710EB64A4FF402F44907 +:10583000F679FBDC2CA2CFA801BF5BD0E94366DE82 +:10584000CF9492448C7FE0DED63FB1FD94817D6F92 +:10585000E17703DD5CD0DEE37430149D0DD047109A +:105860009D05D3CD50F474097466CC1E36349DC1A9 +:10587000F7E39CE6A1E9ACEED51776B871FFE4A595 +:10588000472218B43BAEB5C5E1F9E5DA4D2B22F05D +:10589000DCE9A79A3B02FB3BEE51CB2E94E7734D1C +:1058A000B622E24A0E93E2B7DF7DE2F907A653DEA5 +:1058B000C926BD054562C396103AB755BFBD8AF2E9 +:1058C0004DA1DCCBCBAB689FA8616750FEE9B38FDD +:1058D000C45929AFD89D8CF948603F537E4AFD4694 +:1058E0003DE5AFD6BFA7DA912C1A58FF4A842FF8AE +:1058F0007B84E33CD06D43A75A6E881CFC1E288431 +:10590000F471C3F607CE62BCBA61FBB59FA05E0B13 +:10591000CE63AD14FB0CC1FB56C5D9E6583C7FC421 +:105920002E6397A19D08F8B17B912E01AE4CBEFC71 +:1059300044C7CDCF3DFBE22E80F7F887F1851852A2 +:105940003AB5F1CD083C5F2AF7B1E4FEDEA9CEF40A +:1059500048D705F02B9F67C43E876FFDB81CB7EE94 +:1059600054F0703FE68DD3B356EF8DB812C6ABED51 +:10597000D093FCAC7DE199CD4F209D7F1042E7454F +:105980006B5E78FD4F57A0DFB04D1F3B8D4FC7A416 +:10599000C4F9D6ADC1CAE3C4729DAA7FFDBAC19A4B +:1059A000CFEBD19E90EB55B36D1F9D230FC66B6956 +:1059B000E73E3A673E68DD3A7BA7527CF4B92F0D8B +:1059C000C89FC7F72A2CDE36F8FBCA4D6F46603BEE +:1059D000B96E03EB3868FDBCD3778DA57616940FAE +:1059E000175BC738FC6FA27733C3FCB9CA0F433CBF +:1059F000D3707D7FB194E8FE136D31A7FBA756C429 +:105A0000A1BD5BA977C759E8C9EB2BD7FF48D0A345 +:105A100023919FF37127E2BC16ACBB89E6B590B920 +:105A2000880E2B9FE2F9539F837FB7ED02EBB957A6 +:105A3000F0CB271B42E83CFB27223FDBFD4755C448 +:105A400001EE22BBE54762AE94B108E5CF851DFBB0 +:105A500070F640DE86D1DF6F6FD8B8AA1BD7E5C4D9 +:105A600008473CC6DF60FE6E812F05F321D53F4C11 +:105A700089E7EBC2CF79D077604F94623DB6EFD61D +:105A8000D3790FBFEF086F72FC1F8AF101EE308CE3 +:105A90001F7C12C7FD1AF8EB4638EA15FE4DFDB221 +:105AA000CA6956C0FF6931CF01BEDF781FE773C1F5 +:105AB000F7FF788FCB937ACF8C329207DD7A6F3CE9 +:105AC000B6F3EC9BAD903C08CEBF1774B0512FF8E5 +:105AD00039F03DC0A529FEF8DCCBE3020D621F7A48 +:105AE00061BB5FBE3FE26B5999A01383AFDEE6E373 +:105AF00047B90FBD48F07FF03A06CB839D41F24095 +:105B00007ECFD65D789FD4C7FF6EC2532DD81D16A9 +:105B1000E4DB0F42484FD5AE51294FF4E8EA037158 +:105B200097039D9FEC94FC1A286707F87519CFE33B +:105B3000AF7C799382741ACCAF272B3DCA05F91537 +:105B4000EA2FC8AF95EC7F56CE8A75F0E13D903FC5 +:105B5000170D21678F668BFC0081D7CF595EE495C6 +:105B6000F8D2529E4AFB0541F895780D9697CBB234 +:105B7000AD1794970C538AFCF029F128E995311759 +:105B80008D3340C7925EA5FE1AA0D7E07907E233B5 +:105B9000F8FD669C23C0E3FC0DCFEFADED52C43998 +:105BA0000EF7C1E4B1C49F0E7EAD45DBC1E458FFE2 +:105BB000B227A8DC19D4DE11547606B577059517FF +:105BC00007B4AFDD79C0C0F37CBD01ED421AAF2749 +:105BD000FF6AB01DE1E1FB9CDBCF1ADC481FC3FB71 +:105BE00029DF587F2F739B293ECCE3657DD6FE08C5 +:105BF000B457568472BBB1CF22CA51BCDC3FCCB083 +:105C000012E5A1ACEF0FE5F1EC3E677F44945FBC79 +:105C1000A2B74BA5F3E43D1E1E271B0C4F33F153D7 +:105C20008F88A34D514D298D6331FF3B9DCEC59D7E +:105C30006BD18B72269DEB9676655F188FAFF485DE +:105C4000F1F8CADF99F34F57E27AB81D1AE6DDCCB6 +:105C5000E74BC72A7FD71C817181F95D3CEFA662B3 +:105C600075E0BA2E346DA4739C9FB365F45CD81EA6 +:105C70009837532DF8A0725D507DD7F5C417D541E4 +:105C80007CE112FB09C17C317594903785AC50C41E +:105C9000A9685F6F8990D353D4BC1BE700FEFB0E4D +:105CA000A92C04CAE7BA54B612E7BD55A1FD4D3C74 +:105CB0007882FC26FD4689BF53C8372307E375E089 +:105CC000FD2B7F2DFE19D2C98E3F17601EC2A91D64 +:105CD0001F64EDC6F2ABFF9EF26736B87DE9DEAF1A +:105CE000EEA0BCCEBD2194B3D1B7F78D949F61795E +:105CF0005708C509FAEE0D21FBDCBDD74CF197BE64 +:105D000011DC0F68DEF365410FE9177EAFC15DA3BB +:105D1000F83D13E7BAFEE308C6DFCF75C1AC50BE4D +:105D2000EF0D27FE69D8154AFE63DF9E2F8BFDF32A +:105D300087FEBBF391F9207D667E9EBE2F8AEFFB26 +:105D400034ECBEFC19CC5FA8DBBECF301FDE97FE63 +:105D5000F69B0294A37D2F73BBE88CBE673DC6689B +:105D6000973DF7AB767D22C62B19DDA732ECF99370 +:105D7000B3DD7917C20BC7431FE001E70578A944DB +:105D8000F93F143E1EFE97C5C7D93BB83CBB8C619A +:105D9000BE830F2FFC3C7C6D9799F29161FEBC7E17 +:105DA000EF9705286F2E36DF6DFFC7E6FBCEBFEC01 +:105DB0007C39BDDF32CACAF36183E87E305DBFFA49 +:105DC000632ABF68B613BC97C8EF7DA3F879F47F48 +:105DD000BDF9FFEFACB739E75F75BE175BEFDF8941 +:105DE000F5365B303EDAB7E79B14F63DE69DF7FFEC +:105DF000E9BCA5DD5EA2DA0F15621C8E75BE67B721 +:105E000091F5417647B3D8577823C1C6EFBD127ECE +:105E100052A9F0936E1179A8CD4C47FB80A5C61A04 +:105E2000B23B4B873F7896E7CFE9089E378C576D9A +:105E3000A6F310417EE1E4E12ADD577760398C0F4B +:105E4000ED0E987596665EDF8BF553EDDCEE9F3AAE +:105E5000FC7ACAE72D35BE3D07E3C9934D817ED359 +:105E6000F541FECFB5D6C0F765ECE5588CD395E586 +:105E7000E9E94EB2A9D8DECF3FBC2C87DFBF702D39 +:105E80006B6BB198FE4B78213F56137869C9E1F1ED +:105E90004C8997C178107864DCCE09C69B66BABF7E +:105EA0009B9E0CFC583E2FF27FA51F2BF1178C37C1 +:105EB00026FC628D86F4E1571BCEF79FFDFAA3798D +:105EC0000FE053E0FBFBE235787D2E86E75B73F84D +:105ED000FD68C1781EAE156AC84F5709FB7CB21623 +:105EE000C5CBC3BB5527E1CF43DF95FEC3AEA17D34 +:105EF0003EC914A551BE987584EFFE9C64C69235C8 +:105F0000E60EC1FD014BCF6BC877E50F875811DF57 +:105F1000C335715E58E37171E056775811B5771843 +:105F2000A2B1DD228627DBCA93995DE1ED19DE3748 +:105F300084870AF1BE24DC3BC3EFCAF1B2386CF7A8 +:105F40008046E7D0E90FF09D81CF34EAD7A18BE6F8 +:105F5000DF4714D1F76E1DFFDE81E7FBF5CC92829F +:105F6000F757A6965A7E7C18FD8A15A1B4FF30AD6E +:105F700084FB0F92EFCFE4F0F36DF2796FAE559C96 +:105F800083708D423B777ACB28F24F9A439D75AF51 +:105F9000A01E7A219CF255CA57FEE0867108DF8B5D +:105FA0003176249713D3B7D17980792D737FF43E5E +:105FB000D4BBB68452FDB3B9AE1D39D0DF09C57A62 +:105FC000C72B5031EFA60306CCAF9EDEB9ED0CC651 +:105FD000F9A6CF0EA7BCD2E9ACF3F7987FCA66F357 +:105FE000BCAEDE17CD06C4C50D9D6735F4B76E98FF +:105FF000A0A05863BDA19694BB009E72B12FBC5F58 +:10600000CA85501E472E5F39222B0DEA6FC0F38AD6 +:1060100017F0773E93FC32495987FE4BAA389F24EC +:10602000DB633FD8EF57021F6FE7F0F8912CA7967C +:10603000F2F615AD21BDE9E8CFB4EABD23717F2F9B +:10604000BFE40F38CF69696CEA5ADC57B85BA5FB2F +:106050005E7A43D9418AAFAFB159D1AF733191EF75 +:10606000B1DA46F1ABDE497603DEFFD2BBC666C1CC +:106070007CEDF03CC7415CF7856D8A15F9BD771260 +:106080000BC8CB3A62F16660DCE3887D941DE3EDDA +:10609000A9F29C587E18F98D4579AEBFE7009CE5C2 +:1060A0006DE56F219FB3AF61DEC5983FCC88781F47 +:1060B000B8358C79911F7CF77B9DC8A13C50FB2F94 +:1060C0002E8BF5DDEF95AAF27CD86B911EE0FD34A6 +:1060D000CC8F053A5BAFEFA9C27E9ECB11F5D1966E +:1060E0006213A72F86F0F5EA2D5938BFDE15A13AC5 +:1060F000DCDF9B762FA737A07FA306DFDFA7B130B9 +:10610000DCE73F28BEBF7DB9E6C47B6A871B998662 +:10611000F773DDD05948FE7447BEEB6DC4E7A7F7AF +:10612000B02B709DE6AF5E43FB2872BD98D63D391B +:1061300006C6F974938DEEB193EBDB915FA2CBF5BC +:106140005FA7D90AAD0FCCC788F0CFCF9F67C4F740 +:1061500050BF0FD76F5A893703EFDF9AA2D63207A5 +:10616000EAD3046647BD7C8E71FE3BD7AA517C49B9 +:10617000F2BBE46BC9CF0037F1AFE4C7603EDEDCB1 +:10618000C4CF866E6932D2F3F9260BD33219DBDA2B +:106190009440E5179BACF4EC6CCAA6FA979BEC54C0 +:1061A000DEDE349ECA3B9A1C54DED95446CF5D4D88 +:1061B0004EAABF03D087F923303EC91B2967103E82 +:1061C0005D914F0EC8F5D3B74ED2A19C96EB07FE5A +:1061D0002EDD1B22EFF51ACA2EF8DF821FE4983B52 +:1061E000B2C887572C87FAC9492C9BA37DF3C3D427 +:1061F000C709D17E724EE3F733A03C8C2BF2CD1F42 +:106200004384E78B7CEB82DF4D0C5A37A44389171C +:10621000F8DE1B57E48F97530F625EDEB94A9D9DEF +:10622000E21FACE78557A96CA27DDF1403DB89F17F +:10623000DC9E9F9B18C64F559D3D2104CF4B552A90 +:106240004CF38B37FC607128D3FCF4D79D8D510142 +:10625000E5D89F1F7E1DC369C3135CB7E6029D1F6F +:10626000B9FBF4DF9F85FE9FBEE758BE8BE8F1D4F3 +:10627000A6C770DC6561768A4730BC5B8FE231B4BB +:10628000CF867F01F7F3BAC3E9DEBFF506CB9F9E49 +:10629000C578EE4AD58272745E0BD7CB1FE23A0204 +:1062A000DEFF22D63155C46FE4BD84E5327E1E7414 +:1062B0004FE08F72D3F83D0422CE73E4A7C9BFC06C +:1062C0003CC6A757A81691EE13788FA180438E1B6A +:1062D000DCDF47898CE22760FDB346588F8FEE31B3 +:1062E00078F1ACF6478A91EE8B50ACB1EC76A8779A +:1062F000B5F2FB8095C64394E7E0329AE8FC22733E +:10630000EB4FF9F7A734F2FBF158CFF0288C7BCA9A +:10631000FBEDC2C73A0C78DE1E6503D2CFBCECFDA4 +:1063200074CF166B532CB8AF5321EA2BE4397FCDD1 +:10633000356AB619C472AE4AF3DD9AC3EFE3FC26A0 +:1063400087F9EE73F48B6B55ACE6F74B56B4151A20 +:1063500016FAE99979A27E7E36BF0F5CD6AFCBE5FF +:10636000F79025B59657215126897B3192B2E75592 +:10637000D139E439D769387FD9FED15C4DC0C1E845 +:10638000F90D0AC361789F2AB707E7CDB975239D38 +:106390000B645603C65BE578F3B28B56627EF4BCA1 +:1063A000D5785B05DD9F4979D58F464CDD8472CC6D +:1063B00013D46FADD07B303F03EE9B7E8A19F6B4C9 +:1063C0009FCCE37CD52FFE8AF6E3AAFF1C42FABCE1 +:1063D0007A34D7BB2CCF53CCEF150C8CAF4FFED5F6 +:1063E0005FE93EC986EDFCDE4978F2B8AF8C13DB7D +:1063F000795E63707CF7B517FF1C71C1B8FA76BE81 +:106400004F78B1B8BA3CC7D7F01B1E1796786C50BE +:10641000CED3BE54C39E1571173A2787FB3A4887DF +:10642000C1F1F54B8DC307C719DFCD0D8CBF5FEAF6 +:10643000F93C59AE6C2C48C7FBAB5314D711940BE5 +:10644000D58DC5E9B86F5EDF38919EC1E7F72A1B8D +:1064500073A97D75E3187A9F95AB887B47199D03D7 +:1064600095F1CD739ECC48F61D7034AC0560E1FB10 +:10647000739A3512F7EFE439EEBEAD2AF9137D5B5E +:10648000F337207D56753D6CD0417D761E1FE77435 +:10649000D0BE41FDD6A3B4BF57C7BA699D60FD9871 +:1064A000D17F1F09F312638686AFE657E6C548C75A +:1064B000559D8A6313EA276327C543CE6DFD81DEB0 +:1064C000EDB7AE5A9E16708E4AC2FF95B05F653D1D +:1064D000C28BF0D484749EF91039E2A570C6F3AD76 +:1064E000FB7F8FFBBE27D78DA17CEBAACE6DF53C41 +:1064F000AF2DDC8271961341799816319E258FDB82 +:106500008327C5BED9C9175592C7082FF2F30925AD +:10651000F0BC5B9CF82E2E8FDBA9BFCAE57C27DB85 +:106520005775AE21FBF0CCF6EB33D11FE8DBF96EEB +:106530004406D45BC5777DDBC3E9FEC1BEED4F4E9B +:10654000DD0DF47DBA73522CF2A1EC3F3F8FFF6E4C +:10655000C1E92EBE3FC83C3C1FAA0EF13CC61FCE6F +:1065600018BA97427E27F3C14E6EFF75842ECFB7BF +:106570008E0D46772B1ECD97F78918F52E37C61747 +:10658000F43BF93DD3C4E7D07F6BB6DB89725CB6D0 +:1065900033181DA46CE57D694C9E6314E766409F2B +:1065A000BDED02F897541928BE7EC768EB2DB7A140 +:1065B0003C7E534FEBB16414F3623CE3B346730784 +:1065C000AEF3129B9DF665EF1823E44D42CF38CC15 +:1065D0000FA96D559803F3ECB64CE3E772840CE811 +:1065E000B5D9DF598576E8DBDCEEAEF5A8CC35868B +:1065F000E448169EC360E3BD59988F92027482DF0F +:10660000CF16EB78C4C0F3416BD3F839805491BFF7 +:10661000521BCDCF0D9C92E70A667AB3306FA6F677 +:10662000E544CA9B3925CF09403DC2595BC4CF0B15 +:1066300048FCD6FE747F16D25DEDBCCE6C7CDF6B61 +:10664000B39CA1FCA457CC74DF92EE55B3C87B0B6E +:10665000A57C7D147C9877D4BC2991EE77A914F0A1 +:10666000AD1FC86FE6E71D92EE3145F89F77A8325F +:10667000B4F1F30D0ACF979165392F2CE3BC4E0985 +:106680007AAE0A1365017F55441BC1DDAB67FC5C24 +:10669000C773FCFCCD89C4EE1D94D7FADC28BAA7D9 +:1066A000B2D7E659B893DE87D23D91556E85E47A2C +:1066B000F5F3215E9CD7F1E7781CBEBAA991EE11E3 +:1066C000AD06B6C77376F02CC3F372C7F56D2938E3 +:1066D000EEF161F0443FEB1E6E3F1D323F9A42FCEB +:1066E000BD314441B95D0DA485F6DF39D676C713B7 +:1066F000BC1E3D7756BD3184CE21B8A01ECFA73237 +:10670000B08B906E24BEE17D401E64AF2DF0DE891B +:106710005621AF5AF3B81FB73A8FC761EAC23B1F81 +:106720004DA3F9713E81F5E17973CC93F8642CE6C1 +:106730007F642A281FAA3B437BD1FEA8DEAAA77B41 +:1067400058259D548120C3FDE42AC6ED4CE5E75B46 +:10675000B2D03F6B7E2EB408E7D32BEE17ADFEE927 +:10676000CF385E5E353BF8BD287487133BBE399940 +:10677000F2D1A761EE19D1473EE17F8ABAAE80F827 +:10678000616338FD1E41F5AACB74945FA2723F0C81 +:106790009E0E85F2F48D24476B851CAD5B7565E418 +:1067A00095C857EFA8743F7A75E442F2033FD3804F +:1067B0009F2E20FF83F1F6EF79DCEEA9053EC17331 +:1067C000D375E25C57CD667EFF66CD4A1E6764CF07 +:1067D000F3FB5697867A2370BCA59B543BAE538D32 +:1067E000A1336B188CB35FC82F68EF42B924FB5BF1 +:1067F0001ADAB910FB5BFA4228C9F3FD79B1229F7E +:10680000E7E138B47B07B7E770FBDA3D13E19FF7A8 +:1068100023DB0DCCA793C7973E63DD3FFE337CF2AD +:106820008FADA104177828745E2E78BE27F5000F6F +:10683000C07FF28550BABFF11390836E3C171EE5FE +:106840007888F222FEA0D2BD450817EAA3459EC073 +:10685000EFEB62EC91987F59F74EA986DFBF91C7A5 +:10686000EF278275B891F0F48E9ECEC906E3FD79CC +:1068700021B707F8EE8570A2BB93499C0E4EBE3837 +:1068800092F44A6F14A71F803305F3A54FBE30B2B0 +:1068900090DFDB9340F668B585AFFBC9A8CE148BBB +:1068A000DF7B4977CC0B2D913EF09B74B413B85D20 +:1068B00056635C4DF92F983F5D5C444F6FC805F2FD +:1068C0009F812EC97F1F9E2FEC0A1C2F4EE4EF9351 +:1068D000DCEA34A05C76093BB2766B70FE347FFF55 +:1068E000B5E03F843656E66D63BEB85BA13C9A9A2C +:1068F00096BBAA903F6A16AFB90DE955C25FA3B126 +:10690000329407BD8A4A70F486F27BBF99FF3869DA +:10691000FC6989F3CDD390CFF56D58BE55DAB9AC8B +:106920000DFAA96D515653FF361947E0F391DF0177 +:106930001A0CA8277A2789F743CC57C2173C5FB9AE +:10694000BE29F95C7EF7DAAC0F4DE07A89E26FE799 +:10695000BE1E1319FD1DFE367AB203F9CBC0EBB98A +:106960007499017C9FC7E39935001FC299B52EE841 +:106970005CC0C6C072CED6C072DEF6C0724157602F +:10698000D9FE5A603906C71DC6FD7F3C6F8FFE3F9A +:106990003ED1FFB78670FF1FCBE8FFE313FD7FAC4E +:1069A00047FF1FCBE8FF6319FD7F2C4B7C631C0066 +:1069B000CB1807C0F7E5F95C1EEF42CF44F5E58937 +:1069C0005EA9EA385FCC3504E431EFAA1C7EC173BE +:1069D00064F27CD705F24AE99C983C8F1B7C4E6C94 +:1069E000E09EDFA073624867D84F4E9C6B7A3EC032 +:1069F000774CE95E990870EC4AF3E42E217D1F6A1A +:106A0000C2BCF99E159FAC4477E9DB61AE59F968C9 +:106A1000AFE9FB37F373DB5E92373DCBADEF5C2D17 +:106A2000ED1280B31CB08CF42CCFED5EF4FEDE8B47 +:106A3000DEDB1B482FD2AE7B5ADF9F8872F3E873F0 +:106A4000C6D508E75111D764738C41790FDC6F5AB2 +:106A5000F2A042F78DDF95CFEF3B387708B0F31DFA +:106A6000743AFFFC18B2B707CAAB151D9D237039E5 +:106A7000481F49BB2C4501BB0CE520CC1FF5F5C8D0 +:106A8000B5BA00F84779C202E82E774B74D0B996B0 +:106A9000A480F6A377A6059D6BC9093C37317BF925 +:106AA0003ED4D3B3568F096857E1BC32086F024E0B +:106AB000619F56A05D88FAE61E23D1D5D2F755B264 +:106AC000672AF125C8C74AEC0BD6B172A3C8C76EB6 +:106AD0000CD4BB951A73E33D68F3853E92F4566976 +:106AE000618E28F8FE7461DB66BC97B6EA77EF1614 +:106AF0005BF0FC9F32291E831535D9AE2791BE521B +:106B0000F40ECAFFADDD961985F7D39D3AF43AE548 +:106B1000754A3A49D15BC2703D3BDAB89D8F7133FB +:106B200035DAB7DE1D6D31611926DFBCFCF25AC8BB +:106B30002EFE0CF35AA0AA7292E2368CF6C1BF4424 +:106B4000E80F09EFC7C20F602DBC9F1F8AF7B5453C +:106B50006FAC8F86A53BA5DBFFC52AD453859D5915 +:106B60005EB4D79EE888BBD586E2D8B51DE97FC95B +:106B7000DBA511987FF7F9563DDD97FBF7F667D651 +:106B800063BEF4AAB6670C1817A8D63C06CA0F7DD8 +:106B9000AEC380F9D2D76CE9A0FA855BCAC96F5C35 +:106BA000C41693DFF8A9BC6744CCBFB2445967014F +:106BB000B8130BB8BCA80CE3FB9153D409AFC7C200 +:106BC000789F6D51285F78B673C6946168AF74463C +:106BD000D17D51BF17F22598EECFBDA5F2F8EE6C2E +:106BE000BECE43DD6335EBBC8DE87CF6F95CF2A7E5 +:106BF0006EF28EE2FE6B5EA0FF5A69B0BE83729E9B +:106C0000FD9B4ABFFB321057B0EBC94EAE03F9856E +:106C1000E72C9D13D4003A6C981C1E40A773981F54 +:106C2000FDC3D03763128C5F79F6B4F480F6B7CC2D +:106C3000CE0DA2EB22DF7B920757049CD7ACC31A80 +:106C40003AD75232A89E9FFBBC2EE0FB3A3633E087 +:106C50003C60D546BEDF50B73D8AF6232BC57D800C +:106C6000735CBCBE7E27AF878904F0576AA9FDDF3D +:106C7000B91ED4F3DF9810FB1273F0BFD307E31DE6 +:106C800034F7C03D0878AF05C61102EE3F10FB9AFD +:106C90000837D9BD22BE5497CDE34B75EE6E03DEA7 +:106CA0001B0278D76230AFB34DA1F580F6C69822AB +:106CB0005E5E4679DB817965D81FE667D61F52CBC9 +:106CC000914F82DF03DD71FB7717CF97ADC7F810C7 +:106CD0009D730BCAF3C47811C6BB305EE4B77EB7B0 +:106CE0001558795C6DCBB68349808F594E4EA7B548 +:106CF0009D33F4E57983E90AE89BEEFB5EC880BE2C +:106D0000705F08F8D8631D7AFE683EA23F22F150FA +:106D1000EFE074988474583098FEEADC8B0D740FA1 +:106D2000CC3A853D6CE3ED112F4948974178213CE1 +:106D300006E143E269006F41EF83F1B2D0C5884EAE +:106D400016EE543CB86F2BF1173C9FA1F017BCCE48 +:106D50008B58B701CFB72CDAAED8F15E7FB9EFC34D +:106D6000C607C597DE4AA7F852BD53E047D28593C0 +:106D7000D3FDCCF33C5E7233DE673BC64727B3A737 +:106D800005F2E74DE7E3E8FDF7A51BB004284EFB4D +:106D90007DE945CE47CA678C27129D88BCEB60BE53 +:106DA000098E472E2810798FE3D8B8803CEB21EE6E +:106DB0000D09CEB396FA3C589F94FF8EEB132957DA +:106DC0005D424FB856E8E398BF1E92F5223EB7E405 +:106DD0009E6CBA1F2565790CB52B0FB5D07981F261 +:106DE000E53C7FBB1CDA59FDEC8A952DE929A81FEB +:106DF0003EBA6FE47A37DE2775776CDC7858EFA3FC +:106E00002BF4B1F85B65B2DD472BA6A4609EC9D117 +:106E1000352173E8BEE49F1BE977A1EA76C4F3FB52 +:106E2000F354531CE6779E7E3986EE6F7AB080DB92 +:106E3000E7B52B5E89C0E309352BB85E3667BB56D4 +:106E4000178C43FDDCB19936382C1D05A8179EC45C +:106E50003D06DC8FC4BE8A483F91BEFF34D47233F6 +:106E6000F6FBE9737ABA6F0BDE3B709FE9878AF70E +:106E7000D8D5741F8F1287719D53EFAB741EB44A1F +:106E8000DD5780FDD636ED4CC123F29545A0476114 +:106E90009D4F87B89EC4716B563C93429B56AD1D67 +:106EA000F47B0A7EF1604F01C62B301E0C65D7F2D1 +:106EB000CC487E0FEF85E3C1122FC5B9CA801D8F64 +:106EC0000B86763C3ED18EC77C20B4E3B18C763CF9 +:106ED0003ED18EC7FA86B581F6DD2FC47EAD8C0B10 +:106EE000A7AA67E9778BDC252C7B31E9615336FA59 +:106EF000A74B95303BDA914B15CEE74BFF6AE6BFC7 +:106F0000DBD17D2DD7BF821E82EFA9BDAA1F6C30B9 +:106F10003FBABDFABC91F99F939EC4A202CAA5C60E +:106F2000C480F6532CB680F7D7248C0A787FADB591 +:106F300030A07C7DF6E501ED6FB04F0A28DF38FE0A +:106F4000DA80F6331C3302CAB3CAE606B4BFC959A5 +:106F50001EF0FE96395501EFE7BAEE0A28DF5679A2 +:106F60007740FB1F2C5E1EF05EDEDBDB85FE5708E4 +:106F7000DE8764A4A7BCC7F74B1DA3DF8B9A502AFA +:106F8000CE6387707DB4F4ED4C937F7CE484B0973E +:106F90001C76C7DF917E4688FBAF46887BACCE0B64 +:106FA0007D94CCBC8AF87DCE44A4A7E076C1EF27BF +:106FB00084EFFFCC0A6B79E74B0FDDA2815C9A70FE +:106FC000D9FE31E9507EF6A5F76FD140AE4CB872CC +:106FD000FFAFF1A7665E1A9D3887CAA3F77F86EFD9 +:106FE000C7747EC8DFCF62649AEC1EBDEC16CCB3CA +:106FF000997075DA6A3B8F97F0FB5F307051EC77D0 +:107000004EC668F2E27EBD9C17E205CFEB235EF030 +:10701000E9057AC6E77EA0677CBE06F45C0172ECE7 +:1070200020D0333E0F815F8AF5FF067E293EDF02C6 +:10703000BF149FBF077F149FDDE08FE2F38F4D7376 +:10704000E8F95E938BBEFB5353253D0F372DA6FA0F +:107050000F9B1AE9F9972637D5478F16718D9D81B9 +:10706000BFCB25F737E57E66F362D6138EF2A047D5 +:107070008BC2DFBD93FB9443C7013476CCCF3E8BEC +:10708000648E11A3297E12F8BB2113335C6958FF6B +:10709000BE6D56265EA47FF3F9C5AFE3B6EEFBE204 +:1070A0009E83E07ECF0B7A88B73B46E2775719F98B +:1070B000F9EFAB8CFC7CF7555A7733D253F357CCAE +:1070C0008A7947FBC479EEE6FB343ACFAD9C67542E +:1070D0009E18CBA8DCFC550F9D07BFCA624F203D10 +:1070E00025CAF25C30FDF9E52D4D3EDF5D8AF6C61E +:1070F0004493C18A726220AF82F1BC09B9BFBF4E0E +:10710000CFF7FDF7998F95627C0DE061389ECC0F2B +:10711000D8F815F3EA0A7C791657197B287F4BE6D5 +:107120003D28E77B54B49B647E9584CBACC1774506 +:10713000BEBC2909773C940D45FC9E70B508DB7BED +:107140001331BF6CE262831DFD83813CAE10E6C645 +:10715000F86BBCC82780F604F7E4F32ECA1F992801 +:10716000F24746E0BE2B6F47FBCC66F4D7F0FB98A6 +:107170009E03389FE4FF8031A0DD530ACF7B90F956 +:1071800023D83E9CB7F7AA7EFC99F14F803B027F43 +:107190008FB2937E8F7844BD89EE9F640E07E177AE +:1071A0009690ABCC2ACA425FB3D812FEBB8BE2FDED +:1071B000AB19AE4A5C776788E5AFE1C4CFE923D06D +:1071C0002E9921ECF8EFA097BAD1C3FE27E8C5C1EC +:1071D000D77F38A378DA507423E942AE77301DC9DF +:1071E00075F7CBB7A17597F4134C6743D193A4A35C +:1071F000AB8CFCDEC289B546FBBDB6FF3BF47367C2 +:107200003F9B1A094D9665BACEA37E283F6F3D88F5 +:10721000E5F96C12FD9E8D7CBF6288F7AE7FF4EBC2 +:1072200023FDE8EC2AA1C3B662FB7183DBCB76F2C7 +:107230009E11D9FF9B43F4FFA6B013DE147A6FE9C9 +:10724000144E4F65A3E4EF81394C85C57EF9AD79C5 +:107250008BC83F60266E5F5BE17F14471376EFD5E6 +:10726000E7B500BBFB3A618F97312EAFCB82F6F7C3 +:10727000AFCBBB86ECF2EB82ECF2603BFB8FA3C59D +:10728000BEBF8DD9BEE7BDBC1F70B91E68C761BE49 +:107290001CD27DBA55A5FB81E43DBCF27EE7C982D4 +:1072A0009F27E3FDCE11F8BBA92E0D95CA35CC4D15 +:1072B000CF6B99879ED7332FD9093780E2C1F28DE2 +:1072C000982205E503E1D36FC7338FA5634A33E8FE +:1072D0009E14DFBD92A7109E7AD5F5378BDFBD9245 +:1072E000FB275B693F76BF919FBB46BEC4DFC59459 +:1072F000F3F91DE8DD0CD08B07402FE3F375D0CBFD +:107300001930BF37402F63F9BAECE50CBF9B6A0D0B +:10731000CC9392DF5F6F2905876C687C5D5FF09B83 +:10732000E188CF37A3464EC6F9BE1975D9645C977C +:1073300037A3E2695FECFF01EE54BC43008000001C +:107340001F8B080000000000000BDD5B7B7894D5EC +:10735000993FDF37335F66929964127225904C42F1 +:1073600012024C6066722902D501121A6B6027580E +:1073700081600C5F48C2CD8021C5C7607133314147 +:1073800003A2863628522F1316D076D12728566CA2 +:10739000D376CA45698B2DC576D78A1B0711C52BB5 +:1073A00021D68ABBB6EEFBBEE73B99F986A4B5FBB6 +:1073B0003CBB7F6C78F29C9CFB7BDEEBEFBCDFE19F +:1073C000D789310A9BCED897F873DDD5E595E90EBC +:1073D000C64A19BBC179EF69038CBBC1BE8019C70E +:1073E00031F8D921B332C6CAEDF0270C29FF48F194 +:1073F000B278C62A986A6406C6BEC1FC545ECF0243 +:1074000054DEC082463689B1852C44F57F62CC8437 +:10741000F563718B6A6F83F9F38BE7E7617BB3796F +:10742000284B91A16E56535D298C6D30A86FDA619F +:10743000DC4713D5C90906A407F683F661F3ABF15F +:10744000E9B98CAD8F8B9FCE66609915C073B43E41 +:10745000FFCA7403B45FDB369BE8BCAEED1A2A9B0F +:10746000CDF3A97CB79DF9F34C8CBD8747C880DF6D +:107470002E2F9D6393760E669C47F5DBCD8C7E6E3A +:10748000885127231DCDF240FC2CE87FF7D1579F70 +:10749000F1DB18CB9254A70BF8D26C70EC7025C3BB +:1074A000C05F1B5CFB71FE17C7B216DB706640F154 +:1074B0001531B6CEC8BCFD4EA8EEBB91F6137CDDEF +:1074C0003155A273349B053FFD54DF95EFBD323D2E +:1074D00085B696582A9C9F71BA26C43066F630F657 +:1074E000A8C2CB0D666B10E5C18E983E0C15725A82 +:1074F000BF847397C532BFC543E3FDE6A4B0FC600B +:107500001ED533619DB212281F8C0D74E630A6661D +:1075100078E7E2392A0C56BF0CEDC3136C8118686A +:107520003F1A0B7C4D003E06A7253068AF3C6960D2 +:107530000120F9E5D8F8BDC8EFA3B1C06F9077E995 +:1075400054B50AE7BFEC383A2108F3AE638E07E77B +:10755000003FAEB71A5C41E487A13641B58EAD5FFE +:107560006D6FCC0D1E17F4C3EFB75CB6E477E2E0A5 +:107570008FE96CFA97066A96910FAD9A7C804E5708 +:1075800010E9FCBDC1054761D7B28287E7407DFEA7 +:1075900049130B407D1867607FBA14F003BD1527AF +:1075A0000DE76280CECFDABDC1E326EC1C3230A0FD +:1075B000EF845D627B80DE98749939CCE1FD2D8E7D +:1075C00058E688A027AE304957B7B9C6EBC627CCD6 +:1075D000CCD5F5277AA7EAFAC7557A74F514DF2CCB +:1075E000DDF8B465F374F50CF59BBAF1996B16EB05 +:1075F000EA135B96EBC667B7ADD4F5E7F8D7E9FABF +:107600003B2D5C8ECCEF3D5D087CACE45D6C52772D +:10761000AB6E5CA5755515CA33BFE74EDD7ACC61FC +:107620007A0BF5CB0FFF50BF3E65031283B2229D4C +:10763000B78B7106D40BD867BE7DEE71145526DB6F +:107640007119F573BE1DC6459EC75AF91EEE93C942 +:107650008CE1F93957EBC12ED48369FF801EA85302 +:1076600047D7836616F0E75CAD0727D04F815F9957 +:10767000BC5B2FFF2901BDFCA73DA5977F51BF5ED5 +:10768000FE338EE8E5EF0EEAE55F7C522FFFD2D3A2 +:107690007AF97FEDB5795F495ED784F47A21E435D4 +:1076A000FBE2E251E5B50CFEA1BCC0C45C41D0F7E1 +:1076B00072E053908D2DB7B0BCB8FCFEA7723B159D +:1076C00025B74FD98E5237D071A99EFBEF68FB17B3 +:1076D000F2305BBC67D08F5CD0FCFB671A1FB23501 +:1076E0003FD466E6E51D1ABD9F59B8FFC9D6FC9088 +:1076F0007F1E97B77FD016E804BBFF4C0ED9309E93 +:107700000CCA3D1296FF91A686D08FAF70B648A0E6 +:10771000492C9DF90EAD02FA2F4D1C1AFC0ECEDB42 +:107720006CE3FE9BB120FAC1D0665BDF76294C6723 +:107730005D266B413FFE9E4B227FCA5CA1D26AF060 +:10774000EF1FBA64AADB5C7685819FAB77326F004E +:10775000FDBD9165D515919E723DDC6224BF9A6D89 +:10776000512FE3393BFF6836E339869923C1EE2474 +:10777000C165F9206EBC6562CBFA47F197D996B91D +:107780007F46FAD79A6F78E46D8817B30DB02FC88B +:107790007568AD1CD89B83FB052D93619F3DBD494A +:1077A000AEED509D9DCD78FF7AA6F58301437DCF48 +:1077B0009682009E6BB641E2FD1BA11FFE7C0FF678 +:1077C0007DD68A74042CD536B40B981221D73D4649 +:1077D000568974ED09C8FEFC19682766668CD08F3F +:1077E0003DA09214E78C01CBE222B41BBBAEBFA834 +:1077F0003F5DB7DE8C230E5DBF3B58A8EB2F3EE903 +:10780000D2D543C81727DACF4CDDBC89F02B7BD00B +:107810008EBCBAF6EC5B5B17211E807EAF9C84F6B3 +:1078200053A95B2FFB52AC2C413F29670ADA914FD9 +:10783000D74F5800F85977472AF12B13F81703FB55 +:107840003C6682F89A4475AF02A5028CC5714AB7AE +:1078500091E2E904A0212189D365C071505A681CC6 +:10786000A703FA290E4F84F5906EE8F71A79BF3F07 +:1078700016EAD74F73903E998C804BC03F3D6E0AFD +:10788000AD6511765317037A6825797A517E8F6F2B +:107890001EAFD3D3396EAE8FD74FE376B4DFCC565D +:1078A000F8806F9D775959CE0C9C17CA40F9CC7758 +:1078B00073FCB16AB277AE9BC6DB69DE13B68B6B25 +:1078C000D13EEA66F07D6A65794535CE97403F9CAA +:1078D000E17D16B9B91D4C2FE6EBD425707AD87727 +:1078E00094C0FE9CF039D215D6857805F69D82FAB3 +:1078F0007DCB8EFEFB274357ADD26362E4D70326D0 +:10790000C44955F30017BA197BE087A50F5B01271F +:107910003DDE067C9DC5D84DEEA797F9F3103702E2 +:107920008E027AB2A119E55085FC85F2E71E03EDBF +:10793000B3D1CDCF3B626FC98CEC0DE200D135DC09 +:10794000A6501C10728C90931FE572A01D48043F36 +:10795000F454BB99CA1FB683FEE63376B03D9DEA68 +:10796000CFB43BA8EC6F2FA4F667DB5D543FDC3E41 +:1079700093EA3F6AF752FD487B25953F6EF7513BEE +:10798000D3E2561E57AD11BE08FD117CA9BA9BCBA0 +:10799000C9B1D1E4DB0B47A89259A5E409F3FB8CEC +:1079A00087CBF5313C67291F877E468CAB30381377 +:1079B000CE59C3E3845F190B77FD6F9D7784BFC6F3 +:1079C000B09E5B22F45B9C1BFAC7B013BD3DD14F48 +:1079D00099C6BF5C3E2FDE13965B84FD907D8DD8EB +:1079E0000F0BD5A0FD08FE06F2E44AE4D7BD36CE63 +:1079F00067C187539ABDDCA1E933C45DAB1BE4A525 +:107A00006A5B5718BEA847FD69B2298E1818A26A8A +:107A100071F75AAFEFA17BA17D65AF89F5417B3D41 +:107A20006CDB96C4CB2D405FBD5F1F3F21AE136E54 +:107A30005ECD7C094109E3B2EB1E17D0D1D0AD1F5A +:107A4000D7C4F83AABAD0B28DE3645C5DBD518A751 +:107A5000E3B13486E78D12877FEAD670F40C368363 +:107A6000F0539B99EE356BCCE25C7AFC341C989415 +:107A700080F10BE4437605653026291C9F1DBB6110 +:107A800091E230DF809FB1851837BB8CAE7CC7D5C3 +:107A9000FA35C24FC6EF57AD66A6E136E76F916F74 +:107AA0001FC27D22067DEC3233D987AAF57FE8FF1D +:107AB000E41CF51FB6B8B0FE91FBF474BC57A8B82F +:107AC0003FDE9354FD7AC35BCCCC8EF67DD8166036 +:107AD00030EE7DA9EF4002C8FD7DF950EACC9C3024 +:107AE0003D6A88CF1FCB1E6C85EA0537F80FD5C4D9 +:107AF0005297C17A9D070DAE0E587F9BF568AAD7A5 +:107B00008AF73DEFBB6EBA97E9EF75551017517FB5 +:107B1000C53A65D3B83F8C3ED7885F9A2305508F0E +:107B200086FD068ABFC39512D10D7ECD8BFCFE0368 +:107B300083D581FE6A06A86D12B75316C3ED144BA8 +:107B4000B4533699DB29D6D14EB1443BC5F61BAFB1 +:107B5000B8494EDFBA329BCEAB765F43F5826CBF3D +:107B60001C8BFEF966C9B51F8AA5FBD8D658981A92 +:107B7000EA585A8AF7B3180FA7BB408B2F57C9533F +:107B8000F32BBD1EEE7FC4795A3B24F2B3AD128FA6 +:107B900097ADF74BE46745FD931EAD5EC1EBDFDEAD +:107BA000CAEB2193B55B4AE0E7CBCBE7E7C312CF43 +:107BB00087F7733C1FD6F17C58E2F9B01DFD10D653 +:107BC000D10F611DFD10D6D10F61897E08DB5732C0 +:107BD0005F961B58FCF521C0BE11F675DD15332BE1 +:107BE0008FB093B92C51579F6FCED08DAFB0E7E8CF +:107BF000FABF913E45D77FBDC3ADABDF50788D6EE8 +:107C0000FC42D75C5D9DCDBC3E5CCF45F3A8D6D58C +:107C10006F04DC5E1E61D737F9EA75EB2F5DB6564F +:107C2000BF9EBA5137FF66D6A69B3FA9A543377EB4 +:107C3000459BC41A23EBE08E51CF1A768F233DE982 +:107C4000CBF3957B40BE6FC6FDF57613DEF30C03D8 +:107C50006B514F5BD7C7BAB89C7B2AB9DC65C6E5C8 +:107C60003C544372DEA2F07A852BCD3E8AFE0C8016 +:107C70009CCB412E3F033963190439637914E48C9A +:107C8000E571907339C8EF259033962741CED8FE21 +:107C90002B903396A740CE58FE06E48CE5699033CE +:107CA0009667DA9751F9FB7695E6FD5BFB1A2A5F3A +:107CB0006B6FA1F6D7DBDBA87CA3DD4FED834047DC +:107CC000A3294C17E2DC3CDDFD0FF45077FFB3EB4A +:107CD000EA886323C7238E8DEC471C1BD98F383667 +:107CE000B28EF835723CE2D6C8FA76B783EC10F162 +:107CF0006AE43CC4A791F5A21EFF09CC612D7CF477 +:107D0000E3E3581624D43F2B816BD8FAECB5354603 +:107D1000C04F0571F59E4417C441A9BCA61CEAEAF0 +:107D20009562F207D3D910E14A152F79203735C86B +:107D3000F17FD1E719D4FFC054BBE6B719F927F793 +:107D40006146F8F281A90E8EF7B4F92E66376029E4 +:107D5000C687EBA38F8BDE5F8C23FF184107DC48BF +:107D6000DCE8CFDD5BAC9EEDA04F076469850FF4C6 +:107D7000E900E0A3C5E06FA71DF4CA16E85F76D856 +:107D8000EE3638707C8B07EF2B3F46FF94121E5F58 +:107D90006064274D9EF0399EFC5ACE5E5CAF4FF377 +:107DA00073E173868CE8CFC14F7803306FCED0E992 +:107DB000F909305EF5CF2DC5F5AB148E17609F59CC +:107DC00078DF9BE697BC7B23F4FB5FB5F554FFA1FE +:107DD000A3E85F9F7C62119F17CBE73DF9443CED20 +:107DE000BFA84BDA6B80FDE71C64DE3E987F58F33A +:107DF000A7D30E060DB85F7D17DF4FAC5BFF68960B +:107E0000E2C0FB246BB933BD04792431F4DB70AEDE +:107E1000E3782EC13F31BE004CC694A4E50B4194DB +:107E2000DD857E1FF2B958E6E314B397F0D38623BD +:107E3000D50CFDFDD74B122B9271DD01E64298BAAD +:107E4000B0E477BA7313DBCA685D8A5F93FD523082 +:107E50000E8EB2C8DF713786B785FE8D275270FC53 +:107E60003EE6CA7150E861D77AC2F44DF51E922100 +:107E7000FC31273B2D5B24943B3B362E428FC003C5 +:107E80007C0BE5EE769918CAA5DA6837A1DF888EF3 +:107E9000EF022F7C827881A8D2FAB53C50EB5D5777 +:107EA000CEDD8BFEE8798E1704CEA9B7F333A8BBDD +:107EB00025F26B9F74C17503F9FC7C4C80215E0335 +:107EC0003CE1007DFC483E95BA14E6AD9F14C89293 +:107ED000815FEBC6F74D4F32101E78C70307FDC018 +:107EE0007F6CD13258E75CD773A9C8B74FBA9E5799 +:107EF000F07E047458DDB04FA3C69FC62D6BAAF068 +:107F000090F5451CDFBD057EC63B19E99F9310C265 +:107F100073F5709C27F232F5AF8C4B45BC158DFF85 +:107F20006ED5F0DDDA2E53BD0278716D14FEBB758F +:107F30004BE5BBB8CFAD7F07FFFDC5A3E5615CCCCA +:107F400045F8EFEFE46105CE039C632C1E05E73096 +:107F5000ED1EF36D0B3F6FFD2BC76E22FCD2922FEF +:107F6000237E11B8A7B683E31A768805F225ACCF35 +:107F7000277BAD7DDEEB9260DE6F353CB3F84A26A1 +:107F8000C9E5550DBFDC74651AF987AA9085DA97A3 +:107F90005CC9A072E99529D4BED8CAFD44E845164B +:107FA000B81BEF75FE188EA70618E1A7687D75331C +:107FB0007B05EAFF54AF740C61E342C443B0DE3288 +:107FC000C447E350FFEBB7A6A0FE0718E1D768FD52 +:107FD0005F5A9B5381E798522931B45BA1FFAAFFF6 +:107FE00017A4B78B406FB17DA1BFC3948AF30E3243 +:107FF0003A9FAADD53859E47DB455D9C767FB7F2AD +:10800000FCD1C8BD1E899C85C4EFAB41BC598739E2 +:10801000C0F15CE119C8D9E6E4FDDF2CDE57D39549 +:1080200047F7217F82277CDFC2BA25E27E85755B18 +:1080300044BE01A1C69C88FB2EE27C0B9FC7523D2B +:10804000E1FB19A6C8AF44DC8F7335FAC53D0ED7E6 +:1080500037F279C1544F386F20F214982F40FF5BEC +:108060006178A3228DF060A287DB2DD79FB734BB48 +:10807000FDB464DEC21298D7BA2D3F8DFD0DBD6CE4 +:1080800000B9A19DD625846E97209EAD2E66DE7226 +:1080900080BE354CF08B0519E8FD72ADBEF3B9E337 +:1080A0007FECB6129FA9DEF0DC33357EE05DF79CF5 +:1080B000BB7D485FD81FFABC6816714E2F539D5781 +:1080C0009F43E4297616F3F1D1F98A06278F1778B2 +:1080D0005D457D786BDB0BCF44E661441E0FE219F2 +:1080E000DD671E5A9CEEDEAEF955CAC3AD9B4071EA +:1080F000B5AB588B5B60178EC91C07638938D811E4 +:10810000C37130D6110763893818DB1107631D71FD +:1081100030D61107631D7130968883B1FD915CDF05 +:108120003F1793BFED31E33D98150E3DB21FF6AFFB +:108130006B5718D223EECB4FAC8BF5E2399EB85378 +:1081400021FF28EECDB5CAE913E69C301FCEB67DDF +:10815000D7C4FD5F30DF01EB2C6FB1B8D07F7F5A01 +:10816000E2BB0FFD469CD3A5A09F519D01C9017C98 +:108170001D6FD7F2369386DCB75BD1CEF83A55B98E +:108180003C3E661BD871067AF55F69DEEFE2FC4F74 +:108190004BD45D58AE1C70BF94E9C07895A8A07C04 +:1081A000EAD278FE15F849DFD7049F9F2AE6F7CC7C +:1081B000A57846987749CB13829CBA7381BE9A649E +:1081C0003BF11DF4B60BEF574F15F3B82BF26FE1EF +:1081D000FC8491F2444A9B42F963CC2B289E707E2A +:1081E00042F049E419C2FCB1BF847C1BB2290EC421 +:1081F0002FF5D68205A8F7F53D5212FA830A43D52A +:108200004B849F77E6E4227E7E5DA357DC0F9BB410 +:1082100038D7BA6B929281E3B6018A837A559283FA +:10822000D619BA5FB2EF75A05DC1B8887C50E3EE95 +:108230006BC82E1A0350168F6D3F37EF3C36F14551 +:10824000D4BBA057417A1BEDE01E22F21F0D3D1258 +:10825000E97174FD57C53CAF560BB01DF974CBA640 +:108260001C6525E6030166B43AF11C0E1DFEA8C587 +:10827000BCB987E4CAF9B113E8CEE1FB7922D65F35 +:1082800089EB47EC2FF4E0F7C536925FBDDDA164C2 +:10829000E46069273AAFE283C6FF8660C0E4427AB1 +:1082A0008CB02FD497DB0326DC6765979BF2F0EA4E +:1082B0000EBE8FDA9DA814218E32DA958950AF8DCB +:1082C000E5F607F411DE6C04BE2461BE2D09F0A5AD +:1082D000F56AFED46BF436F6242A4DBAF69D26D400 +:1082E000EF1ACDDFAFEC9AABC838DFC8CF2B976859 +:1082F000B850E3E7858D96ED98EFAFE97D395F42A1 +:10830000BD6CC9704B70CE3F69FA28A35DA484F997 +:108310005163EFA1F38CF073179C1F966CB2FB684E +:108320007DD0073FDA4D632F5FBFB1B75E7142B9B1 +:10833000CAA82A13687FCECF917D77FF42DBD7E2B0 +:10834000C27D995DA5EF0DEFEC5A9A45E7E87DD81F +:10835000847CB3B91C0B106F821E905E0A7DA82B23 +:10836000E6F627CE9F5C6224BA934BF4F624E291A2 +:10837000B0ABC61DF5CC0BFB36A4437C1CC5AEA22E +:10838000F376355ADEEE71C5174C97C2760FF1B011 +:10839000E5D951E2C4426DFFE59A1C802FE44F44B9 +:1083A000FFD73539D4225F23E6E37AB8EE14D13F04 +:1083B0002F98BFD1191E2FF6AD4DE2F3502EA81FF6 +:1083C000534AE491F1AD345ED6E57B1A4670EBC1B9 +:1083D000ADA918FF0E49945F6BBDFFD8C43BD0BE5A +:1083E0009F8E73A177FAA079FF860C0CAEC600C9E8 +:1083F00041D0D504F804ED7A9516F71A83A3DBF77C +:1084000093D3D4592511F6D7F8BDA70BD04FC2F995 +:1084100083E827DE78FA277F98E508C72B719E95B9 +:10842000DD7DE4176FD991E83170BFD88D7E716121 +:1084300009F74B0D5D5C5E0CE485F84DC8B5BE4B8D +:10844000A2F8D0D0561640DC338207347946CB519F +:10845000C857C851F01FE210E573056E16F42FD10E +:10846000F6AFD1E2C3724DEF96AF994B7E7165774F +:108470003D7A2456A3B5D734EADB47F83FF27DD8DE +:10848000790FEAF1703FE7FFF00E13CFB71DE479E3 +:10849000C20F5A5FF8CD1218F7FE437D5991DF578E +:1084A0009AB4FCD92A0D2FAE06FE8F963704FEAF84 +:1084B0008BE4FFEA2734FEE7F67FFC63FAAE16E3AF +:1084C000DA0BFB36C0EF4CE0CF0707BF67CA84F674 +:1084D0009B9BA444A47773490E3F677F9F2917EFA6 +:1084E000012D6E3BE67B376B7E205A9FA1F4B208CC +:1084F000FE623C9092C278458C477F7408E8D8B4FD +:10850000D1128FF9E68696C4243BDC17FA343D1568 +:10851000FE45D07D7E63FD03789F386FE1FADD0C68 +:10852000F3F13BCFF9B9AEAC566718CFB1E4FE43D7 +:10853000F43DEC3627DDCB61FF93F8DD61B7662FA4 +:10854000797921FA0E2B70A502FE09BFFBEC95F993 +:10855000F9730DBCFC7E6CFF9496BF81F7F29A43D1 +:1085600097911E8167058EFD99A61702AF0AFC3907 +:1085700096DF51D8BEEE5CFC8E90CC5C9D8EB09E9A +:108580008A75A2FD8F3867665CFF0F504F326F9B74 +:10859000EA411CA0C4B26E3CC7614D3FA3CF793EF7 +:1085A00087F3732CBA05BD237C00659C9914A65FE4 +:1085B000D00318D62B232EFB4E11E1C2F31DAE2C97 +:1085C000E4D358E73B9FA3929D0E653017C6D9B1FF +:1085D000FC6A4DA3E4C7754D6D36CA3F083B691C64 +:1085E000F90EE04C0801FDC33D3CFF7F5E82B8827E +:1085F000E7DA6891492FB4F3FDA379E8D74B9244A9 +:108600007EC58678AD3656B3FF208FBF836D93E865 +:108610009CA25DC4DF417BC89614E177DF6ED1E296 +:1086200017AC83F6C3DA2631FC4E3FD873DE2693AF +:108630009E72FAC4BC4D26BE3EB32981FD12E2965D +:108640006AA51EDA6F697BD524417941D3D7EC49FD +:10865000FDDEB464C26D842B3A6DAE74DCAF33D1F1 +:10866000951E19FFE3AC4B280F733E27988779A915 +:1086700021B785F83D685DB200FDCFE0EE447C1186 +:10868000C03649AEC136BC4F6E8DA1FC7A95CCBACE +:1086900025D28FA09289F1BB43227F20DA3D4EF58F +:1086A0004FE83FB20D87FEFC3AAEBB35CE8574B0C5 +:1086B0002F605FF08FF83C0CEDFA765C13F918959B +:1086C0001789CE83642B0ECA930CFDD2C0F672FFBD +:1086D000F7EF586FFAA549F79D457CFF69EABB9112 +:1086E000F20F8DDA779D26CC8714D3777CC6C0E550 +:1086F000DDD33B3F15F5A27167C543FE22CC0B309D +:108700001FFA97B78DA16AF40317FBD2923A22EEB3 +:108710003B670331F47DED62DF0BAF94C1BE1F1FD9 +:1087200049711B38991437BA1DC924EFA452EE873A +:1087300022F252DE3447382FD5D8776F1683FD1AD0 +:10874000D777166079B1CFB20CFD7DB9BDBA3C11B7 +:10875000D65DF56822E5FDCE36F33CC3BADFE5937E +:108760005E179472FB6CFEEBB1C7F1BD6013B4D918 +:1087700061DF4FFBE3E81D5873FB912C7C327130B5 +:1087800046CD2985FD6F9507965C83FE5F0A1CC860 +:10879000A0F18E51F3D6A27C07EF67A0DFEBFFF9C3 +:1087A000355AE723F9D4A21A98DFBCFEB9785CE702 +:1087B000D65DAF96D965CA1B15E1FAF81DCA8E0CB5 +:1087C000D8DD37DD47FCF3CE281D25AF12BDCFD74E +:1087D000B4FB4189769FA94AF22DA92921B9927E3D +:1087E0008C45DF9A2392EEFBDC2D8104853929AF7D +:1087F000AAE07760D5CE08D75E34B036FA6EA5E130 +:1088000019D1FE8D526E1717137AB2D00ED61E787C +:10881000380BF5FE3D1BAFD71E58FA2BF47BEABE92 +:10882000188EAF8D4CA1EF977E8E8FD99A24DDFBE9 +:10883000C6EAD2383AC7DADDC5BAF88909176C7FBB +:10884000CFC8DF8B641B2EBB11779D35069B504F25 +:10885000CE023EF5933CB97E9CED312CA0773D9B3A +:10886000248678E46CCF73B63C6B18BFD94AFA8380 +:10887000E8DFD61F4EF4F067623CCFB0C12EFC9B00 +:108880007501FA0DC06176B483D6174F2C60BC8E8B +:108890002F2CC7E4E73A0D7F8DD40F1F52102737D6 +:1088A0001FE4F8A3B9FFD04BE393516F35FCA1E16E +:1088B0009AF51AAED97098F365FDE1734A43E4BDA9 +:1088C000A130E99E4C40809B4A5FA9D905E3EA515B +:1088D0006EB3C0EE8A5F5CDE61C4D2CEF1A4718853 +:1088E00070E1F6C23374FF5DDFA5AD5778E69E5C9C +:1088F0003A6FF5B848FC747BA989E689F9C00F9AEC +:1089000027DE518DF97ECAA276A15E5EFD7E8ABF0A +:108910008FFA0AEF92B695829C06B4F8165C1FDBBC +:108920008DB8C3BBC16AC4B273BD95708877E319B3 +:108930000BE60D063E8E95A5785495A163720EBD8B +:10894000CBFA1ECE4F637E7AA795C98212E2FF4B07 +:108950003F7DB718E9C7F759CC8EDF317EBDBC1C0F +:10896000FCD2F74BB5BCBD33548C76947294C78956 +:10897000C74CACDB42EF4C7C0CDFB704B5EF8FFE8D +:10898000CF657A8F322005FF05D7F7C558BBF11D9B +:10899000CC194DDFB7E5F9F6E2FEA7930CF91EDC22 +:1089A00057FB2E3951BB5F29E3D3ADC827F12E4FBA +:1089B000F27A591BEC234B271A508FEE1B3233BC33 +:1089C000D74F1C5F49F1B253E3ABE448C618C68EDB +:1089D0003A657F0CD0711F33D3775245B678719CBE +:1089E00034F0F2E7F8FE28D370F95802F467DE217C +:1089F000B93A81E4BAE177E8FDCDE0E7072DF4DE8E +:108A0000215D3D82F2196F08153D28619CFA91594C +:108A100082F1C9D365BB41CB7B9A41DFE7F13FD9F6 +:108A2000C0E6CFE39360FEBCA1D873C8E74B43EF29 +:108A30003CFD42099666CA4FCE1B300463F08D9D03 +:108A4000B9C21BF96E183DB5B92CBC0EEB7998A1D3 +:108A50001DDDA6C51BB1DE58F32FA53BE83D25EC77 +:108A600043EFE72E59E500DEF7E60D1C7B0DCF390D +:108A70000FDF2BC7E33CD38723796BDCF7F4C444C7 +:108A8000CC53A30D7D092026B593CBF3DA04FD7DED +:108A9000F34229BFE75DD0FCFCC83B49879745C638 +:108AA00045C17FE10704FDC35685E78BD7F0FCFF86 +:108AB000F000E09D51FCAF285F45BC0338E6ED7C3B +:108AC000EF85D294B05E44EB41B4BC855CD99DA7E0 +:108AD0004F24E4903C8B1E64780F0A3DF65B89E4DA +:108AE0007919F56DCF95BD6E9473A76D418EEAFC33 +:108AF000FF2747E177D458FE3E7F2CFFA3C6F277CD +:108B0000FBA3F89FD8C939E49FD2CA52C85F9C40E2 +:108B10007F21FCC457F04B13CA4A23DE49DA64FEB6 +:108B20007D11F134ECD3D9363180F798D9D98E0E36 +:108B300023F6DFC528BE8AF79522AFDBD9368D8FA5 +:108B400013EF25371BE83DE57B26FE9ED2DF3199EA +:108B50007026FDE0BB117F26BD1714EF123B8DBCC4 +:108B6000DDDFCC685C27BE9F4C08BF4B449BA773DE +:108B7000B730F25323FB6EE2EF34853DA809FC3D8C +:108B8000A37A89FBCFF965895A9C089522BEBEEF6E +:108B90006E1B43FD14F21FAFC521217F8326FFF119 +:108BA0004E2EFFF1563988EFA1D99A726FA41CEFAF +:108BB00082B9685F3F817B8019E9AAE6EFF97AAB59 +:108BC000BD19F87DB3B73A55463CF5A3BF7EFBCD42 +:108BD000BB901FAF9808D7F6BAF9397B7F3A89F076 +:108BE000D6A01C786415CE5F62A577B582AF86F4F7 +:108BF0001B1F6984F22149FD01EA59AF4DA6F3F626 +:108C0000AE8D25BBECCDE1E7EFCDCFA575407E0560 +:108C1000BB719F6A33C7C71A7F2EAD99A0C98FEF6A +:108C20003B74BF4DBC73D5FA73C53B57E25FF87D0B +:108C3000EB507CE477974B1A0EB9A4C965A49DF15B +:108C4000F7AE1087E323F3CD63B5CF4C539B514F61 +:108C5000457F6FA23703715534FF7775B8BB0B5052 +:108C60001F6CB21DEF0963C92D6EA9F2F8FE0879D9 +:108C7000A1DAE339E33A67D3B985FC1E12710EF429 +:108C800092F4274A9E6C02D70F9137C8F69F7B84D7 +:108C90003EEAB0D0148C9F60778578CF1C44FF36B5 +:108CA00023ACB79297BF4313762CF455F8B9B1ECC7 +:108CB000596A03FF37EA7BEC7EB2DB09B071DC2432 +:108CC000B2EBEFA27D1A64577A0CD9F3E90CA4E752 +:108CD0002BD8F5C3382F59F32BBF4C57BF8F7C4F80 +:108CE000D6FCC87843600A7FF7CDD668DF2DE9FF50 +:108CF000D1BCA9F17505F8AF7130EEF9321E4FD82D +:108D000096283FA6C9A14E1BFFE647606F33C2728B +:108D10005CA1DDB7EAB6C49C437F58B7C5C4EDA8D3 +:108D2000ADC21BB50EF973B10E735C4EC173897978 +:108D30002BD6FE670AE2EB31E7872624E2FB3DF201 +:108D4000A770EE9715DF0B78CE41769EDE879DFAF1 +:108D50008B81BE739C03F93812B0CC0A38609D60D9 +:108D600019C7352566F5E765E41FE6E9EE89A7DC56 +:108D7000EFE6E33D8B7D716C02D2B33ACD7714F907 +:108D8000B92D6F98BEDB0C660CD1FFCB1AAC797F86 +:108D900022D2B7A2ED65F2FB2B84DFFF3BFC8AE613 +:108DA00093E05FF8DCC32988A3FFAFF8F6DFB0A239 +:108DB000FC89E03600000000000000000000000018 +:108DC0000000004000000000000000000000004023 +:108DD000000000000000000000000028000000006B +:108DE0000000000000000010000000000000000073 +:108DF0000000004000000000000000000000001023 +:108E0000000000000000000000000008000000005A +:108E10000000000000000000000000000000000052 +:108E20000000000000000000000000000000000042 +:108E30000000000000000000000000000000000032 +:108E40000000000000000000000000000000000022 +:108E50000000000000000000000000000000000012 +:108E60000000000000000000000000000000000002 +:108E700000000000000000000000000000000000F2 +:108E800000000000000000000000000000000000E2 +:108E900000000000000000000000000000000000D2 +:108EA00000000000000000000000000000000000C2 +:108EB00000000000000000000000000000000000B2 +:108EC00000000000000000000000000000000000A2 +:108ED0000000000000000000000000000000000092 +:108EE0000000000000000000000000000000000082 +:108EF0000000000000000000000000000000000072 +:108F00000000000000000000000000000000000061 +:108F10000000000000000000000000000000000051 +:108F200000000000000000000000900000100000A1 +:108F3000000000080000900800100000000000027F +:108F400000009000001000000000001080000000F1 +:108F50000000000000000000800000000000000091 +:108F60000000000080000000000000000000000081 +:108F7000800000000000000000000000000093B826 +:108F80000001000400000001000093C00000000088 +:108F900000000002000093C800000000000000086C +:108FA000000093CC0000000000000002000093D0FD +:108FB00000000000000000080000972000400000B2 +:108FC00000000040000093E0008000000000004826 +:108FD000000094E00040000000000008000094F051 +:108FE00000400000000000180000A0000028000061 +:108FF000000000280000C0C00008000000000001C0 +:109000000000C0C100080000000000010000C0C254 +:10901000000800000000000100002008001000000F +:109020000000001000002000000000000000000808 +:1090300080000000000000000000000000000000B0 +:109040000000000000000000000000000000000020 +:109050000000000000000000000000000000000010 +:109060000000000000000000000000000000000000 +:1090700000000000000000000000000000000000F0 +:1090800000000000000000000000000000000000E0 +:1090900000000000000000000000000000000000D0 +:1090A00000000000000000000000000000000000C0 +:1090B00000000000000000000000000000000000B0 +:1090C00000000000000000000000000000000000A0 +:1090D0000000000000000000000000000000000090 +:1090E0000000000000000000000000000000000080 +:1090F0008000000000000000000000008000000070 +:1091000000000000000000008000000000000000DF +:1091100000000000800000000000000000000000CF +:10912000800000000000000000000000800000003F +:1091300000000000000000008000000000000000AF +:10914000000000008000000000000000000000009F +:10915000800000000000000000000000800000000F +:10916000000000000000000080000000000000007F +:10917000000000008000000000000000000000006F +:1091800000000000000000000000000000000000DF +:1091900000000000000000000000000000000000CF +:1091A00000000000000000000000000000000000BF +:1091B000000000000000000000000000800000002F +:1091C000000000000000000080000000000000001F +:1091D000000000008000000000000000000000000F +:1091E00000000000000000000000000080000000FF +:1091F00000000000000000008000000000000000EF +:1092000000000000800000000000000000000000DE +:10921000000000000000000000000000000000004E +:10922000000000000000000000000000000000003E +:10923000000000000000000000000000000000002E +:10924000000000000000000000000000000000001E +:10925000000000000000000080000000000000008E +:1092600000000000000000000000000000000000FE +:1092700000001EC8000000000000000800002008D8 +:10928000001000000000001000002000000000009E +:10929000000000080000A08000080000000000019D +:1092A0000000A08100080000000000010000A08272 +:1092B000000800000000000100009070003800006D +:1092C0000000003800001ED800000000000000026E +:1092D00000001EDA00000000000000028000000014 +:1092E00000000000000000008000000000000000FE +:1092F00000000000800000000000000000000000EE +:10930000800000000000000000000000800000005D +:1093100000000000000000008000000000000000CD +:1093200000000000800000000000000000000000BD +:10933000800000000000000000000000800000002D +:10934000000000000000000000000000000000001D +:10935000000000000000000000000000000000000D +:1093600000000000000000000000000000000000FD +:1093700000000000000000000000000000000000ED +:10938000000000008000000000000000000000005D +:10939000800000000000000000000000000000004D +:1093A000000000000000000080000000000000003D +:1093B000000000008000000000000000000000002D +:1093C000800000000000000000000000800000009D +:1093D000000000000000000080000000000000000D +:1093E00000000000800000000000000000000000FD +:1093F0000000C00000400000000000400000C80065 +:1094000000400000000000400000C82E00400000A6 +:10941000000000010000C800004000020000000140 +:109420000000C801004000020000000000008000B1 +:10943000004000000000004080000000000000002C +:109440000000000000008000000800400000000450 +:109450000000800400080040000000040000B0008C +:1094600000280000000000280000B14000100000AB +:10947000000000100000B14A0010000000000001D0 +:1094800000008800008000000000008000008800CC +:10949000000800800000000200008C000040000076 +:1094A0000000004000002008001000000000001034 +:1094B0000000200000000000000000080000125022 +:1094C0000008000000000001000012510008000028 +:1094D000000000010000125200080000000000011E +:1094E00000008E0000100004000000040000129034 +:1094F0000030001800000010000012980030001822 +:1095000000000002800000000000000000000000D9 +:10951000800000000000000000000000800000004B +:1095200000000000000000008000000000000000BB +:1095300000000000800000000000000000000000AB +:10954000800000000000000000000000800000001B +:10955000000000000000000000000000000000000B +:1095600000000000000000000000000000000000FB +:1095700000000000000000000000000000000000EB +:10958000000000000000000080000000000000005B +:10959000000000008000000000000000000000004B +:1095A000000000000000000000000000800000003B +:1095B000000000000000000080000000000000002B +:1095C000000000008000000000000000000000001B +:1095D000800000000000000000000000800000008B +:1095E0000000000000000000000083080080000070 +:1095F00000000080000000010000000000000000EA +:1096000000002008001000000000001000002000F2 +:1096100000000000000000080000850000080000B5 +:1096200000000001000085010008000000000001AA +:10963000000085020008000000000001000060003A +:10964000003800000000003880000000000000002A +:109650000000000000008454000800000000000228 +:10966000000084560008000000000002000084642E +:109670000010000000000004800000000000000056 +:10968000000000008000000000000000000000005A +:10969000800000000000000000000000000000004A +:1096A00000000000000000000000000000000000BA +:1096B00000000000000000000000000000000000AA +:1096C000000000000000000000000000800000001A +:1096D000000000000000000080000000000000000A +:1096E000000000000000000000000000000000007A +:1096F000800000000000000000000000800000006A +:1097000000000000000000008000000000000000D9 +:1097100000000000800000000000000000000000C9 +:109720008000000000000000000000000000300089 +:109730000040000000000008000030080040000069 +:109740000000002000003200002000000000002087 +:10975000000037A8000000000000000880000000A2 +:1097600000000000000000000000A0000000000059 +:109770000000200000003EC10000000000000001C9 +:1097800000003EE0000000000000000200001E009B +:1097900000E0000800000008800000000000000059 +:1097A0000000000000004000000800000000000170 +:1097B00000004001000800000000000100004040DF +:1097C00000080004000000020000406000080004DF +:1097D0000000000480000000000000000000000005 +:1097E00000004000000800000000000400004004E9 +:1097F00000080000000000040000404000000000DD +:1098000000000008000040480000000000000008C0 +:109810000000800000000000000000100000504028 +:1098200000010004000000010000500000000000E2 +:10983000000000200000500800100000000000049C +:109840000000500C0010000000000001000052C792 +:109850000000000000000001000052C600000000EF +:109860000000000100003000004000200000000463 +:109870000000300400400020000000040000300818 +:1098800000400020000000020000300A00400020DC +:10989000000000020000300C004000200000000129 +:1098A0000000300D00400020000000010000300EDC +:1098B00000400020000000010000301000400020A7 +:1098C00000000004000030140040002000000004EC +:1098D0000000301800400020000000040000301C90 +:1098E0000040002000000004000050000100008043 +:1098F000000800040000500401000080000800047B +:109900000000000A00000000000000000000506895 +:10991000010000800000000100005069010000808B +:10992000000000010000506C0100008000000002F7 +:109930000000506E01000080000000020000507026 +:10994000010000800000000400005074010000804D +:1099500000000004000050660100008000000002CA +:109960000000506401000080000000010000506011 +:109970000100008000000002000050620100008031 +:1099800000000002000050500100008000000004B0 +:1099900000005054010000800000000400005058F6 +:1099A00001000080000000040000505C0100008005 +:1099B000000000040000507C010000800000000155 +:1099C0000000507D010000800000000100004018F0 +:1099D0000010000000000004000040900010000093 +:1099E0000000000400004098001000000000000487 +:1099F00000004110000000000000000200004112C1 +:109A000000000000000000020000411400000000FF +:109A100000000002000041160000000000000002EB +:109A200000006040000800000000000200006042EA +:109A30000008000000000002000060440008000070 +:109A40000000000200006046000800000000000264 +:109A500000006080000800000000000800006000B6 +:109A60000008000000000002000060020008000082 +:109A70000000000100006004000800000000000277 +:109A8000000060C000080000000000080000610045 +:109A9000000800000000000400006104000800004D +:109AA000000000010000614000080000000000020A +:109AB0000000614400080000000000020000614254 +:109AC00000080000000000020000618000080000A3 +:109AD0000000000400007000000800000000000208 +:109AE0000000700200080000000000010000700487 +:109AF00000080000000000020000704000080000A4 +:109B00000000000200007044000800000000000295 +:109B100000007046000800000000000200007660AF +:109B2000000800000000000800007080000800002D +:109B30000000000200007084000800000000000225 +:109B4000000076A00008000000000008000080402F +:109B50000008000000000001000080410008000033 +:109B60000000000100008042000800000000000129 +:109B70000000804300080000000000010000800099 +:109B80000008000000000002000080020008000041 +:109B90000000000100008004000800000000000236 +:109BA000000080C00008000000000002000080C229 +:109BB0000008000000000002000080C4000800004F +:109BC000000000020000808000080000000000018A +:109BD0000000808100080000000000010000808279 +:109BE0000008000000000001000080830008000061 +:109BF0000000000100008084000800000000000157 +:109C00000000808500080000000000010000808640 +:109C100000080000000000010000600000080000D3 +:109C200000000002000060020008000000000001C7 +:109C30000000600400080000000000020000604214 +:109C400000C00018000000020000604000C00018C2 +:109C5000000000020000604C00C000180000000876 +:109C60000000604400C000180000000800006057B9 +:109C700000C00018000000010000605400C000187F +:109C8000000000020000605600C000180000000143 +:109C90000000664000080000000000080000668028 +:109CA0000008000000000008000066C00008000076 +:109CB000000000088000000000000000000000001C +:109CC0008000000000000000000000008000000094 +:109CD0000000000000000000800000000000000004 +:109CE00000000000800000000000000000000000F4 +:109CF0008000000000000000000000008000000064 +:109D000000000000000000008000000000000000D3 +:109D100000000000800000000000000000000000C3 +:109D20008000000000000000000000008000000033 +:109D300000000000000000008000000000000000A3 +:109D40000000000080000000000000000000000093 +:109D50008000000000000000000000008000000003 +:109D60000000000000000000800000000000000073 +:109D70000000000080000000000000000000000063 +:109D800080000000000000000000000080000000D3 +:109D90000000000000000000800000000000000043 +:109DA0000000000080000000000000000000000033 +:109DB00080000000000000000000000080000000A3 +:109DC0000000000000000000800000000000000013 +:109DD0000000000080000000000000000000000003 +:109DE0008000000000000000000000008000000073 +:109DF00000000000000000008000000000000000E3 +:109E000000000000800000000000000000000000D2 +:109E10008000000000000000000000008000000042 +:109E200000000000000000008000000000000000B2 +:109E300000000000800000000000000000000000A2 +:109E40008000000000000000000000008000000012 +:109E50000000000000000000800000000000000082 +:109E60000000000080000000000000000000000072 +:109E700080000000000000000000000080000000E2 +:109E80000000000000000000800000000000000052 +:109E90000000000080000000000000000000000042 +:109EA00080000000000000000000000080000000B2 +:109EB0000000000000000000800000000000000022 +:109EC0000000000080000000000000000000000012 +:109ED0008000000000000000000000008000000082 +:109EE00000000000000000008000000000000000F2 +:109EF00000000000800000000000000000000000E2 +:109F00008000000000000000000000008000000051 +:109F100000000000000000008000000000000000C1 +:109F200000000000800000000000000000000000B1 +:109F30008000000000000000000000008000000021 +:109F40000000000000000000800000000000000091 +:109F50000000000080000000000000000000000081 +:109F60008000000000000000000000000000000071 +:109F70000000000000000000800000000000000061 +:109F800000000000000000000708110000000000B1 +:00000001FF --- linux-3.11.0.orig/firmware/bnx2x/bnx2x-e2-7.8.17.0.fw.ihex +++ linux-3.11.0/firmware/bnx2x/bnx2x-e2-7.8.17.0.fw.ihex @@ -0,0 +1,19382 @@ +:100000000000379000000068000005D800003800AC +:100010000000553C00003DE00000009000009320EF +:100020000000F300000093B8000000C4000186C087 +:100030000001322400018788000000740002B9B07A +:1000400000005CC00002BA28000000AC000316F0FB +:100050000001919C000317A0000011C40004A940F6 +:10006000000000040004BB08021100B800000001F9 +:10007000020600DC000000010306100001FF000082 +:100080000A00000100000008020617FC003FE00122 +:100090000A00000100000010030617FC020101FF26 +:1000A0000A0000010000000803060200000304002B +:1000B0000A00000100000010030602000003040310 +:1000C0000A000001000020000406024C00000002AB +:1000D0000A00000400002020030601E000040406DA +:1000E000030602440002040A030602540002040C40 +:1000F000030602640002040E0A0000030000204010 +:10010000030601E000040410030602400003041487 +:100110000206026400000028020600DC0000000065 +:100120000A00000100000008030601D800020417BD +:100130000A00000200002020030601C0000204198A +:10014000030601D00004041B0A0000020000204046 +:10015000030601C00002041F030601D000040421AD +:100160000A000002000020400306022000020425CD +:100170000306023000040427020D00440000003290 +:10018000030D004C0004042B040D005C000000046F +:10019000030D008C0004042F030D00A000050433A0 +:1001A000020D00B800000002030D00C00004043876 +:1001B000020D015C00000001030D01640002043C1B +:1001C000020D020400000001030D020C0003043EB6 +:1001D000030D022000020441040D02800000001201 +:1001E000030D030000180443040D400000000A0042 +:1001F0000A00000100000008040D03600000000C6C +:10020000030D0004000F045B020D01140000000D3B +:10021000020D01180000002D020D01140000001D48 +:10022000020D01180000003D020D01140000004DF8 +:10023000020D01180000006D020D01140000005DA8 +:10024000020D01180000007D031010000003046A75 +:100250000210105000000001071011000010046D82 +:100260000810114000000008071011600010047D04 +:10027000081011A000000018071018000200048DDB +:1002800004104C0000000100021070040000000186 +:100290000A00000100000008031040D40002068D8F +:1002A00002104028000000100210404400003FFFF0 +:1002B0000210405800280000021040840084924A36 +:1002C00002104058000000000210413800000001F8 +:1002D0000210413800000001021041380000000106 +:1002E00002104138000000010210413800000001F6 +:1002F00002104138000000010210413800000001E6 +:100300000210413800000001030C20080003068F92 +:10031000030C201C00040692030C203800040696EF +:10032000040C20480000001D020C20BC000000014D +:10033000040C20C00000003F030C21BC0003069AFF +:10034000040C21C80000001C030C22380004069D88 +:10035000010C224800000000010C224C00000000AB +:10036000010C225000000000010C2254000000008B +:10037000010C225800000000010C225C000000006B +:10038000010C226000000000010C2264000000004B +:10039000010C226800000000010C226C000000002B +:1003A000010C227000000000010C2274000000000B +:1003B000010C227800000000010C227C00000000EB +:1003C000030C22D8000406A10A0000010000000965 +:1003D000020C2000000003E80A0000010000000AEF +:1003E000020C2000000000030A0000010000000CC5 +:1003F000020C2000000000010A00000100001001B2 +:10040000020C2000000005DC0A00000100001002C0 +:10041000020C2000000000040A000001000010048B +:10042000020C2000000000010A0000010000200171 +:10043000020C2000000005DC0A0000010000200280 +:10044000020C2000000000040A000001000020044B +:10045000020C2000000000010520040000710000D3 +:1004600006200780001006A50422000000004000BE +:10047000042324000000160003221170000806A7C0 +:10048000032211A8009006AF0422C000000000065D +:100490000322C0180004073F0422C0280000000CFB +:1004A0000322C058000407430422C0680000000C67 +:1004B0000322C098000407470422C0A80000000CD3 +:1004C0000322C0D80004074B0422C0E80000000C3F +:1004D0000322C1180004074F0422C1280000000CA9 +:1004E0000322C158000407530422C1680000000C15 +:1004F0000322C198000407570422C1A80000000C81 +:100500000322C1D80004075B0422C1E80000000CEC +:100510000322C2180004075F0422C2280000000C56 +:100520000322C258000407630422C2680000000CC2 +:100530000322C298000407670422C2A80000000C2E +:100540000322C2D80004076B0422C2E80000000C9A +:100550000322C3180004076F0422C3280000000C04 +:100560000322C358000407730422C3680000000C70 +:100570000322C398000407770422C3A80000000CDC +:100580000322C3D80004077B0422C3E80000000C48 +:100590000322C4180004077F0422C4280000000CB2 +:1005A0000322C458000407830422C4680000000C1E +:1005B0000322C498000407870422C4A80000000C8A +:1005C0000322C4D80004078B0422C4E80000000CF6 +:1005D0000322C5180004078F0422C5280000000C60 +:1005E0000322C558000407930422C5680000000CCC +:1005F0000322C598000407970422C5A80000000C38 +:100600000322C5D80004079B0422C5E80000000CA3 +:100610000322C6180004079F0422C6280000000C0D +:100620000322C658000407A30422C6680000000C79 +:100630000322C698000407A70422C6A80000000CE5 +:100640000322C6D8000407AB0422C6E80000000C51 +:100650000322C718000407AF0422C7280000000CBB +:100660000322C758000407B30422C7680000000C27 +:100670000322C798000407B70422C7A80000000C93 +:100680000322C7D8000407BB0422C7E80000000CFF +:100690000322C818000407BF0422C8280000000C69 +:1006A0000322C858000407C30422C8680000000CD5 +:1006B0000322C898000407C70422C8A80000000C41 +:1006C0000322C8D8000407CB0422C8E80000000CAD +:1006D0000322C918000407CF0422C9280000000C17 +:1006E0000322C958000407D30422C9680000000C83 +:1006F0000322C998000407D70422C9A80000000CEF +:100700000322C9D8000407DB0422C9E80000000C5A +:100710000322CA18000407DF0422CA280000000CC4 +:100720000322CA58000407E30422CA680000000C30 +:100730000322CA98000407E70422CAA80000000C9C +:100740000322CAD8000407EB0422CAE80000000C08 +:100750000322CB18000407EF0422CB280000000C72 +:100760000322CB58000407F30422CB680000000CDE +:100770000322CB98000407F70422CBA80000000C4A +:100780000322CBD8000407FB0422CBE80000000CB6 +:100790000322CC18000407FF0422CC280000000C20 +:1007A0000322CC58000408030422CC680000000C8B +:1007B0000322CC98000408070422CCA80000000CF7 +:1007C0000322CCD80004080B0422CCE80000000C63 +:1007D0000322CD180004080F0422CD280000000CCD +:1007E0000322CD58000408130422CD680000000C39 +:1007F0000322CD98000408170422CDA80000000CA5 +:100800000322CDD80004081B0422CDE80000000C10 +:100810000322CE180004081F0422CE280000000C7A +:100820000322CE58000408230422CE680000000CE6 +:100830000322CE98000408270422CEA80000000C52 +:100840000322CED80004082B0422CEE80000000CBE +:100850000322CF180004082F0422CF280000000C28 +:100860000322CF58000408330422CF680000000C94 +:100870000322CF98000408370422CFA80000000C00 +:100880000322CFD80004083B0422CFE80000000C6C +:100890000322D0180004083F0422D0280000000CD6 +:1008A0000322D058000408430422D0680000000C42 +:1008B0000322D098000408470422D0A80000000CAE +:1008C0000322D0D80004084B0422D0E80000000C1A +:1008D0000322D1180004084F0422D1280000000C84 +:1008E0000322D158000408530422D1680000000CF0 +:1008F0000322D198000408570422D1A80000000C5C +:100900000322D1D80004085B0422D1E80000000CC7 +:100910000322D2180004085F0422D2280000000C31 +:100920000322D258000408630422D2680000000C9D +:100930000322D298000408670422D2A80000000C09 +:100940000322D2D80004086B0422D2E80000000C75 +:100950000322D3180004086F0422D3280000000CDF +:100960000322D358000408730422D3680000000C4B +:100970000322D398000408770422D3A80000000CB7 +:100980000322D3D80004087B0422D3E80000000C23 +:100990000322D4180004087F0422D4280000000C8D +:1009A0000322D458000408830422D4680000000CF9 +:1009B0000322D498000408870422D4A80000000C65 +:1009C0000322D4D80004088B0422D4E80000000CD1 +:1009D0000322D5180004088F0422D5280000000C3B +:1009E0000322D558000408930422D5680000000CA7 +:1009F0000322D598000408970422D5A80000000C13 +:100A00000322D5D80004089B0422D5E80000000C7E +:100A10000322D6180004089F0422D6280000000CE8 +:100A20000322D658000408A30422D6680000000C54 +:100A30000322D698000408A70422D6A80000000CC0 +:100A40000322D6D8000408AB0422D6E80000000C2C +:100A50000322D718000408AF0422D7280000000C96 +:100A60000322D758000408B30422D7680000000C02 +:100A70000322D798000408B70422D7A80000000C6E +:100A80000322D7D8000408BB0422D7E80000000CDA +:100A90000322D818000408BF0422D8280000000C44 +:100AA0000322D858000408C30422D8680000000CB0 +:100AB0000322D898000408C70422D8A80000000C1C +:100AC0000322D8D8000408CB0422D8E80000000C88 +:100AD0000322D918000408CF0422D9280000000CF2 +:100AE0000322D958000408D30422D9680000000C5E +:100AF0000322D998000408D70422D9A80000000CCA +:100B00000322D9D8000408DB0422D9E80000000C35 +:100B10000322DA18000408DF0422DA280000000C9F +:100B20000322DA58000408E30422DA680000000C0B +:100B30000322DA98000408E70422DAA80000000C77 +:100B40000322DAD8000408EB0422DAE80000000CE3 +:100B50000322DB18000408EF0422DB280000000C4D +:100B60000322DB58000408F30422DB680000000CB9 +:100B70000322DB98000408F70422DBA80000000C25 +:100B80000322DBD8000408FB0422DBE80000000C91 +:100B90000322DC18000408FF0422DC280000000CFB +:100BA0000322DC58000409030422DC680000000C66 +:100BB0000322DC98000409070422DCA80000000CD2 +:100BC0000322DCD80004090B0422DCE80000000C3E +:100BD0000322DD180004090F0422DD280000000CA8 +:100BE0000322DD58000409130422DD680000000C14 +:100BF0000322DD98000409170422DDA80000000C80 +:100C00000322DDD80004091B0422DDE80000000CEB +:100C10000322DE180004091F0422DE280000000C55 +:100C20000322DE58000409230422DE680000000CC1 +:100C30000322DE98000409270422DEA80000000C2D +:100C40000322DED80004092B0422DEE80000000C99 +:100C50000322DF180004092F0422DF280000000C03 +:100C60000322DF58000409330422DF680000000C6F +:100C70000322DF98000409370422DFA80000000CDB +:100C80000322DFD80004093B0422DFE80000000C47 +:100C90000322E0180004093F0422E0280000000CB1 +:100CA0000322E058000409430422E0680000000C1D +:100CB0000322E098000409470422E0A80000000C89 +:100CC0000322E0D80004094B0422E0E80000000CF5 +:100CD0000322E1180004094F0422E1280000000C5F +:100CE0000322E158000409530422E1680000000CCB +:100CF0000322E198000409570422E1A80000000C37 +:100D00000322E1D80004095B0422E1E800000006A8 +:100D10000422F640000000200223800000000010A2 +:100D20000223804000000012022380800000003077 +:100D3000022380C00000000E02238BC000000001CF +:100D40000A0000020000000802238380000864708B +:100D5000022383C0000002260A00000200000009EE +:100D600002238300000864700223834000000226EF +:100D70000A0000020000000A022383000000055F51 +:100D800002238340000000010A0000020000000C62 +:100D9000022383000000015702238340000000006B +:100DA0000A0000020000100002238380000C96A8B5 +:100DB000022383C0000003390A0000020000100172 +:100DC00002238300000C96A802238340000003390D +:100DD0000A00000200001002022383000000080E37 +:100DE00002238340000000020A00000200001004F9 +:100DF000022383000000020302238340000000005E +:100E00000A0000020000200002238380000CF8503A +:100E1000022383C0000003520A00000200002001E8 +:100E200002238300000CF850022383400000035289 +:100E30000A00000200002002022383000000084D87 +:100E400002238340000000020A0000020000200488 +:100E500002238300000002130223834000000000ED +:100E60000524000031F60000052480002AC80C7E0D +:100E70000624DAD0630C095F0A00000100000002BA +:100E800002231480000000000A000001000000049A +:100E900002231480000000000A000001000000117D +:100EA00002231480000000000A0000010000000876 +:100EB000022000BC000000320A0000040000001004 +:100EC000022000BC00000002022388400000000154 +:100ED00001200138000000000223884000000000CB +:100EE0000A0000010000001102231480000000012C +:100EF00001200000000000000120000400000000AC +:100F000001200008000000000120000C000000008B +:100F1000012000100000000001200014000000006B +:100F200003200020001A0961032000A40002097BAD +:100F30000220022400000000022002340000000011 +:100F40000220024C00000000022002E40000FFFF2B +:100F500008202000000008000A0000010000001026 +:100F600008204000000002000422110800000002D6 +:100F70000422340000000002042259000000000690 +:100F800004226040000000300422F3000000001042 +:100F900004221110000000020422340800000002A4 +:100FA00004225918000000060422610000000030ED +:100FB0000422F34000000010042211180000000277 +:100FC0000422341000000002042259300000000600 +:100FD000042261C0000000300422F38000000010F1 +:100FE0000422112000000002042234180000000234 +:100FF00004225948000000060422628000000030EC +:101000000422F3C000000010042211280000000296 +:10101000042234200000000204225960000000066F +:1010200004226340000000300422F400000000109D +:1010300004221130000000020422342800000002C3 +:1010400004225978000000060422640000000030E9 +:101050000422F440000000100422113800000002B5 +:1010600004223430000000020422599000000006DF +:10107000042264C0000000300422F480000000104C +:101080000422114000000002042234380000000253 +:10109000042259A8000000060422658000000030E8 +:1010A0000422F4C00000001004102400000000E03E +:1010B0000310201C0002097D021020C00000000265 +:1010C000031020040002097F02170008000000023C +:1010D0000217002C0000000302170038007C1004E7 +:1010E0000317004400060981021700700000000C7D +:1010F0000317007800020987021701C408100000D6 +:1011000002170344000000010317040000080989C6 +:10111000031704300008099103170480000409999B +:101120000A000001000000080217003C0000000453 +:101130000A000001000000100217003C0000000837 +:10114000021700040000000F021701EC000000026B +:10115000021701F400000002021701EC0000000277 +:10116000021701F400000002021701EC0000000267 +:10117000021701F400000002021701EC0000000257 +:10118000021701F400000002021701EC0000000247 +:10119000021701F400000002021701EC0000000237 +:1011A000021701F400000002021701EC0000000227 +:1011B000021701F400000002021701EC0000000217 +:1011C000021701F4000000020A00000100000008FC +:1011D00002130078000000320213003C000061A8F6 +:1011E00004130108000000030213010400000000C2 +:1011F0000213013400000000041301080000000382 +:10120000021301040000000002130134000000007A +:101210000413010800000003021301040000000091 +:101220000213013400000000041301080000000351 +:10123000021301040000000002130134000000004A +:101240000413010800000003021301040000000061 +:101250000213013400000000041301080000000321 +:10126000021301040000000002130134000000001A +:101270000413010800000003021301040000000031 +:1012800002130134000000000413010800000003F1 +:1012900002130104000000000213013400000000EA +:1012A0000A000001000000880200A5F8000000000C +:1012B0000A000001000001080200A5F8000000017A +:1012C0000A000001000000900200AA840000000053 +:1012D0000A000001000001100200AA8400000001C1 +:1012E0000A000001000000900200AA88000000002F +:1012F0000A000001000001100200AA88000000019D +:101300000200A270000000000200A27400000000B1 +:101310000200A270000000000200A27400000000A1 +:101320000200A270000000000200A2740000000091 +:101330000200A270000000000200A2740000000081 +:101340000201620400000000030100B40002099DD4 +:10135000030100CC0002099F020100DC0000000133 +:1013600003010100000209A10201007C003000001D +:1013700002010084000000280201008C000000002F +:1013800002010130000000040201032800000000F7 +:101390000201055400000030020160580000FFFF08 +:1013A00002016060000000000201607000000007A0 +:1013B000020160B000000000020160C000000001F6 +:1013C000020160C800000000020162080000000085 +:1013D0000401805400000003020180780000000036 +:1013E000020180E800000007030180F8000209A361 +:1013F0000301810C000209A5020181240000000004 +:101400000A00000200000008020180E40000468893 +:10141000030180EC000209A70A000001000000801F +:1014200002018038000000060A00000100000200EE +:1014300002018038000000070A00000100000400DB +:1014400002018038000000060A00000100000800C8 +:10145000020180380000000E0A0000040000200095 +:10146000020180EC0000003802018100000025E448 +:101470000201811400004BC803018680000409A901 +:10148000020100C400000001020100F80000000198 +:10149000020100F0000000010201008000300000A5 +:1014A00002010088000000280201009000000000F6 +:1014B00002010134000000040201032C00000000BE +:1014C00002010564000000300201605C0000FFFFC3 +:1014D0000201606400000000020160740000000767 +:1014E000020160B400000000020160C400000001BD +:1014F000020160CC000000000201620C000000004C +:10150000040181A800000004020181D00000000055 +:10151000020182340000000703018244000209AD89 +:1015200003018258000209AF0A000002000000080F +:10153000020182300000468803018238000209B1AE +:101540000A000001000000800201818C00000006FA +:101550000A000001000002000201818C0000000767 +:101560000A000001000004000201818C0000000656 +:101570000A000001000008000201818C0000000E3A +:101580000A00000400002000020182380000003838 +:101590000201824C000025E40201826000004BC879 +:1015A000030186E0000409B3020100C80000000145 +:1015B000020100FC00000001020100F40000000133 +:1015C00004010138000000110401017C0000001139 +:1015D00004010138000000110401017C0000001129 +:1015E00004010138000000110401017C0000001119 +:1015F00004010138000000110401017C0000001109 +:101600000215C090000089260215C09C000000044D +:1016100002140000000000010215C02400000000B8 +:101620000315C0EC000209B70315C100000209B997 +:101630000A000001000020000315C1F4000809BBE6 +:1016400003140030000209C302140040000000012E +:10165000090000020000100803140004000309C57B +:10166000021400440000FFFF0A00000400002000F4 +:1016700003140038000209C802140044000FFFFFE1 +:101680000315C160000709CA0315C198000209D1FA +:101690000900000100001008041400040000000309 +:1016A0000A000001000020000415C16000000007CE +:1016B0000214000000000000020090C40000E000DE +:1016C000020090CC0000F300030090D4000209D384 +:1016D000020090E000007300030090E8000209D5CA +:1016E000020090F400007300030090FC000209D790 +:1016F0000200910800005300020091100000000455 +:1017000003009128000709D90300916C000609E045 +:1017100004009184000000060300919C000509E686 +:101720000300942C000309EB0300942C000309EE42 +:101730000300942C000309F10300942C000309F426 +:101740000300942C000309F70300942C000309FA0A +:101750000300942C000309FD0300942C00030A00ED +:101760000304000400120A030204005400000043B2 +:101770000204005C00000006020400700000000487 +:101780000304007800040A15040400880000000522 +:101790000304009C00030A19040400A800000004CC +:1017A000030400B800110A1C010401240000000019 +:1017B00001040128000000000104012C00000000C9 +:1017C0000104013000000000020401340000000F99 +:1017D000030401D000020A2D0204022C00000004C0 +:1017E0000304025800040A2F0312049400210A3350 +:1017F0000212038800000064021203900000000837 +:101800000312039C00030A54031203BC00030A578B +:10181000021203D0000000000212036C000000015D +:10182000031201BC003C0A5A031202B000020A96DD +:101830000312032400020A98021205B400000001FA +:10184000031205F800030A9A0212066C0000000158 +:10185000021201B000000001021207D800000000CF +:10186000021207D800000000021207D80000000092 +:10187000021207D800000000021207D80000000082 +:10188000021207D800000000021207D80000000072 +:10189000021207D800000000021030D8000000013A +:1018A0000710380000050A9D0710392000050AA21C +:1018B00007103B0000050AA707103C0000050AAC12 +:1018C0000316803000080AB102168054000000029E +:1018D0000416807C000000050316809000020AB9FF +:1018E0000316809C00020ABB021680AC0000005464 +:1018F000041680B800000005031680CC00080ABD5D +:10190000021680F0000000070316810000060AC5D9 +:101910000316812800030ACB0316814000060ACE75 +:101920000316816800030AD4031681A800030AD7AE +:10193000031681E800030ADA031681F800030ADDC2 +:101940000316820800070AE00316823400020AE741 +:1019500004168278000000040316828800060AE953 +:101960000216881020200101021688202020010183 +:101970000216883820200101021688482020010123 +:101980000316E6BC00020AEF0A000014000000087B +:101990000316806000070AF1041680A4000000020C +:1019A000041680B000000002031680F400030AF859 +:1019B0000316811800040AFB0316813400030AFF92 +:1019C0000316815800040B0203168174000D0B06E8 +:1019D000031681B4000D0B13021681F4000001FC04 +:1019E00002168204000000030316823C000B0B2049 +:1019F00004168268000000040216880C010101012F +:101A00000316881400030B2B0316882400050B2EE5 +:101A10000316883C00030B330316E6C400020B36A2 +:101A20000316E6E800050B380216E79400000001F3 +:101A30000A00001C000010000316806000070B3D28 +:101A4000041680A400000002041680B0000000020A +:101A5000031680F400030B440316811800040B479F +:101A60000316813400030B4B0316815800040B4E00 +:101A70000216817800000001021681840000000136 +:101A80000216819000000001021681A400000004EB +:101A9000021681B800000001021681C40000000196 +:101AA000021681D000000001021681E4000000044B +:101AB000021681F4000001FC0216820400000003FB +:101AC0000316823C00020B520216824800920092DA +:101AD00002168250012401240316825800040B547C +:101AE00004168268000000040216880C010101013E +:101AF0000316881400030B580316882400050B5B9B +:101B00000316883C00030B600316E6E800020B6333 +:101B10000216E6F8000002040A00000E0000102081 +:101B200002168174000000000316817C00020B6520 +:101B30000316818800020B670316819400040B6969 +:101B4000021681B400000000031681BC00020B6D78 +:101B5000031681C800020B6F031681D400040B71B9 +:101B6000021682440E490E490216824C00920092DF +:101B700002168254012401240316E6C400020B75E8 +:101B80000316E6F000020B770216E794000000014E +:101B90000A00000E000010400216817400000001CF +:101BA0000316817C00020B790316818800020B7BEF +:101BB0000316819400040B7D021681B4000000011D +:101BC000031681BC00020B81031681C800020B833F +:101BD000031681D400040B85021682440000000025 +:101BE0000216824C0FFF0FFF021682540000000005 +:101BF0000316E6C400020B890316E6F000020B8B05 +:101C00000216E794000000000A0000070000200010 +:101C10000316806000070B8D031680A400020B944E +:101C2000031680B000020B96021681F4000001C07A +:101C3000021682040000003F0216823C0000007F72 +:101C40000316E7BC00080B980A00000F00004020B4 +:101C5000031680F400030BA00316811800040BA3E5 +:101C60000316813400030BA70316815800040BAA46 +:101C700003168174000D0BAE031681B4000D0BBB6F +:101C80000316824000060BC80416825800000006A6 +:101C90000316827000020BCE0216880C01010101AE +:101CA0000316881400030BD00316882400050BD3F9 +:101CB0000316883C00030BD80316E6C400020BDBB6 +:101CC0000216E794000000010A00000D00004040E9 +:101CD000031680F400030BDD0316811800040BE0EB +:101CE0000316813400030BE40316815800040BE74C +:101CF00003168174000D0BEB031681B4000D0BF875 +:101D000003168240000E0C050216880C0101010129 +:101D10000316881400030C130316882400050C1600 +:101D20000316883C00030C1B0316E6C400020C1EBD +:101D30000216E794000000000A00000D0000800079 +:101D4000031680F400030C200316811800040C23F2 +:101D50000316813400030C270316815800040C2A53 +:101D600003168174000D0C2E031681B4000D0C3B7C +:101D700003168240000E0C480216880C0101012057 +:101D80000316881400030C560316882400050C590A +:101D90000316883C00030C5E0316E6C400020C61C7 +:101DA0000216E79400000001021680EC000000FF1C +:101DB0000304040800140C63020404CC00000001B6 +:101DC0000305004400020C770305005000080C795D +:101DD0000305009000070C81030500B000020C8889 +:101DE000030500C000020C8A030500D400020C8C1D +:101DF00002050114000000010305011C00020C8E05 +:101E000002050204000000010305020C00020C9010 +:101E10000205021C00000020040502400000000A28 +:101E20000405400000000D000A0000020000000848 +:101E30000305022000020C920305028000200C948E +:101E40000A000002000000100305022000020CB48A +:101E500003050280001D0CB60305000400100CD31E +:101E6000020500E00000000E020500E40000002E64 +:101E7000020500E00000001E020500E40000003E34 +:101E8000020500E00000004E020500E40000006EC4 +:101E9000020500E00000005E020500E40000007E94 +:101EA00004164024000000020316403000030CE337 +:101EB0000216404400000020021640700000001C82 +:101EC0000216420800000001021642100000000144 +:101ED0000216422000000001021642280000000104 +:101EE00002164230000000010216423800000001D4 +:101EF00002164260000000020A0000010000000912 +:101F00000216401C0003D0900A0000010000000AE5 +:101F10000216401C000002710A0000010000000CC3 +:101F20000216401C0000009C0A0000010000100185 +:101F30000216401C0005B8D80A000001000010027B +:101F40000216401C000003A90A0000010000100452 +:101F50000216401C000000EA0A00000100002001F7 +:101F60000216401C0005B8D80A000001000020023B +:101F70000216401C000003A90A0000010000200412 +:101F80000216401C000000EA02164000000000019A +:101F9000021640D8000000010316400800030CE6BA +:101FA00002164240000000000216424800000000F5 +:101FB00008164270000000020216425000000000A5 +:101FC000021642580000000008164280000000027D +:101FD0000304200800040CE90304201C00040CED99 +:101FE00002042038000000200404203C0000001FF0 +:101FF000020420B800000001040420BC0000005FBF +:102000000304223800040CF10104224800000000FF +:102010000104224C000000000104225000000000D6 +:1020200001042254000000000104225800000000B6 +:102030000104225C00000000010422600000000096 +:102040000104226400000000010422680000000076 +:102050000104226C00000000010422700000000056 +:102060000104227400000000010422780000000036 +:102070000104227C00000000030422C000040CF5CF +:102080000A0000010000000902042000000003E82B +:102090000A0000010000000A020420000000000302 +:1020A0000A0000010000000C0204200000000001F2 +:1020B0000A0000010000100102042000000005DCFD +:1020C0000A000001000010020204200000000004C9 +:1020D0000A000001000010040204200000000001BA +:1020E0000A0000010000200102042000000005DCBD +:1020F0000A00000100002002020420000000000489 +:102100000A00000100002004020420000000000179 +:1021100005180400008D0000061807B800090CF926 +:10212000041A000000004000041B240000001600F8 +:10213000031A16C800020CFB031A17E000900CFDEE +:10214000031A404000040D8D041A405000000006A0 +:10215000031A406800020D91031A52C000020D9349 +:10216000031A800003F90D95041A8FE4000000079C +:10217000031B3D900014118E021B800000000034F0 +:10218000021B804000000018021B80800000000C31 +:10219000021B80C000000020021B8BC00000000159 +:1021A0000A00000300000008021A16D00000000216 +:1021B000021B838000086470021B83C0000002269B +:1021C0000A00000200000009021B8300000864707E +:1021D000021B8340000002260A0000020000000AE1 +:1021E000021B83000000055F021B8340000000010A +:1021F0000A0000020000000C021B830000000157CF +:10220000021B8340000000000A00000100000020C3 +:10221000021A16D4000000000A000001000000406D +:10222000021A16D4000000010A000003000010008A +:10223000021A16D000000003021B8380000C96A82F +:10224000021B83C0000003390A00000200001001D5 +:10225000021B8300000C96A8021B83400000033978 +:102260000A00000200001002021B83000000080E9A +:10227000021B8340000000020A000002000010045C +:10228000021B830000000203021B834000000000C9 +:102290000A00000300002000021A16D0000000040B +:1022A000021B8380000CF850021B83C00000035205 +:1022B0000A00000200002001021B8300000CF850FD +:1022C000021B8340000003520A00000200002002AB +:1022D000021B83000000084D021B83400000000227 +:1022E0000A00000200002004021B83000000021309 +:1022F000021B8340000000000A00000100004000B3 +:10230000021A16D8000000000A0000010000800038 +:10231000021A16D800000001041B944800000002B5 +:10232000051C0000327D0000051C800036190CA041 +:10233000051D0000333B1A27051D800036BE26F61A +:10234000051E0000206534A6061E501035FE11A2A1 +:102350000A00000100000002021B148000000000BF +:102360000A00000100000004021B148000000000AD +:102370000A00000100000011021B14800000000090 +:102380000A00000200000008021800BC0000003231 +:10239000021B945C000000320A00000700000010DD +:1023A000021800BC00000002021B945C0000000246 +:1023B000021B884000000001021B942C0000000258 +:1023C0000118012800000000021B884000000000E6 +:1023D000021B942C00000000021B9440000000012E +:1023E0000A00000100000011021B1480000000011F +:1023F00001180000000000000118000400000000A7 +:1024000001180008000000000118000C0000000086 +:102410000118001000000000011800140000000066 +:1024200003180020001A11A4031800A4000211BE12 +:10243000021802240000000002180234000000000C +:102440000218024C00000000021802E4000000FF25 +:1024500008181000000004000A000001000000102D +:102460000818200000000600031A1A30000411C0EA +:10247000041A300000000012041A3090000000120C +:10248000041AD4C800000002041AD4D800000020A6 +:10249000041AD5D800000002041B44000000000606 +:1024A000031A1A40000411C4041A30480000001234 +:1024B000041A30D800000012041AD4D00000000220 +:1024C000041AD55800000020041AD5E000000002CC +:1024D000041B441800000006031A4000000211C843 +:1024E000041A500000000002041A5080000000127C +:1024F000031A6140000211CA041AA0000000000281 +:10250000041B443000000002031A4008000211CCF2 +:10251000041A501000000002041A50C800000012F3 +:10252000031A6148000211CE041AA008000000023C +:10253000041B443800000002031A4010000211D0AE +:10254000041A502000000002041A5110000000126A +:10255000031A6150000211D2041AA01000000002F8 +:10256000041B444000000002031A4018000211D46A +:10257000041A503000000002041A515800000012E2 +:10258000031A6158000211D6041AA01800000002B4 +:10259000041B444800000002031A4020000211D826 +:1025A000041A504000000002041A51A0000000125A +:1025B000031A6160000211DA041AA0200000000270 +:1025C000041B445000000002031A4028000211DCE2 +:1025D000041A505000000002041A51E800000012D2 +:1025E000031A6168000211DE041AA028000000022C +:1025F000041B445800000002031A4030000211E09E +:10260000041A506000000002041A52300000001248 +:10261000031A6170000211E2041AA03000000002E7 +:10262000041B446000000002031A4038000211E459 +:10263000041A507000000002041A527800000012C0 +:10264000031A6178000211E6041AA03800000002A3 +:10265000041B446800000002020E004C000000321F +:10266000030E0054000811E8030E0094000711F057 +:10267000030E00B4000211F7020E00C400000000B7 +:10268000020E00CC00000006030E00D8000211F973 +:10269000020E014400000001030E014C000211FB78 +:1026A000020E020400000001030E020C000211FDE4 +:1026B000030E021C000411FF030E0280001B120314 +:1026C000040E030000000012040E200000000800A9 +:1026D0000A00000100000008040E02EC00000005E2 +:1026E000030E00040011121E020E01100000000F64 +:1026F000020E01140000002F020E01100000001F46 +:10270000020E01140000003F020E01100000004FF5 +:10271000020E01140000006F020E01100000005FA5 +:10272000020E01140000007F020C100000000028BF +:10273000030C40080004122F030C401C0004123349 +:10274000030C403800061237040C40500000001FF4 +:10275000020C40CC00000001040C40D00000003A04 +:10276000030C41B80006123D040C41D00000001AD1 +:10277000030C423800041243010C424800000000E0 +:10278000010C424C00000000010C4250000000000F +:10279000010C425400000000010C425800000000EF +:1027A000010C425C00000000010C426000000000CF +:1027B000010C426400000000010C426800000000AF +:1027C000010C426C00000000010C4270000000008F +:1027D000010C427400000000010C4278000000006F +:1027E000010C427C00000000010C4280000000004F +:1027F000030C42D8000412470A000001000000093F +:10280000020C4000000003E80A0000010000000A7A +:10281000020C4000000000030A0000010000000C50 +:10282000020C4000000000010A000001000010013D +:10283000020C4000000005DC0A000001000010024C +:10284000020C4000000000040A0000010000100417 +:10285000020C4000000000010A00000100002001FD +:10286000020C4000000005DC0A000001000020020C +:10287000020C4000000000040A00000100002004D7 +:10288000020C4000000000010530040000C30000FD +:10289000063007E80003124B04320000000040003D +:1028A000043324000000160003322C700090124DF7 +:1028B000033234C0000812DD0432408000000010F2 +:1028C000033240C0000212E503337400000412E733 +:1028D000023380000000001A023380400000004EE6 +:1028E0000233808000000010023380C0000000200E +:1028F00002338BC0000000010A0000020000000843 +:102900000233838000086470023383C00000022613 +:102910000A0000020000000902338300000864700E +:1029200002338340000002260A0000020000000A71 +:10293000023383000000055F023383400000000182 +:102940000A0000020000000C02338300000001575F +:1029500002338340000000000A0000020000100063 +:1029600002338380000C96A8023383C00000033931 +:102970000A0000020000100102338300000C96A838 +:1029800002338340000003390A00000200001002F5 +:10299000023383000000080E02338340000000026F +:1029A0000A0000020000100402338300000002034A +:1029B00002338340000000000A00000200002000F3 +:1029C00002338380000CF850023383C000000352AE +:1029D0000A0000020000200102338300000CF850BE +:1029E00002338340000003520A000002000020026C +:1029F000023383000000084D0233834000000002D0 +:102A00000A000002000020040233830000000213C9 +:102A100002338340000000000534000034CD000084 +:102A20000534800035A50D340535000038931A9E15 +:102A30000535800037C028C305360000350036B3A1 +:102A400005368000225643F30636D08025F012EB7F +:102A50000A000001000000020233148000000000A0 +:102A60000A0000010000000402331480000000008E +:102A70000A00000100000011023314800000000071 +:102A80000A00000100000008023000BC0000003213 +:102A90000A00000400000010023000BC0000000228 +:102AA00002338840000000010130013800000000BE +:102AB00002338840000000000A00000100000011FD +:102AC000023314800000000101300000000000000B +:102AD0000130000400000000013000080000000088 +:102AE0000130000C00000000013000100000000068 +:102AF000013000140000000003300020001A12ED25 +:102B0000033000A40002130702300224000000007A +:102B100002300234000000000230024C00000000CD +:102B2000023002E40000FFFF08302000000008002F +:102B30000A00000100000010083040000000020000 +:102B400004322C400000000203322C500004130910 +:102B5000043293C000000002043294000000001010 +:102B60000432C000000000200432C1000000002038 +:102B70000432C200000000200432C3000000002024 +:102B80000432C400000000200432C5000000002010 +:102B90000432C600000000200432C70000000020FC +:102BA0000432C800000000200432C90000000020E8 +:102BB0000432CA00000000200432CB0000000020D4 +:102BC0000432CC00000000200432CD0000000020C0 +:102BD0000432CE00000000200432CF0000000020AC +:102BE0000432DB800000000204322C4800000002A6 +:102BF00003322C600004130D043293C8000000025D +:102C000004329440000000100432C0800000002014 +:102C10000432C180000000200432C2800000002085 +:102C20000432C380000000200432C4800000002071 +:102C30000432C580000000200432C680000000205D +:102C40000432C780000000200432C8800000002049 +:102C50000432C980000000200432CA800000002035 +:102C60000432CB80000000200432CC800000002021 +:102C70000432CD80000000200432CE80000000200D +:102C80000432CF80000000200432DB880000000204 +:102C9000043210100000000204322C000000000278 +:102CA000043210200000000204322C080000000250 +:102CB000043210300000000204322C100000000228 +:102CC000043210400000000204322C180000000200 +:102CD000043210500000000204322C2000000002D8 +:102CE000043210600000000204322C2800000002B0 +:102CF000043210700000000204322C300000000288 +:102D0000043210800000000204322C38000000025F +:102D10000202005800000032030200600008131194 +:102D2000030200A0000B1319020200D000000007EC +:102D3000030200DC00031324030200F00002132747 +:102D4000020200FC0000000C020201200000000052 +:102D50000202013400000002020201B00000000182 +:102D60000202020C000000010302021400021329F7 +:102D700002020404000000010302040C0002132BF1 +:102D80000302041C0004132D0302048000201331ED +:102D90000402050000000012040280000000200070 +:102DA000030200040014135102020108000000C8CD +:102DB0000202011800000002020201C4000000002B +:102DC000020201CC00000000020201D40000000257 +:102DD000020201DC00000002020201E4000000FF28 +:102DE000020201EC000000FF0202010C000000C81A +:102DF0000202011C00000002020201C800000000E3 +:102E0000020201D000000000020201D8000000020E +:102E1000020201E000000002020201E8000000FFDF +:102E2000020201F0000000FF02020108000000C8D9 +:102E30000202011800000002020201C400000000AA +:102E4000020201CC00000000020201D400000002D6 +:102E5000020201DC00000002020201E4000000FFA7 +:102E6000020201EC000000FF0202010C000000C899 +:102E70000202011C00000002020201C80000000062 +:102E8000020201D000000000020201D8000000028E +:102E9000020201E000000002020201E8000000FF5F +:102EA000020201F0000000FF02020108000000C859 +:102EB0000202011800000002020201C4000000002A +:102EC000020201CC00000000020201D40000000256 +:102ED000020201DC00000002020201E4000000FF27 +:102EE000020201EC000000FF0202010C000000C819 +:102EF0000202011C00000002020201C800000000E2 +:102F0000020201D000000000020201D8000000020D +:102F1000020201E000000002020201E8000000FFDE +:102F2000020201F0000000FF02020108000000C8D8 +:102F30000202011800000002020201C400000000A9 +:102F4000020201CC00000000020201D400000002D5 +:102F5000020201DC00000002020201E4000000FFA6 +:102F6000020201EC000000FF0202010C000000C898 +:102F70000202011C00000002020201C80000000061 +:102F8000020201D000000000020201D8000000028D +:102F9000020201E000000002020201E8000000FF5E +:102FA000020201F0000000FF0216100000000028DD +:102FB00003166008000313650316601C0004136801 +:102FC000031660380012136C041660800000000EB7 +:102FD000021660B800000001041660BC0000000882 +:102FE000021660DC00000001041660E0000000042E +:102FF000021660F000000001041660F400000031C9 +:10300000031661B80002137E041661C000000007B9 +:10301000031661DC00061380041661F40000001141 +:10302000031662380004138601166248000000008F +:103030000116624C00000000011662500000000002 +:1030400001166254000000000116625800000000E2 +:103050000116625C000000000116626000000000C2 +:1030600001166264000000000116626800000000A2 +:103070000116626C00000000011662700000000082 +:103080000116627400000000011662780000000062 +:103090000116627C00000000011662D400000000EE +:1030A000031662D80004138A0A0000010000000918 +:1030B00002166000000003E80A0000010000000A98 +:1030C00002166000000000030A0000010000000C6E +:1030D00002166000000000010A000001000010015B +:1030E00002166000000005DC0A000001000010026A +:1030F00002166000000000040A0000010000100435 +:1031000002166000000000010A000001000020011A +:1031100002166000000005DC0A0000010000200229 +:1031200002166000000000040A00000100002004F4 +:1031300002166000000000010528040000AC000039 +:10314000062807C80007138E042A0000000040006C +:10315000042B240000001600032A30000002139004 +:10316000032A400000101392032A8408000813A2C7 +:10317000032A9348000413AA032A9668000813AE92 +:10318000032A98B8000213B6032A9950009013B886 +:10319000032B4D9000141448022B80000000000007 +:1031A000022B804000000018022B80800000000CE1 +:1031B000022B80C000000066022B8BC000000001C3 +:1031C0000A00000300000008022A9CA80000000278 +:1031D000022B838000086470022B83C0000002264B +:1031E0000A00000200000009022B8300000864703E +:1031F000022B8340000002260A0000020000000AA1 +:10320000022B83000000055F022B834000000001B9 +:103210000A0000020000000C022B8300000001578E +:10322000022B8340000000000A0000030000002081 +:10323000022A9CAC00000000032AC4E00004145CD5 +:10324000032AC500000214600A00000200000040CA +:10325000022A9CAC00000001032AC4E0000A1462A8 +:103260000A00000300001000022A9CA800000003CE +:10327000022B8380000C96A8022B83C00000033928 +:103280000A00000200001001022B8300000C96A827 +:10329000022B8340000003390A00000200001002E4 +:1032A000022B83000000080E022B83400000000266 +:1032B0000A00000200001004022B83000000020339 +:1032C000022B8340000000000A00000300002000E1 +:1032D000022A9CA800000004022B8380000CF850F6 +:1032E000022B83C0000003520A00000200002001EC +:1032F000022B8300000CF850022B83400000035285 +:103300000A00000200002002022B83000000084D8A +:10331000022B8340000000020A000002000020048B +:10332000022B830000000213022B834000000000E8 +:103330000A00000100004000022A9CB000000000CA +:103340000A00000100008000022A9CB00000000179 +:10335000042B944800000002052C0000345A0000A1 +:10336000052C80003AB30D17052D000030F11BC469 +:10337000052D80003C6B2801052E00003C1D371CEC +:10338000052E80003B5C4624052F0000336D54FB66 +:10339000052F80000A3F61D7062F97E00D04146CBB +:1033A0000A00000100000002022B1480000000004F +:1033B0000A00000100000004022B1480000000003D +:1033C0000A00000100000011022B14800000000020 +:1033D0000A00000200000008022800BC00000032C1 +:1033E000022B945C000000320A000007000000106D +:1033F000022800BC00000002022B945C00000002C6 +:10340000022B884000000001022B942C00000002D7 +:103410000128013800000000022B88400000000055 +:10342000022B942C00000000022B944000000001AD +:103430000A00000100000011022B148000000001AE +:103440000128000000000000012800040000000026 +:1034500001280008000000000128000C0000000006 +:1034600001280010000000000128001400000000E6 +:1034700003280020001A146E032800A400021488F8 +:10348000022802240000000002280234000000008C +:103490000228024C00000000022802E40000FFFFA6 +:1034A00008282000000008000A00000100000010A9 +:1034B0000828400000000200042A5000000000021A +:1034C000042A501000000002042A502000000002CC +:1034D000042A503000000002042A93580000002003 +:1034E000042A94580000000E032A94900002148AC3 +:1034F000042A94D80000000E032A95100002148CB0 +:10350000042A95580000000E032A95900002148E9C +:10351000042A95D80000000E032A96100002149089 +:10352000032A968800021492042ABC980000000224 +:10353000042A500800000002042A5018000000026B +:10354000042A502800000002042A5038000000021B +:10355000042A93D800000020042A94980000000E4A +:10356000032A94D000021494042A95180000000E37 +:10357000032A955000021496042A95980000000E24 +:10358000032A95D000021498042A96180000000E11 +:10359000032A96500002149A032A96900002149C63 +:1035A000042ABCA000000002042A50480000000EBB +:1035B000032A96980010149E042A98D00000000256 +:1035C000042A991000000002042AC48000000002AE +:1035D000042A50800000000E032A96D8001014AE72 +:1035E000042A98D800000002042A9918000000025A +:1035F000042AC48800000002042A50B80000000E0B +:10360000032A9718001014BE042A98E00000000254 +:10361000042A992000000002042AC490000000023D +:10362000042A50F00000000E032A9758001014CE10 +:10363000042A98E800000002042A992800000002E9 +:10364000042AC49800000002042A51280000000E39 +:10365000032A9798001014DE042A98F00000000254 +:10366000042A993000000002042AC4A000000002CD +:10367000042A51600000000E032A97D8001014EEAF +:10368000042A98F800000002042A99380000000279 +:10369000042AC4A800000002042A51980000000E69 +:1036A000032A9818001014FE042A99000000000252 +:1036B000042A994000000002042AC4B0000000025D +:1036C000042A51D00000000E032A98580010150E4D +:1036D000042A990800000002042A99480000000208 +:1036E000042AC4B8000000020400A0000000000C7E +:1036F0000400A050000000020300A0EC0008151E0A +:103700000300A19C000415260200A45C00000C002C +:103710000400A6A8000000020200A6D000000000DD +:103720000200A61C000000030300A0700005152A7B +:103730000400A084000000050200A0980FE0000033 +:103740000400A09C000000070300A0B8000D152F86 +:103750000400A22C000000040200A688000000FC67 +:103760000400A68C000000070200A6F40000000080 +:103770000300A10C0006153C0400A1240000000574 +:103780000200A1380FE000000400A13C0000000787 +:103790000300A158000D15420400A23C00000004E3 +:1037A0000200A6B0000000FC0400A6B40000000760 +:1037B0000200A6F8000000000200A0300000000097 +:1037C0000200A034000000000200A0380000000049 +:1037D0000200A03C000000000200A0400000000029 +:1037E0000200A044000000000200A0480000000009 +:1037F0000200A04C000000000000000000000000DB +:1038000000000001000000000000000000000000B7 +:1038100000000000000000000000000000000000A8 +:103820000000000000000000000000000001001780 +:103830000017001F001F0022000000000000000011 +:103840000000000000000000000000000000000078 +:103850000000000000000000002200340000000012 +:103860000000000000340035003500360036003717 +:1038700000370038003800390039003A003A003B80 +:10388000003B003C003C0043000000000000000042 +:103890000000000000000000000000000000000028 +:1038A0000000000000000000000000000000000018 +:1038B0000043004C0000000000000000004C004DE0 +:1038C000004D004E004E004F004F00500050005180 +:1038D0000051005200520053005300540054007E27 +:1038E00000000000000000000000000000000000D8 +:1038F00000000000000000000000000000000000C8 +:103900000000000000000000007E01E00000000058 +:103910000000000001E001E501E501EA01EA01EF34 +:1039200001EF01F401F401F901F901FE01FE0203C6 +:103930000203020800000000000000000000000078 +:103940000000000000000000000000000000000077 +:103950000000000000000000000000000000000067 +:103960000208020C0000000000000000000000003F +:103970000000000000000000000000000000000047 +:10398000000000000000000000000000020C021C0B +:103990000000000000000000021C021E021E0220A7 +:1039A00002200222022202240224022602260228E7 +:1039B0000228022A022A022C000000000000000057 +:1039C00000000000000000000000000000000000F7 +:1039D00000000000000000000000000000000000E7 +:1039E00000000000022C022F000000000000000078 +:1039F000022F023202320235023502380238023B0F +:103A0000023B023E023E024102410244024402479E +:103A10000247024B024B024F024F02530253025421 +:103A200002540255025502560256025702570258D6 +:103A3000025802590259025A025A025B025B0260A2 +:103A400002600286028602AB02AB02AC02AC02AD9F +:103A500002AD02AE02AE02AF02AF02B002B002B1DE +:103A600002B102B202B202B302B302CA0000000005 +:103A70000000000000000000000000000000000046 +:103A80000000000000000000000000000000000036 +:103A90000000000002CA02D7000000000000000081 +:103AA00002D702D802D802D902D902DA02DA02DB3E +:103AB00002DB02DC02DC02DD02DD02DE02DE02DF0E +:103AC00002DF02F000000000000000000000000023 +:103AD00000000000000000000000000000000000E6 +:103AE00000000000000000000000000002F002FEE4 +:103AF000000000000000000002FE02FF02FF0300C1 +:103B0000030003010301030203020303030303048D +:103B100003040305030503060306030B000000006E +:103B20000000000000000000000000000000000095 +:103B30000000000000000000000000000000000085 +:103B400000000000030B03A90000000000000000BB +:103B50000000000000000000000000000000000065 +:103B60000000000000000000000000000000000055 +:103B700003A903AB000000000000000000000000EB +:103B80000000000000000000000000000000000035 +:103B900000000000000000000000000003AB03BFB5 +:103BA000000000000000000003BF03C003C003C109 +:103BB00003C103C203C203C303C303C403C403C5D5 +:103BC00003C503C603C603C703C703E703E703EA46 +:103BD00003EA03ED00000000000000000000000008 +:103BE00000000000000000000000000000000000D5 +:103BF0000000000003ED04150000000000000000BC +:103C000000000000000000000000000000000000B4 +:103C100000000000000000000000000000000000A4 +:103C200004150480048004870487048E048E0494A1 +:103C30000494049A049A04A004A004A604A604AC64 +:103C400004AC04B204B204B804B804BE04BE04D088 +:103C5000000000000000000004D004D104D104D210 +:103C600004D204D304D304D404D404D504D504D694 +:103C700004D604D704D704D804D804D9000000001F +:103C80000000000000000000000000000000000034 +:103C90000000000000000000000000000000000024 +:103CA0000000000004D9050400000000000000002E +:103CB0000000000000000000000000000000000004 +:103CC00000000000000000000000000000000000F4 +:103CD0000504055B055B0570057005850585058791 +:103CE000058705890589058B058B058D058D058F54 +:103CF000058F05910591059305930595059505A8F3 +:103D0000000000000000000005A805B005B005B8DF +:103D100005B805C005C005C805C805D005D005D83B +:103D200005D805E005E005E805E805E90000000024 +:103D30000000000000000000000000000000000083 +:103D40000000000000000000000000000000000073 +:103D50000000000005E9061A000000000000000055 +:103D60000000000000000000000000000000000053 +:103D70000000000000000000000000000000000043 +:103D8000061A068A068A0699069906A806A806ADA6 +:103D900006AD06B206B206B706B706BC06BC06C13B +:103DA00006C106C606C606CB06CB06D006D006D888 +:103DB00006D806E106E106EA06EA06EB06EB06ECA3 +:103DC00006EC06ED06ED06EE06EE06EF06EF06F053 +:103DD00006F006F106F106F2000000000000000007 +:103DE0000000200000004000000060000000800093 +:103DF0000000A0000000C0000000E0000001000082 +:103E0000000120000001400000016000000180006E +:103E10000001A0000001C0000001E000000200005D +:103E2000000220000002400000026000000280004A +:103E30000002A0000002C0000002E0000003000039 +:103E40000003200000034000000360000003800026 +:103E50000003A0000003C0000003E0000004000015 +:103E60000004200000044000000460000004800002 +:103E70000004A0000004C0000004E00000050000F1 +:103E800000052000000540000005600000058000DE +:103E90000005A0000005C0000005E00000060000CD +:103EA00000062000000640000006600000068000BA +:103EB0000006A0000006C0000006E00000070000A9 +:103EC0000007200000074000000760000007800096 +:103ED0000007A0000007C0000007E0000008000085 +:103EE0000008200000084000000860000008800072 +:103EF0000008A0000008C0000008E0000009000061 +:103F0000000920000009400000096000000980004D +:103F10000009A0000009C0000009E000000A00003C +:103F2000000A2000000A4000000A6000000A800029 +:103F3000000AA000000AC000000AE000000B000018 +:103F4000000B2000000B4000000B6000000B800005 +:103F5000000BA000000BC000000BE000000C0000F4 +:103F6000000C2000000C4000000C6000000C8000E1 +:103F7000000CA000000CC000000CE000000D0000D0 +:103F8000000D2000000D4000000D6000000D8000BD +:103F9000000DA000000DC000000DE000000E0000AC +:103FA000000E2000000E4000000E6000000E800099 +:103FB000000EA000000EC000000EE000000F000088 +:103FC000000F2000000F4000000F6000000F800075 +:103FD000000FA000000FC000000FE0000010000064 +:103FE0000010200000104000001060000010800051 +:103FF0000010A0000010C0000010E0000011000040 +:10400000001120000011400000116000001180002C +:104010000011A0000011C0000011E000001200001B +:104020000012200000124000001260000012800008 +:104030000012A0000012C0000012E00000130000F7 +:1040400000132000001340000013600000138000E4 +:104050000013A0000013C0000013E00000140000D3 +:1040600000142000001440000014600000148000C0 +:104070000014A0000014C0000014E00000150000AF +:10408000001520000015400000156000001580009C +:104090000015A0000015C0000015E000001600008B +:1040A0000016200000164000001660000016800078 +:1040B0000016A0000016C0000016E0000017000067 +:1040C0000017200000174000001760000017800054 +:1040D0000017A0000017C0000017E0000018000043 +:1040E0000018200000184000001860000018800030 +:1040F0000018A0000018C0000018E000001900001F +:10410000001920000019400000196000001980000B +:104110000019A0000019C0000019E000001A0000FA +:10412000001A2000001A4000001A6000001A8000E7 +:10413000001AA000001AC000001AE000001B0000D6 +:10414000001B2000001B4000001B6000001B8000C3 +:10415000001BA000001BC000001BE000001C0000B2 +:10416000001C2000001C4000001C6000001C80009F +:10417000001CA000001CC000001CE000001D00008E +:10418000001D2000001D4000001D6000001D80007B +:10419000001DA000001DC000001DE000001E00006A +:1041A000001E2000001E4000001E6000001E800057 +:1041B000001EA000001EC000001EE000001F000046 +:1041C000001F2000001F4000001F6000001F800033 +:1041D000001FA000001FC000001FE0000020000022 +:1041E000002020000020400000206000002080000F +:1041F0000020A0000020C0000020E00000210000FE +:1042000000212000002140000021600000218000EA +:104210000021A0000021C0000021E00000220000D9 +:1042200000222000002240000022600000228000C6 +:104230000022A0000022C0000022E00000230000B5 +:1042400000232000002340000023600000238000A2 +:104250000023A0000023C0000023E0000024000091 +:10426000002420000024400000246000002480007E +:104270000024A0000024C0000024E000002500006D +:10428000002520000025400000256000002580005A +:104290000025A0000025C0000025E0000026000049 +:1042A0000026200000264000002660000026800036 +:1042B0000026A0000026C0000026E0000027000025 +:1042C0000027200000274000002760000027800012 +:1042D0000027A0000027C0000027E0000028000001 +:1042E00000282000002840000028600000288000EE +:1042F0000028A0000028C0000028E00000290000DD +:1043000000292000002940000029600000298000C9 +:104310000029A0000029C0000029E000002A0000B8 +:10432000002A2000002A4000002A6000002A8000A5 +:10433000002AA000002AC000002AE000002B000094 +:10434000002B2000002B4000002B6000002B800081 +:10435000002BA000002BC000002BE000002C000070 +:10436000002C2000002C4000002C6000002C80005D +:10437000002CA000002CC000002CE000002D00004C +:10438000002D2000002D4000002D6000002D800039 +:10439000002DA000002DC000002DE000002E000028 +:1043A000002E2000002E4000002E6000002E800015 +:1043B000002EA000002EC000002EE000002F000004 +:1043C000002F2000002F4000002F6000002F8000F1 +:1043D000002FA000002FC000002FE00000300000E0 +:1043E00000302000003040000030600000308000CD +:1043F0000030A0000030C0000030E00000310000BC +:1044000000312000003140000031600000318000A8 +:104410000031A0000031C0000031E0000032000097 +:104420000032200000324000003260000032800084 +:104430000032A0000032C0000032E0000033000073 +:104440000033200000334000003360000033800060 +:104450000033A0000033C0000033E000003400004F +:10446000003420000034400000346000003480003C +:104470000034A0000034C0000034E000003500002B +:104480000035200000354000003560000035800018 +:104490000035A0000035C0000035E0000036000007 +:1044A00000362000003640000036600000368000F4 +:1044B0000036A0000036C0000036E00000370000E3 +:1044C00000372000003740000037600000378000D0 +:1044D0000037A0000037C0000037E00000380000BF +:1044E00000382000003840000038600000388000AC +:1044F0000038A0000038C0000038E000003900009B +:104500000039200000394000003960000039800087 +:104510000039A0000039C0000039E000003A000076 +:10452000003A2000003A4000003A6000003A800063 +:10453000003AA000003AC000003AE000003B000052 +:10454000003B2000003B4000003B6000003B80003F +:10455000003BA000003BC000003BE000003C00002E +:10456000003C2000003C4000003C6000003C80001B +:10457000003CA000003CC000003CE000003D00000A +:10458000003D2000003D4000003D6000003D8000F7 +:10459000003DA000003DC000003DE000003E0000E6 +:1045A000003E2000003E4000003E6000003E8000D3 +:1045B000003EA000003EC000003EE000003F0000C2 +:1045C000003F2000003F4000003F6000003F8000AF +:1045D000003FA000003FC000003FE000004000009E +:1045E000004020000040400000406000004080008B +:1045F0000040A0000040C0000040E000004100007A +:104600000041200000414000004160000041800066 +:104610000041A0000041C0000041E0000042000055 +:104620000042200000424000004260000042800042 +:104630000042A0000042C0000042E0000043000031 +:10464000004320000043400000436000004380001E +:104650000043A0000043C0000043E000004400000D +:1046600000442000004440000044600000448000FA +:104670000044A0000044C0000044E00000450000E9 +:1046800000452000004540000045600000458000D6 +:104690000045A0000045C0000045E00000460000C5 +:1046A00000462000004640000046600000468000B2 +:1046B0000046A0000046C0000046E00000470000A1 +:1046C000004720000047400000476000004780008E +:1046D0000047A0000047C0000047E000004800007D +:1046E000004820000048400000486000004880006A +:1046F0000048A0000048C0000048E0000049000059 +:104700000049200000494000004960000049800045 +:104710000049A0000049C0000049E000004A000034 +:10472000004A2000004A4000004A6000004A800021 +:10473000004AA000004AC000004AE000004B000010 +:10474000004B2000004B4000004B6000004B8000FD +:10475000004BA000004BC000004BE000004C0000EC +:10476000004C2000004C4000004C6000004C8000D9 +:10477000004CA000004CC000004CE000004D0000C8 +:10478000004D2000004D4000004D6000004D8000B5 +:10479000004DA000004DC000004DE000004E0000A4 +:1047A000004E2000004E4000004E6000004E800091 +:1047B000004EA000004EC000004EE000004F000080 +:1047C000004F2000004F4000004F6000004F80006D +:1047D000004FA000004FC000004FE000005000005C +:1047E0000050200000504000005060000050800049 +:1047F0000050A0000050C0000050E0000051000038 +:104800000051200000514000005160000051800024 +:104810000051A0000051C0000051E0000052000013 +:104820000052200000524000005260000052800000 +:104830000052A0000052C0000052E00000530000EF +:1048400000532000005340000053600000538000DC +:104850000053A0000053C0000053E00000540000CB +:1048600000542000005440000054600000548000B8 +:104870000054A0000054C0000054E00000550000A7 +:104880000055200000554000005560000055800094 +:104890000055A0000055C0000055E0000056000083 +:1048A0000056200000564000005660000056800070 +:1048B0000056A0000056C0000056E000005700005F +:1048C000005720000057400000576000005780004C +:1048D0000057A0000057C0000057E000005800003B +:1048E0000058200000584000005860000058800028 +:1048F0000058A0000058C0000058E0000059000017 +:104900000059200000594000005960000059800003 +:104910000059A0000059C0000059E000005A0000F2 +:10492000005A2000005A4000005A6000005A8000DF +:10493000005AA000005AC000005AE000005B0000CE +:10494000005B2000005B4000005B6000005B8000BB +:10495000005BA000005BC000005BE000005C0000AA +:10496000005C2000005C4000005C6000005C800097 +:10497000005CA000005CC000005CE000005D000086 +:10498000005D2000005D4000005D6000005D800073 +:10499000005DA000005DC000005DE000005E000062 +:1049A000005E2000005E4000005E6000005E80004F +:1049B000005EA000005EC000005EE000005F00003E +:1049C000005F2000005F4000005F6000005F80002B +:1049D000005FA000005FC000005FE000006000001A +:1049E0000060200000604000006060000060800007 +:1049F0000060A0000060C0000060E00000610000F6 +:104A000000612000006140000061600000618000E2 +:104A10000061A0000061C0000061E00000620000D1 +:104A200000622000006240000062600000628000BE +:104A30000062A0000062C0000062E00000630000AD +:104A4000006320000063400000636000006380009A +:104A50000063A0000063C0000063E0000064000089 +:104A60000064200000644000006460000064800076 +:104A70000064A0000064C0000064E0000065000065 +:104A80000065200000654000006560000065800052 +:104A90000065A0000065C0000065E0000066000041 +:104AA000006620000066400000666000006680002E +:104AB0000066A0000066C0000066E000006700001D +:104AC000006720000067400000676000006780000A +:104AD0000067A0000067C0000067E00000680000F9 +:104AE00000682000006840000068600000688000E6 +:104AF0000068A0000068C0000068E00000690000D5 +:104B000000692000006940000069600000698000C1 +:104B10000069A0000069C0000069E000006A0000B0 +:104B2000006A2000006A4000006A6000006A80009D +:104B3000006AA000006AC000006AE000006B00008C +:104B4000006B2000006B4000006B6000006B800079 +:104B5000006BA000006BC000006BE000006C000068 +:104B6000006C2000006C4000006C6000006C800055 +:104B7000006CA000006CC000006CE000006D000044 +:104B8000006D2000006D4000006D6000006D800031 +:104B9000006DA000006DC000006DE000006E000020 +:104BA000006E2000006E4000006E6000006E80000D +:104BB000006EA000006EC000006EE000006F0000FC +:104BC000006F2000006F4000006F6000006F8000E9 +:104BD000006FA000006FC000006FE00000700000D8 +:104BE00000702000007040000070600000708000C5 +:104BF0000070A0000070C0000070E00000710000B4 +:104C000000712000007140000071600000718000A0 +:104C10000071A0000071C0000071E000007200008F +:104C2000007220000072400000726000007280007C +:104C30000072A0000072C0000072E000007300006B +:104C40000073200000734000007360000073800058 +:104C50000073A0000073C0000073E0000074000047 +:104C60000074200000744000007460000074800034 +:104C70000074A0000074C0000074E0000075000023 +:104C80000075200000754000007560000075800010 +:104C90000075A0000075C0000075E00000760000FF +:104CA00000762000007640000076600000768000EC +:104CB0000076A0000076C0000076E00000770000DB +:104CC00000772000007740000077600000778000C8 +:104CD0000077A0000077C0000077E00000780000B7 +:104CE00000782000007840000078600000788000A4 +:104CF0000078A0000078C0000078E0000079000093 +:104D0000007920000079400000796000007980007F +:104D10000079A0000079C0000079E000007A00006E +:104D2000007A2000007A4000007A6000007A80005B +:104D3000007AA000007AC000007AE000007B00004A +:104D4000007B2000007B4000007B6000007B800037 +:104D5000007BA000007BC000007BE000007C000026 +:104D6000007C2000007C4000007C6000007C800013 +:104D7000007CA000007CC000007CE000007D000002 +:104D8000007D2000007D4000007D6000007D8000EF +:104D9000007DA000007DC000007DE000007E0000DE +:104DA000007E2000007E4000007E6000007E8000CB +:104DB000007EA000007EC000007EE000007F0000BA +:104DC000007F2000007F4000007F6000007F8000A7 +:104DD000007FA000007FC000007FE000007FE001B6 +:104DE00000000000000001FF0000020000000000C1 +:104DF000000003FF000004000000040100000401A3 +:104E0000000002380000011C0000011C0000011C11 +:104E100000000050000000500000005000000001A1 +:104E200000000158000001A8000000C8000000A018 +:104E3000000000C800000000000000000000005A50 +:104E4000000000FA00000401000004010000000A54 +:104E500000000032000004010000040100000158BD +:104E6000000001A80000001800000068000000B861 +:104E70000000010800000158000001A8000000180F +:104E800000000068000000B80000010800000001F8 +:104E900000000002000000000000000802150020D1 +:104EA000021500200810000000000036000000007D +:104EB00000000004000000040000000000000000EA +:104EC00000000001000000040000000200000002D9 +:104ED000000000010000000200000020000000406F +:104EE0000000004000000003000000180000200047 +:104EF000000040C000006180000082400000A3006C +:104F00000000C3C00000E48000010540000126004D +:104F1000000146C000016780000188400001A9002F +:104F20000001C9C00001EA8000020B4000022C0011 +:104F300000024CC000026D8000028E400002AF00F3 +:104F40000002CFC00002F08000001140000000010C +:104F5000000000010000000100000001000000014D +:104F6000000000010000000100000001000000013D +:104F7000000000010000000100000001000000012D +:104F800000000001000000010003D0000000003D0F +:104F900000000001000D0000000700D00002814069 +:104FA000000B81680002022000010240000F025045 +:104FB00000010340000C0000000800C00002814016 +:104FC000000B81680002022000010240000702502D +:104FD000000202C0001000000008010000028180F1 +:104FE000000B81A80002026000018280000E8298FE +:104FF00000080380000F0000000100F000028100A3 +:1050000000090128000201B8000101D8000E01E8E2 +:10501000000002C8FFFFFFF301AFFFFF0000000028 +:105020000000000000000000000000000000000080 +:1050300000000000FFFFFFF100EFFFFF0000000095 +:10504000000000000000000000000000000100005F +:1050500000000000FFFFFFF6005FFFFF0000000000 +:10506000000000000000000000000000000200003E +:1050700000000000FFFFF4061CBFFFFF000000055A +:105080000000000000000014000000000004000008 +:1050900000000000FFFFFFF2004FFFFF00000000D4 +:1050A00000000000000000000000000000080000F8 +:1050B00000000000FFFFFFFA002FFFFF00000000CC +:1050C00000000000000000000000000000100000D0 +:1050D00000000000FFFFFFF701EFFFFF00000000EE +:1050E00000000000000000000000000000200000A0 +:1050F00000000000FFFFFFF5002FFFFF0000000091 +:10510000000000000000000000000000004000005F +:1051100000000000FFFFFFF3018FFFFF0000000011 +:10512000000000000000000000000000000000007F +:1051300000000000FFFFFFF1010FFFFF0000000073 +:10514000000000000000000000000000000100005E +:1051500000000000FFFFFFF6005FFFFF00000000FF +:10516000000000000000000000000000000200003D +:1051700000000000FFFFF4061CBFFFFF0000000559 +:105180000000000000000014000000000004000007 +:1051900000000000FFFFFFF2004FFFFF00000000D3 +:1051A00000000000000000000000000000080000F7 +:1051B00000000000FFFFFFFA002FFFFF00000000CB +:1051C00000000000000000000000000000100000CF +:1051D00000000000FFFFFFF700EFFFFF00000000EE +:1051E000000000000000000000000000002000009F +:1051F00000000000FFFFFFF5004FFFFF0000000070 +:10520000000000000000000000000000004000005E +:1052100000000000FFFFFFFF00CFFFFF00000000C5 +:1052200000000000000000CC0000000000000000B2 +:1052300000000000FFFFFFFF00CFFFFF00000000A5 +:1052400000000000000000CC000000000001000091 +:1052500000000000FFFFFFFF00CFFFFF0000000085 +:1052600000000000000000CC000000000002000070 +:1052700000000000FFFFFFFF00CFFFFF0000000065 +:1052800000000000000000CC00000000000400004E +:1052900000000000FFFFFFFF00CFFFFF0000000045 +:1052A00000000000000000CC00000000000800002A +:1052B00000000000FFFFFFFF00CFFFFF0000000025 +:1052C00000000000000000CC000000000010000002 +:1052D00000000000FFFFFFFF00CFFFFF0000000005 +:1052E00000000000000000CC0000000000200000D2 +:1052F00000000000FFFFFFFF00CFFFFF00000000E5 +:1053000000000000000000CC000000000040000091 +:1053100000000000FFFFFFF3020FFFFF000000008E +:10532000000000000000000000000000000000007D +:1053300000000000FFFFFFF1010FFFFF0000000071 +:10534000000000000000000000000000000100005C +:1053500000000000FFFFFFF6005FFFFF00000000FD +:10536000000000000000000000000000000200003B +:1053700000000000FFFFF4061CBFFFFF0000000557 +:105380000000000000000014000000000004000005 +:1053900000000000FFFFFFF2004FFFFF00000000D1 +:1053A00000000000000000000000000000080000F5 +:1053B00000000000FFFFFF8A042FFFFF0000000035 +:1053C00000000000000000000000000000100000CD +:1053D00000000000FFFFFF9705CFFFFF0000000067 +:1053E000000000000000000000000000002000009D +:1053F00000000000FFFFFFF5010FFFFF00000000AD +:10540000000000000000000000000000004000005C +:1054100000000000FFFFFFF301EFFFFF00000000AE +:10542000000000000000000000000000000000007C +:1054300000000000FFFFFFF1002FFFFF0000000051 +:10544000000000000000000000000000000100005B +:1054500000000000FFFFFFF6005FFFFF00000000FC +:10546000000000000000000000000000000200003A +:1054700000000000FFFFFF061CBFFFFF0000000050 +:105480000000000000000014000000000004000004 +:1054900000000000FFFFFFF2004FFFFF00000000D0 +:1054A00000000000000000000000000000080000F4 +:1054B00000000000FFFFFFFA002FFFFF00000000C8 +:1054C00000000000000000000000000000100000CC +:1054D00000000000FFFFFFF701CFFFFF000000000A +:1054E000000000000000000000000000002000009C +:1054F00000000000FFFFFFFF00CFFFFF00000000E3 +:1055000000000000000000CC00000000004000008F +:1055100000000000FFFFFFFF00CFFFFF00000000C2 +:1055200000000000000000CC0000000000000000AF +:1055300000000000FFFFFFFF00CFFFFF00000000A2 +:1055400000000000000000CC00000000000100008E +:1055500000000000FFFFFFFF00CFFFFF0000000082 +:1055600000000000000000CC00000000000200006D +:1055700000000000FFFFFFFF00CFFFFF0000000062 +:1055800000000000000000CC00000000000400004B +:1055900000000000FFFFFFFF00CFFFFF0000000042 +:1055A00000000000000000CC000000000008000027 +:1055B00000000000FFFFFFFF00CFFFFF0000000022 +:1055C00000000000000000CC0000000000100000FF +:1055D00000000000FFFFFFFF00CFFFFF0000000002 +:1055E00000000000000000CC0000000000200000CF +:1055F00000000000FFFFFFFF00CFFFFF00000000E2 +:1056000000000000000000CC00000000004000008E +:1056100000000000FFFFFFFF00CFFFFF00000000C1 +:1056200000000000000000CC0000000000000000AE +:1056300000000000FFFFFFFF00CFFFFF00000000A1 +:1056400000000000000000CC00000000000100008D +:1056500000000000FFFFFFFF00CFFFFF0000000081 +:1056600000000000000000CC00000000000200006C +:1056700000000000FFFFFFFF00CFFFFF0000000061 +:1056800000000000000000CC00000000000400004A +:1056900000000000FFFFFFFF00CFFFFF0000000041 +:1056A00000000000000000CC000000000008000026 +:1056B00000000000FFFFFFFF00CFFFFF0000000021 +:1056C00000000000000000CC0000000000100000FE +:1056D00000000000FFFFFFFF00CFFFFF0000000001 +:1056E00000000000000000CC0000000000200000CE +:1056F00000000000FFFFFFFF00CFFFFF00000000E1 +:1057000000000000000000CC00000000004000008D +:1057100000000000FFFFFFFF00CFFFFF00000000C0 +:1057200000000000000000CC0000000000000000AD +:1057300000000000FFFFFFFF00CFFFFF00000000A0 +:1057400000000000000000CC00000000000100008C +:1057500000000000FFFFFFFF00CFFFFF0000000080 +:1057600000000000000000CC00000000000200006B +:1057700000000000FFFFFFFF00CFFFFF0000000060 +:1057800000000000000000CC000000000004000049 +:1057900000000000FFFFFFFF00CFFFFF0000000040 +:1057A00000000000000000CC000000000008000025 +:1057B00000000000FFFFFFFF00CFFFFF0000000020 +:1057C00000000000000000CC0000000000100000FD +:1057D00000000000FFFFFFFF00CFFFFF0000000000 +:1057E00000000000000000CC0000000000200000CD +:1057F00000000000FFFFFFFF00CFFFFF00000000E0 +:1058000000000000000000CC00000000004000008C +:105810000000000000000032000000320000021111 +:1058200000000200000002040000FFFF0000FFFF74 +:105830000000FFFF0000FFFF000000000000003735 +:105840000000002100000020000000010000000115 +:105850000000000107FFFFFF0000007F07FFFFFFC0 +:105860000000003F0000FFFF0000FFFF0000FFFFFF +:105870000000FFFF00007FF800007FF8000000003C +:10588000000028AD000029180000291900000005BB +:105890000000000700000000000000000000FF0002 +:1058A000000000000000FF00000000000000FF00FA +:1058B000000000000000FF00000000000000FF00EA +:1058C000000000000000FF00000000000000FF00DA +:1058D000000000000000FF00000000000000FF00CA +:1058E000000000000000FF00000000000000FF00BA +:1058F000000000000000FF00000000000000FF00AA +:10590000000000000000FF00000000000000FF0099 +:10591000000000000000FF00000000000000FF0089 +:10592000000000000000FF00000000000000FF0079 +:10593000000000000000FF00000000000000FF0069 +:10594000000000000000FF00000000000000FF0059 +:10595000000000000000FF00000000000000FF0049 +:10596000000000000000FF00000000000000FF0039 +:10597000000000000000FF00000000000000FF0029 +:10598000000000000000FF00000000000000FF0019 +:10599000000000000000FF00000000000000FF0009 +:1059A000000000000000FF00000000000000FF00F9 +:1059B000000000000000FF00000000000000FF00E9 +:1059C000000000000000FF00000000000000FF00D9 +:1059D000000000000000FF00000000000000FF00C9 +:1059E000000000000000FF00000000000000FF00B9 +:1059F000000000000000FF00000000000000FF00A9 +:105A0000000000000000FF00000000000000FF0098 +:105A1000000000000000FF00000000000000FF0088 +:105A2000000000000000FF00000000000000FF0078 +:105A3000000000000000FF00000000000000FF0068 +:105A4000000000000000FF00000000000000FF0058 +:105A5000000000000000FF00000000000000FF0048 +:105A6000000000000000FF00000000000000FF0038 +:105A7000000000000000FF00000000000000FF0028 +:105A8000000000000000FF00000000000000FF0018 +:105A9000000000000000FF00000000000000FF0008 +:105AA000000000000000FF00000000000000FF00F8 +:105AB000000000000000FF00000000000000FF00E8 +:105AC000000000000000FF00000000000000FF00D8 +:105AD000000000000000FF00000000000000FF1CAC +:105AE0000FFFFFFF0000FF1C0FFFFFFF0000FF1C68 +:105AF0000FFFFFFF0000FF1C0FFFFFFF0000FF1C58 +:105B00000FFFFFFF0000FF1C0FFFFFFF0000FF1C47 +:105B10000FFFFFFF0000FF1C0FFFFFFF0000FF1C37 +:105B20000FFFFFFF0000FF1C0FFFFFFF0000FF1C27 +:105B30000FFFFFFF0000FF1C0FFFFFFF0000FF1C17 +:105B40000FFFFFFF0000FF1C0FFFFFFF0000FF1C07 +:105B50000FFFFFFF0000FF1C0FFFFFFF0000FF1CF7 +:105B60000FFFFFFF0000FF1C0FFFFFFF0000FF1CE7 +:105B70000FFFFFFF0000FF1C0FFFFFFF0000FF1CD7 +:105B80000FFFFFFF0000FF1C0FFFFFFF0000FF1CC7 +:105B90000FFFFFFF0000FF1C0FFFFFFF0000FF1CB7 +:105BA0000FFFFFFF0000FF1C0FFFFFFF0000FF1CA7 +:105BB0000FFFFFFF0000FF1C0FFFFFFF0000FF1C97 +:105BC0000FFFFFFF0000FF1C0FFFFFFF0000FF1C87 +:105BD0000FFFFFFF0000FF1C0FFFFFFF0000FF1C77 +:105BE0000FFFFFFF0000FF1C0FFFFFFF0000FF1C67 +:105BF0000FFFFFFF0000FF1C0FFFFFFF0000FF1C57 +:105C00000FFFFFFF0000FF1C0FFFFFFF0000FF1C46 +:105C10000FFFFFFF0000FF1C0FFFFFFF0000FF1C36 +:105C20000FFFFFFF0000FF1C0FFFFFFF0000FF1C26 +:105C30000FFFFFFF0000FF1C0FFFFFFF0000FF1C16 +:105C40000FFFFFFF0000FF1C0FFFFFFF0000FF1C06 +:105C50000FFFFFFF0000FF1C0FFFFFFF0000FF1CF6 +:105C60000FFFFFFF0000FF1C0FFFFFFF0000FF1CE6 +:105C70000FFFFFFF0000FF1C0FFFFFFF0000FF1CD6 +:105C80000FFFFFFF0000FF1C0FFFFFFF0000FF1CC6 +:105C90000FFFFFFF0000FF1C0FFFFFFF0000FF1CB6 +:105CA0000FFFFFFF0000FF1C0FFFFFFF0000FF1CA6 +:105CB0000FFFFFFF0000FF1C0FFFFFFF0000FF1C96 +:105CC0000FFFFFFF0000FF1C0FFFFFFF0000FF1C86 +:105CD0000FFFFFFF0000FF1C0FFFFFFF0000FF1C76 +:105CE0000FFFFFFF0000FF1C0FFFFFFF0000FF1C66 +:105CF0000FFFFFFF0000FF1C0FFFFFFF0000FF1C56 +:105D00000FFFFFFF0000FF1C0FFFFFFF0000FF1C45 +:105D10000FFFFFFF0000FF1C0FFFFFFF0000FF1C35 +:105D20000FFFFFFF0000FF1C0FFFFFFF0000FF1C25 +:105D30000FFFFFFF0000FF1C0FFFFFFF0000FF1C15 +:105D40000FFFFFFF0000FF1C0FFFFFFF0000FF1C05 +:105D50000FFFFFFF0000FF1C0FFFFFFF0000FF1CF5 +:105D60000FFFFFFF0000FF1C0FFFFFFF0000FF1CE5 +:105D70000FFFFFFF0000FF1C0FFFFFFF0000FF1CD5 +:105D80000FFFFFFF0000FF1C0FFFFFFF0000FF1CC5 +:105D90000FFFFFFF0000FF1C0FFFFFFF0000FF1CB5 +:105DA0000FFFFFFF0000FF1C0FFFFFFF0000FF1CA5 +:105DB0000FFFFFFF0000FF1C0FFFFFFF0000FF1C95 +:105DC0000FFFFFFF0000FF1C0FFFFFFF0000FF1C85 +:105DD0000FFFFFFF0000FF1C0FFFFFFF0000FF1C75 +:105DE0000FFFFFFF0000FF1C0FFFFFFF0000FF1C65 +:105DF0000FFFFFFF0000FF1C0FFFFFFF0000FF1C55 +:105E00000FFFFFFF0000FF1C0FFFFFFF0000FF1C44 +:105E10000FFFFFFF0000FF1C0FFFFFFF0000FF1C34 +:105E20000FFFFFFF0000FF1C0FFFFFFF0000FF1C24 +:105E30000FFFFFFF0000FF1C0FFFFFFF0000FF1C14 +:105E40000FFFFFFF0000FF1C0FFFFFFF0000FF1C04 +:105E50000FFFFFFF0000FF1C0FFFFFFF0000FF1CF4 +:105E60000FFFFFFF0000FF1C0FFFFFFF0000FF1CE4 +:105E70000FFFFFFF0000FF1C0FFFFFFF0000FF1CD4 +:105E80000FFFFFFF0000FF1C0FFFFFFF0000FF1CC4 +:105E90000FFFFFFF0000FF1C0FFFFFFF0000FF1CB4 +:105EA0000FFFFFFF0000FF1C0FFFFFFF0000FF1CA4 +:105EB0000FFFFFFF0000FF1C0FFFFFFF0000FF1C94 +:105EC0000FFFFFFF0000FF1C0FFFFFFF0000FF1C84 +:105ED0000FFFFFFF0000FF1C0FFFFFFF0000FF1C74 +:105EE0000FFFFFFF0000FF1C0FFFFFFF0000FF1C64 +:105EF0000FFFFFFF0000FF1C0FFFFFFF0000FF1C54 +:105F00000FFFFFFF0000FF1C0FFFFFFF0000FF1C43 +:105F10000FFFFFFF0000FF1C0FFFFFFF0000FF1C33 +:105F20000FFFFFFF0000FF1C0FFFFFFF0000FF1C23 +:105F30000FFFFFFF0000FF1C0FFFFFFF0000FF1C13 +:105F40000FFFFFFF0000FF1C0FFFFFFF0000FF1C03 +:105F50000FFFFFFF0000FF1C0FFFFFFF0000FF1CF3 +:105F60000FFFFFFF0000FF1C0FFFFFFF0000FF1CE3 +:105F70000FFFFFFF0000FF1C0FFFFFFF0000FF1CD3 +:105F80000FFFFFFF0000FF1C0FFFFFFF0000FF1CC3 +:105F90000FFFFFFF0000FF1C0FFFFFFF0000FF1CB3 +:105FA0000FFFFFFF0000FF1C0FFFFFFF0000FF1CA3 +:105FB0000FFFFFFF0000FF1C0FFFFFFF0000FF1C93 +:105FC0000FFFFFFF0000FF1C0FFFFFFF0000FF1C83 +:105FD0000FFFFFFF0000FF1C0FFFFFFF0000FF1C73 +:105FE0000FFFFFFF0000FF1C0FFFFFFF0000FF1C63 +:105FF0000FFFFFFF0000FF1C0FFFFFFF0000FF1C53 +:106000000FFFFFFF0000FF1C0FFFFFFF0000FF1C42 +:106010000FFFFFFF0000FF1C0FFFFFFF0000FF1C32 +:106020000FFFFFFF0000FF1C0FFFFFFF0000FF1C22 +:106030000FFFFFFF0000FF1C0FFFFFFF0000FF1C12 +:106040000FFFFFFF0000FF1C0FFFFFFF0000FF1C02 +:106050000FFFFFFF0000FF1C0FFFFFFF0000FF1CF2 +:106060000FFFFFFF0000FF1C0FFFFFFF0000FF1CE2 +:106070000FFFFFFF0000FF1C0FFFFFFF0000FF1CD2 +:106080000FFFFFFF0000FF1C0FFFFFFF0000FF1CC2 +:106090000FFFFFFF0000FF1C0FFFFFFF0000FF1CB2 +:1060A0000FFFFFFF0000FF1C0FFFFFFF0000FF1CA2 +:1060B0000FFFFFFF0000FF1C0FFFFFFF0000FF1C92 +:1060C0000FFFFFFF0000FF1C0FFFFFFF0000FF1C82 +:1060D0000FFFFFFF0000FF1C0FFFFFFF0000FF1C72 +:1060E0000FFFFFFF0000FF1C0FFFFFFF0000FF1C62 +:1060F0000FFFFFFF0000FF1C0FFFFFFF0000FF1C52 +:106100000FFFFFFF0000FF1C0FFFFFFF0000FF1C41 +:106110000FFFFFFF0000FF1C0FFFFFFF0000FF1C31 +:106120000FFFFFFF0000FF1C0FFFFFFF0000FF1C21 +:106130000FFFFFFF0000FF1C0FFFFFFF0000FF1C11 +:106140000FFFFFFF0000FF1C0FFFFFFF0000FF1C01 +:106150000FFFFFFF0000FF1C0FFFFFFF0000FF1CF1 +:106160000FFFFFFF0000FF1C0FFFFFFF0000FF1CE1 +:106170000FFFFFFF0000FF1C0FFFFFFF0000FF1CD1 +:106180000FFFFFFF0000FF1C0FFFFFFF0000FF1CC1 +:106190000FFFFFFF0000FF1C0FFFFFFF0000FF1CB1 +:1061A0000FFFFFFF0000FF1C0FFFFFFF0000FF1CA1 +:1061B0000FFFFFFF0000FF1C0FFFFFFF0000FF1C91 +:1061C0000FFFFFFF0000FF1C0FFFFFFF0000FF1C81 +:1061D0000FFFFFFF0000FF1C0FFFFFFF0000FF1C71 +:1061E0000FFFFFFF0000FF1C0FFFFFFF0000FF1C61 +:1061F0000FFFFFFF0000FF1C0FFFFFFF0000FF1C51 +:106200000FFFFFFF0000FF1C0FFFFFFF0000FF1C40 +:106210000FFFFFFF0000FF1C0FFFFFFF0000FF1C30 +:106220000FFFFFFF0000FF1C0FFFFFFF0000FF1C20 +:106230000FFFFFFF0000FF1C0FFFFFFF0000FF1C10 +:106240000FFFFFFF0000FF1C0FFFFFFF0000FF1C00 +:106250000FFFFFFF0000FF1C0FFFFFFF0000FF1CF0 +:106260000FFFFFFF0000FF1C0FFFFFFF0000FF1CE0 +:106270000FFFFFFF0000FF1C0FFFFFFF0000FF1CD0 +:106280000FFFFFFF0000FF1C0FFFFFFF0000FF1CC0 +:106290000FFFFFFF0000FF1C0FFFFFFF0000FF1CB0 +:1062A0000FFFFFFF0000FF1C0FFFFFFF0000FF1CA0 +:1062B0000FFFFFFF0000FF1C0FFFFFFF0000FF1C90 +:1062C0000FFFFFFF0000FF1C0FFFFFFF0000FF1C80 +:1062D0000FFFFFFF0000FF1C0FFFFFFF0000FF1C70 +:1062E0000FFFFFFF0000FF1C0FFFFFFF0000FF1C60 +:1062F0000FFFFFFF0000FF1C0FFFFFFF0000FF1C50 +:106300000FFFFFFF0000FF1C0FFFFFFF0000FF1C3F +:106310000FFFFFFF0000FF1C0FFFFFFF0000FF1C2F +:106320000FFFFFFF0000FF1C0FFFFFFF0000FF1C1F +:106330000FFFFFFF0000FF1C0FFFFFFF0000FF1C0F +:106340000FFFFFFF0000FF1C0FFFFFFF0000FF1CFF +:106350000FFFFFFF0000FF1C0FFFFFFF00000A28D8 +:1063600000003500000000010000000200000003F2 +:106370000000000000000004000000010000000018 +:106380000000000100000004000000000000000107 +:1063900000000003000000000000000100000004F5 +:1063A00000000000000000010000000300000000E9 +:1063B00000000001000000040000000000000004D4 +:1063C00000000003000000000000000000007FFF4C +:1063D000000003FF000000000000000100000001B9 +:1063E000000000010000000000000002000000901A +:1063F000000000900080009008100000000009FFDD +:106400000000076C0000008A00000080000000818E +:10641000000000800000008A000000800000008171 +:10642000000000800000008A000000800000008161 +:10643000000000800000008A000000800000008151 +:10644000000000800000008A000000800000008141 +:1064500000000080000000010000000100000001B9 +:10646000000000010000000100000001000025E420 +:10647000000025E400004BC800004BC800000018D5 +:106480000000111A005432100000000000210543E2 +:1064900000000000000025E4000025E400004BC8D7 +:1064A00000004BC8000000180000111A0054321000 +:1064B0000000000000210543000000000000000172 +:1064C00000000001000000010000000000000000CA +:1064D00000000001000000020000000000000006B3 +:1064E000000000030000000400000005000000019F +:1064F0000000000100000001000000010000000198 +:106500000000000100000001000000010000000187 +:106510000000000100000001000000010000000177 +:106520000000000100000001000000010000000365 +:106530000000600000000003000060000000000395 +:106540000000400000000300000003000000030002 +:10655000000003000000030000000300000003002F +:106560000003F00800000000000000000000000030 +:106570000000000100000001000000010000000117 +:106580000000000100000001000000010000000107 +:1065900000000001000000010000000100000001F7 +:1065A00000000001000000010000000100000001E7 +:1065B00000000001000000010000000100000001D7 +:1065C00000000001000000010000000100000001C7 +:1065D00000000001000000010000000100000001B7 +:1065E000000000010000000100000001000000FFA9 +:1065F000000000FF000000FF000000FF0000007F1F +:10660000000000FF000000FF000000FF0000003E4F +:10661000000000000000003F0000003F0000003FBD +:106620000000003F0000003F0000003F0000003F6E +:106630000000000F000000001217000022170000E9 +:10664000321700001215000022150000321500005C +:1066500002100000001000001010000020100000C8 +:10666000301000004010000000000000000000009A +:1066700000000000001000001214000022140000AE +:10668000321400004214000000000000000000006E +:106690000000000000008906000089260000003686 +:1066A000000000360810000008100000FFFFFFFF88 +:1066B000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEA +:1066C000FFFFFFFFFFFFFFFFFFFFFFFFF000C00026 +:1066D000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCA +:1066E000FFFFFFFFFFFFFFFFFFFFFFFFF800C000FE +:1066F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFAA +:10670000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF99 +:10671000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF89 +:10672000FFFFFFFFFFFFFFFFFFFFFFFF00003C1029 +:106730000000000800000008000000020000000443 +:1067400000000005000000040000004000001808E0 +:1067500000000803000008030000004000000003E0 +:106760000000080300000803000008030001000304 +:1067700000000803000008030000000300000003FD +:1067800000000003000000030000000300000003FD +:1067900000000003000000030000000300000003ED +:1067A00000000003000000030000000300000003DD +:1067B00000000003000024030000002F0000000977 +:1067C000000000190000018400000183000003069E +:1067D0000000001900000006000003060000030688 +:1067E0000000030600000C860000030600000306FC +:1067F0000000000600000006000000060000000681 +:106800000000000600000006000000060000000670 +:106810000000000600000006000000060000000660 +:10682000000000060000000600000006000003064D +:106830000000001300000006000010040000100417 +:106840000010644000106440000000400000001987 +:106850000000000100000000000000000000000037 +:106860000000000000002000000000000000000008 +:1068700000000000000000000400200000000000F4 +:1068800000000000000000000000000041002000A7 +:1068900000000000000000000000000000000000F8 +:1068A000000020000000007C0000003D0000003FD0 +:1068B0000000009C0000000C000000050000000A21 +:1068C0000000000500000053000025E30000005414 +:1068D0000000005400000004000000040000000458 +:1068E0000000000400000004000000040000000498 +:1068F0000000000400000000000000010000000291 +:10690000000000000000000100000002000000097B +:106910000000000B0000000A000000000000000161 +:106920000000000200000000000000010000000262 +:10693000000000090000000B0000000A0000000930 +:106940000000000B0000000A000000090000000B1E +:106950000000000A00000000000008000000020023 +:106960000000040000000000000000001FFF1FFFE7 +:106970001FFF1FFF1FFF1FFF1FFF1FFF000025E45A +:106980000000800020002000200020008000800007 +:1069900080008000400040004000400000000000F7 +:1069A00000000002000001780000017800000000F3 +:1069B000000000000000017800000000000000005E +:1069C00000000000000000010000000200000000C4 +:1069D00000000000000000000000000400000000B3 +:1069E00000000001000000020000000000000000A4 +:1069F0000000000000000004000000000000000192 +:106A00000000000200000000000000010000000281 +:106A10000000000000000001000000020000000073 +:106A20000000000000000000000000040000000062 +:106A30000000000100000002000000000000000152 +:106A40000000000200000000000000010000000241 +:106A50000000000000000000000000000000000432 +:106A6000000000130E490E490E490E490092009293 +:106A7000009200920124012401240124000000005E +:106A80000000000010001000100010002001012084 +:106A9000010110010101010120010120010110018A +:106AA000200101200101100101010101200101204B +:106AB00001011001010101010000000400000006B5 +:106AC00002004104020041040200410402004104AA +:106AD00000000204000002CE000002CE0000000010 +:106AE00000000000000002CC0000000000000000D8 +:106AF0000000000000000001000000020000000093 +:106B00000000000000000000000000040000000081 +:106B10000000000100000002000000000000000072 +:106B20000000000000000004000000130E490E49A0 +:106B30000000000000000000100010001000100015 +:106B400020010120010110010101010120010120AA +:106B500001011001200101200101100101010101C9 +:106B60002001012001011001010101010200410485 +:106B700002004104000000020000000000000002CA +:106B80000000000000000002000000000000000003 +:106B900000000000000000020000000000000002F1 +:106BA00000000000000000020000000000000000E3 +:106BB0000000000000000004000000060200410484 +:106BC000020041040000000100000001000000017B +:106BD00000000001000000010000000100000001B1 +:106BE00000000001000000010000000100000001A1 +:106BF0000000000100000001000000010000000191 +:106C0000000000010000000100000003025555557E +:106C100002555555000002CE000002CE000002CE03 +:106C2000000002CE000002CE000002CE000002CC26 +:106C30000000005400000054000000540000005404 +:106C40000000000000000001000000020000000041 +:106C50000000000600000003000000040000000522 +:106C60000000000000000001000000020000000021 +:106C7000000000000000000000000006000000000E +:106C80000000000100000002000000000000000001 +:106C900000000000000000060000000000000001ED +:106CA00000000002000000000000000100000002DF +:106CB00000000000000000010000000200000000D1 +:106CC00000000000000000000000000600000000BE +:106CD00000000001000000020000000000000001B0 +:106CE000000000020000000000000001000000029F +:106CF000000000000000000000000000000000068E +:106D00000E490E490E490E490092009200920092DF +:106D1000012401240124012410001000100010009F +:106D200020010120010110010101010120010120C8 +:106D300001011001200101200101100101010101E7 +:106D400020010120010110010101010100000004E6 +:106D5000000000060000000000000001000000022A +:106D6000000000000000000000000000000000061D +:106D70000000000000000001000000020000000010 +:106D800000000000000000000000000600000003FA +:106D900000000004000000050000000300000004E3 +:106DA00000000005000000030000000400000005D2 +:106DB00000000003000000030000000300000006C4 +:106DC00000000003000000040000000500000003B4 +:106DD00000000004000000050000000300000004A3 +:106DE0000000000500000003000000030000000395 +:106DF000000000060E490E490000000000920092BB +:106E00000000000001240124000000000000000038 +:106E10000E490E49000000000092009200000000A0 +:106E20000124012410001000100010002001012096 +:106E300001011001010101012001012001011001E6 +:106E400020010120010110010101010120010120A7 +:106E50000101100101010101000000010000000317 +:106E60000000000400000003000000040000000512 +:106E70000000000300000006000000050000000400 +:106E800000000003000000040000000500000003F3 +:106E900000000006000000050000000400000003E0 +:106EA00000000004000000000000000100000002DB +:106EB00000000000000000010000000200000005CA +:106EC00000000003000000060000000500000004B0 +:106ED00000000003000000040000000000000001AA +:106EE000000000020000000000000001000000029D +:106EF000000000050000000300000006000000057F +:106F00000048004800480048009000900090009021 +:106F100001200120012001200402040204020402D5 +:106F20000005000500050005120012001200120005 +:106F300008000800080008000120012001011020BD +:106F40000101012001200120010110200120012068 +:106F50000101102001010120012001200101102068 +:106F600001010120000000040000000600000123D0 +:106F70000000012300000123000001230000012381 +:106F80000000012300000123000001230000012371 +:106F90000000012300000123000001230000012361 +:106FA0000000012300000123000001230000012351 +:106FB0000000012300000123000001230000002045 +:106FC0000000003200000007000000070000000081 +:106FD00000000008000000010000000000000000A8 +:106FE0000000000002150020021500200000003003 +:106FF00008100000000000360000003000000031E2 +:107000000000000400000005000000000000000473 +:107010000000000100000006000000010000000266 +:1070200000000040000000400000001C00000020A4 +:10703000000100000002070000030E00000415001C +:1070400000051C000006230000072A00000831008C +:1070500000093800000A3F00000B4600000C4D00FC +:10706000000D5400000E5B00000F6200001069006C +:10707000001170000012770000137E0000148500DC +:1070800000158C000016930000179A000018A1004C +:107090000019A800001AAF00001BB600001CBD00BC +:1070A000001DC400001ECB00001FD2000000D9004C +:1070B0000000001E0000001D00010000000207800B +:1070C00000030F000004168000051E000006258046 +:1070D00000072D000008348000093C00000A4380AE +:1070E000000B4B00000C5280000D5A00000E618016 +:1070F000000F6900001070800011780000127F807E +:107100000013870000148E800015960000169D80E5 +:107110000017A5000018AC800019B400001ABB804D +:10712000001BC300001CCA800000D2000000000148 +:10713000000000010000000100000001000000014B +:10714000000000010000000100000001000000013B +:10715000000000010000000100000001000000012B +:1071600000000001000000010000000100000028F4 +:107170000000002C000000300000000100000001B1 +:1071800000000001000002110000020000000204E3 +:10719000000002190000FFFF0000FFFF0000FFFFDA +:1071A0000000FFFF07FFFFFF0000007F07FFFFFF5A +:1071B0000000003F0000FFFF0000FFFF0000FFFF96 +:1071C0000000FFFF00007FF800007FF800000000D3 +:1071D000000000010000FF00000000000000FF00B0 +:1071E000000000000000FF00000000000000FF00A1 +:1071F000000000000000FF00000000000000FF0091 +:10720000000000000000FF00000000000000FF0080 +:10721000000000000000FF00000000000000FF0070 +:10722000000000000000FF00000000000000FF0060 +:10723000000000000000FF00000000000000FF0050 +:10724000000000000000FF00000000000000FF0040 +:10725000000000000000FF00000000000000FF0030 +:10726000000000000000FF00000000000000FF0020 +:10727000000000000000FF00000000000000FF0010 +:10728000000000000000FF00000000000000FF0000 +:10729000000000000000FF00000000000000FF00F0 +:1072A000000000000000FF00000000000000FF00E0 +:1072B000000000000000FF00000000000000FF00D0 +:1072C000000000000000FF00000000000000FF00C0 +:1072D000000000000000FF00000000000000FF00B0 +:1072E000000000000000FF00000000000000FF00A0 +:1072F000000000000000FF00000000000000FF0090 +:10730000000000000000FF00000000000000FF007F +:10731000000000000000FF00000000000000FF006F +:10732000000000000000FF00000000000000FF005F +:10733000000000000000FF00000000000000FF004F +:10734000000000000000FF00000000000000FF003F +:10735000000000000000FF00000000000000FF002F +:10736000000000000000FF00000000000000FF001F +:10737000000000000000FF00000000000000FF000F +:10738000000000000000FF00000000000000FF00FF +:10739000000000000000FF00000000000000FF00EF +:1073A000000000000000FF00000000000000FF00DF +:1073B000000000000000FF00000000000000FF00CF +:1073C000000000000000FF00000000000000FF00BF +:1073D000000000000000FF00000000000000FF00AF +:1073E000000000000000FF00000000000000FF009F +:1073F000000000000000FF00000000000000FF008F +:10740000000000000000FF00000000000000FF007E +:1074100000000000002010010000000001009000AA +:10742000000001000000000100000000000000005A +:10743000140AFF000000900200000000000000009D +:1074400000000000000090040000000000000000A8 +:107450000000000000009006000000000000000096 +:107460000000000000009008000000000000000084 +:10747000000000000000900A000000000000000072 +:10748000000000000000900C000000000000000060 +:10749000000000000000900E00000000000000004E +:1074A000000000000000901000000000000000003C +:1074B000000000000000901200000000000000002A +:1074C0000000000000009014000000000000000018 +:1074D0000000000000009016000000000000000006 +:1074E00000000000000090180000000000000000F4 +:1074F000000000000000901A0000000000000000E2 +:10750000000000000000901C0000000000000000CF +:10751000000000000000901E0000000000000000BD +:1075200000000000000090200000000000000000AB +:107530000000000000009022000000000000000099 +:107540000000000000009024000000000000000087 +:107550000000000000009026000000000000000075 +:107560000000000000009028000000000000000063 +:10757000000000000000902A000000000000000051 +:10758000000000000000902C00000000000000003F +:10759000000000000000902E00000000000000002D +:1075A000000000000000903000000000000000001B +:1075B0000000000000009032000000000000000009 +:1075C00000000000000090340000000000000000F7 +:1075D00000000000000090360000000000000000E5 +:1075E00000000000000090380000000000000000D3 +:1075F000000000000000903A0000000000000000C1 +:10760000000000000000903C0000000000000000AE +:10761000000000000000903E00000000000000009C +:10762000000000000000904000000000000000008A +:107630000000000000009042000000000000000078 +:107640000000000000009044000000000000000066 +:107650000000000000009046000000000000000054 +:107660000000000000009048000000000000000042 +:10767000000000000000904A000000000000000030 +:10768000000000000000904C00000000000000001E +:10769000000000000000904E00000000000000000C +:1076A00000000000000090500000000000000000FA +:1076B00000000000000090520000000000000000E8 +:1076C00000000000000090540000000000000000D6 +:1076D00000000000000090560000000000000000C4 +:1076E00000000000000090580000000000000000B2 +:1076F000000000000000905A0000000000000000A0 +:10770000000000000000905C00000000000000008D +:10771000000000000000905E00000000000000007B +:107720000000000000009060000000000000000069 +:107730000000000000009062000000000000000057 +:107740000000000000009064000000000000000045 +:107750000000000000009066000000000000000033 +:107760000000000000009068000000000000000021 +:10777000000000000000906A00000000000000000F +:10778000000000000000906C0000000000000000FD +:10779000000000000000906E0000000000000000EB +:1077A00000000000000090700000000000000000D9 +:1077B00000000000000090720000000000000000C7 +:1077C00000000000000090740000000000000000B5 +:1077D00000000000000090760000000000000000A3 +:1077E0000000000000009078000000000000000091 +:1077F000000000000000907A00000000000000007F +:10780000000000000000907C00000000000000006C +:10781000000000000000907E00000000000000005A +:107820000000000000009080000000000000000048 +:107830000000000000009082000000000000000036 +:107840000000000000009084000000000000000024 +:107850000000000000009086000000000000000012 +:107860000000000000009088000000000000000000 +:10787000000000000000908A0000000000000000EE +:10788000000000000000908C0000000000000000DC +:10789000000000000000908E0000000000000000CA +:1078A00000000000000090900000000000000000B8 +:1078B00000000000000090920000000000000000A6 +:1078C0000000000000009094000000000000000094 +:1078D0000000000000009096000000000000000082 +:1078E0000000000000009098000000000000000070 +:1078F000000000000000909A00000000000000005E +:10790000000000000000909C00000000000000004B +:10791000000000000000909E000000000000000039 +:1079200000000000000090A0000000000000000027 +:1079300000000000000090A2000000000000000015 +:1079400000000000000090A4000000000000000003 +:1079500000000000000090A60000000000000000F1 +:1079600000000000000090A80000000000000000DF +:1079700000000000000090AA0000000000000000CD +:1079800000000000000090AC0000000000000000BB +:1079900000000000000090AE0000000000000000A9 +:1079A00000000000000090B0000000000000000097 +:1079B00000000000000090B2000000000000000085 +:1079C00000000000000090B4000000000000000073 +:1079D00000000000000090B6000000000000000061 +:1079E00000000000000090B800000000000000004F +:1079F00000000000000090BA00000000000000003D +:107A000000000000000090BC00000000000000002A +:107A100000000000000090BE000000000000000018 +:107A200000000000000090C0000000000000000006 +:107A300000000000000090C20000000000000000F4 +:107A400000000000000090C40000000000000000E2 +:107A500000000000000090C60000000000000000D0 +:107A600000000000000090C80000000000000000BE +:107A700000000000000090CA0000000000000000AC +:107A800000000000000090CC00000000000000009A +:107A900000000000000090CE000000000000000088 +:107AA00000000000000090D0000000000000000076 +:107AB00000000000000090D2000000000000000064 +:107AC00000000000000090D4000000000000000052 +:107AD00000000000000090D6000000000000000040 +:107AE00000000000000090D800000000000000002E +:107AF00000000000000090DA00000000000000001C +:107B000000000000000090DC000000000000000009 +:107B100000000000000090DE0000000000000000F7 +:107B200000000000000090E00000000000000000E5 +:107B300000000000000090E20000000000000000D3 +:107B400000000000000090E40000000000000000C1 +:107B500000000000000090E60000000000000000AF +:107B600000000000000090E800000000000000009D +:107B700000000000000090EA00000000000000008B +:107B800000000000000090EC000000000000000079 +:107B900000000000000090EE000000000000000067 +:107BA00000000000000090F0000000000000000055 +:107BB00000000000000090F2000000000000000043 +:107BC00000000000000090F4000000000000000031 +:107BD00000000000000090F600000000000000001F +:107BE00000000000000090F800000000000000000D +:107BF00000000000000090FA0000000000000000FB +:107C000000000000000090FC0000000000000000E8 +:107C100000000000000090FE0000000000000000D6 +:107C200000000000000091000000000000000000C3 +:107C300000000000000091020000000000000000B1 +:107C4000000000000000910400000000000000009F +:107C5000000000000000910600000000000000008D +:107C6000000000000000910800000000000000007B +:107C7000000000000000910A000000000000000069 +:107C8000000000000000910C000000000000000057 +:107C9000000000000000910E000000000000000045 +:107CA0000000000000009110000000000000000033 +:107CB0000000000000009112000000000000000021 +:107CC000000000000000911400000000000000000F +:107CD00000000000000091160000000000000000FD +:107CE00000000000000091180000000000000000EB +:107CF000000000000000911A0000000000000000D9 +:107D0000000000000000911C0000000000000000C6 +:107D1000000000000000911E0000000000000000B4 +:107D200000000000000091200000000000000000A2 +:107D30000000000000009122000000000000000090 +:107D4000000000000000912400000000000000007E +:107D5000000000000000912600000000000000006C +:107D6000000000000000912800000000000000005A +:107D7000000000000000912A000000000000000048 +:107D8000000000000000912C000000000000000036 +:107D9000000000000000912E000000000000000024 +:107DA0000000000000009130000000000000000012 +:107DB0000000000000009132000000000000000000 +:107DC00000000000000091340000000000000000EE +:107DD00000000000000091360000000000000000DC +:107DE00000000000000091380000000000000000CA +:107DF000000000000000913A0000000000000000B8 +:107E0000000000000000913C0000000000000000A5 +:107E1000000000000000913E000000000000000093 +:107E20000000000000009140000000000000000081 +:107E3000000000000000914200000000000000006F +:107E4000000000000000914400000000000000005D +:107E5000000000000000914600000000000000004B +:107E60000000000000009148000000000000000039 +:107E7000000000000000914A000000000000000027 +:107E8000000000000000914C000000000000000015 +:107E9000000000000000914E000000000000000003 +:107EA00000000000000091500000000000000000F1 +:107EB00000000000000091520000000000000000DF +:107EC00000000000000091540000000000000000CD +:107ED00000000000000091560000000000000000BB +:107EE00000000000000091580000000000000000A9 +:107EF000000000000000915A000000000000000097 +:107F0000000000000000915C000000000000000084 +:107F1000000000000000915E000000000000000072 +:107F20000000000000009160000000000000000060 +:107F3000000000000000916200000000000000004E +:107F4000000000000000916400000000000000003C +:107F5000000000000000916600000000000000002A +:107F60000000000000009168000000000000000018 +:107F7000000000000000916A000000000000000006 +:107F8000000000000000916C0000000000000000F4 +:107F9000000000000000916E0000000000000000E2 +:107FA00000000000000091700000000000000000D0 +:107FB00000000000000091720000000000000000BE +:107FC00000000000000091740000000000000000AC +:107FD000000000000000917600000000000000009A +:107FE0000000000000009178000000000000000088 +:107FF000000000000000917A000000000000000076 +:10800000000000000000917C000000000000000063 +:10801000000000000000917E000000000000000051 +:10802000000000000000918000000000000000003F +:10803000000000000000918200000000000000002D +:10804000000000000000918400000000000000001B +:108050000000000000009186000000000000000009 +:1080600000000000000091880000000000000000F7 +:10807000000000000000918A0000000000000000E5 +:10808000000000000000918C0000000000000000D3 +:10809000000000000000918E0000000000000000C1 +:1080A00000000000000091900000000000000000AF +:1080B000000000000000919200000000000000009D +:1080C000000000000000919400000000000000008B +:1080D0000000000000009196000000000000000079 +:1080E0000000000000009198000000000000000067 +:1080F000000000000000919A000000000000000055 +:10810000000000000000919C000000000000000042 +:10811000000000000000919E000000000000000030 +:1081200000000000000091A000000000000000001E +:1081300000000000000091A200000000000000000C +:1081400000000000000091A40000000000000000FA +:1081500000000000000091A60000000000000000E8 +:1081600000000000000091A80000000000000000D6 +:1081700000000000000091AA0000000000000000C4 +:1081800000000000000091AC0000000000000000B2 +:1081900000000000000091AE0000000000000000A0 +:1081A00000000000000091B000000000000000008E +:1081B00000000000000091B200000000000000007C +:1081C00000000000000091B400000000000000006A +:1081D00000000000000091B6000000000000000058 +:1081E00000000000000091B8000000000000000046 +:1081F00000000000000091BA000000000000000034 +:1082000000000000000091BC000000000000000021 +:1082100000000000000091BE00000000000000000F +:1082200000000000000091C00000000000000000FD +:1082300000000000000091C20000000000000000EB +:1082400000000000000091C40000000000000000D9 +:1082500000000000000091C60000000000000000C7 +:1082600000000000000091C80000000000000000B5 +:1082700000000000000091CA0000000000000000A3 +:1082800000000000000091CC000000000000000091 +:1082900000000000000091CE00000000000000007F +:1082A00000000000000091D000000000000000006D +:1082B00000000000000091D200000000000000005B +:1082C00000000000000091D4000000000000000049 +:1082D00000000000000091D6000000000000000037 +:1082E00000000000000091D8000000000000000025 +:1082F00000000000000091DA000000000000000013 +:1083000000000000000091DC000000000000000000 +:1083100000000000000091DE0000000000000000EE +:1083200000000000000091E00000000000000000DC +:1083300000000000000091E20000000000000000CA +:1083400000000000000091E40000000000000000B8 +:1083500000000000000091E60000000000000000A6 +:1083600000000000000091E8000000000000000094 +:1083700000000000000091EA000000000000000082 +:1083800000000000000091EC000000000000000070 +:1083900000000000000091EE00000000000000005E +:1083A00000000000000091F000000000000000004C +:1083B00000000000000091F200000000000000003A +:1083C00000000000000091F4000000000000000028 +:1083D00000000000000091F6000000000000000016 +:1083E00000000000000091F8000000000000000004 +:1083F00000000000000091FA0000000000000000F2 +:1084000000000000000091FC0000000000000000DF +:1084100000000000000091FEFFFFFFFFFFFFFFFFD5 +:10842000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5C +:10843000FFFFFFFFFFFFFFFF0000FFFF0000000046 +:10844000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF3C +:10845000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF2C +:108460000000FFFF000000000000039B000015005B +:1084700000000001000000020000000300000000F6 +:1084800000000004000000010000000000000001E6 +:1084900000000004000000000000000100000003D4 +:1084A00000000000000000010000000400000000C7 +:1084B00000000001000000030000000000000001B7 +:1084C00000000004000000000000000400000003A1 +:1084D000000000000000000000007FFF000003FF1C +:1084E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF9C +:1084F000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF8C +:108500000000000300BEBC200000000000000005C9 +:108510000000000300BEBC200000000000000005B9 +:108520000000000300BEBC200000000000000005A9 +:108530000000000300BEBC20000000000000000599 +:108540000000000300BEBC20000000000000000589 +:108550000000000300BEBC20000000000000000579 +:108560000000000300BEBC20000000000000000569 +:108570000000000300BEBC20000000000000000559 +:108580000000000D0000000C0000000000000010C2 +:108590000000000F000000000000000000000000CC +:1085A0000215002002150020000000300810000015 +:1085B0000000003600000030000000310000000321 +:1085C00000000000000000010000000300000001A6 +:1085D0000000000200000040000000400000000415 +:1085E000000000200000000F0000001B00008000C1 +:1085F000000103C00001878000020B4000028F00D1 +:10860000000312C00003968000041A4000049E007C +:10861000000521C00005A580000629400006AD0028 +:10862000000730C00007B480000838400008BC00D4 +:1086300000093FC00009C380000A4740000ACB0080 +:10864000000B4EC0000BD280000C5640000CDA002C +:10865000000D5DC00000618000000001000000010D +:108660000000000100000001000000010000000106 +:1086700000000001000000010000000100000001F6 +:1086800000000001000000010000000100000001E6 +:108690000000000100000001000000010000050EC4 +:1086A000000004FD000005010000051E0000FFFFA2 +:1086B0000000FFFF0000FFFF0000FFFF000000467A +:1086C0000000000C00000000000000000000001C82 +:1086D000000000F4000000010000000000000000A5 +:1086E00000000000000000010000000107FFFFFF84 +:1086F0000000007F07FFFFFF0000003F0000FFFFBA +:108700000000FFFF0000FFFF0000FFFF00007FF8F8 +:1087100000007FF80000FF00000000000000FF00E4 +:10872000000000000000FF00000000000000FF004B +:10873000000000000000FF00000000000000FF003B +:10874000000000000000FF00000000000000FF002B +:10875000000000000000FF00000000000000FF001B +:10876000000000000000FF00000000000000FF000B +:10877000000000000000FF00000000000000FF00FB +:10878000000000000000FF00000000000000FF00EB +:10879000000000000000FF00000000000000FF00DB +:1087A000000000000000FF00000000000000FF00CB +:1087B000000000000000FF00000000000000FF00BB +:1087C000000000000000FF00000000000000FF00AB +:1087D000000000000000FF00000000000000FF009B +:1087E000000000000000FF00000000000000FF008B +:1087F000000000000000FF00000000000000FF007B +:10880000000000000000FF00000000000000FF006A +:10881000000000000000FF00000000000000FF005A +:10882000000000000000FF00000000000000FF004A +:10883000000000000000FF00000000000000FF003A +:10884000000000000000FF00000000000000FF002A +:10885000000000000000FF00000000000000FF001A +:10886000000000000000FF00000000000000FF000A +:10887000000000000000FF00000000000000FF00FA +:10888000000000000000FF00000000000000FF00EA +:10889000000000000000FF00000000000000FF00DA +:1088A000000000000000FF00000000000000FF00CA +:1088B000000000000000FF00000000000000FF00BA +:1088C000000000000000FF00000000000000FF00AA +:1088D000000000000000FF00000000000000FF009A +:1088E000000000000000FF00000000000000FF008A +:1088F000000000000000FF00000000000000FF007A +:10890000000000000000FF00000000000000FF0069 +:10891000000000000000FF00000000000000FF0059 +:10892000000000000000FF00000000000000FF0049 +:10893000000000000000FF00000000000000FF0039 +:10894000000000000000FF00000000000000FF0029 +:1089500000000000FFFFFFFFFFFFFFFFFFFFFFFF23 +:10896000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF17 +:10897000FFFFFFFF000019000000000000000001E1 +:1089800000000000000000000000000000000218CD +:1089900000001500000000010000000200000003BC +:1089A00000000000000000040000000100000000C2 +:1089B00000000001000000040000000000000001B1 +:1089C000000000030000000000000001000000049F +:1089D0000000000000000001000000030000000093 +:1089E000000000010000000400000000000000047E +:1089F00000000003000000000000000000007FFFF6 +:108A0000000003FF00000000039387000000000047 +:108A10000000000000000000039387000000000039 +:108A2000000000000000000F000000070000000030 +:108A30000000000E0000000E00000000000000001A +:108A40000000000003150020031500200100003085 +:108A50000810000000000036000000300000003167 +:108A600000000002000000050000000200000002FB +:108A700000000000000000050000000300000001ED +:108A8000000000040000000100000002000000409F +:108A90000000004000000004000000200000000270 +:108AA00000000020000010000000208000003100C5 +:108AB000000041800000520000006280000073004E +:108AC00000008380000094000000A4800000B50036 +:108AD0000000C5800000D6000000E6800000F7001E +:108AE0000001078000011800000128800001390002 +:108AF0000001498000015A0000016A8000017B00EA +:108B000000018B8000019C000001AC800001BD00D1 +:108B10000001CD800001DE000001EE800001FF00B9 +:108B200000000F80000000010000000100000001B3 +:108B30000000000100000001000000010000000131 +:108B40000000000100000001000000010000000121 +:108B50000000000100000001000000010000000111 +:108B60000000000100000001000000010000000101 +:108B700000000001000012140000120000001204A6 +:108B80000000FFFF0000FFFF0000FFFF0000FFFFED +:108B9000000000200000003800000000000000007D +:108BA0000000002300000024000000250000002633 +:108BB00000000027000000390000003A0000002BF0 +:108BC0000000002C00000000000000EC000000008D +:108BD000000000290000002A000000010000000140 +:108BE0000000000100000001000000000000000083 +:108BF000000000000000000107FFFFFF0000007FF1 +:108C000007FFFFFF0000003F0000FFFF0000FFFF25 +:108C10000000FFFF0000FFFF00007FF800007FF86A +:108C20000000000000000001CCCC0201CCCCCCCC78 +:108C3000CCCC0201CCCCCCCCCCCC0201CCCCCCCC9E +:108C4000CCCC0201CCCCCCCCCCCC0201CCCCCCCC8E +:108C5000CCCC0201CCCCCCCCCCCC0201CCCCCCCC7E +:108C6000CCCC0201CCCCCCCCFFFFFFFFFFFFFFFF41 +:108C7000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF04 +:108C8000FFFFFFFFFFFFFFFF0000000000010001EA +:108C900000110807CCCCCCC910000000000028ADA2 +:108CA0000000291800002919000000000000000041 +:108CB00000000005000000067058103C0000000095 +:108CC0000000FF00000000000000FF0000000000A6 +:108CD0000000FF00000000000000FF000000000096 +:108CE0000000FF00000000000000FF000000000086 +:108CF0000000FF00000000000000FF000000000076 +:108D00000000FF00000000000000FF000000000065 +:108D10000000FF00000000000000FF000000000055 +:108D20000000FF00000000000000FF000000000045 +:108D30000000FF00000000000000FF000000000035 +:108D40000000FF00000000000000FF000000000025 +:108D50000000FF00000000000000FF000000000015 +:108D60000000FF00000000000000FF000000000005 +:108D70000000FF00000000000000FF0000000000F5 +:108D80000000FF00000000000000FF0000000000E5 +:108D90000000FF00000000000000FF0000000000D5 +:108DA0000000FF00000000000000FF0000000000C5 +:108DB0000000FF00000000000000FF0000000000B5 +:108DC0000000FF00000000000000FF0000000000A5 +:108DD0000000FF00000000000000FF000000000095 +:108DE0000000FF00000000000000FF000000000085 +:108DF0000000FF00000000000000FF000000000075 +:108E00000000FF00000000000000FF000000000064 +:108E10000000FF00000000000000FF000000000054 +:108E20000000FF00000000000000FF000000000044 +:108E30000000FF00000000000000FF000000000034 +:108E40000000FF00000000000000FF000000000024 +:108E50000000FF00000000000000FF000000000014 +:108E60000000FF00000000000000FF000000000004 +:108E70000000FF00000000000000FF0000000000F4 +:108E80000000FF00000000000000FF0000000000E4 +:108E90000000FF00000000000000FF0000000000D4 +:108EA0000000FF00000000000000FF0000000000C4 +:108EB0000000FF00000000000000FF0000000000B4 +:108EC0000000FF00000000000000FF0000000000A4 +:108ED0000000FF00000000000000FF000000000094 +:108EE0000000FF00000000000000FF000000000084 +:108EF0000000FF00000000000000FF000000000074 +:108F0000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF71 +:108F1000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF61 +:108F20000000FFFF00000000FFFFFFFFFFFFFFFF4B +:108F3000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF41 +:108F4000FFFFFFFFFFFFFFFF0000FFFF000000002B +:108F5000032313031303231303030323A0B090433A +:108F60000200020006040604032313031303231361 +:108F700003030323A0B0904313131313131313130A +:108F800013131313A0B0904303010200000000006C +:108F9000000006290000150000000001000000028A +:108FA00000000003000000000000000400000001B9 +:108FB00000000000000000010000000400000000AC +:108FC000000000010000000300000000000000019C +:108FD0000000000400000000000000010000000389 +:108FE000000000000000000100000004000000007C +:108FF000000000040000000300000000000000006A +:1090000000007FFF000003FF002625A000000000F5 +:10901000002625A000000000002625A0000000007A +:10902000002625A000000000000E0000011600D65A +:10903000002625A000000000002625A0000000005A +:10904000002625A000000000002625A0000000004A +:1090500000720000012300F30000FFFF0000000089 +:109060000000FFFF000000000000FFFF0000000004 +:109070000000FFFF000000000000FFFF00000000F4 +:109080000000FFFF000000000000000000000000E2 +:109090000000FFFF000000000000FFFF00000000D4 +:1090A0000000FFFF000000000000FFFF00000000C4 +:1090B0000000FFFF000000000000FFFF00000000B4 +:1090C0000000FFFF000000000000000000000000A2 +:1090D0000000FFFF000000000000FFFF0000000094 +:1090E0000000FFFF000000000000FFFF0000000084 +:1090F0000000FFFF000000000000FFFF0000000074 +:109100000000FFFF00000000000000000000000061 +:109110000000FFFF000000000000FFFF0000000053 +:109120000000FFFF000000000000FFFF0000000043 +:109130000000FFFF000000000000FFFF0000000033 +:109140000000FFFF00000000000000000000000021 +:109150000000FFFF000000000000FFFF0000000013 +:109160000000FFFF000000000000FFFF0000000003 +:109170000000FFFF000000000000FFFF00000000F3 +:109180000000FFFF000000000000000000000000E1 +:109190000000FFFF000000000000FFFF00000000D3 +:1091A0000000FFFF000000000000FFFF00000000C3 +:1091B0000000FFFF000000000000FFFF00000000B3 +:1091C0000000FFFF000000000000000000000000A1 +:1091D0000000FFFF000000000000FFFF0000000093 +:1091E0000000FFFF000000000000FFFF0000000083 +:1091F0000000FFFF000000000000FFFF0000000073 +:109200000000FFFF00000000000000000000000060 +:109210000000FFFF000000000000FFFF0000000052 +:109220000000FFFF000000000000FFFF0000000042 +:109230000000FFFF000000000000FFFF0000000032 +:109240000000FFFF00000000000000000000000020 +:109250000000FFFF00000000555400005555555513 +:1092600000005555F0000000555400005555555567 +:1092700000005555F0000000000000000001000053 +:109280000000501400000000FFF55FFF0000FFFF2A +:10929000F00003E0000000000000A0000000040057 +:1092A00000000000000000000000000000001000AE +:1092B000000000000000000000000000000040006E +:1092C000000000000000000000000000000100009D +:1092D000FF5C0000FFF55FFF0000FFFFF00003E010 +:1092E000000000000000A0000000080000000000D6 +:1092F000000000000000000000002000000000004E +:1093000000000000000000000000800000000000DD +:10931000000000000000000000020000000000004B +:109320001F8B080000000000000BFB51CFC0F003B2 +:1093300009AB48A3F2EFF0A1F2D17181007E79422E +:1093400098858132FDF93C0C0CE540DCCD832A6E1A +:10935000C604A1ED3919189EB333307003E973AC1C +:1093600008F978A8BD070C10621E7A0C0CADDA1053 +:10937000F64E6DCADC358A8706E6B445E5FFB48251 +:10938000D0ED36109A0B4DFE17547EB93984E6B6EF +:10939000C56EEE0A73E2EC7FE28CCACF72C6AF3EB6 +:1093A000C0034203009EF27A77B803000000000079 +:1093B00000000000000000001F8B080000000000FB +:1093C000000BCD7D0D7814C79168CFEEECECEC9FCF +:1093D0003492566225048C90802591C902020B4775 +:1093E0009891F8B17C0F5F168C7DB28FF8161B6CCC +:1093F000F97FE33831EFEE6C0DFA43089016836D78 +:10940000C071B2E09FC35CFC22278EE3BCFCBC951C +:109410008D09BEE4BDC8C4E7E03BFB22E39F248E78 +:10942000EDD3913838F7C87155D53DBB33AB1F84A8 +:109430002F4E4EF99CA6677ABAABABAAABAAABAAE1 +:109440007BBD6A119B3D83B1B3F8B78CB107DD8C4E +:10945000B1D25CA96FFE9BAF0C8719FBC094596F0A +:109460001D636653F2EFB06EB67BB50E281F08DCA5 +:10947000F3956178BE5956356F0CBE61C90BE31781 +:1094800030B6B58DB18C97EA9FC2BACA9831509B5D +:109490001BC72A4B988BB145D8AE527B3BC0E8EF37 +:1094A0002C8CED65016642BF1F682CDD5B050F5FEC +:1094B0004D34B232C6DCBC0994AB33DF82F791E5A0 +:1094C0006CC4BB24D79F5B53584615FD50C3F5852C +:1094D00089E0E871AD72F3AB1BD2476CED6B582895 +:1094E000FCF627E11F3293110EE6DEC118C251C30C +:1094F000D2EEAAF1FB39DD96481F9985F8FACB42E6 +:109500009CEF78ED2CBC74B4A95476B56954BA6B51 +:109510009891AEA5F9195FC73268D2B8BD35330F3F +:109520000624842EC118E03BF052F541C4C7C54C57 +:1095300022BCF5D67C5D35C6C0AB55B25A1B3E6623 +:10954000E2B44CEA07269A7E14FA9161DC83F0BDFE +:10955000AC8D1E0FF16F8DB7FA238EE7659717C696 +:109560004350CE656CA816F19A86368CB9A2697301 +:1095700018EB51681F85C73A6F7F2EFCA9952E07FF +:109580007DE5A0DF5157C2C5D45F96FE797CC570DA +:10959000FEC0D72CC2A232CCCFC3FCB15E98DAADEC +:1095A000526213CE4F3FF2974627E0E794C1467AC6 +:1095B000A19D279C60C83FD67797966E243CC941F1 +:1095C00057DA2B5149F83C55C9F9C31B7699DE7916 +:1095D00063E0A552A14560E1655CB880FEC8E7F490 +:1095E0000A70D2F8A14CFDFB63B00E60BC101B26C4 +:1095F00026296440906AC68A982EF145119310CFAF +:109600008C3568C8BF61DF1FBADFF5D4AF64EC6288 +:109610006703E7D1AF0CFD567F0CFD9E035E1FFB79 +:1096200012F58BD4395B92EB771BAC3B46EB4FA327 +:10963000D20B2D697DD77239B3B52D42CF99FC4D30 +:10964000C305E305638ADE0B722D10CCB02A68F7E0 +:10965000AF8DEA08F00E721AF1990BE907E307A241 +:10966000EC7517D03D1073CA1FB55299143F76950B +:10967000CE9E9298685DC1CAAD5273DF8DD7EEE37E +:109680002E3B407E55797275393833C7D713CCCF0E +:10969000BD22C118F17D9CD9D7B7EC6209D40B1D4E +:1096A000C16B559C3F3B73F6AC7BB14DCE07E3F5E8 +:1096B00063E1E5355645F2C8AA7BB4EECF490550C3 +:1096C00046361AC336787E86FFC0751CB9C5189E0B +:1096D000041DDC72BC6503D0197822F628F0DDAEDB +:1096E000C035ECF55AD473D764904FBA4BCBAABCB3 +:1096F000A88F583BD75B6A90A98B737C3A587A65E0 +:1097000004E55A57F995110672A3CB138FC4A17EB5 +:10971000ACF46903FBED3E53C8504F76476616E242 +:10972000BCBACF544F498E31BF00E3F2C28FF0551F +:10973000717E63D11CBCDD11978AF09CAAE572672B +:1097400057E0FB861BEA8A2E27B17F2508E3C2F883 +:10975000CD7503C606E06325114C78B5D1FD58E3FD +:10976000C09F7416E53EB6B1D69DE4783F261CA393 +:10977000EB096326CA558DC57AC768EF510BCCC07B +:109780003C94BBD9E71A8E5BF3A30B48EE637B5D79 +:10979000C5A12503D7558EFFD30E7A33CD95EB7730 +:1097A000668E7EA0DF7AA43A5CC26A12D76D3E5EF6 +:1097B000BB15D63A407AC86841FC754AC50BD0AE95 +:1097C000198FDFE548CFBFB9015EC05D06F9CB1B3D +:1097D0005965229E3BC1B0292151B163489A47E5A2 +:1097E000BFB9F1BD26BF63E7BF7912D81388CC0B90 +:1097F000D98538FF8E20A7FB78E375C1FA6273C65E +:109800007FEF51628938E9A3E409298CF39D47F081 +:10981000CB95474F54011CCB24AEA7E5B06222DCA8 +:109820004C93DF1DB6E149978D6512BCF7F8793F7F +:10983000F9FDCF979B96E3FB932CBE12CB9EAAC556 +:1098400042FFE5AD97200CBE647C382D7A689B639F +:109850005C4832A3402AE3FC8C7FFEDA18C0086A19 +:10986000F8D36E4DAEE7F47587719DBA592FF2604B +:10987000543E89701BF03F84BBA001EA36BCBA8D10 +:10988000AB8D6A98B7D6A48E7822C84FBCBDC5A749 +:109890006EA4C73C2C9DCF13F9F4687B86BD31CBF9 +:1098A000663FA29D3A065EDE72375D2F8D61A7B2DC +:1098B00060F1A4F080B602B663C1640FD20DB4CEDD +:1098C00008CEF34141EF07845EBA0FF512D4770B4F +:1098D0003DD4DFA653B9AF2D4AE5436D317ADFD9C8 +:1098E000564FE5CE3683CA5D6DCD546E6F8B533BBC +:1098F000A5BC5345BA3D583EB04F22BBFC75E3476B +:10990000F0C983A1815718D6CD57791D6439AB00B2 +:109910003A6F79D930812F1F2C1AB8CA05203CB173 +:10992000FB07E61180F7C15903AF48503F22FD30D5 +:10993000D389ED2FE0ED0F6EF9A56162FF3ED642AF +:10994000EBA972DD39F0C0E5E5D38807281F2C8527 +:10995000EF8293FFEEFBF81DEE4BAACE6F3C9F9C6F +:1099600032F87CA5C69700A53E95C37F62CBBFD2D7 +:109970007C49645D04D8D9F26F26CDFF02D13FE85F +:10998000A92B6C7AEA25C9C3C79F7F7E70BF2CE6DE +:10999000AB682306483CB65A4A3C29413F05AD43D3 +:1099A0008617481BA87CD69474EC0F98A2FCDC7C2C +:1099B00054818D4B73ED95BA189B098FFE2F2A9F0A +:1099C00045B9E7C5CD064339F37F9078D07E7B6DEE +:1099D00093CAD7B1A1A29CFD81786EED2BE417DC70 +:1099E00064FF3C8FCF178D6E6FED07AC76E3C2A995 +:1099F0009DC3CE9DE43C990C7602D8714F32CD3197 +:109A0000DF2F33CD314F5F90AFD7C9D24372717A18 +:109A1000DC9DD7EF1D79F5A95F75B17A58DA95B756 +:109A2000D8F40CFC1759EF77D4CBD6153BEAE1D527 +:109A3000158EBAD6E0B48F2A367EC2519F7EE702D9 +:109A400047DDA35DE4A817D43539FA2B5EF1678EA4 +:109A5000F7C1DAB58EF71F15DFBBF3E6DF93579F2B +:109A60006C3F2542CE59CFCBAE5E9C20BB6E751DA0 +:109A7000977F72FCD259F0CF5FDE376B412F1BAB63 +:109A80009F2D449FA8DB08BB48DE72F9ED3225B25A +:109A9000B3EF97E26B56A21F6229D8670CED7FA740 +:109AA0007C67F6BA7B74BDC6C5F5235BCDE7B3EC26 +:109AB000CC3215F9CC1F72C5D3C0477E4F5A2BAE9E +:109AC000CDCDA74CD8A716FCCBCEFCD88DEBA543AB +:109AD000D30FE23EE4FEABFF2C726D7034FC56FFF8 +:109AE000DB83AE66DCD7E7EBE1EDF2806A1FC76A85 +:109AF0007F2EFCCED293E7E98F893317D4EFFA8C0F +:109B00008BF64D3BD0FF007AA257F81F7AD0FF00AA +:109B1000F56ED0375802A027D0BE397D11D3B17D64 +:109B20004178D840FDD1D27E696314E65F103122BE +:109B300011A83FB9AC66CB8A6968F20E13FE76D7DE +:109B4000AF2D6413F859423197631F14883AF7ED2B +:109B50003EBDD851F7462A26DC37BD2DD67101EC23 +:109B60002F63B5587239E02E7C3772BDCDBE6A7650 +:109B7000B9B95DEF5E93447BA74FE2F2DD7A7FC017 +:109B8000E5A2F7C7C19CC6FE969DE97771FAF27D02 +:109B90006630D46466D05F22B1E42C6D341D839EA0 +:109BA0000CF1CB9F1A0F1D45C311B47BD368845EA3 +:109BB0000C722408F61FFC532E596F5E07CF3B60D2 +:109BC0005FE08EA1FD1D7C1D9F7B847DE477253A9F +:109BD0005CDCCF2125C8EF14A7F24F3D1FB77BFEF9 +:109BE0004806F7119F566207D968BA3DE5E27EC381 +:109BF000E62CDD3E43FB788B6EBD414E3758356316 +:109C0000D2ED4617D723BD729AD6E1B233852EFA2C +:109C1000BEDE45FA6D4770C1B66AFCFE253703F318 +:109C200090ED9033D4EE8F8D877CB84221800BF776 +:109C3000A7FFC8E10A7986B43F055CE3F25B71CB0C +:109C4000B9F8ED4594EBF9FCD661D13D106FC175C3 +:109C50009A9BF74CF23F221FBA6A91DE5C7EEF14AA +:109C60007275A73CF447A54B565EABA96B504EB43A +:109C70000615929337BBCDA309941301893D0AF3CE +:109C800076A31E0479BEE93E4F0CF9B0F51FDDF551 +:109C90006E1DE071FBE8FB7C385B65605130055A56 +:109CA000613F89F86269CF4876BF3373B49FFA7712 +:109CB0002EE73EE6D49E2B0A336C7C3CBCD3764C1C +:109CC0009367E5FCD4F9EF6F76B324E9397540A1C9 +:109CD00079FD6DCAD73B1FE7377B450AE81676AB9F +:109CE0007CDE62DF77F3A11734D986A7D63D9ED7F5 +:109CF000BD63C09DC597F51DBABF8B477F3FDE771B +:109D000080BF15088FA70E588DF09C287703FD03A0 +:109D1000873664C0D2023ECAF0FDA9E83F073FACD7 +:109D20006D013F9B3706BC9AEB75F4D39E0BDE7337 +:109D3000E9E3537BBABAD1AFF54B4F6C3AFA795A93 +:109D400077CCA1F1AE15769085F74DF775958D1509 +:109D500087C8E2DDBD6315C2FD0133A3EEF9549F50 +:109D6000DD0ACFD78CC32FE7E28FA5EE3F127FC06D +:109D70007C913F5ADC5C0EB39E52E2FBF3E60FEBA4 +:109D8000BBF3E40FE087F56E280D397EE555615C85 +:109D9000EF2C8676A5C51F56BFA3F842D0E9A3C213 +:109DA000792EBE5037BBF537173256251BA4477B9B +:109DB000B47693E88BBC8AFE89D47CF22782A225F4 +:109DC0003F23FC65509EAA9A4172DE0F9B56DC77BA +:109DD00005EB9CF24BA975CAAF488B91B1FAEDD552 +:109DE000715C85C645CF098E2B0759C687F311FED6 +:109DF0006A644BB4A3BDEC9F9BABF97731FC6EBC9E +:109E0000F9C88CFBB3D1AD84F6B5974D1C9FC91F23 +:109E100027B22E4EF19FC9B66741597FDB86F7F115 +:109E2000BF93D9DB36BB7E1FCAE64539FC1B896B65 +:109E3000C9BF1762AE18DAC91D91A326BEEDC6FFD1 +:109E400003FA6D657C7DB2CA62CE77289C17A19B10 +:109E500060B1897EFE80A18EB835D44F22FE23DA10 +:109E60009D8BEE7E21F7AF90E3FF0BE594B772A0D8 +:109E700005E9AAB06012FBCBE255817D05F61B5DBA +:109E8000C7F709175C6FA25FC8335D9B8F53A98228 +:109E9000FDC19A0BECFDF3FD6B4F5B9ABDE1C9C5AB +:109EA000A5543DCE4BC16F2CCAE5564F2DB7DB54A0 +:109EB0007580695006524F66309E91E33793ADBB73 +:109EC00000E9C9F9EB4128F9FE294DE378227E0724 +:109ED000DF65F92A3A39B9D8D7A64B6FD8E204051D +:109EE000E3C47F7FE8961C74EB683397BE69FBCEB2 +:109EF0002DC7087E3908CF6D7C6FBD9FEC386FBAD7 +:109F00005DE705D74F11AED21C5C77A1FC03384E3C +:109F1000DF3324AF85F2B2CC2BF24CC09F4BE6ED81 +:109F20004EDFC3FDCAC7DB3E74F8133D7219CDEF97 +:109F3000B2D52FCACB6DE35C26FC8C8C0DC96B426D +:109F400076FC89FD6370E4B9B31857AC73933D3B5D +:109F50001EBED74696A7E5925CFD789D9BECA2E3DA +:109F6000B01F42B970BCAE2A6D8EE1AFC9F7A7AF82 +:109F70008DACA27E4EDF3D24C7691E2AE109E7A908 +:109F8000037C9735BF281BC173C3FDEBBC75B84F6D +:109F9000F473FAEE04C37E95CC8D0CFB5336260C7D +:109FA000A396CB3D845339564276DEB233B7AB6BC2 +:109FB0002FC8F597A553DE3CFB22DCFEEB13F3EC38 +:109FC0008BE8939A678198674ECF0B3C37B826C4CD +:109FD000F3BFB41969790CBD6895D72C75C5119E6E +:109FE0006B3CC3A563D9A3F970FCD5E6C6B46C8FEE +:109FF0009B7D44387ED60078007AFC4C1E097DA4F7 +:10A0000071010F512BAF02F0777A26339A71FF5B03 +:10A01000CC089FB0F24EA11EB4E29CB2FAE7EC6FFE +:10A0200017D8D6A706EF1DF6B2D03BB9F8C329FB67 +:10A03000BE2BAB1F51BF413B77B89BFBE9C37EDA18 +:10A040003FB8C3F2DBC379F051FC6EBA44F2B243BD +:10A05000C86FF83B82F103B92EF630E2EB1A10A874 +:10A06000384FB007AE9169DD1AC69630C5B192E897 +:10A0700067072D433ACC5316A5F8CB787EFBAD6D20 +:10A08000C353ECF8B5F0B7D523FCBE67960FA33CDD +:10A09000975DD1CF519C6292FEFFDE6952CB44F0B6 +:10A0A0007F3107FF1705FCE6B575A3E1EF9D3B7B0C +:10A0B00042F87BC681BF27077F14F540A7ABF6BCEB +:10A0C000E0B7E0566B18D1D57ABF4DCC2B7F3EDB85 +:10A0D0006629E457EEBC20F630C627EF15F3433F60 +:10A0E00032DA0F30CF7B659B5D2B6BDC8EEFA9BA2C +:10A0F000DF68C7B826CC1BF78FE3C1E753DF9E624A +:10A100005FC76999EFE73BF111EA751167F6E89CC3 +:10A110000FBBE4441AC7F35476D3FECA134ED1786A +:10A12000FE28CCE75318E767042F9877E95A803761 +:10A13000003856EBB03EF404D6A11DD36CF52CBE0E +:10A140004BCD48D066D77755759FF0A2BE0F337DB3 +:10A150000EF25BE62A92779E30E8698047913306DB +:10A16000F20FB07F15FA2F1575C040BDCF6AA1AEB2 +:10A17000C338E1346B443CFCDECDE310B829B4CDE8 +:10A18000FF41D9E5D80F58F35F9BE777B5CA9F8C9D +:10A19000439F9F5CE675D0E728D2A7D4419FA3F2E6 +:10A1A000A2D1F4F9C9657338FF358F6D07AF55DF5C +:10A1B00098222FB4C95791C741A482F979847DD4DC +:10A1C0003F6D958132A57A7D2C86C2E5C5198997A8 +:10A1D00070BC54E5A14617B42B5F1F7B610B94DD67 +:10A1E0001EEEF759E9AEF49D84F177AD985988FEDB +:10A1F000D60F85DECD1FFFD1368015F4CD97DA540A +:10A2000046FB99D7E64C186FED6903D6B1D9033DEB +:10A210007B6492A73DFADAB597027EBAC2350BDCB1 +:10A22000244DD65C7D23DA93B5FA02B4977F254B93 +:10A23000D67AFD956CE36B6B3F2A1B0386568BA980 +:10A240002F0319F4BF166B2C96D1B95C936DF8806F +:10A2500079FF1ABFAFA88DB5630E5479B373DEBB17 +:10A2600056F0FCA23B2E9D7DD06DD30B9778381F06 +:10A27000B0B0D8F7CAB1E85876B64587C7002FB551 +:10A2800018EB6329CA8F29DF0BFBE979183FE4CF6C +:10A29000BF2DC7DD1E80A37C63CC83F01F17FE3665 +:10A2A00089A99D6528EFEAB403C8378FEDF70BBE87 +:10A2B000D10E20DF843CAEFC751DF28CC1377D9E33 +:10A2C00084E6C138685DC244537BF6DE0126FC3E5D +:10A2D000ADC49F263B8E7C3255E278A13F8C0F4760 +:10A2E000B99F7D9187D3BB20121B94E0BD3EF29DA8 +:10A2F000C1EBE07D772268A01C9B5D7E70B089F683 +:10A30000CF6C04E37DB3A7A5A9CE1AD59147E17D13 +:10A3100045AB39B81CE6A10BBB7E7A22BD05E9DA54 +:10A32000DDC6FDE11173D8C4B49F8A560E9705BFF0 +:10A33000A224288F626AE4FAD5682C4A15CF0C2A29 +:10A3400098C7D1C56218BF2B599D3631BF626ABD0F +:10A3500057C37E6757694D2837BA37B1D8169A0761 +:10A360007F5F02DB40CC4750D85046C139CA0976DE +:10A37000B98D5EFE48E256ECBFCB93588478F24725 +:10A38000B97DAF449204CFBD1EB0E3A10C34A40D3F +:10A3900084E7D1FBAE671B6C70AE1274506A999162 +:10A3A0000EE6F86CB748A449190B7C37D4623BBF62 +:10A3B000C893D868A05D5DCD1226CAA300F22723FA +:10A3C0007E5C89F4AB88C49EC57518A84D917F0E3C +:10A3D000D6DD140E875E8EDFDD7B9FD292E6747B26 +:10A3E0009961FE8B8BE5FEC2381FE311A4DBEF7190 +:10A3F00071A1BFA6E1B1CC4314EFF76A7204F4FC7B +:10A40000E707D874A81745DC4CD7709C74E67BB876 +:10A410007F073C211E7BF48399D7A0EE6D0930ACF9 +:10A420002B770E19981FA06D643103E092A39C0F47 +:10A4300028A708FBADE7F95B80BFCF22FCA115037D +:10A440009453286B1C7F3D72F26777A3FC3EE68E27 +:10A4500099CCB66E18AC1BDB3ECBA7833C70D833CF +:10A46000A6639D9D4B4FE6F6DD5CEF587E40585F3E +:10A47000B7235CB2C6D7D764FD4B8D4029DCC756E5 +:10A48000DC29F260853C9D2A505DC986251C630647 +:10A4900098681E785FB54E6FF7905C4D971F80F9F6 +:10A4A0007716BD5CCEE3B82B34DC2F4B468974F6AF +:10A4B0009393DF575B7044363AF32F0A56DBE26A18 +:10A4C000F05FA0CE59F7325BFBAA5C3F9A9507A1DB +:10A4D000C7627679B5DD37B097C7E95F6CC2BC84D7 +:10A4E000EDD2400B862095DD3F6C6AC6FD71682079 +:10A4F00082A169DFF69F503D301D7620382F7948C4 +:10A50000C57CD2673C3AF5EF6BC09829C89B5A9935 +:10A51000ECE89DF5A7347C3F38BC9BF8A4AF8EE7F0 +:10A520006D5AEDFB86DD0CD7732FB44727446F1DA2 +:10A53000B40FDAFA035E7589F788FFD373F9FBD39A +:10A54000B3B2F9AC2AD65D86CA8AA1DD4E31AED54A +:10A550008F777888F480D59FC2864DAC5B72D06BC4 +:10A5600024CC6791EFA3AE74BA8AB2A518E6A516FB +:10A57000403F19E847A94F1AD86EF0B59FABC3B654 +:10A58000F5DE17E5FD3343C467CF21FF8DF58D99C7 +:10A590006B711C614FC2930CDA59982F867209E4D3 +:10A5A000F611E2CF5A99FCA2416D80AF2D63727112 +:10A5B000C9C9B6D347024487AE5725C267E9F4F844 +:10A5C000862A94D32FBB19DA3F6693217930AE39AE +:10A5D0009DC5D0E62C9D99FC548CF09CBC10E56583 +:10A5E0009790D756BFA74B59CA6E8F1E7627FE0588 +:10A5F000E72195B52470DDDC7552D291DEA5EBB86C +:10A600009F6433404A7E10C345F9CFB49EA05DEAF3 +:10A610009129048F5CB2BE0CE545CA9839613EE6CB +:10A62000D63616ABB1D9D95BE5A48A72716BE50257 +:10A6300075ACEFBC112556034A3FD5AC4FD12688E7 +:10A64000A78DDF6F93DFDE6FD49DF877BB9EB5FAE1 +:10A65000CF8F97FB824768F3E63BCF38F9DE0D5783 +:10A6600046105FE129C67C5C77655E9689C35A080F +:10A67000078C27719D3ED2FD3F960781DE61AF3189 +:10A68000DF05F5FFE9F52EDF81F519C6E730B4F6F1 +:10A69000567BDFF2E7619D873197FE22C6BEB0F59B +:10A6A000BB1DA6C03FEAFB9D6D7AC59BB3D0FE8A59 +:10A6B00056A0BFA74CE1FAAB5CD1A90CC943E4F7A3 +:10A6C00029A88376763F946CD2739F1E753C6711E0 +:10A6D0002E1765FCB74E7A6CBA02FC56D1921AC49A +:10A6E000A5077297F458B727B117F330CD5295FCF0 +:10A6F000602BDD4192AFA722FA419ED7C9883F0B5C +:10A700002AB9DD9152847FE7B54B22A407D1AEF47C +:10A71000601E3123FBF2C3E1E509B4AB4FA17F0F0B +:10A72000F57BCDAA565CBF0069D20B72AC4849706C +:10A730007E9BC9926887607EEBD9C5C2FF88788FFF +:10A740000C97C9367FA712FDB3E4111D9FC72BDEFE +:10A75000B43F67C32D9D00DF550ACF7B6589FB247D +:10A7600073B1F06742FB5DAB2A3E7704E1BEC84F90 +:10A77000FEC322453BC0E569EDF2E7118E026D3E56 +:10A78000CAD335DD9FE890814EBB3011AF82B1CB8B +:10A79000BAA31D98F754E4E6746266CD72F4CB5800 +:10A7A000EF5776D710DD403E5CAAC0B846A7C1D0AF +:10A7B0005EC8FAD9317FA81AE1E2F20DE7B76C3131 +:10A7C0004FA1C6E7E5894DA40FE1FB3593FA1E7A48 +:10A7D000C87E8FBA2267575E85F41CEFFBC1D7E6AF +:10A7E00068461DCF87C5F5BE4BD8CFAE2D23EC4AAA +:10A7F000BB9FAA3EF3901DDFBB96587A6498A13C9C +:10A80000BD5D99CDE574E5B187EC76C0AEA5C3E436 +:10A810003FD522098EEFB9DA551BA1DEDFC8EDBCAA +:10A820007E91CFE6DAA0A77C684F35241EB6E749B3 +:10A83000690DEC15D4239A114311CFB685787B2D81 +:10A84000D2E3E0E3C1E1EA42CC374E29DCBEBF4BA4 +:10A85000E1F927563FDD6DB10AE4BFBEB67A2A7B27 +:10A860009522EE5F88F27D82B2247C00ED01EB3B05 +:10A87000EB7977FDDA47EDFB875E85E7B3DDE577BA +:10A88000B6DBDA507CC0D98EEF73EE2AE0FE6AABFD +:10A890009D776938AF9DCBE167CAC92580D76637F8 +:10A8A00014D603DCF6F55C67D07910591E3BEF72C5 +:10A8B0007351E37DC837ED5EBEBFDF5BDA42EBF07C +:10A8C00043C0D344F2B91BE48BDD0FA280BD8D7A67 +:10A8D0004411F2C71BD12B9C765E2C8AFECCC7FCA0 +:10A8E0008D0FF3F198754E2481F6AD4DAE3C3EA12F +:10A8F0005C09F9292F69A5BBB6F0A46D3E61AFE4F0 +:10A90000C0CF4EB14FED6DD3A844BA0FA35CCCCBF2 +:10A9100073B0CA1EA4FB2C9C573D95C72CBA083AAD +:10A92000F7D5B76BF6FDC018EFD54D41FB7B27FD82 +:10A93000FBEAEF553704C7F85ED01DDE6BCEF79CFF +:10A94000DE2197933FADF2D5BCF10B966C747C3F42 +:10A95000C67B7553ADFDBD13BE822577AA1B6AC7A2 +:10A96000F85EC007EF35E77B0E5FAFC4D7994F772E +:10A97000F2A137E2E4438B3E7E85CB7F368F9F8FFB +:10A98000525992CB6921B77B2CB92DE4EF56A132F5 +:10A99000BA5FBB21DD8EE5276E1A7816CA202A130E +:10A9A000807FFBDC67D298BFE2FFE477A3387FBFEC +:10A9B000924E935C66DDCB9F077DEA2F48C7502EF1 +:10A9C000CBDECE0E196451AF90BBCCDB4E72D96F8B +:10A9D000C96576CF72F4BF5BEF3F54EEA1F7201745 +:10A9E000CF203F2A11B602F79D411127B7E462102C +:10A9F00037A98B727259CDCAE52F587255F64EE6BB +:10AA00007B2197D5AC5C4E5A723DE85D34FEF72051 +:10AA10009789AFC75BA7ACD6298FBDFAB187EC7415 +:10AA2000CAAEFBD0D5648FF483B8930AA1F4A45ABC +:10AA3000781E3C2B5F6BDBBF0D79B9BECE7ED7781D +:10AA400025C98B1FC9711DE759D6A2FD08ED5E5FB0 +:10AA50002587D36AD725FABFDFC7E9BFF505777A1F +:10AA60004B55CEEF9B0FF70A2FCF2BBBDF27FCAA4E +:10AA700032FC2D16FB1BF87BA09149181F5AE015DC +:10AA80007E9A43870F1F2EE3C72BD01EB3EC20B650 +:10AA9000EE8A2BAE80E7297C4EF6C708C58B355071 +:10AAA000738910CA07667860BDF7CB236407F69FE9 +:10AAB000F16E413D6246998E7206F712742EB05EB9 +:10AAC00039E0AAA2734846C886BF3A31BED5CF56F0 +:10AAD0006984E8B206E98AFBB1281BC4FEFCB54CC8 +:10AAE000A7FD3E7CEFB1AD0BF7551B5F44FFE4299A +:10AAF0004DD191A5016EF313643FC3FAC0B9AE6B9B +:10AB00003C81F693565F4679309D212EBFACF19E75 +:10AB10005BA2907DDD374D799872E0D11F86F85D9C +:10AB20009A5888FADB1F1D61D723DE252BEF9A196F +:10AB3000A5A8C734ED00EACFB2AB7BBCE827502A0A +:10AB40002AE6E33EE856319F2CFE0E35317B9C54BD +:10AB50006ED94B712523B181E2A9A1984E79A6F453 +:10AB60008778023B0FFBDD20F8E466B7B101F9B747 +:10AB70000FE8A5433F7D57A912EDBF3436E0D3114E +:10AB80005F4606FD0EE652C0B78EFA0BE812E4F4FB +:10AB900041BB2F10D509AE76B14E2C38F2F178BFFB +:10ABA000E0A3BE254F3394037D8DC3AC2A84DF71AF +:10ABB0003955D030C2707D5BFD041A40EE607CB622 +:10ABC000325185E33DE68FDF85FC6BEDF3B27C2BE4 +:10ABD000F4A1070882740D5FBEDAE802F8BB84FFB7 +:10ABE000DC68E1F30E45B8FF40D6B87F0BD66DBBED +:10ABF000D706AFE5B7CCEE8F6A9DFBA3ED5A99233C +:10AC00002EB5BDF6FCF6473DC8BFD0BE3F78EA186A +:10AC1000E5D5E9AE18E6AFF5372C38A6A33DB1244B +:10AC20004C7E56ABFD7BA1A63D5E9B7F57AD84FE5F +:10AC30006CF8DC7E9EFBA81E99F9B07D2AE5F2D562 +:10AC4000D4E5C64F194DFEB9638FFFC844E3C3DF97 +:10AC5000BBB8DF203B55473A7C511D2BBFE74E4F19 +:10AC6000E26BF67EBC953C2F7F8C7DA8CF1E4F3DBE +:10AC7000DFFD677EA94A2CCECFD59DD4AEB5F59326 +:10AC8000117AEE50C8C820FDF3E775BEFBD3F1C6BC +:10AC90007D24E51CF7646EDC1FE3B827857D552510 +:10ACA0001BECAD3A927FC9FDC0D2FD4B57B1E7A175 +:10ACB000BE35C1F325542D19DF04F895457E83D5A3 +:10ACC0005FA7C1F31B4057107FCA8692862D2F9332 +:10ACD0005392884F1B94DFA08AFC865291DF30D5B7 +:10ACE000D267957EE7B96891DF309ACE63E7FF853A +:10ACF000E37C5DA1BF10F5889AB9AA11FD166A9888 +:10AD0000C5506E403B8A4BC3B6463B8C7684CEDB47 +:10AD1000AB358CCE572BB22111FD6B781CA854BCDF +:10AD2000F784B587518E2B6A620BF6C72A79BE4627 +:10AD30009978EFADE4EF7D35BCDE5BCED2B5186718 +:10AD40000AF378556FF9D01358F756F278955537BE +:10AD50009B18ED73CD794ABAA30A9FA71D71ABDE8C +:10AD60002A11273AF370649D8D0F7B7FFF8D082A8F +:10AD7000ADC7A7BA3B572CC9C51F7B3DE9C8587C56 +:10AD8000D285F147CFF8FCD165F9FBE581C8DA102F +:10AD9000E2314DF132C0998EF1847C3C76CDEDCE1E +:10ADA000E271CEC788C78E3C3C76E4E1D1AA5BF362 +:10ADB000E8288F39F0D791C5DF4207FE3A428F91DC +:10ADC0005DD19187470FF27309F13FF9BB3A749E49 +:10ADD00087D5155C6B8AF3C8FCFCA595B713E6E72D +:10ADE0001DBCEB12A687F82BCE701C8BBFA7237F50 +:10ADF000233E2A9DF9611EE4EB12F417C597A9A51D +:10AE000098A7182F1B243DECF4134D61B12174E178 +:10AE1000B17A8EA78251FEDB89FD457FA172BDBC50 +:10AE20004F4E5CA6C2FA0AC6070CF443FB5B9219AC +:10AE3000F42386E366E3FF0B93DF7AC45D24F44AD0 +:10AE4000990885D378267B9BE719C4F0BCF6752A50 +:10AE50005FA7A5EBCC46C407884D86DF95B50C915E +:10AE6000FEDD8E76E0A7A0F4C45BE2DC6EE0741732 +:10AE700076437BE0FB27D0DFD955524CFAF93A955F +:10AE8000EB59631D73E843D083D7A9363D180C0FE7 +:10AE900070F3769C752F0BFFF54873E216C4E7EE4E +:10AEA00072732FC56F417E79F17C5979AC9FE2BBFB +:10AEB000589F0EF5597563DE3FF1F5662349DF4B68 +:10AEC000B15736E2BA7C5D22FAEEAE018DCDCFB13C +:10AED0003BF4C1EED5E7AB6F87C95EEC0B9EECA9E6 +:10AEE000B6E9BBBEFA71F56DBB1D0FF97270F7794B +:10AEF000EB5B317E2A7FFC71F5EDBD6AA94D2FD643 +:10AF00005B7A7158453CE4C3D357FFF1E8C7475417 +:10AF10006E17829E7A04E11935EEC7A41FBF911BFC +:10AF2000F71B382ED3B83F3D7FFCFCFE2CBE5444AB +:10AF30009CE99AE6F877F1FB5F5732D35D887ECCC7 +:10AF4000EE1F6CD073796EAC66589CE7E3786511A0 +:10AF50001E873A5F7C4ED6DF7DBEF8B2FA1D3DCF2C +:10AF6000B4C3BEB6FAEF94845E5BC9F7EBFB195F1E +:10AF70009F1ADE070172ED7595DB1DDF56E33F5327 +:10AF8000691FCBF7ADBB82AE1790BD605DF9107E37 +:10AF9000EB1E022627D95ADBBAFB45F67BE36DC4CC +:10AFA0006B51C8F5A2F8AE08BF03B9FA0EF63B9E86 +:10AFB0005CED9440AE227C4B3E9A5CFD50F0C5F5B2 +:10AFC0006AE2431CBF634593BF06FAD9D67C2DC500 +:10AFD00067B270B7F23C91A29572D10AD467A99971 +:10AFE000B4BE8A2F95C93EDA06FB1EBBBFCECAAFE0 +:10AFF000BB5E35241FF25BEBE4F25B27DB2E6B6F4D +:10B0000014BBD21D30EE7454E618FF8F27482F94DE +:10B01000B5F078CCADB251E4B3D9C79DFFE16E1D58 +:10B02000CB9F54EEE374E8544CBEEF17797F9D45F7 +:10B0300011DACF4930AE3D8EDB2527A6FBD0BE8D81 +:10B04000F238ACAAF37C1FD0EF94EF837A9DECA783 +:10B050002A9EEFA34484FD54C5F37BD00ED06C75BB +:10B06000ABDFDE2AB09B6CF075CD7D2C6BBF907D85 +:10B0700092D946F93EAA6E32DCBFFB809F5CDCFEB3 +:10B08000A0FC1E9F9A6024DF22DC5EF1E871D68866 +:10B09000F614E6FB8CC1F79A8FEBAD13AAB1D8B7C3 +:10B0A00068B4DE347EC1E3179156AECFA6C6338DA9 +:10B0B0001CBF5C4F66EF57616F308CFB5AF499B23E +:10B0C0005EE8CBACFDBA4DC23828CA1B1F0D338ECB +:10B0D000FD1AB6ECAEA424EC129A4744E7F4B6ECA1 +:10B0E0002A454D35627F304FD26BE5E27B25C2DFCA +:10B0F0007BF8B7E8374F5B7616E2BFBF94DB594861 +:10B100000FCD56CFF2D32A85F8A9BF74C4617FF55D +:10B1100067EDAF5F3BECAFFEDF9794A3BFEDF1A906 +:10B120005F23BBAB7F29B75FFB3D23FF45FB552367 +:10B13000BFD394F523447F4FD67E75E2B16BE938D7 +:10B14000F6EB1F188F7D226FCDC2639FC853B3F0FB +:10B15000D89797B7D6573AECC05F1FE20FE5C8996A +:10B160003722EB6CEBA86FC96FC97EED433C6A399F +:10B170003CE6ECD7E420DAAF7D3A8FC774D5AFE573 +:10B18000E71C5630F26715A58A1A291E66D9AF89C1 +:10B19000049D83CFB75FA79DC37E05BB722FF27F4F +:10B1A00070FD00E292F937264D34166FAD4C3C88A5 +:10B1B000F2435D9FA4D8B9B2319EC1E73FBED4F837 +:10B1C000125F2F9A8472E181CFBE4DFBEEA2FA117D +:10B1D00013FD2A8572CA18EBFE8B0BF5A687F1BB0F +:10B1E000225993903F8A74AE373B824D0EFFF34352 +:10B1F000B975F938B6FFF719C6613E5E5AFA73B4ED +:10B20000574D3682E74CACF56AE56BC07EA711F16D +:10B2100033CD007B16DE4F5F37B205ED797DBDE69D +:10B22000C279CDDC1873F17B72AC7B9178BE86B5A8 +:10B230006EA7DE22D60DC8AD5B005F95C99108AD43 +:10B240009BA52F075703BE41ECD0FB7DD3E03DD437 +:10B25000AB3A53E52AD637F1F7D975B1E9B7111DE5 +:10B26000FD89778F9CC0F37AE626AE9FFAB7C4A417 +:10B2700085F0BC24B34FAA06FAFCD0C7F3024B3AC0 +:10B28000994B0F89492C16F96B94F3A3B910BF247D +:10B290008F2AA0FF6DBFEAC47861BFF0BBF70FFA39 +:10B2A000881F4B6AD94114E1559D038602F014D6DC +:10B2B000EAC5A89FCA3B35D7CC10FABB46980BFB12 +:10B2C000315312D60B3732D7B564D78B7C35D13F8B +:10B2D00033CFAEC8C0F3E24E26219B142607324876 +:10B2E00077FD169EF7A4D5F27BD48A1B78F9A6CFFA +:10B2F0004D74FA99A09755AFEC4C0D52DE13AC5338 +:10B3000054C3534D9EA7579864B146C04361C300D0 +:10B31000C94F09E68DF0071A580C5D167F0570625B +:10B320001E86B4712083E7A4CB3BF97309B811FDE5 +:10B33000DCF978982C9CBF1370FD46C0F9BB2C9C9F +:10B340003109E10AE84E38CB114EC4DF46279C850F +:10B35000B502CEDA944470AE1E31507E94E4C159E9 +:10B3600032CEB987777D563E9F29FCACE696762E85 +:10B370007FC8BE8A24D4CC4B7528CF74F207627C78 +:10B3800084EEF7AB4C90BF95DDC962B3007F2F32DE +:10B390005788EE95A84C1E46BDA46A6606DFAB7AB8 +:10B3A000D28F7A4B65BA81FB4D59ECC31AF544062E +:10B3B000F3B3BC9A2B46E7D69B77F27E358E9F6C13 +:10B3C0007F1AEF8FB1BDB9B8A99BFAA73862A36EF7 +:10B3D000107D646D40E83F918F55C732BE79389E2D +:10B3E000FC5B7B1ED3340675943F096E8F4D15753B +:10B3F0007A5F852C6E6B4FF729D8EAB44E797B348F +:10B40000FDE8FC523EDE2A859F1CE643725FCC3786 +:10B4100092D84C7626D4891FB2F38BC0FC249A0FA5 +:10B42000E5E5E5F065103E004F0CE9A7AE7E6D8BBB +:10B4300044ED008F823EB3A4C9E009F08C70009EF9 +:10B44000519EE7F0A57F247C79EDF8190B5FCD368E +:10B450007C4E8C2FA963227CB5AA748ED6FB523504 +:10B46000F949FEFBE1CD997F228BFBA0FE5878B411 +:10B47000F20CF3CF81DEE317F7598A73A0D67D98DB +:10B48000E3E51F5AE73FB3FB4A7905C51594572FEB +:10B4900031310ED2C958ACA47EF47CC683C7CADF52 +:10B4A00090373F58F1A6EDFC8E15EFC7B8BCFDDC18 +:10B4B000CA037E6EE72BBA7B4CF9B4D3CFFD4CD6D2 +:10B4C000F738B017E956C7F3754EBF66E5B5C37ECA +:10B4D00007F07840F4E7D9BC9BC6BFD99D38E0B7E8 +:10B4E000FB7BB48421E9E3E3237F5F3338ECA6FEE2 +:10B4F000F787D534C6C33A5C69DFC5A83FFF81E74B +:10B50000AF59F9ED519674A11FA79AE92EC4DFB681 +:10B51000B6168ADB3FDA96A0B2BFAD95CA4880C3A3 +:10B520003746FED2D308E7B9F29758B88EC6CBCFCC +:10B5300037C8DFE759F906DD227F69EF229642FE20 +:10B54000AC8EE8CF22C821BF388F8820A03D1BE4F5 +:10B55000E7044EBFF6D316CCB3EE2AAD5F887EB4B7 +:10B560001FFBF9398E82FA98F15C1D3F9F8271268C +:10B57000775D2F9DAB00FCFED85F4AE7FA0DBC8FCC +:10B58000443154F2E31BAD7183C7E3B89D18DD93DA +:10B590006C47FB78A767A885C7C36F5B89F733ED56 +:10B5A000C4871731F6726F5717C6B7432E5E3FE355 +:10B5B000EFA0FA366157D01FD8215104DE959B6F5A +:10B5C0005580EBAF4AF4DD215E3F3C7BD60BED8A24 +:10B5D000C52705724CC23C9092662E3F42177EB53D +:10B5E000DC7E5FC82FFC5CEF86DAF879BFFDD39272 +:10B5F0002D763BD17AFF1BBFA5272D7CF17B273C05 +:10B60000AF5E487861C21FE8A95B6C3C8C72030C8A +:10B6100065AC17D473BC04102F3CEFF23748677742 +:10B6200010B6B6882F113FCF9E6BB7E68925AE7B4B +:10B63000D96CC775B80F36BCFBE1FB6A300CF87DDE +:10B640004966D373C8976FF17CF868DD3B77E3F9FF +:10B65000E6F3850FE05102445F0E4FA08EDF2F18F6 +:10B660000C2732F89135DE36C47B18ED4685E4F5BB +:10B67000B6593CCEBB7F93427E863F005EA6042631 +:10B68000C08B45DF1C3F98E5767FE974C107330323 +:10B69000E2BE28962A8FDBECD72C3EE13BF287C92D +:10B6A000295EB274B93D8F769F884BEF6CEBA9B0E1 +:10B6B0009F4B95837CDDAEF11B7311CE19CC28BC5A +:10B6C00087F4C648A32F8CFE78A08F96AB4FDBC8BB +:10B6D000882E73D2A90AFB39D6197B861B590147DC +:10B6E000D7169BBC9FB167A4918D718FEC1FABDC0B +:10B6F000864E049433E5DCEE2BDF93A0B80458AEFD +:10B70000A79AA7621E24481668B333502CF29A55A4 +:10B710001F5E6555D49069D4D1AE353212EE8BA739 +:10B720006E1676AACAE5F5D6FBF4AB303F6E987D6F +:10B73000CE2B5FCCD8EEFBD8C5C942A04E809F4B24 +:10B7400028FF401279D503948FB7EF3756DDA47ADE +:10B75000BC7680F46E401F207BEFDECBF839043CD2 +:10B760005B4BF6C2467600E5F234D12E21F8E05A62 +:10B77000C1B75BABB426FCAEBC96B5D3F9E8CAB290 +:10B7800026DC07013BB5935CE81CA03DBA9A4C66E9 +:10B79000703F66D9EBB04F203BB444E7E5CD012EB6 +:10B7A000076E12FD5BF5A77DC6CDC80F53C7B9471D +:10B7B000F0F301AEBF2ABF54C8FDB1B0BFB1E72757 +:10B7C0007E31A0887EE25F08607C345D48FA43D514 +:10B7D000F9398CC01E4003E02BA09A94CF562EE07E +:10B7E00029574D03F9ACD8BC7CA549F64F6A5F5781 +:10B7F00008F12AF37C82DAD455D7C3FB9ECB94D8C8 +:10B800006A1DEF874BED33E1FDBECBBE18417C6C6A +:10B81000AD5A5C8E78D82DF8FDC4657C3D7B37260B +:10B820000F233E2395A92D3F473F15D209FA2B87B9 +:10B83000FD21EE07778BFC977239254D81F70AC8F9 +:10B84000D56001EEC3539F776189FC3D0FEF27154B +:10B85000F789C9098273DFDD8CDFF328D6E53ECB9B +:10B860008FBB9459F170C9BE0E9F0A58F2D6B94EDB +:10B87000FE54EBA35FF0BF552F6AD025D44FC5957A +:10B8800049232EE854FBA9DCFBA100F7E306C43AE8 +:10B89000C0442ABC37B61B6D3209F79B8017987FCE +:10B8A000D1DFA6BD28FF86049EA745383E3BFD8913 +:10B8B0006F07C84E4839F282A745528D2E921F4E0F +:10B8C0007B556B003C4D1037F853E1295FFE59FB67 +:10B8D000FBFFAEF01635C424DCC797205D059F172B +:10B8E000D9EC85F7045F961BCA98EBFD45F1BEA81D +:10B8F000C16426C91BDE8F71CBC820CAC7504C9BC0 +:10B900008FF6D0F4CD438D68C706221AC52B3FB001 +:10B91000E48ADBF800E540A7DFF82DD23F9A4E9984 +:10B92000D7C377B384DD3538FCF967713DEDDFCBE4 +:10B93000F7F7FB87AB27BCAFCB5FD3E2C8839C9301 +:10B940004E38F220B58656477DAFA55F859D395E9E +:10B95000BF969D29FB8D4090C31BC472AFC8C3EE38 +:10B960006E4B51BEBFD5BE3CC8E7571D491808EF06 +:10B97000CCCAA4C96CF65D7EFF5541BE7EAA825C2E +:10B980008E57378CF0EF0C1818E5CE8E84817AC76D +:10B99000DB9334518E9DAB9FC21D23D45EEB615B64 +:10B9A000B0FD27FDF19AE0228C2BA51CF9D8308F31 +:10B9B00059F87C70B8C387FBC7BD885FD23563EF89 +:10B9C00017F2F16BC5AD66EF9918CF933E5F26CEA7 +:10B9D000495E5BCFC49F7E31E6C7DD28EECDBDE377 +:10B9E0009B0F1D7D084875C712AF8676F5B2335F91 +:10B9F000398AE7EADC78FE90CBDBA378AE6E634B46 +:10BA000080F5F2FB010B70FDBDC75CCD88AFF7D8A8 +:10BA1000F1828536FE5E1314E7827B3C14B7022E5A +:10BA200026B9B329E5719C07BB61AFB37E3D5B5B73 +:10BA3000867EDFEBF778581A507E63DEF993C620D6 +:10BA4000D70737B06437FA59BB049FDCFAAD0B1443 +:10BA5000DC27DCB850AB42FFA805C75541AE37DF45 +:10BA600081F5A97B73CF6F0AA615CCF77BE3A98577 +:10BA7000577E9A613FE9EE0AD42345DC9F998FC730 +:10BA8000EB7A9C709E6B1EF9705BF7B08C07877C1D +:10BA900048227B217FDC1B84BD988B8F25E99E4645 +:10BAA000B35D66E8F77820700FDDE3B8D9F46A2853 +:10BAB000074EFBA6A7D12E6C437EE771CB0BB97D59 +:10BAC000CA7F4F63B2DF778CF3FDCEF0501CED0AD6 +:10BAD000EBDE9BA03A407394647EEE7467E41CEF47 +:10BAE0006B267E7FDA774DD916804B975812EF87F9 +:10BAF0003BD73D955177620FCA8BBBDCA96B58755C +:10BB00000E4EB09F57E13D805E5640F7F858E70A69 +:10BB100029BE4AFEC754C6A8C2F89BF37C6200D770 +:10BB20001DF473BBB0C30251E7FBFC38EB63422E3C +:10BB30003480658AEBA1400D66E8FE8A7AE7BD8114 +:10BB4000163DEF88F0F8C778EBD505165850E5F1AB +:10BB50008DB3149FE4756BFC5329A919F9FD0EBC34 +:10BB6000227B81BD5F1EEF18957F22F2CFAD73352A +:10BB70008CC522889F9E36F17B229EF867288FE92C +:10BB80001FDD0CF3E03A8A78DCD19CC6F384BD3526 +:10BB9000F14289FC67EEB0AB4A880EA87797373F31 +:10BBA00082FEAE6782FC9C2E93F9BD1CDEA069600C +:10BBB0003E6AB72711417DA7DCC3E3CC8DC14402A7 +:10BBC000BF73475A3C6817FEE0ABD7B560FDA6C807 +:10BBD0002A1953FC9E13FDBC77F8C9C51867E97E86 +:10BBE00022C43264BFA715949B373DE5E6F6F3D730 +:10BBF0004234FE4D5FBFE1318C4B48DF5AAABF4D46 +:10BC0000FBB80EA2C34D4F5FFE6353CC07EDF18E20 +:10BC10002D223FD88C45F01CE0AD5EF657A847AD0D +:10BC2000F95BF803BB97F2476E3A54E4C82FB94961 +:10BC300086F6A81FA05C3B865FE9E742BEBC1B827C +:10BC4000FD04FACD0F0DD2FD7E370DFC8507E725EB +:10BC50005526D95B30DEAB418FD58EEC63F371890D +:10BC6000FC87EF3E7E40C17CEF9B0E1D50AEA57D54 +:10BC700026D787169CEAA15D26CA25B5469B8979F9 +:10BC8000D6CBBFF64401EA939BBFF6FBEE8BEAE806 +:10BC90007EB591D5B00E6E3FE4A6F3973EDD957765 +:10BCA0000F21BF3FFD36FC277C7FF3377EBEEA9F26 +:10BCB000E1BB7740EEFB4094BE33F496F21DAC2717 +:10BCC000824994FBB73FE39463B71F7A83EE3FD377 +:10BCD0005C6CA4F2D39827E55C0FF9ED3F60671424 +:10BCE000DC1FDF3EB08DFC98B73FF5DE3FA13CB9CD +:10BCF0003D4F1EBE83FF18C3EF180AE5F91D0F95CF +:10BD00004C4ABFDDFCC4075F36018FEF7EFD575FF5 +:10BD1000C6FDC92DFFF1EB2FFF0DC615BEEFD350A9 +:10BD20009EDF7EF8AD2FFF35CCF3BD67BC2EE48BD4 +:10BD3000F7BFF7778FED87FAFBAFCC5920417D76BF +:10BD400088AFE3F79FFC5D19E673DFF9BD9553906B +:10BD5000EFEEFCE6F22913D945EF031FA5BD767877 +:10BD6000D2443FFD190993E318FBAE28F3E8F0EE47 +:10BD700093A7155C67BF95D808EAABDB067EAF20BA +:10BD8000FF1D35D808E2E5B9A7DE38FAD7507F0F96 +:10BD9000E8E21D832E30EFA92EFA3D91CC54FC5DD4 +:10BDA00091DB9EBAFC334BEBB0F4C474A40B1B21A3 +:10BDB000FD388A9E2F013DEB72F41C977E5FDD46B5 +:10BDC000F7EBDC3E00F49B379A7EEFE13F968CA6C2 +:10BDD000DFCA3CFA7DC06EF90AE5D63C5532A61D95 +:10BDE00068F98D6FFDE61513FEDED2FB79EB753C2D +:10BDF0003CB74A1CAEE290714508D7DBD7FFFEB1D5 +:10BE0000FD61A4B397F6AFEF3FF1C1743CCCFC0BDE +:10BE1000CFC835888791EF79B583F0CD4DDFFB2909 +:10BE2000E9E1F7BFF9A2A293FE600512C8CDF75968 +:10BE3000F6EF38FA7F6EE33E2A76EB23FF7FD53F9D +:10BE4000C1F7B7E2BD111AD18FEA470DFE3B2FB7FC +:10BE5000A5D734EB741F6029CDFBB6345F0FB7A5AF +:10BE600007D7E1EF3EE4E37D47C865DD1B96A5AB50 +:10BE7000548FF47C7D159D2F1C879ED6FC359CFF2E +:10BE800085F0FE11E77A1DCD37230ACA7F8BBEEFFE +:10BE90001F38ADFC33B4CF7C47D15C1741DD33A2F2 +:10BEA000901DF4A45BC3FB48F3E98E71800DE47F21 +:10BEB000681FF3DC5E3E3F6C0D39EF93B4F071AE5A +:10BEC000F57CEE799C1F9EEE0AE90E7EB1F0B5A5D9 +:10BED0005CA13C0B7781427EF96E8FFE53F4838C1C +:10BEE000BCE06107E1938E82C59497930F6727DAD0 +:10BEF00071B6F3E472304EF732CA616D019A36F9C9 +:10BF000079671E98886E8347AD1A8ED379B1A52EB6 +:10BF1000867E8BFE86E114C5E76F7529ED52EEBE75 +:10BF200041EBFB5743D5DC7FDAA0B8307F75DB31BE +:10BF30002E9FFA3D0397D27DB7B35CC4C7F970FE5C +:10BF40004388EF97DC9B03B147168E8F77B7384F46 +:10BF5000B7ADA63D4EFE9BAA7011FA4D3B06BFFD44 +:10BF600002C6AB7D0D65551887FF85E88FD504D9CE +:10BF70001B8E7826C08178BCC585B951305E018D95 +:10BF8000772EF89E1672D7BDD9177B6402BBE80FD7 +:10BF90000D9F85C7E7055FB83707697C0BAF78CF82 +:10BFA0004123FAA1C5EF6D60DEC93D613AC247F792 +:10BFB0001EC8950BD84C21470BB9FFFB6D9437C6B3 +:10BFC000779DF18A80C6FDDF4F86B83FB9C037E064 +:10BFD000A3B357117E3F959A9063350B31BF85E728 +:10BFE00025E6AF03AF673885F7CF14D6B862F08483 +:10BFF00015D6CB6407F944BCA860A949F878A8AA6B +:10C00000C6D50EF3AA2EE0F87CC833D27C03C0B1AB +:10C01000754BA17E10F9EA988761DCF2CE69EC20BD +:10C02000FA8DAC716788F65E16A47C372FE2612129 +:10C03000E61FEA0FAC4739F00517ED87A2C73EF7B8 +:10C040006C2594B387D6344D8372AEF8AEEA55C9E9 +:10C05000351DEA728190FB0BD9425CE777A4939778 +:10C0600020FAEFF842BB17F5EDE7BF646CC510CDC1 +:10C07000A37BD63AE4FCE8FCDF21C2CFB63B8F5F5E +:10C080003A279CCBFF653593F3239C9B6E6B19EE8F +:10C090000BB49972B210E486F154CCC07142D81E30 +:10C0A000F7B5357C3F9DDD9F88BCEEEC7D9EEC4E68 +:10C0B0008A4B9E117C93C35B01F18FB79EDF83C1D6 +:10C0C0009EFB25233D520F7C68DB079C117C60D1D1 +:10C0D0009BB13AF324C63F250FD9EB163EC79BE729 +:10C0E000472DBFDCC6CC93B308DFE6490FFD7E0CBD +:10C0F000D50F8AB24F3CB7DA5F9C474F30BACD9329 +:10C1000040506906DF57CCD81C26B8B3F2AC92BFBA +:10C11000B7EAF9F4AFBCC5D9BEBAC7592FAC77D6C8 +:10C120002D7EB1F8C3E29BFF2A7F94A04E5E94A3BC +:10C13000F3B9F450C6BA0FAE9265E8FEB74A33635E +:10C14000BF9F67CED4F87505A5744F9B0BFDEC839C +:10C15000D36617D2EF138E1317EE6A3B347FAC7B96 +:10C16000F63C32F4BF00EF7F83F7363C66F3DAEB40 +:10C17000ACBC76A3FE75A8EF8C69245F7ACBFF7701 +:10C180006410F1BCA8A9C51ECFCC2FFF0079FE6DAD +:10C19000384FAB9E9F5FBEF3E3CFF3EFC7F1BB8594 +:10C1A0007F2E7F7C43ABA5FCC18A24BF67ED8090C6 +:10C1B0004FD3D8F0160FB7D9E2AA2D9F6EC6FAA1B9 +:10C1C000F2E7753C97F47215D2AD9075D23D478079 +:10C1D000C2BAB313E8C9FC7B8E14178F7F37269E33 +:10C1E0003A81F72E56246B69FCEC783836D4BF912F +:10C1F0008527B304E3A2D3D908E599EB71AD0943D0 +:10C2000066335B62CF6209F0CCFDAFDCBB34DE3954 +:10C2100008ABFDC775FEE18898DFA1907104E9F4D1 +:10C22000C73AFFF093DCB83F196BDC8FFAFB630F62 +:10C230005C5EC0CF7BBD2A915DB8EBF27B280F4DD1 +:10C240001996E8FE3625C87F07F42E973F86F69AA2 +:10C25000754F50E3BFECA3DFF13BEC4EFC1CE1D982 +:10C26000362D3903ED89703CE93CBF1975F17C2509 +:10C27000714EB617EF119272F708F5463F9E73158F +:10C28000BD48878FD4EFA87B84DC858B46F79F7FE2 +:10C290008EC11DEAA479ABE7797E215C62CCE7BF51 +:10C2A0003F36BF19EFF5B2EE0F2A2B7CFF127E7FCF +:10C2B00010A37CC98AFE853D183F0B4F359EC4F6FE +:10C2C0005F2B5CD01CC6F7D5FCBD27C5DFFB64C364 +:10C2D0004445BE49D349DEFA12CAEB28C77D354230 +:10C2E000AF47D8B064F9C974CAA3995168CBA3F118 +:10C2F00056F23C1ACC97199E007FDBC5FD91DBDA24 +:10C3000074CA97C113AAA83F7CB53C6F06F70DFC11 +:10C310001E168DDADDDB16A1725F9B41E5B7E5F8ED +:10C320000538AEAF86DFF7968D8388F2B8380F7E7A +:10C33000B890F37DAEE4FBC77271AEA3F713571745 +:10C34000DAD7C9D242C9B11FE96E8B7EFA884DDFB8 +:10C350002B1A3FEFE08DC0739BFE91C5FDFD9D77CD +:10C36000A718FABF7C997D0CFD55578871BBDB5A25 +:10C37000E9DEEDAEA26E03FD523BDA9254576571D1 +:10C380007F5184CD47FB5155938638CF301FFD8AAE +:10C390006A30C3EB31F15E1BE2F53AFE3ED5B6D909 +:10C3A000719FB737D2EAB8C75BAB6112EE4343B1B6 +:10C3B000A4E3799101DFD9D67FD5B1CD2AE6F57511 +:10C3C000B390D68BF670A489F2EE4FC580CA989FC1 +:10C3D00092B9F44421EE1FA28A8E3675EFDDCE7B32 +:10C3E00054F09E47FBEF2AFA2229BA6F5FA94C50FE +:10C3F0005E9395E7E18DB8F27E4F2B3D80F7B3A9B0 +:10C40000C7AA491FDC2CF0AF6AFCF74EB2F246EF28 +:10C41000596ABFC722041607EA8510FE5EB00BEF0B +:10C42000B34B9898476556C9F4FB208179ADF43B2E +:10C4300092C1D932C338DE8EB9B744C0B261731B22 +:10C44000864CBCC769AB5E43F199D0EAFBD7A2DF4B +:10C450002DA41D5E4765C377AF443F4EA8F9680B16 +:10C4600096FD855544BF50F389ABE97DF33BEBF175 +:10C47000B99CBD1FCFA4FBF17A2A6752DC6A7C7994 +:10C48000E9CAFDAE18AD63DBEF9C51BD38AF5E91DC +:10C49000D77E66DEFB4FE4BD5FE0A80F1671FBAAF6 +:10C4A0002B9BBFB387E1798ACEA2FB23C8EFFB7138 +:10C4B0005E68B7D7811D65A387A20E38EA9F2D88D5 +:10C4C000EFE7EB8CCB653FCB1888777FEB51BADF7A +:10C4D0008EE97292D5633DC3F01E4EC95093E8D7E2 +:10C4E00009C6D226E64517AA8CEE97F4B7C60CC447 +:10C4F0009BBFD530108FFED6B8A827A8FCF7E2C4A2 +:10C50000A1C252FBBD9CC334DEDF175AF945E908CE +:10C51000CF238292CEFDAC30912FB3722A3A4A4E8D +:10C5200099F6FB03404E3D85FDFB504E318C37A7FD +:10C53000E91EDCECFD64358CF4D778F4EB6DE3F7A1 +:10C5400091750AB9F56D39F17DC24B94DF8F9793E0 +:10C550004309CAB7FB69FFAF2EC1FB668EE3607467 +:10C56000EFD7AFB6A2BF5F16F97647FADFBCC4AC0F +:10C57000B5C9BD28E7F7CF16245EA07E357E8FB201 +:10C5800085F7C1B9B3E99E17BAAF06E5C52715B25D +:10C590005BF2E1EC44BBD99E4715ED8DA37F2D20C6 +:10C5A000E49D5C7BFF5A1DE03D51A83BEEF7F5682A +:10C5B0004E3EC8E299AD70EA833C3C0FB6B8268582 +:10C5C0003FBFF6F87C7902BF05E0F3171C9FAAE98C +:10C5D000C0A7E0DFE379F7C4D0EFD32ECA9520BF20 +:10C5E0007A3C36F975FFDDC91EFC9D89E031376B59 +:10C5F000D7517EDDF88A537EA5488E9AF3D900CABA +:10C60000D58CA003EA1D641A5F0B97F3418DDF27D9 +:10C610002D8713D5C82F73A626FE83F8A886EF634F +:10C620003C9A539E499AF5BB8F9C5FFF13F7BF124C +:10C630000A008000000000001F8B080000000000BE +:10C64000000BC57D0D7854D599F0993B37933B434A +:10C65000667267F237F9BF09034C30E2244C60D0B0 +:10C66000606F62D0A0B18E16DBD8A5DD41C1E22794 +:10C67000ED372A2ADD85CE0D24904412060218AC2F +:10C680003F0302D52DAED155B4AD5F7782CA626B40 +:10C69000D7E8A21B2D6E078AAEEE767753D7DDD290 +:10C6A000FD68FDCEFB9E7333F74E26FCD8EEB7F443 +:10C6B000B127EF3DE79EF39EF7BCFFE7DC33444C28 +:10C6C00078C34E42ECA44D23164256C90A214D149C +:10C6D000F6DB4E5AE7D1D21721913C42889744C8E5 +:10C6E000024272E99F843679B33AE290A15D677C99 +:10C6F00034873E2AA848B408F4F9700EE91CA9272B +:10C7000064332F3F837F5F20E46B32EDBC285D2EC6 +:10C71000B1D6E7A70CF599656F8C1031270D4BCA80 +:10C720009805F098AEFDE87D73F353B4FE918C71DB +:10C73000F5722036D200FD75C79E6830F67BA95C85 +:10C7400083F8E8B0CBA6911BE9FB8FD8B3F7532F42 +:10C750000BD8DE658B46C24017425412A4F805E49C +:10C76000BDFD35E976F3609E4D50AD11A02F2149F6 +:10C7700012BE94904A1B8940BFB610F1C8F9E9F681 +:10C78000CDBC7DA583D5678E7B853EAEC33CAEAD6B +:10C79000C23CEE624E5F42970BC623248AE3E72930 +:10C7A0001AAEA34DA1EB09E3574455281FB9F79DD5 +:10C7B000155B0A09E929F2375A159C9766A5FDF61B +:10C7C0006CBC44D8489F5FC7F1525FA15D51D859F6 +:10C7D0004F12FD9674FF775A23D7011FE45468BFA8 +:10C7E000B6BA685998C471F4757091D3E42EC37CBD +:10C7F0006EE4F8E9F4A5AF8842639A2E2EF291A96F +:10C80000FD57787B9D2EB47D9BE0A1E3C8741DFD90 +:10C810004807F219FDEFEBC0B7409F205D6729FD87 +:10C820009C10CADF40870BE4F355B28CCF6D226DAC +:10C8300047E96AE3EDBFE9526F97F97AC238BDE183 +:10C84000ADE155B40BF550444B025D2279D17EFA2F +:10C85000AA4D726933E6215DBE25D37636EF08D244 +:10C860003B8FD29D08E9F7F55299988174DD7CC21F +:10C870009280752CAA0AEFADA13079C74A0ED0FE7E +:10C88000B556D59243D743AB22814DF471516DF427 +:10C89000B2403DCC27BAF04B743E3D544E9273D219 +:10C8A000F4FA4D1189C37C74F82FAC110DF0B61455 +:10C8B0007746805FEE3F65517281A4CBC238DF7549 +:10C8C000740A028C572F240ED4A4F9EA81FD25881E +:10C8D0008F58B0BC18F07FA0BEB624720E79DD125E +:10C8E0002301DF2C032C462599F6BFA5A251CAF6D9 +:10C8F0005EAED716F015D07EDB9512F91C723D7D29 +:10C90000BFAD0E63BF7E6BE461B9686AFF7406A7B2 +:10C9100052944F04CD423E9B49E534EF39EFED94FC +:10C92000AE123CD7F9A426DD0E616B3698C96FE1D3 +:10C9300065EAAF8500C0CBDB5FF752788EFA0CC09A +:10C940009B6C9DEDED8B283C9F565D0ECBFBB57629 +:10C9500095E257B890FE5D46C85FC6BFDEAB51F8A2 +:10C96000D71EF569C0F3A84C70FD9FE77CEBEC4C3B +:10C9700024418F92BC388EA3C32AC020BFD5EA6160 +:10C9800058C7A39C3F1F28FAA117D62FF37D8DB758 +:10C990007FD7ADBEC4DAB37172E8B2123AFFC22FCC +:10C9A00075A83D20DF54315829DE6A27976B2F6127 +:10C9B000EB2D337EA5FC7B14DED7E9A9CBF524BF94 +:10C9C0007829BF58D2FCB2592E4E18F5D066EFC563 +:10C9D000F14BAF189664DABE27EFA676E07F4D11D3 +:10C9E00002B49AF414361E53289CBBA8B011964189 +:10C9F0006FFF2FCED671237E5205EDCFA00F3603E9 +:10CA00005F7D9EF1E399E3B73AEAB28FFFD1B9C6F1 +:10CA100047BA14A7EDE50397DE2765B35F6B732272 +:10CA2000FF6EE2DB0A15E93F552E47A41B9DE97610 +:10CA3000172B8F99A5642161D0A79BF24EC9B71A15 +:10CA4000FA11DD4CDF3FE1544577D3D4795DACBCBE +:10CA50004E37EEFEB879DC82F4B805D9C625A4427B +:10CA6000FE7086511E99FE7425A21B1D14AADB1FA1 +:10CA7000E803BBE5268262A5741BEA10ECE8B790D8 +:10CA800004F63BF430D5BE97C1F353327B1EC7E7A3 +:10CA90000E3FE3EBE9F01D9DB5E09C7E8A2C3FD96B +:10CAA000D046F58C7DDD5F35B4CDCF52DFDAEE8731 +:10CAB00075D2F178708ECB027E8A2CCAA5E12CE368 +:10CAC000D6FF6EE3914BE83CE436268F6E9FADE5D2 +:10CAD000560ADFF3B7764DF2C2F342ED94812E355C +:10CAE000C3A1A5B716C26C9C723F6D57B87EFB7888 +:10CAF0002ED0A19B28F0FE90EA6981FA4F5EB76BB9 +:10CB000004F416BCAFEBBD5AFA7E72CF783EADF797 +:10CB10006836C54EDB2736285D22F07F0F1901FBF2 +:10CB200013A7F6059858C7AF46955B45C42F321337 +:10CB3000FCBDC4066AC7E93CDC2A356E46BCF64B30 +:10CB400076D063436A6D3E3907FD3E77FF239FAF82 +:10CB50007F8FAAB4F0FEE75BB17FF9C80330DFA591 +:10CB60004C9F658E33D44EFB3F077F9C0F7F7DDD4E +:10CB7000F5FACCFEA11EE6E1582B9CCCA1CE8D434C +:10CB8000FD34064E8E8334774DAE33CA3F5BB7B764 +:10CB90006B0513FF839E00FA744BBF2C3E4DF9507A +:10CBA000B4FF73F169CA8756D0CDA5F4790EA31FDF +:10CBB00039FB993549FDF77E78D582F0679F51B8EA +:10CBC0001B60DAFF0E2E7F99F3EBB6303FAD9BFA78 +:10CBD0006BCF66A1F3A09BF967DD4ED60EFF517AAD +:10CBE0003A64659FD11EEC700BCC1FA678A8C530A7 +:10CBF0003FFE8FE211A3B0C8F524A568B91A44F925 +:10CC0000677EA6D84B9214B6837F1580E7F1E406C1 +:10CC1000D08BB210B82A44619FF89F2983BF972B0D +:10CC20009100F863B9C7AD014A21E827699F07E37E +:10CC3000D1767E8E4F4D96F7BC1A8175CB554954EF +:10CC400073033EAC7EB27D451CED1CC5317A55E9BF +:10CC5000D4F709EFBF96EBA7752756245E31D43F72 +:10CC6000ED76167E7809FD63215988EB675D9E8F0E +:10CC70007A288F22BB682A5D7F138B245E99955E8C +:10CC80006789FE0FE85A116474A9E878479B19C4B4 +:10CC9000F59BB07A011ED7DA003F551A212180DFBB +:10CCA000233E0AD7445D8AE0E594A6EB5D097F59EF +:10CCB000A1FEC428BC0F610581F7DBDFE9BA8AC297 +:10CCC0000D9B75789C407FF7FC3E9F48D0DFDA8A49 +:10CCD000B4DEA0FF39DBCCB08EA78EFF5C9214606F +:10CCE0009CB9EDAF1CB9AA10C7D166D07EFF22F463 +:10CCF000ECB53E92C6E7528E8F7BC9F12380CF25DB +:10CD0000746E5639CD9FE8C2CD4CCBD15CF5AD8D5C +:10CD100080E7C35BA84F170298CACB3CC439252CC7 +:10CD200048F391CEFF344EFD05D89332885315F069 +:10CD30006F029688213E2579416C07F1E8A92C7293 +:10CD40004E48178EFB631E8FBE1493B07C312613A2 +:10CD500091AECFD3312FC24FC6148477C4FC58C6CE +:10CD600063017CDE1B0B21BC39A612167FB66379EA +:10CD70002016C6725FAC13CB442C82E5A3B1D55804 +:10CD80003E1C8BE27B4FC5D661F9FD9886CF1F8A8A +:10CD9000F562391C8BE3F3EFC58611FEAB5802E157 +:10CDA00067624F60B9353682CF7FFCDBD9F9E7F295 +:10CDB000137E18EB5D6C8C87473F9E8D71F474ED8C +:10CDC0009F87F8D960DF179C096F7A83AEEFB8852B +:10CDD000069A5E80E3B780FE5A70FC09531CF6C3C6 +:10CDE0008F3F7CDC027668DCA6580D7AE1B09BAD03 +:10CDF000C39547A2E537E5419C4EF618F1719E15A3 +:10CE0000B45CBABE959E1A5C07E759F164AE0BE2BA +:10CE10003CDACED0FF0B5D4CCF4DB1A71EA6779A62 +:10CE2000CE4437E5D3A54E09D489B892FAB3C723C7 +:10CE3000088366C8AD80329C74525854448CE39A7F +:10CE4000CE84358023AD5214FC79F1CC975527E878 +:10CE50001DAA8772E93CD5E3AAF62DF09B797BEAFF +:10CE60002FD77B206E2449D562F0A34542C7A1EDA0 +:10CE70009ED7F223609F17A8775BC17F6A3D119D03 +:10CE8000918DCE2F1CBF7506E805998467805D38AB +:10CE90007CFCDCF60D46248638E5A756F50A0F958E +:10CEA000C32B05162FFF3046B453B390AEDA294A90 +:10CEB000D7551E09E5F4C739AA0AFAA4FF6D21B1B6 +:10CEC000AF06C6152C00BF302E2440765E18DFD783 +:10CED00065A3F87EF2116980BE477F7B7814E01766 +:10CEE0007E451A72A91C1D39C1EA0F074923F8B8FB +:10CEF000E56B587FAEE3B5F8FE151FD940694DAE1E +:10CF0000CFE1E3775F07FAF3F0090165D315B49930 +:10CF1000ECE091137CFCE34222B706DAEF68B10142 +:10CF2000BFAC46AF8588A26601F8F01A12001BF666 +:10CF3000C2F8DD338C7C1D7CDD3C5EE32BE6FE5FBE +:10CF4000387E6E3B5EB6C6FCBEFF61F3FB2261FC21 +:10CF5000F3BCE652611D178EDDC9D6713C92751D7A +:10CF6000E97C4DEBF8C2F19BCEBB8E49F33AAE059E +:10CF70007EFA716502F53E0D232736D29558282793 +:10CF8000B4A7916F49F400E53BC799DE30FA0B670F +:10CF9000A87D023B772621B0724480E7FABA0F736E +:10CFA0003ED0C77B8CCB53FF99A408EDFAFD1BED57 +:10CFB0002BF2A07FE64F64E217F7E422DF2C9458AF +:10CFC0007DBFFF94B4A2DED89F25B35EFE86A99EE6 +:10CFD000BF0F0A9ACAD3A39E2FF6413CBCD04BDBAD +:10CFE000D743FB1DF6ACFD4DD66F74DF61AAB723A6 +:10CFF000FE0B2BF4F176B8B3BDFF9847C6B2DFFF46 +:10D0000016C65FB444FF5F14E9BA38619D6E453EB1 +:10D01000CA94B7977F7B3BAEEBE1B1BB67C03A1FC9 +:10D0200039D18AF61FE403F853E73F901B0B7DFECE +:10D030001FF439C9C2D7A511335F3DAF84B1BFC555 +:10D040001374BD0DCF17A5CCF00BE38C5F0E2B1125 +:10D050006C9FE927045E32B79FBBDFC03F24CD6FD2 +:10D06000FA7899EB59D06E7EDFAD9E7BFCCCF7ED64 +:10D070008AB97DAE37E3FDF38C9F239BDBCFDE992E +:10D0800081FFF8B9E56566AFF9FD1A2DFBF887A7B2 +:10D0900019BF7A9DB97D6534FBFBD38D3FEF3933E2 +:10D0A000BEF587CCEF4FE6F9A6F1EFD272CFDAF5F5 +:10D0B0008497F37CA2AA81BFABE713E9132D154433 +:10D0C0002D1F7D08ED8C827CAFDB173D2FA3F7F37E +:10D0D000D0A2F81E887F53E063523BF7D8A2D41E3B +:10D0E000888B556B3EC20F2F1A413801C95A0AFB73 +:10D0F0005F7A0B6187E624A0D7EACF9ED26E077FC6 +:10D100008D3A96E06FBB561ED46E077DD36E47BF37 +:10D11000D0B5DED602F5477578DDC1E4E3B4BE15BF +:10D12000E24BEA8FB9A2B651806FD3E135B3DF8508 +:10D13000FEBB353A3EB5B3B2DF1CBF16AE3FA97E8B +:10D1400003C6DF291098AF637D31B6BF09FCD266F4 +:10D150000A37F7237EF708240AF12FF19BE35711D2 +:10D16000FC3C4ADFC1D24427C4D3C339ACD4E97BE9 +:10D170005901D3037A49FFB515D1FEAC41165F536F +:10D18000495257D2F9000919BD031AC033F8FCAD52 +:10D19000CDBD63402A6BB303F3C4D6959BEF02FD6C +:10D1A0006A5DBDFB1E2CD71DBC17F4A7357AF87E2F +:10D1B00084D71CFD36C26BDFF97328A95F70590153 +:10D1C0001DD7BAFEC30D589F17E1793479631FF854 +:10D1D000136D2CEE7CD432F111F809DA069B02F9BA +:10D1E0009E6DDF49BDF67821A40E2B65C8C33FDADA +:10D1F000F6C94710D77FD24E430CDABE2C49E94F0F +:10D20000E1B27679AFDD10CF95C1DF74ED3DC9D2C3 +:10D21000D67E88EB57D626A07E80C7A965AB13962D +:10D220001554CF3DC6E36A4F50E9027EF1B4D3787E +:10D2300018A62F17A23FEC59AD7481BD7586681CE6 +:10D240004B1F7FD7220B1827DFC1F251AEA060D24F +:10D250006B8FAEA4F881BD5E43A3493A5E79F2B705 +:10D26000886F79875C0B79051DBF72C08FFAF30553 +:10D270001CFF820E652FD4EBF895AF19B1AC70A6E8 +:10D28000F12B080610BF820E86DFA4FE5A13183554 +:10D29000E2F7308F53A7E0B59AE315A578D1712A4C +:10D2A000002F88A3D698F1AAE0742B07BC0A010FBF +:10D2B000335E15D1A4896EE5C111C4AB7C8D19AF65 +:10D2C000F2E88825D780D723169E5FB86B1ABA4537 +:10D2D000397E1AC34FE1F8296BCDF8291CBF4A8E5D +:10D2E0005FE55A337E8A4604237E95C131C4AF720E +:10D2F000AD19BF4A6DCC2219F0CBCC4F64E237FA9E +:10D30000FE3525E78A077A63C947F6637C730CCB41 +:10D310005EBE0E5FAD88928D79463DC7E2A85C6F18 +:10D320004485BC786FCD6605F83AFFCAE2065069BD +:10D33000E9761BB15D6F4E767F7EB25E20AB317EAB +:10D340001327DEFE0AE5A3BC625F633FEDE744F40A +:10D35000E5A2AFD07E47923ECCD7EAE32EB788480D +:10D3600037DB2C82FE2E11E3E4C64BA7CE3FC74726 +:10D3700054905B5D9F8EA6AC1AC42DFD3E8276DF75 +:10D38000EEFE28A9D271FA538F4BD9EC03F1891321 +:10D3900093FB06900CC8D87FA8237109FC0C57C6D4 +:10D3A000FE43BFAFB584D4A7DBE3F32CFB10FA3800 +:10D3B000E29902922830D285CD43145502F64E3CB4 +:10D3C000538CF5DBFFE4D123C007F620F55B280F73 +:10D3D000D9F3125ED08F0F561232064A4F4CE13C01 +:10D3E0001EFC937F6D87F8BBEFCD1CCC598FD67D8B +:10D3F00028815F33609134E0C7815907BDD0AECE3C +:10D400003B26850D79E8FEA646F4AB07294D609FC3 +:10D41000030C16E8FD076033E2728435C90FFB5632 +:10D420007ABD78ED6A6A073EB019DA5378671AD682 +:10D4300080FF8A5A75F8F74BA1FD4E4746BD60E163 +:10D44000B005FBEB11E83CA8BE3E3934B154A2F65E +:10D45000E04742B846A2F0A5DA445F5BE5F9EB8B02 +:10D46000160BE144B6F5840C0BE489CF9492C47C8E +:10D47000DACE138F84693B8798201E437BC7990AB5 +:10D4800053FD6E2A97EA1C4AE3F029728AC29F7202 +:10D49000FB2387E21AC85375684C83BCB2BD33A125 +:10D4A00002FD9CCB139A0079AE4E6A9008EC474679 +:10D4B00071BF5B5C1F89829E747AF364C8FB9474AD +:10D4C0000A4435E661C2CDDF10815F8306BB5A9BFB +:10D4D000E65FC7193BF24126DEFF54A098F2358E75 +:10D4E0003379D8EEBFBF7D5D563A4E6D5F8FEDF458 +:10D4F000793CC0F5C157BE30A238804F7D1E6123F4 +:10D50000959B7C9EE739E2DB219DA4FDF4D50F4B72 +:10D51000165AE6F3FD64A28C49375D9AEE774721EF +:10D52000CB737E75533C8AFBE8F298047AE0AB57E4 +:10D53000317880C2804F3EDF6F7E6FF54CB45383ED +:10D54000FEDA7D10B7EAFDBC59C8D6F3AB56121D02 +:10D55000E1EF95D2F23DBFD09EC8A2B76E296279A5 +:10D56000880199B443FBAFDD7B405A6168B788F707 +:10D5700037A0B0FAE5774D531FA0F514AF3FDDF0AB +:10D58000C12ED073FD7E0FEAB901DF5B59F5517FE3 +:10D590005D630BE62DAD44B65E41E1224647D4FD06 +:10D5A000382F0F9E1F380D7A9FF6D7B75CDE0BF928 +:10D5B0008B5421C3B7EF6CB405F482A64A1307D08D +:10D5C0003FB2E07B7DC100E621FB4994C8507FDC7F +:10D5D000CAF60345D6AFB34DE6F95B62B32CE0A2C1 +:10D5E0004A97B82CB5BDA596D61FA5F12CF88F6526 +:10D5F000C1784B2D1D776B8B3401F9BC25D6439632 +:10D600002AB04F5E2BC9A5F2E9E478BA2B4982AA69 +:10D610005052BADAEC775B9D6B313F5C4CFD65D8BC +:10D62000CF2C5E6EF6C3297EC94700BF50AE7C206A +:10D6300000FB4386F76BC0741ADA53582E62E72C4E +:10D64000BA2DCA960A78EF5E123840EB2A5E7FC682 +:10D6500002B9D37B8FDFF5379514BF922041BAD73B +:10D6600016317E5A97DA8E7EDD9A429EE79D4FE60E +:10D6700083BEBE3FA85D03FB00D45EE33CEEF6B183 +:10D68000FCCAA0EF59CCA750738CFB8C15D1400B72 +:10D69000D0FF1E89AE5303D061FD6BB368FDDAB7CE +:10D6A000AD01D0C7FABEDA128E5F3F617C321E93A5 +:10D6B00008D8DD77A8BE81F2BD984CF653DD7B22F9 +:10D6C000E645F81F620A9639451E7CEFDDDBFF6FE9 +:10D6D000F2333ACED06CB2D798877BC79722609747 +:10D6E0005D84C5DB39A401F3313992E2D944F17983 +:10D6F000F7EAC4C002F063AE1602B02F449A59DEB6 +:10D70000F4AB773475413BB79DB8AD6EE8FF9FBD74 +:10D71000C6BC8C6E7F497321F7D3997F405541AFCA +:10D72000E4991A076DE3E742F4FEA93F8E74714B4A +:10D73000B2BB9FE2F1FEBD255FEEA4F0F69007CFED +:10D74000AB9CECB60A2AC84190C9A73EDE8A26AA3D +:10D75000CF297D225D39AE5021F239FA1964359313 +:10D76000F7BD5C0F904E66CF74F911B87D1EF45171 +:10D7700039CE224F977339AC59FB7DD6CECFDA9193 +:10D78000E665886F8114B0A0BC11D9D3558AF28E9A +:10D79000EB3E40E5ACCB42A6F83169B9230990BB1A +:10D7A000CF216F26F9226282CB4F018F67987CD1FF +:10D7B000A59900F8BF5BDEA6C8D7898F4F40DC93E0 +:10D7C0002967B80F45919677355CABE5A5F5E2D7AB +:10D7D000BFFDC1C042C37AE9F4FA79867E5CD153B9 +:10D7E000F445E3BAA6D7B916F962203486E744B205 +:10D7F000AC2B8EFBBDC2CA6B35AAAB8ED4D926E941 +:10D800000FFE5D9F4CE90FFC44E9DF25C3FAEC6392 +:10D810007E915F201605D687D147A3F123DB97BF02 +:10D820000BD7A3EFF87C8C27FB39FDB4367251EB94 +:10D83000930BEB13B890F5098CC1FE98FB161AA850 +:10D840002A53D727733D68D84C603F6C90EF9F7D7B +:10D85000DEF5C93FFBD7AF16831FE92701F0B333CD +:10D86000F5C57B3195EB9D76AE77C208F7142AC8D3 +:10D87000E799FAC4E11FC9013D71DA7F37A79F9587 +:10D88000F1FF72D92D20FD4482F48D2450FEFB025D +:10D890000105E4BFC42F9C84FD80521FDB17A02527 +:10D8A000EE079C8F0EE7D3FBB7412C8EE7BB82E8D7 +:10D8B00047592C39E86F3B4F6C2755CA543DF087C8 +:10D8C000965B785E760F2FF7F2FCEC2E0E3F9A9166 +:10D8D000AF5D5864B62BFA7EB0A59AC5055245A136 +:10D8E000693FAE6CA519AEED36C3C5CBCC70F53A29 +:10D8F000735EE69B85EC9C916EBFDEE276E6BD989A +:10D900001FCBA12F9E1C2F049A59D97EC818B73F50 +:10D910005F023B01FA0FEC042D8E833D42FBC4EC09 +:10D92000D138B747276201CE27212C070A3DCC2FDB +:10D93000CBB027BADD988E8EBADDA859FBF3F65A24 +:10D94000B40302F2AEEE879D4F1F8FE876E002C768 +:10D95000B9E07624D509F1D38C2E970C7998ADC215 +:10D9600048EAAFE85039C24C6109851D6542621F23 +:10D97000F8018B0EA3BD5C5A6A8E3F52C5CCCEA770 +:10D980008A99DEB31F1B1B86ADCA84C5A6902A38B0 +:10D99000C738D6097242FC36A4F366D8FFA7FEB298 +:10D9A0000DF6FFA971BDE1C76C9EA451423DB5CDF6 +:10D9B00032A140DE659D2FFAD8ADF4F178B11BFBA2 +:10D9C000EDAABB7D78056D777FA30DFD0CC2F765D1 +:10D9D000EDF017E52B7B609DDA12C42302E8AF114E +:10D9E0005F05F2894A75C9672C8140E05C30846F1D +:10D9F000B0F96D3B7637A92F84732FD2C48C10E415 +:10DA0000B922A403E94F26C0FF22BE08EEDF0F466D +:10DA10005D0AE8235B85791F39AC30D802949839C8 +:10DA2000B5DE56D16CE2D367AB08EAEFFE45C2DE45 +:10DA30008D601FE9B4205ED76E6479B5C1F6B85623 +:10DA400000E3691EA2C13AE4C455D42FA512F363C2 +:10DA5000087B7FA7B718EDEB9CF9FC9C05D59C9F34 +:10DA6000D1F86DAB531DC7FE4A1D0AF46797669443 +:10DA7000009D0743AD7DB0BE77DF28B8C18F7AB572 +:10DA800096BDF7AA9BC9E36647E4090BE5B5390FD4 +:10DA9000FEFA3A91F25D5F0ED3A744DB741DE84DA8 +:10DAA000DA6F40A4F37FBE88A86D158017AB3FBB2B +:10DAB000FBBD7ED817B1090CFE51C9F73B001E3DD6 +:10DAC000998B7A90DA18B453FDEFEF41BEE92B4DF4 +:10DAD00079C1CE49A1CD6316880315731CB85518BA +:10DAE000433ED436E6C9070AD37EE4D69C6400F8E8 +:10DAF000610BF7D7B7781D68EFEFB7241558F7B566 +:10DB0000EED5010812EA4A6B513E762E58700CD4BD +:10DB1000B17EAE52E7D33EAEA71EE4E5A8EF940473 +:10DB200071EDE8F253EDE0E7833C025FF5D9B48D87 +:10DB300088FF6CB6DFD8BFFC2DAC1F7C1D4F3D525B +:10DB4000BBDC8A7984D252C6F73D3C8FABEBB99BE4 +:10DB5000299EC00FFAB85FF332B97DD036D60B29B3 +:10DB6000F67E818CECA3A5E78C9B68747DC40DB216 +:10DB700005E2BEAB783B77FB826F88D45E78AA6AF9 +:10DB800057588047BC9F5C2B5187DE037905CC53E7 +:10DB9000FCFBB56A33D50BF522C216EFBFF7837FC6 +:10DBA00090795EAAC4C3E01C5867CA1F73DC1C9E30 +:10DBB0006BC66F472CD0701ACF0184B01C88A9584F +:10DBC000FEA176A32FC32E4CA977255687312F1699 +:10DBD000C7BC4FDE65BE7DFD06BFF39312AEEF38C6 +:10DBE0005D4BCB05535EE906A86A9CBEFF372C440B +:10DBF000B334422964CDCFE9A5BEEF78BCB8C614D2 +:10DC0000D70FAEB72472F269BD8BF15DFF5C1BEAE2 +:10DC1000413D6EEC2F2A433F0AF3472077D7EB7E36 +:10DC20005402F5544F6319EEFF3E600F8CC2B936B3 +:10DC3000CAB332FAC9E218FA693D3755607D8FE5FB +:10DC40004D84FB8BF202FB50CED58F91FFEA66D755 +:10DC500060BC1B3B26837F3270767E179CAF1B9087 +:10DC60002CF246DACF68F0ADD51817CB363C27ED4D +:10DC700090140BC8C92A2B8B7FC8352CFE71DFD1BD +:10DC8000F4F1102D87DD576F83E3290F947891AE5F +:10DC9000F72CDA277729E7B00F7E737E709B256C0F +:10DCA000C3796E20E400F56F56C55F93F71BF4DB74 +:10DCB0002A91247321742B6C5D500C794F31857E31 +:10DCC000ED60DEA95E8C13F839D5C1D0B4E76417D6 +:10DCD0001717313D500AED855C7200E6DB74F5DF05 +:10DCE00042FE7570B120C3B1CA9DF19713B7D1E759 +:10DCF0003B0392027EEABA122687BB624F34ACCC59 +:10DD0000817CD60896B6DC9404FAD0669534EA0392 +:10DD1000936D243C0FF4D8AA921F5C07F2F441AD36 +:10DD2000560A2706C225DF7F405C0479BA91F9AF15 +:10DD300052BA5E5D727C86CD0E79BFF09B33A9EC42 +:10DD4000BC5FFC9B070AED90371CB9048293F77700 +:10DD50007F0BDB0F5B983C2E2B7EE43AF03B6D3C57 +:10DD6000BF9249C7E74A2C93F8751BE46117CF3F70 +:10DD7000EFBA7936FA9B8316E55688A72909A520BC +:10DD8000FDBFDBF4F7EC4AD7AA20F24F04ECD22017 +:10DD90003FBF36E866F991A779BBC35C5E5A393C50 +:10DDA000D4710AF791870A034BE1DCF7FD7B165E1D +:10DDB00007780F89813ED0F7B796BED881B09FEB28 +:10DDC00015ED8D0ED0F74312D3E7B7953CD301F391 +:10DDD000F2742C339F9F6A5B66D2DB9D6B6E36D9E3 +:10DDE0003922A6F03B8649B9689A940BCCD33A897C +:10DDF0005F83FDBB9596442FF841642007FD0230F8 +:10DE000099781EAF8324C1361231DC5E1384FDBEC7 +:10DE100002F4E3072D32E33FDAD7F3944E7699C14B +:10DE2000E48B4495CAA9FE942BAE067B796DD2C6CD +:10DE3000F6C39CE2D5B01F77B2730681F8EFD963C1 +:10DE4000C2E6BDB4FDCFC20E3CB7257A24DBCB14AD +:10DE5000BEFE6D06EF0C0B9BE11CF30DEFB3F6332A +:10DE6000E67937775138F2861D6130F9523121D782 +:10DE70007153FC86B77EC1CF68796AAC76DE53B445 +:10DE80000CA518FEB7ABA401FCC104D7278B4EAB81 +:10DE9000F98BE9F36FBC9ED300FC3EFF756A322913 +:10DEA0005E5F54E546586F5D4FEEE67AC8E14F89F4 +:10DEB000B06EA3B7D88EC2BADFD32229104FD97261 +:10DEC000230102FA43FBF64F5FF1E2F9645CB7838A +:10DED000BBEF7B00D64987E5D23503608733CF257A +:10DEE000DBCA7F8576B8FF664EB76B686F57F07CEC +:10DEF00036F0D76627AE932E3FFD0D3602EBD55791 +:10DF0000979B106A8C79F8318C5307EA0BAFCEA13E +:10DF1000FDAC7D4D2488579E7C35E8A75DAF4A480F +:10DF20007FEAB18EF7D0FA5DB3662BA0E78A6E0E5A +:10DF3000BA60FC5DB30E76AA98EF4C2A9B68FB9FF3 +:10DF4000F45C8AFB21459E04E659E13B9104B557F8 +:10DF50009BA81F9FA006F96831E3EBB170239E6B6D +:10DF600070521CC0AF90833C3F1DE4F9E9C2B00A77 +:10DF70007839BD110DF3FC3934D2067E69B0A01E8C +:10DF8000B4150A2461E06331CF61826D5E81FBC309 +:10DF9000CB65885F2CEA22EB6710C7783D17E44712 +:10DFA0000F9E1822807F7EB1C2BED75159BC49C492 +:10DFB000A402E7E17B2C7B4DFBBD7AD95DD07202D8 +:10DFC000F4DE46189BFEF75281FA0FA03F75FD72F2 +:10DFD00079C95C5CDF456DEA49787EB1FE759E309B +:10DFE000E105BB902FD0F888F6F99BBAA3C32B08A4 +:10DFF000F8D3F7CD01BAA1FF5D067EF6683F8CF33A +:10E000008433FC6F300E9CB7073E7C92CF673A7E1C +:10E01000CAC955DBEF0DB27D270DF69DFC8D2CCFC7 +:10E02000EF33FB2336AB26C3BEC6BF147FE9BADE8F +:10E03000D0547EDD12F3379CCE99EA3FE692C4F8C5 +:10E0400023C0AF3E36BFBE52F61DC760A96D2FE894 +:10E0500082E9FCC997809E146FAB24979C36E09DA3 +:10E06000237B4B4E1BD6BD21A998EAE71FF39BEA01 +:10E070009BC6022678E178C8D47E514A35C1577CC8 +:10E08000D46E6ABF78226C82BF70A6D3D4BE85AC32 +:10E0900030D55F25DD61AA5F22DF6582AFF17EDBCF +:10E0A000D47EA9D265AAD7F9EA69CE4FBB62E10452 +:10E0B000F3EFD404D0774BAC1DE11DB14E2CBF70F3 +:10E0C000F669CC2BEEF2B37CD3BC07DFB956F35123 +:10E0D000580CDBC17EBB55FA9EA17FA9A23D916D74 +:10E0E000BCE26561D3F382F64E13ACC715B90FFEDF +:10E0F0003DF299AEF774BB39EADB8171F13D37E649 +:10E1000005E0DC5E1BE7BB7B7EB6A4E155FAFCD3E1 +:10E11000C20ACC9F51FFBC14E46CF0B5BC6EE13276 +:10E12000AA6F79BB5716BDE3057EF6046D2BE0FCA4 +:10E13000C3B355635E6837E0667CB6B4640ECA51FB +:10E14000E63E95F357CDE86F67EE4B65CA5F21E772 +:10E15000F3BE20CB373A7D8D59DFEB28667C379AAA +:10E160001A12904FF97EE6201C740139F1E6E1F9AC +:10E17000ABFE606BC9B9CEF9959CB19AF64D97C1CB +:10E180003CE97A9688510BAC4BC9191BD6DF572C4A +:10E19000EB713C7E37A88FDB1764E7BFFA605CF059 +:10E1A0002F60DC1AC087EDDF4E37AEEBCC8CACE3D2 +:10E1B000BAC414EED7BACEB8B0FE4E6BE4BE123A73 +:10E1C0004F35A96848CF003BEF38237E1BE952D278 +:10E1D000F40B97CC46FAE978F5FB183D3E684D48BC +:10E1E0005702BC4020E0F70EF8CCF4E82CB598FCC0 +:10E1F0007167065EFB0B223D25B4DE298E215E4E43 +:10E200008ED7C5DAC96E0BC1F3A0DAD7589EB4C455 +:10E210003DDE55A1A4F751EE3FD1950B794D5750F6 +:10E2200031F9AB2564EB18F019596EF6932F2F6373 +:10E23000F98A7B8FDF85FBA27B4ACCF9B0B56B9462 +:10E240006B20CEBC3FA45D03FDDD130DBF314B49F8 +:10E25000F7ABFBFBD37D9FB46A1A3FB3B18C9D979C +:10E26000CDF4DB03C54C0F4CE1FB69F66333F9BE1B +:10E27000F7D80E94ABC1593687257F7A79DB5FA03A +:10E280003E0FFCD053C2C6EB7DE5C2DEBB16E69363 +:10E29000851F6F2C65F3B9D64AED667DFAFB11BD7B +:10E2A000FE47A56CDFEFB23266B7FB628132D06702 +:10E2B0005B62212C9FAD4AF57A82782E606C6310E8 +:10E2C000F540F20BB0CEEFDB59BEC56FD18A2E33CD +:10E2D000C4A321BE3F42A2C7E0BBBAFBE71536008C +:10E2E0003F0FFA44F65C8C8E417E69F2B9BE9F22E4 +:10E2F0006952ADE9396F9FA7C9AD867EF471EEFF13 +:10E30000BD3582FA8EDBB9811A651FC8C3C0FB4FC9 +:10E310007AE13BB32F97327FA7BF34EE85EFFC2421 +:10E320001FB56FC067D3D8B7EECA7827AC6B37116B +:10E3300002304F71D69731BFA5BE1EC6F3784E3856 +:10E340008F17489FF7A672FBAB12C33912FD7C5E94 +:10E35000A67E7EA9203C5182F1775201BD92C91759 +:10E360009E761AB7D3FE4BEAC504E4956455417E08 +:10E37000D7F30E4BE0DB5ECAE805CBCDF95A77BB8D +:10E38000399FEB0C12FCCEC1A516667CA76180A953 +:10E39000A0085CAFBA2117E06165398DEFF5BCC705 +:10E3A0002C1FCBF37DC8E9B289DB97C19C9417BEC3 +:10E3B000431ECD6371A76E5FA6D37F7A1C395D9C27 +:10E3C000369011A7CD2ACB1EA70DF0386D80C769F6 +:10E3D0000A6F575EC6D6F7202F873ADE32C569BD71 +:10E3E000659E0EC8C3E971DA6D0F355F8FB01EA749 +:10E3F000919BAF37C5690F79508F5D7C9C36C6BE47 +:10E4000037276DF287FEB4BF3BBD9F2B920F0DE700 +:10E410007B06A739F734566665E70738DD20DE014D +:10E42000BAD178A701E8A6B77B92FBF553E31F3D6D +:10E430003E2201689F1907A5DF677AE6414722ABB4 +:10E440005FFD6111A3B731CFC6EE37E079D3F9563E +:10E45000CC8365E6DBFEAEACAE435A6CCCB7CDEDFB +:10E46000502BD2F9B6BF2B9BBB355BBE2D737C3DC9 +:10E47000CFE897D87EDEE8F27D12C42BFDCBE95BB6 +:10E4800079E93CE2832E36CE87BB666ED59AC11FF2 +:10E490007B0CFDB19C596C5F78C4673EA7711B8FE4 +:10E4A00053FE89E70B77C4DA79FE2E8CFEF358B25F +:10E4B0007114BE8B742E2798272F50C316C88FF661 +:10E4C000C53AB13EA7897D37E98A506F5C81F33B3D +:10E4D0004CFE02A33BD9F9DC505C85B8890EA1390A +:10E4E0009534BD2C552C6F581231CBA9BBC32CDFF2 +:10E4F0000ED50CEFBAF9603BF4774F974B057DD101 +:10E50000EF6F1D83F3969FAA04F5C62E7702F57B65 +:10E51000A6BCEBF31D8891E1EE1C982789AF9C0502 +:10E52000FA22A541BED0E197D11EBF7CF302365F2F +:10E5300042264A40DF455204F8C1E58FE343FBD948 +:10E54000024B18F515617ED02C92A8AF81739A20EA +:10E55000C0008F3D556F385F30382BE5CD33D0BBD1 +:10E5600067D16E15EDD88638F66B4FEE210AF4EBC5 +:10E570008B93085D578F2FD002FCEAE9906B61FF07 +:10E5800069F077D6ACF7713CED65FC385813407CE8 +:10E59000A97C4CC483E7C76BA0694109ACCBC5E239 +:10E5A000254A975CB1727E56FC2C909FD47E66D72C +:10E5B000301FA99AED8ADEFF1ECE67DB97EC46BEC0 +:10E5C000A07CA2592F8332D5A9D1710647DF25F54A +:10E5D0004E588F31B206C60DC64947DEF4F33FAA46 +:10E5E000CF9FE20D79964FE1BBFEC2E9FB03FCBB76 +:10E5F0000B4CFD5E10DE3FF0F2F340B108CAC59E41 +:10E60000D86A2C737AD87E0A5941F87E8A213F6EE7 +:10E61000D8A72CAD62796647069F67EE53E6D8E32C +:10E6200047601DC9A53EF41BE3B1288E1320E37893 +:10E630006EC39D210753ED19A3EF4890F911378060 +:10E6400082F560D96DF1A4EBA7D3C799A59EC70E3B +:10E65000586C61FC8E96A48E95C03E92C53B02FB21 +:10E660007A6F5804D433C777E7A2FD0E70FD42C419 +:10E67000782BCC63F3BCC2BDE017EA78E87A665722 +:10E680006C1DEA8D784CC3F9152D9BA8007F03D231 +:10E69000C890E792A97E01FD3110EBC576697BC178 +:10E6A000E90BF49C09FBDC197EC032337CA17EC0EF +:10E6B00085D2E362E93629FF3CEF9F49AFF37EE75D +:10E6C0007F817922AAC748640E7CE72491482EF006 +:10E6D000A98C65717B7854A47C992332BA7CC5C51A +:10E6E000FA2DEA34D3A33492C1571979964C7AF5AE +:10E6F00070BF6E7CD7BC0EB02F3A3EBADD4D97D1BD +:10E70000C5B07EDB63ABB12CF26B784FD2406CDDD1 +:10E71000E26CEBBA84DB034F9B19BFA248E6BA2632 +:10E72000507FB832BEA7C8DC37D3F1AD6B9E104125 +:10E730001FCEB028029CA3F825F79BA6DB07D2F7D3 +:10E7400079FE7FF1C1B355713C97DCE7CE7EEFD205 +:10E750005FF33CFC4B453C2E172318976FB664F7CC +:10E7600097BAB9BF6FE7E753F5E734BE5D510ACFFB +:10E77000C538C6B7767E2E558FAF2ED6DFFBF24A50 +:10E7800033BC6CB919BE69D9CDA6FE26F30A3C9FED +:10E790007FB1E3DDC7FDF521671CF3A2F6CE437818 +:10E7A0009E1EFA33DE0FD2CFF7512FBE7F8E9F2FE2 +:10E7B00080F72BD8CF58F01CAE817E7D66FA895841 +:10E7C000AFD3AFF04B1DE7BC9784CAC59EFDE7D819 +:10E7D000BFB4DFF14B09FCEE41DFBE7615F56800F2 +:10E7E000CFAF0EDA099EFFD3DBFDA1F31A7226909C +:10E7F0007E0E4E3FC0FB56031F1DE2FCF379F12E47 +:10E800001049B7D4F8F9D7F973F3959FCDCF7AF6BD +:10E810001718A7F711690CECD480EF54AFA710B507 +:10E82000E5089C2BDD147CEB18ECE3DD53675320EB +:10E830009FA5AE4C7443BD3310980F71F5D1521B98 +:10E84000F677A7357C14D67B0689E0773BFD4E260C +:10E850006F5B62445D45E5FAE5BA8304FC6F498964 +:10E8600026A13F6730B000D4F63A9220F07D0EF139 +:10E87000133C37E1088E7989E11CB6B58C9F87BEC1 +:10E88000F92EF4B372F93932B2EC2EFC2EE35AFEB3 +:10E89000FD721CF20F06FDF18F90BFA0EF0DAACC08 +:10E8A0007F2767E8732A130340083A706E304A5A8C +:10E8B000601D5491D5FF8AD5E379368A7FAE9FD605 +:10E8C00083DFD3C6F30C2FB1FA3EBDDEA7D7F37CAE +:10E8D000C3D9DF63FDA0DE7F88F5AFEBCD57DB98B2 +:10E8E0007ECDAD607E5C6E85EE77F5A1DF25291AC1 +:10E8F000FA5DB94AF49C7EDC4B3CAEEA5A741FD2F6 +:10E9000091FA0C51F8EE62F4E4F786619F7BE07DAA +:10E910003BC6D7FD4DBB4DE73EE48AEDC4F83D86CE +:10E920003DC4F21AD3E19169D70C78A13DFBA4F460 +:10E930001FD879CC27EF36AFCB137767AC8B5A66ED +:10E940003CCF30655D3E3DCFBA9C38CFBAAC3FF787 +:10E95000BAFC63A9C2EF13F95DD6F5E97D651FE640 +:10E96000C306EA589EACDCAB207D5FA1F4037EF5C4 +:10E97000F86C2BE0BBBEDE63AC5D1FB4BBCCD06ECD +:10E98000D641964FF3B3763402F4B238F773C7F535 +:10E9900068EFC6CACAB776C178403FB66F80E5D186 +:10E9A00012A6D7458FD486E7248304CF89DF698DEB +:10E9B0002C2C2B82FCEF0A158E43EBDF7BDA8DF9D2 +:10E9C0004892CE47669E5F749D7813B6B3FEE8FE0C +:10E9D000DDC59E5FBCA1ECE2CE2FEAF9DC3FF41C62 +:10E9E000A39E0FCECCFF66E6875759D9FA343EF482 +:10E9F000D6751B3F47DEE762F5F51F214F64E2A79E +:10EA00008BCE53FD91C61D728EA19E70821DCD9B33 +:10EA10006A4777955DAC1DFD3BB4A30353ECE8D882 +:10EA2000E7B2A3053E6A8B1AFF78F3ED87FD31A3A9 +:10EA30003EA97B87E9139E773F1F3D5EF81FA6C75F +:10EA4000C5F26981FF0FA65F56FF7C81D7663A87C2 +:10EA5000F6B69BE50D17C019D30BC8472F83764533 +:10EA6000B8AFFE5E99615FFD8F154F7EE1EC2F30F0 +:10EA7000BF98D3C4CEE5EAF904BDDDC77C7FC45E90 +:10EA80006EE1FB242C2FB28BE745CA7CF12E763C3D +:10EA9000D69CFF285D9D11D72DA37159103FA5C7A6 +:10EAA000B87F3BE43B28CFD5758CC8307E7146DCFF +:10EAB00097191766C6797FACB84D2F2F347E0B702F +:10EAC0003AD5B5E971A66C017F5DCFBBE8F44AAFDA +:10EAD000B7F03F9A77B8503EB8B3283CBB1C92B60B +:10EAE000ADC41FCD4B3F9F22A7B08F430DF401074C +:10EAF000590DFC9EB9AFB6A09CCDBFA19C9F475DB0 +:10EB0000C7CE913496333E76AF63E74B2E2F574CEA +:10EB1000FD6F5FB2E016B8972C6E61DFDBACE3F7F8 +:10EB20006D920E1BEEB7C5F9BD6F32BFF74D7F2F4B +:10EB30006E6772376431C7D3B7703C6EE17CBB3D02 +:10EB40003656CCCF87E07EF3500BC17D640F09ECC5 +:10EB5000B1B071089E33938905E2CB9B003F83FEE1 +:10EB6000923B6C16D8F71E5A4C929087DED1431216 +:10EB7000F05DE6508EBC11EE5118720B018DE25D16 +:10EB8000D37E741CCE93D4ECF4AF22582E60FBA439 +:10EB9000DD667F74E8FAD9B8DFE551898A7EA2AFD5 +:10EBA000D00274D5C75B5A6E37D167F23BED93B98B +:10EBB00049C87B6EEF61F86F7FBFAE14FCE41DA502 +:10EBC0008152F093297E78DF628D7AF531DCF7F39C +:10EBD00015E2FAD7A814AF79E7C76BF25C3F7FEF75 +:10EBE0007C7C33E9DFC01DCF8673C1F158BCF48350 +:10EBF0005970DFD770E9073970FF5702CB03B1278F +:10EC0000B01C8C8D60A9B7CFCC77D668667866AF1C +:10EC1000199EBDD3AC1FF243D9F3A5BADFA58F73FC +:10EC200020F622E2158F25B1DC173B86E5606C0CDF +:10EC3000F149C4C611D6DB678E938967265E997841 +:10EC400064CE43A79B4C26D0DFB77179F210D9026E +:10EC50007EFD4FDC91619043BA34AF6DA07509ED34 +:10EC60001319D63771F69A318893E221CA77F0CE1C +:10EC7000E2142E51FEEB760DCECBE5ABEC3CC9A8F1 +:10EC800026D8C14EC7358F03F8B5FEB9F526FCFD71 +:10EC900012B1837F3FF790F9F95E95ED271510F6D5 +:10ECA0001CE70F07E1BD8C0F5CCD99F348613CE692 +:10ECB0003A5348B482E9F5855E8EAA1BF15CFCB636 +:10ECC000103B57B24D15EC706FDFB6AD02EE23D19D +:10ECD000E778BE05F675E09C0969561186F6708ED8 +:10ECE00059A7937E4F041CCB017A256232D172A7BB +:10ECF0001FB7E6AAC05DB83F543F21DD64881FB747 +:10ED0000853E91D8BD5529DC2FDB16AAC5F323DB40 +:10ED1000BA53EDB07FA2116904EE8D9117D76E87BB +:10ED200073CF745D5E2F473B3EF1327C579A1F6272 +:10ED3000F7AA3CBE95AD4FFD7336A218E833F790A5 +:10ED400019D6E94816CB788E251FBE836B007AB39F +:10ED5000763ABDF3B77A04FC3EF63EA2C0F7FBA4B8 +:10ED600039533ED97DAE3540F7F910FF34F1EF4805 +:10ED7000681C34234DA79F5AD55F001F3DC9EDC4C1 +:10ED800053FA7E3687E3BC4CF0F2002FBFCFDBEDA9 +:10ED9000D3F71F8F2DCF07FA7C8FC33B78A9CF679E +:10EDA000EE7EC1F4FDD9BCE71CA6EFD3F2439E8CE6 +:10EDB000FB97CA4CF5355AADA9DE7F828D37DD7AD7 +:10EDC000CEDE691EAFFE90C304CFECF564DC4F9439 +:10EDD000407AF91F2E333D2F68378F3BDD78DAB24A +:10EDE00099EF82BE7535DB14D8DF7035B3BC83ABC9 +:10EDF00099E9536294F75A13FDF32B8AD2F4D6E9BA +:10EE000095638DC7671ABE531884EF18F2D2EB4A88 +:10EE1000C470C0F81DFF14390A31398A3733398A72 +:10EE2000874EF5C2779CF114BBAD3BDECCE4B8E76E +:10EE3000F2FF62FB7BDF4961FECF95FC18F7F79E7E +:10EE40008ED139CD817597506E5CA11489D0E7F9C8 +:10EE5000E2C446B06BE4255203FB5BF912D904F31C +:10EE600026490AC33AE6918D086BBC5E9619DCCD43 +:10EE7000EAF7811CCE49CFBF36A408909FB80CBFDB +:10EE8000C8A771E7C38D83C0CF0ADC90698091A5C4 +:10EE9000A9BFD24461F0575E3C9BDBDE144CEB39DA +:10EEA00071C3143D87F2734F2B5DBE2C7A89D2FD5E +:10EEB000CA8AA634DD75BABD18E2F91AF85708FEF9 +:10EEC000A5BC97DDEFCF6097CAE07005CBD751792D +:10EED0005F5AC1E41DEFAD7D31A5CBB9596F66EA2C +:10EEE000D14CFDB90AEE5C64E7EB98BE540515EC15 +:10EEF000AE8BAC4DE35D8378DF0CFCF24C86BCE658 +:10EF0000C38D3854CFE59F142C40AC8657342BE08A +:10EF1000A1CBA3D71DF93AE0D9F05C4270D175F1CD +:10EF2000BF186F8569FEC4ADFE293CAF7F6EB989FD +:10EF30003E730F99E102C2E04C7D1F7849209A612F +:10EF40005E359A836826BBE731C193E7986371F415 +:10EF5000EB0FC586313EA0761FCBFD45EFE0650C7B +:10EF6000780FEF22B8876A04ED9F830424282F09C5 +:10EF7000258E40D8320287E7683F75235A2B8433A9 +:10EF8000737AC39C49089EBFA87147D6C3BCE4618D +:10EF90009B06F92A598D639EA8C7F367A3F0FB016E +:10EFA000D49F0ACCA15D784415EF65223E9697B5B3 +:10EFB00027FBF05E45BB4A1AE09B3FB81E12FDCB13 +:10EFC0009DCCBF2C5D492CC67B28641F696179F9F3 +:10EFD0007099D16E1CE07EE6C10D7172533DDB3736 +:10EFE000AFBD14F0E67E26DFA7A1E1219E0BDCE495 +:10EFF000F4E2FDC03D7B6C2DEC3EEC31B68F1C2461 +:10F000000D2037B29464F79F07284CF196F346F829 +:10F010007DE8BC5E4E30D8CFEA737C6102F7FFF525 +:10F02000ECB9FD3D981FC55399533375FF5E1653D8 +:10F030006C9C109357599A60FD34337995F392ADD7 +:10F04000088FF07A798CC1CFB17A2AA908CBBDA4F8 +:10F050000672973ABDE794470E019FCA71DB494695 +:10F06000FFB0C0EEFD66EB13704746B2ADCF9C8794 +:10F070008936831ABD4B0E31793BC8CF2BCC7D82AC +:10F080009D5738C8CF2BD4ED27F89DB40EFB138CB9 +:10F09000257598F6431443BDBE2E076745CA4CE755 +:10F0A0001B387DDC2AA38F9CB45B803EB24A2CA027 +:10F0B000EFDCE28880FBEF87D87CDD524280F8836A +:10F0C0003CC1E8E1CE8BB3FAFD1C9635062758FB10 +:10F0D000396A14F5DBC169F2DCEBB81EC90F51794E +:10F0E00030C8C99DE59177807E978E50F930D9ADB3 +:10F0F00084A99D9FF3E7816101BFD73CB0B3F69C23 +:10F10000F7DBFE650C9002BD2061321BF4313987BC +:10F110005F347313B98BD99DC07BE057F62D526ACB +:10F12000D1BE25DFC573362E55690439112A591C05 +:10F13000D733F09F684FF2459627CF0B3079C997A8 +:10F14000183CA39EC3792C1E74F8392CF37B360A25 +:10F1500033E42B44E50BF7F3E25EA3BDEBE3F233BC +:10F16000D3435618CF65E978904A7D3F97F19B3C91 +:10F170002C68F05DFC8EF2C867C877937C49902FAD +:10F18000854AA67F9F2A0F0B95706E6E98DD973F7C +:10F190002F38D10AF35C384E14D8A776562AD8FFF8 +:10F1A0009C7AED08F07DD3187B5E5B18B0029EFA66 +:10F1B00038B28FF55F5C117156A21C6CFE351B2FA7 +:10F1C00085E720E7BFCEF87CE109C6E77D8B189F75 +:10F1D0002F18677CDEB788F16DD371C6E73A1C1C27 +:10F1E000637CAEC3B41FE4731D9EA4CFA2B837CF17 +:10F1F000C0073DB3768F9F9BCFA356E4EB139C8F44 +:10F20000A58815F9789CF37D5E98D51FE7B0AC32E0 +:10F21000788CB59FAF06ACC0E77DC0E7946E07C59C +:10F22000F04F802F0FEEF45834831F2355327E3F6A +:10F23000A88AEDD9E4619CCBC3CFCBD5465807FD56 +:10F240005EB4838B6D2333E838BDB5FD812360E761 +:10F25000AF7420DCB76777E20E281FDA3D720745EE +:10F260006770CF87080F3EF421C25B2AD97D16F95B +:10F270003FCD49CC80EF3CAAD67D04DF67F5D64868 +:10F28000F87E6EF59AE11500D7E68DB0B45844C00B +:10F290007DF4181986BCF86C312240BC3C5B8BE3D2 +:10F2A000BD67C44BED047DCF55C1D62D7798EC8555 +:10F2B000EF9672BD64B8DE20A72D957A7E4729812E +:10F2C000FE26FB2122F23D911BD1BED171E23E838D +:10F2D000FF715D25FBBE38DFABE1BE97AD82F11754 +:10F2E000ED3F5E9FC58E6E0BA696A27F45A4091AC0 +:10F2F0006B4CFA55937E60701F7E7FDC1F3C85DF70 +:10F3000053F9A504BFA785F97F2D4DA7F1BCE06097 +:10F31000F0343B2FE867F1D5DA26165FCD82738D86 +:10F32000346E7336537FC4F03B3A0EFADC788EC0ED +:10F3300039D54FF95FB07E8F713FE5615E56AF9F63 +:10F34000E8057B53478D3CE0BDADF9542FDA0F8BB8 +:10F350003402703E49B43A20BEF9368DA71493FFAB +:10F36000721FC85155546B857DBFAA7571945BEAB5 +:10F37000BFDC0FCF1D3BA91D9937D58F71EC1C51F8 +:10F38000C1FFCEF46774FFC5B193DD179CE9DF3888 +:10F3900076B2FB83674DC6AD0976EFD9CE94CAEE3F +:10F3A000172E34CD7F920E6D89247C3FE26AD9F905 +:10F3B000DAD5602F49C0A2C27E1DAC0B1DAFDCCEDA +:10F3C000F3554BD9F78AF9445E0A7EBEBBE9742F28 +:10F3D000B82FBF793F17F5CE9E3C62928F5D5C9F40 +:10F3E000EDD6F94A0E94C23A3EEF561F84F9537A8D +:10F3F0000F439999EF1B089E32FDCECA008F23D48C +:10F40000F05E769F6540C673E3FAF7C633BCECF74F +:10F41000B31EE7E3DC69551F87751C0DB27862C027 +:10F42000CFE28981D05BC82F039C8FA6B31F0E7ECD +:10F430002E5687FBEF7074827FFD5D7E5F93C391D4 +:10F44000C0DFEF7A968FF7229FE78B1CEE5DF6CF39 +:10F45000EDF83D018DFB012F67A831EBF7040F722A +:10F46000FD3DF9FB1121761FCA53E591FF83FCB1E5 +:10F4700046447D0CF606FD908A42939C649693F771 +:10F48000C575242C705E4ABF57D5AB28A3B8BE21E2 +:10F49000D68F037EBF250FCF53B2EF06FDF25ED8A5 +:10F4A000A7F446D8F957478B8CDF63BECDF59E3B5A +:10F4B00034A102BCB932325669C81B3AFC2398E722 +:10F4C000D3EF1B3D1F5EDB558FBB8D42AEA522FAED +:10F4D000FB1E91F159BE98EAADA574F24AD15F6C5A +:10F4E000003E53D9BD238E3A9F1BF0F5E699F3B049 +:10F4F000296E2F4FEA7C5548F9CA897C750AF0A31A +:10F500007CF5CBEC7CB5C36EE6AB913BB2F1954A92 +:10F51000CC7CF5AF69BEFA57235FED6863DFEBEC97 +:10F5200008D6DA819F76B4B59EF3BEE1E9F80A34D5 +:10F5300009E46507821BD18FDFDE5686DF73C1F9D0 +:10F540004063DE89FA01A4CA00536232FF94D37F7C +:10F55000928F78FE2493FEBDCBBEBB14D77B25E7EC +:10F56000CB95D9F9F214F065D385AFAB6BE518B143 +:10F570002970CFAF82EBAAEB0DB122525245FB7935 +:10F580002494588AF1B74050DF3FEC27C8E739FC94 +:10F590007B1DB5C36201BB3C9D5C57554DD2BF0A74 +:10F5A000FAD3F30406B95E3A07E090887982016ED7 +:10F5B0000F3E6D26F83D99BB497C6D03D8D7E827EF +:10F5C00061B89272BAF58063EDD146B8CF90A8B910 +:10F5D000B48CB7FE8537722E3DD1B6E326D0B70F77 +:10F5E000ADDE87F7A16C3F94A3407EDFB1F6D47205 +:10F5F000784EE3EC85B05E43FEB13E8C570481CC7F +:10F60000B892F2FDF5C28DD49D3D6FFCAACB3B694B +:10F6100066F175A6BE77F982EC3BBB8C3CCDE4EF7E +:10F6200022713EF076C8B07332A90FCAD5C428C87B +:10F63000B32B14477DE09D461FB8DB1228178E556B +:10F640004C1F7CA58AE9032FD7077255E4A62A939D +:10F650003E902F4A1FBC3D9FE19D0367C272516ED1 +:10F66000BF0AFD65CA6D66A9DB83017EEFDAC1764C +:10F67000C5740FDE3ACE2F6285BA12FAA37CF80D5C +:10F680005C87A2437D609F89A8A07F3D6449B1FB50 +:10F6900017F6307D03FC08BF8FA3763C83F7FA4D45 +:10F6A000A70FA29C0E941FA3D0AF1C62FEF3972B52 +:10F6B000236B613C7935BBDF4A56C7D06F26CD63DB +:10F6C000B87ECED5D9E54D26132ADEF7BCA270E967 +:10F6D0006C8A9F7BD569693641FEF90EF4E7BA83DF +:10F6E000F22F01FF5ECFD35C5CDE637498C9CB5010 +:10F6F0001B9397A16101F7591E0A32F9000CB4055A +:10F70000E9DFF379A86D5FF260909D4387EF920F78 +:10F710009EFD5E12F4F241CADF70BF8623725C83E5 +:10F72000DF5393FFD68EBF07E3587D7A39DEB7CB20 +:10F73000D75DE73B713DD747C32C7FEF0866DF2FCE +:10F74000B8507ED1FDC4A83B9C00BAAB10275D8A9F +:10F750007CB3B72A4B3E7230B44336C69583B6703D +:10F76000209C65FFCF45A8BD84F83028E23AEA72B4 +:10F77000F24855F829A47F88FD6EE9A4BECAF44377 +:10F78000406119F8E3B9B4BE7A0EDE2FAE081F4609 +:10F79000FC7CA79F38A85CF87C1D1D0101F4E94C96 +:10F7A000FFC82DE82F0B5214F4A701BF23D0FFCCC4 +:10F7B000ADC93EF0472BA93F0DF735E458539837B4 +:10F7C00025F7F37B1E29BFDF6888437FC5F997CAF9 +:10F7D000C731783FB33DFC660ADC4F67AD677A40BE +:10F7E000ED684812833CBC3939BFF09B55E8BFE84F +:10F7F000BF539A3A160B023F08F8BB65B444FFDBCF +:10F80000017EB61E67303FFBEF61DC44C639A39929 +:10F81000DA04E6C36AD69123706E48CFDBAB246965 +:10F820009F03F9A07611EFBBA07EF549783F7FD604 +:10F83000FE23D06D5DB72648282FEA29C0E77CF269 +:10F8400021AE1FCBAA4FA793CFD1B5CFBE0B71E886 +:10F85000431D04EF93E9F9E6C1A5808F63AD402015 +:10F860001F5790EC43F92A582DE03DED8FAC66BF51 +:10F870005332DD3A6FE3F98CED3C9FE11027922281 +:10F88000CB5F611ECC2191518C5355962773E4C9EF +:10F890000C6EE3F5B282DFC99076060F403EC4F0ED +:10F8A000FBA1CE8E14BBBF55F524F13B8466C1F499 +:10F8B0007B16AE28FB9D323D3EF0B439CCF5F0F11D +:10F8C0009E019EFC1D32DFDDED603F257FD80FF9E4 +:10F8D000CE37AB239EEA26BCEFB00BE23D5216407A +:10F8E00079D47F976989B5391FEE4D8683116231CE +:10F8F000ED97E7A46BAB99FFE654D8F74AB60E1222 +:10F9000048287065794483FD6A69350924099EABEE +:10F91000216D39304EB80AC69194B8E9779F32E923 +:10F920003AA79AF1B5FE7B0D440CFBB3EDB7E8F2B4 +:10F9300055ED0ED75517313C219EDC4248D6F8FED6 +:10F94000CEF2964BAB315FAE1E83EF6437D710DC3F +:10F950002FE93EFB2509F61F36CFB2619EFFE5EA8F +:10F960003D3774F9689C40F1EEC0EF6B6849F1EFE8 +:10F97000CE1BB905F60592D5446B6BC6DF3F6D070C +:10F98000BDDA5A9DBCA190E2B90598B78C904DD5CF +:10F99000A96DF8DD35879103E8DFDFB5EB70EA8606 +:10F9A0000B799FF0FCD10FC4C8D580B7BC46E2F9F3 +:10F9B000CA400EE8B1B7F8791EEF1AD22D1BBEF37C +:10F9C0004D72FA79791ECCCBF35F5E7E0EE276BE85 +:10F9D0006E77F33256CDF440E94AF95DD4875493FB +:10F9E000E2FE7D4E027F5748AB63F7EE96AF49E2E9 +:10F9F0007DFA72B3CCEE6F2513687F3C2B993EF9EC +:10FA00003AEF87FA135F83F570069516B8DFC6AB39 +:10FA1000527D06FB22ABE52E886728FD58BB3513C7 +:10FA2000781F9907F436C4DDCDACBDAC32FD47E399 +:10FA30009455306FF7CA090DF8D2D3CEE214FDFD0C +:10FA4000F8372955F369C9E950BE86F9397207F3C9 +:10FA500073747AFC6F4E8F1F5585BF8574E4F65C16 +:10FA6000EFE77B55E1BB187DC7349B01BF47A0FF83 +:10FA7000CBD2BF9F9C39FFD2956C3C171FEFCFF9BB +:10FA8000386D55EA9FC1FCF57E8E5446BEC3FA67B9 +:10FA9000F375AD0C74C195347ABD5EFE9727BC1129 +:10FAA000DECB5F93C276FA73031F6CA92E9A9E0F6A +:10FAB00032F95DE783F26AF6FD79F94C55807BF700 +:10FAC00086EF6D7C1CEE5BDC1EB16D0D50FA1DA83F +:10FAD00066E7CBBFEB26B7801C0C6FD0DE857916AE +:10FAE000B4CBB5707EA420F9833BC02F2F503DECE2 +:10FAF0002E42FDF7E0400FD089C7DB989FFE493BBF +:10FB0000D90B799BE1DFB1EFFF86AF27CF6C84750E +:10FB10004BD65960FF617803FF5E18F4A6F1772099 +:10FB2000337EF7E2A56AC564D73D1D4C4F4EFEFEFD +:10FB3000857BE463C84FC597D814B8AFECE525EFD3 +:10FB4000BC06EB30D4655301EFA16F7608702FEE41 +:10FB5000F61601F348DB37C8381FEA3FE37CBCC91F +:10FB600077715FDF7BACC0341FF87C8FFDBE9DFCDE +:10FB70006E3ECEBF18ED9F97AA33F81D0C1DEF8285 +:10FB8000E4229CCF0E3E9F697F172312B0187F1787 +:10FB90002309F332F8D999BFEFB0392782E7C83388 +:10FBA000F5D074FAECE7E52D7F536DD093E7F3437E +:10FBB0002EB81D515D96627D4B0BA65C23C0FD10D7 +:10FBC000FFE1B5E23DB94BAC79B8DEAEF5EC7C4F68 +:10FBD0004D87EF08EC7F92489E0A7E8D8BC847E0E8 +:10FBE000F70AAB5BA4090DEFD555F0FD72FE7E4D13 +:10FBF000AFF97ED8CCFB62CBC9D65F433EAD3AE3CA +:10FC00005ED872B81FD705F5E6FB63F5DF6FD4E366 +:10FC1000D5CC7965FEFEE3BF5567FFFDC7E9E8A2D5 +:10FC2000FFFE639EA8FE07C8DF85E66FE006A3DE41 +:10FC300020FECE239EA370298A2ECF78CF5639A7D7 +:10FC40006F19753B451AA7FE3F84B140FD00800047 +:10FC5000000000001F8B080000000000000BED7D7D +:10FC60000B7854D5B9E8DAB3F73C929924933079FC +:10FC700062E29EBC431EEC3C084111262F0D8276A9 +:10FC8000F28280018710639090335AF5A4AD961DDF +:10FC9000823452E4C44731B6D83349C1E658AB8107 +:10FCA000C616ADB5C3B3F6D4B69187D24A6B042E4F +:10FCB00022624FEA915B7A0ED5BBFEF5C8EC3D9906 +:10FCC000106C6DBFEFDE7BA65F5DACBD5EFFFAFF23 +:10FCD0007FFDAFF5C8BEE8D2A8311B429FC26FE1DD +:10FCE000E454ECFA416155B1266FF30B9E3C847FDE +:10FCF00055F6B3D90809AED3E853EBD4ED11921001 +:10FD0000D483DFA72242460752AD51084594E00F45 +:10FD10000E843645205F9E13219B8290A504F2A39A +:10FD2000DF87BC158F61D7E4C3711F098E401EF7B2 +:10FD300083644D391F6F53842BC1A699CF43D137AC +:10FD40009E30E37A620292B304844CFEB5488EC0C2 +:10FD500069820779F2F177695415705FA8043977E1 +:10FD6000C9386FF1AB02C0A6E03C82F90ED37C1E0D +:10FD70002BB7FB683E9B961B13DCA81C8FB7E92FA3 +:10FD800062D3705E88F9CB0684E6C0EC55846211BC +:10FD9000AAB67B37E1B150359E5E4F2142F1CDEEE0 +:10FDA0004D80871A3BB28BD150CF47EB5FAEAF820D +:10FDB000EF5F5884EC5BA203F99BBE8C10E4A3AB0D +:10FDC0005C06C85BCA0C3E11CF6B5B595D94E70AB9 +:10FDD00074FC970D08F9B3107A6C8305F9CD93CBB9 +:10FDE000ED22F202FC8F567E159DC2FD986D7D09B5 +:10FDF0007538BD5516083CFB32EE4F003E79B2F225 +:10FE0000DB24FD5A465B02C609DA9CB81D69C70DA2 +:10FE10009391CB17028E3DAC9FF44B775ADC18FFC1 +:10FE2000DB120C35BE50F842DDA4DE36CB98C56E31 +:10FE3000FBFBCD6BEDE7342FA3532074DD66E9B3F4 +:10FE4000D871BB87D33F2F783BD1A93C80ABD30F70 +:10FE5000FCF2B5C4CC54331E4A95E978BCFEBEC44E +:10FE6000B684318037F9FE0404F027B7E9E0364D57 +:10FE700001770187DBFE8F81BB7F5AB8EF479E1069 +:10FE8000FC6006F8437C5FE6A4F4DB96D047F8E418 +:10FE9000EF0DFFF0E70CFF49D6DF3CD94EE72173A9 +:10FEA0007E370830EE450FF28A8553AF17FB7C038F +:10FEB000F273B98AFF3FA3261CF92D817C6ABA3BF5 +:10FEC000CA9D3F353ECE337C4CB7BEFE00F530BEFA +:10FED000CE01DEB2A0DFB1CDD761B97311A1F12D92 +:10FEE00018F4BBCA0CAAB960EAF677197D71F62B33 +:10FEF000F4BF6E48D4CD633A78EAE55482B77FDA2E +:10FF0000AB6FB7D667D5CD9FCBDB87D3F5F8E47859 +:10FF10009E44FFCF099FD3F1E1B4F84CC7F88CFCA5 +:10FF2000FCF0391D3CF36499F0DF74F80CE6CBA9C2 +:10FF3000FAFBFF952FD75E251E83F9F1EF8DC7FFE2 +:10FF4000DBF851053C5EC5FAFE1F3C5E199EFEAB18 +:10FF5000C42397934326D40EFA2FEBE97B8F2CC250 +:10FF6000701FAD292E1671174872E5D763FCBCE2ED +:10FF700034917AD886760F8718F715A68F8FD454C8 +:10FF8000AE07BBF4A2DB8AC02E3D66507E5982E9E3 +:10FF9000A4D6890AD8CBC1ED8E30BC7DCB194DFAE1 +:10FFA00047C8153107B7AF3B2E166D09519FA7A85B +:10FFB0004633AF54F86F78208FFD8C2348AE30E085 +:10FFC0007ED463A26F970070154784D2CF9CBEC7C2 +:10FFD000DCF57F1B7DDDE2E72A6FA683678BF36A82 +:10FFE000F5601FF33F5C02D065E8ABD47FC08E891B +:10FFF00011EC8ABA936655C4701F874F8908BD24D7 +:020000021000EC +:10000000B90F3A71BF7535854618FF88113501BDA6 +:10001000B11BE782F62DDBB206B7607CA2867A526E +:10002000FF75A7DE2E9AA00FE72B03E62B1BF839EE +:10003000B271B5663E8E5403A3B79A0C708C985C6F +:10004000B9DF07BEAB332B83F8ABB97EC9D7C14745 +:100050007C7365B460D6F0C17B6CBCD2666A578D88 +:100060009CF01A0D9A7EA554CA87E6FA8E956321F4 +:10007000E87D9AF1E9B21A81B4479227B94EB3FEEE +:100080002353F5E5C1ED3F764692F237058A97E0B6 +:10009000F2FF60FDD7355FB93D6A9881952FCC5F3F +:1000A0004909257F38FEBA9D9E4B408F13829A7C6A +:1000B0003FACA36F8429BBC8BA1C4DA98B08E001D3 +:1000C000496EE2577E61B11CB3A590AC5B11E86547 +:1000D00012E58F20CFE1E2E3C6E07209D79FEB4241 +:1000E000DE6E5CDE625056A1B490E35B52AF30FE30 +:1000F000C43C2457398C37A313F357E1E479F1FE5C +:1001000078FD637FAE5C0CF08E1C31D8373AA7AE19 +:10011000CFE55266BF9E7F7252A95FED00BB9DF096 +:10012000A79ADC1411284F4B0D23ED3F2B5FBD0523 +:10013000B0E07E339F508D32EEB709F33DEFBF4EF6 +:10014000D3FF28C3E735207B62010E357C16C4112E +:10015000DEA2726E68704B7228797394F91F6F3843 +:10016000B3497BFEBDC15D7EC85142F82611E4EE65 +:10017000C8919B49FB656CFC21939A5C08FC6E520C +:10018000D6BBF3AE7E1E1CDF53C9118EE791136EF2 +:1001900023F831790D02F1171B1BF619D6E3748091 +:1001A000ADDF77A1AAA69FEE5481D1C7D313A6E0F5 +:1001B000FAA9998FF66693F58ED07508DD3F38EB76 +:1001C0005115F872D30C22271A1B6A499C23B38657 +:1001D000C639464C589E60F88FDF10E1DB08F2C448 +:1001E000E22ABF0FE73FFC240A6D5102726BBD4942 +:1001F000CE04BEE4F2EA25C9B33C754E406E4D9282 +:10020000539BEA193FCA997521D7D546D22FE7AB40 +:10021000215F5DD41A0D5F3D966AD2C9B337997ECE +:10022000381AE437369CA07EF58889C66F7EBBC835 +:100230001EBD91AEBB6E58275FF8F45A01E6F11867 +:10024000E3D38BBE23CF2343001FEB076765A2D404 +:10025000407FCB9AF4729CCFBF718955FF9DB5CF7B +:10026000165DEB605CB4D82CEFC2B476D42C23EBD3 +:10027000FFD3C5C80EE54326F7C608FC3DB3E18FA2 +:10028000F79271595CE943D3681BC527C57FCBA0A2 +:100290006D600BAE17DB33769F1BCFE7639B3B2A6A +:1002A00046C3B78FA4EAE53BD7D7500FF4599D2436 +:1002B0001B43E9B5FA1A3124DC26B37C562B67823E +:1002C000F930351D91B8E0C527C27C00D772A41A59 +:1002D000A1FE32E4BA81C23D6E04397192D185B774 +:1002E0003F89FC1173413ED588443E9DF4D647B505 +:1002F000E079341B87238A70FA5D26D7DFBE57ACBE +:1003000001BA9D63F3484D1F3D545A42F4F845D05D +:10031000E3CD3EAAC79B3BC477B5F6DA4AAF7E3E33 +:100320004326EF914530DE57E978587EAD077CBE15 +:1003300083EC5ED0AF47F0FC89BE75CF24F1B9A342 +:1003400006F99112B047DA787DCC2A710879E83F36 +:10035000D1D266E59112FCFD27A94E02E79A275CEF +:100360009BC3707EA3B580B41B7B4B2C12D1D4EB06 +:10037000D8F380A8D3FB994F84EBE02D6DE2FACE41 +:100380009FBC4AB32E2232AC04EF4B1B42EB2B5BDB +:10039000868D941FFD446C0FA5EF5233285E1BB76A +:1003A000866E9F9A1141CBFB849071A87BD2E9F8AD +:1003B000481A4E06BA363685EEE7A934AA374FAE4C +:1003C0007F6FA5CB0676255DBFBCFCEB69148EF56F +:1003D00069D4AE383A78F3E104A04FA760CFC07873 +:1003E000FC306634136104DED671B709E46A1BABD6 +:1003F0005F20BB4F833C5973A2C29408FAA8192905 +:10040000821C900FC1707CC0EC9680DEE17AAF2F29 +:100410000CF41EFEE7197311A9A246C500DDD5BB79 +:10042000802FD4C1703BD8A1984F7E09F4F4BCA5AD +:10043000B76FFFC4F8732A7AB66ED5DB75EF807D8F +:100440005B12B06F8F9AC67F09FC7F14F35737F0A9 +:10045000D7E5E2FC5A8DBEE276EED125C5844F2F5A +:100460002EB11A802FA7E2A769EDDD25E2E7EACFDA +:100470001C5D42EDDD771E288E6809D14E4E735EFD +:10048000957FFDCE0357B69BDF617838CDE439E721 +:1004900023B0B75B34F4CE49D3CBBDA656FDB84BE1 +:1004A0009BF5E3F2F571CCDD130E760A863813F86E +:1004B00099DBBF6853F1347A98C6BD393C587E4801 +:1004C000944ECE41D149FD17C0CB75697A3E099E45 +:1004D000CF5103E6039033DF96889CC9D8BADA90EF +:1004E000284FE6BB1B83E677B57CC7FD652ECF831F +:1004F000DB07F8EC6FF4A7FE4EFC3535FE7D57C5E3 +:100500005F7CDDDF260D1BE7E55179B216A763A9F5 +:1005100016D27E2C5526E96D58BF021DB1A5585044 +:100520009B0FF2281CC1BE91FA43AB2F03D3F358A3 +:10053000DDDB995A787A183D1AFB761F4A40C007CE +:10054000BEBE58A0E3FD22027BF27727F63C04F9F9 +:10055000F0370C76904F4B9BCA899F5C7A0CEB0569 +:100560009C57D3A2A99C6D586DD4F61BCCB78D4176 +:100570007C7B2195C69F03FE03B21339C6E6D9DA08 +:10058000577818F6DD1A3B1E9D07E3B46EDD67CC85 +:10059000C1DFEF49A3F3FD629A4CE06E96D87C2D43 +:1005A00078BE58EEBC0DB20EE6FB2581C827248D1F +:1005B00019B5F26895F7BDEA50727C0FE3EFA79981 +:1005C0001C2F903DFD69C44F749378CF875FA6F0D0 +:1005D0003536DC2DC03C73C126C0E5790C0E3E0FCC +:1005E000D362BA6FD6123E7E2FD80D13F8ECA4F862 +:1005F0007CFB44DD43B12553E3F3D9A07576B5F810 +:100600003C36B8828CAFDE8CEC193A3B37D9077E8A +:100610004E6E1AE50F8DBD2B00BF737E78FBEEF793 +:10062000567A74FE9C3D1AE69B2ABBA3808F5E4DD2 +:10063000A778793C02E9F61B7FCBD61D5F9F27D7B1 +:100640000A7D601FE3D437237272BDA9D6C10A1692 +:10065000DF19BAC7DC3E1862BD18D2295EF038D562 +:1006600080CF8B7D82B2854E5F67CFAC39815E1DB6 +:100670009335F6D954F65A03F59702F69A2FA20845 +:100680008FFB3B86FFDF82BD96A7B3D71E2A7584FA +:10069000B0D7DAB1BDA689BF04DB6BC791FB963931 +:1006A00030DE123ADE3153DF2DD0CFD1AFA615A9FF +:1006B00050DEF03891AF17D9B84799DC3EDEA0D7AD +:1006C0000B1782E4E6247979421F5F9C4ABF5C0CD9 +:1006D000E2AFE9F40BB6E79341DE1D1F685E791FB8 +:1006E000F0F140B892214FA6CF68BAC8EC9F70C213 +:1006F000775CDE70BEC3FEE38723B8FDF117139568 +:100700008D32C8C5CA72E86FE8F2B58288F13954F3 +:10071000676D073B6D88B5FFF01B3944FF0CF90C82 +:10072000541F75607D84413FCBF880CB093E3EA7C6 +:1007300013D747D1E916024FEBD6778D329EFF2AA9 +:10074000EE4FC3CF01FD270E403CE96D039317CF59 +:1007500044F87639A95FA6C5D7CC743DDED7FAF444 +:10076000F80AD653BFF1A54EC4FF329C81F1D6F4EE +:100770003907B768F22BBB9C349E85283F9CFC97B9 +:10078000B4A22D72408F0DF92AF25F047EF35A89CC +:100790005CF8ABF599EFF38DFF027EAEA4CF9AD251 +:1007A0009D57151F3C8D500DA1C7E5E25F95C1FC1B +:1007B000EF9941EC83D35B29BF2E62743E69F2E767 +:1007C0006BE13BCDF0F33B36DFD33E03F1ABB09DA5 +:1007D0001159ABF12F5CE9D4FF3DC9D6135FE7BCDB +:1007E0007C69105D5BB7EAE15D75AFDEFF5D936E1E +:1007F00027F54F7A7BC2414E1EE37CD346EDE06382 +:10080000EE4A22C7878EE9FDA535E99FCD9E5B2183 +:10081000B888BE410F22B42B1AD69FBC11ECEDA1B3 +:1008200037C5816E8DDD9C9E61D0ADE309399C4D4D +:10083000E530D8095ABCFD8CE9299EBFAD3DC84EB4 +:1008400031C80611F8F64D91AC83A3B7DED646D772 +:10085000491822EBD044E73BB431C2D7ED0C31AE9E +:1008600042C75D21F974E33ECCF861CA71A7B18F2C +:10087000FEC71FD1D7DF93FE8FF5477EFC19F9F72E +:1008800050AAACF3DBB95F7214EC1347C03EF98297 +:1008900079F4EC08C843DB6801C4D77ECFC659B3EE +:1008A000B596D891470DEE8722A0FE11831DFC89D5 +:1008B000D213D48F58C3EC240E4F6E903EE3FA66E9 +:1008C0003AFD88D709D167177D3605E4EEF1C66594 +:1008D000C650F85A7A6926F2CF08E4799C00D659B6 +:1008E000BD46DEFC779A898CFBDF41EBACF1520A06 +:1008F00069CFF5D59AADE5243ED0E87D34513B8FE4 +:10090000034C5F1D4CA7F04FD8B512B56BA78A9367 +:100910007D94AE9FFF7146571E276B94DC21E364E4 +:100920004B1BC420B943ED2F989776BDA02039C347 +:10093000FBE772E66AFBCF4BA3F293C7E152F37079 +:10094000FB88A9F973621C562F789C4F189EA61A33 +:10095000EF0D888FCF993A7E5494C1F67358FCE816 +:10096000E8ADD713FE3A5677603ED0E59D07FEF31B +:10097000F8329CFF4DEBA1F920CF8B209E140BF297 +:100980000699487CC723107B6ED9D6D5C644B2DE03 +:10099000FE93F8BF478FA511FE54587CEAA849D1B1 +:1009A000E9AFE075F71306E791543BDB971A26FB96 +:1009B00052D3E1E7B741F8F9ACF2FE277C3C2C1F9B +:1009C000818EFBB83F86FCC957F2B327F882C7EF88 +:1009D0004DE876E0CB11C96505BEEC42D4CE3A6B4A +:1009E000391D77A618A1B6B00FE2CEE0AE5AC0D638 +:1009F0009987BF4784DEBFDA984DE9E1426AE64154 +:100A000058E72852D9E28073942AD143E30361F670 +:100A1000415CC5B9AD9BE4D7F8CCF6302C3F4A8E8B +:100A20006E2D85FAE10252444C97D2D18AEFC1FE75 +:100A300044ABCF2A235CFF7226DDAF6C5FA0FE1EA5 +:100A4000CADB07CD32F843315B0B4D6017EE196AF4 +:100A50008954313C07FBD744C239BC67616AD7214E +:100A60003A41CC4F67E15F49F09F738F55E1FAB38C +:100A700062470C368CAAD18C738F59703F0F75BBAF +:100A800013EC589E6DCCF03F66B901A1B838D7E899 +:100A90004205A15732F6D741BE308DF777A0CE354B +:100AA0001FE3E99B2CAFBEF618E47F6CF038055CC1 +:100AB000FF4CC63B7512C68F2454151A707F67779A +:100AC000E53F6E49C6F07EE7E1D22FE3F1CCCF8857 +:100AD000F59293ECBBB1F696FA4A09CF733E834F79 +:100AE000B5CD80BCC3EA960DD86FBB6FD7CB75125E +:100AF0006E3F12E3BA1BE1BCF39997097C651E5E59 +:100B00007F0669CFFBFBE2AE971F53D331C9BB2AE7 +:100B1000D1694CAFB23195F8B9E72ABC95121EBF26 +:100B2000F199D8C7F3C2109ABBB5DC8A707EE53361 +:100B300079F5E642B2CF5528E3F4F6676613784BB1 +:100B40009BD55908CFC7848A1FAFC1F35827D275E8 +:100B5000FA88E5881BD6BDCDE251CDA097F9FEF00D +:100B6000357226F0EF443E9BC6AF26F20934FFC62D +:100B7000CFEF6A25769105D90DD7E37CB4270FCE48 +:100B8000CFAA895685F8F916CFAAD771FE0DC17E76 +:100B9000F79612C267C48F385B1D3F08FB3CB767EE +:100BA0005038F63F7567CABB785E6F3C159FBC1A1C +:100BB000F6B53652FE0DE6C7E42CEAEF8E84872E9A +:100BC000FF21971F6C1F34EA04723D87D343E0F77F +:100BD00063380C68F4C16ED80FB2C8992B31FC3E53 +:100BE00016CFE6EB86B74BEF8E5201CE25BD39C44A +:100BF0003FE0FD8F30F991A6B0F839F24BF5208235 +:100C00004403812756146EAFC5DFE3C29167374EA8 +:100C1000636720925F8297D06E5C5E9DE6DE49CE70 +:100C2000FBC62716F638619C5F4B601FF3F63CEE5F +:100C30001480D77E37C01B2BD615DE9DA7C17F1E23 +:100C4000A5CF480C62ED5CDF5B88EB8F8CCE4A054C +:100C5000FF6575865ECEE0F5678273ACD62C264FB5 +:100C600064DA3EB692D263FCE130DFA093D04BD180 +:100C7000CAB79F317C765CCA413ECDB9EF0EC96FD1 +:100C800002B9D671298F7C8FED094D0F1EC7ECB8C4 +:100C9000148DD462ED773ACF403F0E523E199E3EFE +:100CA00072AED974D448FCB2E07EB95CBB37C215D1 +:100CB0001F7305BBAAE3923005FC12F9EEBC16CBFC +:100CC0000E12BFF7133C71F872E6BBE281CFEFDD85 +:100CD0005D1E8F6C1AFC4B0CFF4CCE027EB5E70EEE +:100CE0002E323E696DA6FB8213E72592F2C83C4680 +:100CF000FEAB32B796F447F71F4724EA77954AAE22 +:100D0000C550AF7434C6AE0A93F980D37124C65B64 +:100D10004EF0F49440E46FF07C2FB3F14BFB299F2D +:100D2000C6377BC4D51AFB84F3F954EB024B060A91 +:100D300017F883800F45CED4EE7773B8EFC84084A0 +:100D40003F30FD29DD126D946E0C3F93F960E6345F +:100D50007C9042CA4B47F79B00DF1D0CCEF813FE78 +:100D6000C85C368F7538FD53662419776D06E5E744 +:100D700091E1CAE2EB61BF265B02F5824AE7737933 +:100D8000FC95A315587EC6F33C2C7499E09BE90FA3 +:100D90006C9E5802F5CF3FF395FA4D44FEBA0AC94E +:100DA0007E2AFE6584384FF645B62EEECB404C3F8A +:100DB00007AF5BE4E5F8D4AE538E77DE4F7526EDD2 +:100DC000A73C93D22B2077E87EE7E72F678469E47E +:100DD0004C2D9333B41C39DC1D501E6760F70EECAC +:100DE000743E2D3FAFCC8449DE9320CA6047B40ADD +:100DF0009ECD80F83527E436F8CEE7D7861160C35C +:100E0000F6CD6AFCF1530C47EB68B82A4642DC2564 +:100E10004CB669ECC28FFA04C267F7E011BA8A26B1 +:100E2000F3C73D0926324ECBC319511E2D7C92FBD0 +:100E3000391217B532F82C417A4BD2E7E3E2E436A7 +:100E400083A829B7513DF653A7CB9389E9709A9DA2 +:100E5000E341BDB13A3BEB2B197A7B9EEB8BF2540D +:100E6000D79DD02EB8FE547659E9681D8923C43F1A +:100E7000803FC17D8F6144FC773442E372F1CD7EC7 +:100E80004387863F4C59F964DC5811A902C6CB99B7 +:100E9000460C5C54A0FC8C80E903766F18B2435C6E +:100EA000E250B4BBC48EE975283642E9C120D7347C +:100EB0008F97003DBEC6F82BD64AF9F050987707B9 +:100EC000B493901C43F894C9A75FA7E450F9644217 +:100ED0003A3E419745FF424DF921A1F61A3A4E5646 +:100EE000618FA0E1A7897E911DFAFDF5275F3CB3D4 +:100EF00010EEF9A4D2FE1C78FC3ACD3A985B43E59B +:100F0000E337187CDFC8B4D27E9CEE1180E7503402 +:100F1000B2F74483DDE3790EF28B12AC8AE80CC899 +:100F200027E07FA017E64F0FF04F9C89E6FF2B8B41 +:100F3000AEAB0296BE9845FB8F8BA4F582E913CE2B +:100F4000ECDC6F89549E3D62C3769118B0936C16A9 +:100F50004C2872AED083805FB694E3F984E86720B2 +:100F600093DA27588F91F94ED62B5C6F8DF5A681B9 +:100F70007CC9A6FB72C1767970BBB3C6BEFD240ED8 +:100F8000749CC681B6D9DD513361BFE2781A5271C3 +:100F90007B9395DE570886E7174CBE98989FBB89D0 +:100FA000C54D222F5989FF7B3893FA9152F6194289 +:100FB0007FA90C9B06B88911B955BB86FE46BBFEBE +:100FC000DC6CE4A548D2BEE35231F2CDB8923C2F9E +:100FD00025E53909D41FBA787259140A819760B887 +:100FE000FD0C4E9E77654B5548034F39B26F82FE1C +:100FF000CB91DE7F9ACA0E798FF157C72551A77F13 +:1010000002709A74DFFDD80F54B5E39FA3E307C6BF +:10101000B5225533EEBF65BACE113980E6DBCFE697 +:10102000E204DBE470EE14EB15AABF703A60A37A19 +:101030001EE435F7BB603DDB67633D92593E9E1968 +:10104000ABD17BAC1D972B512702F69D80DBAE63A5 +:10105000FA671DD33F137660D039A72C366F2E7FE9 +:10106000A6F20379FDB34CFEED3E589700FCB0C7E5 +:101070006217E03CF54361EE04D00BB51994BF6BE9 +:10108000D9B8332C95AE331ABCDD9729D3FD28810E +:10109000EE47E1E152001EBC1E54AD7D104C1F47CF +:1010A00016B733C374FC14A08F8D7CFFBCECCCD27C +:1010B000F91E311FD6DF560181A93CB74A7F2F2A7E +:1010C0003BCB46DA656759757EC19A20FD9D9745F1 +:1010D000FD87BC2CEB55D9015A3D248801F9D7C9AD +:1010E000F8C179FE8849C6F8BA338B9E6F7165BB2B +:1010F0008AB3703AF0974ADF18F8DBDD121A7440B1 +:101100003B976FAC04E6850984FDBAF2E55572376A +:10111000CE1B5F372AC48FDB1B5A1FD9BA04572B4B +:10112000C6A38BC9C30E079D4F87C36F4AC77024E0 +:10113000755078AE19DE27489A795ED34EEB2DCAEA +:1011400032327FC9D75D5D02DF5D12C4E96E81EF87 +:10115000B8BFC559942F928605A2D792BC18219882 +:10116000DE490AEDD7A6F884357981F9F61A6AF3D3 +:10117000408FF4C65989BEFA55B6A73E0BF8E0A4D5 +:10118000DF0FE89A7B7254027FF7C36C5703E0814C +:10119000CF4B16ED49E0B75A4F52B8FA62F47C8152 +:1011A000D0D7193D0629BC367721C01317291BE873 +:1011B0007954940AF66C5C0CD31F71C8B307D68FB0 +:1011C000C54DECBEB8705C4F7BFF12B94B60FFC8D9 +:1011D000179B5F04FAAF3A5CD90FF753AB8B9C4572 +:1011E0003DB8F4E51D74BF2318DF7733BEC6F07732 +:1011F000C0BCA6A24BB09DC0EB19A7F07339BF5B72 +:1012000019FF942F77AC00B83B36FDD00AF7D39284 +:101210008607042B597FDB483D8E6F0CC783004740 +:10122000D27039E19F2415DBCB20F7C3537C08B380 +:101230009C1453160FF89E0ACE8E2ED1D5AA959FD8 +:101240009B4C04FF0341E7A3B87FB09DF9EB6939DC +:10125000EE47807E9D7B1F3541FF6B77BE6B0A7525 +:101260001E76A2FD55E24968A7F669871DD921EED1 +:1012700051BEBC95D81FEB2C388FE9D7F19C40F4B8 +:101280001A6AB2F84064760CEF3E9C84F3333B5C00 +:101290007340B5C7611E18CD0BE8A1A40ECC57064C +:1012A000C0CF6E3FEC5F243D80C8E9538E3FAC1940 +:1012B000520E02DF638F08E260178C1E627F5D486A +:1012C000B42A2AE6F39FED7E4BFE0AFEBE09978BF9 +:1012D00009C0DF8309C027BDB34C0AD8E11F667B74 +:1012E0008601FF3112B66FF0F768478402FB47B200 +:1012F0001915D9AF80F7E07973B9C1BFCF7D80AE42 +:10130000835359916C7D7A9C306F59440F00BFFF15 +:101310007B168D931E3622D51203F12C3A9F822C18 +:10132000D74FC9BA82459808F3F70BDA73A83CD5B2 +:10133000F0CFA1CFC2C7736B86493C6F1D931FE5E9 +:10134000CB770AA735743F96255279F1DC802013BC +:101350003EDED95DED20F5E1AE24FE4EFD9F75B871 +:10136000FC0E9DDC58DD0CF3EB0DA7F621961B6FF0 +:10137000035C870C771F80FD89434548817579CBD5 +:1013800049FF61227619BC874C9E1DC4CEC1FCD199 +:101390008DF3EF65517D75D8E42171ACC349F41E1E +:1013A00076AF6163B6D71658D7C1EBF03DC6D749C3 +:1013B0004D3B0503B16347C93CD73749842EFB97A2 +:1013C000AD6A8571D63B120BCD98EE4FFC6840ECB0 +:1013D000C7FDAFCF8B1E003FE9E32C6A77ADEF135B +:1013E000E8FE77DF1BA6468DDEDEFEE21B440F2CF7 +:1013F0001EA1E724D78FEC96E05CB2F3FC7EC27F9F +:10140000EB317F85C17E7C3685FF82D19F02FC1344 +:10141000CC7FD61A2ACF20669A114DED15C8FB96BF +:101420005B881DCFE566019B0F969344CEC5C5E54D +:101430001782FF69CEA670F27102724F20F8E5FAAA +:101440002A3C9BC7C9A99C9523E9B97FDEFF647933 +:101450009F5B04F2BE309BEA214CBF98EC10729F58 +:10146000F7EFFC761DB9A73F410FC0B3868F9CD91B +:10147000749FC789FD7F766F48063CC906BC4EC184 +:101480001F31B9F3E07D00298EADD3E81372B706A2 +:101490004F874D6AB68CF38753C3891EC27C9E0A60 +:1014A000F0EC5FF6BCD80FF2254FF0815C7DE207CF +:1014B000B5049F1D4033902F9E5642679480FD2FA8 +:1014C000D02B1E89E8BD8EA6A5C47F9FD0577B0474 +:1014D00082F70ED5E60BC3FF5C3C5C4BE3A68E3077 +:1014E00085C925425FBE6E0AB2EC13EB18FC0DEE07 +:1014F000674759FC7EA33C79BD45313FDB037E360F +:10150000EEAF54A179F885F2AFB95EE3EDB97FBDD6 +:10151000AEEB17C41EBC2BE1E724057F0DFC1CEECF +:10152000BFF1FA3733BA1533BFA916F803E7D795D9 +:101530000C1339BAEE8C97AC075B0D5DF7B6937A56 +:1015400079C5FD376C8051BEB20EDF08FE4DF5BF88 +:101550000A76E0ABA9E4CA9DB01F86FB5B78F9D799 +:10156000915A3BF7F66CCABFEFC1BE2D91E75E62A0 +:10157000475FD82184BC8715DC4FB2BF6ADEFFC24B +:10158000F4F860288A9C5FBAF05CFD9720AFEE8C7F +:1015900022E76A92FD0D84CE171CF314A0ABA3873B +:1015A000E2E5C27025E187F3F1B201ECE4EEE1C7B8 +:1015B00017C0BB02F7B17573FE076217CC7BE377E8 +:1015C0005F5800F1A9753E6106DCCFB830F4AF9FDB +:1015D000801E6ADFF94F76581A3DDFFBA909F639FC +:1015E0000CBE01FA7D28CA0EF5DEFFCEA30B009FCC +:1015F0003DC33DA4FCFC7706487EFF775F20F28464 +:10160000F3E5F91F0CBCFA5F9077472A10DFEAF088 +:101610003CF155C8A38648B21F863C074D8D9A7889 +:10162000DCF6DDFBC8BAE27CB07898F2276A32912A +:101630003804E7C7D33F0F4742144EA3A93DDFCA82 +:10164000E24FAD2C8E54C9FC90D7191FEC60743852 +:10165000BF41493A9301FE8612B7BC84B0E1E8AEBF +:1016600012F85E4EBEA3CBC5E47ECFF9AD467E4EEA +:101670002405F637EF7AC4E8A6F1529CC7E51F406F +:1016800039D0D342F3EBA01CF2365A9FCFE7F4EFE8 +:10169000C29A42D95F01F8A85DDA6A3010BAE1F166 +:1016A00023E761784E1BE43DA0C779FD3D6C1E0128 +:1016B000F8A9BFC4E1E6F5CE6F1539DC05146E91CB +:1016C000C35D40E11639DC05146E91C35DA083FB58 +:1016D000F761EDA1E0E6F894007F0E722E6714E446 +:1016E000D81A3E4E2B8DD73C5252B513E4786B1F5F +:1016F000A59F2DCFB513CE4DBC924DEDF47522DFD5 +:101700003FA4710BF191396F82BDF7517F980C7A2C +:10171000A92DC67396C8A16FD27B23079EBA334505 +:10172000FBFECBE90DC865D4CCFBECA3E52908F79B +:1017300073F691F214239EC79FF6CD4B01B97CE658 +:1017400011F3EDAE2BCCA372224E4AFD1F93556EC2 +:1017500083F8CA91F2BC8C83843F22157101CE2F8D +:10176000A274EC64E75A3A57440F401CDC60B12382 +:101770001786BBA1267A00E23FE7D9FA825819EC16 +:10178000FBA22502B1EF7A4DEA10D1EFF6E114D0B9 +:10179000EFD63CBF6926CE2F6BDEBD00423BF95829 +:1017A000BEC2FB33B8F5CE4FB11D5BFFC49D2B61AC +:1017B0009C1D22B28B8950AF9BB44FB1F0F75724D8 +:1017C000FB591EA714AF64EFE8DFB599B0E3D9FA6F +:1017D000EA3551BB0BDB2B280CA7A5F7B2F8BBD021 +:1017E000D243EC95FBFCF3891F71EE9EF08E3CAD6D +:1017F0007CA4ED9346A81D94D43E7A23CCE7E6EC76 +:10180000D5C530CC7AB62FE880F508F6916AD3E9D1 +:10181000453187C5BDEC6EF25E8CC5E58EFD1AE8DC +:1018200023B39B9CDF936F771BBBC93DA5F1944607 +:101830006228EDD2E985ED464FE21CB06B7A997DC6 +:10184000B393C28DDB93FEE44A9703DAE3FE497F4C +:1018500096669704FD83BD01F9FFF8C94DBBB4FB43 +:1018600067C17A07FA2FB1819DA236113E944D0AC5 +:10187000C89FF3503591E0B140BB1F111CE703FD39 +:1018800008EB292DA73C25273690F2B860309D3C07 +:10189000508EFBD991E322F5D0D0D5DD87E3764099 +:1018A000670DB3037EFC2ED1739D1E89DA6F9E33C4 +:1018B000C47EFB60830B9DC6BCBEFDA577897CAD55 +:1018C000DB4BE9D6B9D76904BF773B8B8B74565C89 +:1018D00020769C2A22C2F79DA6E1CD70DFAF730B64 +:1018E0008AC69E1DEA5C309609F2F50F2FD1F5707D +:1018F000C86020F1934383B903609F08EDD48EEB59 +:10190000F4CA8366127FA5FE20F67F1E05BF7C7D8C +:101910003B227180CE116A77A23CBA3E3AF7BE41B3 +:10192000F887FB3FD8AEBA06EC9E68875901BB2406 +:10193000A96A3485AE47A464807F52E579B49AF0F1 +:101940005B6129F0DBFE65AF6EB6C0B855D8BFC28B +:10195000EDB727BB5E82FED497040471CCEDC6BE02 +:101960000AB847BABD5AB6AB300F4FC3849D03F2D5 +:1019700005791A88DFD3E958A980DCDAD24DFDA7B2 +:101980002DD87F02FF68FB4BDDC40EEB94C31538E6 +:1019900047B078AF700F69AFDA10F04527C627E47B +:1019A00017FBAEF769CF872DAE1A4B81F3061CEEFD +:1019B0003F184757017EFEF0A219A99AF874749552 +:1019C00077C757A0BDBD481115F0C3463D602FE352 +:1019D000A5AE74E37C9FD16D56204EB548F0C1BED4 +:1019E0005A34B35FD2D8FDDFB56C3DADCD31B0D444 +:1019F000C4D639DB4FB0AB0520673F647C003F396C +:101A00000ECB61F20F4C97563F5947E097025D1D90 +:101A10006657E117357CEAA8A47605DFDF81FD1E55 +:101A2000B2CFB35C22F44EC2F406F9C7E976B32311 +:101A3000AB08F0B43587CAD9A46C81C401906A227E +:101A4000F88A5BBE536ACBA3FB43A1E2087D6C1E00 +:101A5000B133DC25A01762E3E9BE41AC586E0883C0 +:101A60007853A1A00CCA64FF99EC278DC7262A835E +:101A70001A7CF2B8C8B9B808424FE4FBB504F6D4F2 +:101A80008E1CAE77F4FE006F17D89F0A23745FD2C6 +:101A9000A71680DFC9F7A7F8BC7DDDE14D5A79B6FE +:101AA0009DE1DF97C3E28B76BAFF116750669078AD +:101AB0008D8DCEE35CDC0DA5F41C6F0FC1CB861CB5 +:101AC000AA7F62D3DC242E371E1B41E6119B865A67 +:101AD000A07D6C4F82D0E3D4E2D94EF44C5A8E41B3 +:101AE000BFFEC1DE027FEEC7D47EEFC47C0DFE1CBC +:101AF000C801C6A7F47E03930713703379B0782F1B +:101B0000A57BE75E6A5FF1F80D426399B0EECE19EE +:101B1000528A40CF779AC6C83AEC34C845DD8EC0A9 +:101B2000FA9E4E2E545B7D24DE509D9B59D4E30CCF +:101B3000B4FB835126FBC57FA846645FF9672FBDC0 +:101B4000E5D3FA899C2EC17E10C85F885B7279FC50 +:101B5000AB6CF761909F9D06FF6638F7C2E567E7BB +:101B6000CB0FEBEEAF04CB4F8B44E595C567F56922 +:101B7000F78B60EF35A288A4AA0DA7D62E860F8B0F +:101B800081E0F3919263DFDF42F4FF58B719EC9BD9 +:101B900084D11B400EBD05974E887D83481A17439C +:101BA000F50D1AB492FD111ECF0B86E7176C9D70D0 +:101BB000BC73FF14F685A0FEC78CDEEF313EFB0B35 +:101BC000ABAFE1773D3FDBA87F3695BEE1ED3FAFA0 +:101BD00038231F87EBBD009EBB75FB5B30AFDABCC3 +:101BE000A9EBF5EDA37206E8AB3D9F1DC5E4C181ED +:101BF0001C8AD7E7D97E40AA6779545D887E789E93 +:101C0000BFA735951EB57F2212B8609B11FAB15758 +:101C1000D428708E76C62C41774E85A712923E1E30 +:101C2000E3F69413C6FF33BD07EC41E43EED643E9A +:101C3000D3DB15C1EFBC4CDC27C6F3B8D2FB2EBDFD +:101C400041FB4EBD69AF9277BCAC9648C22F0BC129 +:101C5000A9C4703C2C5F43EE29407FB5C46EDA18EE +:101C6000B43FAC87274C0E0DCF74F8ED35EC6E0702 +:101C7000FE3CC5E04ADD7165F89F6774D8C6CE4565 +:101C8000DB14B95BC2F0CE7E452E84A5D26B902BBF +:101C9000B63B02E7C92316A03FC2F9BBC8B2BE6C6F +:101CA000387FB7A57BB809F862B6346680F705625D +:101CB000DD7AB8E39BF4E775133D31BAFCCCF6242A +:101CC0005DFD646FAAAEFCDAAE59BA72A75AA4CB16 +:101CD000A7F55EA7AB9FD157A1CB67F5DFACAB9F54 +:101CE000E3ABD3E5738756E8EAE70FB7E8EF0B7C81 +:101CF00092B6FF2990136FD273E9C822976AD7076B +:101D00004FD7CF4A25F89FBD573FFFA8B2A0F3CACF +:101D100053F05330FDD7F4EAF729533D8B88BCBA12 +:101D20009887489CC8BA356733F055C21AE43563C2 +:101D3000796A0DE2FFE9FA0BF077CE5ED827BA5840 +:101D400043EF61BD0A4521ECDB43417C5EE788A29D +:101D500072F752DD34F630E5F36A33DD4FAEB6EAA2 +:101D6000EFFB7C8FADE7EFCCA272643A7E3DCBF8FF +:101D7000F514E7D77E67C576A00FDCD3C15DDDB96A +:101D800043E886FB86311E1BB1D7EE94FCA8506356 +:101D90000F3CC1DA6F67EDFB37D8C9BCBEB92181F2 +:101DA000A43B36C8E4FBB7376493D4B74121DF07BF +:101DB0003794917427B6D3207D66430D498736B892 +:101DC00049BD67373491F4B90D1EBAEE3CCB25FE00 +:101DD000BE1491D7976242C6BF6F74E8CF3B07E845 +:101DE000B256F2437B59F2C23B1053E163527BB1CE +:101DF000F98AF705BA4EAEF61DD4D47F795684839E +:101E0000EC3FCF4573891F3A4DFB3F6DF0F80E66EE +:101E10004C2F1739BFA0CB6BD243D5C37C40CE4FDC +:101E20006D79B6F61BE49D8F29F013E0A3207EEDBB +:101E3000A5FC5A006B92F87D6349DA71F83D329E39 +:101E40006FF145857C3FA03497EAEF76C69FED4160 +:101E5000FC99904BF9F34FB368BDFF57F8F3FD5D64 +:101E600011C44E7EDFD89712AB99EFFBBBACE43BBD +:101E7000CAB623D00328C65505FC0BA17F13B6B7FD +:101E8000AA728DCCEE4827EFF7F2730B53D34D1F98 +:101E9000E748DD9148E25017EDC805F6503B1C4A73 +:101EA000C6F84958026F65E24A1E3BDD7FBB8BD9FD +:101EB0004B12A62BE84BC510E0F310EF754DC58F04 +:101EC0002B72659DBD107CEF2FD5F394C9EF987EE2 +:101ED0009D05B7FBACEB2C2BF7EFB3CE389FA3CB14 +:101EE0008F6786BA67D0CED6D9EF9FFD0A59679C17 +:101EF000CFD7827DA519BF2197DAAF0DB9540EBF98 +:101F0000CFEC8CF78DB201F8F7FDE36983DAFB6261 +:101F10004B58FDE9F1FBB049270783D6E9F4EDC33F +:101F2000A81DE71388DE6BB744AAD6C8CFD2FECA75 +:101F3000F89B44D7BD8EAB8AEF38907A1BC0D5860C +:101F40000C645FB7CD6223EF09A17EE385310D9F5D +:101F5000763B5D77E4823FE042B23D8EAC23E2D730 +:101F6000E39FDB12478EF4D1BC7A37590773913067 +:101F70000E7C2F8CC5899DB8DF1D5F8C24FED6DCBE +:101F8000B13682871D10FF817DE52A6C8AC4F1235A +:101F9000AAB06EBCD49FA9B08C417B0BC417D2F001 +:101FA0001A12945E11F8CD211C3C82DB8B07B0FD28 +:101FB000808128B2283D0E0334718B504F40D48F5E +:101FC0002D3D43CBE7A3D11EAC5AD002344ECAAF4D +:101FD000AF517B00CE6BD165FB59E0A9F867D67F86 +:101FE0008A5D39648BB92A7CA915DE7F85F303EA03 +:101FF0004609F5E0F449EB57BF0B72BC4B35DBC12A +:102000004F43122D7FDF68B1C33ACC163DDB7231EE +:102010007FFDB3E88EDB47EC19EF6C7A9F403A0501 +:10202000768E013BA59F62B82A6C254D77C0B4D946 +:1020300077827767A01E970FC1F96F3C44E3013D9B +:102040000F533EEFE9A6F921C6D74FB374772E7F21 +:10205000670E6D02FC852550FC108A62FC9B19FD01 +:102060000C16AF5F057FD58BE96507E9344CF0FFAF +:1020700070E376CF43A47A3339E725F8DDE4BDF386 +:1020800040BC57DF8F2BFB41D28F09F703F7122D8E +:10209000963E9705F35178D3B0DF78E57E0E266340 +:1020A000FC492514BE75A2E747B9745FD37507F8DC +:1020B000C118815BC87D8E612438B5EDFE6AFAECEB +:1020C00087FEA7A38F18517502E22B153EB30CF1C2 +:1020D00091603A9D03990FE3FED944EDEB69E876F0 +:1020E00086D1A3A26B910FF61B175EDE1009E35693 +:1020F0007755FAE05C59555739492B9EA6FB2715B1 +:1021000046D901F7992ABB1693FAE55DF5A4DCD50B +:10211000554BD2855DB791EF0BBA96FBB4E7DAAABF +:102120001CB81F8D5CA8B0E1F134F2FC8F20773031 +:102130007FB8A45ADDF705979B74ED8C15EE3BE84C +:10214000B958CF8D8007134A12205E2346D610BCA3 +:102150006C4E4C70025E3E6272D7654F25F1990855 +:102160000529DAF77D4CFDC2BB205F305DFF08EB2F +:10217000C294308CE8B966BA4F83F5E44C485F15D9 +:1021800050C877E4FF9BF13342D7D0F58BAEACB7A4 +:1021900077DF12FDB6034EB2A80F2E7DBD0CE7CB44 +:1021A000A36F73607EFCE97386A512A6D9EE371083 +:1021B000113E4FE75DFB24E895DD8DD1DF8AC5F543 +:1021C000E5E77FBCDD88E5C1EE950229FF4E3E2D97 +:1021D000BF6696272C0FD3ADF8755732D8152B90C4 +:1021E00044EE79D5E7C92B9F93218EA98CC17E6ED1 +:1021F000E31AB34CE28597311CA5B83D002AD2FC06 +:10220000C25290B7ECC7CA77C2BF319FA5F5DFFDB8 +:10221000CE8320FF464505C2A86DFDCE7D0EDC5F56 +:102220005A6BA11D9AA7F7B3FDCA1D66B25FD9D636 +:102230004FE56D3A52C661DF6618E2AF4678074E49 +:10224000EEB181BF9B8FC839DB6B5BE979A0B34FDF +:102250009B07206E7E166083F26481F8C3C7372027 +:10226000D7A60C34A57C9FCBF3783DC0FB16370472 +:102270009573F92F78FE59BC5F23EF6FF0C4EBF232 +:102280004A2FAA346178535B11796FC484BCD43E61 +:102290007359C67A401F60DAB84AE9360AEB9FE8FC +:1022A000876A9EF77825782F04C5607DA580D9E6DA +:1022B0004BB090F7D09CE4FD29F1266407FD9A52BB +:1022C000E3DF0FE7058A5DE544EECF419E03A338C7 +:1022D0009DE7DA4DF265165F0F84E60C2051707FA2 +:1022E000F32F5379E3427609CA2B9022B1F7E188A4 +:1022F000FF539540F5760DEA23DF6F46C3245D82D8 +:1023000046497A2B1A27A91BD9C93B6D0B2C585F5C +:102310006179D7087F942116E42ABD275254631EA1 +:1023200080F87D6303D66338DFE447249E5F5F2334 +:1023300093771639DFD64DBC0F2193FB97489293C4 +:10234000976AF4FF91A79791F7BF6483FE5CF76DDE +:102350007954AEB4E5D175B25D6072692DA5339242 +:102360003C4FDD81F32BDC59E49E312E27EFBBABD4 +:10237000CB2DA47CBBD1DD1D87F3C73ECC47B02F4E +:10238000B03D4FD6F9DFC76AEF4C84F53AF050A65E +:1023900011D23A0FBFA7A13238D5646DFCF7EC6AB1 +:1023A0000C278BC769E33CDE3CEA8F6C87B258E0B0 +:1023B000CB652BC9F93BB67F16776B34893355A3B0 +:1023C0002609CEDF6E60F3F209EE2A02EF7AFA1EDA +:1023D000015F4FED9C3F24D59404EB5171D2F9314C +:1023E000F857F868FC79457BED3ED86F5AD2BE1E8F +:1023F000817E0B9C83A3E726CA9757917DD1A67E49 +:10240000338278B7D0EEF93DACE7E5CD6619D64D0D +:10241000536B2D191F080DE78A9A3CABC93DF2E5B5 +:1024200016971DCE41DCD4FC3542E74DCD981731CF +:102430003F47342FA3FB8F58B9C33E2BC63F691FBC +:102440005741DF9FBD76C93E819EAFF791BFFB31FB +:102450009083C87E428C84C8FE4FB46A43704E6E2F +:1024600079EBA387E05DB69978A2B07F25238F0929 +:10247000F03D95BDF6F4D72E47133B1DEC9B6B0941 +:102480007D683CBA4B94415F382599C8E7B70E5236 +:10249000F9DCDBDCA312FB74091E0CCFBBBEAF90D2 +:1024A000BCC38907E2EFFA8D819CB3B86F92013EFD +:1024B000D80A85FDAE3689C6710A118D17B5B0FBF5 +:1024C0002EC17E8DA5CB44C66DB37450FB0E7768CC +:1024D0004E9C2C3F82E721B8FF19B17DEAB119204B +:1024E0001FB2ED22DC9347F7444EAC7F90ABAEBCFD +:1024F0007C321FE5353A9FE2519788C8113B15D1D0 +:1025000075FC00D51761CF085A7BA3D2AEAE72E03E +:10251000718E1C6CDD6C93E1EFA928BF83BFB7827D +:10252000C9E305FEE0FC7A20B92F19F4DF6F12A988 +:102530009DB5F0F20B11DAF8F1EFF2A8DE2B027D77 +:102540008EE75908FA19EBE139A0CF715A02FA1C4B +:10255000A7456BA93E2F063D8EEB29A0BFF1F730B2 +:10256000A6BF2D4C7F171AED3340DF971C73E9F49B +:1025700070D1EB353A3DCDC73FC5F85C39E8D6950B +:102580005BD2F57ABC82E9F1A3E5EE95DA7DB15331 +:102590004C5E9C66EB12BDAEA6007FC11E2DE0F521 +:1025A000BD5F22F23EE9B95F52BAAB46C4EC1C3DB6 +:1025B000FD409E33FA8E3D8EE92BEC883FF0258D51 +:1025C000FC47B354A207A7A2DBC77934FE58D25FF9 +:1025D0002BC26185E245C533BF8C80DFAECCEF53A3 +:1025E000D1B76B96EB32E8EB7464BFAD03FC1B8F85 +:1025F000998C532D766C067FF9234C67B37D727FDF +:1026000045001C866BF928F2F984805EC5F51588B3 +:1026100067951C171515CF5769453DB06E137BA9FB +:102620003E8B75C39D9200BEE39B2C70E672229F89 +:10263000E8B1EBF233DB1374F593BDB2AEFCDAAE66 +:102640006C5DB9535574F9B4DE325DFD8C3E972E46 +:102650009FD55FA3AB9FE373EBF2B9434DBAFA4842 +:10266000751DC9D3E8FBFC618FAE3E2C8B14A057BF +:102670008288C0AE9FBDB75DDFFE24B67371DE8B6E +:10268000FF07782C41344FCAB15CC02C7FE069D081 +:102690003F6566BB1FB75FD16A0CD8C508EC2A241A +:1026A000025DEA3D36B2FE94203B3B381E71E76B7B +:1026B000EA6158B745AF79C8F9EAEBF3231C840FF8 +:1026C000587CA25AB4117A7D744C54C037B9133C6B +:1026D000144780AE1F414740CF7DC847F6CB83E605 +:1026E000CFE31748DC4AFDFF7601CDC0F5CC097A6F +:1026F0003A87C97A3A5BB3F5748E50F4748E2AD354 +:10270000D339DAA5A7F3DC31E1C0D3B01F89F18456 +:10271000CAE0BD7E3DDD399ECBF0FF42E13918AF06 +:102720000ADAFA475837D3E1734D7E707C673E91E1 +:10273000FB17DDD4EFC1BF064BA9465E634109F824 +:10274000145EA77A2078FD73FC15BAE3D17D579209 +:1027500003B6F59B1371B9324AE5C09C254ED8F6F5 +:10276000432756CF9D09744D42AFF0FB451E38BF3D +:10277000A459DF5DF97360FF54195361DC7E33396E +:10278000B7B8FB9069139C7B3D3A077D1FE00EDED6 +:102790004755F3F93EAA4BCD07FBE306EF4A98C72E +:1027A00009C1A06C7480BCA0F36A7B7DC24FD6EBDC +:1027B000A9603B595DBDD94FE21ED83F0579022F74 +:1027C000C039889DAC907851907C29F404E9B5A07B +:1027D0003888D0ACB7A3518B1E5F3D651EA79036DD +:1027E000597E4E1D071923DF1722B507F4FBF53577 +:1027F000CADBF762B88FDEF2D64CB0E326C54302DF +:10280000F8DD09F8E1FBD3D889677EDDE80D305E9D +:102810004A9707ADC7ED9F057CCE21F87C16E8B13D +:10282000278CDA0BC79FA67E50C91BAD049E38418A +:1028300056C04EDA134DF9E4B880C6F6E0FC9C634E +:10284000D45F496B772A409F3D4EE500E48FAF1778 +:10285000C87BE5A5275C229C174BF7E27258EF1B5B +:10286000DD95F0AE46E3FDF49CC68F3F6C23E7C9CF +:102870007C5FA6E57BCABDE43CFCF10769F9DC930B +:10288000AA1889F3392AEB5FE8AB8C043DF6904037 +:10289000ED9B49F4A47ECE424E8F1D7F3AF0A59267 +:1028A000003D5ACE298723F1F7D671F78D51683252 +:1028B0007DB85FB140A27E03F727AA909BA4372280 +:1028C0002F49AFD69FB8989F4DF05B871492773110 +:1028D000FFC25AE32A7F1EF8DE1B893234F60A4F04 +:1028E000FB62DCE49D7447A59BBCD773319FDAD1B2 +:1028F0008194EFD3BB92155C7E8CBF1F6E7193BF2A +:102900009310779722D278A75782F5E54B2E2C8625 +:10291000F9BC9F4FCFFFA46DF5127BF6566CD681A4 +:10292000FFE97F528A867383E4CDB110FE78209E42 +:1029300016746E5052C9B9D82251CE859B275105C5 +:102940007FD90EEF8F006FC07D75E179F332F51AF4 +:10295000C297C42E99AEDE31760E690F7B47AAC1AD +:10296000ED34801CD953A8B77BA20AE8FC797A130E +:102970006A227C755399A0F4603EB849427ED82FF4 +:10298000F86BE755B4515D05F8691C34237A7E086D +:102990002569CF6F73B9D288F8CF7D08F8AC8DC5A3 +:1029A000CDDECBF7127ABF379075B00E7F3F5B2B31 +:1029B000F820EEB5D4822DB0547817DCBBB24313A7 +:1029C000CF6EEBFFD90921F22AECA42767899FE695 +:1029D00006D6B9B84035009C479E12E83BF40CAED1 +:1029E00058BE1E2A3C44BE094CBEC537ED1612C463 +:1029F000C9FD07CB7FBCAE10E88B1436BBD89A78E4 +:102A0000F55EAD5CCB1EEEBE17EA337B9EC77BF155 +:102A10008FF8C75B6AA9FC8AB3A8CC4FA2E7611301 +:102A2000DBE9F764342E407D19D937C6C23B4EB07E +:102A3000C182D36B2CDEDA25329C6FBB4CF5C6C34A +:102A4000FB4BB4720D4F4F85B8209692DE6FE2714A +:102A50008D9625AE0E3C1E9E931774FB3AD1736380 +:102A600001C4B14E0A643E110954BFD91CC3544677 +:102A700004C51DCD5DD678B0E783E38F66C9FB5DE5 +:102A8000C823D56CDF45E391A4BC4BB2D8CDE48616 +:102A900095772EF0BDB72086F547E38FA2C51EAF10 +:102AA0008BBFD913E2B5767DA15FD69517BF96ADE2 +:102AB0002B9F33AAE8F2734F94E9EACF1B73E9F234 +:102AC000D79FABD1D5BF61DCADCB2FBCD4A4AB5F5E +:102AD0008E56EBCA2B2D6B75E5D5F6BB75F99B129F +:102AE000BEA4ABBF48EED695238F7B15F0173244BA +:102AF000927B2B93E24C41F2F98627E25D5ABF624A +:102B0000228E9360227C6106BA68F5E53C458674A6 +:102B1000A180E52F4E7F35CBD30DF4C572F81A1A7C +:102B2000AF716D86A354A9AE7343409F175409013A +:102B30001CDBC23BDB5703DF6F8CB40BF3713E939E +:102B4000DFDFC65C8FE5CA0B658FED073DF7C25E20 +:102B5000C907C005EE77D3F2CDE188C65F66598814 +:102B6000BFF4246CFAE07C64AE44CED37E68509C03 +:102B700030FE7AC3680AA47718BC2680AFC5E0513E +:102B800020CD163D4F1660BEB823BA3F05FCA1828A +:102B9000791F8543BCB5E0270601F4F80BAF9CEA2A +:102BA000BD0EF7F73142E300C7C8E885A1EFE07436 +:102BB000F66B24E88C66979D7A6C31E073D448E21A +:102BC000891F98D056A47967E283FBE979A8168B10 +:102BD000E896607D484A229C0B8953A83F7B6A8A0D +:102BE00038ECBC8CF2D701AE5389A1DF0378B180F9 +:102BF000B6E7F78753B395F8DB22B4ED6F25ED798F +:102C0000DE78291A796668DBCBF4FEBD8435A00D29 +:102C1000CA1DA41C4F93FC9DD24A78EF10EB9BA8D1 +:102C2000E86C09F0526EFBD840CE5182D588CBC7F4 +:102C3000057A8E1549F45D1F345F1A9FB07B53A14E +:102C40003DB597497C1FD72BB7E8EDE5D9489F0FD5 +:102C50008EDFDB14AA2F8C41EFBAD8309B91EF1393 +:102C600070D3775DB4EF92C1BBBE2D2C6E87125C22 +:102C7000E43ED6BFCC771442BC8AF713369BE26F92 +:102C800084BD43738781BE77123C8F72B5BC09FC4B +:102C9000A566545004FB777F291074ED1093E32B45 +:102CA000D9BA59693FFC67D00FAB145ACF60B1C78E +:102CB0007D1FF3C72A351201FFDCDE8C22F3653855 +:102CC0002FEEF8950BA7A75ECC6DFB166E7AEA8700 +:102CD00059F73F85D31906EF61B0D3D1366637F186 +:102CE000BF7FABCE24FAE46AF5E2D73357FF6836EC +:102CF000C65378A44F86BFBB193EEB1C3947F9BFBA +:102D00004167CD8171187ED058A6F69CD2D733CBBF +:102D10007F341BCEF119913F06E8FC13337D77E732 +:102D200035EC42E0FC3FBD9A43E28677299E17A12D +:102D30001EBFDF8E0E8E93777C2A914CECAA49F44D +:102D400067FC13CC070038F0CF74FCF011C08DE79E +:102D5000D312199AAEE4077C6B89267F67248BD146 +:102D6000978FFB59F9D39146E50AE7F3E9E0C3F8F9 +:102D7000D29D837E7136E55F9E723C05DFAF7D712B +:102D8000B681D5A3F76BEF52DC04AFFF91FCC74CC3 +:102D90002386A185DF479866BED7FD8DF3BD5A3ADD +:102DA000C0DF4F86715AC2AF0EAE5BFE4170ED9D23 +:102DB000CDF8A3E0EAE05ACDF0FED7C2E542E3BF8A +:102DC0008F4E9B1E2E4CCFBDB00E51D5387DDF28C7 +:102DD000E6EAE07BE873802FE6EAE0BB0FF80DF946 +:102DE000297C4BB1FF03766788FB4CD5C49F5E43BB +:102DF000E3EEE12699C4B3C3EB0412A71350BA91D2 +:102E0000BE43F1D7DD6B9AA05F1CF24783FC7BD5F4 +:102E10004CE39FCA78A6360EFC75C64F7729AE3EA6 +:102E200080BB2593C9831A7DBDBEA07AFC5D1D645D +:102E300033B0FB6DE983F4FC3762F7DB64F2DE78D4 +:102E40003F5BAFC1F7DB50894CECF3CD066C9F8341 +:102E50005D1BD33EB411E7EF490C27FB862D09FF1C +:102E60007E420019D58BED750D9D383CE737BC6669 +:102E70004F374E8D8F75E29E526F88733E05B33C7F +:102E8000DF9BADD1E3EB867E6E4FD7D879F968CC66 +:102E9000409C26346EA0F867E7ADE23F1BFED701E9 +:102EA0008FCE01F9EF26F29FEB8BCE97FF4D86F880 +:102EB00005E87DD8A7198F0827FAA0675659B67676 +:102EC0003FED97B3B9BED6BF8313D0D37FDB3B387A +:102ED000013B4640EA8C50FD4BE4FBF3824CE2CED2 +:102EE000785978C11F68B15D992EFE0DFEBA334640 +:102EF00078BFA8AC1ED2FD1B5CF5701F735766B976 +:102F00004521E7A49D553DC4DE410ABC8F12EB7EEE +:102F1000AD4E6B67C7378DEAF2899E13755ABB7B3E +:102F200066FB98AE9C9F9B363AE8B9E964EF395D41 +:102F3000FD5E8381EC778DAF46DEC142884F8FEB1B +:102F4000CA2B5C36353A0AE2D49774FD6EE9A6FCCA +:102F50009DD68BEAB5DF8D928B9C1BCCE8B3D46BEE +:102F6000FBC9EAB7EBF239BE045DBBDC2159579EC1 +:102F70003F9CADEFD75EA62B2F67E7C42A2DE5FA5D +:102F8000EF681F81FFFF00F516837B0080000000C3 +:102F90001F8B080000000000000BDDBD0B7854D52E +:102FA000B538BECE9C7925992427C9240C10F0840D +:102FB0009741794C9E2490E0490214DAA0C3CB0BD0 +:102FC0001671820801421241DBB4F56B060229A595 +:102FD0005A63B1D52AB60357ACB6B6464B952AD03C +:102FE0004194E2FD098D88885EB4E31B04C908287A +:102FF000F657EEF5B7D6DAE724734E1283F6DE7E87 +:10300000FDFFC3C7B7B3CFDE679FBDD77BADBDF6AE +:103010000E00C0E7F87FFBA80AB7BF08C00E1A343D +:10302000A56369FFE1C7F238AA0394E553693F1F1E +:10303000CD05FEF93C87FA6B6E7F26C05888DA40D2 +:10304000A6A7315B201920F483B2B4F7AFC4EA001D +:10305000EC771596856A6BA410A0C5068D9BBC58AD +:103060005E5192AB7A00167BFEE39884E3C346C7B9 +:10307000E9AE718701D8AED032681EC74629005824 +:1030800042AEE2077C1F120136E5016456C10D0114 +:103090007CFF73FAB9AABB2CF34BD80870CAD97B52 +:1030A000FB30BDDDF159028433BA9F3BEC01503C4B +:1030B000F4DCC3CF4F558AF747833660767277BF0B +:1030C000F1F43ECE274586C6F63100B7246B03D215 +:1030D0007BF94ED7B89F2541B8A0B7EFA4F0F353C2 +:1030E000C37AFF8EB18E4BFF8EDCC77A9CFC3CB35B +:1030F000A57778CC34E095DE7BFB0C7DBD8ECF06CA +:10310000422823FE3D55C0B1EB3BD9DCEEF82C0D37 +:1031100042BDAED7CBCF913E4212E2BF0A7FD994D7 +:1031200006909A966B071B4085E7BC0D10EF1A04BA +:10313000DB898E8CF7A1CC1E8BA78B2AB0BF1D75A7 +:10314000237D8424F81CA756E176BCDDD58EFFC70D +:1031500083B90ED4DFA8E3B81E3FF07AAA40B5C306 +:10316000F05EC6D3E7611D57838E7A49EE7FFC5629 +:10317000BFF6D77199FC5C79DFDDFDBC2FBC114730 +:10318000BD1FF77E22CE0106F2386B88AF34A8ABA4 +:103190008D20BC16428A9FF8067F02EE2C80EBE958 +:1031A0003795F8021F96E27B291D1BB6E2AF89AB6B +:1031B00053FC215CE30DB65826C1B106A21B00C723 +:1031C000FCEBEE0427C1B973F79F87043DF4F214BA +:1031D00085BE2B8592E4CF932E7D7EC8D902EF89E0 +:1031E000825E604A6C3EF1F578795CFE2664D554C7 +:1031F000DB451FF3A9A2E6CB03A9FF5A86F7277088 +:103200003A9DE63CDE9D124A4AC17E285006A33C08 +:10321000492514A753793BCB99D45DF60FE3E19B85 +:1032200042F0C0F5351DAF093FE7EE7E7EBEE35CA0 +:1032300022ADE3E7FE642FCB99093081E6771616BD +:10324000A646082E255E86E363BB2A5383C83FE368 +:10325000FE38650095D1E68D8ADD0170A139187EB2 +:103260006E64CFF506FB901B0FE97CA2DAB58708E8 +:103270002FC1C4DEFBFD46E7973CBBF61B925FC641 +:1032800078D47FD6989EFDAFCCB309F9A6C31511AB +:10329000AE2A885FC9C02FD2A51DEBE57A5DBAFBC7 +:1032A000D5AAEFE0D2B6AC49F1CB3E7C165481E012 +:1032B0008F0B0F6F4279DC2A3502D1B51BDAB8DCEF +:1032C00024F9EF95B1946DB10C219FC3FCBDA910F9 +:1032D000B453FDCF52B405F0BD5065E32FA3384E73 +:1032E000689D1D5AB0BC27E9FBBF8AE2779A422E3F +:1032F000C585E58584A16140BC355D113CE0E7F9F9 +:10330000364E088CE5723C95CE67038B884E63522F +:103310008A7F5B21AF67143D37D6794887CB0D573D +:103320006A87E8FDC7FDDA5F088E8713866A442F37 +:103330006A1EF86130D7C380747078C6D75201E135 +:10334000751EB454A517B819E562B71C581F276F2E +:10335000DE4EEB1D2F6FEAF8CBCE13FCDF315AFBAC +:103360002BCDE384136ADBB1FF8944BD4CC112BF8E +:10337000F7A13EDFEC3CF1DEE7FAFB276CA2FD444F +:10338000BAE86F8C6FF493F4F2DD667760BDA3BB8F +:103390005DBDC7D518C6FE99C3051D209E81D6DD2B +:1033A000F9C7B4AD84B7256D6F3917637B525E459D +:1033B000765E91E847EB58628F3AD3B1FFA7B9C167 +:1033C0000B04AF7A15B427E87D35EA9C83F0ED94C1 +:1033D000603ECDA3D381253EEF4C10A5319FA4BC08 +:1033E00059D979587696479D440F5DF522ACCB5458 +:1033F0000FF0F73A4B2DF599A2AE02EA5D2FC159B5 +:10340000E85DC8453D4E7288F4B8D2536F23372B20 +:10341000CC8F09425E68D9FFB594E8B32FF9657384 +:10342000773C7F3F3E5FD488F48CE305777EFCFCDD +:10343000F754A69FF7E9BB35E10420F8FCA3F2AAF4 +:10344000734807AF6753456CE87D389FD86E97B2D5 +:103450008DBEE339BCFF7BF89D3BFCA3FC9B48374A +:10346000D83BD84E499654B1BE1DE6F58DD6E1BA8B +:103470005256993E3CEE76005E771088DEAD768F30 +:10348000C7AF08BEB607FD6417F5CBDFBB5EDDF73F +:10349000BD78FEDEF3C2601ABF6CCFC10C2A7BE19F +:1034A000EF63CFE4F4CFDFF5D0C6F84709388DC617 +:1034B0005FE177FA697DEB95B7A7DD8FEB5D898CCE +:1034C0002CD3FA779AD7BB5CD76F867E5CF9B08332 +:1034D000F5A52187EBA083C75DD56E7E6ED58B5693 +:1034E000FBCD4A27617A46F2150275D4AF1635082E +:1034F000F5AB752FCC5ACBF2041A5D65B43CF3FCE6 +:10350000ECBA7EC89503D7115D67A5B72D127A4F27 +:10351000758AD2ACDF41117AE146CF5CD687376E2F +:10352000B4CE5B73129E6E6AEB673D3A5D7D5F9F22 +:1035300077599EA0875589D50788B5A1B06328D152 +:1035400003CEAB9EF809EC81ACB5F8E99392B07F5D +:103550008DFE1F15753C14C179C9C953DCA4CF7EFB +:10356000342A780BF51F722CFABE6423FA0CF0385B +:1035700067769E3C2A139DF984BE473CFE6C12FE82 +:103580005ABB535636097E699D44F2244FE0B5D6A6 +:10359000ED89903EB5C2CB9837CE6B6D5E66CF7924 +:1035A0009DFA16CA9D5EE46D2DE929EC3FA0506B93 +:1035B000A5F93986B5EF1F44F2FE56C9CF7C045AEF +:1035C0001EF1EB7A3B4884B792686C0DE1D1E703BA +:1035D00045C6BA37498C0B7ECD4D76EEC0A62A780B +:1035E00007EDC537944AB78ACFB3D26C01928FEBFF +:1035F00095C56937C6C9D52CC91668677B6571DA68 +:103600003C7CEF7A97908B39DFFAFB4AA62750D3A0 +:103610005DA5347EF0AEA9C4D76932CFA762C1F9E7 +:103620000237CE67D0454FBE0BE17BB30E6F63DC34 +:10363000ABAA62058D9E6E7878878BF9D5674EBBF5 +:1036400097F460B8C52B499391B5B5E95C3F6FF726 +:10365000A5115C57EA70588FB64307BD6F0F2B80DA +:10366000657D82766725CDE72519B663715ED152F7 +:10367000D370BC9CCB8C7E1127E9B3CC96B6676522 +:103680009AE74B8EF0369CD72D8F570C80B8F5EE0D +:10369000CE137AA70EEDF9783BBA0EDF273BBA0EB0 +:1036A000EDF9F8E7916637845CDD75ED847D0A8D70 +:1036B0005701CA7A85CB2408C5D9533B00A6937E0F +:1036C000A84FB38337B5FB3D635DF51204DA7BC1C8 +:1036D000BFD1FECC7FCBBDD2C7EB7A7B5F7ED94B0F +:1036E000FABAEA3F1B6DF253EA51BFD13CEB3F1BE4 +:1036F000F3857ECA4A5DEED6937F9111FF5C15CFAC +:10370000BBC6F172FBAFF575FEFA806DFAB65EE6E8 +:10371000FB7F75BBEB8A4C7B208CED574640DBDA98 +:10372000CB778D7E59E9E8987CC1BC76544617D199 +:10373000BC274C01ADB7EF9DD1D7BF52B73F76A4A0 +:103740004797323F28DA6FEC5EB2032ECFD924754B +:10375000F79FA5C3F3CC0CA1CF8BEDDAA2E70B4901 +:10376000AD285288CA85115B8DA71B2FB78ED296C4 +:10377000313FEBF46CE0E19EA45FD8982F5F1AB95B +:10378000CD25F59CF77A498C6FF897567AB5AEA39C +:10379000FE33C984BF9EF0B7737B973D0B5A8A9462 +:1037A000457258E8B77B5E1EE77492BCB141CC8588 +:1037B000B0982A674F7B9AEA3E195CA87F4EA2DC3C +:1037C000E6760D1D456C3FF96046AB84EB5D5A8390 +:1037D000FA09FDC5C5EBADFE57DBB88F480E86EC88 +:1037E00040F26BC9717F2BA95990EB9CB4EE4F90BE +:1037F000D5E8BD25B79BE5F9C9C33F76929E9716DC +:103800007B1A251FCF77DAD358BF69A753213B60B6 +:10381000E9DDE6EFD4EA7A84EB392497A057BFE4D8 +:10382000CA7CF447D03E816228263DF174F34E787D +:103830006724CD67612AC9F789081021CF3AECB314 +:10384000E2FC7DC31F794FAECCCF47B8CDB463BF88 +:1038500031B4FEE10316C7D1DD9D4592498E7D88C6 +:10386000FC3F02DF3BDDAC70392D5F9B988FEDF3A1 +:10387000F28393F359BEC7867E84EB6A5827E0D360 +:10388000F992B0E361BED0832EF9E65A82936B3091 +:10389000282DAC971B1BA99E6543FD8B7093E535C6 +:1038A000720ADB5F6DFCDD162938EB6A89EC28EDC6 +:1038B000F1EFE2B89BD26CD08272D1DBA25C41F214 +:1038C000D82B43630BBEB7E2D73FE471C2E942FE97 +:1038D0000F7FB4C286E63D8CDE2149F4F992682858 +:1038E0009754B1474DF4CB385E6A34CACF0DFB25EF +:1038F0003329ECB3E17899573AFD2D39346E451EE2 +:10390000C96B15C24CCF67287E80E3DEBF73782A6F +:10391000C9BBB3BB2EE7122E225C8A815C0920BB97 +:10392000C74ABFA79BF1F9E5DDF52BDA674983C9E3 +:103930002E45472DA904F5F78EC76DC23F16F3A893 +:103940005B17C9FA26E9B947ECFE6DF8D4FBA71955 +:1039500079B4CE1CBB2A11FCBE2929C2AED2EDB867 +:1039600005821460C1AEA77E4AFDB64CC2F5239D08 +:103970002C06FF50EA67730B7FEDBAA014A675E31F +:10398000825248BF7FB3AABD88F5D14A471AD9AF42 +:103990006462F466DFF667E75AFB7DE8882E7D9D5A +:1039A000F48D04FE6D043729364AD8898D61F63FBF +:1039B000D2209DF0FCA37C5D3E8F42394772694462 +:1039C0003087F8AEDEA6AEA67638827619D18FA4FF +:1039D000707F033EA0B43D49F663834D61BB038E07 +:1039E000697984B7CE5963F2499E9D714487B25C70 +:1039F00040792761FB83F9D50BEC088FFA4168DF2A +:103A000060FD2FF90B447D5874A90DEB9F3E71F3B7 +:103A1000023BC2B5FE8AE8FB548782DB447B7E749E +:103A200029F907830B36893A32120C423BA6E0AEE5 +:103A300005211CFFC334C3BE882EA279D63F7DB9B1 +:103A40006D531CFEBD05424E7E9820FA7D980337CB +:103A5000CC2678E74647C5C7DD3ECBB7E9724BD0E9 +:103A6000FBF26712224498C67BE0EB7DFC27F285CF +:103A70009E585EA5F7B3C77E4FFD9EF3A9E96CEF94 +:103A80009E4059C3FEDEE86D04977BF3D3B93FC176 +:103A900087FC3BEBF756901EF650BBF0EF8CEFFC2B +:103AA000295FC86D1823C6AF1FA4A4113EB2D285EA +:103AB000DD8C0849FB01C75DB6EA768DC08F57568D +:103AC000F2884F41891590BE79EE62761ECDBFAF68 +:103AD000F91ADFFB0F9D2E96B7E8F0C2B1C87EA998 +:103AE0007F7AF45603BF64E70CD6E1EB2D10F3A305 +:103AF000FE3C6E36C2776C37BD18E3F6B7CEE3FFF7 +:103B0000A47542A1780FE93C6F93D2BD0E236EF5E8 +:103B1000E15AFDBD12631E2AD3FFF267BE732FD593 +:103B20004151D365B6C77F22DE731BDF45FAC7EF6D +:103B3000AED2ED5C49FB8B93F87CD5C60E27D9BB82 +:103B4000ABDA258DECDD6E3ED36E89E72BEF70B1DD +:103B50004EAFAC795B98FF709ECC7F9AF0532DF4FA +:103B6000D2056F2BDFF6184F4D378FA7F2787DE126 +:103B700021B940E0FF7F0C0F2DBDC3B34B9E58E031 +:103B8000D7C57F39FA7B6390FF0A7BF21F14F4C11B +:103B9000B7395FF17B15E2BD55DF41FC51DC5A3589 +:103BA000D3F1AA1D39B6C563BAFBDF517B3840F2A9 +:103BB000BD2B2EB0E3F1D060FCB561570D903E599E +:103BC000F5D46F9F0CE1FB2B1EFB690AA0BC396981 +:103BD0006FCBF2E3FB75DB37A468144FB287524812 +:103BE0004E9E0CCBD3C3BDD85D37EA7C65D853F568 +:103BF000C0BA033EFCF5DF5BBF8BF3FF54423B07CB +:103C0000E15DBFE36FADA497F76BEE18F8685CF465 +:103C1000F7B1BEBCC6D3B816F1DCB0D36C07ADF8B3 +:103C2000D54FB354369842836D6C074506D37BF568 +:103C30000F3AFC14E7A93F2253A41F1A20D64AF3D7 +:103C4000B3BEDFD0FE0EDB590ADA73D9937AB6A37E +:103C5000E661BA6FD8F1A38FE5142A4FBE4EF1BDCD +:103C600086787F1AE15EDB873D35AFC01CDF35E02B +:103C700003E14CB65F5A1EF9D5EFD87E7C7D401E1D +:103C8000BA4170FAC1FF932261FBE9F6E1A935ACB4 +:103C9000C7D799E44E973D4E76802B5E9F0ABCAA0B +:103CA0003B258EDDC02E51D6392229E467D76D75AC +:103CB000F843F8B8EEB7FFFE10C58FE035977FA444 +:103CC0004AF5734E1BB54B5A4C62FB0952A4E26E87 +:103CD000FCACFCED7B22BE3250866AC4CF8ADF7F0B +:103CE00022FAA37D9B80FD573EFE16C763EA829EA3 +:103CF00046772FF8A96ADFEB8C7A7AC14FFB5BD34A +:103D0000C83E6F79E402C3FFE41E0906E4F47CBFF9 +:103D100076FB2927F1CB6944849246F8926B9CA9E3 +:103D2000BDE1297235D9BFD8CEF184FEF055443CAF +:103D300051C474CDF0AF7DDDE5AFA6EFFD6E4D0A49 +:103D400020BE3FB0370AFA7E60439686F3AF758493 +:103D5000B2142EC5F3DA5FDCCA74B7ECA55BB3808E +:103D6000F59F36D056C2EB1C48EBBB69CB3C5EDFFF +:103D7000520832DDD53E20737CE0133B4C7FBC17EC +:103D8000FE7855E70F17DC3CEEBBC2EE874DB89EC0 +:103D90000F9CF80BD64387E5F07689DAB7BD49F278 +:103DA000F1938E4C89F85D7EC9E126F8DCB23B6D5B +:103DB000AB0BEB8FEA72A4EAA54FA6111FDD92634D +:103DC0006F7429BCFE900E2F89E348B415504CCF78 +:103DD00081E37F2E38EBBC9EE204F8FC3EBFA93F96 +:103DE000C3EB836DAE44693C9659227E8C3F87A11C +:103DF00098FD6DFEE9E25B50CFD2FA9D8542EE362A +:103E00003CFCC1B4FB88BFD04F4945F89C3FF28EC3 +:103E10007310F60B796D3092E6D5F11ED7C19FA9CC +:103E2000A6FABAE1D1B0D30591783E7DF03D0B9F63 +:103E30009ADBD11E64B83540AA4A7EC207CED8B4F8 +:103E400067E83BF8DDED0AF943D83FCE1FEAA60B41 +:103E500067F7F39C6E7E33FC9D653A5F5BF165E529 +:103E6000F3C3163E872D82BFFBB67F438CA73A472C +:103E7000F821824F1DF26388F951F017A03C1C898C +:103E8000F47EEAD17D47AFC3759C6A7778ABF96B56 +:103E900066F959FB04F227F697D1FF4CF0131E2E5A +:103EA00038C97EF555A17F8AF33E451B86637BE1C9 +:103EB0004B7CDE2B5F7AC04FF6FD3F4B6E2EEB4303 +:103EC0006E5EB4C0F31318938A9F417DB1F232DA6B +:103ED00007B3C2D7F03FAD72F1E705AA88CB5AE429 +:103EE00022FE1C853838AEF8CD472CE73E4539C751 +:103EF0007AE8C1BFB15E42B0C65C48B7F5E18FB9A0 +:103F0000BE81F412D7F7CEA57DFF9EEB36C3D3DA80 +:103F10001ED1E54ED73EE43A0825937FB65BE6789E +:103F20005A27CEA595ECEC4773C22184CF06DD6EEF +:103F3000EF54622964676F4833EA70430DF50B8DC7 +:103F40005342F47E82BE8F1288A5A461D9A4FBE9F6 +:103F5000EBDDEF64BD8BF69B3DE154D6BB7171B7D1 +:103F6000F5C9FA7E8B4FF4379E17FE494EA1BC86E9 +:103F70006818A6F7162F4289CDF38E82689F2A5FB4 +:103F8000FC1DC517CF8646D8689FEDAC3BF63BDAE3 +:103F9000773B6BCF4D0F91FDA4DBA1EF86BE9685DD +:103FA0007382F720707412E13CA4390722FC6F146D +:103FB000A081DA175A52289E2D2717EE7F06DF5F61 +:103FC0008A80A778BE35EEB10202A9919C9EF10DC0 +:103FD000D47F4ED2F7CB500F71FC788BB97DC5AE34 +:103FE000534C7F2B2CF417D4F7ABADF4575DA8D30B +:103FF0005F1EE411FD4D953DECB7771E90C314870D +:104000003AEB06B62FCE229F2026D17F97196F67F5 +:104010001F95C2E4B7432893E9BA1EF980EC2A83BE +:104020003EADFE7B0FFFFE0F6F147F0FBBD43DF93B +:104030009FE3EEC7F2F493AF8D7A86EA4FBD3AF470 +:104040003FA167FFAA3D7F637FAE738F0B685E9DC4 +:104050007BFE3C94F471E7D32E3FD175E73A17EF1E +:104060004F86F624874752FB1081F796DD17C64529 +:10407000598EAF67FC7CBBD0C9783DBBEBEF6F526C +:104080007EC3D95D2E95D6D1B027897DA686A7138C +:10409000C2B4E9D3B9FB4271308E2EFED1F5D43BC8 +:1040A000455CB213E991F605D19FD7683D0DCF94D9 +:1040B000FEFB5AF23F76EC75523CBDEA4FFF358E5F +:1040C000E455E7137B9D24CFD06FFB05207DACDB4F +:1040D00031EE3E07C2F90CD980E84F0FFD43C3759E +:1040E000E44FF7848B804327C281D68570A9253B96 +:1040F000AC2F78FCFC5F161E1FB3FF50B76B02C8D5 +:1041000039F1709134F13C39EC9668FD7F4C194CD3 +:10411000EB1D86FADF4FEBBE308EE24BFDAD7BE749 +:10412000FF5FD66D832FB5EE57FF65D72DE8FFFAF9 +:1041300042A1C7AC7CD093CE9FFA16D77F97ECE70D +:10414000F95E22FF5FA0F517FD2BAEFF92F13E8EC8 +:10415000E2A05F16EF5945FF5FC5FB0B3ADE9315F2 +:10416000B2FB3B77FFD7505EEF25AEBBA8E85F15EB +:10417000DF5FBCEE2EBB490EB887E1FC6E87488737 +:104180008AE506DD1ED9807E058DB7315BDD260B05 +:10419000DF84FD143D560D8BF5FD870D90AF51BEAC +:1041A0005908ED8CED6CA7601DD7BD3158D648F18C +:1041B000241708FAFAC4EB7988E284767535F78714 +:1041C000A0F0638CBA32D1A550BD652DCE07EB2D82 +:1041D0009936A545ED1B3EB2F7C5F96437DA3D4E79 +:1041E00093FFE2B1F82189239C267F25019E55EC9F +:1041F000389F04BF1DC2EC07C6BD8FFDB522916775 +:104200009A08E190E2B92438B1DFB85131E0A4F165 +:10421000FA5DEA88D5643FDD5124FCD10DB01A5413 +:1042200082D311E17F76C1138C1F1D6EBE02E0F8B0 +:10423000B9DDCF75C78D750C473BA01F29D661F23C +:104240003B291F97ECBD78B856321C1BB9DE52EAE9 +:10425000525ACCEFF33A37A8954070DE405B02D457 +:10426000AEDADE728DFBDF83EB4D4522FFC50A57C8 +:10427000A32C8418E78D79F5FC20AF3B1BEC1C5771 +:1042800044BF81E38A0A903F2757423BC7ED02F6BD +:10429000D35DF62CE73328118A6FB5DC9C22F61F1C +:1042A0007241E53C1B4B7EC9E6DD0107D17510D993 +:1042B000564247C831F35AAECFF48026E1B83321D5 +:1042C000E0A03C0862EFED1C5F0D742CC1FAC1C286 +:1042D000CD3E8A873824753DB7CF90C2DBD9CFF564 +:1042E000EF4DC2FABC7503D369DE19D5E0F0527DFB +:1042F000768E9F4280872076640EE98DF9B27FBB6F +:1043000098EEDC0388B7393AD6AF4DBE656A12F62F +:104310007BAA48EC03CC87C03C0A615CDD1268A430 +:104320007DDB6B86C646A4C5C5399E29CAE17EF3EE +:10433000EC01C7CDF87C1ECD34BD277FCCA3C1F1E5 +:10434000F93C25E010F90D7ADE9476C557CA9B1A20 +:104350004FF0C275ADAC7685D7E1FC56FAFD6FAC77 +:1043600024B855BB14EC0195853543482E4E95CBAA +:104370001EB815D77BF85117B98F70EAE72F67532E +:104380009CDB5FF8ED69244FF3C0BF81F2F8964AD9 +:10439000FEE7BD84DF22C9BF9DE10AEC3F2CDB5262 +:1043A0007388BE33E75149223DF54E91D84F911F96 +:1043B00095589E66DC2B85BF86BFAE2D77B17C3AC3 +:1043C000B555623FA2AA3AB89FE2269B4B5C8A8B06 +:1043D000F1A6A5905FB44287F35F1CFE174650FF1D +:1043E000DF3AFCEB547A12E6FECB516E11BD9CAA6B +:1043F0005EF7339A4E6791CADFCB28AC298EE0AFC7 +:1044000073AA5FB2F33E60483B3CC6345EF0C7A57A +:1044100071E3AD2DFF158F7714FD5E8A139DBAB73A +:10442000651A6D7F2F05BF447E0BAEABF556ECBF12 +:104430001CE7477EF14CF0DF5548F423D7B15EB05E +:10444000E6531971938C424B1CEF41737D29F64959 +:10445000CAA7EF98FD31AB1FF65F459EEE38C0E569 +:10446000DDE303116B2F7119C3CFEA927F3A7E7699 +:104470009688B8EBF8742D189F9F31A658E0C9288C +:1044800077EEFAF4F59544F7852E3F0DA341DA1443 +:10449000DAE75D505B51486455E9CE7B8EEADF6C0C +:1044A000C43AC22FABD8C1DFB95E796B6A1AD66F36 +:1044B000F049FBA9AC5173A6A56339BA58E0E5C62B +:1044C000DC8AFD48D650ED9FE50C0ABFB992E8E2C0 +:1044D0002CAEDD85FCBB337A383B5ECF1A65052AEE +:1044E000617B9CBCAA7227803D0E3E53953453FDE0 +:1044F0006BBE81A6FE33D41C53FB3772479BDAABED +:10450000FD79A6F6DA62A1470E155EB86E0DAEF320 +:10451000D02EA742203C4470F176C3E550E9854A8D +:10452000A2E383A3030ECA4F30E65B506C67781496 +:1045300014838873D8859FBFBC8BFE80E97FF32CE2 +:1045400029BC0EF17DB0E89EFD4B100E27747F7FD5 +:10455000AA7C7CE11AE287B0C38F16092C83E07E27 +:104560000DFB6D86C6FD248FE656B8631457984D33 +:104570007100A9275DAD2DFFA09ADF2F9515E2E30D +:10458000A55BCCED8F155DFE3C7DEF31D42FB47F64 +:104590003BD79217319BF2B853A8343FB7D265A0EE +:1045A000D81C9F7A4C1271B3D02B425EF625A70C13 +:1045B000FAB4D261AD4E7F4639551E934A7269BC3A +:1045C000D3DCCF285F433BCC8EE3FC67B39BCB3778 +:1045D0009A152EFFDAECE3F2AD6695CB779A73B9B4 +:1045E000AC2D16764F4613E23B2EFF25A33AE0FC96 +:1045F000227EEA96AF215D9EC68E137C330E893CE7 +:104600003583BF8CBC850CAAC79D1798D9B42F38A9 +:10461000A500A0AD58DFFF59B2F579D28F3885508B +:1046200032BE0F757B9FA7FDABAEFA2D6F99DB6F86 +:1046300093F69BEAEB73CCF5DB2BF6C7BFDFD7FC19 +:1046400033AA554710F5EAECBBC5BEA5B5DD98DF2A +:10465000C1B5FE05BCDFE6D554CA6F0112F603A949 +:10466000DDD66B7E8201970574CE05C79D59E9AFF3 +:1046700089CF2FBB4F1FF73EFD7D03CEE0D7D4F887 +:10468000FC72EB78AF2D1BEFA038E76C1079347318 +:104690007741BA3ABEBBDF23FAB8AFA506A7F23915 +:1046A00006B21D88EE175CBE357E5FD15A6E5E5035 +:1046B0003364188E5719C89388BE32965CE3A07D88 +:1046C0008AA3B3DEB251397E18CE1FC7BBEE737515 +:1046D000C8AC3838FD49A7CBC37798F7578D72A778 +:1046E000BEBED76D22AFFCF594E09005A6F7DDFCC9 +:1046F000FE9F74797834598C331E0D3C19F5C0CC6B +:1047000061026E3006E13EB61BEEC677FB825317A0 +:10471000DDD123D4578BAA4123397FDDE7DA90D945 +:1047200071DF3FA8D3FF910DC21F22F8D6C4B5C3D5 +:1047300004F11D03DE3DBE3741BC6FE8EFA333211A +:10474000EC1276D45AB21B66A37E247D3C55F6B09B +:104750001C387A44F6BB585A087DBE8C7E5529E831 +:10476000EC97C85E9C5DE369A4732EA88F8710BC8C +:1047700097CD5F564DF149D0E5951BFF917D981778 +:10478000B19BE497552E65F423A7DE2B36EBCFC300 +:1047900094CFE5E89EE7597D9E7DADDB90570ACA30 +:1047A000673BF2F1399DEEDE93B5CE62E2173D6FC5 +:1047B0007FBC0312E2EDBD733A3D8CAF1079B17F3F +:1047C00029BF309BE873F58CE136F2370E4F3F97E7 +:1047D0004EFBCF065EBAF8B4A92538222E4EBD791D +:1047E000866B3EE153052D99E8E270A020A1C2D36B +:1047F0008DAFCD8173E91027BF70195FC857972A15 +:10480000E70E456D6C2F1C9AFC09EBB913B98A8D24 +:10481000F6478D7CEDB40969E23C45C93B1EDAAF31 +:10482000DD197DDB43FCBA00C20E927FDF848883F2 +:10483000E8F17A8872FD0600677C5EF78DA0715CF6 +:10484000F8268881349CEC6DE0F8E50313EEB89F00 +:10485000E297E3F4F83DB2FC465B9C9D3C6B8280A2 +:10486000AB5CAC5D3681E09BDE719CF462C6640794 +:10487000903CD690BE281FE860D18484C5BDE0730B +:104880005FD1E2DC09F1F0AE0E3AA9DF637A1E25B2 +:104890000190F0E448CBDD162F47C64F1078DF5269 +:1048A000A48DA3F71F9820F4FBF874212FE8DC24D3 +:1048B000DBB9B9AA6D539C3D30437FAF6B1C67D009 +:1048C000497CBED4DFC8F996955BF212A2BDC893AD +:1048D0007D45C172EB3C85DD24F4625FF833F4DB87 +:1048E00097D58F861E5C55AC7D9DBE6BB7893C32DB +:1048F0007BFA7C1FC10794B98CF75996F558E96685 +:104900005CC93BB71790415E6DE3FDF5713BD53750 +:10491000C8CFDA1C5AA0C8DEEEFEE3AADF7E7144DF +:1049200021F5971509FB6D9E3E2181E4EF664F68E6 +:1049300028C1E784E44FA0FDA6D0765911FE576C3C +:1049400021D1E1B2EAAC6184976BCA8B3A34AC7F77 +:10495000509D934F76E99DFABC4E82D003A180F022 +:10496000F34ECCF8C1501AE760D1807CFACE3533D3 +:104970005CCCF71F1C194E2782E068E1B2796BE826 +:104980001DDD4EFB375D4E7DF0E01AB6933EF00D17 +:1049900067DD82F282C73D385DF82D07417B9EFCC2 +:1049A00088D9BA3D76ED42AB1D26E4E4072427B151 +:1049B000FF9C80B93D63CB07C789C87BCA33617F41 +:1049C000F527D74213CCF697559E9DF48838C7EC4F +:1049D0005D705F3015EDE6E9398EF7C92F69929861 +:1049E0003E0CB936BBDABF97EC87D9D36B0ADCB87B +:1049F000EED4F00489FCBEAA6A756A128E3773BAC7 +:104A0000544CE319789B39FD668E43CDDC72B39329 +:104A1000F6FFB71405EE227A716CAF52691F7DD98B +:104A200096BC17E8BDB1A104C6F73533CFDA08FE4E +:104A30009B77A01DED27BBF6F264C2F3E107CF79A7 +:104A4000E3F393BBF9A2CD497E66E5831F0F22BE37 +:104A500030E402C01DF747980EBDC2DE8280EF0B26 +:104A6000E59CDEAF3F3917AA84DC46E6AB1787B278 +:104A70003F928DFE08CAB9AB4BF60E25FC2F590F9D +:104A8000BC1F7A7AC8FBF6433864A4CADD48FB9F92 +:104A9000541F57C8A9039CA7737AE0675B68DFAF10 +:104AA000A505EDFF6C6AFF94EBEBED6E85FA97C7F9 +:104AB000C0E4775CF599DBE4775480D98FA98BBE8D +:104AC000BD83DE57D6B994D46CF27BCC7ECD4E67D5 +:104AD000A4F545FC7EECA700DB883E951C8B1F34BB +:104AE000DAE207E599EADFC82D35F59F05313BE7A6 +:104AF000C3A9D078E7403A17A438580E6A4A2C3434 +:104B000090CE0B5798FA5F5332C3345EC18B11DEDF +:104B10000FCFC0F7295F78963B605E4FD3A74C77E5 +:104B2000939A2EB21ECD8BB49BDA0B0EEC348DE72C +:104B3000EF50AAC8FCCC3FE6DF47E58584AB7D7427 +:104B40008E4895A01126232B460355946F5C7CA2BA +:104B5000711F95A1CA463EEF184278B578F9FC233B +:104B60009F876C42F8535CE1DB32F039DA0BB660B8 +:104B70002DE91DC5A63E5023D1B99940564D0E9D35 +:104B8000A7099E227D52126BABA233AD133F6BDFA0 +:104B900047E58E8EB28D130B091E88671CB7CE6356 +:104BA00063FB79AABC6B1CE5A19C7D34A9203E2F38 +:104BB000DF387F033ECD5743713AEF887C8A3F054B +:104BC000AA9235CABB5CF5E4E51C6F3C30B1E2EF5C +:104BD000F43DE3DC1078CDE7A40F4CD4CAE83CC028 +:104BE000E10A59E4BF4C75B03C4BB485153DF8C89B +:104BF0007ACAF93507DBBBB79508F977F8050411D0 +:104C00004EFC709AB02F8B3B8639E2F96CB66E1F62 +:104C10006694E8F6380522719C5999471EA538EF2D +:104C20006D25C9FCBCB85A7DDE41F4A0D815F277D9 +:104C3000338E0594B138DE0E6FE15EF23F761CEBE9 +:104C4000289754EAAF8A7345D32BD65490DCCFB55E +:104C500003F5DFA14C49A2FE190BFDB6441AE7800B +:104C6000233C12E7B9BA5CECC7ACAE70FF96E2ED3C +:104C700019C740E45182B692E9E76AA74AF300BB3C +:104C80003FE77AE4EFF7508FA9AEBEF9F8BDBB332A +:104C900033495ECDAA5032292F69D6CF655D5E506B +:104CA00046378E4767B028D73834F0F8146C7FD871 +:104CB000A8232B03C25B711AF2052001EBB3A4AE4B +:104CC000FE0BA790FD31ACAB3D447CBC59D2EBA1AF +:104CD00041DC9E6119CF18BF68E7C0E31B3D041F8C +:104CE000E3FCA0924971CD0C5BC7383E6F67EBE0E7 +:104CF0007CF29B6CEA282A4B4706CB4A508E5E76A4 +:104D0000313542F0395FED0C131C2EBB78CD00928B +:104D100073A8F71FBA97E86D8A83E5FB0E67473DD6 +:104D2000E509C4321339AFDDF1D4F2463A7779D3CD +:104D3000CF667C83FDA0976CE9B2D437DC3214C116 +:104D40008F863DF191AD6B9D1A9ADEF091D45D276F +:104D5000BE5CD5BD4E6D849BF35EBAD6EDC6FAE25D +:104D6000AE7AE9C27771DDEA928773291E780E3C2C +:104D70007C2EED5CEE75D7127ECFDDEDE0C3933B6C +:104D8000A82BD1B52F51C4D5BD815CF2370F750862 +:104D9000BBB31DF1AEE1428787A29EB185F4BE3D53 +:104DA0007D13763B5736A08AD677EE36A0A024DC5A +:104DB0001475828AF26447EE92964A2FD1A59A4ED4 +:104DC000FADB58E7311A07EDFE6313B59B4A38EF5B +:104DD000C488A77EF7CBC553ED31CEC3730E87468B +:104DE000CA3B6E28593B86F4F7B15241FF0D53245C +:104DF0008EC337349D67F956D7748EE16B9C1B3D8B +:104E0000ADE721B739C4F9E1BAFF966F20FF12E58B +:104E1000CA46299FCA679DABE3F814DA3FEE928F2A +:104E2000E36DFDDB7D89C16AFEEE2C499947F64AA8 +:104E3000E48FDF5F4879F6B312947914E7B9BD7453 +:104E400085A80F51E6515EFEC3257F16F581CA4F36 +:104E50006D281F5F288D8A7A8EF20AD5F796E8F5BD +:104E60003CE515CA33D851FAFAC22983D8CEE0FD01 +:104E7000AAB3D313D8FFEB6B3E739A9E31C5597A10 +:104E8000B4CB929093F385FCF968C640966346FED6 +:104E9000F32A9BC2F9CFBF2C912CF9CFA050FEF37F +:104EA000AA511D8B52F83CAC7F2AE57FD5053DBC4D +:104EB0007F30A7690F7FF7B04D1D4272F27459F031 +:104EC00021C2FB99E40EE6B397AB5FCE22793B6B30 +:104ED000A27E2F89121B41F8590041F6531658CE75 +:104EE000CBCEF58C70D03ECDDCF966FB6D0E44D890 +:104EF0008F995DFDC5E74CF1BB8B9066C0A1C36384 +:104F0000557ACE487D5E7F2C21792DA963A9EEF0DC +:104F1000766409FBFE5195F54AAE9BF7B313AF38A3 +:104F2000362ED80BDEDB9B517F222B3D81FE2C954C +:104F30006388F7480EDBA34E3F8E53AFCBD5A972E3 +:104F40009D4CFC7376670EC4DB712FEBFA2275A7BC +:104F50008807798723DCBD04DFC86D9C5F3E46C0AF +:104F60007B952D924D787859D70B065E116E7A1E7F +:104F70003EB6E7D1794CC403F6BFEAC617FD2D71E2 +:104F80007898A5CF6B47A2E0F7D81F12C2DB727AE0 +:104F9000CEF3A43E1FEB7C2FEAF8BFD4795EA47950 +:104FA00016F53DCF8BA4AF8AFA9EAFC1B7069C0C15 +:104FB000BE055D5E2D989FC3E73F8CFAECEA1CF6B8 +:104FC000138D79F6A49F07D5DEE8A73FBA39566A54 +:104FD0003E776EC0D1989F210F76E8E724BBE79714 +:104FE000B6D53C3F713F416AD31F593EC8C9767E52 +:104FF0003E37D7B795F669523BCEB2DD96AAC2CD01 +:10500000244F7DA5C304BCDBFFD69A5148CF1D12A7 +:10501000F17F6AD32E7EBFC7FABEF4BA7A9797E5BE +:10502000280858DE914C96C83E0E9AECC10A3AC93F +:105030001E9FBFE9BED9B20FF01D53FFAFF9D69A3C +:10504000DA67A83FB4D8BF7799EA33FD3FB7D8B73E +:105050005B4DEDB3DC0F9BEA65D10EB63F0F354FCC +:1050600067FF79F28918DBA111DDCF7E56F7B39F78 +:10507000233F1BF9733FF9D9581E68F6F3F3FF6815 +:105080002EE1F2C5668DCB8EE6009756BE2EEC88DB +:1050900016523E5B893795FD90C409C125A5889FAE +:1050A000D223B111E47C4C3CD6CEF6F186BDA536B8 +:1050B00027C51F5E94C30912E9C909A9BD9DFF3424 +:1050C000CAD4CF64D0E2E24CA9D531A03CEF543D24 +:1050D000EE32CBF3EE143E1FD2A448A9A8075C76AB +:1050E0003F14627D6850B93984F5E5A5C27E0C682D +:1050F0006BD94FB816BBD23EC87C37DA4138DFF9DE +:10510000B552B885E383216EFFA65BDC1BF0C4813A +:10511000755C5FE08188CCE738C47D12F37492AD92 +:10512000F0CE799EE9B311FCD4FF5856EBAD6EDE9C +:105130002736EE8F78DDF6F99597AEB797534C8CFE +:10514000F21D243FC70B426976DE9FB0EA53AD548F +:10515000C4D3AE6E117A3E96038DDB707ED7905E1F +:105160002539A6203CC88E6D526D040F830F4BA2CB +:10517000B1D60C2F5D8FE5E0FD9B3AF8781A85D803 +:10518000EAB4DC18EDDF17BD1B6C21BA30FC1F83BD +:10519000DED17FD8974272EE38F03E4FE2E41FCA6C +:1051A000E46F949E0FB75079D5C57699E47E7F7EE3 +:1051B0009231FF5DCDF3995EF63407B98C34D7EAAE +:1051C00074D8C8F5E79A9BB8BEBF39C4E581E68DAF +:1051D0003A1DB671FB8BCDF772FD507358A7C78788 +:1051E000F9F9311D7E7796EAFAD25DC1F145B08BAF +:1051F000D2E60E59F10FF1F84F4C17ED8928FF4315 +:105200007971F480F827795DE7D3E5747F7490BEF7 +:10521000F156A78DCE856C7698EF3FFA72F430D7B1 +:105220008306E8B09E72EC5A50395E699567685FF4 +:10523000F889EEE700DA7D695F426E43A39F421072 +:10524000CECBD02EC9F92AF645B091E6D3FFF704AC +:105250007E6C490BF95E2EB4D3F9BCB423EDE82281 +:10526000BA6FC2F02F7BC0C5E26F96E9F7607CD9B8 +:1052700079227C1C4407FDCDF38989DA2B24B70CF5 +:10528000F824A60B3A491CE4E13C6FA72B1C5E47AF +:10529000F2E69904916FE1090C8D3F5FFDA62E6F38 +:1052A0007E344A7BB394F7072FEEFD9CECD00E07BB +:1052B000C7D7EA9F7EED92ECA406E59CC93EEFD2EB +:1052C000F3928DF57C830D82949795EF02B78473EA +:1052D0005C3DB1F27429DB25651D1AF1AB62F7C79D +:1052E000DB51D6B2A1E9631EBFCF769BC8FF6AD857 +:1052F0005DA4C49F0B1F3351D2F3E2BFDABD63E557 +:10530000B1F92639F12FA73FB5474CED00D142C284 +:10531000FF755EA117AE09CE607C2C8076E6C38552 +:10532000D0C1E52288711904714E7B31F8B95C0255 +:10533000012EB71405874DA478B533C07191431081 +:105340005B42F7E97C34B954A9809E72F152E5A022 +:1053500021FF0C79D8EAD4CFFD74C575BC7914D778 +:1053600031F05138D1BC4F67E5AFCE3C95E7DBF962 +:105370008749360FBEDF79500E4B6CA7A9FB39FF6A +:10538000295FDCFB52B050BF9F0905C848CA87B1EE +:10539000DCCF74AEECDF582F9FA3A834F1ACDD9FB7 +:1053A0007B7D5C1CB445DF7F7C184B3A6795B2303F +:1053B0006A57E3E8ECEA89828F2A164C01D27FF61D +:1053C000851A2589418A22E24253DD509880FE28C1 +:1053D0005C3C3786C6BD5AB71336392042FC30A034 +:1053E000244F22BB62FB28ED9A899971F72551ACB5 +:1053F000F532E2139443C42794FFC572E8672C6F1B +:10540000AF05ED79CA63A8F7AB2C5FE680808715FE +:105410004EF5657F63BEAE47BE26F858F977F1CEEC +:10542000BDC7E8BCE63F6A872E36EED7B1C017D7B6 +:10543000B582E8C9BA2E235EBC0AC4BD5A772C3C9B +:105440001CA0D2382FEA84883698E4D0CEC781E4F5 +:1054500050BE2CF227633384BF63E5DFEFEB78A8FF +:10546000D3E50104D50292DF9D929A2FEE57026197 +:10547000BFEF19CDFEC5CF261AE76343BA9F54B6D6 +:10548000E17E01673EDF763AA1F77B7F364D14FB64 +:105490007473DCE74DF2AEBEE96F2639553F46E046 +:1054A0003FBF452DA0FCB435FA3EDF77F2037710FD +:1054B0003C56B4DFF5E48B2A7D77CBB7E83E82B368 +:1054C000073C6CB7C08B990C23E31E3363BC39EEE9 +:1054D0008F75BDBED5B45FF4F2CC57594E93DF4EF5 +:1054E000E7D30E4BE21E32637E876D1DEFDF9FD345 +:1054F0002D9FD17F7EF37B39249F737E3486E0F924 +:105500000707C7BBEA68FE19E44707B64DE43C1B32 +:1055100091477B78C695EC9F19F65DE7C9DEF7EBFE +:105520008DF919DF31E6755A924C707C4C87FB6916 +:10553000DDFE79D9D17186BEF3D193574A1460EC60 +:105540007A9ED6312ECDD38D9FFEEC22AB5D5CE1F1 +:105550006DE1FADC7EEC2294A4CF53BF63AB855D92 +:10556000347F599B83CF137D457BC8986F4B328422 +:105570009D54EFEF7E33CFD17D416FF7FD6636103E +:10558000FB62653E11AF74D17832A56D867D541AE9 +:10559000F79A19F79919E7748D7BCD40F3FBC8BFD3 +:1055A000DDE0ADE4B8C709F034529C7C5EDAF472F9 +:1055B000FC2C2C583A23487C31B72585F793EC4EC8 +:1055C000BF7D2FD9095F17FB7BE84FB0BDFE8A2650 +:1055D000F61D0C7819799AF6B4D034F663AE43947C +:1055E0000CA67D0A3FE78D5E8B7625F57FD5DE988C +:1055F000392687F6CBEE1E47F7752D97C3296371C1 +:105600001D1F1EFE75F1417CED14449C1E6C5FF560 +:105610005C94EF1B6BF8D2FBDB41AE2F83B607F631 +:10562000E2B8AF65DD77EB5EE886C37CED97EF2DE2 +:10563000C15AADDC9E552175EF475D485894B5D7EA +:10564000DBBDDFD1DFFE46AE1C942765D23E47DBD3 +:1056500022714F9CB8D7113966289D939B8443D102 +:1056600079DACE4C4187A18F81E1D7E9F0B35D13A0 +:10567000FA4465BBABB0CAC6F884CF558ECB4EB2E8 +:10568000DCBF5678A5C82F87BFABFC7E79CC9C9F2A +:105690005138FE2732BF8F72713BC5853EB37FA163 +:1056A0001CDE3649F0576186AD313E8ED1E2CB1219 +:1056B000F140BDEE52158E6B4C9C24F46C21C4CE8F +:1056C000505E763DC5970BB9D75C7731AF93E974DF +:1056D000D2AE537C0FE01619E982CF25B757D138E7 +:1056E00065E44FF829FEDBA8097F0E7D1BDA4FDC4D +:1056F00069BD674DE42D2768D04E7CB649EA900914 +:10570000AE93D1BCA6520385EF9FAD043F975320C3 +:10571000C0E53468E4723AB471F97568E7B21A3AD0 +:10572000447F5F5288CEA74E0437DFF7290FDF276B +:10573000F8006E53F8DEA119CB6C14972EFC37914C +:105740004FD51F3C16EAF0F0113C0ABF3A3C68BD49 +:10575000B40F3C4DBFD7F77F0A1E5F8310F3FD0CDB +:105760000873F90D88D8057DAACF513EF6CC13C039 +:105770007203AE88301C4AA241BBD00F1678541970 +:1057800074853A3AADA75C5BAAC3218DEE182CEA6A +:10579000BE67F1EE492AD39771DF22F29D4FF045A3 +:1057A0009B4CEB6F9584FCB5CAADC2A4CA732A8A20 +:1057B000F67593FE783DC5C10B0B2AD70CA7730174 +:1057C000939E13F54995BF1F86F53B27FDF97ABADD +:1057D000EFA6707C658103E1B8563A70FD14AC0FFA +:1057E00057FD3EBAD7EAAC7EAF55CB4BDFE77B9A8D +:1057F000D08652246C3FEBF9965F213D9AEDF1D3B0 +:10580000BADD2EBF3FBF90B7E31AD79692EA6DE498 +:10581000FE885885E22DE9D3C5BD4E4341DCC7F46F +:105820007433F03914637D6316AA6B24C453E6897C +:10583000D002DA9748CA0F6C9854446C88E3E0B8F9 +:10584000F72BE23EA8BB27E9FEA9F7AE7DC142B225 +:105850005370FD38EF65F9814DD4BF33D91DA24097 +:105860008431EEC3BA3D596A6F93D778E8B9806F37 +:105870005FE5B393B49F901CB23EEF4B1FD9922EBD +:105880002EAAC7753590AEC0F23793825BE8FD064D +:105890005B7468013E5B97F4A693E94153F85C4161 +:1058A0008B419FB5488F440FCF0A7AEC3A2F40F6D0 +:1058B0001AEDA72DD1644AB5CD9A1F5B94E2A5EBF2 +:1058C000BCC4F81316C68A498EE3771EE1EF38A3ED +:1058D00043F3F03B77CFD1BF03D982EE74F9D4B054 +:1058E000E76F67E8BEB6DD36E41B619707208EAF31 +:1058F0001AF624D889AF1A3E8470520EF1D9232D9E +:1059000064CF97229F81B88F6A1FD939BBD688FB95 +:10591000511BFEB47B1FED57947D2381E345E52F9A +:105920001F1F4EF6F155C7A32D14C7EBDCFDEA602F +:10593000310F639FEA82F455F4F954F9B61F937E50 +:1059400058BDD60E742E79B5D428EA0EB722CE25CE +:1059500077B42E24B86BEE189FBBD0F3F46AF575BC +:10596000E138FB4BB1FF477A9E3DAA3D96E32AFE04 +:105970006379205FE4F3C69F04515F63FB84635641 +:10598000391FDB4FF93175FA7D6CD6FB45ADE7E089 +:10599000ADF92DC727E9F92D4360C857BC87ED1D28 +:1059A000C2AF710F9B717E79F503C3B7D1BED5EA43 +:1059B00007D630FFAD1E32269FF8CFB8970D22CA0A +:1059C00015D4EF3149ECF3C1F4334C3CCBF4B92D91 +:1059D000DF28F17EA33C5C8612F487C63F3460C5A5 +:1059E00077992ED083F2517DC2FC87BD6C3F354242 +:1059F000199FBF607BF2B1B4D8301E374D8510D2ED +:105A00006F4B426C18C9D3D06EB79FCFA36CC960DF +:105A1000DA1D1EF2DF4B7A7EF55AAF44724329132A +:105A2000722DE74809DF637916F53DE16375F228C9 +:105A3000D3BD93D6B290E61967EFEF7DE9DA24B2D1 +:105A400087FF600F2451DED9D923C3BE303E5C14DA +:105A500041A07F411CA3F0C8ED1D94A75478AF9DD1 +:105A6000E161D0DDD3CD5AAFF9952A84ABE85EC0B1 +:105A7000D537A11CC2FAEA17FEBD85EEF75CFD43DF +:105A8000CEDC457B665C2AC167C70B32EF7B15C352 +:105A9000C32D65582F42FA0C23FD3C0DED32C9652C +:105AA00097CF066A1C9D24A889A0C6C5199272D3F7 +:105AB0004DF564FF2053FFD49261A676E37C8861A4 +:105AC000DFA6695798FA4F800E7915AEA304F92026 +:105AD0008233CD989E6F6A87F382EE4BF09FD0930E +:105AE000027FAE904B213D3CF1B4992F4AA28D7CB0 +:105AF0007F5C82CE370947ECA673FA2ECFFBC7E94D +:105B00007E3F573FF95F5A997E4F613664F796FFA3 +:105B1000754F528A4DC053C4C78A61C43D65D85E73 +:105B200074C0016195FD46D0F39DC2E4C7749F1B0C +:105B300009B750BF49241710EE990133BC07CC3781 +:105B4000C37B60D00CEFC1B566780F6934C3FBB27C +:105B500026337C734266780EDF38D1D47F645BA530 +:105B6000A97EF9BD5F37F51F1D9E6DAA5FF9F0751F +:105B7000A6FE63DB179BDAC7EF5C61C63F8A7582BE +:105B8000C3D35180FB727AD2435E64B5B9BF7C5CEB +:105B90005E45724F3FAF5170E0BBBDD24308FF116D +:105BA0003D58F1DF92F07DC67FB4C6D3284D647AAC +:105BB00088901E4ED0CF17F5A0877EE8606D992E95 +:105BC00027753A30E4635F7C6BE079B1AE97916EF4 +:105BD000368C31E235B89E80C7F73CF9034AA59B65 +:105BE000EFFDB8276928FB4B81E1D0487971171286 +:105BF000C639486EA96BA5185FD268F117254FD337 +:105C0000AF484E6D69C1F56453DCCF7C7E67CE74BE +:105C1000F3F99DFEF6378A3A22A67ADE1190494FB3 +:105C200016BDABB624E3F70A8E8B7C2DAB9F5A18BA +:105C300015FB2E934E77ECA3FB4126E8F79397C410 +:105C40008CFD95C65F129F4E4279CAF7661F4308C6 +:105C5000E0FB4E45BC8FFC934BF6701324FA897F12 +:105C6000BE2D0BFFF8822DC8F6A1D55E6CA908B039 +:105C70007D8BF67F36D99981BCE09365456232848D +:105C80006F59BFDF7FB21BFD61CA95817620BFB718 +:105C9000B32BDF28B888EE11EB24DB6610DA6B2D0E +:105CA000D72F0A911DE005255A4CF14FF173B02C06 +:105CB00018294339FBB624E2A235DA3B4377E07C6E +:105CC0009F25BB97F6FF17B673FC69FB286D5F59DC +:105CD00051FF7923465CCD88B3ED688E709934C648 +:105CE0002F131D59E360519B32258FF4D66AE17F53 +:105CF0009FA24995F27752589EB8A1C315B7AF1726 +:105D0000774FFC06DAC734EE895F2CF9D92F5EE9AC +:105D10003BCD710E972CF1FEA22B75CC36111F31A5 +:105D2000E21983E52F63FFF4B7DE95BE93A638181A +:105D30003C9A714979A271EBFCC52D825FF8BEDBFC +:105D4000B7670CAE2479DDF33B6738BE767DE34B55 +:105D500026FABEA1E935133DD784DE32B547BD3101 +:105D600007C51111CFFF4DF85BF564C28FEF26799F +:105D70009128B1BCA9D9E1F8169D2FEF7F9DA7F816 +:105D8000FBC79B3B189FC63ADF6C3EC6F568739411 +:105D90004BEB3A8DF883513A9F157F572286762434 +:105DA000DD3FDA5F1CE2FE72913FF06D39F0A688AC +:105DB000F74486501EED855690849F195B44FCB0D5 +:105DC000504AF1937E6C1DB8FF0D8A4FBC624BE5C3 +:105DD000F5416DE40D8AAF376C127E09689107C8F2 +:105DE0004FEC4C49E1FAD8BCE0B072E2AB317ABF7B +:105DF0000C9BB04FBD912124A7CE64D29DB6F4F781 +:105E0000210223B91F2841A2CBDA74F473D3E8EF3F +:105E10003F84C6513E54B0BC7D11F97127124367CF +:105E2000C80299BFFB37A2EE14FC58BBFBA7CC7F7E +:105E3000AFD864F63B424F4B224FCD1375D2398C0D +:105E40004F738379343EE57371FE3F3E9FFD057FBE +:105E5000CFA1A45CE4B794960B3BD32867970B398A +:105E60005C5B6EC8E3DB47F17D04D52E203B15BF9C +:105E7000AFB19DB8C7C5FCD67D6F2328746FA377DB +:105E8000B87A8EF8CA2B03E7B17CA33CC714EF2580 +:105E90008792FC9FD94FBA385ED035DF23227FF43A +:105EA000A31922BE0C14842AECCEC3FA46B9B03B27 +:105EB00057BDF0F69B24AF4E9705AF298FCB575AAD +:105EC00095B297E35B35E52A7F0FE7C97EA24B8643 +:105ED000F5B44FB0CA2DE265FDC5C9FB5AF7473787 +:105EE00075FC8CE2726792D591F41DE3BB388F9AF2 +:105EF000F2B8F519F3E81EE78BF9C288FB1AF5979B +:105F000067FE6014C9B97CCA47EB456F7E5B87C3E7 +:105F1000710758F2D574B88191AF26EEEBFC898EEB +:105F2000E7F5E562BDCF3BD53536812F3FF9F5DE8C +:105F3000E18D61A2536F86B8AFD91897EE27A7FD00 +:105F40009A858D39BF7F11DB573C3896CF3518F3D2 +:105F500030C6FD4EBEF6FDF2387F1AE94DDC6F32D9 +:105F60002381E963D59ED7DE24F9B0FC57630B0883 +:105F7000BEC67B56F8225C393FEEB02DC2F043B866 +:105F8000FE88C67DE2C061CE4333E0FB55E169FC8B +:105F9000BD8ECEADDF11F7140F0485CEE9AFDAF573 +:105FA00067FE7B61AB8CFD17CBDFE7B0EA1B058298 +:105FB000DF243FD305425EB88CF7B2EDA6F7D6E6F4 +:105FC000685BCB797F0454D2DB2EBB1E57D2F550D1 +:105FD00091AE3FA563D7B6903DDFF5F739AE407D72 +:105FE0002EE2A53C4FB75BC449BAF4BAE457B93DB9 +:105FF000283F7716C7955F167A7C0284D81F2985BB +:10600000600B193F2EF966BF38AFAFC7AD7EB89FA2 +:10601000FD76926064570CD1BFFF8BA4338F47B0DD +:106020001C16F05792581E313FF0AC835BC23CC93E +:106030005FD67C9AD32AD8DBDE84DFFBE56A631D5A +:10604000217DFF47ACC70805AE4B1AFA2CC527B611 +:10605000E9F185614975361261972F09ADA3727414 +:106060009D7FD032B57BFCE1AB4B3E0C62BDA2CD37 +:1060700065A338984313FEB17B14CA4CA26F7BA36F +:106080009BFCC257CA455CF65CF6E1B551E81BFFC4 +:106090007736BB8F4E89D3238A1D24714F84F89E97 +:1060A000D2E4394AE75F87346571E99822FCF61F2C +:1060B000640FDB497A64CD58258F4483F1FE9972D1 +:1060C000CB3E2AC0D125A6F886FBE892B8FD71091F +:1060D0001473FB185F773BFB63AAA93F40AE653C96 +:1060E000BFA51ED689A5C4F29E66AA3BA69BD77102 +:1060F0006E8A9217CFAFD67B4B7FD4EC33C1C96386 +:106100008F403C9C3C4DD90C9FB4A6515CC6E11B12 +:10611000B42CFD7C27C22963A376523F1F046FC7AE +:10612000C54F48D0BF6D9A2F76277B967E91A9ECFC +:106130006AD7288EDF173E2FB5BCAB196D9FB8F517 +:106140000C83592C177F1084C6B528D7F6662F7696 +:1061500093DCB8AB597BF95DECD79A9DCFF18634CF +:10616000BB22519E7EFA147C6EF2C3C2267839B4EB +:10617000B91D533268DED3DD64270F4C9FCD74A95F +:1061800082C6F50DCA6C1ECFADEF535AE7B71EE7B6 +:1061900017893B3760D7CF770205C94BBBE14AB9B6 +:1061A00072ECBC5CFC5C263FC629811EFF12F073BA +:1061B00018EDFA3D7E89653F0BDD28E479A3CB47D6 +:1061C000F57B43F4F7B6DC74CF28D7AFD35ABD7C48 +:1061D000DFA72AEAE2EFA225E4C6E107BAF1C1F39C +:1061E00023FC79BBDAFF4274FB8FE2E752CB0D163A +:1061F0003CF668776AB5A49F36648EB2C59FA7FC4B +:106200007B79E53593894F6813E612ECE74BEE078F +:106210007903457C5EE047B81258564F63BA4F8BFE +:10622000A7F33EE89EE275FF5B74DF6A81D766875D +:106230007F20F1F1E6B5D2FCDECE0F5F37D966BA2A +:10624000EF3237041C97716CB18573248A4987F843 +:106250007CCC846A9107E87EA3AD86DA9FF23A553A +:10626000A63B3D1E516C2CCDBBB49AFC8DA7B688C5 +:106270007DBA4FBCC0F7F9494B9B0611BF39B6BC7C +:10628000CFE70A294C4D7AF372BA0FD24F71119BA6 +:10629000E9DE9FF13B134DF7048D6D4F37D56FDC71 +:1062A00038D8D47F7978B8A97DD9BD579ADA573EC6 +:1062B0005C60AADFD436C9D4DF05373F3B96E226BF +:1062C0007ABC398DD6D60B3DC031713F11AA2596C7 +:1062D000DF975BEE2F1A5D6DBEBFC861BDBFB69F75 +:1062E000F887357EF2C8643D8E66DC5B6BDCAF32CE +:1062F000C57B49F7AB8C7A2E81F7E336F8845D30A5 +:10630000304BC8A5AAE90171BFAC8E3F3A2E2CE4F0 +:106310008A2A117DEFD6E5930107C7F98E2A7ACF35 +:10632000F999A08FC95E5B58E33C863A96A3ADDE2F +:10633000D9FCF731063A033EE2C7094407E308EF08 +:10634000F37DD49EEE15785F1E964DF07111117994 +:10635000059D901DE1F00D93C8FF32EE23EE01FF85 +:10636000E3E2FE27E3FCBD15BE93CF9BE19FFE0F4A +:10637000C2FFB5C9967B83BF24FC9DA1B6482AAE57 +:10638000C7A1804A719AA94B6B39AFC9E1F333BCFD +:10639000A6EBF742387CE21CAE555F6C6D8648BCBC +:1063A0005E76AC572A81F70BEA426E7C6FC346805B +:1063B000012AA12EE826BC6DF055BAF9BC7D38C87B +:1063C000FB88EB510FD17C5B074E73931FF0699AEA +:1063D0008DEF5A6BCD09FA482EB46E1572415A7A78 +:1063E0006F0DCDA3352D2BC7C5FA2492A0DF979D45 +:1063F00020EECB05B77E6FAE5D9421BB68D7B81C8D +:10640000B5C5CCBF4047B4B15F4628D1F25CB351AB +:10641000FFCEC9C20F4F9B9E6EBEEF4B1B64EE1F9B +:1064200082C3638A0DD2647AB1D5E8F14DE253BBE1 +:10643000BE6F6AF7FE2444CF8DFBDE12F4BFF7096E +:1064400021412F46BCD36EB93F6CD87AEB7D6316E1 +:106450007AD1F9C3F8FE40A7C0D7FA91C0F75559D1 +:10646000E7232D9DEE23BECA819F003DCF297129D0 +:1064700061DE4150996FEC88AFFB24BAA7B88DE577 +:106480009F5DBF67C23A4F2B5D7DE9797F493A2F07 +:10649000BEAA0F3AEF432F5AE97C634EAB8BFAF753 +:1064A00075AFB1ACCB91F5FA3DC8E099AB9F9306BF +:1064B000E67F87A218F903368A5FDC59FE6994E209 +:1064C00037E1B53EB6BFBBEEFDB6DC2762D415BDE5 +:1064D000AE9625BE258B3FF4F3AC7EEF8C96CCFCBC +:1064E0006183C9F974EE6FE3CD4417C63A3246B4FE +:1064F000411BD27FC2C57B80E456C208BF1414E59D +:1065000017C20FEDCBF62923FB6E4FD3EF9BB13EA5 +:106510005F7D959BE19516825EEFB969BACAA6DFE9 +:1065200033AFDB833A9CD0CE78CED5CB7D6C5D701B +:10653000F10879943E05E71587D79EFD43A67B5960 +:106540000C3B44F189F96454AB6B096E8A22FC055B +:106550003514801A92DF7DACE7765A0F7E3FBD8FEF +:10656000F5FCE42A615F58D793FE4F5B8F52C1EB75 +:10657000F10A3F4E0D6940F7CA24D8DBD8BF490065 +:10658000B79817CA91F87DDA84EADED773AD811F18 +:10659000BBBEBFABAF47D1FCA935BDD857D6F5E0E0 +:1065A0005CDAA7E45EC27A3CBDEB176BBFFF2DFF40 +:1065B000A3EFEF0A3FA355F79B8CE7CEDBC4FB4E5E +:1065C0007B10B2E2E0B6EF2A99FB1FBC4AE421BA85 +:1065D0007CF85EBC9F11EAE1F78406187E0FE24B5F +:1065E0005B22ECC864BFAAC7B3DA38DE98E453F381 +:1065F0003741F77C56CADAC1ABE2FCD104FA2587F1 +:106600004AAB3D8EB832FC4E30D9DF5DEDE457D950 +:10661000757962EFF663FF47ECF34B2D093F6F7F0F +:10662000817C59EFF4D7EAE7FECA7CC59C7762818A +:10663000972E4F359B0E9F006845747C2D18817FE7 +:10664000E23A8CF2FF0118C8B63E0080000000005C +:106650001F8B080000000000000BC57C0D781CD5C6 +:1066600091604D4F4F4F8F349246B26446C6404BB7 +:10667000D6CF180BA76D8451B2C2B4462369C42A81 +:10668000DEB121C6385E32961D4E84B03B71364471 +:10669000E158A62D4B42D65A58B24C20E025635BF8 +:1066A0008ABDE0809684EFD8EFD8FBC6E6CF39D814 +:1066B00044260EE7DDE312C5F6729B2CDF7D5A827D +:1066C0009370EB8BAFEABDD79AEEF1E8C7CEB7BBBC +:1066D000E2334FD5EFAF5EBDAA7A55F5EAA9D7B53B +:1066E000355D590AE00198DEA9033495C6D361846B +:1066F0007B0D75DA1BC0B234B0730AE15F0124026E +:10670000584F3FF262FC47BF6800BEFA3F339BEB35 +:10671000D9E7E9A2207ED7BF9FDEC6E1445103C27C +:10672000A1C53BD3D83FD0E94F7883BCBF81FDF3EF +:10673000F8AFD87F072CA3FAB0CAFAE7371E35A9FD +:10674000BFEA02DE3E624C4642BCEDA54AAA7FCEBD +:10675000DC85F5814A99D57BABA2997AA075FC7549 +:10676000FA351CAF6FAB3F6122BE7230E6A8CF2B6B +:106770006DFD857B259675329CB57D67CB41BC143C +:10678000FAA502BF5DC27A954AFC71E3F7ED035F9B +:1067900071613F08F2EFF8F323C287D5DF7EF5651C +:1067A0006F12E06C7506060D912F2722EBC158C1C0 +:1067B000E5ED014C80B24CBBD9C6B5DAB5B8FD3DAC +:1067C00012361D094A29AF8BCA9E6027C28F57C94E +:1067D0003AEDDFE30D9D0380F085A0046E5BFDC8FC +:1067E0003B6E565F88DFE0D39971CB6212A46D7463 +:1067F000BB66531EA4D50C3C12D95014F7CF8E574C +:1068000079DCD9FFDA2E67FF7BA3F1BB0DC4FBBA9D +:106810004489E3FB0DDD4B1CFDA6A3C6266A375059 +:10682000B126E77C2F458D2DC62DB43E8E0F34E466 +:10683000A6D77EA47FBA16E09B499595F3E1FF9415 +:1068400068FFB4687F201960E5B3C9202B2DBAFF1B +:106850004A8BC64102789E3EE598D7DBFDF68F2332 +:106860008B6C308AC5441DB63DB69AEF3F18DAFAF4 +:106870009CFBBF1300D7D568C41EA6F5039CFCF192 +:106880000C7F239FD67CF8A5F08BB47F55526A10FD +:10689000F76EA005B9D54F74E8D944727E2182FB0A +:1068A000ACCDBEBE7D627DF3D1A15FB4B36075890E +:1068B000124F119D2F22BC06EB09A16599FA11C355 +:1068C000C5E8A25E8FEDEA32ED1EA376EECC7CD554 +:1068D00010F4E5E27B6FD0C9370BC5CF6A372207CA +:1068E0007C015B7BE5D208C4100F9FA61A0C1F48E1 +:1068F0004CDF80F451AA021AD12DF31D19B69EF473 +:106900004C496AB0C2B69E2A294AEBCDC6AB449E1A +:106910001A5886ED4B4E2F5A853B054F1A125B775E +:1069200009ED2FB67FBDE2BEF077EAA97FC941929B +:10693000C7455167FF9F527BDCDF81EACE13D4EE5F +:10694000428394828AD9D709C86433724274447EE0 +:1069500087BA85B7274D9C0ED9E1922C784956FB12 +:10696000CAACFA1BB3EA5767C19FC96A1FCE82EF50 +:10697000C86ABF210BDE9CD5BE33ABFE4B59F53B3D +:10698000B2E0871DED6B2E6E2ECAC55FD97C63B554 +:1069900053E438E875EC5C60FB371B3FDEB3B6E9C7 +:1069A00097248F6A65C3354CDF1C2B71E8CD0CFD35 +:1069B0006172BB0DBF266C3F35071F03A4183F0053 +:1069C000C4CE6C77AC7BD319FB38B3CD9719C764B1 +:1069D0007CD8DC110F1F203E2FC5F300F9AA7C31B3 +:1069E000F21BF159074EE4A2F3D394808D6FAC2BC8 +:1069F00047F95CC1A700599C03C7883E5ED257EB9C +:106A00008B6237E13813E930F19BEBBE4D463E8E89 +:106A1000DBFF329E09D8B4D5DDB8732B9DC30DDEE4 +:106A200000D9117D93C35B699E50B9A29938D68A6B +:106A3000E01A571AE137E3FE043410FE0AA3A78ACE +:106A4000FFD1B97AD384E2D0FF215032F446BC178B +:106A500081AD1E61706F99531F74BFBF35F5BA6D5C +:106A6000BC8AA682D20F68713743FDA56599FE10D6 +:106A7000C87D4EFC26194FBD8EE7F4BDEDC0F7630F +:106A80009676D9F456A2F82BA337B0F3B7E5BE6ECD +:106A9000D6B5F8B49BC14A84D7FF4AD0BFD55D773D +:106AA000BC88F4431034AA8F06E3305597D90F41C0 +:106AB0000238988474048DB691985E4C7A4DE90D35 +:106AC00058FB60AAB40FBBF93E20DF00ED9327F816 +:106AD000C1FB80F64BB91203A27B3FDA473DB82FCA +:106AE000A1E07D1D50486C26E8EB0217D1BFB257DC +:106AF00071F07736BD3D59FB61D14FCEB21766A319 +:106B0000FF7AA27F3E1BF8E67F4BFABB2A5546DF91 +:106B1000FE6A4E7F2F8C98C49717902F0775661FBB +:106B200031FEEFAFE3F548E7C272B403892464FF96 +:106B3000A8CAA421131FBB60BA47A7736DCAA0FEE1 +:106B4000F9E56E30917E059161464FB26FC9DE2D39 +:106B50006870D2ADC870F2717E161D7DBF271D1FF3 +:106B6000B6E8782BDCCAF4C0BF111DC936A4765B29 +:106B70009AE2BB9B102E3661A707BF5DB3651A680A +:106B80003EA4A344741E0A71BD3214E2E71098C6F5 +:106B9000BB75484FBFE0DBA68D6754BBBEEB15FA53 +:106BA0006437D953587A8CD8561AC71352B4149DE7 +:106BB000C39036C91E95836E4823BD5D1BA3E0427A +:106BC00078B01C74AF467EC830B333C0DD6176D672 +:106BD000F37D75633B25B4C560ED96823EA8113EFA +:106BE00078EE20EC43BE07F26374F9EC14D23D80DA +:106BF000FFE5B2E37DC0EBAD7D5196226CA3BB0CEB +:106C000036B8E2F27DF96ED6BE5C802DA63C87BF19 +:106C100060EDCB5BB719DF6BA27DF1972E489FDB50 +:106C2000F6E555B62F29D8A9203ED77ED9B92FFD34 +:106C3000516EFF63C9E4E1421530BBA246CE63F05A +:106C4000A8010EFBC62A07C57998B2EC63B277712A +:106C50009FFA84BD5BBEEE23733B8D8706149212B0 +:106C60000A4BA74D99FCBF65E8BFA13C28C16973D9 +:106C70000CEB7737AB09F428A0A8F403E320D60780 +:106C80009771FF4DF92DEE2BDAC17DE61490DE02EF +:106C9000F403F33F0333F6A106C0F7B7619AD52397 +:106CA0006C1668CC6A895520BE83EDEF44ABB0BA50 +:106CB000FFC4DF9C24FBB6A45ED67D04F7684D8C30 +:106CC0008F221050495F991393619C7751BDA49313 +:106CD000EF5ADC319C26FE28B9580412E25DD71425 +:106CE0003F4FF4FB8BDE9762A4B24BA220C5917F8D +:106CF000B57080C9C93E8F5E4EE7E26859C045FA5B +:106D0000B639A295131FEF6BBFEF86F89CF696E19C +:106D1000921AAEBCCCEE9F3DAE171206D13B1806C0 +:106D2000238AF51E774C27BE2ECDF3541C5A82F4CD +:106D3000BCE65EB6FF9EAA422325F0DC6A93BBEB5D +:106D4000C3DC2EB560AD91F12A6884031E1C5ABDC8 +:106D50002875F1BD4EC0210E2F0E6B8C2E9A21BED0 +:106D600057F1EFF3D1E34AE7C91EFF06B11FF8A5BB +:106D70009CCE35FC79B5600D7093057F1E70C7AF52 +:106D80000FE3BA8CEDDCAE29D0395FE7433C4DE729 +:106D90002BC8D80FEDBA51DC4FDAC7D1EB80F1BF69 +:106DA000D9A2A4C649FFCA81F28D36FB705FCBC65B +:106DB0004D06D1CF059BECF6DF074DDC4E7F27EC6F +:106DC000127E769D8FCEE97D782AD0B8D6FEDCF58E +:106DD000DF176F8DA27C36DDD7153E4472582AE44A +:106DE000B05492889F47A2C0FCEC0B911E379AD6F4 +:106DF000B8C4B89BF8FD163058793368ACFCAF4284 +:106E00004FFE8DD093AB68C9CB487FC599BDF63B8B +:106E100023DE18BE85ACF3008335D077CAB89EAEAA +:106E2000B1F5469C2BDFBB3CA8877B059D32F4095E +:106E30001C24FA44043F3CE08E45887E482F705164 +:106E4000FF68AC95C60DA546C2C856786E186D543D +:106E50007F6EEF9F32FE52047F2105A53C5CCFBEC2 +:106E60006A6D15E9DBE5630610BF7D3ECCE9F4E20F +:106E70005A631D8DF390D8BFAE0F87952212EB5445 +:106E8000A2390FDBAF391A7B8DCAFA57F4D7486D98 +:106E9000AE9E0834E76B347FFC6EEAA70FB88E53C2 +:106EA00038C886C726FA7E6EEF171C7C4EFBBB9E49 +:106EB000F1453C48FC61ED1BC8F1207DCFD023C6D5 +:106EC000EA418E0537DC64B3FFCB72EF774CD0E735 +:106ED00041B11EEAA92C76F0DD8384CF6C7CE74BB0 +:106EE0001906C5BC6E3C331126FDB57272FA04A1B9 +:106EF00051777232EC47F86B6BE37F46FD3BD3BAB8 +:106F000042FA2934357C82DA59740A550D4BC4BED5 +:106F10005F5B6B7C9DE83F12D9D7CCECF6F38843DE +:106F2000C5ECE7855CE5F45380CE4B9CE733E7F393 +:106F30001CDF913F8D43385E9F881361C9FCDE7D65 +:106F40001D12B34BB194549A2FC24E4FD8170DE770 +:106F5000E78CBB083E9D107C6A7DD785FF843F533C +:106F60006EA4DB2E26C297F3E113193E7C42F0217A +:106F7000A39F96E1F36FD9F9BC38A2BB48DF58FB59 +:106F8000DA951A695D82A4088D69AB29CEB1FAA49D +:106F9000FE1A91A66BAC7815C187C5F82FAE8D1D72 +:106FA000A4718A239A8BFA3D1F06F6DDE2AFAEA8E4 +:106FB0003146F3239F8D53698D9F3D9EB5BE43821D +:106FC0002F707F9EA771516EBECBE4E6E430DB6785 +:106FD0001CE70582B14B33E99B91340428CEF0FDC8 +:106FE000C8476937D1F528D7032B1AA6C2C4539FC7 +:106FF000D2D32724846F0A690AC591EE4FB91DFBCD +:10700000B52AED8C9B21FFBC4A786EAB32597BDCF4 +:107010006785F1F702ED086A59E8E4E7B7E6E2E7C9 +:10702000858EFBB3B5B11F125E9A39CCE474C1F8FA +:107030005CA1FDF38061FC03E12B4B106771347F91 +:10704000BDC3AEFD99D89F703BDFE7B76E8BFD9C4B +:10705000DA4384FB47573A1FF6FF05AD0B0CEC5F94 +:10706000C0ECAF0F092E9E72EDF4545C6E178FD6F4 +:1070700073B91AADEF0CA7C85E0A71B95240F7C5D3 +:107080006EBA7CBE211157DC23ECACDEA4C6CABDAF +:10709000C990B0C37456FE45B28195FDC9288F5B77 +:1070A00000F77786027CBFCAD6ECD8C4E3BBC85DC4 +:1070B000E47F6E14F54B81DBE91DEFB2F860999225 +:1070C00030280E3FDAA44E935F08415B9CA892E9FA +:1070D000CB83954852E5B41B48BFBB367699D41E86 +:1070E0007998DD13E04F21F9A796DF54D8D1CAEC87 +:1070F000F137D11E27FF5EA9BF031CF70059E37BC0 +:10710000616BF869C2B39EC72D6B5EBF3F4CFA68D6 +:1071100014E994CB2E8506E147097FB5A8D4E97719 +:1071200079B3FC2C390B2E5B83FE899FE2A5FFA06F +:10713000E6A27FB1E1D49B65EB78FBA68D0DBE5C2A +:10714000F19AFCAC38DEA8F07F066EE90CBF28D6B9 +:1071500041F41F58CEE93DDB3CA0DBF432AE6BB40A +:10716000636171CEA17ADECE8A5351DCCA1EEFB4C0 +:10717000FC2C6CB7B58FE81C80554CD6859DDD473F +:10718000BFA33D81C71F74DAEC374F206B5DF3E07E +:10719000931D179B2FDE66E165B5936583E12DCBCB +:1071A0007C1DD5D0E0A33878361E5B9BB91E1FED41 +:1071B000E864E714C913C9E6289AFFCCAE0B49D19D +:1071C000946D1DD971CF4DA2FF3D6B8DADCDA8073C +:1071D0006ACEFFBD4AF35B7C61E9038B3EB2A0CF70 +:1071E000CCB90A1C1F065764F4C3B78A13DFA6FB89 +:1071F0003273A70CE3583E99FFE811825798DE805E +:1072000097BE87B11EF1351535B04BA7FA42A65F80 +:10721000BBDF2F60FAE1379219EFC7F11E69AE604C +:10722000FA6A97CB08D2BC2B6488D494123FC1A1D0 +:107230001E16A780A392D3EE7DA4B98CFCEC098620 +:10724000A7DB1F67FAE700D93175763DAE1D1A64DA +:10725000F8C23169B1D06728AFBDCD2E361F9EBBB5 +:10726000BD440F4BCF87DCB17E827FE1892D3ECEBE +:10727000E6E57EB164BA80E236C1CFEB9306D9F081 +:107280002B401F07F2CB9C7E33D861F7E5F041B16C +:107290000FE5350093A4B7E5541EC9CDAF8E6E40FF +:1072A0008F702EBE0FBD17B1DD9B79E504E31B6F18 +:1072B00077DD7B74AFF24A53FC59C2DBD3BD86C184 +:1072C00080F524E78DB71BDFA6EFCFDF6EA4885EC5 +:1072D0006F37035B77F00B90207EEBC9BF17B6DAF0 +:1072E000F8E6E5CBF09BC823FE78FED8EA79E452B5 +:1072F0009F05BF7A0BBF97687E4FF7DAF7223713E7 +:107300003512EC1CB976ADF1BD6676BF637CDF81CA +:10731000DFDD885F1DE1B70EEC7EDC1BCDFC5CCBB6 +:10732000A6DF7347E7C6AF2FA9BD47F1430BB6F4FD +:10733000C5DBCD1A8F5B7657313CE5EE95023FD029 +:1073400065A77DF076F31C7ED6DFDE66BC43F5C113 +:107350002FE85326F9F5CF2BFAB8467AD91083A037 +:107360007F44FE790C8A075791DE3219DFFA28DE56 +:10737000EDA671D20C2E8029061791A647F8A724F6 +:107380001774CE82E6A2EF8BC8B25C96A18F5A8AA0 +:10739000E3223EA5DD01570FC92F0AEE1FE03C7E18 +:1073A000FFD28374AE40181D95521A4C65E78CEBE2 +:1073B000E89B9FB8D8A1F54880C56B7C11D7A5FC88 +:1073C0008C3CCFC86B8F0C74EF6CC973B790673C63 +:1073D0003759FD80470D507CF0EB6E33DE5741721C +:1073E00013FF3FB4FEDF48C626C27336F971178C0F +:1073F0003139BD52B9417BF2B734FE532E63D51BF0 +:10740000A457CA15267FD9FBBC28C2F9A3B48DF3B3 +:10741000777F3BF76BFA9BB85EF044B8FFEA8D705C +:10742000F9F74538BF7F1036E408D96D149FC6F2CE +:107430004CD850EC705F93A1DA61FC89D4201DE434 +:107440007A607495D7BF43463AFD8CB96C7ACAD23C +:107450004BC83F25115BFC410E4C008BB788F14AAD +:107460009BF97E927DB5DE763EDF20F0B4D643F602 +:107470009BFD9E74A6FE0F457DD459AF097ABC755D +:107480009BA145B0FCDE6D464584E1BF2540F70178 +:107490002E7399EBD28ACCFE0FD2AFE574DF1CAB12 +:1074A000A5F6BEEA7A265756994DEF97A2C68A08E6 +:1074B000BF07E271D850EE7B1985EE7F6FB69F4F04 +:1074C00029869732E327A54384F76CFD33FD389E68 +:1074D0004FE6AF945A900FC62B6466D78DBB629B64 +:1074E000EF27BEADE07237A29E5B7C1EE72BF6FD58 +:1074F000F3E2F328D77BC4BA465CC0E4C55C95C709 +:10750000E21FB1DB630FBE4CF2F287797A0F3619B6 +:107510007FA29FE503F82A54662F7CB68DF3C757E8 +:107520002BA23FF81C8E5BBAFE4E1F95659FDBD6E3 +:10753000BE11EB17DFF3D5DD04D3FAB6E33CD7FC7D +:10754000F1AE1FD0F7E0D651DF46FC5EFEC5E62265 +:10755000BA17556038467926F08E9BF16D7B851CF5 +:107560004BD9E8B9A58DF3E5DD6D7C3F8B233C1E3F +:10757000371B1D521ECED772736247CCD6EEDE8803 +:107580009B8DF3BF05DE4F274F067AAB292EF9F608 +:10759000697E2E8044E742BF0C3AD9A77B4D554700 +:1075A0008AC2B56E43DB49F8ED92197E7B1BF7A9C1 +:1075B000F6F9B7B59633BC8A823FE4E398F2F494C7 +:1075C000CD9E7D3022E2BF3AE824AF7249B4682EE6 +:1075D000FC2DBCE887F263C8E7A7F8ECD35D1F4138 +:1075E0005F3DBB4F67F1D32577FD9AD915A0F1F820 +:1075F000695F71AA89ECB9231572E210ABCFFB3930 +:10760000E5B72C89F5FF8B1BF55A5157569ECBC514 +:107610004BEEC062D2AB2082AB3CEF254FCC570083 +:10762000BCBD65D7EC2D4D410FCE3FB5CDAF01C5EB +:107630006543CEFC97138D9D2AC551C7F13BF1DD03 +:1076400070A492D165BC81DB6179C5B141BA3FC9F3 +:10765000FB6CA5B493F24B0AF83E8DC7745F31966C +:10766000CF7426BE44FBD5DFB1BA3D1FE7193B00FE +:107670002E17B61B1B0E0F12ACB4C801B251BED9E7 +:10768000CAE5B63628B1384FBF3AA996D791FF124E +:10769000CE5BEEA77A95D58F055CD109EBB201E7F9 +:1076A0005DDAA51F667A1FF4DD4D389EB771B59B74 +:1076B000FC970FDB1411B7BBA84AF8FD48420EB087 +:1076C000FC98FC47F3A85F15D28D6055C4F95DC3E3 +:1076D0004D706911E9EBC809AA2FAA57348ABB1467 +:1076E000259CF7026A65B7B10DEB3FA67B08DA8FE0 +:1076F000AC7B022FEC61FBE2CDFA6EF1C150122699 +:107700007B3DDCAE3F6B3B9FFF4B44DC57EAB08ACE +:10771000CE8D16F7FB9FBB9BF0EE9274349FE10871 +:10772000A486D620FC7197CCF8F799AE974FADC1DF +:10773000751E78E48DE25B11FECBC44FD6DF8A70F4 +:1077400089E1865E5CC7B3BDFF3842DFBFDD7DE106 +:10775000147DEF778DC4283E7EF8EFDCFA4E840F5F +:1077600023834CB2B899C1ECE102919FD2AFE07E85 +:10777000D9EFC15BC4F921CAFEE4C9D364F7A4926E +:1077800051B68EA1648C9581EEE6499A77EC646CD3 +:10779000B38BEC45B308F2AFCFDC7FFBDD70471352 +:1077A000FA91DE37761D527DC893C74BF23A2C987A +:1077B000FCD4D3EFC63EAB67E08AEA3B9F3E6CAB9E +:1077C0001F771983CBB0BECE7CB033E223BF3876AF +:1077D000663BCEFB71E08CE9AA24F97B85D91B05B9 +:1077E00037719B376F553C467ACFBF5F627CEFAFF6 +:1077F0008B65EED3D9FF511EEDE76FBD53BEF12768 +:10780000A6DAE4349CF2B2F10BA30AB38346FCDBA4 +:1078100063CB918EE355DC0F415E8A4DD8E4FF5D6A +:10782000C1CFFF2ACE23EF7EC9F4125F04917E0EF2 +:107830003CC4B994FE17A07349A9EE1C6E22F97FCF +:1078400042D2495D64EB116BDCF1FD3BD45CE79304 +:107850008547F63C56FDFF6DB5E29BCE79B361B529 +:10786000B2CBF8623DCF0BA4FB366FACCBE8B3E9EB +:1078700025E5AE87999EB2F2F42C3F8A995AC8BF8B +:1078800045DDF94C6F2AB187A003DB059BD569BAAA +:107890002F82A571D35DCADAB17B9E96CAA041FE44 +:1078A0004595B857DC7BE21E49C33DAC9613928EDA +:1078B000EBDBFB9949809BE8DE751A4C5C576DE366 +:1078C0002450FC56A99F4C17E138CBF68346FDA205 +:1078D000FB75C94772FB8E1BBC4CEF9971DAFFDA5E +:1078E000FD0ACBF729AC4747BC92EE8B1B96103FA5 +:1078F0005AF7EB2867ECBEB2A8D70853BCA3C25016 +:10790000A7355C6FED00D72F958D90326CF7C6B51B +:1079100042F5D4EEFF75BAAB3413FF8003C27E9BF1 +:10792000B95FB7D973F8AF2ACBFE2B223DB1924A8B +:10793000E7F78696193DC0CE9554F21538E72155E4 +:107940006EE4D139A6C1A4BA9C9FAB90CB1EB4CA39 +:10795000E750BF1888EC0B499595C79201305091BC +:107960009C4D0619FC727B38D25246F29AD84CFADA +:10797000DD92D7737B8B3E4D7CB5CD9DEA71517EF8 +:1079800068CB89CA3C94B7E7979EDDD0C461268F47 +:107990002FA45F2AE9D033F0B1D327367CD606BFB7 +:1079A00058F51ABBAF627031C077FF52A15421B8AD +:1079B0001361B30A61117FFFD488143B44E77A89CD +:1079C0006A121E1FD7070E92DE954B104F92E7E505 +:1079D0002507499E7B5B38DFCAB1F53C9E972DBFDA +:1079E000C4826B447E2750FEC297D3BFADE779A611 +:1079F0008B8297CBB747D0DF13947F69D7EF5D5960 +:107A0000F4FF181AFF280C39F501F38B2C7DE02EBA +:107A100028F5D1F9DF971C60E7FC8C1F56A6ACB2A5 +:107A2000DB059EC244672C879D70B28DAF6F3A6AAA +:107A30007CBDE5968CDE9CCD0EB5F45FC62E8DF731 +:107A4000D07EE6CBA900C59BF3756639E6D07B4EA8 +:107A500039475E67F7548787791C6E68CF06E6FF63 +:107A60000E0DBFAB929F39BE7FF5A09FEB81091A27 +:107A7000776F1948F0A92BE737AB9DC55F33769632 +:107A8000E0B3536FFC9383CF1076F099055B7C666F +:107A9000C1169F3198F8EC36CE6729841D7C368458 +:107AA0007C56373F9F9DFA77E2B397FF83F8ECCF80 +:107AB0005B67F8EC75E297ABE0B31F5D0D9F8D0738 +:107AC0006279642F8ED7F3BC4A2B2F67DC0C1C64C1 +:107AD000FE0C707DAB7E2B70D0ACA0BC568E677355 +:107AE00003CF67AB6DE4E783BA56E4B3D5F37C2AE2 +:107AF0004B2F5B796C2DEE3D711A677C8FC2F2AB18 +:107B00005C95AF9CE822BBB31CCF05E4ABA3229EDF +:107B10005A089A44E7546D6A0AC88F0AA11EA73B07 +:107B2000EA82B12996EFB33CEE4F18810C5E43BD5B +:107B300090A2BC3638C6F5B595C786DB25515C6783 +:107B400079CA692756D74B3FF7AEA4F8A6D30E2CB7 +:107B5000CC827FDDE2F4231E17FADEA277A1B0CB40 +:107B6000B2F705F5F745DA07EB5C181A9E3B2FD400 +:107B70005AB70587C612E15CFB7D672BF7C7BAA22F +:107B800086DA7ACB15E15348EDE73B4FD6B5D62ED2 +:107B9000B3CB39C287ED726EC1969C5BB025E70C02 +:107BA000B69D27D7217C35E7C9BAD67F1F395FDD5F +:107BB000FA1F23E7DB5BB93F8C72DED47A75E749A5 +:107BC00007F5BB52395F3EB65362F7ABC45F39F07D +:107BD000F20ABCD01F60F19BA6CAEEBCB3581E913E +:107BE000F56B4AB0FCE35697236FC52A95EE3BCF61 +:107BF0006CB7E5D35BF14CA57B23FB5E1531EE6DD5 +:107C0000A5388FBEB078CA0E8A4351FC58496CCE55 +:107C100045BFB0882778F290BE39E8B54A0E7F9903 +:107C2000E67BBC3DF6276C5E4869A40790DE7F7A50 +:107C300095F47EF86AE8BDAE15389EB3ACE3ADD6D8 +:107C400079D7D1C7E4BC3DF658EB2D8E750C5CE5B9 +:107C50003A465BAFE27C38D5C2D7A1CEC4B975A68F +:107C6000CF9A2A37E5D1FCCF846377901E3EF2434A +:107C70000F1C725DEE3F67F864FD99ED37E7E29304 +:107C8000BB1CDF4792C0E2F74F265516272F9135D0 +:107C90005709F9BFC90083479341567E8BE2E8D567 +:107CA000EC5E96950728EE8FDF9F4836307828697E +:107CB000B0F2994AEE375F2327D83825111CDFA68A +:107CC00007825B701EFBFD6530E0A82FED083AEAE5 +:107CD000976CD71C70A031E480AF4BE80EB82A1225 +:107CE0003F41FBB5F8AE06C777F47B1CF042E54395 +:107CF000938D93AD8C6F809D7FB5D7438AE8EE0D51 +:107D00009D3C43F1746FA96292BE83A5F28733FE56 +:107D10004B25E3A71F09B93865E7A7C7049F3E268F +:107D2000F37D1C0BCA013AE7C7C43B8BD72BBE7946 +:107D300086F86568B8B292E5F1228D495F7B8BB514 +:107D400043D44E17F1C2B17A49A7F3F9E3D3FCFD4E +:107D5000920C7E86C76CFE2E04CE9CEEB5E9E9EC53 +:107D60003CCE0F5AFD8EF3F702E9676D76FA58792B +:107D70009C561C64B6768A07ED1DB29FAB36DCB10B +:107D80009CE2AF4159AFD6D8B4AFFB6DF772D9F7CB +:107D900076BF8BCCDCD37DD26ABBA7FB9D889B23AF +:107DA0009DA2D47E6CBFC4E271E38D8925C4774760 +:107DB00046C24590433EAD7220897498035F558159 +:107DC000F8448EFE2B841E1CDFDFC3F07C4C8384C2 +:107DD0001BCFDF7139116376D652BE8FE38DFA1255 +:107DE000D23F4786944DB49F03C7DB41A320240AAA +:107DF000DF391B7FDCD0C6EF777C9A6D5FF0DF61E7 +:107E0000C27F0EFB6501F853300E7C6F3D71D8E4E4 +:107E1000F1C1770A9CF759D56D73E4BB5CE9F8F3BF +:107E2000C571BCA4CF88FF5FF3B1B8B38CFCEAD3B3 +:107E30002EA787775832BD39F8379B4FFFA0CDEF7B +:107E4000B023AE944F3F6CE5F8A05C37131DAE42F3 +:107E5000AEEF68E372DDD16693EB3F11E38EF8F885 +:107E60007D53361EBD426EADB870F5490855146598 +:107E7000EAB78AF87F5B24C0DA55EF373576AFB2C0 +:107E8000403D65B5A3FB945C791E56BB01576EFC63 +:107E9000DE14FC3D94D4979CF7509CDB9552D0BFE8 +:107EA000B5E2595564EBB9337E0B72D012BAB719EB +:107EB000AF97392C237C13C5C345BD6AC1A2DECF61 +:107EC000DB5BF37DDDD263FFCFBD2997BCFD67513E +:107ED000BF6E596207C9F5F191D625641F8D55F41F +:107EE0006B929FE82489F7876F76B1FBB759E8A4B6 +:107EF00074379DC979FF34731E4658FD6CEF2BAD66 +:107F0000D2DBFD3F7F42ED94EE7FFE09C5F3BC223C +:107F10006F4309C624BAA7B6E8344653A03F352AB2 +:107F2000E8A90C8391CA41EFCF59F5945D41C2791C +:107F3000711BBC4C76B504097AAFA1C48626297E94 +:107F40009E1D4F54EEF2B27B0F80B849E704F92131 +:107F50000573F07F61952E0D237ECB2EDE2D915E75 +:107F6000AADE3FC5EE1FABF7EB73AE777F1226E6B6 +:107F7000D2EBA5C26E25FCDC88DF5E99CB48696335 +:107F8000426AC7F1BFD7A68A7B0CBEFED24B3BB577 +:107F9000F5B6F95E17FC5EE616F79F629C31314E2E +:107FA000D9F024D038AF8A710A681CEC5F46E3D45C +:107FB0005D3E4E75039F0774FEAEB45A8E49253957 +:107FC000E86EBD2BAD4606E5F7273189F854FD9DD7 +:107FD0009BF9516D9153DB28BE8AF6CC92F3B8FE23 +:107FE000FBDA604EFBF85DC1A7A84FFE8EEB039E47 +:107FF000DF309F1E99C30E7D4FE897336D4E7BFA9D +:10800000EFDBAECE0E3DDF7615F674AFB04317AAA8 +:108010007F7A867B34BA3F3B3CE966F73487E5C913 +:10802000997B9B4304ABFCDEE6705729BB77B1EC30 +:10803000D6C3C6C12736A2FEFDF583926EE2F76B6A +:108040001F7CED077713B9BEF263DFDD085FF7B57C +:1080500073ED9B187EA65B421DF4D3EE657F4DEB5E +:10806000B8DEE567F784D63DD2F108CFB7B6EE7932 +:10807000168AF7487EA17C11E777C7F9BBA827F3DA +:10808000D7A6E95C7CB64061F17410FE297BAACCCE +:10809000F391C0B598E21EC0EC96E30535269D1F0E +:1080A000BBEE07B6EE5DDF50D879F26C99F3DDC90F +:1080B000AE203F67BDE21DCFB305227E13E2EDAED9 +:1080C000AF9B647904D713FFD37D4D03A4CC8A4CB6 +:1080D0003EC8AE248877D753F7507D3148FA208DBB +:1080E0002B1B1ABD43D925436A27B6DF551730FF2E +:1080F00013C2CF240A7549A757AE3AEB0F371A4C73 +:108100007FBB45DE54260FE41CD8F340901EECDD07 +:1081100051E52392A0C7CA1334DFAEDD39E8A18947 +:10812000FF2D66EFBA197D8EEFAE7985F2460EDD32 +:108130005FC8DE2D1D2AA8994833D8CFECD443D58B +:10814000337E0DCB0FFC6AC14707BB34CAF759B960 +:1081500099E671E3BAD8FE7A5F2AE7464B40FE06FD +:10816000ADA793E75BF4A2BF41FC6DE5D17804BDF8 +:108170003C553C2EE5E96E7C8FFC1B7777EB7BE46E +:108180000F23236CA2FA3C412F080F1F8F23EC42D0 +:10819000FA0C8ABFF390B2F236F87C26C5C9F245D4 +:1081A000BD1F26D93C85300DFC1D4280D1339BAECE +:1081B000D6FBC30C5DDD8EFC1AE504CF9F71F7C8BA +:1081C00040EF23CC7082E5D7983DDEC0AE52966F6B +:1081D000C3EABB6535E0C5793F1FAD14F926895B5D +:1081E000F9B8894F51E98E1A9BA3659971ABA3C663 +:1081F00096E82D19D82A2F3B07451E8005F753FE18 +:10820000601DE5153AEFFBADF3D18217D1BD3FD22A +:10821000F33055A13CAD4C4D87C964AA35533D643C +:10822000C7D58C71BD7BE3ABBCAC7D8597DD513789 +:108230001BE72B517ECE59F08A815458C57E1563B9 +:108240005C9F5BFD56CCF4F3B07629D12F1595C514 +:10825000FBC62E9637FBC2DF72BE54FF9BC85FA4DD +:1082600083630DBDCE06C1D73C0ECA9FCC90BD3AEC +:10827000CDFC825492E75F82FBFD130F90DC05DD9D +:1082800040FA23644E84E92DCE8AA3C3618AFFDFBE +:1082900078000225B4AD4846925BED182A60E4FBF5 +:1082A000DADE0989F2386A0C75DA20BEF9BEF39E6F +:1082B0004BBBE8667C5879005229927BD379EF5505 +:1082C00003891E9AB7A2C11BA0F77D2BB2EEBB6A31 +:1082D00045DCAC36EB7BB6FDFB4C34F73BC8D9F440 +:1082E0009C65FF864C60F9D9B547A514BD2753FF9F +:1082F000EA2CCB9F731F4849749EC09E1226D42F30 +:108300001C8DCDE93F3D27E8F88278F7704CE46F8B +:10831000D3FD06C1FF24F2B73F10F9DBBF14F9DB30 +:10832000E745FEB6C59FAA8BF3D37CFEA3D715679E +:10833000FE1594CBC0DE2DD143AA4F67FCBFBF3AD8 +:108340005A29113F3CD7682ED990E3BED73AEF8F18 +:108350008ECFED577D671EBFA746F83D60EE184BE8 +:10836000FB29EF90E7E35A7EE073C20F7C4EF88161 +:10837000978D7F7C39BBCF8501F47B6C7EF8738D44 +:108380001AE3CFDAA79C7EE0A183359B6F24FD70B2 +:10839000CA0D225D66A9678EF7243F8B4A96BFFC03 +:1083A000B3A8CD5F5EE8BAFE31FAC5ED64F7587F39 +:1083B0006F65B63842F6F9B9D0BFCF62ED7776FD7A +:1083C000FCF10393DD971C15F191A3A91DEAD6BA20 +:1083D0000C1F40BBE4D05797EF3F9F7FA0E221C620 +:1083E0002F5F3DC8FFFECBD19978CB436CDF8E2E3B +:1083F000AD92D8F986F24479E1DF491A67B6235E77 +:10840000BB6F4BE46DC076D7B5737FBD464EE4D1EC +:10841000BED44CBA25521135DDAD67F839B39DE5B0 +:108420005765CF5F23E232F0D4DCF197C5EDBF5F33 +:10843000FC65A578EF61F9D935969FFD54969F9D0F +:108440005A989F1D6AFFFDFCECD9F733C1F6F388FB +:10845000A0FFCC3EA22227FB7FB678102292A67DF9 +:10846000CA0F6AAB076D72FD805BBC93B4FE9ED0F1 +:1084700002F9B177163FB8BDDD25CED1A5FC1C278A +:108480007AB833FDEA419F32EB290F44D1191EE13E +:108490008449F4C65E89417A1F9265E793C540F925 +:1084A00023B2B0273C1067F6822AECC03C618FCD26 +:1084B0006F67E8E27CE3FE054023B3D7C1E7C4CF92 +:1084C0002AFBE8BECAB60F1E916FA93E9A9036D815 +:1084D000F4FB2362BD7D49D545ED6BD3F7B37895A9 +:1084E00052AABB28BF6491B8E7F268C0F2C14683C4 +:1084F000956C3F6EBF98CCA3F78456FFD1E06A1FFE +:10850000D4CDFF6EA24FD8B156BBBE0312CFCBEC79 +:108510005052D538549F1C5373F96D7FDEAE39E449 +:108520005C29951CEFC2903FD87B57B5323467FE6B +:10853000A1473D778D6CB383FA7C8925F4774F8E04 +:108540007872F3C39E7685CD3B3A0BBF587C68BDED +:10855000B79AC9A715F77033F76F4BB543FCFEAD5B +:108560003B40FAE5A976E7FDCE65F76E4B9DF76ACD +:10857000D3D1D8D3ED142FAC5853D4A9CDF9F7A04B +:108580009E6D677838F3AFF324F17EA192BF5F5000 +:10859000B3EE5FE7CBC37E61462EB2FC5B03F55BB7 +:1085A000612EBECF921FFFC2FCB1C3C4871EE2D3AF +:1085B00069F6778B8AD29F307E2CDA6348C48F5558 +:1085C000828F2D7E1C6B447E745DBE1F638D616641 +:1085D000DF8C0D7FF4DA256C77A191BF9B998F2FEB +:1085E000C786055F3672FD341B3F3E3E2F3FF2F5D6 +:1085F000A4E8575C77D116C545EF1503E9DD6C3D5E +:108600006A63DC30EAC8BB0117E58D0E548456F767 +:10861000D8F4EB0346F87FD03E523DE9CB8066E5C7 +:108620004BBB985EF4192507EDEB3E25CEC1616387 +:10863000BEF71AB149D2CF234963D2FE2EC22ABD5A +:10864000221E33D2F6289CC5F2C9B647993F3C702A +:108650005D4D259D8F9FB4BB1CEB3E7EDD43417A73 +:108660000FFE58457F90BD033BFE0DB6BE99F1C489 +:108670003A51DF19947FEA1DE0FABBB8ED9160A78B +:10868000FFF2F166F6318B9FFEF536E393765A9F43 +:108690007F98E98B616404F2F7864D5794C58FCCBF +:1086A000D50EFEFA5F597641B65FF4FF01CB3ABDB5 +:1086B000D610500000000000000000000000000084 +:1086C0001F8B080000000000000BFB51CFC0F0031F +:1086D00009CFE647E53308A0F21FF1A2F2E3D0F894 +:1086E000AD687C4E6E547E3F9AF9DBD0D4938AF904 +:1086F000D81918C480588E1D55BC9201420B43698D +:1087000016205DCE86905760C16EDE7905085D0447 +:10871000A49701F105207E27CEC0F05A9281C1496D +:108720008281E19F3865EE45C78F45A96BDE28261B +:108730000D4F5645E573193230B81A01D3A931846B +:10874000DF8524BF1C28C66D0861BB6A3330A800D2 +:10875000F98DAAD8CD7503CAAB02E57718E3B7BF88 +:10876000DA1295FFD30295FFD01595BF1A4D3E3B07 +:108770000495FF320C956F1801A101B3E1B1A1E896 +:1087800003000000000000001F8B08000000000034 +:10879000000BED7D7B7C54D5B5F03ECF99C93C7282 +:1087A00012263081249C890102069C604044AA273D +:1087B000E1D1806847441B1571406AF1818E88358C +:1087C0007AB1397912026AB0A22008935811ADB675 +:1087D00051C1DA56EF1D1E4544BE1A7BAD558B764E +:1087E00050AB5EAFDA48AFC5DB8BF5DB6BED7D32AE +:1087F000E74C2680BDED67FFF8E2AFDDECB3DF6B41 +:10880000ADBD5E7BED3D2E771ED14712F225FC9D5E +:10881000434848248414A453B326922455349D4CD1 +:1088200022CDF4D35FC598874C22C4A7F51802CD9A +:10883000132D41A27E42245FCCFC5590100F217D68 +:10884000521E1410830C25C405FFD20991B598015E +:10885000FDE418B46E25214AB087C42A684A366BF5 +:10886000EF9D4A081DCEF7E510A86CE2B88129F407 +:108870009FB4BF9C229290E840AEE47F2725DADEC9 +:108880005546221E1DEAC50D28578B88F668987E2E +:108890002F62F55DE5A4DB4BEBAB722A29D0FAA47D +:1088A0009C841FA2492E94D3BCA74C7B50A4F555A1 +:1088B0003711E42A9C5BE421DA9FC6DBBB75569E28 +:1088C00053CEF26B0B49A2428076B4AC0AF2BD8F54 +:1088D00043DE0D6D6C79B386F56F4E5613CD61F89E +:1088E0009E0CF97C69B8AE0D0B753D344F8EED09C9 +:1088F000CDF7DBBE7FF1EF21A211F2C8884273C62B +:1089000099345F393A17E0B2564986345B7B2B6D58 +:108910006B8857C8A3067EEF2F17C9521C47EE0D70 +:10892000CDF3031C93AFB9AA108EBA141E08C7D694 +:10893000CAEFF5C371CC3F108E6B008EE1341CD7AB +:1089400000DCC269385A796B1D6B0A7B1CF05B0333 +:10895000F0AB00F83D159A3FDEF67DFCBE508CD69C +:108960005B03708CA4E1A8D64BFABB949EC272CA7A +:1089700084F5AEA1EBEDA063B5552C36613E9FC1E9 +:108980009CE9FAFC9D2F1B12CD13DA1AD6E79E162E +:108990002732D2578C009E3C9432936E428A69FAF9 +:1089A00025D0A19E4392E548DFE44B02E3A8380EB0 +:1089B000DD17D7C1BEF04F492625FADD6B244C20C8 +:1089C0006AC9A70BE7D3FE0B4CE7BE18D2BF2FF442 +:1089D0006A80E750D817B47C58D06C94E8F7759744 +:1089E000C4BE07FD154E4B08309F3BCFDC47609D52 +:1089F0007ED82F5EDC2F65F6FD12AEBB656B0AD606 +:108A000065CAA483F6D7F88DF8C390974D97D6140E +:108A100004FA8C6F4D017DAA6EAD99C2E93E6F00DC +:108A2000F1587FC89F70D175AD6D20243986908E26 +:108A3000063749D24DDBDEA061BEAD218429C59247 +:108A40007933AD7F74AA98E8A0F5E52031001FFDC9 +:108A500069194B5F01A0D2F93C407230FD579EA7C7 +:108A6000E4E18E52BCDDE99B974B2A06A75F7F4469 +:108A700074C0D75B9E83F0B7F21E3DDF9177858689 +:108A80003BEA135284F0C13C45C4126052148EB2CA +:108A90006C9008CC53A6F3A4709472E786AEB2CD66 +:108AA000E30E22613D49AA8E47E9F7168120BD59A0 +:108AB000E5430511D7315670637ACEB16F0940474F +:108AC000CD4192E8A074EBF3CF33938CA6E2A334AC +:108AD000A079F9A39435CF525AAE24B5FC8AAF1FC2 +:108AE0000ED6FACE39768E7B9E6D1F7DC6F194E34D +:108AF00017A3091FCC331105FA682E974558DFD705 +:108B000037DFCA3E80AB3C448D74EB03F1F2366133 +:108B100078B983F4E305E9DAC24B878FE185EE92F9 +:108B2000AC78F931305F3A4E879C70E773B8803C7F +:108B3000F3031C105FBD51C473158583F035C2A1CA +:108B4000B9A62E4AF1229308C243D1464FECA04564 +:108B5000A2775AA49CCEAFD53FBA14E4E41D1C8F73 +:108B6000CD8D22CA1B6B5E99EBCE84E33C81B53B75 +:108B700007E87B521A0E6B7C622D83434F2DC2A1F6 +:108B800042FC5AE160CD6B2DCC0BE934598BF88E49 +:108B9000885F2F9D7A8DBA6CFBCAC2C71DFD70EC31 +:108BA0006570ACFAE780A3B79FCE7B189D577CBD5C +:108BB000746ECDABBD1F5E268397FEF5C0CB92AF22 +:108BC000C41DA983792CD5541DE8EC5AC95417014A +:108BD000BFA74AD243549EC2DE2385741FFA9A5E11 +:108BE000D575CA4F040FAE87480B7263B67DB85473 +:108BF000A69274224DC9DA5E898A609250FAECFB23 +:108C0000B2FED0CB13F6DAE6F33DC11F04FD989C0B +:108C100041CE80F91CA1EB4F92C1D7FF61435F3970 +:108C2000E887471B7A27EC5506965F2B9138EA5167 +:108C3000EE1E15D7B3B2D3D35109EB1A3DA393CE91 +:108C4000671D976FC4470BA91E75EDF64FCB65DB0B +:108C50007C96FAC4C3AE2CF3EE8793D58EAA13AEDE +:108C6000FC81ED076BF781105B2F50781972B436D9 +:108C70000C76041594C0DF5CDBAB93C3F574BFE9DD +:108C8000795318F37993409679064F6E9E83C1D13C +:108C9000AA77C4D7D44668BB6625B25FA7F86E2909 +:108CA00010234D243DAE85770BEECDBEA6A1767C7C +:108CB0000F80BBB47616EA9FC42C073B88E6472F8B +:108CC000A5DF7FC5E965C03C4E401F3FFF7F4C1FBD +:108CD000BFF9FAE8E375A1E09F8F3E947E3B2386BF +:108CE0007A5D6B689E09F2E833B0C1289F903A2BF9 +:108CF000D17EA67342FB02FE4490DF2103F5931C54 +:108D00006AB4403B7799936FC9454E3B2354174B48 +:108D10005AFD821DA370BB03CC09E097B28F243D9E +:108D2000B01EA2623B20CB2F4F01FB7B536D69101D +:108D3000DBA1FD33D87A646847E1006AC097600719 +:108D400092CB72A3E38FB77EE738A1F9D1DCA8FFFD +:108D5000E4EB139FACBF6783FBE0ED64F29E050775 +:108D60004ADF43C12F31290D7F23B61CF932B5D319 +:108D7000221D20278ADA4C285D05FF47F1D746D807 +:108D8000FE24A17CCC7F20E84C5E1731FCBBC8AC34 +:108D90002476CECB4F84EF30DFEF3F13A36345DA69 +:108DA0004F7701E99426A4EB292A89E1FE69998F7E +:108DB000F5BA577F2F29D07929B7699560D785658E +:108DC0003DE702BFBDDF269CCFD68604794701BFB1 +:108DD000481CFD22235746D1DE2BA9EF1320EF2A92 +:108DE0004A0990B7CA2DBA232D8C4E5BDBA95C844F +:108DF00072B72E82DFA0B433DCE476D05D14EDD9F7 +:108E00009184D1D926B067C3B8E1707C57BD534E69 +:108E1000F6D357CBC9ED835B806FD0718F7EDF5067 +:108E2000E7D1F92D49CE564B29FD5C250AD8FFD153 +:108E3000EF93A50097B71B3E27EFD8FC17578B433E +:108E4000B17CC9DA6A75BA4DAE2F21CC9EA41A80C6 +:108E50007AC178FB788D0CFFBEBE3D5FD2A91D693B +:108E600097701F0D36BF2B434F4D904F4FE7DF6973 +:108E70009750AF7887DA81B09FDE690F27CC2CED51 +:108E80002DB8A4FB791AFB397ABBA1821EFE76832A +:108E90005B007CC13A750AD725EDD5AAE13BF1BC50 +:108EA000BF9D41BF5BA01FE0C7B74709E88F4AF2EB +:108EB0001202FD29F55103FAA37F49A06F65FF90C7 +:108EC0006E58E739C7AE40FDD2EACFEABF24639DB2 +:108ED0005B824C3FDEC2D7B925A8274CE1C4EB2CFE +:108EE000E1EB4CF3410EE722F1B8706E6FE8997038 +:108EF0003CBF94BB98D9956EC5443BF844F3F0E869 +:108F0000B43F1B3DF6CFA38CF91F061B6755C63C2B +:108F1000DACB981ED92E9BEE9319D75D44DB3BF438 +:108F20004193945312455590AEFF6829316A81CF21 +:108F3000E413A41BCA9F8E80FC10395F93DDE79376 +:108F40009513D3FD491A2D77F4C7F9755035816F04 +:108F5000107BB94DFEB8412E805F35D8F629D493E9 +:108F6000823926E88B52507E2FE576CE0FE5508968 +:108F70001083FDD76CF13B42F6CAE0FF298B3C0819 +:108F800078DB23AA0C9FC4301A83E8978D77682872 +:108F900057F7001F933513F98A353F656839FA2171 +:108FA000892F3B5FDC92E187B4E0B84521DC4F7745 +:108FB0006102FC8E8A587E634764F07E32F9487302 +:108FC00071E56B31F05715A8C8B72CFD2A733D6FBA +:108FD000DAD6037AB86D3D6F665B4FB37F345F4F6F +:108FE000767ED602EB5106D2430BACC73778BBCCAA +:108FF000F95BF2C655464CBB5C585DCCFDBFF00733 +:10900000EB28A2EBA06B5B3D6A56E84A3AAFA3B0EF +:109010001ED07FE77612BBDCA5EB392A160C5CCF9D +:10902000AAE27B8D26BAEE2374DD12C07710F9E533 +:10903000717FAFC2BE9F1549637E9E7EB8C6B13FA9 +:10904000D70C468F1F8A3145027950DE86F689ABF0 +:10905000A813E590B782AEE7346A5F319942D6151E +:10906000337FAE2FC2FCB9EB8A99FF96D6437FAE11 +:1090700095B7E6B1AE582BF4D9F65FEBCCA1AF03B0 +:109080007D788A888E7EE7E4ADC8F75C4554BE8162 +:10909000DF55EE657EE72A1206BFB2C79D44394A06 +:1090A000B705FAA1BD453DA49AF6B7EE0B89C1B547 +:1090B000BC0AD7D38F0F89F98532F1A3F07567C247 +:1090C000695B31F72F67D0D9B68D2AAEB7A538F2D4 +:1090D00020F8CF2B24D5D1AF0D4F155216BADBB6E1 +:1090E00091D35D303BFDB8DC3755C84306D2DDAACD +:1090F000E28B75D60FF3170FE3A4933723B211E079 +:10910000328EE3FDBED01422EA697CBA4463752333 +:109110009D674D207636CC27AC93A61C5A3E6C0139 +:10912000D3235AF9FE9C292DF0BC4DD3F5F34B7394 +:109130001783DC9284ACF6C7F606BA26BACF373767 +:10914000B8313DFAE6185CCF60FBA0BD8138F8422B +:109150007B4266FC576FCA9F037EAA60D94489711F +:10916000A1E1D720FE75F4635D2409969E7F91549A +:1091700060E34341064FC9481A1A8307916DF050C6 +:10918000876F1741BEDD5747C810DA8514D144E810 +:109190007F5C1D6982ED4CE1708564C357261CD647 +:1091A000CF1711BFCB2F19DD2DD9E87527D00FC8E8 +:1091B000E9726E57C8915036FDD6A2AB2E0AA78A27 +:1091C0005190EF14A05E610B49C0FE59CBBF974888 +:1091D000D11B001F854B62228CBF8AFBDF04E26E2D +:1091E000190AFECD32AD0BE8ADAB2D87D39BD6056A +:1091F000F3B98DCF230BBDDD968DDED448D4003D71 +:1092000073BA1AFB3EAC7B8860E4112A97C22DEC3E +:10921000BCCD1A974EFBD7405723806EF4345F0ABB +:1092200055E8A8673CC8F1911F8C374295F094A788 +:10923000772D01FCC57C06F0D97041F7AE19608F1F +:1092400010D207E72EE1E204E649B5BBEF215A3E12 +:109250007CA929CCA4F99186BB0F58CEF0054913FF +:10926000CE315A1BD839C330D26BAA59F409458D77 +:109270008640BF1A11BC6A2ED86DC2D06776A9B4D9 +:109280009FD6461281B3C450AC07F9FD88292E0D34 +:10929000FA0D8789E886797D87441A75D09B5979BC +:1092A000C87047617F2844DF05E310394A2EB4E1D6 +:1092B000CF1B8C2D2394DF9DAEC61E04387A2B98CD +:1092C000BE3DE4BC1D08A77B9524017AF34DEB312C +:1092D000603EDBBB2E268B6C74BF83F31725428C5C +:1092E000848D2EEF93183CEF892EF77CD707F5720B +:1092F00098BD41E623FD8E235103F6AF8FDA634913 +:10930000469F4FC1F823176835026D372E42907E75 +:10931000E9BE1CC6E6112B047DFEDE2EB50EF42739 +:109320008AB757C964DA5E74E2CD1B347E0878BB15 +:109330005A52983EBFBC27F9001DA780C249A770AA +:10934000F21E7A3109F8D316FB0C650A9DF78A9E46 +:10935000E49BB43C58E7250694572449092D9742CD +:109360001201B8A9FADD02D011F83E902E6A09EA7E +:109370005DFEF9519836C0ED00C24DA7F441C70D0E +:10938000D2CF00BF7639FEFBDB69BFEDFBA5884974 +:109390006CFB87D0FD63936BD47EAF90B3E83156FE +:1093A000FD13C9D9B4DDCBE496A527D07D7648421C +:1093B00079C9F6D9C9CA6D621A7BCA285CCF23D68F +:1093C0005FAF0CF0984BE181FA4B95F2AE534F939F +:1093D000D3798AB08F6FDDB317E06D9EE9D280FE3E +:1093E00033CBE742DE5A2FC83B99EDAFDD3B7F3BE5 +:1093F0001AE4DA4B11970EE7700785DEF7F01CB917 +:109400005AD21F0AB3F9B927437BC28C679839E453 +:1094100043F49F745FBF6448C60CDABEB74A484045 +:10942000B98B1C6E390BFAA3FB0EF669EFB43D87BE +:109430007269FE3C81DC482A0939FF19C9744D184C +:109440000887B93B5C87018E73619D36BC9CFFAC7D +:109450006DDDF47F236582F4B5FBCD61E76D82712C +:10946000486E14E43899B1823C4DD3F3A6307BECBE +:10947000A519FFFE1EC17950AAA6F37A69CABF07D3 +:10948000C13EAD3604B467CE9F26245C59D647BF93 +:109490002B3AA593B9C6A7B80EFAD7E7A2F47AF487 +:1094A000305BD74191F435D2757DEB99775ACEA2D6 +:1094B000E36935EEBEDC5096F564AE639A33DF8F18 +:1094C000F719A41CCEAF65921381794F5062A36542 +:1094D000909B8F7DD39C0EF64692F475209F8D2134 +:1094E0007D5BED66172CC17326D927E2F9A9EC63E1 +:1094F00072E408C42B007E83625638932215947B55 +:109500001B1D0DE26FE6721F8BE83EACFE5C66F140 +:109510001011BE0F490A8D925C801AA5833CA20BE4 +:10952000CC4889A0FC21641AC655043D7FEF7E1704 +:1095300060BF82B18E7CE9FD0AFDCA29A4D7BF7B3A +:10954000BF2798AF271D5F12B49F97AFA6FA0C18DC +:109550000DCD0D1AA62E885C017956C1CE0D57355A +:109560008458F08ABCD31083A0E7AA3AF001AF2F49 +:1095700049C2B4DE1FA99C23B007B95FCBB2FFBCC0 +:10958000E5E4B048F1EE8DA80E7F8ABB483DA97393 +:1095900086D682D1C38EA75F01A586DDE97683D505 +:1095A000FB47A7CD548E876DFE63D9579AA6EBE390 +:1095B000AC4F9A11633285441D768E2C32BF59B35D +:1095C0006FB11BF9F6B12FBF942673BB9B401C45AE +:1095D000744A36B86C91C30EFD48D1DA6E1402E0BD +:1095E0005F5D62D8F77B02F816C8EBD07546EA24B7 +:1095F000F020C9D1BA45CCFEC0B89675DE85E470BE +:1096000005C44D2C443F6C5BC1D030E35FCC7F4739 +:10961000DC3EE463169DEE2AB83894023DB3F0E2D6 +:1096200010F0BD5685EA3534BFBFE069D44FDA8EFD +:10963000E51217A5A7B65029EAD36DC74E1916CF64 +:10964000B23E2F61FC228710EEAF532116A77FBEDA +:109650006D21D10DF33952C1F8CE3AEFBF1A10EF98 +:10966000A2EA721CFA577D4C9FAAADA27A11A5639B +:1096700035E68BB9B481FD58E3D03F01E25CE05898 +:10968000BC7FDF098EF2ACF318988F19A560FF6BD1 +:1096900004F96A66B9E20E98DE09A09FF57FD760EB +:1096A000DCB283E3D1EF0CF575F047538E00FB2A53 +:1096B0004DFF0907BE8926A6FBB5F94F6492D82055 +:1096C000A05FC01D877D9B09D73695F923896CD48F +:1096D00001FC5A84FC8910373318BDCBA176F4C342 +:1096E00050D82581BE5CA1591857D442EDB021C88D +:1096F0002AD6F60A1330FD14ED664DFED04E7F7F5C +:10970000949DE734CDBED2E3DA51A02793318397FD +:109710002B6A24164579147F0DF407994CC0F9CBB8 +:1097200045FB5E0B835F4961FA85CDCFF4915D7F88 +:1097300069110DA250382A39AC9FCCFED78B353237 +:10974000943F28475585F6D3317632977F19FBE54C +:1097500024F52BAD3EC298243102C25046CFF0977B +:109760005311811822123A4BD2E4290CBF108FA555 +:1097700080DE0534582EBF0DF336E87F30EFC0345D +:109780009AB7C155322E354EE17A8012027A62F5CF +:109790002D3A95001FA01F667C0F2B19F86878C61C +:1097A000E19796088B13CA5CCF6CB1668C32291B8B +:1097B0001C4ECEBF05BA02D387E3ED4290C54BC223 +:1097C0003A37717CDFC7E5D27A904B34FF032E879E +:1097D000EE6AD031DDD8508EE9030D112C6F6998F7 +:1097E00082E91D0D06A6EB1A6A315DD310C57A6AAF +:1097F000618B1BF0B6A9B067A3007AACB9ABE620C9 +:10980000ED7293BFE775B0DB08798EE5C1581E4E47 +:10981000D7A7FCB4C684FA793D9788740A8F0FD90C +:10982000DEB497CE77D3A89ED7059A6F6DFDD1EEA3 +:1098300016A83F9ED5BF52395063523ADEE4E17616 +:1098400065D1FC13C081F1CB5B603C9A6E2AE0FECF +:10985000B5936CD700ED281C3785BFDA781EB9D3D5 +:1098600060EB7DBBE69510F893D8FC372ABDB85E57 +:1098700064595309E9567EDD84EB1FCFFBA772EADA +:10988000229B9C5AAF30FB6A53E5579BF77D7CDEE9 +:10989000AAD667508E47FC4A6C39ECABC0D25EC387 +:1098A000A5833F6BB729E8D05F30AB7F2A938E7ECC +:1098B00007C6F4A4747DB52A424AE9A73B33BEE744 +:1098C000D71A68CF9A0A8B735A5351E366FBD8C0F4 +:1098D000F3CA7645E37A568CF9255F60FA7BDB2084 +:1098E000F5A19E5995AE37E83CB513E8B927B94EB6 +:1098F000B0DB418F5B2E6B8E755D9191F7F8D87E52 +:109900003D597CECE6F8385BE6EBE7FD9C9ED1EF39 +:1099100088C74432856EEDA2EB6C7286FE2FB420B0 +:10992000C7911F3A3FDF910FCE1DEEC86BD39CFA53 +:10993000D1F025E31CF99215131D79459BEAC80760 +:10994000AA6A1CFDE5CF98E328F755CC7394FFADC8 +:10995000F09E9F018FD919F993EDC715BF91446807 +:10996000D5CB5F91D0CEAB27BDCA30D0A756080467 +:10997000F429A8A7517D69019B221157EC9A09721D +:10998000F8728A6A571E4DE55E05FC1E0B56B81C20 +:109990007AB4D5FFAED490A6C5B4FFB7E2AC7F9A37 +:1099A000A2FEFE9649ED609ABFE2F677EE38839606 +:1099B000BFF98A1481E5BF497ACF83BC694AFC3C70 +:1099C000B4B718E8EA22EE37380C7E29CA2FDFE058 +:1099D000F1AF44EE2D86F8E93794C4E58C6FFCB501 +:1099E000E615CA6ADFF0F41643BE91F8A6B70C87F5 +:1099F000EF6BDBBE695BC7E2B860809FC688EA6D2B +:109A000021F06FEA91D33B7819C6556BCCEFFFA9D3 +:109A1000A2727FA7F129F0815059F4B8E7ED871AB7 +:109A200098DFCCCABFA8C4FE02ED16C7F354D02FEE +:109A300017B7EF52609F16AA9C7EE504AEEF4DCBA0 +:109A4000DF47CC6AB063DEF8CD906EFBF959A1EA2E +:109A5000F4FB668EB328BE8BE1ED3A2182EE4D77A2 +:109A6000A278A16D9E2135C0EE09DCC8C6310B0578 +:109A7000475C6180F75FA8323FE6DFB0CE616AD60F +:109A80007512CB3E0CC03ADFAABF12E1FB19A50745 +:109A9000F005BD70F87D05F46F32BFC0C10F16B779 +:109AA000480E7ABA6CA9D7915F18BF30375BFC4E6D +:109AB0003F7D9BAEB41D67D337ABA90606F4973F35 +:109AC0009FD98F2423CE3B486202F8C98611B31177 +:109AD000E667C5755BFAEC8819FAEBF45FA4D97FE9 +:109AE0007121F7FBEBF26414515C6F92CD94A59F4A +:109AF00053FA1C5E410C88F7180EDF6D7A4D6889A9 +:109B0000ECF073E42F901DFE1B5F95B35CB1FBA9D5 +:109B1000C2E9F558EB2DB0F41523AE633CA8BF277E +:109B2000047A4067A0AC7936DD376BACF3B1F9F756 +:109B300070BD067815B59FCF9BF150B6735AD49877 +:109B4000E97AD554AF01FB5B21BD187F9F1F62FEF0 +:109B5000506F09DD99D09F4CB1E203F9C5FCB231D9 +:109B600055C779898FE91EA09FB5B535791007A82B +:109B70009A31D24EC7F3D78A894418FA63E751BEA7 +:109B8000B9722209F9480CFDE1BBDF7CDE9DB2E130 +:109B9000D56A4FE673BE26C743D9E8B23FCE6441CB +:109BA000757231D3D7D09EA05F9270FEE6A2761672 +:109BB000E86F72857C18FC3D1F08B1656A16BFBC52 +:109BC00035CE09E5DD49D60B4F5191DE5A0F0948D4 +:109BD0006FB9257D31888B22AF4AC85FCD9AC86B9B +:109BE00031F0238E5323CD3ADC03E9D361FFBB0E62 +:109BF000793509FDE1F133C01FDE9AB1DF8E66C40D +:109C0000B38C1663EDB01E61685D0CC6BBE56D01DB +:109C1000FD94B9D3185E02A7B278B1BAB38AC81F4F +:109C2000416FF7C5B64179281835DFA3E54FA82C59 +:109C3000AEBE3FAEC117C1B8068554A25F5D714785 +:109C400030FD39E70F8FA9CCAFFE84CAEC1754FC66 +:109C50006D7E809A406C23F083B0416AC0A4977CEB +:109C6000D6790EB3D7CD6215EDF599920FE1732435 +:109C7000A877BB6C7ACAA3BC5F2BDF4ED70FE7BEB9 +:109C80009FA74E417B4CD199BDA4E866D20E071226 +:109C9000EC3B55B6E933AB475FCAECA160CF69EF47 +:109CA000DAF8C1CF39FFED28DE1682FEAAA4E84F0C +:109CB00060BE9A611810F7E50EB1FB4CFDF5FCDBB8 +:109CC000F0FE8A429709FEABC0597393CD709EC1D6 +:109CD000CFF7A8F86D5182789E8CED2C7AA274F69D +:109CE00073D5EEF7085AF4463E02BEA37278758C1F +:109CF000BDCA9DCDCE1CABC676DBDBABA1C871EF78 +:109D00009758E7458BA7F08E897E36F8C7AFE67681 +:109D1000DAF29D0FEC03FFF7F233A9851C81389529 +:109D2000ADFB9E037AA06A23DA71A473DF9B34BF74 +:109D3000A4CECBFCE9248A7CFB6322D602FFF81870 +:109D400046A4ED3FF64D7E10CE2F4DBACE0BE97EE8 +:109D50007C5F65E7E2B28F9D47CB697EC7FC143C10 +:109D60007E8EF8187F3489BB11F9723BF3F79AF4B1 +:109D70003FC87FA7D3E9FFFDEE0667FE2A326F28B2 +:109D8000F881AFBA472109DAEFD5197CB197E3EB37 +:109D9000BB24DE067C6B15E77BCB7E3A5E053BEE93 +:109DA000EAD3B530C4735AF0FC23A7E70F297DE945 +:109DB000AEF4F76B8209D5607842BF4D731E9317DE +:109DC0001FEF989E84FDFA0EE52788F78C75AE523A +:109DD0007ACF07FFB779871261FA13930FB00700A4 +:109DE00074D76CAF36C01F4EA1A50F71B6C7F95F0F +:109DF000D9EE5CEF89E091B97E4B6F1E6C3DEA763F +:109E000001CFC132E94C75098E78A7FE7B484D32EF +:109E100069AE027FDAF7F19E52BDE9D25C343DEAC9 +:109E20002949C0B9DF68308A50BEC7CF607647FC89 +:109E300034484FB6FDB8FF65FB09D07ED2C0F6AB03 +:109E4000839D51D8A7561CA1DB1D47F92EC8CCCE47 +:109E50005A1D3A4179112D978E535E76FCF6E01724 +:109E600085F39F4530A55390FE516EBDCDF5D76665 +:109E700025FA2D8C97FF8D4420DEAB394F433DD41E +:109E80006C1574D07B17ADBD2017E875D12B5250DF +:109E90000CF3AD0CF5FDB5787E78A64BE176574A0C +:109EA00086FDB9684A7816F0EB662512CA8373F806 +:109EB000EF333F6DF594CA189EE3F8EA14E0AFCF94 +:109EC0003F763AC6615EE39B2503CA67F07E3E7E1D +:109ED000F489C984CEAFF9713F49A2BF2DA182DCBC +:109EE000BD668784F472ED4FFC189F76CD93CB1E30 +:109EF0009C4BFB117EEAC7F9484F7E771BF3AF36C8 +:109F0000633FD73C7DE14B265F17DC196C6EB4CE06 +:109F1000B123219063CB5CE40A1697C7E0D0AFEF82 +:109F2000B557EE0BC1BCB6E761DC413FDDCAB43EBC +:109F30006DBF88A6F3B2D0EDD52EB67F3FF2AB75DC +:109F4000304F61FBAE85B8BE9E6F2BB03EA1254F52 +:109F5000FD031D6FA14BB1EAE13ACC4784C4285AF6 +:109F6000FED123025B57CFF82E4F18C6EF5217E3EE +:109F7000394723D6B7E6BB787B65DB705A6FF1DAD9 +:109F8000BC5288E398FE93C703A0A75CFB932FDA2B +:109F9000A656613C76DF5CBA9F6FD82EA17E7165B4 +:109FA000BB94718EC0FC69D72347A0F59F7A7FD6FA +:109FB000EF68BB0F295FF65096F561EF1FD45F4045 +:109FC0003EE68B035FBEE119C5E13FBB61FB3B1879 +:109FD0002FAD89A4AFE82CCA820F3AFD6B99F53FEB +:109FE00023C754F0DFDFD0B31AFD9C37ECF8F80D2F +:109FF000D82F3764F8D73E847F140E8C57EF74F94E +:10A0000083689772BFDB67E4E0643C0FD83E24AB03 +:10A01000DD6EC5A95BFCE39367FEB4C5A4F4F4D17F +:10A0200093FFB9C5A4F0DCFFC59FB6FC0BC0FD399A +:10A030008F06F47DC3A37FD8721BC891675C22D0C2 +:10A04000C927CF3DBCED7E9AFFE4F53113614B3D4E +:10A05000CAF9D127E1A343411F59F1DCCC61408FFC +:10A060002B764E1F468EA3F77F42E92A61A32B4B26 +:10A070006FD79F115830CAB33CCDC00739D8A782DB +:10A08000DCFFB340FA3AA85D7B7DFCA80A7AD83E93 +:10A0900083F4017CF6EC7867DF6D34FF31C58F2BDC +:10A0A0000B7EE8CA468878CE941C01E74DD7EFB8FE +:10A0B000F05BDFA882548940F737903E944703F065 +:10A0C000FA0AC56B551AAF83E291FB476F88BFFF51 +:10A0D00006C44364E2F163F8C79903F1F8C2003C97 +:10A0E0005EB7F57E28DC3124ABFE6AE171D9CE8BF8 +:10A0F0008E6B5F7D92B17F0783F3526E97DCEB32FC +:10A100005E77C1FE7BF247DBEE0F029E5D91B98068 +:10A11000F7C73F2B21A027297D0B010E7DCFB9B4B6 +:10A120006EDAE69AE77E8BF2EA939D2FAB3AF275F0 +:10A130001210283FFD84F4FFFD1AF4CDEB0596596B +:10A14000A6F7CD7A83F6BB8C766146107FB3DEA886 +:10A1500002FCB1F3BFEB1317D4EA788FA000D77DD0 +:10A160007D82ED8BEB13BBE6C3794026DCF3DCA2EA +:10A17000250FFBF12A4C017C1E9E05F437183EADDD +:10A18000F56BB0FE3368F90F9DFB7620DDF4A92056 +:10A19000172CFC7ED27554BD85D64FFE42D5C4A97E +:10A1A00034AFF4A9C077CC27240DEE2F65E21DEE65 +:10A1B0002D2D423DA5296BFC51263D78DD4E7FBA01 +:10A1C00075EFC982CB89F6F589D7F3D5E0F53F5C09 +:10A1D000FE67C2AD71A60BF9F2AFC22E3CB77F5934 +:10A1E000D1EFBB09E8E30585C0FDD2F34BDF97F55E +:10A1F0002C76E04BA0F7D8ECA46F4D115A87D0769F +:10A20000DF32A85CD1D3746A9547A749787E65CDC3 +:10A21000C7FA9E3FBB6A2DC8DF23F04E02E5CF7B15 +:10A220000BA39B31CE5194E3AE503A3EB1D420A85B +:10A230000F2F2F76A17E08716404EF63B3F3EA76E3 +:10A24000EB7CDA174339FD6B3E3FB2FDD1471FA5CA +:10A25000FC670E0C4C496D0F89B4E6039E2B98FCED +:10A26000172A9E9041BE9C5BFB840C717F7B05A6E8 +:10A27000C7BED6E046BD0E4E4A216EBD2ED685E540 +:10A28000BFE4FEA3394B68DE2627CF2D7F4206BDF3 +:10A29000E0DC8AAE22E0C707200E338B1C6D7333DF +:10A2A0007BAB71ECB7314EEFC0AD2C5EE240F17D7F +:10A2B0004580BFBDA31EDEBC9C7EDF5F2E440065D3 +:10A2C000FBEB9B7CC08FF7EB4E3FCCAEB1EF0B307E +:10A2D000EF9250970C7CBB9BDBAD3FE4FEBA6DFC6C +:10A2E000BEFA767E5FFDD1061DD3C71ACAB1FCC780 +:10A2F0000D11CCF7344CC1FC930D06E67734D462D3 +:10A30000FEE98628E69F69A8C3F4D986A5F83DD062 +:10A31000B1BD05E047C6093DE0FFFAD7863896276C +:10A320001BEAB17C969BD9AB25ED549F3F8DEE8BFC +:10A330007A160FD64DED51FBB99A55EF360E8F5365 +:10A34000F363CBDD343D523B7F12F0E1D651DF1E8B +:10A350000FF8DAAF9F22B2FB61EC3D008FDAB960F3 +:10A3600039F81D02EE88A9A7FBFB5541EC36B78DE5 +:10A37000DE4ADB55923C1DF099D81B047C9F47F1C7 +:10A380004DEBCF8975B540E8695D6D5807FDE297E3 +:10A39000424F4B3ED811E379F992754A4DC589F188 +:10A3A000781EE75BCF57C78B60BF3D2F303FDF85FF +:10A3B000B51229B7F1814B62CEFC99BC5DFEECB2BF +:10A3C000E3C6C1C2BD4DA7FF9AED2717C435DBF622 +:10A3D000914777FAD5256D8FF1EEE903FBB352294A +:10A3E00050CBF4664D7E0FF81B8581F0A598E63BB7 +:10A3F000682959FAB40EE7CD3E02718C975EC7FC0E +:10A400002A97939402FA3AD8590AFD7E852960DC8E +:10A41000C962125141FF5E42A2985E45E298BA8A33 +:10A42000920A3B2F99A1C1BD25C1384B827896C1B4 +:10A43000E69779BF29334ED9C5EF9384A6BA6376E0 +:10A44000FBEA679C9E9EE729A5A365403F838D6339 +:10A45000F10F8B6FD40C89EE02FAB3F062A583B5CD +:10A46000CFC48F351F02C406E74CB3573C5F4C5135 +:10A47000DBDDA9233F9CBEB8DD55428BB6AED527A8 +:10A48000025B190B9E399ADF7228DCCDFCA34C0FBE +:10A49000DE5ACFECFEADF3BDE8B73FB2B2F4E53122 +:10A4A000E4C4EBC8E483F78D9CB00EF03672BF8431 +:10A4B0007C64DDC8BFEE82B8B49214E32B25BEF8ED +:10A4C00018D0F7ABDFFA8F42F00BD70C89BD6DDFE8 +:10A4D0003F5B6E8F8F04BE93701BEFC0F723B52BCD +:10A4E0005C1E92A6D7FAB5FABA727D707874B71F5F +:10A4F000FF3C3F73DEFDF437C87E48D307ABB7DBC4 +:10A500003B12EF8DA624A2015FA8F116A37E17CB04 +:10A510002506F81D2EAF4F2A80FFA7DCB12F60FE65 +:10A52000979184C2EC436D28E8011B834C1E6E1981 +:10A53000FA5E21EADB722ACCFC2627792F8310876A +:10A540001C5F45482DD0E5349212E09C44F47E54C3 +:10A5500008F221D7E3F4AFF5F753EF7C7FC025680D +:10A56000387F70A83E44D7B3488C1A6CBE869C17BF +:10A57000847B6FC244B8AF383328A03D78457DB89E +:10A580000BFC5F9FB963C33D93583FF8BD48C3FDC3 +:10A59000B8C8376E06E8AF27BB1E62D089DBDE275E +:10A5A000B2D65713888D82FEC39A5003CFB5B88AAE +:10A5B000987F71A654919B3A0E7E133C3EFE39EE75 +:10A5C0004F7C8CE219F2BFA0F409F92D541E41BA58 +:10A5D0009DCA23F8DE4DE511A4BFA4F208D27FA3E3 +:10A5E000F208CA7F4AE511A43FA3F2486671E393DB +:10A5F000613E7AD3D2E1308F661EB762C5AF5BE3AE +:10A600009FC3E16EA58647C7FDB54A6170327FA33F +:10A6100026309E548E8EC0FB6334C57B1F7D7D1813 +:10A62000E3F38DFF4AE1FD8A4AE28E80FF69FC8EEA +:10A630009401A11D43B83F6ADB37F4DF49487FB975 +:10A64000849C4DDB95D4BF06F12F77529A83D45F5B +:10A650009FC463B3D33E8F5C761D1D7AEA0789479A +:10A66000AE0B323F24B4D7CD14C61F8FA1CC11F24C +:10A670007E3195847824F2E7008178D9DC733E320C +:10A68000AFA6F9BB6ECDC5F2F244CA788CE683EF73 +:10A69000B2FA637F9842BF68C1523F01BDA972DF21 +:10A6A00007C907E9B8B99FF03C8935BA717D91DDDA +:10A6B000E0FFAF5CA0E17DD70DE72DF50259AD8D30 +:10A6C000BC8DEBE98C07B0BFFBD5DEBA2B69FE89E8 +:10A6D000C5BE48372DDFF16CCBE135B4FEC667EF60 +:10A6E0005917A6E9FD21F9775743DEC3E2CBFC9366 +:10A6F000F6BA4FA1F5736F142B25EC6F37E637C50B +:10A700008378AFF3B44AF68EC28E69ECBE83859728 +:10A71000EB3D12E2A3DEA372BD9F927910CF2930E8 +:10A72000EE43D93FCB80385342ED09887395B56825 +:10A73000F25CF0F7F2B8F90F8458BD07F019BF00CA +:10A74000E3C63DFCDEB3E5075EE9617EC9D3BA1816 +:10A750009E9F784D4C40C0FED37B177B41BF7A7AD9 +:10A76000EF1111D2D32222EA254FBF76B707EEF0C0 +:10A770006CDEBB7C18F327C7BC54F320FFE2617189 +:10A78000EA2DC0F426D9DBBF2D025F9C00ED7DAC25 +:10A790003DC4136F82F6E174FB660F7BEF672DB447 +:10A7A0002FB0B75F8EEDC7D8DA83FE51F44BE7F8D0 +:10A7B0006BF8F8F70C68BF18E73F9ACF3F73DFFDDF +:10A7C00080B7EB11626BC6039D2F93D13F5AFA9865 +:10A7D000EE9D678BF77F92EF8B5C385F423F94E191 +:10A7E0008579EDD85F7ADCF7245089B6C55B62E4E1 +:10A7F00092435EE767E48767D42FCD281F97513EC9 +:10A80000D191DFF37FEE15A3741D4F07999EFC7461 +:10A81000B009F5C1D62211E3BB770AECFEBBF98281 +:10A8200084EB4CAF2782F0DA7DFE54ACFFC4B3ACAE +:10A830007DE963B117215EB567AE48806E32E550A1 +:10A84000474E298B3B0DE6BF782A6D977F9E4C8043 +:10A850009E9F4AFEBAC64BF379A3844AE08FA35366 +:10A86000F1DD7E9ABADE4D41581099D6A7357B6945 +:10A87000BF9309A3D3FCD9C13D1E9A3F6250BB06CA +:10A88000FDFB7D4DB3ABD274FEF0E623BBAB69FE9E +:10A89000294ED793A56812CFAB24D207F6E7B60DA1 +:10A8A000CB9BC6D2FC0E28A7F9D3F63AE321FEE2F1 +:10A8B000C967E7489BA73AE4AE756E3318FEB63514 +:10A8C0001878AFCFCA3F0C720BE034FA2C84D3C394 +:10A8D0001B4AF17CE8E10DF372451F8C935D7E6DA0 +:10A8E000E37E89A7388A5190D0F93DB541E4F9FF5C +:10A8F000966796F17BE753D3E5AB363BCB77F4977E +:10A900007F3103ECA71D1B64CC1FF17C31A3919612 +:10A91000CB1BE69B63ABB03DC6B5CB45D124E4ADC4 +:10A920003877CA0FFE02FC40A6E225104C9F0BB9F7 +:10A9300083860978D2CDB80BD675AE4EE243A85EB9 +:10A9400050792C217BE9F7C97D4633E84174BFDD9E +:10A950000FFBBF8C9F639E5B926A86FD4C260A2C80 +:10A960002E42EEAD01BCDE32A612F9CC017FCF1E25 +:10A9700038CF7D4211904F4E5C991ABE4C877D397D +:10A9800063CE5C9A1F91C3F8E3B9A5F12B409E1FDB +:10A990007D5BD081FF34BE79CB1890977BF6CF23B7 +:10A9A000902A7B65DCBF4A509362C887F2A5EFDA34 +:10A9B000ECA3CA88C2F943E99A0AA0F7E00FA7F20C +:10A9C00033BF96822AB81F957814F4C611392E1613 +:10A9D000D718514CB8BF4FE1312207E24D34D310A4 +:10A9E000F4345FAC9608C66792174526F76A75AFD0 +:10A9F000FDDEFD93BD32DE8FAE7A39B8A2978ED7D9 +:10AA0000A24D3D1DE87EDB46B505D62B8F89E015AE +:10AA1000A87139D63D53764FD26A4FC71D9793E53B +:10AA20009C374CF4BB66C078C7B49A2761DFF17BD2 +:10AA3000A914834DD7827CE5E7C5B9C772915FFF42 +:10AA4000A44CE0F1024E3E332BE875D0B9D8E9B4FE +:10AA500083C2763E13CEC2670E9DEA88BFA2FAFD7E +:10AA6000CBA756E13D6E9DC135EE067932B94C213A +:10AA7000A03F11E9BA3D707EF719BF5735F990F73D +:10AA8000B01880770908F2892E1E97D8632EDE034E +:10AA9000F7869EACF3128803D8B77FB1940479C6C9 +:10AAA000FD974A4BBC06F869657BAA09F811318D00 +:10AAB00040F55090CF04F5ACCAD4A2B9A8A7ED6573 +:10AAC0007E6637FD0FE63761B3CDFF44FF379BD875 +:10AAD000FCD061E0334EFF54A6FFE9B21CA73FF261 +:10AAE000CEDBA408BEFBF52A8BF779FACCC8267C0E +:10AAF000E78FDA5B12E82FB1FFE95846F3DBC8C8ED +:10AB00003C783782B863BF03FACD2BD1C2808F7EE9 +:10AB10007F658EC8EFBBB8F0DECAC3BD04F96A75A5 +:10AB200051BC03F8D5E46744D4216F834B96B4DE5F +:10AB3000E4DED401E0A3A7D78A20ABC9E907CDB1F1 +:10AB4000600FEE9E7ACD08D0AF5A7D2A9E9F370BBC +:10AB500071A2211F67F4D9BA5FC477099F98E146B3 +:10AB60003EFF34A525889F6A8DE5743785A1FF7C5B +:10AB7000762E1EA4E290CEF3EE584E17D84B4F71AE +:10AB8000FF0D39668EC5F71E1F2423C0CEE9E9628A +:10AB9000DF8D43ECFD008FCEEE1702876071485ABF +:10ABA00025E8474D39A21587D404F41C38A512DBDB +:10ABB0003FC5DFAB3C51FB0E0E1FDABE03F661054D +:10ABC00004FE81FE4E71D781EF1DA61A010F8B4442 +:10ABD0001E379161072C247D68A750BD7E3DEE6332 +:10ABE00042ED0024506DD632B0DFDC028B033E49CB +:10ABF000BD7E24E8ED3A6E4713FCB8967E3F72A501 +:10AC000026021ED27A7EB40BD67BF2FA3DE17ABCE4 +:10AC100046D83DF13EBC5F32D264F1122F829E3F96 +:10AC20008AED1328A77AFBE3B09E912BD93DB46639 +:10AC3000355A07E72FFB7396CC94CF04BD3C5509DA +:10AC4000F99D394B5ADD341F16B5E110737F20E7AB +:10AC50003B33211F6816506EECA179731A1D177CC7 +:10AC600016402FDD84EBF1FADDB5143EE54B82C8CA +:10AC7000A7C3626AF518E077D788A8170412C95BE2 +:10AC80004996FB475D9C5E02CD9FDE08783E90C3EF +:10AC9000E4DD014E07567EBC3BF63CC007DC23706A +:10ACA000AF71643F1CD93DA80310C04DCB5FCCB140 +:10ACB000E2CDCCE1EC1E0F4DC7835DC8ECBBBF817C +:10ACC0000E5E45BC703A981BC953AFE174207D8578 +:10ACD00077042C7F46A6DD6AA5CAE7A76270D66016 +:10ACE000FD28FC3D93D6521657B2AA787425F8DF9A +:10ACF000AC7B2B2552EC43C0AF52C4E345821CCF42 +:10AD0000FCFD55EB1D18ABBFCFF93EB1D240F305AA +:10AD1000718CDFE7F0457F8F9EAE3FDEBDF8CF3907 +:10AD20008EF88E1801FBFABF73AC78DD38DE47B6BB +:10AD3000E296FE56782BD40C063853B8CB5EDAEF89 +:10AD4000A222F65E9225EF4E16DED34BD8B93A69B1 +:10AD500092C9435564C07BA32EF70549D8C699ED27 +:10AD60006FA1DF7E4E55BDE9A5F1D322A8C7B2B8C9 +:10AD7000A4D1626C98D7A687517DE20AA07F2BFEF2 +:10AD80006811F7CBD17DA8C0FA6B86E8552CBEFDC3 +:10AD9000EE9907A91D55031B1FF42E73DD4CD0B38C +:10ADA0006ABC2C3FCFFB781BC4ABD7C05912EA61F9 +:10ADB0008FB2F25358F9C5504EF3233D4699B72050 +:10ADC0002B5F49D8DF35AE09C44EF54E4AF39734B0 +:10ADD0003FF1B1F8A3954C5E0CCE57DCDC1F40B8B8 +:10ADE000BD1F9B04E35A7C25CD3FB2DBFD677BD9B9 +:10ADF0007EB5D273BCBAD3EEBF83DAFD405B72641A +:10AE0000F83C3F4B015E27E2D3363B2907E5780645 +:10AE1000FDEC59CDEC94EE16CBCED0F62DA5F987EE +:10AE200038BF0EFCB5F970BB90A633BA9F315EA156 +:10AE30000E8C0884AB3E07AEFA96D4CA6897FCF035 +:10AE40009EFC3C18E77739C6855E5BBCC8FD39C6F9 +:10AE500045F6BC0D0FB10C3C2C38193C8CF4794CE8 +:10AE60003B5C2D381EE4FCFD579C7FF7723E5F2251 +:10AE700019DF817E9B551DFD8BE60166770D86CF20 +:10AE8000C1FC9316DE2CBE30C7CFF0954E19FF3DA6 +:10AE9000C8E38A4AA790A95A6EBA5F93E3F7A087DE +:10AEA000D465BB97D2E065ED03CD29E4EB08213AE8 +:10AEB000DFD2162AB76DF4D7E8B5E2717491C5B543 +:10AEC0006898CE8579D17ECBA69069F671EFE2E3E2 +:10AED000CECD61E599E3DEE9E5FC4C3AEC18B7EC40 +:10AEE0001EA62F58F53AFBC735F8B85111F5E5768F +:10AEF00086A7B29504F1A6DF93AA86FCC1CAE7CB68 +:10AF00007E00FA4F41393F5F4B35823E2F9B6111E6 +:10AF1000F4B52E3EAFFBD508BB87250804DE3936D5 +:10AF2000FE2B6A421C8FC760F7BE149FF929E3CF3E +:10AF30004C4FA77A7B9717EDA7B8436FB7E01E90E9 +:10AF4000C90C97EDFD9E293ED171AE67AD736EE4DD +:10AF5000E51943E838137668E80F3A7F0AF3539609 +:10AF60001B45E8A7BC99B77B30A15DEA45BD93C4FA +:10AF700073295F1AEFEA5DFE229D6F629D1A69A236 +:10AF8000EBDA9EE81E0BFBA69310EE97EADB0BFDB7 +:10AF90006EB994A0BD35CC68BCE45A9A4EF8C5DAB7 +:10AFA0009C71F47BE82611FD4D1F7999DDB53DD1EB +:10AFB00084DF2D3FD4F6C493798BE83A36AEBD7B5F +:10AFC000F668D8FF0931320ABE4F63F68EB58E5D42 +:10AFD0005E1697F9A2B7DF2F952CB7D9EB8A392BDC +:10AFE000391DF879DA2F658C76FAA55EF41EC72F25 +:10AFF000F59297E9051B138C0F3527C404C4F56D32 +:10B00000F735E5807DB0DD378FE07B6506F3EB6CCF +:10B010004F70BF94CFF22B9939E017FA9597F977D3 +:10B020007E0BFCBBC0DEFE6D38AA2125B6F6E89784 +:10B03000F2597E25D6FE55DEFEF7D07ED2F1C74707 +:10B04000BF94DF39FE5B5EE6D77AFF84E33F996702 +:10B05000B767DFE3E34E78C6DC0D7CEE54C2FC221A +:10B0600063123134D5FC52D20DF26BEBE39DA91C77 +:10B07000F483C87180F38FB87E36E6812518B7B99E +:10B0800035E39DDECFF93E77F9D87EDAB399DAD78A +:10B09000B08ECDF3110F6425C138FD310FFC9760E0 +:10B0A0009FCFC825CCFF36E6811507C61EC7BE76E2 +:10B0B000F95C2CDE728968D9D72EDFA481F6F59170 +:10B0C000DA253530EDF12D2ABE4B35BE93BD533513 +:10B0D0007E4702F9AAFEF9E9D4F8A1E37E5E897AF7 +:10B0E00056C9E767615EF9FC4CCC3F2AF635C23C95 +:10B0F0004C91F97F940D32DE971F693AFD3E37FB84 +:10B10000F2F93B8B5FCDEFB305FC3EB6FB7C5BF900 +:10B110007945FEEC2A3C873E724F69B764E38B3772 +:10B1200073788E164814EA6DE57CDB2ADFDD383A49 +:10B1300007EC83EE7B8EFFFEEC9606762EDDDFDFDE +:10B14000EDECDD33FC033B5963EF746C5DB9F8EE55 +:10B15000D990CF9B5105FBF6661F8B97335203DEC8 +:10B160007F3AC30E7FD1CDE2006FF611873C0840D5 +:10B17000C85DBE7D3DD9F996358FCE3ACB9E63F939 +:10B1800061B1A128276EE2ED8ED4EE65F8AD6AAC10 +:10B19000047ACD5CE789F0FBB8D82780BFA11FBF38 +:10B1A0003DD9F17BD33F0ABFF5A58EF77C6EE2F85F +:10B1B000A81814BF6A0EECA344FDC9E1B7BFBF4194 +:10B1C000F1BB3BFF5C1B7E6F1A1CBF3765C3EF787A +:10B1D00077F466F86EC8316297CF543EB5D8E593E0 +:10B1E00097EB0DFD78E6F2DF924FA76E67EF4E5AB0 +:10B1F000F2690C974F96BED1F588717F0EF38B20C4 +:10B20000FF19E7222F78683E2190BE267867635A9F +:10B2100017CAA7A1C0A234904F5494827C5A48F018 +:10B220003DF60D8FB47D7A4007FFEE72E42B9BAFA5 +:10B23000CBC7F1FECD9787FD5BDF8B9631F9B471FB +:10B2400033954B5583CBA57B7CECBC648BAFFF7DEA +:10B25000B724B4FF0A72690BC26D10B9D4ED3B4933 +:10B26000B9B499F1CBC1E452978FC985477D9972E2 +:10B2700085CB055BFB6C72E9111F930F4F0E683F86 +:10B2800070FC6C72E909DEFEE7BE41E4527F7BA7E9 +:10B290005CFA199FF784C7CCDD70D4A292DE083B1C +:10B2A00077253940076B01CE74BF6EFD5967C26BBD +:10B2B000934B3F164C7CBFCB2C64FE854CB9F422DB +:10B2C000E71B6F5872C9E47EDF84532E957765972C +:10B2D0004BE55D724EF971E4D21B03E5D21BD9E553 +:10B2E00012E35BE35A985D3E0EE412C4836FEF6590 +:10B2F000FAE5DF896FCDF1F3F3887FB05CB2EC83C0 +:10B30000C1F9D657934B567F5B7BD8BE4BF3ADD874 +:10B310003627DF5A3219F6EB1C3FD313B3F0AD1CBE +:10B320007F16BE35C7CFE8D9B21728E85BEC726943 +:10B33000CE20FCEA44726996DF8A73617AC738903E +:10B340004B59E25DFE5E7AC7AC7F147E33E4D22CAB +:10B350008E8FC1F58EAF2697ACFEB66E70E277C2C7 +:10B360000E8A5F21AD774CD849F18BEBB4F0CBFC62 +:10B37000BA1E8DF14B8ADF597E1B9EDCCFC40D5067 +:10B3800081C7BB6373E03B044441DC54A65F701A81 +:10B39000A17632D8F5FB25C677E5546392F1EFAC80 +:10B3A0007E286AD709405799F134278AFB3A6FF211 +:10B3B000AD486F9FB98D4BFC363F8DE2892E80BC26 +:10B3C0002173FF557F9C97E9B837D796BE379770A2 +:10B3D000DE9B63BF176496B0DFBBCA05BF14FAE9F2 +:10B3E0009CF7E59AFD57E1BDAD2CF7E5AE877D31C1 +:10B3F000E87DB9319110F8B99AF3AC7BB9D6FE6308 +:10B40000EF4D06CE3A96C2FB5FDAE4D3013FB7F9BF +:10B41000F9BBA07503F6DF6DFE2CE75E84DF3B55BC +:10B4200078D76D85170F76FFABC9EFF02F1EFFFEA3 +:10B4300017A5DF0D707EB15C903438476916D8BB14 +:10B4400059A6901379283CB07FF0AFEA74DF3DE84D +:10B450002F75EC772518C5F7566E49093AF0394A29 +:10B460004FF730FC1119E8C99A37F83B613E87A5C0 +:10B47000D80698E79D533FC478938F777AF077ACDE +:10B480003EA93AA2423C63B390647EAE62C2FC5CC9 +:10B49000246E26D9FC18BD41E01E6DD77CEB70767A +:10B4A000CE56E47C07656390F9534BD4D4EB315A04 +:10B4B000BE93F32FF82B1A8AAF22E0DF2239857E64 +:10B4C000AC2B482FA60B480FA64FB9633F82F95DFE +:10B4D0004AE2E8DF6AF206CE467FDDDF795E161EBD +:10B4E0008ED4CE40E4983586D9CCF858BC19EF09F3 +:10B4F00032FC5970EE807742289DA61A5E33DE1D1D +:10B5000005F7AA53C6BB0ADC6FFF00F3B704A2BB62 +:10B5100000EE39E57117B45B64BE6EBC6BDB5F8F08 +:10B520000462FBA1FCF2F861E35DC77DE9FF70D422 +:10B53000B3DA5B7E6C99F303EBBD348ADF97EC746E +:10B540007654315D51E4874102FEC6236E81DD6B86 +:10B55000AC2126BCF3383DC8E22B6791B80CF0ACA7 +:10B56000259D987E55FE3087F460BBB9A417D3F3B0 +:10B57000491FA6544EC92C3ED37A6FAC5EB4BF3778 +:10B5800026B9593CA95943CAE33EB8F7C4F6A97194 +:10B590008CE1CBA3EBDD76F9E4D274BC4FFF9F7E48 +:10B5A000C13A07FB4F805BA9C1EA2F2F5411BF326C +:10B5B000892651CFE2F1D9185B68B3ABEE6A60F728 +:10B5C000EAE0F7B7208E3BD788A31EE82A8BE33B3F +:10B5D000B854BC4680DE05CAA6411EB8F5CE10DCC4 +:10B5E0007F59CDDFBFCDDC7F13026C3E8DA32EC60D +:10B5F0003887D57E11DF49585DC8DEB35DF5267BFF +:10B600002F706FF1F71CF7A2AD74956FB91BE4CDE5 +:10B61000AAA2FCA62BABE0F703C4845D2FC94C7D26 +:10B620009D12C61FAF2A9A77DCFB1DBE76566FB0FF +:10B63000F25511D22E9C06E3337937D63DC96D3FC2 +:10B64000775F5549CB73E1BD1B168FB1AA381E82B7 +:10B65000FB34E69B5E0DF6D9F489F557007F5A4519 +:10B66000D879F42A9F88BF6FF7D921FFC3B05E61F4 +:10B67000F26B0EBE9C39BEEB73812487601C685947 +:10B6800080E271D7A8C9A8C74AC14EBCBFEC2963E4 +:10B69000EF13BB8BE2F83B7A6E2AF0002F27C2C76C +:10B6A000313FD38FB569A2233EBAADDA48C27CDB05 +:10B6B000F248845220F1966794F3386B99C7015B86 +:10B6C000FD7DC2FB3B3BC0F4229015532602FDEEEC +:10B6D00043FA855F68C4FB18D00F2DAC86331D5A22 +:10B6E0006F83DB3827306960795A4EB2FB4B633881 +:10B6F00089BBC88D22DCF3FD8CDFF3B5FCE9259D09 +:10B70000CC9F3E7AE58ADD78EE18F319E0DF2C2134 +:10B71000B1DDDF04FF6FB51BEFCB50BE87ED4B797A +:10B72000FBD19B9DEFE2E92DCE7C29BFAF52466C49 +:10B73000EFE551BA2D3DF41F8740992CCDF86EDD11 +:10B7400033B1DE55CA847B669C402CE08C13C8FC68 +:10B750007D9ECCD48A03888BC65508B7937CFFA402 +:10B76000356FB20174D372BB81EFFACBC9D9483FB0 +:10B77000924CF0BE30159C95A06F486E4D45FBA8CD +:10B7800085E6613ABEA482F9382FD77A597E052B17 +:10B79000EFEFDF3F0BFB6FBE3D82FD4BC93359FF1F +:10B7A0003E2A07C6E3EFDCED236C1C7C2F5B766B37 +:10B7B000FB081B07DFD3967DC95F12360E2BD77AA5 +:10B7C000597E052B478F34C8355F42A9A6F0F9FC96 +:10B7D000F0378FABF7FE9EEABD2DB638AB148FB3B2 +:10B7E000FAFDFC3FA4200EFBF7ED61FC7DB2C5C95C +:10B7F000B1F8BB1056FCB7259F94A91FCC043E643A +:10B80000C9A98532C17BAB169C16BAB536B8C769D3 +:10B81000C169A12FD98A790EA7855A2FCB733859C0 +:10B8200072CE9A4FA67CBBB4BD4B013FF989E4DBD5 +:10B8300015A159152DB89FE4BF807C06F906EFD1FC +:10B84000FD96BF5F9519AF3F98BC8D99373ACE1BD7 +:10B850008CDD85B360BE54878AB0B82C83FD0EA7FB +:10B86000C67ECF149EDD61EFC4936E70F5AB16DD1E +:10B8700014B1F7D017F1727F95F53B9C49F64ECB8A +:10B8800034F67B1F0BA0BC0AF44E5EEEEB9D390C28 +:10B89000DAFB58F9E5BCBDE4E3E55AA215DEA1B632 +:10B8A0007E07F352DE5E0DB172EB7741EFCD63BFE1 +:10B8B000870A3E1188B3BD378FFDFE69EE34F6EE80 +:10B8C000BB950736110AA6F32A356B745BF91A4A41 +:10B8D0002F00977BF378BF05FB501EB537D4560079 +:10B8E000DCEE5D2432FD693C8FDF3A26B17AE11A45 +:10B8F000C7EF3FDC3BC87D9509B9CC0EDA73C9BDF3 +:10B9000062948EBBDEC7E4DFFA13FC7E581BD7EFD0 +:10B91000EF82FB4454BEDCC3EF1335F3FB433F809F +:10B92000FB4334DD7DD16494AB56BFF74D5FF882A5 +:10B930004EF3F5AF4804F059CFDF8F5B1BB91B7F87 +:10B940007FA7D997EFB87FDC2C33BBF0AE06E7FBBF +:10B950001BE7F379B75E7215BE8F2FFBD8FBF85249 +:10B96000F2EA4B105F752AF1087FBF7D6EED6F8B99 +:10B970003EEFEDE757943EAB187D82AED27AC92CEC +:10B980003CD703FA1CF34F4C9FEB33E8737D067DE5 +:10B99000AECFA0CFF519F469E52D7CACCF8B3A7E04 +:10B9A000B760FD2291C75B5D5868FF1DDAF55F5CEB +:10B9B00078C977C01EBA44CD7A3E7C88CB69B9C2BB +:10B9C0007481DE97C98F4EC4877EABC4CECC9D04F4 +:10B9D000AFE7F42451DF5929E038F0AEE872C097A0 +:10B9E0006E7E134308F53E259B3CA3ED8DDC027C67 +:10B9F0007DA796C511B076D6B93409CE47FEE5AB22 +:10BA0000A0FBD2A157D3FD689B475ACEB17BA1D6EC +:10BA1000FD954CFE38985CBCAB68A25B07B93597C6 +:10BA2000FD2E4B6E6195BBCC06DFCB72999FBC7926 +:10BA30002E8BA3EF0C4D7497F9B294474587DFD84E +:10BA40004AFF1490715EF52486FB85D0FD027AA131 +:10BA50003CBE46837DB84667FBF0FFD3FBFF92DE1A +:10BA60002FBA0ADFA95AFF858471331372AF5F05BD +:10BA70007133277B9FE99140741DD0B365670DA694 +:10BA80008F5ABFE3D51A88DE07F47BF9CD1715C0AE +:10BA9000B8D1021E775694CF7E7731103D983F295A +:10BAA0005D6ED6A4E335C08FB3E2BC2593607FBC46 +:10BAB000CACF1B0243D8FB0BD6BC248D9D3B481A32 +:10BAC000D3AB3B285F4E8C49C77304A8410FFBAE34 +:10BAD000AF584C7487412F64F6F5AAD863B5F0FED1 +:10BAE000E8AAF9A334B07B2DFBF6A262761FE48EA0 +:10BAF0009A9CA5F67B0BDB838C7EBF59507D04D6C8 +:10BB00001FF1A56A4075384D232901FC6135EC1DF4 +:10BB100031A188BD6FAD90889BF9E7F97D42122372 +:10BB20005FE53EE18F658A7AE0173EF68EB17F834E +:10BB3000807E502B2EE54FC179BB611ECA3331BCCC +:10BB40003FB86B720E8EFFE756763FFACFB76A6F3B +:10BB5000ED84BC1F9EDA20E4D762FE5B3B68BE2FFB +:10BB60004F24DD909F33E2AD9DB4FF45F78A2C3E14 +:10BB7000EFD89012687F7828113B30E89704E0DE18 +:10BB800076E094BEDD709ED0D7C8E2C895D09F0CF9 +:10BB9000FEFB750191DA0D6FF98EAC0772BF9C2424 +:10BBA000D1AF62DD5FFBB721B1D7607EF265E7966A +:10BBB00003DFBC43D54A60DFDDD1E69A08BFBF543E +:10BBC000FA2941BD895CE4657E963E4AFB34BFF0AC +:10BBD000F60B1FB2C79F2C2C60F870D7B71A701FD6 +:10BBE000C2AD47F089A4C0298C0E6A86C4DE837179 +:10BBF0006ADC957B212EF7F27818E34E666817CC45 +:10BC000080FB68972D65F957791C56A63F22D3FF14 +:10BC1000D097CBF93D5D7BFD4490C332FBBD414DD8 +:10BC2000CEF8BD41E73B8D163D1043D6E17D44FC87 +:10BC3000B7CEE84311D37154C488F0F738FBE9421A +:10BC4000F8F2D493A78B67A90D0DF3FBBFFBF8A8FF +:10BC500022008000000000001F8B08000000000090 +:10BC6000000BCD7D0978545596F07D4B6D492579B3 +:10BC7000D92BFBCB820408500989068DF82A80064F +:10BC8000042D1625D8C11401FAC7760BB476974A4D +:10BC9000775EC84240D0804BA33658C1A599E99938 +:10BCA0009E8CE34CF3F7E2148B0CDA80815660BA79 +:10BCB000A10DB4E3E8D7F6FC115CE81E7BFCCF399C +:10BCC000F7BD54BD4A2A40DBF3CF1FBFEECB79F757 +:10BCD000BEFBCE3DF7EC7729BDDE7B6C563563FAB3 +:10BCE000719BB7833176BE61E5834C642CB9430800 +:10BCF0008B198C0D1588A15DC58C6D08AC738A15E8 +:10BD00008C6D6A632C349EB1CD5032283F6F2BA7C7 +:10BD10007253F5C24C15EA6F2B58DBCCE03D7656DA +:10BD200050C7098C29D7AC53F0B963B9DD1F723302 +:10BD3000B6A53E617508E0DD1936C632195B97C6B7 +:10BD4000CB9B327DEFA4D53016700FCE1654789F62 +:10BD500069EC7DE85A6001F6652263CD0A1B140088 +:10BD60002F562F3306F80AF92CB409FAB731AF93DE +:10BD700095327607F32E9905F01D32D353D2184B26 +:10BD8000DA0E403AC0B54E5D4A8672B07D409A02E6 +:10BD9000E53A819D2B67F4F725FEEF4B809D58C255 +:10BDA000DF0DF85456DE771AF552E4796C09ED0888 +:10BDB0003FB3DD63732AB72B30EE90646F150A0131 +:10BDC000B60DBD9E0DB09ECABC2FC178BA93DEEFF2 +:10BDD00042B8374BF53A106E5380288CF5B479A8E9 +:10BDE000ECBE2A5143BAF5DE9E177200EA4FB4A9A1 +:10BDF0002C0074FD0D0C17C7AB2F4E0ABD2420FD7F +:10BE0000CBE9F9536D5E1680F72E642CBC5601BA4F +:10BE10009DB07B9907EA6F97065AF723FD7F9DC86F +:10BE2000F0BB9FFD243055017A6FB9FA1B450CCA4F +:10BE3000CF1E0A14211C19472857F46039982BD6B5 +:10BE400062A9E6719819CF0379FC7988CA1D30EF91 +:10BE5000E760CA26A415D3BCC13C19EF0DD27BBD47 +:10BE6000C9032E1C879E6557105FA8AFA901FC1758 +:10BE7000CDCC609B00DA6167CDFE8A91F47C4811DD +:10BE8000A9BF4552AFCA8034B72B931AE4E9C03F2B +:10BE90005B85AD355E062C39A9618E0BDB29D4AEEE +:10BEA000EB4FD36A18D0FDF9B643DA7BE322FD14D9 +:10BEB000AD6B15029319CB6EF27BF4246C27894E7F +:10BEC000C46719EB477AE0F3F6C991F62BF0BB355E +:10BED000D4AEB11FF8B3ABDDEF498BC2AF4B101A34 +:10BEE000FB01EEDA0B1F877EB2E72D7BD12544E301 +:10BEF0002D737CDA19B52B6A1A1256513FAD821791 +:10BF0000E0ECF043820A78A84D4C5C19D5AFBA0E2C +:10BF1000F08EE2C32E2164C3FE958798023CC35C79 +:10BF2000F6906D16C0AE8509BDEDCA48BEC5BF739B +:10BF300051FCD7F5A74522F1C93189F8E440E6550F +:10BF400022F52730C101FD65C95A0ACA79D6403A9F +:10BF5000D3E19D6D508178C7CEC32E985F1DF8EA5E +:10BF6000C53627D381CF5E063E457837F029967FC8 +:10BF70000D7C89E5DF001F62FD8F800F11EE6FAB36 +:10BF800025F895368DE057DB1A08FEA7363FC17BB2 +:10BF9000DA1AA9FC495B80CA9FB5ADA6FAD7DA5A6E +:10BFA000090EB705095EE460AD48C7991B655D04DD +:10BFB0007CB3EB3CBB1CC06AD9DFFF24B41AE9CFC9 +:10BFC00060C2801F3E32F825DBB370CBDBD08ECD54 +:10BFD0009219B001EBF62C0CBC4DED66782578FE7D +:10BFE000B23FFD5F8F54231D92BD489FD405DFF102 +:10BFF000213FA62E8347C00FBB6CAA945EC9D8A967 +:10C00000DEAF373827A0DCB28E34A0F729E5918D5A +:10C01000084FABFEF81BAFC0F77EA3DCD3E3043CB4 +:10C02000B666361C571584EF27B8B4CE9784F8301F +:10C03000767FCF01787ECB004A0E4D8BCEA07F2D30 +:10C040000074BE96C3CE32C6DE9EF580300BDAFD9C +:10C050005679A0E749A87F16D4C52C981F9BBEA689 +:10C0600067B18BDE97B378FF0D9385487D66CF5D12 +:10C0700066BDD1FFFD3D1AB0DEB1D322F5FF1368D6 +:10C08000AF03FC768932BF1AF5F619D1BB8BA15EDE +:10C0900050D7933C6E023D04F8DEEA97489F9436F1 +:10C0A000B13E566C3012D4A7D5297DA84FEF4BE591 +:10C0B000F290CDE4F70681BF445D60A02259EA3CCE +:10C0C0004960255036F0E7261FA668003B23306301 +:10C0D00051F512F6C7689EDE2E017AC07787AE77DB +:10C0E0008676417F2B917FC7E13C7279BED57F4137 +:10C0F000C5F92EAD735681D287E7AAF95E18F133E0 +:10C10000DF8B6D87FD8A51F5E67BEC8B0B32CE73AE +:10C11000D716467A27A564485D5B61ED57AC8EDF84 +:10C120006F543B268DFD7D268CD18F295729762D86 +:10C13000A906FB992D7B7741D78B17DDEB23F95CA3 +:10C14000CA4409E6212501F4A23BD27E525AFD3FA2 +:10C15000A7C2F7FFD9988F940465C12CC283BFCFC3 +:10C16000762F9F8BF2FCAD6745B609E00C99CF7333 +:10C17000468F520953C6DCA95C3E1232562EC4E7E4 +:10C1800009DB65A6C2F344A6DBB2AAB114BC618682 +:10C19000FCDE3B3B0BF9C326785F425353BBE6E61C +:10C1A0006AE8EF9AD99F2620BED7FC5C1424EC3FA6 +:10C1B0009DE3513935A915EDF8CD530BA6AD007AA5 +:10C1C000A60ACCDFEF1EA947EE4AE5FAE545C61AF6 +:10C1D000B05ED879AA15E7FFB31AB780F2FCD9C7C9 +:10C1E000DC0EE519788EB7F3F1A305413BD2EE01E1 +:10C1F00066BE06F82F8797765B6B0B8EC3BE03F483 +:10C2000012746DFFD3354EB4231D171DD43F630345 +:10C21000C96887ECAE80920ACF4BB68A1A7EAF43CC +:10C22000490809D03E25A9EA908A76D1277A514F4C +:10C23000A45C2F13DFF7BA6F0F21FD1FDFEBA2F60F +:10C24000B62467C805F08BDA79A50CEA5FAC9315C4 +:10C2500094E3177B16FB498E14511947764D1171E3 +:10C260003E5ED43C439B8085538430C9155BC342FA +:10C27000286727EEC823FDDB212843522589832A1E +:10C280005F6D882E0CB9C316DEBB03F5F57487F21B +:10C2900092820FBD47506E3BD72B5EE4D76B957DE6 +:10C2A0007B7F0EF59D9AD35F02FAC596BA6FEF19A0 +:10C2B000AC6F849983F6BD5ABD737905C99B6EC86E +:10C2C0009FF0A503DB8B0D383F58BF02E9D2C90EA2 +:10C2D00096C177EB0D51EF557609C538CEBB18895D +:10C2E0007F67DAB5EA7237E205FD98720B15F5EE55 +:10C2F000DD427106814302D0355729910B518FE6FB +:10C300004A2C05E627D769B3C8BDDA69D503368359 +:10C310002FAEFBC0FA3C9F45C1F09DAF1B7C124B7A +:10C320009FD871E566C8A9884F6EA74C0F63F1CD01 +:10C33000CD2893FBAA0954526A917EBB7C3E685F6C +:10C34000A4398754EFA5F1BD8E0DB6233F16AE1B61 +:10C350001BDF6B353115F9E25A50BEAA8AEFF5772B +:10C36000286E9C7F3EDE9412AB1CBB5325921B9023 +:10C37000E79753A12CED11C11044FA1FD79BC0F4CD +:10C38000287D3A7E7B9A059E10CAB5B49FB4BBC483 +:10C39000523FB97FA2A57EEA9E2A0B5C19BED6D277 +:10C3A0007EDAA17A0B5C3330D7D2FE9A530B2DF094 +:10C3B000F4C13B2CEDAFFBA0C5527FFDD0372CF56F +:10C3C000375C5C6B817DEC114BFB1376B61AED3B51 +:10C3D000F3780734E46725A312F59749AFA70D7DDD +:10C3E00030EC9F2AF2D030FD41D73A3CE0DC47F5F3 +:10C3F000979CC8E99DE485F7A2BEEB52732DF08BA4 +:10C40000C86740FF8C79252C10F57E62F9441688A8 +:10C410006A97B5B8CA520F1CA0BC9F68C0E4679564 +:10C42000925CA30E7A096C5B67E6ED8DCB81EFD64B +:10C430002639C9AFEFBA5EFD5E13D43FF6868DADE7 +:10C4400087771E33F8FB68A6F6239CFF921E3BD32A +:10C45000212ED93BDD1E467D91E2B693BF9FE27E41 +:10C460003A80FDA6943919FA972975430CFDD8CE68 +:10C47000B61EAD0CFCEDDE365D2B03C525D7F9C32A +:10C48000E8D7C8194C15E17BA9756C2FC2A91A878A +:10C490001F4B55E97BA91AB48F964705FA891AE70D +:10C4A000715124FD37D4E520BB252BCA6FFE310323 +:10C4B000E32FB077202F67E74F227F92C42D07DA52 +:10C4C000CFCDA3FAE54F8B54CFBE482FC4FAB35952 +:10C4D0004CDC04FA2DB9D44BFA75E82189FC8EE6C0 +:10C4E00039BFB4A1BFD0C4FA6D3C3E0B4BE8AF5F7F +:10C4F000CF06A9BC816909F87CBCE8BF17E1DAD096 +:10C50000D69928FBFF9C1E388974DA620FFC2D7EB9 +:10C510006F4B9ADBABAB88B5522820BF743BAA3671 +:10C5200015A35FE4DFF2367DCFC6F07B772E98BC93 +:10C53000AD01F0B9F319D12B507BCD89FAE24E5FF2 +:10C540008697DB7FC3BEC8CC5506ED6E7BB4AC0AC4 +:10C550009F67C87E1F8E2363B122E8D0AF9AC6EDD5 +:10C560005C4246F521159E27F4CA5EEC2E91A9F592 +:10C5700048AFC41EE60D03BD1696A8EB57E0F75D65 +:10C5800082B20BF471DE3DEABEEFA0DFA9947825FC +:10C5900080F35B5BB739D17F659E21A4D76336B04A +:10C5A000BBC8374FF178B033F3AA7D36E41B9FF355 +:10C5B0006307B45FFB868DECCFDA67E410FA0D8A6F +:10C5C00073BFF61EF049F6326EA74A765C4576AA2E +:10C5D000575076929FDFE5F0A29FFF1CF2850DE396 +:10C5E000B21EE28FB359DDEBD17599E0EE139115D0 +:10C5F0002665EC5D8FE5E4FCB322480E9B5A267459 +:10C60000A4015C59512CA5ABE8DFFA3AB0ACA95BA8 +:10C610002E654079CD2C41CE42B94A2B213E5ABAE3 +:10C6200072C129F47F7C8A5BC5EF975CEB5C8AFA68 +:10C63000595200BF69F1E3632979BB1040395F2982 +:10C64000BF4F7EA40A7A1CDEF3A5BB89EFB30DBEF3 +:10C650008792C7558B13C9EE3E666BDD6B8B8AD70D +:10C66000F29BC2825681EFAD1306DD91782AAF6945 +:10C6700080DAE53DC02AD13F296C1A145AA05DFE2C +:10C680003D56BEAF4F0FA89857287CA0C7F25C71EB +:10C690001E24FA768A5C1FA5A40592D02EA6DC582B +:10C6A00096867990E474D6BCA022C2379F1A71E2B4 +:10C6B000FB067F98FADCF46F3F1A8E4B2F8444E020 +:10C6C000EB9787029B26E03882369A6F3614965293 +:10C6D000901F1F5C40FC58E8B940DF6FFAA4BF2BE5 +:10C6E00005EA6F730CED4F41FB7537F7C376B9ACB4 +:10C6F0007172308DEB916FA6713D66DB04967D2AD9 +:10C70000947616207DCAFC8347A0FFBF6785959B62 +:10C71000C86E0F090B407F780CBF6DCACF947A06A4 +:10C72000E3280E2BFBA83C6C9407A0ACE074C189F5 +:10C7300027D1291D399F7D9D196F62BB3EA6BCA9DB +:10C740004495B612656E397EEFA0D8FF12A94BA6AC +:10C75000A13FDCD799B60BE30906F14A02C0850F69 +:10C7600065100CED37517EE8BB090CFD2435286BB4 +:10C77000AEE491DF2B62C3F65DC4F883E91C76B2A8 +:10C780009E76E4A3A97BA2EC3F433B6785A71DB23D +:10C79000C2350356F89A5356F86383AE10A59C40F1 +:10C7A0007F89E800FFA70E7E2CA03F7F1008CAA655 +:10C7B000833D6743ED3701FECDE057A0DF57A45B13 +:10C7C000E3A1E6D31F9E66C9444D4B1CD47C3AF1CD +:10C7D000AC988CF6D4EA5F349FBEF75E6CDF1CDD4C +:10C7E0001EE872D6ADDCBE1C4AEDC9C0B639A897AA +:10C7F0008312E9B577777C368EFB474399FE24E4B4 +:10C800006F95F0BEF321D18F793567B04B1F0FF8CC +:10C810003A55AF1D5B3DEA3DDEBA1FE093A71CA869 +:10C8200056D86CE9F0A136D43305B2EAA0FCDC3D61 +:10C83000CF2702BCE15FA11EE093AA9A4DF6ED90CE +:10C840008DE66783C0F31A1B6C8CF22366DE6EAB39 +:10C8500041AF2D69A6FFA627F23C503811FDF7A97C +:10C860007B18ABB0E62BDCBC5E73637D6538B65ECF +:10C870004BF65DCDA700FF6A067D12E6D34CBA43A6 +:10C880003DC1533436B40964AEFA6DF95C341DB35E +:10C890001BADF094D3AE0EB4C3477D4EF25F99F456 +:10C8A000D1BE9F03FC29F8D3A88FA79C4E92709C01 +:10C8B0002744DEBF97C1FB51F4CF6267C530D46710 +:10C8C00005DCAD216C1F531F3C7D6CCA010BFE6162 +:10C8D00027C6A149D3201E43BDC65ADBD12FFC5128 +:10C8E0005A5206F90F15AC02F960B6E4F68691FECD +:10C8F000EF485E706B99E3ECF893CB511E8E490CB8 +:10C90000E56743B1BA15E30AE51712D93D259155FC +:10C9100056BA31CF3A30E50090FEE92FBDACD316C0 +:10C92000C9A3FEA88D31D4FFFD6D4E86FAFF953662 +:10C9300085E057DB3C04FF539B4AE59EB6722A7F95 +:10C94000D2E6A5FA9FB5D512FC5A9B4670B8AD81C8 +:10C95000E09B327D87D3603E4F433BCCEB2654BEF9 +:10C96000EA2C45FE6892306334424E6F5BF34DE72C +:10C97000129083671E3F7C5326D0E5E40312CF77E5 +:10C98000E8876FDA5B1695CFD56455B99A110F72A7 +:10C99000E132F3BB20DF9328BF1B7082C9C931E2AB +:10C9A0006E07F3931E62ABBD4EFFE4CBE927201860 +:10C9B000FD0CDA46EB47E3FD00A1BB7B603C1B1995 +:10C9C0006B45F965F2407707E6D98A65823F1054D6 +:10C9D0008309076EC4713B50CEBDE836E85A1EC6C7 +:10C9E0009DB681568A436BDC461CFA6D8A4B3BBE72 +:10C9F000EF64EB8B23F1A81987C6C60351F1BDC5BF +:10CA00007E600608F92BC129703BC986E31FE2B797 +:10CA10009634DE6EA2726C5F2AE5A7783EAAC2F356 +:10CA2000717D9A37024F5153F7A745D57BCB2B67C2 +:10CA3000A647C1E5CED4A5ED51F9ABB2A4AA7DE9D4 +:10CA4000DE08FC367E90E7AB34D4F7FFD3F92C67D1 +:10CA50002A9F8F1F66FE380DF311FADFF23CDFEBE1 +:10CA6000993FCEA5F8D6B07B452CD9BB09E3DA12A5 +:10CA70005D4C40797A99911DC518408CB647AAC083 +:10CA8000D00E47D9A337296E37EC51612A4BF08E6F +:10CA9000325F51F648C2F9005AA8F6ABF139A378D3 +:10CAA000D5AC0794C364AF18B7A7545F8A7642D455 +:10CAB0005C532CFDD0BC9687A2E699617C67B54B90 +:10CAC00093FBADF07F97DD33F96B8B3CE044BDB554 +:10CAD000E58BD1F9765BBAA9EF87F116BFBC264288 +:10CAE0008F427C528225AFD720D4C171063A6D9611 +:10CAF000EF3607AD70D30356F88E7BAC70D4F7C811 +:10CB00009E5E31AC6B27A3EDFA7BA02F51BFA983AA +:10CB1000CBE78172672B59F18DE8CFAC62DE6E1CDA +:10CB2000FF8A9E444B9CF90EDA5CCAA30A945F7795 +:10CB300032F520E66F8A6AC72BA81FB6B74C3C882F +:10CB4000F99AE77DE5645F7AD253791C26161F3C7B +:10CB500083EDBE368975A0BED1B9FD770265309EE2 +:10CB60007DEC6149437DAFAF6721BE5E62F51B5628 +:10CB7000F55AF3162D31F9886D0D6B8B4AE07DF572 +:10CB80003B0902FAE7C5D5E77CA5C8FFA0B7304F3F +:10CB9000D3529D568F7ACC840BAB4B6E8C869DEA1C +:10CBA00050FB0BD0BE582B5F8B714B6150B5B7B8A3 +:10CBB00047FA352D9DB1795E9DC687F44C4F1B39E0 +:10CBC000AE2B1D87D9DF39B057382FEC0BE0B7AB50 +:10CBD000A3E4471E14502E5B824CC3FCD68A754CCE +:10CBE000EB83F992580ACDCBC9274B77615C08DDFE +:10CBF000901FA11A32F8E374CEDFB1F3D9D22489A1 +:10CC000085F05E8B4762981F62C112D215C4E7F0AF +:10CC1000CF969E8FC35FA29E689228EE4A4B057FF7 +:10CC20000AE0739B05D60BF0B9A669073D00AFEA91 +:10CC3000625E72C7D84003EA91966AB0FF8407F734 +:10CC4000479CF01FF5877E21F0597130CA8F403C18 +:10CC5000D02F9C827C67F52F5AD02F9C42743A17B4 +:10CC60004DA79B206620F9731F23BB1565C7EC8574 +:10CC7000A3DB313B233B067E5365C48E25CFF4F600 +:10CC80005C05CF87524515F3C99D2BE5863E6B3E6B +:10CC9000D1FE651EE334033D56804F601CBF4C1827 +:10CCA0009A8CFDFDD2AE081D68BB58600BEAE5DF2B +:10CCB000286914D71C4FF54E1679BE5377D601EC70 +:10CCC000F2FE2D03D8E1F8DD9C86EB23704242DAB8 +:10CCD0005C847F99A6EE40F83FD2993EAB0EFBE70D +:10CCE000F0869E3FCE3950803023FBA064246DD265 +:10CCF000EB100F8E1FB8CC3AE71BAB9CCFC22016AF +:10CD0000E8A3F8F48D12F0CD5641DD56531C792F6F +:10CD10000DDF13C6786F81BE511EE53DB7F91ED0F9 +:10CD2000B6FB6AF4EF383DB28D7AD1C027FAFB32F8 +:10CD3000EA1D259084F1D0D68DB282F6E6ABE29161 +:10CD400075A9712FD737DAA491EF01DAED26FEE24B +:10CD5000E8F887B03EFAFBB631F0FF4BD3E352FD63 +:10CD6000D98DFA2BC60F9AAFCFBA8CF1027E36F46A +:10CD700013D5409238567FA033D78F3EDEDE98FE23 +:10CD80005C849F27B0654CFCE2F407E3DD1A335E58 +:10CD900097BD74647F289FE12C4AD111122910CBD2 +:10CDA000C8A8DF7D32B727815E5A67DA1E6012C6D7 +:10CDB0004D23BEBF92FB03094C0FA1DFC9CA035B21 +:10CDC000A2C7FFF8DEE9B42EF1EC3AE675012ACFEE +:10CDD000CABDA4876B57F6FAECF07C4713EBC74F3C +:10CDE000EF681A70619E66C7E0804BC5FA078E6FC8 +:10CDF000C4EFD67626912E9ECE7A294F5E72BD4C18 +:10CE0000FB4052AEFFC4BF12BE53925A2561FE864C +:10CE100019FB1C3AD3EA5EC0EF96D83427EAA7EC98 +:10CE20003A59C138A8D3DEEAB363DEEB4EA6D23A54 +:10CE3000BEAC88C5945F63433AF0CCB34DEA36CAC2 +:10CE40002375CA4C20F950B735201CCC24BDF42CD6 +:10CE50002BA6FCA0BE4EE27E216B151626D13F68A4 +:10CE6000DD61987E42EFDE9948BF558CE2B1E26504 +:10CE7000BD02E251FCFB2495AFF3C2DFD5863E94A0 +:10CE8000086FF27B9E199E3F9E97620FF0F76176C6 +:10CE9000C83E15342921B20BC67ACC12C67933E7C5 +:10CEA00001F92FEBE7C4C0B2A395D699D875E63A3D +:10CEB00093B53EFBF42336A4BB22B254DBF44BF70C +:10CEC000B76470CD5EF4670E362612EF163759ED53 +:10CED0007A518C5D8FCD77D46A9D3331AEC88EC9BF +:10CEE0007780F890BD32F964449CD7CDE33807F3DE +:10CEF000F6901CB026E5FD4991F8712736443FAA0B +:10CF0000C0F0A362DFAF53F41F201D4A6486FE1AEF +:10CF1000EE1B12613C8E84565A97C4CC6F7B4EC474 +:10CF2000CF15ECCC995305F65F64018CE7DA052642 +:10CF3000231CF9EE20C3EF0619E81F9C6FB7C8F059 +:10CF4000BB1B9C1726615ECFE1FACF49981F4D01AC +:10CF5000877800EDAAEC5750E836D8D47D189FE8C2 +:10CF6000476CB44ED8A17897F8E0FB1D8733593B46 +:10CF700034DB90C4F32D1D1EAFB3B202D737D46596 +:10CF80000CE476CF93F7CE7502D31DC7853C888F0E +:10CF90000E64AC267BE8B898C70251795887DCCA82 +:10CFA000907E8E8B8596E7FBDA18ED1B32E17A775F +:10CFB000C92CC4E7D7867E99C9BC9DF8DE4CA7640E +:10CFC000590F715CCC6181F4D1FACFB73CDF07FE19 +:10CFD00034EE47BA74FF8996F515C7C5D238FD5FA0 +:10CFE00015D3BF326AFF917ED32DFD76C98CF2E94D +:10CFF0007A6322F1436C1C7321A37E302373E47A9D +:10D00000D4867CBE1E457F00DF98914AFB22CE6706 +:10D01000F03CEAAC79A532E5DFF2ADEB52371A7C91 +:10D020006FEE979895618BF197BD32E5EBDCB1CF50 +:10D03000AD7EF213C84B3523F11593AA07109FB5A7 +:10D04000CB1C2AAE9FC7CBBB9F6E63B40E70D2D5EC +:10D05000BA0CF555EA536D095D20A72751D7811FFA +:10D0600055FAD4B3737518EF6981E7F3BA32F68DC8 +:10D070005B3E4A9C67964D32936BABC6A8B787C799 +:10D08000E13EA726434E80CB26A35E1DAE8701D688 +:10D09000627CC04296712D6B152CEB51A7310FCFDE +:10D0A000F1A9593ECAFEB0687CEAD2C6A877846B63 +:10D0B000081F89B5C6C3A7AEEAD2F89C31F29E5DBF +:10D0C00019C7C78D85CF32998F2F6EBD7D80E8B38C +:10D0D0004C34F3F4567C96314EDF4BE263AC530094 +:10D0E0003E3563CD17E25337C67C2D730C107D9609 +:10D0F000497C9FD568F8D45DCE7C19F9C10D76D0F6 +:10D100009F52FC3CA1991F7C32E54D6B7E90BD790E +:10D1100093AF0CFD5466C03F9E1B067C2ECC5B5B20 +:10D120004EF265C47F5FC32AD0F75F93B93CDE91AE +:10D13000EF0EB547C9F34ED06B1AE88510E81F2CE7 +:10D1400077819ED0C6E3FE350FC12F433CA9D1FEA7 +:10D15000B5722AFF1AF0C6FABF69AB25D8ECA762F0 +:10D16000B54071E5E47B048A2B63E9F66226CF7B48 +:10D170006CCD5196AE44FDED4BE0EB3AABAF835036 +:10D180003A123732D64FFA7DCBEDAC12FD8E89BB09 +:10D1900039DE19B3B2429280743A30D0867A66B1E1 +:10D1A0004DC57CFB069519FB57206E053F6EB9688F +:10D1B000E81EB03098EF1ED467BF88FAE7F94C9BA1 +:10D1C0009177510EEE453A78ED2ADAB13B4EE750B1 +:10D1D000DC7734476298E7763842AF639E1B14A22F +:10D1E000FF252FE55D2C79F1942FFEEE75DC47725B +:10D1F00012EC37C689997E6BDEFC89A6176C98F70E +:10D200006E5AEE5E237A1175818984BF3D142A46D9 +:10D2100014C20AFA87995E998501BEEDAC83F63D8A +:10D220006C7585C98FD82A2843ED14EF71F96B8A84 +:10D23000896BEF888119AE92639C2A35A5E0DAF3F9 +:10D24000067C347D24FD63F3EDCF645AF3EA9FB28C +:10D250008AC76761657E1A3973B1EF9BF9F38599C7 +:10D260005CBF6EB0737D13DBCEC46737D23013F969 +:10D27000EBA2F69E2D825FA13C28A0BD290AC2F335 +:10D2800028BAC9198302EAF778F8EF143ECA616335 +:10D29000C86D21DBFC31EE4F2E64F2FB381F2443B6 +:10D2A000C2C871EF1931EEBAB7CAD868F2C2D71145 +:10D2B000EE382479DBD5085D4C3AFCBF969BAF670E +:10D2C00032739F0FF9CF669E505AEF55C9FFCA12AD +:10D2D00079FE35A3FE43790AAF3F67E113EB7E5732 +:10D2E00069DF87823A7994FDBFC121A10BF342EB3C +:10D2F00079BEA830FC21DF7F1B6462A73BB2EF3010 +:10D3000056BFC5EEC795DCADCF0F02FD3CBA4CFB56 +:10D31000FFF4FAD61F0C529ECEA160DEE57B89DFBA +:10D320007D7E10F00ECA4EC50172F26D2910403D8F +:10D33000F8B918508A61C8694581FFC884FE372949 +:10D340002FAEEE53516F5729B81EDE147C243C0BD0 +:10D35000FC32257DF4FCAA6947FF90C9F356A76DFE +:10D36000E1025C47A82FAAFF43E6287E4153F0BBA9 +:10D37000D4DF0C439FC7D62B599CFECF19F675C935 +:10D38000BDAF7CF832E09DA85654098057624538FD +:10D3900063118CA7E7ADD22A74F79D467BF0EDAB05 +:10D3A000919FCFE5051C5951DF75AA8A1C207DD5B8 +:10D3B0003F1DEB67FC67C5DFBF05FDF5DCEC5630B4 +:10D3C0008EBBE0B5558B2523F1807E14ECC77971B7 +:10D3D00013F1B9D9CF6BAEC1E728AED2EFBFF914C4 +:10D3E000E8AFD75207F304803D4FDF727306C8D110 +:10D3F0006B99837958DF20143C7A00611BB717CBF7 +:10D40000B30A1E453F66C6DC8F5E781C65F52A3B75 +:10D41000EDEBDB68F835E6773BB3241A4F6716A7C8 +:10D42000A7498723F7001D32E2D3A1DC681F458797 +:10D43000F2ACCC9174F869913601C70548A62C2A44 +:10D44000C6FDFC2CBC1270D4B2FBE74C832E72D408 +:10D45000FEBF7A1CE9CA423EB198FAA9E474E8F921 +:10D4600018CF2598FD4C2AD2AAF0F9917BF6111E0F +:10D47000AEC37CBD9765E81AEA5B0DE6F7592FBD90 +:10D480003F1DF1887DDF9C8F43F95CBF85B27999A0 +:10D4900066F8419BECBD9E05502A654F7F5381F78E +:10D4A000BA8BFB1B47DB875F97CDF75F41C8A1E1D4 +:10D4B0007B9DCA2BCE96A8764B0DBA1C2CD01A1089 +:10D4C000DF44DCF706F58FD602FD00CFE4C3E95553 +:10D4D000146F95B1EA85209F0F64737E02BCFD88AE +:10D4E00077E2F45ED45DCC55C6F17ED4F324C37CE0 +:10D4F00081AB024A7A3EC8504E5C2CA0602EA8F93F +:10D50000E98A473B6B711CA172E4033D3BFC289EFA +:10D510000BE8431F05FCD98701C63868A71DDAA0B0 +:10D52000BF9F6BA7B82A765C01038FFE3CAD19F153 +:10D53000184127C7E00B8FE3BAE064BB5787473336 +:10D54000C4DEC616E4ABB96EB2F3F0BC3114C557F5 +:10D55000BD061D7AB3B85DDEF8076723AEC7C6D235 +:10D56000F972F9ED5B23E5EE5BA3C91DF0DBB711A2 +:10D57000FF11FC961297DFDAE2F09B8ECF63E91081 +:10D580000B43CF3AEE6F9330CF8CEBA017AFD6FFA3 +:10D590000E60A7C05A1D1E846BF5B770BDBA442635 +:10D5A000583BE5D30F40BD2BE0A6F61F0881C711FD +:10D5B0005F87A2235941AF6A34BF8559A63DB8B2EF +:10D5C000FE45A7A6B5603DF42FF1FEBF8FE3901591 +:10D5D000D65900ED1C658CFC2CF33B7719DF993193 +:10D5E000D71DC0F99B61F8E1265D6FC8E6E7379269 +:10D5F000B2797C174F2ED65C422E1AB387E5E287AC +:10D60000C4E797908B8D467B989F7F20398A2B1794 +:10D61000AF529958C1E52211E5C28BDF637A8307C7 +:10D62000F1E572B02FEB7F931C9872F274F62F2CF9 +:10D6300072F238C07A7EFCF1AD35C6978CE383FA7E +:10D64000799536DA577F814DDE85F44CAE55641CF2 +:10D65000EF1B5926DEDAA12C9ABF4186FCDAC78679 +:10D66000F63A50FEEAF8FEA55BF4018DBB47BD6CAF +:10D6700001D41F33DEDB69AEA35DC5F74933B9972B +:10D68000213D62E5D75516F606A2E4EDEB86FCF6E1 +:10D6900065FB4F21BDFAD8E004F473CCF9881DCFA7 +:10D6A00019E37BDF2DD4CE8CC6E797B21B4236B789 +:10D6B0001B82314F69FFE96C1D4DBE67DCF7139289 +:10D6C000EB78FDFC9721D79F1AF898FA3D11F53BAE +:10D6D00092C7A3D339BB28FDFE29E9F77B3659E46D +:10D6E00015E4FEB351E53E1DE4BE7854B9FFAF38F2 +:10D6F00072FFE568FAEF2F20E7EEEC51E4FCDFB2B1 +:10D700002E8FDEF30C7ACFFB8AF4AE30DE2FCDBE47 +:10D710006C7A97668F4EEFB2ECD1EC7A7C7A5764D4 +:10D720008F629781DE93B347B3EB9E1176BD7A3457 +:10D730003C9CF87D81DB7DEC87E5EB3AD2515BE1E7 +:10D74000A6753EB3DD19DC6441F3A8AE417FFA391A +:10D75000F0C7306E047B777DF67FCF7CCF457C624F +:10D76000E77B86C8FDB35D4F77937FF617F8CE92BF +:10D77000D1BE939ECDF5FAA5ECFE372276FF4EA4DE +:10D7800043ACBEEC33CEA7F4E7055665737D360790 +:10D79000F5D3CE87D304CCD7E76B6101FDEF66C329 +:10D7A0008E9CC852B91E32DEDB29870519DBB72AE9 +:10D7B00002EE078AEAEFFEB1FA8BC503F05B8BE35A +:10D7C000ECCBD6BE89EF9D31BE37ECBF197E445FEE +:10D7D0005AFF6AD4DFBA61AF7483CF4D582BD41E81 +:10D7E000C9E676E5BB58823FFE006EF546FDCDFDED +:10D7F00044AEAFCDF188FE7E36887605C2BA90453C +:10D80000EF2F7BC9D4FB789EB1394B36F5FE06C4A9 +:10D81000AF2DDBE437DE5F3C3C9F36ECCAD3C63C21 +:10D820009830E0D96BE0F9C45878C6D2E972F17D3E +:10D830002D82EF8EEC9AF8FD99FB0ECC79B3A39272 +:10D840008038F948A7A9374AABF0D15F0DFBB1FE8C +:10D85000DD387E2D51392092425112B0DFE78C3CE9 +:10D86000F273F76CA375B1BE754A25FA75B9ABB9F9 +:10D87000BD53EF29ECC37D04FF60CC572C9F0EBF36 +:10D880006FEF9F30AD82E8F263C4FB863AEE27A6C5 +:10D890001CA65DF74C2B526414A63487EEC1F8B673 +:10D8A00047D03DE80FE973DC7C5DCBB378D4FC87CF +:10D8B000599AF90D73BCCC537D89F6EDD45E49D4E9 +:10D8C0005BFD57D2DEA13762FB081DD32B895CCEEE +:10D8D0007E3A77A73952293F76D2E00798A7E3240A +:10D8E0002FB8A9627A84AE23FBE7F3E5F3B70A48C1 +:10D8F0006757397C0A9EBAFC3AF94FA2DA4BFC9181 +:10D9000050C6F98379DEA6FE22784C9B66C5A372C9 +:10D910001AE211E9BFDBC4E7BD2BC1C76C179F2E0C +:10D92000BC9D5EDF4A79037DBDCC3AAA298F407940 +:10D9300085A0EE501C507EEE2A0CA113965614F8CA +:10D940008CEB8FD66BF8BEC5D6A958BA9942E7C4FE +:10D950006FF0322FEEE7B8C1E9D6319E665FC81F7F +:10D9600045AF4744AD53095F26FE59DFB77B46F903 +:10D97000FEE5E62F523D5C5EA2F217A99ECC51DA7D +:10D980001BF98B6436A8E3391688F9785E15833F56 +:10D99000F49BBD2A8DD36C5FE0E1FC9212C7EF2BA4 +:10D9A00030BE6BF2F792AE7A5642FAA45547BAF5FA +:10D9B000353205D7C1D1EE233EF32A1FA4E71782E3 +:10D9C0004CC1737ADACDA932E665CDF199E335FB26 +:10D9D000F71AFD0FE36FECBF3F6D638D7FEFE6E35A +:10D9E000AD8AC26B6991CF1B3D6E73BCB1781F6A63 +:10D9F0000B8667D9709D2B40657A7026FB2DAE2370 +:10DA00003AF97CDB1B41B27270B979E0CEB580C2C5 +:10DA10005929701DF67BEF551F3E860754069CD38F +:10DA2000DA919FEF9F07EF14D33E7509E7EB2FCDF7 +:10DA30001F1D49DFA2BCD85E9B53919491FCD1314C +:10DA4000BBB2318334957FDE6188DB3B8E784FB982 +:10DA500001BEDDE39FE701FC3B8E791B33E1BD9EF8 +:10DA6000ED93376F467881C0F77FEA47DC3EA05BD5 +:10DA7000C71C0E07B6FFAF793AC24B05F22756C155 +:10DA8000FB04EFB5FA7B11F9EAE279AE1CEEDF7424 +:10DA9000F88438EDB8FEFB86C768377FEC76BF3672 +:10DAA000DB2DE3F700C46BF733E3BB410C5DD03FE4 +:10DAB000BD28923EEED0D2F4AF21BDBE10E91CBB12 +:10DAC00010FCB75FE07AF1D1BA6C7513CF133EE862 +:10DAD00021FBA41C9E0ACFB7D58B22EAA3FDD767F2 +:10DAE0006F9E06706FBD28E0B93287ECA7F54CDC5D +:10DAF000EBDB8EFA485D437CD1BD14F8B992F8F99E +:10DB00003BD48FC69F6B8FF0E77880CE3F393E9F26 +:10DB1000011F75211FBD31EEE4D7D18FFABDC0E3DF +:10DB2000EA0167E9662FF473FF1E89CEB5C5E39756 +:10DB3000D1C6BB04E0B76AA53E3C5FF0566D3A8D96 +:10DB4000BFF78BB45D98D47E2D7F88C679D4278AA1 +:10DB5000EB551AFF13D1F2B17FBA63C220D93FFF50 +:10DB600053381EED97DCDE8D81FF8EAF86BFF754F4 +:10DB700000F1FFC24EF80B7B3209FFA3B5A5B4EE4E +:10DB80002B257DE2467C603C2EB42F80EF5FE1F7D1 +:10DB9000A482C17CD40F26BE97AB175F1DA9175F67 +:10DBA0001D4B2FA21FE0E1FED127F7AB744E8FFC77 +:10DBB000A378FAE980C7EA5F5C867E3AE0A9B97289 +:10DBC000FD04743F8CEFFDB974671A5315F041677B +:10DBD000E0236AA791BE071D43FB64848BADC4C7D5 +:10DBE0001000293723BFAFF373B80A7C4CD0DF1D78 +:10DBF0008180275D8ADF7F5A91FF0CD2D59631282C +:10DC00005D49DEFD8391F3F3C158F3335BFAA8035A +:10DC1000CF6D9DAF1368BCDA4546E71E75A6A620FA +:10DC2000BE33341B9D079195C10E5C579BAFCAADA7 +:10DC3000A837F18CB21CB5DE90AA39991CB59E9418 +:10DC4000DEA058E04CBFC7D23EBB51B5D4E704CAF2 +:10DC50002DF579ABBD16B8A0B5D6D2BE28A859E02F +:10DC600062BDC1D2BEB4C76F81C7F5365ADA8FDF45 +:10DC70001EB0D44F08ADB6D44FDADD6A8127F7075E +:10DC80002DEDA7EED12DF595E11E4BFDB443BD164C +:10DC9000B86660BBA5FD35A74296FAE983BB2DF5B2 +:10DCA000D77DD06F81AF1FDA63693F830DEFBB1261 +:10DCB000F83E4C51954D7E142DF57CFD4967C7CB40 +:10DCC000A07E1133FFBC365C779DE191683F119BCC +:10DCD00067A37D1C3AFC87F6D51FB3BF49ABB6EEF0 +:10DCE000FB007ED8BF03DEF7D53AC88ECE88D93781 +:10DCF000E563252978FE74C62189E1BAEB7CE42B23 +:10DD000071245F31E03FE4AB4F0DBE1A392EE112B2 +:10DD1000E3D28EE37E34735CB7E2B8E0BBB7C0B841 +:10DD2000C251E3D28C7DDDD04F677AF1C8F1CD309E +:10DD3000F637C78E7306AE6B268F1C5FECBAE6A271 +:10DD40001C635D13FCDAE87352E7DFE6E7A4746C4A +:10DD500088F4D004D20FE719C813C0FE62B9555732 +:10DD6000468EC35CE7F4E94E2FD2C707FD84B002AC +:10DD7000730E517E904BB5CA5D62B955EE92BC9E52 +:10DD8000B1F90626644CFAC6E11315FE1B8D4F6EE1 +:10DD900065C01730AE5B812F90FEB7CA7F1E3DBFB6 +:10DDA0001343CF4F595D0AD246BB35551EED7CA7B4 +:10DDB000492F887B3A7232E3DB97DE9C2BB62FBD6E +:10DDC000397F9E7DD99EF315EC0BE8FF1D380E269A +:10DDD00007D42B895B76E78CD0FFBB732E276EC1EF +:10DDE000BC37E253B680FB65E07B71FF6B90F2DBE2 +:10DDF000AFE618F7B8C4895B5E35E81A895BCECB0D +:10DE000018B7ECB57D9BE213ED6B3C3E017FE0273C +:10DE100039E42F1AF14C90FB7917BC9907F028E8E8 +:10DE2000EF30CF97194D07EDE788FFE58EFFD0C89B +:10DE3000F11F1A6BFCAFB5F3FCC46B47F8B9FFD701 +:10DE400033A47026D0631B9B4CEB30E67A4B4380A7 +:10DE5000511EC4276FDDCD783EF338F6DBA0FA847F +:10DE6000BBDCF87C0D95F1F8EEDD9C2B8EBBDE8DD6 +:10DE7000C6FB0AF8EEDF73BE823F79A571D4068C2B +:10DE8000A3A0FF8E2E4E1FFD4C125F1731E2A90D8D +:10DE90001B8DF3B7ED3CEE49CCE574F883C12F6FD1 +:10DEA000E472BEF225D7921FDB252491BEEC3AEB3B +:10DEB000A0FEBA6D4288F1FC34CB85F70EE45C9D80 +:10DEC00082FEEA85C3FB33A2D7574E1B743811A1DB +:10DED000833317FA3DF3E0C9AF6747D3A171059DBE +:10DEE000F788D0C17A3F86397EBBD24FFB3B6E9418 +:10DEF000DC7C5F7719A3F3FEC0C9B7CCBEDA388AE1 +:10DF000003EF77E6EB0CF563628EC4488FAB7C3F82 +:10DF1000520FFC4771AAF4FD30EAC34F0D3B69F381 +:10DF200058CFCFB88C7D338931E7645CC6396CD764 +:10DF300025CEED96E41A7AD2CEB211FFCEB63DECE4 +:10DF4000B751FB7D64633D2C9EBEF4E6F2799823C5 +:10DF50006A1391BEE78C7D83B1EDCD76B1F43A3092 +:10DF6000F8DB4D9332F03CB648F30691AF273A5EAA +:10DF700033CB94DAA189D1FBEF52B58B13A3EF33E6 +:10DF8000486F6093A2E14CBF735274FBEC46C5022C +:10DF9000E7043C96F679AB554B7D416BB9A5BE289D +:10DFA000E8B5C0C57AADA57D698F6681C7F53658DD +:10DFB000DA8FDFEEB7C013428D96F69376072CF515 +:10DFC00093FB575BEA7FC406E7624A685DAE6FFE6B +:10DFD000AC42E0EBB34B3CB89FAA2BF376676014DE +:10DFE0007A9BE5814CCEEFF1EA4DF97FADCD1F9ED6 +:10DFF000350ECF41375AF44183A1170FB4ADA6FABD +:10E00000836DADF4FC7E633E713D1AEF1901D48738 +:10E01000903FB5B77D3ACEA7CBB81FE00321703F44 +:10E02000CA91ACB4D2BA057A529847BCE1227C2F8F +:10E030006ABC3EB6343C2B6ABC339DCB2DF5B39500 +:10E04000BB2CF50DC098D7422C7493678DE5F91C55 +:10E05000F521CB7BEDF92DDB51FE3678EC0CE58F0D +:10E06000F6A7D17E4BDF7C3CAFB101F755E682BD10 +:10E07000C99D311FF3E11BF6B478D08F31E91DCE75 +:10E080005D317FD60CA4F74D1E8C7F0FA4023D4757 +:10E09000B11F974BCF583A1E32D6EF1AECD675F90E +:10E0A000570DBD6696A0BFB6231DE71D913E09A87A +:10E0B00088FFD8798DD8EFC77E17F4DB0B28AFBF68 +:10E0C000073DBF8D8DD4EFFDB9FC3E8F0611022FA9 +:10E0D000F0971A6CA1063FE98356168276F2DBFCB4 +:10E0E000BC6157E68D5E3C2FF9A35CAB7D324B19CA +:10E0F000144B384A2F09C5B735A25E6EC8B4539E7B +:10E10000AE21CEFD692F19E3FEAA7CF2E7F3C70A20 +:10E110000B7F74E506E6E3FE8178FA1EFE0E1440DE +:10E120003F72198FDF81CFC3816A920BE33C62603B +:10E1300000E91D2B07B17633C8F8BE7DE6B61B7625 +:10E1400090DF1B78FE503A9DD78EC7771BDA1445B7 +:10E1500086793DAFA829B83FD3BCB70233B6D1FB0F +:10E160009BFFBBDA99B0B9AF30B67D10FF89F90BD0 +:10E170008F9BC645B798D1A1A34039EE8FF8AF5C0D +:10E180009ED7DE91AF5D403EDF91EFFF14E9C59C65 +:10E190008172A413C09FE373A60CC37FA07A0FC043 +:10E1A000987FC5FB672E63FD01DE6379D88F3CDC69 +:10E1B0008F9887FDB8793F00CB04670CC3766A9FC0 +:10E1C000CFDB5FEE77A2E6938F7B80DF4BFA89ACE3 +:10E1D000A5E0FDAAB70757903FB6347817953D6D77 +:10E1E0004A2AEEB37DB74DABC0FB2D6E5F3A4DC1F1 +:10E1F0007D2F4B57ADA0D2EC3F60C88BBD58A6FB1E +:10E200004EA462D1FF22E5F7F9BA9304EE0EA76B94 +:10E21000A7616F876623FF388DF3AF8175BE8A4E85 +:10E22000CB79AB5E86E374A9F21FA3E3AC9336AD62 +:10E230008CD3E5F2D675468E130402BEFB89BB2C47 +:10E24000A4131FD72BA3AD1F99E38DD77F208E7EFC +:10E2500030C76BD22D763FEBC6B27A3FAE8B4A8287 +:10E2600093EE9FC26B1B48AE929C865CF1F6CDD0BC +:10E27000FF2BC8A7B257453E6D36BE2719EBA0CD80 +:10E2800040BA756991EF9DB4F9E7205D46D0F1324F +:10E29000E9740AF5B00DE39C7E179D9F638A10AD6B +:10E2A000C71B8D7D53786019E9B9F1BB537721FD08 +:10E2B00036B6FCA35304FC56E4713DFB68C5F91A5D +:10E2C000BCDFF75136F4E02EF49BD725D17DC78D06 +:10E2D000CB3FAD89BEDFB779FF330AEE136E1CD793 +:10E2E0009989EB07CD4CFE24DA4F8CC5B331781FEA +:10E2F000F1A3DECED7059831AFCD3A3F0764C22BEC +:10E300007A002EC6788BEBE966C3CF34CFFF48493D +:10E310001976D473CB75EBFEFB153D569845FBA7DC +:10E3200052247ED3F190038EAB4B247E7A0E6FF293 +:10E330002DC57DD1612A7F87FBB93323F814AC1337 +:10E34000089F00530E6AC523F119810753EDD8CFFA +:10E35000E5E2F3BB7CBEDEEF70323D113E9D01B4C1 +:10E360001F40FAC87CDFDA936E13D6E970A9BF8C20 +:10E37000AFC3BA545E6FAEAB6707420CD76D13AB39 +:10E38000199D1311B11DC67D89031A9E1BFFE173F0 +:10E39000EFCCF74C80FAB28007CF1F007C44C63820 +:10E3A000560298F23CEF1C3940FB369489B84FD89E +:10E3B000D979ECC8A1EB19BF7289D6918E1D41BBEA +:10E3C000D567C2780013C6D397300C6B4E0FC025AB +:10E3D000C3B08EF04E63DFCA0F9F3B76A493AF3F6E +:10E3E000BC8C7AEF48A748F6C7C7924274AEF42FA8 +:10E3F000BC1EDCE759D98BF754EA2ABF9774236314 +:10E4000096F5F5E37976A27B4D41600FE293B46E09 +:10E4100088D253F61C3909F92B320F0344F7C83C54 +:10E42000F4F379A81EA07948AA18A0792852CFB38E +:10E4300012184F511D4FBBAB300EBA3FA25354C2FE +:10E44000F8A02C8DF016ABF9FA7A52ADA0A03FB42B +:10E45000C9D89F704B35BF7F4171F038FD17799C4B +:10E46000FF7F95C7F76FFD2A8FFBC529EA7ADAB7D8 +:10E47000E86C10691D3E054B77F4F83B8DF764435B +:10E480004F737AFCB42870222F2A0F02A39987F7C2 +:10E490008B398B33D2705DCCA7CA0F605CF9BCB1ED +:10E4A0001F0BE6E91F511F1DA94E4F08F0793B33A2 +:10E4B000EABC19E3BAD4BCC59B2F332E8E577FFB21 +:10E4C0005289CE358BCEC053B701BEF7EE49A77B3C +:10E4D000E94E344AD50300DFF7F36CDA0FF2691E18 +:10E4E000B7F3F78B4359A8FF361EDEEAC7D2F9EA25 +:10E4F0001A1DAF5BF840502D7AFCFE9FF9C85F5A99 +:10E500009F985C87F1682C1E27BEF81737CEC36131 +:10E51000BC77A8822694F291CD245C6CF83EB33B84 +:10E520000DDD9593CFF5E7DB865F7C421EA47CEF83 +:10E53000090FC4DFB46E6BBD77B5C52FD8F12AA51E +:10E54000E6C8739ED70CDADE8BBEDF62B9BCC08E24 +:10E55000DF033D63C957DEB67801DD93B2C288DFC1 +:10E5600041DF58EA57C5E43F973446FCD90BF4FF26 +:10E5700021A2C76295FB858BBD8E10EEB3BACD6F1D +:10E58000F5834FFE49A2FBF24EE0BB40EF134DE393 +:10E590007761BB587AAC1C1E3F8F0F86E9C3A82D4C +:10E5A0005BEC3F4BF4C07B4124EB7969A2C7A5E843 +:10E5B0001060A937E26BB17458B118E8533272FC9D +:10E5C00027643FD1E704D007F31FB1F4B8519A672D +:10E5D000C375FD150B04169D3F31F18DA5572C5DBC +:10E5E000C0FF3C9108F4F8ED66BE5E70DC18B7140D +:10E5F000FE3F344E3FE6A5151AC7397E4F8462ECC4 +:10E600000F506D1950BF0A8888E76117A1FDB0F45B +:10E61000EBB7635EBD25C0F7218EB02352D3C1E8AE +:10E62000BC4DECFD26B178C68E63BE612F46DCB3CF +:10E630002687F3D15F589A6FE46DA658F3DBAC3AA6 +:10E640007354BD6BE66B22F2CEF9AA39B8C0120F33 +:10E65000092C300C2B601FD77A2415CF731F6BCC7D +:10E660007C0AD5D442275FDF63D23CF2A73E5D2708 +:10E67000D0FD300B995375C37B770393E1F8FCB35E +:10E680005C049BFD9EEFFD98EEF7D703AC15CFE53C +:10E69000AD85EE83559171AEF5D8E93BB1FE49ECFD +:10E6A000F88391714FB992717F86CAA506F3AB7C4E +:10E6B0005FCDD05D8CEDAA8CE45959BEC6FDD72C38 +:10E6C0001EBF6DCE4F35F4722BC56997916FDD9CDF +:10E6D0003F4ABED5CD066DF8FE9D4E7798F6A10453 +:10E6E0006D1F0DF381651F4A807EE7A33BF71BB4C6 +:10E6F000EFBB3B21790A26CB7BB0C9748A43BE9716 +:10E700005F83CFF9FE24A6F2F36C09786F8084FB57 +:10E71000C0C07F8FA2D3087B7C60E5EEBE0CBC47F7 +:10E720004EA6FBE045E624FB1078480871BF4EED8D +:10E73000DE5B4DFE2EED3B6D0EDACE47F717482A15 +:10E74000A37B7402C540904AC47322C1928F0DE12D +:10E75000267456CEE3A5E1EFEAF07ED43A5300A743 +:10E7600019CFF93A9D591447F544F55F32DAF7406D +:10E770006B8D91B78AED3FB6BF6E631F66B7DD3B09 +:10E78000A0019EDD6F4A95ED8CE389F1E64F0DBF48 +:10E79000D5ECAFC599AEC851E7EDCFE5B82DE75D33 +:10E7A000CCD27C6F787DC1F4CBD89AA3D17E99DB93 +:10E7B0007EF7518B5FC6EE3EFA55FCB273F9771FB8 +:10E7C00045BFECF33337D1FACAF956505495917DD1 +:10E7D0005232EE8B8371161AFBA498AC4E403A3B32 +:10E7E00083799671FD2E5F25FCD3558DCEB54255AC +:10E7F0003F86B4E9B2977EAF639B791F80B1BEB20A +:10E800002D5749DD44F71CF17D5872A322601C6925 +:10E81000FAFDE6F7CDFED3CBBD02DE23166F1DE376 +:10E82000F3FC2B5EC7F87C34B93A2CB4BEFB1D5CFC +:10E830005F7843A2B86799E7217A1E1B570B05DC66 +:10E840001F3B2B0584824CCCDFFF72D9B731CFF54B +:10E85000AA83F2CDF77EEBC3C76A54A413CCFF346E +:10E860008AB79FC2FCBE344E24FFBCA780E7E7A452 +:10E870007681E2C28DAABDE15528DD79BE2905D099 +:10E88000AFDA107C17EF3D3E5FEEB7A15CB9F366DF +:10E89000D1F3F3E57C5FEA794F8217ED94F97E7747 +:10E8A00002BFD7B6DBF81D18B580FB7F6A01A7A7AA +:10E8B000A780FB473DB640796B05EEA7176892CC61 +:10E8C000F13B659DEE87705E94E9B92408142F76BC +:10E8D0002704CA1F8CA29BD9AFF322288769A3BD46 +:10E8E0006FA7E7381E7A3FCD7ADFEE04E3FD090615 +:10E8F0005ECE8B89F4BDEE34C0CB1DDD4F327F2E52 +:10E900008E7E9E785BFECCC94877779E36A580E2E6 +:10E9100035431F7A0E9D12922F472FF2F5A5010F56 +:10E92000B8FD38DF606FC6817EDE547EBE8BEB2380 +:10E9300027ADCB44F925C6BA3FBFD7A619FF45FD81 +:10E940000DD9AAAB713592A9CF7A47FA31EF6A1780 +:10E9500070D96EF87E1AD35F04313F88FB1E7E6348 +:10E9600080CBDD6537A21F7B6B1DF79356A09FC43C +:10E97000F5A5C5AF89F57FDC2CA0E03D42AB3CB2EC +:10E9800082FE44AC1FB4495B44FEC226F017F0FC83 +:10E9900052AC1F64EA9BCD4191A13EDB526D23BF77 +:10E9A0007E4BF9E01B37205DAA6595F21AE5038BD3 +:10E9B00067527D0D7DE72D7C753AB5E7BFA3E44D29 +:10E9C00020FACDAF79877E1FC19CA72DD5E726A061 +:10E9D000DDD969CC23DE473B3B2B8A0E8CFBC9ABD0 +:10E9E0003CA522F94B463EE4C0C309744FFABB5E16 +:10E9F0007708F3B9B38DF5AE155B245AEF5A517908 +:10EA0000DA87E7A2567409E45D075AFD29186735CD +:10EA1000AF5B64C7FD0B4A8BBB15F7023507ADFE34 +:10EA2000536CBC0E1E05D1A705E8339ABF15EB5FEA +:10EA3000C5FA0D6D0586DF50C5AAD06F3866AC7378 +:10EA400099FEC302639D0BD8C3BE20CA8E99FEC334 +:10EA50001CB1BE1BF9B745E6EBD7AC6E11D175B64C +:10EA6000F4D11B37A0FC579794E078BF69C47F5B53 +:10EA700082BF7262FCB9E50B89E46BA79D91FEDC55 +:10EA80005975ED0BED80DFDE872766FF16EA9F29BB +:10EA9000B01BE7C2D4EFD5A17FF4A68DF4593CBBDF +:10EAA000E70C4AAC0CE4CD1514A834E72129E86240 +:10EAB00072949C2719E3C9AC1E124AA2E4FA078695 +:10EAC0003E4C5DC7E358607A2D1FE3B3B2925DB848 +:10EAD000EF17EC06F905AE62B50AF9C76CFF816065 +:10EAE000E43FF6F83459C5F53089BEA7021E685FC9 +:10EAF0008A8389049704D3A92C0DA6525916CCA356 +:10EB0000FA71C1522AAF0A16D3F3F1C1490497072B +:10EB1000A75139215849E5C4E075544E02BB82ED36 +:10EB20002A823E2A27076FA6E753828BA89C1A5C8D +:10EB300040A537F835AAAF0CAEA0B22AB89C9E4FBC +:10EB40000BDE4D7075F09B04D704D7507975F0112A +:10EB50002AAF097650591B6CA776D3838F127C6D30 +:10EB6000F0092AAF0B6EA5B22EF81CD59BF27714D4 +:10EB7000FF09F6F596D457147E0F7598FC9E9D718B +:10EB8000F4DFFB86FEBCBD403B5A501369B739A683 +:10EB9000BDD9EE5C81F59CA5E80C3B4B299E2EADC2 +:10EBA000C2787A27C87F3ECCCF7DE34AE85CE29901 +:10EBB000026E4F5D365DCB2B8EC4CFA9B3F839A161 +:10EBC000FBF6ACE1EB0DB5E997958F3952C0DFDF6D +:10EBD00029EBE41FEC6C65740FB3AB6C4040FDD0C7 +:10EBE000E791E9F755EC399FECC575FCF9355A35D5 +:10EBF000EA43550F501EE7566D26C15985FC5C70DF +:10EC00004D81F67B949BA2EACCB9B84FA2A853C41D +:10EC1000701AF32E3E84D5594C09B348BEA32FC1B8 +:10EC20006A87920B4D7F6BF0496CBF734A5915BFD1 +:10EC30009F889F2BDAFC7009C5753BED6101EF7D64 +:10EC4000D321B078292A4FB9B3BBE565F4E74B7AF5 +:10EC5000BCFBF077D08A74EF34C42FB9D04EF815CE +:10EC6000F7AAF52EE8AF74BBB6CF05CFC78502F57E +:10EC700009008FDFADEFC372427FA83E11CA497B06 +:10EC8000C2FB507D4C0E0FD6BB019E7A88ED4735F6 +:10EC90005039A0CE4C0278DA296D3FBAB535838160 +:10ECA00099C9384FF6504732E0B3F337CCDB0E70DA +:10ECB000ED47BD12B8F391F9073F0BFD1D735E9C44 +:10ECC0006AAF86F4CE7F40A1BCC94E79D0955A3147 +:10ECD000727EFA70DC38CE20BF2F225F1BA2790033 +:10ECE0009EA8D2691EF87DF4B76AFC5CF5B58582F2 +:10ECF000390F8585F87E82E2C3FAA1D94CC17B2FFA +:10ED00006FC9E1BFAF90D85542BF1364F21DD077F1 +:10ED1000C282A4E879E07A60E7B07F38367DAF2D13 +:10ED2000E47AED7F9ABE6F203F67C6A7EF2D46FCC1 +:10ED3000792939BEB990CB25C8F14D48C778ED5A2D +:10ED40000D3AC5D279A7AC4C247AB999A857F27379 +:10ED500070E83FDD6DF0F7E5D275D5FF2774AD2F74 +:10ED60001C9BAEAC96C7E3E639E578FA66B331EEA4 +:10ED7000D1F41CA3BC61F12ECC2F3C6CD075E31EEA +:10ED80009E2F34F59CF3555F384F8DE8B91B0B2F40 +:10ED9000A1BF0C3DF328A2303D3A4F3A7917FA5300 +:10EDA000DDC677CEE5699D38CFAC22CDE00F9E372A +:10EDB000754B8A0FCF3BB299FC9C37F8819DE934A3 +:10EDC0003F6A15BF2E9091FFB3B36A22E5118AC145 +:10EDD0005F90ABE8B7A6C25826552B229E2337F783 +:10EDE000C13165B9275ACE4C7B1E9143931FD2FA8D +:10EDF000F8BA7298E2D703069E917EF87A49F743F3 +:10EE0000B996759A3E6F2EBD67B68FC7B7E70C3DB2 +:10EE1000D1D7799CE89854C7FD8394CE34E2E3942B +:10EE200059013CC11D75DE3360C7FCE26B85D2150C +:10EE3000F1EFCFFF87F8F709BC50A706F3FE0AFDF4 +:10EE40005E5011D81D15EAFB20664FAD46BB662704 +:10EE50007F5A657CFED43A16C2DFB9017AD13939BE +:10EE60005DE4BF3F0AFC3A9BEC8C3D55C1F93F97EE +:10EE700017385C58135F0E9444B51227F3CCCEFBC1 +:10EE80006E75E7E0F94B2501E15F01BCB916CF894A +:10EE90000E32037EDC3DFDCFCF0F9C29BCF72DCC7D +:10EEA0000F6885DAAF0B6BF83A0096DA7885F6BB17 +:10EEB0009A7C7C29FB6FCA63447E944A537EF01E81 +:10EEC00038D07FFF1E2D17F1FC995D865EBB6894DC +:10EED000F1FD9934922790732E3F06FF6F0C8F2D12 +:10EEE000E726BEEF5F42DE37CEF9958EADCD3CA66C +:10EEF00033265FE1F274D3EFE2BAE6B1B38E29E8CC +:10EF000037F33CE63D98C784F976963963F2980268 +:10EF1000F9F366FE3276DDD9CC639AF748C4D2396C +:10EF2000B5C8BA0F16F5D12B51E3E95DCFF8EF98CC +:10EF30001E95689DFA82267E88F6FD4235100205F0 +:10EF4000D03837320F5F21665518EA1FFC09528C02 +:10EF50006BD977BD4EBC1F74DE1F05A6011E87FF4F +:10EF6000285129333FE531E77BF7E633B0737B2B3C +:10EF7000FF251FD7C50E9F0518F03850790DED6B92 +:10EF80009A77647F3EFAB5B1782F092C1F75FF6818 +:10EF9000ECF8972C7BC78DF3F39C52EFC4FB69E32D +:10EFA000ADEB4D2FB21B7E49605A1194492B873A25 +:10EFB000F1075B3A1591D6F5CCF5AA1CF51517AEFD +:10EFC000CFE5DCC3FDC65C16A2DF1589E5DB9F1625 +:10EFD00005AEC77E9E8BAC9B1DBE2A7ADDECFEDCA7 +:10EFE000BA7AE8E099E175B38017DB6BE9FD95C863 +:10EFF00067CF55FF03DD6730CF0EF129D279DABF35 +:10F0000066E0BA7953CDEB99888F99A78E1DBF9989 +:10F010008F8A8D37E71759F3D417BCB7A58449B742 +:10F020008C9EA736F36466BC89793065143D1D4B10 +:10F030006FF3FB4D028F2F998DDFCF7FC4A037E890 +:10F0400081661C27EBE4FB88348740FB882E785FC1 +:10F050002FA3BC48F5E871C1705E9C85C78DB65E74 +:10F06000D814675FC68345DC8E34D978FE4F58F3D9 +:10F07000FA4AC4ABA9D225607C2CB3211BEE075FF2 +:10F0800055C4ED51B37723ED5F8DCDFBAF2AE2F18F +:10F09000E63C7BB84C31F282DE51E4291E3D4ED96C +:10F0A0007AE7E3774FAD9218C6DBF3965F933D5650 +:10F0B0003EF957C817E3707F18B713C3F38587FB72 +:10F0C00046A18FB98F23765D65B87EB98BF2C7E60E +:10F0D0007E0EF3799F419FFDC6F899A3B71CC787A1 +:10F0E000FB3B502E2F775F476CD90CD3BFA7EAD2DA +:10F0F000FB3BF617717D19BB2FE428E643C645FCA0 +:10F10000A25B86FD0F6B3E648E58FF83A29AA83CDB +:10F1100048C542BEAEBCDF25EA80AFEBD8B85DF88B +:10F120003B66B718FB541AC7C9748EA5F11DC98B6D +:10F13000FADD15478ECC7D27269C785160A1283DAD +:10F140009D28F753BE31F1A24CCF63E5AD03E56DC9 +:10F150005244DECCF989472F737E629F9BF313697B +:10F16000F74C39AEE36F4CE07631B6FDE731ED6335 +:10F17000D7A7CD75D9D8F74E1AF37F21303D1BF5AF +:10F180006FA35D1F7739F26ED2E9C417DF53B05F0A +:10F19000D71FF8FD93E6BAFB2DD569B4CE7EA251F8 +:10F1A000A2F580A4C94A1FE609068A78FC62DAC182 +:10F1B000D8F5BB66A6EF253B68CCCF2D6807CB23DF +:10F1C000EB7989D51C8E67074DFC2E771DEFE398F0 +:10F1D000F91A5EC78B236FA69CFDB488F17B482E7D +:10F1E000B11F61899DEF5B8E7DFEC630DD9FB9ED5D +:10F1F0006AF8D4FF05780B5C9300800000000000E3 +:10F200001F8B080000000000000BE57D097854D535 +:10F21000F5F87DF3DE2C4926C9CB4A02497813085C +:10F220000442C2000102449D1040AC80836CC14482 +:10F2300098B0C9122011AB585106420011FF440585 +:10F24000B18A7640545AAB0D884B157022CA0F5ABA +:10F25000AB4171C10553414551882C3A2E2DBF73E6 +:10F26000CEBD2F796F9200B6FD7D5FBFEF9F7EF51B +:10F2700072DF5DCFB967BBE79E7B67517F8BCA3476 +:10F28000C6EE86FFFB13E1FFF9D6C0632EC60EFF64 +:10F290006C67967CC6A2FB5B1E5D0EF9F7CB0F8FE9 +:10F2A0002F86F2F7FB5B558941FD7C2B6350EE5FA7 +:10F2B0002B07B2E0C3E8FE9087F2BBD7F709C8502E +:10F2C000BF61290B5658B1DE722BD68BECC22AE5F2 +:10F2D00038E837DBE90E423EE21DD98DE346FC6398 +:10F2E000922D08ED22CA9D955B54C6DE807633B21E +:10F2F000180B963F5189EDA6F770C6D9A1BFB11E74 +:10F300002938CCC1E8EF3CFCFF9A8288E0B0EC964B +:10F310007CC9E205C161FD18B33177F238ECFF6EAC +:10F320002B5B03FD17E7144E1C0AF94FD65A991DA3 +:10F33000F24CF235F7A375C1FF7A62862733368522 +:10F340003E30D6B8B432380CC69FBAE4A83503E6CE +:10F35000A57694596C0AE4175B3F6D348C5FEE37E9 +:10F36000E719F3EE7B18C699566057D7001CD357A0 +:10F370009BCB6732E5D3467DBE004F04223195B169 +:10F38000C51F1DCC7BD50047BE169DF8790EFC230A +:10F390008FE59D97111F2FB0A3309F73AC30761C63 +:10F3A0007C1E0313AE73D2646D6373A10DFE5DC149 +:10F3B000D8F74B1BF25E057C5F65193A44EB0FF3FF +:10F3C0005044BDAEE3699CE29C5DEC53C88FE904F8 +:10F3D0000327C13A2E9D1D1C06F53F10F01ECE5E80 +:10F3E000FBF02B00EF619F9DE672F8E7275EC3F507 +:10F3F0008F9823B1E5B44E766F5DAF96F1F4F4B615 +:10F40000CED05F7F6CE16B5E0FC4EB64DF9CE63CAB +:10F410005463A5B3AB4CEBA5B7D7E711DE6F737997 +:10F42000F96FB33598F79D916C765BE39FEF6C2392 +:10F43000784A2446F363760FD1E19D77F4DEE20744 +:10F440003CDF39CD6A41BABEAB216B8B03F207C4F6 +:10F450007CEFEA75BABF3F1A52D6F4EB2D48F74B52 +:10F46000A2D963006749F9B9FECB0C789DBAF7B70A +:10F47000AA06F992AC15497E27966F70633B48B790 +:10F48000F9E17B44F7C8CA008C3B9529679BD7DB21 +:10F49000D5D25E1F2F2A24B3403FE3778D7F57EAF2 +:10F4A00098EAC4721B95FB8732CE579F4A816A68DF +:10F4B000DAA393E7D7B89E9775F2DC8CE95B1D3D24 +:10F4C000B768492DFD545B5909C22D5B986F7B2F9E +:10F4D000A2C3946BA35BCA1FD1F87AD714F17AF553 +:10F4E0004903523E83B4FAEF7D52AC30EE039A42A8 +:10F4F000E5AF460F886D6C0BBF225D27E8E4AEA533 +:10F500003E4A63051DDE2DD60F48DEB31DF235568B +:10F510006F4A9CA19FDBB538EA3F66D08E864CC00F +:10F5200073B56A51250D536524E26D855319B9955C +:10F53000DA71B86BA23D8FE1BA41776C4234B657AD +:10F54000084F8A53F9D1C84F8F202FF76F812B7C3A +:10F55000BE8F68161A776827CFC388AF6F3A7A1EB6 +:10F5600041FC2D56FC76C4F76207CCBF8D765B0557 +:10F57000BE6EC2FE937034A74AFC88E3CAB83E95BB +:10F58000BF6BC4F559AEB06A483746DDF14423C0BD +:10F59000B518BAB543AAA8500EA94371A820E158DE +:10F5A0007C67DF9F70DC5B64F7711FC155D9DB0B93 +:10F5B0007453B6F83692576A029BEA75B69E47199D +:10F5C000AC27E2F745319F8FACC174C4EBD0CE437A +:10F5D0005F34AE7F73FDC577507F9F76F29D488381 +:10F5E000F2228D9D0DE0708A4FC3F156E3BF076193 +:10F5F000B9B71EE733A9C6E2473E2962D10109E740 +:10F60000A5C5939CD8CCB41EAC4BEBFE01629AC747 +:10F610001B8CCB2D4F86673FF603FDFD05E7E3E925 +:10F62000AEAE40B9CF0A12689C988BF403749E5D0D +:10F63000E9BC383E9993E3D36673905C057C1ED693 +:10F64000685D2A07225CBF149FC734CE8F067C1EDC +:10F650004338DAC3E7F71F77F0209E4EBB999BF53E +:10F66000699F3F1C8B1354C5C0DFABE3CCF358D963 +:10F6700097E79BC4F877A459385DBB78DEB1B8989A +:10F680001D05D4D91DCC1FD117F2A39807F9E35E4D +:10F690009B59EE29AE68AAFF73C650C5057858E994 +:10F6A000924A10AE95713CD5EBEDD68A1417D4FB77 +:10F6B000A7A01FC5C5E9797326CC03FA8B13FCAB51 +:10F6C000D7DF27EAEFD386520A04D103F16A93E524 +:10F6D00036F119E1E2FC75228DF73B427612FF4EBE +:10F6E000BF5B0ED825E2DF31C307B4E8D5E9BB1B09 +:10F6F000AD19589E2A333FF00513FA5485FF9DCF6C +:10F7000044FDC8565A608EE5BDBCB1C1B6F52BD9D3 +:10F7100009D37CCECA36F5EB47B7FA71FC37063110 +:10F72000554A6DAD6FC3F5ACCBD5AC67DDC8D70717 +:10F7300051CF5A5BF4EC58C6E5C305F46CB6CBA8C0 +:10F7400067992FDB28776B3AF1756D8CE4F80EC75B +:10F75000DF152EBE2E6B191B89ED519EA2FC8E97D4 +:10F760005925C971E817E9EEDE8E1D37AF910C748B +:10F770005802E6571CB6E7F84F1074A380988C8D9A +:10F78000473AEAA42A980796C27C82E6611668077F +:10F790009FEA54C05B82E296DCD07FA3ADB1A603A2 +:10F7A000E0ABA907736F81E13A94A9F51DA05EE46F +:10F7B000308DC91AD2158B29C0F23E16F716C8C76C +:10F7C0008D57575A211FA7B1785CDE46FF380FE2EC +:10F7D0007B6D095365E08B1B5C5CCE4F5DF22DD9D0 +:10F7E0008D4985008A86F2441D9182FC5DC2DC8FC2 +:10F7F00041BBBFAD58CE320DF82811F41FAB01BD8F +:10F80000031E1C1AA3752C62E99B65C9588FF3CBA4 +:10F81000A79D3C93387DAA91DE68A263D2F7CCED18 +:10F8200024BBF51AD6A830B2EB1A1896DF91517C9A +:10F830003DD6D7F968A585CDE67AB2D2CFF1ABC671 +:10F84000ADA14E54C2AF02F85D43F0F0F174FCEA92 +:10F85000F348C8764B2AB48F2CE3FC19BEAE7E0168 +:10F86000CFAA4E9E0AE44FF6F3F9F332F08143F04B +:10F870004164997B36D9BF2CC62DA1DDABA9CC0341 +:10F8800079E690C88E766895C4471105EE04B49762 +:10F89000D90C0B53C03E2D16ED3D254CFA1CE858F3 +:10F8A000463A2679AAB0CF75BAC68F1EF7AB01E8E3 +:10F8B00077F8A218F71AE0338BC3E743B886A58020 +:10F8C0003E42BBB36B6511D2C36B53791FF7023E47 +:10F8D000EADAE0EF13423EC5CBBE14D821C0DF9B6D +:10F8E0000DAF16D27AF694A05FA7ED40C3FE7494D4 +:10F8F000F3F0D711FF73A0C1E3C4723DCF820CE6D1 +:10F90000B539B239EF71A490FCD1F37ECC3F02C37C +:10F91000B0C190BA0E34AC70229D5FC9E9BC12042C +:10F92000431F037DE3FA005E324A185B968A6083C8 +:10F930007C8A6EA1F796796B7CDDDAA17B5D5E81B6 +:10F940003CB16AD0DFFB326BC2F59EC056DC8EE361 +:10F95000AA0EA6DE05FDFB7F043C3B5AF07C6AF74D +:10F96000A4D71E82FA2BAB62DCA8D7AD4339DD5990 +:10F970007F131BA826BD1EA07125964D7435BE446D +:10F9800072AFA1E5695A80F9C9BBA2D4352EECE764 +:10F99000BD74B41B3FBEFD4C3483F97FA23445E3F4 +:10F9A000BC8E2F793B1AF1F7F11299ECA22912D7EC +:10F9B000D75397FE63C034C80785BC48CBF43CEFEF +:10F9C00032E82BB63889F4F19C00CCD420DFE66D08 +:10F9D0008B1244C7F3F3EB124C795D0FCFB7B34AE8 +:10F9E0005CFF797FACB7758279CED916D707613EB7 +:10F9F0000E0204F17D7C67FA66B4C7BE17FC9096D0 +:10FA0000E9DD8FE3E3BC7CD0EE935D76162479D5F7 +:10FA100060654E2EF725A0771F1FAAD5BCF6EDE92D +:10FA20006443F93053624D76E23BB60FF1FA598ADE +:10FA3000CC905EC3E73DF363D586EB38B38835F9E8 +:10FA4000FBE03CA595B7E4733D80EB100E57B8DEA4 +:10FA5000985E576563486372AF1128DFCEAD964854 +:10FA6000BE85EB0F9007FB5E827E6708FD32B3D642 +:10FA70005C7E7AFFA27D0FA1FDFA828DECBA1B504D +:10FA8000BF18ECFD70FDF28DAE5F06B081E7411E40 +:10FA9000553B33637D17B0AF8F2F85BAB0F5FA6A47 +:10FAA000A983D2AF97AA943EEFD2689DE6BD50BF1E +:10FAB000AF13D153C300D4CBA30F143BAE83EC8D53 +:10FAC00029B2760CF963F3B8E0431AD22BE84F174A +:10FAD000F24BD08AFC610589E284796D00249C0791 +:10FAE000129255C81BE1AAAD7FED25DCFF00DC8F2B +:10FAF000B9711F9F65477AAD66EC2CCA1F7D7E37B2 +:10FB0000A6D8689CB2B07D4E38DCCE4C01F7408060 +:10FB10005B467DDAEB4D8DB50FB7AE4FDB83BFBDD6 +:10FB200076F3414FB665BFEB7CF2BCD08F33B68E17 +:10FB30005DD9112650BDFB8B8C4627513DD1B5BCFC +:10FB4000490A203FCA29C9445F0EA4C754C49FE292 +:10FB500017F049882F68F02E33D0F30DBBA2880E22 +:10FB6000523AC9CC5E805F387DCA1E902348CF4E82 +:10FB7000DEDEC11CCBD0AEF1EDBA9DD77FC9A6DACF +:10FB80005388EF522C9406532C0544AFC74CF4BA5B +:10FB9000DA9C073A34E54F5A1B33505E00FD1D33A3 +:10FBA000AEC349A9ED7D50466626F1ED0CCD33027A +:10FBB000F5D64CE65DA9129FD6D2F7E34AEDBEDB3F +:10FBC00090CFB74ACC0F789AFFFC53CFA17C9AFB19 +:10FBD000A70D31289FBE546A9371BC8AC76A623CE4 +:10FBE00028A7147F0CB6FF32C0E554F8784B327565 +:10FBF0007F80274602BDB500FF890430A369E56F09 +:10FC0000609CEF00CFC8E70B76FE40F97D1E4713DE +:10FC10004BC17E1B47E03CE6943B2B9741F9C21752 +:10FC2000CCFC37F7890DC95A34E1AF93C05F276C1C +:10FC3000B760ABD58D76E18243B21B8759C89A086D +:10FC4000BEF0F60BEB8EDA48BE5B5853DA90D6E581 +:10FC500060E9D890AF16B2B5DFCA7990EEFCF20336 +:10FC60008669981D395BC8E570BA9F87741FD542B5 +:10FC7000F7801FF273F9615E595829C0E574F5EFFA +:10FC8000ED1E1B7CFFF2830E9BD1AFF5F5D6BFC6F0 +:10FC900048BD5AF880B1E584BFAFEBBA5C505E9CBA +:10FCA00014FCD2AC0784FED15E80097680EC2E9ED7 +:10FCB000565883314300EE8ACD5637D27EC553B2B3 +:10FCC000C789F6D2613BD91B154F9D21FAAD903CF7 +:10FCD0004D521F022706E5B7BE6EF39EFA6C04CAAA +:10FCE000E77960B78F02969CFBCC395E1FE83D0236 +:10FCF000E5F1F6BF8FB80DF3203F1C6DAC5B715D75 +:10FD0000BDADD1D9C6BAD5FD7D04433FC4EFBFA771 +:10FD100075F9728FC43AB85AB79FFDD8091BF2EB38 +:10FD2000D7B0406A1CAEA35C6E8B6D6BFD82635EC8 +:10FD3000CCA77215FD7E175BC7ABD10EE94FF4FE61 +:10FD4000F48B30FEEC0FECEE5138DED38B6218D022 +:10FD5000C1174A25A7FB876B92512FCFB6FA93554F +:10FD60004AF9F7D98FFC9AE8F18683BF4E66644F53 +:10FD70007A522D240FFCA908DFCC4D1308BE59CCB4 +:10FD800047F438FB61D98BF6ED39858DDCDEC6BAD8 +:10FD90007E2BF8C6CEAAF27E837A0A7A5A03F07CCA +:10FDA00061636467F8DF92038F4958BEE58804DF1A +:10FDB000CF35244924BF0E5A1D889F9B76C7113D1D +:10FDC000BD96C9E55EF1C1732390BF6E7229957629 +:10FDD00095E037CB35585D65007E87BF4CECF7B4B6 +:10FDE000ED7AA87F16BE3FE836D5277C7DB1C51ECB +:10FDF00029F5863499DBD1F0F716CAC505BCAF16D4 +:10FE00007E66DA69845FEBC2E5F0C26D5F8C7810C4 +:10FE1000F96E9AB33216F073F6D0515B47E48B4417 +:10FE20000BCBC279357C4679E64ED2D0CFAAE363BC +:10FE3000E10B605718F977EB6761FC6B2E07FD4DFE +:10FE4000785B083B89358988B7A611A8CFFD30EECD +:10FE50006330CEACF550DFC0AF2D74616BF9EE6A44 +:10FE6000E13F2697C5A27D7383E0F7F0F50AE7FF2F +:10FE700013617A4F6FCF3671BE6F4FEFE9765885B9 +:10FE800035F038E2A9E2B0DD8D72B8E229CE6760C4 +:10FE900050366501DD9FF8E3DE77AF03784ED45925 +:10FEA0001347D1A866F93A7B07F029DAA3604745E2 +:10FEB000907CFD9EECAC9462D06B30FF13895E8623 +:10FEC00074DD8A3FE17B9BFC99C8487EFDC7E4EA6C +:10FED000CEBBBE9563DAE7C71BDA91ABC95D5AD9D1 +:10FEE00013B1300CFBEA0FF33AA37C0CC7AF8ED7EB +:10FEF00070F9B82353233C87CB47F87B9719F03828 +:10FF0000F7C96F48DE7D07F24E5651BF005DA3FE74 +:10FF1000867D02EAFB05816F295F837A8BF2F5E328 +:10FF2000A5BCB6E036E333BCFC30CA9FA496F5B757 +:10FF30002E67FE68E8B769B71CD802533BA535C5E4 +:10FF4000C4037C3511DC7F704A15F9383DCFA69685 +:10FF5000C33C4FF9F354F46F374530F2FF9CF2364F +:10FF6000C5C4A17F53F877AA1D67728EF503728C02 +:10FF7000F829E798619F541D2DEAA7F0FAFAF7BF18 +:10FF8000EF926334F40F04B85F229C6EC93284F997 +:10FF9000360ABFC570F9E7A7D17F77DADFD582FED1 +:10FFA000BAD32BCEF1BC921DCFD0CFC396113F1D3B +:10FFB000F35F990C73629F31EFBB43C8AEF2D85226 +:10FFC00001EFD3394AD8EC03D53168A7CBD1F9FB7F +:10FFD000D01E9D0508473B7BC6DA303B40D8B7B3FF +:10FFE000D65B5BE887FE1B20FFD00DC27E9FBDC99C +:10FFF0005C3E77D709A2BBB96174E76BE71C666604 +:020000022000DC +:1000000017A1CFFBB03E4877C365A705E9FCD47EB6 +:10001000EEDF3ABDC2CA5622BC7F94020CFA39BD4B +:100020004B26397DFA059E67FE24A2679DFE75FC6E +:100030007D8D74D9BD7DBDFEF5B31F0FB80DAA54DB +:100040003CF761DE43907EFDDCE16E2F61FEF9F747 +:10005000323E64ADEB17EFF9610ACD6B8F9DE1BCC9 +:100060004EEDF99F0CD4C7A75EB4D3F9DAA9E576B3 +:10007000DA37FBF74493BE3F95CEEDC4EADDDFE708 +:1000800035921C5F41EB53DB859FA39CDEF5D311BA +:10009000F44B9CDE65D7108E857BA2C85E5EF8624D +:1000A000448061FBDDDFD3BEEF3F05CF021BF7CB02 +:1000B0009E027ADC81741DC7FD5E0B5F1AF4E83284 +:1000C000187FFECE7ADB74282F7EF91F7928A74E81 +:1000D000EDA8B7A11C033BF811A4AF87BABC748F7D +:1000E00015D6EF24DA861D61AA5D7F1A8BE734AD41 +:1000F000F1C2F1700AF08070015E66A3FDDA1E3E67 +:1001000076FCD7E2E3DB29387EC5AE810CFD392DC4 +:1001100078913CFC7B7400F632083FFFBEE7FB3C65 +:10012000DC975F0CDE0684B7FFFF3FF09EFCAF5DFF +:100130005F4EEF3777E1FA2A9CEE5BD3F5F3375346 +:10014000FEE96837CDF712F93DA6EB7F2BFCFF37B0 +:10015000EBDDEBBF16DE8BADF701B1DED1AA9DFC66 +:1001600087FFC860BF00EEABBBFEB7F2F585E16E5E +:10017000B68B2C6E473ECCEF031698502491F54178 +:10018000764735A863ECAF61BC6B8BCCF720B41F0E +:100190001983FF862E1777E5FB8F6AF6E9B072DCCC +:1001A0003F813DF118F9B13F550E01DC0DBE42B261 +:1001B00013EC8CD3D5B944C7E3B89FBAC633CE7A13 +:1001C0003FDADD3EBE5FC1FC4EB46F07DB55CCBFEE +:1001D000B10CE603F5DF88B6A8D55AFBF81993B839 +:1001E000BF448AC13815F33EE5BAB0FDC6A4127308 +:1001F000F944B6254981FE27CEB6B280847E697364 +:10020000FD895D55826B12ABACE17E9C8BE289F679 +:10021000870D69DA16999F3FB39B019E095AD71B38 +:10022000D10FB3B52BDF7756B31B999648FE0ADA88 +:10023000673266A1F56A482C787C8D11BF7C2A0054 +:10024000DF774A7E22EEF718F96FC678FE41F994FF +:100250006207D9C97606FB473E6FD37E93A24B2C2B +:1002600018A6D182E7A18457AF7527E275905DADDE +:10027000769BDA13DCD59E7E0ECDF97F8FDFDBDA3D +:10028000C1AF9EF6624D53D0CE8C61316EDC9FC7FC +:1002900038D2989248CDC97F88279AE40F1CCAEAC1 +:1002A000C81F58A07CDD0C47269507D1CF555D05AA +:1002B000ED911ED398C6CFB1CB28CE40623E763E9C +:1002C000AAC5DE7CB300EC4D17A5C4AF6F6EE5F692 +:1002D000E5B9C26756F601FA43DFB77F00DAB5E247 +:1002E000CFDF5886ED646671E33E98793C9A3A0018 +:1002F000FBE57C115B6031ED83E33C9126FC248CB3 +:100300008C37E593BC1D4DF53B94649ACA537D3DF3 +:100310004DE59D66F735E5D32B079BEA775E3CD428 +:100320009477F97F65AADF65F5B5A67C56ED75A6CD +:10033000FADD1F98662AEF11986B2ACFD976A32988 +:100340009F5BF71B53FDDE2F2C3795F709AE3195D8 +:10035000F7DB7FAF29DFBFE14153FD81EF6F3195BF +:100360000F6AFC83A97CC8F11DA6FC654D2F9AEA93 +:100370005F117AC5942F627F35D52F76BC6DCA0F79 +:10038000573F34D5BF32E56898DF43F52F02BA50A6 +:100390002AF979DF55DA09537DD8A99521DD580569 +:1003A0003D5C9D7DC6543EDAFD93A93F1BC8073CCA +:1003B0003F75A07F18D2485647A99335507AB4AFFD +:1003C0002F220BF9E111FF4A24AA37067D9F817A7B +:1003D000E3CDC24574EE752E859F072BAC4941BA1B +:1003E000BEC6E1F4E3BE5FE7DB9890CC82B01F8D20 +:1003F0000D4994AAA12816847D695C2882D2F85000 +:10040000027D4F08C5519A18EA44DF9342A9942609 +:1004100087BA50DA21E4A234259443696AA807A573 +:100420001D43FDA85DA7501F4AD34243E87B7A686D +:1004300010A519A162FADE395444A916BA9A525786 +:10044000E82A4A3343E3A85E97D0584ABB864AE974 +:100450007B566832A5DD42D329ED1E2AA7343B34F2 +:100460008FD21EA13994F60C2DA27639A12A4A7B8F +:10047000856EA3EFB9A15B29CD0B5553DA3BB48C44 +:100480005277E82EAAD7277427A57D43F7D1F77EA8 +:10049000A17B28CD0F3D44DFFB877E4BE980D0A3B5 +:1004A000940E0C6DA6B420F424A58342BFA77470EB +:1004B000E8196A3724B49DD2C2D04BF4FDB2D09F64 +:1004C00029BD3CB497BE5F11AAA7D413FA2B7D2F88 +:1004D0000A1DA07468E86DFA5E1C3A48E9B0D0873E +:1004E000F47D78E830A523424729BD32F4774A47A6 +:1004F000864E507A55E84B4A7F153A43EDAE0E7D55 +:100500004BE9A8D04FF47D74E8074A9BFD0885D6D7 +:1005100030B9D82CFF2CE7D1DFE38C6FD3EFD6DCDA +:100520005EC8E37BA21EA1B8D5319512EDCB37464C +:100530009D7C95E4E420BB86F91AAC9ACAC7519316 +:1005400019BB1EFFA131563FC84EF6C31BB7F37649 +:100550002B8B8E7EB408F55F959D619C42B8FCD5CF +:10056000C77DB3606F12DA5D2BFB3656A01FE66EB7 +:10057000576319A6BFCEE2F6464516D7A78BB2B889 +:100580001F36D497EB93B2AA2CF2E7B3C44B83EB9C +:1005900019D443FD5BEACFEC29F2CEA60CD2179713 +:1005A000D8CFA5D6BB581CD6F71119013CEC2FC9E2 +:1005B000F2DD9945E73BE6F8AB7FA19F7BFF43FD6A +:1005C0003C74A17E98E2B18D06FD572AD6FD23AB7F +:1005D000B704FD668DE916F772F85493F49C7531F3 +:1005E000E4EDA9DCDF04EB4E7ECFC643B21B6D9574 +:1005F0006961FE5F7B85D9AF540AF2B208E8A3F4C3 +:1006000026F9EFF6BCD6E58D1E4674B6AA420AF06E +:10061000B8C6BAD75CD0BFCFE36842FD5F1A768E0A +:10062000BCACEAF974631CA6AFE28B8F104E9F3806 +:10063000CFF05D24AE695796D95F0A20133C1F02A4 +:100640003C782EB237E9E6FD0310BEBFC93C1E5A06 +:10065000AD4B277CADE67E54DD7F5A0EF2D903FC0C +:10066000FB61D273E9E80FDC3BFF9614B4CF57D59A +:100670006CB7E2B960637A1563D1463A0AF078A79D +:100680007466C378D9527F9582F46EB5B04DE4C7D5 +:10069000CE60149F63895AA2A1BE90453C9EDEFEA7 +:1006A000F26E9C5FF4F4130BC79B7F8144F6E82A3B +:1006B0005B65763CEF8FDAEDC7731180E3E83DAE02 +:1006C0002DCBA17CA4C21C4A5F93DD1849FE7C059A +:1006D000C634DA9DCC6C577E89CE754E3F142F748C +:1006E00054E27E51FC43FF3AB5C37822A5D2B30C45 +:1006F000C69BC154ED41D5400FB563E7E1FA7C22BA +:10070000E268F00FE37D4A916E00FFA54BA23C3DED +:10071000A0FCA4900B401F7EA33FD32A7138D87C45 +:1007200089F003105760DEBED69EB9C6659807D61D +:100730000339794D372E678E4A023FCB443B985F91 +:1007400011D215CE0FE353D279F9B1BBA5C0165E15 +:10075000CE52203FFD50478AB398DA61E5304674A7 +:10076000C8D0C7C97C2BAA8258EE83C5D1705FA4BC +:1007700030C506F82C17F15B6CAD44F15B26F860D0 +:100780003EC76AB6BF86E58D9296A942BF89DD2431 +:100790009D0E08AE461C1FEB2ADEF7DF83FC747F3C +:1007A0001CC3B8181D7FA56B975531A2EB3AEBAD72 +:1007B00048275F476BB84F2B15E34F95797C4A3834 +:1007C000DE90EF10BF1E818F63B747378F87F631FA +:1007D0008C3F05E31699E2A6F83D7DDE3A1DD4482C +:1007E00095419C8F5F62DAB3B8DF10F3A849BA99DC +:1007F000E13C8E7E13ADA1FFFF57DDE2393CCB6EAD +:10080000A1FDD0B1724D92FB98E481695EC870CCB5 +:100810004037E1F466B588F516FCA0F3814E3F83BE +:10082000BAF1381B3D2D11F03166388F93F1BB2A98 +:10083000BE73BABDD2580EFD5E9956C590FF3E11EB +:10084000F155FDBBF51AE787FCDB59A29D56998D42 +:100850007CAF8F0F7F1EE21341B776A7C3D303F09F +:10086000315C8C5F2381DC447ABBDB4E7410AE4775 +:10087000B2C5BAC39FCFA6CB5B0B7ED7E87BE95A44 +:10088000BB2702FA2BAD7DFE163C2FF954C42B601A +:100890002431AD8F2AF026E84A11E32AD89EC607F4 +:1008A0003EC0F5BAC7CECF41057D84E35797FB47DD +:1008B00070FFDB8BBC2024BFF7C62E94A6E1799E87 +:1008C000E83759C477D6DBA74AE5063974BBC07B45 +:1008D000126B3B3EFC7601A7478F0FFD19BE0FA0A0 +:1008E000FD3633C63B2F16FDE8F911D1162FFA69F4 +:1008F000AEDED876DCCAB1EE7C5E57AFAB3BFB1602 +:10090000D247A9CD8DF711EE5FC64C71BD8BC5F8EE +:100910004DA23E53E3DB3C5F0CD7EF4716CB1128CB +:10092000776B435F3DF927E83FDE6BA3D39978D619 +:10093000F8E49F90EF303E53433C9DA27CCCF8CC32 +:10094000BE182755EBE94B789B29C6D3FBDD5060D9 +:100950001989E7D97B63AF499D01F0AC1F3B4B9AE6 +:10096000619867B2124BF191F5F66B52678BF2D931 +:1009700050BEE7DACF73489F94AABB309ED4319E15 +:10098000D17DA2048DC7533A341681F571DCD98626 +:10099000FE12C6F3F2FA7123526742BBDAF1CB07BB +:1009A00061BBF5636D115D61BE1B46F90B70BE7ACC +:1009B0007D280FE2BE7CD53046F79BE2D3FA2EC1EC +:1009C00090B67865E97ED4BFAC90B9B3349C5F67CC +:1009D000C9E8F7DA20E0F48CE4F1A8AB34F3395835 +:1009E0006436D74F45D9DCAFF64A54E7255928AFCE +:1009F000C75B543CF625BEC7FE47DA88BFEF931AA3 +:100A0000FB213F15CB6A21A6FF4FB45F2F815ECC3F +:100A1000A7632221F7BD7ED4D3364DA944F96C6D6E +:100A2000E16707F94F841EA323E34C5339D1FD6BD3 +:100A3000DDE2743F05E90FEB305BA6F0DB90FEA032 +:100A40007630FE3D92D76F35C83DF817E9816420B6 +:100A5000688C83648A4F1A6BD0EBD612EF3C948B70 +:100A60001B043F017BA71AE3A13F10FCB421CD3743 +:100A700019ED60A6A81296DF27A912EAEB0651AE7F +:100A8000C79B03C14A646F887ABA1E5F7D190BA0A9 +:100A90001E5FDD2C17F8BC6D025E989707F11C2BCA +:100AA000F49B3EBEADD04BFAD736CC5F85E9BD1284 +:100AB00087C75FC4D8637DF03C5C31C9E7FB27DBA7 +:100AC000482FDE93AA06D06F78B2196FBE548137D3 +:100AD0000BEA5D3B6E45105FE9EA64AE472A19E216 +:100AE000E53E7D7E0A233C115A0DEB62F778FD331B +:100AF000C83FC4B4049069D6023FE9156BC973B707 +:100B0000A0BFEABE16F83C36844FE272D236CA461F +:100B100076C259812FDBB0E7484E86CF5FD72FFAD8 +:100B20007A86D3412B3D10965F37D6968AE3DD0F48 +:100B3000EBC3E3A4D9DA66BF1CF47DEFE87DB41EF5 +:100B4000AB1219E9D16555FF733DE26BFD201BED3A +:100B5000A7D88A947D5D0790E947F5578DBF96CD5C +:100B600084F2D505760CE5877E1BFCD311FF604F20 +:100B7000633CE111ED2D4F02E4D76FB2318C1BBE07 +:100B80000BBA457BF98DEE9904E7BA09CB1D782F96 +:100B9000C8D9C742D4B8DEFB6934F2E3CB421F0E9A +:100BA0003EDE501C0BE509A3D4BEC85FFAF741C76F +:100BB00082327E8F1FC9BF0F195D8BCE39C8FB49AA +:100BC000EFAD2B7A77F440F4CFF552E81CF47E2990 +:100BD000B85AC6795DC5687F173F2CA8E27DC6B8B4 +:100BE000343EAE675870E440CCDF243309EA3BBFA3 +:100BF000492C423FE110298ECF0BFF23E296D1E72B +:100C0000566D1579FFFDE36617227D071D08FFCE9F +:100C1000271E1CA780BE714ABCDCF3C4DFC6E17985 +:100C2000641CFA4FF2A9BD4A74C90E0DA7BC0F701F +:100C300002F50F581BC8BE38003CB10C487248F78B +:100C400078C28F25AA2C05F1313AC1AF607D5B31A6 +:100C5000635BD0AF287F44F5ADFDB44CA33D32A417 +:100C60003BD70F6B85FFD789F7E20CF26BA7906F2C +:100C70000F897A76F6969686FEEFF1360DE5C586F3 +:100C800022B3BED15367BECDE4278AEC65CE3BBA12 +:100C90009AF3D634733E28C6DD1B7B9E213CFAFDB9 +:100CA000B1FBC3E2164BBB73BDA9A72FDBB49B10EE +:100CB000CE9723A35166419ECB0BFF4945C84D7784 +:100CC000E138833CFAAABB4D8CB350423AD0F5FCD4 +:100CD00091C547EF46BD57EBD52C14D32DEAEB7ADF +:100CE0002D31EC3E8C9EDE21F4F8E8045F655BF765 +:100CF000606E13ED572E5D4CF7349BE592E8AFFF25 +:100D0000215F35C67558D3B4BE46FD5425DAC5E615 +:100D100078AABA1BE5E3DE08C9156DEC9FEB0B352D +:100D2000C5E7C1F84BA65E7B91FD3C8F5FD2ED9F7E +:100D3000F0F20F045E3D17B15F6AC5B8976ABF7CD9 +:100D40007789F64BADA8F793A0BF4BB55F8AE5C690 +:100D5000332EB4533A5B887F57A5654AE5867948B8 +:100D6000D91CAE47BB31AEBFBD4319EE8722C0547C +:100D7000C27DB6C5E1097AA0BD03F6DD68D72BAA0E +:100D8000DB939548728FF272A1EDEFB8BF3E2EF95A +:100D90001EC3F5904B5652BC92ECF4903C09E7937D +:100DA000F6E6FBEFF209F01FD9EBC1EE4FDC8772DC +:100DB000C3330AE048FC97E0D8D3161CBA5C7AA883 +:100DC0007B80FAD7E3D4DA8327DCBFB0BFBBB3CDD7 +:100DD00038B7F6DAEBFE8431DD19AD8FCBFD571550 +:100DE000EDF8FBDC0A433DFBD1E8571C782E79C6B1 +:100DF0006DA1438A23CC13D1D6BD414748669E04DA +:100E0000E02BF44B40DAA9BB46EBECD06A499ED804 +:100E100052B8DCDF1BBB8E5247B37DDFD944273A83 +:100E20005D87DF7FD3D3A5823F6AC57C47DA7D2506 +:100E3000A4FFD5BE26BEBB31CCBED7E954D74F2FB9 +:100E40007DFDE95DBD01AEE412AE9F4A71BE86FA3A +:100E5000C925EE429CF7153F5F1181F6D088D11667 +:100E60008A0F6D857F61EF2F1674ADCF27BCDE9A98 +:100E7000B0795FF1F32907F53BA8ED7E753ED4EB21 +:100E80001F090D3E8BFC1593C8F57A4C49E57ECAC7 +:100E90008F64A43FAD05DC1E2EEE7CA323B217E7C2 +:100EA000BFB94EE437BB89EF2E6F272EFF77C2EE16 +:100EB000057BF96799EC65A6A23CB4336F11DAA300 +:100EC0004C892579E1EFE1253B0BF49E86FBB207C7 +:100ED0005BECE512A3DF67F5651AF97D0CF68FCDA3 +:100EE000E8EF69CF4ECECED6FD3DDC4EB47A980504 +:100EF000EDDE70BB53B7AF9802F672626BBBD32ABC +:100F0000EC4EFCB30E30D8A9CC1744BB2146C4D15B +:100F1000C27C23BAA23D35C1E2C67BF4ABD03E4DC4 +:100F20006CB14F99E2A1FD4C4C6132F9E7EE95C0EE +:100F30000E25BBCCE7473CC51D8A64C8F7FF693B5B +:100F40009075E77E00B04753B1BD71BF66DCCFE955 +:100F5000F7D792C498F5A5950CCF61EDE33509F567 +:100F60005182D827D5FEDCA5FE0ADC878DBFB62BC3 +:100F7000BE17B1C7C2E384E3C75B24ACAF7AD442E7 +:100F80001FC76F2AFA2BF6FC18993ACB40277B86AD +:100F90007EDE0FEDE6D557D9E87EF86AE117F3FF5C +:100FA0001049FBFDE22E03528DE7BF3542DE6F286C +:100FB000F179D01FBFDA952C4D33F4776F36E79B6C +:100FC00075636791BDFB4AD45221C779BF6C05F7A1 +:100FD0002B86D3E922D1CE2EF0B17E8225C241FBF1 +:100FE000D1A112EE4B17654770BE5162251CD7EE9A +:100FF000D1F7A5EEC9B8DF2C2FE0D75F41EED86E50 +:1010000080F21BB32379BC8DAAEF7F18191BEB8AE2 +:101010009237AF319C2BDC9E2DF8516A4AC1F5BF47 +:10102000DFAAFB21BD57A17CBF3FA96B5FA48F75D1 +:101030009775FB2DE2C97A472ED9137ABBD7B37CBB +:101040004BB2619C4F864E7C7F06924466B70CBAC9 +:10105000F724F8FB63952928773F0621BB4CC2FE95 +:10106000BD5E74495A2FFFEED9191AB55F919D6480 +:101070006A3F85E859B4DF94E55D85E5F78D9E48C4 +:10108000F6E8861277EA34DAAFDA881431C2621AE7 +:10109000CCEBBEE18CE6A9C35526F8F7DE6C2E1F1B +:1010A000D68D5D9982F39A92CDE5612DD23BF2996E +:1010B000D817DEE75A49FD240FE37247B7DF609F78 +:1010C0004F711AEB2677A3780F5C4FF44B9409F815 +:1010D000A788FE37784EA7CC64483F6EEA571F4773 +:1010E000E7AB38B436208DC5F535D0F706A6FF69D5 +:1010F000BB9A900ED3D53E08478CA0B3B8124EE7EA +:10110000F5F6585ABFF5C3BDF4CE09F2C94C9ADFC3 +:10111000778497FA521FD17BB2E08FF85182DE4A72 +:101120006C812C97914F8666119F001FF8884FFAAB +:10113000523B7DBE09A31A9F413F4CFDD536F22B91 +:101140005C2E73782ED55EF2BC1241F394536C443E +:1011500090294ED5F238E60FC9814C18B7E89508AA +:101160008F28DF623CDF5A29E4EC8AA56083D859D6 +:10117000B37DA808BF608A9335F78BFD0C0DEB6734 +:10118000D55207D82E2DFDE8EDC9CFDDA575FB6240 +:101190006C9FDFD2FECEA52A8D1BDEDEDECEF8C32D +:1011A000C2C6BF6B698A68CFE1F5BF23F37D82E8D1 +:1011B000C7D14E3FC3C3E66155CD7112E1F38968D3 +:1011C000079E1161FD38D2222FD84F643BFD5C1978 +:1011D000065764D7F80BF613D50E5C4CF1A55C9B53 +:1011E000DB7A7DF5764E31BE7E7ED36CC7F632C794 +:1011F0007D7C42921BF6FD3DBC8E1EA83F154F1E06 +:10120000F97196F0F71ECA2CF559F89E43D9F220D1 +:10121000A5E1F438126CCE06F2A3B893516EBA2A47 +:1012200007C7A21E38B3B67F2CEEDB7D31BC5C5203 +:101230007C03313FF29FD307DAD016F9209AE1FA06 +:101240005DDF854DBD16BE4F95F83CAEAFBE6A243E +:10125000FA473AF7E0FCFFE6527C8302EFF13B9855 +:1012600007D6FF6DA023CCBF03F480F9F7966A94EC +:101270001E5E9A4DE9311BB7D3AE17EF45E03D3EF8 +:101280009C4F560F2EAFB27AE87EF79B5230BE6964 +:10129000E43FDFC6979258A2FFBEF1C32F63AC5163 +:1012A000BCBB728DC77CBFB564BCF9FE6AB97788D8 +:1012B000A99C65F76BC9935F8BCB8769ABE3B6E0FD +:1012C000BE62F2A80453FD89AB3B99F2853DB87C20 +:1012D000183BB28BE9FB756539A67C79082C128C1A +:1012E0006BD0522C7EE8FFECEB56BAEF78B672600A +:1012F000875B789EF47938DE8FE9F78DDE157C0305 +:10130000DF711DCEBD9FCE707E23FF2933B4D7D9A8 +:101310001FB81F7EFA0312F3C39459939FE2146F10 +:10132000DA6C7763BD190FC8CCD70F6723117C5FC8 +:101330001DCCDAB286D6D1FF08D66B827A782E64BD +:10134000895A4BEDBE8C601ADE379DDE28FA93FA7F +:10135000D2BD898FAA5665E078F393A11CECA56FE6 +:1013600046D7CEB220BDCAAF27E1B9E2373B648A87 +:10137000139D53F5CE0015F039775FDDBB05D0EF37 +:10138000B15A99A930EE896DF6CD3C3ED0D301FD1E +:101390008D2DF006287E3290E99D86F4FCD5AC4078 +:1013A0001EC57B2D49227A6E032FB3DE43BC5862E3 +:1013B000B4C720BD79BA7B22C275F33A6B9C5F3209 +:1013C000D2BBB83F24FAF1B3FC54BC27726CAD9584 +:1013D000EE4B02DF8CA173A4DA040BF7CFEE20FAF8 +:1013E0009AA668361C7FDA5A99EC09FDDD099D2F13 +:1013F000D93DB20FF65CCCBF5AF2E1BD15171219F8 +:101400008CBF283D92D67551D5C00E088F7E6F3C9B +:101410005C2F9C049EF119EEC3CCDDCDEFA3B17C13 +:10142000D582F718C6340C7F0CE7737A7F9758B4CF +:1014300063BE3C34CECAF1C6E348E754D7E7E1BB0C +:101440004E2746FB3F57207DCFEE5BD303403C9EAB +:101450005A773FDEE738B5EBD10C7C17A951BC5762 +:10146000A58FE36BE7BDAAAB2C436BB17DF3FB19F2 +:10147000E21E3B53028F3F88F6F2071D4C76440B69 +:101480007E97717CE8F541E4F17B77C16409F0E86F +:10149000D318DD732D6575227E8FE34FC34502FCA3 +:1014A000A91512DDFB996E714F791BF5F2F26815E3 +:1014B000D753EFFFA8E0EBC77B703B50977B9F8A29 +:1014C000FC74FDFC6E0FB71FF17E30FA4367138882 +:1014D00074EFD086FCA5DF0F7EB647BCD86F34D939 +:1014E0006E49C47BDC367AC766169E7A40BE629B24 +:1014F0003D1070E13B1C9CAFE7DA9EBABF2F5677D8 +:1015000055D2BDC7393B25F6A084F5378FA0F867C3 +:10151000C62A03F83E050B8C6880FC7C4DA90CA202 +:101520008732C0EF093B40A0A05CF1B3C0CA78E8A5 +:101530007FA6883360DBA0DC2077E6D799EF152FF4 +:10154000C4FBC4A67334EF4A3C8F9881E7112ABDCF +:10155000A762BE3F586BA57337FD9EB3372A9AE248 +:101560004CE7AEE7F1342DF391D979C0D92C5F6007 +:10157000DF188257720758EBF9DC80E325B6C07399 +:10158000B1F985CF67969BCB998A5A291068637EFB +:101590003A7E630B99867263DE5689FCFFC313ABF8 +:1015A00008CF7301CF09D0EF2CBF3766523EDEDB88 +:1015B00064417C4703D04DE50B37F17500C4BED5BF +:1015C00035B965BD3F4B6CB2219E3EF3392BFD789A +:1015D000EFA8F27B5AFF7DB0CEC8F773B6076CA8B0 +:1015E000974FB0DA1827F04DC50307F721D97EB61B +:1015F000FE9964B417CBE2835996387CA7E287F54D +:1016000023D35BE8704EC00CFFBC6DE67C387EFCDB +:10161000CC4BFAAB159E1C6B1BD0FFD36AFD443C30 +:101620002EDACA68E7CFDC2AD3F9ACA19EE93C7573 +:10163000B6BF89EE57CD0638AB55FCEA277A9C0930 +:10164000563AC6B9FED2F9B6A237B98CE8ED1CAC51 +:10165000BFDC16BD5DE27CC3FD55193DC53D2E378F +:101660007FE707EF0F4EC24261B784CB97F07B99BB +:101670001F8121B81CE6D57490DFCB3BABA8429FFD +:10168000660550A4B427776709BD3813F520A49FD9 +:101690003FF04C0CAEB7BEEE37A07EE9D5A25F6E30 +:1016A0009E1E4C47BAB9F9F908B71F871F157CE78A +:1016B00056C87FB35D666DC9C1A199BEC13DD13E1B +:1016C000117A72BEBC394345BD28E4E2C5F607FF76 +:1016D0002A5CD310AE7EA8F7395C9FAEE6F01C5DA5 +:1016E000CBE19BD10A2E3FDDE7B8F951BB1BFB3D97 +:1016F0001E1124BD7D1CE0AAA675E576C33907D06E +:10170000511FB20748DF7F99C4F57D337C37BE7720 +:101710004481759FD3AD210FEFFF95DD6327FD3E1B +:10172000E7D9683AA7FA4A2AEA40FBA357833188E7 +:10173000B7B93B38DE5AE6D3ACEF7D88B7667D7F1C +:1017400089F8C20005D48B0B187FE761C1AE0EF497 +:10175000CED1DA225627D33DBF46925F403A747EFF +:10176000CB5E30C737DA99DBE1C0F56927DE1B0DA8 +:10177000037C6F6616D60738BECBFA76CA8D849F77 +:10178000A66EC4D791412BBE5FD2B45DA2F79AE694 +:10179000DF541483AE62AB88D75DDA93DBABCB7BCF +:1017A000723927792A291ED7AF31751DCE6F138F55 +:1017B0004B67AFB03A3AE7DDC4E181BD38C1236978 +:1017C0002A2BEBCBE3FB1DA8DF9C9636FD2375622D +:1017D0009CF9B285ECE60A1BB79F4F897DC53A514B +:1017E000BEAE27B7A33788B8C553B01DA5FB77C3D6 +:1017F000ED01F43F809A9A8FF33B2859288E3E37AB +:10180000C7B7BE27D45B71D89E1504101AAC5A4DC9 +:1018100023ACEB8AB85974CF770A7CC1F51D5350BD +:10182000B50DDB1DE9C85499BF1FE36586F8BE37C7 +:10183000AC1F0DBF09FD465057863D4769C117E9EA +:10184000587F13E6010F4722EA86DF84ED5D0AC365 +:101850007B06FEDD76B207AC431BD3C91F18C958FF +:10186000751F8C07DD5B8374B52F25215B85FA53CB +:101870009548B7B86732EC5BA8A7CCE6EF87B01500 +:101880008DFD717D7AB3152AAE1F40BDF37CC285F4 +:10189000E8C9FC5E5305BE23349871422B20BC9AE4 +:1018A000F215365EBEAF67E984F56990C73D03D295 +:1018B000C15532C5754D286852F01D2324946B80A4 +:1018C0008E27054F2B783EC03C5A5D2CE48307CC15 +:1018D000EF455DA368F41E6B9A8755CA643F69C3E0 +:1018E000B1BFF773F8F9BFC4B2293F66248B277ED6 +:1018F00074685684DF3B52EA8B7676C5F24B9BEFD9 +:10190000273D67F1F95AF83D9DA65B791CD814A5CF +:10191000CE8AF162B14C6DF2C37A2C8CAFA3F9344C +:10192000011FE1B966A9D248E3A7CD66F1B85E15FB +:10193000A01C119EA6393C8ECDE2E0E5651A94C349 +:10194000FC1EF05992D10FF4714F6E9FCDD7F773F3 +:101950004A630DC50796F0F7BDFAC0F48CEBB3D01F +:10196000D6BCEFD3B0BF79601660BD79BB9ECFA265 +:1019700077CD24CD82E37F29E8799EC319C47315FE +:10198000F647335F47E159C805F8C191C3E7E5C899 +:10199000E17EA4B33DF57D651DE9EB79BBFEE77DF6 +:1019A000DCC7B6D7FF7C3B0B12FE76DB097EC9D2C3 +:1019B000D495DE3B63F4D204F69385F959209F70E9 +:1019C000FEB61C6E6FEA743D4BE8590B085FD4A35A +:1019D0003730BF6D908BEE471F33C6A9CE65B56417 +:1019E000A7CCDD6AFECE8C7A5A36C92D8AD3966C86 +:1019F0004D33707CE9F20837CAF3525B1DEDFF25C9 +:101A00009467D92DF22CBC9DB596DB6BD6B512D957 +:101A1000BFBA5FD60EF61BCAF7F234770A7F974239 +:101A20001B41EF530A3B7B169F0A7CAF30D9D9F696 +:101A3000CA2F3E207FFC037CFE8AB083A787BD9F10 +:101A400053BEDA0C9F9FB94BE81CDD69A3FDAD3D89 +:101A5000EC5D9D6A69AC1FE5BADFA5D03B12063F7D +:101A6000BBB04BBC8CC763F3EF8AB0373BE6584D35 +:101A7000F78674FEBF06EFAF1BE4AA77186397F7EB +:101A8000453F8214403AB8C653B49FA7CB8274BF77 +:101A90004961AC533CB683BD3FD5BB93E280811F07 +:101AA000FD5158EEB17E6584E74DFC471BEF285C85 +:101AB00091D3CEFB14850997F43E85FE5E6719CA63 +:101AC000E12E2DF1F16507F87DF8EF23FE997108FD +:101AD000F29A0408C960EC96C823AFF920DFF88FAA +:101AE000582675C4F7DC5E7B18E3B7CB9629B4CED5 +:101AF000653137537C77D0EE203BD93F34F830C581 +:101B00007BDB1C74FF6B2302978F7044F3FE2D8DDB +:101B100034EE54D67802E3A8AF4C6C8846B2D0E3DA +:101B2000EA5716F57B00EF83CF7972E704473A9DB9 +:101B30006F8BF88C3FBF83EFB78C477F17E55F9CB7 +:101B4000E0E90DFCF95AD31407DAB1392F4DC0780A +:101B50008D531B9A1EC1FC0339AFF1FCDD4D1911E9 +:101B6000947F9DE79789FED8EB13D0AF7BEAB73C13 +:101B7000BF00CAF11CB54CBC07573658A2F7E0AA03 +:101B8000841ED6FD61659657783A9405D16EB85893 +:101B9000BD2D39DE2AD48772F4318A87D99CEBA90E +:101BA00042BBE5961EDE5B73703F7928909C04E390 +:101BB000CDB5B006D49FFABBD0AB2CE6F742AB7ADA +:101BC00072B9A3A72B7B79A91F1D6FD05FF5BFD377 +:101BD0005F52587FBA1D3353F03DF4BFEEDFE95F2B +:101BE00097237A7F9FB49EFF43FF4EFF1372CDFD74 +:101BF000E9F6AE0E472EF22AD0DDB8DE5CCEEBF36E +:101C0000D1BFD748C1A449281F0EC8747E599394E8 +:101C10006C7916C77F3D81EE5B9EA91C186B817E97 +:101C200077093D50733BF72FD42CE3F7104E3C352A +:101C3000700092D60271BE7DA2FEB00DDF155A284B +:101C4000CEB917ECACB78DE885EFA6D4DB8A0DF6DC +:101C50006A45B35FA551C177476B923E57CA691C6D +:101C60008BF0372CBB601CC85F72743DC4E1CC1391 +:101C7000F01CCCF3ECCD31C0A97FD7DF990EEF2754 +:101C8000A617EFE751942DFD5BFAEB2DF1F52A8BAA +:101C9000E4FAB0FF21F7ACB7695F9D67C173CD016E +:101CA000EF57DA506FFFAEC7D083C6F1F4762DFE42 +:101CB000E226B3BF7817F717EBE3B8C5FCCAE21BFF +:101CC0006EC238F6983F366D40FEBF7A236B7E7742 +:101CD000125D6523ED7ADE3E71581AF76362FEDB12 +:101CE00027D9FD1817BD3FB2E1D76FA39EBD339A28 +:101CF000E13BF4D70F8CCED8918FF1EAB1122B646F +:101D0000ACC81EDD0DCFA3AD3D8A627A11DE18D9B5 +:101D1000E5D61EDEAF90FE1A5D5116300299CFC691 +:101D2000E9C1F71799DEF1F1E545F9D09FB7DFC2B8 +:101D300086B1F816BC1DCFE1F6714C2F8EB7FDE2CF +:101D40009D58F8CBD881FEC1E59D25A4637DDCE8D4 +:101D50001E45D1BDFAB78C1BDDC3FB634E7F63FD0F +:101D6000587A2FAABDF15BC9774127D1627C6F21D8 +:101D7000D09F414F5E3B2CCA941F3F2A81798C7EB5 +:101D8000E9F19D4CF992B22EA6FAD7CDC831958FC4 +:101D9000B637E41BED027DDD2E75FFD550EF4B4CC1 +:101DA000CAA7B8D526E42F58AF9D6331BDBF938A2B +:101DB000FE8879ABAF227F776CA894D28ADAABE841 +:101DC000F1CFF9A171945F108AA2FC9B72C308DA6B +:101DD000173D2FD1B902F47316DFF3D91FDF9761D6 +:101DE0003F0B766ECF3FC4ED2B2FC69B8E96DFCA7E +:101DF000473D34BAB36AA9C6F7C74211D44FC3D01E +:101E00000FF3B19F91B8AF80EF153B069520FD14FD +:101E10005547AB48DFEDF14BFF5E5C0E581BF97C7C +:101E20008787C6527F7AF9905E99A673186BD2564F +:101E300005F94487C3DA2851FAAB500EA50B778E0B +:101E400055309EFA2FD98F26A29E80FA4E4C5DDE29 +:101E5000219C5F40FE3067FBF8B50BB9532AEEFBBF +:101E600078F23C5EA4EF314B1A1507E2C169537159 +:101E70001F38A6A04FCA2C433FD5F59319CA297B1A +:101E800022B3A17E2D85B4D850EE6B27BE66622F9B +:101E9000B37C6AFE3D83577F4F87BD53544E333A20 +:101EA0005D14F732C7A135485CCFFA9FE5E70F9381 +:101EB000F37C7370BE0D45AC6407C98B860C8C1F18 +:101EC000F94FCD1F7AA6751EA3F2FD418CD2C83002 +:101ED000AE798198974E9F1783A354D47F53668B16 +:101EE000912EDEBCE28A06DCD7D4DFD6AF1F9EE39C +:101EF000C376E867F233EE19D205EDD03B7AF138BC +:101F0000C6D1781692DF62FFE3BB0DE81F59B8C750 +:101F1000BE45827A0B639ABAA17C8DEDEDBB03E5D9 +:101F2000C39B2FFF7004EF977B9CD114B7BA704FFF +:101F3000C4AB98BF5CA67066B02B3C4B498EB433E3 +:101F4000CF8BF1A1CB3B2F11F5EC199812BE577630 +:101F5000A6F2BD9D63315D1F45F1BFBED59CEF7CF0 +:101F600082FFCA05DD4E13FC57AED4117F4DC580EC +:101F70007798D7B425522EDEFB87C5A0787C2BD26C +:101F8000633FA44B4E8F15A138C1C72ED10FA7FBBD +:101F900070BE5C104AA07A3A7FAECFF33DC5E574BF +:101FA00043FE6218EF57AA85EE3DF996A7E6237F18 +:101FB0005C9C3E7E50F01E9BB550B2227DD8212DF8 +:101FC00036F0B3B7259E7D4432EAFB152E8BF15EC9 +:101FD000D38E5F48E7BF13F5A739414F921F29867B +:101FE000A17FAE2C49233FEB8D774A78E8C36EB4CE +:101FF00006B3D08F73635504F9D3661DAA5C19AD7F +:10200000B55EAFC9A13CA6019EC685BA52FABB1EF9 +:10201000BE20AE7B7968A2C063DE259D0FF6F77007 +:10202000FF9D3560776F76A1FFCE27233F1C4F675A +:10203000EA7DE4C7E1E5BAFF0EFD82E81F6C39FFD7 +:10204000F337FBF3907FEC8916D339652BBF5E1114 +:10205000D75F5F6FB5F277F0EADF1A6081F2AF5CAD +:102060001EF2EF05327D87118EB9D7069EB6427EED +:10207000DEDDCFC40CD25AF058A704B3D0AF555709 +:10208000C9F153B756A67B2AF01735D6782F54D806 +:102090000F0718B737C2E97A6EA80BE147D72BBAFA +:1020A000BC7E7E690A6D5675B97D317D335F69D816 +:1020B0007910F0337F7DACEAA777F90E9EC57712D1 +:1020C000F1C13CBC8A05FC43F2E54C1AB330837E77 +:1020D000192DEFC83F44FA47F556A39E291E5248D2 +:1020E000FBE13079FDD5B6B7A93D9EC1A11E1AFA14 +:1020F000E44FCF7C00DD5BADC16EF81EE0AF9468AD +:10210000B79FB5A60F5D0FEBF0EBF8F88BC89FCF2C +:10211000F5C4E55E921E88207BD5EE1FCB488E422B +:102120006A94A3D6303B55FF9E9CFBCBF843C93540 +:10213000EF07F47936D874BB89CFFFAF8CDB15CDB0 +:102140007C90776D2EC2817A01C7EF9BCBF5EF7F34 +:102150000EAEB6F543DF66F82E4D3F740E834F8703 +:102160004387EB7501EFA5EA8F2B736D226EDDAC13 +:102170003FA0DEE7F8BEDEA9DD3D549457B2D4F4AB +:1021800039F9937647688887375F8EA0FA1E472C07 +:10219000F9D58B5FFEE20CBE2B7D306FDC95B9D09C +:1021A0009F67975D61063B4E9F973ECFBF897983BE +:1021B0009E19956BB0EBF5EFFFAADE1931763BF176 +:1021C00003FC79AFB91CECFBBB1A48EFB08D512A68 +:1021D000FA65C2F9359C4FC3F912EC3E92ABFB9FF6 +:1021E0008BA373089D7FC3F9D3E5FD90F40CF22710 +:1021F000CAB73395F65C7C0FE88CC6F5EB68F47FC4 +:10220000229FE6C4D1EFF5EC95EBEE1B2CE1FB949D +:10221000DC3E1C2AECC370BD762CD77B07E2F38A28 +:1022200027D3F311BF17A7C73F5B491F554864AFBA +:10223000D82135EA235F3B7C56FD0BF9AC2AB7D990 +:102240004EE17656AC8DECAC8BD1DB86FF3CBD6DA0 +:1022500030D25B7BF6F483B97CFF09F4F660EEBF05 +:1022600065D7BC44F405F2DF8BFBA8ABFFEA8E45D3 +:102270003D8888C0FB06402FF9F83ED2FE01E96E8A +:10228000F4DB5C7D9EEF474027D17E247C3F502AC3 +:10229000E4B44FECE377E77977E77279F04784B7F6 +:1022A000A84B541FD4B7976AA796265632F43BF929 +:1022B0002035CA217BF3EF9498D7FD955FB8EE7572 +:1022C000A2FEA5CA97B7DA59EF0BD8A71FE55E8221 +:1022D0007DEAF238C6913E0CF2FB0117DBBFC80F56 +:1022E00070FC36E32BA8E8FA3E01F53DD0C5C7FFE8 +:1022F0000E5D8C2EAE3BEB80F5FC29F7C789E80715 +:102300009C88B126E447F8E97E4F5794434C3FFF41 +:10231000203F03F10DE57F7E7718E0F1EAFB58CB13 +:10232000F908940F2F8C6DF64B48ACA5FE8FB93F82 +:10233000BCBB96E6CDDF6567BE46859F138A7C3EB3 +:10234000E4A30DF982B0FC265E1FF58FF17DF71630 +:10235000FDC418FF9D13BFB07F9A46C4A1DDBA53D8 +:10236000A2F7B2AF2B3C6543BFCAE8E2C67D9DA091 +:102370005E749E3CC909AC79DD4E89E69BFE74E42F +:1023800046BFC2EF55C8D05F458114207F795DFDFF +:10239000084F1B7C999E67DE1FE11FFE8E4985401A +:1023A000BFBD4E62F80E3AF683718A97D21ECFF9FE +:1023B000A87D26B50FDA132FBDFDA4421EBF1B5EFC +:1023C0002F47AF27E221A97F58937175529BBFEF2A +:1023D000D24FD46FB058E6A3BD36E4E98C8DE86FD8 +:1023E0001ACE385D5CF674FA243FA73FE60983F7FE +:1023F00042F375B501AF666E1FBC10BEBAB76A2F47 +:10240000D67FB6994E6215EFAB67601EB189928A8E +:10241000F6F5026FC45ABC8C37BA58D0B53F7B92E0 +:10242000270DE08B6026FF59335DFB7B4C42BA5E83 +:10243000C0F4FA391B71FDBD1666BA1F397C97D4FA +:10244000DC3E5BA1FB7ED47ED2D33D37A2BF0DD64E +:1024500083CA29AF5C80CEEBC2F285617CC1789ED5 +:10246000F812E57101FF1D9D70FCDC28F0F38DB8BA +:10247000E7D13094DB8D0DE2F7B0EEC9E376E1AD44 +:10248000795C0E2ED3D7D9F0FB352CAD659D99F82C +:102490007D1B03DC84A7C989026EFFC849A300AE77 +:1024A0008678962B019DDCF5F4B08D2B884EBC0A06 +:1024B0009E5328FE111B5F07793259E0E59EA7AFB6 +:1024C0007C0FF1824712C85FF30BF8F9B27DE7C1C8 +:1024D00036F96B4A9ED9BEA47F00BDCC27C2C17617 +:1024E0009207EFD5603F996DE06346EBF69EB0F63C +:1024F000CC9AF84BDA8BF51815B65E23C3D66B5819 +:1025000058BECC9C8F51B8BC8A414480BD35ED8506 +:102510007B6A9213319E48A237EC401EDBF0770AAB +:102520001ECFBB76927310D2A566ED0475FF90376F +:10253000FE3D07D0EC589457246F276C44F93C0EAD +:10254000F99AF213277962914E2A6B52A07E5DDED2 +:10255000A48DF87B90D7ADB8C74AF776F3266F54B1 +:10256000609D26E7FF691FF6A748A5EF8D725D8085 +:102570002E6BC3E0D81496F787D55F7F11F9BD2283 +:10258000ACFD92B0F2B561F907C2F2ABCDEDCB670D +:10259000F0F3D572583F44DCC5F8635F9E6EF7D503 +:1025A000E5E339D8DF9EBE61630DB4B9BA9AD3F7BB +:1025B0009B79B32719E9D32AE47F69A2D7D3167D83 +:1025C000BED21E7D6487EB295E7E45546E2CCEEF15 +:1025D000587FA621BF1C8BD062E9BEF601B0BF7048 +:1025E000E11D0D2B0BB1BCA8807E3F04DFBF1F6D2A +:1025F00088BB7CF51E3BC13773273F8F1C16F5F057 +:1026000088D4443A2F6EB2535CDEC611A9F92DBFAF +:102610003732EB238E8F59BBA400FE44DE9C40D89A +:10262000FBEDF25A99FC1A9B785CE00D0FB47ED753 +:102630001ECF85F1772FD6F078C556E518EF59FDF6 +:10264000679B8AE5E1EFDD7F82FF68E3DDF1B37927 +:10265000E678353D9E563FAFF55DFCF75F7FCA4B90 +:1026600032C4D58A3837A6049330AEB1FA40425FFF +:10267000B4C35FB6304781E13C42B713BF5EEAA303 +:102680003B3F2797CEE6777F44FB5352BDAD13DA2D +:10269000799FF1DF8B1BBC73FB5D4334AC5F494614 +:1026A000E8C9AFF30BD10F7D72E96271982FE2A0F8 +:1026B00045FCED653BEB65FCFDA2932F1C8D22FFD5 +:1026C000341E16A09DF7B5427474A6F2FBBDE7292F +:1026D0006FA17D808B85F69E87F11645C752F9A2C2 +:1026E0002AFE5EDBA27F4452B98EBFAF6E6514CF67 +:1026F000AFCFB3FEC9845D8371DF1215AB22DA6EF2 +:10270000107EA8AFB6C9D4FEB823F671E4EBE39B04 +:10271000C625E3230633AD4D3637CCC7BD7B2CFD34 +:10272000BECD67502F487EE4808CF6D0E0918CECD3 +:10273000D1C1608F6A2EDC227AC7205D0C7A01EA53 +:1027400041FE4490FF8E2913F6E6CC3FCB744FFA3E +:102750008B4DCF50BD2FB726C5E17827B7BE938CE0 +:102760007EADB94CADC7F3DF6B7B737E3B0E720D54 +:10277000FB9F0B741B01F5BEDCC6F9762ED025DD60 +:102780005509A3F3E26DCB88AEE6A6C80CE97AAE94 +:1027900087BFEF35177FA7414374733A74C0FF308A +:1027A0000E214ED0E93CA0538CAB9DB7AD6D3AAD38 +:1027B0007881D369381D87D36D38BDFEAAB7882BC1 +:1027C000E8CBFAFE92F8CAF0F785E3EBFA14D1EF02 +:1027D0005B35CB0B6F0ACA8923F84F92DF8B4B70A6 +:1027E000DFBBB7D9BEE6FAB65EE6F2E9BADE8BDF4A +:1027F0005F61F003DD2BCE11F57B88780EBABD0D3D +:10280000FBAFC1CDF5FEDE9FF8BB38FECE36F243FE +:10281000EF8DE5F7BC56DD3989EE79E9F5EB3BDB69 +:1028200016F37B604B53661AE4DEDECEC93FE379D4 +:10283000EEDE0EFC3D9BBDB7F5FB19EF91F917F2EB +:10284000DFFF39B2F8E8097C3FE9C3D060D5F8FE74 +:1028500080B582C7FB5B13EBA2671AE6B777613FCF +:10286000E2271D9E73E2BCECC3B49B55A4CBFACE09 +:102870003735E0FD767F0785E66BFFA14CC5DF119C +:102880002A16F76FAB057D59A3BFA1770FAA13F1E5 +:102890008761F03BDF2FD7A44D74D0EFEF24F277A0 +:1028A0007CACD1D7AB36033C9E4485CFCBC54CBF67 +:1028B000FBFC5D6F2ED7DFE92DDEBF9155821BE655 +:1028C000A1E2F9F7D49FCADE6F8071AC1903340C12 +:1028D000B61AECEE22DE73530B317EE372D99DCF34 +:1028E0000CFEA2C9160E57F83B71F8FB8C48B7D501 +:1028F0002EFE1E8EE19D27D37B38EDBDEBB6B5B71E +:102900008BDFE3C45FF8E4EF9CB4BCA326D3BD5CCB +:10291000B2FBEC8CDFC74DF2F0782A7BA2C3131117 +:1029200043EF4B0DB3C6D3BD357A3FC39ACE165C89 +:102930004B72B78E7E576D7B6F49C837DEAFFEDEB8 +:1029400055E3F29786E37DFD6A8969096EC33B66AC +:102950001D6C63701FABE7F5F14BC53853657E1FE7 +:10296000197FE811EF05B77A578CB9DFC7FB2776D7 +:102970007F9405F76BF5BDA5E67D82F15DB3C68C4E +:10298000CA20D66BB4306D87DAF24E568D8847B3C5 +:102990003BF93B348DCB6FA3FB65D5E58CDE33ABC8 +:1029A000D1CFD5E68B7B0DE27D1AFD9DB7D244FEDB +:1029B0003E4D29B477E519FC0FBFF0FDB38BDD4B1D +:1029C000D6FD853A5D8C435DDF1FE93D7909F15302 +:1029D0000707D1FBAAF4CFE99D2AEB1D43DCE89F52 +:1029E00068E6CF0E2985788FB27E61C29226037F7A +:1029F0007C58314E9DDE0BEF5B3AE9BDF4CB7F4A4C +:102A00005B82EBF489ED0A133FEEB9E3C499E71357 +:102A1000318DA67BC87B7E1CAC615C886C6924F917 +:102A2000C07E8C243A2F8E2D49D10C7CF18DA0874D +:102A30004D599E13BD615DE464A07F678B1CB32676 +:102A4000E7FB904F5639E9A6385B25E232AA25F319 +:102A5000FB1883DD9C6F07BB25918AF7DA148DDEA6 +:102A6000FDD4EFD7D77756161BF7A791A27EA4689F +:102A70005FDFF9E6F7CB0DF8AAB7BFFCB70188AF67 +:102A8000E4F16EBA4F8AF20EF2FF0B1B0EC22A005F +:102A9000800000001F8B080000000000000BED7D8F +:102AA0000B7854D5B5F03EE7CC2BC924993C800176 +:102AB000023D8110034EE24908218100934020BC71 +:102AC00074784803469944AAA8B44EA92D692F36B4 +:102AD00013124208A9465EA2451CF051DB0A06C447 +:102AE0005E6CBDED10145151A3B556AD4A4044ED96 +:102AF000F5DE462857FA5D6FB96BADBD4FE69C43D6 +:102B000012B0FDBFEFFFFEEFFBA175B3CE7EAFBDF0 +:102B1000D6DA6BADBDF69EE5F5099AA432767888D3 +:102B20008BB1744C1D112913D23B15C60A190B2702 +:102B3000BB226324809DC9946FFF5B754481FC496F +:102B40001A541AC4D845FC330DEBA597AA6EC63AA1 +:102B500095D03B35586F884B7B8C31F6A755695F14 +:102B600095016CB7277B14A87242EE99C014AC9FF4 +:102B7000CAD804C6D64BD0D06828C86CFE3330847F +:102B80006532B409B05D663B64A8C746B2C863D07D +:102B90009FD3D5D6A5E441CA6CE1EE1C2CCF1C17FF +:102BA00033B11A6372117E873FB2299F61FE182DDF +:102BB00093C6C958880512F9776930948339E1388A +:102BC0008E39D8F2800FEB8567E0FC06F961EC43A3 +:102BD000014E77F9E39220B5B119F6545ECF0EFDA0 +:102BE000DC20FA39E6E8A8C079F5484C3DA0E17749 +:102BF00073FD1B443D1D3FCE55F670B74B8C0BFF4C +:102C000003B86083C5B8475F3AEE5908BBFA872519 +:102C1000C4574E0C5F8B600C88CF4E9813ADDB060B +:102C200089F0661F742891B963E398AB49848FC318 +:102C300009C9751137AE73DA5745306E6753CD60E9 +:102C40001C53AC9C42ED395DC9FE880FD77F5A10EA +:102C5000D7B5C6BDC48EEBC86CEAC8EB73199BA38D +:102C6000D9A85C630AABEAF0E1BAF5E4E27C8E8FA6 +:102C7000095EA7C1F75376F80EFD7CE0613609EADC +:102C80007FC052A4062936FEF3121FBFBEFEFF25E9 +:102C9000E086EFBE48F370AE9222B856A7A48E1716 +:102CA000B07EB8C4E979CC03C59BBC47B3603D6E28 +:102CB00061626DEEFEB6630DE46FF0C2B801171BE2 +:102CC000D26F999906F3DAB0D34130FC69B341F978 +:102CD0009B45F98F99DF5106F839A08DA2F1073F86 +:102CE000F5CC4C52115F9FBE9A89F8F8A1E2417C65 +:102CF000FCEEEFCAF2008C7FCA5FA34A327C0F362B +:102D0000651628063C053FB7CD6430EF1AE669F634 +:102D100040B9134975950D50AEF12189D6F8941438 +:102D20003A1A04380CF063004F1E5158F54718E763 +:102D3000E4860CE2A70F59D7FC8998BFD54EFCD288 +:102D4000680F75215D857F9246B07FE71B341EFFBB +:102D50005D0A4392BDC1B56A26E285F93C92B3840F +:102D6000B1BB3599D6F3065BD081ED010A3D8D40AC +:102D70007F2FD9BB2A107EA90670990FF5E17FB885 +:102D80003EC764E09802C6E6A771BA6FC4FA139012 +:102D90001778BB378C574729298037C62AB1BC2DF5 +:102DA000A5B0CB0FEDFCE7A16F152169D9072D0E5A +:102DB000E2FCFEF2DC1D4588877B049D6C9CB739E4 +:102DC00080EBEE7285C2C3A1DCA72854E0FB9D2DE9 +:102DD0001BBE50808FEE7CAE8C057DC477812B6945 +:102DE000F701BDDD00B4AB5C41BB3BECA78DFCD56E +:102DF000F8409C4BBA86B1155B2DDFED9C4E6BC243 +:102E0000E6EF37B499E1DF08BC32A53A3968E01F34 +:102E10006B5AF7FE1B79CFE7C4EA3DA9B9D3CF249B +:102E2000C03F26B2891795CBD7FFB2BE2BEF793BB7 +:102E3000F6C7F93753FB178F047838976163ADB045 +:102E4000E0E7426B5C48F7E732603C28EF58776276 +:102E500020F7D276BAEB61814198DC2EDAD1F94BBA +:102E6000E7A7230AABC3799F9258D57E18CFEF1CF2 +:102E7000EA5D481FBF8B1F218591B05847DA029049 +:102E80008F2F8B79FFCEC1566279609ED245D0DFFD +:102E9000EF6480DD98CFD7E5379F1794E2BC7E7B47 +:102EA000A1A0B4D6171BC711A5FB971369DF901912 +:102EB000D133D0D1D37DCCBFE61AC534CECD384E78 +:102EC000252607B68871EB746AADFF899063DDF53E +:102ED00075ECA331067E443A87FE26BC156C4CC4C3 +:102EE000FD2A4335F16BF2D5E527B441317E6047C9 +:102EF00096B24C981F5B3B9EB1A1D82E9F3FF0EC41 +:102F00004C3FB4C3BC01EFC2C458FDC7AFE6F9FAE9 +:102F1000B8B7F4CAAF8017D7E543FCE724FC4F5D90 +:102F200015D63FA2E8307409F33A8CF0306CA7EE66 +:102F30009D26776CBEF789F9FB59CF918BC8DF6E60 +:102F400039F2187CAB96D90CE457BD7F5B3EEF7F1E +:102F500066A21C40B95C1D1F1DB31AD2B9F7B3108D +:102F6000CEA7D2C9962F8076AB53F9F7583D8EAFD6 +:102F7000B9F7F272731B798AEDEC76C7F2ABCB79B5 +:102F80003D1DD6E7A98FEFF1AB3D9C2FD6A631565C +:102F900072E9F8C3E52C2704ED353A420F77231D7B +:102FA000ACB3B1C750BE95877ED68DE93AA7A711BD +:102FB000D2FB137E4CF9753697C70934BB46F1BC7A +:102FC0008002AE3E3F93E8E24B59B5A31EB228BD46 +:102FD0007B066DD5D365BF9C8E04E5A47DCD4A0FDD +:102FE00023F2B91CFB753EA7FFB27C0FA576D8F77C +:102FF000512E356223D8FF20AE4FE8FA805E7F8CD9 +:10300000986F593E972FCA7899F0D36D6723F3696B +:103010009D3C23B0FC8284D4F32A349D9F7F7F950E +:103020000DE865C1E4D4EF8F86F14FDAFF1087C752 +:10303000A73E330AE0D2FC9D1CBE2675821DE086A9 +:10304000865D5533005FCBF2FDD7E41BC6A7B70BF7 +:10305000DF0BF0FBC399C1A27CD2577A6E89A23CE8 +:103060009492B4569C77564F1ED2975EEF0D897D91 +:10307000F81B2906E338351FC24CCCA3EF7443BEBE +:103080007F5A7E1FDF7121CFC17AD4164B9156C073 +:103090008FEC521D7500073487A6F0FD33E0027DEA +:1030A000E53AFC17A0A8D6F515E93B8046CDE985A1 +:1030B000B4C5FE79AFFE025BEA58D6E441BA80554A +:1030C000D97931AD7FF9870ADC19BD1EF246B8E720 +:1030D000269C77238379231FEC04C501FB91594F6C +:1030E0002BEC4B1220BF1AF8417AEEC5BF49795834 +:1030F000ABDA73E66AA4D3A07C11D3E03BBF42BA3B +:10310000BAAB01E427D4CB0CBE47F079A0B35698F4 +:10311000C7EA673E48526150B7213DC0FA7C7E6DD8 +:10312000343B0AF33D96F9E24894679FD4332D0B64 +:10313000E4499133786BBE41BFFD646763D2246874 +:10314000EF3FF629DA3CA8BA4A01FE41BAF84A89AB +:103150004E4BC7FA63F720DE3EDFBF21A306D6E160 +:103160004E418F9F67F2FD867D7564E4BF40B9CA0A +:1031700051B327B402F85AFD2193DCBA56C82D404A +:10318000AE638141BECF96CBBF8F74516B13F98F65 +:103190005E4FE39EED0EF9490FA8525337005D3D97 +:1031A0009EC5E9D7690BD0772FD21CF1673BA733B7 +:1031B000F57BF4BDF936E669CDE7EBC98A62EBE948 +:1031C000D72ECEC0FC6B613D114FB2ABC78670A04D +:1031D00012782105D773A707F7357D3D2B94B5F7F6 +:1031E000205E57039E9D30AFD55288C37697278CBB +:1031F000FA19EB6AAE86EF77FA5D3DAD04FB93E614 +:10320000437F2B457FB0D0474BA0FC7F80BE46F963 +:1032100011FB29DC7F55F88BF4C394AF1C4807E7FA +:1032200083EE106862EC5A8FED94497F663D474B00 +:10323000207FD52107ADEBB73BECA6FC3B199437BB +:10324000E8D3D67D7A777E623AD20DCB67F948779C +:10325000FA7AE8FB757FEBA1EFD7B02E4F18D7A510 +:103260004271CBC80FAB1F1ABDC79989E922D58619 +:10327000F818945380FBB6BE3EECABE749EFBF5560 +:103280008C95ED4CA3F59C7F683853E19FB71D02E8 +:103290008302B6A27987D2084EBA3094604010AD4E +:1032A000E3FC9FDDEA2D2824552084F53E7BFC4F6E +:1032B00077FD08FA9DB70986EEA171B8701C67FD0D +:1032C000A0376712AAD7231E5767DA4288E7FB1395 +:1032D000F2EE2F85FA8D2FD9C9F608B05EBB42BA3F +:1032E000487A809A4CEB7E0CD605E5A49FDB2D2A0C +:1032F0007335E0BA38BD32530D78B68597AEC7F650 +:10330000ECB0CE11588738359EA9063CFF8105EDFB +:1033100064DF85FD6FA2BE5E25D63F2127D5548E82 +:10332000296D2F04914F811E50DE246AC34CFD404D +:1033300033A74DF4C1BA6D38CF40A9C41E84715F64 +:103340005F05F986F636C425D9A3D05E778D3B2478 +:10335000C1FE6B2FFD82F6117BA959CF0B649C79BE +:103360009F25111E4E0F442F9F20BDA05E37968DC6 +:10337000457A013C6BD8FED9B714CD49530AECD03D +:10338000F901E58E8DA984E725C7EC2C02F33DCB2E +:10339000D85ECC3F1B767AC285313A6259500FE72E +:1033A000E1E4F229B9D88CDF14BF199F699566BC96 +:1033B0000D0A98F134A46A94297F68709C297FF8DB +:1033C000CA02133C2234C954FE1B75E52638333C2F +:1033D000C7547E74CB42133CA67D99A9FC553B6A29 +:1033E0004DF96323B79BF2AF7E62B509CEEDF8913C +:1033F000A9FC3587D699F2F3A3ADA6FCF1C7369B9D +:10340000E0095D0F9ACA4F7C678F29BFA4FB17A6FE +:10341000FCC99F1E30C1537A7E6D2A3FED42A70939 +:103420002E63AF98CA4F77FDDE045778FE642A3FBB +:10343000CBFB91297FB6FAEFA6FCB939E74CF07CBB +:10344000EDBF4DE5BB58D318DC8F7E98159C580016 +:10345000F2424EF89CE8FC9D1B259606047CF6D8AB +:10346000220FDA3B5FD72E995660A6DFF3CC7D930F +:103470003CEAF276C970A11F5428F318DA21673BA1 +:1034800024A2F7BFD8D772FDAED1C694A9301C379D +:10349000DFA7BF038259813AF6740F437DEDDB51FC +:1034A000D681FB477231F084613C297E17B319F055 +:1034B0009056E931C183025E53F92155AA297F68EC +:1034C00030C7943F7CA5668247848A4DE5BF51E7AB +:1034D00037C199E14A53F9D12D01133CA6BDCA5415 +:1034E000FEAA1D4153FED8C84A53FED54F844C70E6 +:1034F0006E479DA9FC3587C2A6FCFC688B297FFC22 +:10350000B176133CA16B87A9FCC47722A6FC92EE8E +:10351000274CF9933FED30C1537A0E99CA4FBB1037 +:1035200035C165EC2553F9E9AE374C7085E75D533D +:10353000F959DE93A6FCD9EA67A6FC55FF0EFA3DC1 +:10354000EA238D4ECF638548E75F98F2BF8C1B1945 +:10355000FD17F82EAD4ED2A462A4FBBF99DABB3F93 +:10356000212907E9A78EC56BE8EF59A370BDFD6758 +:1035700005A3843DC0BAE3508F0F07C86F0764C628 +:10358000BC503E15FE81FA8CC4FE4AFA7D929F75AE +:10359000A09E08FA0BE93B1ED067703FD1E93A556F +:1035A000CECC44FB2421A69F665C1C7FE5FAE93360 +:1035B000058CC6F35141F017C89FB777EC9F897E01 +:1035C00089DB58B81937E50AC597DC0DFCF95A5C58 +:1035D000DF76EB6C17E0CDD0DF4B71ED190503F012 +:1035E000F16CD7E754BEB75D3B6F5782C91AEDBB8C +:1035F0007BC0FEB701BFB6D7035F811EB3B9DE4300 +:10360000F0D67A2FC1DBEB554A77D4E750FA60BD8C +:1036100046F93BEB8B09DE55EF2738525F49E99EAF +:10362000FA007D7FB4BE8AE0C7EB83943E51BF921F +:10363000D25FD48728FF49B0BF11DE571FA6B4A3BD +:10364000BE85BE1FA86F27F860FD0E827F551FA1A3 +:10365000F450FD1394FEBABE83F29F03BD0BE1DF6D +:10366000D647098ED61F23B8B3BE8BE0E7EBDF2128 +:10367000F8687D37A5C7EA3FA5F4E5FA1ECA3F5EA4 +:103680007F81E0CF857FE2648124FC596E5AFF4040 +:10369000F9557B1429F63DF7EAC0495CB77509492D +:1036A000DFC6FC854CD614B42F2C7684751DFE2CF9 +:1036B000DAB797335688FACEB0EC3D8DB0DE0DB256 +:1036C0004474D790AAEE411BF3F302AEE76D88670E +:1036D000E1B802221BD2B36FC57FA9A04EA5D71FA8 +:1036E000453BE09610D83764BA011DE6101D1EFF59 +:1036F0005A76120B533F6BC606FE1BE7C3DC91B72D +:1037000033615CB7CBAC0BEDA687C706FF8EDF6FCE +:1037100071871CA4D6312D1BEDCCF9CEE8A06FA289 +:10372000DFFA2545DBA3F6DFDF9DEDB341280F90DF +:10373000FFDBCF3270FFA9FCBB1244BCBC664FACB0 +:10374000427F84673CC7B367BC6C4AB3C60592C767 +:10375000C3783E19133AF353C05BF577C724E33EB1 +:10376000761D9AE8C0D70B986A47BE5EC4FC2F64EA +:10377000A23E877A23C0DF64614AED63835EACBFFB +:10378000140C058483939C231169F39D9C1FACE367 +:1037900050C53854D1BF9E4E1B1750C7437A7A8C00 +:1037A000FFF1EF4191EF8F53098FD7B29E5D388EB5 +:1037B000FFFAB72FCE48A363F8D5FD190C9708F090 +:1037C000567D4C21FB18F43FF24F577F9FFBA79B80 +:1037D000CBBEC7F7C306EEEF5813FF6105E677DFF0 +:1037E00006340502E26CE8858750CFAB867CAAF7E9 +:1037F0005D0E9F05BB14E5D397711F92BF56AA8536 +:10380000FF0FED4B1E76BB0791DF224AED7E398E0E +:1038100031947BDF1AC7CF37AAD1B984EDAE952298 +:10382000DCD711B5637B7F99E0A1726BC606CBC66E +:10383000939D1FD93E1EBEBF86748274EF8964A318 +:103840005F6183CCE922FCB2A2A19FDAE609F8D13C +:103850000F79CBCE947CF2F703FDA01DB451E0515B +:10386000A78FEFB4406A90674077F3B19FFF7C76F3 +:10387000620ED2C79DBF2D51719D1BB1FDF458FB47 +:103880000C5D5DD09F92ECDB8D7ECEF9A854205D5F +:10389000962446F664929FAC6E7F1FF273F578CE45 +:1038A0005FAF79ED95116A97F3A59E7F8718DF1DAD +:1038B00062FDE777BE3402CF05BE73CCAE39B1DF0F +:1038C000C26E9FD1EFD34BCF758F146519E671E7A8 +:1038D000A193DCFF879E42A8FFDA6095C66977B99D +:1038E000A36979B17E58BAEDF35E7B6214E287D1A9 +:1038F000F8747A541C89C1DD6EE3F8B9FF0EF8E163 +:10390000BB3A3F8461BED73AD5E46F42FBDD80BA53 +:1039100028A4C1873D0EA4C75AA651BA820528BD66 +:1039200095851D48FF81F07D0E06FDDDCE3AE8FB52 +:10393000778A6F1E89F09DAC678617DABBBEA5E15A +:103940000574CB2C6ABFAF6228CC7B61A4E6054C22 +:10395000173C2A9D09ABC44FEBB0FF6E29B47E180B +:10396000F4B7ECC9B2F5C3E1FBB50AA72F3691B1A4 +:10397000C750F7CBD2BAC3B06EA7EF1B5B807E0BEC +:103980007D1E1B057EA78DF36FC476AAD731A29743 +:103990009E7F73D2FAF5F255F11D2786CB28BE7AA9 +:1039A0006E427ABCF3B7CE54B22B19D7176F17FB00 +:1039B00037C2A82FDA71FF2638F430F2C71D616EC6 +:1039C0004FAD89FF3BD5EF96644D1A09F2D8CEFD75 +:1039D0008B7FB6BB3C8D1AF26964249D7B39E82C41 +:1039E0000AF987D6ADEEFD44E2CF2F65AE4FB09118 +:1039F000416FC1E8D87EFD67395294349AF6F3C717 +:103A0000502E1CF582DD8EFDA6BB343CE7FC734ACC +:103A10006424E7FFDEFD815D4C88F915EF413D38F8 +:103A20003DA607AF891FC9D0EEEF96588F3499F4A1 +:103A30001E9A9754CE3A90AFA5E21F04715C3B13D7 +:103A4000984729E98BCF835E3C10F952D65C34DE6F +:103A50008C00F911D86097D62A5D3A0EA0CF2AB40F +:103A6000EF9DC25F76EC7FD208AF61E8FFB194585A +:103A7000FF6A19EB60208724CF0F484FDB097A9A41 +:103A80009201F5E2434FE078642FF3A0BF285C2E4B +:103A9000FCB60E8ED74BF1C8F5AF37C6733F6D231A +:103AA0004E95E4A527C78376AF2D9EC639D215EC77 +:103AB000427C6606873D64B48B8F650E21F85A07F9 +:103AC000977BECABC60C943F6EA686717DAFF54B31 +:103AD0005A2BC987EE26B4AF170021907FA8D86E65 +:103AE000E23366F15F0119913F7221FAAFC8DFC47A +:103AF0009E477FE622F4674A68F6BCAFE38DFC5729 +:103B00004F8E055B0BD7D5068608C8912C56ECC2A4 +:103B10007134B9172623BC2EE15A3A57B2CA8966C6 +:103B2000D0AFA24E036C0BBA3C03E86FBADFC6B14C +:103B30002389454136D82E64B3689FFDE71C42BCFB +:103B400034A6C3F8596C1CFDB5DB6819873555ECF4 +:103B50009AE74AC6A574F371D92F64D1B8EE15F26D +:103B600014D693FC5E358BA3EFA4909F751D95AF83 +:103B700071B9C378EEC69ACCFE5E7DBFD4D32C6CEF +:103B800001E6F3F84E4784D32D50EA60B154F01F9C +:103B900075E7CCCFB01DD04AD92983DF05F59C53FA +:103BA000FA3A2B3CC575A64F78BE182BEF477F55C8 +:103BB0007FF3BBD2B4B59ECEA863E73B3B562F4301 +:103BC0007A3FBF13C42C8CE767653573ECC80F0FC1 +:103BD000C8ACAF7307540BA2A6F1C6B3A8494F4BAC +:103BE000B5C0C32CE54759F2C759F20B2CF0244B52 +:103BF000F9720B3CC7527EA1055E66295F6BC9BF97 +:103C0000DD92BFDA02FFC8527E9D25BFD592BFD993 +:103C10000427168E12E71E0F5AEAEDB1D40B131DBE +:103C2000C5F8044C363CA7622ED2C39E3A2D931E93 +:103C3000D6F15CE7B85F02BC2F20D129C5BED3A75F +:103C40005AAF46BF71878DE0EB0385EBBB55682704 +:103C5000D1DC4EB6FF7FE2510F781AD63F7A15635A +:103C6000FF8AFC7415DA251EE2ABDF82DD8469145D +:103C7000EC26FCFE1CD84D98FA3E965FA1F68FEB21 +:103C8000C409926A30F98BC9297B6D87EB24C6A9D8 +:103C9000E8F451785C8ECD13FE5FFC7EBC099EFC7F +:103CA000696A6CDE0CEDF461A6FC32207A63FE9446 +:103CB0009E71A6FCC58BC79B60366F720C26BE3406 +:103CC000D3C7B546FA30D0F3CB8007FF5531F8950E +:103CD0001F2A14B7D1F9C11AF62B98EFBE83A9BBDE +:103CE00051FE3FE54B684A4D063BB390EB3FFB9ED0 +:103CF000DB4CF87C25A97D2EE2E59AD3324A0A56A0 +:103D0000F61C8BE23A698718ED1B0F16AA545E3B2E +:103D1000D425AB80F7DC835DC382542FC470DF7879 +:103D2000F6901C5907E3E9CCBD7F13B6B317DA410F +:103D30007DED95546817E5E2C7D0AE4AA3BE781171 +:103D4000E4412E2A370A9DEB55F17398AE61787ED7 +:103D50001D5BE7EE785A67E6F2CF80FA1DA57C1F5F +:103D6000D8173D3B230FDA3FE777F5605C48B63F55 +:103D700091F6B70E3F3FF7DA172D27B9CBC2FE3FBA +:103D80006619E2454E0AFC34EC3FBA0CF7997D8780 +:103D90001D2AFAD7116F61F8FE0ED04FD889781B13 +:103DA000EF5885FBEF50853DA6A17DEAA1EFE8B86D +:103DB000761421F73164791CA0EE77972F5E83DFAC +:103DC0006DC2CFCE0EE3BA2C5E6C8FC503D1BA1A8A +:103DD000E287CCF5C5BA9AE3835E063383E6B55530 +:103DE000DAC3CFF7C3CC5564A0D3834B1CBE422AA1 +:103DF000FE059EDFAD88963B7C680FF8BD6793019A +:103E0000FEF2E402CA7FADDCFB458316CBF7C81E89 +:103E1000CA5FDFF4D1E705B86E2020F0FC96B571DB +:103E2000FFBBABD73F6FF0A7C3F89EB5B1F57740A6 +:103E3000F98E62A707DB5B1A34FBE13B727E1FEF52 +:103E4000F75DEA87DF1B952B314EE95A8BDFDE1ACF +:103E5000D7F14121D7477B049D5585C3151E1FDA35 +:103E60008BEDEB711F9C6F8B925CCF3B4DBA11CBEE +:103E7000D34EAE4BC0F9174ADA18A8229DE6F8D205 +:103E80000AA5DDB3203F3EC745E7397B9FE372C6F5 +:103E90002AF75F3D782A1EE9A423A2D35B17D1DB62 +:103EA000BE83C00FF0FDD9E70A06DCBFDF11F4F4D2 +:103EB000B22DE21E689F9E9BA3B0B0F11C44ECDBC8 +:103EC0004B83092C6CA08FF95A9A096ED8EF20BF4A +:103ED000C4C167199D033D69EF96BF0DF33B50E2E6 +:103EE000F4AC23C9C8CFE3C60BFA76B2FCC655E2E0 +:103EF000FCA5D513B36F0F4639FF1E64EA74C4974F +:103F0000067A6518EA171CEC96513FF3D4BA43E8D9 +:103F1000DB2D38EE30C929A7668635E688C9211819 +:103F20004F9E05D6FDD9B88C185760C583D59F3DE7 +:103F30007442A229CE66AFE5FC2E573FBFEB2AA400 +:103F4000F69EBC5B5516BA637EEDD8FEDD40F8DC0C +:103F50005BEF92B07E41F4335985CA79079982F4B8 +:103F6000A8A12709F9E220A3782CBD3DA9CAD94907 +:103F700072E0D8283AF7DD77EC2CC56D1C888EDA14 +:103F800083710C078E2D4CAEF5C5DA675DE974CEF2 +:103F9000A7F7BB4FEC3B580EC7BB4FD0F93E905B29 +:103FA000A97DD08DBEEE3A7CCD21F3BE626DFFD2ED +:103FB000FA61DA4F1BF19F50EEBF0B83E513D01F60 +:103FC000C63A591A8C7F7EE17749DFEDC59B7B218C +:103FD000959B9B375BC6F3AA6D235377A31F0DF404 +:103FE000627917C0691AC0502F3DCCE344D38B4788 +:103FF000EE26BF83D013E78E33CBE17D196FC6DB8E +:1040000071DF0C27125DCE4D32E7CFCD7B76057E7A +:10401000FFE562978AED4A794B87A2BF733BE209BD +:10402000E4E7EB0757C777F7819721F650CA40FCC2 +:1040300033A4DB46FA6DDA850CD26FE716805E3D5D +:104040004079E70585CAEBF086B86E2FC5877A7F81 +:10405000FAA7D3C6EF19A97188AF6CFFDD2ED42360 +:10406000F6650CACAFEBF3D0E1FB7BF7576718F1CB +:10407000D7F64406EDAF1BAAE3697FBD7B02F713B9 +:10408000B401DE70BCCE604214F1D396C1681FDB70 +:10409000ABAD23F9737F52978CF18965C08F889FF0 +:1040A00096092AD5CBCB8832A463B716C80F5239EC +:1040B000BECFB665C03E0BF53B6FFCC1583CCFD9B7 +:1040C000EB857D0CD72D1A3D86FEC341E36586F650 +:1040D00057B3C4685CE19FBB290E49DF7707A16D28 +:1040E0000E4BDE7690F79FCDBE2DA37F606F0697B7 +:1040F00093737F552BB7A31CD1E408F281759D55AE +:104100004F17E95DCC9D4A7CB459F0818EBF0AE51A +:10411000C93D68EFEE63AE10EE2B2A0BB98CFE1A88 +:10412000BDFC76A1AF6D99772095E6A7AD7E690CB1 +:10413000D257B59BA45B85E2FB0CFD116DD5F11E3A +:104140009CDFF6AACDA9C6F3B24BFB75CB186FBCAA +:1041500001F4109497A951B50CE92A8D690D98EED8 +:1041600010E51F10FDFE54E8890FA19E7815E1238C +:104170002E1BFB0F80DE09F8DB5527CB0ADA3F0741 +:10418000E588D2879DA2B71711EDED12ED3D2ADA31 +:10419000DB7028B5DC85786CE1D1AB99EDE13207B5 +:1041A000B43B34ACAD43BDA842F9EAB013F1146698 +:1041B000E4D77A54D883BB44FD7D07CBA5381C0FC8 +:1041C0000648833C4F6F0F6EC4380D4902BD07E4AB +:1041D000F5C36B79FEE0381B9DB73FFCE33904DF84 +:1041E000EFE6F053825ED3DBFD1A9E8F3F2AC6A70F +:1041F000B79FDD7563725F7E343DDD2BE6D721C648 +:10420000F5943D287F00E3CDFDA312090F60B7E9C7 +:10421000722EEFA06CDA3FF2A3F12658A79FCBC90C +:10422000BBF53179D73D0160DF9C2ED90576A4DB43 +:104230001FF2A38AD42BEFD2B9BCD3E3381A55D0DE +:104240007733315D982C61BE885FD8C4F43F5CCE73 +:1042500025F7CA39CD85F4DD2CE6DD22D6D519F651 +:1042600093FC7466C99108B697B58EE4E579D0A140 +:104270003C244FA7B2BECE715B04FE1DE116F24B8B +:104280006CB4B50FE86788DBC1E59C726124C9B9DD +:10429000F2A92E17F6B3D1CDF7FF8D6A4118FD4470 +:1042A0001B555B88363566D03F2542976A1B2C8E9E +:1042B000D64699F279BCF9D40BE4B76A4914F242B4 +:1042C000ECB309EE5BE631F20F680CC7A9A83C9E7F +:1042D0000261ECCF157473FF8DCF668ADF7065C9FC +:1042E000279D4964CF9F36F6E3C8B099F43AE5328A +:1042F0007119C38A12FB8CB765E97DD3476FDC85E2 +:10430000EEAFE8A79C958EC6B98AC99E69C962E4DA +:104310009F52D40292C7BB7C3C3A6E571DDFC77FC9 +:1043200082401FED350ABAD06145A7BBC2021147D2 +:10433000D9BDF12A68EFDE3FA41560FB877D0AF93D +:10434000C75B4AB3F720BE5B7C37131DEDCAE0FAAA +:1043500085AE57ECCAA895DFC7EF2A97B7567FC43A +:10436000AEBACDD4CEF90C594539B441DDECEA6B87 +:104370009F6A17F4B653D0ED1382DF37662D1C30D9 +:10438000CE409F975E4E01F1A7F5D1BECD6DD657B9 +:10439000B28F0D2C3FF476F5727ABB3ADEFA6BF7EA +:1043A000A6226E972614FAAB8BC81FE5A7384F5B81 +:1043B0009D63FB69E00BA56206E92F2D595CCEBF1A +:1043C00092B59A09FC44D02E6AC9485D3003D6A143 +:1043D000294B26397EDF8C2697515FB0E237255373 +:1043E000A6785EC6260D3F6C43FA6E77D13E9225C5 +:1043F00053FC545306D7379A6CFE3EF9D7DADE46A3 +:10440000556F6FC20D87B3609FF6DDCC5AD263E360 +:104410008594E45362AE42EBADB0AE2E8C07636F71 +:1044200029146FDD3F1D0FECA7BAA748F7CB0CECA2 +:10443000AFBA9CDCBF5C3FBBEA52F1E81AF625D666 +:10444000837121AC3095E4EE08F8E75A439C738AF7 +:10445000DFA2DF8A7D6144C8BC0F8C8D98FD277A6E +:104460007B97E367AB7EAAFB5FF77670FEDE775043 +:104470000EA3DFEF3C73119E9FEA87AFF75AFCB0A3 +:10448000A8BF0F24A7F376B8493EEFB3B343523227 +:1044900091A7EA19CC38EB42BF0F97049F41BAF5B8 +:1044A0005DC823792E1D3A4A71AE80773FE14DE316 +:1044B000E77EAC34407A74E37C80118F1D8B28BF7B +:1044C000F9FBCC43B02D320CE5F19382AFF5713E90 +:1044D00099195D86FAE2BEDF7C281BE3F68F16F1A0 +:1044E00073B55C5712DDF7B18EFBC5226E5F3B6D75 +:1044F0002C1C8FE7DACF713C7B99C781F47059BFD0 +:104500007055B48AE2856599C7F55AE6BD17D3A1FF +:1045100038FFC05B45782F40E3F36E0B04C2C84FF1 +:104520004150C4D864287390CB6B1F0BD07C6B3484 +:104530003EFFD7B58504BB011FCE7C1C4FB5888FCD +:10454000651EE7506C87C7CB06EF006D68785FE3A8 +:10455000E4F4D58B5781C7D735994D453DD2EB2033 +:10456000FE63395A15B5DBCF3CB68A797C5212F816 +:104570000F9A879BCFE35E20678A3F4F7250FCB94A +:104580005C183C5744FCC6FCA827DEBB44253B9284 +:10459000F90212FAB158E0CAF6A52B2E97E31F10C4 +:1045A000FF8D49C3580DEE3FAB93285EC6300FC751 +:1045B00044BC07E06E0DD03E1FD0F1CFFD7B356EC1 +:1045C00007E9FD975BFF989E147019F9AD29839F49 +:1045D00077344A0117DA1FE13F7039A6F7CF66201A +:1045E000AEA0BFC18EDD463F4C4CCE48E2FE8559A1 +:1045F000CE3859AAC9CFF97FDAEF9E3731539C776D +:104600000CEC7FAF99C8F83D477BC08BFB5776D742 +:10461000B719EAC1E7DD7DFB95F4D4AA4736C7F99F +:10462000ABFA8A276A39E05869E4D76513399F2EB7 +:104630009B28E21E4011433F4D932A935C6BF4D4B8 +:1046400032B48B40FFD4D800FD639CAF51FE625C56 +:10465000AF49CE7ECDF8C3EB268A786BA1A7AD9784 +:10466000605CE9B4DEDCAF827F005EB679D06E7E3E +:104670003ECC5625007D9E10F4A9B7ABEB6FB96216 +:104680007ED1C9FEA5489FB9886748C71405AA27E7 +:10469000C2F727F717915EADD3EBBDC24FDC1F7F8A +:1046A000280E16A438FD00B703B259A56B411FFBB5 +:1046B0009CAEF7C7FCCC9C9ED77B16F2349DEB4199 +:1046C000FDF1A5AED7E8E7882DA8675D85F5CAB9E5 +:1046D0001E22F6C5FEF06AD57774B9E5F49AD7279D +:1046E0004EB5EC8B572827504714F65233E2D1577A +:1046F000DE258FECCB5E722F36D94B5B7CFC7C6069 +:104700008B58C7B6906737DA796D3E99CF6BA5673E +:104710003733F88786B37609CFF3BC2C24A152A790 +:10472000D3FB43022F3F11786912E7300FD7FB0507 +:104730003F5412FC487D90D2D6FA9594367BCF52E6 +:10474000FCC14FC110C378AEE4E8CF49DEA7CE6309 +:104750009E38A0A7B49D3D5194B32C144FF127BBB4 +:10476000EB43542FB5928F77E7CAB84770EE3F9B63 +:10477000E8107415FCD9447E2FA6DB0E74B85CA734 +:1047800051E61F4CFBAA3D125E87ED97CA118CDFE4 +:1047900090B01D80DD3358645626FA5F7F40FE9648 +:1047A0004D7F50F8BE21FCAD832DF4DC16E9B51F1A +:1047B000E350A86E29E5F8DAAC31D23B3657A6367D +:1047C0006401EC2873F5607CFF919C4EF2636F29C5 +:1047D000E5E70F834B8F466BA19FA3C54E0FDAF51C +:1047E000A9F33AC9EE02E227BF6CEA3C6E67A55610 +:1047F00099FDB1596D6638C5E28F75F7E39FBD52DB +:104800007E7FD5C2EF0CE904E9C027D3FDF118FF84 +:10481000F410DF38FCDC2FB8D9C7CF61EEAD3C30E7 +:10482000A3B290E889CE6974BE77E472FDF77CA9E3 +:104830006EEF7434AD04788EDF457666167B624683 +:104840000EFAD3F0DE89663C3FEC20BBE71DA10FDA +:10485000354ADA4BA30DFB8D23921B47E747B30B79 +:10486000E224833C45FFBB91DFD0EF6EE2AB9C546A +:10487000D379DB266D603F60ABA0F37509BF257F60 +:104880006BAB2D32A05DBFBD7814F165FC0E07E95E +:104890008D09170653BAA594F7F3A43D28BF9F4E80 +:1048A00074437EBD2DA5074CF69D2B6CF6A36CF2D0 +:1048B0000D6CCFDD2BC6A7974BB6F5B0BEC6E7296A +:1048C000FD7AF69C6E5FEAE53C362661BB1E9BD9FD +:1048D0009EB3EAFD238BB99C57BCE7AE3ADD479CFB +:1048E0006E42617078B1E19E96E2DDF527B4F3D8AF +:1048F0005717C95FD91B3720ECBF785725D97FF7E9 +:104900006A32F9519F9CD2396C34D21DD84FC89766 +:104910001BE318D1579C8F9F47DAA7F5B080FBD2D5 +:10492000F6589601AFA3906EF97ABCE81D25A11F39 +:1049300036B9B2038C34902BB68E28EA2FC96E5943 +:104940006B50F17BD48F71652FCE3B40F269B35B26 +:1049500096918F8FCF4B25BEDF02FD523CA16FD4C5 +:1049600046E4FBF00A59C3630D17E378A17966A208 +:10497000DFB3D385E769C31B926F41795756AC709B +:104980007F31EE0F067A6FF3EA30E7B339C5FCFEEC +:10499000E6A6CAB3C7B2A0DE03ABC868256D0AE5B8 +:1049A0005AB3C6CF213C5F5D740D86FA474B3B5D21 +:1049B000677C588FDFD76DAB940FA31FF101945321 +:1049C00030CE574A47C57543F9CDF30EA4101FB337 +:1049D00044C2DFE65281DFD9B5ECCD74DA07885FD7 +:1049E000DB4A3BDF1B8572609E4CB81B3668DD617D +:1049F00062631662F44E04C683C110ED9E1F84A745 +:104A0000433D4FB9ABC7598CF778CD74B1A5B49677 +:104A100035A7C7FCCC4FE6D7B276801DF339FCC072 +:104A2000BC4E3AA76DAB74A8A8E71C7173B9BAC5A0 +:104A3000C3FD618975E6F61C53F644B3845D2ADE36 +:104A40000B489A3F18E3C4B9BC8E9F7720BC02EA9A +:104A50007B86290CCF3FF5F3B57B87F2F331ABDDD5 +:104A6000EB64350CE5CB7971FFED9EE2F2E8CD0009 +:104A70003F08721AE5F888BB603F037888B8DFA664 +:104A8000D36FBCCF2C9747041DE6715AE4B28D3921 +:104A90004C7A6EAF7EE9B50DA85F36097EDC20F456 +:104AA000CB267B94F44BD8A7C88EDAA078F2C9CE77 +:104AB00004FE1C0AEDD95233482FDB5EACEB95A106 +:104AC00062A4BF2D287735C4FB3A26ECFA90670024 +:104AD000FDC5EE31E3DD95618E87609E304B2FA2E0 +:104AE000673D08EF36663B83F6440BC6224BC67D16 +:104AF00023CAF70DE632D15B5BE501FABE49C84730 +:104B00008687777DE83DC3437DEB5143579AC73392 +:104B100024986A2ED74F7B563DEA3E71BF39376CD9 +:104B200063E8A7BF3FE1C34EA4BFA79FE1FBF6E543 +:104B3000EE431F7E86D3D7DE0F78DCDDDE5739FCEF +:104B4000E4070944DF8D895DCB70BD7E61D786E7C0 +:104B500043FAF4AB8F0FAB8179FFAE989F1B3DDD1D +:104B60008FBE7BA458D2F59B23C5DCFEFC5C31E8EC +:104B700037CB64FF60926F55DA0D467BF1E192E02E +:104B80004B2867AD76A3749CDBB70E6511D969B964 +:104B900060A7EF49217EA678BEDC95E2BEA92B4036 +:104BA000FC973B4F25FF8553D8EF23EF629E06D03D +:104BB00023171706FF40E3B1ADF6E339B3EF47C95A +:104BC000741F0E463A0EF70B37E3E707356FF1F81F +:104BD0006B47D78866D4733AF4F8408BDDA9CF775A +:104BE000BFA0F37D42AFDC9FC9F1F6D4EFCCFE8FBE +:104BF0003F179BFD1F504BC6F8B7FD475F8EAFE9CF +:104C0000633FFFCF929A3F1BF71D5F87A6603995E0 +:104C100079149C17BE79407E9852CD6B7CAFA1E38E +:104C2000F8C0E78F05CF9BF7EB6B0E59ECAEDEF8C3 +:104C3000CF8084F714747A7B2525648A3FBF1C7D5E +:104C4000394B74FB95115DADB9236E8F1EA787F0AC +:104C5000979BEDE48F884E0E384B389DB8F09D1D24 +:104C60009D4E7AE36E44F9659BC7EC11769B5B46DB +:104C70007A92387D2495E8F4E64F2A81FE9A9706C9 +:104C80005330F58D7B751C9E33CCCD7B699831CE2E +:104C900032D7E2DFD5D3BA124ED7736E881CB41365 +:104CA0005D6CAD3E0EFBC29C6F46FE6A87F5BFABE6 +:104CB000E4DEEA26A0A3394EEE3FBDA3E4D73BC312 +:104CC000D0EE3D380E80CB4B9EA80E43BB5327F849 +:104CD000BF81FDBF5AE4574B68FE33E8FE858ECF97 +:104CE000FEF9DA7CFFC28F3E7B931F3168F26B3492 +:104CF0007AB81FB1D93DF07A7FDD78D2FF290A96C4 +:104D0000E0B8ADF1A4B179B4535CF095CE6371A174 +:104D1000BF0CDBABC3F9C03A4DCF9B2D470A71DC0A +:104D2000420FB9CCF8950B934DE7E58A4DBCAB31FA +:104D300063CD9A354522DE60742C3F20D651B930C0 +:104D400095EAF58B3F11077BB9FEFFD938D833457B +:104D5000C19B71FED638D87F149F3A5D3C5CE45FFE +:104D6000F5CFD097BE1E20A7EB783B6C955264928E +:104D7000D3DBDF247ECBA07BF97ABDD8BD95D8FBF1 +:104D80001B8DB4FFFC98E4415DD8E941FD2D6932EB +:104D90008F5BF7611CB687F8B209FB59A344C7E1E2 +:104DA0007A7D2947DF6B34E80FB94C438F116B2DA7 +:104DB000796D27BE6BA138BA358CB06C7DF6F99D44 +:104DC00095785E6103390DCC9B34ABBBE308DAD92F +:104DD000690EB2B39B66F3F70F9ACAB8BCD852C239 +:104DE000E5EC3691DE5FC2F5897513FD9BB1FF9F3F +:104DF0000AFC254EF46F45B9A3C3EF4FF06F37C2DD +:104E000080979F0AB9D42299F7AFED473289AE77E0 +:104E100072BCF58D1F5627FCBCBA9C661C766608D2 +:104E2000FFBAD007F04ADAA4544A59450188B49C25 +:104E30007022EE47CE9A4503D2E5897AF3799FDE58 +:104E40005E70AD6292E72E9F59DFD83658E7873003 +:104E50008F0BF7DF467A798B7760BBF2E57A737C4C +:104E600089DEDF5C5B870DE97FEE059B894FAD69CD +:104E7000D9779F71A1DDB2293461C07E605E5D3358 +:104E8000C6603CA48B52FD7B70ADD435C330AFF708 +:104E9000C3DF27BD6CD35A7E4ED5E81BB584EE6FB9 +:104EA000B4D8291E6353067B0DDF09DAF48642F17C +:104EB000A27A3B9B1239BDD436C575CD30E065531F +:104EC000AE83DED948084B8FD37DBE7A1E77F96159 +:104ED00009B74BA6FB3A18DA2109E12FEC18F77253 +:104EE000BA44A5755EBE56720473F1DDAE1407C6F2 +:104EF00073257898DE4E04DF219BEEEBB1E3BC977F +:104F000087F753BC4C02C0587E794B2695D7DFCF2C +:104F1000A86D524CF1750ADE0B1A8D7411A4434929 +:104F200027D215A47188772586FF0416E5F622EBB3 +:104F30006203D9C74F475FA2B858064CF2511FFE13 +:104F4000F38625F1449FAD3F94843FA97B7D2D9E40 +:104F500067803DD16A88E75B81FF84A93B6F0CDCE9 +:104F600086E583631D2AFAE156E49CB1A3BE74145E +:104F7000EC0DF413B176FE5E860BFE623F9961F391 +:104F8000FB1A41CBFB193731433EEA5FC24F183F52 +:104F900049F8790A5801F2975A1D217A758E15FA47 +:104FA000B7B76F7D3941C45959E3DA36F96AE38DF1 +:104FB000FE8976BF4C710CE754467134DB1C618A64 +:104FC0006368CEB485D6A1DE27E2326AC5BCE13F74 +:104FD000CDF84EDD7211C738F95399F94DF1D3F17F +:104FE000CC6F58C76917524D70191B6E2A3FDD35BB +:104FF000DA945FE1B9DA943FCB3BDE04CF56279BCE +:10500000CABB58EFBB7E3CCE8249146741556453FE +:105010003EF7B3B5F0B8563FFCC57549F5F7D83142 +:105020007EB95ABCAFA1D3417326B763975BE22325 +:10503000D258388CE73837005D44F15DC290394E64 +:10504000D6C5DAE8DDB44BE22EC47ACE9864F1DB43 +:10505000F5B37E3139C3E9B37FB9C5E360B3D59FFA +:10506000501C17ACD7DB595076A658AF998B5752C6 +:10507000FC88E3420AF3233D3C37F1A96CC89F2E1C +:10508000F0E3B005C9FFE4B8904EF96116183B0A89 +:10509000EDFCE30AC5A939F05DC824B4032DF12C59 +:1050A0002A8F6771E09751A67CE1DF0C52BC4A253C +:1050B000D021B63BEB82C4FCB0EF3B168BF8152F2A +:1050C000C79BCE1FD305BE6EAD182DD17B8CAAF920 +:1050D000BD1107E2358FFA31ADC77D8CE3F54E2B5C +:1050E0005E675C993F3E51DEBD02FD4F6DD54AA51E +:1050F000F19CE78F93F8FEF9A3499238B7B7AE83D6 +:105100002789AF435C12CEF36478D180727DCE855F +:10511000D1A4F7F4EE2797894B9E23F4CE6D49E690 +:10512000FEB259654A05ACCF7B8B25D2DF4EAE1C53 +:105130004DFADCB979FC7E861E6FFF9E88B73FB9B9 +:1051400052A9F81694FF2BFAAF3576499CBC1E770E +:105150008F138C1AEE5958E3EEF538FB577EA850A2 +:10516000BC7F788A24E216078EB3678B2D71F55FBA +:105170003BCE3E4CFCF85EB144E700E39405CD45E0 +:1051800085788F927D81F7E7ACF70856AC9CDE8C72 +:10519000EF6DEA71F6DF5A397EE67AF22BA5D11B64 +:1051A00019D72E9E47F541A8505CFE97274F3E8F9A +:1051B000F11DAF957B5737F07794A8FEB7987A9694 +:1051C000EC5E4BDCFDFAA673B67150FE7D901714B1 +:1051D000976F89C37FDF1675A1BFF3839DDC1F69BD +:1051E0008DC3FF20E7A3C4BEE2F03FA853AE280E54 +:1051F000FF5D418F55E1C83C5CE7AA1C8545A4587A +:105200001CBE958EFED1F8F69649DC8F69077B238C +:105210003915E3FB61BF43FFC02A89E2FB6BB494FD +:105220009928BA7AE3FBE13BED874DD26E3C9FD1E2 +:10523000E3FBDFABE3FE849A950AE57F5028D13982 +:10524000953EBEEE48AFBF89DE51FD20F4C83C2C30 +:105250007702C68DE54ED48DBFA238FF7F76BE3A69 +:105260007FEBEDBC8D4A13CC77E31229B24742BEE7 +:10527000BB91EE7BBFC2D829D467B7E52D5A8FF713 +:105280003ECF31F626F25559FE5F8F5C44BDC7C74D +:10529000F50790A376AC1FCF5C27B17C826FC1FA73 +:1052A00009788EE292F6CB50BEAB9EBF2739271805 +:1052B000A1FD76916A0BA91A96B7C8591797B3F151 +:1052C000825F0DF9E2DC3D60C7B8EFB9A576DA8FF1 +:1052D000E7AE8806E8DD051FECCB99AC773F30DE02 +:1052E000E3447E588CFB37F4F78DAFAEABF83E8EBF +:1052F0004B8F2314F427C35FA47737F3576C83FCD9 +:1053000078E187DC94B3DB8FF2642EC8139CC7E28C +:10531000C566FA9CEB7F84FCAE783E3606F217CE6B +:1053200033E7C75BE8DE3799C745E9FBE326DF4291 +:10533000F2DB639C099ED3BEB200AA24436AEFF05D +:10534000B6037DBC9E3BF330EA65EE6D3243FECB87 +:105350009B2CE2137DCCF775F653E78DD1068CC7F5 +:10536000DDC45CDD18F7F7DE77F97A2F05BDB512DD +:10537000C6357D854470461D7F7FE01B217614F77E +:10538000C5A5C0F7B3A0DF8C95D10AA4CBA5ABB857 +:105390001E7843C8A1FA0DE790BABED4B0649CE36E +:1053A00056C87F77A8C29C88DF16B35E08FA834987 +:1053B0002FBC69C527B43F5EAA1F72BDC2AA27C60B +:1053C0000BBC5D37D9AA27B6D33BA6CE6F0DBC2F39 +:1053D000ED1476CD09CB7B79CBF573683CECC33803 +:1053E00011D6C116427BDB96FCDA65F4EBE97192CB +:1053F0000F2F0D06271BF827C1E771D03B4A3957FD +:10540000B61E575ACEB01F26F2FD70A58C57335EDC +:10541000F52BE49F7EA390C7719ECFE1E714B1F214 +:105420005137BF77C6DE34F2830DF107FDFE5ED83B +:1054300093DBCA07B63BBB44B90AE5781BD2C31B52 +:105440006F29748FAE6B0753F1096FBDDCEF675E98 +:105450006D577DB1F3C885D1B123D43EEC93D69975 +:105460007FB2E1BBDEF3A33F67981F6F8B788DF1AE +:105470009DAF8A765B273CC2F05CEB8D715C0EC7FA +:10548000173AD538A4CB9C6813DA6519393D33BE79 +:10549000877C097C8DEF6786599784EF33C7E7488F +:1054A000EC41A2C35F84912F8F835E8F7478899CB7 +:1054B00089809C291A48CE44489F8BD73E11F1C75A +:1054C000113A079F27E4C61B39D174BC0FA6CB8FB6 +:1054D0001CF86BF413EBE93C8B5E3CC737B07CF8EF +:1054E000C6574FB5C4E1B8814FD14FDE0AEB8EFDF0 +:1054F000BCA13DE2427C04C6D6AEC3756065AEEE8B +:1055000031308E56FF981BC98ED36EF5E0FBA6C7CF +:10551000CB6EA6FC37CA5C6764C87FB3E2AA11AA47 +:10552000617D5B1F60538388DFB18F7B6F81F9657D +:10553000E7FC577D10F4CC37C5BBDABF9FF9CB1120 +:105540009986F5183FB9EC3793511FC4E003E08BFF +:10555000718EC8A8BEE271757A5DD6F973A247F460 +:10556000ABC749FDD3D529C187EF88F3A29A96949A +:1055700099FE3EDBE5FCB62C9BD1FB172BEEB33B33 +:105580008CFEF3EEC9B2691FEB5ECBDF995E71381A +:10559000CE916DA0BF772773BB3E184CA17738AC76 +:1055A000FD7C3AD9ACF7AE68600E9C67303AD48186 +:1055B000767CCD8A2BABB76C9C18E7E1A18ECC44EE +:1055C0006339EE97AA69EBBB1D3D8EC5BFA29CDE79 +:1055D000DD8E13EF587C2AA9F4DDC5FCD121B0BEC5 +:1055E0002BDAF9BDAA4BF573EEEF74697E792BD2F5 +:1055F000473A7FEFB739BD80F8DB15BD4DC6B85FC0 +:10560000077CEF6B5DDAC4FEDC0A7A2FEA176E5B6B +:1056100094DB4939118A7B725F70905D137F613032 +:10562000D9359D4B6E27FF8EDE7E7FEBBC5DE82B70 +:10563000ADB0CE98AE17EDB7D57BA9BF84D2149A82 +:10564000C7605B90F6C1C15E0FE95B2E1797C74339 +:105650006C212985E6CBDC830C7EB92155663B3C69 +:1056600021C76C873BD2534DF9D1C91C8FF80EA4CA +:10567000F1FBB271FEC172660C9F158A7B1DEA397F +:10568000AD3E1E1FDDEAAB95DF43F9AA2914CFED2D +:1056900009F373DF05C2DED0E5E98240CF62B43B97 +:1056A00075BFD9B68281F7215D4EEA703CE8197D5D +:1056B000D1FF35A522FEDCC7F317E0337786DF0183 +:1056C000D04AB9DDB6C006382BC06841EE2F9F6BBB +:1056D00039F72829E57CA2A7D1C9C19252EE078EDD +:1056E0007AFA38AFD3F5BB788DEB779056DC85FA34 +:1056F0001EC83F99E42DABD85A18D393BCBE7F5235 +:10570000AFB3E86D6EA1B7C5EBEFB95AF4B4C00CF6 +:10571000B31C1DCA22A4A72D147E8A4BF5306E4FF0 +:105720005BE56D55A9F9BE47367B35C0E5297FAFEE +:1057300074DBB8B387F11EE6791F8F9F3AAE2D3226 +:10574000E96BC77D511BF9F5847CECB2ACEB3CBF37 +:1057500042E77FC741AFF380DC3D6E8F66DC07EB2D +:1057600092AE7D730E58B8EC78FE8BEE1A1FDF5F99 +:105770008C7EABD7B5239E938676FBA3239D6E1FAD +:10578000DFF16818E936AC32B24FE2849E74648768 +:10579000BA13F53E16F64A495319DB2AE8299BFD50 +:1057A0001BF953B6E50DEC07D6E773BEC4BFB6745C +:1057B000C2007A138C1FDF35DFB6E417AE5A809B28 +:1057C0004B25D37C405F6A2E1D64A477AE2F6D7A83 +:1057D000808D447DB733D75115E9438E6CDAD1D132 +:1057E00042E3679E5349230DE3CA3BE095DD386FE2 +:1057F0001BD9912C8BEB6D9B7E9E9381F3E94C7CA6 +:105800006494DA87DE76FB64FF369C87B7D4BF1DCD +:10581000C7E3D2DF6D17F597D8D8F3C6DFD9B0D676 +:10582000BF4BD8892C8BEB6F7A7AB9F5D92805C391 +:10583000184F08363D9D6358CB3D25F8F8ED51C112 +:105840009581BECF419F48369C83EAE389620C3B39 +:10585000D4BBB3948FCBA572791DEB97ADC373F412 +:10586000708DC27FF7A446A17B84E7D72A7B509E28 +:1058700039EF1E9F2CF781777D7FEE16E76147C4D5 +:10588000F8D0DE34CACFF95A8249EE5E579C668260 +:10589000F5F7A60CFEBC44E14722397A228BC77B80 +:1058A000BFB396DBBD7157B5D9FB7A27474FDFB938 +:1058B0009BEB297147FE66C7FD1DD2F55EF40BB464 +:1058C000D414418BECED521EB7B4F44202ED537A7E +:1058D000BD0F4B55FA5E050A04B6BFF44212E5C788 +:1058E00035F6D8719F5F1EDD487EFEA517E2689FE2 +:1058F000AB6ABB4F7301FE6F5E2B79D04FACE7C72D +:10590000EABBA9DCCD2D8A25EE8305DC8673357DC7 +:10591000DFA9099BE3FC9665FB97744AB175D2F742 +:105920009103A5FECF903ED59C0EF26F3A73F979A4 +:10593000657F72E08ACF8572ACE7FEFCFD1C0C33FC +:10594000E5BF03117E1EF5C6D9A877D03B4A172FB5 +:10595000E2F9E042A6D35B7B13FADD6631167A10DA +:1059600048AD32CB1E7B6747B4A7427B15F80F9832 +:10597000CBACCA054D1AB78BD559783E9061A77745 +:10598000782E5E64B68B18AA95DE5BFF75E3B9844A +:105990008A2C09E3781DE42DD2C56DFE0ED2E36F8B +:1059A000837D25E2A1F7BD5E4554DCCE5C3D518090 +:1059B000A7CBDA5BF8FE1C7B5BA1DF43D1EDEA8667 +:1059C000C44F328CF7BB6FD96AC6C74D772598D6BE +:1059D000EDFA409A297FE5CEE126B8C2637E3765AD +:1059E00096F76A53FDD9AAF9DD944595934DE513D1 +:1059F00058DF7E7B3A4A944DF9B42F4D9D9242EB8D +:105A000078040F0AD16E1F24EDC1784CFD7CA252A0 +:105A1000E0BCD2B7C486EF471EC5F747F00D13E1CF +:105A200047D6FDFD094C6B1A9689EB62B643128A84 +:105A3000B95D33FD51F33E9920ECEE044BF9295347 +:105A4000CCFEE6EBA630AEF70AFB521F0FD211FADE +:105A50002B2A84BFC53A1E600F5B21EA11229ED615 +:105A60003AAEDB9FD81FFE1ED49F8E716DDA958FE4 +:105A7000EF4AFD20656A0DDD2FEF74F338EA4EB56D +:105A8000C1968AE786E912DDCFDBE49E7E3C05FD08 +:105A9000CB405F78CF399B3D4B7CA8FB1DF4F63A99 +:105AA00085BE7C4CE8B52F668CB719E556E7C86013 +:105AB00086067C7B3431B309E3365F8ACBA47D094B +:105AC000FD25158389CF4C71DB9DB95C8F3E7A78BB +:105AD000AC0DE54CB92D68C3FA33339E263B7816DE +:105AE000D68571956770FFCC67A27F60475B7E614A +:105AF0000C9FE58FDE47BF1F5491BE3F3C0CBE7725 +:105B0000FE5C6269D0CF6D51B51AEBDFE676AA1163 +:105B1000E2F7F6E743B80EFA3A6571BF4C00FEE2D1 +:105B20003A49E9BBC90E7901EA0F81FE6E7FD47E46 +:105B3000CA783E91900EF49347BF2365F2DB18D6E6 +:105B4000C7E4B7596FA11F150403E2F5792FD79366 +:105B5000FBF387740AF9F6EFC24EFC58DC23FD40D4 +:105B6000C4F1BF25DE53FA04DF5372E2FBAE1AC163 +:105B700047EB8B293D8671FEF0FD4D11E76FF57BFC +:105B8000DE233107EE1FE1BB25BA37D2EB97734D09 +:105B90006F0B00DE94A92922AEA9E7852130C4A4A9 +:105BA0007885EED39E2FF5EF9A32A87F7AFB475384 +:105BB0009CAFF1FDB04BF21DEC3BA81F744A65147D +:105BC000FFFEFCDDA3F73418EC39652AD7BB9EBF76 +:105BD000DE1CA7BE69EDD33CF5150C18AF9D10591E +:105BE00044FB5A7FF99B64F13B3E2E7E0F2861CD2A +:105BF00055840F3DFFD5299209BF09D125D4DE8DEB +:105C00002D8B69BF3D3A45E8DBC26FD7EE3F40744C +:105C10007D2EC842F8CE77BFE312ED58F90FE902A6 +:105C2000D38F855D89748129D2057E47BA4018E9F2 +:105C30000261A40BCEB77EFA8E7481E989FA2A4AF2 +:105C4000CFF96057E2A1C4B43FC6CE81F9FE46F257 +:105C50001ADF7B5CBBDB81E2B6A67D607CD534FFBE +:105C6000D08B726183947914CF514F2C880FE1B996 +:105C70004BED65DEA94BB0BC4B873B71AF5E25DEBB +:105C80005DF31BCA9F38FC2CC51B04EB94EDC6B812 +:105C900076E89BF4EC20C6AB0F30CE2B4D4F58E886 +:105CA000F34AE5EEE22941E7D409183FB19FE54305 +:105CB000954A905728DF137C211BD263BF76855706 +:105CC000F7C73207B72FE2936ADDC6F6757FACCA15 +:105CD000F9548C27184EE1FED82B1C9FFE8ECDB0B8 +:105CE000A96E137D5EE9BB10EDFE5ABAC7790EDFCF +:105CF0007FA6F336735CEB9125C3C21847B031948D +:105D0000A4A11F5FF22CA17DDD8567D825782ECD5B +:105D1000E3593D19402B2518B7B68C9FCB6B2C88C7 +:105D2000E7292D8C897BFD22AE28C0C2E81FDAE866 +:105D300095FDE82FD4EF153B224B88CF589D667A0E +:105D4000E7C46189AB8B9D834F1571137A5C995FB2 +:105D5000FE3AF1694CBDB2FBD14D92F8DD1AFD1D42 +:105D600048F51F7B0792481EF19B23CE63C539DDA2 +:105D70001C6FB64A7692D04702BC093627475A8F25 +:105D8000FBFB1BF90E55E1F10EEB910F5FC6F3091A +:105D90008D7EF788FFBEE150FE3B4E8E1CAE17E9AC +:105DA000FA389E4C448DE7457E8B3E838F5296E0B9 +:105DB0007D21DB49671EFA5FCC7A89355EC27A9E07 +:105DC000AFD3EF6D532DE73A5768F75F69393DEE72 +:105DD000E5BC97D17DA9547F90FC35D542AF4E6389 +:105DE0001DA6F3548C7331EAB318E762D46731CE41 +:105DF000C508639C8BB13CC6B998F567B3BE8C717E +:105E00002E66FDD9AC2F5F127FC1A401E32FF47978 +:105E100066ABAFD27A6E4DE7F6C3B6850BFDDF42B7 +:105E2000BEC478008AEF616FA3FE4C3FDDA9D2B9F2 +:105E3000817F3DA2B0575FE57EAA21A29FC118CF06 +:105E400001FC942EE239F47812DD8FE50C04B428BD +:105E5000B433347EDE50DC37B6DAFD43118F5B2578 +:105E600089E85DC7E75066D6FF8758C75F6833C5C6 +:105E700087E87E2A3D3EC4596533C587D82D741402 +:105E8000992A9BFCD0D9EA4F28AE705B2DB7AB9115 +:105E90005298C1DE506AB85D5505EB1F36DC17A974 +:105EA00016F12B37E07C0DF2C2609FD870FC5519BB +:105EB0001D7EE1A7083BF5776C901FA40E36B890C5 +:105EC0007EBF32F341C0E787625C7A7D1BF3365CAC +:105ED000D47D1886FDD46AFF30A6515C69B049A113 +:105EE000DF2D5C5FAC1D5311063D2D4CBD561D359D +:105EF000C66949C6FA0ABDFF4B7110BA7E5BD36210 +:105F00008EAF591E36C30918A7937729BF5AED0DD6 +:105F10001B7486E3FB6A2AD3E3DD236827EB788DC5 +:105F2000CD9FA9387FC3BC77D3BCFE1F9FB74E5F00 +:105F30006FC707760D827E3E929CACA93036AFE5E6 +:105F4000820E5E4DEC79A10EC67D067FFB01EF9FB0 +:105F50006CFBE62EE4CB8F363A198F37546FFA215B +:105F6000C0C1AD4E8ABBBA096F5EC0F893A7651277 +:105F7000BDC809A5547EF9BA44BA43FCF1B62F73E3 +:105F8000514F783B357813D2DD4729017ABF3B5812 +:105F90007FB58CE7056FC777D33BE36764E6C1FB4A +:105FA000226F577D64477FE8BB1AD38C7A25CCDFFC +:105FB000F4BBB9374EE3FAF232999FDB2C5BC6E3B0 +:105FC00036DE6DBF6A0FF78B70FA0E4A7C7DB74FD5 +:105FD000E3FA6D70E56D14EF80EF09940FA01FC018 +:105FE00078495FB77EAF15FDBE9DD173239E5B7E62 +:105FF0002431CF3AC2A7F6E11AF413029EE85D7B82 +:10600000F1EEA663F8B0DDFC3E853A12FD888EFA0B +:10601000D132CAB702D1CE092C8BF5BCF1625F0C2C +:10602000E62C31FC3EB1615DD64F403CE1EF0C0304 +:10603000DF2F6FFF84E23C9E01BCE13EF2AEA7671A +:10604000FD61803F0664E3BB8CCBBD7FA6DF11F80A +:106050005E01ACF050F42B99F1F7E369FC77973FC0 +:10606000DEBA2591F42D0F0B3A06D3EF66527FC1AD +:10607000B67F5D83F779828CCB3B978893B2D2ED64 +:1060800052582FF41B78E2597B32F493B0F2E38A32 +:106090007908974B3DC92548D7DD1548D77A1CE6C6 +:1060A000D23ACBEFB0BACF56A09C5F21FC062B7C36 +:1060B0006679C9C4EFF506F9BF2FA1F7E5CCDD8CF1 +:1060C0007881E6E97EA0954F1E9AE6A179BEBBF2E3 +:1060D000B141284FDF4EE5EB72661D8F97018D6051 +:1060E000A451DFCA9EA6CB63A6DA0DF85F5EB58524 +:1060F000E2624079EF29F772FCE3BC9F8179F78572 +:106100005F2B1E1ADDA7080F2BF077CDFAC0839BFB +:10611000B5FF6409B4BF7CA59D61BCDCE5F0B07C33 +:10612000B1A319C7F31ABE2F5FDC175EF8B9C9A572 +:10613000F860C407A746F4CC4F2BA4DF81F5EC41EF +:106140007FEED6E933117E172981FCF601079E33D5 +:10615000E01FA528461778D170683AC69D79484E49 +:10616000EA74A3E329B8F58BF5F87B91DEBF24AA86 +:10617000185F1CF44EBA95E244747AB2E009E58FD8 +:106180004DF7BB2A14C76AFD7D6B13BDCDC2F1D399 +:10619000FA0489FE8333449CBE0DD6B18FDFC3A5BC +:1061A000F51E86EBBA7F79B814EB8569FE4796C475 +:1061B000C7E11140E371FEBB6D59780207E36EF64B +:1061C000B310EAED8D5EF37D135BC46CC75E7ADFBE +:1061D00045BC4B25F4F2DE7A516E67DA5B16F46942 +:1061E0006FDA14FEFBABEB0F2F65A372715C935C4F +:1061F000A768DFE7FAA5CDA9B564E27ABCCEEFA720 +:10620000B37437FB48C70FE0DB9656EA45F9DA1856 +:10621000C74C7ACB0B42DEBD2C525B32EFE7523DCE +:1062200093EBF18AF09FC7BE47F8779817EA458A43 +:10623000F09B2B429FEABF9C8DF2158B1FFFD27201 +:10624000DC8F6FF5EBFCFFF4FF4EFABF7C259AEB79 +:10625000008000001F8B080000000000000BE57D9F +:106260000D7C54D595F87DF3665E5E3293302180C7 +:1062700013059D006AD401277CC9478497640221D5 +:106280001F64423006059C408040758D2D7653D7A3 +:10629000FFE605428C89DA6845D1FA3181F055DB99 +:1062A0006D40B056A93B10B4AC8204B5185AB5681D +:1062B000AD05D775A36897EEDF96FF39E7DE9779CE +:1062C0006F3221B11FFFDDFDFFE3AFBDDCF7EEBB99 +:1062D000F7DC73CF39F77CDD3BDE803665F714C61B +:1062E0005AB504770B63AC3B911D1F0B75FD17323C +:1062F000DB0675F6D5F9F3E7A731B618FF2D47EBA6 +:106300004EAC8F63CC9DAFED65D0FE032D214DCFFC +:10631000C076361651193B8F7F19D82EC9525FCCE3 +:1063200086B34866B49EA55DC1D8486C77B1E5795F +:106330009B661BB37B04635FFA94341CB6A122896D +:1063400031A89FAA92C209F0BED5A16F9C8E70E6BB +:10635000A8BDDBFC8C1D9AA03015DE97E5AFDC9A5A +:10636000202170210DE1726AACB62595B14D4A2706 +:10637000AB43386724B8D7FBF13D4BC919C5581555 +:10638000FECB0BAD03239BEAE07BE691D9300F6394 +:106390004A78118BA43196ABB3B98BE0BB5B34B5B3 +:1063A000370CDF851A1D1F9C52E97B761EFE97C7AE +:1063B0003A5904BE5B1672D546E0FDB2BBADEF2B79 +:1063C000993D5A277C58EB30039ABF02FFCA1E2E14 +:1063D000E63F079F87199B1AAD1BF018EDDBB44908 +:1063E000C3422EC6EC38D719D17646E90C97336DE7 +:1063F00072FFE746D96A63359D3EF8D6C5FC08BFF3 +:10640000F3EFAF9CD4E28DBE0F6A92657C67A482E5 +:10641000FA5BDABC886900C77C2D79C447D7C0F71E +:1064200093D8A4F332C2B38721BECF8658AD9C3532 +:10643000F0B8463F465D6E2EA7FE8CFA068955766B +:10644000C2BCBA2A0A6D6180AB69C4D82DB89EC699 +:10645000FB9502AE17EADD4CBB92B1FDF51EA625F9 +:1064600030F652BD97CA487D263D3F58EFA7FAA1A6 +:10647000FAE9547FA55EA3FAE1FA022A9B464C1A78 +:1064800006736773FEB888211E8DFED36686566A32 +:10649000A6793BCE5D41F03D60E0CB3D85F00DF44B +:1064A00049F478D69FB14596F87A6A404F4512A7CD +:1064B00027FA83F7853EEF96167ADF4070D31FF0F8 +:1064C0004F129619BCEA85EF54C14F45D9C567E410 +:1064D0008950FA1DEC83CC281D3933A16EA22B35CF +:1064E000D36E79CFD842A6197564187613D3D468C1 +:1064F0007D985CE6F103FC729DFCC88780FF8D07E8 +:10650000D6306F32D43D7E9ABF5CA7D07363DE2D48 +:10651000F5C02B0E9C2F4C227DE0F534E871A8EDE0 +:10652000AED3B4EF6A50E6CD0E3E8878662E9D0558 +:10653000018EC6D4B98B917E1E916C7E19F9506381 +:106540005E37E04512FC29053F227C3E318ED5A600 +:10655000A5E3776E7D25D465AF9DB5B8619D58885C +:10656000E453028E036522F28F8CFC1621BCC2100C +:10657000611BE145A3F1185BE246FA95581B3B8F7E +:10658000C2CC353C2E1FC5C2BFB1BE8EFDE672A87F +:106590007625268E87F19523B23F11AA1BB009C03C +:1065A000A58C086A9A0BFB9B447566F7FB174E880F +:1065B000D71FA787A7E604F7201EE4C822E28BB600 +:1065C000D9DAB358EFA37F972D8CF4DFE4E2F43AE5 +:1065D000107C1B059DCF7184981FDA39EC4C237A0F +:1065E000F5EBCC3CFEAB827F3E9D153C80EBA09C46 +:1065F0001B4FE3C27A7461DD580FC646BB3F729AE7 +:10660000E86988F8618D2FBEF8E2345C0F46F877B0 +:106610009C9B4DFCF3E9AC50B7793C840BC781716E +:10662000DFF8AB8C3BC47600C7FB66FE563C3A0BEA +:10663000019E1E40B9E38BE2FD9120C89D0C2C17F2 +:106640000EB3013E7B63E461543ECC621113DFF470 +:10665000E1FDD0A79F7E0AF4BB1187B645DFF7A204 +:10666000DC98CAF182DFBDADD4DEC660DFF84ADB5C +:10667000181A01F0BF9D02ED2F46709BC21AF4F369 +:106680005D68CE6672F18242A25112EFD9BDE11A65 +:10669000802BD166D4BF17D2F83CA83E36E77B21C9 +:1066A0001DEA21D57FD80B7C959CC9FC2DD44DB714 +:1066B000B611EA0ED8E7906FD814FB877DFBD1584E +:1066C000944B5037E408C927531DD773D147EFB017 +:1066D000145C5F6BBB2F3446F372E5887DE13A763C +:1066E0001DB6379E4766855273465273D7E580972D +:1066F0005BF8A7EC261B48CD71D1769BE05D37F2A5 +:106700008F3D94C87C383FCDF630CA8385B6F036CD +:10671000B11EF87C603EF0B24882697DED21E676DC +:1067200071BAC3FDD35867E3FD15397C5D8DD290F6 +:10673000F3B1FD3EA0E55E913395E83533E7427253 +:106740002B97919C925C2CDC42F873B39588EFDA1E +:10675000143FE19B71B9A508B9750179754A1A17FB +:106760004F5E8584BC1A31247A6F89CAAB08C2A5F2 +:106770002E718613012E45E2F24ACDD4B9BCF24CFB +:1067800019447E737905F2691ECEFF3D2D389FF0C6 +:10679000E00FB1E004FC7E68F00CB51DEE3F1CEE8E +:1067A000F90E2FF4BF48C069C0CD3C8BA85C82EBCA +:1067B00086FD0647B2DF18F408749C9DC3E9695949 +:1067C0008ECBA2A764E7B82D700C19EE876B2B71E6 +:1067D0009D99CDE66F99C2FAED4F4FCFF0523B69CC +:1067E000F42B7F90803F24775310F9C4F83EB65FB6 +:1067F00055E86D7BB2B53B902F62E5CFC9C67124D9 +:106800007F4E369693FCD173E2CB9F4A943F26FD90 +:10681000A912E50FAE67E30F7EF00390C33D08C2F7 +:10682000D8E87B3D87CB9F4A943FF05DE295B7DA8D +:106830007E09E32D0EC96119C6DBB4BC3C2E7F9DD9 +:10684000FC5F1CBE5FC3BA44609F49EC7ACC710503 +:10685000D0655B8E4CFD2DBE5B9A4B74E49D320877 +:106860003E391D6DC6F58179276ED01DB85F55463E +:10687000D215D447AA74E8C737F47E0CF9F944CE90 +:10688000312E3F936AFF0D580EE8A43B5400F5DD0E +:10689000B3B52711BF4F89F1CA73B4A7B1BE5DD09C +:1068A00047768ED68E746CD4414E6D17722AE09A5C +:1068B000D65F4ED9F3A45AA137EB480F6F5FEC6E49 +:1068C000473E37E07A41AC53E32FE3CB91BD825E84 +:1068D0001B5FE8D3BF756904F6037AA2A51FBE4EFD +:1068E000F6043E9EDDC94BE3FD8BA21FA37C3B2536 +:1068F000149164E44BED459CCF9E19DA7E2C136F06 +:1069000061B5480F893F61B57BE2C0F3B2F83EB193 +:106910009CB78B7D7F0CE180F7072BD6DA9A892E06 +:10692000E530A7CBC91794C3CA39A745AF8FCAE1D1 +:10693000147A0EFB5608C78B95B7A9B9829F456993 +:10694000D839038DF397DA399FC4F055AC9DF31114 +:10695000EE674EF667DB395D1549A427F674CB7EEA +:10696000D896D878F67832CAF3D8F668CFE8C29EBF +:10697000D1853DA30B7B4617F68C2EEC195DD833E1 +:10698000BAB067B0ECA93EFB6629C0F505ECF3CCC4 +:106990001B079E5CAF659E49E726321DE0F3BADC1B +:1069A00029084FC2C6BC0BAEE77EE07B0E972AE0FB +:1069B00072537950C07B08E125B838BCDB67848608 +:1069C000E5C278B3CF456409ED7030CF105FAAFD02 +:1069D000C09BA8FEA5CDD4DCB9C467A7BCB87FDC3A +:1069E0006B63B43FE9CB9CE16DB024F9B2EB20EED0 +:1069F000A73DD55C0EF65473399821E82216BE16D1 +:106A00002197FAD67DC2AAF53618F7EA5C764A06CF +:106A1000F97045666F0ECAE3C9B3421938EE1560C6 +:106A20002626A4D0738D81BDB57DB3BD200CFD9FFE +:106A3000DCAC3F9988FBB8EE915266C37B3626A545 +:106A40000CF0333F97F3E3A6A6F8F2D128BB051C60 +:106A50005FCED07C38FF5FD73F4FFB98F11EE40933 +:106A600097CF8CEBE59B2A5AD4E5D0DFB498793DDB +:106A7000BD38342DD7B45EAAD7ADA09EFAFE63EC24 +:106A800052360CF0B131A1321C078EF737BB1F20F4 +:106A9000F899FB83944B4D7035A55D8AF833E6F980 +:106AA000FE2E356243FCA6B376B4437B566E1DEBD7 +:106AB000F545E709722480E333EFD0EC3A839FE990 +:106AC0000F3E4999E9B3C8B3DB72ADFA15FC115F0B +:106AD0003CF0FAB8492D2CFA5D716606D9CB467B9D +:106AE000D280D0AE66A6BF0BD8CF8C751EEA423ED0 +:106AF0000F26D5A27EF5D7B7A31BC6E07EA5083B1F +:106B0000BAE7C063A49F28D55564472B03D8D16B3F +:106B100067697F8774E7C9D66EC7F2E9195A2DE114 +:106B2000B74E5F8AF3DEC0E2EB15EB6686BE437CB0 +:106B3000F2B09B7D1BDF7F13F448F25FB95915E279 +:106B4000791CE8917ED24BFF21D7A49746F545CD1D +:106B500046FAE210D771A8ED0C3D0CF8BC15C74DF4 +:106B6000B4B5F91B24D45F75D2636F433D0BE1F9D3 +:106B70009A7A9653E845AA3744F8847D52D837D09C +:106B800040A57DB0AFAEA2FF46E9F6D940AE7C90FD +:106B90005BD76E1FC358C938A3FDEDEDA88FCC9904 +:106BA0006013F6D4DA76CDCED809C5D4DF74D8DF39 +:106BB0007AEDE2FDAAAA1AF8A7A2BD1F70033E3B18 +:106BC0000FAE685781BEE4C5C6F755EFE3F7333320 +:106BD000B59D4E98DAFE833767DC9B8AE36B3B9367 +:106BE00061FC7FBDEAAEAAC333B0DE7BC99B50CF48 +:106BF000E90A57A989086F4E2DF6B7BAEBEE2A15A8 +:106C0000DE1F1DCBC7BF31AFBE4A1F8D780AEEA174 +:106C1000F50DB6F9510EC27841E4EB99209FCCFCFA +:106C2000DD95CBF5ACFDB90EC2D31C474446BA99ED +:106C300093C1341DE0C8C9648D36A09763D95D69DE +:106C40002827FE318F513BE8FF25EABF12FA4FEEAD +:106C5000FFDD8BB82F8CECFF3D7CF7327DB7887F52 +:106C600037137962269F77839DDEFF0BBDAFE5EF7B +:106C700017D8B3DA2E77239C95EDAE8C68FB9FE492 +:106C80002EAB6A184FED8F51FB4EDE7E703C5BBF22 +:106C900037F4A5238C1560F970AA5E1984322B8F06 +:106CA000EB27B12558DA6938CE09A5D7550AF3BCC8 +:106CB0008695B50712098E53C427CF737C1BF4F158 +:106CC0008BDCD22A9DC3F921C159C3E11C885EFF28 +:106CD000DCD2A0CFF7721754E92E1AEF738267093E +:106CE00087C7A08F0F724BDAF56CA49FCF640DE5B8 +:106CF000B9CCF46D4057C593FF7889591F5A28E6DF +:106D00007B74AC5E83F848CAECA5F5D5BC5E66D64C +:106D10004F6ECF13F214D6D8360DA51CFFB75220F4 +:106D200069B81F005C16FDF21BA2DF6F89F284C2F6 +:106D3000FB0790547912A793E5F09D2BCF66D12BDA +:106D4000FAF889BDD8AE013EE764FD26E006BA1820 +:106D50009EF7FD98757EE47D7C6FAC737ADE8306CA +:106D60009D8CC89B3A383F4CC89309AEB1790E311F +:106D7000FFDE72D4CB9AFF64675B4878723A57BCE7 +:106D8000CC8FFE7F660FEBA80F28F654F28318FD18 +:106D9000CCF17456A05E60E297F134BEE097AFDBB1 +:106DA0006F469ED7820FA37FE8F7DABC38FC34B673 +:106DB000EB3E839F26D3B87BF9BC07A2DF81F8A006 +:106DC00054AC536C69F463F0E784BC7BDB5D525CCC +:106DD000BCE7117C213EFE60728B79B8DD0F7AC270 +:106DE000FCBC3874A51648DC6FA5EF233A30E8DE0A +:106DF000D1F5D3769DCB97321A4FCC375BE0DFB01D +:106E0000770C7A36F0B85ACCE74F422F80EF17D381 +:106E1000B8D51C9F71E85AD0D980E357D1F882EFDA +:106E2000E630309C8747F96BB0F9178875EEB307E9 +:106E30005516413B4EF1B8B9FE9213BC2DCF241F1D +:106E40008DF1BFD5B5BE4A8C7F07C12FE4CC9F72B0 +:106E5000F97E9994C9EC42FEDE49DF0B39E588D210 +:106E6000671D7D27E4E8D7E52FE61BE2FE1E2923F8 +:106E7000FBE5386371F76D45E6F6220B4CA6F75D2E +:106E8000223ED7EA194FFAFA789644F1B7E64C1E3B +:106E9000FF68F5E67A1BE0FD174BAE9944BBAFB037 +:106EA000DF9F03FD08E331CF835D81E55F1AD75192 +:106EB000A7483AEAC78AF0A763DC0CCBA473D3C80F +:106EC000DE911D550CF577C51B06DB0769E5F02142 +:106ED000D9D01F61498F8EEB64A83738BD3AAB8596 +:106EE000F2A1DCD04E5A07415F410E3C3BE27F9657 +:106EF000FCC6F0B73FC9E4CF8CCCE274C102698410 +:106F000067C36F60D407C37BB4CE0ECA683765DA37 +:106F1000C288BF84ABF6E88950FF5263A718E97FA7 +:106F20009D3AEAF9EADD8CFC88CECDBA4EFA2350C0 +:106F30005C8A87B103152F50FB6E10D809D05EF51F +:106F4000F1B82CFEA19EDBBD68AD4D87EF9BABE594 +:106F5000302A9BCDD52B6CDD68D76ABCBE2957A6DD +:106F6000F5FB627C12D57B62E8E057B86E57727B06 +:106F700007EDBFD1B511473C3BFDF8C19FDEB61709 +:106F8000FA49AA497027026A5A333BF313A07C7767 +:106F9000DD56D2EF8E5FADEBE8EC3C99119A8AAEEC +:106FA000EC56BB4EF10B75DDB3E4EF3BE9084D1D2C +:106FB0000E783EB1BE93EF3F9525051929513B262A +:106FC00076BC51012E1F7E79605733E2A75B524F8A +:106FD00051E9086F41FC9CCC50FC0D30FEC9AB1E42 +:106FE0001A83FD77AF5CBDEF17F8FE2AC52FC1F3FA +:106FF000EE5D2AD955DD39F7785699E44FC538A5A5 +:1070000016C73B3E76553EE225A9C0AF24A622BF57 +:1070100076DF8F76D4897593294EDD9CB1DDB3027E +:10702000DBAD7ABBE43A68A756CAD3303EA47ADB1C +:10703000083F977975FD14F4FBC7D9A1CF918F173D +:10704000D71EC8477A546FDDBD11E33B977DF55DD0 +:1070500082FB24534FB540D992B15EC5E7CDD51B15 +:1070600054843798B1DC3616F5811CF514CAF366E2 +:107070006DA37A053CBFC26BAB5A9DD21F1FCD8F4B +:10708000B1D9A16B11AE26CFAA646CF7FBFA10B48C +:107090006BC9896F3F260BFC555CB37DCB72A48F07 +:1070A0005DAA1BF1D22CE99EE5186F5F9CECDFC650 +:1070B000FA7FB72AC0EDD725B5B0BE8CD687E4CE0F +:1070C000A843FFD68E7AD589E17CFD2AEC4C7598D1 +:1070D000E2DC9367E5A406E0BBABAFDE4EF667C526 +:1070E000354D1EE4CBE68C5553115FCD229EB12A5F +:1070F000E0D882FAD2973382E9D8BE7BB3BE99DB5F +:10710000E92A433B7D203BFB24D8CBEE61D1E7C18C +:1071100000DF479A57C2FCF1BDEFA1A363E3D9CBCF +:10712000ABBE3706EDE556C32FB04B25F9D6BCD420 +:10713000D94EC6994FF74CC17D7FA7C78DFEA4F7E6 +:10714000B49CAB03FF33E82E27F05F4B774417C99D +:1071500087A42DBA1DCDDD4ED2233655BCA0C693D3 +:107160001F4F2F0EDD1830C945A78FFB41705DD929 +:10717000B5D1758CFDEEE4E6B6FBE3FA41C4BA6E18 +:107180001FFABAAE24FA0CF0FD97858626C71FB009 +:10719000F1BC1A7D79821BF92528ECE584A52CD752 +:1071A0008E72D9377C0BE6CBE882DFDC136C65F698 +:1071B0001128DF656EFC8B3C9B10761927EFC618F3 +:1071C0002F3448BE4D2826DF2636CFA6C7A18FF91B +:1071D00036FADDF6A9FE6D5E025F27FD76DFF4ADBF +:1071E0002DA6BC8B5D0185E034F2707A26308A4B87 +:1071F0003B43D76DC881F9BC2EB15E693A02A7A5A1 +:10720000E44C231729ED999B143FBDEFC9517BD75F +:1072100053FC4B9371BC6B31FE08FBD2E46EBB3563 +:107220009F46B5E6CF5CAB3DCB22F0BD7BB9AB76DC +:1072300018F47FED20F9344F04AC792903C9052FE8 +:107240003B955C0674D75D573E4C82FA8F855C880F +:107250005DCF7F12FEBC4ED04F30AEB807F413ACFA +:10726000EF05FD04EBFF2CE8A247C46F0E55ADCE31 +:1072700027FC95302901ED030C36C3BA3705B89DBC +:10728000B47B366F3F04BA7F2E1EDD23DCA8F721C6 +:10729000DC17F2430E0637C3A0FB10FC316DDAE7B2 +:1072A0005DE7395D8665E942E3358BF1DAA8DC53A9 +:1072B000BF598C17B6C463F76932F15D20ED454FB5 +:1072C00086CF3CDE7AC24FABC39AFFD3ED9BB41599 +:1072D000F5492887C9D0FE3D4187B1E33BCFC99628 +:1072E00078C337025C0F73DA3B29EEE03CA7D0FB92 +:1072F000DDC26E8AF6CFE3FCD8BFCD15D54BFFDCDF +:10730000FE0DBCA5C86D2569DC6E776F9B2294438A +:10731000A84FC874535CD8D0AB55E65690BF6DF9F2 +:10732000193C2EC7C297836ECDE49579AE2C68FFC9 +:10733000EE5E7B16EE0F3F4A0E798230CEC1746549 +:107340000CCAF1EE9F862E735F202E020BECB179F2 +:1073500068D451A21C6123FE8CD8B01EDBBE7BEF2B +:107360005B2371FFFDD13E9598574FB7852FCFE82E +:10737000DF2E279FCBAB09FBF612DDB686246ABF52 +:10738000A45A0A7BE19F8B1B8FD3FE7373A5ECD7A6 +:1073900048CFFBC50D37A27CD164FFE5547F93F63F +:1073A000DB937BED384DB6F4CE15EA14A82F4D5F74 +:1073B0004E695497E68F127EDF10ED77EF168494B6 +:1073C000962CCC7FE9BEE146A83741BF5B504EC149 +:1073D000CE8A7C70527B3319E1BE54C0F5238735C9 +:1073E000BE6F948FE7C78F9F9E407A8883C73FCE3A +:1073F000CE1D9F0FEBB854EA4E467D3B3BFFE1E5C7 +:10740000F619889FD3186161B37FB7614B208BC693 +:10741000A3F977EFB387519E43EB31EB707EFB14FA +:107420003F50343BB8F2279E5388275CAF0BF0EBFC +:1074300060EBB53447D21326829DD470FCA65690DB +:107440002B91973F5A6EBF0AF0C3BA6F6AC53C8250 +:10745000FCA796AB57917F9DF4A5FC973F5EAE933A +:107460007DC6F7AB437B3FAC35C78163F97CA0BCDD +:10747000875FE40F2D0EA784CB2E18876BC2FEE327 +:107480007CFFA8E8FF50405B988FEBAE69E588F77A +:107490001363B9BEC802E583C8292E3782117793DA +:1074A00013E8A2727FF7C5F1E6D92DD679C23E7BEB +:1074B0004911DAA9EB2E1F2E7BA3EF5F11F4D12423 +:1074C000DA19FC1AAACBA03806085E15E30EB48FB1 +:1074D000038E5501F789A4D08FC8EE9DA8685BA0E4 +:1074E0005DD0A7CCA5FC0F74D003DC41D5A5A09E30 +:1074F000A666317F423ADA8F765DEC57B6F3D02834 +:107500009C9F4AFD34793E4F46F97E9388A3DC74F4 +:1075100031CF2FFC75F5955B783000CCAC69C23F5C +:107520000EF3DB2FC677D6AC71603B06FB50EE0C3A +:107530006AE7758C12762AB40B7A3EDF9881EF35B4 +:10754000B53717E828589DA0A01EBF2F89B5215D2B +:107550003835877ECA14FF5856E3985B0CEDDDB9C9 +:1075600052EF30E86F83CB367723D497C07E8D718E +:10757000B45B74C787E6F62ED67B7F05C65B6A1CB4 +:107580000CF5A525758E0FCDFB37FCDD6737D9CD02 +:10759000CE45CAC60C93BEA066DA2DED9DECBECFDB +:1075A000E41482CBF25CCDE7791B86DCF94640DB44 +:1075B0002CE8E531A497F27CBEAF767B38DEBA7D4D +:1075C0002C2C492817B89CEEAE959251AF4B02F97E +:1075D00081E2C3796B83CE5CF1F06553D0EE81D547 +:1075E0006ECB4D277C107EDD158C0DC3BC13C4976C +:1075F000295FEA168F6D6EF19428BEA04BC2975397 +:10760000E837B1F8DAE0DAA361FECF92E9096ED982 +:107610003D38BEFAE3C745EB09DDF7264CEF8FA7EF +:107620004DF9DC8FD454B36D24EA0777E1FCC90F20 +:1076300018A27938814EB8DFB26D0CCACF77C57EFB +:1076400068F871005323CBE2F8BD8D7D71F7ECE053 +:1076500061C437D87111FB703664BF46AEC6484E60 +:10766000E6BAE57018D6E590E2B7233C875224D6F7 +:10767000260D2EC760BD4FE07A0F241716C7C8F736 +:10768000BE78D610E1BB22A4521E77CB6846FE9688 +:107690006732457E6F8D14C63863BEBCA419FD31B8 +:1076A0006780CE797E396B46795021D6A9796AC335 +:1076B0007BC3A1BD57B2F919E878CBCE49240F9B03 +:1076C0002694513FAC04F6F44B30DEDE9642F26273 +:1076D000B49DE138959EB3577E0820EAB941BEEFCC +:1076E0007E9BB937C0FA2C651107EAF937B3DAE4A3 +:1076F0003C183FD1BEEE36D41392D47F9CBA1CBA4C +:10770000BBA77DF5BE2A281326F0BCD01BE5DEB74B +:107710000A81DE9CAF7E7BA51BF09762D34BC6032C +:107720003E9F2D60FABA4CCC2FEA5D1480F78D3F56 +:10773000B76D6D04C3B027F001ED63D71EB97E5558 +:107740004256346FD031F7E00AF44F1AF8BFFFCD3C +:107750004F7661BD12E39DA8DF083BC488B7567A17 +:10776000B95FBE12F5009857D349B6C5C5F143714C +:10777000DB34FC37C0FFF7F3B8BC4ACB5EB9E19409 +:10778000F0535DE6E1FDC9D05F0D7122FD9F847A63 +:10779000715A4F6C5C96C779C9FE81AE8687776B4C +:1077A000A457855CDE79B84F16D829AE7BFE3CB372 +:1077B0009F47D87D7DDF1F3B1F673FF85B950FD547 +:1077C000F378EF80EF15FD36A4DF87E65F918EA991 +:1077D000E4C3C65D311CF3AEECB8AB00FE4E833E95 +:1077E0008A7471F73C4ECFCD37902C437E4DC175D6 +:1077F000BE476A4B9989FAD42E99A1BDF6B1EF0321 +:107800000DE3434D5ED6CB806E4AAFFFAD86FDA43F +:1078100056B15A19F584795CAF74EF92EFC56DAC2F +:10782000C9F357CAA7513BFD0B4D72E2C83C9BC53B +:107830006F3CD0F786DF38F6F992B97CBE7D79CF00 +:107840003B659EF7BC53F821DF61611EEF3F658900 +:10785000CB6138F7EE498C5D77CE47FEDD58BFAF80 +:10786000D1EEAFED677EA8BE929E4F3857457AFFA6 +:107870003FD5D750BDB3BE96CA3DF57554EEADD7D2 +:10788000A9FDF4BB18F1C7C72B13C2EB611E1F275C +:10789000467E83F92D7ABAE2C57C1724009CE7C99D +:1078A000AA2B49FE3449A109C3F0BD94C4F07C4B16 +:1078B00053F2A9CE2E6A9F49FE3766D73DF8BEA780 +:1078C0002193A17FE984A25F9A82763618315BE02A +:1078D000F999CFC2540FD980D9411E3D3F868F6F91 +:1078E0009FE9DA82E36F48A99DCA80EF5BE7DFB9C1 +:1078F000CD0EF2B1B97D47E45318E777AF4E588506 +:10790000B98927257D0CE6D1E5FC4BB803E31FCBF5 +:107910003E8CF8505E5C73E48E954EF8EE28C65CA3 +:107920008CBCE4E9D1F808D3031D35A3617EDB12DA +:1079300044FC27B71AE3B9F6A45A0FF75B7F6FE54B +:1079400061685F7159E84EACCF7DB56805EAD51521 +:1079500017F1FE0E1DBD7A27CA9B7B126B3D204995 +:10796000D98F8E54ACC2F7F764F1FE1BFFA56215E8 +:10797000BE97AB58B093FC4FD7BB1594DB1EB0132A +:10798000605E9BAE9E344C81E7C30B65B1EFC12CAA +:107990000CB90124EA54EFEBC6F3154BD09E03FA61 +:1079A000B859C8E93EFA07C48AFDDA8EFAD99DE9CA +:1079B0009DE48F6C1DA32F0B727D81F4B066FC17C4 +:1079C000CE59D2297FAF8CB9331EC7F33FC522EE03 +:1079D000E66621DCC715A31D0BB1BB603D829F2469 +:1079E0007B512F503D768BDE45B26F94682F6369D3 +:1079F000D7CD7E0DA657BE327E1ADA87BCAD8BE995 +:107A0000F998C7AD883C6E8999FA43FBF18E908650 +:107A100079C7C741CFD061BC7CD796C8282FFA67F9 +:107A2000CB9A91EE406F60287714D4B726F6E7C75B +:107A3000B290556FC98FD133927C56BD4411F9E095 +:107A400076000EE1B52BFE9747A07C1E25717A6566 +:107A500087C3186749627D7F5E8CA72C13F3796911 +:107A60005E2AF17F8EFDF87E8CA7D6AC4BF5A27D09 +:107A7000381DF5618CFF9E0E6F4841BF4AF8C11951 +:107A800066BDFD67F3542E77C20D3D23F03D8C801B +:107A9000F9668D2F689D18BFBBBB6036D1EF1C45C2 +:107AA000D0AB7E6387960DFB6B9D119FBCA103E954 +:107AB000F368AE41BF0BABF17D5F1E895EDC81FEDA +:107AC000CF81F3460AAB6B28CE2D8BFADC0E8CBB34 +:107AD000C94BFD97237DFFFBAB1F7524A68B75A5B6 +:107AE000F1EA56607F6F4ABCBEFE70DD56D46F026D +:107AF00005770446C2BC1605AB28FEF7E55C6BDED5 +:107B0000F2895C1EE78DE673DFAB60DED14F0BB808 +:107B10005FA93C575F19F4F5B7E38CF7465993C951 +:107B2000E3D595C08D6361BC6C1BD773B2677ADAFD +:107B30001B68DF0ED9BAA19EF24C5A3BCAA117C4EA +:107B400077959EEFFF0AF39A60ADBC8A89AE7BEC15 +:107B5000911528B7CEE0890E58C2E15A649C8AFE7E +:107B6000805E550B13DDB2B7C79BCED9A53137E97F +:107B7000C73703DD46806ED7789EFA15E915CC64C9 +:107B8000175D17A57F8DB103484FB34E5BF9E5FA3A +:107B90005E6B7DCE396B3D8759ED9A3CD55ACF77D8 +:107BA0005BEBF33CD6FA7CAFB5CE1A39FDC3EE41A0 +:107BB0007A7FECB9087A62F02FFCDD5C6BE5979C6C +:107BC000AC6AE2C724E0478CC72931E727CE749C12 +:107BD000253FDB831E467EB6244F7017EEF36B8E77 +:107BE000C80CF372746C3805FD2B12F98F16ABA319 +:107BF000E706A6501E797702EA512AF3F68D3F96E2 +:107C0000C7E570DF0141A438A09D33DB41F6C862AF +:107C100066B53FFBCB197602E54CB1582F67E3CF31 +:107C20000328673C97C80CED0DE6E7F3B2C17F1C53 +:107C30000F9DDA6684435329DFCED968951B6B42CA +:107C40009120D2D72DA04F7B33486E6928AF155DA8 +:107C5000628F23B5DD6D6D7FD957B7937DE4043C0A +:107C6000617FB1786AF105491F5000405B2AE61137 +:107C70006D6DC6F3AACC6FF7235B3057C863D64B44 +:107C80009E2E9044FE720BE5EF9F65367F02EAE37D +:107C90000F737D1B7333C81E8A3D6FE6ADE0E7CDE1 +:107CA0002E035E46BF7DDD25C7D19490DCFC39D81C +:107CB000F321B43F12EC41AA270499AE6751BEDE0E +:107CC0006DF34662FB4BA9FD86BA5A92E78DC23F1F +:107CD0008CEB817EE72ACF2B3DA930F63AA13755B0 +:107CE000A92E1DED5EA0B34FFAE64BF88DC9E31344 +:107CF000F68A9107129B177EF73CCEAF01316F5386 +:107D0000FE9C66CD9F3BB82280FBACC4F7E1C679F0 +:107D100007B7A29C6CBA9E897DFDDFB71E00B9F43F +:107D2000E8C13FBC550EF3ABE990FC18BF7D747BF6 +:107D300003F937D49D92BB00D6E3A271BD6F95A322 +:107D40005F2EDF4E79C74DE9A31EBC18F1EC63240A +:107D5000BFE7F9826B10CF6BC2095E6E376929E805 +:107D6000E29BC98CBFB08CFBE275C25E06FDF98D4B +:107D7000800397A0B62B07ED244DED453A181EA9B8 +:107D8000EDC6BAAAD9FD612FCA91DA6E5C7745C3F8 +:107D9000C46178DE919183FA7143C55A1ECF017B8D +:107DA000EB22A4E7D3F60F109F41F8EFBCD887C9A8 +:107DB000BE28B0C61D142F3FD7745D4C3CC1D81FE0 +:107DC00015C6FB319EEF9A673DE7D483710607FA2B +:107DD000C93E20FDFB0B98405A2AEDD7741E0CFDBE +:107DE000FD4897E8EFC77C5FD44775A18FEA097F0C +:107DF00079FEF76D73853F48C4099E5EACED9F87A1 +:107E000079327319D1C3B41E9DC7CDE6723FCACC77 +:107E1000D33CBFB222C19AF7659473E6723A1AB2A4 +:107E20003D60B7DA0385029EA50CE87A62FFBCFAD2 +:107E3000E3F3AC719A26CF9F777E7808F60611DBC4 +:107E4000C2B913C9AE2DBD7EA507EDAE35D92ED270 +:107E50007F1EDDFE19D1B73360F71730A4F7EF7C32 +:107E600086FBE35AAFC290DE9B33B6CF25B83CCC3D +:107E70008D7239359DCBE11AB0476C509F17E6FEE5 +:107E8000EF351AA3731144E1A3284599FE0C7A7EBD +:107E90002EFBCE174F79918E3B35F403A781B8A006 +:107EA000B881A05B9585BABAA09FB460129D2337B4 +:107EB000ECE2352CFAD797E72CECEBEC69517D71AD +:107EC000CE57DFD5B6E13CC01E467E59D321CD88C2 +:107ED00067E74D7BC76A573B35BB251F1ACFA5996E +:107EE000DF0F9373B8DD92610B37A0DD7243DFF9CA +:107EF0003C8A0F37796DC26EB5917D0625B53FD3AB +:107F0000C3286FE44CC78A2EB45BCE7AEDB5E8EF98 +:107F1000FAF8C0BD64BF2AC0C7189F563C201F9006 +:107F2000AF7D8AD79911473EF4887C6C8C3DD990FF +:107F30006F6F8AE66733E4F71F74A13FF374BA4C9E +:107F4000792EB788BCECE7841D7E8B97AFD72D1EAA +:107F5000BE5EB788FCEC787281E490D87762E5C3A6 +:107F6000755AB5250ED95F4E58E5C3998EDF681A4C +:107F7000B46F433900F47C6D81384722E4C5407109 +:107F8000C9331D32F73BB93DED32F59337AC0A9E4C +:107F9000BB1759E393F6B6459678D45F5F9E70B9E8 +:107FA00061C87FB54FFE5BF945B5D712BF283B13BB +:107FB000D04308FC117E0AF1587344F6A31BA68F28 +:107FC0003FDE31F82356FE839C2739CEE5BC49FEBF +:107FD00077E3F3D340272DC437B5EE9964B7D818AB +:107FE00097FFE126E423837F36296185E80EE4FECE +:107FF000431944177977E1FE21E82276BDFBC97F5A +:10800000DFD793FF6B0AACF2DF58CF58F96FACEBB8 +:10801000DF5AFEBF386F3897D720FF312FD758BFB0 +:10802000F7B4905E60CD53D4A429D13C45C32EFA59 +:10803000F1E1DB5760BEF16D39C1C602B45F7D3C32 +:10804000BFF033D1CF6D39A1667C9E7249DD04B497 +:10805000A3D90F795EE2FDF89EF21243F7E1387D75 +:10806000EF77F2EF8DF771F25697923D23ECE5D85A +:10807000F25FE78AF303227F15E07AB4C092F7C873 +:10808000EDADFB0FDFB942E7F9B3DFA7F7225FB22F +:10809000CF5ED3D76D457BCEB0D7361D5EB702F32A +:1080A0009198ABD3837A71534332F94F96CEF38ACA +:1080B000F873D8D306F83B76D5DC06942BAE4D3654 +:1080C000A21F230F69C7E13BB68AFCCD5D84A702DE +:1080D0003E9E612F3E76F89B2B445EF78F089E8074 +:1080E000C8EB16F6E536FC9EE379377DAFF1F9185B +:1080F000F6E833876B09BEF933B5BDF8FD2D687717 +:1081000099F8FCD777A7258AF3EA167F6D5226DF08 +:10811000CF6B3CA00EA17DB7C4191E1B277EDB547C +:10812000CEF7F566297E9C74F2ACDC2E84AB3C372E +:10813000320E8F82547EAEBA45DEF30A3AD723F36D +:10814000BCE7ECF5DC4ECCBEDAD68E67D25F58C801 +:10815000D76D203B71B8A697E0F74BC2321B8A5D02 +:108160009893D548FB841A007DDD8BF37A8AF7CB90 +:10817000FEDFB613375DBD9CECC4B3B00FB138F66B +:10818000CF9CAF86A964FF544BE427543D6D1B314F +:108190006E5103FBABCD6DB2FB62ECC1C1ECBE2AEC +:1081A000904F946704EB1018417A4737EAE3352182 +:1081B000B01FD17E03FBD1EB6671ECC30317B40F84 +:1081C0005D0E6E1F36837D887EA858FBD0C5DAE62B +:1081D0002A5306B707D7E2BE1CC76E6EDE59166378 +:1081E0000F6E502F640FD6964946BC9BC75B66AA9C +:1081F00074AF00FD217DCF4AA2786FECFD2E4B8538 +:108200003F1EFFFE9CF36885E23C1AC3BC9FE4BF9F +:10821000C5B9B4DD1ECC9BAD12719AD603BB18FA5A +:1082200087AA32C11EA0E7CA236639629C4B5B3A1B +:108230008FF1F8733ACFBB3933A1AA07E3583A1B41 +:1082400091259BF2E6EA8AB9DC3893C1E546536A88 +:10825000C89365D22F1BC5FB268761E7321DE3DE7D +:108260006F5FECDF6A3E0758365F31CE1706E79343 +:108270007F56A7F177CFD616CE9F1AB5678DFDC270 +:10828000F8EEC6F95CBE2C9E2F89EF838BB13D1BA7 +:1082900021EE1F7045C2B651E63812F72F1AFEC6FE +:1082A000A35BDB153C57BE569C23610FB759EE65A7 +:1082B0005921FABD2D475B817095E768D55866DB7B +:1082C000D6FF0AFDBBD963152FFAC79A1D91DF4867 +:1082D000E49767FE6DA9749E6A1CD2D11C688BFE60 +:1082E0002F9093E3D04F99FBF03564CF3E59CEFBEE +:1082F0009DCB6AED480F05AC8DCA6FCD0E7D13FB8B +:108300003F38E17AFB08803710286BC4B27876706A +:108310009D81177E8E8FD3CBEF6786EAF039E85DBB +:108320009407E2F48549DEF7A7636B7CE427E51C3C +:108330006F2B73B47F447CAD9BA9D5633F79B38326 +:108340000D34CE40E705C5BAC03ED584EDDEB6B5E6 +:1083500075A68CA3F3F12D1C3ED63626CEF978E314 +:10836000BB23C22E3C9A0CFBBC894E9E2CE174921E +:10837000B988977255B800F3A45AF1620C28F7E453 +:10838000851E41385B33973B705E4D8B00A62CEC0D +:10839000BFFBFE0C985F8D4F7A5E1A0625D23EF920 +:1083A00053BBC93F1BEBE768FCA5A8EB25ABF09ED0 +:1083B00094A8DFA37415B6B727F0FA53474AB6E37B +:1083C0007E5DE315E772DFD1BC66BA786E3E971723 +:1083D000F7E46ADB112EA08B1D38FF13B93C8E1712 +:1083E00067FF7C86D68985EECF9068DD7E1C6FDDC9 +:1083F000603D3AF139ACC76EEC17D6E359A2E741BC +:10840000D66320BFCF8BF3393E7FB0B08F3F7E66FF +:10841000E60F80FB25AC5F00EE833170BF3200DCDD +:108420003F17701F1674F4EA50E8C839E5C1F72801 +:108430001EA0277AA5D998AE02FC2073FAC6B8FA16 +:108440005CD405D15E948C757D6E279DC3704DF90B +:108450002DDA8D6AE1A71DEA5494FFFE31E8AF3AA8 +:10846000FB4AF1AAE6E9A8C774DF8AF5596F7D6770 +:1084700085FD7A60EB0CBEEEFEB7BE437A56F95826 +:10848000FFE512F0655BF1971DEAF5263FBCA013EE +:10849000C30F0F12797B0DC050DE1727F8DF1427AA +:1084A000284FD23D1827935FFD5307C6C98EF6C5E6 +:1084B0000196ACD14647C7DBF186B40DCF0539DD57 +:1084C000DE8D188770BA25BF8E52FBB4DE9402F0A1 +:1084D0007D319F4530A7A3EF5C12FB4F8A13940FA9 +:1084E000E7E33D50FC5935C11B5367995C7F04B9E4 +:1084F000F47BC4F307F3B9BC76BA35C7481CC7038D +:10850000E380DC58E4B6CE6B9197D79F58F8797525 +:1085100033DA49EE603EB51FCDE1BA81C1BCDC382B +:10852000AFD235185F3BAA68E9B87FEE58B8644D02 +:1085300000E4BE9CDC48E75B549FF5DC9D519E1532 +:10854000F15A369DEBAF005F52E1487CCE04BF0488 +:10855000930BA7A2DCD0422E99DFFF53C8F7CFCEF2 +:108560008BE2DCFF63D82BE529FACAA029AE77DAC3 +:10857000E396902E366D297F14ED96B31D17A5A2B4 +:108580007CEF34E26C31F1BD33633A75B4D34F679D +:10859000D86BB7B8FBC7F9584CFC2E36DED721E4B0 +:1085A0005334AEC7BC18D7FBAF8EE76D7071BD30CA +:1085B0001FF38660BCA45B77330C99CA7704299EAD +:1085C000775C7330FD6F18CF7B4DAC8F5DE1F9693F +:1085D000A01351FCF5F98606B2E35E2AE1EB31B94E +:1085E0008CD34575D0D097F465690077396010CF8A +:1085F00015C8ED3F51315FB37574E761D4D39A1656 +:10860000CBFEF530FFA6F6D59BABA0FEEEE52EF235 +:1086100023BF9BEA4D46FBBED5BDE1528A1BEB232F +:108620004F1F76635C9CD3F54DAFBEB703E5F61BD9 +:108630005ECE7FFF567AD769B483E05B3733AD9364 +:10864000A2666FC4FC343547A57C29D33AD07AE3BF +:108650009FC3D41EF0AC4F9D427A83370DC7F5F00F +:10866000F61E76AA81F24A800E14733C59AC932A06 +:10867000EC0FF90EEDBEA9B89FB96537F2A5B1CEE2 +:10868000C6B9C4D8757531AF65DD9D952B280FC966 +:10869000F033390BACEB96546CAD83BD6259B7DC4B +:1086A000CA15A42FE7029D78F15E00940750CF9B76 +:1086B000EE0A4700BE43D1FC46CA3353055C81D461 +:1086C0008D3AC27D88B97B91BE14AF951EF2475496 +:1086D00035A662BFAED42C8CBF42B723308ED152A8 +:1086E000E8B2DC8F629CA733EC9BA397746AB8BF97 +:1086F000835EE6463FD1718C5F3AF01C5E8382F563 +:1087000024CC0AC860FDCED719F755ADC5FBAA2405 +:108710003C6FB73582ED4F6732378EBF3620E4A805 +:10872000FECE0ECC7F19EA3D0129C7BEBBC37A4FEE +:10873000C0C61DA8179EFECA88E7D6EF40B93C7098 +:10874000BCF71F569BEF09D857F8F94ECC97889E77 +:10875000BBBCFDB7E67B027A0A975D6EBE2760FD63 +:10876000CF1FDC61BE27E087A527569BEF09D857AE +:10877000BA69B5F9BCE9AE639B578B7B027E42F2C6 +:10878000739073D1BF2EE4F704F4140EED9E80FFB6 +:108790005B7131231E06FAAA9E80FA6A8A8DEE79F1 +:1087A000018B8CDFA316E38FA817FE8407174A42BC +:1087B000CE0FA89FFE12F79D81EE3788147A795E5E +:1087C00041FFFB0DDE277CC69CC7C6F5E2E7B1433F +:1087D0001F159AFD5D87ADFE2CD0AFCE14925E1CA6 +:1087E0008A98F55E78FE8978CEF87D93024E1177EF +:1087F000418F30F6B38885B93E041200FDF68BDC5C +:1088000061CA5F60FAD554FF78D7A3EF61FD9E86F9 +:1088100044AF4CED3A19F2DB7F1672B94AFB3BB616 +:10882000F7318E473BF72F7E5C220DC7F3AF513DEA +:10883000AA7727D2778B03F4200021B5E8E655EA22 +:1088400098A81E754911D30240DFF73898A13F1050 +:10885000FF108A899EDDAB502FFAD861E5AF1B98D7 +:10886000D17F32E94D861ED6FA66DD0AE42F432F0A +:10887000CA78AD8EF4B081FACF38B27E65B32BAA38 +:1088800027013C11F42B2B057754A27EE278EDFEF4 +:108890006D6AAAB53DE50719FDE9EBB7919E18F39E +:1088A0001ED6774C91C98F39587B56DCA7C78C2BC5 +:1088B000223DC62BE2A8D6BC0C63DF8BDD5FEF291F +:1088C000E6EBF2AF01ED1AFCBEA86BC39DC138ED1B +:1088D000A61471FDA2684EA707F7CDD631DCEE8E47 +:1088E0006DD755C4E91EFAB914DB9D6E88DFEEA67C +:1088F000BE765BE97C48CB01DE0EFB2F33B5CF2D76 +:10890000E2FCD49A1CDFEFF74E9161FF060384B7B7 +:10891000FB383EC06EC82F9A8AF66AB000CB3EFE86 +:10892000CAE2F62ED8AB85D4DEAE939DD1EAE07CC8 +:108930008F7BB33C2B8EFCF059E547ACDCE8933FD2 +:108940000B998EE73EF266876EC4FE8D38FA60762C +:1089500046D11C7E4EA62999E321D68F3043E021D3 +:1089600041C815E39E36BCCFC0EC27FAA66867C89D +:10897000E95B8B9E5B6996D3B7BF96B8C62CA741BF +:10898000AAED427BA02481D7FFFEB5FD061DFE1D8A +:10899000E28DDDCDF1B90A1D47567FBCE5DE80F7DB +:1089A00034ED5B38DF9201E2B2DF89AED377A8DF26 +:1089B0007586BF9BDB75B1F7736C28EA773F47017B +:1089C000F93F3AADFE8F0D7DFD6A1B70FC3959727F +:1089D000309EDEFFED32A177FB0E4764E33CA297A9 +:1089E000F85AB3F85BAE0D5BFD2DCD6D96F8F083B4 +:1089F000D1F11E2CE27ABC86FAB211EF3CBAA32167 +:108A00009FEE13B48515339C0141EF479FE1EFE7DB +:108A1000283CEF29F6FD6F857D00F4FBA4A05BEEFA +:108A2000A7019AC5FD28DB36A95B23BF8EE46F0042 +:108A3000F80B330F907F3B174C47CC9BCDF3E5D819 +:108A4000312D297F4A552396DF9A1DDA8970CECBC6 +:108A50007EDF8F7A62F6FAC8B8361FD1FF0F8AB868 +:108A60009ECBFD7A82EF910ECB4C70ED11F4D43495 +:108A7000263EFF9D2E36F4E53E7FCF734543F2F749 +:108A8000F07BD3522E51DACDE7353F2EEBF3FBFCD2 +:108A9000AC88DBEB2F15717B3D82F036A53789FB67 +:108AA0000BE2F39191AF67F8D38E6ECD7A19F7A3ED +:108AB000652324BF8DAF37F9D7968AF77DF32891C8 +:108AC0003C782ED7C8BF5B5F766027E58FAE938476 +:108AD000FCFFE79DD67CBBB76A886FFAF2ED8ED1BA +:108AE0007E35A0FEC55EAB41FD6B4ED6E46E07F44D +:108AF0009FFEC6CB3B3DB05EE5225FFD57AFBD4D4F +:108B0000F9A34F083E8BE57FA37C4BE07B20FEFF63 +:108B10005CF08DC1FF9F14FDDEC2FFFF5EF477ABFA +:108B2000D47413FFB39AEDE6BCC1FF78ED2B83FF3D +:108B30003F25FA16FCFF11C235F282FC7F16D727BB +:108B4000F63E1EA3FC83A06FE8F70FD4EF20FC2FA6 +:108B5000170F8DFFE5E23E7E948B2FC0FF878BAD14 +:108B6000FCBF96F5FD11FFF7F1EF330DC4FF351D86 +:108B7000FC7EA158FE4F8D8E975A6CE27FC31E3942 +:108B80003A4ECFA77B406DBA62FEAE8FFFB71AF4A4 +:108B9000B46525F2B111C77CE2B56F6E17F1B5313E +:108BA000C5C84F5338DE07D34FA0FD3882C3CFF17D +:108BB000F997EA3BA03F4EC4F1FBF4C788355E6AE3 +:108BC000C4F5FAC7C97A4BE83CA5CF36A43859ABEF +:108BD0006F38C5039DFF9FC4C71471FF746C1C28B8 +:108BE000361E0A7AF8D2E238FA39C38433C3EEC5A6 +:108BF00075F96FEEE789083D74207F0FCCF32E31B5 +:108C00004F2699EC8DB499A17A7C6EE451348B3C5B +:108C10008A840C5B22E64B0C35AE0CFD3789FE35A1 +:108C20009B098FBB676BCDC5A477CAC417D7163D08 +:108C3000BE4DF0D17DC447E25EA7D838FE97F3451C +:108C40005DF835FBFB4B99C17711FCBF1A517FA42E +:108C5000F8B3EA661EE7DF5C6CD2EB0D7F6862A1B9 +:108C6000E8573C07B89FA476C2FFFD33D1CED0AB06 +:108C7000D811CD6B962BF7E4E66E2179A1335D1AFE +:108C800065916BBA452E19724D9C7B626F59FBD969 +:108C90002EE248F7E46A3FC4FEB68B7101EE1F175F +:108CA000933FB4AD36C584C73D79A17D08A75CA5C7 +:108CB0002F403F19C6411A50FF8D74AA18FFBEE914 +:108CC000DB32DD4361F8DF0C3BE960B1E14FCE22DE +:108CD000BBEE6071D576F48F0F66E7940FAFADC42D +:108CE00073428E22683F23AEDD7488F026D667B0CB +:108CF000FE06CAEBF840EC3BB16542B16107737AFE +:108D0000607A9FDDF5068E1BBB7F1AFA1DABB3EEB2 +:108D10001F278B8D7D503B8978FDA888F349EC3D5A +:108D20005E47C7F6CA284F7B8097B7E01992C636D0 +:108D3000BFF97CE359A1971D2FEE5BA70F890E04A5 +:108D4000FDBE5ECCF16EE469C078BF43380DFDC254 +:108D5000C8BBC738B3B9DF11C21FFA75E3CCC92548 +:108D6000FFDDE3CC0D146736CE03368B387365A672 +:108D70004EF7CC540E106736E9B5A92553E3C695D6 +:108D80008697703D350DDFBF24F0BB29C5C8370C71 +:108D900053BEE1156C73E1D530CFE60E89E4598BF3 +:108DA00097FF1E00E695954C23394E7C9AB0545798 +:108DB000CDE7ED5F0538E8DE0B79099D7F6BB94A99 +:108DC0000ACBA67B6B5E4D0931FC7D14A543A2F551 +:108DD000589B2985315493B753A2F5737A78FEDAFC +:108DE00065BEB01DFDD66B34B5771EE633D475076E +:108DF00078DEF1E3AFA05FEBE32C895DE4C57CB4E2 +:108E0000908EF96767F0F786603DCA3A5653FEE0E8 +:108E10002B21572DEAB32CC0EF3951E13FDC078BF2 +:108E2000A758EF3D291C24BFB0EE9DE3130F99D640 +:108E30006D5689F59E6A231FCD98AF918786EBB05A +:108E40007042340FED3FEABB271E82F5C91774F755 +:108E5000F4E2503EAE838197E8BD23E11EC443ABEC +:108E600087B9916E95C8BD87F11E87356FC90CF320 +:108E7000388DBC949A6A7E3E614DF841CA4B598B3D +:108E8000792980A7B5769E07EE0C27501CFD8858DF +:108E90008F5D3EB61EF3B0D49D32E567E6796BDB9D +:108EA00066A25F18FAC5BC9F247F4304F30D810DB1 +:108EB0007BD19F9DB0588F4C867A0BE01FF34950B1 +:108EC0007F32E7B92CF0DAE87E1B032F83E5BD186B +:108ED000F7D934A71BF9892186795F6B44BE09D382 +:108EE000B53770FF8EF261A71DF50155E4AB331F56 +:108EF000F7C71BEBC8E4FB74C4CB97001FEEDF2A57 +:108F000033F9D1112F53AAC8BF5F0274A0C1FB125D +:108F1000BF236EDC65A075AE2BB1E64DEFB2333FDB +:108F2000D255EB5B32C5015B3BF6D2BAE81D369EEB +:108F3000FFC242E4DF0DE1FDC2E82F8C80C6310D97 +:108F4000CF15733E692DEBDC88F7087BBF75A91F31 +:108F5000E57CEB84E71C586FCD18C1D07FCD6CDA6F +:108F6000013C0FBFF40959E27285F17BFEEA52C35E +:108F7000FC778DC23C3F487731ECDFA0A752C13768 +:108F8000358D129DE35CCEFC0ACAA96A16A472153F +:108F9000ABA552623EBA47FFA65ACECF805F15CF2F +:108FA0000FECD2D3A8AECD72A47EA472D7CF85CE5B +:108FB000DD62A4EA2393DCFAC4D867D49087FC7FEF +:108FC000B9A17089451FD7E8DEF1E839C6C3D56875 +:108FD000871AF69C6FD1E10EBAE7F27F98BE38533C +:108FE000F8BB07D217617F8B94903ED7D6AB8C230A +:108FF0007FA6B0BB1FAB41BDE6F9061E37292E9CEC +:109000005483F397B3583EF9A541AFA1737CAEC327 +:109010001FCA56FD683CE6DD187E8085C1B1DCCFF5 +:10902000F155630A9A23479FA9B2BD817E039FAD84 +:109030001DF97B31D35FC673409B262EA4F3F467E2 +:10904000AB1D463E7BDC739A063E9688C192443C3B +:109050005715F1DC258B6A8AD11E888DE3B236BEA6 +:109060006EB1713A3BF3B49FCF88AE83719F96E99E +:109070007B5A87583CB35ACEE799D003C6015D624C +:109080003FABACB6F2AF13ED938917B8D742C80324 +:1090900023AE6AF849960427929FC46E33E851A222 +:1090A000B8549FDF44B7515C8AF637935D6AF293F8 +:1090B000682ADEEF719AF5F9D955BAF7547F200383 +:1090C000CF0FDF60DF517015D643F47B1907172CE3 +:1090D000DB817100C3AFF2C582AAD5E2FE63FB0259 +:1090E000D43F4670FDE78B1266E84509F4DCCBF50A +:1090F000A0DFE373EE874C5A807C26F26E4F7B6CC8 +:1091000005F1FC06CF2EE0FA5FB6CED8D5A09FA51C +:109110002EB0C60DEF11714123EEA788B89F325AC9 +:10912000273F5F6C7F972CE0FA5FDB6C2D1DC70734 +:109130007DFF128243FC1E8DD7C5EFEDC5B81EEE34 +:1091400047EEF6AE2EDC37CE825CC6F9EB8821E422 +:10915000ABF1FCBE07457D42C3BC475562A7F03C5E +:109160005DCE930F33946B49FBED2C01F82ED86B39 +:10917000B39C3B9813705AEA263EA67D2636FF32F2 +:1091800096CF93300101FA5FDCC1EF4D5A739F3BDC +:109190001FE34195E718DD9B64E4591AFA0CFED2EF +:1091A00022CA8104B1EFB858AD86FB9402FB08EDEA +:1091B00043016BDE65C2F81A920BEE99096E9C4F63 +:1091C000C2782B3DC6D2AD0E720BF71127F61727CA +:1091D000EFD49DC8F32A9A613FA73CCE287FF0F9CF +:1091E000C6EC930D1537D1B98E8F2728E2DC976432 +:1091F000C1C770ADF310EE2B78AF4CD8DF1F3F4ED8 +:10920000BCF90EF55AB1BF6AC25FE0F42ED7EF1277 +:10921000F3A2F878CCFE9A26E671B3F83DC67EFE3E +:1092200083987905B5E332EA372B16887DD5C77C5C +:10923000488F573ADA96217DB4C0BEA963D9D1418F +:10924000E70CF527EC748F152600DA4DFAF9C18A80 +:10925000170208D7D9DA147F02ED93610FD2CF95A8 +:10926000D21809F3CB5BAE6ABA047F62A965DB450D +:109270005E0C4D07B59C069C3FE81192EC179DA033 +:109280005EB388EFAB465CF54C4388A17EA44BC926 +:109290008CDF23A65562BBA5A047215D977A6AF9AA +:1092A000EF5C82AC263CE33D02A330BEC848AEDE94 +:1092B00010D86B473DD43DD6CE52A647E3B029B671 +:1092C000537EC46F093B457958A5CCEDC07221F39C +:1092D000D3BD231520F0E87E0FD646E54DAC93CAEA +:1092E00025EC9483DB1B5EC2F32D995CDFDBBA2097 +:1092F00083F8BB58650E5CDF165F7732DDDF3948D7 +:109300003CA851E2F11E1D6411DE6FDE175F9ECC9A +:109310004232C843ED0F4C32EFFF52F8461E2F2A5F +:1093200003924D072C2F18CBEDA547FCCD09865D88 +:109330008D7CD228597E97E7EB9EAFB4B1F006BC86 +:109340003F618D87911E3213FD98980FE5619AF960 +:10935000BEC9FB16F07B06EE13F2ADDC1EA4FBFFCC +:10936000F062B7861998F7B290EAE577C35E8D7917 +:10937000F39F4DA17BCDDEABA4BD15BEF3D277EF3D +:109380007C7170246E7795EAEE97DDDEFEF6B431DF +:10939000DEF30BB85DF9C282BE38D00B0B4CF66A17 +:1093A000CA827EE7265E32CB67C34F1C2B4F7B857C +:1093B0003C9D93D5E59A8C74966E233AEF17A710CF +:1093C000E32F2CE0BF77714201BA8179BDFDFA6DC0 +:1093D00094B71064DE8D29283FECAB56575E45E309 +:1093E000BF4EF0A9E2DEFFD3F1F3C9DE5AA018F3B5 +:1093F000798BE075717887217E4662BC06C86578F6 +:1094000034EE0292DFC88B3B89ED832CA4A35FC4AA +:1094100018B70C2F2C26BDE68E1D186F781EF77C12 +:1094200023FE0C7C703C59BC67DF5A8DF755C47E17 +:109430000F70FC96E016E3BCBB80F1BC8A0542AF1E +:10944000B4F3F918FE0FE3DE3063BDAA829C1E62FE +:10945000CB9FC7AC8FE18F8FC5C7C1E8FAFE9EF0E6 +:1094600021CEBD1C443884FFDFFC7CF07C143EFF21 +:10947000FD85B7AE6C88FF7B0A04F7E852BEBEB12B +:1094800065F43E7A03AFE5DBCCE76AFEE3F5F295DF +:10949000E21C8EAB746A94DE8CBC9AF3AF9719EF22 +:1094A000DDA5D8DFDFF8F715928E050D7FD6A5A5CF +:1094B00026FE7094F6E12F839EC7FCEE42CAB1D21D +:1094C0006D22DFE672827389711FFE857F87A1435B +:1094D000E0E9E858CE5FAC86FB9D12C7B9598BE92D +:1094E0003CABBFD466C43DFCD8BF71DF3BCA429BD6 +:1094F000299EA2ECE4F206EF8F37C769A697F6F92A +:10950000BDA6979AE244886FB37FECFA68BBEBB1D3 +:10951000DD40F1A14069BFF890E08B0EE21BE37ED5 +:10952000F9A2637B76F0FBE5B76CC073264AE3CE05 +:10953000DF618A1FE0A9B0D4448781287E4B08BF31 +:1095400031F94AB1EB555EAA18EDCBA97D341F273E +:10955000AE9C585C6AEFBBFF9FDAF7FD4E43C4F048 +:10956000F3F9D1CF37C711A6F307731CDCAF9C9A70 +:10957000BF680DE6D5B4FAC64F22755EE0C7E8F7BE +:10958000A519A1EA52F21FB2886D12FA3DF87DE6E4 +:10959000914276C1F36B9BC5BAC796B1BFBB5076FB +:1095A0006CDB0EF3EFA2DC78EC8757629E51D4BFE0 +:1095B000A5AB8CFCA9211BEA1BFA44FE7B97CDBE10 +:1095C000CFF3283F0BD7F802E7A2EFA9E7F7B1BF27 +:1095D0002AEE37329E37958EB5ACAF9A5F4D7EB48A +:1095E0002247E7083C7FAC8EB6EAB5B1FD16655A56 +:1095F000F5DC0D9E6FD279DF33E27EA6333B571C3C +:10960000467BF80B8FE245BFE4BDF5E15F7DE8885E +:10961000E65F74A52B9139E82FE9A8DA8EFE15F4E0 +:10962000C3E1F9C5EF97F23C35B56337FD0EB13AAA +:10963000FE79FA3D2A252C75A23FA926B39DA1FDEE +:1096400093E409137F44847FBF2853C62BBFFBE0FC +:10965000013A78DCCCDFDF28E572BA2995D1B86B06 +:1096600041BFC673CB793B1B18DE9B3AD0789B4A2F +:10967000F93E5CE36BA7FBFF933C9D76FA1D88E8FF +:10968000EF5158F6CD7D629DB3FAF82CF80CF181BC +:10969000F83D8A2C01073CFF277A1EF3BB1A03E52D +:1096A000F9997E57636FE9C8683FCF967A2F1837CC +:1096B000063BE805C403D841FB4B4D76D063827E60 +:1096C000D9D7CF8BF54A7F415EECA1CA67B583D06D +:1096D000FED027C95E8C4FF4CF938D88DF8B6061FD +:1096E0009DEC870BE7C92E5C5463F19F3A31CFD5CF +:1096F0006C077CED3C5999F26273A7BBC2E88FC836 +:1097000063FE46E4873F373FB659F85D06CA938546 +:109710003E463093FDF3EE9810B7A7449EBA09FF7A +:109720000AFFDD5D2BFE6197A0F1ED36E67DDC1DC5 +:1097300007FFCCBFB1624AF41C35FE99FD1F981F8C +:1097400088F689C2DCDC6F25F0FD7F005E751E0D9A +:10975000008000001F8B080000000000000BE57C6B +:109760000D7C54E595F7B977EECC5CF2C504020C9C +:109770001AE026808CEB80930F3084AF9B0F144847 +:10978000D0C9072151B0038A1B10B7A3D0956D75BE +:10979000B99010B249D6C656FAB696D691A20BEB3E +:1097A000C7A6D6AD1FEB76878FFAFA12A291B2A8A0 +:1097B0006B5B232AE247BB54A4B5BBBABCE79CE76A +:1097C000DE997B8749B05FBF5F7FEF3BF991CB7339 +:1097D0009FCF739EF39CF33FE73C937AC08F069034 +:1097E000E9D716EFC803F05FEAC25FF8CE0711CFE2 +:1097F00078000FD517E253FB216CC3FAAFBC340AD3 +:10980000E43280B6AC27F483A500191F666B2E1FC7 +:10981000F5578CA100F0E7BC39A632C7ECEFA227C0 +:10982000D6AB667D01BEBA5DEF998DE375FB5C3EFC +:1098300003DB4A60EB8FEDB30074C0F13D6559B1B5 +:10984000AE027EDD43E3A9D67A9B6F8238F6F7AD90 +:10985000CD8A8EC6F5642E71BF6D9F3FA3D659AEDB +:1098600052B1AC26CB95CD6DC66C1CBF12E08C8678 +:10987000EBAF8288BE0EC7AB2AF3FAE22180C300A9 +:109880004BFA7011D5B92BAA73F1FD6135B7C8A594 +:10989000111F14C7389DCBB0F36C80ABFD1200F5DF +:1098A000F78D7BD05560EFBF4E5D6B3ED7E0B324A4 +:1098B0002C038CC3B20461AA3F4F9F45C967719DB9 +:1098C000C4F51D3401AECF7812620FE1AB99194394 +:1098D00051E2E395EA9B077146E8F39554E5E27A95 +:1098E0003EA88ECC0B63FB627F4577019641192C15 +:1098F000ACCBC6F6B74BDC7F5500629A4483C5E219 +:10990000E3B15CBD5182FBB15D8E4B5326E0FBAAF7 +:109910008D15B52BB15C15CECA3B7505362B86620D +:10992000E23F682F1C7659FB8F9F814BFBF4B148B7 +:109930005F2BB25CC6715EDEBA05DE72E33EBAB77B +:1099400079A89CE187101488BD91719FC2663F3849 +:10995000342A4E7CD9B02A33360AE73B1AFA5E9C89 +:10996000DA9F0E808FF8B901190197003CF352ED90 +:109970003A03DFDF56116E0C233F5F917B4312AE3B +:10998000E3CC7260FEE2FB95D6FB1C7C1F9F17B9EF +:1099900081CAF8094EC2757EC19CEE7A591F0F53D9 +:1099A000E97F06F3F1E77A2442FC51AAA4685F102C +:1099B00048807489E4CAEFDBD385537F44E38FE3A7 +:1099C000F16FA276F0646F283C13E097D78A793F55 +:1099D000A8D6D7D1FB7B6468E5FE167D92F8BFCB95 +:1099E000BD461F4BF4833686F8DDB94CE27E16FF88 +:1099F0002C791D981A3324E203D28D12001BB43E39 +:109A000088E2785FAB8C6C223A3283064482C49F32 +:109A10001FF0B3572F1E1D49231FD6D3136B007D94 +:109A2000ECF0F51DB4DE34FD7F1916F2B58DF63B72 +:109A300033B9DF179B2F93E62B19BEBEDBE28F02F3 +:109A4000A138F221F3CE19C55D5AB2FE5BE6BC899E +:109A5000F1E24D3CDEEACE46A6E3EBE16C87FCF595 +:109A6000EA4FB0FC9E8D40D45534C2BACC71DAAA0C +:109A7000C2DFE6FD53752D8CF23F65A1BE9BCA0F78 +:109A8000EBFA77E8D9FE2CB09CB160E0A6289942A9 +:109A9000EEC0A8DBD78A740F148AFA7706F7B41AD7 +:109AA000F9CC0FD63F6761E4F95D9D4DBCFEAB5E1E +:109AB0009541B7E985B94319A0DBF4CFBCD3631C4A +:109AC000E505672E71B45FF449A1A3BE02AE70D460 +:109AD00057A9258EF262DF3C47FB6BFC558EF25294 +:109AE000ADC6D17EE62737F33AAF7C7A83A35D51CA +:109AF000FC0E47F9BB8B22FF9BE4B1E4852F3BFAB8 +:109B0000CF1EDCEE6877B0A97CF410F2AD5D826602 +:109B1000DAF72CF079EAF0DCC899F99349CF79B7F4 +:109B20005CFA72B54D3E8F850BF95C789528F8B8D4 +:109B30007E32D743BBFBC3849EA63D807C1FCB25D2 +:109B4000083B70E2CF442F65567FECA2F680B48EBE +:109B50009E08B0ABE9595FBAF3F2A3B9915F10FF69 +:109B600012F2198CBBA9DDF7C2429FA09C9E61BD79 +:109B7000A524E4F457543E9B721E779BED7F360973 +:109B8000D8AEA00D8CED1174E481CD2E831231C8B6 +:109B90000EAA5A5EB42BE4B0B39EF3C26E82646F19 +:109BA0000F11B67B8A0CDAFD6448FCA2BD1F86B695 +:109BB0009D27C5946AF70373763461FBAF54A96798 +:109BC000C8EED3C7857CE42D921907C097F348FFF0 +:109BD000813696EC66F30F40267B89444B215A5F11 +:109BE0001FE3861CC40DB4BECC69CFDD29E5FC3E65 +:109BF0007821CE7CE8F6032A527C69343F3F0DDBA6 +:109C0000D79B7D53F1437D632B901E7A3E92158541 +:109C100032C60BFA3A2CFBCABDBEDF0F2F4CAD2665 +:109C2000505205A176925FCBBE430A2EA9CEDD61CC +:109C300010AE390CBE33AE503ABCA0F1BE2ECE5B96 +:109C4000D34EB8A2324BE00A843B79747E9A1488D2 +:109C50002B6300BEBF502FADC37673EAFE3CE47F9A +:109C600017EED920D1ABC472880FEDCF46647A6F5E +:109C7000CC92630FE1F8EF073FAAA2F1CE920D1844 +:109C8000415FEEDC8A94CE0038B2150DB137F9FE93 +:109C9000863AA11FACB2BAF86695E6A971F7E5114C +:109CA000BFD57CD9A17F52C7AD09643AEA6780A1CC +:109CB000921DFFBBADB1D7DF467EB4F9F7A8A4AFC4 +:109CC000BAB4B52F90FDFFD8EFD1882F1DD9A8BF0A +:109CD000F0FDA1899EF8A252B2CF9187BD123DFB43 +:109CE000E0B299B44EA411D75BDCE8E2F56D98F6CA +:109CF00034F3C91393FA46E13CAD817B3D3AD2BCC3 +:109D0000DE1F53C86E7F2FEC633B571370E10A923E +:109D1000EB417CF145DA4F9826F0C5F1A5C0ED2066 +:109D20002B36D98D7CEBD8960D5D38EE94A51ABFF5 +:109D30007FDF6DF87B715D2F155C2DADC5F759BBCD +:109D400064F086D88EB19D3D4AF287CFFB728DD5E7 +:109D5000617C76D6C9BCBED4E7CE1AB11E4452632C +:109D600049DFE03A8C3A2A578B750C2000A67DDE3D +:109D7000FFF2E987C8EE215EEAA81B012FDDB819C2 +:109D80007F9503FCEDCBEFAE33141EAFABCE869BBD +:109D9000EEAA137A6BB875EE36D795FAB4D6E75AB1 +:109DA0000DA65DCEDA5F81ED1B64517EBDFF957D12 +:109DB0004690E7FB26CFD787F361FB454525836EA9 +:109DC000E4CBC4633FDEE7CF4DDBFEBBF6F5DD6BD6 +:109DD000AE0FDF3FC8EF9F16EF4F7820890F503F3F +:109DE000BC744631CBFDADADCAC5E7392D89F22330 +:109DF000C4C72C1EFF311E7F89187FF95451FFC044 +:109E0000CBEFADA3FA46305ECD237B6264C043C87E +:109E1000DF465FDFAB79A554BE5CA33222909F532F +:109E2000BD07F2A18BDA4104EA91DE674CFFA05135 +:109E3000039DF58F82EF71FCAEE5D218188DFA51B3 +:109E4000B2E878671FC965A73B349DF4F0C0CB1F0B +:109E5000B4AA0B00DE73830307B11E29A75FF3D7F3 +:109E6000B762FBAE94FA1589FAB9FB5B99CEC18D46 +:109E7000A851E02BC77EB14EC1F1EE2B10ED8FBF84 +:109E8000FC0B961FA4FBA85DCE9F33F95D7F3AE6DD +:109E900042DB022FD7BD715A2D32F5F6255C6E25B7 +:109EA0007E4050ECE76D15FA4FA8FF8FEACCF351D6 +:109EB0009B787F82DEEFAE718EF7461DC4AB43C93F +:109EC000F1C0F8CF7D3A8ED73046ACFB0D1A3FFF7C +:109ED000C2F2B13AE1B74140AC13D7FD16EF97B9E2 +:109EE000EECF9625E4E414BF8F8A755CAB14F54E73 +:109EF000A7798F5CFF50161D858018F7B9651BD7B1 +:109F00006D9B26CE3B7A205003B6CF1CB68F00A6A1 +:109F10003DD62CBF80FD94BEC387707FEFA9CF884C +:109F200076E1B867F5830AD9D565D0C776B026E45F +:109F3000869336BD9619C0B24DAFA801C5514F9C4E +:109F4000D06D76103DA2248EC3F268D7B6C921E445 +:109F50004FF316D737DE46FC75FAC0B73C1AD2DB92 +:109F6000BC771BE394E62D1E7E6FE9D52ED47F27A8 +:109F700051269EAB31F99515F1137F16798C7574C6 +:109F80009E614B6F88E4D26A9F552F997CD3B3EAC8 +:109F9000916FB7D4087DB6081D031DF7A0B6E4B3D2 +:109FA0004B691E3012FB9A4BED967BC5FEDDD9FF47 +:109FB000DC3A3A4F0385675C84BF5F45B3B007E581 +:109FC00005DA7B4375B67936D508BDE1AB17FBE4FE +:109FD00029BDF7E7E23C8DD2A485A8DE20AA804BFC +:109FE0009C1B571EF9E78CA1E03DC992E7B1FB49E4 +:109FF0004E3C59A5EF909D6E3A96B75F1D9794EF32 +:10A0000068FD8BEB944949F9DE58FFA225DF817A80 +:10A010009B7C6BE6FC0D8578CE502FDC746CE27E69 +:10A0200015FB3578CC798CC9FBF5F958CE302693E1 +:10A030005DAC3B56B05F998BF425F4CD55EBA9DEB2 +:10A040009A27722CB09FE6F1F8B41DA40F3C3E296C +:10A0500044F1114BDEEFAE4779F7D9E57DE17E3A69 +:10A06000E7967C5F716CE17E63FE85658F4F778F2D +:10A07000633D8EE301E91B8B0FA09330A23EE1729A +:10A08000F3B1F1EB3B892FBEF0626E9F2FE65F814B +:10A0900084D0FC75C7A6AF57265E7CFDC8A7E5CC6B +:10A0A000A752B1CFA74D3F21D56EDF502FE221AE91 +:10A0B000EC76F67B553FE8B134B87A778DD07BA744 +:10A0C0006A4D7B5666C94FF87A9E2724F66366BDB3 +:10A0D000D01B031EE33692CFFB0A84DDB1C6F9AB79 +:10A0E0007A314E9D39AF4DBFACA571EA2C79BA805B +:10A0F000FF09BD184FA844FCB5FED8B8F59D4187AF +:10A10000FEBA95C6B9C25C4762BDE63C6BEACDB209 +:10A11000697F13F5D5093DB4D9C9B78BEADB2FD3D5 +:10A12000F9B1E83F68EADB7FAF738EBBA1DEA9EF30 +:10A130007AF5B59FCBBFFD53FBA91ED37F1ECE8FF3 +:10A14000FC56BDECC085D6F342BF71958F70B2044A +:10A15000BA7C9E9D13C38AEB7CD7CE9FB74DDC455E +:10A16000F69FDF9B7CEE34E74F951B9719CF79DA8A +:10A17000D46BAE65265E49CACD7E1AC7B54C8CBB82 +:10A18000DC0551B6CB83BA467639817B2B2B1FAFCA +:10A1900017F1AA9B259BBFA0CB83F3C95FCA0C8094 +:10A1A00046F1928CA0907F7815FBDBF4DDC34BC5A4 +:10A1B000FC3B2BF5A7689C874D3AF6A5C8D3A6852E +:10A1C000FABF50FDB6A60CF697DE9F0831C2B397D2 +:10A1D00041AB417E5A5799D747762689E711A51298 +:10A1E0004E08D4AF277938B7D7AB01FB57706C1A3C +:10A1F000DAA9E5607D06ABA9FF32BF8BFD382815D3 +:10A20000FE928E3FC4FF65FACDEC6F59F1D86560C0 +:10A21000F37B50666F883AFD290FD50792F5FBF75F +:10A22000E2FCE4C7ECF36A143F25DC1DF7B27ACAFE +:10A23000598EFCAA33F955B7EF1FBE3906DB3D0F27 +:10A240006A94E3D4D5EE9334AE8A3FB48E2339D1E9 +:10A2500041379D5B4D866D058CD3391EB5FEB82BFD +:10A26000B484E473AF888B660624E6CB94604C29F3 +:10A27000A4F6BA7AE61AF24FB70CB29FB7AD6943AB +:10A28000DC4BFE5091041378951120FED6968AF986 +:10A290001274C4DEFD29E430BD27EDF47AA0E7573F +:10A2A000AE594CE7493B9D5B7EFAF2ACC336F9FFF1 +:10A2B000A8DE19F77A63EBD3F0D6742CBB56713C49 +:10A2C000EE0B60E23CC403244FBB9A9E55D7E27E5E +:10A2D000FD66EBE0ACC368973F35E5F28196C8A711 +:10A2E000F5F6F85AD0E7217DAAC19943E7918EF798 +:10A2F000D16F26FBD7B9AF6134ED7757B60121D2C4 +:10A30000B7F1BFE925FFA33520C328AC6FF5F77A75 +:10A31000C82E1E35F9BF5E81EDC4CFCC982BB60D8B +:10A32000A7DA1F8CFACAC94F3AEE0219F7A36A9F3F +:10A33000E027EAED9817FBAB2149A5726D50C49D4B +:10A34000D5F9FF6C10FF4153582E3CA5DBE2255890 +:10A350005E8EFCD6510EAFC57D8ADBF10D24FC78F4 +:10A36000F9BC88B16A8A3D1E01CEB80018FA318A5C +:10A370000358786B1735447ADE2B80D876EC5FB3C0 +:10A3800077A75148F282F3B1BC0485DC5AF282E728 +:10A390002444F193F7FFDD1542C94FECB39A22BF75 +:10A3A0009E7DB8CFB89FCB43A9729CD8E7B747DA58 +:10A3B000E72B1BB21DF19DFD669CB41BE592EC4B97 +:10A3C000F7DE275FA0751A7BE5D074EE6534131DA8 +:10A3D0001190438CFFE312C7476E30CF41775D9FEA +:10A3E0009BFC426DD3E410D9A1EE993F74AFA1F864 +:10A3F00048411E64926D97F5036BB1BC7AB74BA2CE +:10A40000F3CE1FAADF921BEBE27C80E1A17DFD026F +:10A41000826F1ADF92A7EB62228FB1BE5DE2FD5C14 +:10A420000B210FE1D49B21CCCF5B20CA4F098206C0 +:10A43000EDF3F55129D4C57CEB5B7209F6DB6F8C2B +:10A44000E5B23ECF9D7B4A65080BE9EC4A428F237B +:10A450002E3C65C3AB15451F1F3A9F6793277F446A +:10A460001E2C25BDE08AC9B8B45DFFE862F93A8BBD +:10A47000F2C57A0AFA38FED58CF2C574AA4E794133 +:10A480003A1757637D0B2A30D25B83147F60BD621D +:10A49000B889FEF5F3DD40FD52E52E8D9C9D986652 +:10A4A000C3F52D91A7AA77948A7C99B72C295732A6 +:10A4B000FE905CB5467ADDDF20FEEA6A540B915DC2 +:10A4C0008B8789AFA49788FF2D11A71CADBF59E4D6 +:10A4D0009F22A89F756C1FB9CB198F9AF2E9175963 +:10A4E000BF6644B2AC389F43DE3A0361912FABC5DF +:10A4F00035E4923E6B5349AF414861797AAF0E32F1 +:10A500007C5792FFD7E7BF17CFFDF606817F5E9A93 +:10A5100079F501477CA1C1A98FA62C35ED8B8AB8AE +:10A520001FED51EF427D67C36C8A1384FFAE8171CA +:10A5300097382FFFB644E08B1395863F8CFAA3B073 +:10A54000C66997169C91537044460A8E18EB28579B +:10A55000A997A6E088A98E7A0DA28315A49F758578 +:10A56000E5ED1ABF1387781F748D223D7EDBD5C0C1 +:10A57000EB5A7459EF64B2E7EF4D17F19ECC6AC500 +:10A58000989023E2B86BD2E0D21FCD5DF370834385 +:10A590009FC6DDD4AE12220AC9FF3560B07FB11468 +:10A5A000199C57407637F228F1A3BABAAE3D0FD7BF +:10A5B0005373E5CC7CD2DFB50BC38F3770FCC5007D +:10A5C000E21FE9717AFEBA3CF204B5A7757867D14B +:10A5D000F831A0F6F7505C81E26AE52AC7D500861B +:10A5E000186758EBB8DBC401F4F9F3F6331F9C4C41 +:10A5F000F6C5F233DF3FB01E34A4A3D96F8CE867F1 +:10A60000AE43FF9FF8B2B95C3F4E7CAB5A183EC1D7 +:10A61000FCCBB2F8971EE7ED9460D434E2DB802BDC +:10A62000F410BE6DF242D4EE6FBCD12070DBC70DCA +:10A63000827F9F3B9FA5A6CF6759E324E423259FF4 +:10A64000F58B863F2C9F65953DF1BA11D7E931F125 +:10A65000E6A1A665728CE3E3857B486F76FB659D7A +:10A66000F4CDC73FD5F6903CEC6E90CC38A0902747 +:10A67000D28F7715A3F7F649100CDBF83F34F5E3DA +:10A68000D3667CF6D9AD3E8ED73EB7D5CFE51F6DEC +:10A69000D5F819DF1AE0F707B786B87C786B1997F9 +:10A6A0009FDFAA73F985AD4B1CF1DDDD0D1ACFEFED +:10A6B0008937323D9E9878EA741E4C5C932E9F82B7 +:10A6C000B86642631A5C73766FD575E51A590F74D4 +:10A6D000C38A2FECA7F4363AF2A3449761D2659867 +:10A6E0007419265D86499761D265987419265D862E +:10A6F000499761D245CF2A0293E467160A7F2175F4 +:10A70000FEDEA566FCB5327265233E732EDD329304 +:10A71000CE1BEC13799F5E13BF8F32EF0F58FE44B0 +:10A72000472E701C5A0D00E3AD2A2DE6190A8A78CF +:10A7300034C56952E3CF1BEA34EEDF1ABC9771DBF4 +:10A740007A7F9F427C4C8C6BEA5FEB9C1CFA5241F7 +:10A750000FF54733748670834236742ECACB63DBA1 +:10A760003AC90F0117E224F42FBBB3BDCD31927F5C +:10A770005F29D7AF5ED8E7AF4FB33F88A0789E6E12 +:10A78000B7D0AB56FB43EEC1C5344F778156DC8E54 +:10A79000F6E88349836E92FF430B34793BCAFFEAA4 +:10A7A000E0AF6FD46625FB1F32FBAFB82C945F6718 +:10A7B000E3E78D8DC24E1D9A2EFCB34EADDECDF972 +:10A7C000B0A04F72E592DCFCA38FFC44AB5D527FDE +:10A7D000476E6CB49DCF8C80C8C301C206E2474669 +:10A7E000638641B84D5D10B989E42B4375BD497A44 +:10A7F000382310E238FEAFCB85BC820F279B48F38D +:10A80000EE5123C16479783C23F8BCD875D7034353 +:10A8100048EF009A092FE5BF64F4B6C81EFF850C07 +:10A8200042AF37B23EF0A2BDEE2A627BF60F43D8AC +:10A83000EE8881FE19E119FFD919A41F7940D4E3EC +:10A840004DA68AFFCDA81B199F497F0D3E09F9FC33 +:10A85000BF3273020A96B7404688FC993B5DD19996 +:10A86000A4EF7F23F76AF4FCE7C602E6EF2B21E5AD +:10A870005E82435D813D9DC5346F85CCD8ECD56A41 +:10A8800079492C8DFC76346671BFB1E5FA0EE2E3AE +:10A89000338DC28EDAEE41689E39E63D159957F93F +:10A8A0000AE1A337CD753E63EEC7B5FE6FBF4E74A8 +:10A8B0008CD17D57D3FDA255E83FC61067BCA88454 +:10A8C00024A2FFE846097AA5E1F959EBFFEEEB6F08 +:10A8D00097D088093C269FBF2A89CF748003847F44 +:10A8E000E69D76E613179C7196177DE22C5780DB68 +:10A8F00048C9F739CA8B7DCEF2357E6779A9E62C37 +:10A9000043BBC073AAE90F831D9FB9C453B1E5EDE2 +:10A910002EF0871B4FB11F998AEB2CBE0FB74F4B00 +:10A92000CB973FD368E3F33D92C045C64439F4105A +:10A930008AF08B656347456CFD061A851D48D88BE8 +:10A9400080CC38BB3B50CF7EE170FBA07E320FE263 +:10A95000367DAA2A56FEA1A4A404E9EAA405BBEC0C +:10A96000F388FD573F59C8FD2A1FDCCC47A7F6B82E +:10A970008BE7B3FC7A8267E4CF587EDB91DB25F668 +:10A98000DB6A7B23ED77201DD5282F1AE7A9BD10A0 +:10A99000B7F9F99974CE5CE4BF1D593C0ADBF56741 +:10A9A000A39FAED1FD2BD1CEE26B667E7BFC8E3CAD +:10A9B0005BDE17399CA827FF82FCB71C7A3ADF5B65 +:10A9C000FEF770FC48F5EF3E6834FDBBABE02ADAD9 +:10A9D000EFB3F98DA3E390F4E7AD7E963F4F78A7F0 +:10A9E000DA9DF4BBFEAB3197F99511107C5083B022 +:10A9F000C7258D6817FF2B9D5DDCB520F23FF4BEA7 +:10AA0000C35F9845FABC528233743F6F57538687B1 +:10AA1000C609B8C5F8DD652AE7D1137E670CFD04C9 +:10AA20008DC97934634EF23E557C5E445D81F2D728 +:10AA300069EECFF55F73C70CDE3F630CC5E93A736F +:10AA40008CD3149F04E3A90D47CBCC761C1CEDDE00 +:10AA5000C0F927B33C66C53FBD4F799ECEF1462B6A +:10AA6000E5A35E5B31F5D63CD2AB1453C57F6B9B3F +:10AA7000AA1E31CC3807D9C19FACD0044ED364C3D1 +:10AA80009B93C4C748DF445ACF11EDE0400536A977 +:10AA90009CA45C4D78AFFFB103AB26907E6DC34D97 +:10AAA0009C8CE522AFC0D1D321361DE9ACF8CE7124 +:10AAB000B7CCFE17147B8B28EED80B85C22F1C2237 +:10AAC000FFCC805EE0B8D1730A087F39C2710BAF4A +:10AAD000E957DAFC411197502F16978013D36C7108 +:10AAE0002BEFB4F189FB95EC2F568BF36FF98B00AC +:10AAF000517D3BD667A0BFC8F135BA6140B8D38C51 +:10AB0000DB78A72929FAE2873AE5095F94202AF938 +:10AB1000B15F4F84FDC366F40F29AED27CB353BF3F +:10AB20006446D1BEA5D12FEA827025F1333328ECDB +:10AB3000DE0CF7E02A9AB71FE410E5F7FBF73E7941 +:10AB400094EC85B13B211F2C0733DEF199710499F8 +:10AB5000E312579974F6D745AB36617BDD8C4BF425 +:10AB6000CFF472FBFEF77CB14C71EE0FD0799CE70D +:10AB700037E312082FC96FD1CDFE649F291E351F00 +:10AB8000B2392E711DAD95F6E563110F887B40A299 +:10AB9000788115575888E24D76AEBA49E3F32341E0 +:10ABA000C0A0F9E60C41A80BDB1C096CFA1AE5AF52 +:10ABB0002BDCAE9050C309FF6BED8A7117CA97B7B3 +:10ABC00025B298F1C52AA43997E5ED2F59FE5517FE +:10ABD000CB5957A0308FF894893091FA2D6C8CDCCA +:10ABE0006A8EF3A6DD8F6B8B2966FEE79A5B75850F +:10ABF000F4B290F37F3B7ECB0692730D0617B3FD44 +:10AC0000D3709D388FB768532FC95F7FA98BFDB76D +:10AC100073C1437F1F4292AE6DFCFE8FF198C0F569 +:10AC2000B17BDD74DFB3392F770736477BE572C41C +:10AC3000CD363E9AE9D07BB7DC37D6517FE3E64B81 +:10AC40001DF52BC2531DE5D6DD5738CA8B7D258EE9 +:10AC5000FED7F8E739EA976A558E72C3921A47FB16 +:10AC600070FEAF94311AF3EFABC4BF657B25E65F8E +:10AC7000EDBE82C6124DE049C2CDDDD97D7ECA4708 +:10AC80005AF8D1C289DD059139DB7393FAED5F572C +:10AC9000B81C3833551F3EB242E0ED15857D9174E6 +:10ACA000783CA127A392316396F0FBD7A6F5FBD79A +:10ACB0003EB422C5EFA7762BCA6E7F7E3CED436B78 +:10ACC0001DE34FCA8513FEACBEB98ED4005C5D7D1A +:10ACD0003BC130B86EFE362562D363998433731856 +:10ACE00067F6B19C948A73689DB7FE60C38876E668 +:10ACF0001DF453280EFB33F453E8791CFD9438FA05 +:10AD000023EFA29F1267FF24C4E5E7D14FA1E70B11 +:10AD1000E8A7D0FB63E8A7D0F30825F067FFE9E7D1 +:10AD2000598DB45C524CF635E6198BF2BB2CF07D94 +:10AD3000FD218A23527EC9C7F40F32FDF98A794E6C +:10AD400004FD093EA59CC35FA3FF4FEDE93E94BB04 +:10AD5000F8E2E709E5ECA724675D641720691706A8 +:10AD60001E5BD33C8136C6B40B03133DC2AF31F535 +:10AD7000D8A87C6D0FE9D78AEFDCC7F6C003DA49A3 +:10AD80008A83799B847F4F7682F4510BDA05C22146 +:10AD900006EA69B623561C4EBD8BCB6A8512F5FABE +:10ADA000FF703B810A7131C5156BAD3CCB0576E276 +:10ADB00077B30BB56417F246B20B3F594CFAD15733 +:10ADC0000821BAD798C63E789A6CF6E1727244C6EA +:10ADD000B19723FC176B1DEA46E69F2AC110F1C10B +:10ADE0000B29717C930F1C7A951DF5820F10613E23 +:10ADF0002B647F194F8878EB5C73AB147F6F953DA4 +:10AE0000DE5AF19D6A83D65DAB23DFC98EBCAD38B7 +:10AE1000E2AF9CA6C5F16AF2C5FA6A3BA37CFF6F5C +:10AE20005E99D747FBA8F89D7CABE989329FCA8918 +:10AE30004F387FF987CE7A6F4A3EE0F22627DE9BB5 +:10AE4000E18EAF267E0C98767360EFF1DA92DFC167 +:10AE50006E0ED4455D77DAECE6C06C61370792760A +:10AE6000B362D3887633E2B49B7EB13F991F8BFCEB +:10AE7000DF707633D55E7605EE3846F26CD9CBDEE0 +:10AE800026338E9B17E37B1FAB6599C75D3D4BC493 +:10AE900027321BFF631DFBB50021EF443EE7D7922D +:10AEA000BC1C547F10273F44AD50F91EA432A9F4B6 +:10AEB000B00CC9F38EF6B7BE298DFDC573BC82DE1A +:10AEC0001FD4A6E5D139B6706BFF630F3ACE71FF80 +:10AED000E5D6393EBE83EED5676A5A31F9D1BB9AC1 +:10AEE00096F92A08DFCE9C564CF7188FAF901C714C +:10AEF000015CDF9A26877E17727DDCD4931450FAAA +:10AF000018F93ACADCB26EC295B679BB8BAE5297CD +:10AF1000213D5F6D9AFD08C54E52F5D0EA8583F953 +:10AF200014FF1EC80DA91482F9EA89AB1E512EBF69 +:10AF3000B0DDAD5F8E719CBC6B62C81CAF3C6DBB5D +:10AF40004EEDD88F89BFD7154088E286CBA08FE31E +:10AF5000CFB530C8CF77E747BE42FCBE1671D338B5 +:10AF6000ECFBD2E61DE635850BEC8FD19446FF7ED7 +:10AF7000717E787B13C793455CE4627A163FF9993A +:10AF80004EFFA09BC6A5EF5DD0FDE44EEDA36C1A6D +:10AF9000F7A2E3F8853CA162E23C17C87288EE3F55 +:10AFA0003E3037F20D5E8F8EEA763C88140FEEA3AA +:10AFB000E47FFEB712AEFB840C71BACF63E478383D +:10AFC0003E9E6AC736972FFDB6A0C7E7E1FB168104 +:10AFD000E75FA57E6BD42CE6C3F0F706C2D2798A70 +:10AFE000D79AF19B6943FF87EF89E2993843FA4882 +:10AFF0000D3CC1E5B3A09EA17B306D39FF019134BA +:10B00000F8C1FB89CB1177F492BF67DA1B8AD78F1F +:10B010002682E8DFA7E75D44DF2891E38421D3DEC1 +:10B020008C0E89F3301A05F1A4DD4E802D9E2F91F0 +:10B030007C3AEBD552E376A213B5AC15A77F89E82D +:10B040001BCEDEFFB19F74AFF7E4F411EA3DD15699 +:10B0500092F79D5285CCF87A7AE19E6DB6B88F450D +:10B060007FD78AC43D63BEFFDB35AD78348C805B0F +:10B07000D4DEBA11BF07A3CA104977EFE81D73BE2B +:10B08000ECD2284CC5F52CC17D263DD5B840E3FD5A +:10B09000F706059EF7E64719CF7D60C6C3DF31E3AB +:10B0A000E18493E869C9CB65837773BCEF9CA1F019 +:10B0B0003D5EA352C4F38CED5E5F5B1EC5E9FE9658 +:10B0C000EBB728AACFCBFE5DF42A92FFCEADD63DDA +:10B0D00087E8955C76479B894F5E583DDA7EDFEDC9 +:10B0E000BF9B04BE557D0F9BF1300FE36D72E745AA +:10B0F0007CC9F9BD09D5E333BE84F3F64C92D9CFB0 +:10B10000EF2938EABF89D6352E43D8231FAAFD3947 +:10B11000C21ED0C705CA29B26F9DC44B6CAF65452E +:10B12000C0A0FE658AF8FE9D22ECC98E9C4BB8BC7F +:10B130003354C9F7463408F33DEB9C7123C78FBEE7 +:10B14000467422BF3A908F446F5B2DDAA59C64FD54 +:10B15000D76B1B793C2F7D2F8EB0F5F2CD6CFF3A6B +:10B1600042857BC87E75844EAA32BE2F5F29F66D5C +:10B170004796BC24DD3D31AB5E83A84AE7FF9EFCC9 +:10B18000FA11E5E75E735D563977495467FF4D1B49 +:10B190005A42F4B6958D9144BC23E2A7FB3813CCF8 +:10B1A000F1AD7BE3B9D5DA3602FE3D45B794102FF9 +:10B1B000D56A9F740ADFAB4B34E92D7CEE28F6B4D8 +:10B1C000929D6A5350CFD178FECB64C3A6B716596F +:10B1D000E315A4BF1F3763A56CD27B92D76394C9D4 +:10B1E000303D8DDEBBD46CD7E6191AA4761D7315DD +:10B1F000A07DEF98382740F4744C12FA774673FB21 +:10B2000023DBB2485E6F839F91BCFAC5FEA21BFA96 +:10B2100002E5C97B7C8ACF9EE7B29E969C7699FB1D +:10B22000E729DACEB8E11C76247DB4D8F5683C86EF +:10B23000E3F5E82AE3B1D4FEA352EE79B4E5DC0FDE +:10B2400064A75510F1A91EE8F5F9D8AFCE70F895AE +:10B2500056FFEF35459A57DAE2F9A3A64541DC6F70 +:10B2600011FBEC9934B2FCA5AEBF53420B33069FE1 +:10B27000B9E2BC2119A769FD3B43E38BECF4EF3441 +:10B28000F97AB1F153E91B8E8EC752E28133CD7842 +:10B2900060EA78E7CC79773E76A0D91ED7DA598470 +:10B2A000B8877146DC5F6F5BCFD69502E7F4484202 +:10B2B0002E7B503E9F48B3DE6F9BED869BB7DC92A2 +:10B2C000A384BC7A80E4B5A340C8CFEC57BE6EC659 +:10B2D000E90CD607D9AAC85FFC726EA487F6273B93 +:10B2E00020733E3BBB34E48A38F8EAE13CFD9F9092 +:10B2F0008F8C37CEAD7CF656115F3180F24F3B29F3 +:10B30000BE5240F36E677C7F0EE593ECB7D2DB67ED +:10B31000FCB694ED73F4FE90DD5EF70C921DBDD883 +:10B320003ABCF025319EE907D2E753DBBD3EF59BE1 +:10B33000A38DCC59B671358F63BCDF35BEFCD44AC2 +:10B34000A7BF01AEFCED55347FBE1C73A5D107D657 +:10B35000D38A2FC39491F560578A1E4C7D66E40C06 +:10B36000CA747FF9F557DE7EA41DFDAF0C33AE9B8A +:10B37000F5AABA91EE175FA84FE26C173E871E61DF +:10B38000393A473295FBFBCB85B5FFE5AF1CB89545 +:10B39000EE8F237F381E7A2E0CCC1F0294E4FF48D8 +:10B3A000862C709E8EFFC69B29710699F8663CA775 +:10B3B000F678FF52F93F81B4291B4B1FAFF7928DEE +:10B3C000C2AFCC87218970F81472E838741779E617 +:10B3D000B738DEF82B4E481538CE2F2FD8B791F757 +:10B3E000DDDAAF547A1EDBAA4A24EF3D77C781E24B +:10B3F0005B59F1BFE17CB0F7C93850DE370BFD5D1A +:10B40000C2C5F024F0FD8776DF477C8FEA5C7EE1E1 +:10B410001EBB7C6C5EE9BCB7F0B8B9EFEDBE7A5EDE +:10B42000D7E3F922CFF4B83294312638BC9ED8BC89 +:10B4300052E42BAE7CDAB92FA9EB6E97F5EC66C21D +:10B440002D84C767121EF770DE351587676444D3F5 +:10B45000C6ED76C995E39AC7A5932FE0FB0D3D4F46 +:10B460008A7DF863C9D96BF465F8719FE7FCFFBD6D +:10B47000FE208D47F981501297A58E77319C66E1A9 +:10B4800047C48B8C0F8DED0AB495325E64FCB8C551 +:10B49000F0FA287F9C55B4F9012AD7227E249C7AA1 +:10B4A000A72B9A5D25519E57E47BADF9B2E5036A5F +:10B4B00009D2F7972D5336B6E3BC3DE4C5A3DEFEB3 +:10B4C000B079CA46631AAE86B0238E132EF18AEF86 +:10B4D000939AB8EEE8CC091C97B0C6E92FF2AE4EAD +:10B4E00027A7EE16D9CC6F6771BFFE7C115FE80706 +:10B4F000F17D40EFE52EC69BC9FBC5283DE4BF07A3 +:10B500001A04FF6B81BF1F3883BE8988EB38B219DC +:10B510007C14FF86943C37ADEBCCF8A41FFEA8B991 +:10B520009FC3EAAF270FF33C6DA11F64D17D89FE55 +:10B53000C0A1A314173847B73A6DF271345BE0AC81 +:10B5400043454F29A782C9714F358BF8724D5F5C17 +:10B550002121AE0D556844BF328CFFF06CB3B0A30F +:10B5600039147022FB3CCBC5FEA895B7F74EDA3CE8 +:10B570004879139F99678716D17EB83C6E5B4BB6AE +:10B5800033BF9E924F5FD3D85AEB439EC69A4D3C31 +:10B5900092C8ABC717136EEA30F3E9FD944F2F80C2 +:10B5A000447EDE8A3BA6CE57437975BE5FF0FF67C7 +:10B5B0005EDDE283C5472BCED4E11FE3C8977B0253 +:10B5C000C21FDFB520B28FF49087E227349E5F63FD +:10B5D000BF5035F1CEAEA6AEE1BE0FFE4FCDF6F8B0 +:10B5E0009326EEA11C49892B1D2912F76D562FECCD +:10B5F000CBB7E33A4BCEFA4D5CD73F0CAE1BD7220C +:10B60000F47A424F66C9A69EEC5B45E7ECA8758FBD +:10B6100058D735DF9C645C059A7D9C1F873B72423E +:10B62000A4C73A4C7BE057C2A3EDF70EAD67C74104 +:10B63000718F0FFC363C5348F3AE4EDB3E551F274F +:10B64000FCBF501B9FFF8BE9E307E6465E23FB919F +:10B65000AA8FBD7EA73E3E31CCDFBBD85CBEF4676F +:10B66000D43F0BA2ECAFAC09A0BEA1EF93CDF77510 +:10B67000107E6B9340E0B78BC48576B400EFC3D1E6 +:10B68000DC9842F71AAB02DF5748CFD43C89FA2244 +:10B69000DBA12FD8FEB536AFDE4838B467F741A638 +:10B6A000D36897380FBD463DCAFB81C7ADD89B7F95 +:10B6B000E1BC7799FB08F785595F92ECB27E4CD9D3 +:10B6C0003729B492C7DD8DC0C33591E88C7C4674B0 +:10B6D000C216A157DB42A0DDCF7A359AF6DEE435FB +:10B6E000CD30A23E5A5ABE5C69994DFA46B43BE24F +:10B6F00016E3124DAE79C44F515E932FF07FEAFAF4 +:10B70000D6A8ABB81EBD436DC2C434FCBDCF67D054 +:10B71000FD0E4BEEDAB644CD6044FA7576058EB96F +:10B72000499F5B7150B4609C875B1614F3D7409CB3 +:10B73000E3A1CB6188EFE5BE3B3F3299D6AFC67E31 +:10B74000558B9C82C6F0831031FD16E2879A8C8B54 +:10B750004E6DA17B2A665C54D5445CF460D306B977 +:10B7600093CE4DC0C5F60D9F4CCFD9B22CBE773EBF +:10B770009CBC129ED24DDC41F1A13E335EF4A8196F +:10B780002FCA54A08AE3F27160BF8AF093FDDE32C3 +:10B79000E10CFB3DE727E646E6121D4571E7DF0FAA +:10B7A00099D9E7FC5ED617E787E7B530981571DCC5 +:10B7B000FF07F5C0F52D7F981EB8B1E58FA8077675 +:10B7C0008D4FC429B3C89FF594E8F27DC8EFF0957A +:10B7D0002EC65547822E8177425EF13D0545E055E4 +:10B7E0000B67B9513C468F49E22CEF27531DF7AB4D +:10B7F000529F5E77D4E74B43D735CD058EFC86F755 +:10B8000093CB781C37AD7336C7E78D168E87C3A3ED +:10B8100052DABF93E4C4A3D6791B5BAEB7DBCFBFCC +:10B820008553CFF69D20C433EC3A3DEAA6A0FDEF48 +:10B83000BE748C8A727E9FE492E319D63D516550A6 +:10B840006ECA4E8ECB717176BE86F87CE6C4E7B2C6 +:10B850007FE30A8574F26F72CA4260CFD74F9F535D +:10B86000F94D5A5F8E32C47F4F26C7FA3EFCFC5218 +:10B87000C7FDCCAFB738EF855AF359E5374CBFCA8F +:10B8800063CE6FBD7FF3AE3EA0B85066FC1996F351 +:10B89000CCBB24BE5F1BB1BE8FE517F348CDDE8362 +:10B8A000B4AF43C142CE230F05E51C8A530E19677E +:10B8B00085FF1514FE9775CF359DBEA0733664883D +:10B8C000FCFCE341A7FF351C9F53FD2E6F46748897 +:10B8D0005CD37F7DEDAD8DF4FD5CAFF9FDDC83AF16 +:10B8E0007DFA28F9613FD72307885F6FA2BAE1FC90 +:10B8F000C925C07875CDCEBB67D2DF27FBCC946B52 +:10B90000BF953719265F62B54BFA6309FDC2F1A2F4 +:10B910002110799C0BEC55F016D6D7BB51005D7306 +:10B92000937AC06FFA1FE7CA5491176D06CD1E3780 +:10B93000E83CB854E8199FED7EDEE7D0333BCDF10B +:10B94000DB4C3DD3616CFA5CFE1FEA9977D96EE45B +:10B95000CB0EBDA26439F5CCBB73F5D3A46F47D031 +:10B96000371FFE31F40DF8F338093EDC7A2D79C625 +:10B9700073FE9979CE0D69CE85E71CD7FB3F2D6903 +:10B98000E40FF2C5BE59F937A8F4F1F99382CFFF5D +:10B9900096FE4E4F723D11E0EF5B7CCEF57CDE767D +:10B9A000FF17C8B4AD9080500000000000000000F8 +:10B9B0001F8B080000000000000B7BC5CFC0F0A368 +:10B9C0001E815DD0F884F02A12D5A3E3C74C0C0C7D +:10B9D00002CC949901C2967CA87C560E0686B7DCF0 +:10B9E0000C0C5CEC0C0C056C0C0C0E40DCC58B904C +:10B9F000F7E380D01A4208B13601CADD318A8736B2 +:10BA00009E2ECAC0304B0CC1D71547959F218A6026 +:10BA1000EB485366972D503F006CC3B2AD800300D6 +:10BA200000000000000000001F8B08000000000064 +:10BA3000000BE57D0D7854D5B5E83E3367CE9CF913 +:10BA40004B4EC224CC84099C8401421B7482411158 +:10BA5000FF4E426AA317DB29A2175BDB3B285AB0D3 +:10BA6000FEA4D4ABB44F9B03F9611282048B8AC14C +:10BA70009F011469AB6D6AD57ABFD6BE01BD14FDB6 +:10BA8000EC2DD7EBB54AB10DD572AD551BDB87A4B4 +:10BA9000EF617D6BADBD4FE69C934988B57DF7BBEB +:10BAA000F7854F77F639FBECBDF65A6BAFBFBDF6A5 +:10BAB0008E5F2D63B5E731F601FE405917648C2D7A +:10BAC00028940F7E75E6C0AA46C6CC7B95D483F039 +:10BAD0006867CFEE2DE74719DB7DAB67BE17EAFB42 +:10BAE000EEB8C9A341FD81BEDA9DFE1AC65A99C4BB +:10BAF0005805630F458CE7EAF0BB2D1EF6A00EED4E +:10BB0000239960BA1EDA6DAB2D6561C6EA9942EDE4 +:10BB1000BAEEB8F4901FDACDE867FA1CF83E99BF88 +:10BB2000C0A34718AB1A92199B52806B777BFEF823 +:10BB3000EB3E18BFFD009533E48C2700DFB16DAC00 +:10BB400001E19AA1B679020007BB07EA30DE8CB0AA +:10BB5000CEDF67455D4BF17A1F6FFF70FBC1E3AF2E +:10BB6000CF825F98C9D4D3E13DFE0AEDE66C8371C4 +:10BB7000EA18FD7C00FFD5F7E73D2B00EE99591838 +:10BB8000572D3C9F3778D0519FC1E4FF35647D0726 +:10BB9000F378057F81F9CDD8C6E7317704E67BDA03 +:10BBA000D8F95AF3B2E6FD5F6D7EFB5E3DA37715D3 +:10BBB000D29F95A6FDC4076B0E318063F73D301A06 +:10BBC000B0823FF36DE297076EF1A47AE193E34709 +:10BBD00076507D4F8F27B50EE15133C1B938AF6D27 +:10BBE000C02750CC09336310F8638E0C25C0B556BE +:10BBF000F0D33F61B900D1C14B9D998770BC876E6E +:10BC0000617A2FC0D3B5E3EAE7E6C2B8C917BD6CC5 +:10BC10000EC29BFF9384F8B4F8C72A6BB7292C3F58 +:10BC2000015F25E5CC3EBF0DEF49B56D9FDF86F77F +:10BC30006458E7EF05DE935A8AD75D78B7FAAFBF4D +:10BC400005F01B1E8B7737BEDD749A2CFE756604DB +:10BC5000D3F3601EFD4B4B6151011ECE6F1E0A8F48 +:10BC60009D37F221CE7BCFADC3523A5C98B785A702 +:10BC7000FFBAF3E77CB00BF940E27C50173D391F67 +:10BC8000540D011F9CF6DF890FFEB2F58072F6BFDE +:10BC9000C37AC0F68807F7FCAC724BBB7E2C0970E8 +:10BCA000F4B6B3634998D76DED2A95D9768DCABE9F +:10BCB000F618955B405C3398DF96B758CE047E0A41 +:10BCC000D5417BDBB8A50BE13B1BDC015D73D423C5 +:10BCD000A998A37D798BEEA8FBCD20F5BFB19FE598 +:10BCE000905F37B73366F819DBD4AE52B966DE3EE3 +:10BCF00015F5635FEAD7CBB1DD597315DD2BE1F4A0 +:10BD00008C7F8B553276AEC04749C950C71580E746 +:10BD1000BEB897AD4FC17CFE6C78AE847AEF997E49 +:10BD20006DBD06EFFDC6FA2BE0FBBE26358DEF9309 +:10BD3000A9ABAF63258C85D77EAEEC751BBDFB7CB4 +:10BD40006C39CA5926C3E41B910EDA0EE41F89BD73 +:10BD5000FEB284DF272B6B10CEE99287E4EEA68635 +:10BD6000DA66EC776683A23318878DC8BF1E82F926 +:10BD7000D5C1BF0F6A015EC6EB165D4AFC436F94E6 +:10BD8000225CD07E3DF4A39D6D7BCF0B16053A9FC0 +:10BD9000277EAFAD7B6F7112DAFF5E62296D21C025 +:10BDA0008DFDD9E81C99AED33C7BC4BC6AFB9CFDDD +:10BDB0009D97BCF44BD229F0CB09DB77005723E2E7 +:10BDC00010E07FEE4CC54823DEFA58CE2F8D85BF9C +:10BDD0004F7EF965E4DF998077B366EC7CDCF0BADE +:10BDE000E713993EBC3809F8C94A6C18E9E086FFA8 +:10BDF000BC3A658507E1B3C30DE39EA703DC256369 +:10BE0000E1B6F8FA3BED1A336021EF68AF233ED973 +:10BE100005751DCA1DEF7B97A3BED4B129C07DC790 +:10BE20005BFA4EA4DF28BF48BCAFAF485C8FEEF48E +:10BE3000F176E616967B90E6D3F6C60E80776075AF +:10BE4000E5FC5EBDC0170312E78B3597CCBF10F938 +:10BE50007060A54742D53BB06AFE52FCFEACAB3CDD +:10BE60001EE4CB9A12EDB3F4FE124EDF992BE737A6 +:10BE7000CF46F960C4FE501A83F9AF3ABAF82A687F +:10BE8000FF2FC0A712D073C79FB53504E76AD17ED4 +:10BE9000A492E9208793CB94238897E42AE053283F +:10BEA000AB904F6DF27900F9345C8C4FA38724A8D6 +:10BEB0000F2CE37C7AA3E0538BAE06FC433CE6AF49 +:10BEC000A96DBECAC6B76EBAD6F8B537914F073E50 +:10BED000037041FDD4274FC2A7ABDE5B3C7B023E23 +:10BEE0003566E81E1C6FDB787C9A29CEA716BD0B41 +:10BEF000A5735C261FA371673236DC0BFD3ED7A508 +:10BF0000BC85FC3A905674B4BFDDF31E9047BC3438 +:10BF1000EF26D5305363E7ED9EE7D879F4C7D16EAD +:10BF20001FC3AF2B27E657ABBCAD3DC75E23391B04 +:10BF300023FEDDDCAE53B911F918CA4DD8F4CCB1EB +:10BF4000F2BACFC35621BDFB826CD5A348F7C6F920 +:10BF500045DB592563EB88EE59E4EF45048EC1803B +:10BF60002E01F88F55513D1F4CC2F8BED1BAC112F7 +:10BF7000D0BF34DA1E140EACE785857A08DA670381 +:10BF8000BCFE2B29DE649E5DA8FF49D29ACCC4D8A2 +:10BF9000F7D0FF3A6F03638F49878CFA80A37F0342 +:10BFA000FBB7C3A716E96F7380C317591FA2FA1610 +:10BFB000693086C4DE286971E4DB1F4ACC68896178 +:10BFC000BF50077A9E79D7ABE633F1C23887D7BD29 +:10BFD0006A9A40AF0552FA2909F061E86D75CC8381 +:10BFE000E30E2F6700D74FF17BE8574BF2719E5E4F +:10BFF000779475D8F0F273E99889E3223AC295A450 +:10C00000AA607120FECB198B237E8CA6D5C06F65EC +:10C0100020382418DFD30275685461A86D7E802F04 +:10C02000BA4C3E3A64D387767E28D65F6021FF3EC5 +:10C0300068F55737C9FEC4F7E3F3036F0778F825AF +:10C04000E1E1ECB6558887A7104FF0BCB976E1CF97 +:10C05000CE8679840EFA527E1DCA8526C99500EADD +:10C06000FF06FA3E7F1ED4B7D4B0B65EA83F2EE9D5 +:10C070007C5C793086F67640AF62391B5C56BF7FB8 +:10C080006DBC01FCEFD9E908F511A962FCF9047156 +:10C090003EF02888F389DAE623C37CD0EEC0F99419 +:10C0A00015F0E49EC7E6406E39FA07CDE72EFC3462 +:10C0B000A3FE667948AEC8C3849F2D3EDD83DFCFE3 +:10C0C000F5707D62E125B87098F0A5E9AC0DC7D395 +:10C0D000CE76F66BF507F866A877430B87093E0D19 +:10C0E000E12BA3FE8BE39B01BE2363FBFBA380E755 +:10C0F00046E8CBC4EFD930CDCFFADEFACEEAC79A04 +:10C10000EF987E9EEF18EDC76BA3BB1B4F1E8FB33E +:10C110001F37DE4E068FF5DD5F0ACFC9E6E586677D +:10C12000B2EB2336329719600FCE423E02F9BABE07 +:10C1300047A1F1B72EE3F6D1D6039F20BF729BC76C +:10C140007816F9CB7CC147F19C6D965CDEDA48DF4E +:10C15000ED8C18F1A5F5E3CBE55D60E79A20EFB72C +:10C160004A5C8F6F837A0EEA3357C9E654D083DB7B +:10C17000324B031887D82AECD1D88AC6F5E7A39D9D +:10C1800060C4DEF5C27AD91AE0CFEF5ED9BC1EE3F7 +:10C190000777308D3F8FF0FEE257B5F0E7A2BD354F +:10C1A0007E12148969D36FD6F30AC558912E02EF17 +:10C1B0007A0FB71FF2425FED10FAAA22985E81FC57 +:10C1C0001A9D1ED477C27AB8E3924B2F43BDFAC8AA +:10C1D000F7F4F95EC0C7BE4B2E957E8DF312EB626D +:10C1E00097D07BA3E3F5A525C463DE976AD6808E3E +:10C1F000377998012B9A55C8659F4539DEE5394B4B +:10C20000F2C377B5CB34AA3FD2DB2CFD6401D6193B +:10C21000C9E501CFD2A60E199546DB1B480703D608 +:10C2200051078C6BC84C6E233A448BD2FB1129B05A +:10C230003C07E31A8F751FBC18F535CBD1FCACF762 +:10C240004D6C9A836FF2385FB42B71FE505EE52916 +:10C250002ED70C95CB3303E45907C8AF8A65BCDEF3 +:10C2600004007A519E0D3AE599213BE1FE6BC1BB7A +:10C2700040D2B8BD27FA03F978AFA702E16132F2E4 +:10C2800071933CBA8E1CF047B72AA6F7142A8F7810 +:10C290004BC6C2BB49CC1BFA7BA8587F7FABF918B1 +:10C2A00061E837FAD1FBADC07EEDF6EB38FDB8E5BD +:10C2B000C1E2AFADF2308AA77868FDDFA7A49E9BEC +:10C2C00083EBFE252FC5E76AD97000F59FFBFBEADB +:10C2D000FEB98E3882BB6CBE696170A81EFB5D4AD8 +:10C2E000F1DFFBBEB6A82A635B7FBB847DBF2BC09A +:10C2F000CB5F7A789CEFB0C747E5905857F79570B9 +:10C30000BB702CFCEB391FB07E2A3F3E1226780A08 +:10C3100075C5559729FE53A897883AC783D9CC2469 +:10C3200019E75DC5524887B2963686F0FA13CCF409 +:10C330009E0A3C806B0EF0D453C372F5C04F32B0EE +:10C34000A18A7E69CDC147B0EE43DD66AB2B60B3F9 +:10C35000C5A2853AF4C374DB7B6B1E3D35FDB1B0DD +:10C360000D2F5DB3EE247F34A8F378B19ABF7B39EB +:10C37000FAFDEA562585A6A2AA9B2C03FA2028A737 +:10C380009807993BCC6A904E41D5601E8CC368508B +:10C3900007F883E134AF47C57B2DC3DBC778DDAF3A +:10C3A000B7B12618B747F8934FCFBA9AF8A047E726 +:10C3B00071FD1E7D7EA9079E87BC9C2E7D5226E8BE +:10C3C000C57D0290AEC80FD06E2AD2F528AE1BA252 +:10C3D00083FCBF713DE11EC107F83F16D68E7E5C1F +:10C3E000F0A3B780E75E8C37CD42FFE000957D1863 +:10C3F0002FF221FE7379F2534B38FE413215E23FA2 +:10C40000F4FD8142FC88EA071DF590661AE817CA18 +:10C41000519642F91C30F206D25349F03AD2D15F1C +:10C420005AA0E300D2512AD07100E92215E868D55C +:10C430002D3A5A758B8E56DDA2DB404D2EEEA0E3D1 +:10C44000EADDAF38E9F8CDBBAFFE1BD27100E95889 +:10C4500044BF1D92F93A7AFA0EA02FF4936DE4EBE3 +:10C46000FCC1EAF55437577B282E906D5C9F453F01 +:10C47000FE8F077C145CB0F679FA74680FEF6F904A +:10C48000A7703ED06BE9BBAFCCF2ECC6F8C076111A +:10C49000CFEA15710A6BDCA7E7CE2E1DB2C1B3112E +:10C4A000FD3BA86F443B02CAE653B22AC6ADB3496E +:10C4B0001EC79E21F8EC51E84F07FD3BD8AE52F95C +:10C4C0002DA867A0DFC7A09E9943F13B2AFB405FE0 +:10C4D00061792FBCCFCFC138A64AE5B70F785A5142 +:10C4E0004EEE6907130DF8EBCE7695CADBDA352AE6 +:10C4F0009F688F51797FBB4EE5EDED7554F6B7A778 +:10C50000FE88A186DEF685541A9EA5ABBCC4D783EF +:10C51000CF7D0CF0B0737592E2251FDFEB49E790F9 +:10C5200087B4C1172E6C2C3CB7E669789AAFF3A29A +:10C530009D7C402638989CFEBB79C5DBADC1FE17BB +:10C54000EC95797FD1F4C517458BB6BB19DBF53C6B +:10C550000FF3C2766A7F6B6DF1FE6EC17103FF0C43 +:10C56000F0E1B8B1FE7473F1FED6617F9B9E17F0C7 +:10C57000850FB6CE2CDEAE1BFB8BFCB3802F71304B +:10C58000BDB8F8B81BB1BF69E5DA15E847805E6A47 +:10C5900046BEAF5AA595E3FECFB429DA1AFEDCE811 +:10C5A000C0E781247F9EC0F6F524174CDCE7527566 +:10C5B000F11CDBD3F37C1E9F8753A21F85F77FD727 +:10C5C0006A46F66AA451DBA902CB7C63355FCF557E +:10C5D000ABF41D589FE6E7E34D9DDDCF24905391CA +:10C5E000E44126417F53A0EEC17DC6644EF2403D3A +:10C5F000A1F0F1EFAA359904CF233AB483EFBE013D +:10C60000750F7C57A5433BA827FC1C9EA9A7E5A94D +:10C61000DD3661274D39ED20F3227C8DBA84626AC4 +:10C62000ABB01BAB52BCFFC8030761AD327631A87B +:10C630009D25F07EDB9719D975DFF7FE92E2069112 +:10C64000E58CFCF7B2CED43E13FCF16955A684F319 +:10C6500002C7587F10EC8DDBCE7C228EF6F1B469D8 +:10C66000AC0DE573C9A227E7623D51C532B88E6EA5 +:10C670005BF45C1CE3EA097C0FF592B39E9F8BF59B +:10C680003F3EBF78AA5DCF5A65E25A30406DF64111 +:10C690003CE3F41FAACCDC5E7F0AF721015EA0EF29 +:10C6A0005601EFB3DEDF12BC55ADBC7EBC23B1CF6B +:10C6B000049B68DA744322E34AC0DBDF24E09DC1B7 +:10C6C000E1D19A05BCD3015E80ABBF59C03B83CF9B +:10C6D000475B2CE0958DA9DA24E0AD483BE1FDFFF6 +:10C6E000409E13BE0F75DEBFCE0C639C92C912D85C +:10C6F0002103C25E02BCADC379DF18D06B4D9BDF56 +:10C70000FA8297CBFB69D3399F4CAB53CC29A78CCA +:10C710006FA759F49A56A71EC17616BD12754173BC +:10C720004AC9F8DF59744CD4858FD8FB7F0595ED45 +:10C730008293D32FBB82CF272BE6135359562B2F2F +:10C74000F4F323A10FA65571789E78C5B91E4E3F0C +:10C75000E45C0F4F1CE2FCF5236B7CB12E4EFF0511 +:10C76000E7B3ACC05FD6378ABFA649E1AF6592F8A0 +:10C770006B71E1AF6592F86BF9CBF0B749CC6753B9 +:10C7800084FBC9309FBD144738D97CEA9509E11A6A +:10C790009D4F3DCCA7C4369FFAE08478189D4F7D0D +:10C7A000F888BDFFC9CEA70FF9A1B4B03F159327F4 +:10C7B000E687CDE738F9A1F45C273F6C3EB7383FF8 +:10C7C000949EC7F9A1478CD723E209B1308C377FFB +:10C7D000FCF17EF0AA73BC337EE91CEF07BF2C3E50 +:10C7E000DE19BFE2E33D78E4CB9E47D1FE6AF0D08C +:10C7F0003E6316687290F63774B2A3F7D574C7D04B +:10C80000CEFF4A7590E2797B6BEE54D17EEA49CD3A +:10C8100027FFC9DAC7EC6BCFBF77AD2DCE9015FBE4 +:10C8200088E3D1252BECAEACB0BBDCEF2DBBAB3736 +:10C83000C5ED0BF7FB9F0AFB91C9B938DAFD9114DE +:10C840003B566FA39BD5CE82CB82F3A3C2F5B46CCB +:10C85000C1B5535B9CC27D8D8BD6AB207737363EFE +:10C860009AC6FA8FD945EB5B6AFEF3E17AA4F352DC +:10C87000075CDF342F5DDF22FDE7C39597330EB8E9 +:10C8800036B2CC84F8B2F6FFC6E38F432CF39C0C8F +:10C89000E5864A27DFCE405F0CF8632F2A5E1B9F98 +:10C8A000041BB8DDB8B1D1C9571B641E6FB3CAAC45 +:10C8B000CCD74B649ECC8335AB95DC2C81BFA5A037 +:10C8C0004FBFE3EA77BBAB6EF99DE8867E3013EB92 +:10C8D000C5FD4EFF4888F61DC323012ADDF3DC2089 +:10C8E000F0DBD7A0101CD9EAD93BBD80AFBE5B53AB +:10C8F000E497865AF4F9EB75EC8FC737BB1AEE3420 +:10C90000D07F0988BC2559D32494070195D743F9D2 +:10C91000CBC81F0DB4B086805E18A72CA93519842A +:10C92000BFB6D8525B7EC606817FC6603C187FC307 +:10C9300027B4865E1BBF047D1E9A47D8CBE54F5FA8 +:10C94000AD192BB7E1357B6B3F43BBB7ABA69BE083 +:10C9500052659E5765C1A5AABC1E40B8D0DE46B838 +:10C960006CFD97E90057FDF870B9F165E1C1BDFFB5 +:10C970009718F1321D5CC5692312955502EF71C4F9 +:10C98000FB148C3F4FA172EA48193DAF1C9946F544 +:10C990008A9138D5A32333A93E65A486CAC8C8C7DF +:10C9A000A90C8FCCA53234721A958191062AD591A3 +:10C9B000B3E83B6BFFD03F72263DDFB480D3B1FFBD +:10C9C0001CA0A364A3DB82D3899E252D2C3507E808 +:10C9D00052221F7C99F25B5AC18E950AF82A11F8EF +:10C9E0002A17F82A71E36BA185AFE1D8525B7C6C02 +:10C9F000B388775B74DC8C74B4D17FB18FF37DC462 +:10CA0000CBF5C3A65A162FB7DB994D0AD99925AD98 +:10CA1000DCCE2C71D1F1A3C2351E1DA7B579986E5D +:10CA2000F70F56051DF5A9997247BD627915D36DAB +:10CA3000F2230CEFCE06FD39255DEB7CDEF831C725 +:10CA40007756DC32503FDFF1DCAF2F72B5E3FC5498 +:10CA50002EF2574A918671F0D72DFC6230D616DF40 +:10CA6000FC82C06B615EFCFB08FE8AF676DACA7F48 +:10CA700030D67500DE2A538ADE8BF92CF227D6EDEC +:10CA8000827AC58FFC0CF7D725D6B2EE69DC7F31F0 +:10CA9000D434D6D7F96A059F032F9D4EA99DB419AA +:10CAA000CFBC6F2DC7BC8FCABF9719C597D899E463 +:10CAB0000F1D5B8BB92F085FB4E8FE752553585ED8 +:10CAC00015F24AC27D405E2FCC1BEA1C7FAFA3FC4F +:10CAD000F2B3CB4AD345F2B826DDDF125BDDB65F99 +:10CAE000EF86774CBFE8E3957FF8FE6FF345A2240D +:10CAF0007FCF606790FC1D070F6E3A4DB65D0DCA83 +:10CB00001758EF3ACA17286708F9325DC8F56A2145 +:10CB10005F12285F480E4DA3E75542BEC451BE9C2C +:10CB20008672A846E8838F531942F902A522F82C91 +:10CB30008872E6B4829CB1E2572CC6F9CE923B963D +:10CB4000BC018D4B71DBDBCFD46B7BEDF2A6E174C6 +:10CB5000920311216F22AEF51C11EBB944E88B88CA +:10CB60007B3D375AEB598FDBD7F3ED2E39739B4B57 +:10CB70005FFC9B580FA3FAA2617F1DFA9DB75F501F +:10CB8000E9F1DAE2CF5D17CC267913497379331EC8 +:10CB90007C51216FC6876FC8A1376EB3F459ACF1D1 +:10CBA00024FB101C4F7D0D4F103F2A20B6BDE0BF67 +:10CBB00068F3AF8DED82B725F38FD63D0D78BBD4EA +:10CBC0009739E403FA979C76083725D8F6EBDF8C83 +:10CBD00065485FDF4971931285EFD3DC36FFAD14F2 +:10CBE0007E07ED8FF8F8BABD4C41B899DA86EBF9BB +:10CBF000B6AB580EF781F44EA7BC9B7E4BD021B745 +:10CC00001237963BEA55D75639DA87189777144C7E +:10CC100000BE8DAD74CABD50CA29F70275F31DEF71 +:10CC2000AD7D8831722F36B97510177A3626F46CBF +:10CC300018D7C19402FF8684BEB5BEB3F4A3450FD6 +:10CC4000C60649EFF5D4707EF58635E98AFAB174E7 +:10CC5000E99A7713D9137E175FF8055FA8826FFDF5 +:10CC60006EBE48587CD1EFD0433D2EBECDBAF8F60B +:10CC7000630AE7DB90D08F1BE73D5187F1919E5906 +:10CC80002EBE15FB24F09F3E471A1FBEC849E13354 +:10CC90001D7C9BFDD07CDBCD303FB15F626DB80F5A +:10CCA000BD715E771EF325955A99EAA153FBF2FBFD +:10CCB0003006D5CCF749812F1B15A0DFC6537AF378 +:10CCC0003BE179F78A303D8FB021865B5E16FD49E6 +:10CCD000C595235F39F934940ABAF848C8CF49F2A8 +:10CCE000CDC58A2EF6BBB85D6B9EC2521D0CE350BB +:10CCF000FD8604AFF41755B29BBA0F4B39CCB7EB96 +:10CD00008B7B487F1EBB1C1437D6ABF331A48759ED +:10CD1000A368A84F63C98C84FAB082B5AD5807F0F8 +:10CD200077B7F378FC5D35379D7A050E2BB79D718B +:10CD300031E077209CB958017C1D8FB37E5C7F5217 +:10CD4000D5AA0CF67BF3AF251DF7230249BECF16FB +:10CD500042DCE3BE439CC7F382753C9ED717E7F1E4 +:10CD6000396847F13CAB3ECADFF17C2C6CB36FBA3B +:10CD70001AF6137FA809C11FF9AF32CC87F627DA5C +:10CD8000284EA7CA83799467AC9EC7E55435974768 +:10CD90003E61753C0E1748F4531CAE4FEC8F79C3BF +:10CDA00006C3F6E17AAD01F53DC615B17D30A9EDBA +:10CDB00040BE6C51B87D1E0919D729247712DAD1EB +:10CDC00090A093CD0FB1E2956A12E410CE277F01B7 +:10CDD000F51B48B014FA09C04906E2454932ED5B3B +:10CDE00062BE94D7A3B39D218C5FCA2983E2873AA0 +:10CDF000875BC6F7C8DF096D9707F71DD534F13B90 +:10CE00008B313ABFE313DF2B31FE5ED5057EC53E85 +:10CE100026C63F09BFB67D4BCD56379B79FFE6B995 +:10CE20004AAE43C2E779C77E655F8DC4D7F389A751 +:10CE300063CB6CEBA8EFFD3FC630AF61EE3D9FECDE +:10CE4000683913D7C9EC5292D7BE7C4C2B628776D7 +:10CE5000B7EF29937DE3F36FB725BF845DEB0D73C7 +:10CE60007D0B78D411FF6E3CA27F66E171CEDF109E +:10CE70008F1B45DCD9C2E3465B9C59B3D5AD796CB9 +:10CE8000AC1974E06F23E20F79FEC4F763CB6C72C8 +:10CE900072E3BCFDB10CFACF8847AD8047FF5AAFB3 +:10CEA0008E79B235325FBF1B932C85FEC586FA356D +:10CEB00026D9736733CA7728ED7F37EF45F8011F0E +:10CEC000343F4DF05D823DE0B5C11300CB0EEDB7B0 +:10CED000E950A27DE7D3830EFBCEBF56A1F1FADF66 +:10CEE000BF52C7CD5DCD9389611909659E473E0F3D +:10CEF0008707711B9005A3FD79D4CBB319C7E39ABB +:10CF0000733C94EFBECD67FC0CDB6D96F5A928371A +:10CF1000361FF0318C7F6DD63DAD74EE470F115C3E +:10CF20006BCE29DFD16B83EB5F841EF893CFF8398A +:10CF3000CA4BF8FE2EE6F89EB516F34B5F12DFF5EE +:10CF40008BFDD0FEA6AB73EBD09FAEAEA3BC1DADE8 +:10CF500079D5B615589F5E4FE7D9DE50ACF8D6416B +:10CF600086F10490CFFFA1D8FC087F6288F200DE32 +:10CF700000FB02FB1D16F23310CE186814FBA22929 +:10CF800096A17824E7EFF1F85759FB70196EA1C20A +:10CF9000FA273967F1E3E60AE7BEC5E60ACE2F288D +:10CFA00027345BDDEA6773C5B053CE9DF3DE49E4F9 +:10CFB0005C3F976B492ED754D5E0724FEC477813FE +:10CFC0002992739B859C73C3FD3B21D7C693679AB7 +:10CFD00021F8AA8ECBB3603EDE2447512E32DA17F9 +:10CFE000017F8FD6A1BF0EE4590D97E7D83E28D612 +:10CFF00021E8ED75F6755826DE07927C9DF9557D82 +:10D000001DF667F171B9786FAD536B1D66E77279E4 +:10D010008678453C66E716F22E345B1DE4591DE622 +:10D020004F65E79A8447808FF23BB3A3EBB0C3B15F +:10D030000EB3EFEFA2F5F7CDEAADB4FEB2359CCE5C +:10D04000599F59548E6D4439366B7C3E18F523E454 +:10D050001CC931CD30C90E0BA4189DFB080BFC81F7 +:10D060008CE072AC66BF41F34D811CABC1FD503EFC +:10D07000DF7012F05743F893BC36FA9689F7A1FA9D +:10D0800071F09772E2CFE2432BAF05F5AF3DAFC52C +:10D09000C2DFC9F2567A46F5C0371C7AA067563708 +:10D0A000D9E93D88C754018F0539C6F36E7A528C91 +:10D0B000CE0B6E48963761FD18CC1FF310CA5B7318 +:10D0C000B4BEDC780C0BB9552DE456B0DE25B7D4D0 +:10D0D0001CC37DC560FF0ED36393838CB5313B7D4C +:10D0E0002DF906F2EC6ACCC7B3C93313D7B7E9E719 +:10D0F000EB3D12CED3735F7490E4416FB5B01375FE +:10D100002EEF6297A77671BF8FE3B37219AF9B7E44 +:10D1100085C7656B58F326E4C3599EDC3AC063EFBC +:10D12000ACF514EF3F76B992125F31B912EC21F1F0 +:10D130007B16EC27FBBC7B845D65D58FCFE276D474 +:10D14000A81CFFF337C89E62604FA15D26CD5E3BF1 +:10D15000C79E7F31106E36FD0B88BE247F228D1C4A +:10D160004E9807D11DF90AE9DE5BCDE98C7CA0D988 +:10D17000EA563FBDD53967BED2DCDD27913F07B9FE +:10D18000BC69B4ECAC3C974729CEAFA1C420C99F81 +:10D190005E217F46F5C75CA73E58ED17FEACCFB8C1 +:10D1A0001BE7D12BF449AFD007BD6E7DE2FA7E9B21 +:10D1B0009FCBB15FC9C60EA473AFD02785EFB93E30 +:10D1C000B1E8E7D7B51D829E27BCA783DF285EE5BF +:10D1D000041CFAF3CB4B8BE5C5592513FC599097EA +:10D1E0004111D7F980EAFA93137FDF87F92C94571E +:10D1F000A351A9AFFCEC84ED2DFEF0B3CF51BB40A1 +:10D200005DBF817C1A69CC539E42B04E6FF0727044 +:10D210000C56C9FD0BFEF30CAD0F20556A40C3E759 +:10D2200087CD3EE4E7C56CD88F7E48A32BDEE3BDF7 +:10D23000BCB4D87AB4CAB5877F3BE5199B7F72D05E +:10D24000EF8C071D6387591E8349EC60BE0FE5987C +:10D25000C186ED79D7A3FCDDFEC694673015E9C021 +:10D26000F209E35F01F08331CFCF9AB727D9CF28F6 +:10D270002E5F9F43DB9E85EB583E70CAD879DC86D3 +:10D2800030D0B990E38BF3E193D37303E2D74FE748 +:10D29000081DEBD05D8EF66BBEDB91473F94FD829F +:10D2A000E4F731C02FC6D9FC6193FC06F0F9282FB2 +:10D2B000AD249A6676BBC10DA735AFF1C693C31FE7 +:10D2C000AEBD121D8D2F0AFFB1B85ED707632F23A5 +:10D2D000DF1CD3F8395B596EBB7F288AEE3228EC0D +:10D2E00046AA3F3484EBD8F46B0FA27FD00CEFB189 +:10D2F0005454AD2355C05797E0E32A959C44765784 +:10D30000A884D6F7DAC311CA433BEEE95737C22BDC +:10D310006FE912D2135E6F431BEE639C77E23CD53C +:10D320001E3798AD723B6D4398E7776D90DB548C58 +:10D330009BEBCC50913F7A349E4736DEBCD584C7F8 +:10D340008127251A9C100F17615B18AF53C4033A4D +:10D3500003A9E5F6FCF1456A80DE5709B8CE3B51DA +:10D360004A79711D9A87FCE66CF876B506FDE417DC +:10D37000BD0C8FE56765532DFF1BC01765C34F7F3D +:10D38000807409737BDB1F6936F3481789B5CD427A +:10D390009B5F93DFB29FD7D2595B1AF9B133217BE0 +:10D3A0007AEDFAFCAF8CBFD1B84486D5A13E97592F +:10D3B0003085E37D2E9059A6227F2DBCD0E804381D +:10D3C000FE80EBBF02EDDF0CE979EBBB0B2A5612B6 +:10D3D0009FE0BC904FA024B9FC8704D8996897447B +:10D3E0003DA6BF483E024B80BE75C4BBC7814BC83B +:10D3F000417A05EBB06984EF3F0653FC9C2EC6636F +:10D40000D0CF29454CCEC4232BBA44C9AD2C25A579 +:10D410006953E16CDA678C06FEDAFD5E4EFD4AC6A2 +:10D4200016F641E843F42B0FD1BEC45FBDDF93C0B5 +:10D430001B60F750BF489D0FA614FAED81750FC20F +:10D44000887580FEC2D20F2D19B7EB687D6C688F8E +:10D45000D173263F6EA01E0FE37E0CC6CBC0CEAAB2 +:10D460008176BF6F5287C1F766D67E88B5BF1BAA8B +:10D4700063746E349472CA3D353139B9D65531BBB7 +:10D48000687EDC28FF00A7D6D8F4F678EDFED665D6 +:10D4900007C8CF1A5B3C440ED716F87A82F9795B3D +:10D4A00032141FC70D2FBB1E903D3C4FA5237C851A +:10D4B0009A213FE7830FD0AE113601F89BE985C56D +:10D4C000F0F23C26115414EA3EADFBCB780ED41793 +:10D4D0005B69D8CF91FE0BFEBE009F5F6B0C4D8247 +:10D4E0000E5EB99FF2DA8127C82EDF12FA023B5294 +:10D4F0008FFAE10B14D7E8AEA8ACA17368569EBFB3 +:10D500001AA6FB012C3EDD5B71690CEDDBAEF8A5C4 +:10D51000313466BA7CE918CAE703154F182BF0FBC3 +:10D5200013A5E833B1EE582DF96BDD27664E6D2B50 +:10D5300032BF10E3F202AFBFE1E7BD158C018EC22E +:10D54000DB1DF3A808CF1FEAB9DCD912FAB181FEBE +:10D5500096A2CB6DD8BF12867161FCD6C64103E39B +:10D560000A4A269CC1F37DEE7EAC71E047427F857E +:10D57000CED25BEB4E72BC2F0AC7D87AC6C03C60D5 +:10D580001FD811BD45DAFBD4123304EBC45778AE73 +:10D59000E1B8C9E7E795F2BC0985E2CA1248045C24 +:10D5A0005705FECF39F751354FA15FDBFEA10C7E49 +:10D5B00054313BA35BB1FC5B6339E2AD532A9FDF7F +:10D5C000DB3881FD12CBBE8B7E0CE02C8F7CE58F8F +:10D5D0009D6F227E3BC1519B4222A2EF209E9B86E3 +:10D5E000F25D3CB7E3D7E437ED7C9708807D89484E +:10D5F00014F66547B876C2380CDAC96C02FB2DA068 +:10D60000A4323C5FB98DEE4390D92904BF9CD8FF6A +:10D61000720DC0312FC0F5BD9CE4E789DCFA756B53 +:10D62000D09817C0FDED20EFC7DDFF83C1E686006F +:10D630007CFFAF6AFA342CBBAB1609BDE75A27E171 +:10D64000E8A4E2F9DADA14178ECC28912A391FE31C +:10D650004FB03E85672158EC2CAF262FE474457BF4 +:10D66000CE17F332DAF7AEE3E7B8AD73E325AE7B5E +:10D670000DBCC6678D998DB46F31EC8B211F39CFEE +:10D68000897B911EA760E97CFEA980D3DEEF687FCD +:10D6900092BD668B87C023A3589CE9B260F3B24069 +:10D6A000B13853B87C5278A0BB1DCE44BE6BCB5270 +:10D6B000DE0D9E97D7F8F904A4F75D421FDD81FACD +:10D6C00008EADF10FA07CFA76379777B1D95F7B6D5 +:10D6D000A7E87D67FB422A37B51B546E696FA572B8 +:10D6E000637B9ADA29F14E15E9B63D3E78B7441EC0 +:10D6F000FCCB2DCF4397DB2383AF609C8399FFC680 +:10D70000EBE29CF54D3D3F6DC13CDEED65839779C5 +:10D71000008447BEF1E3CE6700DEEDB3065FC123B0 +:10D720006D8F06F63DD389EDE7F1F6FD3D432D788B +:10D73000AE7BBB3807C912CB4E82072E271FC0A075 +:10D740001BE0637B85D8679BE4770FE377506EAF70 +:10D75000F970E305E47E83CF77A4E5C518E53F11B2 +:10D76000FCFB7B8E12FC24AA1631F6B39E373A6975 +:10D77000FEF3AC3CA734BBC4263FF6057C1CEE860A +:10D780000F07F73362BE8A366C6088765120733F8C +:10D79000AEBF9255070D3AE79DD8674A3AF6179DF6 +:10D7A000D479B80006DD2A0AED95C614AB85473F4B +:10D7B000529DCFCB5B0DF2DB1E09F0F3881BEB9B78 +:10D7C00055BE8E0D3A1FF5B8788E0630DA53F2B397 +:10D7D0005EB27BBE3F4E7B6C673616DA8D0BA7764A +:10D7E00012FB7692F36432D80760BFE55401A7F8C4 +:10D7F0006E93AB1E10F7734D961EBF17F4B8D6D5B7 +:10D80000CF0A5573E06FDAC31EB6B09CE705339BB1 +:10D81000BD10BB3CE8A8572E2B77D4A34BAA1C7590 +:10D82000ED6CA75D54B5F2638EFAF41BE73BEA3E5C +:10D830006D91A35ED2D8ECE8AFBCE542C7FB70FDAA +:10D8400052C7FBBF14DFEB5DF8B8D9559F6C3F0A98 +:10D85000C64DA760DC94FBBDDDDA157CDF0769846B +:10D8600072B9BF81EC276BDF0A190CED6B4533C829 +:10D870009E0FC262E5F121A73FE74B38E3A7B1E570 +:10D8800046DEEA17F797148C93927D6F10DFC8611C +:10D89000960FD039546E77A3F8453BC2CFBE9DADED +:10D8A000E5DFA5EC796FEE52167945784D0DEA8DDE +:10D8B00093C52DDCE3C496A5278C0BB9DBB3B0ACC4 +:10D8C0001FB5AD9BF1BF93D9519B1D353BC81CF9CA +:10D8D0008D46660DDDD314649E542F941D893B4DF7 +:10D8E000B447376013581FDD58223D635C6F8DA02D +:10D8F0003C5980FB2C9E237EB45FD8A5798A19C73A +:10D9000026A7D74242AF3D1B4C9F19847E94AA03A1 +:10D91000317BFC4D51B85DCFEAF9FAEC6BB889E286 +:10D92000AD4AAD46F1BE1A39AF7E26C2C6ACD31E93 +:10D930003CAF3E0BF729F939D74092FBDFAADE4F07 +:10D94000A53F61D273EBBDC577AC9EF369778A9F23 +:10D95000EB55D43CC37D9070FF5EE675F05D862D7F +:10D960008B14F617B7639C9EECD49CC87B71C60FD2 +:10D9700046F9AB7E72EBE06691D774FCEB7919EF58 +:10D980002158927F56AE05FEB9292851FFC7BFCE58 +:10D99000EDD017DA471CF6C7578395F47EC992BDC0 +:10D9A000F2629B9DB884F1BC5DCC9CFECC3CFB78C4 +:10D9B0003CCF83C9C34F7F807E406A62F97C51ECC3 +:10D9C0004ADAE7B3EA3F4D79295EF55399D13ED85B +:10D9D0004F533539B3C8F76EBBFBA2D8D5D4CFF1BE +:10D9E0005BF332DA912FB4AB12DE2F80F3C4F8FA76 +:10D9F00092D6BD32E6119F0CEE2FBAF8B717FB99FD +:10DA000085FD1A942F2CE72FA078BD5C6718060FB0 +:10DA10000A139CF281293B515E9C77E2D3EAD248FB +:10DA2000A13FAB7F15E769CBA3CE6A3CCF3B8BF31D +:10DA3000C4FD384DA7730E279BA78AF3B49DC31E60 +:10DA4000C5B388678D87E7CEF6CC84F90272849FD0 +:10DA500083947D86562CEEE686C3A7417F76396F88 +:10DA6000C1119D188E0E84C3C65F9D511E9FEC048C +:10DA7000F93C9971E5B06B5CC0435D25797324CFA7 +:10DA80008FD732A315F0D93D9D11DFC0177F1852F3 +:10DA90000BF110BFFA29768BEDDC8A9280F78EFEAF +:10DAA000DA485EFB75F057505EDBDFDBFC3915F5BD +:10DAB00002B4F346BBB95D1F0D527B6F543EEABC06 +:10DAC000178BB757A64B742E8672AB299F8C3D835C +:10DAD000FE865C97DA85EBE38520DFF71A09645E42 +:10DAE0000812FF1926EEC383E9DC8676B98FF59319 +:10DAF000EC57AAEAC85F1BCFDFC9BAF6532DFC5911 +:10DB0000E7B8D8892B75D26F9EBA2F63FC68B27EB6 +:10DB1000534775C3CB198CCF56F07B6EC79BC7EFAD +:10DB20000AF3F89D9807C517AC7904B43411A32300 +:10DB3000327BC279748A79B8E9DF69CD6392705B10 +:10DB40007ECE183C55AFA3FD44B35A11FB9CCE7951 +:10DB5000646B783E7C67756A17C631949022E40244 +:10DB60008F13C1FC94909D2F35AE07365477B3F5D3 +:10DB7000B80E18CF6F1BCF4E51D5EF38D67134C4C5 +:10DB8000ED9BC0285E051F36723E1C0966A2389EBA +:10DB90003FD97D90FC7AA16F82757C7FD2DAE7DE77 +:10DBA00054CDF323AC7DE94DD53C1F02F308345B23 +:10DBB000DD8203EACEFDC9052F9D647FD2B91FA97E +:10DBC000AACEBCB0602247FB939B443E09C3CB0A5C +:10DBD0006DF32F0D15CF3BB7EA7117BD06AA459E11 +:10DBE000818B3E03AB9DF45934963E8B8AD167609E +:10DBF000B5E0BB95C5E91257BFEDA0CB58BEE2F129 +:10DC0000DF32BEC4D916ADB5598279F7304EB7BEF2 +:10DC1000B24BF1DA3EB649DBB60E9F7F5ECBFC5DC0 +:10DC200008FAF1790659A006EFC9E0FBF3161F7F49 +:10DC3000C2FB96FA6B80E7B685B5A557407D4D4887 +:10DC400072E0C72A77B6C31C66A17FAED2157FC724 +:10DC50005F9D3361DCA6BB5D75C8FBEEAC4CFAA6DC +:10DC60003B567B3BCAC7AE6892F2790CA386EEAFF7 +:10DC70000E26F4F9984F70A56B7CC0E39588475F3A +:10DC8000B45FC45D387E67193903ED9824885994D0 +:10DC900027A55B592ACFD711EDCB5BF809D6694D83 +:10DCA0003339AA87316F13F0711DF6973C7B308FA3 +:10DCB000FB796E7CDCB6D023F29BF839140B8E7D99 +:10DCC000219157932C17718B54AC983D6BD1ED7EFD +:10DCD000C0573DC61244DC7DCA2D3C8FB9179F0347 +:10DCE0001EE785D2B7221C5396E424C4E3DD62DF2D +:10DCF0004A626A6725EAF33A7E7FE2FD5F0F0A3ED9 +:10DD0000E3798B1B04FFDAF86C43313E033EA56DCB +:10DD1000DB1591CC46A47F40CA6BE8DCCFB885AF59 +:10DD2000DB2E2BAFD7642F203FC5AD5C08C6D77163 +:10DD3000B9CEEFA91C0CF1F89916D650FC33FDC5ED +:10DD40006D12E6CF7664C206CAD31991E6A666BE06 +:10DD50005F3A8C718519D506D559933AFC20DE338C +:10DD600094D625BC87A0DA5087511E4501DF788400 +:10DD70000CE3E5B82F5BC60699AF88BEF62A298A60 +:10DD8000D3C6C3572FC1FB26A5926D4D0A8EFB55F6 +:10DD900046F7C195B79AF90C2EED857E0DFB9D5186 +:10DDA00033B40EE546C7452CB50EDE57DFC8DF9706 +:10DDB00083DB85EF61EA4D4A0DD18D5D6CA39B1A23 +:10DDC000CED07D96CB229941C4A3AAF3FC30CC1FC0 +:10DDD000453C6DF6E5C85E0E9E6D1A08CFCE9ED30B +:10DDE000D90A1BDFEF157CE1AD6346AEBEC07F5B99 +:10DDF00090B9018E4D8DE5812F86B15D90E8368B0F +:10DE0000350ABEE5F9D441C1B7C09779A453B26EC3 +:10DE1000D0C4ABCCE2E19C817882753995C3314C9A +:10DE2000F94B9B7B14BA5708E8F612C3F8BAC749F6 +:10DE300037356C3C8074BB39C4E333BEEBCDFCBDDD +:10DE4000808712C0930EF4F0B60DB22BA15D04E8EA +:10DE500067600EDBE11FB2E950D7AABC0CE386A1D4 +:10DE60007A33FF2AB49FB23C847BDE98AF45FADA5E +:10DE7000DBCAE3E965318F84FB1580AF97105FC182 +:10DE8000C64113D79185AF6EB9ED57B7A2FD73C0E8 +:10DE90009B3275DB7A61A998DD5FF4C7403E14B10F +:10DEA00053ACF627D3AB05BF96C7752D7B00D6D5EF +:10DEB0001B0897ACF17535593D6DE5F9020E689E6A +:10DEC0008AC84F55742BCF37C3F3E2623C2F0EF351 +:10DED0004529BF346AE575A54CD243E29E0019DF9F +:10DEE00037D23D1994B7E5E3EF5897C893C6F014BD +:10DEF000EAC72E91176DE5B975C5D3CE7C41C9CA65 +:10DF000073BBD891A7D5354EFEDF9630979F5D2223 +:10DF10007FA927EE213BB4C7CA0B3F2C515E784F37 +:10DF2000757A39DA45E6AB21B2A7F6562834BF9E9A +:10DF3000C3915DFE1ABB1C77E531C59D794CEEBCE3 +:10DF4000F05A7335BF6F28B653C5FDE9DEBAA51385 +:10DF5000E69F6C6CE77907DD22EF6074DC71CEBF61 +:10DF60009D13E6F20FF78F345AA769B2179404CFC6 +:10DF70002BF623DD904E3ACF67ECAAB889FC1B5FE5 +:10DF800082E7E3617E1CE50BC5783EA34F4E71FB33 +:10DF900041DCE7208BF716DD2C3AF75638E9D6EB53 +:10DFA000CAF3ECADC839E8D63B4AB75D0EBAF5CE38 +:10DFB000BD94E201BD785FC422A0579FB71BE3ACBC +:10DFC000B526CF83EAD6F93E6E577C29E5EDF7E812 +:10DFD0000AF9153DC9E2785475CEE7169DE6858CA1 +:10DFE0004F86013F770B7DA678F879780B9F330534 +:10DFF000FEFE51F0C93F8A7A4FF20AA2FF31B41BEC +:10E000001B189B8A59560062657D5AC2F53D10CE99 +:10E010005C82FD1EFFE5FF8853BC21E671C403A2AC +:10E02000621CB0975B691EFF3ED343F3003AA15FC9 +:10E030003533ECD4EB4A96DFEF6ED10FE8A1175BD6 +:10E04000775D1557135CB02E292F7C74DD2546E9CA +:10E0500067923D981079E1AE7567D1FB6F4DBFC7F0 +:10E0600082E99BC30BB83C41B9E4E6CFFFAAF303B6 +:10E07000EBBE1BF3ADFCECF31F2ADE377E1E473FE1 +:10E08000D943F1C37E7EBF5F416EDF1F86F7F195F6 +:10E09000C21EB2FCACF432E18FE89E0330AFE89DC3 +:10E0A000B53B8AC573AC38D971E8FB20ED67668251 +:10E0B000287F766FBD228871AFDDDB269643770B14 +:10E0C00039B443C8A1ED228FCF7ABF5DC8DB7B5C3A +:10E0D000E7ABC311BE7E5E12FCBD5B4D0791EEEC5B +:10E0E000E9CB2EC4BF9B917CD14B7268DA96C1B24A +:10E0F00089C6C7B8BA231FE243E6EDFD24ECDC571E +:10E100003DD9F756BEDE47C5CB3D48BF2AC0C3A6A2 +:10E11000CF75D3FE51BE94F8B1F6462EC7E2D94C66 +:10E120002FE378C04C14567AE2BB74FE6F671FDD94 +:10E1300001847ABC644525A39C2BB4977667977AB3 +:10E14000D01EA98E7B99077DCAAD7C9F53857F3CED +:10E15000FE91A77B60E28CDFB73AB3DFB90F1A17E5 +:10E16000FBCED5AE7DCEF8E1DF1E463B2FEEBA5F8B +:10E17000FBA3E2FDBDB0EBFCECFF23BC6F970703F4 +:10E18000F67CF669124B237F4EBBEE75C7B9C050C3 +:10E1900084DBEF6C6D98BD668BA7DF230D96A17CA9 +:10E1A000DF71ADB8A70C43602887EA86BE43E7401D +:10E1B00056DCF4FBA7D05EA978E35C94FF532321DF +:10E1C000BEDF78ED1A47FE23F81F532336FF6C4756 +:10E1D000E7522AB79FF8CA5E1FF437EB4696E2F77C +:10E1E00030B097F0BE7B5DD0B9652B233AD7C6BC63 +:10E1F0008CF22F4C279D6B57723937AB8FE5906FA0 +:10E2000066AE32253C179A5CCB52067C5FBDD64683 +:10E210005FF82FB975CC7DF0CDC82753534CC77C20 +:10E22000D5647FDBDE7B6DFEC254177FB8C7DFADE0 +:10E230000E5E40FA10F803EDA7597A9B94C7F133AC +:10E24000E1B61C6E8D2D778E1F8769223DDCFCE8C0 +:10E250001EE7A3F25B4BC4B9CE8FB1CB3FBB07F037 +:10E26000B1B3EBE17F9D4DC8EDF7D8FD528BDF6474 +:10E27000665C887462E9A8F05F8D9A62F27C544E05 +:10E28000A72719DF629F99502F942F71E67D692D82 +:10E29000CE7AB0DE59B7F69946E962DD0B60E50B40 +:10E2A00064D2BA7D7ED988F932FA9D5F893C767E48 +:10E2B000148442161DFF4558FF11C92309777E506B +:10E2C0003F26659247C7E77AC81E0C57283954562F +:10E2D00032DB49FE186BE442C52BE209210D1D34E7 +:10E2E000F487528EF30C85FBCDA3422FA56313E177 +:10E2F000D1B8BC89E1F952BC3F9DE29DE0B7AC27A3 +:10E30000FB54A67824AC1F3322FC99665C7FE0277F +:10E31000E373CB8FB7C639191D26DBCE3A2FDA89C6 +:10E32000E74561FE65D3B51ACCDF63787FAC6EBB81 +:10E3300057753A3F675AD6A2D550BCF67048231F8E +:10E340004B9C0FED14F26994CFCAC02F00B97B7AB1 +:10E35000303310B1C5ADA4F256877F10636DDCAECB +:10E3600064692AB5A9ACE1191C7F0A8F837644BA87 +:10E370006B50BE745638F5EC6F841CFB76C44B7240 +:10E38000480BF1FD24A69A71FB3ECA898864BDFF43 +:10E3900032F2C51F22AFEECFE2D9BE52D680791B32 +:10E3A000FD9B7F7B7E2BDEF73E537C9F18E7FB991E +:10E3B000EC7BD8FE8D4DAFEC9781EFB4199CAFDEAE +:10E3C00089FC89F84A9BC3CF3BB3467D4727C0BF32 +:10E3D000EDF395746FC8944FADADC1FBA346FB41FF +:10E3E000DD00FA71587CC7323C7E67E5F181DFFFC2 +:10E3F0003F715DC65B07F3E8EF7BC3563CCA88AD4F +:10E40000B0C5BB3F810E2AC675357DA7DF66D71D17 +:10E410001478B1EAE807609C6E646826C5E7E418E2 +:10E42000F78FE59899B7FB6D4C6B2DEC63D4E2F94F +:10E43000BA0B49AE33ED40F475DBF31311B1EF2D98 +:10E44000A763DD51D40B2A9DFB817964D8E98E79CD +:10E45000BC8C741F3B0F2BCE585FFA6BDB3A1A72E1 +:10E46000C1DD25E28A56FDAE388F978D8E9F4AC555 +:10E47000BA1B0BE31F8D88FC84B0C9EF15D2A08CAA +:10E4800014DAF72FFEBA84E31BA1CCEF102EA535CA +:10E490004D709D1F33286E36DA6FD4D9EFE8F3182C +:10E4A000EF77B4DECAEB3E201FE6D56A8B97503E6D +:10E4B000749788B31BCBF979E360829F8B72AF3F6F +:10E4C00058E727EC7AD28ADF0D848DF7F9FA1FC757 +:10E4D0005E16F1B92B160A4433FD5CD49BAB455E46 +:10E4E000D89AC7EFDD8F7A6DCD99A04553B8FF77E5 +:10E4F000FF7ED4DB5EBC0F85F21AFBF7BF0AF595F1 +:10E50000CB438CCB9F7409E2E96DC6CFDFBCCD5EF7 +:10E510002839CDB6CEA695883876D6477ACC847F72 +:10E52000C80757F5FB1C7AED8BDB9CF5ABD9D24ABB +:10E53000941B576FF5B11C9076B54BEF854A38BDEB +:10E54000BEC8DABA51DE76897BE3AEFBC13C05F189 +:10E55000B6FA34ADC66BBBD76466098FABBD09FC98 +:10E56000ACDBE4CC35E19C82F700BCF6D869979E21 +:10E57000C5B09F5C775523DDE94FF2C38DF72BB310 +:10E580004E384F360F37DC965F311E1CF21EC928FD +:10E59000760F5B4389E4D8C71D3D6FB15E661D8D64 +:10E5A0009837FBF587F07CC65AD3AFE179C2E38197 +:10E5B000E939FCFB4F1794E8E2BBB633789E51DB98 +:10E5C000A958F6467369E43B2B3F21A0B6118C9203 +:10E5D0009C267EEA8D9DE47D02DE7B27789F9CF859 +:10E5E0007BCC3FFEE0749E024EF7E988785E56E8E9 +:10E5F000810E5FFAD3A8573AFEDD4BE7B33ACADA89 +:10E60000E8DE4CB39AE9744F66325D8A74F6BFE86F +:10E610008D7A6A042B639C20DE4AF1CA65253E216F +:10E6200067F8BEA63F6CD2FE76B72F132B033C2BA8 +:10E630005FE779134DE14C06BFF3C696FB304EF50C +:10E640009387AFA4FC8E6B62E7CB2817FFA184C72A +:10E650003DDFFED6F74E67005FF7231196277F3028 +:10E66000A7A03F78CD635E8AD37EE9BB111AFF9ADB +:10E6700047BFB87B09F423FDE01CFD28ADCB0EFAA3 +:10E68000FE9A272EFE9929E6833E75C73A910767C1 +:10E69000A662A8FFAEF3B37FC07870D6A50755BDBC +:10E6A0009FF277AED95346FB1BA3FC2243FB7A3A79 +:10E6B000FFF90FC5FE0E4387E0F7B7223CBE2BEDF6 +:10E6C000D9FB05826FF0EF7D382F29D1C67E03E399 +:10E6D000AD15F38376143730BF29D1FD6B6F7D7391 +:10E6E0008782F914D7ECD9A15C61DBFFB7E054F75E +:10E6F0006C31719DA849AD16E3CB8BBFFB48099ED9 +:10E70000BBFAD277DFEF5E04CFBFE465C34B403E78 +:10E71000DCB0C77B04CF690474979D2AF255AF27FC +:10E720001104EDBFFF1FE7FF02BE7B13E410A6C874 +:10E73000BD79F037CA0FB10EF631CAA11B9E74AE77 +:10E74000AB1BF6BCA6E07C340F1B4E9C85FBF74E42 +:10E750003BD9DDFE183BA1609CF986C11EF2E76E35 +:10E7600078ECED43B83E6E70ADCF37F197F8583B7B +:10E77000F99B252E7F78CF9449D9B35F7AE4D87D71 +:10E7800026E0F1AD477F779F0978BCF6CF7FBCEFDD +:10E790007F607CF0C7010DE5CB0DDFFACD7D5F8397 +:10E7A00079BEFDA4DF837CF1CE530FED1E80FA3BD2 +:10E7B000AFCC992F417D9F58F7EF7CEF4F953AF4FE +:10E7C00073E3539F988A7C77E3E38BE9FEBDF1C640 +:10E7D0007FA71DCF2ADAE1C9F1738B4F4AE8443095 +:10E7E000F62351BAE8C0FA87155C67EF49FC5CDE96 +:10E7F000F583EF2BC87FFB0D368C7879FAB1D7F60D +:10E800007F0DEA6F035DFC45E802F39EE6A1731BF2 +:10E81000F969787EE3FAC72EFEF4398D58FA52D89A +:10E82000FD0D6C98E4F5187ABE08F46C2CD0735C7E +:10E83000FA3DDC43F909370C02FD4E194BBFB7F125 +:10E840009733C7D2EF4889DBCFB9F6FE017CF9D800 +:10E8500094A276AEE5E75CF7F82513FA53EFB8D645 +:10E86000EB78785E25FC8DEF9418EF96E07A7BF4D8 +:10E87000DBBB07A248677F0AEF5B7EE79163D3F1BA +:10E8800010E61BBEE12F201E869FF26B3BE19B6BC7 +:10E890009EFA39E985771EFF574527F9CD4A24901E +:10E8A0009BEFB0D19F17D06EBA5EECB75DF7C0FF9B +:10E8B00039FF107C7F1DEE9F69443FAAEF37F8793E +:10E8C0009AEB739F69D5310F245741F3BE3EC7D7EA +:10E8D000C3F5B9BDCB30CFDE8DF7BA52EBFC7F81EB +:10E8E000AEF877DDAE7FECC8F9C87FE3D1D39ABF2D +:10E8F00086F33F03DE3FE05CAF63F9665841F96F92 +:10E90000D1F79D1DC7955F40FBFC0F15CD8376B2F7 +:10E910006F5821BDFC3DAFF6606A2CDDD1EF5D4143 +:10E92000FB65EB8BEE37BBF96166A96B3D0B7C9CFD +:10E930006C3D9F7C1E1F0E4F534A7507BF58F85AF7 +:10E940001757C8AFF4962874FF7EB74FFF39E60714 +:10E950000F3FEB633B7594EFA7B3627FDF13FD2896 +:10E96000DDB6BF2287D3940F2A4735BAFF626CDE2B +:10E9700093C775EF1E3FE7A99832C3730FEE739DDF +:10E980006E3BE366AFF14AA686FCB44F9562BCD4F9 +:10E99000D3F6E410C6914BAF1EBA9515FEBE8FF5A7 +:10E9A000777BAC712F2BE572CD2AB7A29F8DE35CEC +:10E9B000C2720F925F9896EC798BC482E0F75CBECE +:10E9C00079DF27C9EF81F7C82FEEE7D678B296A690 +:10E9D000FBCAFCF53C0F12BC8B215C379D62D17CDD +:10E9E000A994C7593FAFA5579622E913E0BEEBDCC7 +:10E9F000AF182AA24FAD12EF69457FA8BB3D43E592 +:10EA00004DA58CC72DB44103BF07BFA50DFB83F1F6 +:10EA100072B82E651C4CFF4BFAD7C87FB1F266E680 +:10EA200085325F43FCFA75BE5FE64FF0B8B657E437 +:10EA30007F76F89CFE6DA7C0AB558EEEDF54ADDA45 +:10EA4000837FFFB1BF29D6C0F9214DFE6A57A96463 +:10EA5000F965E497DC21313A176E4A2AA787C17419 +:10EA6000AD92C7E3713E5ED52067CD87F9ED744F57 +:10EA7000A1496500F98BCE3BE5C9AE7BA8B456DC55 +:10EA8000C338249C3B83F8BA34C524D42F5B232994 +:10EA900093E8BE82690F3614DE779F23EE51ACE314 +:10EAA000F5585A63D87E4769B9B55F4B79CF533370 +:10EAB0009A86ED06C2E97B11EF561CA09165883F4E +:10EAC0002AD530CF7B5BEE3AA763F16599136FBB14 +:10EAD00005BE1E12FC81393A55E58E738ECC7ECE72 +:10EAE000D18A7F7489FBB2CAA66B2BF0DCEFB8F138 +:10EAF0008FDAB6535368178AB84757BBC85B68E1CB +:10EB0000F9B7C72B387D613DFD53A93DEE51B9DC06 +:10EB100015F7B0EEDD328FE0FAD34E65EF527CDBB5 +:10EB2000FCCD27F1DC8936877D0FEB1DF26B9FA4AE +:10EB3000F8C4697C9DECDD7CF493B8BFA49D21E210 +:10EB4000150B9DF18A9F0979FF13C1D7EC6CEEA7D5 +:10EB5000BE52CAFD56596B233FF827A20E64203FD0 +:10EB600079B4DEC2DB8FD6EBF9FB8FE0E7BE525AF9 +:10EB7000DCCF3D544AFB63E3DC4B23F23FC7CAF1D1 +:10EB80003E9EFF27EE93EA087BE2983AA5DD51D935 +:10EB9000C0EF075A78408FE2DFB9888AFB12B83E8F +:10EBA0009199759E83C743AD7182E72C7D05E1DFA6 +:10EBB00006562BEEABDD2165EEC6BA2905E85CFCF6 +:10EBC0009D92906B9F9F2DE49A19C0BFE77957A43F +:10EBD00096F2E3B731FE771FCC34FF3B2C9BEB6EF4 +:10EBE00024F9BBCDDC4A7801F94BF2D65CEFD7F0C3 +:10EBF000DED2AD9935F4DE94550DCF778F3D4F9F22 +:10EC00007B7626949768D3F9FA3FFBF61EBCC26B5D +:10EC1000738AE74BFD5F94BB735F008000000000C8 +:10EC20001F8B080000000000000BE57C7B7C14E5D6 +:10EC3000B9FF33337B4BB2496673DD5C0893844B79 +:10EC400080804B88C8CD3204C414A92EA8152DD5B8 +:10EC500005412284244654DA7AEA842055E053D2CE +:10EC60006A6B6AB167E10852053FCB454C6DE0B76E +:10EC70000444506C03B5201E6D636D2B2290351635 +:10EC8000A11E4FFD3DCFF3CEB09724424F7FE7AF9B +:10EC90001FE86778E79D792FCFFB7DEECF6CF2B050 +:10ECA00069AE79E5005FD29FC900935409E06A809C +:10ECB000753E5B75D01DBD6F5D6F5653B93F79BC16 +:10ECC000EC0F96F7EEB7DEB7FA9387D90CA8045885 +:10ECD0001938B64DC1AE75933AD4A959008F661D47 +:10ECE00098A400401E8D978DFD65B6B07314805EAC +:10ECF000BD01FC2301EC592D10C0F901FCDCBE98CC +:10ED000014F0AA38AE6D9CFC3E3D67531B2080E397 +:10ED1000AF0423094A01DE4B0F1452FF93E0731531 +:10ED200017033CF5EDB165F4FED3937EFC7815F046 +:10ED30009F2A188BEFD1BF34809F483A0CC17519B8 +:10ED4000F3DCEA2615EFB9745EA7A241C66A0FC0CC +:10ED50004F71ADD4368641705331BD84FDB8EEB4E9 +:10ED600032D1FF94E483C1B1EFEBBAA6E2F8923955 +:10ED70003E800A3AB6ED60FE191E005AA7130C9C9D +:10ED800004200942DC7643275FA7A8254C87740836 +:10ED9000560FC1419EAEE9009EEF56D8A01447E938 +:10EDA0009BED721B4A1A8E778BED4C579918FACB54 +:10EDB000121A6FBDFAD7110032B533E9AEC1E3B50F +:10EDC000BAF4C769BEF7D2FD93556C37AB15A716D9 +:10EDD000E2FA06A82A9F93451F17AE97E6CBF68165 +:10EDE0008FF627C1DCA67025DF6A58EDEB3D1FEDDD +:10EDF0008FF65B606E2F170C89E621FADAF1BDBC45 +:10EE00001A08AEC67D1442A744FB2B82085F35501A +:10EE100065BAE6B8FC928DD7FDAEFAD7145CB7217F +:10EE20004B5F8E88AEFB5A5A1FAD1F70FDF87C33C6 +:10EE300075E0628C806C9E07F0E25AFD2B82AB8BF2 +:10EE4000693F1AEF079FAB0EB9F93C93E6A446C79A +:10EE5000C3034A937200AC579DE0918BF0FDF35EC3 +:10EE60000556E354D7296E3E6FD772083AF121ADAB +:10EE70002C6B4509B611847AFA38A20FACA8C27679 +:10EE8000D11457C4F0F1FEF9FD7C7A1FDBDA4A0792 +:10EE9000845D267DF0FF9405D82E8BB6F361ED27B7 +:10EEA000746E4510731FE7C97FF7A3776114F5C728 +:10EEB000BC4F8B54E6A6137E896720AF379F2D7F0A +:10EEC000F7A3CC0331E37F4F4DCD223AC23570CD4D +:10EED000974AF4FDC4F7ACEB85474E651E40701AA7 +:10EEE000C97A13E102DCB899F1C84F9EB1DEBEDEEB +:10EEF000B3E8685435FC7B17E17E850D9AF1FA542E +:10EF0000CAF79FEBC257971B4ED589D70B4945418E +:10EF1000207C42C335C4B778BD8AAECD5346BF9D71 +:10EF20008574CA7EE5FAEA6A9C47B18524DADABEBE +:10EF30005B579D24BA3F0DB28FDE071D343527CABB +:10EF40004717EFCD807BB0FF170D693E82A8C557EC +:10EF500029169FA97A139DABC5D750E1677E72C071 +:10EF60007DCC672E08C6F1591A44F89A54EB030970 +:10EF700099A5637995A7CB4DE3ADED937F2C5CF418 +:10EF80002C13B8B0C188746A7B97D920888BCC0BBE +:10EF9000F8D3C334AFA11FF38E8DE2CBA3E3B3311B +:10EFA000E79359ED025B0C3EB2FD6A5CDBC293D77E +:10EFB000C463EE1C6FDCFBB0D2F627E23F0DFF12FC +:10EFC000FF0D00D1B6F0620763DF33B8AE82714E39 +:10EFD000358CEFE72D30A4308E571870372848F75E +:10EFE00082067C3E663E6FC2FB89787AD5C213B238 +:10EFF00039E109E9E02379D0F396E273E26D5B979A +:10F0000093E9928F74213AF4D08BD81E300F824648 +:10F01000716F7A5878C3FF7CB4AE221C274C7CE811 +:10F020008DA75392164FA794B2783AA5FAE2E95207 +:10F03000DCD5C4FB3E88FB06E4D3F4715A3C5D4D3D +:10F04000BA95E1DFBEE85658136AA2FDF4A60FF2A6 +:10F05000EBA8CBD3E934D16944944E8A3B783BC9C1 +:10F06000A502C4B342FAC426F06153BB4ED2FD429E +:10F07000BA9FC5AFFB5D39CCDA02B709B8BF44AF60 +:10F08000AC96A67BF0F901887F3A47BD7C80B188B9 +:10F0900070826DC209540412F44A90AF2910E6FB45 +:10F0A000A9D0C5ED7440BC97127E834D6212A15762 +:10F0B0005348FE32EE3F8058F98BFD06F135F2558C +:10F0C000C3D338AFDD35331CA0791568A033437D39 +:10F0D0009CE2B99AD6070706E03E93CA20487ACA4E +:10F0E000A922FF95C48E23AE922DCCF25A592F9EA1 +:10F0F000B35535AC201C48A45F681FEB51BF58F4D2 +:10F10000A7F74B745E3FC2E56D7ACF8E745BCD740A +:10F1100053C3019CCF61EEFF4AF7ED24FD98D29BCB +:10F12000BF01C24D24CF0A689F2C5FF4E384DB212A +:10F13000E639142E0F08BE2C50C089F82A6C08310D +:10F14000DE8A106F0A3DDF2A70E3C2BFB4EEA2E58B +:10F1500021E6BB5293EF4AD6C6E3AAD8886F83F262 +:10F16000EE2CDADFF9876520BA1424E04DD33AF7A4 +:10F170000DC57E4D177AA7D800DF8218FC0D08A4B4 +:10F18000F9168C01184C673ABE373EBFE689D70B9B +:10F19000F7CFBA85F1F8EF0F6FF4F425E79F7FC43E +:10F1A000EB5B80B87BE611175F53B7681DC9B49F4E +:10F1B000AD821EA573FC4F3B2B89C4EE06498DE240 +:10F1C00034F808F0F33F7F44E5AB0D02377A90BE88 +:10F1D0001BBFF37C076D37A7B285AF1DB27E13E16D +:10F1E000069ECC62F08F585EC8EB1FBEBC88AF890C +:10F1F000FA66C07F9F98753D3E3AB045F6ADC0BBFC +:10F20000032F3AF55039E90BB1DFD2B55DD27C6CF2 +:10F21000CFF308BB53F3E8DFA279A12683C7EF8FB2 +:10F220005E89F3FC42823964373CB3EC18CFB752A5 +:10F23000CD1A4D6AB4D8A627CF423B629947E6E77C +:10F240001CCB15EDCF99D1F757B5CC4E47E5020E43 +:10F25000972EAB781DD432454EAA6401E2DBC4B3CD +:10F2600006E09654C29DCC7A7F115EE95C533D81E5 +:10F27000FB990E6A7254EF97D0F80E1E7FC003D32D +:10F2800092C9BE7DD6D525113E0648D0608C46FC7D +:10F29000D5C6EF47AB5565925FD67AACFD699EC087 +:10F2A000F7890E452E37B7894E6C4F84D3990F07D7 +:10F2B000B60AFBACE06160B93EE82D85AD9A812DC0 +:10F2C000212909CF79BA3233B9AB9CF9E1C6796308 +:10F2D0004D56C4FBCF067CCC0F43F2143008FF26FA +:10F2E000BE51FC9976A12E935C297C3806C7F8FFA5 +:10F2F00020539E0E8118FC231D0691FD9346FDF1BF +:10F30000B84F3CB7C25AC4550CDF58FBB4F69788C7 +:10F31000FB672CDCE742DE97B8F8F33029F73A2D8B +:10F320008A8B22146CE3327ADB43515C04194FD68A +:10F33000F8A3C3F1F35BE3F4675F45E59EA1B3FC7B +:10F34000F282CAB69CCFB85D223926A33C239C2406 +:10F35000F80D52E0E0DF25A493A3DA9034A4BF7740 +:10F3600066C090C8DEA8069F86FDFA93C5ECA72468 +:10F370000FEABC7635B6BD01DF3E1B8EE7CCEABC9A +:10F38000167D1768F7B879DE8B497A3B9D7F26C9D1 +:10F390003FB6CB2DBBA881AF2E68E16B32FA218638 +:10F3A00012B58F6EF1045EA5F72C3BA934ACC90EE3 +:10F3B00089FA1BF85C8792FF81EB4B94D72989F27D +:10F3C000D59DC1FC7939FA386D81F07CAD371D705F +:10F3D000D99A3F35FAFC0F06409B7415F617227D2B +:10F3E000D2884FF10027D030916A7D10C09A5BB768 +:10F3F0007BB3597E43584539BDE6EB92E8FFB1EB4C +:10F40000710349B2669668DB3314D1BE5D22A31B3B +:10F410003C667F310C67FFE2510DFD1F9CFF427679 +:10F42000A30B90FE3F289CFD957674F32338E1D022 +:10F43000E8738A4DAD623D572807D123EAF5BCCD6C +:10F440002DC7F9056B464ED749BEE3114488032DFD +:10F45000F9625B667BDF89FB5C85E3D23A1CAE0612 +:10F4600050F1EA6CB92FCCF849902F2E53BEDC43F3 +:10F47000F24562F9F2259DA3122B5F202A5F4EA26E +:10F480008F47F41F5129FC3E27FA7D80F2C591A1D8 +:10F490008973D14232E1CF92CF0E3C4EE20797CD35 +:10F4A0000F3EDCA7BDBA0134BC3A67FA755A8F9398 +:10F4B000F0898F64CED4988EF641C078D49FDC005A +:10F4C000DF46DCA467B8F97DC4657A065E33325442 +:10F4D00053FFFA243FFB690D40D75B3CFEAC0CBCEC +:10F4E0005FEAD53A080BE4CA11FE87BA85BCC2E7C9 +:10F4F0005690BCB2F56737D01FCBEF2EEE1BEF7DD9 +:10F50000F903BDF0AB665D117FFFD0A17BAEC347B1 +:10F5100057FDC6EEDBA85DB97F64E94B4BCF5A7A45 +:10F52000D3D2BF73328A4DFA587E54E7D7492F5D44 +:10F53000F89A9CB11AA2EB58B700FDDD72DA6A7E28 +:10F5400015C985D5E5F337933F7C61D8FC6407DEA8 +:10F55000BF2D43E17136B75E198EADE7141BBA5B60 +:10F560007D3C9F885FDB32D9A0784C2FDC96CF673B +:10F570001C9C5F2FCE6168CB7D1D7DE9456B5CB91E +:10F58000377E6FCBF80AFDB8D5A3CFA1FE1F560476 +:10F590006AFC7DACB33E5366BC3DB3ECC924C2F1FA +:10F5A000CF1688B88045A73501934E231B994E0F7F +:10F5B0009B747A6EFD95D1C97AEE5FA653603ECBFF +:10F5C000F3F393049DD25B3E092BFF1C9D1EFE2A84 +:10F5D0003AADF66F7CAC44C44D7C83119F4FFAE585 +:10F5E000F0646CFFAC46DE4AF6E66A7F55D2606C8A +:10F5F0006F9ED4D12E61FFD39922BEB7598D1CA224 +:10F60000E78C41B2B689F84E6DA9A6756E2EAB8017 +:10F61000D531F1A8CD657235C5F95697CD4FBE3BB2 +:10F62000860E9B5B7BE2E2089BC9BEEA235E38251F +:10F6300053D86D4F2F90590E25052028E3AD69282A +:10F64000D3A99D57887E37F9D9BA68A3AC0C6AD87C +:10F650003E70EDAA29A4F7562F20154FF6CA118344 +:10F66000F6D98A72D4C9968CB05BD24C7DD21A0876 +:10F6700073BF93E2372837D2BA66859FC98AFA8D5D +:10F68000EE718976F95C203BFE3CD9F1E44FAF8FF7 +:10F69000EF7726D831AAEE0F935F6023BF80FCA5D9 +:10F6A000CBF88D9E693E8E6FEEC830FDC75C184862 +:10F6B00076CAA38FB4C10783E152FC0645811EEAD6 +:10F6C000035F96BD72D0C4F9D3FE15928ECFAD9B69 +:10F6D000D72291BEC8FB42613B19A0C57BC7C8E8D1 +:10F6E0007B9D19C98CF37576711EBEB03A95423F69 +:10F6F00036B73A9AE4B5F5DC6F32CC38709278AE12 +:10F70000B2D33F35F5AB9E4B15F6F3B8AE96A9696B +:10F710007D3CB7DD5C27CECBF6D0BAC18E6013D26C +:10F72000659D24E4A7F1A6DDC4BB38E7CD0BD50D5C +:10F7300024EF771C2A59534E3808681534DE0E2DF5 +:10F740002097B8FB979F2F9B781A521DD059795C50 +:10F750001A2FBC55E88F88772ED2A32353E8A31D18 +:10F76000C9283F984E81FC5931749A9829C7D169AC +:10F77000F7DBF35364F203CBB40C5A47465910E459 +:10F78000F2E87C3BCA703E1AC7A6AD1949FB5B186C +:10F790004E5D1DB37F6BBEDDC97DCBAB6BADF94C50 +:10F7A0007ABF726A63DC7CC9D5F1F3252F30F7E7A5 +:10F7B0006A691A55D9FF7CAFF433DF64EB3CCC7334 +:10F7C000DB7BF14F2932D999E51A494248A1F9DC8E +:10F7D000BDE7CBBBF8632935868FF799F3ECB5E825 +:10F7E000680BE4CF8E9157A9F43EC955FF8E43773D +:10F7F00063F7E3835725915FB3590AB986D0B95FA0 +:10F800002BC3265CF7BAF5554076C4733A30F77AC5 +:10F81000DCC61452C6F765669872B98ADF936C2D00 +:10F820004D368AABB472AC1EFF04393E5064C50736 +:10F8300012ECC8BC99AA311F9FCF34E387DED6866D +:10F84000D78751BC62B9EC633B332C816D6C340EAD +:10F85000E30283E33743CDF1F2020F729C62BD02F3 +:10F860000D0ACA893EEC0D1F5871706A57E81C6F6B +:10F87000B0A3DC26A3CE8A4FF48E4B84A7D075208C +:10F88000897485BA748E8B0F36E333C5BA5665C357 +:10F89000F50C690DB03D99B10C383EA0A8411E474A +:10F8A00082B56C37A5943EE3B914B79C0870846C9C +:10F8B00017A4D79F2DFB0ACF83EC879E0C11EFB7BF +:10F8C000DA9019DFD6D74EE17C084A8708D9551758 +:10F8D0009302D76762BFECD275BA9FA4BB2242AE37 +:10F8E0003580544CF246E678DFFF6FF2BA26335E7D +:10F8F0005E5B72DA92DBFDC969B647D1FF38F8C4A6 +:10F90000DCAF93BFD1E9D11B88BE734DBB1AFDAEEE +:10F910000732B309AFA053FE44598B0EA844F144FB +:10F920004DA6F11371EF6D45DC13FD11A7D0871FB4 +:10F93000E902C43DD1DF8A1326E0BCD52EE26F88F0 +:10F94000CE066502EB0989E2EC45D6F397C139C2D0 +:10F950004C53C8AFA4789F126B6787B89D685F1738 +:10F96000DAACFC8F8FF13E08FC8CF77C972A13CE23 +:10F970004BA6694D1477186213F6FE00B4F70DDE3E +:10F980008C0A64EF270784FDFFA4FF4F2C07FAC3FE +:10F990003DE295719364FA5388E30D9922FF036465 +:10F9A000E7D811C7B43FBD650ACB9BE442F4F7200A +:10F9B000D60E92439246F64FF031CAFF90DD447A5C +:10F9C00069DD170A3FFF78ABFC1F2B701D8FDB74BE +:10F9D0007E7EF502D98734243B283C999EAF9183E3 +:10F9E000838BAFC81E62FF73CA13D5EC7FAEF308DA +:10F9F000BD68A05EA4FC5627F961888B4991CEA909 +:10FA0000E931FA749D3DE2F595D3F3913924D78C11 +:10FA10006784FC7CCE9F283F432C6FD3333D228FDD +:10FA20003668FAE16124EF6C06CB0D6BFE9C27DA99 +:10FA30001E37486EBB235E9203EB663526939CB758 +:10FA4000E46DE273B727EBAF113D8FF463CFBD993F +:10FA500059F506E1FA5719D077FC779A15FF559BAF +:10FA6000E2E2BFD312F0A601C7BD20C3F2FBFEF550 +:10FA700038B090C77DC781BBF79C1860E0FEDF5BA4 +:10FA8000F8692ABE047FB4455289CEA71EFE5D2ABE +:10FA9000D955EF3DACB09D7BA71967BDEB91FF1E1B +:10FAA0004B71C71E53BFDD98A59F669C2DCF662660 +:10FAB000BB37A850D2E192FC58B225859388567B7B +:10FAC000692833AE6DAD63A9131A481F2FD9BACF79 +:10FAD0005180FBBC778B87E390A728C185FB3DB5A0 +:10FAE0006BC006CAAF0CCF12FAFBC62CFFE7342F4F +:10FAF000AD87F0F5C7762784590F77DA85FDA3DF48 +:10FB0000288D252F42FC495CD7C1BD050ED2FB0BC9 +:10FB10002594C31EBEBD6A37CEFB1733AF99B8EE2E +:10FB200085EFA90EB24B164E8108C523976C9556EA +:10FB30003D84EFCF37E3DD89FB9A67D8E3E4F0DD5E +:10FB4000A1FB1C4C7CA57C7A2EC9EBC72496677759 +:10FB50003F16FF1CC2E2E0AF71DC05382E9DEFC2FC +:10FB600096F8FE9E43F7AFDA8DFD3BDA1C1C875FEB +:10FB70009420DF13E5F7C02C331E3816AE11F1C008 +:10FB8000F275E55AFF7E9E25B74FA1BF87A081D3AE +:10FB90008FB8F87AE61155B433353EAF256DFB0EBC +:10FBA000B24CB4758E25FED971E883943BB0ABD1CD +:10FBB0002BFCBCAF6DF8B47937768F017F7A98F360 +:10FBC00087613BF1DF6470696E5CDF4F4C3F6ECC48 +:10FBD000456CC7EEAF65DFABBF66BFCDDDB009E9F1 +:10FBE000DA88805F5E115D5FA357F87773C1F6B75F +:10FBF000AFDAF7D7B2E2E3FFFFEABEFB7B6F29DAA9 +:10FC0000477DC9038B3F4E9BF66DF39EA7A6E7E3A6 +:10FC1000BECEFD48F239711D8BB7BC7F27F1F5C20E +:10FC200036D4C32259781C72A278C56D33DE169182 +:10FC30005D82F80CD47C8F717110E9427640A07D12 +:10FC400000F77BA7227E912F17D57CFC8E30220CEB +:10FC5000AFECA56BD82B8FEB038709784BC4D73952 +:10FC60007B5711F17F22AECEF523F7666789FA8DB7 +:10FC7000059A3E9DE2740BC1BF4A15FC77E27F6393 +:10FC80003F1DBBEE0795F07FC8C6F656C561E13F44 +:10FC900057BCE908521C61A7BDF31CEB93C3C27F9C +:10FCA000A77EF2F32A5E75B35D015F182C4F46FF05 +:10FCB00097CAF51367338C1BA9BD03E5C34696B7F6 +:10FCC0000AC72546FFB64CF42F1F534A2131E3A241 +:10FCD000DB47FA69F2B43F7FEB088FBB6C20E9DBAE +:10FCE000C97F4F9628BE7D393AEBC131CA844ACAD2 +:10FCF0007643241DF75311FC60EA44B6DB5D8DD4D6 +:10FD00004E3C873141C516FB3C991DD41EA3974537 +:10FD1000483E259E8F0E3F3AF83DDAE7B3C524EE04 +:10FD2000E16B5FC4DB81154712EC464BEEBEBC6D48 +:10FD300037C9FFC5FFF9E334C0EB47B6961C3AFF5D +:10FD40006DCF3E9AA6931EB01969749E1F05851E3D +:10FD5000483CFFFFCC92E2EA4CEA78A9F8FF6391B5 +:10FD600055DFC5F57C86F295D65B77E0736E1F4450 +:10FD70003B04BC346ED7F4EFE17EEE9DE76E68C2C3 +:10FD8000FEFAB6F8FD2F7EEE27399AA8632930CF08 +:10FD9000BF80DEAB7BD6CE79F4BAB7148EBBD64328 +:10FDA00084F196F87E7DE80307E180E85738B17763 +:10FDB0003FC2D04172ABDECCCFD41F38CD78AB4F31 +:10FDC000B0876BFAC92FBE9E65DAC3A67C41FA7074 +:10FDD0003EC9C07551180382421F36FFD269B87000 +:10FDE0001D1FBD93BB81EA28CE3CFB469A541E954D +:10FDF00037002B589F9D0995A607FAA0AF753D6760 +:10FE0000CA25AB6DE569B436493816EDE2BA0DF591 +:10FE1000A50BD7517BD2C97664EDD11EE62BC47EEB +:10FE200064B087FCF98E9C91D8BF64BB3D6BA6D8AB +:10FE30004E1AE949EBDC16EFFCCBF4ADF43EEAC117 +:10FE4000243AB75D17584F5A7CB964BB9442718904 +:10FE5000DAA0DDE7D27AD3756A689FA3CBDDC7B994 +:10FE600085DE9F4E7182E65F5EE073F968AF04B98C +:10FE7000C5BDDFAFD9F4B183F8EF0C1E90EAA173D2 +:10FE800054E639D2FB3ABFF08DAF5472BF4AFEFF41 +:10FE9000E5CEF179A2C1D58CF7175FC17FD7BCE35E +:10FEA000F4D1FE6B5EBC9F71FFA1AD81715FFBCC95 +:10FEB000A33964F7D4D88D1C95AFE27ECD2F1E6098 +:10FEC0003C2E3AFA400E88FC601EC923DC671EED0A +:10FED0006FE1FA5B797FF74080F158F38CE2A73A43 +:10FEE000C2F336A8DEDEC7B9DE942DF8C609F78D59 +:10FEF00022BE388F23515EEC4307B03C338E29413C +:10FF0000925F4ED8F807F20BCE77664B248F94A3FE +:10FF10007617D167D91E0FE36950B6B087A61E3D8C +:10FF20003FFDBB74BFD8D6809E22EDDF30E9257D32 +:10FF3000C9720D34F283EAE95F25346E8FE3DBF892 +:10FF4000FCDFF03ED539C43CCFF4FA70A33399F20C +:10FF50004E1FE6408D88A7C131F283EAC458888BD2 +:10FF6000BFAFA2F90E82D643FBFF7EB68897D46F4F +:10FF7000F970FAD3C477F3DD0D543FF6B7B73E708E +:10FF8000E4135FA0DD3698D6D5F9176E832F5B2377 +:10FF9000B966D1A3BECD1997AFA97FF62F09FC1B77 +:10FFA000DF8F7612D3AD1ED235B28B3F7444A69349 +:10FFB0003E31705EAA4BBCE749675C1CBA7ED747EE +:10FFC000EF50BD597D421D9AC57F963FBBC8E4F7EF +:10FFD000C4F34AE4FF19D9F1FC0FEBB3AF286F5219 +:10FFE0006B0F6E26FA207FFA0CC46DEDB6F371FC30 +:10FFF000F9F1D6FDC7EFC07D7C1CB2F8335EAED6FA +:020000023000CC +:10000000ECF8CBF49F933FD10F7F7EECC69B23FB94 +:10001000E04BBCDF275FBA451EFCFF993CDDB5868F +:10002000EBFDA2F48EE7C345FDC8D365D9BDECB5A1 +:10003000749C064E3FBF6420C9C544FA5AF233513E +:100040002E7AB2B53EE52298F6D52539F7C2D9E920 +:100050003FC77D7F96A700D9D175CFFE9DF513923E +:100060003542F52E75C14FB8FD28E92B6EEFBB85E3 +:10007000F2D3BDF71D4FCFC4FE71A41BAF66FADCEF +:10008000497456E43491FF46FF9EE242CDA41F47D7 +:10009000D39A54A073842A08711D6AFB6B9C0F4F7E +:1000A000F4DB8C2A286BC0F3697644F36D9BB2387D +:1000B000FFC6F9366385536DCEE2FC1BF72FB7B947 +:1000C000548A3345B2ADBC9A2F4CE7F8D07EA8587D +:1000D0002DF0C5FEF38583D8D6A8AE495362F590BE +:1000E0006FAADCD0571C7E5BB6B06B87E588FD9DA0 +:1000F00030E9BE521171118010E7359BE9BC695D92 +:100100009E34F6EFED661E1247F6527DC909537E06 +:10011000F952E44F9104B03FFBBD19363C67DF183C +:10012000F9FE526C1FFBC9A91936C48B6FA2BCB370 +:1001300004DB6FFDE423D17F953CC68EFB7ACE387D +:100140003D631AF6DBE4ED3524176D32A8CD48BFC8 +:100150009569A1066A53FDC18ABCE8FA40DB19A083 +:10016000F5ACCA037535FB7DBA46F1A5668FCB4762 +:10017000FEB64D9E3227769C350EFD14C799B240CF +:100180006BC271529CA100B51D382EB5412B9D4A02 +:10019000ED550380F34315366D2AE773709BE4AF8A +:1001A0005E9A37619E951EDD4BE77882CE24FBCAAE +:1001B000AFCD665C5E4911E7A2A4CB0DDBF1FA0777 +:1001C000938E7FCCB6F2CB229ED4BD2777A319FFA6 +:1001D0002F22FE54948DDB081791261B6CCCA2FEB7 +:1001E000E7B6116E4E385C1C0FBC2D7DAD7D382EF0 +:1001F000B9C255743F81EE1D69EB03740DE7044EDF +:10020000678B71C334EE1D772A625C77432A9D2386 +:10021000E888E74AAE4366FB1E028867926B1D883A +:10022000E7D1C482F175DA89EB50D2B7F23A6E7336 +:100230008A75CC09963477E13A463B8303C87FC47C +:10024000F93FCFC6FDDDE10C0E267C19857088E8EC +:100250007EE2AEAB3688FD15329F30DF71DDE69968 +:100260001769BC7A1C9FF2CFE7927FA1D0F312CA24 +:100270002F294FC8D57939EC0A9875EB7A33F99D57 +:10028000134DFF1F3A85BD6CD59D82F2450EE72BBD +:100290008FC85C9B5C7120BECE6722ACDF5FCEFE58 +:1002A0008B8BE5C7F804B937B1ED639687132FE35D +:1002B000AF67E7987A251FF2691FA184BC98CFCC5D +:1002C0008B21456CB1791B4B1EDE9E5C5598837467 +:1002D0009A6913CF69A0EB5CC7EBD3643A979E236E +:1002E000F3A182DAA03502B67F68EAED44FEDE951E +:1002F00020572D1C8F7C4BBD9BECAB916FC15DB427 +:100300009F4B75C2A7449DF0E82E97CCF1AA437687 +:10031000AE8F7D2A65D45393B07FE5613B90DF6B50 +:10032000D5CBF6BC65D6CB2AB5CDD47FDE8CB393C6 +:100330009F43FDBBC3004F93FDE395418B91A749BC +:100340005A326831F44A29CB886B5BF5B763C42D08 +:1003500048F5E5C7BD3F461D1B245C1C34D04A2A26 +:10036000A4BAD992F8F78FC4D7CD8E7D2BFE9CED21 +:10037000594185FC8F6BCCB88F2F1CDC6FE07AC79E +:1003800099F1F471EFC63F3FE132F1F59B734CBD3B +:10039000679E7762BDF1684893598E5D8E9EA70473 +:1003A0003DA37E4580E97AB519F7F5E8F174CCAC48 +:1003B0008EA763B63F9E8EB973E2E9961788A7535E +:1003C00041CDF0B8FE010D1571ED81CB27C43D5F25 +:1003D0008C8A2BB65DFAD88CB8E707B7CC8E6B0F3A +:1003E0006DBD23EEF961C1F971FD23B62C8E3FB7C7 +:1003F00004DC24E26064A831FE79659232AF527C5D +:100400000741E77655DB77E3C6B77060E0DFBE7083 +:10041000A024BFA8D03975A1FF2A4D403C6419C45F +:1004200009BDCFDF7D8AEBFC2E87832713F8FE4AB8 +:10043000BF6378DED40B17928A2492BF1ADA139422 +:10044000ACE8B6174A247F8DA91052D0907A28B90B +:10045000681FF9DB5DF7A5F9A4FC987A1D94FBCD24 +:100460003EC2551AE368F9BBA91C57B9206B9C8F93 +:100470007B52F1F3F72D3864B18C7A7BA52CFC818B +:100480001FCAF25DB1F9D51773843FF3628EB00BCA +:100490007EEE086D27396073093DB952E6BDD11F64 +:1004A0009DE2A4691483E6FCCB1D6BA64D227DD88A +:1004B00055A67928848AED6BD12A4F7991F541852B +:1004C0006103AE0B8120B747A37E203CA33EF835E5 +:1004D000C9B93B64D40F38F56DAA719DA4E13A5DAA +:1004E00060A455B09EBC8BF2B21EC8921ACB290EE6 +:1004F0007E49FF685F8EE94DCFFD8B27CA647FF58B +:100500002C5078FF3D353F3B7B3E2B86BF287745FF +:10051000076CD3B8EEF5A443BB692CD1EF7585F316 +:1005200010BFA1E7FAB0FF2F174FACD9F0442AD57E +:10053000939D2C13753AD6FD2E939E5D398AF0ABB0 +:10054000167CECB883E960D9A79FB29FAC96404374 +:100550003ADA3F30AD87DBAB75614F5EA4A412E59C +:10056000AFED2D869BE468DBACB0F866C9E0716F37 +:100570003B21E296B7FD17C4D9779FE4D8F9BD4F68 +:10058000CC792B0E05AEA673BC89188CEDA5C0D511 +:10059000A4FFFD2A6834CF9CC0BC078E607BD65A6E +:1005A00089ED68EAA7E767A36CA5FEDF81EFF72F67 +:1005B000E1FCFFC8D178DE5BC06F27FBEFF89D4BF5 +:1005C00053C90F3DE111CF4724D036C68C779339FC +:1005D000DE893B97BC44F629CD47F3D37A68FE59B0 +:1005E0002A9450FB3804CEFEBEB8F7BC37836E1792 +:1005F00076A6DF4E760FFE339C89FD8D279D9C5796 +:1006000069BC3705282ED3B8C7C971C1EEC517B666 +:10061000FD1497785741D7004769941EB7B72AA0B1 +:10062000215EDECFD49DB9C46BE332AFA8BE73EABE +:10063000F3E3194F8D9B049E1A7F29BE1B69DC04CE +:100640001CA76C4CBD84A75CC253E3A6D25CAEBBB6 +:10065000A421FA18FF51C491E6A43A2C24C450AE48 +:10066000332FCCBD9ABE2714F5EC2BD5927CA2CBB0 +:1006700026C9C5796028BCB23A5DE24503E5E46D60 +:100680002C4201DE34713CA73D738C69F795D1BED5 +:10069000DFD9BB6D008A56787DD87383D91FABBC78 +:1006A000323AA05C7A81E48C86761814B17E63FBC2 +:1006B000A03B2C335D502EBD407CDD6577A92447DF +:1006C0002F2F97743E4CCB8F50649FD7467652BBEA +:1006D0009242F44B2387C39233C827698A6CCA19A4 +:1006E000D05DE89F8D30E5D094DC6D37AC14719C03 +:1006F000443B70EAD63EEC403FFE1576E07AA55CBE +:10070000D82B61FA9E65686B7C5C75A2F9BD5B2F86 +:10071000FB8FE2525760FFDD9AFB3FD3033BC84E8D +:10072000C46BA84CC8AB503899ED810A537E41D8B0 +:100730006D7E3F186F37A2BD389FCED7B21713C753 +:10074000AFC915F6615DAED033E3C9D7C5768A4B24 +:10075000E7BC6D0ED2B8693CB7791EF516D34F428F +:10076000399C8E931FCB17EF39A473652EE4D7C63F +:10077000A776AE790CE5BD6B90A90F8C9D6BF6E367 +:10078000BF4BB54FF77F49F2B6D3C671F79E03C38F +:10079000B9FEB7BF7D57225F92720F1F9CC0F65102 +:1007A000F721C167DB32B4DF4E24BFE2B0025497B9 +:1007B0009A64EB7278FAD8D76E92CBC847EDB9C27B +:1007C0006F72B5493AC5B75D9AF08793547534D7BF +:1007D000AD0780E39D67B797B27FBCC8A4C7862CDE +:1007E000FF6AE2BFA5CA8622B5344A7F6BFC0AB213 +:1007F000D3CBFBA4774B6E8C7D1E0A1FE3BACC9E35 +:100800006A4D5646F7A6BBD5AE6F1DC3C50775AD7D +:10081000997C1D46F10DBC551F167438D7D69CD156 +:1008200057FCB83EB7B383E801BF4D02CAA7D5FF56 +:100830009FF798FF5E9885D0C2F378FEE2081EEF1E +:1008400097B91ED34FEDE4F50CF76B12F90BF54E8B +:10085000A127CE5D54F8396BDC916D531415715E90 +:100860001E6EE9607FB7DDA911DE929E0541BFF6DD +:100870002496ABF57BAF177EA8077C543FB32D3988 +:10088000F2071A3FB2C7A951BE25496D810CCA377C +:100890003884BE1E8674DBE18EDEB7E64B6A7F8A43 +:1008A0008BA211373AC555936C2D706DCCB92ECAF9 +:1008B00015F59BAFE70A7C6E4B0ECB94F789A0EF42 +:1008C000B491D7155D27F0BCD63A87719C7C9B23E9 +:1008D000F257CA9FE0BA54C2CD3010EB84F6A11A89 +:1008E000F14D92AAF33E9254CD175BDF6EADAB7E15 +:1008F00014CAF574B48B56C0257943F2A73E39DA91 +:1009000076216F6E2BB1707F9AED9E4B6D1298E33E +:10091000A2EF77E59E5DB3B290F625F4B8CD1662EE +:100920007E4B9B03AA319EF6AF8BBA51E2374F9FA5 +:10093000FC188EE5475FBA913103FB7DAFC9BE66F7 +:100940001C32FD0BF13D4C5DA79DF561ED3F6E4EF8 +:100950002FA7FC84DCF1E056BC7E3C2F3484ECAA4B +:1009600017D302A7493EBCFCEE7CAEEF3BBDCDEEFB +:100970009B4972B2CBF871018EBFF879BB4671A466 +:100980001FBCDD13FE92CEF95712FB81DD76D18FAD +:100990006D3424719EF60F1D944FBABEED7D077D18 +:1009A0005FF3A837F0298D3BAEAD692AD16F3CB417 +:1009B0003453DC11E57380F9C20BA69F38646313CE +:1009C000F16124307036F251B157D84516FDDB4D38 +:1009D0003EDE4BF6D5D0FEE585011D1C9F7BC9B4DC +:1009E0000B57C08102A2F74BFB6E2FD570DCEEA037 +:1009F000F8EE7FC471D75D7A0CEE0ABCC29E2D3032 +:100A0000E77DCE1B48F652FE7BDF9F1C694887FAC4 +:100A10003F878A484FFE13FCAF7A63E46D08EDC947 +:100A2000589CF7E2FB04BEABB7451C1C9F3D052C50 +:100A3000AF5E38DEC6FEFD0BDF553D243F707F9074 +:100A40008EED9728FF53CC6D8E1735FDFEB35114F4 +:100A5000FFFD6CCF928144EF7FE4DA793FC82755E0 +:100A6000C9C48FDB81E5A5C5CFE5C4CFB894725565 +:100A7000C491CA894F887F1D9D33987F5F92395FEB +:100A80008A7CC27C837CA252BD50B98A7CC3EF0FA2 +:100A90006579B0ADF3D870FE3D013C9EC1A3A92D90 +:100AA000334EB7856704E943E84A7BB883DEAFC4B9 +:100AB000F99BB4287F574AE08FCD372FCA4D63BAD0 +:100AC00058F2F73BA63E4AA162AC18FE89D1F7A2C4 +:100AD0007DC91EA85AFB37E4B7527D8C4C767BE368 +:100AE0009B0AEB99C65727DCB455B459FF8FD51B29 +:100AF000A652C9C9B8EA96FD749DE00F4D25779AB4 +:100B0000F48D86E770355E7594B793E674EE17BF83 +:100B100071A08FA038E7AE8EAF8F20FFABFBA41380 +:100B20009270CA5D9F47FE4039A707F7221DA14F6B +:100B3000FB88F1D71F5EBBA5AE348A7FCEF58E9AB7 +:100B4000694B42FE192FF675BBB77C2DBA44F0AE47 +:100B5000579FEB453A7C9E17984B78EA3EFA790E00 +:100B60009537BEF4D69FD2C85ED8E5D047A87C455D +:100B70007FAD0FFD37C32BCEBFD2ACBB217EA37898 +:100B8000F4D9D6CC0DCC6F7AE78DA437EE91D47D15 +:100B9000945FF937930F2CBF7AA13059A066D7CD57 +:100BA000D3C95E52F315A07CCE3D4FDAE3FCDF21C2 +:100BB00086C17E491D422688E75F6BD683D424D840 +:100BC000414321ECA0B84A7DC0DD40DF7127C6D18A +:100BD0006BCDBC5EED65FCE87FF39AF653299492E9 +:100BE000FD84E7CFF194C8EF15DF46BC6DB7C12196 +:100BF0002732E70BB2A00BDA292BD333A276D4909D +:100C00007C7D29EB75135FDBAA841C8A6C93828C34 +:100C1000F72DC0FC36E194B6813FF236F4E3DE1CDA +:100C2000DA0F307E26D80CCE9F4EF096027DB73A72 +:100C30000EC534E1FD9E762918A4E783625F36FC79 +:100C40004BF6E479D8BA8ACA1CC64384F7BF88F643 +:100C5000CFF54709FB6F3D7A90C2964B43097999CE +:100C60007EF29D3B00FACCB36CF09AF1A622288A62 +:100C7000B52FE150DFFE42349E64303D3EB68BBA64 +:100C8000E963E6F8F8278DEA573F30F7BFC7C20996 +:100C9000F8980EA7CCEFFAEB4C3AD46E31E9B05687 +:100CA000E0C4FA7EB81E82BCFFA5E6FE13F789F306 +:100CB0001F24FF7711DADD84C79AF5F1385B6CD217 +:100CC0006171021DEA02929837A888794D7BFF6E08 +:100CD000B0FE88752E36D799B8AE2576911F5B8207 +:100CE000F8A17CDDFFD63A13CFE9B8754EC3617821 +:100CF000DC3955675ED139958296CEF5CFA61D6D4C +:100D0000E121F1BDE9A61D7D7DABB0277775763C6D +:100D1000467C5FB1475149CF777756A550BD40F724 +:100D2000111B4767BBDBC7AC3150DEED3C34E866D6 +:100D3000FABEA8E2A8CCFC30E6CD8A6012F91B6F9F +:100D400056A49472DD869649F3E37BAC57BB8F0CB7 +:100D5000FA5D39DBE9D32A49BC341DA948213B603F +:100D6000A7F9BB25D29B7FFB0DCD3BE6B06D2CC513 +:100D70003D57E179D0B8D7FF6CDE66B227CE7A4511 +:100D80003CE26067E32D749E4B8FC82ADD3F7744B9 +:100D9000D463D73EA304656C5FBF5DD487D4E37989 +:100DA00049BC5E3BCF5FBF6770E6DDEEE8F9CF3749 +:100DB000F15AE1D19E9849765E5E0AD7BB5E3FC08C +:100DC000CEFAEE4C7ECA7FCCC4F186E8C597F0110E +:100DD000440A9C79E57EE1BF6E93804C8283DEFB02 +:100DE0001DE41F9CA97285699C33BB8F3A28FF3A8A +:100DF00075D751510761D60159784AA4FFD9CE64FD +:100E0000B36EB1C541E7B4F4A8D5EE72909EF69BDF +:100E1000F652DDB3EF737B31D9FDB49E6725AE2F5B +:100E2000DFBFE765CECBD66D15F5148BDB7EE420F6 +:100E3000BC2E467C6A2447A085E5F3923687DA9774 +:100E40005C59D41ADFBEF732B81C9667CAD7613036 +:100E50008C70F9D91421CF3F3B9ACC7ED26787455D +:100E600014FF2BF0C97AEF881917EB09CBBAE3AA64 +:100E7000E873E78EF438A8FE627AFB274CBF99ED41 +:100E8000FBA6115DBE01815ADAE737DA5354B24B43 +:100E90006776097932A3DDC971F16F406825E9BB36 +:100EA000EEBDAFADA2B8B751E58A0C56A3F2699179 +:100EB00079DE000D4C8F33967F8F6DA69F0F8AC908 +:100EC000DFE9B677317F77CF7337F0EFDDAC8F3F57 +:100ED000BF1BCAE2E93503847C99B155C8B51BA094 +:100EE0008BC7BF81E88DF377E78DB889ED1FF44795 +:100EF000A93EBA766BFCFB75097A70629E3DAE1E08 +:100F0000A13FFB20F15CE6E699F2C23C97991121E2 +:100F1000B766BCA5F882B8EF43E115E5146FB3E8F6 +:100F200094782E87B4AFAE3FFA8D69675BED9B4C2A +:100F3000FB36A4067F3A06F77B18D4A346162F8704 +:100F4000BFB35BB63D8FF37287F2843E383F68FFD4 +:100F5000280DFF59FBDA2B458E12F62B96E5911DD5 +:100F60002DB7FF94D2DFAF152A9045FEC52F93828F +:100F7000C4773FF07EF0C331955CAFD249F9BB7ABC +:100F80005BCB4CCA5BD56FB5FBC89FA86F5358EEBF +:100F9000D46F750ABE27BCE07AFCEDD2758417B415 +:100FA000D30D1A7F16A56C285ED826F1EFAECC9A29 +:100FB000F68983E87A24C15E9FD9BFBDBE2A2FC6B9 +:100FC0005F3F3CA8347D3E5D6D5A2E7DDADB9FBDD0 +:100FD0005E7751D88BD6FD3AE467A27B5DBBC4F641 +:100FE0006DD45ECC95C85EECDEF39083FCD16E4987 +:100FF000FD2485EC78936EBB3ABEE3207914990208 +:1010000091128ABF4A2B997FEAD828C5EB4B92C828 +:10101000A3FDCA4EB513D0742C99E5DFB9E3227F46 +:1010200044F609D53DDC23A002E7E607189F54F7F4 +:1010300040F85E0AB5ABF83BFBBBA181EB2E13E495 +:10104000C192F20DABA8A4BD0956B0FFB40256F28E +:1010500075C4DE132C1747BCE2506595E30F0E8E66 +:101060000B0663DE2FE92D6F965E26FE752841BEC6 +:10107000E07ED670FCE0B0A2527C6757C7DF7F41AC +:10108000F54311B4B34B68DFA6DDB2AB2389FD8A0B +:10109000EEA3EE20D1F3B489D73366DCBD699CC2E0 +:1010A000F491C78BEB88BD2F97100EBAF75C280A16 +:1010B000E079BFB0F7E5E13A9F7F90CF73C996F82A +:1010C0007AF1A5A1F87A708BCEF5269D715D431C4F +:1010D00059D175BD64EB4AF3F5C16792D4C1E727D6 +:1010E0004B07E2ECFFFA5F2971BF2B87FBB98BE45A +:1010F000E03B260EC016C9217DFA873C8DD7D7D498 +:101100002ECE5BDE23AE38FF37455CC5CEF3F7EA63 +:10111000AF326AA9FFB3E214AE4B808BC64C6A3F74 +:1011200058A270DDC283C7160F8D8DB78124FCE5F0 +:101130007A7B84EBE0EA8F8ADFB5AB3FDA9333C882 +:101140004D726FC334AAF7BDC19427074B526A088A +:10115000D706CD9B4BF1BE03FCFEFC3C337F61FE0A +:101160002EDE0A1347BB8ECD48A17842F79E6CFE57 +:10117000BEE303AF88C37D9EE73F4FFC66F931FDB8 +:10118000D9A5317E14D3A71EF749FCB4F36D67705F +:10119000A6447EEE85E3DFA2FD1EB6F1F76E4D7B21 +:1011A0009C067D4F52FF4E12C7272010B88AFCB60E +:1011B00007F72E1A2A3EB65FC1E7B1B66D6137D583 +:1011C000052D3D99C2E5C24BF7FC9EEBFD96BE7422 +:1011D000F51364F7A09D7303D93D3BDBED2C7F2A0B +:1011E000DEAC64BCED3C529959CADFABFB5268DC03 +:1011F000A5876D5CFFB7F470E51B33C95E79B38AD0 +:10120000ED1EE9CDCA4C925363C8BF25BBE7F02061 +:101210006E5BFB71E78BEFB1BBF725711C4282124D +:10122000811718148797DA5DAFB23D508B72301674 +:1012300037D67B5ABE8DC719946FE22524E98C8777 +:10124000EDE25ADBB63387F6B1C41EE2F36DDA6A1B +:1012500017FDDBC415E87703F03DC327F379BE41E2 +:10126000B7F01C66388285940F7CDDF4035E3F196D +:10127000184872F0F52981A1747D313F3E3E6340EC +:1012800015AF1BA4D97CEE6777D9FBFC7DC5ADF902 +:10129000428EA665425C5ED1BAFE2C5FE063864357 +:1012A000C487C88ECBCB31F36EACD7BBA6913C9A2A +:1012B000EDCD9448AFDF6D3EFF3B33DF04CAA4544D +:1012C000AEDFA0EFA33C1427F7DB493FDE6CD61F4F +:1012D000DFFC8D5BAFA3F701F5B69BE205E384DD90 +:1012E0006EC5FD13E3FCD6BA6EAE8E976FB75EC6C1 +:1012F0007E9A956FCAB7213044D8F5EE1492FBE779 +:101300000FD9CDEF008283FC237BEFFFD277CF9400 +:101310000742B97608E51A5DFF89B8D35DF9571021 +:10132000E76F1A7682E344AFEF3BF9A287E56C12D0 +:101330009460D7E42FFE98D3D7BA9A60369FEF0A0D +:10134000B8250E9FD6399F05F13B0D89E7FC9D7CA2 +:10135000CB4FEC5AD5487CA9BBF8F716EB94E06369 +:10136000834A45DE92E3C7EDB3F8FB432B9F7949EF +:101370009FB6DDC7BF83D934ECC24A92FB67CDEF7D +:101380007870DD45CE18FD7036EF13EE7FB00A227F +:1013900006F6EF1B26F2704BA7499C2F581A167AB7 +:1013A00074E92D428F0ED935CB4E72FD9B683FEB11 +:1013B0003E162FC7A9EEF546537F4EFEA29B71B68F +:1013C000D4B41F9B20C310F23C8BAF4B77BDBF92B0 +:1013D000F3950168A078DC4DE3E2F13114028F66E9 +:1013E00063FF6DD5922F4878D0E3FB6F9B3B8B71E9 +:1013F00078B3F97DCFE5F0B5333FB09ECEB5BBB342 +:10140000E79B2335CACF7D584474A933F9C43754B8 +:101410006BA3FC9AEF0D757433BEB325D8B39BDA7A +:10142000DD46964479F5E7CC7328CE0D6CCE177A5D +:101430006637E5DFEA1C2E95F6678DB7D5CCE35805 +:10144000FCE9CB8531F7B963CF55F09BF55C59BE0C +:10145000F8CEF6757BB090BF0729BFB27C61D3B0E0 +:10146000D746913C7C7DDFE1518E98733CD31818B0 +:10147000CA7A68CFFE1CCD1D8B3FD9C49F8DAF9219 +:1014800034DBD4AFF1783C43782439BE7DFF8DDF67 +:1014900022BCECBA394BD262F4EF4BBF4B1B1C336E +:1014A000EED976F1BD03FA61436E4D8D5DE7A3BCC5 +:1014B000CEB321311E7223FFDE47DDEED163453D01 +:1014C000251854775157367FB3A84B6B367F974812 +:1014D000B3F2F17A81C4F9F8B8DF8B0B39CCDFF9BC +:1014E000DCEBE43C5DB75DE5EF7ABB4FAA1BC4F7CC +:1014F000A00D4A21B6C781FA09F929674D7AD37D33 +:101500001DEF8FD7459D1DCA6DAE479C3853E4C172 +:10151000B19FEB112735804FF83BA27F42B5E8BF62 +:1015200016BA1492E7932924857C3705341BB5A796 +:1015300082D14CFC373114BE81C45538C7E6F9ABB3 +:101540004B9476F6757E51FAD8E0AF163EF16134D1 +:101550008E38DE2EC1C30AE9E7B1A0F598EBE27A36 +:101560009D71BAB683F6935520F4862F45F063E457 +:101570002C70BCCD5ADF445B27EF2355D33228FFB4 +:10158000B1FD4023B7F7A297CB755899E67B1FE1D1 +:101590007B48BF6B6C41DE674E83787E3C84FBDC0E +:1015A000A7B3A058E4EBCDFD76DB43ACD7BBEF454A +:1015B000C6C675A516081C4F6891E06D14AEBE52E4 +:1015C000B11F1C5FE17C8B39FE0408F1F9418D9657 +:1015D000F1461EBD2799E7334D257A48E11CF9CB2A +:1015E000942BA75B770EF07AD3EE8E9CFB5E65346E +:1015F0002FE56BCFE538ED5A498E2894D771158ABF +:10160000BAE13084C87E47B11FF73D6971C1EC81F2 +:1016100005B48E80F85DA9C43ACC2DC18D5C5733DA +:10162000C7AAB32904389513AD07B09788BA1B3BF6 +:10163000E5E355AE0B1D43B80DE70478DC77A4ADA8 +:101640008379305BF06A7FCCEFCEA6803E8EE87C5B +:1016500021A988D76BD5253D945CC4EBED9A022176 +:101660006962EF7C7F8A3354C374A4BAA1F17DE52B +:10167000FF457D31729546F548F0F0548DC65F65A3 +:10168000D6D526D64B5F4812754456FDC143C92FA7 +:1016900072DDA9556F40FB9D64ED57BE92FA03C3FE +:1016A0003EBC385A1F8B749869D281EB64517F0F0E +:1016B000167408735C204517DFF1AA784E36E11FD7 +:1016C000479C14C8D57BFFAE30C98D95532D3E0E77 +:1016D0006DE13A4AA403B5ADFD26EECFC2CFFF05BA +:1016E00051FAAACBD05A0000000000000000000010 +:1016F0001F8B080000000000000B6B966760F8511C +:101700008FC06F8451F9E87899282A5F5414BF7A02 +:1017100042F8110B82AD27C8C0708E0382FBA0D89F +:10172000098875A1F81314FFE244E8D9CECFC0B000 +:101730001F888FF3A39A6BC704A15D1919185A1952 +:101740001818E480B88E0B21AFC00CA137DB333002 +:10175000F8B820C4CF583030885B32307CB4A4CC89 +:101760005FA3786860897054BE75002A3F2E888117 +:101770006107921A9B00D2CC77886060708CC02D74 +:10178000BF240695DF9186CA174393D72944E5D72E +:10179000C442680025F4A86FC803000000000000E0 +:1017A0001F8B080000000000000BCD7D0D9814D5A4 +:1017B00095E8ADAE9FAEEEAEEEA91966A0079AB160 +:1017C000067A608C0316302246D462F80966DD4D35 +:1017D00087F8CCE88BA60416D145B74537CE6ED036 +:1017E000AEA1677A7E18B4111607C4A50534E05F70 +:1017F000C644B3E67BC9A611E29A8DFB96E4254662 +:10180000F7E1A6419768BE18277CABB879F87CF75A +:101810009C7B6BA6AAE919C67DEE4FFB6979EBDECE +:10182000BAF7DC73CFFF3DF74E50AD26C9AB08F9D0 +:10183000187EF479A14208A91B7D126215492B215B +:101840009F2124BDBB96E0EFAD85843493D19F34B6 +:1018500099B687FF09103245775E84F65D02494FDD +:1018600031097900DED7C37FF2819BE9F7171D5557 +:1018700049BF4E480B3916203309994B86F169123E +:101880005D84E77C62E2B395A4F0F9DE92D2D7E002 +:10189000F973DD8E934B08D9A0D91784E938EF4E40 +:1018A000B767C7E8FB1F4B563DBC278B6B08B96C6D +:1018B000741EE54F421C9C4F52BDC912281CEF0FED +:1018C00011B31FDEB699383FE709626669F922DD78 +:1018D00029426BF7BB5C8690E26C3A473D4DEC16B3 +:1018E00042AE240681F15AE2CE3131469F4336B1F1 +:1018F00035C413494509B93C68CF817A49531C71F5 +:101900002E7C37AC40FD6FAB49FB90762E5C970385 +:10191000D268FBEEE80AAB44FBCFDE6B92147D8A03 +:10192000C5CB8841FB133593D01E89241510AFE435 +:1019300020697C8C8220A9432F12588FA7689900B8 +:101940005C3A834B2B0696D071E4A07D25940580EC +:101950008B7E9F8DAE8803FC4A9C38E2C584A8B478 +:101960000FF83E5B4D0A2D8D840413F45D2B948F8C +:101970003D0D65DA8EE89EB20B6FB6DA8C6B2DA347 +:10198000E5EEE8C2D782B49DAC1363366D2715AF80 +:1019900046B825DD22367DCA92430480DB6070CBD9 +:1019A0006A9A9513ACACE8365902F3FE48AC889FAE +:1019B0000B397E3E7390C12B69A4200A809FEFBE35 +:1019C00018A665314ECC1052A169017E648DE84F96 +:1019D00040BDC6DA8B3AD91711008E02C397CEC626 +:1019E000BD88D72B717D7FA011E02A0622ADF8CEED +:1019F000047CB6403DF457CBEA25DD8F2FC08F170E +:101A00005F72EDC4F0956D14709EE4EC82F8B551F0 +:101A1000CF7B3E7FF8BD0DFC2520CEF0A7D1F2850F +:101A200002FBFF4D7445011F1EBEF83AF205A17C72 +:101A300041CBEFCAF637C28C2F36C1FB20B9B10AB1 +:101A4000D67F6CBE504891327318685EC4D1F4538F +:101A500017B1B15899F1CD22ADB05430100FCD521D +:101A60002BB05AD8141B47F1ACC0BA4099AE3FF026 +:101A70009758EB5F1709D6C5D39EAEDBBE08E0557D +:101A8000728E205DC7191D5FC6EB47F0AE16B231EE +:101A9000B66E26ACDB6779BDA4B37A5807286F8B86 +:101AA000D27511D83AC0BA6C8BD27510D8BAE99EEB +:101AB00032456A3DE0635B54AFD73CF4B66D645D7C +:101AC00026D57BD765DB4733EBA97022E6055F722D +:101AD0009651F9B26DF9AC2ABB656C7C6633A95D91 +:101AE0005293A72C30BECF8648FBB7E8D3DAA45F69 +:101AF000BF96C2188C1BF341FE64A30A9BAF6EEC29 +:101B000003BA7E0ED697E2FBF7B2F51C3CB301FD9B +:101B10007A944F2B14F25823085BA37E15857F51CE +:101B2000497F1DF88EE2DD60FCB06B69CC83F7EE77 +:101B3000E50B47F03EFBDF11EFFD6578EF2FC3BBF0 +:101B40005B76F1D11F2DC4BD78EF1FC1FB7E1F3F17 +:101B5000F45F38B91EE4667F19FEC50ED1786B12AA +:101B6000218D9223C668FF7D7126C7B3C9F90ECCBB +:101B7000E7FD95B440E1ABC93776029D128DF1B314 +:101B8000FC96E5C4909F4C02E32854AE1455421ACB +:101B9000E8F36380B7368C65A47B02E32838CEE592 +:101BA000547EC5687FD382F6DBB01EC1B76CD68F7A +:101BB0009642B98A829FEA3FD9D585C24AC44BB5BD +:101BC000410AFDF4BBE5E2572C8083EA16730AC58F +:101BD000C96410C9222B17E97BB54E331D844B0F06 +:101BE00081FE0892FFEEE3D7502D7142545E872CA0 +:101BF00043D041AE1B8A0F4E79252986A89EF93F16 +:101C0000245A7B2A425F5C4A2E657C6B08D04F8D3C +:101C100064201EC4E680B90F46B1E884697967D5AF +:101C20008C4745CFBA448400D29D1A7D50A53823F5 +:101C30009DCDF355D0477DDAAA2A52412EBB4FF1F4 +:101C4000439114299EF40F057C8A9A7D19ACDBCE52 +:101C5000A0FDDD7F867193C4DC47E72724A934A368 +:101C6000780969C6BECF35C2B340DA3490734C9E52 +:101C70002D6B6672224CE93588F57962D1F1C34942 +:101C800013F56BB5661F867A4ADB69C0E3142D5FD6 +:101C900044FA6B528C60E3B9701D6EDA1947F82F65 +:101CA0005C1807F8B387438CFE934A2154A13D95F5 +:101CB0006F168C47A47C7C9507FF7D9C7F27B79B84 +:101CC00064B587EF25D2D62C5C82F8C575A9B1889A +:101CD0003544EBB7497AA8DAD3EE2C6178DD66910A +:101CE000954315E4C669AEDF2293ADF9421D5B57FB +:101CF000B0AF1692D11FC8FF4B09D3079793E106E7 +:101D000089AEEF1DC1624E1650FE5F0E707CF0FA78 +:101D1000B19B401F90923D1BE888CAFFC5C2279027 +:101D2000FFA111799FD0918ECAE4FFB97652B10D0F +:101D3000C4E91CAD1400BD70716D3E1E9841C86FA2 +:101D400014EB0F601E23F2EF705FDCA0E3F71E5A66 +:101D5000D86E513CF53EBBA8DDF2E06115A7BB1B78 +:101D6000381D7437ED447B82CA2DB4275C3B489202 +:101D70008E31FDFD1C99C7EC9F122BBFC0CA176B9B +:101D8000C3819B61BDE57C1CD6A3CF952BC4897F05 +:101D9000D133FFCFF3F1E63C57AEB7DED91CF9449F +:101DA0007A8BC3C3E5E7DC73E4E7F08B118FFCBCEF +:101DB00098DB13E5F2B3AF4C7EF695C9CFBE32F98E +:101DC000D917CDFBE4E7C83CCF6EF7C9CFBE8FB2C1 +:101DD0007130090F3FF1372837FB9AC6D75B5DA0FA +:101DE000B7644F596674DF379D3E3DDFEDE1EBB4DC +:101DF0005550108F5DDCAEA5F63EEAB7F27EDDF6FB +:101E0000A3723BDFBE9ACEABA785CBED0495DB601A +:101E10008FC799DC56F2373B82476E775533FD48C2 +:101E2000E5C2019FBC02F94DE9F60290DFA0179BC5 +:101E3000C35846BA9D312ABFBB02F976F8DE99E550 +:101E4000EA4F27BE2A0AEB9F7FCDAF3FFDEBDFDDD8 +:101E5000743EFDF9E9AC7FAE6CFD7365EB9F2B5BC7 +:101E6000FF5CD4F6AD7F6E64FDD7F8D63F57BF3325 +:101E70000E7233574607177F4F6F0338C44400E98B +:101E80007ECE7326D9027C6048696A2BD3F9A69C62 +:101E90008831BA5E237C9CA07A601CFA71F5E974E3 +:101EA000AE4F45D526C087E5EBE9EADFB1F42DD585 +:101EB000B33F07F9A13E9776400C29DF4B3984AE3A +:101EC000E79593AD57E1FD6F37A65E83E7D3CF2B40 +:101ED00002D0333968929206EB936F77E680BCCEDE +:101EE000C7132D5EFE60F47B2E7F50E1F659DA5F5A +:101EF000E7B0E3D0EF5BC2A937A1DFBEA61CFA7939 +:101F00002372E410353ED00F73DA1DFAEC6DCAF976 +:101F1000F0DFDB4838FEB3F16BE778DF33FCF7C264 +:101F2000385347C7815F69B2DF7F46FB9ECBF7F727 +:101F30006EA676BD8872FD0380A7825D7F06DE4FA8 +:101F400054AE838CFE78268E52D1AE9FE5AC7E0DCA +:101F5000ED26A2DAFD408F57A4D59486EB8DFABF0B +:101F60002741CBF4998B2BAA40ED909C46F518D4D1 +:101F700073BF38175FDDDB887E94B910BA75C75F11 +:101F80001AB7D10F50E2F624AF7E86F76F6AE8F7F2 +:101F9000C545B0C3D26D2ACCA35B5FA57AED0C45D5 +:101FA000B3E30A7DDFA331BD9993D32F37023F24DA +:101FB000C882CD749C20F5C717D0F787E36D0867FA +:101FC000B7BEB1087496A3AA10E6B334C1EC9C6006 +:101FD000EDEA4290222157CBEC98A589348E5F8E92 +:101FE0002F773E6E39A8A589E2C12F8C277AE82782 +:101FF00028A58B02F73FC1BE21F9872C15EC40EED6 +:10200000B7058C948371066BD6FC7E4A42F303CCF1 +:10201000AE3F679D6A159FDCCA85CC76C03F4909F3 +:10202000445D38767FD44243B97ABEFEDC751E59D2 +:102030006F7BE3DE12F4E348A49FE2A7F38AF43750 +:10204000A02C39417D33C8C9B6F4DE12E87945D5F4 +:10205000B3749C872231945B1DC7A388C7FB014FD3 +:10206000414206322A3EFB333A3E7B33717C126298 +:102070009359B4FD99B640A11FED6A66178D3C9344 +:10208000ECF924C7C7EA4018E7D115607AC22026C8 +:10209000D2435E1B5FDE542D0A8CCE93FE1B35FDB2 +:1020A000F224D25CE32B878CA9BEF6E576CE054000 +:1020B000BC7520D72D62029C128513E44AD535F1F8 +:1020C000755E7B2520327D267E319DE27ACFAB1F67 +:1020D000DF0D307BEE7440C5FEAE3A5B2562DCA0BE +:1020E00096F903B1E82AA7087A4120E9268C294805 +:1020F000BF29B970C27A05527707E8F731B9A4D77A +:10210000B4FCE7E34314E70D839F224F52D07FE8EE +:10211000EA5C85F4E98EFB8F01664FADE2EB2906A0 +:102120004DB3B915E2428AB1AF11A4BDC5E328C6CB +:10213000A3400FD9CEF9C3307FA75A41BDE8F6239B +:10214000AB1AC6CBCAF1518EDFA8C8E8E4F780DF2E +:102150004B00BF57A960EF6ED5022B0B88AF632BE6 +:1021600011DFAD81008CF75F066F65F3F8DB11BC02 +:10217000B974F205C4934B27031AA59356E45AA4E5 +:102180001383145762BD49E7D5383AAF727CFD47D7 +:10219000CDCFC57B5534902A6800DF700AE15B2CF7 +:1021A000F9E0FB8FC6BB0B9736025791C165FED78E +:1021B000808B04ECDF0568F97E4EAFF74B2515F8F0 +:1021C000FCEE00A79B480AF90BDA7BFD5097BFE8AD +:1021D000F7FF0AF2E101F89EB67B401AF67DEF8E1A +:1021E0001385F9337E48317E90FE53F9C185AB9F4C +:1021F000C36D9002A3E7E6C07FCABA8CE8C556D289 +:102200002C81DD4EC226E067AE64CF12297E93AFEB +:10221000DC48BAE9FBD35660B8FF12905F6E9C9F12 +:102220007D7775DD5A66CF6B01D48BF489F6FCE9B6 +:1022300004F32783B5012738B7827E4E507FC62B23 +:10224000EFC7828BC795B0CA2064C98712F3834C4D +:10225000827A354A4A04ECC42AD024D4BEAB26067E +:10226000C695A8C41590CEC862B4F76A439F76BFDE +:102270005FC17E056B1BF938F209FA9568BF33FF21 +:102280001DFA3D0FBC21B207FB85D5F978D268BF96 +:102290007DD47EA14634B5FB747C062102027670A3 +:1022A0000B93BF3DD49E81F7447ADE0AD0F13453BC +:1022B00031C0EE8A68450276E87B4BD461023E1C51 +:1022C000B7B381FDC0CE8E34931301BAEE11D31F84 +:1022D000A75313CA84E8B1BB6ED694F1FC74883C52 +:1022E00035AAA3DF8DD5EEDFFB09F672A3275E20AA +:1022F000693346E97A9CF989CB6C4290EE59FC74BB +:10230000E4FB00B1413F66B5D52AFA75673FFE5838 +:102310005C48D85212F0BF528B2AE1E5AF80D93C1D +:1023200076B5ACE7EE14A8C92AC7D75A250F3C05E5 +:10233000E808F838BEC12A4D601D4429D57E33F81F +:10234000ADADCC7FDF16B9899C68017BF8268C8304 +:10235000E5EA2637825F43C866EC97A81ADAEB2EC7 +:102360009D1EAEBB0EE38FDDF5D761FCB15B4EC5A4 +:10237000C18F7AB9EE3B16F49B3B5B458226F84F42 +:1023800033302E933B3B734ABAC2FC2284C90BDC28 +:102390009F6964F4E63A8F006F2E4E0D08DADFE98C +:1023A000162677B645FEC6125B993F0FFD2B1A1D08 +:1023B000978EBFB275C882FD57C5D6ECA07E6E3F22 +:1023C000EE38F42780FF0E318311BE137CF515E142 +:1023D00038B76C5B335A715FD0ECAFD05E56634E4A +:1023E000642EC8DD91F73A8C9B7C654E158BAB2B28 +:1023F000C4506168C102BE1AA5FF82CFEF217A6086 +:10240000B45F8FBF2311A717FCC12051D3C0B7E51C +:1024100078CD29643DC60524AB9DED57D7CC077F09 +:10242000682C7A97E2BDBF03FB94E2AE08F4158CEA +:10243000AF7000CF5DD43E9B84A262E09830179FBE +:10244000BF837DE1A02EFDDA4B7FEF89FEF87C563D +:102450009B316E3CAE9BF217993D76BDAC9836FA37 +:102460008924FD1AF88512998BF04B89975E6B04CD +:102470003B5A6276B254CBF6A1894EED440F9E765C +:10248000291691801FC2AC9FF2FE9F50DA24A8DF6C +:102490002FA614A90EE2190BB9FE2BE317AD764255 +:1024A000FBEE7A87C98424B162C26446CFF00BB7D1 +:1024B00098E01B92F8E5A22E2D62EB2B823E8E8BCC +:1024C000982740B5F34980DBA2FF00DCB1C5B4EC2E +:1024D0008D1B59375833E9BCF53675588E033DB11D +:1024E000F62E9D8AB01E73E1E97FDF2895AD47E6A1 +:1024F00005F2A667DF8EBEB22AED47DFA4B4CD0693 +:10250000BC9C8B8789E51F80AD00ED2859227D5248 +:10251000AD330CF37C98AFF7435C2FFD25E8255ACB +:10252000DECEF5D00319039FBB32CDF87C24636265 +:102530007D5766113EB7662C7C6ECBACC4E7964CDB +:102540000ADB29F55D2AACDBC3F543BB04881B38E5 +:102550004BDA5EA19F3C1C1D7A9D601CE10A5686E9 +:102560000DACA9D4AE912E6D8338D5C3D543D70712 +:1025700028084F4F6ADE7CB49E969B865E1768B92A +:10258000BBEBA217BB28480FCF61EDD7489F6F73F5 +:10259000281D3F1CE271B6C4B5E7C1039397F750FD +:1025A000350EF878B88EC7CF26F85D06BEA3CF8764 +:1025B0001B3FD97821296FB1F9AE6EFB199D6F4889 +:1025C00065F0EF9252385F14599F25649FB46A33C7 +:1025D000CE7F0EEF9FEAA9FFE6D1537F09417280BB +:1025E0007BDE2783FB210EB7A20F5B905A1395EC7D +:1025F0008DC057B1F5C7AC205DDA48E2454730A041 +:10260000BF5ACC97391F1DFD6FD160F6116FAFB463 +:102610009A64067D757FD9FB9A9516C6331D0828E6 +:10262000D3F75B5ADA549EAF8271855E89E58D409F +:10263000DC06F7777F24A2FD931BA33DB4735A47B2 +:10264000DB8D09A77E1E3B7782F324520AF36A369C +:102650008ABA6F5E5F2D2B8734C6AF135D8F17F973 +:102660007A5C29F2F9F37E1694F53BEDA900594402 +:10267000593BB1C1A367E8BFF1AF847DE5C9D7D6A7 +:10268000F8CAB5D74CF595F5C57EFB68EADACFF800 +:10269000CA0D77CFF79565FDB3BE72ACB5CDD75FE8 +:1026A000CDB2CFFBEAB59655BEFA7F2BBEAF2DC398 +:1026B000C7D565E509AF1B910C2EA71D167F1E29F6 +:1026C00073FBE07CE5B3B3FD65D66F90DC50C5FCD1 +:1026D00005E6177C95F036E570981E7B5B8476AC3A +:1026E0006C503F1AED1BE2AF1FDDE7E4F1CFCD12D6 +:1026F000F599C1DEBB0FE3A31D4E500FD2E79950F1 +:10270000438150FDFE0FB2FD6BA607D29732BE4843 +:102710005F8C795642E53C2F97EE7A32E6F6B73C6D +:102720007A2698B813E3D66411B3332DBE4F148CB8 +:102730009BFB315E083A11F4A16EEE87D0D78792E9 +:10274000C2E25FB2F521C88FC3D3BFF61AD893A7F0 +:10275000172926C891FF2B19388F9EE9CC8FA070BE +:1027600021FF6CBDE414E67F05A534EECB04930293 +:10277000F20BEC237CD11BD796037EFBAA0C4F7B7C +:10278000404FD0FAFBA7373EB018F0F4F722DFD75E +:1027900029E13EDBD64B26639CA12F93DA9594D199 +:1027A0008E29423E4C9F7CAC7D0DB4FF918CF3CCC6 +:1027B00066D42288D2C397CCAA023BF92329E0B37E +:1027C000E3B3D1703BC42F42B3066DE8F7CCBCA194 +:1027D0008B60FEF73716D13E3873F2D9CB3B097CBC +:1027E00017C3EFB6360A8837673A293C86EB4BC7E2 +:1027F000A3EDA2ADFAFC7E03E0A5F386B8E3CFC556 +:1028000002EC03AAAD741D3CFCB22CCAFC4AA9958B +:10281000A03F4FA463E44BB8AE56ACDEE37FDED3FB +:102820003A84E3C7A7892448D74698D531BB84F1B9 +:102830006DAA5F009F71B67EAA4E0A96C0C814E2C8 +:1028400078D4EE463B54FCD7A5C54720FE7B5950B3 +:102850007F8C96A5E37F4276A1FD1218962F83F117 +:10286000EDDB81BE480BF31F75FA0FC84F35E9F752 +:102870002715EFBAC07E23F1D483DDF3D1028C7B20 +:102880006D6DDD18EE0438C4AF54811C175B03274F +:1028900082B47FD18E159779F6F7B4E3A11F1EF5A8 +:1028A000E063B95CD93E1AE9670CFBE84C46FDE1F0 +:1028B00051BAAE7B6516AFBA49B1FE50A6F4F26BC1 +:1028C000D91FFF749F7B65B6EEAF4AD62A68E7D260 +:1028D000973CBB183769FF03D504F5F44DDD3F7B0A +:1028E00011F4B29C35E3109FCFCA65EF975AD8BE5A +:1028F0002B5499FF0EC92C6EDF23503A9D392A3F85 +:1029000054BEAEF70B8E03FE917367CC847551896C +:1029100083FBBF352B0DC1A987C6ED1D27687D48F8 +:102920008F99404F6E7DFD5A569F6B4C231F3AD5B1 +:102930001AD277AE5E29427ED2D626E551D1A327A0 +:102940001F94995D9EE3F8D82AFBE1BD8FE3ED2F3C +:10295000646667E4A2DCCED0B7FBF21846FAE1F871 +:10296000D92C1F45BBE541D960FC49ABC12F709AFA +:1029700014A47762B1BC164FBD53EDADD7B7E1BE1D +:102980003895D61F7F4CF112023A167DED993D54D1 +:10299000A4F5D4CF0D812EA07894A75C6381FCEAC6 +:1029A000053F08FCD9FA1545C0A37AB3C6F693755E +:1029B000EA8980FC4AB0BC4D374FF6F7B2FDA0EC77 +:1029C000E177D560F13557BE8FA95FCAE47A395FE8 +:1029D00080DD511CCFEE70F380F3D78FBB7F0AFEF2 +:1029E00097773F30D768E33EFA97E46FB649B0DE99 +:1029F000B21D077BFA7AF9C9B6655361DFD422F1BB +:102A000056961FBA5980792C2FDAB0CF4621463F0F +:102A1000E6AA623CC5F77F871772BA83B8A199B35B +:102A20004E80BC10981F2971FF5132CAE2459CEFBD +:102A3000C682B7A38C7FBF0FFC7BD128FF12F19A0F +:102A40004037C4B7F8BEFF58FDB8FC4B2E183FEF17 +:102A5000AB27C3F6017F225B3F8275CCCAAEBD5C5B +:102A6000F2D1E91ECEDF5FE57C3D6A1FE479D98CA7 +:102A7000C33A04C19FA5DF2B40231EFBE29FB93E52 +:102A80000A86597D391CD44F7D1DC60FC6B83F0C30 +:102A90008B00B429993E3846F519DB37A5F2A60418 +:102AA000F286C499FFEAC2716E7B066F9CD3AD9427 +:102AB000A0FE34C8E773FDE95FCBE3C3F95BACFF6D +:102AC0008470FE12F056370AE7987CE1C6AD46F3F3 +:102AD0002331DE9E35585C5DA4022B00791F062948 +:102AE00038A01FF282C5D68BE74326FCF1F5B1F280 +:102AF00033E2ED051627D558FC958E5BE479320458 +:102B0000F279E8B3188A41DEC07C1E2FF0E72194E9 +:102B1000E737963F5D3D066943A0C7CED7BEBCFFF1 +:102B2000F8B5A9F1E547795E842619A7C6D93F1BF8 +:102B3000FD4E22A73C7267B6E2A767CB5E8D71A4FB +:102B40002009981087C9C6AF23B681F908B8CEBD51 +:102B5000F0043A336AB0FC7B90ABB05E71AA8FE7A9 +:102B600052A854AB889DF3FAF3ADB3A4A710BFA24B +:102B7000C6FC3BCA4F7190C322E176864EF240A755 +:102B80002A8F371C5352572975989F49BC7224EBE2 +:102B9000C6C10CE637F535AD30208FAE51CAAB5EFD +:102BA000BBD0B55F739902B3030CEE77C6597EA60E +:102BB000BB3F520ED739794449265744358F766842 +:102BC00028BFCD02BA2CCF0F72F3891E76F3BB78E3 +:102BD000DC6F2CBA74E1391FDEEE11491AF4E99961 +:102BE000FB0ACA2AFABCAD78489941E9EBEB0AD353 +:102BF000BB67EE63F87837F3A12F1E749F3219EB91 +:102C00006F7BE15165A9077FB7713B88C2A7F8F1D7 +:102C1000C5F89768C3473E867DA18322F2CB58F062 +:102C2000AD8F1F392A79F0F4F64111F707DF96A826 +:102C3000E0A9857223F2EDB9F32AF8ECF5F5F197E6 +:102C4000B09F33F7169414CE4315DE94D93C218FF0 +:102C5000F2B6E71E55C0C7381FDC1BCAE8BBC0FB75 +:102C6000A1FDE2F99470F110E665861D9E374BD503 +:102C700001EECBBC3C691FF82D579DFD26EE5F96FB +:102C8000E7A984609E0B46CB7DCD6C3FB00FE6D9A3 +:102C90000A65A3E054C053F93C4330CF05A3F08D3F +:102CA000E0D90C8C8BE7AD99E2516F7E7EF9333A17 +:102CB0008FED9B46E563987F713E3862ADB43FAFC0 +:102CC0009E76E1581418373E32007078F64FB62ED3 +:102CD0006278D82A1D5327326ED4A4DFFBF65B1C22 +:102CE000D23C1943F628DCCECC20D64A0AC7CED532 +:102CF0004CDE53CE390DFEB4BB4F1557FF886CAA7E +:102D000019ED6FB24DEB7DF10307F3C7E3D7F2F88E +:102D1000B1CDBE77E5A48BF7723855CABF207FC509 +:102D2000788EC55DE361D49762423A55D63F7E9F67 +:102D3000E5F2D1FD3E37DDCDDB2547212E2C25A840 +:102D40001F2CA03D8DFE59571DF383DF50948AF947 +:102D50004FD4AE7C430139A1FBCF65E5EA59FEEBC8 +:102D60005871DA5CD9B90D17DFAE9D4ECE2E3808FA +:102D7000766C36D07C27DA73138CF7F64DDFD6BE2F +:102D80001AECEC3A05E59BC8ED9BF2F97DC0E7E350 +:102D9000C6EBE93C3E50305E9872E3E6380F378F61 +:102DA00077ACB87B791EAF3B0F379F17CE1D819E46 +:102DB000C80A2D77621ED904E3F76E592CB3CFBA37 +:102DC000A62F89A3DF1355B8FC66F392132C7EE17E +:102DD0009E6FE9AE66EB561B542AD20D9D6F6DB007 +:102DE000CEBBCF9E72CFAD914E886F50FF421C0775 +:102DF0005E49BD6E97E4D9DF9D1164712B7904DFC4 +:102E000026F6272699FD2607ED19C14B20DF3777D7 +:102E10000CE994EBABF2F3716E7EB67B3ECECDC780 +:102E200076CFC79D2F3F7BAC7CF6D1737DCC7E22C5 +:102E3000867BAE2FCDCAEEF938AAAFE13C5F9F7B0F +:102E40003EACB6D587FFE9C1F2780D9BFF1D5CEF64 +:102E500097E3E9BD31F8EBBDEF077DFC7575704C6C +:102E6000FEBA3A5881BFDEFBFE6C46972FD455D48C +:102E7000C377A85FF2ADCFB974C6FCF138A3213295 +:102E800058DB0C6E14D942D83CEEAFFB606527C509 +:102E9000C73373ECEB61FCDB356A5D513974472F46 +:102EA0000980AAEAE77CBA5CD44227E9336FCDA84F +:102EB0005A4DE1738242C5F1F652FF05F8E4918C58 +:102EC0008ACF336FCC1E773FAE27E3F8E475CF2669 +:102ED00009E5754FE2F44F3E07F45D9B9C0F6E963B +:102EE00065B138545037F6015EEF0C0A3E3C52FC97 +:102EF000DDE9A5F3BDF75EC7EC25AB60E94C8FE2D9 +:102F0000795A170FF2E4E600ACCBE032422601FD1D +:102F1000341FCB05281E662C2BAD90183EBE1EF428 +:102F2000F41FB74900E6E1E2236FB1BC948DCB6793 +:102F3000EDF3E6CFFF84D30D69A919F1432AD9CD6A +:102F4000EE7A1DA0F86A69427982791553F3D49F0D +:102F50008F811E63EF2F0FA6B6C0BCA6AEE7E75D5C +:102F600079BC40206AD764DC97D431FFEFC083611D +:102F70004E673A9E3FDA5946BF1E3CED0CD69D4B3C +:102F800067B2695980E715617B37CC3B229474881E +:102F90005324F3796C97E3F1570AF64F819E12029E +:102FA00019FD81899834D03EF901A78BA8EE2C81B8 +:102FB00026C983AF74427CB2CBD62C908BC9EA6F02 +:102FC0001D6E6B45FF7D18F68D92D3870EB741DCE1 +:102FD0006E893AFC18152DD336E43B97D2FA464B4E +:102FE0001D06B934CD2E58B0F5D2C5FDE2382916EC +:102FF000950AFA5F522C8C0324F475D7409C4FA895 +:10300000795980B872D75682F1DBFAB57902F23479 +:10301000B128A843BFC946F34515EA6F2526C43B2E +:103020001BBB587DBDA5A630BE428EB13D45C9C271 +:1030300078A53B4E48B76F2754AE4D0FDB3F003CA1 +:1030400085924CBEB9F6F936B980F6777871DE0212 +:103050007B6EEFBD2BC8CD1EB9752CC8FC766ADB24 +:1030600058056D942E07459455E481C59B43B76878 +:10307000D08EE5EF8A649905FD51B303E34E616A92 +:10308000CF1709D2E73FC0F8867D4C11806E9B4B6D +:1030900048BF943F313EBD4DD6EBE1BB6DF72AED05 +:1030A00005B66EAFC2E12738E30DE3B8EB16D2AD3B +:1030B00003B06EDD4199EDA37D2D8F71549DE2C962 +:1030C000A078082FDA59FC3EC54B7CA99A827DE492 +:1030D00070695BF10D5AFF527B0499A927D1E6E094 +:1030E00039E5C5948F0CD003854E8043AE2506E4A8 +:1030F000F7C4D7B2F814C5D73F03BC516ACE4A8D86 +:10310000809F144C83F448E95FDE4BBFEF7959345C +:103110001DE2E19BB2B8819A70CEB1CBD03E6D99E1 +:10312000985F47E95C82FE96A911D45347B8FCA387 +:10313000FC7506E05AA6FF0EF98B689326D45FF95A +:10314000FB0F4DB30AF0BD267EF38E24B59F577753 +:103150006CDB91A45DADEF38B41DECE993036B62B9 +:103160005EFFF054EF9FC5609D7E5590711D4EF53A +:103170000A183F3A55B8EBAB503EB9276840D9CD55 +:10318000D759C797ECF023419483BF7A54C078FA9B +:10319000FA41C18154F233D57603D0DBAF76DDD36B +:1031A0005029BEB4EEB810201743FDCD0D95F201A5 +:1031B000D70FF6607ECFFA5ED9B22AE0395B9D9ECA +:1031C0000DF2A03B73700FECB3B8F6CA2C50E87543 +:1031D0009885C2FC1ED5C478E8927FBA3A0EE747BC +:1031E000CE06ED2695D6779DF81CE6EB1CA95E1160 +:1031F0008738E6C6378226A481DDA3A467EB1E7854 +:10320000EF89297601EDB01DBE753054B9A23E7626 +:103210001E63798622099B9D145FCB3413FDA5D3D1 +:103220002501FBCF72BFBA7CBE72C793DBBDFE9295 +:103230004CED06A36534FE2E36FBE3F08BD530CB88 +:10324000B754457C4E55EDAB605EC0B61D35608F02 +:103250003FB59DE9E1CAE7413AAF6070760B617313 +:1032600033F09B671F1CF7B9A41401BC6D964A2864 +:103270003796D5A6F03E05771E0363CCA33BD3B1AA +:103280005D42FD915221DEB55965DF6733CE76D0C0 +:10329000ABDDB5D7AAA0AF37EBEC7D777C152B1B48 +:1032A0006E99D75BBCACF17AC72DB3FA9E4C2FF662 +:1032B000B7995423BDC63452803C74385F02E73757 +:1032C000379393ACBD7E2D2FBFB512E47177C2AD9D +:1032D0007F9B9779BD565A09FE72B73183D9B19A4F +:1032E00081F43FFA7E59C5F77D9934C2D19FC9E375 +:1032F000BC55928F43BE10C874D83FE86EE6F0BB51 +:10330000FD344B02F0CB39FDB7040215C76D61F0F7 +:10331000691DCF207D74D7FE14F7E9E97ADFAB7A17 +:10332000F85EE6EBBD95B0733452D224A04F8A33D9 +:103330008DD3F2E5A3EDB6A8CC4EE970E92A61126F +:10334000908B54C26EECF1D0B76899789E396E9725 +:10335000BDD7CBFDBBCAF4E5EC62F415043EA04337 +:103360002E4BA471FFD3A59FB1E419E50FC4637779 +:10337000A61DF13AD6FED3236A80CB51FFF81D5427 +:1033800089ABCCCE1E7E6C1ED8FD269EA771E7476A +:10339000DD0B3C37EBCEFB9CF9D5D2F979E48DFB04 +:1033A000BE07E8DD6317FE10E40CC479F5F92AF0D6 +:1033B0006930C1F4EE927FFA7394333D27BE1C0747 +:1033C000B976A4EE3ACC2F74E5CB58F3DE9269DFE0 +:1033D0009184FDD38C8DCFAC395F877EB29A448ABD +:1033E00020C7A434C17DC764819DB3007B8592BE94 +:1033F000D292C27D9960924E1CF45C227D0BFA152C +:10340000C743A409E2AA893CB9C5235F431C9FE1D5 +:10341000B39964C77C5AEE58877A211C5F8B7AE295 +:103420009E18B12BE1FB6995F90953D5D48F55F05E +:103430000B3A0E8C2B5F9C6DECFE885139C8F4FB67 +:10344000E9E321D413A2E6042BED73481D6B90CE63 +:103450007F0D6B7009E0F332CCAFCC9EB8E716CC91 +:103460006F7F2384718F23D185AFD913C0ABDCB1BB +:103470001DE727767C1D9FA3EB6C223E459D9D7723 +:1034800086FB409A0CB09B4CB60F6FA587C56A6F40 +:103490003F3B593FF68E71F1F40B55E1F2D87A4F6C +:1034A000AD409F23F8799ABC86F79A1C0FEAC01F9B +:1034B00047DEB814E1D87882F1C732EAA712E60FE6 +:1034C0000F07AB215F8134A7352F3DAEE7F4E2EC67 +:1034D00080FDF708C75B90F23DEE03B4F07925D983 +:1034E000BCD4E6A122EE0B24C9A5402723F5CDAC20 +:1034F000BE3B93C67E0632BDD86FA4A58074239BC5 +:103500001C4F6E7B93B5575A797F66597FADB49E39 +:10351000C0F7C708D88DE12485CF232FA8FEAD0BB7 +:1035200081DD65F6FADE4BF11D88DFB1F075F4C47C +:10353000ECAA52057CBBCF7C6610E5461FD73FF94D +:1035400046B31DE4FF0097CF3DA07F9AE05C5B1E71 +:10355000CB5BB8FEF843B82400E39F3AE6F5C2DE41 +:1035600006DAA30AA3D750732DFA115B655616131A +:103570004CCFA8640885930679E93331AEC9E208D7 +:103580008B8D4296AEE7D69089FA4720A6BAAA82DA +:10359000BFD5A73D887A616B356BD74706D58D2D92 +:1035A00090DFC0CB521ECB51859669BB909CD7B1A2 +:1035B0001C66E5B1FA0D451FD4A1DF680DFF4E185A +:1035C00064DFCDF0F7B35561E3F44B05366E787CDC +:1035D00078FBB57D0CDE1AFE1D39C8BE9BE1EF6796 +:1035E000ACF50927E9BAF8F2E4E97AF8F44801D72A +:1035F000416BE9F5BDAF5A94F7958FBC317B4AC951 +:1036000033CED1D2CC71E9E214D085476E9F0AD96E +:103610003781DCDCDBF7AD655D095A96ED068196F6 +:103620001BF49F75ADBC82905B3A6E46B9B68ECBEB +:103630008DD51D7FC2CA036B14838EB36E8F807EBF +:10364000D23A2E0F08B115D037EF34A6CFF4D37E7F +:103650001E0831BBCCD5AFEB345BC1BC9F32FDBA89 +:10366000AED6CE0915F4CFBA5ED9A75FDDF7AB3B76 +:10367000D6A0DC19290FCC4478561376CE7235C803 +:10368000718C931B0DED73E07C6908E138F9D84328 +:103690000DA097DE11F237FD05C4276F0DFBCEE3B9 +:1036A000B94F377E7F16840FC82DC97EE9630AF7AC +:1036B000C94E71B87FDED8FDACE37AA3BC9FEE1093 +:1036C000EB67DDC8FE43BA08FDBDD3D77D08F3C460 +:1036D000A57CC3F594CEEE09A93EFF65B5BDC32711 +:1036E000A73FE9BC3321765E30C7C79FE8F76EFD80 +:1036F000FF00BCA13C70F7AD0B1782BDF06FA58B2E +:10370000DD33285D50FCFDE053A60B572EAE3B9BEE +:1037100021A0C7DD7538CBE3A144A270CF19C57FC6 +:10372000F0ECC593AFF7F0F5E31CEFDF0F1915F1DF +:103730005F3EFF77D68703102F7DE7E5E5B8CFBC66 +:103740005BC9DF047CBF9EE3C5C5C729AA8FBA3C0D +:10375000FCB66EE0AE9716D179DE7AA0BA46F0D00C +:10376000F3AD07B6AD985A0B78AB9E0FF194F50701 +:1037700018FE6E19ECDCD1E5F3F75C3CE6FF15F0C2 +:10378000F816877B048F493B57C97E5DD7622B6251 +:1037900005FB752C3CDECAFBDB1DCBDFFF38FDEEE5 +:1037A0004DB2F7FACD40AF2F2FAD0AB58CE26B7555 +:1037B0009CF9D16F12763EFE14D537DEF99E1C9C23 +:1037C0001983F8CA9B12B3C34F0E36B1B2CACB7B72 +:1037D000683D7DBEC9CFD79FDCD384E5727E3C6750 +:1037E0005D46F4A3E3DED3F27601E2F1FF1434B3D5 +:1037F000B4E9F5219B84E97A75C63EBB1EF4D03D41 +:10380000270503ECACDDB1C5FFD330C6D6AB7D19BF +:1038100043F0FA71A131EC6D312CF8CE9767332B60 +:103820000FBDE599B7289918679234FABE82FD3C1E +:10383000D171126116279C68FBAA32B8EAD77BF2D5 +:10384000FFE9BF51DB7F8E206CFAEBCBCF1178CE36 +:10385000A3E17D0DEE7D4FAE7E82DF6F26433C8E71 +:10386000A09D2097AAD7407C6F89C1F2C44ED7068D +:103870002ADE53342A1F4971440FE23AA8C511FDCC +:1038800006F18CDAF1CF8B6433ED3BA532BC9BDEC5 +:103890003841C74D3BC10E3C5ACBCF296AFAA3DE53 +:1038A000F34BA370147C65B1E3F1EDDEB87D786471 +:1038B0003FC536BCF1E2BE50FE35C88FBAB17F5667 +:1038C00037E431F6F1BCB435E185DD9097D6E7EE0B +:1038D000A335EF70F7BF08D8B9B939CB1EABB44FD9 +:1038E0008A276B60FFA67818E3E2D4DB21C0B751CA +:1038F0006A8F17297E4314D7C7D0FF29E0BD11D1A5 +:1039000056E667DD123658BEBFFA1AE6ABF7B79E29 +:10391000D4412E9D99EE6FEFB60B245582797A2D06 +:1039200012EE1BBBED0FBFF165D24BE1EB37D9F9BE +:103930004E621554386712B94C42FF9D34B37D284E +:10394000AA0FC78D9B5B5F5962C17D37547DA671FD +:10395000DF905816DCB3201B12E669484909F331A1 +:103960007F2FDB77872BECABB8E38C4D379C2E2772 +:10397000D8EEC18C81F9C7C9831A3B6F7E5CC07DCC +:10398000EA1D99E6EDC0B7D49F6079B437904296AE +:10399000BE9FD4609E80D40AF2AA481E4379613645 +:1039A000827D3FE5784467FA3A7DE997BCF718666F +:1039B00058DE9C7BEEE04C94E445CF39D84B15FBA8 +:1039C0004198A7105B64C338AE3C9A740DCB23A911 +:1039D0009962CC837326031A29A616D172C478166D +:1039E000E2EFD20059A1C1798620A3AB42FF921C1D +:1039F0009C3BA99969CC0BE0B996CB56BC12A7E5C4 +:103A000069C6EFF09C4A64E18A95D09EC202E73A0B +:103A10000859B102F2146A2E62E5AF0DD0EFB5512C +:103A20007D41FDEC9D6FA13F60EF04FC1CE4F2269C +:103A300002F28B7EF724A717E0A3B7F09EB321C252 +:103A4000F2A959BDD8B16EE75B0BE03DBB2714135B +:103A5000C63CF2E09939F610CCFBF6546905A4FE99 +:103A600048BABB4F531804FA70EF43582EB6549D12 +:103A7000F4C8B33361169711256697F451FCB23838 +:103A80009A136CA0EBA2BE3C691ED0E30F38BC6A4F +:103A900092ED1FFF02E0AD83722FEE6F12A3382864 +:103AA00079F6EF3BC6909B3FE47253EDF8F120CCE2 +:103AB000F32538A805FD761C197CCB630FF5362D50 +:103AC0008C837E75042DDD44F19F6D52317EEFD6DF +:103AD000FF3D87E7172372D82A76B1F804D2BDD507 +:103AE0006B11E40BE0031DF2BC57229F742F515958 +:103AF000DEA8D18B7990942F7E51892FFA64A7EAA2 +:103B00004AC0DB8F44C45B2349F1433CFAE6176BA0 +:103B1000D14D4BB37B52D8BE4537FC0F05E9B76199 +:103B2000EED775BDB0C78B0FA2E753B0DF93ABAD37 +:103B3000417CF6C9F941A0BB5FF5DFB55CAEC77D3E +:103B400060A49B77C2F77403DDFD36CCCF89101BD0 +:103B5000F3EC603FF8ED1A1CB7189C8FDD0E26DDE4 +:103B60007B0169FF4A73E0841C3BFF3EA31C3F3688 +:103B7000E8F587FA3F73039B77ED870F8FE4ABD3AC +:103B8000FE822DDCFFE67441DEBE8B78F308AF8841 +:103B9000B038587766E576AF3E5678BED9CB8A1DE9 +:103BA00088403CDCBE663BACB343F10BF2F2B1CCD7 +:103BB0007AE403C2F7630D4EBF8DE4DAAAA280F166 +:103BC00000E48FFE8C834F63507FF15E900F7AC0CC +:103BD0005CBA089A265E3C0A76EAD2C07090E2CDC2 +:103BE000E8923EF0EAD9F23CD59A883FCFBC274311 +:103BF000E78979E689C00F6BE1BE9B00C65B8286D0 +:103C0000D10678936B6D8CDB899A3E9F9F0DF6C130 +:103C10003992BF2A6A2FB27B8D883909EFCF60793C +:103C2000B5E5F0B8782987AB29E2CF9F9DD9B11FC0 +:103C3000E9FF7D9268B328FE030304F5E84C879DF5 +:103C40001708753C8CF5E181A122D8A54A8B1F9EEF +:103C500040926C06B843700FA409FD3D8EED1B8F9A +:103C60007FEE65D8CF0875FC1596CBE1A3D4FB4158 +:103C7000C993AF68B4B0FB1EC76A7774ED646CB7C4 +:103C800062AEB518D6D78A106E370D0EC2BAEECF17 +:103C900014F0E9AEF39137A6E03CF6196C1ED2356C +:103CA0005B8AB09E07E87A02FFECCBCF0F009FAB98 +:103CB00051AADD05941BD89EFE8B79E3B2C6E019AC +:103CC000A15FC30FD717381DE632BD385E0AE0C1C9 +:103CD000729ED1993880F96DEF1B243D89DAF13D50 +:103CE00049C782759F41D79D78E26C4A931500BD04 +:103CF0002CE7D978E5E3B874E0DA6572AFE3403FCA +:103D000084F6B3B41EDEB373A0E5DF95AFFBDA48EB +:103D100079DEF459CCE77ABF979DAF261DF4E739D9 +:103D2000975ECEBFEE7ABBE52394DF4BE3F0FBE377 +:103D300099C19D2C3E55C0E7E383ABF0FCFBAC4141 +:103D4000BA1E942E66D5B2F31ADFD8B31AE9B97B3E +:103D500090E03EF3EC3DF9CE10CC2F4086AB12D470 +:103D6000A4EA4DB735E27CD561B82FA62FB911EF83 +:103D7000A7EBDE4370BFFCF1C107F11E8346A20E24 +:103D8000837C7548DE82F68D567C18D6B9BFF94122 +:103D9000DC8FEA4EB2F6B3761D70A0FD0584ED6FA0 +:103DA0007F63CF3E0BEE3D50F87E7758B31FBCBA11 +:103DB000166D3813F210E4DEF4DF5D08E3DFCDE2C8 +:103DC000800E49FFF46ADAFE82161DEFF9537A6914 +:103DD00019EA37B8F5F995703E7CFA32561FE96555 +:103DE00065B296C509693DCAE369033A9EB7A8EE74 +:103DF0002DF4CE80EFF3ECFB509384E7DEABD712CB +:103E00003C5F3113EAE1FBC5AC3E7C21AB17971157 +:103E1000CC3348F616F2B87FDFEAF63F8CF252EC6C +:103E2000A5965D0B948F11C88374F562563D82FA96 +:103E30004F0CFD18F9D2E59FEECC417CEECBBC30A7 +:103E4000C8E4E01096DD735F32EFAFA9D968037B59 +:103E5000E3BB9CFECB9FC12607E97E26444EE711BB +:103E60008408E3F71619867811E5149423D368FDC6 +:103E70006EB312BD337E6FA03FA05397CEDC38D80F +:103E8000D11397FAE88E74513AF39E93DF54F0976A +:103E9000EF3EE82F6F18F297D7BEE02F2F2BEEF4EE +:103EA000E9CFC52FFBEB5B8FF9EA5D38063383DB87 +:103EB00097B17D1C8C2B0FD6E9F5107FDCC6CF01A6 +:103EC000F7C23E077DBF27D381CFAD3C9EFD008F5B +:103ED00043EF86B836C4A13BF66F87F34BB94C3B32 +:103EE000F6D7C7E3D38F64F2F82C713C53FBA114CF +:103EF000B904F22AC851F01FDC73288A6DA13D3045 +:103F000018326E80F183B50E0978F0351C61765752 +:103F100084C783A89D8FF71846347D5E3FF1B60BAA +:103F2000F8F6CD94781AF328ACE92CEEAD2474BCE5 +:103F3000E7F9BD08B3839C461BED9797156B18E412 +:103F4000F3601D1D1FE2B0AD2507CE954DDD60600D +:103F5000DCA36A3111248C331BA8E712E96302EC5D +:103F6000F745A83F06F39EB69EE2C1EBBF267B7DD8 +:103F7000E5C16A36AFE93CEEA4F278563CD4F6319E +:103F80008C3BA0B1785057F5BA7A90372DE194A8C0 +:103F9000D5817DD283F6EB8046F8B90362433E8635 +:103FA000C78E0D41BB73ED5837FFCA6FBFDEA6F950 +:103FB000F3AFB66458DE550FE45DD175DA22A77F02 +:103FC00009FAC6B5E3C692935D196A1779E4AA6443 +:103FD000064ED4C13903C85FAF60C72635CE6741EE +:103FE00096EF9D853C4A9497FA4F2297C37DF094B3 +:103FF0001E6A407F058A93BDFA8BA26A7D0D3E5FE3 +:1040000016A91D1751D87E8EACD3F13D7AE27C768D +:104010005C5746F7E5934AA6E44CA1F06EE1F04AFE +:1040200009E5C4245A8E70F8649DB6F7ACDF87A505 +:1040300099E3F6DF97A1F62BEDFF468D9F8F99A5AB +:10404000D8607FCF86934594EE0E68B3F679FDEA8B +:104050001B3546CF07F2E3C711207F099CD52D7091 +:104060000FC16CE053763F8E5BDFCDE5DC4393FE02 +:10407000869CF0E0FDCB1C8E4889C5EBB4BB8C8DD3 +:10408000A90AF55FE670C8545DE3F931371F33C103 +:10409000FC146BC317F1DC54D052D12FA0FCFB658C +:1040A000CD932F3792172A5B7F87FB7EDB0204F2CA +:1040B0009BB3370790FE820D83716FDCEC4A3E6E36 +:1040C000AFE0F717D4192BCDD53E3A6DF4C53DC2FC +:1040D000498F7F3081F5962C967FEAF2D5FD9FBD02 +:1040E0000DF9EA0B41FB4F35F0DF52B605FCD2D992 +:1040F000DC8EFCEFB6CB4619FF0955D64668E7F2D1 +:10410000DDFD51EB6E56F6B773F35A46E8D53DF731 +:104110000E3FD0E78EFD38AC7BCD1F2C3ED145CB7A +:104120008F3AEBF05ECE014DE4F108C2F313D9F9FA +:104130009D2D9AE1E34FA52B85B9AF357F700DFA20 +:104140006BDD3CEFD66A67E788CBE73DD6B98FDFFA +:10415000CBD680867131E6575C1EB4F350568E077D +:1041600071BD9538CF13E479C9359352F1799EF535 +:10417000788EF36FF7C8B9321E5FE3F967F88338BA +:104180001C94A97E7986CFAF668AB519F71B459234 +:104190007E9ECE7F4A9EE0BDF0FBFE582960BC4B60 +:1041A0004A39EB6979D70F9B098FC7E0FDC3E02F30 +:1041B000EEC672CA5A07F8B13503EA558877CF843C +:1041C000FB4A86F0A9513B019E316A3FC053273A12 +:1041D000DE3BE5B9B7F569A0D70DAA7D015C35FDD9 +:1041E000EE74FB1B00F3B7F9BACE0A5BDF043C7830 +:1041F000DA7FDBD75E66ED7F2C59CFC1FB5725EB0D +:104200007986C7CAE718C7A2C7C3A5352AACDF2E6F +:10421000274620EF2DB736D008E5D3772B980FA08F +:1042200037509508EFD38AB999E0BDAE171E00FE4E +:10423000D8C0E210EBDF67F5B435DA5FCF664A9895 +:10424000FFFA483DB1AC5AC83F240582F1437218C9 +:10425000F2E214F01728BEE61F2DF9F2DF94B5EC58 +:104260003C986295D92F26B35F5CFBE06161E87AE8 +:10427000881FBE3D70C70AE932B84F64E87528FF51 +:10428000DF813F5F01E72DE13E1288EBD46EEDC286 +:10429000FA3D4211DBCFDEFA00D6EF0915B1FDA5DC +:1042A0005B1F62F5D5456CDFDBB317E3408FDCCBDA +:1042B000E8E891C3AFD7A35DB5C19E14F2E4C34E45 +:1042C0002B7EF7B0520BEFCDEF843C7AE8179C3F82 +:1042D000A66D185A02F6F0B4A4390B96615A738190 +:1042E0002C6DF954FA3D0C76C5B404ED97BE9A6670 +:1042F000389F5ABF902A3FED150EEF314BFCB4FAB0 +:1043000085BF9332ED7B1CDE22F9B4FAED0CC17748 +:1043100083BCDF3DE9C0A7D4AF80DF39BCDF2EBD51 +:1043200062BF0D1DFE7EFF286AA0DC6D28BE83EBF8 +:10433000DE903417C2D661035DF735DA27FA1ED74F +:10434000B72141BFA7AF1AE8FA7ED2EF611D1B5E0D +:10435000E1E3D375FCA4DFC37A357C8F8F4FD7EBB5 +:10436000137E8FEBD230C8BFA7EB3291EFE977888D +:10437000F706877F47F10EDFC575664F1FFEB357FF +:10438000EBBD76A2BB3FBCA7EC9E54F7797B94E9CA +:1043900083D171DF11664561DC92B00ECF99ED6477 +:1043A000F0E6ADC00AA8FF88E995473A8784852DD5 +:1043B00040273F1266D176ABA3A2BB7F894FB0AB3B +:1043C000E11CC6F41DA9808574C1CE473C22FCA423 +:1043D0001E8FE8AEB527757AE6555FDC85E3D6AF6C +:1043E000CD0BEBE0A9996485C6DECF8C8EF60BF57C +:1043F0006BA05EB7C852AD02DC14CE75A8B7736C63 +:104400005E23F096105EC0DFACA8675E14BE75DA5E +:10441000B9F0C1FDDA5EF894E2AD04BE53285CAC9D +:104420007F060FBC07F8140ACF1A6D6CFD71A42427 +:10443000A27DD09D60F1A0EED25D45C8A7EA1E1016 +:104440000C888766276F2CC2FD3FA7F16A62AA27F6 +:1044500037B13CF6A0B6E98F20DFFC9CFBD9128671 +:104460003FCE1AA70D3CFB67DBE03FF5E857EC8831 +:104470007AFC0AB9D6EF579065F3B1DD7230306A35 +:1044800061FF6A16EE5F01BC0E2D1F4A18FBA0BC2F +:104490005CDC84F1AB27F519F3839E7BB2B772BF66 +:1044A0006337F73BF6660C7C1E2A7D3BCCEEED9421 +:1044B00030C836C8EDABF54B36EF4CD279CE29304B +:1044C0003B69B93830B989B67BE22986977D197383 +:1044D0000FCB476CC6E703193A4F19E143FCED8F48 +:1044E000B376CBC50D16F0DF33FCEFBF2809BF1E36 +:1044F0000C92F5184C0A1EBF85845B71D7CB9CB417 +:1045000008BE5BFC79806B80C205F38AEBCECE26B9 +:10451000B06B06D8FD26CBC557C2DEFC9671FA2DCE +:104520007AFB7D424DEBB01FBBFEE67D814AE7AAD8 +:10453000C7EB07CF21F07E9ED1783FB79EFCA4FD4C +:1045400038614F3F033AED671CBBBABC1F3AA20368 +:10455000F80C425C84E2F3CDE80CE6FF1CBF05E9F1 +:10456000829AAFCF8A54FF3F05FB84E047D46BF3B8 +:104570001C32F1FE3F029EBB04F0FB9B9D77D07185 +:104580009E7C8E14185DFD66F29FC2BA16D8BA8E54 +:104590007C4F9BDF387FDCF9E2FABBF37D32CEF053 +:1045A00036F1F976A0FD1C843831E5AFFD09F63D02 +:1045B000E1F14E85F3915260715185C739CFE9E73A +:1045C00013DE1F21C7FC71794AD7F8F78A4EFF4CDA +:1045D000C43C44578E97F7E3C63FDD7D2AD7CFFF13 +:1045E00036F523813FBE9989E3F371CE7F854C3345 +:1045F000966B63DC3FCD98F83E9B5984EF97943AD5 +:10460000719FEBE08FD8B8F5C499DA007CF0824254 +:10461000E0BCE1C1EAE2540CC6AACE54C84BDF02AA +:104620007EB1274EB065CECEA920470EC9E63F42E7 +:10463000FCC7E98C198FD1E7E1674FDD00F73B3DFF +:104640007D48C16B5E9FD9FAEAD4FB60BD9F6718B5 +:1046500035393C9D5086759FC3D6FDF089BF766E77 +:1046600003BE1408DEAFB97FDE4B78AFD2D179DF5D +:1046700031C68BF3BEA0D9668CCAB7C853CA09F03D +:104680007F222D04FF7EC5C4FB7F09F35D07A24393 +:10469000C678FC42C7B92276C9B9E31C3EC1CEF741 +:1046A0000DCC61F41C39C8FCEEFDF31E9F0A747139 +:1046B000F4D04B989F3C507FDEFEAF1EAFFF27F833 +:1046C0003CF61F3AB53B0B72788E02774E90A34FA3 +:1046D0003F7E03D8410314FF70DE69E0C2D2EEDBF7 +:1046E000209E36374C2AF1271DE7BA98473F8D8E1A +:1046F000F3ABDD39F89EAF1B5DA9A9706E2B622A62 +:104700001847A6EBE0C3DF40D3D06E905B91CD316C +:1047100003F4C4334F7F676AA5732774BCB513C114 +:10472000DB7EE81FE886F60F71F4A3CF3F3E15F05D +:10473000F6C49CF3E22D5DA9FFA7E4E254E0E78311 +:10474000CFF2F34F52EFE424F8A32F503F1E367DF3 +:10475000888DFA4CD6572F04FF6A7A8CF9B973D535 +:1047600014CAC1CF5004E475D837F4F853200FA40D +:1047700076943FE164D9FBE35F76BCFAA0FCBBCF43 +:10478000A8D42186B874DC3D37EE8ECFFC3B35E1F2 +:104790006F3F536571EA6680C31C1B8ED657FCF2CF +:1047A00088C241BC7AA0FCBB6680A315FECE6665BC +:1047B00038CCEFF9FB8BEB29827F6F87563D5F0189 +:1047C0001F2D7C5E73A13F8AD7D983FEEF9F8CD5C6 +:1047D000303B89E227E2858B9A0537D678F68FCA77 +:1047E000FA6D74FCFD1C81BB61E8FADCF1CE756CDE +:1047F0007F304586203F6D2CBC947F4FC7477C8E11 +:10480000851752B6CF3593CFAB99CF4B2E303CB9ED +:10481000FBB14D797FFF63CD43D2FEFFF4C58F63BB +:10482000FE7DB3F7C9F730BEBEF7DEEF582067252F +:104830001E478AB4B2F3D6914DFD0887AB2F222DC7 +:104840002CFFE348E9CD30C8B9674A332BDE07EFC8 +:1048500044ED7F8C79ED4B3DBEC7BBEF609121D419 +:104860009791452AE6414416B1F1E87725E43F3EA9 +:10487000AE3B9EE3B65FCFDBAF1F697FAA52FBA3BF +:10488000601FA3FDC9E481D8A1ECC1BC0F3AFEA60C +:10489000F978FEE65DAFDC126D76FEC6CDB719E0A5 +:1048A000F936931ACCC699B04E6E5ECD32769FC063 +:1048B000A419E98B216FCBCDAB71F369C6BE9FA85C +:1048C000C0F243209F86F677E684807FCF4A88B186 +:1048D0007BE9DC7EC75AC7913CFAD28222DE5B516B +:1048E00014F15C816B07BBF7D6D079A955E3CC2BCB +:1048F0003B3A2F5FBE50F97CDCEFCBFFDE4E799E5A +:1049000050797E1091F8BD121CDF1DA4F4EA9FC2FD +:104910003809660FDFF17490405C2AA81B0576DF2A +:10492000B45584B894C8E505F50B300F2F0BD7E9C3 +:10493000368EDA33DDDC9E19818B58685F89091663 +:10494000B72AC797A8FBF944C24D46B8C7EF52DC57 +:104950001F1AB5DFBF827FDF20A733FB3DA8A64823 +:1049600025FD50DE1F5D30A44789DB7B39D5D2F9A8 +:10497000B970E4FB91FBD06B99BD3772BF71593FA1 +:10498000E5FC7955959F3FCBEDB9B1E823C7EDB86C +:104990002C3F276FC07D927346F9B60BECBA26B058 +:1049A00037D93961913FDDEFA75431BFDD7D4A0929 +:1049B000B63F4A8CF9E7A14BE6B7C5DDF8B6F1532F +:1049C000DF39CB295562C5739613BD3F695B24A6B9 +:1049D00080DE7E28127B09D6E9646710E9EC445931 +:1049E000FCE130353F818F4A7DB3F1BCEA91BE6076 +:1049F0000CBECB6D9A19F3DA7BA5DE99E3DE97F650 +:104A00004BD8E7A7F8BAAB8AED477CBDCA40386CF3 +:104A10008928C01FF6A65D3BBDFB4BF62681E14908 +:104A2000222B80AF7FD9B944F6EEE7B8F9916EB981 +:104A3000FCFBD13CEDE1E9EC7E528E1F7E2E7EF533 +:104A4000224E48C4B812ECEB5BF97DDB1B9F7FE480 +:104A5000A547283E365E16D4C1BFBFEAECDE97BE3E +:104A60005F0BE7FED4148B97E75F8273D56BDB2374 +:104A700084E557A562C097EF9200E62DBF4B7E1AE2 +:104A80005BE0C1CBAE2A763E8CF4CA986FEBD07F48 +:104A9000404EFF715EF6E5DFDE32E82FAF23AB2636 +:104AA000C339B1753B645210200FDB9F8FDB57C5B4 +:104AB000F6456E21E91CF0ABBB4F70FB5FCF512078 +:104AC000CFE6D6057AA3386F148E4739DE7F4DE9DD +:104AD000D9F0EC67DDA6151488FBBCF9DC82EB2E5F +:104AE00027D04F213715FC846A52713F724DAF1F9A +:104AF000CEF3CDA31C6E37DF762C38A483828F7F54 +:104B0000DCE737ABFCF9CC13BEA796D359F93DB51A +:104B100013FDFE7FC1F797FCDBBFFFC518E3F7D499 +:104B2000A653B06FE2DE83A650F908FB1282C4F6EA +:104B30008F7AE2E7A94FD07A719CFAE4F8DFC37963 +:104B400075B8C7D20290F03E50A65F8F64D8FD0DB5 +:104B50005939F505DC5FFCB948C0AECA5693A3705D +:104B6000DF8B230806F89D96FEC52AA033EB67620B +:104B70006DA091B312B48FAEC47B0A4E56C9FCBC73 +:104B8000C53111FAB5FE455F06E776B3B21987BFA6 +:104B90000F2BDEC7FEDEC5927F3151CF5DA1B5CBB5 +:104BA000207FFEF6A905788FEE6DDA0A09CAEFF2CA +:104BB0007EDE7DE2D98504F63D9F8E9222CA8582F3 +:104BC00002F6D16DCF892827FEE49B51D46FB77DC3 +:104BD000EBF6FDD7D0F185BF8EB27369DFBAE57110 +:104BE00096E79D65F7977DE74BFFE0F079C13EDFE3 +:104BF000FF03B671FBEC0080000000001F8B080073 +:104C000000000000000BCD7D7D7C54C5D5F0DCFD9F +:104C1000BC9B6C929B905D36C926B9090403E56381 +:104C200083018346DD44A4A06817444DACD52550CC +:104C30000C1A31FA52491FB5B9F9209090842849CD +:104C4000E4332C282D8AD440D562ABED0691476B16 +:104C5000FBBED1C72A5A6B037EB78AD1AA585FAD73 +:104C6000EF3967E626776F12C1F6797EBF377F305E +:104C7000CC9DB97367CEF7397366B6A18E95F54EA4 +:104C8000658C6901DF15098CDDEC64D787DC8C3D10 +:104C900055CB58D4C9D8D7F877216317B94B6CC90D +:104CA000A98CDDB83779A6950D3FBFD106FDE1FD92 +:104CB00020948BA70E3FD7CB14C5C2D82CC6DE4F8D +:104CC000709445A05DDADB771DC3717AAFB63B25E2 +:104CD000A833C9F6167CCFA9D8F57E415608D379FA +:104CE000408AE441FBFB0F4854BFB177DA2E570EE0 +:104CF0007E7F97A302E6C9581DF5D7E77BD1DE92E8 +:104D0000C674E87791929C6B51A17C787FE2003C5D +:104D1000BFE9E1AF9ACE85E73759D9E0C20063B762 +:104D2000ECB51E774E676CAEDBCAA2F98CFEBEA650 +:104D30007F83899297B155F85F78FFA65FBC33EF08 +:104D40004FF0DE5F7D56E652A0EC7FCBF16BAC8777 +:104D5000DDD50CC739643F31200FBF7FCBDE371C58 +:104D6000B82E58EEA0FF3CC62EFCDC16DB6EEAFF28 +:104D700029FBD2C172E1796FF347D644281FF9E0CD +:104D800055862583F7F479C17AFF8AFF4963ACE63B +:104D900035D7D3470CF39DA324A4BE1D0FFF39873D +:104DA0009DF3B515C7FBFD6C1C8FED1D078D23F121 +:104DB00070AA567EFA881DDFD618F3C0FAF67FDA9D +:104DC000A34D03F81EFC5B8F06F0ACFAE7DF7BEE29 +:104DD00080F9B3DFB8943DB0FE5B1E7CABE73F606B +:104DE000BD1F1C725A64A89F7CF2673FDD0AF593D1 +:104DF000AF9C355382FA158A44F03F79E01F5E1567 +:104E0000C659FDE4C5E319E077F5A3178D67EE9168 +:104E1000DFD7CB93405711035D418DC6510FC17849 +:104E2000E3A1FA84284DF878FFC0298705BEFF99D1 +:104E3000C406AD05F0BCF72B8705E67B34C8061128 +:104E40003E4F3DF2C6D1FF80FA07801FE728F88168 +:104E50007567587C5846331894AB1EB9E27BE71748 +:104E600062690FA8881F36D8A4B847C1EB8B80D7DA +:104E7000C261BC8E89C787008FD3119F80C7E92389 +:104E8000F1F801FE67CE483CDE36028F553BB76233 +:104E9000E323E308EF63E1F1E647AF4C0A9F06CE58 +:104EA000D1338073A5C4E775A112AC573C480FF10C +:104EB0009A8FF0EC8C2C84B6936BFF9EC5803EDEFF +:104EC000B50F5E8770187CD2A9EC86E74B9F7CD922 +:104ED0001184EF9F7CF47907E21FFE12A5D9506779 +:104EE000437F2F30A8AF9278E596FB13A24EA0EF38 +:104EF00055777E3EEFD542C49B3C4878882C9AAFCC +:104F000026E2F43CB4DE5511CE0FAB227D4BA4E972 +:104F100023E1FD38CA134F2C3EA522C4E3F17948A2 +:104F20007763E1515FB782EB3E07DAB5B762F87598 +:104F300024BD0C3A42D370BC56C2EBC95DA78EAEFD +:104F400083FED15F3B14CBB950B70F3A50DE6807F0 +:104F5000ACCA9EC0487C33EBB5494B51AEB27A82A5 +:104F6000BB193F663AF805D2C17786E900DF47FCF6 +:104F7000EA70391D3F9F7E3DDF0E5EF7296A0CBD4A +:104F8000E870AB5BEB2479FC7A813382F2FBB85D8D +:104F9000BD770D7C77F0593BDB0DAF5C37F31DBB64 +:104FA0009A3072BE7F017A540DF4787D8DD4341E10 +:104FB000DEBB5EE3FA44A74FBD3D7CA795A906F88A +:104FC000AC720EBE2EC177D96F5D6C0F7CD7FA1B09 +:104FD0009784F3B8A5C71E7102BC6F8963515CFF4B +:104FE0003B3B5C110DEAF7FEA2F63A94671FF638D8 +:104FF000197C96DDD0F34B82CF0AC6AA19C88FA7B9 +:105000001E5DF319CAF3933BADA07BA03DBE97F89C +:10501000FC86654A754332BCF7F8D73FC5FE2B1FA7 +:105020008A472505FD6FB84E82FAC96D4E09BF77D4 +:10503000F2B72FD3F8277F9B10C039FEEDB15F4E3A +:105040006706FD77C366BB3A6098FF4A665387E000 +:105050008BF461AC03006EEA6DEB47BABF099FF3B6 +:10506000F7A4AF05EF201FDD84E504280F25055DBB +:10507000D363FAD178B738076F0FB809CFE9962212 +:10508000C2733AE2FBA6BDB1F3F887D0C7B73806C2 +:1050900057F0FE1DE99C2EFAE93D47B2C4E949B438 +:1050A0009BDFD7FBDB927363FAE9EFAF72B2EADE04 +:1050B00051E452B218F7A6BD5F9D153B9E269E9BFC +:1050C000BFC39FFF48621ACA7976C015D903EBACFB +:1050D000724427A54CA5E721B45BF47ABAF82ED622 +:1050E00093A1FE6B3BD835588FE3F5C71CAC92FA01 +:1050F00027421DE72B0F9C44FCDEFC4B176B817194 +:105100006F7EECE5CFFE04F5F711E680D1F73DFDAB +:105110009FDD01F4F0FE0E2BD314B433A259DB5003 +:10512000FE1D70B2DDD0E57D7B342BC580EF9B9FEB +:10513000701D47393154EF05AA9347AEA7A1B6AC0D +:10514000FBCD3CC61A6BC3545A59F5CE015C9F6621 +:10515000637BA0B4B1EA9FF1FA7805EB5A29B4A3B6 +:105160009C71C84A03CCEBDE78209242941F09C49C +:105170007F572427133E81AC67A0BC5A5B3B7FD38B +:105180009B2817648D295E1C8F91FEB431DBDB08F0 +:10519000DF2F04BDE8F374D8C34A00D6E14078029B +:1051A0005CECB6F0FA1C18DFEE4B2D8019B326DF4D +:1051B000E220D27DEB54A500F9745132A71F278C51 +:1051C0008FF4C88E7432FCAEECB77D6C941FAEE5E4 +:1051D000CF319247A09F3782FC62130DED403AEE2B +:1051E000A95037E0DB910AF38EC1BF5B217928F823 +:1051F000E3D752C0F719C2A1CEA9EC81B29C75D8F1 +:10520000717C66CDFF6823ACE3DE655F4F1A807565 +:1052100094DB3AED41D4D7174DFD6863F6F03ACBF5 +:105220009F58D72F256299B60CF573B97BD25B587E +:1052300002B2E538E8FF94C47A5BA09C2BFF7DDBCB +:105240009B67435DD0CF11AC8F1B1EE7889DDBCBE6 +:105250000D8CCD3F80DF933BECB71AE86DC613A1F0 +:105260002B2E8379FDA0328FE4DAD4DED0A5D3A033 +:105270007E6DE5849956C0C31AC10747ECBD9E29CF +:10528000885FF82EAEE73A366847788699E220B80C +:105290000A7958C102A2CE089E7FAAB2EF467A359B +:1052A000BF7F6D3472E565D0E507472297A13ABE0E +:1052B000EE99C1A791CCC3BDCABC786618EF50E087 +:1052C000683C1B391EC077F3C068F09554826FC0EC +:1052D000265B357CFEC3BC5D2DD248FE2E4F387652 +:1052E0000DDAAFE509938E6039965DA2CFC38C8F3E +:1052F0004FB009E8A42E39B82919E0134E0E7626CE +:1053000043BF2A7930CB06F4F24725BC199FAFB2D0 +:1053100086B3BD008F0F32C36779102EFDA3DBBBB0 +:10532000C3DFD3747BC11285F5BCB2DC1EC1F9D7D3 +:10533000C75FB019F9EC588353B1C2BAFE8E5D60F5 +:105340009C6B582FE1E195C4EE4C5C7F293096347C +:1053500087E4DE0FA20867961868013EFC011BB0C7 +:1053600003F3B2EB8174B15CCA542A97B120E1EB2C +:10537000872CDA847A03E6FD30AE439F37F3F76774 +:1053800021BFB0DF8F6EDF99E7FD666DC736E4673A +:10539000FDF927C9E15FE178CB81B12F9809DFE9F9 +:1053A000B87B9B916FF47E0D824E991C9CBD08FDCD +:1053B000257546891BF4C866210F8E5DC8ED285FF0 +:1053C000543E8E7696791C169E1B1CE24FF42B22BF +:1053D00016E60679E213A4A3BF67EEA77FDF577333 +:1053E000117BE36C9C6FF00F8837F3BCCCEB3D96E0 +:1053F000CCE75381EF19F8AD22AC3A54E85FF16580 +:105400005210DF3B7621F7137F0F628FCBBDE05147 +:105410009487156156DD528068BA3788EBD4E76906 +:105420005E5745E73AA915E93A2807F2947F7D9D32 +:10543000EF25DB383F89F9B2DEA325F2ECD3BFC7F5 +:1054400082767626FD8E5DC8D71700B0E0FAD83593 +:1054500071A4FF2A6A1AE87BCD200F91DECC703C44 +:10546000E150A7A3BEEC9EE4CDA987FE203DC20873 +:10547000B71371EA749BF1798A785EAF4E47F9DE13 +:105480005C9E4ECFF5719A252ECF747EEDB6B0CAD4 +:105490008358B7057C8B817E979F9CDA5303F30A70 +:1054A0003624AA2C0BEAF81D6C4FD54EFC1CC65BAB +:1054B000EE65B92D00DF1A1B23BC41CF498B810E4D +:1054C0003FA8DDBB1DE97979CB7727A1BD74B30275 +:1054D000EDF05ECDFAEF4EAA307C4F9FC7AFEF499B +:1054E0002B453951C378BF13F2539B513E57B89E99 +:1054F000DB6C94CB2712385D9DFAF377BD53889F00 +:105500009503C8D77AFB7752387D2D1776C3AF4BFA +:1055100079BCE2BD5A65CBDC3C5C5770520BCCFBCE +:1055200044DDB45CD403CB5BD695A27D7F42520FA1 +:10553000B880DFF3EF3FF01DC4835B01C717F8F6B7 +:10554000C49E0DBC7D969A6309603F5686F0C9BF24 +:10555000FFF960F274A3DCE9A0F5340CC1933F9726 +:10556000A1447F9615B3C01E285A267787EBE1FB2E +:10557000EBCA1D05A82712855F164CE1FAD635DD6A +:1055800042F06D063C60D92DF1F59E9762A5F1F4CD +:105590007EC114EE97BB26C936C4B7C7CF2256C00A +:1055A000EB17F6703005FAD95990F4B6674998A10F +:1055B0007FD1EC0091877670B943AD87573749FDAD +:1055C000F568D76A7F8C63E8D78CCBEEAFFF21B448 +:1055D0007F0876503DD44B9A7CE968877B0F39036E +:1055E000687F5C979243DFAF8C3C7F18DF9B04D2CF +:1055F000C50AFD56DE7FBCC70EF5B3F63A02B81EEB +:1056000017F0543FD1CF6022FA1D93E54A5708E8BE +:10561000E1C3B2D2A46F8A173066619ACE17E4282C +:10562000C4314D36D6534CF57453FFDC98F68CD408 +:105630007E09E5BA0DFA34007C7DB6DE3E5CBFEF34 +:105640005AA6A0DDBFBFBEB704DB233732B6BB000E +:10565000857B94EAB2CC943AC07B268376A4831AE5 +:10566000A668F0FE7D96DEF9C887B7221C00EE8A98 +:105670006DF0D9C61CE4EF43F41EF0794A43817102 +:10568000FD038948F793E5CF13510F9C7CE26C052D +:10569000D79FEA0CAEC4FE279F74AAC887350CF0CA +:1056A00080F411E278E8B2470F63BDFB4927AB07EE +:1056B000BEEA7208BC2C70115E5A902F801FE290D7 +:1056C0002F803F3C8E7EEA7FB244A6FED30EFD675C +:1056D000A90CE31758E45E9C54F7A351AA0F1C7061 +:1056E000AA0032A0A7C8E60AD4FF398E00C67FD62A +:1056F00027C4CAE9F6146EB7B4A7E8FE7755793C1B +:10570000F4AFD29C0CF925B8BAAF09E703566F3550 +:10571000F23DD05B7BCAAC617AABEA5D4AF4362ECF +:105720004BC8B35F4924CF9E1AB00671DDDD87A454 +:10573000FBD0AF5AF3DA52D705D02E3F6145B0B255 +:10574000556CA02903FBAB6E9AD7FECC400EC9B7AF +:1057500043CE14A4D724D66F213B4561CA1EC0DFB7 +:1057600034D64170F796717C4D2BE6F8DAB384910C +:10577000BE052C1CDE01F5BDE5F10AEAF14705FD89 +:105780008265DF9E07CFF71559580BD44E3EBEE613 +:105790002F77C138EB7F23911D77CA1EA571BC40BE +:1057A00007F580CF92B2EA6806B4AFD2929813E3BD +:1057B00048FEEA6CE48BA432D0AE39543294ABABE1 +:1057C0001E8A8BA01DC08A52E9FB730F49D10B11B1 +:1057D0006F6D0EF25B3F2C60D10B91EF9BE3C86FB6 +:1057E0005DF7D5A02F3475586E4C2C76442D89B8B2 +:1057F0006E2D09E11279DE1A403F3BC3C6E7630113 +:1058000083B10EE9B06EEA8D156C185F5DB587B691 +:1058100037A25C63A13494D743CFEDA172F46F0E2D +:10582000DF53B52015E6D3E5822EE702DD6CBAB76B +:10583000599B8A7401F34E8252D8B32C3FEC5A64C0 +:10584000F0E79F13F245AF77BB44BF896117D935A5 +:105850002CEC42397FCA5EFD97BBD03F3F2405EA5E +:1058600061BE13AE7921175899953CB1541AA078AE +:10587000836401E431EF131F31E48753C96109E305 +:10588000B84965030EE487B98796A60D18E8AFBB43 +:10589000EDDD2C7CFE558ACAE38E024E3A7C363909 +:1058A000FA2D284FB5C7409E021CBB2F7BF5C4FDC7 +:1058B000A84D84BE194C117E922D9C86EBD9E41024 +:1058C0007254CC5F157AE8C3143BD1C3DF049DBF8B +:1058D00027D60BF4FC1ECACFE05410DC48E73E1676 +:1058E00041BBD9BE70BE36A0E2F80AA723399C8618 +:1058F0007080FE1FF2FE81F7EE4FA5FE01A42BBDC6 +:105900003FC0290DE55F77F9EDD7E378137E23A932 +:105910005609E1732BD19D17E0069CF92FC3C90CE2 +:105920009F894BDA9D5930EEA7657C1ED31EFBDCA8 +:10593000375AFCB0F2732B8B9E6DA80BB8940E3CBB +:105940009F9B8574BB3F7D26CEEBC3E34BD324F4F2 +:1059500077C671384D471BC8437828A5F8FDE5C0C8 +:1059600073688FB903B946FAC918C7E1A9C31F2CD8 +:1059700091DC2BA719DB39FC37C589F6FC31DE4FEA +:10598000E4FE3C9B686EE77AF0D49FD7105CBDC5FF +:10599000A08F7270FDFF6CB243FD53E057D4F32526 +:1059A000C51C2FAB1E9109CEAB86E03BE040F8EA68 +:1059B00070483AF491039FCF7D02E08CCF95F02B95 +:1059C000EB511E1D7232944727BFD29C08978DC0A1 +:1059D0005548E73503258797C1B8FB2C6AC8AA0C40 +:1059E000C3A774E0231FE2696379EF141C6F9DD095 +:1059F000DF7E5BB40EE595455693515E558838467B +:105A000033ACA97F2AD925A41F2F17EBCADBBC7A98 +:105A10003ECAE90F598282EB58077212D7F9F14357 +:105A20005204E54EF3571DC7501EAD3B9F911E49D2 +:105A30008A3ED0514A72C81A70C1FCD6DD1538DED4 +:105A400088FA7D7F3CC9D3482D23A1AD61A400E92C +:105A50003422917FB44A1B9827C3386A63F86CD408 +:105A6000DFCE898F1D45B909425C015A66391ACCCF +:105A7000C7605757B17EF27B1E9A1EBE6C1CACF7F6 +:105A800046D641FED0BB977D1995E0FD2A411F4DBA +:105A90007957D52FC0F93F6EA5F8C5878F6FA2F94A +:105AA0007E582CE46674CBB124984792DFA1BA0CDF +:105AB000F6E8874F4C480A8FE237E8A5BE8E757727 +:105AC000717976EDB8879FD5006ED78F53086E49F0 +:105AD0001A2BC57875522394245FAB7DC87FCC56B2 +:105AE000ED5B6CA01F1D2FC142F5D000F1AD5280BF +:105AF000FCD29C37E9B16350B72B0AD9672B053E1E +:105B0000BEB007578EC37DAB5A36D808A4FBD75A10 +:105B10007910E5EEBBB50AD5753A07B53B8FE24D76 +:105B2000558A84FB1737D958A313FCB73B4CFCA00C +:105B3000F7ABAA0CD945BF25CE14EC17CB177ABF0B +:105B40001BAB87C63BC2FBF179E9FAE6E65E69B0BA +:105B5000D11097B969AF6BB0D118978C24C7D4878F +:105B6000EC56F1FE69FD6A9083189F74F121308E26 +:105B700044EFFD7C5AB81DE1E22CEB77A0DA5DD54D +:105B80002995A22B73B1756112F2819371BFC03C4C +:105B9000EEA65A9921DC9A019F58466A152ADFAD74 +:105BA000F531846B67AD4AE5CFC6717B24C7C2FD72 +:105BB0008E5DC2BE8E08FCF508BED34BBD3F62DCD5 +:105BC00001F46603BBB885E2ABC1E07AC42BDA2DE1 +:105BD000A0176D8D4D1487B5690E8AE7811CFF19DA +:105BE000AEC3A6707B19FA33A21B067218CAF39CC7 +:105BF000E17DD8EE5D286BD8DF5B36E8C07EED0234 +:105C00009F27851ED5D7F70B318F5F8879CD10FA86 +:105C10008CF952C9DE77FA358674AED7415F658557 +:105C20004689A71BE03F80FB2EC85EE8D71BE0FF3C +:105C30001B9CD7CD1DC7E7A5C1F3710BC154988A32 +:105C4000F07793BCF8A48C11FF8D855F331EBC0BDD +:105C50005907AE2F521B669CBE2BE979676D35D56F +:105C6000CF73869E23389C66FDFD62FD7FD4F17163 +:105C700086EB9C91127A79DC2C5EC77E712C54875E +:105C8000F2252E74555F23AC2747B555B322AC8758 +:105C90004A503E2E0FCAD568E77A964418FA215525 +:105CA0009D1243BF242E149E87F129F7F4F0099426 +:105CB0005371F98384D7A4E25E8711EEA7A7FB3363 +:105CC000EB77A256A578EC501CB7DEC61A0A31AEA7 +:105CD00093BF09E3BFF7C6FF84E2BD359A5371A6AF +:105CE000925CA278F00A9B4CF6E9398EF0299CE789 +:105CF0009A4D0B358C199CBAE7DC2896777B42FFCE +:105D0000C0E7BBD63665E1BC2B92D4CFD0AE63DA08 +:105D1000F44B7EEF233D42729069D22528F72AE2A8 +:105D200079BD25F5D616B4F32AC6ABB74BD0FF8A9A +:105D300054C72568075664F3F61B44FBA171415B09 +:105D40002AF18B3DF96D99912D3EDA3A87D76B6335 +:105D50006F1BFCAEF752994E9F1AF30ECB07A0CBE8 +:105D6000641C57A74BD744135D1633B28BC7FA4E4A +:105D700017D2631ED2A54C65D212A04BB4FF849CEF +:105D8000003AF4E3F849C5DF4C8739A99CFE26A404 +:105D900072F97B69AAB0DF041DBA845C317F7F8A07 +:105DA000E8AFC747CCFADB6B05FD0DEBE9BBE6C1FD +:105DB0006BD0CE77EE9D948BEB793033928EF18D54 +:105DC000542BD7EF0FFEE3BEF4C5582E7A30BD0238 +:105DD000FAC789EFB5D8411F417DAAFFB3EB54E064 +:105DE000B7A91359248FCA686E0EAC3355F4EBB4BF +:105DF00007D2B0DFB485DE65B87F7AA9584F0DAB06 +:105E00002E43BF8C815F86FB0766BF50D76F2D93F3 +:105E1000BBC9FE6B4E88858B3ECEA5A9BA9FF750B5 +:105E2000593CFACBE8E7A5A29F57A255C4FA799747 +:105E3000A6023C1C4A085D75837CFCF7E866FDB849 +:105E4000D0959CFEB89CFD6F18EFFA548E5F89FBCD +:105E500029FFDE78EF26E8FE3CB7CFA639789C8094 +:105E600095821F8A766F80FB9DF78153D6921C2303 +:105E700057C92EE8427B81E858A1F28E54EE9FC0AC +:105E800010471C33713C1E9F837A27D6F5F7EF48E5 +:105E9000E5F1CF697143ED36D4FBC3ED1C6FDE2510 +:105EA0002C46AFA72E9463EA7E996932BC1737510E +:105EB00089B10FFE5DB8ACC117F1FF1732F2EF4F99 +:105EC000E5723F705DE6A4024D1D7E1FF4E63DC401 +:105ED000A77E07E94D9D5F753E05B83AD2E0BDB794 +:105EE000E13DB4BF1C1DB7929DB871B29283FCF422 +:105EF0006A2AB773E2A2E5644FC64DB4445C40BA67 +:105F00001BF33E96111F1B8B73C95ED4FD69F3FC16 +:105F1000757B7123DA8BE98CED4E5DFC3B947B7BCA +:105F2000841C88D306836827C63542497AFFDBD9AB +:105F30008BCB3B7262ECC587055EC05E7C18D79D3B +:105F4000B7F97E19D7B751D8F12DC5A5AFA3FCFF7E +:105F50007822B7835DD105AF2741FBB8626E078F0A +:105F60005BD8C1C2D368BEF4BD4D4376FB20F19B24 +:105F70000BDAD1BF19170A4FC0FC27B0C37F8BDFE4 +:105F800079F3EE53C4E7A90B63EDF5374DF43B16F7 +:105F90009E9B853D3BB4DEC960EDCD40F901D43D0B +:105FA00003EB9FF9D828F0DD3419B431F8AD1B2F7D +:105FB000EBA6F666BB194EEACC5838A9B43FF6A258 +:105FC000903F00A71739FF1BE898E279F230BD52E5 +:105FD0005D31D5FF4D7DF52FBE9FC4C29A0FA6BE81 +:105FE000ACF5A328FAEF281FD1DE903BEE0EA2FD00 +:105FF0000BF43E8872326EF3019293667A77647383 +:10600000BDA18FEFF4707A717A86EC56A67A29BE1C +:106010004A761EFEB542FD2CFC4F2ED1A705FDFB96 +:10602000FC233243B93C193732605EDF61510BFA11 +:1060300065D3D800D567E0D2A05E006E31D6CF66BA +:1060400083590E2BEE4F459B90EEFEA884ED1EF873 +:10605000DE675BFA5F97E0F9EDE9E15F0DC073D9A8 +:10606000C3F9C2CD029417A3600934B44C7613FF70 +:10607000B256FBFBC6FDDD976C41B787EC35BFF22E +:1060800076BC113FDAD07A709FC6CEF4BF88D8CFE5 +:10609000011A31EC5BDB079297A1BD760FDA514014 +:1060A0008713F7723BA1E13589E22F9D6847917D07 +:1060B000C5E8B9760D8B3420BF64058EAB88D397C5 +:1060C000ACE4A78340CEC1F8D0F8D7E2157C0FF836 +:1060D000F89C2B0C7CDC00FC140560A6CC0F92FD18 +:1060E0007D2A81DBBB7A3BD86193112E5262511815 +:1060F000BFB3E684A4A2FD3C6E6180ECC79419EAAC +:106100004716B2BFB65DF27BB04353CE520F60BDAF +:1061100061EDBD97CC073B31E51C2E672EF2ECF804 +:106120001DFAA5851E95CB995047D08EF3037315A4 +:10613000E1AAD7D17C45F8AE9F199C85DFBD48C048 +:10614000BF29FDC6349C9FF97D4DF44FB97461148D +:10615000EDE1B582FE8265FCB9997EEDA9DC9F0177 +:10616000FD7D9187FC9B10D5AD6EBE7E4C9311FEDC +:10617000CD77F1FBCED79C8467A73F966ECDE32EFB +:1061800012749BE4092EC4713F5C3A703BD219D063 +:106190005508C7A992C3D91274F900FC2A1B3C7F89 +:1061A000CE165C84CF815E167B3C63D3CB10DFC9F7 +:1061B0006EDA3F5B364437331D187F59FE65124354 +:1061C0007B791973305546FF80893C9BE0D1270BC2 +:1061D000A97F08F962D96B0B8EFE19E8E2F50C2B4A +:1061E000C33C28BD3F13FD35169C87F6CEB2854EC5 +:1061F000E2A3E5AFCD69C27D5F25D7562DA1E1DDD4 +:10620000E11CCE4BCA8D793F265F87E69733727CBF +:1062100066AC5B47AB73FE323F5F26276AF1D3471C +:106220001B0FE60CFCB25CF08BFEFE09A9770ADAC4 +:10623000F76BBBA297AC8779EF4BE94F97A1BEAE46 +:10624000EB484B633163FBEB383D42FD12CD8F755C +:10625000F53AD493CB6DEC88DD606FB47BB8BDDBD1 +:10626000EEE1711468D7B0BD45D023C6BAFC505FCB +:106270008E25D8136F3C54FABFA7A863CBCD651DFC +:106280005F3BD5D1E20D41A6A6CEA6542BBE8EA370 +:1062900001CD69453910A2FD0307D0239632C6C54A +:1062A00027207E7BA974B37E2A13410F62A9304553 +:1062B000C2328505A84C65212ABDAC9A4A1FEBA0C5 +:1062C000329DF552E967FD5466B1412A55CCA033A1 +:1062D000E45FE4E20E2CD427B21095FB73B81F776D +:1062E000A2CE063603F975E4BF69F54EA52195FCEB +:1062F000396AAF01FF0DF350FFE0C9D5F3739EBFBC +:1063000018DAD7FC97B5A085F0C4F375CCF0B1CA04 +:1063100013B6371AE2AF0D0FC89437ADE3477FFECF +:1063200007A117FE20F86D7F5DE05818E7F5801C87 +:10633000C0FCA47D293C3E3ADC9FF77B4EBC377104 +:10634000C905AFA39DF6A996A8A2FD3116BEC68EBB +:10635000071764A1BE3981F160F8DE89E32559127F +:106360007CEFCDB65F4EC1B830D8170EDC4778F35E +:10637000EE9773499E441DCCE635E0F7F2000B2200 +:106380009C55D0B7F942DF669CB9BEBDDB133C8695 +:10639000F2E5999F83E704EBBEAD4D22BF91D90290 +:1063A0004D98E75121FC13B35EBAD213FC0BBEA784 +:1063B000C38729C1D2B770DFE7A50931792D1F78CE +:1063C000B87DB93F575D8570D7E1005653C50618B3 +:1063D000FF8DB6B3088FA783C71B7773785CE90975 +:1063E0000F923EB4A9C49FCFFC7CCA788C279F6EC5 +:1063F0001EFFD4F1FBDF340F6407949FBABCD8773B +:1064000041200BE3DDCB5B9D3C0FA1E3E2A0115EDD +:10641000CB3BEE6535293CDFC49E32B29DB1CC64E6 +:1064200094D7BABD34B4BF2DF6AF5133E17A3F51A2 +:1064300077A31A47F9E41B8DEEEF157666A3F08B70 +:106440009A96B28851FFAEAD68790FED7F979FA9FC +:1064500067A17D2CF20A9CD12D1725A23F9ACF0A65 +:1064600030C6E092F9F373DF8DB0A506FA8FF347DB +:10647000C89ED7F31786F84BF8F14D99B1FB9DE70D +:1064800078399F14781D4407BE864035C2C9A604DA +:106490005885A19F8D954EF6423F9FB580DAEDA9B4 +:1064A00023DAA779F17DE1F78FBF36C056BA8DEDBB +:1064B0000B0ABCDCEEF95676EE7AB7262BF09DF58A +:1064C000AA733ED18F5A18138F4AF05A62F5A6C0AC +:1064D0000BC037407987224E0808257C342787195E +:1064E000E6793B7C81323C17D09037DBE736CCB382 +:1064F0002159E4137D79B66F89D16EFAEAEC6361B4 +:10650000947F790ECA63389A302FE9849BE319FD92 +:10651000A45BBCB1FB852DB54A80F05B2B078C7E5C +:10652000C5109EA73CF82EE259F6713CCBB6FE5240 +:10653000D4C7E0BBD0F88EE87BF5587720BE55DA9B +:10654000970FF2BC3B13BE7D11EEB78D81EFE6BE17 +:106550001FF797E038EEDC992E92C7614DE27EC9B5 +:1065600041E4A71BC5BC6DBEEA2882D6169407D1AC +:106570009E733298B731CF9BC17A0C7869B677F8A1 +:10658000309FBAF92BEBA8F6518997CB153B18D061 +:106590006F1AFCEE8F678457231D391ED134B4E780 +:1065A000ED8782513283DC671667EC740465CCDBBF +:1065B000EC5AEB20F9DFA8042E4928C4B8B81AD148 +:1065C0006088BED613F3B1DEB63E3E807EE67E69BD +:1065D00060FE04C45B818DECE338410FBB0A8E90F2 +:1065E000FFBC3BDDC5F3483A9C0BF0BDAD4CEEC79C +:1065F0007DFED6E089729CD24E002CCADD9D958727 +:10660000958B709C6216C0EDE6BB5964F30D06F9DC +:10661000D5906EA5715A3F7F23ED69EC57ED6088E8 +:10662000C7C3B7BE9DF634BCBFE1C70E07CAA90DEC +:106630008F87B3919ED3FCBC7FCFAEA30B12B0BFAC +:1066400024F7E3BE3CFD417DC7CAD09E969CE1BACB +:106650003A7531D5D7F96C3C5FF8D68F9F3D0B9ECC +:106660002B556800107CAC3CBF592FA3B2B16E868D +:10667000E704911F647EFE7F33383D785B97B8D086 +:106680007FDBD05A6841BF76823640FB8689D5963B +:1066900060C48DE5E20538AFC425A53609E6951836 +:1066A0000C586CF0FCD75EBE7F33A17AB105E19B3C +:1066B00027FA9BBF33D4AF35B400E19BB8C442BCCA +:1066C0003A01C6A1EF9DE6FD5F78391CBA1823B9DF +:1066D000B0C3CEEA312EB0A34E913436DCEF39216F +:1066E000DF76C2F851E2935E34A6D8F6A13AA3EF62 +:1066F000B4FCE8A77D986FD1B292EB8B242DB460E7 +:1067000022EECFCDB5503DB1285286F3DC90EF603C +:10671000B8CFBA43626427F5FCD87129C26142112F +:106720005368FE452C8876CC8E1F5D351EE960428D +:1067300067471AFAFBFA7CAC3E99E7973C0D86193D +:10674000D80D79456F337594F525160E30E42F7DFD +:106750003C73FB4B024FE977DEC37E8C78E864B470 +:106760002F0A25F5EFB10FA4790DE3CEF0F1FCA9C6 +:106770009E5DFC7C9A79BCED021FE99503C22F62F5 +:10678000B46F8FC9D014AFBFC341712E904F9427FF +:10679000DD33AB89F6953A445C08F4B46FD134E448 +:1067A0000BC007D247D1806CD40FFF1CCFE7BBAE24 +:1067B000C8323F42F15F80278CB3BD2D988AF92003 +:1067C00096D670DD9B6EECC7E7B1BD3C908E7470C1 +:1067D0005F726F1AF2CBB61FBF9D8678EA99F59269 +:1067E0000FCBB60477198EB3AE6866F5328CBBB9A1 +:1067F000AB10D386EFF1F5A65A22E912D847E3EEA3 +:10680000ADDB80FE402AA8398CFF1FDAD6BC01E33D +:10681000607783191C257DD9EBC2710FCF5D7C7623 +:1068200000E775A783FCDE9D52DFB393D0DF2EB760 +:10683000D079B1BBC37A3C094C7378AFBBE8849C78 +:106840000FFDF7CCE7749272F1E292C9D03F455246 +:106850003E06239D5D9755316E3CEE67762E2E41A8 +:106860007ADA14F47D8CFB179E255189E70132B248 +:1068700017C9255411DE2109F50226CC537CB53801 +:106880005487FEFC1E89D5607CB5C01A7895E28ECF +:1068900057CB8CF081B61FB6976B1427E8B0874BA7 +:1068A000D057B94F62D5982FD5FAF9B23ECC0FD454 +:1068B00040AEEFC1BE6018AD45B9F66922F99150FE +:1068C000A7FE3B4AE46A51EFAB847ADB5B6E6A4F0A +:1068D0002A0E49E877F680DF89FBFC9E32835F262B +:1068E000C413C637F4F993E155887E08FB2FCC53C7 +:1068F000F5765E457579299B6005B9EB29AA90EE7E +:10690000C3F9078B6E4F30C825CF8B2CB2020C27F2 +:106910004FC0727CD974A23B8A13315B682BCAC703 +:106920003D756D2E94CB8D82DFE179C94A94CB4FB2 +:106930009E45FE6BA7C81764B67ED2C78D3A5D8AA6 +:10694000FA703BAC17E5C49CB3687DFA7776FE0815 +:10695000D685EB5ECAF65A00EFA75EFF3EC165CF53 +:10696000A7EDB49FE679ADB9EF49F4A7ADAC0CFD46 +:1069700063331C9ECAE07A64CD5FDAFAD0EFDE980A +:1069800066A5F77C8F047E8006A1EF35D771320CA7 +:10699000C386F740FF5D9615BA72FC2C8C33AE901F +:1069A00090EF86D60D7F0184AB8DFFBFBD28E5C675 +:1069B000BD306ED792962294272D3E17D78716E0CA +:1069C00048D41FE7B2089E176A7B7440433F3E9845 +:1069D000037E3CEE8BB18120AEC31B768771BD89EF +:1069E0004B46E20FE98F9887EC5CE5D2A9D0BFFD5A +:1069F0001ACB4CF2DF047DB5FF4425FADA2F717D06 +:106A0000A4FD88C7BDE1CF42F162804914E6FB4393 +:106A10009C2FB042BF9FC3A3334ED8FDD06EF192DE +:106A2000BFC2CF53B028E5A32FEBCC4DC171333398 +:106A300045DE9232C0F127F00C539037CFA472FE9E +:106A400034CC23F071790E32534B4AC17C260B9D16 +:106A5000136AB730CA8FD31603CE92F9BC70DE1911 +:106A600055AA4AF9D2F807F35B21F1EF978B71DC55 +:106A700099E1A6FB0A498FA807159203D2A269C320 +:106A8000FD9318874B8175303899F3A5FA28F245A4 +:106A900095762BE233A9E8B13598B7DB137893E408 +:106AA00038EB74127C41CC685F031C2A5A9D31E795 +:106AB000BBD4CDB1F5A451E21C880FFDBBEECC4197 +:106AC0000DE1D42331F51EFC6E0D7C0FFD97E258CD +:106AD0003A32C75132EF74C47CC7AEC4D6BDCC5075 +:106AE00087EFF6087C01FF5E82FCE61676D0019106 +:106AF00097ADCDE4F27FCF5E9BD09B031223FE8A3D +:106B0000FACA04BC10FFB48585A2DED2AF91DEB014 +:106B1000B010C22B21D0742B9E7F98F2C08B519461 +:106B20002FADEF27903CD1F5872E07DC997C1E17FF +:106B3000FAB85DEF2EFC674C1CA5332178EB73444B +:106B40007FDCBE6AB0F76FC17DBA8647DD78529AA6 +:106B50003D981C49BF0DC6FB9B9FEB9B21FD94BF3D +:106B600044CF8B243A9992AC5A509E821CBFC68D5A +:106B7000FE9625B500D73B2DC8D2516F4F9BE897A5 +:106B80001A90FEC5B9C60D6C7001F6D3C01EC4FDC7 +:106B9000C69DD1D25B719C8E569682EBEDC87FACC0 +:106BA0001CDBDB996D26E647FE757C32D7F3450783 +:106BB000C91EECED7458906FDB6D1DD5F85EEF4487 +:106BC000206080E7E1AED9F515A84FE7502C9D95E0 +:106BD000160D6CC17DCDEE575C0CFDFC6E612F8EE9 +:106BE0006D17339BB0F7ACFC3CDC901DE8C4FA0891 +:106BF000BB62DA6186E70CB20303D15CF86E3AE857 +:106C000085EF2A68DDB312C4A71A04563B07E8AC27 +:106C10007250437DA862BED278288BF873B586D7B0 +:106C2000A75CBC3B65B4FD9021F9959F4AF9E3450B +:106C3000171F26BB3AC236BFC24689BF8067C7E36B +:106C40006EB5417E9E2B9FFB01DBE7EA7AB99FEC94 +:106C5000B576D0B39723DC575BD478C24B84DE8BF8 +:106C6000DCF94210FDE20D6F02A9C1F30DABEBC7D9 +:106C700085A70E8FC36C1DEA687EB8EE4F6CD042BC +:106C8000A5A3ADA3D6C7E9475F4FBA298FC72DEC9F +:106C9000B8B53EEEE7A895D16772611E594146C26C +:106CA000CAD5F18E8479E9198003DCFF49AC6264AE +:106CB000C7EE98EC25BBB9E5E20A07D24D5E31A3D9 +:106CC000BCE0A4E08A9F627DADB0D38042289EC024 +:106CD000AA2BBFFE7A367D9FC7FF2A03A5088F1F08 +:106CE000DD35F3F059F0BDF4D6DE0CA3DDF38E37BD +:106CF00091E633A172208AED6897E27C26DC795018 +:106D0000C6BA67AA85D4F4DDB64186FEC3DDC54C9C +:106D100041BE4914ED89530FC6E378C3E32834DF3D +:106D200009732D0ACE6FC29D1F331A07DE53D5910A +:106D300070CBF2C5D3FCDF011946EB10F3CF16F38D +:106D40004FBF53CCFFE6C061CC4FCA33CDFF2DFC03 +:106D50002EFA059D913E8761FE19ADBDDF3CFFA275 +:106D60008874138CFBB6787F36F2C02C941FB172F6 +:106D7000EF7471E97D29BABCD3F59BA9DD16D53036 +:106D80000EBA0F56D61140D28C95DF6BD27386F6B1 +:106D90007D305E4DF290E8354AFB1E9D09FD419421 +:106DA0000F5A09F8F9A097DC0F1D669792DFA77CB0 +:106DB0009C04734E78C8A2E1BD0D66B9F7F8782639 +:106DC000F41523FDDB55C522BB0D71785D5F301BCB +:106DD000D75319809EAD68CF99F4D1587A6B849EB1 +:106DE00012FA41665A14D7F5FF8B9EA2C399C00CC4 +:106DF0007BC67FEFF27A9457005BB40FEE1CAF7244 +:106E00003E545810ED04DD3E003E24B8A70B3F2A47 +:106E1000BD92D1B9EE44E037F4E374BA1BEFE3F16D +:106E2000AFF13E1EEF4FAC04E965413A56851EE9CD +:106E300095B9DD3220F23E407219EC5E4FD1413AF5 +:106E400027802B48F25373351AC189A23D51BEB633 +:106E5000642FDAC16067635E6962D58A2DA8678195 +:106E6000DD038EE29176D963259C0EBB96029E616E +:106E70009EF58FC5919C689FA3EC46BFA4AFDC41F3 +:106E8000ED6D9D12E5B7B5C9BCFFCE0E89F2EB33AF +:106E900031EE0FB06AB7737A692F57226013437DC2 +:106EA000802D721BEC618147147794B75E04F61F46 +:106EB000EAB1B085F29F191B6CC6F849FB6C7E5E87 +:106EC00000ECB37CB4CFF6EBE77C84DDA7DA04FDFD +:106ED000093BCF8F75C46FBAB053753B90F5CB5655 +:106EE000182FB318EC3EFCA6D22FA39CDC737E6E49 +:106EF00032DA818F0B798A7667D36C5C8718978535 +:106F0000D24306BBD02BEC42AFB00B5F17FADE2B9F +:106F1000F0EE1DB20BC392D12EF4225C883FD8CC88 +:106F20007BE650397F1AF4FF5FE9DC1ECCC0F767BF +:106F3000A2DC8EA3F775FE5A21E6D1E60F1F457835 +:106F4000A0097A90FCA55E1A3F2904321DED4C1B66 +:106F50001F3FA94AE176A7C6E957E73FFFEA58FA7B +:106F6000DE9F123E8A7CD305CEE06E18CF5B15DB28 +:106F7000DE5658310FFD9CC4F713E8BCD10A131F2D +:106F80005E9FCED7ADE33F7B3523FC67FBC16F42ED +:106F9000790914B81BE9D2D6FF0CFAED99D55E95A4 +:106FA000E24AD0DF321BF399F9BAF648D179E87793 +:106FB0006A4BDD740E0737326E80FA4AF82EFA0DEE +:106FC00095AC9AF29CAF494F1144DFBF1EBFB7A2E8 +:106FD00010E8C2407F7965F07DD46B7EDEEE596D9E +:106FE0006124A76CFD327EDFDB9942FD77C89C2EC1 +:106FF00013EFE4FD13FDA116C6F50ADB4DFB1B6282 +:107000003D550ACF5F954918B09562BE49FE8E2660 +:10701000CC77F48439DCF4F565687C7D7BFC1D0E4F +:10702000B433BB3F4850D10F6EF30B7ED2383FE9EB +:10703000E355324EF76D3E2E17F6686C97260DC35A +:10704000E706D1AED7753AA8ACAA3E8AF0F22D7306 +:1070500013CDAFD0343A17E4FB3041C5FCCC1DFE54 +:10706000D0EF50CE6F9FC3CF9BE9DFBB9171BED0F5 +:10707000EBA82651AEDC50BDA209FDD23BE07DB4A9 +:10708000DFDAD47E19E33FAC97CB6F984214E967FF +:10709000E55E678C9CB821125BF79AFC8BB6C21335 +:1070A00014CF794CF06BDFEB7104878D551D0FA069 +:1070B0007DB95101B8E1BACBBA27E3BAAF48978995 +:1070C0009EF6005EE97C18E007E37B912276C90416 +:1070D000E8E72FE4710EBF1FF089F882B50AFC7251 +:1070E000F8AF06F81BF4920EAF447FD8916FE41B03 +:1070F0005BF828EAF7ECB09FFCF73625DCF443F4A4 +:10710000BF81DEB400E77F84B757C74F61451FFAE0 +:107110001389806FF41BC82FF50AFCE0BEE76AAE46 +:10712000CF0E58F83CB49F3854D4DF7D2F70B9B9D6 +:10713000A3933D8072B2FEB1579B09CFE7D7937DF1 +:10714000BDB1F0A04B9D3A3C5F5D9FEDB1872C65D2 +:1071500000AF15DB63E159D21975E17ED6B6EA17A7 +:10716000285EB4A368308876898AAA07E6A4FA392B +:107170005D035C22022E0B505E241602DDABC8EFCD +:10718000A195B8BF95541422BFC3D7609318E98B5B +:10719000C128E7B74C15E1E12D8E950317A65B6278 +:1071A000F8DCAB71BEF1FA39FE3C450ED5C8376A42 +:1071B000243932069F3BF03C9C81CF89EE6E403EE5 +:1071C0005746F275613AF7C346CA17C1DF6516C163 +:1071D000AFE16646F245A1F7FC3A1CAA04BF09FEDE +:1071E000CFB83385EEA1D829C6C3B825E77FB18EC5 +:1071F0006258C728FC0E763CC9A73C9D5EFC1D4723 +:1072000071DE5D306FE27F33BFB26AA22FBC5C8655 +:10721000FA0BFEDE5E0CFC3D0AFF9BF9BBDBAFCD3B +:1072200073A1DF0270C273853BFD5C4EEFC03A7CF8 +:107230006FBBBFDA5109F56D285F94D3F377E5EAA8 +:10724000154757FC0FF0B7996E017F04477F9943AC +:107250001DDA3FD0EF55B1A03D1216F72C0CD23EEF +:107260004945238BE0BEF84685C5A19F19417EC0E4 +:10727000F86AD5C1A318F7CC44BA86F5660AF9E9CD +:10728000D174BA8E4A74DE5EF0A98EA79BAAB97D2E +:10729000795319B7FFB61556B8284EAA845D88FFF2 +:1072A000BC3B2DE4F7E6F9C3CFC6E0DB167659897F +:1072B0001EB87ED8E91F7C16FB77ADD6E91AF40319 +:1072C000D455A4AF1CA4AF8E26EC3F24FF19D003E5 +:1072D000D297D0576007CF47FB2A637D4600FD7ADF +:1072E0001DBF3ABE37CED78E3AA07D3BBC5F17C0DC +:1072F000382EC86BA86F033E22FA500DF8CC457E9D +:10730000DF4D7C938D49410AD27F64DE0D48DF4812 +:107310007FC437DC1F41786DE571245A5F6621D741 +:1073200047954557515CE50EABDC6F015896FCE57F +:10733000CBA093EC2C37DDCB7368E0E320D2730451 +:10734000C68B0FA05DFEA2ACCB25B4CF3287E6F191 +:107350004209CAE11E216F6E12F6B10DE9471A49C2 +:107360003F780919B6EBF465B6E3DB3A4F109C356C +:10737000A0973CB41BCB5E22BA8079BE68015DCC7D +:1073800056C7DAEF6D4516B26F7616F3FD8648F1F3 +:10739000E0535F13DF333AFFB93F657001AEAB6B6B +:1073A00015A3FB6394AA5E09E576561953B93D19F6 +:1073B0006BFF2FEF8CA5E7ACB27EDA0F53D1C12F54 +:1073C0001CE90FEC78ED57144FD8B83E3E80F0F52D +:1073D00099D6A3685CEEE445B85DDC57CCF5D8F6E9 +:1073E000303F07A27646299EDF5E6319CA2F647A72 +:1073F0009E00B49F25FCB71577D5275FCE28EEB049 +:1074000000E15DB1CBCE30EE60F677CDF6D8729369 +:10741000BF5261AA579AEAE6F903FF927F31C7F497 +:107420003CA1DF42F7F9259CC61F425BE4B0572C14 +:10743000CDC2EBB83E5231785FC71FE6266258A135 +:10744000F0F9B9DE30F703683F246FABFF32DC0F91 +:107450003920FC1FDD5E37AFD73C5FF37ABE2D3C91 +:107460003C18D800BDB6090F49A0DD2FF8D4284735 +:1074700087EC8009BC5E6FE087C77DFA7BFDEBD1AE +:10748000AF68BFC042798FBEA7176F95B8DF700D88 +:10749000EEE3666B36CAEBDFA3C703857CDE6118BB +:1074A00017BFB3538C7BB549EF8DAD6F410F22BD34 +:1074B0001672B9A5C3295BE37230BB88CB41B39F79 +:1074C000BB2D8DAFFB7C5C37DAD38A417F4D4038D2 +:1074D00086294F2B94AEC4C02553C065FC99C28B3E +:1074E000713F201B268372F04CD77FC21F6B6FF851 +:1074F0008BB9DEF7EBEBAFD2E5365F7F5221D7EBEE +:10750000BABD995DAC51BC37BB8ADB65E6F5AB62B1 +:10751000FD19B08CCDE052FCA7C06306FAEF29C379 +:107520007ED8FEBA50F96879ED8B849FD89910A562 +:10753000FD483D9E92F0D00B31F11437C65312C76F +:107540008EA7ACB10E909E60209731AEABE7F1B73D +:10755000CDE279FC43FB1DD3F8FE0AC39B570CFB1D +:10756000754A81A57902944F66F8683EF1E75CF5AB +:107570002CE62AE78040267BA18C9FBF33CFDFB368 +:10758000A49FE0E4A9B1AA6F1AF2CEBA562FAE4377 +:10759000787FAA3192476A876441BDC396B000CF15 +:1075A000EF0D494B0CF14C05981CEFF79C0F25CAC9 +:1075B000FF9AECF0AE74985C7C615CCCBD9F9E1A27 +:1075C000077DA74DC4E5F69770B806FA6C1AFADF86 +:1075D0006DF929BB70FFBAF40A37F783E67877A113 +:1075E000BC6C14791CBB1263CFE976C685B6523CDD +:1075F000FC5527DD53C78A22B2F1BC4096CF3588AF +:10760000F97DED738E9620FFE5315B00F933AF7A9B +:10761000F4FDECD7D2E5A1738B3C7E1DB48BB8B6DC +:10762000C518DFBE6F2AC87143BE54BCC863A03FF3 +:10763000D4C7C5CA2EA4C340DF9B3ECCBBE82A4EAC +:10764000C7F46EF68AE0E7A1731B33383E757CEF12 +:10765000E9E2F8F62C196418FFF085DDD5B4DF29CE +:10766000F09354DCCB703CAFC837CEB185084F1BCC +:10767000C1A040FC76151F0CA29FFE299ECF83F768 +:10768000D23B76D539BE016F3EC41B2CF962C41BB8 +:10769000CC37BE2C165F80C757108F3ADEF4F33C10 +:1076A0000F0B79D0D67A82F6CFDB8A1C4427017182 +:1076B000AFD9101CA62A945FD71B2D2DC0FD07CF74 +:1076C0000C2FA98A2F841FB1C6AAD0F975F67D4B5D +:1076D000CCF995F639B1E757E28B9AFA313FCDB341 +:1076E0006460747A2D5B4CF4A0CF6F649CDDB04E67 +:1076F0002B8E67A24B99E73924761CD7ACA3C00B1D +:10770000E0F045BA21AF6A888E03B6F948471D2FCD +:1077100046CA51BE316DCACCB80BA01EFCB80CE9EC +:10772000B29B4D9C89FC9726F224D65843D242E264 +:107730007336B887E3AF04DBF704E541F40F129624 +:1077400084EF5EA10EAF0FF35671DF3DBEC86141FD +:107750007AEAEABC8DEE2BF8B4C841BB89F1C5FCCE +:107760003C8F0E1F7D7E5EC18FDF15FC38820F655A +:107770009E3F9120E224091DCF07C758775AC6289B +:10778000EB8E7F91451C33409E4DEB9710EE99F99F +:107790002FD07E4E428D6554BEBA21C3C9E905DFA4 +:1077A0000327A14DC4CF76151452DE5492E47B9E7C +:1077B000CE6FB5723B6923D00DC6454B32747E1136 +:1077C00074728B25865F74F96896872CD0ABEF377F +:1077D000535EEA9872AE0AE8E61BF6B59204DDCC79 +:1077E0001F138EFD4437DF00BF920CCF48F8E9FB32 +:1077F000393D4F0FD0793F55DBEEC27B9D7A7E7CC1 +:10780000557D1CAEBF6E27F9218D5E59D00D0B5AE8 +:10781000894FD8A8EB4FEAD4E81C755291E338950C +:10782000854D74AF2B88C23E846342C446F17C7D93 +:10783000FD0985FC1C6E0EF8C368E7751572FED154 +:10784000D7A3CFD7BC2E5DCE5F27E485619DD7E35C +:107850003A59B1013EB9C3EBED799A91BDCC24B947 +:10786000DF0AFC91144875A17E7775BCB305E30D62 +:107870005BF31D018C4BB4063F263F6D67A585EC7D +:10788000C186ADF336D44DC4FD1085EC7DED467E4A +:10789000CF45AA2398264D189EA72AF8EB74F9BD68 +:1078A000FF91A1E719F3F847A229BF17E189F3482F +:1078B00014F9BD878FBFECFB09CA2391DFDB7EFC87 +:1078C0001D1FE6F7B6CD796C0A96EB2CBDBFC3FB46 +:1078D000AFB48336CA977CE6E771A4B76ECB8CDB76 +:1078E000653C57BB577CD75BB36F3BC2E344ADC627 +:1078F000DEC8C3F830FF8E99EE1ECAE071E07D430A +:10790000F1F1FECD87707E75D325B41F61C5AB78CC +:107910001C7E520ECA857DE2BECD132D7F624B7157 +:107920009F7216B3284923C76D9BC5647CAEC349BB +:10793000EFAFB7C37B36E37BD03F4E99616CBFAAF4 +:107940003C68D0734D7E3FC117D36DF01EB72489BC +:10795000F3DF5E1D1F1774B01F033C5AD22C118A2F +:107960003F863EE2E7592F92E95E3F561C7B0F5B54 +:1079700012E63F83BD9584F9CF3347B6B7FB0FBFFF +:10798000125511DF2ACFE3F2CD1CEC83B6A6A2DBA1 +:107990000237A84678F1F9B5CD99B41BE777C2AEA6 +:1079A000AEA0FC9159DE1C9C870EAFF6E6E737E3EC +:1079B000D1F281069830D0E5BD625C1D3E7ABB668F +:1079C0004DA776CFE7392C68B8076D9CD8EFF1CC7E +:1079D0005D4C79089ECF27527B5095245BE1F03DAA +:1079E000345FD8C3878D72C0BE2418C57D62DD0E9A +:1079F000D2F349B56E0BD191196F9F087876260E98 +:107A0000D10333E6D9EAEDF0E5F928277C558CE27D +:107A10007C5295D6F724B71742B8BF7EEAF50DB170 +:107A20007941655A08EFAB5924D661CE131AB25387 +:107A3000AE8E953BBA7EDE2F71BF469380FEE1F994 +:107A4000E6EAFA64BCBF7C4B74F1E4A7E1B5CF84ED +:107A50003DEA39AF7BD14A95EC510DEDF6FBCAF802 +:107A60007D3E23EDD190655439DDBA98CE7D7F8A75 +:107A7000B905D2D87ADA6CD72C10720AE4D3DF11A8 +:107A8000FE79CB47B747FF24F0F0FB0C712E5DE980 +:107A900067E25EA12F50FF0527D64968470DDD2B11 +:107AA000B43C48E7C0F4F786E0B48C8D6AC70CD9C3 +:107AB000EF5772387A99F600E6EDFA9E5A9C867076 +:107AC0003ADF2FE074EE0AD742467641DC68E7C819 +:107AD0003C4B3AA451E1D3F9EDE0A3DB07BADD97C3 +:107AE000168E2378E9700178F9FCB346DA7D3F15EC +:107AF000EBED59F404F92B3D20CF69FF84F5CB530E +:107B0000D1EF8ABCBD05E3515A2B0BE4217D17D67A +:107B1000A7DF88764661A8D0987F3AA17074FB7B76 +:107B20009D4FB7BF83227F442F87ECF151F3889597 +:107B300031F288EF12FB71CA1C9EE79998CFEDD401 +:107B4000C4A93C9FB7376AA1BCD9B6AA90C76AD06E +:107B500013D57E9ED79B51E3E079AC05B1E7EF7E6C +:107B6000E88FA3F68BFC5C4EFBFD9C6E30DFD5A846 +:107B70003F817E4AFDF03C98BAB4CE6EA49F30D0CF +:107B80000F1B86E710FD9C13CB67F7B5E9F41319BB +:107B9000CACF46FF30B1A89FF27C3CC077C8EF1D2A +:107BA000D117F2918E6EF4E7D378091BAF6AC6B392 +:107BB000AB3B7EE4481EEDDE29CF124DC2E73A1DF5 +:107BC00029C130D115E089E848A966945FECEF48F7 +:107BD000E6765721B7CF753BC15F1D92787EEE37B1 +:107BE000F39D32D29F581643573E71AF8B805F6F23 +:107BF000F40599EE072912F928732D14CF1BDAFF2B +:107C0000B6F7CA185F682D1A6046BB0DE07C0BC141 +:107C100079E2A2921838078341A4BB657E0EE7245F +:107C2000C03BED8B8A7113A71E9431CEBC810D52DF +:107C30001EBB56C4CF3DF402BD1718E0F6B638DFC0 +:107C4000E1457A203F83D1BD66F047F7BDBD23CE25 +:107C50002FBC63C6E718F69A591EF85898E48117A6 +:107C6000E501B48FCF14F26076936B21979B63C8C4 +:107C70008331EC5A6DF1379E3337FB7D096523FD67 +:107C80000384D319F8073BFCA3D8B73310DEB3F055 +:107C9000FEFA1564F7B549E02FA7625CB67F731E44 +:107CA000945DE75A282E0B7094302E482971B45FEA +:107CB000D25187714E5F238BA2DD7E6126E7AFB67E +:107CC000E7BF4823BBF0ABE7D3F0DC4FFBEAA612DB +:107CD0009433DBD7B2309EBBF455BF4DFED6E43AA9 +:107CE0001BDE35C4DA11BEA84F678978894DAB43D6 +:107CF0007F20012C581CB7F5732BF91F69855A1F7B +:107D0000E261CE792012E7607DE02ED47B09AF7569 +:107D10004B415C6F903539D3C88E0ECA3379999C2C +:107D2000C2D8ECCC099CCF5E0B59A8FFB1EA528CAB +:107D300033E9797E09B8B2142A8F60A9C739129045 +:107D400085611CDF398CFC3622213E6E14CB2DB3AD +:107D5000E1397D3F6C51B0FD3535A8505DA1521F12 +:107D60007FF36CFEBE0EF7DCCCD8F347BEE5A3C7AD +:107D7000993A2D81FF42FF53FB09B757F538ED0FB4 +:107D8000F1FF226F02F1A1E7C7BEE5E7F9B03BFAC8 +:107D90005F48C6FBAE87F32762F366F57CD9DBC785 +:107DA000733B373393E31FD916F3237E2BE26A5ECE +:107DB0009117A3E74754A7EBF7F8C5C615F5F8EAFE +:107DC0003231AFDB857DC2E468077EB7BDDBA2A0A0 +:107DD0005DE77DFAC4663CDFBC2F25F22ADED7A81A +:107DE0003DC8F75B992D427117D724B7C81789F59D +:107DF00007BEF4C7FA0123EC7FD339CCFF2E7F8076 +:107E0000FE0C76B32D93CF43F707F47CC116FFC168 +:107E10006351E40689DF0FAF6572BBD09A5DB53E52 +:107E200097F88FDF57B9CFD67B0CF336F7F9A70653 +:107E3000EAD4617E6B17FCD63EE7A528D9BD354C48 +:107E4000C17BCBC69207EDE507691FD95D6559EA8D +:107E5000E0744CF1FC5FDE9BDD8AE7E787F457EACC +:107E6000903DEBCF34D09B43E8339DEF87F025F274 +:107E700067743CBA4BF8FAF71439227528F7967FE5 +:107E8000BBBC3890CC97E0FBEE872C8CEF2BC6B6B2 +:107E9000BBC5B96D733E1CFE8D960747797618FBFE +:107EA000D7F25BD1AFD1CF69DFB135BF552B4638A3 +:107EB0006874CF0CDE3D4B71DDB1F85AF0EB337EC8 +:107EC00055C88558BEDDF8CAC066F27F4158A0FF8C +:107ED000BB7196231DE1BD5FF4F769DE52E467DFF5 +:107EE000B18E52B4C7753A180B5F7ADE687759BD08 +:107EF000B4B090F2C607D19EF70E364A9793DC9243 +:107F00000731EEDC85765BEAF0B90B6F3816DE33AD +:107F10000E99E15F4778EB9283A98B90EEC29CEEBD +:107F2000CE3916DB6F7ECED3A957C0B8BE728BF8A0 +:107F30003D11F19E1B54127EAFCC467AE2BC7763B2 +:107F4000DF1B9EBFE8AFF0733A177E7E9A7EA922B0 +:107F5000DFCA34FF8B64F33EB4E8EF0B7AAE4C1DFE +:107F60009EFF777DB1FDCA963EEDB97AB4F9FB99D3 +:107F7000B7AC7078FE97E63BBF795E2A9FFFF78A21 +:107F80004ED36FE2E8F3BF62FE18F3CF0F2DC0DFD0 +:107F900089B8BAEC34E3DAF8F7BF5FF9CDFDAEAFDC +:107FA000317F471376F61874C4D64ADF33D111D126 +:107FB000C3B7A6232D75B1818ECCF4B0B0C04EF4FA +:107FC00032928E04FE041E4E4B1F828ECCF470A69D +:107FD0007464A68F613AD23C5719E8C84C0FD7DEBB +:107FE0006A2779E62B67BBE98CEF083AB2D0FC4FE1 +:107FF0004B1F828ECCF430928E385D98E76FA6933B +:10800000FF71FA50D6925C31D2C7E27F893EA2A9B5 +:108010005718E8C38CE750C9C5440723E943E04536 +:10802000D0C769F12EE8C38CE733A50F33DE87E9AB +:10803000234A72449FBF19CFE1BAB5C9DC4F1AA2D7 +:108040008B33C3B30A78769F39FF9BCF7399F1FDC9 +:108050002FE3595D4B7C6FC4F315FF923E01BD6069 +:10806000C0B3195F4B16AD257C8EC4B380AFC0F38F +:1080700069F127F07C5AB93D069ECDF81BC633E363 +:10808000FE5A98FB1366FC019E5DB178FE76F83BC4 +:108090001D7F9AF17B3A3CA63A63EFB7D2CBC55924 +:1080A000DCDEBC040D6DEC173F7ABFAB45BF4DC2A3 +:1080B0008E4F4D1AFD77A6AECDE27EC7CB7ABF2C90 +:1080C00026E2907C1EFBEB7B2BD13E9A65DD94B6BD +:1080D000D83D725D5B248BF89D860EC918CFBC2DF0 +:1080E0008BFB7D3DB560789F35FC7C7BCD009D0F83 +:1080F0004ABB73B00EEDA7EC9A14161C056EDECFCA +:1081000027B0E0D9C6EF45E87BFEF230ED57793F66 +:108110009F44ED3DB5328D8FDF47FF7AE4F8716300 +:108120008C9F769AF1FDD43EE23E25EB42BA27EFD2 +:108130005E6C1AE5BEDFCDB5918E46FBC8E77AE9E5 +:10814000FBF88AA52111DF96C19EDDC2FFCBAC49A9 +:108150004FFC15FDF32D65DE1C8CDBDC9ACDF1E7C1 +:108160004BE4F629B305F211BEBEB88E3ACC6FF5DA +:1081700094CA01CC176B4828F2D13D25CBE7C6DC69 +:1081800033B2CED241F7290E9F63ECE8433FC46A75 +:10819000618314B737F59F99CDE9A041C4DFBD35A0 +:1081A000D6ED780F66FEAE2512EE2FA488F9C81121 +:1081B0001BBF27150103FC3CED3E87A8376FACB40D +:1081C000D13D9FE21ED5D5DF437B9CF247C01EDF29 +:1081D000DBB37A23FA219B6B03D21B06F8F8D8E8AD +:1081E000FB27EF657DBBFD96DC6CB15F21E6DFD53B +:1081F000FC7DDA6F8A5895DBD8793809BEDFD25D0D +:108200006EDE6FF93EADAFFBCAD1F75BBAAE34EFAD +:10821000B7F0FE7A3BBC17B3DF02FD63F65BCC65BB +:10822000F79521DA7F19B95E11FF17FB30144F5112 +:1082300071FF8505F07E9EAEE7AD817A8667FBBA59 +:108240004A303FFCD3A01CA03CDBF9213A5F6FC64B +:10825000675742B784FB36DD75B64109F06FBDA69E +:108260009BFC202BD003FE9E9FB93FFBF26B3A5F35 +:10827000452288422340C7B2981FFA5FD7A688FBE1 +:108280006942927E6E6550FF5D9E1CCCDF6DAAC375 +:10829000F34C8D8C558FC373CDACB51FF3953C203B +:1082A000F78C71E9213D650FBD029C3674BF48D73C +:1082B000F9B1E7373F11F0189FAD9F630B91BF678E +:1082C0005F72F4188E6BD7EFD14BB5C5DC57D480F5 +:1082D000312894F3B77139DF9517A5FC8AA88BA5CF +:1082E000D833E87760827CBF43D6F370E877DF321B +:1082F000041F76F5F1DF33E9BE8B49F8BB15FB525D +:1083000082F5C86F9A858570BFBFFBEE709A2B957A +:1083100090B3C88EB2321854530DF73475AFAD4ACE +:10832000B3723A2B403E6EA8E1F768757FC5289E70 +:10833000D5BD548DE03DF369ACDF85719289658EC2 +:10834000A885CE8798EE0512F01E8B8E86E0280158 +:108350001C73088E820FFF83F8AEE17C5EFFB0676E +:10836000C3FFC17CBC62163886F3B2BB1D94D736FE +:1083700016FC86E0EC0638278EDDEF135CBBC7B831 +:108380005FC7CFEB774BEA6D785E45DFAFEBBE3270 +:1083900076BFAEBB59223EEB6A9652904F74BEEA4E +:1083A0006A5EBA85F6E92C59B44F3736FFF075FD91 +:1083B000BE67F5F7F0F7D586F78B7BA72C9E362C9A +:1083C00057D3046EAF1272C199ADCB5707FDBE8172 +:1083D000F93D7DFCB432C7715CB7993FD2C47D4E84 +:1083E000693E7EAECEDC3E2F9BEBBBED593C1EA61C +:1083F000DF57B53F97C7ADBA5EB2F2FC7511A7EA79 +:10840000BA92C7A9CCEBF39AE256DEA1B8D5D569EA +:1084100018B7EA1671ABEEE337A461BCAAAB9CC7F0 +:10842000ADB667A9317AEA4CBF3F042F41BFCEEC0D +:10843000EDAEB0FB5F9F87DE7F5F4AEF5FE9BE88EE +:108440006B443C4F01BD85F82ACD0F8CA67F4E07AB +:10845000DFB942FFCCCB6654EA7A76ADA0C333E5F0 +:10846000175D6F3FEE08DD918DFAA58CEF83D42266 +:10847000FC6619E41CE85B927367382EB3DEC942D0 +:10848000B0BE4F5EB446C88F34C953FC33CA4BAD3F +:1084900054ABA3FBCD2DAC7A933252DE7A58E9C6A9 +:1084A000F908B7FC9084F73034E4D848DE9BE569DE +:1084B000B3BDDA89F7F836D686B6E0FD50F7034C3F +:1084C000F0FE991AB74CFBF58DE2DC9E96C07F0F4B +:1084D000CD3CFF6772395C1F4C0E97A35DB25F5AAB +:1084E0001A9327E9CEE174FD0F017F56187271F9D6 +:1084F000DFF802FE0E4F53B185F2D29B8AEBE54BBB +:10850000609E4D5516FCA56BB6CDB7D885FB865A37 +:10851000B545C17DC46DBEFA17F07E6F6DB945C516 +:10852000DF293FB2BC82E2A25BAA2C67231DCD13D8 +:10853000F7996F55F87DE6DBAA2D015CB7A6B869FF +:108540001F727B35CF2BDA9619E0F065C1CB0BF4A7 +:10855000F30AF077E4E6CF18DEE316F1F1DFA76D5A +:10856000D35E50D0EC9BB4BC348ABFC3A11639157E +:1085700055C1FB5F8351DA4F0FCAA128D4DD5AAF32 +:1085800086FBC0DBA4C8B3181FD5CA2D741F4ADFF1 +:10859000AE79D13FA3FD50164FE3756B07D3707DC5 +:1085A000CE5D36DAE57845F0FBDE5D8E74A49F6D16 +:1085B000BB9A281E98501CFB3BE67D758FD1EFA01F +:1085C000C407629F6F2B8FD07D344E66782EE29C5D +:1085D00051C3EFDD3DB3F2A884BFFF6033F5F387ED +:1085E00099857E5F4173D3EF20BF08F3413ED96B7D +:1085F000095A503F69AF4BE4A7DD6FD79C467CFE1C +:108600009FA95C1EEAF79AE5E75842B83FBA56E8D8 +:10861000619B9B9F4FD7F16E2E739BE77EE3EF8AA2 +:1086200078E42BB618EF63EC12F79EDA947E8B0297 +:10863000F0CB784429C083E11955FC5EE3ADB3B2B9 +:108640000ADCEA301D6EED7B600B9E6FF13CE4A608 +:10865000DF5FC17C3BCC7363E3F8BED5D195B753E4 +:108660003EDD6D573A2C4827A7FEFCB246F6D152A4 +:108670003FE5590ED1ED129E479550931A98087612 +:10868000AC5BF50626C2BC6C358E00DAB5F31E9ED7 +:108690003A7EE01BD6D15AAB0426D2FD7A72602214 +:1086A000F050AB80CFFF03FCEEA62300800000005B +:1086B0001F8B080000000000000BED7D0B785C555F +:1086C000B9E8DA7BDED3C9CC4E9A844C92A63379D2 +:1086D00034499B94496931E5A4B81B2A96873A2D01 +:1086E00029A68A38A9A5A690E2143C877244B393C0 +:1086F000A62D2D25A48FC4BCD0496CA14F4CAB2016 +:108700002A1C27A1780B173520287250D38A7C4762 +:10871000EF399EC001E49C5B8FF7FFFFB57666CF13 +:10872000CE0C690BDE73BCDFCDF7F5DB5D7B3DF670 +:10873000FAD7FADFEBFFD72CF8E6F5BE751EC6FEBA +:108740008C7F1F66CC1B9018CB49941D5B6675759A +:108750005C9628DBE6C8E1581583BF78DEAA8CC496 +:10876000FB53A2DF6E89358E18C633D7B3C56ADED8 +:10877000F26CC60636DA955D01C696677EDB7FEB46 +:1087800062C6065BEC8A03AAFB37FD70E74D50AF6B +:108790003D6F616558DEF8987F8361BC8134E35793 +:1087A000E3F84B183BE4D7FAA51074D41EBFE1B927 +:1087B0005A28BBB47E8665F6182F4333760596BFDC +:1087C0007F830A701CB2C17FF3199B1F68B941C334 +:1087D00072A6F62959616CB6E3C8BE537E28976924 +:1087E000AF4850FE4C398BAFC0FE41DEFE23E53969 +:1087F0005DD4BE9A97AF2DFF01F51F407860FED67D +:10880000213B7E840D0C756431986F4766873F006D +:10881000CFDE9A781ECEC731B475DC09E35B25CD77 +:108820008FE56762B784575C81EB51FAD59B703D49 +:10883000C66D215C8FC1D3DBD63218EF2D581F06D1 +:10884000DF1E9813F78753C0BFAB352FB41B16AC90 +:10885000139FB6C4FB591579A1634E9A0AFB33FCEA +:10886000F3D5269707A4B89F017CEDB1F561EB52D3 +:10887000F89E2DDE87F3B923B02C6C85F90D66C404 +:10888000FD08FFBAC0125ECEE1F0C28A8771FD0614 +:10889000FD02FE584558F34C9FC7806DC41FAA3A8D +:1088A0008F798876170B47BA7538DFEFFF3FDC7F8B +:1088B0006DC83373FF6704FDA41D27787EE3BC5F9A +:1088C0007CFCFFFDFFB2FDDB03C5C48767C607461E +:1088D000ED3C328B20BFDD965DEF6CAA4A8C33569F +:1088E0002553BD17DB2DC15E2A0B833CE86DBADA38 +:1088F0001981F683F7C45CAA85B17B631D59D70241 +:108900003F8B45E410B2DE41A53D2B08E5EEF53284 +:1089100093A06FDF398B3B08FCAD2F2A2BED50EE77 +:108920005F5FEFC4727F0B6FDFDF20AF8CC178DD3C +:108930000DC3AECF19F85E7F94BFEF6F1EF36F309B +:10894000CC6B10E503CAA77B6046304E4F6DF1F04B +:108950002E2951BFA282CBA1C14DF5CE79308F8196 +:108960003A99603EB5F99DD31F86F6837572C001B2 +:108970004D4ED58DB9CAA1FCC04A39E48079CD13DA +:10898000E5FC95D65000CAE5D809CA85852C16079E +:10899000BEBCC031E2C2F11C0532D3A03EB399493E +:1089A000D86F545947E3F6E7F171B73325AE413B31 +:1089B0002D2AC70E42F9EA6FDE137F10D7A7D6A182 +:1089C00038484E315F4D2EC81FFC1FAE2D8BC69F01 +:1089D00084FA59AA33BC2B84702F928A16E378B09C +:1089E000B821DCC720C133D07247FC97F07E5BE32F +:1089F0002C66017EDDAF9D5450EE645D6F3D3B61A2 +:108A0000D857654572D966838D837EB61A7B4C83B1 +:108A1000A16631433D941DA6F2941EA03843A515CE +:108A2000897132424A52D92C9F3A5A1F67BF31E0AE +:108A3000A115B667A46A7ABBEF235E113E8DF8C319 +:108A4000205BB7B0E8AFBF0CEBC7C62DA183B01E4B +:108A50001DCEA77A5F037DC4EAFA9FBDAFC122E5B0 +:108A60006C993588E5E34135AF09E0E8F99827349A +:108A70008CED5AC77B3B00FFB7DE6EA77DDAFA713B +:108A8000396641D9CDBAD8DDD02E6B8E1CDB056599 +:108A9000CB0D7B020C96D2658956B012C6F63235E4 +:108AA00088E59A20A7934C167A6039ECD3E9473EC3 +:108AB000B5F61618E78E8FB9091F2EF9CC0A5F2478 +:108AC000C5FCF567B6B364D0A837ED3FEC6C8CA558 +:108AD000687F8FA0A3C1A7636B3D307EBC4D52A4BD +:108AE0002BA1BCF92192FBFB577B18CE7BB683CB25 +:108AF000E5C78E0D7671393D7E04E5761D5BD6B3F4 +:108B000072196347AD1C1F630D7C1F6323562A0F28 +:108B100044EC3109CA9D2D277F7F04D7276C0F11A4 +:108B2000EE627BA4C34DF362481FFB65D68C74CE06 +:108B3000AC23FE55B0EE278EDB1B91BE701F50CFCD +:108B40003B2EF42E66D5FC8DD5067DACE921BF0AFF +:108B5000EF0FADAAABC0F93D397CF31E570D8C8BDE +:108B6000C48B7A8256B91FEB4FC892D0BB00DF404E +:108B70008F1A41FD08CB5ACF4B2B4A015F25E532B6 +:108B8000ECBF66E8FEEE00C077C4C5A8FEDF8E1C11 +:108B9000096B85D01E951ED23B6EEB5E0E733F5166 +:108BA000CF44FF1FAC510B717CF13DF893015F4F37 +:108BB000D8453D3BBEA6B90EF6F3AA78316C26FB2C +:108BC0004215D3D6C3F78FBB79FBDB8297F768508A +:108BD0007F24536F2FFD14F59AA3ABF5F9B5EF552C +:108BE000AD34FFEB2CD0A6EBC0437B3D4B8DF3BFE8 +:108BF000F105B594D687CA5F1AFAE4EA76E83FDB56 +:108C0000172B56009EA6E0CB6BAC73687D75F835CC +:108C1000E6C4FD9C2AAB4E006D7E51AC98C1BA7D76 +:108C200071C1F7087EBDFD978E8E8451AF34978F4A +:108C3000A7D183BF59EA22FAA9B1B0B88C74F3392D +:108C40007BEC6090AF1F960B22F643880F05564EC3 +:108C50007FA1D16FBB6E35E0E58EA09BFA673B58D4 +:108C600014EB1F9F38E96A327CE7C9799C3E01BD4D +:108C7000663D0DF893DF6057DA801EF2C337AD45CD +:108C80007CF26A7626C15AC8B5E38BAAB0FEDB1E19 +:108C9000F651A88F6D0CFB198CD75D3691A7C0B328 +:108CA000B3693B957B338EB90EA2BEEF925819F291 +:108CB000E3C23B4EA37CD06AD785CA52F0919FCEC7 +:108CC000B3D0F73B5B16853640BB1D1E8F824B7FB2 +:108CD000D41A6AC4EF1FF5D8150D5E64CBB17CD4ED +:108CE0005B8F0EFDA4AB03F6375BE0C3230FBFD44D +:108CF000857A6AC7CA932E09DA7736023C481FE1A3 +:108D0000C8CE79483FCD9C7F2FB1587661B9F31A10 +:108D100099B51BE6D12949B4EEFB9A8B57217DED1D +:108D20005B992D31837CF94C19A7E7A9F5FF1B3B13 +:108D3000F17916509D0857E7B6EDA15D018EA79E0B +:108D4000CB1973F3FFB2FD40B69F437925B1E830EC +:108D5000CCBB438981CC656CE8ED854C033CEACE05 +:108D6000E0F4EA5EC86208DFD0C7BEC736A0BC0226 +:108D70000141F60EE3FCC3A381EC4779238DC45176 +:108D80001E69CB9D93074388DF316A7F64B933BA8C +:108D900055417B6B98A11CE93DE763C84780F330E0 +:108DA0006C0F9F19DF056577959D050CFCDCF3EAD8 +:108DB000EFFEC4BCF064F0DE200F34012FECF8AC01 +:108DC000A7617C5F2323BBCEF7EAACB8ECC5E7A66E +:108DD000EBB19FEFDBA1CFD0F355D7197CB23AC3EB +:108DE00038C06A3F56A4BE10E4EB164D25177ACA68 +:108DF0005CF41DA08300AE837605E3EB8A4B9B2BCE +:108E0000A600DFED7D74428BC33CD4A0352AC17E21 +:108E1000E7B49C6588272CE289F8F2B05178F921F3 +:108E200028CF519D5194A7DE06C33CC45E5861BC57 +:108E3000393836A906CA755588077F272FDA454580 +:108E4000BE0F9D3D01921F03215ED67633A233F300 +:108E5000BCBBCAED84AF53FC13E610877DCF47FE41 +:108E60005BCCCB32CE1FCB80DAEDE59C7EF7BB81AD +:108E70001F939D3DE2B2C0F8B92DC559F83DA668D3 +:108E8000FED5C07F7F5CCCF5F50E601FA82F813E1C +:108E900041F2D1FCFD178B85DD8D7FF05D1FE3DF97 +:108EA000E994275939CE1BD6F35180A1F38A67FD87 +:108EB0004679F68A185F5F0F2FD3D7838F43280335 +:108EC000F2D2DB224B9FCFE6DBB01A60F1461EBB2D +:108ED0004BC2C6CD1C7F007AEDCF88228DC9EBEC4A +:108EE0005393F1CBCB0C6580B3647F727B1D2F6CE9 +:108EF0004A72BF39267CCC2CE1787202090BE9E971 +:108F00004A161B26B93FA97A903F45AC0CF1DB67A6 +:108F100065F7FA16315626E05C22F45CF3FACD2AA6 +:108F2000E7E399F19519BF6B995E3E9A25F0620AC5 +:108F30004F93EBBD4EAF36CB3B1DEE33C5C1A9758C +:108F4000D772C57ED1DF04E9D7FB33265509F77BFD +:108F5000390B1D0479E13D76965DB79810F34DC449 +:108F60006FA88FCFC7EF4A8CE8DE5BF79F8E400A71 +:108F7000BDACB684E3C5A1479FF007D06F61E37A2B +:108F8000B3CBB40EFB8A39FEEE2BE674BEE7545623 +:108F900025E259FD779E601AF2CB5F58620ED437F6 +:108FA000BE1BD88AEBFB0ECC0BF9A7EFB909E42561 +:108FB000307EE1727C9F1F0136A924C68526313997 +:108FC000EFFC9FDD4F6B6B711C5D3F9A56BF663B9C +:108FD000C91F5D5FCA8FCB53F215D1D6A07F68CE73 +:108FE0003AC227A19F2CCAACF724F48DC9E145AB46 +:108FF000501FA8B68CCF77C27C7BBAAEDBB3629928 +:1090000041FFD096EE5D5E6AD03FD882D56ADD7BA7 +:10901000E91F45AB8DFAC765E5A07FE425F48FBB5A +:1090200087EFDB47FA8D536FBFE279D43F663BD4BD +:10903000C34864573E3C42FADE7EBB3EFECA3DA8B2 +:109040004FE9FDAF2C5FB907FBCFFEC4137EB4BB65 +:1090500066FBF4769DE4DF9A8F70D3BC6B57E13CDE +:10906000CD7AC8806D6ADE497AC83F3EFC2FFB8C02 +:109070007A48F6C3B5AB506E9ACBCC39E2423D7D0F +:10908000A6FD1BB08EB814683F20F6E5CEE115AB07 +:10909000DA80E7D90E8D5F2B2D4CE85FF24327BABB +:1090A000DAAA70FD81DE53D0E361C1CFAABF618F20 +:1090B000A23E5D5FEE213AEFDF74E301B4AFEABF99 +:1090C00073AC6F16DA53BF586B43BC7CB8D84AF800 +:1090D0001BFB2EA7C7773671FD18FD2A349F479FCB +:1090E00093500F298CD955D477CDF3FE7A71257D15 +:1090F000CFFC1E766CED5836CD83A1BC3BDE1ED96D +:10910000184E21B71E17F3ED68850526C57B44C2AE +:10911000F5DAA7A82A7EB7203BAC31E26B326CC0EF +:10912000743AB5BE5BC0D4D9897256A6CAB0BDF533 +:10913000DD227ABFD615FE5E318CDFFF586D27A089 +:1091400025EB9705DF99C7F53E66EDCA437DBEB5B1 +:1091500048FD87625887B7EE5D5C8172279DDDD23E +:10916000D11AEE43BB69AA6C4BAD670ECCD5E1E2D8 +:10917000761DB3862A903FA118E3F8B693FC835B73 +:1091800005BEFCE0D84EF29776803CB322FF6A9190 +:1091900015E28B80E3DB419EE412E180FC96E2AEB7 +:1091A00020CCFB4F41AE6776CA1387BE81F0DC61ED +:1091B00027F9861B201BE4D8D43A15CB29E515C81E +:1091C00027D5058559C5015E2FFA4FC92F21AF8ECE +:1091D000B745D6A6DABFCB05DFDB9F31A14A8B139B +:1091E0007CD777ECCD24BEEB3D266B8E85D3F9ED95 +:1091F000FE0C9DDE027B54CE5F697DEA4A027B90C5 +:109200007EEEB270BD8D6D65EC208CF7C762B077D5 +:10921000510FDE34AF06F9E871495B3B0BD7ABCD9C +:1092200043F5C801DD50CED57C6C1794FB36F6BCF7 +:10923000B101DA1DACA820F8FAD6F504D1B4A8180B +:10924000CAAE473CE889C8872DD274B8FCEB6312DC +:10925000CA7BFF164BE035839DDA17D9DB86FDDE2E +:109260006E61A41717749D18B5E377D733BEFEACB3 +:109270004B6A30D87FF9B0C871F8F4CDF044F9C525 +:109280001ADD2C6E90935BE6467C254BF03B76FA1C +:109290000E5B1C21FCD7F9E99D072E7B5E43FBCAC0 +:1092A0000DF48376A29D3FF5F1734BF8FA17083A57 +:1092B0006ADBB6FD9A0C943B128B39F0D924E71F78 +:1092C00087676F03F7B777FF49227E30B88CC5DA1E +:1092D00049EE4E925EEBED6071D4F77CA726480F05 +:1092E00078642B7CB496CAECF350FEC40E16C1729F +:1092F0006FF41DAAEFFFAD95E495B7B967B54CFBC8 +:109300009AAC77CC24FF75797DBE729F18720A796A +:109310004F7A04F1E702CEF7DB78F9B7C505C4F759 +:10932000CDF25A7FAA821EA03FD72315B5FEB7689B +:109330001FFDAC64C8E80FBBAE84B73B5ECCF957E9 +:10934000EEBB60B8E03EB1F175F765733C44FE36A4 +:10935000B51F0AD88DF0BDB133DFF17F05D7FD7899 +:10936000FE22F487F49ED9E197508F687A6C3E3ED6 +:1093700077C823CF921E72D21A3AC8D07FE2263F16 +:10938000D31D73DC430E839E7CB7D8DFDC2D47C929 +:109390008F73B65563BF294B7CC70CD71B551C0F69 +:1093A0008EEAFE0A36D2F738D24BDB426917D14734 +:1093B000E076DCFFDEA67941D4978FDA39FC677757 +:1093C0007D5F42FF65EF26262BBE14FC6C1373E213 +:1093D0007B7DBDF4F67A3DF4B31AFB417BB772A9ED +:1093E000B17EC35AB54A6C1D7C7F7B6121AD330BC6 +:1093F0004BCC83FABDB055EE167AD7D12BB91FAA44 +:10940000C72FC7DA71FFC3ABDA6E41FFE155CE104B +:10941000E2296B58A14E18E828A7EBAB6C4B16B7A6 +:10942000136C59D3EB7B0B8777E2303596C8BD6858 +:1094300067B2B932AD7B6F44263B7D7B0B53102D59 +:109440007BABD92BE8AF6481E8E428DA7F9BB93D98 +:109450005A60E565E6F150BF589B7DF6F50087E35D +:109460000BF215D84F87F3BE1237CD3F9D7FE04FEB +:10947000C29FA597FB5BE49528A781DEAF237EB44E +:1094800054CD46FF438F6D823D2DCA1A8CFFFB2AB7 +:109490001BE1A15C3BA14D54E1FB893C96821F7707 +:1094A0009645FCE83FE811FE83C126EEA7EA6F1956 +:1094B000F3A37DBBC3737D362EF5561BB7BFB7B67E +:1094C0005D7DA04D4A8C5F63E17638DB612738C94A +:1094D000C78AFA42B546F6DC7E7B9CF4CC1EA0B36C +:1094E000E1C57C7D8D763ADAE5CD68974B81A8861B +:1094F0007672F871B2AB9F047D05F9476786F2CAB0 +:109500000128BB6F94158DF865F819E43F9E6699A4 +:10951000F484592D631AFA1540DC8FFB6AD15F1D64 +:109520008F3F88FCFD6E9F72908412B7D333D03E7C +:10953000A532B7D37DE7E632C48B6976B9C9FE7927 +:1095400059F84FEFFAD5BFC79F243F000BA33FF850 +:10955000FCEDF0F029E4D723E11609ED02DDEEA2DF +:10956000A5D2ED5486FEE6AC5B0F65A35F7E57ADDA +:1095700005E09A532DEC56937D6EB6C791AFA13D91 +:109580003E07EC7184EF83B6BFA1ABC488FF4E32B7 +:109590009433B6EAE9F637DAAF786C49E39BECF13D +:1095A0008C6A61EFE97639B62B99D91EFF83E0A367 +:1095B000667D664065537E58C4C30E50E0711C60E2 +:1095C00025CEDE2C7AAEAC8667B3E06B3E0FD3D0EF +:1095D0002EF5295C6F413B9DE05B0D323E93DA4BEB +:1095E000582E606CD1DEA5F4B995D5D0FEA62A6EB2 +:1095F000C72AD81FC6536ADDD45F5F4F833E44FD40 +:10960000591874E5A5A8FFD8259CDF97BEC0023283 +:1096100094FDCDC9FBF17FCB6EFF4815C79FF3B515 +:10962000DB03A5C9767BDBB67734F27FDFDDE57738 +:10963000A0FFF945F8E7C3764EAEFFAF197621BF1C +:10964000F036CB4D7694E7A7C657B18B90EB176BEE +:10965000D747AA82537E98F3B1EB8F1E3BF9EC7C7F +:10966000283F502B93A97AF4D859E7BAF7386F30CE +:10967000EB9D2AFA287250BF546E3B86FAE527DD2F +:10968000A4BF4DD72FD92CA42F6D0D9717039B5E28 +:109690006F477D33E736B694C0AF88486B617E4D27 +:1096A000F39D349EAE2FE6348C4B686F06AD5DA4FF +:1096B0002F7683BE88F2AEA06BCF35E8C7652F5AF0 +:1096C000188E57D0D2457A663ABDB152E88DA027A0 +:1096D000AE2985F1E73C61D01F59426FDCF401C12E +:1096E00013043A47B930D8D87518E9F76C79325C69 +:1096F000537A7014F4E0EC0BD7834B12F07C01E149 +:10970000C941782AA6C333E52FD02ECFACAF4AF893 +:109710000BEA0E5CBE0AF5BA0B87F39D31239C0B56 +:109720001F5748FF2F68DC7B18FD21BF2FE77430DF +:109730000DCEC6D53E3C2764855C2F37E35501C26C +:10974000055DE709B8FCCE1109E56FBAF500B83B35 +:1097500009EEE634700BBFC98D0716EF413FCB5DB4 +:10976000160E07FBB09C064EBE0EDA32B78033975A +:10977000E0F27D5A26B8F4794E9AF6D157C708EF31 +:10978000FA1A67DA47A621DDF91B559227FA788A7B +:10979000D8CF5589FD3C5C4AF46B80CB92806B64DA +:1097A000C89EF27CEFAE20973F667FD210F08871A2 +:1097B000A40BAB4AEB5F7F834743BBB867A94CFE62 +:1097C000B4FD6E7533CE1BEC5E867CA6E719A6A1B0 +:1097D000DC7967A93C8CFEFF9EE863AEEB61FE3D41 +:1097E0007179F6F5C88F1A643A2F9993E79AC47382 +:1097F000C7FE7887AB0AEAC74BADBA5DECE47E8B57 +:10980000B8833F351B3EB31D713FDA3F791A0B69B0 +:10981000F0361061E407E96F64DA25C01F73A59183 +:109820009D1FC1F5DA24133D433F878C7A8B8DEF62 +:10983000DB6053F122DCA73221BF0637DFE842BEEE +:10984000D01DE77A9F793D9E2CE57A5868B481B7A0 +:1098500013F2B03752BF19F735100DC8C67DB50BDE +:10986000B91688B229BF1592CE00E8539C7EDE5E01 +:10987000D35C8AE7417AF9F597E200F240ED4909B5 +:10988000E3AD0ABE28133CE679B4CD77E8FA4A7313 +:109890002A3B63C37C493F474B791EF1A5A053F097 +:1098A000A364FB5DC73F331E07AD60B7A3DE8276BE +:1098B0003BB4EFAB95DB50CF7B9B81DE0878117B0F +:1098C00094490E84BFC41A4538FD4E26A19E9907BF +:1098D0007AA0C6E30246516FF2453C746EA1A8938C +:1098E0000CE32A600A93A8DFE575B54946BCCE3182 +:1098F000D9E5400F245795F5EC00FA03983ACD4E80 +:10990000B796E54CB7D3BF84327849C28FE1387837 +:1099100092E2BC66B22B73C5B9D07F955DB9A28CBB +:10992000EB63E76B5756CEFFEBB62B5794717CD5A4 +:10993000EDCA01B42BA9DDAA51C4B38BB72B4FFEDE +:10994000220EFBB0236FD1E428BCDB1EB96312FDED +:109950004D177A1EDE2DE21B589BA4588A80BFAC9F +:10996000D92E21DFCB43BF6B0AFADA57CCE9EBEEF5 +:109970005C754DD99299CF293E5DC6F9ECD5E23C94 +:10998000C7CC6F55C6F1F9E6A24813E2796EB3ACC5 +:10999000398007E736C6494E64AF3E4DE75F1FC4C6 +:1099A000B92D9E87FD773FB77D26C8F17DBFC06387 +:1099B000F3FA1F2C17F55E9D1E5427E29FAF31204E +:1099C00023FE4B8D93645FE6B0C0EA8F2A89F6537D +:1099D0007666831696CFCFDEDC5B96C2DE34CFE7A9 +:1099E0006741AEBF9C68E7F2BAE70E99DB07E8452E +:1099F000C7F5AC55288E05FF42979FFF79F07E99F9 +:109A00009F076BF5CEE8C1D4F6E8B5E86F84D58E34 +:109A1000ED12FE00B4A77CC23E1D456984FA6FAD0D +:109A20009BE4F6895332433FF103B5F387518E111E +:109A30001DA01CFF32B7178A5848467B72B041A65A +:109A4000F7BD1A18FCE8EF16E78C5376A6B04BD793 +:109A5000333665A7A23D8A321EFBBF5BAEDB131A0D +:109A6000D9A3EB9AC11E257F7ADCBF3A2361670632 +:109A7000D0CE5C444FB2137F2EF62920ECC400DA1E +:109A8000990BD1CE84AF6427ECCC00CE333B616719 +:109A90009688FE3F2DE7F45522FA9718EC4CB4ABAC +:109AA000753BB3B7704243BC8429074E129EC378FE +:109AB0008B314E04F01CCF7AAC7CFCFC162540E5C3 +:109AC0002E47D27971D9BD8EA47D38E19ED0ECB8F5 +:109AD000EFEB3C6C18C60BEC4EDE276FF4B1BBF01D +:109AE0001CC96C771DB7279FCB7C4BCC5F7FF63AA8 +:109AF000B567109F02517B00CF850285DA4E9C57D7 +:109B00006E4466C312DAED7C9F061A580CE35A982D +:109B100015DAA3DC8DE406C8FE77F2F3847C7D9F22 +:109B2000047EE8F67F7E436414FD3D7916586AD8BA +:109B3000C3FCE80609F1EF4BFF9A11203D4C9C93C2 +:109B400043D338C29D6B9A7FD13DC9F46CB6A375DF +:109B5000FBD167A26FEFB87CC691623D6A2CCA51F7 +:109B6000E41BB9DFC8C874CF49D81D50A673CFCC49 +:109B7000D94A25DA9F571D0BDEE874259D17AA08E0 +:109B8000EB9E53BA9E15BC11F52EE5F464DC03FB85 +:109B9000E19967DFE7A4EF8AF6DA8930EA61184FC6 +:109BA00046F6ADDCD586F140402EC4D774BF4E6F6B +:109BB000246B91CE57994EB7A83A44F6B6A15EAB46 +:109BC000D43B2767A19FFE470DA36427486CB20CC6 +:109BD000FAAB6AA17696E0827D2543353C8AFA5637 +:109BE0006CB337807C3067BD5ECFD7291CE6650932 +:109BF000DB974CAFCF595FA79D35E2D338A75BD633 +:109C0000A0C4CA68DF19F7136ECC253BA1373246D2 +:109C1000E7307B409FB3207EB46DA732C801568CDD +:109C20007CC21A96306EEE81E7789CAA723A2CE1DB +:109C300079058BE6068886AD318AAB838FD0775F56 +:109C4000423DCD82791120EFB9FE41F20AD64FC2D2 +:109C5000F3BBA73379BB4FAEE0ED0A229A1FF58222 +:109C6000DECD1BD6A2DC5299D68E71A58A563C6CED +:109C7000B4638A841E9BCE6F70A1CFEE56A69DB5AD +:109C8000615C317F8E360CBB2660BEA3B5C364F722 +:109C90000F005FC3F3A76EFBC8CE1228F7DC0E746B +:109CA00004FB5BE16C7455A07C7BCE467ED081E6E4 +:109CB000FA4B50FEC72BB99ED6ABFBE7C47A48B32C +:109CC000B87DA57FF7C03CCEB79658BE45F90F03C7 +:109CD000188795424E7C568CD7E9E5743FE7DD4CFA +:109CE00016A360DA98847EBABF15E3E8EDE714BDE9 +:109CF000D02421FF611FBAE134E0FF1CB701DF016E +:109D0000EFF6E0FFF8F9B85601F37A709B5B3FF786 +:109D1000EFC6B8C54ED1FE6F1FCAEF46BBDD588FE8 +:109D20007183E6FAFC7B54B66511F91BB5EB817FB4 +:109D3000E67FF1F2CF5B295E263B818FC5D3FB8D99 +:109D40009EF91F711FFAB7D6B0189E73DBAEE5ED12 +:109D50006D351C1F62BF5C4B726CE0472E0DED81B0 +:109D60001CC6EB3F7A19A7FBDD2F8EF421DFF2B77B +:109D7000D819E287BF65FB38F2CB0BDD7F7DDFD3DF +:109D8000D68B75077AF11BF3830E548A38B1F5C967 +:109D9000707E5078F941CFF7EB028FF478F22E39CC +:109DA000594F3A5AC1EB5FAF9074FCE5727E9593C0 +:109DB000E4BC82FAA9A1FDF704DE558B714B1B6E42 +:109DC000F6A5F2B7E84FDD5E9A2A4FD9473F2FFE3E +:109DD0000AEA7FAB7293ECA3DE4757FA25A8CF04BB +:109DE000BCB26725E2576D68AF6128F02CAE573DD5 +:109DF00031C9CF83061A72B3D06FDF6D63D791DF9D +:109E00007463200BE5DF0EA11766FB6212B6637F59 +:109E1000C314B4B3C0E6F784485ECB353C9E53F51B +:109E2000D46463FCB0BC08958BEEB2F145E4A77F27 +:109E300014140376F1F19D5F457F097CDF65EF0A1D +:109E4000A1E93FD3F9F9C0A6ED14F7D26BD3283FAF +:109E5000E5A4C877F8B678CE1779677AFD63222F24 +:109E6000E2F134F5DF13F54F88A7B9FE1F44BF7840 +:109E70009AFE63A2DFA934FD7F28FA9D4E53FFAC02 +:109E8000A87F2ECDF83F16FDC6D3F47F41F47B3179 +:109E90004DFF9F897E2F4FABE778FE8AA87FD53490 +:109EA000FEAF44FB09F1BE3A10203C4E97EFD6B608 +:109EB000ED87D7642CA638703AA7EFDEFC26F9E7C9 +:109EC000FBB780F65133B31FBE1CFDBD30FE668C60 +:109ED000DBC8A178698A07AA39347E6D7021DA2D32 +:109EE000A1374E211EDD2ECEF1985A89F4ABC73F23 +:109EF00015965FB987C72BF1FC01ED059E3FC03C6D +:109F0000CA53142776AD92897AA719FF7A5B158A0E +:109F10007FD92CE2F0A6DE47B26619EDF6EE537259 +:109F2000DCE64BF8AF6A222C9E63E0A705A758BE7B +:109F300004767C41FCBB5200F3626ED7F5A2DE1BB7 +:109F400054F8FEF17A3ECF1A8CA32AC4EF293C6E56 +:109F50003832AE225F4EE797DA2EF80EC061213814 +:109F6000409FDA05EB590364E701BAAF196171DB71 +:109F7000427C8ED7E3387A9CD8250FD7D1778E07CD +:109F8000799C8BEDD4B81AF426C66D12F136E9E24D +:109F9000B10666C0BF7F9FC7783C6135C723A4CB9D +:109FA0005B8CE7C2F3B8DFEF500D97F309BC99273C +:109FB000EB7823E3BC847D521D10E36526C633E6AF +:109FC000FFFC4EC4810FCC40B7BF9DC792DAA5A35A +:109FD000AFB7C5FC0766A0A33F99C64BC70F7E6706 +:109FE0006A978EEF9C317D371D7F78C334DE23A2C4 +:109FF0007E443C7F314F16EBF6DE7469A66F3DFE62 +:10A000006F7EAC7D1FA797D04FF1DC5FEBE1FE3593 +:10A01000B43BC7720DF68D383FD5CF457F549E4572 +:10A02000856F8C2FCAFA18BE031DA9DD60FFBC1B0B +:10A03000E4F361CE919D68A776DE2E2BA87FCC79C4 +:10A04000BABD4FA29D9F298EC61C7F6C3A6F6BE1F3 +:10A05000E7A4D3E36992DBCD74FE38935D84FE0FF1 +:10A06000D49F7C8D8C25FB3F58F8A3CA74BF4767EB +:10A070001987DBECFF70BF1B64EA65097FD3BA3236 +:10A08000CEDFDCD6189EDD427D29D50F444EBAD0F6 +:10A090007FADDB975EB1DEA9E2868CF6666F21B7F5 +:10A0A00037411F09EC253B2B42F6A6F79F33C82EFC +:10A0B000BA50FBF283B22B673A3F7F57F09F1F8B5A +:10A0C00073BE125816F45B3C23D6B104F41FF43F60 +:10A0D000E87E8780A81F15EB1710F5BA5FE30453DD +:10A0E0007F678C0F343F757E698E67FD0F5BE4F5EB +:10A0F00072184FDD3D41E7868E3C16C2B803DB1374 +:10A10000AA6A0BCC7C6E07FDFF500EF3557BD3F48F +:10A11000379D7F41FBB7E87B2BDE885B8CEDC1FC74 +:10A12000C0FD9EC9AFFA7DB13E7ADCC13A1D0FA0D9 +:10A130003BC9DB288F3B98A2EBAF24D3B5D1BF84BA +:10A1400074ADFB97FEBE2293D6F56BE3673391AEF9 +:10A1500013FB97DADFF47DE16F7FB79CEFDFC0621E +:10A160009E57A8859C3C0ED552B71CE7E3B82C320D +:10A17000CF6290BBE702166A3F539EE24C79893367 +:10A18000E523CEADC8C87E1D6C4A166221E4075790 +:10A190007FB36AEF4A3C3778DE42F97CA55DEAA7D7 +:10A1A00070BE774D488154F19239CE1BFAF05CAD08 +:10A1B000A315BE6323BD99E4D8EE56F80E2CDA360B +:10A1C000917FD71DCA1BC2F5D6849C1E6D58477659 +:10A1D00071AF262BA4AF9F5E734D19B47B2B5B260A +:10A1E000EAACB085A9DCDB2253DC7C6F43BB13E90E +:10A1F000B7AF595650AFEE3B7703D5F7297208F346 +:10A20000903AD7B7BBB07E3066A5FCD898C8831DFE +:10A210008CCA6E948FFD0D632EF4A362FE6F872DA2 +:10A22000511FD386353AF7EE8B8490ADCEAA8ACAF9 +:10A2300094A72BEC1B33BCBF0E70793280FA0DB49F +:10A24000B3E5BC48FEBA589E22E1FE2D78CA45F01F +:10A2500016642B432EDC0F41BF8E2D9610E665DA77 +:10A2600034E013C0B40A0AA30CE37E1D5BECF4DEF9 +:10A2700013E4F46A63B08E86FD831D4F9461826B94 +:10A2800072C26B2AB813D72EE220DFF3BC697DC5FA +:10A290005F268E714D4EE4F3154B12F338FDC8FC6A +:10A2A0004B26CEE3FCEBEFFE42F3F99858BFAD2E00 +:10A2B0007E0EB6F58435D4C612F3D2E5AFCE07A62E +:10A2C000F88353E3F2F75690BF304FDFD3637D52EC +:10A2D000F174BAD1F7C74C3F7A7CB77E1E70E25456 +:10A2E0007D25DA75DD0DF317A11D19B4F2739358AE +:10A2F0006380FC4F1F12FED5BB441C7FBA73D13E56 +:10A300008DC71FE4B46C7FC3E2C5B8121E97ACAF13 +:10A310008B1E57F189A9F88398847232BF6BA80D00 +:10A32000FDC129E20FBEC6F72BF539FDC5EACDFA0E +:10A330007C805F1FC1F1D52D7B96DB8DFCBA51A5CA +:10A34000F8315F0913CAD1641CFD9700D2249EBB6B +:10A3500039D919B514F505D53942716FE36FB16A72 +:10A36000B4AF55E7249E43A801B33F939DFBB31EB2 +:10A37000A78672FFD54F2E473FF5E06C16C2382DE9 +:10A380006F5D6192BFD26F0D8F225C7EE06F5B3399 +:10A39000A7FB37CDEDB5867FA3F8385FC7159FB70C +:10A3A00002BCAC8EFBDD3E542CFF45FD32E7ED8F49 +:10A3B0001179C7F844F9F2B2C8DBEFEC70133FD360 +:10A3C000F394F5F12A9C87280F65B4768CFC918371 +:10A3D000B5B21BF12AD65CEF4B15473AC5D7DFCD96 +:10A3E000649A21BFA2D31E5E0B360A5B567967437F +:10A3F0004745C20F770D94110F9855A1F8B9EC5B42 +:10A4000081C7D610FDFB8D71DAFFEBD089F33A1FBF +:10A41000FF8F8AFFDAF3F18ACA0B3B1FAFA9FCEB6F +:10A420003E1FAFA84C3E1FEF4D9C8F4B7F89F371B1 +:10A430001D1FC8FF5685FE3FCE57BB241627BD689B +:10A4400095C8CF01FC413C4EAC2B8763A0691EDD53 +:10A450005B71D616D880ED7B37E50671BEFABAF689 +:10A46000EE3CD19707ED26B61648EC4AE0539581AD +:10A47000A4787FBD5EB3E4537D4E2E4BE47D011E78 +:10A48000E708FE46E5643FB75A9A941776E7FE154B +:10A490001EF27F52F9F03CA0831465331D4D9D6B75 +:10A4A000145B189EB7746F7337A68AC379BF7CE4B8 +:10A4B000A7022F476BDBE9FCA3BF4126FF78BF4E05 +:10A4C000FF0D9CFE3BBD7CBE3A1D2FB158882E0669 +:10A4D00096DB090F06240BE973A3673EBA12F96CE9 +:10A4E000FFB2C030D24BFF2FD7FAF17EAC3F08FC51 +:10A4F000E9F6B37C8C7FF369DC7FAEF34D1D1F74EE +:10A50000B873AE94096E7DBE7DADECF06B741F8B9D +:10A51000F3F06B30EFFCE649927373D76727F1E5F0 +:10A52000FCBA89364A4DDC929D7C7EF58C95CE9F97 +:10A53000F2D773FF7F77AB42E37CEBB93719EA714F +:10A54000B90DC9E39C6C0E537C056B9854514E8138 +:10A550001CD1320289F9513B837DF420AE27CCAF68 +:10A56000EF9687AEC138A23BDBBC2AEA0B03B75C8F +:10A57000FD00BA1E0632C36B1D74BEE58CE2F9AB5A +:10A58000611F62EB6D04DFA10E035FC7FC22CC0BE1 +:10A5900078D0CDF95BB72DB2D698D7F31B711EF0EA +:10A5A0006BF1D4BF9F6EBF1F748F6FC4FCC981C392 +:10A5B0003FD9EF5C467AABB0C3D6EC57ABA6E3E32A +:10A5C00083282752F07DFD1C89595910F9F64CE378 +:10A5D0008CD6DE21639EAB01AF086F62AA93CEEDED +:10A5E00075FC4A37EFEE5627D31C06FEB5968D60F4 +:10A5F00030C1E8A687FC28A7FA819F33F26FFD6C73 +:10A600000CF9D05B2FBB154BE8BDF03E393FCFFCBA +:10A61000F40A3F29FC55225F99093E1D1FBE83BEE7 +:10A62000C0647C651107EE8B939E806F2C528E78F0 +:10A630001B21BCCD35E16DD11793CBAC21F99CC763 +:10A640008C77BDE2DEB1A3150BF63997A6E027178C +:10A65000CBAFB463E7C5AFD2E1C71EC14F9EDA648A +:10A6600097310F25101991107F0B9AC37E564DFE1E +:10A670006CB297BCE2FE1A1FE3F2F29F051EEB4F8D +:10A680007D9C3D954A12BE75B606886EBB5BF3880D +:10A690001F786B27288E3AB731BE12FDE5736B1910 +:10A6A000DD53E3AB8B88B869BE6EB62BF9FECC35B3 +:10A6B000D179AE894F78CEF1BC87BED60A1A5FD762 +:10A6C000EFF24DFB357AE6618E7FC0DFF03BDD7E39 +:10A6D0009E0F6BDE27AF3827F4D6257FE783E2E3B2 +:10A6E00017CBF7D3D67B01AF804F1C3D047C2205EE +:10A6F0005EBDDFEFEA4FF3F9DAFB95DF97093B2DFB +:10A700009DFC1EAD03F9964D71AF1467345037A50B +:10A71000DF5EC2084F62523863FABCF5F36FBD3C8E +:10A720002597575892E85D3F07BFE948F11AE4AF13 +:10A7300073DC8A0BCF69B258D99A95FEF33FB7D62E +:10A74000EF6D4AB77E1807C0F5741E376090D304CA +:10A7500047A77B84F66FE9FC056B3A6AE9BE47EED2 +:10A760002F3B7205DDAF087AFF5A8C9355DADD0175 +:10A77000D43BBF857A0FD057DBA6C77E4172FB79E9 +:10A780004B00D7A7BA79C3BF20913E887A07EF471D +:10A790007E467D3ED7CDE7FAEFB5F3193DC1AEBB9E +:10A7A000653EFAE10EA4F6DBE9F90701768AE67F59 +:10A7B00042F8554E9CCAA2F8F407EAF26BD00E6636 +:10A7C0004A84E23E5E2B95457C30E7C766BB772A1C +:10A7D0004E1DEDDE85683F4FC649DEAA8CE20CFBBC +:10A7E0005A56935CD1E3EDF5799BE3D7F538F58FB5 +:10A7F000A37D4CBAEE941DDC3A9FECD0D476B07EAB +:10A80000FFC13F1D785269277B85DB351AD8351883 +:10A81000FF936D57FD92013F2644BECD4C764DF718 +:10A82000FCFFDA7CD2A7E65F985DF3AC888FF96B0A +:10A83000B56B9ED2E72FEC9A4E433EE9E7165FBC1C +:10A840005D1343BB8619EC1A0DEC1A668C07BB6CC2 +:10A850000DCE6F1A1EBD4F3E7872FE7BF3C10BCF3B +:10A860008BE1F92239B7F13CF8858FB3389EE314B8 +:10A870003476513967419ABC9866EE974A270F2E75 +:10A88000222FE60DA4C7B4F940E25CA0F5E8B12E92 +:10A890009EFF13BFC07B01C2C9F7026CE6F702AC92 +:10A8A0005E50417CA86F5D4F13AA481543EB29EF1A +:10A8B000C20C8F7FFD08E921FA3AE436723F5CD082 +:10A8C0001A71A15C99CA135AFCDE7942379FFF7A4C +:10A8D000CC5E807EBAE6E43C84A97C1A713FC0CF8E +:10A8E0008E1C1DD74A893FFB17E4CC7CAE9258BF23 +:10A8F000B04AF18257F1386A6B204CF7E2C01FF979 +:10A90000DBCCEB89E15ED7427B8BEA9C44FF9C2D3C +:10A910003B14477D1CA47C14E3A9E0FB95F87DABB8 +:10A92000C256CC867EB642D0D3007F2C1E9545AA57 +:10A930008CF7C91C518CF7C9E8F7D71D978648AE2C +:10A94000151CED5B837AC94CEDEFB270FA619FE69E +:10A9500071C329F69FF2D8B45B389EFB615FAB0CE4 +:10A96000F8DE7323C7F7D8026752BC9B7FFD64EA09 +:10A970007B1F1A2E2CDF6DAE903B15BADC997EEF53 +:10A98000C3C771BDA6FCAE7911D24F66BAE74FDDE1 +:10A990002211DC0E85C592FC65B648238DB73EC2F8 +:10A9A000EDDDC6303DCD78F201E4076A32DA772278 +:10A9B0003FF0743AFEA05D5C7EA021DFF14EC4FF43 +:10A9C00074FCE033C8C3732EFC1C53BF1FD01C2F74 +:10A9D000638EE778FFF98523D24618FF90697D7270 +:10A9E0001A22826F8439DF68383F3E5A62E21BB90F +:10A9F000A6FCC114797B0CF749CFDB83F51C5C60A6 +:10AA0000C4F36979968F28C6F3DA4F1D7D242CCEC6 +:10AA10006B0F105F89752DC7F1CDFEFC99F015FA0B +:10AA20001FC37D9CF9BC38F5F72F363EA9092FC905 +:10AA300031C06B8E4F8A89F8A4589AF8A41C8C4FA9 +:10AA400082FA1C8C4FAA36C6279D5D83F7E6EAF191 +:10AA5000494F233E1526E292CC7804F03F47F0A7F9 +:10AA6000D19B753C9EE2671FE679FAE6F320D0AFF2 +:10AA7000449EDC24DD0B01F3A63CB73EED4DCA7FBE +:10AA8000793B60A53C39BF332CE13936B0F0498DB4 +:10AA9000F25FC214EFA020DF0E611E9CD45692CD4F +:10AAA000F93CF2FDBC0893108FFD114F14FD2A7A7A +:10AAB0005EDCB5FA7D35E84F48C6A3D7111E9F9AD4 +:10AAC0003A0F399157585F89F3D970447DC9963947 +:10AAD0005D0FD2E19B82FB2ACEC781BF8C625E44B0 +:10AAE0000F9E0B2928576509E7FF36CC0FC7D3D730 +:10AAF0006370B3B013A6C3DB86FD7D424EE575BD22 +:10AB000041EB057F94BF921799A4FB6CFCB05E46A5 +:10AB100078AF4EC0AB9AE0B556E5A48757CFABFCF3 +:10AB2000D1D14D7BDB4ADF132E09E71513F9897D5F +:10AB3000DA1D97227DBE1DB5CBC81FFFF8CBAF1223 +:10AB4000BF1C6C52E87EB61C3649E75A39CD6FD22D +:10AB5000FC159945F13E0C731E23DEE3C0E159411B +:10AB6000E3EAF07C44CF6B34CD1BE09953B5C420AD +:10AB700077AC5C5FE98DCB185E86F9AEC45FCE37EB +:10AB80009FF41F0FBCFE12972B1F14FE464CFB199F +:10AB9000A1FD34E0AF84F03295E723E59AE035E398 +:10ABA000738AFDBCF2BDF63391B7CBE30D0CF9BA55 +:10ABB00004EF4F0EDCBC1AEF65CB9827FC56C29E03 +:10ABC0004F773FD3B5E2BE97AC52EEEFD2EF671AA4 +:10ABD000C0B84F94274D27FD743F93C6E3D062E27F +:10ABE0007EA6EEF3BF9F49C57B71A6EE676A38BFAC +:10ABF000FB998AF13234C00325C0E384CE61401151 +:10AC000096459C907E4F867EEF97379B590B17F1A8 +:10AC10007B16908FD694723BF2F2D200CFCBCAE073 +:10AC2000F11E53F732D4652D4294F0E1F830CE5B3B +:10AC300025BC9D0FC7CF4ADCE3715B907F57CFB334 +:10AC4000D3E354D3C5770EEAF75F5FE03975CBB134 +:10AC500047C3184FB434C8F74D8FE3D4E1DBBFEAE4 +:10AC6000A162A37CA811F11A7ABD6E6FE9F5FBC44D +:10AC70003CF688BCEED2867FF0DB108F356F00F398 +:10AC800014D3C9F3F471EBA9EDFBDE4DDCBE8FAD3F +:10AC900062769447B1B69F15A3FE3068BA0FFBF4F5 +:10ACA00023CFFA31AFF28E556EFA5D8C7E9B5AA39C +:10ACB00054CD7C2FB6395EA1A791C72BE8F3BB53C7 +:10ACC000C037939F2657C427E8F75D0C44F97D17DA +:10ACD0007D2DEBDA6CC8E79A6116D0BEB06B94E7B5 +:10ACE000F924F494B8514F31EB839F48E8838F5691 +:10ACF000BD87BFE6CE2A8ECFE9E2779706391DFEE3 +:10AD0000BD68B7350D7ECD16FB7EB35D8DE3F7B222 +:10AD100005BEFCFEF077288E7E9B555B4DF419B383 +:10AD2000328C631A6DE0F98DB19093DFF389F14BAA +:10AD30008B13F14BDD0DF5CE54F6A41E7FE40D040C +:10AD400092F4947915D131E4B7876C5A3EFEAEC5C2 +:10AD5000D8D006F243F77C3732D7E8E7323F87E6B0 +:10AD600006A6F21DC53D062EBC87205DFEEABF8A01 +:10AD70007D4DE4AF6AD2EA8CE9F5C868F17CCCD7A6 +:10AD800000738692D4C0E33AF330AE1320FCE3AFF5 +:10AD9000FE77FC9750EEF75BE85E7D5F440B23BFC8 +:10ADA000890B7E628EEF54C53D8347AD9CCF1E2D2F +:10ADB000F584DAE0D5917FE1E78D47CA9CE49F995D +:10ADC000A812FC55D1C82E7ABF7E9366C17FD2F9F6 +:10ADD0004D12F91FC9F775DD57C2FD47F70978B263 +:10ADE0007D9C0EE2EC2ACAEF1868E17C0EFF92E32C +:10ADF0007027E2A8B700EB09F487F07C3142F72E08 +:10AE0000C9A57C9C1CD33D4C33C51197FD68B1BBD3 +:10AE10001ABA963CDFE1477B43B767728EDF772330 +:10AE2000DA33AF9728C9F9B1A638E33F88F9A78B81 +:10AE3000338ECB71F29778994D41FFC889769E1772 +:10AE4000DC536CA5BC6DCCA344FEE213F752C1FCED +:10AE500028EF7750CFFB5519D1C1E03DA9F38CF70E +:10AE6000CB5C0F4DE437F2BCE2A219EE99BEE03C98 +:10AE7000E29D92B877284E718125117EAF188E829F +:10AE800078B4C7707FD57BE50FA78FE7D45C568475 +:10AE9000736371269657568BBC2D537C298C4E714B +:10AEA0002FE9F28CBF5ECDE9EB62F38C07AAA5BF58 +:10AEB000EA3CE36F08F8F567AF93EF5FA1C6EF01D7 +:10AEC000282CE479C7B90DF600E5B15BB59D74FF98 +:10AED00049248BA5CA2BCED7B4CD04348E939B883E +:10AEE00007CF6FE0F3D1E3C5BDCDA9F1ECBF4B7C3B +:10AEF000F8B555AE2C637C389457537CFD0CF1C8E3 +:10AF0000737FF49A0BD948D1F3A792F843DFF19FEE +:10AF1000127F50AB95A47BD3F5F8F11B91A9E4A463 +:10AF20008F1FFFB8A837C78FDF8DEF97B069F1F794 +:10AF3000FA399B39CE72A518275D9C259A9942DE75 +:10AF40007825E8D722F6C6C146ED45A857E559E869 +:10AF50007EB38F583CFCBE880312C51BDCA69DB295 +:10AF60005720FF897854B48FDC6CC48E71CB1B974B +:10AF70003B27F9BD3071EA1F14FD6F1B7124E9FDF9 +:10AF8000B77FDB91E44709B2DD74DEB411F6276EBA +:10AF9000D89FE0ABBF7B15810C9ADE33CB4D3E943E +:10AFA000EF2EE40DFEE97276CBABAEA74F19C67F4C +:10AFB000AE3A23FBF505F09F0FB10F511CA3E89F9C +:10AFC0004EAEFFB1D5F9F429D013B6D9D517AA7171 +:10AFD000BD314812F8C0AECAD72B52FDBE8ABE8E14 +:10AFE000EE2FC631AC8291A505FD3A2B582DEA8F84 +:10AFF0009DB57B9DFCDC5C4BD23BCCCF1D786106C4 +:10B00000CA5B71FF52BA768E00BF4F29DD7855E7D3 +:10B01000DAC716C094DD21EEAFF4143E146F82F24D +:10B020009D3F7669CE3C7C9F7CEEBEE3CBE3A7F1EF +:10B03000776ADC2C4369C77EF1BB5FF641D9536B5D +:10B040000F601C7599768A21FE80CC1841BEDEF90E +:10B05000656E77DC5F514CF32CDB7DC099CAFFDE57 +:10B06000DD4AC83455F634C435D4D7731A2378333F +:10B07000E1D438B9A8CF19E6A38F9B0EFE99C6D5A7 +:10B08000D77F4ADF378DEF38F606F276169B13FB33 +:10B0900015DD9FBCD5879760001569630BB05CC652 +:10B0A000ED69D7A14B5EC1FAD5326C4C21C8BD39D0 +:10B0B0005D71BCF739F21397864CB0EA9CFCEC3713 +:10B0C000D0BF04EB86F6C7035F89AA783FD2AD2BC9 +:10B0D000FDAC5DA1721CEB373E57A9B5035D384A44 +:10B0E00093E3156E8DAF95916E6E2DCC8A112E9FC8 +:10B0F00083F9025DDF2A71BA8E15CAC49FDF3C2036 +:10B100000DA1BFE281FF8C6DCF87F2D061E904C64B +:10B11000DD6F8CAF1D23BA8B9550FFA12FF33890B4 +:10B120009DB83EE509F83796766D47BFFCC6034DDE +:10B130009719EF4DDD78680F8DE7AAE0EBF680C830 +:10B1400077779726AF572CF66FFF8476F39BF82B13 +:10B150002D12CEFBDFA97CEB81CCE254F3DE18E7A5 +:10B1600071F81B0F04290E5F9FCFAD8786EC4D1938 +:10B1700089799EEFBCCCFB699EDF1611EFB20D7F83 +:10B180008709E3FCF177982EA3632AE20FDBD2FC58 +:10B190002ECDA7177279BE4DE499021C16D44FE844 +:10B1A0004E4F035CDB44F9B30BA594F4B6CD25FAFE +:10B1B000E31FD24F7620E9F7BD3EBB50E82B30BEEF +:10B1C0009A9BB8A707C76FCDC5BC03FDAF6B01E65F +:10B1D000613A906E49FE6E6171283BD17FA5E07B9C +:10B1E0002D4EBF3BA5C8A1AB6A910F58DF9930C661 +:10B1F000D9385908DB7B5EB4901F05C689A37EE26F +:10B2000066BC1DCD2798A25F5E94E13D6F1E9545FB +:10B21000B51A9C8FA97D48233B0114A3E855FEE98C +:10B22000FD99688F2205F9AB99FFDEB350E4B99818 +:10B23000F82F43E7C1D2F4FC37219FA2749F88A363 +:10B240004E3E837E0647E95BAD28171CACAEEDACE5 +:10B2500041CE27E23B6591A7C7FB3B1159509F6B3D +:10B26000E6EB5A107BA8AD389BF4C4494B1E960FF1 +:10B270002DBF0AD755758EA03FA720766439D60713 +:10B28000A35EBA0FA520766C793D9495FFF4711DED +:10B2900040C4C163E835E27BC1E21F8EE2EF9DD47A +:10B2A000081DA160712DC537154493E3DBF343C935 +:10B2B000657D7E4528AD4B12E3122830FFA2C5D62E +:10B2C000B1E5DC0FA9CD82717755648DE177BE863B +:10B2D000D54A023F0B44FBAF87DECCBCCA40473A9D +:10B2E000DD14958EDD8DF7C917E1BAA5B85F01654C +:10B2F0003AEEC303424FD1E949AFFFBEC0DFC704F6 +:10B30000BDE46EE1BF73F61D8C35A532FFFDB31FA2 +:10B310002C0C24D169CFDA1BFB902FEF93B85F7010 +:10B320008BF00BB2067E8FD53EF1BB69B3C5EFA69D +:10B33000E9FDF6B938BD769BF2807E25E6F12B411A +:10B3400087DDAD8706316E6DF4CC27C95ECF65E130 +:10B350003ED45F617CBA9F100887DF5722E25F7E90 +:10B360008EF333D06F6EC306FA9D85EE658CE25C7A +:10B3700086BE2B91FFAFDB36717533DA3D997208CB +:10B38000F599DB3B7EF832EAB3B7D755DC827877A4 +:10B390007B9D88337A3C2729CEA87B4D2EE52F054F +:10B3A0001BF97D85AC305B32E2F78F17BA92BEAFE6 +:10B3B000EFFFE81907E5D9C5BECBF5ABD82FFDF9EE +:10B3C00038CE903F4CF16FDDCB2274BFC8ED8D5766 +:10B3D0009FA6DFB129CC26BE767B23CCCB3BF3BC2A +:10B3E000A6E848F44B2757CDFAC4CED6AECADF52F2 +:10B3F0007C592F3D7B5B63F4EC6F3D44CF1DAD2347 +:10B40000F44CF417F7A4600C4909F2E9643DC35702 +:10B410009B2CFFFC91E472417372D959688ADFD486 +:10B42000C79FCB92E284FB5B1FAFFC6D19CE372E1A +:10B43000E6799ACA3B5AC7C5FC5FA6B2DEDEFC1DA0 +:10B44000F33CCDF332CFC30C8779DD5CC0AF909E67 +:10B45000AD82AE066B5F207DFC6B0B2345972EC142 +:10B460007BCF6244AF3B5FBDAB0B6D82C1731F1DD1 +:10B4700047FFDCAE42C6E364964535BCAFC7F59CDA +:10B480004B433BDD55B188F675343AECC4F8CF5DDB +:10B49000D131BA3738D0714FD2BC2A9C879CC8278B +:10B4A0008BEE497E3F58514FFA5401BB87E6ADF30E +:10B4B00075A6707C30EB2553FCF6DD6C8A9F9F49A6 +:10B4C0006F1D2DE57180F717F278E4FB4BF7AEC4E2 +:10B4D000F9DF1FE5FEB8FB851EF35629002E61D863 +:10B4E000E9E4537F86FA1D155C3FD5D749E7671E0F +:10B4F000C1CFEE6F55284E99D58DA7D42FBD578D4E +:10B500006CA6BC9CAA71A7318EEEFEC217C8FFA71D +:10B51000B028ADC7FD85C514C7B7A376FC5EA433BC +:10B5200026CB6CD6958C65CCD91BC6F5877D597515 +:10B53000A941CE0C46EF50B07FA023D9AE34DB9D9D +:10B54000FAFAB16513049F8B71BF7881B03FF5752E +:10B550007645CF92FD74E7DFC16B84D3886F449F3B +:10B560005DC437BD62BD256909C77390C47F9E95D0 +:10B57000581F8B5B5D8FF31C14718B31F1DC219EA6 +:10B580003B45BCFAFDA2DC2BCA5F13CF07C4B3F264 +:10B5900074838FE21E44BBFBC45387674E544EB680 +:10B5A000CFB4E4731B67615652BDBB343FA9DEBB09 +:10B5B000B838A9BEF255FEBD74F8E38F247F6FEE54 +:10B5C00096E4EF29755949655DAE1534E727F5F323 +:10B5D000541527B54BF73DADE15BBFB0907E69A731 +:10B5E000FBD25C15DBC7918FBA2A383F35EF8F4D00 +:10B5F000D899B0FEFB71FDF57566D9DC2EB4C9D1C2 +:10B6000095C5063FFA4E6FB439EC49EC2BB386036F +:10B61000ABDF03FED1429E27B2BB94D3CF6E711F26 +:10B62000CDEE0332F9EF7797F278FE6D45FD2AD221 +:10B63000FF8EAF009EC2D311BF9BE13D1EC3AD8CF8 +:10B64000E86404E3FA41CF7614465904DEBBAC81CA +:10B65000319287F7B220FA275CCED018DA336C37F4 +:10B6600094615C97873D45E5B8A857145E3EC5EBED +:10B670007B91FECA13F89757A849CBAB50CF0BC9A3 +:10B68000E837F9FDA56F7F15F139843FE360289312 +:10B690008A740563DF8332C6371F3EE758B904E179 +:10B6A00011FCCDFAE5282B31F2B7D05EBAEFFDCE12 +:10B6B0007AD8BEA5D3F911ACFB53C837779AF231CB +:10B6C0000E97F2FB7CE92F9BF24387760513657793 +:10B6D000A942F1892F5DCAF506A0F31F1BE9FCF012 +:10B6E000019DCE93F9A5997F9AF9E6EF2F65E2FEC9 +:10B6F00062C12743B28AFA9E837D3131EF20CDFBB0 +:10B7000015FCDE01316F9D5E1D6C9CF85BA9D64572 +:10B7100072A1AC2B1AC610C3D28E89E52E780E8882 +:10B72000F63FAF0EFF06E12EEDE2F79A7F6DA1FA2C +:10B730001A8E17E8B829697D8AEE492E17B09B68E2 +:10B74000FE663E5F722F289206B86AE26EA625C991 +:10B75000E3ACA4B241FFF6E37951B6383F1E6EADBB +:10B76000A538FE7B5B43F4EC6D55E9A9DB5B594CD6 +:10B77000213FBBC24608CED9F2781BDEC3B73814CE +:10B78000A0752BDC3D49D76C14958E48E20496FCDD +:10B79000F1AF5647E410D4FF1FF0900CC9008000B1 +:10B7A000000000001F8B080000000000000BED7D72 +:10B7B0000B741455B6E8A9FE77BA3BA9848424908B +:10B7C0004075E840D0009D104202112AA1C180E8D6 +:10B7D00074101510B00311C2BFC15FBC57870A09AE +:10B7E0009F302889220203DAA028EA8CB775FC7002 +:10B7F00051D734E123CE373ACA2817B541069171A3 +:10B80000307E71E6EAF8F6DEA72A5DDD4994B97369 +:10B81000EF7B6FADF7DA35539C3AA7CE67FFF73E63 +:10B82000FB9C24D55B14E370C6920A822C50C8D8C6 +:10B83000FA1F775439D219731630EF1AC6D8DA01C5 +:10B84000498C953066ADB0848608F0343139EC64AB +:10B850006CF8FE10AB85F6561B2F3B237F6DC7EFB0 +:10B86000AC05ACC80EDF7D87BFF1D06F4E4896A106 +:10B870001D3375664D1B167BBF596033F0BB1D77BA +:10B8800007D934785A2377B23CA82FF1C220A318E5 +:10B89000EB636081307CB776D16372149E4926F9E0 +:10B8A000A000FD333F2BDA2B41D926F172B55A7631 +:10B8B0008A07059827F3A96591F1B20C657838726B +:10B8C000C2ACD649FDBD632DC1793169889B8F2BF0 +:10B8D000B9E09903EB77E1384A84BE93989B8FD304 +:10B8E0001AA1713C5066388ED44EF51BD4B2E8E5EF +:10B8F000E54DBC3D630A8D9B1460EE8DF8BD0ADFFB +:10B900009F0D0F78BDB0AEA4D996531CDE9D2CE0E0 +:10B91000C4F621E687759F1D1628A1FA047CF45F02 +:10B92000CA14470A6303EF82A6308F1DB92C54084E +:10B93000201AD0C098AD04CB1D3FC772EEAD8C89E4 +:10B94000BA322C8765A5C7CAD00F9374F51A1E7634 +:10B95000E486B29D85B1B2061FC0BF84F84E8A3C12 +:10B9600041F0492A08B100CCD369EA6C34203CEE9E +:10B97000E2EB75DAA28D065C7F038787D3D9C1EB32 +:10B980006F55CB62849783BC7DFF82B0508978FF6E +:10B99000D63823AC1B577BFE7D8481B10CC6EC925C +:10B9A000F789333646BFEFE07F9DC303B3103E8374 +:10B9B00036943D71A620F63E3B20C7950B6C36822F +:10B9C000D3E67A436823E07773455E4AA08771B473 +:10B9D000E79ED5F0D110C6B6AD86EFAC8C3DB05A1F +:10B9E000A4726FEDFB3685827EA4671678C70AE3E2 +:10B9F000AC774B79388E2D325930031C6C0552B11F +:10BA00001DD6D9A2D2F1DA995B897EEDC837F04C08 +:10BA1000ABE67C63B7F172AA4F2D3B391F89B25A4E +:10BA20001679BDA39097BBF849D2F8299835CD1562 +:10BA30007BBF1EF909DEF74D0B05FCBAF6DA3C9A1E +:10BA4000F19911A3B7A47A8362053ACB1C11688AD5 +:10BA5000A7CB28D15D8B97F5D87EE488404B7CFB43 +:10BA600056A2E33CBFD780EB1FB28D490658FF16A4 +:10BA7000AF44E366F95A2B4DF0BEEF54788F5D1654 +:10BA80002A4C76C6FA033E3C654C66ECA723025B63 +:10BA9000BC19D8EFBA4FF5F46F9338FD0FD9C9E947 +:10BAA0007F7D3ED03FC07BF0364EFFEBF3819EA101 +:10BAB000DC7706A77FADDC672AA77FAD0CFD10FD04 +:10BAC0006BE52EB8E507B39C4E1DFDE7DEFEF6F7ED +:10BAD000D37F700DD1FB4E95BE6D813544DFDB54B5 +:10BAE0007E7006383FCC50CBA297D3FF545EB6157C +:10BAF000280CE97FBD4AFF3B4C9DC788AF2BD20481 +:10BB00004537AFCD5E03C16F876CAAEE894F667B68 +:10BB1000399F0446C8FF8E705B97BD20D488FDE432 +:10BB20005BC20E18675DBFC5E18350B60F4EA2F22F +:10BB3000FA45B78716E073F1EDE10528BE16ADA30F +:10BB4000F286C5EBA8BC36C342F0B5FFDA1C72C062 +:10BB50003CCC7D67D4EF4EC77E6DF4BD39736A5619 +:10BB60002D96FB39C30EE2B690E007B834AF66FB02 +:10BB70003C66C6FA99428208EBEAA70419C94B91C0 +:10BB800049081F1BFE1BE061AE67BB0D004FB3C829 +:10BB9000F615EAF8FA98BA4EC04E26F6D7D50F3306 +:10BBA000113F30673130398D13F2E4C7D6FF863745 +:10BBB0008FBEB38B0119E5AD299DD31DF41F2AD487 +:10BBC000C90390C704A74D9E6835E185D93A53CA89 +:10BBD000A09DC0A85FADBF839E5536E4D3F59E3DC2 +:10BBE00036E64439D26043BADF98539582E5CAFC01 +:10BBF000476D51786EF43C6A6385F43E13DFE77D50 +:10BC00009DCA94918C041CCEDFEA35C826A0DF6C57 +:10BC1000781F1A19EBDFCA6E554E6BF302F81A93B0 +:10BC2000E44EC4DBCED54C390DF0DBA13E37D64512 +:10BC3000AA2D0833838139C6815CAF07410E4BCDF5 +:10BC4000591AADB4C2FAF6AAEDFE382CF037E44327 +:10BC5000D7D0FBC441F0DE5AFE8680F50F0D97FF6A +:10BC600013FBCDDEC0F588D43C3B362E2E794358ED +:10BC700016E0FD80BBE2DFB37418B41CEB37F81993 +:10BC8000F0637F06F53675FE6E7CDF2AB3E1B8DE21 +:10BC90007475BD21827FF686A88CEDB3E13DAE3789 +:10BCA000496E6546A4FB824E9B45076F07C21BFA8F +:10BCB0002F00C5C08C08C737645C57969DF33503C9 +:10BCC000BEDE0B6D9C43B71CBB1BBEDFEC64D561B5 +:10BCD0001D5F661671399655A4D28BA8F443786F10 +:10BCE0001C2E67178D2278F62B8275B7207C747412 +:10BCF000D202F8D4CBFF9664B6C80FFDCAFED44A70 +:10BD000013DA2B5962D1469CA649A55351DC8DF21A +:10BD10003CBF88F3D7DFCC723EF67BD0B3668D0292 +:10BD2000ED5B720C212BD4B714DC4774D0A2D24740 +:10BD30006FFAC28AF4D147276F2626CD0839515CA5 +:10BD4000F0F55993582DCEA7441D6F8CBACE31EA29 +:10BD50003A374C7FAA9AF8B2C0C0705EF682E2858C +:10BD6000A664B447D2093F843F8063761153F948F3 +:10BD7000A5C3822E793D1EE1630D98485E5B73B8C2 +:10BD8000BC6685E971F49FF8D4F846E31351522A52 +:10BD900011AF5ABD5D607EE24F9322209EAD3E0EF4 +:10BDA0004751EE8C1811AE456211A0995DAFAE23DC +:10BDB000A980098887A4A2400DC2B30B3E398A40EE +:10BDC000F351E9EF87E6B3A980D30DD08FBF0AE620 +:10BDD00063678A411E847669A4B50AE023DA82EF9C +:10BDE000DF4DF69AC18BF25674723DAAF51350E1FD +:10BDF0005BABC29BA5031D0D233A9AA7D2D17C7CD5 +:10BE000076A7A3347B3C1D45EB391D350A161D1D55 +:10BE1000C92C9E8E96C7E868B99E8E3697713ADA1D +:10BE2000ECF98CE86873D93F4847B59C8E5A3CA71B +:10BE30006D7AFBA0518577E608F92E5C8706D72E30 +:10BE4000BA40FEEDD31DAE1BA6F79F4C74E653E936 +:10BE5000CCD7339DCDD3E8EC12F1659743B209E519 +:10BE600053458459A4981C602CDA82F2B83FC887E5 +:10BE70008D606BB480FEC7F96EF7EC995C05B5EB8D +:10BE800073DAED481766436B751ECA918D804F8437 +:10BE9000EFD483CC58D23BDFEE54D70FF0DE89FDD0 +:10BEA0001DF4DC377930F2ADD7E045F9D802FD0E4C +:10BEB0002941FE35A085D325E7353EB6B2D6637756 +:10BEC000433F7B36AC12033A7C2427C01F41134CFE +:10BED0008327D87556786E2A3E9F85F4B1A3BE5D40 +:10BEE000ECC9DE4C2EB96F1ACACFE4932F5E2FC077 +:10BEF000C7C90DA76763270F0D0F3C87F3DC5516E5 +:10BF00006D31EAE4BEEBB6FB5A8748DDE57737B919 +:10BF1000ADF231AB68253B2D516EDB37F48C47C653 +:10BF20005A094EC92A3DA4084C403B8D4D64C43784 +:10BF300026154FD92ADFBF5E9446F8043E9611DEDF +:10BF4000620EDB6DD4F9119B8A02BF41FAB6D6B1FD +:10BF500053D664E4EB0EB2DF98786972E6AD91E9EE +:10BF6000B42E33D0D77756E2C3377BE2C3C4A7C61B +:10BF7000872D1E03E99147974A71F3FA4CE5BF9666 +:10BF800011F27BD4DF88C0299C675B46D9140283F9 +:10BF9000294C764C9B007406DF2B6D5C6E98C1FFBC +:10BFA0007CB610E9AD91CBB75EF8FB7C8CBFCF635C +:10BFB000BF2E0F5370FDEF7A0317A8BCC9700AE5B6 +:10BFC000B0AB4495BB2A9EEC9B002FC3BBE3C5CE10 +:10BFD0008232EA47D715876D1E46F47111FB715600 +:10BFE0003E7A0CF57CCBC93BC4A1F0FE602B9723B5 +:10BFF0006D755C8EB4B51A48EE3EE201C5ECC6DE46 +:10C0000044A694924B83BE2C7BA46E157B0CE6FD5C +:10C01000050A026F77BA7AF49B3B227743FDA33F70 +:10C02000334B6BBCDDE9CC5AB1850D45BCFFCEAEC0 +:10C0300038B2BAD399D57786E859C3B726674C7713 +:10C04000A972A795AFD7EA498FA75F15FF974A272F +:10C050009AFC5833DC9F5D3C0AF1D14AFDA3FE2FC8 +:10C06000D6E9FFDEF45B8BC52FF99DB1FE925894A3 +:10C0700019DC889F908C767A2AC823A318D37B7DFD +:10C080008BFD838B47C5FC75A48B704FF6030A228A +:10C090001D5D0C2BEE9243C3E87B8F81E822C9978C +:10C0A000447A18FC9D627A5FA67C8AFE8FE6EF5C7C +:10C0B000AA5CB5564465E44BB0C35E43FBD7A3CA44 +:10C0C000514F4EEB76948FCC600BA2DDA5F131ACD5 +:10C0D000633CC2C7D3AAAD4395ABAB38BD231FD4D5 +:10C0E000E8E233F5C55D7C3311BF4B6C2F4F3DA5A6 +:10C0F000C4C9E184F55F1D5BFFD5C56497445E5BF1 +:10C100008DED030609EBE14976720F76F1B5D8FEA5 +:10C1100061D5CEDDA5E11307C0EF81BEF17BE9D685 +:10C12000CE46A4ED3C456CC7E72331BB780E7EEFCD +:10C130005AB44A1C82F2724347A58DF8489E8BEF91 +:10C140007F489E9AEEEA458E067A96A30783F751BA +:10C15000BC649BCC24E4C3B537AFB30F41BA081A13 +:10C1600018CA6F31D2B24641BE09184276D44F8107 +:10C170003CD233BDD1FB26351E712FC62386905D80 +:10C18000C3482E7B795CCB6AEB405F07614D712D14 +:10C19000AB33CAEBCBD4B2D8C9CB15BC7D0BC633FD +:10C1A000AC3ABB4D0E119EEC725AC408B2D685FE55 +:10C1B000976EFDE0979F320F27BA22FCA594258148 +:10C1C00009AFABF7A4C5B53717788FB9611CA3CAFF +:10C1D0002FEB727C32FAF94F0F0B6C46BA59678815 +:10C1E0004E42BF8FF5F3939F263D2778312EB6D16F +:10C1F000CCE315138D1529A791EE41A698FA42FFBD +:10C200000297570F17733BCD2C8514B413CC0AF348 +:10C2100086242402DE8F0DFA8940D39F00BC7CF96E +:10C22000389EFFA7389E4D8A5A908FB4FE13E1FBCB +:10C23000A84AD7CCA9DA45A64081DFD53B9FFDC7E8 +:10C2400030FF63D82FCE13FD3F2BDABD3DF4DB3931 +:10C25000BCF2C9628A97788F8D87F9AD75336923EF +:10C260002CA1E99B09368CC7AC1D6641A79655FCED +:10C27000E286998D1EF2F7D85433C69DE009F36F1C +:10C2800072866682C866E52399E2CB01B89902D529 +:10C2900028A77FF9EC5D33D3619EEB10076318FB91 +:10C2A000E6D99DDB15E8AF492D331481F0EF1D76FB +:10C2B000B5ACEC9C7929DF33D6417273AC3570088C +:10C2C000E7EDAAB791BFE82AE9B4A07CB860E6F12F +:10C2D000D9D47AD62CA6C4D6593E92C32F558D6791 +:10C2E000A56A712CC6E357D1621E67FAB38ABFAF45 +:10C2F00055786705A2DBD04EB6839240B971AFDAAC +:10C300007FFFA5AD95F85EAC007F81CBB3462C27AF +:10C3100007B85C39A17E0FF6C53BC8BFA21C656E8D +:10C32000F83E5506390DEB133D1D0A7E578E3EE94A +:10C3300028B2CB048B9BFC8CF7715DFDEAE3DB3B01 +:10C34000EB9446F44BB4F6F72C02E88D80A73A9FA5 +:10C350007EF57C3E2E753EDABACFA9F26C74B1FC44 +:10C3600021CE43FB5E2AF69F277953DF2A5B74F3C5 +:10C37000D8A9F6BBB3ABDFF041EA57E67E51568051 +:10C380008F9354C1CB5FA8EB3C58247FAEEFDF57AF +:10C3900014B8C8F1136240412CA50EC6D1CD5F7B05 +:10C3A0003A87FBFF13BF5B5A1F3EAAAFD7E1998DB7 +:10C3B0001CD53B9E13E959C373BF812C48F31FE47E +:10C3C00037A0DC685B59FC4823C0F75E9F65931774 +:10C3D000D63760A485C7A9523B66A05E6DBB5BA43F +:10C3E000B828E0336F0DFA63912786A23C144BD234 +:10C3F000189228FB06FA07BB44443E8785DF53C6E4 +:10C40000EDB6CF2AD86EB45BDABE053B14ED9A4A7E +:10C41000F6CC1A80674AE4AFB42FD07637E7E71638 +:10C42000553E6AF34CF1742AA8B7532A0223118EA1 +:10C43000A3464A34EFAE7AB993E4A5BD203008E5AF +:10C44000D28ED4D047189FBAA7DC22ED81F10E9589 +:10C450001F6D41FBAEB5D122E3BC5B17CD36C8F0F2 +:10C46000BC779421C4608EF7DE1D7D1BDFA7CA7CDC +:10C470003DA991D7260FC2F2B13E71EB49C5F50C2B +:10C48000C217D1B75350DE57F4253D97EA13855AAA +:10C49000576CDE62C42EE07A36ABEB113D8CE28342 +:10C4A000A2CCE7AFCD5BF4B14AFDBCCB13D69584EB +:10C4B000F6AE4E2EAF35FBB3306E962867D6B1F888 +:10C4C000388AF60C8CA894911E3439F843F6C6A528 +:10C4D000B69BDF30817D00B4F782A5F3D0770007EB +:10C4E00065AB10DA0B7078714BD1245CCFCDE718B7 +:10C4F000C16DFE9D57DD7F06ECC3F23322AD73FEA6 +:10C50000CE542FAE7F79477012E3FB05DE7CE0D777 +:10C510004CA37B7F14FAC97CE4756F1380E08176AD +:10C520007613CAD34CE3CAA29528C79CB2E404F898 +:10C53000D732AE37328DA993300E9D79ADC5DB0C65 +:10C54000DF7F6C168F1E41BBDE9ECCF642B9367C77 +:10C55000672DE3F1C954D457B53691C6B349625A31 +:10C560002394339398CD5ECC58E91AF1E8BF423F4B +:10C570009D8B5CE21E90CBC965E2D19FE2FC8303F8 +:10C5800044A337A61FB5F5DF2CFB2DE8C75FBECF50 +:10C5900012879761E1F8F288FDF1E5A2487C79E421 +:10C5A000B1F8F219958F1B58D842765D8005F78255 +:10C5B000DEFEC876681BC26F91FDD7DBB0CD4BDFC6 +:10C5C0001A19AEBBF3094708E91AA76786F92E7E48 +:10C5D0006AD86ED4432FFCFD168A8B74FED6E8DD34 +:10C5E00003D52F5C069281F611420370DEE7773C9B +:10C5F000FED09D507FFEC9CC3424E5F673F3DEFBFC +:10C600001DF4B7C4E06248FF1756776C433D3B61A9 +:10C61000C9CB03500F5ED8FF8B87106E7F7EDACABE +:10C620008C30DE9F0DAC1EE9F9E089036777E0B836 +:10C630004F3B8AD02EFBF3CF5F1C8CF189C54FBDD9 +:10C640003200F7DFCE3FF95429959F7C62383ECF08 +:10C650003FF1F8E05ABE0F36A0C615EB67C9CFEC24 +:10C66000A7FA0CEF9DDEFED17E97A8FB894B7EB624 +:10C67000BEA30F288925FB5C0A3E17EFFBC9A7FC68 +:10C6800029BCCE9F8D54BF18205306A6CE472E2E10 +:10C690001F97ECB3C6E165C8B6783C7D0472F459C7 +:10C6A00068373414FFFEAC00EF61DC820BB3A7B82F +:10C6B00093793B9CC759783E03ED57C0FB54787F74 +:10C6C00001F9B407BBE2C5915C9FAED81F3FFE01E4 +:10C6D00053CFED5F51E576016A0B9D5DDDCFCAE575 +:10C6E0007862FB436AFB279FEC6A6FFCCEC8BF935E +:10C6F000C01E5BA2F2D54BEAFE12FC6EED0FFCB63B +:10C700000489242FF67E09D3AD1BC6FBDC96BC073B +:10C71000ED86C56AFF17CD9C6FCFAF96EF3F0374D0 +:10C720007476B52CFBCCB1792CD8B6F26836D0CD66 +:10C73000D267328AF57270E9138F186E84F71F83FF +:10C74000FEC688CDD2998FDD3B06DB3D610CE3BC94 +:10C75000963E71A82FEE277D1C3E928CED16EC4C78 +:10C760002DD6EBED85DB26CA3E9DBDFA8FF2E78B19 +:10C77000655C8E2D099B4336019F6F4DEA8FF263F6 +:10C780009BE0CD87714A4D0123EA4557896C56409D +:10C790003E8EFFE69747FB41FD8A574695929D6B7B +:10C7A000F05F7B35CA9F878C14BF7AFECD7946E453 +:10C7B0009B85C398C10846537BC17D96D330FFAF9C +:10C7C000543C6FBCDE598F71BD52133B6C003994E1 +:10C7D000FCA820ABE5B70D408F4C6E9D1B81EFCFC1 +:10C7E0001992BD1B4B883E497F2A3F37929C1D1FE3 +:10C7F00059FD071CEFA39F99BD683F2DDC164F37ED +:10C80000F52F9B292EBC626F5332EE43BDF0772388 +:10C81000E9DBCEBD02C9852EFF0F909005E39FDFB7 +:10C82000EDDA20001ECF67840688883F5768401ADB +:10C83000FFEE26D4F7F5FB5EFD2BEE272C0AC58F05 +:10C8400093480FFD4B04D51E61057ABA4A6C8712D6 +:10C85000C9541AAB5FDA007A42B78FB2F44CAB0519 +:10C86000FDA745532DDF3B1ED02593082E7682CBA6 +:10C8700092CBC283511E0A26B1AA399B9A09361857 +:10C88000E73CFE6B102F3398D762A46B20D9CF4FB3 +:10C89000BE7AAF11E8BB9F31FCDE7294BB008FBD46 +:10C8A0005CEEAF7B3A9DE414437F5B9BD7F2AC3FD9 +:10C8B0006CF3E9E2831FEFFFC5BADF21DD069C14AC +:10C8C0006FF9588A24A701FC0EA8FAF8639197B56E +:10C8D000F68DE143C9B8FFB424DCA70AE301077E63 +:10C8E0002EA41900EE1F9F7BCCD1535C78F1B9B414 +:10C8F0002ACBF0EE7249D3C3A7F09F408F5525F2A3 +:10C90000152508F7E63EE49F65F60916057BE84F16 +:10C91000FB2ECD76FF4F11DEB56ADCE03E73B088AA +:10C92000E038C7E9DDEBEEFEDDE412CEDFCDA5FE9B +:10C93000A9384E5655878C71A8AC29CCDB045D7C98 +:10C9400060F4DE2E027C6F66010BC2903567D03C2E +:10C950001632C023C1DD3B09F967F1548027F0C3CB +:10C96000FCE9ADA48FB7AC645E6319944DA1755812 +:10C970009E0F16C1FD22C6D3AC4CD6F1F3822D50CA +:10C98000D6AF7FA7AE1EF0B7F8D1F8FA252C42E358 +:10C990002EFDD977567D3F5A3C1418CC82F6F2977B +:10C9A0002AFC9A4BE59B715DC2341BF9CDB7FC5C48 +:10C9B000A0785BBA254CF3EC8479A27D304BB57B33 +:10C9C000FE64F4D37A57DC592BD741F99386F97278 +:10C9D0001D809E5411CA8D30B78796F8C247498E84 +:10C9E00030F1D91BC1F75D6AF373BB4762E2953042 +:10C9F000EE989FD5D0BA593D13AFEA0FE5FA1A82E7 +:10CA0000D39820592E6C968A27F626C7EB0990A555 +:10CA100058AF6CE7FD2F640AC17B11EBA0F5AE297E +:10CA2000E1F1DB6307F93EEFE7FB5343565D9CF40E +:10CA300073E64D41FE06FB87D9D3BAE33911CEF533 +:10CA40003B13E0AE87731EC2371E4FCB9F0378F7B0 +:10CA500040A70FA8FAE33D8CAC66EBE9B191F0F189 +:10CA600040A3C0F58E5233F36698F7D699A52457A4 +:10CA700037030CD0CEA58ECA50CE32CD1F8E600AA1 +:10CA800048D2C8AE32D597AEE1E5D0733F9AB5AD86 +:10CA900002FA3107B2D15EDE5A6361116E07D9D155 +:10CAA0000EFA7074602FE27BBED17F14E316672A02 +:10CAB000E5C144B70D1CCE0F160787067BD0BBDA45 +:10CAC0007A36A7061B892E8A98B8A788E88ACA8E64 +:10CAD000414C44FA760DE078720D4F0AADD1C13F5A +:10CAE000D300266A0F70EFAA3731C599464FE6C2C8 +:10CAF000270CE8FA9EF69A7D9A795970258E9F69DF +:10CB0000905813CC27D3112C5A55A8AB37B556E201 +:10CB10007CB280EE14589FEBF42D95D8DE55CCC432 +:10CB20002698EF5601F819E9EA6E81F497E3E56774 +:10CB30002248B7CBAA2503CAE78C1B36D1F7F714D6 +:10CB40004B068C27FD5195F329AA9DBE5D68CBC687 +:10CB5000FAEDD99280FD953C07FA0CDE2F7BAED220 +:10CB6000B8CC4978E4F6BC23B81BFDA0CC9B0A8A5C +:10CB70009B807E4F96483C3E3BB2F5207EDFB9520B +:10CB8000227866AD51DC38FF947615CE351CCE196F +:10CB900037DCD588ED7ED28FA5E13CB258A380ED7D +:10CBA000D66570FA5957CBED3013785AD82E678670 +:10CBB000283496633958C9F94E4CFD753645319B7A +:10CBC0005340EF3D90CCE7956130DE5403CF078AA8 +:10CBD0007939ED2E41DE43CCDC46F3CBB4B26A2189 +:10CBE0008DBFC77501E9C9CF3875F09DC0E19D398A +:10CBF000883F87DA8E39EF85F16F155810F5F76F9A +:10CC0000D2353B3CE244FAFBC42C678E4479FBBA34 +:10CC10009961FC2E7D407C7D9EA73A05E3935F7869 +:10CC200027501CF10BA79C920ACFFD685FF520D717 +:10CC30006DA3383E567CDD9F8574FA69C58CAFC8FC +:10CC40005F59F1F580B8F71F839F1AD2F9D74BEBE4 +:10CC5000DB2761BB65AC631DF2CBB2B09185747C00 +:10CC6000BDDFCEC7BDF8AE95E4CA2D2D83F618DD25 +:10CC7000DDF978C5D746CA1B6850E344B1F12DF4FD +:10CC8000BE6B5E5FF789DB678BB5EB1BFFFE6B212D +:10CC9000BEBCFFA2DACE44EF59593419E578A29F01 +:10CCA00034D668A0F93293948CF1EEB10359571938 +:10CCB000F313C71A052A6BF6FC54D0EB7594EF00FA +:10CCC000EDA1BF0BDE0F9211EEA74D5C8F9F0E19E9 +:10CCD00094FC1108371B53006EA7553B5EEB4F9B2E +:10CCE0009FF6FE821825BDDFCF08F63896A5689C12 +:10CCF0001D80F508E70B3334B91431E1783BBC07EC +:10CD00004D1294977A0F4E623AFA8AE1C5C1141D0A +:10CD10005EFA3675440CC06F573FBF77472138DC49 +:10CD200019EDAA3C541EDF21E740BDD110271F1D7D +:10CD3000255DF292C4F403062397AFCABE1DBE0A56 +:10CD40005D596DDFF5BDF2C42C8C379614F2EF6F90 +:10CD500078FEC9136B4C3A7D6AEA1C8078E82ADBBE +:10CD600012CA4E280FD395C584FAF484FAAC8472A3 +:10CD70000E6F3F37253A0AFDF279CF3F3DCB047C59 +:10CD80003DB77FF43601CA9B8CCFCCF2015FCF2F29 +:10CD9000E1726CF9CB0266C275C16FB997917DEDF6 +:10CDA000F4462DF30B110EDEA3186F5EBA5F10056B +:10CDB000E03F67F89908CAA5A5F89DA4FB2ECCED25 +:10CDC000F2A5E153F45DAFFD1718482E6C2C384DD9 +:10CDD000ED9635FCC582F6E5FAC2557ED4CB7F339D +:10CDE0007339676201B93FE60BECAF51F342B93ECC +:10CDF000B9902D1FC2F928AF0822CA832E7AC77EA8 +:10CE00009D31FE8AC5AB5F7E0BF7351DB77EDA8894 +:10CE1000FBEEEF2EFB70148EF71FD8A41CE579688B +:10CE200028EAB3D9F5F386E2FB39CBF20F62DED400 +:10CE30007BE6E82EB453F73C7F749609E0F59E2B11 +:10CE40009A2B805DF3E8F3AFF372467417C2D3FDFB +:10CE5000C21B04DFF772A3B9E88F3DF1BC782395BC +:10CE6000F3A3BBB07CE6F9CF78FB61D15CDC471B58 +:10CE7000A57C4EF0DF2B72F9F910F8F72887FF2315 +:10CE800041DF6F53E5D4816AF9FE51B89EA55CDF9E +:10CE9000CEDDD13113E5CA5C03E827A0E7BD1F7FD3 +:10CEA000F0F3BD008FBD0D0EB68793A31FFD854C1B +:10CEB0004EFAA04F5A490F74BA412FA08DC03AA222 +:10CEC000B85FE01865A3785C62DC06F4E333A41F66 +:10CED000E71692DE195B22E79566C49E5F54C11384 +:10CEE000DAE7954A6A3E24D8C3D0DFECD94E2FC684 +:10CEF0005598293A0AE971B39DAF0FF888F0ED54BF +:10CF0000F1F36FA3B85FF76FA3B89D3CBF6422F540 +:10CF100007FE8982F98B4A8D85ECB52D3572761224 +:10CF2000DABD357D0D4A5CBCC64C7ED916B425B041 +:10CF30007E597E08F304FBA14D823C7B3FF76FB422 +:10CF4000F5CC4279A5938B5B164DC846B9B8C52D73 +:10CF500067A39CD1E46FEF72319C112F17C3193D69 +:10CF6000C9453064336A74FB26379A793ED08DBB4D +:10CF7000B93CEC7AAFEE9768FD5CEAFB2DA97CBE6C +:10CF80009ADECD6C0A93DECE7CD09D867842458DAC +:10CF90007EEBD6B6217B100F1F8E9E4670DD52F3BE +:10CFA000987D5E618CDE3BABE5774701DC671979E4 +:10CFB000FC43A32BFCE13ED9FCFB3369BF32AF94A9 +:10CFC000E3E78C01EC3DE0CB43A335BC33A297BC37 +:10CFD0005291EA67B3E86DC83FFF1F7FFFDBF09710 +:10CFE00081EFFFABF85BD6F0E1A5C95B958FB70A7F +:10CFF00011732697B764EFE27BCCB33E5C1228280E +:10D00000D5C98DB9FFBA2C9BF6EBD5F938EE78B1BE +:10D01000FA0628CE5D7C9EE4D3DC7F7150FC22D1E1 +:10D020003F7014467F7E0FAC3B8DB944F493DFB361 +:10D03000448779D1FF31041E7911C7ED6714415639 +:10D04000823FC4D4FD49BEBFFB7E79A02FFA3D4A82 +:10D05000A991FAC1F806D3D35F8BF78F77F748878A +:10D0600046A2BBCE578CA13D02D26168FB02ACBF89 +:10D07000AED0AB407F7695DE801E65B2836FB45034 +:10D080001EE6967C8342F43A3389F641B6B8F978C5 +:10D090005B661610FD36304ECFACDE40E3F7408FB6 +:10D0A0007CDC7C038D0B7600D94F31BAEC4C46B852 +:10D0B00076A7CBCE647D1EC2276A9CF313B4B374EB +:10D0C000FB909FA87114AD9F4B7DAFD165DF266D9E +:10D0D0001E9C0ECFDC9749717260AFC138CF65A539 +:10D0E0007CBF4F93E787460716A13EE8B2EFD5BC59 +:10D0F000B3F99B73897E97A17E80F6EB5D9CDE770A +:10D10000DA23E4F7186C522AEE2B3497CACB917EBF +:10D11000D638922D08970F819EFB807E0A64AA71F3 +:10D1200011D5BF741406C8CF9F1B645EB467168206 +:10D130009A1C578CE413EF5F336689958DDDCB180D +:10D14000F78B8F6FFCDD1ADF5EE9CAEFC7796F13CB +:10D15000566EC7796DCBE67EDFFB42F408E6C5CCA0 +:10D16000C338034CEDF38F930C02C885D3EA7EE1FC +:10D17000B1DF8CA4FD702D6EB04985D7B183A52990 +:10D1800018C7D2DE2F679D14C700920E6E86F5ADCC +:10D19000488E127F363099EFC3282E09E94D8BAFA8 +:10D1A0009C6D31525C8221A84BD0AE1528DF63A95B +:10D1B000ED1BEAC756CB8256E08B1D833B27A15D52 +:10D1C000B4A38A05D12EC001287E875F42FBAD96AD +:10D1D000C05051E70FAD488A0E20BB3AA3D382FD61 +:10D1E0005EA885A1E1BB15CAB7AB71D338D16FC2B8 +:10D1F00078BB1E7E1790D48B7BA2F3D3C944E73053 +:10D2000027F2F72FD1AFD0FC892EFF20C19F48F421 +:10D210001B7AF327961B4E0D5EA5F32712D7B11C80 +:10D220003EAD28A6E76123C68F59B4B4A77C87E535 +:10D2300086D3D44FE2FBAEFA6D1F7E8B705AFE5C34 +:10D2400042DC2781EE96C6CAC27702E24357EFD688 +:10D25000C9C112557EF858285FC0F8392F3BAA3B48 +:10D2600042E83FAE50E36919EDD149083757499874 +:10D27000CD43BFF11CE7C7312FEF3E847188D4EA5C +:10D280008E5C2497156A9C38D1BE2B7FB9CD88FE61 +:10D2900052838951DE08B3B9485E01FCCF607CB689 +:10D2A000AA69B8847EF85F56EFDB79C60C65C7D0F3 +:10D2B000934FD3FB1409E7B34CE4F98E6C06978BBC +:10D2C0000D363BC98BAAFB87D03C3F1C1DF818F9D3 +:10D2D000BACEE02D453E7698C24F7540FB9B9B9998 +:10D2E000D48834C9C297E37E7395854918FFA94A4B +:10D2F000E3FB509549430BFF04CFF6D3EE4233CC0A +:10D300004F186D22B87C66953F4739D3DBBEFC775A +:10D31000AA9EAB7ACF1E40FBB22AC94EFA61F37DBA +:10D3200043F658695D6192E3755BDD69C837DF9547 +:10D3300072FBF3C3D1FEEF4A797E4A29EAB90BAA00 +:10D340003D5365913CC8172F253DE8C375BA41EEA2 +:10D3500018B2104D959E74E0A7AA2CA6FE5A9B8386 +:10D36000505F0303EC00B9B4BDAA230BFDA2EDA5E9 +:10D37000166F130C318D797391AFAF1242CDA82F78 +:10D380004C2C2717CFE354FBAC5E9CC7646B6B0936 +:10D39000C69DD92273EA591B85D3594F7416D3976A +:10D3A000267656E33F68BC35A9230BE7B7D5025371 +:10D3B000433EF3F2723B8CB591E26CBC3CD5C6CBDC +:10D3C000ED334F64211CDA01E6422ABEFFA384F547 +:10D3D0009BA0BD1178F51E21B89BF2D5F0244139F0 +:10D3E000D67710BEF185351BEB5BB763BD45E471A5 +:10D3F00031E6357F1CD5C5953393787B038CD748B0 +:10D40000FDB18840FC95937AF6F2D8FAE65BC34505 +:10D41000741E66058F9FEFAC9477B442BF3B0556F0 +:10D42000D30428F0240D3B83FBAC4C19E036831F5A +:10D430005D339AE3B73BBDCA86534847BFCF2779D0 +:10D4400018A3573BC9CD2AB02351EE21BD22DD34AC +:10D45000D88696CC23BA97EA22D80F4BF6A25D72F3 +:10D460004B3EA7CF5BD68A9222125D123DDE227818 +:10D4700033318E5495CCF31B6FB143F97BE4C1BCBF +:10D480000D4616D0D9A9637F620D86B89C7AA80193 +:10D49000FAAFBB50588CFB4F5A7D9D85F79BD88FB8 +:10D4A00035ADB26634FA458E0EC217E6AAE1FEF635 +:10D4B0003D4207E10BE1A8103E808F4A882CDC0A30 +:10D4C0009D2389C7B7D6DE64E2EDA7DA4E523DF65A +:10D4D0007929F87CD47ED59E20C149AC3103CDBBDF +:10D4E0000CBC7F430EEF6F7B953214E979FBBC24B3 +:10D4F0002FDAAF2F59C297133D27E05BCB4F6D2E2C +:10D50000F52F1B8D7A15E8D54EF237308E1A994ECD +:10D51000911E5B70078F07C7E2F4216E07A879ABF5 +:10D5200089FAFB0206A3A1EAC2B34208C7C7FDB647 +:10D5300078FD1E21BB6119F0EF46943BFB12ED858F +:10D540000E1A7705E8E11D22EAD5F8EF57ECEF79DE +:10D550003FE4258CAB17C7ECA0587C93C376C75625 +:10D5600037D9DF51347629AF7F0D7D877153AEFFF8 +:10D57000E4EC9B916F17E5113D384CDC6EBFB9753B +:10D58000C89E46D5DE423B4D8BB76AF2E9C3D15502 +:10D590003B107EDBCBAA1EC02705F52E254F456D1F +:10D5A00087F1D6EFDBE71AA3EE9FACFA0BD8356014 +:10D5B000571E50F7E5AB5FCBCF44BB66952065A205 +:10D5C000FDF2B8CA8FC70E0E8E7B7FD618A07D9E47 +:10D5D00018FE221C7F2A1E16231E68BF30B08EF054 +:10D5E00052CFF1BDD4C7ED3B1664E255E51CCF9296 +:10D5F0000EEE88577D19F128F580C7E588472FC7BB +:10D60000A3148F37B2E356009D235F205EE3EAB791 +:10D6100070F8D4A27ED5F16F6AF36E232B8CC127EC +:10D62000A55876AFC538CA6BE0BF026AFF8455E4DF +:10D6300077C9A568DF3497563D8C7C9B847E672133 +:10D64000FA5DAC1EE902E3F9789EFBC26A26E3B9F3 +:10D6500040C07FE9B41EEC8D8D07ECF5484F7F503C +:10D66000E1ABBD5F3BDA4CF443FB356857B5585529 +:10D67000FF411A80FD94E675D95594D751A7E63538 +:10D680002CBFDE19C0FE4EABFB49EF8FE67AEFFDF3 +:10D69000D13C3F4D2B6BEB83FEA99FA491F171F31D +:10D6A0003F75B5E3F17D660A64935F680ED96F76C6 +:10D6B000A37DEEA7BC398D7EB65AA4DFA3BDB0759D +:10D6C0004D8A84F9F81A1D1D3B3688ECE33A551E45 +:10D6D0007C3A3A8DE6F11993C82E067AA27AADDC2F +:10D6E000E54F9D33909DD1DDCE5C1597BFA3F91F0B +:10D6F00007CEF50BA1FF01F626E5C1753E6357E1A4 +:10D70000C5F5C781E78690BE00FB93EC98CE575CC9 +:10D71000941FF49139B01DF95279269FFBB92CF46E +:10D72000C46338FF97B3296FE02CE6FB9829CF84B8 +:10D73000E717EC77901E6A88EE765C06E54F04F6F4 +:10D740002CFAAF1ADC0E74F95D2107E2E96CAC7CAF +:10D75000F9B53AFC1FC0FC1E8C9B5A2283F5FBE1F5 +:10D760005A59CB53C132EA9F97543B6869122F0F25 +:10D770004C0D649765607E19CF135A9A0CEF9D97F4 +:10D7800002BFCF9271BD9D02EBC0FD5A4D2E1DD838 +:10D790009049EB05F83141071FF047C88E3AFB91DD +:10D7A000610FFA23638D9FBE80F9519DD946CA0748 +:10D7B000FB48DB6FFD77B7AA9F3B0B101E800F8ADB +:10D7C00033AE39CFEF4D38F09840FECC0153EBD15A +:10D7D0005DD85EB679D1BF3FA0FAB3844AB0B31624 +:10D7E000A82235118E5BD5F56F314B03463A63EBBA +:10D7F0005EB1C14AE7A6579C3B3D1BCF15ADA8FFC4 +:10D80000662E3D13F2843E11A2F70EC6F93D6A8DD5 +:10D81000E503E5F5E0EFD83EB6609EBAED20EB44B7 +:10D820007DC9D23BFBF6E427ACF868A3DFF83D796D +:10D830005989E3937F5D4A7A8794E48A84BC24A65D +:10D840002F1BBB97679469FC18FF7E5619A3F70B33 +:10D8500012FA3B63F64FC23CA2CEE705925B67CD5E +:10D86000A19177C2FBDB46066ACB325420437DFD93 +:10D870009F93B8BF0FF4897E156BE5790967CCF2E9 +:10D880005C9407A9BE88659ECEFEB9A38CFBB7F356 +:10D89000ADDCCF02396FD1CB35ADBEB4AAE77DB8D0 +:10D8A000DBD575B83AB81EBD8D3D62D4C7396E2F31 +:10D8B000E372F08E3289FA19788EEF4BDCC63E3F68 +:10D8C00088E70B96868B68DF7BE05D11923F67CC23 +:10D8D000018A239C110CC167D1FEDDC4F394163C70 +:10D8E00025903C78715FA5D105F58B770A5EBC8FDA +:10D8F000608CEA4F2D00BDC5E3123CDF11D741F02B +:10D90000407D5584F189A78DB4BF7B8ED139DE650A +:10D91000ADAF515E42D62DCC6BCD4278078EDAB8D2 +:10D920009DB46A7D764C8E2697852C9877A7C16723 +:10D93000B11CA0EF16D7B35456145B67623E12D3E6 +:10D94000E70DA17EDB174FA7A8DFE2F35BFE6E8D2C +:10D95000A717E592F4B9A6BFF6947139ACE9F14482 +:10D96000BDDE5C2A3F52C6F1C8F5CF3302CFA74CCB +:10D97000B4AF543DAAE9E385AA3E3E6BE4F6C0028B +:10D980006B1B3D5F2C73D3FC16B3A89AEFD2694191 +:10D990007DD21B1DBCA8D2D1FE043A587A2E72D477 +:10D9A0004A70F7BE40F92277B1880BF87081295888 +:10D9B0008BF3EA07FA9EF2572704683E99B73011B5 +:10D9C000F7FB17602E44F13F6E6724DA15897684E1 +:10D9D000365F8DAE12FDEE317785C89E38BA5ABAE1 +:10D9E0001FFD14A52AF830E6F12A6B4CAC099E0FF6 +:10D9F0003A7EFC7814E6D9A05845CC2FBD681FB7F5 +:10DA00002D15DE0B06535000DE9EB49EF1F8F8FB98 +:10DA10009AFF131C81706B6AE1F2B0A991E3F7CB16 +:10DA200032BE6FF41FEA33B99CC3AF1DC7CD67EC9C +:10DA3000F0EA021A7F92ADC884F98A3EB14821BF4C +:10DA4000013AEC034FD41D688F1A5FB6F2B813C8C1 +:10DA50002B27C8E32B555131A9FF151184E72197D6 +:10DA60004532F2FC342642FD24FC07B4BFD2B9A0F3 +:10DA700019EBA719583015E6BDDC1A5987EFBFCA54 +:10DA80007E7D2EE2FFF6A41A13E2FD2D31D089F23D +:10DA9000A7CAE6F5DC42BDC8265CCFAF4DF2A7F8B9 +:10DAA000FEB849FE8CCBA71CF1ACA33B7D6BEB0110 +:10DAB000FCD3FC2720BD61FCC32935E351226396CA +:10DAC000E0A5B37E09F337AAEB6B7AC51A5A437106 +:10DAD00077EF4E84F372A329C8EDD3F8F568F04AC6 +:10DAE0005CD7525BE0E15403ADC35E0EF0FD8B39B1 +:10DAF000F0B868A4F8A609E511AC23A99CAFC351FE +:10DB00003EAAF775C0EF702EFA69392CA4C65B15D2 +:10DB1000F447418AD37CFE660E64603F26D1AFEEA7 +:10DB200083CA8CEF072B71F6DB838EE4028CC3343F +:10DB3000B0242FE2CD23FEF861A4A7238A89613C9B +:10DB4000E78EA4E43D2C05E96A4008E3565FE76BE5 +:10DB5000791401CAA3389ACEE3E2474FBAC86F16C8 +:10DB60000E1989DE8EBCEBA0BC9C23953DC75F0AD5 +:10DB7000CB399D1D39C8E9EFA88DD3E9515BF61E5D +:10DB8000FDFD1DA3CAB93CFF326B9007F71F7AD386 +:10DB9000970FAE06C9A2CBB7187B932588FCFEE091 +:10DBA0001C0BD96B631D43E3F229AAD4F3879EE9CA +:10DBB000735350FF1CFD0B2B75C33A7DE55CBF8C86 +:10DBC00035BA6F457BFCCAAF8D2C0222AAE0E30E6A +:10DBD00011F38BAF54EF93A98AD6E60C807E0FD950 +:10DBE000338B915E0E9D72E708D05F7BF6107A76DC +:10DBF000CDC396391FCF297B8E5D7D3219DA7FA97F +:10DC000058A58DC807E65681EC1E00679FB1841E9B +:10DC10008A13112A4164B1663112443B6C5532F9C2 +:10DC20003FAFAAEBC33D6684F797B339DE5F157843 +:10DC300059A965C4DFDE761B950F2F934274966C4D +:10DC40003F887D1D1D37B0A06925F68BF613D26D78 +:10DC50008E9545747A022A4EE2F7E0AE8B88FF7605 +:10DC6000D5FEAB52EDBF5C180AF7E7739D06C26F95 +:10DC7000BB9AD7EDD9B0D489FB258798F80CAEEFC5 +:10DC8000A2EBDA1401E5B22A478E26E4656BEB7944 +:10DC9000A94A5AAABF6767894A1741F5BB829C67A0 +:10DCA000282F98F9C167C8C6FE24F5FD41BA2FA3F5 +:10DCB00020E77519E1FBEA8025A624E467C52EE17B +:10DCC000FC2639DDCD0CF05A65927CA857B15DEA8F +:10DCD000703DFD4A4E8C677AC4714E941FEDCEF9AB +:10DCE00044CFC2A191397ABBE3502FF4DBACD2C947 +:10DCF000A11FA0DF7B54FA3D9A756D4AA0877EB4C0 +:10DD000067BB0A0F40BE87CE1939AC44BFED76EB36 +:10DD100025D1EF21957E775E32FD1611FDB6677332 +:10DD2000FA6D3F554B747BD4B5309E7EB3807E0137 +:10DD30006E875D0109E5637BB655DEC38974E74AEA +:10DD4000F8FEB0E062886FF00372F4FAF7B07DC8B5 +:10DD50006CCC272FC03C31A89FE0958AD16F373813 +:10DD60000A890F0E350EC9433BFFA83ADF44FED0A7 +:10DD7000FA61CEF8F892F6FE08C2CB8AFCE0A73C26 +:10DD8000AE23AABFEA6D2FC8417B93B53E2823DDA1 +:10DD90004F54F969A2CD7A0AD7C1D281DE75FAD97A +:10DDA000736C0E7DDF1B5E7A1FA79A8F83F7279512 +:10DDB000EAC6117B1E2731BE35BC34F02B94EF1719 +:10DDC000CDC1F7F1BC78678D8DECECB4EA4EBADFCB +:10DDD000E37DF55EB70226AF3989F07BB30FC587C7 +:10DDE0000C8EA92AFC32DD08BFBF94C7FBFDBDC164 +:10DDF0000DE8230FF79D7A5F4F590EC639BBC1CD91 +:10DE000009EB49FEBF076E37A5F83F41BDF63E134B +:10DE100007D0B9B74A1697B7D39B9DF41BD4C7F95F +:10DE20003DD94B5CAF81C419CDF3A1B87D34E9472E +:10DE3000B55FA4A37C54AE9CFB1BB013275D597B3C +:10DE40002B96EFACE83BD7097268D20481F2B82C6C +:10DE500007FC0F2B00B74937D4DE9A01F5C3AF3862 +:10DE60003717CF894EBA5150F3BE2A6E423E98748E +:10DE70009340795D7F7B05DA17621C3060C63CB445 +:10DE8000EBD5F39F4E351F41839F3886EF4F8B6351 +:10DE9000B81C4C1D2351994083F27006CF4F063DAC +:10DEA0006C26BF8B05CC38EF3F5C015A7204F61B21 +:10DEB000C86DD5C9D5E3575BE7C84EDE4EBF5FE6F8 +:10DEC000192368FB48644727E271903ABE9687831E +:10DED000DF5F374C5F6FA27A8F3A3FA7C4ED6C9C2F +:10DEE000D7F461FCA9F77F8FCFAC34635AE1752575 +:10DEF000209F25C467E0B2312847B3BF75A17E07D4 +:10DF00008385F2D2DE377B4DA4D7DC2CF83CD8DFFA +:10DF1000BE327F338650DEBF7BE11CB2DB921D3206 +:10DF2000CAC319EAFCDA1CC3E9FD4C66F0225EF1B3 +:10DF3000B749D37B40476F4C7EF008F6F76ABEB511 +:10DF4000CBFECC2A8DD96B875E078307403E858543 +:10DF50004DDCBF08FA56A17D5B6D17D14FB99A45CC +:10DF6000A9FE47B8B33108F76FBCF4FCA4324AFBF2 +:10DF7000559A5DF7975C6ECF817D3711D7358D054A +:10DF80005E8E92BC6C35211C9C2CC4E70FF344FDC3 +:10DF90009AA8F727D876925D00BF8ECCECEE7C4C29 +:10DFA000D3ED1BCBD3023B41B91DDBAB76C2715322 +:10DFB000E0BA31A3306F372CF0386A8740FAFC564C +:10DFC0007E8E9A95796D9CCEE3F9AA2B0FA256A06E +:10DFD000B80FD88524B75FAB15D4FD30666C2E55CD +:10DFE000E1091F79BEBEDBD417E5B56C63089F3627 +:10DFF000C78F7DABA0FD94C3366685794C710669E9 +:10E000009D7F100CDE35B49EE0E15BD363F03CD61F +:10E01000A5EFE2F1500DED6EC3F69289DB2760AFFC +:10E02000E038573F67A171AE619D841F3F1309FE21 +:10E03000B78DE17E615F7F4D6506C0AFBF54FB7257 +:10E0400014BE7A2BC41433E8C3B7D438D09536B095 +:10E050007B280EA69E23729BE9FE056F449C804799 +:10E0600032A714A6D239E5E263DE43589E5AC2CBEA +:10E0700085617E8FE73515BC3C7C7F27DDCFE9F7D6 +:10E08000F1F2889723062C5F55E0A6F352FD99FF25 +:10E09000AA61487F9291DF07C15A5D68974C16C408 +:10E0A0006751AFBD53C7EDE5C9F983C83E7B7375B2 +:10E0B00035C9A5D4D9D32BF1DC219BCAF365CAFDA0 +:10E0C000B58D582EAFE67990A9BE90711B94A70725 +:10E0D0008447907EEF1BD397CBBD80CF7C3DE03350 +:10E0E00035C0F328C72893CDD70E23BABC5DF5976A +:10E0F000B6223D24D2E70BC86B0887059A1CE1794C +:10E100002B33A7F33827FEA6F725FF88E8F2382639 +:10E1100031227DBCC5CF479D78C7EB43BC28495C05 +:10E12000AE319BB7F976F8FEAD07F218F78742B328 +:10E1300029DE81748EFA6BFA7A21039E368185D1AD +:10E140000F62CE04397FC69260872A8DC87F99C13D +:10E15000641E2760BA7A987FA62D5971E0BD8B01A5 +:10E16000DD7BFAFFBF5BF5EDC08F7A0EF950626779 +:10E1700068BFB9C02D8818FF7951AAA5F363537001 +:10E180002FA608CF9BADA0F2CC127E7E664A4165D9 +:10E19000D59FA09CFCA691F064EEB7DF88787CED5B +:10E1A0003A9364C5F9A8E795C9950238BF50ACD930 +:10E1B0009541330A73CDEE7A49689D4D707BC7490E +:10E1C000F919220BAFC1F8E8934191EC21962E2862 +:10E1D00058BEFCC57E3C8E96C5F172D9356EC2C361 +:10E1E00094BA95663C6FC50202CB77E33C53C81ED8 +:10E1F0009CE2194DF6BF67FA8FDF4D467F403190A4 +:10E20000DD6408D410DF4D433988CFEAD789FF5F3A +:10E21000686421CCE7FFD5F437A8AC008EF2717C9E +:10E2200053E824DA11D7B28164C71D873E2D3A7FA7 +:10E2300082D90287D271DDCFF725FEBB12EF744180 +:10E240003A0DF27BE6AAA22B73D18E3C3113EC4837 +:10E2500080EB895302DD1F79FC9E7EE40F1E9FF345 +:10E260006113CEE7F8A834CA7FAAFADAC12214E70C +:10E27000104C269D1CAB32859B6EC3751EB649188B +:10E28000D7EDE60F8181C94AD5AD132A2B0CEBFBE4 +:10E29000E33F619C4C4FA68CDF6F5A99ECC5B807E1 +:10E2A00070A8D50BE30E9CC9EF396163F3085916CA +:10E2B000E694F12E450BB3D1FEDF747FEDBB684FC2 +:10E2C00065280637FA0D5D7A4A08CCC15C18E75814 +:10E2D000650EE6E51EB707E6200B78C66EE2E5ECB4 +:10E2E000C0BB58BEC7B96D4E7539E6EDDF7113AED0 +:10E2F00073469D40FAA5B2AECDD417C6B941496167 +:10E3000088878BA9C18969F0ACAE16189EC79F2675 +:10E31000ED36A3BFE1ABAFCDC53C9FEAB112F1F33F +:10E3200071979C8B7904C7B36503CA41C0871FF7F7 +:10E3300097FFDBFA4F85FEA17C3C17FA4FFF1FE8E1 +:10E340003F439DBFFB7FA87FB33AFFA13DC3679AC0 +:10E3500007FA07A2A9F4AC5C8B743BA3AB7FE5483A +:10E36000063C674902EEACB2EAFA5AE253DF0CDE31 +:10E370007FA2DDD3359E9D8FE7F15B2386E1FFCC45 +:10E38000386D34CE3BF9ADB9C86F6FCEB4A26DD342 +:10E39000D5AF67C6FA0E435C7CA5D5C5FDD36B5CD3 +:10E3A000A8AFDFF1CFA7B2706842AEDE3F7DB317F2 +:10E3B000FF74C6586ED7BDA9FAA7C76D5CAE1C47DF +:10E3C000FF5488B5AB1DABC657660CF2B01EF633D2 +:10E3D000B4A7A6AFBBFCC241DC3F3DE6BE34FFF4B0 +:10E3E0000DD53F0D8ED5FC53E1B6EFF74FDD5CAE9A +:10E3F000B835B9D29883F1846393D7C7FBA7128F3E +:10E40000AF5C344B0694EF6FCF36527CEEEDD94DB6 +:10E4100024E7BE0443411F37EFCDEFEE9AB76A877A +:10E420008F650A9D67121BA434CA7360E146CC3F16 +:10E43000B97715F8B1D0DF66751DBF12F8F929A5B7 +:10E440008889986F9199CEEDAD34D0414DD9BA738A +:10E45000616ABE84CB16A47B2A5C122BC6FC40D01A +:10E460005EF4BDCDC6E3CEB9EA3937A77A8EEC3E6D +:10E47000A443DCEF50CF5739EA98819FBB0D8B48FE +:10E480001759A6F004EC7F80CC18ED4398A205F84C +:10E49000FE87FCB3C475B70B3DD3515E055FA7D7AC +:10E4A000C16EE3E793543EF6B8F338FDEF26FBEC7C +:10E4B00006658401E9FF69152E3714AC1C887A6D56 +:10E4C00056B520A17C6E7CF7F1B57825D76B6E81AF +:10E4D000EE52F3499CEFDAF317E6A2DC7DABC6CA35 +:10E4E000D0CE7CF35BFF2E5CE73BE5490CE34B7938 +:10E4F000157CFD9E3AE0138CA3D5713EF1F6617355 +:10E50000FC3AFA4A9C6F173EBF1648DF8493D853F3 +:10E51000782EE3C0D80FE764019CC2FDD89F517EDE +:10E520009B5FFE720E9EB308832E413BA6636CEA8E +:10E5300043E8CF85D5FDD58BEF2E34EBEF857C4BB3 +:10E540005D1F1E77E7E778521FC2F34531B8687246 +:10E5500041834B977C5B8BF2EDFA7A2E1766CD6880 +:10E56000E372A1CE9D1B559F485F6FB9AD783712FE +:10E5700073ABEB3EF6ADFF5D8423CA0B8487262F79 +:10E58000922A78DE19CE0FE34A55261E4700BF9027 +:10E59000ECC7443C46553EBFDEA4ACCD50E5EE1A78 +:10E5A0007856CEAE35E3B820AFE8DEAD590137CDB1 +:10E5B0006B9A54C9E7E76FA3F969F379C7D5BA8BAA +:10E5C000E689F28BEC0F8E978B6699FA9DA6F55B28 +:10E5D000CDFBADAEE3FD56FB6B489E5F07729FE43B +:10E5E000BAA736AEDFE3E6508E2AD7D7ACD2C9F54C +:10E5F000C4755D34B7AE45F97A9D325040BFA27202 +:10E600003A8C83F6F58C5437C2EDAF63B93F38B915 +:10E610006E379DF79A3263255FC7EC46A2B7B753B2 +:10E620004324CFB5714F7C1B2079EA99A1ADA3B5E6 +:10E6300019D73113D781FDD7713A9E12E0EB98E2DA +:10E640005949EBB821D048FDFBA4DDD42F3C77918C +:10E650009D3399D3714605D71F6FFC55CEF5EBF46A +:10E66000C70FE129B342C35390E03945836701875F +:10E67000E78C6A3E8F19B377D3BA66553772784AFA +:10E68000959C8EA4CA3938DFE3D7713A023D5CA568 +:10E69000D7936E956E8EABEBD6F0364B5B6F3D87A6 +:10E6A000E734A407F87E1AE20DDA5D2775E9B11C9C +:10E6B0001CE7B5FCD61CD463EF6874A0F1A7AAC709 +:10E6C000DA57CBEC0333C535285E3CC169207BB5F6 +:10E6D000CAE76DC67B17C650E60EEBC1BF8DF74B80 +:10E6E000B5B8CE745BF06032D97DF29AF7110E6046 +:10E6F00097AB7E8A6143DF985FCA7C2BE3FCEBB665 +:10E700006B7FEF1C89F4E134D3BECE8342EB61B260 +:10E71000C7875A25B46F1FBC3685FC9EE3E8E70A1D +:10E72000313D67B071BFB30AFC5BCC1F07BFB45962 +:10E73000B54FD5FB0B82CD48A73EF467D5FD1FBD75 +:10E740001FCB543F7622F8B11B2FC18FFD5105F727 +:10E7500063A782DF8E17C7BC79ED6627FA1B478D4A +:10E76000F1F921C7FE8FFBB3920BE3FCAF31F62C1E +:10E77000C2F78D6AD59FBDDA4D7E52623C04FCCF54 +:10E7800085151931BF937ED87E722AD103F867F5BB +:10E7900015185F62FE38BC758B8324FA038974D325 +:10E7A0002CCA143750E320994895469C7F4440F882 +:10E7B00026EE5BF446672253FEE9F88C49F34BE8FA +:10E7C0002788B82F98A37E2F0416923FB4732C137A +:10E7D000317F96AD0BD2FC8E9B029B2AC899E4F642 +:10E7E0004316C66B80249ACABC8B538DBDCFF7F7F6 +:10E7F000A5722B7E37D1E8F4627EEA676F1A89CE64 +:10E80000A7CADB7D28E7AE66ADBE34A40749F04653 +:10E81000A4181D0DD906F3D4F9CD43433666D2E5CD +:10E82000075CBE4F8C2B0F0B67C5B51FB15F8AAB62 +:10E830002F02A75B5F3FF29837AE3CAAA32CAEFD38 +:10E84000E8B7E5B87279B43AAEFDD873FEB8F265B0 +:10E850002C60C0C55FD13923EEBBCF58A01DF3811A +:10E860002E2BB78A0AC56BE5370A800F87A9D01F00 +:10E87000FF7520AE9F61D15A03C2E928DE27027ED0 +:10E8800062255B14D71F7BCE741AF11984FF109F89 +:10E89000973128EBF2EEA748E65819FE3738A1BEAB +:10E8A000E1A4FDC861DD78472A5CE98837C07909B1 +:10E8B000C623BAE10913A5D14EDAC7422101D743D5 +:10E8C0006DD965DB199D0F4A5CCFC5D5B62387315D +:10E8D00067CA7892E2A35F82BFD4C78DF787C6E389 +:10E8E000D32EC5E3D351108F4F97371E9F2965F163 +:10E8F000F84C95E3F1D9A73A1E9F19FE787C66CEB5 +:10E9000088C76776201E9FFDEBE3F1991B8CC7E358 +:10E91000C086783CB995FAB8FA411B82F1F418AD7B +:10E920006DDF05EB3F5A6615118FF9AD0D71DF6B89 +:10E930007854E0BF9EF038AD3E118F9BE8FED81FA3 +:10E94000C2E77709F864C6D9DFBBAFA7E10BE49C47 +:10E95000F90A8A532F9F43F24F8DCFE04F1FA73EF6 +:10E960003EF341D24FAF0EE571EA094C36217E0FDE +:10E9700065CFF1F59178FB043D437AA85AD3436AF9 +:10E980005C0AD36E905FAEEA16B796CC58BE967509 +:10E990000E300DC2FC85C83AB4CFBFCA7EFD3D81A2 +:10E9A000F22CDAB43C8BDC2B481F7550F9A8E369D4 +:10E9B00013C6E79D2C48F3D7CB47CC4BBB64F93843 +:10E9C000558CFC43725ACA8DC93D12AA0AC93DF042 +:10E9D000830DA7C86FE0FE9E2E2F81FCE4B72A03AB +:10E9E000AE51A817671A99FEBCB7F6ACB882EF33E0 +:10E9F000BF7590FB3DBDF9C713AFB834FFF89FCD8D +:10EA00003F780BFDE31160E75C71A9FE714DEE00EC +:10EA10008C234CE6FEF19BA7C07F80F76F5C3784A8 +:10EA20009E5DF3A8E6FBB79E632E05E35E5FD65BB3 +:10EA300049EF36BE7B07D9A155BF31D37DEE13F028 +:10EA4000522E2C9FE3F76033533DE9C1892A9E0F74 +:10EA5000A9FB79131A26F8310F60E2C907494F89DB +:10EA6000068EE7EA742160C3BCA009522EEA1BBFE0 +:10EA70009105F790DDA324619E4C16B33D8BF8BE43 +:10EA8000A8E67B76A6F27CB0097756527F5DFB0F35 +:10EA9000CB78DCB1CAB93B17E38C13EAAD024EADBB +:10EAA000CA59F32EEE3F23C1A3AC3BB19BE3EBC4A9 +:10EAB0004A29C4CF67FE81E6D3791B93707FFA445D +:10EAC00011A7A313AE3CAA9FA0DE3FD12E44290E6E +:10EAD000AC9483BFCEB0FE17742FC18907049AEDA2 +:10EAE00009181BEDEC136D43E8BBAE7CD84DAEEFBF +:10EAF0003F9FD966E7F96D26A911F3840EDC25AA9C +:10EB0000F9B08AE73EAC9F9944FBBBCCA494BC818E +:10EB1000F5F597F17A6363E1B3E9B1FDDF8FCCD20C +:10EB2000AE5B110E33076BF9C40EDC574FB4430EC6 +:10EB3000984405F948092677CB83D5EF0F25E6C120 +:10EB40006A74F143EF4F809FA4BF4FE3C4A22B2907 +:10EB5000BEFFA6DB14447BD837DDAAA0BCF4896DC8 +:10EB600026DCAFFE7074E05194175BF277AF443F40 +:10EB7000171896F0B4C32384ACFC1EE4D971722339 +:10EB800041EEB5399EDE8972EC861C2BE9C549FD44 +:10EB9000EF3E82F470A8D64AFE74A2DCABB2C92460 +:10EBA0008FD0AEC6FDAF89EABE52356B257975159B +:10EBB0008BD0B3FBBEDDF7CB3F907B2FA39CBE3D3C +:10EBC00069377DBFC6B1BC02E53BC8EF57F0FDD841 +:10EBD0008F6513C2BD4A0238C0786FA62A44B73E7B +:10EBE0009740F4021638F93717F05E9A1EFC9B76B0 +:10EBF000FBC501D85F22FC12E5C98592C06FAFD07A +:10EC0000C53126A785EC22EDBFF66C07B6391EA2EA +:10EC10007D8629BDE895D7F21FE77AE5EADEE0E9CF +:10EC2000F56520FF32BFB6FF49FB759A5EF9217882 +:10EC30007ECF3EE85984DB6416A2EF8E3AC699492E +:10EC4000CF99E40FAFF8EFB0FB59B7FDD0383FE0F4 +:10EC50001FDD07D5E0390913FEA09F77447E4F19C9 +:10EC60004CE49AEC52A42FFE7B678362C2F8A42F77 +:10EC7000DB487B290CEDC202BC5EDC4BF3AA62FED2 +:10EC800094087C77B537DECEA83A3994D6FB3BC1E1 +:10EC9000E0152A10DEDC4EA17A947B8CAF3FCBC806 +:10ECA000D75F95509F088F44FB04F783116F97AA95 +:10ECB0005FB3C7A9F68CC4867C3708FDF6FDEC036C +:10ECC000CC8F54ED9AAA84BC8444BBA6701CD75741 +:10ECD000732DB27B1C3CCFAB714491794D28570CFE +:10ECE0008E0ACA2BD1DA25F693884FA08BCBC66546 +:10ECF00074C70B8C45F1BE231937D4B5C1FA863CD5 +:10ED00007C19DD6F79A4EF8DB7BE8EE5870693BFC2 +:10ED10003A721CD7EB83FB2F7CB20DCA3E83703353 +:10ED2000E57F95BC33CB8D794C76DE4F16ABDF5249 +:10ED300083702ECC2B6EC2761646EDAE1AB16CA443 +:10ED40003E5F7D823AEFABD47B13725998E2B949AA +:10ED50000DA2A050BC96998CC5F0CC0A9944E8DF6E +:10ED60006262A6A4347866B53A45E4EF24DEEF6F1C +:10ED70008AFE588CFDFAF278F972AFE3D4209C8FAA +:10ED800020D07C2E2F102243A1EC4BE3F5538B9F18 +:10ED9000E88770F35569EDAFFE08DBFB54BB2159E2 +:10EDA000EE3CF41DACFBFA40DB1302D0C58B814A6C +:10EDB000F35080F7EC71365AFFF57EBE1F7C4D593B +:10EDC000A38079E6D707E412BDFD71E3387E3E6883 +:10EDD0007A196F37DD5F6BAED3ADFB7AB993615CA7 +:10EDE000E9FA19A7282FB5CD3197ECBEE909F2A5AC +:10EDF00006FF817EFE755792BC7E7D4EBC7CF1E3A2 +:10EE00003FDC245F0E6718E87CAB99CB17F108C68E +:10EE100053AE57E5CB0CD64AEF67B1303D67B30E22 +:10EE20009E5F71AA4BAE0C4CCF8B932B2B914EA6B1 +:10EE3000333FB5EB70FC98E48A13E80EF32C26D828 +:10EE40009C245F7BA0AFDB7BA22F9D1CA575CEEA27 +:10EE5000258FE4D59B4737E33A6639234EBC5FECF8 +:10EE6000572EB317F7ABBACBD32EFD44F67977FD07 +:10EE7000D441F230310E34ED87F34A5AC7915DAE7A +:10EE8000E5958468BDB0AE367C0FEBFF4179AAB73B +:10EE9000D77BB2CFBF5F7E7408746EAC17BB9CFD8E +:10EEA000705EF2BE71A37E382F7988CCE29EF34B60 +:10EEB000E4FE1374794A8E92CE75F794A0121A6EFE +:10EEC000407B6D979D6DC0F3A1634B2AC7FAA0DD0F +:10EED0000A35AF6A884FE2F94D1D4CDE0DE3994DBE +:10EEE0000AE5F99B6D626A632A9E4FE820FBAF3307 +:10EEF0008389687F69E70976B99882FD0DF171FE13 +:10EF00001FE2E37153F89EF667CC05F07D11E0F93E +:10EF100046AE27BE6AE179EF5FA50A144FFC6AA6E8 +:10EF200093EC810F365AE91EDA79EAB9DD74EDFE09 +:10EF300015BC511CFAFBF53837F1A1C2AAB269EF32 +:10EF40005FD898454FF5FCE73CF55EBFAF52A5B9D9 +:10EF5000D46F4BA680FDD66D19743D8E5BB729D357 +:10EF6000CDFF4E0D6F7F689CC4BF73CB9FE2F9E16C +:10EF7000CE1A273FE7C6024568475A8D9E6B6C46FE +:10EF8000D46F7785F743FDB25CA788F6BF6FE0C901 +:10EF9000AD6550FEE83933EDCF2CDA7B6D4A043F86 +:10EFA00033C9593DED232D0AC5EBB525FBE2CBCB8B +:10EFB000C2F1E515097A2C516F9D8FE9212FEAA145 +:10EFC00033A88728CEC1F5501DE3F8047AB7E8F3DB +:10EFD000D7343D34D752F529D2FF6215EF566BF086 +:10EFE000DC6E8097F527438B1B893F3B0F223FF751 +:10EFF000BDDF5D8CF91F4FA972FD97E3FC7FC5EF64 +:10F00000AC032B8693BE1B3895E8E3ABED768AB351 +:10F010007F65E77ED157AF08148FD932E09B75DB4F +:10F02000A19F2D63AC22F718E46B46F5C5EB45397B +:10F030003FA55BE44574FF464D92C8E38CCC46F790 +:10F0400000E0296278D6B536AEBB13EA0782824764 +:10F05000FB7129EB48462692C773BC31E3D4A18DDE +:10F06000D0FF8A6B9388B7162BE1490846D3B726A1 +:10F070003FD2251EE7C0F332069B2C5642BB65FBF0 +:10F0800053E9EF1E648CE7FB1EEBBF59E9C70FB5D0 +:10F09000FB792CCFD528C89EE3BFF5D1DFC559D861 +:10F0A0003096EE7748B774F6A944FA683112DD2F2E +:10F0B000BCB39CDE0BD3AA3BF0EF6E9C6D7150FC91 +:10F0C000FFD0762BBF4FE4157EFEEEEC2E0E8F8523 +:10F0D000394EBAC73971FDCD42443D9FD3914CE7BB +:10F0E0008F77DD918C70FD50BB7F430CD27D824CBD +:10F0F0000AC6DFC3B1D3588D7C727AC32DBF2B47AC +:10F10000F84E9B5582FA7C7CAA275972C6EAB5F361 +:10F110009AA6B4B2C750BE8CFFD648FC6102BD8827 +:10F12000E7660F6FBC6A11F2C9697F522ACE57DABF +:10F13000F008DDF307EB22BC9E6EB1D3BADC2CBC29 +:10F140000EE3A32B36AC5FB70DDAFF0EEC38CC1B09 +:10F15000393D2D89E273A75F7611764F8B05FC9EB2 +:10F160004266EAF1FEFFB7C61909EE9503795CEF36 +:10F1700034C6F524E4AFC26B50EF2E6B31D23ECCD7 +:10F18000E16927B696A5C7F84B98D6D07910DBDF92 +:10F1900003F5D0FE03C54BF7151EDBF4F93AE4DBAB +:10F1A0000FCAAC22E6192D7AD4487FF7EA9FE537DB +:10F1B000FC4540EECF53F194C87FF3360DA27B1F80 +:10F1C000D906CE87378E17481FFC17F870DEF85126 +:10F1D000313E6439D3E2CE9B3F9560076AF25ECB45 +:10F1E0002FB57999BCD749F781CA02C8DFF5E3F991 +:10F1F0007D1EEBC7F3F3C7A6BFAEDAF75B98BF730C +:10F200007C60258E3390C945486F52A75885EEAF74 +:10F2100093A9F78C78F87D4E5BCD7E03D1A329F0BE +:10F220008BDFA2DCDFB06824F27FB3DADF2FC70503 +:10F23000FE653CF45F7757E0D3830CE96E0CC9811F +:10F24000BAAFA71B303FD7B945BBD7D05F6547B929 +:10F250009FEE27BAD4E4783ECC77770FFEDB63E3EA +:10F26000B97D959FEEA77EAA2B4555BFC933515F47 +:10F270003DB4D8C0701EE3BF1968C0FB77EE0556D9 +:10F2800044FBC05636CD60E47647673EEED77DF34B +:10F290005D9F068083B3CCA0EA3D7F3B9E4F742ADE +:10F2A000295F08D0DFAA2CA384F10867591AFF4E02 +:10F2B000B6D177F90569ED681F8AED295FA45C1165 +:10F2C0009B9781D924A70DFFECB481E8C2BD859737 +:10F2D000353AF8AC55203E5D85A90FC5FC9E82707D +:10F2E00021D7BBA83F576559683CADBFED65952157 +:10F2F000841F93654F7AA97A3F33C3BC6C2E7FC0BD +:10F300001F61FCEF68F1FB4E1C855133CA216DDE95 +:10F3100075B6D0043C579908BF3A759E77E33C8197 +:10F3200064C678A15CD0FB3C9B54F9A97DAFCDD3DA +:10F330005112881E25FB2785E5531E6180FEBEEF16 +:10F340002E934BCD53EC68C172FF0223EDCB19D540 +:10F35000F38FBB5880EE2571A6733BFFA2FD9ADDAB +:10F36000984F2E35023D0E80F6C6959447DEBF2994 +:10F3700053C4FCF226B39A6F0E8605C663942A79AD +:10F3800037D62B169BD8E4A57C5A925B0D275D24BB +:10F39000472F1AFC643CBD3D3E8FFFFD57C6F781E9 +:10F3A0007244FF330B002FDE415CEF27C2E5F7E329 +:10F3B00039FF3C87B97BF09D77026FB75EF0F27B37 +:10F3C000579864C07B54FA1BA7D178FD8DD267F79C +:10F3D000A7E238824A7FA640975C80F17799F97D51 +:10F3E000C96756B7FEF48CB9FB78DAF366759C8270 +:10F3F0002D42285F77CF53743CF7B732D26426F79B +:10F40000E0DFFDBFF2FC5F3CF4C63A008000000084 +:10F410001F8B080000000000000BE57D0B7854D521 +:10F42000B5F03E8F3933934C9293104212427212D0 +:10F4300008440C388118115027098941020EF82818 +:10F44000A0E22404089097506D542C13129E8286DB +:10F450001A6D7C0F28F8423AD88854020EC122BD9A +:10F46000551BABDE4BB5F5268202F2C81814ED2D04 +:10F47000ADFF5A6B9F93CC4C9282DFFDEFFFDFFB19 +:10F48000DD7CAD877DCE7EACBDF67AEFB5F7D4CA14 +:10F490000EB1339B31F6AEC9B32D95B1E5E9F6D97E +:10F4A0003E282F1792ED6E78D69BE01B3CDD9BAD7E +:10F4B000FCBB601F126D83F7116CB6179ECBAD506D +:10F4C000CE64EC07FCBBAEEFB3749DC45C837ACB17 +:10F4D000931E34D778A03E93B5676AA1DFB2B39983 +:10F4E000E336B0DEEF650A7361BFA1FD986372E396 +:10F4F0001C83198BB73CF2E4B1F1D080D98FEC8436 +:10F50000F64FB8A3B40DF06C36E05C1CE6D926C00B +:10F51000D7360B63B100677A8C4702B8D91EC62C68 +:10F5200071000F36D5188BABD70EB9A0BE3FD7628E +:10F53000DF6A8777EB0A1C1D16467F3FA4C17F2C2C +:10F540001D4C86EF8F4D642AC2E774443386E33343 +:10F550007BB3341C5E381C23627318ABE64D98D025 +:10F560002AF822C63296A7C3676D5CD481F085D78E +:10F5700071F8DA0CF8EEB6E8F01D7E1CE153C254C7 +:10F58000558AA62E1C969C5EF85883B6A60EBE43DE +:10F5900087F60D005F696619F5C760BE5193FB8160 +:10F5A0009705CFCF8023FC71BBC6241CDFDBB81DC1 +:10F5B000FA738F91D56D1AC74F3C8E5F95C4F1C316 +:10F5C000DA539D11D03EDED22944522787F2603CA7 +:10F5D0004564FE0DFDE06761BEA308D7A32DCB27D0 +:10F5E00033C047DB9CD1491AAC5BB1E59D23C258BF +:10F5F0007C32AF84FDD84DA73B3202E14C8AFEF24B +:10F60000728620315CD7AADA7C27C219AB30B705E5 +:10F61000E0F1CF543C5B019EAA7B73E9FD5EA1E65D +:10F62000DF1F40BCBD67B26F83364D331D0961B12A +:10F63000F88C13DD80C7DDFF182EE23AF9DF93A8BE +:10F640009D30AB28418272B55311CDA9BDEB64E06A +:10F6500025BF35DA1D9F4DEBE61DA2C2738F40EB2F +:10F6600052B5CEE4B1A4E2FC3F6C2E8371638A9C58 +:10F670009F21FDA74033ECAF69BD64C17A4D732271 +:10F680003D0CEA9D153A9EB99FE8CD66477C36A5AC +:10F690007A7D227E9FAAD9DDD0A616C7C3F5B3F125 +:10F6A000F53E6939D87C0CF860B1F5F7CD38AF4933 +:10F6B0009278A7D3467C1037730C9453584F791621 +:10F6C000962581CA274D6CF66B36023E6E66440065 +:10F6D0005F999813F9A4748BE84EBF22E0BD00EF48 +:10F6E000337BFBB9D4F74DD18DEC5EC4EBFA540FEC +:10F6F000E2B556660E7C7F4EB647FD33FE2EFB5EAE +:10F70000628E00FE2EC37600D7C391F69C9901ED60 +:10F710004E3844C6AE646CBEC46AF0BBB5F1854FCA +:10F7200077C278797529A91B627BE9FF739D9F5E7B +:10F73000D6EBC7211D07F4FF9889CB1D7BDB8B43DC +:10F740004B02FA2F3DA17422DD955AB67DFA63F87B +:10F75000C4E89F356BB1CE3197D2BFC9678EECDB61 +:10F76000EF5F00768477AFC2D7D1DA38EA18C231BA +:10F77000D0FC3ED5E767F0A9314E1B8E9F89E36729 +:10F780008C28099083A5162BF165A925FD18E2EDBB +:10F79000C7CA01637E17EFBFFFF955E73B0E21BFD4 +:10F7A000C72A8E2D48D76D56ABB60AF8E080F57A99 +:10F7B000BD1CA121BF096156E2A7BCB0700F95C363 +:10F7C000C73CD588EB1C6E65666489182D09F1D39A +:10F7D00066BD6C0483E794B0A925D83E2FCCAC99C4 +:10F7E00005EC6FD4316C0FFD336CDF661D938DF526 +:10F7F0007ADBF172E6551AC9E329E111C46779E1B0 +:10F80000660FB6CF1BAA65AB30BFF966FB6784A74E +:10F81000FA286D1B3C8F46F3791BF3EDD4F1FFA55D +:10F8200043A07EE687035D66F6AD67D0ED09AC07C1 +:10F83000CF2557398E231E463BF87A47643A536DDD +:10F84000201F5FDD7FDBBF87C1FB3809EA4F24B48F +:10F85000B9D90490BF488B13F5F587FF3C2A82E4A1 +:10F860004BC4AFF76E99921450D6EBF7B67FA764EE +:10F870000AACAF0565AFFE5D407192211A65871530 +:10F8800050B036A2F7BB1C0FF5D709BCBDBBB1A465 +:10F890004066EC0BC1187FADC701F37AD8CA82C6A7 +:10F8A0000B844F0EE9DF04FDDB34A3FEAD77627FEE +:10F8B0008F8E33CA2DCF3A00FE874DC1FD11C9E8A6 +:10F8C000EDB1608C577BB06CCBC62494A78E2CD442 +:10F8D00017B6EB5C31B9803FCDAFE64521749F147C +:10F8E000375E016385AB37315C5FD3F737330DE0AB +:10F8F00035C50A0E0F96610D3594DB49695B495F8A +:10F90000C99A1BE9C49CA08DDB00ED9272F9FAFC48 +:10F910008749A5F534C5E6FA86423513D3B6BF0745 +:10F92000F5DFBAD6A5E5E2FAA4141F423A6C9A357F +:10F9300071ACCB86F24B7620FDA48F503C02D4B341 +:10F9400034811C449C24899E74E8D282F3A7EFB7CB +:10F950006E93502EE6BA2EC37E0CFA486F72282E94 +:10F96000A41B9DAF9A16A7894200FD5C9BCBE9279B +:10F970003D4374A0DDB32163569E15FA93A3A75CA3 +:10F980002969BDF5D2D41122CE3B2D89D70B8F75B5 +:10F990008AB9502FADC91587C84C935D7370BE6985 +:10F9A000B3172AEE54EC57A27966AFF3587311DE01 +:10F9B0007291A5437F2373351ACFA49695607DD3AA +:10F9C0006C8B0DF5D513CEED56EC3F3D63EBBA34A1 +:10F9D000E40B55B663FDF4265827A827DF3B97ECC8 +:10F9E00000039E0DAA5C8470E448AEBB488F0D9A5C +:10F9F000E840FB6FA8F441EA16A83F74D038A91E6E +:10FA000050FD9810CC2FC6F3E33CBE1E0D82D37D73 +:10FA100023EAC92CC6507F1BDF53EC8CD6F5965CCD +:10FA200085EA696E350FF5FFE46F9C84975B72651C +:10FA30009ADF7EB9235C45B899E3AE529CA7D3A662 +:10FA4000A1BE05F5ED13A17EEC4ACD8EEB6F89EDDD +:10FA500078F00AFC6E17EDE9F8198919CA677F3347 +:10FA600064EB0600E578AEAB14D72D47EA78E446A0 +:10FA70009CCF8332E96D26733D9E7C938DEC505371 +:10FA80006C3BE1797D3C23BBECDAF5C7C2D1DCB33A +:10FA9000C43A19DA37E1B04C6837D96C8287A1E9EA +:10FAA00060B74FC1FAAC86D9D381576D769539E0EE +:10FAB000FB0D960FB85DA5DB1F365DEEA7039B7CA3 +:10FAC000097C0154D1F003EA1DA88FF645214CE8CA +:10FAD00009687FF8C2CD327E142DAEC588F729B3F0 +:10FAE000C318D2DDA65C2EEFD89A8EDF8A386EBBA3 +:10FAF00047AE203A696712D42B6D1248DE976694A0 +:10FB00002A38D8C22681E8A84CA73B26DB93D1BE71 +:10FB100073E78613BE61787A96318E27B6D14CF69C +:10FB20007D69232C48C07A3256C7EB35713E545656 +:10FB300071FD066BC1FB650FD2F70773B91C656CCD +:10FB400095DE7F237FEAE386F5D8EDC176EE0613D6 +:10FB5000B73BDCFB24B293BACABB2391EFC3CE867A +:10FB6000894214E9612D484F6570FBB4B455EA57DA +:10FB70004FB1660FD9C95DE817C4068D1BA41737AE +:10FB800098FC0F6DCFA67155A44B639C27182B4290 +:10FB90007ABED8382FEBF36D9B733EB203EA3FD1A8 +:10FBA000FA9C15F1F6D84CB0A4C98EB347E23ACC12 +:10FBB000B13A7F954BF8B03F3412FD95872486F417 +:10FBC000FA98D0EE90385F905D3B6FC4ACBB7E0B73 +:10FBD000F0C6648F1E87F0C5CBCC22C540FFBA5C4F +:10FBE0008B6A03BC43FF8F0B9B1370BD1E4FD084E9 +:10FBF0007AA0CFEC22CE4731450EA912EDAEE88EA9 +:10FC00008234B487A732B615FA1D125EB305F964C3 +:10FC1000C89D19E3EA617DDFD1E543D8F8C603D872 +:10FC20008FFF2E4DDD0ABC19BFCA9DBA2C13C7A980 +:10FC3000A9636487337A3FF8272BEAB0DE83892CE7 +:10FC400046C27AAC4EC07A6B060BC4F76B4AC03E14 +:10FC5000CD447653498E24CD5685BAABB15C934BD7 +:10FC6000724353A37F9F40ECD81005BAE3D1483EBE +:10FC70008FC1A27427DA87A04FA81C03F2602BC0A3 +:10FC80007F24379AE01B626645420C7F8F7406A87A +:10FC900077EC82EF43F26BB270FC21C3F97383EE11 +:10FCA0007F3CC13CCDDB109F190AADE7DE33871ADC +:10FCB000505E7465297609F82A6EEEE10684E7AC99 +:10FCC00020D7482AEBE3979CCDCEFF1CD7E9D1BAC9 +:10FCD000997316603F63B85DCFDCBBEC37A18E0D26 +:10FCE000F15B64DD6EEC3ECDE9B441B71B0F1F1E26 +:10FCF0001ED561E3B86709E85FC6D07CBA9916855E +:10FD000076C9E10323E9BB51AE65E0DF209EDE95B5 +:10FD1000880EFAF11348FFF8B364CF56A157AED955 +:10FD2000A2E33C1B52C96F70E3FAFA7759E9FBD999 +:10FD300095EDCD53D2A99E8FEABD3E8AD793663A00 +:10FD400004AA67B26FD5C8AF20BDE7DE3786F80ECC +:10FD5000D04B76986DDF100DEB578B1D3BD134B136 +:10FD600099B87F60433F23AA970F6D02F73F98EC45 +:10FD70005367017ECEEA7CC36447FC4D01FE458398 +:10FD8000AE1F2A14DFC898CCDE764639D1CCFD01EF +:10FD90002CA39FB157C76345182FA744BB86E40126 +:10FDA0009FED565839F51309EF6D01FE955D1EC0A4 +:10FDB000BF1AF710EA39BFC0DAB7AA840F37CD6F80 +:10FDC000D3300FEA834929BCBD7FBD407813665903 +:10FDD000081F5F66C95BD18E9C2465ED46B9E44F70 +:10FDE00090546CDFEB87F9D49901F3B399ECCA0214 +:10FDF0008423D752B3CD7E713C19EFE78F2B2B664E +:10FE00002057E62F5931039F03F957F3D79975A36C +:10FE10000ADE05E84F39C42F32E80FE4AE12E827B6 +:10FE2000E6E771FBC3B3B2F1C963A6DEF78BDDEC85 +:10FE300000F9F9CF43FF017C707D1E33E4B782FEE9 +:10FE4000C2E23F5BC9EF09AD77DE0A7A02E8E39EC2 +:10FE50005FCC5490FF16B21A7A96433B7CA2B81539 +:10FE6000C11ED5D6C98467ED45C1A3A572F12F4E39 +:10FE7000C0A72AE2FBA5A0869E40D5E506A9771576 +:10FE8000BC1640BBC177AD01CA43609EEB6537EA43 +:10FE9000DB2D47C23D02D45B1BAB29A81FD7368898 +:10FEA0003C9EB251F0A4F37EE349BF35880EEC6767 +:10FEB000511EB78F56E629F40492F7103CFA13F05E +:10FEC000C5FD6D7DBC3A26FAF0290AFCB916ED9FF6 +:10FED0007EE250467F0DA61A0BDA67FE61A28AFC0D +:10FEE000745E71CCC6F99C8F19C9D03E6B88A85935 +:10FEF00057C4BF932C386FF515D1F72C911BF228FE +:10FF00001ED09EFB93750BD2E31DFA3A85AEF782A5 +:10FF1000C6E0F2A2E6E0F2624F70793E73FD2A1E5F +:10FF2000A6BEF4C5E0F777E4A9D47F29B3D3FA34A9 +:10FF300098B43FA6A2FC5F2F3384BF2E89E34D1CEB +:10FF4000C69F69D15366935D10ADB0748297C39F0D +:10FF500096152320BC0DD19CDEFEB3F086C2B936C7 +:10FF60006F24C76F34E7CF06E04F1D5FA45FE6EF55 +:10FF7000303F87F249D3E9FF94C0E5A17BBD44F649 +:10FF8000CB13E5B07ED0EEF38DE9647F794CFE0CA7 +:10FF9000B48FDC9B223494134705FB761FFAA54CE3 +:10FFA0008B437AD996C7E5B3F8F035392897DF0D3A +:10FFB000E19352BBF08104F49F7FD3C61CEC77E23F +:10FFC000206637036C6F2A9EF07CA1EFFCE14F9313 +:10FFD0000DFB06963465855628007C95F07E10CA88 +:10FFE000A1C0FAE4AF2BBD7C05EB76F778E7EB799F +:10FFF000C47F9EF118D7FAF2A4CD8EF87E543CBA95 +:020000024000BC +:10000000EB9D6C92F324BFAB56F8B733687FC3788F +:10001000572BD63F7DEF278582D68BA7AE7DA38851 +:10002000AEB21B02F816FFB331988FD93A983FE869 +:100030006BD614FCBEFCA99076EC1FE640380DFB95 +:10004000EE31C57519DAE74F387372109EC74C8DC3 +:100050004528178E5FE57A1FE13A56E03C2472FE90 +:100060001C89F264FF857AB227DC194CDD168DF607 +:10007000BD6B38CE73FF91783BAEF3C25C8DD6DF9B +:10008000C0BF61FF1B7667283F7EA2FB1927F21CC9 +:10009000C5A8BFAFBBF09603D7BBBE5550C92FB0A4 +:1000A000B5F986A27C8632AAC52AADE3D00F309E70 +:1000B000DA567D2E6A18D8E336D1911CE0EF55351B +:1000C000F1EFCC0DDFAF417F92C36336B9DCE84777 +:1000D000C9AD33DDE857C27845E84FA09F86F2DF0F +:1000E00004FE17FE99743FCD345B2139901DCBED92 +:1000F00033584FEE0736B97AFC321E77758A4E6E4A +:100100005FA85F86F7E2F79B3CC7E07CA8FF05BECF +:10011000003BA221C7711EF5A04BB767BF45BBE3EB +:100120000AC63A74BFF3F04737915DF12D73925DC3 +:10013000F10F5D9E1C3E706B14DAA7C6FB2F25D70E +:100140003D2AF0FF22E626F9BD9879E8C99A0671A2 +:100150003A60AE4284AFA2186CAB685E3621FD3ABD +:10016000158A43233FFB42F839B0CC809F7D017450 +:100170005421B7AF21BB103CA44120572BBDC1F582 +:10018000AB989FE451F59E1FCC41FDE8F435445AED +:10019000965583F80BF1A37AFCA106EE3F01AF91CF +:1001A000FF149ED961427FFCC7D63FA935C6A1BDC9 +:1001B000037600C993B67D02C5930A259BC382F3DB +:1001C00007F962E676D28C2BE350CF315226B18A02 +:1001D0007F4D0DC69F269AD55518AB61ED8F4D808A +:1001E000F2991613D9F94CDAB806E35FD5432586A0 +:1001F00076E8628FE9F38E80792E61BB0A512C7C00 +:10020000CBDE55907F96BE18FCBDD21B5CAE66F26D +:10021000E73D762BD04FED9FADBF7D3B804F27E76D +:1002200047C4121D692CF507C0EBB1957B30360130 +:1002300070DC1E45F10EC6E3BA408F4176C2772BC3 +:100240002DBF7D1BEACD53F2F2F3014F4BF4F86F53 +:1002500028BFBD7C2DE7B783B673835C01DFF33223 +:10026000DD14AFC9C9EB9F4F67E6737F29BC5DB74B +:10027000E765370B8C2B0FD46E4E3EA7E3838AFFC6 +:1002800088379BEC3986FB35F11805C9463F598BF9 +:10029000AE4BC0B88CF336E4178B66C463C08F478F +:1002A000B99F0072260BDF7BB3307E64AAB0D98978 +:1002B000EF1A78FC80DD974AF1A348DDCFEAA193DD +:1002C00010FA11EC8CF67730FE81FD0E051CA3FFB1 +:1002D000A588DE5D581654A6BA817F5ECED6A89F4B +:1002E000A7ACED1C3E585CF487A05E16E953600491 +:1002F000AC87FDA05E18FA338B1DFD3225CC7B1731 +:100300007E5762988AFDBE95CDE178CA04EDA07F44 +:100310003189F7332CCFE5C2F2B044680720BBF334 +:100320009DF7E593BE708C2539A2C35DA5D3670008 +:10033000DDBB490E86D03DC6FF50FEB24633D951D3 +:10034000446A544E20BBFA332CC3B807AF72AEA335 +:100350007174FF63FEC3C328AEC26A07917C5A1B47 +:10036000C1FDB8A7ACBE84C075E98D23B8098E9CC9 +:10037000BC76B2B3FD0FC03A0A01F1209D2E1ECD0E +:10038000E7EB60BC3F97C7E9E6E37CC763387E765E +:10039000B6EF994DD938BF4886F8ABF2FEECC5F7F9 +:1003A0006269BE3554CEE0FE1273DA489EDBAE734E +:1003B00079F2292ED1B106E79F12CB7230CEB3214C +:1003C00063169B6FA3B8E0F3D82FE8E9EDD80FF0E0 +:1003D000470DEA8FB894C963D11FCBF9217F4D1126 +:1003E0008757453B2ED6CCE3C4067C070DFAD49F35 +:1003F0003E1DFED320E57253713CC71C21203E17E1 +:10040000AEB53B08CE166ED4E4A0EC4578EF4F2293 +:100410007C57B5E466611C8079AD59583FE7531BA2 +:10042000E9F3D3F7267A241EC7FA0DC21B91ED1704 +:1004300070FD4EEF9A9AD59FBC1B22C5505C688810 +:10044000C4BC8FA8BD7410A7807E42FB5C8F23BD07 +:1004500092CFDFA7E87A2A6585932DB0F5966DB126 +:100460007C5DE0BD88E39CC82B7805F1F94A3E8F9E +:10047000CF2D8B9734B4C3522D4059697DF9371570 +:1004800038CF06F2E97EF8FC034ED90DE500FBA754 +:10049000BB5120BF7119A8E4DA71BDF018ED97C502 +:1004A0002BD47FF8F732D15D9ACAE3B411EB743ADA +:1004B0005DC1886E27FBDBF3A360BE239A7C93317A +:1004C0007E68C5B11268DD1FBC02E38483E4C9C83D +:1004D000E7CFD48E6BC338A3BCBEFD1A44BDD6A8EB +:1004E000E661885AFEBBECE4F12CBE1E0B9BA2C950 +:1004F0007E62724D06FA6D6C0AA743DB758EE38847 +:10050000FFBC8F4D34FEF94D7C9FA329B922251ADB +:10051000DACDFFD48CC6E580FE9C9BB5C533F03F99 +:10052000D2360EA7385DC43A1EA763238020304E12 +:10053000B2E95337EA1B79FD47C310948429361A70 +:1005400017DBA1DF14B1511211FE05EB402269C483 +:100550005709C2042CC7E661BB058D821DC15ED060 +:100560009C2B629C191A523C34BD49155D01F25511 +:100570009DC2E9F4AD0B5211DAF1A285C7D72B93D6 +:1005800062B6483CCE407C5A9912BB05EDEDB029CD +:10059000228FAB37E73A12B45EBBC8E8AFB2A5848E +:1005A000B902F474A8FC794BE6F2E72DA0EC467B87 +:1005B0002FFD359838BEDD7F1789FE5374FD74F426 +:1005C000A1BF25105DF7C4133DF4944DDA1ADCBFCA +:1005D00095EB3AAE0589C2CA1AA3C5AA4CECC75E10 +:1005E0004576E5A670867E40CAC6E16D13A09CB232 +:1005F0004E658286FD55A660FCC3FD899921BDC864 +:100600009BC2098FF26607521193A3E3087FF2A3FE +:100610005086FAA7F24D047767BEA6C7B141F390A2 +:10062000DDEBC8423BF6E37C57E694C1FAFE09E2F3 +:10063000B9368CE44D84CCEDEF88DA4F5EAD83F2B1 +:10064000337ADCA2EDA1CB6791FFB75E16905ECE48 +:10065000477F40F5CE5FC904B413274C1183E45E95 +:1006600000BD0C257AD92739911F653D8F405E1F4B +:10067000BB05DB4DCA764D4238AE69F049C856FB22 +:10068000D5638F14693F5E0FF4EC133ADC41790DAA +:100690006D2695EC67B0CDBDAFDBFBC2374DA70B28 +:1006A000BBC8F336609DACC82FC6FED82FD19F02C1 +:1006B0000274E7D53CDB81EBB34A66F5F0FC65F8E4 +:1006C000CF5FE8807E6BDD66D50CCFEFACC91E8CAA +:1006D00083C4E7F3F9F9FF1241FBF9D04254F0BBB0 +:1006E00068796D43C0F8B375FAAD953551C6F9BC5C +:1006F000CBFDBF73B25687FAECDC0AD5EE8629C76C +:1007000086BDFF678C076B75511A4BC6F93BB62047 +:100710001C4CB1A81BD4DEFE62701F3B601F364626 +:10072000B77FF6C6B029EAB8DEF7E5FA3A3DA8CBBE +:1007300003DC2727F9AEEFF3635ECAFB5096568DB4 +:10074000A5F8F399952F3E85FEA41499A321BF57D0 +:10075000AA7C7FBCD696A395226BC7B8964F095842 +:10076000F7BD91F179186FA9FD9F9397B31EE17FB3 +:10077000578F07BC7B264C4C05BF2406F33A06F581 +:10078000CDEB88C1BC8E4198D7E1797C21C27F8BAB +:100790009E3FD127AF6339C545FDEF99ECA8778D12 +:1007A000BC8E44CCEB80EFF9E59CEF125BB95D9E0B +:1007B00058E4A37DF1187794867C2C611EC7A05E57 +:1007C000BA6E8A48233A697A4FA2FC8D5F08DAE351 +:1007D00065B181F91B1C9F4D259A07F9AA27BE58C0 +:1007E000C606CADFE0F1C34AC6E914D413CA97AEFD +:1007F0001AD588CBF2EF7718DF793E51D7048DFCFC +:10080000D2492864F1FB1C85E28F278DF59C93A1CA +:10081000D311A3FDCDAED989D4DF7AD66E45F9D3F5 +:1008200025EBF2B23C8CD61D7A881C1D4BFB16AF13 +:10083000619E51FD04ED00CAD52E8CC752DCD11F3C +:10084000191877BCD8FBA6684702C6657BF3040E6F +:100850008FC03C08231FC4C8A3CAD3E503F09BFC88 +:1008600008F29B03FC7794EB960247605C3D945E34 +:10087000A687F0D974BDDFD07C91A4022E578C7C62 +:100880001123AFA2075E9DFF8DE77CDD2E33E8D0FC +:10089000A8F7992E9F7AEA85F75FEFA8CED75DFA81 +:1008A00073BE99D393913F501C134CFF27F57A17D1 +:1008B000743960F41B5ACF98C7051D8EA4022E17F9 +:1008C00037A5B66BB88E9B04EE476C12A09CCDE9A1 +:1008D00008FD834D42E31CDD7F5079997F972DE41D +:1008E000D3B0C7F3DAE3691F28CE680F227A1C3D24 +:1008F0007DB86FB2C9DA1E8F7E736F3EDA5524075A +:10090000F37BF2D1EC343F771D9F9FBD6DCFE5CBDC +:10091000E17970B5AAD1FE88BE4F67AC7306D3DE0D +:10092000AE8176C50E9E8FC69AB5B79D503E28E81B +:10093000F96121EB6EE891D03C94624B12C57319BA +:10094000E65F4D08A4B3094467F817485F79369EFF +:1009500097926733FBCC63FB19E722F96571F5FDCC +:10096000FB95B9FA7A34663B520B06F7C21BAA2FE5 +:10097000F78E1B42FA1258CD1B83716BDD6EF91096 +:10098000EBC13ADC5DE01C5D00EB996FD17EFA288B +:1009900034691341DF237F15EBF11419FC35C0D303 +:1009A000C7891959C8C7A17018F6CD5E7D9F84C547 +:1009B0007B5F4339323A461B87F11715552FB47FB9 +:1009C000B92591ECD1093A3D5D3E644B0CDAF197C3 +:1009D000AE7F0A499F48EF9B68DFBA52D5E55B239B +:1009E000D71F863EAA9541CFD0FA44DA713F6D7980 +:1009F000BAF7941BCACB812EDC2AE91D82F3FFA330 +:100A0000BEF909AE575F3C3BC704E6B585E2777E89 +:100A100081631EAE93517F20380D3F5551EC4BEE54 +:100A2000CEA678430DEEFF7C849FD06F37FBE72185 +:100A30007E864A91F67A781E099F776830ACFB2D46 +:100A4000D1AE0A846BF64FA6AEC1B2D036485B0673 +:100A5000F0759574E4E03A7DACBA6A70FC0A8B2BB1 +:100A6000250E96F0CC30D7A8282452E720DD4F7110 +:100A70008E71F60B3F87E76D9DDEEE8C72DD8BFD90 +:100A8000B489FE083BFA71B29A8CED98CAE7F5EF8B +:100A9000FAFA1C30D92FF801FE039B53B2EA91FFFA +:100AA000C2FF725B35FAB7BF1C9285FE9181973CFD +:100AB000DD4F5A203AE37C5210BC6B085E5B494A1A +:100AC00002C26BD2E1B50CD6F1AD653A23068617AA +:100AD0006313A4A71E10743DE57B09CB6F3055DD71 +:100AE0009005EB88C136D47F7502E9C73FE8F87DF1 +:100AF000DA04F5909E2D2C06E307F161BC9FF8C740 +:100B0000440FC6499C79BFA138C97355363BAAD05A +:100B100012A651FC723E73501CF18BDCBFEDEB80D2 +:100B2000F93D5FE07A96F85AE57AFACE4FC3C88F5E +:100B300071E64724939F3299E3FD62749041C9673F +:100B40008CCD9A2ED0BE2108878FAB60FC9BE15FD5 +:100B500028F716F4F899DA60AC770BBE87F9DDCA8E +:100B60006A4C08CF6CD648CFB9CC4BCFDB593B3D54 +:100B7000E731755F07B4FD63DD90BBEF8536B344A5 +:100B80007FB202F3A8927C6B50D800FE7723FECF91 +:100B9000177CF09980785F51328AD6B969F025D1F7 +:100BA000EF4C81E313E4D37EC403C8A7EC2C31805F +:100BB0006FD06940B8E58EFA2898CFCCB8D42CE431 +:100BC000BFEB2EA849388F42A60AB8DF5F20D9C8EC +:100BD0002E693FA66EA17CDA1E7FCC11990072FAB5 +:100BE0007A5D4EFFF25C248B8576ED699287E7DDB6 +:100BF000DE25B74019AC36C21363AEC42E28BF0B36 +:100C0000F63ECAA576C6F3B3DB2708646FDD10BFD6 +:100C1000790A869BDFA96376B473DFF958B223DDC6 +:100C2000CE683E246743F9FD5C8B5FA07DC30E193F +:100C3000F96F9ACB5613E80F1425997AE3A2F0FFC7 +:100C40001B4604978B3383E3A8332E1247FDA22063 +:100C50002216F5081BCD46633CFE60481C35FFE2BA +:100C600071D4D30501715410E4B4DFB9FD9A415B2E +:100C7000910EDB271F9CD48576536B2A66D4B1B6C0 +:100C800069DC3E4929747E83EB7ED6D4B110E9E459 +:100C9000F39530D0288CE35A98C3CCD8972B552A9B +:100CA0009F58194FCFAF566AF43CBD3283BE9F5D4B +:100CB00069A7F28242C78502DAF7AC69463F6B79D1 +:100CC0009DCC50EF2F8F58C6CB268B8ACA65EDB0CE +:100CD0004362782C6607F278C2E216CF1A0C1F2FF7 +:100CE0006D752898FBB77C584CBE0DEB3F2AD02A77 +:100CF0002E3C5C7308C9E7EC479FDF3A3D405E57E6 +:100D00007E2F907CCFBCC1115E08E31E5F3981E06D +:100D100039B9D241F09C5A5944CF55854E15BF3B45 +:100D20005A3BD7C443FFD37774CA43E159E0102834 +:100D3000DE70AD83793CA998CFCFF56673028F8FB3 +:100D4000E68E99F5F44F19CA715722B6BF25667E13 +:100D5000C120783F6342898CF57E7281312C1B74EF +:100D60007D31FED058FB59D4EB67DC1C2F1FB67CBD +:100D700048E56E19F00233ED6E0927FFBCFB4818F9 +:100D8000E94B166BBF651294CDBFE771FD11EACF39 +:100D90004FBC4F788DD4787EAF7729C25F7636CC42 +:100DA0008EEB7B0AD60D135E8D71DFD85172341134 +:100DB000E5DA6A0B3327C2F7577FD681E5B582ADF6 +:100DC00006F7054EC5E8FBD1AC261CE9E96CCF7EE1 +:100DD0007E4D38DAE9558AE15FBB2EC7F2A930A310 +:100DE000BEEB72ACDF639FB31A3BEA4143EF9B5308 +:100DF000EEB3635E528FDF99749FBD94ECF99A72E3 +:100E0000E4B3403D7F2040CFAF55B89C30F4FCDACE +:100E1000481EC730F4BC59972FFF857AFE665CE701 +:100E200033FBEB623042A3819DC9AE43BF0CD68D2C +:100E3000EC648BBA0DE05CF6FAE543707E2C29B6C3 +:100E4000DF75C775D04605945F7DE3726C3F324E07 +:100E5000D610EFDB5FDDDC9D88EB27596ACC245F81 +:100E60003CC4872FED7C3AED7E28BDB46B7DD86DF8 +:100E7000F03CBAE98DA1480FA3C01F41B938FFA1CA +:100E8000DF0CFD0DB47B01642AF6B3D7643FBB07CA +:100E9000F5DDD316F2275FD854390EE57AD92FE65F +:100EA000142620DFEF665928C6EF2FE47EC3C2E682 +:100EB0005DBF40BB2DD3CEECD8DF154F758A89D0EE +:100EC0002EEB79A11E9FE377A44AB8CF08F6E07D08 +:100ED0004897A34566C7780DBBF05C62A0DE751726 +:100EE0006A4171B8CB87151DC67317994D5FE72509 +:100EF000B240FB318CF4976137BE927CA4BB44C3F3 +:100F000001F83EDBEBAD377D88F3DC2BB813D05F07 +:100F100077972876D2DB1E9E7B7BA66538D99FBB50 +:100F20004537E57BBB4B619E503EE3743F8E78A90D +:100F300084FAE8B75766B57762DE4C65741A437F6A +:100F4000F0846739F93157094CC57956B53C5A8850 +:100F5000747F6632B30B307EF9EBE768BF91E15ED8 +:100F60002CF6D7521F3717DA3F98994779A04EC908 +:100F70004BE3B16A3E5E75EB2E0B9631350CF333C5 +:100F8000A35B730F0ED57AD74DEC782815FDECC115 +:100F90002E0BED9B37A7BA13D00F32EC8BE70B9CCF +:100FA0005B0A517FA98F50BED3170017ED735EA265 +:100FB0003DA088359497C9E2B95F66F43B4CF42DA7 +:100FC00026FF0C7A46FF6C9BCAF79F70A487695C6A +:100FD000D72EA4E7A15209F97D43CDDC6F63EA4D1A +:100FE000941F79A9E3FF32FC1F647F568B917673BF +:100FF00076AFFD367B50FDBE0E58AFBA68D73E1CAB +:1010000067816E0F31D9AEA1DDE08A76EC2F24FB2B +:1010100013EC0C91EC8B362C5749608F0E0FB047B8 +:101020002D97665F6C8E761C263C5E627D8DD99B0B +:1010300031EED6A387BE1D17A487EA23149685F147 +:101040008B263397B76F8B1587C01FBB06BB107BF2 +:10105000FB5B1E318EF8BD9EB17EF1B51FF8DD053C +:10106000B8F581BE748DC24AEDF5B82FE080FF451A +:10107000009D5CFBBDC85CFDE453194F58A72F7160 +:101080005EB92C3CA89E8345D3BE22B3C55CE27CEE +:101090007DCF05EBDDB6E702E73BB9FB48389A9612 +:1010A000808721F81C683EFBF4F9BC85F381E7DEFC +:1010B00069CEEF11BE6BBE5165B443AE9541DE06FD +:1010C000D82D00FF3FF0BBE3425810FC3D747689F9 +:1010D000F0DF2DF0BC42F6B5427E65AB1E9F6A5D27 +:1010E0009C49F938BB31AE0765F72C85ECFBD60877 +:1010F0009EC7D8FADE60BB9B511E1FB7FF4B785CC2 +:10110000B6D5CAF9A135415531173CD1CCBE6C4199 +:10111000BE97A218C61F7AFA1FAC923DB857607AE4 +:101120003C8C8FDF373E28917EF6CF09A3F85953C8 +:1011300096EFF25FD1F70C8AFB1AF1BF4489E7FD05 +:10114000B17A9EDFDC14B1ECF763A05D535D38D952 +:10115000334DA99E75982FDBF4C0706A57CB7C4F36 +:10116000527E805FA17D8481CF6DB92382CF6DB91E +:1011700023FA3FB705F500EF7FD2D7F788CCE36CB1 +:10118000473CC1E7B68EF4E44FF27E2EF5BD11AFB9 +:10119000FBC4387F10DD3818F33CAEBFDE75EDF5CB +:1011A000B08E73166CB3BA02E2F273AC4E07BE3F58 +:1011B0005AB6ED25DCAF6365DC6FFCC4C807FDAB38 +:1011C00048789AAC744CBB15F030F93F4401F112E9 +:1011D0004A1F3DF1D115BC7E5F3C2DD3E3B712C54C +:1011E0006F8D7DE3676DFDE7AD1661FE25DA5B2B44 +:1011F000443DFF52E0F9AAAF9B8DF86848BE2ADF54 +:101200006779D63B98F49A4FCF7B7D56F60DAD4665 +:10121000BA69B5523E2DF4601D0DE5B3227B0DED8C +:10122000B43B7579F92CD3A288BE0E4BB4CEBF0C5B +:101230008FA4FEBB1E80F1A1ECEBC1BB3DFEA6005E +:101240007D5B2FE8F9A97AFEEAB37ABD8A4BCF67B6 +:10125000BD0BF13F603EEB80F81469BFDB7FAF143C +:10126000146F7EB666988E4FBEAFE10779B315FB5B +:1012700091A18CDFE50CDAE7E88937570A3A3E3D61 +:10128000EB311FDDBD2F9DF064E4BD7CF980487E0D +:10129000DED91547739A356CCFC6EEC17A2D66AA92 +:1012A000F76C08DD3EDB8327BF15E9D385F61C9478 +:1012B0003F533B2202E3419F39BF8C4039F7E75A45 +:1012C000C9A7FC937CD7DB9B8FFF9D8D85A753E936 +:1012D000C4BCBBDB577C7E3BEE0BDD5E7E611EBD7E +:1012E000AF08CDB70BCE9FF35DEF78F2FA2B03F08A +:1012F00079421C307E4FF88C108DBC6A5AFF374FF4 +:10130000241AF9C1147FF79FB4E9F8E6E73BDF6CD4 +:1013100049B5A3FDDA83CFC7CDF4BD97DF3DE181A9 +:10132000F9C16FCA1C3F6F7A82F382DFEC89C37BFD +:10133000C8BE37F056AFDA2D8178BB7BBCEB0DA46D +:101340009755B67116CCE32A8FCA3B8CF1D0DA22BE +:10135000D7DEEBC9DE395B88767C35D8F148DFA76C +:101360004DED87303EC9565C9A5E5E1AD65A25808E +:101370001CF8AA75DB6E7C021C8417F61A97DBA793 +:10138000555F24C2E312BD0AE1B394D560DEDE12DC +:1013900006E56CB22F6BD65EDD378F93583E0EDEBE +:1013A000E33F281FD8AB4C8AC5764C7B42C5F74A31 +:1013B0006F7D8A2B78C80E84FACBD01E5B1ABDE7EE +:1013C000A149F07E89CD665911D3779D97B4AC6D54 +:1013D0001F3EB6EFFBBE7084C82BAF7491F3B8BE4E +:1013E0004894D7BD72DD47FB247DE53AD40B58E71E +:1013F000D3FA3A9F0E59E7D33DEBCCFBA965DC0F3E +:101400005BAD8F6FD2C73FED3D9A8CF6C559230E69 +:101410006CE779394B7FC5F36C56EBF27DE9206FB1 +:101420000EAE47A2149C87623C975ABC6B904E55F7 +:1014300087BA6C6D426F5C79A9D3ABA0FEB468FC2F +:10144000FD6E3D0EB48479283F2FDEC5DF2F753247 +:10145000362186BF47F96CF4B344F424E33A1A709A +:10146000F4193704EFB6221EA75E6DEC6B45703B96 +:1014700001E529E26D54B31254FF6C8472A703E0B6 +:10148000B9CC13FCDEE83FBE48D0E37101EB9D3AD6 +:10149000301E92F5FA2FBFDC535FE279AB78925A97 +:1014A000A74B8DDB1998DFE8FE930E1F633F1D0AE3 +:1014B00076E752E4A1B45E3CEDCE720D8DB1911E83 +:1014C00021B9BD3B1ACA99683FF3F18D720FBE4333 +:1014D000E87BD59F72C8FEDD5D270BB8DF5D5CC47D +:1014E000FDC056D14E76B05BE1FE6C5D44CE10CCB3 +:1014F000E3FC6AA5E311DC370F9DD7972B1D8EB255 +:1015000080F70B9BB32C48378B9ECAB29406F8D158 +:10151000F52F3ED7A6A13C7058FC22D052BDEC79E5 +:1015200068622CBE97BCC011F01C6F417C9FB6B5A1 +:10153000BD8FF5163E153D2EF03CE2A2E60247595E +:10154000C03A5CFE62F0BA8CF10697AFD8135CBE6D +:10155000B588D1FC7E6CBB2C5F7079FCE1E0F21B9E +:1015600013FC12E6E7CA36D16311F0B94AE1F9BAC1 +:1015700051FE7418EFCA8F1B14D48BC7193B8F7E92 +:10158000F989DD6B73D07F38C5BCFF3A1DD6616128 +:10159000EB6645D6705D6B0AC720DEF32CFE6DF658 +:1015A000BE79EAF0654D25F4BBA406E4AA7AF1BC45 +:1015B00075E39C1CFC6504D257281D9CD2F36D2B4F +:1015C0006AA73D1278EEFB6AEF66CA075A5C1C3CBC +:1015D000DFA5B2CC50FE0D24D7E4C8F642946B9D33 +:1015E0000F0A6C03D1AF7A6D2D94E737896C03ED48 +:1015F000E3A93F5F8D71296718EDDB4DACCD6747DF +:1016000031CF63E35D87300E5222F13C1075829A30 +:1016100083E720175804F24F5685FF9CF2E5CA6114 +:10162000FEB81F68E4094F6CDD22219CA52179E5F5 +:10163000651B43E0BB483EF992E77F3007E797F32D +:10164000F92CD0E193DC33C89E99A8C7E78E619549 +:10165000AB310FDAF97811E07962532EFF2E737FE8 +:10166000AA92F1BCE64A8BEB1E7DFF40BD1EEA1F2D +:1016700006BF12F173AE398AE2D2E7B01F2C3FC524 +:10168000E3CEC67995CA41FC7DE5AF05DA67A8943B +:101690004A481F552EE7F998481F8E0078911E0280 +:1016A000CBACD1D8C7F151BB25358CEF93C2BA3939 +:1016B00082F2FD7DCA0918A7CA2D789F88E6F9D065 +:1016C00041FD307EFEB49AF1B804E645077FF7107D +:1016D0009D3D6BE2FB2960C6903FF5EC92B9612815 +:1016E000AF40FE70BF6C26976717CBAB68CAE2F3BA +:1016F0006E5A9C4E7E5D22CA48C4DF237C5FB04C8C +:10170000FC80FCB6B2448E0793EE577D82A024E0A5 +:1017100076441BEDD73409B00A599447E1B6527F9D +:10172000A3F93D12BA9DCE662B03E8DDD7280FD76B +:10173000FFA8D0E32720FFCEDD3C24388F62939EA4 +:101740000F243B465AE8FB6514DFE9B1C306B350EA +:101750003B6C70A07E9EAB9F639B1B723E6B6ECFFB +:10176000F92CCFE0C07C888BBD37FCAEE357B94E77 +:101770001505C4DF9AA23D563CAFC0CA2F6D9F71BC +:101780009BEE17F9375B09FE63023F2F5116E6DC2B +:10179000701DE2FDB1B434A4C7BF15F1FD819C3CBE +:1017A000C74895D7B7133E1CDCAF3E86712CC07F6F +:1017B000599A63249E8B34F2A93FCBE2FA285C3F0E +:1017C000AF2B4FE57A519E2A063DD9141ED73B66B2 +:1017D000E574773B7316226AB7693CAFB74C71FE6C +:1017E000CB3501F0F4ECD3318DF6E922F57ECB4414 +:1017F000C181764BD92FCCC4474C3FDF71FB910C94 +:101800005AAF63BA7E34E887E9E71FE7FE6130E547 +:10181000611B72F4E274ACEF1F2E36E9FE3FA7B3F2 +:10182000A6392389EEA27BFD7F4ECF0F47F07E0ABB +:10183000F212307E84F93EFF81F50B7AF27DC82EDC +:101840001BD82E047A0AB20B395DF4B50BFF9FD179 +:10185000DDC4A9570E4C77D0FECA7FB63F5BF9C6F0 +:10186000ABBBDD00E7925F3D1AC9A0DE49B931CEBE +:101870008EFEE8B6D591784FC409D91D89FD9DF437 +:1018800048740F40683FF7EAEB8DFB80425C6FDEE7 +:10189000C4572FFF6DCD7DB02EE705E647BD51D56E +:1018A000F2D735F7019E0F811D82798C27E48E4295 +:1018B000D4338B4B6C357576946F21E7215E783489 +:1018C0004EA3F330EEA1784E0FE425E53F563D6F71 +:1018D000B263DCB3EA23C98E6452CDFC6B10BED078 +:1018E000F6D5DEA3E4A7A822F3274DEAFB1D033BB0 +:1018F000180FAD6E79F06B8C9357B79CFC04FDCA42 +:10190000D07315E5FAFE46E8BE60F9547D5FF02A13 +:101910007615DA93801FDAAF74035CE97CF989AE3F +:10192000EB5F7A61E79B00C7C94F8664E17D13A72F +:101930009FFF7D24DE0B61EC0F1AFBA8A7BDC3A39C +:101940005CFDE0D7789E5DC982F6910CF9AFE1BDF0 +:101950004543189E6BA26785C91789FE55C5169326 +:101960001D569855BCFADCF62790EEFF64A67B1E48 +:101970002A5E3DA7A09CAD101C7E218BA6132904D6 +:10198000E4BB2C7DF58BC227D1DF48905831ACDB0E +:10199000925F7FCBEB3B98DF0AF597EEEA2CBC1FFA +:1019A000CB2E5B8DA59F75CBF71E503A6CFDAC9B83 +:1019B000B7B390E2B52F7D47EB7272BFC086A4F635 +:1019C0006D5FBEED14F993E02FF955D47B5EA94409 +:1019D00089EA6FFD7C33DECCA6EF944777B1752C96 +:1019E0009ACA747A8F60989F5DFE89D9538CEBFBFD +:1019F000D072A2FBE3720DA7FBA757C7A13D5C6E97 +:101A000072C7A9F4E4EFCB9FB95BA74747023FB782 +:101A1000EA4EC0792D78EA169AD742E6223A2C7F10 +:101A20009AE7E77E0B7EE0AE7ED6F3CC542EBFCD98 +:101A3000ECAEB1C81FDF424F68D71C57B87E73FFAA +:101A400091FBA566B6F533F4BFBF6D1F2CA0FE93C6 +:101A50003E30D1BD533FDD174D719903BABCCEFF67 +:101A6000E0DB42E4AB9FA6CA356695E6EDD6F124ED +:101A7000FCC0E363740E91F278D3B0DF6EE50EA87C +:101A8000FF0DFADFF6A0FA84A7E35BCD61789EEC48 +:101A9000781CF76FE0EF8F0CE983F7C5AA567CCF6F +:101AA000F99869DD38FFA41B38FF57BF78BCF009EF +:101AB000E4B7525B4D14E0E79B8F8E2AB8BFE38EEC +:101AC00015593AC2D5FE0595997DB01615DF8B8F55 +:101AD000EA3DC1E7C0AA9FFF22846F43CE95B11AA9 +:101AE000C25B35E3F73A1C57FC0ACA03378C8B7E7E +:101AF000D3C2A6807367D8DF8A133A3D28BDEF535F +:101B00007BF9CED8C75F34C03E6628DF1F9FAA9FEF +:101B1000ABD2F9DE68CF9EEA7FBFB997CFDD84A74D +:101B20000A1373ABC83F7F32937EAAD8CCF9918158 +:101B30009C4C077A3FBAF160DCD580A7535E536CAA +:101B4000318D1A2C57CB5FFBE2D05AA89F182F314A +:101B50002BC9D5EF14F4F3E3F399DF0CF09F2AF7C8 +:101B6000086C4C3F7C09EFFBE5CB72F67F579EB2C9 +:101B70008D5F63BCAE17EFC17CB86800791A734300 +:101B8000305EBF65995193F0A35A9242FB1521F83C +:101B900035F01A2A17774ED5F8BE4B885C84BF7F84 +:101BA00065017864ACE3D05AC0DB793D2FA5EAF932 +:101BB000BF92BE02B4FA71FFB7CAF3359557A3BE00 +:101BC000A2F2819B311FBBEFBC83F119FAFD639434 +:101BD0003B4067CEDFF0732215AD827E7ED04D7E16 +:101BE0005735EE4751EDC643436303CB9E90B23762 +:101BF000A4BE23A4EC0CA9EF0A29D704D5AFD8734F +:101C000050E187847C41F5CCB5D3C8EFEA6B2F78DF +:101C1000681ED52D5F2B6EA48F243FDD0F635AC540 +:101C2000DC11687FED93C8FEEAD2FC916897ACB6F0 +:101C3000727BB14BD5CBD14699DD59928DF7B28CE1 +:101C400055319FD06FE571F12EA73F528F7F93FDE5 +:101C500055AFDB5F926E7FF5C433F43CC3AE785E64 +:101C6000DF78DFD92AD17D311D1E1E67EB0B7F3D4A +:101C7000D145871E872B902EEC44BFB1DB3D42C47B +:101C8000384C77C3B7BC2C67C430DA11E2F6E731C1 +:101C9000F7F5711833FC8239FF7512AE9BDBA1603A +:101CA000BED37CBEC4ACFC77F59118579022B20F1E +:101CB000EDC5F8493C3FDF59B631F47CA7330ACF74 +:101CC0009B2F6C0ACE47C2BC21E4BF4598C7A4A293 +:101CD0007F1CFC7D49EB29E2A325217CE4D2F72F70 +:101CE00042F9E87E838FB25816F2518164A37CA337 +:101CF000AEC33C3FBEBBC1C4D6E07C770894FFDED8 +:101D0000DDCAEDE7EE3DBCCCDC7A5E9FCECF06FEB1 +:101D10004E239F8DEA8BD79EEFAFFF2507F3242A32 +:101D2000767F3AF649789EDEFDA7917BB1FCC6BF6F +:101D3000257FCAFAD6CFDFFFD77904D77E33E59067 +:101D400074ED7F2719ED8AAE37CD947FD4B5CA4C98 +:101D500076BC7B7F049DA7E91AC6FD85FA7DDF8DE1 +:101D6000ED20BDC4EF2DDA7E03BF87A1BBF56F9FC9 +:101D7000A1BFD8DD6AD6701ED5FBC389DFAADFB448 +:101D8000D23E72D7BEEF7202CF3DFD67E763E4E15A +:101D90007445F07B6FBAA2F9BE41F5DEAB9FABC3D1 +:101DA000B841CB0105CF15E6BFF5F7B12877BB5E8B +:101DB0003BA0A05C3E6BEA7806E96BD70D85DB4C57 +:101DC0005763BC93D1BD68374C5BB3C09DD91F5ED0 +:101DD000381EBA000F382FC04B39DAE103E1E3F0C7 +:101DE0000DFC1EADFF7EF8F87A1E977F57313C77C9 +:101DF000DB8B17C1C1DF47501C0FE6CFDFEFFF6E53 +:101E00002CCAA78BCDF7CBFF65F395A7FDF7A6F7F7 +:101E10008D3768DC2E0DA1FBBE74FDC63D54DE1966 +:101E20006127782F91DF474CFBDFB5DE79FF6DE747 +:101E30007BB1F5FE9DBEDE112AFA2B5DFBFE9ECC2A +:101E40007EC4BC4BFE87D2B961E7E749F6C359505F +:101E5000FFF7CCFB913D95AC0FB23BEA6D3C0FFD1B +:101E60009DF8547E7FA5EE5FE5EBFED543D3B83FEA +:101E700055CFC635E03D076EB027B651FC7EDCDBA2 +:101E80001F603BD764B213CC8CD3D5B79688ED18BE +:101E90004F9B92345F5E8EFE958BFB5F507E7B176F +:101EA000DAEB13CD2A960FD6013C503E1821AAF545 +:101EB000FDE8E31EBD6C796F36EE2B4FB105FB5D7F +:101EC000D342FCA7A95AF0F722F65A2CC6F78A3259 +:101ED0004D0C3C105688F503FCCA8A69FC3ECEA91D +:101EE000ACB141B55D129EC8DF7D47D5743C397CED +:101EF0001E28176A2396E1FCDFD4F3A4EBD93286BF +:101F0000FB56EE8F243D1F44A4F57AC772CDF60D23 +:101F100081F8C57F6938BF696F231E0E818183F602 +:101F20007A7ED2742AC7E75BC8EE9719F8C37C9E05 +:101F300041FEB34C5DC313F11CCBF19C477875BDDA +:101F4000BD0BE03A78B559C57B3003DAD3BCEB93CF +:101F5000C65B34DB7F3D7E374FE3F73A85E2374996 +:101F6000CE9291AFAED1EDFA2972342F27B54B4EF8 +:101F7000E2370FB5CBFFC62EA35D9F6B8B96F97929 +:101F80006BFF3C8C674962A41DE313B8C38FE7263F +:101F9000EBF19C57163853B2EB5FA6D1391A95E591 +:101FA000213EF29817E3C542EB3B7FA57BC2588DDB +:101FB000E8A4FDDD43740FF8288BCD47F7803F255B +:101FC0009F0EBAA7511BD67B4E6B28AC729B95F81F +:101FD000C392A490BD3A4673E4E179F43058DF34FB +:101FE00098676E9BD5A17FA7FC1C03AF6BF5787239 +:101FF0003DF0BF0FF3FD2EC07B58373AC33E1CFBAC +:10200000612437C2A0DF34789717D2CFEA9516E65D +:1020100033F7F663B497B1BDD4B77D3EB6CFEE6D5E +:10202000FFE04A95C60D6D6F1A60FC2921E36F5AD7 +:1020300019AF8FCFE7EBFE98E75D18FD2803F45347 +:102040001002870CF22530FE110A4FF800F3290C1C +:10205000E947890DFBA7FDD80680E7FA9079D932C8 +:102060006382E838B49F8801E061724D7C60DC3B9C +:10207000B45DA4DECEA05FA35E64766270BC48F55A +:10208000D2FD9325F7F37B8C66D87CB9C6FEC62AB1 +:10209000A0E361B28BC65532988AFB17258FBC919D +:1020A0008BE5924540CB59C83FED02D64F029B1DB0 +:1020B000BF2BAC45A0FA2A53EBE17B49948FD79F05 +:1020C0000FFDF1FBFB19CA9B11F84CC374662FB5C9 +:1020D0000F9BC2CF6B82E020FA4E4BE7F098989AA4 +:1020E0008CE77A52F2D57B8EA03FBCDA4AFB5FC503 +:1020F00079DC5F36E6757F31CF13309EEA748DCB85 +:102100003FC17519AEC38C86CBC81FAFB73A2B5FE2 +:1021100047FA79359CF2CF4BD6DC31FD4A846FE724 +:1021200020BA0FE2AB19BBE85C5769C39CBB3F8682 +:10213000F7AE17ADF43E7BBA2BBF18E4C557823615 +:10214000EF7578517ACB4105CF65CCF0EE3A8BF143 +:10215000EB193787539EF60CE67D1FF307D8CD1297 +:10216000F5DFB93342C1FCF4E9DEAF658C2F4C9F3B +:102170002C50DA6EA7554DBE2B93F695292FE2C64B +:10218000625DAF59F9FE48C99A6123D3E0FD74DD61 +:10219000DF0FD5436EBD7E4ABD3D1ECF13F905ABA3 +:1021A000BA35BBB73EF643F78E16F338E85C1D2F01 +:1021B0004639259FEFCF94AD33770E8FC4A7C9372B +:1021C0000A9E7F9D9137AF18EA15A7B1C2E66CCA87 +:1021D000A3A37BF93AADA012709CCDA91AC63160B9 +:1021E0009578FED3C654D22B9DB97605EFE9EBDC8A +:1021F0009CAAE279A4F04CC7215CF7858D8286FA0F +:10220000A93397F17DA8087EBEFD33554DC6FA9FD0 +:10221000C50F57F11C458A746004EDD765F1FDBA0E +:10222000B6E9AE65088741CFA37BE8D99B81F1AEC3 +:1022300007E702FFA11CEFBD3FF667B83ECC627F07 +:10224000E8AAD8DEFB63FFAD98D3418AE41B41794D +:10225000E72AA7B3674C1D8BB1BF1CFD7B718C9A1D +:1022600063E3F4C570FC4E933A12E7D7B9DA2AE279 +:1022700019BDE2559CDED6CB5EA2678F4313DD40CD +:102280009F37E9ED6FAF939D5B008E240B93236224 +:10229000C01AB9D13517E199EEADFB0CE327F33144 +:1022A0009889CF8D9B15B4C752EA8DFDB1F629836D +:1022B000A0BF13DB5283CE7B8CBB31EF619C7FCF01 +:1022C0003ADDFC35DD6FC4544D8C4A40FA77140E6C +:1022D0008EC5A7B60CF52AACDBA3385E81D44AFCC8 +:1022E000DB5D0B365034DE9FDACECBF17CFF1BF882 +:1022F00093CA4A19CFAB4FB204F3EF509DFFE411DC +:10230000BCBC7D25BF4BE34590FFF87C19E4B80CBD +:10231000BCB903E4319677AED4E8E95D9941EF5F4B +:102320005B69A772CBCA0954DEBDD241E53D2B8B58 +:10233000E8F9E64A27BD9FA7F9E8FEDC780B5331A0 +:102340002F6E98EC25B9D1470E5CC6F76B8D7534AE +:10235000ADCB15D1CE30D6AF40CAA47BDB8C7B622F +:1023600007B2DBFEABE63182717A48AEE5F74E1973 +:1023700065C42FE26F04E3F38CB370F999C638BEDD +:1023800055D01D982F3654768844972EA6D1FD57E8 +:10239000CC49F30E43564BC0F5D1283E95E4623547 +:1023A000751C4F7CFDA6F0F10CBC30BD9F672A99CF +:1023B00046E734E48ECB904F0AA4D39BAE82F7DD80 +:1023C000E5A21DF7D7BA59C7AB6F50D94679DCC91A +:1023D0000A3B8BF7258235A449C968CFD8E3CD28BD +:1023E0006F7F5E948A76CE6DE5029303F4DC1D3533 +:1023F000563A5B6F94EFAC8D0E2ADF77A5EB04D2D3 +:10240000ED1D2B3A9FFE37E87FDECFBF3AB348235E +:1024100038B6FD12C75D1166074F05E00031144B59 +:10242000F136DA57C6BFC07BA74B1E18ADE039A105 +:102430004E87C52EA8783F8C5688F7C5B945467992 +:10244000489FE07A02FEFFACAFA7B5F13BCA73E943 +:10245000D4F36042EFA116A7A791DCFBECBEBFF15D +:102460007C5F9345C5386467790CC54559C87DDBE9 +:10247000A5EE70FE3B160D123F4F1F7A7FB69DDB17 +:102480007B9FA3BD477A0DEC3CD4173E6EE77DFEE3 +:10249000409C1BF7213EBF2BD28E27025DEB86B8F6 +:1024A00017417923DEB38CF1F056B686CE8F8B8C34 +:1024B000FC15E63605DB7D1D49D118A734CEE7872C +:1024C000677BC8DE07B25251EF9666B4D1BDA8ACA7 +:1024D000515071DF12EF27B7C4A01CD7EF49925DAE +:1024E00097DD0CEB9F389DDFEF7A75B14C74B2A18C +:1024F00098D1D3CAEC14BF2CDBC8EF2B2F6BCC5276 +:102500001606E89952FDFDFC0CD11178BFEB657AF7 +:102510007F89EB4A16A3FE4ECCE0F7A6276694D23D +:10252000799FC4D937C878FFAC517FF8743EEED597 +:1025300038EE601C7F307FEAF78F95CE9EFB3CD94A +:10254000A04C53905E8DF14A33C6ADC1F306A51B76 +:1025500073114BEC3185E7193F1659B80D45E998D1 +:10256000E9B23E2FDE6F85AEF7F03E5EB48B4EE0F3 +:10257000491692233C4EBD64E72BB4CFBCE45333E1 +:10258000E9F3255770BDCB323D39FCDEEAE07DA48E +:1025900029AF9CA1FD8F33E05FD2BE61CB5185CEC8 +:1025A0003B001FA2FCAD6E913AF1BEF3D0FD8CB79B +:1025B000777E1AD9EF3E520BDFFFBED83E92718E66 +:1025C000B8FA377C1FC4C063B5F03DEDB756EF5B7A +:1025D0001DE7EAC71EC0FDCBDA98BEFB4997BAEFEC +:1025E000141A27774D0FDEBF37F6F10692AFC67E7D +:1025F00093512EAF1D3B1CF72596D4E60CC77D8A60 +:10260000AADA6B8707DEC37C463F276C942B07381A +:10261000273C4FC9AB997E65EFF9E0F2DACBF57E46 +:10262000C7537FBFD6ED204DD6A2907EBA3DE9516B +:10263000EC9FC059DD0C93C1FBC8A13EEE5B1BF7BC +:10264000B974ED90F8B9861D63B622FD2E6E7D44F7 +:1026500011E1FD9EE9BCFF3321FB68553B8ED2BEE4 +:1026600076256BA77584F56596C07D55CCDB1DD4AA +:1026700017AEA5AF44D4207D2FF60A8E6DA8B72CD7 +:102680005E8AF375EFB8C3E40E58EF269D6F42E102 +:102690005EAFDBB5C67B8413E1586AF69EFD043954 +:1026A000E557E18CFFEE83FF7DCC7338F5D478FAE3 +:1026B000DD87C5DE5D55643FEC0857317EF855482F +:1026C0007EB247E727CF746E1F9ED2F7DB4FED94A3 +:1026D000483E23BCC8E75F09C1F7C16CD7DB6DD7A3 +:1026E000F134613AE747A3FE62EF66B21BCFB64C06 +:1026F0004BC7FBE8BAF67C183902DE7BF5F975B5F5 +:1027000084D3FDD15D2D4F16EE457EF3E6C6227FC4 +:102710001AFDEF9B6EA27A675A797E0DF3F0FCC129 +:102720004AC4EFF8403807D13D5F463BE3BCE6A919 +:10273000965F478A99BDEB576DA959375CEC7B5F73 +:10274000AD690FFF1D14E27FBCA731A3C6897E804F +:10275000514FB138C85FA9DA3393EE6F33F68D96D7 +:10276000BD6EA27CC97957683FB90DE5C3EF4D84B2 +:10277000FF6597311FC6E5CED5466CC1755D96DA0B +:10278000F19E0BCACB17A32083FAE375F913DF710F +:1027900025E64155AC13E8BE9F5AE6587508FBD1B3 +:1027A000EFE9EA4CB5FF01F588FF3D6E87577824C5 +:1027B000E6A2DF69F08DC473246C826F24F24B7241 +:1027C00033BF2FE8E8746EE77FA69F4BAE48D3CFA8 +:1027D000D3E8F9591531FCFCCD69E37CCE2CDF48F8 +:1027E000CC17AB782D81F2C54E1BE76DE03DDA5377 +:1027F00015E3F8B91B03AF15F7B58D447AAB28F58F +:1028000066E0F7CE54F52CE5E5BD1E41F7548A6F1E +:10281000F0DF19AA7CC1BA95DF83E0F900ED8BFAED +:10282000BA2401F311BED7E17B065539DA1DCF5B1F +:102830007BF2DDFB3B3FB45869E4E785F4DFDF3230 +:10284000CAC6FCB08CF33BADD3F3E230BDACCF6372 +:10285000716423C1DF6962FC9CD44BFC1CCA57091C +:10286000EDE711EEAF5EBA8CEE19EF4CF52CDC43C0 +:10287000DFAD74CF37B3352A78FFCE927C8B1FF54E +:10288000F392975F388FFAE0E4D3129D39A87F6006 +:10289000470ECFEB63A23814F367B7D3BDD7DD3251 +:1028A00013D1EE3E69F2D0F7935695FC849383F9E9 +:1028B00039AA93BF1B44E39D141A93112E97914F8D +:1028C000B7EDF164C4EBC96D2F14E2BEFAB379160B +:1028D0003AEF1E2ABF963C1F9C1FDC991A7C6F4F53 +:1028E000C20C1EF74B98C1F13C6C068F2B56867BB1 +:1028F0001F4BA379727E81F5E2E7799827E1C958E9 +:10290000CC6B4A17504EA4485B15CC6FF2E75AE8DF +:102910003E97253B1E551C7C9EFE08E00BE1E7CD53 +:1029200094E7505FC26A709EC8076EF87ECECBEF08 +:10293000B338E71D1F85F3582266DD48F9BDEFA7C0 +:10294000D31D279DC63DF2CCB3FD0D687FF29941A2 +:10295000FCBE0B9FE79E4F112FA2A6219E8B633CCE +:10296000F7605EB67FD315747FEDC9181D8F311ADD +:10297000FD360EB4273C570EE1F181CAB5AF9C4736 +:10298000BE62432535BD1F7C0D84B73EE76466708B +:102990003956D1CCCFE5579A399E966EE7F7AA2FD4 +:1029A0005DC3E3EAEC657E8FFE72AB2F12EF395800 +:1029B000BE4DB2233F2F55BC2307C3FC6ED1FB8114 +:1029C000FA2E9457467FCBADDE85D8DFF257AD2483 +:1029D000E76F9911ABE7B53D12877676DFFAF621FE +:1029E000AA2DB0DE739181F96F46BD9EF979C11EA3 +:1029F000198B79DBEDF77C0A4DBED96125B840D241 +:102A0000D279D6D0F99F32013CD978CEDF4AF76F20 +:102A10001F07F9E8C6FB27A21D0F539ED50712DB3F +:102A2000C6E7ED423DB5C813DCBE72903D0AF9B76A +:102A3000F20FF932B69F3B83CBE9CAB59368DDD973 +:102A40001F4C744E3D741DAE99A1DF1769F0E3ABC6 +:102A5000E14487A7F0103EC2B37314E99BCE688FA0 +:102A60008274E53FC0FC5BA309DE64B4B74FBD3A96 +:102A70002A0BE969492DFFBD9953D1DE6435E07D0C +:102A80000F9DF940B4E6601E1FA3389C31FE52CB67 +:102A9000C676B483F0DC41CE387AFACCFD9C1B2894 +:102AA0008EE1FEFEAF6670BD86B9F3981F43E75D09 +:102AB00048AE791594DB06FF56EC083D77C0BF3F62 +:102AC000ACF323FC69B1C6790711E1F42A783FA77A +:102AD0005F60DA6B76FC7D87BB16E3F9BDA5359B9D +:102AE0006F43FB6CA9CC8A1480AB5390088E4E2B9D +:102AF000BB7316EA8BC071D2F8538DEB9DE7E33AB6 +:102B0000BC4FCFE07642056A42E8A7A241D888FDD3 +:102B10001AF28202F601ED30DF1EF54867AEFE7D47 +:102B200080F91AF80D9DAF81DF5D33B8FDD099AA09 +:102B30003D3C39B6F75C6BF785F15131FFC43F4737 +:102B40007EECC9FF077EDC3F83F1F8DD0C1EB75F2A +:102B50000AF0219C239F0A3EF791F17C7079F48E54 +:102B6000E072664B70796C6B70D9FE767079BB3E03 +:102B70002EC60BF03E0C8C17E013E3059A99C70B99 +:102B8000B08CF1027C62BC00DF63BC00CB182FC0AC +:102B900032C60BB06CE01BE30658C6B8017EFF4E90 +:102BA00097CF9772FE927EB7B3E77CA59BE4DF9B3D +:102BB000AA6A47F9372945E723FD7E44E3FCF09BE9 +:102BC000E599FAEFD9F07D30FFC9B07ECF5F1AE703 +:102BD000E943CF5F7E29B4AF4910FA9EBFBC7BBCEE +:102BE000EBD88CC19C1E715E13877BC6631E7DE78C +:102BF000EA7746E2FD861D4204DD1B7FC378D7C914 +:102C00001930BFAAE6AFE7A1DD541DE69B87EBD7DD +:102C100051A7FDE13AC39E49C57BA99805E9DC3877 +:102C20006F7FD1DF61B8E8EF2F04D39161073E6B6E +:102C3000F227A864B74D7E06E303CB8408BA4FF5AC +:102C4000A895ADC2733FEEDFF1FDB1EEC3269EEF56 +:102C5000B351D8CA02EC49D38DC1F7CECEFF7E3C2A +:102C6000D9E33DE58D82C8AEC0FD1C31089ECB3C4A +:102C70006141F475F98B3121E7BC1283EA5FB1271A +:102C80002DE8FB0897A37030EA57F03B515F66F9D7 +:102C90004607D53FB7621DE503D3791D8C476E1CEF +:102CA0001FD4BECC3929A87EB2C0E344EC3D13CD7D +:102CB000B7AC99FF2EE9F207D6AD21FDB445A07C53 +:102CC00003AD761D9D973A6DE1F124834E80FE148D +:102CD000CABB8DE5EFE7EB7AE8A4D09E8CBFF7BBCB +:102CE0007874E36393053C17B42519CF193D3DD59E +:102CF000957923C9BF8E99D8DF4F779962E87C8395 +:102D0000EC7BE876E8A762D72056A7F5AE7FB289BC +:102D1000C7CFB64C60A4EFB73472BB7F4BE3A0B013 +:102D200011DCAF26F93282B9E330EEDDCD583BAE8F +:102D30006781944976F2B9C312FD7EA6565B44BF03 +:102D400093B7EC03139D5336E0AF18F7CE3331221F +:102D5000DE13C5C81F382DB69D5F8BFA27CB3BD23B +:102D6000877AE5892D717361DDAF535D7908F7B21C +:102D7000F7F22331DFF4DB1D26CA7AFBA2E9B9673B +:102D8000F03CC0DAC6E7148C3B2E913D0AE53FBF0C +:102D9000B445C1F300D7BFB885DE2F7CB184FCC336 +:102DA00045AC86FCC313C63D45FA3C0BA48D23639A +:102DB00069DD12A2910EB7DEC8E5667918DF5FBF44 +:102DC000A938D784F1B1253BA2E91E3A6DF6EC0291 +:102DD000A4836E6F34DD3F769B5EBFFB5D89F8BDDB +:102DE000FB667E5FEB40F7E3DDF47D2AD1EBCDDFC0 +:102DF0005F4E7ED32DBECBB87F9AE9277B0EF0487D +:102E000071ACEE77CF2937617F98D789F9764A3B45 +:102E1000BF7746E4E799B5D9ED446FCB53811E6186 +:102E20007D96BFF7212FE7323F9E6B724E9682E868 +:102E3000AD7A4A78103DCE663141E7FC6EC5E4AE0E +:102E400080F2CDC5C383EAFFE4E6CB43F87B5CEFB9 +:102E500077E2EF8941761CDD881954BE21A87E25D2 +:102E60009B15742E76F1F33C2E5FD9124DFBE8E5ED +:102E7000223F5F3EDBC5DF57ED89D6F7D7C37AEE39 +:102E80000FC1FB5FD0DF0FBA3744DF47AFC47F69A4 +:102E900018B76FA7F8913F41223BB632A383F6479C +:102EA000E2E115C6BB2BDD50C6711DCC8FFB6495CE +:102EB00032C7ABCDAEA6AD4AE8A583AA96E07CC7E3 +:102EC000AAC31CDF469E71E87790EB6BF09EA6AA22 +:102ED00062210BEDF9A53B3A158C3BDDEC4AA2DFF4 +:102EE000735BD41C1C6FAAF076129CB7EC89A37894 +:102EF0006815C68502D6E3E88DDC7F30F66166E3AF +:102F000087E164F7B7A1FD77EE30B7FBBBDF7D4EFD +:102F100030E88865F5C547E58A130AEA31CA2B808F +:102F2000F927DA3FE6E7A64B793C2D946E103F7205 +:102F3000007E12918E02BE2F641C5F0B41ED7AB2AF +:102F40007E3C9E16E13FE0FBA23D8207F34E43F13B +:102F5000B2D0D541785BE8B2D578D4BEF3A95A7126 +:102F600084F2CC77C2FAE27D7BA1785BC4DA697E19 +:102F70008B406EFBA2891E14BADFF975C18E7A5A96 +:102F80009BD0A1E079EA5EBEFB90F8ACDB0E5C8CD6 +:102F9000F371323ACF0AE3590605DCAB3DEB7B1EF9 +:102FA000F7B815EFF91F8FFC12CC5FB77C1F47EF06 +:102FB0007F3CDD7450FCB50AE384917DF15185714D +:102FC000C3C8BEF334F6A77AF483747B14BF9F762C +:102FD00055BFF7B487C619CFDCA8E7E35EC9AE0CCE +:102FE0003A2F30C0FD3BA1E7050AA46251817995D3 +:102FF000FC4EA7C31516D2E7DD6E13C943D7EA020C +:10300000D277AEDFF1F2B207328604C6075D7A5C92 +:10301000CD2827D70D8AC3EF255695CEB594D44930 +:10302000F47B07FF07B44280260080000000000008 +:103030001F8B080000000000000BDD7D0B7C54D5C9 +:10304000B5F73E671E992493E42424909000272F1F +:103050008812C2849720140F7960146C87F04A207C +:1030600009130C0888DE10B5464B9B09090F016D4A +:1030700040A8681102556A5BAE8DD62AEDA5BDC386 +:1030800043D4A2B7D457B5E58341AAB5B6D6144BFD +:103090008DF7F3DE7EEBBFF6399939C34BFBFBBEF0 +:1030A0007B7FF78B3F7F9B75F67BEDB5D76BAFBD15 +:1030B000A7718743E80384F83BFEAE13625D67FEA9 +:1030C000D070B110EFDC3762573089D27BD2074E17 +:1030D0001C27C4D9B5AE748F1E29F7CEDACAA162F7 +:1030E000147DDF1257D3ED1562D8373CC2912EC440 +:1030F0006DCF0EDAE35084100EEFC01A823F7C7A57 +:1031000040A983C074BF2A4486102BD7FE38792289 +:10311000C1B7AE7D6D829627C475370406F8C70B1C +:10312000F181B2679F8682DA9E123FB59BEF175CF2 +:10313000BE71EDDAA182FA5F416D3A4AE99B083629 +:10314000086AF7CE78A16F4C15E2FD7811BA8EE0CF +:10315000F79F8AEFEE40BF9E762EFFA70CA1213F7E +:10316000904B4D127CFEB1A4EE20E5FF493DF4B733 +:10317000F594FEB13438DC914FAD69817C3FF57335 +:10318000AB7A701EC6F581D2BD2F93C6B1ACB52403 +:10319000FF7763693EAD13380DB417A604082FE11D +:1031A000B603E26C61040F01218C1E2FC6D5ED9E83 +:1031B0009514F9DEE02E2BC6BC563829BF18ED8DCC +:1031C000E476ACFC2333691094BFAF8DAAC609F135 +:1031D000449B87D3EFB769428C10627F5B26C34F55 +:1031E000B6E99CF6B415F1F77FDA418D44AD57F698 +:1031F0004C9DDBF948882A8C6398E32FA52DD45F7A +:10320000B04C1435135CE998A93E4CF3BFE3255745 +:10321000771CE1E20EA5797798F07547BB5304C798 +:10322000A15CF3770107D7C4691D943E94F88DDD46 +:1032300061FADEEAF468713ECCABF91AACC7977A52 +:1032400085682A12FCF777FAFFBA3E8F68F244E0ED +:103250006922D506977BB26CE52BB55C5BFEF599D0 +:1032600057D9F26FD04B6DF08CA249B6F237F9A660 +:10327000D9E0AF4CBCC1567E9631CB06CFAEAAB5D5 +:10328000959FEB6FB4E5CFAF596ECBAF0DACB2C12C +:103290000B97DD632B5FDFDC6ECBFF44154E41F4F3 +:1032A0007390D64FA7F5F939AD1FD269427FB94E59 +:1032B00089ACCF9472B519EB62C1567AB7B91F5E6B +:1032C0009E65AC029D08712217749B4DFFDA48740D +:1032D000BECE2FD7D5FA9EE394DF09CEC27AC4962C +:1032E000BF54B92989873FD689A4FE7462DE32E7CC +:1032F0002482AF393C369F60DFAC479639B3089ED5 +:103300007CF84779044FFCD569993FFAF0C7C80F9C +:10331000FD6A97CC9F4D4D5D2B44D9ACF265419A27 +:10332000C794EBF236FBA81FF14B97EF714ABC2212 +:10333000ECAEA67E6EF77843F9C991F9012F4D8561 +:10334000122F484344D7480F135D233D4A74DDE4F0 +:1033500012E218D135D217DB7CFCFD176D13397DD5 +:10336000B9CDE0F4DFDAAA383DD1E6E7F4D5B61AF4 +:103370004E5F6F0B70BD37DB9671FA565B337FFF84 +:103380004D5B2BA727DB82FC7DB75F613C8B03AED7 +:103390003F85ADF5CC03596BC249F3E810A2177C09 +:1033A000421CD44419D1BF382C7A187F6167EA7B5C +:1033B000B4DE6049D1EB169B0A2283F7AC76A9F004 +:1033C0009B4EE307723D73B4F71223DF4754067A2E +:1033D000F0FD8DDCD98563099ED7D7FC7C0AE5BD5D +:1033E000A18A6517A38F75A00F2ABF6796F163D4D2 +:1033F000FB92E7542DF89E9E25343119F0CFA7019A +:1034000056EEA5FF699DBEE43CD101B8E353A1AFE0 +:10341000A17D7E28E91897EF88175A1CCD47E93B14 +:10342000A1009E4A7B3A2E15E508A6F94FC5D8297A +:10343000FF4B5ACF34C01D4B8458538AFC1E99AFA2 +:10344000517FA5721E6282100548097F157D27CA2B +:1034500039DFEBD6E308C5530BCCF215C44B52B998 +:103460007F1E5FC72AD9FF639F9E30902F8837B990 +:10347000305E4F88F3A70684B62615E36BE6FE0997 +:10348000B6C6C7E5A7A24E2AC6471968EF2A2A2F53 +:10349000C7B78AEB67CAF10F72CAF26E9A5FFB2454 +:1034A0001E5F23D7075BA5FC24A76C9F48540B52D3 +:1034B000FF6EF14CA942F5DD2BBD3EC88DA9C52795 +:1034C000B2CCF6B46054F9141FC1D45EC1BFCBFEB8 +:1034D000810017C1790A09A8FCC83EDD39ED442EE8 +:1034E000DADB799787DBCB763C550AFEEB340CA10F +:1034F000D2F7D93739BA37D2F77FA90C9CC37A3AB9 +:10350000D3551E6F8791D4BD91D6EB573FD387F823 +:10351000A8BD59AA08405E5C861E3EF9C7E8E1D9FD +:10352000FEF58D637CF7487AA0F5B5D183AF9F1E79 +:1035300038BFA392E8E122F472213D846A4D7C7386 +:103540007B530B22F401B97B28E94D83DB1B25FB60 +:103550007FECD3661E2F0428F0D94F0FCD727D95D6 +:10356000BE087DC495FECFA18771CE9E3DF81EB7E3 +:10357000D2E3C3BCAF441F8B7AC5F4142AF2E8F43B +:10358000C03AE8218D7DFA31C0378B69D3890DF7B8 +:10359000E7EF43FEF80BF3037FED7501B6BEBF62A4 +:1035A000B663E53BD35F4D841CB0DAB1CAFDD16C84 +:1035B0002F526E8CC74FFACB1D953D3BA10F544146 +:1035C0003FC0FC84846F247D60230A0A23B97420E1 +:1035D000C977FC93DA118E29475BA05F91D2E40092 +:1035E000ED785DEF843DC8D299CF5ED7E764D8927D +:1035F0009B378ACD4EE0918AF7C611DEAB04E55BBE +:10360000FC93E8F4C6E2DFFF068B72A388AA47DFCB +:103610005B4FC63F7F344A1ED7CE4A4A67FE9A2B7D +:1036200072C15F8F402F73613C7529012F8F8FF519 +:10363000AE58BDEC9336CFF3475DAC9F056645E9C8 +:103640006702FC8FE6B9AF5153591E089F3A86E0D6 +:103650004A436F017C7886D4D78A48E2A15C4596BC +:10366000C2FB99BA79FD7682AF871CD6309F2ED6E1 +:103670000B6E143D9CCE142738FDB2E8E5D42F7CA8 +:1036800007C3349FA3E7278C1B8B7DA386D6D11C51 +:10369000C4478DE109C87F430BDC8571FD2DE957D7 +:1036A000A714089FDEC008ACDFE10A39BE96B9C492 +:1036B0005F891E0F7BF2591F8DE5132F917C2D28FA +:1036C000043E04A7CF93FC2DA0F9BE40F217F08D65 +:1036D00045ED02F5A6EB8A7046E1D3AA3F432B17CE +:1036E000CE01979677334A7E9203FC1E4F1D51817F +:1036F000753A9E7A4D8528413A4895699C1BE9A503 +:10370000EA5BFB6146F1FA138E12F4379DFBEBC7BF +:103710006B861DAFD381571FF01B744218DF20BA90 +:10372000399D21428CCF9B485003FE0A6D43C04710 +:1037300012BF5CF74FD445F9D8F2027C5FE9E91D6E +:10374000EA5619AFDDB3685FDCEE089CD6A8DC87CB +:10375000430223521C188F60FDE0B0E7B567A1F764 +:103760009E43379416749E60F84E97A4FBDB9EBB75 +:10377000A94C07FEDF7074C3BEF9038648F43BB55D +:1037800075328FFFBAD6499CFEBE4D0481EF951E5F +:1037900089C70F83874A1CD4CFE994400FFA5FA9E9 +:1037A0001E4CBE96C6F7FB9DAF3D09FBCAA2DB953A +:1037B0000E7DB30FFBEDB8C3F738F6D567478656D5 +:1037C000275D9A8E897E0FD8E8D71B183C0B7AE1CB +:1037D00063B3795C16BDAEF44CB7AD27510FCFF78C +:1037E000D9E906EF7F4D8456613FDE4EFF84DE73DC +:1037F000BBE7E5E5CCD7088E23BE16AB374D4808AE +:10380000319F75139F075FB5D6333B2EB49CF5D11E +:1038100044A175403E04C65E0D7EF2CB09C62B98CE +:1038200077A5A378BF85DF38F0D5D0C81494AF7AD8 +:10383000D121BA69A82F2494EC079F0913BE15D291 +:1038400037AF1FD9ECCDA3755A3123F016EA0BC759 +:10385000670EF4FB72A1220650F9732F8EF5820ECB +:10386000ADFD7E297A8BE51B61F08D91F48F1251AD +:1038700002BE51E9F0FA4218D7EB0E1FA9EF64FF20 +:1038800024AB2C574C7B69AA18FED014CA2F7FD1C9 +:1038900025BA29FF1C1A42F94C85ED498B9F5C27FC +:1038A000FC9D5340BF86A737041D2B53157A14DFA8 +:1038B0008BD713841E358EC4A2341B9CE41B6C2B47 +:1038C0009F3231CF969F6A5C6DCB1F5035C606671D +:1038D000F8AFB5951F54536683B30237DACA672F22 +:1038E000ABB6C1439A17D8CA0F6B5D6CCBCF0DAE88 +:1038F000B0E53F2FFC29A15C9093F16AD104F03D23 +:10390000F997BFA1C5568E0A1C0D105EB289E163FE +:103910001F1576DD6B6B57E82EE6FF41FA0FF45565 +:1039200099E98AC8032C6FC2CF15AC4FB8D1DB0C14 +:10393000BA28D7A61D85182AD75C36B992ED7DFF27 +:1039400024F851768C3C895D7FBDFA0BAE7FE0EAAE +:103950008BAFFF4AD11DCC8DACBF30D77F3AAD3F86 +:10396000F8D5881DF6F5BFAADBBEFE239FB0AFFFDA +:10397000A81EFBFA8F3E605FFFD2907DFDC7BE6838 +:103980005FFFF127ECEB7FCD5B6531EBD0CBFBE745 +:10399000794D118F5C64DD2685EDF4211C9B79DD6A +:1039A0002CB93EF9FDEA8BAE5B0DFDF75FB16EF30E +:1039B00063D6EDBCD83CBE340F7253F2F1D87D6FA4 +:1039C000ADCBA3A9467D35F1A755E0F3947E12FF58 +:1039D0009F7BC06774D26FC450B2C313081E17E137 +:1039E0003BC1B266F67F04DD1EADC3C7F4C0EBDD9C +:1039F0007A32A91B76CE276A380972E594DAA520B7 +:103A00009D3C3E706B35F1A745C5CD8A2039932981 +:103A1000FC4F2D853C1FD27BEA6B68E79E24C9CF03 +:103A2000C90456D1CF3D497B3646F9071AB2453312 +:103A3000F8F79DD5925F0B5F783CF8F8DDD552DF43 +:103A40004FF2696E88C6C662617483CF3BC5D006EB +:103A5000CACF480BACAE66BE3A65C7FDE9A0CB64E1 +:103A600011378E1786F9EAB09768BF018F4E433D34 +:103A700083EF2FBBBA1F87FFA7D01708C1FFA30C86 +:103A8000F5C1FFE3700BA9C76E8DEF7E5CC177DFD8 +:103A9000A054EACF914C7608A577C4137C113DC39E +:103AA0004A176F708840947C99BC29AE598E53DFB9 +:103AB000D54AED37FDB978CC4611C96F72CB766324 +:103AC000DB894B9BB615F36915E67896A93CDE3F7A +:103AD000788EECF81DB5BF3CFEF80EF8CF263B5EA5 +:103AE00065BBA497F2F642CE38A55DF2488126A0C8 +:103AF000A74D1E168A1F81FCEDAA6FAF607CF1FAFC +:103B00003DB252673B6BB2430902EEFDBABB7B2F5D +:103B1000E4B84BE607EF1ACEF31766FF8F346BACB1 +:103B2000878CD8216C7AD2234EE9677BA45B0D1673 +:103B30008EC6BEF60867143D3F023F1CCFBF3B1E3A +:103B40007E91914F68B6FC513D99B6F6461FD06DF7 +:103B5000F9A5A1225BFED8177D3638ECEA7D6A38DC +:103B60008D2FF8A8433CEEC3BE9F68AB7FCD5B862C +:103B70000D9E14AEB2D57FAD3A4FD299DEFB97279A +:103B800069DE0D1DC374F0E5C9EFFB6DE5B29D273D +:103B900058DF1C9A29ED1DB28F187637116F243C1F +:103BA000E778A43F2107F65516F66F80F1E62C90D2 +:103BB00030E5B3BDA416D9F3538B647B642F19D8B9 +:103BC0003FBF36FD9705225C0BFD4D38C357416F53 +:103BD000688813EC37A3F563BB71D73D836DFBE6B3 +:103BE000ED6AE93FFBF54CC1E9E31EB1C8CF78F7B8 +:103BF000BDF502CA2B7ADEC6F448F933E6FEDA5A7E +:103C0000659C063FF8F54C8DE1DD49EF2FC7BE6D91 +:103C1000182DFBAB53D545B3A81DB2D16A9E8EA219 +:103C2000FB3F554B3FD24B73643BD6B81B52E4F875 +:103C3000C4D7DC4CAFC219643B73578248053DD6EC +:103C40006FEEB97F0415AD7377B9D89924BA5DD0FA +:103C5000E7679691DE4AF49BFDF2A7DFF5127E76C8 +:103C6000B53AD9CFF6F1ABAB97070BA0D7F64AFB25 +:103C7000B899E6560A3B82F6E498C878EAE738B87D +:103C8000FFE4D972FE958E835CFE5CABB4AFCF8946 +:103C9000503BCB29B2A7E18F1922A47F2781D60FF1 +:103CA000F8A73F15B0AB4B309DEF728597637CF062 +:103CB000473B5DD21F8D14FE6867A1F44703863F22 +:103CC0001A29FCD1F8FE749B8FE167DA2632FC6C6E +:103CD0009BC1F081B62A4E7FDAE6E7EFD63ACD5C9B +:103CE00023D7495FE5F2EF257CCF5445951235AFD8 +:103CF000E639725D27CD96FC1AE5C04F2A1D2F17B5 +:103D0000F07CD23555CE4F4F019FB2CAC7F293FF18 +:103D100057F3C87686188F433DD26F30C41960FEC2 +:103D2000E126BA663A37F3B39A259D13DE799F7878 +:103D300035CBCF7094F3DD01D293534D7E13E5471D +:103D4000C916725FA54227CAC247B96FF2A86FD0E1 +:103D5000934577AE98FDD25DA056014FEB93247E3C +:103D60002D3C2C9F2DF1933EDBF48306C97E9FC032 +:103D7000ADF25FA5E3B346B4BF2449FAF196DCE3A4 +:103D80003906B9BF24CB2182B4B7A71A9A1BFEAB60 +:103D9000C5C432F7C00F143F94E1F034D1AB649343 +:103DA0005C0ADAE5F92DD00B15D687DD68F766AA2F +:103DB0007788E8F7E60D31E5BCEFB1DC5F1223F759 +:103DC0006F119BFF42B287D22BD8FFB34D7D60B4F9 +:103DD000180D7D4038BC6BD6435FE926FB2C376A53 +:103DE0003F98FECE73DD3F92F06AC1FEA3583DC1FD +:103DF00082F51DD458D4390DE135A108F2A1D3E9DB +:103E00002BD42FA4330BAFB47E6BD6B27D23FD7CB5 +:103E100064EFFC12E3F913D9377154EF4FC18FCF20 +:103E200030FC4CBC0F7E930F4B4F94407FBECDB106 +:103E30006728ECD100FA2539571010C114B4F344A7 +:103E40003CB7736E35111AC6FD4462B720381CFCAE +:103E5000D1C08BD93B81B0C3762E149B5E7743A033 +:103E60007D368D33E0127C2ED7B1DFE16BA771DC9C +:103E7000E73D3CD0F07EA173ADF568C7B23B6792D9 +:103E80003C74A445F2AD732DD2ABD7AC4D97F8007E +:103E90005D9D0B7E2CF17FA760FFDC57488104BF3E +:103EA0007943103784DF53905692FFC5CFC366F72E +:103EB00095F27ACDE99BCCF30F6C98C4F0F0614198 +:103EC0003501FC73A1C2E714F31F136B13A86AB882 +:103ED0007DFE78E0EF7173DD869B7226165F034DE1 +:103EE000BE32768EC55FBDBCCF5BDA15B60B5AA06D +:103EF0002B00BE5F613BC0823FEE32E14A09DFB179 +:103F000056C2F4D7007D78B148F66D1C27E7097FCB +:103F10000CE68914F384DF60BFE9BFC13C91629E67 +:103F2000F80EFE0418FC0930F81360F027A4E04FE7 +:103F3000F8FE6E6AB91B78C5795D45D47EC3795D9C +:103F400045D4FEC1795D348CF3BAE8F238AF8BCE3C +:103F5000C7795D743ECEEBA2619CD74597C7795D6A +:103F6000342C26DE108171FE62CCB2C1B3C98EA89A +:103F700088DAEF38AF8B6E1FE775B6F602AB6CF5DB +:103F80001792E6185D3FBFB9DD567E51AB623BCF5D +:103F900023B6C472F8E61D03985E1EABF49F055D60 +:103FA0009F4EFCCFBB5C79CC3FD80FD2725B824F67 +:103FB000AE7757955C7F55C8F5EE657FF7C7ABDDEB +:103FC00012AEF40DD22E42473807AB70C97330A43D +:103FD0003807438A7330A43807AB2894E7604871E8 +:103FE0000E86EF3807438A7330A43807438A73304C +:103FF000A43807438A7330D4C33918529C83E13BF9 +:10400000CEC190E21C0CDF4FD1389AA2F81CF4DA32 +:10401000029B7D4A7468B34F351B0CBD35BA3CF426 +:10402000D6E87CE8ADD1F9D05BA361E8A9D1E5A1E0 +:10403000A746C3C367EBCC37A0AF46D7835E1A0D44 +:104040008FEA0A3E0FDFDB4D3BFF7C14E9F094C69C +:10405000A715621105739257E0BC727862E3985419 +:10406000E2F9AEF6012B2A080EF4C9F3F212D1AB35 +:1040700082BF046084D2BA054282F5FF519F667107 +:104080007EB6A90FF21FAD7BE93382F54DEB7CDDE7 +:10409000AAEF139A03A9553E025FBC5C6CFF56B9A8 +:1040A00080C73E0EA2C752F0F9D2D5DE31B053F62A +:1040B000A9CA223FD1D33ED297AA89CF8EDC6FA85E +:1040C000F1945FF38C56EAD051BE790CF8728DC929 +:1040D000A7ACF2D46219C6FFDD45BAE9C796F3B9B9 +:1040E0006962EE5ECCC79823F95EB6A98F119F3046 +:1040F00010BF31A5F744790A950B04A78D47FB3310 +:10410000DDA63E2D9AAF853D3A32A8187BA3E8FB89 +:1041100046B39D40F0A9C3E0B3DFDDFD65592F41F3 +:10412000D6FBEEEE64EEF7CB9DCA5EC8E329FB85B5 +:10413000B187EACF9E23EDDA91FB430EF4D7D8295D +:10414000FBB3DA6DDC39D4AD7B23786A14CDF76626 +:10415000C27E1DA708F0F1E1CE00EBAD83EA341575 +:10416000FAD1ED1822A5EB8B9AFDC0EFBFBB741EF0 +:1041700097DB63B03E75FB815902FCFE4BE3522B8B +:10418000D3D1CE41E12B04FD8CFB956DBE8C26D2A4 +:104190008B86E31F3ABEAF5233317E42C000A2A7E6 +:1041A0009B08C67C0201D19C4B22675E4D23E3B97C +:1041B000A84E28884BB9AA6E8F9A4EF546060EA9CE +:1041C000E877545798536B1EBE29A90EC0335D5A29 +:1041D00025C63FB35261BE41F29EF596739D2EB641 +:1041E0004F2DBDE163E80D027A85EF2B90D72D6B43 +:1041F0005D027674CBD7FBCEAC071FFAB15D8F089A +:10420000EC50988FAD5CF5C60495FA6934E37A3EBC +:10421000C8EDDE974A78F920EFA9E4898AD403E64D +:10422000D078CE744A3DA271EDF3C9380FF8B8F3D7 +:10423000C76ED841D6F94E938907516C1CC3781AC2 +:10424000B3A4FF4E380EBA21C7CE07BCCD0E82DF15 +:1042500021BE628C607EC9E53E3EE09671235D52D0 +:10426000DFB3FC438DAF0C18083F46AC1EB8BCD37F +:10427000D5E8263B7A798C1E78EB15F4BF87E79852 +:10428000E73F3EE183FEF74ECCF9CFE22B9FFF7470 +:10429000CF89F29FEB223497F97973A18A75687CF4 +:1042A000C5C1F47BAE47DF8BF3194BAFA96B2FE78A +:1042B0007D287E2CE9A8AE5D96ABFB89D1AD5091EF +:1042C0005F9AFA4B755F36AFC76BA6BE32B76F24E5 +:1042D000F38199E178FE3EAF2F8BD3F97D57F1F74B +:1042E0006AAFE407E19F89EE35AC2FC5493FE35142 +:1042F000D12D722FA4CF59CE6E355D015DB5AFC9FA +:1043000020F826E83FD45E0DF4A101A0F755CF6751 +:1043100080DE1FBB38BD573B4373D07EB5CFC5741D +:1043200078397A5752A3F89608BA0662FEFB854F91 +:10433000EE4771D445F65B43A269AF7BA5FFAA5F48 +:104340005FA4B1C0AE15C1552BA0673620E861301F +:104350004FC710B4BE49C532FFDDD757ADE87482F0 +:10436000DEA59D3AB4559EDB5A30FC0EB0AF0A6014 +:10437000D752FF033DD2DECA33ED258D68633DDBA6 +:104380005F06F30732CBF476F65BF8797D1288C1CD +:104390006E61BF84CEF3CAA179217F88539EABB9E9 +:1043A0002BACFE4468E098887FC0B28BE117007F99 +:1043B000ADBF53E1F66FDE50B847DA19C583CED0F2 +:1043C000F7AE7965EFCE25BED3725FE1207199F328 +:1043D000889B699DB02F1B52C27729846765AE30D8 +:1043E0002A48B5AD15269EA87F41735960C223DFC8 +:1043F000D8F2C18662C62FC3FFF1FAD756200E67E6 +:10440000FD94163FC615E1777E03665062B1C1E7A1 +:104410007BB1E3B7FC1023E7CAF2B1FE889B8BA502 +:104420001CB0FC65EFDCF7DC93D1FE96775CA2460E +:10443000DA03BD6CC77CAB3AB374A31E912F8FAC6B +:10444000C861793974AE298F681FE823A47E8B1464 +:10445000FA2DE2A3A0DF02867E8B14FA2DBE43BFA5 +:10446000050CFD1630F45BC0D06F9142BFC5F7BF9D +:1044700096F9338167C2389F578BA2DE871FA7FE4C +:104480001BDADC02E3B1ECE3DD2B12F8FC7FF7BDB5 +:104490006EB69B2C3BB9CE7DE2794F6E040FBF6D9B +:1044A000DDEA927C2F5488F3BD05CDF13EECFFAEE2 +:1044B00079FE42F49358EC73839F048ABB159DF0F8 +:1044C0003A589376D1B0FCDED2BB287D77AEEC6F44 +:1044D000669E947BC31CE2A8207BA876BC513C77E7 +:1044E0003CDA098C463B8B0F961ECBD6218F52DDD2 +:1044F000589F8641D2EF4BF8E4733E0BCFD3E64A88 +:10450000B97A7E9E90717DC03B9793FBA0B65553C0 +:10451000704E972DA47F2DAB4853E0679866E2DD7F +:104520002D5E97F49C29FD0B434CFF81B740FA1395 +:10453000FAFD0745EFD4421E45F0A21D63BF689205 +:104540005B873ED2E81D3E7D10C18D5D4A9A425583 +:104550009ABC82EDB9A66DF97B114FD2628E93E8B9 +:10456000DF9D0579749FA2415ECD4CD3E74F423B5E +:104570002FB9C45EAAB7F8CE4385BC5F284F29BDCA +:10458000703F34ED98C4FBA1A99BD2B197DE370BE5 +:10459000B71C19F213D05BC87063BC4D9AE14E8B07 +:1045A000F273DCDCA530FDC6C28BE73A24BD8B1765 +:1045B0005D18475D81AEE07CB2C55CFFFA3B73DD00 +:1045C0008BE1F7837F7E0CAFA3C4C31645DB9B2B27 +:1045D000FB1913D5EE62B41BD5AFB5EE2BE726C998 +:1045E00078554D7767417E681A8F8FE6EF623F48B6 +:1045F000819CFFCC349FDB8BF69753FB84C2055A1A +:10460000A812F90B8A75D14EEBB5B8B394FDFD81B4 +:10461000CDB29FC08654F728C869A7E61E42705DD8 +:1046200082DC6F343ED61B9B081F69F0A3A5919EC8 +:10463000E8BD102F8DE6789BBA52DD4B6CDFB7B822 +:1046400040CFB5A69DBFB873D6D087685C4DC15129 +:104650006968BFC929E7BDD35CE78089CFDA6D2FD0 +:1046600014228EA5B639AB54C98DB477BF497F3BB0 +:104670004DBC5A78A9D5BA5C68A71FAFDBE5BC97DB +:1046800068A142F63B79E4BCFBE9619BECA7695B5E +:10469000A3BB98D2A54EFFD087A8DCD2E02B3988E7 +:1046A00047D969E2B976C721731CF13E8C43688112 +:1046B000A1A08BF7B6CF1FCAF3DAF6900B784CF2B5 +:1046C000E9D3A13F123DB0DCB4E8A261ACDC7F5677 +:1046D000BF4FCE75F2BE7872AED44F2DB990D02AAE +:1046E000F74DD3E65F317C33ED2BC843B77846B145 +:1046F000E4D2E5F659ADE9A7DBE5F6873295C8BE09 +:104700002739D8FCF445E4C4BB66FF0BCC75A9532C +:10471000253FB1F2DF986BEA21C06F547DB48776F4 +:104720008F98EB5557162A5C551C296FF55B972619 +:10473000EB617D402F47CC7543F9162EAFDAFC377D +:104740002DF74BFF4DCBFDDF590BB9DFF294C27A49 +:10475000E71F5B9EFBB779947EF0AD3D0D989F35CA +:104760008E25A47F603F2F35E55C53E8E2FB7ADCC1 +:104770004D8157E746F96D9B1EFCE7E1E08B7F7C9E +:10478000F238F38B93B4960EC2EBC27FFE8E0B7C95 +:10479000CA1AFFE20D7B36E4A5439EA58E811ED387 +:1047A0007F4E51A4B33DF0AE39DF9B3BE57A095A09 +:1047B000AFC254D8198DC2001D64FA7C90DB969F5D +:1047C00035CB27FDE1D67A09D39FBBAB50C6D15A72 +:1047D000EB5697D765DB77B1F3F9B389F7BF98F25A +:1047E000608149670B966DE17A8B37347E07FDD681 +:1047F0005AFBA8C9FEBDDF5FB6D925FD659B0BD767 +:1048000065B2FE29F17DABA3A7E46E2AF7C7958FA9 +:10481000DF9E95C7727B28E4F612D3FFB5D4D4FF90 +:104820006E217C5FCC0F48F816F3A2F07DCB6E8929 +:10483000EFBABC9E3FFF14F35A15C7E7657FDC3F14 +:1048400096FDB60B15D10CBBA6B6678F2B1BFB6C68 +:10485000596A1AC468EABC5C9E5F3F9F6D2ED5E022 +:10486000C74D9D27F77D2CDD46F02AF7FB2E97F4E8 +:1048700063F7C36912B6EAD50A6310F6BB08E60807 +:10488000C8F5483FA9695A09E9B5F3549BBCB5F28C +:10489000CFAE6A7C00714767E3255DAFA4F6707EFA +:1048A00073769A6F28E8DAD2DF447A88E9AB611828 +:1048B000D9C790A389011DE3C84ED4D32017C6CD14 +:1048C00093F45350A05F8DEFC92AE9BF38AF22316E +:1048D00032710CE84D88F831979653DF4EE8B9AA4B +:1048E000F932FA5FC1CAF05F304EB009B48334893F +:1048F00070B0C0C41FCE01068E89E8A1B17C2856D5 +:10490000BE5BF562E97963D162A62F5781DC47D699 +:10491000FC69BEDD324E47CE97C6CB71A4DF4E9305 +:10492000B07F9EA4E3B3B94619CEAB7B2779B4BD63 +:10493000A44AEE55F5168EDF25FB007AB628320E16 +:10494000BBA1777DAD5843BC83283058AF6EC8D625 +:10495000F8DEC5D976A9879FAD95F1409F777E6730 +:1049600073E57EEECD121ACE77AFC4676B9B9420B1 +:10497000CE235CAD497B6DFBA8CBC17EDA735D6352 +:10498000F93EC839D89218D7AA788E533B9B6BF959 +:10499000378C64C8BD53C151A9382FFCA2FEE7BBB8 +:1049A0004C7AAC4B907C95B4771EDFA9D67CD68729 +:1049B000ADEF967C3EA58593D2A2F830C98724EC52 +:1049C0002FD19A2F102770AAEB6C92CA742BC7674D +:1049D00095BFD325DB15496E3EA7AEBF7396BB913D +:1049E000BED7B7BEE652280D9A743B2CBFC71894A9 +:1049F000CE7A9C06FDAB23C997897E3A527D99D128 +:104A00007A41A2771EFB59CEE6860AE077EA2D8D21 +:104A1000F741DF39E59D373D0BE3DF91EAC37EBF08 +:104A200053F19DC239BE581BC7F6DECA9E43056CC2 +:104A300017660A15FCE16C6ECFDF7E033A599BE8DE +:104A4000437F3355B101E779876F0A7C731EC6E354 +:104A500030FD529F51BF64BF5E8D46692F794DFD79 +:104A60007698DB50DDAC2F3A98AF5AE7282D7B1CA7 +:104A7000367FC89297E4394ACBD76B065E0B39B4C0 +:104A80009D836E10BFCFFE9F883E29CF6F96C0FFDB +:104A9000112577D66D2B1F887B4D4D5B2ABF1524C2 +:104AA000BE3954117EF09BDF39C3B3401FEFEF19BD +:104AB00094D61EC5D77FDB1DC7E769EFEF79EE956A +:104AC00009D4DF9F0F64F03D2661A86C57ACCF4935 +:104AD000E7F5DD3F4FCACF28BF9331488FF89D9A45 +:104AE000F6ACE77B524DB7750C47FAFE9E78BE2FA9 +:104AF00055A1CDAA48855EB33395FD79BF5D29FDEB +:104B0000082B7E55C8741C32F7E1CAFF3CB20BE794 +:104B1000434B72CD7B4C3D891C77B6B2EDC050073C +:104B2000757D9D16F817F075DC5F9AA4CBFB4B5989 +:104B30005C5EBFA83FDA4ADF6B93F7566EFBC65B3D +:104B4000DCCE87EACB5FAEA5FA2B6FFB5132DAB928 +:104B500075FB6B133495FD452F601DFBEF67ED90E2 +:104B6000F7B33E88392F5A71E9F3A257E645F95950 +:104B700062C7F1AA799EFEAA490F33D3FCF36A25D6 +:104B80003D303D5D6AFCCB0E28B673BAFAEE1437A1 +:104B9000EE160442C2AD15B39F97F5E0F71DA2953E +:104BA000CFA94C7DC7FAFEAEB95FDE4FE91A0AFA0B +:104BB0005CBEEFA1A1D80F7F489270E0B11796DCE0 +:104BC0004BE3086C53710342049CC2EDA37A370790 +:104BD000A53E2DBCC4B42745FAFF685E22B7B73C9A +:104BE000E67E9640D4187DFF8353C685E07E16F49A +:104BF000B2DF3A434B4047BF25FD35C8EB6DDAA322 +:104C00005D8EE91C8F72A7220A15C03F4A2A907E4A +:104C100013E6AFE25F641C4FD2B89E10F8DE6DCF92 +:104C2000901E24A41F02F4DDF213D7F46CA9A7711F +:104C3000B4F64A67C87D313A5861EA67FDF0334FF0 +:104C4000B9A137AFDCBF85F51F62BBDD85B9D8EFF1 +:104C50004F1D1B9C0E7A6E1CCB7761CCF2B73F23A5 +:104C6000F1102FC2EED951EBDD5894B62E9BE481A2 +:104C700036FF9115DBA97C23D6E95A6A72EEFA5BFE +:104C8000DB0B909A7E76672FEBEB1B8B5E657BF8D8 +:104C9000B64ED9DE6D45AFAECBE379CD1A20A2D6A4 +:104CA0003F75BE8BF163D5A77973BDFE78AD354EE8 +:104CB000D1318EEFAFF17DB6D6609C8638D3479662 +:104CC0007F95EFBB65C47934C4B165A40572E7B3C1 +:104CD0009F5FDE6BA37434D28BC449D5C0CF69C546 +:104CE00049755871425BE265BE1927D59124FD22B2 +:104CF000FF857152D7CC273C846EFBC5481E8F833D +:104D0000F41352FD8CDBA7BC758CE619EAF022681F +:104D100055EC6C3EFC47C4F718ED293AE6FDA89027 +:104D2000F16AD799716A93C707CA80874CC4273044 +:104D3000630B29588F8F7EF6FBB1C02BE2D740F76B +:104D4000AEF6BDB756109DDF385F93F103C5E1B1F4 +:104D5000C057C66153DE394FB0FEE0CAD4D320F746 +:104D600043E63968F05319BF7550097D87DBD71CBE +:104D70007721EEEC845A320672B67DBEDC7F9B2A28 +:104D8000FDD5988FD01D8568F723D7C95CB417A4CB +:104D9000EDE4C8267E3A78E20EACDFB40E52BCA633 +:104DA00008A12A19C249F026A1F6E25C7F8899FF82 +:104DB0003B5A5F31918AB8355146FD4F392C7A38CC +:104DC0004EBE78B1DEC5E50977D811AD5A087179C4 +:104DD000A225D907BD25DBF19723386FCFBE5BF144 +:104DE0004196349C7B8FE3814E7DBA3F1E76C7BDD2 +:104DF000E303CB30BEC10EE30CEE924E3977C0A375 +:104E0000405F28513587E997F50C14A24CFE531CDE +:104E1000BCE7D3E40CC425F60E77FE90CA7D647817 +:104E20007CF0F39DBA77E4D1C918972A7AE1371755 +:104E30009E4AC3761F8D96CA3321D24E7CD788FEF8 +:104E4000FAAC5F15EB4727A79BF7D57C17D6FFC8B1 +:104E5000A7733CFC47BD7DC9E06365078FBCA59087 +:104E60009E53E6F186104F213CAE3FF5FBD3D1DFD8 +:104E70008921A9889FE03D4D781ED821D7736A8A81 +:104E8000DD2EDE3A5FCAB7ADF3A53C72EA3EC63707 +:104E9000E2B8B18EBA2018E334EF879CF3BAA5DFED +:104EA0007A591CFBDDCE1DCC4F1197D917AF41DFCE +:104EB000223DCA71BDB11578FEC83585DB0BD27AAB +:104EC0003BA672BC09AFB7A2AABDD0C369FD787D6D +:104ED000AD7B7AD77D26D7B3BE39D907BCD2FA8D40 +:104EE000FAA680DD167EF4970AAFDF6ED0F9237D37 +:104EF000A44DAAD8AFD37303C5FFFFACDB27F1C91C +:104F0000FB80AF483C2BC1E95F249ED59F302297A0 +:104F1000F9E251E03F4BF43EAF123C4804992FFCBC +:104F20000FE28BBF991F1D3FEA55594FFEBCF1A3FD +:104F30001D881F2D45FCA8607BA2F79E24792EEBCF +:104F400024CC227FB5EEC33826E3F207E727DAE365 +:104F500047EFC9B7E24739BEB4233888E377C2AA1E +:104F6000E4AF605FCCD79A858C13143ECFD5043F55 +:104F7000AA88A7110F62CDA3C3BCC72D9C3E0FFC0E +:104F8000C2D6BE144EF137F8A71B76E7F3395C7C26 +:104F900057DCDF9E045D054773FCA65A23F7E7A69E +:104FA0003549424989D0251FB5901C1D5C9C70462F +:104FB000A1A51FEC554371A0AB651546345D7DA9D5 +:104FC00046303FFE1745043D98CF2C19CFB86D965B +:104FD0009185F3DD6DB306AAD03B9FFDCF3B4E7F9D +:104FE0001DF37FC5C5FE826DA5725EDB7E96CF7A0E +:104FF000E929B5FBE1A5A83FCFCB71CFDF5202DF96 +:10500000037D3B325FDBD144EBF088DAE5013EB64D +:1050100025A9C3778C43BB1EF66F6CCB9578DCB6A5 +:10502000BC98DBE95FC7CD4997880356E53A2C5712 +:10503000BB61B7903E910CBD93D6CFC4576F32F091 +:1050400037D9B43F689D6A9E66FD94CA459D4F7DE1 +:1050500064EA651F219E3725EA7BFF3AC876AEF4E5 +:10506000BD6B5CA0B8262392BF2DD5C8829E19DFE8 +:10507000F55CD15B72FFEB58E7EDEDA51B387E3791 +:1050800049D51E1717AED3F6B9FB0EEDA5FCC472B9 +:105090000FF33311DC7308EB9EE8F031FF003E1F85 +:1050A000077EDBA53D16BB8E61333E5DE484C747BA +:1050B0008FCFF2C30C0B9E7998FDFE227C15E4ADD8 +:1050C000F54EC029D749DE17C17C29773F31F9AEAB +:1050D000AE885E5C321F2224DF8D0F915C9D043E02 +:1050E00033347837C1E155C93E65F0E7E133721FCB +:1050F000E45095C47CE637D5C09743F565C6B1FE4C +:1051000021EFAB5FC86FF4DA687EB3F512FC66EB93 +:105110007F3DBF5986F1974C08DC56C3FAA4C1F70E +:1051200008067748B968C18FB8A55CB4EA9D56E413 +:10513000388B44AF0BF4BA88F8FC00E2F7EB6AA4B2 +:105140009C15AB63F8BD491F0D267DC4777DF2BF6A +:10515000B0EF17915E877E1A56C79D81BC6858EDE7 +:1051600092FBBAB5D288A9CF72CEAA2FFC679EBF98 +:105170001BF5A749F9B468F9BF6740EE5CB27E3809 +:105180002715E7ECD63DF84529FE0D98F769316003 +:10519000283EBEFC1F0E3E9F2A70A6EDC27C5BDA45 +:1051A0000B548CEBE5D2410C37B88BD240C75D3540 +:1051B00052DF3BA619DF647C7D762407FAE6D171C5 +:1051C000FEAD80EF2B38C7E76CA74A7BF91EDFA93D +:1051D000DA0F86605C8B5A5F6079B8C8928757C6D1 +:1051E0004F06DF775D7EAE1F4FCA7F039E6E1C4E5B +:1051F00014CD746578A0FF14D64CF5605C9DDEEA92 +:10520000CBEA4367DA7C224476F99AC412B66F700F +:10521000EEA349BB5AC6C3F44D1021E27F8BFBC6F7 +:1052200089D0807FBC9FD36D13CD7E9219EF8B9C6C +:10523000BDAEE87E16F54DE57E027D53B89FF2AB1C +:105240006F38FC4C3ADA55D9AF76A5F6D7B5158943 +:10525000D088487BD67777BF9F20C8F45EDE3FFEBC +:105260008007E73585355F16D0AFD7D60996B78367 +:105270008C40552EF8C1EB0E8EFFB9547FDBDB342A +:10528000EEAFAB4DE7F44C8DF4CB6538F5036CFF16 +:10529000D5085F508F8C27A36F20CF6B605F3ACF0C +:1052A0007350851CD79AC49F8BC6A8FDDE67ED4B53 +:1052B000521E43D67A33BF4A10A1A26838CD0627C2 +:1052C0001247070C95E0EFAC17E4C594BF3AA6BDB2 +:1052D000313170B7198F766D4CBD321B3CA84A8EA8 +:1052E0005B33E7A95568A5C1283CD18CCC76647B9B +:1052F0005ADF709E776A5F01A7D63AE06FF340DC11 +:10530000ABE5A18A2349D707210F8E2BA27900A5EF +:10531000A966DC9CD3A7303FC75FD704DC73167C3B +:10532000EFDDE9EDEE447E2795DFAA45FC7242F4FD +:10533000381BE9FB4D55F1EC278EDC83D6789F575F +:105340000B1FA773849FD379A299D38FDAC3133825 +:105350003E580B0CAA1D8F7BAC81DD692ADFDBFD7B +:105360002EFBA162FC2FB1A935AFD8EFFC365196C8 +:105370001C7F706064FCF8F34E30E72FB8FFAF9AE3 +:10538000F7B147D8FA7799FD93C030F77FF0EFF97E +:105390003658AE93379DC777C1F70BE0CF46D8613B +:1053A00039EEC2D6DD06FCEF6B7354DE07F1E997E8 +:1053B000DF6F1D644781EEFBE7D9BFCFBAE43B1333 +:1053C000596979D0470B674E65BD922C70932EECCE +:1053D00074BD0EFBFA327EC30BFA71FA04FC624E06 +:1053E000AF1AA14BFABF704E438A3FE98BB7638D6A +:1053F000FB82F68ED6A5405ED6D7AA367E1259EF2E +:10540000CBEFCF4339D52AF487CE4C937FE52C568A +:10541000719EBC96F819E2ABD6665633FF5C4B78AA +:10542000BEDC7DE28DE6B837B779987F3E60F29DAD +:1054300075C5A21B72C131AAC213F646F8E3A6E2F3 +:105440000AE66B89A92AFBC1EE7AFBB995ED05172F +:10545000C1BBEEFF0AD6691DF139F803D7C1F90ABD +:10546000A530F8DCCA430518D7D3BCFFCEE32267CA +:10547000AA9CCF061AFF7A931FC78E33B1C88EBF7E +:10548000245F42A43F81FBC5693678BD395EDAE00E +:1054900099175BB7083FBA121F94F4AB24C7B37EC9 +:1054A000FEC38785C92F02876F25F8AA8971AC0FC3 +:1054B000553A56B33FFB87AF3BCC7C1977E833F7BF +:1054C000DF0F0B7C4D98EF554FC9F7437EB85F381F +:1054D0006E851CC87488944CC4C1C97B2245E67E85 +:1054E000B6C6397ABF381347727E74C86D9B5FA504 +:1054F000166783AF1251F9B968CF0E7FD17BE53FB4 +:10550000A835E311AF11D7000FDF8B8947BCCA8ADA +:1055100047EC1EC7E32DFF4648455CAF158F581C6E +:105520005AAEE68D8AECCBEFB57994B351F1DAC37C +:105530001FEB56113F77B5E85E93003C3C26E4BD77 +:1055400052B33D77403D0C7CEFEBC9E338DF7D3D46 +:10555000E78EFC9DE0FD4FE471FCE2FE9EEA94C5FF +:10556000C551FBBE3BDDC63F71EE057A46398C77EF +:10557000DF136A15CE29F63903096917E13BB172C9 +:105580001DF79DA3E92DB6FD4BF1E7CD42AEDFA699 +:105590005AFF6BB59043C11E15F4D78F2F5FB56DC1 +:1055A0007DDFAA95766E7B8BB0E214CAD42FA097CC +:1055B000749AF35C67EEDF133581B3E8372DDD08AD +:1055C0003A559CAB9EE0F839EB7E343FE144782EAF +:1055D000C73D59F0D10C5A00EA675AF24F42B8273A +:1055E000D549F408BFA245EF1D8526BD3BEA38FF2B +:1055F0003CD13BF45F57B006375C4447C0DBCC710D +:10560000B4C532BE15870BD01F3BBD24352F436F69 +:10561000F131F1B14955F677555C57B83FFDF75A6E +:10562000F3BE94499F165D0ADFC5E5A84597390882 +:105630004CCCB874B9D8F58CE873BD49529FFBB90E +:1056400017FAE8E9E2D92C576E046E2ED2CEE9366D +:10565000E3A2FA68E5AD81410B581F9D6EEAA315E0 +:10566000ACB7AC4F92EF4D1D871F87E3DCE53DBB28 +:10567000193E19B7910DFF15C1C986BC87970DFF5B +:105680003795D79649788647D6CF9C23E3466798C7 +:10569000F17599018DE1212B032316F03EF911B725 +:1056A000F39D6FC87667142B3C3EC823FFA84BE3DD +:1056B000E3B42927C2269D9DCEEDA9831FE2CCFA33 +:1056C0007F752E8EA2CF6B1648BB688627599E2BFE +:1056D000158DBF029ECDFD5BC4CE3A7EEFCD9B768D +:1056E000E9F5B0CA5D69DD2C7D8DF66105CF5B3CC7 +:1056F0006DDB87B1F5BEDD5256B580EA6D49FCB968 +:1057000062107E1A570ABE27F350E2D063C0577862 +:105710006D1CDF270CB73FC7782D192BE3107421C0 +:10572000CFFB7327CAB88F436B0735C0EE3EFE33FD +:1057300037BFBF70DC2CFF241CAAA5D1F4A42563BD +:105740005F1FFAE98235EF527E4DBB3CDF3F133CD1 +:10575000FBFD1F402E06F8F52151125CC5F17425A2 +:10576000868C17387E20C8FD05CA69A3650BF1CB6E +:10577000E207B9FD33CBE4BB521B60A7C499426773 +:105780008234FDE027F698FAB4A780EC067CF37823 +:105790003CCEA8F86B4F5F09D323971EC8F1C542D2 +:1057A000FA55241D5D7DB39C5F7C5F31971B99ED9D +:1057B000BB7A523ED3D52AE03777ADE3C689D4CE43 +:1057C000F01D82E9A93C7912CBBBC6A0A2E35C61C3 +:1057D0005AF0A90AC4AD058229FC5E4AA0F80CF370 +:1057E000F7C0011291945F9E16E6F88A199A7CAF71 +:1057F0008DF2F97CB03147709C434567BB82776C72 +:105800008E37D2BA40EF1307E4BCAB241D1FBF2A6A +:10581000A8C0AF19A67CC8D7F2640BCFA47DD178FD +:105820008E7796ABAD52DFF043285B7CF64C50E2AE +:105830005D1F27DFE73A1E90EFC658F3DEBB4CB67C +:10584000BF01740F3B2C982FA0C79E6F76F079C0D4 +:1058500006FD5C1AE062C5C3FE74B4EB8C6A97E87F +:1058600051815E501F101C87BBCDDC47FDED15CF6D +:105870009EE6427B7EA92A543A3673FBC7E7D03CAA +:10588000F50BE9F4A766FD1E731FEE33F5B5E3C112 +:10589000EF6C2A017FEE51B99D013B02D3C00E632C +:1058A000EB5B72D1EAFFA7A84FF0FCDD6115F810A1 +:1058B000A94E1147FA48A31E5C9F087F997036E3F2 +:1058C000FCAD55043317237FBF9BFD74DF7D74DD72 +:1058D0009A781AE7F715D1034A9DAF07199E354606 +:1058E000E0104E6C807F93E8C403FF26F1B711BB34 +:1058F0003670FED513049FDF6D7075BBE0870DB663 +:10590000C7EBB8F7FFDD5DDFE7F8FEEF93DC011EC4 +:1059100047E61DB81AFED89716C8FBFDBEF7B5239B +:105920007053D4ADFF4BDE624A7F9D60AC39063CBC +:105930009538D85FFA64C991BBB07EE79B93F08637 +:10594000D625F9C30673FE16BCA04065FD6A4177F3 +:1059500037C7030E59939BAB4E94EB887539DE29FC +:10596000D7717472CF4CBC1B2BDE74705C8B2E9E77 +:1059700039C4F765E6CA775963FB3973093C9F6EF2 +:10598000CB64B8F068F1B3F0A39E7FCCCBF6D0F730 +:10599000367E7BEF0EA4F7DD924716AED897FBD587 +:1059A000318775791F05F5CEBC122CDA4BFD2FDE41 +:1059B0009DC0FB77C4F0D50B104F307CC4B2158B63 +:1059C000B17F576F11993ADA97745132C2CE676E30 +:1059D000DEE0B0E93381D58936B8C0FB67E63BE14C +:1059E000D71D1C077F2638F6B27A87754FE634CD6F +:1059F0000B69E2C23C9BFE74FAEB7717820F84DBE3 +:105A00004EEC388AFBF209E1EFFF00FBEB4D190782 +:105A10005122D292C10F4A44660FDE693DD3798785 +:105A20008C1BAE148A43C6D3F1BD8B709BF630E459 +:105A3000B60BED47D9BF45C15F19F0FF630A81344A +:105A4000AC4767DAE5ECB3A2A0127295203D642062 +:105A5000BE6F3171A24AAC67938BCF390A17EAA6A1 +:105A6000DF403B8638F1936B86F27B0B8D9D87463A +:105A700041BE45EEDF885388473AA96A9C5FB47AF5 +:105A80008FAB95D27F3E5F92A712DD0F5928E5DFDD +:105A9000E84BF859072F94FADEAF137A56221EAA64 +:105AA0004834F3BC4585A66C267955172754C47530 +:105AB000D67D277D4F308A8E67AC56DCCA68C8EB2E +:105AC00043A380D73A47E83CD75BAF088CBFAC53C1 +:105AD00011883B7A7B69D21EE63B4D5DE3F15E4760 +:105AE000A1D95F5D9C199F1FE81A0FBB73EEADC66D +:105AF000F085880F4EB6D3C98B2D0BD98E3C6EDE48 +:105B0000733E13FCD1CB63A8DD8F9B1C7CAE61F987 +:105B1000298E7FF6E028DC3FFBED4A17DE96106FFA +:105B20000FED7142BF819E60805E890E918683DF9A +:105B30007917F8F42B1EBE5F65E9D98EE2DC0726E3 +:105B400082FFCF74F9AED7C1EF9B8720CE650AD60E +:105B500081F2B79AF25BE8D27EEB70F932614F5F67 +:105B6000494F89D5873BE38335FE8BACC3BAABE3A2 +:105B70009745C7BDDF6CAEDBCD0BA53D2E1C3305B5 +:105B8000FCACEB34C1F1B52ECD6E0FC4B6179769DE +:105B9000B747BFA8BD55BBD06E6F114E7DD0AF8348 +:105BA0006F387CE6B9CA670913E47516AC03DF03E6 +:105BB0008273A1A945603D2DFD76F2422B7ECB5824 +:105BC000BC3003B0E0F98CADF52F015C9EFC30C712 +:105BD0007175987E7B5135C6A64FAD30E76FD923DE +:105BE000276AFC2B514F541802EB90536BC6BB54E1 +:105BF000493AB0D22FA08F7D157427C24FA958C73C +:105C00004BE963ED2D65F72EE4FE035F47FF49087E +:105C100044845FCA3070C3BE5F7E6F9DA2329D6EAA +:105C20009D72793FCF3A536E6E34E962832937B75C +:105C30005AFC78E6D426ECA74D55AA0E7B736BF17F +:105C4000E7B3BB2CD8E9D414D06FAA479B063D8498 +:105C5000B43369CF3AFDC14F083E668CD9877607C9 +:105C60005C77A2681EFC2775F21E87AB42B5D14D4A +:105C700079597519F4C12DAF4BFD62C07542898EFB +:105C800037E4284147A4DF0762C691EC0C0BECC354 +:105C90009489767AD545D813CD1FB74C94F37B21E0 +:105CA00053DAD5A91305CB39ADA24720AE4F0BFD72 +:105CB00084DF77D2A6A83EB204C5FD46E0844AF34D +:105CC000D1260AC560FFACC6F663E244B51B7186F7 +:105CD00089154103DF5FA83A57053C6EC974AA686D +:105CE000CF65FA57B85FF88126A6DD5040F5823EB1 +:105CF00095DF9F78B96AF106F8C3B7A6ABACEF6C35 +:105D0000AD7AFA45C4B7B8DA5396E2FDF5C30B1D78 +:105D100032AE26D32942CCA7C2ECD7DA94A99A7026 +:105D20002FFBA38E2F94F13C0F549CDB80F637A7FA +:105D3000F34EA1DE7BF9FC60DD1469FF3B3FFB4ABB +:105D400008EF4A7DD358EC067F3D36E51DCF7B5CDE +:105D50005FF6F340C561D99E91168FF8B32D55D5E6 +:105D60001AFA8BE8937A3CF25DC2C3FAE91643E56E +:105D7000B8CEAD156506E2BCBE29442FE28CBE69E3 +:105D800094850A20DF0D4F2F34BBF2AC39621DC160 +:105D90000F144B7A2D2FD9CBE7F2C45B2C1711BF10 +:105DA0006362D9E7AE71F6F5F36A76FE929063F717 +:105DB0007739A6ED0DE69BFE34EECFDDCD70D734FE +:105DC0004FEF1AD8EBA103A209748577EB704F2F20 +:105DD000F99E10F8DBD642A967C6FAC1E2848C0BA3 +:105DE000389F29CCF72B4355988F738ACAF7D29CDA +:105DF000554B43F904FF1BB5AF4C045F92FEAB84D7 +:105E000062BB9FCA536087DDF04B45D9F5CE183F82 +:105E1000D595F8BBB58F3B4DBD6A9D8BF83BCBE567 +:105E200000FB853B1D5A29EBEF442E85E988B7CA54 +:105E3000D983F549AC53CD7766843810655F7E70A1 +:105E40006B20B12E43BE6F188D6F570CBE736A0D59 +:105E50006F1DF8D6E7F4D37FDE72578AF7FB247EF6 +:105E60006837F495883EA7B39C7EC7BCD7F8F14944 +:105E7000F93B0056DC5F6C3F0DADF93B2BA2E24ACB +:105E80004FD5CB78DDD87223579615617ED6BB3BB4 +:105E9000BB5A9DBC5FB6F9653ACEC45F6CDAADF70C +:105EA0001E02FF58DCAA743B15A4672A8D8BF0CD27 +:105EB0006BEB14EB5CA6DB35419E2BE2EFDF5D81E3 +:105EC0006BD1AFD1A4F27CE2406FCC378C101F367F +:105ED00079BC45380F5D6A967F2871D74D13A8DCD1 +:105EE000A937E4FB866F37DDBC0EE7F6E73E4B6172 +:105EF000BB618B794EDF1094EF9A049C7A03E01C0F +:105F0000A1FA1C53D08EA4BF0493DE1ABC128FA733 +:105F10001E56F89EB2D5DEF9D6144DB6F773F6AB21 +:105F200034E8F29D65FC19641F2F32C7D3E0ED5DA4 +:105F30008BF53B659E132D8DA1EFA0E8E2F12E7D40 +:105F4000DDE1C3BE59EA39C8ED798836F01EE9D2E1 +:105F5000D6F5D26F43F6BC9BCF57DC52A935F7611B +:105F6000547BCADF797C473E045F3CDF1AC7763535 +:105F7000780DEC75C60FE02245005FB7987CE4967B +:105F8000D687A49F6885D01C932E1CDFDB4DD21FC3 +:105F900074DE307F8FC2103AEE652B667D71500B38 +:105FA00072BCBC195F18A1DFA871E5DB60D36F6E0E +:105FB000871705E36CFBEBEDCF66A75CEE5E496CE3 +:105FC0007D55F75F962F889D51FEF0BC4879D1F53D +:105FD000908173F0083EE2386EE852F52A6F35EE94 +:105FE000033D0E59E9DF5CC7F42AEF670760BF97EE +:105FF000229EDF5FF632EC82D7653C7FA3C71BE4AD +:1060000073FC4EFBBBB256FB96DFEC6CBFDF2C5C27 +:106010000F7EF5BB073F722D8E9AFF4E737F34C003 +:106020006F063DFA1BD9EEE873DB47574EDB89F16B +:106030002CC28D8C34D86F0E1B7F6ADA9C68D73FD8 +:1060400063CEEF2D7E437A13CBAD53ABA55D4BA949 +:106050003C87F1CA7BF957E247C46738FED869C666 +:1060600047967BEC7665A5661FC7F599036CF00D26 +:106070007AB6ADFC8CA27C5B7E4197F43B9F27BE39 +:10608000B691E36CA49EEBC6C37144671ED1C5E90B +:106090006113AF474DBCD2E2FE12F73E1284B7192E +:1060A0007659A2A92F268930D74F01492316C83324 +:1060B000FB61E758B8947419C706E586E679FA26B5 +:1060C000C17ACC692B1E67968C6BCB10012E67C5ED +:1060D0000F66E1755F07FCAF216E6F8808333C0CDB +:1060E00002D4812DA8739A2F0C7E1FE5DB2D4BDF88 +:1060F000003D158AEE93F85E96F8E110F8E3CB16B2 +:10610000EACFB820F983B7DFFE32C9CFB2F9FA5F20 +:106110005D84CFDDEB6FBBFD28E9C96571F27CEDD5 +:1061200093BAAF3F19A4F2D316182759FED48BCFD8 +:10613000E597BED43EB9643C46BD7ED1788C7FB431 +:106140009F4BC66398FDC4C663242C30FAE4FCA4BC +:106150007DF10B57778E8CDF1061C7409BBC10F52B +:1061600019979117A2B79EFD8EC4EF119F269AB57D +:106170007578CFBDC3E796F1AB31FCADD19313BABF +:106180009BCB25FBE2265EB88FDF74FABDE84F1C7F +:1061900014BA6577406F3A5D2CED630B0FD6BEB233 +:1061A000BEC7E2E34AFB2436DE0287A5D1FAD895C2 +:1061B000F01DBB1F8E99F6CD8BA67DF30B338EA4FD +:1061C0009FEFFD83BF0772E1FCCFD6BBA43CD2C0DA +:1061D0003F4EC54BBBF28B8E4FA99D3EB19EFDF449 +:1061E000F6DF19B1F8563F5FC85478BDADF7D389D3 +:1061F000C13BA3ED9AD87ECE79F7FC0EFE57E1F0B5 +:1062000036C75D7BE9795A7CC1823BE28D4C1FCE5B +:10621000BD5D179F4F7BCBF42F63BCE5C9FF581CB6 +:106220009105F7C70F399D3CBF639983F66EBC8C0F +:10623000FFF298A2DF09D36B45FD534FE27DA832F0 +:106240000478F03B1BCFDE0EBDABAC9C49472CABBA +:106250007FEE49BCAB41F6F352D02F7D97FE1F4332 +:1062600018B04F9D9AC6E7AAA4D7DE8279DC69F2FE +:10627000953B161ACBA3E1890B8D5B51DF824FD47E +:106280001AB745E7D3DF36D5AECFDD79B9FDF9A62C +:10629000D3B88BF753EC3A7F4E7D796B9BFEE0EFE2 +:1062A0000A891E9EF0CAF3CB93921EACB84FABFC8A +:1062B00080A1BE338833B5FCB503F29A47FB988FB3 +:1062C000355F137DBFC78ADB48AB92EF8C7C92248D +:1062D000BA1C51EFFD5FE30E3C80F92AC91303E8B5 +:1062E000EFEE77143E071A30D3C77E94B472E99765 +:1062F000EA8897EF5AC48E7B7BBDB4F327D71BDBAC +:10630000E4BCE53CD266CC0C75527B6B89F3C01FB4 +:106310006ED4348B8BF92F5DE901EE87F0BA0BE375 +:10632000706A7E861D5E39DE48BC9395CAB83F8F81 +:10633000C9DF843F97CF13D69AFACA5A6DABB88794 +:10634000F0B22147E5F77D4E4EEDA901DDAD555484 +:10635000DF1AEC13C3D0D30746F8E368B7165A6CBC +:10636000EA7F8F13DD95256F3010FFB4C9F0F8F880 +:10637000FE89EEB6E94FC28C5FB4FA5FEF2DE0FE06 +:106380003750FFE86F93D719C2B9C226E161FF46C3 +:1063900089B7E745D8CD255E27DF5739D9F283ABDA +:1063A000A01779D2DD1CDF18DBFE6FEAA59E54181A +:1063B0007CFFE9E398575861FF794DC63BECBFFE7F +:1063C000F8A4FC952F4735D12AEFAB66F617ACF74A +:1063D0008E4B8EE69F380730D8FFE3E1D451E8D3E7 +:1063E00031CE785D8EBB363EF06FC0773C8973232B +:1063F0008A4F0FA84A1046141FDF7495C6EF136E1C +:106400004A7A91CF8FEE8F97EF29348E7B96F5EAFB +:10641000CD4BA86DF831490E21EE97E628CFCB631E +:10642000E44CACBEF6BFB1BFA8FFEB7A3F7AFA7876 +:106430007A649E8E8164A746CDAB3078E045F84FF4 +:10644000D67A9D6C975F090F275BBEF622FCCB8F37 +:106450003CE010D1F7DF3E073E7A41BFFF5DF8E038 +:1064600047433FC7B9AFC32D7F6FC8E1F6E9D1EF0E +:106470009C243448FF6E77BDE16AC8F8FCEDFD62EC +:1064800088BC3FB1E99E448E93D884B389747E075B +:106490009DCF0D62EB653448FFABA7D9486BA0FEDA +:1064A000862FD2CD38238DDF79696C3DFE16EC8FB7 +:1064B0004D1917E717D90DD2AE7EA9D9188CFA0558 +:1064C0008B241DBCFD6A770EDE4FD8ED77EBF05BB9 +:1064D0008DFEFA3907ECEEF533E53E5EDFD3F2626E +:1064E0002EC695E3E4F7B1F6F7BCC3FA485CBC8F5F +:1064F000EDBA6DED816FE11E6A7088FC3D8EB89B30 +:10650000AAF95EF4FDBAE2835F6FF7EAADD3712FAB +:1065100072AD4FE17728F217A599FCE44415FC3CD5 +:10652000AFE414B0FD7A685C9E8278B0E555F2FD68 +:10653000F6E58FC9F7A366E68CD98758C453398727 +:10654000F91DBCBF160426086E47F2BFC2401FFBF0 +:1065500019778D93FEA4B75AB74E871DFBF16A7960 +:10656000443D65B57FFE606A674A955BC38743E932 +:1065700079FC3B53DBCD78AAED8F6D11F750FEFD12 +:10658000AB657C9BB3CF210CD21B1D7D0AA74EA708 +:106590007CEF6F802EE3621D33ED745A3FB3E7A8A2 +:1065A00013E3AF1FF136C6BBE926B70E797DFFCCEA +:1065B00037F97704EEFF2BAD506E847F597EF6FBE2 +:1065C000F59EB730CEF5AD6ED14EF90F2ABD2F61D5 +:1065D000BF0553550D783C3955D2C3EE516EA60F09 +:1065E000E10CCFC03C367D9AA761BFDEA8AE3A86EB +:1065F000F7846E7C5AF17512BC6BD4F4D02D046F05 +:106600009FE6F1B1EDAE5DC03F997F5BFD5BFC7B2A +:1066100097C9BF77CDF916FFDE10B5D58BF7779602 +:106620006F3BB3027055AB5B67A66DC6F9DC6AD5EC +:10663000173DEBD0DF6DA6DFCFB9FACD75D7C01F00 +:1066400050E6E975645ED8FF977A55118CC2DB7508 +:106650007D092218B5BFA7890136B8DC936D2B5F81 +:10666000A9E5DBF2AFCF1C69CBBF411F6B83EB8B7E +:1066700026DB60B15FBEA7476A0A8FA7FDA7092C7A +:10668000E7B73F2AE3746F8B79476F59F7AAE94B55 +:1066900008FF4BCDB8A4A53DF6DF6D78F0A6AFF2AC +:1066A000FB7E5BF1BE9FEFC277983734D8CF5DE2B7 +:1066B00032A4DEB23DD3CD74F6EBFABBEB11BFBD15 +:1066C0006EB017BE5AD1B32CF04DECCB8E9C7145F9 +:1066D00088ABD8AEF9359FB453320B26F4875653A6 +:1066E000EA8EF045F08DFA38A6935DCB857CBF0B22 +:1066F000A432905D37BC4E7FC879AC1DF7A7766396 +:106700005D358C7BE921C0EB14D12B2341DC4CCFD0 +:10671000108918E7E027561CFABE5CC7669CD713A1 +:10672000A178A0973B67AA1AF6D7C0656E1BFDA398 +:106730000F3D4A4FCBCF290F6E827E44784921BB53 +:10674000E7C1D563D6CC4D67B9CEFE63D005C64F41 +:106750004D78B00E71853DEC578F4F773259E56F0C +:106760008BB3F17D6B3E3C7F9E9FFFD8346A2F2D0B +:1067700028F89D47E02318858F5DF7BCF730F67742 +:10678000145E7FCA785D3D6619E24ED2F460501403 +:1067900047F00A331DDFE345D4BCA89E9167B0DF04 +:1067A0007780F5BB8766FE04134FEB94C05BD07710 +:1067B0008373E5794C2C5E1C7344102E4387E6B638 +:1067C000CD273F682F77A221B5FF3D55EC4F3E877F +:1067D000C98DF427CCFE5C31E373079EF0F3BB6DEB +:1067E0007354817579F21BE70EFD7D1C9F33F5D341 +:1067F00041D0DAEFCA85ED1D2996F7C23A7561C618 +:1068000093D8F309CFF7615D5C994E5DBE5F67CFAA +:10681000F738FD41F86B72F00E22AD7371D6EF16AA +:10682000F0B9F13D6E81FBF02EDD3EEF5D4932EEB9 +:10683000E5C11B641C4E3DE1257A7F96CCFC16E732 +:106840008B6524D7497EF635C873FF3C776809DA33 +:10685000CD6B89673EB99DE60BBE95B02A5EFE7E84 +:10686000AEF03D9C48709E9A2460973FE8D2B3BA40 +:1068700068DFFCF286F7D6E05C2221CB21A0B1B420 +:106880001E68DE0DFD50281EB6D7A00F46FF2E58FD +:10689000893B9C8573B65DF51F3E0CBE16FC89874F +:1068A000E51D290C798817B0CEDDD7E7BCEA69640D +:1068B000FDA895CFBD6A86BCEA41BCC9C79B1D8CAB +:1068C000E74BC9FD583DE8FE8220DF1B603D486173 +:1068D0003D2875D1E7D00B7561F03D72CB0FD1E843 +:1068E0007959BEDF84DF1384FE13A367C7EA3F8AAA +:1068F000FF59F6DBEEBCC5D4977EEEF3F0BDB27F58 +:10690000502F9AB8DC285874113DE452FECB0BECA2 +:10691000B3CFD9CFE7D6D36E7799E777DD7CDE5654 +:106920009BE231613FC3D63E8BB5633A5F97EFD1AF +:1069300077A6DBED98D1EED087880F13696E9DE3C3 +:106940002192DF67FD67AD907171E26068D473C812 +:106950005F91C0F7E13C9A9BFDC057B45F8AF26C2F +:10696000F6CBDAA277581FDF18C6AB30B49F7F7A18 +:10697000EFB0E8F8C74BB57B019DB9C401C473DC27 +:10698000B52857E22D861E14FDD8A768A730B84158 +:10699000D26FEE18F6FFC4EAF31B73C65CD6AED90D +:1069A0005870811EBFFCF3D06FA7A9C7779A7AFCF5 +:1069B00046E8F1A5780F43D2E53FAAC77FCBD4675D +:1069C0002F6DD704E5BC7469C76C841DA3030F2F1A +:1069D000F2FA6D589620EDBDFF7BF8D8F4DF890FF1 +:1069E000EB5ECD95F64B9E1A7A1CEF2C8ADFC4091C +:1069F000F8A571D6867AC33EFB570FF8DE9046198C +:106A00001FB5B1B83A7E1ACB4D43411C5BC2A8A753 +:106A10003D3897DF5E2CCFBFB7171F7E15F6F6A661 +:106A2000E2B20C458FF4B3A9F8E92A9C976E9F5304 +:106A3000E672447DDF6EFE3E50ECB8F21AA53D953D +:106A4000BC3CF023E06F5381B4E3895C65BC8A2EC3 +:106A5000E362F36E34387EB2EE178161977BBFC775 +:106A60001A2FE9247A5C0AC6B338037C7FC1D0C0F0 +:106A700076E825DB67095FBB8ED4AF6E263C24D257 +:106A8000BEAF825D7068D287D02332FC6EB9A6C2D9 +:106A9000481E3F21F27B9EDB8654F3383E2E16ECD7 +:106AA0009F9C372ACCFA72DC1CB78E7701AECFF1EF +:106AB000552C2138DD8C7B4F1461368C7F6FD28D45 +:106AC000A57FAEFF8B94BFE93BCF745C43EDDD4205 +:106AD0007A920E3DC96B7F173AB1FBD011F84796F9 +:106AE000913E6A507BCB76DAF5D1A931FAE7149C56 +:106AF0009B9720B5C7BBFF769119DF3E414C00FF45 +:106B0000B5DE27125D0FF9FF63027E67443011592D +:106B1000EF14C5E2F39F5BCADE59948177BBC65E72 +:106B2000360EC97A97DF7AD7FF178F4ECB42BCC992 +:106B3000B676699F7ED177FE97B6CE10386F5EDE4F +:106B40007A83A820A56C49EB6C866F582CEDE2B7D0 +:106B50005FED7540FFD956ACF2EF488C9E55165F3D +:106B600008FCA6ABFC3ED795ECD81776ACC533F83D +:106B7000226E54593CE87AB95FE5F3325D841C78A3 +:106B8000F7E4FF00B3188FC2008000001F8B0800DD +:106B900000000000000BED7D0B5C55D795F73EE73C +:106BA000DE7BEE052F70904780A01E04126C11AFA3 +:106BB0000A4633791C7C05AD492F4A12CCA7E1F275 +:106BC00010517CA07994F487F1206F8596E88518A0 +:106BD0006B05153A6DDA3A34499B47F3B517CD98F2 +:106BE000974969DADF24761CBD6824315FE72B8979 +:106BF00031B533F6976FADB5CF817B0FA0C4B6F931 +:106C0000CD743EF39B39DDF7ECB31F6BAFBDD67F80 +:106C10003DF6C69BE299B3933176DAFDCE82884C7D +:106C2000C63E553C73A0C896145918CB62ECCE2BC7 +:106C300005F727443316932EC9586F5D5ECF7B0C42 +:106C4000CAD1E992220A8CDDE6EE79AF08CAB7C54F +:106C5000492E45612CD5F39E85413BDE4F19DB97CC +:106C6000C4D82EA175713C94B5248175C3F7EFB9D2 +:106C70000FA5C850FF625A88CA04ECC9FF356CFFE3 +:106C8000F5CB22B5FF39FEBB73F89970D9C2D42871 +:106C9000C6622F0B4C9D0D65AB5B909D50CE13993A +:106CA0009AC6E8DFE7F07FABF37A16DAA0FF3AD9AD +:106CB0001DE282F76D5DB9210C9FE9F785B0741C68 +:106CC00087DB9D0AE361D69EB8E5618CD5082CBFB1 +:106CD00007DEEF5A7D8B3B15C71B66A5D178A7A9A8 +:106CE000F16B603CBBE2435D1A946FF744C2E4A1D0 +:106CF0003CFD677149504F8A12058B42DDAA0EA0F8 +:106D00005402FE2F2887B4DECC446CE7B796CE9DA4 +:106D1000D08F37EFE8BF5BA0BC0FE82460CBEEDC80 +:106D20001077D828F34B97FA8570785F26319F4308 +:106D30009FCF54FE74C40EB7DF1697CE4418D73ECB +:106D4000681FDB33B773ADF66E1F14996694E1FFCD +:106D5000EEBC1CCAB400FA65B3A8A0F202C78D410C +:106D6000F517C9C941EFD7EEEF5F8FEBBC214F524A +:106D70002C30DFBBE2BE1A549F69EA3B69409F7228 +:106D80007DFC4B94D9C1EF59CF62A4F3C6380BDB1D +:106D9000E982F54BFB87E0F73FB29DF5435985FF4C +:106DA00070FCD52FFDAEFE165C976CC7A01DEAAF38 +:106DB000651E2901FADDC8AC548FBE83F2DAF48176 +:106DC000532C83B1D21EF83E70BCACF9634B383EF5 +:106DD00083EB1779C2A2072640E11676CBE716FCB3 +:106DE000359AE81ECDABB093250BAA0F22BF3256C1 +:106DF000619169D9ABDFC4FD702582C61DD3B5A0F2 +:106E0000BA17CAF27C4745C45CACBFA2BA17E8F215 +:106E100009D687F7D17952109FD60BD405D3725972 +:106E20006737F4FFAF1B166467E3BE63AC8FEABF3E +:106E30003CF067168E55E0BB807102E73166B48383 +:106E4000E3ECB20FBF07FA385282FBA17F407FAA62 +:106E500022F2A202F30AD15F39E2F6A9D9386E9183 +:106E60000DDA61DC0E47739F25E31AED24F366A269 +:106E70008D76B0DF92EFA80999FCF7E571588F7F06 +:106E80000FA4F27D8E734DE1F38057C7719C4AA128 +:106E900040FB09FFC9B1C3ED3AE224352463F8FB96 +:106EA000A17923CD8D7AC2F07BABDEFE8C5FBCC0B6 +:106EB0003CB0BF6FDE1B3CEE094EA6F6C0EF13AC34 +:106EC000F0740EEF8FAF17F1FE1F2C1287C6618D85 +:106ED00045BEE0747A37B4A2FE3EA04B03D0E51065 +:106EE000ACC7B4FD017466C3ED3CEDE1EDA4ED97D4 +:106EF00082DEC3BFB894393AFF4C1D6D1D797F44C3 +:106F00004A05FF9FEBE857A0722A6383C84FEA54F3 +:106F1000F70E2CC7E865A67F9F61ACBBBE8E93F5CC +:106F2000A549FED1033B9ECEE4FC678FC35F3CF9CD +:106F300036284F713317CAD3646FF0F862132F5697 +:106F4000EFC2C1799CC4AFF5825FB0213F0AACE2C9 +:106F5000A7D0DFE4AA603AC6E6DBFAEDC08FB15EE7 +:106F60007BD0EF27502E66E9BC14B03E2C70BE30AB +:106F70005EC9F3E103480C6FBAC476C2FB23CB8130 +:106F8000C830BEB632D6C9EB43DF063F017D8EE581 +:106F90003DF31EBE6F724B8A1DDE87DA067B3F878C +:106FA000F2AE3CB1531346E10F537F23CB3D39A9D9 +:106FB000D07F6C9C55D9C946BE4FB07AAAFDD07E11 +:106FC00022ECD728A0477AFC73D9B4784B604D6087 +:106FD0008AB165C1F45B0DFC1C280733DCEDBC7E77 +:106FE00019938578985A5112D165AAE45B83BF4FF3 +:106FF000DD1AC2AA510FA61F92914F33A49E389951 +:10700000F4CEFF26BDA9BDE870A5526BFEA9B9D389 +:1070100087F512936150F3C696F32011A99F542D62 +:10702000DF8DF2C39B2ED27ACF90B4189C2F7BDBDE +:10703000C2BA81BF6C91FE67505ED9FA05D267BBB8 +:10704000D2CF3EFD432CFFDB0D2E24CFA9AD3F9CBC +:1070500086E36ADC0EBC773363BBB73BE8694BD58C +:10706000545C871085AF6B882206D16165886742C2 +:1070700021F41F95131AC417B65C57B80CEDA5B0D0 +:107080008A7C9C7F218371413B858E139C4E0E260A +:10709000DB814E4C55498E08C63EA8B5FD7E485E44 +:1070A000C3BE11127F2660FDFDB0312D58FF172E93 +:1070B000871D07EC4F8C44798DFF93E8806022FE9A +:1070C0006A74D26833BD54A010BD1AA299628F8031 +:1070D0006762510CCE7BB747D6F95863A89F2D1233 +:1070E000F3A0DC009C40E3AD59220B3B676219D64C +:1070F0003313D7333E12F5FB910291BE0B17D52601 +:107100000BCE4B64FE6EE473F7A1F3023CEFBB576A +:107110008AB708585E2E36235E4ADCFD03D4932FCF +:107120001538E8BBB65C85F0C204D0E73950AFAD86 +:1071300077DEBFA37E8F714B4473EFA4E5D4FFC508 +:10714000749080F0DD7DC01B3150DF0EFB40447D2C +:107150000B0C8BE3894E679D76289F7CC72F62B905 +:10716000019AD7806F3FD0D7B321F1D02B0BA09DD0 +:107170003A9027A8BFA2F71FACC57A6BE7325981B6 +:107180007A133A051256654ED6A9423B33267DF254 +:107190005A32EAD92EC125C03876F52C17EB914F1B +:1071A00013C54EC44FEF252E7F373913C7259136AF +:1071B000FC76F4276FA15E6E4804ED85F5C3FA54A2 +:1071C000C43DBB92986B07F29B00F810F15FBCE4E2 +:1071D00042FC3712CFA902F24BAC3B98BF56BB7BA7 +:1071E000AC88E71A6495F09C37FD5107E239AFE0AF +:1071F000EE4B42A6B1AAF1CBA753F5201CB6D6AFF1 +:107200009E7C04E707F2A693212E7B7E2FD2D51B0E +:10721000E76484CB12774838DF7D30EF4868E7D4E5 +:107220001D7EC2310DB992B203F7E9F4D2344F801A +:10723000BE4848BC3E7C06F8E75FD2627515A3E005 +:10724000BA962E43217ECD76F3383E71C07F1CF76F +:107250007C33CE9F8EF82818CF581201E7C0F7650F +:10726000FB4DBF23CEC9C0A775F87798D7F642C0AB +:10727000395F65FFFD718EEBBF07CEB90B7186AE2E +:107280001FFF3A38275F180DE7C4E83827C6847314 +:107290000A759CD351240E8DE37A70CEAB857F5B4B +:1072A0009C138D6599AFFB17C43971885BA6E40107 +:1072B000CE5146C1395523704E36E2A26BE21CD343 +:1072C000BA5C28FC8238272F18E7348C8573129714 +:1072D0009F1C0DE7B4255E2FCE71BF9EF425E29C66 +:1072E0008A31704E5BDE7237EEB7D05C7116DAC948 +:1072F00019925B6CC4794D8279C1FBFC49CB57A2D2 +:10730000DD77F10507E98BB6D5AB65D4971A303038 +:10731000D9E78CE3958CB391B4AE3324FFD33FC44B +:107320007D77DAEE423C63E014AFFBE8F4E711C787 +:10733000AC4B70613F066E7158DD6ED4AB8E14D2CB +:10734000FCA3E196A9453157C32D3D7F196E49FF36 +:10735000EBE216A6A84F4D8071AC12C3188EC76B16 +:10736000631C3F37393A6B815EBFBA7760FE1A28DB +:1073700087C65B18DAC563B577BDB8F3B287CB0FA4 +:10738000F3B8FEA9301837B107D5A545595F605E3F +:10739000CCB3787D26C9A30ADCFFA55D955228AE43 +:1073A0005BB6A307F77769D737A55094DB5B1D0C55 +:1073B000E57669571595E3BEE150A83CC4DF373543 +:1073C000E1FE505889E486799496D9FA6DB08F4BD6 +:1073D000F707DB2B4F7B188D775AA734EAEF5FF660 +:1073E000785E2DE4FDAE9AAA4C452169E070834E8B +:1073F000DE1701ED44E07A57C4B5C2BAFC6AD2C0C8 +:10740000D1C2807536707F839BE37E5BA4D630014A +:10741000F78360ADD0A2719F6DED9840FADC51C149 +:107420005CB40FE371FD61BFD1FE33AFBFB1AF6696 +:1074300020FE459CE5DEA1221FDB9264863876D8CB +:107440002E70CB2877439A2DB409603FB5E07E3289 +:10745000EF33F3FEFAAFB6AFCC7C60ACC778BFEFCA +:10746000D53E3986F25A1DE4F81B9EB42FB32F3354 +:10747000C2E732BA13A1BC18DE2B4988E312042CF0 +:10748000FB6204760394175B4E582AA0ABDEB976F4 +:10749000D9CEF1D63D33419F2ED0E7DF7B02702954 +:1074A000BCBF43B02BA80F16B0572D3E281F077D39 +:1074B000C680DF9893FBC764F80FE9B3282E18073E +:1074C000DE61F273DD66C283AFE0FF80791E2DD2EC +:1074D00071E12C96897AE2A3ED2FB073C818AD4FF5 +:1074E000BAFF0CE35983F5E0F7F52C185F18CF1FAE +:1074F0006F9DFF3AEEFB29577E49EBD99BC3D84ECF +:10750000D0274936CB5217CCF79913A2222AF4245C +:107510007A681576B2239E3971F49D74A8FFCC6BFE +:10752000B36269CDE528923BCF28CAAE74ACD728A8 +:1075300091BC7F6EFF8A3757C2F3679D0F4D78006D +:107540009E2F74EDF91A3E19A27BE8B7F4291BD9D6 +:1075500051CF364A87914F07F6264F40FC6ED871BF +:107560000F62E3F3B0EC5266C1EFFD3A2ECB2A90E6 +:10757000B91CAA8C213AB0B4CE53A8874E3F2E280E +:10758000A8BF0BE4419B80FE17ED912DA780DE057F +:107590008EC145027CE2D8F1F0CCE3D05E0162906E +:1075A0005B19FBC3D9CA9F68D0EEC066F523A4C39C +:1075B0001F8B381F9555A8BFC77D6194FF54A1FE4E +:1075C000DFC0F29315EA60607DF8E70B99C3F91804 +:1075D000FFFD87CDF3477CAF9670BA810C22BFB216 +:1075E0008DA93EBE496409E56E61E59BEFA11D5181 +:1075F000E8706AE8DF34EF1BD0F832F937998E1360 +:10760000F4F95E8BBF0F09BEEF3A711D4EDA5937A0 +:10761000F47746E717A3DE2B254926BDC02244A0F8 +:10762000D303935BC3318E705E60FE6A7816771564 +:10763000DF7B2BACD7F9965CB2834B356EEF9EEFB8 +:107640009DF7E37828AF017C8F98E842F58AC564FE +:10765000EF360395E1FD7D2D7CFF947A854E8C33CA +:10766000DCB597DBA99ECB7CBF0165C2B302F68B6C +:1076700061EF56BF144ADF9DFB18EAC1279EFDFD4E +:1076800035689FAE551D830AACE711C92D61BCC199 +:107690007F5060BBE1D305DAABC72AA1FE71D88762 +:1076A00081FB2A1FFE43FA99EDAB91FB8ADB5BE677 +:1076B000FD35BD58DF5773D89CEBDC5799C540DFCB +:1076C0008B95B3E3105F8FB55E6F6C9FCB16022670 +:1076D0007819E68FCF3726B53EE826FF852B0EE5D5 +:1076E000FA051BE87528FF02E437BEF76D97E979C4 +:1076F000747B1C3D5FD9AEB08530AEE3DBD3E8F9D7 +:10770000DA7617FDBEBE72015B085BB2B4F26B6C39 +:1077100021D8E96F96F07850AAC77100F5CA3930C0 +:10772000DE508EFB05EDADB9C8276F5928BEB3F406 +:10773000858AC568D719E3F3E4DBB49B813E25BA9B +:10774000DD7FE4A5A74B707D3CD3A6A9B85F4BAC09 +:107750001E09715731FA03E0FDEABD3FA98D87F597 +:10776000FC4E79D1FD38FFE2BD962039EDD192A4CF +:107770002227E295D68513518FD5092427968AD5DD +:10778000D689D0EED29D82AB56D13711BC7F5DB386 +:107790001CC4FD3CB584E3988B95C78E63FBE6F86B +:1077A000C410DFFC54D0F9ABAFFE964CCE3768AFB7 +:1077B00094A6CD630B03C67144AA385E09ED0FCCC5 +:1077C000B3CB3B402E94EFFD8614289F9780D25D6B +:1077D00018680F99E219E6B8455967A184726B647D +:1077E000DC22B85E6571B01D3F235CA98F433D3A32 +:1077F00095D361496DE18137713F95CCFEFA1C2824 +:10780000E79770FB05ECEF08C417ABECBEAC771143 +:107810004F7FDB4EFE98733AEE33D6ABAB84DB7B07 +:10782000E525BA7F5C757AD0BF52A4D3E94257727E +:10783000FD6368F75F8960E82728D2ED9438639E7E +:10784000159112FA7F8AA1F6BE99F0D4EDFCE2916F +:10785000F6A18AF62EB54B767BB0DD5FA4DBE94658 +:10786000FBABA0027E37E3177112AED3BA65169F49 +:107870006526E209931DEE87B1C452FFB4BF8C7E2A +:10788000C18E5603ED6CEA3779B87D635C66FB7A8E +:107890009D93EFCF75566E671B74FA7509D72393C6 +:1078A000D65C3D8EE047FB5A1EDBBE7EB698B733F2 +:1078B000967D4DF3983A2AFDBA701EA56CF81FDA32 +:1078C000CB85FA3AC144EB31EE0AF3ACD8374A1C07 +:1078D000E1ABDF0F9EE79D5766D4A3BD5C0CFC8B2C +:1078E000FC5ED8183C5EC933B7FE5E787F5EDF0F62 +:1078F000E6F12C7004E3DB457270F9AEB8E0F212E9 +:10790000C53EC2FFE230D62D6964FB47DACF15E1F0 +:10791000BA5F68B61348ECB482BD8CE3D96B217BA7 +:1079200019FF69C6BA8E629F9F5B7DFB6994F3065F +:10793000EE3DD6B5E25BF3A07CB6CAA6D89591F52C +:1079400019EBC9C6FE32E6CB8467CCEFD3B7FD3462 +:10795000C87E36BF5F0DF40B8C673E8FFA12F8E4D9 +:10796000944D213FC1A92649467BF8BCD712EA7144 +:1079700006D85F55B3AFA19FB9DF7F86D4FA20F553 +:107980002F8A2EF43B9BF1F3FCF00F4546721AF060 +:1079900035EC93C7F5FED9CBB2FA4DACBF35DC85DB +:1079A000EBE86F5E41F6B9BFCB72083FAE7CA1AA8F +:1079B000E387F03ABFFBD8F4E7E1F78B65A164A752 +:1079C0005B968344C4F159DDE1E887F57B6787B3B3 +:1079D00080FD608E1FF8535C0AE2328A1F286427FC +:1079E0004C2C19879D30304D96705F0E84BD46F447 +:1079F000F7873059C07DAE3D4FF8B9798D8EFF2B9A +:107A0000E47A1F946B747B6D04EE31DB055551D71E +:107A100088A768441FCB261BF391FE6434CF9511D1 +:107A20000EBDECA2B2C1A7253A9D993B89F0E78033 +:107A30001EF71F683EF6EF180F78DF6B578424F4AB +:107A40003F7FD0827AE4C2090BD96966BD837A048C +:107A5000F7E9C04F04F29797789FAF7F0CEDCC0405 +:107A60000BB3A0506DB59BFDCEE4EF36FABFA02559 +:107A700093DFF97DDDEF7C2D3D56D6B9E538EE83F9 +:107A800052C03B28BF4BBC5C6FC945CE0ACBDC91D2 +:107A9000FDAD46BD17B05E5F54AF5D4B9F2D2FF916 +:107AA00062FAECF1E28941FA8C2D74968C473F2101 +:107AB000CB907ED81B598FF6EB38F4D3423667FC57 +:107AC000FAA954D74FED28C0B2AE635CAD91128EC7 +:107AD000AB08C705F2A408C79531523F19E332F449 +:107AE00082795CC538AE80F994E0B884E171DD3903 +:107AF000F807F2AF9DF30BC48F966F59988FF67508 +:107B00002BDFD75DE7283EE83F65A77D9FAABD46EE +:107B100072E002C801F4C7E577CF8EC07DFF5790B1 +:107B200007DE92ACFFFAF2E00BE31F2D52B28E6F2C +:107B30001D09FF8C771D3D26FEAA11DC84C3B5EA22 +:107B40003086F2FF3C6076940317B6D8C92F08132D +:107B50009E8F72FE509BC8901E7FC47D03F3F95523 +:107B6000B73DD4EF1CFFFCFFB148FD675CA753AFE6 +:107B70007BA6C8E923EB85162B54CF6C07FE6B91CF +:107B80007A02E5FDB8E9FC57F7BF5909FF97360AB5 +:107B900024974BCB52EB7765723937216EA43F8E19 +:107BA0005D1B6F99F05530FEBAF3CA14C25BC588ED +:107BB000B746896798F1D67F757C452B73153C7560 +:107BC000ACCBB214E97BD66B61F671C52782CB864C +:107BD000BF6840650CE3EB667C66C64FA76C3C1E35 +:107BE0007F0AF09606F50FD9DCF7207E3B542DBABC +:107BF0000011210EA4F52E78D17110FD6FE9DB6C18 +:107C0000149C7DFEFDCB3FD15246FAFBC6B1DEFF90 +:107C1000A3F1F5DFDBFA8F570E4DB952206AD06E13 +:107C2000C332B113FD0693279DA5B85A5DB45541E3 +:107C300018700464721FE141980D3C6B971D5D8EB6 +:107C400074BB94C9F334264417098817AA5FFA88CD +:107C5000FCB767EEE6F13DABEE876C00BDE80312C2 +:107C6000DB59FF5BA80F2F258A142F541E9BB8F3F6 +:107C70002E65783C0DE1AAE082F6A37D4B1C4A18E4 +:107C80003C33D51C6CAF284794D17F169DAE2CC1D8 +:107C90007C544B9EA8E428983725D2FCA7B887FCD3 +:107CA00063BD38EE309D9FC2AA3EA07C819AA67724 +:107CB00019E23DADD059910ABFA7C7CCCFC1FCD7BF +:107CC0005A79E2441CA2D17FAD5375E0F79A532450 +:107CD0003F01935D8E15D3890E399DA03F6C3FC93E +:107CE0007363FF8DCAAC581630EEC6E81D8EE400F3 +:107CF0007F42A353CCE94CA77A8E52784EF1B5AAB5 +:107D000088178E398BB2D1BFB80BBEBD81F6931ADE +:107D10003E33964C73DA5F0EC5D35B128D7E4F0BEC +:107D2000E9D9A87451C3F82C3CFBEDB0C9A2F225E7 +:107D3000E60BE06F7B4A401E05E3F1E8A1F7408FB8 +:107D40003016F01ECA07D7E8799FD7EF9FFBFE1ABF +:107D5000D08B2727B74EC7794C542486F69C2587AD +:107D60001D453D1CD668E9BC0B081A8663407ECAD7 +:107D7000E571DD26A1272E06DA6D4C6A6788231A85 +:107D800073C44EF4839D6EFC8D8A76437BA644FBC0 +:107D9000AD69E5F208364ABFC673F265C06DC0D260 +:107DA0004DE59E9FAF09F0C31EA8E4794D174B0E19 +:107DB0000B3E906B278F7656BF8976EE9F239846B1 +:107DC00072AAB3B7309AE2EA248726677E2FBB18DF +:107DD000FD412A8FAB9F6DBC9970764265B0FC4A1D +:107DE00060EAAFE6C0FC4E4B9DD5E8EF3B2DB2BE3E +:107DF0006AF83E41C7370923F10D8B9B331CBF3F07 +:107E0000FBE773216EDD7E6246BE8EC8F3601047CD +:107E10009BF14F828EAFCDE308FA1E706142C90418 +:107E2000CAA730FA1FF2037978FF43F586F3298257 +:107E3000FC40E6F7C6F8F336BACFAF89417FD3F7F7 +:107E400029EFA280711CAAA4CBF55FC9247FB89E3C +:107E50009FC9F5C8147D3E534CED9CAE8AAAC7BCA1 +:107E600085B3405FECB3A9E9A20DF7E925F89E05BB +:107E7000F80D02F31E9C7368F8F4CFF3A34FEA02E7 +:107E8000F3180EA0FCB899BF5302F22B122AC5E3D7 +:107E90004F470FE7E72454821C8046A754F9050F8B +:107EA000A77B09CE778A5EDF531BAC1F92AB983657 +:107EB00021039FC1BF8F46FFA1BC2781D34D0B98E3 +:107EC000EF1FCAD509A5C08F4DB69E7CE4ABA6E9CD +:107ED00092AC417F4DA937854C857232C82F8CD723 +:107EE000273BE75399B945C6E390DCAE6DD4FBD888 +:107EF0009D7394ECE8C6BCD824CC9B7B760DF7DF51 +:107F00008A8AEB3505E997C2F33E0CBE77E4F17C33 +:107F1000AA2179AE8C9EAFE5D0E7BF6BFA4D84976E +:107F20001BC16EC6F6C7DA6746BBE6F61E2E57D3F0 +:107F30004AC90FE37AED4E5C9F7B4405F39C8E2E7D +:107F4000FBC48271C1F674F120CA616FFE7C3A876E +:107F500030B3948F7F4FBAA8DB5B1AE90FAFC2DF53 +:107F60006F2F5767617B7BDC867E69A57C37B0937A +:107F7000E696C60CFB654E6DFDDA92A9D0DF3EB0E9 +:107F8000DB905D6AA29F21BBA80E6D77E0A7BA1EA9 +:107F90002BC9DBBA9ECC93982F58C772AC023CF722 +:107FA000DC3D27BE04E4F7BBF748AA0AEB5C237369 +:107FB000B9FCAEE416315E1C96231EDC01EBF9F52C +:107FC0004C9E87129DCE0EA2DE7AA494DB0D7530F6 +:107FD0002EECE7A0931D447A0DEBC13E9A474BCEA1 +:107FE000C437489FE5E9E85897E713F5F534F4E11D +:107FF000E148D087F0FD44798EAF2C7A38EE32AC70 +:108000001767927EBAA4E324F37A34846B0CF301ED +:108010001D798CF45D6C22EBCC417C945FA1A19F17 +:10802000A348E5E703A6347E5C87764E51AB9A4DB4 +:108030007E9B1CAE0F8CBCBA022FC0061877943BF7 +:10804000586FD84D7AC262D22365A5C17A43612E9A +:1080500007C6F94F3B97935D8CFFAE04E80FF3F82A +:108060007BF4FD6BE81BE3F7ABE89947882F6C3E88 +:10807000C23FC035B2E51FD8087F9FB06CACF8B8DE +:108080003572C0316CF78E8D7FAC6C2040FE8E3720 +:108090000EBEC8B2E1B484B89149B29D9E9C4F4EC9 +:1080A0006F60A4EF1AC2FC1AC6032EDCCE5C876098 +:1080B0009C9D1AE7D7A499B288FEFB46452F6F53C3 +:1080C000440BF06F81C7FFDA22A877236B25FBDE14 +:1080D000C9E4BED679E817626956941762A80BE323 +:1080E00091F033BD4F7C9851BC76A7FB90BC087EC5 +:1080F0005EB996FB390F69D6A5B8ED6FC08C2F9885 +:108100004FC6CD43FB8AFC1517ACAE88D1EC59E3C2 +:10811000595899BC1FE35E46B97F75487EE728EB46 +:10812000F3D50DF37F80EBC3D25AC91E07BD286378 +:108130005C6C40F02760BCF89D0F5E7FD63109F57E +:10814000B2F734237DF1CFCFBE06CFA4D4F9218B73 +:10815000E079D72B0F3CBB10E584DB4AF164A65DC8 +:108160007C56B5E27B91CA5FF9F0C043885F2DC5AC +:10817000EEE7A91FAB4B417E4BAA16DDB87F31AEAF +:108180003D31601EF56B79FCC652ACBE8CF5C75113 +:10819000AF17EB3DB2663AC9C3F3E84744BF74C9B1 +:1081A0005B747EE97C979D9F5FD2E56781BE9FB33C +:1081B00037DE1B8EF26500F1BF80F537BE8DF18E84 +:1081C0003380C30585FC9E948F7C1E560AF1FD0CFE +:1081D000C947EBCC4299DC8DF9D42FF7D0FAA181B5 +:1081E00045F9D515838BBE89FE1BD5417E69067A7C +:1081F0006868DF05F83D8DFECFEFE57ECF33FA7876 +:10820000075C6EF2870FB0A92E9467E6FD716AEBEA +:108210008D2AE2AD7D5BC35D8827337E7E6511FAD2 +:10822000472AA13F0BE5D37C487966174ED9C92F61 +:1082300096DF5D1C1E118DF1689EE7621E8F990FFF +:10824000CCFEAE8114CD87E3217F974072FC93D2A0 +:1082500071F8BF1331AE3FFD2AF17C931F6B671A93 +:10826000C7E3E6F1DCAEAF2FB3F2BC708BC8D7E149 +:108270003B051E616D0CFA8F5C32070F2AC92FA3D4 +:108280001D339FACC376B2F03B55C2EFC6516FC2EF +:10829000DA807C4963BD0C3FF905DD4F7E41E6E79E +:1082A000E3CEECE5FC05FC7294FC7B2F805E4F1A5C +:1082B000C92F176C9C5FB412E8FB46E49FC13A5C7F +:1082C0004F367F7CFCE277A604F14B2A08523BFA3A +:1082D000399DDCCECBAF0E8E7798F9A760EF0D2AD3 +:1082E000F2A78CFC1337B2BF01676D03FAA90D3EEC +:1082F000B0CCE4798B967FB3BB4052B281BD353EA2 +:108300005A07533E9525D525239F05E453DDB276C4 +:108310001C7ED12FCA27A2E2233C7509F633D2175F +:10832000EC1C35707D0ABAEC0FE2F86451745912F6 +:10833000118A737D5308FA86E25FA6F98A8A5CEF98 +:10834000E33896F434730B2C90DE055DCF933E92A8 +:108350004B757D64CEEF32AF9779FC2FCB0CE3EBFE +:10836000469C8A55703D3BC28FABEBA123829FFC9C +:10837000D6DA5B16B257C792EBFEED7D7B31BFE1DB +:10838000C84BB746202E3EAF099DB61918873B1C37 +:1083900013987FE7DF2E3FB530403FA769BF5611E6 +:1083A000077EB754E1F15A4DF0B565E0B357058D3E +:1083B000C23A57ABEB717FFCBDD339AB406D581B54 +:1083C000606F823C203D756580EBA9A235EAAEB5B1 +:1083D000E4CFBDCEFC24BD9F2FAAAFAD267D5D3B73 +:1083E000B6BEEEC0F1A5BEB2A10DFD6D97BC3C2E90 +:1083F000A7D9F87E32D7AFD1F1DA6F3678BEBF3663 +:10840000C0CF7D5F24D857301FBFCD275C0D97DDCF +:10841000C87CD5F83E5E65B2360FF92C8AA19FEB79 +:10842000BE2D5C0FFDA538CD265B35B4F38EBCF4B4 +:1084300080EC19853EDF29F7FC3270BD6CD18A844F +:10844000F5BEBBC1DD4B7A203C81CA0737A847B9CE +:10845000DC1EDFBA0DD3A7F1C5F7619FD46D6FA500 +:10846000270CC987A0DFEA84DF03E495140DEF83AE +:10847000F21B465FF7A672F53738AE372679288F9C +:10848000E9E43B83644F5DD81B7510F1E485AE8B46 +:10849000CB6F45BBC61B158976644319B7ABCEF7C6 +:1084A0002C277FA0966825FFE18F7AB6CAC5B0FE5B +:1084B00073D779CE04AE9BFDA98764D5F997F327CE +:1084C000E8D18FB05DD0837138698B00D23A796C76 +:1084D000FDF8ED3241FF4EFD03D2791CF53EBD9A09 +:1084E0001E1D8A371B7AB46B7C7A7460A41E25DC4F +:1084F000F5A5E9D1AE1BB4C7AEA2472F5C438F5E92 +:10850000E81AB71E55CAFE067AD4C0D363E12DC05F +:10851000E9D3CB507E39199D9FCC703A3A6B92C605 +:10852000C6E1BBCB8670F82CFC6E1CF56EC17AFFE1 +:10853000DDF17AAA56168E7AF2FC5E8B887C9ADF81 +:1085400016CC3786BF636090F7730EFAD146E9E721 +:10855000828DBD20445C1B7F9BF9709473216B90CE +:10856000AE42D7AB7F1232FE3FDEBA160E1808F1CC +:108570004CC6F8C4809E5F6ADE0F4F6C5EDC8CFBDD +:10858000AF7FADA2E73707CB5BC04BAD3ABF9333AC +:10859000D1B073015FEC29CBFAFBA79FF11498F7D8 +:1085A000EE39F05D8C911FC4DCBD9D30AFC9EF3B4F +:1085B000296E1F13F751AF42F6AC83CE2FC6BCF025 +:1085C0007B3A7709BA88F24C87CE61AA0E3A8719AE +:1085D00063F2D7C6307F2F9E3FA817DCD9782E0BC9 +:1085E00074685FB78CF9332B7ACBA1FC6965844C36 +:1085F000DF8D72DE2CE81C666540FC4EF7A7A21FDB +:108600009EA61270EED2F0F7C3B8B383CE5D9ACEB9 +:108610005BC6E8FE7DF37883DA0D388749ED42BF0B +:108620003125FF87D3433F871963F6FB57069FC366 +:10863000FC539910740ED36837463F873962DE7A4F +:108640005C80EA09C3EF87CF615E1EF51CE614FD6E +:108650001CE614D339CCFFD4E576E8BAABE789D66B +:108660005C234FD4C8FB1B9927CAF9C85FA69F6734 +:1086700000C6A6F3585FF279A6B1CED598F93D7B36 +:10868000DAA7C7306FD396C8E39436FD1C7B483E0B +:108690003F371392C3CF634F489414E4DBC51627CA +:1086A000BD6F52783EBF714EC6E0B3A6137E8A6797 +:1086B000C5C65B98866B57C9F3F08D7331463E5C37 +:1086C0005D2EFFDEB14CCDC6FA8EB97659C5F31CCE +:1086D000E9D6A0FCB458537E5AB49EDF1F6DCAEF92 +:1086E00097702C2027BEB24EF7075FFFF99999EBE0 +:1086F000903F31E90DEC83594FCDDE83E75D32BF0A +:10870000BBE237F89C73F0A1A8C0F32E73BBF7ACA3 +:10871000E0655F2AAEF31BD51FC7635CADA39AE784 +:108720008F5AF47119EDC79473FE7B62937A07F642 +:10873000F346757F3CE2EA03D5A3CBEDCFD7F3FA3E +:10874000CB989A4FFADE29CA18D7A849B4EA79908B +:108750008A807EEE1CE5E36A3C9718C22218DD7F12 +:10876000C01401F3F11BF2001F40A931E5A1F7ECA1 +:10877000F0CCC9D3FA102EBCBE3E89C65F9B7ACC22 +:108780001A05DFBD5EC548CFDBEFD5ACA213E352BF +:1087900083ABF96162D1D50DEF1FFCB9C33F01E591 +:1087A0008C490E6F5A3795CBCD2A8E57F64FE0F293 +:1087B0003A43E6F90119398A503333E03CAD9B9FC7 +:1087C0003B6D73EF263C23AD03911489E75F53287B +:1087D000DF813539643C8F74C4C6EF77D8BD2584FA +:1087E000E2B8BBC3DC4BF01E8D3DD3AC9497A9948B +:1087F000F33CFA8C65922FF07C83F99921B912F041 +:108800009CDDE1D5B7FF0EE31BE67376AC82E3AAED +:108810001A5D4F010457A559ECBAEDBF8B250B7EAD +:10882000851776BDBBFA8330B40BF6455A8907DA53 +:10883000982B1EE59C57F0C47339EA8FC7FD7BEC7B +:10884000B1FB26635CE448A4B212F9E6FC74FF5362 +:108850006BE1BBEE6DC24C07AEC7A485744EEF7CD6 +:108860000E8BC4769AD671FBAA2087A9A3E1DE9D60 +:10887000EB75F96A55E2911FEB700FC2F71D69ACF9 +:1088800013CF0377780FABF3A07C18F417FABFDB94 +:1088900005F7EFC85EDE26D1B922C65CA1781E516D +:1088A0006A1619C6F3F66D2BD5F03CEB99F3303808 +:1088B000A81F5AB5562BCDA4E9527CFA4C8CC78719 +:1088C000E3DD99945281FBFD6449B186F98C463E03 +:1088D0005E5BF3728AA7ED9CF6D9A422186FB7C02D +:1088E000F97CCFB6B5BE6FC0777BB2F9794829CD98 +:1088F0002C47DD94972D55D927A21D7326CCE34B29 +:1089000043BC2A287D3B5CC87A1E1FEACB8ECA195D +:1089100032CA53E91AF7165C5AC7F791751B8FE3F1 +:108920005B6D8CCE535AB731E247331DBFB59DC73F +:10893000BF8C72C4DC6039DA6D1B9C84E37EEFC2AD +:108940007F3C6C053971C636F85D2C1FBB30F0F0EA +:10895000C25B696B68946F52C5C80EB36E5B41F120 +:1089600028AB4D95E551E4CEB5FA53D820F129B4A2 +:10897000C7BECCF6BAB749F9C867D76ACFA02FB43B +:108980002B08D7D1AE51CFDCAEF9BB2FABFE58F3DD +:108990007C2F0037202E0AC5A78EBF106F49FAAB77 +:1089A000D0B2525F5AE630DEF20A9D1AE6C36A4937 +:1089B000D60AC47BA17123CE97507BF43DCF3B20D8 +:1089C000396BB42F95FC509DC7F71DE12C83DF87D1 +:1089D00070565A30CEF21A7280719C65B4EBCD2D70 +:1089E00065B8BFA7403B51A3ED1B1D6F51FDA4E12E +:1089F000F701F75E88A3E1AD541D6FA59AF0D64C40 +:108A00005DDF65945FFDDE8BDDD7C05B37E9F33159 +:108A1000E3AD069C3BD2751ABFD704239A61D134CB +:108A2000FE0A7E4EA453C338E00D8C6D413B79B7EE +:108A30005051FD158EBB07BB5DC3EB16C186FE51C1 +:108A4000FE88D3585785A5A09DFCED3B33E8DC9A02 +:108A5000738C7B3522873E977B311F4536F251D28E +:108A60008271FA0DDF0F15A606E0F09014B917F326 +:108A700044C2757B8159050D43BDD28DE9D4DF9485 +:108A8000DBDE66F3A309B70CE2FBC855C1F3972BF5 +:108A9000FFACE2B9CD38B03F6E203EF369F7223D1E +:108AA000B21D34BF0835789D9C267E5EB15EBF4FF7 +:108AB000C35A41F73434A472BC60CE0F6CD7E5F6CC +:108AC000019B46796F0792260AE8FF33D6A77D3DC2 +:108AD000DF17072225F2F322DF68017432EA3DBE78 +:108AE000CE16747F87918F60F8D15AD08F06EDB67D +:108AF0002C3B4EFE93DD65129DDB9821B5323C8701 +:108B0000C1EE113B514F1D8DBC4F6CC471782D8748 +:108B1000ECE4AF38F70CE6555DF427A1F666475E46 +:108B2000FA4A35EAA93F66A771BF6E8E34AA3FC4E0 +:108B3000E87F4FDE54F287ECD6FD216D9547C9FFE3 +:108B4000D156164AED99E5EBC432A91FFD12E6761F +:108B5000FF49C76B61FA7D4AB5B94379F9A1287F0E +:108B6000568678B4F5F0BE2DD3BD641AB41FD6CCAA +:108B7000377BD8652BD54FD572421017E4E7CE8AE4 +:108B800060A3E8F7A1FEF1FC66807F5D2D57A8DFAA +:108B900089F24D8407275E96E8FD233156DA1FDE01 +:108BA0009512CDCB1BE6A6FB40BC6D16D721625EAD +:108BB000BE7FDA97DC44741FC211EB145AA77D2BD9 +:108BC000BF178FEDD92797C5E3BE0F5FCFEF999001 +:108BD00040CE238E913C0EFABE632E3F0F3D520FC6 +:108BE000F3BC55926388EB1EE77991875D00A093F3 +:108BF00046F2D9B1E6B3A49777022AB0CB23DF9B24 +:108C0000CB076C3E0DEF513920B08A5679247FAFE7 +:108C10004E0BBE37A5D1AA3950DE039F929F63F554 +:108C2000FA5F3E5C9D82E7300AE8DC55BB97FB713A +:108C30006B578AC63923CAFBC96F5BF13ADAB91799 +:108C4000F3B8716D5ED7E17CA0FFB5645AF4703E55 +:108C500090C107065D61FD7FC9D7BF8F84CCDF6AF5 +:108C6000DD533D0EEE3F2C13693EEF790F07DDF328 +:108C7000BA76FF1356BA2F14E54A24DE2BD14FF9EA +:108C800040395E49A175319D8B32FA35E633D1DA30 +:108C9000B3785D26DE6F63A13CC6B0FCE0FB5F4F9E +:108CA00097F175BEF89C40F7ED18F7851E36DD1775 +:108CB0000A72E77819B463BFD52EA3BCC47B5103F5 +:108CC000E51BDE8B1AD82EDE8B1A58C67B5103EBC0 +:108CD000E3BDA8C179D85F0D7A8FF79E06DD4B946E +:108CE000F60FC17AF80B9E9F8ACDAF9050AFAFF6CA +:108CF00038497E9BCF53C5E6F75831AEF9E7F5C149 +:108D0000F79AE6AEE3FB6899EB63F25FFCA255A02D +:108D10007D540276375874ACD6E6E98D43BBA4592E +:108D2000604FB091F6DE32A67C6B06E281468B8CFA +:108D3000E7B2C66FFF0D2E4037BFAA55931D785B73 +:108D4000EBAF8F613957B7E38A1AB3F367413B77CB +:108D5000A400FF2A38BE2D6EBABF521144E4E7D7F3 +:108D6000C170C671F75D9E5A1FA1D034ADD6397857 +:108D70000E9FF3C9DDEC536B04CCFB9E4F55097578 +:108D8000EA139B3C93CAA1DDE24FE5E35806E6A354 +:108D900073D501762FEDC3CF3F3AF89C86F3530687 +:108DA0009F427D6DDCAFD381F7EBA03F06EFD7018B +:108DB000BAFC2A6CE0A827733CF7EB70BB6F932ECC +:108DC000C7C6B2FFCCFE919B707E7F93F32F57F7FF +:108DD000D70CF5EB8C1E575EFC77042D84EC48B95C +:108DE00095E79931D68AE79B400A52B9A642F7BB6C +:108DF000B23E2ADF8079594968DF6A540EC9617D25 +:108E00003BE2291E4A718430286B54663ECB446E87 +:108E1000075B49397612FDF0F714FDF70CD088296D +:108E2000790F468C169F359E45980F1D20A78A64A2 +:108E30008E0BE7FFFCC48FD13E7C73CB8DB3F8392A +:108E40005FDEFE9B2FBE9C28C0FA9FCA7875BA9041 +:108E50003E3C4FC36F502773BF419DFC0CF9156A10 +:108E600073003E0203D7F678791E5E1993F1DCEFAA +:108E70002A4929C2F2AA9D0E3ACF5B172D12AE08DD +:108E8000DD1272907C316C878E3FDC7B91CFA6EA3D +:108E90007C668CA3CEA6F2FB7D2207C4C0FB7D8638 +:108EA000EE9979E901D2138D8922F9AF1A13675D22 +:108EB000352FDCAEDFB330BC7EBC1F7B4A05C97FDB +:108EC0003BCAEB2894FF950EB4D7F3275DABBD608A +:108ED0007D32D49E7B2B233DADEB9307267B289ED2 +:108EE0007EA65BA0F31867B6DD9F81FBEE4CF7C74B +:108EF000752CE0DEEBDF3CFEC464EC2FD577390C3B +:108F0000FBBFB08D9F273C7FF44F3625A05E817557 +:108F1000D086F185FBB63D2161BCF6AEAE8F6D7893 +:108F20000FA271CF07B01FF1B7319E82FD5B1663B0 +:108F30003BEB3AABEBF199CAF2C347BB6F3BBB6962 +:108F40005138FA3FDE6FB4D17945BF77F655E77FE8 +:108F50000EFB03417613CB091F8DFFCEB6F2766A66 +:108F6000B415D4AE3FD11D8E7693FFD716B603F855 +:108F7000AD1FE3E32053FC61DC3FE7AFB6FB305F9E +:108F8000D8D32A7C0FF9E32CB4AFC17C5E2CE7F771 +:108F90006B2CD00409DBF1B4664B480F4FED12295E +:108FA0009ED7EFC17B527A75FD5BD2984D7429D163 +:108FB0009248BE7964E6BB3393EA75560BD76EA729 +:108FC000A419BE4FC7EF6752FC1FE849FD17375A77 +:108FD00082CEDDA4B2B451EF2DCFCEFDAD03D7A329 +:108FE000C59D49F7ABEFC929A27333173345C25961 +:108FF00063D1B3415FBFB1DE7B15DE5ECDB2A92187 +:10900000D8FE9E446509DE47BA07E9C986EBED093B +:10901000D3FD3A774B44CFA81C46F46CD0E9D98FE6 +:10902000F4043A2D58E612900E51397D0CE9F041C6 +:109030003997CF61992EC103E5A8C40A86748C4282 +:10904000FAF17638FD96F531FC2E2CC725E07751E4 +:1090500050C6FA618AC678FE00A79723510CC27BDE +:109060002C5D63736339CC45FD6465D601D4DF8D17 +:10907000B82785E17D9D2175D27D5C06FFEE5BFD05 +:10908000E3A74A47F317EAF56DAC428F87F0FAB5CC +:10909000B61E2A9F965AA78701DD4FC78A74FF5EC6 +:1090A00083CD4FE7FEE12B99E2FB26FFA9E11F5E8E +:1090B00054EE1637A0FC7F59F6A1DC31E25643711D +:1090C000B74489F26A8DB89B8D4F91D912B91D3280 +:1090D000240FA225539CCD4D72DA88AF8DF7BBEBE0 +:1090E000CE531EA7FE0242105D0AE2B89E4AC1138B +:1090F000166807A731B97A1EDD4F46FEA9D812C6F9 +:109100009AE2F15E1B55C4789EF658848CFE136675 +:1091100055C5BDF8FDDC1B647E5F255F8744ED6EA1 +:10912000F105F86EFEEFC31401F47446D54CBAFF96 +:1091300066387FC945F26D2CFDE5DF1EB71FF3D100 +:10914000CE6D4FA3A7A1C70A9B0509E3DA45B2BCC0 +:1091500098CEC3574CA0BC36439FF5A33E0BD80F07 +:10916000FD2F264E267D560FFA2C409EBDB6F5C625 +:1091700070DC47FDB5516F237F9FDC6071210F7854 +:10918000D8E059F41FE6FF3EE9D15AC00FF7E325B6 +:109190004B808BDC1BD21FD512615C2DD547A9DF1C +:1091A000E72445BC15EDE14E1BE62DB1CFC215B449 +:1091B000F3DF0D1DDCE80EB01BF237707F49FE06B1 +:1091C000517FF27D96C62A16915F7F2163CDF1789B +:1091D000FF0C13556867D5612BE957FFBAEA1DB13B +:1091E00057E9A77FDD963A7CDF79979DC6D75FF771 +:1091F0006A16CABB7E9B2F2BD28979E1AED3147736 +:109200007D3084EE0B5805340B4739E8BCE910FA81 +:109210000BE66B9193CF927CE3F1B35516579C8488 +:10922000F56B2CE47FEEAFB3DF83DF9FDC64E36E8E +:10923000304F6B562EECF3B5FA7C60BC2AD55F1B21 +:10924000C6FD3DFAFB93939914B87F2D5A643DD225 +:10925000B930BD6212FF9DF39D714F494B0AC71390 +:109260002D291C4F58B361AF001F5A7FF21CCFB39A +:10927000D0EF1131DF0FD292C9F1446785DD842729 +:10928000FAF622FE3E541D8C275A6CAD1C4FA40EDC +:10929000CCC77B973BBD22E3762D1FCF11C01B9817 +:1092A00047571BA6C6A1FFBF8E7179B06183BB066D +:1092B000E541862C517CA3A85C8F27464FA4FD6511 +:1092C0003CAFB5CF9A6C3CDF782CF923A40CFC148E +:1092D00071D07E0BBF6FC288A3658038C0F9340996 +:1092E0000EA2D3860D9E27713C4DABBF9B4FF74717 +:1092F0009BE5A21E2F4BB4F610BE1461DFE23E3692 +:10930000E2EEE67115FAE2490FC2C4D9B920BF0CEA +:109310007F7FB12499CEBD3187330DE556943EDE73 +:10932000935766D33DC89F5E8960352E3C3F5241BE +:10933000422A4A8F0BA39F81FB1D14F2E744E9796F +:1093400059512FD7935FE1F443CC8572C1A8CFF474 +:10935000FA1AABD0FCD1D4CFD0F9E1C0F8C1A93B07 +:109360005CD598AF509B64ADC0F843C0F702E911DB +:10937000DD6F4AE31446B63F5DB707E05536D73B8D +:1093800057F76BD815937F388DCBEF6866FC0BF0E1 +:10939000AF5950EFA802EA8DD3F31DAE6A1C8B7B48 +:1093A0000C3DA0EB0FA39D68D9A407DC663F195FB5 +:1093B0008F74FD9ED3E22A81E2488E95598B913FAE +:1093C000069A04BAAFE7CCBE5B24F497CE6FE4767E +:1093D0006CA926F0F8B0C6FE05FD081BF5F52BFDBF +:1093E000B0AF1EFD7445711686F7BF15FF1E702ABB +:1093F00094375585B954A8D2CF7CFC9EEA6681FC8F +:109400007C857559C7CBE17DC1AD76CA8BA8D1F7F4 +:10941000C7A50D3C7EE9CFB76DCAC7DF2CA7E8BE54 +:10942000BAE2D96C2AFA3386E6F31CB7E741EFF3C8 +:1094300073465AB0FDBEA931B85C6C8A2B7FBA2145 +:10944000D86EFF7C030BBA670FE71535F12FEF8756 +:1094500039F97E9E6EED13478BE718EB60C4CFDBC6 +:10946000B28CF87B9F8AFEFCA8B9765D0FF27BF880 +:109470008C78FC11C9558D7E97B66CC720DE8B3673 +:1094800039EF5F58D0BD957A7C7EACFBF5A24CFEDF +:109490008C3053D99017F11B83EFD73B5D399BF28A +:1094A000B90DB9609E8F713FDE17BD07CFB85FCF92 +:1094B000B807CFA08BC2387FF6EBF74B9CAE3D4789 +:1094C000790B17AB803BC9FFF44DBAD7A7FF29C171 +:1094D00065A7CFB87FCBA3D3A9A8D67EFC1B30D479 +:1094E000B7C1DE13E67EF97EA8AFA11F2A284F433D +:1094F00021BF52219EBBC375D5F9C9F04B15565AF1 +:10950000E8DC75A1F9DEBABDB6E132CECBF4DED827 +:109510003F5FDF68BA7FDE393E7D92A0C779CCF12C +:109520009F1F74B717ED04FA0D3C153F13FD466BF2 +:10953000371A71B20ACA335BDBC9B8DFE36F94E74D +:1095400092601D3D9F63D346E11A7930A3C7A3EA19 +:10955000FFC2FC1FE3797272EBDD7310C79EB0B8D7 +:10956000E01766C9EF790BCB317D16D75D6C783D7E +:109570004E03CD905FAD910E3AA7E7657D711C005B +:10958000B97B518FEDB997DF630E1C4B71FD63778B +:109590007F16CFF306FC9437D031DD7512CFE77F0D +:1095A000D8129C37D081790340C7CE8D1C0716EBAB +:1095B0007903B698BCFBF1BEE20EEF0D94B77D3E89 +:1095C000CC139FEB1CAE67178DBFBBA108F8771DAE +:1095D000DE98A4C4E742F929FDBD4187DD21DCEE18 +:1095E000437F23E917BD7EBB11976BB1739C665512 +:1095F000AAF1BCE0B9C834CAAB3BB85131FE18037C +:10960000E541B4B5DC1F4F41373D6FE1C330B703CF +:10961000E3C8E75B2C32D2E35C9548EDBD5FC9E35C +:10962000066D6D1FF4DE8CED65F33C062BBAE5513B +:10963000A9ADE771C0732DFF28E07DA707CE3B19C8 +:10964000EA8D73319DD928270F080AE529BC9FFFB1 +:10965000BD6C8C27BDAF58E91CF8C992C3742EDFCE +:10966000C85B004A54635E43B1EAA0FCC491E7AE14 +:10967000D510F42B24B8799E44CB63DF1330AFA20E +:1096800045607DECAAE7F08371C5872D76FDF0F685 +:10969000C0A3BE143ABF4A7AEC7CB3407F1FC3DA42 +:1096A00076F538FF99EDFC3C8451F65405F3EB70E8 +:1096B000FBFE9F61FBF42FE0BC3FAD40409E60424B +:1096C000DE00CDC3884F76001DE87E0AA053F7A8C0 +:1096D0007460E33AFFEFD7F7613FAE3B8FFF05E5DC +:1096E000114EAE12D590701A27F191116F34E70F19 +:1096F000E23F8C6727207F01FD2EE8ED7EB491E3E9 +:10970000E3847C496FA793F2EE46D03FF09E01219F +:10971000E81E021A67DE46F7271BB386EF19188A80 +:109720002F3F66C49783EF17786392BF1AE3CDE7A4 +:109730000456B163E6C8FB06CE85F8C92FDF21B019 +:109740002DD5F0BE2384F3A9D6C4F18D398FB31083 +:10975000192419F36081B1E019B22999E8950CF345 +:10976000217960556AF14AF88626610EF25DA153AF +:1097700090D0CD5B109DBB2352C1BF433393E2F326 +:109780006F4CD21C1867EEA8B650BE544798FFA77E +:1097900078CFA8561D36EA79ACF84D5C5EEF36EE10 +:1097A0003D44031DE729188BCC3C22D0ED7DBDF054 +:1097B000D54DFCEFF04DA952C98F7566FB8C9938D9 +:1097C000BCD44D8CC6DB11127C8FA9F1BC791397E8 +:1097D0001F01FDD0BD3EE78923185BE3FDF8F6428B +:1097E00027B62F187CA2B18038F1C49CC1DB717EF2 +:1097F000E99B747BC87A7026AE7347246F4F1507B8 +:109800006FCF0DB037D2F5793107AFD72E784EFE36 +:1098100011E9D026101DCCF7FE147805BA77A140C7 +:109820000BFEDDFCF72CE66E1274F9158CDBAD86B1 +:10983000DC647C9D8B6A930EED1486CB532A954392 +:10984000B8AF57E9F37B6312FFFDDC12D6B983F89A +:1098500085F3FD48B9A1905C48681466E1F74B8C2C +:10986000FEAD1F93FD5A04760DE2840313262F46A6 +:10987000B86A0F188766EC17C46B9E9C7094CFB9BA +:10988000FAF7477627937FEF58CEA110D427AB1F66 +:109890004EA2FB29CC74B996BD62FEFB1D13CB8290 +:1098A000E3AE0FEA7C61BE9F620FE613C07AEC491B +:1098B0001229CF6F4F24CF0B32F2019EFCED82AE06 +:1098C0009D7A1C19ED16BB2EB3EA36F23C82273383 +:1098D000F9BD2D0D60CFF33C011FE50DB03992C2EB +:1098E000F3043EA3F34A7BBC16BA3FC1E00B7BA650 +:1098F0007E8F44E2887B29282FC0AEF363939BE7D9 +:109900000534E8F7397A97F1FB21CC7C3D567B8F03 +:10991000EBFC5EDB66DCEBE7267A7BF3783BA9DACF +:109920008794B7F021DEFF07FDE51FE4F7FD5D3CFE +:10993000C5A30EC371660F7D776AEBD79AF07E20C0 +:1099400023BE6CF46FD3EF6B36CA2B433CCD9BA088 +:109950005F6FB49BE202368C0BA0713A4E9CD79B92 +:10996000F524D1B5FD5E91F282DBB3EE27BBFEF0AC +:109970002491E2B987E76DE943FCF0598CD5A5291C +:10998000745E6517C62393336D340FA6DF8B68D8DA +:1099900099CB9A7D163C0FC49631DD6FA0D9F15E4C +:1099A0003A784A22FDFD18CD86CF652E418B427B49 +:1099B00025B1EC7B9600BC6ABFF79D05F4FD12FE55 +:1099C0007DD8658DE46F0853E3F47C4ACAB79C20C8 +:1099D0005B496FB6E51535CD88C6BF23328BEE37B0 +:1099E000792B8B9F3F04DC1319F8F7A4A4CD7C1FBF +:1099F00078A50ACAAFED68933042C6EC8F7F761225 +:109A0000F53F5B1E4AFD75B73D1A17789EEFFECDF8 +:109A1000127DD7BD9AEFD7D3222BEB097A6FA775AA +:109A2000BF7F33DFE777AFD3F77F338FEF26577AE8 +:109A3000AA391F58E7937E69E67FCFCB9B9797BBE8 +:109A400002EA793317590518B7B565F912A4737787 +:109A50009E48A4EC769F5888F91B975C4234F2A785 +:109A6000316EEFE4C556DC3FA725FFF44C98DFAA22 +:109A7000CDA941F700C6027E0ABA8FC9AE6EA1C554 +:109A8000D9CEE89E948555BC9C0C6012D73B396FAB +:109A900021956341EE85A0BD9FDFAA611CD891E2AC +:109AA000998DF43C1629915F29399FF387171BC6BE +:109AB00079B89DA4D792BD8B5B315F37F9B7163A61 +:109AC000F3536B73D13D4CB5D3114BC03C227FBBDC +:109AD0008AFC6E2D6041D2FEF69763F9EE3F2508B1 +:109AE000282F3FD93495E886E7827C0172C4817EB5 +:109AF0007E58EFDE9639BFC3BC81EE2C3BD973B7DD +:109B0000A96E2ADF962F0181815FE7FDDA82ED7D64 +:109B10007689B1D6ABC43FC6E2436F3EA3739C6D5A +:109B2000AC2F0FD743BB2C923FF3B6C13EE2C3A884 +:109B30001C85FE9E8E77B13B01CF8535E87CD4161F +:109B4000FD7E0DDEB7AF65029FE23CDBEEA3BC6598 +:109B50006FAC350BEB3F72AFA8E1DF35E868B9AF0A +:109B60001BE5C90F3759F9DF85C2FC66E4BF7BAD41 +:109B70003C2F27DA9510A8C70EB72D9E86F202F863 +:109B8000988317EDFEE711CFDDF19FA13C9F661D85 +:109B900023F97438C4C5E3DC59DCFFFA4A8BC4F0FE +:109BA0003E2C29BEE4B09DECE0077C27B09F16BE9A +:109BB0006E09559FD5223FBD2DB041B47B31C0CB3E +:109BC000FDE45CDE18FE845C5D1E1E91066BC96EB2 +:109BD000D0FD09EDCD13FF792D7CDF1E67A1FCE0E0 +:109BE000AF2F0CF61F200E433B3659B7636F1FB4DF +:109BF00006D9A7CCE9DA81F3BE7BFE5CCA974B3667 +:109C0000D9AB09A6F24D9BFFE27BC2A66F0EF017FF +:109C10007464DA29EFA9BDEA93262C77378BA42741 +:109C2000BBBD45AF63BEF1252807CA59F3F36D1DCF +:109C30007F777B9793BF4391FDB528BFBA2BF97D02 +:109C400048EDDE4F5EC1724719CFAF6FB0B9292F13 +:109C5000217AEF048A2B5C6ADE9A8FA2C1EDE6F7C7 +:109C6000A9B9D5422150CEFC7A3BCF473DDCCCDBB5 +:109C70001F6B1C467B1D55BC9ED73D2B6CB4F3C798 +:109C8000BFD5DB1BAA270DC6A3FFD92CEFCCED1A3D +:109C9000E59F211E4579E92EA2F6DB33178528E9D9 +:109CA000C37AE5B6657D35186BBB2313B49638527D +:109CB000AF0CC99D6FEB72A79997A7C0BE45FE9CDC +:109CC000E25E1E89FC909A6795112A3BBCAD6A48FA +:109CD00080DC690FF33C85F9E81DB94EDA27ED36D3 +:109CE000751DE5AFE5260828FF8E453E4A76EF94C0 +:109CF000C45801DB7B7433D7BFD03E97575EB13376 +:109D00004440BB8AE7275D027985EB9D9CEE89CFB5 +:109D1000D6F507AE93996E63C9A1DBD43E92632456 +:109D200077A0DDDE95A5343E432E75AF94F8FECCCA +:109D3000B2513F87E7F597E3383EFB5328E999DBBB +:109D4000595FCD18FEBEABCA25430E487FB8FF79D8 +:109D5000CD3A4CFF47626E4D50A0BDC361832B03CB +:109D6000E341437E8971EAFF658CFB79CCE7579E1E +:109D7000D4E979A95C6DDF0CCF839B19F773BCD351 +:109D8000EA403E6A4A59EE40BE9891BADB817CD1E6 +:109D9000D4B33B07EF151B3E07FE8905E32FF6D42E +:109DA0005974CFDE139B3C073707E8297BEA563A04 +:109DB0000FBE8CB56A683761662EDEA7DB98F2901D +:109DC00003EDC4901495F2931A52797ED2F1CD1C12 +:109DD000DFBF31A995E2274D3A7E4EF538E8BC6FDA +:109DE0005362DC41C4034BC583294FC0FB17F4FA0F +:109DF000EFA55C3DCFCEA9E7BB85EAB8CA696D6522 +:109E0000B84EC7372B3C2F25C5F4F7CE537A168AA8 +:109E1000F0AA49CF2B582A71F9B2B43EF2606D0016 +:109E2000EEF4E9FDFF6683FB9748BFA5B1006066CD +:109E300061BBCCB0772AD0EED2AF9EC3BF3B731CC0 +:109E4000EB8DF577676EDEA8BEBA99D68BC779F031 +:109E500042353C1F3C424EE9EBB67383FA16D67F7F +:109E600057EF2F436EA5FD92C144570DEE4B537C27 +:109E700068443CE76559C5BF5766C4A76B2AFC3FD9 +:109E8000DD85FAFB3AE3C5DFDCA89EC1F93D5CEE57 +:109E9000EEC771D546B633F21B8F338EFCC6243520 +:109EA0000EF9DCC089B5BADD79245BCD0FE4FF4B38 +:109EB0003ADD2FE97ADA9A6FD3EF69582A8F26575D +:109EC000BF53EEF934902FAD32BFA7E18A4EB76B86 +:109ED0007DFF4AB9E7CAE6ACC0EF55B2AB964A7C03 +:109EE0009D04A0554DFCF07E7C9D5534AF043AFE98 +:109EF0003FA81021C0008000000000001F8B080058 +:109F000000000000000BB5587D5054D7153FEF639B +:109F1000771FBAB06F5D8850C4BC05095A302E82D5 +:109F20001F24880FC44AD44C57DAA69892F161AA2C +:109F3000ED7471BAECD8461B2BAB7C08EB074B4D8C +:109F4000A369FF7065A2F9A87548339D6AE31F3BBA +:109F500096D8A4339DD2C649FE71926DA2FC2166AB +:109F600086B1E374EDB463CFB9EF3DD82F3E62DA2A +:109F70006598B3E79E7BEEBDE7773EEEB93BF843CD +:109F8000056015C0D6D7FF6A876280CDD6C89270AB +:109F90000500D81700D4003CA0CFFA740A1004C8FA +:109FA00003502AB49F7F2B17A04BE63D211CFDD800 +:109FB000CE7F1390BFD7CD45800310F01F0AD2F596 +:109FC000D74DF0105D0AECF300FFD7C7E741549A74 +:109FD000E2EBC195C46F900A93E66F944B92E49BB9 +:109FE000F2CB93E41FB46B8A1FCFF794529534BE23 +:109FF00065E993497AFD3E6F31CDDB54B42B4F4375 +:10A00000BBC53D6A09F1B73B2FC167A538217CCAA2 +:10A01000FB9FD500BB484100F801803A6C4FB7E781 +:10A02000D78186AF92DEEE3A6FBE17D7E9C98316A5 +:10A030009AF7CCF65B6FFE0AF1E8C9CDAD14606A01 +:10A04000BED7CF33DC477C5A15E999E3965C95D3AC +:10A05000EC84AB2AB909D7168B27A410AECD0EA875 +:10A0600098DE1FB57101A22EC435CE315A179FCF8D +:10A07000E8FA7816A36ADCC5687DDCC96843BC9041 +:10A08000D10DF102461BE3886715E21A7733FAB562 +:10A090007839A39BE2CB186D8A57B1794FC52B193C +:10A0A000DD1C7F92D12DF11A46EFF9BC5BFC68CF25 +:10A0B000EE577E64271C7FB2C7FB34D9D507FE7CE0 +:10A0C0002801D8EBF37E9D7810C3E0CD06D8E607D3 +:10A0D00066FFD976751BE9C115B505AA91F2184737 +:10A0E0004837FAB46FB3715555721F010A2504053C +:10A0F000A97CED3E970350D4AE7D87C9254912D186 +:10A100003F16DDA5881F5809BF83ED6A2B93C7440E +:10A11000E798C45C0799709B8A6711C6CC38A1C9BF +:10A12000F6DC39C5FF45F7C4735EDCEF16E8715EF7 +:10A13000DA7230AB19ED7BC1CF31FB2E3E06304ACF +:10A14000F9244E6403CEFBA415FD88145E72655C91 +:10A150005F30FC68F2FFF2E9F929881E90ED24B720 +:10A160003279BF4F7B91F0DC6CF55FDF86786D2E26 +:10A17000163CDD0A5150F33175CBF6A807C8FE0F27 +:10A18000DABD07190E16D94AB87F6289F184339E69 +:10A190005E160A19CE3D9970862B72F40584000272 +:10A1A000399E9087E1DDCFE611E0386F8781F78E29 +:10A1B000031CC3FB61713EDB2E33FB4C3CA6C32565 +:10A1C0001577B3AEA07DBFA0734545B46F39E68B5C +:10A1D000F25B15CD87AC89A0EA60F9AD9D219C6C3E +:10A1E000716FD4C1766FCB5B092CCF23A4F71079A4 +:10A1F000FE9A9EE7A3F9E4F7E3D9A3F91EA2163D60 +:10A20000DFFF5434DAE24DD07BC72FB0F3BE4DF9F7 +:10A210008EF47DFBE111FC06B54B4605A2657BB4CF +:10A22000B769BDBA45131BC824510691F2E7623DD8 +:10A23000AE43F5A8C5122CC378BFF8FBCDF2CE0C07 +:10A24000F9FF4BDFCE77C80E931765C5BA13F70F2A +:10A25000B5AB57BE4CFC635E8E30FD39E641823FA4 +:10A26000FE4CF6BCA7084D740F74E33D4032ACB30E +:10A270007FD1C79F37EBECE843D6D98F589DA9F320 +:10A28000B03ADBE546DC2B28BCF9E04286D3B3725A +:10A290005B06BD115F5B2CB5CEB65564AC3B63B3BA +:10A2A000D49DDBB3D49DF12F87BB910F06EE5FB435 +:10A2B0000E7D4C4335537548EA98A50EED7365BC89 +:10A2C0009F05BA47AA66AA432293A3BFE775E0FE9B +:10A2D000AA386D7D7176CCADBEE4D13AFFB7FA6293 +:10A2E000D8399DBDA978DAE03907D513AB7CE2F205 +:10A2F000CDAA4CF3ACACAFC8A17D4A885F248FCD0A +:10A300009FDAD75CA774E4C09918F543411128BEC1 +:10A31000820DFED7880F1EB6C95D484FCD3F782607 +:10A3200086E3FB4449B67948CFBF86F63DD98935E7 +:10A33000CDC6F8158CB7C076F22F9D6B5BF6D4397D +:10A34000EA3AF43EC245E774CD7EAEDB3E753DE1B0 +:10A35000ECB26AF018EE3FB88C8F04DDE812BBBC9B +:10A36000FDBB788E23F912EBE35C9B9E8120F9679D +:10A37000211F29759376E43D37CA7B97F11062302F +:10A380006B0A9DA3B708BF7F85066AEF47A96F01D7 +:10A390008DE91D69E42321D4EB593473DFD267D8EA +:10A3A000399997A510B13D9E1087A52F3535E07AD4 +:10A3B000E1253C101CE1C69D32C56D5629DAFD042D +:10A3C000EDFBC4FEA848FB4E48CC5FEBF4B89E6E94 +:10A3D000BF2EDAAF2C617D19EAA91E59C846DCC729 +:10A3E000B2FC91A1203725EF0870CC8F47B3F53A26 +:10A3F00023D855E0C8BEA2DD55E466C9EE8131DC44 +:10A400004F9255F80CE99102A92582F3360AADDE88 +:10A4100006C46B5059E0B451BC839AB30AEBC5290A +:10A4200023FE7D01DD6FC73BC3976F5AC8DF7D8C6C +:10A43000629606DB502F4F95FC210C5D97A49FCBB5 +:10A44000E58108D63AC8DD8AF312FAD99C6AD44F5E +:10A45000E8677BB327F35C221C2CD02715E37A270F +:10A46000AA81F975606D73FD12E407546902643ABC +:10A470004A4CA2BCC5F119FD74C2F0D3CF3AA52451 +:10A480007F4DCA17C7F23DA87F6255ECF4F3785EA2 +:10A49000C722C9D384FB9D5CE78563C80FD4F01144 +:10A4A00070A7EB0DD4DC9568DFD473D8AEDE07055A +:10A4B00079873801B4AE43F91BA876DA5FF7DFA6D7 +:10A4C0006A3FC86887E3BA10B1A18B1C4D3A4E0BA6 +:10A4D000AA21A2E03E870A3E8C8A64E7D318C2888C +:10A4E00077AF45BFAFEDB5633700E36B61F53588F6 +:10A4F000A2FC9A66F7C35AD46DD5F3A605FF1EE0F9 +:10A500003BC8D5644D7A27E441028FEBDB8D3C33A9 +:10A5100079105A1DDA0C71B7EF46D6BB23097E7B42 +:10A52000AB233B77AC1CBFAC86D5AC5ECCA2FFCFD7 +:10A530004EE9DD118C8FC159FC74AC732DF3CF60E3 +:10A54000A7CAE8406713C3EB0DBA672D53F396D142 +:10A55000FD8AEBF4FE74149A916647F74331E6CF17 +:10A56000471D7ABCBFD1297189F36DAF0247F863EB +:10A57000C870842BBC0A9E73886B68E9DD3F3CA0E1 +:10A58000FAD6583C2424E48DB98EC99F37E227B40B +:10A59000B499D979BE916FA23C392F6AF316CC6079 +:10A5A0004FD9E9E477A2396EE6CB64FE70A002369B +:10A5B0007E279D7A9D3C1EEDAFA77B48BE5E329400 +:10A5C0009570AE4F8D73B9A84053A3A826F815FD1A +:10A5D0003E508926AE983DCFCCF506D7C162C0C6A5 +:10A5E0007260A395E5BDA34E2E684EF0A366D48F8E +:10A5F00041A75E3F8E1541417345BA3CECD4FBC781 +:10A600007016B4FC26031E5A4060F5E218A7CF333B +:10A61000FD372597D83A5A40EF335D8ACA1553DD86 +:10A62000C03CEFF290BD778237090F1EFC0BD7A616 +:10A63000DB67838D90457EC43A13E2D2EDB5C3B19A +:10A6400051EA7FE8F36FAC63D9F485A3F11BC19B9A +:10A65000A8972FE8EBDAAB93F3E68BE6456EC0C81C +:10A660008B2CC8D2F3622BDF83E7BE57CD4704762D +:10A670000F85796FF6F4F9016B66AEFF0329F53F9C +:10A68000953A722634A804280FB8F677D7329CD9A9 +:10A69000FD561D58BC3F8878BF6255CB0288AF0479 +:10A6A000FA7BA3ADD61A14B09E40B7E54ECCB403E6 +:10A6B000E3C8310FDABC19FCF8A6B56145407F0745 +:10A6C000F3A49FEA4793D61A71911AE718B7515825 +:10A6D000497E56987CB63845FC589DBBE705865F99 +:10A6E000F02AC74DF6518514FF7894D56C29E6CF32 +:10A6F0008580B79F90EE970288B0F1428872F49EF1 +:10A700002F8218E31FC5CE99A81B14464B40E5497C +:10A710005E0A1AE3CB20C8E83288305A0E51265F11 +:10A720000E31C6131294A72BA2C0FA854A50041A00 +:10A73000AF0255A079AB4063FC1A08325A03DAE540 +:10A740009B78CE8175BB2BE9DE7E362D5EE65647C3 +:10A750007D01D0FB3C850FDA30AE7B0B7E2C67D2BF +:10A760001BF169DF0B24D431DB22FDF799E9FCB63C +:10A77000D7C8BFA316AF97EEA3A37922210A47DD5E +:10A780007ADEA6CEDFD5A1CFB75A3499FA6A8BD13B +:10A79000D7ECBD7BE1527009F64F76AD85D6E9C99D +:10A7A000B702F56966BFB52F70EED221FBFFAE4F41 +:10A7B000FD50540FB3B84C95CFF177C0F3F4B58684 +:10A7C000FA7DF528AD534856E3B92515E4600DF13F +:10A7D000618EFC6CFF3EF2052C8E0E913C47030F00 +:10A7E000C9B1FF7F39C07E5F18667A5D1897A1CA2C +:10A7F000295ED30CFEF48239F5EFB0D5BF9DF4CCC1 +:10A80000775D7F403BCBD657411113DF75ADF8AE76 +:10A810007B9CD93F4472D9CC6BC91E1472D2F31AF7 +:10A82000942227C5DB64FECC119FDB749FE23BF7CB +:10A83000E2C1A895EA427BF47D2BF537EDAFBF6509 +:10A84000A57B7587F17EF6197105075631DEAAF1F1 +:10A8500057C98EF1E19221CA8FF161DC19ED19EF30 +:10A86000760F9111E317FEA1DFBF28676F7038A440 +:10A87000BF77701D693525976E276C55D51AF6CEB2 +:10A8800085097A6F99F7F1F8856FE8F7F1B060DC28 +:10A89000C7D1CF856AE2CB148ADB5D0F36C08BA4AB +:10A8A000B741F29C43BD5DA73E5FBE33218E53EF9F +:10A8B000675E917B7FC7EE11AB87FA5713C7345C95 +:10A8C000E4E47B973EF4EE33CF7BEBE572E0E9F70F +:10A8D00003ECEF840C7DA349C561DBDFC97F772CD6 +:10A8E000708973645837C5DFA9FEEC0F783FA578EF +:10A8F000E586FFC8E220CDBF07F2E6E4DFB9CEEB84 +:10A9000033F2040FCA519C39A335ACCF15548FAA2A +:10A9100022FECEC63024FECE53B5BDE11EC5A553E2 +:10A920009439AA0F4EC5880F6565D27E1346DD495E +:10A93000DDEFBF2C774017E017000000000000009B +:10A940000000004000000000000000000000004087 +:10A9500000000000000000000000002800000000CF +:10A9600000000000000000100000000000000000D7 +:10A970000000004000000000000000000000001087 +:10A9800000000000000000000000000800000000BF +:10A9900000000000000000000000000000000000B7 +:10A9A0000000003D00000000000000000000003C2E +:10A9B0000000000000000000000000000000000097 +:10A9C000000000000000000800000000000000007F +:10A9D0000000000000000000000000000000000C6B +:10A9E00000000000000000000000000E0000000059 +:10A9F0000000000000000004000000000000000053 +:10AA00000000001800000000000000000000001C12 +:10AA100000000000000000000000001C000000001A +:10AA20000000000000000013000000000000000013 +:10AA30000000003E000000000000000000000001D7 +:10AA40000000000000000000000000020000000004 +:10AA500000000000000000010000000000000000F5 +:10AA60000000001000000000000000000000005086 +:10AA700000000000000000000000000000000000D6 +:10AA800000000000000000030000000000000000C3 +:10AA9000000000AB00000000000000000000000803 +:10AAA00000000000000000000000C00000100000D6 +:10AAB000000000080000C0080010000000000002B4 +:10AAC0000000C000001000000000001000009C0802 +:10AAD00000040000000000040000C080001000001E +:10AAE000000000040000C088001000000000000208 +:10AAF0000000C0800010000000000010000093382B +:10AB0000000100040000000100009340000000006C +:10AB10000000000200009348000000000000000850 +:10AB20000000934C00000000000000020000935061 +:10AB3000000000000000000800009698004000009F +:10AB40000000004000009358008000000000004812 +:10AB500000009458004000000000000800009468C5 +:10AB6000004000000000001800063010002800001F +:10AB700000000028000099500008000000000001BB +:10AB800000009951000800000000000100009952E7 +:10AB90000008000000000001000020080010000074 +:10ABA000000000100000200000000000000000086D +:10ABB00000009BB800000000000000080000000139 +:10ABC0000000000000000000000000020000000083 +:10ABD0000000000000000003000000000000000072 +:10ABE000000000040000000000000000000000055C +:10ABF000000000000000000000000006000000004F +:10AC0000000000000000000700000000000000003D +:10AC10000000000800000000000000000000000923 +:10AC200000000000000000000000000A000000001A +:10AC3000000000000000000B000000000000000009 +:10AC40000000000C000000000000000000000001F7 +:10AC500000000000000000000000000900000000EB +:10AC600000000000000000020000000000000000E2 +:10AC70000000C4C000000000000000200000C4E686 +:10AC80000000000000000001000060000020000043 +:10AC90000000002000007300000800000000000811 +:10ACA00000009BF0000000000000000100009B90ED +:10ACB000000000000000000800009B93000000005E +:10ACC0000000000100009B91000000000000000156 +:10ACD00000009B96000000000000000100009B9710 +:10ACE00000000000000000008000000000000000E4 +:10ACF00000000000800000000000000000000000D4 +:10AD00000000000000000000000000000000000043 +:10AD10000000000000000000000000000000000033 +:10AD20000000000000000000000000000000000023 +:10AD3000000000000000000000000000000600000D +:10AD4000000000000000002000009B9800000000B0 +:10AD50000000000100009BD8000000000000000877 +:10AD600000000053000000000000000000009BE015 +:10AD7000000000000000000200009BE40000000052 +:10AD80000000000100009BE5000000000000000141 +:10AD900000000009000000000000000000000001A9 +:10ADA000000000000000000000000044000000005F +:10ADB0000000000000000001000000000000000092 +:10ADC00000000050000000000000000000000089AA +:10ADD00000000000000000008000000000000000F3 +:10ADE0000000000000000000000000000000000063 +:10ADF000000016C800000000000000080000200845 +:10AE00000010000000000010000020000000000002 +:10AE100000000008000017E000080000000000012A +:10AE2000000017E10008000000000001000017E228 +:10AE30000008000000000001000620780038000033 +:10AE400000000038000016F00000000000000002C2 +:10AE5000000016F200000000000000020000A04008 +:10AE60000000000000000020800000000000000042 +:10AE7000000000000000E0000020000000000020B2 +:10AE80000000F300000800000000000800001708A0 +:10AE900000000000000000D80000174F0000000074 +:10AEA0000000000100001727000000000000000162 +:10AEB0008000000000000000000000008000000092 +:10AEC0000000000000000000000000000000000082 +:10AED0000000000000000000000000000000000072 +:10AEE0000000000000000000000000000000000062 +:10AEF0000000000000000000000000000000000052 +:10AF000000000000000017880000000000000001A1 +:10AF1000000017C8000000000000000800000051F9 +:10AF20000000000000000000000017B0000000005A +:10AF300000000004000017B400000000000000043E +:10AF4000000017B80000000000000004000017BC5B +:10AF50000000000000000008000017A8000000002A +:10AF600000000008000017D80000000000000002E8 +:10AF70000006000000400000000000400000C0008B +:10AF800000400000000000400000C02E0040000013 +:10AF9000000000010000C0000040000200000001AD +:10AFA0000000C00100400002000000000000E200BC +:10AFB00000200000000000200000E2040002000861 +:10AFC00000200002800000000000000000000000DF +:10AFD0000000E20000080020000000040000F5006E +:10AFE00000280000000000280000F64000100000CB +:10AFF000000000100000F64A0010000000000001F0 +:10B000000000F6C000200000000000200000F6C094 +:10B0100000020020000000020000F30000400000D9 +:10B020000000004000002008001000000000001098 +:10B03000000020000000000000000008000011A82F +:10B040000008000000000001000011A90008000035 +:10B0500000000001000011AA00080000000000012B +:10B060000000400000200004000000100000590013 +:10B0700000300018000000100000590800300018CF +:10B08000000000020000570000080000000000015E +:10B0900000005701000800000000000100001158E6 +:10B0A000000000000000000100001160000000002E +:10B0B00000000010000011AC0008000000000004B7 +:10B0C00000004000002000000000002000005300AD +:10B0D0000010000000000010000000000000000050 +:10B0E0000000000000000000000000000000000060 +:10B0F0000000000000000000000000000000000050 +:10B1000000000000000000000000147000000000BB +:10B1100000000001000014B0000000000000000862 +:10B120000000005000000000000000000000147843 +:10B1300000000000000000040000147C000000007B +:10B140000000000400001480000000000000000463 +:10B1500000001484000000000000000400001488B7 +:10B16000000000000000000800002AF0008000003D +:10B17000000000800000000100000000000000004E +:10B180000000200800100000000000100000200057 +:10B19000000000000000000800002C700008000003 +:10B1A0000000000100002C710008000000000001F8 +:10B1B00000002C720008000000000001000041584F +:10B1C000003800000000003880000000000000008F +:10B1D0000000000000002C440008000000000002F5 +:10B1E00000002C46000800000000000200002C5463 +:10B1F000001000000000000400002EB0000000005D +:10B20000000000200000600000200000000000207E +:10B2100000007300000800000000000800000000AB +:10B22000000000000000000000000000000000001E +:10B23000000000000000000000000000000000000E +:10B2400000000000000000000000000000002F5877 +:10B25000000000000000000100002F980000000026 +:10B260000000000800000050000000000000000086 +:10B2700000002F80000000000000000400002F8468 +:10B28000000000000000000400002F880000000003 +:10B290000000000400002F8C0000000000000008E7 +:10B2A00000002FA800000000000000028000000045 +:10B2B000000000000000000080000000000000000E +:10B2C00000000000800000000000000000000000FE +:10B2D00000003128000000000000000800062A20BD +:10B2E00026000040000000080000A0000000000050 +:10B2F00000002000000040C100000000000000012C +:10B30000000040F00000000000000002800000008B +:10B3100000000000000000000000600000200000AD +:10B3200000000008000040000008000000000001CC +:10B330000000400100080000000000010000404043 +:10B340000008000400000002000040600008000443 +:10B35000000000040000408000080000000000041D +:10B36000000040000008000000000004000040044D +:10B370000008000000000004000040400000000041 +:10B380000000000800004048000000000000000825 +:10B39000000080000000000000000010000050408D +:10B3A0000001000400000001000050000000000047 +:10B3B0000000002000005008001000000000000401 +:10B3C0000000500C0010000000000001000052C7F7 +:10B3D0000000000000000001000052C60000000054 +:10B3E00000000001000030000040002000000004C8 +:10B3F000000030040040002000000004000030087D +:10B4000000400020000000020000300A0040002040 +:10B41000000000020000300C00400020000000018D +:10B420000000300D00400020000000010000300E40 +:10B43000004000200000000100003010004000200B +:10B440000000000400003014004000200000000450 +:10B450000000301800400020000000040000301CF4 +:10B4600000400020000000040000C0000100008037 +:10B47000000800040000C00401000080000800046F +:10B480000000000A00000000000000000000C0688A +:10B4900001000080000000010000C0690100008080 +:10B4A000000000010000C06C0100008000000002EC +:10B4B0000000C06E01000080000000020000C070AB +:10B4C00001000080000000040000C0740100008042 +:10B4D000000000040000C0660100008000000002BF +:10B4E0000000C06401000080000000010000C06096 +:10B4F00001000080000000020000C0620100008026 +:10B50000000000020000C0500100008000000004A4 +:10B510000000C05401000080000000040000C0587A +:10B5200001000080000000040000C05C01000080F9 +:10B53000000000040000C07C010000800000000149 +:10B540000000C07D01000080000000010000101814 +:10B550000010000000000004000010900010000027 +:10B56000000000040000109800100000000000041B +:10B570000000111000000000000000020000111285 +:10B580000000000000000002000011140000000094 +:10B590000000000200001116000000000000000280 +:10B5A000000060400008000000000002000060424F +:10B5B00000080000000000020000604400080000D5 +:10B5C00000000002000060460008000000000002C9 +:10B5D000000060800008000000000008000060001B +:10B5E00000080000000000020000600200080000E7 +:10B5F00000000001000060040008000000000002DC +:10B60000000060C0000800000000000800006100A9 +:10B6100000080000000000040000610400080000B1 +:10B62000000000010000614000080000000000026E +:10B6300000006144000800000000000200006142B8 +:10B640000008000000000002000061800008000007 +:10B6500000000004000030000008000000000002AC +:10B66000000030020008000000000001000030046B +:10B670000008000000000002000030400008000048 +:10B68000000000020000304400080000000000023A +:10B690000000304600080000000000020000366094 +:10B6A00000080000000000080000308000080000D2 +:10B6B00000000002000030840008000000000002CA +:10B6C000000036A0000800000000000800008040D4 +:10B6D0000008000000000001000080410008000098 +:10B6E000000000010000804200080000000000018E +:10B6F00000008043000800000000000100008000FE +:10B7000000080000000000020000800200080000A5 +:10B71000000000010000800400080000000000029A +:10B72000000080C00008000000000002000080C28D +:10B730000008000000000002000080C400080000B3 +:10B7400000000002000080800008000000000001EE +:10B7500000008081000800000000000100008082DD +:10B7600000080000000000010000808300080000C5 +:10B7700000000001000080840008000000000001BB +:10B7800000008085000800000000000100008086A5 +:10B790000008000000000001000060000008000038 +:10B7A000000000020000600200080000000000012C +:10B7B0000000600400080000000000020000604279 +:10B7C00000C00018000000020000604000C0001827 +:10B7D000000000020000604C00C0001800000008DB +:10B7E0000000604400C0001800000008000060571E +:10B7F00000C00018000000010000605400C00018E4 +:10B80000000000020000605600C0001800000001A7 +:10B81000000066400008000000000008000066808C +:10B820000008000000000008000066C000080000DA +:10B83000000000080000DA8200180000000000028A +:10B840000000DBA000000000000000000000E0009D +:10B8500000000000000000040000D1000000000013 +:10B86000000000040000D1040000000000000004FB +:10B870000000D10800000000000000040000D10C0E +:10B8800000000000000000040000D11000000000D3 +:10B89000000000040000D1140000000000000004BB +:10B8A0000000D11800000000000000040000D100DA +:10B8B0000000000000000020000092800000000056 +:10B8C000000000040000928000000000000000283A +:10B8D0000000805000A8000000000001000080541B +:10B8E00000A800000000000100008000000000002F +:10B8F0000000005000008050000000000000001018 +:10B900000000960000000000000000040000940009 +:10B91000000000000000000400009404000000008B +:10B920000000000400009408000000000000000473 +:10B930000000940C000000000000000400009410BF +:10B94000000000000000000400009414000000004B +:10B950000000000400009418000000000000000433 +:10B96000000094000000000000000040000094204F +:10B97000000000000000000400009424000000000B +:10B9800000000004000094280000000000000004F3 +:10B990000000941C0000000000000004000094302F +:10B9A00000000000000000040000942C00000000D3 +:10B9B00000000004000094340000000000000004B7 +:10B9C000000092840000000000000004000092804B +:10B9D0000000000000000004000092900000000041 +:10B9E00000000004000092A4000000000000000419 +:10B9F0000000943800000000000000040000943CA7 +:10BA000000000000000000040000B98800000000F1 +:10BA1000000000000000D000000000000000000452 +:10BA20000000B10000000000000000040000B104AC +:10BA300000000000000000040000B1080000000049 +:10BA4000000000040000B100000000000000001031 +:10BA50000000BCB000000000000000040000BCB406 +:10BA600000000000000000040000BCB00000000066 +:10BA7000000000480000D85800000000000000044A +:10BA80000000D85000000000000000040000D8545E +:10BA900000000000000000040000D85C000000006E +:10BAA000000000040000D85000000000000000105A +:10BAB0000000D84000000000000000040000D8444E +:10BAC00000000000000000040000D840000000005A +:10BAD000000000080000D4C80000000000000008BA +:10BAE0000000D4D80000000000000080000000101A +:10BAF00000000000000000000000D4D8000000009A +:10BB0000000000080000000007081100000000000D +:00000001FF --- linux-3.11.0.orig/firmware/bnx2/bnx2-mips-06-6.2.3.fw.ihex +++ linux-3.11.0/firmware/bnx2/bnx2-mips-06-6.2.3.fw.ihex @@ -0,0 +1,5804 @@ +:10000000080001180800000000004A68000000C84D +:1000100000000000000000000000000008004A6826 +:100020000000001400004B30080000A00800000091 +:100030000000569400004B44080058200000008443 +:100040000000A1D808005694000001580000A25CEE +:100050000800321008000000000072F00000A3B495 +:10006000000000000000000000000000080072F026 +:1000700000000024000116A40800049008000400F9 +:10008000000017D4000116C80000000000000000A6 +:100090000000000000000000000000000000000060 +:1000A000080000A80800000000003BFC00012E9C96 +:1000B0000000000000000000000000000000000040 +:1000C00000000000000000000A00004600000000E0 +:1000D000000000000000000D636F6D362E322E33DD +:1000E0000000000006020302000000000000000300 +:1000F000000000C800000032000000030000000003 +:1001000000000000000000000000000000000000EF +:1001100000000010000001360000EA600000000549 +:1001200000000000000000000000000000000008C7 +:1001300000000000000000000000000000000000BF +:1001400000000000000000000000000000000000AF +:10015000000000000000000000000000000000009F +:10016000000000020000000000000000000000008D +:10017000000000000000000000000000000000007F +:10018000000000000000000000000010000000005F +:10019000000000000000000000000000000000005F +:1001A000000000000000000000000000000000004F +:1001B000000000000000000000000000000000003F +:1001C000000000000000000000000000000000002F +:1001D000000000000000000000000000000000001F +:1001E0000000000010000003000000000000000DEF +:1001F0000000000D3C02080024424AA03C03080015 +:1002000024634B9CAC4000000043202B1480FFFD76 +:10021000244200043C1D080037BD7FFC03A0F021F0 +:100220003C100800261001183C1C0800279C4AA01E +:100230000E000168000000000000000D27470100CB +:1002400090E3000B2402001A94E5000814620028D1 +:10025000000020218CE200003C0308008C63004475 +:1002600094E60014000211C20002104030A4000203 +:10027000005A10212463000130A50004A446008028 +:100280003C010800AC23004410A000190004202BFE +:100290008F4202B804410008240400013C02080017 +:1002A0008C420060244200013C010800AC22006046 +:1002B00003E00008008010218CE2002094E3001687 +:1002C00000002021AF4202808CE20004A743028498 +:1002D000AF4202883C021000AF4202B83C02080064 +:1002E0008C42005C244200013C010800AC22005C0E +:1002F00003E00008008010212747010090E3000B75 +:100300002402000394E50008146200280000202164 +:100310008CE200003C0308008C63004494E6001467 +:10032000000211C20002104030A40002005A102145 +:100330002463000130A50004A44600803C010800AD +:10034000AC23004410A000190004202B8F4202B8F7 +:1003500004410008240400013C0208008C420060B3 +:10036000244200013C010800AC22006003E00008C8 +:10037000008010218CE2002094E300160000202170 +:10038000AF4202808CE20004A7430284AF4202889D +:100390003C021000AF4202B83C0208008C42005CF4 +:1003A000244200013C010800AC22005C03E000088C +:1003B000008010218F4301002402010050620003DD +:1003C000000311C20000000D000311C20002104022 +:1003D000005A1021A440008003E000080000102112 +:1003E0009362000003E00008AF80000003E0000813 +:1003F0000000102103E00008000010212402010089 +:1004000014820008000000003C0208008C4200FC3E +:10041000244200013C010800AC2200FC0A0000DD7F +:1004200030A200203C0208008C42008424420001DB +:100430003C010800AC22008430A2002010400008DB +:1004400030A300103C0208008C4201082442000145 +:100450003C010800AC22010803E000080000000095 +:1004600010600008000000003C0208008C420104FB +:10047000244200013C010800AC22010403E0000812 +:10048000000000003C0208008C42010024420001F0 +:100490003C010800AC22010003E00008000000005D +:1004A00027BDFFE8AFBF0010274401009483000878 +:1004B000306200041040001B306600028F4202B818 +:1004C00004410008240500013C0208008C42006041 +:1004D000244200013C010800AC2200600A0001290E +:1004E0008FBF00108C82002094830016000028210A +:1004F000AF4202808C820004A7430284AF4202888C +:100500003C021000AF4202B83C0208008C42005C82 +:10051000244200013C010800AC22005C0A000129D1 +:100520008FBF001010C00006006028218F4401001A +:100530000E0000CD000000000A0001282405000183 +:100540008F8200088F4301045043000700002821D8 +:100550008F4401000E0000CD000000008F42010416 +:10056000AF820008000028218FBF001000A01021DA +:1005700003E0000827BD001827BDFFE8AFBF001447 +:10058000AFB00010974201083043700024022000F1 +:100590001062000B286220011440002F000010217F +:1005A00024024000106200250000000024026000C8 +:1005B00010620026000010210A0001658FBF0014A0 +:1005C00027500100920200091040001A2403000184 +:1005D0003C0208008C420020104000160000182148 +:1005E0000E00049300000000960300083C0608007B +:1005F00094C64B5E8E0400188F8200209605000C76 +:1006000000031C0000661825AC440000AC45000443 +:1006100024040001AC400008AC40000CAC400010C9 +:10062000AC400014AC4000180E0004B8AC43001CF1 +:10063000000018210A000164006010210E0003254B +:10064000000000000A000164000010210E000EE905 +:1006500000000000000010218FBF00148FB00010B8 +:1006600003E0000827BD001827BDFFE0AFB2001867 +:100670003C036010AFBF001CAFB10014AFB000105E +:100680008C6450002402FF7F3C1A800000822024EA +:100690003484380C24020037AC6450003C1208004B +:1006A00026524AD8AF42000824020C80AF420024F0 +:1006B0003C1B80083C06080024C60324024010218D +:1006C0002404001D2484FFFFAC4600000481FFFDCC +:1006D000244200043C020800244204B03C0108000B +:1006E000AC224AE03C020800244202303C010800EF +:1006F000AC224AE43C020800244201743C03080096 +:100700002463032C3C040800248403D83C0508001F +:1007100024A538F03C010800AC224B403C02080004 +:10072000244202EC3C010800AC264B243C010800AA +:10073000AC254B343C010800AC234B3C3C01080089 +:10074000AC244B443C010800AC224B483C0108005F +:10075000AC234ADC3C010800AC204AE83C0108001C +:10076000AC204AEC3C010800AC204AF03C010800F7 +:10077000AC204AF43C010800AC204AF83C010800D7 +:10078000AC204AFC3C010800AC204B003C010800B6 +:10079000AC244B043C010800AC204B083C01080091 +:1007A000AC204B0C3C010800AC204B103C01080075 +:1007B000AC204B143C010800AC204B183C01080055 +:1007C000AC264B1C3C010800AC264B203C01080029 +:1007D000AC254B303C010800AC234B380E000623FF +:1007E000000000003C028000344200708C42000097 +:1007F000AF8200143C0308008C6300208F82000449 +:10080000104300043C0280000E00045BAF83000430 +:100810003C028000344600703C0308008C6300A05A +:100820003C0208008C4200A4104300048F84001492 +:100830003C010800AC2300A4A743009E8CCA000022 +:100840003C0308008C6300BC3C0208008C4200B8EA +:100850000144202300641821000040210064202B63 +:1008600000481021004410213C010800AC2300BCCA +:100870003C010800AC2200B88F5100003222000772 +:100880001040FFDCAF8A00148CC600003C05080055 +:100890008CA500BC3C0408008C8400B800CA30233E +:1008A00000A628210000102100A6302B0082202164 +:1008B00000862021322700013C010800AC2500BC45 +:1008C0003C010800AC2400B810E0001F32220002F6 +:1008D0008F420100AF4200208F420104AF4200A8C6 +:1008E0009342010B0E0000C6305000FF2E02001E86 +:1008F00054400004001010800E0000C90A000213CA +:1009000000000000005210218C4200000040F80955 +:1009100000000000104000053C0240008F4301042D +:100920003C026020AC4300143C024000AF4201385E +:100930003C0208008C420034244200013C010800C3 +:10094000AC220034322200021040000E3222000499 +:100950008F4201400E0000C6AF4200200E000295FB +:10096000000000003C024000AF4201783C02080059 +:100970008C420038244200013C010800AC220038BF +:10098000322200041040FF983C0280008F42018018 +:100990000E0000C6AF4200208F43018024020F00EA +:1009A00014620005000000008F420188A742009CED +:1009B0000A0002483C0240009362000024030050F9 +:1009C000304200FF144300083C0240000E00027B4E +:1009D00000000000544000043C0240000E000D7571 +:1009E000000000003C024000AF4201B83C02080099 +:1009F0008C42003C244200013C010800AC22003C37 +:100A00000A0001C83C0280003C0290003442000110 +:100A100000822025AF4400208F4200200440FFFECA +:100A20000000000003E00008000000003C0280001D +:100A3000344200010082202503E00008AF4400207A +:100A400027BDFFE0AFB10014AFB0001000808821D7 +:100A5000AFBF00180E00025030B000FF9362007D5F +:100A60000220202102028025A370007D8F70007477 +:100A70003C0280000E000259020280241600000988 +:100A80008FBF00188F4201F80440FFFE24020002CD +:100A9000AF5101C0A34201C43C021000AF4201F8B3 +:100AA0008FBF00188FB100148FB0001003E0000852 +:100AB00027BD002027BDFFE8AFBF0010974201848B +:100AC0008F440188304202001040000500002821B8 +:100AD0000E000FAA000000000A00028D240500018C +:100AE0003C02FF0004800005008218243C02040040 +:100AF000506200019362003E240500018FBF001088 +:100B000000A0102103E0000827BD0018A360002208 +:100B10008F4401400A00025E2405000127BDFFE862 +:100B2000AFBF0014AFB0001093620000304400FF6C +:100B300038830020388200300003182B0002102B6D +:100B40000062182410600003240200501482008008 +:100B50008FBF001493620005304200011040007CFA +:100B60008FBF0014934201482443FFFF2C6200050D +:100B7000104000788FB00010000310803C03080084 +:100B800024634A68004310218C42000000400008A2 +:100B9000000000000E0002508F4401408F70000CD6 +:100BA0008F4201441602000224020001AF62000CD1 +:100BB0000E0002598F4401408F420144145000043A +:100BC0008FBF00148FB000100A000F2027BD00183F +:100BD0008F62000C0A0003040000000097620010FE +:100BE0008F4301443042FFFF1462001A00000000EE +:100BF00024020001A76200108F4202380443001053 +:100C00008F4201403C02003F3446F0003C0560004A +:100C10003C04FFC08CA22BBC0044182400461024C6 +:100C20000002130200031D82106200390000000060 +:100C30008F4202380440FFF7000000008F4201405D +:100C4000AF4202003C021000AF4202380A00032209 +:100C50008FBF0014976200100A0003040000000018 +:100C60000E0002508F440140976200128F430144EE +:100C70003050FFFF1603000224020001A762001299 +:100C80000E0002598F4401408F42014416020004B5 +:100C90008FBF00148FB000100A00029127BD00180A +:100CA000976200120A00030400000000976200141B +:100CB0008F4301443042FFFF14620006240200010A +:100CC0008FBF00148FB00010A76200140A00124AF0 +:100CD00027BD0018976200141440001D8FBF001438 +:100CE0000A00031C00000000976200168F430144B5 +:100CF0003042FFFF1462000B240200018FBF00147A +:100D00008FB00010A76200160A000B1227BD001852 +:100D10009742007824420004A76200100A000322D0 +:100D20008FBF001497620016240300013042FFFFBA +:100D3000144300078FBF00143C0208008C4200706F +:100D4000244200013C010800AC2200708FBF001457 +:100D50008FB0001003E0000827BD001827BDFFE892 +:100D6000AFBF0014AFB000108F50010093620000BD +:100D700093430109304400FF2402001F106200A5C4 +:100D80002862002010400018240200382862000A5F +:100D90001040000C2402000B286200081040002CB8 +:100DA00000000000046000E52862000214400028F2 +:100DB00024020006106200268FBF00140A00041FE0 +:100DC0008FB000101062005E2862000B144000DC3F +:100DD0008FBF00142402000E106200738FB0001049 +:100DE0000A00041F00000000106200C028620039E1 +:100DF0001040000A2402008024020036106200CA5B +:100E000028620037104000B424020035106200C18F +:100E10008FBF00140A00041F8FB000101062002B57 +:100E20002862008110400006240200C82402003914 +:100E3000106200B48FBF00140A00041F8FB00010AE +:100E4000106200998FBF00140A00041F8FB00010B9 +:100E50003C0208008C420020104000B98FBF0014F3 +:100E60000E000493000000008F4201008F830020D9 +:100E70009745010C97460108AC6200008F420104BF +:100E80003C04080094844B5E00052C00AC62000416 +:100E90008F4201180006340000C43025AC620008FF +:100EA0008F42011C24040001AC62000C9342010A31 +:100EB00000A22825AC650010AC600014AC600018DE +:100EC000AC66001C0A0003F58FBF00143C0208004A +:100ED0008C4200201040009A8FBF00140E00049333 +:100EE00000000000974401083C03080094634B5E37 +:100EF0009745010C000422029746010E8F820020C4 +:100F0000000426000083202500052C003C030080FF +:100F100000A6282500832025AC400000AC4000043A +:100F2000AC400008AC40000CAC450010AC400014D4 +:100F3000AC400018AC44001C0A0003F42404000177 +:100F40009742010C14400015000000009362000558 +:100F50003042001014400011000000000E0002504A +:100F6000020020219362000502002021344200107B +:100F70000E000259A36200059362000024030020C2 +:100F8000304200FF1043006D020020218FBF00148B +:100F90008FB000100A000FC027BD00180000000D20 +:100FA0000A00041E8FBF00143C0208008C4200207F +:100FB000104000638FBF00140E0004930000000077 +:100FC0008F4201048F8300209744010C3C050800E8 +:100FD00094A54B5EAC6200009762002C00042400D4 +:100FE0003042FFFF008220253C02400E00A228254F +:100FF000AC640004AC600008AC60000CAC60001095 +:10100000AC600014AC600018AC65001C0A0003F46E +:10101000240400010E00025002002021A7600008F5 +:101020000E00025902002021020020210E00025E63 +:10103000240500013C0208008C42002010400040C2 +:101040008FBF00140E000493000000009742010CB3 +:101050008F8300203C05080094A54B5E000214001D +:10106000AC700000AC620004AC6000088F64004CFF +:101070003C02401F00A22825AC64000C8F62005087 +:1010800024040001AC6200108F620054AC620014B2 +:10109000AC600018AC65001C8FBF00148FB000104E +:1010A0000A0004B827BD0018240200205082002541 +:1010B0008FB000100E000F0A020020211040002007 +:1010C0008FBF0014020020218FB0001000002821E3 +:1010D0000A00025E27BD0018020020218FBF001405 +:1010E0008FB000100A00058027BD00189745010C3D +:1010F000020020218FBF00148FB000100A0005A04D +:1011000027BD0018020020218FB000100A0005C57D +:1011100027BD00189345010D020020218FB000105B +:101120000A00060F27BD0018020020218FBF0014FF +:101130008FB000100A0005EB27BD00188FBF001408 +:101140008FB0001003E0000827BD00188F4202781E +:101150000440FFFE2402000234840080AF440240B9 +:10116000A34202443C02100003E00008AF420278B0 +:101170003C04080094844B6A3C0208008C424B7487 +:101180003083FFFF000318C000431021AF42003C32 +:101190003C0208008C424B70AF4200383C020050C9 +:1011A00034420008AF4200300000000000000000A0 +:1011B000000000008F420000304200201040FFFD80 +:1011C000000000008F4204003C010800AC224B608C +:1011D0008F4204043C010800AC224B643C02002016 +:1011E000AF420030000000003C02080094424B680F +:1011F0003C03080094634B6C3C05080094A54B6EBF +:1012000024840001004310213083FFFF3C010800CB +:10121000A4224B683C010800A4244B6A1465000317 +:10122000000000003C010800A4204B6A03E0000815 +:10123000000000003C05000A27BDFFE80345282107 +:101240003C04080024844B50AFBF00100E00051D65 +:101250002406000A3C02080094424B523C0308005A +:1012600094634B6E3042000F244200030043180485 +:1012700024027FFF0043102B10400002AF83001CAC +:101280000000000D0E00042A000000003C020800CF +:1012900094424B5A8FBF001027BD001803E000088E +:1012A000A74200A23C02000A034210219443000618 +:1012B0003C02080094424B5A3C010800A4234B56C0 +:1012C000004310238F83001C00021400000214034B +:1012D0000043102B03E000083842000127BDFFE85F +:1012E000AFBF00103C02000A0342102194420006E6 +:1012F0003C010800A4224B560E00047700000000B9 +:101300005440FFF93C02000A8FBF001003E00008C0 +:1013100027BD001827BDFFE8AFBF00100E000477FF +:101320000000000010400003000000000E000485D3 +:10133000000000003C0208008C424B608FBF001090 +:1013400027430400AF4200383C0208008C424B6443 +:1013500027BD0018AF830020AF42003C3C020005CF +:10136000AF42003003E00008AF8000188F82001801 +:101370003C0300060002114000431025AF4200303C +:101380000000000000000000000000008F4200008C +:10139000304200101040FFFD27420400AF820020C1 +:1013A00003E00008AF8000183C0608008CC64B64C0 +:1013B0008F8500188F8300203C02080094424B5A0E +:1013C00027BDFFE024A50001246300202442000182 +:1013D00024C70020AFB10014AFB00010AFBF001899 +:1013E000AF850018AF8300203C010800A4224B5AAF +:1013F000309000FF3C010800AC274B6404C100089A +:101400000000882104E00006000000003C02080003 +:101410008C424B60244200013C010800AC224B602E +:101420003C02080094424B5A3C03080094634B680A +:101430000010202B004310262C42000100441025F0 +:10144000144000048F830018240200101462000F5F +:10145000000000000E0004A9241100013C03080054 +:1014600094634B5A3C02080094424B681462000398 +:10147000000000000E00042A000000001600000317 +:10148000000000000E000493000000003C03080070 +:1014900094634B5E3C02080094424B5C2463000161 +:1014A0003064FFFF3C010800A4234B5E148200035C +:1014B000000000003C010800A4204B5E1200000662 +:1014C000000000003C02080094424B5AA74200A2D0 +:1014D0000A00050B022010210E0004770000000016 +:1014E00010400004022010210E00048500000000BE +:1014F000022010218FBF00188FB100148FB0001090 +:1015000003E0000827BD00203084FFFF30A5FFFF67 +:101510000000182110800007000000003082000148 +:101520001040000200042042006518210A00051343 +:101530000005284003E000080060102110C00006EC +:1015400024C6FFFF8CA2000024A50004AC8200008A +:101550000A00051D2484000403E0000800000000C8 +:1015600010A0000824A3FFFFAC86000000000000CC +:10157000000000002402FFFF2463FFFF1462FFFA53 +:101580002484000403E0000800000000240200019D +:10159000AF62000CA7620010A7620012A7620014DD +:1015A00003E00008A76200163082007F034210218A +:1015B0003C08000E004818213C0208008C42002024 +:1015C00027BDFFD82407FF80AFB3001CAFB20018BF +:1015D000AFB10014AFB00010AFBF00200080802179 +:1015E00030B100FF0087202430D200FF1040002FD0 +:1015F00000009821AF44002C9062000024030050AA +:10160000304200FF1443000E000000003C020800BE +:101610008C4200E00202102100471024AF42002C4F +:101620003C0208008C4200E0020210213042007FA0 +:101630000342102100481021944200D43053FFFF90 +:101640000E000493000000003C02080094424B5E30 +:101650008F8300200011340000C2302500122C00BE +:101660003C02400000C2302534A50001AC700000EF +:101670008FBF0020AC6000048FB20018AC7300086C +:101680008FB10014AC60000C8FB3001CAC6500106F +:101690008FB00010AC60001424040001AC6000188E +:1016A00027BD00280A0004B8AC66001C8FBF0020CC +:1016B0008FB3001C8FB200188FB100148FB00010D0 +:1016C00003E0000827BD00289343010F2402001007 +:1016D0001062000E2865001110A0000724020012FD +:1016E000240200082405003A1062000600003021A0 +:1016F00003E0000800000000240500351462FFFC30 +:10170000000030210A000538000000008F420074FC +:1017100024420FA003E00008AF62000C27BDFFE8E1 +:10172000AFBF00100E00025E240500018FBF001045 +:1017300024020001A762001227BD00182402000144 +:1017400003E00008A360002227BDFFE0AFB1001452 +:10175000AFB00010AFBF001830B1FFFF0E00025055 +:10176000008080219362003F24030004304200FF88 +:101770001443000C02002021122000082402000A59 +:101780000E00053100000000936200052403FFFEF7 +:1017900000431024A362000524020012A362003F4C +:1017A000020020210E000259A360008116200003D0 +:1017B000020020210E0005950000000002002021FB +:1017C000322600FF8FBF00188FB100148FB00010B9 +:1017D000240500380A00053827BD002027BDFFE09A +:1017E000AFBF001CAFB20018AFB10014AFB0001013 +:1017F0000E000250008080210E0005310000000024 +:101800009362003F24120018305100FF123200038F +:101810000200202124020012A362003F936200050F +:101820002403FFFE004310240E000259A3620005AA +:10183000020020212405002016320007000030217C +:101840008FBF001C8FB200188FB100148FB0001032 +:101850000A00025E27BD00208FBF001C8FB2001857 +:101860008FB100148FB00010240500390A0005382C +:1018700027BD002027BDFFE8AFB00010AFBF0014A8 +:101880009742010C2405003600808021144000108E +:10189000304600FF0E00025000000000240200123B +:1018A000A362003F93620005344200100E00053130 +:1018B000A36200050E00025902002021020020212F +:1018C0000E00025E240500200A000604000000004D +:1018D0000E000538000000000E000250020020211A +:1018E000936200232403FF9F020020210043102461 +:1018F0008FBF00148FB00010A36200230A000259AA +:1019000027BD001827BDFFE0AFBF0018AFB100141E +:10191000AFB0001030B100FF0E00025000808021F7 +:10192000240200120E000531A362003F0E0002598E +:101930000200202102002021022030218FBF001848 +:101940008FB100148FB00010240500350A0005384F +:1019500027BD0020A380002C03E00008A380002DF9 +:101960008F4202780440FFFE8F820034AF42024073 +:1019700024020002A34202443C02100003E00008DB +:10198000AF4202783C0360008C6254003042000891 +:101990001440FFFD000000008C625408AF82000C70 +:1019A00024020052AC605408AC645430AC6254342D +:1019B0002402000803E00008AC6254003C0260000E +:1019C0008C42540030420008104000053C03600087 +:1019D0008C625400304200081440FFFD00000000FB +:1019E0008F83000C3C02600003E00008AC43540805 +:1019F00090A3000024020005008040213063003FD6 +:101A000000004821146200050000502190A2001C33 +:101A100094A3001E304900FF306AFFFFAD00000CA8 +:101A2000AD000010AD000024950200148D05001CCF +:101A30008D0400183042FFFF0049102300021100FE +:101A4000000237C3004038210086202300A2102B5B +:101A50000082202300A72823AD05001CAD04001838 +:101A6000A5090014A5090020A50A001603E0000836 +:101A7000A50A00228F4201F80440FFFE2402000262 +:101A8000AF4401C0A34201C43C02100003E00008BF +:101A9000AF4201F83C0208008C4200B427BDFFE8C9 +:101AA000AFBF001424420001AFB000103C01080099 +:101AB000AC2200B48F4300243C02001F30AA00FF78 +:101AC0003442FF8030D800FF006280240080F8217B +:101AD00030EF00FF1158003B01405821240CFF80DB +:101AE0003C19000A3163007F000310C00003194055 +:101AF000006218213C0208008C4200DC25680001CD +:101B0000310D007F03E21021004310213043007F9C +:101B100003431821004C102400794821AF420024CF +:101B20008D220024016C1824006C7026AD22000C5C +:101B30008D220024310800FFAD22001095220014F0 +:101B4000952300208D27001C3042FFFF3063FFFFEC +:101B50008D2600180043102300021100000227C345 +:101B60000040282100C4302300E2102B00C23023A3 +:101B700000E53823AD27001CAD2600189522002073 +:101B8000A522001495220022154B000AA52200165A +:101B90008D2300248D220008254600013145008058 +:101BA0001462000430C4007F108F000238AA008045 +:101BB00000C0502151AF000131C800FF1518FFC906 +:101BC000010058218F8400343082007F03421821A5 +:101BD0003C02000A006218212402FF8000822024B7 +:101BE000AF440024A06A0079A06A00838C62005090 +:101BF0008F840034AC6200708C6500743C027FFFFF +:101C00003442FFFF00A228240E00066BAC6500746E +:101C1000AF5000248FBF00148FB0001003E0000805 +:101C200027BD001827BDFFC0AFBE0038AFB70034D6 +:101C3000AFB5002CAFB20020AFB1001CAFB00018A0 +:101C4000AFBF003CAFB60030AFB40028AFB3002444 +:101C50008F4500248F4600288F43002C3C02001F34 +:101C60003442FF800062182400C230240080A82182 +:101C7000AFA3001400A2F0240E00062FAFA60010A0 +:101C80003C0208008C4200E02410FF8003608821A1 +:101C900002A2102100501024AF4200243C02080090 +:101CA0008C4200E002A210213042007F0342182142 +:101CB0003C02000A00629021924200D293630084A9 +:101CC000305700FF306300FF24020001106200342F +:101CD000036020212402000214620036000000008C +:101CE0000E001216024028219223008392220083C4 +:101CF0003063007F3042007F000210C000031940B3 +:101D0000006218213C0208008C4200DC02A2102173 +:101D10000043382100F01024AF42002892250078BB +:101D20009224008330E2007F034218213C02000C21 +:101D300014850007006280212402FFFFA24200F107 +:101D40002402FFFFA64200F20A0007272402FFFF39 +:101D500096020020A24200F196020022A64200F262 +:101D60008E020024AE4200F492220083A24200F0D0 +:101D70008E4200C8AE4200FC8E4200C4AE4200F863 +:101D80008E220050AE4201008E4200CCAE420104D1 +:101D9000922200853042003F0A0007823442004010 +:101DA0000E00123902402821922200850A00078283 +:101DB0003042003F936200852403FFDF3042003F42 +:101DC000A36200859362008500431024A36200850E +:101DD0009363008393620078307400FF304200FF09 +:101DE00010540036240AFF803C0C000C3283007F24 +:101DF000000310C000031940006218213C020800D3 +:101E00008C4200DC268800013109007F02A21021EB +:101E10000043382130E2007F0342182100EA1024F9 +:101E2000AF420028006C80218E020024028A182410 +:101E3000006A5826AE02000C8E020024310800FF12 +:101E4000AE02001096020014960300208E07001CBC +:101E50003042FFFF3063FFFF8E060018004310235F +:101E600000021100000227C30040282100C43023D3 +:101E700000E2102B00C2302300E53823AE07001C1F +:101E8000AE06001896020020A60200149602002258 +:101E9000A602001692220079304200FF105400077B +:101EA0000000000051370001316800FF92220078E5 +:101EB000304200FF1448FFCD0100A0219222008390 +:101EC000A22200798E2200500A0007E2AE220070A2 +:101ED000A22200858E22004C2405FF80AE42010C18 +:101EE0009222008534420020A2220085924200D135 +:101EF0003C0308008C6300DC305400FF3C02080007 +:101F00008C4200E400143140001420C002A31821C8 +:101F100000C4202102A210210064382100461021B3 +:101F20000045182400E52824AF450028AF43002CC5 +:101F30003042007F924400D030E3007F03422821EA +:101F4000034318213C02000C006280213C02000E79 +:101F5000309600FF00A298211296002A000000008F +:101F60008E02000C02002021026028211040002572 +:101F7000261000280E00064A000000009262000DA4 +:101F800026830001307400FF3042007FA262000D02 +:101F90002404FF801697FFF0267300203C020800FF +:101FA0008C4200DC0000A02102A210210044102479 +:101FB000AF4200283C0208008C4200E43C030800C9 +:101FC0008C6300DC02A2102100441024AF42002CDC +:101FD0003C0208008C4200E402A318213063007F19 +:101FE00002A210213042007F034220210343182126 +:101FF0003C02000C006280213C02000E0A0007A493 +:10200000008298218E4200D8AE2200508E4200D825 +:10201000AE22007092250083924600D19223008365 +:10202000924400D12402FF8000A228243063007F64 +:10203000308400FF00A628250064182A10600002E2 +:1020400030A500FF38A50080A2250083A2250079D5 +:102050000E00063D000000009222007E02A020211A +:10206000A222007A8E2300743C027FFF3442FFFFDD +:10207000006218240E00066BAE2300748FA20010BD +:10208000AF5E00248FBF003CAF4200288FBE0038F7 +:102090008FA200148FB700348FB600308FB5002C9C +:1020A0008FB400288FB300248FB200208FB1001CA2 +:1020B0008FB0001827BD004003E00008AF42002C9D +:1020C00090A2000024420001A0A200003C030800EE +:1020D0008C6300F4304200FF1443000F0080302175 +:1020E000A0A000003C0208008C4200E48F84003471 +:1020F000008220213082007F034218213C02000C24 +:10210000006218212402FF8000822024ACC300005A +:1021100003E00008AF4400288C8200002442002025 +:1021200003E00008AC82000094C200003C080800F4 +:10213000950800CA30E7FFFF008048210102102106 +:10214000A4C2000094C200003042FFFF00E2102B46 +:1021500054400001A4C7000094A200003C03080002 +:102160008C6300CC24420001A4A2000094A20000D1 +:102170003042FFFF544300078F8600280107102BD1 +:10218000A4A000005440000101003821A4C70000B1 +:102190008F8600288CC4001CAF44003C94A2000031 +:1021A0008F43003C3042FFFF000210C00062182144 +:1021B000AF43003C8F42003C008220231880000483 +:1021C000000000008CC200180A00084324420001ED +:1021D0008CC20018AF4200383C020050344200105C +:1021E000AF420030000000000000000000000000CE +:1021F0008F420000304200201040FFFD0000000030 +:102200008F420404AD2200048F420400AD2200007E +:102210003C020020AF42003003E000080000000054 +:1022200027BDFFE0AFB20018AFB10014AFB000108F +:10223000AFBF001C94C2000000C080213C12080007 +:10224000965200C624420001A60200009603000038 +:1022500094E2000000E03021144300058FB100300B +:102260000E000818024038210A000875000000001E +:102270008C8300048C820004244200400461000727 +:10228000AC8200048C8200040440000400000000C2 +:102290008C82000024420001AC8200009602000003 +:1022A0003042FFFF50520001A600000096220000BD +:1022B00024420001A62200008F82002896230000FD +:1022C00094420016144300048FBF001C2402000136 +:1022D000A62200008FBF001C8FB200188FB100141F +:1022E0008FB0001003E0000827BD00208F89002870 +:1022F00027BDFFE0AFBF00188D220028274804004B +:1023000030E700FFAF4200388D22002CAF8800304C +:10231000AF42003C3C020005AF420030000000002C +:1023200000000000000000000000000000000000AD +:10233000000000008C82000C8C82000CAD020000BA +:102340008C820010AD0200048C820018AD020008DF +:102350008C82001CAD02000C8CA20014AD02001097 +:102360008C820020AD02001490820005304200FFF4 +:1023700000021200AD0200188CA20018AD02001C71 +:102380008CA2000CAD0200208CA20010AD02002433 +:102390008CA2001CAD0200288CA20020AD02002CF3 +:1023A000AD060030AD000034978300263402FFFFF5 +:1023B00014620002006020213404FFFF10E00011CD +:1023C000AD04003895230036952400362402000120 +:1023D0003063FFFF000318C20069182190650040B8 +:1023E000308400070082100400451025A0620040E0 +:1023F0008F820028944200563042FFFF0A0008DC1A +:10240000AD02003C952300369524003624020001DD +:102410003063FFFF000318C2006918219065004077 +:1024200030840007008210040002102700451024A9 +:10243000A0620040AD00003C000000000000000071 +:10244000000000003C02000634420040AF42003071 +:102450000000000000000000000000008F420000AB +:10246000304200101040FFFD8F860028AF880030FA +:1024700024C2005624C7003C24C4002824C50032CE +:1024800024C600360E000856AFA200108FBF0018F9 +:1024900003E0000827BD00208F8300243C060800CD +:1024A0008CC600E88F82003430633FFF0003198040 +:1024B00000461021004310212403FF803046007F96 +:1024C00000431024AF420028034618213C02000CB0 +:1024D0000062302190C2000D30A500FF00003821BD +:1024E00034420010A0C2000D8F8900288F8A00247A +:1024F00095230036000A13823048000324020001AD +:10250000A4C3000E1102000B2902000210400005B6 +:10251000240200021100000C240300010A0009201B +:102520000000182111020006000000000A00092026 +:10253000000018218CC2002C0A000920244300014D +:102540008CC20014244300018CC200180043102BDD +:1025500050400009240700012402002714A20003B0 +:10256000000000000A00092C240700019522003E0B +:1025700024420001A522003E000A138230430003DA +:102580002C62000210400009008028211460000421 +:102590000000000094C200360A00093C3046FFFFEC +:1025A0008CC600380A00093C008028210000302138 +:1025B0003C04080024844B780A00088900000000CD +:1025C000274901008D22000C9523000601202021BF +:1025D000000216023046003F3063FFFF240200274E +:1025E00000C0282128C7002810C2000EAF83002495 +:1025F00010E00008240200312402002110C200096A +:102600002402002510C200079382002D0A00095BF6 +:102610000000000010C200059382002D0A00095B33 +:10262000000000000A0008F4000000000A0006266E +:102630000000000095230006912400058D25000C64 +:102640008D2600108D2700188D28001C8D29002054 +:10265000244200013C010800A4234B7E3C010800F9 +:10266000A0244B7D3C010800AC254B843C010800B4 +:10267000AC264B883C010800AC274B903C0108007D +:10268000AC284B943C010800AC294B9803E00008AF +:10269000A382002D8F87002827BDFFC0AFB3003471 +:1026A000AFB20030AFB1002CAFB00028AFBF0038E0 +:1026B0003C0208008C4200D094E3003030B0FFFFB1 +:1026C000005010073045FFFF3063FFFF00C0982126 +:1026D000A7A200103C110800963100C614A3000602 +:1026E0003092FFFF8CE2002424420030AF42003CD5 +:1026F0000A0009948CE2002094E200323042FFFF8D +:1027000054A2000827A400188CE2002C24420030B8 +:10271000AF42003C8CE20028AF4200380A0009A218 +:102720008F84002827A5001027A60020022038212A +:102730000E000818A7A000208FA200182442003025 +:10274000AF4200388FA2001CAF42003C8F840028AB +:102750003C020005AF42003094820034274304005D +:102760003042FFFF0202102B14400007AF830030FD +:1027700094820054948300340202102100431023F9 +:102780000A0009B63043FFFF94830054948200345A +:102790000223182100501023006218233063FFFF2A +:1027A000948200163042FFFF144300030000000033 +:1027B0000A0009C424030001948200163042FFFF7E +:1027C0000043102B104000058F82003094820016C9 +:1027D000006210233043FFFF8F820030AC530000B3 +:1027E000AC400004AC520008AC43000C3C020006B4 +:1027F00034420010AF420030000000000000000032 +:10280000000000008F420000304200101040FFFD29 +:10281000001018C2006418219065004032040007BF +:10282000240200018FBF00388FB300348FB2003014 +:102830008FB1002C8FB000280082100400451025B5 +:1028400027BD004003E00008A062004027BDFFA8AC +:10285000AFB60050AFB5004CAFB40048AFB30044C2 +:10286000AFB1003CAFBF0054AFB20040AFB00038D2 +:102870008C9000003C0208008C4200E88F860034F7 +:10288000960300022413FF8000C2302130633FFF13 +:102890000003198000C3382100F3102490B2000017 +:1028A000AF42002C9203000230E2007F034230214D +:1028B0003C02000E00C28821306300C024020040A8 +:1028C0000080A82100A0B021146200260000A021F1 +:1028D0008E3400388E2200181440000224020001B9 +:1028E000AE2200189202000D304200201440001564 +:1028F0008F8200343C0308008C6300DC001238C077 +:10290000001231400043102100C730210046382119 +:1029100030E300073C02008030E6007800C230253A +:102920000343182100F31024AF4208002463090078 +:10293000AF4608108E2200188C6300080043102157 +:10294000AE2200188E22002C8E2300182442000193 +:102950000062182B1060003D000000000A000A7899 +:1029600000000000920300022402FFC00043102474 +:10297000304200FF1440000524020001AE2200187E +:10298000962200360A000A613054FFFF8E2200149E +:1029900024420001AE22001892020000000216003C +:1029A0000002160304410029000000009602000204 +:1029B00027A4001000802821A7A20016960200027A +:1029C00024070001000030213042FFFFAF820024C5 +:1029D0000E000889AFA0001C960300023C0408000A +:1029E0008C8400E88F82003430633FFF000319803D +:1029F00000441021004310213043007F3C05000CAF +:102A00000053102403431821AF4200280065182109 +:102A10009062000D001221403042007FA062000D44 +:102A20003C0308008C6300E48F82003400431021D3 +:102A30000044382130E2007F03421021004510217C +:102A400000F31824AF430028AEA200009222000D2C +:102A5000304200101040001302A020218F83002874 +:102A60008EA40000028030219462003E2442FFFFC9 +:102A7000A462003E948400029625000E3084FFFF7D +:102A80000E00097330A5FFFF8F82002894430034A5 +:102A90009622000E1443000302A02021240200010C +:102AA000A382002C02C028210E0007FE00000000B7 +:102AB0008FBF00548FB600508FB5004C8FB40048C4 +:102AC0008FB300448FB200408FB1003C8FB000380C +:102AD00003E0000827BD00588F82002827BDFFD0E3 +:102AE000AFB40028AFB20020AFBF002CAFB30024BA +:102AF000AFB1001CAFB00018904400D0904300D19B +:102B00000000A021309200FFA3A30010306300FF5B +:102B10008C5100D88C5300DC1072002B2402000171 +:102B20003C0308008C6300E493A400108F820034FF +:102B30002406FF800004214000431021004410219E +:102B40003043007F00461024AF4200280343182181 +:102B50003C02000C006218218C62000427A40014BF +:102B600027A50010022280210270102304400015C6 +:102B7000AFA300149062000D00C21024304200FF89 +:102B800014400007020088219062000D344200408A +:102B90000E0007FEA062000D0A000ABD93A20010FD +:102BA0000E0009E1241400018F830028AC7000D8C6 +:102BB00093A20010A06200D193A200101452FFD87B +:102BC0000000000024020001168200048FBF002CC8 +:102BD0000E000626000000008FBF002C8FB40028D6 +:102BE0008FB300248FB200208FB1001C8FB000186B +:102BF00003E0000827BD003027BDFFD8AFB3001C9D +:102C0000AFB20018AFB10014AFB00010AFBF0020DA +:102C10000080982100E0802130B1FFFF0E00049376 +:102C200030D200FF000000000000000000000000A3 +:102C30008F820020AC510000AC520004AC5300085D +:102C4000AC40000CAC400010AC400014AC4000188C +:102C50003C03080094634B5E02038025AC50001CCB +:102C6000000000000000000000000000240400013B +:102C70008FBF00208FB3001C8FB200188FB10014DB +:102C80008FB000100A0004B827BD002827BDFFE858 +:102C9000AFB00010AFBF001430A5FFFF30C600FF7B +:102CA0000080802124020C80AF420024000000003C +:102CB0000000000000000000000000000000000014 +:102CC0000E000ACC000000003C040800248400E050 +:102CD0008C8200002403FF808FBF001402021021A9 +:102CE00000431024AF4200248C8200003C03000A01 +:102CF000020280213210007F035010218FB000109B +:102D00000043102127BD001803E00008AF8200280F +:102D100027BDFFE8AFBF00108F4401403C0308000F +:102D20008C6300E02402FF80AF840034008318210C +:102D300000621024AF4200243C02000803424021FC +:102D4000950500023063007F3C02000A034318210E +:102D50000062182130A5FFFF3402FFFF0000302180 +:102D60003C07602010A20006AF8300282402FFFF6A +:102D7000A5020002946500D40E000AF130A5FFFF01 +:102D80008FBF001024020C8027BD001803E000084C +:102D9000AF4200243C020008034240219502000299 +:102DA0003C0A0800954A00C63046FFFF14C00007E1 +:102DB0003402FFFF8F8200288F8400343C0760209C +:102DC000944500D40A000B5A30A5FFFF10C200241E +:102DD0008F87002894E2005494E400163045FFFFEA +:102DE00000A6102300A6182B3089FFFF10600004F6 +:102DF0003044FFFF00C51023012210233044FFFFA1 +:102E0000008A102B1040000C012A1023240200011C +:102E1000A50200162402FFFFA502000294E500D4DB +:102E20008F8400340000302130A5FFFF3C07602074 +:102E30000A000AF1000000000044102A10400008B7 +:102E4000000000009502001630420001104000040E +:102E5000000000009742007E24420014A5020016E4 +:102E600003E00008000000008F84002827BDFFE079 +:102E7000AFBF0018948200349483003E1060001AA3 +:102E80003048FFFF9383002C2402000114620027C6 +:102E90008FBF00188F820028000818C23108000771 +:102EA000006218212447003A244900542444002099 +:102EB000244500302446003490620040304200FF38 +:102EC0000102100730420001104000168FBF0018A9 +:102ED0000E000856AFA900108F82002894420034DB +:102EE0000A000B733048FFFF94830036948200344D +:102EF0001043000E8FBF001894820036A482003465 +:102F000094820056A48200548C82002CAC8200244F +:102F100094820032A48200309482003CA482003A61 +:102F20008FBF00180A000B3327BD002003E0000804 +:102F300027BD002027BDFFE8AFBF00108F4A01006A +:102F40003C0508008CA500E03C02080090424B8440 +:102F50003C0C0800958C4B7E01452821304B003FEE +:102F600030A2007F03424021396900323C02000A4E +:102F70003963003F2C630001010240212D2900012B +:102F80002402FF8000A2282401234825AF8A0034B0 +:102F900000801821AF450024000030210080282146 +:102FA00024070001AF8800283C04080024844B78E3 +:102FB000AF8C002415200007A380002D24020020E0 +:102FC0005562000F006020213402FFFF5582000C83 +:102FD000006020212402002015620005000000008E +:102FE0008C6300142402FFFF106200070000000041 +:102FF0000E000889000000000A000BD0000000004D +:103000000E0008F4016028210E000B68000000008B +:103010008FBF001024020C8027BD001803E00008B9 +:10302000AF4200243C0208008C4200E027BDFFA014 +:10303000AFB1003C008210212411FF80AFBE0058C8 +:10304000AFB70054AFB20040AFB00038AFBF005CC4 +:10305000AFB60050AFB5004CAFB40048AFB30044BA +:10306000005110248F4800248F4900288F470028E2 +:10307000AF4200243C0208008C4200E00080902116 +:1030800024060006008210213042007F03421821EE +:103090003C02000A006280213C02001F3442FF8093 +:1030A00000E2382427A40010260500F00122F024B5 +:1030B0000102B8240E00051DAFA700308FA2001832 +:1030C000AE0200C48FA2001CAE0200C88FA2002472 +:1030D000AE0200CC93A40010920300D12402FF8022 +:1030E0000082102400431025304900FF3083007F08 +:1030F0003122007F0062102A10400004000310C03B +:1031000001311026304900FF000310C000031940B0 +:10311000006218213C0208008C4200DC920400D2BC +:10312000024210210043102100511024AF42002818 +:1031300093A300103063007F000310C00003194008 +:10314000006218213C0208008C4200DC024210217F +:10315000004310213042007F034218213C02000C42 +:10316000006240218FA300142402FFFF1062003090 +:10317000309500FF93A2001195030014304400FF26 +:103180003063FFFF0064182B1060000D000000008A +:10319000950400148D07001C8D0600183084FFFF75 +:1031A00000442023000421000000102100E4382105 +:1031B00000E4202B00C230210A000C4A00C4302158 +:1031C000950400148D07001C8D0600183084FFFF45 +:1031D000008220230004210000001021008018211B +:1031E00000C2302300E4202B00C4302300E3382346 +:1031F000AD07001CAD06001893A20011A502001433 +:1032000097A20012A50200168FA20014AD020010B2 +:103210008FA20014AD02000C93A20011A5020020A1 +:1032200097A20012A50200228FA20014AD02002472 +:103230002406FF80024610243256007FAF4200244D +:10324000035618213C02000A006280218E02004CC5 +:103250008FA200203124007F000428C0AE0200505D +:103260008FA200200004214000852821AE020070BA +:1032700093A2001001208821A202008393A20010D3 +:10328000A2020079920200853042003FA20200852E +:103290003C0208008C4200DC024210210045102153 +:1032A00000461024AF42002C3C0208008C4200E48F +:1032B0003C0308008C6300DC024210210044102112 +:1032C00000461024AF4200283C0208008C4200E473 +:1032D00002431821006518210242102100441021E8 +:1032E0003042007F3063007F93A50010034220210D +:1032F000034318213C02000E006240213C02000CF6 +:1033000010B1008C008248213233007F1660001912 +:103310002404FF803C0208008C4200DC02421021A1 +:1033200000441024AF42002C3C0208008C4200E410 +:103330003C0308008C6300DC02421021004410248E +:10334000AF4200283C0208008C4200E402431821EE +:103350003063007F024210213042007F034220216F +:10336000034318213C02000E006240213C02000C85 +:10337000008248219124000D2414FF8000001021B8 +:1033800000942025A124000D950400029505001449 +:103390008D07001C3084FFFF30A5FFFF8D0600184D +:1033A000008520230004210000E4382100C23021E0 +:1033B00000E4202B00C43021AD07001CAD0600182E +:1033C00095020002A5020014A50000168D02000857 +:1033D000AD0200108D020008AD02000C9502000243 +:1033E000A5020020A50000228D020008AD020024E5 +:1033F0009122000D30420040104000422622000180 +:103400003C0208008C4200E0A3B300283C10000AF4 +:103410000242102100541024AF4200243C02080054 +:103420008C4200E0A380002C27A4002C0242102133 +:103430003042007F03421821007018218C6200D8AE +:103440008D26000427A50028AFA9002C00461021D6 +:10345000AC6200D80E0009E1AF83002893A30028D6 +:103460008F8200280E000626A04300D10E000B68B4 +:103470000000000002541024AF4200243C02080067 +:103480008C4200DC00132940001320C000A420213E +:10349000024210210044102100541024AF42002C9D +:1034A0003C0208008C4200E43C0308008C6300DC12 +:1034B00003563021024210210045102100541024EF +:1034C000AF4200283C0208008C4200E4024318216D +:1034D0000064182102421021004510213042007F73 +:1034E0003063007F03422021034318213C02000E79 +:1034F000006240213C02000C00D080210082482163 +:10350000262200013043007F14750005304400FF7F +:103510002403FF800223102400431026304400FFC0 +:1035200093A2001000808821250800281444FF760B +:103530002529002093A400108FA300142402FFFF6C +:103540001062000A308900FF2482000124830001F8 +:103550003042007F14550005306900FF2403FF80CE +:103560000083102400431026304900FF92020078A7 +:10357000305300FF11330032012088213C02080043 +:103580008C4200DC3225007F000520C00005294068 +:1035900000A42021024210212406FF8000441021B3 +:1035A00000461024AF42002C3C0308008C6300DC72 +:1035B0003C0208008C4200E4024318210242102120 +:1035C0000045102100641821004610243063007F5C +:1035D000AF420028034318213C02000E0062402144 +:1035E0003C0208008C4200E48D06000C0100202102 +:1035F00002421021004510213042007F0342182171 +:103600003C02000C0062482110C0000D012028215E +:103610000E00064A000000002402FF800222182447 +:1036200026240001006228263082007F1455000203 +:10363000308300FF30A300FF1473FFD000608821A7 +:103640008E0300743C027FFF3442FFFF00621824A7 +:10365000AE0300740E00066B02402021AF57002419 +:103660008FA20030AF5E00288FBF005C8FBE005875 +:103670008FB700548FB600508FB5004C8FB4004800 +:103680008FB300448FB200408FB1003C8FB0003840 +:1036900027BD006003E00008AF42002C27BDFFD823 +:1036A000AFB1001CAFBF0020AFB000182751018898 +:1036B000922200032408FF803C03000A3047007F69 +:1036C000A3A700108F4601803C0208008C4200E056 +:1036D000AF86003400C2282100A81024AF42002485 +:1036E0009224000030A2007F0342102100431021E9 +:1036F000AF8200283084007F24020002148200255B +:10370000000719403C0208008C4200E400C210216E +:103710000043282130A2007F0342182100A8102472 +:10372000AF4200283C02000C006218219062000D9C +:10373000AFA3001400481025A062000D8FA3001451 +:103740009062000D304200405040006A8FBF002060 +:103750008F860028A380002C27A400148CC200D8D8 +:103760008C63000427A50010004310210E0009E11E +:10377000ACC200D893A300108F8200280E0006264A +:10378000A04300D10E000B68000000000A000E0BE1 +:103790008FBF00200E00062F00C020210E00063D26 +:1037A000000000003C020008034280219223000137 +:1037B0009202007B1443004F8FBF00209222000032 +:1037C0003044007F24020004108200172882000584 +:1037D00010400006240200052402000310820007A6 +:1037E0008FB1001C0A000E0C0000000010820012B5 +:1037F0008FBF00200A000E0C8FB1001C92050083C1 +:10380000920600788E0700748F84003430A500FF84 +:1038100000073E0230C600FF0E00067330E7007F4F +:103820000A000E0B8FBF00200E000BD78F840034D0 +:103830000A000E0B8FBF002024020C80AF42002430 +:103840009202003E30420040104000200000000084 +:103850009202003E00021600000216030441000618 +:10386000000000008F8400340E0005A024050093A2 +:103870000A000E0B8FBF00209202003F24030018A5 +:10388000304200FF1443000C8F84003424050039BB +:103890000E000538000030210E0002508F840034E5 +:1038A00024020012A202003F0E0002598F8400344D +:1038B0000A000E0B8FBF0020240500360E000538CD +:1038C000000030210A000E0B8FBF00200E000250B6 +:1038D0008F8400349202000534420020A2020005C9 +:1038E0000E0002598F8400340E000FC08F84003404 +:1038F0008FBF00208FB1001C8FB0001824020C80F5 +:1039000027BD002803E00008AF42002427BDFFE8E0 +:10391000AFB00010AFBF001427430100946200084D +:103920000002140000021403044100020000802180 +:103930002410000194620008304200801040001AF8 +:10394000020010219462000830422000104000164E +:10395000020010218C6300183C021C2D344219ED2A +:10396000240600061062000F3C0760213C0208009C +:103970008C4200D4104000078F8200288F830028DB +:10398000906200623042000F34420040A062006248 +:103990008F8200288F840034944500D40E000AF1F1 +:1039A00030A5FFFF020010218FBF00148FB0001060 +:1039B00003E0000827BD001827BDFFE0AFB10014E9 +:1039C000AFB00010A380002CAFBF00188F450100DE +:1039D0003C0308008C6300E02402FF80AF850034C4 +:1039E00000A318213064007F0344202100621824C2 +:1039F0003C02000A00822021AF430024275001002E +:103A00008E0200148C8300DCAF8400280043102356 +:103A100018400004000088218E0200140E000A8461 +:103A2000AC8200DC9202000B24030002304200FF53 +:103A30001443002F0000000096020008304300FFEE +:103A40002402008214620005240200840E00093E54 +:103A5000000000000A000E97000000001462000938 +:103A6000240200818F8200288F8400343C0760216B +:103A7000944500D49206000530A5FFFF0A000E868B +:103A800030C600FF14620027000000009202000A06 +:103A9000304300FF306200201040000430620040DC +:103AA0008F8400340A000E82240600401040000477 +:103AB000000316008F8400340A000E8224060041A1 +:103AC00000021603044100178F84003424060042CC +:103AD0008F8200283C076019944500D430A5FFFF71 +:103AE0000E000AF1000000000A000E97000000001E +:103AF0009202000B24030016304200FF1043000620 +:103B0000000000009202000B24030017304200FF67 +:103B100014430004000000000E000E11000000001D +:103B2000004088210E000B68000000009202000A8D +:103B3000304200081040000624020C808F850028C7 +:103B40003C0400080E0011EE0344202124020C80E6 +:103B5000AF4200248FBF0018022010218FB0001048 +:103B60008FB1001403E0000827BD002027BDFFE847 +:103B7000AFBF0014AFB000108F5000243C0308000A +:103B80008C6300E08F4501002402FF8000A3182110 +:103B90003064007F03442021006218243C02000AA4 +:103BA00000822021AF850034AF4300249082006260 +:103BB000AF8400283042000F34420050A0820062DF +:103BC0003C02001F3442FF800E00062602028024C1 +:103BD000AF5000248FBF00148FB0001003E0000826 +:103BE00027BD00183C0208008C4200201040001D38 +:103BF0002745010090A300093C0200080342202150 +:103C000024020018546200033C0200080A000ED887 +:103C10002402000803422021240200161462000539 +:103C20002402001724020012A082003F0A000EE2C4 +:103C300094A700085462000694A700089362000548 +:103C40002403FFFE00431024A362000594A700088C +:103C500090A6001B8CA4000094A500060A000ACCC4 +:103C600000073C0003E000080000000027440100BA +:103C700094820008304500FF38A3008238A20084F7 +:103C80002C6300012C420001006218251060000620 +:103C9000240200839382002D1040000D00000000DC +:103CA0000A000B9B0000000014A2000524A2FF8064 +:103CB0008F4301043C02602003E00008AC43001481 +:103CC000304200FF2C420002104000032402002278 +:103CD0000A000E3C0000000014A2000300000000D7 +:103CE0000A000EA9000000000A000EC70000000034 +:103CF0009363007E9362007A144300090000202140 +:103D00009362000024030050304200FF144300047B +:103D1000240400019362007E24420001A362007E1D +:103D200003E00008008010218F4201F80440FFFEEC +:103D300024020002AF4401C0A34201C43C021000AF +:103D400003E00008AF4201F827BDFFE8AFBF001055 +:103D50009362003F2403000A304200FF14430046F0 +:103D6000000000008F6300548F62004C1062007DE1 +:103D7000036030219362000024030050304200FFB2 +:103D80001443002F000000008F4401403C02080053 +:103D90008C4200E02403FF800082102100431024A5 +:103DA000AF4200243C0208008C4200E08F650054C2 +:103DB0003C03000A008220213084007F034410214C +:103DC00000431021AC4501089762003C8F63004C12 +:103DD0003042FFFF0002104000621821AF63005C18 +:103DE0008F6300548F64004C9762003C006418237A +:103DF0003042FFFF00031843000210400043102A26 +:103E000010400006000000008F6200548F63004CD9 +:103E1000004310230A000F58000210439762003C31 +:103E20003042FFFF00021040ACC2006424020001D7 +:103E3000A0C0007CA0C2008424020C80AF420024F9 +:103E40000E000F0A8F440140104000478FBF001042 +:103E50008F4301408F4201F80440FFFE240200021C +:103E6000AF4301C0A34201C43C021000AF4201F8BD +:103E70000A000FA88FBF00109362003F24030010B8 +:103E8000304200FF14430004000000008F44014052 +:103E90000A000F94000028219362003F24030016BB +:103EA000304200FF1443000424020014A362003FC8 +:103EB0000A000FA2000000008F62004C8F630050C8 +:103EC00000431023044100288FBF0010936200813B +:103ED00024420001A3620081936200812C4200040D +:103EE00014400010000000009362003F240300040F +:103EF000304200FF14430006000000008F440140E0 +:103F00008FBF0010240500930A0005A027BD0018EC +:103F10008F440140240500938FBF00100A00060F54 +:103F200027BD00188F4401400E0002500000000021 +:103F30008F6200542442FFFFAF6200548F62005032 +:103F40002442FFFFAF6200500E0002598F4401402F +:103F50008F4401408FBF0010240500040A00025E58 +:103F600027BD00188FBF001003E0000827BD001810 +:103F70008F4201889363007E00021402304400FFE8 +:103F8000306300FF1464000D0000000093620080A5 +:103F9000304200FF1044000900000000A3640080CC +:103FA0009362000024030050304200FF14430004D9 +:103FB000000000000A0006D78F440180A36400803F +:103FC00003E000080000000027BDFFE8AFB00010CC +:103FD000AFBF00149362000524030030304200306C +:103FE00014430089008080213C0208008C4200209C +:103FF00010400080020020210E0004930000000009 +:104000008F850020ACB000009362003E9363003FB8 +:10401000304200FF00021200306300FF0043102511 +:10402000ACA2000493620082000216000002160394 +:1040300004410005000000003C0308008C630048B8 +:104040000A000FE6000000009362003E304200408C +:10405000144000030000182193620081304300FFE8 +:104060009362008200031E00304200FF0002140031 +:1040700000621825ACA300088F620040ACA2000CBF +:104080008F620048ACA200108F62004CACA20014FA +:104090008F6200508F63004C0043102304410003E3 +:1040A000000000000A000FFA8F62004C8F6200507F +:1040B000ACA200183C02080094424B5E3C03C00BCB +:1040C00000002021004310250E0004B8ACA2001C03 +:1040D0008F6200548F840020AC8200008F620058F1 +:1040E000AC8200048F62005CAC8200088F620060CA +:1040F0008F43007400431021AC82000C8F62006477 +:10410000AC820010976300689762006A00031C008D +:104110003042FFFF00621825AC83001493620082D6 +:1041200024030080304200FF14430003000000001D +:104130000A00102EAC8000188F63000C24020001CE +:104140001062000E2402FFFF9362003E30420040E6 +:104150001440000A2402FFFF8F63000C8F4200749A +:10416000006218233C020800006210241440000280 +:10417000000028210060282100051043AC820018AF +:104180003C02080094424B5E3C03C00C000020211E +:10419000004310258F8300200E0004B8AC62001C81 +:1041A0008F6200188F8300203C05080094A54B5EA9 +:1041B00024040001AC620000AC6000048F66006C57 +:1041C0003C02400D00A22825AC6600088F6200DC8E +:1041D000AC62000CAC600010936200050002160097 +:1041E000AC620014AC6000180E0004B8AC65001C92 +:1041F000020020218FBF00148FB00010A3600005C3 +:104200000A00042127BD00188FBF00148FB00010D2 +:1042100003E0000827BD00189742007C30C600FF6D +:10422000A08600843047FFFF2402000514C2000B63 +:1042300024E3465090A201122C42000710400007D0 +:1042400024E30A0090A30112240200140062100467 +:1042500000E210210A0010663047FFFF3067FFFFC1 +:1042600003E00008A4870014AC87004C8CA201086E +:104270000080402100A0482100E2102330C600FF4A +:104280001840000393AA001324E2FFFCACA201082B +:1042900030C2000110400008000000008D020050F4 +:1042A00000E2102304410013240600058D0200548F +:1042B00010E20010000000008D02005414E2001A09 +:1042C000000000003C0208008C4200D83042002070 +:1042D0001040000A2402000191030078910200833B +:1042E000144300062402000101002021012028219E +:1042F000240600040A00105400000000A1000084FD +:1043000011400009A50200148F4301008F4201F8FB +:104310000440FFFE24020002AF4301C0A34201C4D7 +:104320003C021000AF4201F803E00008000000006A +:1043300027BDFFE88FA90028AFBF001000804021F3 +:1043400000E918231860007330C600FFA080007CCD +:10435000A08000818CA2010800E210230440004DDF +:10436000000000008C8200509483003C8C84006428 +:10437000004748233063FFFF012318210083202BCF +:1043800010800004000000008D0200640A0010B7D5 +:1043900000E210219502003C3042FFFF0122102173 +:1043A00000E21021AD02005C9502003C8D03005C30 +:1043B0003042FFFF0002104000E210210043102BAA +:1043C00010400003000000000A0010C68D02005CCF +:1043D0009502003C3042FFFF0002104000E2102135 +:1043E000AD02005CA1000084AD07004C8CA2010866 +:1043F00000E210231840000224E2FFFCACA20108F6 +:1044000030C200011040000A000000008D02005080 +:1044100000E2102304410004010020218D02005419 +:1044200014E20003000000000A0010E82406000562 +:104430008D02005414E200478FBF00103C020800B8 +:104440008C4200D8304200201040000A24020001B3 +:1044500091030078910200831443000624020001B6 +:1044600001002021240600048FBF00100A00105410 +:1044700027BD0018A1000084A50200148F4301008D +:104480008F4201F80440FFFE240200020A00110DD1 +:10449000000000008C82005C004910230043102BB8 +:1044A00054400001AC87005C9502003C3042FFFFA5 +:1044B0000062102B14400007240200029502003C09 +:1044C0008D03005C3042FFFF00621821AD03005CE9 +:1044D00024020002AD07004CA10200840E000F0A66 +:1044E0008F4401001040001B8FBF00108F4301005C +:1044F0008F4201F80440FFFE24020002AF4301C0D6 +:10450000A34201C43C021000AF4201F80A0011238B +:104510008FBF001030C200101040000E8FBF00107F +:104520008C83005C9482003C006918233042FFFFBA +:10453000006218213C023FFF3444FFFF0083102B30 +:10454000544000010080182101231021AD02005CBD +:104550008FBF001003E0000827BD001827BDFFE84B +:104560008FAA0028AFBF00100080402100EA482336 +:104570001920002130C600FF8C83005C8C8200640F +:10458000006A18230043102B5040001000691821C6 +:1045900094A2011001221021A4A2011094A20110E2 +:1045A0003042FFFF0043102B1440000A3C023FFF43 +:1045B00094A2011000431023A4A201109482003C95 +:1045C0003042FFFF0A00114200621821A4A001102E +:1045D0003C023FFF3444FFFF0083102B5440000196 +:1045E0000080182100671021AD02005CA100007C52 +:1045F0000A00118AA100008130C200101040003C66 +:10460000000000008C820050004A1023184000383F +:10461000000000009082007C24420001A082007C07 +:104620009082007C3C0308008C630024304200FF31 +:104630000043102B1440005C8FBF00108CA20108B7 +:1046400000E2102318400058000000008C83005442 +:104650009482003C006A18233042FFFF0003184395 +:10466000000210400043102A104000050000000026 +:104670008C820054004A10230A001171000210437A +:104680009482003C3042FFFF00021040AD02006403 +:104690009502003C8D0400649503003C3042FFFF0E +:1046A00000021040008220213063FFFF00831821A8 +:1046B00001431021AD02005C8D020054ACA2010840 +:1046C00024020002A10200840E000F0A8F440100A0 +:1046D000104000358FBF00108F4301008F4201F85A +:1046E0000440FFFE240200020A0011B30000000093 +:1046F000AD07004C8CA2010800E210231840000214 +:1047000024E2FFFCACA2010830C200011040000A04 +:10471000000000008D02005000E21023044100045C +:10472000010020218D02005414E20003000000006B +:104730000A0011AA240600058D02005414E2001A92 +:104740008FBF00103C0208008C4200D8304200208D +:104750001040000A240200019103007891020083B6 +:104760001443000624020001010020212406000455 +:104770008FBF00100A00105427BD0018A10000844C +:10478000A50200148F4301008F4201F80440FFFE90 +:1047900024020002AF4301C0A34201C43C02100046 +:1047A000AF4201F88FBF001003E0000827BD0018DA +:1047B0008FAA00108C8200500080402130C600FF7C +:1047C000004A102300A048211840000700E01821EB +:1047D00024020001A0800084A0A00112A482001481 +:1047E0000A001125AFAA0010A0800081AD07004C7F +:1047F0008CA2010800E210231840000224E2FFFC12 +:10480000ACA2010830C20001104000080000000006 +:104810008D0200500062102304410013240600059D +:104820008D02005410620010000000008D02005440 +:1048300014620011000000003C0208008C4200D805 +:10484000304200201040000A240200019103007849 +:10485000910200831443000624020001010020217C +:1048600001202821240600040A0010540000000042 +:10487000A1000084A502001403E00008000000006D +:1048800027BDFFE0AFBF0018274201009046000A95 +:104890008C4800148C8B004C9082008430C900FF3F +:1048A00001681823304A00FF1C60001A2D460006DC +:1048B000240200010142100410C00016304300031E +:1048C000012030210100382114600007304C000C19 +:1048D00015800009304200301440000B8FBF0018D3 +:1048E0000A001214000000000E001125AFAB0010EA +:1048F0000A0012148FBF00180E00109AAFAB001000 +:104900000A0012148FBF0018AFAB00100E0011BACE +:10491000AFAA00148FBF001803E0000827BD0020D5 +:1049200024020003A08200848C82005403E000086B +:10493000ACA201083C0200080342182190620081E9 +:10494000240600433C07601924420001A062008154 +:10495000906300813C0208008C4200C0306300FF7D +:10496000146200102403FF803C0208008C4200E027 +:104970000082102100431024AF4200243C020800B2 +:104980008C4200E03C03000A008210213042007F8C +:104990000342102100431021944500D40A000AF17B +:1049A00030A5FFFF03E000080000000027BDFFE086 +:1049B000AFBF0018AFB10014AFB000108F4201803C +:1049C0000080802100A088210E00121B00402021C1 +:1049D000A20000848E0200548FBF00188FB0001018 +:1049E000AE2201088FB1001403E0000827BD0020AB +:1049F00027BDFFE03C020008AFB00010AFBF0018B9 +:104A0000AFB10014034280218F5101409203008412 +:104A10008E0400508E02004C14820040306600FF6D +:104A20003C0208008C4200E02403FF800222102197 +:104A300000431024AF4200243C0208008C4200E0F6 +:104A40009744007C92050081022210213042007FB1 +:104A5000034218213C02000A0062182114A0000B36 +:104A60003084FFFF2402000554C20014248205DCB8 +:104A70009062011224420001A062011224020C8003 +:104A8000AF4200240A00127324020005A060011244 +:104A90002402000514C20009248205DC9202008170 +:104AA0002C4200075040000524820A009203008136 +:104AB0002402001400621004008210213044FFFF21 +:104AC000A60400140E00121B022020219602003CB6 +:104AD0008E03004C022020213042FFFF00021040D4 +:104AE000006218210E000250AE03005C9202007DAD +:104AF00002202021344200400E000259A202007D13 +:104B00008F4201F80440FFFE24020002AF5101C0B1 +:104B1000A34201C43C021000AF4201F88FBF00184D +:104B20008FB100148FB0001003E0000827BD0020F3 +:104B300008000ACC08000B1408000B9808000BE4CE +:104B400008000C200A0000280000000000000000FF +:104B50000000000D6370362E322E3300000000007E +:104B60000602030400000000000000000000000036 +:104B70000000000000000000000000000000000035 +:104B80000000000000000000000000000000002005 +:104B90000000000000000000000000000000000015 +:104BA0000000000000000000000000000000000005 +:104BB00000000000000000000000000000000001F4 +:104BC0000000002B000000000000000400030D4066 +:104BD00000000000000000000000000000000000D5 +:104BE00000000000000000001000000300000000B2 +:104BF0000000000D0000000D3C020800244258A4F3 +:104C00003C03080024635F70AC4000000043202B8D +:104C10001480FFFD244200043C1D080037BD7FFCCA +:104C200003A0F0213C100800261000A03C1C080046 +:104C3000279C58A40E0001AC000000000000000DED +:104C400027BDFFE83C096018AFBF00108D2C500055 +:104C5000240DFF7F24080031018D5824356A380C5B +:104C600024070C003C1A8000AD2A50003C04800A46 +:104C7000AF4800083C1B8008AF4700240E00091510 +:104C8000AF8400100E0008D8000000000E000825B8 +:104C9000000000000E001252000000003C046016EC +:104CA0008C8500003C06FFFF3C02535300A61824ED +:104CB0001062004734867C0094C201F2A780002C69 +:104CC00010400003A78000CC38581E1EA798002C67 +:104CD00094C201F810400004978300CC38591E1E7E +:104CE000A79900CC978300CC2C7F006753E000018C +:104CF000240300669784002C2C82040114400002D7 +:104D000000602821240404003C0760008CE904387A +:104D10002403103C3128FFFF1103001F30B9FFFFAF +:104D200057200010A38000CE24020050A38200CEA2 +:104D3000939F00CE53E0000FA78500CCA78000CC46 +:104D4000978500CC8FBF0010A780002CA78000346F +:104D5000A78000E63C010800AC25008003E00008C5 +:104D600027BD0018939F00CE57E0FFF5A78000CC29 +:104D7000A78500CC978500CC8FBF0010A784002C9E +:104D8000A7800034A78000E63C010800AC25008025 +:104D900003E0000827BD0018A38000CE8CCB003CA8 +:104DA000316A00011140000E0000000030A7FFFF33 +:104DB00010E0FFDE240200508CCC00C831860001D8 +:104DC00014C0FFDC939F00CE0A00007A2402005139 +:104DD0008C8F00043C0E60000A00005D01EE302163 +:104DE0008CEF0808240D5708000F740211CD000441 +:104DF00030B8FFFF240500660A00007B240404008D +:104E00001700FFCC939F00CE0A00007A24020050C6 +:104E10008F8600103089FFFF000939408CC30010D5 +:104E20003C08005000E82025AF4300388CC5001432 +:104E300027420400AF82001CAF45003CAF44003065 +:104E40000000000000000000000000000000000062 +:104E50000000000000000000000000000000000052 +:104E60008F4B0000316A00201140FFFD0000000060 +:104E700003E00008000000008F840010948A001AEC +:104E80008C8700243149FFFF000940C000E8302131 +:104E9000AF46003C8C8500248F43003C00A31023C8 +:104EA00018400029000000008C8B002025620001C2 +:104EB0003C0D005035AC0008AF420038AF4C00301C +:104EC00000000000000000000000000000000000E2 +:104ED00000000000000000000000000000000000D2 +:104EE0008F4F000031EE002011C0FFFD00000000D8 +:104EF0008F4A04003C080020AC8A00108F4904044B +:104F0000AC890014AF4800300000000094860018FF +:104F10009487001C00C71821A48300189485001AE8 +:104F200024A20001A482001A9498001A9499001EE9 +:104F3000133800030000000003E000080000000038 +:104F400003E00008A480001A8C8200200A0000DC24 +:104F50003C0D00500A0000CD000000003C0308009A +:104F60008C6300208F82001827BDFFE810620008C4 +:104F7000AFBF00100E000104AF8300183C0308000F +:104F80008C63002024040001106400048F89001049 +:104F90008FBF001003E0000827BD00188FBF00106E +:104FA0003C076012A520000A9528000A34E500108D +:104FB00027BD00183106FFFF03E00008ACA60090F3 +:104FC0003C0208008C42002027BDFFC8AFBF003460 +:104FD000AFBE0030AFB7002CAFB60028AFB500248D +:104FE000AFB40020AFB3001CAFB20018AFB10014D3 +:104FF00010400050AFB000108F840010948600065F +:105000009483000A00C3282330B6FFFF12C0004A71 +:105010008FBF003494890018948A000A012A402323 +:105020003102FFFF02C2382B14E0000202C020212F +:10503000004020212C8C0005158000020080A0215A +:10504000241400040E0000B3028020218F8700107A +:1050500002809821AF80001494ED000A028088211C +:105060001280004E31B2FFFF3C1770003C1540002B +:105070003C1E60008F8F001C8DEE000001D71824AD +:10508000507500500220202102A3802B160000350D +:105090003C182000507800470220202124100001F5 +:1050A0008F83001414600039029158230230F823D2 +:1050B0000250C82133F1FFFF1620FFEE3332FFFF0D +:1050C0008F8700103C110020AF510030000000001D +:1050D00094E6000A3C1E601237D5001002662821B3 +:1050E000A4E5000A94E2000A94F2000A94F400187D +:1050F0003057FFFF1292003BAEB700908CED0014CA +:105100008CE400100013714001AE4021000E5FC31B +:10511000010E502B008B4821012A1821ACE8001405 +:10512000ACE3001002D3382330F6FFFF16C0FFB9FE +:105130008F8400108FBF00348FBE00308FB7002CDB +:105140008FB600288FB500248FB400208FB3001CC9 +:105150008FB200188FB100148FB0001003E0000868 +:1051600027BD0038107E001B000000001477FFCC24 +:10517000241000010E00159B000000008F83001416 +:105180001060FFCB0230F823029158238F87001064 +:10519000017020210A0001973093FFFF8F830014D4 +:1051A0001460FFCB3C110020AF5100300A000163B6 +:1051B000000000000E00077D024028210A00015770 +:1051C000004080210E00033A024028210A000157C6 +:1051D000004080210E001463022020210A000157A4 +:1051E000004080210E0000CD000000000A0001797F +:1051F00002D3382327BDFFE8AFB00010AFBF0014C3 +:105200000E00003F000000003C028000345000709F +:105210000A0001BA8E0600008F4F000039EE00012F +:1052200031C20001104000248F8600A88E070000C4 +:105230003C0C08008D8C003C3C0908008D2900388E +:1052400000E66823018D28210000502100AD302B9D +:10525000012A4021010620213C010800AC25003C28 +:10526000AF8700A83C010800AC2400380E000106FE +:10527000000000003C0308008C6300701060FFE633 +:10528000006020213C0508008CA500683C06080051 +:105290008CC6006C0E00152A000000003C010800BE +:1052A000AC2000708F4F000039EE000131C20001C8 +:1052B0001440FFDE8F8600A88E0A00008F8B00A8A6 +:1052C0003C0508008CA5003C3C0408008C84003898 +:1052D000014B482300A938210082182100E9402B06 +:1052E000006810213C010800AC27003C3C0108008C +:1052F000AC2200388F5F01002419FF0024180C0035 +:1053000003F9202410980012AF840000AF4400205D +:10531000936D0000240C002031A600FF10CC001279 +:10532000240E005010CE00043C194000AF59013843 +:105330000A0001B3000000000E0011C800000000C8 +:105340003C194000AF5901380A0001B300000000C9 +:105350000E00011F000000003C194000AF59013849 +:105360000A0001B3000000008F58010000802821CE +:10537000330F00FF01E020210E0002F1AF8F000487 +:105380003C194000AF5901380A0001B30000000089 +:1053900000A4102B2403000110400009000030215C +:1053A0000005284000A4102B04A0000300031840AF +:1053B0005440FFFC000528405060000A0004182BF0 +:1053C0000085382B54E000040003184200C3302548 +:1053D00000852023000318421460FFF900052842CD +:1053E0000004182B03E0000800C310218F4201B80D +:1053F0000440FFFE00000000AF4401803C031000A9 +:1054000024040040AF450184A3440188A3460189D8 +:10541000A747018A03E00008AF4301B83084FFFFCB +:105420000080382130A5FFFF000020210A00022A59 +:10543000240600803087FFFF8CA40000240600387B +:105440000A00022A000028218F8300388F8600304E +:105450001066000B008040213C07080024E75A1822 +:10546000000328C000A710218C4400002463000121 +:10547000108800053063000F5466FFFA000328C04F +:1054800003E00008000010213C07080024E75A1C34 +:1054900000A7302103E000088CC200003C0390000C +:1054A0003462000100822025AF4400208F45002097 +:1054B00004A0FFFE0000000003E000080000000060 +:1054C0003C038000346200010082202503E00008D4 +:1054D000AF44002027BDFFE0AFB100143091FFFFC3 +:1054E000AFB00010AFBF00181220001300A0802141 +:1054F0008CA2000024040002240601401040000F8A +:10550000004028210E000C5C00000000000010216B +:10551000AE000000022038218FBF00188FB10014A8 +:105520008FB0001000402021000028210000302111 +:105530000A00022A27BD00208CA200000220382188 +:105540008FBF00188FB100148FB0001000402021D1 +:1055500000002821000030210A00022A27BD002077 +:1055600000A010213087FFFF8CA500048C440000B0 +:105570000A00022A2406000627BDFFE0AFB0001093 +:10558000AFBF0018AFB100149363003E00808021CC +:105590000080282130620040000020211040000FD0 +:1055A0008E1100000E000851022020219367000098 +:1055B0002404005030E500FF50A400128E0F0000BC +:1055C000022020218FBF00188FB100148FB000106F +:1055D000A762013C0A00091127BD00200E000287C6 +:1055E000000000000E0008510220202193670000F7 +:1055F0002404005030E500FF14A4FFF20220202113 +:105600008E0F00003C1008008E1000503C0D000C66 +:10561000240BFF8001F05021314E007F01DA602120 +:10562000018D4021014B4824AF4900280220202150 +:105630008FBF00188FB100148FB00010A50200D6E4 +:1056400027BD00200A000911AF8800D027BDFFE068 +:10565000AFBF0018AFB10014AFB0001093660001E7 +:10566000008080210E00025630D1000493640005B2 +:10567000001029C2A765000034830040A363000521 +:105680000E00025F020020210E00091302002021FB +:1056900024020001AF62000C02002821A762001062 +:1056A00024040002A762001224060140A76200142D +:1056B0000E000C5CA76200161620000F8FBF0018AA +:1056C000978C00343C0B08008D6B00782588FFFF19 +:1056D0003109FFFF256A0001012A382B10E000067E +:1056E000A78800343C0F6006240E001635ED00102C +:1056F000ADAE00508FBF00188FB100148FB00010F6 +:1057000003E0000827BD002027BDFFE0AFB1001473 +:10571000AFBF0018AFB0001000A088211080000AB1 +:105720003C03600024020080108200120000000090 +:105730000000000D8FBF00188FB100148FB0001053 +:1057400003E0000827BD00208C682BF80500FFFE51 +:1057500000000000AC712BC08FBF00188FB1001487 +:105760008FB000103C09100027BD002003E00008A6 +:10577000AC692BF80E00025600A0202193650005AD +:10578000022020210E00025F30B000FF2403003E03 +:105790001603FFE7000000008F4401780480FFFE3D +:1057A000240700073C061000AF51014002202021D1 +:1057B000A34701448FBF00188FB100148FB00010B1 +:1057C000AF4601780A0002C227BD002027BDFFE8CE +:1057D000AFBF0014AFB000108F50002000000000D9 +:1057E0000E000913AF440020AF5000208FBF0014FB +:1057F0008FB0001003E0000827BD00183084FFFFC1 +:10580000008038212406003500A020210A00022A49 +:10581000000028213084FFFF008038212406003654 +:1058200000A020210A00022A0000282127BDFFD065 +:10583000AFB3001C3093FFFFAFB50024AFB2001828 +:10584000AFBF0028AFB40020AFB10014AFB000105C +:1058500030B5FFFF12600027000090218F90001CE0 +:105860008E0300003C0680002402004000033E023C +:1058700000032C0230E4007F006688241482001D9F +:1058800030A500FF8F8300282C68000A510000100B +:105890008F910014000358803C0C0800258C56940E +:1058A000016C50218D49000001200008000000001B +:1058B00002B210213045FFFF0E000236240400849E +:1058C000162000028F90001CAF8000288F910014DA +:1058D000260C002026430001018080213072FFFF4A +:1058E00016200004AF8C001C0253502B1540FFDC27 +:1058F00000000000024010218FBF00288FB5002457 +:105900008FB400208FB3001C8FB200188FB1001429 +:105910008FB0001003E0000827BD0030240E0034D3 +:1059200014AE00F9000000009203000E241F168040 +:105930003C07000CA36300219202000D0347C8211D +:105940003C066000A3620020961100123C0A7FFF13 +:10595000354CFFFFA771003C960B00102403000597 +:105960003168FFFFAF6800848E05001CAF5F002820 +:105970008F3800008CC4444803057826008F3021FE +:10598000AF66004C8F69004C24CE00013C057F00BF +:10599000AF6900508F740050AF740054AF66007050 +:1059A000AF6E00588F6D005824140050AF6D005C2E +:1059B000A3600023AF6C0064A36300378E02001461 +:1059C000AF6200488F710048AF7100248E0B001841 +:1059D000AF6B006C9208000CA3680036937F003E0A +:1059E00037F90020A379003E8F78007403058024E6 +:1059F000360F4000AF6F007493640000308900FFE1 +:105A0000513402452404FF803C04080024845A9841 +:105A10000E00028D000000003C1008008E105A9805 +:105A20000E00025602002021240600042407000173 +:105A3000A366007D020020210E00025FA36700051F +:105A40008F5F017807E0FFFE240B0002AF5001409A +:105A5000A34B01448F90001C3C081000AF48017814 +:105A60000A000362AF8000282CAD003751A0FF98D8 +:105A70008F9100140005A0803C180800271856BC20 +:105A8000029878218DEE000001C00008000000009F +:105A90002418000614B80011000000003C0808009B +:105AA0008D085A9824040005AF4800208E1F001866 +:105AB000AF7F00188F79004CAF79001C8F650050C4 +:105AC000122000C0AF6500700A000362AF84002896 +:105AD0002406000710A60083240300063C050800E6 +:105AE00024A55A980E000264240400818F90001CA3 +:105AF0000011102B0A000362AF8200282407000463 +:105B000014A7FFF6240500503C1808008F185A9877 +:105B1000AF5800208E0F0008AF6F00408E090008BC +:105B2000AF6900448E14000CAF7400488E0E001054 +:105B3000AF6E004C8E0D0010AF6D00848E0A001405 +:105B4000AF6A00508E0C0018AF6C00548E04001C1D +:105B5000AF64005893630000306B00FF116501D8FB +:105B6000000000008F7400488F6900400289702394 +:105B700005C000042404008C1620FFDE240200036C +:105B8000240400823C05080024A55A980E000287D0 +:105B9000000000008F90001C000010210A0003622A +:105BA000AF820028240F000514AFFFCC240520008D +:105BB0003C0708008CE75A98AF4700208E06000487 +:105BC000AF66005C9208000824100008A36800215A +:105BD0008F9F001C93F90009A37900208F86001C79 +:105BE00090D8000A330400FF10900011000000005C +:105BF0002885000914A0006924020002240A00205C +:105C0000108A000B34058000288D002115A00008A3 +:105C100024054000240E0040108E00053C050001C4 +:105C200024140080109400023C050002240540006A +:105C30008F7800743C19FF00031980240205782531 +:105C4000AF6F007490C4000BA36400818F84001CAC +:105C50009489000C11200192000000009490000C27 +:105C60002406FFBF24050004A770003C908F000E9F +:105C7000A36F003E8F84001C9089000FA369003F32 +:105C80008F8B001C8D6E00108F54007401D468231C +:105C9000AF6D00608D6A0014AF6A0064956C0018E7 +:105CA000A76C00689563001AA763006A8D62001CE8 +:105CB000AF62006C9167000EA367003E9368003EE0 +:105CC0000106F8241220014BA37F003E8F90001C98 +:105CD0000A000362AF8500282407002214A7FF7F73 +:105CE000240300073C0B08008D6B5A981220000C0F +:105CF000AF4B00200A000362AF830028240C00335E +:105D000010AC0014240A00283C05080024A55A9869 +:105D10000E00023C240400810A0003EB8F90001C5B +:105D20003C04080024845A980E00028D00000000F4 +:105D30009363000024110050306200FF10510135C0 +:105D4000000000008F90001C000018210A00036270 +:105D5000AF8300283C0D08008DAD5A9824040081C3 +:105D6000AF4D00203C05080024A55A980E00023CC7 +:105D7000A36A00348F90001C240200090A00036209 +:105D8000AF82002802B288213225FFFF0E000236C2 +:105D9000240400840A0003628F90001C1082FFA478 +:105DA00024050400288B000311600170240C0004FA +:105DB000240300015483FF9E240540000A00043B95 +:105DC000240501003C04080024845A988F62004C8A +:105DD0000E00028D8F6300508F90001C0000202168 +:105DE0000A000362AF8400288E1000042404008A95 +:105DF000AF50002093790005333800021700015F8F +:105E0000020028219368002302002821311F00206E +:105E100017E0015A2404008D9367003F2406001206 +:105E200030E200FF10460155240400810E000256A6 +:105E30000200202193630023240500040200202196 +:105E4000346B0042A36B00230E00025FA365007D4C +:105E50008F4401780480FFFE240A0002AF50014005 +:105E6000A34A01448F90001C3C0C1000AF4C0178F9 +:105E70000A0003EC0011102B8E1000042404008A89 +:105E8000AF500020936E000531CD000215A0001622 +:105E900002002821936F003F2414000402002821EF +:105EA00031E900FF11340010240400810E00025675 +:105EB000020020219362002324080012241FFFFE09 +:105EC00034460020A3660023A368003F93790005B1 +:105ED00002002021033FC0240E00025FA3780005CA +:105EE00002002821000020210E00033400000000E1 +:105EF0000A0003EB8F90001C8E1000043C03000886 +:105F00000343A021AF500020928B000024050050D5 +:105F1000316400FF10850161240700880200202100 +:105F2000000028210E00022A2406000E928D000097 +:105F3000240EFF800200282101AE8025A2900000DF +:105F4000240400040E000C5C240600300A0003EB5D +:105F50008F90001C8E0800043C14080026945A9868 +:105F60003C010800AC285A98AF480020921F00035B +:105F700033F9000413200002240200122402000658 +:105F8000A362003F920B001B2404FFC03165003F59 +:105F900000A43825A367003E9206000330C200012A +:105FA00014400132000000008E020008AE8200089A +:105FB0003C0208008C425AA010400131000249C244 +:105FC000A76900088E14000C240C0001240300149F +:105FD000AF74002C8E0E0010AF6E0030960D0016C0 +:105FE000A76D0038960A0014A76A003AAF6C000C3F +:105FF000A76C0010A76C0012A76C0014A76C001609 +:1060000012200136A3630034920F000331F0000226 +:106010002E1100018F90001C262200080A00036246 +:10602000AF8200288E0400043C0E0008034E30218D +:10603000AF4400208E05000890CD0000240C0050D5 +:1060400031AA00FF114C00862407008824060009AD +:106050000E00022A000000000A0003EB8F90001CD3 +:106060008E04001C0E00024100000000104000F4ED +:10607000004050218F89001C240700890140202105 +:106080008D25001C240600010E00022A00000000DD +:106090000A0003EB8F90001C960D00023C140800D0 +:1060A00026945A9831AA0004514000B83C10600070 +:1060B0008E0E001C3C010800AC2E5A98AF4E0020FA +:1060C000920700102408001430E200FF144800D6A4 +:1060D00000000000960B00023163000114600165AE +:1060E000000000008E020004AE8200083C1408008C +:1060F0008E945AA01280015B000000008F7400741F +:106100003C0380002404000102835825AF6B007417 +:10611000A3600005AF64000C3C0708008CE75AA0A0 +:106120008F86001CA7640010000711C2A76400122C +:10613000A7640014A7640016A76200088CC80008B2 +:1061400024040002AF68002C8CC5000CAF65003041 +:1061500090DF0010A37F00348F99001C9330001152 +:10616000A37000358F98001C930F0012A36F0036A8 +:106170008F89001C912E0013A36E00378F90001C96 +:10618000960D0014A76D0038960A0016A76A003A0B +:106190008E0C0018AF6C00245620FDCCAF84002874 +:1061A0003C05080024A55A980E0002640000202136 +:1061B0008F90001C0A0004A7000020218E1000040C +:1061C00024070081AF500020936900233134001070 +:1061D000128000170000000002002021000028218A +:1061E0002406001F0E00022A000000000A0003EB34 +:1061F0008F90001C3C05080024A55A980E000287C9 +:10620000240400828F90001C000028210A000362F1 +:10621000AF8500283C0408008C845A980E0014E8CE +:10622000000000008F90001C0A000482000018216A +:106230000E00025602002021937800230200202144 +:10624000370F00100E00025FA36F002300003821FB +:1062500002002021000028210A0005A82406001FB2 +:10626000920F000C31E90001112000030000000032 +:106270009618000EA4D8002C921F000C33F90002CF +:1062800013200005000038218E0200149608001229 +:10629000ACC2001CA4C8001A0A0005432406000969 +:1062A0003C05080024A55A980E0002872404008BA0 +:1062B0008F90001C0011282B0A000362AF85002874 +:1062C000AF6000843C0A08008D4A5A983C0D0800D3 +:1062D0008DAD0050240CFF803C02000C014D1821B4 +:1062E000006C2024AF4400288E070014306B007F20 +:1062F000017A282100A2C821AF2700D88E060014F9 +:10630000AF9900D0AF2600DC8E080010251FFFFEDD +:106310000A000408AF3F01083C0508008CA55A9804 +:106320003C1908008F39005024CCFFFE00B9C02171 +:1063300003047824AF4F00283C1408008E945A9828 +:106340003C0908008D2900500289702131CD007F61 +:1063500001BA502101478021AE0600D8AF9000D08D +:10636000AE0000DC0A0003B1AE0C0108548CFE3014 +:10637000240540000A00043B240510000E00032EF3 +:10638000000000000A0003EB8F90001C8E0F442CCD +:106390003C186C62370979703C010800AC205A98AF +:1063A00015E9000824050140979F00349786002CCA +:1063B0000280282103E6C82B132000112404009238 +:1063C000240501400E000C7A240400023C01080060 +:1063D000AC225A98AF4200203C0508008CA55A9880 +:1063E00010A00005240400830E00084500000000F2 +:1063F00010400009240400833C05080024A55A9895 +:106400000E000264000000008F90001C0011202B81 +:106410000A000362AF8400280E0008490000000053 +:106420000A00055F8F90001C0E00084D0000000060 +:106430003C05080024A55A980A00062F2404008B66 +:10644000240400040E000C7A240500301440002AB5 +:10645000004050218F89001C240700830140202127 +:106460008D25001C0A000551240600018E04000839 +:106470000E000241000000000A00051BAE82000869 +:106480003C05080024A55A980E00023C240400870D +:106490008F90001C0A0005360011102B8F830038E6 +:1064A0008F8600301066FE9D000038213C070800F2 +:1064B00024E75A1C000320C0008728218CAC000070 +:1064C00011900061246A00013143000F5466FFFA05 +:1064D000000320C00A0004F6000038213C05080033 +:1064E00024A55A980E000287240400828F90001C75 +:1064F0000A000536000010213C0B0008034B202148 +:106500002403005024070001AF420020A0830000B4 +:10651000A08700018F82001C90480004A08800180A +:106520008F85001C90A60005A08600198F9F001C77 +:1065300093F90006A099001A8F90001C921800078A +:10654000A098001B8F94001C928F0008A08F001C45 +:106550008F89001C912E0009A08E001D8F8D001CBC +:1065600091AC000AA08C001E8F8B001C3C0C080014 +:10657000258C5A1C9163000B3C0B0800256B5A18A4 +:10658000A083001F8F87001C90E8000CA0880020CB +:106590008F82001C9045000D24024646A0850021F4 +:1065A0008F86001C90DF000EA09F00228F99001C98 +:1065B0009330000FA09000238F98001C93140010BC +:1065C000A09400248F8F001C91E90011A089002560 +:1065D0008F89001C8F8E00308F900038952D00140D +:1065E000000E18C025C80001A48D002895270016AC +:1065F000006C3021006BC821A487002A9525001863 +:106600003108000FA485002CA482002E8D3F001CB1 +:10661000ACCA0000AF88003011100006AF3F000088 +:10662000000038218D25001C014020210A00055161 +:1066300024060001250C00013184000F00003821E0 +:106640000A0006B8AF8400383C07080024E75A184F +:106650000087302100003821ACA000000A0004F6B9 +:10666000ACC000003C05080024A55A980A00062F7B +:10667000240400878E0400040E0002410000000084 +:106680000A00056AAE8200083084FFFF30C600FFB2 +:106690008F4201B80440FFFE00064400010430258B +:1066A0003C07200000C720253C031000AF400180BC +:1066B000AF450184AF44018803E00008AF4301B84F +:1066C00027BDFFE8AFB00010AFBF00143C0760006B +:1066D000240600021080000600A080210010102B6C +:1066E0008FBF00148FB0001003E0000827BD001812 +:1066F0003C09600EAD2000348CE5201C8F82001C0C +:106700002408FFFC00A81824ACE3201C0E0006D1CE +:106710008C45000C0010102B8FBF00148FB00010A0 +:1067200003E0000827BD00183C02600E344701005A +:1067300024090018274A040000000000000000009F +:10674000000000003C06005034C30200AF44003893 +:10675000AF45003CAF430030014018218F4B000093 +:10676000316800201100FFFD2406007F2408FFFF90 +:106770008C6C000024C6FFFF24630004ACEC000016 +:1067800014C8FFFB24E70004000000000000000024 +:10679000000000003C0F0020AF4F00300000000060 +:1067A00024AD020001A5702B2529FFFF008E2021BA +:1067B0001520FFE101A0282103E0000800000000EF +:1067C00027BDFFE0AFB10014AFBF0018AFB000109D +:1067D0003C05600E8CA20034008088211440000625 +:1067E0003C0460008C87201C2408FFFC00E8302457 +:1067F00034C30001AC83201C8F8B001C24090001D2 +:10680000ACA90034956900028D6500148D70000CF0 +:106810002D2400818D6700048D660008108000071C +:106820008D6A00102D2C00041580000E30CE00075C +:10683000312D000311A0000B000000002404008B88 +:10684000020028210E0006D1240600030011102B9F +:106850008FBF00188FB100148FB0001003E0000844 +:1068600027BD002015C0FFF62404008B3C03002048 +:10687000AF4300300000000024020001AF8200148A +:106880000000000000000000000000003C1F01505C +:10689000013FC825253800033C0F600EAF47003884 +:1068A00000181882AF46003C35E8003CAF59003074 +:1068B000274704008F4400003086002010C0FFFDF1 +:1068C00000000000106000082466FFFF2403FFFFA3 +:1068D0008CEB000024C6FFFF24E70004AD0B000092 +:1068E00014C3FFFB250800043C08600EAD09003806 +:1068F0000000000000000000000000003C07002035 +:10690000AF470030000000000E0006F901402021D2 +:1069100002002821000020210E0006D124060003D9 +:106920000011102B8FBF00188FB100148FB0001012 +:1069300003E0000827BD002027BDFFE0AFB200182C +:106940003092FFFFAFB10014AFBF001CAFB000101A +:106950001640000D000088210A0007AA022010211D +:1069600024050001508500278CE5000C0000000D77 +:10697000262300013071FFFF24E200200232382B71 +:1069800010E00019AF82001C8F8200141440001622 +:106990008F87001C3C0670003C0320008CE5000043 +:1069A00000A62024148300108F84003C00054402BC +:1069B0003C09800000A980241480FFE9310600FF13 +:1069C0002CCA00095140FFEB262300010006688015 +:1069D0003C0E080025CE579801AE60218D8B00003B +:1069E0000160000800000000022010218FBF001C81 +:1069F0008FB200188FB100148FB0001003E00008B0 +:106A000027BD00200E0006D1240400841600FFD804 +:106A10008F87001C0A00078BAF80003C90EF0002BC +:106A200000002021240600090E0006D1000F2E00D0 +:106A30008F87001C0010102B0A00078BAF82003CD0 +:106A4000020028210E0006DF240400018F87001CAD +:106A50000A00078BAF82003C020028210E0006DFEF +:106A6000000020210A0007C38F87001C0E00071FAB +:106A7000020020210A0007C38F87001C30B0FFFFEF +:106A8000001019C08F5801B80700FFFE3C1F2004FA +:106A90003C191000AF430180AF400184AF5F018813 +:106AA000AF5901B80A00078C262300013082FFFF8E +:106AB00014400003000018210004240224030010E5 +:106AC000308500FF14A000053087000F2466000801 +:106AD0000004220230C300FF3087000F14E00005DD +:106AE000308900032468000400042102310300FF00 +:106AF0003089000315200005388B0001246A00024C +:106B000000042082314300FF388B00013164000112 +:106B100010800002246C0001318300FF03E00008B4 +:106B200000601021308BFFFF000B394230E600FF80 +:106B30003C09080025295998000640800109602178 +:106B40008D8700003164001F240A0001008A1804A8 +:106B500030A500FF00E3202514A000020003102749 +:106B600000E22024240F000100CF700401096821F5 +:106B7000000E282714800005ADA400008F86000CAD +:106B800000A6102403E00008AF82000C8F88000CE0 +:106B900001C8102503E00008AF82000C3C06001F6E +:106BA0003C0360003084FFFF34C5FF8024020020D6 +:106BB000AC602008AC60200CAC602010AC652014E8 +:106BC000AC642018AC62200000000000000000004F +:106BD00003E000080000000027BDFFE82402FFFFDB +:106BE000AFBF0010AF82000C000020213C0608005F +:106BF00024C659982405FFFF248900010004408021 +:106C00003124FFFF010618212C87002014E0FFFA31 +:106C1000AC6500000E0008160000202124020001CF +:106C20003C04600024050020AC822018AC852000C4 +:106C3000000000000000000000000000244A0001E5 +:106C40003142FFFF2C46040014C0FFF78FBF001035 +:106C500003E0000827BD00188F8300082C620400A1 +:106C600003E00008384200018F830008246200011D +:106C700003E00008AF8200088F8300082462FFFF52 +:106C800003E00008AF82000827BDFFE0AFB10014A9 +:106C9000AFBF0018AFB000108F6B00303C06600033 +:106CA00000808821ACCB20088F6A002C3C02800039 +:106CB00024030008ACCA200C9769003A9768003892 +:106CC00000092C003107FFFF00A72025ACC42010CD +:106CD000ACC22014ACC32000000000000000000083 +:106CE000000000003C0360008C6D200031AC000807 +:106CF0001580FFF9000000008C6E201405C00020F4 +:106D0000000000000E0007DA8F84000C00024080B3 +:106D10003C09080025295998010938218CE4000014 +:106D20000E0007DA00028140020220213090FFFFAE +:106D3000020020210E0007F8000028213C0C8000F2 +:106D4000022C58253210FFFF3C116000240A00205D +:106D5000AE2B2014AE302018AE2A20000000000018 +:106D60000000000000000000020010218FBF00188A +:106D70008FB100148FB0001003E0000827BD002081 +:106D80008C6620143C02001F3443FF803C1FFFE848 +:106D900000C3C02437F9080003198021001079C20C +:106DA0003C0C8000022C582531F0FFFF3C116000A4 +:106DB000240A0020AE2B2014AE302018AE2A20006A +:106DC0000000000000000000000000000200102190 +:106DD0008FBF00188FB100148FB0001003E00008BF +:106DE00027BD002027BDFFE8AFB000103402FFFF31 +:106DF0003090FFFFAFBF00141202000602002021F6 +:106E00000E00081600000000020020210E0007F806 +:106E1000240500018F8400088FBF00148FB000107C +:106E20002483FFFF27BD001803E00008AF8300089C +:106E3000000439C230E6003F00043B42000718401E +:106E4000240210002CC4002024C8FFE0AF42002C14 +:106E5000246300011480000330A900FF00071840DC +:106E6000310600FF0003608024080001019A5821C8 +:106E70003C0A000E00C82804016A382111200005D0 +:106E8000000530278CE900000125302503E00008CB +:106E9000ACE600008CEE000001C6682403E00008A8 +:106EA000ACED000027BDFFE8AFBF0014AFB000108D +:106EB0003C0460008C8508083403F00030A2F00028 +:106EC00050430006240200018C8708083404E000C7 +:106ED00030E6F00010C4001E24020002AF82004021 +:106EE0003C1060003C0A0200AE0A0814240910009D +:106EF0003C08000E8E03440003482021AF49002CBB +:106F0000240501200E000CC0000030218F830040BA +:106F1000106000043C021691240B0001106B000E5F +:106F20003C023D2C344F0090AE0F44088FBF00143C +:106F30008FB000103C0C6000240E10003C0D0200CD +:106F400027BD0018AD8E442003E00008AD8D081069 +:106F50000A0008E7AF8000403C0218DA344F009086 +:106F6000AE0F44088FBF00148FB000103C0C6000BF +:106F7000240E10003C0D020027BD0018AD8E4420E9 +:106F800003E00008AD8D08100A0008BB24050001CD +:106F90000A0008BB000028213C08080025085DA461 +:106FA0002404FFFF010018212402001E2442FFFFD9 +:106FB000AC6400000441FFFD246300043C070800AA +:106FC00024E75E208CE5FFFC2404001C240600015D +:106FD000308A001F0146480424840001000910275C +:106FE0002C8300201460FFFA00A22824ACE5FFFCEB +:106FF0003C05666634A4616E3C06080024C65EE06B +:10700000AF840058AF88009C2404FFFF00C0182103 +:107010002402001F2442FFFFAC6400000441FFFD76 +:10702000246300043C0766663C05080024A55EA0B6 +:10703000AF86004834E6616EAF8600982404FFFFF7 +:1070400000A018212402000F2442FFFFAC640000BE +:107050000441FFFD246300043C0B66663C06080007 +:1070600024C65E203568616EAF8500A4AF880070CD +:107070002404FFFF00C018212402001F2442FFFF48 +:10708000AC6400000441FFFD246300043C0D66660F +:107090003C0A0800254A5F6035AC616EAF860090FF +:1070A000AF8C005C2404FFFF014018212402000380 +:1070B0002442FFFFAC6400000441FFFD2463000490 +:1070C0003C09080025295F708D27FFFC2404000679 +:1070D000240500013099001F0325C0042484000109 +:1070E000001878272C8E002015C0FFFA00EF3824F6 +:1070F000AD27FFFC3C09666624030400240403DC7E +:1071000024050200240600663522616E3C08080052 +:1071100025085AA4AF820074AF830044AF83006C8B +:10712000AF830050AF830084AF8A008CAF840064CB +:10713000AF85004CAF860054AF840078AF85006007 +:10714000AF86008001001821240200022442FFFFC4 +:10715000AC6000000441FFFD24630004240400032C +:107160002403000C3C0A0800254A5AB0AF8A006884 +:107170000A00098E2405FFFF000418802484000102 +:10718000006858212C8700C014E0FFFBAD650000AB +:107190003C0E666635CD616E240C17A024081800DD +:1071A000AF8D0088AF8C009403E00008AF88007CAE +:1071B0002484007F000421C200004021000030210F +:1071C00000003821000028210A0009A5AF8400A092 +:1071D0001060000624E7000100C4302124A500014E +:1071E0002CC20BF51440FFFA2CA300663C090800E2 +:1071F00025295F6001201821240200032442FFFF9B +:10720000AC6000000441FFFD2463000410E0001A9C +:1072100024E3FFFF0003294210A0000A0000202100 +:107220002406FFFF3C03080024635F602484000100 +:107230000085502BAC660000250800011540FFFBBF +:107240002463000430E2001F10400008000868803A +:10725000240C0001004C38040008588001692821E2 +:1072600024E6FFFF03E00008ACA6000001A94021CE +:107270002409FFFFAD09000003E000080000000042 +:10728000AF4400283C04000C034420210005288260 +:107290000A000CC000003021000421803C03600083 +:1072A000AC6410080000000000052980AC65100CDB +:1072B0000000000003E000088C62100C27BDFFE80E +:1072C0000080282124040038AFBF00140E0009D527 +:1072D000AFB0001024040E00AF4400283C10000C96 +:1072E00003502021240500100E000CC000003021A6 +:1072F00003501021AC400000AC40000424040038CE +:107300008FBF00148FB0001024053FFF27BD001869 +:107310000A0009D58C430000000421803C03600072 +:10732000AC641008000000008C62100C03E0000840 +:107330000002118227BDFFC8AFB400208F940068FF +:10734000AFBE0030AFB7002CAFB600280000B821A8 +:107350000080B021241E00C0AFBF0034AFB50024B0 +:10736000AFB3001CAFB20018AFB10014AFB0001043 +:107370000A000A12AFA5003C504000018F9400683B +:1073800027DEFFFF13C00028269400048E92000021 +:107390003C03080024635DA01240FFF70283102B1A +:1073A0003C04080024845AA4028410230002A8C0CC +:1073B000000098210A000A212411000100118840D0 +:1073C000122000260000000002B380210251282470 +:1073D0000200202110A0FFF9267300010E0009DE33 +:1073E000000000000016684032EC000101AC2021D2 +:1073F0000E0009D5020028218F89009426F700018C +:107400008FA6003C3AEB0001316A00012528FFFFFE +:107410000011382702CAB021AF88009416E6FFE7B2 +:1074200002479024AE92000002E010218FBF00348A +:107430008FBE00308FB7002C8FB600288FB5002488 +:107440008FB400208FB3001C8FB200188FB10014CE +:107450008FB0001003E0000827BD00383C0E080084 +:1074600025CE5DA0028E102B0A000A0DAE92000000 +:1074700027BDFFD8AFB10014AFB00010AFBF0020E0 +:10748000AFB3001CAFB2001800A0882110A0001FED +:10749000000480403C13080026735AA40A000A5ACC +:1074A0002412000112200019261000010E0009F517 +:1074B00002002021000231422444FFA0000618806F +:1074C0003045001F2C8217A1007318212631FFFFC1 +:1074D0001040FFF400B230048C690000020020214B +:1074E00024053FFF012640241500FFEE0126382524 +:1074F0000E0009D5AC6700008F8A009426100001A9 +:10750000254700011620FFE9AF8700948FBF0020B8 +:107510008FB3001C8FB200188FB100148FB0001011 +:1075200003E0000827BD00288F85009C00805821BB +:107530000000402100004821240A001F3C0C0800E4 +:10754000258C5E1C3C0D080025AD5DA48CA60000BA +:1075500050C000140000402100AD1023000238C0CC +:10756000240300010A000A930000202115000003F3 +:1075700000E410212448202400004821252900018E +:10758000512B00132506DFDC106000062484000167 +:1075900000C3702415C0FFF5000318400A000A91CB +:1075A0000000402110AC002624A300040060282124 +:1075B000254AFFFF1540FFE5AF85009C512B0004D5 +:1075C0002506DFDC0000402103E000080100102157 +:1075D0000006614230C5001F000C50803C070800C7 +:1075E00024E75DA424040001014730211120000F8D +:1075F00000A420043C05080024A55E20148000059A +:107600002529FFFF24C6000410C50011000000005A +:10761000240400018CCF00000004C0270004204097 +:1076200001F868241520FFF5ACCD00008F99007893 +:1076300001001021032B482303E00008AF890078E4 +:107640003C05080024A55DA40A000A9B0000402117 +:107650003C06080024C65DA40A000AB42404000104 +:10766000308800FF240200021102000A24030003F4 +:107670001103005C8F8900A4240400041104005F3E +:1076800024050005110500670000182103E000082B +:10769000006010218F8900483C0C0800258C5EE0BA +:1076A0003C04080024845F60240300201060000F65 +:1076B00000005821240D0002240E00033C0F080096 +:1076C00025EF5EE08D27000014E0000B30F9FFFF8E +:1076D000252900040124C02B53000001018048210A +:1076E0002463FFFF5460FFF88D270000016018211C +:1076F00003E0000800601021132000323C0500FF69 +:1077000030E200FF004030211040004200005021D4 +:1077100024050001000020210005C84000A6C02467 +:1077200017000003332500FF14A0FFFB2484000191 +:10773000012CC023001828C000AA6021008C502111 +:107740003144001F240C0001008C18040003102792 +:1077500000E23024110D0041AD260000110E004C56 +:10776000000A1840110D00368F87006C510E00562C +:107770008F8C0060240D0004110D005A8F8E008440 +:10778000240E0005150EFFDA01601821240B1430B9 +:1077900011400006000018218F8400A0246300011E +:1077A000006A402B1500FFFD016458218F8A00807C +:1077B000AF89008C016018212549FFFF0A000AEB00 +:1077C000AF89008000E52024000736021080FFD03A +:1077D000240A001800075402314600FF0A000AF389 +:1077E000240A00103C0C0800258C5EA03C04080014 +:1077F00024845EE00A000ADA240300103C0C08002E +:10780000258C5E203C04080024845EA00A000AD96E +:107810008F89009000071A02306600FF0A000AF301 +:10782000240A00088F89008C3C0C0800258C5F60BE +:107830003C04080024845F700A000ADA2403000470 +:10784000000A4080250B003024E6FFFF016018216C +:10785000AF8900480A000AEBAF86006C000AC982B3 +:10786000001978803C07080024E75EA001E720218A +:10787000000A18428C8F00003079001F032C380456 +:107880000007C02701F860240A000B08AC8C000038 +:10789000000331420006288000AF28213062001F1B +:1078A0008CB8000024630001004CC804000321428E +:1078B000001938270004108003073024004F2021CE +:1078C0000A000B4CACA60000000A68C025AB0032D1 +:1078D000258AFFFF01601821AF8900A40A000AEB86 +:1078E000AF8A0060254B1030AF89009001601821ED +:1078F00025C9FFFF0A000AEBAF8900843086000724 +:107900002CC2000610400014000000000006408059 +:107910003C030800246357BC010338218CE40000B9 +:1079200000800008000000002409000310A9000ED8 +:1079300000000000240A000510AA000B000000004F +:10794000240B000110AB0008000000008F8C00A089 +:1079500010AC00050000000003E00008000010214A +:107960000A000A7900A020210A000AC700C02021CD +:1079700027BDFFE8308400FF240300021083000BC2 +:10798000AFBF0010240600031086003A240800044C +:1079900010880068240E0005108E007F2CAF143074 +:1079A0008FBF001003E0000827BD00182CA2003094 +:1079B0001440FFFC8FBF001024A5FFD0000531C28A +:1079C000000668803C07080024E75EE001A730213C +:1079D0008CC900000005288230AC001F240B000178 +:1079E000018B50048F840048012A4025ACC8000058 +:1079F0008C83000050600001AF8600488F98006CB7 +:107A000030AE000124A6FFFF270F000115C00002C1 +:107A1000AF8F006C24A600010006414200082080C0 +:107A2000008718218C79000030C2001F2406000155 +:107A30000046F804033F382410E0FFDA8FBF00103F +:107A40000005C182001870803C0F080025EF5EA081 +:107A500001CF48218D2B00000005684231A5001F91 +:107A600000A66004016C502527BD001803E0000843 +:107A7000AD2A00002CA7003014E0FFCA8FBF001011 +:107A800030B900071723FFC724A8FFCE00086A02F9 +:107A9000000D60803C0B0800256B5EA0018B30213F +:107AA0008CC40000000828C230AA001F240800016E +:107AB000014848048F8200A400891825ACC3000047 +:107AC0008C5F000053E00001AF8600A40005704009 +:107AD000000E7942000F28803C04080024845EE0F8 +:107AE00000A418218C6B000025DF000131CD001FA0 +:107AF000001F514201A86004016C4825000A108053 +:107B0000AC690000004428218CA600008F9800601A +:107B100033F9001F8FBF00100328380400C77825F1 +:107B2000270E000127BD0018ACAF000003E00008DD +:107B3000AF8E006024A5EFD02CB804001300FF998D +:107B40008FBF001000053142000658803C0A080033 +:107B5000254A5E20016A30218CC4000030A3001F3A +:107B600024090001006910048F9900900082F82513 +:107B7000ACDF00008F27000050E00001AF860090CE +:107B80008F8D00848FBF001027BD001825AC000129 +:107B900003E00008AF8C008415E0FF828FBF001067 +:107BA0008F8600A0000610400046F821001F21002B +:107BB00003E4C8210019384024F8143000B8402BE1 +:107BC0001100FF788FBF001024A4EBD00E00021329 +:107BD00000C0282100027942000F70803C0D08008F +:107BE00025AD5F6001CD20218C8B0000304C001F43 +:107BF00024060001018618048F89008C016350253A +:107C0000AC8A00008D25000050A00001AF84008CDC +:107C10008F9800808FBF001027BD00182708000133 +:107C200003E00008AF88008030A5000724030003AC +:107C300010A3001028A2000414400008240700022A +:107C40002403000410A300152408000510A8000F49 +:107C50008F8500A003E000080000000014A7FFFDCE +:107C60000080282114C3FFFB240400020A000B8BB0 +:107C700000000000240900050080282110C9FFFB36 +:107C80002404000303E000080000000014C5FFF115 +:107C9000008028210A000B8B24040005240A00011F +:107CA0000080282110CAFFF12404000403E000082A +:107CB0000000000027BDFFE0AFB00010000581C24A +:107CC0002603FFD024C5003F2C6223D024C6007FAA +:107CD000AFB20018AFB10014AFBF001C309100FF6D +:107CE000000691C2000529820200202110400008F0 +:107CF0002403FFFF0E000A4B0000000002002021B9 +:107D0000022028210E000C390240302100001821E9 +:107D10008FBF001C8FB200188FB100148FB00010FD +:107D20000060102103E0000827BD002027BDFFD818 +:107D300024A2007FAFB3001CAFB20018000299C2AA +:107D4000309200FF24A3003F02402021026028213E +:107D5000AFB10014AFB00010AFBF00200E000B6E2B +:107D60000003898200408021004020210220282138 +:107D700014400009000018218FBF00208FB3001CA1 +:107D80008FB200188FB100148FB000100060102166 +:107D900003E0000827BD00280E0009FC00000000D9 +:107DA00000402821020020211051FFF3001019C0CB +:107DB0000E000A4B00000000020020210240282192 +:107DC0000E000C39026030218FBF00208FB3001CE1 +:107DD0008FB200188FB100148FB00010000018216E +:107DE0000060102103E0000827BD00283084FFFF59 +:107DF00030A5FFFF1080000700001821308200012D +:107E00001040000200042042006518211480FFFB8E +:107E10000005284003E000080060102110C00007A2 +:107E2000000000008CA2000024C6FFFF24A500046F +:107E3000AC82000014C0FFFB2484000403E00008AF +:107E40000000000010A0000824A3FFFFAC86000083 +:107E500000000000000000002402FFFF2463FFFF79 +:107E60001462FFFA2484000403E00008000000000C +:107E700030A5FFFF8F4201B80440FFFE3C076015AC +:107E800000A730253C031000AF440180AF400184BF +:107E9000AF46018803E00008AF4301B88F8500D0EA +:107EA0002C864000008018218CA700840087102BAE +:107EB00014400010000000008CA800842D06400033 +:107EC00050C0000F240340008CAA0084008A482B75 +:107ED000512000018CA3008400035A42000B208033 +:107EE0003C05080024A558200085182103E000085F +:107EF0008C62000014C0FFF4000000002403400066 +:107F000000035A42000B20803C05080024A558209D +:107F10000085182103E000088C6200008F8300D0E8 +:107F2000906600D024C50001A06500D08F8500D0E8 +:107F3000906400D090A200D210440017000000000E +:107F4000936C00788F8B00BC318A00FFA16A000C13 +:107F500025490001938700C4312200FF3048007F8B +:107F60001107000B00026827A36200788F4E01788A +:107F700005C0FFFE8F9900B0241800023C0F1000CE +:107F8000AF590140A358014403E00008AF4F017806 +:107F90000A000D0931A20080A0A000D00A000CFF49 +:107FA000000000008F8700D027BDFFC8AFBF0030A2 +:107FB000AFB7002CAFB60028AFB50024AFB4002097 +:107FC000AFB3001CAFB20018AFB10014AFB00010D7 +:107FD00094E300E094E200E2104300D72405FFFFA1 +:107FE0003C047FFF3497FFFF2415FF800A000DF04B +:107FF0003C16000E108A00D18FBF00308F9100B068 +:108000003C1808008F18005C001230C0001291402C +:108010000311702101D57824AF4F002C94EC00E2BD +:1080200031CD007F01BA5821318A7FFF0176482186 +:10803000000A804002091021945300003C08080007 +:108040008D0800580246C02132733FFF001319808B +:10805000010320210224282130BF007F03FAC82118 +:1080600000B5A024AF54002C0336A0218E87001049 +:108070008E8F003003785821256D008800EF702323 +:10808000240C0002AE8E0010AF8D00ACA16C0088F5 +:10809000976A003C8E8400308F9100AC0E000CD6A5 +:1080A0003150FFFF00024B80020940253C02420094 +:1080B00001022025AE2400048E8300048F8D00ACC5 +:1080C0008E860000240E0008ADA3001CADA600188B +:1080D000ADA0000CADA00010929F000A33F900FF84 +:1080E000A5B90014968500083C1F000CA5A5001634 +:1080F0009298000A331100FFA5B100209690000865 +:1081000024180005A5B00022ADA00024928F000B1A +:108110002410C00031E700FFA5A70002A1AE0001B6 +:108120008E8C00308F8B00AC8F8400B0AD6C00085B +:108130003C0A08008D4A005401444821013540247E +:10814000AF4800283C0208008C4200540044302113 +:1081500030C3007F007AC821033F282102458821CF +:10816000AF9100BCAF8500C0A23800008F8A00BC70 +:108170002403FFBF2418FFDF954F000201F03824CD +:1081800000F37025A54E0002914D000231AC003F76 +:10819000358B0040A14B00028F8600BC8F8900D038 +:1081A000ACC000048D28007C3C098000ACC80008ED +:1081B00090C4000D3082007FA0C2000D8F8500BCEE +:1081C00090BF000D03E3C824A0B9000D8F9100BC3F +:1081D0009233000D02789024A232000D8E9000346C +:1081E0008F8B00BCAD7000108E87002C8E8F0030FE +:1081F00000EF7023AD6E0014916D001831AC007F5C +:10820000A16C00188F9F00BC8E8A00308FE8001888 +:10821000015720240109302400C41025AFE20018C2 +:108220009283000AA3E3001C969900088F8500BC86 +:108230008F9800D0A4B9001E8E9000308E8400303C +:108240000E0002138F0500848F8500D0000291403C +:108250000002990090AF00BC0253882100403021F9 +:1082600031E7000210E0000302118021000290803B +:108270000212802190B900BC3327000410E00002F4 +:108280000006F880021F80218E9800308F8B00BC82 +:1082900024068000330F0003000F702331CD00034C +:1082A000020D6021AD6C000494A400E294AA00E2E7 +:1082B00094B000E231497FFF2522000130537FFF57 +:1082C0000206182400734025A4A800E294A400E24A +:1082D0003C1408008E94006030917FFF123400221D +:1082E000000000000E000CF6000000008F8700D098 +:1082F0000000282194F300E094F000E21213000F34 +:108300008FBF003090E900D090E800D1313200FFFB +:10831000310400FF0244302B14C0FF36264A00010E +:1083200090EE00D2264B000131CD00FF008D602180 +:10833000158BFF338F9100B08FBF00308FB7002CAB +:108340008FB600288FB500248FB400208FB3001C97 +:108350008FB200188FB100148FB0001000A0102150 +:1083600003E0000827BD003894A300E20066402423 +:10837000A4A800E290A400E290B900E2309100FFCE +:108380000011A1C20014F827001F39C03332007F4A +:10839000024730250A000DE8A0A600E23084FFFF66 +:1083A00030A5FFFFAF440018AF45001C03E00008F4 +:1083B0008F42001427BDFFB8AFB000208F9000D0CF +:1083C0003084FFFFAFA40010AFBF0044AFBE004039 +:1083D000AFB7003CAFB60038AFB50034AFB4003033 +:1083E000AFB3002CAFB20028AFB10024A7A0001893 +:1083F000920600D1920500D030C400FF30A300FFE8 +:108400000064102B10400122AFA00014920900D08C +:108410008FB50010312800FF0088382324F4FFFFB7 +:108420000014882B0015982B02339024524001260B +:108430008FB40014961E0012961F00108FB7001004 +:1084400003DFC823001714000019C400000224032E +:108450000018140302E2B02A52C00001004020219B +:108460000284282B10A0000200801821028018210D +:1084700000033C0000071C033064FFFF2C8600094A +:1084800014C000020060B821241700088E0A0008FA +:10849000001769808E09000C31ABFFFF3C0C001007 +:1084A000016C402527520400AF4A0038AF9200B853 +:1084B000AF49003CAF480030000000000000000061 +:1084C00000000000000000000000000000000000AC +:1084D00000000000000000008F4F000031EE00207F +:1084E00011C0FFFD0017982A027110240A000E83A4 +:1084F0000000B02155E001019258000131130080C5 +:10850000126001CF012020219655001232A5FFFFF5 +:108510000E000CCBA7B500188F9000D00291A023BD +:1085200026CD00018F9100B8000DB4000016B403F1 +:108530002638004002D7582A0014882B2405000151 +:108540000300902101711024AF9800B8AFA500146A +:10855000104001BC8F8900B03C0C08008D8C005489 +:10856000240BFF80921E00D001895021014B28244A +:10857000921900D0AF4500288E4700103C08080033 +:108580008D0800583C1808008F18005430E33FFF56 +:108590000003218001043021012658212402FF809C +:1085A0000162F824920C00D0AF5F002C92480000CA +:1085B00033D100FF333500FF0309982100117140CA +:1085C000001578C0326D007F01CF382101BA282113 +:1085D000318300FF3164007F3C0A000C00AA88212F +:1085E0000367F02100033140009A10213108003F59 +:1085F0003C1F000E00D1C021005F982127D90088C0 +:108600002D150008AF9100C0AF9900ACAF9800BC29 +:10861000AF9300B412A0018A00008821240E00014B +:10862000010E4004310D005D11A0FFB2310F0002B8 +:108630008E4A00283C0300803C04FFEFAE6A000035 +:108640008E450024A260000A3488FFFFAE65000456 +:108650009247002C3C1FFF9F37FEFFFFA267000CD4 +:108660008E62000C3C180040A267000B00433025CE +:1086700000C8C824033E88240238A825AE75000C23 +:108680008E490004AE6000183C0F00FFAE69001474 +:108690008E4D002C35EEFFFF8F8B00B001AE6024B5 +:1086A000AE6C00108E470008A660000896450012C8 +:1086B000AE6700208E42000C30B03FFF00105180AA +:1086C000AE6200248E5E0014014B182130A400011C +:1086D000AE7E00288E590018000331C2000443808A +:1086E000AE79002C8E51001C00C8F821A67F001C1A +:1086F000AE710030965800028E550020A678001EFC +:10870000AE75003492490033313000045600000544 +:10871000925000008F8C00D08D8B007CAE6B0030AF +:10872000925000008F8F00BCA1F00000924E0033E9 +:1087300031CD000251A00007925E00018F8900BC7C +:108740002418FF80913100000311A825A1350000F5 +:10875000925E00018F9900BC2409FFBF240BFFDF4C +:10876000A33E00018F9500BC92B8000D3311007F2D +:10877000A2B1000D8F8E00BC91D0000D02097824AB +:10878000A1CF000D8F8800BC8E6D0014910A000DE2 +:108790002DAC0001000C2940014B382400E51825C0 +:1087A000A103000D964200128F8800BC8F8700D075 +:1087B000A50200028E45000490FF00BC30A4000317 +:1087C0000004302330DE000300BE102133F9000224 +:1087D00017200002244400342444003090E200BCFE +:1087E00000A2302430DF000417E0000224830004DC +:1087F000008018218F8F00AC24090002AD03000413 +:10880000A1E90000924E003F8F8D00ACA1AE0001A7 +:108810008F9500AC924C003F8E440004A6AC000241 +:10882000976B003C0E000CD63170FFFF00025380A6 +:10883000020A38253C05420000E51825AEA30004D5 +:108840008F8600AC8E480038ACC800188E440034C7 +:10885000ACC4001CACC0000CACC00010A4C0001420 +:10886000A4C00016A4C00020A4C00022ACC00024F4 +:108870008E6400145080000124040001ACC4000880 +:108880000E000CF6241100010A000E768F9000D025 +:10889000920F00D2920E00D08FB5001031EB00FF86 +:1088A00031CD00FF008D6023016C50212554FFFF66 +:1088B0000014882B0015982B023390241640FEDDFF +:1088C000000000008FB400148FBF00448FBE004032 +:1088D0003A8200018FB7003C8FB600388FB5003464 +:1088E0008FB400308FB3002C8FB200288FB10024DA +:1088F0008FB0002003E0000827BD0048331100209E +:10890000122000EF24150001921E00BC241F00015C +:108910000000A82133D900011320000DAFBF001CB7 +:108920008E4400148E0800840088102B144000022E +:10893000008030218E0600848E03006400C3A82BC3 +:1089400016A0000200C020218E0400640080A8212F +:108950008E4700148E05006400E5302B14C0000221 +:1089600000E020218E0400640095F02313C0000471 +:108970008FAC001C240A0002AFAA001C8FAC001CA4 +:10898000028C582B156000A8000018218E4F00386B +:108990008E6D000C3C0E0080AE6F00008E4A0034DD +:1089A0003C10FF9F01AE5825AE6A00049246003F7E +:1089B000360CFFFF016C38243C0500203C03FFEF20 +:1089C000A266000B00E510253468FFFF8F8700B812 +:1089D0000048F8243C04000803E4C825AE79000CE4 +:1089E0008CF80014AE60001802BE7821AE78001436 +:1089F0008CF10018AE71001C8CE90008AE690024EF +:108A00008CEE000CAE6F002CAE600028AE6E002025 +:108A1000A6600038A660003A8CED001401B58023F2 +:108A2000021E902312400011AE72001090EA003D29 +:108A30008E6500048E640000000A310000A6C82183 +:108A4000000010210326402B0082F82103E8C021FA +:108A5000AE790004AE78000090F1003DA271000AEA +:108A60008F8900B895320006A67200088F9800AC76 +:108A70002419000202A02021A31900009769003CDC +:108A80008F9200AC0E000CD63131FFFF00027B80CC +:108A90008F8500B8022F68253C0E420001AE80256C +:108AA000AE5000048F8400AC8CAC0038AC8C001845 +:108AB0008CAB0034AC8B001CAC80000CAC80001084 +:108AC000A4800014A4800016A4800020A4800022AA +:108AD000AC80002490A7003FA487000212A00135BB +:108AE0002403000153C0000290A2003D90A2003E6A +:108AF00024480001A08800018F9F00ACAFF500085A +:108B00008F8300D024070034906600BC30C500027B +:108B100050A00001240700308F9200B88F8A00BC5B +:108B2000906D00BC924B00002412C00032A50003DF +:108B3000A14B00008F8600B88F8800BC240200047F +:108B400090C400010045182330790003A1040001FE +:108B50008F8A00BC8F9F00B800F53821955800021D +:108B600097E9001200F9382103128824312F3FFFC2 +:108B7000022F7025A54E00029150000231A800047A +:108B8000320C003F358B0040A14B000212A00002C6 +:108B90008F8500BC00E838218F8E00D0ACA7000480 +:108BA000240BFFBF8DCD007C2EA400012403FFDF2A +:108BB000ACAD000890B0000D00044140320C007FC5 +:108BC000A0AC000D8F8600BC90CA000D014B102494 +:108BD000A0C2000D8F8700BC90E5000D00A3F82413 +:108BE00003E8C825A0F9000D8F9100B88F8D00BC57 +:108BF0008E380020ADB800108E290024ADA90014D5 +:108C00008E2F0028ADAF00188E2E002C0E000CF613 +:108C1000ADAE001C8FB0001C240C0002120C00EE44 +:108C20008F9000D08FA3001C006088211460000288 +:108C30000060A8210000A02156A0FE390291A023C7 +:108C40000014882B8FA90010960700103C1E0020EE +:108C50000136402302C750213112FFFFA60A00103F +:108C6000AFB20010AF5E0030000000009617001099 +:108C7000961300121277008F000000008E05000C82 +:108C80008E0B00080016698000AD7021000DC7C36F +:108C900001CDA82B0178782101F56021AE0E000CE2 +:108CA000AE0C00088FB300100013B82B02378024DD +:108CB0001200FF048F9000D00A000E3C000000005C +:108CC0008E4D0038A6600008240B0003AE6D000036 +:108CD0008E500034A260000A8F9800B8AE70000475 +:108CE0003C0500809311003FA26B000C8E6F000CBE +:108CF0003C0EFF9FA271000B01E5102535CCFFFF54 +:108D00003C03FFEF8F9200B8004C30243464FFFF27 +:108D100000C4F824AE7F000C8E590014964800124F +:108D20008F8A00B0AE7900108E490014AE60001832 +:108D3000AE600020AE690014AE6000248E470018BB +:108D400031093FFF0009F180AE6700288E4D000811 +:108D500003CA802131180001AE6D00308E4F000C27 +:108D60008F8C00AC001089C200185B80022B282178 +:108D7000240E0002A665001CA6600036AE6F002C13 +:108D8000A18E00009763003C8F8A00AC3C04420037 +:108D90003062FFFF00443025AD4600048F9F00B8CD +:108DA000240700012411C0008FF30038240600348A +:108DB000AD5300188FF90034AD59001CAD40000CC4 +:108DC000AD400010A5400014A5400016A5400020AD +:108DD000A5400022AD400024A5550002A147000196 +:108DE0008F9E00AC8F8800B88F9200BCAFD5000872 +:108DF000910D0000A24D00008F9000B88F8B00BC39 +:108E000092180001A17800018F8400BC94850002B3 +:108E100000B1782401E97025A48E0002908C000234 +:108E20003183003FA08300028F8300D08F8400BC79 +:108E3000906200BC305300025260000124060030F2 +:108E4000AC8600048C6F007C2403FFBF02A0882145 +:108E5000AC8F0008908E000D31CC007FA08C000DEF +:108E60008F8600BC90C2000D00432024A0C4000DDA +:108E70008F8900BC913F000D37F90020A139000D0A +:108E80008F8800B88F9300BC8D070020AE6700105C +:108E90008D0A0024AE6A00148D1E0028AE7E0018D4 +:108EA0008D12002C0E000CF6AE72001C0A00103D54 +:108EB0008F9000D0960E00148E03000431CCFFFF7B +:108EC000000C10C000622021AF44003C8E1F000443 +:108ED0008F46003C03E6C8231B20003C0000000036 +:108EE0008E0F000025E200013C05001034B500089B +:108EF000AF420038AF550030000000000000000015 +:108F00000000000000000000000000000000000061 +:108F100000000000000000008F580000330B00200C +:108F20001160FFFD000000008F5304003C0D002085 +:108F3000AE1300088F570404AE17000CAF4D00307D +:108F4000000000003C0608008CC600442416000106 +:108F500010D600BD00000000961F00123C0508005E +:108F60008CA5004000BFC821A61900129609001464 +:108F700025270001A6070014960A00143144FFFFBC +:108F80005486FF498FB30010A60000140E000E1681 +:108F900030A5FFFF3C0408008C84002496030012D7 +:108FA0000044102300623023A60600120A00105964 +:108FB0008FB30010A08300018F8200AC2404000155 +:108FC000AC4400080A000FF08F8300D08E0200002E +:108FD0000A0010EA3C0500108F8200C08FA7001C19 +:108FE000921800D0920B00D0920E00D0331100FFE7 +:108FF000316900FF00117940000928C001E56021B6 +:1090000031C300FF036C50210003314000C2C8216E +:10901000255F0088AF9F00ACAF9900BCA1470088D6 +:109020009768003C03C020218F9100AC0E000CD645 +:109030003110FFFF00026B80020DC0253C0442008E +:109040008F8D00B803045825AE2B00048DA900387D +:109050008F8B00AC0000882100118100AD690018E1 +:109060008DAF00343C087FFF3504FFFFAD6F001C5F +:1090700091AC003E8D65001C8D660018000C190037 +:10908000000C770200A33821020E102500E3F82B14 +:1090900000C2C821033F5021AD67001CAD6A001813 +:1090A000AD60000CAD60001091B8003E24050005D5 +:1090B00003C45024A578001495A9000403C02021FE +:1090C000A569001691AF003EA56F002095B1000480 +:1090D000A5710022AD60002491AE003FA56E000294 +:1090E00091B0003E91AC003D01901023244300015B +:1090F000A16300018F8600AC8F9F00BCACDE00082E +:10910000A3E500008F9000BC8F9900B82405FFBF35 +:1091100096070002973800120247782433093FFF70 +:1091200001E98825A6110002921200022418FFDF2F +:10913000324E003F35CD0040A20D00028F8600BCAC +:109140008F8C00D02412FFFFACC000048D8B007CFC +:109150003C0C8000ACCB000890C2000D3043007F77 +:10916000A0C3000D8F8700BC90FF000D03E5C8244D +:10917000A0F9000D8F9100BC9229000D01387824D0 +:10918000A22F000D8F9000BCAE120010AE1500147F +:10919000920E00182415FF8002AE6825A20D00185B +:1091A0008F8500BC8F8300B88CAB0018016C102435 +:1091B000004A3025ACA600189068003EA0A8001C0C +:1091C0008F9F00B88F8700BC8F9800D097F900045C +:1091D000A4F9001E0E0002138F0500848F8600D0B4 +:1091E000000279400002490090D200BC01E98821C8 +:1091F000004028213255000212A0000303D1202193 +:109200000002A8800095202190CD00BC31B200045E +:109210001240000333DF0003000540800088202156 +:10922000240600048F9E00BC00DFC8233327000300 +:1092300000875021AFCA00040E000CF6A665003866 +:109240000A0010388F9000D0961E00123C080800CB +:109250008D080024011E9021A61200120A00105948 +:109260008FB3001027BDFFE03C1808008F18005096 +:10927000AFB00010AFBF0018AFB10014AF8400B0A2 +:1092800093710074030478212410FF8031EE007F75 +:109290003225007F01F0582401DA68213C0C000AD5 +:1092A000A38500C401AC2821AF4B002494A9001071 +:1092B0009768000690A600620080382124020030E2 +:1092C0000109202330C300F0AF8500D010620019DF +:1092D0003090FFFF90AE0062240DFFF0240A005092 +:1092E00001AE6024318B00FF116A002F00000000E6 +:1092F00016000007241F0C00AF5F00248FB100147C +:109300008FBF00188FB0001003E0000827BD0020B9 +:109310000E000E1C02002021241F0C00AF5F002451 +:109320008FB100148FBF00188FB0001003E0000849 +:1093300027BD002094A200E094A400E290BF011396 +:10934000008218263079FFFF33E700C014E00009DF +:109350002F31000116000038000000005620FFE603 +:10936000241F0C000E000D18000000000A0011ED73 +:10937000241F0C001620FFDE000000000E000D1858 +:10938000000000001440FFDC241F0C001600002227 +:109390008F8300D0906901133122003FA062011336 +:1093A0000A0011ED241F0C0094AF00D48F8600D466 +:1093B00000E02821240400050E000C5C31F0FFFFC2 +:1093C0001440000524030003979100E600001821D3 +:1093D0002625FFFFA78500E68F5801B80700FFFE8E +:1093E0003C196013AF400180241F0C00AF50018472 +:1093F000007938253C101000AF4701888FB1001468 +:10940000AF5001B8AF5F00248FB000108FBF0018BD +:1094100003E0000827BD00200E000E1C02002021E2 +:109420005040FFB5241F0C008F8300D090690113BA +:109430000A0012163122003F0E000E1C02002021ED +:109440001440FFAD241F0C00122000078F8300D0B2 +:10945000906801133106003F34C20040A06201133E +:109460000A0011ED241F0C000E000D180000000072 +:109470005040FFA1241F0C008F8300D0906801137F +:109480003106003F0A00124634C20040AF9B00C8BC +:1094900003E00008AF8000EC3089FFFF0009404284 +:1094A0002D020041000921801440000200095040B3 +:1094B00024080040000830C0000811400046582130 +:1094C000256701A800E2C821272F007F2418FF800C +:1094D00001F818240064302100CA702125CC00FF57 +:1094E000240DFF00018D202425650088240A0088B2 +:1094F0003C010800AC2A004C3C010800AC2500509F +:10950000AF8400D43C010800AC2900603C01080095 +:10951000AC2800643C010800AC2700543C01080062 +:10952000AC2300583C010800AC26005C03E00008B6 +:1095300000000000308300FF30C6FFFF30E400FF72 +:109540008F4201B80440FFFE00034C00012438257F +:109550003C08600000E820253C031000AF45018076 +:10956000AF460184AF44018803E00008AF4301B86F +:109570008F86001C3C096012352700108CCB00043C +:109580003C0C600E35850010316A00062D48000144 +:10959000ACE800C48CC40004ACA431808CC20008C8 +:1095A00094C30002ACA2318403E00008A78300E466 +:1095B0003C0308008C6300508F8400E88F86001CF9 +:1095C0002402FF800064C0210302C824AF59002890 +:1095D0008CCD00043305007F00BA78213C0E000CCE +:1095E00001EE2821ACAD00588CC80008AF8500D032 +:1095F0003C076012ACA8005C8CCC001034E8001072 +:10960000ACAC000C8CCB000CACAB000894AA0014E2 +:109610003C0208008C42004425490001A4A9001422 +:1096200094A400143083FFFF106200178F8400D0D1 +:109630003C0A08008D4A0040A4AA00128CCE0018F3 +:10964000AC8E00248CCD0014AC8D00208CC700188B +:10965000AC87002C8CCC001424060001AC8C0028B4 +:109660008D0B00BC5166001A8D0200B48D0200B84B +:10967000A482003A948F003AA48F003C948800D4CE +:1096800003E000083102FFFF3C0908008D29002497 +:10969000A4A000148F8400D0A4A900128CCE0018BE +:1096A000AC8E00248CCD0014AC8D00208CC700182B +:1096B000AC87002C8CCC001424060001AC8C002854 +:1096C0008D0B00BC5566FFEA8D0200B88D0200B418 +:1096D000A482003A948F003AA48F003C948800D46E +:1096E00003E000083102FFFF8F86001C3C0C0800DD +:1096F0008D8C0050240BFF808CCD00083C03000CA7 +:10970000000D51C0018A4021010B4824AF8A00E8B6 +:10971000AF49002890C700073105007F00BA10212B +:109720000043282130E4000410800039AF8500D0C8 +:1097300090CF000731EE000811C000380000000093 +:109740008CD9000C8CC400140324C02B13000030EF +:10975000000000008CC2000CACA200648CCD00188C +:109760002402FFF8ACAD00688CCC0010ACAC0080DB +:109770008CCB000CACAB00848CCA001CACAA007C67 +:1097800090A900BC01224024A0A800BC90C30007FF +:109790003067000810E000048F8500D090AF00BC57 +:1097A00035EE0001A0AE00BC90D9000733380001AF +:1097B000130000088F8300D08F8700D0240400346A +:1097C00090E800BC35030002A0E300BC8F8300D00A +:1097D000AC6400C090C900073126000210C000052B +:1097E00000000000906A00BC35420004A06200BC8A +:1097F0008F8300D09065011330AD003FA06D011341 +:109800008F8C00D0958B00D403E000083162FFFFFD +:109810008CC200140A001305000000000A001306A1 +:10982000ACA0006427BDFFD8AFB000108F90001C23 +:10983000AFBF0024AFB40020AFB20018AFB1001426 +:10984000AFB3001C9613000E3C07600A3C14600680 +:109850003264FFFF369300100E00125534F40410EA +:109860008F8400D43C11600E0E00099B363100102D +:10987000920E00153C0708008CE700603C12601255 +:1098800031CD000FA38D00F08E0E00048E0D000868 +:1098900096080012961F00109619001A9618001EBE +:1098A000960F001C310CFFFF33EBFFFF332AFFFF45 +:1098B0003309FFFF31E6FFFF3C010800AC2B0040FD +:1098C0003C010800AC2C00243C010800AC2A0044F8 +:1098D000AE293178AE26317C92020015960300162F +:1098E00036520010304400FF3065FFFF3C06080090 +:1098F0008CC60064AE243188AE4500B492080014D2 +:1099000096190018241F0001011FC004332FFFFF08 +:109910003C0508008CA50058AE5800B8AE4F00BCFE +:10992000920C0014AF8E00D8AF8D00DC318B00FF9D +:10993000AE4B00C0920A0015AE670048AE66004C00 +:10994000314900FFAE4900C8AE65007C3C03080009 +:109950008C6300503C0408008C84004C3C080800D8 +:109960008D0800543C0208008C42005C8FBF00242C +:10997000AE6300808FB00010AE8300748FB3001C04 +:10998000AE22319CAE4200DCAE2731A0AE2631A41F +:10999000AE24318CAE233190AE283194AE2531986F +:1099A000AE870050AE860054AE8500708FB10014B3 +:1099B000AE4700E0AE4600E4AE4400CCAE4300D07B +:1099C000AE4800D4AE4500D88FB400208FB2001846 +:1099D00003E0000827BD002827BDFFE0AFB1001459 +:1099E000AFBF0018241100010E000845AFB00010F1 +:1099F00010510005978400E6978300CC0083102B5C +:109A0000144000088F8500D4240700028FBF00187F +:109A10008FB100148FB0001000E0102103E00008A7 +:109A200027BD00200E000C7A24040005AF8200E858 +:109A30001040FFF6240700020E0008498F90001C1A +:109A4000979F00E68F9900E88F8D00C827EF0001EF +:109A5000240E0050AF590020A78F00E6A1AE0000F1 +:109A60003C0C08008D8C00648F8600C8240A80009E +:109A7000000C5E00ACCB0074A4C0000694C9000AC0 +:109A8000241FFF803C0D000C012AC024A4D8000A2A +:109A900090C8000A24182000011F1825A0C3000A3E +:109AA0008F8700C8A0E000788F8500C800003821AB +:109AB000A0A000833C0208008C4200508F8400E884 +:109AC0000044782101FFC824AF590028960B0002FA +:109AD00031EE007F01DA6021018D3021A4CB00D46A +:109AE000960A0002AF8600D03C0E000425492401EE +:109AF000A4C900E68E080004ACC800048E03000868 +:109B0000ACC30000A4C00010A4C00014A0C000D0CA +:109B10008F8500D02403FFBFA0A000D13C04080023 +:109B20008C8400648F8200D0A04400D28E1F000C71 +:109B30008F8A00D0978F00E4AD5F001C8E19001053 +:109B400024100030AD590018A5400030A551005434 +:109B5000A5510056A54F0016AD4E0068AD580080C7 +:109B6000AD580084914D006231AC000F358B001070 +:109B7000A14B00628F8600D090C900633128007F1E +:109B8000A0C800638F8400D02406FFFF9085006387 +:109B900000A31024A08200638F9100D000E0102168 +:109BA000923F00BC37F90001A23900BC8F8A00D077 +:109BB000938F00F0AD580064AD5000C0914E00D3BB +:109BC000000F690031CC000F018D5825A14B00D347 +:109BD0008F8500D08F8900DCACA900E88F8800D881 +:109BE0008FBF00188FB100148FB0001027BD002068 +:109BF000ACA800ECA4A600D6A4A000E0A4A000E2BB +:109C000003E000080000000027BDFFE0AFB0001037 +:109C10008F90001CAFB10014AFBF00188E19000464 +:109C20003C1808008F180050240FFF80001989C0CD +:109C30000238702131CD007F01CF602401BA50215C +:109C40003C0B000CAF4C0028014B4021950900D47F +:109C5000950400D68E0700043131FFFFAF8800D095 +:109C60000E000913000721C08E0600048F8300C870 +:109C7000000629C0AF4500209064003E30820040BD +:109C8000144000068F8400D0341FFFFF948300D659 +:109C90003062FFFF145F000400000000948400D6CF +:109CA0000E0008A83084FFFF8E050004022030213A +:109CB0008FBF00188FB100148FB000102404002251 +:109CC00000003821000529C00A00127C27BD0020B1 +:109CD00027BDFFE0AFB100143091FFFFAFB000101F +:109CE000AFBF00181220001D000080218F86001CCD +:109CF0008CC500002403000600053F020005140285 +:109D000030E4000714830015304500FF2CA800063E +:109D10001100004D000558803C0C0800258C57D4DC +:109D2000016C50218D490000012000080000000056 +:109D30008F8E00EC240D000111CD005900000000B1 +:109D4000260B00013170FFFF24CA00200211202BD6 +:109D5000014030211480FFE6AF8A001C0200102170 +:109D60008FBF00188FB100148FB0001003E00008FF +:109D700027BD0020938700CE14E00038240400148F +:109D80000E001338000000008F86001C2402000122 +:109D90000A00147FAF8200EC8F8900EC24080002D7 +:109DA0001128003B2404001300002821000030216A +:109DB000240700010E00127C000000000A00147F3E +:109DC0008F86001C8F8700EC2405000214E5FFF647 +:109DD000240400120E0012E9000000008F8500E844 +:109DE00000403021240400120E00127C00003821B3 +:109DF0000A00147F8F86001C8F8300EC241F000351 +:109E0000147FFFD0260B00010E00129B0000000003 +:109E10008F8500E800403021240200022404001055 +:109E200000003821AF8200EC0E00127C0000000020 +:109E30000A00147F8F86001C8F8F00EC240600021E +:109E400011E6000B0000000024040010000028218F +:109E5000000030210A00149C240700010000282182 +:109E60000E00127C000030210A00147F8F86001C37 +:109E70000E0013A500000000144000128F99001C72 +:109E80008F86001C240200030A00147FAF8200ECBE +:109E90000E001431000000000A00147F8F86001CA1 +:109EA0000E00128B000000002402000224040014A3 +:109EB0000000282100003021000038210A0014B9D8 +:109EC000AF8200EC004038212404001097380002D3 +:109ED000000028210E00127C3306FFFF0A00147FC9 +:109EE0008F86001C8F8400C83C077FFF34E6FFFF8D +:109EF0008C8500742402000100A61824AC83007431 +:109F000003E00008A082000510A000362CA200800B +:109F1000274A04003C0B000524090080104000077C +:109F20002408008030A6000F00C540212D030081C9 +:109F30001460000200A0482124080080AF4B0030CC +:109F400000000000000000000000000011000009F7 +:109F500000003821014030218C8D000024E70004EE +:109F600000E8602BACCD0000248400041580FFFACB +:109F700024C60004000000000000000000000000F3 +:109F80003C0E0006010E3825AF47003000000000EF +:109F900000000000000000008F4F000031E80010BA +:109FA0001100FFFD000000008F42003C8F43003C89 +:109FB0000049C8210323C02B130000040000000047 +:109FC0008F4C003825860001AF4600388F47003C93 +:109FD00000A9282300E96821AF4D003C14A0FFCE62 +:109FE0002CA2008003E000080000000027BDFFD085 +:109FF0003C020002AFB100143C11000CAF45003828 +:10A00000AFB3001CAF46003C00809821AF42003047 +:10A0100024050088AF44002803512021AFBF002849 +:10A02000AFB50024AFB40020AFB200180E0014F199 +:10A03000AFB000103C1F08008FFF004C3C18080018 +:10A040008F1800642410FF8003F3A82132B9007F29 +:10A0500002B078240018A0C0033A70210018914083 +:10A0600001D12021AF4F00280E0014F10254282105 +:10A070003C0D08008DAD00502405012001B358218E +:10A08000316C007F01705024019A48210131202158 +:10A090000E0014F1AF4A00283C0808008D08005457 +:10A0A0003C0508008CA500640113382130E6007FD0 +:10A0B00000F0182400DA202100912021AF4300286D +:10A0C0000E0014F1000529403C0208008C420058A3 +:10A0D0003C1008008E1000601200001C0053882104 +:10A0E0002415FF800A0015743C14000C3226007FF2 +:10A0F0000235182400DA202102402821AF4300282D +:10A10000009420210E0014F12610FFC01200000F51 +:10A11000023288212E05004110A0FFF42412100005 +:10A120003226007F001091800235182400DA2021A9 +:10A1300002402821AF430028009420210E0014F192 +:10A14000000080211600FFF3023288213C0B08003A +:10A150008D6B005C240AFF802405000201734021FE +:10A16000010A4824AF4900283C0408009484006296 +:10A170003110007F021A88213C07000C0E000CAA47 +:10A180000227982100402821026020218FBF00284B +:10A190008FB500248FB400208FB3001C8FB200183D +:10A1A0008FB100148FB000100A0014F127BD0030E9 +:10A1B0008F83001C8C62000410400003000000002C +:10A1C00003E00008000000008C6400108C650008AB +:10A1D0000A00152A8C66000C000000000000001B1D +:10A1E0000000000F0000000A000000080000000648 +:10A1F000000000050000000500000004000000044D +:10A200000000000300000003000000030000000342 +:10A210000000000300000002000000020000000235 +:10A220000000000200000002000000020000000226 +:10A230000000000200000002000000020000000216 +:10A240000000000200000002000000020000000206 +:10A2500000000001000000010000000108000F24C0 +:10A2600008000D6C08000FB80800106008000F4CC3 +:10A2700008000F8C0800119408000D88080011B820 +:10A2800008000DD8080015540800151C08000D889A +:10A2900008000D8808000D880800124008001240D0 +:10A2A00008000D8808000D88080014E008000D88DB +:10A2B00008000D8808000D8808000D88080013B4F8 +:10A2C00008000D8808000D8808000D8808000D881A +:10A2D00008000D8808000D8808000D8808000D880A +:10A2E00008000D8808000D8808000D8808000D88FA +:10A2F00008000D8808000D8808000FAC08000D88C4 +:10A3000008000D880800167808000D8808000D88E0 +:10A3100008000D8808000D8808000D8808000D88C9 +:10A3200008000D8808000D8808000D8808000D88B9 +:10A3300008000D8808000D8808000D8808000D88A9 +:10A3400008000D8808000D8808000D88080014100A +:10A3500008000D8808000D8808001334080012A4B6 +:10A3600008001E2C08001EFC08001F1408001F28EF +:10A3700008001F3808001E2C08001E2C08001E2C88 +:10A3800008001ED808002E1408002E1C08002DE41A +:10A3900008002DF008002DFC08002E08080052F4DB +:10A3A000080052B40800528008005254080052308D +:10A3B000080051EC0A000C840000000000000000BE +:10A3C0000000000D727870362E322E33000000002F +:10A3D000060203030000000000000001000000006E +:10A3E000000000000000000000000000000000006D +:10A3F000000000000000000000000000000000005D +:10A40000000000000000000000000000000000004C +:10A41000000000000000000000000000000000003C +:10A42000000000000000000000000000000000002C +:10A43000000000000000000000000000000000001C +:10A44000000000000000000000000000000000000C +:10A4500000000000000000000000000000000000FC +:10A4600000000000000000000000000000000000EC +:10A4700000000000000000000000000000000000DC +:10A4800000000000000000000000000000000000CC +:10A4900000000000000000000000000000000000BC +:10A4A00000000000000000000000000000000000AC +:10A4B000000000000000000000000000000000009C +:10A4C000000000000000000000000000000000008C +:10A4D000000000000000000000000000000000007C +:10A4E000000000000000000000000000000000006C +:10A4F000000000000000000000000000000000005C +:10A50000000000000000000000000000000000004B +:10A51000000000000000000000000000000000003B +:10A52000000000000000000000000000000000002B +:10A53000000000000000000000000000000000001B +:10A54000000000000000000000000000000000000B +:10A5500000000000000000000000000000000000FB +:10A5600000000000000000000000000000000000EB +:10A5700000000000000000000000000000000000DB +:10A5800000000000000000000000000000000000CB +:10A5900000000000000000000000000000000000BB +:10A5A00000000000000000000000000000000000AB +:10A5B000000000000000000000000000000000009B +:10A5C000000000000000000000000000000000008B +:10A5D000000000000000000000000000000000007B +:10A5E000000000000000000000000000000000006B +:10A5F000000000000000000000000000000000005B +:10A60000000000000000000000000000000000004A +:10A61000000000000000000000000000000000003A +:10A62000000000000000000000000000000000002A +:10A63000000000000000000000000000000000001A +:10A64000000000000000000000000000000000000A +:10A6500000000000000000000000000000000000FA +:10A6600000000000000000000000000000000000EA +:10A6700000000000000000000000000000000000DA +:10A6800000000000000000000000000000000000CA +:10A6900000000000000000000000000000000000BA +:10A6A00000000000000000000000000000000000AA +:10A6B000000000000000000000000000000000009A +:10A6C000000000000000000000000000000000008A +:10A6D000000000000000000000000000000000007A +:10A6E000000000000000000000000000000000006A +:10A6F000000000000000000000000000000000005A +:10A700000000000000000000000000000000000049 +:10A710000000000000000000000000000000000039 +:10A720000000000000000000000000000000000029 +:10A730000000000000000000000000000000000019 +:10A740000000000000000000000000000000000009 +:10A7500000000000000000000000000000000000F9 +:10A7600000000000000000000000000000000000E9 +:10A7700000000000000000000000000000000000D9 +:10A7800000000000000000000000000000000000C9 +:10A7900000000000000000000000000000000000B9 +:10A7A00000000000000000000000000000000000A9 +:10A7B0000000000000000000000000000000000099 +:10A7C0000000000000000000000000000000000089 +:10A7D0000000000000000000000000000000000079 +:10A7E0000000000000000000000000000000000069 +:10A7F0000000000000000000000000000000000059 +:10A800000000000000000000000000000000000048 +:10A810000000000000000000000000000000000038 +:10A820000000000000000000000000000000000028 +:10A830000000000000000000000000000000000018 +:10A840000000000000000000000000000000000008 +:10A8500000000000000000000000000000000000F8 +:10A8600000000000000000000000000000000000E8 +:10A8700000000000000000000000000000000000D8 +:10A8800000000000000000000000000000000000C8 +:10A8900000000000000000000000000000000000B8 +:10A8A00000000000000000000000000000000000A8 +:10A8B0000000000000000000000000000000000098 +:10A8C0000000000000000000000000000000000088 +:10A8D0000000000000000000000000000000000078 +:10A8E0000000000000000000000000000000000068 +:10A8F0000000000000000000000000000000000058 +:10A900000000000000000000000000000000000047 +:10A910000000000000000000000000000000000037 +:10A920000000000000000000000000000000000027 +:10A930000000000000000000000000000000000017 +:10A940000000000000000000000000000000000007 +:10A9500000000000000000000000000000000000F7 +:10A9600000000000000000000000000000000000E7 +:10A9700000000000000000000000000000000000D7 +:10A9800000000000000000000000000000000000C7 +:10A9900000000000000000000000000000000000B7 +:10A9A00000000000000000000000000000000000A7 +:10A9B0000000000000000000000000000000000097 +:10A9C0000000000000000000000000000000000087 +:10A9D0000000000000000000000000000000000077 +:10A9E0000000000000000000000000000000000067 +:10A9F0000000000000000000000000000000000057 +:10AA00000000000000000000000000000000000046 +:10AA10000000000000000000000000000000000036 +:10AA20000000000000000000000000000000000026 +:10AA30000000000000000000000000000000000016 +:10AA40000000000000000000000000000000000006 +:10AA500000000000000000000000000000000000F6 +:10AA600000000000000000000000000000000000E6 +:10AA700000000000000000000000000000000000D6 +:10AA800000000000000000000000000000000000C6 +:10AA900000000000000000000000000000000000B6 +:10AAA00000000000000000000000000000000000A6 +:10AAB0000000000000000000000000000000000096 +:10AAC0000000000000000000000000000000000086 +:10AAD0000000000000000000000000000000000076 +:10AAE0000000000000000000000000000000000066 +:10AAF0000000000000000000000000000000000056 +:10AB00000000000000000000000000000000000045 +:10AB10000000000000000000000000000000000035 +:10AB20000000000000000000000000000000000025 +:10AB30000000000000000000000000000000000015 +:10AB40000000000000000000000000000000000005 +:10AB500000000000000000000000000000000000F5 +:10AB600000000000000000000000000000000000E5 +:10AB700000000000000000000000000000000000D5 +:10AB800000000000000000000000000000000000C5 +:10AB900000000000000000000000000000000000B5 +:10ABA00000000000000000000000000000000000A5 +:10ABB0000000000000000000000000000000000095 +:10ABC0000000000000000000000000000000000085 +:10ABD0000000000000000000000000000000000075 +:10ABE0000000000000000000000000000000000065 +:10ABF0000000000000000000000000000000000055 +:10AC00000000000000000000000000000000000044 +:10AC10000000000000000000000000000000000034 +:10AC20000000000000000000000000000000000024 +:10AC30000000000000000000000000000000000014 +:10AC40000000000000000000000000000000000004 +:10AC500000000000000000000000000000000000F4 +:10AC600000000000000000000000000000000000E4 +:10AC700000000000000000000000000000000000D4 +:10AC800000000000000000000000000000000000C4 +:10AC900000000000000000000000000000000000B4 +:10ACA00000000000000000000000000000000000A4 +:10ACB0000000000000000000000000000000000094 +:10ACC0000000000000000000000000000000000084 +:10ACD0000000000000000000000000000000000074 +:10ACE0000000000000000000000000000000000064 +:10ACF0000000000000000000000000000000000054 +:10AD00000000000000000000000000000000000043 +:10AD10000000000000000000000000000000000033 +:10AD20000000000000000000000000000000000023 +:10AD30000000000000000000000000000000000013 +:10AD40000000000000000000000000000000000003 +:10AD500000000000000000000000000000000000F3 +:10AD600000000000000000000000000000000000E3 +:10AD700000000000000000000000000000000000D3 +:10AD800000000000000000000000000000000000C3 +:10AD900000000000000000000000000000000000B3 +:10ADA00000000000000000000000000000000000A3 +:10ADB0000000000000000000000000000000000093 +:10ADC0000000000000000000000000000000000083 +:10ADD0000000000000000000000000000000000073 +:10ADE0000000000000000000000000000000000063 +:10ADF0000000000000000000000000000000000053 +:10AE00000000000000000000000000000000000042 +:10AE10000000000000000000000000000000000032 +:10AE20000000000000000000000000000000000022 +:10AE30000000000000000000000000000000000012 +:10AE40000000000000000000000000000000000002 +:10AE500000000000000000000000000000000000F2 +:10AE600000000000000000000000000000000000E2 +:10AE700000000000000000000000000000000000D2 +:10AE800000000000000000000000000000000000C2 +:10AE900000000000000000000000000000000000B2 +:10AEA00000000000000000000000000000000000A2 +:10AEB0000000000000000000000000000000000092 +:10AEC0000000000000000000000000000000000082 +:10AED0000000000000000000000000000000000072 +:10AEE0000000000000000000000000000000000062 +:10AEF0000000000000000000000000000000000052 +:10AF00000000000000000000000000000000000041 +:10AF10000000000000000000000000000000000031 +:10AF20000000000000000000000000000000000021 +:10AF30000000000000000000000000000000000011 +:10AF40000000000000000000000000000000000001 +:10AF500000000000000000000000000000000000F1 +:10AF600000000000000000000000000000000000E1 +:10AF700000000000000000000000000000000000D1 +:10AF800000000000000000000000000000000000C1 +:10AF900000000000000000000000000000000000B1 +:10AFA00000000000000000000000000000000000A1 +:10AFB0000000000000000000000000000000000091 +:10AFC0000000000000000000000000000000000081 +:10AFD0000000000000000000000000000000000071 +:10AFE0000000000000000000000000000000000061 +:10AFF0000000000000000000000000000000000051 +:10B000000000000000000000000000000000000040 +:10B010000000000000000000000000000000000030 +:10B020000000000000000000000000000000000020 +:10B030000000000000000000000000000000000010 +:10B040000000000000000000000000000000000000 +:10B0500000000000000000000000000000000000F0 +:10B0600000000000000000000000000000000000E0 +:10B0700000000000000000000000000000000000D0 +:10B0800000000000000000000000000000000000C0 +:10B0900000000000000000000000000000000000B0 +:10B0A00000000000000000000000000000000000A0 +:10B0B0000000000000000000000000000000000090 +:10B0C0000000000000000000000000000000000080 +:10B0D0000000000000000000000000000000000070 +:10B0E0000000000000000000000000000000000060 +:10B0F0000000000000000000000000000000000050 +:10B10000000000000000000000000000000000003F +:10B11000000000000000000000000000000000002F +:10B12000000000000000000000000000000000001F +:10B13000000000000000000000000000000000000F +:10B1400000000000000000000000000000000000FF +:10B1500000000000000000000000000000000000EF +:10B1600000000000000000000000000000000000DF +:10B1700000000000000000000000000000000000CF +:10B1800000000000000000000000000000000000BF +:10B1900000000000000000000000000000000000AF +:10B1A000000000000000000000000000000000009F +:10B1B000000000000000000000000000000000008F +:10B1C000000000000000000000000000000000007F +:10B1D000000000000000000000000000000000006F +:10B1E000000000000000000000000000000000005F +:10B1F000000000000000000000000000000000004F +:10B20000000000000000000000000000000000003E +:10B21000000000000000000000000000000000002E +:10B22000000000000000000000000000000000001E +:10B23000000000000000000000000000000000000E +:10B2400000000000000000000000000000000000FE +:10B2500000000000000000000000000000000000EE +:10B2600000000000000000000000000000000000DE +:10B2700000000000000000000000000000000000CE +:10B2800000000000000000000000000000000000BE +:10B2900000000000000000000000000000000000AE +:10B2A000000000000000000000000000000000009E +:10B2B000000000000000000000000000000000008E +:10B2C000000000000000000000000000000000007E +:10B2D000000000000000000000000000000000006E +:10B2E000000000000000000000000000000000005E +:10B2F000000000000000000000000000000000004E +:10B30000000000000000000000000000000000003D +:10B31000000000000000000000000000000000002D +:10B32000000000000000000000000000000000001D +:10B33000000000000000000000000000000000000D +:10B3400000000000000000000000000000000000FD +:10B3500000000000000000000000000000000000ED +:10B3600000000000000000000000000000000000DD +:10B3700000000000000000000000000000000000CD +:10B3800000000000000000000000000000000000BD +:10B3900000000000000000000000000000000000AD +:10B3A000000000000000000000000000000000009D +:10B3B000000000000000000000000000000000008D +:10B3C000000000000000000000000000000000007D +:10B3D000000000000000000000000000000000006D +:10B3E000000000000000000000000000000000005D +:10B3F000000000000000000000000000000000004D +:10B40000000000000000000000000000000000003C +:10B41000000000000000000000000000000000002C +:10B42000000000000000000000000000000000001C +:10B43000000000000000000000000000000000000C +:10B4400000000000000000000000000000000000FC +:10B4500000000000000000000000000000000000EC +:10B4600000000000000000000000000000000000DC +:10B4700000000000000000000000000000000000CC +:10B4800000000000000000000000000000000000BC +:10B4900000000000000000000000000000000000AC +:10B4A000000000000000000000000000000000009C +:10B4B000000000000000000000000000000000008C +:10B4C000000000000000000000000000000000007C +:10B4D000000000000000000000000000000000006C +:10B4E000000000000000000000000000000000005C +:10B4F000000000000000000000000000000000004C +:10B50000000000000000000000000000000000003B +:10B51000000000000000000000000000000000002B +:10B52000000000000000000000000000000000001B +:10B53000000000000000000000000000000000000B +:10B5400000000000000000000000000000000000FB +:10B5500000000000000000000000000000000000EB +:10B5600000000000000000000000000000000000DB +:10B5700000000000000000000000000000000000CB +:10B5800000000000000000000000000000000000BB +:10B5900000000000000000000000000000000000AB +:10B5A000000000000000000000000000000000009B +:10B5B000000000000000000000000000000000008B +:10B5C000000000000000000000000000000000007B +:10B5D000000000000000000000000000000000006B +:10B5E000000000000000000000000000000000005B +:10B5F000000000000000000000000000000000004B +:10B60000000000000000000000000000000000003A +:10B61000000000000000000000000000000000002A +:10B62000000000000000000000000000000000001A +:10B63000000000000000000000000000000000000A +:10B6400000000000000000000000000000000000FA +:10B6500000000000000000000000000000000000EA +:10B6600000000000000000000000000000000000DA +:10B6700000000000000000000000000000000000CA +:10B6800000000000000000000000000000000000BA +:10B6900000000000000000000000000000000000AA +:10B6A000000000000000000000000000000000009A +:10B6B000000000000000000000000000000000008A +:10B6C000000000000000000000000000000000007A +:10B6D000000000000000000000000000000000006A +:10B6E000000000000000000000000000000000005A +:10B6F000000000000000000000000000000000004A +:10B700000000000000000000000000000000000039 +:10B710000000000000000000000000000000000029 +:10B720000000000000000000000000000000000019 +:10B730000000000000000000000000000000000009 +:10B7400000000000000000000000000000000000F9 +:10B7500000000000000000000000000000000000E9 +:10B7600000000000000000000000000000000000D9 +:10B7700000000000000000000000000000000000C9 +:10B7800000000000000000000000000000000000B9 +:10B7900000000000000000000000000000000000A9 +:10B7A0000000000000000000000000000000000099 +:10B7B0000000000000000000000000000000000089 +:10B7C0000000000000000000000000000000000079 +:10B7D0000000000000000000000000000000000069 +:10B7E0000000000000000000000000000000000059 +:10B7F0000000000000000000000000000000000049 +:10B800000000000000000000000000000000000038 +:10B810000000000000000000000000000000000028 +:10B820000000000000000000000000000000000018 +:10B830000000000000000000000000000000000008 +:10B8400000000000000000000000000000000000F8 +:10B8500000000000000000000000000000000000E8 +:10B8600000000000000000000000000000000000D8 +:10B8700000000000000000000000000000000000C8 +:10B8800000000000000000000000000000000000B8 +:10B8900000000000000000000000000000000000A8 +:10B8A0000000000000000000000000000000000098 +:10B8B0000000000000000000000000000000000088 +:10B8C0000000000000000000000000000000000078 +:10B8D0000000000000000000000000000000000068 +:10B8E0000000000000000000000000000000000058 +:10B8F0000000000000000000000000000000000048 +:10B900000000000000000000000000000000000037 +:10B910000000000000000000000000000000000027 +:10B920000000000000000000000000000000000017 +:10B930000000000000000000000000000000000007 +:10B9400000000000000000000000000000000000F7 +:10B9500000000000000000000000000000000000E7 +:10B9600000000000000000000000000000000000D7 +:10B9700000000000000000000000000000000000C7 +:10B9800000000000000000000000000000000000B7 +:10B9900000000000000000000000000000000000A7 +:10B9A0000000000000000000000000000000000097 +:10B9B0000000000000000000000000000000000087 +:10B9C0000000000000000000000000000000000077 +:10B9D0000000000000000000000000000000000067 +:10B9E0000000000000000000000000000000000057 +:10B9F0000000000000000000000000000000000047 +:10BA00000000000000000000000000000000000036 +:10BA10000000000000000000000000000000000026 +:10BA20000000000000000000000000000000000016 +:10BA30000000000000000000000000000000000006 +:10BA400000000000000000000000000000000000F6 +:10BA500000000000000000000000000000000000E6 +:10BA600000000000000000000000000000000000D6 +:10BA700000000000000000000000000000000000C6 +:10BA800000000000000000000000000000000000B6 +:10BA900000000000000000000000000000000000A6 +:10BAA0000000000000000000000000000000000096 +:10BAB0000000000000000000000000000000000086 +:10BAC0000000000000000000000000000000000076 +:10BAD0000000000000000000000000000000000066 +:10BAE0000000000000000000000000000000000056 +:10BAF0000000000000000000000000000000000046 +:10BB00000000000000000000000000000000000035 +:10BB10000000000000000000000000000000000025 +:10BB20000000000000000000000000000000000015 +:10BB30000000000000000000000000000000000005 +:10BB400000000000000000000000000000000000F5 +:10BB500000000000000000000000000000000000E5 +:10BB600000000000000000000000000000000000D5 +:10BB700000000000000000000000000000000000C5 +:10BB800000000000000000000000000000000000B5 +:10BB900000000000000000000000000000000000A5 +:10BBA0000000000000000000000000000000000095 +:10BBB0000000000000000000000000000000000085 +:10BBC0000000000000000000000000000000000075 +:10BBD0000000000000000000000000000000000065 +:10BBE0000000000000000000000000000000000055 +:10BBF0000000000000000000000000000000000045 +:10BC00000000000000000000000000000000000034 +:10BC10000000000000000000000000000000000024 +:10BC20000000000000000000000000000000000014 +:10BC30000000000000000000000000000000000004 +:10BC400000000000000000000000000000000000F4 +:10BC500000000000000000000000000000000000E4 +:10BC600000000000000000000000000000000000D4 +:10BC700000000000000000000000000000000000C4 +:10BC800000000000000000000000000000000000B4 +:10BC900000000000000000000000000000000000A4 +:10BCA0000000000000000000000000000000000094 +:10BCB0000000000000000000000000000000000084 +:10BCC0000000000000000000000000000000000074 +:10BCD0000000000000000000000000000000000064 +:10BCE0000000000000000000000000000000000054 +:10BCF0000000000000000000000000000000000044 +:10BD00000000000000000000000000000000000033 +:10BD10000000000000000000000000000000000023 +:10BD20000000000000000000000000000000000013 +:10BD30000000000000000000000000000000000003 +:10BD400000000000000000000000000000000000F3 +:10BD500000000000000000000000000000000000E3 +:10BD600000000000000000000000000000000000D3 +:10BD700000000000000000000000000000000000C3 +:10BD800000000000000000000000000000000000B3 +:10BD900000000000000000000000000000000000A3 +:10BDA0000000000000000000000000000000000093 +:10BDB0000000000000000000000000000000000083 +:10BDC0000000000000000000000000000000000073 +:10BDD0000000000000000000000000000000000063 +:10BDE0000000000000000000000000000000000053 +:10BDF0000000000000000000000000000000000043 +:10BE00000000000000000000000000000000000032 +:10BE10000000000000000000000000000000000022 +:10BE20000000000000000000000000000000000012 +:10BE30000000000000000000000000000000000002 +:10BE400000000000000000000000000000000000F2 +:10BE500000000000000000000000000000000000E2 +:10BE600000000000000000000000000000000000D2 +:10BE700000000000000000000000000000000000C2 +:10BE800000000000000000000000000000000000B2 +:10BE900000000000000000000000000000000000A2 +:10BEA0000000000000000000000000000000000092 +:10BEB0000000000000000000000000000000000082 +:10BEC0000000000000000000000000000000000072 +:10BED0000000000000000000000000000000000062 +:10BEE0000000000000000000000000000000000052 +:10BEF0000000000000000000000000000000000042 +:10BF00000000000000000000000000000000000031 +:10BF10000000000000000000000000000000000021 +:10BF20000000000000000000000000000000000011 +:10BF30000000000000000000000000000000000001 +:10BF400000000000000000000000000000000000F1 +:10BF500000000000000000000000000000000000E1 +:10BF600000000000000000000000000000000000D1 +:10BF700000000000000000000000000000000000C1 +:10BF800000000000000000000000000000000000B1 +:10BF900000000000000000000000000000000000A1 +:10BFA0000000000000000000000000000000000091 +:10BFB0000000000000000000000000000000000081 +:10BFC0000000000000000000000000000000000071 +:10BFD0000000000000000000000000000000000061 +:10BFE0000000000000000000000000000000000051 +:10BFF0000000000000000000000000000000000041 +:10C000000000000000000000000000000000000030 +:10C010000000000000000000000000000000000020 +:10C020000000000000000000000000000000000010 +:10C030000000000000000000000000000000000000 +:10C0400000000000000000000000000000000000F0 +:10C0500000000000000000000000000000000000E0 +:10C0600000000000000000000000000000000000D0 +:10C0700000000000000000000000000000000000C0 +:10C0800000000000000000000000000000000000B0 +:10C0900000000000000000000000000000000000A0 +:10C0A0000000000000000000000000000000000090 +:10C0B0000000000000000000000000000000000080 +:10C0C0000000000000000000000000000000000070 +:10C0D0000000000000000000000000000000000060 +:10C0E0000000000000000000000000000000000050 +:10C0F0000000000000000000000000000000000040 +:10C10000000000000000000000000000000000002F +:10C11000000000000000000000000000000000001F +:10C12000000000000000000000000000000000000F +:10C1300000000000000000000000000000000000FF +:10C1400000000000000000000000000000000000EF +:10C1500000000000000000000000000000000000DF +:10C1600000000000000000000000000000000000CF +:10C1700000000000000000000000000000000000BF +:10C1800000000000000000000000000000000000AF +:10C19000000000000000000000000000000000009F +:10C1A000000000000000000000000000000000008F +:10C1B000000000000000000000000000000000007F +:10C1C000000000000000000000000000000000006F +:10C1D000000000000000000000000000000000005F +:10C1E000000000000000000000000000000000004F +:10C1F000000000000000000000000000000000003F +:10C20000000000000000000000000000000000002E +:10C21000000000000000000000000000000000001E +:10C22000000000000000000000000000000000000E +:10C2300000000000000000000000000000000000FE +:10C2400000000000000000000000000000000000EE +:10C2500000000000000000000000000000000000DE +:10C2600000000000000000000000000000000000CE +:10C2700000000000000000000000000000000000BE +:10C2800000000000000000000000000000000000AE +:10C29000000000000000000000000000000000009E +:10C2A000000000000000000000000000000000008E +:10C2B000000000000000000000000000000000007E +:10C2C000000000000000000000000000000000006E +:10C2D000000000000000000000000000000000005E +:10C2E000000000000000000000000000000000004E +:10C2F000000000000000000000000000000000003E +:10C30000000000000000000000000000000000002D +:10C31000000000000000000000000000000000001D +:10C32000000000000000000000000000000000000D +:10C3300000000000000000000000000000000000FD +:10C3400000000000000000000000000000000000ED +:10C3500000000000000000000000000000000000DD +:10C3600000000000000000000000000000000000CD +:10C3700000000000000000000000000000000000BD +:10C3800000000000000000000000000000000000AD +:10C39000000000000000000000000000000000009D +:10C3A000000000000000000000000000000000008D +:10C3B000000000000000000000000000000000007D +:10C3C000000000000000000000000000000000006D +:10C3D000000000000000000000000000000000005D +:10C3E000000000000000000000000000000000004D +:10C3F000000000000000000000000000000000003D +:10C40000000000000000000000000000000000002C +:10C41000000000000000000000000000000000001C +:10C42000000000000000000000000000000000000C +:10C4300000000000000000000000000000000000FC +:10C4400000000000000000000000000000000000EC +:10C4500000000000000000000000000000000000DC +:10C4600000000000000000000000000000000000CC +:10C4700000000000000000000000000000000000BC +:10C4800000000000000000000000000000000000AC +:10C49000000000000000000000000000000000009C +:10C4A000000000000000000000000000000000008C +:10C4B000000000000000000000000000000000007C +:10C4C000000000000000000000000000000000006C +:10C4D000000000000000000000000000000000005C +:10C4E000000000000000000000000000000000004C +:10C4F000000000000000000000000000000000003C +:10C50000000000000000000000000000000000002B +:10C51000000000000000000000000000000000001B +:10C52000000000000000000000000000000000000B +:10C5300000000000000000000000000000000000FB +:10C5400000000000000000000000000000000000EB +:10C5500000000000000000000000000000000000DB +:10C5600000000000000000000000000000000000CB +:10C5700000000000000000000000000000000000BB +:10C5800000000000000000000000000000000000AB +:10C59000000000000000000000000000000000009B +:10C5A000000000000000000000000000000000008B +:10C5B000000000000000000000000000000000007B +:10C5C000000000000000000000000000000000006B +:10C5D000000000000000000000000000000000005B +:10C5E000000000000000000000000000000000004B +:10C5F000000000000000000000000000000000003B +:10C60000000000000000000000000000000000002A +:10C61000000000000000000000000000000000001A +:10C62000000000000000000000000000000000000A +:10C6300000000000000000000000000000000000FA +:10C6400000000000000000000000000000000000EA +:10C6500000000000000000000000000000000000DA +:10C6600000000000000000000000000000000000CA +:10C6700000000000000000000000000000000000BA +:10C6800000000000000000000000000000000000AA +:10C69000000000000000000000000000000000009A +:10C6A000000000000000000000000000000000008A +:10C6B000000000000000000000000000000000007A +:10C6C000000000000000000000000000000000006A +:10C6D000000000000000000000000000000000005A +:10C6E000000000000000000000000000000000004A +:10C6F000000000000000000000000000000000003A +:10C700000000000000000000000000000000000029 +:10C710000000000000000000000000000000000019 +:10C720000000000000000000000000000000000009 +:10C7300000000000000000000000000000000000F9 +:10C7400000000000000000000000000000000000E9 +:10C7500000000000000000000000000000000000D9 +:10C7600000000000000000000000000000000000C9 +:10C7700000000000000000000000000000000000B9 +:10C7800000000000000000000000000000000000A9 +:10C790000000000000000000000000000000000099 +:10C7A0000000000000000000000000000000000089 +:10C7B0000000000000000000000000000000000079 +:10C7C0000000000000000000000000000000000069 +:10C7D0000000000000000000000000000000000059 +:10C7E0000000000000000000000000000000000049 +:10C7F0000000000000000000000000000000000039 +:10C800000000000000000000000000000000000028 +:10C810000000000000000000000000000000000018 +:10C820000000000000000000000000000000000008 +:10C8300000000000000000000000000000000000F8 +:10C8400000000000000000000000000000000000E8 +:10C8500000000000000000000000000000000000D8 +:10C8600000000000000000000000000000000000C8 +:10C8700000000000000000000000000000000000B8 +:10C8800000000000000000000000000000000000A8 +:10C890000000000000000000000000000000000098 +:10C8A0000000000000000000000000000000000088 +:10C8B0000000000000000000000000000000000078 +:10C8C0000000000000000000000000000000000068 +:10C8D0000000000000000000000000000000000058 +:10C8E0000000000000000000000000000000000048 +:10C8F0000000000000000000000000000000000038 +:10C900000000000000000000000000000000000027 +:10C910000000000000000000000000000000000017 +:10C920000000000000000000000000000000000007 +:10C9300000000000000000000000000000000000F7 +:10C9400000000000000000000000000000000000E7 +:10C9500000000000000000000000000000000000D7 +:10C9600000000000000000000000000000000000C7 +:10C9700000000000000000000000000000000000B7 +:10C9800000000000000000000000000000000000A7 +:10C990000000000000000000000000000000000097 +:10C9A0000000000000000000000000000000000087 +:10C9B0000000000000000000000000000000000077 +:10C9C0000000000000000000000000000000000067 +:10C9D0000000000000000000000000000000000057 +:10C9E0000000000000000000000000000000000047 +:10C9F0000000000000000000000000000000000037 +:10CA00000000000000000000000000000000000026 +:10CA10000000000000000000000000000000000016 +:10CA20000000000000000000000000000000000006 +:10CA300000000000000000000000000000000000F6 +:10CA400000000000000000000000000000000000E6 +:10CA500000000000000000000000000000000000D6 +:10CA600000000000000000000000000000000000C6 +:10CA700000000000000000000000000000000000B6 +:10CA800000000000000000000000000000000000A6 +:10CA90000000000000000000000000000000000096 +:10CAA0000000000000000000000000000000000086 +:10CAB0000000000000000000000000000000000076 +:10CAC0000000000000000000000000000000000066 +:10CAD0000000000000000000000000000000000056 +:10CAE0000000000000000000000000000000000046 +:10CAF0000000000000000000000000000000000036 +:10CB00000000000000000000000000000000000025 +:10CB10000000000000000000000000000000000015 +:10CB20000000000000000000000000000000000005 +:10CB300000000000000000000000000000000000F5 +:10CB400000000000000000000000000000000000E5 +:10CB500000000000000000000000000000000000D5 +:10CB600000000000000000000000000000000000C5 +:10CB700000000000000000000000000000000000B5 +:10CB800000000000000000000000000000000000A5 +:10CB90000000000000000000000000000000000095 +:10CBA0000000000000000000000000000000000085 +:10CBB0000000000000000000000000000000000075 +:10CBC0000000000000000000000000000000000065 +:10CBD0000000000000000000000000000000000055 +:10CBE0000000000000000000000000000000000045 +:10CBF0000000000000000000000000000000000035 +:10CC00000000000000000000000000000000000024 +:10CC10000000000000000000000000000000000014 +:10CC20000000000000000000000000000000000004 +:10CC300000000000000000000000000000000000F4 +:10CC400000000000000000000000000000000000E4 +:10CC500000000000000000000000000000000000D4 +:10CC600000000000000000000000000000000000C4 +:10CC700000000000000000000000000000000000B4 +:10CC800000000000000000000000000000000000A4 +:10CC90000000000000000000000000000000000094 +:10CCA0000000000000000000000000000000000084 +:10CCB0000000000000000000000000000000000074 +:10CCC0000000000000000000000000000000000064 +:10CCD0000000000000000000000000000000000054 +:10CCE0000000000000000000000000000000000044 +:10CCF0000000000000000000000000000000000034 +:10CD00000000000000000000000000000000000023 +:10CD10000000000000000000000000000000000013 +:10CD20000000000000000000000000000000000003 +:10CD300000000000000000000000000000000000F3 +:10CD400000000000000000000000000000000000E3 +:10CD500000000000000000000000000000000000D3 +:10CD600000000000000000000000000000000000C3 +:10CD700000000000000000000000000000000000B3 +:10CD800000000000000000000000000000000000A3 +:10CD90000000000000000000000000000000000093 +:10CDA0000000000000000000000000000000000083 +:10CDB0000000000000000000000000000000000073 +:10CDC0000000000000000000000000000000000063 +:10CDD0000000000000000000000000000000000053 +:10CDE0000000000000000000000000000000000043 +:10CDF0000000000000000000000000000000000033 +:10CE00000000000000000000000000000000000022 +:10CE10000000000000000000000000000000000012 +:10CE20000000000000000000000000000000000002 +:10CE300000000000000000000000000000000000F2 +:10CE400000000000000000000000000000000000E2 +:10CE500000000000000000000000000000000000D2 +:10CE600000000000000000000000000000000000C2 +:10CE700000000000000000000000000000000000B2 +:10CE800000000000000000000000000000000000A2 +:10CE90000000000000000000000000000000000092 +:10CEA0000000000000000000000000000000000082 +:10CEB0000000000000000000000000000000000072 +:10CEC0000000000000000000000000000000000062 +:10CED0000000000000000000000000000000000052 +:10CEE0000000000000000000000000000000000042 +:10CEF0000000000000000000000000000000000032 +:10CF00000000000000000000000000000000000021 +:10CF10000000000000000000000000000000000011 +:10CF20000000000000000000000000000000000001 +:10CF300000000000000000000000000000000000F1 +:10CF400000000000000000000000000000000000E1 +:10CF500000000000000000000000000000000000D1 +:10CF600000000000000000000000000000000000C1 +:10CF700000000000000000000000000000000000B1 +:10CF800000000000000000000000000000000000A1 +:10CF90000000000000000000000000000000000091 +:10CFA0000000000000000000000000000000000081 +:10CFB0000000000000000000000000000000000071 +:10CFC0000000000000000000000000000000000061 +:10CFD0000000000000000000000000000000000051 +:10CFE0000000000000000000000000000000000041 +:10CFF0000000000000000000000000000000000031 +:10D000000000000000000000000000000000000020 +:10D010000000000000000000000000000000000010 +:10D020000000000000000000000000000000000000 +:10D0300000000000000000000000000000000000F0 +:10D0400000000000000000000000000000000000E0 +:10D0500000000000000000000000000000000000D0 +:10D0600000000000000000000000000000000000C0 +:10D0700000000000000000000000000000000000B0 +:10D0800000000000000000000000000000000000A0 +:10D090000000000000000000000000000000000090 +:10D0A0000000000000000000000000000000000080 +:10D0B0000000000000000000000000000000000070 +:10D0C0000000000000000000000000000000000060 +:10D0D0000000000000000000000000000000000050 +:10D0E0000000000000000000000000000000000040 +:10D0F0000000000000000000000000000000000030 +:10D10000000000000000000000000000000000001F +:10D11000000000000000000000000000000000000F +:10D1200000000000000000000000000000000000FF +:10D1300000000000000000000000000000000000EF +:10D1400000000000000000000000000000000000DF +:10D1500000000000000000000000000000000000CF +:10D1600000000000000000000000000000000000BF +:10D1700000000000000000000000000000000000AF +:10D18000000000000000000000000000000000009F +:10D19000000000000000000000000000000000008F +:10D1A000000000000000000000000000000000007F +:10D1B000000000000000000000000000000000006F +:10D1C000000000000000000000000000000000005F +:10D1D000000000000000000000000000000000004F +:10D1E000000000000000000000000000000000003F +:10D1F000000000000000000000000000000000002F +:10D20000000000000000000000000000000000001E +:10D21000000000000000000000000000000000000E +:10D2200000000000000000000000000000000000FE +:10D2300000000000000000000000000000000000EE +:10D2400000000000000000000000000000000000DE +:10D2500000000000000000000000000000000000CE +:10D2600000000000000000000000000000000000BE +:10D2700000000000000000000000000000000000AE +:10D28000000000000000000000000000000000009E +:10D29000000000000000000000000000000000008E +:10D2A000000000000000000000000000000000007E +:10D2B000000000000000000000000000000000006E +:10D2C000000000000000000000000000000000005E +:10D2D000000000000000000000000000000000004E +:10D2E000000000000000000000000000000000003E +:10D2F000000000000000000000000000000000002E +:10D30000000000000000000000000000000000001D +:10D31000000000000000000000000000000000000D +:10D3200000000000000000000000000000000000FD +:10D3300000000000000000000000000000000000ED +:10D3400000000000000000000000000000000000DD +:10D3500000000000000000000000000000000000CD +:10D3600000000000000000000000000000000000BD +:10D3700000000000000000000000000000000000AD +:10D38000000000000000000000000000000000009D +:10D39000000000000000000000000000000000008D +:10D3A000000000000000000000000000000000007D +:10D3B000000000000000000000000000000000006D +:10D3C000000000000000000000000000000000005D +:10D3D000000000000000000000000000000000004D +:10D3E000000000000000000000000000000000003D +:10D3F000000000000000000000000000000000002D +:10D40000000000000000000000000000000000001C +:10D41000000000000000000000000000000000000C +:10D4200000000000000000000000000000000000FC +:10D4300000000000000000000000000000000000EC +:10D4400000000000000000000000000000000000DC +:10D4500000000000000000000000000000000000CC +:10D4600000000000000000000000000000000000BC +:10D4700000000000000000000000000000000000AC +:10D48000000000000000000000000000000000009C +:10D49000000000000000000000000000000000008C +:10D4A000000000000000000000000000000000007C +:10D4B000000000000000000000000000000000006C +:10D4C000000000000000000000000000000000005C +:10D4D000000000000000000000000000000000004C +:10D4E000000000000000000000000000000000003C +:10D4F000000000000000000000000000000000002C +:10D50000000000000000000000000000000000001B +:10D51000000000000000000000000000000000000B +:10D5200000000000000000000000000000000000FB +:10D5300000000000000000000000000000000000EB +:10D5400000000000000000000000000000000000DB +:10D5500000000000000000000000000000000000CB +:10D5600000000000000000000000000000000000BB +:10D5700000000000000000000000000000000000AB +:10D58000000000000000000000000000000000009B +:10D59000000000000000008000000000000000000B +:10D5A000000000000000000000000000000000007B +:10D5B00000000000000000000000000A0000000061 +:10D5C0000000000000000000100000030000000048 +:10D5D0000000000D0000000D3C02080024427340D2 +:10D5E0003C030800246377CCAC4000000043202BB0 +:10D5F0001480FFFD244200043C1D080037BD7FFC61 +:10D6000003A0F0213C100800261032103C1C08003A +:10D61000279C73400E0010FE000000000000000D6B +:10D6200030A5FFFF30C600FF274301808F4201B8BD +:10D630000440FFFE24020002AC640000A465000860 +:10D64000A066000AA062000B3C021000AC67001844 +:10D6500003E00008AF4201B83C0360008C624FF861 +:10D660000440FFFE3C020200AC644FC0AC624FC4F9 +:10D670003C02100003E00008AC624FF89482000CFA +:10D680002486001400A0382100021302000210803A +:10D690000082402100C8102B1040005700000000FD +:10D6A00090C300002C6200095040005190C200015C +:10D6B000000310803C030800246372F00043102133 +:10D6C0008C420000004000080000000090C30001F0 +:10D6D0002402000A1462003A000000000106102330 +:10D6E0002C42000A1440003624C600028CE20000DE +:10D6F00034420100ACE2000090C2000090C300017F +:10D7000090C4000290C5000300031C000002160034 +:10D710000043102500042200004410250045102578 +:10D7200024C60004ACE2000490C2000090C30001D3 +:10D7300090C4000290C500030002160000031C0004 +:10D740000043102500042200004410250045102548 +:10D7500024C600040A000CB8ACE2000890C3000123 +:10D76000240200041462001624C6000290C20000C5 +:10D7700090C400018CE30000000212000044102558 +:10D780003463000424C60002ACE2000C0A000CB8AA +:10D79000ACE3000090C300012402000314620008FF +:10D7A00024C600028CE2000090C3000024C60001E1 +:10D7B00034420008A0E300100A000CB8ACE20000FC +:10D7C00003E000082402000190C3000124020002CB +:10D7D0001062000224C40002010020210A000CB8DB +:10D7E000008030210A000CB824C6000190C200015C +:10D7F0000A000CB800C2302103E00008000010212C +:10D8000027BDFFE8AFBF0014AFB000100E00130239 +:10D8100000808021936200052403FFFE0200202186 +:10D82000004310248FBF00148FB00010A3620005C6 +:10D830000A00130B27BD001827BDFFE8AFB000108A +:10D84000AFBF00140E000F3C0080802193620000E7 +:10D8500024030050304200FF14430004240201005E +:10D86000AF4201800A000D3002002021AF4001804C +:10D87000020020218FBF00148FB000100A000FE7B4 +:10D8800027BD001827BDFF80AFBE0078AFB700747A +:10D89000AFB20060AFBF007CAFB60070AFB5006C38 +:10D8A000AFB40068AFB30064AFB1005CAFB0005874 +:10D8B0008F5001283C0208008C4231A02403FF80D5 +:10D8C0009365003F0202102100431024AF42002460 +:10D8D0003C0208008C4231A09364000530B200FF86 +:10D8E000020210213042007F034218210004202749 +:10D8F0003C02000A0062182130840001AF8300144A +:10D900000000F0210000B82114800053AFA00050A7 +:10D9100093430116934401128F450104306300FFC5 +:10D920003C020001308400FF00A2282403431021A0 +:10D9300003441821245640002467400014A001CD60 +:10D940002402000193620000304300FF2402002003 +:10D950001062000524020050106200060000000062 +:10D960000A000D74000000000000000D0A000D7D8B +:10D97000AFA000303C1E080027DE738C0A000D7D2E +:10D98000AFA000303C0208008C4200DC24420001C1 +:10D990003C010800AC2200DC0E00139F00000000D8 +:10D9A0000A000F318FBF007C8F4201043C0300202E +:10D9B00092D3000D004310240002202B00042140CC +:10D9C000AFA400308F4301043C02004000621824E1 +:10D9D000146000023485004000802821326200205B +:10D9E000AFA500301440000234A6008000A0302112 +:10D9F00010C0000BAFA6003093C500088F67004C25 +:10DA00000200202100052B0034A5008130A5F08103 +:10DA10000E000C9B30C600FF0A000F2E0000000015 +:10DA20009362003E304200401040000F2402000488 +:10DA300056420007240200120200202100E02821A3 +:10DA40000E0013F702C030210A000F318FBF007C97 +:10DA500016420005000000000E000D2100002021EC +:10DA60000A000F318FBF007C9743011A96C4000E45 +:10DA700093620035326500043075FFFF00442004D6 +:10DA8000AFA400548ED1000410A000158ED400085D +:10DA90009362003E3042004010400007000000004A +:10DAA0000E0013E0022020211040000D00000000B5 +:10DAB0000A000F2E000000008F6200440222102393 +:10DAC0000440016A000000008F6200480222102317 +:10DAD00004410166240400160A000E218FC20004CE +:10DAE0008F6200480222102304400008000000005A +:10DAF0003C0208008C423100244200013C01080035 +:10DB0000AC2231000A000F23000000008F620040A9 +:10DB100002221023184000128F8400143C020800D7 +:10DB20008C423100327300FC0000A8212442000125 +:10DB30003C010800AC2231008F6300409482011C3C +:10DB4000022318233042FFFF0043102A50400010E8 +:10DB50002402000C8F6200400A000DF20222102302 +:10DB60009483011C9762003C0043102B1040000678 +:10DB7000000000009482011C00551023A482011CA7 +:10DB80000A000DF72402000CA480011C2402000CE2 +:10DB9000AFA200308F620040005120231880000D9A +:10DBA00002A4102A1440012600000000149500066B +:10DBB00002A410233A620001304200011440012007 +:10DBC0000000000002A41023022488210A000E098C +:10DBD0003055FFFF00002021326200021040001A81 +:10DBE000326200109362003E30420040504000110B +:10DBF0008FC200040E00130202002021240200182C +:10DC0000A362003F936200052403FFFE020020216F +:10DC1000004310240E00130BA362000524040039F6 +:10DC2000000028210E0013C9240600180A000F3036 +:10DC300024020001240400170040F809000000003D +:10DC40000A000F302402000110400108000000000B +:10DC50008F63004C8F620054028210231C4001032A +:10DC600002831023044200010060A021AFA4001829 +:10DC7000AFB10010AFB50014934201208F65004092 +:10DC80009763003C304200FF034210210044102102 +:10DC90008FA400543063FFFF244240000083182B00 +:10DCA0008FA40030AFA20020AFA50028008320255C +:10DCB000AFA40030AFA50024AFA0002CAFB4003457 +:10DCC0009362003E30420008504000118FC20000B5 +:10DCD00002C0202127A500380E000CB2AFA00038EA +:10DCE0005440000B8FC200008FA200383042010068 +:10DCF000504000078FC200008FA3003C8F6200607D +:10DD00000062102304430001AF6300608FC2000073 +:10DD10000040F80927A400108FA200303042000212 +:10DD200054400001327300FE9362003E30420040D6 +:10DD3000104000378FA200248F6200541682001A10 +:10DD40003262000124020014124200102A4200151F +:10DD500010400006240200162402000C12420007A4 +:10DD6000326200010A000E7D000000001242000530 +:10DD7000326200010A000E7D000000000A000E78E9 +:10DD80002417000E0A000E78241700100A000E7CDB +:10DD900024170012936200232403FFBD00431024C4 +:10DDA000A362002332620001104000198FA20024F8 +:10DDB0002402000C1242000E2A42000D1040000600 +:10DDC0002402000E2402000A124200078FA200243F +:10DDD0000A000E9524420001124200088FA200247E +:10DDE0000A000E95244200010A000E932417000831 +:10DDF0002402000E16E20002241700162417001059 +:10DE00008FA2002424420001AFA200248FA200248C +:10DE10008FA300148F76004000431021AF620040B2 +:10DE20008F8200149442011C104000090000000081 +:10DE30008F6200488F6400409763003C00441023C9 +:10DE40003063FFFF0043102A104000088FA20054E7 +:10DE5000936400368F6300403402FFFC008210049C +:10DE600000621821AF6300488FA200548FA60030D3 +:10DE70000282902130C200081040000E0000000015 +:10DE80008F6200581642000430C600FF9742011A04 +:10DE90005040000134C6001093C500088FA700341D +:10DEA0000200202100052B0034A500800E000C9BF1 +:10DEB00030A5F0808F620040005610231840001BF0 +:10DEC0008FA200183C0208008C42319830420010AA +:10DED0001040000D24020001976200681440000AFF +:10DEE000240200018F8200149442011C1440000699 +:10DEF00024020001A76200689742007A244200646D +:10DF00000A000EE9A7620012A76200120E001302B7 +:10DF1000020020219362007D2403000102002021E1 +:10DF2000344200010A000EE7AFA300501840000A77 +:10DF3000000000000E001302020020219362007D09 +:10DF40002403000102002021AFA30050344200044A +:10DF50000E00130BA362007D9362003E304200402E +:10DF60001440000C326200011040000A0000000062 +:10DF70008F6300408FC20004240400182463000152 +:10DF80000040F809AF6300408FA200300A000F3054 +:10DF9000304200048F620058105200100000000050 +:10DFA0008F620018022210231C4000082404000184 +:10DFB0008F62001816220009000000008F62001C0A +:10DFC000028210230440000500000000AF720058D8 +:10DFD000AFA40050AF710018AF74001C12E0000B2A +:10DFE0008FA200500E00130202002021A377003FF1 +:10DFF0000E00130B0200202102E030212404003720 +:10E000000E0013C9000028218FA200501040000309 +:10E01000000000000E000CA90200202112A0000543 +:10E02000000018218FA2003030420004504000113F +:10E0300000601021240300010A000F30006010214D +:10E040000E001302020020219362007D02002021B5 +:10E05000344200040E00130BA362007D0E000CA9D5 +:10E06000020020210A000F3024020001AF400044CA +:10E07000240200018FBF007C8FBE00788FB7007430 +:10E080008FB600708FB5006C8FB400688FB30064DA +:10E090008FB200608FB1005C8FB0005803E00008C1 +:10E0A00027BD00808F4201B80440FFFE2402080013 +:10E0B000AF4201B803E00008000000003C02000885 +:10E0C00003421021944200483084FFFF2484001250 +:10E0D0003045FFFF10A0001700A4102B10400016C1 +:10E0E00024020003934201202403001AA343018B5E +:10E0F000304200FF2446FFFE8F82000000A6182B4E +:10E100003863000100021382004310241040000510 +:10E110008F84000434820001A746019403E00008C4 +:10E12000AF8200042402FFFE0082102403E00008F6 +:10E13000AF8200042402000303E00008A342018B25 +:10E1400027BDFFE0AFB10014AFB00010AFBF0018A3 +:10E1500030B0FFFF30D1FFFF8F4201B80440FFFE17 +:10E1600000000000AF440180AF4400200E000F42C9 +:10E17000020020218F8300008F840004A750019AA1 +:10E18000A750018EA74301908F8300083082800042 +:10E19000AF4301A8A75101881040000E8F820004F0 +:10E1A00093420116304200FC24420004005A102120 +:10E1B0008C4240003042FFFF144000068F82000472 +:10E1C0003C02FFFF34427FFF00821024AF82000434 +:10E1D0008F8200042403BFFF00431024A74201A63E +:10E1E0009743010C8F42010400031C003042FFFFE3 +:10E1F00000621825AF4301AC3C021000AF4201B8E9 +:10E200008FBF00188FB100148FB0001003E000081A +:10E2100027BD00208F470070934201128F830000BA +:10E2200027BDFFF0304200FF00022882306201006B +:10E23000000030211040004324A40003306240005D +:10E24000104000103062200000041080005A10219D +:10E250008C43400024A4000400041080AFA30000FD +:10E26000005A10218C424000AFA2000493420116D4 +:10E27000304200FC005A10218C4240000A000FC0BE +:10E28000AFA200081040002F0000302100041080D1 +:10E29000005A10218C43400024A400040004108084 +:10E2A000AFA30000005A10218C424000AFA000082C +:10E2B000AFA200048FA80008000030210000202138 +:10E2C000240A00083C0908002529010003A41021A4 +:10E2D000148A000300042A001100000A0000000054 +:10E2E00090420000248400012C83000C00A2102125 +:10E2F00000021080004910218C4200001460FFF3DE +:10E3000000C230263C0408008C8431048F42007027 +:10E310002C83002010600009004738233C030800CC +:10E32000246331080004108000431021248300017D +:10E33000AC4700003C010800AC233104AF86000864 +:10E340002406000100C0102103E0000827BD0010D2 +:10E350003C0208008C42003827BDFFD0AFB5002436 +:10E36000AFB40020AFB10014AFBF0028AFB3001CA2 +:10E37000AFB20018AFB00010000088213C150800B3 +:10E3800026B50038144000022454FFFF0000A021ED +:10E390009742010E8F8400003042FFFF308340001F +:10E3A0001060000A245200043C0200200082102465 +:10E3B00050400007308280008F8200042403BFFF9A +:10E3C000008318240A0010103442100030828000AC +:10E3D0001040000A3C020020008210241040000778 +:10E3E0008F8200043C03FFFF34637FFF0083182407 +:10E3F00034428000AF820004AF8300000E000F980B +:10E400000000000014400007000000009743011EB8 +:10E410009742011C3063FFFF0002140000621825C0 +:10E42000AF8300089742010C8F4340003045FFFF47 +:10E430003402FFFF14620003000000000A001028ED +:10E44000241100208F42400030420100544000015E +:10E45000241100108F8400003082100050400014FE +:10E4600036310001308200201440000B3C021000C5 +:10E47000008210245040000E363100013C030E0093 +:10E480003C020DFF008318243442FFFF0043102B91 +:10E4900050400007363100013C0208008C42002C3D +:10E4A000244200013C010800AC22002C363100055A +:10E4B0003C0608008CC6003454C000238F85000041 +:10E4C0008F820004304240005440001F8F850000BE +:10E4D0003C021F01008210243C0310005443001A28 +:10E4E0008F85000030A20200144000178F850000C5 +:10E4F0003250FFFF363100028F4201B80440FFFE68 +:10E5000000000000AF400180020020210E000F42F9 +:10E51000AF4000208F8300042402BFFFA750019A60 +:10E52000006218248F820000A750018EA751018835 +:10E53000A74301A6A74201903C021000AF4201B8D8 +:10E540000A0010F5000010213C02100000A2102467 +:10E550001040003A0000000010C0000F0000000052 +:10E5600030A201001040000C3C0302003C020F00EE +:10E5700000A2102410430008000000008F82000851 +:10E58000005410240055102190420004244200043D +:10E590000A00109F000221C00000000000051602C2 +:10E5A0003050000F3A0300022E4203EF38420001C0 +:10E5B0002C6300010062182414600073240200011F +:10E5C0003C0308008C6300D02E06000C386200016A +:10E5D0002C4200010046102414400015001021C0F8 +:10E5E0002602FFFC2C4200045440001100002021B0 +:10E5F000386200022C420001004610241040000343 +:10E60000000512420A00109F000020210010182B64 +:10E610000043102450400006001021C000002021BB +:10E620003245FFFF0E000F633226FFFB001021C0B2 +:10E630003245FFFF0A0010F2362600028F424000EA +:10E640003C0308008C630024304201001040004667 +:10E6500030620001322200043070000D14400002CC +:10E660002413000424130002000512C238420001E2 +:10E670002E4303EF304200013863000100431025B0 +:10E68000104000033231FFFB2402FFFB0202802412 +:10E6900010C000183202000130A201001040001525 +:10E6A000320200013C020F0000A210243C030200D1 +:10E6B0001043000F8F8200082403FFFE0203802412 +:10E6C00000541024005510219042000402333025DC +:10E6D0002442000412000002000221C03226FFFF83 +:10E6E0000E000F633245FFFF1200002700001021CB +:10E6F000320200011040000D320200042402000129 +:10E7000012020002023330253226FFFF00002021D2 +:10E710000E000F633245FFFF2402FFFE0202802439 +:10E7200012000019000010213202000410400016EF +:10E7300024020001240200041202000202333025E8 +:10E740003226FFFF3245FFFF0E000F632404010055 +:10E750002402FFFB020280241200000B00001021A3 +:10E760000A0010F5240200011040000700001021EB +:10E770003245FFFF36260002000020210E000F6305 +:10E7800000000000000010218FBF00288FB500247A +:10E790008FB400208FB3001C8FB200188FB100140B +:10E7A0008FB0001003E0000827BD003027BDFFD068 +:10E7B000AFB000103C04600CAFBF002CAFB6002817 +:10E7C000AFB50024AFB40020AFB3001CAFB2001847 +:10E7D000AFB100148C8250002403FF7F3C1A8000EC +:10E7E000004310243442380CAC8250002402000351 +:10E7F0003C106000AF4200088E0208083C1B8008F5 +:10E800003C010800AC2000203042FFF038420010EC +:10E810002C4200010E001B8DAF8200183C04FFFF4C +:10E820003C020400348308063442000CAE0219484E +:10E83000AE03194C3C0560168E0219808CA30000B3 +:10E840003442020000641824AE0219803C02535383 +:10E850001462000334A47C008CA200040050202128 +:10E860008C82007C8C830078AF820010AF83000C18 +:10E870008F55000032A200031040FFFD32A20001BC +:10E880001040013D32A200028F420128AF42002019 +:10E890008F4201048F430100AF8200000E000F3C45 +:10E8A000AF8300043C0208008C4200C01040000806 +:10E8B0008F8400003C0208008C4200C42442000106 +:10E8C0003C010800AC2200C40A00126900000000EC +:10E8D0003C020010008210241440010C8F830004BD +:10E8E0003C0208008C4200203C0308008C63003886 +:10E8F00000008821244200013C010800AC220020D5 +:10E900003C16080026D60038146000022474FFFF6D +:10E910000000A0219742010E308340003042FFFFEB +:10E920001060000A245200043C02002000821024DF +:10E9300050400007308280008F8200042403BFFF14 +:10E94000008318240A0011703442100030828000C5 +:10E950001040000A3C0200200082102410400007F2 +:10E960008F8200043C03FFFF34637FFF0083182481 +:10E9700034428000AF820004AF8300000E000F9885 +:10E980000000000014400007000000009743011E33 +:10E990009742011C3063FFFF00021400006218253B +:10E9A000AF8300089742010C8F4340003045FFFFC2 +:10E9B0003402FFFF14620003000000000A00118807 +:10E9C000241100208F4240003042010054400001D9 +:10E9D000241100108F840000308210005040001479 +:10E9E00036310001308200201440000B3C02100040 +:10E9F000008210245040000E363100013C030E000E +:10EA00003C020DFF008318243442FFFF0043102B0B +:10EA100050400007363100013C0208008C42002CB7 +:10EA2000244200013C010800AC22002C36310005D4 +:10EA30003C0608008CC6003454C000238F850000BB +:10EA40008F820004304240005440001F8F85000038 +:10EA50003C021F01008210243C0310005443001AA2 +:10EA60008F85000030A20200144000178F8500003F +:10EA70003250FFFF363100028F4201B80440FFFEE2 +:10EA800000000000AF400180020020210E000F4274 +:10EA9000AF4000208F8300042402BFFFA750019ADB +:10EAA000006218248F820000A750018EA7510188B0 +:10EAB000A74301A6A74201903C021000AF4201B853 +:10EAC0000A001267000010213C02100000A210246E +:10EAD0001040003A0000000010C0000F00000000CD +:10EAE00030A201001040000C3C0302003C020F0069 +:10EAF00000A2102410430008000000008F820008CC +:10EB000000541024005610219042000424420004B6 +:10EB10000A0011FF000221C00000000000051602DB +:10EB20003050000F3A0300022E4203EF384200013A +:10EB30002C63000100621824146000852402000187 +:10EB40003C0308008C6300D02E06000C38620001E4 +:10EB50002C4200010046102414400015001021C072 +:10EB60002602FFFC2C42000454400011000020212A +:10EB7000386200022C42000100461024504000037D +:10EB8000000512420A0011FF000020210010182B7E +:10EB90000043102450400006001021C00000202136 +:10EBA0003245FFFF0E000F633226FFFB001021C02D +:10EBB0003245FFFF0A001252362600028F42400003 +:10EBC0003C0308008C6300243042010010400046E2 +:10EBD00030620001322200043070000D1440000247 +:10EBE0002413000424130002000512C2384200015D +:10EBF0002E4303EF3042000138630001004310252B +:10EC0000104000033231FFFB2402FFFB020280248C +:10EC100010C000183202000130A20100104000159F +:10EC2000320200013C020F0000A210243C0302004B +:10EC30001043000F8F8200082403FFFE020380248C +:10EC40000054102400561021904200040233302555 +:10EC50002442000412000002000221C03226FFFFFD +:10EC60000E000F633245FFFF120000390000102133 +:10EC7000320200011040000D3202000424020001A3 +:10EC800012020002023330253226FFFF000020214D +:10EC90000E000F633245FFFF2402FFFE02028024B4 +:10ECA0001200002B00001021320200041040002846 +:10ECB0002402000124020004120200020233302563 +:10ECC0003226FFFF3245FFFF0E000F6324040100D0 +:10ECD0002402FFFB020280241200001D000010210C +:10ECE0000A001267240200015040001900001021A0 +:10ECF0003245FFFF36260002000020210E000F6380 +:10ED0000000000000A001267000010212402BFFF6B +:10ED1000006210241040000800000000240287FF59 +:10ED200000621024144000083C020060008210249D +:10ED300010400005000000000E000D34000000002F +:10ED40000A001267000000000E0012C70000000059 +:10ED5000104000063C0240008F4301243C0260202A +:10ED6000AC430014000000003C024000AF420138F8 +:10ED70000000000032A200021040FEBD00000000B2 +:10ED80008F4201403C044000AF4200208F430148C5 +:10ED90003C02700000621824106400420000000071 +:10EDA0000083102B144000063C0260003C0220004F +:10EDB000106200073C0240000A0012C3000000007D +:10EDC0001062003C3C0240000A0012C30000000038 +:10EDD0008F4501408F4601448F42014800021402D2 +:10EDE000304300FF240200041462000A274401801B +:10EDF0008F4201B80440FFFE2402001CAC850000D5 +:10EE0000A082000B3C021000AF4201B80A0012C3FE +:10EE10003C0240002402000914620012000616029F +:10EE2000000229C0AF4500208F4201B80440FFFE18 +:10EE30002402000124030003AF450180A343018B9A +:10EE4000A740018EA740019AA7400190AF4001A8BA +:10EE5000A7420188A74201A6AF4001AC3C021000C6 +:10EE6000AF4201B88F4201B80440FFFE000000002D +:10EE7000AC8500008F42014800021402A482000801 +:10EE800024020002A082000B8F420148A4820010DD +:10EE90003C021000AC860024AF4201B80A0012C345 +:10EEA0003C0240000E001310000000000A0012C3D4 +:10EEB0003C0240000E001BC2000000003C0240006B +:10EEC000AF420178000000000A00112F000000008E +:10EED0008F4201003042003E144000112402000124 +:10EEE000AF4000488F420100304207C0104000058B +:10EEF00000000000AF40004CAF40005003E00008AD +:10EF000024020001AF400054AF4000408F42010096 +:10EF10003042380054400001AF4000442402000158 +:10EF200003E00008000000008F4201B80440FFFE2B +:10EF300024020001AF440180AF400184A74501884D +:10EF4000A342018A24020002A342018B9742014A94 +:10EF500014C00004A7420190AF4001A40A0012EFC0 +:10EF60003C0210008F420144AF4201A43C02100059 +:10EF7000AF4001A803E00008AF4201B88F4201B8DA +:10EF80000440FFFE24020002AF440180AF4401842C +:10EF9000A7450188A342018AA342018B9742014AF7 +:10EFA000A7420190AF4001A48F420144AF4201A8A3 +:10EFB0003C02100003E00008AF4201B83C029000A0 +:10EFC0003442000100822025AF4400208F420020FF +:10EFD0000440FFFE0000000003E000080000000005 +:10EFE0003C028000344200010082202503E000083A +:10EFF000AF44002027BDFFE8AFBF0014AFB0001042 +:10F000008F50014093430149934201489344014882 +:10F01000306300FF304200FF00021200006228252A +:10F020002402001910620076308400802862001AE1 +:10F030001040001C24020020240200081062007707 +:10F04000286200091040000E2402000B2402000177 +:10F0500010620034286200025040000524020006BD +:10F0600050600034020020210A00139A00000000C2 +:10F0700010620030020020210A00139A00000000F4 +:10F080001062003B2862000C504000022402000E77 +:10F090002402000910620056020020210A00139A7F +:10F0A0000000000010620056286200211040000F8E +:10F0B000240200382402001C106200582862001D3F +:10F0C000104000062402001F2402001B1062004CA6 +:10F0D000000000000A00139A000000001062004ABD +:10F0E000020020210A00139A00000000106200456F +:10F0F0002862003910400007240200802462FFCB00 +:10F100002C42000210400045020020210A00139604 +:10F110000000302110620009000000000A00139A6C +:10F12000000000001480003D020020210A0013901E +:10F130008FBF00140A001396240600018F4201B805 +:10F140000440FFFE24020002A342018BA745018870 +:10F150009742014AA74201908F420144A74201927F +:10F160003C021000AF4201B80A00139C8FBF00148C +:10F170009742014A144000290000000093620005F4 +:10F180003042000414400025000000000E0013026D +:10F190000200202193620005020020213442000475 +:10F1A0000E00130BA36200059362000530420004B9 +:10F1B00014400002000000000000000D93620000F7 +:10F1C00024030020304200FF14430014000000001C +:10F1D0008F4201B80440FFFE24020005AF500180B9 +:10F1E000A342018B3C0210000A00139AAF4201B8FF +:10F1F0008FBF00148FB000100A0012F227BD001854 +:10F200000000000D02002021000030218FBF0014FB +:10F210008FB000100A0012DD27BD00180000000D9D +:10F220008FBF00148FB0001003E0000827BD001846 +:10F2300027BDFFE8AFBF00100E000F3C000000002C +:10F24000AF4001808FBF0010000020210A000FE7AF +:10F2500027BD00183084FFFF30A5FFFF00001821F4 +:10F260001080000700000000308200011040000202 +:10F2700000042042006518210A0013AB0005284055 +:10F2800003E000080060102110C0000624C6FFFF44 +:10F290008CA2000024A50004AC8200000A0013B573 +:10F2A0002484000403E000080000000010A000080F +:10F2B00024A3FFFFAC860000000000000000000057 +:10F2C0002402FFFF2463FFFF1462FFFA248400047A +:10F2D00003E0000800000000308300FF30A500FFBD +:10F2E00030C600FF274701808F4201B80440FFFE6F +:10F2F000000000008F42012834634000ACE20000AF +:10F3000024020001ACE00004A4E30008A0E2000A2B +:10F3100024020002A0E2000B3C021000A4E5001051 +:10F32000ACE00024ACE00028A4E6001203E00008F2 +:10F33000AF4201B827BDFFE8AFBF00109362003FA6 +:10F3400024030012304200FF1043000D00803021E2 +:10F350008F620044008210230440000A8FBF001017 +:10F360008F620048240400390000282100C21023C5 +:10F3700004410004240600120E0013C9000000001E +:10F380008FBF00102402000103E0000827BD001811 +:10F3900027BDFFC8AFB20030AFB1002CAFBF003403 +:10F3A000AFB0002890C5000D0080902130A400105F +:10F3B0001080000B00C088218CC300088F620054AD +:10F3C0001062000730A20005144000B524040001BB +:10F3D0000E000D21000020210A0014BB0040202156 +:10F3E00030A200051040000930A30012108000ACCC +:10F3F000240400018E2300088F620054146200A9C7 +:10F400008FBF00340A00142C240400382402001298 +:10F41000146200A3240400010220202127A500106B +:10F420000E000CB2AFA000101040001102402021CD +:10F430008E220008AF620084AF6000400E0013020D +:10F44000000000009362007D024020213442002031 +:10F450000E00130BA362007D0E000CA902402021B8 +:10F46000240400382405008D0A0014B82406001274 +:10F470009362003E304200081040000F8FA200103F +:10F4800030420100104000078FA300148F6200601B +:10F490000062102304430008AF6300600A001441B7 +:10F4A00000000000AF6000609362003E2403FFF79D +:10F4B00000431024A362003E9362003E30420008E5 +:10F4C000144000022406000300003021936200343F +:10F4D000936300378F640084304200FF306300FF85 +:10F4E00000661821000318800043282100A4202B67 +:10F4F0001080000B000000009763003C8F620084C6 +:10F500003063FFFF004510230062182B14600004D5 +:10F51000000000008F6200840A00145D0045802313 +:10F520009762003C3050FFFF8FA300103062000450 +:10F5300010400004000628808FA2001C0A001465F9 +:10F540000202102B2E02021850400003240202185F +:10F550000A00146E020510233063000410600003DB +:10F56000004510238FA2001C00451023004080217D +:10F570002C42008054400001241000800E00130231 +:10F580000240202124020001AF62000C9362003E81 +:10F59000001020403042007FA362003E8E22000413 +:10F5A00024420001AF620040A770003C8F6200500F +:10F5B0009623000E00431021AF6200588F62005066 +:10F5C00000441021AF62005C8E220004AF6200187C +:10F5D0008E220008AF62001C8FA20010304200088B +:10F5E0005440000A93A20020A360003693620036C4 +:10F5F0002403FFDFA36200359362003E0043102422 +:10F60000A362003E0A0014988E220008A36200350F +:10F610008E220008AF62004C8F6200248F6300408E +:10F6200000431021AF6200489362000024030050A1 +:10F63000304200FF144300122403FF803C02080004 +:10F640008C4231A00242102100431024AF42002816 +:10F650003C0208008C4231A08E2400083C03000CC0 +:10F66000024210213042007F03421021004310214A +:10F67000AC4400D88E230008AF820014AC4300DCF9 +:10F680000E00130B02402021240400380000282122 +:10F690002406000A0E0013C9000000002404000123 +:10F6A0008FBF00348FB200308FB1002C8FB0002894 +:10F6B0000080102103E0000827BD003827BDFFF8B7 +:10F6C00027420180AFA20000308A00FF8F4201B8BC +:10F6D0000440FFFE000000008F4601283C020800A5 +:10F6E0008C4231A02403FF80AF86004800C2102165 +:10F6F00000431024AF4200243C0208008C4231A099 +:10F700008FA900008FA8000000C210213042007FA6 +:10F71000034218213C02000A00621821946400D4BC +:10F720008FA700008FA5000024020002AF83001401 +:10F73000A0A2000B8FA30000354260003084FFFFC1 +:10F74000A4E200083C021000AD260000AD04000455 +:10F75000AC60002427BD0008AF4201B803E00008F8 +:10F76000240200018F88003C938200288F830014BC +:10F770003C07080024E7779800481023304200FF38 +:10F78000304900FC246500888F860040304A000321 +:10F790001120000900002021248200048CA3000015 +:10F7A000304400FF0089102AACE3000024A50004C7 +:10F7B0001440FFF924E70004114000090000202153 +:10F7C0002482000190A30000304400FF008A102B27 +:10F7D000A0E3000024A500011440FFF924E7000184 +:10F7E00030C20003144000048F85003C3102000346 +:10F7F0001040000D0000000010A0000900002021B2 +:10F800002482000190C30000304400FF0085102BCB +:10F81000A0E3000024C600011440FFF924E7000122 +:10F8200003E00008000000001100FFFD000020219F +:10F83000248200048CC30000304400FF0088102B99 +:10F84000ACE3000024C600041440FFF924E70004E0 +:10F8500003E00008000000008F83003C9382002832 +:10F8600030C600FF30A500FF00431023304300FFE7 +:10F870008F820014008038210043102114C0000240 +:10F88000244800880083382130E20003144000053A +:10F8900030A2000314400003306200031040000D4A +:10F8A0000000000010A000090000202124820001B7 +:10F8B00090E30000304400FF0085102BA1030000FE +:10F8C00024E700011440FFF92508000103E00008C7 +:10F8D0000000000010A0FFFD000020212482000491 +:10F8E0008CE30000304400FF0085102BAD030000C6 +:10F8F00024E700041440FFF92508000403E0000891 +:10F90000000000000080482130AAFFFF30C600FF41 +:10F9100030E7FFFF274801808F4201B80440FFFE17 +:10F920008F820048AD0200008F420124AD02000426 +:10F930008D220020A5070008A102000A240200165B +:10F94000A102000B934301208D2200088D240004A6 +:10F95000306300FF004310219783003A00441021D8 +:10F960008D250024004310233C0308008C6331A044 +:10F970008F840014A502000C246300E82402FFFF1A +:10F98000A50A000EA5030010A5060012AD0500187B +:10F99000AD020024948201142403FFF73042FFFFDC +:10F9A000AD0200288C820118AD02002C3C02100030 +:10F9B000AD000030AF4201B88D220020004310247A +:10F9C00003E00008AD2200208F82001430E7FFFF23 +:10F9D00000804821904200D330A5FFFF30C600FFD1 +:10F9E0000002110030420F0000E238252748018054 +:10F9F0008F4201B80440FFFE8F820048AD02000034 +:10FA00008F420124AD0200048D220020A5070008CA +:10FA1000A102000A24020017A102000B9343012057 +:10FA20008D2200088D240004306300FF0043102164 +:10FA30009783003A004410218F8400140043102360 +:10FA40003C0308008C6331A0A502000CA505000E44 +:10FA5000246300E8A5030010A5060012AD00001401 +:10FA60008D220024AD0200188C82005CAD02001CC7 +:10FA70008C820058AD0200202402FFFFAD0200245A +:10FA8000948200E63042FFFFAD02002894820060BD +:10FA9000948300BE30427FFF3063FFFF00021200FC +:10FAA00000431021AD02002C3C021000AD000030DC +:10FAB000AF4201B8948200BE2403FFF700A21021D8 +:10FAC000A48200BE8D2200200043102403E0000821 +:10FAD000AD220020274301808F4201B80440FFFE81 +:10FAE0008F8200249442001C3042FFFF000211C0AC +:10FAF000AC62000024020019A062000B3C0210005E +:10FB0000AC60003003E00008AF4201B88F87002CE2 +:10FB100030C300FF8F4201B80440FFFE8F820048CF +:10FB200034636000ACA2000093820044A0A20005F0 +:10FB30008CE20010A4A20006A4A300088C8200207E +:10FB40002403FFF7A0A2000A24020002A0A2000BD7 +:10FB50008CE20000ACA200108CE20004ACA2001405 +:10FB60008CE2001CACA200248CE20020ACA2002895 +:10FB70008CE2002CACA2002C8C820024ACA20018D9 +:10FB80003C021000AF4201B88C82002000431024D8 +:10FB900003E00008AC8200208F86001427BDFFE838 +:10FBA000AFBF0014AFB0001090C20063304200201D +:10FBB0001040000830A500FF8CC2007C2403FFDF4A +:10FBC00024420001ACC2007C90C2006300431024B8 +:10FBD000A0C2006310A000238F830014275001806F +:10FBE000020028210E0015D6240600828F82001400 +:10FBF000904200633042004050400019A38000440E +:10FC00008F83002C8F4201B80440FFFE8F82004892 +:10FC1000AE02000024026082A60200082402000254 +:10FC2000A202000B8C620008AE0200108C62000C75 +:10FC3000AE0200148C620014AE0200188C62001830 +:10FC4000AE0200248C620024AE0200288C620028E0 +:10FC5000AE02002C3C021000AF4201B8A380004469 +:10FC60008F8300148FBF00148FB000109062006368 +:10FC700027BD00183042007FA06200639782003ADF +:10FC80008F86003C8F850014938300280046102344 +:10FC9000A782003AA4A000E490A400638F820040F1 +:10FCA000AF83003C2403FFBF0046102100832024C3 +:10FCB000AF820040A0A400638F820014A04000BD6A +:10FCC0008F82001403E00008A44000BE8F8A001455 +:10FCD00027BDFFE0AFB10014AFB000108F88003C2B +:10FCE000AFBF00189389001C954200E430D100FF9B +:10FCF0000109182B0080802130AC00FF3047FFFF46 +:10FD00000000582114600003310600FF012030215B +:10FD1000010958239783003A0068102B1440003CD7 +:10FD20000000000014680007240200018E02002079 +:10FD30002403FFFB34E7800000431024AE020020C0 +:10FD40002402000134E70880158200053165FFFFB9 +:10FD50000E001554020020210A00169102002021F5 +:10FD60000E001585020020218F8400482743018062 +:10FD70008F4201B80440FFFE24020018AC6400006A +:10FD8000A062000B8F840014948200E6A46200102D +:10FD90003C021000AC600030AF4201B894820060B9 +:10FDA00024420001A4820060948200603C030800A9 +:10FDB0008C63318830427FFF5443000F02002021C2 +:10FDC000948200602403800000431024A482006019 +:10FDD0009082006090830060304200FF000211C2F8 +:10FDE00000021027000211C03063007F0062182556 +:10FDF000A083006002002021022028218FBF00186C +:10FE00008FB100148FB000100A0015F927BD002033 +:10FE1000914200632403FF8000431025A142006348 +:10FE20009782003A3048FFFF110000209383001CA6 +:10FE30008F840014004B1023304600FF948300E4AD +:10FE40002402EFFF0168282B00621824A48300E439 +:10FE500014A000038E020020010058210000302170 +:10FE60002403FFFB34E7800000431024AE0200208F +:10FE700024020001158200053165FFFF0E001554B4 +:10FE8000020020210A0016B99783003A0E0015855A +:10FE9000020020219783003A8F82003CA780003A1D +:10FEA00000431023AF82003C9383001C8F82001418 +:10FEB0008FBF00188FB100148FB0001027BD002035 +:10FEC00003E00008A04300BD938200442403000126 +:10FED00027BDFFE8004330042C420020AFB00010E3 +:10FEE000AFBF00142410FFFE10400005274501801D +:10FEF0003C0208008C4231900A0016D600461024BD +:10FF00003C0208008C423194004610241440000743 +:10FF1000240600848F8300142410FFFF9062006287 +:10FF20003042000F34420040A06200620E0015D63D +:10FF300000000000020010218FBF00148FB00010DD +:10FF400003E0000827BD00188F83002427BDFFE0D1 +:10FF5000AFB20018AFB10014AFB00010AFBF001CBB +:10FF60009062000D00A0902130D100FF3042007F50 +:10FF7000A062000D8F8500148E4300180080802140 +:10FF80008CA2007C146200052402000E90A2006383 +:10FF9000344200200A0016FFA0A200630E0016C51E +:10FFA000A38200442403FFFF104300472404FFFF03 +:10FFB00052200045000020218E4300003C0200102A +:10FFC00000621024504000043C020008020020217E +:10FFD0000A00170E24020015006210245040000988 +:10FFE0008E45000002002021240200140E0016C5D8 +:10FFF000A38200442403FFFF104300332404FFFFC7 +:020000021000EC +:100000008E4500003C02000200A2102410400016A1 +:100010003C0200048F8600248CC200148CC30010A4 +:100020008CC40014004310230044102B50400005E2 +:10003000020020218E43002C8CC2001010620003AD +:10004000020020210A00173F240200123C02000493 +:1000500000A210245040001C00002021020020219A +:100060000A00173F2402001300A2102410400006CB +:100070008F8300248C620010504000130000202168 +:100080000A001739020020218C6200105040000441 +:100090008E42002C020020210A00173F240200118A +:1000A00050400009000020210200202124020017F6 +:1000B0000E0016C5A38200442403FFFF1043000274 +:1000C0002404FFFF000020218FBF001C8FB2001806 +:1000D0008FB100148FB000100080102103E00008E1 +:1000E00027BD00208F83001427BDFFD8AFB40020A8 +:1000F000AFB3001CAFB20018AFB10014AFB0001026 +:10010000AFBF0024906200638F91002C2412FFFF88 +:100110003442004092250000A06200638E2200104D +:100120000080982130B0003F105200060360A021EB +:100130002402000D0E0016C5A38200441052005484 +:100140002404FFFF8F8300148E2200188C63007C30 +:1001500010430007026020212402000E0E0016C585 +:10016000A38200442403FFFF104300492404FFFF3F +:1001700024040020120400048F83001490620063A2 +:1001800034420020A06200638F85003410A000205C +:1001900000000000560400048F8200140260202139 +:1001A0000A0017902402000A9683000A9442006015 +:1001B0003042FFFF144300048F8200202404FFFD1F +:1001C0000A0017B7AF82003C3C0208008C42318C19 +:1001D0000045102B14400006026020210000282159 +:1001E0000E001646240600010A0017B70000202161 +:1001F0002402002D0E0016C5A38200442403FFFF35 +:10020000104300232404FFFF0A0017B70000202139 +:10021000160400058F8400148E2300142402FFFFAF +:100220005062001802602021948200602442000184 +:10023000A4820060948200603C0308008C633188D3 +:1002400030427FFF5443000F0260202194820060FF +:100250002403800000431024A48200609082006088 +:1002600090830060304200FF000211C2000210279C +:10027000000211C03063007F00621825A083006077 +:10028000026020210E0015F9240500010000202144 +:100290008FBF00248FB400208FB3001C8FB20018D2 +:1002A0008FB100148FB000100080102103E000080F +:1002B00027BD00288F83001427BDFFE8AFB00010D2 +:1002C000AFBF0014906200638F87002C00808021F4 +:1002D000344200408CE60010A06200633C0308003A +:1002E0008C6331B030C23FFF0043102B1040004EF2 +:1002F0008F8500302402FF8090A3000D004310245E +:10030000304200FF504000490200202100061382C5 +:10031000304800032402000255020044020020215C +:1003200094A2001C8F85001424030023A4A20114AE +:100330008CE60000000616023042003F1043001019 +:100340003C0300838CE300188CA2007C1062000642 +:100350002402000E0E0016C5A38200442403FFFFF2 +:10036000104300382404FFFF8F8300149062006361 +:1003700034420020A06200630A0017FC8F8300242F +:1003800000C31024144300078F83002490A200624E +:100390003042000F34420020A0A20062A38800383F +:1003A0008F8300249062000D3042007FA062000D18 +:1003B0008F83003410600018020020218F840030E9 +:1003C0008C8200100043102B1040000924020018FA +:1003D000020020210E0016C5A38200442403FFFF63 +:1003E000104300182404FFFF0A00182400002021F5 +:1003F0008C820010240500010200202100431023FC +:100400008F830024240600010E001646AC62001003 +:100410000A001824000020210E0015F9240500010F +:100420000A00182400002021020020212402000DCF +:100430008FBF00148FB0001027BD00180A0016C52A +:10044000A38200448FBF00148FB0001000801021E1 +:1004500003E0000827BD001827BDFFC8AFB2002089 +:10046000AFBF0034AFB60030AFB5002CAFB400283A +:10047000AFB30024AFB1001CAFB000188F46012805 +:100480003C0308008C6331A02402FF80AF86004843 +:1004900000C318213065007F03452821006218241D +:1004A0003C02000AAF43002400A2282190A200626F +:1004B00000809021AF850014304200FF000211023D +:1004C000A382003890A200BC304200021440000217 +:1004D00024030034240300308F820014A3830028F7 +:1004E000938300388C4200C0A3800044AF82003C5C +:1004F000240200041062031C8F84003C8E4400041C +:10050000508003198F84003C8E4200103083FFFF1F +:10051000A784003A106002FFAF8200408F8400146D +:100520002403FF809082006300621024304200FFA9 +:10053000144002CF9785003A9383003824020002CA +:1005400030B6FFFF14620005000088219382002866 +:100550002403FFFD0A001B19AF82003C8F82003C80 +:1005600002C2102B144002A18F8400400E0014EC34 +:1005700000000000938300283C040800248477983E +:10058000240200341462002EAF84002C3C0A0800C0 +:100590008D4A77C82402FFFFAFA2001000803821E7 +:1005A0002405002F3C09080025297398240800FF22 +:1005B0002406FFFF90E2000024A3FFFF00062202B2 +:1005C00000C21026304200FF0002108000491021B6 +:1005D0008C420000306500FF24E7000114A8FFF5FD +:1005E0000082302600061027AFA20014AFA2001030 +:1005F0000000282127A7001027A6001400C51023FB +:100600009044000324A2000100A71821304500FFF8 +:100610002CA200041440FFF9A06400008FA2001077 +:100620001142000724020005024020210E0016C5D9 +:10063000A38200442403FFFF104300642404FFFF4F +:100640003C0208009042779C104000098F82001401 +:10065000024020212402000C0E0016C5A382004493 +:100660002403FFFF104300592404FFFF8F8200146E +:10067000A380001C3C0308008C63779C8C440080A2 +:100680003C0200FF3442FFFF006218240083202B4D +:1006900010800008AF83003402402021240200199A +:1006A0000E0016C5A38200442403FFFF1043004739 +:1006B0002404FFFF8F87003C9782003A8F85003427 +:1006C000AF8700200047202310A0003BA784003AFA +:1006D0008F86001430A200030002102390C300BCD8 +:1006E0003050000300B0282100031882307300014D +:1006F0000013108000A228213C0308008C6331A065 +:100700008F8200483084FFFF0085202B004310219A +:1007100010800011244200888F84002C1082000E6B +:100720003C033F013C0208008C42779800431024B0 +:100730003C0325001443000630E500FF8C820000D6 +:10074000ACC200888C8200100A0018E9ACC2009884 +:100750000E001529000030219382001C8F850014A3 +:100760008F830040020238218F82003CA387001C47 +:1007700094A400E4006218218F82003434841000B5 +:10078000AF83004000503021A4A400E41260000EAA +:10079000AF86003C24E20004A382001C94A200E483 +:1007A00024C30004AF83003C34422000A4A200E430 +:1007B0000A001906000020218F820040AF80003C13 +:1007C00000471021AF820040000020212414FFFFC9 +:1007D000109402112403FFFF3C0808008D0877A83D +:1007E0003C0208008C4231B03C03080090637798CB +:1007F00031043FFF0082102B1040001B3067003F88 +:100800003C0208008C4231A88F83004800042180FC +:1008100000621821006418213062007F0342282101 +:100820003C02000C00A228213C020080344200015E +:100830003066007800C230252402FF800062102458 +:10084000AF42002830640007AF4208048F820014D2 +:100850000344202124840940AF460814AF850024B6 +:10086000AF840030AC4301189383003824020003A6 +:10087000146201CF240200012402002610E201D1FB +:1008800028E2002710400013240200322402002234 +:1008900010E201CC28E200231040000824020024CA +:1008A0002402002010E201B82402002110E20147D6 +:1008B000024020210A001AFB2402000B10E201C1B1 +:1008C0002402002510E20010024020210A001AFB39 +:1008D0002402000B10E201AE28E2003310400006B3 +:1008E0002402003F2402003110E2009A024020213D +:1008F0000A001AFB2402000B10E201A5024020218D +:100900000A001AFB2402000B8F90002C3C03080005 +:100910008C6331B08F8500308E0400100000A82158 +:100920008CB3001430823FFF0043102B8CB10020A9 +:100930005040018F0240202190A3000D2402FF802F +:1009400000431024304200FF504001890240202122 +:10095000000413823042000314400185024020212C +:1009600094A3001C8F8200148E040028A443011459 +:100970008CA20010026218231064000302402021A0 +:100980000A00197C2402001F8F82003400621021AB +:100990000262102B104000088F83002402402021A7 +:1009A000240200180E0016C5A382004410540174DE +:1009B0002404FFFF8F8300248F8400348C62001096 +:1009C0000224882100441023AC6200108F8200149E +:1009D000AC7100208C4200680051102B10400009BF +:1009E0008F830030024020212402001D0E0016C516 +:1009F000A38200442403FFFF104301612404FFFF8E +:100A00008F8300308E0200248C6300241043000783 +:100A1000024020212402001C0E0016C5A3820044BF +:100A20002403FFFF104301562404FFFF8F8400249A +:100A30008C82002424420001AC8200241233000482 +:100A40008F8200148C4200685622000E8E02000035 +:100A50008E0200003C030080004310241440000D6F +:100A60002402001A024020210E0016C5A382004471 +:100A70002403FFFF104301422404FFFF0A0019BAB8 +:100A80008E0200143C0300800043102450400003F9 +:100A90008E020014AC8000208E0200142411FFFF8F +:100AA0001051000E3C0308003C0208008C423190BB +:100AB000004310242403001B14400007A3830044B8 +:100AC0000E0016C5024020211051012D2404FFFF05 +:100AD0000A0019CB8E030000A38000448E0300009F +:100AE0003C02000100621024104000123C02008011 +:100AF0000062102414400008024020212402001A41 +:100B00000E0016C5A38200442403FFFF1043011CFE +:100B10002404FFFF02402021020028210E0016E5D8 +:100B2000240600012403FFFF104301152404FFFFE6 +:100B3000241500018F83002402A0302102402021CF +:100B40009462003624050001244200010A001ADFE5 +:100B5000A46200368F90002C3C0308008C6331B0F7 +:100B60008E13001032623FFF0043102B10400089AB +:100B70008F8400302402FF809083000D00431024F6 +:100B8000304200FF104000842402000D0013138245 +:100B900030420003240300011443007F2402000DAF +:100BA0009082000D30420008544000048F820034CF +:100BB000024020210A001A102402002450400004A0 +:100BC0008E03000C024020210A001A102402002784 +:100BD0008C82002054620006024020218E0300080F +:100BE0008C820024506200098E02001402402021F1 +:100BF000240200200E0016C5A38200441054007188 +:100C00002403FFFF0A001A458F8400242411FFFFEC +:100C1000145100048F860014024020210A001A405B +:100C2000240200258E0300188CC2007C1062000391 +:100C30002402000E0A001A40024020218E030024E4 +:100C40008C82002810620003240200210A001A404E +:100C5000024020218E0500288C82002C10A2000367 +:100C60002402001F0A001A40024020218E03002C9B +:100C700014600003240200230A001A4002402021CD +:100C80008CC200680043102B104000032402002691 +:100C90000A001A40024020218C82001400651821AD +:100CA0000043102B104000088F84002402402021B4 +:100CB000240200220E0016C5A382004410510041F8 +:100CC0002403FFFF8F8400242403FFF79082000D8C +:100CD00000431024A082000D8F8600143C030800FE +:100CE0008C6331AC8F82004894C400E08F8500246F +:100CF0000043102130847FFF000420400044102175 +:100D00003043007F034320213C03000E0083202159 +:100D10002403FF8000431024AF42002CA493000062 +:100D20008CA2002824420001ACA200288CA2002C36 +:100D30008E03002C00431021ACA2002C8E02002C4C +:100D4000ACA200308E020014ACA2003494A2003A8F +:100D500024420001A4A2003A94C600E03C0208002C +:100D60008C4231B024C4000130837FFF1462000F35 +:100D700000803021240280000082302430C2FFFF36 +:100D8000000213C2304200FF000210270A001A7E40 +:100D9000000233C02402000D024020210E0016C5BF +:100DA000A38200440A001A84004018218F82001494 +:100DB00002402021240500010E0015F9A44600E0A0 +:100DC000000018210A001B16006088218F90002C5B +:100DD0003C0308008C6331B08E05001030A23FFF49 +:100DE0000043102B104000612402FF808F840030EC +:100DF0009083000D00431024304200FF5040005CFF +:100E0000024020218F8200341040000B0005138225 +:100E10008F8200149763000A944200603042FFFF03 +:100E200014430005000513828F8200202404FFFD77 +:100E30000A001AF3AF82003C304200031440000E57 +:100E40000000000092020002104000058E03002402 +:100E500050600015920300030A001AAF02402021DF +:100E60008C82002450620010920300030240202173 +:100E70000A001AB72402000F9082000D30420008C9 +:100E80005440000992030003024020212402001074 +:100E90000E0016C5A38200442403FFFF1043003850 +:100EA0002404FFFF92030003240200025462000C9A +:100EB000920200038F820034544000099202000322 +:100EC000024020212402002C0E0016C5A3820044FB +:100ED0002403FFFF1043002A2404FFFF92020003B3 +:100EE0000200282102402021384600102CC60001B3 +:100EF0002C4200010E0016E5004630252410FFFFAD +:100F00001050001F2404FFFF8F8300341060001373 +:100F1000024020213C0208008C42318C0043102BFF +:100F200014400007000000000000282124060001F2 +:100F30000E001646000000000A001AF300002021EF +:100F40002402002D0E0016C5A38200441050000C90 +:100F50002404FFFF0A001AF3000020210E0015F9F7 +:100F6000240500010A001AF300002021024020217C +:100F70002402000D0E0016C5A3820044004020216B +:100F80000A001B16008088211514000E00000000C6 +:100F90000E00174C024020210A001B160040882139 +:100FA0000E0016C5A38200440A001B1600408821CB +:100FB00014620017022018212402002314E2000505 +:100FC0002402000B0E0017C0024020210A001B164D +:100FD0000040882102402021A38200440E0016C553 +:100FE0002411FFFF0A001B170220182130A500FF63 +:100FF0000E001529240600019783003A8F82003CD9 +:10100000A780003A00431023AF82003C0220182141 +:101010001220003E9782003A2402FFFD5462003EF7 +:101020008E4300208E4200048F830014005610234C +:10103000AE420004906200633042007FA062006311 +:101040008E4200208F840014A780003A34420002B0 +:10105000AE420020A48000E4908200632403FFBF1E +:1010600000431024A08200630A001B598E43002015 +:101070009082006300621024304200FF1040002381 +:101080009782003A90820088908300BD2485008872 +:101090003042003F2444FFE02C820020A383001C48 +:1010A00010400019AF85002C2402000100821804B2 +:1010B000306200191440000C3C02800034420002EF +:1010C000006210241440000B306200201040000F1A +:1010D0009782003A90A600010240202124050001D9 +:1010E0000A001B5330C60001024020210A001B5297 +:1010F00024050001024020210000282124060001CF +:101100000E001646000000009782003A1440FD04CD +:101110008F8400148E4300203062000410400012BF +:101120008F84003C2402FFFB00621024AE420020AA +:10113000274301808F4201B80440FFFE8F820048A0 +:10114000AC6200008F420124AC6200042402608380 +:10115000A462000824020002A062000B3C021000FE +:10116000AF4201B88F84003C8F8300148FBF0034DE +:101170008FB600308FB5002C8FB400288FB30024B9 +:101180008FB200208FB1001C8FB000182402000124 +:1011900027BD003803E00008AC6400C030A500FFA4 +:1011A0002403000124A900010069102B1040000C49 +:1011B00000004021240A000100A31023004A380443 +:1011C00024630001308200010069302B10400002CE +:1011D000000420420107402554C0FFF800A310235B +:1011E00003E00008010010213C020800244260A432 +:1011F0003C010800AC22738C3C02080024425308D6 +:101200003C010800AC2273902402000627BDFFE0D9 +:101210003C010800A02273943C021EDCAFB200180F +:10122000AFB10014AFBF001CAFB0001034526F411B +:1012300000008821240500080E001B7A02202021CE +:10124000001180803C07080024E773980002160014 +:1012500002071821AC6200000000282124A200012E +:101260003045FFFF8C6200002CA6000804410002FC +:10127000000220400092202614C0FFF8AC64000059 +:10128000020780218E0400000E001B7A2405002036 +:10129000262300013071FFFF2E2301001460FFE5BB +:1012A000AE0200008FBF001C8FB200188FB1001477 +:1012B0008FB0001003E0000827BD002027BDFFD835 +:1012C000AFB3001CAFB20018AFBF0020AFB1001425 +:1012D000AFB000108F5101408F48014800089402C0 +:1012E000324300FF311300FF8F4201B80440FFFE7C +:1012F00027500180AE1100008F420144AE0200046D +:1013000024020002A6120008A202000B240200140C +:10131000AE1300241062002528620015104000085A +:101320002402001524020010106200302402001272 +:10133000106200098FBF00200A001CB58FB3001C8B +:101340001062007024020022106200378FBF00205C +:101350000A001CB58FB3001C3C0208008C4231A06F +:101360002403FF800222102100431024AF420024F6 +:101370003C0208008C4231A0022210213042007F42 +:10138000034218213C02000A00621821166000BCCA +:10139000AF830014906200623042000F344200308C +:1013A000A06200620A001CB48FBF00203C046000F1 +:1013B0008C832C083C02F0033442FFFF00621824A7 +:1013C000AC832C083C0208008C4231A08C832C0892 +:1013D000244200740002108200021480006218256A +:1013E000AC832C080A001CB48FBF00203C0208000C +:1013F0008C4231A02403FF800222102100431024DC +:10140000AF4200243C0208008C4231A03C03000A99 +:10141000022210213042007F03421021004310219C +:101420000A001CB3AF8200143C0208008C4231A0B9 +:101430002405FF800222102100451024AF42002421 +:101440003C0208008C4231A0022210213042007F71 +:10145000034218213C02000A0062182190620063D6 +:1014600000A21024304200FF10400085AF8300141A +:1014700024620088944300123C0208008C4231A888 +:1014800030633FFF00031980022210210043102126 +:101490003043007F03432021004510243C03000C0F +:1014A00000832021AF4200289082000D00A210246A +:1014B000304200FF10400072AF8400249082000D83 +:1014C000304200101440006F8FBF00200E0015C87E +:1014D000000000008F4201B80440FFFE0000000041 +:1014E000AE1100008F420144AE020004240200024B +:1014F000A6120008A202000BAE1300240A001CB4BE +:101500008FBF00202406FF8002261024AF42002057 +:101510003C0208008C4231A031043FFF00042180CE +:101520000222102100461024AF4200243C03080090 +:101530008C6331A83C0208008C4231A03227007F26 +:101540000223182102221021006418213042007F5A +:101550003064007F034228213C02000A0066182400 +:1015600000A22821034420213C02000C00822021FB +:10157000AF4300283C020008034718210062902175 +:10158000AF850014AF8400240E0015C8010080212F +:101590008F4201B80440FFFE8F8200248F84001424 +:1015A000274501809042000DACB10000A4B00006B8 +:1015B000000216000002160300021027000237C2C4 +:1015C00014C00016248200889442001232033FFFA8 +:1015D00030423FFF14430012240260829083006374 +:1015E0002402FF8000431024304200FF5040000CD2 +:1015F00024026082908200623042000F3442004038 +:10160000A082006224026084A4A200082402000DCB +:10161000A0A200050A001C9E3C0227002402608252 +:10162000A4A20008A0A000053C02270000061C00A0 +:101630000062182524020002A0A2000BACA3001037 +:10164000ACA00014ACA00024ACA00028ACA0002CDE +:101650008E42004C8F840024ACA200189083000DB1 +:101660002402FF8000431024304200FF1040000598 +:101670008FBF00209082000D3042007FA082000DBD +:101680008FBF00208FB3001C8FB200188FB10014E1 +:101690008FB000103C02100027BD002803E00008B6 +:1016A000AF4201B80800343008003430080033A8D5 +:1016B000080033E0080034140800343808003438D7 +:1016C00008003438080033180A0001240000000024 +:1016D000000000000000000D747061362E322E33C1 +:1016E00000000000060203010000000000000000EE +:1016F00000000000000000000000000000000000EA +:1017000000000000000000000000000000000000D9 +:1017100000000000000000000000000000000000C9 +:1017200000000000000000000000000000000000B9 +:1017300000000000000000000000000000000000A9 +:101740000000000000000000000000000000000099 +:101750000000000000000000000000001000000376 +:10176000000000000000000D0000000D3C02080019 +:1017700024421C003C03080024632094AC40000079 +:101780000043202B1480FFFD244200043C1D080070 +:1017900037BD2FFC03A0F0213C1008002610049058 +:1017A0003C1C0800279C1C000E00015C000000008F +:1017B0000000000D3084FFFF308200078F85001885 +:1017C00010400002248300073064FFF800853021B8 +:1017D00030C41FFF03441821247B4000AF85001C48 +:1017E000AF84001803E00008AF4400843084FFFF9A +:1017F000308200078F8500208F860028104000026D +:10180000248300073064FFF8008520210086182B10 +:1018100014600002AF8500240086202303442821A1 +:1018200034068000AF840020AF44008000A6202151 +:1018300003E00008AF84003827BDFFD8AFB3001C19 +:10184000AFB20018AFB00010AFBF0024AFB400209B +:10185000AFB100143C0860088D1450002418FF7FBD +:101860003C1A8000029898243672380CAD12500051 +:101870008F5100083C07601C3C08600036300001B6 +:10188000AF500008AF800018AF400080AF40008428 +:101890008CE600088D0F08083C0760168CEC0000F1 +:1018A00031EEFFF039CA00103C0DFFFF340B800011 +:1018B0003C030080034B48212D440001018D282466 +:1018C0003C0253533C010800AC230420AF8900388C +:1018D000AF860028AF840010275B400014A20003ED +:1018E00034E37C008CF90004032818218C7F007CF1 +:1018F0008C6500783C0280003C0B08008D6B048CEA +:101900003C0A08008D4A048834520070AF85003CC0 +:10191000AF9F00403C13080026731C440240A021E6 +:101920008E4800008F46000038C30001306400017B +:1019300010800017AF880034028048218D2F0000EE +:101940003C0508008CA5045C3C1808008F1804585E +:1019500001E8102300A280210000C8210202402BD0 +:1019600003198821022838213C010800AC30045CAE +:101970003C010800AC2704588F4E000039CD00010F +:1019800031AC00011580FFED01E04021AF8F003444 +:101990008E5100003C0708008CE7045C3C0D0800F9 +:1019A0008DAD04580228802300F0602100007021D2 +:1019B0000190302B01AE1821006620213C01080067 +:1019C000AC2C045C3C010800AC2404588F46010890 +:1019D0008F47010030C92000AF860000AF87000CA0 +:1019E0001120000A00C040213C1808008F18042C68 +:1019F000270800013C010800AC28042C3C184000DA +:101A0000AF5801380A000196000000009749010410 +:101A100000002821014550213122FFFF0162582199 +:101A20000162F82B015F502130D902003C0108000F +:101A3000AC2B048C3C010800AC2A0488172000154C +:101A400024040F0010E400130000000024080D001F +:101A500010E8023B30CD000611A0FFE93C18400021 +:101A6000936E00002409001031C400F01089027147 +:101A700024020070108202E58F880014250F0001F7 +:101A8000AF8F00143C184000AF5801380A0001968F +:101A900000000000974C01041180FFD93C18400061 +:101AA00030C34000146000A1000000008F460178A0 +:101AB00004C0FFFE8F87003824100800240F0008A0 +:101AC0008CE30008AF500178A74F0140A7400142C6 +:101AD000974E01048F86000031C9FFFF30CD000111 +:101AE00011A002E1012040212531FFFE241800024F +:101AF000A75801463228FFFFA75101483C190800AA +:101B00008F39043C172002D08F8C000C30DF00206E +:101B100017E00002240400092404000130C20C0074 +:101B2000240504005045000134840004A744014A00 +:101B30003C1108008E3104203C1800483C10000184 +:101B40000238182530CF00020070282511E000046B +:101B5000000018213C19010000B9282524030001C8 +:101B600030DF000453E00005AF8300083C0600109E +:101B700000A6282524030001AF830008AF4510000C +:101B80000000000000000000000000000000000055 +:101B90008F83000810600023000000008F451000B4 +:101BA00004A1FFFE000000001060001E0000000005 +:101BB0008F4410003C0C0020008C102410400019B1 +:101BC0008F8E000031CD000211A000160000000031 +:101BD000974F101415E000130000000097591008EB +:101BE0003338FFFF271100060011188200033080F0 +:101BF00000C7282132300001322300031200032CD9 +:101C00008CA200000000000D00C7F821AFE2000028 +:101C10003C0508008CA5043024A600013C01080006 +:101C2000AC2604308F6D00003402FFFFAF8D00043E +:101C30008CEC0000118202A6000020218CED000037 +:101C400031AC01001180028A000000003C02080053 +:101C50008C4204743C0308008C63044C3C1F080055 +:101C60008FFF04703C1808008F1804480048382182 +:101C70000068802100E8282B03E430210208402B73 +:101C80000304882100C57021022878213C01080046 +:101C9000AC30044C3C010800AC2F04483C01080067 +:101CA000AC2704743C010800AC2E04708F8400182B +:101CB0000120302131290007249F000833F91FFF3C +:101CC00003594021AF84001CAF990018251B400028 +:101CD000AF590084112000038F83002024C2000725 +:101CE0003046FFF88F84002800C3282100A4302B41 +:101CF00014C00002AF83002400A428230345602100 +:101D0000340D8000018D10213C0F1000AF850020A4 +:101D1000AF820038AF450080AF4F01788F88001444 +:101D2000250F00010A0001EFAF8F00148F62000839 +:101D30008F670000240500300007760231C300F0F1 +:101D4000106500A7240F0040546FFF4C8F880014CB +:101D50008F4B01780560FFFE0000000030CA0200D2 +:101D600015400003000612820000000D00061282DA +:101D7000304D0003000D4900012D18210003808023 +:101D8000020D402100086080019380218E1F000019 +:101D900017E00002000000000000000D8F6E00043C +:101DA00005C202BD92070006920E000592020004D1 +:101DB0003C090001000E18800070F8218FED00181A +:101DC000277100082448000501A96021000830821D +:101DD000AFEC0018022020210E00059E26050014FD +:101DE000920A00068F7900043C0B7FFF000A2080D6 +:101DF000009178218DF800043566FFFF0326282422 +:101E000003053821ADE70004920E0005920D000491 +:101E1000960C0008000E10800051C8218F2300008E +:101E2000974901043C07FFFF006758243128FFFF52 +:101E3000010DF82103EC50233144FFFF01643025EC +:101E4000AF260000920300072418000110780275E5 +:101E5000240F0003106F0285000000008E050010A3 +:101E60002419000AA7590140A7450142921800040D +:101E70008F860000240F0001A7580144A7400146A7 +:101E80009747010430D100023C050041A7470148B3 +:101E900000001821A74F014A1220000330CB000494 +:101EA0003C0501412403000151600005AF83000897 +:101EB0003C06001000A6282524030001AF8300087B +:101EC000AF4510000000000000000000000000000E +:101ED000000000008F8A000811400004000000008C +:101EE0008F4410000481FFFE000000008F6B000093 +:101EF000920800043C1108008E310444AF8B0004AA +:101F000097590104311800FF3C0E08008DCE0440A3 +:101F10003325FFFF0305382102276021000010212F +:101F2000250F000A31E8FFFF0187482B01C2682115 +:101F300001A9F821311000073C010800AC2C044431 +:101F40003C010800AC3F0440120000038F8C0018D5 +:101F50002506000730C8FFF8010C682131BF1FFFBC +:101F6000AF8C001CAF9F0018AF5F00849744010442 +:101F7000035F80213084FFFF308A00071140000397 +:101F8000261B4000248900073124FFF88F8200209F +:101F90008F850028008220210085702B15C000024B +:101FA000AF820024008520233C0B08008D6B048C3D +:101FB0003C0A08008D4A04880344882134038000C9 +:101FC000022310213C0F1000AF840020AF820038A4 +:101FD000AF440080AF4F01780A0002968F8800144A +:101FE0008F5001780600FFFE30D10200162000035A +:101FF000000612820000000D00061282305F00030E +:10200000001F1900007F302100062080009FC8219A +:1020100000194880013380218E180000130000024F +:10202000000000000000000D8F6C000C058001FB1B +:102030008F870038240E0001AE0E00008CE30008EC +:10204000A20000078F65000400055402314D00FF17 +:1020500025A80005000830822CCB00411560000245 +:10206000A20A00040000000D8F7800043C03FFFF6B +:1020700000E02821330BFFFF256C000B000C1082C1 +:1020800000022080008748218D3F000026040014B4 +:10209000A618000803E3C8240E00059EAD39000011 +:1020A0008F4F01083C11100001F1382410E001AB02 +:1020B00000000000974D01049208000725AAFFECDC +:1020C000350600023144FFFFA2060007960600080D +:1020D0002CC7001354E0000592030007921100077B +:1020E000362F0001A20F00079203000724180001F9 +:1020F000107801C224090003106901D58F880038C7 +:1021000030CBFFFF257100020011788331E400FF1E +:1021100000042880A20F000500A848218D2D000092 +:10212000974A01043C0EFFFF01AEF8243143FFFF44 +:10213000006B1023244CFFFE03ECC825AD390000D2 +:10214000920600053C03FFF63462FFFF30D800FF23 +:102150000018388000F08821922F00143C04FF7F83 +:102160003487FFFF31EE000F01C65821316500FFB3 +:1021700000055080015068218DAC00200148F821F5 +:10218000A20B00060182C824AE0C000CAFF9000CB3 +:10219000920900068E11000C032778240009C080E4 +:1021A0000310702195C60026030828210227202449 +:1021B000AE04000CADCF0020ADC60024ACA60010CC +:1021C0008F8800003C0B08008D6B048C3C0A0800D3 +:1021D0008D4A0488241F001024190002A75F0140C3 +:1021E000A7400142A7400144A7590146974901046D +:1021F00024070001310600022538FFFEA7580148D8 +:102200003C050009A747014A10C00003000018213F +:102210003C05010924030001310C00045180000534 +:10222000AF8300083C08001000A828252403000103 +:10223000AF830008AF451000000000000000000060 +:1022400000000000000000009205000424AE00021F +:1022500031CD0007000D182330620007AE020010D8 +:102260008F90000812000004000000008F4F100043 +:1022700005E1FFFE000000008F7100008F8E001846 +:102280003C0308008C630444AF91000497450104AB +:1022900025CF001031E61FFF30A2FFFFAF8E001CDC +:1022A000AF860018AF4600842449FFFE3C0C0800AE +:1022B0008D8C0440974D010401208021000947C303 +:1022C0000070C02131A9FFFF0310F82B0188C8213D +:1022D000033F202103463821313100073C0108002B +:1022E000AC3804443C010800AC2404401220000334 +:1022F00024FB40002527000730E9FFF88F860020E7 +:102300008F8400280126382100E4C02B170000022A +:10231000AF86002400E438230347202134198000CD +:10232000009910213C0F1000AF870020AF820038C9 +:10233000AF470080AF4F01780A0002968F880014E3 +:102340009747010410E0FDAE3C1840008F5801781B +:102350000700FFFE30C5400010A000033C1F00082E +:102360000000000D3C1F0008AF5F01402410080072 +:102370008F860000AF5001789744010430D90001E6 +:10238000132000ED3086FFFF24CCFFFE240D000259 +:10239000A74D0146A74C01488F9100182408000D55 +:1023A000A748014A8F630000262F000831E21FFF73 +:1023B0000342702130C90007AF830004AF91001CB5 +:1023C000AF82001800C03821AF4200841120000302 +:1023D00025DB400024D800073307FFF88F85002055 +:1023E0008F84002800E5302100C4382B14E000025F +:1023F000AF85002400C430238F8400140346F821E5 +:10240000340C8000AF86002003EC8021AF460080B2 +:10241000249900013C0610003C184000AF460178AA +:10242000AF900038AF990014AF5801380A000196F8 +:10243000000000008F630000975101043067FFFF28 +:102440003228FFFF8F4F017805E0FFFE30EC0007D8 +:10245000000CF82333F0000724F9FFFE2404000ADF +:10246000A7440140A7500142A7590144A740014693 +:10247000A74801488F45010830B800201700000226 +:10248000240300092403000130CD0002A743014AC0 +:102490003C04004111A00003000018213C0401414C +:1024A0002403000130C9000451200005AF83000857 +:1024B0003C0600100086202524030001AF8300089D +:1024C000AF44100000000000000000000000000009 +:1024D000000000008F8E000811C000040000000002 +:1024E0008F4210000441FFFE000000008F7F0000BB +:1024F000276400088F91003CAF9F0004948500087A +:102500009490000A9499000C30AFFFFF0010C400B3 +:102510003323FFFF11F100A6030320253C0E080022 +:102520008DCE04443C0C08008D8C044000E88821CA +:102530002626FFFE01C628210000682100A6F82BF0 +:10254000018D2021009F80213C010800AC2504441E +:102550003C010800AC30044024E200083042FFFF98 +:102560003047000710E000038F830018244F000756 +:1025700031E2FFF83106FFFF30C800070043802139 +:1025800032191FFF0359C021AF83001CAF990018F7 +:10259000271B4000AF590084110000038F8C0020DE +:1025A00024C5000730A6FFF88F84002800CC28211E +:1025B00000A4F82B17E00002AF8C002400A428230D +:1025C000AF850020AF4500803C0408008C840434B3 +:1025D00003454821340E8000012E6821108000053B +:1025E000AF8D0038939100172406000E12260011BB +:1025F0002407043F3C021000AF4201788F8800148A +:10260000250F00010A0001EFAF8F00140E0005C472 +:1026100000E020218F8800143C0B08008D6B048C97 +:102620003C0A08008D4A0488250F00010A0001EFCA +:10263000AF8F00143C021000A7470148AF42017859 +:102640000A0004CE8F88001424040F001184003D7A +:1026500030CE002015C0000224030009240300012D +:102660000A00021AA743014A0A00020DA7400146C8 +:1026700094EF000894F1000A94F0000C8F8C003C59 +:10268000001174003207FFFF31EDFFFF11AC00377E +:1026900001C720253C1808008F1804443C0F08008F +:1026A0008DEF0440000080210308682101A8382B29 +:1026B00001F0702101C760213C010800AC2D0444E9 +:1026C0003C010800AC2C04400A00027A8F840018F8 +:1026D0003C0208008C42047C3C0308008C630454D8 +:1026E0003C1F08008FFF04783C1808008F18045026 +:1026F000004838210068802100E8282B03E43021BD +:102700000208402B0304882100C57021022878218B +:102710003C010800AC3004543C010800AC2F0450CC +:102720003C010800AC27047C3C010800AC2E047876 +:102730000A00027A8F840018A74001460A00043577 +:102740008F91001830CD002015A0FFC52403000D87 +:10275000240300050A00021AA743014A974E010408 +:1027600025C5FFF00A00038130A4FFFF8F980040C9 +:102770001498FFC8000010213C0508008CA5046CCB +:102780003C1F08008FFF046800A8C8210328302BD5 +:1027900003E22021008640213C010800AC39046C92 +:1027A0003C010800AC2804680A00027A8F840018F3 +:1027B0008F8C0040148CFF5900E8C8213C18080099 +:1027C0008F18046C3C1108008E3104682723FFFE2B +:1027D00003034821000010210123302B0222702125 +:1027E00001C668213C010800AC29046C3C010800CA +:1027F000AC2D04680A0004A524E200088F88003884 +:102800003C03FFFF8D02000C0043F82403E4C825BD +:10281000AD19000C0A00038F30CBFFFF0A0003C381 +:10282000AE000000974A0104920400048E26000CBA +:10283000014458212579FFF200C7C0243325FFFF4A +:1028400003053825AE27000C0A0002E68E050010AD +:102850003C0DFFFF8D0A0010014D582401646025D6 +:10286000AD0C00100A00038F30CBFFFF974301042B +:10287000920E00048E290010006E1021244DFFEEF0 +:102880000127602431A8FFFF0188F825AE3F001022 +:102890000A0002E68E0500108E0F000CAE0000004C +:1028A00000078880023028210A0002B8ACAF00205F +:1028B0001460000D3058FFFF3C04FFFF0044682403 +:1028C00001A47026000E602B000D102B004CF82484 +:1028D00013E00002000000000000000D8CAF0000BB +:1028E0000A00025001E410253B03FFFF0003882B80 +:1028F0000018802B0211202410800002000000002C +:102900000000000D8CB900000A0002503722FFFFC2 +:102910003084FFFF30A5FFFF108000070000182162 +:10292000308200011040000200042042006518219E +:102930001480FFFB0005284003E000080060102120 +:1029400010C00007000000008CA2000024C6FFFF9A +:1029500024A50004AC82000014C0FFFB2484000402 +:1029600003E000080000000010A0000824A3FFFFFF +:10297000AC86000000000000000000002402FFFF01 +:102980002463FFFF1462FFFA2484000403E00008BC +:1029900000000000308EFFFF30D8FFFF00057C00F4 +:1029A00001F8602539CDFFFF01AC5021014C582BB7 +:1029B000014B4821000944023127FFFF00E8302184 +:1029C0000006240230C5FFFF00A418213862FFFF73 +:1029D00003E000083042FFFF3C0C08008D8C0484AB +:1029E000240BFF8027BDFFD001845021014B4824D8 +:1029F000AF4900203C0808008D080484AFB20020D5 +:102A0000AFB00018AFBF0028AFB30024AFB1001CB7 +:102A1000936600040104382130E4007F009A1021FD +:102A20003C0300080043902130C500200360802152 +:102A30003C080111277B000814A000022646007004 +:102A40002646006C9213000497510104920F000473 +:102A50003267000F322EFFFF31ED004001C72823FF +:102A600011A0000500004821925900BC3338000431 +:102A70001700009000000000924300BC307F00046B +:102A800013E0000F0000000010A0000D0000000087 +:102A9000960E0002240AFF8000A7602125CDFFFECC +:102AA000A74D1016920B0004014B2024308200FF2A +:102AB00010400085010C40253C0F0400010F40250B +:102AC0008F5301780660FFFE2404000AA7440140EA +:102AD000960D00022404000931AC0007000C5823B5 +:102AE000316A0007A74A0142960200022443FFFE12 +:102AF000A7430144A7400146975F0104A75F01482F +:102B00008F590108333800205300000124040001CC +:102B1000920F000431EE001015C000023483001043 +:102B200000801821A743014A0000000000000000B7 +:102B30000000000000000000AF481000000000008E +:102B40000000000000000000000000008F51100095 +:102B50000621FFFE3113FFFF12600003000000009A +:102B60008F481018ACC8000096030006307FFFFFA6 +:102B700027F900020019988200138880023B302157 +:102B80008CD800001520005700183402920300046E +:102B90002405FF8000A3F82433F100FF1220002C4D +:102BA00000000000924700BC30F2000212400028F2 +:102BB00000000000974B100C2562FFFEA742101684 +:102BC000000000003C0A040035490030AF49100005 +:102BD00000000000000000000000000000000000F5 +:102BE0008F4C10000581FFFE000000009749100C7B +:102BF0008F51101C00C020213127FFFF24F200302C +:102C0000001218820003288000BBF8213226FFFF43 +:102C1000AFF100000E0005B300112C020013C880B4 +:102C2000033B98218E78000000027400AFB80010BA +:102C30008FA80010310FFFFFAFAF00108FA400105E +:102C400001C46825AFAD00108FA60010AE6600006D +:102C500097730008976D000A9766000C8F8A003CF6 +:102C6000000D5C0030CCFFFF3262FFFF104A0036DF +:102C7000016C2025960600023C10100024D30008A9 +:102C80000E00013B3264FFFF974C01040E00014926 +:102C90003184FFFFAF5001788FBF00288FB300242D +:102CA0008FB200208FB1001C8FB0001803E0000825 +:102CB00027BD003010A0FF700000000024A5FFFC1D +:102CC0000A0005EC240900048CD10000AF51101853 +:102CD0008F5301780660FF7A2404000A0A00060177 +:102CE0000000000000A7C8218F8800388F4E101CFC +:102CF0000019C0820018788001E82021AC8E000005 +:102D0000000E2C0200C020210E0005B331C6FFFFCB +:102D1000023B28218CAD000000025400004030210D +:102D2000AFAD00108FAC0010318BFFFFAFAB0010C8 +:102D30008FA2001001424825AFA900108FA70010F4 +:102D40000A000631ACA700008F8F0040148FFFC926 +:102D50000000000097420104960B00023C050800A9 +:102D60008CA5046C3049FFFF316AFFFF3C1108005D +:102D70008E310468012A382124F2FFFE00B240217E +:102D80000012FFC30112C82B023FC02103192021EA +:102D90003C010800AC28046C3C010800AC24046829 +:102DA0000A00066B0000000000A4102B1040000970 +:102DB000240300010005284000A4102B04A00003F8 +:102DC000000318405440FFFC000528401060000735 +:102DD000000000000085302B14C0000200031842E0 +:102DE000008520231460FFFB0005284203E0000853 +:102DF000008010218F85002C27BDFFE800053027BB +:102E00002CC300012CA400020083102510400003F5 +:102E1000AFBF00102405007FAF85002C00052827D8 +:102E200030A5FFFF0E000592240426F58F830030A5 +:102E3000240402BD004030210083382B10E000093B +:102E400024050001000420400083102B04800003AF +:102E5000000528405440FFFC0004204010A000085A +:102E600000C350210064402B1500000200052842D9 +:102E70000064182314A0FFFB0004204200C350216B +:102E80008FBF0010000A4C02312200FF27BD00183E +:102E9000AF8A002C03E00008AF8900300A00002A46 +:102EA00000000000000000000000000D7478703683 +:102EB0002E322E3300000000060203000000000046 +:102EC000000001360000EA60000000000000000081 +:102ED00000000000000000000000000000000000F2 +:102EE00000000000000000000000000000000000E2 +:102EF00000000000000000000000000000000016BC +:102F000000000000000000000000000000000000C1 +:102F100000000000000000000000000000000000B1 +:102F200000000000000000000000000000000000A1 +:102F3000000000000000138800000000000005DC15 +:102F4000000000000000000010000003000000006E +:102F50000000000D0000000D3C02080024423C204F +:102F60003C03080024633DD4AC4000000043202B08 +:102F70001480FFFD244200043C1D080037BD7FFC87 +:102F800003A0F0213C100800261000A83C1C0800FB +:102F9000279C3C200E0002BA000000000000000D3B +:102FA0008F8300383C088000350700708CE50000F6 +:102FB000008330253C02900000C22025AF85003000 +:102FC000AF4400208F4900200520FFFE3C03800015 +:102FD000346200708C4500008F8600303C19080078 +:102FE0008F39007C3C0E08008DCE007800A620238F +:102FF00003245821000078210164682B01CF60214F +:10300000018D50213C010800AC2B007C3C010800E4 +:10301000AC2A007803E00008000000000A0000412C +:10302000240400018F8400383C05800034A2000194 +:103030000082182503E00008AF43002003E00008E9 +:10304000000010213084FFFF30A5FFFF1080000733 +:1030500000001821308200011040000200042042CC +:10306000006518211480FFFB0005284003E00008DC +:103070000060102110C00007000000008CA20000BA +:1030800024C6FFFF24A50004AC82000014C0FFFB8F +:103090002484000403E000080000000010A00008E1 +:1030A00024A3FFFFAC860000000000000000000029 +:1030B0002402FFFF2463FFFF1462FFFA248400044C +:1030C00003E0000800000000308AFFFF93A800130F +:1030D000A74A014497490E1630C600FF3C02100073 +:1030E000A7490146AF450148A3460152A748015AE6 +:1030F000AF4701608FA400188FA30014A7440158A4 +:10310000AF43015403E00008AF42017803E0000838 +:10311000000000003C038000346200708C49000015 +:103120008F8800002484000727BDFFF83084FFF853 +:10313000AF890030974D008A31ACFFFFAFAC000083 +:103140008FAB0000016850232547FFFF30E61FFFCB +:1031500000C4282B14A0FFF73C0C8000358B0070B6 +:103160008D6A00003C0708008CE700843C060800DC +:103170008CC6008000081082014918230002788064 +:1031800000E370210000202101C3C82B00C4C0212E +:1031900001FA4021031948212502400027BD0008FB +:1031A0003C010800AC2E00843C010800AC290080E2 +:1031B00003E00008000000008F8200002486000762 +:1031C00030C5FFF800A2182130641FFF03E000089B +:1031D000AF8400008F8700388F8A004027BDFFB87A +:1031E0008F860044AFB60040AFBF0044AFB5003C8F +:1031F000AFB40038AFB30034AFB20030AFB1002C81 +:10320000AFB000288F4501048D4900ACAF47008066 +:103210008CC8002000A938230000B021AF480E1050 +:103220008F440E1000004821AF440E148CC20024BD +:10323000AF420E188F430E18AF430E1C10E001254D +:103240002D230001936B0008116000D400000000E2 +:10325000976E001031CDFFFF00ED602B158000CF81 +:103260000000000097700010320FFFFFAF4F0E00FC +:103270008F520000325100081220FFFD00000000B4 +:1032800097540E088F460E043285FFFF30B30001BD +:1032900012600132000000000000000D30B8A040B4 +:1032A00024150040131500C030A9A0001120012DE5 +:1032B00000000000937F000813E0000800000000F9 +:1032C00097630010306BFFFF00CB402B1100000311 +:1032D00030AC00401180012300000000A785003CB5 +:1032E000AF8600349366000800E02821AFA70020D5 +:1032F00014C0012427B30020AF60000C9782003C6B +:103300003047400014E00002240300162403000E9E +:1033100024194007A363000AAF790014938A003E82 +:103320008F740014315800070018AA4002959025A8 +:10333000AF7200149784003C8F700014309100101D +:1033400002117825AF6F0014978E003C31CD000834 +:1033500011A00147000028218F6700143C021000D3 +:103360003C0C810000E22825AF65001497460E0A48 +:103370002408000E3405FFFC30C3FFFF006C582505 +:10338000AF6B0004A3680002937F000A27E90004E2 +:10339000A369000A9786003C9363000A30CC1F00A3 +:1033A000000C598301634021251F0028A37F0009D9 +:1033B00097490E0CA769001093790009272A00028B +:1033C000315800070018A82332B10007A371000B81 +:1033D00093740009976400108F910034978F003C1C +:1033E000329200FF024480210205702131ED00403D +:1033F00011A0000531C4FFFF0091282B3C12800072 +:1034000010A000140000A0210224382B14E0011B9E +:103410008FA500208F4D0E14AF4D0E108F420E1C45 +:10342000AF420E18AF440E008F4F000031EE00087F +:1034300011C0FFFD0000000097540E080080882195 +:1034400000009021A794003C8F500E04241400012A +:10345000AF900034976400103095FFFF8E68000035 +:103460000111F82317E00009AE7F00008F650014FA +:103470008F8B004434A60040AF6600148F4C0E10B2 +:10348000AD6C00208F430E18AD63002493670008D5 +:1034900014E000D2000000000E00009E2404001082 +:1034A0008F8900483C08320000402821312600FF67 +:1034B0000006FC0003E8502525390001AF990048BB +:1034C000AC4A0000937800099370000A330400FFAF +:1034D00000047400320F00FF01CF6825AC4D0004DA +:1034E0008F820048064000EAACA20008ACA0000CA5 +:1034F0009783003C306B0008156000022628000608 +:1035000026280002974E0E148F450E1C8F6700046C +:10351000936D000231C4FFFF31A200FFAFA2001083 +:103520008F6C0014AFA800180E00008BAFAC001415 +:10353000240400100E0000C7000000008E7200007E +:1035400016400005000000008F6400142405FFBF32 +:1035500000859824AF7300148F79000C033538214F +:10356000AF67000C9375000816A00008000000006B +:1035700012800006000000008F7F00143C0BEFFF5C +:103580003568FFFE03E84824AF690014A3740008FF +:103590008FA500200A00024602202021AF470E001E +:1035A0000A0000F5000000008F5901780720FFFE97 +:1035B000241F08008F840000AF5F0178974B008ABA +:1035C000316AFFFF014448232528FFFF31021FFF16 +:1035D0002C4300081460FFF9000000008F8E0048A3 +:1035E0008F8D003800C048210344202125C60001EA +:1035F000240C0F00AF86004800E9382324864000E1 +:1036000031CA00FF11AC0005240800019391003E6F +:103610003230000700107A4035E80001000AAC00A3 +:103620003C18010002B8A025AC9440008F930048DC +:1036300030B2003630A40008ACD3000410800097EC +:1036400001123025974E0E0A8F8D00003C0281003A +:1036500031CCFFFF25AB0008018240253C03100060 +:1036600031651FFF25390006241F000EAF48016099 +:1036700000C33025A75F015AAF850000A759015844 +:1036800014E0000A8F93003824120F0052720002D7 +:103690002416000134C600408F580E108F94004449 +:1036A000AE9800208F550E18AE9500248F450E144D +:1036B000AF4501448F590E1CAF590148A34A01522E +:1036C0003C0A1000AF460154AF4A017814E0FEDD19 +:1036D0002D2300010076A025128000178FBF004423 +:1036E0008F84003824160F0010960084000000001C +:1036F0008F45017804A0FFFE24150F001095006E81 +:10370000000000008F470E14240202403C1F1000EE +:10371000AF4701448F440E1CAF440148A3400152FF +:10372000A740015AAF400160A7400158AF42015481 +:10373000AF5F01788FBF00448FB600408FB5003C6B +:103740008FB400388FB300348FB200308FB1002CAB +:103750008FB0002803E0000827BD004814C0FED049 +:1037600030B8A0408F420E148F84004400004821DE +:10377000AC8200208F510E1CAC9100240A00020E76 +:103780002D2300018F910034978A003C3C12800069 +:103790000220A821315800401700FF300000A0216E +:1037A000976900108F9200343139FFFF13320035D2 +:1037B00000002021008048211480FEA000A03821B4 +:1037C0008F420E148F840044AC8200208F510E1C57 +:1037D000AC9100240A00020E2D230001936A000917 +:1037E0009378000B315000FF330F00FF020F702160 +:1037F00025C2000A3050FFFF0E00009E020020216B +:103800008F8600483C1F410024CD0001AF8D004849 +:10381000936C000930C600FF00064400318300FFAE +:10382000246B0002010B4825013FC825AC5900005C +:103830008F67000C97440E1400F22825AC45000455 +:103840008F450E1C8F670004936A00023084FFFFCF +:10385000315800FFAFB800108F6F0014AFB10018DF +:103860000E00008BAFAF00140A0001A60200202159 +:10387000AF6000040A00013EA36000020A00024695 +:1038800000002021000090210A0001702414000192 +:103890003C1280000A000195ACB2000C8F91000030 +:1038A00025240002A744015826300008320F1FFFCC +:1038B0000A0001F9AF8F0000AF40014C1120002C2D +:1038C000000000008F590E10AF5901448F430E18AD +:1038D000240200403C1F1000AF430148A3400152A6 +:1038E000A740015AAF400160A7400158AF420154C0 +:1038F000AF5F01780A0002278FBF00441120000645 +:103900000000000097460E0830CC004015800002F1 +:10391000000000000000000D8F4D017805A0FFFEA3 +:103920000000000097530E103C120500240E2000EA +:10393000326AFFFF0152C025AF58014C8F4F0E1461 +:103940003C021000AF4F01448F500E1CAF50014895 +:10395000A34001528F840038A740015AAF40016054 +:10396000A7400158AF4E01540A000215AF4201783A +:103970008F490E14AF4901448F430E1C0A00028E7A +:10398000240200403C0E20FF27BDFFE03C1A8000CF +:103990003C0F800835CDFFFDAFBF001CAFB2001853 +:1039A000AFB10014AFB00010AF8F0040AF4D0E00AC +:1039B0000000000000000000000000000000000007 +:1039C000000000003C0C00FF358BFFFDAF4B0E00EC +:1039D0003C0660048CC95000240AFF7F3C11600043 +:1039E000012A40243507380CACC750008E24043817 +:1039F00024050009AF4500083083FFFF38622F71AE +:103A00002450C0B3AF8000480E000068AF800000B3 +:103A100052000001AE20442C0E0004353C11800001 +:103A20000E000ED9363000708F8A00403C1208001C +:103A300026523C88020088218E0800008F5F00001B +:103A40003BF900013338000113000017AF88003044 +:103A5000022048218D2700003C0F08008DEF006CEC +:103A60003C0C08008D8C006800E8C02301F8282178 +:103A70000000682100B8302B018D582101664021DB +:103A80003C010800AC25006C3C010800AC28006833 +:103A90008F44000038830001306200011440FFEDC4 +:103AA00000E04021AF8700308E0C00003C0508008C +:103AB0008CA5006C3C0408008C84006801883023CD +:103AC00000A638210000102100E6402B00821821BA +:103AD0000068F8213C010800AC27006C3C0108009C +:103AE000AC3F00688F49010025590088AF99004418 +:103AF000AF890038AF4900208E070000AF87003043 +:103B00008F4D017805A0FFFE000000008E0600002A +:103B10003C0B08008D6B00743C0408008C84007022 +:103B200000C728230165F8210000102103E5402B80 +:103B30000082382100E8C821240908003C0108005F +:103B4000AC3F00743C010800AC390070AF4901780B +:103B500093580108A398003E938F003E31EE000178 +:103B600015C000158F830038240E0D00106E00194B +:103B7000240F0F00106F001D00000000915900007D +:103B800024180050332900FF113800043C1F400066 +:103B9000AF5F01380A0002E7000000000E00090EC6 +:103BA000000000008F8A00403C1F4000AF5F0138DA +:103BB0000A0002E700000000938D003E31AC0006D1 +:103BC000000C51000E0000CE0152D8210A00034320 +:103BD0008F8A00403C1B0800277B3D080E0000CE6A +:103BE000000000000A0003438F8A00403C1B0800CD +:103BF000277B3D280E0000CE000000000A00034392 +:103C00008F8A004090AA00018FAB00108CAC00108E +:103C10003C0300FF8D680004AD6C00208CAD0014E7 +:103C200000E060213462FFFFAD6D00248CA7001816 +:103C30003C09FF000109C024AD6700288CAE001CC0 +:103C40000182C82403197825AD6F0004AD6E002CE5 +:103C50008CAD0008314A00FFAD6D001C94A9000234 +:103C60003128FFFFAD68001090A70000A56000029A +:103C7000A1600004A167000090A30002306200FF71 +:103C80000002198210600005240500011065000E75 +:103C90000000000003E00008A16A00018CD80028A1 +:103CA000354A0080AD7800188CCF0014AD6F001439 +:103CB0008CCE0030AD6E00088CC4002CA16A0001CF +:103CC00003E00008AD64000C8CCD001CAD6D001845 +:103CD0008CC90014AD6900148CC80024AD680008BC +:103CE0008CC70020AD67000C8CC200148C8300646C +:103CF0000043C82B13200007000000008CC20014F2 +:103D0000144CFFE400000000354A008003E0000886 +:103D1000A16A00018C8200640A000399000000007F +:103D200090AA000027BDFFF88FA9001CA3AA0000DD +:103D30008FAE00003C0FFF808FA8001835E2FFFF18 +:103D40008CCD002C01C26024AFAC0000A120000487 +:103D500000E06021A7A000028FB800008D270004BA +:103D60000188182100A0582100C05021006D28268C +:103D70003C06FF7F3C0F00FF2CAD000135EEFFFF3E +:103D800034D9FFFF3C02FF0003193024000D1DC091 +:103D9000010EC82400E2C02400C370250319782551 +:103DA000AD2E0000AD2F00048D450024AFAE000005 +:103DB000AD2500088D4D00202405FFFFAD2D000C22 +:103DC000956800023107FFFFAD27001091660018CB +:103DD00030C200FF000219C2506000018D4500345E +:103DE000AD2500148D67000827BD0008AD27001C15 +:103DF0008C8B00CCAD2C0028AD20002CAD2B0024EA +:103E0000AD20001803E00008AD20002027BDFFE032 +:103E1000AFB20018AFB10014AFB00010AFBF001CBC +:103E20009098000000C088213C0D00FF330F007FF8 +:103E3000A0CF0000908E000135ACFFFF3C0AFF00D0 +:103E4000A0CE000194A6001EA22000048CAB00149A +:103E50008E29000400A08021016C2824012A40241E +:103E60000080902101052025A6260002AE24000432 +:103E700026050020262400080E00007624060002F5 +:103E800092470000260500282624001400071E0083 +:103E90000003160324060004044000032403FFFF6C +:103EA000965900023323FFFF0E000076AE23001068 +:103EB000262400248FBF001C8FB200188FB100147D +:103EC0008FB0001024050003000030210A0000809C +:103ED00027BD002027BDFFD8AFB1001CAFB0001830 +:103EE000AFBF002090A80000240200018FB0003C6A +:103EF0003103003F00808821106200148FAA00382F +:103F0000240B0005506B0016AFAA001000A0202162 +:103F100000C028210E0003DC02003021922400BCE6 +:103F2000308300021060000326060030ACC00000A1 +:103F300024C600048FBF00208FB1001C8FB0001872 +:103F400000C0102103E0000827BD002801403821EF +:103F50000E00035AAFB000100A0004200000000059 +:103F60000E0003A1AFB000140A00042000000000FE +:103F70003C02000A034218213C04080024843D6CE2 +:103F80002405001A000030210A000080AF8300548D +:103F90003C038000346200708C48000000A058216F +:103FA00000C04821308A00FFAF8800308F4401787C +:103FB0000480FFFE3C0C8000358600708CC500003C +:103FC0003C0308008C6300743C1808008F180070D4 +:103FD00000A82023006468210000C82101A4782BD8 +:103FE0000319702101CF60213C010800AC2D007441 +:103FF0003C010800AC2C00708F480E14AF480144FF +:10400000AF47014CA34A0152A74B01589346010800 +:1040100030C5000854A0000135291000934B090059 +:1040200024070050316A00FF11470007000000001C +:104030008F450E1CAF450148AF4901543C091000A3 +:1040400003E00008AF490178934D010831A800084A +:104050001100001000000000934F010831EE001025 +:1040600051C00001352900083C04080090843DD06F +:10407000A34401508F4309A4AF4301488F4209A0D4 +:10408000AF420144AF4901543C09100003E000086D +:10409000AF4901783C1908008F393D8C333800084E +:1040A0005700FFF1352900080A00047300000000E2 +:1040B00024070040AF470814AF4008108F4209445E +:1040C0008F4309508F4409548F45095C8F46094C32 +:1040D000AF820064AF830050AF84004CAF85005CBA +:1040E00003E00008AF8600609346010930C5007FF9 +:1040F000000518C0000521400083102103E00008DE +:10410000244200883C09080091293D9124A800021E +:104110003C05110000093C0000E8302500C51825C9 +:1041200024820008AC83000003E00008AC80000497 +:104130009347010B8F4A002C974F09083C18000E3B +:104140000358482131EEFFFF000E41C0AF48002C5C +:1041500097430908952C001A008040212403000190 +:10416000318BFFFFAC8B00008D2D001C00A058216F +:1041700000C06021AC8D00048D24002030E7004099 +:10418000AD04000891220019304400031083004858 +:104190002885000214A00062240600021086005642 +:1041A00024190003109900660000000010E0003A96 +:1041B000000000003C07080094E73D8624E200016F +:1041C000934F0934934709219525002A31EE00FFCA +:1041D000000E488230ED00FF978700580009360036 +:1041E000000D1C003044FFFF00C310250044C02513 +:1041F00000A778213C19400003197025000F4C00DE +:10420000AD090004AD0E0000934D09203C030006EB +:1042100025090014000D360000C32025AD04000858 +:104220008F59092C24E5000130A27FFFAD19000C45 +:104230008F580930A782005825020028AD180010B9 +:104240008F4F0938AD0F0014AD2B00048F4E09407D +:10425000AD2E0008934D09373C05080090A53D9010 +:104260008F4409488F46094031A700FF00EC182110 +:10427000008678230003C7000005CC0003196025E1 +:1042800031E8FFFC01885825AD2B000CAD20001053 +:1042900003E00008AF4A002C3C0D080095AD3D86B8 +:1042A0003C0E080095CE3D800A0004C901AE1021E5 +:1042B0003C05080094A53D8A3C06080094C63D8054 +:1042C0003C18080097183D7C952E002400A6782104 +:1042D00001F86823000E240025A2FFF200821825B1 +:1042E00024190800AD03000CAD190014AD00001036 +:1042F0000A0004C4250800189526002495250028E6 +:104300000006C40000057C00370E810035ED080072 +:10431000AD0E000CAD0D00100A0004C425080014F9 +:104320001480FFA200000000952400240004140063 +:1043300034430800AD03000C0A0004C42508001033 +:104340003C03080094633D8A3C05080094A53D8029 +:104350003C06080094C63D7C953900249538002819 +:10436000006520210086782300196C000018740075 +:1043700025E2FFEE01C2202535A3810024190800A3 +:10438000AD03000CAD040010AD190018AD00001411 +:104390000A0004C42508001C03E00008240201F4FC +:1043A00027BDFFE8AFB00010AFBF00140E000060E3 +:1043B0000080802124050040AF4508148F83005001 +:1043C0008F84004C8F85005C0070182100641023DE +:1043D00018400004AF830050AF6300548F66005450 +:1043E000AF86004C1200000C000000008F440074E7 +:1043F000936800813409FA002D07000710E00005DA +:1044000000891021936C0081240B01F4018B50046E +:1044100001441021AF62000C8F4E095C01C5682376 +:1044200019A000048FBF00148F4F095CAF8F005C90 +:104430008FBF00148FB000100A00006227BD001863 +:104440008F8400648F8300508F82004CAF640044DF +:10445000AF63005003E00008AF6200543C038000EB +:10446000346200708C43000027BDFFF8308700FFE6 +:1044700030A900FF30C800FFAF8300308F440178BF +:104480000480FFFE3C028000345900708F38000029 +:10449000A3A700033C0708008CE700748FAC000062 +:1044A0003C0608008CC60070030378233C0E7FFF97 +:1044B00000EFC82135CDFFFF00005021018D2824D9 +:1044C00000CA1821000847C0032F202B00A8102580 +:1044D0000064C021AFA200003C010800AC390074A8 +:1044E0003C010800AC380070934F010AA3A0000201 +:1044F0003C0E80FFA3AF00018FAC0000312B007F8A +:1045000035CDFFFF018D4824000B5600012A4025C0 +:10451000240730002406FF803C05100027BD00085A +:10452000AF48014CAF470154A7400158A346015280 +:1045300003E00008AF45017827BDFFE8AFBF0014D6 +:10454000AFB000108F6500743C068000309000FF13 +:1045500000A620250E000060AF6400749363000580 +:10456000346200080E000062A362000502002021F0 +:104570008FBF00148FB00010240500052406000131 +:104580000A00057027BD001827BDFFE03C0380002E +:10459000AFB00010AFBF0018AFB1001434620070AC +:1045A0008C470000309000FF30A800FFAF8700303C +:1045B0008F4401780480FFFE3C18800037110070A2 +:1045C0008E2F00003C0D08008DAD00743C0A0800E1 +:1045D0008D4A007001E7702301AE282100005821A8 +:1045E00000AE302B014B4821012638213C01080048 +:1045F000AC250074000088213C010800AC27007045 +:104600001100000F000000008F6200742619FFFFE8 +:104610003208007F0002FE0233E5007F150000062D +:10462000332200FF2407FF800207202624A3FFFF78 +:1046300000838025320200FF0040802124111008F1 +:104640000E000060000000008F49081831250004AA +:1046500014A0FFFD3218007F001878C000187140C8 +:1046600001CF682125AC0088AF4C0818274A098083 +:104670008D4B0020AF4B01448D460024AF460148CE +:10468000A35001500E000062A740015802201021E3 +:104690008FBF00188FB100148FB0001003E0000826 +:1046A00027BD002027BDFFE8308400FFAFBF00100A +:1046B0000E0005BB30A500FF8F8300508FBF001098 +:1046C000344500402404FF903C02100027BD001830 +:1046D000AF43014CA3440152AF45015403E000082D +:1046E000AF4201789343093E306200081040000D4C +:1046F0003C0901013528080AAC8800008F47007486 +:10470000AC8700043C06080090C63D9030C5001000 +:1047100050A00006AC8000088F6A0060AC8A0008D8 +:104720002484000C03E00008008010210A00062207 +:104730002484000C27BDFFE8AFBF0014AFB0001009 +:104740009346093F00A050210005288000853823AA +:1047500030C200FF240300063C09080095293D866D +:1047600024E8FFD824050004104300372406000283 +:104770009750093C3C0F020400063400320EFFFF44 +:1047800001CF6825AC8D0000934C093E318B002091 +:104790001160000800000000934309363C02010349 +:1047A000345F0300307900FF033FC0252405000873 +:1047B000AC98000493430934935909210005F88209 +:1047C000306200FF0002C082332F00FF00186E002D +:1047D000000F740001AE6025018920253C094000CE +:1047E00000898025ACF0FFD8934309378F4F0948E3 +:1047F0008F580940306200FF004AC821033F7021F2 +:1048000001F86023000E6F0001A650253185FFFCE2 +:10481000001F58800145482501683821AD09002056 +:104820000E00006024F00028240400040E00006242 +:10483000A364003F020010218FBF00148FB000104E +:1048400003E0000827BD00180A0006352406001200 +:1048500027BDFFD024090010AFB60028AFB5002453 +:10486000AFB40020AFB10014AFB000103C0108009D +:10487000A0293D90AFBF002CAFB3001CAFB2001811 +:1048800097480908309400FF3C02000E3107FFFFF3 +:10489000000731C0AF46002C974409089344010B30 +:1048A00030B500FF03428021308300300000B0218A +:1048B0001060012500008821240C00043C01080040 +:1048C000A02C3D90934B093E000B5600000A2E038E +:1048D00004A0016000000000AF400048934F010BAE +:1048E00031EE002011C00006000000009358093E80 +:1048F00000189E0000139603064001890000000086 +:104900009344010B30830040106000038F930050EC +:104910008F8200502453FFFF9347093E30E6000882 +:1049200014C0000224120003000090219619002CEC +:1049300093580934934F0937A7990058330C00FF57 +:1049400031EE00FF024E6821000D5880016C5021AD +:10495000015140213C010800A4283D869205001821 +:1049600030A900FF010918213C010800A4233D885B +:104970009211001816200002000000000000000D37 +:104980003C010800A4233D8A3C010800A4203D808E +:104990003C010800A4203D7C935F010B3063FFFFC6 +:1049A00033F00040120000022464000A2464000B6B +:1049B0003091FFFF0E00009E022020219358010B32 +:1049C0003C08080095083D8A0040202100185982C3 +:1049D000316700010E00049A01072821934C010B56 +:1049E0008F4B002C974E09083C0F000E034F4021BF +:1049F00031CDFFFF000D51C0AF4A002C974309088D +:104A00009505001A004038212404000130A9FFFF59 +:104A1000AC4900008D06001C00404821318A00404E +:104A2000AC4600048D020020ACE20008910300199E +:104A300030630003106400EC28790002172001188D +:104A4000241000021070010C241F0003107F011EAF +:104A500000000000114000DE000000003C090800DA +:104A600095293D8625220001935F0934934E092143 +:104A70009504002A33F900FF0019C08231CF00FFEE +:104A8000978E005800184600000F6C00010D80251D +:104A90003045FFFF02051025008E50213C034000E9 +:104AA00000433025000A6400ACEC0004ACE60000D2 +:104AB000935F09203C19000624EC0014001FC60077 +:104AC00003197825ACEF00088F48092C25CD00018B +:104AD00031A57FFFACE8000C8F500930A785005846 +:104AE00024E80028ACF000108F4409380100802130 +:104AF000ACE40014AD9300048F530940AD9300085B +:104B0000934A09373C19080093393D908F4309486F +:104B10008F460940314200FF0052F82100667023A1 +:104B2000001F7F000019C40001F8282531CDFFFCCB +:104B300000AD2025AD84000CAD800010AF4B002CE3 +:104B4000934B093E317300081260000D3C060101D1 +:104B500034CC080AACEC00288F530074AD13000469 +:104B60003C0B0800916B3D903167001050E0000352 +:104B7000AD0000088F6A0060AD0A00082510000C27 +:104B800012C0003D000000009343093F24160006B8 +:104B900024060004306200FF105600C924070002FA +:104BA0009758093C3C0F0204330DFFFF01AF40252D +:104BB000AE0800009345093E30A400201080000894 +:104BC00000000000935309363C0B0103357F0300BE +:104BD000327900FF033F7025AE0E00042406000862 +:104BE000934F093493480921312AFFFF31ED00FF2B +:104BF000000D1082310300FF0002B60000032C00FC +:104C000002C56025018A9825001220803C094000D9 +:104C10000204502302695825AD4BFFD8935F093732 +:104C20008F4F09488F58094033F900FF0332702134 +:104C30000006B08201D668210007440001F828234D +:104C4000000D1F000068302530A2FFFC2547FFD86B +:104C500000C260250016808002074821ACEC0020CD +:104C6000253000280E00006024120004A372003FCB +:104C70000E000062000000009347010B30F200407C +:104C8000124000053C1900FF8E180000372EFFFF70 +:104C9000030E3024AE0600000E0000C702202021C3 +:104CA0003C10080092103D90321100031220000FBA +:104CB00002A028218F89005025330001AF930050B6 +:104CC000AF7300508F6B00540173F8231BE0000298 +:104CD000026020218F640054AF6400548F4C007434 +:104CE000258401F4AF64000C02A028210280202159 +:104CF000A76000680E0005BB3C1410008F850050B3 +:104D000034550006AF45014C8F8A00488FBF002CF8 +:104D10008FB3001C25560001AF9600488FB20018D3 +:104D2000A34A01528FB60028AF5501548FB1001429 +:104D3000AF5401788FB500248FB400208FB00010DD +:104D400003E0000827BD00309358093E00189E007C +:104D500000139603064200362411000293440923EF +:104D6000308300021060FEDD8F8600608F8200506D +:104D700014C2FEDA000000000E0000600000000017 +:104D80009369003F24070016312800FF1107000C2B +:104D9000240500083C0C0800918C3D90358B0001E7 +:104DA0003C010800A02B3D90936A003F314300FF77 +:104DB00010650065240D000A106D005E2402000CD1 +:104DC0000E000062000000000A00069000000000D3 +:104DD0003C09080095293D863C0A0800954A3D801B +:104DE0000A0006F3012A10213C09080095293D8A92 +:104DF0003C04080094843D803C06080094C63D7C39 +:104E000095030024012410210046F8230003CC0060 +:104E100027F0FFF20330C025240F0800ACF8000C87 +:104E2000ACEF0014ACE000100A0006EE24E7001816 +:104E30003C010800A0313D90935F093E241600011B +:104E400033F900201720FEA5241100080A0006905F +:104E5000241100048F6E00848F4D094011A0FE9E26 +:104E6000AF8E0050240F00143C010800A02F3D908D +:104E70000A00068F00000000950E0024950D002802 +:104E8000000E6400000D2C003589810034A6080056 +:104E9000ACE9000CACE600100A0006EE24E70014B2 +:104EA0001460FEEC000000009502002400021C00CB +:104EB00034640800ACE4000C0A0006EE24E700109D +:104EC0000A000741240700123C02080094423D8A70 +:104ED0003C06080094C63D803C03080094633D7C7A +:104EE00095100024951900280046F82103E3C023FB +:104EF00000106C0000197400270FFFEE01CF282569 +:104F000035AC8100ACEC000CACE5001024070800C7 +:104F1000AD2700182527001C0A0006EEAD2000145E +:104F20008F7F004CAF7F00548F7900540A000699A0 +:104F3000AF790050A362003F0E0000620000000045 +:104F40000A00069000000000240200140A0008274E +:104F5000A362003F27BDFFE8308400FFAFBF001011 +:104F60000E0005BB30A500FF9378007E9379007F8B +:104F7000936E00809368007A332F00FF001866005C +:104F8000000F6C0031CB00FF018D4825000B520053 +:104F90008FBF0010012A3825310600FF344470000D +:104FA00000E628252402FF813C03100027BD0018DD +:104FB000AF45014CAF440154A342015203E0000845 +:104FC000AF43017827BDFFD8AFB20018AFB10014CE +:104FD000AFB00010AFBF0020AFB3001C9342010977 +:104FE000308600FF30B000FF000618C23204000215 +:104FF0003071000114800005305200FF93670005F6 +:1050000030E5000810A0000D30C80010024020213B +:105010000E0005A702202821240400018FBF0020D4 +:105020008FB3001C8FB200188FB100148FB0001026 +:105030000080102103E0000827BD00281500003281 +:105040000000000093430109000028213062007F26 +:10505000000220C00002F94003E49821267900886C +:10506000033B98218E7800248E6F0008130F0046B2 +:10507000000000008F640084241800020004FD82F8 +:1050800033F900031338007C0000000093660083AE +:10509000934A0109514600043205007C10A00060CB +:1050A000000000003205007C14A0005302402021C3 +:1050B00016200006320400018E7F00248F5901045F +:1050C00017F9FFD600002021320400011080000AE9 +:1050D000024020218F4209408F9300641053000644 +:1050E000000000000E00066D022028218F430940B9 +:1050F000AF630044024020210E0006020220282156 +:105100000A000860240400013C0908008D2900649D +:10511000252600013C010800AC26006416000012A0 +:10512000000000008F6D00843C0E00C001AE6024C2 +:1051300015800005024020210E00082E02202821A3 +:105140000A00086024040001240500040E00057014 +:1051500024060001024020210E00082E02202821F2 +:105160000A000860240400010E000041240400012C +:10517000936B007D020B50250E000062A36A007D38 +:105180000A0008A38F6D00848F6600748F480104A5 +:105190008E67002400064E021507FFB63126007FF9 +:1051A000936B008326440001308A007F1146004340 +:1051B000316300FF5464FFB08F6400842645000112 +:1051C00030B1007F30A200FF122600042405000148 +:1051D000004090210A00087624110001240FFF806E +:1051E000024F702401CF9026324200FF00409021F0 +:1051F0000A000876241100010E00066D0220282105 +:10520000321800301300FFAA321000820240202121 +:105210000E0005A7022028210A00086024040001CE +:105220008F6E00743C0F80002405000301CF902591 +:10523000AF72007493710083240600010E000570A4 +:10524000322400FF0E00004124040001936D007D14 +:10525000020D60250E000062A36C007D3C0B08006F +:105260008D6B0054257000013C010800AC300054E7 +:105270000A000860240400018F6800743C09800063 +:105280002405000401093825AF6700749363008387 +:10529000240600010E000570306400FF0E0000417E +:1052A000240400019362007D020298250E00006232 +:1052B000A373007D0A00086024040001324D0080C1 +:1052C00039AC0080546CFF6C8F6400840A0008C9FC +:1052D0002645000127BDFFC83C0A0008AFBF0030CB +:1052E000AFB5002CAFB40028AFB30024AFB200209C +:1052F000AFB1001CAFB00018034AD8212409004008 +:10530000AF490814AF4008108F4209448F43095039 +:105310008F4609548F47095C8F48094C9344010814 +:105320009345010BAF820064308400FF30A500FF7D +:10533000AF830050AF86004CAF87005C0E00084A78 +:10534000AF8800601440017D8FBF0030A760006807 +:10535000934D0900240B00503C15080026B53D482C +:1053600031AC00FF3C12080026523D58118B00035F +:10537000000000000000A8210000902193510109C5 +:105380008F9F005024040010322E007F000E68C052 +:10539000000E6140018D282124B40088AF54081804 +:1053A0008F4901048F4A09A43C0B000E034BC02116 +:1053B000012A10233C010800AC223D6C8F430958A0 +:1053C0003C010800A0243D9097470908007F302346 +:1053D0003C010800AC263D7030E8FFFF0008C9C062 +:1053E0003C010800AC3F3D94AF59002C974209089E +:1053F0009710002C8EB10000930F001803749821B1 +:10540000A7900058AF9300440220F80931F000FF44 +:10541000304E000215C001B2304F000111E0014FC3 +:10542000000000009343093E3066000814C00002EB +:10543000241400030000A0218F5809A424130001A4 +:105440003C010800AC383D98934F0934935109371B +:1054500031EC00FF322E00FF028E6821000D288003 +:1054600000AC5021015058213C010800A42B3D887C +:105470003C010800A42A3D8693490934312200FFEB +:1054800002022021249000103C010800A4303D8439 +:10549000240700068F9F00503C010800AC273D8C7C +:1054A0008F88005C8F59095800008021011F282334 +:1054B00004A00149033F20230480014700A4302BAE +:1054C00010C00149000000003C010800AC253D70FF +:1054D0008E4200000040F809000000003043000246 +:1054E000146000F80040882130440001548000100E +:1054F0008E4200043C0908008D293D743C0AC0001E +:10550000012A8025AF500E008F45000030AB000807 +:105510001160FFFD00000000974D0E0824100001EF +:10552000A78D003C8F4C0E04AF8C00348E420004DB +:105530000040F8090000000002228825322E0002F7 +:1055400015C00180000000003C09080095293D7C41 +:105550003C06080094C63D883C0A0800954A3D7EFA +:105560003C1908008F393D74012660213C18080061 +:105570008F183D983C03080094633D92018A2021D6 +:105580008F4E09400329F821248F000203E32821CC +:10559000031968213C010800A42C3D8AAF8E0064E9 +:1055A0003C010800AC2D3D983C010800A4253D803D +:1055B0000E00009E31E4FFFF8F870048004020214D +:1055C0003C010800A0273D918E42000824E800011C +:1055D000AF8800480040F809000000009344010B28 +:1055E0008F4C002C974A09083C0B000E034B4021BE +:1055F0003149FFFF000919C08F8B0050AF43002CC9 +:10560000974309089506001A00403821308A004067 +:1056100030DFFFFFAC5F00008D19001C0040482107 +:10562000AC5900048D180020AC580008910F0019E7 +:1056300031E30003107300F0000000002862000254 +:105640001440010924050002106500FD240D00032B +:10565000106D010D00000000114000D90000000095 +:105660003C0A0800954A3D8625420001934D0934C5 +:1056700093580921950E002A31A300FF00032082D0 +:10568000331F00FF9798005800047E00001FCC00D5 +:1056900001F940253049FFFF0109102501D83021CB +:1056A0003C0540000045502500066C00ACED0004B0 +:1056B000ACEA0000934309203C04000624ED0014EA +:1056C0000003FE0003E4C825ACF900088F49092C4B +:1056D000270F000131EE7FFFACE9000C8F48093045 +:1056E000A78E005824E90028ACE800108F4509383F +:1056F00001204021ACE50014ADAB00048F4209400D +:10570000ADA20008934B09373C1F080093FF3D9062 +:105710008F4309488F4A0940316600FF00D4202199 +:10572000006A78230004C700001FCC000319282555 +:1057300031EEFFFC00AE1025ADA2000CADA00010B4 +:10574000AF4C002C934C093E318B00085160000F88 +:105750008E58000C3C06010134CA080AACEA002845 +:105760008F4B0074AD2B00043C0C0800918C3D90D5 +:105770003187001050E00003AD2000088F62006008 +:10578000AD2200082528000C8E58000C0300F809F3 +:10579000010020213C19080097393D8A3C1F080070 +:1057A00097FF3D7E033F782125E900020E0000C7E8 +:1057B0003124FFFF3C0E08008DCE3D6C3C080800F4 +:1057C0008D083D7401C828233C010800AC253D6CC0 +:1057D00014A00006000000003C0308008C633D8C10 +:1057E000346400403C010800AC243D8C1200007081 +:1057F0008F8C00448F470E108F900044AE0700201E +:105800008F4D0E18AE0D00243C10080096103D8000 +:105810000E0000600000000024020040AF420814A7 +:105820008F8600508F8A004C00D01821006A5823C0 +:1058300019600004AF830050AF6300548F650054BB +:10584000AF85004C1200000C000000008F44007473 +:10585000936800813409FA002D0E000711C000057D +:1058600000891821937F0081241901F403F9780439 +:1058700001E41821AF63000C8F44095C8F83005C46 +:105880000083C0231B000003000000008F50095C50 +:10589000AF90005C0E000062000000008F8C005092 +:1058A0008E4700103C010800AC2C3D9400E0F80944 +:1058B000000000003C0D08008DAD3D6C55A0FEF5CC +:1058C000240700068F450024975909088F8B006430 +:1058D0008F9400503C0F001F978200588F86005411 +:1058E0008F93004C3328FFFF35E9FF8000A9502437 +:1058F000000871C032320100AF4E0024A4C2002C57 +:10590000AF4A0024AF6B0044AF740050AF73005433 +:105910001640008032380010570000868EA4000424 +:10592000322300405460001B8EB100088EB0000C82 +:105930000200F809000000008FBF00308FB5002C76 +:105940008FB400288FB300248FB200208FB1001CC9 +:105950008FB0001803E0000827BD00389347010905 +:105960008F8800380007FE0003E8C825AF59008083 +:105970008F5809A08F5309A4AFB80010AF580E1468 +:105980008FB40010AF540E10AF530E1C0A00096202 +:10599000AF530E180220F809000000008EB0000C72 +:1059A0000200F809000000000A000AA88FBF0030BA +:1059B000A5800020A59300220A000A5BAD93002475 +:1059C0003C09080095293D863C06080094C63D80A8 +:1059D0000A0009F4012610213C010800AC203D70AA +:1059E0000A00098E8E4200003C010800AC243D7084 +:1059F0000A00098E8E4200003C03080094633D8A31 +:105A00003C04080094843D803C1F080097FF3D7CC7 +:105A1000951800240064C821033F782300186C0007 +:105A200025EEFFF201AE2825AC45000C240208004B +:105A3000ACE20014ACE000100A0009EF24E7001803 +:105A400095060024950900280006240000091C0082 +:105A5000349F810034790800ACFF000CACF90010D1 +:105A60000A0009EF24E700141460FEFB00000000A8 +:105A70009518002400187C0035EE0800ACEE000CF0 +:105A80000A0009EF24E700103C07080094E73D8076 +:105A90003C04080094843D8A3C03080094633D7CE8 +:105AA00095190024951800280087F82103E378232E +:105AB0002407080000192C0000186C0025EEFFEEEA +:105AC00001AE302534A28100AD2700182527001C27 +:105AD000AD22000CAD2600100A0009EFAD20001425 +:105AE00093520109000028210E000602324400FFF3 +:105AF0008FBF00308FB5002C8FB400288FB30024E7 +:105B00008FB200208FB1001C8FB0001803E0000896 +:105B100027BD0038935F010933E400FF0E00066DD6 +:105B200000002821323800105300FF7E322300404D +:105B30008EA400040080F809000000000A000AA2F8 +:105B4000322300401200FF5F000000008F540E144B +:105B50008F920044AE5400208F530E1C0A000A8A14 +:105B6000AE5300248F82001C008040213C040100C1 +:105B70009047008530E3002010600009000000001D +:105B80003C0708008CE73D948F83001800E3202336 +:105B9000048000089389000414E30003010020211D +:105BA00003E00008008010213C04010003E000082D +:105BB000008010211120000B006738238F8C0020FB +:105BC00024090034918B00BC316A0002514000016D +:105BD0002409003000E9682B15A0FFF10100202105 +:105BE00000E938232419FFFC00B9C02400F9782407 +:105BF00000F8702B15C0FFEA01E8202130C2000335 +:105C00000002182314C00012306900030000302184 +:105C100000A9702101C6682100ED602B1180FFE012 +:105C20003C0401002D2F00010006482B01053821FE +:105C300001E9302414C0FFDA24E4FFFC2419FFFC3E +:105C400000B9C0240308202103E0000800801021CF +:105C50008F8B002024060004916A00BC31440004AC +:105C60001480FFEC00A970210A000B5E00003021B7 +:105C700027BDFFE8AFBF00108F460100934A01091E +:105C80003C1F08008FFF00902407FF80314F00FF6A +:105C900031E8007F0008614003E6C821032CC021E1 +:105CA00027090120012770243C010800A02F3DD0C6 +:105CB000AF4E080C3C0D08008DAD00903C040080F8 +:105CC0003482000301A65821016C182124650120AB +:105CD00030AA007801424025AF48081C3C1F08004C +:105CE0008FFF00908F88004003E6C0213319000722 +:105CF00003074824033A7821AF49002825E909C061 +:105D0000952E00023C0D08008DAD008C3C0A080069 +:105D10008D4A009031CC3FFF01A61821000C59801C +:105D2000006B282100A72024AF44002C95220002FC +:105D30003C1F08008FFF008C9107008530593FFF02 +:105D400003E678210019C1800146702101F868211D +:105D500031CC007F31AB007F019A2821017A50219C +:105D60003C03000C3C04000E00A328210144102138 +:105D700030E6002027470980AF82002CAF88001C46 +:105D8000AF890024AF85002010C00006AF8700282F +:105D90008D0200508CA4010C0044302318C0007701 +:105DA00000000000910C0085240DFFDF018D3824D8 +:105DB000A10700858F8B001C8F8900248F87002806 +:105DC0008D65004CAF850018912F000D31EE00203D +:105DD00011C000170000000024090001A38900047D +:105DE000AF80000C8CE400248F85000C240A00088E +:105DF000AF800008AF8000103C010800A42A3D7E5F +:105E00003C010800A4203D920E000B32000030211E +:105E10008F8500248FBF0010AF82001490A8000D62 +:105E200027BD00180008394203E0000830E20001F5 +:105E3000913F00022418000133F900FF001921826C +:105E400010980039240800021088005B8F86002C0F +:105E50008CE5002414A0001B8F9F002091220000DD +:105E6000240A00053046003F10CA00472404000100 +:105E70008F860008A3840004AF860010AF86000C54 +:105E80008CE400248F85000C240A00083C010800E3 +:105E9000A42A3D7E3C010800A4203D920E000B3256 +:105EA000000000008F8500248FBF0010AF82001417 +:105EB00090A8000D27BD00180008394203E0000833 +:105EC00030E200018CF800088CF900248FEE00C449 +:105ED000A38000048CE40024AF8E000C8F85000C9E +:105EE0008F86000803197823240A0008AF8F00105A +:105EF0003C010800A42A3D7E3C010800A4203D92FC +:105F00000E000B32000000008F8500248FBF0010B0 +:105F1000AF82001490A8000D27BD00180008394278 +:105F200003E0000830E20001912300003062003FEE +:105F3000104400278F8500208CE400241480002169 +:105F4000000000008D2E00183C187FFF8F85002078 +:105F5000370FFFFF01CF1824AF8300088F9F000881 +:105F60008CA8008403E8C82B1720000203E020213E +:105F70008CA400840A000BEDAF8400088CA3010CF4 +:105F80000A000BCBAF8300188D2C00188F860008F9 +:105F90003C0D7FFF8F89002035A3FFFF018358242C +:105FA00024040001AF8B0010AD2000CCA3840004BA +:105FB0000A000BF9AF86000C8CCA00140A000BED26 +:105FC000AF8A00088CA300C80A000C30AF83000819 +:105FD0008F84002C8CAC00648C8D0014018D582BA8 +:105FE00011600004000000008CA200640A000C3064 +:105FF000AF8200088C8200140A000C30AF820008C7 +:106000008F85000C27BDFFE0AFBF0018AFB10014B3 +:1060100014A00007AFB000108F86002424020005F2 +:1060200090C400003083003F106200B68F840020CF +:106030008F91000800A080218F8C00283C0508006B +:106040008CA53D708D8B000431663FFF00C5502B41 +:106050005540000100C02821938D000411A0007359 +:1060600000B0F82B8F98002024040034930F00BC5C +:1060700031EE000251C000012404003000A4C82BFE +:10608000172000D10000000000A4282300B0F82B46 +:106090003C010800A4243D7C17E000680200202198 +:1060A0003C0308008C633D6C0083102B54400001BE +:1060B000008018218F8800243C010800AC233D7427 +:1060C000000048219104000D308300205060000141 +:1060D0008F490E188F8300140123382B10E00059CC +:1060E000000000003C0408008C843D7400895821A5 +:1060F000006B502B114000560090602B006930233C +:1061000000C020213C010800AC263D7412000003B1 +:10611000241FFFFC1090008A32270003009FC82430 +:106120003C010800AC393D743C010800A4203D92BC +:106130008F84000C120400078F830020AF910008A9 +:10614000020020218C7100CCAF90000C26300001A1 +:10615000AC7000CC3C0208008C423D748F8A001069 +:10616000240700180082202301422823AF84000C5A +:1061700010800002AF850010240700108F86001CDD +:106180003C010800A0273D902407004090CC0085EA +:10619000318B00C0116700408F8D001414A00015D2 +:1061A00000002021934A01098F420974314500FF04 +:1061B0000002260224A300013090007F3071007F8E +:1061C0001230007A2407FF80A0C300833C09080036 +:1061D0008D293D8C8F880024240D0002352C000869 +:1061E0003C010800A02D3DD13C010800AC2C3D8CA9 +:1061F00024040010910E000D31C6002010C00005CF +:1062000000801821240800013C010800AC283D74DE +:10621000348300018FBF00188FB100148FB00010BD +:106220000060102103E0000827BD00203C010800A9 +:10623000A4203D7C13E0FF9A020020210A000C817B +:1062400000A020213C0408008C843D740090602B49 +:106250001180FFAE000000003C0F080095EF3D7C70 +:1062600001E4702101C6682B11A000072C820004F4 +:106270003C1F60008FF954043338003F1700FFE5DE +:10628000240300422C8200041040FFA0240300429B +:106290000A000CDF8FBF0018152DFFC000000000A2 +:1062A0008CDF00743C0380002405FF8003E3C825D5 +:1062B000ACD9007490D80085240E0004240400108A +:1062C000330F003F01E54025A0C800858F880024DA +:1062D0003C010800A02E3DD1240300019106000DD1 +:1062E00030C9002015200003000000003C03080016 +:1062F0008C633D743C010800AC233D6C0A000CD655 +:10630000000000008F8700108C88008400E8282B94 +:1063100014A0000200E088218C910084240900016F +:10632000A38900048F440E18022028210E000B328E +:1063300002203021022080210A000C67AF82001465 +:1063400000071823306600033C010800A4263D9294 +:10635000122000058F8C0020918B00BC316A000454 +:106360001540001524CD00043C0F080095EF3D9228 +:1063700001E4702100AE302B50C0FF6E8F84000C02 +:106380002C85000514A0FFA32403004230980003CD +:1063900017000002009818232483FFFC3C0108002A +:1063A000AC233D740A000CA30000000000A7582491 +:1063B0000A000CCB016718263C010800A42D3D9271 +:1063C0000A000D33000000003C010800AC203D74C1 +:1063D0000A000CDE240300428F83001014600007C3 +:1063E000000010218F88002424050005910600007C +:1063F00030C400FF108500030000000003E0000827 +:1064000000000000910A0018314900FF000939C25C +:1064100014E0FFFA8F85001C3C04080094843D7C46 +:106420003C0308008C633D943C1908008F393D748F +:106430003C0F080095EF3D920064C0218CAD0054E4 +:106440000319702101CF6021018D58231960001DAF +:1064500000000000910E001C8F8C002C974B0E103A +:1064600031CD00FF8D850004016D30238D88000043 +:1064700030CEFFFF000E510000AAC82100003821D5 +:1064800001072021032A182B0083C021AD990004A5 +:10649000AD980000918F000A01CF6821A18D000AFC +:1064A0008F88002C974B0E12A50B0008950A003818 +:1064B00025490001A50900389107000D34E60008C0 +:1064C000A106000D03E000080000000027BDFFE06A +:1064D000938700048F8F00248FAD00143C0E7FFF44 +:1064E0008F89000C35C8FFFFAFBF001CAFB000188C +:1064F00001A8182491EA000D000717C03C1FBFFF38 +:10650000006258252D2E00018F90001837F9FFFFEB +:106510003C1808008F183D943C0F080095EF3D8A09 +:1065200001796824000E47803C07EFFF3C05F0FF2F +:1065300001A818253149002034E2FFFF34ACFFFFE9 +:106540000310582327A500102406000225EA0002A4 +:1065500000621824008080211520000200004021E4 +:106560008F480E1CA7AA0012056000372407000000 +:1065700030FF00FF001FCF008F8B001C00793825F3 +:10658000AFA70014916F00853C08080091083D9169 +:106590003C18DFFF31EE00C0370AFFFF000E182B5A +:1065A0003C1F080097FF3D8400EA6824A3A800115F +:1065B0000003174001A248258FB90010AFA90014AD +:1065C0003C0A0800914A3D93A7BF00168FA800140B +:1065D000032CC0243C0B01003C0F0FFF030B1825BC +:1065E0003147000335EEFFFF010C68240007160059 +:1065F000006EF8243C09700001A2C82503E9582563 +:10660000AFB90014AFAB00100E000076A3A00015C8 +:106610008F8C0024260200089186000D30C40020D3 +:10662000108000068FBF001C3C05080094A53D802B +:1066300024B0FFFF3C010800A4303D808FB000185B +:1066400003E0000827BD00208F9800140118502B8C +:106650005540FFC7240700010A000DB630FF00FFB8 +:106660009382000427BDFFE0AFBF00181040000F69 +:10667000008050218F880024240B00058F8900089A +:10668000910700008F8400200100282130E3003FA3 +:106690008F86002C106B000800003821AFA9001075 +:1066A0000E00040EAFAA0014A38000048FBF0018D0 +:1066B00003E0000827BD00208D1900183C0F0800DA +:1066C0008DEF3D748F9800103C027FFF8D08001401 +:1066D000345FFFFF033F682401F8702101AE60239F +:1066E00001883821AFA900100E00040EAFAA0014D3 +:1066F0000A000E04A38000048F8700243C050800D4 +:1067000094A53D923C0208008C423D8C90E6000D21 +:106710000005240030C300201060002C00444025F8 +:106720008F85001C00006021240B000190A30085D0 +:1067300000004821240A00013C0F800035EE007063 +:106740008DC70000AF8700308F5801780700FFFE2B +:106750003C038000347900708F3800003C0508004D +:106760008CA500743C0D08008DAD007003077823E4 +:1067700000AF38210000102100EF302B01A22021B2 +:10678000008618213C010800AC2700743C01080079 +:10679000AC230070AF4B01483C1908008F393D9481 +:1067A000A7490144A74A0146AF59014C3C0B0800D8 +:1067B000916B3D91A34B0152AF4801543C0810002E +:1067C000A74C015803E00008AF4801788F4B0E1C1E +:1067D0003C0A08008D4A3D7497490E16974D0E14D9 +:1067E00001456021312AFFFF0A000E2731A9FFFF72 +:1067F0008F8300249064000D308200201040002917 +:10680000000000000000482100005021000040214D +:106810003C07800034EB00708D670000AF870030CC +:106820008F4C01780580FFFE3C0D800035AC007078 +:106830008D8B00003C0508008CA500743C0408000A +:106840008C8400700167302300A67821000010219D +:1068500001E6C82B0082C021031970213C01080009 +:10686000AC2F00743C010800AC2E0070AF49014809 +:106870003C0D08008DAD3D94A7480144240900401B +:10688000A74A01463C081000240AFF91AF4D014C75 +:10689000A34A0152AF490154A740015803E0000840 +:1068A000AF4801788F490E1897460E1297450E1083 +:1068B00030CAFFFF0A000E5D30A8FFFF8F8300245F +:1068C00027BDFFF89064000D308200201040003A90 +:1068D00000000000240B000100004821240A0001F0 +:1068E0003C088000350700708CE30000AF83003067 +:1068F0008F4C01780580FFFE3C0E80003C040800B0 +:1069000090843DD035C700708CEC00003C05080039 +:106910008CA50074A3A400033C1908008F390070F3 +:106920008FAD00000183302300A638210000102124 +:106930000322782100E6C02B01F8602101AE40253A +:10694000AFA800003C010800AC2700743C0108001F +:10695000AC2C00709346010A3C04080090843DD1A1 +:10696000A3A00002A3A600018FA300003C0580FFA6 +:106970003099007F34A2FFFF006278240019C6001E +:1069800001F87025240D3000AF4E014C27BD0008E2 +:10699000AF4D0154A7400158AF4B0148A7490144EE +:1069A000A74A01463C091000240AFF80A34A01526D +:1069B00003E00008AF4901788F4B0E1897460E127E +:1069C00097450E1030CAFFFF0A000E9130A9FFFF55 +:1069D0008F85001C2402008090A40085308300C0B5 +:1069E000106200058F8600208F8800088F87000CBA +:1069F000ACC800C8ACC700C403E000080000000039 +:106A00003C0A0800254A39543C09080025293A2047 +:106A10003C08080025082DD43C07080024E73B3437 +:106A20003C06080024C637C43C05080024A5353CB4 +:106A30003C040800248431643C0308002463385C6F +:106A40003C020800244236303C010800AC2A3D508C +:106A50003C010800AC293D4C3C010800AC283D48F5 +:106A60003C010800AC273D543C010800AC263D64C5 +:106A70003C010800AC253D5C3C010800AC243D58BD +:106A80003C010800AC233D683C010800AC223D609D +:086A900003E000080000000013 +:00000001FF --- linux-3.11.0.orig/firmware/bnx2/bnx2-rv2p-09-6.0.17.fw.ihex +++ linux-3.11.0/firmware/bnx2/bnx2-rv2p-09-6.0.17.fw.ihex @@ -3,8 +3,7 @@ :1000200000000000000000000000000000000000D0 :1000300000000E88000009500000000500000000CC :1000400000000000000000000000000000000000B0 -:080050000000000000000000A8 -:0800580000000010B180000659 +:10005000000000000000000000000010B180000659 :100060000000001F05060011000000080500FFFF4A :10007000000000180002000000000008050000FF5A :10008000000000180002000000000008AC000001A1 @@ -382,11 +381,3 @@ :1017C0000000000C2980000000000010001F000035 :0817D000000000188000FE3546 :00000001FF -/* - * This file contains firmware data derived from proprietary unpublished - * source code, Copyright (c) 2004 - 2009 Broadcom Corporation. - * - * Permission is hereby granted for the distribution of this firmware data - * in hexadecimal or equivalent format, provided this copyright notice is - * accompanying it. - */ --- linux-3.11.0.orig/firmware/bnx2/bnx2-rv2p-09ax-6.0.17.fw.ihex +++ linux-3.11.0/firmware/bnx2/bnx2-rv2p-09ax-6.0.17.fw.ihex @@ -3,8 +3,7 @@ :1000200000000000000000000000000000000000D0 :1000300000001010000009C80000000500000000CA :1000400000000000000000000000000000000000B0 -:080050000000000000000000A8 -:0800580000000010B180000659 +:10005000000000000000000000000010B180000659 :100060000000001F03060011000000080500FFFF4C :10007000000000180002000000000008050000FF5A :10008000000000180002000000000008AC000001A1 @@ -155,8 +154,7 @@ :100990000000001091D40000000000080500005580 :1009A000000000188000FF360000000C29800001C4 :1009B0000000000C1F800001000000082A00000752 -:0809C000000000188000FEDEBB -:0809C80000000010B1800004E2 +:1009C000000000188000FEDE00000010B18000046E :1009D0000000001F0306001100000008050000FFD2 :1009E0000000001800020000000000002A000000C3 :1009F00000000010B1D400000000001091DE0000E3 @@ -415,11 +413,3 @@ :1019C00000000010001F00000000000C6BD7000199 :0819D000000000188000FE0475 :00000001FF -/* - * This file contains firmware data derived from proprietary unpublished - * source code, Copyright (c) 2004 - 2009 Broadcom Corporation. - * - * Permission is hereby granted for the distribution of this firmware data - * in hexadecimal or equivalent format, provided this copyright notice is - * accompanying it. - */ --- linux-3.11.0.orig/firmware/bnx2/bnx2-mips-09-6.2.1b.fw.ihex +++ linux-3.11.0/firmware/bnx2/bnx2-mips-09-6.2.1b.fw.ihex @@ -0,0 +1,6496 @@ +:10000000080001180800000000005594000000C816 +:1000100000000000000000000000000008005594EF +:10002000000000380000565C080000A00800000036 +:100030000000574400005694080059200000008436 +:100040000000ADD808005744000001C00000AE5CBD +:100050000800321008000000000092580000B01C98 +:10006000000000000000000000000000080092589E +:100070000000033C000142740800049008000400E2 +:10008000000012FC000145B000000000000000006C +:1000900000000000080016FC00000004000158AC3D +:1000A000080000A80800000000003D00000158B052 +:1000B00000000000000000000000000008003D00FB +:1000C00000000030000195B00A000046000000006A +:1000D000000000000000000D636F6D362E322E31DF +:1000E00062000000060201020000000000000003A0 +:1000F000000000C800000032000000030000000003 +:1001000000000000000000000000000000000000EF +:1001100000000010000001360000EA600000000549 +:1001200000000000000000000000000000000008C7 +:1001300000000000000000000000000000000000BF +:1001400000000000000000000000000000000000AF +:10015000000000000000000000000000000000009F +:10016000000000020000000000000000000000008D +:10017000000000000000000000000000000000007F +:10018000000000000000000000000010000000005F +:10019000000000000000000000000000000000005F +:1001A000000000000000000000000000000000004F +:1001B000000000000000000000000000000000003F +:1001C000000000000000000000000000000000002F +:1001D000000000000000000000000000000000001F +:1001E0000000000010000003000000000000000DEF +:1001F0000000000D3C020800244256083C030800A1 +:1002000024635754AC4000000043202B1480FFFDB2 +:10021000244200043C1D080037BD9FFC03A0F021D0 +:100220003C100800261001183C1C0800279C5608AA +:100230000E000256000000000000000D27BDFFB4B4 +:10024000AFA10000AFA20004AFA30008AFA4000C50 +:10025000AFA50010AFA60014AFA70018AFA8001CF0 +:10026000AFA90020AFAA0024AFAB0028AFAC002C90 +:10027000AFAD0030AFAE0034AFAF0038AFB8003C28 +:10028000AFB90040AFBC0044AFBF00480E001544FA +:10029000000000008FBF00488FBC00448FB90040B1 +:1002A0008FB8003C8FAF00388FAE00348FAD003078 +:1002B0008FAC002C8FAB00288FAA00248FA90020C0 +:1002C0008FA8001C8FA700188FA600148FA5001000 +:1002D0008FA4000C8FA300088FA200048FA1000040 +:1002E00027BD004C3C1B60108F7A5030377B502864 +:1002F00003400008AF7A00008F82002427BDFFE092 +:10030000AFB00010AFBF0018AFB100148C42000CAA +:100310003C1080008E110100104000348FBF001887 +:100320000E000D84000000008F85002024047FFF54 +:100330000091202BACB100008E030104960201084D +:1003400000031C003042FFFF00621825ACA300042C +:100350009202010A96030114304200FF3063FFFF4E +:100360000002140000431025ACA200089603010C03 +:100370009602010E00031C003042FFFF00621825A8 +:10038000ACA3000C960301109602011200031C009E +:100390003042FFFF00621825ACA300108E02011846 +:1003A000ACA200148E02011CACA20018148000083C +:1003B0008F820024978200003C0420050044182509 +:1003C00024420001ACA3001C0A0000C6A782000062 +:1003D0003C0340189442001E00431025ACA2001CB0 +:1003E0000E000DB8240400018FBF00188FB1001457 +:1003F0008FB000100000102103E0000827BD00208E +:100400003C0780008CE202B834E50100044100089A +:10041000240300013C0208008C42006024420001D9 +:100420003C010800AC22006003E0000800601021DD +:100430003C0208008C42005C8CA4002094A30016AF +:100440008CA6000494A5000E24420001ACE40280B6 +:100450002463FFFC3C010800AC22005C3C0210005D +:10046000A4E30284A4E5028600001821ACE6028819 +:10047000ACE202B803E000080060102127BDFFE0F5 +:100480003C028000AFB0001034420100AFBF001C3E +:10049000AFB20018AFB100148C43000094450008BF +:1004A0002462FE002C42038110400003000381C23D +:1004B0000A00010226100004240201001462000553 +:1004C0003C1180003C02800890420004305000FF44 +:1004D0003C11800036320100964300143202000FB6 +:1004E00000021500004310253C0308008C63004403 +:1004F00030A40004AE220080246300013C01080007 +:10050000AC2300441080000730A200028FBF001C03 +:100510008FB200188FB100148FB000100A0000CE07 +:1005200027BD00201040002D0000182130A20080BF +:1005300010400005362200708E44001C0E000C672F +:10054000240500A0362200708C4400008F82000C2D +:10055000008210232C43012C10600004AF82001095 +:10056000240300010A000145AF84000C8E42000400 +:100570003C036020AF84000CAC6200143C02080015 +:100580008C42005850400015000018218C62000475 +:10059000240301FE304203FF144300100000182121 +:1005A0002E020004104000032E0200080A00014041 +:1005B0000000802114400003000000000A000140F8 +:1005C0002610FFF90000000D2402000202021004B0 +:1005D0003C036000AC626914000018218FBF001C4E +:1005E0008FB200188FB100148FB00010006010217E +:1005F00003E0000827BD00203C0480008C8301003C +:1006000024020100506200033C0280080000000D3B +:100610003C02800890430004000010213063000F6A +:1006200000031D0003E00008AC8300800004188074 +:100630002782FF9C00621821000410C00044102390 +:100640008C640000000210C03C030800246356E4E0 +:10065000004310213C038000AC64009003E00008DC +:10066000AF8200243C0208008C42011410400019A3 +:100670003084400030A2007F000231C03C02020002 +:100680001080001400A218253C026020AC43001426 +:100690003C0408008C8456B83C0308008C630110AD +:1006A0003C02800024050900AC4500200086202182 +:1006B000246300013C028008AC4400643C01080053 +:1006C000AC2301103C010800AC2456B803E000083C +:1006D000000000003C02602003E00008AC4500146C +:1006E00003E000080000102103E0000800001021D2 +:1006F00030A2000810400008240201003C0208005B +:100700008C42010C244200013C010800AC22010C87 +:1007100003E0000800000000148200080000000050 +:100720003C0208008C4200FC244200013C0108000D +:10073000AC2200FC0A0001A330A200203C02080009 +:100740008C420084244200013C010800AC22008459 +:1007500030A200201040000830A200103C02080027 +:100760008C420108244200013C010800AC2201082F +:1007700003E0000800000000104000080000000036 +:100780003C0208008C420104244200013C010800A4 +:10079000AC22010403E00008000000003C02080055 +:1007A0008C420100244200013C010800AC220100FF +:1007B00003E000080000000027BDFFE0AFB1001417 +:1007C0003C118000AFB20018AFBF001CAFB00010EA +:1007D0003632010096500008320200041040000733 +:1007E000320300028FBF001C8FB200188FB10014BB +:1007F0008FB000100A0000CE27BD00201060000B53 +:10080000020028218E2401000E00018A0000000051 +:100810003202008010400003240500A10E000C6786 +:100820008E44001C0A0001E3240200018E2301040F +:100830008F82000810430006020028218E24010048 +:100840000E00018A000000008E220104AF82000821 +:10085000000010218FBF001C8FB200188FB1001450 +:100860008FB0001003E0000827BD00202C82000498 +:1008700014400002000018212483FFFD240200021E +:10088000006210043C03600003E00008AC626914DD +:1008900027BDFFE0AFBF001CAFB20018AFB100141E +:1008A000AFB000103C048000948201083043700017 +:1008B000240220001062000A2862200154400052E5 +:1008C0008FBF001C24024000106200482402600018 +:1008D0001062004A8FBF001C0A0002518FB200183C +:1008E00034820100904300098C5000189451000C90 +:1008F000240200091062001C0000902128620009F7 +:10090000144000218F8200242402000A5062001249 +:10091000323100FF2402000B1062000F00000000C3 +:100920002402000C146200188F8200243C0208008C +:100930008C4256B824030900AC83002000501021DB +:100940003C038008AC6200643C010800AC2256B84D +:100950000A0002508FBF001C0E0001E900102602A1 +:100960000A0002308F8200240E0001E900102602E6 +:100970003C0380089462001A8C72000C3042FFFF26 +:10098000020280258F8200248C42000C5040001E01 +:100990008FBF001C0E000D84000000003C02800090 +:1009A00034420100944300088F82002400031C009D +:1009B0009444001E8F82002000641825AC50000073 +:1009C00024040001AC510004AC520008AC40000CFF +:1009D000AC400010AC400014AC4000180E000DB844 +:1009E000AC43001C0A0002508FBF001C0E000440E4 +:1009F000000000000A0002508FBF001C0E000C9F78 +:100A0000000000008FBF001C8FB200188FB10014CF +:100A10008FB000100000102103E0000827BD002067 +:100A200027BDFFD8AFB400203C036010AFBF002447 +:100A3000AFB3001CAFB20018AFB10014AFB00010DC +:100A40008C6450002402FF7F3C1408002694563822 +:100A5000008220243484380CAC6450003C028000B6 +:100A6000240300370E0014B0AC4300083C07080014 +:100A700024E70618028010212404001D2484FFFFAF +:100A8000AC4700000481FFFD244200043C02080042 +:100A9000244207C83C010800AC2256403C02080032 +:100AA000244202303C030800246306203C04080072 +:100AB000248403B43C05080024A506F03C06080085 +:100AC00024C62C9C3C010800AC2256803C02080045 +:100AD000244205303C010800AC2756843C01080044 +:100AE000AC2656943C010800AC23569C3C010800FF +:100AF000AC2456A03C010800AC2556A43C010800DB +:100B0000AC2256A83C010800AC23563C3C0108002E +:100B1000AC2456443C010800AC2056603C0108005F +:100B2000AC2556643C010800AC2056703C0108001E +:100B3000AC27567C3C010800AC2656903C010800CE +:100B4000AC2356980E00056E00000000AF80000C2C +:100B50003C0280008C5300008F8300043C0208009C +:100B60008C420020106200213262000700008821C0 +:100B70002792FF9C3C100800261056E43C02080017 +:100B80008C42002024050001022518040043202483 +:100B90008F820004004310245044000C26310001D1 +:100BA00010800008AF9000248E4300003C028000BB +:100BB000AC4300900E000D4BAE05000C0A0002C1C4 +:100BC00026310001AE00000C263100012E22000269 +:100BD000261000381440FFE9265200043C020800A9 +:100BE0008C420020AF820004326200071040FFD91F +:100BF0003C028000326200011040002D326200028F +:100C00003C0580008CA2010000002021ACA2002045 +:100C10008CA301042C42078110400008ACA300A85B +:100C200094A2010824032000304270001443000302 +:100C30003C02800890420005304400FF0E0001593C +:100C4000000000003C0280009042010B304300FF96 +:100C50002C62001E54400004000310800E00018628 +:100C60000A0002EC00000000005410218C42000039 +:100C70000040F80900000000104000043C02800021 +:100C80008C4301043C026020AC4300143C02080089 +:100C90008C4200343C0440003C03800024420001AC +:100CA000AC6401383C010800AC220034326200021E +:100CB00010400010326200043C1080008E0201409F +:100CC000000020210E000159AE0200200E00038317 +:100CD000000000003C024000AE0201783C02080027 +:100CE0008C420038244200013C010800AC2200384C +:100CF000326200041040FF973C0280003C108000EC +:100D00008E020180000020210E000159AE02002059 +:100D10008E03018024020F00546200073C02800809 +:100D20008E0201883C0300E03042FFFF00431025A3 +:100D30000A000328AE020080344200809042000086 +:100D400024030050304200FF14430007000000005D +:100D50000E000362000000001440000300000000C9 +:100D60000E000971000000003C0208008C42003CAB +:100D70003C0440003C03800024420001AC6401B804 +:100D80003C010800AC22003C0A0002A33C028000A7 +:100D90003C02900034420001008220253C02800089 +:100DA000AC4400203C0380008C6200200440FFFE25 +:100DB0000000000003E00008000000003C0280008A +:100DC000344300010083202503E00008AC440020E8 +:100DD00027BDFFE0AFB10014AFB000100080882144 +:100DE000AFBF00180E00033230B000FF8F83FF94B6 +:100DF000022020219062002502028025A07000259B +:100E00008C7000183C0280000E00033D020280241A +:100E10001600000B8FBF00183C0480008C8201F884 +:100E20000440FFFE348201C024030002AC510000E4 +:100E3000A04300043C021000AC8201F88FBF0018F0 +:100E40008FB100148FB0001003E0000827BD002010 +:100E500027BDFFE83C028000AFBF00103442018094 +:100E6000944300048C4400083063020010600005C5 +:100E7000000028210E00100C000000000A0003787A +:100E8000240500013C02FF000480000700821824B2 +:100E90003C02040014620004240500018F82FF94C8 +:100EA00090420008240500018FBF001000A010210F +:100EB00003E0000827BD00188F82FF982405000179 +:100EC000A040001A3C028000344201400A00034264 +:100ED0008C4400008F85FF9427BDFFE0AFBF001C4E +:100EE000AFB20018AFB10014AFB0001090A2000074 +:100EF000304400FF38830020388200300003182B74 +:100F00000002102B0062182410600003240200501D +:100F1000148200A88FBF001C90A20005304200017F +:100F2000104000A48FBF001C3C02800034420140EE +:100F3000904200082443FFFF2C6200051040009EF1 +:100F40008FB20018000310803C030800246355ACE6 +:100F5000004310218C420000004000080000000007 +:100F60003C028000345101400E0003328E24000008 +:100F70008F92FF948E2200048E50000C1602000205 +:100F800024020001AE42000C0E00033D8E2400003E +:100F90008E220004145000068FBF001C8FB2001870 +:100FA0008FB100148FB000100A000F7827BD002009 +:100FB0008E42000C0A000419000000003C0480006E +:100FC0003482014094A300108C4200043063FFFF80 +:100FD0001443001C0000000024020001A4A2001021 +:100FE0008C8202380441000F3C0380003C02003F29 +:100FF0003448F0003C0760003C06FFC08CE22BBC8C +:1010000000461824004810240002130200031D8229 +:10101000106200583C0280008C8202380440FFF7C6 +:101020003C038000346201408C44000034620200C2 +:10103000AC4400003C021000AC6202380A00043BE1 +:101040008FBF001C94A200100A00041900000000C9 +:10105000240200201482000F3C0280003C03800028 +:1010600094A20012346301408C6300043042FFFFFD +:10107000146200050000000024020001A4A2001276 +:101080000A0004028FBF001C94A200120A00041977 +:1010900000000000345101400E0003328E24000095 +:1010A0008F92FF948E230004964200123050FFFF6F +:1010B0001603000224020001A64200120E00033DA6 +:1010C0008E2400008E220004160200068FBF001C32 +:1010D0008FB200188FB100148FB000100A00037C8B +:1010E00027BD0020964200120A00041900000000EB +:1010F0003C03800094A20014346301408C6300041C +:101100003042FFFF14620008240200018FBF001C60 +:101110008FB200188FB100148FB00010A4A2001479 +:101120000A00146327BD002094A20014144000217B +:101130008FBF001C0A000435000000003C03800043 +:1011400094A20016346301408C6300043042FFFF18 +:101150001462000D240200018FBF001C8FB2001822 +:101160008FB100148FB00010A4A200160A000B1457 +:1011700027BD00209442007824420004A4A200105D +:101180000A00043B8FBF001C94A200162403000138 +:101190003042FFFF144300078FBF001C3C020800D1 +:1011A0008C420070244200013C010800AC22007017 +:1011B0008FBF001C8FB200188FB100148FB00010C9 +:1011C00003E0000827BD002027BDFFD8AFB20018FC +:1011D0008F92FF94AFB10014AFBF0020AFB3001CDB +:1011E000AFB000103C028000345101008C5001006F +:1011F0009242000092230009304400FF2402001FA5 +:10120000106200AB28620020104000192402003850 +:101210002862000A1040000D2402000B286200081A +:101220001040002E8F820024046001042862000216 +:101230001440002A8F820024240200061062002637 +:101240008FBF00200A00055F8FB3001C1062006092 +:101250002862000B144000FA8FBF00202402000E09 +:10126000106200788F8200240A00055F8FB3001C93 +:10127000106200D2286200391040000A2402008067 +:1012800024020036106200E528620037104000C3D7 +:1012900024020035106200D98FBF00200A00055FCC +:1012A0008FB3001C1062002D2862008110400006E0 +:1012B000240200C824020039106200C98FBF002038 +:1012C0000A00055F8FB3001C106200A28FBF0020D0 +:1012D0000A00055F8FB3001C8F8200248C42000C33 +:1012E000104000D78FBF00200E000D8400000000CA +:1012F0003C038000346301008C6200008F85002075 +:10130000946700089466000CACA200008C64000492 +:101310008F82002400063400ACA400049448001E10 +:101320008C62001800073C0000E83825ACA20008D9 +:101330008C62001C24040001ACA2000C9062000A24 +:1013400000C23025ACA60010ACA00014ACA0001860 +:10135000ACA7001C0A00051D8FBF00208F8200244F +:101360008C42000C104000B68FBF00200E000D8490 +:10137000000000008F820024962400089625000CAF +:101380009443001E000422029626000E8F82002045 +:10139000000426000083202500052C003C0300806B +:1013A00000A6282500832025AC400000AC400004A6 +:1013B000AC400008AC40000CAC450010AC40001440 +:1013C000AC400018AC44001C0A00051C24040001B9 +:1013D0009622000C14400018000000009242000504 +:1013E0003042001014400014000000000E000332D0 +:1013F0000200202192420005020020213442001008 +:101400000E00033DA242000592420000240300208A +:10141000304200FF10430089020020218FBF0020CE +:101420008FB3001C8FB200188FB100148FB0001062 +:101430000A00107527BD00280000000D0A00055E97 +:101440008FBF00208C42000C1040007D8FBF002019 +:101450000E000D84000000008E2200048F84002006 +:101460009623000CAC8200003C0280089445002CBE +:101470008F82002400031C0030A5FFFF9446001E4D +:101480003C02400E0065182500C23025AC830004E4 +:10149000AC800008AC80000CAC800010AC80001464 +:1014A000AC800018AC86001C0A00051C2404000156 +:1014B0000E000332020020218F93FF9802002021AA +:1014C0000E00033DA660000C020020210E00034226 +:1014D000240500018F8200248C42000C104000582B +:1014E0008FBF00200E000D84000000009622000C2B +:1014F0008F83002000021400AC700000AC62000476 +:10150000AC6000088E4400388F820024AC64000C6C +:101510008E46003C9445001E3C02401FAC66001005 +:1015200000A228258E62000424040001AC6200148D +:10153000AC600018AC65001C8FBF00208FB3001C8E +:101540008FB200188FB100148FB000100A000DB8D0 +:1015500027BD0028240200201082003A8FB3001C0F +:101560000E000F5E00000000104000358FBF00200D +:101570003C0480008C8201F80440FFFE348201C0EC +:1015800024030002AC500000A04300043C02100001 +:10159000AC8201F80A00055E8FBF00200200202106 +:1015A0008FBF00208FB3001C8FB200188FB10014C2 +:1015B0008FB000100A000EA727BD00289625000C4A +:1015C000020020218FBF00208FB3001C8FB20018B3 +:1015D0008FB100148FB000100A000ECC27BD002878 +:1015E000020020218FB3001C8FB200188FB10014AD +:1015F0008FB000100A000EF727BD00289225000DBD +:10160000020020218FB3001C8FB200188FB100148C +:101610008FB000100A000F4827BD002802002021CB +:101620008FBF00208FB3001C8FB200188FB1001441 +:101630008FB000100A000F1F27BD00288FBF0020A9 +:101640008FB3001C8FB200188FB100148FB0001040 +:1016500003E0000827BD00283C0580008CA202782A +:101660000440FFFE34A2024024030002AC44000008 +:10167000A04300043C02100003E00008ACA2027882 +:10168000A380001803E00008A38000193C03800039 +:101690008C6202780440FFFE8F82001CAC62024024 +:1016A00024020002A06202443C02100003E0000891 +:1016B000AC6202783C02600003E000088C425404F3 +:1016C0009083003024020005008040213063003FF9 +:1016D0000000482114620005000050219082004C57 +:1016E0009483004E304900FF306AFFFFAD00000CCC +:1016F000AD000010AD000024950200148D05001C03 +:101700008D0400183042FFFF004910230002110031 +:10171000000237C3004038210086202300A2102B8E +:101720000082202300A72823AD05001CAD0400186B +:10173000A5090014A5090020A50A001603E0000869 +:10174000A50A002203E000080000000027BDFFD822 +:10175000AFB200183C128008AFB40020AFB3001C39 +:10176000AFB10014AFBF0024AFB00010365101007C +:101770003C0260008C4254049222000C3C1408008D +:10178000929400F7304300FF2402000110620032FF +:101790000080982124020002146200353650008037 +:1017A0000E00143D000000009202004C2403FF8054 +:1017B0003C0480003042007F000211C024420240FD +:1017C0000262102100431824AC8300949245000863 +:1017D0009204004C3042007F3C03800614850007D1 +:1017E000004380212402FFFFA22200112402FFFFF8 +:1017F000A62200120A0005D22402FFFF9602002052 +:10180000A222001196020022A62200128E020024BB +:101810003C048008AE2200143485008090A2004C65 +:1018200034830100A06200108CA2003CAC6200185E +:101830008C820068AC6200F48C820064AC6200F0C0 +:101840008C82006CAC6200F824020001A0A2006847 +:101850000A0005EE3C0480080E001456000000004B +:1018600036420080A04000680A0005EE3C04800873 +:10187000A2000068A20000690A0006293C02800854 +:10188000348300808C62003834850100AC62006CC7 +:1018900024020001A062006990A200D59083000894 +:1018A000305100FF3072007F12320019001111C058 +:1018B00024420240026210212403FF8000431824C6 +:1018C0003C048000AC8300943042007F3C038006DF +:1018D000004380218E02000C1040000D02002021E8 +:1018E0000E00057E0000000026220001305100FF9E +:1018F0009203003C023410260002102B0002102339 +:101900003063007F022288240A0005F8A203003C0D +:101910003C088008350401008C8200E03507008017 +:10192000ACE2003C8C8200E0AD02000090E5004C8F +:10193000908600D590E3004C908400D52402FF806F +:1019400000A228243063007F308400FF00A62825F1 +:101950000064182A1060000230A500FF38A500803E +:10196000A0E5004CA10500093C0280089043000E50 +:10197000344400803C058000A043000A8C8300189A +:101980003C027FFF3442FFFF00621824AC83001842 +:101990008CA201F80440FFFE00000000ACB301C0BF +:1019A0008FBF00248FB400208FB3001C8FB20018AB +:1019B0008FB100148FB0001024020002A0A201C455 +:1019C00027BD00283C02100003E00008ACA201F88B +:1019D00090A2000024420001A0A200003C030800E5 +:1019E0008C6300F4304200FF144300020080302179 +:1019F000A0A0000090A200008F84001C000211C073 +:101A00002442024024830040008220212402FF80DF +:101A1000008220243063007F3C02800A006218218B +:101A20003C028000AC44002403E00008ACC300008A +:101A300094820006908300058C85000C8C86001033 +:101A40008C8700188C88001C8C8400203C010800C6 +:101A5000A42256C63C010800A02356C53C0108003C +:101A6000AC2556CC3C010800AC2656D03C01080001 +:101A7000AC2756D83C010800AC2856DC3C010800D5 +:101A8000AC2456E003E00008000000003C0280089F +:101A9000344201008C4400343C038000346504006F +:101AA000AC6400388C420038AF850028AC62003C42 +:101AB0003C020005AC6200300000000000000000A5 +:101AC00003E00008000000003C020006308400FF34 +:101AD000008220253C028000AC4400300000000061 +:101AE00000000000000000003C0380008C62000049 +:101AF000304200101040FFFD3462040003E0000893 +:101B0000AF82002894C200003C080800950800CA73 +:101B100030E7FFFF0080482101021021A4C200002D +:101B200094C200003042FFFF00E2102B544000013D +:101B3000A4C7000094A200003C0308008C6300CC02 +:101B400024420001A4A2000094A200003042FFFF42 +:101B5000144300073C0280080107102BA4A00000DA +:101B60005440000101003821A4C700003C02800855 +:101B7000344601008CC3002894A200003C0480007D +:101B80003042FFFE000210C000621021AC82003C17 +:101B90008C82003C006218231860000400000000E2 +:101BA0008CC200240A0006BA244200018CC2002420 +:101BB000AC8200383C020050344200103C038000EC +:101BC000AC620030000000000000000000000000D7 +:101BD0008C620000304200201040FFFD0000000039 +:101BE00094A200003C04800030420001000210C0BA +:101BF000004410218C430400AD2300008C420404F7 +:101C0000AD2200043C02002003E00008AC8200305A +:101C100027BDFFE0AFB20018AFB10014AFB00010A5 +:101C2000AFBF001C94C2000000C080213C1208001D +:101C3000965200C624420001A6020000960300004E +:101C400094E2000000E03021144300058FB1003021 +:101C50000E00068F024038210A0006F10000000045 +:101C60008C8300048C82000424420040046100073D +:101C7000AC8200048C8200040440000400000000D8 +:101C80008C82000024420001AC8200009602000019 +:101C90003042FFFF50520001A600000096220000D3 +:101CA00024420001A62200003C02800834420100C8 +:101CB000962300009442003C144300048FBF001C94 +:101CC00024020001A62200008FBF001C8FB2001862 +:101CD0008FB100148FB0001003E0000827BD002072 +:101CE00027BDFFE03C028008AFBF0018344201006E +:101CF0008C4800343C03800034690400AC68003830 +:101D00008C42003830E700FFAF890028AC62003C0D +:101D10003C020005AC620030000000000000000042 +:101D200000000000000000000000000000000000B3 +:101D30008C82000C8C82000C97830016AD22000070 +:101D40008C82001000604021AD2200048C820018BB +:101D5000AD2200088C82001CAD22000C8CA2001465 +:101D6000AD2200108C820020AD220014908200056C +:101D7000304200FF00021200AD2200188CA20018B1 +:101D8000AD22001C8CA2000CAD2200208CA2001001 +:101D9000AD2200248CA2001CAD2200288CA20020C1 +:101DA000AD22002C3402FFFFAD260030AD20003400 +:101DB000506200013408FFFFAD28003850E00011E8 +:101DC0003C0280083C048008348401009482005066 +:101DD0003042FFFFAD22003C9483004494850044D0 +:101DE000240200013063FFFF000318C200641821C1 +:101DF0009064006430A5000700A210040A00075C8C +:101E00000044102534420100AD20003C94430044BE +:101E1000944400443063FFFF000318C2006218219D +:101E200030840007906500642402000100821004E1 +:101E30000002102700451024A0620064000000008A +:101E400000000000000000003C0200063442004098 +:101E50003C038000AC620030000000000000000085 +:101E6000000000008C620000304200101040FFFDB6 +:101E70003C06800834C201503463040034C7014A70 +:101E800034C4013434C5014034C60144AFA200104B +:101E90000E0006D2AF8300288FBF001803E00008B1 +:101EA00027BD00208F8300143C0608008CC600E884 +:101EB0008F82001C30633FFF000319800046102111 +:101EC000004310212403FF80004318243C068000B7 +:101ED000ACC300283042007F3C03800C004330211B +:101EE00090C2000D30A500FF0000382134420010E0 +:101EF000A0C2000D8F8900143C028008344201000A +:101F00009443004400091382304800032402000176 +:101F1000A4C3000E1102000B2902000210400005AC +:101F2000240200021100000C240300010A0007A48F +:101F30000000182111020006000000000A0007A49A +:101F4000000018218CC2002C0A0007A424430001C1 +:101F50008CC20014244300018CC200180043102BD3 +:101F60005040000A240700012402002714A20003A5 +:101F70003C0380080A0007B1240700013463010014 +:101F80009462004C24420001A462004C00091382B8 +:101F9000304300032C620002104000090080282119 +:101FA000146000040000000094C200340A0007C15D +:101FB0003046FFFF8CC600380A0007C10080282188 +:101FC000000030213C040800248456C00A000706A3 +:101FD0000000000027BDFF90AFB60068AFB50064F9 +:101FE000AFB40060AFB3005CAFB20058AFB1005403 +:101FF000AFBF006CAFB000508C9000000080B021EB +:102000003C0208008C4200E8960400328F83001CDA +:102010002414FF8030843FFF0062182100042180D7 +:1020200000641821007410243C13800000A090214B +:1020300090A50000AE620028920400323C02800CA1 +:102040003063007F00628821308400C02402004099 +:10205000148200320000A8218E3500388E2200182C +:102060001440000224020001AE2200189202003C3B +:10207000304200201440000E8F83001C000511C068 +:102080002442024000621821306400783C02008043 +:102090000082202500741824AE630800AE64081086 +:1020A0008E2200188E03000800431021AE22001873 +:1020B0008E22002C8E230018244200010062182B6F +:1020C0001060004300000000924200002442000122 +:1020D000A24200003C0308008C6300F4304200FF81 +:1020E00050430001A2400000924200008F84001C77 +:1020F000000211C024420240248300403063007F6C +:10210000008220213C02800A0094202400621821D1 +:10211000AE6400240A0008D2AEC30000920300326D +:102120002402FFC000431024304200FF1440000589 +:1021300024020001AE220018962200340A00084250 +:102140003055FFFF8E22001424420001AE220018F9 +:102150009202003000021600000216030441001C27 +:10216000000000009602003227A400100080282101 +:10217000A7A20016960200320000302124070001B9 +:102180003042FFFFAF8200140E000706AFA0001C14 +:10219000960200328F83001C3C0408008C8400E807 +:1021A00030423FFF000211800064182100621821B4 +:1021B00000741024AE62002C3063007F3C02800E5D +:1021C000006218219062000D3042007FA062000D75 +:1021D0009222000D304200105040007892420000E0 +:1021E0003C028008344401009482004C8EC30000FD +:1021F0003C130800967300C62442FFFFA482004CE3 +:10220000946200329623000E3054FFFF3070FFFFBF +:102210003C0308008C6300D000701807A7A30038A7 +:102220009482003E3063FFFF3042FFFF14620007DC +:10223000000000008C8200303C038000244200300B +:10224000AC62003C0A00086A8C82002C9482004038 +:102250003042FFFF5462000927A400408C820038FE +:102260003C03800024420030AC62003C8C8200348D +:10227000AC6200380A0008793C03800027A50038CA +:1022800027A60048026038210E00068FA7A000484C +:102290008FA300403C02800024630030AC43003830 +:1022A0008FA30044AC43003C3C0380003C0200058B +:1022B000AC6200303C028008344401009482004249 +:1022C000346304003042FFFF0202102B1440000769 +:1022D000AF8300289482004E9483004202021021B2 +:1022E000004310230A00088F3043FFFF9483004E01 +:1022F00094820042026318210050102300621823C8 +:102300003063FFFF3C028008344401009482003CAB +:102310003042FFFF14430003000000000A00089F42 +:10232000240300019482003C3042FFFF0062102B26 +:10233000144000058F8200289482003C0062102324 +:102340003043FFFF8F820028AC550000AC400004F2 +:10235000AC540008AC43000C3C02000634420010B0 +:102360003C038000AC620030000000000000000070 +:10237000000000008C620000304200101040FFFDA1 +:102380003C04800834840100001018C20064182145 +:102390009065006432020007240600010046100424 +:1023A00000451025A0620064948300429622000E2E +:1023B00050430001A386001892420000244200010D +:1023C000A24200003C0308008C6300F4304200FF8E +:1023D00050430001A2400000924200008F84001C84 +:1023E000000211C0244202402483004000822021C8 +:1023F0002402FF80008220243063007F3C02800A98 +:10240000006218213C028000AC440024AEC30000EE +:102410008FBF006C8FB600688FB500648FB400600A +:102420008FB3005C8FB200588FB100548FB0005052 +:1024300003E0000827BD007027BDFFD8AFB3001C24 +:10244000AFB20018AFB10014AFB00010AFBF0020A2 +:102450000080982100E0802130B1FFFF0E000D8444 +:1024600030D200FF0000000000000000000000006B +:102470008F8200208F830024AC510000AC520004F6 +:10248000AC530008AC40000CAC400010AC40001451 +:10249000AC4000189463001E02038025AC50001C61 +:1024A0000000000000000000000000002404000103 +:1024B0008FBF00208FB3001C8FB200188FB10014A3 +:1024C0008FB000100A000DB827BD002830A5FFFF0F +:1024D0000A0008DC30C600FF3C02800834430100DB +:1024E0009462000E3C080800950800C63046FFFFC5 +:1024F00014C000043402FFFF946500EA0A000929B1 +:102500008F84001C10C20027000000009462004E5F +:102510009464003C3045FFFF00A6102300A6182B52 +:102520003087FFFF106000043044FFFF00C5102318 +:1025300000E210233044FFFF0088102B1040000EF3 +:1025400000E810233C028008344401002403000109 +:1025500034420080A44300162402FFFFA482000E30 +:10256000948500EA8F84001C0000302130A5FFFF15 +:102570000A0009013C0760200044102A10400009AD +:102580003C0280083443008094620016304200010F +:10259000104000043C0280009442007E244200145B +:1025A000A462001603E000080000000027BDFFE061 +:1025B0003C028008AFBF001CAFB0001834420100DD +:1025C000944300429442004C104000193068FFFFD1 +:1025D0009383001824020001146200298FBF001C9D +:1025E0003C06800834D00100000810C200501021C1 +:1025F000904200643103000734C70148304200FFB5 +:10260000006210073042000134C9014E34C4012C6D +:1026100034C5013E1040001634C601420E0006D2F9 +:10262000AFA90010960200420A0009463048FFFF99 +:102630003C028008344401009483004494820042A8 +:102640001043000F8FBF001C94820044A4820042FC +:1026500094820050A482004E8C820038AC820030FC +:1026600094820040A482003E9482004AA4820048E2 +:102670008FBF001C8FB000180A00090427BD00207E +:102680008FB0001803E0000827BD002027BDFFA081 +:10269000AFB1004C3C118000AFBF0058AFB3005445 +:1026A000AFB20050AFB000483626018890C2000398 +:1026B0003044007FA3A400108E32018090C200003D +:1026C0003043007F240200031062003BAF92001CE5 +:1026D00028620004104000062402000424020002C4 +:1026E000106200098FBF00580A000B0F8FB300540F +:1026F0001062004D240200051062014E8FBF005889 +:102700000A000B0F8FB30054000411C002421021C5 +:102710002404FF8024420240004410242643004049 +:10272000AE2200243063007F3C02800A0062182140 +:102730009062003CAFA3003C00441025A062003C26 +:102740008FA3003C9062003C304200401040016C7E +:102750008FBF00583C108008A3800018361001007D +:102760008E0200E08C63003427A4003C27A50010F3 +:10277000004310210E0007C3AE0200E093A2001038 +:102780003C038000A20200D58C6202780440FFFE68 +:102790008F82001CAC62024024020002A06202444C +:1027A0003C021000AC6202780E0009390000000003 +:1027B0000A000B0E8FBF00583C05800890C3000133 +:1027C00090A2000B1443014E8FBF005834A4008028 +:1027D0008C8200189082004C90A200083C0260009D +:1027E0008C4254048C8300183C027FFF3442FFFF6C +:1027F000006218243C0208008C4200B4AC8300182C +:102800003C038000244200013C010800AC2200B4DB +:102810008C6201F80440FFFE8F82001CAC6201C094 +:102820000A000AD6240200023C10800890C300016E +:102830009202000B144301328FBF005827A40018E6 +:1028400036050110240600033C0260008C4254044B +:102850000E000E470000000027A40028360501F0F6 +:102860000E000E47240600038FA200283603010045 +:10287000AE0200648FA2002CAE0200688FA200306E +:10288000AE02006C93A40018906300D52402FF8070 +:102890000082102400431025304900FF3084007F5F +:1028A0003122007F0082102A544000013929008023 +:1028B000000411C0244202402403FF800242102180 +:1028C00000431024AE220094264200403042007F94 +:1028D0003C038006004340218FA3001C2402FFFF1D +:1028E000AFA800403C130800927300F71062003359 +:1028F00093A2001995030014304400FF3063FFFFDA +:102900000064182B106000100000000095040014F3 +:102910008D07001C8D0600183084FFFF0044202323 +:102920000004210000E438210000102100E4202BE5 +:1029300000C2302100C43021AD07001CAD060018D4 +:102940000A000A2F93A20019950400148D07001C99 +:102950008D0600183084FFFF008220230004210030 +:10296000000010210080182100C2302300E4202B39 +:1029700000C4302300E33823AD07001CAD06001867 +:1029800093A200198FA30040A462001497A2001A1A +:10299000A46200168FA2001CAC6200108FA2001C63 +:1029A000AC62000C93A20019A462002097A2001A46 +:1029B000A46200228FA2001CAC6200243C048008A8 +:1029C000348300808C6200388FA20020012088218F +:1029D000AC62003C8FA20020AC82000093A20018E1 +:1029E000A062004C93A20018A0820009A0600068B9 +:1029F00093A20018105100512407FF803229007F54 +:102A0000000911C024420240024210213046007FDA +:102A10003C03800000471024AC6200943C02800616 +:102A200000C2302190C2003CAFA60040000020212F +:102A300000471025A0C2003C8FA80040950200026C +:102A4000950300148D07001C3042FFFF3063FFFF29 +:102A50008D060018004310230002110000E2382107 +:102A600000E2102B00C4302100C23021AD07001C51 +:102A7000AD06001895020002A5020014A50000167C +:102A80008D020008AD0200108D020008AD02000C9E +:102A900095020002A5020020A50000228D02000878 +:102AA000AD0200249102003C304200401040001A68 +:102AB000262200013C108008A3A90038A38000183A +:102AC000361001008E0200E08D03003427A4004080 +:102AD00027A50038004310210E0007C3AE0200E016 +:102AE00093A200383C038000A20200D58C620278D9 +:102AF0000440FFFE8F82001CAC62024024020002F0 +:102B0000A06202443C021000AC6202780E00093957 +:102B100000000000262200013043007F14730004EF +:102B2000004020212403FF8002231024004320269C +:102B300093A200180A000A4B309100FF93A40018DA +:102B40008FA3001C2402FFFF1062000A308900FFDF +:102B500024820001248300013042007F14530005C9 +:102B6000306900FF2403FF800083102400431026F7 +:102B7000304900FF3C028008904200080120882173 +:102B8000305000FF123000193222007F000211C0C5 +:102B900002421021244202402403FF8000431824F3 +:102BA0003C048000AC8300943042007F3C038006EC +:102BB000004310218C43000C004020211060000BCA +:102BC000AFA200400E00057E000000002623000199 +:102BD0002405FF803062007F145300020225202468 +:102BE000008518260A000AAF307100FF3C048008F7 +:102BF000348400808C8300183C027FFF3442FFFF46 +:102C000000621824AC8300183C0380008C6201F839 +:102C10000440FFFE00000000AC7201C0240200026C +:102C2000A06201C43C021000AC6201F80A000B0E65 +:102C30008FBF00583C04800890C300019082000BB5 +:102C40001443002F8FBF0058349000809202000878 +:102C500030420040104000200000000092020008B6 +:102C60000002160000021603044100050240202164 +:102C70000E000ECC240500930A000B0E8FBF0058E7 +:102C80009202000924030018304200FF1443000D93 +:102C900002402021240500390E000E64000030217E +:102CA0000E0003328F84001C8F82FF9424030012D5 +:102CB000A04300090E00033D8F84001C0A000B0E88 +:102CC0008FBF0058240500360E000E64000030212E +:102CD0000A000B0E8FBF00580E0003320240202165 +:102CE000920200058F84001C344200200E00033D38 +:102CF000A20200050E0010758F84001C8FBF0058C3 +:102D00008FB300548FB200508FB1004C8FB0004889 +:102D100003E0000827BD00603C0280083445010044 +:102D20003C0280008C42014094A3000E0000302140 +:102D300000402021AF82001C3063FFFF3402FFFF00 +:102D4000106200063C0760202402FFFFA4A2000ED0 +:102D500094A500EA0A00090130A5FFFF03E000087E +:102D60000000000027BDFFC83C0280003C06800830 +:102D7000AFB5002CAFB1001CAFBF0030AFB400281E +:102D8000AFB30024AFB20020AFB00018345101003F +:102D900034C501008C4301008E2200148CA400E491 +:102DA0000000A821AF83001C0044102318400052EB +:102DB000A38000188E22001400005021ACA200E471 +:102DC00090C3000890A200D53073007FA3A200102A +:102DD0008CB200E08CB400E4304200FF1053003BA2 +:102DE00093A200108F83001C2407FF80000211C0F3 +:102DF0000062102124420240246300400047102456 +:102E00003063007F3C0980003C08800A006818217C +:102E1000AD2200248C62003427A4001427A50010E2 +:102E2000024280210290102304400028AFA3001426 +:102E30009062003C00E21024304200FF1440001970 +:102E4000020090219062003C34420040A062003CAD +:102E50008F86001C93A3001024C200403042007FE4 +:102E6000004828213C0208008C4200F42463000141 +:102E7000306400FF14820002A3A30010A3A000107E +:102E800093A20010AFA50014000211C0244202401A +:102E900000C2102100471024AD2200240A000B4577 +:102EA00093A200100E0007C3000000003C0280083F +:102EB00034420100AC5000E093A30010240A00014A +:102EC000A04300D50A000B4593A200102402000184 +:102ED000154200093C0380008C6202780440FFFE2A +:102EE0008F82001CAC62024024020002A0620244F5 +:102EF0003C021000AC6202789222000B2403000214 +:102F0000304200FF144300720000000096220008C7 +:102F1000304300FF24020082146200402402008437 +:102F20003C028000344901008D22000C95230006EC +:102F3000000216023063FFFF3045003F24020027E5 +:102F400010A2000FAF83001428A200281040000830 +:102F5000240200312402002110A2000924020025CD +:102F600010A20007938200190A000BBD00000000A8 +:102F700010A20007938200190A000BBD0000000098 +:102F80000E000777012020210A000C3D0000000000 +:102F90003C0380008C6202780440FFFE8F82001C9C +:102FA000AC62024024020002A06202443C02100013 +:102FB000AC6202780A000C3D000000009523000678 +:102FC000912400058D25000C8D2600108D270018FA +:102FD0008D28001C8D290020244200013C0108009E +:102FE000A42356C63C010800A02456C53C01080095 +:102FF000AC2556CC3C010800AC2656D03C0108005C +:10300000AC2756D83C010800AC2856DC3C0108002F +:10301000AC2956E00A000C3DA38200191462000A94 +:10302000240200813C02800834420100944500EAF9 +:10303000922600058F84001C30A5FFFF30C600FFDC +:103040000A000BFE3C0760211462005C00000000D7 +:103050009222000A304300FF306200201040000737 +:10306000306200403C02800834420100944500EA8E +:103070008F84001C0A000BFC24060040104000074F +:10308000000316003C02800834420100944500EA27 +:103090008F84001C0A000BFC24060041000216036A +:1030A000044100463C02800834420100944500EA95 +:1030B0008F84001C2406004230A5FFFF3C076019E6 +:1030C0000E000901000000000A000C3D0000000095 +:1030D0009222000B24040016304200FF1044000628 +:1030E0003C0680009222000B24030017304200FFB0 +:1030F000144300320000000034C5010090A2000B10 +:10310000304200FF1444000B000080218CA20020FC +:103110008CA400202403FF800043102400021140EF +:103120003084007F004410253C032000004310251C +:10313000ACC2083094A2000800021400000214037C +:10314000044200012410000194A2000830420080D3 +:103150005040001A0200A82194A20008304220002A +:10316000504000160200A8218CA300183C021C2D20 +:10317000344219ED106200110200A8213C0208003F +:103180008C4200D4104000053C0280082403000457 +:1031900034420100A04300FC3C028008344201009C +:1031A000944500EA8F84001C2406000630A5FFFF2A +:1031B0000E0009013C0760210200A8210E00093918 +:1031C000000000009222000A304200081040000473 +:1031D00002A010210E0013790000000002A01021AF +:1031E0008FBF00308FB5002C8FB400288FB3002420 +:1031F0008FB200208FB1001C8FB0001803E00008D0 +:1032000027BD00382402FF80008220243C02900069 +:1032100034420007008220253C028000AC4400209C +:103220003C0380008C6200200440FFFE0000000090 +:1032300003E00008000000003C0380002402FF803F +:10324000008220243462000700822025AC64002024 +:103250008C6200200440FFFE0000000003E0000834 +:103260000000000027BDFFD8AFB3001CAFB10014B1 +:10327000AFB00010AFBF0020AFB200183C1180000B +:103280003C0280088E32002034530100AE2400201E +:10329000966300EA000514003C074000004738250B +:1032A00000A08021000030210E0009013065FFFFE1 +:1032B000240200A1160200022402FFFFA2620009FC +:1032C000AE3200208FBF00208FB3001C8FB20018D9 +:1032D0008FB100148FB0001003E0000827BD002854 +:1032E0003C0280082403000527BDFFE834420100AA +:1032F000A04300FCAFBF00103C0280008C420100E4 +:10330000240500A1004020210E000C67AF82001CA4 +:103310003C0380008C6202780440FFFE8F82001C18 +:103320008FBF001027BD0018AC62024024020002CB +:10333000A06202443C021000AC62027803E0000884 +:103340000000000027BDFFE83C068000AFBF001072 +:1033500034C7010094E20008304400FF3883008243 +:10336000388200842C6300012C4200010062182581 +:103370001060002D24020083938200195040003B0E +:103380008FBF00103C020800904256CC8CC4010054 +:103390003C06080094C656C63045003F38A30032AC +:1033A00038A2003F2C6300012C4200010062182566 +:1033B000AF84001CAF860014A380001914600007BE +:1033C00000E020212402002014A2001200000000CE +:1033D0003402FFFF14C2000F00000000240200208E +:1033E00014A2000500E028218CE300142402FFFF52 +:1033F0005062000B8FBF00103C040800248456C0AC +:10340000000030210E000706240700010A000CD638 +:103410008FBF00100E000777000000008FBF001064 +:103420000A00093927BD001814820004240200850F +:103430008CC501040A000CE1000020211482000662 +:103440002482FF808CC50104240440008FBF00103B +:103450000A00016727BD0018304200FF2C4200021D +:1034600010400004240200228FBF00100A000B2726 +:1034700027BD0018148200048F8200248FBF001023 +:103480000A000C8627BD00188C42000C1040001E5C +:1034900000E0282190E300092402001814620003D0 +:1034A000240200160A000CFC240300081462000722 +:1034B00024020017240300123C02800834420080DA +:1034C000A04300090A000D0994A7000854620007F0 +:1034D00094A700088F82FF942404FFFE9043000508 +:1034E00000641824A043000594A7000890A6001BC0 +:1034F0008CA4000094A500068FBF001000073C00BC +:103500000A0008DC27BD00188FBF001003E0000888 +:1035100027BD00188F8500243C04800094A2002A57 +:103520008CA30034000230C02402FFF000C210243B +:1035300000621821AC83003C8CA200303C03800068 +:10354000AC8200383C02005034420010AC620030C3 +:103550000000000000000000000000008C6200007D +:10356000304200201040FFFD30C20008104000062D +:103570003C0280008C620408ACA200208C62040C27 +:103580000A000D34ACA200248C430400ACA300203C +:103590008C420404ACA200243C0300203C028000C6 +:1035A000AC4300303C0480008C8200300043102487 +:1035B0001440FFFD8F8600243C020040AC820030A6 +:1035C00094C3002A94C2002894C4002C94C5002EF1 +:1035D00024630001004410213064FFFFA4C20028CE +:1035E00014850002A4C3002AA4C0002A03E0000836 +:1035F000000000008F84002427BDFFE83C05800404 +:1036000024840010AFBF00100E000E472406000AED +:103610008F840024948200129483002E3042000F85 +:10362000244200030043180424027FFF0043102BB0 +:1036300010400002AC8300000000000D0E000D13CE +:10364000000000008F8300248FBF001027BD0018EA +:10365000946200149463001A3042000F00021500B7 +:10366000006218253C02800003E00008AC4300A083 +:103670008F8300243C028004944400069462001A64 +:103680008C650000A4640016004410233042FFFF44 +:103690000045102B03E00008384200018F8400240D +:1036A0003C0780049486001A8C85000094E2000692 +:1036B000A482001694E3000600C310233042FFFFEB +:1036C0000045102B384200011440FFF8A483001677 +:1036D00003E00008000000008F8400243C02800406 +:1036E000944200069483001A8C850000A482001680 +:1036F000006210233042FFFF0045102B38420001CA +:103700005040000D8F850024006030213C0780046C +:1037100094E20006A482001694E3000600C310237E +:103720003042FFFF0045102B384200011440FFF8E3 +:10373000A48300168F8500243C03800034620400BB +:103740008CA40020AF820020AC6400388CA200243E +:10375000AC62003C3C020005AC62003003E00008B3 +:10376000ACA000048F8400243C0300068C8200047B +:1037700000021140004310253C038000AC62003081 +:103780000000000000000000000000008C6200004B +:10379000304200101040FFFD34620400AC80000491 +:1037A00003E00008AF8200208F86002427BDFFE0E1 +:1037B000AFB10014AFB00010AFBF00188CC300044D +:1037C0008CC500248F820020309000FF94C4001A22 +:1037D00024630001244200202484000124A7002047 +:1037E000ACC30004AF820020A4C4001AACC70024FC +:1037F00004A100060000882104E2000594C2001A1A +:103800008CC2002024420001ACC2002094C2001AE5 +:1038100094C300282E040001004310262C4200010E +:10382000004410245040000594C2001A24020001F4 +:10383000ACC2000894C2001A94C300280010202BC8 +:10384000004310262C4200010044102514400007BC +:10385000000000008CC20008144000042402001084 +:103860008CC300041462000F8F8500240E000DA786 +:10387000241100018F820024944300289442001AEE +:1038800014430003000000000E000D1300000000B0 +:10389000160000048F8500240E000D840000000037 +:1038A0008F85002494A2001E94A4001C24420001D1 +:1038B0003043FFFF14640002A4A2001EA4A0001E57 +:1038C0001200000A3C02800494A2001494A3001A7F +:1038D0003042000F00021500006218253C028000F3 +:1038E000AC4300A00A000E1EACA0000894420006E3 +:1038F00094A3001A8CA40000A4A200160062102356 +:103900003042FFFF0044102B384200011040000DF0 +:1039100002201021006030213C07800494E2000660 +:10392000A4A2001694E3000600C310233042FFFF58 +:103930000044102B384200011440FFF8A4A30016E5 +:10394000022010218FBF00188FB100148FB000101B +:1039500003E0000827BD002003E00008000000008D +:103960008F82002C3C03000600021140004310250A +:103970003C038000AC62003000000000000000004A +:10398000000000008C620000304200101040FFFD7B +:1039900034620400AF82002803E00008AF80002CEE +:1039A00003E000080000102103E000080000000010 +:1039B0003084FFFF30A5FFFF0000182110800007B2 +:1039C000000000003082000110400002000420428C +:1039D000006518210A000E3D0005284003E000089C +:1039E0000060102110C0000624C6FFFF8CA200005A +:1039F00024A50004AC8200000A000E4724840004C1 +:103A000003E000080000000010A0000824A3FFFF4E +:103A1000AC86000000000000000000002402FFFF50 +:103A20002463FFFF1462FFFA2484000403E000080B +:103A3000000000003C0280083442008024030001A2 +:103A4000AC43000CA4430010A4430012A443001490 +:103A500003E00008A44300168F82002427BDFFD88E +:103A6000AFB3001CAFB20018AFB10014AFB000107C +:103A7000AFBF00208C47000C248200802409FF8007 +:103A80003C08800E3043007F008080213C0A80008B +:103A9000004920240068182130B100FF30D200FF17 +:103AA00010E000290000982126020100AD44002CFE +:103AB000004928243042007F004820219062000005 +:103AC00024030050304200FF1443000400000000B3 +:103AD000AD45002C948200EA3053FFFF0E000D84A8 +:103AE000000000008F8200248F83002000112C0032 +:103AF0009442001E001224003484000100A22825F4 +:103B00003C02400000A22825AC7000008FBF0020BE +:103B1000AC6000048FB20018AC7300088FB10014C1 +:103B2000AC60000C8FB3001CAC6400108FB00010B0 +:103B3000AC60001424040001AC60001827BD00280C +:103B40000A000DB8AC65001C8FBF00208FB3001CAD +:103B50008FB200188FB100148FB0001003E000087E +:103B600027BD00283C06800034C201009043000FAE +:103B7000240200101062000E2865001110A000073A +:103B800024020012240200082405003A10620006F4 +:103B90000000302103E0000800000000240500358B +:103BA0001462FFFC000030210A000E6400000000D7 +:103BB0008CC200748F83FF9424420FA003E000089E +:103BC000AC62000C27BDFFE8AFBF00100E0003423F +:103BD000240500013C0480088FBF0010240200016E +:103BE00034830080A462001227BD00182402000163 +:103BF00003E00008A080001A27BDFFE0AFB2001864 +:103C0000AFB10014AFB00010AFBF001C30B2FFFF67 +:103C10000E000332008088213C028008345000806E +:103C20009202000924030004304200FF1443000CF8 +:103C30003C028008124000082402000A0E000E5BBD +:103C400000000000920200052403FFFE0043102440 +:103C5000A202000524020012A20200093C02800810 +:103C600034420080022020210E00033DA0400027A6 +:103C700016400003022020210E000EBF00000000AD +:103C800002202021324600FF8FBF001C8FB2001897 +:103C90008FB100148FB00010240500380A000E64A4 +:103CA00027BD002027BDFFE0AFBF001CAFB200184A +:103CB000AFB10014AFB000100E00033200808021BD +:103CC0000E000E5B000000003C02800834450080BE +:103CD00090A2000924120018305100FF1232000394 +:103CE0000200202124020012A0A2000990A20005D7 +:103CF0002403FFFE004310240E00033DA0A2000594 +:103D00000200202124050020163200070000302187 +:103D10008FBF001C8FB200188FB100148FB000103D +:103D20000A00034227BD00208FBF001C8FB200187D +:103D30008FB100148FB00010240500390A000E6402 +:103D400027BD002027BDFFE83C028000AFB0001077 +:103D5000AFBF0014344201009442000C2405003629 +:103D60000080802114400012304600FF0E00033214 +:103D7000000000003C02800834420080240300124E +:103D8000A043000990430005346300100E000E5B51 +:103D9000A04300050E00033D020020210200202167 +:103DA0000E000342240500200A000F3C0000000022 +:103DB0000E000E64000000000E00033202002021FD +:103DC0003C0280089043001B2405FF9F0200202135 +:103DD000006518248FBF00148FB00010A043001B93 +:103DE0000A00033D27BD001827BDFFE0AFBF001844 +:103DF000AFB10014AFB0001030B100FF0E000332BD +:103E0000008080213C02800824030012344200809C +:103E10000E000E5BA04300090E00033D02002021AE +:103E200002002021022030218FBF00188FB1001422 +:103E30008FB00010240500350A000E6427BD002055 +:103E40003C0480089083000E9082000A1443000B0B +:103E5000000028218F82FF942403005024050001D4 +:103E600090420000304200FF1443000400000000B4 +:103E70009082000E24420001A082000E03E00008A0 +:103E800000A010213C0380008C6201F80440FFFE7A +:103E900024020002AC6401C0A06201C43C02100014 +:103EA00003E00008AC6201F827BDFFE0AFB20018E4 +:103EB0003C128008AFB10014AFBF001CAFB00010BF +:103EC00036510080922200092403000A304200FF8C +:103ED0001443003E000000008E4300048E22003890 +:103EE000506200808FBF001C92220000240300500B +:103EF000304200FF144300253C0280008C42014008 +:103F00008E4300043642010002202821AC43001CED +:103F10009622005C8E2300383042FFFF00021040E2 +:103F200000621821AE23001C8E4300048E2400384A +:103F30009622005C006418233042FFFF0003184300 +:103F4000000210400043102A10400006000000004C +:103F50008E4200048E230038004310230A000FAA6B +:103F6000000220439622005C3042FFFF0002204006 +:103F70003C0280083443010034420080ACA4002C91 +:103F8000A040002424020001A062000C0E000F5E7D +:103F900000000000104000538FBF001C3C02800056 +:103FA0008C4401403C0380008C6201F80440FFFE19 +:103FB00024020002AC6401C0A06201C43C021000F3 +:103FC000AC6201F80A0010078FBF001C92220009A2 +:103FD00024030010304200FF144300043C02800020 +:103FE0008C4401400A000FEE0000282192220009B3 +:103FF00024030016304200FF14430006240200147C +:10400000A22200093C0280008C4401400A001001F9 +:104010008FBF001C8E2200388E23003C00431023EB +:10402000044100308FBF001C92220027244200016F +:10403000A2220027922200272C42000414400016DE +:104040003C1080009222000924030004304200FF4B +:10405000144300093C0280008C4401408FBF001CC7 +:104060008FB200188FB100148FB000102405009398 +:104070000A000ECC27BD00208C440140240500938B +:104080008FBF001C8FB200188FB100148FB00010CA +:104090000A000F4827BD00208E0401400E000332A5 +:1040A000000000008E4200042442FFFFAE420004E4 +:1040B0008E22003C2442FFFFAE22003C0E00033D56 +:1040C0008E0401408E0401408FBF001C8FB2001887 +:1040D0008FB100148FB00010240500040A000342C1 +:1040E00027BD00208FB200188FB100148FB00010D0 +:1040F00003E0000827BD00203C0680008CC2018838 +:104100003C038008346500809063000E00021402B6 +:10411000304400FF306300FF1464000E3C0280084E +:1041200090A20026304200FF104400098F82FF94C5 +:10413000A0A400262403005090420000304200FF5B +:1041400014430006000000000A0005A18CC4018091 +:104150003C02800834420080A044002603E00008AE +:104160000000000027BDFFE030E700FFAFB20018FD +:10417000AFBF001CAFB10014AFB0001000809021A1 +:1041800014E0000630C600FF000000000000000D33 +:10419000000000000A001060240001163C038008A3 +:1041A0009062000E304200FF14460023346200800B +:1041B00090420026304200FF1446001F000000001D +:1041C0009062000F304200FF1446001B0000000008 +:1041D0009062000A304200FF144600038F90FF9463 +:1041E0000000000D8F90FF948F82FF983C1180009B +:1041F000AE05003CAC450000A066000A0E0003328C +:104200008E240100A20000240E00033D8E24010034 +:104210003C0380008C6201F80440FFFE240200028F +:10422000AC7201C0A06201C43C021000AC6201F893 +:104230000A0010618FBF001C000000000000000D8C +:10424000000000002400013F8FBF001C8FB2001847 +:104250008FB100148FB0001003E0000827BD0020CC +:104260008F83FF943C0280008C44010034420100A3 +:104270008C65003C9046001B0A00102724070001B3 +:104280003C0280089043000E9042000A0043102632 +:10429000304200FF03E000080002102B27BDFFE0C2 +:1042A0003C028008AFB10014AFB00010AFBF0018DF +:1042B0003450008092020005240300303042003068 +:1042C00014430085008088218F8200248C42000CDA +:1042D000104000828FBF00180E000D840000000007 +:1042E0008F860020ACD100009202000892030009E2 +:1042F000304200FF00021200306300FF004310252F +:10430000ACC200049202004D000216000002160327 +:1043100004410005000000003C0308008C630048D5 +:104320000A00109F3C1080089202000830420040B2 +:10433000144000030000182192020027304300FFC0 +:104340003C108008361100809222004D00031E00B0 +:10435000304200FF0002140000621825ACC30008C0 +:104360008E2400308F820024ACC4000C8E250034D3 +:104370009443001E3C02C00BACC50010006218251F +:104380008E22003800002021ACC200148E22003C96 +:10439000ACC200180E000DB8ACC3001C8E020004A5 +:1043A0008F8400203C058000AC8200008E2200201B +:1043B000AC8200048E22001CAC8200088E220058C1 +:1043C0008CA3007400431021AC82000C8E22002CC0 +:1043D000AC8200108E2200408E23004400021400A4 +:1043E00000431025AC8200149222004D240300806B +:1043F000304200FF1443000400000000AC800018AD +:104400000A0010E38F8200248E23000C2402000196 +:104410001062000E2402FFFF92220008304200408A +:104420001440000A2402FFFF8E23000C8CA20074AB +:10443000006218233C0208000062102414400002AD +:10444000000028210060282100051043AC820018DC +:104450008F820024000020219443001E3C02C00CE7 +:10446000006218258F8200200E000DB8AC43001C9E +:104470003C038008346201008C4200008F850020DC +:10448000346300808FBF0018ACA20000ACA0000411 +:104490008C6400488F8200248FB10014ACA4000803 +:1044A000ACA0000CACA00010906300059446001E68 +:1044B0003C02400D00031E0000C23025ACA30014D6 +:1044C0008FB00010ACA0001824040001ACA6001CA2 +:1044D0000A000DB827BD00208FBF00188FB100144F +:1044E0008FB0001003E0000827BD00203C028000D0 +:1044F0009443007C3C02800834460100308400FF75 +:104500003065FFFF2402000524A34650A0C4000C20 +:104510005482000C3065FFFF90C2000D2C42000752 +:104520001040000724A30A0090C3000D24020014C9 +:104530000062100400A210210A00111F3045FFFF85 +:104540003065FFFF3C0280083442008003E0000831 +:10455000A44500143C03800834680080AD05003891 +:10456000346701008CE2001C308400FF00A210239D +:104570001840000330C600FF24A2FFFCACE2001C80 +:1045800030820001504000083C0380088D02003C4E +:1045900000A2102304410012240400058C620004D0 +:1045A00010A2000F3C0380088C62000414A2001EBD +:1045B000000000003C0208008C4200D8304200207D +:1045C000104000093C0280083462008090630008BB +:1045D0009042004C144300043C0280082404000470 +:1045E0000A00110900000000344300803442010039 +:1045F000A040000C24020001A462001410C0000AB4 +:104600003C0280008C4401003C0380008C6201F875 +:104610000440FFFE24020002AC6401C0A06201C499 +:104620003C021000AC6201F803E00008000000004A +:1046300027BDFFE800A61823AFBF00101860008058 +:10464000308800FF3C02800834470080A0E000244E +:1046500034440100A0E000278C82001C00A210233B +:1046600004400056000000008CE2003C94E3005C33 +:104670008CE4002C004530233063FFFF00C3182179 +:104680000083202B1080000400E018218CE2002C15 +:104690000A00117800A2102194E2005C3042FFFF72 +:1046A00000C2102100A21021AC62001C3C02800854 +:1046B000344400809482005C8C83001C3042FFFFF5 +:1046C0000002104000A210210043102B10400004F3 +:1046D000000000008C82001C0A00118B3C06800840 +:1046E0009482005C3042FFFF0002104000A21021C3 +:1046F0003C06800834C3010034C70080AC82001C33 +:10470000A060000CACE500388C62001C00A21023F5 +:104710001840000224A2FFFCAC62001C3102000120 +:10472000104000083C0380088CE2003C00A21023EB +:1047300004410012240400058CC2000410A20010E1 +:104740008FBF00108C62000414A2004F8FBF0010B6 +:104750003C0208008C4200D8304200201040000A81 +:104760003C02800834620080906300089042004C54 +:10477000144300053C028008240400048FBF00108D +:104780000A00110927BD001834430080344201009B +:10479000A040000C24020001A46200143C0280002E +:1047A0008C4401003C0380008C6201F80440FFFE51 +:1047B000240200020A0011D8000000008CE2001C54 +:1047C000004610230043102B54400001ACE5001CB0 +:1047D00094E2005C3042FFFF0062102B144000079F +:1047E0002402000294E2005C8CE3001C3042FFFFD4 +:1047F00000621821ACE3001C24020002ACE5003882 +:104800000E000F5EA082000C1040001F8FBF001032 +:104810003C0280008C4401003C0380008C6201F863 +:104820000440FFFE24020002AC6401C0A06201C487 +:104830003C021000AC6201F80A0011F08FBF0010BA +:1048400031020010104000108FBF00103C028008A1 +:10485000344500808CA3001C94A2005C00661823E1 +:104860003042FFFF006218213C023FFF3444FFFF4B +:104870000083102B544000010080182100C3102138 +:10488000ACA2001C8FBF001003E0000827BD001879 +:1048900027BDFFE800C0402100A63023AFBF0010B5 +:1048A00018C00026308A00FF3C028008344900808E +:1048B0008D24001C8D23002C008820230064182BDD +:1048C0001060000F344701008CE2002000461021E8 +:1048D000ACE200208CE200200044102B1440000BBE +:1048E0003C023FFF8CE2002000441023ACE2002099 +:1048F0009522005C3042FFFF0A0012100082202146 +:10490000ACE00020008620213C023FFF3443FFFF43 +:104910000064102B54400001006020213C028008FC +:104920003442008000851821AC43001CA0400024C4 +:10493000A04000270A0012623C03800831420010A8 +:10494000104000433C0380083C06800834C40080CB +:104950008C82003C004810235840003E34660080A2 +:104960009082002424420001A0820024908200242E +:104970003C0308008C630024304200FF0043102BEE +:10498000144000688FBF001034C201008C42001C2C +:1049900000A2102318400063000000008CC3000434 +:1049A0009482005C006818233042FFFF0003184324 +:1049B000000210400043102A1040000500000000D3 +:1049C0008CC20004004810230A0012450002104364 +:1049D0009482005C3042FFFF000210403C068008D9 +:1049E000AC82002C34C5008094A2005C8CA4002C06 +:1049F00094A3005C3042FFFF00021040008220219F +:104A00003063FFFF0083202101041021ACA2001CB1 +:104A10008CC2000434C60100ACC2001C2402000297 +:104A20000E000F5EA0C2000C1040003E8FBF0010B1 +:104A30003C0280008C4401003C0380008C6201F841 +:104A40000440FFFE240200020A001292000000004F +:104A500034660080ACC50038346401008C82001CD0 +:104A600000A210231840000224A2FFFCAC82001C0C +:104A7000314200015040000A3C0380088CC2003CD7 +:104A800000A2102304430014240400058C620004D7 +:104A900014A200033C0380080A00128424040005C9 +:104AA0008C62000414A2001F8FBF00103C0208009B +:104AB0008C4200D8304200201040000A3C0280089E +:104AC00034620080906300089042004C144300055B +:104AD0003C028008240400048FBF00100A00110962 +:104AE00027BD00183443008034420100A040000C70 +:104AF00024020001A46200143C0280008C440100E6 +:104B00003C0380008C6201F80440FFFE2402000296 +:104B1000AC6401C0A06201C43C021000AC6201F8A8 +:104B20008FBF001003E0000827BD001827BDFFE875 +:104B30003C0A8008AFBF0010354900808D22003C40 +:104B400000C04021308400FF004610231840009D23 +:104B500030E700FF354701002402000100A63023A2 +:104B6000A0E0000CA0E0000DA522001418C0002455 +:104B7000308200108D23001C8D22002C0068182329 +:104B80000043102B1040000F000000008CE20020BA +:104B900000461021ACE200208CE200200043102BE4 +:104BA0001440000B3C023FFF8CE200200043102326 +:104BB000ACE200209522005C3042FFFF0A0012C1E7 +:104BC00000621821ACE00020006618213C023FFF83 +:104BD0003446FFFF00C3102B5440000100C01821D1 +:104BE0003C0280083442008000651821AC43001C60 +:104BF000A0400024A04000270A00130F3C038008B7 +:104C0000104000403C0380088D22003C00481023E7 +:104C10005840003D34670080912200242442000166 +:104C2000A1220024912200243C0308008C6300246C +:104C3000304200FF0043102B1440009A8FBF001039 +:104C40008CE2001C00A21023184000960000000017 +:104C50008D4300049522005C006818233042FFFF5A +:104C600000031843000210400043102A10400005C2 +:104C7000012020218D420004004810230A0012F276 +:104C8000000210439522005C3042FFFF00021040FA +:104C90003C068008AC82002C34C5008094A2005CE5 +:104CA0008CA4002C94A3005C3042FFFF0002104053 +:104CB000008220213063FFFF0083182101031021AF +:104CC000ACA2001C8CC2000434C60100ACC2001CA3 +:104CD000240200020E000F5EA0C2000C1040007102 +:104CE0008FBF00103C0280008C4401003C03800018 +:104CF0008C6201F80440FFFE240200020A0013390E +:104D00000000000034670080ACE500383466010024 +:104D10008CC2001C00A210231840000224A2FFFC39 +:104D2000ACC2001C30820001504000083C038008E7 +:104D30008CE2003C00A2102304430051240400052F +:104D40008C62000410A2003E3C0380088C620004C8 +:104D500054A200548FBF00103C0208008C4200D8BF +:104D600030420020104000063C028008346200807F +:104D7000906300089042004C104300403C028008C1 +:104D80003443008034420100A040000C24020001A2 +:104D9000A46200143C0280008C4401003C038000AB +:104DA0008C6201F80440FFFE24020002AC6401C0E2 +:104DB000A06201C43C021000AC6201F80A00137743 +:104DC0008FBF001024020005A120002714E2000A72 +:104DD0003C038008354301009062000D2C42000620 +:104DE000504000053C0380089062000D2442000101 +:104DF000A062000D3C03800834670080ACE50038F9 +:104E0000346601008CC2001C00A21023184000026E +:104E100024A2FFFCACC2001C308200015040000AFA +:104E20003C0380088CE2003C00A2102304410014E3 +:104E3000240400058C62000414A200033C038008D3 +:104E40000A00136E240400058C62000414A20015ED +:104E50008FBF00103C0208008C4200D83042002076 +:104E60001040000A3C028008346200809063000811 +:104E70009042004C144300053C02800824040004C6 +:104E80008FBF00100A00110927BD001834430080AD +:104E900034420100A040000C24020001A46200146E +:104EA0008FBF001003E0000827BD00183C0B8008EE +:104EB00027BDFFE83C028000AFBF00103442010074 +:104EC000356A00809044000A356901008C45001461 +:104ED0008D4800389123000C308400FF0105102319 +:104EE0001C4000B3306700FF2CE20006504000B1C8 +:104EF0008FBF00102402000100E2300430C2000322 +:104F00005440000800A8302330C2000C144000A117 +:104F100030C20030144000A38FBF00100A00143BC1 +:104F20000000000018C00024308200108D43001CD7 +:104F30008D42002C006818230043102B1040000FF6 +:104F4000000000008D22002000461021AD2200202C +:104F50008D2200200043102B1440000B3C023FFF29 +:104F60008D22002000431023AD2200209542005CDA +:104F70003042FFFF0A0013AF00621821AD2000206D +:104F8000006618213C023FFF3446FFFF00C3102B90 +:104F90005440000100C018213C02800834420080C7 +:104FA00000651821AC43001CA0400024A04000274D +:104FB0000A0013FD3C038008104000403C038008B9 +:104FC0008D42003C004810231840003D34670080AB +:104FD0009142002424420001A14200249142002475 +:104FE0003C0308008C630024304200FF0043102B78 +:104FF000144000708FBF00108D22001C00A21023EF +:105000001840006C000000008D6300049542005CB5 +:10501000006818233042FFFF0003184300021040CD +:105020000043102A10400005014020218D62000439 +:10503000004810230A0013E0000210439542005C70 +:105040003042FFFF000210403C068008AC82002C7A +:1050500034C5008094A2005C8CA4002C94A3005C56 +:105060003042FFFF00021040008220213063FFFF2A +:105070000083182101031021ACA2001C8CC2000483 +:1050800034C60100ACC2001C240200020E000F5EF8 +:10509000A0C2000C104000478FBF00103C028000EF +:1050A0008C4401003C0380008C6201F80440FFFE48 +:1050B000240200020A00142D000000003467008062 +:1050C000ACE50038346601008CC2001C00A210233D +:1050D0001840000224A2FFFCACC2001C3082000178 +:1050E0005040000A3C0380088CE2003C00A21023E0 +:1050F00004430014240400058C62000414A200037D +:105100003C0380080A00141F240400058C6200047C +:1051100014A200288FBF00103C0208008C4200D867 +:10512000304200201040000A3C02800834620080B7 +:10513000906300089042004C144300053C02800834 +:10514000240400048FBF00100A00110927BD0018B5 +:105150003443008034420100A040000C24020001CE +:10516000A46200143C0280008C4401003C038000D7 +:105170008C6201F80440FFFE24020002AC6401C00E +:10518000A06201C43C021000AC6201F80A00143BAA +:105190008FBF00108FBF0010010030210A00115A8C +:1051A00027BD0018010030210A00129927BD001800 +:1051B0008FBF001003E0000827BD00183C038008E3 +:1051C0003464010024020003A082000C8C620004FD +:1051D00003E00008AC82001C3C05800834A300807A +:1051E0009062002734A501002406004324420001F8 +:1051F000A0620027906300273C0208008C42004810 +:10520000306300FF146200043C07602194A500EAAB +:105210000A00090130A5FFFF03E0000800000000BC +:1052200027BDFFE8AFBF00103C0280000E00144411 +:105230008C4401803C02800834430100A060000CD3 +:105240008C4200048FBF001027BD001803E0000847 +:10525000AC62001C27BDFFE03C028008AFBF001815 +:10526000AFB10014AFB000103445008034460100E7 +:105270003C0880008D09014090C3000C8CA4003CC8 +:105280008CA200381482003B306700FF9502007C3E +:1052900090A30027146000093045FFFF2402000599 +:1052A00054E200083C04800890C2000D2442000132 +:1052B000A0C2000D0A00147F3C048008A0C0000DAD +:1052C0003C048008348201009042000C2403000555 +:1052D000304200FF1443000A24A205DC348300801E +:1052E000906200272C4200075040000524A20A00CB +:1052F00090630027240200140062100400A2102111 +:105300003C108008361000803045FFFF012020212E +:105310000E001444A60500149602005C8E030038AB +:105320003C1180003042FFFF000210400062182153 +:10533000AE03001C0E0003328E24014092020025B1 +:1053400034420040A20200250E00033D8E2401409D +:105350008E2401403C0380008C6201F80440FFFE73 +:1053600024020002AC6401C0A06201C43C0210002F +:10537000AC6201F88FBF00188FB100148FB000101D +:1053800003E0000827BD00203C0360103C02080039 +:1053900024420174AC62502C8C6250003C048000AA +:1053A00034420080AC6250003C0208002442547C2D +:1053B0003C010800AC2256003C020800244254384C +:1053C0003C010800AC2256043C020002AC840008F8 +:1053D000AC82000C03E000082402000100A0302190 +:1053E0003C1C0800279C56083C0200023C050400B7 +:1053F00000852826008220260004102B2CA5000101 +:105400002C840001000210803C0308002463560035 +:105410000085202500431821108000030000102182 +:10542000AC6600002402000103E000080000000058 +:105430003C1C0800279C56083C0200023C05040066 +:1054400000852826008220260004102B2CA50001B0 +:105450002C840001000210803C03080024635600E5 +:105460000085202500431821108000050000102130 +:105470003C02080024425438AC62000024020001BF +:1054800003E00008000000003C0200023C030400AE +:1054900000821026008318262C4200012C63000194 +:1054A000004310251040000B000028213C1C080080 +:1054B000279C56083C0380008C62000824050001EC +:1054C00000431025AC6200088C62000C00441025DB +:1054D000AC62000C03E0000800A010213C1C080096 +:1054E000279C56083C0580008CA3000C0004202754 +:1054F000240200010064182403E00008ACA3000C9F +:105500003C020002148200063C0560008CA208D018 +:105510002403FFFE0043102403E00008ACA208D0DF +:105520003C02040014820005000000008CA208D098 +:105530002403FFFD00431024ACA208D003E00008C0 +:10554000000000003C02601A344200108C430080CE +:1055500027BDFFF88C440084AFA3000093A3000094 +:10556000240200041462001AAFA4000493A20001F4 +:105570001040000797A300023062FFFC3C0380004C +:10558000004310218C4200000A001536AFA200042F +:105590003062FFFC3C03800000431021AC4400005B +:1055A000A3A000003C0560008CA208D02403FFFEED +:1055B0003C04601A00431024ACA208D08FA300045E +:1055C0008FA2000034840010AC830084AC82008081 +:1055D00003E0000827BD000827BDFFE8AFBF0010AB +:1055E0003C1C0800279C56083C0280008C43000CA1 +:1055F0008C420004004318243C0200021060001496 +:10560000006228243C0204003C04000210A00005B3 +:10561000006210243C0208008C4256000A00155B10 +:1056200000000000104000073C0404003C02080099 +:105630008C4256040040F809000000000A00156082 +:10564000000000000000000D3C1C0800279C5608CC +:105650008FBF001003E0000827BD0018800802403B +:1056600080080100800800808008000000000C8095 +:105670000000320008000E9808000EF408000F88A1 +:1056800008001028080010748008010080080080BD +:10569000800800000A000028000000000000000050 +:1056A0000000000D6370362E322E316200000000C3 +:1056B00006020104000000000000000000000000DD +:1056C000000000000000000038003C000000000066 +:1056D00000000000000000000000000000000020AA +:1056E00000000000000000000000000000000000BA +:1056F00000000000000000000000000000000000AA +:10570000000000000000000021003800000000013F +:105710000000002B000000000000000400030D400A +:105720000000000000000000000000000000000079 +:105730000000000000000000100000030000000056 +:105740000000000D0000000D3C020800244259AC8E +:105750003C03080024635BF4AC4000000043202BB2 +:105760001480FFFD244200043C1D080037BD9FFC4F +:1057700003A0F0213C100800261000A03C1C0800EB +:10578000279C59AC0E0002F6000000000000000D3E +:1057900027BDFFB4AFA10000AFA20004AFA3000873 +:1057A000AFA4000CAFA50010AFA60014AFA700185F +:1057B000AFA8001CAFA90020AFAA0024AFAB0028FF +:1057C000AFAC002CAFAD0030AFAE0034AFAF00389F +:1057D000AFB8003CAFB90040AFBC0044AFBF004819 +:1057E0000E000820000000008FBF00488FBC00445E +:1057F0008FB900408FB8003C8FAF00388FAE0034B7 +:105800008FAD00308FAC002C8FAB00288FAA002406 +:105810008FA900208FA8001C8FA700188FA6001446 +:105820008FA500108FA4000C8FA300088FA2000486 +:105830008FA1000027BD004C3C1B60188F7A5030B0 +:10584000377B502803400008AF7A000000A01821E1 +:1058500000801021008028213C0460003C0760008B +:105860002406000810600006348420788C42000072 +:10587000ACE220088C63000003E00008ACE3200CDD +:105880000A000F8100000000240300403C02600079 +:1058900003E00008AC4320003C0760008F86000452 +:1058A0008CE520740086102100A2182B14600007DC +:1058B000000028218F8AFDA024050001A1440013C7 +:1058C0008F89000401244021AF88000403E0000810 +:1058D00000A010218F84FDA08F8500049086001306 +:1058E00030C300FF00A31023AF82000403E00008D0 +:1058F000A08000138F84FDA027BDFFE8AFB000108B +:10590000AFBF001490890011908700112402002875 +:10591000312800FF3906002830E300FF2485002CE1 +:105920002CD00001106200162484001C0E00006EB2 +:10593000000000008F8FFDA03C05600024020204DF +:1059400095EE003E95ED003C000E5C0031ACFFFF93 +:10595000016C5025ACAA2010520000012402000462 +:10596000ACA22000000000000000000000000000C9 +:105970008FBF00148FB0001003E0000827BD00188F +:105980000A0000A6000028218F85FDA027BDFFD8B2 +:10599000AFBF0020AFB3001CAFB20018AFB100140E +:1059A000AFB000100080982190A4001124B0001C1A +:1059B00024B1002C308300FF386200280E000090D4 +:1059C0002C5200010E00009800000000020020216F +:1059D0001240000202202821000028210E00006E43 +:1059E000000000008F8DFDA03C0880003C05600099 +:1059F00095AC003E95AB003C02683025000C4C0095 +:105A0000316AFFFF012A3825ACA7201024020202C8 +:105A1000ACA6201452400001240200028FBF0020D7 +:105A20008FB3001C8FB200188FB100148FB000101C +:105A300027BD002803E00008ACA2200027BDFFE03E +:105A4000AFB20018AFB10014AFB00010AFBF001C70 +:105A50003C1160008E2320748F82000430D0FFFF41 +:105A600030F2FFFF1062000C2406008F0E00006E63 +:105A7000000000003C06801F0010440034C5FF00F9 +:105A80000112382524040002AE2720100000302126 +:105A9000AE252014AE2420008FBF001C8FB200184A +:105AA0008FB100148FB0001000C0102103E0000877 +:105AB00027BD002027BDFFE0AFB0001030D0FFFFB2 +:105AC000AFBF0018AFB100140E00006E30F1FFFF41 +:105AD00000102400009180253C036000AC70201071 +:105AE0008FBF00188FB100148FB000102402000483 +:105AF000AC62200027BD002003E000080000102158 +:105B000027BDFFE03C046018AFBF0018AFB1001420 +:105B1000AFB000108C8850002403FF7F34028071E6 +:105B20000103382434E5380C241F00313C1980006F +:105B3000AC8550003C11800AAC8253BCAF3F0008DA +:105B40000E00054CAF9100400E00050A3C116000AC +:105B50000E00007D000000008E3008083C0F570941 +:105B60002418FFF00218602435EEE00035EDF00057 +:105B7000018E5026018D58262D4600012D69000109 +:105B8000AF86004C0E000D09AF8900503C06601630 +:105B90008CC700003C0860148D0500A03C03FFFF8B +:105BA00000E320243C02535300052FC2108200550D +:105BB00034D07C00960201F2A780006C10400003F4 +:105BC000A780007C384B1E1EA78B006C960201F844 +:105BD000104000048F8D0050384C1E1EA78C007C96 +:105BE0008F8D005011A000058F83004C240E0020E3 +:105BF000A78E007CA78E006C8F83004C1060000580 +:105C00009785007C240F0020A78F007CA78F006C55 +:105C10009785007C2CB8008153000001240500808A +:105C20009784006C2C91040152200001240404008C +:105C30001060000B3C0260008FBF00188FB1001491 +:105C40008FB0001027BD0020A784006CA785007CC2 +:105C5000A380007EA780007403E00008A780009264 +:105C60008C4704382419103C30FFFFFF13F9000360 +:105C700030A8FFFF1100004624030050A380007EDF +:105C80009386007E50C00024A785007CA780007CFE +:105C90009798007CA780006CA7800074A780009272 +:105CA0003C010800AC3800800E00078700000000AF +:105CB0003C0F60008DED0808240EFFF03C0B600ED9 +:105CC000260C0388356A00100000482100002821B6 +:105CD00001AE20243C105709AF8C0010AF8A004859 +:105CE000AF89001810900023AF8500148FBF0018F3 +:105CF0008FB100148FB0001027BD002003E0000812 +:105D0000AF80005400055080014648218D260004D4 +:105D10000A00014800D180219798007CA784006C7C +:105D2000A7800074A78000923C010800AC38008076 +:105D30000E000787000000003C0F60008DED080892 +:105D4000240EFFF03C0B600E260C0388356A001011 +:105D5000000048210000282101AE20243C105709F2 +:105D6000AF8C0010AF8A0048AF8900181490FFDF95 +:105D7000AF85001424110001AF9100548FBF0018AB +:105D80008FB100148FB0001003E0000827BD002081 +:105D90000A00017BA383007E3083FFFF8F880040D1 +:105DA0008F87003C000321403C0580003C020050EE +:105DB000008248253C0660003C0A010034AC040027 +:105DC0008CCD08E001AA58241160000500000000F5 +:105DD0008CCF08E024E7000101EA7025ACCE08E092 +:105DE0008D19001001805821ACB900388D180014AD +:105DF000ACB8003CACA9003000000000000000007E +:105E00000000000000000000000000000000000092 +:105E100000000000000000003C0380008C640000D3 +:105E2000308200201040FFFD3C0F60008DED08E047 +:105E30003C0E010001AE18241460FFE100000000D8 +:105E4000AF87003C03E00008AF8B00588F8500400F +:105E5000240BFFF03C06800094A7001A8CA90024B4 +:105E600030ECFFFF000C38C000EB5024012A402129 +:105E7000ACC8003C8CA400248CC3003C00831023DD +:105E800018400033000000008CAD002025A2000166 +:105E90003C0F0050ACC2003835EE00103C068000CC +:105EA000ACCE003000000000000000000000000048 +:105EB00000000000000000000000000000000000E2 +:105EC000000000003C0480008C9900003338002062 +:105ED0001300FFFD30E20008104000173C0980006D +:105EE0008C880408ACA800108C83040CACA30014AC +:105EF0003C1900203C188000AF19003094AE001807 +:105F000094AF001C01CF3021A4A6001894AD001A54 +:105F100025A70001A4A7001A94AB001A94AC001E98 +:105F2000118B00030000000003E0000800000000E7 +:105F300003E00008A4A0001A8D2A0400ACAA0010F7 +:105F40008D240404ACA400140A0002183C1900209B +:105F50008CA200200A0002003C0F00500A0001EE53 +:105F60000000000027BDFFE8AFBF00100E000232A6 +:105F7000000000008F8900408FBF00103C038000AC +:105F8000A520000A9528000A9527000427BD0018BF +:105F90003105FFFF30E6000F0006150000A22025A6 +:105FA00003E00008AC6400803C0508008CA50020DC +:105FB0008F83000C27BDFFE8AFB00010AFBF001407 +:105FC00010A300100000802124040001020430040A +:105FD00000A6202400C3102450440006261000010F +:105FE000001018802787FDA41480000A006718217C +:105FF000261000012E0900025520FFF38F83000CAC +:10600000AF85000C8FBF00148FB0001003E00008B4 +:1060100027BD00188C6800003C058000ACA8002457 +:106020000E000234261000013C0508008CA500205B +:106030000A0002592E0900022405000100851804F7 +:106040003C0408008C84002027BDFFC8AFBF00348B +:1060500000831024AFBE0030AFB7002CAFB60028CD +:10606000AFB50024AFB40020AFB3001CAFB200182E +:10607000AFB1001410400051AFB000108F84004049 +:10608000948700069488000A00E8302330D5FFFF8B +:1060900012A0004B8FBF0034948B0018948C000A20 +:1060A000016C50233142FFFF02A2482B1520000251 +:1060B00002A02021004020212C8F000515E00002C5 +:1060C00000809821241300040E0001C102602021E9 +:1060D0008F87004002609021AF80004494F4000A52 +:1060E000026080211260004E3291FFFF3C1670006A +:1060F0003C1440003C1E20003C1760008F99005863 +:106100008F380000031618241074004F0283F82BF8 +:1061100017E0003600000000107E00478F86004424 +:1061200014C0003A2403000102031023022320219B +:106130003050FFFF1600FFF13091FFFF8F870040C6 +:106140003C1100203C108000AE11003094EB000A9E +:106150003C178000024B5021A4EA000A94E9000A8F +:1061600094E800043123FFFF3106000F00062D00E4 +:106170000065F025AEFE008094F3000A94F6001846 +:1061800012D30036001221408CFF00148CF4001052 +:1061900003E468210000C02101A4782B029870213B +:1061A00001CF6021ACED0014ACEC001002B238233A +:1061B00030F5FFFF16A0FFB88F8400408FBF00347A +:1061C0008FBE00308FB7002C8FB600288FB500240B +:1061D0008FB400208FB3001C8FB200188FB1001451 +:1061E0008FB0001003E0000827BD00381477FFCC03 +:1061F0008F8600440E000EE202002021004018218C +:106200008F86004410C0FFC9020310230270702360 +:106210008F87004001C368210A0002E431B2FFFF0A +:106220008F86004414C0FFC93C1100203C10800040 +:106230000A0002AEAE1100300E00046602002021FA +:106240000A0002DB00401821020020210E0009395B +:10625000022028210A0002DB004018210E0001EE76 +:10626000000000000A0002C702B2382327BDFFC8A1 +:10627000AFB7002CAFB60028AFB50024AFB40020F4 +:10628000AFB3001CAFB20018AFB10014AFB0001034 +:10629000AFBF00300E00011B241300013C047FFF40 +:1062A0003C0380083C0220003C010800AC20007048 +:1062B0003496FFFF34770080345200033C1512C03F +:1062C000241400013C1080002411FF800E000245C0 +:1062D000000000008F8700488F8B00188F89001402 +:1062E0008CEA00EC8CE800E8014B302B01092823F4 +:1062F00000A6102314400006014B18231440000E82 +:106300003C05800002A3602B1180000B0000000000 +:106310003C0560008CEE00EC8CED00E88CA4180CC1 +:10632000AF8E001804800053AF8D00148F8F0010C3 +:10633000ADF400003C0580008CBF00003BF900017B +:10634000333800011700FFE13C0380008C6201003C +:1063500024060C0010460009000000008C680100B3 +:106360002D043080548000103C0480008C690100B2 +:106370002D2331811060000C3C0480008CAA0100A8 +:1063800011460004000020218CA6010024C5FF81D5 +:1063900030A400FF8E0B01000E000269AE0B00243A +:1063A0000A00034F3C0480008C8D01002DAC3300AB +:1063B00011800022000000003C0708008CE70098D4 +:1063C00024EE00013C010800AC2E00983C04800043 +:1063D0008C8201001440000300000000566000148D +:1063E0003C0440008C9F01008C9801000000982123 +:1063F00003F1C82400193940330F007F00EF7025E6 +:1064000001D26825AC8D08308C8C01008C85010090 +:10641000258B0100017130240006514030A3007F1C +:106420000143482501324025AC8808303C04400037 +:10643000AE0401380A00030E000000008C99010030 +:10644000240F0020AC99002092F80000330300FFD5 +:10645000106F000C241F0050547FFFDD3C048000AF +:106460008C8401000E00154E000000000A00034F4E +:106470003C04800000963824ACA7180C0A000327BF +:106480008F8F00108C8501000E0008F72404008017 +:106490000A00034F3C04800000A4102B24030001D9 +:1064A00010400009000030210005284000A4102BF6 +:1064B00004A00003000318405440FFFC00052840DE +:1064C0005060000A0004182B0085382B54E00004AB +:1064D0000003184200C33025008520230003184222 +:1064E0001460FFF9000528420004182B03E000089F +:1064F00000C310213084FFFF30C600FF3C0780003E +:106500008CE201B80440FFFE00064C000124302557 +:106510003C08200000C820253C031000ACE00180AE +:10652000ACE50184ACE4018803E00008ACE301B809 +:106530003C0660008CC5201C2402FFF03083020062 +:10654000308601001060000E00A2282434A500014E +:106550003087300010E0000530830C0034A50004C3 +:106560003C04600003E00008AC85201C1060FFFDC7 +:106570003C04600034A5000803E00008AC85201C42 +:1065800054C0FFF334A500020A0003B03087300086 +:1065900027BDFFE8AFB00010AFBF00143C0760009C +:1065A000240600021080001100A080218F83005873 +:1065B0000E0003A78C6400188F8200580000202171 +:1065C000240600018C45000C0E000398000000001A +:1065D0001600000224020003000010218FBF0014E7 +:1065E0008FB0001003E0000827BD00188CE8201CC5 +:1065F0002409FFF001092824ACE5201C8F870058EE +:106600000A0003CD8CE5000C3C02600E00804021A6 +:1066100034460100240900180000000000000000BA +:10662000000000003C0A00503C0380003547020097 +:10663000AC68003834640400AC65003CAC670030E2 +:106640008C6C0000318B00201160FFFD2407FFFFE0 +:106650002403007F8C8D00002463FFFF248400044A +:10666000ACCD00001467FFFB24C60004000000004E +:10667000000000000000000024A402000085282B78 +:106680003C0300203C0E80002529FFFF010540212E +:10669000ADC300301520FFE00080282103E0000892 +:1066A000000000008F82005827BDFFD8AFB3001C48 +:1066B000AFBF0020AFB20018AFB10014AFB00010F0 +:1066C00094460002008098218C5200182CC300814F +:1066D0008C4800048C4700088C51000C8C49001039 +:1066E000106000078C4A00142CC4000414800013AE +:1066F00030EB000730C5000310A0001000000000C0 +:106700002410008B02002021022028210E00039873 +:10671000240600031660000224020003000010217A +:106720008FBF00208FB3001C8FB200188FB10014F0 +:106730008FB0001003E0000827BD00281560FFF1AE +:106740002410008B3C0C80003C030020241F00011F +:10675000AD830030AF9F0044000000000000000047 +:10676000000000002419FFF024D8000F031978243A +:106770003C1000D0AD88003801F0702524CD000316 +:106780003C08600EAD87003C35850400AD8E0030BE +:10679000000D38823504003C3C0380008C6B000007 +:1067A000316200201040FFFD0000000010E00008F2 +:1067B00024E3FFFF2407FFFF8CA800002463FFFFF2 +:1067C00024A50004AC8800001467FFFB24840004A7 +:1067D0003C05600EACA60038000000000000000080 +:1067E000000000008F8600543C0400203C0780001D +:1067F000ACE4003054C000060120202102402021DA +:106800000E0003A7000080210A00041D02002021C1 +:106810000E0003DD01402821024020210E0003A7C5 +:10682000000080210A00041D0200202127BDFFE096 +:10683000AFB200183092FFFFAFB10014AFBF001C21 +:10684000AFB000101640000D000088210A0004932C +:106850000220102124050003508500278CE5000C40 +:106860000000000D262800013111FFFF24E2002066 +:106870000232802B12000019AF8200588F82004430 +:10688000144000168F8700583C0670003C0320001F +:106890008CE5000000A62024148300108F84006083 +:1068A000000544023C09800000A980241480FFE90F +:1068B000310600FF2CCA000B5140FFEB26280001D7 +:1068C000000668803C0E080025CE575801AE6021B6 +:1068D0008D8B0000016000080000000002201021E4 +:1068E0008FBF001C8FB200188FB100148FB0001042 +:1068F00003E0000827BD00200E0003982404008454 +:106900001600FFD88F8700580A000474AF8000601B +:10691000020028210E0003BF240400018F870058C5 +:106920000A000474AF820060020028210E0003BF39 +:10693000000020210A0004A38F8700580E000404E1 +:10694000020020218F8700580A000474AF82006083 +:1069500030AFFFFF000F19C03C0480008C9001B8DD +:106960000600FFFE3C1920043C181000AC83018097 +:10697000AC800184AC990188AC9801B80A00047518 +:106980002628000190E2000390E30002000020218D +:106990000002FE0000033A0000FF2825240600083C +:1069A0000E000398000000001600FFDC2402000324 +:1069B0008F870058000010210A000474AF82006025 +:1069C00090E8000200002021240600090A0004C308 +:1069D00000082E0090E4000C240900FF308500FF21 +:1069E00010A900150000302190F9000290F8000372 +:1069F000308F00FF94EB000400196E000018740043 +:106A0000000F62000186202501AE5025014B28258C +:106A10003084FF8B0A0004C32406000A90E30002BE +:106A200090FF0004000020210003360000DF28252D +:106A30000A0004C32406000B0A0004D52406008BB8 +:106A4000000449C23127003F000443423C02800059 +:106A500000082040240316802CE60020AC43002CC4 +:106A600024EAFFE02482000114C0000330A900FFE3 +:106A700000801021314700FF000260803C0D800043 +:106A8000240A0001018D20213C0B000E00EA28049D +:106A9000008B302111200005000538278CCE000026 +:106AA00001C5382503E00008ACC700008CD8000001 +:106AB0000307782403E00008ACCF000027BDFFE007 +:106AC000AFB10014AFB00010AFBF00183C076000BA +:106AD0008CE408083402F0003C1160003083F000C0 +:106AE000240501C03C04800E000030211062000625 +:106AF000241000018CEA08083149F0003928E00030 +:106B00000008382B000780403C0D0200AE2D081411 +:106B1000240C16803C0B80008E2744000E000F8B47 +:106B2000AD6C002C120000043C02169124050001FB +:106B3000120500103C023D2C345800E0AE384408E9 +:106B40003C1108008E31007C8FBF00183C066000AD +:106B500000118540360F16808FB100148FB00010E1 +:106B60003C0E020027BD0020ACCF442003E000080B +:106B7000ACCE08103C0218DA345800E0AE384408B5 +:106B80003C1108008E31007C8FBF00183C0660006D +:106B900000118540360F16808FB100148FB00010A1 +:106BA0003C0E020027BD0020ACCF442003E00008CB +:106BB000ACCE08100A0004EB240500010A0004EB27 +:106BC0000000282124020400A7820024A780001CC2 +:106BD000000020213C06080024C65A582405FFFF67 +:106BE00024890001000440803124FFFF01061821A0 +:106BF0002C87002014E0FFFAAC6500002404040098 +:106C0000A7840026A780001E000020213C06080063 +:106C100024C65AD82405FFFF248D0001000460809B +:106C200031A4FFFF018658212C8A00201540FFFA6D +:106C3000AD650000A7800028A7800020A780002263 +:106C4000000020213C06080024C65B582405FFFFF5 +:106C5000249900010004C0803324FFFF030678213B +:106C60002C8E000415C0FFFAADE500003C05600065 +:106C70008CA73D002403E08F00E31024344601403C +:106C800003E00008ACA63D002487007F000731C266 +:106C900024C5FFFF000518C2246400013082FFFFF5 +:106CA000000238C0A78400303C010800AC27003047 +:106CB000AF80002C0000282100002021000030219E +:106CC0002489000100A728213124FFFF2CA81701E7 +:106CD000110000032C8300801460FFF924C600011A +:106CE00000C02821AF86002C10C0001DA786002AF6 +:106CF00024CAFFFF000A11423C08080025085B581F +:106D00001040000A00002021004030212407FFFF2E +:106D1000248E00010004688031C4FFFF01A86021B7 +:106D20000086582B1560FFFAAD87000030A2001FC7 +:106D30005040000800043080240300010043C804D0 +:106D400000041080004878212738FFFF03E0000886 +:106D5000ADF8000000C820212405FFFFAC8500002D +:106D600003E000080000000030A5FFFF30C6FFFF71 +:106D700030A8001F0080602130E700FF0005294295 +:106D80000000502110C0001D24090001240B000147 +:106D900025180001010B2004330800FF0126782686 +:106DA000390E00202DED00012DC2000101A2182591 +:106DB0001060000D014450250005C880032C4021BF +:106DC0000100182110E0000F000A20278D040000A8 +:106DD000008A1825AD03000024AD00010000402109 +:106DE0000000502131A5FFFF252E000131C9FFFF12 +:106DF00000C9102B1040FFE72518000103E0000830 +:106E0000000000008D0A0000014440240A0005D162 +:106E1000AC68000027BDFFE830A5FFFF30C6FFFFCC +:106E2000AFB00010AFBF001430E7FFFF00005021EB +:106E30003410FFFF0000602124AF001F00C0482174 +:106E4000241800012419002005E0001601E010219B +:106E50000002F943019F682A0009702B01AE40240B +:106E600011000017000C18800064102110E00005CC +:106E70008C4B000000F840040008382301675824B8 +:106E800000003821154000410000402155600016E7 +:106E90003169FFFF258B0001316CFFFF05E1FFEC3D +:106EA00001E0102124A2003E0002F943019F682A5C +:106EB0000009702B01AE40241500FFEB000C188078 +:106EC000154600053402FFFF020028210E0005B51B +:106ED00000003821020010218FBF00148FB0001075 +:106EE00003E0000827BD00181520000301601821E9 +:106EF000000B1C0224080010306A00FF154000053A +:106F0000306E000F250D000800031A0231A800FFA3 +:106F1000306E000F15C00005307F000325100004FF +:106F200000031902320800FF307F000317E000055C +:106F3000386900012502000200031882304800FF72 +:106F4000386900013123000110600004310300FFA3 +:106F5000250A0001314800FF310300FF000C6940A1 +:106F600001A34021240A000110CAFFD53110FFFF00 +:106F7000246E000131C800FF1119FFC638C9000195 +:106F80002D1F002053E0001C258B0001240D000163 +:106F90000A000648240E002051460017258B0001E8 +:106FA00025090001312800FF2D0900205120001281 +:106FB000258B000125430001010D5004014B1024D5 +:106FC000250900011440FFF4306AFFFF3127FFFF5D +:106FD00010EE000C2582FFFF304CFFFF0000502117 +:106FE0003410FFFF312800FF2D0900205520FFF24B +:106FF00025430001258B0001014648260A000602B0 +:10700000316CFFFF00003821000050210A000654B7 +:107010003410FFFF27BDFFD8AFB0001030F0FFFFE6 +:10702000AFB10014001039423211FFE000071080A8 +:10703000AFB3001C00B1282330D3FFFFAFB200185C +:1070400030A5FFFF00809021026030210044202104 +:10705000AFBF00200E0005E03207001F022288218A +:107060003403FFFF0240202102002821026030216A +:1070700000003821104300093231FFFF02201021A7 +:107080008FBF00208FB3001C8FB200188FB1001487 +:107090008FB0001003E0000827BD00280E0005E0B7 +:1070A0000000000000408821022010218FBF002036 +:1070B0008FB3001C8FB200188FB100148FB0001076 +:1070C00003E0000827BD0028000424003C03600002 +:1070D000AC603D0810A00002348210063482101605 +:1070E00003E00008AC623D0427BDFFE0AFB0001034 +:1070F000309000FF2E020006AFBF001810400008BD +:10710000AFB10014001030803C03080024635784A2 +:1071100000C328218CA400000080000800000000AB +:10712000000020218FBF00188FB100148FB0001015 +:107130000080102103E0000827BD00209791002A5D +:1071400016200051000020213C020800904200332C +:107150000A0006BB00000000978D002615A0003134 +:10716000000020210A0006BB2402000897870024A3 +:1071700014E0001A00001821006020212402000100 +:107180001080FFE98FBF0018000429C2004530219C +:1071900000A6582B1160FFE43C0880003C0720004B +:1071A000000569C001A76025AD0C00203C038008E4 +:1071B0002402001F2442FFFFAC6000000441FFFDD9 +:1071C0002463000424A5000100A6702B15C0FFF560 +:1071D000000569C00A0006A58FBF00189787001C2C +:1071E0003C04080024845A58240504000E0006605C +:1071F00024060001978B002424440001308AFFFFFD +:107200002569FFFF2D48040000402821150000409B +:10721000A789002424AC3800000C19C00A0006B964 +:10722000A780001C9787001E3C04080024845AD8BD +:10723000240504000E00066024060001979900262C +:10724000244400013098FFFF272FFFFF2F0E04007A +:107250000040882115C0002CA78F0026A780001EA3 +:107260003A020003262401003084FFFF0E00068D41 +:107270002C4500010011F8C027F00100001021C0CA +:107280000A0006BB240200089785002E978700227B +:107290003C04080024845B580E00066024060001AC +:1072A0009787002A8F89002C2445000130A8FFFF12 +:1072B00024E3FFFF0109302B0040802114C0001897 +:1072C000A783002AA7800022978500300E000F7543 +:1072D00002002021244A05003144FFFF0E00068DE4 +:1072E000240500013C05080094A500320E000F752E +:1072F00002002021244521003C0208009042003376 +:107300000A0006BB000521C00A0006F3A784001E80 +:1073100024AC3800000C19C00A0006B9A784001C70 +:107320000A00070DA7850022308400FF27BDFFE873 +:107330002C820006AFBF0014AFB000101040001543 +:1073400000A03821000440803C0308002463579CBF +:10735000010328218CA40000008000080000000028 +:1073600024CC007F000751C2000C59C23170FFFFCE +:107370002547C40030E5FFFF2784001C02003021B0 +:107380000E0005B52407000197860028020620217B +:10739000A78400288FBF00148FB0001003E00008FE +:1073A00027BD00183C0508008CA50030000779C2F5 +:1073B0000E00038125E4DF003045FFFF3C04080098 +:1073C00024845B58240600010E0005B52407000143 +:1073D000978E002A8FBF00148FB0001025CD0001BA +:1073E00027BD001803E00008A78D002A0007C9C2C6 +:1073F0002738FF00001878C231F0FFFF3C04080076 +:1074000024845AD802002821240600010E0005B564 +:1074100024070001978D0026260E0100000E84002F +:1074200025AC00013C0B6000A78C0026AD603D0838 +:1074300036040006000030213C0760008CE23D0469 +:10744000305F000617E0FFFD24C9000100061B00A5 +:10745000312600FF006440252CC50004ACE83D0443 +:1074600014A0FFF68FBF00148FB0001003E00008D7 +:1074700027BD0018000751C22549C8002406000195 +:10748000240700013C04080024845A580E0005B566 +:107490003125FFFF978700248FBF00148FB00010A5 +:1074A00024E6000127BD001803E00008A786002499 +:1074B0003C0660183C090800252900FCACC9502C8A +:1074C0008CC850003C0580003C020002350700805B +:1074D000ACC750003C04080024841FE03C030800B3 +:1074E00024631F98ACA50008ACA2000C3C01080066 +:1074F000AC2459A43C010800AC2359A803E00008BF +:107500002402000100A030213C1C0800279C59AC3B +:107510003C0C04003C0B0002008B3826008C4026FB +:107520002CE200010007502B2D050001000A4880C5 +:107530003C030800246359A4004520250123182199 +:107540001080000300001021AC660000240200013E +:1075500003E00008000000003C1C0800279C59AC18 +:107560003C0B04003C0A0002008A3026008B3826BF +:107570002CC200010006482B2CE5000100094080C8 +:107580003C030800246359A4004520250103182169 +:1075900010800005000010213C0C0800258C1F986D +:1075A000AC6C00002402000103E0000800000000B1 +:1075B0003C0900023C080400008830260089382677 +:1075C0002CC30001008028212CE400010083102539 +:1075D0001040000B000030213C1C0800279C59ACD7 +:1075E0003C0A80008D4E00082406000101CA68256F +:1075F000AD4D00088D4C000C01855825AD4B000C9D +:1076000003E0000800C010213C1C0800279C59AC76 +:107610003C0580008CA6000C0004202724020001F9 +:1076200000C4182403E00008ACA3000C3C020002D4 +:107630001082000B3C0560003C070400108700032B +:107640000000000003E00008000000008CA908D042 +:10765000240AFFFD012A402403E00008ACA808D05A +:107660008CA408D02406FFFE0086182403E000083E +:10767000ACA308D03C05601A34A600108CC300806F +:1076800027BDFFF88CC50084AFA3000093A40000C1 +:107690002402001010820003AFA5000403E00008DC +:1076A00027BD000893A7000114E0001497AC000266 +:1076B00097B800023C0F8000330EFFFC01CF682119 +:1076C000ADA50000A3A000003C0660008CC708D058 +:1076D0002408FFFE3C04601A00E82824ACC508D04A +:1076E0008FA300048FA200003499001027BD00086A +:1076F000AF22008003E00008AF2300843C0B800031 +:10770000318AFFFC014B48218D2800000A00080C3B +:10771000AFA8000427BDFFE8AFBF00103C1C080065 +:10772000279C59AC3C0580008CA4000C8CA2000462 +:107730003C0300020044282410A0000A00A31824DF +:107740003C0604003C0400021460000900A610245A +:107750001440000F3C0404000000000D3C1C080015 +:10776000279C59AC8FBF001003E0000827BD00180C +:107770003C0208008C4259A40040F80900000000B7 +:107780003C1C0800279C59AC0A0008358FBF00102C +:107790003C0208008C4259A80040F8090000000093 +:1077A0000A00083B000000003C0880008D0201B880 +:1077B0000440FFFE35090180AD2400003C031000A9 +:1077C00024040040AD250004A1240008A1260009DE +:1077D000A527000A03E00008AD0301B83084FFFFCD +:1077E0000080382130A5FFFF000020210A00084555 +:1077F000240600803087FFFF8CA400002406003898 +:107800000A000845000028218F8300788F860070C9 +:107810001066000B008040213C07080024E75B68ED +:10782000000328C000A710218C440000246300013D +:10783000108800053063000F5466FFFA000328C06B +:1078400003E00008000010213C07080024E75B6CFF +:1078500000A7302103E000088CC200003C03900028 +:1078600034620001008220253C038000AC640020CB +:107870008C65002004A0FFFE0000000003E000086B +:10788000000000003C0280003443000100832025FA +:1078900003E00008AC44002027BDFFE0AFB10014B6 +:1078A0003091FFFFAFB00010AFBF001812200013DF +:1078B00000A080218CA20000240400022406020003 +:1078C0001040000F004028210E0007250000000096 +:1078D00000001021AE000000022038218FBF0018E8 +:1078E0008FB100148FB0001000402021000028212B +:1078F000000030210A00084527BD00208CA20000AE +:10790000022038218FBF00188FB100148FB00010F3 +:107910000040202100002821000030210A000845F5 +:1079200027BD002000A010213087FFFF8CA5000498 +:107930008C4400000A000845240600068F83FD9C45 +:1079400027BDFFE8AFBF0014AFB00010906700087C +:10795000008010210080282130E600400000202116 +:1079600010C000088C5000000E0000BD0200202155 +:10797000020020218FBF00148FB000100A000548BC +:1079800027BD00180E0008A4000000000E0000BD76 +:1079900002002021020020218FBF00148FB00010B0 +:1079A0000A00054827BD001827BDFFE0AFB0001052 +:1079B0008F90FD9CAFBF001CAFB20018AFB1001498 +:1079C00092060001008088210E00087230D2000467 +:1079D00092040005001129C2A6050000348300406E +:1079E000A20300050E00087C022020210E00054A9B +:1079F0000220202124020001AE02000C02202821D6 +:107A0000A602001024040002A602001224060200AE +:107A1000A60200140E000725A60200161640000F4D +:107A20008FBF001C978C00743C0B08008D6B007896 +:107A30002588FFFF3109FFFF256A0001012A382B45 +:107A400010E00006A78800743C0F6006240E0016A4 +:107A500035ED0010ADAE00508FBF001C8FB2001886 +:107A60008FB100148FB0001003E0000827BD002084 +:107A700027BDFFE0AFB10014AFBF0018AFB00010DA +:107A80001080000400A088212402008010820007DA +:107A9000000000000000000D8FBF00188FB100141F +:107AA0008FB0001003E0000827BD00200E00087210 +:107AB00000A020218F86FD9C0220202190C500057A +:107AC0000E00087C30B000FF2403003E1603FFF1D7 +:107AD0003C0680008CC401780480FFFE34C801405D +:107AE000240900073C071000AD11000002202021EE +:107AF000A10900048FBF00188FB100148FB00010CF +:107B0000ACC701780A0008C527BD002027BDFFE0EB +:107B1000AFB00010AFBF0018AFB100143C10800030 +:107B20008E110020000000000E00054AAE04002067 +:107B3000AE1100208FBF00188FB100148FB000105D +:107B400003E0000827BD00203084FFFF00803821BB +:107B50002406003500A020210A0008450000282145 +:107B60003084FFFF008038212406003600A0202149 +:107B70000A0008450000282127BDFFD0AFB500242A +:107B80003095FFFFAFB60028AFB40020AFBF002C88 +:107B9000AFB3001CAFB20018AFB10014AFB000100B +:107BA00030B6FFFF12A000270000A0218F920058DE +:107BB0008E4300003C0680002402004000033E0289 +:107BC00000032C0230E4007F006698241482001D1C +:107BD00030A500FF8F8300682C68000A1100001098 +:107BE0008F8D0044000358803C0C0800258C57B84A +:107BF000016C50218D4900000120000800000000A8 +:107C000002D4302130C5FFFF0E0008522404008446 +:107C1000166000028F920058AF8000688F8D00447C +:107C20002659002026980001032090213314FFFFDD +:107C300015A00004AF9900580295202B1480FFDC9A +:107C400000000000028010218FBF002C8FB600289A +:107C50008FB500248FB400208FB3001C8FB20018A2 +:107C60008FB100148FB0001003E0000827BD003072 +:107C70002407003414A70149000000009247000EB9 +:107C80008F9FFDA08F90FD9C24181600A3E700197C +:107C90009242000D3C0880003C07800CA3E20018D3 +:107CA000964A00123C0D60003C117FFFA60A005C62 +:107CB000964400103623FFFF240200053099FFFF91 +:107CC000AE1900548E46001CAD1800288CEF000041 +:107CD0008DAE444801E6482601C93021AE06003881 +:107CE0008E05003824CB00013C0E7F00AE05003C21 +:107CF0008E0C003CAFEC0004AE0B00208E13002075 +:107D0000AE13001CA3E0001BAE03002CA3E2001284 +:107D10008E4A001424130050AE0A00348E0400343E +:107D2000AFE400148E590018AE1900489258000CA8 +:107D3000A218004E920D000835AF0020A20F0008D7 +:107D40008E090018012E282434AC4000AE0C001817 +:107D5000920B0000317200FF1253027F2403FF8058 +:107D60003C04080024845BE80E0008AA0000000020 +:107D70003C1108008E315BE80E00087202202021C1 +:107D80002405000424080001A2050025022020216A +:107D90000E00087CA20800053C0580008CB001782C +:107DA0000600FFFE8F92005834AE0140240F0002FF +:107DB0003C091000ADD10000A1CF0004ACA90178AE +:107DC0000A000962AF8000682CAD003751A0FF9413 +:107DD0008F8D0044000580803C110800263157E05B +:107DE000021178218DEE000001C0000800000000A3 +:107DF0002411000414B1008C3C0780003C080800EA +:107E00008D085BE88F86FD9CACE800208E4500085D +:107E10008F99FDA0240D0050ACC500308E4C000899 +:107E2000ACCC00508E4B000CACCB00348E43001019 +:107E3000ACC300388E4A0010ACCA00548E42001405 +:107E4000ACC2003C8E5F0018AF3F00048E50001C97 +:107E5000ACD0002090C40000309800FF130D024AFF +:107E6000000000008CC400348CD00030009030231F +:107E700004C000F12404008C126000EE2402000310 +:107E80000A000962AF8200682419000514B900666F +:107E90003C0580003C0808008D085BE88F86FD9C4F +:107EA000ACA800208E4C00048F8AFDA0240720007F +:107EB000ACCC001C924B000824120008A14B001906 +:107EC0008F82005890430009A14300188F85005805 +:107ED00090BF000A33E400FF1092001028890009C7 +:107EE000152000BA240E0002240D0020108D000B76 +:107EF000340780002898002117000008240740005C +:107F000024100040109000053C0700012419008057 +:107F1000109900023C070002240740008CC20018A0 +:107F20003C03FF00004350240147F825ACDF001854 +:107F300090B2000BA0D200278F8300589464000CED +:107F4000108001FE000000009467000C3C1F8000C0 +:107F50002405FFBFA4C7005C9063000E2407000443 +:107F6000A0C300088F820058904A000FA0CA0009E1 +:107F70008F8900588D3200108FE400740244C823AA +:107F8000ACD900588D300014ACD0002C95380018B6 +:107F9000330DFFFFACCD00409531001A322FFFFFAB +:107FA000ACCF00448D2E001CACCE00489128000EB2 +:107FB000A0C8000890CC000801855824126001B6C2 +:107FC000A0CB00088F9200580A000962AF870068B2 +:107FD0002406000614A600143C0E80003C0F080086 +:107FE0008DEF5BE88F85FD98ADCF00208E4900189E +:107FF0008F86FD9C8F8BFDA0ACA900008CC800383B +:1080000024040005ACA800048CCC003C1260008164 +:10801000AD6C00000A000962AF84006824110007FB +:1080200010B1004B240400063C05080024A55BE8C1 +:108030000E000881240400818F9200580013102B39 +:108040000A000962AF820068241F002314BFFFF6F4 +:108050003C0C80003C0508008CA55BE88F8BFDA0E4 +:10806000AD8500208F91FD9C8E4600042564002084 +:1080700026450014AE260028240600030E000F81BA +:10808000257000308F87005802002021240600034D +:108090000E000F8124E500083C04080024845BE8FE +:1080A0000E0008AA0000000092230000240A0050DD +:1080B000306200FF544AFFE18F9200580E000F6CAF +:1080C000000000000A000A6A8F920058240800335A +:1080D00014A800323C0380003C1108008E315BE89C +:1080E0008F8FFDA0AC7100208E420008240D002867 +:1080F0008F89FD9CADE200308E4A000C24060009F9 +:10810000ADEA00348E5F0010ADFF00388E440014DD +:10811000ADE400208E590018ADF900248E58001CE3 +:10812000ADF80028A1ED00118E4E00041260003160 +:10813000AD2E00288F9200580A000962AF860068B1 +:10814000240D002214ADFFB8000000002404000735 +:108150003C1008008E105BE83C188000AF10002037 +:108160005660FEAEAF8400683C04080024845BE8DF +:108170000E0008AA241300508F84FD9C90920000EA +:10818000325900FF1333014B000000008F9200585A +:10819000000020210A000962AF8400683C05080045 +:1081A00024A55BE80E000858240400810A000A6A2E +:1081B0008F92005802D498213265FFFF0E000852BA +:1081C000240400840A0009628F920058108EFF5325 +:1081D000240704002887000310E00179241100041B +:1081E000240F0001548FFF4D240740000A000A228B +:1081F000240701003C05080024A55BE80E0008A444 +:10820000240400828F920058000030210A00096285 +:10821000AF8600683C04080024845BE88CC2003808 +:108220000E0008AA8CC3003C8F9200580A000AC0B6 +:1082300000002021240400823C05080024A55BE8FE +:108240000E0008A4000000008F92005800001021CA +:108250000A000962AF8200688E5000048F91FD9C75 +:108260003C078000ACF00020922C00050200282181 +:10827000318B0002156001562404008A8F92FDA004 +:108280002404008D9245001B30A6002014C001502C +:1082900002002821922E00092408001231C900FF93 +:1082A0001128014B240400810E00087202002021D5 +:1082B0009258001B240F000402002021370D0042B9 +:1082C000A24D001B0E00087CA22F00253C0580005B +:1082D0008CA401780480FFFE34B90140241F000201 +:1082E000AF300000A33F00048F9200583C101000F4 +:1082F000ACB001780A000A6B0013102B8E500004FA +:108300008F91FD9C3C038000AC700020922A0005F8 +:108310000200282131420002144000172404008A80 +:10832000922C00092412000402002821318B00FF46 +:1083300011720011240400810E0008720200202135 +:108340008F89FDA0240800122405FFFE912F001B39 +:108350000200202135EE0020A12E001BA2280009DA +:108360009226000500C538240E00087CA2270005CF +:1083700002002821000020210E0009330000000027 +:108380000A000A6A8F9200588E4C00043C07800055 +:108390003C10080026105BE8ACEC00203C01080013 +:1083A000AC2C5BE8924B0003317100041220013BBE +:1083B0008F84FD9C24020006A0820009924F001BBE +:1083C000240EFFC031E9003F012E4025A08800089F +:1083D0009245000330A6000114C0013200000000E5 +:1083E0008E420008AE0200083C0208008C425BF09E +:1083F000104001318F90FDA0000219C28F8DFD9CAD +:10840000A603000C8E4A000C24180001240400145A +:10841000AE0A002C8E420010AE02001C965F0016C1 +:10842000A61F003C96590014A619003EADB8000CDA +:10843000A5B80010A5B80012A5B80014A5B800167C +:1084400012600144A2040011925100033232000272 +:108450002E5300018F920058266200080A0009621C +:10846000AF8200688E4400043C1980003C068008FE +:10847000AF2400208E45000890D80000240D005045 +:10848000331100FF122D009C2407008824060009E8 +:108490000E000845000000000A000A6A8F9200588A +:1084A0008E5000043C0980003C118008AD30002053 +:1084B0009228000024050050310400FF10850110AF +:1084C0002407008802002021000028210E00084512 +:1084D0002406000E922D00002418FF80020028219F +:1084E00001B8802524040004240600300E0007256E +:1084F000A23000000A000A6A8F9200588E500004D1 +:108500008F91FDA03C028000AC500020923F001BE8 +:1085100033F900101320006C240700810200202191 +:10852000000028212406001F0E000845000000005E +:108530000A000A6A8F9200588E44001C0E00085DE3 +:1085400000000000104000E3004048218F880058E0 +:1085500024070089012020218D05001C240600012C +:108560000E000845000000000A000A6A8F920058B9 +:10857000964900023C10080026105BE831280004F0 +:10858000110000973C0460008E4E001C3C0F8000E0 +:10859000ADEE00203C010800AC2E5BE896470002DF +:1085A00030E40001148000E6000000008E42000468 +:1085B000AE0200083C1008008E105BF0120000ECC8 +:1085C0003C0F80008F92FD9C241000018E4E0018FD +:1085D0008F8DFDA08F9FFD9801CF4825AE490018D3 +:1085E000A2400005AE50000C3C0808008D085BF06E +:1085F0008F840058A6500010000839C2A6500012FF +:10860000A6500014A6500016A5A7000C8C8C0008DC +:108610008F8B00588F8A0058ADAC002C8D63000CF6 +:1086200024070002ADA3001C91460010A1A6001172 +:108630008F82005890450011A3E500088F990058DB +:1086400093380012A258004E8F910058922F0013B9 +:10865000A1AF00128F920058964E0014A5AE003CB8 +:1086600096490016A5A9003E8E480018ADA8001432 +:108670005660FD6AAF8700683C05080024A55BE8EA +:108680000E000881000020218F9200580000382140 +:108690000A000962AF8700683C05080024A55BE872 +:1086A0000E0008A4240400828F9200580A000A4D8C +:1086B000000038210E000F6C000000008F9200585F +:1086C0000A000AC0000020210E00087202002021CA +:1086D0009223001B02002021346A00100E00087C47 +:1086E000A22A001B000038210200202100002821BE +:1086F0000A000BA52406001F9242000C305F000107 +:1087000013E0000300000000964A000EA4CA002CEB +:10871000924B000C316300025060000600003821CB +:108720008E470014964C0012ACC7001CA4CC001A53 +:10873000000038210A000B7F240600093C050800D0 +:1087400024A55BE80E0008A42404008B8F92005837 +:108750000A000A4D0013382B3C0C08008D8C5BE896 +:1087600024DFFFFE25930100326B007F016790211B +:1087700002638824AD110028AE4600E0AE4000E45C +:108780000A0009B3AE5F001CACC000543C0D0800E9 +:108790008DAD5BE83C18800C37090100ACED00287A +:1087A0008E510014AD3100E08E4F0014AD2F00E467 +:1087B0008E4E001025C7FFFE0A0009F4AD27001CED +:1087C0005491FDD6240740000A000A222407100015 +:1087D0000E00092D000000000A000A6A8F9200585E +:1087E0008C83442C3C12DEAD3651BEEF3C010800B8 +:1087F000AC205BE810710062000000003C196C6264 +:1088000037387970147800082404000297850074C2 +:108810009782006C2404009200A2F82B13E0001948 +:1088200002002821240400020E00069524050200FF +:108830003C068000ACC200203C010800AC225BE892 +:108840001040000D8F8C0058240A002824040003D7 +:10885000918B0010316300FF546A00012404000171 +:108860000E0000810000000010400004240400837A +:108870000A000BC28F920058240400833C050800B4 +:1088800024A55BE80E000881000000008F920058CC +:108890000013382B0A000962AF8700680A000B49F1 +:1088A000240200128E4400080E00085D0000000043 +:1088B0000A000B55AE0200083C05080024A55BE841 +:1088C0000E000858240400878F9200580A000B728B +:1088D0000013102B240400040E000695240500301C +:1088E0001440002A004048218F8800582407008344 +:1088F000012020218D05001C0A000BB32406000175 +:108900008F8300788F8600701066FEEE000038219D +:108910003C07080024E75B6C000320C00087282187 +:108920008CAE000011D0005D246F000131E3000F18 +:108930005466FFFA000320C00A000B8C00003821A7 +:108940008E4400040E00085D000000000A000BC801 +:10895000AE0200083C05080024A55BE80E0008A450 +:10896000240400828F9200580A000B72000010212C +:108970003C05080024A55BE80A000C7C2404008761 +:108980008C83442C0A000C5B3C196C628F88005865 +:108990003C0780083C0C8000240B0050240A000196 +:1089A000AD820020A0EB0000A0EA000191030004CA +:1089B000A0E3001891040005A0E400199106000648 +:1089C0003C04080024845B6CA0E6001A91020007B6 +:1089D0003C06080024C65B68A0E2001B9105000865 +:1089E000A0E5001C911F0009A0FF001D9119000ABD +:1089F000A0F9001E9118000BA0F8001F9112000CA6 +:108A0000A0F200209111000DA0F100219110000EA4 +:108A1000A0F00022910F000FA0EF0023910E001094 +:108A2000A0EE0024910D0011A0ED0025950C00147E +:108A3000A4EC0028950B00168F8A00708F920078A6 +:108A4000A4EB002A95030018000A10C02545000178 +:108A5000A4E3002C8D1F001C0044C0210046C82147 +:108A600030A5000FAF3F0000AF09000010B20006B4 +:108A7000AF850070000038218D05001C01202021E9 +:108A80000A000BB32406000124AD000131A7000F3A +:108A9000AF8700780A000CF9000038213C06080076 +:108AA00024C65B680086902100003821ACA000003D +:108AB0000A000B8CAE4000003C0482013C036000C5 +:108AC00034820E02AC603D68AF80009803E000087D +:108AD000AC623D6C27BDFFE8AFB000103090FFFFE7 +:108AE000001018422C620041AFBF00141440000275 +:108AF00024040080240300403C010800AC300060E6 +:108B00003C010800AC2300640E000F7500602821B2 +:108B1000244802BF2409FF8001092824001039805D +:108B2000001030408FBF00148FB0001000A720212C +:108B300000861821AF8300803C010800AC25005856 +:108B40003C010800AC24005C03E0000827BD0018CD +:108B5000308300FF30C6FFFF30E400FF3C08800098 +:108B60008D0201B80440FFFE000354000144382583 +:108B70003C09600000E920253C031000AD050180A0 +:108B8000AD060184AD04018803E00008AD0301B81F +:108B90008F8500583C0A6012354800108CAC0004E8 +:108BA0003C0D600E35A60010318B00062D690001CA +:108BB000AD0900C48CA70004ACC731808CA20008AA +:108BC00094A40002ACC231848CA3001C0460000396 +:108BD000A784009003E00008000000008CAF00189C +:108BE000ACCF31D08CAE001C03E00008ACCE31D449 +:108BF0008F8500588F87FF288F86FF308CAE00044A +:108C00003C0F601235E80010ACEE00788CAD000827 +:108C1000ACED007C8CAC0010ACCC004C8CAB000CF0 +:108C2000ACCB004894CA00543C0208008C4200447B +:108C300025490001A4C9005494C400543083FFFFA7 +:108C400010620017000000003C0208008C42004047 +:108C5000A4C200528CA30018ACE300308CA2001414 +:108C6000ACE2002C8CB90018ACF900388CB80014B8 +:108C700024050001ACF800348D0600BC50C5001975 +:108C80008D0200B48D0200B8A4E2004894E40048CC +:108C9000A4E4004A94E800EA03E000083102FFFF80 +:108CA0003C0208008C420024A4C00054A4C200521C +:108CB0008CA30018ACE300308CA20014ACE2002CB2 +:108CC0008CB90018ACF900388CB8001424050001E8 +:108CD000ACF800348D0600BC54C5FFEB8D0200B823 +:108CE0008D0200B4A4E2004894E40048A4E4004AE1 +:108CF00094E800EA03E000083102FFFF8F86005885 +:108D00003C0480008CC900088CC80008000929C0F8 +:108D1000000839C0AC87002090C30007306200040F +:108D20001040003EAF85009490CB0007316A0008E8 +:108D30001140003D8F87FF2C8CCD000C8CCE001491 +:108D400001AE602B11800036000000008CC2000CC8 +:108D5000ACE200708CCB00188F85FF288F88FF3025 +:108D6000ACEB00748CCA00102402FFF8ACAA00D847 +:108D70008CC9000CAD0900608CC4001CACA400D0F0 +:108D800090E3007C0062C824A0F9007C90D8000722 +:108D9000330F000811E000040000000090ED007C9B +:108DA00035AC0001A0EC007C90CF000731EE000153 +:108DB00011C000060000000090E3007C241800347D +:108DC00034790002A0F9007CACB800DC90C2000746 +:108DD0003046000210C000040000000090E8007C53 +:108DE00035040004A0E4007C90ED007D3C0B600E97 +:108DF000356A001031AC003FA0EC007D8D4931D4C4 +:108E00003127000110E00002240E0001A0AE00098D +:108E100094AF00EA03E0000831E2FFFF8F87FF2CE8 +:108E20000A000DAF8CC200140A000DB0ACE0007057 +:108E30008F8C005827BDFFD8AFB3001CAFB200180D +:108E4000AFB00010AFBF0020AFB10014918F00157C +:108E50003C13600E3673001031EB000FA38B009CA7 +:108E60008D8F00048D8B0008959F0012959900103E +:108E70009584001A9598001E958E001C33EDFFFF17 +:108E8000332AFFFF3089FFFF3308FFFF31C7FFFFA1 +:108E90003C010800AC2D00243C010800AC29004432 +:108EA0003C010800AC2A0040AE683178AE67317CE6 +:108EB00091850015959100163C12601236520010F3 +:108EC00030A200FF3230FFFFAE623188AE5000B4F6 +:108ED00091830014959F0018240600010066C804C1 +:108EE00033F8FFFFAE5900B8AE5800BC918E0014A5 +:108EF000AF8F00843C08600631CD00FFAE4D00C04E +:108F0000918A00159584000E3C07600A314900FFE4 +:108F1000AF8B00883084FFFFAE4900C835110010C8 +:108F20000E000D1034F004103C0208008C4200606A +:108F30003C0308008C6300643C0608008CC60058A3 +:108F40003C0508008CA5005C8F8400808FBF00204A +:108F5000AE23004CAE65319CAE030054AE4500DC40 +:108F6000AE6231A0AE6331A4AE663198AE22004845 +:108F70008FB3001CAE0200508FB10014AE4200E06F +:108F8000AE4300E4AE4600D88FB000108FB2001898 +:108F90000A00057D27BD0028978500929783007CF5 +:108FA00027BDFFE8AFB0001000A3102BAFBF001427 +:108FB000240400058F900058104000552409000239 +:108FC0000E0006958F850080AF8200942404000374 +:108FD0001040004F240900023C0680000E00008172 +:108FE000ACC2002024070001240820001040004DDE +:108FF00024040005978E00928F8AFF2C24090050CC +:1090000025C50001A7850092A14900003C0D08007C +:109010008DAD0064240380008F84FF28000D66005E +:10902000AD4C0018A5400006954B000A8F85FF3017 +:109030002402FF8001633024A546000A915F000AE4 +:109040000000482103E2C825A159000AA0A0000899 +:10905000A140004CA08000D5961800029783009094 +:109060003C020004A49800EA960F00022418FFBFF7 +:1090700025EE2401A48E00BE8E0D0004ACAD00448C +:109080008E0C0008ACAC0040A4A00050A4A000547A +:109090008E0B000C240C0030AC8B00288E060010C8 +:1090A000AC860024A480003EA487004EA487005014 +:1090B000A483003CAD420074AC8800D8ACA800602A +:1090C000A08700FC909F00D433F9007FA09900D4C2 +:1090D000909000D402187824A08F00D4914E007C88 +:1090E00035CD0001A14D007C938B009CAD480070F4 +:1090F000AC8C00DCA08B00D68F8800888F87008422 +:10910000AC8800C4AC8700C8A5400078A540007AB0 +:109110008FBF00148FB000100120102103E0000861 +:1091200027BD00188F8500940E0007258F860080CC +:109130000A000E9F2409000227BDFFE0AFB0001017 +:109140008F900058AFB10014AFBF00188E09000413 +:109150000E00054A000921C08E0800048F84FF28F4 +:109160008F82FF30000839C03C068000ACC7002069 +:10917000948500EA904300131460001C30B1FFFF97 +:109180008F8CFF2C918B0008316A00401540000B3A +:10919000000000008E0D0004022030218FBF001857 +:1091A0008FB100148FB00010240400220000382179 +:1091B000000D29C00A000D2F27BD00200E000098C9 +:1091C000000000008E0D0004022030218FBF001827 +:1091D0008FB100148FB00010240400220000382149 +:1091E000000D29C00A000D2F27BD00200E000090A1 +:1091F000000000008E0D0004022030218FBF0018F7 +:109200008FB100148FB00010240400220000382118 +:10921000000D29C00A000D2F27BD002027BDFFE04B +:10922000AFB200183092FFFFAFB00010AFBF001C0C +:10923000AFB100141240001E000080218F8600583C +:109240008CC500002403000600053F02000514023F +:1092500030E4000714830016304500FF2CA80006F8 +:1092600011000040000558803C0C0800258C58BCBB +:10927000016C50218D490000012000080000000011 +:109280008F8E0098240D000111CD005024020002A1 +:10929000AF820098260900013130FFFF24C800206A +:1092A0000212202B010030211480FFE5AF88005806 +:1092B000020010218FBF001C8FB200188FB1001464 +:1092C0008FB0001003E0000827BD00209387007EC8 +:1092D00054E00034000030210E000DE700000000D3 +:1092E0008F8600580A000EFF240200018F87009825 +:1092F0002405000210E50031240400130000282199 +:1093000000003021240700010E000D2F0000000096 +:109310000A000F008F8600588F83009824020002F5 +:109320001462FFF6240400120E000D9A00000000E3 +:109330008F85009400403021240400120E000D2F70 +:10934000000038210A000F008F8600588F83009894 +:109350002411000310710029241F0002107FFFCE8A +:1093600026090001240400100000282100003021FB +:109370000A000F1D240700018F91009824060002A7 +:109380001626FFF9240400100E000E410000000014 +:10939000144000238F9800588F8600580A000EFF53 +:1093A00024020003240400140E000D2F00002821C5 +:1093B0008F8600580A000EFF240200020E000EA93C +:1093C000000000000A000F008F8600580E000D3FBD +:1093D00000000000241900022404001400002821C9 +:1093E0000000302100003821AF9900980E000D2FA9 +:1093F000000000000A000F008F8600580E000D5775 +:10940000000000008F8500942419000200403021E4 +:1094100024040010000038210A000F56AF9900986C +:109420000040382124040010970F0002000028217A +:109430000E000D2F31E6FFFF8F8600580A000F0047 +:10944000AF9100988F84FF2C3C077FFF34E6FFFF2D +:109450008C8500182402000100A61824AC83001893 +:1094600003E00008A08200053084FFFF30A5FFFF65 +:109470001080000700001821308200011040000217 +:1094800000042042006518211480FFFB00052840DD +:1094900003E000080060102110C000070000000079 +:1094A0008CA2000024C6FFFF24A50004AC820000AB +:1094B00014C0FFFB2484000403E000080000000047 +:1094C00010A0000824A3FFFFAC86000000000000ED +:1094D000000000002402FFFF2463FFFF1462FFFA74 +:1094E0002484000403E0000800000000000411C010 +:1094F00003E000082442024027BDFFE8AFB000109F +:1095000000808021AFBF00140E000F9600A0202124 +:1095100000504821240AFF808FBF00148FB0001034 +:10952000012A30243127007F3C08800A3C042100B6 +:1095300000E8102100C428253C03800027BD001846 +:10954000AC650024AF820038AC400000AC6500245C +:1095500003E00008AC4000403C0D08008DAD005811 +:1095600000056180240AFF8001A45821016C482174 +:10957000012A30243127007F3C08800C3C04210064 +:1095800000E8102100C428253C038000AC650028B9 +:10959000AF82003403E00008AC40002430A5FFFF98 +:1095A0003C0680008CC201B80440FFFE3C086015F8 +:1095B00000A838253C031000ACC40180ACC0018475 +:1095C000ACC7018803E00008ACC301B83C0D08003B +:1095D0008DAD005800056180240AFF8001A4582148 +:1095E000016C4021010A4824000931403107007F05 +:1095F00000C728253C04200000A418253C02800058 +:10960000AC43083003E00008AF80003427BDFFE81A +:10961000AFB0001000808021AFBF00140E000F9685 +:1096200000A0202100504821240BFF80012B502452 +:10963000000A39403128007F3C0620008FBF00140B +:109640008FB0001000E8282534C2000100A21825C0 +:109650003C04800027BD0018AC83083003E00008FC +:10966000AF8000383C0580088CA700603C0680086D +:109670000087102B144000112C8340008CA8006040 +:109680002D0340001060000F240340008CC90060CF +:109690000089282B14A00002008018218CC30060D0 +:1096A00000035A42000B30803C0A0800254A59202A +:1096B00000CA202103E000088C8200001460FFF340 +:1096C0002403400000035A42000B30803C0A08008B +:1096D000254A592000CA202103E000088C8200009E +:1096E0003C05800890A60008938400AB24C20001CA +:1096F000304200FF3043007F1064000C0002382726 +:10970000A0A200083C0480008C85017804A0FFFE24 +:109710008F8A00A0240900023C081000AC8A014096 +:10972000A089014403E00008AC8801780A00101BFE +:1097300030E2008027BDFFD8AFB200188F9200A49E +:10974000AFBF0020AFB3001CAFB00010AFB100142A +:109750008F9300348E5900283C1000803C0EFFEFA0 +:10976000AE7900008E580024A260000A35CDFFFFBC +:10977000AE7800049251002C3C0BFF9F356AFFFF2E +:10978000A271000C8E6F000C3C080040A271000B0F +:1097900001F06025018D4824012A382400E8302595 +:1097A000AE66000C8E450004AE6000183C0400FF5D +:1097B000AE6500148E43002C3482FFFFA6600008C3 +:1097C0000062F824AE7F00108E5900088F9000A030 +:1097D000964E0012AE7900208E51000C31D83FFF1A +:1097E00000187980AE7100248E4D001401F06021C4 +:1097F00031CB0001AE6D00288E4A0018000C41C22A +:10980000000B4B80AE6A002C8E46001C01093821EB +:10981000A667001CAE660030964500028E4400200C +:10982000A665001EAE64003492430033306200042B +:1098300054400006924700003C0280083443010077 +:109840008C7F00D0AE7F0030924700008F860038BA +:10985000A0C700309245003330A4000250800007BA +:10986000925100018F880038240BFF80910A00304C +:10987000014B4825A1090030925100018F9000381A +:10988000240CFFBF2404FFDFA21100318F8D0038AC +:109890003C1880083711008091AF003C31EE007F0A +:1098A000A1AE003C8F890038912B003C016C502404 +:1098B000A12A003C8F9F00388E68001493E6003C7C +:1098C0002D0700010007114000C4282400A218251C +:1098D000A3E3003C8F87003896590012A4F90032A8 +:1098E0008E450004922E007C30B0000300107823D7 +:1098F00031ED000300AD102131CC000215800002D3 +:1099000024460034244600303C0280083443008062 +:10991000907F007C00BFC824333800041700000289 +:1099200024C2000400C010218F98003824190002BE +:10993000ACE20034A3190000924F003F8F8E003834 +:109940003C0C8008358B0080A1CF00018F9100383E +:10995000924D003F8E440004A62D0002956A005CE3 +:109960000E000FF43150FFFF00024B800209382532 +:109970003C08420000E82825AE2500048E4400384B +:109980008F850038ACA400188E460034ACA6001CAD +:10999000ACA0000CACA00010A4A00014A4A0001661 +:1099A000A4A00020A4A00022ACA000248E62001479 +:1099B00050400001240200018FBF00208FB3001C23 +:1099C0008FB200188FB100148FB00010ACA2000845 +:1099D0000A00101327BD002827BDFFC83C058008DA +:1099E00034A40080AFBF0034AFBE0030AFB7002C4E +:1099F000AFB60028AFB50024AFB40020AFB3001C51 +:109A0000AFB20018AFB10014AFB00010948300786B +:109A10009482007A104300512405FFFF0080F0215A +:109A20000A0011230080B821108B004D8FBF003435 +:109A30008F8600A03C1808008F18005C2411FF805E +:109A40003C1680000306782101F18024AED0002C62 +:109A500096EE007A31EC007F3C0D800E31CB7FFF1B +:109A6000018D5021000B4840012AA82196A4000036 +:109A70003C0808008D0800582405FF8030953FFF02 +:109A800001061821001539800067C8210325F82434 +:109A90003C02010003E290253338007F3C11800C2A +:109AA000AED20028031190219250000D320F000415 +:109AB00011E0003702E0982196E3007A96E8007AF8 +:109AC00096E5007A2404800031077FFF24E300013B +:109AD00030627FFF00A4F82403E2C825A6F9007ACB +:109AE00096E6007A3C1408008E94006030D67FFF22 +:109AF00012D400C1000000008E5800188F8400A00E +:109B000002A028212713FFFF0E000FCEAE53002C1A +:109B100097D5007897D4007A12950010000028217C +:109B20003C098008352401003C0A8008914800085F +:109B3000908700D53114007F30E400FF0284302B81 +:109B400014C0FFB9268B0001938E00AB268C000158 +:109B5000008E682115ACFFB78F8600A08FBF003440 +:109B60008FBE00308FB7002C8FB600288FB5002431 +:109B70008FB400208FB3001C8FB200188FB1001477 +:109B80008FB0001000A0102103E0000827BD0038AE +:109B900000C020210E000F99028028218E4B00105A +:109BA0008E4C00308F84003824090002016C502351 +:109BB000AE4A0010A089000096E3005C8E4400309D +:109BC0008F9100380E000FF43070FFFF00024380C9 +:109BD000020838253C02420000E22825AE25000498 +:109BE0008E5F00048F8A00388E590000240B000815 +:109BF000AD5F001CAD590018AD40000CAD40001029 +:109C00009246000A240400052408C00030D000FF5A +:109C1000A550001496580008A55800169251000A45 +:109C20003C188008322F00FFA54F0020964E0008F8 +:109C300037110100A54E0022AD400024924D000BCB +:109C400031AC00FFA54C0002A14B00018E49003051 +:109C50008F830038240BFFBFAC690008A06400307C +:109C60008F9000382403FFDF9607003200E8282495 +:109C700000B51025A6020032921F003233F9003FD2 +:109C800037260040A20600328F8C0038AD800034A9 +:109C90008E2F00D0AD8F0038918E003C3C0F7FFF9F +:109CA00031CD007FA18D003C8F84003835EEFFFF61 +:109CB000908A003C014B4824A089003C8F850038E5 +:109CC00090A8003C01033824A0A7003C8E42003439 +:109CD0008F9100383C038008AE2200408E59002C42 +:109CE0008E5F0030033F3023AE26004492300048A0 +:109CF0003218007FA23800488F8800388E4D00301F +:109D00008D0C004801AE582401965024014B482583 +:109D1000AD0900489244000AA104004C964700088F +:109D20008F850038A4A7004E8E5000308E4400303E +:109D30000E0003818C65006092F9007C0002F940FE +:109D4000004028210002110003E2302133360002D6 +:109D500012C00003020680210005B0800216802197 +:109D6000926D007C31B30004126000020005708027 +:109D7000020E80218E4B00308F8800382405800031 +:109D8000316A0003000A4823312400030204182129 +:109D9000AD03003496E4007A96F0007A96F1007AEA +:109DA00032027FFF2447000130FF7FFF0225C824D5 +:109DB000033F3025A6E6007A96F8007A3C120800A8 +:109DC0008E520060330F7FFF11F200180000000078 +:109DD0008F8400A00E000FCE02A028218F8400A047 +:109DE0000E000FDE028028210E001013000000007C +:109DF0000A00111F0000000096F1007A022480245E +:109E0000A6F0007A92EF007A92EB007A31EE00FF32 +:109E1000000E69C2000D6027000C51C03169007F3F +:109E2000012A20250A001119A2E4007A96E6007A98 +:109E300000C5C024A6F8007A92EF007A92F3007A67 +:109E400031F200FF001271C2000E6827000DB1C090 +:109E5000326C007F01962825A2E5007A0A0011D015 +:109E60008F8400A03C0380003084FFFF30A5FFFFFB +:109E7000AC640018AC65001C03E000088C620014A0 +:109E800027BDFFA03C068008AFBF005CAFBE0058F6 +:109E9000AFB70054AFB60050AFB5004CAFB40048F8 +:109EA000AFB30044AFB20040AFB1003CAFB0003838 +:109EB00034C80100910500D590C700083084FFFF29 +:109EC00030A500FF30E2007F0045182AAFA4001043 +:109ED000A7A00018A7A0002610600055AFA000148E +:109EE00090CA00083149007F00A9302324D3FFFF26 +:109EF0000013802B8FB400100014902B02128824C2 +:109F0000522000888FB300143C03800894790052DB +:109F1000947E00508FB60010033EC0230018BC0092 +:109F2000001714030016FC0002C2A82A16A00002A3 +:109F3000001F2C030040282100133C0000072403CD +:109F400000A4102A5440000100A020212885000907 +:109F500014A000020080A021241400083C0C8008FA +:109F60008D860048001459808D88004C3C03800089 +:109F70003169FFFF3C0A0010012A202534710400DA +:109F8000AC660038AF9100A4AC68003CAC64003013 +:109F900000000000000000000000000000000000C1 +:109FA00000000000000000000000000000000000B1 +:109FB0008C6E000031CD002011A0FFFD0014782A26 +:109FC00001F01024104000390000A8213C16800840 +:109FD00092D700083C1280008E44010032F6007FC8 +:109FE0000E000F9902C028218E3900108E44010006 +:109FF0000000902133373FFF0E000FB102E028210F +:10A00000923800003302003F2C500008520000102C +:10A0100000008821000210803C030800246358E4FB +:10A020000043F8218FFE000003C00008000000007C +:10A0300090CF0008938C00AB31EE007F00AE682318 +:10A04000018D58210A0012172573FFFF0000882197 +:10A050003C1E80008FC401000E000FCE02E02821BC +:10A060008FC401000E000FDE02C028211220000F55 +:10A070000013802B8F8B00A426A400010004AC00E9 +:10A08000027298230015AC032578004002B4B02A70 +:10A090000013802B241700010300882102D0102414 +:10A0A000AF9800A41440FFC9AFB700143C07800864 +:10A0B00094E200508FAE00103C05800002A288217F +:10A0C0003C060020A4F10050ACA6003094F40050EF +:10A0D00094EF005201D51823306CFFFF11F4001EDD +:10A0E000AFAC00108CEF004C001561808CF500487F +:10A0F00001EC28210000202100AC582B02A4C02133 +:10A10000030BB021ACE5004CACF600488FB4001056 +:10A110000014902B021288241620FF7C3C03800838 +:10A120008FB300148FBF005C8FBE00583A620001ED +:10A130008FB700548FB600508FB5004C8FB40048D5 +:10A140008FB300448FB200408FB1003C8FB0003815 +:10A1500003E0000827BD006094FE00548CF2004428 +:10A1600033C9FFFE0009C8C00259F821ACBF003C4A +:10A170008CE800448CAD003C010D50231940003B9D +:10A18000000000008CF7004026E20001ACA200387D +:10A190003C05005034A700103C038000AC67003041 +:10A1A00000000000000000000000000000000000AF +:10A1B000000000000000000000000000000000009F +:10A1C0008C7800003316002012C0FFFD3C1180087F +:10A1D000962200543C1580003C068008304E000159 +:10A1E000000E18C0007578218DEC04003C070800B3 +:10A1F0008CE700443C040020ACCC00488DF40404FF +:10A20000240B0001ACD4004C10EB0260AEA4003073 +:10A21000963900523C0508008CA5004000B99021F9 +:10A22000A6320052963F005427ED0001A62D00549F +:10A230009626005430C4FFFF5487FF2F8FB40010C0 +:10A2400030A5FFFF0E0011F4A62000543C070800C3 +:10A250008CE70024963E00520047B82303D74823DA +:10A26000A62900520A0012198FB400108CE2004097 +:10A270000A0012BE00000000922400012407000121 +:10A280003085007F14A7001C97AD00268E2B00148C +:10A29000240CC000316A3FFF01AC48243C06080092 +:10A2A0008CC60060012A402531043FFF0086882BC0 +:10A2B00012200011A7A800263C0508008CA5005814 +:10A2C0008F9100A0000439802402FF8000B1182182 +:10A2D0000067F82103E2F02433F8007F3C1280008D +:10A2E0003C19800EAE5E002C0319702191D0000D38 +:10A2F000360F0004A1CF000D0E001028241200011B +:10A30000241100013C1E80008FC401000E000FCEFE +:10A3100002E028218FC401000E000FDE02C02821B8 +:10A320001620FF558F8B00A40A0012860013802B85 +:10A330008F8600A490C80001310400201080019194 +:10A34000241000013C048008348B0080916A007C5A +:10A350008F9E0034AFA0002C314900011120000F66 +:10A36000AFB000288CCD00148C8E006001AE602B45 +:10A370001580000201A038218C8700603C188008FD +:10A38000370300808C70007000F0782B15E000021D +:10A3900000E020218C640070AFA4002C3C028008F7 +:10A3A000344500808CD200148CBF0070025FC82B33 +:10A3B00017200002024020218CA400708FA7002CDF +:10A3C0000087182310600003AFA3003024050002AB +:10A3D000AFA500288FA400280264882B162000BA9D +:10A3E000000018218CD000388FCE000C3C0F00806C +:10A3F000AFD000008CCD00343C0CFF9F01CF58251E +:10A40000AFCD000490CA003F3586FFFF01662024CF +:10A410003C0900203C08FFEFA3CA000B0089382547 +:10A420003511FFFF00F118243C0500088F8700A4B8 +:10A430000065C825AFD9000C8CE20014AFC000182D +:10A440008FA60030AFC200148CF800188FB0002C1B +:10A450003C1FFFFBAFD8001C8CEF000837F2FFFF5A +:10A4600003326824AFCF00248CEC000C020670216C +:10A47000AFCD000CA7C00038A7C0003AAFCE002C6B +:10A48000AFCC0020AFC000288CEA00148FAB002CAA +:10A49000014B48230126402311000011AFC80010D2 +:10A4A00090EB003D8FC900048FC80000000B5100E5 +:10A4B000012A28210000102100AA882B010218215E +:10A4C0000071F821AFC50004AFDF000090F2003D3D +:10A4D000A3D2000A8F9900A497380006A7D80008D5 +:10A4E0008F910038240800023C038008A228000055 +:10A4F0003465008094BF005C8FA4002C33F0FFFF14 +:10A500000E000FF48F9200380002CB808F8500A4DC +:10A51000021978253C18420001F87025AE4E00045F +:10A520008F8400388CAD0038AC8D00188CAC0034B2 +:10A53000AC8C001CAC80000CAC800010A48000141B +:10A54000A4800016A4800020A4800022AC800024F7 +:10A5500090A6003F8FA7002CA486000250E0019235 +:10A56000240700018FA200305040000290A2003D5D +:10A5700090A2003E244A0001A08A00018F84003886 +:10A580008FA9002CAC8900083C128008364D008051 +:10A5900091AC007C3186000214C000022407003414 +:10A5A000240700308F8500A43C198008373F0080C5 +:10A5B00090B0000093F9007C240E0004A0900030BD +:10A5C0008F8F00A48FB8002C8F8D003891F200017E +:10A5D0003304000301C46023A1B200318F8E003820 +:10A5E0008F8600A42402C00095CA003294C90012CC +:10A5F0008FAB002C0142402431233FFF010388250B +:10A60000A5D1003291D000323185000300EBF82152 +:10A610003218003F370F0040A1CF00328FA4002C2A +:10A6200003E5382133280004108000028F850038AC +:10A6300000E838213C0A8008ACA700343549010005 +:10A640008D2800D08FA3002C2419FFBFACA80038A0 +:10A6500090B1003C2C640001240FFFDF3227007F03 +:10A66000A0A7003C8F98003800049140931F003C45 +:10A6700003F98024A310003C8F8C0038918E003C9D +:10A6800001CF682401B23025A186003C8F8900A447 +:10A690008F8800388D2B0020AD0B00408D220024C8 +:10A6A000AD0200448D2A0028AD0A00488D23002CFD +:10A6B0000E001013AD03004C8FB1002824070002D8 +:10A6C000122700118FA300280003282B00058023E8 +:10A6D0000270982400608021006090210A00126FAF +:10A6E0000010882B962900128F8400A00000902172 +:10A6F0003125FFFFA7A900180E000FC22411000189 +:10A700000A00131D3C1E80003C0B80003C12800898 +:10A710008D640100924900088F92FF340E000F995A +:10A720003125007F8F9900388FA700288FA4003033 +:10A73000A3270000965F005C33F0FFFF0E000FF4CC +:10A740008F91003800026B80020D80253C0842008A +:10A750008F8D00A402085025AE2A00048DA5003874 +:10A760008F8A003800007821000F1100AD450018D5 +:10A770008DB800343C047FFF3488FFFFAD58001CC7 +:10A7800091A6003E8D4C001C8D4900180006190052 +:10A79000000677020183C821004E58250323882B29 +:10A7A000012B382100F1F821AD59001CAD5F0018D4 +:10A7B000AD40000CAD40001091B0003E8FA40030C1 +:10A7C00024090005A550001495A500042419C00013 +:10A7D00000884024A545001691B8003EA5580020E9 +:10A7E00095AF0004A54F0022AD40002491AE003F7C +:10A7F000A54E000291A6003E91AC003D01861023BB +:10A80000244B0001A14B00018F9100388FA3003031 +:10A810003C028008344B0100AE230008A22900301E +:10A820008F8C00388F8700A4959F003294F000121F +:10A830002407FFBF033FC02432053FFF03057825EF +:10A84000A58F0032918E00322418FFDF31CD003FFA +:10A8500035A60040A18600328F910038240DFFFFFD +:10A86000240CFF80AE2000348D6A00D0AE2A003860 +:10A870009223003C3069007FA229003C8F90003871 +:10A880003C0380009219003C0327F824A21F003CDF +:10A890008F8E003891C5003C00B87824A1CF003CD1 +:10A8A0008F8A00383C0E8008AD4D00408FA6002CEA +:10A8B000AD46004491420048004C5825A14B004849 +:10A8C0008F9000388F9900A48E09004801238824B6 +:10A8D00002283825AE070048933F003EA21F004CD7 +:10A8E0008F9800A48F8F003897050004A5E5004ECF +:10A8F0000E0003818DC500609246007C8FAC003055 +:10A9000000026940000291000040282130CB000283 +:10A9100001B21021156000AA018230213C0E80088E +:10A9200035C20080904C007C31830004106000032D +:10A930008FB900300005788000CF3021241F00043B +:10A940008F910038332D000303ED8023320800037C +:10A9500000C85021AE2A00343C188000A7C500383A +:10A960003C0680088F04010090DE00080E000FDE18 +:10A9700033C5007F0E001013000000000A00140D04 +:10A980008FA300288F9800348CC90038241F00033F +:10A99000A7000008AF0900008CC50034A300000A1E +:10A9A0008F9900A4AF0500043C080080932D003F60 +:10A9B000A31F000C8F0A000C3C02FF9FA30D000B8D +:10A9C0000148F0253451FFFF3C12FFEF8F9900A49E +:10A9D00003D170243646FFFF01C61824AF03000CD4 +:10A9E0008F2C0014972900128F8400A0AF0C001048 +:10A9F0008F2F0014AF000018AF000020AF0F00141D +:10AA0000AF0000248F270018312F3FFF000F59801F +:10AA1000AF0700288F2500080164F821312D0001BF +:10AA2000AF0500308F31000C8F920038001F51C2EB +:10AA3000000D438001481021241E00023C068008BE +:10AA4000A702001CA7000034AF11002CA25E00007A +:10AA500034D20080964E005C8F9900383C0342004F +:10AA600031CCFFFF01833825AF2700048F8B00A472 +:10AA7000240500012402C0008D640038240700343E +:10AA8000AF2400188D690034AF29001CAF20000CE2 +:10AA9000AF200010A7200014A7200016A720002038 +:10AAA000A7200022AF200024A7300002A325000128 +:10AAB0008F8800388F9F00A4AD10000893ED000030 +:10AAC000A10D00308F8A00A48F98003891510001A9 +:10AAD000A31100318F8B0038957E003203C27024A1 +:10AAE00001CF6025A56C0032916300323064003FD5 +:10AAF000A16400329249007C3125000214A00002BA +:10AB00008F840038240700303C198008AC8700345B +:10AB1000373201008E5F00D0240AFFBF020090216F +:10AB2000AC9F0038908D003C31A8007FA088003C8D +:10AB30008F9E003893C2003C004A8824A3D1003C79 +:10AB40008F8300380010882B9066003C34CE0020A4 +:10AB5000A06E003C8F8400A48F9800388C8C00205D +:10AB6000AF0C00408C8F0024AF0F00448C8700286E +:10AB7000AF0700488C8B002CAF0B004C0E0010135D +:10AB80003C1E80000A0012700000000094C80052B1 +:10AB90003C0A08008D4A002401488821A4D10052B3 +:10ABA0000A0012198FB40010A08700018F840038AA +:10ABB000240B0001AC8B00080A0013BE3C12800875 +:10ABC000000520800A0014A200C4302127BDFFE048 +:10ABD0003C0D8008AFB20018AFB00010AFBF001C32 +:10ABE000AFB1001435B200808E4C001835A80100BA +:10ABF000964B000695A70050910900FC000C5602E8 +:10AC0000016728233143007F312600FF240200031F +:10AC1000AF8300A8AF8400A010C2001B30B0FFFFBC +:10AC2000910600FC2412000530C200FF10520033D0 +:10AC300000000000160000098FBF001C8FB2001832 +:10AC40008FB100148FB00010240D0C003C0C80005C +:10AC500027BD002003E00008AD8D00240E0011FB8D +:10AC6000020020218FBF001C8FB200188FB100148A +:10AC70008FB00010240D0C003C0C800027BD00207C +:10AC800003E00008AD8D0024965800789651007AB4 +:10AC9000924E007D0238782631E8FFFF31C400C0B3 +:10ACA000148000092D11000116000037000000007B +:10ACB0005620FFE28FBF001C0E0010D100000000E4 +:10ACC0000A00156A8FBF001C1620FFDA0000000082 +:10ACD0000E0010D1000000001440FFD88FBF001CF0 +:10ACE0001600002200000000925F007D33E2003F6A +:10ACF000A242007D0A00156A8FBF001C950900EA78 +:10AD00008F86008000802821240400050E0007257E +:10AD10003130FFFF978300923C0480002465FFFFE1 +:10AD2000A78500928C8A01B80540FFFE0000000054 +:10AD3000AC8001808FBF001CAC9001848FB20018E2 +:10AD40008FB100148FB000103C0760133C0B100053 +:10AD5000240D0C003C0C800027BD0020AC8701882E +:10AD6000AC8B01B803E00008AD8D00240E0011FB90 +:10AD7000020020215040FFB18FBF001C925F007D78 +:10AD80000A00159733E2003F0E0011FB020020215C +:10AD90001440FFAA8FBF001C122000070000000013 +:10ADA0009259007D3330003F36020040A242007DC0 +:10ADB0000A00156A8FBF001C0E0010D100000000B1 +:10ADC0005040FF9E8FBF001C9259007D3330003FE2 +:10ADD0000A0015C636020040000000000000001BFB +:10ADE0000000000F0000000A00000008000000063C +:10ADF0000000000500000005000000040000000441 +:10AE00000000000300000003000000030000000336 +:10AE10000000000300000002000000020000000229 +:10AE2000000000020000000200000002000000021A +:10AE3000000000020000000200000002000000020A +:10AE400000000002000000020000000200000002FA +:10AE50000000000100000001000000018008010066 +:10AE6000800800808008000000000C000000308096 +:10AE7000080011D00800127C08001294080012A8E3 +:10AE8000080012BC080011D0080011D0080012F010 +:10AE90000800132C080013400800138808001A8CBF +:10AEA00008001A8C08001AC408001AC408001AD82E +:10AEB00008001AA808001D0008001CCC08001D5836 +:10AEC00008001D5808001DE008001D108008024001 +:10AED000080027340800256C0800275C080027F4C8 +:10AEE0000800293C0800298808002AAC080029B479 +:10AEF00008002A38080025DC08002EDC08002EA4F3 +:10AF000008002588080025880800258808002B20CF +:10AF100008002B20080025880800258808002DD06F +:10AF2000080025880800258808002588080025884D +:10AF300008002E0C080025880800258808002588B0 +:10AF4000080025880800258808002588080025882D +:10AF5000080025880800258808002588080025881D +:10AF6000080025880800258808002588080029A8E9 +:10AF7000080025880800258808002E680800258814 +:10AF800008002588080025880800258808002588ED +:10AF900008002588080025880800258808002588DD +:10AFA00008002588080025880800258808002588CD +:10AFB00008002588080025880800258808002588BD +:10AFC00008002CF4080025880800258808002C6853 +:10AFD00008002BC408003CE408003CB808003C848E +:10AFE00008003C5808003C3808003BEC8008010091 +:10AFF00080080080800800008008008008004C6401 +:10B0000008004C9C08004BE408004C6408004C64A9 +:10B01000080049B808004C64080050500A000C842D +:10B0200000000000000000000000000D7278703683 +:10B030002E322E31620000000602010300000000E3 +:10B0400000000001000000000000000000000000FF +:10B0500000000000000000000000000000000000F0 +:10B0600000000000000000000000000000000000E0 +:10B0700000000000000000000000000000000000D0 +:10B0800000000000000000000000000000000000C0 +:10B0900000000000000000000000000000000000B0 +:10B0A00000000000000000000000000000000000A0 +:10B0B0000000000000000000000000000000000090 +:10B0C0000000000000000000000000000000000080 +:10B0D0000000000000000000000000000000000070 +:10B0E0000000000000000000000000000000000060 +:10B0F0000000000000000000000000000000000050 +:10B10000000000000000000000000000000000003F +:10B11000000000000000000000000000000000002F +:10B12000000000000000000000000000000000001F +:10B13000000000000000000000000000000000000F +:10B1400000000000000000000000000000000000FF +:10B1500000000000000000000000000000000000EF +:10B1600000000000000000000000000000000000DF +:10B1700000000000000000000000000000000000CF +:10B1800000000000000000000000000000000000BF +:10B1900000000000000000000000000000000000AF +:10B1A000000000000000000000000000000000009F +:10B1B000000000000000000000000000000000008F +:10B1C000000000000000000000000000000000007F +:10B1D000000000000000000000000000000000006F +:10B1E000000000000000000000000000000000005F +:10B1F000000000000000000000000000000000004F +:10B20000000000000000000000000000000000003E +:10B21000000000000000000000000000000000002E +:10B22000000000000000000000000000000000001E +:10B23000000000000000000000000000000000000E +:10B2400000000000000000000000000000000000FE +:10B2500000000000000000000000000000000000EE +:10B2600000000000000000000000000000000000DE +:10B2700000000000000000000000000000000000CE +:10B2800000000000000000000000000000000000BE +:10B2900000000000000000000000000000000000AE +:10B2A000000000000000000000000000000000009E +:10B2B000000000000000000000000000000000008E +:10B2C000000000000000000000000000000000007E +:10B2D000000000000000000000000000000000006E +:10B2E000000000000000000000000000000000005E +:10B2F000000000000000000000000000000000004E +:10B30000000000000000000000000000000000003D +:10B31000000000000000000000000000000000002D +:10B32000000000000000000000000000000000001D +:10B33000000000000000000000000000000000000D +:10B3400000000000000000000000000000000000FD +:10B3500000000000000000000000000000000000ED +:10B3600000000000000000000000000000000000DD +:10B3700000000000000000000000000000000000CD +:10B3800000000000000000000000000000000000BD +:10B3900000000000000000000000000000000000AD +:10B3A000000000000000000000000000000000009D +:10B3B000000000000000000000000000000000008D +:10B3C000000000000000000000000000000000007D +:10B3D000000000000000000000000000000000006D +:10B3E000000000000000000000000000000000005D +:10B3F000000000000000000000000000000000004D +:10B40000000000000000000000000000000000003C +:10B41000000000000000000000000000000000002C +:10B42000000000000000000000000000000000001C +:10B43000000000000000000000000000000000000C +:10B4400000000000000000000000000000000000FC +:10B4500000000000000000000000000000000000EC +:10B4600000000000000000000000000000000000DC +:10B4700000000000000000000000000000000000CC +:10B4800000000000000000000000000000000000BC +:10B4900000000000000000000000000000000000AC +:10B4A000000000000000000000000000000000009C +:10B4B000000000000000000000000000000000008C +:10B4C000000000000000000000000000000000007C +:10B4D000000000000000000000000000000000006C +:10B4E000000000000000000000000000000000005C +:10B4F000000000000000000000000000000000004C +:10B50000000000000000000000000000000000003B +:10B51000000000000000000000000000000000002B +:10B52000000000000000000000000000000000001B +:10B53000000000000000000000000000000000000B +:10B5400000000000000000000000000000000000FB +:10B5500000000000000000000000000000000000EB +:10B5600000000000000000000000000000000000DB +:10B5700000000000000000000000000000000000CB +:10B5800000000000000000000000000000000000BB +:10B5900000000000000000000000000000000000AB +:10B5A000000000000000000000000000000000009B +:10B5B000000000000000000000000000000000008B +:10B5C000000000000000000000000000000000007B +:10B5D000000000000000000000000000000000006B +:10B5E000000000000000000000000000000000005B +:10B5F000000000000000000000000000000000004B +:10B60000000000000000000000000000000000003A +:10B61000000000000000000000000000000000002A +:10B62000000000000000000000000000000000001A +:10B63000000000000000000000000000000000000A +:10B6400000000000000000000000000000000000FA +:10B6500000000000000000000000000000000000EA +:10B6600000000000000000000000000000000000DA +:10B6700000000000000000000000000000000000CA +:10B6800000000000000000000000000000000000BA +:10B6900000000000000000000000000000000000AA +:10B6A000000000000000000000000000000000009A +:10B6B000000000000000000000000000000000008A +:10B6C000000000000000000000000000000000007A +:10B6D000000000000000000000000000000000006A +:10B6E000000000000000000000000000000000005A +:10B6F000000000000000000000000000000000004A +:10B700000000000000000000000000000000000039 +:10B710000000000000000000000000000000000029 +:10B720000000000000000000000000000000000019 +:10B730000000000000000000000000000000000009 +:10B7400000000000000000000000000000000000F9 +:10B7500000000000000000000000000000000000E9 +:10B7600000000000000000000000000000000000D9 +:10B7700000000000000000000000000000000000C9 +:10B7800000000000000000000000000000000000B9 +:10B7900000000000000000000000000000000000A9 +:10B7A0000000000000000000000000000000000099 +:10B7B0000000000000000000000000000000000089 +:10B7C0000000000000000000000000000000000079 +:10B7D0000000000000000000000000000000000069 +:10B7E0000000000000000000000000000000000059 +:10B7F0000000000000000000000000000000000049 +:10B800000000000000000000000000000000000038 +:10B810000000000000000000000000000000000028 +:10B820000000000000000000000000000000000018 +:10B830000000000000000000000000000000000008 +:10B8400000000000000000000000000000000000F8 +:10B8500000000000000000000000000000000000E8 +:10B8600000000000000000000000000000000000D8 +:10B8700000000000000000000000000000000000C8 +:10B8800000000000000000000000000000000000B8 +:10B8900000000000000000000000000000000000A8 +:10B8A0000000000000000000000000000000000098 +:10B8B0000000000000000000000000000000000088 +:10B8C0000000000000000000000000000000000078 +:10B8D0000000000000000000000000000000000068 +:10B8E0000000000000000000000000000000000058 +:10B8F0000000000000000000000000000000000048 +:10B900000000000000000000000000000000000037 +:10B910000000000000000000000000000000000027 +:10B920000000000000000000000000000000000017 +:10B930000000000000000000000000000000000007 +:10B9400000000000000000000000000000000000F7 +:10B9500000000000000000000000000000000000E7 +:10B9600000000000000000000000000000000000D7 +:10B9700000000000000000000000000000000000C7 +:10B9800000000000000000000000000000000000B7 +:10B9900000000000000000000000000000000000A7 +:10B9A0000000000000000000000000000000000097 +:10B9B0000000000000000000000000000000000087 +:10B9C0000000000000000000000000000000000077 +:10B9D0000000000000000000000000000000000067 +:10B9E0000000000000000000000000000000000057 +:10B9F0000000000000000000000000000000000047 +:10BA00000000000000000000000000000000000036 +:10BA10000000000000000000000000000000000026 +:10BA20000000000000000000000000000000000016 +:10BA30000000000000000000000000000000000006 +:10BA400000000000000000000000000000000000F6 +:10BA500000000000000000000000000000000000E6 +:10BA600000000000000000000000000000000000D6 +:10BA700000000000000000000000000000000000C6 +:10BA800000000000000000000000000000000000B6 +:10BA900000000000000000000000000000000000A6 +:10BAA0000000000000000000000000000000000096 +:10BAB0000000000000000000000000000000000086 +:10BAC0000000000000000000000000000000000076 +:10BAD0000000000000000000000000000000000066 +:10BAE0000000000000000000000000000000000056 +:10BAF0000000000000000000000000000000000046 +:10BB00000000000000000000000000000000000035 +:10BB10000000000000000000000000000000000025 +:10BB20000000000000000000000000000000000015 +:10BB30000000000000000000000000000000000005 +:10BB400000000000000000000000000000000000F5 +:10BB500000000000000000000000000000000000E5 +:10BB600000000000000000000000000000000000D5 +:10BB700000000000000000000000000000000000C5 +:10BB800000000000000000000000000000000000B5 +:10BB900000000000000000000000000000000000A5 +:10BBA0000000000000000000000000000000000095 +:10BBB0000000000000000000000000000000000085 +:10BBC0000000000000000000000000000000000075 +:10BBD0000000000000000000000000000000000065 +:10BBE0000000000000000000000000000000000055 +:10BBF0000000000000000000000000000000000045 +:10BC00000000000000000000000000000000000034 +:10BC10000000000000000000000000000000000024 +:10BC20000000000000000000000000000000000014 +:10BC30000000000000000000000000000000000004 +:10BC400000000000000000000000000000000000F4 +:10BC500000000000000000000000000000000000E4 +:10BC600000000000000000000000000000000000D4 +:10BC700000000000000000000000000000000000C4 +:10BC800000000000000000000000000000000000B4 +:10BC900000000000000000000000000000000000A4 +:10BCA0000000000000000000000000000000000094 +:10BCB0000000000000000000000000000000000084 +:10BCC0000000000000000000000000000000000074 +:10BCD0000000000000000000000000000000000064 +:10BCE0000000000000000000000000000000000054 +:10BCF0000000000000000000000000000000000044 +:10BD00000000000000000000000000000000000033 +:10BD10000000000000000000000000000000000023 +:10BD20000000000000000000000000000000000013 +:10BD30000000000000000000000000000000000003 +:10BD400000000000000000000000000000000000F3 +:10BD500000000000000000000000000000000000E3 +:10BD600000000000000000000000000000000000D3 +:10BD700000000000000000000000000000000000C3 +:10BD800000000000000000000000000000000000B3 +:10BD900000000000000000000000000000000000A3 +:10BDA0000000000000000000000000000000000093 +:10BDB0000000000000000000000000000000000083 +:10BDC0000000000000000000000000000000000073 +:10BDD0000000000000000000000000000000000063 +:10BDE0000000000000000000000000000000000053 +:10BDF0000000000000000000000000000000000043 +:10BE00000000000000000000000000000000000032 +:10BE10000000000000000000000000000000000022 +:10BE20000000000000000000000000000000000012 +:10BE30000000000000000000000000000000000002 +:10BE400000000000000000000000000000000000F2 +:10BE500000000000000000000000000000000000E2 +:10BE600000000000000000000000000000000000D2 +:10BE700000000000000000000000000000000000C2 +:10BE800000000000000000000000000000000000B2 +:10BE900000000000000000000000000000000000A2 +:10BEA0000000000000000000000000000000000092 +:10BEB0000000000000000000000000000000000082 +:10BEC0000000000000000000000000000000000072 +:10BED0000000000000000000000000000000000062 +:10BEE0000000000000000000000000000000000052 +:10BEF0000000000000000000000000000000000042 +:10BF00000000000000000000000000000000000031 +:10BF10000000000000000000000000000000000021 +:10BF20000000000000000000000000000000000011 +:10BF30000000000000000000000000000000000001 +:10BF400000000000000000000000000000000000F1 +:10BF500000000000000000000000000000000000E1 +:10BF600000000000000000000000000000000000D1 +:10BF700000000000000000000000000000000000C1 +:10BF800000000000000000000000000000000000B1 +:10BF900000000000000000000000000000000000A1 +:10BFA0000000000000000000000000000000000091 +:10BFB0000000000000000000000000000000000081 +:10BFC0000000000000000000000000000000000071 +:10BFD0000000000000000000000000000000000061 +:10BFE0000000000000000000000000000000000051 +:10BFF0000000000000000000000000000000000041 +:10C000000000000000000000000000000000000030 +:10C010000000000000000000000000000000000020 +:10C020000000000000000000000000000000000010 +:10C030000000000000000000000000000000000000 +:10C0400000000000000000000000000000000000F0 +:10C0500000000000000000000000000000000000E0 +:10C0600000000000000000000000000000000000D0 +:10C0700000000000000000000000000000000000C0 +:10C0800000000000000000000000000000000000B0 +:10C0900000000000000000000000000000000000A0 +:10C0A0000000000000000000000000000000000090 +:10C0B0000000000000000000000000000000000080 +:10C0C0000000000000000000000000000000000070 +:10C0D0000000000000000000000000000000000060 +:10C0E0000000000000000000000000000000000050 +:10C0F0000000000000000000000000000000000040 +:10C10000000000000000000000000000000000002F +:10C11000000000000000000000000000000000001F +:10C12000000000000000000000000000000000000F +:10C1300000000000000000000000000000000000FF +:10C1400000000000000000000000000000000000EF +:10C1500000000000000000000000000000000000DF +:10C1600000000000000000000000000000000000CF +:10C1700000000000000000000000000000000000BF +:10C1800000000000000000000000000000000000AF +:10C19000000000000000000000000000000000009F +:10C1A000000000000000000000000000000000008F +:10C1B000000000000000000000000000000000007F +:10C1C000000000000000000000000000000000006F +:10C1D000000000000000000000000000000000005F +:10C1E000000000000000000000000000000000004F +:10C1F000000000000000000000000000000000003F +:10C20000000000000000000000000000000000002E +:10C21000000000000000000000000000000000001E +:10C22000000000000000000000000000000000000E +:10C2300000000000000000000000000000000000FE +:10C2400000000000000000000000000000000000EE +:10C2500000000000000000000000000000000000DE +:10C2600000000000000000000000000000000000CE +:10C2700000000000000000000000000000000000BE +:10C2800000000000000000000000000000000000AE +:10C29000000000000000000000000000000000009E +:10C2A000000000000000000000000000000000008E +:10C2B000000000000000000000000000000000007E +:10C2C000000000000000000000000000000000006E +:10C2D000000000000000000000000000000000005E +:10C2E000000000000000000000000000000000004E +:10C2F000000000000000000000000000000000003E +:10C30000000000000000000000000000000000002D +:10C31000000000000000000000000000000000001D +:10C32000000000000000000000000000000000000D +:10C3300000000000000000000000000000000000FD +:10C3400000000000000000000000000000000000ED +:10C3500000000000000000000000000000000000DD +:10C3600000000000000000000000000000000000CD +:10C3700000000000000000000000000000000000BD +:10C3800000000000000000000000000000000000AD +:10C39000000000000000000000000000000000009D +:10C3A000000000000000000000000000000000008D +:10C3B000000000000000000000000000000000007D +:10C3C000000000000000000000000000000000006D +:10C3D000000000000000000000000000000000005D +:10C3E000000000000000000000000000000000004D +:10C3F000000000000000000000000000000000003D +:10C40000000000000000000000000000000000002C +:10C41000000000000000000000000000000000001C +:10C42000000000000000000000000000000000000C +:10C4300000000000000000000000000000000000FC +:10C4400000000000000000000000000000000000EC +:10C4500000000000000000000000000000000000DC +:10C4600000000000000000000000000000000000CC +:10C4700000000000000000000000000000000000BC +:10C4800000000000000000000000000000000000AC +:10C49000000000000000000000000000000000009C +:10C4A000000000000000000000000000000000008C +:10C4B000000000000000000000000000000000007C +:10C4C000000000000000000000000000000000006C +:10C4D000000000000000000000000000000000005C +:10C4E000000000000000000000000000000000004C +:10C4F000000000000000000000000000000000003C +:10C50000000000000000000000000000000000002B +:10C51000000000000000000000000000000000001B +:10C52000000000000000000000000000000000000B +:10C5300000000000000000000000000000000000FB +:10C5400000000000000000000000000000000000EB +:10C5500000000000000000000000000000000000DB +:10C5600000000000000000000000000000000000CB +:10C5700000000000000000000000000000000000BB +:10C5800000000000000000000000000000000000AB +:10C59000000000000000000000000000000000009B +:10C5A000000000000000000000000000000000008B +:10C5B000000000000000000000000000000000007B +:10C5C000000000000000000000000000000000006B +:10C5D000000000000000000000000000000000005B +:10C5E000000000000000000000000000000000004B +:10C5F000000000000000000000000000000000003B +:10C60000000000000000000000000000000000002A +:10C61000000000000000000000000000000000001A +:10C62000000000000000000000000000000000000A +:10C6300000000000000000000000000000000000FA +:10C6400000000000000000000000000000000000EA +:10C6500000000000000000000000000000000000DA +:10C6600000000000000000000000000000000000CA +:10C6700000000000000000000000000000000000BA +:10C6800000000000000000000000000000000000AA +:10C69000000000000000000000000000000000009A +:10C6A000000000000000000000000000000000008A +:10C6B000000000000000000000000000000000007A +:10C6C000000000000000000000000000000000006A +:10C6D000000000000000000000000000000000005A +:10C6E000000000000000000000000000000000004A +:10C6F000000000000000000000000000000000003A +:10C700000000000000000000000000000000000029 +:10C710000000000000000000000000000000000019 +:10C720000000000000000000000000000000000009 +:10C7300000000000000000000000000000000000F9 +:10C7400000000000000000000000000000000000E9 +:10C7500000000000000000000000000000000000D9 +:10C7600000000000000000000000000000000000C9 +:10C7700000000000000000000000000000000000B9 +:10C7800000000000000000000000000000000000A9 +:10C790000000000000000000000000000000000099 +:10C7A0000000000000000000000000000000000089 +:10C7B0000000000000000000000000000000000079 +:10C7C0000000000000000000000000000000000069 +:10C7D0000000000000000000000000000000000059 +:10C7E0000000000000000000000000000000000049 +:10C7F0000000000000000000000000000000000039 +:10C800000000000000000000000000000000000028 +:10C810000000000000000000000000000000000018 +:10C820000000000000000000000000000000000008 +:10C8300000000000000000000000000000000000F8 +:10C8400000000000000000000000000000000000E8 +:10C8500000000000000000000000000000000000D8 +:10C8600000000000000000000000000000000000C8 +:10C8700000000000000000000000000000000000B8 +:10C8800000000000000000000000000000000000A8 +:10C890000000000000000000000000000000000098 +:10C8A0000000000000000000000000000000000088 +:10C8B0000000000000000000000000000000000078 +:10C8C0000000000000000000000000000000000068 +:10C8D0000000000000000000000000000000000058 +:10C8E0000000000000000000000000000000000048 +:10C8F0000000000000000000000000000000000038 +:10C900000000000000000000000000000000000027 +:10C910000000000000000000000000000000000017 +:10C920000000000000000000000000000000000007 +:10C9300000000000000000000000000000000000F7 +:10C9400000000000000000000000000000000000E7 +:10C9500000000000000000000000000000000000D7 +:10C9600000000000000000000000000000000000C7 +:10C9700000000000000000000000000000000000B7 +:10C9800000000000000000000000000000000000A7 +:10C990000000000000000000000000000000000097 +:10C9A0000000000000000000000000000000000087 +:10C9B0000000000000000000000000000000000077 +:10C9C0000000000000000000000000000000000067 +:10C9D0000000000000000000000000000000000057 +:10C9E0000000000000000000000000000000000047 +:10C9F0000000000000000000000000000000000037 +:10CA00000000000000000000000000000000000026 +:10CA10000000000000000000000000000000000016 +:10CA20000000000000000000000000000000000006 +:10CA300000000000000000000000000000000000F6 +:10CA400000000000000000000000000000000000E6 +:10CA500000000000000000000000000000000000D6 +:10CA600000000000000000000000000000000000C6 +:10CA700000000000000000000000000000000000B6 +:10CA800000000000000000000000000000000000A6 +:10CA90000000000000000000000000000000000096 +:10CAA0000000000000000000000000000000000086 +:10CAB0000000000000000000000000000000000076 +:10CAC0000000000000000000000000000000000066 +:10CAD0000000000000000000000000000000000056 +:10CAE0000000000000000000000000000000000046 +:10CAF0000000000000000000000000000000000036 +:10CB00000000000000000000000000000000000025 +:10CB10000000000000000000000000000000000015 +:10CB20000000000000000000000000000000000005 +:10CB300000000000000000000000000000000000F5 +:10CB400000000000000000000000000000000000E5 +:10CB500000000000000000000000000000000000D5 +:10CB600000000000000000000000000000000000C5 +:10CB700000000000000000000000000000000000B5 +:10CB800000000000000000000000000000000000A5 +:10CB90000000000000000000000000000000000095 +:10CBA0000000000000000000000000000000000085 +:10CBB0000000000000000000000000000000000075 +:10CBC0000000000000000000000000000000000065 +:10CBD0000000000000000000000000000000000055 +:10CBE0000000000000000000000000000000000045 +:10CBF0000000000000000000000000000000000035 +:10CC00000000000000000000000000000000000024 +:10CC10000000000000000000000000000000000014 +:10CC20000000000000000000000000000000000004 +:10CC300000000000000000000000000000000000F4 +:10CC400000000000000000000000000000000000E4 +:10CC500000000000000000000000000000000000D4 +:10CC600000000000000000000000000000000000C4 +:10CC700000000000000000000000000000000000B4 +:10CC800000000000000000000000000000000000A4 +:10CC90000000000000000000000000000000000094 +:10CCA0000000000000000000000000000000000084 +:10CCB0000000000000000000000000000000000074 +:10CCC0000000000000000000000000000000000064 +:10CCD0000000000000000000000000000000000054 +:10CCE0000000000000000000000000000000000044 +:10CCF0000000000000000000000000000000000034 +:10CD00000000000000000000000000000000000023 +:10CD10000000000000000000000000000000000013 +:10CD20000000000000000000000000000000000003 +:10CD300000000000000000000000000000000000F3 +:10CD400000000000000000000000000000000000E3 +:10CD500000000000000000000000000000000000D3 +:10CD600000000000000000000000000000000000C3 +:10CD700000000000000000000000000000000000B3 +:10CD800000000000000000000000000000000000A3 +:10CD90000000000000000000000000000000000093 +:10CDA0000000000000000000000000000000000083 +:10CDB0000000000000000000000000000000000073 +:10CDC0000000000000000000000000000000000063 +:10CDD0000000000000000000000000000000000053 +:10CDE0000000000000000000000000000000000043 +:10CDF0000000000000000000000000000000000033 +:10CE00000000000000000000000000000000000022 +:10CE10000000000000000000000000000000000012 +:10CE20000000000000000000000000000000000002 +:10CE300000000000000000000000000000000000F2 +:10CE400000000000000000000000000000000000E2 +:10CE500000000000000000000000000000000000D2 +:10CE600000000000000000000000000000000000C2 +:10CE700000000000000000000000000000000000B2 +:10CE800000000000000000000000000000000000A2 +:10CE90000000000000000000000000000000000092 +:10CEA0000000000000000000000000000000000082 +:10CEB0000000000000000000000000000000000072 +:10CEC0000000000000000000000000000000000062 +:10CED0000000000000000000000000000000000052 +:10CEE0000000000000000000000000000000000042 +:10CEF0000000000000000000000000000000000032 +:10CF00000000000000000000000000000000000021 +:10CF10000000000000000000000000000000000011 +:10CF20000000000000000000000000000000000001 +:10CF300000000000000000000000000000000000F1 +:10CF400000000000000000000000000000000000E1 +:10CF500000000000000000000000000000000000D1 +:10CF600000000000000000000000000000000000C1 +:10CF700000000000000000000000000000000000B1 +:10CF800000000000000000000000000000000000A1 +:10CF90000000000000000000000000000000000091 +:10CFA0000000000000000000000000000000000081 +:10CFB0000000000000000000000000000000000071 +:10CFC0000000000000000000000000000000000061 +:10CFD0000000000000000000000000000000000051 +:10CFE0000000000000000000000000000000000041 +:10CFF0000000000000000000000000000000000031 +:10D000000000000000000000000000000000000020 +:10D010000000000000000000000000000000000010 +:10D020000000000000000000000000000000000000 +:10D0300000000000000000000000000000000000F0 +:10D0400000000000000000000000000000000000E0 +:10D0500000000000000000000000000000000000D0 +:10D0600000000000000000000000000000000000C0 +:10D0700000000000000000000000000000000000B0 +:10D0800000000000000000000000000000000000A0 +:10D090000000000000000000000000000000000090 +:10D0A0000000000000000000000000000000000080 +:10D0B0000000000000000000000000000000000070 +:10D0C0000000000000000000000000000000000060 +:10D0D0000000000000000000000000000000000050 +:10D0E0000000000000000000000000000000000040 +:10D0F0000000000000000000000000000000000030 +:10D10000000000000000000000000000000000001F +:10D11000000000000000000000000000000000000F +:10D1200000000000000000000000000000000000FF +:10D1300000000000000000000000000000000000EF +:10D1400000000000000000000000000000000000DF +:10D1500000000000000000000000000000000000CF +:10D1600000000000000000000000000000000000BF +:10D1700000000000000000000000000000000000AF +:10D18000000000000000000000000000000000009F +:10D19000000000000000000000000000000000008F +:10D1A000000000000000000000000000000000007F +:10D1B000000000000000000000000000000000006F +:10D1C000000000000000000000000000000000005F +:10D1D000000000000000000000000000000000004F +:10D1E000000000000000000000000000000000003F +:10D1F000000000000000000000000000000000002F +:10D20000000000000000000000000000000000001E +:10D21000000000000000000000000000000000000E +:10D2200000000000000000000000000000000000FE +:10D2300000000000000000000000000000000000EE +:10D2400000000000000000000000000000000000DE +:10D2500000000000000000000000000000000000CE +:10D2600000000000000000000000000000000000BE +:10D2700000000000000000000000000000000000AE +:10D28000000000000000000000000000000000009E +:10D29000000000000000000000000000000000008E +:10D2A000000000000000000000000000000000007E +:10D2B000000000000000000000000000000000006E +:10D2C000000000000000000000000000000000005E +:10D2D000000000000000000000000000000000004E +:10D2E000000000000000000000000000000000003E +:10D2F000000000000000000000000000000000002E +:10D30000000000000000000000000000000000001D +:10D31000000000000000000000000000000000000D +:10D3200000000000000000000000000000000000FD +:10D3300000000000000000000000000000000000ED +:10D3400000000000000000000000000000000000DD +:10D3500000000000000000000000000000000000CD +:10D3600000000000000000000000000000000000BD +:10D3700000000000000000000000000000000000AD +:10D38000000000000000000000000000000000009D +:10D39000000000000000000000000000000000008D +:10D3A000000000000000000000000000000000007D +:10D3B000000000000000000000000000000000006D +:10D3C000000000000000000000000000000000005D +:10D3D000000000000000000000000000000000004D +:10D3E000000000000000000000000000000000003D +:10D3F000000000000000000000000000000000002D +:10D40000000000000000000000000000000000001C +:10D41000000000000000000000000000000000000C +:10D4200000000000000000000000000000000000FC +:10D4300000000000000000000000000000000000EC +:10D4400000000000000000000000000000000000DC +:10D4500000000000000000000000000000000000CC +:10D4600000000000000000000000000000000000BC +:10D4700000000000000000000000000000000000AC +:10D48000000000000000000000000000000000009C +:10D49000000000000000000000000000000000008C +:10D4A000000000000000000000000000000000007C +:10D4B000000000000000000000000000000000006C +:10D4C000000000000000000000000000000000005C +:10D4D000000000000000000000000000000000004C +:10D4E000000000000000000000000000000000003C +:10D4F000000000000000000000000000000000002C +:10D50000000000000000000000000000000000001B +:10D51000000000000000000000000000000000000B +:10D5200000000000000000000000000000000000FB +:10D5300000000000000000000000000000000000EB +:10D5400000000000000000000000000000000000DB +:10D5500000000000000000000000000000000000CB +:10D5600000000000000000000000000000000000BB +:10D5700000000000000000000000000000000000AB +:10D58000000000000000000000000000000000009B +:10D59000000000000000000000000000000000008B +:10D5A000000000000000000000000000000000007B +:10D5B000000000000000000000000000000000006B +:10D5C000000000000000000000000000000000005B +:10D5D000000000000000000000000000000000004B +:10D5E000000000000000000000000000000000003B +:10D5F000000000000000000000000000000000002B +:10D60000000000000000000000000000000000001A +:10D61000000000000000000000000000000000000A +:10D6200000000000000000000000000000000000FA +:10D6300000000000000000000000000000000000EA +:10D6400000000000000000000000000000000000DA +:10D6500000000000000000000000000000000000CA +:10D6600000000000000000000000000000000000BA +:10D6700000000000000000000000000000000000AA +:10D68000000000000000000000000000000000009A +:10D69000000000000000000000000000000000008A +:10D6A000000000000000000000000000000000007A +:10D6B000000000000000000000000000000000006A +:10D6C000000000000000000000000000000000005A +:10D6D000000000000000000000000000000000004A +:10D6E000000000000000000000000000000000003A +:10D6F000000000000000000000000000000000002A +:10D700000000000000000000000000000000000019 +:10D710000000000000000000000000000000000009 +:10D7200000000000000000000000000000000000F9 +:10D7300000000000000000000000000000000000E9 +:10D7400000000000000000000000000000000000D9 +:10D7500000000000000000000000000000000000C9 +:10D7600000000000000000000000000000000000B9 +:10D7700000000000000000000000000000000000A9 +:10D780000000000000000000000000000000000099 +:10D790000000000000000000000000000000000089 +:10D7A0000000000000000000000000000000000079 +:10D7B0000000000000000000000000000000000069 +:10D7C0000000000000000000000000000000000059 +:10D7D0000000000000000000000000000000000049 +:10D7E0000000000000000000000000000000000039 +:10D7F0000000000000000000000000000000000029 +:10D800000000000000000000000000000000000018 +:10D810000000000000000000000000000000000008 +:10D8200000000000000000000000000000000000F8 +:10D8300000000000000000000000000000000000E8 +:10D8400000000000000000000000000000000000D8 +:10D8500000000000000000000000000000000000C8 +:10D8600000000000000000000000000000000000B8 +:10D8700000000000000000000000000000000000A8 +:10D880000000000000000000000000000000000098 +:10D890000000000000000000000000000000000088 +:10D8A0000000000000000000000000000000000078 +:10D8B0000000000000000000000000000000000068 +:10D8C0000000000000000000000000000000000058 +:10D8D0000000000000000000000000000000000048 +:10D8E0000000000000000000000000000000000038 +:10D8F0000000000000000000000000000000000028 +:10D900000000000000000000000000000000000017 +:10D910000000000000000000000000000000000007 +:10D9200000000000000000000000000000000000F7 +:10D9300000000000000000000000000000000000E7 +:10D9400000000000000000000000000000000000D7 +:10D9500000000000000000000000000000000000C7 +:10D9600000000000000000000000000000000000B7 +:10D9700000000000000000000000000000000000A7 +:10D980000000000000000000000000000000000097 +:10D990000000000000000000000000000000000087 +:10D9A0000000000000000000000000000000000077 +:10D9B0000000000000000000000000000000000067 +:10D9C0000000000000000000000000000000000057 +:10D9D0000000000000000000000000000000000047 +:10D9E0000000000000000000000000000000000037 +:10D9F0000000000000000000000000000000000027 +:10DA00000000000000000000000000000000000016 +:10DA10000000000000000000000000000000000006 +:10DA200000000000000000000000000000000000F6 +:10DA300000000000000000000000000000000000E6 +:10DA400000000000000000000000000000000000D6 +:10DA500000000000000000000000000000000000C6 +:10DA600000000000000000000000000000000000B6 +:10DA700000000000000000000000000000000000A6 +:10DA80000000000000000000000000000000000096 +:10DA90000000000000000000000000000000000086 +:10DAA0000000000000000000000000000000000076 +:10DAB0000000000000000000000000000000000066 +:10DAC0000000000000000000000000000000000056 +:10DAD0000000000000000000000000000000000046 +:10DAE0000000000000000000000000000000000036 +:10DAF0000000000000000000000000000000000026 +:10DB00000000000000000000000000000000000015 +:10DB10000000000000000000000000000000000005 +:10DB200000000000000000000000000000000000F5 +:10DB300000000000000000000000000000000000E5 +:10DB400000000000000000000000000000000000D5 +:10DB500000000000000000000000000000000000C5 +:10DB600000000000000000000000000000000000B5 +:10DB700000000000000000000000000000000000A5 +:10DB80000000000000000000000000000000000095 +:10DB90000000000000000000000000000000000085 +:10DBA0000000000000000000000000000000000075 +:10DBB0000000000000000000000000000000000065 +:10DBC0000000000000000000000000000000000055 +:10DBD0000000000000000000000000000000000045 +:10DBE0000000000000000000000000000000000035 +:10DBF0000000000000000000000000000000000025 +:10DC00000000000000000000000000000000000014 +:10DC10000000000000000000000000000000000004 +:10DC200000000000000000000000000000000000F4 +:10DC300000000000000000000000000000000000E4 +:10DC400000000000000000000000000000000000D4 +:10DC500000000000000000000000000000000000C4 +:10DC600000000000000000000000000000000000B4 +:10DC700000000000000000000000000000000000A4 +:10DC80000000000000000000000000000000000094 +:10DC90000000000000000000000000000000000084 +:10DCA0000000000000000000000000000000000074 +:10DCB0000000000000000000000000000000000064 +:10DCC0000000000000000000000000000000000054 +:10DCD0000000000000000000000000000000000044 +:10DCE0000000000000000000000000000000000034 +:10DCF0000000000000000000000000000000000024 +:10DD00000000000000000000000000000000000013 +:10DD10000000000000000000000000000000000003 +:10DD200000000000000000000000000000000000F3 +:10DD300000000000000000000000000000000000E3 +:10DD400000000000000000000000000000000000D3 +:10DD500000000000000000000000000000000000C3 +:10DD600000000000000000000000000000000000B3 +:10DD700000000000000000000000000000000000A3 +:10DD80000000000000000000000000000000000093 +:10DD90000000000000000000000000000000000083 +:10DDA0000000000000000000000000000000000073 +:10DDB0000000000000000000000000000000000063 +:10DDC0000000000000000000000000000000000053 +:10DDD0000000000000000000000000000000000043 +:10DDE0000000000000000000000000000000000033 +:10DDF0000000000000000000000000000000000023 +:10DE00000000000000000000000000000000000012 +:10DE10000000000000000000000000000000000002 +:10DE200000000000000000000000000000000000F2 +:10DE300000000000000000000000000000000000E2 +:10DE400000000000000000000000000000000000D2 +:10DE500000000000000000000000000000000000C2 +:10DE600000000000000000000000000000000000B2 +:10DE700000000000000000000000000000000000A2 +:10DE80000000000000000000000000000000000092 +:10DE90000000000000000000000000000000000082 +:10DEA0000000000000000000000000000000000072 +:10DEB0000000000000000000000000000000000062 +:10DEC0000000000000000000000000000000000052 +:10DED0000000000000000000000000000000000042 +:10DEE0000000000000000000000000000000000032 +:10DEF0000000000000000000000000000000000022 +:10DF00000000000000000000000000000000000011 +:10DF10000000000000000000000000000000000001 +:10DF200000000000000000000000000000000000F1 +:10DF300000000000000000000000000000000000E1 +:10DF400000000000000000000000000000000000D1 +:10DF500000000000000000000000000000000000C1 +:10DF600000000000000000000000000000000000B1 +:10DF700000000000000000000000000000000000A1 +:10DF80000000000000000000000000000000000091 +:10DF90000000000000000000000000000000000081 +:10DFA0000000000000000000000000000000000071 +:10DFB0000000000000000000000000000000000061 +:10DFC0000000000000000000000000000000000051 +:10DFD0000000000000000000000000000000000041 +:10DFE0000000000000000000000000000000000031 +:10DFF0000000000000000000000000000000000021 +:10E000000000000000000000000000000000000010 +:10E010000000000000000000000000000000000000 +:10E0200000000000000000000000000000000000F0 +:10E0300000000000000000000000000000000000E0 +:10E0400000000000000000000000000000000000D0 +:10E0500000000000000000000000000000000000C0 +:10E0600000000000000000000000000000000000B0 +:10E0700000000000000000000000000000000000A0 +:10E080000000000000000000000000000000000090 +:10E090000000000000000000000000000000000080 +:10E0A0000000000000000000000000000000000070 +:10E0B0000000000000000000000000000000000060 +:10E0C0000000000000000000000000000000000050 +:10E0D0000000000000000000000000000000000040 +:10E0E0000000000000000000000000000000000030 +:10E0F0000000000000000000000000000000000020 +:10E10000000000000000000000000000000000000F +:10E1100000000000000000000000000000000000FF +:10E1200000000000000000000000000000000000EF +:10E1300000000000000000000000000000000000DF +:10E1400000000000000000000000000000000000CF +:10E1500000000000000000000000000000000000BF +:10E1600000000000000000000000000000000000AF +:10E17000000000000000000000000000000000009F +:10E18000000000000000000000000000000000008F +:10E19000000000000000000000000000000000007F +:10E1A000000000000000000000000000000000006F +:10E1B000000000000000000000000000000000005F +:10E1C000000000000000000000000000000000004F +:10E1D000000000000000000000000000000000003F +:10E1E000000000000000000000000000000000002F +:10E1F000000000000000000000000000000000809F +:10E20000000000000000000000000000000000000E +:10E2100000000000000000000000000000000000FE +:10E220000000000A000000000000000000000000E4 +:10E2300010000003000000000000000D0000000DB1 +:10E240003C020801244295C03C030801246397FC6A +:10E25000AC4000000043202B1480FFFD244200044A +:10E260003C1D080037BD9FFC03A0F0213C100800B6 +:10E27000261032103C1C0801279C95C00E0012BECF +:10E28000000000000000000D3C02800030A5FFFFF0 +:10E2900030C600FF344301803C0880008D0901B87E +:10E2A0000520FFFE00000000AC6400002404000212 +:10E2B000A4650008A066000AA064000BAC67001803 +:10E2C0003C03100003E00008AD0301B83C0560000A +:10E2D0008CA24FF80440FFFE00000000ACA44FC029 +:10E2E0003C0310003C040200ACA44FC403E000084F +:10E2F000ACA34FF89486000C00A050212488001491 +:10E3000000062B0200051080004448210109182B4B +:10E310001060001100000000910300002C6400094F +:10E320005080000991190001000360803C0D080134 +:10E3300025AD9258018D58218D67000000E000083E +:10E340000000000091190001011940210109302B42 +:10E3500054C0FFF29103000003E000080000102108 +:10E360000A000CCC25080001910F0001240E000AC0 +:10E3700015EE00400128C8232F38000A1700003D81 +:10E38000250D00028D580000250F0006370E0100F4 +:10E39000AD4E0000910C000291AB000191A400026F +:10E3A00091A60003000C2E00000B3C0000A71025D6 +:10E3B00000041A000043C8250326C025AD580004F8 +:10E3C000910E000691ED000191E7000291E5000336 +:10E3D000000E5E00000D6400016C30250007220075 +:10E3E00000C41025004518252508000A0A000CCC99 +:10E3F000AD430008910F000125040002240800022B +:10E4000055E80001012020210A000CCC00804021A9 +:10E41000910C0001240B0003158B00160000000076 +:10E420008D580000910E000225080003370D0008EA +:10E43000A14E00100A000CCCAD4D00009119000156 +:10E44000240F0004172F000B0000000091070002AA +:10E45000910400038D43000000072A0000A410254A +:10E460003466000425080004AD42000C0A000CCC00 +:10E47000AD46000003E000082402000127BDFFE8CC +:10E48000AFBF0014AFB000100E00164E0080802108 +:10E490003C0480083485008090A600052403FFFE1C +:10E4A0000200202100C310248FBF00148FB0001081 +:10E4B000A0A200050A00165827BD001827BDFFE8D6 +:10E4C000AFB00010AFBF00140E000FD40080802149 +:10E4D0003C06800834C5008090A40000240200504F +:10E4E000308300FF106200073C09800002002021F9 +:10E4F0008FBF00148FB00010AD2001800A00108F74 +:10E5000027BD0018240801003C07800002002021DC +:10E510008FBF00148FB00010ACE801800A00108F8C +:10E5200027BD001827BDFF783C058008AFBE0080DE +:10E53000AFB7007CAFB3006CAFB10064AFBF008475 +:10E54000AFB60078AFB50074AFB40070AFB200687A +:10E55000AFB0006034A600803C0580008CB201287A +:10E5600090C400098CA701043C020001309100FF17 +:10E5700000E218240000B8210000F021106000071C +:10E58000000098213C0908008D2931F02413000176 +:10E59000252800013C010800AC2831F0ACA0008423 +:10E5A00090CC0005000C5827316A0001154000721C +:10E5B000AFA0005090CD00002406002031A400FF41 +:10E5C00010860018240E0050108E009300000000EA +:10E5D0003C1008008E1000DC260F00013C010800F2 +:10E5E000AC2F00DC0E0016C7000000000040182110 +:10E5F0008FBF00848FBE00808FB7007C8FB60078FD +:10E600008FB500748FB400708FB3006C8FB2006848 +:10E610008FB100648FB000600060102103E000083B +:10E6200027BD00880000000D3C1F8000AFA0003017 +:10E6300097E501168FE201043C04002030B9FFFF8A +:10E64000004438240007182B00033140AFA60030E7 +:10E650008FF5010437F80C003C1600400338802188 +:10E6600002B6A02434C40040128000479215000D69 +:10E6700032A800201500000234860080008030217E +:10E6800014C0009FAFA600303C0D800835A6008066 +:10E6900090CC0008318B0040516000063C06800899 +:10E6A000240E0004122E00A8240F0012122F003294 +:10E6B0003C06800834C401003C0280009447011AE3 +:10E6C0009619000E909F00088E18000830E3FFFF97 +:10E6D00003F9B00432B40004AFB6005CAFA3005835 +:10E6E0008E1600041280002EAFB8005434C3008090 +:10E6F000906800083105004014A0002500000000CB +:10E700008C70005002D090230640000500000000ED +:10E710008C71003402D1A82306A201678EE20008A2 +:10E72000126000063C1280003C1508008EB531F4E2 +:10E7300026B600013C010800AC3631F4AE4000447E +:10E74000240300018FBF00848FBE00808FB7007C40 +:10E750008FB600788FB500748FB400708FB3006CE3 +:10E760008FB200688FB100648FB00060006010212C +:10E7700003E0000827BD00880E000D2800002021BE +:10E780000A000D75004018210A000D9500C02021D7 +:10E790000E00171702C020211440FFE10000000006 +:10E7A0003C0B8008356400808C8A003402CA482300 +:10E7B0000520001D000000003C1E08008FDE310017 +:10E7C00027D700013C010800AC3731001260000679 +:10E7D000024020213C1408008E9431F42690000160 +:10E7E0003C010800AC3031F40E00164E3C1E80088F +:10E7F00037CD008091B700250240202136EE00047D +:10E800000E001658A1AE00250E000CAC02402021CF +:10E810000A000DCA240300013C17080126F796C020 +:10E820000A000D843C1F80008C86003002C66023E5 +:10E830001980000C2419000C908F004F3C14080024 +:10E840008E94310032B500FC35ED0001268E0001BA +:10E850003C010800AC2E3100A08D004FAFA0005845 +:10E860002419000CAFB900308C9800300316A02397 +:10E870001A80010B8FA300580074F82A17E0FFD309 +:10E88000000000001074002A8FA5005802D4B021A7 +:10E8900000B410233044FFFFAFA4005832A8000298 +:10E8A0001100002E32AB00103C15800836B00080FD +:10E8B0009216000832D30040526000FB8EE200083E +:10E8C0000E00164E02402021240A0018A20A000958 +:10E8D000921100052409FFFE024020210229902404 +:10E8E0000E001658A2120005240400390000282149 +:10E8F0000E0016F2240600180A000DCA24030001B7 +:10E9000092FE000C3C0A800835490080001EBB00C6 +:10E910008D27003836F10081024020213225F08118 +:10E920000E000C9B30C600FF0A000DC10000000065 +:10E930003AA7000130E300011460FFA402D4B02123 +:10E940000A000E1D00000000024020210E001734B6 +:10E95000020028210A000D75004018211160FF7087 +:10E960003C0F80083C0D800835EE00808DC40038D7 +:10E970008FA300548DA60004006660231D80FF68ED +:10E98000000000000064C02307020001AFA400548F +:10E990003C1F08008FFF31E433F9000113200015FC +:10E9A0008FAC00583C07800094E3011A10600012FD +:10E9B0003C0680080E00216A024020213C03080129 +:10E9C000906396F13064000214800145000000005D +:10E9D000306C0004118000078FAC0058306600FBDB +:10E9E0003C010801A02696F132B500FCAFA000580A +:10E9F0008FAC00583C06800834D30080AFB40018B8 +:10EA0000AFB60010AFAC00143C088000950B01209D +:10EA10008E6F0030966A005C8FA3005C8FBF003061 +:10EA20003169FFFF3144FFFF8FAE005401341021E4 +:10EA3000350540000064382B0045C82103E7C02598 +:10EA4000AFB90020AFAF0028AFB80030AFAF00249F +:10EA5000AFA0002CAFAE0034926D000831B40008B6 +:10EA6000168000BB020020218EE200040040F8095D +:10EA700027A400108FAF003031F300025660000170 +:10EA800032B500FE3C048008349F008093F90008F2 +:10EA900033380040530000138FA400248C850004F9 +:10EAA0008FA7005410A700D52404001432B0000131 +:10EAB0001200000C8FA400242414000C1234011A3C +:10EAC0002A2D000D11A001022413000E240E000AAD +:10EAD000522E0001241E00088FAF002425E40001FF +:10EAE000AFA400248FAA00143C0B80083565008079 +:10EAF000008A48218CB10030ACA9003090A4004EAF +:10EB00008CA700303408FFFF0088180400E3F821C8 +:10EB1000ACBF00348FA600308FB900548FB8005CB2 +:10EB200030C200081040000B033898218CAC002044 +:10EB3000119300D330C600FF92EE000C8FA7003473 +:10EB400002402021000E6B0035B400800E000C9BAB +:10EB50003285F0803C028008345000808E0F0030F7 +:10EB600001F1302318C00097264800803C070800B8 +:10EB70008CE731E42404FF80010418243118007F5D +:10EB80003C1F80003C19800430F10001AFE300908D +:10EB900012200006031928213C030801906396F116 +:10EBA00030690008152000C6306A00F73C10800864 +:10EBB00036040080908C004F318B000115600042BC +:10EBC000000000003C0608008CC6319830CE0010D2 +:10EBD00051C0004230F9000190AF006B55E0003F9A +:10EBE00030F9000124180001A0B8006B3C1180002E +:10EBF0009622007A24470064A48700123C0D800806 +:10EC000035A5008090B40008329000401600000442 +:10EC10003C03800832AE000115C0008B00000000EC +:10EC2000346400808C86002010D3000A3463010015 +:10EC30008C67000002C7782319E000978FBF00544B +:10EC4000AC93002024130001AC760000AFB3005059 +:10EC5000AC7F000417C0004E000000008FA90050D8 +:10EC60001520000B000000003C030801906396F1A2 +:10EC7000306A00011140002E8FAB0058306400FE56 +:10EC80003C010801A02496F10A000D75000018212E +:10EC90000E000CAC024020210A000F1300000000FF +:10ECA0000A000E200000A0210040F80924040017EB +:10ECB0000A000DCA240300010040F80924040016CC +:10ECC0000A000DCA240300019094004F240DFFFE9A +:10ECD000028D2824A085004F30F900011320000682 +:10ECE0003C0480083C030801906396F1307F0010DB +:10ECF00017E00051306800EF34900080240A0001D2 +:10ED0000024020210E00164EA60A00129203002592 +:10ED100024090001AFA90050346200010240202103 +:10ED20000E001658A20200250A000EF93C0D8008BC +:10ED30001160FE83000018218FA5003030AC000464 +:10ED40001180FE2C8FBF00840A000DCB240300012C +:10ED500027A500380E000CB6AFA000385440FF4382 +:10ED60008EE200048FB40038329001005200FF3F61 +:10ED70008EE200048FA3003C8E6E0058006E682364 +:10ED800005A3FF39AE6300580A000E948EE200041A +:10ED90000E00164E024020213C038008346800809B +:10EDA000024020210E001658A11E000903C0302188 +:10EDB000240400370E0016F2000028210A000F116B +:10EDC0008FA900508FAB00185960FF8D3C0D800853 +:10EDD0000E00164E02402021920C00252405000151 +:10EDE000AFA5005035820004024020210E001658C5 +:10EDF000A20200250A000EF93C0D800812240059D9 +:10EE00002A2300151060004D240900162408000C68 +:10EE10005628FF2732B000013C0A8008914C001BA5 +:10EE20002406FFBD241E000E01865824A14B001BA2 +:10EE30000A000EA532B000013C010801A02896F19D +:10EE40000A000EF93C0D80088CB500308EFE0008DB +:10EE50002404001826B6000103C0F809ACB600303F +:10EE60003C030801906396F13077000116E0FF81C2 +:10EE7000306A00018FB200300A000D753243000481 +:10EE80003C1080009605011A50A0FF2B34C60010DC +:10EE90000A000EC892EE000C8C6200001456FF6D42 +:10EEA000000000008C7800048FB9005403388823D8 +:10EEB0000621FF638FBF00540A000F0E0000000000 +:10EEC0003C010801A02A96F10A000F3030F9000138 +:10EED0001633FF028FAF00240A000EB0241E00106C +:10EEE0000E00164E024020213C0B80083568008041 +:10EEF00091090025240A0001AFAA0050353300040F +:10EF0000024020210E001658A11300253C050801DF +:10EF100090A596F130A200FD3C010801A02296F1D7 +:10EF20000A000E6D004018212411000E53D1FEEA94 +:10EF3000241E00100A000EAF241E00165629FEDC07 +:10EF400032B000013C0A8008914C001B2406FFBD32 +:10EF5000241E001001865824A14B001B0A000EA598 +:10EF600032B000010A000EA4241E00123C038000EF +:10EF70008C6201B80440FFFE24040800AC6401B8B0 +:10EF800003E000080000000030A5FFFF30C6FFFFCF +:10EF90003C0780008CE201B80440FFFE34EA0180A7 +:10EFA000AD440000ACE400203C0480089483004899 +:10EFB0003068FFFF11000016AF88000824AB001274 +:10EFC000010B482B512000133C04800034EF01005A +:10EFD00095EE00208F890000240D001A31CCFFFF30 +:10EFE00031274000A14D000B10E000362583FFFEC5 +:10EFF0000103C02B170000348F9900048F88000490 +:10F00000A5430014350700010A001003AF87000470 +:10F010003C04800024030003348201808F890000B7 +:10F020008F870004A043000B3C088000350C018052 +:10F03000A585000EA585001A8F85000C30EB800099 +:10F04000A5890010AD850028A58600081160000F75 +:10F050008F85001435190100972A00163158FFFCDE +:10F06000270F000401E870218DCD400031A6FFFF7D +:10F0700014C000072403BFFF3C02FFFF34487FFF9A +:10F0800000E83824AF8700048F8500142403BFFFF5 +:10F090003C04800000E3582434830180A46B0026E4 +:10F0A000AC69002C10A0000300054C02A465001000 +:10F0B000A46900263C071000AC8701B803E00008F3 +:10F0C000000000008F990004240AFFFE032A382460 +:10F0D0000A001003AF87000427BDFFE88FA20028B5 +:10F0E00030A5FFFF30C6FFFFAFBF0010AF87000C99 +:10F0F000AF820014AF8000040E000FDBAF80000071 +:10F100008FBF001027BD001803E00008AF80001477 +:10F110003C06800034C4007034C701008C8A0000B3 +:10F1200090E500128F84000027BDFFF030A300FFA0 +:10F13000000318823082400010400037246500032D +:10F140000005C8800326C0218F0E4000246F0004F4 +:10F15000000F6880AFAE000001A660218D8B4000DB +:10F16000AFAB000494E900163128FFFC01063821FA +:10F170008CE64000AFA600088FA9000800003021EF +:10F18000000028213C07080024E701000A0010675E +:10F19000240800089059000024A500012CAC000CA4 +:10F1A0000079C0210018788001E770218DCD000022 +:10F1B0001180000600CD302603A5102114A8FFF50C +:10F1C00000051A005520FFF4905900003C0480000F +:10F1D000348700703C0508008CA531048CE30000E6 +:10F1E0002CA2002010400009006A38230005488046 +:10F1F0003C0B0800256B3108012B402124AA00019B +:10F20000AD0700003C010800AC2A310400C0102109 +:10F2100003E0000827BD0010308220001040000BE2 +:10F2200000055880016648218D24400024680004B0 +:10F2300000083880AFA4000000E618218C6540006B +:10F24000AFA000080A001057AFA500040000000D91 +:10F250000A0010588FA9000827BDFFE03C07800076 +:10F2600034E60100AFBF001CAFB20018AFB100140C +:10F27000AFB0001094C5000E8F87000030A4FFFFD0 +:10F280002483000430E2400010400010AF830028C7 +:10F290003C09002000E940241100000D30EC800002 +:10F2A0008F8A0004240BBFFF00EB38243543100085 +:10F2B000AF87000030F220001640000B3C1900041C +:10F2C000241FFFBF0A0010B7007F102430EC80001D +:10F2D000158000423C0E002030F220001240FFF862 +:10F2E0008F8300043C19000400F9C0241300FFF5CB +:10F2F000241FFFBF34620040AF82000430E20100EF +:10F300001040001130F010008F83002C10600006B8 +:10F310003C0F80003C05002000E52024148000C044 +:10F320003C0800043C0F800035EE010095CD001E26 +:10F3300095CC001C31AAFFFF000C5C00014B482556 +:10F34000AF89000C30F010001200000824110001F9 +:10F3500030F100201620008B3C18100000F890249B +:10F36000164000823C040C002411000130E801002A +:10F370001500000B3C0900018F85000430A94000F6 +:10F38000152000073C0900013C0C1F0100EC58242B +:10F390003C0A1000116A01183C1080003C09000171 +:10F3A00000E9302410C000173C0B10003C18080086 +:10F3B0008F1800243307000214E0014024030001E9 +:10F3C0008FBF001C8FB200188FB100148FB00010D7 +:10F3D0000060102103E0000827BD002000EE682433 +:10F3E00011A0FFBE30F220008F8F00043C11FFFF00 +:10F3F00036307FFF00F0382435E380000A0010A685 +:10F40000AF87000000EB102450400065AF8000245F +:10F410008F8C002C3C0D0F0000ED18241580008807 +:10F42000AF83001030E8010011000086938F0010B8 +:10F430003C0A0200106A00833C1280003650010032 +:10F44000920500139789002A3626000230AF00FF8C +:10F4500025EE0004000E19C03C0480008C9801B811 +:10F460000700FFFE34880180AD0300003C198008CE +:10F47000AC830020973100483225FFFF10A0015CCB +:10F48000AF8500082523001200A3F82B53E0015993 +:10F490008F850004348D010095AC00202402001AF1 +:10F4A00030E44000318BFFFFA102000B108001927D +:10F4B0002563FFFE00A3502B154001908F8F0004A1 +:10F4C000A50300148F88000435050001AF850004F2 +:10F4D0003C08800035190180A729000EA729001AD1 +:10F4E0008F89000C30B18000A7270010AF290028B9 +:10F4F000A72600081220000E3C04800035020100FF +:10F50000944C0016318BFFFC256400040088182100 +:10F510008C7F400033E6FFFF14C000053C048000F0 +:10F520003C0AFFFF354D7FFF00AD2824AF85000466 +:10F53000240EBFFF00AE402434850180A4A800261D +:10F54000ACA7002C3C071000AC8701B800001821C4 +:10F550008FBF001C8FB200188FB100148FB0001045 +:10F560000060102103E0000827BD00203C020BFFD3 +:10F5700000E41824345FFFFF03E3C82B5320FF7B14 +:10F58000241100013C0608008CC6002C24C5000193 +:10F590003C010800AC25002C0A0010D42411000501 +:10F5A0008F85002410A0002FAF80001090A30000D2 +:10F5B000146000792419000310A0002A30E601002D +:10F5C00010C000CC8F860010241F000210DF00C97D +:10F5D0008F8B000C3C0708008CE7003824E4FFFF09 +:10F5E00014E0000201641824000018213C0D0800FA +:10F5F00025AD0038006D1021904C00048F85002847 +:10F6000025830004000321C030A5FFFF3626000239 +:10F610000E000FDB000000000A00114D0000182151 +:10F6200000E8302414C0FF403C0F80000E00103D65 +:10F63000000000008F8700000A0010CAAF82000C93 +:10F64000938F00103C18080127189640000F90C0B7 +:10F6500002588021AF9000248F85002414A0FFD38E +:10F66000AF8F00103C0480008C86400030C5010044 +:10F6700010A000BC322300043C0C08008D8C002438 +:10F6800024120004106000C23190000D3C04800080 +:10F690008C8D40003402FFFF11A201003231FFFBCC +:10F6A0008C884000310A01005540000124110010EF +:10F6B00030EE080011C000BE2419FFFB8F9800280F +:10F6C0002F0F03EF51E000010219802430E90100FF +:10F6D00011200014320800018F87002C14E000FB79 +:10F6E0008F8C000C3C05800034AB0100917F00132F +:10F6F00033E300FF246A00042403FFFE0203802496 +:10F70000000A21C012000002023230253226FFFF1B +:10F710000E000FDB9785002A1200FF290000182138 +:10F72000320800011100000D32180004240E0001FF +:10F73000120E0002023230253226FFFF9785002A82 +:10F740000E000FDB00002021240FFFFE020F80249B +:10F750001200FF1B00001821321800045300FF188C +:10F760002403000102323025241200045612000145 +:10F770003226FFFF9785002A0E000FDB24040100CC +:10F780002419FFFB021988241220FF0D0000182104 +:10F790000A0010E9240300011079009C00003021C8 +:10F7A00090AD00012402000211A200BE30EA004028 +:10F7B00090B90001241800011338007F30E900409F +:10F7C0008CA600049785002A00C020210E000FDBC4 +:10F7D0003626000200004021010018218FBF001CC6 +:10F7E0008FB200188FB100148FB00010006010218C +:10F7F00003E0000827BD0020360F010095EE000C45 +:10F8000031CD020015A0FEE63C0900013C1880083D +:10F81000971200489789002A362600023248FFFFD7 +:10F82000AF8800083C0380008C7101B80620FFFE01 +:10F83000346A0180AD4000001100008E3C0F800052 +:10F84000253F0012011FC82B1320008B240E00033C +:10F85000346C0100958B00202402001A30E4400033 +:10F860003163FFFFA142000B108000A72463FFFE5D +:10F870000103682B15A000A52408FFFE34A5000194 +:10F88000A5430014AF8500043C0480002412BFFF90 +:10F8900000B2802434850180A4A9000EA4A9001A16 +:10F8A000A4A60008A4B00026A4A700103C071000DE +:10F8B000AC8701B80A00114D000018213C038000FC +:10F8C00034640100949F000E3C1908008F3900D861 +:10F8D0002404008033E5FFFF273100013C010800CC +:10F8E000AC3100D80E000FDB240600030A00114DD6 +:10F8F00000001821240A000210CA00598F85002830 +:10F900003C0308008C6300D0240E0001106E005EE2 +:10F910002CCF000C24D2FFFC2E5000041600002136 +:10F9200000002021241800021078001B2CD9000CA4 +:10F9300024DFFFF82FE900041520FF330000202109 +:10F9400030EB020051600004000621C054C00022C8 +:10F9500030A5FFFF000621C030A5FFFF0A00117D82 +:10F96000362600023C0908008D29002431300001B0 +:10F970005200FEF7000018219785002A3626000263 +:10F980000E000FDB000020210A00114D000018219D +:10F990000A00119C241200021320FFE624DFFFF866 +:10F9A0000000202130A5FFFF0A00117D362600024D +:10F9B0000A0011AC021980245120FF828CA6000499 +:10F9C0003C05080190A5964110A0FF7E2408000187 +:10F9D0000A0011F0010018210E000FDB3226000191 +:10F9E0008F8600108F8500280A00124F000621C064 +:10F9F0008F8500043C18800024120003371001801A +:10FA0000A212000B0A00112E3C08800090A30001F6 +:10FA1000241100011071FF70240800012409000264 +:10FA20005069000430E60040240800010A0011F08B +:10FA30000100182150C0FFFD240800013C0C80008B +:10FA4000358B01009563001094A40002307FFFFF06 +:10FA5000509FFF62010018210A001284240800014F +:10FA60002CA803EF1100FE56240300010A001239EE +:10FA700000000000240E000335EA0180A14E000BB7 +:10FA80000A00121C3C04800011E0FFA2000621C005 +:10FA900030A5FFFF0A00117D362600020A0011A5DD +:10FAA000241100201140FFC63C1280003650010096 +:10FAB000960F001094AE000231E80FFF15C8FFC08A +:10FAC000000000000A0011E690B900013C060800A1 +:10FAD0008CC6003824C4FFFF14C00002018418241F +:10FAE000000018213C0D080025AD0038006D1021E4 +:10FAF0000A0011B6904300048F8F0004240EFFFE0D +:10FB00000A00112C01EE28242408FFFE0A00121A14 +:10FB100000A8282427BDFFC8AFB00010AFBF003435 +:10FB20003C10600CAFBE0030AFB7002CAFB6002861 +:10FB3000AFB50024AFB40020AFB3001CAFB20018C3 +:10FB4000AFB100148E0E5000240FFF7F3C068000E2 +:10FB500001CF682435AC380C240B0003AE0C5000E8 +:10FB6000ACCB00083C010800AC2000200E001819A6 +:10FB7000000000003C0A0010354980513C06601628 +:10FB8000AE09537C8CC700003C0860148D0500A0B2 +:10FB90003C03FFFF00E320243C02535300051FC237 +:10FBA0001482000634C57C000003A08002869821E0 +:10FBB0008E7200043C116000025128218CBF007C31 +:10FBC0008CA200783C1E600037C420203C05080150 +:10FBD00024A59288AF820018AF9F001C0E0016DD8E +:10FBE0002406000A3C190001273996403C01080010 +:10FBF000AC3931DC0E0020DDAF8000148FD708084F +:10FC00002418FFF03C15570902F8B02412D502F56C +:10FC100024040001AF80002C3C1480003697018042 +:10FC20003C1E080127DE9644369301008E900000AA +:10FC30003205000310A0FFFD3207000110E000882C +:10FC4000320600028E7100283C048000AE91002034 +:10FC50008E6500048E66000000A0382100C040219F +:10FC60008C8301B80460FFFE3C0B0010240A0800DE +:10FC700000AB4824AC8A01B8552000E0240BBFFF3C +:10FC80009675000E3C1208008E52002030AC4000E9 +:10FC900032AFFFFF264E000125ED00043C010800B5 +:10FCA000AC2E0020118000E8AF8D00283C18002009 +:10FCB00000B8B02412C000E530B980002408BFFFAE +:10FCC00000A8382434C81000AF87000030E62000B8 +:10FCD00010C000E92409FFBF3C03000400E328240E +:10FCE00010A00002010910243502004030EA010092 +:10FCF00011400010AF8200048F8B002C11600007B0 +:10FD00003C0D002000ED6024118000043C0F000435 +:10FD100000EF702411C00239000000009668001E38 +:10FD20009678001C3115FFFF0018B40002B690252C +:10FD3000AF92000C30F910001320001324150001BD +:10FD400030FF002017E0000A3C04100000E41024FB +:10FD50001040000D3C0A0C003C090BFF00EA18247F +:10FD60003525FFFF00A3302B10C0000830ED010047 +:10FD70003C0C08008D8C002C24150005258B0001FF +:10FD80003C010800AC2B002C30ED010015A0000B4D +:10FD90003C0500018F85000430AE400055C00007CF +:10FDA0003C0500013C161F0100F690243C0F10009A +:10FDB000124F01CE000000003C05000100E5302498 +:10FDC00010C000AF3C0C10003C1F08008FFF002447 +:10FDD00033E90002152000712403000100601021A6 +:10FDE000104000083C0680003C08800035180100E7 +:10FDF0008F0F00243C056020ACAF00140000000011 +:10FE00003C0680003C194000ACD9013800000000DD +:10FE10005220001332060002262B0140262C0080BF +:10FE2000240EFF80016E2024018E6824000D1940ED +:10FE3000318A007F0004A9403172007F3C16200007 +:10FE400036C20002006A482502B2382500E2882541 +:10FE50000122F825ACDF0830ACD1083032060002B0 +:10FE600010C0FF723C188000370501408CA80000CC +:10FE700024100040AF08002090AF000831E300706C +:10FE8000107000D428790041532000082405006038 +:10FE9000241100201071000E3C0A40003C09800033 +:10FEA000AD2A01780A001304000000001465FFFB6E +:10FEB0003C0A40000E001FFA000000003C0A40000F +:10FEC0003C098000AD2A01780A00130400000000FC +:10FED00090A90009241F00048CA70000312800FF0E +:10FEE000111F01B22503FFFA2C7200061240001404 +:10FEF0003C0680008CA9000494A4000A310500FF90 +:10FF000000095E022D6A00083086FFFF15400002DE +:10FF10002567000424070003240C000910AC01FA33 +:10FF200028AD000A11A001DE2410000A240E0008EA +:10FF300010AE0028000731C000C038213C06800008 +:10FF40008CD501B806A0FFFE34D20180AE47000078 +:10FF500034CB0140916E0008240300023C0A4000AB +:10FF600031C400FF00046A0001A86025A64C000807 +:10FF7000A243000B9562000A3C0810003C09800077 +:10FF8000A64200108D670004AE470024ACC801B83B +:10FF9000AD2A01780A001304000000003C0A80002A +:10FFA000354401009483000E3C0208008C4200D8C6 +:10FFB000240400803065FFFF245500013C01080047 +:10FFC000AC3500D80E000FDB240600030A001370C6 +:10FFD000000018210009320230D900FF2418000166 +:10FFE0001738FFD5000731C08F910020262200016D +:10FFF000AF8200200A0013C800C0382100CB2024A3 +:020000021000EC +:10000000AF85000010800008AF860004240D87FF34 +:1000100000CD6024158000083C0E006000AE302446 +:1000200010C00005000000000E000D42000000009E +:100030000A001371000000000E0016050000000009 +:100040000A0013710000000030B980005320FF1F28 +:10005000AF8500003C02002000A2F82453E0FF1B03 +:10006000AF8500003C07FFFF34E47FFF00A4382485 +:100070000A00132B34C880000A001334010910242D +:1000800000EC58245160005AAF8000248F8D002C62 +:100090003C0E0F0000EE182415A00075AF83001071 +:1000A00030EF010011E00073939800103C12020041 +:1000B000107200703C06800034D9010093280013B0 +:1000C0009789002A36A60002311800FF271600047F +:1000D000001619C03C0480008C8501B804A0FFFE06 +:1000E00034880180AD0300003C158008AC830020FB +:1000F00096BF004833E5FFFF10A001BCAF850008A4 +:100100002523001200A3102B504001B98F85000455 +:10011000348D010095AC0020240B001A30E440001F +:10012000318AFFFFA10B000B108001BA2543FFFEAF +:1001300000A3702B15C001B88F9600048F8F0004A8 +:10014000A503001435E50001AF8500043C088000DC +:1001500035150180A6A9000EA6A9001A8F89000CEA +:1001600030BF8000A6A70010AEA90028A6A60008F0 +:1001700013E0000F3C0F8000350C0100958B00163A +:10018000316AFFFC25440004008818218C6240007D +:100190003046FFFF14C000072416BFFF3C0EFFFFD0 +:1001A00035CD7FFF00AD2824AF8500043C0F8000D3 +:1001B0002416BFFF00B6902435E50180A4B20026C6 +:1001C000ACA7002C3C071000ADE701B80A00137083 +:1001D000000018210E00165D000000003C0A4000DF +:1001E0003C098000AD2A01780A00130400000000D9 +:1001F0008F85002410A00027AF80001090A300007E +:10020000106000742409000310690101000030210E +:1002100090AE0001240D000211CD014230EF0040EC +:1002200090A90001241F0001113F000930E20040A5 +:100230008CA600049785002A00C020210E000FDB49 +:1002400036A60002000040210A00137001001821A8 +:100250005040FFF88CA600043C07080190E7964147 +:1002600010E0FFF4240800010A00137001001821B7 +:10027000939800103C1F080127FF96400018C8C043 +:10028000033F4021AF8800248F85002414A0FFDBAA +:10029000AF9800103C0480008C86400030C50100FF +:1002A00010A0008732AB00043C0C08008D8C0024A9 +:1002B00024160004156000033192000D241600027C +:1002C0003C0480008C8E4000340DFFFF11CD0113E3 +:1002D00032B5FFFB8C984000330F010055E0000160 +:1002E0002415001030E80800110000382409FFFB35 +:1002F0008F9F00282FF903EF53200001024990241B +:1003000030E2010010400014325F00018F87002CA2 +:1003100014E0010E8F8C000C3C0480003486010038 +:1003200090C5001330AA00FF25430004000321C03C +:100330002419FFFE025990241240000202B6302513 +:1003400032A6FFFF0E000FDB9785002A1240FEA3A6 +:1003500000001821325F000113E0000D3247000455 +:10036000240900011249000202B6302532A6FFFF1F +:100370009785002A0E000FDB000020212402FFFEDB +:10038000024290241240FE950000182132470004DA +:1003900050E0FE922403000102B63025241600042A +:1003A0005656000132A6FFFF9785002A0E000FDB8C +:1003B000240401002403FFFB0243A82412A0FE87AB +:1003C000000018210A001370240300010A0014B968 +:1003D0000249902410A0FFAF30E5010010A00017E3 +:1003E0008F8600102403000210C300148F84000CB9 +:1003F0003C0608008CC6003824CAFFFF14C0000267 +:10040000008A1024000010213C0E080025CE003880 +:10041000004E682191AC00048F850028258B0004D4 +:10042000000B21C030A5FFFF36A600020E000FDB37 +:10043000000000000A00137000001821240F0002C1 +:1004400010CF0088241600013C0308008C6300D004 +:100450001076008D8F85002824D9FFFC2F280004FA +:100460001500006300002021241F0002107F005DA2 +:100470002CC9000C24C3FFF82C6200041440FFE9CF +:100480000000202130EA020051400004000621C093 +:1004900054C0000530A5FFFF000621C030A5FFFFB6 +:1004A0000A00150436A600020E000FDB32A600017A +:1004B0008F8600108F8500280A001520000621C0B5 +:1004C0003C0A08008D4A0024315200015240FE438C +:1004D000000018219785002A36A600020E000FDBC7 +:1004E000000020210A001370000018219668000CFB +:1004F000311802005700FE313C0500013C1F800806 +:1005000097F900489789002A36A600023328FFFF92 +:10051000AF8800083C0380008C7501B806A0FFFE80 +:100520003C04800034820180AC400000110000B621 +:1005300024180003252A0012010A182B106000B2AB +:1005400000000000966F00203C0E8000240D001A71 +:1005500031ECFFFF35CA018030EB4000A14D000BAC +:10056000116000B02583FFFE0103902B164000AE02 +:100570002416FFFE34A50001A5430014AF85000436 +:100580002419BFFF00B94024A6E9000EA6E9001A0D +:10059000A6E60008A6E80026A6E700103C07100023 +:1005A000AE8701B80A001370000018213C048000D7 +:1005B0008C8201B80440FFFE349601802415001C93 +:1005C000AEC70000A2D5000B3C071000AC8701B8F5 +:1005D0003C0A40003C098000AD2A01780A0013045F +:1005E000000000005120FFA424C3FFF800002021D8 +:1005F00030A5FFFF0A00150436A600020E00103DCC +:10060000000000008F8700000A001346AF82000C34 +:1006100090A30001241500011075FF0B24080001B0 +:10062000240600021066000430E2004024080001A5 +:100630000A001370010018215040FFFD240800013A +:100640003C0C8000358B0100956A001094A40002D8 +:100650003143FFFF5083FDE1010018210A00158599 +:10066000240800018F8500282CB203EF1240FDDB27 +:10067000240300013C0308008C6300D02416000111 +:100680001476FF7624D9FFFC2CD8000C1300FF72DF +:10069000000621C030A5FFFF0A00150436A600029F +:1006A00010B00037240F000B14AFFE23000731C039 +:1006B000312600FF00065600000A4E0305220047BF +:1006C00030C6007F0006F8C03C16080126D69640CA +:1006D00003F68021A2000001A20000003C0F600090 +:1006E0008DF918202405000100C588040011302769 +:1006F0000326C024000731C000C03821ADF81820FF +:100700000A0013C8A60000028F850020000731C030 +:1007100024A2FFFF0A0013F6AF8200200A0014B2E1 +:100720002415002011E0FECC3C1980003728010080 +:100730009518001094B6000233120FFF16D2FEC6B1 +:10074000000000000A00148290A900013C0B080080 +:100750008D6B0038256DFFFF15600002018D1024A0 +:10076000000010213C080800250800380048C0217E +:10077000930F000425EE00040A0014C5000E21C0EA +:1007800000065202241F00FF115FFDEB000731C07D +:10079000000A20C03C0E080125CE9640008EA821FC +:1007A000009E602100095C02240D00013C076000EE +:1007B000A2AD0000AD860000A2AB00018CF21820B3 +:1007C00024030001014310040242B025ACF61820B6 +:1007D00000C038210A0013C8A6A900020A0015AA01 +:1007E000AF8000200A0012FFAF84002C8F85000428 +:1007F0003C1980002408000337380180A308000B4F +:100800000A00144D3C088000A2F8000B0A00155A9B +:100810002419BFFF8F9600042412FFFE0A00144B18 +:1008200002D228242416FFFE0A00155800B62824F8 +:100830003C038000346401008C85000030A2003E3F +:100840001440000800000000AC6000488C870000E5 +:1008500030E607C010C0000500000000AC60004C8E +:10086000AC60005003E0000824020001AC600054BA +:10087000AC6000408C880000310438001080FFF923 +:10088000000000002402000103E00008AC60004406 +:100890003C0380008C6201B80440FFFE3467018095 +:1008A000ACE4000024080001ACE00004A4E500086A +:1008B00024050002A0E8000A34640140A0E5000B12 +:1008C0009483000A14C00008A4E30010ACE00024E4 +:1008D0003C07800034E901803C041000AD20002872 +:1008E00003E00008ACE401B88C8600043C0410006E +:1008F000ACE600243C07800034E90180AD200028EC +:1009000003E00008ACE401B83C0680008CC201B8EA +:100910000440FFFE34C7018024090002ACE400005B +:10092000ACE40004A4E50008A0E9000A34C50140D5 +:10093000A0E9000B94A8000A3C041000A4E80010F1 +:10094000ACE000248CA30004ACE3002803E0000822 +:10095000ACC401B83C039000346200010082202541 +:100960003C038000AC6400208C65002004A0FFFEE6 +:100970000000000003E00008000000003C028000CE +:10098000344300010083202503E00008AC4400202C +:1009900027BDFFE03C098000AFBF0018AFB10014D5 +:1009A000AFB00010352801408D10000091040009FF +:1009B0009107000891050008308400FF30E600FF31 +:1009C00000061A002C820081008330251040002A86 +:1009D00030A50080000460803C0D080125AD92B078 +:1009E000018D58218D6A00000140000800000000C0 +:1009F0003C038000346201409445000A14A0001EAC +:100A00008F91FCC09227000530E6000414C0001A44 +:100A1000000000000E00164E02002021922A000560 +:100A200002002021354900040E001658A2290005B5 +:100A30009228000531040004148000020000000028 +:100A40000000000D922D0000240B002031AC00FFAF +:100A5000158B00093C0580008CAE01B805C0FFFE77 +:100A600034B10180AE3000003C0F100024100005AE +:100A7000A230000BACAF01B80000000D8FBF001812 +:100A80008FB100148FB0001003E0000827BD0020D4 +:100A90000200202100C028218FBF00188FB1001450 +:100AA0008FB00010240600010A00161D27BD00208B +:100AB0000000000D0200202100C028218FBF001877 +:100AC0008FB100148FB00010000030210A00161DF5 +:100AD00027BD002014A0FFE8000000000200202134 +:100AE0008FBF00188FB100148FB0001000C02821F4 +:100AF0000A00163B27BD00203C0780008CEE01B8A1 +:100B000005C0FFFE34F00180241F0002A21F000B6D +:100B100034F80140A60600089719000A3C0F10009F +:100B2000A61900108F110004A6110012ACEF01B835 +:100B30000A0016998FBF001827BDFFE8AFBF00104D +:100B40000E000FD4000000003C0280008FBF001098 +:100B500000002021AC4001800A00108F27BD001842 +:100B60003084FFFF30A5FFFF108000070000182130 +:100B7000308200011040000200042042006518216C +:100B80001480FFFB0005284003E0000800601021EE +:100B900010C00007000000008CA2000024C6FFFF68 +:100BA00024A50004AC82000014C0FFFB24840004D0 +:100BB00003E000080000000010A0000824A3FFFFCD +:100BC000AC86000000000000000000002402FFFFCF +:100BD0002463FFFF1462FFFA2484000403E000088A +:100BE000000000003C03800027BDFFF83462018054 +:100BF000AFA20000308C00FF30AD00FF30CE00FF10 +:100C00003C0B80008D6401B80480FFFE00000000F2 +:100C10008FA900008D6801288FAA00008FA700000F +:100C20008FA400002405000124020002A085000A10 +:100C30008FA30000359940003C051000A062000B16 +:100C40008FB800008FAC00008FA600008FAF0000AF +:100C500027BD0008AD280000AD400004AD80002491 +:100C6000ACC00028A4F90008A70D0010A5EE0012E2 +:100C700003E00008AD6501B83C06800827BDFFE829 +:100C800034C50080AFBF001090A7000924020012F5 +:100C900030E300FF1062000B008030218CA8005070 +:100CA00000882023048000088FBF00108CAA003425 +:100CB000240400390000282100CA4823052000052B +:100CC000240600128FBF00102402000103E0000878 +:100CD00027BD00180E0016F2000000008FBF0010A4 +:100CE0002402000103E0000827BD001827BDFFC84B +:100CF000AFB20030AFB00028AFBF0034AFB1002CAE +:100D000000A0802190A5000D30A6001010C000109A +:100D1000008090213C0280088C4400048E0300086F +:100D20001064000C30A7000530A6000510C0009329 +:100D3000240400018FBF00348FB200308FB1002C2B +:100D40008FB000280080102103E0000827BD003884 +:100D500030A7000510E0000F30AB001210C00006F5 +:100D6000240400013C0980088E0800088D25000439 +:100D70005105009C240400388FBF00348FB200302E +:100D80008FB1002C8FB000280080102103E00008F4 +:100D900027BD0038240A0012156AFFE6240400016A +:100DA0000200202127A500100E000CB6AFA00010F5 +:100DB0001440007C3C19800837240080909800087B +:100DC000331100081220000A8FA7001030FF010025 +:100DD00013E000A48FA300148C8600580066102333 +:100DE000044000043C0A8008AC8300588FA7001020 +:100DF0003C0A800835480080910900083124000829 +:100E00001480000224080003000040213C1F8008D9 +:100E100093F1001193F9001237E600808CCC005456 +:100E2000333800FF03087821322D00FF000F708057 +:100E300001AE282100AC582B1160006F00000000AB +:100E400094CA005C8CC900543144FFFF0125102373 +:100E50000082182B14600068000000008CCB005446 +:100E60000165182330EC00041180006C000830800C +:100E70008FA8001C0068102B1040006230ED0004A9 +:100E8000006610232C46008010C00002004088211C +:100E9000241100800E00164E024020213C0D8008D7 +:100EA00035A6008024070001ACC7000C90C80008DC +:100EB0000011484035A70100310C007FA0CC00088C +:100EC0008E05000424AB0001ACCB0030A4D1005C43 +:100ED0008CCA003C9602000E01422021ACC40020C6 +:100EE0008CC3003C0069F821ACDF001C8E190004A3 +:100EF000ACF900008E180008ACF800048FB10010A7 +:100F0000322F000855E0004793A60020A0C0004EF5 +:100F100090D8004E2411FFDFA0F8000890CF000801 +:100F200001F17024A0CE00088E0500083C0B80085B +:100F300035690080AD2500388D6A00148D2200309F +:100F40002419005001422021AD24003491230000D7 +:100F5000307F00FF13F90036264F01000E001658AF +:100F60000240202124040038000028210E0016F23F +:100F70002406000A0A001757240400010E000D2859 +:100F8000000020218FBF00348FB200308FB1002CC1 +:100F90008FB00028004020210080102103E00008CD +:100FA00027BD00388E0E00083C0F800835F0008009 +:100FB000AE0E005402402021AE0000300E00164E4E +:100FC00000000000920D00250240202135AC0020D9 +:100FD0000E001658A20C00250E000CAC0240202179 +:100FE000240400382405008D0E0016F22406001299 +:100FF0000A0017572404000194C5005C0A001792E8 +:1010000030A3FFFF2407021811A0FF9E00E6102363 +:101010008FAE001C0A00179A01C610230A0017970A +:101020002C620218A0E600080A0017C48E0500080A +:101030002406FF8001E6C0243C118000AE38002861 +:101040008E0D000831E7007F3C0E800C00EE602121 +:10105000AD8D00E08E080008AF8C00380A0017D074 +:10106000AD8800E4AC800058908500082403FFF7A9 +:1010700000A33824A08700080A0017758FA7001066 +:101080003C05080024A560A83C04080024846FF4F3 +:101090003C020800244260B0240300063C01080121 +:1010A000AC2596C03C010801AC2496C43C01080163 +:1010B000AC2296C83C010801A02396CC03E00008AE +:1010C0000000000003E00008240200013C02800050 +:1010D000308800FF344701803C0680008CC301B893 +:1010E0000460FFFE000000008CC501282418FF806A +:1010F0003C0D800A24AF010001F8702431EC007F20 +:10110000ACCE0024018D2021ACE50000948B00EAD8 +:101110003509600024080002316AFFFFACEA0004D0 +:1011200024020001A4E90008A0E8000BACE00024C0 +:101130003C071000ACC701B8AF84003803E00008DA +:10114000AF85006C938800488F8900608F820038DB +:1011500030C600FF0109382330E900FF01221821C1 +:1011600030A500FF2468008810C000020124382147 +:101170000080382130E400031480000330AA00030B +:101180001140000D312B000310A0000900001021B8 +:1011900090ED0000244E000131C200FF0045602B9D +:1011A000A10D000024E700011580FFF925080001CA +:1011B00003E00008000000001560FFF300000000DD +:1011C00010A0FFFB000010218CF80000245900043F +:1011D000332200FF0045782BAD18000024E70004FF +:1011E00015E0FFF92508000403E0000800000000F6 +:1011F00093850048938800588F8700600004320070 +:101200003103007F00E5102B30C47F001040000F39 +:10121000006428258F8400383C0980008C8A00EC0B +:10122000AD2A00A43C03800000A35825AC6B00A0AD +:101230008C6C00A00580FFFE000000008C6D00ACEF +:10124000AC8D00EC03E000088C6200A80A00188254 +:101250008F840038938800593C0280000080502120 +:10126000310300FEA383005930ABFFFF30CC00FFF9 +:1012700030E7FFFF344801803C0980008D2401B82D +:101280000480FFFE8F8D006C24180016AD0D000049 +:101290008D2201248F8D0038AD0200048D5900206D +:1012A000A5070008240201C4A119000AA118000B17 +:1012B000952F01208D4E00088D4700049783005C18 +:1012C0008D59002401CF302100C7282100A32023FD +:1012D0002418FFFFA504000CA50B000EA5020010AA +:1012E000A50C0012AD190018AD18002495AF00E848 +:1012F0003C0B10002407FFF731EEFFFFAD0E002876 +:101300008DAC0084AD0C002CAD2B01B88D460020B7 +:1013100000C7282403E00008AD4500208F8800386E +:101320000080582130E7FFFF910900D63C02800081 +:1013300030A5FFFF312400FF00041A00006750258C +:1013400030C600FF344701803C0980008D2C01B875 +:101350000580FFFE8F82006C240F0017ACE20000B6 +:101360008D390124ACF900048D780020A4EA00082E +:10137000241901C4A0F8000AA0EF000B9523012056 +:101380008D6E00088D6D00049784005C01C35021B0 +:10139000014D602101841023A4E2000CA4E5000E9D +:1013A000A4F90010A4E60012ACE000148D7800242B +:1013B000240DFFFFACF800188D0F007CACEF001C73 +:1013C0008D0E00783C0F1000ACEE0020ACED002438 +:1013D000950A00BE240DFFF73146FFFFACE600285A +:1013E000950C00809504008231837FFF0003CA00C2 +:1013F0003082FFFF0322C021ACF8002CAD2F01B8D2 +:10140000950E00828D6A002000AE3021014D282407 +:10141000A506008203E00008AD6500203C028000C4 +:10142000344501803C0480008C8301B80460FFFED9 +:101430008F8A0044240600199549001C3128FFFFBB +:10144000000839C0ACA70000A0A6000B3C051000A6 +:1014500003E00008AC8501B88F87004C0080402174 +:1014600030C400FF3C0680008CC201B80440FFFE7F +:101470008F89006C9383006834996000ACA90000E8 +:10148000A0A300058CE20010240F00022403FFF744 +:10149000A4A20006A4B900088D180020A0B8000A74 +:1014A000A0AF000B8CEE0000ACAE00108CED000481 +:1014B000ACAD00148CEC001CACAC00248CEB002018 +:1014C000ACAB00288CEA002C3C071000ACAA002C26 +:1014D0008D090024ACA90018ACC701B88D05002007 +:1014E00000A3202403E00008AD0400208F8600380C +:1014F00027BDFFE0AFB10014AFBF0018AFB00010C0 +:1015000090C300D430A500FF3062002010400008D6 +:10151000008088218CCB00D02409FFDF256A0001E0 +:10152000ACCA00D090C800D401093824A0C700D4A8 +:1015300014A000403C0C80008F840038908700D4B9 +:101540002418FFBF2406FFEF30E3007FA08300D400 +:10155000979F005C8F8200608F8D003803E2C82364 +:10156000A799005CA5A000BC91AF00D401F870243D +:10157000A1AE00D48F8C0038A18000D78F8A0038AC +:10158000A5400082AD4000EC914500D400A658244F +:10159000A14B00D48F9000348F8400609786005C4C +:1015A0000204282110C0000FAF850034A38000582A +:1015B0003C0780008E2C000894ED01208E2B000447 +:1015C000018D5021014B8021020620233086FFFF30 +:1015D00030C8000F3909000131310001162000091F +:1015E000A3880058938600488FBF00188FB100145D +:1015F0008FB0001027BD0020AF85006403E0000815 +:10160000AF86006000C870238FBF00189386004823 +:101610008FB100148FB0001034EF0C00010F28219F +:1016200027BD0020ACEE0084AF85006403E0000815 +:10163000AF86006035900180020028210E00190F4E +:10164000240600828F840038908600D430C5004084 +:1016500050A0FFBAA38000688F85004C3C06800034 +:101660008CCD01B805A0FFFE8F89006C2408608234 +:1016700024070002AE090000A6080008A207000B1C +:101680008CA300083C0E1000AE0300108CA2000CCE +:10169000AE0200148CBF0014AE1F00188CB90018E5 +:1016A000AE1900248CB80024AE1800288CAF002896 +:1016B000AE0F002CACCE01B80A001948A380006818 +:1016C0008F8A003827BDFFE0AFB10014AFB0001023 +:1016D0008F880060AFBF00189389003C954200BC22 +:1016E00030D100FF0109182B0080802130AC00FFB1 +:1016F0003047FFFF0000582114600003310600FF4F +:1017000001203021010958239783005C0068202BB9 +:101710001480002700000000106800562419000102 +:101720001199006334E708803165FFFF0E0018C08F +:10173000020020218F83006C3C07800034E601808A +:101740003C0580008CAB01B80560FFFE240A001840 +:101750008F840038ACC30000A0CA000B948900BE7F +:101760003C081000A4C90010ACC00030ACA801B8FF +:101770009482008024430001A4830080949F008011 +:101780003C0608008CC6318833EC7FFF1186005E72 +:101790000000000002002021022028218FBF001835 +:1017A0008FB100148FB000100A00193427BD00203B +:1017B000914400D42403FF8000838825A15100D4E4 +:1017C0009784005C3088FFFF51000023938C003C1D +:1017D0008F8500382402EFFF008B782394AE00BC85 +:1017E0000168502B31E900FF01C26824A4AD00BCA0 +:1017F00051400039010058213C1F800037E60100AC +:101800008CD800043C190001031940245500000144 +:1018100034E740008E0A00202403FFFB241100015E +:1018200001432024AE0400201191002D34E78000F4 +:1018300002002021012030210E0018C03165FFFF79 +:101840009787005C8F890060A780005C0127802358 +:10185000AF900060938C003C8F8B00388FBF0018D6 +:101860008FB100148FB0001027BD002003E00008E6 +:10187000A16C00D73C0D800035AA01008D48000402 +:101880003C0900010109282454A0000134E740006C +:101890008E0F00202418FFFB34E7800001F870242D +:1018A00024190001AE0E00201599FF9F34E708802F +:1018B000020020210E00188E3165FFFF020020215A +:1018C000022028218FBF00188FB100148FB00010A4 +:1018D0000A00193427BD00200A0019F7000048212A +:1018E00002002021012030210E00188E3165FFFFFB +:1018F0009787005C8F890060A780005C01278023A8 +:101900000A001A0EAF900060948C0080241F8000A3 +:10191000019F3024A4860080908B0080908F0080EF +:10192000316700FF0007C9C20019C027001871C045 +:1019300031ED007F01AE2825A08500800A0019DF67 +:1019400002002021938500682403000127BDFFE8E1 +:1019500000A330042CA20020AFB00010AFBF0014D1 +:1019600000C01821104000132410FFFE3C0708009F +:101970008CE7319000E610243C088000350501809A +:1019800014400005240600848F890038240A0004CE +:101990002410FFFFA12A00FC0E00190F0000000018 +:1019A000020010218FBF00148FB0001003E0000868 +:1019B00027BD00183C0608008CC631940A001A574F +:1019C00000C310248F87004427BDFFE0AFB200188A +:1019D000AFB10014AFB00010AFBF001C30D000FF9B +:1019E00090E6000D00A088210080902130C5007F86 +:1019F000A0E5000D8F8500388E2300188CA200D042 +:101A00001062002E240A000E0E001A4AA38A0068F3 +:101A10002409FFFF104900222404FFFF5200002088 +:101A2000000020218E2600003C0C001000CC582421 +:101A3000156000393C0E000800CE682455A0003F18 +:101A4000024020213C18000200D880241200001F10 +:101A50003C0A00048F8700448CE200148CE30010E1 +:101A60008CE500140043F82303E5C82B1320000580 +:101A7000024020218E24002C8CF1001010910031A6 +:101A80000240202124020012A38200680E001A4A9C +:101A90002412FFFF105200022404FFFF0000202147 +:101AA0008FBF001C8FB200188FB100148FB00010D0 +:101AB0000080102103E0000827BD002090A800D47A +:101AC000350400200A001A80A0A400D400CA4824CB +:101AD0001520000B8F8B00448F8D00448DAC0010BF +:101AE0001580000B024020218E2E002C51C0FFECEF +:101AF00000002021024020210A001A9B2402001726 +:101B00008D66001050C0FFE6000020210240202119 +:101B10000A001A9B24020011024020212402001511 +:101B20000E001A4AA3820068240FFFFF104FFFDC4B +:101B30002404FFFF0A001A8A8E2600000A001AC138 +:101B4000240200143C08000400C8382450E0FFD4EC +:101B500000002021024020210A001A9B24020013C9 +:101B60008F85003827BDFFD8AFB3001CAFB2001877 +:101B7000AFB10014AFB00010AFBF002090A700D4E9 +:101B80008F90004C2412FFFF34E2004092060000C8 +:101B9000A0A200D48E0300100080982110720006CD +:101BA00030D1003F2408000D0E001A4AA3880068B7 +:101BB000105200252404FFFF8F8A00388E09001878 +:101BC0008D4400D01124000702602021240C000E57 +:101BD0000E001A4AA38C0068240BFFFF104B001A5A +:101BE0002404FFFF24040020122400048F8D0038F9 +:101BF00091AF00D435EE0020A1AE00D48F85005403 +:101C000010A00019000000001224004A8F9800382C +:101C10008F92FCC0971000809651000A5230004805 +:101C20008F9300403C1F08008FFF318C03E5C82BC9 +:101C30001720001E02602021000028210E0019A993 +:101C400024060001000020218FBF00208FB3001C5C +:101C50008FB200188FB100148FB0001000801021D7 +:101C600003E0000827BD00285224002A8E05001436 +:101C70008F840038948A008025490001A48900805F +:101C8000948800803C0208008C42318831077FFF35 +:101C900010E2000E00000000026020210E00193446 +:101CA000240500010A001B0B000020212402002D46 +:101CB0000E001A4AA38200682403FFFF1443FFE1C9 +:101CC0002404FFFF0A001B0C8FBF002094990080A2 +:101CD000241F800024050001033FC024A498008035 +:101CE00090920080908E0080325100FF001181C2DE +:101CF00000107827000F69C031CC007F018D582576 +:101D0000A08B00800E001934026020210A001B0BFA +:101D1000000020212406FFFF54A6FFD68F84003840 +:101D2000026020210E001934240500010A001B0B5B +:101D300000002021026020210A001B252402000A45 +:101D40002404FFFD0A001B0BAF9300608F8800384E +:101D500027BDFFE8AFB00010AFBF0014910A00D458 +:101D60008F87004C00808021354900408CE60010B0 +:101D7000A10900D43C0208008C4231B030C53FFFBD +:101D800000A2182B106000078F850050240DFF80E3 +:101D900090AE000D01AE6024318B00FF156000088D +:101DA0000006C382020020212403000D8FBF00140F +:101DB0008FB0001027BD00180A001A4AA3830068DC +:101DC00033060003240F000254CFFFF70200202146 +:101DD00094A2001C8F85003824190023A4A200E8D7 +:101DE0008CE8000000081E02307F003F13F9003528 +:101DF0003C0A00838CE800188CA600D0110600086D +:101E0000000000002405000E0E001A4AA385006899 +:101E10002407FFFF104700182404FFFF8F850038B8 +:101E200090A900D435240020A0A400D48F8C0044B5 +:101E3000918E000D31CD007FA18D000D8F83005458 +:101E40001060001C020020218F8400508C9800102C +:101E50000303782B11E0000D241900180200202143 +:101E6000A39900680E001A4A2410FFFF10500002C8 +:101E70002404FFFF000020218FBF00148FB000104A +:101E80000080102103E0000827BD00188C86001098 +:101E90008F9F00440200202100C31023AFE20010F6 +:101EA000240500010E0019A9240600010A001B9751 +:101EB000000020210E001934240500010A001B97A0 +:101EC00000002021010A5824156AFFD98F8C004494 +:101ED000A0A600FC0A001B84A386005A30A500FFC0 +:101EE0002406000124A9000100C9102B1040000C99 +:101EF00000004021240A000100A61823308B0001B5 +:101F000024C60001006A3804000420421160000267 +:101F100000C9182B010740251460FFF800A61823FC +:101F200003E000080100102127BDFFD8AFB0001862 +:101F30008F90004CAFB1001CAFBF00202403FFFF07 +:101F40002411002FAFA30010920600002405000802 +:101F500026100001006620260E001BB0308400FF12 +:101F600000021E003C021EDC34466F410A001BD8F2 +:101F70000000102110A00009008018212445000154 +:101F800030A2FFFF2C4500080461FFFA0003204047 +:101F90000086202614A0FFF9008018210E001BB037 +:101FA000240500208FA300102629FFFF313100FFF8 +:101FB00000034202240700FF1627FFE20102182651 +:101FC00000035027AFAA0014AFAA00100000302170 +:101FD00027A8001027A7001400E6782391ED00033E +:101FE00024CE000100C8602131C600FF2CCB0004C4 +:101FF0001560FFF9A18D00008FA200108FBF002097 +:102000008FB1001C8FB0001803E0000827BD002826 +:1020100027BDFFD0AFB3001CAFB00010AFBF00288A +:10202000AFB50024AFB40020AFB20018AFB10014B8 +:102030003C0C80008D880128240FFF803C06800A1C +:1020400025100100250B0080020F68243205007F57 +:10205000016F7024AD8E009000A62821AD8D002464 +:1020600090A600FC3169007F3C0A8004012A1821F7 +:10207000A386005A9067007C00809821AF830030CF +:1020800030E20002AF88006CAF85003800A0182154 +:10209000144000022404003424040030A3840048C7 +:1020A0008C7200DC30D100FF24040004AF92006089 +:1020B00012240004A38000688E7400041680001EA1 +:1020C0003C0880009386005930C7000110E0000FE3 +:1020D0008F9300608CB000848CA800842404FF805F +:1020E000020410240002F940310A007F03EA482567 +:1020F0003C0C2000012C902530CD00FE3C038000DC +:10210000AC720830A38D00598F9300608FBF0028F8 +:102110008FB50024ACB300DC8FB400208FB3001C5B +:102120008FB200188FB100148FB00010240200018C +:1021300003E0000827BD00308E7F000895020120D3 +:102140008E67001003E2C8213326FFFF30D8000F4E +:1021500033150001AF87003416A00058A39800582B +:1021600035090C000309382100D81823AD03008479 +:10217000AF8700648E6A00043148FFFF1100007EC3 +:10218000A78A005C90AC00D42407FF8000EC3024C8 +:1021900030CB00FF1560004B9786005C938E005A91 +:1021A000240D000230D5FFFF11CD02A20000A021B6 +:1021B0008F85006002A5802B160000BC9388004824 +:1021C0003C11800096240120310400FF1485008812 +:1021D0008F8400648F9800343312000356400085CA +:1021E00030A500FF8F900064310C00FF24060034FE +:1021F00011860095AF90004C9204000414800118E1 +:102200008F8E0038A380003C8E0D00048DC800D84E +:102210003C0600FF34CCFFFF01AC30240106182B34 +:1022200014600120AF8600548F8700609798005C8F +:10223000AF8700400307402310C000C7A788005C99 +:102240008F91003030C3000300035823922A007C92 +:102250003171000302261021000A20823092000111 +:102260000012488000492821311FFFFF03E5C82BD9 +:10227000132001208F8800388F8500348F880064F8 +:102280001105025A3C0E3F018E0600003C0C250051 +:1022900000CE682411AC01638F84004C30E500FF50 +:1022A0000E00184A000030218F8800388F870060A8 +:1022B0008F8500340A001DB78F8600540A001C5613 +:1022C000AF87006490A400D400E48024320200FFB1 +:1022D000104000169386005990A6008890AE00D753 +:1022E00024A8008830D4003F2686FFE02CD10020AF +:1022F000A38E003C1220000CAF88004C240B000180 +:1023000000CB20043095001916A0012B3C0680005C +:1023100034CF0002008FC0241700022E3099002015 +:1023200017200234000000009386005930CB0001D2 +:102330001160000F9788005C8CBF00848CA900841A +:10234000240AFF8003EA6024000C19403132007F28 +:10235000007238253C0D200000EDC82530D800FE65 +:102360003C0F8000ADF90830A39800599788005CB5 +:102370001500FF84000000008E630020306200041E +:102380001040FF51938600592404FFFB0064802411 +:102390003C038000AE700020346601808C7301B86D +:1023A0000660FFFE8F98006C347501003C1400013C +:1023B000ACD800008C6B012424076085ACCB0004F2 +:1023C0008EAE000401D488245220000124076083CB +:1023D00024190002A4C700083C0F1000A0D9000B6C +:1023E0003C068000ACCF01B80A001C2B9386005934 +:1023F00030A500FF0E00184A240600018F88006CEB +:102400003C05800034A90900250201889388004812 +:10241000304A0007304B00783C0340802407FF809F +:102420000163C825014980210047F824310C00FFD1 +:1024300024060034ACBF0800AF90004CACB90810C3 +:102440005586FF6E920400048F8400388E11003090 +:10245000908E00D431CD001015A000108F83006045 +:102460002C6F000515E000E400000000909800D4F7 +:102470002465FFFC331200101640000830A400FF52 +:102480008F9F00648F99003413F90004388700018E +:1024900030E20001144001C8000000000E001BC320 +:1024A000000000000A001DF8000000008F84006496 +:1024B00030C500FF0E00184A24060001939800481A +:1024C000240B0034130B00A08F8500388F8600602A +:1024D0009783005C306EFFFF00CE8823AF910060D1 +:1024E000A780005C1280FF90028018212414FFFD59 +:1024F0005474FFA28E6300208E6A00042403FFBF81 +:102500002408FFEF0155F823AE7F000490AC00D4FF +:102510003189007FA0A900D48E7200208F8F0038EF +:10252000A780005C364D0002AE6D0020A5E000BC27 +:1025300091E500D400A3C824A1F900D48F950038F8 +:10254000AEA000EC92B800D403085824A2AB00D48B +:102550000A001CD78F8500388F910034AF8000604F +:1025600002275821AF8B0034000020212403FFFFF5 +:10257000108301B48F8500388E0C00103C0D0800CC +:102580008DAD31B09208000031843FFF008D802B6B +:1025900012000023310D003F3C1908008F3931A88B +:1025A0008F9F006C000479802408FF80033F202166 +:1025B000008FC821938500590328F8243C06008029 +:1025C0003C0F800034D80001001F91403331007F60 +:1025D0008F8600380251502535EE0940332B0078A4 +:1025E000333000073C0310003C02800C017890253A +:1025F000020E48210143C0250222382134AE0001D9 +:10260000ADFF0804AF890050ADF20814AF87004455 +:10261000ADFF0028ACD90084ADF80830A38E005976 +:102620009383005A24070003106700272407000142 +:102630001467FFAC8F8500382411002311B1008589 +:1026400000000000240E000B026020210E001A4A38 +:10265000A38E00680040A0210A001D328F8500383B +:1026600002602021240B000C0E001A4AA38B006884 +:10267000240AFFFF104AFFBD2404FFFF8F8E00389D +:10268000A380003C8E0D00048DC800D83C0600FFDE +:1026900034CCFFFF01AC30240106182B1060FEE2A1 +:1026A000AF86005402602021241200190E001A4A3D +:1026B000A3920068240FFFFF104FFFAC2404FFFF1C +:1026C0000A001C838F86005425A3FFE02C74002091 +:1026D0001280FFDD240E000B000328803C1108014E +:1026E000263194B400B148218D2D000001A00008CE +:1026F000000000008F85003400A710219385003C66 +:10270000AF82003402251821A383003C951F00BC32 +:102710000226282137F91000A51900BC5240FF926B +:10272000AF850060246A0004A38A003C950900BCC0 +:1027300024A40004AF84006035322000A51200BC40 +:102740000A001D54000020218F8600602CC800055F +:102750001500FF609783005C3065FFFF00C5C8234C +:102760002F2F000511E00003306400FF24CDFFFC93 +:1027700031A400FF8F8900648F920034113200046D +:10278000389F000133EC0001158001380000000083 +:102790008F840038908700D434E60010A08600D4DF +:1027A0008F8500388F8600609783005CACA000ECBA +:1027B0000A001D2F306EFFFF8CB500848CB400849E +:1027C0003C04100002A7302400068940328E007FAE +:1027D000022E8025020410253C08800024050001FB +:1027E00002602021240600010E0019A9AD02083064 +:1027F0000A001CC38F8500388C8200EC1222FE7EFA +:102800000260202124090005A38900680E001A4AED +:102810002411FFFF1451FE782404FFFF0A001D5508 +:102820002403FFFF8F8F004C8F8800388DF8000045 +:10283000AD1800888DE70010AD0700988F87006005 +:102840000A001DB78F8600542406FFFF118600057D +:10285000000000000E001B4C026020210A001D8FAA +:102860000040A0210E001AD1026020210A001D8F15 +:102870000040A0218F90004C3C0208008C4231B0F7 +:102880008E110010322C3FFF0182282B10A0000C6B +:10289000240BFF808F85005090A3000D01637024EE +:1028A00031CA00FF1140000702602021001143825D +:1028B000310600032418000110D8010600000000B2 +:1028C000026020212403000D0E001A4AA383006831 +:1028D000004020218F8500380A001D320080A02191 +:1028E0008F90004C3C0A08008D4A31B08F85005013 +:1028F0008E0400100000A0218CB1001430823FFF34 +:10290000004A602B8CB200205180FFEE0260202133 +:1029100090B8000D240BFF800178702431C300FFB4 +:102920005060FFE80260202100044382310600036A +:1029300014C0FFE40260202194BF001C8F9900386E +:102940008E060028A73F00E88CAF0010022F20233E +:1029500014C4013A026020218F83005400C368210F +:10296000022D382B14E00136240200188F8A00440F +:102970008F820030024390218D4B00100163702341 +:10298000AD4E0010AD5200208C4C00740192282BEB +:1029900014A0015F026020218F8400508E08002463 +:1029A0008C86002411060007026020212419001CD7 +:1029B0000E001A4AA3990068240FFFFF104FFFC5AD +:1029C0002404FFFF8F8400448C87002424FF00012F +:1029D000AC9F00241251012F8F8D00308DB10074F7 +:1029E0001232012C3C0B00808E0E000001CB5024D3 +:1029F00015400075000000008E0300142411FFFF35 +:102A0000107100073C0808003C0608008CC6319095 +:102A100000C8C0241300015202602021A380006876 +:102A20008E0300003C19000100792024108000135F +:102A30003C1F0080007FA02416800009020028218E +:102A4000026020212411001A0E001A4AA391006886 +:102A50002407FFFF1047FF9F2404FFFF02002821E7 +:102A6000026020210E001A6A240600012410FFFFD4 +:102A70001050FF982404FFFF241400018F8D0044A0 +:102A8000026020210280302195A900342405000134 +:102A9000253200010E0019A9A5B200340000202142 +:102AA0008F8500380A001D320080A0218F90004CD5 +:102AB0003C1408008E9431B08E07001030E53FFFC3 +:102AC00000B4C82B132000618F8600502412FF80B1 +:102AD00090C9000D0249682431A400FF5080005CB9 +:102AE000026020218F8C00541180000700078B8228 +:102AF0008F8500388F82FCC094BF0080944A000A02 +:102B0000515F00F78F8600403227000314E0006415 +:102B100000000000920E000211C000D8000000006A +:102B20008E0B0024156000D902602021920400035E +:102B300024190002308500FF14B90005308900FF18 +:102B40008F940054128000EA240D002C308900FF7D +:102B5000392C00102D8400012D3200010244302553 +:102B6000020028210E001A6A026020212410FFFFB3 +:102B7000105000BF8F8500388F830054106000D341 +:102B8000240500013C0A08008D4A318C0143F82BD2 +:102B900017E000B22402002D02602021000028214D +:102BA0000E0019A9240600018F85003800001821A5 +:102BB0000A001D320060A0210E0018750000000000 +:102BC0000A001DF800000000AC8000200A001E78FA +:102BD0008E03001400002821026020210E0019A994 +:102BE000240600010A001CC38F8500380A001DB7A7 +:102BF0008F8800388CAA00848CAC00843C031000C1 +:102C00000147F824001F91403189007F024968255F +:102C100001A32825ACC50830910700012405000157 +:102C2000026020210E0019A930E600010A001CC331 +:102C30008F850038938F00482403FFFD0A001D3460 +:102C4000AF8F00600A001D342403FFFF02602021C3 +:102C50002410000D0E001A4AA390006800401821AD +:102C60008F8500380A001D320060A0210E00187503 +:102C7000000000009783005C8F86006000402021E8 +:102C80003070FFFF00D010232C4A00051140FE11C8 +:102C90008F850038ACA400EC0A001D2F306EFFFFBA +:102CA00090CF000D31E300085460FFA192040003AF +:102CB00002602021240200100E001A4AA38200683C +:102CC0002403FFFF5443FF9A920400030A001F12DB +:102CD0008F85003890A4000D308F000811E000951A +:102CE0008F990054572000A6026020218E1F000CEF +:102CF0008CB4002057F40005026020218E0D0008DE +:102D00008CA7002411A7003A026020212402002091 +:102D1000A38200680E001A4A2412FFFF1052FEED33 +:102D20002404FFFF8F9F00442402FFF73C14800E11 +:102D300093EA000D2419FF803C03800001423824EF +:102D4000A3E7000D8F9F00303C0908008D2931ACAE +:102D50008F8C006C97F200788F870044012C302113 +:102D6000324D7FFF000D204000C4782131E5007F07 +:102D700000B4C02101F94024AC68002CA711000068 +:102D80008CEB0028256E0001ACEE00288CEA002CAC +:102D90008E02002C01426021ACEC002C8E09002C2C +:102DA000ACE900308E120014ACF2003494ED003A1D +:102DB00025A40001A4E4003A97E600783C1108003D +:102DC0008E3131B024C3000130707FFF1211005CDE +:102DD000006030218F8F0030026020212405000127 +:102DE0000E001934A5E600780A001EA1000020217B +:102DF0008E0900142412FFFF1132006B8F8A0038F5 +:102E00008E0200188D4C00D0144C00650260202109 +:102E10008E0B00248CAE0028116E005B2402002172 +:102E20000E001A4AA38200681452FFBE2404FFFF5A +:102E30008F8500380A001D320080A0212402001F67 +:102E40000E001A4AA38200682409FFFF1049FEA160 +:102E50002404FFFF0A001E548F83005402602021C7 +:102E60000E001A4AA38200681450FF508F85003864 +:102E70002403FFFF0A001D320060A0218CD800242B +:102E80008E0800241118FF29026020210A001F2744 +:102E90002402000F8E0900003C05008001259024CB +:102EA0001640FF492402001A026020210E001A4A2F +:102EB000A3820068240CFFFF144CFECF2404FFFF04 +:102EC0008F8500380A001D320080A0210E001934C1 +:102ED000026020218F8500380A001EE500001821BD +:102EE0002403FFFD0060A0210A001D32AF860060B0 +:102EF000026020210E001A4AA38D00682403FFFF00 +:102F00001043FF588F8500380A001ECC920400033E +:102F10002418001D0E001A4AA39800682403FFFF1E +:102F20001443FE9D2404FFFF8F8500380A001D32E4 +:102F30000080A021026020210A001F3D24020024FD +:102F4000240880000068C024330BFFFF000B73C20D +:102F500031D000FF001088270A001F6E001133C017 +:102F6000240F001B0E001A4AA38F00681451FEACF8 +:102F70002404FFFF8F8500380A001D320080A02145 +:102F80000A001F3D240200278E0600288CA3002C77 +:102F900010C30008026020210A001F812402001FC4 +:102FA0000A001F812402000E026020210A001F81F6 +:102FB000240200258E04002C1080000D8F8F00301D +:102FC0008DE800740104C02B5700000C0260202122 +:102FD0008CB900140086A0210334282B10A0FF52C6 +:102FE0008F9F0044026020210A001F8124020022DA +:102FF000026020210A001F81240200230A001F8191 +:103000002402002627BDFFD8AFB3001CAFB10014C7 +:10301000AFBF0020AFB20018AFB000103C0280007C +:103020008C5201408C4B01483C048000000B8C0208 +:10303000322300FF317300FF8C8501B804A0FFFE2E +:1030400034900180AE1200008C8701442464FFF0AC +:10305000240600022C830013AE070004A61100080A +:10306000A206000BAE1300241060004F8FBF00209B +:10307000000448803C0A0801254A9534012A402171 +:103080008D04000000800008000000003C030800E0 +:103090008C6331A831693FFF00099980007280215B +:1030A000021370212405FF80264D0100264C00806C +:1030B0003C02800031B1007F3198007F31CA007F2F +:1030C0003C1F800A3C1980043C0F800C01C5202461 +:1030D00001A5302401853824014F1821AC46002475 +:1030E000023F402103194821AC470090AC4400281E +:1030F000AF830044AF880038AF8900300E0019005C +:10310000016080213C0380008C6B01B80560FFFEEC +:103110008F8700448F8600383465018090E8000D69 +:10312000ACB20000A4B0000600082600000416039C +:1031300000029027001227C21080008124C200885C +:10314000241F6082A4BF0008A0A000052402000282 +:10315000A0A2000B8F8B0030000424003C08270045 +:1031600000889025ACB20010ACA00014ACA00024E4 +:10317000ACA00028ACA0002C8D6900382413FF807F +:10318000ACA9001890E3000D02638024320500FF13 +:1031900010A000058FBF002090ED000D31AC007F26 +:1031A000A0EC000D8FBF00208FB3001C8FB2001861 +:1031B0008FB100148FB000103C0A10003C0E80004C +:1031C00027BD002803E00008ADCA01B8265F010052 +:1031D0002405FF8033F8007F3C06800003E5782457 +:1031E0003C19800A03192021ACCF0024908E00D412 +:1031F00000AE682431AC00FF11800024AF84003899 +:10320000248E008895CD00123C0C08008D8C31A8CE +:1032100031AB3FFF01924821000B5180012A402130 +:1032200001052024ACC400283107007F3C06800C37 +:1032300000E620219083000D00A31024304500FFFC +:1032400010A0FFD8AF8400449098000D330F0010F9 +:1032500015E0FFD58FBF00200E0019000000000010 +:103260003C0380008C7901B80720FFFE00000000BD +:10327000AE1200008C7F0144AE1F0004A6110008AE +:1032800024110002A211000BAE1300243C1308010C +:10329000927396F0327000015200FFC38FBF00207E +:1032A0000E002146024020210A0020638FBF00202B +:1032B0003C1260008E452C083C03F0033462FFFF93 +:1032C00000A2F824AE5F2C088E582C083C1901C0CF +:1032D00003199825AE532C080A0020638FBF0020E5 +:1032E000264D010031AF007F3C10800A240EFF8084 +:1032F00001F0282101AE60243C0B8000AD6C00245D +:103300001660FFA8AF85003824110003A0B100FCAF +:103310000A0020638FBF002026480100310A007F89 +:103320003C0B800A2409FF80014B30210109202435 +:103330003C078000ACE400240A002062AF8600381D +:10334000944E0012320C3FFF31CD3FFF15ACFF7D94 +:10335000241F608290D900D42418FF800319782498 +:1033600031EA00FF1140FF7700000000240700044D +:10337000A0C700FC8F870044241160842406000D40 +:10338000A4B10008A0A600050A00204D24020002F6 +:103390003C040001248496DC24030014240200FE73 +:1033A0003C010800AC2431EC3C010800AC2331E8BE +:1033B0003C010801A42296F83C040801248496F8F4 +:1033C0000000182100643021A0C300042463000120 +:1033D0002C6500FF54A0FFFC006430213C0708006E +:1033E00024E7010003E00008AF87007800A058211F +:1033F000008048210000102114A00012000050217C +:103400000A002142000000003C010801A42096F8B7 +:103410003C05080194A596F88F8200783C0C0801C1 +:10342000258C96F800E2182100AC2021014B302BAE +:10343000A089000400001021A460000810C0003919 +:10344000010048218F8600780009384000E94021BA +:103450000008388000E6282190A8000B90B9000AE7 +:103460000008204000881021000218800066C0215A +:10347000A319000A8F85007800E5782191EE000AF3 +:1034800091E6000B000E684001AE6021000C208028 +:1034900000851021A046000B3C030801906396F2C2 +:1034A000106000222462FFFF8F8300383C01080176 +:1034B000A02296F2906C00FF118000040000000032 +:1034C000906E00FF25CDFFFFA06D00FF3C190801A5 +:1034D000973996F8272300013078FFFF2F0F00FF60 +:1034E00011E0FFC9254A00013C010801A42396F818 +:1034F0003C05080194A596F88F8200783C0C0801E1 +:10350000258C96F800E2182100AC2021014B302BCD +:10351000A089000400001021A460000814C0FFC9A5 +:103520000100482103E000080000000003E000085B +:103530002402000227BDFFE0248501002407FF804C +:10354000AFB00010AFBF0018AFB1001400A718242F +:103550003C10800030A4007F3C06800A00862821B1 +:103560008E110024AE03002490A200FF1440000836 +:10357000AF850038A0A000098FBF0018AE1100244D +:103580008FB100148FB0001003E0000827BD0020A9 +:1035900090A900FD90A800FF312400FF0E0020F448 +:1035A000310500FF8F8500388FBF0018A0A00009EB +:1035B000AE1100248FB100148FB0001003E000089A +:1035C00027BD002027BDFFD0AFB20020AFB1001C47 +:1035D000AFB00018AFBF002CAFB40028AFB30024C9 +:1035E0003C0980009533011635320C00952F011AE5 +:1035F0003271FFFF023280218E08000431EEFFFF9E +:10360000248B0100010E6821240CFF8025A5FFFFFB +:10361000016C50243166007F3C07800AAD2A0024EB +:1036200000C73021AF850074AF8800703C010801ED +:10363000A02096F190C300090200D02100809821BB +:10364000306300FF2862000510400048AF86003854 +:10365000286400021480008E24140001240D00054B +:103660003C010801A02D96D590CC00FD3C0108013D +:10367000A02096D63C010801A02096D790CB000A46 +:10368000240AFF80318500FF014B4824312700FFC9 +:1036900010E0000C000058213C12800836510080D8 +:1036A0008E2F00308CD0005C01F0702305C0018E9D +:1036B0008F87007090D4000A3284007FA0C4000A73 +:1036C0008F8600383C118008363000808E0F003025 +:1036D0008F87007000EF702319C000EE000000001B +:1036E00090D4000924120002328400FF1092024795 +:1036F000000000008CC2005800E2F82327F9FFFF09 +:103700001B2001300000000090C5000924080004BF +:1037100030A300FF10680057240A00013C01080193 +:10372000A02A96D590C900FF252700013C01080179 +:10373000A02796D43C030801906396D52406000583 +:103740001066006A2C780005130000C40000902168 +:103750000003F8803C0408012484958003E4C82118 +:103760008F25000000A0000800000000241800FFC2 +:103770001078005C0000000090CC000A90CA00099C +:103780003C080801910896F13187008000EA48253D +:103790003C010801A02996DC90C500FD3C140801FD +:1037A000929496F2311100013C010801A02596DDAA +:1037B00090DF00FE3C010801A03F96DE90D200FFA2 +:1037C0003C010801A03296DF8CD900543C0108016D +:1037D000AC3996E08CD000583C010801AC3096E43E +:1037E0008CC3005C3C010801AC3496EC3C01080140 +:1037F000AC2396E8162000088FBF002C8FB4002859 +:103800008FB300248FB200208FB1001C8FB000183E +:1038100003E0000827BD00303C1180009624010E13 +:103820000E000FD43094FFFF3C0B08018D6B96F413 +:103830000260382102802821AE2B01803C13080150 +:103840008E7396D401602021240600830E00102F71 +:10385000AFB300108FBF002C8FB400288FB30024AB +:103860008FB200208FB1001C8FB0001803E0000859 +:1038700027BD00303C1808008F1831FC270F0001CD +:103880003C010800AC2F31FC0A0021D700000000E9 +:103890001474FFB900000000A0C000FF3C05080040 +:1038A0008CA531E43C0308008C6331E03C02080045 +:1038B0008C4232048F99003834A80001241F000282 +:1038C0003C010801AC2396F43C010801A02896F0C5 +:1038D0003C010801A02296F3A33F00090A002190B1 +:1038E0008F8600380E002146000000000A0021D714 +:1038F0008F8600383C1F080193FF96D424190001DD +:1039000013F902298F8700703C100801921096D895 +:103910003C06080190C696D610C000050200A02102 +:103920003C040801908496D9109001E48F870078B8 +:10393000001088408F9F0078023048210009C8801D +:10394000033F702195D80008270F0001A5CF00087C +:103950003C040801908496D93C05080190A596D6B0 +:103960000E0020F4000000008F8700780230202134 +:103970000004308000C720218C8500048F820074F1 +:1039800000A2402305020006AC8200048C8A0000DD +:103990008F830070014310235C400001AC83000062 +:1039A0008F86003890CB00FF2D6C00025580002DD3 +:1039B000241400010230F821001F40800107282153 +:1039C00090B9000B8CAE00040019C0400319782197 +:1039D000000F1880006710218C4D000001AE882375 +:1039E0002630FFFF5E00001F241400018C440004F9 +:1039F0008CAA0000008A482319200019240E000414 +:103A00003C010801A02E96D590AD000B8CAB0004B4 +:103A1000000D8840022D80210010108000471021E9 +:103A20008C44000401646023058202009443000872 +:103A300090DF00FE90B9000B33E500FF54B900049D +:103A40000107A021A0D400FE8F8700780107A021E4 +:103A50009284000B0E0020F4240500018F860038AC +:103A600024140001125400962E500001160000424A +:103A70003C08FFFF241900021659FF3F0000000018 +:103A8000A0C000FF8F860038A0D200090A0021D70D +:103A90008F86003890C700092404000230E300FF3D +:103AA0001064016F24090004106901528F880074AA +:103AB0008CCE0054010E682325B10001062001754B +:103AC000241800043C010801A03896D53C010801E7 +:103AD000A02096D490D400FD90D200FF2E4F00027B +:103AE00015E0FF14328400FF000438408F8900780D +:103AF00090DF00FF00E41021000220800089C8212F +:103B00002FE500029324000B14A0FF0A24070002F3 +:103B100000041840006480210010588001692821A9 +:103B20008CAC0004010C50230540FF020000000093 +:103B30003C030801906396D614600005246F0001D1 +:103B40003C010801A02496D93C010801A02796D782 +:103B50003C010801A02F96D690CE00FF24E700017B +:103B600031CD00FF01A7882B1220FFE990A4000BA4 +:103B70000A0021C6000000003C0508018CA596D46F +:103B80003C12000400A8F82413F2000624020005E9 +:103B90003C090801912996D5152000022402000352 +:103BA000240200053C010801A02296F190C700FF05 +:103BB00014E0012024020002A0C200090A0021D75B +:103BC0008F86003890CC00FF1180FEDA240A0001B5 +:103BD0008F8C00748F890078240F00030180682186 +:103BE0001160001E240E0002000540400105A021C6 +:103BF00000142080008990218E51000401918023BF +:103C00000600FECC000000003C020801904296D65F +:103C100014400005245800013C010801A02A96D751 +:103C20003C010801A02596D93C010801A03896D690 +:103C300090DF00FF010510210002C88033E500FF7E +:103C4000254A00010329202100AA402B1500FEB9B6 +:103C50009085000B1560FFE50005404000054040E1 +:103C600001051821000310803C010801A02A96D408 +:103C70003C010801A02596D8004918218C64000455 +:103C800000E4F82327F9FFFF1F20FFE900000000F0 +:103C90008C63000000E358230560013A01A38823E8 +:103CA00010E301170184C0231B00FEA200000000E6 +:103CB0003C010801A02E96D50A002305240B000123 +:103CC000240E0004A0CE00093C0D08008DAD31F893 +:103CD0008F86003825A200013C010800AC2231F893 +:103CE0000A0021D7000000008CD9005C00F9C02335 +:103CF0001F00FE7B000000008CDF005C10FFFF65F2 +:103D00008F8400748CC3005C008340232502000173 +:103D10001C40FF60000000008CC9005C248700018B +:103D200000E9282B10A0FE943C0D80008DAB01040F +:103D30003C0C0001016C50241140FE8F2402001045 +:103D40003C010801A02296F10A0021D700000000E2 +:103D50008F9100748F86003826220001ACC2005C6F +:103D60000A002292241400018F8700382404FF8067 +:103D70000000882190E9000A241400010124302564 +:103D8000A0E6000A3C05080190A596D63C0408016F +:103D9000908496D90E0020F4000000008F86003831 +:103DA0008F85007890C800FD310700FF0007404074 +:103DB0000107F821001FC0800305C8219323000BD1 +:103DC000A0C300FD8F8500788F8600380305602131 +:103DD000918F000B000F704001CF6821000D808093 +:103DE000020510218C4B0000ACCB00548D840004E4 +:103DF0008F83007400645023194000022482000164 +:103E00002462000101074821ACC2005C0009308037 +:103E100000C5402100E02021240500010E0020F40F +:103E20009110000B8F86003890C500FF10A0FF0C8A +:103E3000001070408F85007801D06821000D10803F +:103E4000004558218D6400008F8C0074018450233C +:103E50002547000104E0FF02263100013C03080170 +:103E6000906396D62E2F0002247800013C010801B1 +:103E7000A03896D63C010801A03496D711E0FEF890 +:103E8000020038210A002365000740408F84003873 +:103E90008F8300748C85005800A340230502FE9A8E +:103EA000AC8300580A00223B000000003C070801D8 +:103EB00090E796F2240200FF10E200BE8F860038E1 +:103EC0003C110801963196FA3C030801246396F8E8 +:103ED000262500013230FFFF30ABFFFF02036021D7 +:103EE0002D6A00FF1540008D918700043C010801F8 +:103EF000A42096FA8F88003800074840012728211F +:103F0000911800FF000530802405000127140001EE +:103F1000A11400FF3C120801925296F28F8800789B +:103F20008F8E0070264F000100C820213C0108013F +:103F3000A02F96F2AC8E00008F8D0074A48500082F +:103F4000AC8D00043C030801906396D414600077A4 +:103F5000000090213C010801A02596D4A087000B09 +:103F60008F8C007800CC5021A147000A8F82003846 +:103F7000A04700FD8F840038A08700FE8F860038A0 +:103F80008F9F0070ACDF00548F990074ACD900583B +:103F90008F8D00780127C02100185880016DA02165 +:103FA000928F000A000F704001CF18210003888013 +:103FB000022D8021A207000B8F8600780166602108 +:103FC000918A000B000A1040004A2021000428803A +:103FD00000A64021A107000A3C07800834E90080C0 +:103FE0008D2200308F860038ACC2005C0A0022921D +:103FF0002414000190CA00FF1540FEAD8F880074A4 +:10400000A0C400090A0021D78F860038A0C000FD97 +:104010008F98003824060001A30000FE3C0108012F +:10402000A02696D53C010801A02096D40A0021C6FE +:104030000000000090CB00FF3C040801908496F340 +:10404000316C00FF0184502B1540000F2402000347 +:1040500024020004A0C200090A0021D78F8600387C +:1040600090C3000A2410FF8002035824316C00FF23 +:104070001180FDC1000000003C010801A02096D580 +:104080000A0021C600000000A0C200090A0021D7D2 +:104090008F86003890D4000A2412FF8002544824EE +:1040A000312800FF1500FFF4240200083C0108013C +:1040B000A02296F10A0021D70000000000108840DD +:1040C0008F8B0070023018210003688001A7202127 +:1040D000AC8B00008F8A0074240C0001A48C0008B3 +:1040E000AC8A00043C05080190A596D62402000184 +:1040F00010A2FE1E24A5FFFF0A0022519084000B8F +:104100000184A0231A80FD8B000000003C010801FF +:10411000A02E96D50A002305240B00013C010801BE +:10412000A42596FA0A0023B78F880038240B0001D3 +:10413000106B00228F9800388F85003890BF00FFE9 +:1041400033F900FF1079002B000000003C1F08012C +:1041500093FF96D8001FC840033FC0210018A080DD +:104160000288782191EE000AA08E000A8F8D0078D7 +:104170003C030801906396D800CD88210A0023DD16 +:10418000A223000B263000010600003101A4902379 +:104190000640002B240200033C010801A02F96D505 +:1041A0000A002305240B00018F8900380A00223BF6 +:1041B000AD2700540A00229124120001931400FD3F +:1041C000A094000B8F8800388F8F0078910E00FE2E +:1041D00000CF6821A1AE000A8F910038A22700FD10 +:1041E0008F8300708F900038AE0300540A0023DEE6 +:1041F0008F8D007890B000FEA090000A8F8B003861 +:104200008F8C0078916A00FD00CC1021A04A000B31 +:104210008F840038A08700FE8F8600748F85003859 +:10422000ACA600580A0023DE8F8D007894B80008F1 +:10423000ACA40004030378210A002285A4AF00087F +:104240003C010801A02296D50A0021C6000000000A +:1042500090CF0009240D000431EE00FF11CDFD8543 +:10426000240200013C010801A02296D50A0021C6C3 +:1042700000000000080033440800334408003420E4 +:10428000080033F4080033D8080033280800332826 +:10429000080033280800334C8008010080080080A3 +:1042A000800800005F865437E4AC62CC50103A4579 +:1042B00036621985BF14C0E81BC27A1E84F4B55655 +:1042C000094EA6FE7DDA01E7C04D748108005A74DC +:1042D00008005AB808005A5C08005A5C08005A5C8A +:1042E00008005A5C08005A7408005A5C08005A5CBE +:1042F00008005AC008005A5C080059D408005A5CEB +:1043000008005A5C08005AC008005A5C08005A5C51 +:1043100008005A5C08005A5C08005A5C08005A5CA5 +:1043200008005A5C08005A5C08005A5C08005A5C95 +:1043300008005A9408005A5C08005A9408005A5C15 +:1043400008005A5C08005A5C08005A9808005A9401 +:1043500008005A5C08005A5C08005A5C08005A5C65 +:1043600008005A5C08005A5C08005A5C08005A5C55 +:1043700008005A5C08005A5C08005A5C08005A5C45 +:1043800008005A5C08005A5C08005A5C08005A5C35 +:1043900008005A5C08005A5C08005A5C08005A5C25 +:1043A00008005A9808005A9808005A5C08005A9861 +:1043B00008005A5C08005A5C08005A5C08005A5C05 +:1043C00008005A5C08005A5C08005A5C08005A5CF5 +:1043D00008005A5C08005A5C08005A5C08005A5CE5 +:1043E00008005A5C08005A5C08005A5C08005A5CD5 +:1043F00008005A5C08005A5C08005A5C08005A5CC5 +:1044000008005A5C08005A5C08005A5C08005A5CB4 +:1044100008005A5C08005A5C08005A5C08005A5CA4 +:1044200008005A5C08005A5C08005A5C08005A5C94 +:1044300008005A5C08005A5C08005A5C08005A5C84 +:1044400008005A5C08005A5C08005A5C08005A5C74 +:1044500008005A5C08005A5C08005A5C08005A5C64 +:1044600008005A5C08005A5C08005A5C08005A5C54 +:1044700008005A5C08005A5C08005A5C08005A5C44 +:1044800008005A5C08005A5C08005A5C08005A5C34 +:1044900008005A5C08005A5C08005A5C08005A5C24 +:1044A00008005A5C08005A5C08005A5C08005A5C14 +:1044B00008005A5C08005A5C08005A5C08005A5C04 +:1044C00008005A5C08005A5C08005A5C08005ADC74 +:1044D0000800782C08007A900800783808007628C0 +:1044E00008007838080078C4080078380800762872 +:1044F0000800762808007628080076280800762824 +:104500000800762808007628080076280800762813 +:1045100008007628080078580800784808007628AF +:1045200008007628080076280800762808007628F3 +:1045300008007628080076280800762808007628E3 +:1045400008007628080076280800762808007848B1 +:10455000080082FC08008188080082C40800818865 +:104560000800829408008070080081880800818813 +:1045700008008188080081880800818808008188F7 +:1045800008008188080081880800818808008188E7 +:104590000800818808008188080081B008008D34F7 +:1045A00008008E9008008E70080088D808008D4C96 +:1045B0000A00012400000000000000000000000DBF +:1045C000747061362E322E31620000000602010145 +:1045D00000000000000000000000000000000000DB +:1045E00000000000000000000000000000000000CB +:1045F00000000000000000000000000000000000BB +:1046000000000000000000000000000000000000AA +:10461000000000000000000000000000000000009A +:10462000000000000000000000000000000000008A +:10463000000000000000000000000000000000007A +:104640000000000010000003000000000000000D4A +:104650000000000D3C020800244217203C03080023 +:1046600024632A10AC4000000043202B1480FFFD7F +:10467000244200043C1D080037BD2FFC03A0F0219C +:104680003C100800261004903C1C0800279C1720B2 +:104690000E000262000000000000000D2402FF80F6 +:1046A00027BDFFE000821024AFB00010AF42002011 +:1046B000AFBF0018AFB10014936500043084007FD1 +:1046C000034418213C0200080062182130A5002094 +:1046D000036080213C080111277B000814A0000220 +:1046E0002466005C2466005892020004974301048B +:1046F000920400043047000F3063FFFF3084004015 +:10470000006728231080000900004821920200055C +:1047100030420004104000050000000010A000031B +:104720000000000024A5FFFC2409000492020005FB +:1047300030420004104000120000000010A00010E1 +:10474000000000009602000200A72021010440257D +:104750002442FFFEA7421016920300042402FF80A9 +:1047600000431024304200FF104000033C020400CC +:104770000A000174010240258CC20000AF421018EB +:104780008F4201780440FFFE2402000AA742014044 +:1047900096020002240400093042000700021023A0 +:1047A00030420007A7420142960200022442FFFE67 +:1047B000A7420144A740014697420104A74201488D +:1047C0008F420108304200205040000124040001C3 +:1047D00092020004304200101440000234830010A2 +:1047E00000801821A743014A0000000000000000DB +:1047F0000000000000000000AF48100000000000B2 +:104800000000000000000000000000008F421000C7 +:104810000441FFFE3102FFFF1040000700000000CE +:1048200092020004304200401440000300000000E7 +:104830008F421018ACC20000960200063042FFFF03 +:10484000244200020002104300021040036288214B +:10485000962200001120000D3044FFFF00A7102118 +:104860008F8300388F45101C0002108200021080D8 +:1048700000431021AC45000030A6FFFF0E00058D5F +:1048800000052C0200402021A62200009203000413 +:104890002402FF8000431024304200FF1040001F1C +:1048A0000000000092020005304200021040001B90 +:1048B000000000009742100C2442FFFEA742101691 +:1048C000000000003C02040034420030AF421000FF +:1048D00000000000000000000000000000000000D8 +:1048E0008F4210000441FFFE000000009742100CB0 +:1048F0008F45101C3042FFFF24420030000210821E +:1049000000021080005B1021AC45000030A6FFFFC4 +:104910000E00058D00052C02A62200009604000260 +:10492000248400080E0001E93084FFFF974401044D +:104930000E0001F73084FFFF8FBF00188FB1001405 +:104940008FB000103C02100027BD002003E00008DB +:10495000AF4201783084FFFF308200078F8500244A +:1049600010400002248300073064FFF800A41021E7 +:1049700030421FFF03421821247B4000AF850028EE +:10498000AF82002403E00008AF4200843084FFFFC0 +:104990003082000F8F85002C8F860034104000027B +:1049A0002483000F3064FFF000A410210046182B70 +:1049B000AF8500300046202314600002AF82002C37 +:1049C000AF84002C8F82002C340480000342182115 +:1049D00000641821AF83003803E00008AF42008074 +:1049E0008F820014104000088F8200048F82FFDC49 +:1049F000144000058F8200043C02FFBF3442FFFFD9 +:104A0000008220248F82000430430006240200022A +:104A10001062000F3C0201012C62000350400005AF +:104A2000240200041060000F3C0200010A00023062 +:104A30000000000010620005240200061462000C51 +:104A40003C0201110A000229008210253C020011DB +:104A500000821025AF421000240200010A0002303B +:104A6000AF82000C00821025AF421000AF80000C16 +:104A700000000000000000000000000003E000084B +:104A8000000000008F82000C1040000400000000B5 +:104A90008F4210000441FFFE0000000003E0000808 +:104AA000000000008F8200102443F800000231C291 +:104AB00024C2FFF02C6303011060000300021042C7 +:104AC0000A000257AC8200008F85001800C5102B29 +:104AD0001440000B0000182100C5102324470001DA +:104AE0008F82001C00A210212442FFFF0046102BE1 +:104AF000544000042402FFFF0A000257AC87000064 +:104B00002402FFFF0A000260AC8200008C820000D9 +:104B10000002194000621821000318800062182169 +:104B2000000318803C0208002442175C0062182130 +:104B300003E000080060102127BDFFD8AFBF0020B0 +:104B4000AFB1001CAFB000183C0460088C8250006C +:104B50002403FF7F3C066000004310243442380CDD +:104B6000AC8250008CC24C1C3C1A80000002160221 +:104B70003042000F10400007AF82001C8CC34C1C59 +:104B80003C02001F3442FC0000621824000319C2DA +:104B9000AF8300188F420008275B400034420001B9 +:104BA000AF420008AF8000243C02601CAF40008090 +:104BB000AF4000848C4500088CC308083402800094 +:104BC000034220212402FFF0006218243C020080EE +:104BD0003C010800AC2204203C025709AF84003895 +:104BE00014620004AF850034240200010A0002921E +:104BF000AF820014AF8000148F42000038420001E1 +:104C0000304200011440FFFC8F8200141040001657 +:104C10000000000097420104104000058F8300004F +:104C2000146000072462FFFF0A0002A72C62000A3A +:104C30002C620010504000048F83000024620001A9 +:104C4000AF8200008F8300002C62000A1440000332 +:104C50002C6200070A0002AEAF80FFDC10400002A9 +:104C600024020001AF82FFDC8F4301088F44010062 +:104C700030622000AF83000410400008AF840010B1 +:104C80003C0208008C42042C244200013C01080034 +:104C9000AC22042C0A00058A3C0240003065020068 +:104CA00014A0000324020F001482026024020D00ED +:104CB00097420104104002C83C02400030624000AC +:104CC000144000AD8F8200388C4400088F42017878 +:104CD0000440FFFE24020800AF42017824020008CD +:104CE000A7420140A7400142974201048F8400047B +:104CF0003051FFFF30820001104000070220802168 +:104D00002623FFFE240200023070FFFFA742014667 +:104D10000A0002DBA7430148A74001463C02080005 +:104D20008C42043C1440000D8F8300103082002020 +:104D30001440000224030009240300010060202124 +:104D40008F830010240209005062000134840004A3 +:104D5000A744014A0A0002F60000000024020F00E6 +:104D60001462000530820020144000062403000D68 +:104D70000A0002F524030005144000022403000980 +:104D800024030001A743014A3C0208008C4204208E +:104D90003C0400480E00020C004420250E000235A1 +:104DA000000000008F82000C1040003E0000000058 +:104DB0008F4210003C0300200043102410400039B3 +:104DC0008F820004304200021040003600000000D4 +:104DD000974210141440003300000000974210085E +:104DE0008F8800383042FFFF2442000600021882FC +:104DF0000003388000E83021304300018CC40000FB +:104E000010600004304200030000000D0A00033768 +:104E100000E81021544000103084FFFF3C05FFFFE4 +:104E200000852024008518260003182B0004102B71 +:104E300000431024104000050000000000000000A6 +:104E40000000000D00000000240002228CC20000BF +:104E50000A000336004520253883FFFF0003182B86 +:104E60000004102B00431024104000050000000037 +:104E7000000000000000000D000000002400022BD4 +:104E80008CC200003444FFFF00E81021AC44000055 +:104E90003C0208008C420430244200013C0108001E +:104EA000AC2204308F6200008F840038AF8200088B +:104EB0008C8300003402FFFF1462000F00001021F9 +:104EC0003C0508008CA504543C0408008C84045064 +:104ED00000B0282100B0302B008220210086202144 +:104EE0003C010800AC2504543C010800AC240450EB +:104EF0000A000580240400088C8200003042010072 +:104F00001040000F000010213C0508008CA5044C47 +:104F10003C0408008C84044800B0282100B0302BE9 +:104F200000822021008620213C010800AC25044C91 +:104F30003C010800AC2404480A0005802404000851 +:104F40003C0508008CA504443C0408008C84044003 +:104F500000B0282100B0302B0082202100862021C3 +:104F60003C010800AC2504443C010800AC2404408A +:104F70000A000580240400088F6200088F62000088 +:104F800000021602304300F02402003010620005D7 +:104F900024020040106200E08F8200200A00058891 +:104FA0002442000114A000050000000000000000E1 +:104FB0000000000D00000000240002568F4201781E +:104FC0000440FFFE000000000E00023D27A4001078 +:104FD0001440000500408021000000000000000D8A +:104FE000000000002400025D8E0200001040000559 +:104FF00000000000000000000000000D00000000A4 +:10500000240002608F62000C0443000324020001AC +:105010000A00042EAE000000AE0200008F820038AD +:105020008C480008A20000078F65000C8F64000404 +:1050300030A3FFFF0004240200852023308200FFFC +:105040000043102124420005000230832CC200815D +:10505000A605000A14400005A20400040000000098 +:105060000000000D00000000240002788F85003849 +:105070000E0005AB260400148F6200048F43010864 +:10508000A60200083C02100000621824106000080C +:105090000000000097420104920300072442FFEC45 +:1050A000346300023045FFFF0A0003C3A203000778 +:1050B000974201042442FFF03045FFFF96060008A6 +:1050C0002CC200135440000592030007920200070F +:1050D00034420001A20200079203000724020001EB +:1050E00010620005240200031062000B8F8200385A +:1050F0000A0003E030C6FFFF8F8200383C04FFFF48 +:105100008C43000C0064182400651825AC43000C87 +:105110000A0003E030C6FFFF3C04FFFF8C43001091 +:105120000064182400651825AC43001030C6FFFF4A +:1051300024C2000200021083A20200058F830038FF +:10514000304200FF00021080004328218CA800009C +:105150008CA2000024030004000217021443001272 +:1051600000000000974201043C03FFFF01031824E4 +:105170003042FFFF004610232442FFFE006240251C +:10518000ACA8000092030005306200FF000210800E +:1051900000501021904200143042000F00431021B3 +:1051A0000A000415A20200068CA400049742010420 +:1051B0009603000A3088FFFF3042FFFF00461023AD +:1051C0002442FFD60002140001024025ACA80004CE +:1051D000920200079204000524630028000318834C +:1051E0000064182134420004A2030006A202000752 +:1051F0008F8200042403FFFB34420002004310248A +:10520000AF820004920300068F87003800031880E5 +:10521000007010218C4400203C02FFF63442FFFF56 +:105220000082402400671821AE04000CAC68000C1A +:10523000920500063C03FF7F8E02000C00052880CB +:1052400000B020213463FFFF01033024948800263E +:1052500000A7282100431024AE02000CAC860020D9 +:10526000AC880024ACA8001024020010A742014022 +:1052700024020002A7400142A7400144A742014680 +:10528000974201043C0400082442FFFEA742014863 +:10529000240200010E00020CA742014A9603000AF4 +:1052A0009202000400431021244200023042000711 +:1052B00000021023304200070E000235AE0200103B +:1052C0008F6200003C0308008C6304442404001037 +:1052D000AF820008974201043042FFFF2442FFFEE4 +:1052E00000403821000237C33C0208008C420440D1 +:1052F000006718210067282B004610210045102167 +:105300003C010800AC2304443C010800AC220440EA +:105310000A0005150000000014A0000500000000B0 +:10532000000000000000000D000000002400030A3F +:105330008F4201780440FFFE000000000E00023D95 +:1053400027A4001414400005004080210000000044 +:105350000000000D00000000240003118E02000078 +:105360005440000692020007000000000000000DFB +:10537000000000002400031C9202000730420004D9 +:10538000104000058F8200042403FFFB344200021A +:1053900000431024AF8200048F620004044300081D +:1053A00092020007920200068E03000CAE0000007D +:1053B0000002108000501021AC4300209202000730 +:1053C00030420004544000099602000A920200058F +:1053D0003C03000100021080005010218C46001890 +:1053E00000C33021AC4600189602000A9206000461 +:1053F000277100080220202100C2302124C60005A8 +:10540000260500140E0005AB00063082920400064B +:105410008F6500043C027FFF000420800091202162 +:105420008C8300043442FFFF00A228240065182169 +:10543000AC8300049202000792040005920300046A +:10544000304200041040001496070008308400FF2A +:1054500000042080009120218C86000497420104E2 +:105460009605000A306300FF3042FFFF0043102121 +:105470000045102130E3FFFF004310232442FFD8F2 +:1054800030C6FFFF0002140000C23025AC860004C5 +:105490000A0004C992030007308500FF0005288038 +:1054A00000B128218CA4000097420104306300FF62 +:1054B0003042FFFF00431021004710233C03FFFF51 +:1054C000008320243042FFFF00822025ACA400008E +:1054D0009203000724020001106200060000000091 +:1054E0002402000310620011000000000A0004EC16 +:1054F0008E03001097420104920300049605000AEF +:105500008E24000C00431021004510212442FFF29C +:105510003C03FFFF008320243042FFFF0082202550 +:10552000AE24000C0A0004EC8E0300109742010424 +:10553000920300049605000A8E24001000431021F7 +:10554000004510212442FFEE3C03FFFF008320248E +:105550003042FFFF00822025AE2400108E03001091 +:105560002402000AA7420140A74301429603000A11 +:10557000920200043C04004000431021A742014471 +:10558000A740014697420104A742014824020001B6 +:105590000E00020CA742014A0E0002350000000076 +:1055A0008F6200009203000400002021AF820008F7 +:1055B000974201049606000A3042FFFF006218215C +:1055C000006028213C0308008C6304443C0208006E +:1055D0008C42044000651821004410210065382BDE +:1055E000004710213C010800AC2304443C010800A2 +:1055F000AC22044092040004008620212484000A86 +:105600003084FFFF0E0001E9000000009744010410 +:105610003084FFFF0E0001F7000000003C02100084 +:10562000AF4201780A0005878F820020148200278C +:105630003062000697420104104000673C024000BF +:105640003062400010400005000000000000000033 +:105650000000000D00000000240004208F420178AB +:105660000440FFFE24020800AF4201782402000833 +:10567000A7420140A74001428F82000497430104E2 +:1056800030420001104000073070FFFF2603FFFE8C +:1056900024020002A7420146A74301480A00053F31 +:1056A0002402000DA74001462402000DA742014A32 +:1056B0008F62000024040008AF8200080E0001E998 +:1056C000000000000A0005190200202110400042DD +:1056D0003C02400093620000304300F024020010BE +:1056E0001062000524020070106200358F820020D5 +:1056F0000A000588244200018F62000097430104DC +:105700003050FFFF3071FFFF8F4201780440FFFEF1 +:105710003202000700021023304200072403000A6F +:105720002604FFFEA7430140A7420142A7440144CB +:10573000A7400146A75101488F420108304200208E +:10574000144000022403000924030001A743014A76 +:105750000E00020C3C0400400E0002350000000068 +:105760003C0708008CE70444021110212442FFFE8C +:105770003C0608008CC604400040182100E3382194 +:10578000000010218F65000000E3402B00C2302193 +:105790002604000800C830213084FFFFAF850008D0 +:1057A0003C010800AC2704443C010800AC2604403E +:1057B0000E0001E9000000000A0005190220202166 +:1057C0000E00013B000000008F82002024420001F7 +:1057D000AF8200203C024000AF4201380A00029232 +:1057E000000000003084FFFF30C6FFFF00052C00E2 +:1057F00000A628253882FFFF004510210045282BF0 +:105800000045102100021C023042FFFF004310211E +:1058100000021C023042FFFF004310213842FFFF0C +:1058200003E000083042FFFF3084FFFF30A5FFFF98 +:1058300000001821108000070000000030820001E5 +:105840001040000200042042006518210A0005A152 +:105850000005284003E000080060102110C0000689 +:1058600024C6FFFF8CA2000024A50004AC82000027 +:105870000A0005AB2484000403E0000800000000D7 +:1058800010A0000824A3FFFFAC8600000000000069 +:10589000000000002402FFFF2463FFFF1462FFFAF0 +:1058A0002484000403E00008000000000000000160 +:1058B0000A00002A00000000000000000000000DA7 +:1058C000747870362E322E3162000000060201001C +:1058D00000000000000001360000EA600000000047 +:1058E00000000000000000000000000000000000B8 +:1058F00000000000000000000000000000000000A8 +:105900000000000000000000000000000000000097 +:105910000000001600000000000000000000000071 +:105920000000000000000000000000000000000077 +:105930000000000000000000000000000000000067 +:1059400000000000000000000000138800000000BC +:10595000000005DC00000000000000001000000353 +:10596000000000000000000D0000000D3C020800D7 +:1059700024423D683C0308002463401CAC40000006 +:105980000043202B1480FFFD244200043C1D08002E +:1059900037BD7FFC03A0F0213C100800261000A8B2 +:1059A0003C1C0800279C3D680E00044E00000000CF +:1059B0000000000D27BDFFB4AFA10000AFA200049E +:1059C000AFA30008AFA4000CAFA50010AFA6001451 +:1059D000AFA70018AFA8001CAFA90020AFAA0024F1 +:1059E000AFAB0028AFAC002CAFAD0030AFAE003491 +:1059F000AFAF0038AFB8003CAFB90040AFBC004417 +:105A0000AFBF00480E000591000000008FBF0048A6 +:105A10008FBC00448FB900408FB8003C8FAF003876 +:105A20008FAE00348FAD00308FAC002C8FAB0028D0 +:105A30008FAA00248FA900208FA8001C8FA7001810 +:105A40008FA600148FA500108FA4000C8FA3000850 +:105A50008FA200048FA1000027BD004C3C1B6004F6 +:105A60008F7A5030377B502803400008AF7A00000F +:105A70008F86003C3C0390003C0280000086282575 +:105A800000A32025AC4400203C0380008C6700204C +:105A900004E0FFFE0000000003E00008000000003A +:105AA0000A000070240400018F85003C3C04800043 +:105AB0003483000100A3102503E00008AC8200201D +:105AC00003E00008000010213084FFFF30A5FFFF35 +:105AD00010800007000018213082000110400002F1 +:105AE00000042042006518211480FFFB00052840B7 +:105AF00003E000080060102110C000070000000053 +:105B00008CA2000024C6FFFF24A50004AC82000084 +:105B100014C0FFFB2484000403E000080000000020 +:105B200010A0000824A3FFFFAC86000000000000C6 +:105B3000000000002402FFFF2463FFFF1462FFFA4D +:105B40002484000403E000080000000090AA003153 +:105B50008FAB00108CAC00403C0300FF8D6800044C +:105B6000AD6C00208CAD004400E060213462FFFF8A +:105B7000AD6D00248CA700483C09FF000109C0243A +:105B8000AD6700288CAE004C0182C824031978252B +:105B9000AD6F0004AD6E002C8CAD0038314A00FFB3 +:105BA000AD6D001C94A900323128FFFFAD680010D4 +:105BB00090A70030A5600002A1600004A16700006A +:105BC00090A30032306200FF0002198210600005CD +:105BD000240500011065000E0000000003E000082D +:105BE000A16A00018CD80028354A0080AD780018E1 +:105BF0008CCF0014AD6F00148CCE0030AD6E000859 +:105C00008CC4002CA16A000103E00008AD64000C04 +:105C10008CCD001CAD6D00188CC90014AD6900144A +:105C20008CC80024AD6800088CC70020AD67000C4C +:105C30008CC200148C8300700043C82B1320000713 +:105C4000000000008CC20014144CFFE400000000AF +:105C5000354A008003E00008A16A00018C820070D0 +:105C60000A0000E6000000009089003027BDFFF820 +:105C70008FA8001CA3A900008FA300003C0DFF808B +:105C800035A2FFFF8CAC002C00625824AFAB0000A3 +:105C9000A100000400C05821A7A000028D06000446 +:105CA00000A048210167C8218FA500000080502175 +:105CB0003C18FF7F032C20263C0E00FF2C8C00019B +:105CC000370FFFFF35CDFFFF3C02FF0000AFC824B8 +:105CD00000EDC02400C27824000C1DC003236825F9 +:105CE00001F87025AD0D0000AD0E00048D240024D8 +:105CF000AFAD0000AD0400088D2C00202404FFFF90 +:105D0000AD0C000C9547003230E6FFFFAD060010E9 +:105D10009145004830A200FF000219C25060000106 +:105D20008D240034AD0400148D4700388FAA00186C +:105D300027BD0008AD0B0028AD0A0024AD07001CEC +:105D4000AD00002CAD00001803E00008AD000020FD +:105D500027BDFFE0AFB20018AFB10014AFB0001024 +:105D6000AFBF001C9098003000C088213C0D00FFA0 +:105D7000330F007FA0CF0000908E003135ACFFFFC5 +:105D80003C0AFF00A0CE000194A6001EA220000441 +:105D90008CAB00148E29000400A08021016C282403 +:105DA000012A40240080902101052025A62600021A +:105DB000AE24000426050020262400080E000092D0 +:105DC00024060002924700302605002826240014ED +:105DD00000071E000003160324060004044000030D +:105DE0002403FFFF965900323323FFFF0E00009279 +:105DF000AE230010262400248FBF001C8FB2001891 +:105E00008FB100148FB00010240500030000302172 +:105E10000A00009C27BD002027BDFFD8AFB1001CA1 +:105E2000AFB00018AFBF002090A9003024020001DD +:105E300000E050213123003F00A040218FB00040FE +:105E40000080882100C04821106200148FA700380C +:105E5000240B000500A0202100C02821106B001396 +:105E6000020030210E000128000000009225007C75 +:105E700030A400021080000326030030AE00003082 +:105E8000260300348FBF00208FB1001C8FB0001894 +:105E90000060102103E0000827BD00280E0000A7C5 +:105EA000AFB000100A00016F000000008FA3003C9B +:105EB000010020210120282101403021AFA3001042 +:105EC0000E0000EEAFB000140A00016F00000000E9 +:105ED0003C06800034C20E008C4400108F850044C4 +:105EE000ACA400208C43001803E00008ACA30024FD +:105EF0003C06800034C20E008C4400148F850044A0 +:105F0000ACA400208C43001C03E00008ACA30024D8 +:105F10009382000C1040001B2483000F2404FFF028 +:105F20000064382410E00019978B00109784000E4D +:105F30009389000D3C0A601C0A0001AC01644023F7 +:105F400001037021006428231126000231C2FFFFE3 +:105F500030A2FFFF0047302B50C0000E00E4482164 +:105F60008D4D000C31A3FFFF00036400000C2C03D7 +:105F700004A1FFF30000302130637FFF0A0001A479 +:105F80002406000103E00008000000009784000ED2 +:105F900000E448213123FFFF3168FFFF0068382B00 +:105FA00054E0FFF8A783000E938A000D114000050E +:105FB000240F0001006BC023A380000D03E0000844 +:105FC000A798000E006BC023A38F000D03E000080C +:105FD000A798000E03E000080000000027BDFFE8BE +:105FE000AFB000103C10800036030140308BFFFF43 +:105FF00093AA002BAFBF0014A46B000436040E005C +:106000009488001630C600FF8FA90030A4680006EF +:10601000AC650008A0660012A46A001AAC670020F4 +:106020008FA5002CA4690018012020210E000198E2 +:10603000AC6500143C021000AE0201788FBF001462 +:106040008FB0001003E0000827BD00188F85000006 +:106050002484000727BDFFF83084FFF83C06800049 +:1060600094CB008A316AFFFFAFAA00008FA900001D +:10607000012540232507FFFF30E31FFF0064102B9D +:106080001440FFF700056882000D288034CC4000E2 +:1060900000AC102103E0000827BD00088F8200003B +:1060A0002486000730C5FFF800A2182130641FFFC6 +:1060B00003E00008AF8400008F87003C8F84004419 +:1060C00027BDFFB0AFB70044AFB40038AFB1002C6C +:1060D000AFBF0048AFB60040AFB5003CAFB300342F +:1060E000AFB20030AFB000283C0B80008C8600249B +:1060F000AD6700808C8A002035670E00356901008D +:10610000ACEA00108C8800248D2500040000B82122 +:10611000ACE800188CE3001000A688230000A02142 +:10612000ACE300148CE20018ACE2001C122000FE6C +:1061300000E0B021936C0008118000F40000000022 +:10614000976F001031EEFFFF022E682B15A000EFB5 +:1061500000000000977200103250FFFFAED0000028 +:106160003C0380008C740000329300081260FFFD35 +:106170000000000096D800088EC700043305FFFF1A +:1061800030B5000112A000E4000000000000000D86 +:1061900030BFA0402419004013F9011B30B4A00007 +:1061A000128000DF000000009373000812600008F6 +:1061B00000000000976D001031ACFFFF00EC202BB9 +:1061C0001080000330AE004011C000D50000000078 +:1061D000A7850040AF87003893630008022028217C +:1061E000AFB10020146000F527B40020AF60000CB0 +:1061F000978F004031F14000162000022403001662 +:106200002403000E24054007A363000AAF650014B1 +:10621000938A00428F70001431550001001512401E +:1062200002024825AF690014979F00408F78001440 +:1062300033F9001003194025AF680014979200400D +:106240003247000810E0016E000000008F67001464 +:106250003C1210003C11800000F27825AF6F001452 +:1062600036230E00946E000A3C0D81002406000EB9 +:1062700031CCFFFF018D2025AF640004A36600022E +:106280009373000A3406FFFC266B0004A36B000A1C +:1062900097980040330820001100015F00000000C3 +:1062A0003C05800034A90E00979900409538000CF9 +:1062B00097870040001940423312C00031030003A9 +:1062C00000127B0330F11000006F6825001172038B +:1062D00001AE6025000C20C0A76400129793004017 +:1062E000936A000A001359823175003C02AA1021FA +:1062F0002450003CA3700009953F000C33F93FFF88 +:10630000A779001097700012936900090130F821F5 +:1063100027E5000230B900070019C0233308000741 +:10632000A368000B9371000997720012976F001019 +:10633000322700FF8F910038978D004000F218211E +:10634000006F702101C6602131A6004010C0000519 +:106350003185FFFF00B1102B3C1280001040001768 +:10636000000098210225A82B56A0013E8FA50020F1 +:106370003C048000348A0E008D5300143C068000DB +:10638000AD5300108D4B001CAD4B0018AD45000007 +:106390008CCD000031AC00081180FFFD34CE0E0022 +:1063A00095C3000800A0882100009021A783004029 +:1063B0008DC6000424130001AF860038976F0010CB +:1063C00031F5FFFF8E9F000003F1282310A0011F6D +:1063D000AE85000093620008144000DD000000005C +:1063E0000E0001E7240400108F900048004028218F +:1063F0003C023200320600FF000654000142F8253C +:1064000026090001AF890048ACBF0000937900095C +:1064100097780012936F000A332800FF3303FFFFC1 +:106420000103382100076C0031EE00FF01AE60254A +:10643000ACAC00048F840048978B0040316A200088 +:106440001140010AACA4000897640012308BFFFFD2 +:1064500006400108ACAB000C978E004031C5000827 +:1064600014A0000226280006262800023C1F8000F7 +:1064700037E70E0094F900148CE5001C8F670004C8 +:10648000937800023324FFFF330300FFAFA3001013 +:106490008F6F0014AFA800180E0001CBAFAF00142F +:1064A000240400100E0001FB000000008E9200008A +:1064B00016400005000000008F7800142403FFBF81 +:1064C0000303A024AF7400148F67000C00F5C821EB +:1064D000AF79000C9375000816A0000800000000BA +:1064E00012600006000000008F6800143C0AEFFFF5 +:1064F0003549FFFE0109F824AF7F0014A37300089B +:106500008FA500200A00034F02202021AED10000F9 +:106510000A00022D3C03800014E0FF1E30BFA040A3 +:106520000E0001900000A0212E9100010237B0253D +:1065300012C000188FBF00488F87003C24170F003F +:1065400010F700D43C0680008CD901780720FFFEAC +:10655000241F0F0010FF00F634CA0E008D560014E1 +:1065600034C7014024080240ACF600048D49001CE9 +:106570003C141000ACE90008A0E00012A4E0001AEE +:10658000ACE00020A4E00018ACE80014ACD4017822 +:106590008FBF00488FB700448FB600408FB5003CD6 +:1065A0008FB400388FB300348FB200308FB1002C1D +:1065B0008FB0002803E0000827BD00508F910038FD +:1065C000978800403C1280000220A821310700403B +:1065D00014E0FF7C00009821977900108F9200381A +:1065E0003338FFFF131200A8000020210080A021F3 +:1065F000108000F300A088211620FECE00000000CD +:106600000A00031F2E9100013C0380008C62017878 +:106610000440FFFE240808008F860000AC68017863 +:106620003C038000946D008A31ACFFFF0186582343 +:10663000256AFFFF31441FFF2C8900081520FFF950 +:10664000000000008F8F0048347040008F83003CB2 +:1066500000E0A021240E0F0025E70001AF870048CD +:1066600000D03021023488233C08800031F500FF3F +:10667000106E0005240700019398004233130001B7 +:106680000013924036470001001524003C0A010027 +:10669000008A4825ACC900008F82004830BF003610 +:1066A00030B90008ACC200041320009900FF9825FF +:1066B00035120E009650000A8F8700003C0F8100B3 +:1066C0003203FFFF24ED000835060140006F60250E +:1066D0003C0E100031AB1FFF269200062405000E71 +:1066E000ACCC0020026E9825A4C5001AAF8B000028 +:1066F000A4D20018162000083C1080008F89003CAE +:1067000024020F00512200022417000136730040BA +:106710000E0001883C10800036060E008CCB001461 +:10672000360A014002402021AD4B00048CC5001CFC +:10673000AD450008A1550012AD5300140E0001989C +:106740003C151000AE1501780A000352000000004D +:10675000936F0009976E0012936D000B31E500FFF7 +:1067600000AE202131AC00FF008C80212602000AFF +:106770003050FFFF0E0001E7020020218F86004805 +:106780003C0341003C05800024CB0001AF8B004856 +:10679000936A00099769001230C600FF315F00FF5D +:1067A0003128FFFF03E8382124F900020006C40065 +:1067B0000319782501E37025AC4E00008F6D000CA5 +:1067C00034A40E00948B001401B26025AC4C00047C +:1067D0008C85001C8F670004936A00023164FFFF00 +:1067E000314900FFAFA900108F680014AFB1001845 +:1067F0000E0001CBAFA800140A0002FD0200202108 +:10680000AF600004A36000029798004033082000A6 +:106810001500FEA300003021A760001297840040FD +:10682000936B000A3C10800030931F0000135183CB +:10683000014BA82126A20028A362000936090E00F8 +:10684000953F000C0A000295A77F00108F7000147E +:10685000360900400E000188AF6900140A0002C921 +:10686000000000000A00034F000020210641FEFA4C +:10687000ACA0000C8CAC000C3C0D8000018D902570 +:106880000A0002EAACB2000C000090210A0002C526 +:1068900024130001128000073C028000344B0E00DC +:1068A0009566000830D300401260004900000000E7 +:1068B0003C0680008CD001780600FFFE34C50E0037 +:1068C00094B500103C03050034CC014032B8FFFF02 +:1068D00003039025AD92000C8CAF0014240D200012 +:1068E0003C041000AD8F00048CAE001CAD8E00087F +:1068F000A1800012A580001AAD800020A58000189C +:10690000AD8D0014ACC401780A0003263C0680005B +:106910008F9F0000351801402692000227F90008D9 +:1069200033281FFFA71200180A000391AF88000048 +:106930003C02800034450140ACA0000C1280001BDA +:1069400034530E0034510E008E370010ACB70004E3 +:106950008E2400183C0B8000ACA400083570014068 +:1069600024040040A20000128FBF0048A600001AB5 +:106970008FB70044AE0000208FB60040A60000187C +:106980008FB5003CAE0400148FB400388FB30034D0 +:106990008FB200308FB1002C8FB000283C02100065 +:1069A00027BD005003E00008AD6201788E66001438 +:1069B000ACA600048E64001C0A00042A3C0B800074 +:1069C0000E0001902E9100010A0003200237B0252D +:1069D000000000000000000D00000000240003691A +:1069E0000A0004013C06800027BDFFD8AFBF00208D +:1069F0003C0980003C1F20FFAFB200183C0760003C +:106A000035320E002402001037F9FFFDACE23008E9 +:106A1000AFB3001CAFB10014AFB00010AE5900000E +:106A20000000000000000000000000000000000066 +:106A3000000000003C1800FF3713FFFDAE530000BC +:106A40003C0B60048D7050002411FF7F3C0E00024F +:106A50000211782435EC380C35CD0109ACED4C1819 +:106A6000240A0009AD6C50008CE80438AD2A0008F7 +:106A7000AD2000148CE54C1C3106FFFF38C42F718B +:106A800000051E023062000F2486C0B310400007CC +:106A9000AF8200088CE54C1C3C09001F3528FC0027 +:106AA00000A81824000321C2AF8400048CF1080858 +:106AB0003C0F57092412F0000232702435F0001008 +:106AC00001D0602601CF68262DAA00012D8B000180 +:106AD000014B382550E00009A380000C3C1F601CCE +:106AE0008FF8000824190001A399000C33137C00CF +:106AF000A7930010A780000EA380000DAF80004870 +:106B000014C00003AF8000003C066000ACC0442C01 +:106B10000E0005B93C1080000E000F1A361101005E +:106B20003C12080026523DD03C13080026733E500C +:106B30008E03000038640001308200011440FFFC25 +:106B40003C0B800A8E2600002407FF8024C90240E7 +:106B5000312A007F014B402101272824AE06002066 +:106B6000AF880044AE0500243C048000AF86003CA2 +:106B70008C8C01780580FFFE24180800922F0008F5 +:106B8000AC980178A38F0042938E004231CD000172 +:106B900011A0000F24050D0024DFF8002FF90301D8 +:106BA0001320001C000629C224A4FFF00004104298 +:106BB000000231400E00020200D2D8213C02400007 +:106BC0003C068000ACC201380A0004A000000000AE +:106BD00010C50023240D0F0010CD00273C1F800896 +:106BE00037F9008093380000240E0050330F00FF67 +:106BF00015EEFFF33C0240000E000A3600000000D4 +:106C00003C0240003C068000ACC201380A0004A0EF +:106C1000000000008F83000400A3402B1500000B30 +:106C20008F8B0008006B50212547FFFF00E5482BA4 +:106C30001520000600A36023000C19400E0002027C +:106C40000073D8210A0004C43C0240000000000D7B +:106C50000E000202000000000A0004C43C024000D2 +:106C60003C1B0800277B3F500E0002020000000082 +:106C70000A0004C43C0240003C1B0800277B3F7014 +:106C80000E000202000000000A0004C43C024000A2 +:106C90003C0660043C09080025290104ACC9502CBD +:106CA0008CC850003C0580003C0200023507008083 +:106CB000ACC750003C040800248415A43C03080021 +:106CC0002463155CACA50008ACA2000C3C010800D4 +:106CD000AC243D603C010800AC233D6403E00008A7 +:106CE0002402000100A030213C1C0800279C3D68C4 +:106CF0003C0C04003C0B0002008B3826008C402624 +:106D00002CE200010007502B2D050001000A4880ED +:106D10003C03080024633D60004520250123182121 +:106D20001080000300001021AC6600002402000166 +:106D300003E00008000000003C1C0800279C3D68A0 +:106D40003C0B04003C0A0002008A3026008B3826E7 +:106D50002CC200010006482B2CE5000100094080F0 +:106D60003C03080024633D600045202501031821F1 +:106D700010800005000010213C0C0800258C155CDB +:106D8000AC6C00002402000103E0000800000000D9 +:106D90003C0900023C08040000883026008938269F +:106DA0002CC30001008028212CE400010083102561 +:106DB0001040000B000030213C1C0800279C3D685F +:106DC0003C0A80008D4E00082406000101CA682597 +:106DD000AD4D00088D4C000C01855825AD4B000CC5 +:106DE00003E0000800C010213C1C0800279C3D68FF +:106DF0003C0580008CA6000C000420272402000122 +:106E000000C4182403E00008ACA3000C3C020002FC +:106E10001082000B3C0560003C0704001087000353 +:106E20000000000003E00008000000008CA908D06A +:106E3000240AFFFD012A402403E00008ACA808D082 +:106E40008CA408D02406FFFE0086182403E0000866 +:106E5000ACA308D03C05601A34A600108CC3008097 +:106E600027BDFFF88CC50084AFA3000093A40000E9 +:106E70002402000110820003AFA5000403E0000813 +:106E800027BD000893A7000114E0001497AC00028E +:106E900097B800023C0F8000330EFFFC01CF682141 +:106EA000ADA50000A3A000003C0660008CC708D080 +:106EB0002408FFFE3C04601A00E82824ACC508D072 +:106EC0008FA300048FA200003499001027BD000892 +:106ED000AF22008003E00008AF2300843C0B800059 +:106EE000318AFFFC014B48218D2800000A00057DF6 +:106EF000AFA8000427BDFFE8AFBF00103C1C08008E +:106F0000279C3D683C0580008CA4000C8CA20004EA +:106F10003C0300020044282410A0000A00A3182407 +:106F20003C0604003C0400021460000900A6102482 +:106F30001440000F3C0404000000000D3C1C08003D +:106F4000279C3D688FBF001003E0000827BD001894 +:106F50003C0208008C423D600040F809000000003F +:106F60003C1C0800279C3D680A0005A68FBF001046 +:106F70003C0208008C423D640040F809000000001B +:106F80000A0005AC00000000000411C003E0000886 +:106F9000244202403C04080024843FB42405001A23 +:106FA0000A00009C0000302127BDFFE0AFB00010B8 +:106FB0003C108000AFBF0018AFB1001436110100C3 +:106FC000922200090E0005B63044007F8E3F00007B +:106FD0008F89003C3C0F008003E26021258800403F +:106FE0000049F821240DFF80310E00783198007897 +:106FF00035F9000135F100020319382501D1482582 +:10700000010D302403ED5824018D2824240A00406A +:1070100024040080240300C0AE0B0024AE0008103E +:10702000AE0A0814AE040818AE03081CAE05080426 +:10703000AE070820AE060808AE0908243609090084 +:107040009539000C3605098033ED007F3338FFFF9A +:10705000001889C0AE110800AE0F0828952C000C4E +:107060008FBF00188FB10014318BFFFF000B51C090 +:10707000AE0A002C8CA400508FB000108CA3003CF2 +:107080008D2700048CA8001C8CA600383C0E800ABA +:1070900001AE102127BD0020AF820044AF84005014 +:1070A000AF830054AF87004CAF88005C03E000085A +:1070B000AF8600603C09080091293FD924A800024E +:1070C0003C05110000093C0000E8302500C51825EA +:1070D00024820008AC83000003E00008AC800004B8 +:1070E0003C098000352309009128010B906A0011AA +:1070F0002402002800804821314700FF00A07021B1 +:1071000000C068213108004010E20002340C86DD26 +:10711000240C08003C0A800035420A9A944700007B +:10712000354B0A9C35460AA030F9FFFFAD39000007 +:107130008D780000354B0A8024040001AD3800042E +:107140008CCF0000AD2F00089165001930A300031B +:107150001064009028640002148000AF240500022F +:107160001065009E240F0003106F00B435450AA47B +:10717000240A0800118A0048000000005100003D68 +:107180003C0B80003C0480003483090090670012AF +:1071900030E200FF004D7821000FC8802724000155 +:1071A0003C0A8000354F090091E50019354C0980F3 +:1071B0008D87002830A300FF0003150000475825E5 +:1071C0000004C4003C19600001793025370806FF2F +:1071D000AD260000AD2800048DEA002C25280028EB +:1071E000AD2A00088DEC0030AD2C000C8DE500348C +:1071F000AD2500108DE400383C05800034AC093C1E +:10720000AD2400148DE3001CAD2300188DE7002091 +:10721000AD27001C8DE20024AD2200208DF900284E +:1072200034A20100AD3900248D830000AD0E0004AE +:1072300034B90900AD0300008C47000C250200148E +:10724000AD070008932B00123C04080090843FD83F +:10725000AD000010317800FF030D302100064F0013 +:1072600000047C00012F702535CDFFFC03E00008F1 +:10727000AD0D000C35780900930600123C0508009E +:1072800094A53FC830C800FF010D5021000A60805E +:107290000A00063C018520211500005B000000006B +:1072A0003C08080095083FCE3C06080094C63FC83D +:1072B000010610213C0B800035790900933800113C +:1072C000932A001935660A80330800FF94CF002AFC +:1072D00000086082314500FF978A0058000C1E00AC +:1072E000000524003047FFFF006410250047C0253B +:1072F00001EA30213C0B4000030B402500066400EE +:10730000AD280000AD2C0004932500183C030006B6 +:107310002528001400053E0000E31025AD220008DA +:107320008F24002C3C05800034AC093CAD24000CBB +:107330008F38001C34A20100254F0001AD38001029 +:107340008D830000AD0E000431EB7FFFAD03000024 +:107350008C47000C34B90900A78B0058AD07000812 +:10736000932B00123C04080090843FD8250200149F +:10737000317800FF030D302100064F0000047C002F +:10738000012F702535CDFFFCAD00001003E0000893 +:10739000AD0D000C3C02080094423FD23C050800B1 +:1073A00094A53FC835440AA43C07080094E73FC4AD +:1073B000948B00000045C8210327C023000B1C004C +:1073C0002706FFF200665025AD2A000CAD20001004 +:1073D000AD2C00140A00063025290018354F0AA4E8 +:1073E00095E50000956400280005140000043C00A9 +:1073F0003459810000EC5825AD39000CAD2B00103C +:107400000A000630252900143C0C0800958C3FCE5C +:107410000A000681258200015460FF56240A0800F4 +:1074200035580AA49706000000061C00006C502581 +:10743000AD2A000C0A000630252900103C03080084 +:1074400094633FD23C07080094E73FC83C0F080014 +:1074500095EF3FC494A4000095790028006710219F +:10746000004F582300041C00001934002578FFEE5B +:1074700000D87825346A8100AD2A000CAD2F0010A9 +:10748000AD200014AD2C00180A0006302529001C80 +:1074900003E00008240207D027BDFFE0AFB20018C8 +:1074A000AFB10014AFB00010AFBF001C0E00007CE5 +:1074B000008088218F8800548F87004C3C0580080D +:1074C00034B20080011128213C1080002402008089 +:1074D000240300C000A72023AE0208183C06800841 +:1074E000AE03081C18800004AF850054ACC500042E +:1074F0008CC90004AF89004C1220000936040980B1 +:107500000E0006F800000000924C00278E0B00745D +:1075100001825004014B3021AE46000C3604098034 +:107520008C8E001C8F8F005C01CF682319A0000493 +:107530008FBF001C8C90001CAF90005C8FBF001CA4 +:107540008FB200188FB100148FB000100A00007EB7 +:1075500027BD00208F8600508F8300548F82004CFF +:107560003C05800834A40080AC860050AC83003C0D +:1075700003E00008ACA200043C0308008C63005444 +:1075800027BDFFF8308400FF2462000130A500FF12 +:107590003C010800AC22005430C600FF3C078000CC +:1075A0008CE801780500FFFE3C0C7FFFA3A40003DC +:1075B0008FAA0000358BFFFF014B4824000627C02F +:1075C00001244025AFA8000034E201009043000AE6 +:1075D000A3A000023C1980FFA3A300018FAF00000D +:1075E00030AE007F3738FFFF01F86024000E6E00D8 +:1075F0003C0A002034E50140018D58253549200022 +:107600002406FF803C04100027BD0008ACAB000C32 +:10761000ACA90014A4A00018A0A6001203E0000862 +:10762000ACE40178308800FF30A700FF3C03800005 +:107630008C6201780440FFFE3C0C8000358A0A0011 +:107640008D4B00203584014035850980AC8B0004CA +:107650008D4900240007302B00061540AC89000836 +:10766000A088001090A3004CA083002D03E0000828 +:10767000A480001827BDFFE8308400FFAFBF0010D2 +:107680000E00075D30A500FF8F8300548FBF0010F0 +:107690003C06800034C50140344700402404FF907C +:1076A0003C02100027BD0018ACA3000CA0A40012DF +:1076B000ACA7001403E00008ACC2017827BDFFE0CE +:1076C0003C088008AFBF001CAFB20018AFB1001477 +:1076D000AFB00010351000808E0600183C07800007 +:1076E000309200FF00C72025AE0400180E00007C79 +:1076F00030B100FF92030005346200080E00007EE6 +:10770000A2020005024020210E000771022028215C +:10771000024020218FBF001C8FB200188FB10014CF +:107720008FB0001024050005240600010A0007326E +:1077300027BD00203C05800034A309809066000826 +:1077400030C200081040000F3C0A01013549080A08 +:10775000AC8900008CA80074AC8800043C070800C9 +:1077600090E73FD830E5001050A00008AC8000083A +:107770003C0D800835AC00808D8B0058AC8B000828 +:107780002484000C03E00008008010210A0007B5E3 +:107790002484000C27BDFFE83C098000AFB0001036 +:1077A000AFBF00143526098090C8000924020006E6 +:1077B00000A05821310300FF3527090000808021F7 +:1077C000240500041062007B2408000294CF005CB2 +:1077D0003C0E020431EDFFFF01AE6025AE0C00004F +:1077E00090CA00083144002010800008000000000A +:1077F00090C2004E3C1F010337F90300305800FFD0 +:107800000319302524050008AE06000490F9001184 +:1078100090E6001290E40011333800FF00187082E7 +:1078200030CF00FF01CF5021014B6821308900FF8C +:1078300031AAFFFF39230028000A60801460002C61 +:10784000020C482390E400123C198000372F0100FD +:10785000308C00FF018B1821000310800045F821B7 +:10786000001F8400360706FFAD270004373F0900DC +:1078700093EC001193EE0012372609800005C082B8 +:107880008DE4000C8CC5003431CD00FF01AB10211C +:107890000058182100A4F8230008840000033F00CA +:1078A00000F0302533F9FFFF318F00FC00D970253F +:1078B0000158202101E9682100045080ADAE000C80 +:1078C0000E00007C012A80213C088008240B000463 +:1078D000350500800E00007EA0AB000902001021DB +:1078E0008FBF00148FB0001003E0000827BD001800 +:1078F00090EC001190E300193C18080097183FCE57 +:10790000318200FF0002F882307000FF001FCE00BD +:1079100000103C000327302500D870253C0F4000A4 +:1079200001CF68253C198000AD2D0000373F0900CC +:1079300093EC001193EE0012372F010037260980D7 +:107940000005C0828DE4000C8CC5003431CD00FFF1 +:1079500001AB10210058182100A4F823000884006E +:1079600000033F0000F0302533F9FFFF318F00FCAA +:1079700000D970250158202101E9682100045080B8 +:10798000ADAE000C0E00007C012A80213C0880086E +:10799000240B0004350500800E00007EA0AB00091A +:1079A000020010218FBF00148FB0001003E0000808 +:1079B00027BD00180A0007C72408001227BDFFD002 +:1079C0003C038000AFB60028AFB50024AFB4002060 +:1079D000AFB10014AFBF002CAFB3001CAFB20018A2 +:1079E000AFB000103467010090E6000B309400FF48 +:1079F00030B500FF30C200300000B02110400099C7 +:107A000000008821346409809088000800082E0056 +:107A100000051E03046000C0240400048F86005487 +:107A20003C010800A0243FD83C0C8000AD800048F9 +:107A30003C048000348E010091CD000B31A5002064 +:107A400010A000073C078000349309809272000860 +:107A50000012860000107E0305E000C43C1F800871 +:107A600034EC0100918A000B34EB09809169000825 +:107A7000314400400004402B3123000800C8982303 +:107A80001460000224120003000090213C108000CA +:107A900036180A8036040900970E002C90830011D6 +:107AA0009089001293050018307F00FF312800FFF5 +:107AB000024810210002C880930D0018033F78216E +:107AC00001F1302130B100FF00D11821A78E0058FC +:107AD0003C010800A4263FCE3C010800A4233FD06F +:107AE00015A00002000000000000000D920B010B29 +:107AF0003065FFFF3C010800A4233FD2316A0040FB +:107B00003C010800A4203FC83C010800A4203FC459 +:107B10001140000224A4000A24A4000B3091FFFFAE +:107B20000E0001E7022020219206010B3C0C080008 +:107B3000958C3FD2004020210006698231A70001C8 +:107B40000E00060101872821004020210260282123 +:107B50000E00060C024030210E0007A1004020213B +:107B600016C00069004020219212010B32560040DD +:107B700012C000053C0500FF8C93000034AEFFFFEF +:107B8000026E8024AC9000000E0001FB0220202138 +:107B90003C0F080091EF3FD831F10003122000168E +:107BA0003C1380088F8200543C09800835280080EF +:107BB000245F0001AD1F003C3C0580088CB9000427 +:107BC00003E02021033FC0231B000002AF9F0054AD +:107BD0008CA400040E0006F8ACA400043C0780004E +:107BE0008CEB00743C04800834830080004B5021EF +:107BF000AC6A000C3C1380083670008002802021A3 +:107C000002A02821A200006B0E00075D3C1480003A +:107C10008F920054368C0140AD92000C8F86004844 +:107C20003C151000344D000624D60001AF960048E4 +:107C30008FBF002CA18600128FB60028AD8D0014D6 +:107C40008FB3001CAE9501788FB200188FB5002459 +:107C50008FB400208FB100148FB0001003E0000833 +:107C600027BD003034640980908F0008000F760033 +:107C7000000E6E0305A00033347F090093F8001B4B +:107C8000241900103C010800A0393FD8331300022A +:107C90001260FF678F8600548F8200601446FF6574 +:107CA0003C0480000E00007C000000003C048008C2 +:107CB0003485008090A8000924060016310300FFD7 +:107CC0001066000D0000000090AB00093C070800A2 +:107CD00090E73FD824090008316400FF34EA00012E +:107CE0003C010800A02A3FD81089002F240C000A6C +:107CF000108C00282402000C0E00007E0000000002 +:107D00000A0008608F8600540E0007B9024028213F +:107D10000A0008AE004020213C0B8008356A008034 +:107D20008D4600548CE9000C1120FF3DAF860054B5 +:107D3000240700143C010800A0273FD80A00085F70 +:107D40003C0C800090910008241200023C010800C5 +:107D5000A0323FD8323000201200000B2416000160 +:107D60008F8600540A0008602411000837F800804C +:107D70008F020038AFE200048FF90004AF19003C15 +:107D80000A00086C3C0780008F8600540A000860D7 +:107D900024110004A0A200090E00007E00000000D3 +:107DA0000A0008608F860054240200140A00093A71 +:107DB000A0A2000927BDFFE8AFB000103C10800072 +:107DC000AFBF001436020100904400090E00075DA9 +:107DD000240500013C0480089099000E3483008043 +:107DE000909F000F906F00269089000A33F800FFE3 +:107DF00000196E000018740031EC00FF01AE502530 +:107E0000000C5A00014B3825312800FF3603014091 +:107E10003445600000E830252402FF813C04100056 +:107E2000AC66000C8FBF0014AC650014A062001299 +:107E3000AE0401788FB0001003E0000827BD0018E1 +:107E400027BDFFE8308400FFAFBF00100E00075DC4 +:107E500030A500FF3C05800034A4014034470040B9 +:107E60002406FF92AC870014A08600128F83005472 +:107E70008FBF00103C02100027BD0018AC83000C1F +:107E800003E00008ACA2017827BDFFD8AFB0001016 +:107E9000308400FF30B000FF3C058000AFB100141B +:107EA000AFBF0020AFB3001CAFB20018000410C277 +:107EB00034A60100320300023051000114600007B3 +:107EC00090D200093C098008353300809268000593 +:107ED0003107000810E0000C308A00100240202119 +:107EE0000E00078302202821240200018FBF0020FA +:107EF0008FB3001C8FB200188FB100148FB0001028 +:107F000003E0000827BD00281540003434A50A000E +:107F10008CB800248CAF0008130F004B00003821F0 +:107F20003C0D800835B30080926C00682406000286 +:107F3000318B00FF116600843C06800034C20100D2 +:107F40009263004C90590009307F00FF53F9000400 +:107F50003213007C10E00069000000003213007C46 +:107F60005660005C0240202116200009320D0001FD +:107F70003C0C800035840100358B0A008D6500249F +:107F80008C86000414A6FFD900001021320D0001D8 +:107F900011A0000E024020213C1880003710010083 +:107FA0008E0F000C8F8E005011EE000800000000B4 +:107FB0000E000843022028218E19000C3C1F800867 +:107FC00037F00080AE190050024020210E000771EA +:107FD000022028210A00098F240200013C05080024 +:107FE0008CA5006424A400013C010800AC240064BA +:107FF0001600000D00000000022028210E0007716D +:1080000002402021926E0068240C000231CD00FF56 +:1080100011AC0022024020210E00094100000000A6 +:108020000A00098F240200010E00007024040001E0 +:10803000926B0025020B30250E00007EA266002503 +:108040000A0009D3022028218E6200188CDF000468 +:108050008CB9002400021E0217F9FFB13065007FC1 +:108060009268004C264400013093007F1265004066 +:10807000310300FF1464FFAB3C0D8008264700016C +:1080800030F1007F30E200FF1225000B24070001D1 +:10809000004090210A00099C2411000124050004DD +:1080A0000E000732240600010E0009410000000006 +:1080B0000A00098F240200012405FF8002452024C4 +:1080C00000859026324200FF004090210A00099C62 +:1080D000241100010E00084302202821320700303D +:1080E00010E0FFA132100082024020210E00078321 +:1080F000022028210A00098F240200018E6900183D +:108100000240202102202821012640250E0009647A +:10811000AE6800189264004C240500032406000198 +:108120000E000732308400FF0E00007024040001AE +:1081300092710025021150250E00007EA26A0025D2 +:108140000A00098F240200018E6F00183C1880007D +:108150000240202101F87025022028210E0007711D +:10816000AE6E00189264004C0A000A1B240500043D +:10817000324A0080394900801469FF6A3C0D80084A +:108180000A0009F42647000127BDFFC0AFB0001860 +:108190003C108000AFBF0038AFB70034AFB600303E +:1081A000AFB5002CAFB40028AFB30024AFB20020AD +:1081B0000E0005BEAFB1001C360201009045000B59 +:1081C0000E00097690440008144000E78FBF003885 +:1081D0003C08800835070080A0E0006B3606098067 +:1081E00090C50000240300503C17080026F73F907C +:1081F00030A400FF3C13080026733FA01083000347 +:108200003C1080000000B82100009821241F0010BD +:108210003611010036120A00361509808E580024E6 +:108220008E3400048EAF00208F8C00543C01080077 +:10823000A03F3FD836190A80972B002C8EF60000FD +:10824000932A00180298702301EC68233C0108006F +:10825000AC2E3FB43C010800AC2D3FB83C010800F7 +:10826000AC2C3FDCA78B005802C0F809315400FF4A +:1082700030490002152000E930420001504000C49E +:108280009227000992A90008312800081500000271 +:10829000241500030000A8213C0A80003543090092 +:1082A00035440A008C8D00249072001190700012E9 +:1082B000907F0011325900FF321100FF02B11021EE +:1082C0000002C08033EF00FF0319B021028F70213C +:1082D00002D4602125CB00103C010800A4363FCE1B +:1082E0003C010800AC2D3FE03C010800A42C3FD02D +:1082F0003C010800A42B3FCC3556010035540980C1 +:1083000035510E008F8700548F89005C8E850020C8 +:1083100024080006012730233C010800AC283FD484 +:1083200000A7282304C000B50000902104A000B3DA +:1083300000C5502B114000B5000000003C010800B2 +:10834000AC263FB88E6200000040F8090000000033 +:108350003046000214C0007400408021304B000100 +:10836000556000118E6200043C0D08008DAD3FBCCD +:108370003C0EC0003C04800001AE6025AE2C000025 +:108380008C980000330F000811E0FFFD0000000092 +:10839000963F000824120001A79F00408E39000478 +:1083A000AF9900388E6200040040F8090000000018 +:1083B0000202802532030002146000B300000000B6 +:1083C0003C09080095293FC43C06080094C63FD0EC +:1083D0003C0A0800954A3FC63C0708008CE73FBCB2 +:1083E000012670213C0308008C633FE03C08080034 +:1083F00095083FDA01CA20218ED9000C00E9282116 +:10840000249F000200A878210067C02133E4FFFF09 +:10841000AF9900503C010800AC383FE03C01080037 +:10842000A42F3FC83C010800A42E3FD20E0001E754 +:10843000000000008F8D0048004020213C01080012 +:10844000A02D3FD98E62000825AC0001AF8C0048FA +:108450000040F809000000008F85005402A0302180 +:108460000E00060C004020210E0007A10040202134 +:108470008E6B000C0160F809004020213C0A0800C6 +:10848000954A3FD23C06080094C63FC601464821A3 +:10849000252800020E0001FB3104FFFF3C05080007 +:1084A0008CA53FB43C0708008CE73FBC00A7202305 +:1084B0003C010800AC243FB414800006000000001A +:1084C0003C0208008C423FD4344B00403C01080081 +:1084D000AC2B3FD4124000438F8E00448E2D0010F1 +:1084E0008F920044AE4D00208E2C0018AE4C00241C +:1084F0003C04080094843FC80E0006FA0000000007 +:108500008F9F00548E6700103C010800AC3F3FDC99 +:1085100000E0F809000000003C1908008F393FB462 +:108520001720FF798F870054979300583C11800ED5 +:10853000321601000E000729A633002C16C0004594 +:10854000320300105460004C8EE5000432080040F5 +:108550005500001D8EF000088EE4000C0080F80924 +:10856000000000008FBF00388FB700348FB6003096 +:108570008FB5002C8FB400288FB300248FB2002059 +:108580008FB1001C8FB0001803E0000827BD004029 +:108590008F86003C36110E0000072E0000A6202515 +:1085A000AE0400808E4300208E500024AFA3001044 +:1085B000AE2300148FB20010AE320010AE30001C9B +:1085C0000A000A75AE3000180200F8090000000029 +:1085D0008EE4000C0080F809000000000A000B2E59 +:1085E0008FBF003824180001240F0001A5C000200F +:1085F000A5D800220A000B10ADCF00243C010800D2 +:10860000AC203FB80A000AA68E6200003C010800B8 +:10861000AC253FB80A000AA68E6200009224000929 +:108620000E000771000028218FBF00388FB700347B +:108630008FB600308FB5002C8FB400288FB3002484 +:108640008FB200208FB1001C8FB0001803E000082B +:1086500027BD00403C1480009295010900002821AC +:108660000E00084332A400FF320300105060FFB830 +:10867000320800408EE5000400A0F8090000000068 +:108680000A000B28320800405240FFA89793005878 +:108690008E3400148F930044AE7400208E35001C7D +:1086A000AE7500240A000B1F979300588F820014A8 +:1086B0000004218003E00008008210213C078008AC +:1086C00034E200809043006900804021106000097E +:1086D0003C0401003C0708008CE73FDC8F8300303E +:1086E00000E32023048000089389001C14E30003A6 +:1086F0000100202103E00008008010213C0401005B +:1087000003E00008008010211120000B00673823CF +:108710003C0D800035AC0980918B007C316A0002F1 +:10872000114000202409003400E9702B15C0FFF12E +:108730000100202100E938232403FFFC00A3C82402 +:1087400000E3C02400F9782B15E0FFEA030820219C +:1087500030C400030004102314C000143049000387 +:108760000000302100A9782101E6702100EE682B7D +:1087700011A0FFE03C0401002D3800010006C82BC9 +:10878000010548210319382414E0FFDA2524FFFCF1 +:108790002402FFFC00A218240068202103E0000846 +:1087A000008010210A000B9E240900303C0C800040 +:1087B0003586098090CB007C316A00041540FFE9C2 +:1087C000240600040A000BAD000030213C03080021 +:1087D0008C63005C8F82001827BDFFE0AFBF0018DC +:1087E000AFB1001410620005AFB00010000329C043 +:1087F00024A40280AF840014AF8300183C108000D2 +:1088000036020A0094450032361101000E000B7F3B +:1088100030A43FFF8E240000241FFF803C11008005 +:108820000082C021031F60243309007F000CC9406F +:1088300003294025330E0078362F00033C0D10002D +:10884000010D502501CF5825AE0C002836080980AF +:10885000AE0C080CAE0B082CAE0A08309103006970 +:108860003C06800C0126382110600006AF870034DA +:108870008D09003C8D03006C0123382318E0008231 +:10888000000000003C0B8008356A00803C1080002E +:10889000A1400069360609808CC200383C06800081 +:1088A00034C50A0090A8003C310C00201180001A49 +:1088B000AF820030240D00013C0E800035D10A004B +:1088C000A38D001CAF8000248E2400248F850024FB +:1088D000240D0008AF800020AF8000283C01080074 +:1088E000A42D3FC63C010800A4203FDA0E000B83F4 +:1088F000000030219228003C8FBF00188FB1001477 +:108900008FB0001000086142AF82002C27BD00200C +:1089100003E000083182000190B80032240E00010B +:10892000330F00FF000F2182108E00412419000236 +:108930001099006434C40AC03C03800034640A0007 +:108940008C8F002415E0001E34660900909F0030D3 +:108950002418000533F9003F1338004E24030001AA +:108960008F860020A383001CAF860028AF860024DA +:108970003C0E800035D10A008E2400248F8500240F +:10898000240D00083C010800A42D3FC63C0108004E +:10899000A4203FDA0E000B83000000009228003C68 +:1089A0008FBF00188FB100148FB000100008614213 +:1089B000AF82002C27BD002003E0000831820001B7 +:1089C0008C8A00088C8B00248CD000643C0E8000C4 +:1089D00035D10A00014B2823AF900024A380001C4E +:1089E000AF8500288E2400248F8600208F850024E8 +:1089F000240D00083C010800A42D3FC63C010800DE +:108A0000A4203FDA0E000B83000000009228003CF7 +:108A10008FBF00188FB100148FB0001000086142A2 +:108A2000AF82002C27BD002003E000083182000146 +:108A300090A200303051003F5224002834C50AC0B3 +:108A40008CB000241600002234CB09008CA600480C +:108A50003C0A7FFF3545FFFF00C510243C0E800017 +:108A6000AF82002035C509008F8800208CAD0060E2 +:108A7000010D602B15800002010020218CA40060F4 +:108A80000A000C22AF8400208D02006C0A000BFC4F +:108A90003C0680008C8200488F8600203C097FFFC6 +:108AA0003527FFFF004788243C0480082403000189 +:108AB000AF910028AC80006CA383001C0A000C302E +:108AC000AF8600248C9F00140A000C22AF9F002068 +:108AD0008D6200680A000C6C3C0E800034C4098072 +:108AE0008C8900708CA300140123382B10E0000443 +:108AF000000000008C8200700A000C6C3C0E8000AC +:108B00008CA200140A000C6C3C0E80008F8500249F +:108B100027BDFFE0AFBF0018AFB1001414A00008DC +:108B2000AFB000103C04800034870A0090E60030AB +:108B30002402000530C3003F106200B934840900EC +:108B40008F91002000A080213C048000348E0A0018 +:108B50008DCD00043C0608008CC63FB831A73FFF0E +:108B600000E6602B5580000100E03021938F001C4F +:108B700011E0007800D0282B349F098093F9007C05 +:108B800033380002130000792403003400C3102B93 +:108B9000144000D90000000000C3302300D0282B6F +:108BA0003C010800A4233FC414A0006E0200182159 +:108BB0003C0408008C843FB40064402B5500000145 +:108BC000006020213C05800034A90A00912A003C65 +:108BD0003C010800AC243FBC31430020146000037A +:108BE0000000482134AB0E008D6900188F88002CDE +:108BF0000128202B1080005F000000003C050800C9 +:108C00008CA53FBC00A96821010D602B1180005C80 +:108C100000B0702B0109382300E028213C01080036 +:108C2000AC273FBC12000003240AFFFC10B0008DEB +:108C30003224000300AA18243C010800A4203FDAD3 +:108C40003C010800AC233FBC006028218F84002435 +:108C5000120400063C0B80088D6C006C0200202181 +:108C6000AF91002025900001AD70006C8F8D002821 +:108C700000858823AF91002401A52023AF8400281C +:108C80001220000224070018240700103C18800856 +:108C90003706008090CF00683C010800A0273FD82D +:108CA0002407000131EE00FF11C70047000000005B +:108CB00014800018000028213C06800034D109806F +:108CC00034CD010091A600098E2C001824C40001A7 +:108CD000000C86023205007F308B007F1165007F1B +:108CE0002407FF803C19800837290080A124004C0C +:108CF0003C0808008D083FD4241800023C010800FD +:108D0000A0384019350F00083C010800AC2F3FD4B3 +:108D1000240500103C02800034440A009083003C8B +:108D2000307F002013E0000500A02021240A00016C +:108D30003C010800AC2A3FBC34A400018FBF0018DE +:108D40008FB100148FB000100080102103E00008E4 +:108D500027BD00203C010800A4203FC410A0FF94C0 +:108D6000020018210A000CC000C018210A000CB72C +:108D7000240300303C0508008CA53FBC00B0702BDC +:108D800011C0FFA8000000003C19080097393FC43B +:108D90000325C0210307782B11E000072CAA00044B +:108DA0003C0360008C625404305F003F17E0FFE337 +:108DB000240400422CAA00041140FF9A240400421B +:108DC0000A000D248FBF00181528FFB9000000000D +:108DD0008CCA00183C1F800024020002015F182585 +:108DE000ACC3001837F90A00A0C200689329003C00 +:108DF0002404000400A01021312800203C010800B8 +:108E0000A0244019110000022405001024020001D2 +:108E10003C010800AC223FB40A000D1A3C0280005D +:108E20008F8800288C8900600109282B14A000027B +:108E3000010088218C9100603C048000348B0E007E +:108E40008D640018240A000102202821022030210C +:108E5000A38A001C0E000B83022080210A000CA6AE +:108E6000AF82002C00045823122000073164000355 +:108E70003C0E800035C7098090ED007C31AC0004C9 +:108E800015800019248F00043C010800A4243FDA57 +:108E90003C1F080097FF3FDA03E5C82100D9C02B2B +:108EA0001300FF6B8F8400242CA6000514C0FFA3C1 +:108EB0002404004230A200031440000200A2182340 +:108EC00024A3FFFC3C010800AC233FBC3C0108008C +:108ED000A4203FDA0A000CE70060282100C77024B4 +:108EE0000A000D0D01C720263C010800A42F3FDA1F +:108EF0000A000D78000000003C010800AC203FBCD7 +:108F00000A000D23240400428F8300283C058000C2 +:108F100034AA0A00146000060000102191470030B6 +:108F20002406000530E400FF108600030000000066 +:108F300003E0000800000000914B0048316900FF89 +:108F4000000941C21500FFFA3C0680083C040800F5 +:108F500094843FC43C0308008C633FDC3C19080048 +:108F60008F393FBC3C0F080095EF3FDA0064C02109 +:108F70008CCD00040319702101CF602134AB0E00A9 +:108F8000018D282318A0001D00000000914F004C07 +:108F90008F8C0034956D001031EE00FF8D89000438 +:108FA00001AE30238D8A000030CEFFFF000E290075 +:108FB0000125C82100003821014720210325182B55 +:108FC0000083C021AD990004AD980000918F000A84 +:108FD00001CF6821A18D000A956500128F8A0034A7 +:108FE000A5450008954B003825690001A5490038C2 +:108FF0009148000D35070008A147000D03E0000867 +:109000000000000027BDFFD8AFB000189388001CF7 +:109010008FB000143C0A80003C197FFF8F8700242A +:109020003738FFFFAFBF0020AFB1001C355F0A002B +:109030000218182493EB003C00087FC03C02BFFFDD +:10904000006F60252CF000013449FFFF3C1F080031 +:109050008FFF3FDC8F9900303C18080097183FD2F3 +:1090600001897824001047803C07EFFF3C05F0FFA2 +:1090700001E818253C1180003169002034E2FFFF2F +:1090800034ADFFFF362E098027A50010240600020C +:1090900003F96023270B0002354A0E0000621824F2 +:1090A0000080802115200002000040218D48001C16 +:1090B000A7AB0012058000392407000030E800FF4C +:1090C00000083F00006758253C028008AFAB001441 +:1090D000344F008091EA00683C08080091083FD9AD +:1090E0003C09DFFF352CFFFF000AF82B3C0208008B +:1090F00094423FCCA3A80011016CC024001FCF40B4 +:10910000031918258FA70010AFA300143C0C08000A +:10911000918C3FDBA7A200168FAB001400ED482412 +:109120003C0F01003C0A0FFF012FC82531980003B6 +:10913000355FFFFF016D40243C027000033F38247F +:1091400000181E0000E2482501037825AFAF001487 +:10915000AFA9001091CC007C0E000092A3AC0015CA +:10916000362D0A0091A6003C30C400201080000675 +:10917000260200083C11080096313FC8262EFFFF4A +:109180003C010800A42E3FC88FBF00208FB1001CF7 +:109190008FB0001803E0000827BD00288F8B002C3B +:1091A000010B502B5540FFC5240700010A000E0497 +:1091B00030E800FF9383001C3C02800027BDFFD8ED +:1091C00034480A0000805021AFBF002034460AC056 +:1091D000010028211060000E3444098091070030FE +:1091E000240B00058F89002030EC003F118B000B11 +:1091F00000003821AFA900103C0B80088D69006C7D +:10920000AFAA00180E00015AAFA90014A380001CD9 +:109210008FBF002003E0000827BD00288D1F0048F5 +:109220003C1808008F183FBC8F9900283C027FFF34 +:109230008D0800443443FFFFAFA900103C0B8008A9 +:109240008D69006C03E370240319782101CF682332 +:1092500001A83821AFAA00180E00015AAFA90014C6 +:109260000A000E58A380001C3C05800034A60A00AA +:1092700090C7003C3C06080094C63FDA3C02080058 +:109280008C423FD430E30020000624001060001E12 +:10929000004438253C0880083505008090A300680C +:1092A00000004821240800010000282124040001B6 +:1092B0003C0680008CCD017805A0FFFE34CF014034 +:1092C000ADE800083C0208008C423FDCA5E5000444 +:1092D000A5E40006ADE2000C3C04080090843FD9F0 +:1092E0003C03800834790080A1E40012ADE700144B +:1092F000A5E900189338004C3C0E1000A1F8002D91 +:1093000003E00008ACCE017834A90E008D28001CC3 +:109310003C0C08008D8C3FBC952B0016952A001440 +:10932000018648213164FFFF0A000E803145FFFFAE +:109330003C04800034830A009065003C30A2002089 +:109340001040001934870E00000040210000382131 +:10935000000020213C0680008CC901780520FFFE1A +:1093600034CA014034CF010091EB0009AD48000838 +:109370003C0E08008DCE3FDC240DFF91240C0040F4 +:109380003C081000A5440004A5470006AD4E000CA3 +:10939000A14D0012AD4C0014A5400018A14B002DAA +:1093A00003E00008ACC801788CE8001894E60012CD +:1093B00094E4001030C7FFFF0A000EA93084FFFFBD +:1093C0003C04800034830A009065003C30A20020F9 +:1093D0001040002727BDFFF82409000100003821B4 +:1093E000240800013C0680008CCA01780540FFFE7D +:1093F0003C0280FF34C40100908D00093C0C080041 +:10940000918C4019A3AD00038FAB00003185007F24 +:109410003459FFFF01665025AFAA00009083000A6F +:10942000A3A0000200057E00A3A300018FB80000E6 +:1094300034CB0140240C30000319702401CF68257F +:10944000AD6D000C27BD0008AD6C0014A5600018C0 +:10945000AD690008A56700042409FF80A56800061F +:109460003C081000A169001203E00008ACC80178B4 +:1094700034870E008CE9001894E6001294E4001082 +:1094800030C8FFFF0A000ECD3087FFFF27BDFFE089 +:10949000AFB100143C118000AFB00010AFBF001896 +:1094A00036380A00970F0032363001000E000B7F6D +:1094B00031E43FFF8E0E0000240DFF803C042000AD +:1094C00001C25821016D6024000C4940316A007FBF +:1094D000012A4025010438253C048008AE270830C5 +:1094E0003486008090C500682403000230A200FF8B +:1094F000104300048F9F00208F990024AC9F0068C8 +:10950000AC9900648FBF00188FB100148FB00010A9 +:1095100003E0000827BD00203C0A0800254A3A80E5 +:109520003C09080025293B103C08080025082F1C91 +:109530003C07080024E73BDC3C06080024C639044D +:109540003C05080024A536583C0408002484325CFD +:109550003C030800246339B83C0208002442375415 +:109560003C010800AC2A3F983C010800AC293F941C +:109570003C010800AC283F903C010800AC273F9C10 +:109580003C010800AC263FAC3C010800AC253FA4E0 +:109590003C010800AC243FA03C010800AC233FB0D4 +:1095A0003C010800AC223FA803E0000800000000D6 +:1095B00080000940800009008008010080080080C8 +:1095C00080080000800E00008008008080080000F5 +:1095D00080000A8080000A00800009808000090065 +:00000001FF --- linux-3.11.0.orig/security/device_cgroup.c +++ linux-3.11.0/security/device_cgroup.c @@ -7,6 +7,7 @@ #include #include #include +#include #include #include #include @@ -769,6 +770,7 @@ return __devcgroup_check_permission(type, imajor(inode), iminor(inode), access); } +EXPORT_SYMBOL(__devcgroup_inode_permission); int devcgroup_inode_mknod(int mode, dev_t dev) { --- linux-3.11.0.orig/security/security.c +++ linux-3.11.0/security/security.c @@ -409,6 +409,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) { @@ -425,6 +426,7 @@ 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) @@ -433,6 +435,7 @@ return 0; return security_ops->path_link(old_dentry, new_dir, new_dentry); } +EXPORT_SYMBOL(security_path_link); int security_path_rename(struct path *old_dir, struct dentry *old_dentry, struct path *new_dir, struct dentry *new_dentry) @@ -451,6 +454,7 @@ return 0; return security_ops->path_truncate(path); } +EXPORT_SYMBOL(security_path_truncate); int security_path_chmod(struct path *path, umode_t mode) { @@ -458,6 +462,7 @@ return 0; return security_ops->path_chmod(path, mode); } +EXPORT_SYMBOL(security_path_chmod); int security_path_chown(struct path *path, kuid_t uid, kgid_t gid) { @@ -465,6 +470,7 @@ return 0; return security_ops->path_chown(path, uid, gid); } +EXPORT_SYMBOL(security_path_chown); int security_path_chroot(struct path *path) { @@ -541,6 +547,7 @@ return 0; return security_ops->inode_readlink(dentry); } +EXPORT_SYMBOL(security_inode_readlink); int security_inode_follow_link(struct dentry *dentry, struct nameidata *nd) { @@ -555,6 +562,7 @@ return 0; return security_ops->inode_permission(inode, mask); } +EXPORT_SYMBOL(security_inode_permission); int security_inode_setattr(struct dentry *dentry, struct iattr *attr) { @@ -677,6 +685,7 @@ return fsnotify_perm(file, mask); } +EXPORT_SYMBOL(security_file_permission); int security_file_alloc(struct file *file) { @@ -737,6 +746,7 @@ return ret; return ima_file_mmap(file, prot); } +EXPORT_SYMBOL(security_mmap_file); int security_mmap_addr(unsigned long addr) { --- linux-3.11.0.orig/security/commoncap.c +++ linux-3.11.0/security/commoncap.c @@ -988,9 +988,11 @@ } return ret; } +EXPORT_SYMBOL(cap_mmap_addr); int cap_mmap_file(struct file *file, unsigned long reqprot, unsigned long prot, unsigned long flags) { return 0; } +EXPORT_SYMBOL(cap_mmap_file); --- linux-3.11.0.orig/security/integrity/ima/ima_policy.c +++ linux-3.11.0/security/integrity/ima/ima_policy.c @@ -73,7 +73,6 @@ {.action = DONT_MEASURE,.fsmagic = SYSFS_MAGIC,.flags = IMA_FSMAGIC}, {.action = DONT_MEASURE,.fsmagic = DEBUGFS_MAGIC,.flags = IMA_FSMAGIC}, {.action = DONT_MEASURE,.fsmagic = TMPFS_MAGIC,.flags = IMA_FSMAGIC}, - {.action = DONT_MEASURE,.fsmagic = RAMFS_MAGIC,.flags = IMA_FSMAGIC}, {.action = DONT_MEASURE,.fsmagic = DEVPTS_SUPER_MAGIC,.flags = IMA_FSMAGIC}, {.action = DONT_MEASURE,.fsmagic = BINFMTFS_MAGIC,.flags = IMA_FSMAGIC}, {.action = DONT_MEASURE,.fsmagic = SECURITYFS_MAGIC,.flags = IMA_FSMAGIC}, --- linux-3.11.0.orig/security/apparmor/resource.c +++ linux-3.11.0/security/apparmor/resource.c @@ -35,7 +35,7 @@ struct common_audit_data *sa = va; audit_log_format(ab, " rlimit=%s value=%lu", - rlim_names[sa->aad->rlim.rlim], sa->aad->rlim.max); + rlim_names[aad(sa)->rlim.rlim], aad(sa)->rlim.max); } /** @@ -54,7 +54,7 @@ struct apparmor_audit_data aad = {0,}; sa.type = LSM_AUDIT_DATA_NONE; - sa.aad = &aad; + aad_set(&sa, &aad); aad.op = OP_SETRLIMIT, aad.rlim.rlim = resource; aad.rlim.max = value; @@ -79,7 +79,7 @@ /** * aa_task_setrlimit - test permission to set an rlimit - * @profile - profile confining the task (NOT NULL) + * @label - label confining the task (NOT NULL) * @task - task the resource is being set on * @resource - the resource being set * @new_rlim - the new resource limit (NOT NULL) @@ -88,14 +88,15 @@ * * Returns: 0 or error code if setting resource failed */ -int aa_task_setrlimit(struct aa_profile *profile, struct task_struct *task, +int aa_task_setrlimit(struct aa_label *label, struct task_struct *task, unsigned int resource, struct rlimit *new_rlim) { - struct aa_profile *task_profile; - int error = 0; + struct aa_profile *profile; + struct aa_label *task_label; + int i, error = 0; rcu_read_lock(); - task_profile = aa_get_profile(aa_cred_profile(__task_cred(task))); + task_label = aa_get_newest_cred_label(__task_cred(task)); rcu_read_unlock(); /* TODO: extend resource control to handle other (non current) @@ -103,52 +104,69 @@ * that the task is setting the resource of a task confined with * the same profile. */ - if (profile != task_profile || - (profile->rlimits.mask & (1 << resource) && - new_rlim->rlim_max > profile->rlimits.limits[resource].rlim_max)) - error = -EACCES; - aa_put_profile(task_profile); + label_for_each_confined(i, label, profile) { + int e = 0; + if (label != task_label || + (profile->rlimits.mask & (1 << resource) && + new_rlim->rlim_max > + profile->rlimits.limits[resource].rlim_max)) + e = -EACCES; + e = audit_resource(labels_profile(label), resource, + new_rlim->rlim_max, e); + if (e) + error = e; + } + aa_put_label(task_label); - return audit_resource(profile, resource, new_rlim->rlim_max, error); + return error; } /** * __aa_transition_rlimits - apply new profile rlimits - * @old: old profile on task (NOT NULL) - * @new: new profile with rlimits to apply (NOT NULL) + * @old_l: old label on task (NOT NULL) + * @new_l: new label with rlimits to apply (NOT NULL) */ -void __aa_transition_rlimits(struct aa_profile *old, struct aa_profile *new) +void __aa_transition_rlimits(struct aa_label *old_l, struct aa_label *new_l) { unsigned int mask = 0; struct rlimit *rlim, *initrlim; + struct aa_profile *old, *new; int i; - /* for any rlimits the profile controlled reset the soft limit - * to the less of the tasks hard limit and the init tasks soft limit + old = labels_profile(old_l); + new = labels_profile(new_l); + + /* for any rlimits the profile controlled, reset the soft limit + * to the lesser of the tasks hard limit and the init tasks soft limit */ - if (old->rlimits.mask) { - for (i = 0, mask = 1; i < RLIM_NLIMITS; i++, mask <<= 1) { - if (old->rlimits.mask & mask) { - rlim = current->signal->rlim + i; - initrlim = init_task.signal->rlim + i; - rlim->rlim_cur = min(rlim->rlim_max, - initrlim->rlim_cur); + label_for_each_confined(i, old_l, old) { + if (old->rlimits.mask) { + for (i = 0, mask = 1; i < RLIM_NLIMITS; i++, + mask <<= 1) { + if (old->rlimits.mask & mask) { + rlim = current->signal->rlim + i; + initrlim = init_task.signal->rlim + i; + rlim->rlim_cur = min(rlim->rlim_max, + initrlim->rlim_cur); + } } } } /* set any new hard limits as dictated by the new profile */ - if (!new->rlimits.mask) - return; - for (i = 0, mask = 1; i < RLIM_NLIMITS; i++, mask <<= 1) { - if (!(new->rlimits.mask & mask)) + label_for_each_confined(i, new_l, new) { + if (!new->rlimits.mask) continue; + for (i = 0, mask = 1; i < RLIM_NLIMITS; i++, mask <<= 1) { + if (!(new->rlimits.mask & mask)) + continue; - rlim = current->signal->rlim + i; - rlim->rlim_max = min(rlim->rlim_max, - new->rlimits.limits[i].rlim_max); - /* soft limit should not exceed hard limit */ - rlim->rlim_cur = min(rlim->rlim_cur, rlim->rlim_max); + rlim = current->signal->rlim + i; + rlim->rlim_max = min(rlim->rlim_max, + new->rlimits.limits[i].rlim_max); + /* soft limit should not exceed hard limit */ + rlim->rlim_cur = min(rlim->rlim_cur, rlim->rlim_max); + } } } --- linux-3.11.0.orig/security/apparmor/path.c +++ linux-3.11.0/security/apparmor/path.c @@ -149,47 +149,10 @@ } /** - * get_name_to_buffer - get the pathname to a buffer ensure dir / is appended - * @path: path to get name for (NOT NULL) - * @flags: flags controlling path lookup - * @buffer: buffer to put name in (NOT NULL) - * @size: size of buffer - * @name: Returns - contains position of path name in @buffer (NOT NULL) - * - * Returns: %0 else error on failure - */ -static int get_name_to_buffer(struct path *path, int flags, char *buffer, - int size, char **name, const char **info) -{ - int adjust = (flags & PATH_IS_DIR) ? 1 : 0; - int error = d_namespace_path(path, buffer, size - adjust, name, flags); - - if (!error && (flags & PATH_IS_DIR) && (*name)[1] != '\0') - /* - * Append "/" to the pathname. The root directory is a special - * case; it already ends in slash. - */ - strcpy(&buffer[size - 2], "/"); - - if (info && error) { - if (error == -ENOENT) - *info = "Failed name lookup - deleted entry"; - else if (error == -EACCES) - *info = "Failed name lookup - disconnected path"; - else if (error == -ENAMETOOLONG) - *info = "Failed name lookup - name too long"; - else - *info = "Failed name lookup"; - } - - return error; -} - -/** - * aa_path_name - compute the pathname of a file + * aa_path_name - get the pathname to a buffer ensure dir / is appended * @path: path the file (NOT NULL) * @flags: flags controlling path name generation - * @buffer: buffer that aa_get_name() allocated (NOT NULL) + * @buffer: buffer to put name in (NOT NULL) * @name: Returns - the generated path name if !error (NOT NULL) * @info: Returns - information on why the path lookup failed (MAYBE NULL) * @@ -204,33 +167,32 @@ * * Returns: %0 else error code if could retrieve name */ -int aa_path_name(struct path *path, int flags, char **buffer, const char **name, +int aa_path_name(struct path *path, int flags, char *buffer, const char **name, const char **info) { - char *buf, *str = NULL; - int size = 256; - int error; - - *name = NULL; - *buffer = NULL; - for (;;) { - /* freed by caller */ - buf = kmalloc(size, GFP_KERNEL); - if (!buf) - return -ENOMEM; + char *str = NULL; + int adjust = (flags & PATH_IS_DIR) ? 1 : 0; + int error = d_namespace_path(path, buffer, aa_g_path_max - adjust, + &str, flags); - error = get_name_to_buffer(path, flags, buf, size, &str, info); - if (error != -ENAMETOOLONG) - break; + if (!error && (flags & PATH_IS_DIR) && str[1] != '\0') + /* + * Append "/" to the pathname. The root directory is a special + * case; it already ends in slash. + */ + strcpy(&buffer[aa_g_path_max - 2], "/"); - kfree(buf); - size <<= 1; - if (size > aa_g_path_max) - return -ENAMETOOLONG; - *info = NULL; + if (info && error) { + if (error == -ENOENT) + *info = "Failed name lookup - deleted entry"; + else if (error == -EACCES) + *info = "Failed name lookup - disconnected path"; + else if (error == -ENAMETOOLONG) + *info = "Failed name lookup - name too long"; + else + *info = "Failed name lookup"; } - *buffer = buf; - *name = str; + *name = str; return error; } --- linux-3.11.0.orig/security/apparmor/lib.c +++ linux-3.11.0/security/apparmor/lib.c @@ -69,7 +69,7 @@ struct common_audit_data sa; struct apparmor_audit_data aad = {0,}; sa.type = LSM_AUDIT_DATA_NONE; - sa.aad = &aad; + aad_set(&sa, &aad); aad.info = str; aa_audit_msg(AUDIT_APPARMOR_STATUS, &sa, NULL); } @@ -97,11 +97,6 @@ if (size <= (16*PAGE_SIZE)) buffer = kmalloc(size, flags | GFP_NOIO | __GFP_NOWARN); if (!buffer) { - /* see kvfree for why size must be at least work_struct size - * when allocated via vmalloc - */ - if (size < sizeof(struct work_struct)) - size = sizeof(struct work_struct); if (flags & __GFP_ZERO) buffer = vzalloc(size); else @@ -123,3 +118,20 @@ else kfree(buffer); } + + +__counted char *aa_str_alloc(int size, gfp_t gfp) +{ + struct counted_str *str; + str = kmalloc(sizeof(struct counted_str) + size, gfp); + if (!str) + return NULL; + + kref_init(&str->count); + return str->name; +} + +void aa_str_kref(struct kref *kref) +{ + kfree(container_of(kref, struct counted_str, count)); +} --- linux-3.11.0.orig/security/apparmor/policy_unpack.c +++ linux-3.11.0/security/apparmor/policy_unpack.c @@ -24,7 +24,9 @@ #include "include/apparmor.h" #include "include/audit.h" #include "include/context.h" +#include "include/crypto.h" #include "include/match.h" +#include "include/path.h" #include "include/policy.h" #include "include/policy_unpack.h" @@ -69,13 +71,13 @@ static void audit_cb(struct audit_buffer *ab, void *va) { struct common_audit_data *sa = va; - if (sa->aad->iface.target) { - struct aa_profile *name = sa->aad->iface.target; + if (aad(sa)->iface.target) { + struct aa_profile *name = aad(sa)->iface.target; audit_log_format(ab, " name="); audit_log_untrustedstring(ab, name->base.hname); } - if (sa->aad->iface.pos) - audit_log_format(ab, " offset=%ld", sa->aad->iface.pos); + if (aad(sa)->iface.pos) + audit_log_format(ab, " offset=%ld", aad(sa)->iface.pos); } /** @@ -91,11 +93,11 @@ static int audit_iface(struct aa_profile *new, const char *name, const char *info, struct aa_ext *e, int error) { - struct aa_profile *profile = __aa_current_profile(); + struct aa_profile *profile = labels_profile(__aa_current_label()); struct common_audit_data sa; struct apparmor_audit_data aad = {0,}; sa.type = LSM_AUDIT_DATA_NONE; - sa.aad = &aad; + aad_set(&sa, &aad); if (e) aad.iface.pos = e->pos - e->start; aad.iface.target = new; @@ -192,6 +194,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)) { @@ -333,8 +348,10 @@ /* * The dfa is aligned with in the blob to 8 bytes * from the beginning of the stream. + * alignment adjust needed by dfa unpack */ - size_t sz = blob - (char *)e->start; + size_t sz = blob - (char *) e->start - + ((e->pos - e->start) & 7); size_t pad = ALIGN(sz, 8) - sz; int flags = TO_ACCEPT1_FLAG(YYTD_DATA32) | TO_ACCEPT2_FLAG(YYTD_DATA32); @@ -473,6 +490,7 @@ { struct aa_profile *profile = NULL; const char *name = NULL; + size_t size = 0; int i, error = -EPROTO; kernel_cap_t tmpcap; u32 tmp; @@ -490,6 +508,9 @@ /* profile renaming is optional */ (void) unpack_str(e, &profile->rename, "rename"); + /* attachment string is optional */ + (void) unpack_str(e, &profile->attach, "attach"); + /* xmatch is optional and may be NULL */ profile->xmatch = unpack_dfa(e); if (IS_ERR(profile->xmatch)) { @@ -509,12 +530,16 @@ goto fail; if (!unpack_u32(e, &tmp, NULL)) goto fail; - if (tmp) - profile->flags |= PFLAG_HAT; + if (tmp & PACKED_FLAG_HAT) + profile->label.flags |= FLAG_HAT; if (!unpack_u32(e, &tmp, NULL)) goto fail; - if (tmp) + if (tmp == PACKED_MODE_COMPLAIN) profile->mode = APPARMOR_COMPLAIN; + else if (tmp == PACKED_MODE_KILL) + profile->mode = APPARMOR_KILL; + else if (tmp == PACKED_MODE_UNCONFINED) + profile->mode = APPARMOR_UNCONFINED; if (!unpack_u32(e, &tmp, NULL)) goto fail; if (tmp) @@ -524,11 +549,9 @@ goto fail; /* path_flags is optional */ - if (unpack_u32(e, &profile->path_flags, "path_flags")) - profile->path_flags |= profile->flags & PFLAG_MEDIATE_DELETED; - else + if (!unpack_u32(e, &profile->path_flags, "path_flags")) /* set a default value if path_flags field is not present */ - profile->path_flags = PFLAG_MEDIATE_DELETED; + profile->path_flags = PATH_MEDIATE_DELETED; if (!unpack_u32(e, &(profile->caps.allow.cap[0]), NULL)) goto fail; @@ -566,6 +589,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; + if (unpack_nameX(e, AA_STRUCT, "policydb")) { /* generic policy dfa - optional and may be NULL */ profile->policy.dfa = unpack_dfa(e); @@ -614,7 +669,7 @@ else if (!name) name = "unknown"; audit_iface(profile, name, "failed to unpack profile", e, error); - aa_put_profile(profile); + aa_free_profile(profile); return ERR_PTR(error); } @@ -622,29 +677,41 @@ /** * verify_head - unpack serialized stream header * @e: serialized data read head (NOT NULL) + * @required: whether the header is required or optional * @ns: Returns - namespace if one is specified else NULL (NOT NULL) * * Returns: error or 0 if header is good */ -static int verify_header(struct aa_ext *e, const char **ns) +static int verify_header(struct aa_ext *e, int required, const char **ns) { int error = -EPROTONOSUPPORT; + const char *name = NULL; + *ns = NULL; + /* get the interface version */ if (!unpack_u32(e, &e->version, "version")) { - audit_iface(NULL, NULL, "invalid profile format", e, error); - return error; - } + if (required) { + audit_iface(NULL, NULL, "invalid profile format", e, + error); + return error; + } - /* check that the interface version is currently supported */ - if (e->version != 5) { - audit_iface(NULL, NULL, "unsupported interface version", e, - error); - return error; + /* check that the interface version is currently supported */ + if (e->version != 5) { + audit_iface(NULL, NULL, "unsupported interface version", + e, error); + return error; + } } + /* read the namespace if present */ - if (!unpack_str(e, ns, "namespace")) - *ns = NULL; + if (unpack_str(e, &name, "namespace")) { + if (*ns && strcmp(*ns, name)) + audit_iface(NULL, NULL, "invalid ns change", e, error); + else if (!*ns) + *ns = name; + } return 0; } @@ -693,18 +760,40 @@ return 0; } +void aa_load_ent_free(struct aa_load_ent *ent) +{ + if (ent) { + aa_put_profile(ent->rename); + aa_put_profile(ent->old); + aa_put_profile(ent->new); + kzfree(ent); + } +} + +struct aa_load_ent *aa_load_ent_alloc(void) +{ + struct aa_load_ent *ent = kzalloc(sizeof(*ent), GFP_KERNEL); + if (ent) + INIT_LIST_HEAD(&ent->list); + return ent; +} + /** - * aa_unpack - unpack packed binary profile data loaded from user space + * aa_unpack - unpack packed binary profile(s) data loaded from user space * @udata: user data copied to kmem (NOT NULL) * @size: the size of the user data + * @lh: list to place unpacked profiles in a aa_repl_ws * @ns: Returns namespace profile is in if specified else NULL (NOT NULL) * - * Unpack user data and return refcounted allocated profile or ERR_PTR + * Unpack user data and return refcounted allocated profile(s) stored in + * @lh in order of discovery, with the list chain stored in base.list + * or error * - * Returns: profile else error pointer if fails to unpack + * Returns: profile(s) on @lh else error pointer if fails to unpack */ -struct aa_profile *aa_unpack(void *udata, size_t size, const char **ns) +int aa_unpack(void *udata, size_t size, struct list_head *lh, const char **ns) { + struct aa_load_ent *tmp, *ent; struct aa_profile *profile = NULL; int error; struct aa_ext e = { @@ -713,20 +802,49 @@ .pos = udata, }; - error = verify_header(&e, ns); - if (error) - return ERR_PTR(error); + *ns = NULL; + while (e.pos < e.end) { + void *start; + error = verify_header(&e, e.pos == e.start, ns); + if (error) + goto fail; - profile = unpack_profile(&e); - if (IS_ERR(profile)) - return profile; + start = e.pos; + profile = unpack_profile(&e); + if (IS_ERR(profile)) { + error = PTR_ERR(profile); + goto fail; + } - error = verify_profile(profile); - if (error) { - aa_put_profile(profile); - profile = ERR_PTR(error); + error = verify_profile(profile); + if (error) + goto fail_profile; + + error = aa_calc_profile_hash(profile, e.version, start, + e.pos - start); + if (error) + goto fail_profile; + + ent = aa_load_ent_alloc(); + if (!ent) { + error = -ENOMEM; + goto fail_profile; + } + + ent->new = profile; + list_add_tail(&ent->list, lh); } - /* return refcount */ - return profile; + return 0; + +fail_profile: + aa_put_profile(profile); + +fail: + list_for_each_entry_safe(ent, tmp, lh, list) { + list_del_init(&ent->list); + aa_load_ent_free(ent); + } + + return error; } --- linux-3.11.0.orig/security/apparmor/apparmorfs.c +++ linux-3.11.0/security/apparmor/apparmorfs.c @@ -12,6 +12,7 @@ * License. */ +#include #include #include #include @@ -19,15 +20,56 @@ #include #include #include +#include #include "include/apparmor.h" #include "include/apparmorfs.h" #include "include/audit.h" #include "include/context.h" +#include "include/crypto.h" #include "include/policy.h" #include "include/resource.h" /** + * aa_mangle_name - mangle a profile name to std profile layout form + * @name: profile name to mangle (NOT NULL) + * @target: buffer to store mangled name, same length as @name (MAYBE NULL) + * + * Returns: length of mangled name + */ +static int mangle_name(const char *name, char *target) +{ + char *t = target; + + while (*name == '/' || *name == '.') + name++; + + if (target) { + for (; *name; name++) { + if (*name == '/') + *(t)++ = '.'; + else if (isspace(*name)) + *(t)++ = '_'; + else if (isalnum(*name) || strchr("._-", *name)) + *(t)++ = *name; + } + + *t = 0; + } else { + int len = 0; + for (; *name; name++) { + if (isalnum(*name) || isspace(*name) || + strchr("/._-", *name)) + len++; + } + + return len; + } + + return t - target; +} + +/** * aa_simple_write_to_buffer - common routine for getting policy from user * @op: operation doing the user buffer copy * @userbuf: user buffer to copy data from (NOT NULL) @@ -144,6 +186,143 @@ .llseek = default_llseek, }; +/** + * query_label - queries a label and writes permissions to buf + * @buf: the resulting permissions string is stored here (NOT NULL) + * @buf_len: size of buf + * @query: binary query string to match against the dfa + * @query_len: size of query + * + * The buffers pointed to by buf and query may overlap. The query buffer is + * parsed before buf is written to. + * + * The query should look like "LABEL_NAME\0DFA_STRING" where LABEL_NAME is + * the name of the label, in the current namespace, that is to be queried and + * DFA_STRING is a binary string to match against the label(s)'s DFA. + * + * LABEL_NAME must be NUL terminated. DFA_STRING may contain NUL characters + * but must *not* be NUL terminated. + * + * Returns: number of characters written to buf or -errno on failure + */ +static ssize_t query_label(char *buf, size_t buf_len, + char *query, size_t query_len) +{ + struct aa_profile *profile; + struct aa_label *label; + struct aa_namespace *ns; + char *label_name, *match_str; + size_t label_name_len, match_len; + u32 allow = 0, audit = 0, quiet = 0; + unsigned int state; + int i; + + if (!query_len) + return -EINVAL; + + label_name = query; + label_name_len = strnlen(query, query_len); + if (!label_name_len || label_name_len == query_len) + return -EINVAL; + + /** + * The extra byte is to account for the null byte between the + * profile name and dfa string. profile_name_len is greater + * than zero and less than query_len, so a byte can be safely + * added or subtracted. + */ + match_str = label_name + label_name_len + 1; + match_len = query_len - label_name_len - 1; + + ns = labels_ns(aa_current_label()); + label = aa_label_parse(ns, label_name, GFP_KERNEL); + if (IS_ERR(label)) + return PTR_ERR(label); + + allow = 0xffffffff; + audit = quiet = 0x00000000; + label_for_each_confined(i, label, profile) { + if (profile->policy.dfa) { + state = aa_dfa_match_len(profile->policy.dfa, + profile->policy.start[0], + match_str, match_len); + allow &= dfa_user_allow(profile->policy.dfa, state); + audit |= dfa_user_audit(profile->policy.dfa, state); + quiet |= dfa_user_quiet(profile->policy.dfa, state); + } else { + /* TODO: do we want to accumulate audit/quiet + or just clear as currently doing */ + allow = audit = quiet = 0; + break; + } + } + aa_put_label(label); + + return scnprintf(buf, buf_len, + "allow 0x%08x\ndeny 0x%08x\naudit 0x%08x\nquiet 0x%08x\n", + allow, 0, audit, quiet); +} + +#define QUERY_CMD_LABEL "label\0" +#define QUERY_CMD_LABEL_LEN 6 +#define QUERY_CMD_PROFILE "profile\0" +#define QUERY_CMD_PROFILE_LEN 8 + +/** + * aa_write_access - generic permissions query + * @file: pointer to open apparmorfs/access file + * @ubuf: user buffer containing the complete query string (NOT NULL) + * @count: size of ubuf + * @ppos: position in the file (MUST BE ZERO) + * + * Allows for one permission query per open(), write(), and read() sequence. + * The only query currently supported is a label-based query. For this query + * ubuf must begin with "label\0", followed by the profile query specific + * format described in the query_label() function documentation. + * + * Returns: number of bytes written or -errno on failure + */ +static ssize_t aa_write_access(struct file *file, const char __user *ubuf, + size_t count, loff_t *ppos) +{ + char *buf; + ssize_t len; + + if (*ppos) + return -ESPIPE; + + buf = simple_transaction_get(file, ubuf, count); + if (IS_ERR(buf)) + return PTR_ERR(buf); + + if (count > QUERY_CMD_PROFILE_LEN && + !memcmp(buf, QUERY_CMD_PROFILE, QUERY_CMD_PROFILE_LEN)) { + len = query_label(buf, SIMPLE_TRANSACTION_LIMIT, + buf + QUERY_CMD_PROFILE_LEN, + count - QUERY_CMD_PROFILE_LEN); + } else if (count > QUERY_CMD_LABEL_LEN && + !memcmp(buf, QUERY_CMD_LABEL, QUERY_CMD_LABEL_LEN)) { + len = query_label(buf, SIMPLE_TRANSACTION_LIMIT, + buf + QUERY_CMD_LABEL_LEN, + count - QUERY_CMD_LABEL_LEN); + } else + len = -EINVAL; + + if (len < 0) + return len; + + simple_transaction_set(file, len); + + return count; +} + +static const struct file_operations aa_fs_access = { + .write = aa_write_access, + .read = simple_transaction_read, + .release = simple_transaction_release, + .llseek = generic_file_llseek, +}; + static int aa_fs_seq_show(struct seq_file *seq, void *v) { struct aa_fs_entry *fs_file = seq->private; @@ -182,8 +361,569 @@ .release = single_release, }; -/** Base file system setup **/ +static int aa_fs_seq_profile_open(struct inode *inode, struct file *file, + int (*show)(struct seq_file *, void *)) +{ + struct aa_replacedby *r = aa_get_replacedby(inode->i_private); + int error = single_open(file, show, r); + + if (error) { + file->private_data = NULL; + aa_put_replacedby(r); + } + + return error; +} + +static int aa_fs_seq_profile_release(struct inode *inode, struct file *file) +{ + struct seq_file *seq = (struct seq_file *) file->private_data; + if (seq) + aa_put_replacedby(seq->private); + return single_release(inode, file); +} + +static int aa_fs_seq_profname_show(struct seq_file *seq, void *v) +{ + struct aa_replacedby *r = seq->private; + struct aa_label *label = aa_get_label_rcu(&r->label); + struct aa_profile *profile = labels_profile(label); + seq_printf(seq, "%s\n", profile->base.name); + aa_put_label(label); + + return 0; +} + +static int aa_fs_seq_profname_open(struct inode *inode, struct file *file) +{ + return aa_fs_seq_profile_open(inode, file, aa_fs_seq_profname_show); +} + +static const struct file_operations aa_fs_profname_fops = { + .owner = THIS_MODULE, + .open = aa_fs_seq_profname_open, + .read = seq_read, + .llseek = seq_lseek, + .release = aa_fs_seq_profile_release, +}; + +static int aa_fs_seq_profmode_show(struct seq_file *seq, void *v) +{ + struct aa_replacedby *r = seq->private; + struct aa_label *label = aa_get_label_rcu(&r->label); + struct aa_profile *profile = labels_profile(label); + seq_printf(seq, "%s\n", aa_profile_mode_names[profile->mode]); + aa_put_label(label); + + return 0; +} + +static int aa_fs_seq_profmode_open(struct inode *inode, struct file *file) +{ + return aa_fs_seq_profile_open(inode, file, aa_fs_seq_profmode_show); +} +static const struct file_operations aa_fs_profmode_fops = { + .owner = THIS_MODULE, + .open = aa_fs_seq_profmode_open, + .read = seq_read, + .llseek = seq_lseek, + .release = aa_fs_seq_profile_release, +}; + +static int aa_fs_seq_profattach_show(struct seq_file *seq, void *v) +{ + struct aa_replacedby *r = seq->private; + struct aa_label *label = aa_get_label_rcu(&r->label); + struct aa_profile *profile = labels_profile(label); + if (profile->attach) + seq_printf(seq, "%s\n", profile->attach); + else if (profile->xmatch) + seq_puts(seq, "\n"); + else + seq_printf(seq, "%s\n", profile->base.name); + aa_put_label(label); + + return 0; +} + +static int aa_fs_seq_profattach_open(struct inode *inode, struct file *file) +{ + return aa_fs_seq_profile_open(inode, file, aa_fs_seq_profattach_show); +} + +static const struct file_operations aa_fs_profattach_fops = { + .owner = THIS_MODULE, + .open = aa_fs_seq_profattach_open, + .read = seq_read, + .llseek = seq_lseek, + .release = aa_fs_seq_profile_release, +}; + +static int aa_fs_seq_hash_show(struct seq_file *seq, void *v) +{ + struct aa_replacedby *r = seq->private; + struct aa_label *label = aa_get_label_rcu(&r->label); + struct aa_profile *profile = labels_profile(label); + unsigned int i, size = aa_hash_size(); + + if (profile->hash) { + for (i = 0; i < size; i++) + seq_printf(seq, "%.2x", profile->hash[i]); + seq_puts(seq, "\n"); + } + + return 0; +} + +static int aa_fs_seq_hash_open(struct inode *inode, struct file *file) +{ + return single_open(file, aa_fs_seq_hash_show, inode->i_private); +} + +static const struct file_operations aa_fs_seq_hash_fops = { + .owner = THIS_MODULE, + .open = aa_fs_seq_hash_open, + .read = seq_read, + .llseek = seq_lseek, + .release = single_release, +}; + +/** fns to setup dynamic per profile/namespace files **/ +void __aa_fs_profile_rmdir(struct aa_profile *profile) +{ + struct aa_profile *child; + int i; + + if (!profile) + return; + + list_for_each_entry(child, &profile->base.profiles, base.list) + __aa_fs_profile_rmdir(child); + + for (i = AAFS_PROF_SIZEOF - 1; i >= 0; --i) { + struct aa_replacedby *r; + if (!profile->dents[i]) + continue; + + r = profile->dents[i]->d_inode->i_private; + securityfs_remove(profile->dents[i]); + aa_put_replacedby(r); + profile->dents[i] = NULL; + } +} + +void __aa_fs_profile_migrate_dents(struct aa_profile *old, + struct aa_profile *new) +{ + int i; + + for (i = 0; i < AAFS_PROF_SIZEOF; i++) { + new->dents[i] = old->dents[i]; + old->dents[i] = NULL; + } +} + +static struct dentry *create_profile_file(struct dentry *dir, const char *name, + struct aa_profile *profile, + const struct file_operations *fops) +{ + struct aa_replacedby *r = aa_get_replacedby(profile->label.replacedby); + struct dentry *dent; + + dent = securityfs_create_file(name, S_IFREG | 0444, dir, r, fops); + if (IS_ERR(dent)) + aa_put_replacedby(r); + + return dent; +} + +/* requires lock be held */ +int __aa_fs_profile_mkdir(struct aa_profile *profile, struct dentry *parent) +{ + struct aa_profile *child; + struct dentry *dent = NULL, *dir; + int error; + + if (!parent) { + struct aa_profile *p; + p = aa_deref_parent(profile); + dent = prof_dir(p); + /* adding to parent that previously didn't have children */ + dent = securityfs_create_dir("profiles", dent); + if (IS_ERR(dent)) + goto fail; + prof_child_dir(p) = parent = dent; + } + + if (!profile->dirname) { + int len, id_len; + len = mangle_name(profile->base.name, NULL); + id_len = snprintf(NULL, 0, ".%ld", profile->ns->uniq_id); + + profile->dirname = kmalloc(len + id_len + 1, GFP_KERNEL); + if (!profile->dirname) + goto fail; + + mangle_name(profile->base.name, profile->dirname); + sprintf(profile->dirname + len, ".%ld", profile->ns->uniq_id++); + } + + dent = securityfs_create_dir(profile->dirname, parent); + if (IS_ERR(dent)) + goto fail; + prof_dir(profile) = dir = dent; + + dent = create_profile_file(dir, "name", profile, &aa_fs_profname_fops); + if (IS_ERR(dent)) + goto fail; + profile->dents[AAFS_PROF_NAME] = dent; + + dent = create_profile_file(dir, "mode", profile, &aa_fs_profmode_fops); + if (IS_ERR(dent)) + goto fail; + profile->dents[AAFS_PROF_MODE] = dent; + + dent = create_profile_file(dir, "attach", profile, + &aa_fs_profattach_fops); + if (IS_ERR(dent)) + goto fail; + profile->dents[AAFS_PROF_ATTACH] = dent; + + if (profile->hash) { + dent = create_profile_file(dir, "sha1", profile, + &aa_fs_seq_hash_fops); + if (IS_ERR(dent)) + goto fail; + profile->dents[AAFS_PROF_HASH] = dent; + } + + list_for_each_entry(child, &profile->base.profiles, base.list) { + error = __aa_fs_profile_mkdir(child, prof_child_dir(profile)); + if (error) + goto fail2; + } + + return 0; + +fail: + error = PTR_ERR(dent); + +fail2: + __aa_fs_profile_rmdir(profile); + + return error; +} + +void __aa_fs_namespace_rmdir(struct aa_namespace *ns) +{ + struct aa_namespace *sub; + struct aa_profile *child; + int i; + + if (!ns) + return; + + list_for_each_entry(child, &ns->base.profiles, base.list) + __aa_fs_profile_rmdir(child); + + list_for_each_entry(sub, &ns->sub_ns, base.list) { + mutex_lock(&sub->lock); + __aa_fs_namespace_rmdir(sub); + mutex_unlock(&sub->lock); + } + + for (i = AAFS_NS_SIZEOF - 1; i >= 0; --i) { + securityfs_remove(ns->dents[i]); + ns->dents[i] = NULL; + } +} + +int __aa_fs_namespace_mkdir(struct aa_namespace *ns, struct dentry *parent, + const char *name) +{ + struct aa_namespace *sub; + struct aa_profile *child; + struct dentry *dent, *dir; + int error; + + if (!name) + name = ns->base.name; + + dent = securityfs_create_dir(name, parent); + if (IS_ERR(dent)) + goto fail; + ns_dir(ns) = dir = dent; + + dent = securityfs_create_dir("profiles", dir); + if (IS_ERR(dent)) + goto fail; + ns_subprofs_dir(ns) = dent; + + dent = securityfs_create_dir("namespaces", dir); + if (IS_ERR(dent)) + goto fail; + ns_subns_dir(ns) = dent; + + list_for_each_entry(child, &ns->base.profiles, base.list) { + error = __aa_fs_profile_mkdir(child, ns_subprofs_dir(ns)); + if (error) + goto fail2; + } + + list_for_each_entry(sub, &ns->sub_ns, base.list) { + mutex_lock(&sub->lock); + error = __aa_fs_namespace_mkdir(sub, ns_subns_dir(ns), NULL); + mutex_unlock(&sub->lock); + if (error) + goto fail2; + } + + return 0; + +fail: + error = PTR_ERR(dent); + +fail2: + __aa_fs_namespace_rmdir(ns); + + return error; +} + + +#define list_entry_next(pos, member) \ + list_entry(pos->member.next, typeof(*pos), member) +#define list_entry_is_head(pos, head, member) (&pos->member == (head)) + +/** + * __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 + * Requires: ns->parent->lock to be held + * NOTE: will not unlock root->lock + */ +static struct aa_namespace *__next_namespace(struct aa_namespace *root, + struct aa_namespace *ns) +{ + struct aa_namespace *parent, *next; + + /* is next namespace a child */ + if (!list_empty(&ns->sub_ns)) { + next = list_first_entry(&ns->sub_ns, typeof(*ns), base.list); + mutex_lock(&next->lock); + return next; + } + + /* check if the next ns is a sibling, parent, gp, .. */ + parent = ns->parent; + while (ns != root) { + mutex_unlock(&ns->lock); + next = list_entry_next(ns, base.list); + if (!list_entry_is_head(next, &parent->sub_ns, base.list)) { + mutex_lock(&next->lock); + return next; + } + 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 + * Requires: profile->ns.lock to be held + */ +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 traversal 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, sibling, .. */ + parent = rcu_dereference_protected(p->parent, + mutex_is_locked(&p->ns->lock)); + while (parent) { + p = list_entry_next(p, base.list); + if (!list_entry_is_head(p, &parent->base.profiles, base.list)) + return p; + p = parent; + parent = rcu_dereference_protected(parent->parent, + mutex_is_locked(&parent->ns->lock)); + } + + /* is next another profile in the namespace */ + p = list_entry_next(p, base.list); + if (!list_entry_is_head(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) +{ + struct aa_profile *profile = NULL; + struct aa_namespace *root = labels_ns(aa_current_label()); + loff_t l = *pos; + f->private = aa_get_namespace(root); + + + /* find the first profile */ + mutex_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 *ns = f->private; + (*pos)++; + + return next_profile(ns, 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) +{ + struct aa_profile *profile = p; + struct aa_namespace *root = f->private, *ns; + + if (profile) { + for (ns = profile->ns; ns && ns != root; ns = ns->parent) + mutex_unlock(&ns->lock); + } + mutex_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, + aa_profile_mode_names[profile->mode]); + + 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); +} + +static const struct file_operations aa_fs_profiles_fops = { + .open = profiles_open, + .read = seq_read, + .llseek = seq_lseek, + .release = profiles_release, +}; + + +/** Base file system setup **/ static struct aa_fs_entry aa_fs_entry_file[] = { AA_FS_FILE_STRING("mask", "create read write exec append mmap_exec " \ "link lock"), @@ -198,11 +938,38 @@ { } }; +static struct aa_fs_entry aa_fs_entry_policy[] = { + AA_FS_FILE_BOOLEAN("set_load", 1), + {} +}; + +static struct aa_fs_entry aa_fs_entry_mount[] = { + AA_FS_FILE_STRING("mask", "mount umount"), + { } +}; + +static struct aa_fs_entry aa_fs_entry_namespaces[] = { + AA_FS_FILE_BOOLEAN("profile", 1), + AA_FS_FILE_BOOLEAN("pivot_root", 1), + { } +}; + +static struct aa_fs_entry aa_fs_entry_dbus[] = { + AA_FS_FILE_STRING("mask", "acquire send receive"), + { } +}; + static struct aa_fs_entry aa_fs_entry_features[] = { + AA_FS_DIR("policy", aa_fs_entry_policy), AA_FS_DIR("domain", aa_fs_entry_domain), AA_FS_DIR("file", aa_fs_entry_file), + AA_FS_DIR("network", aa_fs_entry_network), + AA_FS_DIR("mount", aa_fs_entry_mount), + AA_FS_DIR("namespaces", aa_fs_entry_namespaces), AA_FS_FILE_U64("capability", VFS_CAP_FLAGS_MASK), AA_FS_DIR("rlimit", aa_fs_entry_rlimit), + AA_FS_DIR("caps", aa_fs_entry_caps), + AA_FS_DIR("dbus", aa_fs_entry_dbus), { } }; @@ -210,6 +977,8 @@ AA_FS_FILE_FOPS(".load", 0640, &aa_fs_profile_load), AA_FS_FILE_FOPS(".replace", 0640, &aa_fs_profile_replace), AA_FS_FILE_FOPS(".remove", 0640, &aa_fs_profile_remove), + AA_FS_FILE_FOPS(".access", 0666, &aa_fs_access), + AA_FS_FILE_FOPS("profiles", 0640, &aa_fs_profiles_fops), AA_FS_DIR("features", aa_fs_entry_features), { } }; @@ -240,6 +1009,7 @@ return error; } +static void __init aafs_remove_dir(struct aa_fs_entry *fs_dir); /** * aafs_create_dir - recursively create a directory entry in the securityfs * @fs_dir: aa_fs_entry (and all child entries) to build (NOT NULL) @@ -250,17 +1020,16 @@ static int __init aafs_create_dir(struct aa_fs_entry *fs_dir, struct dentry *parent) { - int error; struct aa_fs_entry *fs_file; + struct dentry *dir; + int error; - fs_dir->dentry = securityfs_create_dir(fs_dir->name, parent); - if (IS_ERR(fs_dir->dentry)) { - error = PTR_ERR(fs_dir->dentry); - fs_dir->dentry = NULL; - goto failed; - } + dir = securityfs_create_dir(fs_dir->name, parent); + if (IS_ERR(dir)) + return PTR_ERR(dir); + fs_dir->dentry = dir; - for (fs_file = fs_dir->v.files; fs_file->name; ++fs_file) { + for (fs_file = fs_dir->v.files; fs_file && fs_file->name; ++fs_file) { if (fs_file->v_type == AA_FS_TYPE_DIR) error = aafs_create_dir(fs_file, fs_dir->dentry); else @@ -272,6 +1041,8 @@ return 0; failed: + aafs_remove_dir(fs_dir); + return error; } @@ -296,7 +1067,7 @@ { struct aa_fs_entry *fs_file; - for (fs_file = fs_dir->v.files; fs_file->name; ++fs_file) { + for (fs_file = fs_dir->v.files; fs_file && fs_file->name; ++fs_file) { if (fs_file->v_type == AA_FS_TYPE_DIR) aafs_remove_dir(fs_file); else @@ -340,6 +1111,15 @@ if (error) goto error; + error = __aa_fs_namespace_mkdir(root_ns, aa_fs_entry.dentry, + "policy"); + if (error) + goto error; + + if (!aa_g_unconfined_init) { + /* TODO: add default profile to apparmorfs */ + } + /* TODO: add support for apparmorfs_null and apparmorfs_mnt */ /* Report that AppArmor fs is enabled */ --- linux-3.11.0.orig/security/apparmor/mount.c +++ linux-3.11.0/security/apparmor/mount.c @@ -0,0 +1,707 @@ +/* + * AppArmor security module + * + * This file contains AppArmor mediation of files + * + * Copyright (C) 1998-2008 Novell/SUSE + * Copyright 2009-2012 Canonical Ltd. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation, version 2 of the + * License. + */ + +#include +#include +#include + +#include "include/apparmor.h" +#include "include/audit.h" +#include "include/context.h" +#include "include/domain.h" +#include "include/file.h" +#include "include/match.h" +#include "include/mount.h" +#include "include/path.h" +#include "include/policy.h" + + +static void audit_mnt_flags(struct audit_buffer *ab, unsigned long flags) +{ + if (flags & MS_RDONLY) + audit_log_format(ab, "ro"); + else + audit_log_format(ab, "rw"); + if (flags & MS_NOSUID) + audit_log_format(ab, ", nosuid"); + if (flags & MS_NODEV) + audit_log_format(ab, ", nodev"); + if (flags & MS_NOEXEC) + audit_log_format(ab, ", noexec"); + if (flags & MS_SYNCHRONOUS) + audit_log_format(ab, ", sync"); + if (flags & MS_REMOUNT) + audit_log_format(ab, ", remount"); + if (flags & MS_MANDLOCK) + audit_log_format(ab, ", mand"); + if (flags & MS_DIRSYNC) + audit_log_format(ab, ", dirsync"); + if (flags & MS_NOATIME) + audit_log_format(ab, ", noatime"); + if (flags & MS_NODIRATIME) + audit_log_format(ab, ", nodiratime"); + if (flags & MS_BIND) + audit_log_format(ab, flags & MS_REC ? ", rbind" : ", bind"); + if (flags & MS_MOVE) + audit_log_format(ab, ", move"); + if (flags & MS_SILENT) + audit_log_format(ab, ", silent"); + if (flags & MS_POSIXACL) + audit_log_format(ab, ", acl"); + if (flags & MS_UNBINDABLE) + audit_log_format(ab, flags & MS_REC ? ", runbindable" : + ", unbindable"); + if (flags & MS_PRIVATE) + audit_log_format(ab, flags & MS_REC ? ", rprivate" : + ", private"); + if (flags & MS_SLAVE) + audit_log_format(ab, flags & MS_REC ? ", rslave" : + ", slave"); + if (flags & MS_SHARED) + audit_log_format(ab, flags & MS_REC ? ", rshared" : + ", shared"); + if (flags & MS_RELATIME) + audit_log_format(ab, ", relatime"); + if (flags & MS_I_VERSION) + audit_log_format(ab, ", iversion"); + if (flags & MS_STRICTATIME) + audit_log_format(ab, ", strictatime"); + if (flags & MS_NOUSER) + audit_log_format(ab, ", nouser"); +} + +/** + * audit_cb - call back for mount specific audit fields + * @ab: audit_buffer (NOT NULL) + * @va: audit struct to audit values of (NOT NULL) + */ +static void audit_cb(struct audit_buffer *ab, void *va) +{ + struct common_audit_data *sa = va; + + if (aad(sa)->mnt.type) { + audit_log_format(ab, " fstype="); + audit_log_untrustedstring(ab, aad(sa)->mnt.type); + } + if (aad(sa)->mnt.src_name) { + audit_log_format(ab, " srcname="); + audit_log_untrustedstring(ab, aad(sa)->mnt.src_name); + } + if (aad(sa)->mnt.trans) { + audit_log_format(ab, " trans="); + audit_log_untrustedstring(ab, aad(sa)->mnt.trans); + } + if (aad(sa)->mnt.flags || aad(sa)->op == OP_MOUNT) { + audit_log_format(ab, " flags=\""); + audit_mnt_flags(ab, aad(sa)->mnt.flags); + audit_log_format(ab, "\""); + } + if (aad(sa)->mnt.data) { + audit_log_format(ab, " options="); + audit_log_untrustedstring(ab, aad(sa)->mnt.data); + } +} + +/** + * audit_mount - handle the auditing of mount operations + * @profile: the profile being enforced (NOT NULL) + * @gfp: allocation flags + * @op: operation being mediated (NOT NULL) + * @name: name of object being mediated (MAYBE NULL) + * @src_name: src_name of object being mediated (MAYBE_NULL) + * @type: type of filesystem (MAYBE_NULL) + * @trans: name of trans (MAYBE NULL) + * @flags: filesystem idependent mount flags + * @data: filesystem mount flags + * @request: permissions requested + * @perms: the permissions computed for the request (NOT NULL) + * @info: extra information message (MAYBE NULL) + * @error: 0 if operation allowed else failure error code + * + * Returns: %0 or error on failure + */ +static int audit_mount(struct aa_profile *profile, gfp_t gfp, int op, + const char *name, const char *src_name, + const char *type, const char *trans, + unsigned long flags, const void *data, u32 request, + struct file_perms *perms, const char *info, int error) +{ + int audit_type = AUDIT_APPARMOR_AUTO; + struct common_audit_data sa = { }; + struct apparmor_audit_data aad = { }; + + if (likely(!error)) { + u32 mask = perms->audit; + + if (unlikely(AUDIT_MODE(profile) == AUDIT_ALL)) + mask = 0xffff; + + /* mask off perms that are not being force audited */ + request &= mask; + + if (likely(!request)) + return 0; + audit_type = AUDIT_APPARMOR_AUDIT; + } else { + /* only report permissions that were denied */ + request = request & ~perms->allow; + + if (request & perms->kill) + audit_type = AUDIT_APPARMOR_KILL; + + /* quiet known rejects, assumes quiet and kill do not overlap */ + if ((request & perms->quiet) && + AUDIT_MODE(profile) != AUDIT_NOQUIET && + AUDIT_MODE(profile) != AUDIT_ALL) + request &= ~perms->quiet; + + if (!request) + return COMPLAIN_MODE(profile) ? + complain_error(error) : error; + } + + sa.type = LSM_AUDIT_DATA_NONE; + aad_set(&sa, &aad); + aad.op = op; + aad.name = name; + aad.mnt.src_name = src_name; + aad.mnt.type = type; + aad.mnt.trans = trans; + aad.mnt.flags = flags; + if (data && (perms->audit & AA_AUDIT_DATA)) + aad.mnt.data = data; + aad.info = info; + aad.error = error; + + return aa_audit(audit_type, profile, gfp, &sa, audit_cb); +} + +/** + * match_mnt_flags - Do an ordered match on mount flags + * @dfa: dfa to match against + * @state: state to start in + * @flags: mount flags to match against + * + * Mount flags are encoded as an ordered match. This is done instead of + * checking against a simple bitmask, to allow for logical operations + * on the flags. + * + * Returns: next state after flags match + */ +static unsigned int match_mnt_flags(struct aa_dfa *dfa, unsigned int state, + unsigned long flags) +{ + unsigned int i; + + for (i = 0; i <= 31 ; ++i) { + if ((1 << i) & flags) + state = aa_dfa_next(dfa, state, i + 1); + } + + return state; +} + +/** + * compute_mnt_perms - compute mount permission associated with @state + * @dfa: dfa to match against (NOT NULL) + * @state: state match finished in + * + * Returns: mount permissions + */ +static struct file_perms compute_mnt_perms(struct aa_dfa *dfa, + unsigned int state) +{ + struct file_perms perms; + + perms.kill = 0; + perms.allow = dfa_user_allow(dfa, state); + perms.audit = dfa_user_audit(dfa, state); + perms.quiet = dfa_user_quiet(dfa, state); + perms.xindex = dfa_user_xindex(dfa, state); + + return perms; +} + +static const char *mnt_info_table[] = { + "match succeeded", + "failed mntpnt match", + "failed srcname match", + "failed type match", + "failed flags match", + "failed data match" +}; + +/* + * Returns 0 on success else element that match failed in, this is the + * index into the mnt_info_table above + */ +static int do_match_mnt(struct aa_dfa *dfa, unsigned int start, + const char *mntpnt, const char *devname, + const char *type, unsigned long flags, + void *data, bool binary, struct file_perms *perms) +{ + unsigned int state; + + state = aa_dfa_match(dfa, start, mntpnt); + state = aa_dfa_null_transition(dfa, state); + if (!state) + return 1; + + if (devname) + state = aa_dfa_match(dfa, state, devname); + state = aa_dfa_null_transition(dfa, state); + if (!state) + return 2; + + if (type) + state = aa_dfa_match(dfa, state, type); + state = aa_dfa_null_transition(dfa, state); + if (!state) + return 3; + + state = match_mnt_flags(dfa, state, flags); + if (!state) + return 4; + *perms = compute_mnt_perms(dfa, state); + if (perms->allow & AA_MAY_MOUNT) + return 0; + + /* only match data if not binary and the DFA flags data is expected */ + if (data && !binary && (perms->allow & AA_CONT_MATCH)) { + state = aa_dfa_null_transition(dfa, state); + if (!state) + return 4; + + state = aa_dfa_match(dfa, state, data); + if (!state) + return 5; + *perms = compute_mnt_perms(dfa, state); + if (perms->allow & AA_MAY_MOUNT) + return 0; + } + + /* failed at end of flags match */ + return 4; +} + +/** + * match_mnt - handle path matching for mount + * @profile: the confining profile + * @mntpnt: string for the mntpnt (NOT NULL) + * @devname: string for the devname/src_name (MAYBE NULL) + * @type: string for the dev type (MAYBE NULL) + * @flags: mount flags to match + * @data: fs mount data (MAYBE NULL) + * @binary: whether @data is binary + * @perms: Returns: permission found by the match + * @info: Returns: infomation string about the match for logging + * + * Returns: 0 on success else error + */ +static int match_mnt(struct aa_profile *profile, const char *mntpnt, + const char *devname, const char *type, + unsigned long flags, void *data, bool binary, + struct file_perms *perms, const char **info) +{ + int pos; + + if (!profile->policy.dfa) + return -EACCES; + + pos = do_match_mnt(profile->policy.dfa, + profile->policy.start[AA_CLASS_MOUNT], + mntpnt, devname, type, flags, data, binary, perms); + if (pos) { + *info = mnt_info_table[pos]; + return -EACCES; + } + + return 0; +} + +static int path_flags(struct aa_profile *profile, struct path *path) +{ + return profile->path_flags | + S_ISDIR(path->dentry->d_inode->i_mode) ? PATH_IS_DIR : 0; +} + +int aa_remount(struct aa_label *label, struct path *path, unsigned long flags, + void *data) +{ + struct aa_profile *profile; + struct file_perms perms = { }; + const char *name, *info = NULL; + char *buffer = NULL; + int binary, i, error; + + binary = path->dentry->d_sb->s_type->fs_flags & FS_BINARY_MOUNTDATA; + + get_buffers(buffer); + error = aa_path_name(path, path_flags(labels_profile(label), path), + buffer, &name, &info); + if (error) { + error = audit_mount(labels_profile(label), GFP_KERNEL, OP_MOUNT, name, NULL, + NULL, NULL, flags, data, AA_MAY_MOUNT, + &perms, info, error); + goto out; + } + + label_for_each_confined(i, label, profile) { + error = match_mnt(profile, name, NULL, NULL, flags, data, + binary, &perms, &info); + error = audit_mount(profile, GFP_KERNEL, OP_MOUNT, name, NULL, + NULL, NULL, flags, data, AA_MAY_MOUNT, + &perms, info, error); + if (error) + break; + } + +out: + put_buffers(buffer); + + return error; +} + +int aa_bind_mount(struct aa_label *label, struct path *path, + const char *dev_name, unsigned long flags) +{ + struct aa_profile *profile; + struct file_perms perms = { }; + char *buffer = NULL, *old_buffer = NULL; + const char *name, *old_name = NULL, *info = NULL; + struct path old_path; + int i, error; + + if (!dev_name || !*dev_name) + return -EINVAL; + + flags &= MS_REC | MS_BIND; + + get_buffers(buffer, old_buffer); + error = aa_path_name(path, path_flags(labels_profile(label), path), + buffer, &name, &info); + if (error) + goto error; + + error = kern_path(dev_name, LOOKUP_FOLLOW|LOOKUP_AUTOMOUNT, &old_path); + if (error) + goto error; + + error = aa_path_name(&old_path, path_flags(labels_profile(label), + &old_path), + old_buffer, &old_name, &info); + path_put(&old_path); + if (error) + goto error; + + label_for_each_confined(i, label, profile) { + error = match_mnt(profile, name, old_name, NULL, flags, NULL, + 0, &perms, &info); + error = audit_mount(profile, GFP_KERNEL, OP_MOUNT, name, + old_name, NULL, NULL, flags, NULL, + AA_MAY_MOUNT, &perms, info, error); + if (error) + break; + } + +out: + put_buffers(buffer, old_buffer); + + return error; + +error: + error = audit_mount(labels_profile(label), GFP_KERNEL, OP_MOUNT, name, old_name, + NULL, NULL, flags, NULL, AA_MAY_MOUNT, &perms, + info, error); + goto out; +} + +int aa_mount_change_type(struct aa_label *label, struct path *path, + unsigned long flags) +{ + struct aa_profile *profile; + struct file_perms perms = { }; + char *buffer = NULL; + const char *name, *info = NULL; + int i, error; + + /* These are the flags allowed by do_change_type() */ + flags &= (MS_REC | MS_SILENT | MS_SHARED | MS_PRIVATE | MS_SLAVE | + MS_UNBINDABLE); + + get_buffers(buffer); + error = aa_path_name(path, path_flags(labels_profile(label), path), + buffer, &name, &info); + if (error) { + error = audit_mount(labels_profile(label), GFP_KERNEL, OP_MOUNT, name, NULL, + NULL, NULL, flags, NULL, AA_MAY_MOUNT, + &perms, info, error); + goto out; + } + + label_for_each_confined(i, label, profile) { + error = match_mnt(profile, name, NULL, NULL, flags, NULL, 0, + &perms, &info); + error = audit_mount(profile, GFP_KERNEL, OP_MOUNT, name, NULL, + NULL, NULL, flags, NULL, AA_MAY_MOUNT, + &perms, info, error); + if (error) + break; + } + +out: + put_buffers(buffer); + + return error; +} + +int aa_move_mount(struct aa_label *label, struct path *path, + const char *orig_name) +{ + struct aa_profile *profile; + struct file_perms perms = { }; + char *buffer = NULL, *old_buffer = NULL; + const char *name, *old_name = NULL, *info = NULL; + struct path old_path; + int i, error; + + if (!orig_name || !*orig_name) + return -EINVAL; + + get_buffers(buffer, old_buffer); + error = aa_path_name(path, path_flags(labels_profile(label), path), + buffer, &name, &info); + if (error) + goto error; + + error = kern_path(orig_name, LOOKUP_FOLLOW, &old_path); + if (error) + goto error; + + error = aa_path_name(&old_path, path_flags(labels_profile(label), + &old_path), + old_buffer, &old_name, &info); + path_put(&old_path); + if (error) + goto error; + + label_for_each_confined(i, label, profile) { + error = match_mnt(profile, name, old_name, NULL, MS_MOVE, NULL, + 0, &perms, &info); + error = audit_mount(profile, GFP_KERNEL, OP_MOUNT, name, + old_name, NULL, NULL, MS_MOVE, NULL, + AA_MAY_MOUNT, &perms, info, error); + if (error) + break; + } + +out: + put_buffers(buffer, old_buffer); + + return error; + +error: + error = audit_mount(labels_profile(label), GFP_KERNEL, OP_MOUNT, name, old_name, + NULL, NULL, MS_MOVE, NULL, AA_MAY_MOUNT, &perms, + info, error); + goto out; +} + +int aa_new_mount(struct aa_label *label, const char *orig_dev_name, + struct path *path, const char *type, unsigned long flags, + void *data) +{ + struct aa_profile *profile; + struct file_perms perms = { }; + char *buffer = NULL, *dev_buffer = NULL; + const char *name = NULL, *dev_name = NULL, *info = NULL; + int binary = 1; + int i, error; + + dev_name = orig_dev_name; + get_buffers(buffer, dev_buffer); + if (type) { + int requires_dev; + struct file_system_type *fstype = get_fs_type(type); + if (!fstype) + return -ENODEV; + + binary = fstype->fs_flags & FS_BINARY_MOUNTDATA; + requires_dev = fstype->fs_flags & FS_REQUIRES_DEV; + put_filesystem(fstype); + + if (requires_dev) { + struct path dev_path; + + if (!dev_name || !*dev_name) { + error = -ENOENT; + goto out; + } + + error = kern_path(dev_name, LOOKUP_FOLLOW, &dev_path); + if (error) + goto error; + + error = aa_path_name(&dev_path, + path_flags(labels_profile(label), + &dev_path), + dev_buffer, &dev_name, &info); + path_put(&dev_path); + if (error) + goto error; + } + } + + error = aa_path_name(path, path_flags(labels_profile(label), path), + buffer, &name, &info); + if (error) + goto error; + + label_for_each_confined(i, label, profile) { + error = match_mnt(profile, name, dev_name, type, flags, data, + binary, &perms, &info); + error = audit_mount(profile, GFP_KERNEL, OP_MOUNT, name, + dev_name, type, NULL, flags, data, + AA_MAY_MOUNT, &perms, info, error); + if (error) + break; + } + +cleanup: + put_buffers(buffer, dev_buffer); + +out: + return error; + +error: + error = audit_mount(labels_profile(label), GFP_KERNEL, OP_MOUNT, name, dev_name, + type, NULL, flags, data, AA_MAY_MOUNT, &perms, info, + error); + goto cleanup; +} + +int aa_umount(struct aa_label *label, struct vfsmount *mnt, int flags) +{ + struct aa_profile *profile; + struct file_perms perms = { }; + char *buffer = NULL; + const char *name, *info = NULL; + int i, error; + + struct path path = { mnt, mnt->mnt_root }; + get_buffers(buffer); + error = aa_path_name(&path, path_flags(labels_profile(label), &path), + buffer, &name, &info); + if (error) { + error = audit_mount(labels_profile(label), GFP_KERNEL, + OP_UMOUNT, name, NULL, NULL, NULL, 0, NULL, + AA_MAY_UMOUNT, &perms, info, error); + goto out; + } + + label_for_each_confined(i, label, profile) { + if (profile->policy.dfa) { + unsigned int state; + state = aa_dfa_match(profile->policy.dfa, + profile->policy.start[AA_CLASS_MOUNT], + name); + perms = compute_mnt_perms(profile->policy.dfa, state); + if (AA_MAY_UMOUNT & ~perms.allow) + error = -EACCES; + } else + error = -EACCES; + error = audit_mount(profile, GFP_KERNEL, OP_UMOUNT, name, NULL, + NULL, NULL, 0, NULL, AA_MAY_UMOUNT, &perms, + info, error); + if (error) + break; + + memset(&perms, 0, sizeof(perms)); + } + +out: + put_buffers(buffer); + + return error; +} + +int aa_pivotroot(struct aa_label *label, struct path *old_path, + struct path *new_path) +{ + struct aa_profile *profile; + struct file_perms perms = { }; + struct aa_profile *target = NULL; + char *old_buffer = NULL, *new_buffer = NULL; + const char *old_name, *new_name = NULL, *info = NULL; + int i, error; + + get_buffers(old_buffer, new_buffer); + error = aa_path_name(old_path, path_flags(labels_profile(label), + old_path), + old_buffer, &old_name, &info); + if (error) + goto error; + + error = aa_path_name(new_path, path_flags(labels_profile(label), + new_path), + new_buffer, &new_name, &info); + if (error) + goto error; + + label_for_each(i, label, profile) { + /* TODO: actual domain transition computation for multiple + * profiles + */ + if (profile->policy.dfa) { + unsigned int state; + state = aa_dfa_match(profile->policy.dfa, + profile->policy.start[AA_CLASS_MOUNT], + new_name); + state = aa_dfa_null_transition(profile->policy.dfa, state); + state = aa_dfa_match(profile->policy.dfa, state, old_name); + perms = compute_mnt_perms(profile->policy.dfa, state); + + if (AA_MAY_PIVOTROOT & perms.allow) { + if ((perms.xindex & AA_X_TYPE_MASK) == AA_X_TABLE) { + target = x_table_lookup(profile, perms.xindex); + if (!target) + error = -ENOENT; + else + error = aa_replace_current_label(&target->label); + } + } + } else + error = -EACCES; + + error = audit_mount(profile, GFP_KERNEL, OP_PIVOTROOT, new_name, + old_name, NULL, + target ? target->base.name : NULL, + 0, NULL, AA_MAY_PIVOTROOT, &perms, info, + error); + if (error) + break; + } + +out: + aa_put_profile(target); + put_buffers(old_buffer, new_buffer); + + return error; + +error: + error = audit_mount(labels_profile(label), GFP_KERNEL, OP_PIVOTROOT, new_name, + old_name, NULL, target ? target->base.name : NULL, + 0, NULL, AA_MAY_PIVOTROOT, &perms, info, error); + goto out; +} --- linux-3.11.0.orig/security/apparmor/ipc.c +++ linux-3.11.0/security/apparmor/ipc.c @@ -26,7 +26,7 @@ { struct common_audit_data *sa = va; audit_log_format(ab, " target="); - audit_log_untrustedstring(ab, sa->aad->target); + audit_log_untrustedstring(ab, aad(sa)->target); } /** @@ -43,7 +43,7 @@ struct common_audit_data sa; struct apparmor_audit_data aad = {0,}; sa.type = LSM_AUDIT_DATA_NONE; - sa.aad = &aad; + aad_set(&sa, &aad); aad.op = OP_PTRACE; aad.target = target; aad.error = error; @@ -55,24 +55,34 @@ /** * aa_may_ptrace - test if tracer task can trace the tracee * @tracer_task: task who will do the tracing (NOT NULL) - * @tracer: profile of the task doing the tracing (NOT NULL) + * @tracer: label of the task doing the tracing (NOT NULL) * @tracee: task to be traced * @mode: whether PTRACE_MODE_READ || PTRACE_MODE_ATTACH * * Returns: %0 else error code if permission denied or error */ -int aa_may_ptrace(struct task_struct *tracer_task, struct aa_profile *tracer, - struct aa_profile *tracee, unsigned int mode) +int aa_may_ptrace(struct task_struct *tracer_task, struct aa_label *tracer, + struct aa_label *tracee, unsigned int mode) { - /* TODO: currently only based on capability, not extended ptrace - * rules, - * Test mode for PTRACE_MODE_READ || PTRACE_MODE_ATTACH - */ + struct aa_profile *profile; + int i, error = 0; if (unconfined(tracer) || tracer == tracee) return 0; - /* log this capability request */ - return aa_capable(tracer_task, tracer, CAP_SYS_PTRACE, 1); + + label_for_each_confined(i, tracer, profile) { + /* TODO: currently only based on capability, not extended ptrace + * rules, + * Test mode for PTRACE_MODE_READ || PTRACE_MODE_ATTACH + */ + + /* log this capability request */ + int e = aa_capable(tracer_task, profile, CAP_SYS_PTRACE, 1); + if (e) + error = e; + } + + return error; } /** @@ -95,18 +105,19 @@ * - tracer profile has CAP_SYS_PTRACE */ - struct aa_profile *tracer_p = aa_get_task_profile(tracer); + struct aa_label *tracer_l = aa_get_task_label(tracer); int error = 0; - if (!unconfined(tracer_p)) { - struct aa_profile *tracee_p = aa_get_task_profile(tracee); + if (!unconfined(tracer_l)) { + struct aa_label *tracee_l = aa_get_task_label(tracee); + + error = aa_may_ptrace(tracer, tracer_l, tracee_l, mode); - error = aa_may_ptrace(tracer, tracer_p, tracee_p, mode); - error = aa_audit_ptrace(tracer_p, tracee_p, error); + error = aa_audit_ptrace(labels_profile(tracer_l), labels_profile(tracee_l), error); - aa_put_profile(tracee_p); + aa_put_label(tracee_l); } - aa_put_profile(tracer_p); + aa_put_label(tracer_l); return error; } --- linux-3.11.0.orig/security/apparmor/file.c +++ linux-3.11.0/security/apparmor/file.c @@ -67,24 +67,24 @@ struct common_audit_data *sa = va; kuid_t fsuid = current_fsuid(); - if (sa->aad->fs.request & AA_AUDIT_FILE_MASK) { + if (aad(sa)->fs.request & AA_AUDIT_FILE_MASK) { audit_log_format(ab, " requested_mask="); - audit_file_mask(ab, sa->aad->fs.request); + audit_file_mask(ab, aad(sa)->fs.request); } - if (sa->aad->fs.denied & AA_AUDIT_FILE_MASK) { + if (aad(sa)->fs.denied & AA_AUDIT_FILE_MASK) { audit_log_format(ab, " denied_mask="); - audit_file_mask(ab, sa->aad->fs.denied); + audit_file_mask(ab, aad(sa)->fs.denied); } - if (sa->aad->fs.request & AA_AUDIT_FILE_MASK) { + if (aad(sa)->fs.request & AA_AUDIT_FILE_MASK) { audit_log_format(ab, " fsuid=%d", from_kuid(&init_user_ns, fsuid)); audit_log_format(ab, " ouid=%d", - from_kuid(&init_user_ns, sa->aad->fs.ouid)); + from_kuid(&init_user_ns, aad(sa)->fs.ouid)); } - if (sa->aad->fs.target) { + if (aad(sa)->fs.target) { audit_log_format(ab, " target="); - audit_log_untrustedstring(ab, sa->aad->fs.target); + audit_log_untrustedstring(ab, aad(sa)->fs.target); } } @@ -111,7 +111,7 @@ struct common_audit_data sa; struct apparmor_audit_data aad = {0,}; sa.type = LSM_AUDIT_DATA_NONE; - sa.aad = &aad; + aad_set(&sa, &aad); aad.op = op, aad.fs.request = request; aad.name = name; @@ -120,36 +120,36 @@ aad.info = info; aad.error = error; - if (likely(!sa.aad->error)) { + if (likely(!aad.error)) { u32 mask = perms->audit; if (unlikely(AUDIT_MODE(profile) == AUDIT_ALL)) mask = 0xffff; /* mask off perms that are not being force audited */ - sa.aad->fs.request &= mask; + aad.fs.request &= mask; - if (likely(!sa.aad->fs.request)) + if (likely(!aad.fs.request)) return 0; type = AUDIT_APPARMOR_AUDIT; } else { /* only report permissions that were denied */ - sa.aad->fs.request = sa.aad->fs.request & ~perms->allow; + aad.fs.request = aad.fs.request & ~perms->allow; - if (sa.aad->fs.request & perms->kill) + if (aad.fs.request & perms->kill) type = AUDIT_APPARMOR_KILL; /* quiet known rejects, assumes quiet and kill do not overlap */ - if ((sa.aad->fs.request & perms->quiet) && + if ((aad.fs.request & perms->quiet) && AUDIT_MODE(profile) != AUDIT_NOQUIET && AUDIT_MODE(profile) != AUDIT_ALL) - sa.aad->fs.request &= ~perms->quiet; + aad.fs.request &= ~perms->quiet; - if (!sa.aad->fs.request) - return COMPLAIN_MODE(profile) ? 0 : sa.aad->error; + if (!aad.fs.request) + return COMPLAIN_MODE(profile) ? 0 : aad.error; } - sa.aad->fs.denied = sa.aad->fs.request & ~perms->allow; + aad.fs.denied = aad.fs.request & ~perms->allow; return aa_audit(type, profile, gfp, &sa, file_audit_cb); } @@ -267,7 +267,7 @@ /** * aa_path_perm - do permissions check & audit for @path * @op: operation being checked - * @profile: profile being enforced (NOT NULL) + * @label: profile being enforced (NOT NULL) * @path: path to check permissions of (NOT NULL) * @flags: any additional path flags beyond what the profile specifies * @request: requested permissions @@ -275,16 +275,20 @@ * * Returns: %0 else error if access denied or other error */ -int aa_path_perm(int op, struct aa_profile *profile, struct path *path, +int aa_path_perm(int op, struct aa_label *label, struct path *path, int flags, u32 request, struct path_cond *cond) { char *buffer = NULL; struct file_perms perms = {}; const char *name, *info = NULL; - int error; + struct aa_profile *profile; + int i, error; - flags |= profile->path_flags | (S_ISDIR(cond->mode) ? PATH_IS_DIR : 0); - error = aa_path_name(path, flags, &buffer, &name, &info); + /* TODO: fix path lookup flags */ + flags |= labels_profile(label)->path_flags | (S_ISDIR(cond->mode) ? + PATH_IS_DIR : 0); + get_buffers(buffer); + error = aa_path_name(path, flags, buffer, &name, &info); if (error) { if (error == -ENOENT && is_deleted(path->dentry)) { /* Access to open files that are deleted are @@ -294,15 +298,27 @@ info = NULL; perms.allow = request; } - } else { + + fn_for_each_confined(label, profile, + aa_audit_file(profile, &perms, GFP_KERNEL, op, request, + name, NULL, cond->uid, info, error)); + goto out; + } + + label_for_each_confined(i, label, profile) { + int e = 0; aa_str_perms(profile->file.dfa, profile->file.start, name, cond, &perms); if (request & ~perms.allow) - error = -EACCES; + e = -EACCES; + e = aa_audit_file(profile, &perms, GFP_KERNEL, op, request, + name, NULL, cond->uid, info, e); + if (e) + error = e; } - error = aa_audit_file(profile, &perms, GFP_KERNEL, op, request, name, - NULL, cond->uid, info, error); - kfree(buffer); + +out: + put_buffers(buffer); return error; } @@ -329,7 +345,7 @@ /** * aa_path_link - Handle hard link permission check - * @profile: the profile being enforced (NOT NULL) + * @label: the label being enforced (NOT NULL) * @old_dentry: the target dentry (NOT NULL) * @new_dir: directory the new link will be created in (NOT NULL) * @new_dentry: the link being created (NOT NULL) @@ -345,7 +361,7 @@ * * Returns: %0 if allowed else error */ -int aa_path_link(struct aa_profile *profile, struct dentry *old_dentry, +int aa_path_link(struct aa_label *label, struct dentry *old_dentry, struct path *new_dir, struct dentry *new_dentry) { struct path link = { new_dir->mnt, new_dentry }; @@ -359,93 +375,109 @@ struct file_perms lperms, perms; u32 request = AA_MAY_LINK; unsigned int state; - int error; + struct aa_profile *profile; + int i, error; lperms = nullperms; + /* TODO: fix path lookup flags, auditing of failed path for profile */ + profile = labels_profile(label); /* buffer freed below, lname is pointer in buffer */ - error = aa_path_name(&link, profile->path_flags, &buffer, &lname, - &info); + get_buffers(buffer, buffer2); + error = aa_path_name(&link, labels_profile(label)->path_flags, buffer, + &lname, &info); if (error) - goto audit; + goto err; /* buffer2 freed below, tname is pointer in buffer2 */ - error = aa_path_name(&target, profile->path_flags, &buffer2, &tname, - &info); + error = aa_path_name(&target, labels_profile(label)->path_flags, + buffer2, &tname, &info); if (error) - goto audit; - - error = -EACCES; - /* aa_str_perms - handles the case of the dfa being NULL */ - state = aa_str_perms(profile->file.dfa, profile->file.start, lname, - &cond, &lperms); - - if (!(lperms.allow & AA_MAY_LINK)) - goto audit; - - /* test to see if target can be paired with link */ - state = aa_dfa_null_transition(profile->file.dfa, state); - aa_str_perms(profile->file.dfa, state, tname, &cond, &perms); + goto err; - /* force audit/quiet masks for link are stored in the second entry - * in the link pair. - */ - lperms.audit = perms.audit; - lperms.quiet = perms.quiet; - lperms.kill = perms.kill; - - if (!(perms.allow & AA_MAY_LINK)) { - info = "target restricted"; - goto audit; - } + label_for_each_confined(i, label, profile) { + int e = -EACCES; + /* aa_str_perms - handles the case of the dfa being NULL */ + state = aa_str_perms(profile->file.dfa, profile->file.start, + lname, &cond, &lperms); + + if (!(lperms.allow & AA_MAY_LINK)) + goto audit; + + /* test to see if target can be paired with link */ + state = aa_dfa_null_transition(profile->file.dfa, state); + aa_str_perms(profile->file.dfa, state, tname, &cond, &perms); + + /* force audit/quiet masks for link are stored in the second + * entry in the link pair. + */ + lperms.audit = perms.audit; + lperms.quiet = perms.quiet; + lperms.kill = perms.kill; + + if (!(perms.allow & AA_MAY_LINK)) { + info = "target restricted"; + goto audit; + } - /* done if link subset test is not required */ - if (!(perms.allow & AA_LINK_SUBSET)) - goto done_tests; + /* done if link subset test is not required */ + if (!(perms.allow & AA_LINK_SUBSET)) + goto done_tests; + + /* Do link perm subset test requiring allowed permission on + * link are a subset of the allowed permissions on target. + */ + aa_str_perms(profile->file.dfa, profile->file.start, tname, + &cond, &perms); + + /* AA_MAY_LINK is not considered in the subset test */ + request = lperms.allow & ~AA_MAY_LINK; + lperms.allow &= perms.allow | AA_MAY_LINK; + + request |= AA_AUDIT_FILE_MASK & (lperms.allow & ~perms.allow); + if (request & ~lperms.allow) { + goto audit; + } else if ((lperms.allow & MAY_EXEC) && + !xindex_is_subset(lperms.xindex, perms.xindex)) { + lperms.allow &= ~MAY_EXEC; + request |= MAY_EXEC; + info = "link not subset of target"; + goto audit; + } - /* Do link perm subset test requiring allowed permission on link are a - * subset of the allowed permissions on target. - */ - aa_str_perms(profile->file.dfa, profile->file.start, tname, &cond, - &perms); + done_tests: + e = 0; - /* AA_MAY_LINK is not considered in the subset test */ - request = lperms.allow & ~AA_MAY_LINK; - lperms.allow &= perms.allow | AA_MAY_LINK; - - request |= AA_AUDIT_FILE_MASK & (lperms.allow & ~perms.allow); - if (request & ~lperms.allow) { - goto audit; - } else if ((lperms.allow & MAY_EXEC) && - !xindex_is_subset(lperms.xindex, perms.xindex)) { - lperms.allow &= ~MAY_EXEC; - request |= MAY_EXEC; - info = "link not subset of target"; - goto audit; + audit: + e = aa_audit_file(profile, &lperms, GFP_KERNEL, OP_LINK, + request, lname, tname, cond.uid, info, + e); + if (e) + error = e; } -done_tests: - error = 0; - -audit: - error = aa_audit_file(profile, &lperms, GFP_KERNEL, OP_LINK, request, - lname, tname, cond.uid, info, error); - kfree(buffer); - kfree(buffer2); +out: + put_buffers(buffer, buffer2); return error; + +err: + fn_for_each_confined(label, profile, + aa_audit_file(profile, &lperms, GFP_KERNEL, OP_LINK, request, + lname, tname, cond.uid, info, error)); + goto out; } /** * aa_file_perm - do permission revalidation check & audit for @file * @op: operation being checked - * @profile: profile being enforced (NOT NULL) + * @label: profile being enforced (NOT NULL) * @file: file to revalidate access permissions on (NOT NULL) * @request: requested permissions * * Returns: %0 if access allowed else error */ -int aa_file_perm(int op, struct aa_profile *profile, struct file *file, +int aa_file_perm(int op, struct aa_label *label, struct file *file, u32 request) { struct path_cond cond = { @@ -453,6 +485,6 @@ .mode = file_inode(file)->i_mode }; - return aa_path_perm(op, profile, &file->f_path, PATH_DELEGATE_DELETED, + return aa_path_perm(op, label, &file->f_path, PATH_DELEGATE_DELETED, request, &cond); } --- linux-3.11.0.orig/security/apparmor/Makefile +++ linux-3.11.0/security/apparmor/Makefile @@ -4,10 +4,43 @@ 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 label.o net.o mount.o +apparmor-$(CONFIG_SECURITY_APPARMOR_HASH) += crypto.o clean-files := capability_names.h rlim_names.h +# Build a lower case string table of address family names +# Transform lines from +# define AF_LOCAL 1 /* POSIX name for AF_UNIX */ +# #define AF_INET 2 /* Internet IP Protocol */ +# to +# [1] = "local", +# [2] = "inet", +# +# and build the securityfs entries for the mapping. +# Transforms lines from +# #define AF_INET 2 /* Internet IP Protocol */ +# to +# #define AA_FS_AF_MASK "local inet" +quiet_cmd_make-af = GEN $@ +cmd_make-af = echo "static const char *address_family_names[] = {" > $@ ;\ + sed $< >>$@ -r -n -e "/AF_MAX/d" -e "/AF_LOCAL/d" -e \ + 's/^\#define[ \t]+AF_([A-Z0-9_]+)[ \t]+([0-9]+)(.*)/[\2] = "\L\1",/p';\ + echo "};" >> $@ ;\ + echo -n '\#define AA_FS_AF_MASK "' >> $@ ;\ + sed -r -n 's/^\#define[ \t]+AF_([A-Z0-9_]+)[ \t]+([0-9]+)(.*)/\L\1/p'\ + $< | tr '\n' ' ' | sed -e 's/ $$/"\n/' >> $@ + +# Build a lower case string table of sock type names +# Transform lines from +# SOCK_STREAM = 1, +# to +# [1] = "stream", +quiet_cmd_make-sock = GEN $@ +cmd_make-sock = echo "static const char *sock_type_names[] = {" >> $@ ;\ + sed $^ >>$@ -r -n \ + -e 's/^\tSOCK_([A-Z0-9_]+)[\t]+=[ \t]+([0-9]+)(.*)/[\2] = "\L\1",/p';\ + echo "};" >> $@ # Build a lower case string table of capability names # Transforms lines from @@ -18,7 +51,11 @@ cmd_make-caps = echo "static const char *const capability_names[] = {" > $@ ;\ sed $< >>$@ -r -n -e '/CAP_FS_MASK/d' \ -e 's/^\#define[ \t]+CAP_([A-Z0-9_]+)[ \t]+([0-9]+)/[\2] = "\L\1",/p';\ - echo "};" >> $@ + echo "};" >> $@ ;\ + echo -n '\#define AA_FS_CAPS_MASK "' >> $@ ;\ + sed $< -r -n -e '/CAP_FS_MASK/d' \ + -e 's/^\#define[ \t]+CAP_([A-Z0-9_]+)[ \t]+([0-9]+)/\L\1/p' | \ + tr '\n' ' ' | sed -e 's/ $$/"\n/' >> $@ # Build a lower case string table of rlimit names. @@ -56,6 +93,7 @@ tr '\n' ' ' | sed -e 's/ $$/"\n/' >> $@ $(obj)/capability.o : $(obj)/capability_names.h +$(obj)/net.o : $(obj)/net_names.h $(obj)/resource.o : $(obj)/rlim_names.h $(obj)/capability_names.h : $(srctree)/include/uapi/linux/capability.h \ $(src)/Makefile @@ -63,3 +101,8 @@ $(obj)/rlim_names.h : $(srctree)/include/uapi/asm-generic/resource.h \ $(src)/Makefile $(call cmd,make-rlim) +$(obj)/net_names.h : $(srctree)/include/linux/socket.h \ + $(srctree)/include/linux/net.h \ + $(src)/Makefile + $(call cmd,make-af) + $(call cmd,make-sock) --- linux-3.11.0.orig/security/apparmor/Kconfig +++ linux-3.11.0/security/apparmor/Kconfig @@ -29,3 +29,50 @@ boot. If you are unsure how to answer this question, answer 1. + +config SECURITY_APPARMOR_STATS + bool "enable debug statistics" + depends on SECURITY_APPARMOR + select APPARMOR_LABEL_STATS + default n + help + This enables keeping statistics on various internal structures + and functions in apparmor. + + If you are unsure how to answer this question, answer N. + +config SECURITY_APPARMOR_UNCONFINED_INIT + bool "Set init to unconfined on boot" + depends on SECURITY_APPARMOR + default y + help + This option determines policy behavior during early boot by + placing the init process in the unconfined state, or the + 'default' profile. + + This option determines policy behavior during early boot by + placing the init process in the unconfined state, or the + 'default' profile. + + 'Y' means init and its children are not confined, unless the + init process is re-execed after a policy load; loaded policy + will only apply to processes started after the load. + + 'N' means init and its children are confined in a profile + named 'default', which can be replaced later and thus + provide for confinement for processes started early at boot, + though not confined during early boot. + + If you are unsure how to answer this question, answer Y. + +config SECURITY_APPARMOR_HASH + bool "SHA1 hash of loaded profiles" + depends on SECURITY_APPARMOR + depends on CRYPTO + select CRYPTO_SHA1 + default y + + help + This option selects whether sha1 hashing is done against loaded + profiles and exported for inspection to user space via the apparmor + filesystem. --- linux-3.11.0.orig/security/apparmor/net.c +++ linux-3.11.0/security/apparmor/net.c @@ -0,0 +1,169 @@ +/* + * AppArmor security module + * + * This file contains AppArmor network mediation + * + * Copyright (C) 1998-2008 Novell/SUSE + * Copyright 2009-2012 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/label.h" +#include "include/policy.h" + +#include "net_names.h" + +struct aa_fs_entry aa_fs_entry_network[] = { + AA_FS_FILE_STRING("af_mask", AA_FS_AF_MASK), + { } +}; + +/* 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[aad(sa)->net.type]) { + audit_log_string(ab, sock_type_names[aad(sa)->net.type]); + } else { + audit_log_format(ab, "\"unknown(%d)\"", aad(sa)->net.type); + } + audit_log_format(ab, " protocol=%d", aad(sa)->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; + struct apparmor_audit_data aad = { }; + struct lsm_network_audit net = { }; + if (sk) { + sa.type = LSM_AUDIT_DATA_NET; + } else { + sa.type = LSM_AUDIT_DATA_NONE; + } + /* todo fill in socket addr info */ + aad_set(&sa, &aad); + sa.u.net = &net; + sa.u.net->family = family; + sa.u.net->sk = sk; + aad.op = op, + aad.net.type = type; + aad.net.protocol = protocol; + aad.error = error; + + if (likely(!aad.error)) { + u16 audit_mask = profile->net.audit[sa.u.net->family]; + if (likely((AUDIT_MODE(profile) != AUDIT_ALL) && + !(1 << 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 << aad.net.type); + + 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 : 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 + * @label: label 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_label *label, u16 family, int type, + int protocol, struct sock *sk) +{ + struct aa_profile *profile; + u16 family_mask; + int i, error = 0; + + 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; + + label_for_each_confined(i, label, profile) { + family_mask = profile->net.allow[family]; + error = (family_mask & (1 << type)) ? 0 : -EACCES; + error = audit_net(profile, op, family, type, protocol, sk, + error); + if (error) + break; + } + + return 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_label *label; + 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; + + label = __aa_current_label(); + if (!unconfined(label)) + error = aa_net_perm(op, label, sk->sk_family, sk->sk_type, + sk->sk_protocol, sk); + + return error; +} --- linux-3.11.0.orig/security/apparmor/crypto.c +++ linux-3.11.0/security/apparmor/crypto.c @@ -0,0 +1,95 @@ +/* + * AppArmor security module + * + * This file contains AppArmor policy loading interface function definitions. + * + * Copyright 2013 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. + * + * Fns to provide a checksum of policy that has been loaded this can be + * compared to userspace policy compiles to check loaded policy is what + * it should be. + */ + +#include + +#include "include/apparmor.h" +#include "include/crypto.h" + +static unsigned int apparmor_hash_size; + +static struct crypto_shash *apparmor_tfm; + +unsigned int aa_hash_size(void) +{ + return apparmor_hash_size; +} + +int aa_calc_profile_hash(struct aa_profile *profile, u32 version, void *start, + size_t len) +{ + struct { + struct shash_desc shash; + char ctx[crypto_shash_descsize(apparmor_tfm)]; + } desc; + int error = -ENOMEM; + u32 le32_version = cpu_to_le32(version); + + if (!apparmor_tfm) + return 0; + + profile->hash = kzalloc(apparmor_hash_size, GFP_KERNEL); + if (!profile->hash) + goto fail; + + desc.shash.tfm = apparmor_tfm; + desc.shash.flags = 0; + + error = crypto_shash_init(&desc.shash); + if (error) + goto fail; + error = crypto_shash_update(&desc.shash, (u8 *) &le32_version, 4); + if (error) + goto fail; + error = crypto_shash_update(&desc.shash, (u8 *) start, len); + if (error) + goto fail; + error = crypto_shash_final(&desc.shash, profile->hash); + if (error) + goto fail; + + return 0; + +fail: + kfree(profile->hash); + profile->hash = NULL; + + return error; +} + +static int __init init_profile_hash(void) +{ + struct crypto_shash *tfm; + + if (!apparmor_initialized) + return 0; + + tfm = crypto_alloc_shash("sha1", 0, CRYPTO_ALG_ASYNC); + if (IS_ERR(tfm)) { + int error = PTR_ERR(tfm); + AA_ERROR("failed to setup profile sha1 hashing: %d\n", error); + return error; + } + apparmor_tfm = tfm; + apparmor_hash_size = crypto_shash_digestsize(apparmor_tfm); + + aa_info_message("AppArmor sha1 policy hashing enabled"); + + return 0; +} + +late_initcall(init_profile_hash); --- linux-3.11.0.orig/security/apparmor/lsm.c +++ linux-3.11.0/security/apparmor/lsm.c @@ -32,19 +32,24 @@ #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" +#include "include/mount.h" /* Flag indicating whether initialization completed */ int apparmor_initialized __initdata; +DEFINE_PER_CPU(struct aa_buffers, aa_buffers); + + /* * LSM hook functions */ /* - * free the associated aa_task_cxt and put its profiles + * free the associated aa_task_cxt and put its labels */ static void apparmor_cred_free(struct cred *cred) { @@ -116,22 +121,31 @@ static int apparmor_capget(struct task_struct *target, kernel_cap_t *effective, kernel_cap_t *inheritable, kernel_cap_t *permitted) { - struct aa_profile *profile; + struct aa_label *label; const struct cred *cred; rcu_read_lock(); cred = __task_cred(target); - profile = aa_cred_profile(cred); + label = aa_get_newest_cred_label(cred); *effective = cred->cap_effective; *inheritable = cred->cap_inheritable; *permitted = cred->cap_permitted; - if (!unconfined(profile) && !COMPLAIN_MODE(profile)) { - *effective = cap_intersect(*effective, profile->caps.allow); - *permitted = cap_intersect(*permitted, profile->caps.allow); + if (!unconfined(label)) { + struct aa_profile *profile; + int i; + label_for_each_confined(i, label, profile) { + if (COMPLAIN_MODE(profile)) + continue; + *effective = cap_intersect(*effective, + profile->caps.allow); + *permitted = cap_intersect(*permitted, + profile->caps.allow); + } } rcu_read_unlock(); + aa_put_label(label); return 0; } @@ -140,13 +154,24 @@ int cap, int audit) { struct aa_profile *profile; + struct aa_label *label; /* cap_capable returns 0 on success, else -EPERM */ - int error = cap_capable(cred, ns, cap, audit); - if (!error) { - profile = aa_cred_profile(cred); - if (!unconfined(profile)) - error = aa_capable(current, profile, cap, audit); + int i, error = cap_capable(cred, ns, cap, audit); + if (error) + return error; + + label = aa_get_newest_cred_label(cred); + if (unconfined(label)) + goto out; + + label_for_each_confined(i, label, profile) { + int e = aa_capable(current, profile, cap, audit); + if (e) + error = e; } +out: + aa_put_label(label); + return error; } @@ -162,16 +187,27 @@ static int common_perm(int op, struct path *path, u32 mask, struct path_cond *cond) { - struct aa_profile *profile; + struct aa_label *label; int error = 0; - profile = __aa_current_profile(); - if (!unconfined(profile)) - error = aa_path_perm(op, profile, path, 0, mask, cond); + label = __aa_get_current_label(); + if (!unconfined(label)) + error = aa_path_perm(op, label, path, 0, mask, cond); + __aa_put_current_label(label); return error; } +static void apparmor_inode_free_security(struct inode *inode) +{ + struct aa_label *cxt = inode_cxt(inode); + + if (cxt) { + inode_cxt(inode) = NULL; + aa_put_label(cxt); + } +} + /** * common_perm_dir_dentry - common permission wrapper when path is dir, dentry * @op: operation being checked @@ -302,41 +338,41 @@ static int apparmor_path_link(struct dentry *old_dentry, struct path *new_dir, struct dentry *new_dentry) { - struct aa_profile *profile; + struct aa_label *label; int error = 0; if (!mediated_filesystem(old_dentry->d_inode)) return 0; - profile = aa_current_profile(); - if (!unconfined(profile)) - error = aa_path_link(profile, old_dentry, new_dir, new_dentry); + label = aa_current_label(); + if (!unconfined(label)) + error = aa_path_link(label, old_dentry, new_dir, new_dentry); return error; } static int apparmor_path_rename(struct path *old_dir, struct dentry *old_dentry, struct path *new_dir, struct dentry *new_dentry) { - struct aa_profile *profile; + struct aa_label *label; int error = 0; if (!mediated_filesystem(old_dentry->d_inode)) return 0; - profile = aa_current_profile(); - if (!unconfined(profile)) { + label = aa_current_label(); + if (!unconfined(label)) { struct path old_path = { old_dir->mnt, old_dentry }; struct path new_path = { new_dir->mnt, new_dentry }; struct path_cond cond = { old_dentry->d_inode->i_uid, old_dentry->d_inode->i_mode }; - error = aa_path_perm(OP_RENAME_SRC, profile, &old_path, 0, + error = aa_path_perm(OP_RENAME_SRC, label, &old_path, 0, MAY_READ | AA_MAY_META_READ | MAY_WRITE | AA_MAY_META_WRITE | AA_MAY_DELETE, &cond); if (!error) - error = aa_path_perm(OP_RENAME_DEST, profile, &new_path, + error = aa_path_perm(OP_RENAME_DEST, label, &new_path, 0, MAY_WRITE | AA_MAY_META_WRITE | AA_MAY_CREATE, &cond); @@ -349,7 +385,8 @@ if (!mediated_filesystem(path->dentry->d_inode)) return 0; - return common_perm_mnt_dentry(OP_CHMOD, path->mnt, path->dentry, AA_MAY_CHMOD); + return common_perm_mnt_dentry(OP_CHMOD, path->mnt, path->dentry, + AA_MAY_CHMOD); } static int apparmor_path_chown(struct path *path, kuid_t uid, kgid_t gid) @@ -376,7 +413,7 @@ static int apparmor_file_open(struct file *file, const struct cred *cred) { struct aa_file_cxt *fcxt = file->f_security; - struct aa_profile *profile; + struct aa_label *label; int error = 0; if (!mediated_filesystem(file_inode(file))) @@ -392,16 +429,17 @@ return 0; } - profile = aa_cred_profile(cred); - if (!unconfined(profile)) { + label = aa_get_newest_cred_label(cred); + if (!unconfined(label)) { struct inode *inode = file_inode(file); struct path_cond cond = { inode->i_uid, inode->i_mode }; - error = aa_path_perm(OP_OPEN, profile, &file->f_path, 0, + error = aa_path_perm(OP_OPEN, label, &file->f_path, 0, aa_map_file_to_perms(file), &cond); /* todo cache full allowed permissions set and state */ fcxt->allow = aa_map_file_to_perms(file); } + aa_put_label(label); return error; } @@ -426,16 +464,16 @@ static int common_file_perm(int op, struct file *file, u32 mask) { struct aa_file_cxt *fcxt = file->f_security; - struct aa_profile *profile, *fprofile = aa_cred_profile(file->f_cred); + struct aa_label *label, *flabel = aa_get_newest_cred_label(file->f_cred); int error = 0; - BUG_ON(!fprofile); + BUG_ON(!flabel); if (!file->f_path.mnt || !mediated_filesystem(file_inode(file))) - return 0; + goto out; - profile = __aa_current_profile(); + label = __aa_get_current_label(); /* revalidate access, if task is unconfined, or the cached cred * doesn't match or if the request is for more permissions than @@ -444,9 +482,12 @@ * Note: the test for !unconfined(fprofile) is to handle file * delegation from unconfined tasks */ - if (!unconfined(profile) && !unconfined(fprofile) && - ((fprofile != profile) || (mask & ~fcxt->allow))) - error = aa_file_perm(op, profile, file, mask); + if (!unconfined(label) && !unconfined(flabel) && + ((flabel != label) || (mask & ~fcxt->allow))) + error = aa_file_perm(op, label, file, mask); + __aa_put_current_label(label); +out: + aa_put_label(flabel); return error; } @@ -501,6 +542,60 @@ !(vma->vm_flags & VM_SHARED) ? MAP_PRIVATE : 0); } +static int apparmor_sb_mount(const char *dev_name, struct path *path, + const char *type, unsigned long flags, void *data) +{ + struct aa_label *label; + int error = 0; + + /* Discard magic */ + if ((flags & MS_MGC_MSK) == MS_MGC_VAL) + flags &= ~MS_MGC_MSK; + + flags &= ~AA_MS_IGNORE_MASK; + + label = __aa_current_label(); + if (!unconfined(label)) { + if (flags & MS_REMOUNT) + error = aa_remount(label, path, flags, data); + else if (flags & MS_BIND) + error = aa_bind_mount(label, path, dev_name, flags); + else if (flags & (MS_SHARED | MS_PRIVATE | MS_SLAVE | + MS_UNBINDABLE)) + error = aa_mount_change_type(label, path, flags); + else if (flags & MS_MOVE) + error = aa_move_mount(label, path, dev_name); + else + error = aa_new_mount(label, dev_name, path, type, + flags, data); + } + return error; +} + +static int apparmor_sb_umount(struct vfsmount *mnt, int flags) +{ + struct aa_label *label; + int error = 0; + + label = __aa_current_label(); + if (!unconfined(label)) + error = aa_umount(label, mnt, flags); + + return error; +} + +static int apparmor_sb_pivotroot(struct path *old_path, struct path *new_path) +{ + struct aa_label *label; + int error = 0; + + label = __aa_current_label(); + if (!unconfined(label)) + error = aa_pivotroot(label, old_path, new_path); + + return error; +} + static int apparmor_getprocattr(struct task_struct *task, char *name, char **value) { @@ -508,19 +603,21 @@ /* released below */ const struct cred *cred = get_task_cred(task); struct aa_task_cxt *cxt = cred_cxt(cred); + struct aa_label *label = NULL; if (strcmp(name, "current") == 0) - error = aa_getprocattr(aa_newest_version(cxt->profile), - value); + label = aa_get_newest_label(cxt->label); else if (strcmp(name, "prev") == 0 && cxt->previous) - error = aa_getprocattr(aa_newest_version(cxt->previous), - value); + label = aa_get_newest_label(cxt->label); else if (strcmp(name, "exec") == 0 && cxt->onexec) - error = aa_getprocattr(aa_newest_version(cxt->onexec), - value); + label = aa_get_newest_label(cxt->onexec); else error = -EINVAL; + if (label) + error = aa_getprocattr(label, value); + + aa_put_label(label); put_cred(cred); return error; @@ -592,8 +689,8 @@ fail: sa.type = LSM_AUDIT_DATA_NONE; - sa.aad = &aad; - aad.profile = aa_current_profile(); + aad_set(&sa, &aad); + aad.label = aa_current_label(); aad.op = OP_SETPROCATTR; aad.info = name; aad.error = -EINVAL; @@ -604,15 +701,385 @@ static int apparmor_task_setrlimit(struct task_struct *task, unsigned int resource, struct rlimit *new_rlim) { - struct aa_profile *profile = __aa_current_profile(); + struct aa_label *label = __aa_get_current_label(); int error = 0; - if (!unconfined(profile)) - error = aa_task_setrlimit(profile, task, resource, new_rlim); + if (!unconfined(label)) + error = aa_task_setrlimit(label, task, resource, new_rlim); + __aa_put_current_label(label); + + return error; +} + +/** + * apparmor_sk_alloc_security - allocate and attach the sk_security field +??? local stream only ???? + */ +static int apparmor_sk_alloc_security(struct sock *sk, int family, gfp_t flags) +{ + struct aa_sk_cxt *cxt; + + cxt = kzalloc(sizeof(*cxt), flags); + if (!cxt) + return -ENOMEM; + + SK_CXT(sk) = cxt; + + return 0; +} + +/** + * apparmor_sk_free_security - free the sk_security field + */ +static void apparmor_sk_free_security(struct sock *sk) +{ + struct aa_sk_cxt *cxt = SK_CXT(sk); + + SK_CXT(sk) = NULL; + aa_put_label(cxt->label); + aa_put_label(cxt->peer); + kfree(cxt); +} + +/** + * apparmor_clone_security - clone the sk_security field + */ +static void apparmor_sk_clone_security(const struct sock *sk, + struct sock *newsk) +{ +// ??? selinux + struct aa_sk_cxt *cxt = SK_CXT(sk); + struct aa_sk_cxt *new = SK_CXT(newsk); + + new->label = aa_get_label(cxt->label); + new->peer = aa_get_label(cxt->peer); +} + +#include +#define print_sk(SK) \ +do { \ + if ((SK)->sk_family == PF_UNIX) { \ + struct unix_sock *u = unix_sk(SK); \ + int len, addr_len; \ + char *buf; \ + if (!u->addr) { \ + addr_len = sizeof(sa_family_t); \ + } else { \ + addr_len = u->addr->len; \ + buf = (char *) &u->addr->name->sun_path; \ + } \ + len = addr_len - sizeof(sa_family_t); \ + printk("%s: %s: f %d, t %d, p %d", __FUNCTION__, \ + #SK , \ + (SK)->sk_family, (SK)->sk_type, (SK)->sk_protocol); \ + if (len <= 0) \ + printk(" "); \ + else if (buf[0]) \ + printk(" %s", buf); \ + else \ + printk(" altns: %d %.*s", len, len, buf+1); \ + printk("\n"); \ + } else { \ + printk("%s: %s: family %d\n", __FUNCTION__, #SK , (SK)->sk_family); \ + } \ +} while (0) + +// sk->sk_socket is NULL when orphaned/being shutdown +// socket->sk set on graft, and sock_init_data if (socket exists) + +#define UNIX_ANONYMOUS(U) (!unix_sk(U)->addr) +#define UNIX_FS(U) (!UNIX_ANONYMOUS(U) && unix_sk(U)->addr->name->sun_path[0]) + +static int unix_fs_perm(int op, struct aa_label *label, struct sock *sk, + u32 mask) +{ + if (!unconfined(label) && UNIX_FS(sk)) { + struct unix_sock *u = unix_sk(sk); + + /* the sunpath may not be valid for this ns so use the path */ + struct path_cond cond = { u->path.dentry->d_inode->i_uid, + u->path.dentry->d_inode->i_mode + }; + + return aa_path_perm(op, label, &u->path, 0, mask, &cond); + } + return 0; +} + +/** + * apparmor_unix_stream_connect - check perms before making unix domain conn + * + * other is locked when this hook is called + */ +static int apparmor_unix_stream_connect(struct sock *sock, struct sock *other, + struct sock *newsk) +{ + struct aa_sk_cxt *sock_cxt = SK_CXT(sock); + struct aa_sk_cxt *other_cxt = SK_CXT(other); + struct aa_sk_cxt *new_cxt = SK_CXT(newsk); + struct aa_label *label = __aa_get_current_label(); + + int error = unix_fs_perm(OP_CONNECT, label, other, + MAY_READ | MAY_WRITE); + __aa_put_current_label(label); + + if (error) + return error; + + /* Cross reference the peer labels for SO_PEERSEC */ + if (new_cxt->peer) { + //printk("%s: new_cxt->peer\n", __FUNCTION__); + aa_put_label(new_cxt->peer); + } + if (sock_cxt->peer) { + //printk("%s: sock_cxt->peer\n", __FUNCTION__); + aa_put_label(sock_cxt->peer); + } + + new_cxt->peer = aa_get_label(sock_cxt->label); + sock_cxt->peer = aa_get_label(other_cxt->label); + +// print_sk(sock); +// print_sk(other); +// print_sk(newsk); + + return 0; +} + +/** + * apparmor_unix_may_send - check perms before conn or sending unix dgrams + * + * other is locked when this hook is called + */ +static int apparmor_unix_may_send(struct socket *sock, struct socket *other) +{ + struct aa_sk_cxt *other_cxt = SK_CXT(other->sk); + struct aa_label *label = __aa_get_current_label(); + int e, error ; + + error = unix_fs_perm(OP_SENDMSG, label, other->sk, MAY_WRITE); + e = unix_fs_perm(OP_SENDMSG, other_cxt->label, sock->sk, MAY_READ); + if (e) + error = e; + __aa_put_current_label(label); + + return error; +} + +/** + * apparmor_socket_create - check perms before create a new socket + */ +static int apparmor_socket_create(int family, int type, int protocol, int kern) +{ + struct aa_label *label; + + label = aa_current_label(); + if (kern || unconfined(label)) + return 0; + + return aa_net_perm(OP_CREATE, label, family, type, protocol, NULL); +} + +/** + * apparmor_socket_post_create - setup the per-socket security struct + * + * Note: socket likely does not have sk here + * ??? inode vs socket storage ??? + * sk labeling done in sock_graft + */ +static int apparmor_socket_post_create(struct socket *sock, int family, + int type, int protocol, int kern) +{ + if (!kern) { +/* set sock and sk label to NULL if kernel ????? */ + SOCK_CXT(sock) = aa_get_label(aa_current_label()); + + if (sock->sk) { + struct aa_sk_cxt *cxt = SK_CXT(sock->sk); + aa_put_label(cxt->label); + cxt->label = aa_get_label(aa_current_label()); + } + } + return 0; +} + +/** + * apparmor_socket_bind - check perms before bind addr to socket + */ +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); +} + +/** + * apparmor_socket_connect - check perms before connecting @sock to @address + */ +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); +} + +/** + * apparmor_socket_list - check perms before allowing listen + */ +static int apparmor_socket_listen(struct socket *sock, int backlog) +{ + struct sock *sk = sock->sk; + + return aa_revalidate_sk(OP_LISTEN, sk); +} + +/** + * apparmor_socket_accept - check perms before accepting a new connection. + * + * Note: while @newsock is created and has some information, the accept + * has not been done. + */ +static int apparmor_socket_accept(struct socket *sock, struct socket *newsock) +{ + struct sock *sk = sock->sk; + + return aa_revalidate_sk(OP_ACCEPT, sk); +} + +/** + * apparmor_socket_sendmsg - check perms before sending msg to another socket + */ +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); +} + +/** + * apparmor_socket_recvmsg - check perms before receiving a message + */ +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); +} + +/** + * apparmor_socket_getsockname - check perms before getting the local address + */ +static int apparmor_socket_getsockname(struct socket *sock) +{ + struct sock *sk = sock->sk; + + return aa_revalidate_sk(OP_GETSOCKNAME, sk); +} + +/** + * apparmor_socket_getpeername - check perms before getting remote address + */ +static int apparmor_socket_getpeername(struct socket *sock) +{ + struct sock *sk = sock->sk; + + return aa_revalidate_sk(OP_GETPEERNAME, sk); +} + +/** + * apparmor_getsockopt - check perms before getting socket options + */ +static int apparmor_socket_getsockopt(struct socket *sock, int level, + int optname) +{ + struct sock *sk = sock->sk; + + return aa_revalidate_sk(OP_GETSOCKOPT, sk); +} + +/** + * apparmor_setsockopt - check perms before setting socket options + */ +static int apparmor_socket_setsockopt(struct socket *sock, int level, + int optname) +{ + struct sock *sk = sock->sk; + + return aa_revalidate_sk(OP_SETSOCKOPT, sk); +} + +/** + * apparmor_socket_shutdown - check perms before shutting down @sock conn + */ +static int apparmor_socket_shutdown(struct socket *sock, int how) +{ + struct sock *sk = sock->sk; + + return aa_revalidate_sk(OP_SOCK_SHUTDOWN, sk); +} + +/** + * apparmor_socket_getpeersec_stream - get security context of peer + * + * Note: for tcp only valid if using ipsec or cipso on lan + */ +static int apparmor_socket_getpeersec_stream(struct socket *sock, + char __user *optval, + int __user *optlen, unsigned len) +{ + char *name; + int slen, error = 0; + struct aa_sk_cxt *cxt = SK_CXT(sock->sk); + struct aa_label *label = aa_current_label(); + + if (!cxt->peer) + return -ENOPROTOOPT; + + slen = aa_label_asprint(&name, labels_ns(label), cxt->peer, true, + GFP_KERNEL); + /* don't include terminating \0 in slen, it breaks some apps */ + if (slen < 0) { + error = -ENOMEM; + } else { + if (slen > len) { + error = -ERANGE; + } else if (copy_to_user(optval, name, slen)) { + error = -EFAULT; + goto out; + } + if (put_user(slen, optlen)) + error = -EFAULT; + out: + kfree(name); + + } return error; } +/** + * apparmor_sock_graft - set the sockets isec sid to the sock's sid ??? + * + * could set off of SOCK_CXT(parent) but need to track inode and we can + * just + * set sk security information off of current creating process label + */ +static void apparmor_sock_graft(struct sock *sk, struct socket *parent) +{ + struct aa_sk_cxt *cxt = SK_CXT(sk); + if (cxt->label) { + //printk("%s: cxt->label\n", __FUNCTION__); + aa_put_label(cxt->label); + } + + cxt->label = aa_get_label(__aa_current_label()); +} + + static struct security_operations apparmor_ops = { .name = "apparmor", @@ -621,6 +1088,12 @@ .capget = apparmor_capget, .capable = apparmor_capable, + .inode_free_security = apparmor_inode_free_security, + + .sb_mount = apparmor_sb_mount, + .sb_umount = apparmor_sb_umount, + .sb_pivotroot = apparmor_sb_pivotroot, + .path_link = apparmor_path_link, .path_unlink = apparmor_path_unlink, .path_symlink = apparmor_path_symlink, @@ -645,6 +1118,29 @@ .getprocattr = apparmor_getprocattr, .setprocattr = apparmor_setprocattr, + .sk_alloc_security = apparmor_sk_alloc_security, + .sk_free_security = apparmor_sk_free_security, + .sk_clone_security = apparmor_sk_clone_security, + + .unix_stream_connect = apparmor_unix_stream_connect, + .unix_may_send = apparmor_unix_may_send, + + .socket_create = apparmor_socket_create, + .socket_post_create = apparmor_socket_post_create, + .socket_bind = apparmor_socket_bind, + .socket_connect = apparmor_socket_connect, + .socket_listen = apparmor_socket_listen, + .socket_accept = apparmor_socket_accept, + .socket_sendmsg = apparmor_socket_sendmsg, + .socket_recvmsg = apparmor_socket_recvmsg, + .socket_getsockname = apparmor_socket_getsockname, + .socket_getpeername = apparmor_socket_getpeername, + .socket_getsockopt = apparmor_socket_getsockopt, + .socket_setsockopt = apparmor_socket_setsockopt, + .socket_shutdown = apparmor_socket_shutdown, + .socket_getpeersec_stream = apparmor_socket_getpeersec_stream, + .sock_graft = apparmor_sock_graft, + .cred_alloc_blank = apparmor_cred_alloc_blank, .cred_free = apparmor_cred_free, .cred_prepare = apparmor_cred_prepare, @@ -742,7 +1238,12 @@ /* Boot time disable flag */ static bool apparmor_enabled = CONFIG_SECURITY_APPARMOR_BOOTPARAM_VALUE; -module_param_named(enabled, apparmor_enabled, aabool, S_IRUSR); +module_param_named(enabled, apparmor_enabled, bool, S_IRUGO); + +/* Boot time to set use of default or unconfined as initial profile */ +bool aa_g_unconfined_init = CONFIG_SECURITY_APPARMOR_UNCONFINED_INIT; +module_param_named(unconfined, aa_g_unconfined_init, bool, S_IRUSR); + static int __init apparmor_enabled_setup(char *str) { @@ -841,7 +1342,7 @@ if (!apparmor_enabled) return -EINVAL; - return sprintf(buffer, "%s", profile_mode_names[aa_g_profile_mode]); + return sprintf(buffer, "%s", aa_profile_mode_names[aa_g_profile_mode]); } static int param_set_mode(const char *val, struct kernel_param *kp) @@ -856,8 +1357,8 @@ if (!val) return -EINVAL; - for (i = 0; i < APPARMOR_NAMES_MAX_INDEX; i++) { - if (strcmp(val, profile_mode_names[i]) == 0) { + for (i = 0; i < APPARMOR_MODE_NAMES_MAX_INDEX; i++) { + if (strcmp(val, aa_profile_mode_names[i]) == 0) { aa_g_profile_mode = i; return 0; } @@ -872,8 +1373,6 @@ /** * set_init_cxt - set a task context and profile on the first task. - * - * TODO: allow setting an alternate profile than unconfined */ static int __init set_init_cxt(void) { @@ -884,12 +1383,50 @@ if (!cxt) return -ENOMEM; - cxt->profile = aa_get_profile(root_ns->unconfined); + if (!aa_g_unconfined_init) { + cxt->label = aa_setup_default_label(); + if (!cxt->label) { + aa_free_task_context(cxt); + return -ENOMEM; + } + /* fs setup of default is done in aa_create_aafs() */ + } else + cxt->label = aa_get_label(&root_ns->unconfined->label); cred_cxt(cred) = cxt; return 0; } +static void destroy_buffers(void) +{ + u32 i, j; + + for_each_possible_cpu(i) { + for_each_cpu_buffer(j) { + kvfree(per_cpu(aa_buffers, i).buf[j]); + per_cpu(aa_buffers, i).buf[j] = NULL; + } + } +} + +static int __init alloc_buffers(void) +{ + u32 i, j; + + for_each_possible_cpu(i) { + for_each_cpu_buffer(j) { + char *buffer = kvmalloc(aa_g_path_max); + if (!buffer) { + destroy_buffers(); + return -ENOMEM; + } + per_cpu(aa_buffers, i).buf[j] = buffer; + } + } + + return 0; +} + static int __init apparmor_init(void) { int error; @@ -906,6 +1443,12 @@ goto alloc_out; } + error = alloc_buffers(); + if (error) { + AA_ERROR("Unable to allocate work buffers\n"); + goto buffers_out; + } + error = set_init_cxt(); if (error) { AA_ERROR("Failed to set context on init task\n"); @@ -935,6 +1478,9 @@ register_security_out: aa_free_root_ns(); +buffers_out: + destroy_buffers(); + alloc_out: aa_destroy_aafs(); --- linux-3.11.0.orig/security/apparmor/capability.c +++ linux-3.11.0/security/apparmor/capability.c @@ -27,6 +27,11 @@ */ #include "capability_names.h" +struct aa_fs_entry aa_fs_entry_caps[] = { + AA_FS_FILE_STRING("mask", AA_FS_CAPS_MASK), + { } +}; + struct audit_cache { struct aa_profile *profile; kernel_cap_t caps; @@ -66,11 +71,11 @@ struct common_audit_data sa; struct apparmor_audit_data aad = {0,}; sa.type = LSM_AUDIT_DATA_CAP; - sa.aad = &aad; + aad_set(&sa, &aad); sa.u.cap = cap; - sa.aad->tsk = task; - sa.aad->op = OP_CAPABLE; - sa.aad->error = error; + aad.tsk = task; + aad.op = OP_CAPABLE; + aad.error = error; if (likely(!error)) { /* test if auditing is being forced */ --- linux-3.11.0.orig/security/apparmor/policy.c +++ linux-3.11.0/security/apparmor/policy.c @@ -82,6 +82,7 @@ #include "include/context.h" #include "include/file.h" #include "include/ipc.h" +#include "include/label.h" #include "include/match.h" #include "include/path.h" #include "include/policy.h" @@ -92,10 +93,14 @@ /* root profile namespace */ struct aa_namespace *root_ns; -const char *const profile_mode_names[] = { +/* Note: mode names must be unique in the first character because of + * modechrs used to print modes on compound labels on some interfaces + */ +const char *const aa_profile_mode_names[] = { "enforce", "complain", "kill", + "unconfined", }; /** @@ -127,21 +132,26 @@ static bool policy_init(struct aa_policy *policy, const char *prefix, const char *name) { + char *hname; + /* freed by policy_free */ if (prefix) { - policy->hname = kmalloc(strlen(prefix) + strlen(name) + 3, - GFP_KERNEL); - if (policy->hname) - sprintf(policy->hname, "%s//%s", prefix, name); - } else - policy->hname = kstrdup(name, GFP_KERNEL); - if (!policy->hname) + hname = aa_str_alloc(strlen(prefix) + strlen(name) + 3, + GFP_KERNEL); + if (hname) + sprintf(hname, "%s//%s", prefix, name); + } else { + hname = aa_str_alloc(strlen(name) + 1, GFP_KERNEL); + if (hname) + strcpy(hname, name); + } + if (!hname) return 0; + policy->hname = hname; /* base.name is a substring of fqname */ policy->name = (char *)hname_tail(policy->hname); INIT_LIST_HEAD(&policy->list); INIT_LIST_HEAD(&policy->profiles); - kref_init(&policy->count); return 1; } @@ -153,20 +163,20 @@ static void policy_destroy(struct aa_policy *policy) { /* still contains profiles -- invalid */ - if (!list_empty(&policy->profiles)) { + if (on_list_rcu(&policy->profiles)) { AA_ERROR("%s: internal error, " "policy '%s' still contains profiles\n", __func__, policy->name); BUG(); } - if (!list_empty(&policy->list)) { + if (on_list_rcu(&policy->list)) { AA_ERROR("%s: internal error, policy '%s' still on list\n", __func__, policy->name); BUG(); } /* don't free name as its a subset of hname */ - kzfree(policy->hname); + aa_put_str(policy->hname); } /** @@ -174,7 +184,7 @@ * @head: list to search (NOT NULL) * @name: name to search for (NOT NULL) * - * Requires: correct locks for the @head list be held + * Requires: rcu_read_lock be held * * Returns: unrefcounted policy that match @name or NULL if not found */ @@ -182,7 +192,7 @@ { struct aa_policy *policy; - list_for_each_entry(policy, head, list) { + list_for_each_entry_rcu(policy, head, list) { if (!strcmp(policy->name, name)) return policy; } @@ -195,7 +205,7 @@ * @str: string to search for (NOT NULL) * @len: length of match required * - * Requires: correct locks for the @head list be held + * Requires: rcu_read_lock be held * * Returns: unrefcounted policy that match @str or NULL if not found * @@ -207,7 +217,7 @@ { struct aa_policy *policy; - list_for_each_entry(policy, head, list) { + list_for_each_entry_rcu(policy, head, list) { if (aa_strneq(policy->name, str, len)) return policy; } @@ -219,7 +229,7 @@ * Routines for AppArmor namespaces */ -static const char *hidden_ns_name = "---"; +const char *aa_hidden_ns_name = "---"; /** * aa_ns_visible - test if @view is visible from @curr * @curr: namespace to treat as the parent (NOT NULL) @@ -261,7 +271,7 @@ */ return view->base.hname + strlen(curr->base.hname) + 2; } else - return hidden_ns_name; + return aa_hidden_ns_name; } /** @@ -284,27 +294,32 @@ goto fail_ns; INIT_LIST_HEAD(&ns->sub_ns); - rwlock_init(&ns->lock); + mutex_init(&ns->lock); /* released by free_namespace */ ns->unconfined = aa_alloc_profile("unconfined"); if (!ns->unconfined) goto fail_unconfined; + ns->unconfined->label.replacedby = aa_alloc_replacedby(NULL); + if (!ns->unconfined->label.replacedby) + goto fail_replacedby; + + ns->unconfined->label.flags |= FLAG_IX_ON_NAME_ERROR | + FLAG_IMMUTIBLE | FLAG_NS_COUNT | FLAG_UNCONFINED; + ns->unconfined->mode = APPARMOR_UNCONFINED; - ns->unconfined->flags = PFLAG_UNCONFINED | PFLAG_IX_ON_NAME_ERROR | - PFLAG_IMMUTABLE; - - /* - * released by free_namespace, however __remove_namespace breaks - * the cyclic references (ns->unconfined, and unconfined->ns) and - * replaces with refs to parent namespace unconfined - */ - ns->unconfined->ns = aa_get_namespace(ns); + /* ns and ns->unconfined share ns->unconfined refcount */ + ns->unconfined->ns = ns; atomic_set(&ns->uniq_null, 0); + aa_labelset_init(&ns->labels); + return ns; +fail_replacedby: + aa_free_profile(ns->unconfined); + fail_unconfined: kzfree(ns->base.hname); fail_ns: @@ -313,44 +328,34 @@ } /** - * free_namespace - free a profile namespace + * aa_free_namespace - free a profile namespace * @ns: the namespace to free (MAYBE NULL) * * Requires: All references to the namespace must have been put, if the * namespace was referenced by a profile confining a task, */ -static void free_namespace(struct aa_namespace *ns) +void aa_free_namespace(struct aa_namespace *ns) { if (!ns) return; policy_destroy(&ns->base); + aa_labelset_destroy(&ns->labels); aa_put_namespace(ns->parent); - if (ns->unconfined && ns->unconfined->ns == ns) - ns->unconfined->ns = NULL; - - aa_put_profile(ns->unconfined); + ns->unconfined->ns = NULL; + aa_free_profile(ns->unconfined); kzfree(ns); } /** - * aa_free_namespace_kref - free aa_namespace by kref (see aa_put_namespace) - * @kr: kref callback for freeing of a namespace (NOT NULL) - */ -void aa_free_namespace_kref(struct kref *kref) -{ - free_namespace(container_of(kref, struct aa_namespace, base.count)); -} - -/** * __aa_find_namespace - find a namespace on a list by @name * @head: list to search for namespace on (NOT NULL) * @name: name of namespace to look for (NOT NULL) * * Returns: unrefcounted namespace * - * Requires: ns lock be held + * Requires: rcu_read_lock be held */ static struct aa_namespace *__aa_find_namespace(struct list_head *head, const char *name) @@ -373,9 +378,9 @@ { struct aa_namespace *ns = NULL; - read_lock(&root->lock); + rcu_read_lock(); ns = aa_get_namespace(__aa_find_namespace(&root->sub_ns, name)); - read_unlock(&root->lock); + rcu_read_unlock(); return ns; } @@ -390,9 +395,9 @@ { struct aa_namespace *ns, *root; - root = aa_current_profile()->ns; + root = labels_ns(aa_current_label()); - write_lock(&root->lock); + mutex_lock(&root->lock); /* if name isn't specified the profile is loaded to the current ns */ if (!name) { @@ -405,38 +410,31 @@ /* released by caller */ ns = aa_get_namespace(__aa_find_namespace(&root->sub_ns, name)); if (!ns) { - /* namespace not found */ - struct aa_namespace *new_ns; - write_unlock(&root->lock); - new_ns = alloc_namespace(root->base.hname, name); - if (!new_ns) - return NULL; - write_lock(&root->lock); - /* test for race when new_ns was allocated */ - ns = __aa_find_namespace(&root->sub_ns, name); - if (!ns) { - /* add parent ref */ - new_ns->parent = aa_get_namespace(root); - - list_add(&new_ns->base.list, &root->sub_ns); - /* add list ref */ - ns = aa_get_namespace(new_ns); - } else { - /* raced so free the new one */ - free_namespace(new_ns); - /* get reference on namespace */ - aa_get_namespace(ns); + ns = alloc_namespace(root->base.hname, name); + if (!ns) + goto out; + if (__aa_fs_namespace_mkdir(ns, ns_subns_dir(root), name)) { + AA_ERROR("Failed to create interface for ns %s\n", + ns->base.name); + aa_free_namespace(ns); + ns = NULL; + goto out; } + ns->parent = aa_get_namespace(root); + ns->level = root->level + 1; + list_add_rcu(&ns->base.list, &root->sub_ns); + /* add list ref */ + aa_get_namespace(ns); } out: - write_unlock(&root->lock); + mutex_unlock(&root->lock); /* return ref */ return ns; } /** - * __list_add_profile - add a profile to a list + * __add_profile - add a profiles to list and label tree * @list: list to add it to (NOT NULL) * @profile: the profile to add (NOT NULL) * @@ -444,12 +442,21 @@ * * Requires: namespace lock be held, or list not be shared */ -static void __list_add_profile(struct list_head *list, - struct aa_profile *profile) +static void __add_profile(struct list_head *list, struct aa_profile *profile) { - list_add(&profile->base.list, list); + struct aa_label *l; + + AA_BUG(!list); + AA_BUG(!profile); + AA_BUG(!profile->ns); + AA_BUG(!mutex_is_locked(&profile->ns->lock)); + + list_add_rcu(&profile->base.list, list); /* get list reference */ aa_get_profile(profile); + l = aa_label_insert(&profile->ns->labels, &profile->label); + AA_BUG(l != &profile->label); + aa_put_label(l); } /** @@ -466,49 +473,12 @@ */ static void __list_remove_profile(struct aa_profile *profile) { - list_del_init(&profile->base.list); - if (!(profile->flags & PFLAG_NO_LIST_REF)) - /* release list reference */ - aa_put_profile(profile); -} + AA_BUG(!profile); + AA_BUG(!profile->ns); + AA_BUG(!mutex_is_locked(&profile->ns->lock)); -/** - * __replace_profile - replace @old with @new on a list - * @old: profile to be replaced (NOT NULL) - * @new: profile to replace @old with (NOT NULL) - * - * Will duplicate and refcount elements that @new inherits from @old - * and will inherit @old children. - * - * refcount @new for list, put @old list refcount - * - * Requires: namespace list lock be held, or list not be shared - */ -static void __replace_profile(struct aa_profile *old, struct aa_profile *new) -{ - struct aa_policy *policy; - struct aa_profile *child, *tmp; - - if (old->parent) - policy = &old->parent->base; - else - policy = &old->ns->base; - - /* released when @new is freed */ - new->parent = aa_get_profile(old->parent); - new->ns = aa_get_namespace(old->ns); - __list_add_profile(&policy->profiles, new); - /* inherit children */ - list_for_each_entry_safe(child, tmp, &old->base.profiles, base.list) { - aa_put_profile(child->parent); - child->parent = aa_get_profile(new); - /* list refcount transferred to @new*/ - list_move(&child->base.list, &new->base.profiles); - } - - /* released by free_profile */ - old->replacedby = aa_get_profile(new); - __list_remove_profile(old); + list_del_rcu(&profile->base.list); + aa_put_profile(profile); } static void __profile_list_release(struct list_head *head); @@ -521,10 +491,17 @@ */ static void __remove_profile(struct aa_profile *profile) { + AA_BUG(!profile); + AA_BUG(!profile->ns); + AA_BUG(!mutex_is_locked(&profile->ns->lock)); + /* release any children lists first */ __profile_list_release(&profile->base.profiles); /* released by free_profile */ - profile->replacedby = aa_get_profile(profile->ns->unconfined); + aa_label_remove(&profile->ns->labels, &profile->label); + __aa_update_replacedby(&profile->label, + &profile->ns->unconfined->label); + __aa_fs_profile_rmdir(profile); __list_remove_profile(profile); } @@ -552,14 +529,18 @@ if (!ns) return; - write_lock(&ns->lock); + mutex_lock(&ns->lock); /* release all profiles in this namespace */ __profile_list_release(&ns->base.profiles); /* release all sub namespaces */ __ns_list_release(&ns->sub_ns); - write_unlock(&ns->lock); + if (ns->parent) + __aa_update_replacedby(&ns->unconfined->label, + &ns->parent->unconfined->label); + __aa_fs_namespace_rmdir(ns); + mutex_unlock(&ns->lock); } /** @@ -570,25 +551,9 @@ */ static void __remove_namespace(struct aa_namespace *ns) { - struct aa_profile *unconfined = ns->unconfined; - /* remove ns from namespace list */ - list_del_init(&ns->base.list); - - /* - * break the ns, unconfined profile cyclic reference and forward - * all new unconfined profiles requests to the parent namespace - * This will result in all confined tasks that have a profile - * being removed, inheriting the parent->unconfined profile. - */ - if (ns->parent) - ns->unconfined = aa_get_profile(ns->parent->unconfined); - + list_del_rcu(&ns->base.list); destroy_namespace(ns); - - /* release original ns->unconfined ref */ - aa_put_profile(unconfined); - /* release ns->base.list ref, from removal above */ aa_put_namespace(ns); } @@ -634,8 +599,9 @@ aa_put_namespace(ns); } + /** - * free_profile - free a profile + * aa_free_profile - free a profile * @profile: the profile to free (MAYBE NULL) * * Free a profile, its hats and null_profile. All references to the profile, @@ -644,74 +610,35 @@ * If the profile was referenced from a task context, free_profile() will * be called from an rcu callback routine, so we must not sleep here. */ -static void free_profile(struct aa_profile *profile) +void aa_free_profile(struct aa_profile *profile) { - struct aa_profile *p; - AA_DEBUG("%s(%p)\n", __func__, profile); if (!profile) return; - if (!list_empty(&profile->base.list)) { - AA_ERROR("%s: internal error, " - "profile '%s' still on ns list\n", - __func__, profile->base.name); - BUG(); - } - /* free children profiles */ policy_destroy(&profile->base); - aa_put_profile(profile->parent); + aa_put_profile(rcu_access_pointer(profile->parent)); aa_put_namespace(profile->ns); kzfree(profile->rename); aa_free_file_rules(&profile->file); aa_free_cap_rules(&profile->caps); + aa_free_net_rules(&profile->net); aa_free_rlimit_rules(&profile->rlimits); + kzfree(profile->dirname); aa_put_dfa(profile->xmatch); aa_put_dfa(profile->policy.dfa); + aa_label_destroy(&profile->label); - /* put the profile reference for replacedby, but not via - * put_profile(kref_put). - * replacedby can form a long chain that can result in cascading - * frees that blows the stack because kref_put makes a nested fn - * call (it looks like recursion, with free_profile calling - * free_profile) for each profile in the chain lp#1056078. - */ - for (p = profile->replacedby; p; ) { - if (atomic_dec_and_test(&p->base.count.refcount)) { - /* no more refs on p, grab its replacedby */ - struct aa_profile *next = p->replacedby; - /* break the chain */ - p->replacedby = NULL; - /* now free p, chain is broken */ - free_profile(p); - - /* follow up with next profile in the chain */ - p = next; - } else - break; - } - + kzfree(profile->hash); kzfree(profile); } /** - * aa_free_profile_kref - free aa_profile by kref (called by aa_put_profile) - * @kr: kref callback for freeing of a profile (NOT NULL) - */ -void aa_free_profile_kref(struct kref *kref) -{ - struct aa_profile *p = container_of(kref, struct aa_profile, - base.count); - - free_profile(p); -} - -/** * aa_alloc_profile - allocate, initialize and return a new profile * @hname: name of the profile (NOT NULL) * @@ -726,13 +653,21 @@ if (!profile) return NULL; - if (!policy_init(&profile->base, NULL, hname)) { - kzfree(profile); - return NULL; - } + if (!policy_init(&profile->base, NULL, hname)) + goto fail; + if (!aa_label_init(&profile->label, 1)) + goto fail; + profile->label.hname = profile->base.hname; + profile->label.flags |= FLAG_PROFILE; + profile->label.ent[0] = profile; /* refcount released by caller */ return profile; + +fail: + kzfree(profile); + + return NULL; } /** @@ -766,26 +701,57 @@ if (!profile) goto fail; + profile->label.replacedby = aa_alloc_replacedby(NULL); + if (!profile->label.replacedby) + goto fail; + profile->mode = APPARMOR_COMPLAIN; - profile->flags = PFLAG_NULL; + profile->label.flags |= FLAG_NULL; if (hat) - profile->flags |= PFLAG_HAT; + profile->label.flags |= FLAG_HAT; /* released on free_profile */ - profile->parent = aa_get_profile(parent); + rcu_assign_pointer(profile->parent, aa_get_profile(parent)); profile->ns = aa_get_namespace(parent->ns); - write_lock(&profile->ns->lock); - __list_add_profile(&parent->base.profiles, profile); - write_unlock(&profile->ns->lock); + mutex_lock(&profile->ns->lock); + __add_profile(&parent->base.profiles, profile); + mutex_unlock(&profile->ns->lock); /* refcount released by caller */ return profile; fail: + aa_free_profile(profile); return NULL; } +/** + * aa_setup_default_label - create the initial default label + */ +struct aa_label *aa_setup_default_label(void) +{ + struct aa_profile *profile = aa_alloc_profile("default"); + if (!profile) + return NULL; + + /* the default profile pretends to be unconfined until it is replaced */ + profile->label.flags |= FLAG_IX_ON_NAME_ERROR | FLAG_UNCONFINED; + profile->mode = APPARMOR_UNCONFINED; + + profile->ns = aa_get_namespace(root_ns); + + /* replacedby being set needed by fs interface */ + profile->label.replacedby = aa_alloc_replacedby(&profile->label); + if (!profile->label.replacedby) { + aa_free_profile(profile); + return NULL; + } + __add_profile(&root_ns->base.profiles, profile); + + return &profile->label; +} + /* TODO: profile accounting - setup in remove */ /** @@ -793,7 +759,7 @@ * @head: list to search (NOT NULL) * @name: name of profile (NOT NULL) * - * Requires: ns lock protecting list be held + * Requires: rcu_read_lock be held * * Returns: unrefcounted profile ptr, or NULL if not found */ @@ -808,7 +774,7 @@ * @name: name of profile (NOT NULL) * @len: length of @name substring to match * - * Requires: ns lock protecting list be held + * Requires: rcu_read_lock be held * * Returns: unrefcounted profile ptr, or NULL if not found */ @@ -829,9 +795,9 @@ { struct aa_profile *profile; - read_lock(&parent->ns->lock); + rcu_read_lock(); profile = aa_get_profile(__find_child(&parent->base.profiles, name)); - read_unlock(&parent->ns->lock); + rcu_read_unlock(); /* refcount released by caller */ return profile; @@ -846,7 +812,7 @@ * that matches hname does not need to exist, in general this * is used to load a new profile. * - * Requires: ns->lock be held + * Requires: rcu_read_lock be held * * Returns: unrefcounted policy or NULL if not found */ @@ -874,61 +840,98 @@ } /** - * __lookup_profile - lookup the profile matching @hname + * __lookupn_profile - lookup the profile matching @hname * @base: base list to start looking up profile name from (NOT NULL) * @hname: hierarchical profile name (NOT NULL) + * @n: length of @hname * - * Requires: ns->lock be held + * Requires: rcu_read_lock be held * * Returns: unrefcounted profile pointer or NULL if not found * * Do a relative name lookup, recursing through profile tree. */ -static struct aa_profile *__lookup_profile(struct aa_policy *base, - const char *hname) +static struct aa_profile *__lookupn_profile(struct aa_policy *base, + const char *hname, size_t n) { struct aa_profile *profile = NULL; - char *split; + const char *split, *name = hname; - for (split = strstr(hname, "//"); split;) { - profile = __strn_find_child(&base->profiles, hname, - split - hname); + for (split = strstr(hname, "//"); split && (split - hname <= n);) { + profile = __strn_find_child(&base->profiles, name, + split - name); if (!profile) return NULL; base = &profile->base; - hname = split + 2; - split = strstr(hname, "//"); + name = split + 2; + split = strstr(name, "//"); } - profile = __find_child(&base->profiles, hname); + if (name - hname <= n) + return __strn_find_child(&base->profiles, name, + n - (name - hname)); + return NULL; +} - return profile; +static struct aa_profile *__lookup_profile(struct aa_policy *base, + const char *hname) +{ + return __lookupn_profile(base, hname, strlen(hname)); } /** * aa_lookup_profile - find a profile by its full or partial name * @ns: the namespace to start from (NOT NULL) * @hname: name to do lookup on. Does not contain namespace prefix (NOT NULL) + * @n: size of @hname * * Returns: refcounted profile or NULL if not found */ -struct aa_profile *aa_lookup_profile(struct aa_namespace *ns, const char *hname) +struct aa_profile *aa_lookupn_profile(struct aa_namespace *ns, + const char *hname, size_t n) { struct aa_profile *profile; - read_lock(&ns->lock); - profile = aa_get_profile(__lookup_profile(&ns->base, hname)); - read_unlock(&ns->lock); + rcu_read_lock(); + do { + profile = __lookupn_profile(&ns->base, hname, n); + } while (profile && !aa_get_profile_not0(profile)); + rcu_read_unlock(); /* the unconfined profile is not in the regular profile list */ - if (!profile && strcmp(hname, "unconfined") == 0) - profile = aa_get_profile(ns->unconfined); + if (!profile && strncmp(hname, "unconfined", n) == 0) + profile = aa_get_newest_profile(ns->unconfined); /* refcount released by caller */ return profile; } +struct aa_profile *aa_lookup_profile(struct aa_namespace *ns, const char *hname) +{ + return aa_lookupn_profile(ns, hname, strlen(hname)); +} + +struct aa_profile *aa_fqlookupn_profile(struct aa_namespace *base, char *fqname, + int n) +{ + struct aa_profile *profile; + struct aa_namespace *ns; + char *name, *ns_name; + + name = aa_split_fqname(fqname, &ns_name); + if (ns_name) { + ns = aa_find_namespace(base, ns_name); + if (!ns) + return NULL; + } else + ns = aa_get_namespace(base); + profile = aa_lookupn_profile(ns, name, n - (name - fqname)); + aa_put_namespace(ns); + + return profile; +} + /** * replacement_allowed - test to see if replacement is allowed * @profile: profile to test if it can be replaced (MAYBE NULL) @@ -941,7 +944,7 @@ const char **info) { if (profile) { - if (profile->flags & PFLAG_IMMUTABLE) { + if (profile->label.flags & FLAG_IMMUTIBLE) { *info = "cannot replace immutible profile"; return -EPERM; } else if (noreplace) { @@ -953,25 +956,6 @@ } /** - * __add_new_profile - simple wrapper around __list_add_profile - * @ns: namespace that profile is being added to (NOT NULL) - * @policy: the policy container to add the profile to (NOT NULL) - * @profile: profile to add (NOT NULL) - * - * add a profile to a list and do other required basic allocations - */ -static void __add_new_profile(struct aa_namespace *ns, struct aa_policy *policy, - struct aa_profile *profile) -{ - if (policy != &ns->base) - /* released on profile replacement or free_profile */ - profile->parent = aa_get_profile((struct aa_profile *) policy); - __list_add_profile(&policy->profiles, profile); - /* released on free_profile */ - profile->ns = aa_get_namespace(ns); -} - -/** * aa_audit_policy - Do auditing of policy changes * @op: policy operation being performed * @gfp: memory allocation flags @@ -987,13 +971,13 @@ struct common_audit_data sa; struct apparmor_audit_data aad = {0,}; sa.type = LSM_AUDIT_DATA_NONE; - sa.aad = &aad; + aad_set(&sa, &aad); aad.op = op; aad.name = name; aad.info = info; aad.error = error; - return aa_audit(AUDIT_APPARMOR_STATUS, __aa_current_profile(), gfp, + return aa_audit(AUDIT_APPARMOR_STATUS, labels_profile(__aa_current_label()), gfp, &sa, NULL); } @@ -1019,6 +1003,149 @@ return 1; } +static struct aa_profile *__list_lookup_parent(struct list_head *lh, + struct aa_profile *profile) +{ + const char *base = hname_tail(profile->base.hname); + long len = base - profile->base.hname; + struct aa_load_ent *ent; + + /* parent won't have trailing // so remove from len */ + if (len <= 2) + return NULL; + len -= 2; + + list_for_each_entry(ent, lh, list) { + if (ent->new == profile) + continue; + if (strncmp(ent->new->base.hname, profile->base.hname, len) == + 0 && ent->new->base.hname[len] == 0) + return ent->new; + } + + return NULL; +} + +/** + * __replace_profile - replace @old with @new on a list + * @old: profile to be replaced (NOT NULL) + * @new: profile to replace @old with (NOT NULL) + * @share_replacedby: transfer @old->replacedby to @new + * + * Will duplicate and refcount elements that @new inherits from @old + * and will inherit @old children. + * + * refcount @new for list, put @old list refcount + * + * Requires: namespace list lock be held, or list not be shared + */ +static void __replace_profile(struct aa_profile *old, struct aa_profile *new, + bool share_replacedby) +{ + struct aa_profile *child, *tmp; + + if (!list_empty(&old->base.profiles)) { + LIST_HEAD(lh); + list_splice_init_rcu(&old->base.profiles, &lh, synchronize_rcu); + + list_for_each_entry_safe(child, tmp, &lh, base.list) { + struct aa_profile *p; + + list_del_init(&child->base.list); + p = __find_child(&new->base.profiles, child->base.name); + if (p) { + /* @p replaces @child */ + __replace_profile(child, p, share_replacedby); + continue; + } + + /* inherit @child and its children */ + /* TODO: update hname of inherited children */ + /* list refcount transferred to @new */ + p = aa_deref_parent(child); + rcu_assign_pointer(child->parent, aa_get_profile(new)); + list_add_rcu(&child->base.list, &new->base.profiles); + aa_put_profile(p); + } + } + + if (!rcu_access_pointer(new->parent)) { + struct aa_profile *parent = aa_deref_parent(old); + rcu_assign_pointer(new->parent, aa_get_profile(parent)); + } + __aa_update_replacedby(&old->label, &new->label); + if (share_replacedby) + new->label.replacedby = aa_get_replacedby(old->label.replacedby); + else if (!rcu_access_pointer(new->label.replacedby->label)) + /* aafs interface uses replacedby */ + rcu_assign_pointer(new->label.replacedby->label, + aa_get_label(&new->label)); + __aa_fs_profile_migrate_dents(old, new); + + if (list_empty(&new->base.list)) { + /* new is not on a list already */ + list_replace_rcu(&old->base.list, &new->base.list); + aa_get_profile(new); + aa_put_profile(old); + } else + __list_remove_profile(old); +} + +/** + * __lookup_replace - lookup replacement information for a profile + * @ns - namespace the lookup occurs in + * @hname - name of profile to lookup + * @noreplace - true if not replacing an existing profile + * @p - Returns: profile to be replaced + * @info - Returns: info string on why lookup failed + * + * Returns: profile to replace (no ref) on success else ptr error + */ +static int __lookup_replace(struct aa_namespace *ns, const char *hname, + bool noreplace, struct aa_profile **p, + const char **info) +{ + *p = aa_get_profile(__lookup_profile(&ns->base, hname)); + if (*p) { + int error = replacement_allowed(*p, noreplace, info); + if (error) { + *info = "profile can not be replaced"; + return error; + } + } + + return 0; +} + +static void share_name(struct aa_profile *old, struct aa_profile *new) +{ + aa_put_str(new->base.hname); + aa_get_str(old->base.hname); + new->base.hname = old->base.hname; + new->base.name = old->base.name; + new->label.hname = old->label.hname; +} + +/* Update to newest version of parent after previous replacements + * Returns: unrefcount newest version of parent + */ +static struct aa_profile *update_to_newest_parent(struct aa_profile *new) +{ + struct aa_profile *parent, *newest; + parent = rcu_dereference_protected(new->parent, + mutex_is_locked(&new->ns->lock)); + newest = aa_get_newest_profile(parent); + + /* parent replaced in this atomic set? */ + if (newest != parent) { + aa_put_profile(parent); + rcu_assign_pointer(new->parent, newest); + } else + aa_put_profile(newest); + + return newest; +} + /** * aa_replace_profiles - replace profile(s) on the profile list * @udata: serialized data stream (NOT NULL) @@ -1033,21 +1160,17 @@ */ ssize_t aa_replace_profiles(void *udata, size_t size, bool noreplace) { - struct aa_policy *policy; - struct aa_profile *old_profile = NULL, *new_profile = NULL; - struct aa_profile *rename_profile = NULL; - struct aa_namespace *ns = NULL; const char *ns_name, *name = NULL, *info = NULL; + struct aa_namespace *ns = NULL; + struct aa_load_ent *ent, *tmp; int op = OP_PROF_REPL; ssize_t error; + LIST_HEAD(lh); /* released below */ - new_profile = aa_unpack(udata, size, &ns_name); - if (IS_ERR(new_profile)) { - error = PTR_ERR(new_profile); - new_profile = NULL; - goto fail; - } + error = aa_unpack(udata, size, &lh, &ns_name); + if (error) + goto out; /* released below */ ns = aa_prepare_namespace(ns_name); @@ -1058,71 +1181,143 @@ goto fail; } - name = new_profile->base.hname; - - write_lock(&ns->lock); - /* no ref on policy only use inside lock */ - policy = __lookup_parent(ns, new_profile->base.hname); - - if (!policy) { - info = "parent does not exist"; - error = -ENOENT; - goto audit; - } + mutex_lock(&ns->lock); + /* setup parent and ns info */ + list_for_each_entry(ent, &lh, list) { + struct aa_policy *policy; + + name = ent->new->base.hname; + error = __lookup_replace(ns, ent->new->base.hname, noreplace, + &ent->old, &info); + if (error) + goto fail_lock; + + if (ent->new->rename) { + error = __lookup_replace(ns, ent->new->rename, + noreplace, &ent->rename, + &info); + if (error) + goto fail_lock; + } - old_profile = __find_child(&policy->profiles, new_profile->base.name); - /* released below */ - aa_get_profile(old_profile); + /* released when @new is freed */ + ent->new->ns = aa_get_namespace(ns); - if (new_profile->rename) { - rename_profile = __lookup_profile(&ns->base, - new_profile->rename); - /* released below */ - aa_get_profile(rename_profile); + if (ent->old || ent->rename) + continue; - if (!rename_profile) { - info = "profile to rename does not exist"; - name = new_profile->rename; - error = -ENOENT; - goto audit; + /* no ref on policy only use inside lock */ + policy = __lookup_parent(ns, ent->new->base.hname); + if (!policy) { + struct aa_profile *p; + p = __list_lookup_parent(&lh, ent->new); + if (!p) { + error = -ENOENT; + info = "parent does not exist"; + name = ent->new->base.hname; + goto fail_lock; + } + rcu_assign_pointer(ent->new->parent, aa_get_profile(p)); + } else if (policy != &ns->base) { + /* released on profile replacement or free_profile */ + struct aa_profile *p = (struct aa_profile *) policy; + rcu_assign_pointer(ent->new->parent, aa_get_profile(p)); } } - error = replacement_allowed(old_profile, noreplace, &info); - if (error) - goto audit; + /* create new fs entries for introspection if needed */ + list_for_each_entry(ent, &lh, list) { + struct aa_replacedby *r; + if (ent->old) { + /* inherit old interface files */ + + /* if (ent->rename) + TODO: support rename */ + /* } else if (ent->rename) { + TODO: support rename */ + } else { + struct dentry *parent; + r = aa_alloc_replacedby(NULL); + if (!r) { + info = "failed to create"; + error = -ENOMEM; + goto fail_lock; + } + ent->new->label.replacedby = r; + + if (rcu_access_pointer(ent->new->parent)) { + struct aa_profile *p; + p = aa_deref_parent(ent->new); + parent = prof_child_dir(p); + } else + parent = ns_subprofs_dir(ent->new->ns); + error = __aa_fs_profile_mkdir(ent->new, parent); + } - error = replacement_allowed(rename_profile, noreplace, &info); - if (error) - goto audit; + if (error) { + info = "failed to create"; + goto fail_lock; + } + } -audit: - if (!old_profile && !rename_profile) - op = OP_PROF_LOAD; - - error = audit_policy(op, GFP_ATOMIC, name, info, error); - - if (!error) { - if (rename_profile) - __replace_profile(rename_profile, new_profile); - if (old_profile) - __replace_profile(old_profile, new_profile); - if (!(old_profile || rename_profile)) - __add_new_profile(ns, policy, new_profile); + /* Done with checks that may fail - do actual replacement */ + list_for_each_entry_safe(ent, tmp, &lh, list) { + list_del_init(&ent->list); + op = (!ent->old && !ent->rename) ? OP_PROF_LOAD : OP_PROF_REPL; + + audit_policy(op, GFP_ATOMIC, ent->new->base.name, NULL, error); + + if (ent->old) { + share_name(ent->old, ent->new); + __replace_profile(ent->old, ent->new, 1); + aa_label_replace(&ns->labels, &ent->old->label, + &ent->new->label); + __aa_labelset_invalidate_all(ns, ent->old); + if (ent->rename) { + /* aafs interface uses replacedby */ + rcu_assign_pointer(ent->new->label.replacedby->label, + aa_get_label(&ent->new->label)); + __replace_profile(ent->rename, ent->new, 0); + } + } else if (ent->rename) { + /* aafs interface uses replacedby */ + rcu_assign_pointer(ent->new->label.replacedby->label, + aa_get_label(&ent->new->label)); + } else { + struct list_head *lh; + if (rcu_access_pointer(ent->new->parent)) { + struct aa_profile *parent; + parent = update_to_newest_parent(ent->new); + lh = &parent->base.profiles; + } else + lh = &ns->base.profiles; + + /* aafs interface uses replacedby */ + rcu_assign_pointer(ent->new->label.replacedby->label, + aa_get_label(&ent->new->label)); + __add_profile(lh, ent->new); + } + aa_load_ent_free(ent); } - write_unlock(&ns->lock); + mutex_unlock(&ns->lock); out: aa_put_namespace(ns); - aa_put_profile(rename_profile); - aa_put_profile(old_profile); - aa_put_profile(new_profile); + if (error) return error; return size; +fail_lock: + mutex_unlock(&ns->lock); fail: error = audit_policy(op, GFP_KERNEL, name, info, error); + + list_for_each_entry_safe(ent, tmp, &lh, list) { + list_del_init(&ent->list); + aa_load_ent_free(ent); + } + goto out; } @@ -1151,7 +1346,7 @@ goto fail; } - root = aa_current_profile()->ns; + root = labels_ns(aa_current_label()); if (fqname[0] == ':') { char *ns_name; @@ -1169,12 +1364,12 @@ if (!name) { /* remove namespace - can only happen if fqname[0] == ':' */ - write_lock(&ns->parent->lock); + mutex_lock(&ns->parent->lock); __remove_namespace(ns); - write_unlock(&ns->parent->lock); + mutex_unlock(&ns->parent->lock); } else { /* remove profile */ - write_lock(&ns->lock); + mutex_lock(&ns->lock); profile = aa_get_profile(__lookup_profile(&ns->base, name)); if (!profile) { error = -ENOENT; @@ -1183,7 +1378,8 @@ } name = profile->base.hname; __remove_profile(profile); - write_unlock(&ns->lock); + __aa_labelset_invalidate_all(ns, profile); + mutex_unlock(&ns->lock); } /* don't fail removal if audit fails */ @@ -1193,7 +1389,7 @@ return size; fail_ns_lock: - write_unlock(&ns->lock); + mutex_unlock(&ns->lock); aa_put_namespace(ns); fail: --- linux-3.11.0.orig/security/apparmor/context.c +++ linux-3.11.0/security/apparmor/context.c @@ -14,9 +14,9 @@ * * * AppArmor sets confinement on every task, via the the aa_task_cxt and - * the aa_task_cxt.profile, both of which are required and are not allowed + * the aa_task_cxt.label, both of which are required and are not allowed * to be NULL. The aa_task_cxt is not reference counted and is unique - * to each cred (which is reference count). The profile pointed to by + * to each cred (which is reference count). The label pointed to by * the task_cxt is reference counted. * * TODO @@ -47,9 +47,9 @@ void aa_free_task_context(struct aa_task_cxt *cxt) { if (cxt) { - aa_put_profile(cxt->profile); - aa_put_profile(cxt->previous); - aa_put_profile(cxt->onexec); + aa_put_label(cxt->label); + aa_put_label(cxt->previous); + aa_put_label(cxt->onexec); kzfree(cxt); } @@ -63,41 +63,41 @@ void aa_dup_task_context(struct aa_task_cxt *new, const struct aa_task_cxt *old) { *new = *old; - aa_get_profile(new->profile); - aa_get_profile(new->previous); - aa_get_profile(new->onexec); + aa_get_label(new->label); + aa_get_label(new->previous); + aa_get_label(new->onexec); } /** - * aa_get_task_profile - Get another task's profile + * aa_get_task_label - Get another task's label * @task: task to query (NOT NULL) * - * Returns: counted reference to @task's profile + * Returns: counted reference to @task's label */ -struct aa_profile *aa_get_task_profile(struct task_struct *task) +struct aa_label *aa_get_task_label(struct task_struct *task) { - struct aa_profile *p; + struct aa_label *p; rcu_read_lock(); - p = aa_get_profile(__aa_task_profile(task)); + p = aa_get_label(__aa_task_label(task)); rcu_read_unlock(); return p; } /** - * aa_replace_current_profile - replace the current tasks profiles - * @profile: new profile (NOT NULL) + * aa_replace_current_label - replace the current tasks label + * @label: new label (NOT NULL) * * Returns: 0 or error on failure */ -int aa_replace_current_profile(struct aa_profile *profile) +int aa_replace_current_label(struct aa_label *label) { struct aa_task_cxt *cxt = current_cxt(); struct cred *new; - BUG_ON(!profile); + BUG_ON(!label); - if (cxt->profile == profile) + if (cxt->label == label) return 0; new = prepare_creds(); @@ -105,19 +105,15 @@ return -ENOMEM; cxt = cred_cxt(new); - if (unconfined(profile) || (cxt->profile->ns != profile->ns)) - /* if switching to unconfined or a different profile namespace + if (unconfined(label) || (labels_ns(cxt->label) != labels_ns(label))) + /* if switching to unconfined or a different label namespace * clear out context state */ aa_clear_task_cxt_trans(cxt); - /* be careful switching cxt->profile, when racing replacement it - * is possible that cxt->profile->replacedby is the reference keeping - * @profile valid, so make sure to get its reference before dropping - * the reference on cxt->profile */ - aa_get_profile(profile); - aa_put_profile(cxt->profile); - cxt->profile = profile; + aa_get_label(label); + aa_put_label(cxt->label); + cxt->label = label; commit_creds(new); return 0; @@ -125,11 +121,11 @@ /** * aa_set_current_onexec - set the tasks change_profile to happen onexec - * @profile: system profile to set at exec (MAYBE NULL to clear value) + * @label: system label to set at exec (MAYBE NULL to clear value) * * Returns: 0 or error on failure */ -int aa_set_current_onexec(struct aa_profile *profile) +int aa_set_current_onexec(struct aa_label *label) { struct aa_task_cxt *cxt; struct cred *new = prepare_creds(); @@ -137,9 +133,9 @@ return -ENOMEM; cxt = cred_cxt(new); - aa_get_profile(profile); - aa_put_profile(cxt->onexec); - cxt->onexec = profile; + aa_get_label(label); + aa_put_label(cxt->onexec); + cxt->onexec = label; commit_creds(new); return 0; @@ -147,7 +143,7 @@ /** * aa_set_current_hat - set the current tasks hat - * @profile: profile to set as the current hat (NOT NULL) + * @label: label to set as the current hat (NOT NULL) * @token: token value that must be specified to change from the hat * * Do switch of tasks hat. If the task is currently in a hat @@ -155,29 +151,29 @@ * * Returns: 0 or error on failure */ -int aa_set_current_hat(struct aa_profile *profile, u64 token) +int aa_set_current_hat(struct aa_label *label, u64 token) { struct aa_task_cxt *cxt; struct cred *new = prepare_creds(); if (!new) return -ENOMEM; - BUG_ON(!profile); + BUG_ON(!label); cxt = cred_cxt(new); if (!cxt->previous) { /* transfer refcount */ - cxt->previous = cxt->profile; + cxt->previous = cxt->label; cxt->token = token; } else if (cxt->token == token) { - aa_put_profile(cxt->profile); + aa_put_label(cxt->label); } else { /* previous_profile && cxt->token != token */ abort_creds(new); return -EACCES; } - cxt->profile = aa_get_profile(aa_newest_version(profile)); + cxt->label = aa_get_newest_label(label); /* clear exec on switching context */ - aa_put_profile(cxt->onexec); + aa_put_label(cxt->onexec); cxt->onexec = NULL; commit_creds(new); @@ -185,15 +181,15 @@ } /** - * aa_restore_previous_profile - exit from hat context restoring the profile + * aa_restore_previous_label - exit from hat context restoring previous label * @token: the token that must be matched to exit hat context * - * Attempt to return out of a hat to the previous profile. The token + * Attempt to return out of a hat to the previous label. The token * must match the stored token value. * * Returns: 0 or error of failure */ -int aa_restore_previous_profile(u64 token) +int aa_restore_previous_label(u64 token) { struct aa_task_cxt *cxt; struct cred *new = prepare_creds(); @@ -205,21 +201,15 @@ abort_creds(new); return -EACCES; } - /* ignore restores when there is no saved profile */ + /* ignore restores when there is no saved label */ if (!cxt->previous) { abort_creds(new); return 0; } - aa_put_profile(cxt->profile); - cxt->profile = aa_newest_version(cxt->previous); - BUG_ON(!cxt->profile); - if (unlikely(cxt->profile != cxt->previous)) { - aa_get_profile(cxt->profile); - aa_put_profile(cxt->previous); - } - /* ref has been transfered so avoid putting ref in clear_task_cxt */ - cxt->previous = NULL; + aa_put_label(cxt->label); + cxt->label = aa_get_newest_label(cxt->previous); + BUG_ON(!cxt->label); /* clear exec && prev information when restoring to previous context */ aa_clear_task_cxt_trans(cxt); --- linux-3.11.0.orig/security/apparmor/label.c +++ linux-3.11.0/security/apparmor/label.c @@ -0,0 +1,1161 @@ +/* + * AppArmor security module + * + * This file contains AppArmor label definitions + * + * Copyright 2013 Canonical Ltd. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation, version 2 of the + * License. + */ + +#include +#include + +#include "include/apparmor.h" +#include "include/label.h" +#include "include/policy.h" +#include "include/sid.h" + + +/* + * the aa_label represents the set of profiles confining an object + * + * Labels maintain a reference count to the set of pointers they reference + * Labels are ref counted by + * tasks and object via the security field/security context off the field + * code - will take a ref count on a label if it needs the label + * beyond what is possible with an rcu_read_lock. + * profiles - each profile is a label + * sids - a pinned sid will keep a refcount of the label it is + * referencing + * objects - inode, files, sockets, ... + * + * Labels are not ref counted by the label set, so they maybe removed and + * freed when no longer in use. + * + */ + +static void free_replacedby(struct aa_replacedby *r) +{ + if (r) { + aa_put_label(rcu_dereference(r->label)); + kzfree(r); + } +} + +void aa_free_replacedby_kref(struct kref *kref) +{ + struct aa_replacedby *r = container_of(kref, struct aa_replacedby, + count); + free_replacedby(r); +} + +struct aa_replacedby *aa_alloc_replacedby(struct aa_label *l) +{ + struct aa_replacedby *r; + + r = kzalloc(sizeof(struct aa_replacedby), GFP_KERNEL); + if (r) { + kref_init(&r->count); + rcu_assign_pointer(r->label, aa_get_label(l)); + } + return r; +} + +/* requires profile list write lock held */ +void __aa_update_replacedby(struct aa_label *orig, struct aa_label *new) +{ + struct aa_label *tmp; + + AA_BUG(!orig); + AA_BUG(!new); + AA_BUG(!mutex_is_locked(&labels_ns(orig)->lock)); + + tmp = rcu_dereference_protected(orig->replacedby->label, + &labels_ns(orig)->lock); + rcu_assign_pointer(orig->replacedby->label, aa_get_label(new)); + orig->flags |= FLAG_INVALID; + aa_put_label(tmp); +} + +/* helper fn for label_for_each_confined */ +int aa_label_next_confined(struct aa_label *l, int i) +{ + for (; i < l->size; i++) { + if (!profile_unconfined(l->ent[i])) + return i; + } + + return i; +} + +static bool profile_in_label(struct aa_profile *profile, struct aa_label *l) +{ + struct aa_profile *p; + int i; + + AA_BUG(!profile); + AA_BUG(!l); + + label_for_each(i, l, p) { + if (p == profile) + return true; + } + + return false; +} + +void aa_label_destroy(struct aa_label *label) +{ + AA_BUG(!label); + + if (label_invalid(label)) + labelsetstats_dec(labels_set(label), invalid); + + if (!label_isprofile(label)) { + struct aa_profile *profile; + int i; + + aa_put_str(label->hname); + + label_for_each(i, label, profile) + aa_put_profile(profile); + } + + aa_free_sid(label->sid); + aa_put_replacedby(label->replacedby); +} + +void aa_label_free(struct aa_label *label) +{ + if (!label) + return; + + aa_label_destroy(label); + labelstats_inc(freed); + kzfree(label); +} + +static void label_free_rcu(struct rcu_head *head) +{ + struct aa_label *l = container_of(head, struct aa_label, rcu); + + if (l->flags & FLAG_NS_COUNT) + aa_free_namespace(labels_ns(l)); + else if (label_isprofile(l)) + aa_free_profile(labels_profile(l)); + else + aa_label_free(l); +} + +bool aa_label_remove(struct aa_labelset *ls, struct aa_label *label); +void aa_label_kref(struct kref *kref) +{ + struct aa_label *l = container_of(kref, struct aa_label, count); + struct aa_namespace *ns = labels_ns(l); + + if (!ns) { + /* never live, no rcu callback needed, just using the fn */ + label_free_rcu(&l->rcu); + return; + } + + (void) aa_label_remove(&ns->labels, l); + + /* TODO: if compound label and not invalid add to reclaim cache */ + call_rcu(&l->rcu, label_free_rcu); +} + +bool aa_label_init(struct aa_label *label, int size) +{ + AA_BUG(!label); + AA_BUG(size < 1); + + label->sid = aa_alloc_sid(); + if (label->sid == AA_SID_INVALID) + return false; + + label->size = size; + kref_init(&label->count); + RB_CLEAR_NODE(&label->node); + + return true; +} + +/** + * aa_label_alloc - allocate a label with a profile vector of @size length + * @size: size of profile vector in the label + * @gfp: memory allocation type + * + * Returns: new label + * else NULL if failed + */ +struct aa_label *aa_label_alloc(int size, gfp_t gfp) +{ + struct aa_label *label; + + AA_BUG(size < 1); + + label = kzalloc(sizeof(*label) + sizeof(struct aa_label *) * (size - 1), + gfp); + AA_DEBUG("%s (%p)\n", __func__, label); + if (!label) + goto fail; + + if (!aa_label_init(label, size)) + goto fail; + + labelstats_inc(allocated); + + return label; + +fail: + kfree(label); + labelstats_inc(failed); + + return NULL; +} + +static bool __aa_label_remove(struct aa_labelset *ls, struct aa_label *label) +{ + AA_BUG(!ls); + AA_BUG(!label); + AA_BUG(write_can_lock(&ls->lock)); + AA_BUG(labels_set(label) != ls); + + if (label_invalid(label)) + labelstats_dec(invalid_intree); + else + __label_invalidate(label); + + if (label->flags & FLAG_IN_TREE) { + labelsetstats_dec(ls, intree); + rb_erase(&label->node, &ls->root); + label->flags &= ~FLAG_IN_TREE; + return true; + } + + return false; +} + +/** + * aa_label_remove - remove a label from the labelset + * @ls: set to remove the label from + * @l: label to remove + * + * Returns: true if @l was removed from the tree + * else @l was not in tree so it could not be removed + */ +bool aa_label_remove(struct aa_labelset *ls, struct aa_label *l) +{ + unsigned long flags; + bool res; + + write_lock_irqsave(&ls->lock, flags); + res = __aa_label_remove(ls, l); + write_unlock_irqrestore(&ls->lock, flags); + + return res; +} + +static bool __aa_label_replace(struct aa_labelset *ls, struct aa_label *old, + struct aa_label *new) +{ + AA_BUG(!ls); + AA_BUG(!old); + AA_BUG(!new); + AA_BUG(write_can_lock(&ls->lock)); + AA_BUG(labels_set(old) != ls); + AA_BUG(new->flags & FLAG_IN_TREE); + + if (label_invalid(old)) + labelstats_dec(invalid_intree); + else + __label_invalidate(old); + + if (old->flags & FLAG_IN_TREE) { + rb_replace_node(&old->node, &new->node, &ls->root); + old->flags &= ~FLAG_IN_TREE; + new->flags |= FLAG_IN_TREE; + return true; + } + + return false; +} + +static struct aa_label *__aa_label_insert(struct aa_labelset *ls, + struct aa_label *l); +/** + * aa_label_replace - replace a label @old with a new version @new + * @ls: labelset being manipulated + * @old: label to replace + * @new: label replacing @old + * + * Returns: true if @old was in tree and replaced + * else @old was not in tree, and @new was not inserted + */ +bool aa_label_replace(struct aa_labelset *ls, struct aa_label *old, + struct aa_label *new) +{ + unsigned long flags; + bool res; + + write_lock_irqsave(&ls->lock, flags); + if (!(old->flags & FLAG_IN_TREE)) { + struct aa_label *l = __aa_label_insert(ls, new); + res = (l == new); + aa_put_label(l); + } else + res = __aa_label_replace(ls, old, new); + write_unlock_irqrestore(&ls->lock, flags); + + return res; +} + +static int ns_cmp(struct aa_namespace *a, struct aa_namespace *b) +{ + int res; + + AA_BUG(!a); + AA_BUG(!b); + AA_BUG(!a->base.name); + AA_BUG(!b->base.name); + + if (a == b) + return 0; + + res = a->level - b->level; + if (res) + return res; + + return strcmp(a->base.name, b->base.name); +} + +/** + * profile_cmp - profile comparision for set ordering + * @a: profile to compare (NOT NULL) + * @b: profile to compare (NOT NULL) + * + * Returns: <0 if a < b + * ==0 if a == b + * >0 if a > b + */ +static int profile_cmp(struct aa_profile *a, struct aa_profile *b) +{ + int res; + + AA_BUG(!a); + AA_BUG(!b); + AA_BUG(!a->ns); + AA_BUG(!b->ns); + AA_BUG(!a->base.hname); + AA_BUG(!b->base.hname); + + if (a == b || a->base.hname == b->base.hname) + return 0; + res = ns_cmp(a->ns, b->ns); + if (res) + return res; + + return strcmp(a->base.hname, b->base.hname); +} + +/** + * label_cmp - label comparision for set ordering + * @a: label to compare (NOT NULL) + * @b: label to compare (NOT NULL) + * + * Returns: <0 if a < b + * ==0 if a == b + * >0 if a > b + */ +static int label_cmp(struct aa_label *a, struct aa_label *b) +{ + int i; + + AA_BUG(!a); + AA_BUG(!b); + + if (a == b) + return 0; + + for (i = 0; i < a->size && i < b->size; i++) { + int res = profile_cmp(a->ent[i], b->ent[i]); + if (res != 0) + return res; + } + + return a->size - b->size; +} + +/** + * __aa_label_find - find label @l in label set + * @ls: set of labels to search (NOT NULL) + * @l: label to find (NOT NULL) + * + * Requires: @ls lock held + * caller to hold a valid ref on l + * + * Returns: unref counted @l if @l is in tree + * unref counted label that is equiv to @l in tree + * else NULL if @l or equiv is not in tree + */ +static struct aa_label *__aa_label_find(struct aa_labelset *ls, + struct aa_label *l) +{ + struct rb_node *node; + + AA_BUG(!ls); + AA_BUG(!l); + + node = ls->root.rb_node; + while (node) { + struct aa_label *this = rb_entry(node, struct aa_label, node); + int result = label_cmp(l, this); + + if (result < 0) + node = node->rb_left; + else if (result > 0) + node = node->rb_right; + else + return this; + } + + return NULL; +} + +/** + * aa_label_find - find label @l in label set + * @ls: set of labels to search (NOT NULL) + * @l: label to find (NOT NULL) + * + * Requires: caller to hold a valid ref on l + * + * Returns: refcounted @l if @l is in tree + * refcounted label that is equiv to @l in tree + * else NULL if @l or equiv is not in tree + */ +struct aa_label *aa_label_find(struct aa_labelset *ls, struct aa_label *l) +{ + struct aa_label *label; + unsigned long flags; + + AA_BUG(!ls); + AA_BUG(!l); + + read_lock_irqsave(&ls->lock, flags); + label = aa_get_label(__aa_label_find(ls, l)); + labelstats_inc(sread); + read_unlock_irqrestore(&ls->lock, flags); + + return label; +} + +/** + * __aa_label_insert - attempt to insert @l into a label set + * @ls: set of labels to insert @l into (NOT NULL) + * @l: new label to insert (NOT NULL) + * + * Requires: @ls->lock + * caller to hold a valid ref on l + * + * Returns: ref counted @l if successful in inserting @l + * else ref counted equivalent label that is already in the set. + */ +static struct aa_label *__aa_label_insert(struct aa_labelset *ls, + struct aa_label *l) +{ + struct rb_node **new, *parent = NULL; + + AA_BUG(!ls); + AA_BUG(!l); + AA_BUG(write_can_lock(&ls->lock)); + AA_BUG(l->flags & FLAG_IN_TREE); + + /* Figure out where to put new node */ + new = &ls->root.rb_node; + while (*new) { + struct aa_label *this = rb_entry(*new, struct aa_label, node); + int result = label_cmp(l, this); + + parent = *new; + if (result == 0) { + labelsetstats_inc(ls, existing); + return aa_get_label(this); + } else if (result < 0) + new = &((*new)->rb_left); + else /* (result > 0) */ + new = &((*new)->rb_right); + } + + /* Add new node and rebalance tree. */ + rb_link_node(&l->node, parent, new); + rb_insert_color(&l->node, &ls->root); + l->flags |= FLAG_IN_TREE; + labelsetstats_inc(ls, insert); + labelsetstats_inc(ls, intree); + + return aa_get_label(l); +} + +/** + * aa_label_insert - insert label @l into @ls or return existing label + * @ls - labelset to insert @l into + * @l - label to insert + * + * Requires: caller to hold a valid ref on l + * + * Returns: ref counted @l if successful in inserting @l + * else ref counted equivalent label that is already in the set + */ +struct aa_label *aa_label_insert(struct aa_labelset *ls, struct aa_label *l) +{ + struct aa_label *label; + unsigned long flags; + + AA_BUG(!ls); + AA_BUG(!l); + + /* check if label exists before taking lock */ + if (!label_invalid(l)) { + read_lock_irqsave(&ls->lock, flags); + label = aa_get_label(__aa_label_find(ls, l)); + read_unlock_irqrestore(&ls->lock, flags); + labelstats_inc(fread); + if (label) + return label; + } + + write_lock_irqsave(&ls->lock, flags); + label = __aa_label_insert(ls, l); + write_unlock_irqrestore(&ls->lock, flags); + + return label; +} + +/** + * aa_update_label_name - update a label to have a stored name + * @ns: ns being viewed from (NOT NULL) + * @label: label to update (NOT NULL) + * @gfp: type of memory allocation + * + * Requires: labels_set(label) not locked in caller + * + * note: only updates the label name if it does not have a name already + * and if it is in the labelset + */ +bool aa_update_label_name(struct aa_namespace *ns, struct aa_label *label, + gfp_t gfp) +{ + struct aa_labelset *ls; + unsigned long flags; + char __counted *name; + bool res = false; + + AA_BUG(!ns); + AA_BUG(!label); + + if (label->hname || labels_ns(label) != ns) + return res; + + if (aa_label_acntsprint(&name, ns, label, false, gfp) == -1) + return res; + + ls = labels_set(label); + write_lock_irqsave(&ls->lock, flags); + if (!label->hname && label->flags & FLAG_IN_TREE) { + label->hname = name; + res = true; + } else + aa_put_str(name); + write_unlock_irqrestore(&ls->lock, flags); + + return res; +} + +/* cached label name is present and visible + * @label->hname only exists if label is namespace hierachical */ +static inline bool label_name_visible(struct aa_namespace *ns, + struct aa_label *label) +{ + if (label->hname && labels_ns(label) == ns) + return true; + + return false; +} + +/* helper macro for snprint routines */ +#define update_for_len(total, len, size, str) \ +do { \ + AA_BUG(len < 0); \ + total += len; \ + len = min(len, size); \ + size -= len; \ + str += len; \ +} while (0) + +/** + * aa_modename_snprint - print the mode name of a profile or label to a buffer + * @str: buffer to write to (MAY BE NULL if @size == 0) + * @size: size of buffer + * @ns: namespace profile is being viewed from (NOT NULL) + * @label: label to print the mode of (NOT NULL) + * + * Returns: size of name written or would be written if larger than + * available buffer + * + * Note: will print every mode name visible (mode1)(mode2)(mode3) + * this is likely not what is desired for most interfaces + * use aa_mode_snprint to get the standard mode format + */ +static int aa_modename_snprint(char *str, size_t size, struct aa_namespace *ns, + struct aa_label *label) +{ + struct aa_profile *profile; + int i, total = 0; + size_t len; + + label_for_each(i, label, profile) { + const char *modestr; + if (!aa_ns_visible(ns, profile->ns)) + continue; + /* no mode for 'unconfined' */ + if (profile_unconfined(profile) && + profile == profile->ns->unconfined) + break; + modestr = aa_profile_mode_names[profile->mode]; + len = snprintf(str, size, "(%s)", modestr); + update_for_len(total, len, size, str); + } + + return total; +} + +/** + * aa_modechr_snprint - print the mode chr of a profile or labels to a buffer + * @str: buffer to write to (MAY BE NULL if @size == 0) + * @size: size of buffer + * @ns: namespace profile is being viewed from (NOT NULL) + * @label: label to print the mode chr of (NOT NULL) + * + * Returns: size of mode string written or would be written if larger than + * available buffer + * + * Note: will print the chr of every visible profile (123) + * this is likely not what is desired for most interfaces + * use aa_mode_snprint to get the standard mode format + */ +static int aa_modechr_snprint(char *str, size_t size, struct aa_namespace *ns, + struct aa_label *label) +{ + struct aa_profile *profile; + int i, total = 0; + size_t len; + + len = snprintf(str, size, "("); + update_for_len(total, len, size, str); + label_for_each(i, label, profile) { + const char *modestr; + if (!aa_ns_visible(ns, profile->ns)) + continue; + modestr = aa_profile_mode_names[profile->mode]; + /* just the first char of the modestr */ + len = snprintf(str, size, "%c", *modestr); + update_for_len(total, len, size, str); + } + len = snprintf(str, size, ")"); + update_for_len(total, len, size, str); + + return total; +} + +/** + * aa_mode_snprint - print the mode of a profile or label to a buffer + * @str: buffer to write to (MAY BE NULL if @size == 0) + * @size: size of buffer + * @ns: namespace profile is being viewed from (NOT NULL) + * @label: label to print the mode of (NOT NULL) + * @count: number of label entries to be printed (<= 0 if unknown) + * + * Returns: size of name written or would be written if larger than + * available buffer + * + * Note: dynamically switches between mode name, and mode char format as + * appropriate + * will not print anything if the label is not visible + */ +static int aa_mode_snprint(char *str, size_t size, struct aa_namespace *ns, + struct aa_label *label, int count) +{ + struct aa_profile *profile; + int i; + + if (count <= 0) { + count = 0; + label_for_each(i, label, profile) { + if (aa_ns_visible(ns, profile->ns)) + count++; + } + } + + if (count == 0) + return 0; + + if (count == 1) + return aa_modename_snprint(str, size, ns, label); + + return aa_modechr_snprint(str, size, ns, label); +} + +/** + * aa_snprint_profile - print a profile name to a buffer + * @str: buffer to write to. (MAY BE NULL if @size == 0) + * @size: size of buffer + * @ns: namespace profile is being viewed from (NOT NULL) + * @profile: profile to view (NOT NULL) + * @mode: whether to include the mode string + * + * Returns: size of name written or would be written if larger than + * available buffer + * + * Note: will not print anything if the profile is not visible + */ +int aa_profile_snprint(char *str, size_t size, struct aa_namespace *ns, + struct aa_profile *profile, bool mode) +{ + const char *ns_name = aa_ns_name(ns, profile->ns); + + AA_BUG(!str && size != 0); + AA_BUG(!ns); + AA_BUG(!profile); + + if (!ns_name) + return 0; + + if (mode && profile != profile->ns->unconfined) { + const char *modestr = aa_profile_mode_names[profile->mode]; + if (strlen(ns_name)) + return snprintf(str, size, ":%s://%s (%s)", ns_name, + profile->base.hname, modestr); + return snprintf(str, size, "%s (%s)", profile->base.hname, + modestr); + } + + if (strlen(ns_name)) + return snprintf(str, size, ":%s://%s", ns_name, + profile->base.hname); + return snprintf(str, size, "%s", profile->base.hname); +} + +/** + * aa_label_snprint - print a label name to a string buffer + * @str: buffer to write to. (MAY BE NULL if @size == 0) + * @size: size of buffer + * @ns: namespace profile is being viewed from (NOT NULL) + * @label: label to view (NOT NULL) + * @mode: whether to include the mode string + * + * Returns: size of name written or would be written if larger than + * available buffer + * + * Note: labels do not have to be strictly hierarchical to the ns as + * objects may be shared across different namespaces and thus + * pickup labeling from each ns. If a particular part of the + * label is not visible it will just be excluded. And if none + * of the label is visible "---" will be used. + */ +int aa_label_snprint(char *str, size_t size, struct aa_namespace *ns, + struct aa_label *label, bool mode) +{ + struct aa_profile *profile; + int i, count = 0, total = 0; + size_t len; + + AA_BUG(!str && size != 0); + AA_BUG(!ns); + AA_BUG(!label); + + label_for_each(i, label, profile) { + if (aa_ns_visible(ns, profile->ns)) { + if (count > 0) { + len = snprintf(str, size, "//&"); + update_for_len(total, len, size, str); + } + len = aa_profile_snprint(str, size, ns, profile, false); + update_for_len(total, len, size, str); + count++; + } + } + + if (count == 0) + return snprintf(str, size, aa_hidden_ns_name); + + /* count == 1 && ... is for backwards compat where the mode + * is not displayed for 'unconfined' in the current ns + */ + if (mode && + !(count == 1 && labels_ns(label) == ns && + labels_profile(label) == ns->unconfined)) { + len = snprintf(str, size, " "); + update_for_len(total, len, size, str); + len = aa_mode_snprint(str, size, ns, label, count); + update_for_len(total, len, size, str); + } + + return total; +} +#undef update_for_len + +/** + * aa_label_asprint - allocate a string buffer and print label into it + * @strp: Returns - the allocated buffer with the label name. (NOT NULL) + * @ns: namespace profile is being viewed from (NOT NULL) + * @label: label to view (NOT NULL) + * @mode: whether to include the mode string + * @gfp: kernel memory allocation type + * + * Returns: size of name written or would be written if larger than + * available buffer + */ +int aa_label_asprint(char **strp, struct aa_namespace *ns, + struct aa_label *label, bool mode, gfp_t gfp) +{ + int size; + + AA_BUG(!strp); + AA_BUG(!ns); + AA_BUG(!label); + + size = aa_label_snprint(NULL, 0, ns, label, mode); + if (size < 0) + return size; + + *strp = kmalloc(size + 1, gfp); + if (!*strp) + return -ENOMEM; + return aa_label_snprint(*strp, size + 1, ns, label, mode); +} + +/** + * aa_label_acntsprint - allocate a __counted string buffer and print label + * @strp: buffer to write to. (MAY BE NULL if @size == 0) + * @ns: namespace profile is being viewed from (NOT NULL) + * @label: label to view (NOT NULL) + * @mode: whether to include the mode string + * @gfp: kernel memory allocation type + * + * Returns: size of name written or would be written if larger than + * available buffer + */ +int aa_label_acntsprint(char __counted **strp, struct aa_namespace *ns, + struct aa_label *label, bool mode, gfp_t gfp) +{ + int size; + + AA_BUG(!strp); + AA_BUG(!ns); + AA_BUG(!label); + + size = aa_label_snprint(NULL, 0, ns, label, mode); + if (size < 0) + return size; + + *strp = aa_str_alloc(size + 1, gfp); + if (!*strp) + return -ENOMEM; + return aa_label_snprint(*strp, size + 1, ns, label, mode); +} + + +void aa_label_audit(struct audit_buffer *ab, struct aa_namespace *ns, + struct aa_label *label, bool mode, gfp_t gfp) +{ + const char *str; + char *name = NULL; + int len; + + AA_BUG(!ab); + AA_BUG(!ns); + AA_BUG(!label); + + if (label_name_visible(ns, label)) { + str = (char *) label->hname; + len = strlen(str); + } else { + labelstats_inc(audit_name_alloc); + len = aa_label_asprint(&name, ns, label, mode, gfp); + if (len == -1) { + labelstats_inc(audit_name_fail); + AA_DEBUG("label print error"); + return; + } + str = name; + } + + if (audit_string_contains_control(str, len)) + audit_log_n_hex(ab, str, len); + else + audit_log_n_string(ab, str, len); + + kfree(name); +} + +void aa_label_seq_print(struct seq_file *f, struct aa_namespace *ns, + struct aa_label *label, bool mode, gfp_t gfp) +{ + AA_BUG(!f); + AA_BUG(!ns); + AA_BUG(!label); + + if (!label_name_visible(ns, label)) { + char *str; + int len; + + labelstats_inc(seq_print_name_alloc); + len = aa_label_asprint(&str, ns, label, mode, gfp); + if (len == -1) { + labelstats_inc(seq_print_name_fail); + AA_DEBUG("label print error"); + return; + } + seq_printf(f, "%s", str); + kfree(str); + } else + seq_printf(f, "%s", label->hname); +} + +void aa_label_printk(struct aa_namespace *ns, struct aa_label *label, bool mode, + gfp_t gfp) +{ + char *str; + int len; + + AA_BUG(!ns); + AA_BUG(!label); + + if (!label_name_visible(ns, label)) { + labelstats_inc(printk_name_alloc); + len = aa_label_asprint(&str, ns, label, mode, gfp); + if (len == -1) { + labelstats_inc(printk_name_fail); + AA_DEBUG("label print error"); + return; + } + printk("%s", str); + kfree(str); + } else + printk("%s", label->hname); +} + + +static int label_count_str_entries(const char *str) +{ + const char *split; + int count = 1; + + AA_BUG(!str); + + for (split = strstr(str, "//&"); split; split = strstr(str, "//&")) { + count++; + str = split + 3; + } + + return count; +} + +/** + * aa_sort_and_merge_profiles - canonical sort and merge a list of profiles + * @n: number of refcounted profiles in the list (@n > 0) + * @ps: list of profiles to sort and merge + * + * Returns: the number of duplicates eliminated == references put + */ +static int aa_sort_and_merge_profiles(int n, struct aa_profile **ps) +{ + int i, dups = 0; + + AA_BUG(n < 1); + AA_BUG(!ps); + + /* label lists are usually small so just use insertion sort */ + for (i = 1; i < n; i++) { + struct aa_profile *tmp = ps[i]; + int pos, j; + + for (pos = i - 1 - dups; pos >= 0; pos--) { + int res = profile_cmp(ps[pos], tmp); + if (res == 0) { + aa_put_profile(tmp); + dups++; + continue; + } else if (res < 0) + break; + } + pos++; + + for (j = i - dups; j > pos; j--) + ps[j] = ps[j - 1]; + + ps[pos] = tmp; + } + + return dups; +} + +/** + * aa_label_parse - parse, validate and convert a text string to a label + * @base: base namespace to use for lookups (NOT NULL) + * @str: null terminated text string (NOT NULL) + * @gfp: allocation type + * + * Returns: the matching refcounted label if present + * else ERRPTR + */ +struct aa_label *aa_label_parse(struct aa_namespace *base, char *str, gfp_t gfp) +{ + struct aa_profile *profile; + struct aa_label *l, *label; + int i, len, unconf; + char *split; + + AA_BUG(!base); + AA_BUG(!str); + + len = label_count_str_entries(str); + label = aa_label_alloc(len, gfp); + if (!label) + return ERR_PTR(-ENOMEM); + + for (split = strstr(str, "//&"), i = 0; split && i < len; i++) { + *split = 0; + label->ent[i] = aa_fqlookupn_profile(base, str, split - str); + if (!label->ent[i]) + goto fail; + str = split + 3; + split = strstr(str, "//&"); + } + label->ent[i] = aa_fqlookupn_profile(base, str, strlen(str)); + if (!label->ent[i]) + goto fail; + + i = aa_sort_and_merge_profiles(len, &label->ent[0]); + label->size -= i; + + unconf = 1; + label_for_each(i, label, profile) { + if (!profile_unconfined(profile)) { + unconf = 0; + break; + } + } + + if (unconf) + label->flags = FLAG_UNCONFINED; + + l = aa_label_find(labels_set(label), label); + if (!l) + goto fail; + aa_put_label(label); + return l; + +fail: + aa_label_free(label); + return ERR_PTR(-ENOENT); +} + + +/** + * aa_labelset_destroy - remove all labels from the label set + * @ls: label set to cleanup (NOT NULL) + * + * Labels that are removed from the set may still exist beyond the set + * being destroyed depending on their reference counting + */ +void aa_labelset_destroy(struct aa_labelset *ls) +{ + struct rb_node *node; + unsigned long flags; + + AA_BUG(!ls); + + write_lock_irqsave(&ls->lock, flags); + for (node = rb_first(&ls->root); node; node = rb_first(&ls->root)) { + struct aa_label *this = rb_entry(node, struct aa_label, node); + __aa_label_remove(ls, this); + } + write_unlock_irqrestore(&ls->lock, flags); +} + +/* + * @ls: labelset to init (NOT NULL) + */ +void aa_labelset_init(struct aa_labelset *ls) +{ + AA_BUG(!ls); + + rwlock_init(&ls->lock); + ls->root = RB_ROOT; + labelstats_init(&ls); +} + +/** + * label_invalidate_labelset - invalidate labels caused to be invalid by @l + * @ls: labelset to invalidate (NOT NULL) + * @p: profile that is invalid and causing the invalidation (NOT NULL) + * + * Takes invalidated label @l and invalidates all labels in the labelset + * of @l that contain the invalid profiles in @l that caused @l to become + * invalid + */ +static void labelset_invalidate(struct aa_labelset *ls, struct aa_profile *p) +{ + unsigned long flags; + struct rb_node *node; + + AA_BUG(!ls); + AA_BUG(!p); + + write_lock_irqsave(&ls->lock, flags); + + __labelset_for_each(ls, node) { + struct aa_label *label = rb_entry(node, struct aa_label, node); + if (profile_in_label(p, label)) { + __label_invalidate(label); + /* TODO: replace invalidated label */ + } + } + + labelstats_inc(invalid); + labelstats_inc(invalid_intree); + + write_unlock_irqrestore(&ls->lock, flags); +} + +/** + * __aa_labelset_invalidate_all - invalidate labels in @ns and below + * @ns: ns to start invalidation at (NOT NULL) + * @p: profile that is causing invalidation (NOT NULL) + * + * Requires: @ns lock be held + * + * Invalidates labels based on @p in @ns and any children namespaces. +*/ +void __aa_labelset_invalidate_all(struct aa_namespace *ns, struct aa_profile *p) +{ + struct aa_namespace *child; + + AA_BUG(!ns); + AA_BUG(!p); + AA_BUG(!mutex_is_locked(&ns->lock)); + + labelset_invalidate(&ns->labels, p); + + list_for_each_entry(child, &ns->sub_ns, base.list) { + mutex_lock(&child->lock); + __aa_labelset_invalidate_all(child, p); + mutex_unlock(&child->lock); + } +} --- linux-3.11.0.orig/security/apparmor/domain.c +++ linux-3.11.0/security/apparmor/domain.c @@ -62,24 +62,24 @@ struct aa_profile *to_profile) { struct task_struct *tracer; - struct aa_profile *tracerp = NULL; + struct aa_label *tracerl = NULL; int error = 0; rcu_read_lock(); tracer = ptrace_parent(task); if (tracer) /* released below */ - tracerp = aa_get_task_profile(tracer); + tracerl = aa_get_task_label(tracer); /* not ptraced */ - if (!tracer || unconfined(tracerp)) + if (!tracer || unconfined(tracerl)) goto out; - error = aa_may_ptrace(tracer, tracerp, to_profile, PTRACE_MODE_ATTACH); + error = aa_may_ptrace(tracer, tracerl, &to_profile->label, PTRACE_MODE_ATTACH); out: rcu_read_unlock(); - aa_put_profile(tracerp); + aa_put_label(tracerl); return error; } @@ -103,7 +103,7 @@ struct path_cond cond = { }; unsigned int state; - if (unconfined(profile)) { + if (profile_unconfined(profile)) { perms.allow = AA_MAY_CHANGE_PROFILE | AA_MAY_ONEXEC; perms.audit = perms.quiet = perms.kill = 0; return perms; @@ -144,8 +144,8 @@ int len = 0; struct aa_profile *profile, *candidate = NULL; - list_for_each_entry(profile, head, base.list) { - if (profile->flags & PFLAG_NULL) + list_for_each_entry_rcu(profile, head, base.list) { + if (profile->label.flags & FLAG_NULL) continue; if (profile->xmatch && profile->xmatch_len > len) { unsigned int state = aa_dfa_match(profile->xmatch, @@ -177,9 +177,9 @@ { struct aa_profile *profile; - read_lock(&ns->lock); + rcu_read_lock(); profile = aa_get_profile(__attach_match(name, list)); - read_unlock(&ns->lock); + rcu_read_unlock(); return profile; } @@ -238,7 +238,7 @@ * * Returns: refcounted profile, or NULL on failure (MAYBE NULL) */ -static struct aa_profile *x_table_lookup(struct aa_profile *profile, u32 xindex) +struct aa_profile *x_table_lookup(struct aa_profile *profile, u32 xindex) { struct aa_profile *new_profile = NULL; struct aa_namespace *ns = profile->ns; @@ -339,6 +339,7 @@ int apparmor_bprm_set_creds(struct linux_binprm *bprm) { struct aa_task_cxt *cxt; + struct aa_label *label; struct aa_profile *profile, *new_profile = NULL; struct aa_namespace *ns; char *buffer = NULL; @@ -359,7 +360,8 @@ cxt = cred_cxt(bprm->cred); BUG_ON(!cxt); - profile = aa_get_profile(aa_newest_version(cxt->profile)); + label = aa_get_newest_label(cxt->label); + profile = labels_profile(label); /* * get the namespace from the replacement profile as replacement * can change the namespace @@ -368,11 +370,12 @@ state = profile->file.start; /* buffer freed below, name is pointer into buffer */ - error = aa_path_name(&bprm->file->f_path, profile->path_flags, &buffer, + get_buffers(buffer); + error = aa_path_name(&bprm->file->f_path, profile->path_flags, buffer, &name, &info); if (error) { - if (profile->flags & - (PFLAG_IX_ON_NAME_ERROR | PFLAG_UNCONFINED)) + if (profile_unconfined(profile) || + (profile->label.flags & FLAG_IX_ON_NAME_ERROR)) error = 0; name = bprm->filename; goto audit; @@ -381,11 +384,11 @@ /* Test for onexec first as onexec directives override other * x transitions. */ - if (unconfined(profile)) { + if (profile_unconfined(profile)) { /* unconfined task */ if (cxt->onexec) /* change_profile on exec already been granted */ - new_profile = aa_get_profile(cxt->onexec); + new_profile = labels_profile(aa_get_label(cxt->onexec)); else new_profile = find_attach(ns, &ns->base.profiles, name); if (!new_profile) @@ -411,13 +414,13 @@ * exec\0change_profile */ state = aa_dfa_null_transition(profile->file.dfa, state); - cp = change_profile_perms(profile, cxt->onexec->ns, - cxt->onexec->base.name, + cp = change_profile_perms(profile, labels_profile(cxt->onexec)->ns, + labels_profile(cxt->onexec)->base.name, AA_MAY_ONEXEC, state); if (!(cp.allow & AA_MAY_ONEXEC)) goto audit; - new_profile = aa_get_profile(aa_newest_version(cxt->onexec)); + new_profile = labels_profile(aa_get_newest_label(cxt->onexec)); goto apply; } @@ -434,7 +437,7 @@ new_profile = aa_get_profile(profile); goto x_clear; } else if (perms.xindex & AA_X_UNCONFINED) { - new_profile = aa_get_profile(ns->unconfined); + new_profile = labels_profile(aa_get_newest_label(&ns->unconfined->label)); info = "ux fallback"; } else { error = -ENOENT; @@ -444,7 +447,9 @@ } } } else if (COMPLAIN_MODE(profile)) { - /* no exec permission - are we in learning mode */ + /* break rcu readlock so we can allocate learning profile */ + put_buffers(buffer); + name = NULL; new_profile = aa_new_null_profile(profile, 0); if (!new_profile) { error = -ENOMEM; @@ -454,6 +459,12 @@ target = new_profile->base.hname; } perms.xindex |= AA_X_UNSAFE; + /* re-aquire buffer and rcu readlock and re-get name */ + get_buffers(buffer); + if (!error) + error = aa_path_name(&bprm->file->f_path, + profile->path_flags, buffer, + &name, &info); } else /* fail exec */ error = -EACCES; @@ -507,9 +518,9 @@ bprm->per_clear |= PER_CLEAR_ON_SETID; x_clear: - aa_put_profile(cxt->profile); + aa_put_label(cxt->label); /* transfer new profile reference will be released when cxt is freed */ - cxt->profile = new_profile; + cxt->label = &new_profile->label; /* clear out all temporary/transitional state from the context */ aa_clear_task_cxt_trans(cxt); @@ -519,8 +530,8 @@ name, target, cond.uid, info, error); cleanup: - aa_put_profile(profile); - kfree(buffer); + aa_put_label(label); + put_buffers(buffer); return error; } @@ -550,18 +561,18 @@ */ void apparmor_bprm_committing_creds(struct linux_binprm *bprm) { - struct aa_profile *profile = __aa_current_profile(); + struct aa_label *label = __aa_current_label(); struct aa_task_cxt *new_cxt = cred_cxt(bprm->cred); /* bail out if unconfined or not changing profile */ - if ((new_cxt->profile == profile) || - (unconfined(new_cxt->profile))) + if ((new_cxt->label == label) || + (unconfined(new_cxt->label))) return; current->pdeath_signal = 0; - /* reset soft limits and set hard limits for the new profile */ - __aa_transition_rlimits(profile, new_cxt->profile); + /* reset soft limits and set hard limits for the new label */ + __aa_transition_rlimits(label, new_cxt->label); } /** @@ -611,7 +622,8 @@ { const struct cred *cred; struct aa_task_cxt *cxt; - struct aa_profile *profile, *previous_profile, *hat = NULL; + struct aa_label *label, *previous; + struct aa_profile *profile, *hat = NULL; char *name = NULL; int i; struct file_perms perms = {}; @@ -629,10 +641,12 @@ /* released below */ cred = get_current_cred(); cxt = cred_cxt(cred); - profile = aa_cred_profile(cred); - previous_profile = cxt->previous; + label = aa_get_newest_cred_label(cred); + previous = cxt->previous; - if (unconfined(profile)) { + profile = labels_profile(label); + + if (unconfined(label)) { info = "unconfined"; error = -EPERM; goto audit; @@ -641,7 +655,10 @@ if (count) { /* attempting to change into a new hat or switch to a sibling */ struct aa_profile *root; - root = PROFILE_IS_HAT(profile) ? profile->parent : profile; + if (PROFILE_IS_HAT(profile)) + root = aa_get_profile_rcu(&profile->parent); + else + root = aa_get_profile(labels_profile(label)); /* find first matching hat */ for (i = 0; i < count && !hat; i++) @@ -653,6 +670,7 @@ error = -ECHILD; else error = -ENOENT; + aa_put_profile(root); goto out; } @@ -667,6 +685,7 @@ /* freed below */ name = new_compound_name(root->base.hname, hats[0]); + aa_put_profile(root); target = name; /* released below */ hat = aa_new_null_profile(profile, 1); @@ -676,6 +695,7 @@ goto audit; } } else { + aa_put_profile(root); target = hat->base.hname; if (!PROFILE_IS_HAT(hat)) { info = "target not hat"; @@ -692,7 +712,7 @@ } if (!permtest) { - error = aa_set_current_hat(hat, token); + error = aa_set_current_hat(&hat->label, token); if (error == -EACCES) /* kill task in case of brute force attacks */ perms.kill = AA_MAY_CHANGEHAT; @@ -700,12 +720,12 @@ /* reset error for learning of new hats */ error = -ENOENT; } - } else if (previous_profile) { - /* Return to saved profile. Kill task if restore fails + } else if (previous) { + /* Return to saved label. Kill task if restore fails * to avoid brute force attacks */ - target = previous_profile->base.hname; - error = aa_restore_previous_profile(token); + target = previous->hname; + error = aa_restore_previous_label(token); perms.kill = AA_MAY_CHANGEHAT; } else /* ignore restores when there is no saved profile */ @@ -719,6 +739,7 @@ out: aa_put_profile(hat); + aa_put_label(label); kfree(name); put_cred(cred); @@ -744,6 +765,7 @@ bool permtest) { const struct cred *cred; + struct aa_label *label; struct aa_profile *profile, *target = NULL; struct aa_namespace *ns = NULL; struct file_perms perms = {}; @@ -763,7 +785,8 @@ } cred = get_current_cred(); - profile = aa_cred_profile(cred); + label = aa_get_newest_cred_label(cred); + profile = labels_profile(label); /* * Fail explicitly requested domain transitions if no_new_privs @@ -772,7 +795,8 @@ * no_new_privs is set because this aways results in a reduction * of permissions. */ - if (current->no_new_privs && !unconfined(profile)) { + if (current->no_new_privs && !unconfined(label)) { + aa_put_label(label); put_cred(cred); return -EPERM; } @@ -793,7 +817,7 @@ /* if the name was not specified, use the name of the current profile */ if (!hname) { - if (unconfined(profile)) + if (profile_unconfined(profile)) hname = ns->unconfined->base.hname; else hname = profile->base.hname; @@ -833,9 +857,9 @@ goto audit; if (onexec) - error = aa_set_current_onexec(target); + error = aa_set_current_onexec(&target->label); else - error = aa_replace_current_profile(target); + error = aa_replace_current_label(&target->label); audit: if (!permtest) @@ -844,6 +868,7 @@ aa_put_namespace(ns); aa_put_profile(target); + aa_put_label(label); put_cred(cred); return error; --- linux-3.11.0.orig/security/apparmor/procattr.c +++ linux-3.11.0/security/apparmor/procattr.c @@ -33,50 +33,29 @@ * * Returns: size of string placed in @string else error code on failure */ -int aa_getprocattr(struct aa_profile *profile, char **string) +int aa_getprocattr(struct aa_label *label, char **string) { - char *str; - int len = 0, mode_len = 0, ns_len = 0, name_len; - const char *mode_str = profile_mode_names[profile->mode]; - const char *ns_name = NULL; - struct aa_namespace *ns = profile->ns; - struct aa_namespace *current_ns = __aa_current_profile()->ns; - char *s; + struct aa_namespace *ns = labels_ns(label); + struct aa_namespace *current_ns = labels_ns(__aa_current_label()); + int len; if (!aa_ns_visible(current_ns, ns)) return -EACCES; - ns_name = aa_ns_name(current_ns, ns); - ns_len = strlen(ns_name); + len = aa_label_snprint(NULL, 0, current_ns, label, true); + AA_BUG(len < 0); - /* if the visible ns_name is > 0 increase size for : :// seperator */ - if (ns_len) - ns_len += 4; - - /* unconfined profiles don't have a mode string appended */ - if (!unconfined(profile)) - mode_len = strlen(mode_str) + 3; /* + 3 for _() */ - - name_len = strlen(profile->base.hname); - len = mode_len + ns_len + name_len + 1; /* + 1 for \n */ - s = str = kmalloc(len + 1, GFP_KERNEL); /* + 1 \0 */ - if (!str) + *string = kmalloc(len + 2, GFP_KERNEL); + if (!*string) return -ENOMEM; - if (ns_len) { - /* skip over prefix current_ns->base.hname and separating // */ - sprintf(s, ":%s://", ns_name); - s += ns_len; - } - if (unconfined(profile)) - /* mode string not being appended */ - sprintf(s, "%s\n", profile->base.hname); - else - sprintf(s, "%s (%s)\n", profile->base.hname, mode_str); - *string = str; + len = aa_label_snprint(*string, len + 2, current_ns, label, true); + if (len < 0) + return len; + (*string)[len] = '\n'; + (*string)[len + 1] = 0; - /* NOTE: len does not include \0 of string, not saved as part of file */ - return len; + return len + 1; } /** --- linux-3.11.0.orig/security/apparmor/audit.c +++ linux-3.11.0/security/apparmor/audit.c @@ -44,6 +44,10 @@ "file_mmap", "file_mprotect", + "pivotroot", + "mount", + "umount", + "create", "post_create", "bind", @@ -111,46 +115,53 @@ static void audit_pre(struct audit_buffer *ab, void *ca) { struct common_audit_data *sa = ca; - struct task_struct *tsk = sa->aad->tsk ? sa->aad->tsk : current; + struct task_struct *tsk = aad(sa)->tsk ? aad(sa)->tsk : current; if (aa_g_audit_header) { audit_log_format(ab, "apparmor="); - audit_log_string(ab, aa_audit_type[sa->aad->type]); + audit_log_string(ab, aa_audit_type[aad(sa)->type]); } - if (sa->aad->op) { + if (aad(sa)->op) { audit_log_format(ab, " operation="); - audit_log_string(ab, op_table[sa->aad->op]); + audit_log_string(ab, op_table[aad(sa)->op]); } - if (sa->aad->info) { + if (aad(sa)->info) { audit_log_format(ab, " info="); - audit_log_string(ab, sa->aad->info); - if (sa->aad->error) - audit_log_format(ab, " error=%d", sa->aad->error); + audit_log_string(ab, aad(sa)->info); + if (aad(sa)->error) + audit_log_format(ab, " error=%d", aad(sa)->error); } - if (sa->aad->profile) { - struct aa_profile *profile = sa->aad->profile; + if (aad(sa)->label) { + struct aa_label *label = aad(sa)->label; pid_t pid; rcu_read_lock(); pid = rcu_dereference(tsk->real_parent)->pid; rcu_read_unlock(); audit_log_format(ab, " parent=%d", pid); - if (profile->ns != root_ns) { - audit_log_format(ab, " namespace="); - audit_log_untrustedstring(ab, profile->ns->base.hname); + if (label_isprofile(label)) { + struct aa_profile *profile = labels_profile(label); + if (profile->ns != root_ns) { + audit_log_format(ab, " namespace="); + audit_log_untrustedstring(ab, + profile->ns->base.hname); + } + audit_log_format(ab, " profile="); + audit_log_untrustedstring(ab, profile->base.hname); + } else { + audit_log_format(ab, " label="); + aa_label_audit(ab, root_ns, label, false, GFP_ATOMIC); } - audit_log_format(ab, " profile="); - audit_log_untrustedstring(ab, profile->base.hname); } - if (sa->aad->name) { + if (aad(sa)->name) { audit_log_format(ab, " name="); - audit_log_untrustedstring(ab, sa->aad->name); + audit_log_untrustedstring(ab, aad(sa)->name); } - if (sa->aad->tsk) { + if (aad(sa)->tsk) { audit_log_format(ab, " pid=%d comm=", tsk->pid); audit_log_untrustedstring(ab, tsk->comm); } @@ -165,7 +176,7 @@ void aa_audit_msg(int type, struct common_audit_data *sa, void (*cb) (struct audit_buffer *, void *)) { - sa->aad->type = type; + aad(sa)->type = type; common_lsm_audit(sa, audit_pre, cb); } @@ -188,7 +199,7 @@ BUG_ON(!profile); if (type == AUDIT_APPARMOR_AUTO) { - if (likely(!sa->aad->error)) { + if (likely(!aad(sa)->error)) { if (AUDIT_MODE(profile) != AUDIT_ALL) return 0; type = AUDIT_APPARMOR_AUDIT; @@ -200,22 +211,21 @@ if (AUDIT_MODE(profile) == AUDIT_QUIET || (type == AUDIT_APPARMOR_DENIED && AUDIT_MODE(profile) == AUDIT_QUIET)) - return sa->aad->error; + return aad(sa)->error; if (KILL_MODE(profile) && type == AUDIT_APPARMOR_DENIED) type = AUDIT_APPARMOR_KILL; - if (!unconfined(profile)) - sa->aad->profile = profile; + aad(sa)->label = &profile->label; aa_audit_msg(type, sa, cb); - if (sa->aad->type == AUDIT_APPARMOR_KILL) + if (aad(sa)->type == AUDIT_APPARMOR_KILL) (void)send_sig_info(SIGKILL, NULL, - sa->aad->tsk ? sa->aad->tsk : current); + aad(sa)->tsk ? aad(sa)->tsk : current); - if (sa->aad->type == AUDIT_APPARMOR_ALLOWED) - return complain_error(sa->aad->error); + if (aad(sa)->type == AUDIT_APPARMOR_ALLOWED) + return complain_error(aad(sa)->error); - return sa->aad->error; + return aad(sa)->error; } --- linux-3.11.0.orig/security/apparmor/include/context.h +++ linux-3.11.0/security/apparmor/include/context.h @@ -19,6 +19,7 @@ #include #include +#include "label.h" #include "policy.h" #define cred_cxt(X) (X)->security @@ -28,7 +29,7 @@ * @perms: the permission the file was opened with * * The file_cxt could currently be directly stored in file->f_security - * as the profile reference is now stored in the f_cred. However the + * as the label reference is now stored in the f_cred. However the * cxt struct will expand in the future so we keep the struct. */ struct aa_file_cxt { @@ -58,20 +59,20 @@ /** * struct aa_task_cxt - primary label for confined tasks - * @profile: the current profile (NOT NULL) - * @exec: profile to transition to on next exec (MAYBE NULL) - * @previous: profile the task may return to (MAYBE NULL) - * @token: magic value the task must know for returning to @previous_profile + * @label: the current label (NOT NULL) + * @exec: label to transition to on next exec (MAYBE NULL) + * @previous: label the task may return to (MAYBE NULL) + * @token: magic value the task must know for returning to @previous * - * Contains the task's current profile (which could change due to + * Contains the task's current label (which could change due to * change_hat). Plus the hat_magic needed during change_hat. * * TODO: make so a task can be confined by a stack of contexts */ struct aa_task_cxt { - struct aa_profile *profile; - struct aa_profile *onexec; - struct aa_profile *previous; + struct aa_label *label; + struct aa_label *onexec; + struct aa_label *previous; u64 token; }; @@ -79,39 +80,50 @@ void aa_free_task_context(struct aa_task_cxt *cxt); void aa_dup_task_context(struct aa_task_cxt *new, const struct aa_task_cxt *old); -int aa_replace_current_profile(struct aa_profile *profile); -int aa_set_current_onexec(struct aa_profile *profile); -int aa_set_current_hat(struct aa_profile *profile, u64 token); -int aa_restore_previous_profile(u64 cookie); -struct aa_profile *aa_get_task_profile(struct task_struct *task); +int aa_replace_current_label(struct aa_label *label); +int aa_set_current_onexec(struct aa_label *label); +int aa_set_current_hat(struct aa_label *label, u64 token); +int aa_restore_previous_label(u64 cookie); +struct aa_label *aa_get_task_label(struct task_struct *task); /** - * aa_cred_profile - obtain cred's profiles - * @cred: cred to obtain profiles from (NOT NULL) + * aa_cred_label - obtain cred's label + * @cred: cred to obtain label from (NOT NULL) * - * Returns: confining profile + * Returns: confining label * * does NOT increment reference count */ -static inline struct aa_profile *aa_cred_profile(const struct cred *cred) +static inline struct aa_label *aa_cred_label(const struct cred *cred) { struct aa_task_cxt *cxt = cred_cxt(cred); - BUG_ON(!cxt || !cxt->profile); - return aa_newest_version(cxt->profile); + BUG_ON(!cxt || !cxt->label); + return cxt->label; } /** - * __aa_task_profile - retrieve another task's profile + * aa_get_newest_cred_label - obtain the newest version of the label on a cred + * @cred: cred to obtain label from (NOT NULL) + * + * Returns: newest version of confining label + */ +static inline struct aa_label *aa_get_newest_cred_label(const struct cred *cred) +{ + return aa_get_newest_label(aa_cred_label(cred)); +} + +/** + * __aa_task_label - retrieve another task's label * @task: task to query (NOT NULL) * - * Returns: @task's profile without incrementing its ref count + * Returns: @task's label without incrementing its ref count * * If @task != current needs to be called in RCU safe critical section */ -static inline struct aa_profile *__aa_task_profile(struct task_struct *task) +static inline struct aa_label *__aa_task_label(struct task_struct *task) { - return aa_cred_profile(__task_cred(task)); + return aa_cred_label(__task_cred(task)); } /** @@ -122,45 +134,75 @@ */ static inline bool __aa_task_is_confined(struct task_struct *task) { - return !unconfined(__aa_task_profile(task)); + return !unconfined(__aa_task_label(task)); } /** - * __aa_current_profile - find the current tasks confining profile + * __aa_current_label - find the current tasks confining label * - * Returns: up to date confining profile or the ns unconfined profile (NOT NULL) + * Returns: up to date confining label or the ns unconfined label (NOT NULL) * * This fn will not update the tasks cred to the most up to date version - * of the profile so it is safe to call when inside of locks. + * of the label so it is safe to call when inside of locks. + */ +static inline struct aa_label *__aa_current_label(void) +{ + return aa_cred_label(current_cred()); +} + +/** + * __aa_get_current_label - find newest version of the current tasks label + * + * Returns: newest version of confining label (NOT NULL) + * + * This fn will not update the tasks cred, so it is safe inside of locks + * + * The returned reference must be put with __aa_put_current_label() + */ +static inline struct aa_label *__aa_get_current_label(void) +{ + struct aa_label *l = __aa_current_label(); + + if (label_invalid(l)) + l = aa_get_newest_label(l); + return l; +} + +/** + * __aa_put_current_label - put a reference found with aa_get_current_label + * @label: label reference to put + * + * Should only be used with a reference obtained with __aa_get_current_label + * and never used in situations where the task cred may be updated */ -static inline struct aa_profile *__aa_current_profile(void) +static inline void __aa_put_current_label(struct aa_label *label) { - return aa_cred_profile(current_cred()); + if (label != __aa_current_label()) + aa_put_label(label); } /** - * aa_current_profile - find the current tasks confining profile and do updates + * aa_current_label - find the current tasks confining label and update it * - * Returns: up to date confining profile or the ns unconfined profile (NOT NULL) + * Returns: up to date confining label or the ns unconfined label (NOT NULL) * - * This fn will update the tasks cred structure if the profile has been + * This fn will update the tasks cred structure if the label has been * replaced. Not safe to call inside locks */ -static inline struct aa_profile *aa_current_profile(void) +static inline struct aa_label *aa_current_label(void) { const struct aa_task_cxt *cxt = current_cxt(); - struct aa_profile *profile; - BUG_ON(!cxt || !cxt->profile); + struct aa_label *label; + BUG_ON(!cxt || !cxt->label); - profile = aa_newest_version(cxt->profile); - /* - * Whether or not replacement succeeds, use newest profile so - * there is no need to update it after replacement. - */ - if (unlikely((cxt->profile != profile))) - aa_replace_current_profile(profile); + if (label_invalid(cxt->label)) { + label = aa_get_newest_label(cxt->label); + aa_replace_current_label(label); + aa_put_label(label); + cxt = current_cxt(); + } - return profile; + return cxt->label; } /** @@ -169,8 +211,8 @@ */ static inline void aa_clear_task_cxt_trans(struct aa_task_cxt *cxt) { - aa_put_profile(cxt->previous); - aa_put_profile(cxt->onexec); + aa_put_label(cxt->previous); + aa_put_label(cxt->onexec); cxt->previous = NULL; cxt->onexec = NULL; cxt->token = 0; --- linux-3.11.0.orig/security/apparmor/include/ipc.h +++ linux-3.11.0/security/apparmor/include/ipc.h @@ -19,8 +19,8 @@ struct aa_profile; -int aa_may_ptrace(struct task_struct *tracer_task, struct aa_profile *tracer, - struct aa_profile *tracee, unsigned int mode); +int aa_may_ptrace(struct task_struct *tracer_task, struct aa_label *tracer, + struct aa_label *tracee, unsigned int mode); int aa_ptrace(struct task_struct *tracer, struct task_struct *tracee, unsigned int mode); --- linux-3.11.0.orig/security/apparmor/include/apparmorfs.h +++ linux-3.11.0/security/apparmor/include/apparmorfs.h @@ -61,4 +61,44 @@ extern void __init aa_destroy_aafs(void); +struct aa_profile; +struct aa_namespace; + +enum aafs_ns_type { + AAFS_NS_DIR, + AAFS_NS_PROFS, + AAFS_NS_NS, + AAFS_NS_COUNT, + AAFS_NS_MAX_COUNT, + AAFS_NS_SIZE, + AAFS_NS_MAX_SIZE, + AAFS_NS_OWNER, + AAFS_NS_SIZEOF, +}; + +enum aafs_prof_type { + AAFS_PROF_DIR, + AAFS_PROF_PROFS, + AAFS_PROF_NAME, + AAFS_PROF_MODE, + AAFS_PROF_ATTACH, + AAFS_PROF_HASH, + AAFS_PROF_SIZEOF, +}; + +#define ns_dir(X) ((X)->dents[AAFS_NS_DIR]) +#define ns_subns_dir(X) ((X)->dents[AAFS_NS_NS]) +#define ns_subprofs_dir(X) ((X)->dents[AAFS_NS_PROFS]) + +#define prof_dir(X) ((X)->dents[AAFS_PROF_DIR]) +#define prof_child_dir(X) ((X)->dents[AAFS_PROF_PROFS]) + +void __aa_fs_profile_rmdir(struct aa_profile *profile); +void __aa_fs_profile_migrate_dents(struct aa_profile *old, + struct aa_profile *new); +int __aa_fs_profile_mkdir(struct aa_profile *profile, struct dentry *parent); +void __aa_fs_namespace_rmdir(struct aa_namespace *ns); +int __aa_fs_namespace_mkdir(struct aa_namespace *ns, struct dentry *parent, + const char *name); + #endif /* __AA_APPARMORFS_H */ --- linux-3.11.0.orig/security/apparmor/include/file.h +++ linux-3.11.0/security/apparmor/include/file.h @@ -17,6 +17,7 @@ #include "domain.h" #include "match.h" +#include "label.h" struct aa_profile; struct path; @@ -47,6 +48,8 @@ AA_MAY_CHMOD | AA_MAY_CHOWN | AA_MAY_LOCK | \ AA_EXEC_MMAP | AA_MAY_LINK) +#define inode_cxt(X) (X)->i_security + /* * The xindex is broken into 3 parts * - index - an index into either the exec name table or the variable table @@ -171,13 +174,13 @@ const char *name, struct path_cond *cond, struct file_perms *perms); -int aa_path_perm(int op, struct aa_profile *profile, struct path *path, +int aa_path_perm(int op, struct aa_label *label, struct path *path, int flags, u32 request, struct path_cond *cond); -int aa_path_link(struct aa_profile *profile, struct dentry *old_dentry, +int aa_path_link(struct aa_label *label, struct dentry *old_dentry, struct path *new_dir, struct dentry *new_dentry); -int aa_file_perm(int op, struct aa_profile *profile, struct file *file, +int aa_file_perm(int op, struct aa_label *label, struct file *file, u32 request); static inline void aa_free_file_rules(struct aa_file_rules *rules) --- linux-3.11.0.orig/security/apparmor/include/crypto.h +++ linux-3.11.0/security/apparmor/include/crypto.h @@ -0,0 +1,36 @@ +/* + * AppArmor security module + * + * This file contains AppArmor policy loading interface function definitions. + * + * Copyright 2013 Canonical Ltd. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation, version 2 of the + * License. + */ + +#ifndef __APPARMOR_CRYPTO_H +#define __APPARMOR_CRYPTO_H + +#include "policy.h" + +#ifdef CONFIG_SECURITY_APPARMOR_HASH +unsigned int aa_hash_size(void); +int aa_calc_profile_hash(struct aa_profile *profile, u32 version, void *start, + size_t len); +#else +static inline int aa_calc_profile_hash(struct aa_profile *profile, u32 version, + void *start, size_t len) +{ + return 0; +} + +static inline unsigned int aa_hash_size(void) +{ + return 0; +} +#endif + +#endif /* __APPARMOR_CRYPTO_H */ --- linux-3.11.0.orig/security/apparmor/include/mount.h +++ linux-3.11.0/security/apparmor/include/mount.h @@ -0,0 +1,54 @@ +/* + * AppArmor security module + * + * This file contains AppArmor file mediation function definitions. + * + * Copyright 2012 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_MOUNT_H +#define __AA_MOUNT_H + +#include +#include + +#include "domain.h" +#include "policy.h" + +/* mount perms */ +#define AA_MAY_PIVOTROOT 0x01 +#define AA_MAY_MOUNT 0x02 +#define AA_MAY_UMOUNT 0x04 +#define AA_AUDIT_DATA 0x40 +#define AA_CONT_MATCH 0x40 + +#define AA_MS_IGNORE_MASK (MS_KERNMOUNT | MS_NOSEC | MS_ACTIVE | MS_BORN) + +int aa_remount(struct aa_label *label, struct path *path, unsigned long flags, + void *data); + +int aa_bind_mount(struct aa_label *label, struct path *path, + const char *old_name, unsigned long flags); + + +int aa_mount_change_type(struct aa_label *label, struct path *path, + unsigned long flags); + +int aa_move_mount(struct aa_label *label, struct path *path, + const char *old_name); + +int aa_new_mount(struct aa_label *label, const char *dev_name, + struct path *path, const char *type, unsigned long flags, + void *data); + +int aa_umount(struct aa_label *label, struct vfsmount *mnt, int flags); + +int aa_pivotroot(struct aa_label *label, struct path *old_path, + struct path *new_path); + +#endif /* __AA_MOUNT_H */ --- linux-3.11.0.orig/security/apparmor/include/resource.h +++ linux-3.11.0/security/apparmor/include/resource.h @@ -37,10 +37,10 @@ extern struct aa_fs_entry aa_fs_entry_rlimit[]; int aa_map_resource(int resource); -int aa_task_setrlimit(struct aa_profile *profile, struct task_struct *, +int aa_task_setrlimit(struct aa_label *label, struct task_struct *, unsigned int resource, struct rlimit *new_rlim); -void __aa_transition_rlimits(struct aa_profile *old, struct aa_profile *new); +void __aa_transition_rlimits(struct aa_label *old, struct aa_label *new); static inline void aa_free_rlimit_rules(struct aa_rlimit *rlims) { --- linux-3.11.0.orig/security/apparmor/include/capability.h +++ linux-3.11.0/security/apparmor/include/capability.h @@ -17,6 +17,8 @@ #include +#include "apparmorfs.h" + struct aa_profile; /* aa_caps - confinement data for capabilities @@ -34,6 +36,8 @@ kernel_cap_t extended; }; +extern struct aa_fs_entry aa_fs_entry_caps[]; + int aa_capable(struct task_struct *task, struct aa_profile *profile, int cap, int audit); --- linux-3.11.0.orig/security/apparmor/include/net.h +++ linux-3.11.0/security/apparmor/include/net.h @@ -0,0 +1,54 @@ +/* + * AppArmor security module + * + * This file contains AppArmor network mediation definitions. + * + * Copyright (C) 1998-2008 Novell/SUSE + * Copyright 2009-2012 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 + +#include "apparmorfs.h" +#include "label.h" + +struct aa_sk_cxt { + struct aa_label *label; + struct aa_label *peer; +}; + +#define SK_CXT(X) (X)->sk_security +#define SOCK_CXT(X) SOCK_INODE(X)->i_security + +/* 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 struct aa_fs_entry aa_fs_entry_network[]; + +extern int aa_net_perm(int op, struct aa_label *label, 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-3.11.0.orig/security/apparmor/include/audit.h +++ linux-3.11.0/security/apparmor/include/audit.h @@ -22,12 +22,10 @@ #include #include "file.h" - -struct aa_profile; +#include "label.h" extern const char *const audit_mode_names[]; #define AUDIT_MAX_INDEX 5 - enum audit_mode { AUDIT_NORMAL, /* follow normal auditing of accesses */ AUDIT_QUIET_DENIED, /* quiet all denied access messages */ @@ -73,6 +71,10 @@ OP_FMMAP, OP_FMPROT, + OP_PIVOTROOT, + OP_MOUNT, + OP_UMOUNT, + OP_CREATE, OP_POST_CREATE, OP_BIND, @@ -107,7 +109,7 @@ int error; int op; int type; - void *profile; + struct aa_label *label; const char *name; const char *info; struct task_struct *tsk; @@ -122,16 +124,28 @@ unsigned long max; } rlim; struct { + const char *src_name; + const char *type; + const char *trans; + const char *data; + unsigned long flags; + } mnt; + struct { const char *target; u32 request; u32 denied; kuid_t ouid; } fs; + struct { + int type, protocol; + struct sock *sk; + } net; }; }; /* define a short hand for apparmor_audit_data structure */ -#define aad apparmor_audit_data +#define aad(SA) (SA)->apparmor_audit_data +#define aad_set(SA, I) (SA)->apparmor_audit_data = (I) void aa_audit_msg(int type, struct common_audit_data *sa, void (*cb) (struct audit_buffer *, void *)); --- linux-3.11.0.orig/security/apparmor/include/procattr.h +++ linux-3.11.0/security/apparmor/include/procattr.h @@ -18,7 +18,7 @@ #define AA_DO_TEST 1 #define AA_ONEXEC 1 -int aa_getprocattr(struct aa_profile *profile, char **string); +int aa_getprocattr(struct aa_label *label, char **string); int aa_setprocattr_changehat(char *args, size_t size, int test); int aa_setprocattr_changeprofile(char *fqname, bool onexec, int test); --- linux-3.11.0.orig/security/apparmor/include/path.h +++ linux-3.11.0/security/apparmor/include/path.h @@ -23,10 +23,68 @@ PATH_CHROOT_NSCONNECT = 0x10, /* connect paths that are at ns root */ PATH_DELEGATE_DELETED = 0x08000, /* delegate deleted files */ - PATH_MEDIATE_DELETED = 0x10000, /* mediate deleted paths */ + PATH_MEDIATE_DELETED = 0x10000, /* mediate deleted paths */ }; -int aa_path_name(struct path *path, int flags, char **buffer, +int aa_path_name(struct path *path, int flags, char *buffer, const char **name, const char **info); + +/* Per cpu buffers used during mediation */ +/* preallocated buffers to use during path lookups */ +struct aa_buffers { + char *buf[2]; +}; + +#include +#include + +DECLARE_PER_CPU(struct aa_buffers, aa_buffers); + +#define COUNT_ARGS(X...) COUNT_ARGS_HELPER ( , ##X ,9,8,7,6,5,4,3,2,1,0) +#define COUNT_ARGS_HELPER(_0,_1,_2,_3,_4,_5,_6,_7,_8,_9,n,X...) n +#define CONCAT(X, Y) X ## Y +#define CONCAT_AFTER(X, Y) CONCAT(X, Y) + +//#define __macroarg_counter(Y...) __macroarg_count1 ( , ##Y) +//#define __macroarg_count1(Y...) __macroarg_count2 (Y,5,4,3,2,1,0) +//#define __macroarg_count2(_,x0,x1,x2,x3,x4,n,Y...) n + +#define ASSIGN(FN, X, N) do { (X) = FN(N); } while (0) +#define EVAL1(FN, X) ASSIGN(FN, X, 0) /*X = FN(0)*/ +#define EVAL2(FN, X, Y...) ASSIGN(FN, X, 1); /*X = FN(1);*/ EVAL1(FN, Y) +//#define EVAL(FN, X...) CONCAT_AFTER(EVAL, __macroarg_counter(X))(FN, X) +#define EVAL(FN, X...) CONCAT_AFTER(EVAL, COUNT_ARGS(X))(FN, X) + +#define for_each_cpu_buffer(I) for ((I) = 0; (I) < 2; (I)++) + +#ifdef CONFIG_DEBUG_PREEMPT +#define AA_BUG_PREEMPT_ENABLED(X) AA_BUG(preempt_count() <= 0, X) +#else +#define AA_BUG_PREEMPT_ENABLED(X) /* nop */ +#endif + +#define __get_buffer(N) ({ \ + struct aa_buffers *__cpu_var; \ + AA_BUG_PREEMPT_ENABLED("__get_buffer without preempt disabled"); \ + __cpu_var = &__get_cpu_var(aa_buffers); \ + __cpu_var->buf[(N)]; }) + +#define __get_buffers(X...) \ +do { \ + EVAL(__get_buffer, X); \ +} while (0) + +#define get_buffers(X...) \ +do { \ + preempt_disable(); \ + __get_buffers(X); \ +} while (0) + +#define put_buffers(X, Y...) \ +do { \ + (void)&(X); \ + preempt_enable(); \ +} while (0) + #endif /* __AA_PATH_H */ --- linux-3.11.0.orig/security/apparmor/include/policy_unpack.h +++ linux-3.11.0/security/apparmor/include/policy_unpack.h @@ -15,6 +15,25 @@ #ifndef __POLICY_INTERFACE_H #define __POLICY_INTERFACE_H -struct aa_profile *aa_unpack(void *udata, size_t size, const char **ns); +#include + +struct aa_load_ent { + struct list_head list; + struct aa_profile *new; + struct aa_profile *old; + struct aa_profile *rename; +}; + +void aa_load_ent_free(struct aa_load_ent *ent); +struct aa_load_ent *aa_load_ent_alloc(void); + +#define PACKED_FLAG_HAT 1 + +#define PACKED_MODE_ENFORCE 0 +#define PACKED_MODE_COMPLAIN 1 +#define PACKED_MODE_KILL 2 +#define PACKED_MODE_UNCONFINED 3 + +int aa_unpack(void *udata, size_t size, struct list_head *lh, const char **ns); #endif /* __POLICY_INTERFACE_H */ --- linux-3.11.0.orig/security/apparmor/include/label.h +++ linux-3.11.0/security/apparmor/include/label.h @@ -0,0 +1,312 @@ +/* + * AppArmor security module + * + * This file contains AppArmor label definitions + * + * Copyright 2013 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_LABEL_H +#define __AA_LABEL_H + +#include +#include +#include +#include + +#include "apparmor.h" + +struct aa_namespace; + +struct labelset_stats { + atomic_t sread; + atomic_t fread; + atomic_t msread; + atomic_t mfread; + + atomic_t insert; + atomic_t existing; + atomic_t minsert; + atomic_t mexisting; + + atomic_t invalid; /* outstanding invalid */ +}; + +struct label_stats { + struct labelset_stats set_stats; + + atomic_t allocated; + atomic_t failed; + atomic_t freed; + + atomic_t printk_name_alloc; + atomic_t printk_name_fail; + atomic_t seq_print_name_alloc; + atomic_t seq_print_name_fail; + atomic_t audit_name_alloc; + atomic_t audit_name_fail; +}; + + +#ifdef AA_LABEL_STATS +#define labelstats_inc(X) atomic_inc(stats.(X)) +#define labelstats_dec(X) atomic_dec(stats.(X)) +#define labelsetstats_inc(LS, X) \ + do { \ + labelstats_inc(set_stats.##X); \ + atomic_inc((LS)->stats.(X)); \ + } while (0) +#define labelsetstats_dec(LS, X) \ + do { \ + labelstats_dec(set_stats.##X); \ + atomic_dec((LS)->stats.(X)); \ + } while (0) +#else +#define labelstats_inc(X) +#define labelstats_dec(X) +#define labelsetstats_inc(LS, X) +#define labelsetstats_dec(LS, X) +#endif +#define labelstats_init(X) + +/* struct aa_labelset - set of labels for a namespace + * + * Labels are reference counted; aa_labelset does not contribute to label + * reference counts. Once a label's last refcount is put it is removed from + * the set. + */ +struct aa_labelset { + rwlock_t lock; + + struct rb_root root; + + /* stats */ +#ifdef APPARMOR_LABEL_STATS + struct labelset_stats stats; +#endif + +}; + +#define __labelset_for_each(LS, N) \ + for((N) = rb_first(&(LS)->root); (N); (N) = rb_next(N)) + +void aa_labelset_destroy(struct aa_labelset *ls); +void aa_labelset_init(struct aa_labelset *ls); + + +enum label_flags { + FLAG_HAT = 1, /* profile is a hat */ + FLAG_UNCONFINED = 2, /* label unconfined only if all + * constituant profiles unconfined */ + FLAG_NULL = 4, /* profile is null learning profile */ + FLAG_IX_ON_NAME_ERROR = 8, /* fallback to ix on name lookup fail */ + FLAG_IMMUTIBLE = 0x10, /* don't allow changes/replacement */ + FLAG_USER_DEFINED = 0x20, /* user based profile - lower privs */ + FLAG_NO_LIST_REF = 0x40, /* list doesn't keep profile ref */ + FLAG_NS_COUNT = 0x80, /* carries NS ref count */ + FLAG_IN_TREE = 0x100, /* label is in tree */ + FLAG_PROFILE = 0x200, /* label is a profile */ + FALG_EXPLICIT = 0x400, /* explict static label */ + FLAG_INVALID = 0x800, /* replaced/removed */ + FLAG_RENAMED = 0x1000, /* label has renaming in it */ + FLAG_REVOKED = 0x2000, /* label has revocation in it */ + + /* These flags must correspond with PATH_flags */ + /* TODO: add new path flags */ +}; + +struct aa_label; +struct aa_replacedby { + struct kref count; + struct aa_label __rcu *label; +}; + +/* struct aa_label - lazy labeling struct + * @count: ref count of active users + * @node: rbtree position + * @rcu: rcu callback struct + * @replacedby: is set to the label that replaced this label + * @hname: text representation of the label (MAYBE_NULL) + * @flags: invalid and other flags - values may change under label set lock + * @sid: sid that references this label + * @size: number of entries in @ent[] + * @ent: set of profiles for label, actual size determined by @size + */ +struct aa_label { + struct kref count; + struct rb_node node; + struct rcu_head rcu; + struct aa_replacedby *replacedby; + __counted char *hname; + long flags; + u32 sid; + int size; + struct aa_profile *ent[1]; +}; + +#define label_isprofile(X) ((X)->flags & FLAG_PROFILE) +#define label_unconfined(X) ((X)->flags & FLAG_UNCONFINED) +#define unconfined(X) label_unconfined(X) +#define label_invalid(X) ((X)->flags & FLAG_INVALID) +#define __label_invalidate(X) do { \ + labelsetstats_inc(labels_set(X), invalid); \ + ((X)->flags |= FLAG_INVALID); \ +} while (0) +#define labels_last(X) ((X)->ent[(X)->size - 1]) +#define labels_ns(X) (labels_last(X)->ns) +#define labels_set(X) (&labels_ns(X)->labels) +#define labels_profile(X) ((X)->ent[0]) + +int aa_label_next_confined(struct aa_label *l, int i); + +/* for each profile in a label */ +#define label_for_each(I, L, P) \ + for ((I) = 0; \ + (I) < (L)->size && ((P) = (L)->ent[(I)]); \ + ++(I)) + +/* for each profile that is enforcing confinement in a label */ +#define label_for_each_confined(I, L, P) \ + for ((I) = aa_label_next_confined((L), 0); \ + (I) < (L)->size && ((P) = (L)->ent[(I)]); \ + (I) = aa_label_next_confined((L), I + 1)) + +#define fn_for_each_XXX(L, P, FN, ...) \ +do { \ + int i; \ + label_for_each ## __VA_ARGS__ (i, (L), (P)) { \ + (FN); \ + } \ +} while (0) + +#define fn_for_each(L, P, FN) fn_for_each_XXX(L, P, FN) +#define fn_for_each_confined(L, P, FN) fn_for_each_XXX(L, P, FN, _confined) + + +void aa_labelset_destroy(struct aa_labelset *ls); +void aa_labelset_init(struct aa_labelset *ls); +void __aa_labelset_invalidate_all(struct aa_namespace *ns, + struct aa_profile *p); + +void aa_label_destroy(struct aa_label *label); +void aa_label_free(struct aa_label *label); +void aa_label_kref(struct kref *kref); +bool aa_label_init(struct aa_label *label, int size); +struct aa_label *aa_label_alloc(int size, gfp_t gfp); + +bool aa_label_remove(struct aa_labelset *ls, struct aa_label *label); +struct aa_label *aa_label_insert(struct aa_labelset *ls, struct aa_label *l); +bool aa_label_replace(struct aa_labelset *ls, struct aa_label *old, + struct aa_label *new); +bool aa_label_make_newest(struct aa_labelset *ls, struct aa_label *old, + struct aa_label *new); + +struct aa_label *aa_label_find(struct aa_labelset *ls, struct aa_label *l); + +bool aa_update_label_name(struct aa_namespace *ns, struct aa_label *label, + gfp_t gfp); + +int aa_profile_snprint(char *str, size_t size, struct aa_namespace *ns, + struct aa_profile *profile, bool mode); +int aa_label_snprint(char *str, size_t size, struct aa_namespace *ns, + struct aa_label *label, bool mode); +int aa_label_asprint(char **strp, struct aa_namespace *ns, + struct aa_label *label, bool mode, gfp_t gfp); +int aa_label_acntsprint(char __counted **strp, struct aa_namespace *ns, + struct aa_label *label, bool mode, gfp_t gfp); +void aa_label_audit(struct audit_buffer *ab, struct aa_namespace *ns, + struct aa_label *label, bool mode, gfp_t gfp); +void aa_label_seq_print(struct seq_file *f, struct aa_namespace *ns, + struct aa_label *label, bool mode, gfp_t gfp); +void aa_label_printk(struct aa_namespace *ns, struct aa_label *label, + bool mode, gfp_t gfp); +struct aa_label *aa_label_parse(struct aa_namespace *base, char *str, + gfp_t gfp); + +static inline struct aa_label *aa_get_label(struct aa_label *l) +{ + if (l) + kref_get(&(l->count)); + + return l; +} + +static inline struct aa_label *aa_get_label_not0(struct aa_label *l) +{ + if (l && kref_get_not0(&l->count)) + return l; + + return NULL; +} + +/** + * aa_get_label_rcu - increment refcount on a label that can be replaced + * @l: pointer to label that can be replaced (NOT NULL) + * + * Returns: pointer to a refcounted label. + * else NULL if no label + */ +static inline struct aa_label *aa_get_label_rcu(struct aa_label __rcu **l) +{ + struct aa_label *c; + + rcu_read_lock(); + do { + c = rcu_dereference(*l); + } while (c && !kref_get_not0(&c->count)); + rcu_read_unlock(); + + return c; +} + +/** + * aa_get_newest_label - find the newest version of @l + * @l: the label to check for newer versions of + * + * Returns: refcounted newest version of @l taking into account + * replacement, renames and removals + * return @l. + */ +static inline struct aa_label *aa_get_newest_label(struct aa_label *l) +{ + if (!l) + return NULL; + + if (label_invalid(l)) + return aa_get_label_rcu(&l->replacedby->label); + + return aa_get_label(l); +} + +static inline void aa_put_label(struct aa_label *l) +{ + if (l) + kref_put(&l->count, aa_label_kref); +} + + +struct aa_replacedby *aa_alloc_replacedby(struct aa_label *l); +void aa_free_replacedby_kref(struct kref *kref); + +static inline struct aa_replacedby *aa_get_replacedby(struct aa_replacedby *r) +{ + if (r) + kref_get(&(r->count)); + + return r; +} + +static inline void aa_put_replacedby(struct aa_replacedby *r) +{ + if (r) + kref_put(&r->count, aa_free_replacedby_kref); +} + +void __aa_update_replacedby(struct aa_label *orig, struct aa_label *new); + +#endif /* __AA_LABEL_H */ --- linux-3.11.0.orig/security/apparmor/include/domain.h +++ linux-3.11.0/security/apparmor/include/domain.h @@ -23,6 +23,8 @@ char **table; }; +struct aa_profile *x_table_lookup(struct aa_profile *profile, u32 xindex); + int apparmor_bprm_set_creds(struct linux_binprm *bprm); int apparmor_bprm_secureexec(struct linux_binprm *bprm); void apparmor_bprm_committing_creds(struct linux_binprm *bprm); --- linux-3.11.0.orig/security/apparmor/include/policy.h +++ linux-3.11.0/security/apparmor/include/policy.h @@ -27,10 +27,13 @@ #include "capability.h" #include "domain.h" #include "file.h" +#include "label.h" +#include "net.h" #include "resource.h" -extern const char *const profile_mode_names[]; -#define APPARMOR_NAMES_MAX_INDEX 3 +extern const char *aa_hidden_ns_name; +extern const char *const aa_profile_mode_names[]; +#define APPARMOR_MODE_NAMES_MAX_INDEX 4 #define PROFILE_MODE(_profile, _mode) \ ((aa_g_profile_mode == (_mode)) || \ @@ -40,7 +43,11 @@ #define KILL_MODE(_profile) PROFILE_MODE((_profile), APPARMOR_KILL) -#define PROFILE_IS_HAT(_profile) ((_profile)->flags & PFLAG_HAT) +#define PROFILE_IS_HAT(_profile) ((_profile)->label.flags & FLAG_HAT) + +#define PROFILE_INVALID(_profile) ((_profile)->label.flags & FLAG_INVALID) + +#define on_list_rcu(X) (!list_empty(X) && (X)->prev != LIST_POISON2) /* * FIXME: currently need a clean way to replace and remove profiles as a @@ -52,35 +59,21 @@ APPARMOR_ENFORCE, /* enforce access rules */ APPARMOR_COMPLAIN, /* allow and log access violations */ APPARMOR_KILL, /* kill task on access violation */ + APPARMOR_UNCONFINED, /* profile set to unconfined */ }; -enum profile_flags { - PFLAG_HAT = 1, /* profile is a hat */ - PFLAG_UNCONFINED = 2, /* profile is an unconfined profile */ - PFLAG_NULL = 4, /* profile is null learning profile */ - PFLAG_IX_ON_NAME_ERROR = 8, /* fallback to ix on name lookup fail */ - PFLAG_IMMUTABLE = 0x10, /* don't allow changes/replacement */ - PFLAG_USER_DEFINED = 0x20, /* user based profile - lower privs */ - PFLAG_NO_LIST_REF = 0x40, /* list doesn't keep profile ref */ - PFLAG_OLD_NULL_TRANS = 0x100, /* use // as the null transition */ - - /* These flags must correspond with PATH_flags */ - PFLAG_MEDIATE_DELETED = 0x10000, /* mediate instead delegate deleted */ -}; struct aa_profile; /* struct aa_policy - common part of both namespaces and profiles * @name: name of the object - * @hname - The hierarchical name - * @count: reference count of the obj + * @hname - The hierarchical name, NOTE: is .name of struct counted_str * @list: list policy object is on * @profiles: head of the profiles list contained in the object */ struct aa_policy { - char *name; - char *hname; - struct kref count; + const char *name; + __counted char *hname; struct list_head list; struct list_head profiles; }; @@ -106,6 +99,8 @@ * @unconfined: special unconfined profile for the namespace * @sub_ns: list of namespaces under the current namespace. * @uniq_null: uniq value used for null learning profiles + * @uniq_id: a unique id count for the profiles in the namespace + * @dents: dentries for the namespaces file entries in apparmorfs * * An aa_namespace defines the set profiles that are searched to determine * which profile to attach to a task. Profiles can not be shared between @@ -124,11 +119,16 @@ struct aa_namespace { struct aa_policy base; struct aa_namespace *parent; - rwlock_t lock; + struct mutex lock; struct aa_ns_acct acct; struct aa_profile *unconfined; struct list_head sub_ns; atomic_t uniq_null; + long uniq_id; + int level; + struct aa_labelset labels; + + struct dentry *dents[AAFS_NS_SIZEOF]; }; /* struct aa_policydb - match engine for a policy @@ -144,29 +144,32 @@ /* struct aa_profile - basic confinement data * @base - base components of the profile (name, refcount, lists, lock ...) + * @label - label this profile is an extension of * @parent: parent of profile * @ns: namespace the profile is in - * @replacedby: is set to the profile that replaced this profile * @rename: optional profile name that this profile renamed + * @attach: human readable attachment string * @xmatch: optional extended matching for unconfined executables names * @xmatch_len: xmatch prefix len, used to determine xmatch priority * @audit: the auditing mode of the profile * @mode: the enforcement mode of the profile - * @flags: flags controlling profile behavior * @path_flags: flags controlling path generation behavior * @size: the memory consumed by this profiles rules * @policy: general match rules governing policy * @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 * + * @dents: dentries for the profiles file entries in apparmorfs + * @dirname: name of the profile dir in apparmorfs + * * The AppArmor profile contains the basic confinement data. Each profile * has a name, and exists in a namespace. The @name and @exec_match are * used to determine profile attachment against unconfined tasks. All other * attachments are determined by profile X transition rules. * - * The @replacedby field is write protected by the profile lock. Reads - * are assumed to be atomic, and are done without locking. + * The @replacedby struct is write protected by the profile lock. * * Profiles have a hierarchy where hats and children profiles keep * a reference to their parent. @@ -177,24 +180,29 @@ */ struct aa_profile { struct aa_policy base; - struct aa_profile *parent; + struct aa_label label; + struct aa_profile __rcu *parent; struct aa_namespace *ns; - struct aa_profile *replacedby; const char *rename; + const char *attach; struct aa_dfa *xmatch; int xmatch_len; enum audit_mode audit; - enum profile_mode mode; - u32 flags; + long mode; u32 path_flags; int size; struct aa_policydb policy; struct aa_file_rules file; struct aa_caps caps; + struct aa_net net; struct aa_rlimit rlimits; + + unsigned char *hash; + char *dirname; + struct dentry *dents[AAFS_PROF_SIZEOF]; }; extern struct aa_namespace *root_ns; @@ -204,6 +212,7 @@ bool aa_ns_visible(struct aa_namespace *curr, struct aa_namespace *view); const char *aa_ns_name(struct aa_namespace *parent, struct aa_namespace *child); +void aa_free_namespace(struct aa_namespace *ns); int aa_alloc_root_ns(void); void aa_free_root_ns(void); void aa_free_namespace_kref(struct kref *kref); @@ -211,46 +220,18 @@ struct aa_namespace *aa_find_namespace(struct aa_namespace *root, const char *name); -static inline struct aa_policy *aa_get_common(struct aa_policy *c) -{ - if (c) - kref_get(&c->count); - - return c; -} - -/** - * aa_get_namespace - increment references count on @ns - * @ns: namespace to increment reference count of (MAYBE NULL) - * - * Returns: pointer to @ns, if @ns is NULL returns NULL - * Requires: @ns must be held with valid refcount when called - */ -static inline struct aa_namespace *aa_get_namespace(struct aa_namespace *ns) -{ - if (ns) - kref_get(&(ns->base.count)); - - return ns; -} - -/** - * aa_put_namespace - decrement refcount on @ns - * @ns: namespace to put reference of - * - * Decrement reference count of @ns and if no longer in use free it - */ -static inline void aa_put_namespace(struct aa_namespace *ns) -{ - if (ns) - kref_put(&ns->base.count, aa_free_namespace_kref); -} +struct aa_label *aa_setup_default_label(void); struct aa_profile *aa_alloc_profile(const char *name); struct aa_profile *aa_new_null_profile(struct aa_profile *parent, int hat); +void aa_free_profile(struct aa_profile *profile); void aa_free_profile_kref(struct kref *kref); struct aa_profile *aa_find_child(struct aa_profile *parent, const char *name); +struct aa_profile *aa_lookupn_profile(struct aa_namespace *ns, + const char *hname, size_t n); struct aa_profile *aa_lookup_profile(struct aa_namespace *ns, const char *name); +struct aa_profile *aa_fqlookupn_profile(struct aa_namespace *ns, char *fqname, + int n); struct aa_profile *aa_match_profile(struct aa_namespace *ns, const char *name); ssize_t aa_replace_profiles(void *udata, size_t size, bool noreplace); @@ -259,25 +240,25 @@ #define PROF_ADD 1 #define PROF_REPLACE 0 -#define unconfined(X) ((X)->flags & PFLAG_UNCONFINED) +#define profile_unconfined(X) ((X)->mode == APPARMOR_UNCONFINED) /** - * aa_newest_version - find the newest version of @profile - * @profile: the profile to check for newer versions of (NOT NULL) + * aa_get_newest_profile - simple wrapper fn to wrap the label version + * @p: profile (NOT NULL) * - * Returns: newest version of @profile, if @profile is the newest version - * return @profile. + * Returns refcount to newest version of the profile (maybe @p) * - * NOTE: the profile returned is not refcounted, The refcount on @profile - * must be held until the caller decides what to do with the returned newest - * version. + * Requires: @p must be held with a valid refcount */ -static inline struct aa_profile *aa_newest_version(struct aa_profile *profile) +static inline struct aa_profile *aa_get_newest_profile(struct aa_profile *p) { - while (profile->replacedby) - profile = profile->replacedby; + return labels_profile(aa_get_newest_label(&p->label)); +} - return profile; +static inline struct aa_profile *aa_deref_parent(struct aa_profile *p) +{ + return rcu_dereference_protected(p->parent, + mutex_is_locked(&p->ns->lock)); } /** @@ -290,19 +271,81 @@ static inline struct aa_profile *aa_get_profile(struct aa_profile *p) { if (p) - kref_get(&(p->base.count)); + kref_get(&(p->label.count)); return p; } /** + * aa_get_profile_not0 - increment refcount on profile @p found via lookup + * @p: profile (MAYBE NULL) + * + * Returns: pointer to @p if @p is NULL will return NULL + * Requires: @p must be held with valid refcount when called + */ +static inline struct aa_profile *aa_get_profile_not0(struct aa_profile *p) +{ + if (p && kref_get_not0(&p->label.count)) + return p; + + return NULL; +} + +/** + * aa_get_profile_rcu - increment a refcount profile that can be replaced + * @p: pointer to profile that can be replaced (NOT NULL) + * + * Returns: pointer to a refcounted profile. + * else NULL if no profile + */ +static inline struct aa_profile *aa_get_profile_rcu(struct aa_profile __rcu **p) +{ + struct aa_profile *c; + + rcu_read_lock(); + do { + c = rcu_dereference(*p); + } while (c && !kref_get_not0(&c->label.count)); + rcu_read_unlock(); + + return c; +} + +/** * aa_put_profile - decrement refcount on profile @p * @p: profile (MAYBE NULL) */ static inline void aa_put_profile(struct aa_profile *p) { if (p) - kref_put(&p->base.count, aa_free_profile_kref); + kref_put(&p->label.count, aa_label_kref); +} + +/** + * aa_get_namespace - increment references count on @ns + * @ns: namespace to increment reference count of (MAYBE NULL) + * + * Returns: pointer to @ns, if @ns is NULL returns NULL + * Requires: @ns must be held with valid refcount when called + */ +static inline struct aa_namespace *aa_get_namespace(struct aa_namespace *ns) +{ + if (ns) + aa_get_profile(ns->unconfined); + + return ns; +} + +/** + * aa_put_namespace - decrement refcount on @ns + * @ns: namespace to put reference of + * + * Decrement reference count of @ns and if no longer in use free it + */ +static inline void aa_put_namespace(struct aa_namespace *ns) +{ + if (ns) + aa_put_profile(ns->unconfined); } static inline int AUDIT_MODE(struct aa_profile *profile) --- linux-3.11.0.orig/security/apparmor/include/apparmor.h +++ linux-3.11.0/security/apparmor/include/apparmor.h @@ -4,7 +4,7 @@ * This file contains AppArmor basic global and lib definitions * * Copyright (C) 1998-2008 Novell/SUSE - * Copyright 2009-2010 Canonical Ltd. + * Copyright 2009-2013 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 @@ -30,8 +30,9 @@ #define AA_CLASS_NET 4 #define AA_CLASS_RLIMITS 5 #define AA_CLASS_DOMAIN 6 +#define AA_CLASS_MOUNT 7 -#define AA_CLASS_LAST AA_CLASS_DOMAIN +#define AA_CLASS_LAST AA_CLASS_MOUNT /* Control parameters settable through module/boot flags */ extern enum audit_mode aa_g_audit; @@ -41,6 +42,7 @@ extern bool aa_g_logsyscall; extern bool aa_g_paranoid_load; extern unsigned int aa_g_path_max; +extern bool aa_g_unconfined_init; /* * DEBUG remains global (no per profile flag) since it is mostly used in sysctl @@ -53,6 +55,12 @@ printk(KERN_DEBUG "AppArmor: " fmt, ##args); \ } while (0) +#define AA_WARN(X) WARN((X), "APPARMOR WARN %s: %s\n", __FUNCTION__, #X) + +#define AA_BUG(X, args...) AA_BUG_FMT((X), "" args ) +#define AA_BUG_FMT(X, fmt, args...) \ + WARN((X), "AppArmor WARN %s: (" #X "): " fmt, __FUNCTION__ , ##args ) + #define AA_ERROR(fmt, args...) \ do { \ if (printk_ratelimit()) \ @@ -78,6 +86,12 @@ return __aa_kvmalloc(size, __GFP_ZERO); } +/* returns 0 if kref not incremented */ +static inline int kref_get_not0(struct kref *kref) +{ + return atomic_inc_not_zero(&kref->refcount); +} + /** * aa_strneq - compare null terminated @str to a non null terminated substring * @str: a null terminated string @@ -112,4 +126,34 @@ return !(inode->i_sb->s_flags & MS_NOUSER); } + +struct counted_str { + struct kref count; + char name[]; +}; + +#define str_to_counted(str) \ + ((struct counted_str *)(str - offsetof(struct counted_str,name))) + +#define __counted /* atm just a notation */ + +void aa_str_kref(struct kref *kref); +char *aa_str_alloc(int size, gfp_t gfp); + + +static inline __counted char *aa_get_str(__counted char *str) +{ + if (str) + kref_get(&(str_to_counted(str)->count)); + + return str; +} + +static inline void aa_put_str(__counted char *str) +{ + if (str) + kref_put(&str_to_counted(str)->count, aa_str_kref); +} + + #endif /* __APPARMOR_H */ --- linux-3.11.0.orig/arch/um/include/shared/os.h +++ linux-3.11.0/arch/um/include/shared/os.h @@ -200,6 +200,7 @@ extern int os_drop_memory(void *addr, int length); extern int can_drop_memory(void); extern void os_flush_stdout(void); +extern int os_mincore(void *addr, unsigned long len); /* execvp.c */ extern int execvp_noalloc(char *buf, const char *file, char *const argv[]); --- linux-3.11.0.orig/arch/um/os-Linux/process.c +++ linux-3.11.0/arch/um/os-Linux/process.c @@ -4,6 +4,7 @@ */ #include +#include #include #include #include @@ -232,6 +233,57 @@ return ok; } +static int os_page_mincore(void *addr) +{ + char vec[2]; + int ret; + + ret = mincore(addr, UM_KERN_PAGE_SIZE, vec); + if (ret < 0) { + if (errno == ENOMEM || errno == EINVAL) + return 0; + else + return -errno; + } + + return vec[0] & 1; +} + +int os_mincore(void *addr, unsigned long len) +{ + char *vec; + int ret, i; + + if (len <= UM_KERN_PAGE_SIZE) + return os_page_mincore(addr); + + vec = calloc(1, (len + UM_KERN_PAGE_SIZE - 1) / UM_KERN_PAGE_SIZE); + if (!vec) + return -ENOMEM; + + ret = mincore(addr, UM_KERN_PAGE_SIZE, vec); + if (ret < 0) { + if (errno == ENOMEM || errno == EINVAL) + ret = 0; + else + ret = -errno; + + goto out; + } + + for (i = 0; i < ((len + UM_KERN_PAGE_SIZE - 1) / UM_KERN_PAGE_SIZE); i++) { + if (!(vec[i] & 1)) { + ret = 0; + goto out; + } + } + + ret = 1; +out: + free(vec); + return ret; +} + void init_new_thread_signals(void) { set_handler(SIGSEGV); --- linux-3.11.0.orig/arch/um/kernel/maccess.c +++ linux-3.11.0/arch/um/kernel/maccess.c @@ -0,0 +1,24 @@ +/* + * Copyright (C) 2013 Richard Weinberger + * + * This program is free software; you can 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 + +long probe_kernel_read(void *dst, const void *src, size_t size) +{ + void *psrc = (void *)rounddown((unsigned long)src, PAGE_SIZE); + + if ((unsigned long)src < PAGE_SIZE || size <= 0) + return -EFAULT; + + if (os_mincore(psrc, size + src - psrc) <= 0) + return -EFAULT; + + return __probe_kernel_read(dst, src, size); +} --- linux-3.11.0.orig/arch/um/kernel/Makefile +++ linux-3.11.0/arch/um/kernel/Makefile @@ -13,7 +13,7 @@ obj-y = config.o exec.o exitcode.o irq.o ksyms.o mem.o \ physmem.o process.o ptrace.o reboot.o sigio.o \ signal.o smp.o syscall.o sysrq.o time.o tlb.o trap.o \ - um_arch.o umid.o skas/ + um_arch.o umid.o maccess.o skas/ obj-$(CONFIG_BLK_DEV_INITRD) += initrd.o obj-$(CONFIG_GPROF) += gprof_syms.o --- linux-3.11.0.orig/arch/um/kernel/exitcode.c +++ linux-3.11.0/arch/um/kernel/exitcode.c @@ -40,9 +40,11 @@ const char __user *buffer, size_t count, loff_t *pos) { char *end, buf[sizeof("nnnnn\0")]; + size_t size; int tmp; - if (copy_from_user(buf, buffer, count)) + size = min(count, sizeof(buf)); + if (copy_from_user(buf, buffer, size)) return -EFAULT; tmp = simple_strtol(buf, &end, 0); --- linux-3.11.0.orig/arch/s390/include/asm/jump_label.h +++ linux-3.11.0/arch/s390/include/asm/jump_label.h @@ -15,7 +15,7 @@ static __always_inline bool arch_static_branch(struct static_key *key) { - asm goto("0: brcl 0,0\n" + asm_volatile_goto("0: brcl 0,0\n" ".pushsection __jump_table, \"aw\"\n" ASM_ALIGN "\n" ASM_PTR " 0b, %l[label], %0\n" --- linux-3.11.0.orig/arch/s390/crypto/aes_s390.c +++ linux-3.11.0/arch/s390/crypto/aes_s390.c @@ -35,7 +35,6 @@ static char keylen_flag; struct s390_aes_ctx { - u8 iv[AES_BLOCK_SIZE]; u8 key[AES_MAX_KEY_SIZE]; long enc; long dec; @@ -441,30 +440,36 @@ return aes_set_key(tfm, in_key, key_len); } -static int cbc_aes_crypt(struct blkcipher_desc *desc, long func, void *param, +static int cbc_aes_crypt(struct blkcipher_desc *desc, long func, struct blkcipher_walk *walk) { + struct s390_aes_ctx *sctx = crypto_blkcipher_ctx(desc->tfm); int ret = blkcipher_walk_virt(desc, walk); unsigned int nbytes = walk->nbytes; + struct { + u8 iv[AES_BLOCK_SIZE]; + u8 key[AES_MAX_KEY_SIZE]; + } param; if (!nbytes) goto out; - memcpy(param, walk->iv, AES_BLOCK_SIZE); + memcpy(param.iv, walk->iv, AES_BLOCK_SIZE); + memcpy(param.key, sctx->key, sctx->key_len); do { /* only use complete blocks */ unsigned int n = nbytes & ~(AES_BLOCK_SIZE - 1); u8 *out = walk->dst.virt.addr; u8 *in = walk->src.virt.addr; - ret = crypt_s390_kmc(func, param, out, in, n); + ret = crypt_s390_kmc(func, ¶m, out, in, n); if (ret < 0 || ret != n) return -EIO; nbytes &= AES_BLOCK_SIZE - 1; ret = blkcipher_walk_done(desc, walk, nbytes); } while ((nbytes = walk->nbytes)); - memcpy(walk->iv, param, AES_BLOCK_SIZE); + memcpy(walk->iv, param.iv, AES_BLOCK_SIZE); out: return ret; @@ -481,7 +486,7 @@ return fallback_blk_enc(desc, dst, src, nbytes); blkcipher_walk_init(&walk, dst, src, nbytes); - return cbc_aes_crypt(desc, sctx->enc, sctx->iv, &walk); + return cbc_aes_crypt(desc, sctx->enc, &walk); } static int cbc_aes_decrypt(struct blkcipher_desc *desc, @@ -495,7 +500,7 @@ return fallback_blk_dec(desc, dst, src, nbytes); blkcipher_walk_init(&walk, dst, src, nbytes); - return cbc_aes_crypt(desc, sctx->dec, sctx->iv, &walk); + return cbc_aes_crypt(desc, sctx->dec, &walk); } static struct crypto_alg cbc_aes_alg = { --- linux-3.11.0.orig/arch/s390/net/bpf_jit_comp.c +++ linux-3.11.0/arch/s390/net/bpf_jit_comp.c @@ -805,7 +805,7 @@ return NULL; memset(header, 0, sz); header->pages = sz / PAGE_SIZE; - hole = sz - bpfsize + sizeof(*header); + hole = sz - (bpfsize + sizeof(*header)); /* Insert random number of illegal instructions before BPF code * and make sure the first instruction starts at an even address. */ --- linux-3.11.0.orig/arch/s390/kernel/entry.S +++ linux-3.11.0/arch/s390/kernel/entry.S @@ -265,6 +265,7 @@ tm __TI_flags+3(%r12),_TIF_SYSCALL jno sysc_return lm %r2,%r7,__PT_R2(%r11) # load svc arguments + l %r10,__TI_sysc_table(%r12) # 31 bit system call table xr %r8,%r8 # svc 0 returns -ENOSYS clc __PT_INT_CODE+2(2,%r11),BASED(.Lnr_syscalls+2) jnl sysc_nr_ok # invalid svc number -> do svc 0 --- linux-3.11.0.orig/arch/s390/kernel/entry64.S +++ linux-3.11.0/arch/s390/kernel/entry64.S @@ -296,6 +296,7 @@ tm __TI_flags+7(%r12),_TIF_SYSCALL jno sysc_return lmg %r2,%r7,__PT_R2(%r11) # load svc arguments + lg %r10,__TI_sysc_table(%r12) # address of system call table lghi %r8,0 # svc 0 returns -ENOSYS llgh %r1,__PT_INT_CODE+2(%r11) # load new svc number cghi %r1,NR_syscalls --- linux-3.11.0.orig/arch/avr32/kernel/time.c +++ linux-3.11.0/arch/avr32/kernel/time.c @@ -98,7 +98,14 @@ case CLOCK_EVT_MODE_SHUTDOWN: sysreg_write(COMPARE, 0); pr_debug("%s: stop\n", evdev->name); - cpu_idle_poll_ctrl(false); + if (evdev->mode == CLOCK_EVT_MODE_ONESHOT || + evdev->mode == CLOCK_EVT_MODE_RESUME) { + /* + * Only disable idle poll if we have forced that + * in a previous call. + */ + cpu_idle_poll_ctrl(false); + } break; default: BUG(); --- linux-3.11.0.orig/arch/x86/Kconfig +++ linux-3.11.0/arch/x86/Kconfig @@ -2348,6 +2348,8 @@ source "drivers/Kconfig" +source "ubuntu/Kconfig" + source "drivers/firmware/Kconfig" source "fs/Kconfig" --- linux-3.11.0.orig/arch/x86/include/asm/xor_avx.h +++ linux-3.11.0/arch/x86/include/asm/xor_avx.h @@ -167,12 +167,12 @@ #define AVX_XOR_SPEED \ do { \ - if (cpu_has_avx) \ + if (cpu_has_avx && cpu_has_osxsave) \ xor_speed(&xor_block_avx); \ } while (0) #define AVX_SELECT(FASTEST) \ - (cpu_has_avx ? &xor_block_avx : FASTEST) + (cpu_has_avx && cpu_has_osxsave ? &xor_block_avx : FASTEST) #else --- linux-3.11.0.orig/arch/x86/include/asm/mmu_context.h +++ linux-3.11.0/arch/x86/include/asm/mmu_context.h @@ -45,22 +45,28 @@ /* Re-load page tables */ load_cr3(next->pgd); - /* stop flush ipis for the previous mm */ + /* Stop flush ipis for the previous mm */ cpumask_clear_cpu(cpu, mm_cpumask(prev)); - /* - * load the LDT, if the LDT is different: - */ + /* Load the LDT, if the LDT is different: */ if (unlikely(prev->context.ldt != next->context.ldt)) load_LDT_nolock(&next->context); } #ifdef CONFIG_SMP - else { + else { this_cpu_write(cpu_tlbstate.state, TLBSTATE_OK); BUG_ON(this_cpu_read(cpu_tlbstate.active_mm) != next); - if (!cpumask_test_and_set_cpu(cpu, mm_cpumask(next))) { - /* We were in lazy tlb mode and leave_mm disabled + if (!cpumask_test_cpu(cpu, mm_cpumask(next))) { + /* + * On established mms, the mm_cpumask is only changed + * from irq context, from ptep_clear_flush() while in + * lazy tlb mode, and here. Irqs are blocked during + * schedule, protecting us from simultaneous changes. + */ + cpumask_set_cpu(cpu, mm_cpumask(next)); + /* + * We were in lazy tlb mode and leave_mm disabled * tlb flush IPI delivery. We must reload CR3 * to make sure to use no freed page tables. */ --- linux-3.11.0.orig/arch/x86/include/asm/dma-mapping.h +++ linux-3.11.0/arch/x86/include/asm/dma-mapping.h @@ -163,8 +163,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-3.11.0.orig/arch/x86/include/asm/cpufeature.h +++ linux-3.11.0/arch/x86/include/asm/cpufeature.h @@ -373,7 +373,7 @@ * Catch too early usage of this before alternatives * have run. */ - asm goto("1: jmp %l[t_warn]\n" + asm_volatile_goto("1: jmp %l[t_warn]\n" "2:\n" ".section .altinstructions,\"a\"\n" " .long 1b - .\n" @@ -386,7 +386,7 @@ : : "i" (X86_FEATURE_ALWAYS) : : t_warn); #endif - asm goto("1: jmp %l[t_no]\n" + asm_volatile_goto("1: jmp %l[t_no]\n" "2:\n" ".section .altinstructions,\"a\"\n" " .long 1b - .\n" @@ -448,7 +448,7 @@ * have. Thus, we force the jump to the widest, 4-byte, signed relative * offset even though the last would often fit in less bytes. */ - asm goto("1: .byte 0xe9\n .long %l[t_dynamic] - 2f\n" + asm_volatile_goto("1: .byte 0xe9\n .long %l[t_dynamic] - 2f\n" "2:\n" ".section .altinstructions,\"a\"\n" " .long 1b - .\n" /* src offset */ --- linux-3.11.0.orig/arch/x86/include/asm/mce.h +++ linux-3.11.0/arch/x86/include/asm/mce.h @@ -32,11 +32,20 @@ #define MCI_STATUS_PCC (1ULL<<57) /* processor context corrupt */ #define MCI_STATUS_S (1ULL<<56) /* Signaled machine check */ #define MCI_STATUS_AR (1ULL<<55) /* Action required */ -#define MCACOD 0xffff /* MCA Error Code */ + +/* + * Note that the full MCACOD field of IA32_MCi_STATUS MSR is + * bits 15:0. But bit 12 is the 'F' bit, defined for corrected + * errors to indicate that errors are being filtered by hardware. + * We should mask out bit 12 when looking for specific signatures + * of uncorrected errors - so the F bit is deliberately skipped + * in this #define. + */ +#define MCACOD 0xefff /* MCA Error Code */ /* Architecturally defined codes from SDM Vol. 3B Chapter 15 */ #define MCACOD_SCRUB 0x00C0 /* 0xC0-0xCF Memory Scrubbing */ -#define MCACOD_SCRUBMSK 0xfff0 +#define MCACOD_SCRUBMSK 0xeff0 /* Skip bit 12 ('F' bit) */ #define MCACOD_L3WB 0x017A /* L3 Explicit Writeback */ #define MCACOD_DATA 0x0134 /* Data Load */ #define MCACOD_INSTR 0x0150 /* Instruction Fetch */ --- linux-3.11.0.orig/arch/x86/include/asm/e820.h +++ linux-3.11.0/arch/x86/include/asm/e820.h @@ -29,7 +29,7 @@ extern int e820_search_gap(unsigned long *gapstart, unsigned long *gapsize, unsigned long start_addr, unsigned long long end_addr); struct setup_data; -extern void parse_e820_ext(struct setup_data *data); +extern void parse_e820_ext(u64 phys_addr, u32 data_len); #if defined(CONFIG_X86_64) || \ (defined(CONFIG_X86_32) && defined(CONFIG_HIBERNATION)) --- linux-3.11.0.orig/arch/x86/include/asm/jump_label.h +++ linux-3.11.0/arch/x86/include/asm/jump_label.h @@ -13,7 +13,7 @@ static __always_inline bool arch_static_branch(struct static_key *key) { - asm goto("1:" + asm_volatile_goto("1:" STATIC_KEY_INITIAL_NOP ".pushsection __jump_table, \"aw\" \n\t" _ASM_ALIGN "\n\t" --- linux-3.11.0.orig/arch/x86/include/asm/checksum_32.h +++ linux-3.11.0/arch/x86/include/asm/checksum_32.h @@ -49,9 +49,15 @@ int len, __wsum sum, int *err_ptr) { + __wsum ret; + might_sleep(); - return csum_partial_copy_generic((__force void *)src, dst, - len, sum, err_ptr, NULL); + stac(); + ret = csum_partial_copy_generic((__force void *)src, dst, + len, sum, err_ptr, NULL); + clac(); + + return ret; } /* @@ -176,10 +182,16 @@ int len, __wsum sum, int *err_ptr) { + __wsum ret; + might_sleep(); - if (access_ok(VERIFY_WRITE, dst, len)) - return csum_partial_copy_generic(src, (__force void *)dst, - len, sum, NULL, err_ptr); + if (access_ok(VERIFY_WRITE, dst, len)) { + stac(); + ret = csum_partial_copy_generic(src, (__force void *)dst, + len, sum, NULL, err_ptr); + clac(); + return ret; + } if (len) *err_ptr = -EFAULT; --- linux-3.11.0.orig/arch/x86/platform/efi/efi.c +++ linux-3.11.0/arch/x86/platform/efi/efi.c @@ -912,10 +912,13 @@ for (p = memmap.map; p < memmap.map_end; p += memmap.desc_size) { md = p; - if (!(md->attribute & EFI_MEMORY_RUNTIME) && - md->type != EFI_BOOT_SERVICES_CODE && - md->type != EFI_BOOT_SERVICES_DATA) - continue; + if (!(md->attribute & EFI_MEMORY_RUNTIME)) { +#ifdef CONFIG_X86_64 + if (md->type != EFI_BOOT_SERVICES_CODE && + md->type != EFI_BOOT_SERVICES_DATA) +#endif + continue; + } size = md->num_pages << EFI_PAGE_SHIFT; end = md->phys_addr + size; --- linux-3.11.0.orig/arch/x86/crypto/Makefile +++ linux-3.11.0/arch/x86/crypto/Makefile @@ -27,6 +27,7 @@ obj-$(CONFIG_CRYPTO_CRC32_PCLMUL) += crc32-pclmul.o obj-$(CONFIG_CRYPTO_SHA256_SSSE3) += sha256-ssse3.o obj-$(CONFIG_CRYPTO_SHA512_SSSE3) += sha512-ssse3.o +obj-$(CONFIG_CRYPTO_CRCT10DIF_PCLMUL) += crct10dif-pclmul.o # These modules require assembler to support AVX. ifeq ($(avx_supported),yes) @@ -81,3 +82,4 @@ crc32-pclmul-y := crc32-pclmul_asm.o crc32-pclmul_glue.o sha256-ssse3-y := sha256-ssse3-asm.o sha256-avx-asm.o sha256-avx2-asm.o sha256_ssse3_glue.o sha512-ssse3-y := sha512-ssse3-asm.o sha512-avx-asm.o sha512-avx2-asm.o sha512_ssse3_glue.o +crct10dif-pclmul-y := crct10dif-pcl-asm_64.o crct10dif-pclmul_glue.o --- linux-3.11.0.orig/arch/x86/crypto/crct10dif-pclmul_glue.c +++ linux-3.11.0/arch/x86/crypto/crct10dif-pclmul_glue.c @@ -0,0 +1,151 @@ +/* + * Cryptographic API. + * + * T10 Data Integrity Field CRC16 Crypto Transform using PCLMULQDQ Instructions + * + * Copyright (C) 2013 Intel Corporation + * Author: Tim Chen + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by the Free + * Software Foundation; either version 2 of the License, or (at your option) + * any later version. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS + * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN + * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + * + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +asmlinkage __u16 crc_t10dif_pcl(__u16 crc, const unsigned char *buf, + size_t len); + +struct chksum_desc_ctx { + __u16 crc; +}; + +/* + * Steps through buffer one byte at at time, calculates reflected + * crc using table. + */ + +static int chksum_init(struct shash_desc *desc) +{ + struct chksum_desc_ctx *ctx = shash_desc_ctx(desc); + + ctx->crc = 0; + + return 0; +} + +static int chksum_update(struct shash_desc *desc, const u8 *data, + unsigned int length) +{ + struct chksum_desc_ctx *ctx = shash_desc_ctx(desc); + + if (irq_fpu_usable()) { + kernel_fpu_begin(); + ctx->crc = crc_t10dif_pcl(ctx->crc, data, length); + kernel_fpu_end(); + } else + ctx->crc = crc_t10dif_generic(ctx->crc, data, length); + return 0; +} + +static int chksum_final(struct shash_desc *desc, u8 *out) +{ + struct chksum_desc_ctx *ctx = shash_desc_ctx(desc); + + *(__u16 *)out = ctx->crc; + return 0; +} + +static int __chksum_finup(__u16 *crcp, const u8 *data, unsigned int len, + u8 *out) +{ + if (irq_fpu_usable()) { + kernel_fpu_begin(); + *(__u16 *)out = crc_t10dif_pcl(*crcp, data, len); + kernel_fpu_end(); + } else + *(__u16 *)out = crc_t10dif_generic(*crcp, data, len); + return 0; +} + +static int chksum_finup(struct shash_desc *desc, const u8 *data, + unsigned int len, u8 *out) +{ + struct chksum_desc_ctx *ctx = shash_desc_ctx(desc); + + return __chksum_finup(&ctx->crc, data, len, out); +} + +static int chksum_digest(struct shash_desc *desc, const u8 *data, + unsigned int length, u8 *out) +{ + struct chksum_desc_ctx *ctx = shash_desc_ctx(desc); + + return __chksum_finup(&ctx->crc, data, length, out); +} + +static struct shash_alg alg = { + .digestsize = CRC_T10DIF_DIGEST_SIZE, + .init = chksum_init, + .update = chksum_update, + .final = chksum_final, + .finup = chksum_finup, + .digest = chksum_digest, + .descsize = sizeof(struct chksum_desc_ctx), + .base = { + .cra_name = "crct10dif", + .cra_driver_name = "crct10dif-pclmul", + .cra_priority = 200, + .cra_blocksize = CRC_T10DIF_BLOCK_SIZE, + .cra_module = THIS_MODULE, + } +}; + +static const struct x86_cpu_id crct10dif_cpu_id[] = { + X86_FEATURE_MATCH(X86_FEATURE_PCLMULQDQ), + {} +}; +MODULE_DEVICE_TABLE(x86cpu, crct10dif_cpu_id); + +static int __init crct10dif_intel_mod_init(void) +{ + if (!x86_match_cpu(crct10dif_cpu_id)) + return -ENODEV; + + return crypto_register_shash(&alg); +} + +static void __exit crct10dif_intel_mod_fini(void) +{ + crypto_unregister_shash(&alg); +} + +module_init(crct10dif_intel_mod_init); +module_exit(crct10dif_intel_mod_fini); + +MODULE_AUTHOR("Tim Chen "); +MODULE_DESCRIPTION("T10 DIF CRC calculation accelerated with PCLMULQDQ."); +MODULE_LICENSE("GPL"); + +MODULE_ALIAS("crct10dif"); +MODULE_ALIAS("crct10dif-pclmul"); --- linux-3.11.0.orig/arch/x86/crypto/crct10dif-pcl-asm_64.S +++ linux-3.11.0/arch/x86/crypto/crct10dif-pcl-asm_64.S @@ -0,0 +1,643 @@ +######################################################################## +# Implement fast CRC-T10DIF computation with SSE and PCLMULQDQ instructions +# +# Copyright (c) 2013, Intel Corporation +# +# Authors: +# Erdinc Ozturk +# Vinodh Gopal +# James Guilford +# Tim Chen +# +# This software is available to you under a choice of one of two +# licenses. You may choose to be licensed under the terms of the GNU +# General Public License (GPL) Version 2, available from the file +# COPYING in the main directory of this source tree, or the +# OpenIB.org BSD license below: +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions are +# met: +# +# * Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# * Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the +# distribution. +# +# * Neither the name of the Intel Corporation nor the names of its +# contributors may be used to endorse or promote products derived from +# this software without specific prior written permission. +# +# +# THIS SOFTWARE IS PROVIDED BY INTEL CORPORATION ""AS IS"" AND ANY +# EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL INTEL CORPORATION OR +# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +# PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +# LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +######################################################################## +# Function API: +# UINT16 crc_t10dif_pcl( +# UINT16 init_crc, //initial CRC value, 16 bits +# const unsigned char *buf, //buffer pointer to calculate CRC on +# UINT64 len //buffer length in bytes (64-bit data) +# ); +# +# Reference paper titled "Fast CRC Computation for Generic +# Polynomials Using PCLMULQDQ Instruction" +# URL: http://www.intel.com/content/dam/www/public/us/en/documents +# /white-papers/fast-crc-computation-generic-polynomials-pclmulqdq-paper.pdf +# +# + +#include + +.text + +#define arg1 %rdi +#define arg2 %rsi +#define arg3 %rdx + +#define arg1_low32 %edi + +ENTRY(crc_t10dif_pcl) +.align 16 + + # adjust the 16-bit initial_crc value, scale it to 32 bits + shl $16, arg1_low32 + + # Allocate Stack Space + mov %rsp, %rcx + sub $16*2, %rsp + # align stack to 16 byte boundary + and $~(0x10 - 1), %rsp + + # check if smaller than 256 + cmp $256, arg3 + + # for sizes less than 128, we can't fold 64B at a time... + jl _less_than_128 + + + # load the initial crc value + movd arg1_low32, %xmm10 # initial crc + + # crc value does not need to be byte-reflected, but it needs + # to be moved to the high part of the register. + # because data will be byte-reflected and will align with + # initial crc at correct place. + pslldq $12, %xmm10 + + movdqa SHUF_MASK(%rip), %xmm11 + # receive the initial 64B data, xor the initial crc value + movdqu 16*0(arg2), %xmm0 + movdqu 16*1(arg2), %xmm1 + movdqu 16*2(arg2), %xmm2 + movdqu 16*3(arg2), %xmm3 + movdqu 16*4(arg2), %xmm4 + movdqu 16*5(arg2), %xmm5 + movdqu 16*6(arg2), %xmm6 + movdqu 16*7(arg2), %xmm7 + + pshufb %xmm11, %xmm0 + # XOR the initial_crc value + pxor %xmm10, %xmm0 + pshufb %xmm11, %xmm1 + pshufb %xmm11, %xmm2 + pshufb %xmm11, %xmm3 + pshufb %xmm11, %xmm4 + pshufb %xmm11, %xmm5 + pshufb %xmm11, %xmm6 + pshufb %xmm11, %xmm7 + + movdqa rk3(%rip), %xmm10 #xmm10 has rk3 and rk4 + #imm value of pclmulqdq instruction + #will determine which constant to use + + ################################################################# + # we subtract 256 instead of 128 to save one instruction from the loop + sub $256, arg3 + + # at this section of the code, there is 64*x+y (0<=y<64) bytes of + # buffer. The _fold_64_B_loop will fold 64B at a time + # until we have 64+y Bytes of buffer + + + # fold 64B at a time. This section of the code folds 4 xmm + # registers in parallel +_fold_64_B_loop: + + # update the buffer pointer + add $128, arg2 # buf += 64# + + movdqu 16*0(arg2), %xmm9 + movdqu 16*1(arg2), %xmm12 + pshufb %xmm11, %xmm9 + pshufb %xmm11, %xmm12 + movdqa %xmm0, %xmm8 + movdqa %xmm1, %xmm13 + pclmulqdq $0x0 , %xmm10, %xmm0 + pclmulqdq $0x11, %xmm10, %xmm8 + pclmulqdq $0x0 , %xmm10, %xmm1 + pclmulqdq $0x11, %xmm10, %xmm13 + pxor %xmm9 , %xmm0 + xorps %xmm8 , %xmm0 + pxor %xmm12, %xmm1 + xorps %xmm13, %xmm1 + + movdqu 16*2(arg2), %xmm9 + movdqu 16*3(arg2), %xmm12 + pshufb %xmm11, %xmm9 + pshufb %xmm11, %xmm12 + movdqa %xmm2, %xmm8 + movdqa %xmm3, %xmm13 + pclmulqdq $0x0, %xmm10, %xmm2 + pclmulqdq $0x11, %xmm10, %xmm8 + pclmulqdq $0x0, %xmm10, %xmm3 + pclmulqdq $0x11, %xmm10, %xmm13 + pxor %xmm9 , %xmm2 + xorps %xmm8 , %xmm2 + pxor %xmm12, %xmm3 + xorps %xmm13, %xmm3 + + movdqu 16*4(arg2), %xmm9 + movdqu 16*5(arg2), %xmm12 + pshufb %xmm11, %xmm9 + pshufb %xmm11, %xmm12 + movdqa %xmm4, %xmm8 + movdqa %xmm5, %xmm13 + pclmulqdq $0x0, %xmm10, %xmm4 + pclmulqdq $0x11, %xmm10, %xmm8 + pclmulqdq $0x0, %xmm10, %xmm5 + pclmulqdq $0x11, %xmm10, %xmm13 + pxor %xmm9 , %xmm4 + xorps %xmm8 , %xmm4 + pxor %xmm12, %xmm5 + xorps %xmm13, %xmm5 + + movdqu 16*6(arg2), %xmm9 + movdqu 16*7(arg2), %xmm12 + pshufb %xmm11, %xmm9 + pshufb %xmm11, %xmm12 + movdqa %xmm6 , %xmm8 + movdqa %xmm7 , %xmm13 + pclmulqdq $0x0 , %xmm10, %xmm6 + pclmulqdq $0x11, %xmm10, %xmm8 + pclmulqdq $0x0 , %xmm10, %xmm7 + pclmulqdq $0x11, %xmm10, %xmm13 + pxor %xmm9 , %xmm6 + xorps %xmm8 , %xmm6 + pxor %xmm12, %xmm7 + xorps %xmm13, %xmm7 + + sub $128, arg3 + + # check if there is another 64B in the buffer to be able to fold + jge _fold_64_B_loop + ################################################################## + + + add $128, arg2 + # at this point, the buffer pointer is pointing at the last y Bytes + # of the buffer the 64B of folded data is in 4 of the xmm + # registers: xmm0, xmm1, xmm2, xmm3 + + + # fold the 8 xmm registers to 1 xmm register with different constants + + movdqa rk9(%rip), %xmm10 + movdqa %xmm0, %xmm8 + pclmulqdq $0x11, %xmm10, %xmm0 + pclmulqdq $0x0 , %xmm10, %xmm8 + pxor %xmm8, %xmm7 + xorps %xmm0, %xmm7 + + movdqa rk11(%rip), %xmm10 + movdqa %xmm1, %xmm8 + pclmulqdq $0x11, %xmm10, %xmm1 + pclmulqdq $0x0 , %xmm10, %xmm8 + pxor %xmm8, %xmm7 + xorps %xmm1, %xmm7 + + movdqa rk13(%rip), %xmm10 + movdqa %xmm2, %xmm8 + pclmulqdq $0x11, %xmm10, %xmm2 + pclmulqdq $0x0 , %xmm10, %xmm8 + pxor %xmm8, %xmm7 + pxor %xmm2, %xmm7 + + movdqa rk15(%rip), %xmm10 + movdqa %xmm3, %xmm8 + pclmulqdq $0x11, %xmm10, %xmm3 + pclmulqdq $0x0 , %xmm10, %xmm8 + pxor %xmm8, %xmm7 + xorps %xmm3, %xmm7 + + movdqa rk17(%rip), %xmm10 + movdqa %xmm4, %xmm8 + pclmulqdq $0x11, %xmm10, %xmm4 + pclmulqdq $0x0 , %xmm10, %xmm8 + pxor %xmm8, %xmm7 + pxor %xmm4, %xmm7 + + movdqa rk19(%rip), %xmm10 + movdqa %xmm5, %xmm8 + pclmulqdq $0x11, %xmm10, %xmm5 + pclmulqdq $0x0 , %xmm10, %xmm8 + pxor %xmm8, %xmm7 + xorps %xmm5, %xmm7 + + movdqa rk1(%rip), %xmm10 #xmm10 has rk1 and rk2 + #imm value of pclmulqdq instruction + #will determine which constant to use + movdqa %xmm6, %xmm8 + pclmulqdq $0x11, %xmm10, %xmm6 + pclmulqdq $0x0 , %xmm10, %xmm8 + pxor %xmm8, %xmm7 + pxor %xmm6, %xmm7 + + + # instead of 64, we add 48 to the loop counter to save 1 instruction + # from the loop instead of a cmp instruction, we use the negative + # flag with the jl instruction + add $128-16, arg3 + jl _final_reduction_for_128 + + # now we have 16+y bytes left to reduce. 16 Bytes is in register xmm7 + # and the rest is in memory. We can fold 16 bytes at a time if y>=16 + # continue folding 16B at a time + +_16B_reduction_loop: + movdqa %xmm7, %xmm8 + pclmulqdq $0x11, %xmm10, %xmm7 + pclmulqdq $0x0 , %xmm10, %xmm8 + pxor %xmm8, %xmm7 + movdqu (arg2), %xmm0 + pshufb %xmm11, %xmm0 + pxor %xmm0 , %xmm7 + add $16, arg2 + sub $16, arg3 + # instead of a cmp instruction, we utilize the flags with the + # jge instruction equivalent of: cmp arg3, 16-16 + # check if there is any more 16B in the buffer to be able to fold + jge _16B_reduction_loop + + #now we have 16+z bytes left to reduce, where 0<= z < 16. + #first, we reduce the data in the xmm7 register + + +_final_reduction_for_128: + # check if any more data to fold. If not, compute the CRC of + # the final 128 bits + add $16, arg3 + je _128_done + + # here we are getting data that is less than 16 bytes. + # since we know that there was data before the pointer, we can + # offset the input pointer before the actual point, to receive + # exactly 16 bytes. after that the registers need to be adjusted. +_get_last_two_xmms: + movdqa %xmm7, %xmm2 + + movdqu -16(arg2, arg3), %xmm1 + pshufb %xmm11, %xmm1 + + # get rid of the extra data that was loaded before + # load the shift constant + lea pshufb_shf_table+16(%rip), %rax + sub arg3, %rax + movdqu (%rax), %xmm0 + + # shift xmm2 to the left by arg3 bytes + pshufb %xmm0, %xmm2 + + # shift xmm7 to the right by 16-arg3 bytes + pxor mask1(%rip), %xmm0 + pshufb %xmm0, %xmm7 + pblendvb %xmm2, %xmm1 #xmm0 is implicit + + # fold 16 Bytes + movdqa %xmm1, %xmm2 + movdqa %xmm7, %xmm8 + pclmulqdq $0x11, %xmm10, %xmm7 + pclmulqdq $0x0 , %xmm10, %xmm8 + pxor %xmm8, %xmm7 + pxor %xmm2, %xmm7 + +_128_done: + # compute crc of a 128-bit value + movdqa rk5(%rip), %xmm10 # rk5 and rk6 in xmm10 + movdqa %xmm7, %xmm0 + + #64b fold + pclmulqdq $0x1, %xmm10, %xmm7 + pslldq $8 , %xmm0 + pxor %xmm0, %xmm7 + + #32b fold + movdqa %xmm7, %xmm0 + + pand mask2(%rip), %xmm0 + + psrldq $12, %xmm7 + pclmulqdq $0x10, %xmm10, %xmm7 + pxor %xmm0, %xmm7 + + #barrett reduction +_barrett: + movdqa rk7(%rip), %xmm10 # rk7 and rk8 in xmm10 + movdqa %xmm7, %xmm0 + pclmulqdq $0x01, %xmm10, %xmm7 + pslldq $4, %xmm7 + pclmulqdq $0x11, %xmm10, %xmm7 + + pslldq $4, %xmm7 + pxor %xmm0, %xmm7 + pextrd $1, %xmm7, %eax + +_cleanup: + # scale the result back to 16 bits + shr $16, %eax + mov %rcx, %rsp + ret + +######################################################################## + +.align 16 +_less_than_128: + + # check if there is enough buffer to be able to fold 16B at a time + cmp $32, arg3 + jl _less_than_32 + movdqa SHUF_MASK(%rip), %xmm11 + + # now if there is, load the constants + movdqa rk1(%rip), %xmm10 # rk1 and rk2 in xmm10 + + movd arg1_low32, %xmm0 # get the initial crc value + pslldq $12, %xmm0 # align it to its correct place + movdqu (arg2), %xmm7 # load the plaintext + pshufb %xmm11, %xmm7 # byte-reflect the plaintext + pxor %xmm0, %xmm7 + + + # update the buffer pointer + add $16, arg2 + + # update the counter. subtract 32 instead of 16 to save one + # instruction from the loop + sub $32, arg3 + + jmp _16B_reduction_loop + + +.align 16 +_less_than_32: + # mov initial crc to the return value. this is necessary for + # zero-length buffers. + mov arg1_low32, %eax + test arg3, arg3 + je _cleanup + + movdqa SHUF_MASK(%rip), %xmm11 + + movd arg1_low32, %xmm0 # get the initial crc value + pslldq $12, %xmm0 # align it to its correct place + + cmp $16, arg3 + je _exact_16_left + jl _less_than_16_left + + movdqu (arg2), %xmm7 # load the plaintext + pshufb %xmm11, %xmm7 # byte-reflect the plaintext + pxor %xmm0 , %xmm7 # xor the initial crc value + add $16, arg2 + sub $16, arg3 + movdqa rk1(%rip), %xmm10 # rk1 and rk2 in xmm10 + jmp _get_last_two_xmms + + +.align 16 +_less_than_16_left: + # use stack space to load data less than 16 bytes, zero-out + # the 16B in memory first. + + pxor %xmm1, %xmm1 + mov %rsp, %r11 + movdqa %xmm1, (%r11) + + cmp $4, arg3 + jl _only_less_than_4 + + # backup the counter value + mov arg3, %r9 + cmp $8, arg3 + jl _less_than_8_left + + # load 8 Bytes + mov (arg2), %rax + mov %rax, (%r11) + add $8, %r11 + sub $8, arg3 + add $8, arg2 +_less_than_8_left: + + cmp $4, arg3 + jl _less_than_4_left + + # load 4 Bytes + mov (arg2), %eax + mov %eax, (%r11) + add $4, %r11 + sub $4, arg3 + add $4, arg2 +_less_than_4_left: + + cmp $2, arg3 + jl _less_than_2_left + + # load 2 Bytes + mov (arg2), %ax + mov %ax, (%r11) + add $2, %r11 + sub $2, arg3 + add $2, arg2 +_less_than_2_left: + cmp $1, arg3 + jl _zero_left + + # load 1 Byte + mov (arg2), %al + mov %al, (%r11) +_zero_left: + movdqa (%rsp), %xmm7 + pshufb %xmm11, %xmm7 + pxor %xmm0 , %xmm7 # xor the initial crc value + + # shl r9, 4 + lea pshufb_shf_table+16(%rip), %rax + sub %r9, %rax + movdqu (%rax), %xmm0 + pxor mask1(%rip), %xmm0 + + pshufb %xmm0, %xmm7 + jmp _128_done + +.align 16 +_exact_16_left: + movdqu (arg2), %xmm7 + pshufb %xmm11, %xmm7 + pxor %xmm0 , %xmm7 # xor the initial crc value + + jmp _128_done + +_only_less_than_4: + cmp $3, arg3 + jl _only_less_than_3 + + # load 3 Bytes + mov (arg2), %al + mov %al, (%r11) + + mov 1(arg2), %al + mov %al, 1(%r11) + + mov 2(arg2), %al + mov %al, 2(%r11) + + movdqa (%rsp), %xmm7 + pshufb %xmm11, %xmm7 + pxor %xmm0 , %xmm7 # xor the initial crc value + + psrldq $5, %xmm7 + + jmp _barrett +_only_less_than_3: + cmp $2, arg3 + jl _only_less_than_2 + + # load 2 Bytes + mov (arg2), %al + mov %al, (%r11) + + mov 1(arg2), %al + mov %al, 1(%r11) + + movdqa (%rsp), %xmm7 + pshufb %xmm11, %xmm7 + pxor %xmm0 , %xmm7 # xor the initial crc value + + psrldq $6, %xmm7 + + jmp _barrett +_only_less_than_2: + + # load 1 Byte + mov (arg2), %al + mov %al, (%r11) + + movdqa (%rsp), %xmm7 + pshufb %xmm11, %xmm7 + pxor %xmm0 , %xmm7 # xor the initial crc value + + psrldq $7, %xmm7 + + jmp _barrett + +ENDPROC(crc_t10dif_pcl) + +.data + +# precomputed constants +# these constants are precomputed from the poly: +# 0x8bb70000 (0x8bb7 scaled to 32 bits) +.align 16 +# Q = 0x18BB70000 +# rk1 = 2^(32*3) mod Q << 32 +# rk2 = 2^(32*5) mod Q << 32 +# rk3 = 2^(32*15) mod Q << 32 +# rk4 = 2^(32*17) mod Q << 32 +# rk5 = 2^(32*3) mod Q << 32 +# rk6 = 2^(32*2) mod Q << 32 +# rk7 = floor(2^64/Q) +# rk8 = Q +rk1: +.quad 0x2d56000000000000 +rk2: +.quad 0x06df000000000000 +rk3: +.quad 0x9d9d000000000000 +rk4: +.quad 0x7cf5000000000000 +rk5: +.quad 0x2d56000000000000 +rk6: +.quad 0x1368000000000000 +rk7: +.quad 0x00000001f65a57f8 +rk8: +.quad 0x000000018bb70000 + +rk9: +.quad 0xceae000000000000 +rk10: +.quad 0xbfd6000000000000 +rk11: +.quad 0x1e16000000000000 +rk12: +.quad 0x713c000000000000 +rk13: +.quad 0xf7f9000000000000 +rk14: +.quad 0x80a6000000000000 +rk15: +.quad 0x044c000000000000 +rk16: +.quad 0xe658000000000000 +rk17: +.quad 0xad18000000000000 +rk18: +.quad 0xa497000000000000 +rk19: +.quad 0x6ee3000000000000 +rk20: +.quad 0xe7b5000000000000 + + + +mask1: +.octa 0x80808080808080808080808080808080 +mask2: +.octa 0x00000000FFFFFFFFFFFFFFFFFFFFFFFF + +SHUF_MASK: +.octa 0x000102030405060708090A0B0C0D0E0F + +pshufb_shf_table: +# use these values for shift constants for the pshufb instruction +# different alignments result in values as shown: +# DDQ 0x008f8e8d8c8b8a898887868584838281 # shl 15 (16-1) / shr1 +# DDQ 0x01008f8e8d8c8b8a8988878685848382 # shl 14 (16-3) / shr2 +# DDQ 0x0201008f8e8d8c8b8a89888786858483 # shl 13 (16-4) / shr3 +# DDQ 0x030201008f8e8d8c8b8a898887868584 # shl 12 (16-4) / shr4 +# DDQ 0x04030201008f8e8d8c8b8a8988878685 # shl 11 (16-5) / shr5 +# DDQ 0x0504030201008f8e8d8c8b8a89888786 # shl 10 (16-6) / shr6 +# DDQ 0x060504030201008f8e8d8c8b8a898887 # shl 9 (16-7) / shr7 +# DDQ 0x07060504030201008f8e8d8c8b8a8988 # shl 8 (16-8) / shr8 +# DDQ 0x0807060504030201008f8e8d8c8b8a89 # shl 7 (16-9) / shr9 +# DDQ 0x090807060504030201008f8e8d8c8b8a # shl 6 (16-10) / shr10 +# DDQ 0x0a090807060504030201008f8e8d8c8b # shl 5 (16-11) / shr11 +# DDQ 0x0b0a090807060504030201008f8e8d8c # shl 4 (16-12) / shr12 +# DDQ 0x0c0b0a090807060504030201008f8e8d # shl 3 (16-13) / shr13 +# DDQ 0x0d0c0b0a090807060504030201008f8e # shl 2 (16-14) / shr14 +# DDQ 0x0e0d0c0b0a090807060504030201008f # shl 1 (16-15) / shr15 +.octa 0x8f8e8d8c8b8a89888786858483828100 +.octa 0x000e0d0c0b0a09080706050403020100 --- linux-3.11.0.orig/arch/x86/lib/csum-wrappers_64.c +++ linux-3.11.0/arch/x86/lib/csum-wrappers_64.c @@ -6,6 +6,7 @@ */ #include #include +#include /** * csum_partial_copy_from_user - Copy and checksum from user space. @@ -52,8 +53,10 @@ len -= 2; } } + stac(); isum = csum_partial_copy_generic((__force const void *)src, dst, len, isum, errp, NULL); + clac(); if (unlikely(*errp)) goto out_err; @@ -82,6 +85,8 @@ csum_partial_copy_to_user(const void *src, void __user *dst, int len, __wsum isum, int *errp) { + __wsum ret; + might_sleep(); if (unlikely(!access_ok(VERIFY_WRITE, dst, len))) { @@ -105,8 +110,11 @@ } *errp = 0; - return csum_partial_copy_generic(src, (void __force *)dst, - len, isum, NULL, errp); + stac(); + ret = csum_partial_copy_generic(src, (void __force *)dst, + len, isum, NULL, errp); + clac(); + return ret; } EXPORT_SYMBOL(csum_partial_copy_to_user); --- linux-3.11.0.orig/arch/x86/ia32/ia32_signal.c +++ linux-3.11.0/arch/x86/ia32/ia32_signal.c @@ -457,7 +457,7 @@ else put_user_ex(0, &frame->uc.uc_flags); put_user_ex(0, &frame->uc.uc_link); - err |= __compat_save_altstack(&frame->uc.uc_stack, regs->sp); + compat_save_altstack_ex(&frame->uc.uc_stack, regs->sp); if (ksig->ka.sa.sa_flags & SA_RESTORER) restorer = ksig->ka.sa.sa_restorer; --- linux-3.11.0.orig/arch/x86/boot/video.h +++ linux-3.11.0/arch/x86/boot/video.h @@ -80,7 +80,7 @@ u16 xmode_n; /* Size of unprobed mode range */ }; -#define __videocard struct card_info __attribute__((section(".videocards"))) +#define __videocard struct card_info __attribute__((used,section(".videocards"))) extern struct card_info video_cards[], video_cards_end[]; int mode_defined(u16 mode); /* video.c */ --- linux-3.11.0.orig/arch/x86/kernel/signal.c +++ linux-3.11.0/arch/x86/kernel/signal.c @@ -358,7 +358,7 @@ else put_user_ex(0, &frame->uc.uc_flags); put_user_ex(0, &frame->uc.uc_link); - err |= __save_altstack(&frame->uc.uc_stack, regs->sp); + save_altstack_ex(&frame->uc.uc_stack, regs->sp); /* Set up to return from userspace. */ restorer = VDSO32_SYMBOL(current->mm->context.vdso, rt_sigreturn); @@ -423,7 +423,7 @@ else put_user_ex(0, &frame->uc.uc_flags); put_user_ex(0, &frame->uc.uc_link); - err |= __save_altstack(&frame->uc.uc_stack, regs->sp); + save_altstack_ex(&frame->uc.uc_stack, regs->sp); /* Set up to return from userspace. If provided, use a stub already in userspace. */ @@ -490,7 +490,7 @@ else put_user_ex(0, &frame->uc.uc_flags); put_user_ex(0, &frame->uc.uc_link); - err |= __compat_save_altstack(&frame->uc.uc_stack, regs->sp); + compat_save_altstack_ex(&frame->uc.uc_stack, regs->sp); put_user_ex(0, &frame->uc.uc__pad0); if (ksig->ka.sa.sa_flags & SA_RESTORER) { --- linux-3.11.0.orig/arch/x86/kernel/e820.c +++ linux-3.11.0/arch/x86/kernel/e820.c @@ -658,15 +658,18 @@ * boot_params.e820_map, others are passed via SETUP_E820_EXT node of * linked list of struct setup_data, which is parsed here. */ -void __init parse_e820_ext(struct setup_data *sdata) +void __init parse_e820_ext(u64 phys_addr, u32 data_len) { int entries; struct e820entry *extmap; + struct setup_data *sdata; + sdata = early_memremap(phys_addr, data_len); entries = sdata->len / sizeof(struct e820entry); extmap = (struct e820entry *)(sdata->data); __append_e820_map(extmap, entries); sanitize_e820_map(e820.map, ARRAY_SIZE(e820.map), &e820.nr_map); + early_iounmap(sdata, data_len); printk(KERN_INFO "e820: extended physical RAM map:\n"); e820_print_map("extended"); } --- linux-3.11.0.orig/arch/x86/kernel/setup.c +++ linux-3.11.0/arch/x86/kernel/setup.c @@ -426,25 +426,23 @@ static void __init parse_setup_data(void) { struct setup_data *data; - u64 pa_data; + u64 pa_data, pa_next; pa_data = boot_params.hdr.setup_data; while (pa_data) { - u32 data_len, map_len; + u32 data_len, map_len, data_type; map_len = max(PAGE_SIZE - (pa_data & ~PAGE_MASK), (u64)sizeof(struct setup_data)); data = early_memremap(pa_data, map_len); data_len = data->len + sizeof(struct setup_data); - if (data_len > map_len) { - early_iounmap(data, map_len); - data = early_memremap(pa_data, data_len); - map_len = data_len; - } + data_type = data->type; + pa_next = data->next; + early_iounmap(data, map_len); - switch (data->type) { + switch (data_type) { case SETUP_E820_EXT: - parse_e820_ext(data); + parse_e820_ext(pa_data, data_len); break; case SETUP_DTB: add_dtb(pa_data); @@ -452,8 +450,7 @@ default: break; } - pa_data = data->next; - early_iounmap(data, map_len); + pa_data = pa_next; } } --- linux-3.11.0.orig/arch/x86/kernel/process.c +++ linux-3.11.0/arch/x86/kernel/process.c @@ -391,9 +391,9 @@ * The switch back from broadcast mode needs to be * called with interrupts disabled. */ - local_irq_disable(); - clockevents_notify(CLOCK_EVT_NOTIFY_BROADCAST_EXIT, &cpu); - local_irq_enable(); + local_irq_disable(); + clockevents_notify(CLOCK_EVT_NOTIFY_BROADCAST_EXIT, &cpu); + local_irq_enable(); } else default_idle(); } --- linux-3.11.0.orig/arch/x86/kernel/amd_nb.c +++ linux-3.11.0/arch/x86/kernel/amd_nb.c @@ -20,6 +20,7 @@ { PCI_DEVICE(PCI_VENDOR_ID_AMD, PCI_DEVICE_ID_AMD_10H_NB_MISC) }, { PCI_DEVICE(PCI_VENDOR_ID_AMD, PCI_DEVICE_ID_AMD_15H_NB_F3) }, { PCI_DEVICE(PCI_VENDOR_ID_AMD, PCI_DEVICE_ID_AMD_15H_M10H_F3) }, + { PCI_DEVICE(PCI_VENDOR_ID_AMD, PCI_DEVICE_ID_AMD_15H_M30H_NB_F3) }, { PCI_DEVICE(PCI_VENDOR_ID_AMD, PCI_DEVICE_ID_AMD_16H_NB_F3) }, {} }; @@ -27,6 +28,7 @@ static const struct pci_device_id amd_nb_link_ids[] = { { PCI_DEVICE(PCI_VENDOR_ID_AMD, PCI_DEVICE_ID_AMD_15H_NB_F4) }, + { PCI_DEVICE(PCI_VENDOR_ID_AMD, PCI_DEVICE_ID_AMD_15H_M30H_NB_F4) }, { PCI_DEVICE(PCI_VENDOR_ID_AMD, PCI_DEVICE_ID_AMD_16H_NB_F4) }, {} }; @@ -81,13 +83,20 @@ next_northbridge(misc, amd_nb_misc_ids); node_to_amd_nb(i)->link = link = next_northbridge(link, amd_nb_link_ids); - } + } + /* GART present only on Fam15h upto model 0fh */ if (boot_cpu_data.x86 == 0xf || boot_cpu_data.x86 == 0x10 || - boot_cpu_data.x86 == 0x15) + (boot_cpu_data.x86 == 0x15 && boot_cpu_data.x86_model < 0x10)) amd_northbridges.flags |= AMD_NB_GART; /* + * Check for L3 cache presence. + */ + if (!cpuid_edx(0x80000006)) + return 0; + + /* * Some CPU families support L3 Cache Index Disable. There are some * limitations because of E382 and E388 on family 0x10. */ --- linux-3.11.0.orig/arch/x86/kernel/reboot.c +++ linux-3.11.0/arch/x86/kernel/reboot.c @@ -334,6 +334,14 @@ DMI_MATCH(DMI_PRODUCT_NAME, "Latitude E5420"), }, }, + { /* 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 E6420. */ .callback = set_pci_reboot, .ident = "Dell Latitude E6420", @@ -358,6 +366,54 @@ DMI_MATCH(DMI_PRODUCT_NAME, "Precision M6600"), }, }, + { /* 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"), + }, + }, + { /* Handle problems with rebooting on the OptiPlex 790. */ + .callback = set_pci_reboot, + .ident = "Dell OptiPlex 790", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."), + DMI_MATCH(DMI_PRODUCT_NAME, "OptiPlex 790"), + }, + }, + { /* Handle problems with rebooting on the OptiPlex 990. */ + .callback = set_pci_reboot, + .ident = "Dell OptiPlex 990", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."), + DMI_MATCH(DMI_PRODUCT_NAME, "OptiPlex 990"), + }, + }, + { /* Handle problems with rebooting on the OptiPlex 390. */ + .callback = set_pci_reboot, + .ident = "Dell OptiPlex 390", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."), + DMI_MATCH(DMI_PRODUCT_NAME, "OptiPlex 390"), + }, + }, + { /* Handle problems with rebooting on the Dell PowerEdge C6100. */ + .callback = set_pci_reboot, + .ident = "Dell PowerEdge C6100", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."), + DMI_MATCH(DMI_PRODUCT_NAME, "C6100"), + }, + }, + { /* Some C6100 machines were shipped with vendor being 'Dell'. */ + .callback = set_pci_reboot, + .ident = "Dell PowerEdge C6100", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "Dell"), + DMI_MATCH(DMI_PRODUCT_NAME, "C6100"), + }, + }, { } }; --- linux-3.11.0.orig/arch/x86/kernel/cpu/perf_event_intel.c +++ linux-3.11.0/arch/x86/kernel/cpu/perf_event_intel.c @@ -162,6 +162,15 @@ EVENT_CONSTRAINT_END }; +static struct event_constraint intel_slm_event_constraints[] __read_mostly = +{ + FIXED_EVENT_CONSTRAINT(0x00c0, 0), /* INST_RETIRED.ANY */ + FIXED_EVENT_CONSTRAINT(0x003c, 1), /* CPU_CLK_UNHALTED.CORE */ + FIXED_EVENT_CONSTRAINT(0x013c, 2), /* CPU_CLK_UNHALTED.REF */ + FIXED_EVENT_CONSTRAINT(0x0300, 2), /* pseudo CPU_CLK_UNHALTED.REF */ + EVENT_CONSTRAINT_END +}; + static struct extra_reg intel_snb_extra_regs[] __read_mostly = { INTEL_EVENT_EXTRA_REG(0xb7, MSR_OFFCORE_RSP_0, 0x3f807f8fffull, RSP_0), INTEL_EVENT_EXTRA_REG(0xbb, MSR_OFFCORE_RSP_1, 0x3f807f8fffull, RSP_1), @@ -882,6 +891,140 @@ }, }; +static struct extra_reg intel_slm_extra_regs[] __read_mostly = +{ + /* must define OFFCORE_RSP_X first, see intel_fixup_er() */ + INTEL_UEVENT_EXTRA_REG(0x01b7, MSR_OFFCORE_RSP_0, 0x768005ffffull, RSP_0), + INTEL_UEVENT_EXTRA_REG(0x02b7, MSR_OFFCORE_RSP_1, 0x768005ffffull, RSP_1), + EVENT_EXTRA_END +}; + +#define SLM_DMND_READ SNB_DMND_DATA_RD +#define SLM_DMND_WRITE SNB_DMND_RFO +#define SLM_DMND_PREFETCH (SNB_PF_DATA_RD|SNB_PF_RFO) + +#define SLM_SNP_ANY (SNB_SNP_NONE|SNB_SNP_MISS|SNB_NO_FWD|SNB_HITM) +#define SLM_LLC_ACCESS SNB_RESP_ANY +#define SLM_LLC_MISS (SLM_SNP_ANY|SNB_NON_DRAM) + +static __initconst const u64 slm_hw_cache_extra_regs + [PERF_COUNT_HW_CACHE_MAX] + [PERF_COUNT_HW_CACHE_OP_MAX] + [PERF_COUNT_HW_CACHE_RESULT_MAX] = +{ + [ C(LL ) ] = { + [ C(OP_READ) ] = { + [ C(RESULT_ACCESS) ] = SLM_DMND_READ|SLM_LLC_ACCESS, + [ C(RESULT_MISS) ] = SLM_DMND_READ|SLM_LLC_MISS, + }, + [ C(OP_WRITE) ] = { + [ C(RESULT_ACCESS) ] = SLM_DMND_WRITE|SLM_LLC_ACCESS, + [ C(RESULT_MISS) ] = SLM_DMND_WRITE|SLM_LLC_MISS, + }, + [ C(OP_PREFETCH) ] = { + [ C(RESULT_ACCESS) ] = SLM_DMND_PREFETCH|SLM_LLC_ACCESS, + [ C(RESULT_MISS) ] = SLM_DMND_PREFETCH|SLM_LLC_MISS, + }, + }, +}; + +static __initconst const u64 slm_hw_cache_event_ids + [PERF_COUNT_HW_CACHE_MAX] + [PERF_COUNT_HW_CACHE_OP_MAX] + [PERF_COUNT_HW_CACHE_RESULT_MAX] = +{ + [ C(L1D) ] = { + [ C(OP_READ) ] = { + [ C(RESULT_ACCESS) ] = 0, + [ C(RESULT_MISS) ] = 0x0104, /* LD_DCU_MISS */ + }, + [ C(OP_WRITE) ] = { + [ C(RESULT_ACCESS) ] = 0, + [ C(RESULT_MISS) ] = 0, + }, + [ C(OP_PREFETCH) ] = { + [ C(RESULT_ACCESS) ] = 0, + [ C(RESULT_MISS) ] = 0, + }, + }, + [ C(L1I ) ] = { + [ C(OP_READ) ] = { + [ C(RESULT_ACCESS) ] = 0x0380, /* ICACHE.ACCESSES */ + [ C(RESULT_MISS) ] = 0x0280, /* ICACGE.MISSES */ + }, + [ C(OP_WRITE) ] = { + [ C(RESULT_ACCESS) ] = -1, + [ C(RESULT_MISS) ] = -1, + }, + [ C(OP_PREFETCH) ] = { + [ C(RESULT_ACCESS) ] = 0, + [ C(RESULT_MISS) ] = 0, + }, + }, + [ C(LL ) ] = { + [ C(OP_READ) ] = { + /* OFFCORE_RESPONSE.ANY_DATA.LOCAL_CACHE */ + [ C(RESULT_ACCESS) ] = 0x01b7, + /* OFFCORE_RESPONSE.ANY_DATA.ANY_LLC_MISS */ + [ C(RESULT_MISS) ] = 0x01b7, + }, + [ C(OP_WRITE) ] = { + /* OFFCORE_RESPONSE.ANY_RFO.LOCAL_CACHE */ + [ C(RESULT_ACCESS) ] = 0x01b7, + /* OFFCORE_RESPONSE.ANY_RFO.ANY_LLC_MISS */ + [ C(RESULT_MISS) ] = 0x01b7, + }, + [ C(OP_PREFETCH) ] = { + /* OFFCORE_RESPONSE.PREFETCH.LOCAL_CACHE */ + [ C(RESULT_ACCESS) ] = 0x01b7, + /* OFFCORE_RESPONSE.PREFETCH.ANY_LLC_MISS */ + [ C(RESULT_MISS) ] = 0x01b7, + }, + }, + [ C(DTLB) ] = { + [ C(OP_READ) ] = { + [ C(RESULT_ACCESS) ] = 0, + [ C(RESULT_MISS) ] = 0x0804, /* LD_DTLB_MISS */ + }, + [ C(OP_WRITE) ] = { + [ C(RESULT_ACCESS) ] = 0, + [ C(RESULT_MISS) ] = 0, + }, + [ C(OP_PREFETCH) ] = { + [ C(RESULT_ACCESS) ] = 0, + [ C(RESULT_MISS) ] = 0, + }, + }, + [ C(ITLB) ] = { + [ C(OP_READ) ] = { + [ C(RESULT_ACCESS) ] = 0x00c0, /* INST_RETIRED.ANY_P */ + [ C(RESULT_MISS) ] = 0x0282, /* ITLB.MISSES */ + }, + [ C(OP_WRITE) ] = { + [ C(RESULT_ACCESS) ] = -1, + [ C(RESULT_MISS) ] = -1, + }, + [ C(OP_PREFETCH) ] = { + [ C(RESULT_ACCESS) ] = -1, + [ C(RESULT_MISS) ] = -1, + }, + }, + [ C(BPU ) ] = { + [ C(OP_READ) ] = { + [ C(RESULT_ACCESS) ] = 0x00c4, /* BR_INST_RETIRED.ANY */ + [ C(RESULT_MISS) ] = 0x00c5, /* BP_INST_RETIRED.MISPRED */ + }, + [ C(OP_WRITE) ] = { + [ C(RESULT_ACCESS) ] = -1, + [ C(RESULT_MISS) ] = -1, + }, + [ C(OP_PREFETCH) ] = { + [ C(RESULT_ACCESS) ] = -1, + [ C(RESULT_MISS) ] = -1, + }, + }, +}; + static inline bool intel_pmu_needs_lbr_smpl(struct perf_event *event) { /* user explicitly requested branch sampling */ @@ -2176,6 +2319,21 @@ pr_cont("Atom events, "); break; + case 55: /* Atom 22nm "Silvermont" */ + memcpy(hw_cache_event_ids, slm_hw_cache_event_ids, + sizeof(hw_cache_event_ids)); + memcpy(hw_cache_extra_regs, slm_hw_cache_extra_regs, + sizeof(hw_cache_extra_regs)); + + intel_pmu_lbr_init_atom(); + + x86_pmu.event_constraints = intel_slm_event_constraints; + x86_pmu.pebs_constraints = intel_slm_pebs_event_constraints; + x86_pmu.extra_regs = intel_slm_extra_regs; + x86_pmu.er_flags |= ERF_HAS_RSP_1; + pr_cont("Silvermont events, "); + break; + case 37: /* 32 nm nehalem, "Clarkdale" */ case 44: /* 32 nm nehalem, "Gulftown" */ case 47: /* 32 nm Xeon E7 */ --- linux-3.11.0.orig/arch/x86/kernel/cpu/perf_event.h +++ linux-3.11.0/arch/x86/kernel/cpu/perf_event.h @@ -641,6 +641,8 @@ extern struct event_constraint intel_atom_pebs_event_constraints[]; +extern struct event_constraint intel_slm_pebs_event_constraints[]; + extern struct event_constraint intel_nehalem_pebs_event_constraints[]; extern struct event_constraint intel_westmere_pebs_event_constraints[]; --- linux-3.11.0.orig/arch/x86/kernel/cpu/perf_event_intel_ds.c +++ linux-3.11.0/arch/x86/kernel/cpu/perf_event_intel_ds.c @@ -517,6 +517,32 @@ EVENT_CONSTRAINT_END }; +struct event_constraint intel_slm_pebs_event_constraints[] = { + INTEL_UEVENT_CONSTRAINT(0x0103, 0x1), /* REHABQ.LD_BLOCK_ST_FORWARD_PS */ + INTEL_UEVENT_CONSTRAINT(0x0803, 0x1), /* REHABQ.LD_SPLITS_PS */ + INTEL_UEVENT_CONSTRAINT(0x0204, 0x1), /* MEM_UOPS_RETIRED.L2_HIT_LOADS_PS */ + INTEL_UEVENT_CONSTRAINT(0x0404, 0x1), /* MEM_UOPS_RETIRED.L2_MISS_LOADS_PS */ + INTEL_UEVENT_CONSTRAINT(0x0804, 0x1), /* MEM_UOPS_RETIRED.DTLB_MISS_LOADS_PS */ + INTEL_UEVENT_CONSTRAINT(0x2004, 0x1), /* MEM_UOPS_RETIRED.HITM_PS */ + INTEL_UEVENT_CONSTRAINT(0x00c0, 0x1), /* INST_RETIRED.ANY_PS */ + INTEL_UEVENT_CONSTRAINT(0x00c4, 0x1), /* BR_INST_RETIRED.ALL_BRANCHES_PS */ + INTEL_UEVENT_CONSTRAINT(0x7ec4, 0x1), /* BR_INST_RETIRED.JCC_PS */ + INTEL_UEVENT_CONSTRAINT(0xbfc4, 0x1), /* BR_INST_RETIRED.FAR_BRANCH_PS */ + INTEL_UEVENT_CONSTRAINT(0xebc4, 0x1), /* BR_INST_RETIRED.NON_RETURN_IND_PS */ + INTEL_UEVENT_CONSTRAINT(0xf7c4, 0x1), /* BR_INST_RETIRED.RETURN_PS */ + INTEL_UEVENT_CONSTRAINT(0xf9c4, 0x1), /* BR_INST_RETIRED.CALL_PS */ + INTEL_UEVENT_CONSTRAINT(0xfbc4, 0x1), /* BR_INST_RETIRED.IND_CALL_PS */ + INTEL_UEVENT_CONSTRAINT(0xfdc4, 0x1), /* BR_INST_RETIRED.REL_CALL_PS */ + INTEL_UEVENT_CONSTRAINT(0xfec4, 0x1), /* BR_INST_RETIRED.TAKEN_JCC_PS */ + INTEL_UEVENT_CONSTRAINT(0x00c5, 0x1), /* BR_INST_MISP_RETIRED.ALL_BRANCHES_PS */ + INTEL_UEVENT_CONSTRAINT(0x7ec5, 0x1), /* BR_INST_MISP_RETIRED.JCC_PS */ + INTEL_UEVENT_CONSTRAINT(0xebc5, 0x1), /* BR_INST_MISP_RETIRED.NON_RETURN_IND_PS */ + INTEL_UEVENT_CONSTRAINT(0xf7c5, 0x1), /* BR_INST_MISP_RETIRED.RETURN_PS */ + INTEL_UEVENT_CONSTRAINT(0xfbc5, 0x1), /* BR_INST_MISP_RETIRED.IND_CALL_PS */ + INTEL_UEVENT_CONSTRAINT(0xfec5, 0x1), /* BR_INST_MISP_RETIRED.TAKEN_JCC_PS */ + EVENT_CONSTRAINT_END +}; + struct event_constraint intel_nehalem_pebs_event_constraints[] = { INTEL_PLD_CONSTRAINT(0x100b, 0xf), /* MEM_INST_RETIRED.* */ INTEL_EVENT_CONSTRAINT(0x0f, 0xf), /* MEM_UNCORE_RETIRED.* */ --- linux-3.11.0.orig/arch/x86/kernel/apic/x2apic_uv_x.c +++ linux-3.11.0/arch/x86/kernel/apic/x2apic_uv_x.c @@ -113,7 +113,7 @@ break; case UV3_HUB_PART_NUMBER: case UV3_HUB_PART_NUMBER_X: - uv_min_hub_revision_id += UV3_HUB_REVISION_BASE - 1; + uv_min_hub_revision_id += UV3_HUB_REVISION_BASE; break; } --- linux-3.11.0.orig/arch/arm64/kernel/perf_event.c +++ linux-3.11.0/arch/arm64/kernel/perf_event.c @@ -325,7 +325,10 @@ if (is_software_event(event)) return 1; - if (event->pmu != leader_pmu || event->state <= PERF_EVENT_STATE_OFF) + if (event->pmu != leader_pmu || event->state < PERF_EVENT_STATE_OFF) + return 1; + + if (event->state == PERF_EVENT_STATE_OFF && !event->attr.enable_on_exec) return 1; return armpmu->get_event_idx(hw_events, &fake_event) >= 0; @@ -781,7 +784,7 @@ /* * PMXEVTYPER: Event selection reg */ -#define ARMV8_EVTYPE_MASK 0xc00000ff /* Mask for writable bits */ +#define ARMV8_EVTYPE_MASK 0xc80000ff /* Mask for writable bits */ #define ARMV8_EVTYPE_EVENT 0xff /* Mask for EVENT bits */ /* --- linux-3.11.0.orig/arch/xtensa/kernel/xtensa_ksyms.c +++ linux-3.11.0/arch/xtensa/kernel/xtensa_ksyms.c @@ -25,6 +25,7 @@ #include #include #include +#include #ifdef CONFIG_BLK_DEV_FD #include #endif --- linux-3.11.0.orig/arch/xtensa/kernel/signal.c +++ linux-3.11.0/arch/xtensa/kernel/signal.c @@ -341,7 +341,7 @@ sp = regs->areg[1]; - if ((ka->sa.sa_flags & SA_ONSTACK) != 0 && ! on_sig_stack(sp)) { + if ((ka->sa.sa_flags & SA_ONSTACK) != 0 && sas_ss_flags(sp) == 0) { sp = current->sas_ss_sp + current->sas_ss_size; } --- linux-3.11.0.orig/arch/tile/include/asm/percpu.h +++ linux-3.11.0/arch/tile/include/asm/percpu.h @@ -15,9 +15,37 @@ #ifndef _ASM_TILE_PERCPU_H #define _ASM_TILE_PERCPU_H -register unsigned long __my_cpu_offset __asm__("tp"); -#define __my_cpu_offset __my_cpu_offset -#define set_my_cpu_offset(tp) (__my_cpu_offset = (tp)) +register unsigned long my_cpu_offset_reg asm("tp"); + +#ifdef CONFIG_PREEMPT +/* + * For full preemption, we can't just use the register variable + * directly, since we need barrier() to hazard against it, causing the + * compiler to reload anything computed from a previous "tp" value. + * But we also don't want to use volatile asm, since we'd like the + * compiler to be able to cache the value across multiple percpu reads. + * So we use a fake stack read as a hazard against barrier(). + * The 'U' constraint is like 'm' but disallows postincrement. + */ +static inline unsigned long __my_cpu_offset(void) +{ + unsigned long tp; + register unsigned long *sp asm("sp"); + asm("move %0, tp" : "=r" (tp) : "U" (*sp)); + return tp; +} +#define __my_cpu_offset __my_cpu_offset() +#else +/* + * We don't need to hazard against barrier() since "tp" doesn't ever + * change with PREEMPT_NONE, and with PREEMPT_VOLUNTARY it only + * changes at function call points, at which we are already re-reading + * the value of "tp" due to "my_cpu_offset_reg" being a global variable. + */ +#define __my_cpu_offset my_cpu_offset_reg +#endif + +#define set_my_cpu_offset(tp) (my_cpu_offset_reg = (tp)) #include --- linux-3.11.0.orig/arch/mips/include/asm/jump_label.h +++ linux-3.11.0/arch/mips/include/asm/jump_label.h @@ -22,7 +22,7 @@ static __always_inline bool arch_static_branch(struct static_key *key) { - asm goto("1:\tnop\n\t" + asm_volatile_goto("1:\tnop\n\t" "nop\n\t" ".pushsection __jump_table, \"aw\"\n\t" WORD_INSN " 1b, %l[l_yes], %0\n\t" --- linux-3.11.0.orig/arch/mips/ath79/clock.c +++ linux-3.11.0/arch/mips/ath79/clock.c @@ -164,7 +164,7 @@ ath79_ahb_clk.rate = freq / t; } - ath79_wdt_clk.rate = ath79_ref_clk.rate; + ath79_wdt_clk.rate = ath79_ahb_clk.rate; ath79_uart_clk.rate = ath79_ref_clk.rate; } --- linux-3.11.0.orig/arch/mips/kernel/octeon_switch.S +++ linux-3.11.0/arch/mips/kernel/octeon_switch.S @@ -73,7 +73,7 @@ 3: #if defined(CONFIG_CC_STACKPROTECTOR) && !defined(CONFIG_SMP) - PTR_L t8, __stack_chk_guard + PTR_LA t8, __stack_chk_guard LONG_L t9, TASK_STACK_CANARY(a1) LONG_S t9, 0(t8) #endif --- linux-3.11.0.orig/arch/mips/kernel/r4k_switch.S +++ linux-3.11.0/arch/mips/kernel/r4k_switch.S @@ -69,7 +69,7 @@ 1: #if defined(CONFIG_CC_STACKPROTECTOR) && !defined(CONFIG_SMP) - PTR_L t8, __stack_chk_guard + PTR_LA t8, __stack_chk_guard LONG_L t9, TASK_STACK_CANARY(a1) LONG_S t9, 0(t8) #endif --- linux-3.11.0.orig/arch/mips/kernel/r2300_switch.S +++ linux-3.11.0/arch/mips/kernel/r2300_switch.S @@ -67,7 +67,7 @@ 1: #if defined(CONFIG_CC_STACKPROTECTOR) && !defined(CONFIG_SMP) - PTR_L t8, __stack_chk_guard + PTR_LA t8, __stack_chk_guard LONG_L t9, TASK_STACK_CANARY(a1) LONG_S t9, 0(t8) #endif --- linux-3.11.0.orig/arch/powerpc/Kconfig +++ linux-3.11.0/arch/powerpc/Kconfig @@ -995,6 +995,8 @@ source "drivers/Kconfig" +source "ubuntu/Kconfig" + source "fs/Kconfig" source "arch/powerpc/sysdev/qe_lib/Kconfig" --- linux-3.11.0.orig/arch/powerpc/include/asm/jump_label.h +++ linux-3.11.0/arch/powerpc/include/asm/jump_label.h @@ -19,7 +19,7 @@ static __always_inline bool arch_static_branch(struct static_key *key) { - asm goto("1:\n\t" + asm_volatile_goto("1:\n\t" "nop\n\t" ".pushsection __jump_table, \"aw\"\n\t" JUMP_ENTRY_TYPE "1b, %l[l_yes], %c0\n\t" --- linux-3.11.0.orig/arch/powerpc/perf/power8-pmu.c +++ linux-3.11.0/arch/powerpc/perf/power8-pmu.c @@ -199,6 +199,7 @@ #define MMCR1_UNIT_SHIFT(pmc) (60 - (4 * ((pmc) - 1))) #define MMCR1_COMBINE_SHIFT(pmc) (35 - ((pmc) - 1)) #define MMCR1_PMCSEL_SHIFT(pmc) (24 - (((pmc) - 1)) * 8) +#define MMCR1_FAB_SHIFT 36 #define MMCR1_DC_QUAL_SHIFT 47 #define MMCR1_IC_QUAL_SHIFT 46 @@ -388,8 +389,8 @@ * the threshold bits are used for the match value. */ if (event_is_fab_match(event[i])) { - mmcr1 |= (event[i] >> EVENT_THR_CTL_SHIFT) & - EVENT_THR_CTL_MASK; + mmcr1 |= ((event[i] >> EVENT_THR_CTL_SHIFT) & + EVENT_THR_CTL_MASK) << MMCR1_FAB_SHIFT; } else { val = (event[i] >> EVENT_THR_CTL_SHIFT) & EVENT_THR_CTL_MASK; mmcra |= val << MMCRA_THR_CTL_SHIFT; --- linux-3.11.0.orig/arch/powerpc/lib/checksum_64.S +++ linux-3.11.0/arch/powerpc/lib/checksum_64.S @@ -226,19 +226,35 @@ blr - .macro source + .macro srcnr 100: .section __ex_table,"a" .align 3 - .llong 100b,.Lsrc_error + .llong 100b,.Lsrc_error_nr .previous .endm - .macro dest + .macro source +150: + .section __ex_table,"a" + .align 3 + .llong 150b,.Lsrc_error + .previous + .endm + + .macro dstnr 200: .section __ex_table,"a" .align 3 - .llong 200b,.Ldest_error + .llong 200b,.Ldest_error_nr + .previous + .endm + + .macro dest +250: + .section __ex_table,"a" + .align 3 + .llong 250b,.Ldest_error .previous .endm @@ -269,16 +285,16 @@ rldicl. r6,r3,64-1,64-2 /* r6 = (r3 & 0x3) >> 1 */ beq .Lcopy_aligned - li r7,4 - sub r6,r7,r6 + li r9,4 + sub r6,r9,r6 mtctr r6 1: -source; lhz r6,0(r3) /* align to doubleword */ +srcnr; lhz r6,0(r3) /* align to doubleword */ subi r5,r5,2 addi r3,r3,2 adde r0,r0,r6 -dest; sth r6,0(r4) +dstnr; sth r6,0(r4) addi r4,r4,2 bdnz 1b @@ -392,10 +408,10 @@ mtctr r6 3: -source; ld r6,0(r3) +srcnr; ld r6,0(r3) addi r3,r3,8 adde r0,r0,r6 -dest; std r6,0(r4) +dstnr; std r6,0(r4) addi r4,r4,8 bdnz 3b @@ -405,10 +421,10 @@ srdi. r6,r5,2 beq .Lcopy_tail_halfword -source; lwz r6,0(r3) +srcnr; lwz r6,0(r3) addi r3,r3,4 adde r0,r0,r6 -dest; stw r6,0(r4) +dstnr; stw r6,0(r4) addi r4,r4,4 subi r5,r5,4 @@ -416,10 +432,10 @@ srdi. r6,r5,1 beq .Lcopy_tail_byte -source; lhz r6,0(r3) +srcnr; lhz r6,0(r3) addi r3,r3,2 adde r0,r0,r6 -dest; sth r6,0(r4) +dstnr; sth r6,0(r4) addi r4,r4,2 subi r5,r5,2 @@ -427,10 +443,10 @@ andi. r6,r5,1 beq .Lcopy_finish -source; lbz r6,0(r3) +srcnr; lbz r6,0(r3) sldi r9,r6,8 /* Pad the byte out to 16 bits */ adde r0,r0,r9 -dest; stb r6,0(r4) +dstnr; stb r6,0(r4) .Lcopy_finish: addze r0,r0 /* add in final carry */ @@ -440,6 +456,11 @@ blr .Lsrc_error: + ld r14,STK_REG(R14)(r1) + ld r15,STK_REG(R15)(r1) + ld r16,STK_REG(R16)(r1) + addi r1,r1,STACKFRAMESIZE +.Lsrc_error_nr: cmpdi 0,r7,0 beqlr li r6,-EFAULT @@ -447,6 +468,11 @@ blr .Ldest_error: + ld r14,STK_REG(R14)(r1) + ld r15,STK_REG(R15)(r1) + ld r16,STK_REG(R16)(r1) + addi r1,r1,STACKFRAMESIZE +.Ldest_error_nr: cmpdi 0,r8,0 beqlr li r6,-EFAULT --- linux-3.11.0.orig/arch/powerpc/platforms/pseries/setup.c +++ linux-3.11.0/arch/powerpc/platforms/pseries/setup.c @@ -354,7 +354,7 @@ } early_initcall(alloc_dispatch_log_kmem_cache); -static void pSeries_idle(void) +static void pseries_lpar_idle(void) { /* This would call on the cpuidle framework, and the back-end pseries * driver to go to idle states @@ -362,10 +362,22 @@ if (cpuidle_idle_call()) { /* On error, execute default handler * to go into low thread priority and possibly - * low power mode. + * low power mode by cedeing processor to hypervisor */ - HMT_low(); - HMT_very_low(); + + /* Indicate to hypervisor that we are idle. */ + get_lppaca()->idle = 1; + + /* + * Yield the processor to the hypervisor. We return if + * an external interrupt occurs (which are driven prior + * to returning here) or if a prod occurs from another + * processor. When returning here, external interrupts + * are enabled. + */ + cede_processor(); + + get_lppaca()->idle = 0; } } @@ -456,15 +468,14 @@ pSeries_nvram_init(); - if (firmware_has_feature(FW_FEATURE_SPLPAR)) { + if (firmware_has_feature(FW_FEATURE_LPAR)) { vpa_init(boot_cpuid); - ppc_md.power_save = pSeries_idle; - } - - if (firmware_has_feature(FW_FEATURE_LPAR)) + ppc_md.power_save = pseries_lpar_idle; ppc_md.enable_pmcs = pseries_lpar_enable_pmcs; - else + } else { + /* No special idle routine */ ppc_md.enable_pmcs = power4_enable_pmcs; + } ppc_md.pcibios_root_bridge_prepare = pseries_root_bridge_prepare; --- linux-3.11.0.orig/arch/powerpc/kvm/book3s_xics.c +++ linux-3.11.0/arch/powerpc/kvm/book3s_xics.c @@ -19,6 +19,7 @@ #include #include #include +#include #include #include --- linux-3.11.0.orig/arch/powerpc/kvm/book3s_hv_rmhandlers.S +++ linux-3.11.0/arch/powerpc/kvm/book3s_hv_rmhandlers.S @@ -1054,7 +1054,7 @@ BEGIN_FTR_SECTION mfspr r8, SPRN_DSCR ld r7, HSTATE_DSCR(r13) - std r8, VCPU_DSCR(r7) + std r8, VCPU_DSCR(r9) mtspr SPRN_DSCR, r7 END_FTR_SECTION_IFSET(CPU_FTR_ARCH_206) --- linux-3.11.0.orig/arch/powerpc/mm/mem.c +++ linux-3.11.0/arch/powerpc/mm/mem.c @@ -297,12 +297,21 @@ } #endif /* ! CONFIG_NEED_MULTIPLE_NODES */ +static void __init register_page_bootmem_info(void) +{ + int i; + + for_each_online_node(i) + register_page_bootmem_info_node(NODE_DATA(i)); +} + void __init mem_init(void) { #ifdef CONFIG_SWIOTLB swiotlb_init(0); #endif + register_page_bootmem_info(); high_memory = (void *) __va(max_low_pfn * PAGE_SIZE); set_max_mapnr(max_pfn); free_all_bootmem(); --- linux-3.11.0.orig/arch/powerpc/mm/init_64.c +++ linux-3.11.0/arch/powerpc/mm/init_64.c @@ -300,5 +300,9 @@ { } +void register_page_bootmem_memmap(unsigned long section_nr, + struct page *start_page, unsigned long size) +{ +} #endif /* CONFIG_SPARSEMEM_VMEMMAP */ --- linux-3.11.0.orig/arch/powerpc/kernel/vio.c +++ linux-3.11.0/arch/powerpc/kernel/vio.c @@ -1529,11 +1529,15 @@ const char *cp; dn = dev->of_node; - if (!dn) - return -ENODEV; + if (!dn) { + strcat(buf, "\n"); + return strlen(buf); + } cp = of_get_property(dn, "compatible", NULL); - if (!cp) - return -ENODEV; + if (!cp) { + strcat(buf, "\n"); + return strlen(buf); + } return sprintf(buf, "vio:T%sS%s\n", vio_dev->type, cp); } --- linux-3.11.0.orig/arch/powerpc/kernel/iommu.c +++ linux-3.11.0/arch/powerpc/kernel/iommu.c @@ -661,7 +661,7 @@ /* number of bytes needed for the bitmap */ sz = BITS_TO_LONGS(tbl->it_size) * sizeof(unsigned long); - page = alloc_pages_node(nid, GFP_ATOMIC, get_order(sz)); + page = alloc_pages_node(nid, GFP_KERNEL, get_order(sz)); if (!page) panic("iommu_init_table: Can't allocate %ld bytes\n", sz); tbl->it_map = page_address(page); --- linux-3.11.0.orig/arch/powerpc/kernel/align.c +++ linux-3.11.0/arch/powerpc/kernel/align.c @@ -764,6 +764,16 @@ nb = aligninfo[instr].len; flags = aligninfo[instr].flags; + /* ldbrx/stdbrx overlap lfs/stfs in the DSISR unfortunately */ + if (IS_XFORM(instruction) && ((instruction >> 1) & 0x3ff) == 532) { + nb = 8; + flags = LD+SW; + } else if (IS_XFORM(instruction) && + ((instruction >> 1) & 0x3ff) == 660) { + nb = 8; + flags = ST+SW; + } + /* Byteswap little endian loads and stores */ swiz = 0; if (regs->msr & MSR_LE) { --- linux-3.11.0.orig/arch/powerpc/kernel/sysfs.c +++ linux-3.11.0/arch/powerpc/kernel/sysfs.c @@ -17,6 +17,7 @@ #include #include #include +#include #include "cacheinfo.h" @@ -179,15 +180,25 @@ SYSFS_PMCSETUP(dscr, SPRN_DSCR); SYSFS_PMCSETUP(pir, SPRN_PIR); +/* + Lets only enable read for phyp resources and + enable write when needed with a separate function. + Lets be conservative and default to pseries. +*/ static DEVICE_ATTR(mmcra, 0600, show_mmcra, store_mmcra); static DEVICE_ATTR(spurr, 0400, show_spurr, NULL); static DEVICE_ATTR(dscr, 0600, show_dscr, store_dscr); -static DEVICE_ATTR(purr, 0600, show_purr, store_purr); +static DEVICE_ATTR(purr, 0400, show_purr, store_purr); static DEVICE_ATTR(pir, 0400, show_pir, NULL); unsigned long dscr_default = 0; EXPORT_SYMBOL(dscr_default); +static void add_write_permission_dev_attr(struct device_attribute *attr) +{ + attr->attr.mode |= 0200; +} + static ssize_t show_dscr_default(struct device *dev, struct device_attribute *attr, char *buf) { @@ -394,8 +405,11 @@ if (cpu_has_feature(CPU_FTR_MMCRA)) device_create_file(s, &dev_attr_mmcra); - if (cpu_has_feature(CPU_FTR_PURR)) + if (cpu_has_feature(CPU_FTR_PURR)) { + if (!firmware_has_feature(FW_FEATURE_LPAR)) + add_write_permission_dev_attr(&dev_attr_purr); device_create_file(s, &dev_attr_purr); + } if (cpu_has_feature(CPU_FTR_SPURR)) device_create_file(s, &dev_attr_spurr); --- linux-3.11.0.orig/arch/powerpc/kernel/tm.S +++ linux-3.11.0/arch/powerpc/kernel/tm.S @@ -79,6 +79,11 @@ TABORT(R3) blr + .section ".toc","aw" +DSCR_DEFAULT: + .tc dscr_default[TC],dscr_default + + .section ".text" /* void tm_reclaim(struct thread_struct *thread, * unsigned long orig_msr, @@ -123,6 +128,7 @@ mr r15, r14 ori r15, r15, MSR_FP li r16, MSR_RI + ori r16, r16, MSR_EE /* IRQs hard off */ andc r15, r15, r16 oris r15, r15, MSR_VEC@h #ifdef CONFIG_VSX @@ -187,11 +193,18 @@ std r1, PACATMSCRATCH(r13) ld r1, PACAR1(r13) + /* Store the PPR in r11 and reset to decent value */ + std r11, GPR11(r1) /* Temporary stash */ + mfspr r11, SPRN_PPR + HMT_MEDIUM + /* Now get some more GPRS free */ std r7, GPR7(r1) /* Temporary stash */ std r12, GPR12(r1) /* '' '' '' */ ld r12, STACK_PARAM(0)(r1) /* Param 0, thread_struct * */ + std r11, THREAD_TM_PPR(r12) /* Store PPR and free r11 */ + addi r7, r12, PT_CKPT_REGS /* Thread's ckpt_regs */ /* Make r7 look like an exception frame so that we @@ -203,15 +216,19 @@ SAVE_GPR(0, r7) /* user r0 */ SAVE_GPR(2, r7) /* user r2 */ SAVE_4GPRS(3, r7) /* user r3-r6 */ - SAVE_4GPRS(8, r7) /* user r8-r11 */ + SAVE_GPR(8, r7) /* user r8 */ + SAVE_GPR(9, r7) /* user r9 */ + SAVE_GPR(10, r7) /* user r10 */ ld r3, PACATMSCRATCH(r13) /* user r1 */ ld r4, GPR7(r1) /* user r7 */ - ld r5, GPR12(r1) /* user r12 */ - GET_SCRATCH0(6) /* user r13 */ + ld r5, GPR11(r1) /* user r11 */ + ld r6, GPR12(r1) /* user r12 */ + GET_SCRATCH0(8) /* user r13 */ std r3, GPR1(r7) std r4, GPR7(r7) - std r5, GPR12(r7) - std r6, GPR13(r7) + std r5, GPR11(r7) + std r6, GPR12(r7) + std r8, GPR13(r7) SAVE_NVGPRS(r7) /* user r14-r31 */ @@ -234,14 +251,12 @@ std r6, _XER(r7) - /* ******************** TAR, PPR, DSCR ********** */ + /* ******************** TAR, DSCR ********** */ mfspr r3, SPRN_TAR - mfspr r4, SPRN_PPR - mfspr r5, SPRN_DSCR + mfspr r4, SPRN_DSCR std r3, THREAD_TM_TAR(r12) - std r4, THREAD_TM_PPR(r12) - std r5, THREAD_TM_DSCR(r12) + std r4, THREAD_TM_DSCR(r12) /* MSR and flags: We don't change CRs, and we don't need to alter * MSR. @@ -258,7 +273,7 @@ std r3, THREAD_TM_TFHAR(r12) std r4, THREAD_TM_TFIAR(r12) - /* AMR and PPR are checkpointed too, but are unsupported by Linux. */ + /* AMR is checkpointed too, but is unsupported by Linux. */ /* Restore original MSR/IRQ state & clear TM mode */ ld r14, TM_FRAME_L0(r1) /* Orig MSR */ @@ -274,6 +289,12 @@ mtcr r4 mtlr r0 ld r2, 40(r1) + + /* Load system default DSCR */ + ld r4, DSCR_DEFAULT@toc(r2) + ld r0, 0(r4) + mtspr SPRN_DSCR, r0 + blr @@ -358,25 +379,24 @@ restore_gprs: - /* ******************** TAR, PPR, DSCR ********** */ - ld r4, THREAD_TM_TAR(r3) - ld r5, THREAD_TM_PPR(r3) - ld r6, THREAD_TM_DSCR(r3) + /* ******************** CR,LR,CCR,MSR ********** */ + ld r4, _CTR(r7) + ld r5, _LINK(r7) + ld r6, _CCR(r7) + ld r8, _XER(r7) + + mtctr r4 + mtlr r5 + mtcr r6 + mtxer r8 + /* ******************** TAR ******************** */ + ld r4, THREAD_TM_TAR(r3) mtspr SPRN_TAR, r4 - mtspr SPRN_PPR, r5 - mtspr SPRN_DSCR, r6 - /* ******************** CR,LR,CCR,MSR ********** */ - ld r3, _CTR(r7) - ld r4, _LINK(r7) - ld r5, _CCR(r7) - ld r6, _XER(r7) - - mtctr r3 - mtlr r4 - mtcr r5 - mtxer r6 + /* Load up the PPR and DSCR in GPRs only at this stage */ + ld r5, THREAD_TM_DSCR(r3) + ld r6, THREAD_TM_PPR(r3) /* Clear the MSR RI since we are about to change R1. EE is already off */ @@ -384,19 +404,26 @@ mtmsrd r4, 1 REST_4GPRS(0, r7) /* GPR0-3 */ - REST_GPR(4, r7) /* GPR4-6 */ - REST_GPR(5, r7) - REST_GPR(6, r7) + REST_GPR(4, r7) /* GPR4 */ REST_4GPRS(8, r7) /* GPR8-11 */ REST_2GPRS(12, r7) /* GPR12-13 */ REST_NVGPRS(r7) /* GPR14-31 */ - ld r7, GPR7(r7) /* GPR7 */ + /* Load up PPR and DSCR here so we don't run with user values for long + */ + mtspr SPRN_DSCR, r5 + mtspr SPRN_PPR, r6 + + REST_GPR(5, r7) /* GPR5-7 */ + REST_GPR(6, r7) + ld r7, GPR7(r7) /* Commit register state as checkpointed state: */ TRECHKPT + HMT_MEDIUM + /* Our transactional state has now changed. * * Now just get out of here. Transactional (current) state will be @@ -419,6 +446,12 @@ mtcr r4 mtlr r0 ld r2, 40(r1) + + /* Load system default DSCR */ + ld r4, DSCR_DEFAULT@toc(r2) + ld r0, 0(r4) + mtspr SPRN_DSCR, r0 + blr /* ****************************************************************** */ --- linux-3.11.0.orig/arch/ia64/include/asm/processor.h +++ linux-3.11.0/arch/ia64/include/asm/processor.h @@ -319,7 +319,7 @@ regs->loadrs = 0; \ regs->r8 = get_dumpable(current->mm); /* set "don't zap registers" flag */ \ regs->r12 = new_sp - 16; /* allocate 16 byte scratch area */ \ - if (unlikely(!get_dumpable(current->mm))) { \ + if (unlikely(get_dumpable(current->mm) != SUID_DUMP_USER)) { \ /* \ * Zap scratch regs to avoid leaking bits between processes with different \ * uid/privileges. \ --- linux-3.11.0.orig/arch/arc/include/asm/spinlock.h +++ linux-3.11.0/arch/arc/include/asm/spinlock.h @@ -45,7 +45,14 @@ static inline void arch_spin_unlock(arch_spinlock_t *lock) { - lock->slock = __ARCH_SPIN_LOCK_UNLOCKED__; + unsigned int tmp = __ARCH_SPIN_LOCK_UNLOCKED__; + + __asm__ __volatile__( + " ex %0, [%1] \n" + : "+r" (tmp) + : "r"(&(lock->slock)) + : "memory"); + smp_mb(); } --- linux-3.11.0.orig/arch/arc/include/asm/delay.h +++ linux-3.11.0/arch/arc/include/asm/delay.h @@ -53,11 +53,10 @@ { unsigned long loops; - /* (long long) cast ensures 64 bit MPY - real or emulated + /* (u64) cast ensures 64 bit MPY - real or emulated * HZ * 4295 is pre-evaluated by gcc - hence only 2 mpy ops */ - loops = ((long long)(usecs * 4295 * HZ) * - (long long)(loops_per_jiffy)) >> 32; + loops = ((u64) usecs * 4295 * HZ * loops_per_jiffy) >> 32; __delay(loops); } --- linux-3.11.0.orig/arch/arc/include/asm/sections.h +++ linux-3.11.0/arch/arc/include/asm/sections.h @@ -11,7 +11,6 @@ #include -extern char _int_vec_base_lds[]; extern char __arc_dccm_base[]; extern char __dtb_start[]; --- linux-3.11.0.orig/arch/arc/include/asm/uaccess.h +++ linux-3.11.0/arch/arc/include/asm/uaccess.h @@ -43,7 +43,7 @@ * Because it essentially checks if buffer end is within limit and @len is * non-ngeative, which implies that buffer start will be within limit too. * - * The reason for rewriting being, for majorit yof cases, @len is generally + * The reason for rewriting being, for majority of cases, @len is generally * compile time constant, causing first sub-expression to be compile time * subsumed. * @@ -53,7 +53,7 @@ * */ #define __user_ok(addr, sz) (((sz) <= TASK_SIZE) && \ - (((addr)+(sz)) <= get_fs())) + ((addr) <= (get_fs() - (sz)))) #define __access_ok(addr, sz) (unlikely(__kernel_ok) || \ likely(__user_ok((addr), (sz)))) --- linux-3.11.0.orig/arch/arc/mm/fault.c +++ linux-3.11.0/arch/arc/mm/fault.c @@ -17,7 +17,7 @@ #include #include -static int handle_vmalloc_fault(struct mm_struct *mm, unsigned long address) +static int handle_vmalloc_fault(unsigned long address) { /* * Synchronize this task's top level page-table @@ -27,7 +27,7 @@ pud_t *pud, *pud_k; pmd_t *pmd, *pmd_k; - pgd = pgd_offset_fast(mm, address); + pgd = pgd_offset_fast(current->active_mm, address); pgd_k = pgd_offset_k(address); if (!pgd_present(*pgd_k)) @@ -73,7 +73,7 @@ * nothing more. */ if (address >= VMALLOC_START && address <= VMALLOC_END) { - ret = handle_vmalloc_fault(mm, address); + ret = handle_vmalloc_fault(address); if (unlikely(ret)) goto bad_area_nosemaphore; else --- linux-3.11.0.orig/arch/arc/kernel/signal.c +++ linux-3.11.0/arch/arc/kernel/signal.c @@ -101,7 +101,6 @@ { struct rt_sigframe __user *sf; unsigned int magic; - int err; struct pt_regs *regs = current_pt_regs(); /* Always make any pending restarted system calls return -EINTR */ @@ -119,15 +118,16 @@ if (!access_ok(VERIFY_READ, sf, sizeof(*sf))) goto badframe; - err = restore_usr_regs(regs, sf); - err |= __get_user(magic, &sf->sigret_magic); - if (err) + if (__get_user(magic, &sf->sigret_magic)) goto badframe; if (unlikely(is_do_ss_needed(magic))) if (restore_altstack(&sf->uc.uc_stack)) goto badframe; + if (restore_usr_regs(regs, sf)) + goto badframe; + /* Don't restart from sigreturn */ syscall_wont_restart(regs); @@ -191,6 +191,15 @@ return 1; /* + * w/o SA_SIGINFO, struct ucontext is partially populated (only + * uc_mcontext/uc_sigmask) for kernel's normal user state preservation + * during signal handler execution. This works for SA_SIGINFO as well + * although the semantics are now overloaded (the same reg state can be + * inspected by userland: but are they allowed to fiddle with it ? + */ + err |= stash_usr_regs(sf, regs, set); + + /* * SA_SIGINFO requires 3 args to signal handler: * #1: sig-no (common to any handler) * #2: struct siginfo @@ -213,14 +222,6 @@ magic = MAGIC_SIGALTSTK; } - /* - * w/o SA_SIGINFO, struct ucontext is partially populated (only - * uc_mcontext/uc_sigmask) for kernel's normal user state preservation - * during signal handler execution. This works for SA_SIGINFO as well - * although the semantics are now overloaded (the same reg state can be - * inspected by userland: but are they allowed to fiddle with it ? - */ - err |= stash_usr_regs(sf, regs, set); err |= __put_user(magic, &sf->sigret_magic); if (err) return err; --- linux-3.11.0.orig/arch/arc/kernel/setup.c +++ linux-3.11.0/arch/arc/kernel/setup.c @@ -47,10 +47,7 @@ READ_BCR(AUX_IDENTITY, cpu->core); cpu->timers = read_aux_reg(ARC_REG_TIMERS_BCR); - cpu->vec_base = read_aux_reg(AUX_INTR_VEC_BASE); - if (cpu->vec_base == 0) - cpu->vec_base = (unsigned int)_int_vec_base_lds; READ_BCR(ARC_REG_D_UNCACH_BCR, uncached_space); cpu->uncached_base = uncached_space.start << 24; --- linux-3.11.0.orig/arch/arc/kernel/irq.c +++ linux-3.11.0/arch/arc/kernel/irq.c @@ -24,7 +24,6 @@ * -Needed for each CPU (hence not foldable into init_IRQ) * * what it does ? - * -setup Vector Table Base Reg - in case Linux not linked at 0x8000_0000 * -Disable all IRQs (on CPU side) * -Optionally, setup the High priority Interrupts as Level 2 IRQs */ --- linux-3.11.0.orig/arch/arc/kernel/unaligned.c +++ linux-3.11.0/arch/arc/kernel/unaligned.c @@ -233,6 +233,12 @@ regs->status32 &= ~STATUS_DE_MASK; } else { regs->ret += state.instr_len; + + /* handle zero-overhead-loop */ + if ((regs->ret == regs->lp_end) && (regs->lp_count)) { + regs->ret = regs->lp_start; + regs->lp_count--; + } } return 0; --- linux-3.11.0.orig/arch/arc/kernel/head.S +++ linux-3.11.0/arch/arc/kernel/head.S @@ -34,6 +34,9 @@ ; IDENTITY Reg [ 3 2 1 0 ] ; (cpu-id) ^^^ => Zero for UP ARC700 ; => #Core-ID if SMP (Master 0) + ; Note that non-boot CPUs might not land here if halt-on-reset and + ; instead breath life from @first_lines_of_secondary, but we still + ; need to make sure only boot cpu takes this path. GET_CPU_ID r5 cmp r5, 0 jnz arc_platform_smp_wait_to_boot @@ -98,6 +101,8 @@ first_lines_of_secondary: + sr @_int_vec_base_lds, [AUX_INTR_VEC_BASE] + ; setup per-cpu idle task as "current" on this CPU ld r0, [@secondary_idle_tsk] SET_CURR_TASK_ON_CPU r0, r1 --- linux-3.11.0.orig/arch/arc/kernel/ptrace.c +++ linux-3.11.0/arch/arc/kernel/ptrace.c @@ -102,7 +102,7 @@ REG_IGNORE_ONE(pad2); REG_IN_CHUNK(callee, efa, cregs); /* callee_regs[r25..r13] */ REG_IGNORE_ONE(efa); /* efa update invalid */ - REG_IN_ONE(stop_pc, &ptregs->ret); /* stop_pc: PC update */ + REG_IGNORE_ONE(stop_pc); /* PC updated via @ret */ return ret; } --- linux-3.11.0.orig/arch/sparc/include/asm/jump_label.h +++ linux-3.11.0/arch/sparc/include/asm/jump_label.h @@ -9,7 +9,7 @@ static __always_inline bool arch_static_branch(struct static_key *key) { - asm goto("1:\n\t" + asm_volatile_goto("1:\n\t" "nop\n\t" "nop\n\t" ".pushsection __jump_table, \"aw\"\n\t" --- linux-3.11.0.orig/arch/sparc/lib/ksyms.c +++ linux-3.11.0/arch/sparc/lib/ksyms.c @@ -98,15 +98,6 @@ EXPORT_SYMBOL(___copy_in_user); EXPORT_SYMBOL(__clear_user); -/* RW semaphores */ -EXPORT_SYMBOL(__down_read); -EXPORT_SYMBOL(__down_read_trylock); -EXPORT_SYMBOL(__down_write); -EXPORT_SYMBOL(__down_write_trylock); -EXPORT_SYMBOL(__up_read); -EXPORT_SYMBOL(__up_write); -EXPORT_SYMBOL(__downgrade_write); - /* Atomic counter implementation. */ EXPORT_SYMBOL(atomic_add); EXPORT_SYMBOL(atomic_add_ret); --- linux-3.11.0.orig/arch/sparc/kernel/syscalls.S +++ linux-3.11.0/arch/sparc/kernel/syscalls.S @@ -152,7 +152,7 @@ srl %i4, 0, %o4 srl %i1, 0, %o1 srl %i2, 0, %o2 - ba,pt %xcc, 2f + ba,pt %xcc, 5f srl %i3, 0, %o3 linux_syscall_trace: @@ -182,13 +182,13 @@ srl %i1, 0, %o1 ! IEU0 Group ldx [%g6 + TI_FLAGS], %l0 ! Load - srl %i5, 0, %o5 ! IEU1 + srl %i3, 0, %o3 ! IEU0 srl %i2, 0, %o2 ! IEU0 Group andcc %l0, (_TIF_SYSCALL_TRACE|_TIF_SECCOMP|_TIF_SYSCALL_AUDIT|_TIF_SYSCALL_TRACEPOINT), %g0 bne,pn %icc, linux_syscall_trace32 ! CTI mov %i0, %l5 ! IEU1 - call %l7 ! CTI Group brk forced - srl %i3, 0, %o3 ! IEU0 +5: call %l7 ! CTI Group brk forced + srl %i5, 0, %o5 ! IEU1 ba,a,pt %xcc, 3f /* Linux native system calls enter here... */ --- linux-3.11.0.orig/arch/sparc/kernel/ds.c +++ linux-3.11.0/arch/sparc/kernel/ds.c @@ -849,9 +849,8 @@ if (boot_command && strlen(boot_command)) { unsigned long len; - strcpy(full_boot_str, "boot "); - strlcpy(full_boot_str + strlen("boot "), boot_command, - sizeof(full_boot_str + strlen("boot "))); + snprintf(full_boot_str, sizeof(full_boot_str), "boot %s", + boot_command); len = strlen(full_boot_str); if (reboot_data_supported) { --- linux-3.11.0.orig/arch/sparc/kernel/entry.S +++ linux-3.11.0/arch/sparc/kernel/entry.S @@ -839,7 +839,7 @@ nop call syscall_trace - nop + mov 1, %o1 1: /* We don't want to muck with user registers like a --- linux-3.11.0.orig/arch/sparc/kernel/trampoline_64.S +++ linux-3.11.0/arch/sparc/kernel/trampoline_64.S @@ -129,7 +129,6 @@ clr %l5 sethi %hi(num_kernel_image_mappings), %l6 lduw [%l6 + %lo(num_kernel_image_mappings)], %l6 - add %l6, 1, %l6 mov 15, %l7 BRANCH_IF_ANY_CHEETAH(g1,g5,2f) @@ -222,7 +221,6 @@ clr %l5 sethi %hi(num_kernel_image_mappings), %l6 lduw [%l6 + %lo(num_kernel_image_mappings)], %l6 - add %l6, 1, %l6 1: mov HV_FAST_MMU_MAP_PERM_ADDR, %o5 --- linux-3.11.0.orig/arch/sparc/kernel/ktlb.S +++ linux-3.11.0/arch/sparc/kernel/ktlb.S @@ -25,11 +25,10 @@ */ kvmap_itlb_4v: -kvmap_itlb_nonlinear: /* Catch kernel NULL pointer calls. */ sethi %hi(PAGE_SIZE), %g5 cmp %g4, %g5 - bleu,pn %xcc, kvmap_dtlb_longpath + blu,pn %xcc, kvmap_itlb_longpath nop KERN_TSB_LOOKUP_TL1(%g4, %g6, %g5, %g1, %g2, %g3, kvmap_itlb_load) --- linux-3.11.0.orig/arch/parisc/kernel/traps.c +++ linux-3.11.0/arch/parisc/kernel/traps.c @@ -805,14 +805,14 @@ else { /* - * The kernel should never fault on its own address space. + * The kernel should never fault on its own address space, + * unless pagefault_disable() was called before. */ - if (fault_space == 0) + if (fault_space == 0 && !in_atomic()) { pdc_chassis_send_status(PDC_CHASSIS_DIRECT_PANIC); parisc_terminate("Kernel Fault", regs, code, fault_address); - } } --- linux-3.11.0.orig/arch/parisc/kernel/head.S +++ linux-3.11.0/arch/parisc/kernel/head.S @@ -195,6 +195,8 @@ ldw MEM_PDC_HI(%r0),%r6 depd %r6, 31, 32, %r3 /* move to upper word */ + mfctl %cr30,%r6 /* PCX-W2 firmware bug */ + ldo PDC_PSW(%r0),%arg0 /* 21 */ ldo PDC_PSW_SET_DEFAULTS(%r0),%arg1 /* 2 */ ldo PDC_PSW_WIDE_BIT(%r0),%arg2 /* 2 */ @@ -203,6 +205,8 @@ copy %r0,%arg3 stext_pdc_ret: + mtctl %r6,%cr30 /* restore task thread info */ + /* restore rfi target address*/ ldd TI_TASK-THREAD_SZ_ALGN(%sp), %r10 tophys_r1 %r10 --- linux-3.11.0.orig/arch/arm/Kconfig +++ linux-3.11.0/arch/arm/Kconfig @@ -2212,6 +2212,8 @@ source "drivers/Kconfig" +source "ubuntu/Kconfig" + source "fs/Kconfig" source "arch/arm/Kconfig.debug" --- linux-3.11.0.orig/arch/arm/mach-omap2/pm.c +++ linux-3.11.0/arch/arm/mach-omap2/pm.c @@ -304,6 +304,9 @@ omap_init_cpufreq(); } + /* cpufreq dummy device instantiation */ + omap_init_cpufreq(); + #ifdef CONFIG_SUSPEND suspend_set_ops(&omap_pm_ops); #endif --- linux-3.11.0.orig/arch/arm/mach-omap2/cclock44xx_data.c +++ linux-3.11.0/arch/arm/mach-omap2/cclock44xx_data.c @@ -1632,7 +1632,7 @@ CLK(NULL, "auxclk5_src_ck", &auxclk5_src_ck), CLK(NULL, "auxclk5_ck", &auxclk5_ck), CLK(NULL, "auxclkreq5_ck", &auxclkreq5_ck), - CLK("omap-gpmc", "fck", &dummy_ck), + CLK("50000000.gpmc", "fck", &dummy_ck), CLK("omap_i2c.1", "ick", &dummy_ck), CLK("omap_i2c.2", "ick", &dummy_ck), CLK("omap_i2c.3", "ick", &dummy_ck), --- linux-3.11.0.orig/arch/arm/include/asm/cputype.h +++ linux-3.11.0/arch/arm/include/asm/cputype.h @@ -10,6 +10,7 @@ #define CPUID_TLBTYPE 3 #define CPUID_MPUIR 4 #define CPUID_MPIDR 5 +#define CPUID_REVIDR 6 #ifdef CONFIG_CPU_V7M #define CPUID_EXT_PFR0 0x40 --- linux-3.11.0.orig/arch/arm/include/asm/jump_label.h +++ linux-3.11.0/arch/arm/include/asm/jump_label.h @@ -16,7 +16,7 @@ static __always_inline bool arch_static_branch(struct static_key *key) { - asm goto("1:\n\t" + asm_volatile_goto("1:\n\t" JUMP_LABEL_NOP "\n\t" ".pushsection __jump_table, \"aw\"\n\t" ".word 1b, %l[l_yes], %c0\n\t" --- linux-3.11.0.orig/arch/arm/include/asm/syscall.h +++ linux-3.11.0/arch/arm/include/asm/syscall.h @@ -57,6 +57,9 @@ unsigned int i, unsigned int n, unsigned long *args) { + if (n == 0) + return; + if (i + n > SYSCALL_MAX_ARGS) { unsigned long *args_bad = args + SYSCALL_MAX_ARGS - i; unsigned int n_bad = n + i - SYSCALL_MAX_ARGS; @@ -81,6 +84,9 @@ unsigned int i, unsigned int n, const unsigned long *args) { + if (n == 0) + return; + if (i + n > SYSCALL_MAX_ARGS) { pr_warning("%s called with max args %d, handling only %d\n", __func__, i + n, SYSCALL_MAX_ARGS); --- linux-3.11.0.orig/arch/arm/include/asm/tlbflush.h +++ linux-3.11.0/arch/arm/include/asm/tlbflush.h @@ -319,6 +319,16 @@ #define tlb_op(f, regs, arg) __tlb_op(f, "p15, 0, %0, " regs, arg) #define tlb_l2_op(f, regs, arg) __tlb_op(f, "p15, 1, %0, " regs, arg) +static inline void __local_flush_tlb_all(void) +{ + const int zero = 0; + const unsigned int __tlb_flag = __cpu_tlb_flags; + + tlb_op(TLB_V4_U_FULL | TLB_V6_U_FULL, "c8, c7, 0", zero); + tlb_op(TLB_V4_D_FULL | TLB_V6_D_FULL, "c8, c6, 0", zero); + tlb_op(TLB_V4_I_FULL | TLB_V6_I_FULL, "c8, c5, 0", zero); +} + static inline void local_flush_tlb_all(void) { const int zero = 0; @@ -327,10 +337,8 @@ if (tlb_flag(TLB_WB)) dsb(); - tlb_op(TLB_V4_U_FULL | TLB_V6_U_FULL, "c8, c7, 0", zero); - tlb_op(TLB_V4_D_FULL | TLB_V6_D_FULL, "c8, c6, 0", zero); - tlb_op(TLB_V4_I_FULL | TLB_V6_I_FULL, "c8, c5, 0", zero); - tlb_op(TLB_V7_UIS_FULL, "c8, c3, 0", zero); + __local_flush_tlb_all(); + tlb_op(TLB_V7_UIS_FULL, "c8, c7, 0", zero); if (tlb_flag(TLB_BARRIER)) { dsb(); @@ -338,31 +346,69 @@ } } -static inline void local_flush_tlb_mm(struct mm_struct *mm) +static inline void __flush_tlb_all(void) { const int zero = 0; - const int asid = ASID(mm); const unsigned int __tlb_flag = __cpu_tlb_flags; if (tlb_flag(TLB_WB)) dsb(); + __local_flush_tlb_all(); + tlb_op(TLB_V7_UIS_FULL, "c8, c3, 0", zero); + + if (tlb_flag(TLB_BARRIER)) { + dsb(); + isb(); + } +} + +static inline void __local_flush_tlb_mm(struct mm_struct *mm) +{ + const int zero = 0; + const int asid = ASID(mm); + const unsigned int __tlb_flag = __cpu_tlb_flags; + if (possible_tlb_flags & (TLB_V4_U_FULL|TLB_V4_D_FULL|TLB_V4_I_FULL)) { - if (cpumask_test_cpu(get_cpu(), mm_cpumask(mm))) { + if (cpumask_test_cpu(smp_processor_id(), mm_cpumask(mm))) { tlb_op(TLB_V4_U_FULL, "c8, c7, 0", zero); tlb_op(TLB_V4_D_FULL, "c8, c6, 0", zero); tlb_op(TLB_V4_I_FULL, "c8, c5, 0", zero); } - put_cpu(); } tlb_op(TLB_V6_U_ASID, "c8, c7, 2", asid); tlb_op(TLB_V6_D_ASID, "c8, c6, 2", asid); tlb_op(TLB_V6_I_ASID, "c8, c5, 2", asid); +} + +static inline void local_flush_tlb_mm(struct mm_struct *mm) +{ + const int asid = ASID(mm); + const unsigned int __tlb_flag = __cpu_tlb_flags; + + if (tlb_flag(TLB_WB)) + dsb(); + + __local_flush_tlb_mm(mm); + tlb_op(TLB_V7_UIS_ASID, "c8, c7, 2", asid); + + if (tlb_flag(TLB_BARRIER)) + dsb(); +} + +static inline void __flush_tlb_mm(struct mm_struct *mm) +{ + const unsigned int __tlb_flag = __cpu_tlb_flags; + + if (tlb_flag(TLB_WB)) + dsb(); + + __local_flush_tlb_mm(mm); #ifdef CONFIG_ARM_ERRATA_720789 - tlb_op(TLB_V7_UIS_ASID, "c8, c3, 0", zero); + tlb_op(TLB_V7_UIS_ASID, "c8, c3, 0", 0); #else - tlb_op(TLB_V7_UIS_ASID, "c8, c3, 2", asid); + tlb_op(TLB_V7_UIS_ASID, "c8, c3, 2", ASID(mm)); #endif if (tlb_flag(TLB_BARRIER)) @@ -370,16 +416,13 @@ } static inline void -local_flush_tlb_page(struct vm_area_struct *vma, unsigned long uaddr) +__local_flush_tlb_page(struct vm_area_struct *vma, unsigned long uaddr) { const int zero = 0; const unsigned int __tlb_flag = __cpu_tlb_flags; uaddr = (uaddr & PAGE_MASK) | ASID(vma->vm_mm); - if (tlb_flag(TLB_WB)) - dsb(); - if (possible_tlb_flags & (TLB_V4_U_PAGE|TLB_V4_D_PAGE|TLB_V4_I_PAGE|TLB_V4_I_FULL) && cpumask_test_cpu(smp_processor_id(), mm_cpumask(vma->vm_mm))) { tlb_op(TLB_V4_U_PAGE, "c8, c7, 1", uaddr); @@ -392,6 +435,36 @@ tlb_op(TLB_V6_U_PAGE, "c8, c7, 1", uaddr); tlb_op(TLB_V6_D_PAGE, "c8, c6, 1", uaddr); tlb_op(TLB_V6_I_PAGE, "c8, c5, 1", uaddr); +} + +static inline void +local_flush_tlb_page(struct vm_area_struct *vma, unsigned long uaddr) +{ + const unsigned int __tlb_flag = __cpu_tlb_flags; + + uaddr = (uaddr & PAGE_MASK) | ASID(vma->vm_mm); + + if (tlb_flag(TLB_WB)) + dsb(); + + __local_flush_tlb_page(vma, uaddr); + tlb_op(TLB_V7_UIS_PAGE, "c8, c7, 1", uaddr); + + if (tlb_flag(TLB_BARRIER)) + dsb(); +} + +static inline void +__flush_tlb_page(struct vm_area_struct *vma, unsigned long uaddr) +{ + const unsigned int __tlb_flag = __cpu_tlb_flags; + + uaddr = (uaddr & PAGE_MASK) | ASID(vma->vm_mm); + + if (tlb_flag(TLB_WB)) + dsb(); + + __local_flush_tlb_page(vma, uaddr); #ifdef CONFIG_ARM_ERRATA_720789 tlb_op(TLB_V7_UIS_PAGE, "c8, c3, 3", uaddr & PAGE_MASK); #else @@ -402,16 +475,11 @@ dsb(); } -static inline void local_flush_tlb_kernel_page(unsigned long kaddr) +static inline void __local_flush_tlb_kernel_page(unsigned long kaddr) { const int zero = 0; const unsigned int __tlb_flag = __cpu_tlb_flags; - kaddr &= PAGE_MASK; - - if (tlb_flag(TLB_WB)) - dsb(); - tlb_op(TLB_V4_U_PAGE, "c8, c7, 1", kaddr); tlb_op(TLB_V4_D_PAGE, "c8, c6, 1", kaddr); tlb_op(TLB_V4_I_PAGE, "c8, c5, 1", kaddr); @@ -421,6 +489,36 @@ tlb_op(TLB_V6_U_PAGE, "c8, c7, 1", kaddr); tlb_op(TLB_V6_D_PAGE, "c8, c6, 1", kaddr); tlb_op(TLB_V6_I_PAGE, "c8, c5, 1", kaddr); +} + +static inline void local_flush_tlb_kernel_page(unsigned long kaddr) +{ + const unsigned int __tlb_flag = __cpu_tlb_flags; + + kaddr &= PAGE_MASK; + + if (tlb_flag(TLB_WB)) + dsb(); + + __local_flush_tlb_kernel_page(kaddr); + tlb_op(TLB_V7_UIS_PAGE, "c8, c7, 1", kaddr); + + if (tlb_flag(TLB_BARRIER)) { + dsb(); + isb(); + } +} + +static inline void __flush_tlb_kernel_page(unsigned long kaddr) +{ + const unsigned int __tlb_flag = __cpu_tlb_flags; + + kaddr &= PAGE_MASK; + + if (tlb_flag(TLB_WB)) + dsb(); + + __local_flush_tlb_kernel_page(kaddr); tlb_op(TLB_V7_UIS_PAGE, "c8, c3, 1", kaddr); if (tlb_flag(TLB_BARRIER)) { @@ -443,37 +541,6 @@ isb(); } -#include -#ifdef CONFIG_ARM_ERRATA_798181 -static inline int erratum_a15_798181(void) -{ - unsigned int midr = read_cpuid_id(); - - /* Cortex-A15 r0p0..r3p2 affected */ - if ((midr & 0xff0ffff0) != 0x410fc0f0 || midr > 0x413fc0f2) - return 0; - return 1; -} - -static inline void dummy_flush_tlb_a15_erratum(void) -{ - /* - * Dummy TLBIMVAIS. Using the unmapped address 0 and ASID 0. - */ - asm("mcr p15, 0, %0, c8, c3, 1" : : "r" (0)); - dsb(); -} -#else -static inline int erratum_a15_798181(void) -{ - return 0; -} - -static inline void dummy_flush_tlb_a15_erratum(void) -{ -} -#endif - /* * flush_pmd_entry * @@ -580,4 +647,21 @@ #endif +#ifndef __ASSEMBLY__ +#ifdef CONFIG_ARM_ERRATA_798181 +extern void erratum_a15_798181_init(void); +#else +static inline void erratum_a15_798181_init(void) {} +#endif +extern bool (*erratum_a15_798181_handler)(void); + +static inline bool erratum_a15_798181(void) +{ + if (unlikely(IS_ENABLED(CONFIG_ARM_ERRATA_798181) && + erratum_a15_798181_handler)) + return erratum_a15_798181_handler(); + return false; +} +#endif + #endif --- linux-3.11.0.orig/arch/arm/include/asm/outercache.h +++ linux-3.11.0/arch/arm/include/asm/outercache.h @@ -37,10 +37,10 @@ void (*resume)(void); }; -#ifdef CONFIG_OUTER_CACHE - extern struct outer_cache_fns outer_cache; +#ifdef CONFIG_OUTER_CACHE + static inline void outer_inv_range(phys_addr_t start, phys_addr_t end) { if (outer_cache.inv_range) --- linux-3.11.0.orig/arch/arm/include/asm/mach/arch.h +++ linux-3.11.0/arch/arm/include/asm/mach/arch.h @@ -35,7 +35,7 @@ unsigned int nr_irqs; /* number of IRQs */ #ifdef CONFIG_ZONE_DMA - unsigned long dma_zone_size; /* size of DMA-able area */ + phys_addr_t dma_zone_size; /* size of DMA-able area */ #endif unsigned int video_start; /* start of video RAM */ --- linux-3.11.0.orig/arch/arm/xen/enlighten.c +++ linux-3.11.0/arch/arm/xen/enlighten.c @@ -273,12 +273,15 @@ static int __init xen_pm_init(void) { + if (!xen_domain()) + return -ENODEV; + pm_power_off = xen_power_off; arm_pm_restart = xen_restart; return 0; } -subsys_initcall(xen_pm_init); +late_initcall(xen_pm_init); static irqreturn_t xen_arm_callback(int irq, void *arg) { --- linux-3.11.0.orig/arch/arm/crypto/aes-armv4.S +++ linux-3.11.0/arch/arm/crypto/aes-armv4.S @@ -148,7 +148,7 @@ @ const AES_KEY *key) { .align 5 ENTRY(AES_encrypt) - sub r3,pc,#8 @ AES_encrypt + adr r3,AES_encrypt stmdb sp!,{r1,r4-r12,lr} mov r12,r0 @ inp mov r11,r2 @@ -381,7 +381,7 @@ .align 5 ENTRY(private_AES_set_encrypt_key) _armv4_AES_set_encrypt_key: - sub r3,pc,#8 @ AES_set_encrypt_key + adr r3,_armv4_AES_set_encrypt_key teq r0,#0 moveq r0,#-1 beq .Labrt @@ -843,7 +843,7 @@ @ const AES_KEY *key) { .align 5 ENTRY(AES_decrypt) - sub r3,pc,#8 @ AES_decrypt + adr r3,AES_decrypt stmdb sp!,{r1,r4-r12,lr} mov r12,r0 @ inp mov r11,r2 --- linux-3.11.0.orig/arch/arm/mach-tegra/Kconfig +++ linux-3.11.0/arch/arm/mach-tegra/Kconfig @@ -2,18 +2,24 @@ bool "NVIDIA Tegra" if ARCH_MULTI_V7 select ARCH_HAS_CPUFREQ select ARCH_REQUIRE_GPIOLIB + select ARM_GIC select CLKDEV_LOOKUP select CLKSRC_MMIO select CLKSRC_OF select COMMON_CLK + select CPU_V7 select GENERIC_CLOCKEVENTS select HAVE_ARM_SCU if SMP select HAVE_ARM_TWD if LOCAL_TIMERS select HAVE_CLK select HAVE_SMP select MIGHT_HAVE_CACHE_L2X0 + select PINCTRL select SOC_BUS select SPARSE_IRQ + select USB_ARCH_HAS_EHCI if USB_SUPPORT + select USB_ULPI if USB_PHY + select USB_ULPI_VIEWPORT if USB_PHY select USE_OF help This enables support for NVIDIA Tegra based systems. @@ -27,15 +33,9 @@ select ARM_ERRATA_720789 select ARM_ERRATA_754327 if SMP select ARM_ERRATA_764369 if SMP - select ARM_GIC - select CPU_V7 - select PINCTRL select PINCTRL_TEGRA20 select PL310_ERRATA_727915 if CACHE_L2X0 select PL310_ERRATA_769419 if CACHE_L2X0 - select USB_ARCH_HAS_EHCI if USB_SUPPORT - select USB_ULPI if USB_PHY - select USB_ULPI_VIEWPORT if USB_PHY help Support for NVIDIA Tegra AP20 and T20 processors, based on the ARM CortexA9MP CPU and the ARM PL310 L2 cache controller @@ -44,14 +44,8 @@ bool "Enable support for Tegra30 family" select ARM_ERRATA_754322 select ARM_ERRATA_764369 if SMP - select ARM_GIC - select CPU_V7 - select PINCTRL select PINCTRL_TEGRA30 select PL310_ERRATA_769419 if CACHE_L2X0 - select USB_ARCH_HAS_EHCI if USB_SUPPORT - select USB_ULPI if USB_PHY - select USB_ULPI_VIEWPORT if USB_PHY help Support for NVIDIA Tegra T30 processor family, based on the ARM CortexA9MP CPU and the ARM PL310 L2 cache controller @@ -59,10 +53,7 @@ config ARCH_TEGRA_114_SOC bool "Enable support for Tegra114 family" select HAVE_ARM_ARCH_TIMER - select ARM_GIC select ARM_L1_CACHE_SHIFT_6 - select CPU_V7 - select PINCTRL select PINCTRL_TEGRA114 help Support for NVIDIA Tegra T114 processor family, based on the --- linux-3.11.0.orig/arch/arm/mach-integrator/pci_v3.h +++ linux-3.11.0/arch/arm/mach-integrator/pci_v3.h @@ -1,2 +1,9 @@ /* Simple oneliner include to the PCIv3 early init */ +#ifdef CONFIG_PCI extern int pci_v3_early_init(void); +#else +static inline int pci_v3_early_init(void) +{ + return 0; +} +#endif --- linux-3.11.0.orig/arch/arm/mach-virt/virt.c +++ linux-3.11.0/arch/arm/mach-virt/virt.c @@ -21,11 +21,13 @@ #include #include #include +#include #include static void __init virt_init(void) { + of_clk_init(NULL); of_platform_populate(NULL, of_default_bus_match_table, NULL, NULL); } --- linux-3.11.0.orig/arch/arm/kvm/reset.c +++ linux-3.11.0/arch/arm/kvm/reset.c @@ -58,14 +58,14 @@ */ int kvm_reset_vcpu(struct kvm_vcpu *vcpu) { - struct kvm_regs *cpu_reset; + struct kvm_regs *reset_regs; const struct kvm_irq_level *cpu_vtimer_irq; switch (vcpu->arch.target) { case KVM_ARM_TARGET_CORTEX_A15: if (vcpu->vcpu_id > a15_max_cpu_idx) return -EINVAL; - cpu_reset = &a15_regs_reset; + reset_regs = &a15_regs_reset; vcpu->arch.midr = read_cpuid_id(); cpu_vtimer_irq = &a15_vtimer_irq; break; @@ -74,7 +74,7 @@ } /* Reset core registers */ - memcpy(&vcpu->arch.regs, cpu_reset, sizeof(vcpu->arch.regs)); + memcpy(&vcpu->arch.regs, reset_regs, sizeof(vcpu->arch.regs)); /* Reset CP15 registers */ kvm_reset_coprocs(vcpu); --- linux-3.11.0.orig/arch/arm/configs/multi_v7_defconfig +++ linux-3.11.0/arch/arm/configs/multi_v7_defconfig @@ -46,6 +46,7 @@ CONFIG_SMP=y CONFIG_HIGHPTE=y CONFIG_ARM_APPENDED_DTB=y +CONFIG_ARM_ATAG_DTB_COMPAT=y CONFIG_NET=y CONFIG_UNIX=y CONFIG_INET=y --- linux-3.11.0.orig/arch/arm/boot/compressed/Makefile +++ linux-3.11.0/arch/arm/boot/compressed/Makefile @@ -3,6 +3,7 @@ # # create a compressed vmlinuz image from the original vmlinux # +KBUILD_CFLAGS := $(filter-out -fstack-protector, $(KBUILD_CFLAGS)) -fno-stack-protector OBJS = --- linux-3.11.0.orig/arch/arm/boot/dts/imx6q-sabresd.dts +++ linux-3.11.0/arch/arm/boot/dts/imx6q-sabresd.dts @@ -20,6 +20,10 @@ compatible = "fsl,imx6q-sabresd", "fsl,imx6q"; }; +&sata { + status = "okay"; +}; + &iomuxc { pinctrl-names = "default"; pinctrl-0 = <&pinctrl_hog>; --- linux-3.11.0.orig/arch/arm/boot/dts/imx6q-sabreauto.dts +++ linux-3.11.0/arch/arm/boot/dts/imx6q-sabreauto.dts @@ -20,6 +20,10 @@ compatible = "fsl,imx6q-sabreauto", "fsl,imx6q"; }; +&sata { + status = "okay"; +}; + &iomuxc { pinctrl-names = "default"; pinctrl-0 = <&pinctrl_hog>; --- linux-3.11.0.orig/arch/arm/boot/dts/imx6q.dtsi +++ linux-3.11.0/arch/arm/boot/dts/imx6q.dtsi @@ -428,6 +428,15 @@ }; }; + sata: sata@02200000 { + compatible = "fsl,imx6q-ahci"; + reg = <0x02200000 0x4000>; + interrupts = <0 39 0x04>; + clocks = <&clks 154>, <&clks 187>, <&clks 105>; + clock-names = "sata", "sata_ref", "ahb"; + status = "disabled"; + }; + ipu2: ipu@02800000 { #crtc-cells = <1>; compatible = "fsl,imx6q-ipu"; --- linux-3.11.0.orig/arch/arm/boot/dts/omap4-panda-common.dtsi +++ linux-3.11.0/arch/arm/boot/dts/omap4-panda-common.dtsi @@ -107,6 +107,19 @@ */ clock-frequency = <19200000>; }; + + /* regulator for wl12xx on sdio5 */ + wl12xx_vmmc: wl12xx_vmmc { + pinctrl-names = "default"; + pinctrl-0 = <&wl12xx_gpio>; + compatible = "regulator-fixed"; + regulator-name = "vwl1271"; + regulator-min-microvolt = <1800000>; + regulator-max-microvolt = <1800000>; + gpio = <&gpio2 11 0>; + startup-delay-us = <70000>; + enable-active-high; + }; }; &omap4_pmx_wkup { @@ -235,6 +248,33 @@ 0x1c (PIN_OUTPUT | MUX_MODE3) /* gpio_wk8 */ >; }; + + /* + * wl12xx GPIO outputs for WLAN_EN, BT_EN, FM_EN, BT_WAKEUP + * REVISIT: Are the pull-ups needed for GPIO 48 and 49? + */ + wl12xx_gpio: pinmux_wl12xx_gpio { + pinctrl-single,pins = < + 0x26 (PIN_OUTPUT | MUX_MODE3) /* gpmc_a19.gpio_43 */ + 0x2c (PIN_OUTPUT | MUX_MODE3) /* gpmc_a22.gpio_46 */ + 0x30 (PIN_OUTPUT_PULLUP | MUX_MODE3) /* gpmc_a24.gpio_48 */ + 0x32 (PIN_OUTPUT_PULLUP | MUX_MODE3) /* gpmc_a25.gpio_49 */ + >; + }; + + /* wl12xx GPIO inputs and SDIO pins */ + wl12xx_pins: pinmux_wl12xx_pins { + pinctrl-single,pins = < + 0x38 (PIN_INPUT | MUX_MODE3) /* gpmc_ncs2.gpio_52 */ + 0x3a (PIN_INPUT | MUX_MODE3) /* gpmc_ncs3.gpio_53 */ + 0x108 (PIN_OUTPUT | MUX_MODE0) /* sdmmc5_clk.sdmmc5_clk */ + 0x10a (PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc5_cmd.sdmmc5_cmd */ + 0x10c (PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc5_dat0.sdmmc5_dat0 */ + 0x10e (PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc5_dat1.sdmmc5_dat1 */ + 0x110 (PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc5_dat2.sdmmc5_dat2 */ + 0x112 (PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc5_dat3.sdmmc5_dat3 */ + >; + }; }; &i2c1 { @@ -314,8 +354,12 @@ }; &mmc5 { - ti,non-removable; + pinctrl-names = "default"; + pinctrl-0 = <&wl12xx_pins>; + vmmc-supply = <&wl12xx_vmmc>; + non-removable; bus-width = <4>; + cap-power-off-card; }; &emif1 { --- linux-3.11.0.orig/arch/arm/boot/dts/integratorcp.dts +++ linux-3.11.0/arch/arm/boot/dts/integratorcp.dts @@ -9,11 +9,6 @@ model = "ARM Integrator/CP"; compatible = "arm,integrator-cp"; - aliases { - arm,timer-primary = &timer2; - arm,timer-secondary = &timer1; - }; - chosen { bootargs = "root=/dev/ram0 console=ttyAMA0,38400n8 earlyprintk"; }; @@ -24,14 +19,18 @@ }; timer0: timer@13000000 { + /* TIMER0 runs @ 25MHz */ compatible = "arm,integrator-cp-timer"; + status = "disabled"; }; timer1: timer@13000100 { + /* TIMER1 runs @ 1MHz */ compatible = "arm,integrator-cp-timer"; }; timer2: timer@13000200 { + /* TIMER2 runs @ 1MHz */ compatible = "arm,integrator-cp-timer"; }; --- linux-3.11.0.orig/arch/arm/boot/dts/imx6q-sabrelite.dts +++ linux-3.11.0/arch/arm/boot/dts/imx6q-sabrelite.dts @@ -65,6 +65,10 @@ }; }; +&sata { + status = "okay"; +}; + &ecspi1 { fsl,spi-num-chipselects = <1>; cs-gpios = <&gpio3 19 0>; --- linux-3.11.0.orig/arch/arm/mach-highbank/Makefile +++ linux-3.11.0/arch/arm/mach-highbank/Makefile @@ -1,3 +1,5 @@ +KBUILD_CFLAGS += -I$(srctree)/arch/arm/mach-highbank/include + obj-y := highbank.o system.o smc.o plus_sec := $(call as-instr,.arch_extension sec,+sec) --- linux-3.11.0.orig/arch/arm/mach-highbank/Kconfig +++ linux-3.11.0/arch/arm/mach-highbank/Kconfig @@ -1,9 +1,14 @@ config ARCH_HIGHBANK bool "Calxeda ECX-1000/2000 (Highbank/Midway)" if ARCH_MULTI_V7 + select ARCH_DMA_ADDR_T_64BIT if ARM_LPAE select ARCH_HAS_CPUFREQ + select ARCH_HAS_HOLES_MEMORYMODEL select ARCH_HAS_OPP select ARCH_WANT_OPTIONAL_GPIOLIB select ARM_AMBA + select ARM_ERRATA_764369 + select ARM_ERRATA_775420 + select ARM_ERRATA_798181 select ARM_GIC select ARM_TIMER_SP804 select CACHE_L2X0 @@ -18,3 +23,4 @@ select PL320_MBOX select SPARSE_IRQ select USE_OF + select ZONE_DMA if ARM_LPAE --- linux-3.11.0.orig/arch/arm/mach-highbank/highbank.c +++ linux-3.11.0/arch/arm/mach-highbank/highbank.c @@ -18,14 +18,11 @@ #include #include #include -#include #include -#include #include #include #include #include -#include #include #include @@ -35,7 +32,6 @@ #include #include #include -#include #include "core.h" #include "sysregs.h" @@ -65,13 +61,11 @@ HB_JUMP_TABLE_PHYS(cpu) + 15); } -#ifdef CONFIG_CACHE_L2X0 static void highbank_l2x0_disable(void) { /* Disable PL310 L2 Cache controller */ highbank_smc1(0x102, 0x0); } -#endif static void __init highbank_init_irq(void) { @@ -80,12 +74,13 @@ if (of_find_compatible_node(NULL, NULL, "arm,cortex-a9")) highbank_scu_map_io(); -#ifdef CONFIG_CACHE_L2X0 /* Enable PL310 L2 Cache controller */ - highbank_smc1(0x102, 0x1); - l2x0_of_init(0, ~0UL); - outer_cache.disable = highbank_l2x0_disable; -#endif + if (IS_ENABLED(CONFIG_CACHE_L2X0) && + of_find_compatible_node(NULL, NULL, "arm,pl310-cache")) { + highbank_smc1(0x102, 0x1); + l2x0_of_init(0, ~0UL); + outer_cache.disable = highbank_l2x0_disable; + } } static void __init highbank_timer_init(void) @@ -176,6 +171,9 @@ }; DT_MACHINE_START(HIGHBANK, "Highbank") +#if defined(CONFIG_ZONE_DMA) && defined(CONFIG_ARM_LPAE) + .dma_zone_size = (4ULL * SZ_1G), +#endif .smp = smp_ops(highbank_smp_ops), .init_irq = highbank_init_irq, .init_time = highbank_timer_init, --- linux-3.11.0.orig/arch/arm/mach-versatile/pci.c +++ linux-3.11.0/arch/arm/mach-versatile/pci.c @@ -43,9 +43,9 @@ #define PCI_IMAP0 __IO_ADDRESS(VERSATILE_PCI_CORE_BASE+0x0) #define PCI_IMAP1 __IO_ADDRESS(VERSATILE_PCI_CORE_BASE+0x4) #define PCI_IMAP2 __IO_ADDRESS(VERSATILE_PCI_CORE_BASE+0x8) -#define PCI_SMAP0 __IO_ADDRESS(VERSATILE_PCI_CORE_BASE+0x10) -#define PCI_SMAP1 __IO_ADDRESS(VERSATILE_PCI_CORE_BASE+0x14) -#define PCI_SMAP2 __IO_ADDRESS(VERSATILE_PCI_CORE_BASE+0x18) +#define PCI_SMAP0 __IO_ADDRESS(VERSATILE_PCI_CORE_BASE+0x14) +#define PCI_SMAP1 __IO_ADDRESS(VERSATILE_PCI_CORE_BASE+0x18) +#define PCI_SMAP2 __IO_ADDRESS(VERSATILE_PCI_CORE_BASE+0x1c) #define PCI_SELFID __IO_ADDRESS(VERSATILE_PCI_CORE_BASE+0xc) #define DEVICE_ID_OFFSET 0x00 @@ -170,8 +170,8 @@ .write = versatile_write_config, }; -static struct resource io_mem = { - .name = "PCI I/O space", +static struct resource unused_mem = { + .name = "PCI unused", .start = VERSATILE_PCI_MEM_BASE0, .end = VERSATILE_PCI_MEM_BASE0+VERSATILE_PCI_MEM_BASE0_SIZE-1, .flags = IORESOURCE_MEM, @@ -195,9 +195,9 @@ { int ret = 0; - ret = request_resource(&iomem_resource, &io_mem); + ret = request_resource(&iomem_resource, &unused_mem); if (ret) { - printk(KERN_ERR "PCI: unable to allocate I/O " + printk(KERN_ERR "PCI: unable to allocate unused " "memory region (%d)\n", ret); goto out; } @@ -205,7 +205,7 @@ if (ret) { printk(KERN_ERR "PCI: unable to allocate non-prefetchable " "memory region (%d)\n", ret); - goto release_io_mem; + goto release_unused_mem; } ret = request_resource(&iomem_resource, &pre_mem); if (ret) { @@ -225,8 +225,8 @@ release_non_mem: release_resource(&non_mem); - release_io_mem: - release_resource(&io_mem); + release_unused_mem: + release_resource(&unused_mem); out: return ret; } @@ -246,7 +246,7 @@ goto out; } - ret = pci_ioremap_io(0, VERSATILE_PCI_MEM_BASE0); + ret = pci_ioremap_io(0, VERSATILE_PCI_IO_BASE); if (ret) goto out; @@ -295,6 +295,19 @@ __raw_writel(PHYS_OFFSET, local_pci_cfg_base + PCI_BASE_ADDRESS_2); /* + * For many years the kernel and QEMU were symbiotically buggy + * in that they both assumed the same broken IRQ mapping. + * QEMU therefore attempts to auto-detect old broken kernels + * so that they still work on newer QEMU as they did on old + * QEMU. Since we now use the correct (ie matching-hardware) + * IRQ mapping we write a definitely different value to a + * PCI_INTERRUPT_LINE register to tell QEMU that we expect + * real hardware behaviour and it need not be backwards + * compatible for us. This write is harmless on real hardware. + */ + __raw_writel(0, VERSATILE_PCI_VIRT_BASE+PCI_INTERRUPT_LINE); + + /* * Do not to map Versatile FPGA PCI device into memory space */ pci_slot_ignore |= (1 << myslot); @@ -327,13 +340,13 @@ { int irq; - /* slot, pin, irq - * 24 1 IRQ_SIC_PCI0 - * 25 1 IRQ_SIC_PCI1 - * 26 1 IRQ_SIC_PCI2 - * 27 1 IRQ_SIC_PCI3 + /* + * Slot INTA INTB INTC INTD + * 31 PCI1 PCI2 PCI3 PCI0 + * 30 PCI0 PCI1 PCI2 PCI3 + * 29 PCI3 PCI0 PCI1 PCI2 */ - irq = IRQ_SIC_PCI0 + ((slot - 24 + pin - 1) & 3); + irq = IRQ_SIC_PCI0 + ((slot + 2 + pin - 1) & 3); return irq; } --- linux-3.11.0.orig/arch/arm/mach-versatile/include/mach/platform.h +++ linux-3.11.0/arch/arm/mach-versatile/include/mach/platform.h @@ -231,12 +231,14 @@ /* PCI space */ #define VERSATILE_PCI_BASE 0x41000000 /* PCI Interface */ #define VERSATILE_PCI_CFG_BASE 0x42000000 +#define VERSATILE_PCI_IO_BASE 0x43000000 #define VERSATILE_PCI_MEM_BASE0 0x44000000 #define VERSATILE_PCI_MEM_BASE1 0x50000000 #define VERSATILE_PCI_MEM_BASE2 0x60000000 /* Sizes of above maps */ #define VERSATILE_PCI_BASE_SIZE 0x01000000 #define VERSATILE_PCI_CFG_BASE_SIZE 0x02000000 +#define VERSATILE_PCI_IO_BASE_SIZE 0x01000000 #define VERSATILE_PCI_MEM_BASE0_SIZE 0x0c000000 /* 32Mb */ #define VERSATILE_PCI_MEM_BASE1_SIZE 0x10000000 /* 256Mb */ #define VERSATILE_PCI_MEM_BASE2_SIZE 0x10000000 /* 256Mb */ --- linux-3.11.0.orig/arch/arm/mm/init.c +++ linux-3.11.0/arch/arm/mm/init.c @@ -207,7 +207,7 @@ #ifdef CONFIG_ZONE_DMA -unsigned long arm_dma_zone_size __read_mostly; +phys_addr_t arm_dma_zone_size __read_mostly; EXPORT_SYMBOL(arm_dma_zone_size); /* --- linux-3.11.0.orig/arch/arm/mm/context.c +++ linux-3.11.0/arch/arm/mm/context.c @@ -162,10 +162,7 @@ } /* Queue a TLB invalidate and flush the I-cache if necessary. */ - if (!tlb_ops_need_broadcast()) - cpumask_set_cpu(cpu, &tlb_flush_pending); - else - cpumask_setall(&tlb_flush_pending); + cpumask_setall(&tlb_flush_pending); if (icache_is_vivt_asid_tagged()) __flush_icache_all(); @@ -245,8 +242,6 @@ if (cpumask_test_and_clear_cpu(cpu, &tlb_flush_pending)) { local_flush_bp_all(); local_flush_tlb_all(); - if (erratum_a15_798181()) - dummy_flush_tlb_a15_erratum(); } atomic64_set(&per_cpu(active_asids, cpu), asid); --- linux-3.11.0.orig/arch/arm/kernel/setup.c +++ linux-3.11.0/arch/arm/kernel/setup.c @@ -599,6 +599,8 @@ elf_hwcap &= ~(HWCAP_THUMB | HWCAP_IDIVT); #endif + erratum_a15_798181_init(); + feat_v6_fixup(); cacheid_init(); --- linux-3.11.0.orig/arch/arm/kernel/smp_tlb.c +++ linux-3.11.0/arch/arm/kernel/smp_tlb.c @@ -70,6 +70,40 @@ local_flush_bp_all(); } +#ifdef CONFIG_ARM_ERRATA_798181 +bool (*erratum_a15_798181_handler)(void); + +static bool erratum_a15_798181_partial(void) +{ + asm("mcr p15, 0, %0, c8, c3, 1" : : "r" (0)); + dsb(); + return false; +} + +static bool erratum_a15_798181_broadcast(void) +{ + asm("mcr p15, 0, %0, c8, c3, 1" : : "r" (0)); + dsb(); + return true; +} + +void erratum_a15_798181_init(void) +{ + unsigned int midr = read_cpuid_id(); + unsigned int revidr = read_cpuid(CPUID_REVIDR); + + /* Cortex-A15 r0p0..r3p2 w/o ECO fix affected */ + if ((midr & 0xff0ffff0) != 0x410fc0f0 || midr > 0x413fc0f2 || + (revidr & 0x210) == 0x210) { + return; + } + if (revidr & 0x10) + erratum_a15_798181_handler = erratum_a15_798181_partial; + else + erratum_a15_798181_handler = erratum_a15_798181_broadcast; +} +#endif + static void ipi_flush_tlb_a15_erratum(void *arg) { dmb(); @@ -80,7 +114,6 @@ if (!erratum_a15_798181()) return; - dummy_flush_tlb_a15_erratum(); smp_call_function(ipi_flush_tlb_a15_erratum, NULL, 1); } @@ -92,7 +125,6 @@ if (!erratum_a15_798181()) return; - dummy_flush_tlb_a15_erratum(); this_cpu = get_cpu(); a15_erratum_get_cpumask(this_cpu, mm, &mask); smp_call_function_many(&mask, ipi_flush_tlb_a15_erratum, NULL, 1); @@ -104,7 +136,7 @@ if (tlb_ops_need_broadcast()) on_each_cpu(ipi_flush_tlb_all, NULL, 1); else - local_flush_tlb_all(); + __flush_tlb_all(); broadcast_tlb_a15_erratum(); } @@ -113,7 +145,7 @@ if (tlb_ops_need_broadcast()) on_each_cpu_mask(mm_cpumask(mm), ipi_flush_tlb_mm, mm, 1); else - local_flush_tlb_mm(mm); + __flush_tlb_mm(mm); broadcast_tlb_mm_a15_erratum(mm); } @@ -126,7 +158,7 @@ on_each_cpu_mask(mm_cpumask(vma->vm_mm), ipi_flush_tlb_page, &ta, 1); } else - local_flush_tlb_page(vma, uaddr); + __flush_tlb_page(vma, uaddr); broadcast_tlb_mm_a15_erratum(vma->vm_mm); } @@ -137,7 +169,7 @@ ta.ta_start = kaddr; on_each_cpu(ipi_flush_tlb_kernel_page, &ta, 1); } else - local_flush_tlb_kernel_page(kaddr); + __flush_tlb_kernel_page(kaddr); broadcast_tlb_a15_erratum(); } --- linux-3.11.0.orig/sound/usb/usx2y/usx2yhwdeppcm.c +++ linux-3.11.0/sound/usb/usx2y/usx2yhwdeppcm.c @@ -244,13 +244,8 @@ usX2Y_error_urb_status(usX2Y, subs, urb); return; } - if (likely((urb->start_frame & 0xFFFF) == (usX2Y->wait_iso_frame & 0xFFFF))) - subs->completed_urb = urb; - else { - usX2Y_error_sequence(usX2Y, subs, urb); - return; - } + subs->completed_urb = urb; capsubs = usX2Y->subs[SNDRV_PCM_STREAM_CAPTURE]; capsubs2 = usX2Y->subs[SNDRV_PCM_STREAM_CAPTURE + 2]; playbacksubs = usX2Y->subs[SNDRV_PCM_STREAM_PLAYBACK]; --- linux-3.11.0.orig/sound/usb/usx2y/us122l.c +++ linux-3.11.0/sound/usb/usx2y/us122l.c @@ -262,7 +262,9 @@ } area->vm_ops = &usb_stream_hwdep_vm_ops; - area->vm_flags |= VM_DONTEXPAND | VM_DONTDUMP; + area->vm_flags |= VM_DONTDUMP; + if (!read) + area->vm_flags |= VM_DONTEXPAND; area->vm_private_data = us122l; atomic_inc(&us122l->mmap_count); out: --- linux-3.11.0.orig/sound/usb/usx2y/usbusx2yaudio.c +++ linux-3.11.0/sound/usb/usx2y/usbusx2yaudio.c @@ -299,19 +299,6 @@ usX2Y_clients_stop(usX2Y); } -static void usX2Y_error_sequence(struct usX2Ydev *usX2Y, - struct snd_usX2Y_substream *subs, struct urb *urb) -{ - snd_printk(KERN_ERR -"Sequence Error!(hcd_frame=%i ep=%i%s;wait=%i,frame=%i).\n" -"Most probably some urb of usb-frame %i is still missing.\n" -"Cause could be too long delays in usb-hcd interrupt handling.\n", - usb_get_current_frame_number(usX2Y->dev), - subs->endpoint, usb_pipein(urb->pipe) ? "in" : "out", - usX2Y->wait_iso_frame, urb->start_frame, usX2Y->wait_iso_frame); - usX2Y_clients_stop(usX2Y); -} - static void i_usX2Y_urb_complete(struct urb *urb) { struct snd_usX2Y_substream *subs = urb->context; @@ -328,12 +315,9 @@ usX2Y_error_urb_status(usX2Y, subs, urb); return; } - if (likely((urb->start_frame & 0xFFFF) == (usX2Y->wait_iso_frame & 0xFFFF))) - subs->completed_urb = urb; - else { - usX2Y_error_sequence(usX2Y, subs, urb); - return; - } + + subs->completed_urb = urb; + { struct snd_usX2Y_substream *capsubs = usX2Y->subs[SNDRV_PCM_STREAM_CAPTURE], *playbacksubs = usX2Y->subs[SNDRV_PCM_STREAM_PLAYBACK]; --- linux-3.11.0.orig/sound/core/pcm.c +++ linux-3.11.0/sound/core/pcm.c @@ -49,6 +49,8 @@ struct snd_pcm *pcm; list_for_each_entry(pcm, &snd_pcm_devices, list) { + if (pcm->internal) + continue; if (pcm->card == card && pcm->device == device) return pcm; } @@ -60,6 +62,8 @@ struct snd_pcm *pcm; list_for_each_entry(pcm, &snd_pcm_devices, list) { + if (pcm->internal) + continue; if (pcm->card == card && pcm->device > device) return pcm->device; else if (pcm->card->number > card->number) --- linux-3.11.0.orig/sound/core/compress_offload.c +++ linux-3.11.0/sound/core/compress_offload.c @@ -837,7 +837,8 @@ struct snd_compr *compr; compr = device->device_data; - snd_unregister_device(compr->direction, compr->card, compr->device); + snd_unregister_device(SNDRV_DEVICE_TYPE_COMPRESS, compr->card, + compr->device); return 0; } --- linux-3.11.0.orig/sound/soc/soc-dapm.c +++ linux-3.11.0/sound/soc/soc-dapm.c @@ -1810,7 +1810,7 @@ w->active ? "active" : "inactive"); list_for_each_entry(p, &w->sources, list_sink) { - if (p->connected && !p->connected(w, p->sink)) + if (p->connected && !p->connected(w, p->source)) continue; if (p->connect) --- linux-3.11.0.orig/sound/soc/codecs/mc13783.c +++ linux-3.11.0/sound/soc/codecs/mc13783.c @@ -126,6 +126,10 @@ ret = mc13xxx_reg_write(priv->mc13xxx, reg, value); + /* include errata fix for spi audio problems */ + if (reg == MC13783_AUDIO_CODEC || reg == MC13783_AUDIO_DAC) + ret = mc13xxx_reg_write(priv->mc13xxx, reg, value); + mc13xxx_unlock(priv->mc13xxx); return ret; --- linux-3.11.0.orig/sound/soc/codecs/wm8960.c +++ linux-3.11.0/sound/soc/codecs/wm8960.c @@ -857,9 +857,9 @@ if (pll_div.k) { reg |= 0x20; - snd_soc_write(codec, WM8960_PLL2, (pll_div.k >> 18) & 0x3f); - snd_soc_write(codec, WM8960_PLL3, (pll_div.k >> 9) & 0x1ff); - snd_soc_write(codec, WM8960_PLL4, pll_div.k & 0x1ff); + snd_soc_write(codec, WM8960_PLL2, (pll_div.k >> 16) & 0xff); + snd_soc_write(codec, WM8960_PLL3, (pll_div.k >> 8) & 0xff); + snd_soc_write(codec, WM8960_PLL4, pll_div.k & 0xff); } snd_soc_write(codec, WM8960_PLL1, reg); --- linux-3.11.0.orig/sound/soc/codecs/max98095.c +++ linux-3.11.0/sound/soc/codecs/max98095.c @@ -1863,7 +1863,7 @@ struct max98095_pdata *pdata = max98095->pdata; int channel = max98095_get_eq_channel(kcontrol->id.name); struct max98095_cdata *cdata; - int sel = ucontrol->value.integer.value[0]; + unsigned int sel = ucontrol->value.integer.value[0]; struct max98095_eq_cfg *coef_set; int fs, best, best_val, i; int regmask, regsave; @@ -2016,7 +2016,7 @@ struct max98095_pdata *pdata = max98095->pdata; int channel = max98095_get_bq_channel(codec, kcontrol->id.name); struct max98095_cdata *cdata; - int sel = ucontrol->value.integer.value[0]; + unsigned int sel = ucontrol->value.integer.value[0]; struct max98095_biquad_cfg *coef_set; int fs, best, best_val, i; int regmask, regsave; --- linux-3.11.0.orig/sound/soc/codecs/ab8500-codec.c +++ linux-3.11.0/sound/soc/codecs/ab8500-codec.c @@ -1225,13 +1225,18 @@ struct ab8500_codec_drvdata *drvdata = dev_get_drvdata(codec->dev); struct device *dev = codec->dev; bool apply_fir, apply_iir; - int req, status; + unsigned int req; + int status; dev_dbg(dev, "%s: Enter.\n", __func__); mutex_lock(&drvdata->anc_lock); req = ucontrol->value.integer.value[0]; + if (req >= ARRAY_SIZE(enum_anc_state)) { + status = -EINVAL; + goto cleanup; + } if (req != ANC_APPLY_FIR_IIR && req != ANC_APPLY_FIR && req != ANC_APPLY_IIR) { dev_err(dev, "%s: ERROR: Unsupported status to set '%s'!\n", --- linux-3.11.0.orig/sound/soc/codecs/88pm860x-codec.c +++ linux-3.11.0/sound/soc/codecs/88pm860x-codec.c @@ -349,6 +349,9 @@ val = ucontrol->value.integer.value[0]; val2 = ucontrol->value.integer.value[1]; + if (val >= ARRAY_SIZE(st_table) || val2 >= ARRAY_SIZE(st_table)) + return -EINVAL; + err = snd_soc_update_bits(codec, reg, 0x3f, st_table[val].m); if (err < 0) return err; --- linux-3.11.0.orig/sound/soc/codecs/wm_hubs.c +++ linux-3.11.0/sound/soc/codecs/wm_hubs.c @@ -530,6 +530,7 @@ hubs->hp_startup_mode); break; } + break; case SND_SOC_DAPM_PRE_PMD: snd_soc_update_bits(codec, WM8993_CHARGE_PUMP_1, --- linux-3.11.0.orig/sound/soc/fsl/Kconfig +++ linux-3.11.0/sound/soc/fsl/Kconfig @@ -109,11 +109,11 @@ tristate config SND_SOC_IMX_PCM_FIQ - bool + tristate select FIQ config SND_SOC_IMX_PCM_DMA - bool + tristate select SND_SOC_GENERIC_DMAENGINE_PCM config SND_SOC_IMX_AUDMUX --- linux-3.11.0.orig/sound/soc/fsl/imx-pcm.h +++ linux-3.11.0/sound/soc/fsl/imx-pcm.h @@ -32,7 +32,7 @@ dma_data->peripheral_type = IMX_DMATYPE_SSI; } -#ifdef CONFIG_SND_SOC_IMX_PCM_DMA +#if IS_ENABLED(CONFIG_SND_SOC_IMX_PCM_DMA) int imx_pcm_dma_init(struct platform_device *pdev); void imx_pcm_dma_exit(struct platform_device *pdev); #else @@ -46,7 +46,7 @@ } #endif -#ifdef CONFIG_SND_SOC_IMX_PCM_FIQ +#if IS_ENABLED(CONFIG_SND_SOC_IMX_PCM_FIQ) int imx_pcm_fiq_init(struct platform_device *pdev); void imx_pcm_fiq_exit(struct platform_device *pdev); #else --- linux-3.11.0.orig/sound/pci/hda/hda_intel.c +++ linux-3.11.0/sound/pci/hda/hda_intel.c @@ -3376,6 +3376,7 @@ SND_PCI_QUIRK(0x1043, 0x81f2, "ASUS", 0), /* Athlon64 X2 + nvidia */ SND_PCI_QUIRK(0x1043, 0x81f6, "ASUS", 0), /* nvidia */ SND_PCI_QUIRK(0x1043, 0x822d, "ASUS", 0), /* Athlon64 X2 + nvidia MCP55 */ + SND_PCI_QUIRK(0x1179, 0xfb44, "Toshiba Satellite C870", 0), /* AMD Hudson */ SND_PCI_QUIRK(0x1849, 0x0888, "ASRock", 0), /* Athlon64 X2 + nvidia */ SND_PCI_QUIRK(0xa0a0, 0x0575, "Aopen MZ915-M", 0), /* ICH6 */ {} --- linux-3.11.0.orig/sound/pci/hda/hda_codec.c +++ linux-3.11.0/sound/pci/hda/hda_codec.c @@ -4804,8 +4804,8 @@ spin_unlock(&codec->power_lock); state = hda_call_codec_suspend(codec, true); - codec->pm_down_notified = 0; - if (!bus->power_keep_link_on && (state & AC_PWRST_CLK_STOP_OK)) { + if (!codec->pm_down_notified && + !bus->power_keep_link_on && (state & AC_PWRST_CLK_STOP_OK)) { codec->pm_down_notified = 1; hda_call_pm_notify(bus, false); } --- linux-3.11.0.orig/sound/pci/hda/hda_generic.c +++ linux-3.11.0/sound/pci/hda/hda_generic.c @@ -3505,7 +3505,7 @@ if (!multi) err = create_single_cap_vol_ctl(codec, n, vol, sw, inv_dmic); - else if (!multi_cap_vol) + else if (!multi_cap_vol && !inv_dmic) err = create_bind_cap_vol_ctl(codec, n, vol, sw); else err = create_multi_cap_vol_ctl(codec); @@ -4428,9 +4428,11 @@ true, &spec->vmaster_mute.sw_kctl); if (err < 0) return err; - if (spec->vmaster_mute.hook) + if (spec->vmaster_mute.hook) { snd_hda_add_vmaster_hook(codec, &spec->vmaster_mute, spec->vmaster_mute_enum); + snd_hda_sync_vmaster_hook(&spec->vmaster_mute); + } } free_kctls(spec); /* no longer needed */ --- linux-3.11.0.orig/sound/pci/hda/patch_hdmi.c +++ linux-3.11.0/sound/pci/hda/patch_hdmi.c @@ -67,6 +67,8 @@ struct delayed_work work; struct snd_kcontrol *eld_ctl; int repoll_count; + bool setup; /* the stream has been set up by prepare callback */ + int channels; /* current number of channels */ bool non_pcm; bool chmap_set; /* channel-map override by ALSA API? */ unsigned char chmap[8]; /* ALSA API channel-map */ @@ -551,6 +553,17 @@ } } + if (!ca) { + /* if there was no match, select the regular ALSA channel + * allocation with the matching number of channels */ + for (i = 0; i < ARRAY_SIZE(channel_allocations); i++) { + if (channels == channel_allocations[i].channels) { + ca = channel_allocations[i].ca_index; + break; + } + } + } + snd_print_channel_allocation(eld->info.spk_alloc, buf, sizeof(buf)); snd_printdd("HDMI: select CA 0x%x for %d-channel allocation: %s\n", ca, channels, buf); @@ -725,9 +738,10 @@ static void hdmi_setup_fake_chmap(unsigned char *map, int ca) { int i; + int ordered_ca = get_channel_allocation_order(ca); for (i = 0; i < 8; i++) { - if (i < channel_allocations[ca].channels) - map[i] = from_cea_slot((hdmi_channel_mapping[ca][i] >> 4) & 0x0f); + if (i < channel_allocations[ordered_ca].channels) + map[i] = from_cea_slot(hdmi_channel_mapping[ca][i] & 0x0f); else map[i] = 0; } @@ -868,18 +882,19 @@ return true; } -static void hdmi_setup_audio_infoframe(struct hda_codec *codec, int pin_idx, - bool non_pcm, - struct snd_pcm_substream *substream) +static void hdmi_setup_audio_infoframe(struct hda_codec *codec, + struct hdmi_spec_per_pin *per_pin, + bool non_pcm) { - struct hdmi_spec *spec = codec->spec; - struct hdmi_spec_per_pin *per_pin = get_pin(spec, pin_idx); hda_nid_t pin_nid = per_pin->pin_nid; - int channels = substream->runtime->channels; + int channels = per_pin->channels; struct hdmi_eld *eld; int ca; union audio_infoframe ai; + if (!channels) + return; + eld = &per_pin->sink_eld; if (!eld->monitor_present) return; @@ -916,6 +931,14 @@ } /* + * always configure channel mapping, it may have been changed by the + * user in the meantime + */ + hdmi_setup_channel_mapping(codec, pin_nid, non_pcm, ca, + channels, per_pin->chmap, + per_pin->chmap_set); + + /* * sizeof(ai) is used instead of sizeof(*hdmi_ai) or * sizeof(*dp_ai) to avoid partial match/update problems when * the user switches between HDMI/DP monitors. @@ -926,20 +949,10 @@ "pin=%d channels=%d\n", pin_nid, channels); - hdmi_setup_channel_mapping(codec, pin_nid, non_pcm, ca, - channels, per_pin->chmap, - per_pin->chmap_set); hdmi_stop_infoframe_trans(codec, pin_nid); hdmi_fill_audio_infoframe(codec, pin_nid, ai.bytes, sizeof(ai)); hdmi_start_infoframe_trans(codec, pin_nid); - } else { - /* For non-pcm audio switch, setup new channel mapping - * accordingly */ - if (per_pin->non_pcm != non_pcm) - hdmi_setup_channel_mapping(codec, pin_nid, non_pcm, ca, - channels, per_pin->chmap, - per_pin->chmap_set); } per_pin->non_pcm = non_pcm; @@ -1329,6 +1342,7 @@ eld_changed = true; } if (update_eld) { + bool old_eld_valid = pin_eld->eld_valid; pin_eld->eld_valid = eld->eld_valid; eld_changed = pin_eld->eld_size != eld->eld_size || memcmp(pin_eld->eld_buffer, eld->eld_buffer, @@ -1338,6 +1352,18 @@ eld->eld_size); pin_eld->eld_size = eld->eld_size; pin_eld->info = eld->info; + + /* Haswell-specific workaround: re-setup when the transcoder is + * changed during the stream playback + */ + if (codec->vendor_id == 0x80862807 && + eld->eld_valid && !old_eld_valid && per_pin->setup) { + snd_hda_codec_write(codec, pin_nid, 0, + AC_VERB_SET_AMP_GAIN_MUTE, + AMP_OUT_UNMUTE); + hdmi_setup_audio_infoframe(codec, per_pin, + per_pin->non_pcm); + } } mutex_unlock(&pin_eld->lock); @@ -1510,14 +1536,17 @@ hda_nid_t cvt_nid = hinfo->nid; struct hdmi_spec *spec = codec->spec; int pin_idx = hinfo_to_pin_index(spec, hinfo); - hda_nid_t pin_nid = get_pin(spec, pin_idx)->pin_nid; + struct hdmi_spec_per_pin *per_pin = get_pin(spec, pin_idx); + hda_nid_t pin_nid = per_pin->pin_nid; bool non_pcm; non_pcm = check_non_pcm_per_cvt(codec, cvt_nid); + per_pin->channels = substream->runtime->channels; + per_pin->setup = true; hdmi_set_channel_count(codec, cvt_nid, substream->runtime->channels); - hdmi_setup_audio_infoframe(codec, pin_idx, non_pcm, substream); + hdmi_setup_audio_infoframe(codec, per_pin, non_pcm); return hdmi_setup_stream(codec, cvt_nid, pin_nid, stream_tag, format); } @@ -1557,6 +1586,9 @@ snd_hda_spdif_ctls_unassign(codec, pin_idx); per_pin->chmap_set = false; memset(per_pin->chmap, 0, sizeof(per_pin->chmap)); + + per_pin->setup = false; + per_pin->channels = 0; } return 0; @@ -1692,8 +1724,7 @@ per_pin->chmap_set = true; memcpy(per_pin->chmap, chmap, sizeof(chmap)); if (prepared) - hdmi_setup_audio_infoframe(codec, pin_idx, per_pin->non_pcm, - substream); + hdmi_setup_audio_infoframe(codec, per_pin, per_pin->non_pcm); return 0; } --- linux-3.11.0.orig/sound/pci/hda/patch_conexant.c +++ linux-3.11.0/sound/pci/hda/patch_conexant.c @@ -3224,6 +3224,7 @@ CXT_PINCFG_LEMOTE_A1205, CXT_FIXUP_STEREO_DMIC, CXT_FIXUP_INC_MIC_BOOST, + CXT_FIXUP_GPIO1, }; static void cxt_fixup_stereo_dmic(struct hda_codec *codec, @@ -3302,6 +3303,15 @@ .type = HDA_FIXUP_FUNC, .v.func = cxt5066_increase_mic_boost, }, + [CXT_FIXUP_GPIO1] = { + .type = HDA_FIXUP_VERBS, + .v.verbs = (const struct hda_verb[]) { + { 0x01, AC_VERB_SET_GPIO_MASK, 0x01 }, + { 0x01, AC_VERB_SET_GPIO_DIRECTION, 0x01 }, + { 0x01, AC_VERB_SET_GPIO_DATA, 0x01 }, + { } + }, + }, }; static const struct snd_pci_quirk cxt5051_fixups[] = { @@ -3311,6 +3321,7 @@ static const struct snd_pci_quirk cxt5066_fixups[] = { SND_PCI_QUIRK(0x1025, 0x0543, "Acer Aspire One 522", CXT_FIXUP_STEREO_DMIC), + SND_PCI_QUIRK(0x1025, 0x054c, "Acer Aspire 3830TG", CXT_FIXUP_GPIO1), SND_PCI_QUIRK(0x17aa, 0x20f2, "Lenovo T400", CXT_PINCFG_LENOVO_TP410), SND_PCI_QUIRK(0x17aa, 0x215e, "Lenovo T410", CXT_PINCFG_LENOVO_TP410), SND_PCI_QUIRK(0x17aa, 0x215f, "Lenovo T510", CXT_PINCFG_LENOVO_TP410), --- linux-3.11.0.orig/sound/pci/hda/patch_cirrus.c +++ linux-3.11.0/sound/pci/hda/patch_cirrus.c @@ -111,6 +111,9 @@ /* 0x0009 - 0x0014 -> 12 test regs */ /* 0x0015 - visibility reg */ +/* Cirrus Logic CS4208 */ +#define CS4208_VENDOR_NID 0x24 + /* * Cirrus Logic CS4210 * @@ -169,7 +172,7 @@ snd_hda_gen_update_outputs(codec); - if (spec->gpio_eapd_hp) { + if (spec->gpio_eapd_hp || spec->gpio_eapd_speaker) { spec->gpio_data = spec->gen.hp_jack_present ? spec->gpio_eapd_hp : spec->gpio_eapd_speaker; snd_hda_codec_write(codec, 0x01, 0, @@ -223,6 +226,16 @@ {} /* terminator */ }; +static const struct hda_verb cs4208_coef_init_verbs[] = { + {0x01, AC_VERB_SET_POWER_STATE, 0x00}, /* AFG: D0 */ + {0x24, AC_VERB_SET_PROC_STATE, 0x01}, /* VPW: processing on */ + {0x24, AC_VERB_SET_COEF_INDEX, 0x0033}, + {0x24, AC_VERB_SET_PROC_COEF, 0x0001}, /* A1 ICS */ + {0x24, AC_VERB_SET_COEF_INDEX, 0x0034}, + {0x24, AC_VERB_SET_PROC_COEF, 0x1C01}, /* A1 Enable, A Thresh = 300mV */ + {} /* terminator */ +}; + /* Errata: CS4207 rev C0/C1/C2 Silicon * * http://www.cirrus.com/en/pubs/errata/ER880C3.pdf @@ -291,10 +304,13 @@ { struct cs_spec *spec = codec->spec; - /* init_verb sequence for C0/C1/C2 errata*/ - snd_hda_sequence_write(codec, cs_errata_init_verbs); - - snd_hda_sequence_write(codec, cs_coef_init_verbs); + if (spec->vendor_nid == CS420X_VENDOR_NID) { + /* init_verb sequence for C0/C1/C2 errata*/ + snd_hda_sequence_write(codec, cs_errata_init_verbs); + snd_hda_sequence_write(codec, cs_coef_init_verbs); + } else if (spec->vendor_nid == CS4208_VENDOR_NID) { + snd_hda_sequence_write(codec, cs4208_coef_init_verbs); + } snd_hda_gen_init(codec); @@ -307,8 +323,10 @@ spec->gpio_data); } - init_input_coef(codec); - init_digital_coef(codec); + if (spec->vendor_nid == CS420X_VENDOR_NID) { + init_input_coef(codec); + init_digital_coef(codec); + } return 0; } @@ -431,6 +449,29 @@ {} /* terminator */ }; +static const struct hda_pintbl mba6_pincfgs[] = { + { 0x10, 0x032120f0 }, /* HP */ + { 0x11, 0x500000f0 }, + { 0x12, 0x90100010 }, /* Speaker */ + { 0x13, 0x500000f0 }, + { 0x14, 0x500000f0 }, + { 0x15, 0x770000f0 }, + { 0x16, 0x770000f0 }, + { 0x17, 0x430000f0 }, + { 0x18, 0x43ab9030 }, /* Mic */ + { 0x19, 0x770000f0 }, + { 0x1a, 0x770000f0 }, + { 0x1b, 0x770000f0 }, + { 0x1c, 0x90a00090 }, + { 0x1d, 0x500000f0 }, + { 0x1e, 0x500000f0 }, + { 0x1f, 0x500000f0 }, + { 0x20, 0x500000f0 }, + { 0x21, 0x430000f0 }, + { 0x22, 0x430000f0 }, + {} /* terminator */ +}; + static void cs420x_fixup_gpio_13(struct hda_codec *codec, const struct hda_fixup *fix, int action) { @@ -552,6 +593,100 @@ } /* + * CS4208 support: + * Its layout is no longer compatible with CS4206/CS4207 + */ +enum { + CS4208_MBA6, + CS4208_GPIO0, +}; + +static const struct hda_model_fixup cs4208_models[] = { + { .id = CS4208_GPIO0, .name = "gpio0" }, + { .id = CS4208_MBA6, .name = "mba6" }, + {} +}; + +static const struct snd_pci_quirk cs4208_fixup_tbl[] = { + /* codec SSID */ + SND_PCI_QUIRK(0x106b, 0x7100, "MacBookAir 6,1", CS4208_MBA6), + SND_PCI_QUIRK(0x106b, 0x7200, "MacBookAir 6,2", CS4208_MBA6), + {} /* terminator */ +}; + +static void cs4208_fixup_gpio0(struct hda_codec *codec, + const struct hda_fixup *fix, int action) +{ + if (action == HDA_FIXUP_ACT_PRE_PROBE) { + struct cs_spec *spec = codec->spec; + spec->gpio_eapd_hp = 0; + spec->gpio_eapd_speaker = 1; + spec->gpio_mask = spec->gpio_dir = + spec->gpio_eapd_hp | spec->gpio_eapd_speaker; + } +} + +static const struct hda_fixup cs4208_fixups[] = { + [CS4208_MBA6] = { + .type = HDA_FIXUP_PINS, + .v.pins = mba6_pincfgs, + .chained = true, + .chain_id = CS4208_GPIO0, + }, + [CS4208_GPIO0] = { + .type = HDA_FIXUP_FUNC, + .v.func = cs4208_fixup_gpio0, + }, +}; + +/* correct the 0dB offset of input pins */ +static void cs4208_fix_amp_caps(struct hda_codec *codec, hda_nid_t adc) +{ + unsigned int caps; + + caps = query_amp_caps(codec, adc, HDA_INPUT); + caps &= ~(AC_AMPCAP_OFFSET); + caps |= 0x02; + snd_hda_override_amp_caps(codec, adc, HDA_INPUT, caps); +} + +static int patch_cs4208(struct hda_codec *codec) +{ + struct cs_spec *spec; + int err; + + spec = cs_alloc_spec(codec, CS4208_VENDOR_NID); + if (!spec) + return -ENOMEM; + + spec->gen.automute_hook = cs_automute; + + snd_hda_pick_fixup(codec, cs4208_models, cs4208_fixup_tbl, + cs4208_fixups); + snd_hda_apply_fixup(codec, HDA_FIXUP_ACT_PRE_PROBE); + + snd_hda_override_wcaps(codec, 0x18, + get_wcaps(codec, 0x18) | AC_WCAP_STEREO); + cs4208_fix_amp_caps(codec, 0x18); + cs4208_fix_amp_caps(codec, 0x1b); + cs4208_fix_amp_caps(codec, 0x1c); + + err = cs_parse_auto_config(codec); + if (err < 0) + goto error; + + codec->patch_ops = cs_patch_ops; + + snd_hda_apply_fixup(codec, HDA_FIXUP_ACT_PROBE); + + return 0; + + error: + cs_free(codec); + return err; +} + +/* * Cirrus Logic CS4210 * * 1 DAC => HP(sense) / Speakers, @@ -991,6 +1126,7 @@ static const struct hda_codec_preset snd_hda_preset_cirrus[] = { { .id = 0x10134206, .name = "CS4206", .patch = patch_cs420x }, { .id = 0x10134207, .name = "CS4207", .patch = patch_cs420x }, + { .id = 0x10134208, .name = "CS4208", .patch = patch_cs4208 }, { .id = 0x10134210, .name = "CS4210", .patch = patch_cs4210 }, { .id = 0x10134213, .name = "CS4213", .patch = patch_cs4213 }, {} /* terminator */ @@ -998,6 +1134,7 @@ MODULE_ALIAS("snd-hda-codec-id:10134206"); MODULE_ALIAS("snd-hda-codec-id:10134207"); +MODULE_ALIAS("snd-hda-codec-id:10134208"); MODULE_ALIAS("snd-hda-codec-id:10134210"); MODULE_ALIAS("snd-hda-codec-id:10134213"); --- linux-3.11.0.orig/sound/pci/hda/patch_realtek.c +++ linux-3.11.0/sound/pci/hda/patch_realtek.c @@ -3308,6 +3308,15 @@ } } +static void alc290_fixup_mono_speakers(struct hda_codec *codec, + const struct hda_fixup *fix, int action) +{ + if (action == HDA_FIXUP_ACT_PRE_PROBE) + /* Remove DAC node 0x03, as it seems to be + giving mono output */ + snd_hda_override_wcaps(codec, 0x03, 0); +} + enum { ALC269_FIXUP_SONY_VAIO, ALC275_FIXUP_SONY_VAIO_GPIO2, @@ -3331,9 +3340,12 @@ ALC269_FIXUP_HP_GPIO_LED, ALC269_FIXUP_INV_DMIC, ALC269_FIXUP_LENOVO_DOCK, + ALC286_FIXUP_SONY_MIC_NO_PRESENCE, ALC269_FIXUP_PINCFG_NO_HP_TO_LINEOUT, ALC269_FIXUP_DELL1_MIC_NO_PRESENCE, ALC269_FIXUP_DELL2_MIC_NO_PRESENCE, + ALC269_FIXUP_DELL3_MIC_NO_PRESENCE, + ALC290_FIXUP_MONO_SPEAKERS, ALC269_FIXUP_HEADSET_MODE, ALC269_FIXUP_HEADSET_MODE_NO_HP_MIC, ALC269_FIXUP_ASUS_X101_FUNC, @@ -3521,6 +3533,15 @@ .chained = true, .chain_id = ALC269_FIXUP_HEADSET_MODE_NO_HP_MIC }, + [ALC269_FIXUP_DELL3_MIC_NO_PRESENCE] = { + .type = HDA_FIXUP_PINS, + .v.pins = (const struct hda_pintbl[]) { + { 0x1a, 0x01a1913c }, /* use as headset mic, without its own jack detect */ + { } + }, + .chained = true, + .chain_id = ALC269_FIXUP_HEADSET_MODE_NO_HP_MIC + }, [ALC269_FIXUP_HEADSET_MODE] = { .type = HDA_FIXUP_FUNC, .v.func = alc_fixup_headset_mode, @@ -3529,6 +3550,13 @@ .type = HDA_FIXUP_FUNC, .v.func = alc_fixup_headset_mode_no_hp_mic, }, + [ALC286_FIXUP_SONY_MIC_NO_PRESENCE] = { + .type = HDA_FIXUP_PINS, + .v.pins = (const struct hda_pintbl[]) { + { 0x18, 0x01a1913c }, /* use as headset mic, without its own jack detect */ + { } + }, + }, [ALC269_FIXUP_ASUS_X101_FUNC] = { .type = HDA_FIXUP_FUNC, .v.func = alc269_fixup_x101_headset_mic, @@ -3595,6 +3623,12 @@ { } }, }, + [ALC290_FIXUP_MONO_SPEAKERS] = { + .type = HDA_FIXUP_FUNC, + .v.func = alc290_fixup_mono_speakers, + .chained = true, + .chain_id = ALC269_FIXUP_DELL3_MIC_NO_PRESENCE, + }, }; static const struct snd_pci_quirk alc269_fixup_tbl[] = { @@ -3631,6 +3665,7 @@ SND_PCI_QUIRK(0x1028, 0x0608, "Dell", ALC269_FIXUP_DELL1_MIC_NO_PRESENCE), SND_PCI_QUIRK(0x1028, 0x0609, "Dell", ALC269_FIXUP_DELL1_MIC_NO_PRESENCE), SND_PCI_QUIRK(0x1028, 0x0613, "Dell", ALC269_FIXUP_DELL1_MIC_NO_PRESENCE), + SND_PCI_QUIRK(0x1028, 0x0616, "Dell Vostro 5470", ALC290_FIXUP_MONO_SPEAKERS), SND_PCI_QUIRK(0x1028, 0x15cc, "Dell X5 Precision", ALC269_FIXUP_DELL2_MIC_NO_PRESENCE), SND_PCI_QUIRK(0x1028, 0x15cd, "Dell X5 Precision", ALC269_FIXUP_DELL2_MIC_NO_PRESENCE), SND_PCI_QUIRK(0x103c, 0x1586, "HP", ALC269_FIXUP_HP_MUTE_LED_MIC2), @@ -3651,6 +3686,7 @@ SND_PCI_QUIRK(0x1043, 0x8398, "ASUS P1005", ALC269_FIXUP_STEREO_DMIC), SND_PCI_QUIRK(0x1043, 0x83ce, "ASUS P1005", ALC269_FIXUP_STEREO_DMIC), SND_PCI_QUIRK(0x1043, 0x8516, "ASUS X101CH", ALC269_FIXUP_ASUS_X101), + SND_PCI_QUIRK(0x104d, 0x90b6, "Sony VAIO Pro 13", ALC286_FIXUP_SONY_MIC_NO_PRESENCE), SND_PCI_QUIRK(0x104d, 0x9073, "Sony VAIO", ALC275_FIXUP_SONY_VAIO_GPIO2), SND_PCI_QUIRK(0x104d, 0x907b, "Sony VAIO", ALC275_FIXUP_SONY_HWEQ), SND_PCI_QUIRK(0x104d, 0x9084, "Sony VAIO", ALC275_FIXUP_SONY_HWEQ), @@ -4345,6 +4381,8 @@ SND_PCI_QUIRK(0x1028, 0x05d8, "Dell", ALC668_FIXUP_DELL_MIC_NO_PRESENCE), SND_PCI_QUIRK(0x1028, 0x05db, "Dell", ALC668_FIXUP_DELL_MIC_NO_PRESENCE), SND_PCI_QUIRK(0x103c, 0x1632, "HP RP5800", ALC662_FIXUP_HP_RP5800), + SND_PCI_QUIRK(0x1043, 0x1477, "ASUS N56VZ", ALC662_FIXUP_ASUS_MODE4), + SND_PCI_QUIRK(0x1043, 0x1bf3, "ASUS N76VZ", ALC662_FIXUP_ASUS_MODE4), SND_PCI_QUIRK(0x1043, 0x8469, "ASUS mobo", ALC662_FIXUP_NO_JACK_DETECT), SND_PCI_QUIRK(0x105b, 0x0cd6, "Foxconn", ALC662_FIXUP_ASUS_MODE2), SND_PCI_QUIRK(0x144d, 0xc051, "Samsung R720", ALC662_FIXUP_IDEAPAD), --- linux-3.11.0.orig/block/cfq-iosched.c +++ linux-3.11.0/block/cfq-iosched.c @@ -1803,7 +1803,7 @@ if (samples) { v = blkg_stat_read(&cfqg->stats.avg_queue_size_sum); - do_div(v, samples); + v = div64_u64(v, samples); } __blkg_prfill_u64(sf, pd, v); return 0; --- linux-3.11.0.orig/block/scsi_ioctl.c +++ linux-3.11.0/block/scsi_ioctl.c @@ -28,6 +28,9 @@ #include #include #include +#include +#include +#include #include #include @@ -711,8 +714,17 @@ case SG_GET_RESERVED_SIZE: case SG_SET_RESERVED_SIZE: case SG_EMULATED_HOST: + case BLKFLSBUF: + case BLKROSET: return 0; case CDROM_GET_CAPABILITY: + case CDROM_DRIVE_STATUS: + case FDGETPRM: + case RAID_VERSION: + case MTIOCGET: +#ifdef CONFIG_COMPAT + case 0x801c6d02: /* MTIOCGET32 */ +#endif /* Keep this until we remove the printk below. udev sends it * and we do not want to spam dmesg about it. CD-ROMs do * not have partitions, so we get here only for disks. --- linux-3.11.0.orig/drivers/misc/hpilo.c +++ linux-3.11.0/drivers/misc/hpilo.c @@ -759,7 +759,7 @@ /* Ignore subsystem_device = 0x1979 (set by BIOS) */ if (pdev->subsystem_device == 0x1979) - goto out; + return 0; if (max_ccb > MAX_CCB) max_ccb = MAX_CCB; @@ -899,7 +899,7 @@ class_destroy(ilo_class); } -MODULE_VERSION("1.4"); +MODULE_VERSION("1.4.1"); MODULE_ALIAS(ILO_NAME); MODULE_DESCRIPTION(ILO_NAME); MODULE_AUTHOR("David Altobelli "); --- linux-3.11.0.orig/drivers/misc/atmel_pwm.c +++ linux-3.11.0/drivers/misc/atmel_pwm.c @@ -90,8 +90,10 @@ unsigned long flags; int status = 0; - /* insist on PWM init, with this signal pinned out */ - if (!pwm || !(pwm->mask & 1 << index)) + if (!pwm) + return -EPROBE_DEFER; + + if (!(pwm->mask & 1 << index)) return -ENODEV; if (index < 0 || index >= PWM_NCHAN || !ch) --- linux-3.11.0.orig/drivers/misc/mei/mei_dev.h +++ linux-3.11.0/drivers/misc/mei/mei_dev.h @@ -396,9 +396,9 @@ struct mei_me_client *me_clients; /* Note: memory has to be allocated */ DECLARE_BITMAP(me_clients_map, MEI_CLIENTS_MAX); DECLARE_BITMAP(host_clients_map, MEI_CLIENTS_MAX); - u8 me_clients_num; - u8 me_client_presentation_num; - u8 me_client_index; + unsigned long me_clients_num; + unsigned long me_client_presentation_num; + unsigned long me_client_index; struct mei_cl wd_cl; enum mei_wd_states wd_state; --- linux-3.11.0.orig/drivers/misc/mei/hw-me.c +++ linux-3.11.0/drivers/misc/mei/hw-me.c @@ -176,21 +176,18 @@ struct mei_me_hw *hw = to_me_hw(dev); u32 hcsr = mei_hcsr_read(hw); - dev_dbg(&dev->pdev->dev, "before reset HCSR = 0x%08x.\n", hcsr); - - hcsr |= (H_RST | H_IG); + hcsr |= H_RST | H_IG | H_IS; if (intr_enable) hcsr |= H_IE; else - hcsr |= ~H_IE; + hcsr &= ~H_IE; - mei_hcsr_set(hw, hcsr); + mei_me_reg_write(hw, H_CSR, hcsr); if (dev->dev_state == MEI_DEV_POWER_DOWN) mei_me_hw_reset_release(dev); - dev_dbg(&dev->pdev->dev, "current HCSR = 0x%08x.\n", mei_hcsr_read(hw)); return 0; } --- linux-3.11.0.orig/drivers/misc/mei/amthif.c +++ linux-3.11.0/drivers/misc/mei/amthif.c @@ -57,6 +57,7 @@ dev->iamthif_ioctl = false; dev->iamthif_state = MEI_IAMTHIF_IDLE; dev->iamthif_timer = 0; + dev->iamthif_stall_timer = 0; } /** --- linux-3.11.0.orig/drivers/misc/mei/hbm.c +++ linux-3.11.0/drivers/misc/mei/hbm.c @@ -35,11 +35,15 @@ struct mei_me_client *clients; int b; + dev->me_clients_num = 0; + dev->me_client_presentation_num = 0; + dev->me_client_index = 0; + /* count how many ME clients we have */ for_each_set_bit(b, dev->me_clients_map, MEI_CLIENTS_MAX) dev->me_clients_num++; - if (dev->me_clients_num <= 0) + if (dev->me_clients_num == 0) return; kfree(dev->me_clients); @@ -221,7 +225,7 @@ struct hbm_props_request *prop_req; const size_t len = sizeof(struct hbm_props_request); unsigned long next_client_index; - u8 client_num; + unsigned long client_num; client_num = dev->me_client_presentation_num; @@ -677,8 +681,6 @@ if (dev->dev_state == MEI_DEV_INIT_CLIENTS && dev->hbm_state == MEI_HBM_ENUM_CLIENTS) { dev->init_clients_timer = 0; - dev->me_client_presentation_num = 0; - dev->me_client_index = 0; mei_hbm_me_cl_allocate(dev); dev->hbm_state = MEI_HBM_CLIENT_PROPERTIES; --- linux-3.11.0.orig/drivers/misc/mei/main.c +++ linux-3.11.0/drivers/misc/mei/main.c @@ -249,19 +249,16 @@ mutex_unlock(&dev->device_lock); if (wait_event_interruptible(cl->rx_wait, - (MEI_READ_COMPLETE == cl->reading_state || - MEI_FILE_INITIALIZING == cl->state || - MEI_FILE_DISCONNECTED == cl->state || - MEI_FILE_DISCONNECTING == cl->state))) { + MEI_READ_COMPLETE == cl->reading_state || + mei_cl_is_transitioning(cl))) { + if (signal_pending(current)) return -EINTR; return -ERESTARTSYS; } mutex_lock(&dev->device_lock); - if (MEI_FILE_INITIALIZING == cl->state || - MEI_FILE_DISCONNECTED == cl->state || - MEI_FILE_DISCONNECTING == cl->state) { + if (mei_cl_is_transitioning(cl)) { rets = -EBUSY; goto out; } --- linux-3.11.0.orig/drivers/misc/mei/client.h +++ linux-3.11.0/drivers/misc/mei/client.h @@ -76,6 +76,12 @@ (cl1->host_client_id == cl2->host_client_id) && (cl1->me_client_id == cl2->me_client_id); } +static inline bool mei_cl_is_transitioning(struct mei_cl *cl) +{ + return (MEI_FILE_INITIALIZING == cl->state || + MEI_FILE_DISCONNECTED == cl->state || + MEI_FILE_DISCONNECTING == cl->state); +} int mei_cl_flow_ctrl_creds(struct mei_cl *cl); --- linux-3.11.0.orig/drivers/misc/mei/init.c +++ linux-3.11.0/drivers/misc/mei/init.c @@ -169,6 +169,9 @@ memset(&dev->wr_ext_msg, 0, sizeof(dev->wr_ext_msg)); } + /* we're already in reset, cancel the init timer */ + dev->init_clients_timer = 0; + dev->me_clients_num = 0; dev->rd_msg_hdr = 0; dev->wd_pending = false; --- linux-3.11.0.orig/drivers/misc/mei/bus.c +++ linux-3.11.0/drivers/misc/mei/bus.c @@ -295,10 +295,13 @@ if (cl->reading_state != MEI_READ_COMPLETE && !waitqueue_active(&cl->rx_wait)) { + mutex_unlock(&dev->device_lock); if (wait_event_interruptible(cl->rx_wait, - (MEI_READ_COMPLETE == cl->reading_state))) { + cl->reading_state == MEI_READ_COMPLETE || + mei_cl_is_transitioning(cl))) { + if (signal_pending(current)) return -EINTR; return -ERESTARTSYS; --- linux-3.11.0.orig/drivers/cpufreq/cpufreq.c +++ linux-3.11.0/drivers/cpufreq/cpufreq.c @@ -1967,6 +1967,20 @@ * REGISTER / UNREGISTER CPUFREQ DRIVER * *********************************************************************/ +static char cpufreq_driver_name[CPUFREQ_NAME_LEN]; + +static int __init cpufreq_driver_setup(char *str) +{ + strlcpy(cpufreq_driver_name, str, CPUFREQ_NAME_LEN); + return 1; +} + +/* + * Set this name to only allow one specific cpu freq driver, e.g., + * cpufreq_driver=powernow-k8 + */ +__setup("cpufreq_driver=", cpufreq_driver_setup); + /** * cpufreq_register_driver - register a CPU Frequency driver * @driver_data: A struct cpufreq_driver containing the values# @@ -1989,7 +2003,13 @@ ((!driver_data->setpolicy) && (!driver_data->target))) return -EINVAL; - pr_debug("trying to register driver %s\n", driver_data->name); + pr_debug("trying to register driver %s, cpufreq_driver=%s\n", + driver_data->name, cpufreq_driver_name); + + if (cpufreq_driver_name[0]) + if (!driver_data->name || + strcmp(cpufreq_driver_name, driver_data->name)) + return -EINVAL; if (driver_data->setpolicy) driver_data->flags |= CPUFREQ_CONST_LOOPS; --- linux-3.11.0.orig/drivers/cpufreq/s3c64xx-cpufreq.c +++ linux-3.11.0/drivers/cpufreq/s3c64xx-cpufreq.c @@ -166,7 +166,7 @@ if (freq->frequency == CPUFREQ_ENTRY_INVALID) continue; - dvfs = &s3c64xx_dvfs_table[freq->index]; + dvfs = &s3c64xx_dvfs_table[freq->driver_data]; found = 0; for (i = 0; i < count; i++) { --- linux-3.11.0.orig/drivers/cpufreq/intel_pstate.c +++ linux-3.11.0/drivers/cpufreq/intel_pstate.c @@ -629,8 +629,8 @@ static int intel_pstate_cpu_init(struct cpufreq_policy *policy) { - int rc, min_pstate, max_pstate; struct cpudata *cpu; + int rc; rc = intel_pstate_init_cpu(policy->cpu); if (rc) @@ -644,9 +644,8 @@ else policy->policy = CPUFREQ_POLICY_POWERSAVE; - intel_pstate_get_min_max(cpu, &min_pstate, &max_pstate); - policy->min = min_pstate * 100000; - policy->max = max_pstate * 100000; + policy->min = cpu->pstate.min_pstate * 100000; + policy->max = cpu->pstate.turbo_pstate * 100000; /* cpuinfo and default policy values */ policy->cpuinfo.min_freq = cpu->pstate.min_pstate * 100000; @@ -668,7 +667,7 @@ .owner = THIS_MODULE, }; -static int __initdata no_load; +static int __initdata no_load = 1; static int intel_pstate_msrs_not_valid(void) { @@ -743,6 +742,8 @@ if (!strcmp(str, "disable")) no_load = 1; + else if (!strcmp(str, "enable")) + no_load = 0; return 0; } early_param("intel_pstate", intel_pstate_setup); --- linux-3.11.0.orig/drivers/media/usb/uvc/uvc_driver.c +++ linux-3.11.0/drivers/media/usb/uvc/uvc_driver.c @@ -2174,6 +2174,15 @@ .bInterfaceSubClass = 1, .bInterfaceProtocol = 0, .driver_info = UVC_QUIRK_PROBE_DEF }, + /* Dell SP2008WFP Monitor */ + { .match_flags = USB_DEVICE_ID_MATCH_DEVICE + | USB_DEVICE_ID_MATCH_INT_INFO, + .idVendor = 0x05a9, + .idProduct = 0x2641, + .bInterfaceClass = USB_CLASS_VIDEO, + .bInterfaceSubClass = 1, + .bInterfaceProtocol = 0, + .driver_info = UVC_QUIRK_PROBE_DEF }, /* Dell Alienware X51 */ { .match_flags = USB_DEVICE_ID_MATCH_DEVICE | USB_DEVICE_ID_MATCH_INT_INFO, @@ -2192,6 +2201,15 @@ .bInterfaceSubClass = 1, .bInterfaceProtocol = 0, .driver_info = UVC_QUIRK_PROBE_DEF }, + /* Alienware X51*/ + { .match_flags = USB_DEVICE_ID_MATCH_DEVICE + | USB_DEVICE_ID_MATCH_INT_INFO, + .idVendor = 0x05a9, + .idProduct = 0x2643, + .bInterfaceClass = USB_CLASS_VIDEO, + .bInterfaceSubClass = 1, + .bInterfaceProtocol = 0, + .driver_info = UVC_QUIRK_PROBE_DEF }, /* Apple Built-In iSight */ { .match_flags = USB_DEVICE_ID_MATCH_DEVICE | USB_DEVICE_ID_MATCH_INT_INFO, --- linux-3.11.0.orig/drivers/media/platform/sh_vou.c +++ linux-3.11.0/drivers/media/platform/sh_vou.c @@ -776,7 +776,7 @@ v4l_bound_align_image(&pix->width, 0, VOU_MAX_IMAGE_WIDTH, 1, &pix->height, 0, VOU_MAX_IMAGE_HEIGHT, 1, 0); - for (i = 0; ARRAY_SIZE(vou_fmt); i++) + for (i = 0; i < ARRAY_SIZE(vou_fmt); i++) if (vou_fmt[i].pfmt == pix->pixelformat) return 0; --- linux-3.11.0.orig/drivers/media/platform/exynos-gsc/gsc-m2m.c +++ linux-3.11.0/drivers/media/platform/exynos-gsc/gsc-m2m.c @@ -751,6 +751,7 @@ gsc->vdev.release = video_device_release_empty; gsc->vdev.lock = &gsc->lock; gsc->vdev.vfl_dir = VFL_DIR_M2M; + gsc->vdev.v4l2_dev = &gsc->v4l2_dev; snprintf(gsc->vdev.name, sizeof(gsc->vdev.name), "%s.%d:m2m", GSC_MODULE_NAME, gsc->id); --- linux-3.11.0.orig/drivers/media/platform/exynos-gsc/gsc-core.c +++ linux-3.11.0/drivers/media/platform/exynos-gsc/gsc-core.c @@ -1122,10 +1122,14 @@ goto err_clk; } - ret = gsc_register_m2m_device(gsc); + ret = v4l2_device_register(dev, &gsc->v4l2_dev); if (ret) goto err_clk; + ret = gsc_register_m2m_device(gsc); + if (ret) + goto err_v4l2; + platform_set_drvdata(pdev, gsc); pm_runtime_enable(dev); ret = pm_runtime_get_sync(&pdev->dev); @@ -1147,6 +1151,8 @@ pm_runtime_put(dev); err_m2m: gsc_unregister_m2m_device(gsc); +err_v4l2: + v4l2_device_unregister(&gsc->v4l2_dev); err_clk: gsc_clk_put(gsc); return ret; @@ -1157,6 +1163,7 @@ struct gsc_dev *gsc = platform_get_drvdata(pdev); gsc_unregister_m2m_device(gsc); + v4l2_device_unregister(&gsc->v4l2_dev); vb2_dma_contig_cleanup_ctx(gsc->alloc_ctx); pm_runtime_disable(&pdev->dev); --- linux-3.11.0.orig/drivers/media/platform/exynos-gsc/gsc-core.h +++ linux-3.11.0/drivers/media/platform/exynos-gsc/gsc-core.h @@ -343,6 +343,7 @@ unsigned long state; struct vb2_alloc_ctx *alloc_ctx; struct video_device vdev; + struct v4l2_device v4l2_dev; }; /** --- linux-3.11.0.orig/drivers/media/platform/exynos4-is/media-dev.c +++ linux-3.11.0/drivers/media/platform/exynos4-is/media-dev.c @@ -1530,9 +1530,9 @@ err_unlock: mutex_unlock(&fmd->media_dev.graph_mutex); err_clk: - media_device_unregister(&fmd->media_dev); fimc_md_put_clocks(fmd); fimc_md_unregister_entities(fmd); + media_device_unregister(&fmd->media_dev); err_md: v4l2_device_unregister(&fmd->v4l2_dev); return ret; --- linux-3.11.0.orig/drivers/media/platform/exynos4-is/fimc-lite.c +++ linux-3.11.0/drivers/media/platform/exynos4-is/fimc-lite.c @@ -90,7 +90,7 @@ .name = "RAW10 (GRBG)", .fourcc = V4L2_PIX_FMT_SGRBG10, .colorspace = V4L2_COLORSPACE_SRGB, - .depth = { 10 }, + .depth = { 16 }, .color = FIMC_FMT_RAW10, .memplanes = 1, .mbus_code = V4L2_MBUS_FMT_SGRBG10_1X10, @@ -99,7 +99,7 @@ .name = "RAW12 (GRBG)", .fourcc = V4L2_PIX_FMT_SGRBG12, .colorspace = V4L2_COLORSPACE_SRGB, - .depth = { 12 }, + .depth = { 16 }, .color = FIMC_FMT_RAW12, .memplanes = 1, .mbus_code = V4L2_MBUS_FMT_SGRBG12_1X12, --- linux-3.11.0.orig/drivers/media/dvb-frontends/mb86a20s.c +++ linux-3.11.0/drivers/media/dvb-frontends/mb86a20s.c @@ -157,7 +157,6 @@ { 0x45, 0x04 }, /* CN symbol 4 */ { 0x48, 0x04 }, /* CN manual mode */ - { 0x50, 0xd5 }, { 0x51, 0x01 }, /* Serial */ { 0x50, 0xd6 }, { 0x51, 0x1f }, { 0x50, 0xd2 }, { 0x51, 0x03 }, { 0x50, 0xd7 }, { 0x51, 0xbf }, @@ -1860,16 +1859,15 @@ dev_dbg(&state->i2c->dev, "%s: IF=%d, IF reg=0x%06llx\n", __func__, state->if_freq, (long long)pll); - if (!state->config->is_serial) { + if (!state->config->is_serial) regD5 &= ~1; - rc = mb86a20s_writereg(state, 0x50, 0xd5); - if (rc < 0) - goto err; - rc = mb86a20s_writereg(state, 0x51, regD5); - if (rc < 0) - goto err; - } + rc = mb86a20s_writereg(state, 0x50, 0xd5); + if (rc < 0) + goto err; + rc = mb86a20s_writereg(state, 0x51, regD5); + if (rc < 0) + goto err; rc = mb86a20s_writeregdata(state, mb86a20s_init2); if (rc < 0) --- linux-3.11.0.orig/drivers/media/common/siano/smsdvb-main.c +++ linux-3.11.0/drivers/media/common/siano/smsdvb-main.c @@ -276,7 +276,8 @@ /* Legacy PER/BER */ tmp = p->ets_packets * 65535; - do_div(tmp, p->ts_packets + p->ets_packets); + if (p->ts_packets + p->ets_packets) + do_div(tmp, p->ts_packets + p->ets_packets); client->legacy_per = tmp; } --- linux-3.11.0.orig/drivers/media/pci/cx88/cx88.h +++ linux-3.11.0/drivers/media/pci/cx88/cx88.h @@ -259,7 +259,7 @@ }; enum cx88_audio_chip { - CX88_AUDIO_WM8775, + CX88_AUDIO_WM8775 = 1, CX88_AUDIO_TVAUDIO, }; --- linux-3.11.0.orig/drivers/usb/host/xhci-pci.c +++ linux-3.11.0/drivers/usb/host/xhci-pci.c @@ -249,13 +249,15 @@ * writers. * * Unconditionally switch the ports back to xHCI after a system resume. - * We can't tell whether the EHCI or xHCI controller will be resumed - * first, so we have to do the port switchover in both drivers. Writing - * a '1' to the port switchover registers should have no effect if the - * port was already switched over. + * It should not matter whether the EHCI or xHCI controller is + * resumed first. It's enough to do the switchover in xHCI because + * USB core won't notice anything as the hub driver doesn't start + * running again until after all the devices (including both EHCI and + * xHCI host controllers) have been resumed. */ - if (usb_is_intel_switchable_xhci(pdev)) - usb_enable_xhci_ports(pdev); + + if (pdev->vendor == PCI_VENDOR_ID_INTEL) + usb_enable_intel_xhci_ports(pdev); retval = xhci_resume(xhci, hibernated); return retval; @@ -345,7 +347,7 @@ /* suspend and resume implemented later */ .shutdown = usb_hcd_pci_shutdown, -#ifdef CONFIG_PM_SLEEP +#ifdef CONFIG_PM .driver = { .pm = &usb_hcd_pci_pm_ops }, --- linux-3.11.0.orig/drivers/usb/host/ohci-hcd.c +++ linux-3.11.0/drivers/usb/host/ohci-hcd.c @@ -216,31 +216,26 @@ frame &= ~(ed->interval - 1); frame |= ed->branch; urb->start_frame = frame; + ed->last_iso = frame + ed->interval * (size - 1); } } else if (ed->type == PIPE_ISOCHRONOUS) { u16 next = ohci_frame_no(ohci) + 1; u16 frame = ed->last_iso + ed->interval; + u16 length = ed->interval * (size - 1); /* Behind the scheduling threshold? */ if (unlikely(tick_before(frame, next))) { - /* USB_ISO_ASAP: Round up to the first available slot */ + /* URB_ISO_ASAP: Round up to the first available slot */ if (urb->transfer_flags & URB_ISO_ASAP) { frame += (next - frame + ed->interval - 1) & -ed->interval; /* - * Not ASAP: Use the next slot in the stream. If - * the entire URB falls before the threshold, fail. + * Not ASAP: Use the next slot in the stream, + * no matter what. */ } else { - if (tick_before(frame + ed->interval * - (urb->number_of_packets - 1), next)) { - retval = -EXDEV; - usb_hcd_unlink_urb_from_ep(hcd, urb); - goto fail; - } - /* * Some OHCI hardware doesn't handle late TDs * correctly. After retiring them it proceeds @@ -251,9 +246,16 @@ urb_priv->td_cnt = DIV_ROUND_UP( (u16) (next - frame), ed->interval); + if (urb_priv->td_cnt >= urb_priv->length) { + ++urb_priv->td_cnt; /* Mark it */ + ohci_dbg(ohci, "iso underrun %p (%u+%u < %u)\n", + urb, frame, length, + next); + } } } urb->start_frame = frame; + ed->last_iso = frame + length; } /* fill the TDs and link them to the ed; and --- linux-3.11.0.orig/drivers/usb/host/ohci-pci.c +++ linux-3.11.0/drivers/usb/host/ohci-pci.c @@ -289,7 +289,7 @@ .remove = usb_hcd_pci_remove, .shutdown = usb_hcd_pci_shutdown, -#ifdef CONFIG_PM_SLEEP +#ifdef CONFIG_PM .driver = { .pm = &usb_hcd_pci_pm_ops }, --- linux-3.11.0.orig/drivers/usb/host/pci-quirks.h +++ linux-3.11.0/drivers/usb/host/pci-quirks.h @@ -8,8 +8,7 @@ void usb_amd_dev_put(void); void usb_amd_quirk_pll_disable(void); void usb_amd_quirk_pll_enable(void); -bool usb_is_intel_switchable_xhci(struct pci_dev *pdev); -void usb_enable_xhci_ports(struct pci_dev *xhci_pdev); +void usb_enable_intel_xhci_ports(struct pci_dev *xhci_pdev); void usb_disable_xhci_ports(struct pci_dev *xhci_pdev); void sb800_prefetch(struct device *dev, int on); #else --- linux-3.11.0.orig/drivers/usb/host/uhci-q.c +++ linux-3.11.0/drivers/usb/host/uhci-q.c @@ -1303,7 +1303,7 @@ } /* Fell behind? */ - if (uhci_frame_before_eq(frame, next)) { + if (!uhci_frame_before_eq(next, frame)) { /* USB_ISO_ASAP: Round up to the first available slot */ if (urb->transfer_flags & URB_ISO_ASAP) @@ -1311,13 +1311,17 @@ -qh->period; /* - * Not ASAP: Use the next slot in the stream. If - * the entire URB falls before the threshold, fail. + * Not ASAP: Use the next slot in the stream, + * no matter what. */ else if (!uhci_frame_before_eq(next, frame + (urb->number_of_packets - 1) * qh->period)) - return -EXDEV; + dev_dbg(uhci_dev(uhci), "iso underrun %p (%u+%u < %u)\n", + urb, frame, + (urb->number_of_packets - 1) * + qh->period, + next); } } --- linux-3.11.0.orig/drivers/usb/host/xhci-hub.c +++ linux-3.11.0/drivers/usb/host/xhci-hub.c @@ -286,7 +286,7 @@ if (virt_dev->eps[i].ring && virt_dev->eps[i].ring->dequeue) xhci_queue_stop_endpoint(xhci, slot_id, i, suspend); } - cmd->command_trb = xhci->cmd_ring->enqueue; + cmd->command_trb = xhci_find_next_enqueue(xhci->cmd_ring); list_add_tail(&cmd->cmd_list, &virt_dev->cmd_list); xhci_queue_stop_endpoint(xhci, slot_id, 0, suspend); xhci_ring_cmd_db(xhci); @@ -1092,18 +1092,6 @@ t1 = xhci_port_state_to_neutral(t1); if (t1 != t2) xhci_writel(xhci, t2, port_array[port_index]); - - if (hcd->speed != HCD_USB3) { - /* enable remote wake up for USB 2.0 */ - __le32 __iomem *addr; - u32 tmp; - - /* Get the port power control register address. */ - addr = port_array[port_index] + PORTPMSC; - tmp = xhci_readl(xhci, addr); - tmp |= PORT_RWE; - xhci_writel(xhci, tmp, addr); - } } hcd->state = HC_STATE_SUSPENDED; bus_state->next_statechange = jiffies + msecs_to_jiffies(10); @@ -1182,20 +1170,6 @@ xhci_ring_device(xhci, slot_id); } else xhci_writel(xhci, temp, port_array[port_index]); - - if (hcd->speed != HCD_USB3) { - /* disable remote wake up for USB 2.0 */ - __le32 __iomem *addr; - u32 tmp; - - /* Add one to the port status register address to get - * the port power control register address. - */ - addr = port_array[port_index] + PORTPMSC; - tmp = xhci_readl(xhci, addr); - tmp &= ~PORT_RWE; - xhci_writel(xhci, tmp, addr); - } } (void) xhci_readl(xhci, &xhci->op_regs->command); --- linux-3.11.0.orig/drivers/usb/host/ohci-q.c +++ linux-3.11.0/drivers/usb/host/ohci-q.c @@ -41,9 +41,13 @@ __releases(ohci->lock) __acquires(ohci->lock) { - struct device *dev = ohci_to_hcd(ohci)->self.controller; + struct device *dev = ohci_to_hcd(ohci)->self.controller; + struct usb_host_endpoint *ep = urb->ep; + struct urb_priv *urb_priv; + // ASSERT (urb->hcpriv != 0); + restart: urb_free_priv (ohci, urb->hcpriv); urb->hcpriv = NULL; if (likely(status == -EINPROGRESS)) @@ -80,6 +84,21 @@ ohci->hc_control &= ~(OHCI_CTRL_PLE|OHCI_CTRL_IE); ohci_writel (ohci, ohci->hc_control, &ohci->regs->control); } + + /* + * An isochronous URB that is sumitted too late won't have any TDs + * (marked by the fact that the td_cnt value is larger than the + * actual number of TDs). If the next URB on this endpoint is like + * that, give it back now. + */ + if (!list_empty(&ep->urb_list)) { + urb = list_first_entry(&ep->urb_list, struct urb, urb_list); + urb_priv = urb->hcpriv; + if (urb_priv->td_cnt > urb_priv->length) { + status = 0; + goto restart; + } + } } @@ -546,7 +565,6 @@ td->hwCBP = cpu_to_hc32 (ohci, data & 0xFFFFF000); *ohci_hwPSWp(ohci, td, 0) = cpu_to_hc16 (ohci, (data & 0x0FFF) | 0xE000); - td->ed->last_iso = info & 0xffff; } else { td->hwCBP = cpu_to_hc32 (ohci, data); } @@ -996,7 +1014,7 @@ urb_priv->td_cnt++; /* if URB is done, clean up */ - if (urb_priv->td_cnt == urb_priv->length) { + if (urb_priv->td_cnt >= urb_priv->length) { modified = completed = 1; finish_urb(ohci, urb, 0); } @@ -1086,7 +1104,7 @@ urb_priv->td_cnt++; /* If all this urb's TDs are done, call complete() */ - if (urb_priv->td_cnt == urb_priv->length) + if (urb_priv->td_cnt >= urb_priv->length) finish_urb(ohci, urb, status); /* clean schedule: unlink EDs that are no longer busy */ --- linux-3.11.0.orig/drivers/usb/host/pci-quirks.c +++ linux-3.11.0/drivers/usb/host/pci-quirks.c @@ -735,32 +735,6 @@ return -ETIMEDOUT; } -#define PCI_DEVICE_ID_INTEL_LYNX_POINT_XHCI 0x8C31 -#define PCI_DEVICE_ID_INTEL_LYNX_POINT_LP_XHCI 0x9C31 - -bool usb_is_intel_ppt_switchable_xhci(struct pci_dev *pdev) -{ - return pdev->class == PCI_CLASS_SERIAL_USB_XHCI && - pdev->vendor == PCI_VENDOR_ID_INTEL && - pdev->device == PCI_DEVICE_ID_INTEL_PANTHERPOINT_XHCI; -} - -/* The Intel Lynx Point chipset also has switchable ports. */ -bool usb_is_intel_lpt_switchable_xhci(struct pci_dev *pdev) -{ - return pdev->class == PCI_CLASS_SERIAL_USB_XHCI && - pdev->vendor == PCI_VENDOR_ID_INTEL && - (pdev->device == PCI_DEVICE_ID_INTEL_LYNX_POINT_XHCI || - pdev->device == PCI_DEVICE_ID_INTEL_LYNX_POINT_LP_XHCI); -} - -bool usb_is_intel_switchable_xhci(struct pci_dev *pdev) -{ - return usb_is_intel_ppt_switchable_xhci(pdev) || - usb_is_intel_lpt_switchable_xhci(pdev); -} -EXPORT_SYMBOL_GPL(usb_is_intel_switchable_xhci); - /* * Intel's Panther Point chipset has two host controllers (EHCI and xHCI) that * share some number of ports. These ports can be switched between either @@ -779,9 +753,23 @@ * terminations before switching the USB 2.0 wires over, so that USB 3.0 * devices connect at SuperSpeed, rather than at USB 2.0 speeds. */ -void usb_enable_xhci_ports(struct pci_dev *xhci_pdev) +void usb_enable_intel_xhci_ports(struct pci_dev *xhci_pdev) { u32 ports_available; + bool ehci_found = false; + struct pci_dev *companion = NULL; + + /* make sure an intel EHCI controller exists */ + for_each_pci_dev(companion) { + if (companion->class == PCI_CLASS_SERIAL_USB_EHCI && + companion->vendor == PCI_VENDOR_ID_INTEL) { + ehci_found = true; + break; + } + } + + if (!ehci_found) + return; /* Don't switchover the ports if the user hasn't compiled the xHCI * driver. Otherwise they will see "dead" USB ports that don't power @@ -840,7 +828,7 @@ dev_dbg(&xhci_pdev->dev, "USB 2.0 ports that are now switched over " "to xHCI: 0x%x\n", ports_available); } -EXPORT_SYMBOL_GPL(usb_enable_xhci_ports); +EXPORT_SYMBOL_GPL(usb_enable_intel_xhci_ports); void usb_disable_xhci_ports(struct pci_dev *xhci_pdev) { @@ -921,8 +909,8 @@ writel(val, base + ext_cap_offset + XHCI_LEGACY_CONTROL_OFFSET); hc_init: - if (usb_is_intel_switchable_xhci(pdev)) - usb_enable_xhci_ports(pdev); + if (pdev->vendor == PCI_VENDOR_ID_INTEL) + usb_enable_intel_xhci_ports(pdev); op_reg_base = base + XHCI_HC_LENGTH(readl(base)); --- linux-3.11.0.orig/drivers/usb/host/xhci-ext-caps.h +++ linux-3.11.0/drivers/usb/host/xhci-ext-caps.h @@ -71,7 +71,7 @@ /* USB 2.0 xHCI 1.0 hardware LMP capability - section 7.2.2.1.3.2 */ #define XHCI_HLC (1 << 19) -#define XHCI_BLC (1 << 19) +#define XHCI_BLC (1 << 20) /* command register values to disable interrupts and halt the HC */ /* start/stop HC execution - do not write unless HC is halted*/ --- linux-3.11.0.orig/drivers/usb/host/uhci-pci.c +++ linux-3.11.0/drivers/usb/host/uhci-pci.c @@ -293,7 +293,7 @@ .remove = usb_hcd_pci_remove, .shutdown = uhci_shutdown, -#ifdef CONFIG_PM_SLEEP +#ifdef CONFIG_PM .driver = { .pm = &usb_hcd_pci_pm_ops }, --- linux-3.11.0.orig/drivers/usb/host/xhci.h +++ linux-3.11.0/drivers/usb/host/xhci.h @@ -1542,6 +1542,7 @@ #define XHCI_SPURIOUS_REBOOT (1 << 13) #define XHCI_COMP_MODE_QUIRK (1 << 14) #define XHCI_AVOID_BEI (1 << 15) +#define XHCI_PLAT (1 << 16) unsigned int num_active_eps; unsigned int limit_active_eps; /* There are two roothubs to keep track of bus suspend info for */ @@ -1850,6 +1851,7 @@ union xhci_trb *cmd_trb); void xhci_ring_ep_doorbell(struct xhci_hcd *xhci, unsigned int slot_id, unsigned int ep_index, unsigned int stream_id); +union xhci_trb *xhci_find_next_enqueue(struct xhci_ring *ring); /* xHCI roothub code */ void xhci_set_link_state(struct xhci_hcd *xhci, __le32 __iomem **port_array, --- linux-3.11.0.orig/drivers/usb/host/ehci-pci.c +++ linux-3.11.0/drivers/usb/host/ehci-pci.c @@ -315,53 +315,11 @@ * Also they depend on separate root hub suspend/resume. */ -static bool usb_is_intel_switchable_ehci(struct pci_dev *pdev) -{ - return pdev->class == PCI_CLASS_SERIAL_USB_EHCI && - pdev->vendor == PCI_VENDOR_ID_INTEL && - (pdev->device == 0x1E26 || - pdev->device == 0x8C2D || - pdev->device == 0x8C26 || - pdev->device == 0x9C26); -} - -static void ehci_enable_xhci_companion(void) -{ - struct pci_dev *companion = NULL; - - /* The xHCI and EHCI controllers are not on the same PCI slot */ - for_each_pci_dev(companion) { - if (!usb_is_intel_switchable_xhci(companion)) - continue; - usb_enable_xhci_ports(companion); - return; - } -} - static int ehci_pci_resume(struct usb_hcd *hcd, bool hibernated) { struct ehci_hcd *ehci = hcd_to_ehci(hcd); struct pci_dev *pdev = to_pci_dev(hcd->self.controller); - /* The BIOS on systems with the Intel Panther Point chipset may or may - * not support xHCI natively. That means that during system resume, it - * may switch the ports back to EHCI so that users can use their - * keyboard to select a kernel from GRUB after resume from hibernate. - * - * The BIOS is supposed to remember whether the OS had xHCI ports - * enabled before resume, and switch the ports back to xHCI when the - * BIOS/OS semaphore is written, but we all know we can't trust BIOS - * writers. - * - * Unconditionally switch the ports back to xHCI after a system resume. - * We can't tell whether the EHCI or xHCI controller will be resumed - * first, so we have to do the port switchover in both drivers. Writing - * a '1' to the port switchover registers should have no effect if the - * port was already switched over. - */ - if (usb_is_intel_switchable_ehci(pdev)) - ehci_enable_xhci_companion(); - if (ehci_resume(hcd, hibernated) != 0) (void) ehci_pci_reinit(ehci, pdev); return 0; @@ -403,7 +361,7 @@ .remove = usb_hcd_pci_remove, .shutdown = usb_hcd_pci_shutdown, -#ifdef CONFIG_PM_SLEEP +#ifdef CONFIG_PM .driver = { .pm = &usb_hcd_pci_pm_ops }, --- linux-3.11.0.orig/drivers/usb/host/xhci-ring.c +++ linux-3.11.0/drivers/usb/host/xhci-ring.c @@ -122,6 +122,16 @@ return TRB_TYPE_LINK_LE32(link->control); } +union xhci_trb *xhci_find_next_enqueue(struct xhci_ring *ring) +{ + /* Enqueue pointer can be left pointing to the link TRB, + * we must handle that + */ + if (TRB_TYPE_LINK_LE32(ring->enqueue->link.control)) + return ring->enq_seg->next->trbs; + return ring->enqueue; +} + /* Updates trb to point to the next TRB in the ring, and updates seg if the next * TRB is in a new segment. This does not skip over link TRBs, and it does not * effect the ring dequeue or enqueue pointers. @@ -847,8 +857,12 @@ /* Otherwise ring the doorbell(s) to restart queued transfers */ ring_doorbell_for_active_rings(xhci, slot_id, ep_index); } - ep->stopped_td = NULL; - ep->stopped_trb = NULL; + + /* Clear stopped_td and stopped_trb if endpoint is not halted */ + if (!(ep->ep_state & EP_HALTED)) { + ep->stopped_td = NULL; + ep->stopped_trb = NULL; + } /* * Drop the lock and complete the URBs in the cancelled TD list. @@ -1390,6 +1404,12 @@ inc_deq(xhci, xhci->cmd_ring); return; } + /* There is no command to handle if we get a stop event when the + * command ring is empty, event->cmd_trb points to the next + * unset command + */ + if (xhci->cmd_ring->dequeue == xhci->cmd_ring->enqueue) + return; } switch (le32_to_cpu(xhci->cmd_ring->dequeue->generic.field[3]) --- linux-3.11.0.orig/drivers/usb/host/ehci-fsl.c +++ linux-3.11.0/drivers/usb/host/ehci-fsl.c @@ -130,7 +130,7 @@ } /* Enable USB controller, 83xx or 8536 */ - if (pdata->have_sysif_regs) + if (pdata->have_sysif_regs && pdata->controller_ver < FSL_USB_VER_1_6) setbits32(hcd->regs + FSL_SOC_USB_CTRL, 0x4); /* Don't need to set host mode here. It will be done by tdi_reset() */ @@ -232,15 +232,9 @@ case FSL_USB2_PHY_ULPI: if (pdata->have_sysif_regs && pdata->controller_ver) { /* controller version 1.6 or above */ + clrbits32(non_ehci + FSL_SOC_USB_CTRL, UTMI_PHY_EN); setbits32(non_ehci + FSL_SOC_USB_CTRL, - ULPI_PHY_CLK_SEL); - /* - * Due to controller issue of PHY_CLK_VALID in ULPI - * mode, we set USB_CTRL_USB_EN before checking - * PHY_CLK_VALID, otherwise PHY_CLK_VALID doesn't work. - */ - clrsetbits_be32(non_ehci + FSL_SOC_USB_CTRL, - UTMI_PHY_EN, USB_CTRL_USB_EN); + ULPI_PHY_CLK_SEL | USB_CTRL_USB_EN); } portsc |= PORT_PTS_ULPI; break; --- linux-3.11.0.orig/drivers/usb/host/xhci.c +++ linux-3.11.0/drivers/usb/host/xhci.c @@ -343,9 +343,14 @@ static int xhci_try_enable_msi(struct usb_hcd *hcd) { struct xhci_hcd *xhci = hcd_to_xhci(hcd); - struct pci_dev *pdev = to_pci_dev(xhci_to_hcd(xhci)->self.controller); + struct pci_dev *pdev; int ret; + /* The xhci platform device has set up IRQs through usb_add_hcd. */ + if (xhci->quirks & XHCI_PLAT) + return 0; + + pdev = to_pci_dev(xhci_to_hcd(xhci)->self.controller); /* * Some Fresco Logic host controllers advertise MSI, but fail to * generate interrupts. Don't even try to enable MSI. @@ -2630,15 +2635,7 @@ if (command) { cmd_completion = command->completion; cmd_status = &command->status; - command->command_trb = xhci->cmd_ring->enqueue; - - /* Enqueue pointer can be left pointing to the link TRB, - * we must handle that - */ - if (TRB_TYPE_LINK_LE32(command->command_trb->link.control)) - command->command_trb = - xhci->cmd_ring->enq_seg->next->trbs; - + command->command_trb = xhci_find_next_enqueue(xhci->cmd_ring); list_add_tail(&command->cmd_list, &virt_dev->cmd_list); } else { cmd_completion = &virt_dev->cmd_completion; @@ -2646,7 +2643,7 @@ } init_completion(cmd_completion); - cmd_trb = xhci->cmd_ring->dequeue; + cmd_trb = xhci_find_next_enqueue(xhci->cmd_ring); if (!ctx_change) ret = xhci_queue_configure_endpoint(xhci, in_ctx->dma, udev->slot_id, must_succeed); @@ -3463,14 +3460,7 @@ /* Attempt to submit the Reset Device command to the command ring */ spin_lock_irqsave(&xhci->lock, flags); - reset_device_cmd->command_trb = xhci->cmd_ring->enqueue; - - /* Enqueue pointer can be left pointing to the link TRB, - * we must handle that - */ - if (TRB_TYPE_LINK_LE32(reset_device_cmd->command_trb->link.control)) - reset_device_cmd->command_trb = - xhci->cmd_ring->enq_seg->next->trbs; + reset_device_cmd->command_trb = xhci_find_next_enqueue(xhci->cmd_ring); list_add_tail(&reset_device_cmd->cmd_list, &virt_dev->cmd_list); ret = xhci_queue_reset_device(xhci, slot_id); @@ -3581,10 +3571,21 @@ { struct xhci_hcd *xhci = hcd_to_xhci(hcd); struct xhci_virt_device *virt_dev; + struct device *dev = hcd->self.controller; unsigned long flags; u32 state; int i, ret; +#ifndef CONFIG_USB_DEFAULT_PERSIST + /* + * We called pm_runtime_get_noresume when the device was attached. + * Decrement the counter here to allow controller to runtime suspend + * if no devices remain. + */ + if (xhci->quirks & XHCI_RESET_ON_RESUME) + pm_runtime_put_noidle(dev); +#endif + ret = xhci_check_args(hcd, udev, NULL, 0, true, __func__); /* If the host is halted due to driver unload, we still need to free the * device. @@ -3656,13 +3657,14 @@ int xhci_alloc_dev(struct usb_hcd *hcd, struct usb_device *udev) { struct xhci_hcd *xhci = hcd_to_xhci(hcd); + struct device *dev = hcd->self.controller; unsigned long flags; int timeleft; int ret; union xhci_trb *cmd_trb; spin_lock_irqsave(&xhci->lock, flags); - cmd_trb = xhci->cmd_ring->dequeue; + cmd_trb = xhci_find_next_enqueue(xhci->cmd_ring); ret = xhci_queue_slot_control(xhci, TRB_ENABLE_SLOT, 0); if (ret) { spin_unlock_irqrestore(&xhci->lock, flags); @@ -3708,6 +3710,16 @@ goto disable_slot; } udev->slot_id = xhci->slot_id; + +#ifndef CONFIG_USB_DEFAULT_PERSIST + /* + * If resetting upon resume, we can't put the controller into runtime + * suspend if there is a device attached. + */ + if (xhci->quirks & XHCI_RESET_ON_RESUME) + pm_runtime_get_noresume(dev); +#endif + /* Is this a LS or FS device under a HS hub? */ /* Hub or peripherial? */ return 1; @@ -3784,7 +3796,7 @@ xhci_dbg_ctx(xhci, virt_dev->in_ctx, 2); spin_lock_irqsave(&xhci->lock, flags); - cmd_trb = xhci->cmd_ring->dequeue; + cmd_trb = xhci_find_next_enqueue(xhci->cmd_ring); ret = xhci_queue_address_device(xhci, virt_dev->in_ctx->dma, udev->slot_id); if (ret) { --- linux-3.11.0.orig/drivers/usb/host/ehci-mxc.c +++ linux-3.11.0/drivers/usb/host/ehci-mxc.c @@ -184,7 +184,7 @@ if (pdata && pdata->exit) pdata->exit(pdev); - if (pdata->otg) + if (pdata && pdata->otg) usb_phy_shutdown(pdata->otg); clk_disable_unprepare(priv->usbclk); --- linux-3.11.0.orig/drivers/usb/host/xhci-plat.c +++ linux-3.11.0/drivers/usb/host/xhci-plat.c @@ -24,7 +24,7 @@ * here that the generic code does not try to make a pci_dev from our * dev struct in order to setup MSI */ - xhci->quirks |= XHCI_BROKEN_MSI; + xhci->quirks |= XHCI_PLAT; } /* called during probe() after chip reset completes */ --- linux-3.11.0.orig/drivers/usb/core/port.c +++ linux-3.11.0/drivers/usb/core/port.c @@ -89,22 +89,19 @@ retval = usb_hub_set_port_power(hdev, hub, port1, true); if (port_dev->child && !retval) { /* - * Wait for usb hub port to be reconnected in order to make - * the resume procedure successful. + * Attempt to wait for usb hub port to be reconnected in order + * to make the resume procedure successful. The device may have + * disconnected while the port was powered off, so ignore the + * return status. */ retval = hub_port_debounce_be_connected(hub, port1); - if (retval < 0) { + if (retval < 0) dev_dbg(&port_dev->dev, "can't get reconnection after setting port power on, status %d\n", retval); - goto out; - } usb_clear_port_feature(hdev, port1, USB_PORT_FEAT_C_ENABLE); - - /* Set return value to 0 if debounce successful */ retval = 0; } -out: clear_bit(port1, hub->busy_bits); usb_autopm_put_interface(intf); return retval; --- linux-3.11.0.orig/drivers/usb/core/hcd.c +++ linux-3.11.0/drivers/usb/core/hcd.c @@ -1035,6 +1035,7 @@ dev_name(&usb_dev->dev), retval); return retval; } + usb_dev->lpm_capable = usb_device_supports_lpm(usb_dev); } retval = usb_new_device (usb_dev); --- linux-3.11.0.orig/drivers/usb/core/hub.c +++ linux-3.11.0/drivers/usb/core/hub.c @@ -135,7 +135,7 @@ return usb_get_intfdata(hdev->actconfig->interface[0]); } -static int usb_device_supports_lpm(struct usb_device *udev) +int usb_device_supports_lpm(struct usb_device *udev) { /* USB 2.1 (and greater) devices indicate LPM support through * their USB 2.0 Extended Capabilities BOS descriptor. @@ -156,6 +156,11 @@ "Power management will be impacted.\n"); return 0; } + + /* udev is root hub */ + if (!udev->parent) + return 1; + if (udev->parent->lpm_capable) return 1; @@ -1557,10 +1562,15 @@ if (hub->has_indicators && blinkenlights) hub->indicator [0] = INDICATOR_CYCLE; - for (i = 0; i < hdev->maxchild; i++) - if (usb_hub_create_port_device(hub, i + 1) < 0) + for (i = 0; i < hdev->maxchild; i++) { + ret = usb_hub_create_port_device(hub, i + 1); + if (ret < 0) { dev_err(hub->intfdev, "couldn't create port%d device.\n", i + 1); + hdev->maxchild = i; + goto fail_keep_maxchild; + } + } usb_hub_adjust_deviceremovable(hdev, hub->descriptor); @@ -1568,6 +1578,8 @@ return 0; fail: + hdev->maxchild = 0; +fail_keep_maxchild: dev_err (hub_dev, "config failed, %s (err %d)\n", message, ret); /* hub_disconnect() frees urb and descriptor */ @@ -2918,7 +2930,6 @@ { struct usb_hub *hub = usb_hub_to_struct_hub(udev->parent); struct usb_port *port_dev = hub->ports[udev->portnum - 1]; - enum pm_qos_flags_status pm_qos_stat; int port1 = udev->portnum; int status; bool really_suspend = true; @@ -2956,7 +2967,7 @@ status); /* bail if autosuspend is requested */ if (PMSG_IS_AUTO(msg)) - return status; + goto err_wakeup; } } @@ -2965,14 +2976,16 @@ usb_set_usb2_hardware_lpm(udev, 0); if (usb_disable_ltm(udev)) { - dev_err(&udev->dev, "%s Failed to disable LTM before suspend\n.", - __func__); - return -ENOMEM; + dev_err(&udev->dev, "Failed to disable LTM before suspend\n."); + status = -ENOMEM; + if (PMSG_IS_AUTO(msg)) + goto err_ltm; } if (usb_unlocked_disable_lpm(udev)) { - dev_err(&udev->dev, "%s Failed to disable LPM before suspend\n.", - __func__); - return -ENOMEM; + dev_err(&udev->dev, "Failed to disable LPM before suspend\n."); + status = -ENOMEM; + if (PMSG_IS_AUTO(msg)) + goto err_lpm3; } /* see 7.1.7.6 */ @@ -3000,28 +3013,31 @@ if (status) { dev_dbg(hub->intfdev, "can't suspend port %d, status %d\n", port1, status); - /* paranoia: "should not happen" */ - if (udev->do_remote_wakeup) { - if (!hub_is_superspeed(hub->hdev)) { - (void) usb_control_msg(udev, - usb_sndctrlpipe(udev, 0), - USB_REQ_CLEAR_FEATURE, - USB_RECIP_DEVICE, - USB_DEVICE_REMOTE_WAKEUP, 0, - NULL, 0, - USB_CTRL_SET_TIMEOUT); - } else - (void) usb_disable_function_remotewakeup(udev); - - } + /* Try to enable USB3 LPM and LTM again */ + usb_unlocked_enable_lpm(udev); + err_lpm3: + usb_enable_ltm(udev); + err_ltm: /* Try to enable USB2 hardware LPM again */ if (udev->usb2_hw_lpm_capable == 1) usb_set_usb2_hardware_lpm(udev, 1); - /* Try to enable USB3 LTM and LPM again */ - usb_enable_ltm(udev); - usb_unlocked_enable_lpm(udev); + if (udev->do_remote_wakeup) { + if (udev->speed < USB_SPEED_SUPER) + usb_control_msg(udev, usb_sndctrlpipe(udev, 0), + USB_REQ_CLEAR_FEATURE, + USB_RECIP_DEVICE, + USB_DEVICE_REMOTE_WAKEUP, 0, + NULL, 0, USB_CTRL_SET_TIMEOUT); + else + usb_control_msg(udev, usb_sndctrlpipe(udev, 0), + USB_REQ_CLEAR_FEATURE, + USB_RECIP_INTERFACE, + USB_INTRF_FUNC_SUSPEND, 0, + NULL, 0, USB_CTRL_SET_TIMEOUT); + } + err_wakeup: /* System sleep transitions should never fail */ if (!PMSG_IS_AUTO(msg)) @@ -3039,16 +3055,7 @@ usb_set_device_state(udev, USB_STATE_SUSPENDED); } - /* - * Check whether current status meets the requirement of - * usb port power off mechanism - */ - pm_qos_stat = dev_pm_qos_flags(&port_dev->dev, - PM_QOS_FLAG_NO_POWER_OFF); - if (!udev->do_remote_wakeup - && pm_qos_stat != PM_QOS_FLAGS_ALL - && udev->persist_enabled - && !status) { + if (status == 0 && !udev->do_remote_wakeup && udev->persist_enabled) { pm_runtime_put_sync(&port_dev->dev); port_dev->did_runtime_put = true; } --- linux-3.11.0.orig/drivers/usb/core/config.c +++ linux-3.11.0/drivers/usb/core/config.c @@ -424,7 +424,8 @@ memcpy(&config->desc, buffer, USB_DT_CONFIG_SIZE); if (config->desc.bDescriptorType != USB_DT_CONFIG || - config->desc.bLength < USB_DT_CONFIG_SIZE) { + config->desc.bLength < USB_DT_CONFIG_SIZE || + config->desc.bLength > size) { dev_err(ddev, "invalid descriptor for config index %d: " "type = 0x%X, length = %d\n", cfgidx, config->desc.bDescriptorType, config->desc.bLength); --- linux-3.11.0.orig/drivers/usb/core/quirks.c +++ linux-3.11.0/drivers/usb/core/quirks.c @@ -97,6 +97,9 @@ /* Alcor Micro Corp. Hub */ { USB_DEVICE(0x058f, 0x9254), .driver_info = USB_QUIRK_RESET_RESUME }, + /* MicroTouch Systems touchscreen */ + { USB_DEVICE(0x0596, 0x051e), .driver_info = USB_QUIRK_RESET_RESUME }, + /* appletouch */ { USB_DEVICE(0x05ac, 0x021a), .driver_info = USB_QUIRK_RESET_RESUME }, @@ -130,6 +133,9 @@ /* Broadcom BCM92035DGROM BT dongle */ { USB_DEVICE(0x0a5c, 0x2021), .driver_info = USB_QUIRK_RESET_RESUME }, + /* MAYA44USB sound device */ + { USB_DEVICE(0x0a92, 0x0091), .driver_info = USB_QUIRK_RESET_RESUME }, + /* Action Semiconductor flash disk */ { USB_DEVICE(0x10d6, 0x2200), .driver_info = USB_QUIRK_STRING_FETCH_255 }, --- linux-3.11.0.orig/drivers/usb/core/devio.c +++ linux-3.11.0/drivers/usb/core/devio.c @@ -742,6 +742,22 @@ if ((index & ~USB_DIR_IN) == 0) return 0; ret = findintfep(ps->dev, index); + if (ret < 0) { + /* + * Some not fully compliant Win apps seem to get + * index wrong and have the endpoint number here + * rather than the endpoint address (with the + * correct direction). Win does let this through, + * so we'll not reject it here but leave it to + * the device to not break KVM. But we warn. + */ + ret = findintfep(ps->dev, index ^ 0x80); + if (ret >= 0) + dev_info(&ps->dev->dev, + "%s: process %i (%s) requesting ep %02x but needs %02x\n", + __func__, task_pid_nr(current), + current->comm, index, index ^ 0x80); + } if (ret >= 0) ret = checkintf(ps, ret); break; --- linux-3.11.0.orig/drivers/usb/core/usb.h +++ linux-3.11.0/drivers/usb/core/usb.h @@ -35,6 +35,7 @@ unsigned int size); extern int usb_get_bos_descriptor(struct usb_device *dev); extern void usb_release_bos_descriptor(struct usb_device *dev); +extern int usb_device_supports_lpm(struct usb_device *udev); extern char *usb_cache_string(struct usb_device *udev, int index); extern int usb_set_configuration(struct usb_device *dev, int configuration); extern int usb_choose_configuration(struct usb_device *udev); --- linux-3.11.0.orig/drivers/usb/storage/unusual_devs.h +++ linux-3.11.0/drivers/usb/storage/unusual_devs.h @@ -1191,6 +1191,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 @@ -1925,6 +1932,13 @@ USB_SC_DEVICE, USB_PR_DEVICE, NULL, US_FL_IGNORE_RESIDUE ), +/* Reported by Oliver Neukum */ +UNUSUAL_DEV( 0x174c, 0x55aa, 0x0100, 0x0100, + "ASMedia", + "AS2105", + USB_SC_DEVICE, USB_PR_DEVICE, NULL, + US_FL_NEEDS_CAP16), + /* Reported by Jesse Feddema */ UNUSUAL_DEV( 0x177f, 0x0400, 0x0000, 0x0000, "Yarvik", --- linux-3.11.0.orig/drivers/usb/storage/scsiglue.c +++ linux-3.11.0/drivers/usb/storage/scsiglue.c @@ -211,8 +211,11 @@ /* * Many devices do not respond properly to READ_CAPACITY_16. * Tell the SCSI layer to try READ_CAPACITY_10 first. + * However some USB 3.0 drive enclosures return capacity + * modulo 2TB. Those must use READ_CAPACITY_16 */ - sdev->try_rc_10_first = 1; + if (!(us->fflags & US_FL_NEEDS_CAP16)) + sdev->try_rc_10_first = 1; /* assume SPC3 or latter devices support sense size > 18 */ if (sdev->scsi_level > SCSI_SPC_2) --- linux-3.11.0.orig/drivers/usb/musb/musb_core.h +++ linux-3.11.0/drivers/usb/musb/musb_core.h @@ -511,6 +511,7 @@ extern const char musb_driver_name[]; extern void musb_stop(struct musb *musb); +extern void musb_start(struct musb *musb); extern void musb_write_fifo(struct musb_hw_ep *ep, u16 len, const u8 *src); extern void musb_read_fifo(struct musb_hw_ep *ep, u16 len, u8 *dst); --- linux-3.11.0.orig/drivers/usb/musb/musb_gadget.c +++ linux-3.11.0/drivers/usb/musb/musb_gadget.c @@ -1842,6 +1842,8 @@ musb->xceiv->state = OTG_STATE_B_IDLE; spin_unlock_irqrestore(&musb->lock, flags); + musb_start(musb); + /* REVISIT: funcall to other code, which also * handles power budgeting ... this way also * ensures HdrcStart is indirectly called. --- linux-3.11.0.orig/drivers/usb/musb/musb_core.c +++ linux-3.11.0/drivers/usb/musb/musb_core.c @@ -923,6 +923,52 @@ } /* + * Program the HDRC to start (enable interrupts, dma, etc.). + */ +void musb_start(struct musb *musb) +{ + void __iomem *regs = musb->mregs; + u8 devctl = musb_readb(regs, MUSB_DEVCTL); + + dev_dbg(musb->controller, "<== devctl %02x\n", devctl); + + /* Set INT enable registers, enable interrupts */ + musb->intrtxe = musb->epmask; + musb_writew(regs, MUSB_INTRTXE, musb->intrtxe); + musb->intrrxe = musb->epmask & 0xfffe; + musb_writew(regs, MUSB_INTRRXE, musb->intrrxe); + musb_writeb(regs, MUSB_INTRUSBE, 0xf7); + + musb_writeb(regs, MUSB_TESTMODE, 0); + + /* put into basic highspeed mode and start session */ + musb_writeb(regs, MUSB_POWER, MUSB_POWER_ISOUPDATE + | MUSB_POWER_HSENAB + /* ENSUSPEND wedges tusb */ + /* | MUSB_POWER_ENSUSPEND */ + ); + + musb->is_active = 0; + devctl = musb_readb(regs, MUSB_DEVCTL); + devctl &= ~MUSB_DEVCTL_SESSION; + + /* session started after: + * (a) ID-grounded irq, host mode; + * (b) vbus present/connect IRQ, peripheral mode; + * (c) peripheral initiates, using SRP + */ + if (musb->port_mode != MUSB_PORT_MODE_HOST && + (devctl & MUSB_DEVCTL_VBUS) == MUSB_DEVCTL_VBUS) { + musb->is_active = 1; + } else { + devctl |= MUSB_DEVCTL_SESSION; + } + + musb_platform_enable(musb); + musb_writeb(regs, MUSB_DEVCTL, devctl); +} + +/* * Make the HDRC stop (disable interrupts, etc.); * reversible by musb_start * called on gadget driver unregister --- linux-3.11.0.orig/drivers/usb/musb/musb_virthub.c +++ linux-3.11.0/drivers/usb/musb/musb_virthub.c @@ -44,52 +44,6 @@ #include "musb_core.h" -/* -* Program the HDRC to start (enable interrupts, dma, etc.). -*/ -static void musb_start(struct musb *musb) -{ - void __iomem *regs = musb->mregs; - u8 devctl = musb_readb(regs, MUSB_DEVCTL); - - dev_dbg(musb->controller, "<== devctl %02x\n", devctl); - - /* Set INT enable registers, enable interrupts */ - musb->intrtxe = musb->epmask; - musb_writew(regs, MUSB_INTRTXE, musb->intrtxe); - musb->intrrxe = musb->epmask & 0xfffe; - musb_writew(regs, MUSB_INTRRXE, musb->intrrxe); - musb_writeb(regs, MUSB_INTRUSBE, 0xf7); - - musb_writeb(regs, MUSB_TESTMODE, 0); - - /* put into basic highspeed mode and start session */ - musb_writeb(regs, MUSB_POWER, MUSB_POWER_ISOUPDATE - | MUSB_POWER_HSENAB - /* ENSUSPEND wedges tusb */ - /* | MUSB_POWER_ENSUSPEND */ - ); - - musb->is_active = 0; - devctl = musb_readb(regs, MUSB_DEVCTL); - devctl &= ~MUSB_DEVCTL_SESSION; - - /* session started after: - * (a) ID-grounded irq, host mode; - * (b) vbus present/connect IRQ, peripheral mode; - * (c) peripheral initiates, using SRP - */ - if (musb->port_mode != MUSB_PORT_MODE_HOST && - (devctl & MUSB_DEVCTL_VBUS) == MUSB_DEVCTL_VBUS) { - musb->is_active = 1; - } else { - devctl |= MUSB_DEVCTL_SESSION; - } - - musb_platform_enable(musb); - musb_writeb(regs, MUSB_DEVCTL, devctl); -} - static void musb_port_suspend(struct musb *musb, bool do_suspend) { struct usb_otg *otg = musb->xceiv->otg; --- linux-3.11.0.orig/drivers/usb/dwc3/dwc3-pci.c +++ linux-3.11.0/drivers/usb/dwc3/dwc3-pci.c @@ -48,6 +48,8 @@ /* FIXME define these in */ #define PCI_VENDOR_ID_SYNOPSYS 0x16c3 #define PCI_DEVICE_ID_SYNOPSYS_HAPSUSB3 0xabcd +#define PCI_DEVICE_ID_INTEL_BYT 0x0f37 +#define PCI_DEVICE_ID_INTEL_MRFLD 0x119e struct dwc3_pci { struct device *dev; @@ -207,6 +209,8 @@ PCI_DEVICE(PCI_VENDOR_ID_SYNOPSYS, PCI_DEVICE_ID_SYNOPSYS_HAPSUSB3), }, + { PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_BYT), }, + { PCI_DEVICE(PCI_VENDOR_ID_INTEL, PCI_DEVICE_ID_INTEL_MRFLD), }, { } /* Terminating Entry */ }; MODULE_DEVICE_TABLE(pci, dwc3_pci_id_table); --- linux-3.11.0.orig/drivers/usb/dwc3/gadget.c +++ linux-3.11.0/drivers/usb/dwc3/gadget.c @@ -1508,6 +1508,15 @@ int irq; u32 reg; + irq = platform_get_irq(to_platform_device(dwc->dev), 0); + ret = request_threaded_irq(irq, dwc3_interrupt, dwc3_thread_interrupt, + IRQF_SHARED | IRQF_ONESHOT, "dwc3", dwc); + if (ret) { + dev_err(dwc->dev, "failed to request irq #%d --> %d\n", + irq, ret); + goto err0; + } + spin_lock_irqsave(&dwc->lock, flags); if (dwc->gadget_driver) { @@ -1515,7 +1524,7 @@ dwc->gadget.name, dwc->gadget_driver->driver.name); ret = -EBUSY; - goto err0; + goto err1; } dwc->gadget_driver = driver; @@ -1551,42 +1560,38 @@ ret = __dwc3_gadget_ep_enable(dep, &dwc3_gadget_ep0_desc, NULL, false); if (ret) { dev_err(dwc->dev, "failed to enable %s\n", dep->name); - goto err0; + goto err2; } dep = dwc->eps[1]; ret = __dwc3_gadget_ep_enable(dep, &dwc3_gadget_ep0_desc, NULL, false); if (ret) { dev_err(dwc->dev, "failed to enable %s\n", dep->name); - goto err1; + goto err3; } /* begin to receive SETUP packets */ dwc->ep0state = EP0_SETUP_PHASE; dwc3_ep0_out_start(dwc); - irq = platform_get_irq(to_platform_device(dwc->dev), 0); - ret = request_threaded_irq(irq, dwc3_interrupt, dwc3_thread_interrupt, - IRQF_SHARED | IRQF_ONESHOT, "dwc3", dwc); - if (ret) { - dev_err(dwc->dev, "failed to request irq #%d --> %d\n", - irq, ret); - goto err1; - } - dwc3_gadget_enable_irq(dwc); spin_unlock_irqrestore(&dwc->lock, flags); return 0; -err1: +err3: __dwc3_gadget_ep_disable(dwc->eps[0]); -err0: +err2: dwc->gadget_driver = NULL; + +err1: spin_unlock_irqrestore(&dwc->lock, flags); + free_irq(irq, dwc); + +err0: return ret; } @@ -1600,9 +1605,6 @@ spin_lock_irqsave(&dwc->lock, flags); dwc3_gadget_disable_irq(dwc); - irq = platform_get_irq(to_platform_device(dwc->dev), 0); - free_irq(irq, dwc); - __dwc3_gadget_ep_disable(dwc->eps[0]); __dwc3_gadget_ep_disable(dwc->eps[1]); @@ -1610,6 +1612,9 @@ spin_unlock_irqrestore(&dwc->lock, flags); + irq = platform_get_irq(to_platform_device(dwc->dev), 0); + free_irq(irq, dwc); + return 0; } --- linux-3.11.0.orig/drivers/usb/chipidea/ci_hdrc_pci.c +++ linux-3.11.0/drivers/usb/chipidea/ci_hdrc_pci.c @@ -129,7 +129,12 @@ PCI_DEVICE(PCI_VENDOR_ID_INTEL, 0x0829), .driver_data = (kernel_ulong_t)&penwell_pci_platdata, }, - { 0, 0, 0, 0, 0, 0, 0 /* end: all zeroes */ } + { + /* Intel Clovertrail */ + PCI_DEVICE(PCI_VENDOR_ID_INTEL, 0xe006), + .driver_data = (kernel_ulong_t)&penwell_pci_platdata, + }, + { 0 } /* end: all zeroes */ }; MODULE_DEVICE_TABLE(pci, ci_hdrc_pci_id_table); --- linux-3.11.0.orig/drivers/usb/serial/ftdi_sio_ids.h +++ linux-3.11.0/drivers/usb/serial/ftdi_sio_ids.h @@ -1307,3 +1307,9 @@ * Manufacturer: Crucible Technologies */ #define FTDI_CT_COMET_PID 0x8e08 + +/* + * Product: Z3X Box + * Manufacturer: Smart GSM Team + */ +#define FTDI_Z3X_PID 0x0011 --- linux-3.11.0.orig/drivers/usb/serial/mos7840.c +++ linux-3.11.0/drivers/usb/serial/mos7840.c @@ -1580,7 +1580,11 @@ return -ENODEV; status = mos7840_get_uart_reg(port, MODEM_STATUS_REGISTER, &msr); + if (status != 1) + return -EIO; status = mos7840_get_uart_reg(port, MODEM_CONTROL_REGISTER, &mcr); + if (status != 1) + return -EIO; result = ((mcr & MCR_DTR) ? TIOCM_DTR : 0) | ((mcr & MCR_RTS) ? TIOCM_RTS : 0) | ((mcr & MCR_LOOPBACK) ? TIOCM_LOOP : 0) --- linux-3.11.0.orig/drivers/usb/serial/mos7720.c +++ linux-3.11.0/drivers/usb/serial/mos7720.c @@ -374,7 +374,7 @@ kfree(urbtrack); return -ENOMEM; } - urbtrack->setup = kmalloc(sizeof(*urbtrack->setup), GFP_KERNEL); + urbtrack->setup = kmalloc(sizeof(*urbtrack->setup), GFP_ATOMIC); if (!urbtrack->setup) { usb_free_urb(urbtrack->urb); kfree(urbtrack); @@ -382,8 +382,8 @@ } urbtrack->setup->bRequestType = (__u8)0x40; urbtrack->setup->bRequest = (__u8)0x0e; - urbtrack->setup->wValue = get_reg_value(reg, dummy); - urbtrack->setup->wIndex = get_reg_index(reg); + urbtrack->setup->wValue = cpu_to_le16(get_reg_value(reg, dummy)); + urbtrack->setup->wIndex = cpu_to_le16(get_reg_index(reg)); urbtrack->setup->wLength = 0; usb_fill_control_urb(urbtrack->urb, usbdev, usb_sndctrlpipe(usbdev, 0), --- linux-3.11.0.orig/drivers/usb/serial/option.c +++ linux-3.11.0/drivers/usb/serial/option.c @@ -81,6 +81,7 @@ #define HUAWEI_VENDOR_ID 0x12D1 #define HUAWEI_PRODUCT_E173 0x140C +#define HUAWEI_PRODUCT_E1750 0x1406 #define HUAWEI_PRODUCT_K4505 0x1464 #define HUAWEI_PRODUCT_K3765 0x1465 #define HUAWEI_PRODUCT_K4605 0x14C6 @@ -450,6 +451,10 @@ #define CHANGHONG_VENDOR_ID 0x2077 #define CHANGHONG_PRODUCT_CH690 0x7001 +/* Inovia */ +#define INOVIA_VENDOR_ID 0x20a6 +#define INOVIA_SEW858 0x1105 + /* some devices interfaces need special handling due to a number of reasons */ enum option_blacklist_reason { OPTION_BLACKLIST_NONE = 0, @@ -567,6 +572,8 @@ { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0x1c23, USB_CLASS_COMM, 0x02, 0xff) }, { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E173, 0xff, 0xff, 0xff), .driver_info = (kernel_ulong_t) &net_intf1_blacklist }, + { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_E1750, 0xff, 0xff, 0xff), + .driver_info = (kernel_ulong_t) &net_intf2_blacklist }, { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0x1441, USB_CLASS_COMM, 0x02, 0xff) }, { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0x1442, USB_CLASS_COMM, 0x02, 0xff) }, { USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_K4505, 0xff, 0xff, 0xff), @@ -686,6 +693,222 @@ { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x02, 0x7A) }, { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x02, 0x7B) }, { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x02, 0x7C) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x03, 0x01) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x03, 0x02) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x03, 0x03) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x03, 0x04) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x03, 0x05) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x03, 0x06) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x03, 0x0A) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x03, 0x0B) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x03, 0x0D) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x03, 0x0E) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x03, 0x0F) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x03, 0x10) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x03, 0x12) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x03, 0x13) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x03, 0x14) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x03, 0x15) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x03, 0x17) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x03, 0x18) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x03, 0x19) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x03, 0x1A) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x03, 0x1B) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x03, 0x1C) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x03, 0x31) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x03, 0x32) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x03, 0x33) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x03, 0x34) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x03, 0x35) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x03, 0x36) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x03, 0x3A) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x03, 0x3B) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x03, 0x3D) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x03, 0x3E) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x03, 0x3F) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x03, 0x48) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x03, 0x49) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x03, 0x4A) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x03, 0x4B) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x03, 0x4C) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x03, 0x61) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x03, 0x62) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x03, 0x63) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x03, 0x64) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x03, 0x65) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x03, 0x66) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x03, 0x6A) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x03, 0x6B) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x03, 0x6D) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x03, 0x6E) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x03, 0x6F) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x03, 0x78) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x03, 0x79) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x03, 0x7A) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x03, 0x7B) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x03, 0x7C) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x04, 0x01) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x04, 0x02) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x04, 0x03) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x04, 0x04) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x04, 0x05) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x04, 0x06) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x04, 0x0A) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x04, 0x0B) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x04, 0x0D) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x04, 0x0E) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x04, 0x0F) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x04, 0x10) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x04, 0x12) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x04, 0x13) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x04, 0x14) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x04, 0x15) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x04, 0x17) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x04, 0x18) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x04, 0x19) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x04, 0x1A) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x04, 0x1B) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x04, 0x1C) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x04, 0x31) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x04, 0x32) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x04, 0x33) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x04, 0x34) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x04, 0x35) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x04, 0x36) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x04, 0x3A) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x04, 0x3B) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x04, 0x3D) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x04, 0x3E) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x04, 0x3F) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x04, 0x48) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x04, 0x49) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x04, 0x4A) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x04, 0x4B) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x04, 0x4C) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x04, 0x61) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x04, 0x62) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x04, 0x63) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x04, 0x64) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x04, 0x65) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x04, 0x66) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x04, 0x6A) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x04, 0x6B) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x04, 0x6D) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x04, 0x6E) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x04, 0x6F) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x04, 0x78) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x04, 0x79) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x04, 0x7A) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x04, 0x7B) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x04, 0x7C) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x05, 0x01) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x05, 0x02) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x05, 0x03) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x05, 0x04) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x05, 0x05) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x05, 0x06) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x05, 0x0A) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x05, 0x0B) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x05, 0x0D) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x05, 0x0E) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x05, 0x0F) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x05, 0x10) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x05, 0x12) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x05, 0x13) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x05, 0x14) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x05, 0x15) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x05, 0x17) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x05, 0x18) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x05, 0x19) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x05, 0x1A) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x05, 0x1B) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x05, 0x1C) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x05, 0x31) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x05, 0x32) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x05, 0x33) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x05, 0x34) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x05, 0x35) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x05, 0x36) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x05, 0x3A) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x05, 0x3B) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x05, 0x3D) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x05, 0x3E) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x05, 0x3F) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x05, 0x48) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x05, 0x49) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x05, 0x4A) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x05, 0x4B) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x05, 0x4C) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x05, 0x61) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x05, 0x62) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x05, 0x63) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x05, 0x64) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x05, 0x65) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x05, 0x66) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x05, 0x6A) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x05, 0x6B) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x05, 0x6D) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x05, 0x6E) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x05, 0x6F) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x05, 0x78) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x05, 0x79) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x05, 0x7A) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x05, 0x7B) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x05, 0x7C) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x06, 0x01) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x06, 0x02) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x06, 0x03) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x06, 0x04) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x06, 0x05) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x06, 0x06) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x06, 0x0A) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x06, 0x0B) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x06, 0x0D) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x06, 0x0E) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x06, 0x0F) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x06, 0x10) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x06, 0x12) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x06, 0x13) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x06, 0x14) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x06, 0x15) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x06, 0x17) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x06, 0x18) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x06, 0x19) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x06, 0x1A) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x06, 0x1B) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x06, 0x1C) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x06, 0x31) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x06, 0x32) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x06, 0x33) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x06, 0x34) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x06, 0x35) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x06, 0x36) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x06, 0x3A) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x06, 0x3B) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x06, 0x3D) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x06, 0x3E) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x06, 0x3F) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x06, 0x48) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x06, 0x49) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x06, 0x4A) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x06, 0x4B) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x06, 0x4C) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x06, 0x61) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x06, 0x62) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x06, 0x63) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x06, 0x64) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x06, 0x65) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x06, 0x66) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x06, 0x6A) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x06, 0x6B) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x06, 0x6D) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x06, 0x6E) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x06, 0x6F) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x06, 0x78) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x06, 0x79) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x06, 0x7A) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x06, 0x7B) }, + { USB_VENDOR_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, 0xff, 0x06, 0x7C) }, { USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_V640) }, @@ -1153,6 +1376,23 @@ .driver_info = (kernel_ulong_t)&net_intf2_blacklist }, { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1426, 0xff, 0xff, 0xff), /* ZTE MF91 */ .driver_info = (kernel_ulong_t)&net_intf2_blacklist }, + { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1533, 0xff, 0xff, 0xff) }, + { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1534, 0xff, 0xff, 0xff) }, + { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1535, 0xff, 0xff, 0xff) }, + { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1545, 0xff, 0xff, 0xff) }, + { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1546, 0xff, 0xff, 0xff) }, + { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1547, 0xff, 0xff, 0xff) }, + { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1565, 0xff, 0xff, 0xff) }, + { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1566, 0xff, 0xff, 0xff) }, + { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1567, 0xff, 0xff, 0xff) }, + { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1589, 0xff, 0xff, 0xff) }, + { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1590, 0xff, 0xff, 0xff) }, + { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1591, 0xff, 0xff, 0xff) }, + { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1592, 0xff, 0xff, 0xff) }, + { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1594, 0xff, 0xff, 0xff) }, + { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1596, 0xff, 0xff, 0xff) }, + { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1598, 0xff, 0xff, 0xff) }, + { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1600, 0xff, 0xff, 0xff) }, { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x2002, 0xff, 0xff, 0xff), .driver_info = (kernel_ulong_t)&zte_k3765_z_blacklist }, { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x2003, 0xff, 0xff, 0xff) }, @@ -1254,7 +1494,9 @@ { USB_DEVICE(OLIVETTI_VENDOR_ID, OLIVETTI_PRODUCT_OLICARD100) }, { USB_DEVICE(OLIVETTI_VENDOR_ID, OLIVETTI_PRODUCT_OLICARD145) }, - { USB_DEVICE(OLIVETTI_VENDOR_ID, OLIVETTI_PRODUCT_OLICARD200) }, + { USB_DEVICE(OLIVETTI_VENDOR_ID, OLIVETTI_PRODUCT_OLICARD200), + .driver_info = (kernel_ulong_t)&net_intf6_blacklist + }, { USB_DEVICE(CELOT_VENDOR_ID, CELOT_PRODUCT_CT680M) }, /* CT-650 CDMA 450 1xEVDO 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.*/ { USB_DEVICE(YUGA_VENDOR_ID, YUGA_PRODUCT_CEM600) }, @@ -1342,6 +1584,7 @@ { USB_DEVICE_AND_INTERFACE_INFO(0x2001, 0x7d03, 0xff, 0x00, 0x00) }, { USB_DEVICE_AND_INTERFACE_INFO(0x07d1, 0x3e01, 0xff, 0xff, 0xff) }, /* D-Link DWM-152/C1 */ { USB_DEVICE_AND_INTERFACE_INFO(0x07d1, 0x3e02, 0xff, 0xff, 0xff) }, /* D-Link DWM-156/C1 */ + { USB_DEVICE(INOVIA_VENDOR_ID, INOVIA_SEW858) }, { } /* Terminating entry */ }; MODULE_DEVICE_TABLE(usb, option_ids); --- linux-3.11.0.orig/drivers/usb/serial/ti_usb_3410_5052.c +++ linux-3.11.0/drivers/usb/serial/ti_usb_3410_5052.c @@ -203,6 +203,7 @@ { USB_DEVICE(IBM_VENDOR_ID, IBM_454B_PRODUCT_ID) }, { USB_DEVICE(IBM_VENDOR_ID, IBM_454C_PRODUCT_ID) }, { USB_DEVICE(ABBOTT_VENDOR_ID, ABBOTT_PRODUCT_ID) }, + { USB_DEVICE(ABBOTT_VENDOR_ID, ABBOTT_STRIP_PORT_ID) }, { USB_DEVICE(TI_VENDOR_ID, FRI2_PRODUCT_ID) }, { } }; --- linux-3.11.0.orig/drivers/usb/serial/ftdi_sio.c +++ linux-3.11.0/drivers/usb/serial/ftdi_sio.c @@ -906,6 +906,7 @@ { USB_DEVICE(FTDI_VID, FTDI_LUMEL_PD12_PID) }, /* Crucible Devices */ { USB_DEVICE(FTDI_VID, FTDI_CT_COMET_PID) }, + { USB_DEVICE(FTDI_VID, FTDI_Z3X_PID) }, { }, /* Optional parameter entry */ { } /* Terminating entry */ }; --- linux-3.11.0.orig/drivers/usb/gadget/f_fs.c +++ linux-3.11.0/drivers/usb/gadget/f_fs.c @@ -1034,37 +1034,19 @@ struct ffs_file_perms perms; umode_t root_mode; const char *dev_name; - union { - /* set by ffs_fs_mount(), read by ffs_sb_fill() */ - void *private_data; - /* set by ffs_sb_fill(), read by ffs_fs_mount */ - struct ffs_data *ffs_data; - }; + struct ffs_data *ffs_data; }; static int ffs_sb_fill(struct super_block *sb, void *_data, int silent) { struct ffs_sb_fill_data *data = _data; struct inode *inode; - struct ffs_data *ffs; + struct ffs_data *ffs = data->ffs_data; ENTER(); - /* Initialise data */ - ffs = ffs_data_new(); - if (unlikely(!ffs)) - goto Enomem; - ffs->sb = sb; - ffs->dev_name = kstrdup(data->dev_name, GFP_KERNEL); - if (unlikely(!ffs->dev_name)) - goto Enomem; - ffs->file_perms = data->perms; - ffs->private_data = data->private_data; - - /* used by the caller of this function */ - data->ffs_data = ffs; - + data->ffs_data = NULL; sb->s_fs_info = ffs; sb->s_blocksize = PAGE_CACHE_SIZE; sb->s_blocksize_bits = PAGE_CACHE_SHIFT; @@ -1080,17 +1062,14 @@ &data->perms); sb->s_root = d_make_root(inode); if (unlikely(!sb->s_root)) - goto Enomem; + return -ENOMEM; /* EP0 file */ if (unlikely(!ffs_sb_create_file(sb, "ep0", ffs, &ffs_ep0_operations, NULL))) - goto Enomem; + return -ENOMEM; return 0; - -Enomem: - return -ENOMEM; } static int ffs_fs_parse_opts(struct ffs_sb_fill_data *data, char *opts) @@ -1193,6 +1172,7 @@ struct dentry *rv; int ret; void *ffs_dev; + struct ffs_data *ffs; ENTER(); @@ -1200,18 +1180,30 @@ if (unlikely(ret < 0)) return ERR_PTR(ret); + ffs = ffs_data_new(); + if (unlikely(!ffs)) + return ERR_PTR(-ENOMEM); + ffs->file_perms = data.perms; + + ffs->dev_name = kstrdup(dev_name, GFP_KERNEL); + if (unlikely(!ffs->dev_name)) { + ffs_data_put(ffs); + return ERR_PTR(-ENOMEM); + } + ffs_dev = functionfs_acquire_dev_callback(dev_name); - if (IS_ERR(ffs_dev)) - return ffs_dev; + if (IS_ERR(ffs_dev)) { + ffs_data_put(ffs); + return ERR_CAST(ffs_dev); + } + ffs->private_data = ffs_dev; + data.ffs_data = ffs; - data.dev_name = dev_name; - data.private_data = ffs_dev; rv = mount_nodev(t, flags, &data, ffs_sb_fill); - - /* data.ffs_data is set by ffs_sb_fill */ - if (IS_ERR(rv)) + if (IS_ERR(rv) && data.ffs_data) { functionfs_release_dev_callback(data.ffs_data); - + ffs_data_put(data.ffs_data); + } return rv; } --- linux-3.11.0.orig/drivers/usb/gadget/dummy_hcd.c +++ linux-3.11.0/drivers/usb/gadget/dummy_hcd.c @@ -923,8 +923,9 @@ struct dummy_hcd *dum_hcd = gadget_to_dummy_hcd(g); struct dummy *dum = dum_hcd->dum; - dev_dbg(udc_dev(dum), "unregister gadget driver '%s'\n", - driver->driver.name); + if (driver) + dev_dbg(udc_dev(dum), "unregister gadget driver '%s'\n", + driver->driver.name); dum->driver = NULL; @@ -1000,8 +1001,8 @@ { struct dummy *dum = platform_get_drvdata(pdev); - usb_del_gadget_udc(&dum->gadget); device_remove_file(&dum->gadget.dev, &dev_attr_function); + usb_del_gadget_udc(&dum->gadget); return 0; } --- linux-3.11.0.orig/drivers/usb/gadget/f_acm.c +++ linux-3.11.0/drivers/usb/gadget/f_acm.c @@ -285,6 +285,7 @@ [ACM_CTRL_IDX].s = "CDC Abstract Control Model (ACM)", [ACM_DATA_IDX].s = "CDC ACM Data", [ACM_IAD_IDX ].s = "CDC Serial", + { } /* end of list */ }; static struct usb_gadget_strings acm_string_table = { --- linux-3.11.0.orig/drivers/usb/gadget/uvc_queue.c +++ linux-3.11.0/drivers/usb/gadget/uvc_queue.c @@ -193,12 +193,16 @@ mutex_lock(&queue->mutex); ret = vb2_qbuf(&queue->queue, buf); + if (ret < 0) + goto done; + spin_lock_irqsave(&queue->irqlock, flags); ret = (queue->flags & UVC_QUEUE_PAUSED) != 0; queue->flags &= ~UVC_QUEUE_PAUSED; spin_unlock_irqrestore(&queue->irqlock, flags); - mutex_unlock(&queue->mutex); +done: + mutex_unlock(&queue->mutex); return ret; } --- linux-3.11.0.orig/drivers/usb/class/cdc-wdm.c +++ linux-3.11.0/drivers/usb/class/cdc-wdm.c @@ -209,6 +209,7 @@ static void wdm_int_callback(struct urb *urb) { int rv = 0; + int responding; int status = urb->status; struct wdm_device *desc; struct usb_cdc_notification *dr; @@ -262,8 +263,8 @@ spin_lock(&desc->iuspin); clear_bit(WDM_READ, &desc->flags); - set_bit(WDM_RESPONDING, &desc->flags); - if (!test_bit(WDM_DISCONNECTING, &desc->flags) + responding = test_and_set_bit(WDM_RESPONDING, &desc->flags); + if (!responding && !test_bit(WDM_DISCONNECTING, &desc->flags) && !test_bit(WDM_SUSPENDING, &desc->flags)) { rv = usb_submit_urb(desc->response, GFP_ATOMIC); dev_dbg(&desc->intf->dev, "%s: usb_submit_urb %d", @@ -685,16 +686,20 @@ { struct wdm_device *desc = container_of(work, struct wdm_device, rxwork); unsigned long flags; - int rv; + int rv = 0; + int responding; spin_lock_irqsave(&desc->iuspin, flags); if (test_bit(WDM_DISCONNECTING, &desc->flags)) { spin_unlock_irqrestore(&desc->iuspin, flags); } else { + responding = test_and_set_bit(WDM_RESPONDING, &desc->flags); spin_unlock_irqrestore(&desc->iuspin, flags); - rv = usb_submit_urb(desc->response, GFP_KERNEL); + if (!responding) + rv = usb_submit_urb(desc->response, GFP_KERNEL); if (rv < 0 && rv != -EPERM) { spin_lock_irqsave(&desc->iuspin, flags); + clear_bit(WDM_RESPONDING, &desc->flags); if (!test_bit(WDM_DISCONNECTING, &desc->flags)) schedule_work(&desc->rxwork); spin_unlock_irqrestore(&desc->iuspin, flags); --- linux-3.11.0.orig/drivers/vhost/scsi.c +++ linux-3.11.0/drivers/vhost/scsi.c @@ -1030,7 +1030,7 @@ if (data_direction != DMA_NONE) { ret = vhost_scsi_map_iov_to_sgl(cmd, &vq->iov[data_first], data_num, - data_direction == DMA_TO_DEVICE); + data_direction == DMA_FROM_DEVICE); if (unlikely(ret)) { vq_err(vq, "Failed to map iov to sgl\n"); goto err_free; --- linux-3.11.0.orig/drivers/ntb/ntb_hw.c +++ linux-3.11.0/drivers/ntb/ntb_hw.c @@ -78,6 +78,8 @@ BWD_HW, }; +static struct dentry *debugfs_dir; + /* Translate memory window 0,1 to BAR 2,4 */ #define MW_TO_BAR(mw) (mw * 2 + 2) @@ -531,9 +533,9 @@ } if (val & SNB_PPD_DEV_TYPE) - ndev->dev_type = NTB_DEV_DSD; - else ndev->dev_type = NTB_DEV_USD; + else + ndev->dev_type = NTB_DEV_DSD; ndev->reg_ofs.pdb = ndev->reg_base + SNB_PDOORBELL_OFFSET; ndev->reg_ofs.pdb_mask = ndev->reg_base + SNB_PDBMSK_OFFSET; @@ -547,7 +549,7 @@ if (ndev->conn_type == NTB_CONN_B2B) { ndev->reg_ofs.sdb = ndev->reg_base + SNB_B2B_DOORBELL_OFFSET; ndev->reg_ofs.spad_write = ndev->reg_base + SNB_B2B_SPAD_OFFSET; - ndev->limits.max_spads = SNB_MAX_SPADS; + ndev->limits.max_spads = SNB_MAX_B2B_SPADS; } else { ndev->reg_ofs.sdb = ndev->reg_base + SNB_SDOORBELL_OFFSET; ndev->reg_ofs.spad_write = ndev->reg_base + SNB_SPAD_OFFSET; @@ -644,10 +646,16 @@ rc = -ENODEV; } + if (rc) + return rc; + + dev_info(&ndev->pdev->dev, "Device Type = %s\n", + ndev->dev_type == NTB_DEV_USD ? "USD/DSP" : "DSD/USP"); + /* Enable Bus Master and Memory Space on the secondary side */ writew(PCI_COMMAND_MEMORY | PCI_COMMAND_MASTER, ndev->reg_ofs.spci_cmd); - return rc; + return 0; } static void ntb_device_free(struct ntb_device *ndev) @@ -992,6 +1000,28 @@ kfree(ndev->db_cb); } +static void ntb_setup_debugfs(struct ntb_device *ndev) +{ + if (!debugfs_initialized()) + return; + + if (!debugfs_dir) + debugfs_dir = debugfs_create_dir(KBUILD_MODNAME, NULL); + + ndev->debugfs_dir = debugfs_create_dir(pci_name(ndev->pdev), + debugfs_dir); +} + +static void ntb_free_debugfs(struct ntb_device *ndev) +{ + debugfs_remove_recursive(ndev->debugfs_dir); + + if (debugfs_dir && simple_empty(debugfs_dir)) { + debugfs_remove_recursive(debugfs_dir); + debugfs_dir = NULL; + } +} + static int ntb_pci_probe(struct pci_dev *pdev, const struct pci_device_id *id) { struct ntb_device *ndev; @@ -1004,6 +1034,7 @@ ndev->pdev = pdev; ndev->link_status = NTB_LINK_DOWN; pci_set_drvdata(pdev, ndev); + ntb_setup_debugfs(ndev); rc = pci_enable_device(pdev); if (rc) @@ -1100,6 +1131,7 @@ err1: pci_disable_device(pdev); err: + ntb_free_debugfs(ndev); kfree(ndev); dev_err(&pdev->dev, "Error loading %s module\n", KBUILD_MODNAME); @@ -1129,6 +1161,7 @@ iounmap(ndev->reg_base); pci_release_selected_regions(pdev, NTB_BAR_MASK); pci_disable_device(pdev); + ntb_free_debugfs(ndev); kfree(ndev); } --- linux-3.11.0.orig/drivers/ntb/ntb_transport.c +++ linux-3.11.0/drivers/ntb/ntb_transport.c @@ -157,7 +157,6 @@ bool transport_link; struct delayed_work link_work; struct work_struct link_cleanup; - struct dentry *debugfs_dir; }; enum { @@ -824,12 +823,12 @@ qp->tx_max_frame = min(transport_mtu, tx_size / 2); qp->tx_max_entry = tx_size / qp->tx_max_frame; - if (nt->debugfs_dir) { + if (ntb_query_debugfs(nt->ndev)) { char debugfs_name[4]; snprintf(debugfs_name, 4, "qp%d", qp_num); qp->debugfs_dir = debugfs_create_dir(debugfs_name, - nt->debugfs_dir); + ntb_query_debugfs(nt->ndev)); qp->debugfs_stats = debugfs_create_file("stats", S_IRUSR, qp->debugfs_dir, qp, @@ -857,11 +856,6 @@ if (!nt) return -ENOMEM; - if (debugfs_initialized()) - nt->debugfs_dir = debugfs_create_dir(KBUILD_MODNAME, NULL); - else - nt->debugfs_dir = NULL; - nt->ndev = ntb_register_transport(pdev, nt); if (!nt->ndev) { rc = -EIO; @@ -907,7 +901,6 @@ err1: ntb_unregister_transport(nt->ndev); err: - debugfs_remove_recursive(nt->debugfs_dir); kfree(nt); return rc; } @@ -921,16 +914,16 @@ nt->transport_link = NTB_LINK_DOWN; /* verify that all the qp's are freed */ - for (i = 0; i < nt->max_qps; i++) + for (i = 0; i < nt->max_qps; i++) { if (!test_bit(i, &nt->qp_bitmap)) ntb_transport_free_queue(&nt->qps[i]); + debugfs_remove_recursive(nt->qps[i].debugfs_dir); + } ntb_bus_remove(nt); cancel_delayed_work_sync(&nt->link_work); - debugfs_remove_recursive(nt->debugfs_dir); - ntb_unregister_event_callback(nt->ndev); pdev = ntb_query_pdev(nt->ndev); --- linux-3.11.0.orig/drivers/ntb/ntb_regs.h +++ linux-3.11.0/drivers/ntb/ntb_regs.h @@ -53,8 +53,8 @@ #define NTB_LINK_WIDTH_MASK 0x03f0 #define SNB_MSIX_CNT 4 -#define SNB_MAX_SPADS 16 -#define SNB_MAX_COMPAT_SPADS 8 +#define SNB_MAX_B2B_SPADS 16 +#define SNB_MAX_COMPAT_SPADS 16 /* Reserve the uppermost bit for link interrupt */ #define SNB_MAX_DB_BITS 15 #define SNB_DB_BITS_PER_VEC 5 --- linux-3.11.0.orig/drivers/ntb/ntb_hw.h +++ linux-3.11.0/drivers/ntb/ntb_hw.h @@ -127,6 +127,8 @@ unsigned char link_status; struct delayed_work hb_timer; unsigned long last_ts; + + struct dentry *debugfs_dir; }; /** @@ -155,6 +157,20 @@ return ndev->pdev; } +/** + * ntb_query_debugfs() - return the debugfs pointer + * @ndev: pointer to ntb_device instance + * + * Given the ntb pointer, return the debugfs directory pointer for the NTB + * hardware device + * + * RETURNS: a pointer to the debugfs directory + */ +static inline struct dentry *ntb_query_debugfs(struct ntb_device *ndev) +{ + return ndev->debugfs_dir; +} + struct ntb_device *ntb_register_transport(struct pci_dev *pdev, void *transport); void ntb_unregister_transport(struct ntb_device *ndev); --- linux-3.11.0.orig/drivers/idle/intel_idle.c +++ linux-3.11.0/drivers/idle/intel_idle.c @@ -359,7 +359,7 @@ if (!(lapic_timer_reliable_states & (1 << (cstate)))) clockevents_notify(CLOCK_EVT_NOTIFY_BROADCAST_ENTER, &cpu); - if (!need_resched()) { + if (!current_set_polling_and_test()) { __monitor((void *)¤t_thread_info()->flags, 0, 0); smp_mb(); --- linux-3.11.0.orig/drivers/target/target_core_spc.c +++ linux-3.11.0/drivers/target/target_core_spc.c @@ -97,9 +97,12 @@ buf[7] = 0x2; /* CmdQue=1 */ - snprintf(&buf[8], 8, "LIO-ORG"); - snprintf(&buf[16], 16, "%s", dev->t10_wwn.model); - snprintf(&buf[32], 4, "%s", dev->t10_wwn.revision); + memcpy(&buf[8], "LIO-ORG ", 8); + memset(&buf[16], 0x20, 16); + memcpy(&buf[16], dev->t10_wwn.model, + min_t(size_t, strlen(dev->t10_wwn.model), 16)); + memcpy(&buf[32], dev->t10_wwn.revision, + min_t(size_t, strlen(dev->t10_wwn.revision), 4)); buf[4] = 31; /* Set additional length to 31 */ return 0; --- linux-3.11.0.orig/drivers/target/target_core_pscsi.c +++ linux-3.11.0/drivers/target/target_core_pscsi.c @@ -134,10 +134,10 @@ * pSCSI Host ID and enable for phba mode */ sh = scsi_host_lookup(phv->phv_host_id); - if (IS_ERR(sh)) { + if (!sh) { pr_err("pSCSI: Unable to locate SCSI Host for" " phv_host_id: %d\n", phv->phv_host_id); - return PTR_ERR(sh); + return -EINVAL; } phv->phv_lld_host = sh; @@ -515,10 +515,10 @@ sh = phv->phv_lld_host; } else { sh = scsi_host_lookup(pdv->pdv_host_id); - if (IS_ERR(sh)) { + if (!sh) { pr_err("pSCSI: Unable to locate" " pdv_host_id: %d\n", pdv->pdv_host_id); - return PTR_ERR(sh); + return -EINVAL; } } } else { --- linux-3.11.0.orig/drivers/target/target_core_transport.c +++ linux-3.11.0/drivers/target/target_core_transport.c @@ -2134,6 +2134,7 @@ int transport_generic_free_cmd(struct se_cmd *cmd, int wait_for_tasks) { + unsigned long flags; int ret = 0; if (!(cmd->se_cmd_flags & SCF_SE_LUN_CMD)) { @@ -2144,6 +2145,16 @@ } else { if (wait_for_tasks) transport_wait_for_tasks(cmd); + /* + * Handle WRITE failure case where transport_generic_new_cmd() + * has already added se_cmd to state_list, but fabric has + * failed command before I/O submission. + */ + if (cmd->state_active) { + spin_lock_irqsave(&cmd->t_state_lock, flags); + target_remove_from_state_list(cmd); + spin_unlock_irqrestore(&cmd->t_state_lock, flags); + } if (cmd->se_lun) transport_lun_remove_cmd(cmd); --- linux-3.11.0.orig/drivers/target/target_core_alua.c +++ linux-3.11.0/drivers/target/target_core_alua.c @@ -730,7 +730,7 @@ if (ret < 0) pr_err("Error writing ALUA metadata file: %s\n", path); fput(file); - return ret ? -EIO : 0; + return (ret < 0) ? -EIO : 0; } /* --- linux-3.11.0.orig/drivers/target/target_core_pr.c +++ linux-3.11.0/drivers/target/target_core_pr.c @@ -1949,7 +1949,7 @@ pr_debug("Error writing APTPL metadata file: %s\n", path); fput(file); - return ret ? -EIO : 0; + return (ret < 0) ? -EIO : 0; } /* --- linux-3.11.0.orig/drivers/target/iscsi/iscsi_target_util.c +++ linux-3.11.0/drivers/target/iscsi/iscsi_target_util.c @@ -735,7 +735,7 @@ * Fallthrough */ case ISCSI_OP_SCSI_TMFUNC: - rc = transport_generic_free_cmd(&cmd->se_cmd, 1); + rc = transport_generic_free_cmd(&cmd->se_cmd, shutdown); if (!rc && shutdown && se_cmd && se_cmd->se_sess) { __iscsit_free_cmd(cmd, true, shutdown); target_put_sess_cmd(se_cmd->se_sess, se_cmd); @@ -751,7 +751,7 @@ se_cmd = &cmd->se_cmd; __iscsit_free_cmd(cmd, true, shutdown); - rc = transport_generic_free_cmd(&cmd->se_cmd, 1); + rc = transport_generic_free_cmd(&cmd->se_cmd, shutdown); if (!rc && shutdown && se_cmd->se_sess) { __iscsit_free_cmd(cmd, true, shutdown); target_put_sess_cmd(se_cmd->se_sess, se_cmd); --- linux-3.11.0.orig/drivers/target/iscsi/iscsi_target.c +++ linux-3.11.0/drivers/target/iscsi/iscsi_target.c @@ -1086,7 +1086,6 @@ if (cmd->reject_reason) return 0; - target_put_sess_cmd(conn->sess->se_sess, &cmd->se_cmd); return 1; } /* @@ -1124,14 +1123,10 @@ */ cmdsn_ret = iscsit_sequence_cmd(cmd->conn, cmd, (unsigned char *)hdr, hdr->cmdsn); - if (cmdsn_ret == CMDSN_ERROR_CANNOT_RECOVER) { + if (cmdsn_ret == CMDSN_ERROR_CANNOT_RECOVER) return -1; - } else if (cmdsn_ret == CMDSN_LOWER_THAN_EXP) { - target_put_sess_cmd(conn->sess->se_sess, &cmd->se_cmd); - return 0; - } - if (cmd->sense_reason) { + if (cmd->sense_reason || cmdsn_ret == CMDSN_LOWER_THAN_EXP) { int rc; rc = iscsit_dump_data_payload(cmd->conn, @@ -1527,6 +1522,10 @@ if (hdr->itt == RESERVED_ITT && !(hdr->opcode & ISCSI_OP_IMMEDIATE)) { pr_err("NOPOUT ITT is reserved, but Immediate Bit is" " not set, protocol error.\n"); + if (!cmd) + return iscsit_add_reject(conn, ISCSI_REASON_PROTOCOL_ERROR, + (unsigned char *)hdr); + return iscsit_reject_cmd(cmd, ISCSI_REASON_PROTOCOL_ERROR, (unsigned char *)hdr); } @@ -1536,6 +1535,10 @@ " greater than MaxXmitDataSegmentLength: %u, protocol" " error.\n", payload_length, conn->conn_ops->MaxXmitDataSegmentLength); + if (!cmd) + return iscsit_add_reject(conn, ISCSI_REASON_PROTOCOL_ERROR, + (unsigned char *)hdr); + return iscsit_reject_cmd(cmd, ISCSI_REASON_PROTOCOL_ERROR, (unsigned char *)hdr); } --- linux-3.11.0.orig/drivers/target/iscsi/iscsi_target_login.c +++ linux-3.11.0/drivers/target/iscsi/iscsi_target_login.c @@ -1163,12 +1163,11 @@ if (np->np_thread_state == ISCSI_NP_THREAD_RESET) { spin_unlock_bh(&np->np_thread_lock); complete(&np->np_restart_comp); - if (ret == -ENODEV) { - iscsit_put_transport(conn->conn_transport); - kfree(conn); - conn = NULL; + iscsit_put_transport(conn->conn_transport); + kfree(conn); + conn = NULL; + if (ret == -ENODEV) goto out; - } /* Get another socket */ return 1; } --- linux-3.11.0.orig/drivers/gpu/drm/drm_stub.c +++ linux-3.11.0/drivers/gpu/drm/drm_stub.c @@ -349,7 +349,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, drm_proc_root); --- linux-3.11.0.orig/drivers/gpu/drm/drm_crtc.c +++ linux-3.11.0/drivers/gpu/drm/drm_crtc.c @@ -2604,10 +2604,22 @@ r->depth = fb->depth; r->bpp = fb->bits_per_pixel; r->pitch = fb->pitches[0]; - if (fb->funcs->create_handle) - ret = fb->funcs->create_handle(fb, file_priv, &r->handle); - else + if (fb->funcs->create_handle) { + if (file_priv->is_master || capable(CAP_SYS_ADMIN)) { + ret = fb->funcs->create_handle(fb, file_priv, + &r->handle); + } else { + /* GET_FB() is an unprivileged ioctl so we must not + * return a buffer-handle to non-master processes! For + * backwards-compatibility reasons, we cannot make + * GET_FB() privileged, so just return an invalid handle + * for non-masters. */ + r->handle = 0; + ret = 0; + } + } else { ret = -ENODEV; + } drm_framebuffer_unreference(fb); --- linux-3.11.0.orig/drivers/gpu/drm/drm_edid.c +++ linux-3.11.0/drivers/gpu/drm/drm_edid.c @@ -125,6 +125,9 @@ /* ViewSonic VA2026w */ { "VSC", 5020, EDID_QUIRK_FORCE_REDUCED_BLANKING }, + + /* Medion MD 30217 PG */ + { "MED", 0x7b8, EDID_QUIRK_PREFER_LARGE_75 }, }; /* --- linux-3.11.0.orig/drivers/gpu/drm/drm_drv.c +++ linux-3.11.0/drivers/gpu/drm/drm_drv.c @@ -407,9 +407,16 @@ cmd = ioctl->cmd_drv; } else if ((nr >= DRM_COMMAND_END) || (nr < DRM_COMMAND_BASE)) { + u32 drv_size; + ioctl = &drm_ioctls[nr]; - cmd = ioctl->cmd; + + drv_size = _IOC_SIZE(ioctl->cmd); usize = asize = _IOC_SIZE(cmd); + if (drv_size > asize) + asize = drv_size; + + cmd = ioctl->cmd; } else goto err_i1; --- linux-3.11.0.orig/drivers/gpu/drm/drm_pci.c +++ linux-3.11.0/drivers/gpu/drm/drm_pci.c @@ -367,6 +367,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-3.11.0.orig/drivers/gpu/drm/drm_platform.c +++ linux-3.11.0/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-3.11.0.orig/drivers/gpu/drm/drm_fops.c +++ linux-3.11.0/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; @@ -194,7 +195,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-3.11.0.orig/drivers/gpu/drm/nouveau/core/subdev/bios/init.c +++ linux-3.11.0/drivers/gpu/drm/nouveau/core/subdev/bios/init.c @@ -579,8 +579,22 @@ init_reserved(struct nvbios_init *init) { u8 opcode = nv_ro08(init->bios, init->offset); - trace("RESERVED\t0x%02x\n", opcode); - init->offset += 1; + u8 length, i; + + switch (opcode) { + case 0xaa: + length = 4; + break; + default: + length = 1; + break; + } + + trace("RESERVED 0x%02x\t", opcode); + for (i = 1; i < length; i++) + cont(" 0x%02x", nv_ro08(init->bios, init->offset + i)); + cont("\n"); + init->offset += length; } /** @@ -2135,6 +2149,7 @@ [0x99] = { init_zm_auxch }, [0x9a] = { init_i2c_long_if }, [0xa9] = { init_gpio_ne }, + [0xaa] = { init_reserved }, }; #define init_opcode_nr (sizeof(init_opcode) / sizeof(init_opcode[0])) --- linux-3.11.0.orig/drivers/gpu/drm/nouveau/core/engine/disp/dacnv50.c +++ linux-3.11.0/drivers/gpu/drm/nouveau/core/engine/disp/dacnv50.c @@ -49,18 +49,23 @@ nv50_dac_sense(struct nv50_disp_priv *priv, int or, u32 loadval) { const u32 doff = (or * 0x800); - int load = -EINVAL; + nv_mask(priv, 0x61a004 + doff, 0x807f0000, 0x80150000); nv_wait(priv, 0x61a004 + doff, 0x80000000, 0x00000000); + nv_wr32(priv, 0x61a00c + doff, 0x00100000 | loadval); mdelay(9); udelay(500); - nv_wr32(priv, 0x61a00c + doff, 0x80000000); - load = (nv_rd32(priv, 0x61a00c + doff) & 0x38000000) >> 27; - nv_wr32(priv, 0x61a00c + doff, 0x00000000); + loadval = nv_mask(priv, 0x61a00c + doff, 0xffffffff, 0x00000000); + nv_mask(priv, 0x61a004 + doff, 0x807f0000, 0x80550000); nv_wait(priv, 0x61a004 + doff, 0x80000000, 0x00000000); - return load; + + nv_debug(priv, "DAC%d sense: 0x%08x\n", or, loadval); + if (!(loadval & 0x80000000)) + return -ETIMEDOUT; + + return (loadval & 0x38000000) >> 27; } int --- linux-3.11.0.orig/drivers/gpu/drm/nouveau/core/engine/graph/ctxnvd9.c +++ linux-3.11.0/drivers/gpu/drm/nouveau/core/engine/graph/ctxnvd9.c @@ -466,6 +466,7 @@ nvc0_grctx_init_unk78xx, nvc0_grctx_init_unk80xx, nvd9_grctx_init_rop, + NULL }; struct nvc0_graph_init * --- linux-3.11.0.orig/drivers/gpu/drm/nouveau/core/engine/graph/ctxnvc1.c +++ linux-3.11.0/drivers/gpu/drm/nouveau/core/engine/graph/ctxnvc1.c @@ -587,6 +587,7 @@ { 0x405870, 4, 0x04, 0x00000001 }, { 0x405a00, 2, 0x04, 0x00000000 }, { 0x405a18, 1, 0x04, 0x00000000 }, + {} }; static struct nvc0_graph_init @@ -598,6 +599,7 @@ { 0x408904, 1, 0x04, 0x62000001 }, { 0x408908, 1, 0x04, 0x00c80929 }, { 0x408980, 1, 0x04, 0x0000011d }, + {} }; static struct nvc0_graph_init @@ -671,6 +673,7 @@ { 0x419000, 1, 0x04, 0x00000780 }, { 0x419004, 2, 0x04, 0x00000000 }, { 0x419014, 1, 0x04, 0x00000004 }, + {} }; static struct nvc0_graph_init @@ -717,6 +720,7 @@ { 0x419e98, 1, 0x04, 0x00000000 }, { 0x419ee0, 1, 0x04, 0x00011110 }, { 0x419f30, 11, 0x04, 0x00000000 }, + {} }; void --- linux-3.11.0.orig/drivers/gpu/drm/nouveau/core/engine/graph/ctxnvd7.c +++ linux-3.11.0/drivers/gpu/drm/nouveau/core/engine/graph/ctxnvd7.c @@ -258,6 +258,7 @@ nvc0_grctx_init_unk78xx, nvc0_grctx_init_unk80xx, nvd9_grctx_init_rop, + NULL }; struct nvc0_graph_init * --- linux-3.11.0.orig/drivers/gpu/drm/i915/intel_opregion.c +++ linux-3.11.0/drivers/gpu/drm/i915/intel_opregion.c @@ -173,7 +173,7 @@ return ASLE_BACKLIGHT_FAILED; intel_panel_set_backlight(dev, bclp, 255); - iowrite32((bclp*0x64)/0xff | ASLE_CBLV_VALID, &asle->cblv); + iowrite32(DIV_ROUND_UP(bclp * 100, 255) | ASLE_CBLV_VALID, &asle->cblv); return 0; } --- linux-3.11.0.orig/drivers/gpu/drm/i915/i915_irq.c +++ linux-3.11.0/drivers/gpu/drm/i915/i915_irq.c @@ -910,8 +910,13 @@ dev_priv->display.hpd_irq_setup(dev); spin_unlock(&dev_priv->irq_lock); - queue_work(dev_priv->wq, - &dev_priv->hotplug_work); + /* + * Our hotplug handler can grab modeset locks (by calling down into the + * fb helpers). Hence it must not be run on our own dev-priv->wq work + * queue for otherwise the flush_work in the pageflip code will + * deadlock. + */ + schedule_work(&dev_priv->hotplug_work); } static void gmbus_irq_handler(struct drm_device *dev) @@ -1402,6 +1407,34 @@ return ret; } +static void i915_error_wake_up(struct drm_i915_private *dev_priv, + bool reset_completed) +{ + struct intel_ring_buffer *ring; + int i; + + /* + * Notify all waiters for GPU completion events that reset state has + * been changed, and that they need to restart their wait after + * checking for potential errors (and bail out to drop locks if there is + * a gpu reset pending so that i915_error_work_func can acquire them). + */ + + /* Wake up __wait_seqno, potentially holding dev->struct_mutex. */ + for_each_ring(ring, dev_priv, i) + wake_up_all(&ring->irq_queue); + + /* Wake up intel_crtc_wait_for_pending_flips, holding crtc->mutex. */ + wake_up_all(&dev_priv->pending_flip_queue); + + /* + * Signal tasks blocked in i915_gem_wait_for_error that the pending + * reset state is cleared. + */ + if (reset_completed) + wake_up_all(&dev_priv->gpu_error.reset_queue); +} + /** * i915_error_work_func - do process context error handling work * @work: work struct @@ -1416,11 +1449,10 @@ drm_i915_private_t *dev_priv = container_of(error, drm_i915_private_t, gpu_error); struct drm_device *dev = dev_priv->dev; - struct intel_ring_buffer *ring; char *error_event[] = { "ERROR=1", NULL }; char *reset_event[] = { "RESET=1", NULL }; char *reset_done_event[] = { "ERROR=0", NULL }; - int i, ret; + int ret; kobject_uevent_env(&dev->primary->kdev.kobj, KOBJ_CHANGE, error_event); @@ -1439,8 +1471,16 @@ kobject_uevent_env(&dev->primary->kdev.kobj, KOBJ_CHANGE, reset_event); + /* + * All state reset _must_ be completed before we update the + * reset counter, for otherwise waiters might miss the reset + * pending state and not properly drop locks, resulting in + * deadlocks with the reset work. + */ ret = i915_reset(dev); + intel_display_handle_reset(dev); + if (ret == 0) { /* * After all the gem state is reset, increment the reset @@ -1461,12 +1501,11 @@ atomic_set(&error->reset_counter, I915_WEDGED); } - for_each_ring(ring, dev_priv, i) - wake_up_all(&ring->irq_queue); - - intel_display_handle_reset(dev); - - wake_up_all(&dev_priv->gpu_error.reset_queue); + /* + * Note: The wake_up also serves as a memory barrier so that + * waiters see the update value of the reset counter atomic_t. + */ + i915_error_wake_up(dev_priv, true); } } @@ -2104,8 +2143,6 @@ void i915_handle_error(struct drm_device *dev, bool wedged) { struct drm_i915_private *dev_priv = dev->dev_private; - struct intel_ring_buffer *ring; - int i; i915_capture_error_state(dev); i915_report_and_clear_eir(dev); @@ -2115,14 +2152,28 @@ &dev_priv->gpu_error.reset_counter); /* - * Wakeup waiting processes so that the reset work item - * doesn't deadlock trying to grab various locks. + * Wakeup waiting processes so that the reset work function + * i915_error_work_func doesn't deadlock trying to grab various + * locks. By bumping the reset counter first, the woken + * processes will see a reset in progress and back off, + * releasing their locks and then wait for the reset completion. + * We must do this for _all_ gpu waiters that might hold locks + * that the reset work needs to acquire. + * + * Note: The wake_up serves as the required memory barrier to + * ensure that the waiters see the updated value of the reset + * counter atomic_t. */ - for_each_ring(ring, dev_priv, i) - wake_up_all(&ring->irq_queue); + i915_error_wake_up(dev_priv, false); } - queue_work(dev_priv->wq, &dev_priv->gpu_error.work); + /* + * Our reset work can grab modeset locks (since it needs to reset the + * state of outstanding pagelips). Hence it must not be run on our own + * dev-priv->wq work queue for otherwise the flush_work in the pageflip + * code will deadlock. + */ + schedule_work(&dev_priv->gpu_error.work); } static void __always_unused i915_pageflip_stall_check(struct drm_device *dev, int pipe) --- linux-3.11.0.orig/drivers/gpu/drm/i915/i915_drv.c +++ linux-3.11.0/drivers/gpu/drm/i915/i915_drv.c @@ -132,6 +132,10 @@ module_param_named(enable_ips, i915_enable_ips, int, 0600); MODULE_PARM_DESC(enable_ips, "Enable IPS (default: true)"); +int i915_disable_pch_pwm __read_mostly = -1; +module_param_named(disable_pch_pwm, i915_disable_pch_pwm, int, 0600); +MODULE_PARM_DESC(disable_pch_pwm, "disable PCH_PWM (default: -1 (auto))"); + static struct drm_driver driver; extern int intel_agp_enabled; --- linux-3.11.0.orig/drivers/gpu/drm/i915/intel_drv.h +++ linux-3.11.0/drivers/gpu/drm/i915/intel_drv.h @@ -816,6 +816,8 @@ extern bool intel_ddi_connector_get_hw_state(struct intel_connector *intel_connector); extern void intel_ddi_fdi_disable(struct drm_crtc *crtc); +extern void intel_ddi_get_config(struct intel_encoder *encoder, + struct intel_crtc_config *pipe_config); extern void intel_display_handle_reset(struct drm_device *dev); extern bool intel_set_cpu_fifo_underrun_reporting(struct drm_device *dev, --- linux-3.11.0.orig/drivers/gpu/drm/i915/intel_tv.c +++ linux-3.11.0/drivers/gpu/drm/i915/intel_tv.c @@ -918,6 +918,14 @@ DRM_DEBUG_KMS("forcing bpc to 8 for TV\n"); pipe_config->pipe_bpp = 8*3; + /* TV has it's own notion of sync and other mode flags, so clear them. */ + pipe_config->adjusted_mode.flags = 0; + + /* + * FIXME: We don't check whether the input mode is actually what we want + * or whether userspace is doing something stupid. + */ + return true; } --- linux-3.11.0.orig/drivers/gpu/drm/i915/intel_lvds.c +++ linux-3.11.0/drivers/gpu/drm/i915/intel_lvds.c @@ -696,6 +696,22 @@ }, { .callback = intel_no_lvds_dmi_callback, + .ident = "Intel D410PT", + .matches = { + DMI_MATCH(DMI_BOARD_VENDOR, "Intel"), + DMI_MATCH(DMI_BOARD_NAME, "D410PT"), + }, + }, + { + .callback = intel_no_lvds_dmi_callback, + .ident = "Intel D425KT", + .matches = { + DMI_MATCH(DMI_BOARD_VENDOR, "Intel"), + DMI_EXACT_MATCH(DMI_BOARD_NAME, "D425KT"), + }, + }, + { + .callback = intel_no_lvds_dmi_callback, .ident = "Intel D510MO", .matches = { DMI_MATCH(DMI_BOARD_VENDOR, "Intel"), --- linux-3.11.0.orig/drivers/gpu/drm/i915/intel_ddi.c +++ linux-3.11.0/drivers/gpu/drm/i915/intel_ddi.c @@ -1261,8 +1261,8 @@ intel_dp_check_link_status(intel_dp); } -static void intel_ddi_get_config(struct intel_encoder *encoder, - struct intel_crtc_config *pipe_config) +void intel_ddi_get_config(struct intel_encoder *encoder, + struct intel_crtc_config *pipe_config) { struct drm_i915_private *dev_priv = encoder->base.dev->dev_private; struct intel_crtc *intel_crtc = to_intel_crtc(encoder->base.crtc); @@ -1280,6 +1280,23 @@ flags |= DRM_MODE_FLAG_NVSYNC; pipe_config->adjusted_mode.flags |= flags; + + switch (temp & TRANS_DDI_BPC_MASK) { + case TRANS_DDI_BPC_6: + pipe_config->pipe_bpp = 18; + break; + case TRANS_DDI_BPC_8: + pipe_config->pipe_bpp = 24; + break; + case TRANS_DDI_BPC_10: + pipe_config->pipe_bpp = 30; + break; + case TRANS_DDI_BPC_12: + pipe_config->pipe_bpp = 36; + break; + default: + break; + } } static void intel_ddi_destroy(struct drm_encoder *encoder) --- linux-3.11.0.orig/drivers/gpu/drm/i915/intel_crt.c +++ linux-3.11.0/drivers/gpu/drm/i915/intel_crt.c @@ -84,8 +84,7 @@ return true; } -static void intel_crt_get_config(struct intel_encoder *encoder, - struct intel_crtc_config *pipe_config) +static unsigned int intel_crt_get_flags(struct intel_encoder *encoder) { struct drm_i915_private *dev_priv = encoder->base.dev->dev_private; struct intel_crt *crt = intel_encoder_to_crt(encoder); @@ -103,7 +102,27 @@ else flags |= DRM_MODE_FLAG_NVSYNC; - pipe_config->adjusted_mode.flags |= flags; + return flags; +} + +static void intel_crt_get_config(struct intel_encoder *encoder, + struct intel_crtc_config *pipe_config) +{ + struct drm_device *dev = encoder->base.dev; + + pipe_config->adjusted_mode.flags |= intel_crt_get_flags(encoder); +} + +static void hsw_crt_get_config(struct intel_encoder *encoder, + struct intel_crtc_config *pipe_config) +{ + intel_ddi_get_config(encoder, pipe_config); + + pipe_config->adjusted_mode.flags &= ~(DRM_MODE_FLAG_PHSYNC | + DRM_MODE_FLAG_NHSYNC | + DRM_MODE_FLAG_PVSYNC | + DRM_MODE_FLAG_NVSYNC); + pipe_config->adjusted_mode.flags |= intel_crt_get_flags(encoder); } /* Note: The caller is required to filter out dpms modes not supported by the @@ -802,7 +821,10 @@ crt->base.compute_config = intel_crt_compute_config; crt->base.disable = intel_disable_crt; crt->base.enable = intel_enable_crt; - crt->base.get_config = intel_crt_get_config; + if (IS_HASWELL(dev)) + crt->base.get_config = hsw_crt_get_config; + else + crt->base.get_config = intel_crt_get_config; if (I915_HAS_HOTPLUG(dev)) crt->base.hpd_pin = HPD_CRT; if (HAS_DDI(dev)) --- linux-3.11.0.orig/drivers/gpu/drm/i915/intel_dp.c +++ linux-3.11.0/drivers/gpu/drm/i915/intel_dp.c @@ -276,29 +276,13 @@ return status; } -static int -intel_dp_aux_ch(struct intel_dp *intel_dp, - uint8_t *send, int send_bytes, - uint8_t *recv, int recv_size) +static uint32_t get_aux_clock_divider(struct intel_dp *intel_dp, + int index) { struct intel_digital_port *intel_dig_port = dp_to_dig_port(intel_dp); struct drm_device *dev = intel_dig_port->base.base.dev; struct drm_i915_private *dev_priv = dev->dev_private; - uint32_t ch_ctl = intel_dp->aux_ch_ctl_reg; - uint32_t ch_data = ch_ctl + 4; - int i, ret, recv_bytes; - uint32_t status; - uint32_t aux_clock_divider; - int try, precharge; - bool has_aux_irq = INTEL_INFO(dev)->gen >= 5 && !IS_VALLEYVIEW(dev); - - /* dp aux is extremely sensitive to irq latency, hence request the - * lowest possible wakeup latency and so prevent the cpu from going into - * deep sleep states. - */ - pm_qos_update_request(&dev_priv->pm_qos, 0); - intel_dp_check_edp(intel_dp); /* The clock divider is based off the hrawclk, * and would like to run at 2MHz. So, take the * hrawclk value and divide by 2 and use that @@ -307,23 +291,53 @@ * clock divider. */ if (IS_VALLEYVIEW(dev)) { - aux_clock_divider = 100; + return index ? 0 : 100; } else if (intel_dig_port->port == PORT_A) { + if (index) + return 0; if (HAS_DDI(dev)) - aux_clock_divider = DIV_ROUND_CLOSEST( - intel_ddi_get_cdclk_freq(dev_priv), 2000); + return DIV_ROUND_CLOSEST(intel_ddi_get_cdclk_freq(dev_priv), 2000); else if (IS_GEN6(dev) || IS_GEN7(dev)) - aux_clock_divider = 200; /* SNB & IVB eDP input clock at 400Mhz */ + return 200; /* SNB & IVB eDP input clock at 400Mhz */ else - aux_clock_divider = 225; /* eDP input clock at 450Mhz */ + return 225; /* eDP input clock at 450Mhz */ } else if (dev_priv->pch_id == INTEL_PCH_LPT_DEVICE_ID_TYPE) { /* Workaround for non-ULT HSW */ - aux_clock_divider = 74; + switch (index) { + case 0: return 63; + case 1: return 72; + default: return 0; + } } else if (HAS_PCH_SPLIT(dev)) { - aux_clock_divider = DIV_ROUND_UP(intel_pch_rawclk(dev), 2); + return index ? 0 : DIV_ROUND_UP(intel_pch_rawclk(dev), 2); } else { - aux_clock_divider = intel_hrawclk(dev) / 2; + return index ? 0 :intel_hrawclk(dev) / 2; } +} + +static int +intel_dp_aux_ch(struct intel_dp *intel_dp, + uint8_t *send, int send_bytes, + uint8_t *recv, int recv_size) +{ + struct intel_digital_port *intel_dig_port = dp_to_dig_port(intel_dp); + struct drm_device *dev = intel_dig_port->base.base.dev; + struct drm_i915_private *dev_priv = dev->dev_private; + uint32_t ch_ctl = intel_dp->aux_ch_ctl_reg; + uint32_t ch_data = ch_ctl + 4; + uint32_t aux_clock_divider; + int i, ret, recv_bytes; + uint32_t status; + int try, precharge, clock = 0; + bool has_aux_irq = INTEL_INFO(dev)->gen >= 5 && !IS_VALLEYVIEW(dev); + + /* dp aux is extremely sensitive to irq latency, hence request the + * lowest possible wakeup latency and so prevent the cpu from going into + * deep sleep states. + */ + pm_qos_update_request(&dev_priv->pm_qos, 0); + + intel_dp_check_edp(intel_dp); if (IS_GEN6(dev)) precharge = 3; @@ -345,37 +359,41 @@ goto out; } - /* Must try at least 3 times according to DP spec */ - for (try = 0; try < 5; try++) { - /* Load the send data into the aux channel data registers */ - for (i = 0; i < send_bytes; i += 4) - I915_WRITE(ch_data + i, - pack_aux(send + i, send_bytes - i)); - - /* Send the command and wait for it to complete */ - I915_WRITE(ch_ctl, - DP_AUX_CH_CTL_SEND_BUSY | - (has_aux_irq ? DP_AUX_CH_CTL_INTERRUPT : 0) | - DP_AUX_CH_CTL_TIME_OUT_400us | - (send_bytes << DP_AUX_CH_CTL_MESSAGE_SIZE_SHIFT) | - (precharge << DP_AUX_CH_CTL_PRECHARGE_2US_SHIFT) | - (aux_clock_divider << DP_AUX_CH_CTL_BIT_CLOCK_2X_SHIFT) | - DP_AUX_CH_CTL_DONE | - DP_AUX_CH_CTL_TIME_OUT_ERROR | - DP_AUX_CH_CTL_RECEIVE_ERROR); - - status = intel_dp_aux_wait_done(intel_dp, has_aux_irq); - - /* Clear done status and any errors */ - I915_WRITE(ch_ctl, - status | - DP_AUX_CH_CTL_DONE | - DP_AUX_CH_CTL_TIME_OUT_ERROR | - DP_AUX_CH_CTL_RECEIVE_ERROR); - - if (status & (DP_AUX_CH_CTL_TIME_OUT_ERROR | - DP_AUX_CH_CTL_RECEIVE_ERROR)) - continue; + while ((aux_clock_divider = get_aux_clock_divider(intel_dp, clock++))) { + /* Must try at least 3 times according to DP spec */ + for (try = 0; try < 5; try++) { + /* Load the send data into the aux channel data registers */ + for (i = 0; i < send_bytes; i += 4) + I915_WRITE(ch_data + i, + pack_aux(send + i, send_bytes - i)); + + /* Send the command and wait for it to complete */ + I915_WRITE(ch_ctl, + DP_AUX_CH_CTL_SEND_BUSY | + (has_aux_irq ? DP_AUX_CH_CTL_INTERRUPT : 0) | + DP_AUX_CH_CTL_TIME_OUT_400us | + (send_bytes << DP_AUX_CH_CTL_MESSAGE_SIZE_SHIFT) | + (precharge << DP_AUX_CH_CTL_PRECHARGE_2US_SHIFT) | + (aux_clock_divider << DP_AUX_CH_CTL_BIT_CLOCK_2X_SHIFT) | + DP_AUX_CH_CTL_DONE | + DP_AUX_CH_CTL_TIME_OUT_ERROR | + DP_AUX_CH_CTL_RECEIVE_ERROR); + + status = intel_dp_aux_wait_done(intel_dp, has_aux_irq); + + /* Clear done status and any errors */ + I915_WRITE(ch_ctl, + status | + DP_AUX_CH_CTL_DONE | + DP_AUX_CH_CTL_TIME_OUT_ERROR | + DP_AUX_CH_CTL_RECEIVE_ERROR); + + if (status & (DP_AUX_CH_CTL_TIME_OUT_ERROR | + DP_AUX_CH_CTL_RECEIVE_ERROR)) + continue; + if (status & DP_AUX_CH_CTL_DONE) + break; + } if (status & DP_AUX_CH_CTL_DONE) break; } @@ -567,7 +585,18 @@ DRM_DEBUG_KMS("aux_ch native nack\n"); return -EREMOTEIO; case AUX_NATIVE_REPLY_DEFER: - udelay(100); + /* + * For now, just give more slack to branch devices. We + * could check the DPCD for I2C bit rate capabilities, + * and if available, adjust the interval. We could also + * be more careful with DP-to-Legacy adapters where a + * long legacy cable may force very low I2C bit rates. + */ + if (intel_dp->dpcd[DP_DOWNSTREAMPORT_PRESENT] & + DP_DWN_STRM_PORT_PRESENT) + usleep_range(500, 600); + else + usleep_range(300, 400); continue; default: DRM_ERROR("aux_ch invalid native reply 0x%02x\n", @@ -1360,6 +1389,26 @@ } pipe_config->adjusted_mode.flags |= flags; + + if (is_edp(intel_dp) && dev_priv->vbt.edp_bpp && + pipe_config->pipe_bpp > dev_priv->vbt.edp_bpp) { + /* + * This is a big fat ugly hack. + * + * Some machines in UEFI boot mode provide us a VBT that has 18 + * bpp and 1.62 GHz link bandwidth for eDP, which for reasons + * unknown we fail to light up. Yet the same BIOS boots up with + * 24 bpp and 2.7 GHz link. Use the same bpp as the BIOS uses as + * max, not what it tells us to use. + * + * Note: This will still be broken if the eDP panel is not lit + * up by the BIOS, and thus we can't get the mode at module + * load. + */ + DRM_DEBUG_KMS("pipe has %d bpp for eDP panel, overriding BIOS-provided max %d bpp\n", + pipe_config->pipe_bpp, dev_priv->vbt.edp_bpp); + dev_priv->vbt.edp_bpp = pipe_config->pipe_bpp; + } } static void intel_disable_dp(struct intel_encoder *encoder) --- linux-3.11.0.orig/drivers/gpu/drm/i915/intel_display.c +++ linux-3.11.0/drivers/gpu/drm/i915/intel_display.c @@ -2251,9 +2251,10 @@ FDI_FE_ERRC_ENABLE); } -static bool pipe_has_enabled_pch(struct intel_crtc *intel_crtc) +static bool pipe_has_enabled_pch(struct intel_crtc *crtc) { - return intel_crtc->base.enabled && intel_crtc->config.has_pch_encoder; + return crtc->base.enabled && crtc->active && + crtc->config.has_pch_encoder; } static void ivb_modeset_global_resources(struct drm_device *dev) @@ -2901,6 +2902,48 @@ I915_READ(VSYNCSHIFT(cpu_transcoder))); } +static void cpt_enable_fdi_bc_bifurcation(struct drm_device *dev) +{ + struct drm_i915_private *dev_priv = dev->dev_private; + uint32_t temp; + + temp = I915_READ(SOUTH_CHICKEN1); + if (temp & FDI_BC_BIFURCATION_SELECT) + return; + + WARN_ON(I915_READ(FDI_RX_CTL(PIPE_B)) & FDI_RX_ENABLE); + WARN_ON(I915_READ(FDI_RX_CTL(PIPE_C)) & FDI_RX_ENABLE); + + temp |= FDI_BC_BIFURCATION_SELECT; + DRM_DEBUG_KMS("enabling fdi C rx\n"); + I915_WRITE(SOUTH_CHICKEN1, temp); + POSTING_READ(SOUTH_CHICKEN1); +} + +static void ivybridge_update_fdi_bc_bifurcation(struct intel_crtc *intel_crtc) +{ + struct drm_device *dev = intel_crtc->base.dev; + struct drm_i915_private *dev_priv = dev->dev_private; + + switch (intel_crtc->pipe) { + case PIPE_A: + break; + case PIPE_B: + if (intel_crtc->config.fdi_lanes > 2) + WARN_ON(I915_READ(SOUTH_CHICKEN1) & FDI_BC_BIFURCATION_SELECT); + else + cpt_enable_fdi_bc_bifurcation(dev); + + break; + case PIPE_C: + cpt_enable_fdi_bc_bifurcation(dev); + + break; + default: + BUG(); + } +} + /* * Enable PCH resources required for PCH ports: * - PCH PLLs @@ -2919,6 +2962,9 @@ assert_pch_transcoder_disabled(dev_priv, pipe); + if (IS_IVYBRIDGE(dev)) + ivybridge_update_fdi_bc_bifurcation(intel_crtc); + /* Write the TU size bits before fdi link training, so that error * detection works. */ I915_WRITE(FDI_RX_TUSIZE1(pipe), @@ -3890,8 +3936,6 @@ * consider. */ void intel_connector_dpms(struct drm_connector *connector, int mode) { - struct intel_encoder *encoder = intel_attached_encoder(connector); - /* All the simple cases only support two dpms states. */ if (mode != DRM_MODE_DPMS_ON) mode = DRM_MODE_DPMS_OFF; @@ -3902,10 +3946,8 @@ connector->dpms = mode; /* Only need to change hw state when actually enabled */ - if (encoder->base.crtc) - intel_encoder_dpms(encoder, mode); - else - WARN_ON(encoder->connectors_active != false); + if (connector->encoder) + intel_encoder_dpms(to_intel_encoder(connector->encoder), mode); intel_modeset_check_state(connector->dev); } @@ -4735,6 +4777,10 @@ pipeconf = 0; + if (dev_priv->quirks & QUIRK_PIPEA_FORCE && + I915_READ(PIPECONF(intel_crtc->pipe)) & PIPECONF_ENABLE) + pipeconf |= PIPECONF_ENABLE; + if (intel_crtc->pipe == 0 && INTEL_INFO(dev)->gen < 4) { /* Enable pixel doubling when the dot clock is > 90% of the (display) * core speed. @@ -4837,9 +4883,6 @@ return -EINVAL; } - /* Ensure that the cursor is valid for the new mode before changing... */ - intel_crtc_update_cursor(crtc, true); - if (is_lvds && dev_priv->lvds_downclock_avail) { /* * Ensure we match the reduced clock's P to the target clock. @@ -4946,6 +4989,22 @@ if (!(tmp & PIPECONF_ENABLE)) return false; + if (IS_G4X(dev) || IS_VALLEYVIEW(dev)) { + switch (tmp & PIPECONF_BPC_MASK) { + case PIPECONF_6BPC: + pipe_config->pipe_bpp = 18; + break; + case PIPECONF_8BPC: + pipe_config->pipe_bpp = 24; + break; + case PIPECONF_10BPC: + pipe_config->pipe_bpp = 30; + break; + default: + break; + } + } + intel_get_pipe_timings(crtc, pipe_config); i9xx_get_pfit_config(crtc, pipe_config); @@ -5499,48 +5558,6 @@ return true; } -static void cpt_enable_fdi_bc_bifurcation(struct drm_device *dev) -{ - struct drm_i915_private *dev_priv = dev->dev_private; - uint32_t temp; - - temp = I915_READ(SOUTH_CHICKEN1); - if (temp & FDI_BC_BIFURCATION_SELECT) - return; - - WARN_ON(I915_READ(FDI_RX_CTL(PIPE_B)) & FDI_RX_ENABLE); - WARN_ON(I915_READ(FDI_RX_CTL(PIPE_C)) & FDI_RX_ENABLE); - - temp |= FDI_BC_BIFURCATION_SELECT; - DRM_DEBUG_KMS("enabling fdi C rx\n"); - I915_WRITE(SOUTH_CHICKEN1, temp); - POSTING_READ(SOUTH_CHICKEN1); -} - -static void ivybridge_update_fdi_bc_bifurcation(struct intel_crtc *intel_crtc) -{ - struct drm_device *dev = intel_crtc->base.dev; - struct drm_i915_private *dev_priv = dev->dev_private; - - switch (intel_crtc->pipe) { - case PIPE_A: - break; - case PIPE_B: - if (intel_crtc->config.fdi_lanes > 2) - WARN_ON(I915_READ(SOUTH_CHICKEN1) & FDI_BC_BIFURCATION_SELECT); - else - cpt_enable_fdi_bc_bifurcation(dev); - - break; - case PIPE_C: - cpt_enable_fdi_bc_bifurcation(dev); - - break; - default: - BUG(); - } -} - int ironlake_get_lanes_required(int target_clock, int link_bw, int bpp) { /* @@ -5688,9 +5705,6 @@ intel_crtc->config.dpll.p2 = clock.p2; } - /* Ensure that the cursor is valid for the new mode before changing... */ - intel_crtc_update_cursor(crtc, true); - /* CPU eDP is the only output that doesn't need a PCH PLL of its own. */ if (intel_crtc->config.has_pch_encoder) { fp = i9xx_dpll_compute_fp(&intel_crtc->config.dpll); @@ -5758,9 +5772,6 @@ &intel_crtc->config.fdi_m_n); } - if (IS_IVYBRIDGE(dev)) - ivybridge_update_fdi_bc_bifurcation(intel_crtc); - ironlake_set_pipeconf(crtc); /* Set up the display plane register */ @@ -5827,6 +5838,23 @@ if (!(tmp & PIPECONF_ENABLE)) return false; + switch (tmp & PIPECONF_BPC_MASK) { + case PIPECONF_6BPC: + pipe_config->pipe_bpp = 18; + break; + case PIPECONF_8BPC: + pipe_config->pipe_bpp = 24; + break; + case PIPECONF_10BPC: + pipe_config->pipe_bpp = 30; + break; + case PIPECONF_12BPC: + pipe_config->pipe_bpp = 36; + break; + default: + break; + } + if (I915_READ(PCH_TRANSCONF(crtc->pipe)) & TRANS_ENABLE) { struct intel_shared_dpll *pll; @@ -5897,9 +5925,6 @@ if (!intel_ddi_pll_mode_set(crtc)) return -EINVAL; - /* Ensure that the cursor is valid for the new mode before changing... */ - intel_crtc_update_cursor(crtc, true); - if (intel_crtc->config.has_dp_encoder) intel_dp_set_m_n(intel_crtc); @@ -6581,7 +6606,8 @@ intel_crtc->cursor_width = width; intel_crtc->cursor_height = height; - intel_crtc_update_cursor(crtc, intel_crtc->cursor_bo != NULL); + if (intel_crtc->active) + intel_crtc_update_cursor(crtc, intel_crtc->cursor_bo != NULL); return 0; fail_unpin: @@ -6600,7 +6626,8 @@ intel_crtc->cursor_x = x; intel_crtc->cursor_y = y; - intel_crtc_update_cursor(crtc, intel_crtc->cursor_bo != NULL); + if (intel_crtc->active) + intel_crtc_update_cursor(crtc, intel_crtc->cursor_bo != NULL); return 0; } @@ -7809,6 +7836,19 @@ pipe_config->cpu_transcoder = to_intel_crtc(crtc)->pipe; pipe_config->shared_dpll = DPLL_ID_PRIVATE; + /* + * Sanitize sync polarity flags based on requested ones. If neither + * positive or negative polarity is requested, treat this as meaning + * negative polarity. + */ + if (!(pipe_config->adjusted_mode.flags & + (DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_NHSYNC))) + pipe_config->adjusted_mode.flags |= DRM_MODE_FLAG_NHSYNC; + + if (!(pipe_config->adjusted_mode.flags & + (DRM_MODE_FLAG_PVSYNC | DRM_MODE_FLAG_NVSYNC))) + pipe_config->adjusted_mode.flags |= DRM_MODE_FLAG_NVSYNC; + /* Compute a starting value for pipe_config->pipe_bpp taking the source * plane pixel format and any sink constraints into account. Returns the * source plane bpp so that dithering can be selected on mismatches @@ -8141,6 +8181,9 @@ PIPE_CONF_CHECK_X(dpll_hw_state.fp0); PIPE_CONF_CHECK_X(dpll_hw_state.fp1); + if (IS_G4X(dev) || INTEL_INFO(dev)->gen >= 5) + PIPE_CONF_CHECK_I(pipe_bpp); + #undef PIPE_CONF_CHECK_X #undef PIPE_CONF_CHECK_I #undef PIPE_CONF_CHECK_FLAGS @@ -9408,9 +9451,8 @@ */ static void quirk_no_pcm_pwm_enable(struct drm_device *dev) { - struct drm_i915_private *dev_priv = dev->dev_private; - dev_priv->quirks |= QUIRK_NO_PCH_PWM_ENABLE; - DRM_INFO("applying no-PCH_PWM_ENABLE quirk\n"); + if (i915_disable_pch_pwm < 0) + i915_disable_pch_pwm = 1; } struct intel_quirk { @@ -9508,6 +9550,12 @@ if (dmi_check_system(*intel_dmi_quirks[i].dmi_id_list) != 0) intel_dmi_quirks[i].hook(dev); } + + if (i915_disable_pch_pwm == 1) { + struct drm_i915_private *dev_priv = dev->dev_private; + dev_priv->quirks |= QUIRK_NO_PCH_PWM_ENABLE; + DRM_INFO("applying no-PCH_PWM_ENABLE quirk\n"); + } } /* Disable the VGA plane that we never use */ --- linux-3.11.0.orig/drivers/gpu/drm/i915/i915_reg.h +++ linux-3.11.0/drivers/gpu/drm/i915/i915_reg.h @@ -3791,6 +3791,9 @@ #define GEN7_SQ_CHICKEN_MBCUNIT_CONFIG 0x9030 #define GEN7_SQ_CHICKEN_MBCUNIT_SQINTMOB (1<<11) +#define HSW_SCRATCH1 0xb038 +#define HSW_SCRATCH1_L3_DATA_ATOMICS_DISABLE (1<<27) + #define HSW_FUSE_STRAP 0x42014 #define HSW_CDCLK_LIMIT (1 << 24) @@ -4624,6 +4627,9 @@ #define GEN7_ROW_CHICKEN2_GT2 0xf4f4 #define DOP_CLOCK_GATING_DISABLE (1<<0) +#define HSW_ROW_CHICKEN3 0xe49c +#define HSW_ROW_CHICKEN3_L3_GLOBAL_ATOMICS_DISABLE (1 << 6) + #define G4X_AUD_VID_DID (dev_priv->info->display_mmio_offset + 0x62020) #define INTEL_AUDIO_DEVCL 0x808629FB #define INTEL_AUDIO_DEVBLC 0x80862801 --- linux-3.11.0.orig/drivers/gpu/drm/i915/intel_pm.c +++ linux-3.11.0/drivers/gpu/drm/i915/intel_pm.c @@ -3603,8 +3603,6 @@ dev_priv->rps.rpe_delay), dev_priv->rps.rpe_delay); - INIT_DELAYED_WORK(&dev_priv->rps.vlv_work, vlv_rps_timer_work); - valleyview_set_rps(dev_priv->dev, dev_priv->rps.rpe_delay); /* requires MSI enabled */ @@ -4699,6 +4697,11 @@ I915_WRITE(GEN7_L3_CHICKEN_MODE_REGISTER, GEN7_WA_L3_CHICKEN_MODE); + /* L3 caching of data atomics doesn't work -- disable it. */ + I915_WRITE(HSW_SCRATCH1, HSW_SCRATCH1_L3_DATA_ATOMICS_DISABLE); + I915_WRITE(HSW_ROW_CHICKEN3, + _MASKED_BIT_ENABLE(HSW_ROW_CHICKEN3_L3_GLOBAL_ATOMICS_DISABLE)); + /* This is required by WaCatErrorRejectionIssue:hsw */ I915_WRITE(GEN7_SQ_CHICKEN_MBCUNIT_CONFIG, I915_READ(GEN7_SQ_CHICKEN_MBCUNIT_CONFIG) | @@ -5562,6 +5565,8 @@ INIT_DELAYED_WORK(&dev_priv->rps.delayed_resume_work, intel_gen6_powersave_work); + + INIT_DELAYED_WORK(&dev_priv->rps.vlv_work, vlv_rps_timer_work); } int sandybridge_pcode_read(struct drm_i915_private *dev_priv, u8 mbox, u32 *val) --- linux-3.11.0.orig/drivers/gpu/drm/i915/i915_drv.h +++ linux-3.11.0/drivers/gpu/drm/i915/i915_drv.h @@ -1091,6 +1091,13 @@ unsigned int fsb_freq, mem_freq, is_ddr3; + /** + * wq - Driver workqueue for GEM. + * + * NOTE: Work items scheduled here are not allowed to grab any modeset + * locks, for otherwise the flushing done in the pageflip code will + * result in deadlocks. + */ struct workqueue_struct *wq; /* Display functions */ @@ -1543,6 +1550,7 @@ extern unsigned int i915_preliminary_hw_support __read_mostly; extern int i915_disable_power_well __read_mostly; extern int i915_enable_ips __read_mostly; +extern int i915_disable_pch_pwm __read_mostly; extern int i915_suspend(struct drm_device *dev, pm_message_t state); extern int i915_resume(struct drm_device *dev); --- linux-3.11.0.orig/drivers/gpu/drm/vmwgfx/vmwgfx_drv.c +++ linux-3.11.0/drivers/gpu/drm/vmwgfx/vmwgfx_drv.c @@ -738,9 +738,17 @@ struct vmw_fpriv *vmw_fp; vmw_fp = vmw_fpriv(file_priv); - ttm_object_file_release(&vmw_fp->tfile); - if (vmw_fp->locked_master) + + if (vmw_fp->locked_master) { + struct vmw_master *vmaster = + vmw_master(vmw_fp->locked_master); + + ttm_lock_set_kill(&vmaster->lock, true, SIGTERM); + ttm_vt_unlock(&vmaster->lock); drm_master_put(&vmw_fp->locked_master); + } + + ttm_object_file_release(&vmw_fp->tfile); kfree(vmw_fp); } @@ -940,14 +948,13 @@ vmw_fp->locked_master = drm_master_get(file_priv->master); ret = ttm_vt_lock(&vmaster->lock, false, vmw_fp->tfile); - vmw_execbuf_release_pinned_bo(dev_priv); - if (unlikely((ret != 0))) { DRM_ERROR("Unable to lock TTM at VT switch.\n"); drm_master_put(&vmw_fp->locked_master); } - ttm_lock_set_kill(&vmaster->lock, true, SIGTERM); + ttm_lock_set_kill(&vmaster->lock, false, SIGTERM); + vmw_execbuf_release_pinned_bo(dev_priv); if (!dev_priv->enable_fb) { ret = ttm_bo_evict_mm(&dev_priv->bdev, TTM_PL_VRAM); --- linux-3.11.0.orig/drivers/gpu/drm/vmwgfx/vmwgfx_resource.c +++ linux-3.11.0/drivers/gpu/drm/vmwgfx/vmwgfx_resource.c @@ -970,7 +970,7 @@ if (new_backup) res->backup_offset = new_backup_offset; - if (!res->func->may_evict) + if (!res->func->may_evict || res->id == -1) return; write_lock(&dev_priv->resource_lock); --- linux-3.11.0.orig/drivers/gpu/drm/ast/ast_drv.h +++ linux-3.11.0/drivers/gpu/drm/ast/ast_drv.h @@ -177,7 +177,7 @@ static inline void ast_open_key(struct ast_private *ast) { - ast_set_index_reg_mask(ast, AST_IO_CRTC_PORT, 0xA1, 0xFF, 0x04); + ast_set_index_reg(ast, AST_IO_CRTC_PORT, 0x80, 0xA8); } #define AST_VIDMEM_SIZE_8M 0x00800000 --- linux-3.11.0.orig/drivers/gpu/drm/ttm/ttm_tt.c +++ linux-3.11.0/drivers/gpu/drm/ttm/ttm_tt.c @@ -170,7 +170,7 @@ ttm_tt_unbind(ttm); } - if (likely(ttm->pages != NULL)) { + if (ttm->state == tt_unbound) { ttm->bdev->driver->ttm_tt_unpopulate(ttm); } --- linux-3.11.0.orig/drivers/gpu/drm/radeon/trinity_smc.c +++ linux-3.11.0/drivers/gpu/drm/radeon/trinity_smc.c @@ -56,6 +56,14 @@ return 0; } +int trinity_dpm_bapm_enable(struct radeon_device *rdev, bool enable) +{ + if (enable) + return trinity_notify_message_to_smu(rdev, PPSMC_MSG_EnableBAPM); + else + return trinity_notify_message_to_smu(rdev, PPSMC_MSG_DisableBAPM); +} + int trinity_dpm_config(struct radeon_device *rdev, bool enable) { if (enable) --- linux-3.11.0.orig/drivers/gpu/drm/radeon/radeon_atombios.c +++ linux-3.11.0/drivers/gpu/drm/radeon/radeon_atombios.c @@ -711,13 +711,16 @@ (ATOM_SRC_DST_TABLE_FOR_ONE_OBJECT *) (ctx->bios + data_offset + le16_to_cpu(router_obj->asObjects[k].usSrcDstTableOffset)); + u8 *num_dst_objs = (u8 *) + ((u8 *)router_src_dst_table + 1 + + (router_src_dst_table->ucNumberOfSrc * 2)); + u16 *dst_objs = (u16 *)(num_dst_objs + 1); int enum_id; router.router_id = router_obj_id; - for (enum_id = 0; enum_id < router_src_dst_table->ucNumberOfDst; - enum_id++) { + for (enum_id = 0; enum_id < (*num_dst_objs); enum_id++) { if (le16_to_cpu(path->usConnObjectId) == - le16_to_cpu(router_src_dst_table->usDstObjectID[enum_id])) + le16_to_cpu(dst_objs[enum_id])) break; } @@ -1672,7 +1675,9 @@ kfree(edid); } } - record += sizeof(ATOM_FAKE_EDID_PATCH_RECORD); + record += fake_edid_record->ucFakeEDIDLength ? + fake_edid_record->ucFakeEDIDLength + 2 : + sizeof(ATOM_FAKE_EDID_PATCH_RECORD); break; case LCD_PANEL_RESOLUTION_RECORD_TYPE: panel_res_record = (ATOM_PANEL_RESOLUTION_PATCH_RECORD *)record; --- linux-3.11.0.orig/drivers/gpu/drm/radeon/radeon_asic.c +++ linux-3.11.0/drivers/gpu/drm/radeon/radeon_asic.c @@ -1113,6 +1113,8 @@ .wait_for_vblank = &avivo_wait_for_vblank, .set_backlight_level = &atombios_set_backlight_level, .get_backlight_level = &atombios_get_backlight_level, + .hdmi_enable = &r600_hdmi_enable, + .hdmi_setmode = &r600_hdmi_setmode, }, .copy = { .blit = &r600_copy_blit, @@ -1146,6 +1148,7 @@ .set_pcie_lanes = &r600_set_pcie_lanes, .set_clock_gating = NULL, .get_temperature = &rv6xx_get_temp, + .set_uvd_clocks = &r600_set_uvd_clocks, }, .dpm = { .init = &rv6xx_dpm_init, @@ -1257,6 +1260,7 @@ .set_pcie_lanes = NULL, .set_clock_gating = NULL, .get_temperature = &rv6xx_get_temp, + .set_uvd_clocks = &r600_set_uvd_clocks, }, .dpm = { .init = &rs780_dpm_init, --- linux-3.11.0.orig/drivers/gpu/drm/radeon/evergreend.h +++ linux-3.11.0/drivers/gpu/drm/radeon/evergreend.h @@ -1153,6 +1153,10 @@ # define LATENCY_LOW_WATERMARK(x) ((x) << 0) # define LATENCY_HIGH_WATERMARK(x) ((x) << 16) +#define PIPE0_DMIF_BUFFER_CONTROL 0x0ca0 +# define DMIF_BUFFERS_ALLOCATED(x) ((x) << 0) +# define DMIF_BUFFERS_ALLOCATED_COMPLETED (1 << 4) + #define IH_RB_CNTL 0x3e00 # define IH_RB_ENABLE (1 << 0) # define IH_IB_SIZE(x) ((x) << 1) /* log2 */ @@ -1490,7 +1494,7 @@ * 6. COMMAND [29:22] | BYTE_COUNT [20:0] */ # define PACKET3_CP_DMA_DST_SEL(x) ((x) << 20) - /* 0 - SRC_ADDR + /* 0 - DST_ADDR * 1 - GDS */ # define PACKET3_CP_DMA_ENGINE(x) ((x) << 27) @@ -1505,7 +1509,7 @@ # define PACKET3_CP_DMA_CP_SYNC (1 << 31) /* COMMAND */ # define PACKET3_CP_DMA_DIS_WC (1 << 21) -# define PACKET3_CP_DMA_CMD_SRC_SWAP(x) ((x) << 23) +# define PACKET3_CP_DMA_CMD_SRC_SWAP(x) ((x) << 22) /* 0 - none * 1 - 8 in 16 * 2 - 8 in 32 --- linux-3.11.0.orig/drivers/gpu/drm/radeon/trinity_dpm.h +++ linux-3.11.0/drivers/gpu/drm/radeon/trinity_dpm.h @@ -118,6 +118,7 @@ #define TRINITY_AT_DFLT 30 /* trinity_smc.c */ +int trinity_dpm_bapm_enable(struct radeon_device *rdev, bool enable); int trinity_dpm_config(struct radeon_device *rdev, bool enable); int trinity_uvd_dpm_config(struct radeon_device *rdev); int trinity_dpm_force_state(struct radeon_device *rdev, u32 n); --- linux-3.11.0.orig/drivers/gpu/drm/radeon/atombios_i2c.c +++ linux-3.11.0/drivers/gpu/drm/radeon/atombios_i2c.c @@ -27,6 +27,8 @@ #include "radeon.h" #include "atom.h" +extern void radeon_atom_copy_swap(u8 *dst, u8 *src, u8 num_bytes, bool to_le); + #define TARGET_HW_I2C_CLOCK 50 /* these are a limitation of ProcessI2cChannelTransaction not the hw */ @@ -77,7 +79,7 @@ } if (!(flags & HW_I2C_WRITE)) - memcpy(buf, base, num); + radeon_atom_copy_swap(buf, base, num, false); return 0; } --- linux-3.11.0.orig/drivers/gpu/drm/radeon/radeon_test.c +++ linux-3.11.0/drivers/gpu/drm/radeon/radeon_test.c @@ -36,8 +36,8 @@ struct radeon_bo *vram_obj = NULL; struct radeon_bo **gtt_obj = NULL; uint64_t gtt_addr, vram_addr; - unsigned i, n, size; - int r, ring; + unsigned n, size; + int i, r, ring; switch (flag) { case RADEON_TEST_COPY_DMA: --- linux-3.11.0.orig/drivers/gpu/drm/radeon/radeon_asic.h +++ linux-3.11.0/drivers/gpu/drm/radeon/radeon_asic.h @@ -405,6 +405,7 @@ u32 r600_get_xclk(struct radeon_device *rdev); uint64_t r600_get_gpu_clock_counter(struct radeon_device *rdev); int rv6xx_get_temp(struct radeon_device *rdev); +int r600_set_uvd_clocks(struct radeon_device *rdev, u32 vclk, u32 dclk); int r600_dpm_pre_set_power_state(struct radeon_device *rdev); void r600_dpm_post_set_power_state(struct radeon_device *rdev); /* rv6xx dpm */ --- linux-3.11.0.orig/drivers/gpu/drm/radeon/radeon_device.c +++ linux-3.11.0/drivers/gpu/drm/radeon/radeon_device.c @@ -1297,13 +1297,22 @@ return r; } if ((radeon_testing & 1)) { - radeon_test_moves(rdev); + if (rdev->accel_working) + radeon_test_moves(rdev); + else + DRM_INFO("radeon: acceleration disabled, skipping move tests\n"); } if ((radeon_testing & 2)) { - radeon_test_syncing(rdev); + if (rdev->accel_working) + radeon_test_syncing(rdev); + else + DRM_INFO("radeon: acceleration disabled, skipping sync tests\n"); } if (radeon_benchmarking) { - radeon_benchmark(rdev, radeon_benchmarking); + if (rdev->accel_working) + radeon_benchmark(rdev, radeon_benchmarking); + else + DRM_INFO("radeon: acceleration disabled, skipping benchmarks\n"); } return 0; } --- linux-3.11.0.orig/drivers/gpu/drm/radeon/rv770.c +++ linux-3.11.0/drivers/gpu/drm/radeon/rv770.c @@ -1829,6 +1829,11 @@ /* enable pcie gen2 link */ rv770_pcie_gen2_enable(rdev); + /* scratch needs to be initialized before MC */ + r = r600_vram_scratch_init(rdev); + if (r) + return r; + rv770_mc_program(rdev); if (!rdev->me_fw || !rdev->pfp_fw || !rdev->rlc_fw) { @@ -1839,10 +1844,6 @@ } } - r = r600_vram_scratch_init(rdev); - if (r) - return r; - if (rdev->flags & RADEON_IS_AGP) { rv770_agp_enable(rdev); } else { --- linux-3.11.0.orig/drivers/gpu/drm/radeon/rv770_dpm.c +++ linux-3.11.0/drivers/gpu/drm/radeon/rv770_dpm.c @@ -2147,14 +2147,18 @@ if (ATOM_PPLIB_NONCLOCKINFO_VER1 < table_rev) { rps->vclk = le32_to_cpu(non_clock_info->ulVCLK); rps->dclk = le32_to_cpu(non_clock_info->ulDCLK); - } else if (r600_is_uvd_state(rps->class, rps->class2)) { - rps->vclk = RV770_DEFAULT_VCLK_FREQ; - rps->dclk = RV770_DEFAULT_DCLK_FREQ; } else { rps->vclk = 0; rps->dclk = 0; } + if (r600_is_uvd_state(rps->class, rps->class2)) { + if ((rps->vclk == 0) || (rps->dclk == 0)) { + rps->vclk = RV770_DEFAULT_VCLK_FREQ; + rps->dclk = RV770_DEFAULT_DCLK_FREQ; + } + } + if (rps->class & ATOM_PPLIB_CLASSIFICATION_BOOT) rdev->pm.dpm.boot_ps = rps; if (rps->class & ATOM_PPLIB_CLASSIFICATION_UVDSTATE) @@ -2517,8 +2521,16 @@ bool rv770_dpm_vblank_too_short(struct radeon_device *rdev) { u32 vblank_time = r600_dpm_get_vblank_time(rdev); + u32 switch_limit = 300; + + /* quirks */ + /* ASUS K70AF */ + if ((rdev->pdev->device == 0x9553) && + (rdev->pdev->subsystem_vendor == 0x1043) && + (rdev->pdev->subsystem_device == 0x1c42)) + switch_limit = 200; - if (vblank_time < 300) + if (vblank_time < switch_limit) return true; else return false; --- linux-3.11.0.orig/drivers/gpu/drm/radeon/radeon_irq_kms.c +++ linux-3.11.0/drivers/gpu/drm/radeon/radeon_irq_kms.c @@ -275,17 +275,19 @@ dev_info(rdev->dev, "radeon: using MSI.\n"); } } + + INIT_WORK(&rdev->hotplug_work, radeon_hotplug_work_func); + INIT_WORK(&rdev->audio_work, r600_audio_update_hdmi); + INIT_WORK(&rdev->reset_work, radeon_irq_reset_work_func); + rdev->irq.installed = true; r = drm_irq_install(rdev->ddev); if (r) { rdev->irq.installed = false; + flush_work(&rdev->hotplug_work); return r; } - INIT_WORK(&rdev->hotplug_work, radeon_hotplug_work_func); - INIT_WORK(&rdev->audio_work, r600_audio_update_hdmi); - INIT_WORK(&rdev->reset_work, radeon_irq_reset_work_func); - DRM_INFO("radeon: irq initialized.\n"); return 0; } --- linux-3.11.0.orig/drivers/gpu/drm/radeon/r600d.h +++ linux-3.11.0/drivers/gpu/drm/radeon/r600d.h @@ -1487,7 +1487,7 @@ */ # define PACKET3_CP_DMA_CP_SYNC (1 << 31) /* COMMAND */ -# define PACKET3_CP_DMA_CMD_SRC_SWAP(x) ((x) << 23) +# define PACKET3_CP_DMA_CMD_SRC_SWAP(x) ((x) << 22) /* 0 - none * 1 - 8 in 16 * 2 - 8 in 32 --- linux-3.11.0.orig/drivers/gpu/drm/radeon/ni.c +++ linux-3.11.0/drivers/gpu/drm/radeon/ni.c @@ -800,6 +800,7 @@ fw_name); release_firmware(rdev->smc_fw); rdev->smc_fw = NULL; + err = 0; } else if (rdev->smc_fw->size != smc_req_size) { printk(KERN_ERR "ni_mc: Bogus length %zu in firmware \"%s\"\n", @@ -2083,6 +2084,11 @@ /* enable aspm */ evergreen_program_aspm(rdev); + /* scratch needs to be initialized before MC */ + r = r600_vram_scratch_init(rdev); + if (r) + return r; + evergreen_mc_program(rdev); if (rdev->flags & RADEON_IS_IGP) { @@ -2109,10 +2115,6 @@ } } - r = r600_vram_scratch_init(rdev); - if (r) - return r; - r = cayman_pcie_gart_enable(rdev); if (r) return r; --- linux-3.11.0.orig/drivers/gpu/drm/radeon/radeon_ring.c +++ linux-3.11.0/drivers/gpu/drm/radeon/radeon_ring.c @@ -846,9 +846,11 @@ * packet that is the root issue */ i = (ring->rptr + ring->ptr_mask + 1 - 32) & ring->ptr_mask; - for (j = 0; j <= (count + 32); j++) { - seq_printf(m, "r[%5d]=0x%08x\n", i, ring->ring[i]); - i = (i + 1) & ring->ptr_mask; + if (ring->ready) { + for (j = 0; j <= (count + 32); j++) { + seq_printf(m, "r[%5d]=0x%08x\n", i, ring->ring[i]); + i = (i + 1) & ring->ptr_mask; + } } return 0; } --- linux-3.11.0.orig/drivers/gpu/drm/radeon/cikd.h +++ linux-3.11.0/drivers/gpu/drm/radeon/cikd.h @@ -43,6 +43,10 @@ #define DMIF_ADDR_CALC 0xC00 +#define PIPE0_DMIF_BUFFER_CONTROL 0x0ca0 +# define DMIF_BUFFERS_ALLOCATED(x) ((x) << 0) +# define DMIF_BUFFERS_ALLOCATED_COMPLETED (1 << 4) + #define SRBM_GFX_CNTL 0xE44 #define PIPEID(x) ((x) << 0) #define MEID(x) ((x) << 2) --- linux-3.11.0.orig/drivers/gpu/drm/radeon/sid.h +++ linux-3.11.0/drivers/gpu/drm/radeon/sid.h @@ -282,6 +282,10 @@ #define DMIF_ADDR_CALC 0xC00 +#define PIPE0_DMIF_BUFFER_CONTROL 0x0ca0 +# define DMIF_BUFFERS_ALLOCATED(x) ((x) << 0) +# define DMIF_BUFFERS_ALLOCATED_COMPLETED (1 << 4) + #define SRBM_STATUS 0xE50 #define GRBM_RQ_PENDING (1 << 5) #define VMC_BUSY (1 << 8) @@ -1486,7 +1490,7 @@ * 6. COMMAND [30:21] | BYTE_COUNT [20:0] */ # define PACKET3_CP_DMA_DST_SEL(x) ((x) << 20) - /* 0 - SRC_ADDR + /* 0 - DST_ADDR * 1 - GDS */ # define PACKET3_CP_DMA_ENGINE(x) ((x) << 27) @@ -1501,7 +1505,7 @@ # define PACKET3_CP_DMA_CP_SYNC (1 << 31) /* COMMAND */ # define PACKET3_CP_DMA_DIS_WC (1 << 21) -# define PACKET3_CP_DMA_CMD_SRC_SWAP(x) ((x) << 23) +# define PACKET3_CP_DMA_CMD_SRC_SWAP(x) ((x) << 22) /* 0 - none * 1 - 8 in 16 * 2 - 8 in 32 --- linux-3.11.0.orig/drivers/gpu/drm/radeon/atombios_dp.c +++ linux-3.11.0/drivers/gpu/drm/radeon/atombios_dp.c @@ -50,7 +50,7 @@ * or from atom. Note that atom operates on * dw units. */ -static void radeon_copy_swap(u8 *dst, u8 *src, u8 num_bytes, bool to_le) +void radeon_atom_copy_swap(u8 *dst, u8 *src, u8 num_bytes, bool to_le) { #ifdef __BIG_ENDIAN u8 src_tmp[20], dst_tmp[20]; /* used for byteswapping */ @@ -100,7 +100,7 @@ base = (unsigned char *)(rdev->mode_info.atom_context->scratch + 1); - radeon_copy_swap(base, send, send_bytes, true); + radeon_atom_copy_swap(base, send, send_bytes, true); args.v1.lpAuxRequest = cpu_to_le16((u16)(0 + 4)); args.v1.lpDataOut = cpu_to_le16((u16)(16 + 4)); @@ -137,7 +137,7 @@ recv_bytes = recv_size; if (recv && recv_size) - radeon_copy_swap(recv, base + 16, recv_bytes, false); + radeon_atom_copy_swap(recv, base + 16, recv_bytes, false); return recv_bytes; } --- linux-3.11.0.orig/drivers/gpu/drm/radeon/trinity_dpm.c +++ linux-3.11.0/drivers/gpu/drm/radeon/trinity_dpm.c @@ -1091,6 +1091,7 @@ trinity_program_sclk_dpm(rdev); trinity_start_dpm(rdev); trinity_wait_for_dpm_enabled(rdev); + trinity_dpm_bapm_enable(rdev, false); trinity_release_mutex(rdev); if (rdev->irq.installed && @@ -1116,6 +1117,7 @@ trinity_release_mutex(rdev); return; } + trinity_dpm_bapm_enable(rdev, false); trinity_disable_clock_power_gating(rdev); sumo_clear_vc(rdev); trinity_wait_for_level_0(rdev); --- linux-3.11.0.orig/drivers/gpu/drm/radeon/radeon_kms.c +++ linux-3.11.0/drivers/gpu/drm/radeon/radeon_kms.c @@ -433,6 +433,9 @@ return -EINVAL; } break; + case RADEON_INFO_SI_CP_DMA_COMPUTE: + *value = 1; + break; default: DRM_DEBUG_KMS("Invalid request %d\n", info->request); return -EINVAL; --- linux-3.11.0.orig/drivers/gpu/drm/radeon/ni_dpm.c +++ linux-3.11.0/drivers/gpu/drm/radeon/ni_dpm.c @@ -4270,6 +4270,12 @@ ni_pi->use_power_boost_limit = true; + /* make sure dc limits are valid */ + if ((rdev->pm.dpm.dyn_state.max_clock_voltage_on_dc.sclk == 0) || + (rdev->pm.dpm.dyn_state.max_clock_voltage_on_dc.mclk == 0)) + rdev->pm.dpm.dyn_state.max_clock_voltage_on_dc = + rdev->pm.dpm.dyn_state.max_clock_voltage_on_ac; + return 0; } --- linux-3.11.0.orig/drivers/gpu/drm/radeon/r100.c +++ linux-3.11.0/drivers/gpu/drm/radeon/r100.c @@ -2926,9 +2926,11 @@ seq_printf(m, "CP_RB_RPTR 0x%08x\n", rdp); seq_printf(m, "%u free dwords in ring\n", ring->ring_free_dw); seq_printf(m, "%u dwords in ring\n", count); - for (j = 0; j <= count; j++) { - i = (rdp + j) & ring->ptr_mask; - seq_printf(m, "r[%04d]=0x%08x\n", i, ring->ring[i]); + if (ring->ready) { + for (j = 0; j <= count; j++) { + i = (rdp + j) & ring->ptr_mask; + seq_printf(m, "r[%04d]=0x%08x\n", i, ring->ring[i]); + } } return 0; } --- linux-3.11.0.orig/drivers/gpu/drm/radeon/btc_dpm.c +++ linux-3.11.0/drivers/gpu/drm/radeon/btc_dpm.c @@ -1913,7 +1913,7 @@ } j++; - if (j > SMC_EVERGREEN_MC_REGISTER_ARRAY_SIZE) + if (j >= SMC_EVERGREEN_MC_REGISTER_ARRAY_SIZE) return -EINVAL; tmp = RREG32(MC_PMG_CMD_MRS); @@ -1928,7 +1928,7 @@ } j++; - if (j > SMC_EVERGREEN_MC_REGISTER_ARRAY_SIZE) + if (j >= SMC_EVERGREEN_MC_REGISTER_ARRAY_SIZE) return -EINVAL; break; case MC_SEQ_RESERVE_M >> 2: @@ -1942,7 +1942,7 @@ } j++; - if (j > SMC_EVERGREEN_MC_REGISTER_ARRAY_SIZE) + if (j >= SMC_EVERGREEN_MC_REGISTER_ARRAY_SIZE) return -EINVAL; break; default: @@ -2699,6 +2699,12 @@ else rdev->pm.dpm.dyn_state.sclk_mclk_delta = 10000; + /* make sure dc limits are valid */ + if ((rdev->pm.dpm.dyn_state.max_clock_voltage_on_dc.sclk == 0) || + (rdev->pm.dpm.dyn_state.max_clock_voltage_on_dc.mclk == 0)) + rdev->pm.dpm.dyn_state.max_clock_voltage_on_dc = + rdev->pm.dpm.dyn_state.max_clock_voltage_on_ac; + return 0; } --- linux-3.11.0.orig/drivers/gpu/drm/radeon/ppsmc.h +++ linux-3.11.0/drivers/gpu/drm/radeon/ppsmc.h @@ -106,6 +106,8 @@ #define PPSMC_MSG_DPM_N_LevelsDisabled ((uint32_t) 0x112) #define PPSMC_MSG_DCE_RemoveVoltageAdjustment ((uint32_t) 0x11d) #define PPSMC_MSG_DCE_AllowVoltageAdjustment ((uint32_t) 0x11e) +#define PPSMC_MSG_EnableBAPM ((uint32_t) 0x120) +#define PPSMC_MSG_DisableBAPM ((uint32_t) 0x121) #define PPSMC_MSG_UVD_DPM_Config ((uint32_t) 0x124) --- linux-3.11.0.orig/drivers/gpu/drm/radeon/rs400.c +++ linux-3.11.0/drivers/gpu/drm/radeon/rs400.c @@ -174,10 +174,13 @@ /* FIXME: according to doc we should set HIDE_MMCFG_BAR=0, * AGPMODE30=0 & AGP30ENHANCED=0 in NB_CNTL */ if ((rdev->family == CHIP_RS690) || (rdev->family == CHIP_RS740)) { - WREG32_MC(RS480_MC_MISC_CNTL, - (RS480_GART_INDEX_REG_EN | RS690_BLOCK_GFX_D3_EN)); + tmp = RREG32_MC(RS480_MC_MISC_CNTL); + tmp |= RS480_GART_INDEX_REG_EN | RS690_BLOCK_GFX_D3_EN; + WREG32_MC(RS480_MC_MISC_CNTL, tmp); } else { - WREG32_MC(RS480_MC_MISC_CNTL, RS480_GART_INDEX_REG_EN); + tmp = RREG32_MC(RS480_MC_MISC_CNTL); + tmp |= RS480_GART_INDEX_REG_EN; + WREG32_MC(RS480_MC_MISC_CNTL, tmp); } /* Enable gart */ WREG32_MC(RS480_AGP_ADDRESS_SPACE_SIZE, (RS480_GART_EN | size_reg)); --- linux-3.11.0.orig/drivers/gpu/drm/radeon/r600.c +++ linux-3.11.0/drivers/gpu/drm/radeon/r600.c @@ -119,6 +119,11 @@ return rdev->clock.spll.reference_freq; } +int r600_set_uvd_clocks(struct radeon_device *rdev, u32 vclk, u32 dclk) +{ + return 0; +} + /* get temperature in millidegrees */ int rv6xx_get_temp(struct radeon_device *rdev) { @@ -2305,6 +2310,7 @@ fw_name); release_firmware(rdev->smc_fw); rdev->smc_fw = NULL; + err = 0; } else if (rdev->smc_fw->size != smc_req_size) { printk(KERN_ERR "smc: Bogus length %zu in firmware \"%s\"\n", @@ -3334,6 +3340,11 @@ /* enable pcie gen2 link */ r600_pcie_gen2_enable(rdev); + /* scratch needs to be initialized before MC */ + r = r600_vram_scratch_init(rdev); + if (r) + return r; + r600_mc_program(rdev); if (!rdev->me_fw || !rdev->pfp_fw || !rdev->rlc_fw) { @@ -3344,10 +3355,6 @@ } } - r = r600_vram_scratch_init(rdev); - if (r) - return r; - if (rdev->flags & RADEON_IS_AGP) { r600_agp_enable(rdev); } else { --- linux-3.11.0.orig/drivers/gpu/drm/radeon/evergreen.c +++ linux-3.11.0/drivers/gpu/drm/radeon/evergreen.c @@ -1807,7 +1807,8 @@ struct drm_display_mode *mode, struct drm_display_mode *other_mode) { - u32 tmp; + u32 tmp, buffer_alloc, i; + u32 pipe_offset = radeon_crtc->crtc_id * 0x20; /* * Line Buffer Setup * There are 3 line buffers, each one shared by 2 display controllers. @@ -1830,18 +1831,34 @@ * non-linked crtcs for maximum line buffer allocation. */ if (radeon_crtc->base.enabled && mode) { - if (other_mode) + if (other_mode) { tmp = 0; /* 1/2 */ - else + buffer_alloc = 1; + } else { tmp = 2; /* whole */ - } else + buffer_alloc = 2; + } + } else { tmp = 0; + buffer_alloc = 0; + } /* second controller of the pair uses second half of the lb */ if (radeon_crtc->crtc_id % 2) tmp += 4; WREG32(DC_LB_MEMORY_SPLIT + radeon_crtc->crtc_offset, tmp); + if (ASIC_IS_DCE41(rdev) || ASIC_IS_DCE5(rdev)) { + WREG32(PIPE0_DMIF_BUFFER_CONTROL + pipe_offset, + DMIF_BUFFERS_ALLOCATED(buffer_alloc)); + for (i = 0; i < rdev->usec_timeout; i++) { + if (RREG32(PIPE0_DMIF_BUFFER_CONTROL + pipe_offset) & + DMIF_BUFFERS_ALLOCATED_COMPLETED) + break; + udelay(1); + } + } + if (radeon_crtc->base.enabled && mode) { switch (tmp) { case 0: @@ -3109,7 +3126,7 @@ rdev->config.evergreen.sx_max_export_size = 256; rdev->config.evergreen.sx_max_export_pos_size = 64; rdev->config.evergreen.sx_max_export_smx_size = 192; - rdev->config.evergreen.max_hw_contexts = 8; + rdev->config.evergreen.max_hw_contexts = 4; rdev->config.evergreen.sq_num_cf_insts = 2; rdev->config.evergreen.sc_prim_fifo_size = 0x40; @@ -5106,6 +5123,11 @@ /* enable aspm */ evergreen_program_aspm(rdev); + /* scratch needs to be initialized before MC */ + r = r600_vram_scratch_init(rdev); + if (r) + return r; + evergreen_mc_program(rdev); if (ASIC_IS_DCE5(rdev)) { @@ -5131,10 +5153,6 @@ } } - r = r600_vram_scratch_init(rdev); - if (r) - return r; - if (rdev->flags & RADEON_IS_AGP) { evergreen_agp_enable(rdev); } else { --- linux-3.11.0.orig/drivers/gpu/drm/radeon/radeon_connectors.c +++ linux-3.11.0/drivers/gpu/drm/radeon/radeon_connectors.c @@ -1489,6 +1489,24 @@ .force = radeon_dvi_force, }; +static const struct drm_connector_funcs radeon_edp_connector_funcs = { + .dpms = drm_helper_connector_dpms, + .detect = radeon_dp_detect, + .fill_modes = drm_helper_probe_single_connector_modes, + .set_property = radeon_lvds_set_property, + .destroy = radeon_dp_connector_destroy, + .force = radeon_dvi_force, +}; + +static const struct drm_connector_funcs radeon_lvds_bridge_connector_funcs = { + .dpms = drm_helper_connector_dpms, + .detect = radeon_dp_detect, + .fill_modes = drm_helper_probe_single_connector_modes, + .set_property = radeon_lvds_set_property, + .destroy = radeon_dp_connector_destroy, + .force = radeon_dvi_force, +}; + void radeon_add_atom_connector(struct drm_device *dev, uint32_t connector_id, @@ -1580,8 +1598,6 @@ goto failed; radeon_dig_connector->igp_lane_info = igp_lane_info; radeon_connector->con_priv = radeon_dig_connector; - drm_connector_init(dev, &radeon_connector->base, &radeon_dp_connector_funcs, connector_type); - drm_connector_helper_add(&radeon_connector->base, &radeon_dp_connector_helper_funcs); if (i2c_bus->valid) { /* add DP i2c bus */ if (connector_type == DRM_MODE_CONNECTOR_eDP) @@ -1598,6 +1614,10 @@ case DRM_MODE_CONNECTOR_VGA: case DRM_MODE_CONNECTOR_DVIA: default: + drm_connector_init(dev, &radeon_connector->base, + &radeon_dp_connector_funcs, connector_type); + drm_connector_helper_add(&radeon_connector->base, + &radeon_dp_connector_helper_funcs); connector->interlace_allowed = true; connector->doublescan_allowed = true; radeon_connector->dac_load_detect = true; @@ -1610,6 +1630,10 @@ case DRM_MODE_CONNECTOR_HDMIA: case DRM_MODE_CONNECTOR_HDMIB: case DRM_MODE_CONNECTOR_DisplayPort: + drm_connector_init(dev, &radeon_connector->base, + &radeon_dp_connector_funcs, connector_type); + drm_connector_helper_add(&radeon_connector->base, + &radeon_dp_connector_helper_funcs); drm_object_attach_property(&radeon_connector->base.base, rdev->mode_info.underscan_property, UNDERSCAN_OFF); @@ -1634,6 +1658,10 @@ break; case DRM_MODE_CONNECTOR_LVDS: case DRM_MODE_CONNECTOR_eDP: + drm_connector_init(dev, &radeon_connector->base, + &radeon_lvds_bridge_connector_funcs, connector_type); + drm_connector_helper_add(&radeon_connector->base, + &radeon_dp_connector_helper_funcs); drm_object_attach_property(&radeon_connector->base.base, dev->mode_config.scaling_mode_property, DRM_MODE_SCALE_FULLSCREEN); @@ -1797,7 +1825,7 @@ goto failed; radeon_dig_connector->igp_lane_info = igp_lane_info; radeon_connector->con_priv = radeon_dig_connector; - drm_connector_init(dev, &radeon_connector->base, &radeon_dp_connector_funcs, connector_type); + drm_connector_init(dev, &radeon_connector->base, &radeon_edp_connector_funcs, connector_type); drm_connector_helper_add(&radeon_connector->base, &radeon_dp_connector_helper_funcs); if (i2c_bus->valid) { /* add DP i2c bus */ --- linux-3.11.0.orig/drivers/gpu/drm/radeon/si_dpm.c +++ linux-3.11.0/drivers/gpu/drm/radeon/si_dpm.c @@ -5174,7 +5174,7 @@ table->mc_reg_table_entry[k].mc_data[j] |= 0x100; } j++; - if (j > SMC_SISLANDS_MC_REGISTER_ARRAY_SIZE) + if (j >= SMC_SISLANDS_MC_REGISTER_ARRAY_SIZE) return -EINVAL; if (!pi->mem_gddr5) { @@ -5184,7 +5184,7 @@ table->mc_reg_table_entry[k].mc_data[j] = (table->mc_reg_table_entry[k].mc_data[i] & 0xffff0000) >> 16; j++; - if (j > SMC_SISLANDS_MC_REGISTER_ARRAY_SIZE) + if (j >= SMC_SISLANDS_MC_REGISTER_ARRAY_SIZE) return -EINVAL; } break; @@ -5197,7 +5197,7 @@ (temp_reg & 0xffff0000) | (table->mc_reg_table_entry[k].mc_data[i] & 0x0000ffff); j++; - if (j > SMC_SISLANDS_MC_REGISTER_ARRAY_SIZE) + if (j >= SMC_SISLANDS_MC_REGISTER_ARRAY_SIZE) return -EINVAL; break; default: @@ -6401,6 +6401,12 @@ si_initialize_powertune_defaults(rdev); + /* make sure dc limits are valid */ + if ((rdev->pm.dpm.dyn_state.max_clock_voltage_on_dc.sclk == 0) || + (rdev->pm.dpm.dyn_state.max_clock_voltage_on_dc.mclk == 0)) + rdev->pm.dpm.dyn_state.max_clock_voltage_on_dc = + rdev->pm.dpm.dyn_state.max_clock_voltage_on_ac; + return 0; } --- linux-3.11.0.orig/drivers/gpu/drm/radeon/rs780_dpm.c +++ linux-3.11.0/drivers/gpu/drm/radeon/rs780_dpm.c @@ -486,6 +486,9 @@ (new_state->sclk_low == old_state->sclk_low)) return; + if (new_state->sclk_high == new_state->sclk_low) + return; + rs780_clk_scaling_enable(rdev, true); } @@ -717,14 +720,18 @@ if (ATOM_PPLIB_NONCLOCKINFO_VER1 < table_rev) { rps->vclk = le32_to_cpu(non_clock_info->ulVCLK); rps->dclk = le32_to_cpu(non_clock_info->ulDCLK); - } else if (r600_is_uvd_state(rps->class, rps->class2)) { - rps->vclk = RS780_DEFAULT_VCLK_FREQ; - rps->dclk = RS780_DEFAULT_DCLK_FREQ; } else { rps->vclk = 0; rps->dclk = 0; } + if (r600_is_uvd_state(rps->class, rps->class2)) { + if ((rps->vclk == 0) || (rps->dclk == 0)) { + rps->vclk = RS780_DEFAULT_VCLK_FREQ; + rps->dclk = RS780_DEFAULT_DCLK_FREQ; + } + } + if (rps->class & ATOM_PPLIB_CLASSIFICATION_BOOT) rdev->pm.dpm.boot_ps = rps; if (rps->class & ATOM_PPLIB_CLASSIFICATION_UVDSTATE) --- linux-3.11.0.orig/drivers/gpu/drm/radeon/cik.c +++ linux-3.11.0/drivers/gpu/drm/radeon/cik.c @@ -1880,7 +1880,47 @@ gb_addr_config = BONAIRE_GB_ADDR_CONFIG_GOLDEN; break; case CHIP_KAVERI: - /* TODO */ + rdev->config.cik.max_shader_engines = 1; + rdev->config.cik.max_tile_pipes = 4; + if ((rdev->pdev->device == 0x1304) || + (rdev->pdev->device == 0x1305) || + (rdev->pdev->device == 0x130C) || + (rdev->pdev->device == 0x130F) || + (rdev->pdev->device == 0x1310) || + (rdev->pdev->device == 0x1311) || + (rdev->pdev->device == 0x131C)) { + rdev->config.cik.max_cu_per_sh = 8; + rdev->config.cik.max_backends_per_se = 2; + } else if ((rdev->pdev->device == 0x1309) || + (rdev->pdev->device == 0x130A) || + (rdev->pdev->device == 0x130D) || + (rdev->pdev->device == 0x1313) || + (rdev->pdev->device == 0x131D)) { + rdev->config.cik.max_cu_per_sh = 6; + rdev->config.cik.max_backends_per_se = 2; + } else if ((rdev->pdev->device == 0x1306) || + (rdev->pdev->device == 0x1307) || + (rdev->pdev->device == 0x130B) || + (rdev->pdev->device == 0x130E) || + (rdev->pdev->device == 0x1315) || + (rdev->pdev->device == 0x131B)) { + rdev->config.cik.max_cu_per_sh = 4; + rdev->config.cik.max_backends_per_se = 1; + } else { + rdev->config.cik.max_cu_per_sh = 3; + rdev->config.cik.max_backends_per_se = 1; + } + rdev->config.cik.max_sh_per_se = 1; + rdev->config.cik.max_texture_channel_caches = 4; + rdev->config.cik.max_gprs = 256; + rdev->config.cik.max_gs_threads = 16; + rdev->config.cik.max_hw_contexts = 8; + + rdev->config.cik.sc_prim_fifo_size_frontend = 0x20; + rdev->config.cik.sc_prim_fifo_size_backend = 0x100; + rdev->config.cik.sc_hiz_tile_fifo_size = 0x30; + rdev->config.cik.sc_earlyz_tile_fifo_size = 0x130; + gb_addr_config = BONAIRE_GB_ADDR_CONFIG_GOLDEN; break; case CHIP_KABINI: default: @@ -1968,10 +2008,8 @@ rdev->config.cik.tile_config |= (3 << 0); break; } - if ((mc_arb_ramcfg & NOOFBANK_MASK) >> NOOFBANK_SHIFT) - rdev->config.cik.tile_config |= 1 << 4; - else - rdev->config.cik.tile_config |= 0 << 4; + rdev->config.cik.tile_config |= + ((mc_arb_ramcfg & NOOFBANK_MASK) >> NOOFBANK_SHIFT) << 4; rdev->config.cik.tile_config |= ((gb_addr_config & PIPE_INTERLEAVE_SIZE_MASK) >> PIPE_INTERLEAVE_SIZE_SHIFT) << 8; rdev->config.cik.tile_config |= @@ -4187,8 +4225,8 @@ rdev->mc.aper_base = pci_resource_start(rdev->pdev, 0); rdev->mc.aper_size = pci_resource_len(rdev->pdev, 0); /* size in MB on si */ - rdev->mc.mc_vram_size = RREG32(CONFIG_MEMSIZE) * 1024 * 1024; - rdev->mc.real_vram_size = RREG32(CONFIG_MEMSIZE) * 1024 * 1024; + rdev->mc.mc_vram_size = RREG32(CONFIG_MEMSIZE) * 1024ULL * 1024ULL; + rdev->mc.real_vram_size = RREG32(CONFIG_MEMSIZE) * 1024ULL * 1024ULL; rdev->mc.visible_vram_size = rdev->mc.aper_size; si_vram_gtt_location(rdev, &rdev->mc); radeon_update_bandwidth_info(rdev); @@ -4466,12 +4504,13 @@ u32 mc_id = (status & MEMORY_CLIENT_ID_MASK) >> MEMORY_CLIENT_ID_SHIFT; u32 vmid = (status & FAULT_VMID_MASK) >> FAULT_VMID_SHIFT; u32 protections = (status & PROTECTIONS_MASK) >> PROTECTIONS_SHIFT; - char *block = (char *)&mc_client; + char block[5] = { mc_client >> 24, (mc_client >> 16) & 0xff, + (mc_client >> 8) & 0xff, mc_client & 0xff, 0 }; - printk("VM fault (0x%02x, vmid %d) at page %u, %s from %s (%d)\n", + printk("VM fault (0x%02x, vmid %d) at page %u, %s from '%s' (0x%08x) (%d)\n", protections, vmid, addr, (status & MEMORY_CLIENT_RW_MASK) ? "write" : "read", - block, mc_id); + block, mc_client, mc_id); } /** @@ -5763,6 +5802,10 @@ break; } break; + case 124: /* UVD */ + DRM_DEBUG("IH: UVD int: 0x%08x\n", src_data); + radeon_fence_process(rdev, R600_RING_TYPE_UVD_INDEX); + break; case 146: case 147: addr = RREG32(VM_CONTEXT1_PROTECTION_FAULT_ADDR); @@ -5964,6 +6007,11 @@ struct radeon_ring *ring; int r; + /* scratch needs to be initialized before MC */ + r = r600_vram_scratch_init(rdev); + if (r) + return r; + cik_mc_program(rdev); if (rdev->flags & RADEON_IS_IGP) { @@ -5993,10 +6041,6 @@ } } - r = r600_vram_scratch_init(rdev); - if (r) - return r; - r = cik_pcie_gart_enable(rdev); if (r) return r; @@ -6398,8 +6442,8 @@ struct radeon_crtc *radeon_crtc, struct drm_display_mode *mode) { - u32 tmp; - + u32 tmp, buffer_alloc, i; + u32 pipe_offset = radeon_crtc->crtc_id * 0x20; /* * Line Buffer Setup * There are 6 line buffers, one for each display controllers. @@ -6409,22 +6453,37 @@ * them using the stereo blender. */ if (radeon_crtc->base.enabled && mode) { - if (mode->crtc_hdisplay < 1920) + if (mode->crtc_hdisplay < 1920) { tmp = 1; - else if (mode->crtc_hdisplay < 2560) + buffer_alloc = 2; + } else if (mode->crtc_hdisplay < 2560) { tmp = 2; - else if (mode->crtc_hdisplay < 4096) + buffer_alloc = 2; + } else if (mode->crtc_hdisplay < 4096) { tmp = 0; - else { + buffer_alloc = (rdev->flags & RADEON_IS_IGP) ? 2 : 4; + } else { DRM_DEBUG_KMS("Mode too big for LB!\n"); tmp = 0; + buffer_alloc = (rdev->flags & RADEON_IS_IGP) ? 2 : 4; } - } else + } else { tmp = 1; + buffer_alloc = 0; + } WREG32(LB_MEMORY_CTRL + radeon_crtc->crtc_offset, LB_MEMORY_CONFIG(tmp) | LB_MEMORY_SIZE(0x6B0)); + WREG32(PIPE0_DMIF_BUFFER_CONTROL + pipe_offset, + DMIF_BUFFERS_ALLOCATED(buffer_alloc)); + for (i = 0; i < rdev->usec_timeout; i++) { + if (RREG32(PIPE0_DMIF_BUFFER_CONTROL + pipe_offset) & + DMIF_BUFFERS_ALLOCATED_COMPLETED) + break; + udelay(1); + } + if (radeon_crtc->base.enabled && mode) { switch (tmp) { case 0: --- linux-3.11.0.orig/drivers/gpu/drm/radeon/atombios_encoders.c +++ linux-3.11.0/drivers/gpu/drm/radeon/atombios_encoders.c @@ -1652,8 +1652,12 @@ atombios_dig_encoder_setup(encoder, ATOM_ENABLE, 0); atombios_dig_transmitter_setup(encoder, ATOM_TRANSMITTER_ACTION_SETUP, 0, 0); atombios_dig_transmitter_setup(encoder, ATOM_TRANSMITTER_ACTION_ENABLE, 0, 0); - /* some early dce3.2 boards have a bug in their transmitter control table */ - if ((rdev->family != CHIP_RV710) && (rdev->family != CHIP_RV730)) + /* some dce3.x boards have a bug in their transmitter control table. + * ACTION_ENABLE_OUTPUT can probably be dropped since ACTION_ENABLE + * does the same thing and more. + */ + if ((rdev->family != CHIP_RV710) && (rdev->family != CHIP_RV730) && + (rdev->family != CHIP_RS780) && (rdev->family != CHIP_RS880)) atombios_dig_transmitter_setup(encoder, ATOM_TRANSMITTER_ACTION_ENABLE_OUTPUT, 0, 0); } if (ENCODER_MODE_IS_DP(atombios_get_encoder_mode(encoder)) && connector) { --- linux-3.11.0.orig/drivers/gpu/drm/radeon/radeon_pm.c +++ linux-3.11.0/drivers/gpu/drm/radeon/radeon_pm.c @@ -919,7 +919,7 @@ { /* set up the default clocks if the MC ucode is loaded */ if ((rdev->family >= CHIP_BARTS) && - (rdev->family <= CHIP_HAINAN) && + (rdev->family <= CHIP_CAYMAN) && rdev->mc_fw) { if (rdev->pm.default_vddc) radeon_atom_set_voltage(rdev, rdev->pm.default_vddc, @@ -963,7 +963,7 @@ if (ret) { DRM_ERROR("radeon: dpm resume failed\n"); if ((rdev->family >= CHIP_BARTS) && - (rdev->family <= CHIP_HAINAN) && + (rdev->family <= CHIP_CAYMAN) && rdev->mc_fw) { if (rdev->pm.default_vddc) radeon_atom_set_voltage(rdev, rdev->pm.default_vddc, @@ -1014,7 +1014,7 @@ radeon_pm_init_profile(rdev); /* set up the default clocks if the MC ucode is loaded */ if ((rdev->family >= CHIP_BARTS) && - (rdev->family <= CHIP_HAINAN) && + (rdev->family <= CHIP_CAYMAN) && rdev->mc_fw) { if (rdev->pm.default_vddc) radeon_atom_set_voltage(rdev, rdev->pm.default_vddc, @@ -1099,7 +1099,7 @@ if (ret) { rdev->pm.dpm_enabled = false; if ((rdev->family >= CHIP_BARTS) && - (rdev->family <= CHIP_HAINAN) && + (rdev->family <= CHIP_CAYMAN) && rdev->mc_fw) { if (rdev->pm.default_vddc) radeon_atom_set_voltage(rdev, rdev->pm.default_vddc, --- linux-3.11.0.orig/drivers/gpu/drm/radeon/r600_hdmi.c +++ linux-3.11.0/drivers/gpu/drm/radeon/r600_hdmi.c @@ -257,10 +257,7 @@ * number (coefficient of two integer numbers. DCCG_AUDIO_DTOx_PHASE * is the numerator, DCCG_AUDIO_DTOx_MODULE is the denominator */ - if (ASIC_IS_DCE3(rdev)) { - /* according to the reg specs, this should DCE3.2 only, but in - * practice it seems to cover DCE3.0 as well. - */ + if (ASIC_IS_DCE32(rdev)) { if (dig->dig_encoder == 0) { dto_cntl = RREG32(DCCG_AUDIO_DTO0_CNTL) & ~DCCG_AUDIO_DTO_WALLCLOCK_RATIO_MASK; dto_cntl |= DCCG_AUDIO_DTO_WALLCLOCK_RATIO(wallclock_ratio); @@ -276,8 +273,21 @@ WREG32(DCCG_AUDIO_DTO1_MODULE, dto_modulo); WREG32(DCCG_AUDIO_DTO_SELECT, 1); /* select DTO1 */ } + } else if (ASIC_IS_DCE3(rdev)) { + /* according to the reg specs, this should DCE3.2 only, but in + * practice it seems to cover DCE3.0/3.1 as well. + */ + if (dig->dig_encoder == 0) { + WREG32(DCCG_AUDIO_DTO0_PHASE, base_rate * 100); + WREG32(DCCG_AUDIO_DTO0_MODULE, clock * 100); + WREG32(DCCG_AUDIO_DTO_SELECT, 0); /* select DTO0 */ + } else { + WREG32(DCCG_AUDIO_DTO1_PHASE, base_rate * 100); + WREG32(DCCG_AUDIO_DTO1_MODULE, clock * 100); + WREG32(DCCG_AUDIO_DTO_SELECT, 1); /* select DTO1 */ + } } else { - /* according to the reg specs, this should be DCE2.0 and DCE3.0 */ + /* according to the reg specs, this should be DCE2.0 and DCE3.0/3.1 */ WREG32(AUDIO_DTO, AUDIO_DTO_PHASE(base_rate / 10) | AUDIO_DTO_MODULE(clock / 10)); } --- linux-3.11.0.orig/drivers/gpu/drm/radeon/radeon_cs.c +++ linux-3.11.0/drivers/gpu/drm/radeon/radeon_cs.c @@ -80,9 +80,11 @@ p->relocs[i].lobj.bo = p->relocs[i].robj; p->relocs[i].lobj.written = !!r->write_domain; - /* the first reloc of an UVD job is the - msg and that must be in VRAM */ - if (p->ring == R600_RING_TYPE_UVD_INDEX && i == 0) { + /* the first reloc of an UVD job is the msg and that must be in + VRAM, also but everything into VRAM on AGP cards to avoid + image corruptions */ + if (p->ring == R600_RING_TYPE_UVD_INDEX && + (i == 0 || drm_pci_device_is_agp(p->rdev->ddev))) { /* TODO: is this still needed for NI+ ? */ p->relocs[i].lobj.domain = RADEON_GEM_DOMAIN_VRAM; --- linux-3.11.0.orig/drivers/gpu/drm/radeon/si.c +++ linux-3.11.0/drivers/gpu/drm/radeon/si.c @@ -1669,6 +1669,7 @@ fw_name); release_firmware(rdev->smc_fw); rdev->smc_fw = NULL; + err = 0; } else if (rdev->smc_fw->size != smc_req_size) { printk(KERN_ERR "si_smc: Bogus length %zu in firmware \"%s\"\n", @@ -1704,7 +1705,8 @@ struct drm_display_mode *mode, struct drm_display_mode *other_mode) { - u32 tmp; + u32 tmp, buffer_alloc, i; + u32 pipe_offset = radeon_crtc->crtc_id * 0x20; /* * Line Buffer Setup * There are 3 line buffers, each one shared by 2 display controllers. @@ -1719,16 +1721,30 @@ * non-linked crtcs for maximum line buffer allocation. */ if (radeon_crtc->base.enabled && mode) { - if (other_mode) + if (other_mode) { tmp = 0; /* 1/2 */ - else + buffer_alloc = 1; + } else { tmp = 2; /* whole */ - } else + buffer_alloc = 2; + } + } else { tmp = 0; + buffer_alloc = 0; + } WREG32(DC_LB_MEMORY_SPLIT + radeon_crtc->crtc_offset, DC_LB_MEMORY_CONFIG(tmp)); + WREG32(PIPE0_DMIF_BUFFER_CONTROL + pipe_offset, + DMIF_BUFFERS_ALLOCATED(buffer_alloc)); + for (i = 0; i < rdev->usec_timeout; i++) { + if (RREG32(PIPE0_DMIF_BUFFER_CONTROL + pipe_offset) & + DMIF_BUFFERS_ALLOCATED_COMPLETED) + break; + udelay(1); + } + if (radeon_crtc->base.enabled && mode) { switch (tmp) { case 0: @@ -4083,13 +4099,64 @@ return 0; } +static int si_vm_packet3_cp_dma_check(u32 *ib, u32 idx) +{ + u32 start_reg, reg, i; + u32 command = ib[idx + 4]; + u32 info = ib[idx + 1]; + u32 idx_value = ib[idx]; + if (command & PACKET3_CP_DMA_CMD_SAS) { + /* src address space is register */ + if (((info & 0x60000000) >> 29) == 0) { + start_reg = idx_value << 2; + if (command & PACKET3_CP_DMA_CMD_SAIC) { + reg = start_reg; + if (!si_vm_reg_valid(reg)) { + DRM_ERROR("CP DMA Bad SRC register\n"); + return -EINVAL; + } + } else { + for (i = 0; i < (command & 0x1fffff); i++) { + reg = start_reg + (4 * i); + if (!si_vm_reg_valid(reg)) { + DRM_ERROR("CP DMA Bad SRC register\n"); + return -EINVAL; + } + } + } + } + } + if (command & PACKET3_CP_DMA_CMD_DAS) { + /* dst address space is register */ + if (((info & 0x00300000) >> 20) == 0) { + start_reg = ib[idx + 2]; + if (command & PACKET3_CP_DMA_CMD_DAIC) { + reg = start_reg; + if (!si_vm_reg_valid(reg)) { + DRM_ERROR("CP DMA Bad DST register\n"); + return -EINVAL; + } + } else { + for (i = 0; i < (command & 0x1fffff); i++) { + reg = start_reg + (4 * i); + if (!si_vm_reg_valid(reg)) { + DRM_ERROR("CP DMA Bad DST register\n"); + return -EINVAL; + } + } + } + } + } + return 0; +} + static int si_vm_packet3_gfx_check(struct radeon_device *rdev, u32 *ib, struct radeon_cs_packet *pkt) { + int r; u32 idx = pkt->idx + 1; u32 idx_value = ib[idx]; u32 start_reg, end_reg, reg, i; - u32 command, info; switch (pkt->opcode) { case PACKET3_NOP: @@ -4190,50 +4257,9 @@ } break; case PACKET3_CP_DMA: - command = ib[idx + 4]; - info = ib[idx + 1]; - if (command & PACKET3_CP_DMA_CMD_SAS) { - /* src address space is register */ - if (((info & 0x60000000) >> 29) == 0) { - start_reg = idx_value << 2; - if (command & PACKET3_CP_DMA_CMD_SAIC) { - reg = start_reg; - if (!si_vm_reg_valid(reg)) { - DRM_ERROR("CP DMA Bad SRC register\n"); - return -EINVAL; - } - } else { - for (i = 0; i < (command & 0x1fffff); i++) { - reg = start_reg + (4 * i); - if (!si_vm_reg_valid(reg)) { - DRM_ERROR("CP DMA Bad SRC register\n"); - return -EINVAL; - } - } - } - } - } - if (command & PACKET3_CP_DMA_CMD_DAS) { - /* dst address space is register */ - if (((info & 0x00300000) >> 20) == 0) { - start_reg = ib[idx + 2]; - if (command & PACKET3_CP_DMA_CMD_DAIC) { - reg = start_reg; - if (!si_vm_reg_valid(reg)) { - DRM_ERROR("CP DMA Bad DST register\n"); - return -EINVAL; - } - } else { - for (i = 0; i < (command & 0x1fffff); i++) { - reg = start_reg + (4 * i); - if (!si_vm_reg_valid(reg)) { - DRM_ERROR("CP DMA Bad DST register\n"); - return -EINVAL; - } - } - } - } - } + r = si_vm_packet3_cp_dma_check(ib, idx); + if (r) + return r; break; default: DRM_ERROR("Invalid GFX packet3: 0x%x\n", pkt->opcode); @@ -4245,6 +4271,7 @@ static int si_vm_packet3_compute_check(struct radeon_device *rdev, u32 *ib, struct radeon_cs_packet *pkt) { + int r; u32 idx = pkt->idx + 1; u32 idx_value = ib[idx]; u32 start_reg, reg, i; @@ -4317,6 +4344,11 @@ return -EINVAL; } break; + case PACKET3_CP_DMA: + r = si_vm_packet3_cp_dma_check(ib, idx); + if (r) + return r; + break; default: DRM_ERROR("Invalid Compute packet3: 0x%x\n", pkt->opcode); return -EINVAL; @@ -6422,6 +6454,11 @@ /* enable aspm */ si_program_aspm(rdev); + /* scratch needs to be initialized before MC */ + r = r600_vram_scratch_init(rdev); + if (r) + return r; + si_mc_program(rdev); if (!rdev->me_fw || !rdev->pfp_fw || !rdev->ce_fw || @@ -6439,10 +6476,6 @@ return r; } - r = r600_vram_scratch_init(rdev); - if (r) - return r; - r = si_pcie_gart_enable(rdev); if (r) return r; --- linux-3.11.0.orig/drivers/rtc/rtc-max77686.c +++ linux-3.11.0/drivers/rtc/rtc-max77686.c @@ -240,9 +240,9 @@ } alrm->pending = 0; - ret = regmap_read(info->max77686->regmap, MAX77686_REG_STATUS1, &val); + ret = regmap_read(info->max77686->regmap, MAX77686_REG_STATUS2, &val); if (ret < 0) { - dev_err(info->dev, "%s:%d fail to read status1 reg(%d)\n", + dev_err(info->dev, "%s:%d fail to read status2 reg(%d)\n", __func__, __LINE__, ret); goto out; } --- linux-3.11.0.orig/drivers/xen/grant-table.c +++ linux-3.11.0/drivers/xen/grant-table.c @@ -730,9 +730,18 @@ void (*fn)(void *), void *arg, u16 count) { unsigned long flags; + struct gnttab_free_callback *cb; + spin_lock_irqsave(&gnttab_list_lock, flags); - if (callback->next) - goto out; + + /* Check if the callback is already on the list */ + cb = gnttab_free_callback_list; + while (cb) { + if (cb == callback) + goto out; + cb = cb->next; + } + callback->fn = fn; callback->arg = arg; callback->count = count; --- linux-3.11.0.orig/drivers/clk/clk-wm831x.c +++ linux-3.11.0/drivers/clk/clk-wm831x.c @@ -360,6 +360,8 @@ if (!clkdata) return -ENOMEM; + clkdata->wm831x = wm831x; + /* XTAL_ENA can only be set via OTP/InstantConfig so just read once */ ret = wm831x_reg_read(wm831x, WM831X_CLOCK_CONTROL_2); if (ret < 0) { --- linux-3.11.0.orig/drivers/clk/clk-nomadik.c +++ linux-3.11.0/drivers/clk/clk-nomadik.c @@ -27,6 +27,14 @@ */ #define SRC_CR 0x00U +#define SRC_CR_T0_ENSEL BIT(15) +#define SRC_CR_T1_ENSEL BIT(17) +#define SRC_CR_T2_ENSEL BIT(19) +#define SRC_CR_T3_ENSEL BIT(21) +#define SRC_CR_T4_ENSEL BIT(23) +#define SRC_CR_T5_ENSEL BIT(25) +#define SRC_CR_T6_ENSEL BIT(27) +#define SRC_CR_T7_ENSEL BIT(29) #define SRC_XTALCR 0x0CU #define SRC_XTALCR_XTALTIMEN BIT(20) #define SRC_XTALCR_SXTALDIS BIT(19) @@ -543,6 +551,19 @@ __func__, np->name); return; } + + /* Set all timers to use the 2.4 MHz TIMCLK */ + val = readl(src_base + SRC_CR); + val |= SRC_CR_T0_ENSEL; + val |= SRC_CR_T1_ENSEL; + val |= SRC_CR_T2_ENSEL; + val |= SRC_CR_T3_ENSEL; + val |= SRC_CR_T4_ENSEL; + val |= SRC_CR_T5_ENSEL; + val |= SRC_CR_T6_ENSEL; + val |= SRC_CR_T7_ENSEL; + writel(val, src_base + SRC_CR); + val = readl(src_base + SRC_XTALCR); pr_info("SXTALO is %s\n", (val & SRC_XTALCR_SXTALDIS) ? "disabled" : "enabled"); --- linux-3.11.0.orig/drivers/clk/versatile/clk-icst.c +++ linux-3.11.0/drivers/clk/versatile/clk-icst.c @@ -107,7 +107,7 @@ vco = icst_hz_to_vco(icst->params, rate); icst->rate = icst_hz(icst->params, vco); - vco_set(icst->vcoreg, icst->lockreg, vco); + vco_set(icst->lockreg, icst->vcoreg, vco); return 0; } --- linux-3.11.0.orig/drivers/platform/x86/dell-wmi.c +++ linux-3.11.0/drivers/platform/x86/dell-wmi.c @@ -165,7 +165,7 @@ u16 *buffer_entry = (u16 *)obj->buffer.pointer; if (dell_new_hk_type && (buffer_entry[1] != 0x10)) { - pr_info("Received unknown WMI event (0x%x)\n", + pr_debug("Received unknown WMI event (0x%x)\n", buffer_entry[1]); kfree(obj); return; --- linux-3.11.0.orig/drivers/platform/x86/sony-laptop.c +++ linux-3.11.0/drivers/platform/x86/sony-laptop.c @@ -2957,6 +2957,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; @@ -2967,6 +2971,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; @@ -4403,6 +4408,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: @@ -4477,6 +4488,16 @@ .drv.pm = &sony_pic_pm, }; +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", @@ -4491,6 +4512,8 @@ DMI_MATCH(DMI_SYS_VENDOR, "Sony Corporation"), DMI_MATCH(DMI_PRODUCT_NAME, "VGN-"), }, + .callback = dmi_matched, + .driver_data = &sony_pic_vaio_vgn, }, { } }; --- linux-3.11.0.orig/drivers/platform/x86/intel_ips.c +++ linux-3.11.0/drivers/platform/x86/intel_ips.c @@ -1501,6 +1501,14 @@ DMI_MATCH(DMI_PRODUCT_NAME, "HP ProBook"), }, }, + { + .callback = ips_blacklist_callback, + .ident = "G60JX", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "ASUSTeK Computer Inc."), + DMI_MATCH(DMI_PRODUCT_NAME, "G60JX"), + }, + }, { } /* terminating entry */ }; --- linux-3.11.0.orig/drivers/platform/x86/thinkpad_acpi.c +++ linux-3.11.0/drivers/platform/x86/thinkpad_acpi.c @@ -6438,7 +6438,12 @@ #define TPACPI_ALSA_SHRTNAME "ThinkPad Console Audio Control" #define TPACPI_ALSA_MIXERNAME TPACPI_ALSA_SHRTNAME -static int alsa_index = ~((1 << (SNDRV_CARDS - 3)) - 1); /* last three slots */ +#if SNDRV_CARDS <= 32 +#define DEFAULT_ALSA_IDX ~((1 << (SNDRV_CARDS - 3)) - 1) +#else +#define DEFAULT_ALSA_IDX ~((1 << (32 - 3)) - 1) +#endif +static int alsa_index = DEFAULT_ALSA_IDX; /* last three slots */ static char *alsa_id = "ThinkPadEC"; static bool alsa_enable = SNDRV_DEFAULT_ENABLE1; --- linux-3.11.0.orig/drivers/acpi/acpi_lpss.c +++ linux-3.11.0/drivers/acpi/acpi_lpss.c @@ -257,12 +257,13 @@ pdata->mmio_size = resource_size(&rentry->res); pdata->mmio_base = ioremap(rentry->res.start, pdata->mmio_size); - pdata->dev_desc = dev_desc; break; } acpi_dev_free_resource_list(&resource_list); + pdata->dev_desc = dev_desc; + if (dev_desc->clk_required) { ret = register_device_clock(adev, pdata); if (ret) { --- linux-3.11.0.orig/drivers/acpi/video.c +++ linux-3.11.0/drivers/acpi/video.c @@ -848,7 +848,7 @@ for (i = 2; i < br->count; i++) if (level_old == br->levels[i]) break; - if (i == br->count) + if (i == br->count || !level) level = max_level; } --- linux-3.11.0.orig/drivers/acpi/blacklist.c +++ linux-3.11.0/drivers/acpi/blacklist.c @@ -193,6 +193,13 @@ return 0; } +static int __init dmi_disable_osi_win8(const struct dmi_system_id *d) +{ + printk(KERN_NOTICE PREFIX "DMI detected: %s\n", d->ident); + acpi_osi_setup("!Windows 2012"); + return 0; +} + static struct dmi_system_id acpi_osi_dmi_table[] __initdata = { { .callback = dmi_disable_osi_vista, @@ -268,6 +275,85 @@ }, }, + /* + * The following Lenovo models have a broken workaround in the + * acpi_video backlight implementation to meet the Windows 8 + * requirement of 101 backlight levels. Reverting to pre-Win8 + * behavior fixes the problem. + */ + { + .callback = dmi_disable_osi_win8, + .ident = "Lenovo ThinkPad L430", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"), + DMI_MATCH(DMI_PRODUCT_VERSION, "ThinkPad L430"), + }, + }, + { + .callback = dmi_disable_osi_win8, + .ident = "Lenovo ThinkPad T430", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"), + DMI_MATCH(DMI_PRODUCT_VERSION, "ThinkPad T430"), + }, + }, + { + .callback = dmi_disable_osi_win8, + .ident = "Lenovo ThinkPad T430s", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"), + DMI_MATCH(DMI_PRODUCT_VERSION, "ThinkPad T430s"), + }, + }, + { + .callback = dmi_disable_osi_win8, + .ident = "Lenovo ThinkPad T530", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"), + DMI_MATCH(DMI_PRODUCT_VERSION, "ThinkPad T530"), + }, + }, + { + .callback = dmi_disable_osi_win8, + .ident = "Lenovo ThinkPad W530", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"), + DMI_MATCH(DMI_PRODUCT_VERSION, "ThinkPad W530"), + }, + }, + { + .callback = dmi_disable_osi_win8, + .ident = "Lenovo ThinkPad X1 Carbon", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"), + DMI_MATCH(DMI_PRODUCT_VERSION, "ThinkPad X1 Carbon"), + }, + }, + { + .callback = dmi_disable_osi_win8, + .ident = "Lenovo ThinkPad X230", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"), + DMI_MATCH(DMI_PRODUCT_VERSION, "ThinkPad X230"), + }, + }, + { + .callback = dmi_disable_osi_win8, + .ident = "Lenovo ThinkPad Edge E330", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"), + DMI_MATCH(DMI_PRODUCT_VERSION, "ThinkPad Edge E330"), + }, + }, + { + .callback = dmi_disable_osi_win8, + .ident = "Dell Inspiron 5537", + .matches = { + DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."), + DMI_MATCH(DMI_PRODUCT_NAME, "Inspiron 5537"), + }, + }, + /* * BIOS invocation of _OSI(Linux) is almost always a BIOS bug. * Linux ignores it, except for the machines enumerated below. --- linux-3.11.0.orig/drivers/acpi/pci_root.c +++ linux-3.11.0/drivers/acpi/pci_root.c @@ -378,6 +378,7 @@ struct acpi_pci_root *root; u32 flags, base_flags; acpi_handle handle = device->handle; + bool no_aspm = false, clear_aspm = false; root = kzalloc(sizeof(struct acpi_pci_root), GFP_KERNEL); if (!root) @@ -437,27 +438,6 @@ flags = base_flags = OSC_PCI_SEGMENT_GROUPS_SUPPORT; acpi_pci_osc_support(root, flags); - /* - * TBD: Need PCI interface for enumeration/configuration of roots. - */ - - /* - * Scan the Root Bridge - * -------------------- - * Must do this prior to any attempt to bind the root device, as the - * PCI namespace does not get created until this call is made (and - * thus the root bridge's pci_dev does not exist). - */ - root->bus = pci_acpi_scan_root(root); - if (!root->bus) { - dev_err(&device->dev, - "Bus %04x:%02x not present in PCI namespace\n", - root->segment, (unsigned int)root->secondary.start); - result = -ENODEV; - goto end; - } - - /* Indicate support for various _OSC capabilities. */ if (pci_ext_cfg_avail()) flags |= OSC_EXT_PCI_CONFIG_SUPPORT; if (pcie_aspm_support_enabled()) { @@ -471,7 +451,7 @@ if (ACPI_FAILURE(status)) { dev_info(&device->dev, "ACPI _OSC support " "notification failed, disabling PCIe ASPM\n"); - pcie_no_aspm(); + no_aspm = true; flags = base_flags; } } @@ -503,7 +483,7 @@ * We have ASPM control, but the FADT indicates * that it's unsupported. Clear it. */ - pcie_clear_aspm(root->bus); + clear_aspm = true; } } else { dev_info(&device->dev, @@ -512,7 +492,14 @@ acpi_format_exception(status), flags); dev_info(&device->dev, "ACPI _OSC control for PCIe not granted, disabling ASPM\n"); - pcie_no_aspm(); + /* + * We want to disable ASPM here, but aspm_disabled + * needs to remain in its state from boot so that we + * properly handle PCIe 1.1 devices. So we set this + * flag here, to defer the action until after the ACPI + * root scan. + */ + no_aspm = true; } } else { dev_info(&device->dev, @@ -520,6 +507,33 @@ "(_OSC support mask: 0x%02x)\n", flags); } + /* + * TBD: Need PCI interface for enumeration/configuration of roots. + */ + + /* + * Scan the Root Bridge + * -------------------- + * Must do this prior to any attempt to bind the root device, as the + * PCI namespace does not get created until this call is made (and + * thus the root bridge's pci_dev does not exist). + */ + root->bus = pci_acpi_scan_root(root); + if (!root->bus) { + dev_err(&device->dev, + "Bus %04x:%02x not present in PCI namespace\n", + root->segment, (unsigned int)root->secondary.start); + result = -ENODEV; + goto end; + } + + if (clear_aspm) { + dev_info(&device->dev, "Disabling ASPM (FADT indicates it is unsupported)\n"); + pcie_clear_aspm(root->bus); + } + if (no_aspm) + pcie_no_aspm(); + pci_acpi_add_bus_pm_notifier(device, root->bus); if (device->wakeup.flags.run_wake) device_set_run_wake(root->bus->bridge, true); @@ -597,9 +611,12 @@ ej_event->device = device; ej_event->event = ACPI_NOTIFY_EJECT_REQUEST; + get_device(&device->dev); status = acpi_os_hotplug_execute(acpi_bus_hot_remove_device, ej_event); - if (ACPI_FAILURE(status)) + if (ACPI_FAILURE(status)) { + put_device(&device->dev); kfree(ej_event); + } } static void _handle_hotplug_event_root(struct work_struct *work) --- linux-3.11.0.orig/drivers/acpi/scan.c +++ linux-3.11.0/drivers/acpi/scan.c @@ -359,8 +359,6 @@ goto out; } } - acpi_evaluate_hotplug_ost(handle, ost_source, - ACPI_OST_SC_INSERT_IN_PROGRESS, NULL); error = acpi_bus_scan(handle); if (error) { acpi_handle_warn(handle, "Namespace scan failure\n"); --- linux-3.11.0.orig/drivers/acpi/ec.c +++ linux-3.11.0/drivers/acpi/ec.c @@ -175,9 +175,10 @@ static void advance_transaction(struct acpi_ec *ec, u8 status) { unsigned long flags; - struct transaction *t = ec->curr; + struct transaction *t; spin_lock_irqsave(&ec->lock, flags); + t = ec->curr; if (!t) goto unlock; if (t->wlen > t->wi) { @@ -987,6 +988,10 @@ ec_skip_dsdt_scan, "HP Folio 13", { DMI_MATCH(DMI_SYS_VENDOR, "Hewlett-Packard"), DMI_MATCH(DMI_PRODUCT_NAME, "HP Folio 13"),}, NULL}, + { + ec_validate_ecdt, "ASUS hardware", { + DMI_MATCH(DMI_SYS_VENDOR, "ASUSTek Computer Inc."), + DMI_MATCH(DMI_PRODUCT_NAME, "L4R"),}, NULL}, {}, }; --- linux-3.11.0.orig/drivers/acpi/processor_idle.c +++ linux-3.11.0/drivers/acpi/processor_idle.c @@ -119,17 +119,10 @@ */ static void acpi_safe_halt(void) { - current_thread_info()->status &= ~TS_POLLING; - /* - * TS_POLLING-cleared state must be visible before we - * test NEED_RESCHED: - */ - smp_mb(); - if (!need_resched()) { + if (!tif_need_resched()) { safe_halt(); local_irq_disable(); } - current_thread_info()->status |= TS_POLLING; } #ifdef ARCH_APICTIMER_STOPS_ON_C3 @@ -737,6 +730,11 @@ if (unlikely(!pr)) return -EINVAL; + if (cx->entry_method == ACPI_CSTATE_FFH) { + if (current_set_polling_and_test()) + return -EINVAL; + } + lapic_timer_state_broadcast(pr, cx, 1); acpi_idle_do_entry(cx); @@ -790,18 +788,9 @@ if (unlikely(!pr)) return -EINVAL; - if (cx->entry_method != ACPI_CSTATE_FFH) { - current_thread_info()->status &= ~TS_POLLING; - /* - * TS_POLLING-cleared state must be visible before we test - * NEED_RESCHED: - */ - smp_mb(); - - if (unlikely(need_resched())) { - current_thread_info()->status |= TS_POLLING; + if (cx->entry_method == ACPI_CSTATE_FFH) { + if (current_set_polling_and_test()) return -EINVAL; - } } /* @@ -819,9 +808,6 @@ sched_clock_idle_wakeup_event(0); - if (cx->entry_method != ACPI_CSTATE_FFH) - current_thread_info()->status |= TS_POLLING; - lapic_timer_state_broadcast(pr, cx, 0); return index; } @@ -858,18 +844,9 @@ } } - if (cx->entry_method != ACPI_CSTATE_FFH) { - current_thread_info()->status &= ~TS_POLLING; - /* - * TS_POLLING-cleared state must be visible before we test - * NEED_RESCHED: - */ - smp_mb(); - - if (unlikely(need_resched())) { - current_thread_info()->status |= TS_POLLING; + if (cx->entry_method == ACPI_CSTATE_FFH) { + if (current_set_polling_and_test()) return -EINVAL; - } } acpi_unlazy_tlb(smp_processor_id()); @@ -915,9 +892,6 @@ sched_clock_idle_wakeup_event(0); - if (cx->entry_method != ACPI_CSTATE_FFH) - current_thread_info()->status |= TS_POLLING; - lapic_timer_state_broadcast(pr, cx, 0); return index; } --- linux-3.11.0.orig/drivers/acpi/acpi_ipmi.c +++ linux-3.11.0/drivers/acpi/acpi_ipmi.c @@ -39,6 +39,7 @@ #include #include #include +#include MODULE_AUTHOR("Zhao Yakui"); MODULE_DESCRIPTION("ACPI IPMI Opregion driver"); @@ -57,7 +58,7 @@ struct list_head head; /* the IPMI request message list */ struct list_head tx_msg_list; - struct mutex tx_msg_lock; + spinlock_t tx_msg_lock; acpi_handle handle; struct pnp_dev *pnp_dev; ipmi_user_t user_interface; @@ -147,6 +148,7 @@ struct kernel_ipmi_msg *msg; struct acpi_ipmi_buffer *buffer; struct acpi_ipmi_device *device; + unsigned long flags; msg = &tx_msg->tx_message; /* @@ -177,10 +179,10 @@ /* Get the msgid */ device = tx_msg->device; - mutex_lock(&device->tx_msg_lock); + spin_lock_irqsave(&device->tx_msg_lock, flags); device->curr_msgid++; tx_msg->tx_msgid = device->curr_msgid; - mutex_unlock(&device->tx_msg_lock); + spin_unlock_irqrestore(&device->tx_msg_lock, flags); } static void acpi_format_ipmi_response(struct acpi_ipmi_msg *msg, @@ -242,6 +244,7 @@ int msg_found = 0; struct acpi_ipmi_msg *tx_msg; struct pnp_dev *pnp_dev = ipmi_device->pnp_dev; + unsigned long flags; if (msg->user != ipmi_device->user_interface) { dev_warn(&pnp_dev->dev, "Unexpected response is returned. " @@ -250,7 +253,7 @@ ipmi_free_recv_msg(msg); return; } - mutex_lock(&ipmi_device->tx_msg_lock); + spin_lock_irqsave(&ipmi_device->tx_msg_lock, flags); list_for_each_entry(tx_msg, &ipmi_device->tx_msg_list, head) { if (msg->msgid == tx_msg->tx_msgid) { msg_found = 1; @@ -258,7 +261,7 @@ } } - mutex_unlock(&ipmi_device->tx_msg_lock); + spin_unlock_irqrestore(&ipmi_device->tx_msg_lock, flags); if (!msg_found) { dev_warn(&pnp_dev->dev, "Unexpected response (msg id %ld) is " "returned.\n", msg->msgid); @@ -378,6 +381,7 @@ struct acpi_ipmi_device *ipmi_device = handler_context; int err, rem_time; acpi_status status; + unsigned long flags; /* * IPMI opregion message. * IPMI message is firstly written to the BMC and system software @@ -395,9 +399,9 @@ return AE_NO_MEMORY; acpi_format_ipmi_msg(tx_msg, address, value); - mutex_lock(&ipmi_device->tx_msg_lock); + spin_lock_irqsave(&ipmi_device->tx_msg_lock, flags); list_add_tail(&tx_msg->head, &ipmi_device->tx_msg_list); - mutex_unlock(&ipmi_device->tx_msg_lock); + spin_unlock_irqrestore(&ipmi_device->tx_msg_lock, flags); err = ipmi_request_settime(ipmi_device->user_interface, &tx_msg->addr, tx_msg->tx_msgid, @@ -413,9 +417,9 @@ status = AE_OK; end_label: - mutex_lock(&ipmi_device->tx_msg_lock); + spin_lock_irqsave(&ipmi_device->tx_msg_lock, flags); list_del(&tx_msg->head); - mutex_unlock(&ipmi_device->tx_msg_lock); + spin_unlock_irqrestore(&ipmi_device->tx_msg_lock, flags); kfree(tx_msg); return status; } @@ -457,7 +461,7 @@ INIT_LIST_HEAD(&ipmi_device->head); - mutex_init(&ipmi_device->tx_msg_lock); + spin_lock_init(&ipmi_device->tx_msg_lock); INIT_LIST_HEAD(&ipmi_device->tx_msg_list); ipmi_install_space_handler(ipmi_device); --- linux-3.11.0.orig/drivers/acpi/acpica/exstore.c +++ linux-3.11.0/drivers/acpi/acpica/exstore.c @@ -57,6 +57,11 @@ union acpi_operand_object *dest_desc, struct acpi_walk_state *walk_state); +static acpi_status +acpi_ex_store_direct_to_node(union acpi_operand_object *source_desc, + struct acpi_namespace_node *node, + struct acpi_walk_state *walk_state); + /******************************************************************************* * * FUNCTION: acpi_ex_store @@ -375,7 +380,11 @@ * When storing into an object the data is converted to the * target object type then stored in the object. This means * that the target object type (for an initialized target) will - * not be changed by a store operation. + * not be changed by a store operation. A copy_object can change + * the target type, however. + * + * The implicit_conversion flag is set to NO/FALSE only when + * storing to an arg_x -- as per the rules of the ACPI spec. * * Assumes parameters are already validated. * @@ -399,7 +408,7 @@ target_type = acpi_ns_get_type(node); target_desc = acpi_ns_get_attached_object(node); - ACPI_DEBUG_PRINT((ACPI_DB_EXEC, "Storing %p(%s) into node %p(%s)\n", + ACPI_DEBUG_PRINT((ACPI_DB_EXEC, "Storing %p (%s) to node %p (%s)\n", source_desc, acpi_ut_get_object_type_name(source_desc), node, acpi_ut_get_type_name(target_type))); @@ -413,45 +422,30 @@ return_ACPI_STATUS(status); } - /* If no implicit conversion, drop into the default case below */ - - if ((!implicit_conversion) || - ((walk_state->opcode == AML_COPY_OP) && - (target_type != ACPI_TYPE_LOCAL_REGION_FIELD) && - (target_type != ACPI_TYPE_LOCAL_BANK_FIELD) && - (target_type != ACPI_TYPE_LOCAL_INDEX_FIELD))) { - /* - * Force execution of default (no implicit conversion). Note: - * copy_object does not perform an implicit conversion, as per the ACPI - * spec -- except in case of region/bank/index fields -- because these - * objects must retain their original type permanently. - */ - target_type = ACPI_TYPE_ANY; - } - /* Do the actual store operation */ switch (target_type) { - case ACPI_TYPE_BUFFER_FIELD: - case ACPI_TYPE_LOCAL_REGION_FIELD: - case ACPI_TYPE_LOCAL_BANK_FIELD: - case ACPI_TYPE_LOCAL_INDEX_FIELD: - - /* For fields, copy the source data to the target field. */ - - status = acpi_ex_write_data_to_field(source_desc, target_desc, - &walk_state->result_obj); - break; - case ACPI_TYPE_INTEGER: case ACPI_TYPE_STRING: case ACPI_TYPE_BUFFER: /* - * These target types are all of type Integer/String/Buffer, and - * therefore support implicit conversion before the store. - * - * Copy and/or convert the source object to a new target object + * The simple data types all support implicit source operand + * conversion before the store. */ + + if ((walk_state->opcode == AML_COPY_OP) || !implicit_conversion) { + /* + * However, copy_object and Stores to arg_x do not perform + * an implicit conversion, as per the ACPI specification. + * A direct store is performed instead. + */ + status = acpi_ex_store_direct_to_node(source_desc, node, + walk_state); + break; + } + + /* Store with implicit source operand conversion support */ + status = acpi_ex_store_object_to_object(source_desc, target_desc, &new_desc, walk_state); @@ -465,13 +459,12 @@ * the Name's type to that of the value being stored in it. * source_desc reference count is incremented by attach_object. * - * Note: This may change the type of the node if an explicit store - * has been performed such that the node/object type has been - * changed. + * Note: This may change the type of the node if an explicit + * store has been performed such that the node/object type + * has been changed. */ - status = - acpi_ns_attach_object(node, new_desc, - new_desc->common.type); + status = acpi_ns_attach_object(node, new_desc, + new_desc->common.type); ACPI_DEBUG_PRINT((ACPI_DB_EXEC, "Store %s into %s via Convert/Attach\n", @@ -482,38 +475,83 @@ } break; - default: - - ACPI_DEBUG_PRINT((ACPI_DB_EXEC, - "Storing [%s] (%p) directly into node [%s] (%p)" - " with no implicit conversion\n", - acpi_ut_get_object_type_name(source_desc), - source_desc, - acpi_ut_get_object_type_name(target_desc), - node)); + case ACPI_TYPE_BUFFER_FIELD: + case ACPI_TYPE_LOCAL_REGION_FIELD: + case ACPI_TYPE_LOCAL_BANK_FIELD: + case ACPI_TYPE_LOCAL_INDEX_FIELD: + /* + * For all fields, always write the source data to the target + * field. Any required implicit source operand conversion is + * performed in the function below as necessary. Note, field + * objects must retain their original type permanently. + */ + status = acpi_ex_write_data_to_field(source_desc, target_desc, + &walk_state->result_obj); + break; + default: /* * No conversions for all other types. Directly store a copy of - * the source object. NOTE: This is a departure from the ACPI - * spec, which states "If conversion is impossible, abort the - * running control method". + * the source object. This is the ACPI spec-defined behavior for + * the copy_object operator. * - * This code implements "If conversion is impossible, treat the - * Store operation as a CopyObject". + * NOTE: For the Store operator, this is a departure from the + * ACPI spec, which states "If conversion is impossible, abort + * the running control method". Instead, this code implements + * "If conversion is impossible, treat the Store operation as + * a CopyObject". */ - status = - acpi_ut_copy_iobject_to_iobject(source_desc, &new_desc, - walk_state); - if (ACPI_FAILURE(status)) { - return_ACPI_STATUS(status); - } - - status = - acpi_ns_attach_object(node, new_desc, - new_desc->common.type); - acpi_ut_remove_reference(new_desc); + status = acpi_ex_store_direct_to_node(source_desc, node, + walk_state); break; } return_ACPI_STATUS(status); } + +/******************************************************************************* + * + * FUNCTION: acpi_ex_store_direct_to_node + * + * PARAMETERS: source_desc - Value to be stored + * node - Named object to receive the value + * walk_state - Current walk state + * + * RETURN: Status + * + * DESCRIPTION: "Store" an object directly to a node. This involves a copy + * and an attach. + * + ******************************************************************************/ + +static acpi_status +acpi_ex_store_direct_to_node(union acpi_operand_object *source_desc, + struct acpi_namespace_node *node, + struct acpi_walk_state *walk_state) +{ + acpi_status status; + union acpi_operand_object *new_desc; + + ACPI_FUNCTION_TRACE(ex_store_direct_to_node); + + ACPI_DEBUG_PRINT((ACPI_DB_EXEC, + "Storing [%s] (%p) directly into node [%s] (%p)" + " with no implicit conversion\n", + acpi_ut_get_object_type_name(source_desc), + source_desc, acpi_ut_get_type_name(node->type), + node)); + + /* Copy the source object to a new object */ + + status = + acpi_ut_copy_iobject_to_iobject(source_desc, &new_desc, walk_state); + if (ACPI_FAILURE(status)) { + return_ACPI_STATUS(status); + } + + /* Attach the new object to the node */ + + status = acpi_ns_attach_object(node, new_desc, new_desc->common.type); + acpi_ut_remove_reference(new_desc); + return_ACPI_STATUS(status); +} --- linux-3.11.0.orig/drivers/acpi/acpica/exoparg1.c +++ linux-3.11.0/drivers/acpi/acpica/exoparg1.c @@ -962,10 +962,17 @@ */ return_desc = *(operand[0]->reference.where); - if (return_desc) { - acpi_ut_add_reference - (return_desc); + if (!return_desc) { + /* + * Element is NULL, do not allow the dereference. + * This provides compatibility with other ACPI + * implementations. + */ + return_ACPI_STATUS + (AE_AML_UNINITIALIZED_ELEMENT); } + + acpi_ut_add_reference(return_desc); break; default: @@ -990,11 +997,40 @@ acpi_namespace_node *) return_desc); - } + if (!return_desc) { + break; + } + + /* + * June 2013: + * buffer_fields/field_units require additional resolution + */ + switch (return_desc->common.type) { + case ACPI_TYPE_BUFFER_FIELD: + case ACPI_TYPE_LOCAL_REGION_FIELD: + case ACPI_TYPE_LOCAL_BANK_FIELD: + case ACPI_TYPE_LOCAL_INDEX_FIELD: + + status = + acpi_ex_read_data_from_field + (walk_state, return_desc, + &temp_desc); + if (ACPI_FAILURE(status)) { + goto cleanup; + } - /* Add another reference to the object! */ + return_desc = temp_desc; + break; - acpi_ut_add_reference(return_desc); + default: + + /* Add another reference to the object */ + + acpi_ut_add_reference + (return_desc); + break; + } + } break; default: --- linux-3.11.0.orig/drivers/cpuidle/coupled.c +++ linux-3.11.0/drivers/cpuidle/coupled.c @@ -106,6 +106,7 @@ cpumask_t coupled_cpus; int requested_state[NR_CPUS]; atomic_t ready_waiting_counts; + atomic_t abort_barrier; int online_count; int refcnt; int prevent; @@ -122,12 +123,19 @@ static DEFINE_PER_CPU(struct call_single_data, cpuidle_coupled_poke_cb); /* - * The cpuidle_coupled_poked_mask mask is used to avoid calling + * The cpuidle_coupled_poke_pending mask is used to avoid calling * __smp_call_function_single with the per cpu call_single_data struct already * in use. This prevents a deadlock where two cpus are waiting for each others * call_single_data struct to be available */ -static cpumask_t cpuidle_coupled_poked_mask; +static cpumask_t cpuidle_coupled_poke_pending; + +/* + * The cpuidle_coupled_poked mask is used to ensure that each cpu has been poked + * once to minimize entering the ready loop with a poke pending, which would + * require aborting and retrying. + */ +static cpumask_t cpuidle_coupled_poked; /** * cpuidle_coupled_parallel_barrier - synchronize all online coupled cpus @@ -291,10 +299,11 @@ return state; } -static void cpuidle_coupled_poked(void *info) +static void cpuidle_coupled_handle_poke(void *info) { int cpu = (unsigned long)info; - cpumask_clear_cpu(cpu, &cpuidle_coupled_poked_mask); + cpumask_set_cpu(cpu, &cpuidle_coupled_poked); + cpumask_clear_cpu(cpu, &cpuidle_coupled_poke_pending); } /** @@ -313,7 +322,7 @@ { struct call_single_data *csd = &per_cpu(cpuidle_coupled_poke_cb, cpu); - if (!cpumask_test_and_set_cpu(cpu, &cpuidle_coupled_poked_mask)) + if (!cpumask_test_and_set_cpu(cpu, &cpuidle_coupled_poke_pending)) __smp_call_function_single(cpu, csd, 0); } @@ -340,30 +349,19 @@ * @coupled: the struct coupled that contains the current cpu * @next_state: the index in drv->states of the requested state for this cpu * - * Updates the requested idle state for the specified cpuidle device, - * poking all coupled cpus out of idle if necessary to let them see the new - * state. + * Updates the requested idle state for the specified cpuidle device. + * Returns the number of waiting cpus. */ -static void cpuidle_coupled_set_waiting(int cpu, +static int cpuidle_coupled_set_waiting(int cpu, struct cpuidle_coupled *coupled, int next_state) { - int w; - coupled->requested_state[cpu] = next_state; /* - * If this is the last cpu to enter the waiting state, poke - * all the other cpus out of their waiting state so they can - * enter a deeper state. This can race with one of the cpus - * exiting the waiting state due to an interrupt and - * decrementing waiting_count, see comment below. - * * The atomic_inc_return provides a write barrier to order the write * to requested_state with the later write that increments ready_count. */ - w = atomic_inc_return(&coupled->ready_waiting_counts) & WAITING_MASK; - if (w == coupled->online_count) - cpuidle_coupled_poke_others(cpu, coupled); + return atomic_inc_return(&coupled->ready_waiting_counts) & WAITING_MASK; } /** @@ -410,19 +408,33 @@ * been processed and the poke bit has been cleared. * * Other interrupts may also be processed while interrupts are enabled, so - * need_resched() must be tested after turning interrupts off again to make sure + * need_resched() must be tested after this function returns to make sure * the interrupt didn't schedule work that should take the cpu out of idle. * - * Returns 0 if need_resched was false, -EINTR if need_resched was true. + * Returns 0 if no poke was pending, 1 if a poke was cleared. */ static int cpuidle_coupled_clear_pokes(int cpu) { + if (!cpumask_test_cpu(cpu, &cpuidle_coupled_poke_pending)) + return 0; + local_irq_enable(); - while (cpumask_test_cpu(cpu, &cpuidle_coupled_poked_mask)) + while (cpumask_test_cpu(cpu, &cpuidle_coupled_poke_pending)) cpu_relax(); local_irq_disable(); - return need_resched() ? -EINTR : 0; + return 1; +} + +static bool cpuidle_coupled_any_pokes_pending(struct cpuidle_coupled *coupled) +{ + cpumask_t cpus; + int ret; + + cpumask_and(&cpus, cpu_online_mask, &coupled->coupled_cpus); + ret = cpumask_and(&cpus, &cpuidle_coupled_poke_pending, &cpus); + + return ret; } /** @@ -449,12 +461,14 @@ { int entered_state = -1; struct cpuidle_coupled *coupled = dev->coupled; + int w; if (!coupled) return -EINVAL; while (coupled->prevent) { - if (cpuidle_coupled_clear_pokes(dev->cpu)) { + cpuidle_coupled_clear_pokes(dev->cpu); + if (need_resched()) { local_irq_enable(); return entered_state; } @@ -465,15 +479,37 @@ /* Read barrier ensures online_count is read after prevent is cleared */ smp_rmb(); - cpuidle_coupled_set_waiting(dev->cpu, coupled, next_state); +reset: + cpumask_clear_cpu(dev->cpu, &cpuidle_coupled_poked); + + w = cpuidle_coupled_set_waiting(dev->cpu, coupled, next_state); + /* + * If this is the last cpu to enter the waiting state, poke + * all the other cpus out of their waiting state so they can + * enter a deeper state. This can race with one of the cpus + * exiting the waiting state due to an interrupt and + * decrementing waiting_count, see comment below. + */ + if (w == coupled->online_count) { + cpumask_set_cpu(dev->cpu, &cpuidle_coupled_poked); + cpuidle_coupled_poke_others(dev->cpu, coupled); + } retry: /* * Wait for all coupled cpus to be idle, using the deepest state - * allowed for a single cpu. + * allowed for a single cpu. If this was not the poking cpu, wait + * for at least one poke before leaving to avoid a race where + * two cpus could arrive at the waiting loop at the same time, + * but the first of the two to arrive could skip the loop without + * processing the pokes from the last to arrive. */ - while (!cpuidle_coupled_cpus_waiting(coupled)) { - if (cpuidle_coupled_clear_pokes(dev->cpu)) { + while (!cpuidle_coupled_cpus_waiting(coupled) || + !cpumask_test_cpu(dev->cpu, &cpuidle_coupled_poked)) { + if (cpuidle_coupled_clear_pokes(dev->cpu)) + continue; + + if (need_resched()) { cpuidle_coupled_set_not_waiting(dev->cpu, coupled); goto out; } @@ -487,12 +523,19 @@ dev->safe_state_index); } - if (cpuidle_coupled_clear_pokes(dev->cpu)) { + cpuidle_coupled_clear_pokes(dev->cpu); + if (need_resched()) { cpuidle_coupled_set_not_waiting(dev->cpu, coupled); goto out; } /* + * Make sure final poke status for this cpu is visible before setting + * cpu as ready. + */ + smp_wmb(); + + /* * All coupled cpus are probably idle. There is a small chance that * one of the other cpus just became active. Increment the ready count, * and spin until all coupled cpus have incremented the counter. Once a @@ -511,6 +554,28 @@ cpu_relax(); } + /* + * Make sure read of all cpus ready is done before reading pending pokes + */ + smp_rmb(); + + /* + * There is a small chance that a cpu left and reentered idle after this + * cpu saw that all cpus were waiting. The cpu that reentered idle will + * have sent this cpu a poke, which will still be pending after the + * ready loop. The pending interrupt may be lost by the interrupt + * controller when entering the deep idle state. It's not possible to + * clear a pending interrupt without turning interrupts on and handling + * it, and it's too late to turn on interrupts here, so reset the + * coupled idle state of all cpus and retry. + */ + if (cpuidle_coupled_any_pokes_pending(coupled)) { + cpuidle_coupled_set_done(dev->cpu, coupled); + /* Wait for all cpus to see the pending pokes */ + cpuidle_coupled_parallel_barrier(dev, &coupled->abort_barrier); + goto reset; + } + /* all cpus have acked the coupled state */ next_state = cpuidle_coupled_get_state(dev, coupled); @@ -596,7 +661,7 @@ coupled->refcnt++; csd = &per_cpu(cpuidle_coupled_poke_cb, dev->cpu); - csd->func = cpuidle_coupled_poked; + csd->func = cpuidle_coupled_handle_poke; csd->info = (void *)(unsigned long)dev->cpu; return 0; --- linux-3.11.0.orig/drivers/mtd/nand/nand_base.c +++ linux-3.11.0/drivers/mtd/nand/nand_base.c @@ -2793,7 +2793,9 @@ if (!chip->select_chip) chip->select_chip = nand_select_chip; - if (!chip->read_byte) + + /* If called twice, pointers that depend on busw may need to be reset */ + if (!chip->read_byte || chip->read_byte == nand_read_byte) chip->read_byte = busw ? nand_read_byte16 : nand_read_byte; if (!chip->read_word) chip->read_word = nand_read_word; @@ -2801,9 +2803,9 @@ chip->block_bad = nand_block_bad; if (!chip->block_markbad) chip->block_markbad = nand_default_block_markbad; - if (!chip->write_buf) + if (!chip->write_buf || chip->write_buf == nand_write_buf) chip->write_buf = busw ? nand_write_buf16 : nand_write_buf; - if (!chip->read_buf) + if (!chip->read_buf || chip->read_buf == nand_read_buf) chip->read_buf = busw ? nand_read_buf16 : nand_read_buf; if (!chip->scan_bbt) chip->scan_bbt = nand_default_bbt; --- linux-3.11.0.orig/drivers/mtd/ubi/wl.c +++ linux-3.11.0/drivers/mtd/ubi/wl.c @@ -1069,6 +1069,9 @@ if (!(e2->ec - e1->ec >= UBI_WL_THRESHOLD)) { dbg_wl("no WL needed: min used EC %d, max free EC %d", e1->ec, e2->ec); + + /* Give the unused PEB back */ + wl_tree_add(e2, &ubi->free); goto out_cancel; } self_check_in_wl_tree(ubi, e1, &ubi->used); --- linux-3.11.0.orig/drivers/edac/amd64_edac.c +++ linux-3.11.0/drivers/edac/amd64_edac.c @@ -2470,8 +2470,15 @@ layers[0].size = pvt->csels[0].b_cnt; layers[0].is_virt_csrow = true; layers[1].type = EDAC_MC_LAYER_CHANNEL; - layers[1].size = pvt->channel_count; + + /* + * Always allocate two channels since we can have setups with DIMMs on + * only one channel. Also, this simplifies handling later for the price + * of a couple of KBs tops. + */ + layers[1].size = 2; layers[1].is_virt_csrow = false; + mci = edac_mc_alloc(nid, ARRAY_SIZE(layers), layers, 0); if (!mci) goto err_siblings; --- linux-3.11.0.orig/drivers/pnp/isapnp/core.c +++ linux-3.11.0/drivers/pnp/isapnp/core.c @@ -41,6 +41,7 @@ #include #include #include +#include #include #include "../base.h" @@ -990,7 +991,7 @@ .disable = isapnp_disable_resources, }; -static int __init isapnp_init(void) +static int __init real_isapnp_init(void) { int cards; struct pnp_card *card; @@ -1084,6 +1085,16 @@ 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); + return 0; +} device_initcall(isapnp_init); /* format is: noisapnp */ --- linux-3.11.0.orig/drivers/scsi/storvsc_drv.c +++ linux-3.11.0/drivers/scsi/storvsc_drv.c @@ -1438,6 +1438,14 @@ sdevice->no_write_same = 1; + /* + * hyper-v lies about its capabilities indicating it is only SPC-2 + * compliant, but actually implements the core SPC-3 features. + * If we pretend to be SPC-3, we send RC16 which activates trim and + * will query the appropriate VPD pages to enable trim. + */ + sdevice->scsi_level = SCSI_SPC_3; + return 0; } @@ -1528,6 +1536,8 @@ * this. So, don't send it. */ case SET_WINDOW: + /* the host does not handle MAINTENANCE_IN preventing boot.*/ + case MAINTENANCE_IN: scmnd->result = ILLEGAL_REQUEST << 16; allowed = false; break; --- linux-3.11.0.orig/drivers/scsi/esp_scsi.h +++ linux-3.11.0/drivers/scsi/esp_scsi.h @@ -271,6 +271,7 @@ #define ESP_CMD_FLAG_AUTOSENSE 0x04 /* Doing automatic REQUEST_SENSE */ u8 tag[2]; + u8 orig_tag[2]; u8 status; u8 message; --- linux-3.11.0.orig/drivers/scsi/BusLogic.c +++ linux-3.11.0/drivers/scsi/BusLogic.c @@ -696,7 +696,7 @@ while ((pci_device = pci_get_device(PCI_VENDOR_ID_BUSLOGIC, PCI_DEVICE_ID_BUSLOGIC_MULTIMASTER, pci_device)) != NULL) { - struct blogic_adapter *adapter = adapter; + struct blogic_adapter *host_adapter = adapter; struct blogic_adapter_info adapter_info; enum blogic_isa_ioport mod_ioaddr_req; unsigned char bus; @@ -744,9 +744,9 @@ known and enabled, note that the particular Standard ISA I/O Address should not be probed. */ - adapter->io_addr = io_addr; - blogic_intreset(adapter); - if (blogic_cmd(adapter, BLOGIC_INQ_PCI_INFO, NULL, 0, + host_adapter->io_addr = io_addr; + blogic_intreset(host_adapter); + if (blogic_cmd(host_adapter, BLOGIC_INQ_PCI_INFO, NULL, 0, &adapter_info, sizeof(adapter_info)) == sizeof(adapter_info)) { if (adapter_info.isa_port < 6) @@ -762,7 +762,7 @@ I/O Address assigned at system initialization. */ mod_ioaddr_req = BLOGIC_IO_DISABLE; - blogic_cmd(adapter, BLOGIC_MOD_IOADDR, &mod_ioaddr_req, + blogic_cmd(host_adapter, BLOGIC_MOD_IOADDR, &mod_ioaddr_req, sizeof(mod_ioaddr_req), NULL, 0); /* For the first MultiMaster Host Adapter enumerated, @@ -779,12 +779,12 @@ fetch_localram.offset = BLOGIC_AUTOSCSI_BASE + 45; fetch_localram.count = sizeof(autoscsi_byte45); - blogic_cmd(adapter, BLOGIC_FETCH_LOCALRAM, + blogic_cmd(host_adapter, BLOGIC_FETCH_LOCALRAM, &fetch_localram, sizeof(fetch_localram), &autoscsi_byte45, sizeof(autoscsi_byte45)); - blogic_cmd(adapter, BLOGIC_GET_BOARD_ID, NULL, 0, &id, - sizeof(id)); + blogic_cmd(host_adapter, BLOGIC_GET_BOARD_ID, NULL, 0, + &id, sizeof(id)); if (id.fw_ver_digit1 == '5') force_scan_order = autoscsi_byte45.force_scan_order; --- linux-3.11.0.orig/drivers/scsi/esp_scsi.c +++ linux-3.11.0/drivers/scsi/esp_scsi.c @@ -530,7 +530,7 @@ static int esp_alloc_lun_tag(struct esp_cmd_entry *ent, struct esp_lun_data *lp) { - if (!ent->tag[0]) { + if (!ent->orig_tag[0]) { /* Non-tagged, slot already taken? */ if (lp->non_tagged_cmd) return -EBUSY; @@ -564,9 +564,9 @@ return -EBUSY; } - BUG_ON(lp->tagged_cmds[ent->tag[1]]); + BUG_ON(lp->tagged_cmds[ent->orig_tag[1]]); - lp->tagged_cmds[ent->tag[1]] = ent; + lp->tagged_cmds[ent->orig_tag[1]] = ent; lp->num_tagged++; return 0; @@ -575,9 +575,9 @@ static void esp_free_lun_tag(struct esp_cmd_entry *ent, struct esp_lun_data *lp) { - if (ent->tag[0]) { - BUG_ON(lp->tagged_cmds[ent->tag[1]] != ent); - lp->tagged_cmds[ent->tag[1]] = NULL; + if (ent->orig_tag[0]) { + BUG_ON(lp->tagged_cmds[ent->orig_tag[1]] != ent); + lp->tagged_cmds[ent->orig_tag[1]] = NULL; lp->num_tagged--; } else { BUG_ON(lp->non_tagged_cmd != ent); @@ -667,6 +667,8 @@ ent->tag[0] = 0; ent->tag[1] = 0; } + ent->orig_tag[0] = ent->tag[0]; + ent->orig_tag[1] = ent->tag[1]; if (esp_alloc_lun_tag(ent, lp) < 0) continue; --- linux-3.11.0.orig/drivers/scsi/sd.c +++ linux-3.11.0/drivers/scsi/sd.c @@ -2419,14 +2419,9 @@ } } - if (modepage == 0x3F) { - sd_printk(KERN_ERR, sdkp, "No Caching mode page " - "present\n"); - goto defaults; - } else if ((buffer[offset] & 0x3f) != modepage) { - sd_printk(KERN_ERR, sdkp, "Got wrong page\n"); - goto defaults; - } + sd_printk(KERN_ERR, sdkp, "No Caching mode page found\n"); + goto defaults; + Page_found: if (modepage == 8) { sdkp->WCE = ((buffer[offset + 2] & 0x04) != 0); @@ -2858,6 +2853,7 @@ gd->events |= DISK_EVENT_MEDIA_CHANGE; } + blk_pm_runtime_init(sdp->request_queue, dev); add_disk(gd); if (sdkp->capacity) sd_dif_config_host(sdkp); @@ -2866,7 +2862,6 @@ sd_printk(KERN_NOTICE, sdkp, "Attached SCSI %sdisk\n", sdp->removable ? "removable " : ""); - blk_pm_runtime_init(sdp->request_queue, dev); scsi_autopm_put_device(sdp); put_device(&sdkp->dev); } --- linux-3.11.0.orig/drivers/scsi/aacraid/linit.c +++ linux-3.11.0/drivers/scsi/aacraid/linit.c @@ -771,6 +771,8 @@ static int aac_compat_ioctl(struct scsi_device *sdev, int cmd, void __user *arg) { struct aac_dev *dev = (struct aac_dev *)sdev->host->hostdata; + if (!capable(CAP_SYS_RAWIO)) + return -EPERM; return aac_compat_do_ioctl(dev, cmd, (unsigned long)arg); } --- linux-3.11.0.orig/drivers/scsi/aacraid/commctrl.c +++ linux-3.11.0/drivers/scsi/aacraid/commctrl.c @@ -511,7 +511,8 @@ goto cleanup; } - if (fibsize > (dev->max_fib_size - sizeof(struct aac_fibhdr))) { + if ((fibsize < (sizeof(struct user_aac_srb) - sizeof(struct user_sgentry))) || + (fibsize > (dev->max_fib_size - sizeof(struct aac_fibhdr)))) { rcode = -EINVAL; goto cleanup; } --- linux-3.11.0.orig/drivers/scsi/mpt3sas/Makefile +++ linux-3.11.0/drivers/scsi/mpt3sas/Makefile @@ -1,5 +1,5 @@ # mpt3sas makefile -obj-m += mpt3sas.o +obj-$(CONFIG_SCSI_MPT3SAS) += mpt3sas.o mpt3sas-y += mpt3sas_base.o \ mpt3sas_config.o \ mpt3sas_scsih.o \ --- linux-3.11.0.orig/drivers/video/Kconfig +++ linux-3.11.0/drivers/video/Kconfig @@ -753,8 +753,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-3.11.0.orig/drivers/video/au1100fb.c +++ linux-3.11.0/drivers/video/au1100fb.c @@ -361,37 +361,13 @@ int au1100fb_fb_mmap(struct fb_info *fbi, struct vm_area_struct *vma) { struct au1100fb_device *fbdev; - unsigned int len; - unsigned long start=0, off; fbdev = to_au1100fb_device(fbi); - if (vma->vm_pgoff > (~0UL >> PAGE_SHIFT)) { - return -EINVAL; - } - - start = fbdev->fb_phys & PAGE_MASK; - len = PAGE_ALIGN((start & ~PAGE_MASK) + fbdev->fb_len); - - off = vma->vm_pgoff << PAGE_SHIFT; - - if ((vma->vm_end - vma->vm_start + off) > len) { - return -EINVAL; - } - - off += start; - vma->vm_pgoff = off >> PAGE_SHIFT; - vma->vm_page_prot = pgprot_noncached(vma->vm_page_prot); pgprot_val(vma->vm_page_prot) |= (6 << 9); //CCA=6 - if (io_remap_pfn_range(vma, vma->vm_start, off >> PAGE_SHIFT, - vma->vm_end - vma->vm_start, - vma->vm_page_prot)) { - return -EAGAIN; - } - - return 0; + return vm_iomap_memory(vma, fbdev->fb_phys, fbdev->fb_len); } static struct fb_ops au1100fb_ops = --- linux-3.11.0.orig/drivers/video/au1200fb.c +++ linux-3.11.0/drivers/video/au1200fb.c @@ -1233,34 +1233,13 @@ * method mainly to allow the use of the TLB streaming flag (CCA=6) */ static int au1200fb_fb_mmap(struct fb_info *info, struct vm_area_struct *vma) - { - unsigned int len; - unsigned long start=0, off; struct au1200fb_device *fbdev = info->par; - if (vma->vm_pgoff > (~0UL >> PAGE_SHIFT)) { - return -EINVAL; - } - - start = fbdev->fb_phys & PAGE_MASK; - len = PAGE_ALIGN((start & ~PAGE_MASK) + fbdev->fb_len); - - off = vma->vm_pgoff << PAGE_SHIFT; - - if ((vma->vm_end - vma->vm_start + off) > len) { - return -EINVAL; - } - - off += start; - vma->vm_pgoff = off >> PAGE_SHIFT; - vma->vm_page_prot = pgprot_noncached(vma->vm_page_prot); pgprot_val(vma->vm_page_prot) |= _CACHE_MASK; /* CCA=7 */ - return io_remap_pfn_range(vma, vma->vm_start, off >> PAGE_SHIFT, - vma->vm_end - vma->vm_start, - vma->vm_page_prot); + return vm_iomap_memory(vma, fbdev->fb_phys, fbdev->fb_len); } static void set_global(u_int cmd, struct au1200_lcd_global_regs_t *pdata) --- linux-3.11.0.orig/drivers/video/hyperv_fb.c +++ linux-3.11.0/drivers/video/hyperv_fb.c @@ -795,12 +795,21 @@ } +static DEFINE_PCI_DEVICE_TABLE(pci_stub_id_table) = { + { + .vendor = PCI_VENDOR_ID_MICROSOFT, + .device = PCI_DEVICE_ID_HYPERV_VIDEO, + }, + { /* end of list */ } +}; + static const struct hv_vmbus_device_id id_table[] = { /* Synthetic Video Device GUID */ {HV_SYNTHVID_GUID}, {} }; +MODULE_DEVICE_TABLE(pci, pci_stub_id_table); MODULE_DEVICE_TABLE(vmbus, id_table); static struct hv_driver hvfb_drv = { @@ -810,14 +819,43 @@ .remove = hvfb_remove, }; +static int hvfb_pci_stub_probe(struct pci_dev *pdev, + const struct pci_device_id *ent) +{ + return 0; +} + +static void hvfb_pci_stub_remove(struct pci_dev *pdev) +{ +} + +static struct pci_driver hvfb_pci_stub_driver = { + .name = KBUILD_MODNAME, + .id_table = pci_stub_id_table, + .probe = hvfb_pci_stub_probe, + .remove = hvfb_pci_stub_remove, +}; static int __init hvfb_drv_init(void) { - return vmbus_driver_register(&hvfb_drv); + int ret; + + ret = vmbus_driver_register(&hvfb_drv); + if (ret != 0) + return ret; + + ret = pci_register_driver(&hvfb_pci_stub_driver); + if (ret != 0) { + vmbus_driver_unregister(&hvfb_drv); + return ret; + } + + return 0; } static void __exit hvfb_drv_exit(void) { + pci_unregister_driver(&hvfb_pci_stub_driver); vmbus_driver_unregister(&hvfb_drv); } --- linux-3.11.0.orig/drivers/video/vesafb.c +++ linux-3.11.0/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 = { @@ -40,22 +46,44 @@ .vmode = FB_VMODE_NONINTERLACED, }; -static struct fb_fix_screeninfo vesafb_fix __initdata = { +static struct fb_fix_screeninfo vesafb_fix = { .id = "VESA VGA", .type = FB_TYPE_PACKED_PIXELS, .accel = FB_ACCEL_NONE, }; +#ifndef MODULE static int inverse __read_mostly; -static int mtrr __read_mostly; /* disable mtrr */ +#endif +static uint mtrr __read_mostly = 3; /* disable mtrr */ +static bool nomtrr __read_mostly; /* dummy */ 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 ypan __read_mostly; /* 0..nothing, 1..ypan, 2..ywrap */ +static bool pmi_setpal __read_mostly = true; /* pmi for palette changes ??? */ +static bool redraw __read_mostly; +static uint ypan __read_mostly; /* 0..nothing, 1..ypan, 2..ywrap */ +static bool 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, uint, 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, nomtrr, 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, @@ -192,6 +220,7 @@ .fb_imageblit = cfb_imageblit, }; +#ifndef MODULE static int __init vesafb_setup(char *options) { char *this_opt; @@ -211,9 +240,9 @@ else if (! strcmp(this_opt, "ywrap")) ypan=2; else if (! strcmp(this_opt, "vgapal")) - pmi_setpal=0; + pmi_setpal=false; else if (! strcmp(this_opt, "pmipal")) - pmi_setpal=1; + pmi_setpal=true; else if (! strncmp(this_opt, "mtrr:", 5)) mtrr = simple_strtoul(this_opt+5, NULL, 0); else if (! strcmp(this_opt, "nomtrr")) @@ -225,10 +254,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; @@ -287,13 +318,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); @@ -312,8 +344,10 @@ screen_info.vesapm_seg,screen_info.vesapm_off); } - if (screen_info.vesapm_seg < 0xc000) - ypan = pmi_setpal = 0; /* not available or some DOS TSR ... */ + if (screen_info.vesapm_seg < 0xc000) { + ypan = 0; + pmi_setpal = false; /* not available or some DOS TSR ... */ + } if (ypan || pmi_setpal) { unsigned short *pmi_base; @@ -334,7 +368,8 @@ * memory area and pass it in the ES register to the BIOS function. */ printk(KERN_INFO "vesafb: can't handle memory requests, pmi disabled\n"); - ypan = pmi_setpal = 0; + ypan = 0; + pmi_setpal = false; } } } @@ -423,17 +458,15 @@ } if (type) { - int rc; - /* Find the largest power-of-two */ temp_size = roundup_pow_of_two(temp_size); /* 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 @@ -495,7 +528,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", }, @@ -506,11 +559,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) @@ -530,6 +590,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-3.11.0.orig/drivers/video/backlight/atmel-pwm-bl.c +++ linux-3.11.0/drivers/video/backlight/atmel-pwm-bl.c @@ -118,7 +118,7 @@ .update_status = atmel_pwm_bl_set_intensity, }; -static int __init atmel_pwm_bl_probe(struct platform_device *pdev) +static int atmel_pwm_bl_probe(struct platform_device *pdev) { struct backlight_properties props; const struct atmel_pwm_bl_platform_data *pdata; @@ -202,7 +202,7 @@ return retval; } -static int __exit atmel_pwm_bl_remove(struct platform_device *pdev) +static int atmel_pwm_bl_remove(struct platform_device *pdev) { struct atmel_pwm_bl *pwmbl = platform_get_drvdata(pdev); @@ -220,10 +220,11 @@ .name = "atmel-pwm-bl", }, /* REVISIT add suspend() and resume() */ - .remove = __exit_p(atmel_pwm_bl_remove), + .probe = atmel_pwm_bl_probe, + .remove = atmel_pwm_bl_remove, }; -module_platform_driver_probe(atmel_pwm_bl_driver, atmel_pwm_bl_probe); +module_platform_driver(atmel_pwm_bl_driver); MODULE_AUTHOR("Hans-Christian egtvedt "); MODULE_DESCRIPTION("Atmel PWM backlight driver"); --- linux-3.11.0.orig/drivers/mfd/rts5227.c +++ linux-3.11.0/drivers/mfd/rts5227.c @@ -29,6 +29,60 @@ #include "rtsx_pcr.h" +static void rts5227_fill_driving(struct rtsx_pcr *pcr, u8 voltage) +{ + u8 driving_3v3[4][3] = { + {0x13, 0x13, 0x13}, + {0x96, 0x96, 0x96}, + {0x7F, 0x7F, 0x7F}, + {0x96, 0x96, 0x96}, + }; + u8 driving_1v8[4][3] = { + {0x99, 0x99, 0x99}, + {0xAA, 0xAA, 0xAA}, + {0xFE, 0xFE, 0xFE}, + {0xB3, 0xB3, 0xB3}, + }; + u8 (*driving)[3], drive_sel; + + if (voltage == OUTPUT_3V3) { + driving = driving_3v3; + drive_sel = pcr->sd30_drive_sel_3v3; + } else { + driving = driving_1v8; + drive_sel = pcr->sd30_drive_sel_1v8; + } + + rtsx_pci_add_cmd(pcr, WRITE_REG_CMD, SD30_CLK_DRIVE_SEL, + 0xFF, driving[drive_sel][0]); + rtsx_pci_add_cmd(pcr, WRITE_REG_CMD, SD30_CMD_DRIVE_SEL, + 0xFF, driving[drive_sel][1]); + rtsx_pci_add_cmd(pcr, WRITE_REG_CMD, SD30_DAT_DRIVE_SEL, + 0xFF, driving[drive_sel][2]); +} + +static void rts5227_fetch_vendor_settings(struct rtsx_pcr *pcr) +{ + u32 reg; + + rtsx_pci_read_config_dword(pcr, PCR_SETTING_REG1, ®); + dev_dbg(&(pcr->pci->dev), "Cfg 0x%x: 0x%x\n", PCR_SETTING_REG1, reg); + + if (!rtsx_vendor_setting_valid(reg)) + return; + + pcr->aspm_en = rtsx_reg_to_aspm(reg); + pcr->sd30_drive_sel_1v8 = rtsx_reg_to_sd30_drive_sel_1v8(reg); + pcr->card_drive_sel &= 0x3F; + pcr->card_drive_sel |= rtsx_reg_to_card_drive_sel(reg); + + rtsx_pci_read_config_dword(pcr, PCR_SETTING_REG2, ®); + dev_dbg(&(pcr->pci->dev), "Cfg 0x%x: 0x%x\n", PCR_SETTING_REG2, reg); + pcr->sd30_drive_sel_3v3 = rtsx_reg_to_sd30_drive_sel_3v3(reg); + if (rtsx_reg_check_reverse_socket(reg)) + pcr->flags |= PCR_REVERSE_SOCKET; +} + static int rts5227_extra_init_hw(struct rtsx_pcr *pcr) { u16 cap; @@ -48,17 +102,15 @@ rtsx_pci_add_cmd(pcr, WRITE_REG_CMD, LTR_CTL, 0xFF, 0xA3); /* Configure OBFF */ rtsx_pci_add_cmd(pcr, WRITE_REG_CMD, OBFF_CFG, 0x03, 0x03); - /* Configure force_clock_req - * Maybe We should define 0xFF03 as some name - */ - rtsx_pci_add_cmd(pcr, WRITE_REG_CMD, 0xFF03, 0x08, 0x08); - /* Correct driving */ - rtsx_pci_add_cmd(pcr, WRITE_REG_CMD, - SD30_CLK_DRIVE_SEL, 0xFF, 0x96); - rtsx_pci_add_cmd(pcr, WRITE_REG_CMD, - SD30_CMD_DRIVE_SEL, 0xFF, 0x96); - rtsx_pci_add_cmd(pcr, WRITE_REG_CMD, - SD30_DAT_DRIVE_SEL, 0xFF, 0x96); + /* Configure driving */ + rts5227_fill_driving(pcr, OUTPUT_3V3); + /* Configure force_clock_req */ + if (pcr->flags & PCR_REVERSE_SOCKET) + rtsx_pci_add_cmd(pcr, WRITE_REG_CMD, + AUTOLOAD_CFG_BASE + 3, 0xB8, 0xB8); + else + rtsx_pci_add_cmd(pcr, WRITE_REG_CMD, + AUTOLOAD_CFG_BASE + 3, 0xB8, 0x88); return rtsx_pci_send_cmd(pcr, 100); } @@ -131,13 +183,11 @@ static int rts5227_switch_output_voltage(struct rtsx_pcr *pcr, u8 voltage) { int err; - u8 drive_sel; if (voltage == OUTPUT_3V3) { err = rtsx_pci_write_phy_register(pcr, 0x08, 0x4FC0 | 0x24); if (err < 0) return err; - drive_sel = 0x96; } else if (voltage == OUTPUT_1V8) { err = rtsx_pci_write_phy_register(pcr, 0x11, 0x3C02); if (err < 0) @@ -145,23 +195,18 @@ err = rtsx_pci_write_phy_register(pcr, 0x08, 0x4C80 | 0x24); if (err < 0) return err; - drive_sel = 0xB3; } else { return -EINVAL; } /* set pad drive */ rtsx_pci_init_cmd(pcr); - rtsx_pci_add_cmd(pcr, WRITE_REG_CMD, SD30_CLK_DRIVE_SEL, - 0xFF, drive_sel); - rtsx_pci_add_cmd(pcr, WRITE_REG_CMD, SD30_CMD_DRIVE_SEL, - 0xFF, drive_sel); - rtsx_pci_add_cmd(pcr, WRITE_REG_CMD, SD30_DAT_DRIVE_SEL, - 0xFF, drive_sel); + rts5227_fill_driving(pcr, voltage); return rtsx_pci_send_cmd(pcr, 100); } static const struct pcr_ops rts5227_pcr_ops = { + .fetch_vendor_settings = rts5227_fetch_vendor_settings, .extra_init_hw = rts5227_extra_init_hw, .optimize_phy = rts5227_optimize_phy, .turn_on_led = rts5227_turn_on_led, @@ -227,6 +272,12 @@ pcr->num_slots = 2; pcr->ops = &rts5227_pcr_ops; + pcr->flags = 0; + pcr->card_drive_sel = RTSX_CARD_DRIVE_DEFAULT; + pcr->sd30_drive_sel_1v8 = CFG_DRIVER_TYPE_B; + pcr->sd30_drive_sel_3v3 = CFG_DRIVER_TYPE_B; + pcr->aspm_en = ASPM_L1_EN; + pcr->sd_pull_ctl_enable_tbl = rts5227_sd_pull_ctl_enable_tbl; pcr->sd_pull_ctl_disable_tbl = rts5227_sd_pull_ctl_disable_tbl; pcr->ms_pull_ctl_enable_tbl = rts5227_ms_pull_ctl_enable_tbl; --- linux-3.11.0.orig/drivers/mfd/rts5249.c +++ linux-3.11.0/drivers/mfd/rts5249.c @@ -34,6 +34,60 @@ return val & 0x0F; } +static void rts5249_fill_driving(struct rtsx_pcr *pcr, u8 voltage) +{ + u8 driving_3v3[4][3] = { + {0x11, 0x11, 0x11}, + {0x55, 0x55, 0x5C}, + {0x99, 0x99, 0x92}, + {0x99, 0x99, 0x92}, + }; + u8 driving_1v8[4][3] = { + {0x3C, 0x3C, 0x3C}, + {0xB3, 0xB3, 0xB3}, + {0xFE, 0xFE, 0xFE}, + {0xC4, 0xC4, 0xC4}, + }; + u8 (*driving)[3], drive_sel; + + if (voltage == OUTPUT_3V3) { + driving = driving_3v3; + drive_sel = pcr->sd30_drive_sel_3v3; + } else { + driving = driving_1v8; + drive_sel = pcr->sd30_drive_sel_1v8; + } + + rtsx_pci_add_cmd(pcr, WRITE_REG_CMD, SD30_CLK_DRIVE_SEL, + 0xFF, driving[drive_sel][0]); + rtsx_pci_add_cmd(pcr, WRITE_REG_CMD, SD30_CMD_DRIVE_SEL, + 0xFF, driving[drive_sel][1]); + rtsx_pci_add_cmd(pcr, WRITE_REG_CMD, SD30_DAT_DRIVE_SEL, + 0xFF, driving[drive_sel][2]); +} + +static void rts5249_fetch_vendor_settings(struct rtsx_pcr *pcr) +{ + u32 reg; + + rtsx_pci_read_config_dword(pcr, PCR_SETTING_REG1, ®); + dev_dbg(&(pcr->pci->dev), "Cfg 0x%x: 0x%x\n", PCR_SETTING_REG1, reg); + + if (!rtsx_vendor_setting_valid(reg)) + return; + + pcr->aspm_en = rtsx_reg_to_aspm(reg); + pcr->sd30_drive_sel_1v8 = rtsx_reg_to_sd30_drive_sel_1v8(reg); + pcr->card_drive_sel &= 0x3F; + pcr->card_drive_sel |= rtsx_reg_to_card_drive_sel(reg); + + rtsx_pci_read_config_dword(pcr, PCR_SETTING_REG2, ®); + dev_dbg(&(pcr->pci->dev), "Cfg 0x%x: 0x%x\n", PCR_SETTING_REG2, reg); + pcr->sd30_drive_sel_3v3 = rtsx_reg_to_sd30_drive_sel_3v3(reg); + if (rtsx_reg_check_reverse_socket(reg)) + pcr->flags |= PCR_REVERSE_SOCKET; +} + static int rts5249_extra_init_hw(struct rtsx_pcr *pcr) { rtsx_pci_init_cmd(pcr); @@ -45,13 +99,14 @@ rtsx_pci_add_cmd(pcr, WRITE_REG_CMD, LDO_PWR_SEL, 0x03, 0x01); /* LED shine disabled, set initial shine cycle period */ rtsx_pci_add_cmd(pcr, WRITE_REG_CMD, OLT_LED_CTL, 0x0F, 0x02); - /* Correct driving */ - rtsx_pci_add_cmd(pcr, WRITE_REG_CMD, - SD30_CLK_DRIVE_SEL, 0xFF, 0x99); - rtsx_pci_add_cmd(pcr, WRITE_REG_CMD, - SD30_CMD_DRIVE_SEL, 0xFF, 0x99); - rtsx_pci_add_cmd(pcr, WRITE_REG_CMD, - SD30_DAT_DRIVE_SEL, 0xFF, 0x92); + /* Configure driving */ + rts5249_fill_driving(pcr, OUTPUT_3V3); + if (pcr->flags & PCR_REVERSE_SOCKET) + rtsx_pci_add_cmd(pcr, WRITE_REG_CMD, + AUTOLOAD_CFG_BASE + 3, 0xB0, 0xB0); + else + rtsx_pci_add_cmd(pcr, WRITE_REG_CMD, + AUTOLOAD_CFG_BASE + 3, 0xB0, 0x80); return rtsx_pci_send_cmd(pcr, 100); } @@ -60,13 +115,57 @@ { int err; - err = rtsx_pci_write_phy_register(pcr, PHY_REG_REV, 0xFE46); + err = rtsx_pci_write_phy_register(pcr, PHY_REG_REV, + PHY_REG_REV_RESV | PHY_REG_REV_RXIDLE_LATCHED | + PHY_REG_REV_P1_EN | PHY_REG_REV_RXIDLE_EN | + PHY_REG_REV_RX_PWST | PHY_REG_REV_CLKREQ_DLY_TIMER_1_0 | + PHY_REG_REV_STOP_CLKRD | PHY_REG_REV_STOP_CLKWR); if (err < 0) return err; msleep(1); - return rtsx_pci_write_phy_register(pcr, PHY_BPCR, 0x05C0); + err = rtsx_pci_write_phy_register(pcr, PHY_BPCR, + PHY_BPCR_IBRXSEL | PHY_BPCR_IBTXSEL | + PHY_BPCR_IB_FILTER | PHY_BPCR_CMIRROR_EN); + if (err < 0) + return err; + err = rtsx_pci_write_phy_register(pcr, PHY_PCR, + PHY_PCR_FORCE_CODE | PHY_PCR_OOBS_CALI_50 | + PHY_PCR_OOBS_VCM_08 | PHY_PCR_OOBS_SEN_90 | + PHY_PCR_RSSI_EN); + if (err < 0) + return err; + err = rtsx_pci_write_phy_register(pcr, PHY_RCR2, + PHY_RCR2_EMPHASE_EN | PHY_RCR2_NADJR | + PHY_RCR2_CDR_CP_10 | PHY_RCR2_CDR_SR_2 | + PHY_RCR2_FREQSEL_12 | PHY_RCR2_CPADJEN | + PHY_RCR2_CDR_SC_8 | PHY_RCR2_CALIB_LATE); + if (err < 0) + return err; + err = rtsx_pci_write_phy_register(pcr, PHY_FLD4, + PHY_FLD4_FLDEN_SEL | PHY_FLD4_REQ_REF | + PHY_FLD4_RXAMP_OFF | PHY_FLD4_REQ_ADDA | + PHY_FLD4_BER_COUNT | PHY_FLD4_BER_TIMER | + PHY_FLD4_BER_CHK_EN); + if (err < 0) + return err; + err = rtsx_pci_write_phy_register(pcr, PHY_RDR, PHY_RDR_RXDSEL_1_9); + if (err < 0) + return err; + err = rtsx_pci_write_phy_register(pcr, PHY_RCR1, + PHY_RCR1_ADP_TIME | PHY_RCR1_VCO_COARSE); + if (err < 0) + return err; + err = rtsx_pci_write_phy_register(pcr, PHY_FLD3, + PHY_FLD3_TIMER_4 | PHY_FLD3_TIMER_6 | + PHY_FLD3_RXDELINK); + if (err < 0) + return err; + return rtsx_pci_write_phy_register(pcr, PHY_TUNE, + PHY_TUNE_TUNEREF_1_0 | PHY_TUNE_VBGSEL_1252 | + PHY_TUNE_SDBUS_33 | PHY_TUNE_TUNED18 | + PHY_TUNE_TUNED12); } static int rts5249_turn_on_led(struct rtsx_pcr *pcr) @@ -129,15 +228,11 @@ static int rts5249_switch_output_voltage(struct rtsx_pcr *pcr, u8 voltage) { int err; - u8 clk_drive, cmd_drive, dat_drive; if (voltage == OUTPUT_3V3) { err = rtsx_pci_write_phy_register(pcr, PHY_TUNE, 0x4FC0 | 0x24); if (err < 0) return err; - clk_drive = 0x99; - cmd_drive = 0x99; - dat_drive = 0x92; } else if (voltage == OUTPUT_1V8) { err = rtsx_pci_write_phy_register(pcr, PHY_BACR, 0x3C02); if (err < 0) @@ -145,25 +240,18 @@ err = rtsx_pci_write_phy_register(pcr, PHY_TUNE, 0x4C40 | 0x24); if (err < 0) return err; - clk_drive = 0xb3; - cmd_drive = 0xb3; - dat_drive = 0xb3; } else { return -EINVAL; } /* set pad drive */ rtsx_pci_init_cmd(pcr); - rtsx_pci_add_cmd(pcr, WRITE_REG_CMD, SD30_CLK_DRIVE_SEL, - 0xFF, clk_drive); - rtsx_pci_add_cmd(pcr, WRITE_REG_CMD, SD30_CMD_DRIVE_SEL, - 0xFF, cmd_drive); - rtsx_pci_add_cmd(pcr, WRITE_REG_CMD, SD30_DAT_DRIVE_SEL, - 0xFF, dat_drive); + rts5249_fill_driving(pcr, voltage); return rtsx_pci_send_cmd(pcr, 100); } static const struct pcr_ops rts5249_pcr_ops = { + .fetch_vendor_settings = rts5249_fetch_vendor_settings, .extra_init_hw = rts5249_extra_init_hw, .optimize_phy = rts5249_optimize_phy, .turn_on_led = rts5249_turn_on_led, @@ -233,6 +321,12 @@ pcr->num_slots = 2; pcr->ops = &rts5249_pcr_ops; + pcr->flags = 0; + pcr->card_drive_sel = RTSX_CARD_DRIVE_DEFAULT; + pcr->sd30_drive_sel_1v8 = CFG_DRIVER_TYPE_C; + pcr->sd30_drive_sel_3v3 = CFG_DRIVER_TYPE_B; + pcr->aspm_en = ASPM_L1_EN; + pcr->ic_version = rts5249_get_ic_version(pcr); pcr->sd_pull_ctl_enable_tbl = rts5249_sd_pull_ctl_enable_tbl; pcr->sd_pull_ctl_disable_tbl = rts5249_sd_pull_ctl_disable_tbl; --- linux-3.11.0.orig/drivers/mfd/rts5209.c +++ linux-3.11.0/drivers/mfd/rts5209.c @@ -34,18 +34,28 @@ return val & 0x0F; } -static void rts5209_init_vendor_cfg(struct rtsx_pcr *pcr) +static void rts5209_fetch_vendor_settings(struct rtsx_pcr *pcr) { - u32 val; + u32 reg; - rtsx_pci_read_config_dword(pcr, 0x724, &val); - dev_dbg(&(pcr->pci->dev), "Cfg 0x724: 0x%x\n", val); + rtsx_pci_read_config_dword(pcr, PCR_SETTING_REG1, ®); + dev_dbg(&(pcr->pci->dev), "Cfg 0x%x: 0x%x\n", PCR_SETTING_REG1, reg); - if (!(val & 0x80)) { - if (val & 0x08) - pcr->ms_pmos = false; - else - pcr->ms_pmos = true; + if (rts5209_vendor_setting1_valid(reg)) { + if (rts5209_reg_check_ms_pmos(reg)) + pcr->flags |= PCR_MS_PMOS; + pcr->aspm_en = rts5209_reg_to_aspm(reg); + } + + rtsx_pci_read_config_dword(pcr, PCR_SETTING_REG2, ®); + dev_dbg(&(pcr->pci->dev), "Cfg 0x%x: 0x%x\n", PCR_SETTING_REG2, reg); + + if (rts5209_vendor_setting2_valid(reg)) { + pcr->sd30_drive_sel_1v8 = + rts5209_reg_to_sd30_drive_sel_1v8(reg); + pcr->sd30_drive_sel_3v3 = + rts5209_reg_to_sd30_drive_sel_3v3(reg); + pcr->card_drive_sel = rts5209_reg_to_card_drive_sel(reg); } } @@ -57,6 +67,9 @@ rtsx_pci_add_cmd(pcr, WRITE_REG_CMD, CARD_GPIO, 0xFF, 0x03); /* Configure GPIO as output */ rtsx_pci_add_cmd(pcr, WRITE_REG_CMD, CARD_GPIO_DIR, 0xFF, 0x03); + /* Configure driving */ + rtsx_pci_add_cmd(pcr, WRITE_REG_CMD, SD30_DRIVE_SEL, + 0xFF, pcr->sd30_drive_sel_3v3); return rtsx_pci_send_cmd(pcr, 100); } @@ -95,7 +108,7 @@ partial_pwr_on = SD_PARTIAL_POWER_ON; pwr_on = SD_POWER_ON; - if (pcr->ms_pmos && (card == RTSX_MS_CARD)) { + if ((pcr->flags & PCR_MS_PMOS) && (card == RTSX_MS_CARD)) { pwr_mask = MS_POWER_MASK; partial_pwr_on = MS_PARTIAL_POWER_ON; pwr_on = MS_POWER_ON; @@ -131,7 +144,7 @@ pwr_mask = SD_POWER_MASK; pwr_off = SD_POWER_OFF; - if (pcr->ms_pmos && (card == RTSX_MS_CARD)) { + if ((pcr->flags & PCR_MS_PMOS) && (card == RTSX_MS_CARD)) { pwr_mask = MS_POWER_MASK; pwr_off = MS_POWER_OFF; } @@ -140,7 +153,7 @@ rtsx_pci_add_cmd(pcr, WRITE_REG_CMD, CARD_PWR_CTL, pwr_mask | PMOS_STRG_MASK, pwr_off | PMOS_STRG_400mA); rtsx_pci_add_cmd(pcr, WRITE_REG_CMD, PWR_GATE_CTRL, - LDO3318_PWR_MASK, 0X06); + LDO3318_PWR_MASK, 0x06); return rtsx_pci_send_cmd(pcr, 100); } @@ -150,7 +163,7 @@ if (voltage == OUTPUT_3V3) { err = rtsx_pci_write_register(pcr, - SD30_DRIVE_SEL, 0x07, DRIVER_TYPE_D); + SD30_DRIVE_SEL, 0x07, pcr->sd30_drive_sel_3v3); if (err < 0) return err; err = rtsx_pci_write_phy_register(pcr, 0x08, 0x4FC0 | 0x24); @@ -158,7 +171,7 @@ return err; } else if (voltage == OUTPUT_1V8) { err = rtsx_pci_write_register(pcr, - SD30_DRIVE_SEL, 0x07, DRIVER_TYPE_B); + SD30_DRIVE_SEL, 0x07, pcr->sd30_drive_sel_1v8); if (err < 0) return err; err = rtsx_pci_write_phy_register(pcr, 0x08, 0x4C40 | 0x24); @@ -172,6 +185,7 @@ } static const struct pcr_ops rts5209_pcr_ops = { + .fetch_vendor_settings = rts5209_fetch_vendor_settings, .extra_init_hw = rts5209_extra_init_hw, .optimize_phy = rts5209_optimize_phy, .turn_on_led = rts5209_turn_on_led, @@ -242,7 +256,11 @@ pcr->num_slots = 2; pcr->ops = &rts5209_pcr_ops; - rts5209_init_vendor_cfg(pcr); + pcr->flags = 0; + pcr->card_drive_sel = RTS5209_CARD_DRIVE_DEFAULT; + pcr->sd30_drive_sel_1v8 = DRIVER_TYPE_B; + pcr->sd30_drive_sel_3v3 = DRIVER_TYPE_D; + pcr->aspm_en = ASPM_L1_EN; pcr->ic_version = rts5209_get_ic_version(pcr); pcr->sd_pull_ctl_enable_tbl = rts5209_sd_pull_ctl_enable_tbl; --- linux-3.11.0.orig/drivers/mfd/rtl8411.c +++ linux-3.11.0/drivers/mfd/rtl8411.c @@ -47,19 +47,70 @@ return 0; } +static void rtl8411_fetch_vendor_settings(struct rtsx_pcr *pcr) +{ + u32 reg1; + u8 reg3; + + rtsx_pci_read_config_dword(pcr, PCR_SETTING_REG1, ®1); + dev_dbg(&(pcr->pci->dev), "Cfg 0x%x: 0x%x\n", PCR_SETTING_REG1, reg1); + + if (!rtsx_vendor_setting_valid(reg1)) + return; + + pcr->aspm_en = rtsx_reg_to_aspm(reg1); + pcr->sd30_drive_sel_1v8 = + map_sd_drive(rtsx_reg_to_sd30_drive_sel_1v8(reg1)); + pcr->card_drive_sel &= 0x3F; + pcr->card_drive_sel |= rtsx_reg_to_card_drive_sel(reg1); + + rtsx_pci_read_config_byte(pcr, PCR_SETTING_REG3, ®3); + dev_dbg(&(pcr->pci->dev), "Cfg 0x%x: 0x%x\n", PCR_SETTING_REG3, reg3); + pcr->sd30_drive_sel_3v3 = rtl8411_reg_to_sd30_drive_sel_3v3(reg3); +} + +static void rtl8411b_fetch_vendor_settings(struct rtsx_pcr *pcr) +{ + u32 reg; + + rtsx_pci_read_config_dword(pcr, PCR_SETTING_REG1, ®); + dev_dbg(&(pcr->pci->dev), "Cfg 0x%x: 0x%x\n", PCR_SETTING_REG1, reg); + + if (!rtsx_vendor_setting_valid(reg)) + return; + + pcr->aspm_en = rtsx_reg_to_aspm(reg); + pcr->sd30_drive_sel_1v8 = + map_sd_drive(rtsx_reg_to_sd30_drive_sel_1v8(reg)); + pcr->sd30_drive_sel_3v3 = + map_sd_drive(rtl8411b_reg_to_sd30_drive_sel_3v3(reg)); +} + static int rtl8411_extra_init_hw(struct rtsx_pcr *pcr) { - return rtsx_pci_write_register(pcr, CD_PAD_CTL, + rtsx_pci_init_cmd(pcr); + + rtsx_pci_add_cmd(pcr, WRITE_REG_CMD, SD30_DRIVE_SEL, + 0xFF, pcr->sd30_drive_sel_3v3); + rtsx_pci_add_cmd(pcr, WRITE_REG_CMD, CD_PAD_CTL, CD_DISABLE_MASK | CD_AUTO_DISABLE, CD_ENABLE); + + return rtsx_pci_send_cmd(pcr, 100); } static int rtl8411b_extra_init_hw(struct rtsx_pcr *pcr) { - if (rtl8411b_is_qfn48(pcr)) - rtsx_pci_write_register(pcr, CARD_PULL_CTL3, 0xFF, 0xF5); + rtsx_pci_init_cmd(pcr); - return rtsx_pci_write_register(pcr, CD_PAD_CTL, + if (rtl8411b_is_qfn48(pcr)) + rtsx_pci_add_cmd(pcr, WRITE_REG_CMD, + CARD_PULL_CTL3, 0xFF, 0xF5); + rtsx_pci_add_cmd(pcr, WRITE_REG_CMD, SD30_DRIVE_SEL, + 0xFF, pcr->sd30_drive_sel_3v3); + rtsx_pci_add_cmd(pcr, WRITE_REG_CMD, CD_PAD_CTL, CD_DISABLE_MASK | CD_AUTO_DISABLE, CD_ENABLE); + + return rtsx_pci_send_cmd(pcr, 100); } static int rtl8411_turn_on_led(struct rtsx_pcr *pcr) @@ -141,13 +192,13 @@ mask = (BPP_REG_TUNED18 << BPP_TUNED18_SHIFT_8411) | BPP_PAD_MASK; if (voltage == OUTPUT_3V3) { err = rtsx_pci_write_register(pcr, - SD30_DRIVE_SEL, 0x07, DRIVER_TYPE_D); + SD30_DRIVE_SEL, 0x07, pcr->sd30_drive_sel_3v3); if (err < 0) return err; val = (BPP_ASIC_3V3 << BPP_TUNED18_SHIFT_8411) | BPP_PAD_3V3; } else if (voltage == OUTPUT_1V8) { err = rtsx_pci_write_register(pcr, - SD30_DRIVE_SEL, 0x07, DRIVER_TYPE_B); + SD30_DRIVE_SEL, 0x07, pcr->sd30_drive_sel_1v8); if (err < 0) return err; val = (BPP_ASIC_1V8 << BPP_TUNED18_SHIFT_8411) | BPP_PAD_1V8; @@ -222,6 +273,7 @@ } static const struct pcr_ops rtl8411_pcr_ops = { + .fetch_vendor_settings = rtl8411_fetch_vendor_settings, .extra_init_hw = rtl8411_extra_init_hw, .optimize_phy = NULL, .turn_on_led = rtl8411_turn_on_led, @@ -236,6 +288,7 @@ }; static const struct pcr_ops rtl8411b_pcr_ops = { + .fetch_vendor_settings = rtl8411b_fetch_vendor_settings, .extra_init_hw = rtl8411b_extra_init_hw, .optimize_phy = NULL, .turn_on_led = rtl8411_turn_on_led, @@ -385,6 +438,12 @@ pcr->num_slots = 2; pcr->ops = &rtl8411_pcr_ops; + pcr->flags = 0; + pcr->card_drive_sel = RTL8411_CARD_DRIVE_DEFAULT; + pcr->sd30_drive_sel_1v8 = DRIVER_TYPE_B; + pcr->sd30_drive_sel_3v3 = DRIVER_TYPE_D; + pcr->aspm_en = ASPM_L1_EN; + pcr->ic_version = rtl8411_get_ic_version(pcr); pcr->sd_pull_ctl_enable_tbl = rtl8411_sd_pull_ctl_enable_tbl; pcr->sd_pull_ctl_disable_tbl = rtl8411_sd_pull_ctl_disable_tbl; @@ -398,6 +457,12 @@ pcr->num_slots = 2; pcr->ops = &rtl8411b_pcr_ops; + pcr->flags = 0; + pcr->card_drive_sel = RTL8411_CARD_DRIVE_DEFAULT; + pcr->sd30_drive_sel_1v8 = DRIVER_TYPE_B; + pcr->sd30_drive_sel_3v3 = DRIVER_TYPE_D; + pcr->aspm_en = ASPM_L1_EN; + pcr->ic_version = rtl8411_get_ic_version(pcr); if (rtl8411b_is_qfn48(pcr)) { --- linux-3.11.0.orig/drivers/mfd/rtsx_pcr.c +++ linux-3.11.0/drivers/mfd/rtsx_pcr.c @@ -73,6 +73,9 @@ pcr->state = PDEV_STAT_RUN; if (pcr->ops->enable_auto_blink) pcr->ops->enable_auto_blink(pcr); + + if (pcr->aspm_en) + rtsx_pci_write_config_byte(pcr, LCTLR, 0); } mod_delayed_work(system_wq, &pcr->idle_work, msecs_to_jiffies(200)); @@ -717,7 +720,7 @@ [RTSX_MS_CARD] = MS_EXIST }; - if (!pcr->ms_pmos) { + if (!(pcr->flags & PCR_MS_PMOS)) { /* When using single PMOS, accessing card is not permitted * if the existing card is not the designated one. */ @@ -918,6 +921,9 @@ if (pcr->ops->turn_off_led) pcr->ops->turn_off_led(pcr); + if (pcr->aspm_en) + rtsx_pci_write_config_byte(pcr, LCTLR, pcr->aspm_en); + mutex_unlock(&pcr->pcr_mutex); } @@ -956,8 +962,8 @@ /* Reset delink mode */ rtsx_pci_add_cmd(pcr, WRITE_REG_CMD, CHANGE_LINK_STATE, 0x0A, 0); /* Card driving select */ - rtsx_pci_add_cmd(pcr, WRITE_REG_CMD, SD30_DRIVE_SEL, - 0x07, DRIVER_TYPE_D); + rtsx_pci_add_cmd(pcr, WRITE_REG_CMD, CARD_DRIVE_SEL, + 0xFF, pcr->card_drive_sel); /* Enable SSC Clock */ rtsx_pci_add_cmd(pcr, WRITE_REG_CMD, SSC_CTL1, 0xFF, SSC_8X_EN | SSC_SEL_4M); @@ -989,6 +995,8 @@ if (err < 0) return err; + rtsx_pci_write_config_byte(pcr, LCTLR, 0); + /* Enable clk_request_n to enable clock power management */ rtsx_pci_write_config_byte(pcr, 0x81, 1); /* Enter L1 when host tx idle */ @@ -1053,6 +1061,18 @@ if (!pcr->slots) return -ENOMEM; + if (pcr->ops->fetch_vendor_settings) + pcr->ops->fetch_vendor_settings(pcr); + + dev_dbg(&(pcr->pci->dev), "pcr->aspm_en = 0x%x\n", pcr->aspm_en); + dev_dbg(&(pcr->pci->dev), "pcr->sd30_drive_sel_1v8 = 0x%x\n", + pcr->sd30_drive_sel_1v8); + dev_dbg(&(pcr->pci->dev), "pcr->sd30_drive_sel_3v3 = 0x%x\n", + pcr->sd30_drive_sel_3v3); + dev_dbg(&(pcr->pci->dev), "pcr->card_drive_sel = 0x%x\n", + pcr->card_drive_sel); + dev_dbg(&(pcr->pci->dev), "pcr->flags = 0x%x\n", pcr->flags); + pcr->state = PDEV_STAT_IDLE; err = rtsx_pci_init_hw(pcr); if (err < 0) { --- linux-3.11.0.orig/drivers/mfd/rtsx_pcr.h +++ linux-3.11.0/drivers/mfd/rtsx_pcr.h @@ -35,4 +35,33 @@ void rts5249_init_params(struct rtsx_pcr *pcr); void rtl8411b_init_params(struct rtsx_pcr *pcr); +static inline u8 map_sd_drive(int idx) +{ + u8 sd_drive[4] = { + 0x01, /* Type D */ + 0x02, /* Type C */ + 0x05, /* Type A */ + 0x03 /* Type B */ + }; + + return sd_drive[idx]; +} + +#define rtsx_vendor_setting_valid(reg) (!((reg) & 0x1000000)) +#define rts5209_vendor_setting1_valid(reg) (!((reg) & 0x80)) +#define rts5209_vendor_setting2_valid(reg) ((reg) & 0x80) + +#define rtsx_reg_to_aspm(reg) (((reg) >> 28) & 0x03) +#define rtsx_reg_to_sd30_drive_sel_1v8(reg) (((reg) >> 26) & 0x03) +#define rtsx_reg_to_sd30_drive_sel_3v3(reg) (((reg) >> 5) & 0x03) +#define rtsx_reg_to_card_drive_sel(reg) ((((reg) >> 25) & 0x01) << 6) +#define rtsx_reg_check_reverse_socket(reg) ((reg) & 0x4000) +#define rts5209_reg_to_aspm(reg) (((reg) >> 5) & 0x03) +#define rts5209_reg_check_ms_pmos(reg) (!((reg) & 0x08)) +#define rts5209_reg_to_sd30_drive_sel_1v8(reg) (((reg) >> 3) & 0x07) +#define rts5209_reg_to_sd30_drive_sel_3v3(reg) ((reg) & 0x07) +#define rts5209_reg_to_card_drive_sel(reg) ((reg) >> 8) +#define rtl8411_reg_to_sd30_drive_sel_3v3(reg) (((reg) >> 5) & 0x07) +#define rtl8411b_reg_to_sd30_drive_sel_3v3(reg) ((reg) & 0x03) + #endif --- linux-3.11.0.orig/drivers/mfd/rts5229.c +++ linux-3.11.0/drivers/mfd/rts5229.c @@ -34,6 +34,28 @@ return val & 0x0F; } +static void rts5229_fetch_vendor_settings(struct rtsx_pcr *pcr) +{ + u32 reg; + + rtsx_pci_read_config_dword(pcr, PCR_SETTING_REG1, ®); + dev_dbg(&(pcr->pci->dev), "Cfg 0x%x: 0x%x\n", PCR_SETTING_REG1, reg); + + if (!rtsx_vendor_setting_valid(reg)) + return; + + pcr->aspm_en = rtsx_reg_to_aspm(reg); + pcr->sd30_drive_sel_1v8 = + map_sd_drive(rtsx_reg_to_sd30_drive_sel_1v8(reg)); + pcr->card_drive_sel &= 0x3F; + pcr->card_drive_sel |= rtsx_reg_to_card_drive_sel(reg); + + rtsx_pci_read_config_dword(pcr, PCR_SETTING_REG2, ®); + dev_dbg(&(pcr->pci->dev), "Cfg 0x%x: 0x%x\n", PCR_SETTING_REG2, reg); + pcr->sd30_drive_sel_3v3 = + map_sd_drive(rtsx_reg_to_sd30_drive_sel_3v3(reg)); +} + static int rts5229_extra_init_hw(struct rtsx_pcr *pcr) { rtsx_pci_init_cmd(pcr); @@ -45,6 +67,9 @@ rtsx_pci_add_cmd(pcr, WRITE_REG_CMD, LDO_PWR_SEL, 0x03, 0x01); /* LED shine disabled, set initial shine cycle period */ rtsx_pci_add_cmd(pcr, WRITE_REG_CMD, OLT_LED_CTL, 0x0F, 0x02); + /* Configure driving */ + rtsx_pci_add_cmd(pcr, WRITE_REG_CMD, SD30_DRIVE_SEL, + 0xFF, pcr->sd30_drive_sel_3v3); return rtsx_pci_send_cmd(pcr, 100); } @@ -110,7 +135,7 @@ SD_POWER_MASK | PMOS_STRG_MASK, SD_POWER_OFF | PMOS_STRG_400mA); rtsx_pci_add_cmd(pcr, WRITE_REG_CMD, PWR_GATE_CTRL, - LDO3318_PWR_MASK, 0X00); + LDO3318_PWR_MASK, 0x00); return rtsx_pci_send_cmd(pcr, 100); } @@ -120,7 +145,7 @@ if (voltage == OUTPUT_3V3) { err = rtsx_pci_write_register(pcr, - SD30_DRIVE_SEL, 0x07, DRIVER_TYPE_D); + SD30_DRIVE_SEL, 0x07, pcr->sd30_drive_sel_3v3); if (err < 0) return err; err = rtsx_pci_write_phy_register(pcr, 0x08, 0x4FC0 | 0x24); @@ -128,7 +153,7 @@ return err; } else if (voltage == OUTPUT_1V8) { err = rtsx_pci_write_register(pcr, - SD30_DRIVE_SEL, 0x07, DRIVER_TYPE_B); + SD30_DRIVE_SEL, 0x07, pcr->sd30_drive_sel_1v8); if (err < 0) return err; err = rtsx_pci_write_phy_register(pcr, 0x08, 0x4C40 | 0x24); @@ -142,6 +167,7 @@ } static const struct pcr_ops rts5229_pcr_ops = { + .fetch_vendor_settings = rts5229_fetch_vendor_settings, .extra_init_hw = rts5229_extra_init_hw, .optimize_phy = rts5229_optimize_phy, .turn_on_led = rts5229_turn_on_led, @@ -221,6 +247,12 @@ pcr->num_slots = 2; pcr->ops = &rts5229_pcr_ops; + pcr->flags = 0; + pcr->card_drive_sel = RTSX_CARD_DRIVE_DEFAULT; + pcr->sd30_drive_sel_1v8 = DRIVER_TYPE_B; + pcr->sd30_drive_sel_3v3 = DRIVER_TYPE_D; + pcr->aspm_en = ASPM_L1_EN; + pcr->ic_version = rts5229_get_ic_version(pcr); if (pcr->ic_version == IC_VER_C) { pcr->sd_pull_ctl_enable_tbl = rts5229_sd_pull_ctl_enable_tbl2; --- linux-3.11.0.orig/drivers/of/base.c +++ linux-3.11.0/drivers/of/base.c @@ -1629,6 +1629,7 @@ ap = dt_alloc(sizeof(*ap) + len + 1, 4); if (!ap) continue; + memset(ap, 0, sizeof(*ap) + len + 1); ap->alias = start; of_alias_add(ap, np, id, start, len); } --- linux-3.11.0.orig/drivers/infiniband/ulp/srpt/ib_srpt.c +++ linux-3.11.0/drivers/infiniband/ulp/srpt/ib_srpt.c @@ -1588,7 +1588,7 @@ int resp_data_len; int resp_len; - resp_data_len = (rsp_code == SRP_TSK_MGMT_SUCCESS) ? 0 : 4; + resp_data_len = 4; resp_len = sizeof(*srp_rsp) + resp_data_len; srp_rsp = ioctx->ioctx.buf; @@ -1600,11 +1600,9 @@ + atomic_xchg(&ch->req_lim_delta, 0)); srp_rsp->tag = tag; - if (rsp_code != SRP_TSK_MGMT_SUCCESS) { - srp_rsp->flags |= SRP_RSP_FLAG_RSPVALID; - srp_rsp->resp_data_len = cpu_to_be32(resp_data_len); - srp_rsp->data[3] = rsp_code; - } + srp_rsp->flags |= SRP_RSP_FLAG_RSPVALID; + srp_rsp->resp_data_len = cpu_to_be32(resp_data_len); + srp_rsp->data[3] = rsp_code; return resp_len; } @@ -2358,6 +2356,8 @@ transport_deregister_session(se_sess); ch->sess = NULL; + ib_destroy_cm_id(ch->cm_id); + srpt_destroy_ch_ib(ch); srpt_free_ioctx_ring((struct srpt_ioctx **)ch->ioctx_ring, @@ -2368,8 +2368,6 @@ list_del(&ch->list); spin_unlock_irq(&sdev->spinlock); - ib_destroy_cm_id(ch->cm_id); - if (ch->release_done) complete(ch->release_done); --- linux-3.11.0.orig/drivers/ata/libata-eh.c +++ linux-3.11.0/drivers/ata/libata-eh.c @@ -1322,14 +1322,14 @@ * should be retried. To be used from EH. * * SCSI midlayer limits the number of retries to scmd->allowed. - * scmd->retries is decremented for commands which get retried + * scmd->allowed is incremented for commands which get retried * due to unrelated failures (qc->err_mask is zero). */ void ata_eh_qc_retry(struct ata_queued_cmd *qc) { struct scsi_cmnd *scmd = qc->scsicmd; - if (!qc->err_mask && scmd->retries) - scmd->retries--; + if (!qc->err_mask) + scmd->allowed++; __ata_eh_qc_complete(qc); } --- linux-3.11.0.orig/drivers/dma/amba-pl08x.c +++ linux-3.11.0/drivers/dma/amba-pl08x.c @@ -133,6 +133,8 @@ u8 buswidth; }; +#define IS_BUS_ALIGNED(bus) IS_ALIGNED((bus)->addr, (bus)->buswidth) + /** * struct pl08x_phy_chan - holder for the physical channels * @id: physical index to this channel @@ -845,10 +847,13 @@ pl08x_choose_master_bus(&bd, &mbus, &sbus, cctl); - dev_vdbg(&pl08x->adev->dev, "src=0x%08x%s/%u dst=0x%08x%s/%u len=%zu\n", - bd.srcbus.addr, cctl & PL080_CONTROL_SRC_INCR ? "+" : "", + dev_vdbg(&pl08x->adev->dev, + "src=0x%08llx%s/%u dst=0x%08llx%s/%u len=%zu\n", + (u64)bd.srcbus.addr, + cctl & PL080_CONTROL_SRC_INCR ? "+" : "", bd.srcbus.buswidth, - bd.dstbus.addr, cctl & PL080_CONTROL_DST_INCR ? "+" : "", + (u64)bd.dstbus.addr, + cctl & PL080_CONTROL_DST_INCR ? "+" : "", bd.dstbus.buswidth, bd.remainder); dev_vdbg(&pl08x->adev->dev, "mbus=%s sbus=%s\n", @@ -886,8 +891,8 @@ return 0; } - if ((bd.srcbus.addr % bd.srcbus.buswidth) || - (bd.dstbus.addr % bd.dstbus.buswidth)) { + if (!IS_BUS_ALIGNED(&bd.srcbus) || + !IS_BUS_ALIGNED(&bd.dstbus)) { dev_err(&pl08x->adev->dev, "%s src & dst address must be aligned to src" " & dst width if peripheral is flow controller", @@ -908,9 +913,9 @@ */ if (bd.remainder < mbus->buswidth) early_bytes = bd.remainder; - else if ((mbus->addr) % (mbus->buswidth)) { - early_bytes = mbus->buswidth - (mbus->addr) % - (mbus->buswidth); + else if (!IS_BUS_ALIGNED(mbus)) { + early_bytes = mbus->buswidth - + (mbus->addr & (mbus->buswidth - 1)); if ((bd.remainder - early_bytes) < mbus->buswidth) early_bytes = bd.remainder; } @@ -928,7 +933,7 @@ * Master now aligned * - if slave is not then we must set its width down */ - if (sbus->addr % sbus->buswidth) { + if (!IS_BUS_ALIGNED(sbus)) { dev_dbg(&pl08x->adev->dev, "%s set down bus width to one byte\n", __func__); --- linux-3.11.0.orig/drivers/dma/imx-dma.c +++ linux-3.11.0/drivers/dma/imx-dma.c @@ -437,17 +437,18 @@ struct imxdma_engine *imxdma = imxdmac->imxdma; int chno = imxdmac->channel; struct imxdma_desc *desc; + unsigned long flags; - spin_lock(&imxdma->lock); + spin_lock_irqsave(&imxdma->lock, flags); if (list_empty(&imxdmac->ld_active)) { - spin_unlock(&imxdma->lock); + spin_unlock_irqrestore(&imxdma->lock, flags); goto out; } desc = list_first_entry(&imxdmac->ld_active, struct imxdma_desc, node); - spin_unlock(&imxdma->lock); + spin_unlock_irqrestore(&imxdma->lock, flags); if (desc->sg) { u32 tmp; @@ -519,7 +520,6 @@ { struct imxdma_channel *imxdmac = to_imxdma_chan(d->desc.chan); struct imxdma_engine *imxdma = imxdmac->imxdma; - unsigned long flags; int slot = -1; int i; @@ -527,7 +527,6 @@ switch (d->type) { case IMXDMA_DESC_INTERLEAVED: /* Try to get a free 2D slot */ - spin_lock_irqsave(&imxdma->lock, flags); for (i = 0; i < IMX_DMA_2D_SLOTS; i++) { if ((imxdma->slots_2d[i].count > 0) && ((imxdma->slots_2d[i].xsr != d->x) || @@ -537,10 +536,8 @@ slot = i; break; } - if (slot < 0) { - spin_unlock_irqrestore(&imxdma->lock, flags); + if (slot < 0) return -EBUSY; - } imxdma->slots_2d[slot].xsr = d->x; imxdma->slots_2d[slot].ysr = d->y; @@ -549,7 +546,6 @@ imxdmac->slot_2d = slot; imxdmac->enabled_2d = true; - spin_unlock_irqrestore(&imxdma->lock, flags); if (slot == IMX_DMA_2D_SLOT_A) { d->config_mem &= ~CCR_MSEL_B; @@ -625,18 +621,17 @@ struct imxdma_channel *imxdmac = (void *)data; struct imxdma_engine *imxdma = imxdmac->imxdma; struct imxdma_desc *desc; + unsigned long flags; - spin_lock(&imxdma->lock); + spin_lock_irqsave(&imxdma->lock, flags); if (list_empty(&imxdmac->ld_active)) { /* Someone might have called terminate all */ - goto out; + spin_unlock_irqrestore(&imxdma->lock, flags); + return; } desc = list_first_entry(&imxdmac->ld_active, struct imxdma_desc, node); - if (desc->desc.callback) - desc->desc.callback(desc->desc.callback_param); - /* If we are dealing with a cyclic descriptor, keep it on ld_active * and dont mark the descriptor as complete. * Only in non-cyclic cases it would be marked as complete @@ -663,7 +658,11 @@ __func__, imxdmac->channel); } out: - spin_unlock(&imxdma->lock); + spin_unlock_irqrestore(&imxdma->lock, flags); + + if (desc->desc.callback) + desc->desc.callback(desc->desc.callback_param); + } static int imxdma_control(struct dma_chan *chan, enum dma_ctrl_cmd cmd, @@ -885,7 +884,7 @@ kfree(imxdmac->sg_list); imxdmac->sg_list = kcalloc(periods + 1, - sizeof(struct scatterlist), GFP_KERNEL); + sizeof(struct scatterlist), GFP_ATOMIC); if (!imxdmac->sg_list) return NULL; --- linux-3.11.0.orig/drivers/i2c/busses/i2c-omap.c +++ linux-3.11.0/drivers/i2c/busses/i2c-omap.c @@ -944,6 +944,9 @@ /* * ProDB0017052: Clear ARDY bit twice */ + if (stat & OMAP_I2C_STAT_ARDY) + omap_i2c_ack_stat(dev, OMAP_I2C_STAT_ARDY); + if (stat & (OMAP_I2C_STAT_ARDY | OMAP_I2C_STAT_NACK | OMAP_I2C_STAT_AL)) { omap_i2c_ack_stat(dev, (OMAP_I2C_STAT_RRDY | --- linux-3.11.0.orig/drivers/i2c/busses/i2c-ismt.c +++ linux-3.11.0/drivers/i2c/busses/i2c-ismt.c @@ -393,6 +393,9 @@ desc = &priv->hw[priv->head]; + /* Initialize the DMA buffer */ + memset(priv->dma_buffer, 0, sizeof(priv->dma_buffer)); + /* Initialize the descriptor */ memset(desc, 0, sizeof(struct ismt_desc)); desc->tgtaddr_rw = ISMT_DESC_ADDR_RW(addr, read_write); --- linux-3.11.0.orig/drivers/hv/hv_kvp.c +++ linux-3.11.0/drivers/hv/hv_kvp.c @@ -29,6 +29,16 @@ #include +/* + * Pre win8 version numbers used in ws2008 and ws 2008 r2 (win7) + */ +#define WIN7_SRV_MAJOR 3 +#define WIN7_SRV_MINOR 0 +#define WIN7_SRV_MAJOR_MINOR (WIN7_SRV_MAJOR << 16 | WIN7_SRV_MINOR) + +#define WIN8_SRV_MAJOR 4 +#define WIN8_SRV_MINOR 0 +#define WIN8_SRV_MAJOR_MINOR (WIN8_SRV_MAJOR << 16 | WIN8_SRV_MINOR) /* * Global state maintained for transaction that is being processed. @@ -593,8 +603,19 @@ sizeof(struct vmbuspipe_hdr)]; if (icmsghdrp->icmsgtype == ICMSGTYPE_NEGOTIATE) { + /* + * We start with win8 version and if the host cannot + * support that we use the previous version. + */ + if (vmbus_prep_negotiate_resp(icmsghdrp, negop, + recv_buffer, UTIL_FW_MAJOR_MINOR, + WIN8_SRV_MAJOR_MINOR)) + goto done; + vmbus_prep_negotiate_resp(icmsghdrp, negop, - recv_buffer, MAX_SRV_VER, MAX_SRV_VER); + recv_buffer, UTIL_FW_MAJOR_MINOR, + WIN7_SRV_MAJOR_MINOR); + } else { kvp_msg = (struct hv_kvp_msg *)&recv_buffer[ sizeof(struct vmbuspipe_hdr) + @@ -626,6 +647,7 @@ return; } +done: icmsghdrp->icflags = ICMSGHDRFLAG_TRANSACTION | ICMSGHDRFLAG_RESPONSE; --- linux-3.11.0.orig/drivers/hv/hv_balloon.c +++ linux-3.11.0/drivers/hv/hv_balloon.c @@ -825,7 +825,6 @@ memset(&resp, 0, sizeof(struct dm_hot_add_response)); resp.hdr.type = DM_MEM_HOT_ADD_RESPONSE; resp.hdr.size = sizeof(struct dm_hot_add_response); - resp.hdr.trans_id = atomic_inc_return(&trans_id); #ifdef CONFIG_MEMORY_HOTPLUG pg_start = dm->ha_wrk.ha_page_range.finfo.start_page; @@ -887,6 +886,7 @@ pr_info("Memory hot add failed\n"); dm->state = DM_INITIALIZED; + resp.hdr.trans_id = atomic_inc_return(&trans_id); vmbus_sendpacket(dm->dev->channel, &resp, sizeof(struct dm_hot_add_response), (unsigned long)NULL, @@ -1081,7 +1081,6 @@ bl_resp = (struct dm_balloon_response *)send_buffer; memset(send_buffer, 0, PAGE_SIZE); bl_resp->hdr.type = DM_BALLOON_RESPONSE; - bl_resp->hdr.trans_id = atomic_inc_return(&trans_id); bl_resp->hdr.size = sizeof(struct dm_balloon_response); bl_resp->more_pages = 1; @@ -1109,6 +1108,7 @@ */ do { + bl_resp->hdr.trans_id = atomic_inc_return(&trans_id); ret = vmbus_sendpacket(dm_device.dev->channel, bl_resp, bl_resp->hdr.size, --- linux-3.11.0.orig/drivers/hv/hv.c +++ linux-3.11.0/drivers/hv/hv.c @@ -31,6 +31,14 @@ #include #include "hyperv_vmbus.h" +#ifndef PKG_ABI +/* + * Preserve the ability to 'make deb-pkg' since PKG_ABI is provided + * by the Ubuntu build rules. + */ +#define PKG_ABI 0 +#endif + /* The one and only */ struct hv_context hv_context = { .synic_initialized = false, @@ -148,7 +156,7 @@ /* * Write our OS ID. */ - hv_context.guestid = generate_guest_id(0, LINUX_VERSION_CODE, 0); + hv_context.guestid = generate_guest_id(0x80 /*Canonical*/, LINUX_VERSION_CODE, PKG_ABI); wrmsrl(HV_X64_MSR_GUEST_OS_ID, hv_context.guestid); /* See if the hypercall page is already set */ --- linux-3.11.0.orig/drivers/hv/hv_util.c +++ linux-3.11.0/drivers/hv/hv_util.c @@ -28,6 +28,18 @@ #include #include +#define SHUTDOWN_MAJOR 3 +#define SHUTDOWN_MINOR 0 +#define SHUTDOWN_MAJOR_MINOR (SHUTDOWN_MAJOR << 16 | SHUTDOWN_MINOR) + +#define TIMESYNCH_MAJOR 3 +#define TIMESYNCH_MINOR 0 +#define TIMESYNCH_MAJOR_MINOR (TIMESYNCH_MAJOR << 16 | TIMESYNCH_MINOR) + +#define HEARTBEAT_MAJOR 3 +#define HEARTBEAT_MINOR 0 +#define HEARTBEAT_MAJOR_MINOR (HEARTBEAT_MAJOR << 16 | HEARTBEAT_MINOR) + static void shutdown_onchannelcallback(void *context); static struct hv_util_service util_shutdown = { .util_cb = shutdown_onchannelcallback, @@ -87,7 +99,8 @@ if (icmsghdrp->icmsgtype == ICMSGTYPE_NEGOTIATE) { vmbus_prep_negotiate_resp(icmsghdrp, negop, - shut_txf_buf, MAX_SRV_VER, MAX_SRV_VER); + shut_txf_buf, UTIL_FW_MAJOR_MINOR, + SHUTDOWN_MAJOR_MINOR); } else { shutdown_msg = (struct shutdown_msg_data *)&shut_txf_buf[ @@ -213,7 +226,8 @@ if (icmsghdrp->icmsgtype == ICMSGTYPE_NEGOTIATE) { vmbus_prep_negotiate_resp(icmsghdrp, NULL, time_txf_buf, - MAX_SRV_VER, MAX_SRV_VER); + UTIL_FW_MAJOR_MINOR, + TIMESYNCH_MAJOR_MINOR); } else { timedatap = (struct ictimesync_data *)&time_txf_buf[ sizeof(struct vmbuspipe_hdr) + @@ -253,7 +267,8 @@ if (icmsghdrp->icmsgtype == ICMSGTYPE_NEGOTIATE) { vmbus_prep_negotiate_resp(icmsghdrp, NULL, - hbeat_txf_buf, MAX_SRV_VER, MAX_SRV_VER); + hbeat_txf_buf, UTIL_FW_MAJOR_MINOR, + HEARTBEAT_MAJOR_MINOR); } else { heartbeat_msg = (struct heartbeat_msg_data *)&hbeat_txf_buf[ --- linux-3.11.0.orig/drivers/hv/channel_mgmt.c +++ linux-3.11.0/drivers/hv/channel_mgmt.c @@ -48,30 +48,39 @@ * @negop is of type &struct icmsg_negotiate. * Set up and fill in default negotiate response message. * - * The max_fw_version specifies the maximum framework version that - * we can support and max _srv_version specifies the maximum service - * version we can support. A special value MAX_SRV_VER can be - * specified to indicate that we can handle the maximum version - * exposed by the host. + * The fw_version specifies the framework version that + * we can support and srv_version specifies the service + * version we can support. * * Mainly used by Hyper-V drivers. */ -void vmbus_prep_negotiate_resp(struct icmsg_hdr *icmsghdrp, +bool vmbus_prep_negotiate_resp(struct icmsg_hdr *icmsghdrp, struct icmsg_negotiate *negop, u8 *buf, - int max_fw_version, int max_srv_version) + int fw_version, int srv_version) { - int icframe_vercnt; - int icmsg_vercnt; + int icframe_major, icframe_minor; + int icmsg_major, icmsg_minor; + int fw_major, fw_minor; + int srv_major, srv_minor; int i; + bool found_match = false; icmsghdrp->icmsgsize = 0x10; + fw_major = (fw_version >> 16); + fw_minor = (fw_version & 0xFFFF); + + srv_major = (srv_version >> 16); + srv_minor = (srv_version & 0xFFFF); negop = (struct icmsg_negotiate *)&buf[ sizeof(struct vmbuspipe_hdr) + sizeof(struct icmsg_hdr)]; - icframe_vercnt = negop->icframe_vercnt; - icmsg_vercnt = negop->icmsg_vercnt; + icframe_major = negop->icframe_vercnt; + icframe_minor = 0; + + icmsg_major = negop->icmsg_vercnt; + icmsg_minor = 0; /* * Select the framework version number we will @@ -79,26 +88,48 @@ */ for (i = 0; i < negop->icframe_vercnt; i++) { - if (negop->icversion_data[i].major <= max_fw_version) - icframe_vercnt = negop->icversion_data[i].major; + if ((negop->icversion_data[i].major == fw_major) && + (negop->icversion_data[i].minor == fw_minor)) { + icframe_major = negop->icversion_data[i].major; + icframe_minor = negop->icversion_data[i].minor; + found_match = true; + } } + if (!found_match) + goto fw_error; + + found_match = false; + for (i = negop->icframe_vercnt; (i < negop->icframe_vercnt + negop->icmsg_vercnt); i++) { - if (negop->icversion_data[i].major <= max_srv_version) - icmsg_vercnt = negop->icversion_data[i].major; + if ((negop->icversion_data[i].major == srv_major) && + (negop->icversion_data[i].minor == srv_minor)) { + icmsg_major = negop->icversion_data[i].major; + icmsg_minor = negop->icversion_data[i].minor; + found_match = true; + } } /* - * Respond with the maximum framework and service + * Respond with the framework and service * version numbers we can support. */ - negop->icframe_vercnt = 1; - negop->icmsg_vercnt = 1; - negop->icversion_data[0].major = icframe_vercnt; - negop->icversion_data[0].minor = 0; - negop->icversion_data[1].major = icmsg_vercnt; - negop->icversion_data[1].minor = 0; + +fw_error: + if (!found_match) { + negop->icframe_vercnt = 0; + negop->icmsg_vercnt = 0; + } else { + negop->icframe_vercnt = 1; + negop->icmsg_vercnt = 1; + } + + negop->icversion_data[0].major = icframe_major; + negop->icversion_data[0].minor = icframe_minor; + negop->icversion_data[1].major = icmsg_major; + negop->icversion_data[1].minor = icmsg_minor; + return found_match; } EXPORT_SYMBOL_GPL(vmbus_prep_negotiate_resp); @@ -172,7 +203,8 @@ struct vmbus_channel *primary_channel; struct vmbus_channel_relid_released msg; - vmbus_device_unregister(channel->device_obj); + if (channel->device_obj) + vmbus_device_unregister(channel->device_obj); memset(&msg, 0, sizeof(struct vmbus_channel_relid_released)); msg.child_relid = channel->offermsg.child_relid; msg.header.msgtype = CHANNELMSG_RELID_RELEASED; @@ -185,7 +217,7 @@ } else { primary_channel = channel->primary_channel; spin_lock_irqsave(&primary_channel->sc_lock, flags); - list_del(&channel->listentry); + list_del(&channel->sc_list); spin_unlock_irqrestore(&primary_channel->sc_lock, flags); } free_channel(channel); @@ -262,6 +294,13 @@ } /* + * This state is used to indicate a successful open + * so that when we do close the channel normally, we + * can cleanup properly + */ + newchannel->state = CHANNEL_OPEN_STATE; + + /* * Start the process of binding this offer to the driver * We need to set the DeviceObject field before calling * vmbus_child_dev_add() @@ -287,13 +326,6 @@ kfree(newchannel->device_obj); free_channel(newchannel); - } else { - /* - * This state is used to indicate a successful open - * so that when we do close the channel normally, we - * can cleanup properly - */ - newchannel->state = CHANNEL_OPEN_STATE; } } --- linux-3.11.0.orig/drivers/hv/hv_snapshot.c +++ linux-3.11.0/drivers/hv/hv_snapshot.c @@ -24,6 +24,10 @@ #include #include +#define VSS_MAJOR 5 +#define VSS_MINOR 0 +#define VSS_MAJOR_MINOR (VSS_MAJOR << 16 | VSS_MINOR) + /* @@ -186,18 +190,8 @@ if (icmsghdrp->icmsgtype == ICMSGTYPE_NEGOTIATE) { vmbus_prep_negotiate_resp(icmsghdrp, negop, - recv_buffer, MAX_SRV_VER, MAX_SRV_VER); - /* - * We currently negotiate the highest number the - * host has presented. If this version is not - * atleast 5.0, reject. - */ - negop = (struct icmsg_negotiate *)&recv_buffer[ - sizeof(struct vmbuspipe_hdr) + - sizeof(struct icmsg_hdr)]; - - if (negop->icversion_data[1].major < 5) - negop->icframe_vercnt = 0; + recv_buffer, UTIL_FW_MAJOR_MINOR, + VSS_MAJOR_MINOR); } else { vss_msg = (struct hv_vss_msg *)&recv_buffer[ sizeof(struct vmbuspipe_hdr) + --- linux-3.11.0.orig/drivers/hwmon/k10temp.c +++ linux-3.11.0/drivers/hwmon/k10temp.c @@ -1,5 +1,5 @@ /* - * k10temp.c - AMD Family 10h/11h/12h/14h/15h processor hardware monitoring + * k10temp.c - AMD Family 10h/11h/12h/14h/15h/16h processor hardware monitoring * * Copyright (c) 2009 Clemens Ladisch * @@ -211,6 +211,7 @@ { PCI_VDEVICE(AMD, PCI_DEVICE_ID_AMD_CNB17H_F3) }, { PCI_VDEVICE(AMD, PCI_DEVICE_ID_AMD_15H_NB_F3) }, { PCI_VDEVICE(AMD, PCI_DEVICE_ID_AMD_15H_M10H_F3) }, + { PCI_VDEVICE(AMD, PCI_DEVICE_ID_AMD_16H_NB_F3) }, {} }; MODULE_DEVICE_TABLE(pci, k10temp_id_table); --- linux-3.11.0.orig/drivers/hwmon/Kconfig +++ linux-3.11.0/drivers/hwmon/Kconfig @@ -296,8 +296,8 @@ If you say yes here you get support for the temperature sensor(s) inside your CPU. Supported are later revisions of the AMD Family 10h and all revisions of the AMD Family 11h, - 12h (Llano), 14h (Brazos) and 15h (Bulldozer/Trinity) - microarchitectures. + 12h (Llano), 14h (Brazos), 15h (Bulldozer/Trinity) and + 16h (Kabini) microarchitectures. This driver can also be built as a module. If so, the module will be called k10temp. --- linux-3.11.0.orig/drivers/hwmon/applesmc.c +++ linux-3.11.0/drivers/hwmon/applesmc.c @@ -230,6 +230,7 @@ static int read_smc(u8 cmd, const char *key, u8 *buffer, u8 len) { + u8 status, data = 0; int i; if (send_command(cmd) || send_argument(key)) { @@ -237,6 +238,7 @@ return -EIO; } + /* This has no effect on newer (2012) SMCs */ if (send_byte(len, APPLESMC_DATA_PORT)) { pr_warn("%.4s: read len fail\n", key); return -EIO; @@ -250,6 +252,17 @@ buffer[i] = inb(APPLESMC_DATA_PORT); } + /* Read the data port until bit0 is cleared */ + for (i = 0; i < 16; i++) { + udelay(APPLESMC_MIN_WAIT); + status = inb(APPLESMC_CMD_PORT); + if (!(status & 0x01)) + break; + data = inb(APPLESMC_DATA_PORT); + } + if (i) + pr_warn("flushed %d bytes, last value is: %d\n", i, data); + return 0; } @@ -525,16 +538,25 @@ { struct applesmc_registers *s = &smcreg; bool left_light_sensor, right_light_sensor; + unsigned int count; u8 tmp[1]; int ret; if (s->init_complete) return 0; - ret = read_register_count(&s->key_count); + ret = read_register_count(&count); if (ret) return ret; + if (s->cache && s->key_count != count) { + pr_warn("key count changed from %d to %d\n", + s->key_count, count); + kfree(s->cache); + s->cache = NULL; + } + s->key_count = count; + if (!s->cache) s->cache = kcalloc(s->key_count, sizeof(*s->cache), GFP_KERNEL); if (!s->cache) --- linux-3.11.0.orig/drivers/base/core.c +++ linux-3.11.0/drivers/base/core.c @@ -2033,7 +2033,7 @@ */ void device_shutdown(void) { - struct device *dev; + struct device *dev, *parent; spin_lock(&devices_kset->list_lock); /* @@ -2050,7 +2050,7 @@ * prevent it from being freed because parent's * lock is to be held */ - get_device(dev->parent); + parent = get_device(dev->parent); get_device(dev); /* * Make sure the device is off the kset list, in the @@ -2060,8 +2060,8 @@ spin_unlock(&devices_kset->list_lock); /* hold lock to avoid race with probe/release */ - if (dev->parent) - device_lock(dev->parent); + if (parent) + device_lock(parent); device_lock(dev); /* Don't allow any more runtime suspends */ @@ -2079,11 +2079,11 @@ } device_unlock(dev); - if (dev->parent) - device_unlock(dev->parent); + if (parent) + device_unlock(parent); put_device(dev); - put_device(dev->parent); + put_device(parent); spin_lock(&devices_kset->list_lock); } --- linux-3.11.0.orig/drivers/base/firmware_class.c +++ linux-3.11.0/drivers/base/firmware_class.c @@ -868,8 +868,15 @@ goto err_del_dev; } + mutex_lock(&fw_lock); + list_add(&buf->pending_list, &pending_fw_head); + mutex_unlock(&fw_lock); + retval = device_create_file(f_dev, &dev_attr_loading); if (retval) { + mutex_lock(&fw_lock); + list_del_init(&buf->pending_list); + mutex_unlock(&fw_lock); dev_err(f_dev, "%s: device_create_file failed\n", __func__); goto err_del_bin_attr; } @@ -884,10 +891,6 @@ kobject_uevent(&fw_priv->dev.kobj, KOBJ_ADD); } - mutex_lock(&fw_lock); - list_add(&buf->pending_list, &pending_fw_head); - mutex_unlock(&fw_lock); - wait_for_completion(&buf->completion); cancel_delayed_work_sync(&fw_priv->timeout_work); --- linux-3.11.0.orig/drivers/base/regmap/regmap-debugfs.c +++ linux-3.11.0/drivers/base/regmap/regmap-debugfs.c @@ -85,8 +85,8 @@ unsigned int reg_offset; /* Suppress the cache if we're using a subrange */ - if (from) - return from; + if (base) + return base; /* * If we don't have a cache build one so we don't have to do a --- linux-3.11.0.orig/drivers/staging/zram/zram_drv.c +++ linux-3.11.0/drivers/staging/zram/zram_drv.c @@ -445,6 +445,14 @@ goto out; } + /* + * zram_slot_free_notify could miss free so that let's + * double check. + */ + if (unlikely(meta->table[index].handle || + zram_test_flag(meta, index, ZRAM_ZERO))) + zram_free_page(zram, index); + ret = lzo1x_1_compress(uncmem, PAGE_SIZE, src, &clen, meta->compress_workmem); @@ -504,6 +512,20 @@ return ret; } +static void handle_pending_slot_free(struct zram *zram) +{ + struct zram_slot_free *free_rq; + + spin_lock(&zram->slot_free_lock); + while (zram->slot_free_rq) { + free_rq = zram->slot_free_rq; + zram->slot_free_rq = free_rq->next; + zram_free_page(zram, free_rq->index); + kfree(free_rq); + } + spin_unlock(&zram->slot_free_lock); +} + static int zram_bvec_rw(struct zram *zram, struct bio_vec *bvec, u32 index, int offset, struct bio *bio, int rw) { @@ -511,10 +533,12 @@ if (rw == READ) { down_read(&zram->lock); + handle_pending_slot_free(zram); ret = zram_bvec_read(zram, bvec, index, offset, bio); up_read(&zram->lock); } else { down_write(&zram->lock); + handle_pending_slot_free(zram); ret = zram_bvec_write(zram, bvec, index, offset); up_write(&zram->lock); } @@ -522,11 +546,13 @@ return ret; } -static void zram_reset_device(struct zram *zram) +static void zram_reset_device(struct zram *zram, bool reset_capacity) { size_t index; struct zram_meta *meta; + flush_work(&zram->free_work); + down_write(&zram->init_lock); if (!zram->init_done) { up_write(&zram->init_lock); @@ -551,7 +577,8 @@ memset(&zram->stats, 0, sizeof(zram->stats)); zram->disksize = 0; - set_capacity(zram->disk, 0); + if (reset_capacity) + set_capacity(zram->disk, 0); up_write(&zram->init_lock); } @@ -620,6 +647,9 @@ zram = dev_to_zram(dev); bdev = bdget_disk(zram->disk, 0); + if (!bdev) + return -ENOMEM; + /* Do not reset an active device! */ if (bdev->bd_holders) return -EBUSY; @@ -632,10 +662,9 @@ return -EINVAL; /* Make sure all pending I/O is finished */ - if (bdev) - fsync_bdev(bdev); + fsync_bdev(bdev); - zram_reset_device(zram); + zram_reset_device(zram, true); return len; } @@ -720,16 +749,40 @@ bio_io_error(bio); } +static void zram_slot_free(struct work_struct *work) +{ + struct zram *zram; + + zram = container_of(work, struct zram, free_work); + down_write(&zram->lock); + handle_pending_slot_free(zram); + up_write(&zram->lock); +} + +static void add_slot_free(struct zram *zram, struct zram_slot_free *free_rq) +{ + spin_lock(&zram->slot_free_lock); + free_rq->next = zram->slot_free_rq; + zram->slot_free_rq = free_rq; + spin_unlock(&zram->slot_free_lock); +} + static void zram_slot_free_notify(struct block_device *bdev, unsigned long index) { struct zram *zram; + struct zram_slot_free *free_rq; zram = bdev->bd_disk->private_data; - down_write(&zram->lock); - zram_free_page(zram, index); - up_write(&zram->lock); atomic64_inc(&zram->stats.notify_free); + + free_rq = kmalloc(sizeof(struct zram_slot_free), GFP_ATOMIC); + if (!free_rq) + return; + + free_rq->index = index; + add_slot_free(zram, free_rq); + schedule_work(&zram->free_work); } static const struct block_device_operations zram_devops = { @@ -776,6 +829,10 @@ init_rwsem(&zram->lock); init_rwsem(&zram->init_lock); + INIT_WORK(&zram->free_work, zram_slot_free); + spin_lock_init(&zram->slot_free_lock); + zram->slot_free_rq = NULL; + zram->queue = blk_alloc_queue(GFP_KERNEL); if (!zram->queue) { pr_err("Error allocating disk queue for device %d\n", @@ -902,10 +959,12 @@ for (i = 0; i < num_devices; i++) { zram = &zram_devices[i]; - get_disk(zram->disk); destroy_device(zram); - zram_reset_device(zram); - put_disk(zram->disk); + /* + * Shouldn't access zram->disk after destroy_device + * because destroy_device already released zram->disk. + */ + zram_reset_device(zram, false); } unregister_blkdev(zram_major, "zram"); --- linux-3.11.0.orig/drivers/staging/zram/zram_drv.h +++ linux-3.11.0/drivers/staging/zram/zram_drv.h @@ -94,11 +94,20 @@ struct zs_pool *mem_pool; }; +struct zram_slot_free { + unsigned long index; + struct zram_slot_free *next; +}; + struct zram { struct zram_meta *meta; struct rw_semaphore lock; /* protect compression buffers, table, * 32bit stat counters against concurrent * notifications, reads and writes */ + + struct work_struct free_work; /* handle pending free request */ + struct zram_slot_free *slot_free_rq; /* list head of free request */ + struct request_queue *queue; struct gendisk *disk; int init_done; @@ -109,6 +118,7 @@ * we can store in a disk. */ u64 disksize; /* bytes */ + spinlock_t slot_free_lock; struct zram_stats stats; }; --- linux-3.11.0.orig/drivers/staging/vt6656/main_usb.c +++ linux-3.11.0/drivers/staging/vt6656/main_usb.c @@ -1099,6 +1099,8 @@ memset(pMgmt->abyCurrBSSID, 0, 6); pMgmt->eCurrState = WMAC_STATE_IDLE; + pDevice->flags &= ~DEVICE_FLAGS_OPENED; + device_free_tx_bufs(pDevice); device_free_rx_bufs(pDevice); device_free_int_bufs(pDevice); @@ -1110,7 +1112,6 @@ usb_free_urb(pDevice->pInterruptURB); BSSvClearNodeDBTable(pDevice, 0); - pDevice->flags &=(~DEVICE_FLAGS_OPENED); DBG_PRT(MSG_LEVEL_DEBUG, KERN_INFO "device_close2 \n"); --- linux-3.11.0.orig/drivers/staging/vt6656/iwctl.c +++ linux-3.11.0/drivers/staging/vt6656/iwctl.c @@ -1634,6 +1634,9 @@ if (pMgmt == NULL) return -EFAULT; + if (!(pDevice->flags & DEVICE_FLAGS_OPENED)) + return -ENODEV; + buf = kzalloc(sizeof(struct viawget_wpa_param), GFP_KERNEL); if (buf == NULL) return -ENOMEM; --- linux-3.11.0.orig/drivers/staging/ozwpan/ozcdev.c +++ linux-3.11.0/drivers/staging/ozwpan/ozcdev.c @@ -152,6 +152,9 @@ struct oz_app_hdr *app_hdr; struct oz_serial_ctx *ctx; + if (count > sizeof(ei->data) - sizeof(*elt) - sizeof(*app_hdr)) + return -EINVAL; + spin_lock_bh(&g_cdev.lock); pd = g_cdev.active_pd; if (pd) --- linux-3.11.0.orig/drivers/staging/comedi/comedi_fops.c +++ linux-3.11.0/drivers/staging/comedi/comedi_fops.c @@ -543,7 +543,7 @@ { s->private = kzalloc(size, GFP_KERNEL); if (s->private) - comedi_set_subdevice_runflags(s, ~0, SRF_FREE_SPRIV); + s->runflags |= SRF_FREE_SPRIV; return s->private; } EXPORT_SYMBOL_GPL(comedi_alloc_spriv); @@ -1485,7 +1485,8 @@ if (async->cmd.flags & TRIG_WAKE_EOS) async->cb_mask |= COMEDI_CB_EOS; - comedi_set_subdevice_runflags(s, ~0, SRF_USER | SRF_RUNNING); + comedi_set_subdevice_runflags(s, SRF_USER | SRF_ERROR | SRF_RUNNING, + SRF_USER | SRF_RUNNING); /* set s->busy _after_ setting SRF_RUNNING flag to avoid race with * comedi_read() or comedi_write() */ --- linux-3.11.0.orig/drivers/staging/comedi/drivers/ni_65xx.c +++ linux-3.11.0/drivers/staging/comedi/drivers/ni_65xx.c @@ -369,28 +369,23 @@ { const struct ni_65xx_board *board = comedi_board(dev); struct ni_65xx_private *devpriv = dev->private; - unsigned base_bitfield_channel; - const unsigned max_ports_per_bitfield = 5; + int base_bitfield_channel; unsigned read_bits = 0; - unsigned j; + int last_port_offset = ni_65xx_port_by_channel(s->n_chan - 1); + int port_offset; base_bitfield_channel = CR_CHAN(insn->chanspec); - for (j = 0; j < max_ports_per_bitfield; ++j) { - const unsigned port_offset = - ni_65xx_port_by_channel(base_bitfield_channel) + j; - const unsigned port = - sprivate(s)->base_port + port_offset; - unsigned base_port_channel; + for (port_offset = ni_65xx_port_by_channel(base_bitfield_channel); + port_offset <= last_port_offset; port_offset++) { + unsigned port = sprivate(s)->base_port + port_offset; + int base_port_channel = port_offset * ni_65xx_channels_per_port; unsigned port_mask, port_data, port_read_bits; - int bitshift; - if (port >= ni_65xx_total_num_ports(board)) + int bitshift = base_port_channel - base_bitfield_channel; + + if (bitshift >= 32) break; - base_port_channel = port_offset * ni_65xx_channels_per_port; port_mask = data[0]; port_data = data[1]; - bitshift = base_port_channel - base_bitfield_channel; - if (bitshift >= 32 || bitshift <= -32) - break; if (bitshift > 0) { port_mask >>= bitshift; port_data >>= bitshift; --- linux-3.11.0.orig/drivers/staging/comedi/drivers/dt282x.c +++ linux-3.11.0/drivers/staging/comedi/drivers/dt282x.c @@ -264,8 +264,9 @@ } \ udelay(5); \ } \ - if (_i) \ + if (_i) { \ b \ + } \ } while (0) static int prep_ai_dma(struct comedi_device *dev, int chan, int size); --- linux-3.11.0.orig/drivers/staging/wlags49_h2/wl_priv.c +++ linux-3.11.0/drivers/staging/wlags49_h2/wl_priv.c @@ -570,6 +570,7 @@ ltv_t *pLtv; bool_t ltvAllocated = FALSE; ENCSTRCT sEncryption; + size_t len; #ifdef USE_WDS hcf_16 hcfPort = HCF_PORT_0; @@ -686,7 +687,8 @@ break; case CFG_CNF_OWN_NAME: memset(lp->StationName, 0, sizeof(lp->StationName)); - memcpy((void *)lp->StationName, (void *)&pLtv->u.u8[2], (size_t)pLtv->u.u16[0]); + len = min_t(size_t, pLtv->u.u16[0], sizeof(lp->StationName)); + strlcpy(lp->StationName, &pLtv->u.u8[2], len); pLtv->u.u16[0] = CNV_INT_TO_LITTLE(pLtv->u.u16[0]); break; case CFG_CNF_LOAD_BALANCING: @@ -1783,6 +1785,7 @@ { struct wl_private *lp = wl_priv(dev); unsigned long flags; + size_t len; int ret = 0; /*------------------------------------------------------------------------*/ @@ -1793,8 +1796,8 @@ wl_lock(lp, &flags); memset(lp->StationName, 0, sizeof(lp->StationName)); - - memcpy(lp->StationName, extra, wrqu->data.length); + len = min_t(size_t, wrqu->data.length, sizeof(lp->StationName)); + strlcpy(lp->StationName, extra, len); /* Commit the adapter parameters */ wl_apply(lp); --- linux-3.11.0.orig/drivers/staging/imx-drm/imx-drm-core.c +++ linux-3.11.0/drivers/staging/imx-drm/imx-drm-core.c @@ -678,6 +678,7 @@ return i; } +EXPORT_SYMBOL_GPL(imx_drm_encoder_get_mux_id); /* * imx_drm_remove_encoder - remove an encoder --- linux-3.11.0.orig/drivers/staging/bcm/Bcmchar.c +++ linux-3.11.0/drivers/staging/bcm/Bcmchar.c @@ -1960,6 +1960,7 @@ BCM_DEBUG_PRINT(Adapter, DBG_TYPE_OTHERS, OSAL_DBG, DBG_LVL_ALL, "Called IOCTL_BCM_GET_DEVICE_DRIVER_INFO\n"); + memset(&DevInfo, 0, sizeof(DevInfo)); DevInfo.MaxRDMBufferSize = BUFFER_4K; DevInfo.u32DSDStartOffset = EEPROM_CALPARAM_START; DevInfo.u32RxAlignmentCorrection = 0; --- linux-3.11.0.orig/drivers/staging/sb105x/sb_pci_mp.c +++ linux-3.11.0/drivers/staging/sb105x/sb_pci_mp.c @@ -1063,7 +1063,7 @@ static int mp_get_count(struct sb_uart_state *state, struct serial_icounter_struct *icnt) { - struct serial_icounter_struct icount; + struct serial_icounter_struct icount = {}; struct sb_uart_icount cnow; struct sb_uart_port *port = state->port; --- linux-3.11.0.orig/drivers/leds/leds-wm831x-status.c +++ linux-3.11.0/drivers/leds/leds-wm831x-status.c @@ -230,9 +230,9 @@ int id = pdev->id % ARRAY_SIZE(chip_pdata->status); int ret; - res = platform_get_resource(pdev, IORESOURCE_IO, 0); + res = platform_get_resource(pdev, IORESOURCE_REG, 0); if (res == NULL) { - dev_err(&pdev->dev, "No I/O resource\n"); + dev_err(&pdev->dev, "No register resource\n"); ret = -EINVAL; goto err; } --- linux-3.11.0.orig/drivers/uio/uio.c +++ linux-3.11.0/drivers/uio/uio.c @@ -630,36 +630,57 @@ return 0; } -static const struct vm_operations_struct uio_vm_ops = { +static const struct vm_operations_struct uio_logical_vm_ops = { .open = uio_vma_open, .close = uio_vma_close, .fault = uio_vma_fault, }; +static int uio_mmap_logical(struct vm_area_struct *vma) +{ + vma->vm_flags |= VM_DONTEXPAND | VM_DONTDUMP; + vma->vm_ops = &uio_logical_vm_ops; + uio_vma_open(vma); + return 0; +} + +static const struct vm_operations_struct uio_physical_vm_ops = { +#ifdef CONFIG_HAVE_IOREMAP_PROT + .access = generic_access_phys, +#endif +}; + static int uio_mmap_physical(struct vm_area_struct *vma) { struct uio_device *idev = vma->vm_private_data; int mi = uio_find_mem_index(vma); + struct uio_mem *mem; if (mi < 0) return -EINVAL; + mem = idev->info->mem + mi; + if (vma->vm_end - vma->vm_start > mem->size) + return -EINVAL; + + vma->vm_ops = &uio_physical_vm_ops; vma->vm_page_prot = pgprot_noncached(vma->vm_page_prot); + /* + * We cannot use the vm_iomap_memory() helper here, + * because vma->vm_pgoff is the map index we looked + * up above in uio_find_mem_index(), rather than an + * actual page offset into the mmap. + * + * So we just do the physical mmap without a page + * offset. + */ return remap_pfn_range(vma, vma->vm_start, - idev->info->mem[mi].addr >> PAGE_SHIFT, + mem->addr >> PAGE_SHIFT, vma->vm_end - vma->vm_start, vma->vm_page_prot); } -static int uio_mmap_logical(struct vm_area_struct *vma) -{ - vma->vm_flags |= VM_DONTEXPAND | VM_DONTDUMP; - vma->vm_ops = &uio_vm_ops; - uio_vma_open(vma); - return 0; -} - static int uio_mmap(struct file *filep, struct vm_area_struct *vma) { struct uio_listener *listener = filep->private_data; --- linux-3.11.0.orig/drivers/w1/w1.c +++ linux-3.11.0/drivers/w1/w1.c @@ -680,7 +680,10 @@ atomic_set(&sl->refcnt, 0); init_completion(&sl->released); + /* slave modules need to be loaded in a context with unlocked mutex */ + mutex_unlock(&dev->mutex); request_module("w1-family-0x%0x", rn->family); + mutex_lock(&dev->mutex); spin_lock(&w1_flock); f = w1_family_registered(rn->family); --- linux-3.11.0.orig/drivers/bluetooth/btusb.c +++ linux-3.11.0/drivers/bluetooth/btusb.c @@ -24,6 +24,7 @@ #include #include #include +#include #include #include @@ -49,6 +50,7 @@ #define BTUSB_WRONG_SCO_MTU 0x40 #define BTUSB_ATH3012 0x80 #define BTUSB_INTEL 0x100 +#define BTUSB_BCM_PATCHRAM 0x800 static struct usb_device_id btusb_table[] = { /* Generic Bluetooth USB device */ @@ -102,15 +104,23 @@ /* Broadcom BCM20702A0 */ { USB_DEVICE(0x0b05, 0x17b5) }, + { USB_DEVICE(0x0b05, 0x17cb) }, { USB_DEVICE(0x04ca, 0x2003) }, { USB_DEVICE(0x0489, 0xe042) }, - { USB_DEVICE(0x413c, 0x8197) }, + { USB_DEVICE(0x13d3, 0x3388), .driver_info = BTUSB_BCM_PATCHRAM }, + { USB_DEVICE(0x13d3, 0x3389), .driver_info = BTUSB_BCM_PATCHRAM }, + { USB_DEVICE(0x413c, 0x8197), .driver_info = BTUSB_BCM_PATCHRAM }, + { USB_DEVICE(0x413c, 0x8143), .driver_info = BTUSB_BCM_PATCHRAM }, + + /* Broadcom BCM43142A0 */ + { USB_DEVICE(0x04ca, 0x2007), .driver_info = BTUSB_BCM_PATCHRAM }, + { USB_DEVICE(0x105b, 0xe065), .driver_info = BTUSB_BCM_PATCHRAM }, /* Foxconn - Hon Hai */ - { USB_VENDOR_AND_INTERFACE_INFO(0x0489, 0xff, 0x01, 0x01) }, + { USB_VENDOR_AND_INTERFACE_INFO(0x0489, 0xff, 0x01, 0x01), .driver_info = BTUSB_BCM_PATCHRAM }, /*Broadcom devices with vendor specific id */ - { USB_VENDOR_AND_INTERFACE_INFO(0x0a5c, 0xff, 0x01, 0x01) }, + { USB_VENDOR_AND_INTERFACE_INFO(0x0a5c, 0xff, 0x01, 0x01), .driver_info = BTUSB_BCM_PATCHRAM }, { } /* Terminating entry */ }; @@ -148,6 +158,7 @@ { USB_DEVICE(0x04ca, 0x3008), .driver_info = BTUSB_ATH3012 }, { USB_DEVICE(0x13d3, 0x3362), .driver_info = BTUSB_ATH3012 }, { USB_DEVICE(0x0cf3, 0xe004), .driver_info = BTUSB_ATH3012 }, + { USB_DEVICE(0x0cf3, 0xe005), .driver_info = BTUSB_ATH3012 }, { USB_DEVICE(0x0930, 0x0219), .driver_info = BTUSB_ATH3012 }, { USB_DEVICE(0x0489, 0xe057), .driver_info = BTUSB_ATH3012 }, { USB_DEVICE(0x13d3, 0x3393), .driver_info = BTUSB_ATH3012 }, @@ -1324,6 +1335,71 @@ return 0; } +static int btusb_setup_patchram_packet(struct hci_dev *hdev, u16 opcode, u32 plen, const void *param) +{ + struct sk_buff *skb; + + skb = __hci_cmd_sync(hdev, opcode, plen, param, HCI_INIT_TIMEOUT); + if (IS_ERR(skb)) + return PTR_ERR(skb); + kfree_skb(skb); + return 0; +} + +#define PATCHRAM_NAME_LEN 20 + +static int btusb_setup_patchram(struct hci_dev *hdev) +{ + struct btusb_data *data = hci_get_drvdata(hdev); + struct usb_device *udev = data->udev; + size_t pos = 0; + int err = 0; + char filename[PATCHRAM_NAME_LEN]; + const struct firmware *fw; + u8 val = 0x00; + + snprintf(filename, PATCHRAM_NAME_LEN, "fw-%04x_%04x.hcd", + le16_to_cpu(udev->descriptor.idVendor), + le16_to_cpu(udev->descriptor.idProduct)); + if (request_firmware(&fw, (const char *) filename, &udev->dev) < 0) { + BT_INFO("can't load firmware, may not work correctly"); + return 0; + } + + err = btusb_setup_patchram_packet(hdev, 0x0c03, 1, &val); + if (err) + goto out; + + err = btusb_setup_patchram_packet(hdev, 0xfc2e, 1, &val); + if (err) + goto out; + + msleep(1000); + while (pos < fw->size) { + size_t len; + len = fw->data[pos + 2] + 3; + if (pos + len > fw->size) { + err = -EINVAL; + goto out; + } + err = btusb_setup_patchram_packet(hdev, le16_to_cpu(*(u16*)(fw->data + pos)), + fw->data[pos + 2] , &fw->data[pos + 3]); + if (err) + goto out; + pos += len; + } + + err = btusb_setup_patchram_packet(hdev, 0x0c03, 1, &val); +out: + release_firmware(fw); + if (err) { + BT_INFO("fail to load firmware"); + return err; + } + BT_INFO("firmware loaded"); + return 0; +} + static int btusb_probe(struct usb_interface *intf, const struct usb_device_id *id) { @@ -1432,6 +1508,9 @@ if (id->driver_info & BTUSB_INTEL) hdev->setup = btusb_setup_intel; + if (id->driver_info & BTUSB_BCM_PATCHRAM) + hdev->setup = btusb_setup_patchram; + /* Interface numbers are hardcoded in the specification */ data->isoc = usb_ifnum_to_if(data->udev, 1); @@ -1623,7 +1702,6 @@ #ifdef CONFIG_PM .suspend = btusb_suspend, .resume = btusb_resume, - .reset_resume = btusb_resume, #endif .id_table = btusb_table, .supports_autosuspend = 1, --- linux-3.11.0.orig/drivers/bluetooth/ath3k.c +++ linux-3.11.0/drivers/bluetooth/ath3k.c @@ -85,6 +85,7 @@ { USB_DEVICE(0x04CA, 0x3008) }, { USB_DEVICE(0x13d3, 0x3362) }, { USB_DEVICE(0x0CF3, 0xE004) }, + { USB_DEVICE(0x0CF3, 0xE005) }, { USB_DEVICE(0x0930, 0x0219) }, { USB_DEVICE(0x0489, 0xe057) }, { USB_DEVICE(0x13d3, 0x3393) }, @@ -126,6 +127,7 @@ { USB_DEVICE(0x04ca, 0x3008), .driver_info = BTUSB_ATH3012 }, { USB_DEVICE(0x13d3, 0x3362), .driver_info = BTUSB_ATH3012 }, { USB_DEVICE(0x0cf3, 0xe004), .driver_info = BTUSB_ATH3012 }, + { USB_DEVICE(0x0cf3, 0xe005), .driver_info = BTUSB_ATH3012 }, { USB_DEVICE(0x0930, 0x0219), .driver_info = BTUSB_ATH3012 }, { USB_DEVICE(0x0489, 0xe057), .driver_info = BTUSB_ATH3012 }, { USB_DEVICE(0x13d3, 0x3393), .driver_info = BTUSB_ATH3012 }, --- linux-3.11.0.orig/drivers/mmc/host/omap_hsmmc.c +++ linux-3.11.0/drivers/mmc/host/omap_hsmmc.c @@ -1830,7 +1830,7 @@ host->slot_id = 0; host->mapbase = res->start + pdata->reg_offset; host->base = ioremap(host->mapbase, SZ_4K); - host->power_mode = MMC_POWER_OFF; + host->power_mode = -1; host->next_data.cookie = 1; platform_set_drvdata(pdev, host); --- linux-3.11.0.orig/drivers/mmc/host/tmio_mmc_dma.c +++ linux-3.11.0/drivers/mmc/host/tmio_mmc_dma.c @@ -104,6 +104,7 @@ pio: if (!desc) { /* DMA failed, fall back to PIO */ + tmio_mmc_enable_dma(host, false); if (ret >= 0) ret = -EIO; host->chan_rx = NULL; @@ -116,7 +117,6 @@ } dev_warn(&host->pdev->dev, "DMA failed: %d, falling back to PIO\n", ret); - tmio_mmc_enable_dma(host, false); } dev_dbg(&host->pdev->dev, "%s(): desc %p, cookie %d, sg[%d]\n", __func__, @@ -185,6 +185,7 @@ pio: if (!desc) { /* DMA failed, fall back to PIO */ + tmio_mmc_enable_dma(host, false); if (ret >= 0) ret = -EIO; host->chan_tx = NULL; @@ -197,7 +198,6 @@ } dev_warn(&host->pdev->dev, "DMA failed: %d, falling back to PIO\n", ret); - tmio_mmc_enable_dma(host, false); } dev_dbg(&host->pdev->dev, "%s(): desc %p, cookie %d\n", __func__, --- linux-3.11.0.orig/drivers/mmc/card/block.c +++ linux-3.11.0/drivers/mmc/card/block.c @@ -2191,10 +2191,10 @@ * is freeing the queue that stops new requests * from being accepted. */ + card = md->queue.card; mmc_cleanup_queue(&md->queue); if (md->flags & MMC_BLK_PACKED_CMD) mmc_packed_clean(&md->queue); - card = md->queue.card; if (md->disk->flags & GENHD_FL_UP) { device_remove_file(disk_to_dev(md->disk), &md->force_ro); if ((md->area_type & MMC_BLK_DATA_AREA_BOOT) && --- linux-3.11.0.orig/drivers/md/raid1.c +++ linux-3.11.0/drivers/md/raid1.c @@ -1479,6 +1479,7 @@ } } if (rdev + && rdev->recovery_offset == MaxSector && !test_bit(Faulty, &rdev->flags) && !test_and_set_bit(In_sync, &rdev->flags)) { count++; --- linux-3.11.0.orig/drivers/md/dm-snap-persistent.c +++ linux-3.11.0/drivers/md/dm-snap-persistent.c @@ -256,7 +256,7 @@ */ INIT_WORK_ONSTACK(&req.work, do_metadata); queue_work(ps->metadata_wq, &req.work); - flush_work(&req.work); + flush_workqueue(ps->metadata_wq); return req.result; } @@ -269,6 +269,14 @@ return NUM_SNAPSHOT_HDR_CHUNKS + ((ps->exceptions_per_area + 1) * area); } +static void skip_metadata(struct pstore *ps) +{ + uint32_t stride = ps->exceptions_per_area + 1; + chunk_t next_free = ps->next_free; + if (sector_div(next_free, stride) == NUM_SNAPSHOT_HDR_CHUNKS) + ps->next_free++; +} + /* * Read or write a metadata area. Remembering to skip the first * chunk which holds the header. @@ -502,6 +510,8 @@ ps->current_area--; + skip_metadata(ps); + return 0; } @@ -616,8 +626,6 @@ struct dm_exception *e) { struct pstore *ps = get_info(store); - uint32_t stride; - chunk_t next_free; sector_t size = get_dev_size(dm_snap_cow(store->snap)->bdev); /* Is there enough room ? */ @@ -630,10 +638,8 @@ * Move onto the next free pending, making sure to take * into account the location of the metadata chunks. */ - stride = (ps->exceptions_per_area + 1); - next_free = ++ps->next_free; - if (sector_div(next_free, stride) == 1) - ps->next_free++; + ps->next_free++; + skip_metadata(ps); atomic_inc(&ps->pending_count); return 0; --- linux-3.11.0.orig/drivers/md/dm-snap.c +++ linux-3.11.0/drivers/md/dm-snap.c @@ -725,17 +725,16 @@ */ static int init_hash_tables(struct dm_snapshot *s) { - sector_t hash_size, cow_dev_size, origin_dev_size, max_buckets; + sector_t hash_size, cow_dev_size, max_buckets; /* * Calculate based on the size of the original volume or * the COW volume... */ cow_dev_size = get_dev_size(s->cow->bdev); - origin_dev_size = get_dev_size(s->origin->bdev); max_buckets = calc_max_buckets(); - hash_size = min(origin_dev_size, cow_dev_size) >> s->store->chunk_shift; + hash_size = cow_dev_size >> s->store->chunk_shift; hash_size = min(hash_size, max_buckets); if (hash_size < 64) --- linux-3.11.0.orig/drivers/md/raid5.c +++ linux-3.11.0/drivers/md/raid5.c @@ -668,6 +668,12 @@ bi->bi_io_vec[0].bv_len = STRIPE_SIZE; bi->bi_io_vec[0].bv_offset = 0; bi->bi_size = STRIPE_SIZE; + /* + * If this is discard request, set bi_vcnt 0. We don't + * want to confuse SCSI because SCSI will replace payload + */ + if (rw & REQ_DISCARD) + bi->bi_vcnt = 0; if (rrdev) set_bit(R5_DOUBLE_LOCKED, &sh->dev[i].flags); @@ -706,6 +712,12 @@ rbi->bi_io_vec[0].bv_len = STRIPE_SIZE; rbi->bi_io_vec[0].bv_offset = 0; rbi->bi_size = STRIPE_SIZE; + /* + * If this is discard request, set bi_vcnt 0. We don't + * want to confuse SCSI because SCSI will replace payload + */ + if (rw & REQ_DISCARD) + rbi->bi_vcnt = 0; if (conf->mddev->gendisk) trace_block_bio_remap(bdev_get_queue(rbi->bi_bdev), rbi, disk_devt(conf->mddev->gendisk), @@ -2800,6 +2812,14 @@ } /* now that discard is done we can proceed with any sync */ clear_bit(STRIPE_DISCARD, &sh->state); + /* + * SCSI discard will change some bio fields and the stripe has + * no updated data, so remove it from hash list and the stripe + * will be reinitialized + */ + spin_lock_irq(&conf->device_lock); + remove_hash(sh); + spin_unlock_irq(&conf->device_lock); if (test_bit(STRIPE_SYNC_REQUESTED, &sh->state)) set_bit(STRIPE_HANDLE, &sh->state); --- linux-3.11.0.orig/drivers/md/dm-mpath.c +++ linux-3.11.0/drivers/md/dm-mpath.c @@ -1284,8 +1284,17 @@ if (!error && !clone->errors) return 0; /* I/O complete */ - if (error == -EOPNOTSUPP || error == -EREMOTEIO || error == -EILSEQ) + if (error == -EOPNOTSUPP || error == -EREMOTEIO || error == -EILSEQ) { + if ((clone->cmd_flags & REQ_WRITE_SAME) && + !clone->q->limits.max_write_same_sectors) { + struct queue_limits *limits; + + /* device doesn't really support WRITE SAME, disable it */ + limits = dm_get_queue_limits(dm_table_get_md(m->ti->table)); + limits->max_write_same_sectors = 0; + } return error; + } if (mpio->pgpath) fail_path(mpio->pgpath); --- linux-3.11.0.orig/drivers/md/dm-crypt.c +++ linux-3.11.0/drivers/md/dm-crypt.c @@ -1821,6 +1821,12 @@ return fn(ti, cc->dev, cc->start, ti->len, data); } +static void crypt_io_hints(struct dm_target *ti, + struct queue_limits *limits) +{ + limits->max_write_same_sectors = 0; +} + static struct target_type crypt_target = { .name = "crypt", .version = {1, 12, 1}, @@ -1835,6 +1841,7 @@ .message = crypt_message, .merge = crypt_merge, .iterate_devices = crypt_iterate_devices, + .io_hints = crypt_io_hints, }; static int __init dm_crypt_init(void) --- linux-3.11.0.orig/drivers/md/dm.c +++ linux-3.11.0/drivers/md/dm.c @@ -2250,6 +2250,17 @@ } /* + * The queue_limits are only valid as long as you have a reference + * count on 'md'. + */ +struct queue_limits *dm_get_queue_limits(struct mapped_device *md) +{ + BUG_ON(!atomic_read(&md->holders)); + return &md->queue->limits; +} +EXPORT_SYMBOL_GPL(dm_get_queue_limits); + +/* * Fully initialize a request-based queue (->elevator, ->request_fn, etc). */ static int dm_init_request_based_queue(struct mapped_device *md) @@ -2747,6 +2758,7 @@ { return md->disk; } +EXPORT_SYMBOL_GPL(dm_disk); struct kobject *dm_kobject(struct mapped_device *md) { --- linux-3.11.0.orig/drivers/md/raid10.c +++ linux-3.11.0/drivers/md/raid10.c @@ -1782,6 +1782,7 @@ } sysfs_notify_dirent_safe(tmp->replacement->sysfs_state); } else if (tmp->rdev + && tmp->rdev->recovery_offset == MaxSector && !test_bit(Faulty, &tmp->rdev->flags) && !test_and_set_bit(In_sync, &tmp->rdev->flags)) { count++; --- linux-3.11.0.orig/drivers/md/md.c +++ linux-3.11.0/drivers/md/md.c @@ -8093,6 +8093,7 @@ u64 *p; int lo, hi; int rv = 1; + unsigned long flags; if (bb->shift < 0) /* badblocks are disabled */ @@ -8107,7 +8108,7 @@ sectors = next - s; } - write_seqlock_irq(&bb->lock); + write_seqlock_irqsave(&bb->lock, flags); p = bb->page; lo = 0; @@ -8223,7 +8224,7 @@ bb->changed = 1; if (!acknowledged) bb->unacked_exist = 1; - write_sequnlock_irq(&bb->lock); + write_sequnlock_irqrestore(&bb->lock, flags); return rv; } --- linux-3.11.0.orig/drivers/md/bcache/request.c +++ linux-3.11.0/drivers/md/bcache/request.c @@ -996,17 +996,19 @@ closure_bio_submit(bio, cl, s->d); } else { bch_writeback_add(dc); + s->op.cache_bio = bio; - if (s->op.flush_journal) { + if (bio->bi_rw & REQ_FLUSH) { /* Also need to send a flush to the backing device */ - s->op.cache_bio = bio_clone_bioset(bio, GFP_NOIO, - dc->disk.bio_split); + struct bio *flush = bio_alloc_bioset(GFP_NOIO, 0, + dc->disk.bio_split); - bio->bi_size = 0; - bio->bi_vcnt = 0; - closure_bio_submit(bio, cl, s->d); - } else { - s->op.cache_bio = bio; + flush->bi_rw = WRITE_FLUSH; + flush->bi_bdev = bio->bi_bdev; + flush->bi_end_io = request_endio; + flush->bi_private = cl; + + closure_bio_submit(flush, cl, s->d); } } out: --- linux-3.11.0.orig/drivers/md/bcache/btree.c +++ linux-3.11.0/drivers/md/bcache/btree.c @@ -617,7 +617,7 @@ return mca_can_free(c) * c->btree_pages; /* Return -1 if we can't do anything right now */ - if (sc->gfp_mask & __GFP_WAIT) + if (sc->gfp_mask & __GFP_IO) mutex_lock(&c->bucket_lock); else if (!mutex_trylock(&c->bucket_lock)) return -1; --- linux-3.11.0.orig/drivers/md/bcache/bset.c +++ linux-3.11.0/drivers/md/bcache/bset.c @@ -926,28 +926,45 @@ /* Mergesort */ +static void sort_key_next(struct btree_iter *iter, + struct btree_iter_set *i) +{ + i->k = bkey_next(i->k); + + if (i->k == i->end) + *i = iter->data[--iter->used]; +} + static void btree_sort_fixup(struct btree_iter *iter) { while (iter->used > 1) { struct btree_iter_set *top = iter->data, *i = top + 1; - struct bkey *k; if (iter->used > 2 && btree_iter_cmp(i[0], i[1])) i++; - for (k = i->k; - k != i->end && bkey_cmp(top->k, &START_KEY(k)) > 0; - k = bkey_next(k)) - if (top->k > i->k) - __bch_cut_front(top->k, k); - else if (KEY_SIZE(k)) - bch_cut_back(&START_KEY(k), top->k); - - if (top->k < i->k || k == i->k) + if (bkey_cmp(top->k, &START_KEY(i->k)) <= 0) break; - heap_sift(iter, i - top, btree_iter_cmp); + if (!KEY_SIZE(i->k)) { + sort_key_next(iter, i); + heap_sift(iter, i - top, btree_iter_cmp); + continue; + } + + if (top->k > i->k) { + if (bkey_cmp(top->k, i->k) >= 0) + sort_key_next(iter, i); + else + bch_cut_front(top->k, i->k); + + heap_sift(iter, i - top, btree_iter_cmp); + } else { + /* can't happen because of comparison func */ + BUG_ON(!bkey_cmp(&START_KEY(top->k), &START_KEY(i->k))); + bch_cut_back(&START_KEY(i->k), top->k); + } } } --- linux-3.11.0.orig/drivers/md/bcache/util.h +++ linux-3.11.0/drivers/md/bcache/util.h @@ -450,17 +450,23 @@ (ewma) >> factor; \ }) -struct ratelimit { +struct bch_ratelimit { + /* Next time we want to do some work, in nanoseconds */ uint64_t next; + + /* + * Rate at which we want to do work, in units per nanosecond + * The units here correspond to the units passed to bch_next_delay() + */ unsigned rate; }; -static inline void ratelimit_reset(struct ratelimit *d) +static inline void bch_ratelimit_reset(struct bch_ratelimit *d) { d->next = local_clock(); } -unsigned bch_next_delay(struct ratelimit *d, uint64_t done); +uint64_t bch_next_delay(struct bch_ratelimit *d, uint64_t done); #define __DIV_SAFE(n, d, zero) \ ({ \ --- linux-3.11.0.orig/drivers/md/bcache/util.c +++ linux-3.11.0/drivers/md/bcache/util.c @@ -190,7 +190,16 @@ stats->last = now ?: 1; } -unsigned bch_next_delay(struct ratelimit *d, uint64_t done) +/** + * bch_next_delay() - increment @d by the amount of work done, and return how + * long to delay until the next time to do some work. + * + * @d - the struct bch_ratelimit to update + * @done - the amount of work done, in arbitrary units + * + * Returns the amount of time to delay by, in jiffies + */ +uint64_t bch_next_delay(struct bch_ratelimit *d, uint64_t done) { uint64_t now = local_clock(); --- linux-3.11.0.orig/drivers/md/bcache/writeback.c +++ linux-3.11.0/drivers/md/bcache/writeback.c @@ -94,11 +94,15 @@ static unsigned writeback_delay(struct cached_dev *dc, unsigned sectors) { + uint64_t ret; + if (atomic_read(&dc->disk.detaching) || !dc->writeback_percent) return 0; - return bch_next_delay(&dc->writeback_rate, sectors * 10000000ULL); + ret = bch_next_delay(&dc->writeback_rate, sectors * 10000000ULL); + + return min_t(uint64_t, ret, HZ); } /* Background writeback */ @@ -208,7 +212,7 @@ up_write(&dc->writeback_lock); - ratelimit_reset(&dc->writeback_rate); + bch_ratelimit_reset(&dc->writeback_rate); /* Punt to workqueue only so we don't recurse and blow the stack */ continue_at(cl, read_dirty, dirty_wq); @@ -318,9 +322,7 @@ } bch_keybuf_del(&dc->writeback_keys, w); - atomic_dec_bug(&dc->in_flight); - - closure_wake_up(&dc->writeback_wait); + up(&dc->in_flight); closure_return_with_destructor(cl, dirty_io_destructor); } @@ -349,7 +351,7 @@ closure_bio_submit(&io->bio, cl, &io->dc->disk); - continue_at(cl, write_dirty_finish, dirty_wq); + continue_at(cl, write_dirty_finish, system_wq); } static void read_dirty_endio(struct bio *bio, int error) @@ -369,7 +371,7 @@ closure_bio_submit(&io->bio, cl, &io->dc->disk); - continue_at(cl, write_dirty, dirty_wq); + continue_at(cl, write_dirty, system_wq); } static void read_dirty(struct closure *cl) @@ -394,12 +396,8 @@ if (delay > 0 && (KEY_START(&w->key) != dc->last_read || - jiffies_to_msecs(delay) > 50)) { - w->private = NULL; - - closure_delay(&dc->writeback, delay); - continue_at(cl, read_dirty, dirty_wq); - } + jiffies_to_msecs(delay) > 50)) + delay = schedule_timeout_uninterruptible(delay); dc->last_read = KEY_OFFSET(&w->key); @@ -424,15 +422,10 @@ trace_bcache_writeback(&w->key); - closure_call(&io->cl, read_dirty_submit, NULL, &dc->disk.cl); + down(&dc->in_flight); + closure_call(&io->cl, read_dirty_submit, NULL, cl); delay = writeback_delay(dc, KEY_SIZE(&w->key)); - - atomic_inc(&dc->in_flight); - - if (!closure_wait_event(&dc->writeback_wait, cl, - atomic_read(&dc->in_flight) < 64)) - continue_at(cl, read_dirty, dirty_wq); } if (0) { @@ -442,7 +435,11 @@ bch_keybuf_del(&dc->writeback_keys, w); } - refill_dirty(cl); + /* + * Wait for outstanding writeback IOs to finish (and keybuf slots to be + * freed) before refilling again + */ + continue_at(cl, refill_dirty, dirty_wq); } /* Init */ @@ -484,6 +481,7 @@ void bch_cached_dev_writeback_init(struct cached_dev *dc) { + sema_init(&dc->in_flight, 64); closure_init_unlocked(&dc->writeback); init_rwsem(&dc->writeback_lock); @@ -513,7 +511,7 @@ int __init bch_writeback_init(void) { - dirty_wq = create_singlethread_workqueue("bcache_writeback"); + dirty_wq = create_workqueue("bcache_writeback"); if (!dirty_wq) return -ENOMEM; --- linux-3.11.0.orig/drivers/md/bcache/sysfs.c +++ linux-3.11.0/drivers/md/bcache/sysfs.c @@ -223,8 +223,13 @@ } if (attr == &sysfs_label) { - /* note: endlines are preserved */ - memcpy(dc->sb.label, buf, SB_LABEL_SIZE); + if (size > SB_LABEL_SIZE) + return -EINVAL; + memcpy(dc->sb.label, buf, size); + if (size < SB_LABEL_SIZE) + dc->sb.label[size] = '\0'; + if (size && dc->sb.label[size - 1] == '\n') + dc->sb.label[size - 1] = '\0'; bch_write_bdev_super(dc, NULL); if (dc->disk.c) { memcpy(dc->disk.c->uuids[dc->disk.id].label, --- linux-3.11.0.orig/drivers/md/bcache/journal.c +++ linux-3.11.0/drivers/md/bcache/journal.c @@ -153,7 +153,8 @@ bitmap_zero(bitmap, SB_JOURNAL_BUCKETS); pr_debug("%u journal buckets", ca->sb.njournal_buckets); - /* Read journal buckets ordered by golden ratio hash to quickly + /* + * Read journal buckets ordered by golden ratio hash to quickly * find a sequence of buckets with valid journal entries */ for (i = 0; i < ca->sb.njournal_buckets; i++) { @@ -166,18 +167,20 @@ goto bsearch; } - /* If that fails, check all the buckets we haven't checked + /* + * If that fails, check all the buckets we haven't checked * already */ pr_debug("falling back to linear search"); - for (l = 0; l < ca->sb.njournal_buckets; l++) { - if (test_bit(l, bitmap)) - continue; - + for (l = find_first_zero_bit(bitmap, ca->sb.njournal_buckets); + l < ca->sb.njournal_buckets; + l = find_next_zero_bit(bitmap, ca->sb.njournal_buckets, l + 1)) if (read_bucket(l)) goto bsearch; - } + + if (list_empty(list)) + continue; bsearch: /* Binary search */ m = r = find_next_bit(bitmap, ca->sb.njournal_buckets, l + 1); @@ -197,10 +200,12 @@ r = m; } - /* Read buckets in reverse order until we stop finding more + /* + * Read buckets in reverse order until we stop finding more * journal entries */ - pr_debug("finishing up"); + pr_debug("finishing up: m %u njournal_buckets %u", + m, ca->sb.njournal_buckets); l = m; while (1) { @@ -228,9 +233,10 @@ } } - c->journal.seq = list_entry(list->prev, - struct journal_replay, - list)->j.seq; + if (!list_empty(list)) + c->journal.seq = list_entry(list->prev, + struct journal_replay, + list)->j.seq; return 0; #undef read_bucket @@ -428,7 +434,7 @@ return; } - switch (atomic_read(&ja->discard_in_flight) == DISCARD_IN_FLIGHT) { + switch (atomic_read(&ja->discard_in_flight)) { case DISCARD_IN_FLIGHT: return; @@ -689,6 +695,7 @@ if (cl) BUG_ON(!closure_wait(&w->wait, cl)); + closure_flush(&c->journal.io); __journal_try_write(c, true); } } --- linux-3.11.0.orig/drivers/md/bcache/bcache.h +++ linux-3.11.0/drivers/md/bcache/bcache.h @@ -498,7 +498,7 @@ */ atomic_t has_dirty; - struct ratelimit writeback_rate; + struct bch_ratelimit writeback_rate; struct delayed_work writeback_rate_update; /* @@ -507,10 +507,9 @@ */ sector_t last_read; - /* Number of writeback bios in flight */ - atomic_t in_flight; + /* Limit number of writeback bios in flight */ + struct semaphore in_flight; struct closure_with_timer writeback; - struct closure_waitlist writeback_wait; struct keybuf writeback_keys; --- linux-3.11.0.orig/drivers/watchdog/ts72xx_wdt.c +++ linux-3.11.0/drivers/watchdog/ts72xx_wdt.c @@ -310,7 +310,8 @@ case WDIOC_GETSTATUS: case WDIOC_GETBOOTSTATUS: - return put_user(0, p); + error = put_user(0, p); + break; case WDIOC_KEEPALIVE: ts72xx_wdt_kick(wdt); --- linux-3.11.0.orig/drivers/watchdog/kempld_wdt.c +++ linux-3.11.0/drivers/watchdog/kempld_wdt.c @@ -35,7 +35,7 @@ #define KEMPLD_WDT_STAGE_TIMEOUT(x) (0x1b + (x) * 4) #define KEMPLD_WDT_STAGE_CFG(x) (0x18 + (x)) #define STAGE_CFG_GET_PRESCALER(x) (((x) & 0x30) >> 4) -#define STAGE_CFG_SET_PRESCALER(x) (((x) & 0x30) << 4) +#define STAGE_CFG_SET_PRESCALER(x) (((x) & 0x3) << 4) #define STAGE_CFG_PRESCALER_MASK 0x30 #define STAGE_CFG_ACTION_MASK 0x7 #define STAGE_CFG_ASSERT (1 << 3) --- linux-3.11.0.orig/drivers/pinctrl/pinctrl-at91.c +++ linux-3.11.0/drivers/pinctrl/pinctrl-at91.c @@ -325,7 +325,7 @@ static unsigned at91_mux_get_pullup(void __iomem *pio, unsigned pin) { - return (readl_relaxed(pio + PIO_PUSR) >> pin) & 0x1; + return !((readl_relaxed(pio + PIO_PUSR) >> pin) & 0x1); } static void at91_mux_set_pullup(void __iomem *pio, unsigned mask, bool on) @@ -445,7 +445,7 @@ static bool at91_mux_pio3_get_pulldown(void __iomem *pio, unsigned pin) { - return (__raw_readl(pio + PIO_PPDSR) >> pin) & 0x1; + return !((__raw_readl(pio + PIO_PPDSR) >> pin) & 0x1); } static void at91_mux_pio3_set_pulldown(void __iomem *pio, unsigned mask, bool is_on) --- linux-3.11.0.orig/drivers/regulator/ti-abb-regulator.c +++ linux-3.11.0/drivers/regulator/ti-abb-regulator.c @@ -279,8 +279,12 @@ ti_abb_rmw(regs->opp_sel_mask, info->opp_sel, regs->control_reg, abb->base); - /* program LDO VBB vset override if needed */ - if (abb->ldo_base) + /* + * program LDO VBB vset override if needed for !bypass mode + * XXX: Do not switch sequence - for !bypass, LDO override reset *must* + * be performed *before* switch to bias mode else VBB glitches. + */ + if (abb->ldo_base && info->opp_sel != TI_ABB_NOMINAL_OPP) ti_abb_program_ldovbb(dev, abb, info); /* Initiate ABB ldo change */ @@ -295,6 +299,14 @@ if (ret) goto out; + /* + * Reset LDO VBB vset override bypass mode + * XXX: Do not switch sequence - for bypass, LDO override reset *must* + * be performed *after* switch to bypass else VBB glitches. + */ + if (abb->ldo_base && info->opp_sel == TI_ABB_NOMINAL_OPP) + ti_abb_program_ldovbb(dev, abb, info); + out: return ret; } --- linux-3.11.0.orig/drivers/block/rbd.c +++ linux-3.11.0/drivers/block/rbd.c @@ -1557,11 +1557,12 @@ obj_request, obj_request->img_request, obj_request->result, xferred, length); /* - * ENOENT means a hole in the image. We zero-fill the - * entire length of the request. A short read also implies - * zero-fill to the end of the request. Either way we - * update the xferred count to indicate the whole request - * was satisfied. + * ENOENT means a hole in the image. We zero-fill the entire + * length of the request. A short read also implies zero-fill + * to the end of the request. An error requires the whole + * length of the request to be reported finished with an error + * to the block layer. In each case we update the xferred + * count to indicate the whole request was satisfied. */ rbd_assert(obj_request->type != OBJ_REQUEST_NODATA); if (obj_request->result == -ENOENT) { @@ -1570,14 +1571,13 @@ else zero_pages(obj_request->pages, 0, length); obj_request->result = 0; - obj_request->xferred = length; } else if (xferred < length && !obj_request->result) { if (obj_request->type == OBJ_REQUEST_BIO) zero_bio_chain(obj_request->bio_list, xferred); else zero_pages(obj_request->pages, xferred, length); - obj_request->xferred = length; } + obj_request->xferred = length; obj_request_done_set(obj_request); } --- linux-3.11.0.orig/drivers/block/cpqarray.c +++ linux-3.11.0/drivers/block/cpqarray.c @@ -1193,6 +1193,7 @@ ida_pci_info_struct pciinfo; if (!arg) return -EINVAL; + memset(&pciinfo, 0, sizeof(pciinfo)); pciinfo.bus = host->pci_dev->bus->number; pciinfo.dev_fn = host->pci_dev->devfn; pciinfo.board_id = host->board_id; --- linux-3.11.0.orig/drivers/block/cciss.c +++ linux-3.11.0/drivers/block/cciss.c @@ -1189,6 +1189,7 @@ int err; u32 cp; + memset(&arg64, 0, sizeof(arg64)); err = 0; err |= copy_from_user(&arg64.LUN_info, &arg32->LUN_info, --- linux-3.11.0.orig/drivers/block/nvme-core.c +++ linux-3.11.0/drivers/block/nvme-core.c @@ -1506,8 +1506,7 @@ if (!nvmeq) continue; spin_lock_irq(&nvmeq->q_lock); - if (nvme_process_cq(nvmeq)) - printk("process_cq did something\n"); + nvme_process_cq(nvmeq); nvme_cancel_ios(nvmeq, true); nvme_resubmit_bios(nvmeq); spin_unlock_irq(&nvmeq->q_lock); --- linux-3.11.0.orig/drivers/block/loop.c +++ linux-3.11.0/drivers/block/loop.c @@ -691,6 +691,24 @@ return i && S_ISBLK(i->i_mode) && MAJOR(i->i_rdev) == LOOP_MAJOR; } +/* + * for AUFS + * no get/put for file. + */ +struct file *loop_backing_file(struct super_block *sb) +{ + struct file *ret; + struct loop_device *l; + + ret = NULL; + if (MAJOR(sb->s_dev) == LOOP_MAJOR) { + l = sb->s_bdev->bd_disk->private_data; + ret = l->lo_backing_file; + } + return ret; +} +EXPORT_SYMBOL(loop_backing_file); + /* loop sysfs attributes */ static ssize_t loop_attr_show(struct device *dev, char *page, --- linux-3.11.0.orig/drivers/block/nbd.c +++ linux-3.11.0/drivers/block/nbd.c @@ -57,7 +57,7 @@ static unsigned int nbds_max = 16; static struct nbd_device *nbd_dev; -static int max_part; +static int max_part = 15; /* * Use just one lock (or at most 1 per NIC). Two arguments for this: --- linux-3.11.0.orig/drivers/connector/connector.c +++ linux-3.11.0/drivers/connector/connector.c @@ -157,17 +157,18 @@ static void cn_rx_skb(struct sk_buff *__skb) { struct nlmsghdr *nlh; - int err; struct sk_buff *skb; + int len, err; skb = skb_get(__skb); if (skb->len >= NLMSG_HDRLEN) { nlh = nlmsg_hdr(skb); + len = nlmsg_len(nlh); - if (nlh->nlmsg_len < sizeof(struct cn_msg) || + if (len < (int)sizeof(struct cn_msg) || skb->len < nlh->nlmsg_len || - nlh->nlmsg_len > CONNECTOR_MAX_MSG_SIZE) { + len > CONNECTOR_MAX_MSG_SIZE) { kfree_skb(skb); return; } --- linux-3.11.0.orig/drivers/connector/cn_proc.c +++ linux-3.11.0/drivers/connector/cn_proc.c @@ -65,6 +65,7 @@ msg = (struct cn_msg *)buffer; ev = (struct proc_event *)msg->data; + memset(&ev->event_data, 0, sizeof(ev->event_data)); get_seq(&msg->seq, &ev->cpu); ktime_get_ts(&ts); /* get high res monotonic timestamp */ put_unaligned(timespec_to_ns(&ts), (__u64 *)&ev->timestamp_ns); @@ -80,6 +81,7 @@ memcpy(&msg->id, &cn_proc_event_id, sizeof(msg->id)); msg->ack = 0; /* not used */ msg->len = sizeof(*ev); + msg->flags = 0; /* not used */ /* If cn_netlink_send() failed, the data is not sent */ cn_netlink_send(msg, CN_IDX_PROC, GFP_KERNEL); } @@ -96,6 +98,7 @@ msg = (struct cn_msg *)buffer; ev = (struct proc_event *)msg->data; + memset(&ev->event_data, 0, sizeof(ev->event_data)); get_seq(&msg->seq, &ev->cpu); ktime_get_ts(&ts); /* get high res monotonic timestamp */ put_unaligned(timespec_to_ns(&ts), (__u64 *)&ev->timestamp_ns); @@ -106,6 +109,7 @@ memcpy(&msg->id, &cn_proc_event_id, sizeof(msg->id)); msg->ack = 0; /* not used */ msg->len = sizeof(*ev); + msg->flags = 0; /* not used */ cn_netlink_send(msg, CN_IDX_PROC, GFP_KERNEL); } @@ -122,6 +126,7 @@ msg = (struct cn_msg *)buffer; ev = (struct proc_event *)msg->data; + memset(&ev->event_data, 0, sizeof(ev->event_data)); ev->what = which_id; ev->event_data.id.process_pid = task->pid; ev->event_data.id.process_tgid = task->tgid; @@ -145,6 +150,7 @@ memcpy(&msg->id, &cn_proc_event_id, sizeof(msg->id)); msg->ack = 0; /* not used */ msg->len = sizeof(*ev); + msg->flags = 0; /* not used */ cn_netlink_send(msg, CN_IDX_PROC, GFP_KERNEL); } @@ -160,6 +166,7 @@ msg = (struct cn_msg *)buffer; ev = (struct proc_event *)msg->data; + memset(&ev->event_data, 0, sizeof(ev->event_data)); get_seq(&msg->seq, &ev->cpu); ktime_get_ts(&ts); /* get high res monotonic timestamp */ put_unaligned(timespec_to_ns(&ts), (__u64 *)&ev->timestamp_ns); @@ -170,6 +177,7 @@ memcpy(&msg->id, &cn_proc_event_id, sizeof(msg->id)); msg->ack = 0; /* not used */ msg->len = sizeof(*ev); + msg->flags = 0; /* not used */ cn_netlink_send(msg, CN_IDX_PROC, GFP_KERNEL); } @@ -185,6 +193,7 @@ msg = (struct cn_msg *)buffer; ev = (struct proc_event *)msg->data; + memset(&ev->event_data, 0, sizeof(ev->event_data)); get_seq(&msg->seq, &ev->cpu); ktime_get_ts(&ts); /* get high res monotonic timestamp */ put_unaligned(timespec_to_ns(&ts), (__u64 *)&ev->timestamp_ns); @@ -203,6 +212,7 @@ memcpy(&msg->id, &cn_proc_event_id, sizeof(msg->id)); msg->ack = 0; /* not used */ msg->len = sizeof(*ev); + msg->flags = 0; /* not used */ cn_netlink_send(msg, CN_IDX_PROC, GFP_KERNEL); } @@ -218,6 +228,7 @@ msg = (struct cn_msg *)buffer; ev = (struct proc_event *)msg->data; + memset(&ev->event_data, 0, sizeof(ev->event_data)); get_seq(&msg->seq, &ev->cpu); ktime_get_ts(&ts); /* get high res monotonic timestamp */ put_unaligned(timespec_to_ns(&ts), (__u64 *)&ev->timestamp_ns); @@ -229,6 +240,7 @@ memcpy(&msg->id, &cn_proc_event_id, sizeof(msg->id)); msg->ack = 0; /* not used */ msg->len = sizeof(*ev); + msg->flags = 0; /* not used */ cn_netlink_send(msg, CN_IDX_PROC, GFP_KERNEL); } @@ -244,6 +256,7 @@ msg = (struct cn_msg *)buffer; ev = (struct proc_event *)msg->data; + memset(&ev->event_data, 0, sizeof(ev->event_data)); get_seq(&msg->seq, &ev->cpu); ktime_get_ts(&ts); /* get high res monotonic timestamp */ put_unaligned(timespec_to_ns(&ts), (__u64 *)&ev->timestamp_ns); @@ -254,6 +267,7 @@ memcpy(&msg->id, &cn_proc_event_id, sizeof(msg->id)); msg->ack = 0; /* not used */ msg->len = sizeof(*ev); + msg->flags = 0; /* not used */ cn_netlink_send(msg, CN_IDX_PROC, GFP_KERNEL); } @@ -269,6 +283,7 @@ msg = (struct cn_msg *)buffer; ev = (struct proc_event *)msg->data; + memset(&ev->event_data, 0, sizeof(ev->event_data)); get_seq(&msg->seq, &ev->cpu); ktime_get_ts(&ts); /* get high res monotonic timestamp */ put_unaligned(timespec_to_ns(&ts), (__u64 *)&ev->timestamp_ns); @@ -281,6 +296,7 @@ memcpy(&msg->id, &cn_proc_event_id, sizeof(msg->id)); msg->ack = 0; /* not used */ msg->len = sizeof(*ev); + msg->flags = 0; /* not used */ cn_netlink_send(msg, CN_IDX_PROC, GFP_KERNEL); } @@ -304,6 +320,7 @@ msg = (struct cn_msg *)buffer; ev = (struct proc_event *)msg->data; + memset(&ev->event_data, 0, sizeof(ev->event_data)); msg->seq = rcvd_seq; ktime_get_ts(&ts); /* get high res monotonic timestamp */ put_unaligned(timespec_to_ns(&ts), (__u64 *)&ev->timestamp_ns); @@ -313,6 +330,7 @@ memcpy(&msg->id, &cn_proc_event_id, sizeof(msg->id)); msg->ack = rcvd_ack + 1; msg->len = sizeof(*ev); + msg->flags = 0; /* not used */ cn_netlink_send(msg, CN_IDX_PROC, GFP_KERNEL); } --- linux-3.11.0.orig/drivers/tty/tty_io.c +++ linux-3.11.0/drivers/tty/tty_io.c @@ -850,7 +850,8 @@ struct pid *tty_pgrp = tty_get_pgrp(tty); if (tty_pgrp) { kill_pgrp(tty_pgrp, SIGHUP, on_exit); - kill_pgrp(tty_pgrp, SIGCONT, on_exit); + if (!on_exit) + kill_pgrp(tty_pgrp, SIGCONT, on_exit); put_pid(tty_pgrp); } } --- linux-3.11.0.orig/drivers/tty/tty_ioctl.c +++ linux-3.11.0/drivers/tty/tty_ioctl.c @@ -1201,6 +1201,9 @@ } return 0; case TCFLSH: + retval = tty_check_change(tty); + if (retval) + return retval; return __tty_perform_flush(tty, arg); default: /* Try the mode commands */ --- linux-3.11.0.orig/drivers/tty/n_tty.c +++ linux-3.11.0/drivers/tty/n_tty.c @@ -147,9 +147,16 @@ * pending newlines, let characters through without limit, so * that erase characters will be handled. Other excess * characters will be beeped. + * If there is no reader waiting for the input, block instead of + * letting the characters through. */ if (left <= 0) - left = ldata->icanon && !ldata->canon_data; + if (waitqueue_active(&tty->read_wait)) { + left = ldata->icanon && !ldata->canon_data; + } else { + left = 0; + } + old_left = tty->receive_room; tty->receive_room = left; --- linux-3.11.0.orig/drivers/tty/hvc/hvc_xen.c +++ linux-3.11.0/drivers/tty/hvc/hvc_xen.c @@ -636,6 +636,7 @@ .name = "xenboot", .write = xenboot_write_console, .flags = CON_PRINTBUFFER | CON_BOOT | CON_ANYTIME, + .index = -1, }; #endif /* CONFIG_EARLY_PRINTK */ --- linux-3.11.0.orig/drivers/tty/serial/vt8500_serial.c +++ linux-3.11.0/drivers/tty/serial/vt8500_serial.c @@ -559,12 +559,13 @@ if (!mmres || !irqres) return -ENODEV; - if (np) + if (np) { port = of_alias_get_id(np, "serial"); if (port >= VT8500_MAX_PORTS) port = -1; - else + } else { port = -1; + } if (port < 0) { /* calculate the port id */ --- linux-3.11.0.orig/drivers/tty/serial/pch_uart.c +++ linux-3.11.0/drivers/tty/serial/pch_uart.c @@ -658,11 +658,12 @@ dev_warn(port->dev, "Rx overrun: dropping %u bytes\n", size - room); if (!room) - return room; + goto out; tty_insert_flip_string(tport, sg_virt(&priv->sg_rx), size); port->icount.rx += room; +out: tty_kref_put(tty); return room; @@ -1071,6 +1072,8 @@ if (tty == NULL) { for (i = 0; error_msg[i] != NULL; i++) dev_err(&priv->pdev->dev, error_msg[i]); + } else { + tty_kref_put(tty); } } --- linux-3.11.0.orig/drivers/tty/serial/serial-tegra.c +++ linux-3.11.0/drivers/tty/serial/serial-tegra.c @@ -726,7 +726,7 @@ static void tegra_uart_stop_rx(struct uart_port *u) { struct tegra_uart_port *tup = to_tegra_uport(u); - struct tty_struct *tty = tty_port_tty_get(&tup->uport.state->port); + struct tty_struct *tty; struct tty_port *port = &u->state->port; struct dma_tx_state state; unsigned long ier; @@ -738,6 +738,8 @@ if (!tup->rx_in_progress) return; + tty = tty_port_tty_get(&tup->uport.state->port); + tegra_uart_wait_sym_time(tup, 1); /* wait a character interval */ ier = tup->ier_shadow; --- linux-3.11.0.orig/drivers/net/virtio_net.c +++ linux-3.11.0/drivers/net/virtio_net.c @@ -916,7 +916,9 @@ return -EINVAL; } else { vi->curr_queue_pairs = queue_pairs; - schedule_delayed_work(&vi->refill, 0); + /* virtnet_open() will refill when device is going to up. */ + if (dev->flags & IFF_UP) + schedule_delayed_work(&vi->refill, 0); } return 0; @@ -1106,6 +1108,7 @@ default: break; } + return NOTIFY_OK; } @@ -1662,6 +1665,8 @@ struct virtnet_info *vi = vdev->priv; int i; + unregister_hotcpu_notifier(&vi->nb); + /* Prevent config work handler from accessing the device */ mutex_lock(&vi->config_lock); vi->config_enable = false; @@ -1706,7 +1711,13 @@ vi->config_enable = true; mutex_unlock(&vi->config_lock); + rtnl_lock(); virtnet_set_queues(vi, vi->curr_queue_pairs); + rtnl_unlock(); + + err = register_hotcpu_notifier(&vi->nb); + if (err) + return err; return 0; } --- linux-3.11.0.orig/drivers/net/tun.c +++ linux-3.11.0/drivers/net/tun.c @@ -1691,11 +1691,11 @@ INIT_LIST_HEAD(&tun->disabled); err = tun_attach(tun, file); if (err < 0) - goto err_free_dev; + goto err_free_flow; err = register_netdevice(tun->dev); if (err < 0) - goto err_free_dev; + goto err_detach; if (device_create_file(&tun->dev->dev, &dev_attr_tun_flags) || device_create_file(&tun->dev->dev, &dev_attr_owner) || @@ -1739,7 +1739,12 @@ strcpy(ifr->ifr_name, tun->dev->name); return 0; - err_free_dev: +err_detach: + tun_detach_all(dev); +err_free_flow: + tun_flow_uninit(tun); + security_tun_dev_free_security(tun->security); +err_free_dev: free_netdev(dev); return err; } --- linux-3.11.0.orig/drivers/net/vxlan.c +++ linux-3.11.0/drivers/net/vxlan.c @@ -1767,15 +1767,17 @@ SET_ETHTOOL_OPS(dev, &vxlan_ethtool_ops); - /* create an fdb entry for default destination */ - err = vxlan_fdb_create(vxlan, all_zeros_mac, - vxlan->default_dst.remote_ip, - NUD_REACHABLE|NUD_PERMANENT, - NLM_F_EXCL|NLM_F_CREATE, - vxlan->dst_port, vxlan->default_dst.remote_vni, - vxlan->default_dst.remote_ifindex, NTF_SELF); - if (err) - return err; + /* create an fdb entry for a valid default destination */ + if (vxlan->default_dst.remote_ip != htonl(INADDR_ANY)) { + err = vxlan_fdb_create(vxlan, all_zeros_mac, + vxlan->default_dst.remote_ip, + NUD_REACHABLE|NUD_PERMANENT, + NLM_F_EXCL|NLM_F_CREATE, + vxlan->dst_port, vxlan->default_dst.remote_vni, + vxlan->default_dst.remote_ifindex, NTF_SELF); + if (err) + return err; + } err = register_netdevice(dev); if (err) { --- linux-3.11.0.orig/drivers/net/usb/qmi_wwan.c +++ linux-3.11.0/drivers/net/usb/qmi_wwan.c @@ -518,6 +518,135 @@ /* 3. Combined interface devices matching on interface number */ {QMI_FIXED_INTF(0x0408, 0xea42, 4)}, /* Yota / Megafon M100-1 */ + {QMI_FIXED_INTF(0x05c6, 0x7000, 0)}, + {QMI_FIXED_INTF(0x05c6, 0x7001, 1)}, + {QMI_FIXED_INTF(0x05c6, 0x7002, 1)}, + {QMI_FIXED_INTF(0x05c6, 0x7101, 1)}, + {QMI_FIXED_INTF(0x05c6, 0x7101, 2)}, + {QMI_FIXED_INTF(0x05c6, 0x7101, 3)}, + {QMI_FIXED_INTF(0x05c6, 0x7102, 1)}, + {QMI_FIXED_INTF(0x05c6, 0x7102, 2)}, + {QMI_FIXED_INTF(0x05c6, 0x7102, 3)}, + {QMI_FIXED_INTF(0x05c6, 0x8000, 7)}, + {QMI_FIXED_INTF(0x05c6, 0x8001, 6)}, + {QMI_FIXED_INTF(0x05c6, 0x9000, 4)}, + {QMI_FIXED_INTF(0x05c6, 0x9003, 4)}, + {QMI_FIXED_INTF(0x05c6, 0x9005, 2)}, + {QMI_FIXED_INTF(0x05c6, 0x900a, 4)}, + {QMI_FIXED_INTF(0x05c6, 0x900b, 2)}, + {QMI_FIXED_INTF(0x05c6, 0x900c, 4)}, + {QMI_FIXED_INTF(0x05c6, 0x900c, 5)}, + {QMI_FIXED_INTF(0x05c6, 0x900c, 6)}, + {QMI_FIXED_INTF(0x05c6, 0x900d, 5)}, + {QMI_FIXED_INTF(0x05c6, 0x900f, 3)}, + {QMI_FIXED_INTF(0x05c6, 0x900f, 4)}, + {QMI_FIXED_INTF(0x05c6, 0x900f, 5)}, + {QMI_FIXED_INTF(0x05c6, 0x9010, 4)}, + {QMI_FIXED_INTF(0x05c6, 0x9010, 5)}, + {QMI_FIXED_INTF(0x05c6, 0x9011, 3)}, + {QMI_FIXED_INTF(0x05c6, 0x9011, 4)}, + {QMI_FIXED_INTF(0x05c6, 0x9021, 1)}, + {QMI_FIXED_INTF(0x05c6, 0x9022, 2)}, + {QMI_FIXED_INTF(0x05c6, 0x9025, 4)}, /* Alcatel-sbell ASB TL131 TDD LTE (China Mobile) */ + {QMI_FIXED_INTF(0x05c6, 0x9026, 3)}, + {QMI_FIXED_INTF(0x05c6, 0x902e, 5)}, + {QMI_FIXED_INTF(0x05c6, 0x9031, 5)}, + {QMI_FIXED_INTF(0x05c6, 0x9032, 4)}, + {QMI_FIXED_INTF(0x05c6, 0x9033, 3)}, + {QMI_FIXED_INTF(0x05c6, 0x9033, 4)}, + {QMI_FIXED_INTF(0x05c6, 0x9033, 5)}, + {QMI_FIXED_INTF(0x05c6, 0x9033, 6)}, + {QMI_FIXED_INTF(0x05c6, 0x9034, 3)}, + {QMI_FIXED_INTF(0x05c6, 0x9034, 4)}, + {QMI_FIXED_INTF(0x05c6, 0x9034, 5)}, + {QMI_FIXED_INTF(0x05c6, 0x9034, 6)}, + {QMI_FIXED_INTF(0x05c6, 0x9034, 7)}, + {QMI_FIXED_INTF(0x05c6, 0x9035, 4)}, + {QMI_FIXED_INTF(0x05c6, 0x9036, 3)}, + {QMI_FIXED_INTF(0x05c6, 0x9037, 5)}, + {QMI_FIXED_INTF(0x05c6, 0x9038, 4)}, + {QMI_FIXED_INTF(0x05c6, 0x903b, 7)}, + {QMI_FIXED_INTF(0x05c6, 0x903c, 6)}, + {QMI_FIXED_INTF(0x05c6, 0x903d, 6)}, + {QMI_FIXED_INTF(0x05c6, 0x903e, 5)}, + {QMI_FIXED_INTF(0x05c6, 0x9043, 3)}, + {QMI_FIXED_INTF(0x05c6, 0x9046, 3)}, + {QMI_FIXED_INTF(0x05c6, 0x9046, 4)}, + {QMI_FIXED_INTF(0x05c6, 0x9046, 5)}, + {QMI_FIXED_INTF(0x05c6, 0x9047, 2)}, + {QMI_FIXED_INTF(0x05c6, 0x9047, 3)}, + {QMI_FIXED_INTF(0x05c6, 0x9047, 4)}, + {QMI_FIXED_INTF(0x05c6, 0x9048, 4)}, + {QMI_FIXED_INTF(0x05c6, 0x9048, 5)}, + {QMI_FIXED_INTF(0x05c6, 0x9048, 6)}, + {QMI_FIXED_INTF(0x05c6, 0x9048, 7)}, + {QMI_FIXED_INTF(0x05c6, 0x9048, 8)}, + {QMI_FIXED_INTF(0x05c6, 0x904c, 5)}, + {QMI_FIXED_INTF(0x05c6, 0x904c, 6)}, + {QMI_FIXED_INTF(0x05c6, 0x904c, 7)}, + {QMI_FIXED_INTF(0x05c6, 0x904c, 8)}, + {QMI_FIXED_INTF(0x05c6, 0x9050, 3)}, + {QMI_FIXED_INTF(0x05c6, 0x9052, 4)}, + {QMI_FIXED_INTF(0x05c6, 0x9053, 6)}, + {QMI_FIXED_INTF(0x05c6, 0x9053, 7)}, + {QMI_FIXED_INTF(0x05c6, 0x9054, 5)}, + {QMI_FIXED_INTF(0x05c6, 0x9054, 6)}, + {QMI_FIXED_INTF(0x05c6, 0x9055, 3)}, + {QMI_FIXED_INTF(0x05c6, 0x9055, 4)}, + {QMI_FIXED_INTF(0x05c6, 0x9055, 5)}, + {QMI_FIXED_INTF(0x05c6, 0x9055, 6)}, + {QMI_FIXED_INTF(0x05c6, 0x9055, 7)}, + {QMI_FIXED_INTF(0x05c6, 0x9056, 3)}, + {QMI_FIXED_INTF(0x05c6, 0x9062, 2)}, + {QMI_FIXED_INTF(0x05c6, 0x9062, 3)}, + {QMI_FIXED_INTF(0x05c6, 0x9062, 4)}, + {QMI_FIXED_INTF(0x05c6, 0x9062, 5)}, + {QMI_FIXED_INTF(0x05c6, 0x9062, 6)}, + {QMI_FIXED_INTF(0x05c6, 0x9062, 7)}, + {QMI_FIXED_INTF(0x05c6, 0x9062, 8)}, + {QMI_FIXED_INTF(0x05c6, 0x9062, 9)}, + {QMI_FIXED_INTF(0x05c6, 0x9064, 3)}, + {QMI_FIXED_INTF(0x05c6, 0x9065, 6)}, + {QMI_FIXED_INTF(0x05c6, 0x9065, 7)}, + {QMI_FIXED_INTF(0x05c6, 0x9066, 5)}, + {QMI_FIXED_INTF(0x05c6, 0x9066, 6)}, + {QMI_FIXED_INTF(0x05c6, 0x9067, 1)}, + {QMI_FIXED_INTF(0x05c6, 0x9068, 2)}, + {QMI_FIXED_INTF(0x05c6, 0x9068, 3)}, + {QMI_FIXED_INTF(0x05c6, 0x9068, 4)}, + {QMI_FIXED_INTF(0x05c6, 0x9068, 5)}, + {QMI_FIXED_INTF(0x05c6, 0x9068, 6)}, + {QMI_FIXED_INTF(0x05c6, 0x9068, 7)}, + {QMI_FIXED_INTF(0x05c6, 0x9069, 5)}, + {QMI_FIXED_INTF(0x05c6, 0x9069, 6)}, + {QMI_FIXED_INTF(0x05c6, 0x9069, 7)}, + {QMI_FIXED_INTF(0x05c6, 0x9069, 8)}, + {QMI_FIXED_INTF(0x05c6, 0x9070, 4)}, + {QMI_FIXED_INTF(0x05c6, 0x9070, 5)}, + {QMI_FIXED_INTF(0x05c6, 0x9075, 5)}, + {QMI_FIXED_INTF(0x05c6, 0x9076, 4)}, + {QMI_FIXED_INTF(0x05c6, 0x9076, 5)}, + {QMI_FIXED_INTF(0x05c6, 0x9076, 6)}, + {QMI_FIXED_INTF(0x05c6, 0x9076, 7)}, + {QMI_FIXED_INTF(0x05c6, 0x9076, 8)}, + {QMI_FIXED_INTF(0x05c6, 0x9077, 3)}, + {QMI_FIXED_INTF(0x05c6, 0x9077, 4)}, + {QMI_FIXED_INTF(0x05c6, 0x9077, 5)}, + {QMI_FIXED_INTF(0x05c6, 0x9077, 6)}, + {QMI_FIXED_INTF(0x05c6, 0x9078, 3)}, + {QMI_FIXED_INTF(0x05c6, 0x9079, 4)}, + {QMI_FIXED_INTF(0x05c6, 0x9079, 5)}, + {QMI_FIXED_INTF(0x05c6, 0x9079, 6)}, + {QMI_FIXED_INTF(0x05c6, 0x9079, 7)}, + {QMI_FIXED_INTF(0x05c6, 0x9079, 8)}, + {QMI_FIXED_INTF(0x05c6, 0x9080, 5)}, + {QMI_FIXED_INTF(0x05c6, 0x9080, 6)}, + {QMI_FIXED_INTF(0x05c6, 0x9080, 7)}, + {QMI_FIXED_INTF(0x05c6, 0x9080, 8)}, + {QMI_FIXED_INTF(0x05c6, 0x9083, 3)}, + {QMI_FIXED_INTF(0x05c6, 0x9084, 4)}, + {QMI_FIXED_INTF(0x05c6, 0x920d, 0)}, + {QMI_FIXED_INTF(0x05c6, 0x920d, 5)}, {QMI_FIXED_INTF(0x12d1, 0x140c, 1)}, /* Huawei E173 */ {QMI_FIXED_INTF(0x12d1, 0x14ac, 1)}, /* Huawei E1820 */ {QMI_FIXED_INTF(0x19d2, 0x0002, 1)}, @@ -612,7 +741,6 @@ {QMI_GOBI_DEVICE(0x413c, 0x8186)}, /* Dell Gobi 2000 Modem device (N0218, VU936) */ {QMI_GOBI_DEVICE(0x413c, 0x8194)}, /* Dell Gobi 3000 Composite */ {QMI_GOBI_DEVICE(0x05c6, 0x920b)}, /* Generic Gobi 2000 Modem device */ - {QMI_GOBI_DEVICE(0x05c6, 0x920d)}, /* Gobi 3000 Composite */ {QMI_GOBI_DEVICE(0x05c6, 0x9225)}, /* Sony Gobi 2000 Modem device (N0279, VU730) */ {QMI_GOBI_DEVICE(0x05c6, 0x9245)}, /* Samsung Gobi 2000 Modem device (VL176) */ {QMI_GOBI_DEVICE(0x03f0, 0x251d)}, /* HP Gobi 2000 Modem device (VP412) */ --- linux-3.11.0.orig/drivers/net/usb/cdc_ether.c +++ linux-3.11.0/drivers/net/usb/cdc_ether.c @@ -726,6 +726,11 @@ .bInterfaceProtocol = USB_CDC_PROTO_NONE, .driver_info = (unsigned long)&wwan_info, }, { + /* Telit modules */ + USB_VENDOR_AND_INTERFACE_INFO(0x1bc7, USB_CLASS_COMM, + USB_CDC_SUBCLASS_ETHERNET, USB_CDC_PROTO_NONE), + .driver_info = (kernel_ulong_t) &wwan_info, +}, { USB_INTERFACE_INFO(USB_CLASS_COMM, USB_CDC_SUBCLASS_ETHERNET, USB_CDC_PROTO_NONE), .driver_info = (unsigned long) &cdc_info, --- linux-3.11.0.orig/drivers/net/usb/dm9601.c +++ linux-3.11.0/drivers/net/usb/dm9601.c @@ -303,7 +303,7 @@ rx_ctl |= 0x02; } else if (net->flags & IFF_ALLMULTI || netdev_mc_count(net) > DM_MAX_MCAST) { - rx_ctl |= 0x04; + rx_ctl |= 0x08; } else if (!netdev_mc_empty(net)) { struct netdev_hw_addr *ha; --- linux-3.11.0.orig/drivers/net/wan/farsync.c +++ linux-3.11.0/drivers/net/wan/farsync.c @@ -1972,6 +1972,7 @@ } i = port->index; + memset(&sync, 0, sizeof(sync)); sync.clock_rate = FST_RDL(card, portConfig[i].lineSpeed); /* Lucky card and linux use same encoding here */ sync.clock_type = FST_RDB(card, portConfig[i].internalClock) == --- linux-3.11.0.orig/drivers/net/wan/wanxl.c +++ linux-3.11.0/drivers/net/wan/wanxl.c @@ -355,6 +355,7 @@ ifr->ifr_settings.size = size; /* data size wanted */ return -ENOBUFS; } + memset(&line, 0, sizeof(line)); line.clock_type = get_status(port)->clocking; line.clock_rate = 0; line.loopback = 0; --- linux-3.11.0.orig/drivers/net/ethernet/intel/e1000/e1000_main.c +++ linux-3.11.0/drivers/net/ethernet/intel/e1000/e1000_main.c @@ -189,6 +189,10 @@ MODULE_PARM_DESC(copybreak, "Maximum size of packet that is copied to a new buffer on receive"); +static int eeprom_bad_csum_allow __read_mostly = 0; +module_param(eeprom_bad_csum_allow, int, 0); +MODULE_PARM_DESC(eeprom_bad_csum_allow, "Allow bad EEPROM checksums"); + static pci_ers_result_t e1000_io_error_detected(struct pci_dev *pdev, pci_channel_state_t state); static pci_ers_result_t e1000_io_slot_reset(struct pci_dev *pdev); @@ -1102,8 +1106,8 @@ e1000_reset_hw(hw); - /* make sure the EEPROM is good */ - if (e1000_validate_eeprom_checksum(hw) < 0) { + /* make sure the EEPROM is good, skip if eeprom_bad_csum_allow is 1 */ + if ((e1000_validate_eeprom_checksum(hw) < 0) && (!eeprom_bad_csum_allow)) { e_err(probe, "The EEPROM Checksum Is Not Valid\n"); e1000_dump_eeprom(adapter); /* set MAC address to all zeroes to invalidate and temporary --- linux-3.11.0.orig/drivers/net/ethernet/intel/igb/e1000_hw.h +++ linux-3.11.0/drivers/net/ethernet/intel/igb/e1000_hw.h @@ -67,6 +67,8 @@ #define E1000_DEV_ID_I210_FIBER 0x1536 #define E1000_DEV_ID_I210_SERDES 0x1537 #define E1000_DEV_ID_I210_SGMII 0x1538 +#define E1000_DEV_ID_I210_COPPER_FLASHLESS 0x157B +#define E1000_DEV_ID_I210_SERDES_FLASHLESS 0x157C #define E1000_DEV_ID_I211_COPPER 0x1539 #define E1000_DEV_ID_I354_BACKPLANE_1GBPS 0x1F40 #define E1000_DEV_ID_I354_SGMII 0x1F41 @@ -110,6 +112,7 @@ e1000_nvm_none, e1000_nvm_eeprom_spi, e1000_nvm_flash_hw, + e1000_nvm_invm, e1000_nvm_flash_sw }; --- linux-3.11.0.orig/drivers/net/ethernet/intel/igb/e1000_82575.c +++ linux-3.11.0/drivers/net/ethernet/intel/igb/e1000_82575.c @@ -176,7 +176,7 @@ /* Verify phy id and set remaining function pointers */ switch (phy->id) { - case M88E1545_E_PHY_ID: + case M88E1543_E_PHY_ID: case I347AT4_E_PHY_ID: case M88E1112_E_PHY_ID: case M88E1111_I_PHY_ID: @@ -238,6 +238,7 @@ size = (u16)((eecd & E1000_EECD_SIZE_EX_MASK) >> E1000_EECD_SIZE_EX_SHIFT); + /* Added to a constant, "size" becomes the left-shift value * for setting word_size. */ @@ -250,86 +251,52 @@ size = 15; nvm->word_size = 1 << size; - if (hw->mac.type < e1000_i210) { - nvm->opcode_bits = 8; - nvm->delay_usec = 1; - - switch (nvm->override) { - case e1000_nvm_override_spi_large: - nvm->page_size = 32; - nvm->address_bits = 16; - break; - case e1000_nvm_override_spi_small: - nvm->page_size = 8; - nvm->address_bits = 8; - break; - default: - nvm->page_size = eecd & E1000_EECD_ADDR_BITS ? 32 : 8; - nvm->address_bits = eecd & E1000_EECD_ADDR_BITS ? - 16 : 8; - break; - } - if (nvm->word_size == (1 << 15)) - nvm->page_size = 128; + nvm->opcode_bits = 8; + nvm->delay_usec = 1; - nvm->type = e1000_nvm_eeprom_spi; - } else { - nvm->type = e1000_nvm_flash_hw; + switch (nvm->override) { + case e1000_nvm_override_spi_large: + nvm->page_size = 32; + nvm->address_bits = 16; + break; + case e1000_nvm_override_spi_small: + nvm->page_size = 8; + nvm->address_bits = 8; + break; + default: + nvm->page_size = eecd & E1000_EECD_ADDR_BITS ? 32 : 8; + nvm->address_bits = eecd & E1000_EECD_ADDR_BITS ? + 16 : 8; + break; } + if (nvm->word_size == (1 << 15)) + nvm->page_size = 128; + + nvm->type = e1000_nvm_eeprom_spi; /* NVM Function Pointers */ + nvm->ops.acquire = igb_acquire_nvm_82575; + nvm->ops.release = igb_release_nvm_82575; + nvm->ops.write = igb_write_nvm_spi; + nvm->ops.validate = igb_validate_nvm_checksum; + nvm->ops.update = igb_update_nvm_checksum; + if (nvm->word_size < (1 << 15)) + nvm->ops.read = igb_read_nvm_eerd; + else + nvm->ops.read = igb_read_nvm_spi; + + /* override generic family function pointers for specific descendants */ switch (hw->mac.type) { case e1000_82580: nvm->ops.validate = igb_validate_nvm_checksum_82580; nvm->ops.update = igb_update_nvm_checksum_82580; - nvm->ops.acquire = igb_acquire_nvm_82575; - nvm->ops.release = igb_release_nvm_82575; - if (nvm->word_size < (1 << 15)) - nvm->ops.read = igb_read_nvm_eerd; - else - nvm->ops.read = igb_read_nvm_spi; - nvm->ops.write = igb_write_nvm_spi; break; case e1000_i354: case e1000_i350: nvm->ops.validate = igb_validate_nvm_checksum_i350; nvm->ops.update = igb_update_nvm_checksum_i350; - nvm->ops.acquire = igb_acquire_nvm_82575; - nvm->ops.release = igb_release_nvm_82575; - if (nvm->word_size < (1 << 15)) - nvm->ops.read = igb_read_nvm_eerd; - else - nvm->ops.read = igb_read_nvm_spi; - nvm->ops.write = igb_write_nvm_spi; - break; - case e1000_i210: - nvm->ops.validate = igb_validate_nvm_checksum_i210; - nvm->ops.update = igb_update_nvm_checksum_i210; - nvm->ops.acquire = igb_acquire_nvm_i210; - nvm->ops.release = igb_release_nvm_i210; - nvm->ops.read = igb_read_nvm_srrd_i210; - nvm->ops.write = igb_write_nvm_srwr_i210; - nvm->ops.valid_led_default = igb_valid_led_default_i210; - break; - case e1000_i211: - nvm->ops.acquire = igb_acquire_nvm_i210; - nvm->ops.release = igb_release_nvm_i210; - nvm->ops.read = igb_read_nvm_i211; - nvm->ops.valid_led_default = igb_valid_led_default_i210; - nvm->ops.validate = NULL; - nvm->ops.update = NULL; - nvm->ops.write = NULL; break; default: - nvm->ops.validate = igb_validate_nvm_checksum; - nvm->ops.update = igb_update_nvm_checksum; - nvm->ops.acquire = igb_acquire_nvm_82575; - nvm->ops.release = igb_release_nvm_82575; - if (nvm->word_size < (1 << 15)) - nvm->ops.read = igb_read_nvm_eerd; - else - nvm->ops.read = igb_read_nvm_spi; - nvm->ops.write = igb_write_nvm_spi; break; } @@ -516,6 +483,8 @@ case E1000_DEV_ID_I210_FIBER: case E1000_DEV_ID_I210_SERDES: case E1000_DEV_ID_I210_SGMII: + case E1000_DEV_ID_I210_COPPER_FLASHLESS: + case E1000_DEV_ID_I210_SERDES_FLASHLESS: mac->type = e1000_i210; break; case E1000_DEV_ID_I211_COPPER: @@ -601,6 +570,15 @@ /* NVM initialization */ ret_val = igb_init_nvm_params_82575(hw); + switch (hw->mac.type) { + case e1000_i210: + case e1000_i211: + ret_val = igb_init_nvm_params_i210(hw); + break; + default: + break; + } + if (ret_val) goto out; @@ -741,6 +719,10 @@ u32 ctrl_ext; u32 mdic; + /* Extra read required for some PHY's on i354 */ + if (hw->mac.type == e1000_i354) + igb_get_phy_id(hw); + /* For SGMII PHYs, we try the list of possible addresses until * we find one that works. For non-SGMII PHYs * (e.g. integrated copper PHYs), an address of 1 should @@ -1163,6 +1145,31 @@ } /** + * igb_get_link_up_info_82575 - Get link speed/duplex info + * @hw: pointer to the HW structure + * @speed: stores the current speed + * @duplex: stores the current duplex + * + * This is a wrapper function, if using the serial gigabit media independent + * interface, use PCS to retrieve the link speed and duplex information. + * Otherwise, use the generic function to get the link speed and duplex info. + **/ +static s32 igb_get_link_up_info_82575(struct e1000_hw *hw, u16 *speed, + u16 *duplex) +{ + s32 ret_val; + + if (hw->phy.media_type != e1000_media_type_copper) + ret_val = igb_get_pcs_speed_and_duplex_82575(hw, speed, + duplex); + else + ret_val = igb_get_speed_and_duplex_copper(hw, speed, + duplex); + + return ret_val; +} + +/** * igb_check_for_link_82575 - Check for link * @hw: pointer to the HW structure * @@ -1239,7 +1246,7 @@ u16 *duplex) { struct e1000_mac_info *mac = &hw->mac; - u32 pcs; + u32 pcs, status; /* Set up defaults for the return values of this function */ mac->serdes_has_link = false; @@ -1260,20 +1267,31 @@ mac->serdes_has_link = true; /* Detect and store PCS speed */ - if (pcs & E1000_PCS_LSTS_SPEED_1000) { + if (pcs & E1000_PCS_LSTS_SPEED_1000) *speed = SPEED_1000; - } else if (pcs & E1000_PCS_LSTS_SPEED_100) { + else if (pcs & E1000_PCS_LSTS_SPEED_100) *speed = SPEED_100; - } else { + else *speed = SPEED_10; - } /* Detect and store PCS duplex */ - if (pcs & E1000_PCS_LSTS_DUPLEX_FULL) { + if (pcs & E1000_PCS_LSTS_DUPLEX_FULL) *duplex = FULL_DUPLEX; - } else { + else *duplex = HALF_DUPLEX; + + /* Check if it is an I354 2.5Gb backplane connection. */ + if (mac->type == e1000_i354) { + status = rd32(E1000_STATUS); + if ((status & E1000_STATUS_2P5_SKU) && + !(status & E1000_STATUS_2P5_SKU_OVER)) { + *speed = SPEED_2500; + *duplex = FULL_DUPLEX; + hw_dbg("2500 Mbs, "); + hw_dbg("Full Duplex\n"); + } } + } return 0; @@ -1320,7 +1338,7 @@ **/ static s32 igb_reset_hw_82575(struct e1000_hw *hw) { - u32 ctrl, icr; + u32 ctrl; s32 ret_val; /* Prevent the PCI-E bus from sticking if there is no TLP connection @@ -1365,7 +1383,7 @@ /* Clear any pending interrupt events. */ wr32(E1000_IMC, 0xffffffff); - icr = rd32(E1000_ICR); + rd32(E1000_ICR); /* Install any alternate MAC address into RAR0 */ ret_val = igb_check_alt_mac_addr(hw); @@ -1443,11 +1461,18 @@ ctrl &= ~(E1000_CTRL_FRCSPD | E1000_CTRL_FRCDPX); wr32(E1000_CTRL, ctrl); - /* Clear Go Link Disconnect bit */ - if (hw->mac.type >= e1000_82580) { + /* Clear Go Link Disconnect bit on supported devices */ + switch (hw->mac.type) { + case e1000_82580: + case e1000_i350: + case e1000_i210: + case e1000_i211: phpm_reg = rd32(E1000_82580_PHY_POWER_MGMT); phpm_reg &= ~E1000_82580_PM_GO_LINKD; wr32(E1000_82580_PHY_POWER_MGMT, phpm_reg); + break; + default: + break; } ret_val = igb_setup_serdes_link_82575(hw); @@ -1470,7 +1495,7 @@ switch (hw->phy.id) { case I347AT4_E_PHY_ID: case M88E1112_E_PHY_ID: - case M88E1545_E_PHY_ID: + case M88E1543_E_PHY_ID: case I210_I_PHY_ID: ret_val = igb_copper_link_setup_m88_gen2(hw); break; @@ -2103,10 +2128,9 @@ s32 ret_val = 0; /* BH SW mailbox bit in SW_FW_SYNC */ u16 swmbsw_mask = E1000_SW_SYNCH_MB; - u32 ctrl, icr; + u32 ctrl; bool global_device_reset = hw->dev_spec._82575.global_device_reset; - hw->dev_spec._82575.global_device_reset = false; /* due to hw errata, global device reset doesn't always @@ -2165,7 +2189,7 @@ /* Clear any pending interrupt events. */ wr32(E1000_IMC, 0xffffffff); - icr = rd32(E1000_ICR); + rd32(E1000_ICR); ret_val = igb_reset_mdicnfg_82580(hw); if (ret_val) @@ -2500,28 +2524,28 @@ u16 phy_data; if ((hw->phy.media_type != e1000_media_type_copper) || - (phy->id != M88E1545_E_PHY_ID)) + (phy->id != M88E1543_E_PHY_ID)) goto out; if (!hw->dev_spec._82575.eee_disable) { /* Switch to PHY page 18. */ - ret_val = phy->ops.write_reg(hw, E1000_M88E1545_PAGE_ADDR, 18); + ret_val = phy->ops.write_reg(hw, E1000_M88E1543_PAGE_ADDR, 18); if (ret_val) goto out; - ret_val = phy->ops.read_reg(hw, E1000_M88E1545_EEE_CTRL_1, + ret_val = phy->ops.read_reg(hw, E1000_M88E1543_EEE_CTRL_1, &phy_data); if (ret_val) goto out; - phy_data |= E1000_M88E1545_EEE_CTRL_1_MS; - ret_val = phy->ops.write_reg(hw, E1000_M88E1545_EEE_CTRL_1, + phy_data |= E1000_M88E1543_EEE_CTRL_1_MS; + ret_val = phy->ops.write_reg(hw, E1000_M88E1543_EEE_CTRL_1, phy_data); if (ret_val) goto out; /* Return the PHY to page 0. */ - ret_val = phy->ops.write_reg(hw, E1000_M88E1545_PAGE_ADDR, 0); + ret_val = phy->ops.write_reg(hw, E1000_M88E1543_PAGE_ADDR, 0); if (ret_val) goto out; @@ -2572,7 +2596,7 @@ /* Check if EEE is supported on this device. */ if ((hw->phy.media_type != e1000_media_type_copper) || - (phy->id != M88E1545_E_PHY_ID)) + (phy->id != M88E1543_E_PHY_ID)) goto out; ret_val = igb_read_xmdio_reg(hw, E1000_PCS_STATUS_ADDR_I354, @@ -2728,7 +2752,7 @@ .check_for_link = igb_check_for_link_82575, .rar_set = igb_rar_set, .read_mac_addr = igb_read_mac_addr_82575, - .get_speed_and_duplex = igb_get_speed_and_duplex_copper, + .get_speed_and_duplex = igb_get_link_up_info_82575, #ifdef CONFIG_IGB_HWMON .get_thermal_sensor_data = igb_get_thermal_sensor_data_generic, .init_thermal_sensor_thresh = igb_init_thermal_sensor_thresh_generic, --- linux-3.11.0.orig/drivers/net/ethernet/intel/igb/igb_ethtool.c +++ linux-3.11.0/drivers/net/ethernet/intel/igb/igb_ethtool.c @@ -172,10 +172,7 @@ SUPPORTED_Autoneg | SUPPORTED_Pause); ecmd->advertising = ADVERTISED_FIBRE; - if (hw->mac.type == e1000_i354) { - ecmd->supported |= SUPPORTED_2500baseX_Full; - ecmd->advertising |= ADVERTISED_2500baseX_Full; - } + if ((eth_flags->e1000_base_lx) || (eth_flags->e1000_base_sx)) { ecmd->supported |= SUPPORTED_1000baseT_Full; ecmd->advertising |= ADVERTISED_1000baseT_Full; @@ -209,16 +206,23 @@ status = rd32(E1000_STATUS); if (status & E1000_STATUS_LU) { - if ((hw->mac.type == e1000_i354) && - (status & E1000_STATUS_2P5_SKU) && - !(status & E1000_STATUS_2P5_SKU_OVER)) - ecmd->speed = SPEED_2500; - else if (status & E1000_STATUS_SPEED_1000) + if (hw->mac.type == e1000_i354) { + if ((status & E1000_STATUS_2P5_SKU) && + !(status & E1000_STATUS_2P5_SKU_OVER)) { + ecmd->supported = SUPPORTED_2500baseX_Full; + ecmd->advertising = ADVERTISED_2500baseX_Full; + ecmd->speed = SPEED_2500; + } else { + ecmd->supported = SUPPORTED_1000baseT_Full; + ecmd->advertising = ADVERTISED_1000baseT_Full; + } + } else if (status & E1000_STATUS_SPEED_1000) { ecmd->speed = SPEED_1000; - else if (status & E1000_STATUS_SPEED_100) + } else if (status & E1000_STATUS_SPEED_100) { ecmd->speed = SPEED_100; - else + } else { ecmd->speed = SPEED_10; + } if ((status & E1000_STATUS_FD) || hw->phy.media_type != e1000_media_type_copper) ecmd->duplex = DUPLEX_FULL; @@ -1335,12 +1339,23 @@ static int igb_eeprom_test(struct igb_adapter *adapter, u64 *data) { + struct e1000_hw *hw = &adapter->hw; + *data = 0; - /* Validate eeprom on all parts but i211 */ - if (adapter->hw.mac.type != e1000_i211) { + /* Validate eeprom on all parts but flashless */ + switch (hw->mac.type) { + case e1000_i210: + case e1000_i211: + if (igb_get_flash_presence_i210(hw)) { + if (adapter->hw.nvm.ops.validate(&adapter->hw) < 0) + *data = 2; + } + break; + default: if (adapter->hw.nvm.ops.validate(&adapter->hw) < 0) *data = 2; + break; } return *data; @@ -2672,7 +2687,9 @@ igb_set_eee_i350(hw); /* reset link */ - if (!netif_running(netdev)) + if (netif_running(netdev)) + igb_reinit_locked(adapter); + else igb_reset(adapter); } @@ -2771,6 +2788,90 @@ pm_runtime_put(&adapter->pdev->dev); } +static u32 igb_get_rxfh_indir_size(struct net_device *netdev) +{ + return IGB_RETA_SIZE; +} + +static int igb_get_rxfh_indir(struct net_device *netdev, u32 *indir) +{ + struct igb_adapter *adapter = netdev_priv(netdev); + int i; + + for (i = 0; i < IGB_RETA_SIZE; i++) + indir[i] = adapter->rss_indir_tbl[i]; + + return 0; +} + +void igb_write_rss_indir_tbl(struct igb_adapter *adapter) +{ + struct e1000_hw *hw = &adapter->hw; + u32 reg = E1000_RETA(0); + u32 shift = 0; + int i = 0; + + switch (hw->mac.type) { + case e1000_82575: + shift = 6; + break; + case e1000_82576: + /* 82576 supports 2 RSS queues for SR-IOV */ + if (adapter->vfs_allocated_count) + shift = 3; + break; + default: + break; + } + + while (i < IGB_RETA_SIZE) { + u32 val = 0; + int j; + + for (j = 3; j >= 0; j--) { + val <<= 8; + val |= adapter->rss_indir_tbl[i + j]; + } + + wr32(reg, val << shift); + reg += 4; + i += 4; + } +} + +static int igb_set_rxfh_indir(struct net_device *netdev, const u32 *indir) +{ + struct igb_adapter *adapter = netdev_priv(netdev); + struct e1000_hw *hw = &adapter->hw; + int i; + u32 num_queues; + + num_queues = adapter->rss_queues; + + switch (hw->mac.type) { + case e1000_82576: + /* 82576 supports 2 RSS queues for SR-IOV */ + if (adapter->vfs_allocated_count) + num_queues = 2; + break; + default: + break; + } + + /* Verify user input. */ + for (i = 0; i < IGB_RETA_SIZE; i++) + if (indir[i] >= num_queues) + return -EINVAL; + + + for (i = 0; i < IGB_RETA_SIZE; i++) + adapter->rss_indir_tbl[i] = indir[i]; + + igb_write_rss_indir_tbl(adapter); + + return 0; +} + static const struct ethtool_ops igb_ethtool_ops = { .get_settings = igb_get_settings, .set_settings = igb_set_settings, @@ -2804,6 +2905,9 @@ .set_eee = igb_set_eee, .get_module_info = igb_get_module_info, .get_module_eeprom = igb_get_module_eeprom, + .get_rxfh_indir_size = igb_get_rxfh_indir_size, + .get_rxfh_indir = igb_get_rxfh_indir, + .set_rxfh_indir = igb_set_rxfh_indir, .begin = igb_ethtool_begin, .complete = igb_ethtool_complete, }; --- linux-3.11.0.orig/drivers/net/ethernet/intel/igb/e1000_nvm.c +++ linux-3.11.0/drivers/net/ethernet/intel/igb/e1000_nvm.c @@ -709,11 +709,16 @@ **/ void igb_get_fw_version(struct e1000_hw *hw, struct e1000_fw_version *fw_vers) { - u16 eeprom_verh, eeprom_verl, comb_verh, comb_verl, comb_offset; - u16 fw_version; + u16 eeprom_verh, eeprom_verl, etrack_test, fw_version; + u8 q, hval, rem, result; + u16 comb_verh, comb_verl, comb_offset; memset(fw_vers, 0, sizeof(struct e1000_fw_version)); + /* basic eeprom version numbers and bits used vary by part and by tool + * used to create the nvm images. Check which data format we have. + */ + hw->nvm.ops.read(hw, NVM_ETRACK_HIWORD, 1, &etrack_test); switch (hw->mac.type) { case e1000_i211: igb_read_invm_version(hw, fw_vers); @@ -721,30 +726,30 @@ case e1000_82575: case e1000_82576: case e1000_82580: - case e1000_i354: - case e1000_i350: - case e1000_i210: + /* Use this format, unless EETRACK ID exists, + * then use alternate format + */ + if ((etrack_test & NVM_MAJOR_MASK) != NVM_ETRACK_VALID) { + hw->nvm.ops.read(hw, NVM_VERSION, 1, &fw_version); + fw_vers->eep_major = (fw_version & NVM_MAJOR_MASK) + >> NVM_MAJOR_SHIFT; + fw_vers->eep_minor = (fw_version & NVM_MINOR_MASK) + >> NVM_MINOR_SHIFT; + fw_vers->eep_build = (fw_version & NVM_IMAGE_ID_MASK); + goto etrack_id; + } break; - default: - return; - } - /* basic eeprom version numbers */ - hw->nvm.ops.read(hw, NVM_VERSION, 1, &fw_version); - fw_vers->eep_major = (fw_version & NVM_MAJOR_MASK) >> NVM_MAJOR_SHIFT; - fw_vers->eep_minor = (fw_version & NVM_MINOR_MASK); - - /* etrack id */ - hw->nvm.ops.read(hw, NVM_ETRACK_WORD, 1, &eeprom_verl); - hw->nvm.ops.read(hw, (NVM_ETRACK_WORD + 1), 1, &eeprom_verh); - fw_vers->etrack_id = (eeprom_verh << NVM_ETRACK_SHIFT) | eeprom_verl; - - switch (hw->mac.type) { case e1000_i210: - case e1000_i354: + if (!(igb_get_flash_presence_i210(hw))) { + igb_read_invm_version(hw, fw_vers); + return; + } + /* fall through */ case e1000_i350: /* find combo image version */ hw->nvm.ops.read(hw, NVM_COMB_VER_PTR, 1, &comb_offset); - if ((comb_offset != 0x0) && (comb_offset != NVM_VER_INVALID)) { + if ((comb_offset != 0x0) && + (comb_offset != NVM_VER_INVALID)) { hw->nvm.ops.read(hw, (NVM_COMB_VER_OFF + comb_offset + 1), 1, &comb_verh); @@ -760,15 +765,42 @@ fw_vers->or_major = comb_verl >> NVM_COMB_VER_SHFT; fw_vers->or_build = - ((comb_verl << NVM_COMB_VER_SHFT) - | (comb_verh >> NVM_COMB_VER_SHFT)); + (comb_verl << NVM_COMB_VER_SHFT) + | (comb_verh >> NVM_COMB_VER_SHFT); fw_vers->or_patch = comb_verh & NVM_COMB_VER_MASK; } } break; default: - break; + return; + } + hw->nvm.ops.read(hw, NVM_VERSION, 1, &fw_version); + fw_vers->eep_major = (fw_version & NVM_MAJOR_MASK) + >> NVM_MAJOR_SHIFT; + + /* check for old style version format in newer images*/ + if ((fw_version & NVM_NEW_DEC_MASK) == 0x0) { + eeprom_verl = (fw_version & NVM_COMB_VER_MASK); + } else { + eeprom_verl = (fw_version & NVM_MINOR_MASK) + >> NVM_MINOR_SHIFT; + } + /* Convert minor value to hex before assigning to output struct + * Val to be converted will not be higher than 99, per tool output + */ + q = eeprom_verl / NVM_HEX_CONV; + hval = q * NVM_HEX_TENS; + rem = eeprom_verl % NVM_HEX_CONV; + result = hval + rem; + fw_vers->eep_minor = result; + +etrack_id: + if ((etrack_test & NVM_MAJOR_MASK) == NVM_ETRACK_VALID) { + hw->nvm.ops.read(hw, NVM_ETRACK_WORD, 1, &eeprom_verl); + hw->nvm.ops.read(hw, (NVM_ETRACK_WORD + 1), 1, &eeprom_verh); + fw_vers->etrack_id = (eeprom_verh << NVM_ETRACK_SHIFT) + | eeprom_verl; } return; } --- linux-3.11.0.orig/drivers/net/ethernet/intel/igb/igb_main.c +++ linux-3.11.0/drivers/net/ethernet/intel/igb/igb_main.c @@ -62,7 +62,7 @@ #define MAJ 5 #define MIN 0 -#define BUILD 3 +#define BUILD 5 #define DRV_VERSION __stringify(MAJ) "." __stringify(MIN) "." \ __stringify(BUILD) "-k" char igb_driver_name[] = "igb"; @@ -85,6 +85,8 @@ { PCI_VDEVICE(INTEL, E1000_DEV_ID_I210_FIBER), board_82575 }, { PCI_VDEVICE(INTEL, E1000_DEV_ID_I210_SERDES), board_82575 }, { PCI_VDEVICE(INTEL, E1000_DEV_ID_I210_SGMII), board_82575 }, + { PCI_VDEVICE(INTEL, E1000_DEV_ID_I210_COPPER_FLASHLESS), board_82575 }, + { PCI_VDEVICE(INTEL, E1000_DEV_ID_I210_SERDES_FLASHLESS), board_82575 }, { PCI_VDEVICE(INTEL, E1000_DEV_ID_I350_COPPER), board_82575 }, { PCI_VDEVICE(INTEL, E1000_DEV_ID_I350_FIBER), board_82575 }, { PCI_VDEVICE(INTEL, E1000_DEV_ID_I350_SERDES), board_82575 }, @@ -1013,7 +1015,7 @@ adapter->q_vector[v_idx] = NULL; netif_napi_del(&q_vector->napi); - /* ixgbe_get_stats64() might access the rings on this vector, + /* igb_get_stats64() might access the rings on this vector, * we must wait a grace period before freeing it. */ kfree_rcu(q_vector, rcu); @@ -1669,6 +1671,8 @@ igb_irq_disable(adapter); + adapter->flags &= ~IGB_FLAG_NEED_LINK_UPDATE; + for (i = 0; i < adapter->num_q_vectors; i++) { napi_synchronize(&(adapter->q_vector[i]->napi)); napi_disable(&(adapter->q_vector[i]->napi)); @@ -1929,12 +1933,17 @@ igb_get_fw_version(hw, &fw); switch (hw->mac.type) { + case e1000_i210: case e1000_i211: - snprintf(adapter->fw_version, sizeof(adapter->fw_version), - "%2d.%2d-%d", - fw.invm_major, fw.invm_minor, fw.invm_img_type); - break; - + if (!(igb_get_flash_presence_i210(hw))) { + snprintf(adapter->fw_version, + sizeof(adapter->fw_version), + "%2d.%2d-%d", + fw.invm_major, fw.invm_minor, + fw.invm_img_type); + break; + } + /* fall through */ default: /* if option is rom valid, display its version too */ if (fw.or_valid) { @@ -1944,11 +1953,16 @@ fw.eep_major, fw.eep_minor, fw.etrack_id, fw.or_major, fw.or_build, fw.or_patch); /* no option rom */ - } else { + } else if (fw.etrack_id != 0X0000) { snprintf(adapter->fw_version, - sizeof(adapter->fw_version), - "%d.%d, 0x%08x", - fw.eep_major, fw.eep_minor, fw.etrack_id); + sizeof(adapter->fw_version), + "%d.%d, 0x%08x", + fw.eep_major, fw.eep_minor, fw.etrack_id); + } else { + snprintf(adapter->fw_version, + sizeof(adapter->fw_version), + "%d.%d.%d", + fw.eep_major, fw.eep_minor, fw.eep_build); } break; } @@ -2166,15 +2180,28 @@ */ hw->mac.ops.reset_hw(hw); - /* make sure the NVM is good , i211 parts have special NVM that - * doesn't contain a checksum + /* make sure the NVM is good , i211/i210 parts can have special NVM + * that doesn't contain a checksum */ - if (hw->mac.type != e1000_i211) { + switch (hw->mac.type) { + case e1000_i210: + case e1000_i211: + if (igb_get_flash_presence_i210(hw)) { + if (hw->nvm.ops.validate(hw) < 0) { + dev_err(&pdev->dev, + "The NVM Checksum Is Not Valid\n"); + err = -EIO; + goto err_eeprom; + } + } + break; + default: if (hw->nvm.ops.validate(hw) < 0) { dev_err(&pdev->dev, "The NVM Checksum Is Not Valid\n"); err = -EIO; goto err_eeprom; } + break; } /* copy the MAC address out of the NVM */ @@ -2342,7 +2369,14 @@ "Width x1" : "unknown"), netdev->dev_addr); } - ret_val = igb_read_part_string(hw, part_str, E1000_PBANUM_LENGTH); + if ((hw->mac.type >= e1000_i210 || + igb_get_flash_presence_i210(hw))) { + ret_val = igb_read_part_string(hw, part_str, + E1000_PBANUM_LENGTH); + } else { + ret_val = -E1000_ERR_INVM_VALUE_NOT_FOUND; + } + if (ret_val) strcpy(part_str, "Unknown"); dev_info(&pdev->dev, "%s: PBA No: %s\n", netdev->name, part_str); @@ -2436,6 +2470,11 @@ int err = 0; int i; + if (!adapter->msix_entries) { + err = -EPERM; + goto out; + } + if (!num_vfs) goto out; else if (old_vfs && old_vfs == num_vfs) @@ -3096,7 +3135,7 @@ { struct e1000_hw *hw = &adapter->hw; u32 mrqc, rxcsum; - u32 j, num_rx_queues, shift = 0; + u32 j, num_rx_queues; static const u32 rsskey[10] = { 0xDA565A6D, 0xC20E5B25, 0x3D256741, 0xB08FA343, 0xCB2BCAD0, 0xB4307BAE, 0xA32DCB77, 0x0CF23080, 0x3BB7426A, @@ -3109,35 +3148,21 @@ num_rx_queues = adapter->rss_queues; switch (hw->mac.type) { - case e1000_82575: - shift = 6; - break; case e1000_82576: /* 82576 supports 2 RSS queues for SR-IOV */ - if (adapter->vfs_allocated_count) { - shift = 3; + if (adapter->vfs_allocated_count) num_rx_queues = 2; - } break; default: break; } - /* Populate the indirection table 4 entries at a time. To do this - * we are generating the results for n and n+2 and then interleaving - * those with the results with n+1 and n+3. - */ - for (j = 0; j < 32; j++) { - /* first pass generates n and n+2 */ - u32 base = ((j * 0x00040004) + 0x00020000) * num_rx_queues; - u32 reta = (base & 0x07800780) >> (7 - shift); - - /* second pass generates n+1 and n+3 */ - base += 0x00010001 * num_rx_queues; - reta |= (base & 0x07800780) << (1 + shift); - - wr32(E1000_RETA(j), reta); + if (adapter->rss_indir_tbl_init != num_rx_queues) { + for (j = 0; j < IGB_RETA_SIZE; j++) + adapter->rss_indir_tbl[j] = (j * num_rx_queues) / IGB_RETA_SIZE; + adapter->rss_indir_tbl_init = num_rx_queues; } + igb_write_rss_indir_tbl(adapter); /* Disable raw packet checksumming so that RSS hash is placed in * descriptor on writeback. No need to enable TCP/UDP/IP checksum @@ -3844,7 +3869,6 @@ { struct e1000_hw *hw = &adapter->hw; bool link_active = false; - s32 ret_val = 0; /* get_link_status is set on LSC (link status) interrupt or * rx sequence error interrupt. get_link_status will stay @@ -3853,22 +3877,28 @@ */ switch (hw->phy.media_type) { case e1000_media_type_copper: - if (hw->mac.get_link_status) { - ret_val = hw->mac.ops.check_for_link(hw); - link_active = !hw->mac.get_link_status; - } else { - link_active = true; - } - break; + if (!hw->mac.get_link_status) + return true; case e1000_media_type_internal_serdes: - ret_val = hw->mac.ops.check_for_link(hw); - link_active = hw->mac.serdes_has_link; + hw->mac.ops.check_for_link(hw); + link_active = !hw->mac.get_link_status; break; default: case e1000_media_type_unknown: break; } + if (((hw->mac.type == e1000_i210) || + (hw->mac.type == e1000_i211)) && + (hw->phy.id == I210_I_PHY_ID)) { + if (!netif_carrier_ok(adapter->netdev)) { + adapter->flags &= ~IGB_FLAG_NEED_LINK_UPDATE; + } else if (!(adapter->flags & IGB_FLAG_NEED_LINK_UPDATE)) { + adapter->flags |= IGB_FLAG_NEED_LINK_UPDATE; + adapter->link_check_timeout = jiffies; + } + } + return link_active; } @@ -3913,6 +3943,14 @@ int i; link = igb_has_link(adapter); + + if (adapter->flags & IGB_FLAG_NEED_LINK_UPDATE) { + if (time_after(jiffies, (adapter->link_check_timeout + HZ))) + adapter->flags &= ~IGB_FLAG_NEED_LINK_UPDATE; + else + link = false; + } + if (link) { /* Cancel scheduled suspend requests. */ pm_runtime_resume(netdev->dev.parent); @@ -4037,9 +4075,14 @@ igb_ptp_rx_hang(adapter); /* Reset the timer */ - if (!test_bit(__IGB_DOWN, &adapter->state)) - mod_timer(&adapter->watchdog_timer, - round_jiffies(jiffies + 2 * HZ)); + if (!test_bit(__IGB_DOWN, &adapter->state)) { + if (adapter->flags & IGB_FLAG_NEED_LINK_UPDATE) + mod_timer(&adapter->watchdog_timer, + round_jiffies(jiffies + HZ)); + else + mod_timer(&adapter->watchdog_timer, + round_jiffies(jiffies + 2 * HZ)); + } } enum latency_range { @@ -4814,6 +4857,10 @@ return -EINVAL; } + /* adjust max frame to be at least the size of a standard frame */ + if (max_frame < (ETH_FRAME_LEN + ETH_FCS_LEN)) + max_frame = ETH_FRAME_LEN + ETH_FCS_LEN; + while (test_and_set_bit(__IGB_RESETTING, &adapter->state)) msleep(1); @@ -4865,6 +4912,8 @@ bytes = 0; packets = 0; + + rcu_read_lock(); for (i = 0; i < adapter->num_rx_queues; i++) { u32 rqdpc = rd32(E1000_RQDPC(i)); struct igb_ring *ring = adapter->rx_ring[i]; @@ -4900,6 +4949,7 @@ } net_stats->tx_bytes = bytes; net_stats->tx_packets = packets; + rcu_read_unlock(); /* read stats registers */ adapter->stats.crcerrs += rd32(E1000_CRCERRS); --- linux-3.11.0.orig/drivers/net/ethernet/intel/igb/e1000_i210.h +++ linux-3.11.0/drivers/net/ethernet/intel/igb/e1000_i210.h @@ -35,20 +35,19 @@ u16 words, u16 *data); extern s32 igb_read_nvm_srrd_i210(struct e1000_hw *hw, u16 offset, u16 words, u16 *data); -extern s32 igb_read_invm_i211(struct e1000_hw *hw, u16 address, u16 *data); extern s32 igb_acquire_swfw_sync_i210(struct e1000_hw *hw, u16 mask); extern void igb_release_swfw_sync_i210(struct e1000_hw *hw, u16 mask); extern s32 igb_acquire_nvm_i210(struct e1000_hw *hw); extern void igb_release_nvm_i210(struct e1000_hw *hw); extern s32 igb_valid_led_default_i210(struct e1000_hw *hw, u16 *data); -extern s32 igb_read_nvm_i211(struct e1000_hw *hw, u16 offset, u16 words, - u16 *data); extern s32 igb_read_invm_version(struct e1000_hw *hw, struct e1000_fw_version *invm_ver); extern s32 igb_read_xmdio_reg(struct e1000_hw *hw, u16 addr, u8 dev_addr, u16 *data); extern s32 igb_write_xmdio_reg(struct e1000_hw *hw, u16 addr, u8 dev_addr, u16 data); +extern s32 igb_init_nvm_params_i210(struct e1000_hw *hw); +extern bool igb_get_flash_presence_i210(struct e1000_hw *hw); #define E1000_STM_OPCODE 0xDB00 #define E1000_EEPROM_FLASH_SIZE_WORD 0x11 --- linux-3.11.0.orig/drivers/net/ethernet/intel/igb/igb_ptp.c +++ linux-3.11.0/drivers/net/ethernet/intel/igb/igb_ptp.c @@ -97,14 +97,14 @@ { struct igb_adapter *igb = container_of(cc, struct igb_adapter, cc); struct e1000_hw *hw = &igb->hw; + u32 lo, hi; u64 val; - u32 lo, hi, jk; /* The timestamp latches on lowest register read. For the 82580 * the lowest register is SYSTIMR instead of SYSTIML. However we only * need to provide nanosecond resolution, so we just ignore it. */ - jk = rd32(E1000_SYSTIMR); + rd32(E1000_SYSTIMR); lo = rd32(E1000_SYSTIML); hi = rd32(E1000_SYSTIMH); @@ -118,13 +118,13 @@ static void igb_ptp_read_i210(struct igb_adapter *adapter, struct timespec *ts) { struct e1000_hw *hw = &adapter->hw; - u32 sec, nsec, jk; + u32 sec, nsec; /* The timestamp latches on lowest register read. For I210/I211, the * lowest register is SYSTIMR. Since we only need to provide nanosecond * resolution, we can ignore it. */ - jk = rd32(E1000_SYSTIMR); + rd32(E1000_SYSTIMR); nsec = rd32(E1000_SYSTIML); sec = rd32(E1000_SYSTIMH); --- linux-3.11.0.orig/drivers/net/ethernet/intel/igb/e1000_defines.h +++ linux-3.11.0/drivers/net/ethernet/intel/igb/e1000_defines.h @@ -620,6 +620,7 @@ #define E1000_EECD_SIZE_EX_SHIFT 11 #define E1000_EECD_FLUPD_I210 0x00800000 /* Update FLASH */ #define E1000_EECD_FLUDONE_I210 0x04000000 /* Update FLASH done*/ +#define E1000_EECD_FLASH_DETECTED_I210 0x00080000 /* FLASH detected */ #define E1000_FLUDONE_ATTEMPTS 20000 #define E1000_EERD_EEWR_MAX_COUNT 512 /* buffered EEPROM words rw */ #define E1000_I210_FIFO_SEL_RX 0x00 @@ -627,6 +628,11 @@ #define E1000_I210_FIFO_SEL_TX_LEGACY E1000_I210_FIFO_SEL_TX_QAV(0) #define E1000_I210_FIFO_SEL_BMC2OS_TX 0x06 #define E1000_I210_FIFO_SEL_BMC2OS_RX 0x01 +#define E1000_I210_FLASH_SECTOR_SIZE 0x1000 /* 4KB FLASH sector unit size */ +/* Secure FLASH mode requires removing MSb */ +#define E1000_I210_FW_PTR_MASK 0x7FFF +/* Firmware code revision field word offset*/ +#define E1000_I210_FW_VER_OFFSET 328 #define E1000_EECD_FLUPD_I210 0x00800000 /* Update FLASH */ #define E1000_EECD_FLUDONE_I210 0x04000000 /* Update FLASH done*/ #define E1000_FLUDONE_ATTEMPTS 20000 @@ -665,20 +671,26 @@ #define NVM_INIT_CTRL_4 0x0013 #define NVM_LED_1_CFG 0x001C #define NVM_LED_0_2_CFG 0x001F - -/* NVM version defines */ #define NVM_ETRACK_WORD 0x0042 +#define NVM_ETRACK_HIWORD 0x0043 #define NVM_COMB_VER_OFF 0x0083 #define NVM_COMB_VER_PTR 0x003d -#define NVM_MAJOR_MASK 0xF000 -#define NVM_MINOR_MASK 0x0FF0 -#define NVM_BUILD_MASK 0x000F -#define NVM_COMB_VER_MASK 0x00FF -#define NVM_MAJOR_SHIFT 12 -#define NVM_MINOR_SHIFT 4 -#define NVM_COMB_VER_SHFT 8 -#define NVM_VER_INVALID 0xFFFF -#define NVM_ETRACK_SHIFT 16 + +/* NVM version defines */ +#define NVM_MAJOR_MASK 0xF000 +#define NVM_MINOR_MASK 0x0FF0 +#define NVM_IMAGE_ID_MASK 0x000F +#define NVM_COMB_VER_MASK 0x00FF +#define NVM_MAJOR_SHIFT 12 +#define NVM_MINOR_SHIFT 4 +#define NVM_COMB_VER_SHFT 8 +#define NVM_VER_INVALID 0xFFFF +#define NVM_ETRACK_SHIFT 16 +#define NVM_ETRACK_VALID 0x8000 +#define NVM_NEW_DEC_MASK 0x0F00 +#define NVM_HEX_CONV 16 +#define NVM_HEX_TENS 10 + #define NVM_ETS_CFG 0x003E #define NVM_ETS_LTHRES_DELTA_MASK 0x07C0 #define NVM_ETS_LTHRES_DELTA_SHIFT 6 @@ -775,7 +787,7 @@ #define I350_I_PHY_ID 0x015403B0 #define M88_VENDOR 0x0141 #define I210_I_PHY_ID 0x01410C00 -#define M88E1545_E_PHY_ID 0x01410EA0 +#define M88E1543_E_PHY_ID 0x01410EA0 /* M88E1000 Specific Registers */ #define M88E1000_PHY_SPEC_CTRL 0x10 /* PHY Specific Control Register */ @@ -897,9 +909,9 @@ #define E1000_EEE_LP_ADV_DEV_I210 7 /* EEE LP Adv Device */ #define E1000_EEE_LP_ADV_ADDR_I210 61 /* EEE LP Adv Register */ #define E1000_MMDAC_FUNC_DATA 0x4000 /* Data, no post increment */ -#define E1000_M88E1545_PAGE_ADDR 0x16 /* Page Offset Register */ -#define E1000_M88E1545_EEE_CTRL_1 0x0 -#define E1000_M88E1545_EEE_CTRL_1_MS 0x0001 /* EEE Master/Slave */ +#define E1000_M88E1543_PAGE_ADDR 0x16 /* Page Offset Register */ +#define E1000_M88E1543_EEE_CTRL_1 0x0 +#define E1000_M88E1543_EEE_CTRL_1_MS 0x0001 /* EEE Master/Slave */ #define E1000_EEE_ADV_DEV_I354 7 #define E1000_EEE_ADV_ADDR_I354 60 #define E1000_EEE_ADV_100_SUPPORTED (1 << 1) /* 100BaseTx EEE Supported */ --- linux-3.11.0.orig/drivers/net/ethernet/intel/igb/e1000_mac.c +++ linux-3.11.0/drivers/net/ethernet/intel/igb/e1000_mac.c @@ -712,6 +712,7 @@ static s32 igb_set_default_fc(struct e1000_hw *hw) { s32 ret_val = 0; + u16 lan_offset; u16 nvm_data; /* Read and store word 0x0F of the EEPROM. This word contains bits @@ -722,7 +723,14 @@ * control setting, then the variable hw->fc will * be initialized based on a value in the EEPROM. */ - ret_val = hw->nvm.ops.read(hw, NVM_INIT_CONTROL2_REG, 1, &nvm_data); + if (hw->mac.type == e1000_i350) { + lan_offset = NVM_82580_LAN_FUNC_OFFSET(hw->bus.func); + ret_val = hw->nvm.ops.read(hw, NVM_INIT_CONTROL2_REG + + lan_offset, 1, &nvm_data); + } else { + ret_val = hw->nvm.ops.read(hw, NVM_INIT_CONTROL2_REG, + 1, &nvm_data); + } if (ret_val) { hw_dbg("NVM Read Error\n"); @@ -1171,17 +1179,6 @@ hw_dbg("Half Duplex\n"); } - /* Check if it is an I354 2.5Gb backplane connection. */ - if (hw->mac.type == e1000_i354) { - if ((status & E1000_STATUS_2P5_SKU) && - !(status & E1000_STATUS_2P5_SKU_OVER)) { - *speed = SPEED_2500; - *duplex = FULL_DUPLEX; - hw_dbg("2500 Mbs, "); - hw_dbg("Full Duplex\n"); - } - } - return 0; } --- linux-3.11.0.orig/drivers/net/ethernet/intel/igb/igb.h +++ linux-3.11.0/drivers/net/ethernet/intel/igb/igb.h @@ -343,6 +343,8 @@ }; #endif +#define IGB_RETA_SIZE 128 + /* board specific private data structure */ struct igb_adapter { unsigned long active_vlans[BITS_TO_LONGS(VLAN_N_VID)]; @@ -444,6 +446,10 @@ struct i2c_algo_bit_data i2c_algo; struct i2c_adapter i2c_adap; struct i2c_client *i2c_client; + u32 rss_indir_tbl_init; + u8 rss_indir_tbl[IGB_RETA_SIZE]; + + unsigned long link_check_timeout; }; #define IGB_FLAG_HAS_MSI (1 << 0) @@ -455,6 +461,7 @@ #define IGB_FLAG_RSS_FIELD_IPV4_UDP (1 << 6) #define IGB_FLAG_RSS_FIELD_IPV6_UDP (1 << 7) #define IGB_FLAG_WOL_SUPPORTED (1 << 8) +#define IGB_FLAG_NEED_LINK_UPDATE (1 << 9) /* DMA Coalescing defines */ #define IGB_MIN_TXPBSIZE 20408 @@ -480,6 +487,7 @@ extern void igb_down(struct igb_adapter *); extern void igb_reinit_locked(struct igb_adapter *); extern void igb_reset(struct igb_adapter *); +extern void igb_write_rss_indir_tbl(struct igb_adapter *); extern int igb_set_spd_dplx(struct igb_adapter *, u32, u8); extern int igb_setup_tx_resources(struct igb_ring *); extern int igb_setup_rx_resources(struct igb_ring *); --- linux-3.11.0.orig/drivers/net/ethernet/intel/igb/e1000_i210.c +++ linux-3.11.0/drivers/net/ethernet/intel/igb/e1000_i210.c @@ -335,57 +335,101 @@ } /** - * igb_read_nvm_i211 - Read NVM wrapper function for I211 + * igb_read_invm_word_i210 - Reads OTP + * @hw: pointer to the HW structure + * @address: the word address (aka eeprom offset) to read + * @data: pointer to the data read + * + * Reads 16-bit words from the OTP. Return error when the word is not + * stored in OTP. + **/ +static s32 igb_read_invm_word_i210(struct e1000_hw *hw, u8 address, u16 *data) +{ + s32 status = -E1000_ERR_INVM_VALUE_NOT_FOUND; + u32 invm_dword; + u16 i; + u8 record_type, word_address; + + for (i = 0; i < E1000_INVM_SIZE; i++) { + invm_dword = rd32(E1000_INVM_DATA_REG(i)); + /* Get record type */ + record_type = INVM_DWORD_TO_RECORD_TYPE(invm_dword); + if (record_type == E1000_INVM_UNINITIALIZED_STRUCTURE) + break; + if (record_type == E1000_INVM_CSR_AUTOLOAD_STRUCTURE) + i += E1000_INVM_CSR_AUTOLOAD_DATA_SIZE_IN_DWORDS; + if (record_type == E1000_INVM_RSA_KEY_SHA256_STRUCTURE) + i += E1000_INVM_RSA_KEY_SHA256_DATA_SIZE_IN_DWORDS; + if (record_type == E1000_INVM_WORD_AUTOLOAD_STRUCTURE) { + word_address = INVM_DWORD_TO_WORD_ADDRESS(invm_dword); + if (word_address == address) { + *data = INVM_DWORD_TO_WORD_DATA(invm_dword); + hw_dbg("Read INVM Word 0x%02x = %x", + address, *data); + status = E1000_SUCCESS; + break; + } + } + } + if (status != E1000_SUCCESS) + hw_dbg("Requested word 0x%02x not found in OTP\n", address); + return status; +} + +/** + * igb_read_invm_i210 - Read invm wrapper function for I210/I211 * @hw: pointer to the HW structure * @words: number of words to read * @data: pointer to the data read * * Wrapper function to return data formerly found in the NVM. **/ -s32 igb_read_nvm_i211(struct e1000_hw *hw, u16 offset, u16 words, - u16 *data) +static s32 igb_read_invm_i210(struct e1000_hw *hw, u16 offset, + u16 words __always_unused, u16 *data) { s32 ret_val = E1000_SUCCESS; /* Only the MAC addr is required to be present in the iNVM */ switch (offset) { case NVM_MAC_ADDR: - ret_val = igb_read_invm_i211(hw, offset, &data[0]); - ret_val |= igb_read_invm_i211(hw, offset+1, &data[1]); - ret_val |= igb_read_invm_i211(hw, offset+2, &data[2]); + ret_val = igb_read_invm_word_i210(hw, (u8)offset, &data[0]); + ret_val |= igb_read_invm_word_i210(hw, (u8)offset+1, + &data[1]); + ret_val |= igb_read_invm_word_i210(hw, (u8)offset+2, + &data[2]); if (ret_val != E1000_SUCCESS) hw_dbg("MAC Addr not found in iNVM\n"); break; case NVM_INIT_CTRL_2: - ret_val = igb_read_invm_i211(hw, (u8)offset, data); + ret_val = igb_read_invm_word_i210(hw, (u8)offset, data); if (ret_val != E1000_SUCCESS) { *data = NVM_INIT_CTRL_2_DEFAULT_I211; ret_val = E1000_SUCCESS; } break; case NVM_INIT_CTRL_4: - ret_val = igb_read_invm_i211(hw, (u8)offset, data); + ret_val = igb_read_invm_word_i210(hw, (u8)offset, data); if (ret_val != E1000_SUCCESS) { *data = NVM_INIT_CTRL_4_DEFAULT_I211; ret_val = E1000_SUCCESS; } break; case NVM_LED_1_CFG: - ret_val = igb_read_invm_i211(hw, (u8)offset, data); + ret_val = igb_read_invm_word_i210(hw, (u8)offset, data); if (ret_val != E1000_SUCCESS) { *data = NVM_LED_1_CFG_DEFAULT_I211; ret_val = E1000_SUCCESS; } break; case NVM_LED_0_2_CFG: - igb_read_invm_i211(hw, offset, data); + ret_val = igb_read_invm_word_i210(hw, (u8)offset, data); if (ret_val != E1000_SUCCESS) { *data = NVM_LED_0_2_CFG_DEFAULT_I211; ret_val = E1000_SUCCESS; } break; case NVM_ID_LED_SETTINGS: - ret_val = igb_read_invm_i211(hw, (u8)offset, data); + ret_val = igb_read_invm_word_i210(hw, (u8)offset, data); if (ret_val != E1000_SUCCESS) { *data = ID_LED_RESERVED_FFFF; ret_val = E1000_SUCCESS; @@ -411,48 +455,6 @@ } /** - * igb_read_invm_i211 - Reads OTP - * @hw: pointer to the HW structure - * @address: the word address (aka eeprom offset) to read - * @data: pointer to the data read - * - * Reads 16-bit words from the OTP. Return error when the word is not - * stored in OTP. - **/ -s32 igb_read_invm_i211(struct e1000_hw *hw, u16 address, u16 *data) -{ - s32 status = -E1000_ERR_INVM_VALUE_NOT_FOUND; - u32 invm_dword; - u16 i; - u8 record_type, word_address; - - for (i = 0; i < E1000_INVM_SIZE; i++) { - invm_dword = rd32(E1000_INVM_DATA_REG(i)); - /* Get record type */ - record_type = INVM_DWORD_TO_RECORD_TYPE(invm_dword); - if (record_type == E1000_INVM_UNINITIALIZED_STRUCTURE) - break; - if (record_type == E1000_INVM_CSR_AUTOLOAD_STRUCTURE) - i += E1000_INVM_CSR_AUTOLOAD_DATA_SIZE_IN_DWORDS; - if (record_type == E1000_INVM_RSA_KEY_SHA256_STRUCTURE) - i += E1000_INVM_RSA_KEY_SHA256_DATA_SIZE_IN_DWORDS; - if (record_type == E1000_INVM_WORD_AUTOLOAD_STRUCTURE) { - word_address = INVM_DWORD_TO_WORD_ADDRESS(invm_dword); - if (word_address == (u8)address) { - *data = INVM_DWORD_TO_WORD_DATA(invm_dword); - hw_dbg("Read INVM Word 0x%02x = %x", - address, *data); - status = E1000_SUCCESS; - break; - } - } - } - if (status != E1000_SUCCESS) - hw_dbg("Requested word 0x%02x not found in OTP\n", address); - return status; -} - -/** * igb_read_invm_version - Reads iNVM version and image type * @hw: pointer to the HW structure * @invm_ver: version structure for the version read @@ -661,6 +663,23 @@ } /** + * igb_get_flash_presence_i210 - Check if flash device is detected. + * @hw: pointer to the HW structure + * + **/ +bool igb_get_flash_presence_i210(struct e1000_hw *hw) +{ + u32 eec = 0; + bool ret_val = false; + + eec = rd32(E1000_EECD); + if (eec & E1000_EECD_FLASH_DETECTED_I210) + ret_val = true; + + return ret_val; +} + +/** * igb_update_flash_i210 - Commit EEPROM to the flash * @hw: pointer to the HW structure * @@ -786,3 +805,33 @@ { return __igb_access_xmdio_reg(hw, addr, dev_addr, &data, false); } + +/** + * igb_init_nvm_params_i210 - Init NVM func ptrs. + * @hw: pointer to the HW structure + **/ +s32 igb_init_nvm_params_i210(struct e1000_hw *hw) +{ + s32 ret_val = 0; + struct e1000_nvm_info *nvm = &hw->nvm; + + nvm->ops.acquire = igb_acquire_nvm_i210; + nvm->ops.release = igb_release_nvm_i210; + nvm->ops.valid_led_default = igb_valid_led_default_i210; + + /* NVM Function Pointers */ + if (igb_get_flash_presence_i210(hw)) { + hw->nvm.type = e1000_nvm_flash_hw; + nvm->ops.read = igb_read_nvm_srrd_i210; + nvm->ops.write = igb_write_nvm_srwr_i210; + nvm->ops.validate = igb_validate_nvm_checksum_i210; + nvm->ops.update = igb_update_nvm_checksum_i210; + } else { + hw->nvm.type = e1000_nvm_invm; + nvm->ops.read = igb_read_invm_i210; + nvm->ops.write = NULL; + nvm->ops.validate = NULL; + nvm->ops.update = NULL; + } + return ret_val; +} --- linux-3.11.0.orig/drivers/net/ethernet/intel/igb/e1000_nvm.h +++ linux-3.11.0/drivers/net/ethernet/intel/igb/e1000_nvm.h @@ -44,6 +44,7 @@ u32 etrack_id; u16 eep_major; u16 eep_minor; + u16 eep_build; u8 invm_major; u8 invm_minor; --- linux-3.11.0.orig/drivers/net/ethernet/intel/igb/e1000_phy.c +++ linux-3.11.0/drivers/net/ethernet/intel/igb/e1000_phy.c @@ -731,15 +731,13 @@ s32 ret_val; u16 phy_data; - if (phy->reset_disable) { - ret_val = 0; - goto out; - } + if (phy->reset_disable) + return 0; /* Enable CRS on Tx. This must be set for half-duplex operation. */ ret_val = phy->ops.read_reg(hw, M88E1000_PHY_SPEC_CTRL, &phy_data); if (ret_val) - goto out; + return ret_val; /* Options: * MDI/MDI-X = 0 (default) @@ -780,23 +778,36 @@ phy_data |= M88E1000_PSCR_POLARITY_REVERSAL; /* Enable downshift and setting it to X6 */ + if (phy->id == M88E1543_E_PHY_ID) { + phy_data &= ~I347AT4_PSCR_DOWNSHIFT_ENABLE; + ret_val = + phy->ops.write_reg(hw, M88E1000_PHY_SPEC_CTRL, phy_data); + if (ret_val) + return ret_val; + + ret_val = igb_phy_sw_reset(hw); + if (ret_val) { + hw_dbg("Error committing the PHY changes\n"); + return ret_val; + } + } + phy_data &= ~I347AT4_PSCR_DOWNSHIFT_MASK; phy_data |= I347AT4_PSCR_DOWNSHIFT_6X; phy_data |= I347AT4_PSCR_DOWNSHIFT_ENABLE; ret_val = phy->ops.write_reg(hw, M88E1000_PHY_SPEC_CTRL, phy_data); if (ret_val) - goto out; + return ret_val; /* Commit the changes. */ ret_val = igb_phy_sw_reset(hw); if (ret_val) { hw_dbg("Error committing the PHY changes\n"); - goto out; + return ret_val; } -out: - return ret_val; + return 0; } /** @@ -1806,7 +1817,7 @@ phy->max_cable_length = phy_data / (is_cm ? 100 : 1); phy->cable_length = phy_data / (is_cm ? 100 : 1); break; - case M88E1545_E_PHY_ID: + case M88E1543_E_PHY_ID: case I347AT4_E_PHY_ID: /* Remember the original page select and set it to 7 */ ret_val = phy->ops.read_reg(hw, I347AT4_PAGE_SELECT, --- linux-3.11.0.orig/drivers/net/ethernet/intel/e1000e/hw.h +++ linux-3.11.0/drivers/net/ethernet/intel/e1000e/hw.h @@ -90,6 +90,10 @@ #define E1000_DEV_ID_PCH_LPT_I217_V 0x153B #define E1000_DEV_ID_PCH_LPTLP_I218_LM 0x155A #define E1000_DEV_ID_PCH_LPTLP_I218_V 0x1559 +#define E1000_DEV_ID_PCH_I218_LM2 0x15A0 +#define E1000_DEV_ID_PCH_I218_V2 0x15A1 +#define E1000_DEV_ID_PCH_I218_LM3 0x15A2 /* Wildcat Point PCH */ +#define E1000_DEV_ID_PCH_I218_V3 0x15A3 /* Wildcat Point PCH */ #define E1000_REVISION_4 4 --- linux-3.11.0.orig/drivers/net/ethernet/intel/e1000e/netdev.c +++ linux-3.11.0/drivers/net/ethernet/intel/e1000e/netdev.c @@ -64,6 +64,10 @@ module_param(debug, int, 0); MODULE_PARM_DESC(debug, "Debug level (0=none,...,16=all)"); +static int eeprom_bad_csum_allow __read_mostly = 0; +module_param(eeprom_bad_csum_allow, int, 0); +MODULE_PARM_DESC(eeprom_bad_csum_allow, "Allow bad EEPROM checksums"); + static void e1000e_disable_aspm(struct pci_dev *pdev, u16 state); static const struct e1000_info *e1000_info_tbl[] = { @@ -6681,8 +6685,14 @@ break; if (i == 2) { dev_err(&pdev->dev, "The NVM Checksum Is Not Valid\n"); - err = -EIO; - goto err_eeprom; + + /* if we allow bad checksums, just break */ + if (eeprom_bad_csum_allow) { + break; + } else { + err = -EIO; + goto err_eeprom; + } } } @@ -6976,6 +6986,10 @@ { PCI_VDEVICE(INTEL, E1000_DEV_ID_PCH_LPT_I217_V), board_pch_lpt }, { PCI_VDEVICE(INTEL, E1000_DEV_ID_PCH_LPTLP_I218_LM), board_pch_lpt }, { PCI_VDEVICE(INTEL, E1000_DEV_ID_PCH_LPTLP_I218_V), board_pch_lpt }, + { PCI_VDEVICE(INTEL, E1000_DEV_ID_PCH_I218_LM2), board_pch_lpt }, + { PCI_VDEVICE(INTEL, E1000_DEV_ID_PCH_I218_V2), board_pch_lpt }, + { PCI_VDEVICE(INTEL, E1000_DEV_ID_PCH_I218_LM3), board_pch_lpt }, + { PCI_VDEVICE(INTEL, E1000_DEV_ID_PCH_I218_V3), board_pch_lpt }, { 0, 0, 0, 0, 0, 0, 0 } /* terminate list */ }; --- linux-3.11.0.orig/drivers/net/ethernet/intel/e1000e/ich8lan.c +++ linux-3.11.0/drivers/net/ethernet/intel/e1000e/ich8lan.c @@ -185,6 +185,7 @@ u32 phy_id = 0; s32 ret_val; u16 retry_count; + u32 mac_reg = 0; for (retry_count = 0; retry_count < 2; retry_count++) { ret_val = e1e_rphy_locked(hw, MII_PHYSID1, &phy_reg); @@ -203,11 +204,11 @@ if (hw->phy.id) { if (hw->phy.id == phy_id) - return true; + goto out; } else if (phy_id) { hw->phy.id = phy_id; hw->phy.revision = (u32)(phy_reg & ~PHY_REVISION_MASK); - return true; + goto out; } /* In case the PHY needs to be in mdio slow mode, @@ -219,7 +220,22 @@ ret_val = e1000e_get_phy_id(hw); hw->phy.ops.acquire(hw); - return !ret_val; + if (ret_val) + return false; +out: + if (hw->mac.type == e1000_pch_lpt) { + /* Unforce SMBus mode in PHY */ + e1e_rphy_locked(hw, CV_SMB_CTRL, &phy_reg); + phy_reg &= ~CV_SMB_CTRL_FORCE_SMBUS; + e1e_wphy_locked(hw, CV_SMB_CTRL, phy_reg); + + /* Unforce SMBus mode in MAC */ + mac_reg = er32(CTRL_EXT); + mac_reg &= ~E1000_CTRL_EXT_FORCE_SMBUS; + ew32(CTRL_EXT, mac_reg); + } + + return true; } /** @@ -233,7 +249,6 @@ { u32 mac_reg, fwsm = er32(FWSM); s32 ret_val; - u16 phy_reg; /* Gate automatic PHY configuration by hardware on managed and * non-managed 82579 and newer adapters. @@ -262,22 +277,16 @@ mac_reg |= E1000_CTRL_EXT_FORCE_SMBUS; ew32(CTRL_EXT, mac_reg); + /* Wait 50 milliseconds for MAC to finish any retries + * that it might be trying to perform from previous + * attempts to acknowledge any phy read requests. + */ + msleep(50); + /* fall-through */ case e1000_pch2lan: - if (e1000_phy_is_accessible_pchlan(hw)) { - if (hw->mac.type == e1000_pch_lpt) { - /* Unforce SMBus mode in PHY */ - e1e_rphy_locked(hw, CV_SMB_CTRL, &phy_reg); - phy_reg &= ~CV_SMB_CTRL_FORCE_SMBUS; - e1e_wphy_locked(hw, CV_SMB_CTRL, phy_reg); - - /* Unforce SMBus mode in MAC */ - mac_reg = er32(CTRL_EXT); - mac_reg &= ~E1000_CTRL_EXT_FORCE_SMBUS; - ew32(CTRL_EXT, mac_reg); - } + if (e1000_phy_is_accessible_pchlan(hw)) break; - } /* fall-through */ case e1000_pchlan: @@ -287,6 +296,7 @@ if (hw->phy.ops.check_reset_block(hw)) { e_dbg("Required LANPHYPC toggle blocked by ME\n"); + ret_val = -E1000_ERR_PHY; break; } @@ -298,15 +308,6 @@ mac_reg |= E1000_FEXTNVM3_PHY_CFG_COUNTER_50MSEC; ew32(FEXTNVM3, mac_reg); - if (hw->mac.type == e1000_pch_lpt) { - /* Toggling LANPHYPC brings the PHY out of SMBus mode - * So ensure that the MAC is also out of SMBus mode - */ - mac_reg = er32(CTRL_EXT); - mac_reg &= ~E1000_CTRL_EXT_FORCE_SMBUS; - ew32(CTRL_EXT, mac_reg); - } - /* Toggle LANPHYPC Value bit */ mac_reg = er32(CTRL); mac_reg |= E1000_CTRL_LANPHYPC_OVERRIDE; @@ -325,6 +326,21 @@ usleep_range(5000, 10000); } while (!(er32(CTRL_EXT) & E1000_CTRL_EXT_LPCD) && count--); + usleep_range(30000, 60000); + if (e1000_phy_is_accessible_pchlan(hw)) + break; + + /* Toggling LANPHYPC brings the PHY out of SMBus mode + * so ensure that the MAC is also out of SMBus mode + */ + mac_reg = er32(CTRL_EXT); + mac_reg &= ~E1000_CTRL_EXT_FORCE_SMBUS; + ew32(CTRL_EXT, mac_reg); + + if (e1000_phy_is_accessible_pchlan(hw)) + break; + + ret_val = -E1000_ERR_PHY; } break; default: @@ -332,13 +348,14 @@ } hw->phy.ops.release(hw); - - /* Reset the PHY before any access to it. Doing so, ensures - * that the PHY is in a known good state before we read/write - * PHY registers. The generic reset is sufficient here, - * because we haven't determined the PHY type yet. - */ - ret_val = e1000e_phy_hw_reset_generic(hw); + if (!ret_val) { + /* Reset the PHY before any access to it. Doing so, ensures + * that the PHY is in a known good state before we read/write + * PHY registers. The generic reset is sufficient here, + * because we haven't determined the PHY type yet. + */ + ret_val = e1000e_phy_hw_reset_generic(hw); + } out: /* Ungate automatic PHY configuration on non-managed 82579 */ @@ -993,7 +1010,9 @@ /* Work-around I218 hang issue */ if ((hw->adapter->pdev->device == E1000_DEV_ID_PCH_LPTLP_I218_LM) || - (hw->adapter->pdev->device == E1000_DEV_ID_PCH_LPTLP_I218_V)) { + (hw->adapter->pdev->device == E1000_DEV_ID_PCH_LPTLP_I218_V) || + (hw->adapter->pdev->device == E1000_DEV_ID_PCH_I218_LM3) || + (hw->adapter->pdev->device == E1000_DEV_ID_PCH_I218_V3)) { ret_val = e1000_k1_workaround_lpt_lp(hw, link); if (ret_val) return ret_val; @@ -4168,7 +4187,9 @@ u16 phy_reg, device_id = hw->adapter->pdev->device; if ((device_id == E1000_DEV_ID_PCH_LPTLP_I218_LM) || - (device_id == E1000_DEV_ID_PCH_LPTLP_I218_V)) { + (device_id == E1000_DEV_ID_PCH_LPTLP_I218_V) || + (device_id == E1000_DEV_ID_PCH_I218_LM3) || + (device_id == E1000_DEV_ID_PCH_I218_V3)) { u32 fextnvm6 = er32(FEXTNVM6); ew32(FEXTNVM6, fextnvm6 & ~E1000_FEXTNVM6_REQ_PLL_CLK); --- linux-3.11.0.orig/drivers/net/ethernet/emulex/benet/be_cmds.c +++ linux-3.11.0/drivers/net/ethernet/emulex/benet/be_cmds.c @@ -1150,7 +1150,6 @@ if (lancer_chip(adapter)) { req->hdr.version = 1; - req->if_id = cpu_to_le16(adapter->if_handle); } else if (BEx_chip(adapter)) { if (adapter->function_caps & BE_FUNCTION_CAPS_SUPER_NIC) req->hdr.version = 2; @@ -1158,6 +1157,8 @@ req->hdr.version = 2; } + if (req->hdr.version > 0) + req->if_id = cpu_to_le16(adapter->if_handle); req->num_pages = PAGES_4K_SPANNED(q_mem->va, q_mem->size); req->ulp_num = BE_ULP1_NUM; req->type = BE_ETH_TX_RING_TYPE_STANDARD; --- linux-3.11.0.orig/drivers/net/ethernet/neterion/vxge/vxge-main.c +++ linux-3.11.0/drivers/net/ethernet/neterion/vxge/vxge-main.c @@ -4202,6 +4202,9 @@ return ret; } +#define VXGE_PXE_FIRMWARE "vxge/X3fw-pxe.ncf" +#define VXGE_FIRMWARE "vxge/X3fw.ncf" + static int vxge_probe_fw_update(struct vxgedev *vdev) { u32 maj, min, bld; @@ -4244,9 +4247,9 @@ } } if (gpxe) - fw_name = "vxge/X3fw-pxe.ncf"; + fw_name = VXGE_PXE_FIRMWARE; else - fw_name = "vxge/X3fw.ncf"; + fw_name = VXGE_FIRMWARE; ret = vxge_fw_upgrade(vdev, fw_name, 0); /* -EINVAL and -ENOENT are not fatal errors for flashing firmware on @@ -4853,3 +4856,5 @@ } module_init(vxge_starter); module_exit(vxge_closer); +MODULE_FIRMWARE(VXGE_PXE_FIRMWARE); +MODULE_FIRMWARE(VXGE_FIRMWARE); --- linux-3.11.0.orig/drivers/net/ethernet/marvell/mvneta.c +++ linux-3.11.0/drivers/net/ethernet/marvell/mvneta.c @@ -138,7 +138,9 @@ #define MVNETA_GMAC_FORCE_LINK_PASS BIT(1) #define MVNETA_GMAC_CONFIG_MII_SPEED BIT(5) #define MVNETA_GMAC_CONFIG_GMII_SPEED BIT(6) +#define MVNETA_GMAC_AN_SPEED_EN BIT(7) #define MVNETA_GMAC_CONFIG_FULL_DUPLEX BIT(12) +#define MVNETA_GMAC_AN_DUPLEX_EN BIT(13) #define MVNETA_MIB_COUNTERS_BASE 0x3080 #define MVNETA_MIB_LATE_COLLISION 0x7c #define MVNETA_DA_FILT_SPEC_MCAST 0x3400 @@ -915,6 +917,13 @@ /* Assign port SDMA configuration */ mvreg_write(pp, MVNETA_SDMA_CONFIG, val); + /* Disable PHY polling in hardware, since we're using the + * kernel phylib to do this. + */ + val = mvreg_read(pp, MVNETA_UNIT_CONTROL); + val &= ~MVNETA_PHY_POLLING_ENABLE; + mvreg_write(pp, MVNETA_UNIT_CONTROL, val); + mvneta_set_ucast_table(pp, -1); mvneta_set_special_mcast_table(pp, -1); mvneta_set_other_mcast_table(pp, -1); @@ -2307,7 +2316,9 @@ val = mvreg_read(pp, MVNETA_GMAC_AUTONEG_CONFIG); val &= ~(MVNETA_GMAC_CONFIG_MII_SPEED | MVNETA_GMAC_CONFIG_GMII_SPEED | - MVNETA_GMAC_CONFIG_FULL_DUPLEX); + MVNETA_GMAC_CONFIG_FULL_DUPLEX | + MVNETA_GMAC_AN_SPEED_EN | + MVNETA_GMAC_AN_DUPLEX_EN); if (phydev->duplex) val |= MVNETA_GMAC_CONFIG_FULL_DUPLEX; --- linux-3.11.0.orig/drivers/net/ethernet/marvell/skge.c +++ linux-3.11.0/drivers/net/ethernet/marvell/skge.c @@ -3086,23 +3086,27 @@ PCI_DMA_FROMDEVICE); skge_rx_reuse(e, skge->rx_buf_size); } else { + struct skge_element ee; struct sk_buff *nskb; nskb = netdev_alloc_skb_ip_align(dev, skge->rx_buf_size); if (!nskb) goto resubmit; + ee = *e; + + skb = ee.skb; + prefetch(skb->data); + if (skge_rx_setup(skge, e, nskb, skge->rx_buf_size) < 0) { dev_kfree_skb(nskb); goto resubmit; } pci_unmap_single(skge->hw->pdev, - dma_unmap_addr(e, mapaddr), - dma_unmap_len(e, maplen), + dma_unmap_addr(&ee, mapaddr), + dma_unmap_len(&ee, maplen), PCI_DMA_FROMDEVICE); - skb = e->skb; - prefetch(skb->data); } skb_put(skb, len); --- linux-3.11.0.orig/drivers/net/ethernet/marvell/mv643xx_eth.c +++ linux-3.11.0/drivers/net/ethernet/marvell/mv643xx_eth.c @@ -1131,15 +1131,13 @@ p->rx_discard += rdlp(mp, RX_DISCARD_FRAME_CNT); p->rx_overrun += rdlp(mp, RX_OVERRUN_FRAME_CNT); spin_unlock_bh(&mp->mib_counters_lock); - - mod_timer(&mp->mib_counters_timer, jiffies + 30 * HZ); } static void mib_counters_timer_wrapper(unsigned long _mp) { struct mv643xx_eth_private *mp = (void *)_mp; - mib_counters_update(mp); + mod_timer(&mp->mib_counters_timer, jiffies + 30 * HZ); } @@ -2237,6 +2235,7 @@ mp->int_mask |= INT_TX_END_0 << i; } + add_timer(&mp->mib_counters_timer); port_start(mp); wrlp(mp, INT_MASK_EXT, INT_EXT_LINK_PHY | INT_EXT_TX); @@ -2916,7 +2915,6 @@ mp->mib_counters_timer.data = (unsigned long)mp; mp->mib_counters_timer.function = mib_counters_timer_wrapper; mp->mib_counters_timer.expires = jiffies + 30 * HZ; - add_timer(&mp->mib_counters_timer); spin_lock_init(&mp->mib_counters_lock); --- linux-3.11.0.orig/drivers/net/ethernet/renesas/sh_eth.c +++ linux-3.11.0/drivers/net/ethernet/renesas/sh_eth.c @@ -1857,11 +1857,13 @@ pm_runtime_get_sync(&mdp->pdev->dev); + napi_enable(&mdp->napi); + ret = request_irq(ndev->irq, sh_eth_interrupt, mdp->cd->irq_flags, ndev->name, ndev); if (ret) { dev_err(&ndev->dev, "Can not assign IRQ number\n"); - return ret; + goto out_napi_off; } /* Descriptor set */ @@ -1879,12 +1881,12 @@ if (ret) goto out_free_irq; - napi_enable(&mdp->napi); - return ret; out_free_irq: free_irq(ndev->irq, ndev); +out_napi_off: + napi_disable(&mdp->napi); pm_runtime_put_sync(&mdp->pdev->dev); return ret; } @@ -1976,8 +1978,6 @@ { struct sh_eth_private *mdp = netdev_priv(ndev); - napi_disable(&mdp->napi); - netif_stop_queue(ndev); /* Disable interrupts by clearing the interrupt mask. */ @@ -1995,6 +1995,8 @@ free_irq(ndev->irq, ndev); + napi_disable(&mdp->napi); + /* Free all the skbuffs in the Rx queue. */ sh_eth_ring_free(ndev); --- linux-3.11.0.orig/drivers/net/ethernet/xilinx/ll_temac_main.c +++ linux-3.11.0/drivers/net/ethernet/xilinx/ll_temac_main.c @@ -297,6 +297,12 @@ lp->rx_bd_p + (sizeof(*lp->rx_bd_v) * (RX_BD_NUM - 1))); lp->dma_out(lp, TX_CURDESC_PTR, lp->tx_bd_p); + /* Init descriptor indexes */ + lp->tx_bd_ci = 0; + lp->tx_bd_next = 0; + lp->tx_bd_tail = 0; + lp->rx_bd_ci = 0; + return 0; out: --- linux-3.11.0.orig/drivers/net/ethernet/broadcom/tg3.c +++ linux-3.11.0/drivers/net/ethernet/broadcom/tg3.c @@ -326,6 +326,7 @@ {PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, TG3PCI_DEVICE_TIGON3_57785)}, {PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, TG3PCI_DEVICE_TIGON3_57761)}, {PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, TG3PCI_DEVICE_TIGON3_57765)}, + {PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, TG3PCI_DEVICE_TIGON3_57786)}, {PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, TG3PCI_DEVICE_TIGON3_57791), .driver_data = TG3_DRV_DATA_FLAG_10_100_ONLY}, {PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, TG3PCI_DEVICE_TIGON3_57795), @@ -3030,6 +3031,20 @@ return false; } +static bool tg3_phy_led_bug(struct tg3 *tp) +{ + switch (tg3_asic_rev(tp)) { + case ASIC_REV_5719: + case ASIC_REV_5720: + if ((tp->phy_flags & TG3_PHYFLG_MII_SERDES) && + !tp->pci_fn) + return true; + return false; + } + + return false; +} + static void tg3_power_down_phy(struct tg3 *tp, bool do_low_power) { u32 val; @@ -3077,8 +3092,9 @@ } return; } else if (do_low_power) { - tg3_writephy(tp, MII_TG3_EXT_CTRL, - MII_TG3_EXT_CTRL_FORCE_LED_OFF); + if (!tg3_phy_led_bug(tp)) + tg3_writephy(tp, MII_TG3_EXT_CTRL, + MII_TG3_EXT_CTRL_FORCE_LED_OFF); val = MII_TG3_AUXCTL_PCTL_100TX_LPWR | MII_TG3_AUXCTL_PCTL_SPR_ISOLATE | --- linux-3.11.0.orig/drivers/net/ethernet/broadcom/bgmac.h +++ linux-3.11.0/drivers/net/ethernet/broadcom/bgmac.h @@ -333,7 +333,7 @@ #define BGMAC_CHIPCTL_1_IF_TYPE_MASK 0x00000030 #define BGMAC_CHIPCTL_1_IF_TYPE_RMII 0x00000000 -#define BGMAC_CHIPCTL_1_IF_TYPE_MI 0x00000010 +#define BGMAC_CHIPCTL_1_IF_TYPE_MII 0x00000010 #define BGMAC_CHIPCTL_1_IF_TYPE_RGMII 0x00000020 #define BGMAC_CHIPCTL_1_SW_TYPE_MASK 0x000000C0 #define BGMAC_CHIPCTL_1_SW_TYPE_EPHY 0x00000000 --- linux-3.11.0.orig/drivers/net/ethernet/broadcom/bgmac.c +++ linux-3.11.0/drivers/net/ethernet/broadcom/bgmac.c @@ -908,7 +908,7 @@ struct bcma_drv_cc *cc = &bgmac->core->bus->drv_cc; u8 et_swtype = 0; u8 sw_type = BGMAC_CHIPCTL_1_SW_TYPE_EPHY | - BGMAC_CHIPCTL_1_IF_TYPE_RMII; + BGMAC_CHIPCTL_1_IF_TYPE_MII; char buf[2]; if (bcm47xx_nvram_getenv("et_swtype", buf, 1) > 0) { --- linux-3.11.0.orig/drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c +++ linux-3.11.0/drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c @@ -676,6 +676,7 @@ } } #endif + skb_record_rx_queue(skb, fp->rx_queue); napi_gro_receive(&fp->napi, skb); } --- linux-3.11.0.orig/drivers/net/ethernet/via/via-rhine.c +++ linux-3.11.0/drivers/net/ethernet/via/via-rhine.c @@ -32,7 +32,7 @@ #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt #define DRV_NAME "via-rhine" -#define DRV_VERSION "1.5.0" +#define DRV_VERSION "1.5.1" #define DRV_RELDATE "2010-10-09" #include @@ -1704,7 +1704,12 @@ cpu_to_le32(TXDESC | (skb->len >= ETH_ZLEN ? skb->len : ETH_ZLEN)); if (unlikely(vlan_tx_tag_present(skb))) { - rp->tx_ring[entry].tx_status = cpu_to_le32((vlan_tx_tag_get(skb)) << 16); + u16 vid_pcp = vlan_tx_tag_get(skb); + + /* drop CFI/DEI bit, register needs VID and PCP */ + vid_pcp = (vid_pcp & VLAN_VID_MASK) | + ((vid_pcp & VLAN_PRIO_MASK) >> 1); + rp->tx_ring[entry].tx_status = cpu_to_le32((vid_pcp) << 16); /* request tagging */ rp->tx_ring[entry].desc_length |= cpu_to_le32(0x020000); } --- linux-3.11.0.orig/drivers/net/ethernet/realtek/r8169.c +++ linux-3.11.0/drivers/net/ethernet/realtek/r8169.c @@ -4230,6 +4230,7 @@ case RTL_GIGA_MAC_VER_23: case RTL_GIGA_MAC_VER_24: case RTL_GIGA_MAC_VER_34: + case RTL_GIGA_MAC_VER_35: RTL_W32(RxConfig, RX128_INT_EN | RX_MULTI_EN | RX_DMA_BURST); break; case RTL_GIGA_MAC_VER_40: --- linux-3.11.0.orig/drivers/net/ethernet/ti/davinci_emac.c +++ linux-3.11.0/drivers/net/ethernet/ti/davinci_emac.c @@ -876,8 +876,7 @@ netdev_mc_count(ndev) > EMAC_DEF_MAX_MULTICAST_ADDRESSES) { mbp_enable = (mbp_enable | EMAC_MBP_RXMCAST); emac_add_mcast(priv, EMAC_ALL_MULTI_SET, NULL); - } - if (!netdev_mc_empty(ndev)) { + } else if (!netdev_mc_empty(ndev)) { struct netdev_hw_addr *ha; mbp_enable = (mbp_enable | EMAC_MBP_RXMCAST); --- linux-3.11.0.orig/drivers/net/ethernet/calxeda/xgmac.c +++ linux-3.11.0/drivers/net/ethernet/calxeda/xgmac.c @@ -106,7 +106,6 @@ #define XGMAC_DMA_HW_FEATURE 0x00000f58 /* Enabled Hardware Features */ #define XGMAC_ADDR_AE 0x80000000 -#define XGMAC_MAX_FILTER_ADDR 31 /* PMT Control and Status */ #define XGMAC_PMT_POINTER_RESET 0x80000000 @@ -353,16 +352,21 @@ /* Receive errors */ unsigned long rx_watchdog; unsigned long rx_da_filter_fail; - unsigned long rx_sa_filter_fail; unsigned long rx_payload_error; unsigned long rx_ip_header_error; /* Tx/Rx IRQ errors */ - unsigned long tx_undeflow; unsigned long tx_process_stopped; unsigned long rx_buf_unav; unsigned long rx_process_stopped; unsigned long tx_early; unsigned long fatal_bus_error; + unsigned long learning_drop; +}; + +struct xgmac_mac { + char mac_addr[ETH_ALEN]; + unsigned long time; + bool rm_pending; }; struct xgmac_priv { @@ -386,6 +390,9 @@ struct device *device; struct napi_struct napi; + int max_macs; + struct xgmac_mac mac_list[32]; + struct xgmac_extra_stats xstats; spinlock_t stats_lock; @@ -393,6 +400,8 @@ char rx_pause; char tx_pause; int wolopts; + struct work_struct tx_timeout_work; + struct delayed_work mac_aging_work; }; /* XGMAC Configuration Settings */ @@ -409,6 +418,9 @@ #define dma_ring_space(h, t, s) CIRC_SPACE(h, t, s) #define dma_ring_cnt(h, t, s) CIRC_CNT(h, t, s) +#define tx_dma_ring_space(p) \ + dma_ring_space((p)->tx_head, (p)->tx_tail, DMA_TX_RING_SZ) + /* XGMAC Descriptor Access Helpers */ static inline void desc_set_buf_len(struct xgmac_dma_desc *p, u32 buf_sz) { @@ -421,7 +433,7 @@ static inline int desc_get_buf_len(struct xgmac_dma_desc *p) { - u32 len = cpu_to_le32(p->flags); + u32 len = le32_to_cpu(p->buf_size); return (len & DESC_BUFFER1_SZ_MASK) + ((len & DESC_BUFFER2_SZ_MASK) >> DESC_BUFFER2_SZ_OFFSET); } @@ -464,11 +476,23 @@ p->flags = cpu_to_le32(tmpflags); } +static inline void desc_clear_tx_owner(struct xgmac_dma_desc *p) +{ + u32 tmpflags = le32_to_cpu(p->flags); + tmpflags &= TXDESC_END_RING; + p->flags = cpu_to_le32(tmpflags); +} + static inline int desc_get_tx_ls(struct xgmac_dma_desc *p) { return le32_to_cpu(p->flags) & TXDESC_LAST_SEG; } +static inline int desc_get_tx_fs(struct xgmac_dma_desc *p) +{ + return le32_to_cpu(p->flags) & TXDESC_FIRST_SEG; +} + static inline u32 desc_get_buf_addr(struct xgmac_dma_desc *p) { return le32_to_cpu(p->buf1_addr); @@ -609,13 +633,18 @@ { u32 data; - data = (addr[5] << 8) | addr[4] | (num ? XGMAC_ADDR_AE : 0); - writel(data, ioaddr + XGMAC_ADDR_HIGH(num)); - data = (addr[3] << 24) | (addr[2] << 16) | (addr[1] << 8) | addr[0]; - writel(data, ioaddr + XGMAC_ADDR_LOW(num)); + if (addr) { + data = (addr[5] << 8) | addr[4] | (num ? XGMAC_ADDR_AE : 0); + writel(data, ioaddr + XGMAC_ADDR_HIGH(num)); + data = (addr[3] << 24) | (addr[2] << 16) | (addr[1] << 8) | addr[0]; + writel(data, ioaddr + XGMAC_ADDR_LOW(num)); + } else { + writel(0, ioaddr + XGMAC_ADDR_HIGH(num)); + writel(0, ioaddr + XGMAC_ADDR_LOW(num)); + } } -static void xgmac_get_mac_addr(void __iomem *ioaddr, unsigned char *addr, +static bool xgmac_get_mac_addr(void __iomem *ioaddr, unsigned char *addr, int num) { u32 hi_addr, lo_addr; @@ -631,6 +660,8 @@ addr[3] = (lo_addr >> 24) & 0xff; addr[4] = hi_addr & 0xff; addr[5] = (hi_addr >> 8) & 0xff; + + return (hi_addr & XGMAC_ADDR_AE) ? true : false; } static int xgmac_set_flow_ctrl(struct xgmac_priv *priv, int rx, int tx) @@ -683,9 +714,14 @@ if (unlikely(skb == NULL)) break; - priv->rx_skbuff[entry] = skb; paddr = dma_map_single(priv->device, skb->data, - bufsz, DMA_FROM_DEVICE); + priv->dma_buf_sz - NET_IP_ALIGN, + DMA_FROM_DEVICE); + if (dma_mapping_error(priv->device, paddr)) { + dev_kfree_skb_any(skb); + break; + } + priv->rx_skbuff[entry] = skb; desc_set_buf_addr(p, paddr, priv->dma_buf_sz); } @@ -782,20 +818,21 @@ return; for (i = 0; i < DMA_RX_RING_SZ; i++) { - if (priv->rx_skbuff[i] == NULL) + struct sk_buff *skb = priv->rx_skbuff[i]; + if (skb == NULL) continue; p = priv->dma_rx + i; dma_unmap_single(priv->device, desc_get_buf_addr(p), - priv->dma_buf_sz, DMA_FROM_DEVICE); - dev_kfree_skb_any(priv->rx_skbuff[i]); + priv->dma_buf_sz - NET_IP_ALIGN, DMA_FROM_DEVICE); + dev_kfree_skb_any(skb); priv->rx_skbuff[i] = NULL; } } static void xgmac_free_tx_skbufs(struct xgmac_priv *priv) { - int i, f; + int i; struct xgmac_dma_desc *p; if (!priv->tx_skbuff) @@ -806,16 +843,15 @@ continue; p = priv->dma_tx + i; - dma_unmap_single(priv->device, desc_get_buf_addr(p), - desc_get_buf_len(p), DMA_TO_DEVICE); - - for (f = 0; f < skb_shinfo(priv->tx_skbuff[i])->nr_frags; f++) { - p = priv->dma_tx + i++; + if (desc_get_tx_fs(p)) + dma_unmap_single(priv->device, desc_get_buf_addr(p), + desc_get_buf_len(p), DMA_TO_DEVICE); + else dma_unmap_page(priv->device, desc_get_buf_addr(p), desc_get_buf_len(p), DMA_TO_DEVICE); - } - dev_kfree_skb_any(priv->tx_skbuff[i]); + if (desc_get_tx_ls(p)) + dev_kfree_skb_any(priv->tx_skbuff[i]); priv->tx_skbuff[i] = NULL; } } @@ -852,8 +888,6 @@ */ static void xgmac_tx_complete(struct xgmac_priv *priv) { - int i; - while (dma_ring_cnt(priv->tx_head, priv->tx_tail, DMA_TX_RING_SZ)) { unsigned int entry = priv->tx_tail; struct sk_buff *skb = priv->tx_skbuff[entry]; @@ -863,55 +897,45 @@ if (desc_get_owner(p)) break; - /* Verify tx error by looking at the last segment */ - if (desc_get_tx_ls(p)) - desc_get_tx_status(priv, p); - netdev_dbg(priv->dev, "tx ring: curr %d, dirty %d\n", priv->tx_head, priv->tx_tail); - dma_unmap_single(priv->device, desc_get_buf_addr(p), - desc_get_buf_len(p), DMA_TO_DEVICE); - - priv->tx_skbuff[entry] = NULL; - priv->tx_tail = dma_ring_incr(entry, DMA_TX_RING_SZ); - - if (!skb) { - continue; - } - - for (i = 0; i < skb_shinfo(skb)->nr_frags; i++) { - entry = priv->tx_tail = dma_ring_incr(priv->tx_tail, - DMA_TX_RING_SZ); - p = priv->dma_tx + priv->tx_tail; - + if (desc_get_tx_fs(p)) + dma_unmap_single(priv->device, desc_get_buf_addr(p), + desc_get_buf_len(p), DMA_TO_DEVICE); + else dma_unmap_page(priv->device, desc_get_buf_addr(p), desc_get_buf_len(p), DMA_TO_DEVICE); + + /* Check tx error on the last segment */ + if (desc_get_tx_ls(p)) { + desc_get_tx_status(priv, p); + dev_kfree_skb(skb); } - dev_kfree_skb(skb); + priv->tx_skbuff[entry] = NULL; + priv->tx_tail = dma_ring_incr(entry, DMA_TX_RING_SZ); } - if (dma_ring_space(priv->tx_head, priv->tx_tail, DMA_TX_RING_SZ) > - MAX_SKB_FRAGS) + /* Ensure tx_tail is visible to xgmac_xmit */ + smp_mb(); + if (unlikely(netif_queue_stopped(priv->dev) && + (tx_dma_ring_space(priv) > MAX_SKB_FRAGS))) netif_wake_queue(priv->dev); } -/** - * xgmac_tx_err: - * @priv: pointer to the private device structure - * Description: it cleans the descriptors and restarts the transmission - * in case of errors. - */ -static void xgmac_tx_err(struct xgmac_priv *priv) +static void xgmac_tx_timeout_work(struct work_struct *work) { - u32 reg, value, inten; + u32 reg, value; + struct xgmac_priv *priv = + container_of(work, struct xgmac_priv, tx_timeout_work); - netif_stop_queue(priv->dev); + napi_disable(&priv->napi); - inten = readl(priv->base + XGMAC_DMA_INTR_ENA); writel(0, priv->base + XGMAC_DMA_INTR_ENA); + netif_tx_lock(priv->dev); + reg = readl(priv->base + XGMAC_DMA_CONTROL); writel(reg & ~DMA_CONTROL_ST, priv->base + XGMAC_DMA_CONTROL); do { @@ -927,9 +951,15 @@ writel(DMA_STATUS_TU | DMA_STATUS_TPS | DMA_STATUS_NIS | DMA_STATUS_AIS, priv->base + XGMAC_DMA_STATUS); - writel(inten, priv->base + XGMAC_DMA_INTR_ENA); + netif_tx_unlock(priv->dev); netif_wake_queue(priv->dev); + + napi_enable(&priv->napi); + + /* Enable interrupts */ + writel(DMA_INTR_DEFAULT_MASK, priv->base + XGMAC_DMA_STATUS); + writel(DMA_INTR_DEFAULT_MASK, priv->base + XGMAC_DMA_INTR_ENA); } static int xgmac_hw_init(struct net_device *dev) @@ -957,9 +987,7 @@ DMA_BUS_MODE_FB | DMA_BUS_MODE_ATDS | DMA_BUS_MODE_AAL; writel(value, ioaddr + XGMAC_DMA_BUS_MODE); - /* Enable interrupts */ - writel(DMA_INTR_DEFAULT_MASK, ioaddr + XGMAC_DMA_STATUS); - writel(DMA_INTR_DEFAULT_MASK, ioaddr + XGMAC_DMA_INTR_ENA); + writel(0, ioaddr + XGMAC_DMA_INTR_ENA); /* Mask power mgt interrupt */ writel(XGMAC_INT_STAT_PMTIM, ioaddr + XGMAC_INT_STAT); @@ -1027,6 +1055,12 @@ napi_enable(&priv->napi); netif_start_queue(dev); + /* Enable interrupts */ + writel(DMA_INTR_DEFAULT_MASK, ioaddr + XGMAC_DMA_STATUS); + writel(DMA_INTR_DEFAULT_MASK, ioaddr + XGMAC_DMA_INTR_ENA); + + schedule_delayed_work(&priv->mac_aging_work, 5 * HZ); + return 0; } @@ -1039,6 +1073,7 @@ static int xgmac_stop(struct net_device *dev) { struct xgmac_priv *priv = netdev_priv(dev); + int i; netif_stop_queue(dev); @@ -1053,9 +1088,111 @@ /* Release and free the Rx/Tx resources */ xgmac_free_dma_desc_rings(priv); + cancel_delayed_work_sync(&priv->mac_aging_work); + for (i = 0; i < priv->max_macs; i++) { + if (!is_valid_ether_addr(priv->mac_list[i].mac_addr)) + continue; + dev_uc_del(dev, priv->mac_list[i].mac_addr); + memset(&priv->mac_list[i], 0, sizeof(priv->mac_list[i])); + } + return 0; } +static void xgmac_check_mac_addrs(struct xgmac_priv *priv) +{ + int i, j; + char addr[ETH_ALEN]; + + for (i = 1; i < priv->max_macs; i++) { + if (xgmac_get_mac_addr(priv->base, addr, i)) + continue; + + if (!is_valid_ether_addr(addr)) + break; + + for (j = 1; j < priv->max_macs; j++) { + if (!ether_addr_equal(addr, priv->mac_list[j].mac_addr)) + continue; + priv->mac_list[j].rm_pending = true; + break; + } + } +} + +static bool xgmac_mac_rm_pending(struct xgmac_priv *priv, const u8 *addr) +{ + int i; + + for (i = 1; i < priv->max_macs; i++) { + if (ether_addr_equal(addr, priv->mac_list[i].mac_addr) && + priv->mac_list[i].rm_pending) + return true; + } + return false; +} + +static void xgmac_mac_aging_work(struct work_struct *work) +{ + int i; + struct xgmac_priv *priv = + container_of(work, struct xgmac_priv, mac_aging_work.work); + struct net_device *dev = priv->dev; + + xgmac_check_mac_addrs(priv); + + for (i = 1; i < priv->max_macs; i++) { + if (!priv->mac_list[i].rm_pending) + continue; + + dev_uc_del(dev, priv->mac_list[i].mac_addr); + priv->mac_list[i].rm_pending = false; + priv->mac_list[i].time = 0; + memset(priv->mac_list[i].mac_addr, 0, ETH_ALEN); + } + + schedule_delayed_work(to_delayed_work(work), 10 * HZ); +} + +static void xgmac_learn_mac(struct xgmac_priv *priv, struct sk_buff *skb) +{ + struct net_device *dev = priv->dev; + struct ethhdr *phdr = (struct ethhdr *)(skb->data); + char *src_addr = phdr->h_source; + int i, slot = -1, oldest_slot = -1; + unsigned long oldest_time = jiffies; + + if (ether_addr_equal(src_addr, dev->dev_addr) || + !is_valid_ether_addr(src_addr)) + return; + + for (i = 0; i < priv->max_macs; i++) { + /* update timestamp if we already learned the address */ + if (ether_addr_equal(priv->mac_list[i].mac_addr, src_addr)) { + priv->mac_list[i].time = jiffies; + return; + } + /* find empty slot */ + if (slot >= 0) + continue; + if (!priv->mac_list[i].time) + slot = i; + else if (time_before(priv->mac_list[i].time, oldest_time)) { + oldest_time = priv->mac_list[i].time; + oldest_slot = i; + } + } + if ((slot < 0) && (oldest_slot >= 0)) { + slot = oldest_slot; + priv->xstats.learning_drop++; + dev_uc_del(dev, priv->mac_list[slot].mac_addr); + } + + memcpy(priv->mac_list[slot].mac_addr, src_addr, ETH_ALEN); + dev_uc_add_excl(dev, src_addr); + priv->mac_list[slot].time = jiffies; +} + /** * xgmac_xmit: * @skb : the socket buffer @@ -1087,7 +1224,7 @@ paddr = dma_map_single(priv->device, skb->data, len, DMA_TO_DEVICE); if (dma_mapping_error(priv->device, paddr)) { dev_kfree_skb(skb); - return -EIO; + return NETDEV_TX_OK; } priv->tx_skbuff[entry] = skb; desc_set_buf_addr_and_size(desc, paddr, len); @@ -1099,14 +1236,12 @@ paddr = skb_frag_dma_map(priv->device, frag, 0, len, DMA_TO_DEVICE); - if (dma_mapping_error(priv->device, paddr)) { - dev_kfree_skb(skb); - return -EIO; - } + if (dma_mapping_error(priv->device, paddr)) + goto dma_err; entry = dma_ring_incr(entry, DMA_TX_RING_SZ); desc = priv->dma_tx + entry; - priv->tx_skbuff[entry] = NULL; + priv->tx_skbuff[entry] = skb; desc_set_buf_addr_and_size(desc, paddr, len); if (i < (nfrags - 1)) @@ -1124,13 +1259,38 @@ wmb(); desc_set_tx_owner(first, desc_flags | TXDESC_FIRST_SEG); + writel(1, priv->base + XGMAC_DMA_TX_POLL); + priv->tx_head = dma_ring_incr(entry, DMA_TX_RING_SZ); - writel(1, priv->base + XGMAC_DMA_TX_POLL); - if (dma_ring_space(priv->tx_head, priv->tx_tail, DMA_TX_RING_SZ) < - MAX_SKB_FRAGS) + /* Ensure tx_head update is visible to tx completion */ + smp_mb(); + if (unlikely(tx_dma_ring_space(priv) <= MAX_SKB_FRAGS)) { netif_stop_queue(dev); + /* Ensure netif_stop_queue is visible to tx completion */ + smp_mb(); + if (tx_dma_ring_space(priv) > MAX_SKB_FRAGS) + netif_start_queue(dev); + } + xgmac_learn_mac(priv, skb); + + return NETDEV_TX_OK; + +dma_err: + entry = priv->tx_head; + for ( ; i > 0; i--) { + entry = dma_ring_incr(entry, DMA_TX_RING_SZ); + desc = priv->dma_tx + entry; + priv->tx_skbuff[entry] = NULL; + dma_unmap_page(priv->device, desc_get_buf_addr(desc), + desc_get_buf_len(desc), DMA_TO_DEVICE); + desc_clear_tx_owner(desc); + } + desc = first; + dma_unmap_single(priv->device, desc_get_buf_addr(desc), + desc_get_buf_len(desc), DMA_TO_DEVICE); + dev_kfree_skb(skb); return NETDEV_TX_OK; } @@ -1174,7 +1334,7 @@ skb_put(skb, frame_len); dma_unmap_single(priv->device, desc_get_buf_addr(p), - frame_len, DMA_FROM_DEVICE); + priv->dma_buf_sz - NET_IP_ALIGN, DMA_FROM_DEVICE); skb->protocol = eth_type_trans(skb, priv->dev); skb->ip_summed = ip_checksum; @@ -1225,9 +1385,7 @@ static void xgmac_tx_timeout(struct net_device *dev) { struct xgmac_priv *priv = netdev_priv(dev); - - /* Clear Tx resources and restart transmitting again */ - xgmac_tx_err(priv); + schedule_work(&priv->tx_timeout_work); } /** @@ -1253,14 +1411,14 @@ netdev_dbg(priv->dev, "# mcasts %d, # unicast %d\n", netdev_mc_count(dev), netdev_uc_count(dev)); - if (dev->flags & IFF_PROMISC) { - writel(XGMAC_FRAME_FILTER_PR, ioaddr + XGMAC_FRAME_FILTER); - return; - } + xgmac_check_mac_addrs(priv); + + if (dev->flags & IFF_PROMISC) + value |= XGMAC_FRAME_FILTER_PR; memset(hash_filter, 0, sizeof(hash_filter)); - if (netdev_uc_count(dev) > XGMAC_MAX_FILTER_ADDR) { + if (netdev_uc_count(dev) > priv->max_macs) { use_hash = true; value |= XGMAC_FRAME_FILTER_HUC | XGMAC_FRAME_FILTER_HPF; } @@ -1273,6 +1431,8 @@ * within the register. */ hash_filter[bit_nr >> 5] |= 1 << (bit_nr & 31); } else { + if (xgmac_mac_rm_pending(priv, ha->addr)) + continue; xgmac_set_mac_addr(ioaddr, ha->addr, reg); reg++; } @@ -1283,9 +1443,11 @@ goto out; } - if ((netdev_mc_count(dev) + reg - 1) > XGMAC_MAX_FILTER_ADDR) { + if ((netdev_mc_count(dev) + reg - 1) > priv->max_macs) { use_hash = true; value |= XGMAC_FRAME_FILTER_HMC | XGMAC_FRAME_FILTER_HPF; + } else { + use_hash = false; } netdev_for_each_mc_addr(ha, dev) { if (use_hash) { @@ -1302,6 +1464,8 @@ } out: + for (i = reg; i <= priv->max_macs; i++) + xgmac_set_mac_addr(ioaddr, NULL, i); for (i = 0; i < XGMAC_NUM_HASH; i++) writel(hash_filter[i], ioaddr + XGMAC_HASH(i)); @@ -1366,7 +1530,6 @@ static irqreturn_t xgmac_interrupt(int irq, void *dev_id) { u32 intr_status; - bool tx_err = false; struct net_device *dev = (struct net_device *)dev_id; struct xgmac_priv *priv = netdev_priv(dev); struct xgmac_extra_stats *x = &priv->xstats; @@ -1396,16 +1559,12 @@ if (intr_status & DMA_STATUS_TPS) { netdev_err(priv->dev, "transmit process stopped\n"); x->tx_process_stopped++; - tx_err = true; + schedule_work(&priv->tx_timeout_work); } if (intr_status & DMA_STATUS_FBI) { netdev_err(priv->dev, "fatal bus error\n"); x->fatal_bus_error++; - tx_err = true; } - - if (tx_err) - xgmac_tx_err(priv); } /* TX/RX NORMAL interrupts */ @@ -1569,8 +1728,8 @@ XGMAC_STAT(rx_payload_error), XGMAC_STAT(rx_ip_header_error), XGMAC_STAT(rx_da_filter_fail), - XGMAC_STAT(rx_sa_filter_fail), XGMAC_STAT(fatal_bus_error), + XGMAC_STAT(learning_drop), XGMAC_HW_STAT(rx_watchdog, XGMAC_MMC_RXWATCHDOG), XGMAC_HW_STAT(tx_vlan, XGMAC_MMC_TXVLANFRAME), XGMAC_HW_STAT(rx_vlan, XGMAC_MMC_RXVLANFRAME), @@ -1708,6 +1867,8 @@ ndev->netdev_ops = &xgmac_netdev_ops; SET_ETHTOOL_OPS(ndev, &xgmac_ethtool_ops); spin_lock_init(&priv->stats_lock); + INIT_WORK(&priv->tx_timeout_work, xgmac_tx_timeout_work); + INIT_DELAYED_WORK(&priv->mac_aging_work, xgmac_mac_aging_work); priv->device = &pdev->dev; priv->dev = ndev; @@ -1724,6 +1885,13 @@ uid = readl(priv->base + XGMAC_VERSION); netdev_info(ndev, "h/w version is 0x%x\n", uid); + /* Figure out how many valid mac address filter registers we have */ + writel(1, priv->base + XGMAC_ADDR_HIGH(31)); + if (readl(priv->base + XGMAC_ADDR_HIGH(31)) == 1) + priv->max_macs = 31; + else + priv->max_macs = 7; + writel(0, priv->base + XGMAC_DMA_INTR_ENA); ndev->irq = platform_get_irq(pdev, 0); if (ndev->irq == -ENXIO) { @@ -1759,7 +1927,7 @@ if (device_can_wakeup(priv->device)) priv->wolopts = WAKE_MAGIC; /* Magic Frame as default */ - ndev->hw_features = NETIF_F_SG | NETIF_F_FRAGLIST | NETIF_F_HIGHDMA; + ndev->hw_features = NETIF_F_SG | NETIF_F_HIGHDMA; if (readl(priv->base + XGMAC_DMA_HW_FEATURE) & DMA_HW_FEAT_TXCOESEL) ndev->hw_features |= NETIF_F_IP_CSUM | NETIF_F_IPV6_CSUM | NETIF_F_RXCSUM; --- linux-3.11.0.orig/drivers/net/ethernet/chelsio/cxgb3/sge.c +++ linux-3.11.0/drivers/net/ethernet/chelsio/cxgb3/sge.c @@ -1599,7 +1599,8 @@ flits = skb_transport_offset(skb) / 8; sgp = ndesc == 1 ? (struct sg_ent *)&d->flit[flits] : sgl; sgl_flits = make_sgl(skb, sgp, skb_transport_header(skb), - skb->tail - skb->transport_header, + skb_tail_pointer(skb) - + skb_transport_header(skb), adap->pdev); if (need_skb_unmap()) { setup_deferred_unmapping(skb, adap->pdev, sgp, sgl_flits); --- linux-3.11.0.orig/drivers/net/ethernet/atheros/alx/main.c +++ linux-3.11.0/drivers/net/ethernet/atheros/alx/main.c @@ -1394,6 +1394,9 @@ { struct pci_dev *pdev = to_pci_dev(dev); struct alx_priv *alx = pci_get_drvdata(pdev); + struct alx_hw *hw = &alx->hw; + + alx_reset_phy(hw); if (!netif_running(alx->dev)) return 0; --- linux-3.11.0.orig/drivers/net/ethernet/arc/emac_main.c +++ linux-3.11.0/drivers/net/ethernet/arc/emac_main.c @@ -149,8 +149,6 @@ struct sk_buff *skb = tx_buff->skb; unsigned int info = le32_to_cpu(txbd->info); - *txbd_dirty = (*txbd_dirty + 1) % TX_BD_NUM; - if ((info & FOR_EMAC) || !txbd->data) break; @@ -180,6 +178,8 @@ txbd->data = 0; txbd->info = 0; + *txbd_dirty = (*txbd_dirty + 1) % TX_BD_NUM; + if (netif_queue_stopped(ndev)) netif_wake_queue(ndev); } --- linux-3.11.0.orig/drivers/net/ethernet/mellanox/mlx4/mlx4_en.h +++ linux-3.11.0/drivers/net/ethernet/mellanox/mlx4/mlx4_en.h @@ -237,8 +237,8 @@ struct mlx4_en_rx_alloc { struct page *page; dma_addr_t dma; - u32 offset; - u32 size; + u32 page_offset; + u32 page_size; }; struct mlx4_en_tx_ring { --- linux-3.11.0.orig/drivers/net/ethernet/mellanox/mlx4/cmd.c +++ linux-3.11.0/drivers/net/ethernet/mellanox/mlx4/cmd.c @@ -1673,7 +1673,7 @@ vp_oper->vlan_idx = NO_INDX; } if (NO_INDX != vp_oper->mac_idx) { - __mlx4_unregister_mac(&priv->dev, port, vp_oper->mac_idx); + __mlx4_unregister_mac(&priv->dev, port, vp_oper->state.mac); vp_oper->mac_idx = NO_INDX; } } --- linux-3.11.0.orig/drivers/net/ethernet/mellanox/mlx4/en_rx.c +++ linux-3.11.0/drivers/net/ethernet/mellanox/mlx4/en_rx.c @@ -70,14 +70,15 @@ put_page(page); return -ENOMEM; } - page_alloc->size = PAGE_SIZE << order; + page_alloc->page_size = PAGE_SIZE << order; page_alloc->page = page; page_alloc->dma = dma; - page_alloc->offset = frag_info->frag_align; + page_alloc->page_offset = frag_info->frag_align; /* Not doing get_page() for each frag is a big win * on asymetric workloads. */ - atomic_set(&page->_count, page_alloc->size / frag_info->frag_stride); + atomic_set(&page->_count, + page_alloc->page_size / frag_info->frag_stride); return 0; } @@ -96,16 +97,19 @@ for (i = 0; i < priv->num_frags; i++) { frag_info = &priv->frag_info[i]; page_alloc[i] = ring_alloc[i]; - page_alloc[i].offset += frag_info->frag_stride; - if (page_alloc[i].offset + frag_info->frag_stride <= ring_alloc[i].size) + page_alloc[i].page_offset += frag_info->frag_stride; + + if (page_alloc[i].page_offset + frag_info->frag_stride <= + ring_alloc[i].page_size) continue; + if (mlx4_alloc_pages(priv, &page_alloc[i], frag_info, gfp)) goto out; } for (i = 0; i < priv->num_frags; i++) { frags[i] = ring_alloc[i]; - dma = ring_alloc[i].dma + ring_alloc[i].offset; + dma = ring_alloc[i].dma + ring_alloc[i].page_offset; ring_alloc[i] = page_alloc[i]; rx_desc->data[i].addr = cpu_to_be64(dma); } @@ -117,7 +121,7 @@ frag_info = &priv->frag_info[i]; if (page_alloc[i].page != ring_alloc[i].page) { dma_unmap_page(priv->ddev, page_alloc[i].dma, - page_alloc[i].size, PCI_DMA_FROMDEVICE); + page_alloc[i].page_size, PCI_DMA_FROMDEVICE); page = page_alloc[i].page; atomic_set(&page->_count, 1); put_page(page); @@ -131,10 +135,12 @@ int i) { const struct mlx4_en_frag_info *frag_info = &priv->frag_info[i]; + u32 next_frag_end = frags[i].page_offset + 2 * frag_info->frag_stride; + - if (frags[i].offset + frag_info->frag_stride > frags[i].size) - dma_unmap_page(priv->ddev, frags[i].dma, frags[i].size, - PCI_DMA_FROMDEVICE); + if (next_frag_end > frags[i].page_size) + dma_unmap_page(priv->ddev, frags[i].dma, frags[i].page_size, + PCI_DMA_FROMDEVICE); if (frags[i].page) put_page(frags[i].page); @@ -161,7 +167,7 @@ page_alloc = &ring->page_alloc[i]; dma_unmap_page(priv->ddev, page_alloc->dma, - page_alloc->size, PCI_DMA_FROMDEVICE); + page_alloc->page_size, PCI_DMA_FROMDEVICE); page = page_alloc->page; atomic_set(&page->_count, 1); put_page(page); @@ -184,10 +190,11 @@ i, page_count(page_alloc->page)); dma_unmap_page(priv->ddev, page_alloc->dma, - page_alloc->size, PCI_DMA_FROMDEVICE); - while (page_alloc->offset + frag_info->frag_stride < page_alloc->size) { + page_alloc->page_size, PCI_DMA_FROMDEVICE); + while (page_alloc->page_offset + frag_info->frag_stride < + page_alloc->page_size) { put_page(page_alloc->page); - page_alloc->offset += frag_info->frag_stride; + page_alloc->page_offset += frag_info->frag_stride; } page_alloc->page = NULL; } @@ -478,7 +485,7 @@ /* Save page reference in skb */ __skb_frag_set_page(&skb_frags_rx[nr], frags[nr].page); skb_frag_size_set(&skb_frags_rx[nr], frag_info->frag_size); - skb_frags_rx[nr].page_offset = frags[nr].offset; + skb_frags_rx[nr].page_offset = frags[nr].page_offset; skb->truesize += frag_info->frag_stride; frags[nr].page = NULL; } @@ -517,7 +524,7 @@ /* Get pointer to first fragment so we could copy the headers into the * (linear part of the) skb */ - va = page_address(frags[0].page) + frags[0].offset; + va = page_address(frags[0].page) + frags[0].page_offset; if (length <= SMALL_PACKET_SIZE) { /* We are copying all relevant data to the skb - temporarily @@ -645,7 +652,7 @@ dma_sync_single_for_cpu(priv->ddev, dma, sizeof(*ethh), DMA_FROM_DEVICE); ethh = (struct ethhdr *)(page_address(frags[0].page) + - frags[0].offset); + frags[0].page_offset); if (is_multicast_ether_addr(ethh->h_dest)) { struct mlx4_mac_entry *entry; --- linux-3.11.0.orig/drivers/net/ppp/pptp.c +++ linux-3.11.0/drivers/net/ppp/pptp.c @@ -281,7 +281,7 @@ nf_reset(skb); skb->ip_summed = CHECKSUM_NONE; - ip_select_ident(iph, &rt->dst, NULL); + ip_select_ident(skb, &rt->dst, NULL); ip_send_check(iph); ip_local_out(skb); --- linux-3.11.0.orig/drivers/net/bonding/bond_main.c +++ linux-3.11.0/drivers/net/bonding/bond_main.c @@ -1947,6 +1947,7 @@ struct bonding *bond = netdev_priv(bond_dev); struct slave *slave, *oldcurrent; struct sockaddr addr; + int old_flags = bond_dev->flags; netdev_features_t old_features = bond_dev->features; /* slave is not a slave or master is not master of this slave */ @@ -2077,12 +2078,18 @@ * bond_change_active_slave(..., NULL) */ if (!USES_PRIMARY(bond->params.mode)) { - /* unset promiscuity level from slave */ - if (bond_dev->flags & IFF_PROMISC) + /* unset promiscuity level from slave + * NOTE: The NETDEV_CHANGEADDR call above may change the value + * of the IFF_PROMISC flag in the bond_dev, but we need the + * value of that flag before that change, as that was the value + * when this slave was attached, so we cache at the start of the + * function and use it here. Same goes for ALLMULTI below + */ + if (old_flags & IFF_PROMISC) dev_set_promiscuity(slave_dev, -1); /* unset allmulti level from slave */ - if (bond_dev->flags & IFF_ALLMULTI) + if (old_flags & IFF_ALLMULTI) dev_set_allmulti(slave_dev, -1); bond_hw_addr_flush(bond_dev, slave_dev); --- linux-3.11.0.orig/drivers/net/xen-netback/common.h +++ linux-3.11.0/drivers/net/xen-netback/common.h @@ -92,6 +92,7 @@ unsigned long credit_usec; unsigned long remaining_credit; struct timer_list credit_timeout; + u64 credit_window_start; /* Statistics */ unsigned long rx_gso_checksum_fixup; @@ -120,6 +121,7 @@ unsigned long rx_ring_ref, unsigned int tx_evtchn, unsigned int rx_evtchn); void xenvif_disconnect(struct xenvif *vif); +void xenvif_free(struct xenvif *vif); void xenvif_get(struct xenvif *vif); void xenvif_put(struct xenvif *vif); --- linux-3.11.0.orig/drivers/net/xen-netback/netback.c +++ linux-3.11.0/drivers/net/xen-netback/netback.c @@ -361,6 +361,49 @@ return false; } +struct xenvif_count_slot_state { + unsigned long copy_off; + bool head; +}; + +unsigned int xenvif_count_frag_slots(struct xenvif *vif, + unsigned long offset, unsigned long size, + struct xenvif_count_slot_state *state) +{ + unsigned count = 0; + + offset &= ~PAGE_MASK; + + while (size > 0) { + unsigned long bytes; + + bytes = PAGE_SIZE - offset; + + if (bytes > size) + bytes = size; + + if (start_new_rx_buffer(state->copy_off, bytes, state->head)) { + count++; + state->copy_off = 0; + } + + if (state->copy_off + bytes > MAX_BUFFER_OFFSET) + bytes = MAX_BUFFER_OFFSET - state->copy_off; + + state->copy_off += bytes; + + offset += bytes; + size -= bytes; + + if (offset == PAGE_SIZE) + offset = 0; + + state->head = false; + } + + return count; +} + /* * Figure out how many ring slots we're going to need to send @skb to * the guest. This function is essentially a dry run of @@ -368,48 +411,39 @@ */ unsigned int xen_netbk_count_skb_slots(struct xenvif *vif, struct sk_buff *skb) { + struct xenvif_count_slot_state state; unsigned int count; - int i, copy_off; + unsigned char *data; + unsigned i; - count = DIV_ROUND_UP(skb_headlen(skb), PAGE_SIZE); + state.head = true; + state.copy_off = 0; - copy_off = skb_headlen(skb) % PAGE_SIZE; + /* Slot for the first (partial) page of data. */ + count = 1; + /* Need a slot for the GSO prefix for GSO extra data? */ if (skb_shinfo(skb)->gso_size) count++; - for (i = 0; i < skb_shinfo(skb)->nr_frags; i++) { - unsigned long size = skb_frag_size(&skb_shinfo(skb)->frags[i]); - unsigned long offset = skb_shinfo(skb)->frags[i].page_offset; - unsigned long bytes; - - offset &= ~PAGE_MASK; - - while (size > 0) { - BUG_ON(offset >= PAGE_SIZE); - BUG_ON(copy_off > MAX_BUFFER_OFFSET); - - bytes = PAGE_SIZE - offset; - - if (bytes > size) - bytes = size; + data = skb->data; + while (data < skb_tail_pointer(skb)) { + unsigned long offset = offset_in_page(data); + unsigned long size = PAGE_SIZE - offset; - if (start_new_rx_buffer(copy_off, bytes, 0)) { - count++; - copy_off = 0; - } + if (data + size > skb_tail_pointer(skb)) + size = skb_tail_pointer(skb) - data; - if (copy_off + bytes > MAX_BUFFER_OFFSET) - bytes = MAX_BUFFER_OFFSET - copy_off; + count += xenvif_count_frag_slots(vif, offset, size, &state); - copy_off += bytes; + data += size; + } - offset += bytes; - size -= bytes; + for (i = 0; i < skb_shinfo(skb)->nr_frags; i++) { + unsigned long size = skb_frag_size(&skb_shinfo(skb)->frags[i]); + unsigned long offset = skb_shinfo(skb)->frags[i].page_offset; - if (offset == PAGE_SIZE) - offset = 0; - } + count += xenvif_count_frag_slots(vif, offset, size, &state); } return count; } @@ -1396,9 +1430,8 @@ static bool tx_credit_exceeded(struct xenvif *vif, unsigned size) { - unsigned long now = jiffies; - unsigned long next_credit = - vif->credit_timeout.expires + + u64 now = get_jiffies_64(); + u64 next_credit = vif->credit_window_start + msecs_to_jiffies(vif->credit_usec / 1000); /* Timer could already be pending in rare cases. */ @@ -1406,8 +1439,8 @@ return true; /* Passed the point where we can replenish credit? */ - if (time_after_eq(now, next_credit)) { - vif->credit_timeout.expires = now; + if (time_after_eq64(now, next_credit)) { + vif->credit_window_start = now; tx_add_credit(vif); } @@ -1419,6 +1452,7 @@ tx_credit_callback; mod_timer(&vif->credit_timeout, next_credit); + vif->credit_window_start = next_credit; return true; } --- linux-3.11.0.orig/drivers/net/xen-netback/interface.c +++ linux-3.11.0/drivers/net/xen-netback/interface.c @@ -297,8 +297,7 @@ vif->credit_bytes = vif->remaining_credit = ~0UL; vif->credit_usec = 0UL; init_timer(&vif->credit_timeout); - /* Initialize 'expires' now: it's used to track the credit window. */ - vif->credit_timeout.expires = jiffies; + vif->credit_window_start = get_jiffies_64(); dev->netdev_ops = &xenvif_netdev_ops; dev->hw_features = NETIF_F_SG | NETIF_F_IP_CSUM | NETIF_F_TSO; @@ -326,6 +325,9 @@ } netdev_dbg(dev, "Successfully created xenvif\n"); + + __module_get(THIS_MODULE); + return vif; } @@ -413,12 +415,6 @@ void xenvif_disconnect(struct xenvif *vif) { - /* Disconnect funtion might get called by generic framework - * even before vif connects, so we need to check if we really - * need to do a module_put. - */ - int need_module_put = 0; - if (netif_carrier_ok(vif->dev)) xenvif_carrier_off(vif); @@ -432,18 +428,16 @@ unbind_from_irqhandler(vif->tx_irq, vif); unbind_from_irqhandler(vif->rx_irq, vif); } - /* vif->irq is valid, we had a module_get in - * xenvif_connect. - */ - need_module_put = 1; } - unregister_netdev(vif->dev); - xen_netbk_unmap_frontend_rings(vif); +} + +void xenvif_free(struct xenvif *vif) +{ + unregister_netdev(vif->dev); free_netdev(vif->dev); - if (need_module_put) - module_put(THIS_MODULE); + module_put(THIS_MODULE); } --- linux-3.11.0.orig/drivers/net/xen-netback/xenbus.c +++ linux-3.11.0/drivers/net/xen-netback/xenbus.c @@ -24,6 +24,12 @@ struct backend_info { struct xenbus_device *dev; struct xenvif *vif; + + /* This is the state that will be reflected in xenstore when any + * active hotplug script completes. + */ + enum xenbus_state state; + enum xenbus_state frontend_state; struct xenbus_watch hotplug_status_watch; u8 have_hotplug_status_watch:1; @@ -33,16 +39,20 @@ static void connect(struct backend_info *); static void backend_create_xenvif(struct backend_info *be); static void unregister_hotplug_status_watch(struct backend_info *be); +static void set_backend_state(struct backend_info *be, + enum xenbus_state state); static int netback_remove(struct xenbus_device *dev) { struct backend_info *be = dev_get_drvdata(&dev->dev); + set_backend_state(be, XenbusStateClosed); + unregister_hotplug_status_watch(be); if (be->vif) { kobject_uevent(&dev->dev.kobj, KOBJ_OFFLINE); xenbus_rm(XBT_NIL, dev->nodename, "hotplug-status"); - xenvif_disconnect(be->vif); + xenvif_free(be->vif); be->vif = NULL; } kfree(be); @@ -136,6 +146,8 @@ if (err) goto fail; + be->state = XenbusStateInitWait; + /* This kicks hotplug scripts, so do it immediately. */ backend_create_xenvif(be); @@ -208,15 +220,113 @@ kobject_uevent(&dev->dev.kobj, KOBJ_ONLINE); } +static void backend_disconnect(struct backend_info *be) +{ + if (be->vif) + xenvif_disconnect(be->vif); +} + +static void backend_connect(struct backend_info *be) +{ + if (be->vif) + connect(be); +} -static void disconnect_backend(struct xenbus_device *dev) +static inline void backend_switch_state(struct backend_info *be, + enum xenbus_state state) { - struct backend_info *be = dev_get_drvdata(&dev->dev); + struct xenbus_device *dev = be->dev; - if (be->vif) { - xenbus_rm(XBT_NIL, dev->nodename, "hotplug-status"); - xenvif_disconnect(be->vif); - be->vif = NULL; + pr_debug("%s -> %s\n", dev->nodename, xenbus_strstate(state)); + be->state = state; + + /* If we are waiting for a hotplug script then defer the + * actual xenbus state change. + */ + if (!be->have_hotplug_status_watch) + xenbus_switch_state(dev, state); +} + +/* Handle backend state transitions: + * + * The backend state starts in InitWait and the following transitions are + * allowed. + * + * InitWait -> Connected + * + * ^ \ | + * | \ | + * | \ | + * | \ | + * | \ | + * | \ | + * | V V + * + * Closed <-> Closing + * + * The state argument specifies the eventual state of the backend and the + * function transitions to that state via the shortest path. + */ +static void set_backend_state(struct backend_info *be, + enum xenbus_state state) +{ + while (be->state != state) { + switch (be->state) { + case XenbusStateClosed: + switch (state) { + case XenbusStateInitWait: + case XenbusStateConnected: + pr_info("%s: prepare for reconnect\n", + be->dev->nodename); + backend_switch_state(be, XenbusStateInitWait); + break; + case XenbusStateClosing: + backend_switch_state(be, XenbusStateClosing); + break; + default: + BUG(); + } + break; + case XenbusStateInitWait: + switch (state) { + case XenbusStateConnected: + backend_connect(be); + backend_switch_state(be, XenbusStateConnected); + break; + case XenbusStateClosing: + case XenbusStateClosed: + backend_switch_state(be, XenbusStateClosing); + break; + default: + BUG(); + } + break; + case XenbusStateConnected: + switch (state) { + case XenbusStateInitWait: + case XenbusStateClosing: + case XenbusStateClosed: + backend_disconnect(be); + backend_switch_state(be, XenbusStateClosing); + break; + default: + BUG(); + } + break; + case XenbusStateClosing: + switch (state) { + case XenbusStateInitWait: + case XenbusStateConnected: + case XenbusStateClosed: + backend_switch_state(be, XenbusStateClosed); + break; + default: + BUG(); + } + break; + default: + BUG(); + } } } @@ -228,42 +338,33 @@ { struct backend_info *be = dev_get_drvdata(&dev->dev); - pr_debug("frontend state %s\n", xenbus_strstate(frontend_state)); + pr_debug("%s -> %s\n", dev->otherend, xenbus_strstate(frontend_state)); be->frontend_state = frontend_state; switch (frontend_state) { case XenbusStateInitialising: - if (dev->state == XenbusStateClosed) { - pr_info("%s: prepare for reconnect\n", dev->nodename); - xenbus_switch_state(dev, XenbusStateInitWait); - } + set_backend_state(be, XenbusStateInitWait); break; case XenbusStateInitialised: break; case XenbusStateConnected: - if (dev->state == XenbusStateConnected) - break; - backend_create_xenvif(be); - if (be->vif) - connect(be); + set_backend_state(be, XenbusStateConnected); break; case XenbusStateClosing: - if (be->vif) - kobject_uevent(&dev->dev.kobj, KOBJ_OFFLINE); - disconnect_backend(dev); - xenbus_switch_state(dev, XenbusStateClosing); + set_backend_state(be, XenbusStateClosing); break; case XenbusStateClosed: - xenbus_switch_state(dev, XenbusStateClosed); + set_backend_state(be, XenbusStateClosed); if (xenbus_dev_is_online(dev)) break; /* fall through if not online */ case XenbusStateUnknown: + set_backend_state(be, XenbusStateClosed); device_unregister(&dev->dev); break; @@ -356,7 +457,9 @@ if (IS_ERR(str)) return; if (len == sizeof("connected")-1 && !memcmp(str, "connected", len)) { - xenbus_switch_state(be->dev, XenbusStateConnected); + /* Complete any pending state change */ + xenbus_switch_state(be->dev, be->state); + /* Not interested in this watch anymore. */ unregister_hotplug_status_watch(be); } @@ -386,12 +489,8 @@ err = xenbus_watch_pathfmt(dev, &be->hotplug_status_watch, hotplug_status_changed, "%s/%s", dev->nodename, "hotplug-status"); - if (err) { - /* Switch now, since we can't do a watch. */ - xenbus_switch_state(dev, XenbusStateConnected); - } else { + if (!err) be->have_hotplug_status_watch = 1; - } netif_wake_queue(be->vif->dev); } --- linux-3.11.0.orig/drivers/net/can/dev.c +++ linux-3.11.0/drivers/net/can/dev.c @@ -705,14 +705,14 @@ size_t size; size = nla_total_size(sizeof(u32)); /* IFLA_CAN_STATE */ - size += sizeof(struct can_ctrlmode); /* IFLA_CAN_CTRLMODE */ + size += nla_total_size(sizeof(struct can_ctrlmode)); /* IFLA_CAN_CTRLMODE */ size += nla_total_size(sizeof(u32)); /* IFLA_CAN_RESTART_MS */ - size += sizeof(struct can_bittiming); /* IFLA_CAN_BITTIMING */ - size += sizeof(struct can_clock); /* IFLA_CAN_CLOCK */ + size += nla_total_size(sizeof(struct can_bittiming)); /* IFLA_CAN_BITTIMING */ + size += nla_total_size(sizeof(struct can_clock)); /* IFLA_CAN_CLOCK */ if (priv->do_get_berr_counter) /* IFLA_CAN_BERR_COUNTER */ - size += sizeof(struct can_berr_counter); + size += nla_total_size(sizeof(struct can_berr_counter)); if (priv->bittiming_const) /* IFLA_CAN_BITTIMING_CONST */ - size += sizeof(struct can_bittiming_const); + size += nla_total_size(sizeof(struct can_bittiming_const)); return size; } --- linux-3.11.0.orig/drivers/net/can/at91_can.c +++ linux-3.11.0/drivers/net/can/at91_can.c @@ -1405,10 +1405,10 @@ static const struct platform_device_id at91_can_id_table[] = { { - .name = "at91_can", + .name = "at91sam9x5_can", .driver_data = (kernel_ulong_t)&at91_at91sam9x5_data, }, { - .name = "at91sam9x5_can", + .name = "at91_can", .driver_data = (kernel_ulong_t)&at91_at91sam9263_data, }, { /* sentinel */ --- linux-3.11.0.orig/drivers/net/can/flexcan.c +++ linux-3.11.0/drivers/net/can/flexcan.c @@ -62,7 +62,7 @@ #define FLEXCAN_MCR_BCC BIT(16) #define FLEXCAN_MCR_LPRIO_EN BIT(13) #define FLEXCAN_MCR_AEN BIT(12) -#define FLEXCAN_MCR_MAXMB(x) ((x) & 0xf) +#define FLEXCAN_MCR_MAXMB(x) ((x) & 0x1f) #define FLEXCAN_MCR_IDAM_A (0 << 8) #define FLEXCAN_MCR_IDAM_B (1 << 8) #define FLEXCAN_MCR_IDAM_C (2 << 8) @@ -736,9 +736,11 @@ * */ reg_mcr = flexcan_read(®s->mcr); + reg_mcr &= ~FLEXCAN_MCR_MAXMB(0xff); reg_mcr |= FLEXCAN_MCR_FRZ | FLEXCAN_MCR_FEN | FLEXCAN_MCR_HALT | FLEXCAN_MCR_SUPV | FLEXCAN_MCR_WRN_EN | - FLEXCAN_MCR_IDAM_C | FLEXCAN_MCR_SRX_DIS; + FLEXCAN_MCR_IDAM_C | FLEXCAN_MCR_SRX_DIS | + FLEXCAN_MCR_MAXMB(FLEXCAN_TX_BUF_ID); netdev_dbg(dev, "%s: writing mcr=0x%08x", __func__, reg_mcr); flexcan_write(reg_mcr, ®s->mcr); @@ -783,6 +785,10 @@ ®s->cantxfg[i].can_ctrl); } + /* Abort any pending TX, mark Mailbox as INACTIVE */ + flexcan_write(FLEXCAN_MB_CNT_CODE(0x4), + ®s->cantxfg[FLEXCAN_TX_BUF_ID].can_ctrl); + /* acceptance mask/acceptance code (accept everything) */ flexcan_write(0x0, ®s->rxgmask); flexcan_write(0x0, ®s->rx14mask); @@ -979,9 +985,9 @@ } static const struct of_device_id flexcan_of_match[] = { - { .compatible = "fsl,p1010-flexcan", .data = &fsl_p1010_devtype_data, }, - { .compatible = "fsl,imx28-flexcan", .data = &fsl_imx28_devtype_data, }, { .compatible = "fsl,imx6q-flexcan", .data = &fsl_imx6q_devtype_data, }, + { .compatible = "fsl,imx28-flexcan", .data = &fsl_imx28_devtype_data, }, + { .compatible = "fsl,p1010-flexcan", .data = &fsl_p1010_devtype_data, }, { /* sentinel */ }, }; MODULE_DEVICE_TABLE(of, flexcan_of_match); --- linux-3.11.0.orig/drivers/net/can/c_can/c_can.c +++ linux-3.11.0/drivers/net/can/c_can/c_can.c @@ -814,9 +814,6 @@ msg_ctrl_save = priv->read_reg(priv, C_CAN_IFACE(MSGCTRL_REG, 0)); - if (msg_ctrl_save & IF_MCONT_EOB) - return num_rx_pkts; - if (msg_ctrl_save & IF_MCONT_MSGLST) { c_can_handle_lost_msg_obj(dev, 0, msg_obj); num_rx_pkts++; @@ -824,6 +821,9 @@ continue; } + if (msg_ctrl_save & IF_MCONT_EOB) + return num_rx_pkts; + if (!(msg_ctrl_save & IF_MCONT_NEWDAT)) continue; --- linux-3.11.0.orig/drivers/net/can/usb/kvaser_usb.c +++ linux-3.11.0/drivers/net/can/usb/kvaser_usb.c @@ -1544,9 +1544,9 @@ return 0; } -static void kvaser_usb_get_endpoints(const struct usb_interface *intf, - struct usb_endpoint_descriptor **in, - struct usb_endpoint_descriptor **out) +static int kvaser_usb_get_endpoints(const struct usb_interface *intf, + struct usb_endpoint_descriptor **in, + struct usb_endpoint_descriptor **out) { const struct usb_host_interface *iface_desc; struct usb_endpoint_descriptor *endpoint; @@ -1557,12 +1557,18 @@ for (i = 0; i < iface_desc->desc.bNumEndpoints; ++i) { endpoint = &iface_desc->endpoint[i].desc; - if (usb_endpoint_is_bulk_in(endpoint)) + if (!*in && usb_endpoint_is_bulk_in(endpoint)) *in = endpoint; - if (usb_endpoint_is_bulk_out(endpoint)) + if (!*out && usb_endpoint_is_bulk_out(endpoint)) *out = endpoint; + + /* use first bulk endpoint for in and out */ + if (*in && *out) + return 0; } + + return -ENODEV; } static int kvaser_usb_probe(struct usb_interface *intf, @@ -1576,8 +1582,8 @@ if (!dev) return -ENOMEM; - kvaser_usb_get_endpoints(intf, &dev->bulk_in, &dev->bulk_out); - if (!dev->bulk_in || !dev->bulk_out) { + err = kvaser_usb_get_endpoints(intf, &dev->bulk_in, &dev->bulk_out); + if (err) { dev_err(&intf->dev, "Cannot get usb endpoint(s)"); return err; } --- linux-3.11.0.orig/drivers/net/wireless/ath/ath9k/ar9003_phy.c +++ linux-3.11.0/drivers/net/wireless/ath/ath9k/ar9003_phy.c @@ -1173,6 +1173,10 @@ * is_on == 0 means MRC CCK is OFF (more noise imm) */ bool is_on = param ? 1 : 0; + + if (ah->caps.rx_chainmask == 1) + break; + REG_RMW_FIELD(ah, AR_PHY_MRC_CCK_CTRL, AR_PHY_MRC_CCK_ENABLE, is_on); REG_RMW_FIELD(ah, AR_PHY_MRC_CCK_CTRL, --- linux-3.11.0.orig/drivers/net/wireless/ath/ath9k/recv.c +++ linux-3.11.0/drivers/net/wireless/ath/ath9k/recv.c @@ -42,8 +42,6 @@ struct ath_desc *ds; struct sk_buff *skb; - ATH_RXBUF_RESET(bf); - ds = bf->bf_desc; ds->ds_link = 0; /* link to null */ ds->ds_data = bf->bf_buf_addr; @@ -70,6 +68,14 @@ sc->rx.rxlink = &ds->ds_link; } +static void ath_rx_buf_relink(struct ath_softc *sc, struct ath_buf *bf) +{ + if (sc->rx.buf_hold) + ath_rx_buf_link(sc, sc->rx.buf_hold); + + sc->rx.buf_hold = bf; +} + static void ath_setdefantenna(struct ath_softc *sc, u32 antenna) { /* XXX block beacon interrupts */ @@ -117,7 +123,6 @@ skb = bf->bf_mpdu; - ATH_RXBUF_RESET(bf); memset(skb->data, 0, ah->caps.rx_status_len); dma_sync_single_for_device(sc->dev, bf->bf_buf_addr, ah->caps.rx_status_len, DMA_TO_DEVICE); @@ -432,6 +437,7 @@ if (list_empty(&sc->rx.rxbuf)) goto start_recv; + sc->rx.buf_hold = NULL; sc->rx.rxlink = NULL; list_for_each_entry_safe(bf, tbf, &sc->rx.rxbuf, list) { ath_rx_buf_link(sc, bf); @@ -677,6 +683,9 @@ } bf = list_first_entry(&sc->rx.rxbuf, struct ath_buf, list); + if (bf == sc->rx.buf_hold) + return NULL; + ds = bf->bf_desc; /* @@ -1375,7 +1384,7 @@ if (edma) { ath_rx_edma_buf_link(sc, qtype); } else { - ath_rx_buf_link(sc, bf); + ath_rx_buf_relink(sc, bf); ath9k_hw_rxena(ah); } } while (1); --- linux-3.11.0.orig/drivers/net/wireless/ath/ath9k/main.c +++ linux-3.11.0/drivers/net/wireless/ath/ath9k/main.c @@ -208,6 +208,7 @@ struct ath_hw *ah = sc->sc_ah; struct ath_common *common = ath9k_hw_common(ah); unsigned long flags; + int i; if (ath_startrecv(sc) != 0) { ath_err(common, "Unable to restart recv logic\n"); @@ -235,6 +236,15 @@ } work: ath_restart_work(sc); + + for (i = 0; i < ATH9K_NUM_TX_QUEUES; i++) { + if (!ATH_TXQ_SETUP(sc, i)) + continue; + + spin_lock_bh(&sc->tx.txq[i].axq_lock); + ath_txq_schedule(sc, &sc->tx.txq[i]); + spin_unlock_bh(&sc->tx.txq[i].axq_lock); + } } if ((ah->caps.hw_caps & ATH9K_HW_CAP_ANT_DIV_COMB) && sc->ant_rx != 3) @@ -542,21 +552,10 @@ static int ath_reset(struct ath_softc *sc) { - int i, r; + int r; ath9k_ps_wakeup(sc); - r = ath_reset_internal(sc, NULL); - - for (i = 0; i < ATH9K_NUM_TX_QUEUES; i++) { - if (!ATH_TXQ_SETUP(sc, i)) - continue; - - spin_lock_bh(&sc->tx.txq[i].axq_lock); - ath_txq_schedule(sc, &sc->tx.txq[i]); - spin_unlock_bh(&sc->tx.txq[i].axq_lock); - } - ath9k_ps_restore(sc); return r; --- linux-3.11.0.orig/drivers/net/wireless/ath/ath9k/xmit.c +++ linux-3.11.0/drivers/net/wireless/ath/ath9k/xmit.c @@ -2602,6 +2602,7 @@ for (acno = 0, ac = &an->ac[acno]; acno < IEEE80211_NUM_ACS; acno++, ac++) { ac->sched = false; + ac->clear_ps_filter = true; ac->txq = sc->tx.txq_map[acno]; INIT_LIST_HEAD(&ac->tid_q); } --- linux-3.11.0.orig/drivers/net/wireless/ath/ath9k/ath9k.h +++ linux-3.11.0/drivers/net/wireless/ath/ath9k/ath9k.h @@ -79,10 +79,6 @@ sizeof(struct ath_buf_state)); \ } while (0) -#define ATH_RXBUF_RESET(_bf) do { \ - (_bf)->bf_stale = false; \ - } while (0) - /** * enum buffer_type - Buffer type flags * @@ -317,6 +313,7 @@ struct ath_descdma rxdma; struct ath_rx_edma rx_edma[ATH9K_RX_QUEUE_MAX]; + struct ath_buf *buf_hold; struct sk_buff *frag; u32 ampdu_ref; --- linux-3.11.0.orig/drivers/net/wireless/libertas/debugfs.c +++ linux-3.11.0/drivers/net/wireless/libertas/debugfs.c @@ -913,7 +913,10 @@ char *p2; struct debug_data *d = f->private_data; - pdata = kmalloc(cnt, GFP_KERNEL); + if (cnt == 0) + return 0; + + pdata = kmalloc(cnt + 1, GFP_KERNEL); if (pdata == NULL) return 0; @@ -922,6 +925,7 @@ kfree(pdata); return 0; } + pdata[cnt] = '\0'; p0 = pdata; for (i = 0; i < num_of_items; i++) { --- linux-3.11.0.orig/drivers/net/wireless/rtlwifi/wifi.h +++ linux-3.11.0/drivers/net/wireless/rtlwifi/wifi.h @@ -2057,7 +2057,7 @@ that it points to the data allocated beyond this structure like: rtl_pci_priv or rtl_usb_priv */ - u8 priv[0]; + u8 priv[0] __aligned(sizeof(void *)); }; #define rtl_priv(hw) (((struct rtl_priv *)(hw)->priv)) --- linux-3.11.0.orig/drivers/net/wireless/rtlwifi/rtl8192cu/trx.c +++ linux-3.11.0/drivers/net/wireless/rtlwifi/rtl8192cu/trx.c @@ -343,7 +343,8 @@ (bool)GET_RX_DESC_PAGGR(pdesc)); rx_status->mactime = GET_RX_DESC_TSFL(pdesc); if (phystatus) { - p_drvinfo = (struct rx_fwinfo_92c *)(pdesc + RTL_RX_DESC_SIZE); + p_drvinfo = (struct rx_fwinfo_92c *)(skb->data + + stats->rx_bufshift); rtl92c_translate_rx_signal_stuff(hw, skb, stats, pdesc, p_drvinfo); } --- linux-3.11.0.orig/drivers/net/wireless/rt2x00/rt2x00queue.c +++ linux-3.11.0/drivers/net/wireless/rt2x00/rt2x00queue.c @@ -635,7 +635,7 @@ } int rt2x00queue_write_tx_frame(struct data_queue *queue, struct sk_buff *skb, - bool local) + struct ieee80211_sta *sta, bool local) { struct ieee80211_tx_info *tx_info; struct queue_entry *entry; @@ -649,7 +649,7 @@ * after that we are free to use the skb->cb array * for our information. */ - rt2x00queue_create_tx_descriptor(queue->rt2x00dev, skb, &txdesc, NULL); + rt2x00queue_create_tx_descriptor(queue->rt2x00dev, skb, &txdesc, sta); /* * All information is retrieved from the skb->cb array, --- linux-3.11.0.orig/drivers/net/wireless/rt2x00/rt2800lib.c +++ linux-3.11.0/drivers/net/wireless/rt2x00/rt2800lib.c @@ -2790,6 +2790,13 @@ int i; /* + * First check if temperature compensation is supported. + */ + rt2x00_eeprom_read(rt2x00dev, EEPROM_NIC_CONF1, &eeprom); + if (!rt2x00_get_field16(eeprom, EEPROM_NIC_CONF1_EXTERNAL_TX_ALC)) + return 0; + + /* * Read TSSI boundaries for temperature compensation from * the EEPROM. * @@ -3416,10 +3423,13 @@ vgc = rt2800_get_default_vgc(rt2x00dev); - if (rt2x00_rt(rt2x00dev, RT5592) && qual->rssi > -65) - vgc += 0x20; - else if (qual->rssi > -80) - vgc += 0x10; + if (rt2x00_rt(rt2x00dev, RT5592)) { + if (qual->rssi > -65) + vgc += 0x20; + } else { + if (qual->rssi > -80) + vgc += 0x10; + } rt2800_set_vgc(rt2x00dev, qual, vgc); } @@ -5404,19 +5414,20 @@ rt2800_init_registers(rt2x00dev))) return -EIO; + if (unlikely(rt2800_wait_bbp_rf_ready(rt2x00dev))) + return -EIO; + /* * Send signal to firmware during boot time. */ rt2800_register_write(rt2x00dev, H2M_BBP_AGENT, 0); rt2800_register_write(rt2x00dev, H2M_MAILBOX_CSR, 0); - if (rt2x00_is_usb(rt2x00dev)) { + if (rt2x00_is_usb(rt2x00dev)) rt2800_register_write(rt2x00dev, H2M_INT_SRC, 0); - rt2800_mcu_request(rt2x00dev, MCU_BOOT_SIGNAL, 0, 0, 0); - } + rt2800_mcu_request(rt2x00dev, MCU_BOOT_SIGNAL, 0, 0, 0); msleep(1); - if (unlikely(rt2800_wait_bbp_rf_ready(rt2x00dev) || - rt2800_wait_bbp_ready(rt2x00dev))) + if (unlikely(rt2800_wait_bbp_ready(rt2x00dev))) return -EIO; rt2800_init_bbp(rt2x00dev); --- linux-3.11.0.orig/drivers/net/wireless/rt2x00/rt2x00dev.c +++ linux-3.11.0/drivers/net/wireless/rt2x00/rt2x00dev.c @@ -181,6 +181,7 @@ static void rt2x00lib_bc_buffer_iter(void *data, u8 *mac, struct ieee80211_vif *vif) { + struct ieee80211_tx_control control = {}; struct rt2x00_dev *rt2x00dev = data; struct sk_buff *skb; @@ -195,7 +196,7 @@ */ skb = ieee80211_get_buffered_bc(rt2x00dev->hw, vif); while (skb) { - rt2x00mac_tx(rt2x00dev->hw, NULL, skb); + rt2x00mac_tx(rt2x00dev->hw, &control, skb); skb = ieee80211_get_buffered_bc(rt2x00dev->hw, vif); } } --- linux-3.11.0.orig/drivers/net/wireless/rt2x00/rt2x00mac.c +++ linux-3.11.0/drivers/net/wireless/rt2x00/rt2x00mac.c @@ -90,7 +90,7 @@ frag_skb->data, data_length, tx_info, (struct ieee80211_rts *)(skb->data)); - retval = rt2x00queue_write_tx_frame(queue, skb, true); + retval = rt2x00queue_write_tx_frame(queue, skb, NULL, true); if (retval) { dev_kfree_skb_any(skb); rt2x00_warn(rt2x00dev, "Failed to send RTS/CTS frame\n"); @@ -151,7 +151,7 @@ goto exit_fail; } - if (unlikely(rt2x00queue_write_tx_frame(queue, skb, false))) + if (unlikely(rt2x00queue_write_tx_frame(queue, skb, control->sta, false))) goto exit_fail; /* @@ -754,6 +754,9 @@ struct rt2x00_dev *rt2x00dev = hw->priv; struct data_queue *queue; + if (!test_bit(DEVICE_STATE_PRESENT, &rt2x00dev->flags)) + return; + tx_queue_for_each(rt2x00dev, queue) rt2x00queue_flush_queue(queue, drop); } --- linux-3.11.0.orig/drivers/net/wireless/rt2x00/rt2x00pci.c +++ linux-3.11.0/drivers/net/wireless/rt2x00/rt2x00pci.c @@ -105,13 +105,11 @@ goto exit_release_regions; } - pci_enable_msi(pci_dev); - hw = ieee80211_alloc_hw(sizeof(struct rt2x00_dev), ops->hw); if (!hw) { rt2x00_probe_err("Failed to allocate hardware\n"); retval = -ENOMEM; - goto exit_disable_msi; + goto exit_release_regions; } pci_set_drvdata(pci_dev, hw); @@ -152,9 +150,6 @@ exit_free_device: ieee80211_free_hw(hw); -exit_disable_msi: - pci_disable_msi(pci_dev); - exit_release_regions: pci_release_regions(pci_dev); @@ -179,8 +174,6 @@ rt2x00pci_free_reg(rt2x00dev); ieee80211_free_hw(hw); - pci_disable_msi(pci_dev); - /* * Free the PCI device data. */ --- linux-3.11.0.orig/drivers/net/wireless/rt2x00/rt2x00lib.h +++ linux-3.11.0/drivers/net/wireless/rt2x00/rt2x00lib.h @@ -146,7 +146,7 @@ * @local: frame is not from mac80211 */ int rt2x00queue_write_tx_frame(struct data_queue *queue, struct sk_buff *skb, - bool local); + struct ieee80211_sta *sta, bool local); /** * rt2x00queue_update_beacon - Send new beacon from mac80211 --- linux-3.11.0.orig/drivers/net/wireless/cw1200/cw1200_spi.c +++ linux-3.11.0/drivers/net/wireless/cw1200/cw1200_spi.c @@ -40,6 +40,7 @@ struct cw1200_common *core; const struct cw1200_platform_data_spi *pdata; spinlock_t lock; /* Serialize all bus operations */ + wait_queue_head_t wq; int claimed; }; @@ -197,8 +198,11 @@ { unsigned long flags; + DECLARE_WAITQUEUE(wait, current); + might_sleep(); + add_wait_queue(&self->wq, &wait); spin_lock_irqsave(&self->lock, flags); while (1) { set_current_state(TASK_UNINTERRUPTIBLE); @@ -211,6 +215,7 @@ set_current_state(TASK_RUNNING); self->claimed = 1; spin_unlock_irqrestore(&self->lock, flags); + remove_wait_queue(&self->wq, &wait); return; } @@ -222,6 +227,8 @@ spin_lock_irqsave(&self->lock, flags); self->claimed = 0; spin_unlock_irqrestore(&self->lock, flags); + wake_up(&self->wq); + return; } @@ -230,7 +237,9 @@ struct hwbus_priv *self = dev_id; if (self->core) { + cw1200_spi_lock(self); cw1200_irq_handler(self->core); + cw1200_spi_unlock(self); return IRQ_HANDLED; } else { return IRQ_NONE; @@ -243,9 +252,10 @@ pr_debug("SW IRQ subscribe\n"); - ret = request_any_context_irq(self->func->irq, cw1200_spi_irq_handler, - IRQF_TRIGGER_HIGH, - "cw1200_wlan_irq", self); + ret = request_threaded_irq(self->func->irq, NULL, + cw1200_spi_irq_handler, + IRQF_TRIGGER_HIGH | IRQF_ONESHOT, + "cw1200_wlan_irq", self); if (WARN_ON(ret < 0)) goto exit; @@ -400,6 +410,8 @@ spi_set_drvdata(func, self); + init_waitqueue_head(&self->wq); + status = cw1200_spi_irq_subscribe(self); status = cw1200_core_probe(&cw1200_spi_hwbus_ops, --- linux-3.11.0.orig/drivers/net/wireless/p54/p54usb.c +++ linux-3.11.0/drivers/net/wireless/p54/p54usb.c @@ -83,6 +83,7 @@ {USB_DEVICE(0x06a9, 0x000e)}, /* Westell 802.11g USB (A90-211WG-01) */ {USB_DEVICE(0x06b9, 0x0121)}, /* Thomson SpeedTouch 121g */ {USB_DEVICE(0x0707, 0xee13)}, /* SMC 2862W-G version 2 */ + {USB_DEVICE(0x07aa, 0x0020)}, /* Corega WLUSB2GTST USB */ {USB_DEVICE(0x0803, 0x4310)}, /* Zoom 4410a */ {USB_DEVICE(0x083a, 0x4521)}, /* Siemens Gigaset USB Adapter 54 version 2 */ {USB_DEVICE(0x083a, 0x4531)}, /* T-Com Sinus 154 data II */ --- linux-3.11.0.orig/drivers/net/wireless/mwifiex/11n_aggr.h +++ linux-3.11.0/drivers/net/wireless/mwifiex/11n_aggr.h @@ -26,7 +26,7 @@ int mwifiex_11n_deaggregate_pkt(struct mwifiex_private *priv, struct sk_buff *skb); int mwifiex_11n_aggregate_pkt(struct mwifiex_private *priv, - struct mwifiex_ra_list_tbl *ptr, int headroom, + struct mwifiex_ra_list_tbl *ptr, int ptr_index, unsigned long flags) __releases(&priv->wmm.ra_list_spinlock); --- linux-3.11.0.orig/drivers/net/wireless/mwifiex/main.c +++ linux-3.11.0/drivers/net/wireless/mwifiex/main.c @@ -354,10 +354,12 @@ } } while (true); - if ((adapter->int_status) || IS_CARD_RX_RCVD(adapter)) + spin_lock_irqsave(&adapter->main_proc_lock, flags); + if ((adapter->int_status) || IS_CARD_RX_RCVD(adapter)) { + spin_unlock_irqrestore(&adapter->main_proc_lock, flags); goto process_start; + } - spin_lock_irqsave(&adapter->main_proc_lock, flags); adapter->mwifiex_processing = false; spin_unlock_irqrestore(&adapter->main_proc_lock, flags); @@ -458,20 +460,6 @@ dev_err(adapter->dev, "cannot create default STA interface\n"); goto err_add_intf; } - - /* Create AP interface by default */ - if (!mwifiex_add_virtual_intf(adapter->wiphy, "uap%d", - NL80211_IFTYPE_AP, NULL, NULL)) { - dev_err(adapter->dev, "cannot create default AP interface\n"); - goto err_add_intf; - } - - /* Create P2P interface by default */ - if (!mwifiex_add_virtual_intf(adapter->wiphy, "p2p%d", - NL80211_IFTYPE_P2P_CLIENT, NULL, NULL)) { - dev_err(adapter->dev, "cannot create default P2P interface\n"); - goto err_add_intf; - } rtnl_unlock(); mwifiex_drv_get_driver_version(adapter, fmt, sizeof(fmt) - 1); --- linux-3.11.0.orig/drivers/net/wireless/mwifiex/usb.c +++ linux-3.11.0/drivers/net/wireless/mwifiex/usb.c @@ -446,9 +446,6 @@ */ adapter->is_suspended = true; - for (i = 0; i < adapter->priv_num; i++) - netif_carrier_off(adapter->priv[i]->netdev); - if (atomic_read(&card->rx_cmd_urb_pending) && card->rx_cmd.urb) usb_kill_urb(card->rx_cmd.urb); @@ -508,10 +505,6 @@ MWIFIEX_RX_CMD_BUF_SIZE); } - for (i = 0; i < adapter->priv_num; i++) - if (adapter->priv[i]->media_connected) - netif_carrier_on(adapter->priv[i]->netdev); - /* Disable Host Sleep */ if (adapter->hs_activated) mwifiex_cancel_hs(mwifiex_get_priv(adapter, --- linux-3.11.0.orig/drivers/net/wireless/mwifiex/11n_aggr.c +++ linux-3.11.0/drivers/net/wireless/mwifiex/11n_aggr.c @@ -149,7 +149,7 @@ */ int mwifiex_11n_aggregate_pkt(struct mwifiex_private *priv, - struct mwifiex_ra_list_tbl *pra_list, int headroom, + struct mwifiex_ra_list_tbl *pra_list, int ptrindex, unsigned long ra_list_flags) __releases(&priv->wmm.ra_list_spinlock) { @@ -159,6 +159,7 @@ int pad = 0, ret; struct mwifiex_tx_param tx_param; struct txpd *ptx_pd = NULL; + int headroom = adapter->iface_type == MWIFIEX_USB ? 0 : INTF_HEADER_LEN; skb_src = skb_peek(&pra_list->skb_head); if (!skb_src) { --- linux-3.11.0.orig/drivers/net/wireless/mwifiex/wmm.c +++ linux-3.11.0/drivers/net/wireless/mwifiex/wmm.c @@ -1239,8 +1239,7 @@ if (enable_tx_amsdu && mwifiex_is_amsdu_allowed(priv, tid) && mwifiex_is_11n_aggragation_possible(priv, ptr, adapter->tx_buf_size)) - mwifiex_11n_aggregate_pkt(priv, ptr, INTF_HEADER_LEN, - ptr_index, flags); + mwifiex_11n_aggregate_pkt(priv, ptr, ptr_index, flags); /* ra_list_spinlock has been freed in mwifiex_11n_aggregate_pkt() */ else --- linux-3.11.0.orig/drivers/net/wireless/mwifiex/cmdevt.c +++ linux-3.11.0/drivers/net/wireless/mwifiex/cmdevt.c @@ -1155,7 +1155,7 @@ uint32_t conditions = le32_to_cpu(phs_cfg->params.hs_config.conditions); if (phs_cfg->action == cpu_to_le16(HS_ACTIVATE) && - adapter->iface_type == MWIFIEX_SDIO) { + adapter->iface_type != MWIFIEX_USB) { mwifiex_hs_activated_event(priv, true); return 0; } else { @@ -1167,8 +1167,7 @@ } if (conditions != HS_CFG_CANCEL) { adapter->is_hs_configured = true; - if (adapter->iface_type == MWIFIEX_USB || - adapter->iface_type == MWIFIEX_PCIE) + if (adapter->iface_type == MWIFIEX_USB) mwifiex_hs_activated_event(priv, true); } else { adapter->is_hs_configured = false; --- linux-3.11.0.orig/drivers/net/wireless/brcm80211/brcmfmac/dhd_bus.h +++ linux-3.11.0/drivers/net/wireless/brcm80211/brcmfmac/dhd_bus.h @@ -154,10 +154,11 @@ #ifdef CONFIG_BRCMFMAC_SDIO extern void brcmf_sdio_exit(void); extern void brcmf_sdio_init(void); +extern void brcmf_sdio_register(void); #endif #ifdef CONFIG_BRCMFMAC_USB extern void brcmf_usb_exit(void); -extern void brcmf_usb_init(void); +extern void brcmf_usb_register(void); #endif #endif /* _BRCMF_BUS_H_ */ --- linux-3.11.0.orig/drivers/net/wireless/brcm80211/brcmfmac/bcmsdh_sdmmc.c +++ linux-3.11.0/drivers/net/wireless/brcm80211/brcmfmac/bcmsdh_sdmmc.c @@ -465,8 +465,6 @@ static int brcmf_sdio_pd_probe(struct platform_device *pdev) { - int ret; - brcmf_dbg(SDIO, "Enter\n"); brcmfmac_sdio_pdata = pdev->dev.platform_data; @@ -474,11 +472,7 @@ if (brcmfmac_sdio_pdata->power_on) brcmfmac_sdio_pdata->power_on(); - ret = sdio_register_driver(&brcmf_sdmmc_driver); - if (ret) - brcmf_err("sdio_register_driver failed: %d\n", ret); - - return ret; + return 0; } static int brcmf_sdio_pd_remove(struct platform_device *pdev) @@ -501,6 +495,15 @@ } }; +void brcmf_sdio_register(void) +{ + int ret; + + ret = sdio_register_driver(&brcmf_sdmmc_driver); + if (ret) + brcmf_err("sdio_register_driver failed: %d\n", ret); +} + void brcmf_sdio_exit(void) { brcmf_dbg(SDIO, "Enter\n"); @@ -511,18 +514,13 @@ sdio_unregister_driver(&brcmf_sdmmc_driver); } -void brcmf_sdio_init(void) +void __init brcmf_sdio_init(void) { int ret; brcmf_dbg(SDIO, "Enter\n"); ret = platform_driver_probe(&brcmf_sdio_pd, brcmf_sdio_pd_probe); - if (ret == -ENODEV) { - brcmf_dbg(SDIO, "No platform data available, registering without.\n"); - ret = sdio_register_driver(&brcmf_sdmmc_driver); - } - - if (ret) - brcmf_err("driver registration failed: %d\n", ret); + if (ret == -ENODEV) + brcmf_dbg(SDIO, "No platform data available.\n"); } --- linux-3.11.0.orig/drivers/net/wireless/brcm80211/brcmfmac/usb.c +++ linux-3.11.0/drivers/net/wireless/brcm80211/brcmfmac/usb.c @@ -1540,7 +1540,7 @@ brcmf_release_fw(&fw_image_list); } -void brcmf_usb_init(void) +void brcmf_usb_register(void) { brcmf_dbg(USB, "Enter\n"); INIT_LIST_HEAD(&fw_image_list); --- linux-3.11.0.orig/drivers/net/wireless/brcm80211/brcmfmac/dhd_linux.c +++ linux-3.11.0/drivers/net/wireless/brcm80211/brcmfmac/dhd_linux.c @@ -1020,21 +1020,23 @@ return bus->chip << 4 | bus->chiprev; } -static void brcmf_driver_init(struct work_struct *work) +static void brcmf_driver_register(struct work_struct *work) { - brcmf_debugfs_init(); - #ifdef CONFIG_BRCMFMAC_SDIO - brcmf_sdio_init(); + brcmf_sdio_register(); #endif #ifdef CONFIG_BRCMFMAC_USB - brcmf_usb_init(); + brcmf_usb_register(); #endif } -static DECLARE_WORK(brcmf_driver_work, brcmf_driver_init); +static DECLARE_WORK(brcmf_driver_work, brcmf_driver_register); static int __init brcmfmac_module_init(void) { + brcmf_debugfs_init(); +#ifdef CONFIG_BRCMFMAC_SDIO + brcmf_sdio_init(); +#endif if (!schedule_work(&brcmf_driver_work)) return -EBUSY; --- linux-3.11.0.orig/drivers/net/wireless/brcm80211/brcmsmac/dma.c +++ linux-3.11.0/drivers/net/wireless/brcm80211/brcmsmac/dma.c @@ -1015,9 +1015,10 @@ /* * post receive buffers - * return false is refill failed completely and ring is empty this will stall - * the rx dma and user might want to call rxfill again asap. This unlikely - * happens on memory-rich NIC, but often on memory-constrained dongle + * Return false if refill failed completely or dma mapping failed. The ring + * is empty, which will stall the rx dma and user might want to call rxfill + * again asap. This is unlikely to happen on a memory-rich NIC, but often on + * memory-constrained dongle. */ bool dma_rxfill(struct dma_pub *pub) { @@ -1078,6 +1079,8 @@ pa = dma_map_single(di->dmadev, p->data, di->rxbufsize, DMA_FROM_DEVICE); + if (dma_mapping_error(di->dmadev, pa)) + return false; /* save the free packet pointer */ di->rxp[rxout] = p; @@ -1284,7 +1287,11 @@ /* get physical address of buffer start */ pa = dma_map_single(di->dmadev, data, len, DMA_TO_DEVICE); - + /* if mapping failed, free skb */ + if (dma_mapping_error(di->dmadev, pa)) { + brcmu_pkt_buf_free_skb(p); + return; + } /* With a DMA segment list, Descriptor table is filled * using the segment list instead of looping over * buffers in multi-chain DMA. Therefore, EOF for SGLIST --- linux-3.11.0.orig/drivers/net/wireless/iwlwifi/iwl-6000.c +++ linux-3.11.0/drivers/net/wireless/iwlwifi/iwl-6000.c @@ -240,6 +240,12 @@ .ht_params = &iwl6000_ht_params, }; +const struct iwl_cfg iwl6035_2agn_sff_cfg = { + .name = "Intel(R) Centrino(R) Ultimate-N 6235 AGN", + IWL_DEVICE_6035, + .ht_params = &iwl6000_ht_params, +}; + const struct iwl_cfg iwl1030_bgn_cfg = { .name = "Intel(R) Centrino(R) Wireless-N 1030 BGN", IWL_DEVICE_6030, --- linux-3.11.0.orig/drivers/net/wireless/iwlwifi/iwl-config.h +++ linux-3.11.0/drivers/net/wireless/iwlwifi/iwl-config.h @@ -277,6 +277,7 @@ extern const struct iwl_cfg iwl2000_2bgn_d_cfg; extern const struct iwl_cfg iwl2030_2bgn_cfg; extern const struct iwl_cfg iwl6035_2agn_cfg; +extern const struct iwl_cfg iwl6035_2agn_sff_cfg; extern const struct iwl_cfg iwl105_bgn_cfg; extern const struct iwl_cfg iwl105_bgn_d_cfg; extern const struct iwl_cfg iwl135_bgn_cfg; --- linux-3.11.0.orig/drivers/net/wireless/iwlwifi/pcie/drv.c +++ linux-3.11.0/drivers/net/wireless/iwlwifi/pcie/drv.c @@ -139,13 +139,16 @@ /* 6x00 Series */ {IWL_PCI_DEVICE(0x422B, 0x1101, iwl6000_3agn_cfg)}, + {IWL_PCI_DEVICE(0x422B, 0x1108, iwl6000_3agn_cfg)}, {IWL_PCI_DEVICE(0x422B, 0x1121, iwl6000_3agn_cfg)}, + {IWL_PCI_DEVICE(0x422B, 0x1128, iwl6000_3agn_cfg)}, {IWL_PCI_DEVICE(0x422C, 0x1301, iwl6000i_2agn_cfg)}, {IWL_PCI_DEVICE(0x422C, 0x1306, iwl6000i_2abg_cfg)}, {IWL_PCI_DEVICE(0x422C, 0x1307, iwl6000i_2bg_cfg)}, {IWL_PCI_DEVICE(0x422C, 0x1321, iwl6000i_2agn_cfg)}, {IWL_PCI_DEVICE(0x422C, 0x1326, iwl6000i_2abg_cfg)}, {IWL_PCI_DEVICE(0x4238, 0x1111, iwl6000_3agn_cfg)}, + {IWL_PCI_DEVICE(0x4238, 0x1118, iwl6000_3agn_cfg)}, {IWL_PCI_DEVICE(0x4239, 0x1311, iwl6000i_2agn_cfg)}, {IWL_PCI_DEVICE(0x4239, 0x1316, iwl6000i_2abg_cfg)}, @@ -153,12 +156,16 @@ {IWL_PCI_DEVICE(0x0082, 0x1301, iwl6005_2agn_cfg)}, {IWL_PCI_DEVICE(0x0082, 0x1306, iwl6005_2abg_cfg)}, {IWL_PCI_DEVICE(0x0082, 0x1307, iwl6005_2bg_cfg)}, + {IWL_PCI_DEVICE(0x0082, 0x1308, iwl6005_2agn_cfg)}, {IWL_PCI_DEVICE(0x0082, 0x1321, iwl6005_2agn_cfg)}, {IWL_PCI_DEVICE(0x0082, 0x1326, iwl6005_2abg_cfg)}, + {IWL_PCI_DEVICE(0x0082, 0x1328, iwl6005_2agn_cfg)}, {IWL_PCI_DEVICE(0x0085, 0x1311, iwl6005_2agn_cfg)}, + {IWL_PCI_DEVICE(0x0085, 0x1318, iwl6005_2agn_cfg)}, {IWL_PCI_DEVICE(0x0085, 0x1316, iwl6005_2abg_cfg)}, {IWL_PCI_DEVICE(0x0082, 0xC020, iwl6005_2agn_sff_cfg)}, {IWL_PCI_DEVICE(0x0085, 0xC220, iwl6005_2agn_sff_cfg)}, + {IWL_PCI_DEVICE(0x0085, 0xC228, iwl6005_2agn_sff_cfg)}, {IWL_PCI_DEVICE(0x0082, 0x4820, iwl6005_2agn_d_cfg)}, {IWL_PCI_DEVICE(0x0082, 0x1304, iwl6005_2agn_mow1_cfg)},/* low 5GHz active */ {IWL_PCI_DEVICE(0x0082, 0x1305, iwl6005_2agn_mow2_cfg)},/* high 5GHz active */ @@ -240,8 +247,11 @@ /* 6x35 Series */ {IWL_PCI_DEVICE(0x088E, 0x4060, iwl6035_2agn_cfg)}, + {IWL_PCI_DEVICE(0x088E, 0x406A, iwl6035_2agn_sff_cfg)}, {IWL_PCI_DEVICE(0x088F, 0x4260, iwl6035_2agn_cfg)}, + {IWL_PCI_DEVICE(0x088F, 0x426A, iwl6035_2agn_sff_cfg)}, {IWL_PCI_DEVICE(0x088E, 0x4460, iwl6035_2agn_cfg)}, + {IWL_PCI_DEVICE(0x088E, 0x446A, iwl6035_2agn_sff_cfg)}, {IWL_PCI_DEVICE(0x088E, 0x4860, iwl6035_2agn_cfg)}, {IWL_PCI_DEVICE(0x088F, 0x5260, iwl6035_2agn_cfg)}, @@ -260,54 +270,83 @@ #if IS_ENABLED(CONFIG_IWLMVM) /* 7000 Series */ {IWL_PCI_DEVICE(0x08B1, 0x4070, iwl7260_2ac_cfg)}, + {IWL_PCI_DEVICE(0x08B1, 0x4072, iwl7260_2ac_cfg)}, {IWL_PCI_DEVICE(0x08B1, 0x4170, iwl7260_2ac_cfg)}, {IWL_PCI_DEVICE(0x08B1, 0x4060, iwl7260_2n_cfg)}, + {IWL_PCI_DEVICE(0x08B1, 0x406A, iwl7260_2n_cfg)}, {IWL_PCI_DEVICE(0x08B1, 0x4160, iwl7260_2n_cfg)}, {IWL_PCI_DEVICE(0x08B1, 0x4062, iwl7260_n_cfg)}, {IWL_PCI_DEVICE(0x08B1, 0x4162, iwl7260_n_cfg)}, {IWL_PCI_DEVICE(0x08B2, 0x4270, iwl7260_2ac_cfg)}, + {IWL_PCI_DEVICE(0x08B2, 0x4272, iwl7260_2ac_cfg)}, {IWL_PCI_DEVICE(0x08B2, 0x4260, iwl7260_2n_cfg)}, + {IWL_PCI_DEVICE(0x08B2, 0x426A, iwl7260_2n_cfg)}, {IWL_PCI_DEVICE(0x08B2, 0x4262, iwl7260_n_cfg)}, {IWL_PCI_DEVICE(0x08B1, 0x4470, iwl7260_2ac_cfg)}, + {IWL_PCI_DEVICE(0x08B1, 0x4472, iwl7260_2ac_cfg)}, {IWL_PCI_DEVICE(0x08B1, 0x4460, iwl7260_2n_cfg)}, + {IWL_PCI_DEVICE(0x08B1, 0x446A, iwl7260_2n_cfg)}, {IWL_PCI_DEVICE(0x08B1, 0x4462, iwl7260_n_cfg)}, {IWL_PCI_DEVICE(0x08B1, 0x4870, iwl7260_2ac_cfg)}, {IWL_PCI_DEVICE(0x08B1, 0x486E, iwl7260_2ac_cfg)}, - {IWL_PCI_DEVICE(0x08B1, 0x4A70, iwl7260_2ac_cfg)}, - {IWL_PCI_DEVICE(0x08B1, 0x4A6E, iwl7260_2ac_cfg)}, - {IWL_PCI_DEVICE(0x08B1, 0x4A6C, iwl7260_2ac_cfg)}, + {IWL_PCI_DEVICE(0x08B1, 0x4570, iwl7260_2ac_cfg)}, + {IWL_PCI_DEVICE(0x08B1, 0x4560, iwl7260_2n_cfg)}, + {IWL_PCI_DEVICE(0x08B2, 0x4370, iwl7260_2ac_cfg)}, + {IWL_PCI_DEVICE(0x08B2, 0x4360, iwl7260_2n_cfg)}, + {IWL_PCI_DEVICE(0x08B1, 0x5070, iwl7260_2ac_cfg)}, {IWL_PCI_DEVICE(0x08B1, 0x4020, iwl7260_2n_cfg)}, + {IWL_PCI_DEVICE(0x08B1, 0x402A, iwl7260_2n_cfg)}, {IWL_PCI_DEVICE(0x08B2, 0x4220, iwl7260_2n_cfg)}, {IWL_PCI_DEVICE(0x08B1, 0x4420, iwl7260_2n_cfg)}, {IWL_PCI_DEVICE(0x08B1, 0xC070, iwl7260_2ac_cfg)}, + {IWL_PCI_DEVICE(0x08B1, 0xC072, iwl7260_2ac_cfg)}, {IWL_PCI_DEVICE(0x08B1, 0xC170, iwl7260_2ac_cfg)}, {IWL_PCI_DEVICE(0x08B1, 0xC060, iwl7260_2n_cfg)}, + {IWL_PCI_DEVICE(0x08B1, 0xC06A, iwl7260_2n_cfg)}, {IWL_PCI_DEVICE(0x08B1, 0xC160, iwl7260_2n_cfg)}, {IWL_PCI_DEVICE(0x08B1, 0xC062, iwl7260_n_cfg)}, {IWL_PCI_DEVICE(0x08B1, 0xC162, iwl7260_n_cfg)}, + {IWL_PCI_DEVICE(0x08B1, 0xC770, iwl7260_2ac_cfg)}, + {IWL_PCI_DEVICE(0x08B1, 0xC760, iwl7260_2n_cfg)}, {IWL_PCI_DEVICE(0x08B2, 0xC270, iwl7260_2ac_cfg)}, + {IWL_PCI_DEVICE(0x08B2, 0xC272, iwl7260_2ac_cfg)}, {IWL_PCI_DEVICE(0x08B2, 0xC260, iwl7260_2n_cfg)}, + {IWL_PCI_DEVICE(0x08B2, 0xC26A, iwl7260_n_cfg)}, {IWL_PCI_DEVICE(0x08B2, 0xC262, iwl7260_n_cfg)}, {IWL_PCI_DEVICE(0x08B1, 0xC470, iwl7260_2ac_cfg)}, + {IWL_PCI_DEVICE(0x08B1, 0xC472, iwl7260_2ac_cfg)}, {IWL_PCI_DEVICE(0x08B1, 0xC460, iwl7260_2n_cfg)}, {IWL_PCI_DEVICE(0x08B1, 0xC462, iwl7260_n_cfg)}, + {IWL_PCI_DEVICE(0x08B1, 0xC570, iwl7260_2ac_cfg)}, + {IWL_PCI_DEVICE(0x08B1, 0xC560, iwl7260_2n_cfg)}, + {IWL_PCI_DEVICE(0x08B2, 0xC370, iwl7260_2ac_cfg)}, + {IWL_PCI_DEVICE(0x08B1, 0xC360, iwl7260_2n_cfg)}, {IWL_PCI_DEVICE(0x08B1, 0xC020, iwl7260_2n_cfg)}, + {IWL_PCI_DEVICE(0x08B1, 0xC02A, iwl7260_2n_cfg)}, {IWL_PCI_DEVICE(0x08B2, 0xC220, iwl7260_2n_cfg)}, {IWL_PCI_DEVICE(0x08B1, 0xC420, iwl7260_2n_cfg)}, /* 3160 Series */ {IWL_PCI_DEVICE(0x08B3, 0x0070, iwl3160_2ac_cfg)}, + {IWL_PCI_DEVICE(0x08B3, 0x0072, iwl3160_2ac_cfg)}, {IWL_PCI_DEVICE(0x08B3, 0x0170, iwl3160_2ac_cfg)}, + {IWL_PCI_DEVICE(0x08B3, 0x0172, iwl3160_2ac_cfg)}, {IWL_PCI_DEVICE(0x08B3, 0x0060, iwl3160_2n_cfg)}, {IWL_PCI_DEVICE(0x08B3, 0x0062, iwl3160_n_cfg)}, {IWL_PCI_DEVICE(0x08B4, 0x0270, iwl3160_2ac_cfg)}, + {IWL_PCI_DEVICE(0x08B4, 0x0272, iwl3160_2ac_cfg)}, {IWL_PCI_DEVICE(0x08B3, 0x0470, iwl3160_2ac_cfg)}, + {IWL_PCI_DEVICE(0x08B3, 0x0472, iwl3160_2ac_cfg)}, + {IWL_PCI_DEVICE(0x08B4, 0x0370, iwl3160_2ac_cfg)}, {IWL_PCI_DEVICE(0x08B3, 0x8070, iwl3160_2ac_cfg)}, + {IWL_PCI_DEVICE(0x08B3, 0x8072, iwl3160_2ac_cfg)}, {IWL_PCI_DEVICE(0x08B3, 0x8170, iwl3160_2ac_cfg)}, + {IWL_PCI_DEVICE(0x08B3, 0x8172, iwl3160_2ac_cfg)}, {IWL_PCI_DEVICE(0x08B3, 0x8060, iwl3160_2n_cfg)}, {IWL_PCI_DEVICE(0x08B3, 0x8062, iwl3160_n_cfg)}, {IWL_PCI_DEVICE(0x08B4, 0x8270, iwl3160_2ac_cfg)}, {IWL_PCI_DEVICE(0x08B3, 0x8470, iwl3160_2ac_cfg)}, + {IWL_PCI_DEVICE(0x08B3, 0x8570, iwl3160_2ac_cfg)}, #endif /* CONFIG_IWLMVM */ {0} --- linux-3.11.0.orig/drivers/net/wireless/iwlwifi/mvm/scan.c +++ linux-3.11.0/drivers/net/wireless/iwlwifi/mvm/scan.c @@ -392,6 +392,11 @@ return false; } + /* + * If scan cannot be aborted, it means that we had a + * SCAN_COMPLETE_NOTIFICATION in the pipe and it called + * ieee80211_scan_completed already. + */ IWL_DEBUG_SCAN(mvm, "Scan cannot be aborted, exit now: %d\n", *resp); return true; @@ -415,14 +420,19 @@ SCAN_COMPLETE_NOTIFICATION }; int ret; + if (mvm->scan_status == IWL_MVM_SCAN_NONE) + return; + iwl_init_notification_wait(&mvm->notif_wait, &wait_scan_abort, scan_abort_notif, ARRAY_SIZE(scan_abort_notif), iwl_mvm_scan_abort_notif, NULL); - ret = iwl_mvm_send_cmd_pdu(mvm, SCAN_ABORT_CMD, CMD_SYNC, 0, NULL); + ret = iwl_mvm_send_cmd_pdu(mvm, SCAN_ABORT_CMD, + CMD_SYNC | CMD_SEND_IN_RFKILL, 0, NULL); if (ret) { IWL_ERR(mvm, "Couldn't send SCAN_ABORT_CMD: %d\n", ret); + /* mac80211's state will be cleaned in the fw_restart flow */ goto out_remove_notif; } --- linux-3.11.0.orig/drivers/net/wireless/hostap/hostap_hw.c +++ linux-3.11.0/drivers/net/wireless/hostap/hostap_hw.c @@ -69,7 +69,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-3.11.0.orig/drivers/gpio/gpio-omap.c +++ linux-3.11.0/drivers/gpio/gpio-omap.c @@ -63,6 +63,7 @@ struct gpio_chip chip; struct clk *dbck; u32 mod_usage; + u32 irq_usage; u32 dbck_enable_mask; bool dbck_enabled; struct device *dev; @@ -86,6 +87,9 @@ #define GPIO_BIT(bank, gpio) (1 << GPIO_INDEX(bank, gpio)) #define GPIO_MOD_CTRL_BIT BIT(0) +#define BANK_USED(bank) (bank->mod_usage || bank->irq_usage) +#define LINE_USED(line, offset) (line & (1 << offset)) + static int irq_to_gpio(struct gpio_bank *bank, unsigned int gpio_irq) { return bank->chip.base + gpio_irq; @@ -420,15 +424,69 @@ return 0; } +static void _enable_gpio_module(struct gpio_bank *bank, unsigned offset) +{ + if (bank->regs->pinctrl) { + void __iomem *reg = bank->base + bank->regs->pinctrl; + + /* Claim the pin for MPU */ + __raw_writel(__raw_readl(reg) | (1 << offset), reg); + } + + if (bank->regs->ctrl && !BANK_USED(bank)) { + void __iomem *reg = bank->base + bank->regs->ctrl; + u32 ctrl; + + ctrl = __raw_readl(reg); + /* Module is enabled, clocks are not gated */ + ctrl &= ~GPIO_MOD_CTRL_BIT; + __raw_writel(ctrl, reg); + bank->context.ctrl = ctrl; + } +} + +static void _disable_gpio_module(struct gpio_bank *bank, unsigned offset) +{ + void __iomem *base = bank->base; + + if (bank->regs->wkup_en && + !LINE_USED(bank->mod_usage, offset) && + !LINE_USED(bank->irq_usage, offset)) { + /* Disable wake-up during idle for dynamic tick */ + _gpio_rmw(base, bank->regs->wkup_en, 1 << offset, 0); + bank->context.wake_en = + __raw_readl(bank->base + bank->regs->wkup_en); + } + + if (bank->regs->ctrl && !BANK_USED(bank)) { + void __iomem *reg = bank->base + bank->regs->ctrl; + u32 ctrl; + + ctrl = __raw_readl(reg); + /* Module is disabled, clocks are gated */ + ctrl |= GPIO_MOD_CTRL_BIT; + __raw_writel(ctrl, reg); + bank->context.ctrl = ctrl; + } +} + +static int gpio_is_input(struct gpio_bank *bank, int mask) +{ + void __iomem *reg = bank->base + bank->regs->direction; + + return __raw_readl(reg) & mask; +} + static int gpio_irq_type(struct irq_data *d, unsigned type) { struct gpio_bank *bank = irq_data_get_irq_chip_data(d); unsigned gpio = 0; int retval; unsigned long flags; + unsigned offset; - if (WARN_ON(!bank->mod_usage)) - return -EINVAL; + if (!BANK_USED(bank)) + pm_runtime_get_sync(bank->dev); #ifdef CONFIG_ARCH_OMAP1 if (d->irq > IH_MPUIO_BASE) @@ -446,7 +504,17 @@ return -EINVAL; spin_lock_irqsave(&bank->lock, flags); - retval = _set_gpio_triggering(bank, GPIO_INDEX(bank, gpio), type); + offset = GPIO_INDEX(bank, gpio); + retval = _set_gpio_triggering(bank, offset, type); + if (!LINE_USED(bank->mod_usage, offset)) { + _enable_gpio_module(bank, offset); + _set_gpio_direction(bank, offset, 1); + } else if (!gpio_is_input(bank, 1 << offset)) { + spin_unlock_irqrestore(&bank->lock, flags); + return -EINVAL; + } + + bank->irq_usage |= 1 << GPIO_INDEX(bank, gpio); spin_unlock_irqrestore(&bank->lock, flags); if (type & (IRQ_TYPE_LEVEL_LOW | IRQ_TYPE_LEVEL_HIGH)) @@ -603,35 +671,19 @@ * If this is the first gpio_request for the bank, * enable the bank module. */ - if (!bank->mod_usage) + if (!BANK_USED(bank)) pm_runtime_get_sync(bank->dev); spin_lock_irqsave(&bank->lock, flags); /* Set trigger to none. You need to enable the desired trigger with - * request_irq() or set_irq_type(). + * request_irq() or set_irq_type(). Only do this if the IRQ line has + * not already been requested. */ - _set_gpio_triggering(bank, offset, IRQ_TYPE_NONE); - - if (bank->regs->pinctrl) { - void __iomem *reg = bank->base + bank->regs->pinctrl; - - /* Claim the pin for MPU */ - __raw_writel(__raw_readl(reg) | (1 << offset), reg); - } - - if (bank->regs->ctrl && !bank->mod_usage) { - void __iomem *reg = bank->base + bank->regs->ctrl; - u32 ctrl; - - ctrl = __raw_readl(reg); - /* Module is enabled, clocks are not gated */ - ctrl &= ~GPIO_MOD_CTRL_BIT; - __raw_writel(ctrl, reg); - bank->context.ctrl = ctrl; + if (!LINE_USED(bank->irq_usage, offset)) { + _set_gpio_triggering(bank, offset, IRQ_TYPE_NONE); + _enable_gpio_module(bank, offset); } - bank->mod_usage |= 1 << offset; - spin_unlock_irqrestore(&bank->lock, flags); return 0; @@ -640,31 +692,11 @@ static void omap_gpio_free(struct gpio_chip *chip, unsigned offset) { struct gpio_bank *bank = container_of(chip, struct gpio_bank, chip); - void __iomem *base = bank->base; unsigned long flags; spin_lock_irqsave(&bank->lock, flags); - - if (bank->regs->wkup_en) { - /* Disable wake-up during idle for dynamic tick */ - _gpio_rmw(base, bank->regs->wkup_en, 1 << offset, 0); - bank->context.wake_en = - __raw_readl(bank->base + bank->regs->wkup_en); - } - bank->mod_usage &= ~(1 << offset); - - if (bank->regs->ctrl && !bank->mod_usage) { - void __iomem *reg = bank->base + bank->regs->ctrl; - u32 ctrl; - - ctrl = __raw_readl(reg); - /* Module is disabled, clocks are gated */ - ctrl |= GPIO_MOD_CTRL_BIT; - __raw_writel(ctrl, reg); - bank->context.ctrl = ctrl; - } - + _disable_gpio_module(bank, offset); _reset_gpio(bank, bank->chip.base + offset); spin_unlock_irqrestore(&bank->lock, flags); @@ -672,7 +704,7 @@ * If this is the last gpio to be freed in the bank, * disable the bank module. */ - if (!bank->mod_usage) + if (!BANK_USED(bank)) pm_runtime_put(bank->dev); } @@ -762,10 +794,20 @@ struct gpio_bank *bank = irq_data_get_irq_chip_data(d); unsigned int gpio = irq_to_gpio(bank, d->hwirq); unsigned long flags; + unsigned offset = GPIO_INDEX(bank, gpio); spin_lock_irqsave(&bank->lock, flags); + bank->irq_usage &= ~(1 << offset); + _disable_gpio_module(bank, offset); _reset_gpio(bank, gpio); spin_unlock_irqrestore(&bank->lock, flags); + + /* + * If this is the last IRQ to be freed in the bank, + * disable the bank module. + */ + if (!BANK_USED(bank)) + pm_runtime_put(bank->dev); } static void gpio_ack_irq(struct irq_data *d) @@ -897,13 +939,6 @@ return 0; } -static int gpio_is_input(struct gpio_bank *bank, int mask) -{ - void __iomem *reg = bank->base + bank->regs->direction; - - return __raw_readl(reg) & mask; -} - static int gpio_get(struct gpio_chip *chip, unsigned offset) { struct gpio_bank *bank; @@ -922,13 +957,22 @@ { struct gpio_bank *bank; unsigned long flags; + int retval = 0; bank = container_of(chip, struct gpio_bank, chip); spin_lock_irqsave(&bank->lock, flags); + + if (LINE_USED(bank->irq_usage, offset)) { + retval = -EINVAL; + goto exit; + } + bank->set_dataout(bank, offset, value); _set_gpio_direction(bank, offset, 0); + +exit: spin_unlock_irqrestore(&bank->lock, flags); - return 0; + return retval; } static int gpio_debounce(struct gpio_chip *chip, unsigned offset, @@ -1400,7 +1444,7 @@ struct gpio_bank *bank; list_for_each_entry(bank, &omap_gpio_list, node) { - if (!bank->mod_usage || !bank->loses_context) + if (!BANK_USED(bank) || !bank->loses_context) continue; bank->power_mode = pwr_mode; @@ -1414,7 +1458,7 @@ struct gpio_bank *bank; list_for_each_entry(bank, &omap_gpio_list, node) { - if (!bank->mod_usage || !bank->loses_context) + if (!BANK_USED(bank) || !bank->loses_context) continue; pm_runtime_get_sync(bank->dev); --- linux-3.11.0.orig/drivers/gpio/gpio-lynxpoint.c +++ linux-3.11.0/drivers/gpio/gpio-lynxpoint.c @@ -248,14 +248,15 @@ struct lp_gpio *lg = irq_data_get_irq_handler_data(data); struct irq_chip *chip = irq_data_get_irq_chip(data); u32 base, pin, mask; - unsigned long reg, pending; + unsigned long reg, ena, pending; unsigned virq; /* check from GPIO controller which pin triggered the interrupt */ for (base = 0; base < lg->chip.ngpio; base += 32) { reg = lp_gpio_reg(&lg->chip, base, LP_INT_STAT); + ena = lp_gpio_reg(&lg->chip, base, LP_INT_ENABLE); - while ((pending = inl(reg))) { + while ((pending = (inl(reg) & inl(ena)))) { pin = __ffs(pending); mask = BIT(pin); /* Clear before handling so we don't lose an edge */ --- linux-3.11.0.orig/drivers/thermal/x86_pkg_temp_thermal.c +++ linux-3.11.0/drivers/thermal/x86_pkg_temp_thermal.c @@ -316,18 +316,19 @@ int phy_id = topology_physical_package_id(cpu); struct phy_dev_entry *phdev = pkg_temp_thermal_get_phy_entry(cpu); bool notify = false; + unsigned long flags; if (!phdev) return; - spin_lock(&pkg_work_lock); + spin_lock_irqsave(&pkg_work_lock, flags); ++pkg_work_cnt; if (unlikely(phy_id > max_phy_id)) { - spin_unlock(&pkg_work_lock); + spin_unlock_irqrestore(&pkg_work_lock, flags); return; } pkg_work_scheduled[phy_id] = 0; - spin_unlock(&pkg_work_lock); + spin_unlock_irqrestore(&pkg_work_lock, flags); enable_pkg_thres_interrupt(); rdmsrl(MSR_IA32_PACKAGE_THERM_STATUS, msr_val); @@ -397,6 +398,7 @@ int thres_count; u32 eax, ebx, ecx, edx; u8 *temp; + unsigned long flags; cpuid(6, &eax, &ebx, &ecx, &edx); thres_count = ebx & 0x07; @@ -420,19 +422,19 @@ goto err_ret_unlock; } - spin_lock(&pkg_work_lock); + spin_lock_irqsave(&pkg_work_lock, flags); if (topology_physical_package_id(cpu) > max_phy_id) max_phy_id = topology_physical_package_id(cpu); temp = krealloc(pkg_work_scheduled, (max_phy_id+1) * sizeof(u8), GFP_ATOMIC); if (!temp) { - spin_unlock(&pkg_work_lock); + spin_unlock_irqrestore(&pkg_work_lock, flags); err = -ENOMEM; goto err_ret_free; } pkg_work_scheduled = temp; pkg_work_scheduled[topology_physical_package_id(cpu)] = 0; - spin_unlock(&pkg_work_lock); + spin_unlock_irqrestore(&pkg_work_lock, flags); phy_dev_entry->phys_proc_id = topology_physical_package_id(cpu); phy_dev_entry->first_cpu = cpu; --- linux-3.11.0.orig/drivers/input/misc/cm109.c +++ linux-3.11.0/drivers/input/misc/cm109.c @@ -351,7 +351,8 @@ if (status) { if (status == -ESHUTDOWN) return; - dev_err(&dev->intf->dev, "%s: urb status %d\n", __func__, status); + dev_err_ratelimited(&dev->intf->dev, "%s: urb status %d\n", + __func__, status); } /* Special keys */ @@ -419,7 +420,8 @@ dev->ctl_data->byte[3]); if (status) - dev_err(&dev->intf->dev, "%s: urb status %d\n", __func__, status); + dev_err_ratelimited(&dev->intf->dev, "%s: urb status %d\n", + __func__, status); spin_lock(&dev->ctl_submit_lock); @@ -436,7 +438,7 @@ dev->irq_urb_pending = 1; error = usb_submit_urb(dev->urb_irq, GFP_ATOMIC); if (error) - dev_err(&dev->intf->dev, + dev_err_ratelimited(&dev->intf->dev, "%s: usb_submit_urb (urb_irq) failed %d\n", __func__, error); } @@ -480,7 +482,7 @@ dev->ctl_data, USB_PKT_LEN, USB_CTRL_SET_TIMEOUT); if (error < 0 && error != -EINTR) - dev_err(&dev->intf->dev, "%s: usb_control_msg() failed %d\n", + dev_err_ratelimited(&dev->intf->dev, "%s: usb_control_msg() failed %d\n", __func__, error); } @@ -542,8 +544,9 @@ error = usb_submit_urb(dev->urb_ctl, GFP_KERNEL); if (error) - dev_err(&dev->intf->dev, "%s: usb_submit_urb (urb_ctl) failed %d\n", - __func__, error); + dev_err_ratelimited(&dev->intf->dev, + "%s: usb_submit_urb (urb_ctl) failed %d\n", __func__, + error); else dev->open = 1; @@ -716,7 +719,7 @@ pipe = usb_rcvintpipe(udev, endpoint->bEndpointAddress); ret = usb_maxpacket(udev, pipe, usb_pipeout(pipe)); if (ret != USB_PKT_LEN) - dev_err(&intf->dev, "invalid payload size %d, expected %d\n", + dev_err_ratelimited(&intf->dev, "invalid payload size %d, expected %d\n", ret, USB_PKT_LEN); /* initialise irq urb */ --- linux-3.11.0.orig/drivers/input/mouse/bcm5974.c +++ linux-3.11.0/drivers/input/mouse/bcm5974.c @@ -89,9 +89,9 @@ #define USB_DEVICE_ID_APPLE_WELLSPRING7A_ISO 0x025a #define USB_DEVICE_ID_APPLE_WELLSPRING7A_JIS 0x025b /* MacbookAir6,2 (unibody, June 2013) */ -#define USB_DEVICE_ID_APPLE_WELLSPRING8_ANSI 0x0291 -#define USB_DEVICE_ID_APPLE_WELLSPRING8_ISO 0x0292 -#define USB_DEVICE_ID_APPLE_WELLSPRING8_JIS 0x0293 +#define USB_DEVICE_ID_APPLE_WELLSPRING8_ANSI 0x0290 +#define USB_DEVICE_ID_APPLE_WELLSPRING8_ISO 0x0291 +#define USB_DEVICE_ID_APPLE_WELLSPRING8_JIS 0x0292 #define BCM5974_DEVICE(prod) { \ .match_flags = (USB_DEVICE_ID_MATCH_DEVICE | \ --- linux-3.11.0.orig/drivers/input/mouse/synaptics.h +++ linux-3.11.0/drivers/input/mouse/synaptics.h @@ -81,6 +81,7 @@ */ #define SYN_CAP_CLICKPAD(ex0c) ((ex0c) & 0x100000) /* 1-button ClickPad */ #define SYN_CAP_CLICKPAD2BTN(ex0c) ((ex0c) & 0x000100) /* 2-button ClickPad */ +#define SYN_CAP_CLICKPAD2BTN2(ex0c) ((ex0c) & 0x200000) /* 2-button ClickPad */ #define SYN_CAP_MAX_DIMENSIONS(ex0c) ((ex0c) & 0x020000) #define SYN_CAP_MIN_DIMENSIONS(ex0c) ((ex0c) & 0x002000) #define SYN_CAP_ADV_GESTURE(ex0c) ((ex0c) & 0x080000) --- linux-3.11.0.orig/drivers/input/mouse/synaptics.c +++ linux-3.11.0/drivers/input/mouse/synaptics.c @@ -1317,7 +1317,9 @@ /* Clickpads report only left button */ __clear_bit(BTN_RIGHT, dev->keybit); __clear_bit(BTN_MIDDLE, dev->keybit); - } + } else if (SYN_CAP_CLICKPAD2BTN(priv->ext_cap_0c) || + SYN_CAP_CLICKPAD2BTN2(priv->ext_cap_0c)) + __set_bit(INPUT_PROP_BUTTONPAD, dev->propbit); } static ssize_t synaptics_show_disable_gesture(struct psmouse *psmouse, --- linux-3.11.0.orig/drivers/input/mouse/cypress_ps2.c +++ linux-3.11.0/drivers/input/mouse/cypress_ps2.c @@ -391,7 +391,9 @@ if (ret < 0) return ret; +#if ( CYPRESS_SIMULATED_MT != 1 ) __set_bit(INPUT_PROP_SEMI_MT, input->propbit); +#endif input_abs_set_res(input, ABS_X, cytp->tp_res_x); input_abs_set_res(input, ABS_Y, cytp->tp_res_y); @@ -439,7 +441,7 @@ case 2: return 5; default: /* Invalid contact (e.g. palm). Ignore it. */ - return -1; + return 0; } } @@ -458,7 +460,7 @@ contact_cnt = cypress_get_finger_count(header_byte); - if (contact_cnt < 0) /* e.g. palm detect */ + if (contact_cnt < 0) return -EINVAL; report_data->contact_cnt = contact_cnt; @@ -487,6 +489,22 @@ ((packet[5] & 0x0f) << 8) | packet[7]; if (cytp->mode & CYTP_BIT_ABS_PRESSURE) report_data->contacts[1].z = report_data->contacts[0].z; +#if ( CYPRESS_SIMULATED_MT == 1 ) + /* simulate contact positions for >2 fingers */ + if ( report_data->contact_cnt >= 3 ) { + int i; + for ( i=1; icontact_cnt; i++ ) { + report_data->contacts[i].x = + report_data->contacts[0].x + + 100*(i)*((i%2)?-1:1); + report_data->contacts[i].y = + report_data->contacts[0].y; + if (cytp->mode & CYTP_BIT_ABS_PRESSURE) + report_data->contacts[i].z = + report_data->contacts[0].z; + } + } +#endif } report_data->left = (header_byte & BTN_LEFT_BIT) ? 1 : 0; --- linux-3.11.0.orig/drivers/input/mouse/cypress_ps2.h +++ linux-3.11.0/drivers/input/mouse/cypress_ps2.h @@ -130,7 +130,18 @@ #define RESP_REMOTE_BIT 0x40 #define RESP_SMBUS_BIT 0x80 -#define CYTP_MAX_MT_SLOTS 2 +/* + * CYPRESS_SIMULATED_MT + * set to 1 for simulated multitouch (up to 5 contact points) + * set to 0 for SEMI_MT (only 2 corner points, and count of fingers) + */ +#define CYPRESS_SIMULATED_MT 1 + +#if ( CYPRESS_SIMULATED_MT == 1 ) +# define CYTP_MAX_MT_SLOTS 5 +#else +# define CYTP_MAX_MT_SLOTS 2 +#endif struct cytp_contact { int x; --- linux-3.11.0.orig/drivers/cdrom/cdrom.c +++ linux-3.11.0/drivers/cdrom/cdrom.c @@ -289,7 +289,7 @@ /* default compatibility mode */ static bool autoclose=1; static bool autoeject; -static bool lockdoor = 1; +static bool lockdoor = 0; /* will we ever get to use this... sigh. */ static bool check_media_type; /* automatically restart mrw format */ --- linux-3.11.0.orig/drivers/char/random.c +++ linux-3.11.0/drivers/char/random.c @@ -1462,12 +1462,11 @@ static u32 random_int_secret[MD5_MESSAGE_BYTES / 4] ____cacheline_aligned; -static int __init random_int_secret_init(void) +int random_int_secret_init(void) { get_random_bytes(random_int_secret, sizeof(random_int_secret)); return 0; } -late_initcall(random_int_secret_init); /* * Get a random word for internal kernel use only. Similar to urandom but --- linux-3.11.0.orig/drivers/iommu/arm-smmu.c +++ linux-3.11.0/drivers/iommu/arm-smmu.c @@ -379,6 +379,7 @@ u32 cbar; pgd_t *pgd; }; +#define INVALID_IRPTNDX 0xff struct arm_smmu_domain { /* @@ -830,7 +831,7 @@ if (IS_ERR_VALUE(ret)) { dev_err(smmu->dev, "failed to request context IRQ %d (%u)\n", root_cfg->irptndx, irq); - root_cfg->irptndx = -1; + root_cfg->irptndx = INVALID_IRPTNDX; goto out_free_context; } @@ -855,7 +856,7 @@ if (!smmu) return; - if (root_cfg->irptndx != -1) { + if (root_cfg->irptndx != INVALID_IRPTNDX) { irq = smmu->irqs[smmu->num_global_irqs + root_cfg->irptndx]; free_irq(irq, domain); } @@ -1838,8 +1839,6 @@ goto out_put_parent; } - arm_smmu_device_reset(smmu); - for (i = 0; i < smmu->num_global_irqs; ++i) { err = request_irq(smmu->irqs[i], arm_smmu_global_fault, @@ -1857,6 +1856,8 @@ spin_lock(&arm_smmu_devices_lock); list_add(&smmu->list, &arm_smmu_devices); spin_unlock(&arm_smmu_devices_lock); + + arm_smmu_device_reset(smmu); return 0; out_free_irqs: @@ -1947,10 +1948,10 @@ return ret; /* Oh, for a proper bus abstraction */ - if (!iommu_present(&platform_bus_type)); + if (!iommu_present(&platform_bus_type)) bus_set_iommu(&platform_bus_type, &arm_smmu_ops); - if (!iommu_present(&amba_bustype)); + if (!iommu_present(&amba_bustype)) bus_set_iommu(&amba_bustype, &arm_smmu_ops); return 0; --- linux-3.11.0.orig/drivers/iommu/intel-iommu.c +++ linux-3.11.0/drivers/iommu/intel-iommu.c @@ -890,56 +890,54 @@ return order; } +static void dma_pte_free_level(struct dmar_domain *domain, int level, + struct dma_pte *pte, unsigned long pfn, + unsigned long start_pfn, unsigned long last_pfn) +{ + pfn = max(start_pfn, pfn); + pte = &pte[pfn_level_offset(pfn, level)]; + + do { + unsigned long level_pfn; + struct dma_pte *level_pte; + + if (!dma_pte_present(pte) || dma_pte_superpage(pte)) + goto next; + + level_pfn = pfn & level_mask(level - 1); + level_pte = phys_to_virt(dma_pte_addr(pte)); + + if (level > 2) + dma_pte_free_level(domain, level - 1, level_pte, + level_pfn, start_pfn, last_pfn); + + /* If range covers entire pagetable, free it */ + if (!(start_pfn > level_pfn || + last_pfn < level_pfn + level_size(level))) { + dma_clear_pte(pte); + domain_flush_cache(domain, pte, sizeof(*pte)); + free_pgtable_page(level_pte); + } +next: + pfn += level_size(level); + } while (!first_pte_in_page(++pte) && pfn <= last_pfn); +} + /* free page table pages. last level pte should already be cleared */ static void dma_pte_free_pagetable(struct dmar_domain *domain, unsigned long start_pfn, unsigned long last_pfn) { int addr_width = agaw_to_width(domain->agaw) - VTD_PAGE_SHIFT; - struct dma_pte *first_pte, *pte; - int total = agaw_to_level(domain->agaw); - int level; - unsigned long tmp; - int large_page = 2; BUG_ON(addr_width < BITS_PER_LONG && start_pfn >> addr_width); BUG_ON(addr_width < BITS_PER_LONG && last_pfn >> addr_width); BUG_ON(start_pfn > last_pfn); /* We don't need lock here; nobody else touches the iova range */ - level = 2; - while (level <= total) { - tmp = align_to_level(start_pfn, level); - - /* If we can't even clear one PTE at this level, we're done */ - if (tmp + level_size(level) - 1 > last_pfn) - return; - - do { - large_page = level; - first_pte = pte = dma_pfn_level_pte(domain, tmp, level, &large_page); - if (large_page > level) - level = large_page + 1; - if (!pte) { - tmp = align_to_level(tmp + 1, level + 1); - continue; - } - do { - if (dma_pte_present(pte)) { - free_pgtable_page(phys_to_virt(dma_pte_addr(pte))); - dma_clear_pte(pte); - } - pte++; - tmp += level_size(level); - } while (!first_pte_in_page(pte) && - tmp + level_size(level) - 1 <= last_pfn); - - domain_flush_cache(domain, first_pte, - (void *)pte - (void *)first_pte); - - } while (tmp && tmp + level_size(level) - 1 <= last_pfn); - level++; - } + dma_pte_free_level(domain, agaw_to_level(domain->agaw), + domain->pgd, 0, start_pfn, last_pfn); + /* free pgd */ if (start_pfn == 0 && last_pfn == DOMAIN_MAX_PFN(domain->gaw)) { free_pgtable_page(domain->pgd); --- linux-3.11.0.orig/drivers/pci/pci-acpi.c +++ linux-3.11.0/drivers/pci/pci-acpi.c @@ -47,6 +47,9 @@ if (event != ACPI_NOTIFY_DEVICE_WAKE || !pci_dev) return; + if (pci_dev->pme_poll) + pci_dev->pme_poll = false; + if (pci_dev->current_state == PCI_D3cold) { pci_wakeup_event(pci_dev); pm_runtime_resume(&pci_dev->dev); @@ -57,9 +60,6 @@ if (pci_dev->pme_support) pci_check_pme_status(pci_dev); - if (pci_dev->pme_poll) - pci_dev->pme_poll = false; - pci_wakeup_event(pci_dev); pm_runtime_resume(&pci_dev->dev); --- linux-3.11.0.orig/drivers/pci/access.c +++ linux-3.11.0/drivers/pci/access.c @@ -484,28 +484,29 @@ { int type = pci_pcie_type(dev); - return pcie_cap_version(dev) > 1 || + return type == PCI_EXP_TYPE_ENDPOINT || + type == PCI_EXP_TYPE_LEG_END || type == PCI_EXP_TYPE_ROOT_PORT || - type == PCI_EXP_TYPE_ENDPOINT || - type == PCI_EXP_TYPE_LEG_END; + type == PCI_EXP_TYPE_UPSTREAM || + type == PCI_EXP_TYPE_DOWNSTREAM || + type == PCI_EXP_TYPE_PCI_BRIDGE || + type == PCI_EXP_TYPE_PCIE_BRIDGE; } static inline bool pcie_cap_has_sltctl(const struct pci_dev *dev) { int type = pci_pcie_type(dev); - return pcie_cap_version(dev) > 1 || - type == PCI_EXP_TYPE_ROOT_PORT || - (type == PCI_EXP_TYPE_DOWNSTREAM && - pcie_caps_reg(dev) & PCI_EXP_FLAGS_SLOT); + return (type == PCI_EXP_TYPE_ROOT_PORT || + type == PCI_EXP_TYPE_DOWNSTREAM) && + pcie_caps_reg(dev) & PCI_EXP_FLAGS_SLOT; } static inline bool pcie_cap_has_rtctl(const struct pci_dev *dev) { int type = pci_pcie_type(dev); - return pcie_cap_version(dev) > 1 || - type == PCI_EXP_TYPE_ROOT_PORT || + return type == PCI_EXP_TYPE_ROOT_PORT || type == PCI_EXP_TYPE_RC_EC; } --- linux-3.11.0.orig/drivers/pci/quirks.c +++ linux-3.11.0/drivers/pci/quirks.c @@ -44,6 +44,21 @@ DECLARE_PCI_FIXUP_CLASS_EARLY(PCI_ANY_ID, PCI_ANY_ID, PCI_CLASS_BRIDGE_HOST, 8, quirk_mmio_always_on); +/* The BAR0 ~ BAR4 of Marvell 9125 device can't be accessed +* by IO resource file, and need to skip the files +*/ +static void quirk_marvell_mask_bar(struct pci_dev *dev) +{ + int i; + + for (i = 0; i < 5; i++) + if (dev->resource[i].start) + dev->resource[i].start = + dev->resource[i].end = 0; +} +DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_MARVELL_EXT, 0x9125, + quirk_marvell_mask_bar); + /* The Mellanox Tavor device gives false positive parity errors * Mark this device with a broken_parity_status, to allow * PCI scanning code to "skip" this now blacklisted device. --- linux-3.11.0.orig/drivers/hid/hid-sony.c +++ linux-3.11.0/drivers/hid/hid-sony.c @@ -537,6 +537,10 @@ drv_data = hid_get_drvdata(hdev); BUG_ON(!(drv_data->quirks & BUZZ_CONTROLLER)); + /* Validate expected report characteristics. */ + if (!hid_validate_values(hdev, HID_OUTPUT_REPORT, 0, 0, 7)) + return -ENODEV; + buzz = kzalloc(sizeof(*buzz), GFP_KERNEL); if (!buzz) { hid_err(hdev, "Insufficient memory, cannot allocate driver data\n"); --- linux-3.11.0.orig/drivers/hid/hid-pl.c +++ linux-3.11.0/drivers/hid/hid-pl.c @@ -132,8 +132,14 @@ strong = &report->field[0]->value[2]; weak = &report->field[0]->value[3]; debug("detected single-field device"); - } else if (report->maxfield >= 4 && report->field[0]->maxusage == 1 && - report->field[0]->usage[0].hid == (HID_UP_LED | 0x43)) { + } else if (report->field[0]->maxusage == 1 && + report->field[0]->usage[0].hid == + (HID_UP_LED | 0x43) && + report->maxfield >= 4 && + report->field[0]->report_count >= 1 && + report->field[1]->report_count >= 1 && + report->field[2]->report_count >= 1 && + report->field[3]->report_count >= 1) { report->field[0]->value[0] = 0x00; report->field[1]->value[0] = 0x00; strong = &report->field[2]->value[0]; --- linux-3.11.0.orig/drivers/hid/uhid.c +++ linux-3.11.0/drivers/hid/uhid.c @@ -640,7 +640,7 @@ static struct miscdevice uhid_misc = { .fops = &uhid_fops, - .minor = MISC_DYNAMIC_MINOR, + .minor = UHID_MINOR, .name = UHID_NAME, }; @@ -659,3 +659,5 @@ MODULE_LICENSE("GPL"); MODULE_AUTHOR("David Herrmann "); MODULE_DESCRIPTION("User-space I/O driver support for HID subsystem"); +MODULE_ALIAS_MISCDEV(UHID_MINOR); +MODULE_ALIAS("devname:" UHID_NAME); --- linux-3.11.0.orig/drivers/hid/hid-appleir.c +++ linux-3.11.0/drivers/hid/hid-appleir.c @@ -297,6 +297,9 @@ appleir->hid = hid; + /* force input as some remotes bypass the input registration */ + hid->quirks |= HID_QUIRK_HIDINPUT_FORCE; + spin_lock_init(&appleir->lock); setup_timer(&appleir->key_up_timer, key_up_tick, (unsigned long) appleir); --- linux-3.11.0.orig/drivers/hid/hid-sensor-hub.c +++ linux-3.11.0/drivers/hid/hid-sensor-hub.c @@ -221,7 +221,8 @@ mutex_lock(&data->mutex); report = sensor_hub_report(report_id, hsdev->hdev, HID_FEATURE_REPORT); - if (!report || (field_index >= report->maxfield)) { + if (!report || (field_index >= report->maxfield) || + report->field[field_index]->report_count < 1) { ret = -EINVAL; goto done_proc; } --- linux-3.11.0.orig/drivers/hid/hid-ids.h +++ linux-3.11.0/drivers/hid/hid-ids.h @@ -135,9 +135,9 @@ #define USB_DEVICE_ID_APPLE_ALU_WIRELESS_2009_JIS 0x023b #define USB_DEVICE_ID_APPLE_ALU_WIRELESS_2011_ANSI 0x0255 #define USB_DEVICE_ID_APPLE_ALU_WIRELESS_2011_ISO 0x0256 -#define USB_DEVICE_ID_APPLE_WELLSPRING8_ANSI 0x0291 -#define USB_DEVICE_ID_APPLE_WELLSPRING8_ISO 0x0292 -#define USB_DEVICE_ID_APPLE_WELLSPRING8_JIS 0x0293 +#define USB_DEVICE_ID_APPLE_WELLSPRING8_ANSI 0x0290 +#define USB_DEVICE_ID_APPLE_WELLSPRING8_ISO 0x0291 +#define USB_DEVICE_ID_APPLE_WELLSPRING8_JIS 0x0292 #define USB_DEVICE_ID_APPLE_FOUNTAIN_TP_ONLY 0x030a #define USB_DEVICE_ID_APPLE_GEYSER1_TP_ONLY 0x030b #define USB_DEVICE_ID_APPLE_IRCONTROL 0x8240 @@ -450,6 +450,7 @@ #define USB_DEVICE_ID_HOLTEK_ALT_KEYBOARD 0xa055 #define USB_DEVICE_ID_HOLTEK_ALT_MOUSE_A067 0xa067 #define USB_DEVICE_ID_HOLTEK_ALT_MOUSE_A04A 0xa04a +#define USB_DEVICE_ID_HOLTEK_ALT_MOUSE_A081 0xa081 #define USB_VENDOR_ID_IMATION 0x0718 #define USB_DEVICE_ID_DISC_STAKKA 0xd000 @@ -482,6 +483,7 @@ #define USB_VENDOR_ID_KYE 0x0458 #define USB_DEVICE_ID_KYE_ERGO_525V 0x0087 #define USB_DEVICE_ID_GENIUS_GILA_GAMING_MOUSE 0x0138 +#define USB_DEVICE_ID_GENIUS_GX_IMPERATOR 0x4018 #define USB_DEVICE_ID_KYE_GPEN_560 0x5003 #define USB_DEVICE_ID_KYE_EASYPEN_I405X 0x5010 #define USB_DEVICE_ID_KYE_MOUSEPEN_I608X 0x5011 @@ -631,6 +633,7 @@ #define USB_DEVICE_ID_NEXTWINDOW_TOUCHSCREEN 0x0003 #define USB_VENDOR_ID_NINTENDO 0x057e +#define USB_VENDOR_ID_NINTENDO2 0x054c #define USB_DEVICE_ID_NINTENDO_WIIMOTE 0x0306 #define USB_DEVICE_ID_NINTENDO_WIIMOTE2 0x0330 @@ -658,6 +661,7 @@ #define USB_DEVICE_ID_NTRIG_TOUCH_SCREEN_16 0x0012 #define USB_DEVICE_ID_NTRIG_TOUCH_SCREEN_17 0x0013 #define USB_DEVICE_ID_NTRIG_TOUCH_SCREEN_18 0x0014 +#define USB_DEVICE_ID_NTRIG_DUOSENSE 0x1500 #define USB_VENDOR_ID_ONTRAK 0x0a07 #define USB_DEVICE_ID_ONTRAK_ADU100 0x0064 @@ -716,6 +720,7 @@ #define USB_DEVICE_ID_ROCCAT_KONE 0x2ced #define USB_DEVICE_ID_ROCCAT_KONEPLUS 0x2d51 #define USB_DEVICE_ID_ROCCAT_KONEPURE 0x2dbe +#define USB_DEVICE_ID_ROCCAT_KONEPURE_OPTICAL 0x2db4 #define USB_DEVICE_ID_ROCCAT_KONEXTD 0x2e22 #define USB_DEVICE_ID_ROCCAT_KOVAPLUS 0x2d50 #define USB_DEVICE_ID_ROCCAT_LUA 0x2c2e --- linux-3.11.0.orig/drivers/hid/hid-picolcd_fb.c +++ linux-3.11.0/drivers/hid/hid-picolcd_fb.c @@ -593,10 +593,14 @@ void picolcd_exit_framebuffer(struct picolcd_data *data) { struct fb_info *info = data->fb_info; - struct picolcd_fb_data *fbdata = info->par; + struct picolcd_fb_data *fbdata; unsigned long flags; + if (!info) + return; + device_remove_file(&data->hdev->dev, &dev_attr_fb_update_rate); + fbdata = info->par; /* disconnect framebuffer from HID dev */ spin_lock_irqsave(&fbdata->lock, flags); --- linux-3.11.0.orig/drivers/hid/hid-lg4ff.c +++ linux-3.11.0/drivers/hid/hid-lg4ff.c @@ -484,34 +484,16 @@ int lg4ff_init(struct hid_device *hid) { struct hid_input *hidinput = list_entry(hid->inputs.next, struct hid_input, list); - struct list_head *report_list = &hid->report_enum[HID_OUTPUT_REPORT].report_list; struct input_dev *dev = hidinput->input; - struct hid_report *report; - struct hid_field *field; struct lg4ff_device_entry *entry; struct lg_drv_data *drv_data; struct usb_device_descriptor *udesc; int error, i, j; __u16 bcdDevice, rev_maj, rev_min; - /* Find the report to use */ - if (list_empty(report_list)) { - hid_err(hid, "No output report found\n"); - return -1; - } - /* Check that the report looks ok */ - report = list_entry(report_list->next, struct hid_report, list); - if (!report) { - hid_err(hid, "NULL output report\n"); - return -1; - } - - field = report->field[0]; - if (!field) { - hid_err(hid, "NULL field\n"); + if (!hid_validate_values(hid, HID_OUTPUT_REPORT, 0, 0, 7)) return -1; - } /* Check what wheel has been connected */ for (i = 0; i < ARRAY_SIZE(lg4ff_devices); i++) { --- linux-3.11.0.orig/drivers/hid/hid-lenovo-tpkbd.c +++ linux-3.11.0/drivers/hid/hid-lenovo-tpkbd.c @@ -339,7 +339,15 @@ struct tpkbd_data_pointer *data_pointer; size_t name_sz = strlen(dev_name(dev)) + 16; char *name_mute, *name_micmute; - int ret; + int i, ret; + + /* Validate required reports. */ + for (i = 0; i < 4; i++) { + if (!hid_validate_values(hdev, HID_FEATURE_REPORT, 4, i, 1)) + return -ENODEV; + } + if (!hid_validate_values(hdev, HID_OUTPUT_REPORT, 3, 0, 2)) + return -ENODEV; if (sysfs_create_group(&hdev->dev.kobj, &tpkbd_attr_group_pointer)) { @@ -406,22 +414,27 @@ ret = hid_parse(hdev); if (ret) { hid_err(hdev, "hid_parse failed\n"); - goto err_free; + goto err; } ret = hid_hw_start(hdev, HID_CONNECT_DEFAULT); if (ret) { hid_err(hdev, "hid_hw_start failed\n"); - goto err_free; + goto err; } uhdev = (struct usbhid_device *) hdev->driver_data; - if (uhdev->ifnum == 1) - return tpkbd_probe_tp(hdev); + if (uhdev->ifnum == 1) { + ret = tpkbd_probe_tp(hdev); + if (ret) + goto err_hid; + } return 0; -err_free: +err_hid: + hid_hw_stop(hdev); +err: return ret; } --- linux-3.11.0.orig/drivers/hid/hid-wiimote-core.c +++ linux-3.11.0/drivers/hid/hid-wiimote-core.c @@ -212,10 +212,12 @@ if (ir == WIIPROTO_FLAG_IR_BASIC) { if (wdata->state.flags & WIIPROTO_FLAG_ACCEL) { - if (ext) - return WIIPROTO_REQ_DRM_KAIE; - else - return WIIPROTO_REQ_DRM_KAI; + /* GEN10 and ealier devices bind IR formats to DRMs. + * Hence, we cannot use DRM_KAI here as it might be + * bound to IR_EXT. Use DRM_KAIE unconditionally so we + * work with all devices and our parsers can use the + * fixed formats, too. */ + return WIIPROTO_REQ_DRM_KAIE; } else { return WIIPROTO_REQ_DRM_KIE; } @@ -836,7 +838,8 @@ goto done; } - if (vendor == USB_VENDOR_ID_NINTENDO) { + if (vendor == USB_VENDOR_ID_NINTENDO || + vendor == USB_VENDOR_ID_NINTENDO2) { if (product == USB_DEVICE_ID_NINTENDO_WIIMOTE) { devtype = WIIMOTE_DEV_GEN10; goto done; @@ -1858,6 +1861,8 @@ static const struct hid_device_id wiimote_hid_devices[] = { { HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_NINTENDO, USB_DEVICE_ID_NINTENDO_WIIMOTE) }, + { HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_NINTENDO2, + USB_DEVICE_ID_NINTENDO_WIIMOTE) }, { HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_NINTENDO, USB_DEVICE_ID_NINTENDO_WIIMOTE2) }, { } --- linux-3.11.0.orig/drivers/hid/hid-speedlink.c +++ linux-3.11.0/drivers/hid/hid-speedlink.c @@ -3,7 +3,7 @@ * Fixes "jumpy" cursor and removes nonexistent keyboard LEDS from * the HID descriptor. * - * Copyright (c) 2011 Stefan Kriwanek + * Copyright (c) 2011, 2013 Stefan Kriwanek */ /* @@ -46,8 +46,13 @@ struct hid_usage *usage, __s32 value) { /* No other conditions due to usage_table. */ - /* Fix "jumpy" cursor (invalid events sent by device). */ - if (value == 256) + + /* This fixes the "jumpy" cursor occuring due to invalid events sent + * by the device. Some devices only send them with value==+256, others + * don't. However, catching abs(value)>=256 is restrictive enough not + * to interfere with devices that were bug-free (has been tested). + */ + if (abs(value) >= 256) return 1; /* Drop useless distance 0 events (on button clicks etc.) as well */ if (value == 0) --- linux-3.11.0.orig/drivers/hid/hid-roccat-konepure.c +++ linux-3.11.0/drivers/hid/hid-roccat-konepure.c @@ -262,6 +262,7 @@ static const struct hid_device_id konepure_devices[] = { { HID_USB_DEVICE(USB_VENDOR_ID_ROCCAT, USB_DEVICE_ID_ROCCAT_KONEPURE) }, + { HID_USB_DEVICE(USB_VENDOR_ID_ROCCAT, USB_DEVICE_ID_ROCCAT_KONEPURE_OPTICAL) }, { } }; @@ -300,5 +301,5 @@ module_exit(konepure_exit); MODULE_AUTHOR("Stefan Achatz"); -MODULE_DESCRIPTION("USB Roccat KonePure driver"); +MODULE_DESCRIPTION("USB Roccat KonePure/Optical driver"); MODULE_LICENSE("GPL v2"); --- linux-3.11.0.orig/drivers/hid/hid-ntrig.c +++ linux-3.11.0/drivers/hid/hid-ntrig.c @@ -115,7 +115,8 @@ struct hid_report *report = hdev->report_enum[HID_FEATURE_REPORT]. report_id_hash[0x0d]; - if (!report) + if (!report || report->maxfield < 1 || + report->field[0]->report_count < 1) return -EINVAL; hid_hw_request(hdev, report, HID_REQ_GET_REPORT); --- linux-3.11.0.orig/drivers/hid/hid-picolcd_cir.c +++ linux-3.11.0/drivers/hid/hid-picolcd_cir.c @@ -145,6 +145,7 @@ struct rc_dev *rdev = data->rc_dev; data->rc_dev = NULL; - rc_unregister_device(rdev); + if (rdev) + rc_unregister_device(rdev); } --- linux-3.11.0.orig/drivers/hid/hid-input.c +++ linux-3.11.0/drivers/hid/hid-input.c @@ -340,7 +340,7 @@ { struct hid_device *dev = container_of(psy, struct hid_device, battery); int ret = 0; - __u8 buf[2] = {}; + __u8 *buf; switch (prop) { case POWER_SUPPLY_PROP_PRESENT: @@ -349,12 +349,19 @@ break; case POWER_SUPPLY_PROP_CAPACITY: + + buf = kmalloc(2 * sizeof(__u8), GFP_KERNEL); + if (!buf) { + ret = -ENOMEM; + break; + } ret = dev->hid_get_raw_report(dev, dev->battery_report_id, - buf, sizeof(buf), + buf, 2, dev->battery_report_type); if (ret != 2) { ret = -ENODATA; + kfree(buf); break; } ret = 0; @@ -364,6 +371,7 @@ buf[1] <= dev->battery_max) val->intval = (100 * (buf[1] - dev->battery_min)) / (dev->battery_max - dev->battery_min); + kfree(buf); break; case POWER_SUPPLY_PROP_MODEL_NAME: @@ -477,6 +485,10 @@ if (field->flags & HID_MAIN_ITEM_CONSTANT) goto ignore; + /* Ignore if report count is out of bounds. */ + if (field->report_count < 1) + goto ignore; + /* only LED usages are supported in output fields */ if (field->report_type == HID_OUTPUT_REPORT && (usage->hid & HID_USAGE_PAGE) != HID_UP_LED) { @@ -1160,7 +1172,11 @@ 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 (i = 0; i < rep->maxfield; i++) { + /* Ignore if report count is out of bounds. */ + if (rep->field[i]->report_count < 1) + continue; + for (j = 0; j < rep->field[i]->maxusage; j++) { /* Verify if Battery Strength feature is available */ hidinput_setup_battery(hid, HID_FEATURE_REPORT, rep->field[i]); @@ -1169,6 +1185,7 @@ drv->feature_mapping(hid, rep->field[i], rep->field[i]->usage + j); } + } } static struct hid_input *hidinput_allocate(struct hid_device *hid) --- linux-3.11.0.orig/drivers/hid/Kconfig +++ linux-3.11.0/drivers/hid/Kconfig @@ -27,7 +27,7 @@ config HID_BATTERY_STRENGTH bool "Battery level reporting for HID devices" - depends on HID && POWER_SUPPLY && HID = POWER_SUPPLY + depends on HID && POWER_SUPPLY default n ---help--- This option adds support of reporting battery strength (for HID devices @@ -241,6 +241,7 @@ - Sharkoon Drakonia / Perixx MX-2000 gaming mice - Tracer Sniper TRM-503 / NOVA Gaming Slider X200 / Zalman ZM-GM1 + - SHARKOON DarkGlider Gaming mouse config HOLTEK_FF bool "Holtek On Line Grip force feedback support" --- linux-3.11.0.orig/drivers/hid/hid-multitouch.c +++ linux-3.11.0/drivers/hid/hid-multitouch.c @@ -101,9 +101,9 @@ unsigned last_slot_field; /* the last field of a slot */ unsigned mt_report_id; /* the report ID of the multitouch device */ unsigned pen_report_id; /* the report ID of the pen device */ - __s8 inputmode; /* InputMode HID feature, -1 if non-existent */ - __s8 inputmode_index; /* InputMode HID feature index in the report */ - __s8 maxcontact_report_id; /* Maximum Contact Number HID feature, + __s16 inputmode; /* InputMode HID feature, -1 if non-existent */ + __s16 inputmode_index; /* InputMode HID feature index in the report */ + __s16 maxcontact_report_id; /* Maximum Contact Number HID feature, -1 if non-existent */ __u8 num_received; /* how many contacts we received */ __u8 num_expected; /* expected last contact index */ @@ -317,20 +317,18 @@ struct hid_field *field, struct hid_usage *usage) { struct mt_device *td = hid_get_drvdata(hdev); - int i; switch (usage->hid) { case HID_DG_INPUTMODE: - td->inputmode = field->report->id; - td->inputmode_index = 0; /* has to be updated below */ - - for (i=0; i < field->maxusage; i++) { - if (field->usage[i].hid == usage->hid) { - td->inputmode_index = i; - break; - } + /* Ignore if value index is out of bounds. */ + if (usage->usage_index >= field->report_count) { + dev_err(&hdev->dev, "HID_DG_INPUTMODE out of range\n"); + break; } + td->inputmode = field->report->id; + td->inputmode_index = usage->usage_index; + break; case HID_DG_CONTACTMAX: td->maxcontact_report_id = field->report->id; @@ -536,6 +534,10 @@ mt_store_field(usage, td, hi); return 1; case HID_DG_CONTACTCOUNT: + /* Ignore if indexes are out of bounds. */ + if (field->index >= field->report->maxfield || + usage->usage_index >= field->report_count) + return 1; td->cc_index = field->index; td->cc_value_index = usage->usage_index; return 1; --- linux-3.11.0.orig/drivers/hid/hid-picolcd_debugfs.c +++ linux-3.11.0/drivers/hid/hid-picolcd_debugfs.c @@ -394,7 +394,7 @@ void picolcd_debug_out_report(struct picolcd_data *data, struct hid_device *hdev, struct hid_report *report) { - u8 raw_data[70]; + u8 *raw_data; int raw_size = (report->size >> 3) + 1; char *buff; #define BUFF_SZ 256 @@ -407,20 +407,20 @@ if (!buff) return; - snprintf(buff, BUFF_SZ, "\nout report %d (size %d) = ", - report->id, raw_size); - hid_debug_event(hdev, buff); - if (raw_size + 5 > sizeof(raw_data)) { + raw_data = hid_alloc_report_buf(report, GFP_ATOMIC); + if (!raw_data) { kfree(buff); - hid_debug_event(hdev, " TOO BIG\n"); return; - } else { - raw_data[0] = report->id; - hid_output_report(report, raw_data); - dump_buff_as_hex(buff, BUFF_SZ, raw_data, raw_size); - hid_debug_event(hdev, buff); } + snprintf(buff, BUFF_SZ, "\nout report %d (size %d) = ", + report->id, raw_size); + hid_debug_event(hdev, buff); + raw_data[0] = report->id; + hid_output_report(report, raw_data); + dump_buff_as_hex(buff, BUFF_SZ, raw_data, raw_size); + hid_debug_event(hdev, buff); + switch (report->id) { case REPORT_LED_STATE: /* 1 data byte with GPO state */ @@ -644,6 +644,7 @@ break; } wake_up_interruptible(&hdev->debug_wait); + kfree(raw_data); kfree(buff); } --- linux-3.11.0.orig/drivers/hid/hidraw.c +++ linux-3.11.0/drivers/hid/hidraw.c @@ -113,7 +113,7 @@ __u8 *buf; int ret = 0; - if (!hidraw_table[minor]) { + if (!hidraw_table[minor] || !hidraw_table[minor]->exist) { ret = -ENODEV; goto out; } @@ -261,7 +261,7 @@ } mutex_lock(&minors_lock); - if (!hidraw_table[minor]) { + if (!hidraw_table[minor] || !hidraw_table[minor]->exist) { err = -ENODEV; goto out_unlock; } @@ -302,39 +302,38 @@ return fasync_helper(fd, file, on, &list->fasync); } +static void drop_ref(struct hidraw *hidraw, int exists_bit) +{ + if (exists_bit) { + hid_hw_close(hidraw->hid); + hidraw->exist = 0; + if (hidraw->open) + wake_up_interruptible(&hidraw->wait); + } else { + --hidraw->open; + } + + if (!hidraw->open && !hidraw->exist) { + device_destroy(hidraw_class, MKDEV(hidraw_major, hidraw->minor)); + hidraw_table[hidraw->minor] = NULL; + kfree(hidraw); + } +} + static int hidraw_release(struct inode * inode, struct file * file) { unsigned int minor = iminor(inode); - struct hidraw *dev; struct hidraw_list *list = file->private_data; - int ret; - int i; mutex_lock(&minors_lock); - if (!hidraw_table[minor]) { - ret = -ENODEV; - goto unlock; - } list_del(&list->node); - dev = hidraw_table[minor]; - if (!--dev->open) { - if (list->hidraw->exist) { - hid_hw_power(dev->hid, PM_HINT_NORMAL); - hid_hw_close(dev->hid); - } else { - kfree(list->hidraw); - } - } - - for (i = 0; i < HIDRAW_BUFFER_SIZE; ++i) - kfree(list->buffer[i].value); kfree(list); - ret = 0; -unlock: - mutex_unlock(&minors_lock); - return ret; + drop_ref(hidraw_table[minor], 0); + + mutex_unlock(&minors_lock); + return 0; } static long hidraw_ioctl(struct file *file, unsigned int cmd, @@ -539,18 +538,9 @@ struct hidraw *hidraw = hid->hidraw; mutex_lock(&minors_lock); - hidraw->exist = 0; - - device_destroy(hidraw_class, MKDEV(hidraw_major, hidraw->minor)); - hidraw_table[hidraw->minor] = NULL; + drop_ref(hidraw, 1); - if (hidraw->open) { - hid_hw_close(hid); - wake_up_interruptible(&hidraw->wait); - } else { - kfree(hidraw); - } mutex_unlock(&minors_lock); } EXPORT_SYMBOL_GPL(hidraw_disconnect); --- linux-3.11.0.orig/drivers/hid/hid-logitech-dj.c +++ linux-3.11.0/drivers/hid/hid-logitech-dj.c @@ -461,7 +461,7 @@ struct hid_report *report; struct hid_report_enum *output_report_enum; u8 *data = (u8 *)(&dj_report->device_index); - int i; + unsigned int i; output_report_enum = &hdev->report_enum[HID_OUTPUT_REPORT]; report = output_report_enum->report_id_hash[REPORT_ID_DJ_SHORT]; @@ -471,7 +471,7 @@ return -ENODEV; } - for (i = 0; i < report->field[0]->report_count; i++) + for (i = 0; i < DJREPORT_SHORT_LENGTH - 1; i++) report->field[0]->value[i] = data[i]; hid_hw_request(hdev, report, HID_REQ_SET_REPORT); @@ -619,7 +619,7 @@ struct hid_field *field; struct hid_report *report; - unsigned char data[8]; + unsigned char *data; int offset; dbg_hid("%s: %s, type:%d | code:%d | value:%d\n", @@ -635,6 +635,13 @@ return -1; } hid_set_field(field, offset, value); + + data = hid_alloc_report_buf(field->report, GFP_KERNEL); + if (!data) { + dev_warn(&dev->dev, "failed to allocate report buf memory\n"); + return -1; + } + hid_output_report(field->report, &data[0]); output_report_enum = &dj_rcv_hiddev->report_enum[HID_OUTPUT_REPORT]; @@ -645,8 +652,9 @@ hid_hw_request(dj_rcv_hiddev, report, HID_REQ_SET_REPORT); - return 0; + kfree(data); + return 0; } static int logi_dj_ll_start(struct hid_device *hid) @@ -783,6 +791,12 @@ goto hid_parse_fail; } + if (!hid_validate_values(hdev, HID_OUTPUT_REPORT, REPORT_ID_DJ_SHORT, + 0, DJREPORT_SHORT_LENGTH - 1)) { + retval = -ENODEV; + goto hid_parse_fail; + } + /* Starts the usb device and connects to upper interfaces hiddev and * hidraw */ retval = hid_hw_start(hdev, HID_CONNECT_DEFAULT); --- linux-3.11.0.orig/drivers/hid/hid-picolcd_core.c +++ linux-3.11.0/drivers/hid/hid-picolcd_core.c @@ -290,7 +290,7 @@ buf += 10; cnt -= 10; } - if (!report) + if (!report || report->maxfield != 1) return -EINVAL; while (cnt > 0 && (buf[cnt-1] == '\n' || buf[cnt-1] == '\r')) --- linux-3.11.0.orig/drivers/hid/hid-holtek-mouse.c +++ linux-3.11.0/drivers/hid/hid-holtek-mouse.c @@ -27,6 +27,7 @@ * - USB ID 04d9:a067, sold as Sharkoon Drakonia and Perixx MX-2000 * - USB ID 04d9:a04a, sold as Tracer Sniper TRM-503, NOVA Gaming Slider X200 * and Zalman ZM-GM1 + * - USB ID 04d9:a081, sold as SHARKOON DarkGlider Gaming mouse */ static __u8 *holtek_mouse_report_fixup(struct hid_device *hdev, __u8 *rdesc, @@ -46,6 +47,7 @@ } break; case USB_DEVICE_ID_HOLTEK_ALT_MOUSE_A04A: + case USB_DEVICE_ID_HOLTEK_ALT_MOUSE_A081: if (*rsize >= 113 && rdesc[106] == 0xff && rdesc[107] == 0x7f && rdesc[111] == 0xff && rdesc[112] == 0x7f) { hid_info(hdev, "Fixing up report descriptor\n"); @@ -63,6 +65,8 @@ USB_DEVICE_ID_HOLTEK_ALT_MOUSE_A067) }, { HID_USB_DEVICE(USB_VENDOR_ID_HOLTEK_ALT, USB_DEVICE_ID_HOLTEK_ALT_MOUSE_A04A) }, + { HID_USB_DEVICE(USB_VENDOR_ID_HOLTEK_ALT, + USB_DEVICE_ID_HOLTEK_ALT_MOUSE_A081) }, { } }; MODULE_DEVICE_TABLE(hid, holtek_mouse_devices); --- linux-3.11.0.orig/drivers/hid/hid-core.c +++ linux-3.11.0/drivers/hid/hid-core.c @@ -63,6 +63,8 @@ struct hid_report_enum *report_enum = device->report_enum + type; struct hid_report *report; + if (id >= HID_MAX_IDS) + return NULL; if (report_enum->report_id_hash[id]) return report_enum->report_id_hash[id]; @@ -92,7 +94,6 @@ static struct hid_field *hid_register_field(struct hid_report *report, unsigned usages, unsigned values) { struct hid_field *field; - int i; if (report->maxfield == HID_MAX_FIELDS) { hid_err(report->device, "too many fields in report\n"); @@ -111,9 +112,6 @@ field->value = (s32 *)(field->usage + usages); field->report = report; - for (i = 0; i < usages; i++) - field->usage[i].usage_index = i; - return field; } @@ -224,9 +222,9 @@ { struct hid_report *report; struct hid_field *field; - int usages; + unsigned usages; unsigned offset; - int i; + unsigned i; report = hid_register_report(parser->device, report_type, parser->global.report_id); if (!report) { @@ -253,7 +251,8 @@ if (!parser->local.usage_index) /* Ignore padding fields */ return 0; - usages = max_t(int, parser->local.usage_index, parser->global.report_count); + usages = max_t(unsigned, parser->local.usage_index, + parser->global.report_count); field = hid_register_field(report, usages, parser->global.report_count); if (!field) @@ -264,13 +263,14 @@ field->application = hid_lookup_collection(parser, HID_COLLECTION_APPLICATION); for (i = 0; i < usages; i++) { - int j = i; + unsigned j = i; /* Duplicate the last usage we parsed if we have excess values */ if (i >= parser->local.usage_index) j = parser->local.usage_index - 1; field->usage[i].hid = parser->local.usage[j]; field->usage[i].collection_index = parser->local.collection_index[j]; + field->usage[i].usage_index = i; } field->maxusage = usages; @@ -404,8 +404,10 @@ case HID_GLOBAL_ITEM_TAG_REPORT_ID: parser->global.report_id = item_udata(item); - if (parser->global.report_id == 0) { - hid_err(parser->device, "report_id 0 is invalid\n"); + if (parser->global.report_id == 0 || + parser->global.report_id >= HID_MAX_IDS) { + hid_err(parser->device, "report_id %u is invalid\n", + parser->global.report_id); return -1; } return 0; @@ -575,7 +577,7 @@ for (i = 0; i < HID_REPORT_TYPES; i++) { struct hid_report_enum *report_enum = device->report_enum + i; - for (j = 0; j < 256; j++) { + for (j = 0; j < HID_MAX_IDS; j++) { struct hid_report *report = report_enum->report_id_hash[j]; if (report) hid_free_report(report); @@ -755,6 +757,64 @@ } EXPORT_SYMBOL_GPL(hid_parse_report); +static const char * const hid_report_names[] = { + "HID_INPUT_REPORT", + "HID_OUTPUT_REPORT", + "HID_FEATURE_REPORT", +}; +/** + * hid_validate_values - validate existing device report's value indexes + * + * @device: hid device + * @type: which report type to examine + * @id: which report ID to examine (0 for first) + * @field_index: which report field to examine + * @report_counts: expected number of values + * + * Validate the number of values in a given field of a given report, after + * parsing. + */ +struct hid_report *hid_validate_values(struct hid_device *hid, + unsigned int type, unsigned int id, + unsigned int field_index, + unsigned int report_counts) +{ + struct hid_report *report; + + if (type > HID_FEATURE_REPORT) { + hid_err(hid, "invalid HID report type %u\n", type); + return NULL; + } + + if (id >= HID_MAX_IDS) { + hid_err(hid, "invalid HID report id %u\n", id); + return NULL; + } + + /* + * Explicitly not using hid_get_report() here since it depends on + * ->numbered being checked, which may not always be the case when + * drivers go to access report values. + */ + report = hid->report_enum[type].report_id_hash[id]; + if (!report) { + hid_err(hid, "missing %s %u\n", hid_report_names[type], id); + return NULL; + } + if (report->maxfield <= field_index) { + hid_err(hid, "not enough fields in %s %u\n", + hid_report_names[type], id); + return NULL; + } + if (report->field[field_index]->report_count < report_counts) { + hid_err(hid, "not enough values in %s %u field %u\n", + hid_report_names[type], id, field_index); + return NULL; + } + return report; +} +EXPORT_SYMBOL_GPL(hid_validate_values); + /** * hid_open_report - open a driver-specific device report * @@ -1128,7 +1188,8 @@ } /* - * Create a report. + * Create a report. 'data' has to be allocated using + * hid_alloc_report_buf() so that it has proper size. */ void hid_output_report(struct hid_report *report, __u8 *data) @@ -1145,6 +1206,22 @@ EXPORT_SYMBOL_GPL(hid_output_report); /* + * Allocator for buffer that is going to be passed to hid_output_report() + */ +u8 *hid_alloc_report_buf(struct hid_report *report, gfp_t flags) +{ + /* + * 7 extra bytes are necessary to achieve proper functionality + * of implement() working on 8 byte chunks + */ + + int len = ((report->size - 1) >> 3) + 1 + (report->id > 0) + 7; + + return kmalloc(len, flags); +} +EXPORT_SYMBOL_GPL(hid_alloc_report_buf); + +/* * Set a field value. The report this field belongs to has to be * created and transferred to the device, to set this value in the * device. @@ -1152,7 +1229,12 @@ int hid_set_field(struct hid_field *field, unsigned offset, __s32 value) { - unsigned size = field->report_size; + unsigned size; + + if (!field) + return -1; + + size = field->report_size; hid_dump_input(field->report->device, field->usage + offset, value); @@ -1228,7 +1310,7 @@ goto out; } - if (hid->claimed != HID_CLAIMED_HIDRAW) { + if (hid->claimed != HID_CLAIMED_HIDRAW && report->maxfield) { for (a = 0; a < report->maxfield; a++) hid_input_field(hid, report->field[a], cdata, interrupt); hdrv = hid->driver; @@ -1293,7 +1375,7 @@ if (hdrv && hdrv->raw_event && hid_match_report(hid, report)) { ret = hdrv->raw_event(hid, report, data, size); - if (ret < 0) { + if (ret != 0) { ret = ret < 0 ? ret : 0; goto unlock; } @@ -1591,12 +1673,14 @@ { HID_USB_DEVICE(USB_VENDOR_ID_HOLTEK_ALT, USB_DEVICE_ID_HOLTEK_ALT_KEYBOARD) }, { HID_USB_DEVICE(USB_VENDOR_ID_HOLTEK_ALT, USB_DEVICE_ID_HOLTEK_ALT_MOUSE_A04A) }, { HID_USB_DEVICE(USB_VENDOR_ID_HOLTEK_ALT, USB_DEVICE_ID_HOLTEK_ALT_MOUSE_A067) }, + { HID_USB_DEVICE(USB_VENDOR_ID_HOLTEK_ALT, USB_DEVICE_ID_HOLTEK_ALT_MOUSE_A081) }, { HID_USB_DEVICE(USB_VENDOR_ID_HUION, USB_DEVICE_ID_HUION_580) }, { HID_USB_DEVICE(USB_VENDOR_ID_JESS2, USB_DEVICE_ID_JESS2_COLOR_RUMBLE_PAD) }, { HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_ION, USB_DEVICE_ID_ICADE) }, { HID_USB_DEVICE(USB_VENDOR_ID_KENSINGTON, USB_DEVICE_ID_KS_SLIMBLADE) }, { HID_USB_DEVICE(USB_VENDOR_ID_KEYTOUCH, USB_DEVICE_ID_KEYTOUCH_IEC) }, { HID_USB_DEVICE(USB_VENDOR_ID_KYE, USB_DEVICE_ID_GENIUS_GILA_GAMING_MOUSE) }, + { HID_USB_DEVICE(USB_VENDOR_ID_KYE, USB_DEVICE_ID_GENIUS_GX_IMPERATOR) }, { HID_USB_DEVICE(USB_VENDOR_ID_KYE, USB_DEVICE_ID_KYE_ERGO_525V) }, { HID_USB_DEVICE(USB_VENDOR_ID_KYE, USB_DEVICE_ID_KYE_EASYPEN_I405X) }, { HID_USB_DEVICE(USB_VENDOR_ID_KYE, USB_DEVICE_ID_KYE_MOUSEPEN_I608X) }, @@ -1679,6 +1763,7 @@ { HID_USB_DEVICE(USB_VENDOR_ID_ROCCAT, USB_DEVICE_ID_ROCCAT_ISKU) }, { HID_USB_DEVICE(USB_VENDOR_ID_ROCCAT, USB_DEVICE_ID_ROCCAT_KONEPLUS) }, { HID_USB_DEVICE(USB_VENDOR_ID_ROCCAT, USB_DEVICE_ID_ROCCAT_KONEPURE) }, + { HID_USB_DEVICE(USB_VENDOR_ID_ROCCAT, USB_DEVICE_ID_ROCCAT_KONEPURE_OPTICAL) }, { HID_USB_DEVICE(USB_VENDOR_ID_ROCCAT, USB_DEVICE_ID_ROCCAT_KOVAPLUS) }, { HID_USB_DEVICE(USB_VENDOR_ID_ROCCAT, USB_DEVICE_ID_ROCCAT_LUA) }, { HID_USB_DEVICE(USB_VENDOR_ID_ROCCAT, USB_DEVICE_ID_ROCCAT_PYRA_WIRED) }, @@ -1742,6 +1827,7 @@ { HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_MICROSOFT, USB_DEVICE_ID_MS_PRESENTER_8K_BT) }, { HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_NINTENDO, USB_DEVICE_ID_NINTENDO_WIIMOTE) }, + { HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_NINTENDO2, USB_DEVICE_ID_NINTENDO_WIIMOTE) }, { HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_NINTENDO, USB_DEVICE_ID_NINTENDO_WIIMOTE2) }, { } }; --- linux-3.11.0.orig/drivers/hid/hid-lg2ff.c +++ linux-3.11.0/drivers/hid/hid-lg2ff.c @@ -64,26 +64,13 @@ struct hid_report *report; struct hid_input *hidinput = list_entry(hid->inputs.next, struct hid_input, list); - struct list_head *report_list = - &hid->report_enum[HID_OUTPUT_REPORT].report_list; struct input_dev *dev = hidinput->input; int error; - if (list_empty(report_list)) { - hid_err(hid, "no output report found\n"); + /* Check that the report looks ok */ + report = hid_validate_values(hid, HID_OUTPUT_REPORT, 0, 0, 7); + if (!report) return -ENODEV; - } - - report = list_entry(report_list->next, struct hid_report, list); - - if (report->maxfield < 1) { - hid_err(hid, "output report is empty\n"); - return -ENODEV; - } - if (report->field[0]->report_count < 7) { - hid_err(hid, "not enough values in the field\n"); - return -ENODEV; - } lg2ff = kmalloc(sizeof(struct lg2ff_device), GFP_KERNEL); if (!lg2ff) --- linux-3.11.0.orig/drivers/hid/hid-lg3ff.c +++ linux-3.11.0/drivers/hid/hid-lg3ff.c @@ -66,10 +66,11 @@ int x, y; /* - * Maxusage should always be 63 (maximum fields) - * likely a better way to ensure this data is clean + * Available values in the field should always be 63, but we only use up to + * 35. Instead, clear the entire area, however big it is. */ - memset(report->field[0]->value, 0, sizeof(__s32)*report->field[0]->maxusage); + memset(report->field[0]->value, 0, + sizeof(__s32) * report->field[0]->report_count); switch (effect->type) { case FF_CONSTANT: @@ -129,32 +130,14 @@ int lg3ff_init(struct hid_device *hid) { struct hid_input *hidinput = list_entry(hid->inputs.next, struct hid_input, list); - struct list_head *report_list = &hid->report_enum[HID_OUTPUT_REPORT].report_list; struct input_dev *dev = hidinput->input; - struct hid_report *report; - struct hid_field *field; const signed short *ff_bits = ff3_joystick_ac; int error; int i; - /* Find the report to use */ - if (list_empty(report_list)) { - hid_err(hid, "No output report found\n"); - return -1; - } - /* Check that the report looks ok */ - report = list_entry(report_list->next, struct hid_report, list); - if (!report) { - hid_err(hid, "NULL output report\n"); - return -1; - } - - field = report->field[0]; - if (!field) { - hid_err(hid, "NULL field\n"); - return -1; - } + if (!hid_validate_values(hid, HID_OUTPUT_REPORT, 0, 0, 35)) + return -ENODEV; /* Assume single fixed device G940 */ for (i = 0; ff_bits[i] >= 0; i++) --- linux-3.11.0.orig/drivers/hid/hid-kye.c +++ linux-3.11.0/drivers/hid/hid-kye.c @@ -268,6 +268,26 @@ 0xC0 /* End Collection */ }; +static __u8 *kye_consumer_control_fixup(struct hid_device *hdev, __u8 *rdesc, + unsigned int *rsize, int offset, const char *device_name) { + /* + * the fixup that need to be done: + * - change Usage Maximum in the Comsumer Control + * (report ID 3) to a reasonable value + */ + if (*rsize >= offset + 31 && + /* Usage Page (Consumer Devices) */ + rdesc[offset] == 0x05 && rdesc[offset + 1] == 0x0c && + /* Usage (Consumer Control) */ + rdesc[offset + 2] == 0x09 && rdesc[offset + 3] == 0x01 && + /* Usage Maximum > 12287 */ + rdesc[offset + 10] == 0x2a && rdesc[offset + 12] > 0x2f) { + hid_info(hdev, "fixing up %s report descriptor\n", device_name); + rdesc[offset + 12] = 0x2f; + } + return rdesc; +} + static __u8 *kye_report_fixup(struct hid_device *hdev, __u8 *rdesc, unsigned int *rsize) { @@ -315,23 +335,12 @@ } break; case USB_DEVICE_ID_GENIUS_GILA_GAMING_MOUSE: - /* - * the fixup that need to be done: - * - change Usage Maximum in the Comsumer Control - * (report ID 3) to a reasonable value - */ - if (*rsize >= 135 && - /* Usage Page (Consumer Devices) */ - rdesc[104] == 0x05 && rdesc[105] == 0x0c && - /* Usage (Consumer Control) */ - rdesc[106] == 0x09 && rdesc[107] == 0x01 && - /* Usage Maximum > 12287 */ - rdesc[114] == 0x2a && rdesc[116] > 0x2f) { - hid_info(hdev, - "fixing up Genius Gila Gaming Mouse " - "report descriptor\n"); - rdesc[116] = 0x2f; - } + rdesc = kye_consumer_control_fixup(hdev, rdesc, rsize, 104, + "Genius Gila Gaming Mouse"); + break; + case USB_DEVICE_ID_GENIUS_GX_IMPERATOR: + rdesc = kye_consumer_control_fixup(hdev, rdesc, rsize, 83, + "Genius Gx Imperator Keyboard"); break; } return rdesc; @@ -428,6 +437,8 @@ USB_DEVICE_ID_KYE_EASYPEN_M610X) }, { HID_USB_DEVICE(USB_VENDOR_ID_KYE, USB_DEVICE_ID_GENIUS_GILA_GAMING_MOUSE) }, + { HID_USB_DEVICE(USB_VENDOR_ID_KYE, + USB_DEVICE_ID_GENIUS_GX_IMPERATOR) }, { } }; MODULE_DEVICE_TABLE(hid, kye_devices); --- linux-3.11.0.orig/drivers/hid/hid-wiimote-modules.c +++ linux-3.11.0/drivers/hid/hid-wiimote-modules.c @@ -119,12 +119,22 @@ * the rumble motor, this flag shouldn't be set. */ +/* used by wiimod_rumble and wiipro_rumble */ +static void wiimod_rumble_worker(struct work_struct *work) +{ + struct wiimote_data *wdata = container_of(work, struct wiimote_data, + rumble_worker); + + spin_lock_irq(&wdata->state.lock); + wiiproto_req_rumble(wdata, wdata->state.cache_rumble); + spin_unlock_irq(&wdata->state.lock); +} + static int wiimod_rumble_play(struct input_dev *dev, void *data, struct ff_effect *eff) { struct wiimote_data *wdata = input_get_drvdata(dev); __u8 value; - unsigned long flags; /* * The wiimote supports only a single rumble motor so if any magnitude @@ -137,9 +147,10 @@ else value = 0; - spin_lock_irqsave(&wdata->state.lock, flags); - wiiproto_req_rumble(wdata, value); - spin_unlock_irqrestore(&wdata->state.lock, flags); + /* Locking state.lock here might deadlock with input_event() calls. + * schedule_work acts as barrier. Merging multiple changes is fine. */ + wdata->state.cache_rumble = value; + schedule_work(&wdata->rumble_worker); return 0; } @@ -147,6 +158,8 @@ static int wiimod_rumble_probe(const struct wiimod_ops *ops, struct wiimote_data *wdata) { + INIT_WORK(&wdata->rumble_worker, wiimod_rumble_worker); + set_bit(FF_RUMBLE, wdata->input->ffbit); if (input_ff_create_memless(wdata->input, NULL, wiimod_rumble_play)) return -ENOMEM; @@ -159,6 +172,8 @@ { unsigned long flags; + cancel_work_sync(&wdata->rumble_worker); + spin_lock_irqsave(&wdata->state.lock, flags); wiiproto_req_rumble(wdata, 0); spin_unlock_irqrestore(&wdata->state.lock, flags); @@ -1731,7 +1746,6 @@ { struct wiimote_data *wdata = input_get_drvdata(dev); __u8 value; - unsigned long flags; /* * The wiimote supports only a single rumble motor so if any magnitude @@ -1744,9 +1758,10 @@ else value = 0; - spin_lock_irqsave(&wdata->state.lock, flags); - wiiproto_req_rumble(wdata, value); - spin_unlock_irqrestore(&wdata->state.lock, flags); + /* Locking state.lock here might deadlock with input_event() calls. + * schedule_work acts as barrier. Merging multiple changes is fine. */ + wdata->state.cache_rumble = value; + schedule_work(&wdata->rumble_worker); return 0; } @@ -1756,6 +1771,8 @@ { int ret, i; + INIT_WORK(&wdata->rumble_worker, wiimod_rumble_worker); + wdata->extension.input = input_allocate_device(); if (!wdata->extension.input) return -ENOMEM; @@ -1817,12 +1834,13 @@ if (!wdata->extension.input) return; + input_unregister_device(wdata->extension.input); + wdata->extension.input = NULL; + cancel_work_sync(&wdata->rumble_worker); + spin_lock_irqsave(&wdata->state.lock, flags); wiiproto_req_rumble(wdata, 0); spin_unlock_irqrestore(&wdata->state.lock, flags); - - input_unregister_device(wdata->extension.input); - wdata->extension.input = NULL; } static const struct wiimod_ops wiimod_pro = { --- linux-3.11.0.orig/drivers/hid/hid-wiimote.h +++ linux-3.11.0/drivers/hid/hid-wiimote.h @@ -133,13 +133,15 @@ __u8 *cmd_read_buf; __u8 cmd_read_size; - /* calibration data */ + /* calibration/cache data */ __u16 calib_bboard[4][3]; + __u8 cache_rumble; }; struct wiimote_data { struct hid_device *hdev; struct input_dev *input; + struct work_struct rumble_worker; struct led_classdev *leds[4]; struct input_dev *accel; struct input_dev *ir; --- linux-3.11.0.orig/drivers/hid/hid-steelseries.c +++ linux-3.11.0/drivers/hid/hid-steelseries.c @@ -249,6 +249,11 @@ goto err_free; } + if (!hid_validate_values(hdev, HID_OUTPUT_REPORT, 0, 0, 16)) { + ret = -ENODEV; + goto err_free; + } + ret = hid_hw_start(hdev, HID_CONNECT_DEFAULT); if (ret) { hid_err(hdev, "hw start failed\n"); --- linux-3.11.0.orig/drivers/hid/hid-lgff.c +++ linux-3.11.0/drivers/hid/hid-lgff.c @@ -128,27 +128,14 @@ int lgff_init(struct hid_device* hid) { struct hid_input *hidinput = list_entry(hid->inputs.next, struct hid_input, list); - struct list_head *report_list = &hid->report_enum[HID_OUTPUT_REPORT].report_list; struct input_dev *dev = hidinput->input; - struct hid_report *report; - struct hid_field *field; const signed short *ff_bits = ff_joystick; int error; int i; - /* Find the report to use */ - if (list_empty(report_list)) { - hid_err(hid, "No output report found\n"); - return -1; - } - /* Check that the report looks ok */ - report = list_entry(report_list->next, struct hid_report, list); - field = report->field[0]; - if (!field) { - hid_err(hid, "NULL field\n"); - return -1; - } + if (!hid_validate_values(hid, HID_OUTPUT_REPORT, 0, 0, 7)) + return -ENODEV; for (i = 0; i < ARRAY_SIZE(devices); i++) { if (dev->id.vendor == devices[i].idVendor && --- linux-3.11.0.orig/drivers/hid/hid-zpff.c +++ linux-3.11.0/drivers/hid/hid-zpff.c @@ -68,21 +68,13 @@ struct hid_report *report; struct hid_input *hidinput = list_entry(hid->inputs.next, struct hid_input, list); - struct list_head *report_list = - &hid->report_enum[HID_OUTPUT_REPORT].report_list; struct input_dev *dev = hidinput->input; - int error; + int i, error; - if (list_empty(report_list)) { - hid_err(hid, "no output report found\n"); - return -ENODEV; - } - - report = list_entry(report_list->next, struct hid_report, list); - - if (report->maxfield < 4) { - hid_err(hid, "not enough fields in report\n"); - return -ENODEV; + for (i = 0; i < 4; i++) { + report = hid_validate_values(hid, HID_OUTPUT_REPORT, 0, i, 1); + if (!report) + return -ENODEV; } zpff = kzalloc(sizeof(struct zpff_device), GFP_KERNEL); --- linux-3.11.0.orig/drivers/hid/usbhid/hid-quirks.c +++ linux-3.11.0/drivers/hid/usbhid/hid-quirks.c @@ -109,6 +109,8 @@ { USB_VENDOR_ID_SIGMA_MICRO, USB_DEVICE_ID_SIGMA_MICRO_KEYBOARD, HID_QUIRK_NO_INIT_REPORTS }, { USB_VENDOR_ID_KYE, USB_DEVICE_ID_KYE_MOUSEPEN_I608X, HID_QUIRK_MULTI_INPUT }, { USB_VENDOR_ID_KYE, USB_DEVICE_ID_KYE_EASYPEN_M610X, HID_QUIRK_MULTI_INPUT }, + { USB_VENDOR_ID_NTRIG, USB_DEVICE_ID_NTRIG_DUOSENSE, HID_QUIRK_NO_INIT_REPORTS }, + { 0, 0 } }; --- linux-3.11.0.orig/drivers/hid/usbhid/hid-core.c +++ linux-3.11.0/drivers/hid/usbhid/hid-core.c @@ -535,7 +535,6 @@ { int head; struct usbhid_device *usbhid = hid->driver_data; - int len = ((report->size - 1) >> 3) + 1 + (report->id > 0); if ((hid->quirks & HID_QUIRK_NOGET) && dir == USB_DIR_IN) return; @@ -546,7 +545,7 @@ return; } - usbhid->out[usbhid->outhead].raw_report = kmalloc(len, GFP_ATOMIC); + usbhid->out[usbhid->outhead].raw_report = hid_alloc_report_buf(report, GFP_ATOMIC); if (!usbhid->out[usbhid->outhead].raw_report) { hid_warn(hid, "output queueing failed\n"); return; @@ -595,7 +594,7 @@ } if (dir == USB_DIR_OUT) { - usbhid->ctrl[usbhid->ctrlhead].raw_report = kmalloc(len, GFP_ATOMIC); + usbhid->ctrl[usbhid->ctrlhead].raw_report = hid_alloc_report_buf(report, GFP_ATOMIC); if (!usbhid->ctrl[usbhid->ctrlhead].raw_report) { hid_warn(hid, "control queueing failed\n"); return; --- linux-3.11.0.orig/net/sysctl_net.c +++ linux-3.11.0/net/sysctl_net.c @@ -47,12 +47,12 @@ /* Allow network administrator to have same access as root. */ if (ns_capable(net->user_ns, CAP_NET_ADMIN) || - uid_eq(root_uid, current_uid())) { + uid_eq(root_uid, current_euid())) { int mode = (table->mode >> 6) & 7; return (mode << 6) | (mode << 3) | mode; } /* Allow netns root group to have the same access as the root group */ - if (gid_eq(root_gid, current_gid())) { + if (in_egroup_p(root_gid)) { int mode = (table->mode >> 3) & 7; return (mode << 3) | mode; } --- linux-3.11.0.orig/net/compat.c +++ linux-3.11.0/net/compat.c @@ -71,6 +71,8 @@ __get_user(kmsg->msg_controllen, &umsg->msg_controllen) || __get_user(kmsg->msg_flags, &umsg->msg_flags)) return -EFAULT; + if (kmsg->msg_namelen > sizeof(struct sockaddr_storage)) + return -EINVAL; kmsg->msg_name = compat_ptr(tmp1); kmsg->msg_iov = compat_ptr(tmp2); kmsg->msg_control = compat_ptr(tmp3); @@ -777,22 +779,25 @@ if (flags & MSG_CMSG_COMPAT) return -EINVAL; - if (COMPAT_USE_64BIT_TIME) - return __sys_recvmmsg(fd, (struct mmsghdr __user *)mmsg, vlen, - flags | MSG_CMSG_COMPAT, - (struct timespec *) timeout); - if (timeout == NULL) return __sys_recvmmsg(fd, (struct mmsghdr __user *)mmsg, vlen, flags | MSG_CMSG_COMPAT, NULL); - if (get_compat_timespec(&ktspec, timeout)) + if (COMPAT_USE_64BIT_TIME) { + if (copy_from_user(&ktspec, timeout, sizeof(ktspec))) + return -EFAULT; + } else if (get_compat_timespec(&ktspec, timeout)) return -EFAULT; datagrams = __sys_recvmmsg(fd, (struct mmsghdr __user *)mmsg, vlen, flags | MSG_CMSG_COMPAT, &ktspec); - if (datagrams > 0 && put_compat_timespec(&ktspec, timeout)) - datagrams = -EFAULT; + if (datagrams > 0) { + if (COMPAT_USE_64BIT_TIME) { + if (copy_to_user(timeout, &ktspec, sizeof(ktspec))) + datagrams = -EFAULT; + } else if (put_compat_timespec(&ktspec, timeout)) + datagrams = -EFAULT; + } return datagrams; } --- linux-3.11.0.orig/net/socket.c +++ linux-3.11.0/net/socket.c @@ -1973,6 +1973,16 @@ unsigned int name_len; }; +static int copy_msghdr_from_user(struct msghdr *kmsg, + struct msghdr __user *umsg) +{ + if (copy_from_user(kmsg, umsg, sizeof(struct msghdr))) + return -EFAULT; + if (kmsg->msg_namelen > sizeof(struct sockaddr_storage)) + return -EINVAL; + return 0; +} + static int ___sys_sendmsg(struct socket *sock, struct msghdr __user *msg, struct msghdr *msg_sys, unsigned int flags, struct used_address *used_address) @@ -1991,8 +2001,11 @@ if (MSG_CMSG_COMPAT & flags) { if (get_compat_msghdr(msg_sys, msg_compat)) return -EFAULT; - } else if (copy_from_user(msg_sys, msg, sizeof(struct msghdr))) - return -EFAULT; + } else { + err = copy_msghdr_from_user(msg_sys, msg); + if (err) + return err; + } if (msg_sys->msg_iovlen > UIO_FASTIOV) { err = -EMSGSIZE; @@ -2200,8 +2213,11 @@ if (MSG_CMSG_COMPAT & flags) { if (get_compat_msghdr(msg_sys, msg_compat)) return -EFAULT; - } else if (copy_from_user(msg_sys, msg, sizeof(struct msghdr))) - return -EFAULT; + } else { + err = copy_msghdr_from_user(msg_sys, msg); + if (err) + return err; + } if (msg_sys->msg_iovlen > UIO_FASTIOV) { err = -EMSGSIZE; --- linux-3.11.0.orig/net/core/secure_seq.c +++ linux-3.11.0/net/core/secure_seq.c @@ -10,12 +10,27 @@ #include -static u32 net_secret[MD5_MESSAGE_BYTES / 4] ____cacheline_aligned; +#if IS_ENABLED(CONFIG_IPV6) || IS_ENABLED(CONFIG_INET) +#define NET_SECRET_SIZE (MD5_MESSAGE_BYTES / 4) -void net_secret_init(void) +static u32 net_secret[NET_SECRET_SIZE] ____cacheline_aligned; + +static void net_secret_init(void) { - get_random_bytes(net_secret, sizeof(net_secret)); + u32 tmp; + int i; + + if (likely(net_secret[0])) + return; + + for (i = NET_SECRET_SIZE; i > 0;) { + do { + get_random_bytes(&tmp, sizeof(tmp)); + } while (!tmp); + cmpxchg(&net_secret[--i], 0, tmp); + } } +#endif #ifdef CONFIG_INET static u32 seq_scale(u32 seq) @@ -42,6 +57,7 @@ u32 hash[MD5_DIGEST_WORDS]; u32 i; + net_secret_init(); memcpy(hash, saddr, 16); for (i = 0; i < 4; i++) secret[i] = net_secret[i] + (__force u32)daddr[i]; @@ -63,6 +79,7 @@ u32 hash[MD5_DIGEST_WORDS]; u32 i; + net_secret_init(); memcpy(hash, saddr, 16); for (i = 0; i < 4; i++) secret[i] = net_secret[i] + (__force u32) daddr[i]; @@ -82,6 +99,7 @@ { u32 hash[MD5_DIGEST_WORDS]; + net_secret_init(); hash[0] = (__force __u32) daddr; hash[1] = net_secret[13]; hash[2] = net_secret[14]; @@ -96,6 +114,7 @@ { __u32 hash[4]; + net_secret_init(); memcpy(hash, daddr, 16); md5_transform(hash, net_secret); @@ -107,6 +126,7 @@ { u32 hash[MD5_DIGEST_WORDS]; + net_secret_init(); hash[0] = (__force u32)saddr; hash[1] = (__force u32)daddr; hash[2] = ((__force u16)sport << 16) + (__force u16)dport; @@ -121,6 +141,7 @@ { u32 hash[MD5_DIGEST_WORDS]; + net_secret_init(); hash[0] = (__force u32)saddr; hash[1] = (__force u32)daddr; hash[2] = (__force u32)dport ^ net_secret[14]; @@ -140,6 +161,7 @@ u32 hash[MD5_DIGEST_WORDS]; u64 seq; + net_secret_init(); hash[0] = (__force u32)saddr; hash[1] = (__force u32)daddr; hash[2] = ((__force u16)sport << 16) + (__force u16)dport; @@ -164,6 +186,7 @@ u64 seq; u32 i; + net_secret_init(); memcpy(hash, saddr, 16); for (i = 0; i < 4; i++) secret[i] = net_secret[i] + daddr[i]; --- linux-3.11.0.orig/net/core/netpoll.c +++ linux-3.11.0/net/core/netpoll.c @@ -550,7 +550,7 @@ return; proto = ntohs(eth_hdr(skb)->h_proto); - if (proto == ETH_P_IP) { + if (proto == ETH_P_ARP) { struct arphdr *arp; unsigned char *arp_ptr; /* No arp on this interface */ @@ -1284,15 +1284,14 @@ void netpoll_cleanup(struct netpoll *np) { - if (!np->dev) - return; - rtnl_lock(); + if (!np->dev) + goto out; __netpoll_cleanup(np); - rtnl_unlock(); - dev_put(np->dev); np->dev = NULL; +out: + rtnl_unlock(); } EXPORT_SYMBOL(netpoll_cleanup); --- linux-3.11.0.orig/net/core/sock.c +++ linux-3.11.0/net/core/sock.c @@ -2297,6 +2297,7 @@ sk->sk_ll_usec = sysctl_net_busy_read; #endif + sk->sk_pacing_rate = ~0U; /* * Before updating sk_refcnt, we must commit prior changes to memory * (Documentation/RCU/rculist_nulls.txt for details) --- linux-3.11.0.orig/net/core/flow_dissector.c +++ linux-3.11.0/net/core/flow_dissector.c @@ -40,7 +40,7 @@ struct iphdr _iph; ip: iph = skb_header_pointer(skb, nhoff, sizeof(_iph), &_iph); - if (!iph) + if (!iph || iph->ihl < 5) return false; if (ip_is_fragment(iph)) @@ -150,8 +150,8 @@ if (poff >= 0) { __be32 *ports, _ports; - nhoff += poff; - ports = skb_header_pointer(skb, nhoff, sizeof(_ports), &_ports); + ports = skb_header_pointer(skb, nhoff + poff, + sizeof(_ports), &_ports); if (ports) flow->ports = *ports; } @@ -348,7 +348,7 @@ if (queue_index != new_index && sk && rcu_access_pointer(sk->sk_dst_cache)) - sk_tx_queue_set(sk, queue_index); + sk_tx_queue_set(sk, new_index); queue_index = new_index; } --- linux-3.11.0.orig/net/dccp/ipv6.c +++ linux-3.11.0/net/dccp/ipv6.c @@ -135,6 +135,7 @@ if (dst) dst->ops->redirect(dst, sk, skb); + goto out; } if (type == ICMPV6_PKT_TOOBIG) { --- linux-3.11.0.orig/net/l2tp/l2tp_core.h +++ linux-3.11.0/net/l2tp/l2tp_core.h @@ -194,6 +194,9 @@ struct sock *sock; /* Parent socket */ int fd; /* Parent fd, if tunnel socket * was created by userspace */ +#if IS_ENABLED(CONFIG_IPV6) + bool v4mapped; +#endif struct work_struct del_work; --- linux-3.11.0.orig/net/l2tp/l2tp_core.c +++ linux-3.11.0/net/l2tp/l2tp_core.c @@ -115,6 +115,11 @@ static void l2tp_session_set_header_len(struct l2tp_session *session, int version); static void l2tp_tunnel_free(struct l2tp_tunnel *tunnel); +static inline struct l2tp_tunnel *l2tp_tunnel(struct sock *sk) +{ + return sk->sk_user_data; +} + static inline struct l2tp_net *l2tp_pernet(struct net *net) { BUG_ON(!net); @@ -504,7 +509,7 @@ return 0; #if IS_ENABLED(CONFIG_IPV6) - if (sk->sk_family == PF_INET6) { + if (sk->sk_family == PF_INET6 && !l2tp_tunnel(sk)->v4mapped) { if (!uh->check) { LIMIT_NETDEBUG(KERN_INFO "L2TP: IPv6: checksum is 0\n"); return 1; @@ -1128,7 +1133,7 @@ /* Queue the packet to IP for output */ skb->local_df = 1; #if IS_ENABLED(CONFIG_IPV6) - if (skb->sk->sk_family == PF_INET6) + if (skb->sk->sk_family == PF_INET6 && !tunnel->v4mapped) error = inet6_csk_xmit(skb, NULL); else #endif @@ -1255,7 +1260,7 @@ /* Calculate UDP checksum if configured to do so */ #if IS_ENABLED(CONFIG_IPV6) - if (sk->sk_family == PF_INET6) + if (sk->sk_family == PF_INET6 && !tunnel->v4mapped) l2tp_xmit_ipv6_csum(sk, skb, udp_len); else #endif @@ -1304,10 +1309,9 @@ */ static void l2tp_tunnel_destruct(struct sock *sk) { - struct l2tp_tunnel *tunnel; + struct l2tp_tunnel *tunnel = l2tp_tunnel(sk); struct l2tp_net *pn; - tunnel = sk->sk_user_data; if (tunnel == NULL) goto end; @@ -1675,7 +1679,7 @@ } /* Check if this socket has already been prepped */ - tunnel = (struct l2tp_tunnel *)sk->sk_user_data; + tunnel = l2tp_tunnel(sk); if (tunnel != NULL) { /* This socket has already been prepped */ err = -EBUSY; @@ -1704,6 +1708,24 @@ if (cfg != NULL) tunnel->debug = cfg->debug; +#if IS_ENABLED(CONFIG_IPV6) + if (sk->sk_family == PF_INET6) { + struct ipv6_pinfo *np = inet6_sk(sk); + + if (ipv6_addr_v4mapped(&np->saddr) && + ipv6_addr_v4mapped(&np->daddr)) { + struct inet_sock *inet = inet_sk(sk); + + tunnel->v4mapped = true; + inet->inet_saddr = np->saddr.s6_addr32[3]; + inet->inet_rcv_saddr = np->rcv_saddr.s6_addr32[3]; + inet->inet_daddr = np->daddr.s6_addr32[3]; + } else { + tunnel->v4mapped = false; + } + } +#endif + /* Mark socket as an encapsulation socket. See net/ipv4/udp.c */ tunnel->encap = encap; if (encap == L2TP_ENCAPTYPE_UDP) { @@ -1712,7 +1734,7 @@ udp_sk(sk)->encap_rcv = l2tp_udp_encap_recv; udp_sk(sk)->encap_destroy = l2tp_udp_encap_destroy; #if IS_ENABLED(CONFIG_IPV6) - if (sk->sk_family == PF_INET6) + if (sk->sk_family == PF_INET6 && !tunnel->v4mapped) udpv6_encap_enable(); else #endif --- linux-3.11.0.orig/net/l2tp/l2tp_ppp.c +++ linux-3.11.0/net/l2tp/l2tp_ppp.c @@ -353,7 +353,9 @@ goto error_put_sess_tun; } + local_bh_disable(); l2tp_xmit_skb(session, skb, session->hdr_len); + local_bh_enable(); sock_put(ps->tunnel_sock); sock_put(sk); @@ -422,7 +424,9 @@ skb->data[0] = ppph[0]; skb->data[1] = ppph[1]; + local_bh_disable(); l2tp_xmit_skb(session, skb, session->hdr_len); + local_bh_enable(); sock_put(sk_tun); sock_put(sk); --- linux-3.11.0.orig/net/ceph/osd_client.c +++ linux-3.11.0/net/ceph/osd_client.c @@ -2129,6 +2129,8 @@ dout("osdc_start_request failed map, " " will retry %lld\n", req->r_tid); rc = 0; + } else { + __unregister_request(osdc, req); } goto out_unlock; } --- linux-3.11.0.orig/net/ceph/osdmap.c +++ linux-3.11.0/net/ceph/osdmap.c @@ -1129,7 +1129,7 @@ /* pg_temp? */ pgid.seed = ceph_stable_mod(pgid.seed, pool->pg_num, - pool->pgp_num_mask); + pool->pg_num_mask); pg = __lookup_pg_mapping(&osdmap->pg_temp, pgid); if (pg) { *num = pg->len; --- linux-3.11.0.orig/net/caif/cfctrl.c +++ linux-3.11.0/net/caif/cfctrl.c @@ -293,9 +293,10 @@ count = cfctrl_cancel_req(&cfctrl->serv.layer, user_layer); - if (count != 1) + if (count != 1) { pr_err("Could not remove request (%d)", count); return -ENODEV; + } } return 0; } --- linux-3.11.0.orig/net/ipv6/ip6_fib.c +++ linux-3.11.0/net/ipv6/ip6_fib.c @@ -825,9 +825,9 @@ fn = fib6_add_1(root, &rt->rt6i_dst.addr, sizeof(struct in6_addr), rt->rt6i_dst.plen, offsetof(struct rt6_info, rt6i_dst), allow_create, replace_required); - if (IS_ERR(fn)) { err = PTR_ERR(fn); + fn = NULL; goto out; } --- linux-3.11.0.orig/net/ipv6/route.c +++ linux-3.11.0/net/ipv6/route.c @@ -477,6 +477,24 @@ } #ifdef CONFIG_IPV6_ROUTER_PREF +struct __rt6_probe_work { + struct work_struct work; + struct in6_addr target; + struct net_device *dev; +}; + +static void rt6_probe_deferred(struct work_struct *w) +{ + struct in6_addr mcaddr; + struct __rt6_probe_work *work = + container_of(w, struct __rt6_probe_work, work); + + addrconf_addr_solict_mult(&work->target, &mcaddr); + ndisc_send_ns(work->dev, NULL, &work->target, &mcaddr, NULL); + dev_put(work->dev); + kfree(w); +} + static void rt6_probe(struct rt6_info *rt) { struct neighbour *neigh; @@ -500,17 +518,23 @@ if (!neigh || time_after(jiffies, neigh->updated + rt->rt6i_idev->cnf.rtr_probe_interval)) { - struct in6_addr mcaddr; - struct in6_addr *target; + struct __rt6_probe_work *work; - if (neigh) { + work = kmalloc(sizeof(*work), GFP_ATOMIC); + + if (neigh && work) neigh->updated = jiffies; + + if (neigh) write_unlock(&neigh->lock); - } - target = (struct in6_addr *)&rt->rt6i_gateway; - addrconf_addr_solict_mult(target, &mcaddr); - ndisc_send_ns(rt->dst.dev, NULL, target, &mcaddr, NULL); + if (work) { + INIT_WORK(&work->work, rt6_probe_deferred); + work->target = rt->rt6i_gateway; + dev_hold(rt->dst.dev); + work->dev = rt->dst.dev; + schedule_work(&work->work); + } } else { out: write_unlock(&neigh->lock); @@ -852,7 +876,6 @@ if (ort->rt6i_dst.plen != 128 && ipv6_addr_equal(&ort->rt6i_dst.addr, daddr)) rt->rt6i_flags |= RTF_ANYCAST; - rt->rt6i_gateway = *daddr; } rt->rt6i_flags |= RTF_CACHE; @@ -1065,10 +1088,13 @@ if (rt->rt6i_genid != rt_genid(dev_net(rt->dst.dev))) return NULL; - if (rt->rt6i_node && (rt->rt6i_node->fn_sernum == cookie)) - return dst; + if (!rt->rt6i_node || (rt->rt6i_node->fn_sernum != cookie)) + return NULL; + + if (rt6_check_expired(rt)) + return NULL; - return NULL; + return dst; } static struct dst_entry *ip6_negative_advice(struct dst_entry *dst) @@ -1270,6 +1296,7 @@ rt->dst.flags |= DST_HOST; rt->dst.output = ip6_output; atomic_set(&rt->dst.__refcnt, 1); + rt->rt6i_gateway = fl6->daddr; rt->rt6i_dst.addr = fl6->daddr; rt->rt6i_dst.plen = 128; rt->rt6i_idev = idev; @@ -1824,7 +1851,10 @@ in6_dev_hold(rt->rt6i_idev); rt->dst.lastuse = jiffies; - rt->rt6i_gateway = ort->rt6i_gateway; + if (ort->rt6i_flags & RTF_GATEWAY) + rt->rt6i_gateway = ort->rt6i_gateway; + else + rt->rt6i_gateway = *dest; rt->rt6i_flags = ort->rt6i_flags; if ((ort->rt6i_flags & (RTF_DEFAULT | RTF_ADDRCONF)) == (RTF_DEFAULT | RTF_ADDRCONF)) @@ -2111,6 +2141,7 @@ else rt->rt6i_flags |= RTF_LOCAL; + rt->rt6i_gateway = *addr; rt->rt6i_dst.addr = *addr; rt->rt6i_dst.plen = 128; rt->rt6i_table = fib6_get_table(net, RT6_TABLE_LOCAL); --- linux-3.11.0.orig/net/ipv6/ip6_output.c +++ linux-3.11.0/net/ipv6/ip6_output.c @@ -130,7 +130,7 @@ } rcu_read_lock_bh(); - nexthop = rt6_nexthop((struct rt6_info *)dst, &ipv6_hdr(skb)->daddr); + nexthop = rt6_nexthop((struct rt6_info *)dst); neigh = __ipv6_neigh_lookup_noref(dst->dev, nexthop); if (unlikely(!neigh)) neigh = __neigh_create(&nd_tbl, nexthop, dst->dev, false); @@ -899,7 +899,7 @@ */ rt = (struct rt6_info *) *dst; rcu_read_lock_bh(); - n = __ipv6_neigh_lookup_noref(rt->dst.dev, rt6_nexthop(rt, &fl6->daddr)); + n = __ipv6_neigh_lookup_noref(rt->dst.dev, rt6_nexthop(rt)); err = n && !(n->nud_state & NUD_VALID) ? -EINVAL : 0; rcu_read_unlock_bh(); @@ -1040,6 +1040,8 @@ * udp datagram */ if ((skb = skb_peek_tail(&sk->sk_write_queue)) == NULL) { + struct frag_hdr fhdr; + skb = sock_alloc_send_skb(sk, hh_len + fragheaderlen + transhdrlen + 20, (flags & MSG_DONTWAIT), &err); @@ -1061,12 +1063,6 @@ skb->protocol = htons(ETH_P_IPV6); skb->ip_summed = CHECKSUM_PARTIAL; skb->csum = 0; - } - - err = skb_append_datato_frags(sk,skb, getfrag, from, - (length - transhdrlen)); - if (!err) { - struct frag_hdr fhdr; /* Specify the length of each IPv6 datagram fragment. * It has to be a multiple of 8. @@ -1077,15 +1073,10 @@ ipv6_select_ident(&fhdr, rt); skb_shinfo(skb)->ip6_frag_id = fhdr.identification; __skb_queue_tail(&sk->sk_write_queue, skb); - - return 0; } - /* There is not enough support do UPD LSO, - * so follow normal path - */ - kfree_skb(skb); - return err; + return skb_append_datato_frags(sk, skb, getfrag, from, + (length - transhdrlen)); } static inline struct ipv6_opt_hdr *ip6_opt_dup(struct ipv6_opt_hdr *src, @@ -1252,27 +1243,27 @@ * --yoshfuji */ - cork->length += length; - if (length > mtu) { - int proto = sk->sk_protocol; - if (dontfrag && (proto == IPPROTO_UDP || proto == IPPROTO_RAW)){ - ipv6_local_rxpmtu(sk, fl6, mtu-exthdrlen); - return -EMSGSIZE; - } - - if (proto == IPPROTO_UDP && - (rt->dst.dev->features & NETIF_F_UFO)) { + if ((length > mtu) && dontfrag && (sk->sk_protocol == IPPROTO_UDP || + sk->sk_protocol == IPPROTO_RAW)) { + ipv6_local_rxpmtu(sk, fl6, mtu-exthdrlen); + return -EMSGSIZE; + } - err = ip6_ufo_append_data(sk, getfrag, from, length, - hh_len, fragheaderlen, - transhdrlen, mtu, flags, rt); - if (err) - goto error; - return 0; - } + skb = skb_peek_tail(&sk->sk_write_queue); + cork->length += length; + if (((length > mtu) || + (skb && skb_has_frags(skb))) && + (sk->sk_protocol == IPPROTO_UDP) && + (rt->dst.dev->features & NETIF_F_UFO)) { + err = ip6_ufo_append_data(sk, getfrag, from, length, + hh_len, fragheaderlen, + transhdrlen, mtu, flags, rt); + if (err) + goto error; + return 0; } - if ((skb = skb_peek_tail(&sk->sk_write_queue)) == NULL) + if (!skb) goto alloc_new_skb; while (length > 0) { --- linux-3.11.0.orig/net/ipv6/exthdrs.c +++ linux-3.11.0/net/ipv6/exthdrs.c @@ -162,12 +162,6 @@ off += optlen; len -= optlen; } - /* This case will not be caught by above check since its padding - * length is smaller than 7: - * 1 byte NH + 1 byte Length + 6 bytes Padding - */ - if ((padlen == 6) && ((off - skb_network_header_len(skb)) == 8)) - goto bad; if (len == 0) return true; --- linux-3.11.0.orig/net/ipv6/ip6_tunnel.c +++ linux-3.11.0/net/ipv6/ip6_tunnel.c @@ -1652,9 +1652,9 @@ if (nla_put_u32(skb, IFLA_IPTUN_LINK, parm->link) || nla_put(skb, IFLA_IPTUN_LOCAL, sizeof(struct in6_addr), - &parm->raddr) || - nla_put(skb, IFLA_IPTUN_REMOTE, sizeof(struct in6_addr), &parm->laddr) || + nla_put(skb, IFLA_IPTUN_REMOTE, sizeof(struct in6_addr), + &parm->raddr) || nla_put_u8(skb, IFLA_IPTUN_TTL, parm->hop_limit) || nla_put_u8(skb, IFLA_IPTUN_ENCAP_LIMIT, parm->encap_limit) || nla_put_be32(skb, IFLA_IPTUN_FLOWINFO, parm->flowinfo) || @@ -1738,6 +1738,7 @@ if (!ip6n->fb_tnl_dev) goto err_alloc_dev; dev_net_set(ip6n->fb_tnl_dev, net); + ip6n->fb_tnl_dev->rtnl_link_ops = &ip6_link_ops; err = ip6_fb_tnl_dev_init(ip6n->fb_tnl_dev); if (err < 0) --- linux-3.11.0.orig/net/ipv6/sit.c +++ linux-3.11.0/net/ipv6/sit.c @@ -566,6 +566,70 @@ return false; } +/* Checks if an address matches an address on the tunnel interface. + * Used to detect the NAT of proto 41 packets and let them pass spoofing test. + * Long story: + * This function is called after we considered the packet as spoofed + * in is_spoofed_6rd. + * We may have a router that is doing NAT for proto 41 packets + * for an internal station. Destination a.a.a.a/PREFIX:bbbb:bbbb + * will be translated to n.n.n.n/PREFIX:bbbb:bbbb. And is_spoofed_6rd + * function will return true, dropping the packet. + * But, we can still check if is spoofed against the IP + * addresses associated with the interface. + */ +static bool only_dnatted(const struct ip_tunnel *tunnel, + const struct in6_addr *v6dst) +{ + int prefix_len; + +#ifdef CONFIG_IPV6_SIT_6RD + prefix_len = tunnel->ip6rd.prefixlen + 32 + - tunnel->ip6rd.relay_prefixlen; +#else + prefix_len = 48; +#endif + return ipv6_chk_custom_prefix(v6dst, prefix_len, tunnel->dev); +} + +/* Returns true if a packet is spoofed */ +static bool packet_is_spoofed(struct sk_buff *skb, + const struct iphdr *iph, + struct ip_tunnel *tunnel) +{ + const struct ipv6hdr *ipv6h; + + if (tunnel->dev->priv_flags & IFF_ISATAP) { + if (!isatap_chksrc(skb, iph, tunnel)) + return true; + + return false; + } + + if (tunnel->dev->flags & IFF_POINTOPOINT) + return false; + + ipv6h = ipv6_hdr(skb); + + if (unlikely(is_spoofed_6rd(tunnel, iph->saddr, &ipv6h->saddr))) { + net_warn_ratelimited("Src spoofed %pI4/%pI6c -> %pI4/%pI6c\n", + &iph->saddr, &ipv6h->saddr, + &iph->daddr, &ipv6h->daddr); + return true; + } + + if (likely(!is_spoofed_6rd(tunnel, iph->daddr, &ipv6h->daddr))) + return false; + + if (only_dnatted(tunnel, &ipv6h->daddr)) + return false; + + net_warn_ratelimited("Dst spoofed %pI4/%pI6c -> %pI4/%pI6c\n", + &iph->saddr, &ipv6h->saddr, + &iph->daddr, &ipv6h->daddr); + return true; +} + static int ipip6_rcv(struct sk_buff *skb) { const struct iphdr *iph = ip_hdr(skb); @@ -588,19 +652,9 @@ skb->protocol = htons(ETH_P_IPV6); skb->pkt_type = PACKET_HOST; - if (tunnel->dev->priv_flags & IFF_ISATAP) { - if (!isatap_chksrc(skb, iph, tunnel)) { - tunnel->dev->stats.rx_errors++; - goto out; - } - } else if (!(tunnel->dev->flags&IFF_POINTOPOINT)) { - if (is_spoofed_6rd(tunnel, iph->saddr, - &ipv6_hdr(skb)->saddr) || - is_spoofed_6rd(tunnel, iph->daddr, - &ipv6_hdr(skb)->daddr)) { - tunnel->dev->stats.rx_errors++; - goto out; - } + if (packet_is_spoofed(skb, iph, tunnel)) { + tunnel->dev->stats.rx_errors++; + goto out; } __skb_tunnel_rx(skb, tunnel->dev); @@ -752,7 +806,7 @@ neigh = dst_neigh_lookup(skb_dst(skb), &iph6->daddr); if (neigh == NULL) { - net_dbg_ratelimited("sit: nexthop == NULL\n"); + net_dbg_ratelimited("nexthop == NULL\n"); goto tx_error; } @@ -781,7 +835,7 @@ neigh = dst_neigh_lookup(skb_dst(skb), &iph6->daddr); if (neigh == NULL) { - net_dbg_ratelimited("sit: nexthop == NULL\n"); + net_dbg_ratelimited("nexthop == NULL\n"); goto tx_error; } @@ -1619,6 +1673,7 @@ goto err_alloc_dev; } dev_net_set(sitn->fb_tunnel_dev, net); + sitn->fb_tunnel_dev->rtnl_link_ops = &sit_link_ops; /* FB netdevice is special: we have one, and only one per netns. * Allowing to move it to another netns is clearly unsafe. */ @@ -1653,7 +1708,6 @@ rtnl_lock(); sit_destroy_tunnels(sitn, &list); - unregister_netdevice_queue(sitn->fb_tunnel_dev, &list); unregister_netdevice_many(&list); rtnl_unlock(); } --- linux-3.11.0.orig/net/ipv6/ip6_gre.c +++ linux-3.11.0/net/ipv6/ip6_gre.c @@ -620,7 +620,7 @@ struct ip6_tnl *tunnel = netdev_priv(dev); struct net_device *tdev; /* Device to other host */ struct ipv6hdr *ipv6h; /* Our new IP header */ - unsigned int max_headroom; /* The extra header space needed */ + unsigned int max_headroom = 0; /* The extra header space needed */ int gre_hlen; struct ipv6_tel_txoption opt; int mtu; @@ -693,7 +693,7 @@ tunnel->err_count = 0; } - max_headroom = LL_RESERVED_SPACE(tdev) + gre_hlen + dst->header_len; + max_headroom += LL_RESERVED_SPACE(tdev) + gre_hlen + dst->header_len; if (skb_headroom(skb) < max_headroom || skb_shared(skb) || (skb_cloned(skb) && !skb_clone_writable(skb, 0))) { --- linux-3.11.0.orig/net/ipv6/inet6_hashtables.c +++ linux-3.11.0/net/ipv6/inet6_hashtables.c @@ -116,7 +116,7 @@ } if (unlikely(!INET6_TW_MATCH(sk, net, saddr, daddr, ports, dif))) { - sock_put(sk); + inet_twsk_put(inet_twsk(sk)); goto begintw; } goto out; --- linux-3.11.0.orig/net/ipv6/addrconf.c +++ linux-3.11.0/net/ipv6/addrconf.c @@ -1533,6 +1533,33 @@ return false; } +/* Compares an address/prefix_len with addresses on device @dev. + * If one is found it returns true. + */ +bool ipv6_chk_custom_prefix(const struct in6_addr *addr, + const unsigned int prefix_len, struct net_device *dev) +{ + struct inet6_dev *idev; + struct inet6_ifaddr *ifa; + bool ret = false; + + rcu_read_lock(); + idev = __in6_dev_get(dev); + if (idev) { + read_lock_bh(&idev->lock); + list_for_each_entry(ifa, &idev->addr_list, if_list) { + ret = ipv6_prefix_equal(addr, &ifa->addr, prefix_len); + if (ret) + break; + } + read_unlock_bh(&idev->lock); + } + rcu_read_unlock(); + + return ret; +} +EXPORT_SYMBOL(ipv6_chk_custom_prefix); + int ipv6_chk_prefix(const struct in6_addr *addr, struct net_device *dev) { struct inet6_dev *idev; @@ -4775,6 +4802,87 @@ return ret; } +#ifdef CONFIG_IPV6_PRIVACY +static void dev_tempaddr_change(struct inet6_dev *idev) +{ + struct netdev_notifier_info info; + + if (!idev || !idev->dev) + return; + + netdev_notifier_info_init(&info, idev->dev); + if (!idev->cnf.disable_ipv6) { + /* If ipv6 is enabled, try to bring down and back up the + * interface to get new temporary addresses created + */ + addrconf_notify(NULL, NETDEV_DOWN, &info); + addrconf_notify(NULL, NETDEV_UP, &info); + } +} + +static void addrconf_tempaddr_change(struct net *net, __s32 newf) +{ + struct net_device *dev; + struct inet6_dev *idev; + + rcu_read_lock(); + for_each_netdev_rcu(net, dev) { + idev = __in6_dev_get(dev); + if (idev) { + int changed = (!idev->cnf.use_tempaddr) ^ (!newf); + idev->cnf.use_tempaddr = newf; + if (changed) + dev_tempaddr_change(idev); + } + } + rcu_read_unlock(); +} + +static int addrconf_use_tempaddr(struct ctl_table *table, int *p, int old) +{ + struct net *net; + + net = (struct net *)table->extra2; + + if (p == &net->ipv6.devconf_dflt->use_tempaddr) + return 0; + + if (!rtnl_trylock()) { + /* Restore the original values before restarting */ + *p = old; + return restart_syscall(); + } + + if (p == &net->ipv6.devconf_all->use_tempaddr) { + __s32 newf = net->ipv6.devconf_all->use_tempaddr; + net->ipv6.devconf_dflt->use_tempaddr = newf; + addrconf_tempaddr_change(net, newf); + } else if ((!*p) ^ (!old)) + dev_tempaddr_change((struct inet6_dev *)table->extra1); + + rtnl_unlock(); + return 0; +} + +static +int addrconf_sysctl_tempaddr(ctl_table *ctl, int write, + void __user *buffer, size_t *lenp, loff_t *ppos) +{ + int *valp = ctl->data; + int val = *valp; + loff_t pos = *ppos; + int ret; + + ret = proc_dointvec(ctl, write, buffer, lenp, ppos); + + if (write) + ret = addrconf_use_tempaddr(ctl, valp, val); + if (ret) + *ppos = pos; + return ret; +} +#endif + static struct addrconf_sysctl_table { struct ctl_table_header *sysctl_header; @@ -4865,7 +4973,7 @@ .data = &ipv6_devconf.use_tempaddr, .maxlen = sizeof(int), .mode = 0644, - .proc_handler = proc_dointvec, + .proc_handler = addrconf_sysctl_tempaddr, }, { .procname = "temp_valid_lft", --- linux-3.11.0.orig/net/ipv6/mcast.c +++ linux-3.11.0/net/ipv6/mcast.c @@ -1862,7 +1862,7 @@ if (idev->mc_dad_count) mld_dad_start_timer(idev, idev->mc_maxdelay); } - __in6_dev_put(idev); + in6_dev_put(idev); } static int ip6_mc_del1_src(struct ifmcaddr6 *pmc, int sfmode, @@ -2207,7 +2207,7 @@ idev->mc_gq_running = 0; mld_send_report(idev, NULL); - __in6_dev_put(idev); + in6_dev_put(idev); } static void mld_ifc_timer_expire(unsigned long data) @@ -2220,7 +2220,7 @@ if (idev->mc_ifc_count) mld_ifc_start_timer(idev, idev->mc_maxdelay); } - __in6_dev_put(idev); + in6_dev_put(idev); } static void mld_ifc_event(struct inet6_dev *idev) --- linux-3.11.0.orig/net/netfilter/nf_conntrack_h323_main.c +++ linux-3.11.0/net/netfilter/nf_conntrack_h323_main.c @@ -778,8 +778,8 @@ flowi6_to_flowi(&fl1), false)) { if (!afinfo->route(&init_net, (struct dst_entry **)&rt2, flowi6_to_flowi(&fl2), false)) { - if (!memcmp(&rt1->rt6i_gateway, &rt2->rt6i_gateway, - sizeof(rt1->rt6i_gateway)) && + if (ipv6_addr_equal(rt6_nexthop(rt1), + rt6_nexthop(rt2)) && rt1->dst.dev == rt2->dst.dev) ret = 1; dst_release(&rt2->dst); --- linux-3.11.0.orig/net/netfilter/ipvs/ip_vs_xmit.c +++ linux-3.11.0/net/netfilter/ipvs/ip_vs_xmit.c @@ -883,7 +883,7 @@ iph->daddr = cp->daddr.ip; iph->saddr = saddr; iph->ttl = old_iph->ttl; - ip_select_ident(iph, &rt->dst, NULL); + ip_select_ident(skb, &rt->dst, NULL); /* Another hack: avoid icmp_send in ip_fragment */ skb->local_df = 1; --- linux-3.11.0.orig/net/netfilter/ipset/ip_set_hash_gen.h +++ linux-3.11.0/net/netfilter/ipset/ip_set_hash_gen.h @@ -325,18 +325,22 @@ static void mtype_del_cidr(struct htype *h, u8 cidr, u8 nets_length) { - u8 i, j; + u8 i, j, net_end = nets_length - 1; - for (i = 0; i < nets_length - 1 && h->nets[i].cidr != cidr; i++) - ; - h->nets[i].nets--; - - if (h->nets[i].nets != 0) - return; - - for (j = i; j < nets_length - 1 && h->nets[j].nets; j++) { - h->nets[j].cidr = h->nets[j + 1].cidr; - h->nets[j].nets = h->nets[j + 1].nets; + for (i = 0; i < nets_length; i++) { + if (h->nets[i].cidr != cidr) + continue; + if (h->nets[i].nets > 1 || i == net_end || + h->nets[i + 1].nets == 0) { + h->nets[i].nets--; + return; + } + for (j = i; j < net_end && h->nets[j].nets; j++) { + h->nets[j].cidr = h->nets[j + 1].cidr; + h->nets[j].nets = h->nets[j + 1].nets; + } + h->nets[j].nets = 0; + return; } } #endif --- linux-3.11.0.orig/net/unix/af_unix.c +++ linux-3.11.0/net/unix/af_unix.c @@ -1246,6 +1246,15 @@ return 0; } +static void unix_sock_inherit_flags(const struct socket *old, + struct socket *new) +{ + if (test_bit(SOCK_PASSCRED, &old->flags)) + set_bit(SOCK_PASSCRED, &new->flags); + if (test_bit(SOCK_PASSSEC, &old->flags)) + set_bit(SOCK_PASSSEC, &new->flags); +} + static int unix_accept(struct socket *sock, struct socket *newsock, int flags) { struct sock *sk = sock->sk; @@ -1280,6 +1289,7 @@ /* attach accepted sock to socket */ unix_state_lock(tsk); newsock->state = SS_CONNECTED; + unix_sock_inherit_flags(sock, newsock); sock_graft(tsk, newsock); unix_state_unlock(tsk); return 0; --- linux-3.11.0.orig/net/unix/diag.c +++ linux-3.11.0/net/unix/diag.c @@ -124,6 +124,7 @@ rep->udiag_family = AF_UNIX; rep->udiag_type = sk->sk_type; rep->udiag_state = sk->sk_state; + rep->pad = 0; rep->udiag_ino = sk_ino; sock_diag_save_cookie(sk, rep->udiag_cookie); --- linux-3.11.0.orig/net/8021q/vlan_netlink.c +++ linux-3.11.0/net/8021q/vlan_netlink.c @@ -171,7 +171,7 @@ return nla_total_size(2) + /* IFLA_VLAN_PROTOCOL */ nla_total_size(2) + /* IFLA_VLAN_ID */ - sizeof(struct ifla_vlan_flags) + /* IFLA_VLAN_FLAGS */ + nla_total_size(sizeof(struct ifla_vlan_flags)) + /* IFLA_VLAN_FLAGS */ vlan_qos_map_size(vlan->nr_ingress_mappings) + vlan_qos_map_size(vlan->nr_egress_mappings); } --- linux-3.11.0.orig/net/sctp/sm_sideeffect.c +++ linux-3.11.0/net/sctp/sm_sideeffect.c @@ -866,7 +866,6 @@ (!asoc->temp) && (sk->sk_shutdown != SHUTDOWN_MASK)) return; - BUG_ON(asoc->peer.primary_path == NULL); sctp_unhash_established(asoc); sctp_association_free(asoc); } --- linux-3.11.0.orig/net/sctp/ipv6.c +++ linux-3.11.0/net/sctp/ipv6.c @@ -189,7 +189,7 @@ break; case NDISC_REDIRECT: sctp_icmp_redirect(sk, transport, skb); - break; + goto out_unlock; default: break; } @@ -210,44 +210,23 @@ in6_dev_put(idev); } -/* Based on tcp_v6_xmit() in tcp_ipv6.c. */ static int sctp_v6_xmit(struct sk_buff *skb, struct sctp_transport *transport) { struct sock *sk = skb->sk; struct ipv6_pinfo *np = inet6_sk(sk); - struct flowi6 fl6; - - memset(&fl6, 0, sizeof(fl6)); - - fl6.flowi6_proto = sk->sk_protocol; - - /* Fill in the dest address from the route entry passed with the skb - * and the source address from the transport. - */ - fl6.daddr = transport->ipaddr.v6.sin6_addr; - fl6.saddr = transport->saddr.v6.sin6_addr; - - fl6.flowlabel = np->flow_label; - IP6_ECN_flow_xmit(sk, fl6.flowlabel); - if (ipv6_addr_type(&fl6.saddr) & IPV6_ADDR_LINKLOCAL) - fl6.flowi6_oif = transport->saddr.v6.sin6_scope_id; - else - fl6.flowi6_oif = sk->sk_bound_dev_if; - - if (np->opt && np->opt->srcrt) { - struct rt0_hdr *rt0 = (struct rt0_hdr *) np->opt->srcrt; - fl6.daddr = *rt0->addr; - } + struct flowi6 *fl6 = &transport->fl.u.ip6; pr_debug("%s: skb:%p, len:%d, src:%pI6 dst:%pI6\n", __func__, skb, - skb->len, &fl6.saddr, &fl6.daddr); + skb->len, &fl6->saddr, &fl6->daddr); - SCTP_INC_STATS(sock_net(sk), SCTP_MIB_OUTSCTPPACKS); + IP6_ECN_flow_xmit(sk, fl6->flowlabel); if (!(transport->param_flags & SPP_PMTUD_ENABLE)) skb->local_df = 1; - return ip6_xmit(sk, skb, &fl6, np->opt, np->tclass); + SCTP_INC_STATS(sock_net(sk), SCTP_MIB_OUTSCTPPACKS); + + return ip6_xmit(sk, skb, fl6, np->opt, np->tclass); } /* Returns the dst cache entry for the given source and destination ip @@ -260,10 +239,12 @@ struct dst_entry *dst = NULL; struct flowi6 *fl6 = &fl->u.ip6; struct sctp_bind_addr *bp; + struct ipv6_pinfo *np = inet6_sk(sk); struct sctp_sockaddr_entry *laddr; union sctp_addr *baddr = NULL; union sctp_addr *daddr = &t->ipaddr; union sctp_addr dst_saddr; + struct in6_addr *final_p, final; __u8 matchlen = 0; __u8 bmatchlen; sctp_scope_t scope; @@ -287,7 +268,8 @@ pr_debug("src=%pI6 - ", &fl6->saddr); } - dst = ip6_dst_lookup_flow(sk, fl6, NULL, false); + final_p = fl6_update_dst(fl6, np->opt, &final); + dst = ip6_dst_lookup_flow(sk, fl6, final_p, false); if (!asoc || saddr) goto out; @@ -339,10 +321,12 @@ } } rcu_read_unlock(); + if (baddr) { fl6->saddr = baddr->v6.sin6_addr; fl6->fl6_sport = baddr->v6.sin6_port; - dst = ip6_dst_lookup_flow(sk, fl6, NULL, false); + final_p = fl6_update_dst(fl6, np->opt, &final); + dst = ip6_dst_lookup_flow(sk, fl6, final_p, false); } out: --- linux-3.11.0.orig/net/sctp/input.c +++ linux-3.11.0/net/sctp/input.c @@ -648,8 +648,7 @@ break; case ICMP_REDIRECT: sctp_icmp_redirect(sk, transport, skb); - err = 0; - break; + /* Fall through to out_unlock. */ default: goto out_unlock; } --- linux-3.11.0.orig/net/sctp/output.c +++ linux-3.11.0/net/sctp/output.c @@ -542,7 +542,8 @@ * by CRC32-C as described in . */ if (!sctp_checksum_disable) { - if (!(dst->dev->features & NETIF_F_SCTP_CSUM)) { + if (!(dst->dev->features & NETIF_F_SCTP_CSUM) || + (dst_xfrm(dst) != NULL) || packet->ipfragok) { __u32 crc32 = sctp_start_cksum((__u8 *)sh, cksum_buf_len); /* 3) Put the resultant value into the checksum field in the --- linux-3.11.0.orig/net/sctp/socket.c +++ linux-3.11.0/net/sctp/socket.c @@ -812,6 +812,9 @@ goto skip_mkasconf; } + if (laddr == NULL) + return -EINVAL; + /* We do not need RCU protection throughout this loop * because this is done under a socket lock from the * setsockopt call. @@ -6182,7 +6185,7 @@ /* Is there any exceptional events? */ if (sk->sk_err || !skb_queue_empty(&sk->sk_error_queue)) mask |= POLLERR | - sock_flag(sk, SOCK_SELECT_ERR_QUEUE) ? POLLPRI : 0; + (sock_flag(sk, SOCK_SELECT_ERR_QUEUE) ? POLLPRI : 0); if (sk->sk_shutdown & RCV_SHUTDOWN) mask |= POLLRDHUP | POLLIN | POLLRDNORM; if (sk->sk_shutdown == SHUTDOWN_MASK) --- linux-3.11.0.orig/net/bluetooth/hci_core.c +++ linux-3.11.0/net/bluetooth/hci_core.c @@ -1134,7 +1134,11 @@ goto done; } - if (hdev->rfkill && rfkill_blocked(hdev->rfkill)) { + /* Check for rfkill but allow the HCI setup stage to proceed + * (which in itself doesn't cause any RF activity). + */ + if (test_bit(HCI_RFKILLED, &hdev->dev_flags) && + !test_bit(HCI_SETUP, &hdev->dev_flags)) { ret = -ERFKILL; goto done; } @@ -1554,10 +1558,13 @@ BT_DBG("%p name %s blocked %d", hdev, hdev->name, blocked); - if (!blocked) - return 0; - - hci_dev_do_close(hdev); + if (blocked) { + set_bit(HCI_RFKILLED, &hdev->dev_flags); + if (!test_bit(HCI_SETUP, &hdev->dev_flags)) + hci_dev_do_close(hdev); + } else { + clear_bit(HCI_RFKILLED, &hdev->dev_flags); +} return 0; } @@ -1579,9 +1586,13 @@ return; } - if (test_bit(HCI_AUTO_OFF, &hdev->dev_flags)) + if (test_bit(HCI_RFKILLED, &hdev->dev_flags)) { + clear_bit(HCI_AUTO_OFF, &hdev->dev_flags); + hci_dev_do_close(hdev); + } else if (test_bit(HCI_AUTO_OFF, &hdev->dev_flags)) { queue_delayed_work(hdev->req_workqueue, &hdev->power_off, HCI_AUTO_OFF_TIMEOUT); + } if (test_and_clear_bit(HCI_SETUP, &hdev->dev_flags)) mgmt_index_added(hdev); @@ -2197,6 +2208,9 @@ } } + if (hdev->rfkill && rfkill_blocked(hdev->rfkill)) + set_bit(HCI_RFKILLED, &hdev->dev_flags); + set_bit(HCI_SETUP, &hdev->dev_flags); if (hdev->dev_type != HCI_AMP) --- linux-3.11.0.orig/net/bluetooth/hci_event.c +++ linux-3.11.0/net/bluetooth/hci_event.c @@ -3552,7 +3552,11 @@ cp.handle = cpu_to_le16(conn->handle); if (ltk->authenticated) - conn->sec_level = BT_SECURITY_HIGH; + conn->pending_sec_level = BT_SECURITY_HIGH; + else + conn->pending_sec_level = BT_SECURITY_MEDIUM; + + conn->enc_key_size = ltk->enc_size; hci_send_cmd(hdev, HCI_OP_LE_LTK_REPLY, sizeof(cp), &cp); --- linux-3.11.0.orig/net/bluetooth/hidp/core.c +++ linux-3.11.0/net/bluetooth/hidp/core.c @@ -225,17 +225,22 @@ static int hidp_send_report(struct hidp_session *session, struct hid_report *report) { - unsigned char buf[32], hdr; - int rsize; + unsigned char hdr; + u8 *buf; + int rsize, ret; - rsize = ((report->size - 1) >> 3) + 1 + (report->id > 0); - if (rsize > sizeof(buf)) + buf = hid_alloc_report_buf(report, GFP_ATOMIC); + if (!buf) return -EIO; hid_output_report(report, buf); hdr = HIDP_TRANS_DATA | HIDP_DATA_RTYPE_OUPUT; - return hidp_send_intr_message(session, hdr, buf, rsize); + rsize = ((report->size - 1) >> 3) + 1 + (report->id > 0); + ret = hidp_send_intr_message(session, hdr, buf, rsize); + + kfree(buf); + return ret; } static int hidp_get_raw_report(struct hid_device *hid, --- linux-3.11.0.orig/net/bluetooth/rfcomm/tty.c +++ linux-3.11.0/net/bluetooth/rfcomm/tty.c @@ -58,7 +58,6 @@ uint modem_status; struct rfcomm_dlc *dlc; - wait_queue_head_t wait; struct device *tty_dev; @@ -76,13 +75,6 @@ /* ---- Device functions ---- */ -/* - * The reason this isn't actually a race, as you no doubt have a little voice - * screaming at you in your head, is that the refcount should never actually - * reach zero unless the device has already been taken off the list, in - * rfcomm_dev_del(). And if that's not true, we'll hit the BUG() in - * rfcomm_dev_destruct() anyway. - */ static void rfcomm_dev_destruct(struct tty_port *port) { struct rfcomm_dev *dev = container_of(port, struct rfcomm_dev, port); @@ -90,10 +82,9 @@ BT_DBG("dev %p dlc %p", dev, dlc); - /* Refcount should only hit zero when called from rfcomm_dev_del() - which will have taken us off the list. Everything else are - refcounting bugs. */ - BUG_ON(!list_empty(&dev->list)); + spin_lock(&rfcomm_dev_lock); + list_del(&dev->list); + spin_unlock(&rfcomm_dev_lock); rfcomm_dlc_lock(dlc); /* Detach DLC if it's owned by this dev */ @@ -112,8 +103,39 @@ module_put(THIS_MODULE); } +/* device-specific initialization: open the dlc */ +static int rfcomm_dev_activate(struct tty_port *port, struct tty_struct *tty) +{ + struct rfcomm_dev *dev = container_of(port, struct rfcomm_dev, port); + + return rfcomm_dlc_open(dev->dlc, &dev->src, &dev->dst, dev->channel); +} + +/* we block the open until the dlc->state becomes BT_CONNECTED */ +static int rfcomm_dev_carrier_raised(struct tty_port *port) +{ + struct rfcomm_dev *dev = container_of(port, struct rfcomm_dev, port); + + return (dev->dlc->state == BT_CONNECTED); +} + +/* device-specific cleanup: close the dlc */ +static void rfcomm_dev_shutdown(struct tty_port *port) +{ + struct rfcomm_dev *dev = container_of(port, struct rfcomm_dev, port); + + if (dev->tty_dev->parent) + device_move(dev->tty_dev, NULL, DPM_ORDER_DEV_LAST); + + /* close the dlc */ + rfcomm_dlc_close(dev->dlc, 0); +} + static const struct tty_port_operations rfcomm_port_ops = { .destruct = rfcomm_dev_destruct, + .activate = rfcomm_dev_activate, + .shutdown = rfcomm_dev_shutdown, + .carrier_raised = rfcomm_dev_carrier_raised, }; static struct rfcomm_dev *__rfcomm_dev_get(int id) @@ -236,7 +258,6 @@ tty_port_init(&dev->port); dev->port.ops = &rfcomm_port_ops; - init_waitqueue_head(&dev->wait); skb_queue_head_init(&dev->pending); @@ -282,7 +303,9 @@ dev->id, NULL); if (IS_ERR(dev->tty_dev)) { err = PTR_ERR(dev->tty_dev); + spin_lock(&rfcomm_dev_lock); list_del(&dev->list); + spin_unlock(&rfcomm_dev_lock); goto free; } @@ -301,27 +324,6 @@ return err; } -static void rfcomm_dev_del(struct rfcomm_dev *dev) -{ - unsigned long flags; - BT_DBG("dev %p", dev); - - BUG_ON(test_and_set_bit(RFCOMM_TTY_RELEASED, &dev->flags)); - - spin_lock_irqsave(&dev->port.lock, flags); - if (dev->port.count > 0) { - spin_unlock_irqrestore(&dev->port.lock, flags); - return; - } - spin_unlock_irqrestore(&dev->port.lock, flags); - - spin_lock(&rfcomm_dev_lock); - list_del_init(&dev->list); - spin_unlock(&rfcomm_dev_lock); - - tty_port_put(&dev->port); -} - /* ---- Send buffer ---- */ static inline unsigned int rfcomm_room(struct rfcomm_dlc *dlc) { @@ -333,10 +335,9 @@ static void rfcomm_wfree(struct sk_buff *skb) { struct rfcomm_dev *dev = (void *) skb->sk; - struct tty_struct *tty = dev->port.tty; atomic_sub(skb->truesize, &dev->wmem_alloc); - if (test_bit(RFCOMM_TTY_ATTACHED, &dev->flags) && tty) - tty_wakeup(tty); + if (test_bit(RFCOMM_TTY_ATTACHED, &dev->flags)) + tty_port_tty_wakeup(&dev->port); tty_port_put(&dev->port); } @@ -410,6 +411,7 @@ { struct rfcomm_dev_req req; struct rfcomm_dev *dev; + struct tty_struct *tty; if (copy_from_user(&req, arg, sizeof(req))) return -EFAULT; @@ -429,11 +431,15 @@ rfcomm_dlc_close(dev->dlc, 0); /* Shut down TTY synchronously before freeing rfcomm_dev */ - if (dev->port.tty) - tty_vhangup(dev->port.tty); + tty = tty_port_tty_get(&dev->port); + if (tty) { + tty_vhangup(tty); + tty_kref_put(tty); + } + + if (!test_and_set_bit(RFCOMM_TTY_RELEASED, &dev->flags)) + tty_port_put(&dev->port); - if (!test_bit(RFCOMM_RELEASE_ONHUP, &dev->flags)) - rfcomm_dev_del(dev); tty_port_put(&dev->port); return 0; } @@ -563,16 +569,21 @@ static void rfcomm_dev_state_change(struct rfcomm_dlc *dlc, int err) { struct rfcomm_dev *dev = dlc->owner; + struct tty_struct *tty; if (!dev) return; BT_DBG("dlc %p dev %p err %d", dlc, dev, err); dev->err = err; - wake_up_interruptible(&dev->wait); + if (dlc->state == BT_CONNECTED) { + device_move(dev->tty_dev, rfcomm_get_device(dev), + DPM_ORDER_DEV_AFTER_PARENT); - if (dlc->state == BT_CLOSED) { - if (!dev->port.tty) { + wake_up_interruptible(&dev->port.open_wait); + } else if (dlc->state == BT_CLOSED) { + tty = tty_port_tty_get(&dev->port); + if (!tty) { if (test_bit(RFCOMM_RELEASE_ONHUP, &dev->flags)) { /* Drop DLC lock here to avoid deadlock * 1. rfcomm_dev_get will take rfcomm_dev_lock @@ -580,6 +591,9 @@ * rfcomm_dev_lock -> dlc lock * 2. tty_port_put will deadlock if it's * the last reference + * + * FIXME: when we release the lock anything + * could happen to dev, even its destruction */ rfcomm_dlc_unlock(dlc); if (rfcomm_dev_get(dev->id) == NULL) { @@ -587,12 +601,17 @@ return; } - rfcomm_dev_del(dev); + if (!test_and_set_bit(RFCOMM_TTY_RELEASED, + &dev->flags)) + tty_port_put(&dev->port); + tty_port_put(&dev->port); rfcomm_dlc_lock(dlc); } - } else - tty_hangup(dev->port.tty); + } else { + tty_hangup(tty); + tty_kref_put(tty); + } } } @@ -604,10 +623,8 @@ BT_DBG("dlc %p dev %p v24_sig 0x%02x", dlc, dev, v24_sig); - if ((dev->modem_status & TIOCM_CD) && !(v24_sig & RFCOMM_V24_DV)) { - if (dev->port.tty && !C_CLOCAL(dev->port.tty)) - tty_hangup(dev->port.tty); - } + if ((dev->modem_status & TIOCM_CD) && !(v24_sig & RFCOMM_V24_DV)) + tty_port_tty_hangup(&dev->port, true); dev->modem_status = ((v24_sig & RFCOMM_V24_RTC) ? (TIOCM_DSR | TIOCM_DTR) : 0) | @@ -638,124 +655,92 @@ tty_flip_buffer_push(&dev->port); } -static int rfcomm_tty_open(struct tty_struct *tty, struct file *filp) +/* do the reverse of install, clearing the tty fields and releasing the + * reference to tty_port + */ +static void rfcomm_tty_cleanup(struct tty_struct *tty) { - DECLARE_WAITQUEUE(wait, current); - struct rfcomm_dev *dev; - struct rfcomm_dlc *dlc; - unsigned long flags; - int err, id; + struct rfcomm_dev *dev = tty->driver_data; - id = tty->index; + clear_bit(RFCOMM_TTY_ATTACHED, &dev->flags); - BT_DBG("tty %p id %d", tty, id); + rfcomm_dlc_lock(dev->dlc); + tty->driver_data = NULL; + rfcomm_dlc_unlock(dev->dlc); - /* We don't leak this refcount. For reasons which are not entirely - clear, the TTY layer will call our ->close() method even if the - open fails. We decrease the refcount there, and decreasing it - here too would cause breakage. */ - dev = rfcomm_dev_get(id); - if (!dev) - return -ENODEV; + /* + * purge the dlc->tx_queue to avoid circular dependencies + * between dev and dlc + */ + skb_queue_purge(&dev->dlc->tx_queue); - BT_DBG("dev %p dst %pMR channel %d opened %d", dev, &dev->dst, - dev->channel, dev->port.count); + tty_port_put(&dev->port); +} - spin_lock_irqsave(&dev->port.lock, flags); - if (++dev->port.count > 1) { - spin_unlock_irqrestore(&dev->port.lock, flags); - return 0; - } - spin_unlock_irqrestore(&dev->port.lock, flags); +/* we acquire the tty_port reference since it's here the tty is first used + * by setting the termios. We also populate the driver_data field and install + * the tty port + */ +static int rfcomm_tty_install(struct tty_driver *driver, struct tty_struct *tty) +{ + struct rfcomm_dev *dev; + struct rfcomm_dlc *dlc; + int err; + + dev = rfcomm_dev_get(tty->index); + if (!dev) + return -ENODEV; dlc = dev->dlc; /* Attach TTY and open DLC */ - rfcomm_dlc_lock(dlc); tty->driver_data = dev; - dev->port.tty = tty; rfcomm_dlc_unlock(dlc); set_bit(RFCOMM_TTY_ATTACHED, &dev->flags); - err = rfcomm_dlc_open(dlc, &dev->src, &dev->dst, dev->channel); - if (err < 0) - return err; + /* install the tty_port */ + err = tty_port_install(&dev->port, driver, tty); + if (err) + rfcomm_tty_cleanup(tty); - /* Wait for DLC to connect */ - add_wait_queue(&dev->wait, &wait); - while (1) { - set_current_state(TASK_INTERRUPTIBLE); + return err; +} - if (dlc->state == BT_CLOSED) { - err = -dev->err; - break; - } +static int rfcomm_tty_open(struct tty_struct *tty, struct file *filp) +{ + struct rfcomm_dev *dev = tty->driver_data; + int err; - if (dlc->state == BT_CONNECTED) - break; + BT_DBG("tty %p id %d", tty, tty->index); - if (signal_pending(current)) { - err = -EINTR; - break; - } - - tty_unlock(tty); - schedule(); - tty_lock(tty); - } - set_current_state(TASK_RUNNING); - remove_wait_queue(&dev->wait, &wait); + BT_DBG("dev %p dst %pMR channel %d opened %d", dev, &dev->dst, + dev->channel, dev->port.count); - if (err == 0) - device_move(dev->tty_dev, rfcomm_get_device(dev), - DPM_ORDER_DEV_AFTER_PARENT); + err = tty_port_open(&dev->port, tty, filp); + if (err) + return err; + /* + * FIXME: rfcomm should use proper flow control for + * received data. This hack will be unnecessary and can + * be removed when that's implemented + */ rfcomm_tty_copy_pending(dev); rfcomm_dlc_unthrottle(dev->dlc); - return err; + return 0; } static void rfcomm_tty_close(struct tty_struct *tty, struct file *filp) { struct rfcomm_dev *dev = (struct rfcomm_dev *) tty->driver_data; - unsigned long flags; - - if (!dev) - return; BT_DBG("tty %p dev %p dlc %p opened %d", tty, dev, dev->dlc, dev->port.count); - spin_lock_irqsave(&dev->port.lock, flags); - if (!--dev->port.count) { - spin_unlock_irqrestore(&dev->port.lock, flags); - if (dev->tty_dev->parent) - device_move(dev->tty_dev, NULL, DPM_ORDER_DEV_LAST); - - /* Close DLC and dettach TTY */ - rfcomm_dlc_close(dev->dlc, 0); - - clear_bit(RFCOMM_TTY_ATTACHED, &dev->flags); - - rfcomm_dlc_lock(dev->dlc); - tty->driver_data = NULL; - dev->port.tty = NULL; - rfcomm_dlc_unlock(dev->dlc); - - if (test_bit(RFCOMM_TTY_RELEASED, &dev->flags)) { - spin_lock(&rfcomm_dev_lock); - list_del_init(&dev->list); - spin_unlock(&rfcomm_dev_lock); - - tty_port_put(&dev->port); - } - } else - spin_unlock_irqrestore(&dev->port.lock, flags); - - tty_port_put(&dev->port); + tty_port_close(&dev->port, tty, filp); } static int rfcomm_tty_write(struct tty_struct *tty, const unsigned char *buf, int count) @@ -1055,17 +1040,11 @@ BT_DBG("tty %p dev %p", tty, dev); - if (!dev) - return; - - rfcomm_tty_flush_buffer(tty); + tty_port_hangup(&dev->port); - if (test_bit(RFCOMM_RELEASE_ONHUP, &dev->flags)) { - if (rfcomm_dev_get(dev->id) == NULL) - return; - rfcomm_dev_del(dev); + if (test_bit(RFCOMM_RELEASE_ONHUP, &dev->flags) && + !test_and_set_bit(RFCOMM_TTY_RELEASED, &dev->flags)) tty_port_put(&dev->port); - } } static int rfcomm_tty_tiocmget(struct tty_struct *tty) @@ -1128,6 +1107,8 @@ .wait_until_sent = rfcomm_tty_wait_until_sent, .tiocmget = rfcomm_tty_tiocmget, .tiocmset = rfcomm_tty_tiocmset, + .install = rfcomm_tty_install, + .cleanup = rfcomm_tty_cleanup, }; int __init rfcomm_init_ttys(void) @@ -1146,7 +1127,7 @@ rfcomm_tty_driver->subtype = SERIAL_TYPE_NORMAL; rfcomm_tty_driver->flags = TTY_DRIVER_REAL_RAW | TTY_DRIVER_DYNAMIC_DEV; rfcomm_tty_driver->init_termios = tty_std_termios; - rfcomm_tty_driver->init_termios.c_cflag = B9600 | CS8 | CREAD | HUPCL | CLOCAL; + rfcomm_tty_driver->init_termios.c_cflag = B9600 | CS8 | CREAD | HUPCL; rfcomm_tty_driver->init_termios.c_lflag &= ~ICANON; tty_set_operations(rfcomm_tty_driver, &rfcomm_ops); --- linux-3.11.0.orig/net/sched/sch_netem.c +++ linux-3.11.0/net/sched/sch_netem.c @@ -358,6 +358,21 @@ return PSCHED_NS2TICKS(ticks); } +static void tfifo_reset(struct Qdisc *sch) +{ + struct netem_sched_data *q = qdisc_priv(sch); + struct rb_node *p; + + while ((p = rb_first(&q->t_root))) { + struct sk_buff *skb = netem_rb_to_skb(p); + + rb_erase(p, &q->t_root); + skb->next = NULL; + skb->prev = NULL; + kfree_skb(skb); + } +} + static void tfifo_enqueue(struct sk_buff *nskb, struct Qdisc *sch) { struct netem_sched_data *q = qdisc_priv(sch); @@ -523,6 +538,7 @@ skb->next = NULL; skb->prev = NULL; len = qdisc_pkt_len(skb); + sch->qstats.backlog -= len; kfree_skb(skb); } } @@ -612,6 +628,7 @@ struct netem_sched_data *q = qdisc_priv(sch); qdisc_reset_queue(sch); + tfifo_reset(sch); if (q->qdisc) qdisc_reset(q->qdisc); qdisc_watchdog_cancel(&q->watchdog); --- linux-3.11.0.orig/net/sched/sch_htb.c +++ linux-3.11.0/net/sched/sch_htb.c @@ -1495,7 +1495,7 @@ psched_ratecfg_precompute(&cl->ceil, &hopt->ceil); cl->buffer = PSCHED_TICKS2NS(hopt->buffer); - cl->cbuffer = PSCHED_TICKS2NS(hopt->buffer); + cl->cbuffer = PSCHED_TICKS2NS(hopt->cbuffer); sch_tree_unlock(sch); --- linux-3.11.0.orig/net/batman-adv/soft-interface.c +++ linux-3.11.0/net/batman-adv/soft-interface.c @@ -168,6 +168,7 @@ case ETH_P_8021Q: vhdr = (struct vlan_ethhdr *)skb->data; vid = ntohs(vhdr->h_vlan_TCI) & VLAN_VID_MASK; + vid |= BATADV_VLAN_HAS_TAG; if (vhdr->h_vlan_encapsulated_proto != ethertype) break; @@ -329,6 +330,7 @@ case ETH_P_8021Q: vhdr = (struct vlan_ethhdr *)skb->data; vid = ntohs(vhdr->h_vlan_TCI) & VLAN_VID_MASK; + vid |= BATADV_VLAN_HAS_TAG; if (vhdr->h_vlan_encapsulated_proto != ethertype) break; --- linux-3.11.0.orig/net/batman-adv/network-coding.h +++ linux-3.11.0/net/batman-adv/network-coding.h @@ -22,8 +22,9 @@ #ifdef CONFIG_BATMAN_ADV_NC -int batadv_nc_init(struct batadv_priv *bat_priv); -void batadv_nc_free(struct batadv_priv *bat_priv); +int batadv_nc_init(void); +int batadv_nc_mesh_init(struct batadv_priv *bat_priv); +void batadv_nc_mesh_free(struct batadv_priv *bat_priv); void batadv_nc_update_nc_node(struct batadv_priv *bat_priv, struct batadv_orig_node *orig_node, struct batadv_orig_node *orig_neigh_node, @@ -46,12 +47,17 @@ #else /* ifdef CONFIG_BATMAN_ADV_NC */ -static inline int batadv_nc_init(struct batadv_priv *bat_priv) +static inline int batadv_nc_init(void) { return 0; } -static inline void batadv_nc_free(struct batadv_priv *bat_priv) +static inline int batadv_nc_mesh_init(struct batadv_priv *bat_priv) +{ + return 0; +} + +static inline void batadv_nc_mesh_free(struct batadv_priv *bat_priv) { return; } --- linux-3.11.0.orig/net/batman-adv/main.c +++ linux-3.11.0/net/batman-adv/main.c @@ -61,6 +61,7 @@ batadv_recv_handler_init(); batadv_iv_init(); + batadv_nc_init(); batadv_event_workqueue = create_singlethread_workqueue("bat_events"); @@ -138,7 +139,7 @@ if (ret < 0) goto err; - ret = batadv_nc_init(bat_priv); + ret = batadv_nc_mesh_init(bat_priv); if (ret < 0) goto err; @@ -163,7 +164,7 @@ batadv_vis_quit(bat_priv); batadv_gw_node_purge(bat_priv); - batadv_nc_free(bat_priv); + batadv_nc_mesh_free(bat_priv); batadv_dat_free(bat_priv); batadv_bla_free(bat_priv); --- linux-3.11.0.orig/net/batman-adv/network-coding.c +++ linux-3.11.0/net/batman-adv/network-coding.c @@ -35,6 +35,20 @@ struct batadv_hard_iface *recv_if); /** + * batadv_nc_init - one-time initialization for network coding + */ +int __init batadv_nc_init(void) +{ + int ret; + + /* Register our packet type */ + ret = batadv_recv_handler_register(BATADV_CODED, + batadv_nc_recv_coded_packet); + + return ret; +} + +/** * batadv_nc_start_timer - initialise the nc periodic worker * @bat_priv: the bat priv with all the soft interface information */ @@ -45,10 +59,10 @@ } /** - * batadv_nc_init - initialise coding hash table and start house keeping + * batadv_nc_mesh_init - initialise coding hash table and start house keeping * @bat_priv: the bat priv with all the soft interface information */ -int batadv_nc_init(struct batadv_priv *bat_priv) +int batadv_nc_mesh_init(struct batadv_priv *bat_priv) { bat_priv->nc.timestamp_fwd_flush = jiffies; bat_priv->nc.timestamp_sniffed_purge = jiffies; @@ -70,11 +84,6 @@ batadv_hash_set_lock_class(bat_priv->nc.coding_hash, &batadv_nc_decoding_hash_lock_class_key); - /* Register our packet type */ - if (batadv_recv_handler_register(BATADV_CODED, - batadv_nc_recv_coded_packet) < 0) - goto err; - INIT_DELAYED_WORK(&bat_priv->nc.work, batadv_nc_worker); batadv_nc_start_timer(bat_priv); @@ -1721,12 +1730,11 @@ } /** - * batadv_nc_free - clean up network coding memory + * batadv_nc_mesh_free - clean up network coding memory * @bat_priv: the bat priv with all the soft interface information */ -void batadv_nc_free(struct batadv_priv *bat_priv) +void batadv_nc_mesh_free(struct batadv_priv *bat_priv) { - batadv_recv_handler_unregister(BATADV_CODED); cancel_delayed_work_sync(&bat_priv->nc.work); batadv_nc_purge_paths(bat_priv, bat_priv->nc.coding_hash, NULL); --- linux-3.11.0.orig/net/ipv4/route.c +++ linux-3.11.0/net/ipv4/route.c @@ -2074,7 +2074,7 @@ RT_SCOPE_LINK); goto make_route; } - if (fl4->saddr) { + if (!fl4->saddr) { if (ipv4_is_multicast(fl4->daddr)) fl4->saddr = inet_select_addr(dev_out, 0, fl4->flowi4_scope); --- linux-3.11.0.orig/net/ipv4/tcp_offload.c +++ linux-3.11.0/net/ipv4/tcp_offload.c @@ -18,6 +18,7 @@ netdev_features_t features) { struct sk_buff *segs = ERR_PTR(-EINVAL); + unsigned int sum_truesize = 0; struct tcphdr *th; unsigned int thlen; unsigned int seq; @@ -102,13 +103,7 @@ if (copy_destructor) { skb->destructor = gso_skb->destructor; skb->sk = gso_skb->sk; - /* {tcp|sock}_wfree() use exact truesize accounting : - * sum(skb->truesize) MUST be exactly be gso_skb->truesize - * So we account mss bytes of 'true size' for each segment. - * The last segment will contain the remaining. - */ - skb->truesize = mss; - gso_skb->truesize -= mss; + sum_truesize += skb->truesize; } skb = skb->next; th = tcp_hdr(skb); @@ -125,7 +120,9 @@ if (copy_destructor) { swap(gso_skb->sk, skb->sk); swap(gso_skb->destructor, skb->destructor); - swap(gso_skb->truesize, skb->truesize); + sum_truesize += skb->truesize; + atomic_add(sum_truesize - gso_skb->truesize, + &skb->sk->sk_wmem_alloc); } delta = htonl(oldlen + (skb_tail_pointer(skb) - --- linux-3.11.0.orig/net/ipv4/inetpeer.c +++ linux-3.11.0/net/ipv4/inetpeer.c @@ -32,8 +32,8 @@ * At the moment of writing this notes identifier of IP packets is generated * to be unpredictable using this code only for packets subjected * (actually or potentially) to defragmentation. I.e. DF packets less than - * PMTU in size uses a constant ID and do not use this code (see - * ip_select_ident() in include/net/ip.h). + * PMTU in size when local fragmentation is disabled use a constant ID and do + * not use this code (see ip_select_ident() in include/net/ip.h). * * Route cache entries hold references to our nodes. * New cache entries get references via lookup by destination IP address in --- linux-3.11.0.orig/net/ipv4/ip_vti.c +++ linux-3.11.0/net/ipv4/ip_vti.c @@ -285,8 +285,17 @@ tunnel = vti_tunnel_lookup(dev_net(skb->dev), iph->saddr, iph->daddr); if (tunnel != NULL) { struct pcpu_tstats *tstats; + u32 oldmark = skb->mark; + int ret; - if (!xfrm4_policy_check(NULL, XFRM_POLICY_IN, skb)) + + /* temporarily mark the skb with the tunnel o_key, to + * only match policies with this mark. + */ + skb->mark = be32_to_cpu(tunnel->parms.o_key); + ret = xfrm4_policy_check(NULL, XFRM_POLICY_IN, skb); + skb->mark = oldmark; + if (!ret) return -1; tstats = this_cpu_ptr(tunnel->dev->tstats); @@ -295,7 +304,6 @@ tstats->rx_bytes += skb->len; u64_stats_update_end(&tstats->syncp); - skb->mark = 0; secpath_reset(skb); skb->dev = tunnel->dev; return 1; @@ -327,7 +335,7 @@ memset(&fl4, 0, sizeof(fl4)); flowi4_init_output(&fl4, tunnel->parms.link, - be32_to_cpu(tunnel->parms.i_key), RT_TOS(tos), + be32_to_cpu(tunnel->parms.o_key), RT_TOS(tos), RT_SCOPE_UNIVERSE, IPPROTO_IPIP, 0, dst, tiph->saddr, 0, 0); --- linux-3.11.0.orig/net/ipv4/tcp_input.c +++ linux-3.11.0/net/ipv4/tcp_input.c @@ -688,6 +688,34 @@ } } +/* Set the sk_pacing_rate to allow proper sizing of TSO packets. + * Note: TCP stack does not yet implement pacing. + * FQ packet scheduler can be used to implement cheap but effective + * TCP pacing, to smooth the burst on large writes when packets + * in flight is significantly lower than cwnd (or rwin) + */ +static void tcp_update_pacing_rate(struct sock *sk) +{ + const struct tcp_sock *tp = tcp_sk(sk); + u64 rate; + + /* set sk_pacing_rate to 200 % of current rate (mss * cwnd / srtt) */ + rate = (u64)tp->mss_cache * 2 * (HZ << 3); + + rate *= max(tp->snd_cwnd, tp->packets_out); + + /* Correction for small srtt : minimum srtt being 8 (1 jiffy << 3), + * be conservative and assume srtt = 1 (125 us instead of 1.25 ms) + * We probably need usec resolution in the future. + * Note: This also takes care of possible srtt=0 case, + * when tcp_rtt_estimator() was not yet called. + */ + if (tp->srtt > 8 + 2) + do_div(rate, tp->srtt); + + sk->sk_pacing_rate = min_t(u64, rate, ~0U); +} + /* Calculate rto without backoff. This is the second half of Van Jacobson's * routine referred to above. */ @@ -1251,7 +1279,10 @@ tp->lost_cnt_hint -= tcp_skb_pcount(prev); } - TCP_SKB_CB(skb)->tcp_flags |= TCP_SKB_CB(prev)->tcp_flags; + TCP_SKB_CB(prev)->tcp_flags |= TCP_SKB_CB(skb)->tcp_flags; + if (TCP_SKB_CB(skb)->tcp_flags & TCPHDR_FIN) + TCP_SKB_CB(prev)->end_seq++; + if (skb == tcp_highest_sack(sk)) tcp_advance_highest_sack(sk, skb); @@ -3253,7 +3284,7 @@ tcp_init_cwnd_reduction(sk, true); tcp_set_ca_state(sk, TCP_CA_CWR); tcp_end_cwnd_reduction(sk); - tcp_set_ca_state(sk, TCP_CA_Open); + tcp_try_keep_open(sk); NET_INC_STATS_BH(sock_net(sk), LINUX_MIB_TCPLOSSPROBERECOVERY); } @@ -3269,7 +3300,7 @@ u32 ack_seq = TCP_SKB_CB(skb)->seq; u32 ack = TCP_SKB_CB(skb)->ack_seq; bool is_dupack = false; - u32 prior_in_flight; + u32 prior_in_flight, prior_cwnd = tp->snd_cwnd, prior_rtt = tp->srtt; u32 prior_fackets; int prior_packets = tp->packets_out; const int prior_unsacked = tp->packets_out - tp->sacked_out; @@ -3375,6 +3406,8 @@ if (icsk->icsk_pending == ICSK_TIME_RETRANS) tcp_schedule_loss_probe(sk); + if (tp->srtt != prior_rtt || tp->snd_cwnd != prior_cwnd) + tcp_update_pacing_rate(sk); return 1; no_queue: @@ -5671,6 +5704,8 @@ } else tcp_init_metrics(sk); + tcp_update_pacing_rate(sk); + /* Prevent spurious tcp_cwnd_restart() on first data packet */ tp->lsndtime = tcp_time_stamp; --- linux-3.11.0.orig/net/ipv4/ipmr.c +++ linux-3.11.0/net/ipv4/ipmr.c @@ -1658,7 +1658,7 @@ iph->protocol = IPPROTO_IPIP; iph->ihl = 5; iph->tot_len = htons(skb->len); - ip_select_ident(iph, skb_dst(skb), NULL); + ip_select_ident(skb, skb_dst(skb), NULL); ip_send_check(iph); memset(&(IPCB(skb)->opt), 0, sizeof(IPCB(skb)->opt)); --- linux-3.11.0.orig/net/ipv4/sysctl_net_ipv4.c +++ linux-3.11.0/net/ipv4/sysctl_net_ipv4.c @@ -29,6 +29,7 @@ static int zero; static int one = 1; static int four = 4; +static int gso_max_segs = GSO_MAX_SEGS; static int tcp_retr1_max = 255; static int ip_local_port_range_min[] = { 1, 1 }; static int ip_local_port_range_max[] = { 65535, 65535 }; @@ -754,6 +755,15 @@ .extra2 = &four, }, { + .procname = "tcp_min_tso_segs", + .data = &sysctl_tcp_min_tso_segs, + .maxlen = sizeof(int), + .mode = 0644, + .proc_handler = proc_dointvec_minmax, + .extra1 = &zero, + .extra2 = &gso_max_segs, + }, + { .procname = "udp_mem", .data = &sysctl_udp_mem, .maxlen = sizeof(sysctl_udp_mem), --- linux-3.11.0.orig/net/ipv4/ip_tunnel.c +++ linux-3.11.0/net/ipv4/ip_tunnel.c @@ -626,6 +626,7 @@ tunnel->err_count = 0; } + tos = ip_tunnel_ecn_encap(tos, inner_iph, skb); ttl = tnl_params->ttl; if (ttl == 0) { if (skb->protocol == htons(ETH_P_IP)) @@ -644,18 +645,18 @@ max_headroom = LL_RESERVED_SPACE(rt->dst.dev) + sizeof(struct iphdr) + rt->dst.header_len; - if (max_headroom > dev->needed_headroom) { + if (max_headroom > dev->needed_headroom) dev->needed_headroom = max_headroom; - if (skb_cow_head(skb, dev->needed_headroom)) { - dev->stats.tx_dropped++; - dev_kfree_skb(skb); - return; - } + + if (skb_cow_head(skb, dev->needed_headroom)) { + dev->stats.tx_dropped++; + dev_kfree_skb(skb); + return; } err = iptunnel_xmit(dev_net(dev), rt, skb, fl4.saddr, fl4.daddr, protocol, - ip_tunnel_ecn_encap(tos, inner_iph, skb), ttl, df); + tos, ttl, df); iptunnel_xmit_stats(err, &dev->stats, dev->tstats); return; --- linux-3.11.0.orig/net/ipv4/ip_tunnel_core.c +++ linux-3.11.0/net/ipv4/ip_tunnel_core.c @@ -63,7 +63,7 @@ memset(IPCB(skb), 0, sizeof(*IPCB(skb))); /* Push down and install the IP header. */ - __skb_push(skb, sizeof(struct iphdr)); + skb_push(skb, sizeof(struct iphdr)); skb_reset_network_header(skb); iph = ip_hdr(skb); --- linux-3.11.0.orig/net/ipv4/xfrm4_mode_tunnel.c +++ linux-3.11.0/net/ipv4/xfrm4_mode_tunnel.c @@ -117,7 +117,7 @@ top_iph->frag_off = (flags & XFRM_STATE_NOPMTUDISC) ? 0 : (XFRM_MODE_SKB_CB(skb)->frag_off & htons(IP_DF)); - ip_select_ident(top_iph, dst->child, NULL); + ip_select_ident(skb, dst->child, NULL); top_iph->ttl = ip4_dst_hoplimit(dst->child); --- linux-3.11.0.orig/net/ipv4/tcp.c +++ linux-3.11.0/net/ipv4/tcp.c @@ -283,6 +283,8 @@ int sysctl_tcp_fin_timeout __read_mostly = TCP_FIN_TIMEOUT; +int sysctl_tcp_min_tso_segs __read_mostly = 2; + struct percpu_counter tcp_orphan_count; EXPORT_SYMBOL_GPL(tcp_orphan_count); @@ -789,12 +791,28 @@ xmit_size_goal = mss_now; if (large_allowed && sk_can_gso(sk)) { - xmit_size_goal = ((sk->sk_gso_max_size - 1) - - inet_csk(sk)->icsk_af_ops->net_header_len - - inet_csk(sk)->icsk_ext_hdr_len - - tp->tcp_header_len); + u32 gso_size, hlen; + + /* Maybe we should/could use sk->sk_prot->max_header here ? */ + hlen = inet_csk(sk)->icsk_af_ops->net_header_len + + inet_csk(sk)->icsk_ext_hdr_len + + tp->tcp_header_len; + + /* Goal is to send at least one packet per ms, + * not one big TSO packet every 100 ms. + * This preserves ACK clocking and is consistent + * with tcp_tso_should_defer() heuristic. + */ + gso_size = sk->sk_pacing_rate / (2 * MSEC_PER_SEC); + gso_size = max_t(u32, gso_size, + sysctl_tcp_min_tso_segs * mss_now); + + xmit_size_goal = min_t(u32, gso_size, + sk->sk_gso_max_size - 1 - hlen); - /* TSQ : try to have two TSO segments in flight */ + /* TSQ : try to have at least two segments in flight + * (one in NIC TX ring, another in Qdisc) + */ xmit_size_goal = min_t(u32, xmit_size_goal, sysctl_tcp_limit_output_bytes >> 1); @@ -2454,10 +2472,11 @@ case TCP_THIN_DUPACK: if (val < 0 || val > 1) err = -EINVAL; - else + else { tp->thin_dupack = val; if (tp->thin_dupack) tcp_disable_early_retrans(tp); + } break; case TCP_REPAIR: --- linux-3.11.0.orig/net/ipv4/tcp_output.c +++ linux-3.11.0/net/ipv4/tcp_output.c @@ -892,8 +892,7 @@ skb_orphan(skb); skb->sk = sk; - skb->destructor = (sysctl_tcp_limit_output_bytes > 0) ? - tcp_wfree : sock_wfree; + skb->destructor = tcp_wfree; atomic_add(skb->truesize, &sk->sk_wmem_alloc); /* Build TCP header and checksum it. */ @@ -982,6 +981,9 @@ static void tcp_set_skb_tso_segs(const struct sock *sk, struct sk_buff *skb, unsigned int mss_now) { + /* Make sure we own this skb before messing gso_size/gso_segs */ + WARN_ON_ONCE(skb_cloned(skb)); + if (skb->len <= mss_now || !sk_can_gso(sk) || skb->ip_summed == CHECKSUM_NONE) { /* Avoid the costly divide in the normal @@ -1063,9 +1065,7 @@ if (nsize < 0) nsize = 0; - if (skb_cloned(skb) && - skb_is_nonlinear(skb) && - pskb_expand_head(skb, 0, 0, GFP_ATOMIC)) + if (skb_unclone(skb, GFP_ATOMIC)) return -ENOMEM; /* Get a new skb... force flag on. */ @@ -1628,7 +1628,7 @@ /* If a full-sized TSO skb can be sent, do it. */ if (limit >= min_t(unsigned int, sk->sk_gso_max_size, - sk->sk_gso_max_segs * tp->mss_cache)) + tp->xmit_size_goal_segs * tp->mss_cache)) goto send_now; /* Middle in queue won't get any more data, full sendable already? */ @@ -1837,7 +1837,6 @@ while ((skb = tcp_send_head(sk))) { unsigned int limit; - tso_segs = tcp_init_tso_segs(sk, skb, mss_now); BUG_ON(!tso_segs); @@ -1866,13 +1865,20 @@ break; } - /* TSQ : sk_wmem_alloc accounts skb truesize, - * including skb overhead. But thats OK. + /* TCP Small Queues : + * Control number of packets in qdisc/devices to two packets / or ~1 ms. + * This allows for : + * - better RTT estimation and ACK scheduling + * - faster recovery + * - high rates */ - if (atomic_read(&sk->sk_wmem_alloc) >= sysctl_tcp_limit_output_bytes) { + limit = max(skb->truesize, sk->sk_pacing_rate >> 10); + + if (atomic_read(&sk->sk_wmem_alloc) > limit) { set_bit(TSQ_THROTTLED, &tp->tsq_flags); break; } + limit = mss_now; if (tso_segs > 1 && !tcp_urg_mode(tp)) limit = tcp_mss_split_point(sk, skb, mss_now, @@ -2334,6 +2340,8 @@ int oldpcount = tcp_skb_pcount(skb); if (unlikely(oldpcount > 1)) { + if (skb_unclone(skb, GFP_ATOMIC)) + return -ENOMEM; tcp_init_tso_segs(sk, skb, cur_mss); tcp_adjust_pcount(sk, skb, oldpcount - tcp_skb_pcount(skb)); } --- linux-3.11.0.orig/net/ipv4/inet_hashtables.c +++ linux-3.11.0/net/ipv4/inet_hashtables.c @@ -287,7 +287,7 @@ if (unlikely(!INET_TW_MATCH(sk, net, acookie, saddr, daddr, ports, dif))) { - sock_put(sk); + inet_twsk_put(inet_twsk(sk)); goto begintw; } goto out; --- linux-3.11.0.orig/net/ipv4/ip_output.c +++ linux-3.11.0/net/ipv4/ip_output.c @@ -148,7 +148,7 @@ iph->daddr = (opt && opt->opt.srr ? opt->opt.faddr : daddr); iph->saddr = saddr; iph->protocol = sk->sk_protocol; - ip_select_ident(iph, &rt->dst, sk); + ip_select_ident(skb, &rt->dst, sk); if (opt && opt->opt.optlen) { iph->ihl += opt->opt.optlen>>2; @@ -386,7 +386,7 @@ ip_options_build(skb, &inet_opt->opt, inet->inet_daddr, rt, 0); } - ip_select_ident_more(iph, &rt->dst, sk, + ip_select_ident_more(skb, &rt->dst, sk, (skb_shinfo(skb)->gso_segs ?: 1) - 1); skb->priority = sk->sk_priority; @@ -836,7 +836,7 @@ csummode = CHECKSUM_PARTIAL; cork->length += length; - if (((length > mtu) || (skb && skb_is_gso(skb))) && + if (((length > mtu) || (skb && skb_has_frags(skb))) && (sk->sk_protocol == IPPROTO_UDP) && (rt->dst.dev->features & NETIF_F_UFO) && !rt->dst.header_len) { err = ip_ufo_append_data(sk, queue, getfrag, from, length, @@ -1316,7 +1316,7 @@ else ttl = ip_select_ttl(inet, &rt->dst); - iph = (struct iphdr *)skb->data; + iph = ip_hdr(skb); iph->version = 4; iph->ihl = 5; iph->tos = inet->tos; @@ -1324,7 +1324,7 @@ iph->ttl = ttl; iph->protocol = sk->sk_protocol; ip_copy_addrs(iph, fl4); - ip_select_ident(iph, &rt->dst, sk); + ip_select_ident(skb, &rt->dst, sk); if (opt) { iph->ihl += opt->optlen>>2; --- linux-3.11.0.orig/net/ipv4/raw.c +++ linux-3.11.0/net/ipv4/raw.c @@ -387,7 +387,7 @@ iph->check = 0; iph->tot_len = htons(length); if (!iph->id) - ip_select_ident(iph, &rt->dst, NULL); + ip_select_ident(skb, &rt->dst, NULL); iph->check = ip_fast_csum((unsigned char *)iph, iph->ihl); } --- linux-3.11.0.orig/net/ipv4/af_inet.c +++ linux-3.11.0/net/ipv4/af_inet.c @@ -263,10 +263,8 @@ get_random_bytes(&rnd, sizeof(rnd)); } while (rnd == 0); - if (cmpxchg(&inet_ehash_secret, 0, rnd) == 0) { + if (cmpxchg(&inet_ehash_secret, 0, rnd) == 0) get_random_bytes(&ipv6_hash_secret, sizeof(ipv6_hash_secret)); - net_secret_init(); - } } EXPORT_SYMBOL(build_ehash_secret); --- linux-3.11.0.orig/net/ipv4/igmp.c +++ linux-3.11.0/net/ipv4/igmp.c @@ -343,7 +343,7 @@ pip->saddr = fl4.saddr; pip->protocol = IPPROTO_IGMP; pip->tot_len = 0; /* filled in later */ - ip_select_ident(pip, &rt->dst, NULL); + ip_select_ident(skb, &rt->dst, NULL); ((u8 *)&pip[1])[0] = IPOPT_RA; ((u8 *)&pip[1])[1] = 4; ((u8 *)&pip[1])[2] = 0; @@ -687,7 +687,7 @@ iph->daddr = dst; iph->saddr = fl4.saddr; iph->protocol = IPPROTO_IGMP; - ip_select_ident(iph, &rt->dst, NULL); + ip_select_ident(skb, &rt->dst, NULL); ((u8 *)&iph[1])[0] = IPOPT_RA; ((u8 *)&iph[1])[1] = 4; ((u8 *)&iph[1])[2] = 0; @@ -709,7 +709,7 @@ in_dev->mr_gq_running = 0; igmpv3_send_report(in_dev, NULL); - __in_dev_put(in_dev); + in_dev_put(in_dev); } static void igmp_ifc_timer_expire(unsigned long data) @@ -721,7 +721,7 @@ in_dev->mr_ifc_count--; igmp_ifc_start_timer(in_dev, IGMP_Unsolicited_Report_Interval); } - __in_dev_put(in_dev); + in_dev_put(in_dev); } static void igmp_ifc_event(struct in_device *in_dev) --- linux-3.11.0.orig/net/wireless/nl80211.c +++ linux-3.11.0/net/wireless/nl80211.c @@ -2379,7 +2379,7 @@ change = true; } - if (flags && (*flags & NL80211_MNTR_FLAG_ACTIVE) && + if (flags && (*flags & MONITOR_FLAG_ACTIVE) && !(rdev->wiphy.features & NL80211_FEATURE_ACTIVE_MONITOR)) return -EOPNOTSUPP; @@ -2441,7 +2441,7 @@ info->attrs[NL80211_ATTR_MNTR_FLAGS] : NULL, &flags); - if (!err && (flags & NL80211_MNTR_FLAG_ACTIVE) && + if (!err && (flags & MONITOR_FLAG_ACTIVE) && !(rdev->wiphy.features & NL80211_FEATURE_ACTIVE_MONITOR)) return -EOPNOTSUPP; --- linux-3.11.0.orig/net/wireless/radiotap.c +++ linux-3.11.0/net/wireless/radiotap.c @@ -97,6 +97,10 @@ struct ieee80211_radiotap_header *radiotap_header, int max_length, const struct ieee80211_radiotap_vendor_namespaces *vns) { + /* check the radiotap header can actually be present */ + if (max_length < sizeof(struct ieee80211_radiotap_header)) + return -EINVAL; + /* Linux only supports version 0 radiotap format */ if (radiotap_header->it_version) return -EINVAL; @@ -131,7 +135,8 @@ */ if ((unsigned long)iterator->_arg - - (unsigned long)iterator->_rtheader > + (unsigned long)iterator->_rtheader + + sizeof(uint32_t) > (unsigned long)iterator->_max_length) return -EINVAL; } --- linux-3.11.0.orig/net/wireless/ibss.c +++ linux-3.11.0/net/wireless/ibss.c @@ -263,6 +263,8 @@ if (chan->flags & IEEE80211_CHAN_DISABLED) continue; wdev->wext.ibss.chandef.chan = chan; + wdev->wext.ibss.chandef.center_freq1 = + chan->center_freq; break; } @@ -347,6 +349,7 @@ if (chan) { wdev->wext.ibss.chandef.chan = chan; wdev->wext.ibss.chandef.width = NL80211_CHAN_WIDTH_20_NOHT; + wdev->wext.ibss.chandef.center_freq1 = freq; wdev->wext.ibss.channel_fixed = true; } else { /* cfg80211_ibss_wext_join will pick one if needed */ --- linux-3.11.0.orig/net/sunrpc/clnt.c +++ linux-3.11.0/net/sunrpc/clnt.c @@ -1423,9 +1423,9 @@ return; case -ETIMEDOUT: rpc_delay(task, 3*HZ); - case -EKEYEXPIRED: case -EAGAIN: status = -EACCES; + case -EKEYEXPIRED: if (!task->tk_cred_retry) break; task->tk_cred_retry--; --- linux-3.11.0.orig/net/sunrpc/auth_gss/gss_rpc_upcall.c +++ linux-3.11.0/net/sunrpc/auth_gss/gss_rpc_upcall.c @@ -213,6 +213,26 @@ return status; } +static void gssp_free_receive_pages(struct gssx_arg_accept_sec_context *arg) +{ + int i; + + for (i = 0; i < arg->npages && arg->pages[i]; i++) + __free_page(arg->pages[i]); +} + +static int gssp_alloc_receive_pages(struct gssx_arg_accept_sec_context *arg) +{ + arg->npages = DIV_ROUND_UP(NGROUPS_MAX * 4, PAGE_SIZE); + arg->pages = kzalloc(arg->npages * sizeof(struct page *), GFP_KERNEL); + /* + * XXX: actual pages are allocated by xdr layer in + * xdr_partial_copy_from_skb. + */ + if (!arg->pages) + return -ENOMEM; + return 0; +} /* * Public functions @@ -261,10 +281,16 @@ arg.context_handle = &ctxh; res.output_token->len = GSSX_max_output_token_sz; + ret = gssp_alloc_receive_pages(&arg); + if (ret) + return ret; + /* use nfs/ for targ_name ? */ ret = gssp_call(net, &msg); + gssp_free_receive_pages(&arg); + /* we need to fetch all data even in case of error so * that we can free special strctures is they have been allocated */ data->major_status = res.status.major_status; --- linux-3.11.0.orig/net/sunrpc/auth_gss/gss_rpc_xdr.h +++ linux-3.11.0/net/sunrpc/auth_gss/gss_rpc_xdr.h @@ -147,6 +147,8 @@ struct gssx_cb *input_cb; u32 ret_deleg_cred; struct gssx_option_array options; + struct page **pages; + unsigned int npages; }; struct gssx_res_accept_sec_context { @@ -240,7 +242,8 @@ 2 * GSSX_max_princ_sz + \ 8 + 8 + 4 + 4 + 4) #define GSSX_max_output_token_sz 1024 -#define GSSX_max_creds_sz (4 + 4 + 4 + NGROUPS_MAX * 4) +/* grouplist not included; we allocate separate pages for that: */ +#define GSSX_max_creds_sz (4 + 4 + 4 /* + NGROUPS_MAX*4 */) #define GSSX_RES_accept_sec_context_sz (GSSX_default_status_sz + \ GSSX_default_ctx_sz + \ GSSX_max_output_token_sz + \ --- linux-3.11.0.orig/net/sunrpc/auth_gss/gss_rpc_xdr.c +++ linux-3.11.0/net/sunrpc/auth_gss/gss_rpc_xdr.c @@ -166,14 +166,15 @@ return 0; } -static int get_s32(void **p, void *max, s32 *res) +static int get_host_u32(struct xdr_stream *xdr, u32 *res) { - void *base = *p; - void *next = (void *)((char *)base + sizeof(s32)); - if (unlikely(next > max || next < base)) + __be32 *p; + + p = xdr_inline_decode(xdr, 4); + if (!p) return -EINVAL; - memcpy(res, base, sizeof(s32)); - *p = next; + /* Contents of linux creds are all host-endian: */ + memcpy(res, p, sizeof(u32)); return 0; } @@ -182,9 +183,9 @@ { u32 length; __be32 *p; - void *q, *end; - s32 tmp; - int N, i, err; + u32 tmp; + u32 N; + int i, err; p = xdr_inline_decode(xdr, 4); if (unlikely(p == NULL)) @@ -192,33 +193,28 @@ length = be32_to_cpup(p); - /* FIXME: we do not want to use the scratch buffer for this one - * may need to use functions that allows us to access an io vector - * directly */ - p = xdr_inline_decode(xdr, length); - if (unlikely(p == NULL)) + if (length > (3 + NGROUPS_MAX) * sizeof(u32)) return -ENOSPC; - q = p; - end = q + length; - /* uid */ - err = get_s32(&q, end, &tmp); + err = get_host_u32(xdr, &tmp); if (err) return err; creds->cr_uid = make_kuid(&init_user_ns, tmp); /* gid */ - err = get_s32(&q, end, &tmp); + err = get_host_u32(xdr, &tmp); if (err) return err; creds->cr_gid = make_kgid(&init_user_ns, tmp); /* number of additional gid's */ - err = get_s32(&q, end, &tmp); + err = get_host_u32(xdr, &tmp); if (err) return err; N = tmp; + if ((3 + N) * sizeof(u32) != length) + return -EINVAL; creds->cr_group_info = groups_alloc(N); if (creds->cr_group_info == NULL) return -ENOMEM; @@ -226,7 +222,7 @@ /* gid's */ for (i = 0; i < N; i++) { kgid_t kgid; - err = get_s32(&q, end, &tmp); + err = get_host_u32(xdr, &tmp); if (err) goto out_free_groups; err = -EINVAL; @@ -784,6 +780,9 @@ /* arg->options */ err = dummy_enc_opt_array(xdr, &arg->options); + xdr_inline_pages(&req->rq_rcv_buf, + PAGE_SIZE/2 /* pretty arbitrary */, + arg->pages, 0 /* page base */, arg->npages * PAGE_SIZE); done: if (err) dprintk("RPC: gssx_enc_accept_sec_context: %d\n", err); --- linux-3.11.0.orig/net/rds/ib_send.c +++ linux-3.11.0/net/rds/ib_send.c @@ -544,7 +544,7 @@ int flow_controlled = 0; int nr_sig = 0; - BUG_ON(off % RDS_FRAG_SIZE); + BUG_ON(!conn->c_loopback && off % RDS_FRAG_SIZE); BUG_ON(hdr_off != 0 && hdr_off != sizeof(struct rds_header)); /* Do not send cong updates to IB loopback */ --- linux-3.11.0.orig/net/mac80211/mlme.c +++ linux-3.11.0/net/mac80211/mlme.c @@ -2851,14 +2851,6 @@ ieee80211_rx_bss_put(local, bss); sdata->vif.bss_conf.beacon_rate = bss->beacon_rate; } - - if (!sdata->u.mgd.associated || - !ether_addr_equal(mgmt->bssid, sdata->u.mgd.associated->bssid)) - return; - - ieee80211_sta_process_chanswitch(sdata, rx_status->mactime, - elems, true); - } @@ -3147,6 +3139,9 @@ ieee80211_rx_bss_info(sdata, mgmt, len, rx_status, &elems); + ieee80211_sta_process_chanswitch(sdata, rx_status->mactime, + &elems, true); + if (ieee80211_sta_wmm_params(local, sdata, elems.wmm_param, elems.wmm_param_len)) changed |= BSS_CHANGED_QOS; --- linux-3.11.0.orig/net/mac80211/rx.c +++ linux-3.11.0/net/mac80211/rx.c @@ -3014,6 +3014,9 @@ case NL80211_IFTYPE_ADHOC: if (!bssid) return 0; + if (ether_addr_equal(sdata->vif.addr, hdr->addr2) || + ether_addr_equal(sdata->u.ibss.bssid, hdr->addr2)) + return 0; if (ieee80211_is_beacon(hdr->frame_control)) { return 1; } else if (!ieee80211_bssid_match(bssid, sdata->u.ibss.bssid)) { --- linux-3.11.0.orig/net/mac80211/tx.c +++ linux-3.11.0/net/mac80211/tx.c @@ -1101,7 +1101,8 @@ tx->sta = rcu_dereference(sdata->u.vlan.sta); if (!tx->sta && sdata->dev->ieee80211_ptr->use_4addr) return TX_DROP; - } else if (info->flags & IEEE80211_TX_CTL_INJECTED || + } else if (info->flags & (IEEE80211_TX_CTL_INJECTED | + IEEE80211_TX_INTFL_NL80211_FRAME_TX) || tx->sdata->control_port_protocol == tx->skb->protocol) { tx->sta = sta_info_get_bss(sdata, hdr->addr1); } --- linux-3.11.0.orig/net/mac80211/status.c +++ linux-3.11.0/net/mac80211/status.c @@ -180,6 +180,9 @@ struct ieee80211_local *local = sta->local; struct ieee80211_sub_if_data *sdata = sta->sdata; + if (local->hw.flags & IEEE80211_HW_REPORTS_TX_ACK_STATUS) + sta->last_rx = jiffies; + if (ieee80211_is_data_qos(mgmt->frame_control)) { struct ieee80211_hdr *hdr = (void *) skb->data; u8 *qc = ieee80211_get_qos_ctl(hdr); --- linux-3.11.0.orig/net/mac80211/scan.c +++ linux-3.11.0/net/mac80211/scan.c @@ -211,6 +211,9 @@ enum ieee80211_band band; int i, ielen, n_chans; + if (test_bit(SCAN_HW_CANCELLED, &local->scanning)) + return false; + do { if (local->hw_scan_band == IEEE80211_NUM_BANDS) return false; @@ -887,7 +890,23 @@ if (!local->scan_req) goto out; + /* + * We have a scan running and the driver already reported completion, + * but the worker hasn't run yet or is stuck on the mutex - mark it as + * cancelled. + */ + if (test_bit(SCAN_HW_SCANNING, &local->scanning) && + test_bit(SCAN_COMPLETED, &local->scanning)) { + set_bit(SCAN_HW_CANCELLED, &local->scanning); + goto out; + } + if (test_bit(SCAN_HW_SCANNING, &local->scanning)) { + /* + * Make sure that __ieee80211_scan_completed doesn't trigger a + * scan on another band. + */ + set_bit(SCAN_HW_CANCELLED, &local->scanning); if (local->ops->cancel_hw_scan) drv_cancel_hw_scan(local, rcu_dereference_protected(local->scan_sdata, --- linux-3.11.0.orig/net/mac80211/cfg.c +++ linux-3.11.0/net/mac80211/cfg.c @@ -3334,7 +3334,7 @@ return -EINVAL; } band = chanctx_conf->def.chan->band; - sta = sta_info_get(sdata, peer); + sta = sta_info_get_bss(sdata, peer); if (sta) { qos = test_sta_flag(sta, WLAN_STA_WME); } else { --- linux-3.11.0.orig/net/mac80211/util.c +++ linux-3.11.0/net/mac80211/util.c @@ -2155,6 +2155,10 @@ } rate = cfg80211_calculate_bitrate(&ri); + if (WARN_ONCE(!rate, + "Invalid bitrate: flags=0x%x, idx=%d, vht_nss=%d\n", + status->flag, status->rate_idx, status->vht_nss)) + return 0; /* rewind from end of MPDU */ if (status->flag & RX_FLAG_MACTIME_END) --- linux-3.11.0.orig/net/mac80211/ieee80211_i.h +++ linux-3.11.0/net/mac80211/ieee80211_i.h @@ -858,6 +858,8 @@ * that the scan completed. * @SCAN_ABORTED: Set for our scan work function when the driver reported * a scan complete for an aborted scan. + * @SCAN_HW_CANCELLED: Set for our scan work function when the scan is being + * cancelled. */ enum { SCAN_SW_SCANNING, @@ -865,6 +867,7 @@ SCAN_ONCHANNEL_SCANNING, SCAN_COMPLETED, SCAN_ABORTED, + SCAN_HW_CANCELLED, }; /** --- linux-3.11.0.orig/net/bridge/br_mdb.c +++ linux-3.11.0/net/bridge/br_mdb.c @@ -451,7 +451,7 @@ call_rcu_bh(&p->rcu, br_multicast_free_pg); err = 0; - if (!mp->ports && !mp->mglist && mp->timer_armed && + if (!mp->ports && !mp->mglist && netif_running(br->dev)) mod_timer(&mp->timer, jiffies); break; --- linux-3.11.0.orig/net/bridge/br_multicast.c +++ linux-3.11.0/net/bridge/br_multicast.c @@ -271,7 +271,7 @@ del_timer(&p->timer); call_rcu_bh(&p->rcu, br_multicast_free_pg); - if (!mp->ports && !mp->mglist && mp->timer_armed && + if (!mp->ports && !mp->mglist && netif_running(br->dev)) mod_timer(&mp->timer, jiffies); @@ -619,7 +619,6 @@ mp->br = br; mp->addr = *group; - setup_timer(&mp->timer, br_multicast_group_expired, (unsigned long)mp); @@ -659,6 +658,7 @@ struct net_bridge_mdb_entry *mp; struct net_bridge_port_group *p; struct net_bridge_port_group __rcu **pp; + unsigned long now = jiffies; int err; spin_lock(&br->multicast_lock); @@ -673,6 +673,7 @@ if (!port) { mp->mglist = true; + mod_timer(&mp->timer, now + br->multicast_membership_interval); goto out; } @@ -680,7 +681,7 @@ (p = mlock_dereference(*pp, br)) != NULL; pp = &p->next) { if (p->port == port) - goto out; + goto found; if ((unsigned long)p->port < (unsigned long)port) break; } @@ -691,6 +692,8 @@ rcu_assign_pointer(*pp, p); br_mdb_notify(br->dev, port, group, RTM_NEWMDB); +found: + mod_timer(&p->timer, now + br->multicast_membership_interval); out: err = 0; @@ -1190,9 +1193,6 @@ if (!mp) goto out; - mod_timer(&mp->timer, now + br->multicast_membership_interval); - mp->timer_armed = true; - max_delay *= br->multicast_last_member_count; if (mp->mglist && @@ -1269,9 +1269,6 @@ if (!mp) goto out; - mod_timer(&mp->timer, now + br->multicast_membership_interval); - mp->timer_armed = true; - max_delay *= br->multicast_last_member_count; if (mp->mglist && (timer_pending(&mp->timer) ? @@ -1357,7 +1354,7 @@ call_rcu_bh(&p->rcu, br_multicast_free_pg); br_mdb_notify(br->dev, port, group, RTM_DELMDB); - if (!mp->ports && !mp->mglist && mp->timer_armed && + if (!mp->ports && !mp->mglist && netif_running(br->dev)) mod_timer(&mp->timer, jiffies); } @@ -1369,12 +1366,30 @@ br->multicast_last_member_interval; if (!port) { - if (mp->mglist && mp->timer_armed && + if (mp->mglist && (timer_pending(&mp->timer) ? time_after(mp->timer.expires, time) : try_to_del_timer_sync(&mp->timer) >= 0)) { mod_timer(&mp->timer, time); } + + goto out; + } + + for (p = mlock_dereference(mp->ports, br); + p != NULL; + p = mlock_dereference(p->next, br)) { + if (p->port != port) + continue; + + if (!hlist_unhashed(&p->mglist) && + (timer_pending(&p->timer) ? + time_after(p->timer.expires, time) : + try_to_del_timer_sync(&p->timer) >= 0)) { + mod_timer(&p->timer, time); + } + + break; } out: spin_unlock(&br->multicast_lock); @@ -1791,7 +1806,6 @@ hlist_for_each_entry_safe(mp, n, &mdb->mhash[i], hlist[ver]) { del_timer(&mp->timer); - mp->timer_armed = false; call_rcu_bh(&mp->rcu, br_multicast_free_group); } } --- linux-3.11.0.orig/net/bridge/br_stp_if.c +++ linux-3.11.0/net/bridge/br_stp_if.c @@ -129,6 +129,14 @@ char *envp[] = { NULL }; r = call_usermodehelper(BR_STP_PROG, argv, envp, UMH_WAIT_PROC); + + spin_lock_bh(&br->lock); + + if (br->bridge_forward_delay < BR_MIN_FORWARD_DELAY) + __br_set_forward_delay(br, BR_MIN_FORWARD_DELAY); + else if (br->bridge_forward_delay > BR_MAX_FORWARD_DELAY) + __br_set_forward_delay(br, BR_MAX_FORWARD_DELAY); + if (r == 0) { br->stp_enabled = BR_USER_STP; br_debug(br, "userspace STP started\n"); @@ -137,10 +145,10 @@ br_debug(br, "using kernel STP\n"); /* To start timers on any ports left in blocking */ - spin_lock_bh(&br->lock); br_port_state_selection(br); - spin_unlock_bh(&br->lock); } + + spin_unlock_bh(&br->lock); } static void br_stp_stop(struct net_bridge *br) --- linux-3.11.0.orig/net/bridge/br_netlink.c +++ linux-3.11.0/net/bridge/br_netlink.c @@ -207,7 +207,7 @@ struct net_device *dev, u32 filter_mask) { int err = 0; - struct net_bridge_port *port = br_port_get_rcu(dev); + struct net_bridge_port *port = br_port_get_rtnl(dev); /* not a bridge port and */ if (!port && !(filter_mask & RTEXT_FILTER_BRVLAN)) @@ -451,7 +451,7 @@ struct net_port_vlans *pv; if (br_port_exists(dev)) - pv = nbp_get_vlan_info(br_port_get_rcu(dev)); + pv = nbp_get_vlan_info(br_port_get_rtnl(dev)); else if (dev->priv_flags & IFF_EBRIDGE) pv = br_get_vlan_info((struct net_bridge *)netdev_priv(dev)); else --- linux-3.11.0.orig/net/bridge/br_private.h +++ linux-3.11.0/net/bridge/br_private.h @@ -126,7 +126,6 @@ struct timer_list timer; struct br_ip addr; bool mglist; - bool timer_armed; }; struct net_bridge_mdb_htable @@ -202,13 +201,10 @@ static inline struct net_bridge_port *br_port_get_rcu(const struct net_device *dev) { - struct net_bridge_port *port = - rcu_dereference_rtnl(dev->rx_handler_data); - - return br_port_exists(dev) ? port : NULL; + return rcu_dereference(dev->rx_handler_data); } -static inline struct net_bridge_port *br_port_get_rtnl(struct net_device *dev) +static inline struct net_bridge_port *br_port_get_rtnl(const struct net_device *dev) { return br_port_exists(dev) ? rtnl_dereference(dev->rx_handler_data) : NULL; @@ -766,6 +762,7 @@ extern void br_init_port(struct net_bridge_port *p); extern void br_become_designated_port(struct net_bridge_port *p); +extern void __br_set_forward_delay(struct net_bridge *br, unsigned long t); extern int br_set_forward_delay(struct net_bridge *br, unsigned long x); extern int br_set_hello_time(struct net_bridge *br, unsigned long x); extern int br_set_max_age(struct net_bridge *br, unsigned long x); --- linux-3.11.0.orig/net/bridge/br_stp.c +++ linux-3.11.0/net/bridge/br_stp.c @@ -209,7 +209,7 @@ p->designated_age = jiffies - bpdu->message_age; mod_timer(&p->message_age_timer, jiffies - + (p->br->max_age - bpdu->message_age)); + + (bpdu->max_age - bpdu->message_age)); } /* called under bridge lock */ @@ -544,18 +544,27 @@ } +void __br_set_forward_delay(struct net_bridge *br, unsigned long t) +{ + br->bridge_forward_delay = t; + if (br_is_root_bridge(br)) + br->forward_delay = br->bridge_forward_delay; +} + int br_set_forward_delay(struct net_bridge *br, unsigned long val) { unsigned long t = clock_t_to_jiffies(val); + int err = -ERANGE; + spin_lock_bh(&br->lock); if (br->stp_enabled != BR_NO_STP && (t < BR_MIN_FORWARD_DELAY || t > BR_MAX_FORWARD_DELAY)) - return -ERANGE; + goto unlock; - spin_lock_bh(&br->lock); - br->bridge_forward_delay = t; - if (br_is_root_bridge(br)) - br->forward_delay = br->bridge_forward_delay; + __br_set_forward_delay(br, t); + err = 0; + +unlock: spin_unlock_bh(&br->lock); - return 0; + return err; } --- linux-3.11.0.orig/mm/memcontrol.c +++ linux-3.11.0/mm/memcontrol.c @@ -5616,7 +5616,13 @@ const struct mem_cgroup_threshold *_a = a; const struct mem_cgroup_threshold *_b = b; - return _a->threshold - _b->threshold; + if (_a->threshold > _b->threshold) + return 1; + + if (_a->threshold < _b->threshold) + return -1; + + return 0; } static int mem_cgroup_oom_notify_cb(struct mem_cgroup *memcg) --- linux-3.11.0.orig/mm/bounce.c +++ linux-3.11.0/mm/bounce.c @@ -204,6 +204,8 @@ struct bio_vec *to, *from; unsigned i; + if (force) + goto bounce; bio_for_each_segment(from, *bio_orig, i) if (page_to_pfn(from->bv_page) > queue_bounce_pfn(q)) goto bounce; --- linux-3.11.0.orig/mm/vmscan.c +++ linux-3.11.0/mm/vmscan.c @@ -48,6 +48,7 @@ #include #include +#include #include "internal.h" @@ -1060,7 +1061,8 @@ LIST_HEAD(clean_pages); list_for_each_entry_safe(page, next, page_list, lru) { - if (page_is_file_cache(page) && !PageDirty(page)) { + if (page_is_file_cache(page) && !PageDirty(page) && + !isolated_balloon_page(page)) { ClearPageActive(page); list_move(&page->lru, &clean_pages); } --- linux-3.11.0.orig/mm/huge_memory.c +++ linux-3.11.0/mm/huge_memory.c @@ -1290,64 +1290,90 @@ int do_huge_pmd_numa_page(struct mm_struct *mm, struct vm_area_struct *vma, unsigned long addr, pmd_t pmd, pmd_t *pmdp) { + struct anon_vma *anon_vma = NULL; struct page *page; unsigned long haddr = addr & HPAGE_PMD_MASK; + int page_nid = -1, this_nid = numa_node_id(); int target_nid; - int current_nid = -1; - bool migrated; + bool page_locked; + bool migrated = false; spin_lock(&mm->page_table_lock); if (unlikely(!pmd_same(pmd, *pmdp))) goto out_unlock; page = pmd_page(pmd); - get_page(page); - current_nid = page_to_nid(page); + page_nid = page_to_nid(page); count_vm_numa_event(NUMA_HINT_FAULTS); - if (current_nid == numa_node_id()) + if (page_nid == this_nid) count_vm_numa_event(NUMA_HINT_FAULTS_LOCAL); + /* + * Acquire the page lock to serialise THP migrations but avoid dropping + * page_table_lock if at all possible + */ + page_locked = trylock_page(page); target_nid = mpol_misplaced(page, vma, haddr); if (target_nid == -1) { - put_page(page); - goto clear_pmdnuma; + /* If the page was locked, there are no parallel migrations */ + if (page_locked) + goto clear_pmdnuma; + + /* + * Otherwise wait for potential migrations and retry. We do + * relock and check_same as the page may no longer be mapped. + * As the fault is being retried, do not account for it. + */ + spin_unlock(&mm->page_table_lock); + wait_on_page_locked(page); + page_nid = -1; + goto out; } - /* Acquire the page lock to serialise THP migrations */ + /* Page is misplaced, serialise migrations and parallel THP splits */ + get_page(page); spin_unlock(&mm->page_table_lock); - lock_page(page); + if (!page_locked) + lock_page(page); + anon_vma = page_lock_anon_vma_read(page); /* Confirm the PTE did not while locked */ spin_lock(&mm->page_table_lock); if (unlikely(!pmd_same(pmd, *pmdp))) { unlock_page(page); put_page(page); + page_nid = -1; goto out_unlock; } - spin_unlock(&mm->page_table_lock); - /* Migrate the THP to the requested node */ + /* + * Migrate the THP to the requested node, returns with page unlocked + * and pmd_numa cleared. + */ + spin_unlock(&mm->page_table_lock); migrated = migrate_misplaced_transhuge_page(mm, vma, pmdp, pmd, addr, page, target_nid); - if (!migrated) - goto check_same; + if (migrated) + page_nid = target_nid; - task_numa_fault(target_nid, HPAGE_PMD_NR, true); - return 0; - -check_same: - spin_lock(&mm->page_table_lock); - if (unlikely(!pmd_same(pmd, *pmdp))) - goto out_unlock; + goto out; clear_pmdnuma: + BUG_ON(!PageLocked(page)); pmd = pmd_mknonnuma(pmd); set_pmd_at(mm, haddr, pmdp, pmd); VM_BUG_ON(pmd_numa(*pmdp)); update_mmu_cache_pmd(vma, addr, pmdp); + unlock_page(page); out_unlock: spin_unlock(&mm->page_table_lock); - if (current_nid != -1) - task_numa_fault(current_nid, HPAGE_PMD_NR, false); + +out: + if (anon_vma) + page_unlock_anon_vma_read(anon_vma); + + if (page_nid != -1) + task_numa_fault(page_nid, HPAGE_PMD_NR, migrated); + return 0; } @@ -2296,6 +2322,8 @@ goto out; vma = find_vma(mm, address); + if (!vma) + goto out; hstart = (vma->vm_start + ~HPAGE_PMD_MASK) & HPAGE_PMD_MASK; hend = vma->vm_end & HPAGE_PMD_MASK; if (address < hstart || address + HPAGE_PMD_SIZE > hend) @@ -2707,6 +2735,7 @@ mmun_start = haddr; mmun_end = haddr + HPAGE_PMD_SIZE; +again: mmu_notifier_invalidate_range_start(mm, mmun_start, mmun_end); spin_lock(&mm->page_table_lock); if (unlikely(!pmd_trans_huge(*pmd))) { @@ -2729,7 +2758,14 @@ split_huge_page(page); put_page(page); - BUG_ON(pmd_trans_huge(*pmd)); + + /* + * We don't always have down_write of mmap_sem here: a racing + * do_huge_pmd_wp_page() might have copied-on-write to another + * huge page before our split_huge_page() got the anon_vma lock. + */ + if (unlikely(pmd_trans_huge(*pmd))) + goto again; } void split_huge_page_pmd_mm(struct mm_struct *mm, unsigned long address, --- linux-3.11.0.orig/mm/readahead.c +++ linux-3.11.0/mm/readahead.c @@ -189,6 +189,7 @@ list_add(&page->lru, &page_pool); if (page_idx == nr_to_read - lookahead_size) SetPageReadahead(page); + SetPageReadaheadUnused(page); ret++; } --- linux-3.11.0.orig/mm/Kconfig +++ linux-3.11.0/mm/Kconfig @@ -183,7 +183,7 @@ config MEMORY_HOTREMOVE bool "Allow for memory hot remove" select MEMORY_ISOLATION - select HAVE_BOOTMEM_INFO_NODE if X86_64 + select HAVE_BOOTMEM_INFO_NODE if (X86_64 || PPC64) depends on MEMORY_HOTPLUG && ARCH_ENABLE_MEMORY_HOTREMOVE depends on MIGRATION --- linux-3.11.0.orig/mm/pagewalk.c +++ linux-3.11.0/mm/pagewalk.c @@ -242,7 +242,7 @@ if (err) break; pgd++; - } while (addr = next, addr != end); + } while (addr = next, addr < end); return err; } --- linux-3.11.0.orig/mm/memory.c +++ linux-3.11.0/mm/memory.c @@ -861,6 +861,8 @@ */ make_migration_entry_read(&entry); pte = swp_entry_to_pte(entry); + if (pte_swp_soft_dirty(*src_pte)) + pte = pte_swp_mksoft_dirty(pte); set_pte_at(src_mm, addr, src_pte, pte); } } @@ -3359,10 +3361,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)) { page = cow_page; @@ -3530,12 +3537,12 @@ } int numa_migrate_prep(struct page *page, struct vm_area_struct *vma, - unsigned long addr, int current_nid) + unsigned long addr, int page_nid) { get_page(page); count_vm_numa_event(NUMA_HINT_FAULTS); - if (current_nid == numa_node_id()) + if (page_nid == numa_node_id()) count_vm_numa_event(NUMA_HINT_FAULTS_LOCAL); return mpol_misplaced(page, vma, addr); @@ -3546,7 +3553,7 @@ { struct page *page = NULL; spinlock_t *ptl; - int current_nid = -1; + int page_nid = -1; int target_nid; bool migrated = false; @@ -3576,15 +3583,10 @@ return 0; } - current_nid = page_to_nid(page); - target_nid = numa_migrate_prep(page, vma, addr, current_nid); + page_nid = page_to_nid(page); + target_nid = numa_migrate_prep(page, vma, addr, page_nid); pte_unmap_unlock(ptep, ptl); if (target_nid == -1) { - /* - * Account for the fault against the current node if it not - * being replaced regardless of where the page is located. - */ - current_nid = numa_node_id(); put_page(page); goto out; } @@ -3592,11 +3594,11 @@ /* Migrate to the requested node */ migrated = migrate_misplaced_page(page, target_nid); if (migrated) - current_nid = target_nid; + page_nid = target_nid; out: - if (current_nid != -1) - task_numa_fault(current_nid, 1, migrated); + if (page_nid != -1) + task_numa_fault(page_nid, 1, migrated); return 0; } @@ -3611,7 +3613,6 @@ unsigned long offset; spinlock_t *ptl; bool numa = false; - int local_nid = numa_node_id(); spin_lock(&mm->page_table_lock); pmd = *pmdp; @@ -3634,9 +3635,10 @@ for (addr = _addr + offset; addr < _addr + PMD_SIZE; pte++, addr += PAGE_SIZE) { pte_t pteval = *pte; struct page *page; - int curr_nid = local_nid; + int page_nid = -1; int target_nid; - bool migrated; + bool migrated = false; + if (!pte_present(pteval)) continue; if (!pte_numa(pteval)) @@ -3658,25 +3660,19 @@ if (unlikely(page_mapcount(page) != 1)) continue; - /* - * Note that the NUMA fault is later accounted to either - * the node that is currently running or where the page is - * migrated to. - */ - curr_nid = local_nid; - target_nid = numa_migrate_prep(page, vma, addr, - page_to_nid(page)); - if (target_nid == -1) { + page_nid = page_to_nid(page); + target_nid = numa_migrate_prep(page, vma, addr, page_nid); + pte_unmap_unlock(pte, ptl); + if (target_nid != -1) { + migrated = migrate_misplaced_page(page, target_nid); + if (migrated) + page_nid = target_nid; + } else { put_page(page); - continue; } - /* Migrate to the requested node */ - pte_unmap_unlock(pte, ptl); - migrated = migrate_misplaced_page(page, target_nid); - if (migrated) - curr_nid = target_nid; - task_numa_fault(curr_nid, 1, migrated); + if (page_nid != -1) + task_numa_fault(page_nid, 1, migrated); pte = pte_offset_map_lock(mm, pmdp, addr, &ptl); } @@ -4079,6 +4075,7 @@ return len; } +EXPORT_SYMBOL_GPL(generic_access_phys); #endif /* --- linux-3.11.0.orig/mm/mincore.c +++ linux-3.11.0/mm/mincore.c @@ -80,6 +80,8 @@ #endif if (page) { present = PageUptodate(page); + if (present) + present |= (PageReadaheadUnused(page) << 7); page_cache_release(page); } --- linux-3.11.0.orig/mm/zswap.c +++ linux-3.11.0/mm/zswap.c @@ -816,6 +816,10 @@ } tree->rbroot = RB_ROOT; spin_unlock(&tree->lock); + + zbud_destroy_pool(tree->pool); + kfree(tree); + zswap_trees[type] = NULL; } static struct zbud_ops zswap_zbud_ops = { --- linux-3.11.0.orig/mm/page-writeback.c +++ linux-3.11.0/mm/page-writeback.c @@ -1104,11 +1104,11 @@ return 1; } -static long bdi_max_pause(struct backing_dev_info *bdi, - unsigned long bdi_dirty) +static unsigned long bdi_max_pause(struct backing_dev_info *bdi, + unsigned long bdi_dirty) { - long bw = bdi->avg_write_bandwidth; - long t; + unsigned long bw = bdi->avg_write_bandwidth; + unsigned long t; /* * Limit pause time for small memory systems. If sleeping for too long @@ -1120,7 +1120,7 @@ t = bdi_dirty / (1 + bw / roundup_pow_of_two(1 + HZ / 8)); t++; - return min_t(long, t, MAX_PAUSE); + return min_t(unsigned long, t, MAX_PAUSE); } static long bdi_min_pause(struct backing_dev_info *bdi, --- linux-3.11.0.orig/mm/swap.c +++ linux-3.11.0/mm/swap.c @@ -31,6 +31,7 @@ #include #include #include +#include #include "internal.h" @@ -81,6 +82,19 @@ static void put_compound_page(struct page *page) { + /* + * hugetlbfs pages cannot be split from under us. If this is a + * hugetlbfs page, check refcount on head page and release the page if + * the refcount becomes zero. + */ + if (PageHuge(page)) { + page = compound_head(page); + if (put_page_testzero(page)) + __put_compound_page(page); + + return; + } + if (unlikely(PageTail(page))) { /* __split_huge_page_refcount can run under us */ struct page *page_head = compound_trans_head(page); @@ -184,38 +198,51 @@ * proper PT lock that already serializes against * split_huge_page(). */ - unsigned long flags; bool got = false; - struct page *page_head = compound_trans_head(page); + struct page *page_head; - if (likely(page != page_head && get_page_unless_zero(page_head))) { + /* + * If this is a hugetlbfs page it cannot be split under us. Simply + * increment refcount for the head page. + */ + if (PageHuge(page)) { + page_head = compound_head(page); + atomic_inc(&page_head->_count); + got = true; + } else { + unsigned long flags; + + page_head = compound_trans_head(page); + if (likely(page != page_head && + get_page_unless_zero(page_head))) { + + /* Ref to put_compound_page() comment. */ + if (PageSlab(page_head)) { + if (likely(PageTail(page))) { + __get_page_tail_foll(page, false); + return true; + } else { + put_page(page_head); + return false; + } + } - /* Ref to put_compound_page() comment. */ - if (PageSlab(page_head)) { + /* + * page_head wasn't a dangling pointer but it + * may not be a head page anymore by the time + * we obtain the lock. That is ok as long as it + * can't be freed from under us. + */ + flags = compound_lock_irqsave(page_head); + /* here __split_huge_page_refcount won't run anymore */ if (likely(PageTail(page))) { __get_page_tail_foll(page, false); - return true; - } else { - put_page(page_head); - return false; + got = true; } + compound_unlock_irqrestore(page_head, flags); + if (unlikely(!got)) + put_page(page_head); } - - /* - * page_head wasn't a dangling pointer but it - * may not be a head page anymore by the time - * we obtain the lock. That is ok as long as it - * can't be freed from under us. - */ - flags = compound_lock_irqsave(page_head); - /* here __split_huge_page_refcount won't run anymore */ - if (likely(PageTail(page))) { - __get_page_tail_foll(page, false); - got = true; - } - compound_unlock_irqrestore(page_head, flags); - if (unlikely(!got)) - put_page(page_head); } return got; } --- linux-3.11.0.orig/mm/filemap.c +++ linux-3.11.0/mm/filemap.c @@ -1322,6 +1322,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-3.11.0.orig/mm/mprotect.c +++ linux-3.11.0/mm/mprotect.c @@ -94,13 +94,16 @@ swp_entry_t entry = pte_to_swp_entry(oldpte); if (is_write_migration_entry(entry)) { + pte_t newpte; /* * A protection check is difficult so * just be safe and disable write */ make_migration_entry_read(&entry); - set_pte_at(mm, addr, pte, - swp_entry_to_pte(entry)); + newpte = swp_entry_to_pte(entry); + if (pte_swp_soft_dirty(oldpte)) + newpte = pte_swp_mksoft_dirty(newpte); + set_pte_at(mm, addr, pte, newpte); } pages++; } @@ -145,7 +148,7 @@ split_huge_page_pmd(vma, addr, pmd); else if (change_huge_pmd(vma, pmd, addr, newprot, prot_numa)) { - pages += HPAGE_PMD_NR; + pages++; continue; } /* fall through */ --- linux-3.11.0.orig/mm/page_alloc.c +++ linux-3.11.0/mm/page_alloc.c @@ -6345,6 +6345,7 @@ #ifdef CONFIG_TRANSPARENT_HUGEPAGE {1UL << PG_compound_lock, "compound_lock" }, #endif + {1UL << PG_readaheadunused, "readaheadunused"}, }; static void dump_page_flags(unsigned long flags) --- linux-3.11.0.orig/mm/migrate.c +++ linux-3.11.0/mm/migrate.c @@ -103,7 +103,7 @@ list_del(&page->lru); dec_zone_page_state(page, NR_ISOLATED_ANON + page_is_file_cache(page)); - if (unlikely(balloon_page_movable(page))) + if (unlikely(isolated_balloon_page(page))) balloon_page_putback(page); else putback_lru_page(page); @@ -157,6 +157,8 @@ get_page(new); pte = pte_mkold(mk_pte(new, vma->vm_page_prot)); + if (pte_swp_soft_dirty(*ptep)) + pte = pte_mksoft_dirty(pte); if (is_write_migration_entry(entry)) pte = pte_mkwrite(pte); #ifdef CONFIG_HUGETLB_PAGE @@ -1710,12 +1712,12 @@ unlock_page(new_page); put_page(new_page); /* Free it */ - unlock_page(page); + /* Retake the callers reference and putback on LRU */ + get_page(page); putback_lru_page(page); - - count_vm_events(PGMIGRATE_FAIL, HPAGE_PMD_NR); - isolated = 0; - goto out; + mod_zone_page_state(page_zone(page), + NR_ISOLATED_ANON + page_lru, -HPAGE_PMD_NR); + goto out_fail; } /* @@ -1732,9 +1734,9 @@ entry = maybe_pmd_mkwrite(pmd_mkdirty(entry), vma); entry = pmd_mkhuge(entry); - page_add_new_anon_rmap(new_page, vma, haddr); - + pmdp_clear_flush(vma, haddr, pmd); set_pmd_at(mm, haddr, pmd, entry); + page_add_new_anon_rmap(new_page, vma, haddr); update_mmu_cache_pmd(vma, address, &entry); page_remove_rmap(page); /* @@ -1753,7 +1755,6 @@ count_vm_events(PGMIGRATE_SUCCESS, HPAGE_PMD_NR); count_vm_numa_events(NUMA_PAGE_MIGRATE, HPAGE_PMD_NR); -out: mod_zone_page_state(page_zone(page), NR_ISOLATED_ANON + page_lru, -HPAGE_PMD_NR); @@ -1762,6 +1763,10 @@ out_fail: count_vm_events(PGMIGRATE_FAIL, HPAGE_PMD_NR); out_dropref: + entry = pmd_mknonnuma(entry); + set_pmd_at(mm, haddr, pmd, entry); + update_mmu_cache_pmd(vma, address, &entry); + unlock_page(page); put_page(page); return 0; --- linux-3.11.0.orig/kernel/softirq.c +++ linux-3.11.0/kernel/softirq.c @@ -328,10 +328,19 @@ static inline void invoke_softirq(void) { - if (!force_irqthreads) - __do_softirq(); - else + if (!force_irqthreads) { + /* + * We can safely execute softirq on the current stack if + * it is the irq stack, because it should be near empty + * at this stage. But we have no way to know if the arch + * calls irq_exit() on the irq stack. So call softirq + * in its own stack to prevent from any overrun on top + * of a potentially deep task stack. + */ + do_softirq(); + } else { wakeup_softirqd(); + } } static inline void tick_irq_exit(void) --- linux-3.11.0.orig/kernel/Makefile +++ linux-3.11.0/kernel/Makefile @@ -79,7 +79,7 @@ obj-$(CONFIG_KGDB) += debug/ obj-$(CONFIG_DETECT_HUNG_TASK) += hung_task.o obj-$(CONFIG_LOCKUP_DETECTOR) += watchdog.o -obj-$(CONFIG_GENERIC_HARDIRQS) += irq/ +obj-y += irq/ obj-$(CONFIG_SECCOMP) += seccomp.o obj-$(CONFIG_RCU_TORTURE_TEST) += rcutorture.o obj-$(CONFIG_TREE_RCU) += rcutree.o --- linux-3.11.0.orig/kernel/kmod.c +++ linux-3.11.0/kernel/kmod.c @@ -571,6 +571,10 @@ DECLARE_COMPLETION_ONSTACK(done); int retval = 0; + if (!sub_info->path) { + call_usermodehelper_freeinfo(sub_info); + return -EINVAL; + } helper_lock(); if (!khelper_wq || usermodehelper_disabled) { retval = -EBUSY; --- linux-3.11.0.orig/kernel/reboot.c +++ linux-3.11.0/kernel/reboot.c @@ -32,7 +32,14 @@ #endif enum reboot_mode reboot_mode DEFAULT_REBOOT_MODE; -int reboot_default; +/* + * This variable is used privately to keep track of whether or not + * reboot_type is still set to its default value (i.e., reboot= hasn't + * been set on the command line). This is needed so that we can + * suppress DMI scanning for reboot quirks. Without it, it's + * impossible to override a faulty reboot quirk without recompiling. + */ +int reboot_default = 1; int reboot_cpu; enum reboot_type reboot_type = BOOT_ACPI; int reboot_force; --- linux-3.11.0.orig/kernel/pid.c +++ linux-3.11.0/kernel/pid.c @@ -265,6 +265,7 @@ struct pid_namespace *ns = upid->ns; hlist_del_rcu(&upid->pid_chain); switch(--ns->nr_hashed) { + case 2: case 1: /* When all that is left in the pid namespace * is the reaper wake up the reaper. The reaper --- linux-3.11.0.orig/kernel/audit.c +++ linux-3.11.0/kernel/audit.c @@ -1117,9 +1117,10 @@ sleep_time = timeout_start + audit_backlog_wait_time - jiffies; - if ((long)sleep_time > 0) + if ((long)sleep_time > 0) { wait_for_auditd(sleep_time); - continue; + continue; + } } if (audit_rate_check() && printk_ratelimit()) printk(KERN_WARNING --- linux-3.11.0.orig/kernel/fork.c +++ linux-3.11.0/kernel/fork.c @@ -1173,10 +1173,11 @@ return ERR_PTR(-EINVAL); /* - * If the new process will be in a different pid namespace - * don't allow the creation of threads. + * If the new process will be in a different pid namespace don't + * allow it to share a thread group or signal handlers with the + * forking task. */ - if ((clone_flags & (CLONE_VM|CLONE_NEWPID)) && + if ((clone_flags & (CLONE_SIGHAND | CLONE_NEWPID)) && (task_active_pid_ns(current) != current->nsproxy->pid_ns_for_children)) return ERR_PTR(-EINVAL); --- linux-3.11.0.orig/kernel/cgroup.c +++ linux-3.11.0/kernel/cgroup.c @@ -2054,7 +2054,7 @@ /* @tsk either already exited or can't exit until the end */ if (tsk->flags & PF_EXITING) - continue; + goto next; /* as per above, nr_threads may decrease, but not increase. */ BUG_ON(i >= group_size); @@ -2062,7 +2062,7 @@ ent.cgrp = task_cgroup_from_root(tsk, root); /* nothing to do if this task is already in the cgroup */ if (ent.cgrp == cgrp) - continue; + goto next; /* * saying GFP_ATOMIC has no effect here because we did prealloc * earlier, but it's good form to communicate our expectations. @@ -2070,7 +2070,7 @@ retval = flex_array_put(group, i, &ent, GFP_ATOMIC); BUG_ON(retval != 0); i++; - + next: if (!threadgroup) break; } while_each_thread(leader, tsk); --- linux-3.11.0.orig/kernel/mutex.c +++ linux-3.11.0/kernel/mutex.c @@ -408,7 +408,7 @@ static __always_inline int __sched __mutex_lock_common(struct mutex *lock, long state, unsigned int subclass, struct lockdep_map *nest_lock, unsigned long ip, - struct ww_acquire_ctx *ww_ctx) + struct ww_acquire_ctx *ww_ctx, const bool use_ww_ctx) { struct task_struct *task = current; struct mutex_waiter waiter; @@ -448,7 +448,7 @@ struct task_struct *owner; struct mspin_node node; - if (!__builtin_constant_p(ww_ctx == NULL) && ww_ctx->acquired > 0) { + if (use_ww_ctx && ww_ctx->acquired > 0) { struct ww_mutex *ww; ww = container_of(lock, struct ww_mutex, base); @@ -478,7 +478,7 @@ if ((atomic_read(&lock->count) == 1) && (atomic_cmpxchg(&lock->count, 1, 0) == 1)) { lock_acquired(&lock->dep_map, ip); - if (!__builtin_constant_p(ww_ctx == NULL)) { + if (use_ww_ctx) { struct ww_mutex *ww; ww = container_of(lock, struct ww_mutex, base); @@ -548,7 +548,7 @@ goto err; } - if (!__builtin_constant_p(ww_ctx == NULL) && ww_ctx->acquired > 0) { + if (use_ww_ctx && ww_ctx->acquired > 0) { ret = __mutex_lock_check_stamp(lock, ww_ctx); if (ret) goto err; @@ -568,7 +568,7 @@ mutex_remove_waiter(lock, &waiter, current_thread_info()); mutex_set_owner(lock); - if (!__builtin_constant_p(ww_ctx == NULL)) { + if (use_ww_ctx) { struct ww_mutex *ww = container_of(lock, struct ww_mutex, base); @@ -618,7 +618,7 @@ { might_sleep(); __mutex_lock_common(lock, TASK_UNINTERRUPTIBLE, - subclass, NULL, _RET_IP_, NULL); + subclass, NULL, _RET_IP_, NULL, 0); } EXPORT_SYMBOL_GPL(mutex_lock_nested); @@ -628,7 +628,7 @@ { might_sleep(); __mutex_lock_common(lock, TASK_UNINTERRUPTIBLE, - 0, nest, _RET_IP_, NULL); + 0, nest, _RET_IP_, NULL, 0); } EXPORT_SYMBOL_GPL(_mutex_lock_nest_lock); @@ -638,7 +638,7 @@ { might_sleep(); return __mutex_lock_common(lock, TASK_KILLABLE, - subclass, NULL, _RET_IP_, NULL); + subclass, NULL, _RET_IP_, NULL, 0); } EXPORT_SYMBOL_GPL(mutex_lock_killable_nested); @@ -647,7 +647,7 @@ { might_sleep(); return __mutex_lock_common(lock, TASK_INTERRUPTIBLE, - subclass, NULL, _RET_IP_, NULL); + subclass, NULL, _RET_IP_, NULL, 0); } EXPORT_SYMBOL_GPL(mutex_lock_interruptible_nested); @@ -685,7 +685,7 @@ might_sleep(); ret = __mutex_lock_common(&lock->base, TASK_UNINTERRUPTIBLE, - 0, &ctx->dep_map, _RET_IP_, ctx); + 0, &ctx->dep_map, _RET_IP_, ctx, 1); if (!ret && ctx->acquired > 1) return ww_mutex_deadlock_injection(lock, ctx); @@ -700,7 +700,7 @@ might_sleep(); ret = __mutex_lock_common(&lock->base, TASK_INTERRUPTIBLE, - 0, &ctx->dep_map, _RET_IP_, ctx); + 0, &ctx->dep_map, _RET_IP_, ctx, 1); if (!ret && ctx->acquired > 1) return ww_mutex_deadlock_injection(lock, ctx); @@ -812,28 +812,28 @@ struct mutex *lock = container_of(lock_count, struct mutex, count); __mutex_lock_common(lock, TASK_UNINTERRUPTIBLE, 0, - NULL, _RET_IP_, NULL); + NULL, _RET_IP_, NULL, 0); } static noinline int __sched __mutex_lock_killable_slowpath(struct mutex *lock) { return __mutex_lock_common(lock, TASK_KILLABLE, 0, - NULL, _RET_IP_, NULL); + NULL, _RET_IP_, NULL, 0); } static noinline int __sched __mutex_lock_interruptible_slowpath(struct mutex *lock) { return __mutex_lock_common(lock, TASK_INTERRUPTIBLE, 0, - NULL, _RET_IP_, NULL); + NULL, _RET_IP_, NULL, 0); } static noinline int __sched __ww_mutex_lock_slowpath(struct ww_mutex *lock, struct ww_acquire_ctx *ctx) { return __mutex_lock_common(&lock->base, TASK_UNINTERRUPTIBLE, 0, - NULL, _RET_IP_, ctx); + NULL, _RET_IP_, ctx, 1); } static noinline int __sched @@ -841,7 +841,7 @@ struct ww_acquire_ctx *ctx) { return __mutex_lock_common(&lock->base, TASK_INTERRUPTIBLE, 0, - NULL, _RET_IP_, ctx); + NULL, _RET_IP_, ctx, 1); } #endif --- linux-3.11.0.orig/kernel/ptrace.c +++ linux-3.11.0/kernel/ptrace.c @@ -257,7 +257,8 @@ if (task->mm) dumpable = get_dumpable(task->mm); rcu_read_lock(); - if (!dumpable && !ptrace_has_cap(__task_cred(task)->user_ns, mode)) { + if (dumpable != SUID_DUMP_USER && + !ptrace_has_cap(__task_cred(task)->user_ns, mode)) { rcu_read_unlock(); return -EPERM; } --- linux-3.11.0.orig/kernel/events/ring_buffer.c +++ linux-3.11.0/kernel/events/ring_buffer.c @@ -87,10 +87,31 @@ goto out; /* - * Publish the known good head. Rely on the full barrier implied - * by atomic_dec_and_test() order the rb->head read and this - * write. + * Since the mmap() consumer (userspace) can run on a different CPU: + * + * kernel user + * + * READ ->data_tail READ ->data_head + * smp_mb() (A) smp_rmb() (C) + * WRITE $data READ $data + * smp_wmb() (B) smp_mb() (D) + * STORE ->data_head WRITE ->data_tail + * + * Where A pairs with D, and B pairs with C. + * + * I don't think A needs to be a full barrier because we won't in fact + * write data until we see the store from userspace. So we simply don't + * issue the data WRITE until we observe it. Be conservative for now. + * + * OTOH, D needs to be a full barrier since it separates the data READ + * from the tail WRITE. + * + * For B a WMB is sufficient since it separates two WRITEs, and for C + * an RMB is sufficient since it separates two READs. + * + * See perf_output_begin(). */ + smp_wmb(); rb->user_page->data_head = head; /* @@ -154,9 +175,11 @@ * Userspace could choose to issue a mb() before updating the * tail pointer. So that all reads will be completed before the * write is issued. + * + * See perf_output_put_handle(). */ tail = ACCESS_ONCE(rb->user_page->data_tail); - smp_rmb(); + smp_mb(); offset = head = local_read(&rb->head); head += size; if (unlikely(!perf_output_space(rb, tail, offset, head))) --- linux-3.11.0.orig/kernel/events/uprobes.c +++ linux-3.11.0/kernel/events/uprobes.c @@ -1682,12 +1682,10 @@ tmp = ri; ri = ri->next; kfree(tmp); + utask->depth--; if (!chained) break; - - utask->depth--; - BUG_ON(!ri); } --- linux-3.11.0.orig/kernel/irq/Makefile +++ linux-3.11.0/kernel/irq/Makefile @@ -1,8 +1,10 @@ - -obj-y := irqdesc.o handle.o manage.o spurious.o resend.o chip.o dummychip.o devres.o +obj-y += devres.o +ifdef CONFIG_GENERIC_HARDIRQS +obj-y += irqdesc.o handle.o manage.o spurious.o resend.o chip.o dummychip.o obj-$(CONFIG_GENERIC_IRQ_CHIP) += generic-chip.o obj-$(CONFIG_GENERIC_IRQ_PROBE) += autoprobe.o obj-$(CONFIG_IRQ_DOMAIN) += irqdomain.o obj-$(CONFIG_PROC_FS) += proc.o obj-$(CONFIG_GENERIC_PENDING_IRQ) += migration.o obj-$(CONFIG_PM_SLEEP) += pm.o +endif --- linux-3.11.0.orig/kernel/trace/trace_event_perf.c +++ linux-3.11.0/kernel/trace/trace_event_perf.c @@ -26,7 +26,7 @@ { /* The ftrace function trace is allowed only for root. */ if (ftrace_event_is_function(tp_event) && - perf_paranoid_kernel() && !capable(CAP_SYS_ADMIN)) + perf_paranoid_tracepoint_raw() && !capable(CAP_SYS_ADMIN)) return -EPERM; /* No tracing, just counting, so no obvious leak */ --- linux-3.11.0.orig/kernel/trace/trace.c +++ linux-3.11.0/kernel/trace/trace.c @@ -843,9 +843,12 @@ if (isspace(ch)) { parser->buffer[parser->idx] = 0; parser->cont = false; - } else { + } else if (parser->idx < parser->size - 1) { parser->cont = true; parser->buffer[parser->idx++] = ch; + } else { + ret = -EINVAL; + goto out; } *ppos += read; --- linux-3.11.0.orig/kernel/cpu/idle.c +++ linux-3.11.0/kernel/cpu/idle.c @@ -44,7 +44,7 @@ rcu_idle_enter(); trace_cpu_idle_rcuidle(0, smp_processor_id()); local_irq_enable(); - while (!need_resched()) + while (!tif_need_resched()) cpu_relax(); trace_cpu_idle_rcuidle(PWR_EVENT_EXIT, smp_processor_id()); rcu_idle_exit(); @@ -92,8 +92,7 @@ if (cpu_idle_force_poll || tick_check_broadcast_expired()) { cpu_idle_poll(); } else { - current_clr_polling(); - if (!need_resched()) { + if (!current_clr_polling_and_test()) { stop_critical_timings(); rcu_idle_enter(); arch_cpu_idle(); @@ -103,7 +102,7 @@ } else { local_irq_enable(); } - current_set_polling(); + __current_set_polling(); } arch_cpu_idle_exit(); } @@ -129,7 +128,7 @@ */ boot_init_stack_canary(); #endif - current_set_polling(); + __current_set_polling(); arch_cpu_idle_prepare(); cpu_idle_loop(); } --- linux-3.11.0.orig/kernel/sched/cputime.c +++ linux-3.11.0/kernel/sched/cputime.c @@ -557,7 +557,7 @@ struct cputime *prev, cputime_t *ut, cputime_t *st) { - cputime_t rtime, stime, utime, total; + cputime_t rtime, stime, utime; if (vtime_accounting_enabled()) { *ut = curr->utime; @@ -565,9 +565,6 @@ return; } - stime = curr->stime; - total = stime + curr->utime; - /* * Tick based cputime accounting depend on random scheduling * timeslices of a task to be interrupted or not by the timer. @@ -588,13 +585,19 @@ if (prev->stime + prev->utime >= rtime) goto out; - if (total) { + stime = curr->stime; + utime = curr->utime; + + if (utime == 0) { + stime = rtime; + } else if (stime == 0) { + utime = rtime; + } else { + cputime_t total = stime + utime; + stime = scale_stime((__force u64)stime, (__force u64)rtime, (__force u64)total); utime = rtime - stime; - } else { - stime = rtime; - utime = 0; } /* --- linux-3.11.0.orig/kernel/sched/fair.c +++ linux-3.11.0/kernel/sched/fair.c @@ -5818,11 +5818,15 @@ cfs_rq = task_cfs_rq(current); curr = cfs_rq->curr; - if (unlikely(task_cpu(p) != this_cpu)) { - rcu_read_lock(); - __set_task_cpu(p, this_cpu); - rcu_read_unlock(); - } + /* + * Not only the cpu but also the task_group of the parent might have + * been changed after parent->se.parent,cfs_rq were copied to + * child->se.parent,cfs_rq. So call __set_task_cpu() to make those + * of child point to valid ones. + */ + rcu_read_lock(); + __set_task_cpu(p, this_cpu); + rcu_read_unlock(); update_curr(cfs_rq); --- linux-3.11.0.orig/kernel/time/clockevents.c +++ linux-3.11.0/kernel/time/clockevents.c @@ -33,29 +33,64 @@ int res; }; -/** - * clockevents_delta2ns - Convert a latch value (device ticks) to nanoseconds - * @latch: value to convert - * @evt: pointer to clock event device descriptor - * - * Math helper, returns latch value converted to nanoseconds (bound checked) - */ -u64 clockevent_delta2ns(unsigned long latch, struct clock_event_device *evt) +static u64 cev_delta2ns(unsigned long latch, struct clock_event_device *evt, + bool ismax) { u64 clc = (u64) latch << evt->shift; + u64 rnd; if (unlikely(!evt->mult)) { evt->mult = 1; WARN_ON(1); } + rnd = (u64) evt->mult - 1; + + /* + * Upper bound sanity check. If the backwards conversion is + * not equal latch, we know that the above shift overflowed. + */ + if ((clc >> evt->shift) != (u64)latch) + clc = ~0ULL; + + /* + * Scaled math oddities: + * + * For mult <= (1 << shift) we can safely add mult - 1 to + * prevent integer rounding loss. So the backwards conversion + * from nsec to device ticks will be correct. + * + * For mult > (1 << shift), i.e. device frequency is > 1GHz we + * need to be careful. Adding mult - 1 will result in a value + * which when converted back to device ticks can be larger + * than latch by up to (mult - 1) >> shift. For the min_delta + * calculation we still want to apply this in order to stay + * above the minimum device ticks limit. For the upper limit + * we would end up with a latch value larger than the upper + * limit of the device, so we omit the add to stay below the + * device upper boundary. + * + * Also omit the add if it would overflow the u64 boundary. + */ + if ((~0ULL - clc > rnd) && + (!ismax || evt->mult <= (1U << evt->shift))) + clc += rnd; do_div(clc, evt->mult); - if (clc < 1000) - clc = 1000; - if (clc > KTIME_MAX) - clc = KTIME_MAX; - return clc; + /* Deltas less than 1usec are pointless noise */ + return clc > 1000 ? clc : 1000; +} + +/** + * clockevents_delta2ns - Convert a latch value (device ticks) to nanoseconds + * @latch: value to convert + * @evt: pointer to clock event device descriptor + * + * Math helper, returns latch value converted to nanoseconds (bound checked) + */ +u64 clockevent_delta2ns(unsigned long latch, struct clock_event_device *evt) +{ + return cev_delta2ns(latch, evt, false); } EXPORT_SYMBOL_GPL(clockevent_delta2ns); @@ -380,8 +415,8 @@ sec = 600; clockevents_calc_mult_shift(dev, freq, sec); - dev->min_delta_ns = clockevent_delta2ns(dev->min_delta_ticks, dev); - dev->max_delta_ns = clockevent_delta2ns(dev->max_delta_ticks, dev); + dev->min_delta_ns = cev_delta2ns(dev->min_delta_ticks, dev, false); + dev->max_delta_ns = cev_delta2ns(dev->max_delta_ticks, dev, true); } /** --- linux-3.11.0.orig/kernel/time/ntp.c +++ linux-3.11.0/kernel/time/ntp.c @@ -516,13 +516,13 @@ schedule_delayed_work(&sync_cmos_work, timespec_to_jiffies(&next)); } -static void notify_cmos_timer(void) +void ntp_notify_cmos_timer(void) { schedule_delayed_work(&sync_cmos_work, 0); } #else -static inline void notify_cmos_timer(void) { } +void ntp_notify_cmos_timer(void) { } #endif @@ -687,8 +687,6 @@ if (!(time_status & STA_NANO)) txc->time.tv_usec /= NSEC_PER_USEC; - notify_cmos_timer(); - return result; } --- linux-3.11.0.orig/kernel/time/timekeeping.c +++ linux-3.11.0/kernel/time/timekeeping.c @@ -1703,6 +1703,8 @@ write_seqcount_end(&timekeeper_seq); raw_spin_unlock_irqrestore(&timekeeper_lock, flags); + ntp_notify_cmos_timer(); + return ret; } --- linux-3.11.0.orig/debian/debian.env +++ linux-3.11.0/debian/debian.env @@ -0,0 +1 @@ +DEBIAN=debian.master --- linux-3.11.0.orig/debian/copyright +++ linux-3.11.0/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-3.11.0.orig/debian/control +++ linux-3.11.0/debian/control @@ -0,0 +1,667 @@ +Source: linux +Section: devel +Priority: optional +Maintainer: Ubuntu Kernel Team +Standards-Version: 3.9.4.0 +Build-Depends: debhelper (>= 5), cpio, module-init-tools, kernel-wedge (>= 2.24ubuntu1), makedumpfile [amd64 i386], libelf-dev, libnewt-dev, binutils-dev, rsync, libdw-dev, libpci-dev, dpkg (>= 1.16.0~ubuntu4), pkg-config, flex, bison, libunwind8-dev, openssl, libaudit-dev, bc, python-dev, gcc-4.7 [armhf], gawk +Build-Depends-Indep: xmlto, docbook-utils, ghostscript, transfig, bzip2, sharutils, asciidoc +Vcs-Git: http://kernel.ubuntu.com/git-repos/ubuntu/ubuntu-saucy.git +XS-Testsuite: autopkgtest +#XS-Testsuite-Depends: gcc-4.7 binutils + +Package: linux-source-3.11.0 +Architecture: all +Section: devel +Priority: optional +Provides: linux-source, linux-source-3 +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 3.11.0 with Ubuntu patches + This package provides the source code for the Linux kernel version + 3.11.0. + . + 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-3 +Replaces: linux-doc-3 +Description: Linux kernel specific documentation for version 3.11.0 + This package provides the various documents in the 3.11.0 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: kernel +Priority: optional +Depends: ${misc:Depends} +Replaces: linux-tools (<= 2.6.32-16.25) +Description: Linux kernel version specific tools for version 3.11.0 + This package provides the architecture independent parts for kernel + version locked tools (such as perf and x86_energy_perf_policy) for + version PGKVER. + +Package: linux-headers-3.11.0-15 +Architecture: all +Section: devel +Priority: optional +Depends: ${misc:Depends}, coreutils | fileutils (>= 4.0) +Description: Header files related to Linux kernel version 3.11.0 + This package provides kernel header files for version 3.11.0, for sites + that want the latest kernel headers. Please read + /usr/share/doc/linux-headers-3.11.0-15/debian.README.gz for details + +Package: linux-libc-dev +Architecture: i386 amd64 armhf arm64 x32 powerpc +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-3.11.0-15 +Architecture: i386 amd64 armhf +Section: devel +Priority: optional +Depends: ${misc:Depends}, ${shlibs:Depends}, linux-tools-common +Description: Linux kernel version specific tools for version 3.11.0-15 + This package provides the architecture dependant parts for kernel + version locked tools (such as perf and x86_energy_perf_policy) for + version 3.11.0-15 on + 64 bit x86. + You probabally want to install linux-tools-3.11.0-15-. + + +Package: linux-image-3.11.0-15-generic +Architecture: i386 amd64 armhf +Section: kernel +Priority: optional +Pre-Depends: dpkg (>= 1.10.24) +Provides: linux-image, linux-image-3.0, fuse-module, kvm-api-4, redhat-cluster-modules, ivtv-modules +Depends: ${misc:Depends}, ${shlibs:Depends}, initramfs-tools (>= 0.36ubuntu6), module-init-tools (>= 3.3-pre11-4ubuntu3) +Conflicts: hotplug (<< 0.0.20040105-1) +Recommends: grub-pc [i386 amd64 x32] | grub-efi-amd64 [amd64 x32] | grub-efi-ia32 [i386 amd64 x32] | grub [i386 amd64 x32] | lilo (>= 19.1) [i386 amd64 x32] | flash-kernel [armhf arm64] +Suggests: fdutils, linux-doc-3.11.0 | linux-source-3.11.0, linux-tools, linux-headers-3.11.0-15-generic +Description: Linux kernel image for version 3.11.0 on 64 bit x86 SMP + This package contains the Linux kernel image for version 3.11.0 on + 64 bit x86 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 Generic processors. + . + Geared toward desktop and server 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-image-extra-3.11.0-15-generic +Architecture: i386 amd64 armhf +Section: kernel +Priority: optional +Depends: ${misc:Depends}, ${shlibs:Depends}, linux-image-3.11.0-15-generic, crda (>=1.1.1-1ubuntu2) | wireless-crda +Description: Linux kernel extra modules for version 3.11.0 on 64 bit x86 SMP + This package contains the Linux kernel extra modules for version 3.11.0 on + 64 bit x86 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 Generic processors. + . + Geared toward desktop and server 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-3.11.0-15-generic +Architecture: i386 amd64 armhf +Section: devel +Priority: optional +Depends: ${misc:Depends}, linux-headers-3.11.0-15, ${shlibs:Depends} +Provides: linux-headers, linux-headers-3.0 +Description: Linux kernel headers for version 3.11.0 on 64 bit x86 SMP + This package provides kernel header files for version 3.11.0 on + 64 bit x86 SMP. + . + This is for sites that want the latest kernel headers. Please read + /usr/share/doc/linux-headers-3.11.0-15/debian.README.gz for details. + +Package: linux-image-3.11.0-15-generic-dbgsym +Architecture: i386 amd64 armhf +Section: devel +Priority: optional +Depends: ${misc:Depends} +Provides: linux-debug +Description: Linux kernel debug image for version 3.11.0 on 64 bit x86 SMP + This package provides a kernel debug image for version 3.11.0 on + 64 bit x86 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-tools-3.11.0-15-generic +Architecture: i386 amd64 armhf +Section: devel +Priority: optional +Depends: ${misc:Depends}, linux-tools-3.11.0-15 +Description: Linux kernel version specific tools for version 3.11.0-15 + This package provides the architecture dependant parts for kernel + version locked tools (such as perf and x86_energy_perf_policy) for + version 3.11.0-15 on + 64 bit x86. + +Package: linux-udebs-generic +XC-Package-Type: udeb +Section: debian-installer +Architecture: i386 amd64 armhf +Depends: ${udeb:Depends} +Description: Metapackage depending on kernel udebs + This package depends on the all udebs that the kernel build generated, + for easier version and migration tracking. + + +Package: linux-image-3.11.0-15-generic-lpae +Architecture: armhf +Section: kernel +Priority: optional +Pre-Depends: dpkg (>= 1.10.24) +Provides: linux-image, linux-image-3.0, fuse-module, kvm-api-4, redhat-cluster-modules, ivtv-modules +Depends: ${misc:Depends}, ${shlibs:Depends}, initramfs-tools (>= 0.36ubuntu6), module-init-tools (>= 3.3-pre11-4ubuntu3) +Conflicts: hotplug (<< 0.0.20040105-1) +Recommends: flash-kernel [armhf] +Suggests: fdutils, linux-doc-3.11.0 | linux-source-3.11.0, linux-tools, linux-headers-3.11.0-15-generic-lpae +Description: Linux kernel image for version 3.11.0 on 64 bit x86 SMP + This package contains the Linux kernel image for version 3.11.0 on + 64 bit x86 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 Generic LPAE processors. + . + Geared toward desktop and server systems. + . + You likely do not want to install this package directly. Instead, install + the linux-generic-lpae meta-package, which will ensure that upgrades work + correctly, and that supporting packages are also installed. + +Package: linux-image-extra-3.11.0-15-generic-lpae +Architecture: armhf +Section: kernel +Priority: optional +Depends: ${misc:Depends}, ${shlibs:Depends}, linux-image-3.11.0-15-generic-lpae, crda (>=1.1.1-1ubuntu2) | wireless-crda +Description: Linux kernel extra modules for version 3.11.0 on 64 bit x86 SMP + This package contains the Linux kernel extra modules for version 3.11.0 on + 64 bit x86 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 Generic LPAE processors. + . + Geared toward desktop and server systems. + . + You likely do not want to install this package directly. Instead, install + the linux-generic-lpae meta-package, which will ensure that upgrades work + correctly, and that supporting packages are also installed. + +Package: linux-headers-3.11.0-15-generic-lpae +Architecture: armhf +Section: devel +Priority: optional +Depends: ${misc:Depends}, linux-headers-3.11.0-15, ${shlibs:Depends} +Provides: linux-headers, linux-headers-3.0 +Description: Linux kernel headers for version 3.11.0 on 64 bit x86 SMP + This package provides kernel header files for version 3.11.0 on + 64 bit x86 SMP. + . + This is for sites that want the latest kernel headers. Please read + /usr/share/doc/linux-headers-3.11.0-15/debian.README.gz for details. + +Package: linux-image-3.11.0-15-generic-lpae-dbgsym +Architecture: armhf +Section: devel +Priority: optional +Depends: ${misc:Depends} +Provides: linux-debug +Description: Linux kernel debug image for version 3.11.0 on 64 bit x86 SMP + This package provides a kernel debug image for version 3.11.0 on + 64 bit x86 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-tools-3.11.0-15-generic-lpae +Architecture: armhf +Section: devel +Priority: optional +Depends: ${misc:Depends}, linux-tools-3.11.0-15 +Description: Linux kernel version specific tools for version 3.11.0-15 + This package provides the architecture dependant parts for kernel + version locked tools (such as perf and x86_energy_perf_policy) for + version 3.11.0-15 on + 64 bit x86. + +Package: linux-udebs-generic-lpae +XC-Package-Type: udeb +Section: debian-installer +Architecture: armhf +Depends: ${udeb:Depends} +Description: Metapackage depending on kernel udebs + This package depends on the all udebs that the kernel build generated, + for easier version and migration tracking. + + +Package: kernel-image-3.11.0-15-generic-di +XC-Package-Type: udeb +Provides: kernel-image, efi-modules, ext3-modules, ext4-modules +Architecture: amd64 +XB-Kernel-Version: 3.11.0-15-generic +Section: debian-installer +Priority: extra +Description: Linux kernel binary image for the Debian installer + This package contains the kernel image for the Debian installer + boot images. It does _not_ provide a usable kernel for your full + Debian system. + +Package: nic-modules-3.11.0-15-generic-di +XC-Package-Type: udeb +Provides: nic-modules +Depends: kernel-image-3.11.0-15-generic-di, nic-shared-modules-3.11.0-15-generic-di, virtio-modules-3.11.0-15-generic-di +Architecture: amd64 +XB-Kernel-Version: 3.11.0-15-generic +Section: debian-installer +Priority: standard +Description: Network interface support + +Package: nic-shared-modules-3.11.0-15-generic-di +XC-Package-Type: udeb +Provides: nic-shared-modules +Depends: kernel-image-3.11.0-15-generic-di, crypto-modules-3.11.0-15-generic-di +Architecture: amd64 +XB-Kernel-Version: 3.11.0-15-generic +Section: debian-installer +Priority: standard +Description: nic shared modules + This package contains modules which support nic modules + +Package: serial-modules-3.11.0-15-generic-di +XC-Package-Type: udeb +Provides: serial-modules +Depends: kernel-image-3.11.0-15-generic-di +Architecture: amd64 +XB-Kernel-Version: 3.11.0-15-generic +Section: debian-installer +Priority: standard +Description: Serial port support + +Package: ppp-modules-3.11.0-15-generic-di +XC-Package-Type: udeb +Provides: ppp-modules +Depends: kernel-image-3.11.0-15-generic-di, nic-shared-modules-3.11.0-15-generic-di, serial-modules-3.11.0-15-generic-di +Architecture: amd64 +XB-Kernel-Version: 3.11.0-15-generic +Section: debian-installer +Priority: standard +Description: PPP (serial port) networking support + +Package: pata-modules-3.11.0-15-generic-di +XC-Package-Type: udeb +Provides: pata-modules +Depends: kernel-image-3.11.0-15-generic-di, storage-core-modules-3.11.0-15-generic-di +Architecture: amd64 +XB-Kernel-Version: 3.11.0-15-generic +Section: debian-installer +Priority: standard +Description: PATA support modules + +Package: firewire-core-modules-3.11.0-15-generic-di +XC-Package-Type: udeb +Provides: firewire-core-modules +Depends: kernel-image-3.11.0-15-generic-di, storage-core-modules-3.11.0-15-generic-di +Architecture: amd64 +XB-Kernel-Version: 3.11.0-15-generic +Section: debian-installer +Priority: standard +Description: Firewire (IEEE-1394) Support + +Package: scsi-modules-3.11.0-15-generic-di +XC-Package-Type: udeb +Provides: scsi-modules +Depends: kernel-image-3.11.0-15-generic-di, storage-core-modules-3.11.0-15-generic-di +Architecture: amd64 +XB-Kernel-Version: 3.11.0-15-generic +Section: debian-installer +Priority: standard +Description: SCSI storage support + +Package: plip-modules-3.11.0-15-generic-di +XC-Package-Type: udeb +Provides: plip-modules +Depends: kernel-image-3.11.0-15-generic-di, nic-shared-modules-3.11.0-15-generic-di, parport-modules-3.11.0-15-generic-di +Architecture: amd64 +XB-Kernel-Version: 3.11.0-15-generic +Section: debian-installer +Priority: standard +Description: PLIP (parallel port) networking support + +Package: floppy-modules-3.11.0-15-generic-di +XC-Package-Type: udeb +Provides: floppy-modules +Depends: kernel-image-3.11.0-15-generic-di +Architecture: amd64 +XB-Kernel-Version: 3.11.0-15-generic +Section: debian-installer +Priority: standard +Description: Floppy driver support + +Package: fat-modules-3.11.0-15-generic-di +XC-Package-Type: udeb +Provides: fat-modules +Depends: kernel-image-3.11.0-15-generic-di +Architecture: amd64 +XB-Kernel-Version: 3.11.0-15-generic +Section: debian-installer +Priority: standard +Description: FAT filesystem support + This includes Windows FAT and VFAT support. + +Package: nfs-modules-3.11.0-15-generic-di +XC-Package-Type: udeb +Provides: nfs-modules +Depends: kernel-image-3.11.0-15-generic-di +Architecture: amd64 +XB-Kernel-Version: 3.11.0-15-generic +Section: debian-installer +Priority: standard +Description: NFS filesystem drivers + Includes the NFS client driver, and supporting modules. + +Package: md-modules-3.11.0-15-generic-di +XC-Package-Type: udeb +Provides: md-modules, crypto-dm-modules +Depends: kernel-image-3.11.0-15-generic-di +Architecture: amd64 +XB-Kernel-Version: 3.11.0-15-generic +Section: debian-installer +Priority: standard +Description: Multi-device support (raid, device-mapper, lvm) + +Package: multipath-modules-3.11.0-15-generic-di +XC-Package-Type: udeb +Provides: multipath-modules +Depends: kernel-image-3.11.0-15-generic-di +Architecture: amd64 +XB-Kernel-Version: 3.11.0-15-generic +Section: debian-installer +Priority: extra +Description: DM-Multipath support + This package contains modules for device-mapper multipath support. + +Package: usb-modules-3.11.0-15-generic-di +XC-Package-Type: udeb +Provides: usb-modules +Depends: kernel-image-3.11.0-15-generic-di, storage-core-modules-3.11.0-15-generic-di +Architecture: amd64 +XB-Kernel-Version: 3.11.0-15-generic +Section: debian-installer +Priority: standard +Description: Core USB support + +Package: pcmcia-storage-modules-3.11.0-15-generic-di +XC-Package-Type: udeb +Provides: pcmcia-storage-modules +Depends: kernel-image-3.11.0-15-generic-di, scsi-modules-3.11.0-15-generic-di +Architecture: amd64 +XB-Kernel-Version: 3.11.0-15-generic +Section: debian-installer +Priority: standard +Description: PCMCIA storage support + +Package: fb-modules-3.11.0-15-generic-di +XC-Package-Type: udeb +Provides: fb-modules +Depends: kernel-image-3.11.0-15-generic-di +Architecture: amd64 +XB-Kernel-Version: 3.11.0-15-generic +Section: debian-installer +Priority: standard +Description: Framebuffer modules + +Package: input-modules-3.11.0-15-generic-di +XC-Package-Type: udeb +Provides: input-modules +Depends: kernel-image-3.11.0-15-generic-di, usb-modules-3.11.0-15-generic-di +Architecture: amd64 +XB-Kernel-Version: 3.11.0-15-generic +Section: debian-installer +Priority: standard +Description: Support for various input methods + +Package: mouse-modules-3.11.0-15-generic-di +XC-Package-Type: udeb +Provides: mouse-modules +Depends: kernel-image-3.11.0-15-generic-di, input-modules-3.11.0-15-generic-di, usb-modules-3.11.0-15-generic-di +Architecture: amd64 +XB-Kernel-Version: 3.11.0-15-generic +Section: debian-installer +Priority: extra +Description: Mouse support + This package contains mouse drivers for the Linux kernel. + +Package: irda-modules-3.11.0-15-generic-di +XC-Package-Type: udeb +Provides: irda-modules +Depends: kernel-image-3.11.0-15-generic-di, nic-shared-modules-3.11.0-15-generic-di +Architecture: amd64 +XB-Kernel-Version: 3.11.0-15-generic +Section: debian-installer +Priority: standard +Description: Support for Infrared protocols + +Package: parport-modules-3.11.0-15-generic-di +XC-Package-Type: udeb +Provides: parport-modules +Depends: kernel-image-3.11.0-15-generic-di +Architecture: amd64 +XB-Kernel-Version: 3.11.0-15-generic +Section: debian-installer +Priority: standard +Description: Parallel port support + +Package: nic-pcmcia-modules-3.11.0-15-generic-di +XC-Package-Type: udeb +Provides: nic-pcmcia-modules +Depends: kernel-image-3.11.0-15-generic-di, nic-shared-modules-3.11.0-15-generic-di, nic-modules-3.11.0-15-generic-di +Architecture: amd64 +XB-Kernel-Version: 3.11.0-15-generic +Section: debian-installer +Priority: standard +Description: PCMCIA network interface support + +Package: pcmcia-modules-3.11.0-15-generic-di +XC-Package-Type: udeb +Provides: pcmcia-modules +Depends: kernel-image-3.11.0-15-generic-di +Architecture: amd64 +XB-Kernel-Version: 3.11.0-15-generic +Section: debian-installer +Priority: standard +Description: PCMCIA Modules + +Package: nic-usb-modules-3.11.0-15-generic-di +XC-Package-Type: udeb +Provides: nic-usb-modules +Depends: kernel-image-3.11.0-15-generic-di, nic-shared-modules-3.11.0-15-generic-di, usb-modules-3.11.0-15-generic-di +Architecture: amd64 +XB-Kernel-Version: 3.11.0-15-generic +Section: debian-installer +Priority: standard +Description: USB network interface support + +Package: sata-modules-3.11.0-15-generic-di +XC-Package-Type: udeb +Provides: sata-modules +Depends: kernel-image-3.11.0-15-generic-di, storage-core-modules-3.11.0-15-generic-di +Architecture: amd64 +XB-Kernel-Version: 3.11.0-15-generic +Section: debian-installer +Priority: standard +Description: SATA storage support + +Package: crypto-modules-3.11.0-15-generic-di +XC-Package-Type: udeb +Provides: crypto-modules +Depends: kernel-image-3.11.0-15-generic-di +Architecture: amd64 +XB-Kernel-Version: 3.11.0-15-generic +Section: debian-installer +Priority: extra +Description: crypto modules + This package contains crypto modules. + +Package: squashfs-modules-3.11.0-15-generic-di +XC-Package-Type: udeb +Provides: squashfs-modules +Depends: kernel-image-3.11.0-15-generic-di +Architecture: amd64 +XB-Kernel-Version: 3.11.0-15-generic +Section: debian-installer +Priority: extra +Description: squashfs modules + This package contains squashfs modules. + +Package: speakup-modules-3.11.0-15-generic-di +XC-Package-Type: udeb +Provides: speakup-modules +Depends: kernel-image-3.11.0-15-generic-di +Architecture: amd64 +XB-Kernel-Version: 3.11.0-15-generic +Section: debian-installer +Priority: extra +Description: speakup modules + This package contains speakup modules. + +Package: virtio-modules-3.11.0-15-generic-di +XC-Package-Type: udeb +Provides: virtio-modules +Depends: kernel-image-3.11.0-15-generic-di +Architecture: amd64 +XB-Kernel-Version: 3.11.0-15-generic +Section: debian-installer +Priority: standard +Description: VirtIO Modules + Includes modules for VirtIO (virtual machine, generally kvm guests) + +Package: fs-core-modules-3.11.0-15-generic-di +XC-Package-Type: udeb +Provides: fs-core-modules, ext2-modules, jfs-modules, reiserfs-modules, xfs-modules +Depends: kernel-image-3.11.0-15-generic-di +Architecture: amd64 +XB-Kernel-Version: 3.11.0-15-generic +Section: debian-installer +Priority: standard +Description: Base filesystem modules + This includes jfs, reiserfs and xfs. + +Package: fs-secondary-modules-3.11.0-15-generic-di +XC-Package-Type: udeb +Provides: fs-secondary-modules, btrfs-modules, ntfs-modules, hfs-modules +Depends: kernel-image-3.11.0-15-generic-di, fat-modules-3.11.0-15-generic-di +Architecture: amd64 +XB-Kernel-Version: 3.11.0-15-generic +Section: debian-installer +Priority: standard +Description: Extra filesystem modules + This includes support for Windows NTFS and MacOS HFS/HFSPlus + +Package: storage-core-modules-3.11.0-15-generic-di +XC-Package-Type: udeb +Provides: storage-core-modules, loop-modules +Depends: kernel-image-3.11.0-15-generic-di +Architecture: amd64 +XB-Kernel-Version: 3.11.0-15-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-3.11.0-15-generic-di +XC-Package-Type: udeb +Provides: block-modules, nbd-modules +Depends: kernel-image-3.11.0-15-generic-di, storage-core-modules-3.11.0-15-generic-di, parport-modules-3.11.0-15-generic-di, virtio-modules-3.11.0-15-generic-di +Architecture: amd64 +XB-Kernel-Version: 3.11.0-15-generic +Section: debian-installer +Priority: standard +Description: Block storage devices + This package contains the block storage devices, including DAC960 and + paraide. + +Package: message-modules-3.11.0-15-generic-di +XC-Package-Type: udeb +Provides: message-modules +Depends: kernel-image-3.11.0-15-generic-di, storage-core-modules-3.11.0-15-generic-di, scsi-modules-3.11.0-15-generic-di +Architecture: amd64 +XB-Kernel-Version: 3.11.0-15-generic +Section: debian-installer +Priority: standard +Description: Fusion and i2o storage modules + This package containes the fusion and i2o storage modules. + +Package: vlan-modules-3.11.0-15-generic-di +XC-Package-Type: udeb +Provides: vlan-modules +Depends: kernel-image-3.11.0-15-generic-di +Architecture: amd64 +XB-Kernel-Version: 3.11.0-15-generic +Section: debian-installer +Priority: extra +Description: vlan modules + This package contains vlan (8021.Q) modules. + +Package: ipmi-modules-3.11.0-15-generic-di +XC-Package-Type: udeb +Provides: ipmi-modules +Depends: kernel-image-3.11.0-15-generic-di +Architecture: amd64 +XB-Kernel-Version: 3.11.0-15-generic +Section: debian-installer +Priority: standard +Description: ipmi modules --- linux-3.11.0.orig/debian/rules +++ linux-3.11.0/debian/rules @@ -0,0 +1,252 @@ +#!/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' \ + -e 's/=HUMAN=/$(human_arch)/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-3.11.0.orig/debian/compat +++ linux-3.11.0/debian/compat @@ -0,0 +1 @@ +5 --- linux-3.11.0.orig/debian/control.stub +++ linux-3.11.0/debian/control.stub @@ -0,0 +1,288 @@ +Source: linux +Section: devel +Priority: optional +Maintainer: Ubuntu Kernel Team +Standards-Version: 3.9.4.0 +Build-Depends: debhelper (>= 5), cpio, module-init-tools, kernel-wedge (>= 2.24ubuntu1), makedumpfile [amd64 i386], libelf-dev, libnewt-dev, binutils-dev, rsync, libdw-dev, libpci-dev, dpkg (>= 1.16.0~ubuntu4), pkg-config, flex, bison, libunwind8-dev, openssl, libaudit-dev, bc, python-dev, gcc-4.7 [armhf], gawk +Build-Depends-Indep: xmlto, docbook-utils, ghostscript, transfig, bzip2, sharutils, asciidoc +Vcs-Git: http://kernel.ubuntu.com/git-repos/ubuntu/ubuntu-saucy.git +XS-Testsuite: autopkgtest +#XS-Testsuite-Depends: gcc-4.7 binutils + +Package: linux-source-3.11.0 +Architecture: all +Section: devel +Priority: optional +Provides: linux-source, linux-source-3 +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 3.11.0 with Ubuntu patches + This package provides the source code for the Linux kernel version + 3.11.0. + . + 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-3 +Replaces: linux-doc-3 +Description: Linux kernel specific documentation for version 3.11.0 + This package provides the various documents in the 3.11.0 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: kernel +Priority: optional +Depends: ${misc:Depends} +Replaces: linux-tools (<= 2.6.32-16.25) +Description: Linux kernel version specific tools for version 3.11.0 + This package provides the architecture independent parts for kernel + version locked tools (such as perf and x86_energy_perf_policy) for + version PGKVER. + +Package: linux-headers-3.11.0-15 +Architecture: all +Section: devel +Priority: optional +Depends: ${misc:Depends}, coreutils | fileutils (>= 4.0) +Description: Header files related to Linux kernel version 3.11.0 + This package provides kernel header files for version 3.11.0, for sites + that want the latest kernel headers. Please read + /usr/share/doc/linux-headers-3.11.0-15/debian.README.gz for details + +Package: linux-libc-dev +Architecture: i386 amd64 armhf arm64 x32 powerpc +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-3.11.0-15 +Architecture: i386 amd64 armhf +Section: devel +Priority: optional +Depends: ${misc:Depends}, ${shlibs:Depends}, linux-tools-common +Description: Linux kernel version specific tools for version 3.11.0-15 + This package provides the architecture dependant parts for kernel + version locked tools (such as perf and x86_energy_perf_policy) for + version 3.11.0-15 on + 64 bit x86. + You probabally want to install linux-tools-3.11.0-15-. + + +Package: linux-image-3.11.0-15-generic +Architecture: i386 amd64 armhf +Section: kernel +Priority: optional +Pre-Depends: dpkg (>= 1.10.24) +Provides: linux-image, linux-image-3.0, fuse-module, kvm-api-4, redhat-cluster-modules, ivtv-modules +Depends: ${misc:Depends}, ${shlibs:Depends}, initramfs-tools (>= 0.36ubuntu6), module-init-tools (>= 3.3-pre11-4ubuntu3) +Conflicts: hotplug (<< 0.0.20040105-1) +Recommends: grub-pc [i386 amd64 x32] | grub-efi-amd64 [amd64 x32] | grub-efi-ia32 [i386 amd64 x32] | grub [i386 amd64 x32] | lilo (>= 19.1) [i386 amd64 x32] | flash-kernel [armhf arm64] +Suggests: fdutils, linux-doc-3.11.0 | linux-source-3.11.0, linux-tools, linux-headers-3.11.0-15-generic +Description: Linux kernel image for version 3.11.0 on 64 bit x86 SMP + This package contains the Linux kernel image for version 3.11.0 on + 64 bit x86 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 Generic processors. + . + Geared toward desktop and server 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-image-extra-3.11.0-15-generic +Architecture: i386 amd64 armhf +Section: kernel +Priority: optional +Depends: ${misc:Depends}, ${shlibs:Depends}, linux-image-3.11.0-15-generic, crda (>=1.1.1-1ubuntu2) | wireless-crda +Description: Linux kernel extra modules for version 3.11.0 on 64 bit x86 SMP + This package contains the Linux kernel extra modules for version 3.11.0 on + 64 bit x86 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 Generic processors. + . + Geared toward desktop and server 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-3.11.0-15-generic +Architecture: i386 amd64 armhf +Section: devel +Priority: optional +Depends: ${misc:Depends}, linux-headers-3.11.0-15, ${shlibs:Depends} +Provides: linux-headers, linux-headers-3.0 +Description: Linux kernel headers for version 3.11.0 on 64 bit x86 SMP + This package provides kernel header files for version 3.11.0 on + 64 bit x86 SMP. + . + This is for sites that want the latest kernel headers. Please read + /usr/share/doc/linux-headers-3.11.0-15/debian.README.gz for details. + +Package: linux-image-3.11.0-15-generic-dbgsym +Architecture: i386 amd64 armhf +Section: devel +Priority: optional +Depends: ${misc:Depends} +Provides: linux-debug +Description: Linux kernel debug image for version 3.11.0 on 64 bit x86 SMP + This package provides a kernel debug image for version 3.11.0 on + 64 bit x86 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-tools-3.11.0-15-generic +Architecture: i386 amd64 armhf +Section: devel +Priority: optional +Depends: ${misc:Depends}, linux-tools-3.11.0-15 +Description: Linux kernel version specific tools for version 3.11.0-15 + This package provides the architecture dependant parts for kernel + version locked tools (such as perf and x86_energy_perf_policy) for + version 3.11.0-15 on + 64 bit x86. + +Package: linux-udebs-generic +XC-Package-Type: udeb +Section: debian-installer +Architecture: i386 amd64 armhf +Depends: ${udeb:Depends} +Description: Metapackage depending on kernel udebs + This package depends on the all udebs that the kernel build generated, + for easier version and migration tracking. + + +Package: linux-image-3.11.0-15-generic-lpae +Architecture: armhf +Section: kernel +Priority: optional +Pre-Depends: dpkg (>= 1.10.24) +Provides: linux-image, linux-image-3.0, fuse-module, kvm-api-4, redhat-cluster-modules, ivtv-modules +Depends: ${misc:Depends}, ${shlibs:Depends}, initramfs-tools (>= 0.36ubuntu6), module-init-tools (>= 3.3-pre11-4ubuntu3) +Conflicts: hotplug (<< 0.0.20040105-1) +Recommends: flash-kernel [armhf] +Suggests: fdutils, linux-doc-3.11.0 | linux-source-3.11.0, linux-tools, linux-headers-3.11.0-15-generic-lpae +Description: Linux kernel image for version 3.11.0 on 64 bit x86 SMP + This package contains the Linux kernel image for version 3.11.0 on + 64 bit x86 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 Generic LPAE processors. + . + Geared toward desktop and server systems. + . + You likely do not want to install this package directly. Instead, install + the linux-generic-lpae meta-package, which will ensure that upgrades work + correctly, and that supporting packages are also installed. + +Package: linux-image-extra-3.11.0-15-generic-lpae +Architecture: armhf +Section: kernel +Priority: optional +Depends: ${misc:Depends}, ${shlibs:Depends}, linux-image-3.11.0-15-generic-lpae, crda (>=1.1.1-1ubuntu2) | wireless-crda +Description: Linux kernel extra modules for version 3.11.0 on 64 bit x86 SMP + This package contains the Linux kernel extra modules for version 3.11.0 on + 64 bit x86 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 Generic LPAE processors. + . + Geared toward desktop and server systems. + . + You likely do not want to install this package directly. Instead, install + the linux-generic-lpae meta-package, which will ensure that upgrades work + correctly, and that supporting packages are also installed. + +Package: linux-headers-3.11.0-15-generic-lpae +Architecture: armhf +Section: devel +Priority: optional +Depends: ${misc:Depends}, linux-headers-3.11.0-15, ${shlibs:Depends} +Provides: linux-headers, linux-headers-3.0 +Description: Linux kernel headers for version 3.11.0 on 64 bit x86 SMP + This package provides kernel header files for version 3.11.0 on + 64 bit x86 SMP. + . + This is for sites that want the latest kernel headers. Please read + /usr/share/doc/linux-headers-3.11.0-15/debian.README.gz for details. + +Package: linux-image-3.11.0-15-generic-lpae-dbgsym +Architecture: armhf +Section: devel +Priority: optional +Depends: ${misc:Depends} +Provides: linux-debug +Description: Linux kernel debug image for version 3.11.0 on 64 bit x86 SMP + This package provides a kernel debug image for version 3.11.0 on + 64 bit x86 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-tools-3.11.0-15-generic-lpae +Architecture: armhf +Section: devel +Priority: optional +Depends: ${misc:Depends}, linux-tools-3.11.0-15 +Description: Linux kernel version specific tools for version 3.11.0-15 + This package provides the architecture dependant parts for kernel + version locked tools (such as perf and x86_energy_perf_policy) for + version 3.11.0-15 on + 64 bit x86. + +Package: linux-udebs-generic-lpae +XC-Package-Type: udeb +Section: debian-installer +Architecture: armhf +Depends: ${udeb:Depends} +Description: Metapackage depending on kernel udebs + This package depends on the all udebs that the kernel build generated, + for easier version and migration tracking. + --- linux-3.11.0.orig/debian/changelog +++ linux-3.11.0/debian/changelog @@ -0,0 +1,10493 @@ +linux (3.11.0-15.25) saucy; urgency=low + + [ John Johansen ] + + * SAUCE: Fix compat_sys_recvmsg on x32 archs + - LP: #1274349 + + -- Brad Figg Thu, 30 Jan 2014 08:13:36 -0800 + +linux (3.11.0-15.23) saucy; urgency=low + + [Brad Figg] + + * Release Tracking Bug + - LP: #1259259 + + [ Tim Gardner ] + + * [Config] Build-in ohci-pci + - LP: #1244176 + + -- Brad Figg Mon, 09 Dec 2013 09:41:31 -0800 + +linux (3.11.0-15.22) saucy; urgency=low + + [Brad Figg] + + * Release Tracking Bug + - LP: #1257092 + + [ Andy Whitcroft ] + + * [Config] CONFIG_DEBUG_BUGVERBOSE=y + - LP: #1252353 + + [ Benjamin Tissoires ] + + * SAUCE: (no-up) HID: appleir: force input to be set + - LP: #1244505 + + [ John Johansen ] + + * SAUCE: (no-up) apparmor: Fix tasks not subject to, reloaded policy + - LP: #1236455 + + [ Kamal Mostafa ] + + * SAUCE: (no-up) drm/i915: i915.disable_pch_pwm overrides PCH_PWM_ENABLE + quirk + - LP: #1163720 + + [ Manoj Iyer ] + + * SAUCE: Enable earlyprintk via the PL011. + - LP: #1248233 + + [ Paolo Pisati ] + + * [Config] armhf: RTC_DRV_PL031=y + - LP: #1252242 + * [Config] armhf: CPU_FREQ=y && ARM_HIGHBANK_CPUFREQ=y + - LP: #1249397 + + [ Rob Herring ] + + * [Config] armhf: PSTORE_RAM=y and PSTORE_CONSOLE=y + - LP: #1248492 + * SAUCE: net: calxedaxgmac: add mac address learning + - LP: #1248233 + + [ Tim Gardner ] + + * [Debian] Re-sign modules after debug objcopy + - LP: #1253155 + + [ Upstream Kernel Changes ] + + * Revert "rt2x00pci: Use PCI MSIs whenever possible" + - LP: #1257037 + * Revert "epoll: use freezable blocking call" + - LP: #1257037 + * Revert "select: use freezable blocking call" + - LP: #1257037 + * Revert "ima: policy for RAMFS" + - LP: #1257037 + * ARM: tlb: don't perform inner-shareable invalidation for local TLB ops + - LP: #1239800 + * ARM: 7855/1: Add check for Cortex-A15 errata 798181 ECO + - LP: #1239800 + * mfd: rtsx: Modify rts5249_optimize_phy + - LP: #1255297 + * usb: musb: start musb on the udc side, too + - LP: #1257037 + * usb-storage: add quirk for mandatory READ_CAPACITY_16 + - LP: #1257037 + * USB: support new huawei devices in option.c + - LP: #1257037 + * USB: quirks.c: add one device that cannot deal with suspension + - LP: #1257037 + * USB: quirks: add touchscreen that is dazzeled by remote wakeup + - LP: #1257037 + * USB: serial: ftdi_sio: add id for Z3X Box device + - LP: #1257037 + * xhci: Don't enable/disable RWE on bus suspend/resume. + - LP: #1257037 + * cifs: Fix inability to write files >2GB to SMB2/3 shares + - LP: #1257037 + * x86: Update UV3 hub revision ID + - LP: #1257037 + * cpufreq: s3c64xx: Rename index to driver_data + - LP: #1257037 + * cpufreq / intel_pstate: Fix max_perf_pct on resume + - LP: #1257037 + * bcache: Fixed incorrect order of arguments to bio_alloc_bioset() + - LP: #1257037 + * HID: wiimote: add LEGO-wiimote VID + - LP: #1257037 + * cgroup: fix to break the while loop in cgroup_attach_task() correctly + - LP: #1257037 + * mac80211: correctly close cancelled scans + - LP: #1257037 + * mac80211: drop spoofed packets in ad-hoc mode + - LP: #1257037 + * mac80211: use sta_info_get_bss() for nl80211 tx and client probing + - LP: #1257037 + * mac80211: update sta->last_rx on acked tx frames + - LP: #1257037 + * mac80211: fix crash if bitrate calculation goes wrong + - LP: #1257037 + * ath9k: fix tx queue scheduling after channel changes + - LP: #1257037 + * cfg80211: use the correct macro to check for active monitor support + - LP: #1257037 + * cfg80211: fix warning when using WEXT for IBSS + - LP: #1257037 + * mwifiex: fix SDIO interrupt lost issue + - LP: #1257037 + * rtlwifi: rtl8192cu: Fix error in pointer arithmetic + - LP: #1257037 + * iwlwifi: mvm: call ieee80211_scan_completed when needed + - LP: #1257037 + * iwlwifi: pcie: add SKUs for 6000, 6005 and 6235 series + - LP: #1257037 + * jfs: fix error path in ialloc + - LP: #1257037 + * can: at91-can: fix device to driver data mapping for platform devices + - LP: #1257037 + * can: flexcan: fix mx28 detection by rearanging OF match table + - LP: #1257037 + * can: flexcan: flexcan_chip_start: fix regression, mark one MB for TX + and abort pending TX + - LP: #1257037 + * SCSI: BusLogic: Fix an oops when intializing multimaster adapter + - LP: #1257037 + * SCSI: sd: call blk_pm_runtime_init before add_disk + - LP: #1257037 + * ecryptfs: Fix memory leakage in keystore.c + - LP: #1257037 + * raid5: set bio bi_vcnt 0 for discard request + - LP: #1257037 + * raid5: avoid finding "discard" stripe + - LP: #1257037 + * libata: make ata_eh_qc_retry() bump scmd->allowed on bogus failures + - LP: #1257037 + * md: avoid deadlock when md_set_badblocks. + - LP: #1257037 + * md: Fix skipping recovery for read-only arrays. + - LP: #1257037 + * target: Fix assignment of LUN in tracepoints + - LP: #1257037 + * target/pscsi: fix return value check + - LP: #1257037 + * vhost/scsi: Fix incorrect usage of get_user_pages_fast write parameter + - LP: #1257037 + * clockevents: Sanitize ticks to nsec conversion + - LP: #1257037 + * parisc: Do not crash 64bit SMP kernels on machines with >= 4GB RAM + - LP: #1257037 + * scripts/kallsyms: filter symbols not in kernel address space + - LP: #1257037 + * ARC: Incorrect mm reference used in vmalloc fault handler + - LP: #1257037 + * ALSA: hda - Add missing initial vmaster hook at build_controls callback + - LP: #1257037 + * ALSA: hda - Fix unbalanced runtime PM refcount after S3/S4 + - LP: #1257037 + * ALSA: hda - Add a fixup for ASUS N76VZ + - LP: #1257037 + * ALSA: fix oops in snd_pcm_info() caused by ASoC DPCM + - LP: #1257037 + * ASoC: wm_hubs: Add missing break in hp_supply_event() + - LP: #1257037 + * ASoC: dapm: Fix source list debugfs outputs + - LP: #1257037 + * staging: ozwpan: prevent overflow in oz_cdev_write() + - LP: #1257037 + * Staging: bcm: info leak in ioctl + - LP: #1257037 + * Staging: sb105x: info leak in mp_get_count() + - LP: #1257037 + * staging: wlags49_h2: buffer overflow setting station name + - LP: #1257037 + * uml: check length in exitcode_proc_write() + - LP: #1257037 + * xtensa: don't use alternate signal stack on threads + - LP: #1257037 + * mm: make generic_access_phys available for modules + - LP: #1257037 + * uio: provide vm access to UIO_MEM_PHYS maps + - LP: #1257037 + * Fix a few incorrectly checked [io_]remap_pfn_range() calls + - LP: #1257037 + * lib/scatterlist.c: don't flush_kernel_dcache_page on slab page + - LP: #1257037 + * aacraid: missing capable() check in compat ioctl + - LP: #1257037 + * clk: fixup argument order when setting VCO parameters + - LP: #1257037 + * clk: nomadik: set all timers to use 2.4 MHz TIMCLK + - LP: #1257037 + * mm: numa: Do not account for a hinting fault if we raced + - LP: #1257037 + * mm: Wait for THP migrations to complete during NUMA hinting faults + - LP: #1257037 + * mm: Prevent parallel splits during THP migration + - LP: #1257037 + * mm: numa: Sanitize task_numa_fault() callsites + - LP: #1257037 + * mm: Close races between THP migration and PMD numa clearing + - LP: #1257037 + * mm: Account for a THP NUMA hinting update as one PTE update + - LP: #1257037 + * mm: /proc/pid/pagemap: inspect _PAGE_SOFT_DIRTY only on present pages + - LP: #1257037 + * mm/pagewalk.c: fix walk_page_range() access of wrong PTEs + - LP: #1257037 + * drm/vmwgfx: Don't put resources with invalid id's on lru list + - LP: #1257037 + * drm/vmwgfx: Don't kill clients on VT switch + - LP: #1257037 + * drm/i915: split aux_clock_divider logic in a separated function for + reuse. + - LP: #1257037 + * drm/i915: Retry DP aux_ch communications with a different clock after + failure + - LP: #1257037 + * drm: Prevent overwriting from userspace underallocating core ioctl + structs + - LP: #1257037 + * drm: Pad drm_mode_get_connector to 64-bit boundary + - LP: #1257037 + * drm/radeon/atom: workaround vbios bug in transmitter table on rs780 + - LP: #1257037 + * drm/radeon: make missing smc ucode non-fatal (r7xx-SI) + - LP: #1257037 + * drm/i915: Add HSW CRT output readout support + - LP: #1257037 + * drm/i915: Add support for pipe_bpp readout + - LP: #1257037 + * drm/i915: No LVDS hardware on Intel D410PT and D425KT + - LP: #1257037 + * drm/i915: Fix the PPT fdi lane bifurcate state handling on ivb + - LP: #1257037 + * mutex: Avoid gcc version dependent __builtin_constant_p() usage + - LP: #1257037 + * seq_file: always update file->f_pos in seq_lseek() + - LP: #1257037 + * NTB: Add Error Handling in ntb_device_setup + - LP: #1257037 + * NTB: Correct Number of Scratch Pad Registers + - LP: #1257037 + * NTB: Correct USD/DSD Identification + - LP: #1257037 + * NTB: Correct debugfs to work with more than 1 NTB Device + - LP: #1257037 + * Linux 3.11.8 + - LP: #1257037 + * net/mlx4_core: Fix call to __mlx4_unregister_mac + - LP: #1257037 + * net: sctp: do not trigger BUG_ON in sctp_cmd_delete_tcb + - LP: #1257037 + * net: flow_dissector: fail on evil iph->ihl + - LP: #1257037 + * virtio-net: correctly handle cpu hotplug notifier during resuming + - LP: #1257037 + * xen-netback: use jiffies_64 value to calculate credit timeout + - LP: #1257037 + * cxgb3: Fix length calculation in write_ofld_wr() on 32-bit + architectures + - LP: #1257037 + * tcp: gso: fix truesize tracking + - LP: #1257037 + * ipv6: ip6_dst_check needs to check for expired dst_entries + - LP: #1257037 + * ipv6: reset dst.expires value when clearing expire flag + - LP: #1257037 + * xen-netback: Handle backend state transitions in a more robust way + - LP: #1257037 + * xen-netback: transition to CLOSED when removing a VIF + - LP: #1257037 + * Thermal: x86_pkg_temp: change spin lock + - LP: #1257037 + * hyperv-fb: add pci stub + - LP: #1257037 + * USB: add new zte 3g-dongle's pid to option.c + - LP: #1257037 + * ALSA: hda - hdmi: Fix reported channel map on common default layouts + - LP: #1257037 + * tracing: Fix potential out-of-bounds in trace_get_user() + - LP: #1257037 + * drm/i915/dp: workaround BIOS eDP bpp clamping issue + - LP: #1257037 + * perf: Fix perf ring buffer memory ordering + - LP: #1257037 + * iwlwifi: pcie: add new SKUs for 7000 & 3160 NIC series + - LP: #1257037 + * misc: atmel_pwm: add deferred-probing support + - LP: #1257037 + * backlight: atmel-pwm-bl: fix deferred probe from __init + - LP: #1257037 + * usb: fix cleanup after failure in hub_configure() + - LP: #1257037 + * usb: fail on usb_hub_create_port_device() errors + - LP: #1257037 + * usbcore: set lpm_capable field for LPM capable root hubs + - LP: #1257037 + * media: sh_vou: almost forever loop in sh_vou_try_fmt_vid_out() + - LP: #1257037 + * Linux 3.11.9 + - LP: #1257037 + * ACPICA: DeRefOf operator: Update to fully resolve FieldUnit and + BufferField refs. + - LP: #1257037 + * libertas: potential oops in debugfs + - LP: #1257037 + * aacraid: prevent invalid pointer dereference + - LP: #1257037 + * ACPICA: Return error if DerefOf resolves to a null package element. + - LP: #1257037 + * ACPICA: Fix for a Store->ArgX when ArgX contains a reference to a + field. + - LP: #1257037 + * USB: mos7840: fix tiocmget error handling + - LP: #1257037 + * can: kvaser_usb: fix usb endpoints detection + - LP: #1257037 + * Btrfs: relocate csums properly with prealloc extents + - LP: #1257037 + * crypto: ansi_cprng - Fix off by one error in non-block size request + - LP: #1257037 + * crypto: s390 - Fix aes-cbc IV corruption + - LP: #1257037 + * can: c_can: Fix RX message handling, handle lost message before EOB + - LP: #1257037 + * alx: Reset phy speed after resume + - LP: #1257037 + * ipc,shm: correct error return value in shmctl (SHM_UNLOCK) + - LP: #1257037 + * ipc,shm: fix shm_file deletion races + - LP: #1257037 + * drm/nvc0-/gr: fix a number of missing explicit array terminators... + - LP: #1257037 + * thinkpad_acpi: Fix build error when CONFIG_SND_MAX_CARDS > 32 + - LP: #1257037 + * SUNRPC: don't map EKEYEXPIRED to EACCES in call_refreshresult + - LP: #1257037 + * sched, idle: Fix the idle polling state logic + - LP: #1257037 + * PCI: Allow PCIe Capability link-related register access for switches + - LP: #1257037 + * PCI: Remove PCIe Capability version checks + - LP: #1257037 + * PCI: Support PCIe Capability Slot registers only for ports with slots + - LP: #1257037 + * perf/ftrace: Fix paranoid level for enabling function tracer + - LP: #1257037 + * ACPI / EC: Ensure lock is acquired before accessing ec struct members + - LP: #1257037 + * ACPI / video: Quirk initial backlight level 0 + - LP: #1257037 + * ACPI / hotplug: Fix handle_root_bridge_removal() + - LP: #1257037 + * ACPI / hotplug: Do not execute "insert in progress" _OST + - LP: #1257037 + * Staging: zram: Fix access of NULL pointer + - LP: #1257037 + * staging: comedi: avoid memleak for subdevice private + - LP: #1257037 + * Drivers: hv: vmbus: Fix a bug in channel rescind code + - LP: #1257037 + * rt2x00: fix a crash bug in the HT descriptor handling fix + - LP: #1257037 + * rt2x00: check if device is still available on rt2x00mac_flush() + - LP: #1257037 + * rt2x00: rt2800lib: fix VGC adjustment for RT5592 + - LP: #1257037 + * rt2x00: fix HT TX descriptor settings regression + - LP: #1257037 + * Bluetooth: revert: "Bluetooth: Add missing reset_resume dev_pm_ops" + - LP: #1257037 + * exec/ptrace: fix get_dumpable() incorrect tests + - LP: #1257037 + - CVE-2013-2929 + * Linux 3.11.10 + - LP: #1257037 + + -- Brad Figg Mon, 02 Dec 2013 14:29:15 -0800 + +linux (3.11.0-14.21) saucy; urgency=low + + [Brad Figg] + + * Release Tracking Bug + - LP: #1250540 + + [ Anthony Wong ] + + * SAUCE: Work around broken ACPI backlight on Dell Inspiron 5537 + - LP: #1231305 + + [ Colin Ian King ] + + * SAUCE: eCryptfs: fix 32 bit corruption issue + - LP: #1243636 + + [ Ming Lei ] + + * SAUCE: ext4: fix performance regression in ext4_writepages + - LP: #1242812 + + [ Upstream Kernel Changes ] + + * Revert "bridge: only expire the mdb entry when query is received" + - LP: #1249081 + * ext4: fix performance regression in writeback of random writes + - LP: #1242812 + * be2net: pass if_id for v1 and V2 versions of TX_CREATE cmd + - LP: #1234019 + * tcp: TSO packets automatic sizing + - LP: #1249081 + * tcp: TSQ can use a dynamic limit + - LP: #1249081 + * tcp: must unclone packets before mangling them + - LP: #1249081 + * tcp: do not forget FIN in tcp_shifted_skb() + - LP: #1249081 + * tcp: fix incorrect ca_state in tail loss probe + - LP: #1249081 + * net: do not call sock_put() on TIMEWAIT sockets + - LP: #1249081 + * batman-adv: set up network coding packet handlers during module init + - LP: #1249081 + * l2tp: fix kernel panic when using IPv4-mapped IPv6 addresses + - LP: #1249081 + * l2tp: Fix build warning with ipv6 disabled. + - LP: #1249081 + * net: mv643xx_eth: update statistics timer from timer context only + - LP: #1249081 + * net: mv643xx_eth: fix orphaned statistics timer crash + - LP: #1249081 + * net: heap overflow in __audit_sockaddr() + - LP: #1249081 + * sit: amend "allow to use rtnl ops on fb tunnel" + - LP: #1249081 + * proc connector: fix info leaks + - LP: #1249081 + * ipv4: fix ineffective source address selection + - LP: #1249081 + * can: dev: fix nlmsg size calculation in can_get_size() + - LP: #1249081 + * net: secure_seq: Fix warning when CONFIG_IPV6 and CONFIG_INET are not + selected + - LP: #1249081 + * xen-netback: Don't destroy the netdev until the vif is shut down + - LP: #1249081 + * net/mlx4_en: Rename name of mlx4_en_rx_alloc members + - LP: #1249081 + * net/mlx4_en: Fix pages never dma unmapped on rx + - LP: #1249081 + * net: vlan: fix nlmsg size calculation in vlan_get_size() + - LP: #1249081 + * bridge: update mdb expiration timer upon reports. + - LP: #1249081 + * vti: get rid of nf mark rule in prerouting + - LP: #1249081 + * l2tp: must disable bh before calling l2tp_xmit_skb() + - LP: #1249081 + * netem: update backlog after drop + - LP: #1249081 + * netem: free skb's in tree on reset + - LP: #1249081 + * farsync: fix info leak in ioctl + - LP: #1249081 + * unix_diag: fix info leak + - LP: #1249081 + * connector: use nlmsg_len() to check message length + - LP: #1249081 + * bnx2x: record rx queue for LRO packets + - LP: #1249081 + * virtio-net: don't respond to cpu hotplug notifier if we're not ready + - LP: #1249081 + * virtio-net: refill only when device is up during setting queues + - LP: #1249081 + * bridge: Correctly clamp MAX forward_delay when enabling STP + - LP: #1249081 + * net: dst: provide accessor function to dst->xfrm + - LP: #1249081 + * sctp: Use software crc32 checksum when xfrm transform will happen. + - LP: #1249081 + * sctp: Perform software checksum if packet has to be fragmented. + - LP: #1249081 + * wanxl: fix info leak in ioctl + - LP: #1249081 + * net: unix: inherit SOCK_PASS{CRED, SEC} flags from socket to fix race + - LP: #1249081 + * net: fix cipso packet validation when !NETLABEL + - LP: #1249081 + * inet: fix possible memory corruption with UDP_CORK and UFO + - LP: #1249081 + * ipv6: always prefer rt6i_gateway if present + - LP: #1249081 + * ipv6: fill rt6i_gateway with nexthop address + - LP: #1249081 + * netfilter: nf_conntrack: fix rt6i_gateway checks for H.323 helper + - LP: #1249081 + * ipv6: probe routes asynchronous in rt6_probe + - LP: #1249081 + * davinci_emac.c: Fix IFF_ALLMULTI setup + - LP: #1249081 + * ARM: 7851/1: check for number of arguments in + syscall_get/set_arguments() + - LP: #1249081 + * ARM: integrator: deactivate timer0 on the Integrator/CP + - LP: #1249081 + * ext[34]: fix double put in tmpfile + - LP: #1249081 + * gpio/lynxpoint: check if the interrupt is enabled in IRQ handler + - LP: #1249081 + * dm snapshot: fix data corruption + - LP: #1249081 + - CVE-2013-4299 + * i2c: ismt: initialize DMA buffer + - LP: #1249081 + * mm: migration: do not lose soft dirty bit if page is in migration state + - LP: #1249081 + * mm/zswap: bugfix: memory leak when re-swapon + - LP: #1249081 + * mm: fix BUG in __split_huge_page_pmd + - LP: #1249081 + * ALSA: us122l: Fix pcm_usb_stream mmapping regression + - LP: #1249081 + * ALSA: hda - Fix inverted internal mic not indicated on some machines + - LP: #1227491, #1239392, #1249081 + * writeback: fix negative bdi max pause + - LP: #1249081 + * w1 - call request_module with w1 master mutex unlocked + - LP: #1249081 + * wireless: radiotap: fix parsing buffer overrun + - LP: #1249081 + * wireless: cw1200: acquire hwbus lock around cw1200_irq_handler() call. + - LP: #1249081 + * serial: vt8500: add missing braces + - LP: #1249081 + * USB: serial: ti_usb_3410_5052: add Abbott strip port ID to combined + table as well. + - LP: #1249081 + * USB: serial: option: add support for Inovia SEW858 device + - LP: #1249081 + * usb: serial: option: blacklist Olivetti Olicard200 + - LP: #1249081 + * Linux 3.11.7 + - LP: #1249081 + * tg3: Add support for new 57786 device id. + - LP: #1242610 + + -- Brad Figg Tue, 12 Nov 2013 08:10:21 -0800 + +linux (3.11.0-13.20) saucy; urgency=low + + [ Brad Figg ] + + * Release Tracking Bug + - LP: #1242793 + + [ Paolo Pisati ] + + * [Config] amhf: VIRTIO_CONSOLE=y + - LP: #1237982 + * [Config] AHCI_IMX=y + - LP: #1240038 + + [ Tim Gardner ] + + * [Config] CONFIG_USB_OTG=n for all arches + - LP: #1047527 + * dm-raid4-5: Fix compile issues + - LP: #1241086 + * [Config] CONFIG_DM_RAID45=m + - LP: #1241086 + + [ Upstream Kernel Changes ] + + * Revert "cw1200: Don't perform SPI transfers in interrupt context" + - LP: #1237530 + * block: Fix bio_copy_data() + - LP: #1237530 + * sysv: Add forgotten superblock lock init for v7 fs + - LP: #1237530 + * bcache: Fix a dumb journal discard bug + - LP: #1237530 + * bcache: Strip endline when writing the label through sysfs + - LP: #1237530 + * bcache: Fix for when no journal entries are found + - LP: #1237530 + * bcache: Fix a writeback performance regression + - LP: #1237530 + * bcache: Fix a flush/fua performance bug + - LP: #1237530 + * bcache: Fix a dumb CPU spinning bug in writeback + - LP: #1237530 + * bcache: Fix a shrinker deadlock + - LP: #1237530 + * bcache: Fix for handling overlapping extents when reading in a btree + node + - LP: #1237530 + * bcache: Fix flushes in writeback mode + - LP: #1237530 + * kernel/reboot.c: re-enable the function of variable reboot_default + - LP: #1237530 + * x86/reboot: Add quirk to make Dell C6100 use reboot=pci automatically + - LP: #1237530 + * tools lib lk: Uninclude linux/magic.h in debugfs.c + - LP: #1237530 + * x86, efi: Don't map Boot Services on i386 + - LP: #1237530 + * mei: make me client counters less error prone + - LP: #1237530 + * mei: bus: stop wait for read during cl state transition + - LP: #1237530 + * mei: cancel stall timers in mei_reset + - LP: #1237530 + * tty: Fix SIGTTOU not sent with tcflush() + - LP: #1237530 + * serial: tegra: fix tty-kref leak + - LP: #1237530 + * serial: pch_uart: fix tty-kref leak in rx-error path + - LP: #1237530 + * serial: pch_uart: fix tty-kref leak in dma-rx path + - LP: #1237530 + * ARM: 7837/3: fix Thumb-2 bug in AES assembler code + - LP: #1237530 + * staging: vt6656: [BUG] main_usb.c oops on device_close move flag + earlier. + - LP: #1237530 + * staging: vt6656: [BUG] iwctl_siwencodeext return if device not open + - LP: #1237530 + * drm/i915/tv: clear adjusted_mode.flags + - LP: #1237530 + * cw1200: Use a threaded oneshot irq handler for cw1200_spi + - LP: #1237530 + * xhci: Ensure a command structure points to the correct trb on the + command ring + - LP: #1237530 + * xhci: Fix oops happening after address device timeout + - LP: #1237530 + * USB: fix PM config symbol in uhci-hcd, ehci-hcd, and xhci-hcd + - LP: #1237530 + * xhci: Fix race between ep halt and URB cancellation + - LP: #1237530 + * USB: OHCI: accept very late isochronous URBs + - LP: #1237530 + * USB: UHCI: accept very late isochronous URBs + - LP: #1237530 + * USB: Fix breakage in ffs_fs_mount() + - LP: #1237530 + * fsl/usb: Resolve PHY_CLK_VLD instability issue for ULPI phy + - LP: #1237530 + * usb: dwc3: pci: add support for BayTrail + - LP: #1237530 + * usb: dwc3: add support for Merrifield + - LP: #1237530 + * usb/core/devio.c: Don't reject control message to endpoint with wrong + direction bit + - LP: #1237530 + * driver core : Fix use after free of dev->parent in device_shutdown + - LP: #1237530 + * dm snapshot: workaround for a false positive lockdep warning + - LP: #1237530 + * dm-snapshot: fix performance degradation due to small hash size + - LP: #1237530 + * dm mpath: disable WRITE SAME if it fails + - LP: #1237530 + * drm/i915: preserve pipe A quirk in i9xx_set_pipeconf + - LP: #1237530 + * drm/i915/dp: increase i2c-over-aux retry interval on AUX DEFER + - LP: #1237530 + * drm/radeon/cik: Fix printing of client name on VM protection fault + - LP: #1237530 + * drm/radeon/cik: Fix encoding of number of banks in tiling configuration + info + - LP: #1237530 + * drm/radeon/cik: fix overflow in vram fetch + - LP: #1237530 + * drm/radeon: avoid UVD corruption on AGP cards using GPU gart + - LP: #1237530 + * drm/radeon: Make r100_cp_ring_info() and radeon_ring_gfx() safe (v2) + - LP: #1237530 + * drm/radeon: don't set default clocks for SI when DPM is disabled + - LP: #1237530 + * drm/radeon: disable tests/benchmarks if accel is disabled + - LP: #1237530 + * drm/radeon: add missing hdmi callbacks for rv6xx + - LP: #1237530 + * drm/radeon: fix hdmi audio on DCE3.0/3.1 asics + - LP: #1237530 + * hwmon: (applesmc) Check key count before proceeding + - LP: #1237530 + * ALSA: compress: Fix compress device unregister. + - LP: #1237530 + * irq: Always define devm_{request_threaded,free}_irq() + - LP: #1237530 + * Linux 3.11.4 + - LP: #1237530 + * ARM: dtsi: enable ahci sata on imx6q platforms + - LP: #1240038 + * nfsd4: fix leak of inode reference on delegation failure + - LP: #1240072 + * HID: fix data access in implement() + - LP: #1240072 + * HID: fix unused rsize usage + - LP: #1240072 + * sh_eth: fix napi_{en|dis}able() calls racing against interrupts + - LP: #1240072 + * caif: Add missing braces to multiline if in cfctrl_linkup_request + - LP: #1240072 + * tcp: Add missing braces to do_tcp_setsockopt + - LP: #1240072 + * ipv6/exthdrs: accept tlv which includes only padding + - LP: #1240072 + * net: fib: fib6_add: fix potential NULL pointer dereference + - LP: #1240072 + * net: sctp: fix bug in sctp_poll for SOCK_SELECT_ERR_QUEUE + - LP: #1240072 + * net: sctp: fix smatch warning in sctp_send_asconf_del_ip + - LP: #1240072 + * net: fix multiqueue selection + - LP: #1240072 + * net: flow_dissector: fix thoff for IPPROTO_AH + - LP: #1240072 + * net_sched: htb: fix a typo in htb_change_class() + - LP: #1240072 + * r8169: enforce RX_MULTI_EN for the 8168f. + - LP: #1240072 + * netpoll: Should handle ETH_P_ARP other than ETH_P_IP in + netpoll_neigh_reply + - LP: #1240072 + * netpoll: fix NULL pointer dereference in netpoll_cleanup + - LP: #1240072 + * tuntap: correctly handle error in tun_set_iff() + - LP: #1240072 + * net: sctp: fix ipv6 ipsec encryption bug in sctp_v6_xmit + - LP: #1240072 + * xen-netback: count number required slots for an skb more carefully + - LP: #1240072 + * resubmit bridge: fix message_age_timer calculation + - LP: #1240072 + * bridge: Clamp forward_delay when enabling STP + - LP: #1240072 + * bridge: use br_port_get_rtnl within rtnl lock + - LP: #1240072 + * bridge: fix NULL pointer deref of br_port_get_rcu + - LP: #1240072 + * ip6_tunnels: raddr and laddr are inverted in nl msg + - LP: #1240072 + * net: sctp: rfc4443: do not report ICMP redirects to user space + - LP: #1240072 + * ethernet/arc/arc_emac: Fix huge delays in large file copies + - LP: #1240072 + * vxlan: Avoid creating fdb entry with NULL destination + - LP: #1240072 + * batman-adv: set the TAG flag for the vid passed to BLA + - LP: #1240072 + * net:dccp: do not report ICMP redirects to user space + - LP: #1240072 + * ip: use ip_hdr() in __ip_make_skb() to retrieve IP header + - LP: #1240072 + * ip: generate unique IP identificator if local fragmentation is allowed + - LP: #1240072 + * skge: fix invalid value passed to pci_unmap_sigle + - LP: #1240072 + * ipv6: udp packets following an UFO enqueued packet need also be handled + by UFO + - LP: #1240072 + * via-rhine: fix VLAN priority field (PCP, IEEE 802.1p) + - LP: #1240072 + * IPv6 NAT: Do not drop DNATed 6to4/6rd packets + - LP: #1240072 + * net: net_secret should not depend on TCP + - LP: #1240072 + * ip_tunnel: Do not use stale inner_iph pointer. + - LP: #1240072 + * dm9601: fix IFF_ALLMULTI handling + - LP: #1240072 + * bonding: Fix broken promiscuity reference counting issue + - LP: #1240072 + * ipv6: gre: correct calculation of max_headroom + - LP: #1240072 + * ipv4 igmp: use in_dev_put in timer handlers instead of __in_dev_put + - LP: #1240072 + * ipv6 mcast: use in6_dev_put in timer handlers instead of __in6_dev_put + - LP: #1240072 + * ll_temac: Reset dma descriptors indexes on ndo_open + - LP: #1240072 + * ip_tunnel: Fix a memory corruption in ip_tunnel_xmit + - LP: #1240072 + * ip_tunnel_core: Change __skb_push back to skb_push + - LP: #1240072 + * sit: allow to use rtnl ops on fb tunnel + - LP: #1240072 + * ip6tnl: allow to use rtnl ops on fb tunnel + - LP: #1240072 + * avr32: fix clockevents kernel warning + - LP: #1240072 + * regulator: ti-abb: Fix bias voltage glitch in transition to bypass mode + - LP: #1240072 + * fs/binfmt_elf.c: prevent a coredump with a large vm_map_count from + Oopsing + - LP: #1240072 + * gpio/omap: maintain GPIO and IRQ usage separately + - LP: #1240072 + * gpio/omap: auto-setup a GPIO when used as an IRQ + - LP: #1240072 + * ASoC: max98095: a couple array underflows + - LP: #1240072 + * ASoC: 88pm860x: array overflow in snd_soc_put_volsw_2r_st() + - LP: #1240072 + * ASoC: ab8500-codec: info leak in anc_status_control_put() + - LP: #1240072 + * ARM: kvm: rename cpu_reset to avoid name clash + - LP: #1240072 + * ARM: mach-integrator: Add stub for pci_v3_early_init() for !CONFIG_PCI + - LP: #1240072 + * iommu/arm-smmu: fix a signedness bug + - LP: #1240072 + * iommu/arm-smmu: fix iommu_present() test in init + - LP: #1240072 + * iommu/arm-smmu: don't enable SMMU device until probing has completed + - LP: #1240072 + * powerpc/iommu: Use GFP_KERNEL instead of GFP_ATOMIC in + iommu_init_table() + - LP: #1240072 + * powerpc/perf: Fix handling of FAB events + - LP: #1240072 + * powerpc/tm: Switch out userspace PPR and DSCR sooner + - LP: #1240072 + * powerpc/tm: Turn interrupts hard off in tm_reclaim() + - LP: #1240072 + * powerpc/vio: Fix modalias_show return values + - LP: #1240072 + * powerpc: Fix parameter clobber in csum_partial_copy_generic() + - LP: #1240072 + * powerpc: Fix memory hotplug with sparse vmemmap + - LP: #1240072 + * powerpc/sysfs: Disable writing to PURR in guest mode + - LP: #1240072 + * powerpc: Restore registers on error exit from + csum_partial_copy_generic() + - LP: #1240072 + * fuse: wait for writeback in fuse_file_fallocate() + - LP: #1240072 + * fuse: fix fallocate vs. ftruncate race + - LP: #1240072 + * brcmfmac: obtain platform data upon module initialization + - LP: #1240072 + * Bluetooth: Fix security level for peripheral role + - LP: #1240072 + * Bluetooth: Fix encryption key size for peripheral role + - LP: #1240072 + * Bluetooth: Add a new PID/VID 0cf3/e005 for AR3012. + - LP: #1240072 + * Bluetooth: Add support for BCM20702A0 [0b05, 17cb] + - LP: #1240072 + * Bluetooth: Introduce a new HCI_RFKILLED flag + - LP: #1240072 + * Bluetooth: Fix rfkill functionality during the HCI setup stage + - LP: #1240072 + * nilfs2: fix issue with race condition of competition between segments + for dirty blocks + - LP: #1240072 + * ipc/sem.c: fix race in sem_lock() + - LP: #1240072 + * ipc,msg: prevent race with rmid in msgsnd,msgrcv + - LP: #1240072 + * ipc: fix race with LSMs + - LP: #1240072 + * sparc64: Fix buggy strlcpy() conversion in ldom_reboot(). + - LP: #1240072 + * sparc: fix ldom_reboot buffer overflow harder + - LP: #1240072 + * sparc64: Remove RWSEM export leftovers + - LP: #1240072 + * sparc64: Fix ITLB handler of null page + - LP: #1240072 + * esp_scsi: Fix tag state corruption when autosensing. + - LP: #1240072 + * sparc64: Fix off by one in trampoline TLB mapping installation loop. + - LP: #1240072 + * sparc64: Fix not SRA'ed %o5 in 32-bit traced syscall + - LP: #1240072 + * sparc32: Fix exit flag passed from traced sys_sigreturn + - LP: #1240072 + * mm: Fix generic hugetlb pte check return type. + - LP: #1240072 + * mm/bounce.c: fix a regression where MS_SNAP_STABLE (stable pages + snapshotting) was ignored + - LP: #1240072 + * kernel/kmod.c: check for NULL in call_usermodehelper_exec() + - LP: #1240072 + * staging: comedi: ni_65xx: (bug fix) confine insn_bits to one subdevice + - LP: #1240072 + * NFSv4.1: nfs4_fl_prepare_ds - fix bugs when the connect attempt fails + - LP: #1240072 + * mwifiex: fix NULL pointer dereference in usb suspend handler + - LP: #1240072 + * mwifiex: fix hang issue for USB chipsets + - LP: #1240072 + * mwifiex: fix PCIe hs_cfg cancel cmd timeout + - LP: #1240072 + * usb: chipidea: add Intel Clovertrail pci id + - LP: #1240072 + * USB: serial: option: Ignore card reader interface on Huawei E1750 + - LP: #1240072 + * xen/hvc: allow xenboot console to be used again + - LP: #1240072 + * ib_srpt: Destroy cm_id before destroying QP. + - LP: #1240072 + * ib_srpt: always set response for task management + - LP: #1240072 + * rtlwifi: Align private space in rtl_priv struct + - LP: #1240072 + * p54usb: add USB ID for Corega WLUSB2GTST USB adapter + - LP: #1240072 + * mm: avoid reinserting isolated balloon pages into LRU lists + - LP: #1240072 + * iscsi-target: Only perform wait_for_tasks when performing shutdown + - LP: #1240072 + * net: Update the sysctl permissions handler to test effective uid/gid + - LP: #1240072 + * irq: Force hardirq exit's softirq processing on its own stack + - LP: #1240072 + * drm/radeon: fix hdmi callbacks for rv6xx (incorrectly added to r520) + - LP: #1240072 + * dmaengine: imx-dma: fix lockdep issue between irqhandler and tasklet + - LP: #1240072 + * dmaengine: imx-dma: fix callback path in tasklet + - LP: #1240072 + * dmaengine: imx-dma: fix slow path issue in prep_dma_cyclic + - LP: #1240072 + * ACPI / IPMI: Fix atomic context requirement of ipmi_msg_handler() + - LP: #1240072 + * xfs: fix node forward in xfs_node_toosmall + - LP: #1240072 + * drm/nouveau/bios/init: stub opcode 0xaa + - LP: #1240072 + * ARM: tegra: unify Tegra's Kconfig a bit more + - LP: #1240072 + * ALSA: hda - Fix GPIO for Acer Aspire 3830TG + - LP: #1240072 + * ARM: multi_v7_defconfig: enable ARM_ATAG_DTB_COMPAT + - LP: #1240072 + * HID: wiimote: fix FF deadlock + - LP: #1240072 + * mmc: fix null pointer use in mmc_blk_remove_req + - LP: #1240072 + * tile: use a more conservative __my_cpu_offset in CONFIG_PREEMPT + - LP: #1240072 + * s390: fix system call restart after inferior call + - LP: #1240072 + * Btrfs: reset ret in record_one_backref + - LP: #1240072 + * Btrfs: change how we queue blocks for backref checking + - LP: #1240072 + * Btrfs: skip subvol entries when checking if we've created a dir already + - LP: #1240072 + * Btrfs: remove ourselves from the cluster list under lock + - LP: #1240072 + * HID: roccat: add support for KonePureOptical v2 + - LP: #1240072 + * HID: add Holtek USB ID 04d9:a081 SHARKOON DarkGlider + - LP: #1240072 + * HID: uhid: add devname module alias + - LP: #1240072 + * HID: uhid: allocate static minor + - LP: #1240072 + * net: qmi_wwan: add new Qualcomm devices + - LP: #1240072 + * bcache: Fix a null ptr deref regression + - LP: #1240072 + * Linux 3.11.5 + - LP: #1240072 + * ALSA: snd-usb-usx2y: remove bogus frame checks + - LP: #1242700 + * ALSA: hda - hdmi: Fix channel map switch not taking effect + - LP: #1242700 + * ALSA: hda - Add fixup for ASUS N56VZ + - LP: #1242700 + * ALSA: hda - Fix microphone for Sony VAIO Pro 13 (Haswell model) + - LP: #1227093, #1242700 + * random: run random_int_secret_init() run after all late_initcalls + - LP: #1242700 + * vfs: allow O_PATH file descriptors for fstatfs() + - LP: #1242700 + * i2c: omap: Clear ARDY bit twice + - LP: #1242700 + * hwmon: (applesmc) Always read until end of data + - LP: #1242700 + * Btrfs: use right root when checking for hash collision + - LP: #1242700 + * ext4: fix memory leak in xattr + - LP: #1242700 + * KVM: PPC: Book3S HV: Fix typo in saving DSCR + - LP: #1242700 + * parisc: fix interruption handler to respect pagefault_disable() + - LP: #1242700 + * ARC: Fix __udelay calculation + - LP: #1242700 + * ARC: Handle zero-overhead-loop in unaligned access handler + - LP: #1242700 + * ARC: Fix 32-bit wrap around in access_ok() + - LP: #1242700 + * ARC: Workaround spinlock livelock in SMP SystemC simulation + - LP: #1242700 + * ARC: Fix signal frame management for SA_SIGINFO + - LP: #1242700 + * ARC: Ignore ptrace SETREGSET request for synthetic register "stop_pc" + - LP: #1242700 + * watchdog: ts72xx_wdt: locking bug in ioctl + - LP: #1242700 + * watchdog: kempld_wdt: Fix bit mask definition + - LP: #1242700 + * MIPS: stack protector: Fix per-task canary switch + - LP: #1242700 + * drm/radeon/dpm/btc: off by one in btc_set_mc_special_registers() + - LP: #1242700 + * compiler/gcc4: Add quirk for 'asm goto' miscompilation bug + - LP: #1242700 + * ALSA: hda - Fix mono speakers and headset mic on Dell Vostro 5470 + - LP: #1236228, #1242700 + * drm/i915/hsw: Disable L3 caching of atomic memory operations. + - LP: #1242700 + * drm/i915: Only apply DPMS to the encoder if enabled + - LP: #1242700 + * drm/i915: fix rps.vlv_work initialization + - LP: #1242700 + * drm/radeon/dpm: off by one in si_set_mc_special_registers() + - LP: #1242700 + * drm/radeon: forever loop on error in radeon_do_test_moves() + - LP: #1242700 + * drm/radeon: fix typo in CP DMA register headers + - LP: #1242700 + * drm/radeon: fix hw contexts for SUMO2 asics + - LP: #1242700 + * ipc,shm: introduce lockless functions to obtain the ipc object + - LP: #1242700 + * ipc,shm: shorten critical region in shmctl_down + - LP: #1242700 + * ipc: drop ipcctl_pre_down + - LP: #1242700 + * ipc,shm: introduce shmctl_nolock + - LP: #1242700 + * ipc,shm: make shmctl_nolock lockless + - LP: #1242700 + * ipc,shm: shorten critical region for shmctl + - LP: #1242700 + * ipc,shm: cleanup do_shmat pasta + - LP: #1242700 + * ipc,shm: shorten critical region for shmat + - LP: #1242700 + * ipc: rename ids->rw_mutex + - LP: #1242700 + * ipc,msg: drop msg_unlock + - LP: #1242700 + * ipc: document general ipc locking scheme + - LP: #1242700 + * ipc, shm: guard against non-existant vma in shmdt(2) + - LP: #1242700 + * ipc: drop ipc_lock_by_ptr + - LP: #1242700 + * ipc, shm: drop shm_lock_check + - LP: #1242700 + * ipc: drop ipc_lock_check + - LP: #1242700 + * ipc/sem.c: optimize sem_lock() + - LP: #1242700 + * ipc/sem.c: synchronize the proc interface + - LP: #1242700 + * ipc/sem.c: update sem_otime for all operations + - LP: #1242700 + * x86: avoid remapping data in parse_setup_data() + - LP: #1242700 + * Linux 3.11.6 + - LP: #1242700 + + -- Brad Figg Mon, 21 Oct 2013 10:21:14 -0700 + +linux (3.11.0-12.19) saucy; urgency=low + + [ Andy Whitcroft ] + + * [Config] fix linux-libc-dev generation for arm64 + * [Config] fix linux-libc-dev generation for x32 + * [Config] add linux-libc-dev generation for ppc64el + + -- Andy Whitcroft Wed, 09 Oct 2013 12:33:07 +0100 + +linux (3.11.0-12.18) saucy; urgency=low + + [ Andy Whitcroft ] + + * [Packing] tools -- when tools are off they are off + * [config] tools -- linux-tools-common really is common + * [Packaging] tools -- make cpupower optional + * [Packaging] tools -- fix crosscompilation + * [config] tools -- enable cpupower + * SAUCE: storvsc -- host takes MAINTENANCE_IN commands badly elide them + - LP: #1234417 + + [ John Johansen ] + + * SAUCE: apparmor: fix unix domain sockets to be mediated on connection + - LP: #1208988 + * SAUCE: apparmor: allocate path lookup buffers during init + - LP: #1208988 + * SAUCE: apparmor: fix memleak of the profile hash + - LP: #1235523 + * SAUCE: apparmor: fix memleak of replacedby struct + - LP: #1235973 + * SAUCE: apparmor: fix bad lock balance when introspecting policy + - LP: #1235977 + + [ Paolo Pisati ] + + * [Config] arm: VIRTIO_[BLK|NET|MMIO]=y + + [ Rob Herring ] + + * SAUCE: (no-up) net: calxedaxgmac: fix clearing of old filter addresses + - LP: #1235272 + * SAUCE: (no-up) net: calxedaxgmac: add uc and mc filter addresses in + promiscuous mode + - LP: #1235272 + * SAUCE: (no-up) net: calxedaxgmac: determine number of address filters + at runtime + - LP: #1235272 + + [ Tim Gardner ] + + * [Config] CONFIG_ANDROID=n + - LP: #1235161 + * [Config] CONFIG_L2TP_V3=y + - LP: #1235914 + * Release tracker + - LP: #1236999 + + [ Upstream Kernel Changes ] + + * Revert "HID: core: fix reporting of raw events" + - LP: #1218004 + + -- Andy Whitcroft Fri, 04 Oct 2013 13:08:59 +0100 + +linux (3.11.0-11.17) saucy; urgency=low + + [ Andy Whitcroft ] + + * [Packaging] tools -- only build common tools package in master + * SAUCE: tools -- report when tool is not available + - LP: #1233376 + * [Packaging] tools -- common tools must carry all possible tools + - LP: #1233376 + + [ Colin Ian King ] + + * [Config] Fix power and performance regression + - LP: #1233681 + + [ Colin Watson ] + + * [Config] Clean up various udeb Provides + + [ Tim Gardner ] + + * rebase to v3.11.3 + * Release tracker + - LP: #1233808 + + [ Upstream Kernel Changes ] + + * ALSA: hda - Add CS4208 codec support for MacBook 6,1 and 6,2 + - LP: #1233623 + * ALSA: hda - Add fixup for MacBook Air 6,1 and 6,2 with CS4208 codec + - LP: #1233623 + * NVMe: Remove "process_cq did something" message + - LP: #1233686 + * Drivers: hv: balloon: Initialize the transaction ID just before sending the packet + - LP: #1233466 + * cciss: fix info leak in cciss_ioctl32_passthru() + - LP: #1188355 + - CVE-2013-2147 + * cpqarray: fix info leak in ida_locked_ioctl() + - LP: #1188355 + - CVE-2013-2147 + * Drivers: hv: util: Fix a bug in version negotiation code for util services + - LP: #1233433 + + -- Tim Gardner Tue, 01 Oct 2013 07:24:27 -0600 + +linux (3.11.0-9.16) saucy; urgency=low + + [ Andy Whitcroft ] + + * Revert "SAUCE: (no-up) scsi: hyper-v storage -- mark as preferring READ + CAPACITY (16) at SPC-2" + * Revert "SAUCE: (no-up) scsi: hyper-v storage -- mark as VPD capable at + SPC-2" + * Revert "SAUCE: (no-up) scsi: add scsi device flag to request READ + CAPACITY (16) be preferred" + * Revert "SAUCE: (no-up) scsi: add scsi device flag to request VPD pages + be used at SPC-2" + + [ Seth Forshee ] + + * SAUCE: (no-up) ACPI: Disable Windows 8 compatibility for some Lenovo + ThinkPads + - LP: #1183856 + + [ Tim Gardner ] + + * [Config] CONFIG_CRYPTO_CRCT10DIF=y, CONFIG_CRYPTO_CRCT10DIF_PCLMUL=m + * [packaging] Bump ABI for every new release + * rebase to v3.11.2 + * Release tracker + - LP: #1231999 + + + [ Upstream Kernel Changes ] + + * scsi: hyper-v storsvc switch up to SPC-3 + * perf/x86: Add Silvermont (22nm Atom) support + - LP: #1091539 + * perf/x86/intel: Fix Silvermont offcore masks + - LP: #1091539 + * modules: add support for soft module dependencies + - LP: #1188010 + * Reinstate "crypto: crct10dif - Wrap crc_t10dif function all to use + crypto transform framework" + - LP: #1188010 + * skge: fix broken driver + - LP: #1216745 + * Input: cypress_ps2 - Return zero finger count if palm is detected. + - LP: #1229361 + * udf: Standardize return values in mount sequence + - LP: #1228751 + * udf: Refuse RW mount of the filesystem instead of making it RO + - LP: #1228751 + * rebase to v3.11.2 + + -- Tim Gardner Mon, 23 Sep 2013 07:41:07 -0600 + +linux (3.11.0-8.15) saucy; urgency=low + + [ Tim Gardner ] + + * Release tracker + - LP: #1227969 + + * Update lttng + Updated to git://git.lttng.org/lttng-modules.git 9998f5216f4641a79e158135 + Version 2.3.0+ + + [ Upstream Kernel Changes ] + + * igb: Add additional get_phy_id call for i354 devices + - LP: #1219619 + * igb: Read flow control for i350 from correct EEPROM section + - LP: #1219619 + * timekeeping: Fix HRTICK related deadlock from ntp lock changes + Required for lttng update. + + -- Tim Gardner Thu, 19 Sep 2013 07:41:49 -0600 + +linux (3.11.0-7.14) saucy; urgency=low + + [ Andy Whitcroft ] + + * [Packaging] sort out linux-tools naming + - LP: #1205284 + * [Packaging] linux-tools: switch to common generic version helper + + [ Paolo Pisati ] + + * [Config] highbank: ecx1000: CPU_IDLE causes instabilities, disable it + + [ Tim Gardner ] + + * Release tracker + - LP: #1226160 + + [ Tony Lindgren ] + + * SAUCE: ARM: dts: Fix muxing and regulator for wl12xx on the SDIO bus + for pandaboard + + [ Upstream Kernel Changes ] + + * USB: handle LPM errors during device suspend correctly + - LP: #1011415 + * usb: don't check pm qos NO_POWER_OFF flag in usb_port_suspend() + - LP: #1011415 + * usb: Don't fail port power resume on device disconnect. + - LP: #1011415 + + [ Upstream Kernel Changes ] + + * rebase to v3.11.1 + + -- Tim Gardner Wed, 11 Sep 2013 07:30:17 -0600 + +linux (3.11.0-7.13) saucy; urgency=low + + * Release tracker + - LP: #1223545 + + [ Andy Whitcroft ] + + * SAUCE: (no-up) scsi: add scsi device flag to request VPD pages be used at SPC-2 + - LP: #1223499 + * SAUCE: (no-up) scsi: add scsi device flag to request READ CAPACITY (16) be preferred + - LP: #1223499 + * SAUCE: (no-up) scsi: hyper-v storage -- mark as VPD capable at SPC-2 + - LP: #1223499 + * SAUCE: (no-up) scsi: hyper-v storage -- mark as preferring READ CAPACITY (16) at SPC-2 + - LP: #1223499 + + [ Maximiliano Curia ] + + * SAUCE: (no-up) Only let characters through when there are active readers. + - LP: #1208740 + + [ Tim Gardner ] + + * [Debian] getabis: Commit new ABI directory, remove the old + * [Config] CONFIG_EFIVAR_FS=y + - LP: #1223195 + * [Config] CONFIG_EFI_VARS_PSTORE=m, + CONFIG_EFI_VARS_PSTORE_DEFAULT_DISABLE=n + * SAUCE: (no-up) USB: input: cm109.c: Convert high volume dev_err() to dev_err_ratelimited() + - LP: #1222850 + + [ Upstream Kernel Changes ] + + * Intel xhci: refactor EHCI/xHCI port switching + - LP: #1210858 + + -- Tim Gardner Tue, 10 Sep 2013 09:00:19 -0600 + +linux (3.11.0-6.12) saucy; urgency=low + + * Release tracker + - LP: #1222893 + + [ Andy Whitcroft ] + + * Revert "ubuntu: (no-squash) AUFS3 -- aufs3-standalone.patch" + * Revert "ubuntu: (no-squash) AUFS3 -- aufs3-base.patch" + * ubuntu: (no-squash) AUFS3 -- aufs3-base.patch + * ubuntu: (no-squash) AUFS3 -- aufs3-standalone.patch + - LP: #1222407 + + [ Paolo Pisati ] + + * [Config] restore mmc boot on panda + + [ Tyler Hicks ] + + * SAUCE: apparmor: Use shash crypto API interface for profile hashes + - LP: #1216294 + + [ Upstream Kernel Changes ] + + * net: calxedaxgmac: remove NETIF_F_FRAGLIST setting + * net: calxedaxgmac: read correct field in xgmac_desc_get_buf_len + * net: calxedaxgmac: fix race between xgmac_tx_complete and xgmac_tx_err + * net: calxedaxgmac: fix possible skb free before tx complete + * net: calxedaxgmac: update ring buffer tx_head after barriers + * net: calxedaxgmac: fix race with tx queue stop/wake + * net: calxedaxgmac: enable interrupts after napi_enable + * net: calxedaxgmac: fix various errors in xgmac_set_rx_mode + * net: calxedaxgmac: remove some unused statistic counters + * net: calxedaxgmac: fix rx DMA mapping API size mismatches + * net: calxedaxgmac: fix xgmac_xmit DMA mapping error handling + * mfd: rtsx: Read vendor setting from config space + - LP: #1201698 + + -- Tim Gardner Mon, 09 Sep 2013 07:21:06 -0600 + +linux (3.11.0-5.11) saucy; urgency=low + + * Release tracker + - LP: #1221886 + + [ Adam Lee ] + + * SAUCE: Bluetooth: Add support for 04ca:2007 + - LP: #1153448 + * SAUCE: Bluetooth: Add support for 105b:e065 + - LP: #1161261 + + [ Gavin Guo ] + + * SAUCE: Bluetooth: Add support for Broadcom 413c:8143 + - LP: #1166113 + + [ Upstream Kernel Changes ] + + * igb: Reset the link when EEE setting changed + - LP: #1219619 + * igb: Read register for latch_on without return value + - LP: #1219619 + * igb: Added rcu_lock to avoid race + - LP: #1219619 + * igb: don't allow SR-IOV without MSI-X + - LP: #1219619 + * igb: Update MTU so that it is always at least a standard frame size + - LP: #1219619 + * igb: Refactor of init_nvm_params + - LP: #1219619 + * igb: Refactor NVM read functions to accommodate devices with no flash + - LP: #1219619 + * igb: Add device support for flashless SKU of i210 device + - LP: #1219619 + * igb: Fix get_fw_version function for all parts + - LP: #1219619 + * igb: Add macro for size of RETA indirection table + - LP: #1219619 + * igb: Expose RSS indirection table for ethtool + - LP: #1219619 + * igb: Don't look for a PBA in the iNVM when flashless + - LP: #1219619 + * igb: Implementation of 1-sec delay for i210 devices + - LP: #1219619 + * igb: New PHY_ID for i354 device + - LP: #1219619 + * igb: M88E1543 PHY downshift implementation + - LP: #1219619 + * igb: No PHPM support in i354 devices + - LP: #1219619 + * igb: Support to get 2_5G link status for appropriate media type + - LP: #1219619 + * igb: Get speed and duplex for 1G non_copper devices + - LP: #1219619 + * igb: Implementation to report advertised/supported link on i354 devices + - LP: #1219619 + * igb: Update version number + - LP: #1219619 + * Bluetooth: Take proper tty_struct references + - LP: #1189998 + * Bluetooth: Remove the device from the list in the destructor + - LP: #1189998 + * Bluetooth: Move the tty initialization and cleanup out of open/close + - LP: #1189998 + * Bluetooth: Implement .activate, .shutdown and .carrier_raised methods + - LP: #1189998 + * Bluetooth: Fix the reference counting of tty_port + - LP: #1189998 + * Bluetooth: Purge the dlc->tx_queue to avoid circular dependency + - LP: #1189998 + + [ Wen-chien Jesse Sung ] + + * SAUCE: Bluetooth: Support for loading broadcom patchram firmware + - LP: #1065400 + * SAUCE: Bluetooth: Add support for 13d3:3388 and 13d3:3389 + - LP: #1065400 + + -- Tim Gardner Thu, 05 Sep 2013 08:06:17 -0600 + +linux (3.11.0-5.10) saucy; urgency=low + + [ Andy Whitcroft ] + + * Release tracker + - LP: #1220222 + * Revert "[Config] Fix ubuntu directoy Kbuilds" + * Revert "aufs update dropped some Kbuild files" + * Revert "ubuntu: AUFS -- follow rename of loop.h into drivers/block" + * Revert "ubuntu: AUFS -- update to + 8e503d4142c189ed6c47a2177ad2cd058e8d340e" + * Revert "ubuntu: (no-squash) AUFS3 -- aufs3-standalone.patch" + * Revert "ubuntu: (no-squash) AUFS3 -- aufs3-base.patch" + * rebase to v3.11 final + * [Config] clean up ubuntu/Kconfig and ubuntu/Makefile + * ubuntu: AUFS (no-squash): basic framework and update machinary + * ubuntu: (no-squash) AUFS3 -- aufs3-base.patch + * ubuntu: (no-squash) AUFS3 -- aufs3-standalone.patch + * ubuntu: AUFS -- update to 5ac5fe26a90a818218310e208d17688fddb07622 + * ubuntu: (no-squash) AUFS -- enable aufs + * ubuntu: AUFS -- fix remaining d_count references to use accessor + * ubuntu: lttng -- follow rename of pid_ns + * SAUCE: disable stack-protector for ARM compressed bootloader + + [ Paolo Pisati ] + + * [Config] ARM_ATAG_DTB_COMPAT=y + + [ Rob Herring ] + + * [Config] Enable KVM and virtio for armhf generic-lpae + + [ Tim Gardner ] + + * [Config] CONFIG_ARPD=y + * [Config] CONFIG_ZSWAP=y + - LP: #1215379 + + [ Upstream Kernel Changes ] + + * uvcvideo: quirk PROBE_DEF for Dell SP2008WFP monitor. + - LP: #1217957 + * ARM: use phys_addr_t for DMA zone sizes + * ARM: highbank: enable DMA zone for LPAE + * ARM: highbank: select ARCH_HAS_HOLES_MEMORYMODEL + * ARM: highbank: select required errata work-arounds + * DMA: fix AMBA PL08x compilation issue with 64bit DMA address type + * DMA: fix printk warning in AMBA PL08x DMA driver + * ARM: highbank: select ARCH_DMA_ADDR_T_64BIT for LPAE + * ARM: move outer_cache declaration out of ifdef + * ARM: highbank: avoid L2 cache smc calls when PL310 is not present + * ARM: highbank: clean-up some unused includes + * ARM: xen: only set pm function ptrs for Xen guests + + [ Upstream Kernel Changes ] + + * rebase to v3.11 + + -- Andy Whitcroft Tue, 03 Sep 2013 17:08:06 +0100 + +linux (3.11.0-4.9) saucy; urgency=low + + [ Tim Gardner ] + + * rebase to v3.11-rc7 + * Release tracker + - LP: #1216962 + + [ Upstream Kernel Changes ] + + * mwifiex: do not create AP and P2P interfaces upon driver loading + - LP: #1212720 + + -- Tim Gardner Mon, 26 Aug 2013 06:25:35 -0600 + +linux (3.11.0-3.8) saucy; urgency=low + + [ Johannes Berg ] + + * SAUCE: mac80211: ignore (E)CSA in probe response frames + - LP: #1201470 + + -- Tim Gardner Fri, 23 Aug 2013 09:47:36 -0600 + +linux (3.11.0-3.7) saucy; urgency=low + + [ Tim Gardner ] + + * SAUCE: (no-up) hv_vss_daemon -- prevent self-daemonising to allow + upstart to track + * SAUCE: (no-up) hv -- bodge hv_vss_daemon so it can use the local + linux/hyperv.h + * SAUCE: hv: Add vss daemon to Makefile + * [Debian] Add hv_vss_daemon to tools package + - LP: #1213282 + * [Config] Fix ubuntu directoy Kbuilds + - LP: #1181755 + + -- Tim Gardner Tue, 20 Aug 2013 08:34:05 -0600 + +linux (3.11.0-3.6) saucy; urgency=low + + [ Andy Whitcroft ] + + * [Packaging] tools: conditionalise x86 and hyper-v tools sensibly + * [Config] tools: enable x86 and hyper-v + + [ John Johansen ] + + * Revert "SAUCE: (no-up) apparmor: Sync to apparmor 3 dev stable + snapshot" + * Revert "SAUCE: (no-up) apparmor: fix apparmor module status for none + root users" + * SAUCE: (no-up) apparmor: Sync to apparmor 3 - alpha 4 snapshot + + [ Joseph Salisbury ] + + * SAUCE: (no-up) intel_ips: blacklist ASUSTek G60JX laptops + - LP: #1210848 + + [ Kamal Mostafa ] + + * [debian] tools: ship 'cpupower' in linux-tools + - LP: #1158668 + * [Config] Build-dep on libpci-dev for cpu tools + - LP: #1158668 + + [ Tim Gardner ] + + * rebase to v3.11-rc6 + * Release tracker + - LP: #1213941 + + -- Tim Gardner Fri, 16 Aug 2013 07:02:07 -0600 + +linux (3.11.0-2.5) saucy; urgency=low + + [ Tim Gardner ] + + * [Config] CONFIG_PM_DEBUG=y + - LP: #1210539 + * rebase to v3.11-rc5 + * Release tracker + - LP: #1211378 + + -- Tim Gardner Mon, 12 Aug 2013 06:10:39 -0600 + +linux (3.11.0-1.4) saucy; urgency=low + + [ Tim Gardner ] + + * Bump ABI when making changes to the inclusion list lest + you cause conflicts with existing installed kernel + packages. + - LP: #1210331 + + -- Tim Gardner Fri, 09 Aug 2013 03:03:51 +0100 + +linux (3.11.0-0.3) saucy; urgency=low + + [ Tim Gardner ] + + * [Config] Include rbd and kvm in the virtual inclusion list + - LP: #1206961 + * [Config] Removed obsolete inclusion list entries + + -- Tim Gardner Tue, 06 Aug 2013 08:52:14 +0100 + +linux (3.11.0-0.2) saucy; urgency=low + + [ Bruce Allan ] + + * SAUCE: (no-up) e1000e: fix I217/I218 PHY initialization flow + - LP: #1206757 + * SAUCE: (no-up) e1000e: enable support for new device IDs + - LP: #1206757 + + [ John Johansen ] + + * SAUCE: (no-up) apparmor: Sync to apparmor 3 dev stable snapshot + + [ Paolo Pisati ] + + * build vexpress a15 dtb + * [Config] disable Broadcom bcm support (ARCH_BCM) + * [Config] disable Allwinner a1x support (ARCH_SUNXI) + * [Config] disable WonderMedia WM8850 support (ARCH_WM8850) + * [Config] disable Rockchip support (ARCH_ROCKCHIP) + * [Config] disable STMicroelectronics STiH41x SOCs (ARCH_STI) + * [Config] disable TI Keystone, AM43xx and OMAP5 support + * [Config] ARM_APPENDED_DTB=y + + [ Tim Gardner ] + + * rebase to v3.11-rc4 + * overlayfs: Update to v19 + * [Config] Enable overlayfs + * SAUCE: Fix lttng compile errors + + [ Upstream Kernel Changes ] + + * rebase to v3.11-rc4 + - LP: #1163720 + - LP: #1162026 + - LP: #1195636 + - LP: #1195597 + - LP: #1180409 + - LP: #1168430 + + -- Tim Gardner Sun, 04 Aug 2013 03:45:31 -0600 + +linux (3.11.0-0.1) saucy; urgency=low + + [ Upstream Kernel Changes ] + + * rebase to 64ccccf8525fee499625b517c0faadf784c79e93 + - LP: #1163720 + - LP: #1162026 + - LP: #1195636 + - LP: #1195597 + - LP: #1180409 + - LP: #1168430 + + -- Tim Gardner Mon, 08 Jul 2013 08:50:46 -0600 + +linux (3.10.0-2.10) saucy; urgency=low + + [ Andy Whitcroft ] + + * [Config] CONFIG_INTEL_MEI*=m + - LP: #1196155 + * [Config] CONFIG_DEBUG_INFO=y + + [ Stephen Warren ] + + * [Config] fix Calxeda xgmac module filename + + [ Upstream Kernel Changes ] + + * Revert "serial: 8250_pci: add support for another kind of NetMos + Technology PCI 9835 Multi-I/O Controller" + - LP: #1190967 + * mfd: lpc_ich: Add support for Intel Avoton SoC + - LP: #1196658 + + -- Andy Whitcroft Fri, 05 Jul 2013 18:08:02 +0100 + +linux (3.10.0-2.9) saucy; urgency=low + + [ Andy Whitcroft ] + + * rebase to v3.10 + + [ John Johansen ] + + * Revert "SAUCE: (no-up) apparmor: Fix quieting of audit messages for + network mediation" + * Revert "SAUCE: (no-up) apparmor: Fix compile warnings" + * Revert "SAUCE: (no-up) AppArmor: basic networking rules" + * Revert "SAUCE: (no-up) apparmor: Add the ability to mediate mount" + * Revert "SAUCE: (no-up) AppArmor: Add profile introspection file to + interface" + * Revert "SAUCE: (no-up) AppArmor: Disable Add PR_{GET,SET}_NO_NEW_PRIVS + to prevent execve from granting privs" + * SAUCE: (no-up) apparmor: Sync to apparmor 3 dev stable snapshot + + [ Upstream Kernel Changes ] + + * rebase to v3.10 + + -- Andy Whitcroft Mon, 01 Jul 2013 17:42:29 +0100 + +linux (3.10.0-1.8) saucy; urgency=low + + [ Andy Whitcroft ] + + * Release Tracking Bug + - LP: #1195717 + + [ Andy Whitcroft ] + + * Revert "ubuntu: overlayfs -- follow change to do_splice_direct + interface" + * Revert "ubuntu: overlayfs -- expose do_splice_direct prototype" + * Revert "SAUCE: ubuntu: overlayfs -- ovl_path_open should not take path + reference" + * Revert "ubuntu: overlayfs -- add FS_ALIAS" + * Revert "ubuntu: overlayfs -- + overlayfs-copy-up-i_uid-i_gid-from-the-underlying-inode" + * Revert "ubuntu: overlayfs -- ovl-switch-to-inode_permission" + * Revert "ubuntu: overlayfs -- vfs-export-inode_permission-to-modules" + * Revert "ubuntu: overlayfs -- overlayfs-create-new-inode-in-ovl_link" + * Revert "ubuntu: overlayfs -- + overlayfs-fix-possible-leak-in-ovl_new_inode" + * Revert "ubuntu: overlayfs -- fs-limit-filesystem-stacking-depth" + * Revert "ubuntu: overlayfs -- overlay-overlay-filesystem-documentation" + * Revert "ubuntu: overlayfs -- overlayfs-implement-show_options" + * Revert "ubuntu: overlayfs -- overlayfs-add-statfs-support" + * Revert "ubuntu: overlayfs -- overlay filesystem" + * Revert "ubuntu: overlayfs -- vfs-introduce-clone_private_mount" + * Revert "ubuntu: overlayfs -- vfs-export-do_splice_direct-to-modules" + * Revert "ubuntu: overlayfs -- vfs-add-i_op-dentry_open" + * ubuntu: overlayfs v18 -- -- overlayfs: add statfs support + + [ Erez Zadok ] + + * ubuntu: overlayfs v18 -- -- overlayfs: implement show_options + + [ Miklos Szeredi ] + + * ubuntu: overlayfs v18 -- -- vfs: add i_op->dentry_open() + * ubuntu: overlayfs v18 -- -- vfs: export do_splice_direct() to modules + * ubuntu: overlayfs v18 -- -- vfs: export __inode_permission() to modules + * ubuntu: overlayfs v18 -- -- vfs: introduce clone_private_mount() + * ubuntu: overlayfs v18 -- -- overlay filesystem + * ubuntu: overlayfs v18 -- -- fs: limit filesystem stacking depth + + [ Neil Brown ] + + * ubuntu: overlayfs v18 -- -- overlay: overlay filesystem documentation + + [ Tim Gardner ] + + * [Config] CONFIG_SUNRPC_DEBUG=y + - LP: #1127319 + + -- Andy Whitcroft Fri, 28 Jun 2013 10:26:52 +0100 + +linux (3.10.0-0.7) saucy; urgency=low + + [ Andy Whitcroft ] + + * autopkgtest: switch Depends: to build-essential + + -- Andy Whitcroft Tue, 25 Jun 2013 08:40:55 +0100 + +linux (3.10.0-0.6) saucy; urgency=low + + [ Andy Whitcroft ] + + * [Config] enable CONFIG_ARCH_TEGRA to fix FTBFS on armhf + * SAUCE: ubuntu: overlayfs -- ovl_path_open should not take path reference + - LP: #1098378 + * ubuntu: AUFS -- update to 4f14cef47eb7c23eda7198931fbab1040866b6ee + * ubuntu: overlayfs -- expose do_splice_direct prototype + * ubuntu: overlayfs -- follow change to do_splice_direct interface + * [Config] flip CONFIG_NO_HZ_FULL_ALL off as it is overheating machines + - LP: #1192691 + + [ Stefan Bader ] + + * (d-i) Add dm-snapshot to md-modules + - LP: #1191726 + + [ Tim Gardner ] + + * Release tracker + - LP: #1194149 + * [Config] CONFIG_WIL6210=n for armhf + * [Config] d-i: Add calxedaxgmac to nic-modules + - LP: #1192358 + * [debian] Use dh_strip + - LP: #1192759 + * [Config] Enable perf for armhf + * do_tools=false when cross compiling + * [Config] CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS=y + - LP: #1108082 + + [ Upstream Kernel Changes ] + + * nsp32: switch reset delay to msleep() as it is tooo long + * alx: add a simple AR816x/AR817x device driver + Plucked from linux-next. replaces ubuntu/alx in favor of + 'to be merged' version in 3.11. + * rebase to v3.10-rc7 + - LP: #1189363 + + -- Tim Gardner Sat, 22 Jun 2013 18:10:31 -0600 + +linux (3.10.0-0.5) saucy; urgency=low + + [ Andy Whitcroft ] + + * rebase to v3.10-rc6 + * [Config] updateconfigs following rebase to v3.10-rc6 + + [ Upstream Kernel Changes ] + + * rebase to v3.10-rc6 + + -- Andy Whitcroft Mon, 17 Jun 2013 11:12:39 +0100 + +linux (3.10.0-0.4) saucy; urgency=low + + [ Andy Whitcroft ] + + * [Config] updateconfigs following rebase to v3.10-rc4 + + -- Andy Whitcroft Mon, 10 Jun 2013 11:42:28 +0100 + +linux (3.10.0-0.3) saucy; urgency=low + + [ Andy Whitcroft ] + + * rebase to v3.10-rc5 + + [ Upstream Kernel Changes ] + + * rebase to v3.10-rc5 + - LP: #1186170 + + -- Andy Whitcroft Mon, 10 Jun 2013 09:23:31 +0100 + +linux (3.10.0-0.2) saucy; urgency=low + + [ Andy Whitcroft ] + + * rebase to v3.10-rc4 + * [Config] CONFIG_BINFMT_SCRIPT=y to fix booting initramfs scripts + * [Config] enable SND_PCM_DEBUG SND_PCM_XRUN_DEBUG + - LP: #1187744 + * [Config] enforce CONFIG_BINFMT_SCRIPT=y + + [ Dave Chiluk ] + + * SAUCE: ncpfs: fix rmdir returns Device or resource busy + - LP: #1035226 + + [ Tim Gardner ] + + * rebase to v3.10-rc3 + * [Config] sparc be gone + * [Config] ia64 be gone + * d-i: block-modules provides nbd-modules + + [ Upstream Kernel Changes ] + + * rebase to v3.10-rc4 + * rebase to v3.10-rc3 + + -- Tim Gardner Tue, 28 May 2013 06:16:46 -0600 + +linux (3.10.0-0.1) saucy; urgency=low + + [ Tim Gardner ] + + * UBUNTU: Disabled lttng + * UBUNTU: Disable aufs for FTBS + * UBUNTU: Disabled alx + * UBUNTU: alx: rename NETIF_F_HW_VLAN_* feature flags to NETIF_F_HW_VLAN_CTAG_* + * UBUNTU: rebase to v3.10-rc2 + * UBUNTU: SAUCE: uvcvideo: quirk PROBE_DEF for Alienware X51 OmniVision webcam + + [ Andy Whitcroft ] + + * UBUNTU: [Config] update standards version to 3.9.4.0 + * UBUNTU: [Config] squash duplicate package description (long and short) + * UBUNTU: [Config] fix up Vcs-git: to point to saucy + * UBUNTU: [Config] drop depenancy on util-linux as is Essential + * UBUNTU: [Config] drop redundant Build-Conficts: + + [ Upstream Kernel Changes ] + + * rebase to v3.10-rc2 + - LP: #1180351 + + [ Upstream Kernel Changes ] + + * rebase to v3.10-rc1 + - LP: #1172151 + - LP: #1089795 + - LP: #1167270 + - LP: #1128840 + + -- Tim Gardner Tue, 14 May 2013 13:41:07 -0600 + +linux (3.10.0-0.0) saucy; urgency=low + + * Dummy + + -- Tim Gardner Thu, 09 May 2013 20:30:40 +0100 + +linux (3.9.0-2.6) saucy; urgency=low + + [ Tim Gardner ] + + * rebase to v3.9.2 + + -- Tim Gardner Thu, 09 May 2013 20:30:40 +0100 + +linux (3.9.0-1.5) saucy; urgency=low + + [ Tim Gardner ] + + * rebase to v3.9.1 + + -- Tim Gardner Wed, 08 May 2013 12:49:45 -0400 + +linux (3.9.0-0.4) saucy; urgency=low + + [ Andy Whitcroft ] + + * ubuntu: overlayfs -- add FS_ALIAS + + [ Tim Gardner ] + + * Added lttng + - LP: #1175784 + + -- Tim Gardner Thu, 02 May 2013 17:17:13 -0400 + +linux (3.9.0-0.3) saucy; urgency=low + + [ Upstream Kernel Changes ] + + * rebase to v3.9 + + -- Tim Gardner Mon, 29 Apr 2013 18:20:00 -0400 + +linux (3.9.0-0.2) saucy; urgency=low + + [ Tim Gardner ] + + * Enable extras packaging for amd64/i386. + Fixes build depenencies with brittany and linux-meta. + + -- Tim Gardner Mon, 29 Apr 2013 05:37:01 -0600 + +linux (3.9.0-0.1) saucy; urgency=low + + [ Upstream Kernel Changes ] + + * rebase to v3.9-rc8 + + [ Upstream Kernel Changes ] + + * rebase to v3.9-rc7 + - LP: #1128840 + + [ Upstream Kernel Changes ] + + * rebase to v3.9-rc6 + + [ Upstream Kernel Changes ] + + * rebase to v3.9-rc5 + + [ Upstream Kernel Changes ] + + * rebase to v3.8-rc4 + - LP: #1095315 + - LP: #886975 + - LP: #1086921 + + [ Upstream Kernel Changes ] + + * rebase to v3.9-rc3 + - LP: #1155016 + - LP: #1103594 + + [ Upstream Kernel Changes ] + + * rebase to v3.9-rc2 + + [ Upstream Kernel Changes ] + + * rebase to v3.9-rc1 + - LP: #901105 + - LP: #961286 + - LP: #1011792 + - LP: #1128934 + - LP: #886975 + - LP: #978807 + + -- Tim Gardner Wed, 20 Feb 2013 09:12:39 -0700 + +linux (3.8.0-7.14) raring; urgency=low + + [ Andy Whitcroft ] + + * [Config] CONFIG_RCU_USER_QS=n + * [Config] CONFIG_MTD_ONENAND_SIM=n + * annotations: add annotations for CONFIG_CC_STACKPROTECTOR + + [ Upstream Kernel Changes ] + + * rebase to v3.8 + + [Tim Gardner] + + * Release Tracking Bug + - LP: #1130111 + * UBUNTU: SAUCE: rt2x00: rt2x00pci_regbusy_read() - only print register access failure once + - LP: #1128840 + + -- Tim Gardner Mon, 18 Feb 2013 09:25:56 -0700 + +linux (3.8.0-6.13) raring; urgency=low + + [Tim Gardner] + + * Release Tracking Bug + - LP: #1125364 + * Add ahci modules to d-i + - LP: #1124415 + + + [ Chris Wilson ] + + * SAUCE: drm/i915: Wait for pending flips to complete before tearing down + the encoders + - LP: #1097315 + + -- Tim Gardner Wed, 13 Feb 2013 12:16:48 -0700 + +linux (3.8.0-6.12) raring; urgency=low + + [Tim Gardner] + + * perf: NO_LIBPERL=1 + * Fix linux-headers dependency + * Release Tracking Bug + - LP: #1124362 + + [ Andy Whitcroft ] + + * [Config] enable CONFIG_AUFS_EXPORT to allow nfs exports + - LP: #1121699 + + [ Daniel Vetter ] + + * SAUCE: drm/i915: write backlight harder + - LP: #954661 + + -- Tim Gardner Wed, 13 Feb 2013 10:25:11 -0700 + +linux (3.8.0-6.11) raring; urgency=low + + [Tim Gardner] + + * Release Tracking Bug + - LP: #1122071 + * rebase to v3.8-rc7 + * Add libaudit-dev as a build dependency + * Build perf with NO_LIBPYTHON=1 to avoid a python build dependency. + + [ Leann Ogasawara ] + + * [Config] Remove CONFIG_SATA_AHCI annotation + + -- Tim Gardner Fri, 08 Feb 2013 07:41:13 -0500 + +linux (3.8.0-5.10) raring; urgency=low + + [Tim Gardner] + + * Release Tracking Bug + - LP: #1118568 + + * Bump ABI to fix install issue with 3.8.0-4.8. + Moving drivers/ata/*ahci* to linux-image caused an + install conflict with linux-image-extras without an + ABI bump. + + [ Jan Beulich ] + + * SAUCE: xen-pciback: rate limit error messages from + xen_pcibk_enable_msi{, x}() + - LP: #1117336 + - CVE-2013-0231 + + -- Tim Gardner Thu, 07 Feb 2013 05:38:12 -0700 + +linux (3.8.0-4.9) raring; urgency=low + + [ Herton Ronaldo Krzesinski ] + + * d-i: Add mellanox ethernet drivers to nic-modules + - LP: #1015339 + + [ Joseph Salisbury ] + + * SAUCE: ACPI: Add DMI entry for Sony VGN-FW41E_H + - LP: #1113547 + + [ Kamal Mostafa ] + + * SAUCE: alx driver import script + + [ Qualcomm Atheros, Inc ] + + * SAUCE: alx: Update to heads/master + + [ Tim Gardner ] + + * Release Tracking Bug + - LP: #1117673 + + * [debian] Remove dangling symlink from headers package + - LP: #1112442 + * [config] CONFIG_ALX=m + * [Config] Add alx to d-i nic-modules + * [Config] CONFIG_SATA_AHCI=m + - LP: #1056563 + + -- Leann Ogasawara Tue, 05 Feb 2013 05:54:32 -0800 + +linux (3.8.0-4.8) raring; urgency=low + + [ Allen Ibara ] + + * SAUCE: imx6: dts: Add IMX6Q AHCI support + + [ Andy Whitcroft ] + + * rebase to v3.8-rc6 + * updateconfigs following rebase to v3.8-rc6 + + [Leann Ogasawara] + + * Release Tracking Bug + - LP: #1112573 + + [ Paolo Pisati ] + + * SAUCE: imx6: enable sata clk if SATA_AHCI_PLATFORM + * [Config] SERIAL_AMBA_PL011=y (vexpress serial console) + * [Config] MMC_ARMMMCI=y (vexpress mmc) + * [Config] FB_ARMCLCD=y (vexpress framebuffer) + + [ Seth Forshee ] + + * [Config] CONFIG_MAC80211_MESSAGE_TRACING=y + + [ Upstream Kernel Changes ] + + * rebase to v3.8-rc6 + - LP: #1107477 + + -- Leann Ogasawara Fri, 01 Feb 2013 07:20:59 -0800 + +linux (3.8.0-3.7) raring; urgency=low + + [ Andy Green ] + + * SAUCE: ARM: OMAP2+: add cpu id register to MAC address helper + * SAUCE: ARM: omap2 add mac address allocation register api + * SAUCE: ARM: omap2 panda register ethernet and wlan for automatic mac + allocation + + [ Leann Ogasawara ] + + * rebase to v3.8-rc5 + * Release Tracking Bug + - LP: #1111486 + + [ Paolo Pisati ] + + * SAUCE: davinci: vpss: compilation fix + * [Config] enable TI OMAP4 support (Pandaboard/ES) + * [Config] OMAP_USB2=y (since TWL6030_USB depends on it) + * [Config] enable Freescale IMX6 support (SabreLite) + * [Config] SERIAL_IMX_CONSOLE=y + * [Config] MMC_*_IMX=y + * [Config] disable USB_SUSPEND + * [Config] USB_MXS_PHY=y + * [Config] USB_CHIPIDEA=y + * SAUCE: DTB: add support for multiple DTBs + * SAUCE: DTB: build imx6q-sabrelite + * SAUCE: DTB: build beaglexm + * SAUCE: DTB: build panda/panda es + * [Config] disable CPU_FREQ + * [Config] PANEL_TFP410=y (video DVI output) + * [Config] SND_OMAP_SOC*=y + * [Config] SND_IMX_SOC*=y + * [Config] I2C_IMX=y + * [Config] SPI_IMX=m + + [ Stefan Bader ] + + * [Config] Move 9p modules into generic package + - LP: #1107658 + + [ Tony Lindgren ] + + * SAUCE: ARM: OMAP2+: Limit omap initcalls to omap only on multiplatform + kernels + * SAUCE: ARM: OMAP2+: Use omap initcalls + * SAUCE: ARM: OMAP: Fix i2c cmdline initcall for multiplatform + * SAUCE: ARM: OMAP: Fix dmaengine init for multiplatform + * SAUCE: ARM: OMAP2+: Add multiplatform debug_ll support + * SAUCE: ARM: OMAP2+: Disable code that currently does not work with + multiplaform + * SAUCE: ARM: OMAP2+: Enable ARCH_MULTIPLATFORM support + * SAUCE: ARM: OMAP2+: Add minimal support for booting vexpress + * SAUCE: ARM: OMAP2+: Remove now obsolete uncompress.h and debug-macro.S + + [ Upstream Kernel Changes ] + + * rebase to v3.8-rc5 + - LP: #1096789 + + -- Leann Ogasawara Thu, 31 Jan 2013 06:44:52 -0800 + +linux (3.8.0-2.6) raring; urgency=low + + [ Adam Conrad ] + + * Fix up linux-tools -> SRCPKGNAME-tools rename + + [ Andy Whitcroft ] + + * [Config] re-disable CONFIG_SOUND_OSS + - LP: #1105230 + + [ Arend van Spriel ] + + * SAUCE: brcmsmac: fix tx status processing + + [Leann Ogasawara] + + * Release Tracking Bug + - LP: #1105104 + + -- Leann Ogasawara Fri, 25 Jan 2013 11:56:30 -0800 + +linux (3.8.0-1.5) raring; urgency=low + + [Tim Gardner] + + * Release Tracking Bug + - LP: #1101235 + + [ Dudley Du ] + + * SAUCE: Input: add support for Cypress PS/2 Trackpads + - LP: #978807 + + [ Kamal Mostafa ] + + * SAUCE: Input: increase struct ps2dev cmdbuf[] to 8 bytes + * SAUCE: Input: Cypress PS/2 Trackpad simulated multitouch + * [Config] Add CONFIG_PS2_CYPRESS + + [ Tim Gardner ] + + * rebase to v3.8-rc4 + + [ Upstream Kernel Changes ] + + * rebase to v3.8-rc4 + - LP: #1095315 + - LP: #886975 + - LP: #1086921 + + -- Leann Ogasawara Thu, 17 Jan 2013 10:50:22 -0800 + +linux (3.8.0-0.4) raring; urgency=low + + [ Leann Ogasawara ] + + * [Config] Update CONFIG_TOUCHSCREEN_EGALAX build annotation + * [Config] Update CONFIG_IIO build annotation + * [Config] Update CONFIG_TOUCHSCREEN_EETI annotation + * [Config] Remove CONFIG_SPI_DW_MMIO annotation + * [Config] Remove CONFIG_SPI_PL022 annotation + * [Config] Update CONFIG_EZX_PCAP annotation + * [Config] Update CONFIG_SENSORS_AK8975 annotation + * [Config] Disable CONFIG_DRM_MGAG200 + - LP: #1042903 + + -- Leann Ogasawara Mon, 14 Jan 2013 10:01:50 -0800 + +linux (3.8.0-0.3) raring; urgency=low + + [ Andy Whitcroft ] + + * Revert "SAUCE: (no-up) trace: add trace events for open(), exec() and + uselib()" + + [ Scott James Remnant ] + + * SAUCE: (no-up) trace: add trace events for open(), exec() and uselib() + (for v3.7+) + - LP: #1085766, #462111 + + -- Andy Whitcroft Fri, 11 Jan 2013 16:57:27 +0000 + +linux (3.8.0-0.2) raring; urgency=low + + [ Tim Gardner ] + + * [packaging] Add macro to selectively disable building perf + * [packaging] Cannot depend on universe package libaudit-dev + + -- Tim Gardner Thu, 10 Jan 2013 12:43:24 -0700 + +linux (3.8.0-0.1) raring; urgency=low + + + [ Upstream Kernel Changes ] + + * rebase to v3.8-rc3 + - LP: #1096789 + + [ Upstream Kernel Changes ] + + * rebase to v3.8-rc2 + - LP: #1082357 + - LP: #1075882 + + -- Andy Whitcroft Mon, 17 Dec 2012 10:35:09 +0000 + +linux (3.7.0-7.15) raring; urgency=low + + [ Chris J Arges ] + + * SAUCE: add eeprom_bad_csum_allow module parameter + - LP: #1070182 + + [ Leann Ogasawara ] + + * Add ceph to linux-image for virtual instances + - LP: #1063784 + + [ Serge Hallyn ] + + * SAUCE: net: dev_change_net_namespace: send a KOBJ_REMOVED/KOBJ_ADD + + [ Tim Gardner ] + + * [Config] CONFIG_SLUB_DEBUG=y + - LP: #1090308 + + [ Upstream Kernel Changes ] + + * Revert "[SCSI] sd: Implement support for WRITE SAME" + - LP: #1089818 + + -- Leann Ogasawara Wed, 12 Dec 2012 06:50:20 -0800 + +linux (3.7.0-6.14) raring; urgency=low + + [ Andy Whitcroft ] + + * [Config] annotations: all new annotations scheme including defaults + * [Configs] apply annotation updates to main configs (top section) + + [ Leann Ogasawara ] + + * Revert "SAUCE: include and for mmc_core arm + build" + * Revert "SAUCE: [arm] fixup __aeabi_uldivmod undefined build error" + * Temporarily disable module check for build + + [ Stefan Bader ] + + * ubuntu: dm-raid45: Adapt to upstream interface changes + * Re-enable build of dm-raid45 + + [ Tim Gardner ] + + * SAUCE: Moved scripts/fw-to-ihex.sh to debian/scripts/misc + * SAUCE: ACPICA: Fix ACPI mutex object allocation memory leak on error + * SAUCE: drm: Fix possible EDID memory allocation oops + * SAUCE: ttm: Fix possible _manager memory allocation oops + * SAUCE: iwlwifi: iwlagn_request_scan: Fix check for priv->scan_request + * SAUCE: i915: intel_set_mode: Reduce stack allocation from 500 bytes to + 2 pointers + + [ Tomas Hozza ] + + * SAUCE: tools: hv: Netlink source address validation allows DoS + - LP: #1084777 + - CVE-2012-5532 + + [ Upstream Kernel Changes ] + + * rebase to v3.7 + + -- Leann Ogasawara Wed, 05 Dec 2012 14:11:12 -0800 + +linux (3.7.0-5.13) raring; urgency=low + + [ Lino Sanfilippo ] + + * SAUCE: inotify, fanotify: replace fsnotify_put_group() with + fsnotify_destroy_group() + - LP: #922906 + * SAUCE: fsnotify: introduce fsnotify_get_group() + - LP: #922906 + * SAUCE: fsnotify: use reference counting for groups + - LP: #922906 + * SAUCE: fsnotify: take groups mark_lock before mark lock + - LP: #922906 + * SAUCE: fanotify: add an extra flag to mark_remove_from_mask that + indicates wheather a mark should be destroyed + - LP: #922906 + * SAUCE: fsnotify: use a mutex instead of a spinlock to protect a groups + mark list + - LP: #922906 + * SAUCE: fsnotify: pass group to fsnotify_destroy_mark() + - LP: #922906 + * SAUCE: fsnotify: introduce locked versions of fsnotify_add_mark() and + fsnotify_remove_mark() + - LP: #922906 + * SAUCE: fsnotify: dont put marks on temporary list when clearing marks + by group + - LP: #922906 + * SAUCE: fsnotify: change locking order + - LP: #922906 + + [ Tim Gardner ] + + * [Config] CONFIG_NFC_LLCP=y + * [Config] get-firmware: Filter new files through fwinfo + * [Config] CONFIG_MTD_NAND_DOCG4=m for all arches + * [Config] CONFIG_DRM_EXYNOS_HDMI=y + * [Config] CONFIG_XEN=y for all arches + * [Config] CONFIG_SND_OMAP_SOC_ZOOM2=m + * [Config] CONFIG_MMC_DW_EXYNOS=m + * [Config] CONFIG_GPIO_ADNP=m + * [Config] find-obsolete-firmware: Use correct path + * rebase to v3.7-rc8 + - LP: #1084640 + + [ Upstream Kernel Changes ] + + * Revert "VFS: don't do protected {sym,hard}links by default" + - LP: #1084192 + + -- Tim Gardner Wed, 28 Nov 2012 16:07:08 +0000 + +linux (3.7.0-4.12) raring; urgency=low + + [ Tim Gardner ] + + * Revert "[Config] Use -j1 for headers_install" + * Revert "[Config] install-arch-headers needs a valid config" + Strayed into the weeds in search of the root cause of the periodic + build failure. + Fixes powerpc FTBS introduced in -4.11. + * [Config] hmake -j1 + The kernel makefile appears to have parallel dependency + problems for the install_headers target. This appears to be root + cause for a periodic build failure on N-way machines. + + -- Leann Ogasawara Tue, 27 Nov 2012 12:33:06 -0800 + +linux (3.7.0-4.11) raring; urgency=low + + [ Tim Gardner ] + + * [Config] Use -j1 for headers_install + Also fixes a powerpc FTBS introduced by + "[Config] install-arch-headers needs a valid config". + + -- Tim Gardner Tue, 27 Nov 2012 10:19:30 -0700 + +linux (3.7.0-4.10) raring; urgency=low + + [ Andy Whitcroft ] + + * [Config] add rebuild-test support for autopkgtest + - LP: #1081500 + * [tests] move build tests out of the way + - LP: #1081500 + * [tests] add an autopkgtest rebuild test + - LP: #1081500 + + [ Tim Gardner ] + + * rebase to v3.7-rc7 + * SAUCE: Remove emi62 files duplicated in linux-firmware + * SAUCE: Remove sb16 files duplicated in linux-firmware + * SAUCE: Remove whiteheat files duplicated in linux-firmware + * SAUCE: Remove yamaha files duplicated in linux-firmware + * SAUCE: Remove dsp56k files used only by m68k + * SAUCE: firmware: Remove last vestiges of dabusb + * SAUCE: Remove vicam files duplicated in linux-firmware + * [Config] install-arch-headers needs a valid config + + [ Upstream Kernel Changes ] + + * rebase to v3.7-rc7 + - LP: #1076840 + - LP: #1081466 + + -- Leann Ogasawara Wed, 21 Nov 2012 06:07:23 -0800 + +linux (3.7.0-3.9) raring; urgency=low + + [ Leann Ogasawara ] + + * [Config] Enable CONFIG_X86_CPUFREQ_NFORCE2=y + - LP: #1079900 + * Add nfsv3 to nfs-modules udeb + + [ Paolo Pisati ] + + * [Config] SND_OMAP_SOC*=y + - LP: #1019321 + + [ Stefan Bader ] + + * SAUCE: (no-up) xen/netfront: handle compound page fragments on transmit + - LP: #1078926 + + [ Tim Gardner ] + + * Revert "SAUCE: SECCOMP: audit: always report seccomp violations" + - LP: #1079469 + * Revert "SAUCE: omap3 clocks .dev_id = NULL" + * rebase to v3.7-rc6 + * SAUCE: script to detect obsolete firmware + * SAUCE: Remove yam files duplicated in linux-firmware + * SAUCE: Remove tehuti files duplicated in linux-firmware + * SAUCE: Remove matrox files duplicated in linux-firmware + * SAUCE: Remove cxgb3 files duplicated in linux-firmware + * SAUCE: Remove r128 files duplicated in linux-firmware + * SAUCE: Remove acenic files duplicated in linux-firmware + * SAUCE: Remove keyspan files duplicated in linux-firmware + * SAUCE: Remove sun files duplicated in linux-firmware + * SAUCE: Remove radeon files duplicated in linux-firmware + * SAUCE: Update bnx2x firmware to 7.8.2.0 + * [Config] generic.inclusion-list: econet has disappeared + + [ Upstream Kernel Changes ] + + * seccomp: forcing auditing of kill condition + - LP: #1079469 + * rebase to v3.7-rc6 + + -- Leann Ogasawara Tue, 20 Nov 2012 12:28:55 -0800 + +linux (3.7.0-2.8) raring; urgency=low + + [ Andy Whitcroft ] + + * Revert "overlayfs: disable until FTBS is fixed" + * Revert "ubuntu: overlayfs" + * Revert "ubuntu: AUFS" + * ubuntu: overlayfs -- overlayfs: add statfs support + * ubuntu: overlayfs -- ovl: switch to __inode_permission() + * ubuntu: overlayfs -- overlayfs: copy up i_uid/i_gid from the underlying + inode + - LP: #944386 + * ubuntu: AUFS (no-squash): basic framework and update machinary + * ubuntu: AUFS (no-squash) -- aufs3-base.patch + * ubuntu: AUFS (no-squash) -- aufs3-standalone.patch + * ubuntu: AUFS: aufs-update -- follow the uapi header changes + * ubuntu: AUFS -- update to f2873474324d0a31af4340554b9715f51331bc7f + * ubuntu: AUFS (no-squash) -- reenable + - LP: #1079193 + + [ Erez Zadok ] + + * ubuntu: overlayfs -- overlayfs: implement show_options + + [ Miklos Szeredi ] + + * ubuntu: overlayfs -- vfs: add i_op->dentry_open() + * ubuntu: overlayfs -- vfs: export do_splice_direct() to modules + * ubuntu: overlayfs -- vfs: introduce clone_private_mount() + * ubuntu: overlayfs -- overlay filesystem + * ubuntu: overlayfs -- fs: limit filesystem stacking depth + * ubuntu: overlayfs -- vfs: export __inode_permission() to modules + + [ Neil Brown ] + + * ubuntu: overlayfs -- overlay: overlay filesystem documentation + + [ Robin Dong ] + + * ubuntu: overlayfs -- overlayfs: fix possible leak in ovl_new_inode + * ubuntu: overlayfs -- overlayfs: create new inode in ovl_link + + -- Andy Whitcroft Thu, 15 Nov 2012 13:35:12 +0000 + +linux (3.7.0-1.7) raring; urgency=low + + [ Tim Gardner ] + + * [Config] Drop dependency on libaudit-dev + Its a universe package which causes an FTBS on the builders. + libaudit-dev is not strictly required for the perf tools build. + + -- Tim Gardner Wed, 14 Nov 2012 10:08:13 -0700 + +linux (3.7.0-1.6) raring; urgency=low + + [ Andy Whitcroft ] + + * [Config] enforce -- switch CONFIG_NVRAM to more readable form + * [Config] better encode the CONFIG_NVRAM constaint + * enforcer -- fix debugging output + + [ Ben Collins ] + + * [Config] Add custom_override rule to allow for alternate kernel + file/install + * [Config] Use SRCPKGNAME as prefix for indep linux headers package + + [ Tim Gardner ] + + * [Config] Dropped armel + * Drop highbank from ABI fetch list + * [Config] Use dh_prep instead of 'dh_clean -k' + * [Config] Build depend on libaudit-dev, libunwind8-dev for tools + * [Config] Document binary-indep dependency chain + * rebase to v3.7-rc5 + + [ Upstream Kernel Changes ] + + * rebase to v3.7-rc5 + + -- Tim Gardner Tue, 13 Nov 2012 07:13:37 -0500 + +linux (3.7.0-0.5) raring; urgency=low + + [ Tim Gardner ] + + * [Config] CONFIG_AMD_IOMMU_V2=m + - LP: #1071520 + * [Config] CONFIG_MTD_ONENAND_SIM=n for armel + Fixes FTBS + + -- Tim Gardner Thu, 08 Nov 2012 15:45:39 -0500 + +linux (3.7.0-0.4) raring; urgency=low + + [ Ben Collins ] + + * [Config] Update enforce rule for CONFIG_NVRAM to better suit flavours + + [ Tim Gardner ] + + * [Config] do_tools=false for arm + + -- Tim Gardner Thu, 08 Nov 2012 05:39:51 -0700 + +linux (3.7.0-0.3) raring; urgency=low + + [ Tim Gardner ] + + * [Config] CONFIG_DRM_EXYNOS_HDMI=n for armhf + * [Config] CONFIG_MTD_NAND_DOCG4=n for armel/armhf + * [Config] Drop highbank harder + + -- Tim Gardner Wed, 07 Nov 2012 18:11:45 +0000 + +linux (3.7.0-0.2) raring; urgency=low + + [ Andy Whitcroft ] + + * [Config] add fs/udf to linux-image to support DVD/CD formats in virtual + instances + - LP: #1066921 + * [Config] drop highbank builds + + [ Jeremy Kerr ] + + * SAUCE: efivarfs: Implement exclusive access for {get, set}_variable + - LP: #1063061 + + [ Leann Ogasawara ] + + * Reinstate dropped.txt from Ubuntu-3.7.0-0.1-rc1 + + [ Tim Gardner ] + + * [Config] Dropped powerpc/ppc64 in favour of the community kernel + * [Config] CONFIG_MODULE_SIG=y for amd64,i386, and highbank + * rebase to v3.7-rc4 + * SAUCE: MODSIGN: Emit error for incorrectly signed module + + [ Upstream Kernel Changes ] + + * rebase to v3.7-rc4 + + -- Tim Gardner Mon, 05 Nov 2012 05:35:41 -0700 + +linux (3.7.0-0.1) raring; urgency=low + + + [ Upstream Kernel Changes ] + + * rebase to v3.7-rc3 + - LP: #1056078 + + [ Upstream Kernel Changes ] + + * rebase to v3.7-rc2 + - LP: #1060729 + - LP: #1059523 + - LP: #1006690 + - LP: #1049623 + - LP: #1046512 + - LP: #1052499 + - LP: #1037642 + - LP: #559939 + - LP: #1052460 + - LP: #939161 + - LP: #1046734 + + -- Tim Gardner Tue, 02 Oct 2012 08:13:07 -0600 + +linux (3.6.0-0.1) UNRELEASED; urgency=low + + + [ Upstream Kernel Changes ] + + * rebase to v3.6 + + [ Upstream Kernel Changes ] + + * rebase to v3.6-rc7 + + [ Upstream Kernel Changes ] + + * rebase to v3.6-rc6 + - LP: #1000424 + + [ Upstream Kernel Changes ] + + * rebase to v3.6-rc5 + - LP: #1040077 + + [ Upstream Kernel Changes ] + + * rebase to v3.6-rc4 + + [ Upstream Kernel Changes ] + + * rebase to v3.6-rc3 + - LP: #1038651 + - LP: #1034779 + + -- Leann Ogasawara Tue, 24 Jul 2012 06:37:09 -0700 + +linux (3.5.0-6.6) quantal-proposed; urgency=low + + [ Andy Whitcroft ] + + * [Config] CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION enable IPv6 + experimental features + * SAUCE: highbank -- export clock functions for modules + * [Config] highbank -- reenable CONFIG_TOUCHSCREEN_W90X900 + * [Config] highbank -- renenable CONFIG_SERIO_AMBAKMI + * [Config] highbank -- reenable CONFIG_RFKILL_GPIO + * [Config] highbank -- reenable CONFIG_MMC_SDHCI_PXAV3 + * [Config] highbank -- reenable CONFIG_MMC_SDHCI_PXAV3 + * [Config] highbank -- reenable CONFIG_KEYBOARD_SAMSUNG + * [Config] highbank -- reenable CONFIG_FB_ARMCLCD + * [Config] highbank -- reenable CONFIG_DW_DMAC + * [Config] highbank -- reenable CONFIG_USB_R8A66597_HCD + * [Config] highbank -- reenable CONFIG_USB_MV_UDC + * [Config] highbank -- reenable CONFIG_USB_DWC3 + * [Config] highbank -- reenable CONFIG_SATA_MV + * [Config] highbank -- reenable CONFIG_PATA_ARASAN_CF + * [Config] highbank -- CONFIG_CAN_C_CAN_PLATFORM + * [Config] highbank -- reenable CONFIG_MMC_ARMMMCI + * [Config] highbank -- reenable CONFIG_SERIAL_AMBA_PL010 + * [Config] highbank -- reenable CONFIG_ATMEL_PWM + * [Config] highbank -- enable CONFIG_CHECKPOINT_RESTORE + * [Config] highbank -- enable CONFIG_EXPERT + * [Config] highbank -- enable CONFIG_CHECKPOINT_RESTORE + * [Config] enable CONFIG_USB_DYNAMIC_MINORS + * [Config] enable CONFIG_USB_EHCI_TT_NEWSCHED + * [Config] enable CONFIG_USB_ETH_EEM + * [Config] enable CONFIG_USB_HCD_BCMA/CONFIG_USB_HCD_SSB + * [Config] disable CONFIG_USB_M66592 + * [Config] enable CONFIG_USB_NET2272 + * [Config] enable CONFIG_USB_R8A66597 + * [Config] annotate: CONFIG_USB_OMAP not required for our h/w + * [Config] set CONFIG_USB_MUSB_HDRC=m for omap + * [Config] annotate: CONFIG_USB_G_MULTI fix rule + * [Config] CONFIG_USB_GPIO_VBUS=m for OMAP + * [Config] Enable CONFIG_DRM_AST/_CIRRUS_QEMU/_MGAG200 + * [Config] sync configuration armhf omap -> armel omap + * [Config] annotate: CONFIG_IIO triggers build failures on OMAP4 + * [Config] disable CONFIG_OMAP_IOVMM is deprecated + + [ Bryan Wu ] + + * [Config] change default IO scheduler from CFQ to Deadline + + [ Leann Ogasawara ] + + * Revert "[Config] Temporarily disable CONFIG_MV643XX_ETH on powerpc" + * [Config] Disable CONFIG_MOUSE_INPORT + + [ Tim Gardner ] + + * SAUCE: firmware: Update bnx2x to current firmware version 7.2.51 + * [Config] Add bnx2x firmware to nic-modules udeb + * SAUCE: Add script to convert firmware to ihex format + * SAUCE: firmware: Upgrade bnx2 to current versions + * [Config] Add tigon firmware to nic-modules udeb + * [Config] CONFIG_EARLY_PRINTK_DBGP=y + - LP: #1026761 + * SAUCE: Remove redundant cis firmware + * SAUCE: Remove redundant emi26 firmware + * SAUCE: Remove redundant ttusb-budget firmware + * SAUCE: Remove redundant sun/cassini firmware + * SAUCE: Remove redundant ositech/Xilinx7OD firmware + * SAUCE: Remove redundant 3com/typhoon.bin firmware + * SAUCE: Remove redundant yamaha/ds1 firmware + * SAUCE: Remove redundant keyspan_pda firmware + * rebase to v3.5 + + [ Upstream Kernel Changes ] + + * rebase to v3.5 + - LP: #1027828 + + -- Leann Ogasawara Mon, 23 Jul 2012 05:57:04 -0700 + +linux (3.5.0-5.5) quantal-proposed; urgency=low + + [ Andy Whitcroft ] + + * [Config] annotations: initial import of configuration annotations + + [ Bryan Wu ] + + * [Config] enforcer -- add CONFIG_I2C_DESIGNWARE_PLATFORM enforce checker + + [ Leann Ogasawara ] + + * Rebase to v3.5-rc7 + + [ Manoj Iyer ] + + * SAUCE: Bluetooth: btusb: Add vendor specific ID (0a5c:21f4) BCM20702A0 + - LP: #1010281 + + [ Tim Gardner ] + + * [Config] enable CONFIG_I2C_HELPER_AUTO for all flavours as policy + expects + * [Config] CONFIG_I2O_CONFIG_OLD_IOCTL=n + * [Config] CONFIG_BRIDGE_EBT_ULOG=n + * [Config] CONFIG_IP_NF_QUEUE=n + * [Config] CONFIG_MTD_DOC2000=n + * [Config] CONFIG_PRINT_QUOTA_WARNING=n + * [Config] CONFIG_PRISM54=n + * [Config] CONFIG_SCx200_I2C=n + * [Config] CONFIG_USB_ANNOUNCE_NEW_DEVICES=y + + [ Upstream Kernel Changes ] + + * rebase to v3.5-rc7 + + -- Leann Ogasawara Mon, 16 Jul 2012 15:38:41 -0700 + +linux (3.5.0-4.4) quantal-proposed; urgency=low + + [ Andy Whitcroft ] + + * [Packaging] getabis should be extracting all packages + - LP: #1021174 + * [Config] getabis -- series uses linux-image-extra + - LP: #1021174 + * rebase to v3.5-rc6 + + [ Bryan Wu ] + + * [Config] built-in CONFIG_MICREL_PHY as other PHY drivers for all + flavours + * [Config] sync CONFIG_MOUSE_PS2_ config for all flavours + + [ Leann Ogasawara ] + + * [Config] Enable CONFIG_RT2800USB_RT35XX and CONFIG_RT2800USB_RT53XX + - LP: #1019561 + + [ Paolo Pisati ] + + * [Config] SND_OMAP_SOC, SND_OMAP_SOC_MCBSP and SND_OMAP_SOC_OMAP3_BEAGLE =y + - LP: #1019321 + + [ Stefan Bader ] + + * SAUCE: (pre-up) net: dont use __netdev_alloc_skb for bounce buffer + - LP: #1018456 + * (config) Disable ACPI_PROCFS_POWER + + [ Tim Gardner ] + + * [Config] CONFIG_ACPI_BGRT=y + * Extract firmware module info during getabi + - LP: #1021174 + + [ Upstream Kernel Changes ] + + * rebase to v3.5-rc6 + + -- Leann Ogasawara Mon, 09 Jul 2012 08:50:20 -0700 + +linux (3.5.0-3.3) quantal-proposed; urgency=low + + [ Andy Whitcroft ] + + * [Config] enable CONFIG_MEMTEST=y + - LP: #1004535 + * [Config] config-check: add support for a cut operation + * [Config] enforcer -- switch to cut where appropriate + + [ Leann Ogasawara ] + + * Rebase to v3.5-rc5 + * [Config] Updateconfigs after rebase to v3.5-rc5 + + [ Luis Henriques ] + + * SAUCE: ocfs2: Fix NULL pointer dereferrence in + __ocfs2_change_file_space + - LP: #1006012 + + [ Seth Forshee ] + + * SAUCE: (drop after 3.5) drm/i915: ignore pipe select bit when checking + for LVDS register initialization + - LP: #1012800 + + [ Upstream Kernel Changes ] + + * rebase to v3.5-rc5 + - LP: #1013183 + - LP: #1017017 + - LP: #884652 + + -- Leann Ogasawara Mon, 02 Jul 2012 06:41:58 -0700 + +linux (3.5.0-2.2) quantal-proposed; urgency=low + + [ Andy Whitcroft ] + + * rebase to v3.5-rc4 + + [ Arend van Spriel ] + + * SAUCE: (drop after 3.5) brcmsmac: fix NULL pointer crash in + brcms_c_regd_init() + - LP: #950320 + + [ Bryan Wu ] + + * [Config] Sync CONFIG_CGROUP_MEM_RES_CTLR_SWAP for ARM + + [ Chris J Arges ] + + * PACKAGING: add .gnu_debuglink sections to .ko files + - LP: #669641 + + [ Leann Ogasawara ] + + * d-i: Add hid-generic to input-modules + - LP: #1017879 + + [ Ming Lei ] + + * SAUCE: Revert "mmc: omap_hsmmc: Enable Auto CMD12" + - LP: #1017717, #225 + + [ Paolo Pisati ] + + * SAUCE: Revert "Fix OMAP EHCI suspend/resume failure (i693)" + - LP: #1017718 + * [Config] Disable generic USB_EHCI_HCD_PLATFORM on omap3 + + [ Seth Forshee ] + + * SAUCE: (drop after 3.5) brcm80211: smac: don't set up tx power limits + during initialization + - LP: #950320 + * SAUCE: (drop after 3.5) brcm80211: smac: always set channel specified + by mac80211 + - LP: #950320 + * SAUCE: (drop after 3.5) brcm80211: smac: remove unused code for 40MHz + channels + - LP: #950320 + * SAUCE: (drop after 3.5) brcm80211: smac: clean up channel.c + - LP: #950320 + * SAUCE: (drop after 3.5) brcm80211: smac: inform mac80211 of the X2 + regulatory domain + - LP: #950320 + * SAUCE: (drop after 3.5) brcm80211: smac: enable/disable radio on + regulatory updates + - LP: #950320 + * SAUCE: (drop after 3.5) brcm80211: smac: use mac80211 channel data for + tx power limits + - LP: #950320 + * SAUCE: (drop after 3.5) brcm80211: smac: don't validate channels + against internal regulatory data + - LP: #950320 + * SAUCE: (drop after 3.5) brcm80211: smac: use current regulatory domain + when checking whether OFDM is allowed + - LP: #950320 + + [ Tim Gardner ] + + * [Config] Enable CONFIG_CGROUPS for highbank + - LP: #1014692 + * [Config] FB_OMAP*=y and PANEL_TFP410=y + + [ Upstream Kernel Changes ] + + * rebase to v3.5-rc4 + + -- Leann Ogasawara Tue, 26 Jun 2012 06:21:05 -0700 + +linux (3.5.0-1.1) quantal-proposed; urgency=low + + [ Andy Whitcroft ] + + * [Config] highbank -- enable CONFIG_RFKILL=y and CONFIG_CAN=m + + [ Leann Ogasawara ] + + * Rebase to v3.5-rc1 + * [Config] Remove USB_DEVICEFS from the config enforcer + * [Config] Updateconfigs after rebase to v3.5-rc1 + * [Config] Temporarily disable CONFIG_MACH_NOKIA_RX51 on arm + * [Config] Temporarily disable CONFIG_TOUCHSCREEN_EETI on arm + * [Config] Temporarily disable CONFIG_TOUCHSCREEN_EGALAX on arm + * [Config] Temporarily disable CONFIG_EZX_PCAP on arm + * [Config] Temporarily disable CONFIG_LIS3L02DQ on arm + * [Config] Temporarily disable CONFIG_TI_CPSW on arm + * [Config] Temporarily disable CONFIG_GPIO_EM on arm + * [Config] Temporarily disable CONFIG_SERIAL_8250_EM on armhf + * [Config] Temporarily disable CONFIG_STMMAC_ETH on armhf + * [Config] Temporarily disable CONFIG_HW_RANDOM_ATMEL on armhf + * Rebase to v3.5-rc2 + * [Config] Updateconfigs after rebase to v3.5-rc2 + * [Config] Temporarily disable CONFIG_MV643XX_ETH on powerpc + * Rebase to v3.5-rc3 + * [Config] Updateconfigs after rebase to v3.5-rc3 + + [ Paul Mundt ] + + * SAUCE: fix bug.h's inclusion of kernel.h + + [ Stefan Bader ] + + * SAUCE: Fix compile failures of dm-raid45 + * [Config] Enable dm-raid45 + * Move dependency on crda to extra package + - LP: #657901 + * SAUCE: Mask CR4 writes on older Xen hypervisors + + [ Upstream Kernel Changes ] + + * rebase to v3.5-rc3 + - LP: #993162 + - LP: #925577 + * rebase to v3.5-rc2 + * rebase to v3.5-rc1 + - LP: #955892 + - LP: #978038 + - LP: #987371 + - LP: #929545 + - LP: #942316 + - LP: #903853 + + -- Leann Ogasawara Fri, 08 Jun 2012 14:28:46 -0700 + +linux (3.4.0-5.11) quantal-proposed; urgency=low + + [ Leann Ogasawara ] + + * [Config] Disable CONFIG_ARM_LPAE + - LP: #1009061 + + [ Oleksij Rempel ] + + * SAUCE: b43: do not call ieee80211_unregister_hw if we are not registred + - LP: #1008905 + + [ Paolo Pisati ] + + * [Config] omap3: MFD_OMAP_USB_HOST is usb host in omap2+. + - LP: #1009061 + + -- Leann Ogasawara Tue, 05 Jun 2012 08:06:28 -0700 + +linux (3.4.0-4.10) quantal; urgency=low + + [ Leann Ogasawara ] + + * Temporarily disable ABI and module check + + -- Leann Ogasawara Mon, 04 Jun 2012 20:27:31 -0700 + +linux (3.4.0-4.9) quantal; urgency=low + + [ Andy Whitcroft ] + + * [Config] fix config split to avoid the shared config + * [Config] updateconfigs following split config fix + * [Config] linux-image-extras needs full postinst + * [Config] CONFIG_BLK_DEV_NVME commonise across architectures + * [Config] CONFIG_HP_WATCHDOG enable as module + * [Config] CONFIG_PDC_ADMA is not boot essential + * [Config] CONFIG_XEN_ACPI_PROCESSOR should be enabled on x86 + * [Config] CONFIG_VT6655/CONFIG_VT6656=m + * [Config] CONFIG_TRANZPORT=m commonise + * [Config] CONFIG_R3964=m commonise + * [Config] CONFIG_SCSI_DH=m commonise + * [Config] CONFIG_SCSI_IBMVSCSIS=m commonise + * [Config] CONFIG_AMD_PHY=y phys are not autoloadable + * [Config] CONFIG_SCSI_QLA_ISCSI=m commonise + * [Config] CONFIG_SCSI_SPI_ATTR=m commonise + * [Config] CONFIG_USB_SN9C102 is deprecated disable + * [Config] CONFIG_USB_SI470X=m commonise + * [Config] CONFIG_USB_ET61X251=m commonise + * [Config] CONFIG_RTS_PSTOR=m commonise + * [Config] CONFIG_SCANLOG=m commonise + * [Config] CONFIG_SCSI_SYM53C8XX_2=m commonise + * [Config] CONFIG_SM_FTL=m commonise + * [Config] CONFIG_SOLO6X10=m commonise + * [Config] CONFIG_SND_PCM_OSS=n using pulseaudio emulation instead + * [Config] CONFIG_SPI_DESIGNWARE=m commonise + * [Config] CONFIG_SPI_SPIDEV=m commonise + * [Config] CONFIG_TABLET_USB_WACOM=m commonise + * [Config] CONFIG_TPS65010=m commonise + * [Config] CONFIG_STE10XP=y commonise + * [Config] CONFIG_X25_ASY=m commonise + * [Config] CONFIG_USB_MON=m commonise + * [Config] CONFIG_VME_BUS=m commonise + * [Config] CONFIG_W35UND=m commonise + * [Config] -CONFIG_TCG_TPM=y commonise + * [Config] highbank -- commonise filesystems + * [Config] highbank -- commonise subsystems + * [Config] highbank -- commonise network protocols + * [Config] highbank -- commonise input drivers + * [Config] highbank -- commonise CRYPTO options + * [Config] highbank -- commonise HID options + * [Config] highbank -- commonise sensors options + * [Config] highbank -- commonise EXPORTFS/FHANDLE + * [Config] highbank -- commonise CONFIG_CRYPTO_LZO + * [Config] highbank -- commonise ENCRYPTED_KEYS + * [Config] highbank -- commonise CONFIG_ATALK + * [Config] highbank -- commonise INET/INET6 + * [Config] highbank -- commonise NLS + * [Config] highbank -- commonise BLK/CHR + * [Config] highbank -- CONFIG_EXT2_FS=y boot essential on highbank + * [Config] highbank -- commonise INET/INET6 part 2 + * [Config] highbank -- commonise PHY settings + * [Config] highbank -- commonise CRC settings + * [Config] highbank -- commonise BINFMT settings + * [Config] highbank -- commonise DM settings + * [Config] highbank -- commonise RTC_DRV settings + * [Config] highbank -- commonise KEYBOARD/MOUSE settings + * [Config] highbank -- commonise USB settings + * [Config] highbank -- commonise GPIO settings + * [Config] highbank -- commonise I2C settings + * [Config] highbank -- commonise numerous subsystem selectors + * [Config] highbank -- commonise A-C modules missmatches + * [Config] highbank -- commonise D-F modules missmatches + * [Config] CONFIG_AUDIT_LOGINUID_IMMUTABLE incompatible with upstart + * [Config] highbank -- commonise G-I modules missmatches + * [Config] highbank -- commonise J-L modules missmatches + * [Config] highbank -- commonise M modules missmatches + * [Config] highbank -- commonise N-P modules missmatches + * [Config] highbank -- commonise Q-R modules missmatches + * [Config] highbank -- commonise S modules missmatches -- part 1 + * [Config] highbank -- commonise S modules missmatches -- part 2 + * [Config] highbank -- commonise T modules missmatches + * [Config] highbank -- commonise U-Z modules missmatches + + [ Ike Panhc ] + + * [Config] add highbank flavour + - LP: #1000831 + + [ Mark Langsdorf ] + + * SAUCE: arm highbank: add support for pl320-ipc driver + - LP: #1000831 + + [ Rob Herring ] + + * SAUCE: input: add a key driver for highbank + - LP: #1000831 + * SAUCE: ARM: highbank: Add smc calls to enable/disable the L2 + - LP: #1000831 + * SAUCE: force DMA buffers to non-bufferable on highbank + - LP: #1000831 + * SAUCE: net: calxedaxgmac: fix net timeout recovery + - LP: #1000831 + + [ Tim Gardner ] + + * [Config] CONFIG_IWLWIFI_EXPERIMENTAL_MFP=n + * [Config] CONFIG_PCI_REALLOC_ENABLE_AUTO=y + * [Config] CONFIG_CIFS_EXPERIMENTAL has disappeared + * [Config] Homogenize CIFS configs across all arches + * [Config] armhf should not be skipabi or skipmodules + - LP: #1006913 + + -- Leann Ogasawara Mon, 04 Jun 2012 05:52:49 -0700 + +linux (3.4.0-3.8) quantal; urgency=low + + [ Andy Whitcroft ] + + * [Config] include include/generated/compile.h + - LP: #942569 + * [Config] fix up postinst to ensure we know which error is which + - LP: #1002388 + + [ Herton Ronaldo Krzesinski ] + + * SAUCE: async_populate_rootfs: fix build warnings + - LP: #1003417 + + [ John Johansen ] + + * Revert "SAUCE: AppArmor: Add the ability to mediate mount" + * SAUCE: apparmor: Add the ability to mediate mount + * SAUCE: AppArmor: basic networking rules + * SAUCE: apparmor: fix profile lookup for unconfined + - LP: #978038, #987371 + * SAUCE: apparmor: fix long path failure due to disconnected path + - LP: #955892 + + [ Mario Limonciello ] + + * SAUCE: dell-laptop: rfkill blacklist Dell XPS 13z, 15 + - LP: #901410 + + [ Stefan Bader ] + + * (config) Built-in xen-acpi-processor + + [ Tim Gardner ] + + * [Config] CONFIG_NET_DSA=m + - LP: #1004148 + * [Config] Ensure CONFIG_XEN_ACPI_PROCESSOR=y for amd64 + + -- Leann Ogasawara Fri, 25 May 2012 11:38:33 -0700 + +linux (3.4.0-3.7) quantal; urgency=low + + [ Andy Whitcroft ] + + * [Config] drop the virtual flavour in favour of a split generic et al + * [Config] enforcer -- drop IDLE enforcement + * [Config] enable CONFIG_SCSI_VIRTIO=m for amd64 + * [Config] updateconfigs following removal of -virtual + + [ Leann Ogasawara ] + + * Rebase to v3.4 + + [ Seth Forshee ] + + * [Config] disable CONFIG_B43_BCMA_EXTRA + + [ Tim Gardner ] + + * [Config] Check for extras when building udebs + * [Config] Collapsed generic-pae into generic [i386] + + [ Upstream Kernel Changes ] + + * rebase to v3.4 + + -- Leann Ogasawara Mon, 21 May 2012 07:23:47 -0700 + +linux (3.4.0-2.6) quantal; urgency=low + + [ Andy Whitcroft ] + + * Revert "ubuntu: overlayfs -- overlayfs: update touch_atime() usage" + * Revert "ubuntu: overlayfs -- overlayfs: switch from d_alloc_root() to + d_make_root()" + * Revert "ubuntu: overlayfs -- overlayfs: follow header cleanup" + * Revert "ubuntu: overlayfs -- overlayfs: apply device cgroup and + security permissions to overlay files" + * Revert "ubuntu: overlayfs -- fs: limit filesystem stacking depth" + * Revert "ubuntu: overlayfs -- overlay: overlay filesystem documentation" + * Revert "ubuntu: overlayfs -- overlayfs: implement show_options" + * Revert "ubuntu: overlayfs -- overlayfs: add statfs support" + * Revert "ubuntu: overlayfs -- overlay filesystem" + * Revert "ubuntu: overlayfs -- vfs: introduce clone_private_mount()" + * Revert "ubuntu: overlayfs -- vfs: export do_splice_direct() to modules" + * Revert "ubuntu: overlayfs -- vfs: add i_op->open()" + * Revert "ubuntu: overlayfs -- vfs: pass struct path to __dentry_open()" + * ubuntu: overlayfs -- overlayfs: add statfs support + * ubuntu: overlayfs -- inode_only_permission: export inode level + permissions checks + * ubuntu: overlayfs -- overlayfs: switch to use inode_only_permissions + + [ Erez Zadok ] + + * ubuntu: overlayfs -- overlayfs: implement show_options + + [ Miklos Szeredi ] + + * ubuntu: overlayfs -- vfs: pass struct path to __dentry_open() + * ubuntu: overlayfs -- vfs: add i_op->open() + * ubuntu: overlayfs -- vfs: export do_splice_direct() to modules + * ubuntu: overlayfs -- vfs: introduce clone_private_mount() + * ubuntu: overlayfs -- overlay filesystem + * ubuntu: overlayfs -- fs: limit filesystem stacking depth + + [ Neil Brown ] + + * ubuntu: overlayfs -- overlay: overlay filesystem documentation + + [ Robin Dong ] + + * ubuntu: overlayfs -- overlayfs: fix possible leak in ovl_new_inode + * ubuntu: overlayfs -- overlayfs: create new inode in ovl_link + + [ Tim Gardner ] + + * [Config] perarch and indep tools builds need separate build directories + * Prevent upgrading a non-PAE CPU + * perf is not parallel build safe + + -- Leann Ogasawara Wed, 16 May 2012 08:43:18 -0700 + +linux (3.4.0-2.5) quantal; urgency=low + + [ Andy Whitcroft ] + + * [Config] perarch and indep tools builds need separate build directories + + [ Tim Gardner ] + + * Prevent upgrading a non-PAE CPU + * [Config] build debug + * [Config] perf tools are not parallel build safe + + -- Leann Ogasawara Tue, 15 May 2012 11:37:53 -0700 + +linux (3.4.0-2.4) quantal; urgency=low + + [ Leann Ogasawara ] + + * Revert "SAUCE: fsam7400: use UMH_WAIT_PROC consistently" + * Revert "ubuntu: fsam7400 select CHECK_SIGNATURE and depend on X86" + * Revert "ubuntu: fsam7400: Depend on CHECK_SIGNATURE" + * Revert "ubuntu: fsam7400 -- Cleanup Makefile" + * Revert "ubuntu: fsam7400 -- kill switch for Fujitsu Siemens Amilo M + 7400" + * Revert "ubuntu: omnibook: fix source file newline" + * Revert "ubuntu: omnibook -- update BOM" + * Revert "SAUCE: Make CONFIG_{OMNIBOOK, AVERATEC_5100P, PACKARDBELL_E5} + depend on X86" + * Revert "ubuntu: omnibook -- Added missing BOM file" + * Revert "ubuntu: omnibook -- support Toshiba (HP) netbooks" + * Revert "ubuntu: nx-emu - i386: mmap randomization for executable + mappings" + * Revert "SAUCE: disable_nx should not be in __cpuinitdata section for + X86_32" + * Revert "ubuntu: nx-emu - i386: NX emulation" + * Revert "ubuntu: rfkill drivers -- version 1.3" + * Temporarily disable module check + * [Config] Remove CONFIG_FSAM7400 + * [Config] Remove CONFIG_OMNIBOOK + * [Config] Update configs + * Rebase to v3.4-rc7 + * SAUCE: genirq: export handle_edge_irq() and irq_to_desc() + + [ Tim Gardner ] + + * Updated generic-pae description + * Rebase to v3.4-rc6 + * install-tools depends on build targets + + [ Upstream Kernel Changes ] + + * kconfig: in debug mode some 0 length message prints occur + * rebase to v3.4-rc7 + * rebase to v3.3-rc6 + + -- Leann Ogasawara Mon, 14 May 2012 08:22:56 -0700 + +linux (3.4.0-1.3) quantal; urgency=low + + [ Andy Whitcroft ] + + * [Config] control.stub is an intermediate product not a dependancy + - LP: #992414 + + [ Leann Ogasawara ] + + * remove i386 generic from getabis + + [ Upstream Kernel Changes ] + + * (pre-stable) b43: only reload config after successful initialization + - LP: #950295 + + -- Leann Ogasawara Wed, 02 May 2012 09:48:14 -0700 + +linux (3.4.0-1.2) quantal; urgency=low + + [ Andy Whitcroft ] + + * [Config] add build depends for flex, bison and pkg-config + + -- Andy Whitcroft Tue, 01 May 2012 13:15:41 +0100 + +linux (3.4.0-1.1) quantal; urgency=low + + [ Andy Whitcroft ] + + * ubuntu: overlayfs -- overlayfs: apply device cgroup and security + permissions to overlay files + - LP: #915941, #918212 + - CVE-2012-0055 + + [ Leann Ogasawara ] + + * Open Q + * Rebase to v3.4-rc5 + * [Config] Temporarily disable CONFIG_TOUCHSCREEN_EETI on arm + * [Config] Temporarily disable CONFIG_TOUCHSCREEN_EGALAX on arm + * [Config] Temporarily disable CONFIG_EZX_PCAP on arm + * [Config] Temporarily disable CONFIG_MFD_OMAP_USB_HOST on arm + * [Config] Temporarily disable CONFIG_LIS3L02DQ on arm + * [Config] Temporarily disable CONFIG_USB_EHCI_HCD_PLATFORM on arm + * [Config] Temporarily disable CONFIG_TI_CPSW on arm + * [Config] Temporarily disable CONFIG_AX88796 on arm + + [ Upstream Kernel Changes ] + + * vfs: pass struct path to __dentry_open() + * vfs: add i_op->open() + * vfs: export do_splice_direct() to modules + * vfs: introduce clone_private_mount() + * overlay filesystem + * overlayfs: add statfs support + * overlayfs: implement show_options + * overlay: overlay filesystem documentation + * fs: limit filesystem stacking depth + * overlayfs: follow header cleanup + * overlayfs: switch from d_alloc_root() to d_make_root() + * overlayfs: update touch_atime() usage + * rebase to v3.4-rc5 + - LP: #950490 + * rebase to v3.4-rc4 + * rebase to v3.4-rc3 + * rebase to v3.4-rc2 + * rebase to v3.4-rc1 + * rebase to v3.3 + * rebase to v3.3-rc7 + * rebase to v3.3-rc6 + * rebase to v3.3-rc5 + * rebase to v3.3-rc4 + - LP: #900802 + - LP: #930842 + * rebase to v3.3-rc3 + - LP: #924320 + - LP: #923316 + - LP: #923409 + - LP: #918254 + * rebase to v3.3-rc2 + * rebase to v3.3-rc1 + - LP: #795823 + - LP: #909419 + - LP: #910792 + - LP: #878701 + - LP: #724831 + + -- Leann Ogasawara Wed, 25 Jan 2012 06:50:04 -0800 + +linux (3.2.0-10.18) precise; urgency=low + + [ Tim Gardner ] + + * SAUCE: ecryptfs: Print inode on metadata error + + [ Upstream Kernel Changes ] + + * Revert "proc: enable writing to /proc/pid/mem" + - LP: #919115 + - CVE-2012-0056 + * (pre-stable) ALSA: HDA: Use LPIB position fix for Macbook Pro 7, 1 + - LP: #909419 + + -- Andy Whitcroft Tue, 24 Jan 2012 10:15:12 +0000 + +linux (3.2.0-10.17) precise; urgency=low + + [ Andy Whitcroft ] + + * Revert "SAUCE: overlayfs -- fs: limit filesystem stacking depth" + * Revert "SAUCE: overlayfs -- overlay: overlay filesystem documentation" + * Revert "SAUCE: overlayfs -- overlayfs: implement show_options" + * Revert "SAUCE: overlayfs -- overlayfs: add statfs support" + * Revert "SAUCE: overlayfs -- overlay filesystem" + * Revert "SAUCE: overlayfs -- vfs: introduce clone_private_mount()" + * Revert "SAUCE: overlayfs -- vfs: export do_splice_direct() to modules" + * Revert "SAUCE: overlayfs -- vfs: add i_op->open()" + * ensure debian/ is not excluded from git by default + * add new scripting to handle buglinks in rebases + * ubuntu: overlayfs -- overlayfs: add statfs support + * ubuntu: overlayfs -- overlayfs: apply device cgroup and security + permissions to overlay files + - LP: #915941, #918212 + - CVE-2012-0055 + + [ Erez Zadok ] + + * ubuntu: overlayfs -- overlayfs: implement show_options + + [ Leann Ogasawara ] + + * Revert "SAUCE: dmar: disable if ricoh multifunction detected" + * [Config] Disable CONFIG_INTEL_IOMMU_DEFAULT_ON + - LP: #907377, #911236 + * [Config] Enable CONFIG_IRQ_REMAP + + [ Miklos Szeredi ] + + * ubuntu: overlayfs -- vfs: pass struct path to __dentry_open() + * ubuntu: overlayfs -- vfs: add i_op->open() + * ubuntu: overlayfs -- vfs: export do_splice_direct() to modules + * ubuntu: overlayfs -- vfs: introduce clone_private_mount() + * ubuntu: overlayfs -- overlay filesystem + * ubuntu: overlayfs -- fs: limit filesystem stacking depth + + [ Neil Brown ] + + * ubuntu: overlayfs -- overlay: overlay filesystem documentation + + [ Upstream Kernel Changes ] + + * (pre-stable) x86/PCI: amd: factor out MMCONFIG discovery + - LP: #647043 + * (pre-stable) PNP: work around Dell 1536/1546 BIOS MMCONFIG bug that + breaks USB + - LP: #647043 + + -- Leann Ogasawara Mon, 16 Jan 2012 07:10:08 -0800 + +linux (3.2.0-9.16) precise; urgency=low + + [ Andy Whitcroft ] + + * [Config] Enable numerous CONFIG_VIDEO_* cards on ARM + * [Config] pull ARM sound modules =m + * [Config] CONFIG_RTC_DRV_TEST is for testing only + * [Config] CONFIG_USB_DUMMY_HCD is testing only + * [Config] CONFIG_USB_FILE_STORAGE is deprecated + + [ Leann Ogasawara ] + + * Revert "[Config] Temporarily disable CONFIG_CAN_TI_HECC on armel" + * [Config] Enable CONFIG_HW_RANDOM_PASEMI=m + * [Config] Enable CONFIG_MMC_TMIO=m + * [Config] Enable CONFIG_MTD_NAND_FSL_ELBC=m + * [Config] Enable CONFIG_ISI=m + * [Config] Enable CONFIG_MMC=y + * [Config] Enable CONFIG_LIRC_PARALLEL=m + * [Config] Enable CONFIG_MAC_EMUMOUSEBTN=m + * [Config] Enable CONFIG_CHR_DEV_SG=y + * [Config] Enable CONFIG_GPIO_PCA953X=m + * [Config] Enable CONFIG_GPIO_TWL4030=m + * [Config] Enable CONFIG_INET_DIAG=m + * [Config] Enable CONFIG_NLS_ISO8859_1=m + * [Config] Enable CONFIG_NVRAM=m + * [Config] Enable CONFIG_SLIP=m + * [Config] Enable CONFIG_PC300TOO=m + * [Config] Enable CONFIG_TUN=y + * [Config] Enable CONFIG_NET_CLS_CGROUP=m + * [Config] Enable CONFIG_THERMAL=y + * [Config] Enable CONFIG_PPP=y + * [Config] Enable CONFIG_PCI_STUB=m + * Rebase to v3.2.1 + * [Config] Enable CONFIG_RTL8192E=m + * [Config] Enable CONFIG_RTS5139=m + + [ Stefan Bader ] + + * [Config] Make CONFIG_VIRTIO_(NET|BLK)=y + + [ Upstream Kernel Changes ] + + * ARM: restart: add restart hook to machine_desc record + * ARM: restart: allow platforms more flexibility specifying restart mode + * ARM: restart: move reboot failure handing into machine_restart() + * ARM: restart: remove argument to setup_mm_for_reboot() + * ARM: 7159/1: OMAP: Introduce local common.h files + * ARM: restart: only perform setup for restart when soft-restarting + * ARM: 7189/1: OMAP3: Fix build break in cpuidle34xx.c because of irq + function + * ARM: idmap: populate identity map pgd at init time using .init.text + * ARM: suspend: use idmap_pgd instead of suspend_pgd + * ARM: proc-*.S: place cpu_reset functions into .idmap.text section + * ARM: idmap: use idmap_pgd when setting up mm for reboot + * ARM: head.S: only include __turn_mmu_on in the initial identity mapping + * ARM: SMP: use idmap_pgd for mapping MMU enable during secondary booting + * ARM: 7194/1: OMAP: Fix build after a merge between v3.2-rc4 and ARM + restart changes + * ARM: lib: add call_with_stack function for safely changing stack + * ARM: reset: implement soft_restart for jumping to a physical address + * ARM: stop: execute platform callback from cpu_stop code + * ARM: kexec: use soft_restart for branching to the reboot buffer + * ARM: restart: omap: use new restart hook + * topdown mmap support + - LP: #861296 + + [ Upstream Kernel Changes ] + + * Rebase to v3.2.1 + + -- Leann Ogasawara Fri, 13 Jan 2012 20:32:08 +0100 + +linux (3.2.0-8.15) precise; urgency=low + + [ Leann Ogasawara ] + + * [Config] Disable CONFIG_ACPI_PROCFS + * Remove server from getabis + * Temporarily disable module check + * [Config] Disable CONFIG_MTD_TESTS + * [Config] Disable CONFIG_X86_E_POWERSAVER + * [Config] Set CONFIG_ARCNET=m + * [Config] Enable CONFIG_ATM_DUMMY=m + * [Config] Enable CONFIG_BLK_DEV_MD=y + * ubuntu: fsam7400 select CHECK_SIGNATURE and depend on X86 + * [Config] Enable CONFIG_BLK_DEV_SD=y + * [Config] Enable CONFIG_BLK_DEV_SR=y + * [Config] Enable CONFIG_BLK_DEV_UB=m + * [Config] Enable CONFIG_COPS=m + * [Config] Enable CONFIG_DVB_USB_EC168=m + * [Config] Enable CONFIG_ENC28J60=m + * [Config] Enable CONFIG_FB_UVESA=m + * [Config] Enable CONFIG_FB_ATY=m + * [Config] Enable CONFIG_BROADCOM_PHY=y + * [Config] Enable CONFIG_CICADA_PHY=y + * [Config] Enable CONFIG_DAVICOM_PHY=y + * [Config] Enable CONFIG_ICPLUS_PHY=y + * [Config] Enable CONFIG_LSI_ET1011C_PHY=y + * [Config] Enable CONFIG_LXT_PHY=y + * [Config] Enable CONFIG_MARVELL_PHY=y + * [Config] Enable CONFIG_NATIONAL_PHY=y + * [Config] Enable CONFIG_QSEMI_PHY=y + * [Config] Enable CONFIG_SMSC_PHY=y + * [Config] Enable CONFIG_VITESSE_PHY=y + * Add 3w-sas to scsi-modules + - LP: #776542 + + [ Mathieu Trudel-Lapierre ] + + * SAUCE: ipv6: make the net.ipv6.conf.all.use_tempaddr sysctl propagate + to interface settings + + [ Paolo Pisati ] + + * Revert "SAUCE: omap3: beagle: if rev unknown, assume xM revision C" + - LP: #912199 + * Revert "SAUCE: omap3: beagle: detect new xM revision B" + - LP: #912199 + * Revert "SAUCE: omap3: beaglexm: fix DVI initialization" + - LP: #912199 + + [ Upstream Kernel Changes ] + + * Bluetooth: Add support for BCM20702A0 [0a5c:21e3] + - LP: #906832 + + -- Leann Ogasawara Fri, 06 Jan 2012 10:02:03 -0800 + +linux (3.2.0-8.14) precise; urgency=low + + [ Andy Whitcroft ] + + * [Config] enable CONFIG_SND_USB_6FIRE + - LP: #912197 + * rebase to mainline v3.2 final release + * updateconfigs following rebase to v3.2 final + * ubuntu: AUFS -- add BOM and automated update script + * ubuntu: AUFS -- include the aufs_types.h file in linux-libc-headers + - LP: #684666 + * ubuntu: AUFS -- update aufs-update to track new locations of headers + * ubuntu: AUFS -- clean up the aufs updater and BOM + * ubuntu: AUFS -- documentation on updating aufs2 + * ubuntu: AUFS -- aufs3-base.patch + * ubuntu: AUFS -- aufs3-standalone.patch + * ubuntu: AUFS -- fix undefined __devcgroup_inode_permission + * ubuntu: AUFS -- fix undefined security_path_link + * ubuntu: AUFS -- update to 4cf5db36bcd9748e8e7270022f295f84d1fc2245 + * ubuntu: AUFS -- updateconfigs following update + * ubuntu: AUFS -- suppress benign plink warning messages + - LP: #621195 + * ubuntu: AUFS -- enable in config and makefile + * ubuntu: AUFS -- disable in favor of overlayfs + * [Config] linux-virtual -- should include the extX modules + - LP: #912308 + + [ Tyler Hicks ] + + * SAUCE: eCryptfs: Improve statfs reporting + - LP: #885744 + + [ Upstream Kernel Changes ] + + * rebase to upstream v3.2 + + -- Leann Ogasawara Mon, 26 Dec 2011 20:24:30 -0800 + +linux (3.2.0-7.13) precise; urgency=low + + [ Upstream Kernel Changes ] + + * rebase to upstream 3.2-rc7 + + -- Leann Ogasawara Mon, 19 Dec 2011 09:14:34 -0800 + +linux (3.2.0-6.12) precise; urgency=low + + [ Upstream Kernel Changes ] + + * rebase to upstream v3.2-rc6 + + -- Leann Ogasawara Fri, 16 Dec 2011 10:19:02 -0800 + +linux (3.2.0-5.11) precise; urgency=low + + [ Andy Whitcroft ] + + * enforcer -- allow arch and flavour predicates to take lists + * enforcer -- simplify armel/armhf specific options + * enforcer -- fix incorrectly specified flavour matches + + [ Leann Ogasawara ] + + * [Config] Disable IRQ_REMAP + * [Config] Enable CONFIG_SENSORS_LM95245=m + * [Config] Enable CONFIG_SENSORS_MAX1668=m + * [Config] Enable CONFIG_SENSORS_NTC_THERMISTOR=m + * [Config] Enable CONFIG_SENSORS_MAX6639=m + * [Config] Enable CONFIG_SENSORS_MAX6642=m + * [Config] Enable CONFIG_SENSORS_LINEAGE=m + * [Config] Enable CONFIG_CRYPTO_SALSA20=m + * [Config] Enable CONFIG_PATA_TOSHIBA=m + * [Config] Enable CONFIG_POHMELFS=m + * [Config] Enable CONFIG_NET_PACKET_ENGINE=y + * [Config] Enable CONFIG_PATA_OPTI=m + * add overlayfs to virtual inclusion list + - LP: #903897 + * add veth to virtual inclusion list + - LP: #903897 + * SAUCE: resolve WARNING: at drivers/block/floppy.c:2929 do_fd_request + + [ Paolo Pisati ] + + * [Config] DEFAULT_MMAP_MIN_ADDR=32k on arm + - LP: #903346 + + [ Tim Gardner ] + + * [Config] CONFIG_LOCKUP_DETECTOR=y + - LP: #903615 + + [ Upstream Kernel Changes ] + + * rebase to upstream 55b02d2f + + -- Leann Ogasawara Mon, 12 Dec 2011 07:08:10 -0800 + +linux (3.2.0-4.10) precise; urgency=low + + [ Kyle McMartin ] + + * SAUCE: dmar: disable if ricoh multifunction detected + - LP: #894070 + + [ Seth Forshee ] + + * SAUCE: dell-wmi: Demote unknown WMI event message to pr_debug + - LP: #581312 + + [ Tim Gardner ] + + * Start new release, Bump ABI, rebase to 3.2-rc5 + + [ Leann Ogasawara ] + + * [Config] Enable CONFIG_SENSORS_AK8975=m + + -- Tim Gardner Sat, 10 Dec 2011 08:57:04 -0700 + +linux (3.2.0-3.9) precise; urgency=low + + [ Andy Whitcroft ] + + * SAUCE: ext4: correct partial write discard size calculation + - LP: #894768 + + [ Leann Ogasawara ] + + * Revert "SAUCE: x86, microcode, AMD: Restrict microcode reporting" + - LP: #892615 + + [ Matthew Garrett ] + + * SAUCE: pci: Rework ASPM disable code + + [ Upstream Kernel Changes ] + + * x86: Fix boot failures on older AMD CPU's + - LP: #892615 + * EHCI : Fix a regression in the ISO scheduler + - LP: #899165 + + -- Leann Ogasawara Mon, 05 Dec 2011 10:37:36 -0800 + +linux (3.2.0-3.8) precise; urgency=low + + [ Andy Whitcroft ] + + * armhf -- add d-i configuration + * armhf -- disable ABI checks for armhf + * armhf -- add arch to getabis config + + -- Andy Whitcroft Sat, 03 Dec 2011 14:22:52 +0000 + +linux (3.2.0-3.7) precise; urgency=low + + [ Stefan Bader ] + + * SAUCE: x86/paravirt: PTE updates in k(un)map_atomic need to be + synchronous, regardless of lazy_mmu mode + - LP: #854050 + + [ Tim Gardner ] + + * rebase to v3.2-rc4 + + -- Leann Ogasawara Fri, 02 Dec 2011 11:53:56 -0800 + +linux (3.2.0-2.6) precise; urgency=low + + [ Andy Whitcroft ] + + * armhf -- fix omap flavour to build on armhf + * [Config] CONFIG_PATA_MACIO=y to fix MAC qemu boot + + [ Borislav Petkov ] + + * SAUCE: x86, microcode, AMD: Restrict microcode reporting + - LP: #892615 + + [ Colin Watson ] + + * Add pata_macio to pata-modules + + [ Tim Gardner ] + + * [Config] Prefer crda over wireless-crda + * [Config] Fix virtual inclusion list. + - LP: #897795 + + -- Leann Ogasawara Wed, 30 Nov 2011 06:09:35 -0800 + +linux (3.2.0-2.5) precise; urgency=low + + [ Paolo Pisati ] + + * [Config] PANEL_DVI=y + + -- Leann Ogasawara Mon, 28 Nov 2011 09:13:24 -0800 + +linux (3.2.0-2.4) precise; urgency=low + + [ Andy Whitcroft ] + + * rebase to v3.2-rc3 + + [ Leann Ogasawara ] + + * Revert "SAUCE: xen: Do not use pv spinlocks on HVM" + * Revert "fix ERROR: __devcgroup_inode_permission undefined" + * Revert "olpc_dcon_xo_1_5 needs delay.h" + * Revert "olpc_dcon_xo_1 needs delay.h" + * rebase to 6fe4c6d4 + * [Config] updateconfigs after rebase to 6fe4c6d4 + + [ Tim Gardner ] + + * [Config] Replace wireless-crda with crda,wireless-regdb + - LP: #856421 + * [Config] Relax the dependencies on crda + + [ Upstream Kernel Changes ] + + * (pre-stable) HID: bump maximum global item tag report size to 96 bytes + - LP: #724831 + * Ubuntu: remove coreutils|fileutils package dependency + - LP: #892814 + * iio: iio_event_getfd -- fix ev_int build failure + + [ Upstream Kernel Changes ] + + * Rebase to v3.2-rc3 + + -- Andy Whitcroft Thu, 24 Nov 2011 16:20:45 +0000 + +linux (3.2.0-1.3) precise; urgency=low + + [ Upstream Kernel Changes ] + + * Ubuntu: Add ext2 to fs-core-modules + - LP: #893395 + + -- Leann Ogasawara Mon, 21 Nov 2011 20:42:33 -0800 + +linux (3.2.0-1.2) precise; urgency=low + + [ Andy Whitcroft ] + + * [Config] enable CONFIG_NFC and associated devices + * SAUCE: allow brcmsmac and b43 to both build + + [ Soren Hansen ] + + * Add ixgbe driver to d-i + - LP: #891969 + + -- Leann Ogasawara Mon, 21 Nov 2011 08:33:46 -0800 + +linux (3.2.0-1.1) precise; urgency=low + [ Andy Whitcroft ] + + * armhf -- enable armhf and create the first flavours + * SAUCE: ensure root is ready before running usermodehelpers in it + * [Config] enforcer -- ensure CONFIG_FAT_FS is built-in on arm + + [ Leann Ogasawara ] + + * Temporarily ignore module check + * [Config] Enable PCI_IOV on powerpc + * [Config] Temporarily disable CONFIG_PASEMI_MAC on powerpc + * rebase to v3.2-rc2 + * SAUCE: include for cpuidle34xx arm build + * SAUCE: include for linux/mtd/map.h arm build + * SAUCE: include and for mmc_core arm build + * SAUCE: select ARM_AMBA if OMAP3_EMU + * [Config] updateconfigs after select ARM_AMBA + * [Config] Temporarily disable CONFIG_KVM_BOOK3S_32 on powerpc + * [Config] Enable CONFIG_EXT2_FS=m + * [Config] Build in CONFIG_SATA_AHCI=y + * Resolve linux-image-extra's install dependency + + [ Seth Forshee ] + + * [Config] Enable EVENT_POWER_TRACING_DEPRECATED=y for powertop + * SAUCE: (drop after 3.2) Input: ALPS - move protocol information to + Documentation + * SAUCE: (drop after 3.2) Input: ALPS - add protocol version field in + alps_model_info + * SAUCE: (drop after 3.2) Input: ALPS - remove assumptions about packet + size + * SAUCE: (drop after 3.2) Input: ALPS - add support for protocol versions + 3 and 4 + * SAUCE: (drop after 3.2) Input: ALPS - add semi-MT support for v3 + protocol + * SAUCE: (drop after 3.2) Input: ALPS - add documentation for protocol + versions 3 and 4 + + [ Stefan Bader ] + + * [Config] Built-in xen-netfront and xen-blkfront + * Fix build of dm-raid45 and re-enable it + + [ Tim Gardner ] + + * [Config] CONFIG_USB_XHCI_HCD=y + - LP: #886167 + * [Config] CONFIG_R6040=m + - LP: #650899 + * SAUCE: Add a new entry (413c:8197) to Bluetooth USB device ID table + - LP: #854399 + * [Config] Consolidated amd64 server flavour into generic + * [Config] updateconfigs after rebase to 3.2-rc1 + * [Config] Disabled dm-raid4-5 + * [Config] Disabled ndiswrapper + * [Config] Disable vt6656 + * [Config] exclude ppp-modules for virtual flavour + * [Config] CONFIG_MEMSTICK_R592=m + - LP: #238208 + + [ Upstream Kernel Changes ] + + * CHROMIUM: seccomp_filter: new mode with configurable syscall filters + - LP: #887780 + * CHROMIUM: seccomp_filter: add process state reporting + - LP: #887780 + * CHROMIUM: seccomp_filter: Document what seccomp_filter is and how it + works. + - LP: #887780 + * CHROMIUM: x86: add HAVE_SECCOMP_FILTER and seccomp_execve + - LP: #887780 + * CHROMIUM: arm: select HAVE_SECCOMP_FILTER + - LP: #887780 + * CHROMIUM: seccomp_filters: move to btrees + * CHROMIUM: enable CONFIG_BTREE + * CHROMIUM: seccomp_filter: kill NR_syscall references + * CHROMIUM: seccomp_filters: guard all ftrace wrapper code + * CHROMIUM: seccomp_filters: clean up warnings; kref mistake + * CHROMIUM: seccomp_filter: remove "skip" from copy and add drop helper + * CHROMIUM: seccomp_filter: allow CAP_SYS_ADMIN management of execve + * CHROMIUM: seccomp_filter: inheritance documentation + * CHROMIUM: seccomp_filter: make inherited filters composable + * CHROMIUM: Fix seccomp_t compile error + - LP: #887780 + * CHROMIUM: Fix kref usage + - LP: #887780 + * CHROMIUM: enable CONFIG_SECCOMP_FILTER and CONFIG_HAVE_SECCOMP_FILTER + * rebase to v3.2-rc2 + + -- Leann Ogasawara Mon, 31 Oct 2011 09:24:39 -0400 + +linux (3.1.0-2.3) precise; urgency=low + + [ Tim Gardner ] + + * Add postinit and postrm scripts to the extras package + - LP: #882120 + + -- Leann Ogasawara Fri, 28 Oct 2011 12:48:33 -0700 + +linux (3.1.0-2.2) precise; urgency=low + + [ Andy Whitcroft ] + + * debian: add locking to protect debian/files from parallel update + + [ Leann Ogasawara ] + + * rebase to v3.1 + + [ Upstream Kernel Changes ] + + * rebase to v3.1 + + -- Leann Ogasawara Wed, 19 Oct 2011 07:12:38 -0700 + +linux (3.1.0-1.1) precise; urgency=low + + [ Andiry Xu ] + + * SAUCE: (drop during 3.2 merge) xHCI: AMD isoc link TRB chain bit quirk + - LP: #872811 + + [ Andy Whitcroft ] + + * Revert "ubuntu: compcache -- follow changes to bd_claim/bd_release" + - LP: #832694 + * Revert "ubuntu: compcache -- version 0.5.3" + - LP: #832694 + * [Config] standardise CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP=m + * [Config] Enable CONFIG_MACVTAP=m + - LP: #822601 + * record the compiler in the ABI and check for inconsistant builds + * [Config] move ECRYPT_FS back to =y for all architectures + - LP: #827197 + * [Config] enable CONFIG_DRM_VMWGFX=m + - LP: #698009 + * [Config] re-fix ECRYPT_FS=y + - LP: #827197 + * enforcer -- ensure we have CONFIG_ECRYPT_FS=y + - LP: #827197 + * [Config] dropping compcache configuration options + * [Config] standardise on HZ=250 + * SAUCE: headers_install: fix #include "..." usage for userspace + - LP: #824377 + * make module-inclusion selection retain the left overs + * add a new linux-image-extras package for virtual + + [ Colin Watson ] + + * Deliver more Atheros, Ralink, and iwlagn NIC drivers to d-i + + [ edwin_rong ] + + * SAUCE: Staging: add driver for Realtek RTS5139 cardreader + - LP: #824273 + + [ Greg Kroah-Hartman ] + + * SAUCE: staging: rts5139: add vmalloc.h to some files to fix the build. + - LP: #824273 + + [ Jesse Sung ] + + * SAUCE: Unregister input device only if it is registered + - LP: #839238 + + [ Jiri Kosina ] + + * SAUCE: HID: add MacBookAir4, 2 to hid_have_special_driver[] + + [ Joshua V. Dillon ] + + * SAUCE: HID: add support for MacBookAir4,2 keyboard. + + [ Kees Cook ] + + * [Config] enable and enforce SECCOMP_FILTER on x86 + + [ Keng-Yu Lin ] + + * [Config] Enable CONFIG_RTS5139=m on i386/amd64 + - LP: #824273 + + [ Leann Ogasawara ] + + * Revert "ubuntu: overlayfs -- ovl: make lower mount read-only" + * Revert "ubuntu: overlayfs -- fs: limit filesystem stacking depth" + * Revert "ubuntu: overlayfs -- ovl: improve stack use of lookup and + readdir" + * Revert "ubuntu: overlayfs -- ovl: fix overlayfs over overlayfs" + * Revert "ubuntu: overlayfs -- overlayfs: implement show_options" + * Revert "ubuntu: overlayfs -- overlayfs: add statfs support" + * Revert "ubuntu: overlayfs -- overlay filesystem" + * Revert "ubuntu: overlayfs -- overlay: overlay filesystem documentation" + * Revert "SAUCE: ARM: OMAP: Add macros for comparing silicon revision" + * Revert "SAUCE: OMAP: DSS2: check for both cpu type and revision, rather + than just revision" + * Revert "SAUCE: OMAP: DSS2: enable hsclk in dsi_pll_init for OMAP36XX" + * Revert "ubuntu: fsam7400 disable driver" + - LP: #876030 + * rebase to v3.1-rc1 + * [Config] updateconfigs after rebase to v3.1-rc1 + * rebase to v3.1-rc2 + * [Config] Updateconfigs after rebase to v3.1-rc2 + * ubuntu: Yama - update calls to generic_permission() and + inode->i_op->permission() + * ubuntu: ndiswrapper -- remove netdev_priv macro + * ubuntu: aufs -- Temporarily disable due to build failure + * [Config] Diable INTEL_MID_PTI on armel + * [Config] Temporarily disable CONFIG_FTMAC100 on armel + * [Config] Temporarily disable CONFIG_FTGMAC100 on armel + * [Config] Temporarily disable CONFIG_CAN_TI_HECC on armel + * [Config] Temporarily disable CONFIG_VIDEO_OMAP2_VOUT on armel + * [Config] Set CONFIG_DM_MIRROR=m on amd64, i386, and arm + * [Config] Set CONFIG_DM_MULTIPATH=m on amd64, i386, and arm + * [Config] Set CONFIG_DM_SNAPSHOT=m on amd64, i386, and arm + * [Config] Enable CONFIG_EDAC_AMD8111=m on powerpc + * [Config] Enable CONFIG_EDAC_AMD8131=m on powerpc + * [Config] Enable CONFIG_EDAC_CPC925=m on powerpc + * [Config] Enable CONFIG_EDAC_PASEMI=m on powerpc + * [Config] Enable CONFIG_ECHO=m on powerpc + * [Config] Enable CONFIG_ET131X=m on powerpc + * [Config] Set CONFIG_FB_MATROX=m + * [Config] Enable CONFIG_FB_UDL=m on powerpc + * [Config] Set CONFIG_FB_VIRTUAL=n + * [Config] Enable CONFIG_FB_VGA16=m on powerpc + * [Config] Enable CONFIG_GPIO_MAX732X=m on arm + * [Config] Enable CONFIG_GPIO_PCF857X=m on arm + * [Config] Set CONFIG_HOTPLUG_PCI_FAKE=m + * [Config] Enable CONFIG_HOTPLUG_PCI=y on powerpc + * [Config] Enable CONFIG_HOTPLUG_PCI_CPCI=y on powerpc + * [Config] Enable CONFIG_HP_ILO=m on powerpc-smp + * [Config] Enable CONFIG_I2C_PASEMI=m on powerpc + * [Config] Enable CONFIG_IBM_BSR=m on powerpc + * [Config] Enable CONFIG_IBMVETH=m on powerpc + * [Config] Enable CONFIG_IDE_PHISON=m on powerpc + * [Config] Enable CONFIG_IGB=m on powerpc + * [Config] Enable CONFIG_IIO=m on powerpc + * [Config] Enable CONFIG_INFINIBAND_NES=m + * [Config] Enable CONFIG_IPMI_HANDLER=m on arm + * [Config] Enable CONFIG_IWL3945=m on powerpc + * [Config] Disable CONFIG_KVM_BOOK3S_64 + * [Config] Enable CONFIG_LAPBETHER=m on arm + * [Config] Enable CONFIG_LEDS_GPIO=m on powerpc + * [Config] Enable CONFIG_LEDS_CLEVO_MAIL=m all arch's + * [Config] Enable CONFIG_LEDS_PCA9532=m on powerpc + * [Config] Enable CONFIG_LEDS_PCA955X=m on powerpc + * [Config] Enable CONFIG_LEDS_TRIGGER_DEFAULT_ON=m on powerpc + * [Config] Set CONFIG_LEDS_TRIGGER_HEARTBEAT=m on arm and powerpc + * [Config] Set CONFIG_LEDS_TRIGGER_TIMER=m on powerpc + * [Config] Enable CONFIG_LINE6_USB=m on arm and powerpc + * [Config] Enable CONFIG_MEMSTICK=m on arm + * [Config] Enable CONFIG_MTD_AFS_PARTS=m on arm + * [Config] Enable CONFIG_MTD_ALAUDA=m on arm + * [Config] Enable CONFIG_MTD_AR7_PARTS=m on arm + * [Config] Enable CONFIG_MTD_ARM_INTEGRATOR=m on arm + * [Config] Enable CONFIG_MOXA_SMARTIO=m on powerpc + * [Config] Enable CONFIG_MTD_DATAFLASH=m on arm + * [Config] Enable CONFIG_MTD_GPIO_ADDR=m on arm + * [Config] Enable CONFIG_MTD_IMPA7=m on arm + * [Config] Enable CONFIG_MTD_NAND_GPIO=m on arm + * [Config] Enable CONFIG_MTD_NAND_NANDSIM=m on arm + * [Config] Enable CONFIG_MTD_NAND_PASEMI=m on powerpc + * [Config] Enable CONFIG_MTD_NAND_PLATFORM=m on arm + * [Config] Enable CONFIG_MTD_NAND_TMIO=m on arm + * [Config] Enable CONFIG_MTD_SST25L=m on arm + * [Config] Enable CONFIG_NET_CLS_CGROUP=y on arm + * [Config] Enable CONFIG_NET_CLS_FLOW=m on arm + * [Config] Enable CONFIG_NET_CLS_U32=m on arm + * [Config] Enable CONFIG_NET_DCCPPROBE=m on arm + * [Config] Enable CONFIG_NET_SCH_INGRESS=m on arm + * [Config] Enable CONFIG_NET_TCPPROBE=m on arm + * [Config] Enable CONFIG_PASEMI_MAC=m on powerpc + * [Config] Enable CONFIG_PATA_NS87410=m on powerpc + * [Config] Enable CONFIG_I2C_GPIO=m on powerpc64-smp + * [Config] Enable CONFIG_PANEL=m on powerpc + * [Config] Enable CONFIG_PATA_CMD640_PCI=m on powerpc + * SAUCE: x86: reboot: Make Dell Latitude E6520 use reboot=pci + - LP: #833705 + * [Config] Add CONFIG_EFI_VARS=y to the enforcer + - LP: #837332 + * [Config] Update CONFIG_EFI_VARS enforcer check + * [Config] Add aufs to virtual flavor inclusion list + - LP: #844159 + * SAUCE: x86: reboot: Make Dell Optiplex 790 use reboot=pci + - LP: #818933 + * SAUCE: x86: reboot: Make Dell Optiplex 990 use reboot=pci + - LP: #768039 + * SAUCE: x86: reboot: Make Dell Latitude E6220 use reboot=pci + - LP: #838402 + * [Config] Add igbvf to the virtual flavor inclusion list + - LP: #794570 + * [Config] Add ixgbevf to the virtual inclusion list + - LP: #872411 + * [Config] Transition -generic and -server to be identical + * rebase to v3.1-rc10 + + [ Luke Yelavich ] + + * [Config] Disable legacy IDE drivers on powerpc + + [ Ming Lei ] + + * SAUCE: fireware: add NO_MSI quirks for o2micro controller + - LP: #801719 + * SAUCE: ata_piix: make DVD Drive recognisable on systems with Intel + Sandybridge chipsets(v2) + - LP: #737388, #782389, #794642 + + [ Paolo Pisati ] + + * [Config] Compile-in vfat support for armel + - LP: #853783 + + [ Randy Dunlap ] + + * SAUCE: staging: fix rts5139 depends & build + - LP: #824273 + + [ Rene Bolldorf ] + + * SAUCE: (drop after 3.0) ideapad: Check if acpi already handle backlight + power in 'ideapad_backlight_notify_power' to avoid a page fault + + [ Seth Forshee ] + + * SAUCE: (no-up) Input: elantech - Add v3 hardware support + - LP: #681904 + * SAUCE: (drop after 3.1) usb_storage: Don't freeze in usb-stor-scan + - LP: #810020 + + [ Stefan Bader ] + + * (config) Package macvlan and macvtap for virtual + * [Config] Force perf to use libiberty for demangling + - LP: #783660 + * SAUCE: xen: Do not use pv spinlocks on HVM + - LP: #838026 + + [ Tim Gardner ] + + * [Config] Clean up tools rules + * [Config] Package x86_energy_perf_policy and turbostat + - LP: #797556 + * rebase to v3.1-rc3 + * [Config] Simplify binary-udebs dependencies + * [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 + * rebase to v3.1-rc4 + * rebase to v3.1-rc5 + * [Config] Disable makedumpfile for i386/amd64 + * rebase to v3.1-rc6 + * [Config] Fix binary-% build target + * rebase to v3.1-rc7 + * rebase to v3.1-rc8 + * SAUCE: Add a new entry (413c:8197) to Bluetooth USB device ID table + - LP: #854399 + * [Config] Enable ftrace support in the mac80211 layer + - LP: #865171 + * rebase to v3.1-rc9 + * SAUCE: usb/core/devio.c: Check for printer class specific request + - LP: #872711 + + [ Upstream Kernel Changes ] + + * overlay filesystem + * overlayfs: add statfs support + * overlayfs: implement show_options + * overlay: overlay filesystem documentation + * fs: limit filesystem stacking depth + + [ Will Drewry ] + + * SAUCE: seccomp_filter: new mode with configurable syscall filters + * SAUCE: seccomp_filter: add process state reporting + * SAUCE: seccomp_filter: Document what seccomp_filter is and how it + works. + * SAUCE: seccomp_filter: add HAVE_SECCOMP_FILTER and seccomp_execve + + [ Upstream Kernel Changes ] + + * rebase to v3.1-rc1 + * rebase to v3.1-rc2 + * rebase to v3.1-rc3 + +CONFIG_BLK_DEV_BSGLIB=y + +CONFIG_BLK_DEV_LOOP_MIN_COUNT=8 + -CONFIG_VIDEO_OMAP2_VOUT_VRFB=y + * rebase to v3.1-rc4 + * rebase to v3.1-rc5 + * rebase to v3.1-rc6 + * rebase to v3.1-rc7 + * rebase to v3.1-rc8 + * rebase to v3.1-rc9 + * rebase to v3.1-rc10 + + -- Leann Ogasawara Wed, 10 Aug 2011 15:43:38 -0700 + +linux (3.1.0-1.0) oneiric; urgency=low + + [ Leann Ogasawara ] + + * Open P-series + + -- Leann Ogasawara Wed, 10 Aug 2011 13:42:40 -0700 + +linux (3.0.0-8.10) oneiric; urgency=low + + [ Adam Jackson ] + + * SAUCE: drm/i915/pch: Fix integer math bugs in panel fitting + - LP: #753994 + + [ John Johansen ] + + * [Config] Enable missing IPv6 options + + [ Leann Ogasawara ] + + * [Config] Disable config IWLWIFI_DEVICE_SVTOOL + - LP: #819925 + * Rebase to 3.0.1 + + [ Upstream Kernel Changes ] + + * x86, intel, power: Correct the MSR_IA32_ENERGY_PERF_BIAS message + * ALSA: hda - Turn on extra EAPDs on Conexant codecs + - LP: #783582 + * KVM: Remove SMEP bit from CR4_RESERVED_BITS + - LP: #796476 + * KVM: Add SMEP support when setting CR4 + - LP: #796476 + * KVM: Mask function7 ebx against host capability word9 + - LP: #796476 + * KVM: Add instruction fetch checking when walking guest page table + - LP: #796476 + + [ Upstream Kernel Changes ] + + * rebase to v3.0.1 + + -- Leann Ogasawara Fri, 05 Aug 2011 11:32:25 -0700 + +linux (3.0.0-7.9) oneiric; urgency=low + + [ Andy Whitcroft ] + + * Revert "[Upstream] add local prefix to oss local change_bits" + * Revert "SAUCE: add tracing for user initiated readahead requests" + * Revert "SAUCE: vfs: Add a trace point in the mark_inode_dirty function" + * Revert "SAUCE: Input: ALPS - Enable Intellimouse mode for Lenovo + Zhaoyang E47" + * Revert "SAUCE: fix documentation strings for struct input_keymap_entry" + * Revert "SAUCE: vt -- fix handoff numbering to 1..n and add range checks + (grub)" + * Revert "SAUCE: vt -- fix handoff numbering to 1..n and add range + checks" + * Revert "SAUCE: vt -- allow grub to request automatic vt_handoff" + * Revert "SAUCE: vt -- maintain bootloader screen mode and content until + vt switch" + * [Config] enable CONFIG_MTRR_SANITIZER_ENABLE_DEFAULT=1 + - LP: #816035 + * ubuntu: Yama: if an underlying filesystem provides a permissions op use + it + * SAUCE: (no-up) 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 + + [ Arjan van de Ven ] + + * SAUCE: (no-up) vfs: Add a trace point in the mark_inode_dirty function + + [ Kees Cook ] + + * Revert "SAUCE: (no-up) Disable building the ACPI debugfs source" + * [Config] enforce ACPI_CUSTOM_METHOD disabled + + [ Keng-Yu Lin ] + + * SAUCE: (no-up) Input: ALPS - Enable Intellimouse mode for Lenovo + Zhaoyang E47 + - LP: #632884, #803005 + + [ Leann Ogasawara ] + + * [Config] Enable CONFIG_BLK_DEV_CMD64X=m on powerpc + - LP: #513131 + * [Config] Enable CONFIG_RT2800PCI_RT53XX=y + - LP: #815064 + + [ Rezwanul Kabir ] + + * SAUCE: (no-up) Add support for Intellimouse Mode in ALPS touchpad on + Dell E2 series Laptops + - LP: #632884 + + [ Upstream Kernel Changes ] + + * Revert "yama: if an underlying filesystem provides a permissions op use + it" + * Revert "Add support for Intellimouse Mode in ALPS touchpad on Dell E2 + series Laptops" + * Revert "tty: include linux/slab.h for kfree" + * Revert "gpio/ml_ioh_gpio: include linux/slab.h for kfree" + * Revert "pch_dma: add include/slab.h for kfree" + * mmc: Added quirks for Ricoh 1180:e823 lower base clock frequency + - LP: #773524 + * oss: rename local change_bits to avoid powerpc bitsops.h definition + + -- Leann Ogasawara Mon, 25 Jul 2011 09:08:01 -0700 + +linux (3.0.0-7.8) oneiric; urgency=low + + [ Andy Whitcroft ] + + * ubuntu: overlayfs -- overlayfs: add statfs support + * [Config] enable CONFIG_OVERLAYFS + + [ Erez Zadok ] + + * ubuntu: overlayfs -- overlayfs: implement show_options + + [ Leann Ogasawara ] + + * [Config] Enable CONFIG_ALIM7101_WDT=m on powerpc + * [Config] Enable CONFIG_ASUS_OLED=m on powerpc + * [Config] Disable CONFIG_ATM_DUMMY on arm + * [Config] Enable CONFIG_BLK_DEV_DRBD=m on powerpc + * Temporarily disable module check on arm + * Rebase to 3.0 final + * [Config] Enable CONFIG_CAN_TI_HECC=m on arm + * [Config] Set CONFIG_CDROM_PKTCDVD=m on amd64 and i386 + * [Config] Enable CONFIG_CRYPTO_CCM=m on powerpc + * [Config] Enable CONFIG_CRYPTO_DEV_HIFN_795X=m on powerpc + * [Config] Enable CONFIG_CRYPTO_GCM=m on powerpc + * [Config] Set CRYPTO_LZO=m on powerpc64-smp + * [Config] Enable CONFIG_DM9000=m on arm + * [Config] Set CONFIG_DISPLAY_SUPPORT=m on arm + * [Config] Enable CONFIG_DL2K=m on amd64 and i386 + + [ Miklos Szeredi ] + + * ubuntu: overlayfs -- vfs: add i_op->open() + * ubuntu: overlayfs -- vfs: export do_splice_direct() to modules + * ubuntu: overlayfs -- vfs: introduce clone_private_mount() + * ubuntu: overlayfs -- overlay filesystem + * ubuntu: overlayfs -- ovl: fix overlayfs over overlayfs + * ubuntu: overlayfs -- ovl: improve stack use of lookup and readdir + * ubuntu: overlayfs -- fs: limit filesystem stacking depth + * ubuntu: overlayfs -- ovl: make lower mount read-only + + [ Neil Brown ] + + * ubuntu: overlayfs -- overlay: overlay filesystem documentation + + [ Tim Gardner ] + + * [Config] Add enic/fnic to udebs + - LP: #801610 + + [ Upstream Kernel Changes ] + + * yama: if an underlying filesystem provides a permissions op use it + + [ Major Kernel Changes ] + + * Rebase to 3.0 final + + -- Leann Ogasawara Thu, 21 Jul 2011 07:01:32 -0700 + +linux (3.0.0-6.7) oneiric; urgency=low + + [ Eagon Yager ] + + * [Config] Fix misspelled 'skipmodule' in arm makefile. + + [ Keng-Yu Lin ] + + * SAUCE: Input: ALPS - Enable Intellimouse mode for Lenovo Zhaoyang E47 + - LP: #632884, #803005 + + [ Leann Ogasawara ] + + * Revert "[Config] Temporarily disable CONFIG_SMC91X on armel-omap" + * Revert "[Config] Temporarily Disable CONFIG_BRCMSMAC on arm" + * Revert "[Config] Temporarily Disable CONFIG_RTL8192SE on powerpc" + * Revert "[Config] Temporarily Disable CONFIG_RTL8192SE on arm" + * Revert "[Config] Temporarily disable CONFIG_BRCMSMAC on powerpc" + * [Config] Set CONFIG_ACPI_PCI_SLOT=m + * [Config] Set CONFIG_ACPI_SBS=m + * [Config] Set CONFIG_ACPI_WMI=m + * [Config] Set CONFIG_AD7150=m on arm + * [Config] Set CONFIG_AD7152=m on arm + * [Config] Drop CONFIG_GPIO_S5PV210 + * [Config] Drop CONFIG_GPIO_S5PC100 + * [Config] Drop CONFIG_GPIO_PLAT_SAMSUNG + * [Config] Drop CONFIG_GPIO_EXYNOS4 + + [ Stefan Bader ] + + * SAUCE: Re-enable RODATA for i386 virtual + - LP: #809838 + + [ Upstream Kernel Changes ] + + * Revert "Quirk to fix suspend/resume on Lenovo Edge 11,13,14,15" + * (drop after 3.0.0) acer-wmi: Add support for Aspire 1830 wlan hotkey + - LP: #771758 + + -- Leann Ogasawara Wed, 20 Jul 2011 06:36:02 -0700 + +linux (3.0.0-5.6) oneiric; urgency=low + + [ Tim Gardner ] + + * [Config] CONFIG_RTL8192CU=m + * Rebase to -rc7 + + -- Tim Gardner Mon, 11 Jul 2011 22:13:50 +0100 + +linux (3.0.0-4.5) oneiric; urgency=low + + [ Ming Lei ] + + * SAUCE: fix yama_ptracer_del lockdep warning + - LP: #791019 + + [ Seth Forshee ] + + * SAUCE: (drop after 3.0) asus-wmi: Add callback for hotkey filtering + * SAUCE: (drop after 3.0) eeepc-wmi: Add support for T101MT Home/Express Gate key + * SAUCE: (drop after 3.0) asus-wmi: Enable autorepeat for hotkey input device + * [Config] CONFIG_{ASUS,ASUS_NB,EEEPC}_WMI=m + - LP: #805218 + + [ Tim Gardner ] + + * [Config] updateconfigs after rebase to -rc6+ + Rebased against 4dd1b49c6d215dc41ce50c80b4868388b93f31a3 + * Adopt a 3 digit verion, e.g., 3.0.0-x.x + * Revert "UBUNTU: add dependancies for module-init-tools" + This dependency is no longer required for a 3 digit version. + + -- Tim Gardner Tue, 05 Jul 2011 14:03:04 +0100 + +linux (3.0-3.4) oneiric; urgency=low + + [ Keng-Yu Lin ] + + * SAUCE: Revert: "dell-laptop: Toggle the unsupported hardware + killswitch" + - LP: #775281 + + [ Leann Ogasawara ] + + * rebase to v3.0-rc5 + * [Config] updateconfigs after rebase to 3.0-rc5 + + [ Tim Gardner ] + + * [Config] Remove ubuntu/rtl8192se + * [Config] Added armel ABI files + * [Config] Removed armel versatile flavour + * [Config] CONFIG_INTEL_MEI=m + - LP: #716867 + + [ Upstream Kernel Changes ] + + * ALSA: hda - Enable auto-parser as default for Conexant codecs + + [ Upstream Kernel Changes ] + + * rebase to v3.0-rc5 + + -- Leann Ogasawara Thu, 30 Jun 2011 14:27:10 +0100 + +linux (3.0-2.3) oneiric; urgency=low + + [ Andy Whitcroft ] + + * ubuntu: AUFS -- update to 0e2bafab74f0d1463383faeb93f9fc5eb8c2c54e + + [ Leann Ogasawara ] + + * rebase to v3.0-rc4 + * [Config] updateconfigs after rebase to 3.0-rc4 + * fix ERROR: __devcgroup_inode_permission undefined + + [ Stefan Bader ] + + * SAUCE: iscsitarget: Remove driver from the kernel + + [ Tim Gardner ] + + * SAUCE: rtl8192se: Force a build for a 2.6/3.0 kernel + * [Config] Add grub-efi as a recommended bootloader for server and + generic + - LP: #800910 + + [ Upstream Kernel Changes ] + + * Fix node_start/end_pfn() definition for mm/page_cgroup.c + + [ Leann Ogasawara ] + + * rebase to v3.0-rc4 + + -- Leann Ogasawara Fri, 24 Jun 2011 11:51:12 -0700 + +linux (3.0-1.2) oneiric; urgency=low + + [ Andy Whitcroft ] + + * [Config] enable CONFIG_CAN_CALC_BITTIMING + + [ Leann Ogasawara ] + + * rebase to v3.0-rc3 + * [Config] updateconfigs after rebase to 3.0-rc3 + + [ Upstream Kernel Changes ] + + * perf: clear out make flags when calling kernel make kernelver + + [ Leann Ogasawara ] + + * rebase to v3.0-rc3 + + -- Leann Ogasawara Tue, 14 Jun 2011 07:25:35 -0700 + +linux (3.0-0.1) oneiric; urgency=low + + [ Andy Whitcroft ] + + * use the packaging version in the kernel + * use the kernels idea of its version for version_signature + * add dependancies for module-init-tools + * update control files to version 3 + * printchanges/insertchanges allow override of prev_release + * correct Vcs-Git: to point to oneiric + + [ Leann Ogasawara ] + + * rebase to v3.0-rc1 + * [Config] updateconfigs after rebase to 3.0-rc1 + * ubuntu: dm-raid4-5 fix up build failure + * [Config] Temporarily Disable CONFIG_GPIO_EXYNOS4 on arm + * [Config] Temporarily Disable CONFIG_GPIO_PLAT_SAMSUNG on arm + * [Config] Temporarily Disable CONFIG_GPIO_S5PC100 on arm + * [Config] Temporarily Disable CONFIG_GPIO_S5PV210 on arm + * [Config] Temporarily disable CONFIG_BRCMSMAC on powerpc + * [Config] Temporarily Disable CONFIG_BRCMSMAC on arm + * [Config] Temporarily Disable CONFIG_RTL8192SE on arm + * [Config] Temporarily Disable CONFIG_RTL8192SE on powerpc + * [Config] Temporarily disable CONFIG_SMC91X on armel-omap + * rebase to v3.0-rc2 + + [ Manoj Iyer ] + + * SAUCE: mmc: Enable MMC card reader for RICOH [1180:e823] + - LP: #790754 + + [ Upstream Kernel Changes ] + + * Revert "x86 idle: EXPORT_SYMBOL(default_idle, pm_idle) only when APM + demands it" + * drm/i915: fix regression after clock gating init split + + [ Major Kernel Changes ] + + * rebase from v2.6.39 to v3.0-rc1 + * rebase from v3.0-rc1 to v3.0-rc2 + + -- Andy Whitcroft Thu, 09 Jun 2011 15:18:33 +0100 + +linux (2.6.39-3.10) oneiric; urgency=low + + [ Colin Ian King ] + + * SAUCE: S3 early resume debug via keyboard LEDs + + [ Ingo Molnar ] + + * ubuntu: nx-emu - i386: NX emulation + * ubuntu: nx-emu - i386: mmap randomization for executable mappings + + [ Leann Ogasawara ] + + * Revert "[Config] Disable CONFIG_FT1000 on powerpc64-smp" + * Revert "[Config] Disable CONFIG_DM_RAID45" + * [Config] enable CONFIG_BRCMFMAC=y + * [Config] enable CONFIG_MDIO_BITBANG=m across all arch's and flavors + * [Config] enable CONFIG_VIDEO_OUTPUT_CONTROL=m on armel-omap + + [ 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 ] + + * SAUCE: Convert dm-raid45 to new block plugging + + -- Leann Ogasawara Mon, 23 May 2011 11:46:43 -0700 + +linux (2.6.39-3.9) oneiric; urgency=low + + [ Leann Ogasawara ] + + * [Config] Disable CONFIG_SCSI_LPFC_DEBUG_FS + * rebase to v2.6.39 + * [Config] enable CONFIG_LLC2=m across all arch's and flavours + * [Config] enable CONFIG_INPUT_APANEL=m + + [ Thomas Schlichter ] + + * SAUCE: vesafb: mtrr module parameter is uint, not bool + - LP: #778043 + * SAUCE: vesafb: enable mtrr WC by default + - LP: #778043 + + [ Major Kernel Changes ] + + * rebase from v2.6.39-rc7 to v2.6.39 + + -- Andy Whitcroft Fri, 20 May 2011 09:52:32 +0100 + +linux (2.6.39-2.8) oneiric; urgency=low + + [ Andy Whitcroft ] + + * Revert "ubuntu: AUFS -- aufs2-standalone.patch aufs2.1-37" + * Revert "ubuntu: AUFS -- aufs2-base.patch aufs2.1-37" + * Revert "[Config] Disable CONFIG_AUFS_FS" + * ubuntu: AUFS -- aufs2-base.patch aufs2.1-39 + * ubuntu: AUFS -- aufs2-standalone.patch aufs2.1-39 + * ubuntu: AUFS -- update to c6b76974311efc5bf3eddf921cd015b6aae46935 + * ubuntu: AUFS -- clean up the aufs updater and BOM + * ubuntu: AUFS -- documentation on updating aufs2 + + [ Kees Cook ] + + * ubuntu: Yama - LSM hooks + * ubuntu: Yama - create task_free security callback + * ubuntu: Yama - add ptrace relationship tracking interface + * ubuntu: Yama - unconditionally chain to Yama LSM + + [ Leann Ogasawara ] + + * Revert "SAUCE: Fix drivers/staging/easycap FTBS" + * Revert "[Config] Disable CONFIG_EASYCAP" + * ubuntu: fsam7400 disable driver + * ubuntu: omnibook disable driver + * ubuntu: rfkill disable driver + + [ Tim Gardner ] + + * SAUCE: Fix extra reference in fb_open() + + -- Leann Ogasawara Mon, 16 May 2011 09:23:56 -0700 + +linux (2.6.39-2.7) oneiric; urgency=low + + [ Leann Ogasawara ] + + * rebase to v2.6.39-rc7 + + [ Major Kernel Changes ] + + * rebase from v2.6.39-rc6 to v2.6.39-rc7 + + -- Leann Ogasawara Tue, 10 May 2011 10:18:28 +0200 + +linux (2.6.39-1.6) oneiric; urgency=low + + [ Leann Ogasawara ] + + * rebase to v2.6.39-rc6 + * SAUCE: [arm] fixup __aeabi_uldivmod undefined build error + + [ Tim Gardner ] + + * [Config] updateconfigs after rebase to 2.6.39-rc6 + + [ Major Kernel Changes ] + + * rebase from v2.6.39-rc5 to v2.6.39-rc6 + - LP: #740126 + + -- Leann Ogasawara Thu, 05 May 2011 09:46:12 -0700 + +linux (2.6.39-0.5) oneiric; urgency=low + + [ Herton Ronaldo Krzesinski ] + + * SAUCE: Revert "x86, hibernate: Initialize mmu_cr4_features during boot" + - LP: #764758 + + [ Leann Ogasawara ] + + * rebase to v2.6.39-rc5 + * [Config] updateconfigs following rebase to v2.6.39-rc5 + + [ Paolo Pisati ] + + * [Config] s/USB_MUSB_TUSB6010/USB_MUSB_OMAP2PLUS/ on omap3 to get musb + - LP: #759913 + + [ Stefan Bader ] + + * Include nls_iso8859-1 for virtual images + - LP: #732046 + + [ Major Kernel Changes ] + + * rebase from v2.6.39-rc4 to v2.6.39-rc5 + + -- Leann Ogasawara Wed, 27 Apr 2011 06:39:42 -0700 + +linux (2.6.39-0.4) oneiric; urgency=low + + [ Leann Ogasawara ] + + * rebase to v2.6.39-rc4 + * [Config] updateconfigs following rebase to v2.6.39-rc4 + * fixup powerpc implicit declaration of function + 'crash_kexec_wait_realmode' + * [Config] Disable CONFIG_FT1000 on powerpc64-smp + + [ Tim Gardner ] + + * [Config] CONFIG_TRANSPARENT_HUGEPAGE=y + - LP: #769503 + * [Config] Add cachefiles.ko to virtual flavour + - LP: #770430 + + [ Major Kernel Changes ] + + * rebase from v2.6.39-rc3 to v2.6.39-rc4 + + -- Leann Ogasawara Tue, 19 Apr 2011 06:25:20 -0700 + +linux (2.6.39-0.3) oneiric; urgency=low + + [ Leann Ogasawara ] + + * rebase to v2.6.39-rc3 + * crash_kexec_wait_realmode() undefined when !SMP + + [ Tim Gardner ] + + * [Config] CONFIG_PM_ADVANCED_DEBUG=y for i386/amd64 + - LP: #632327 + + [ Major Kernel Changes ] + + * rebase from v2.6.39-rc2 to v2.6.39-rc3 + + -- Leann Ogasawara Tue, 12 Apr 2011 06:52:24 -0700 + +linux (2.6.39-0.2) oneiric; urgency=low + + [ Gustavo F. Padovan ] + + * SAUCE: Revert "Bluetooth: Add new PID for Atheros 3011" + - LP: #720949 + + [ John Johansen ] + + * AppArmor: Fix masking of capabilities in complain mode + - LP: #748656 + + [ Leann Ogasawara ] + + * rebase to v2.6.39-rc2 + * [Config] updateconfigs following rebase to v2.6.39-rc2 + * hv_mouse needs delay.h + * olpc_dcon_xo_1 needs delay.h + * olpc_dcon_xo_1_5 needs delay.h + * Update dropped.txt for Oneiric + + [ Steve Langasek ] + + * [Config] Make linux-libc-dev coinstallable under multiarch + - LP: #750585 + + [ Upstream Kernel Changes ] + + * x86, hibernate: Initialize mmu_cr4_features during boot + - LP: #752870 + + [ Major Kernel Changes ] + + * rebase from v2.6.39-rc1 to v2.6.39-rc2 + + -- Leann Ogasawara Wed, 06 Apr 2011 11:04:15 -0700 + +linux (2.6.39-0.1) oneiric; 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 + + [ Herton Ronaldo Krzesinski ] + + * SAUCE: (drop after 2.6.39) v4l: make sure drivers supply a zeroed + struct v4l2_subdev + - LP: #745213 + + [ 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.39-rc1 + * [Config] updateconfigs following rebase to v2.6.39-rc1 + * [Config] Disable CONFIG_DM_RAID45 + * [Config] Disable CONFIG_SCSI_ISCSITARGET + * [Config] Disable CONFIG_EASYCAP + * [Config] Disable CONFIG_AUFS_FS + * update bnx2 firmware files in d-i/firmware/nic-modules + * xhci-pci.c resolve implicit declaration of kzalloc + * [Config] Enable CONFIG_DRM_PSB for only x86 + * [Config] Enable CONFIG_RTS_PSTOR for only x86 + * mfd/asic3: Fix typo, s/irq_data/data/ + + [ 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. + + [ Manoj Iyer ] + + * SAUCE: thinkpad-acpi: module autoloading for newer Lenovo ThinkPads. + - LP: #745217 + + [ Tim Gardner ] + + * SAUCE: INR_OPEN=4096 + - LP: #663090 + * SAUCE: Increase the default hard limit for open FDs to 4096 + - LP: #663090 + + [ Upstream Kernel Changes ] + + * (drop after 2.6.39-rc1) arm: versatile : Fix typo introduced in irq + namespace cleanup + * (drop after 2.6.39-rc1) [media] staging: altera-jtag needs delay.h + * ALSA: pcm: fix infinite loop in snd_pcm_update_hw_ptr0() + + [ Major Kernel Changes ] + + * rebase from v2.6.38 to v2.6.39-rc1 + + -- Leann Ogasawara Thu, 31 Mar 2011 12:50:10 -0700 + +linux (2.6.39-0.0) oneiric; urgency=low + + [ Leann Ogasawara ] + + * Open Oneiric + + -- Leann Ogasawara Thu, 31 Mar 2011 12:29:23 -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-3.11.0.orig/debian/tools/generic +++ linux-3.11.0/debian/tools/generic @@ -0,0 +1,30 @@ +#!/bin/bash +full_version=`uname -r` + +# First check for a fully qualified version. +this="/usr/lib/linux-tools/$full_version/`basename $0`" +if [ -f "$this" ]; then + exec "$this" "$@" +fi + +# FALLBACK for older kernel layouts +# Removing flavour from version i.e. generic or server. +flavour_abi=${full_version#*-} +flavour=${flavour_abi#*-} +version=${full_version%-$flavour} +this="$0_$version" +if [ -f "$this" ]; then + exec "$this" "$@" +fi + +# If we have the appropriate package installed but no +# tool then the tool does not exist. +if [ -d "/usr/lib/linux-tools/$full_version" ]; then + echo "`basename $0` not available for kernel $version" >&2 + exit 2 +fi + +# Give them a hint as to what to install. +echo "`basename $0` not found for kernel $version" >&2 +echo "You may need to install linux-tools-$version-$flavour" >&2 +exit 2 --- linux-3.11.0.orig/debian/source/format +++ linux-3.11.0/debian/source/format @@ -0,0 +1 @@ +1.0 --- linux-3.11.0.orig/debian/control-scripts/postinst +++ linux-3.11.0/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"); + } + # 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:$!"); + 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:$!"); + 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}:$!"); + } + } + 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}:$!"); + } + } + + # 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"); + } + } + 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"); + } + } + 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:$!"); + 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"); + } + } + ##,#### + # 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"); + } + 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"); + } + } + ##,#### + # 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"); + } + } + # 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-3.11.0.orig/debian/control-scripts/headers-postinst +++ linux-3.11.0/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-3.11.0.orig/debian/control-scripts/preinst +++ linux-3.11.0/debian/control-scripts/preinst @@ -0,0 +1,315 @@ +#! /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)/; + +$arch = `uname -i`; +if ($arch =~ m/86/) { + system ("grep -q ' pae ' /proc/cpuinfo"); + if ($?) { + print STDERR "This kernel does not support a non-PAE CPU.\n"; + exit 1; + } +} + +# 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-3.11.0.orig/debian/control-scripts/prerm +++ linux-3.11.0/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-3.11.0.orig/debian/control-scripts/postrm +++ linux-3.11.0/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-3.11.0.orig/debian/scripts/sub-flavour +++ linux-3.11.0/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-3.11.0.orig/debian/scripts/abi-check +++ linux-3.11.0/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-3.11.0.orig/debian/scripts/module-inclusion +++ linux-3.11.0/debian/scripts/module-inclusion @@ -0,0 +1,60 @@ +#!/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/build/build-virtual-ALL debian/build/build-virtual \ +# debian.master/control.d/virtual.inclusion-list +master=0 +if [ "$1" = "--master" ]; then + master=1 + shift +fi + +ROOT=$1 +NROOT=$2 +ILIST=$3 + +# +# Prep a destination directory. +# +mkdir -p ${NROOT} + +# Copy over the framework... +if [ "$master" -eq 1 ]; then + (cd ${ROOT}; find . ! -name "*.ko" -type f) | \ + while read f + do + mkdir -p ${NROOT}/`dirname $f` + mv ${ROOT}/$f ${NROOT}/$f + done +fi + +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` + mv ${ROOT}/$f ${NROOT}/$f + done + else + if [ -f "${ROOT}/$i" ] + then + mkdir -p ${NROOT}/`dirname $i` + mv ${ROOT}/$i ${NROOT}/$i + else + echo Warning: Could not find ${ROOT}/$i + fi + fi + +done + +exit 0 --- linux-3.11.0.orig/debian/scripts/config-check +++ linux-3.11.0/debian/scripts/config-check @@ -0,0 +1,413 @@ +#!/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); + my $possible; + + if ($a[0] eq 'arch') { + die "$P: $pred: malformed -- $pred \n" if ($#a < 1); + for $possible (@a[1..$#a]) { + #print " *** ARCH<$flavour ?? $possible>\n"; + return 1 if ($arch eq $possible); + } + return 0; + } elsif ($a[0] eq 'flavour') { + die "$P: $pred: malformed -- $pred \n" if ($#a < 1); + for $possible (@a[1..$#a]) { + #print " *** FLAVOUR<$flavour ?? $possible>\n"; + return 1 if ($flavour eq $possible); + } + return 0; + } 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 $cut = 0; + 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"; + ($cut, $res) = pred_exec($1); + $res = !$res; + + # Leading / implies a CUT operation. + } elsif ($pred =~ /^\s*\/\s*(.*)$/) { + #print " cut<$1>\n"; + ($cut, $res) = pred_exec($1); + $cut = 1; + + # Recurse left for complex expressions. + } elsif ($pred =~ /^\s*\((.*)\)\s*$/) { + #print " left<$1>\n"; + ($cut, $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 ($cut == 0 && (($res && $sep eq '&') || (!$res && $sep eq '|'))) { + #print " right<$rest>\n"; + ($cut, $res) = pred_exec($rest); + } + + } else { + die "$P: $pred$rest: malformed predicate\n"; + } + #warn " return cut<$cut> res<$res> sep<$sep>\n"; + return ($cut, $res); +} + +# +# PREDICATE TESTS +# +my $test_total = 1; +my $test_good = 0; +sub pred_test { + my ($pred, $eres, $eerr) = @_; + my ($cut, $res, $err, $fail); + + $test_total++; + if ($test != 0 && $test != $test_total - 1) { + return; + } + + eval { + ($cut, $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', 1, undef); + pred_test('arch MYARCH NOTMYARCH', 1, undef); + pred_test('arch NOTMYARCH MYARCH', 1, undef); + pred_test('arch NOTMYARCH NOTMYARCH MYARCH', 1, undef); + pred_test('arch NOTMYARCH MYARCH NOTMYARCH', 1, undef); + pred_test('arch NOTMYARCH', 0, undef); + + pred_test('flavour', undef, $epred); + pred_test('flavour MYFLAVOUR', 1, undef); + pred_test('flavour NOTMYFLAVOUR MYFLAVOUR', 1, undef); + pred_test('flavour NOTMYFLAVOUR NOTMYFLAVOUR MYFLAVOUR', 1, undef); + pred_test('flavour NOTMYFLAVOUR MYFLAVOUR NOTMYFLAVOUR', 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); + + print "TEST: $test_total: cut tests ...\n"; + pred_test('(arch MYARCH & exists MISSING) | exists ENABLED', 1, undef); + pred_test('(arch MYARCH &/ exists MISSING) | exists ENABLED', 0, 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 (undef, $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-3.11.0.orig/debian/scripts/module-check +++ linux-3.11.0/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-3.11.0.orig/debian/scripts/control-create +++ linux-3.11.0/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-3.11.0.orig/debian/scripts/link-headers +++ linux-3.11.0/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-3.11.0.orig/debian/scripts/misc/git-ubuntu-log +++ linux-3.11.0/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-3.11.0.orig/debian/scripts/misc/get-firmware +++ linux-3.11.0/debian/scripts/misc/get-firmware @@ -0,0 +1,62 @@ +#!/bin/bash +# +# Find all files in linux-firmware that are new or different since the previous release +# and copy them into the kernel firmware directory. You should only do this on the +# backport branch since it would be redundant on the released kernel. It assumed you've +# unpacked linux-firmware from each release into separate directories. +# +# Example: $0 ~/ubuntu/linux-firmware-precise ~/ubuntu/linux-firmware-quantal + +if [ "$1" = "" ] || [ "$2" = "" ] || [ ! -f $1/WHENCE ] || [ ! -f $2/WHENCE ] +then + echo You must supply 2 firmware directories. + exit 1 +fi + +if [ ! -f debian/debian.env ] +then + echo You must run this script from the root of the repo + exit 1 +fi +. debian/debian.env + +NFWINFO="`find $DEBIAN -name fwinfo|wc -l`" +if [ ! "$NFWINFO" = "1" ] +then + echo Your repo is hosed. There can only be one fwinfo file. + find $DEBIAN -name fwinfo + exit 1 +fi + +FWINFO="`pwd`/`find $DEBIAN -name fwinfo`" + +CDIR=`pwd` +OFW=$1 +NFW=$2 + +cd $NFW +# +# Find all files in $NFW that are new or different from $1 +# +(find . -type f | egrep -v "debian|git|LICEN|WHEN|READ|Make|configure" | sed 's;\./;;' | \ +while read f +do + if grep -q $f $FWINFO + then + if [ ! -f $OFW/$f ] + then + echo $f + elif ! cmp $f $OFW/$f > /dev/null + then + echo $f + fi + fi +done) |\ +while read f +do + mkdir -p $CDIR/firmware/`dirname $f` + if [ ! -f $CDIR/firmware/`dirname $f`/`basename $f`.ihex ] + then + cp -v $f $CDIR/firmware/`dirname $f` + fi +done --- linux-3.11.0.orig/debian/scripts/misc/insert-ubuntu-changes +++ linux-3.11.0/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-3.11.0.orig/debian/scripts/misc/insert-mainline-changes +++ linux-3.11.0/debian/scripts/misc/insert-mainline-changes @@ -0,0 +1,42 @@ +#!/usr/bin/perl + +if ($#ARGV != 2) { + warn "Usage: $0 \n"; + die " $0 debian.master/changelog v3.2.3 v3.2.2..v3.2.3\n"; +} +my ($changelog, $to, $range) = @ARGV; + +my @changes = (); + +push(@changes, "\n"); +push(@changes, " [ Upstream Kernel Changes ]\n\n"); +push(@changes, " * rebase to $to\n"); + +open(LOG, "git log '$range'|") || die "$0: git log failed: - $!\n"; +while () { + if (m@BugLink: .*launchpad.net/.*/([0-9]+)\s$@) { + push(@changes, " - LP: #$1\n"); + } +} +close(LOG); + +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-3.11.0.orig/debian/scripts/misc/retag +++ linux-3.11.0/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-3.11.0.orig/debian/scripts/misc/kernelconfig +++ linux-3.11.0/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 config.flavour.*; 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-3.11.0.orig/debian/scripts/misc/getabis +++ linux-3.11.0/debian/scripts/misc/getabis @@ -0,0 +1,130 @@ +#!/bin/bash + +if [ "$#" != "2" ]; then + echo "Usage: $0 " 1>&2 + exit 1 +fi + +if [ "$DEBIAN" = "" ]; then + . debian/debian.env +fi + +ver=$1 +revision=$2 +abi=$(echo $revision | gawk -F. '{print $1}') + +verabi=$ver-$abi +verfull=$ver-$revision + +WGET="wget --tries=1 --timeout=10 --quiet -c" + +abidir="`pwd`/$DEBIAN/abi/$verfull" +tmpdir="`pwd`/abi-tmp-$verfull" +origdir="`pwd`" +fwinfo=$abidir/fwinfo + +test -d $tmpdir || mkdir $tmpdir + +package_prefixes() { + __package_prefixes="$@" +} + +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($arch)..." + prefixes="" + filenames="" + cd $tmpdir + for prefix in $__package_prefixes + do + filename=${prefix}-${verabi}-${sub}_${verfull}_${arch}.deb + for r in "${repo_list[@]}" + do + if ! [ -f $filename ]; then + $WGET $r/$filename + fi + if [ -f $filename ]; then + prefixes="$prefixes $prefix" + filenames="$filenames $filename" + break + fi + done + done + if [ "$filenames" != "" ]; then + echo -n "extracting$prefixes..." + for filename in $filenames + do + dpkg-deb --extract $filename tmp + done + find tmp -name "*.ko" | while read f; do + modinfo $f | grep ^firmware >> $fwinfo + done + 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 + ( + cd tmp; + # Prevent exposing some errors when called by python scripts. SIGPIPE seems to get + # exposed when using the `find ...` form of the command. + ko=$(find lib/modules/$verabi-$sub/kernel \ + -name '*.ko' | head -1) + readelf -p .comment "$ko" | gawk ' + ($1 == "[") { + printf("%s", $3); + for (n=4; n<=NF; n++) { + printf(" %s", $n); + } + print "" + }' | sort -u >$abidir/$arch/$sub.compiler + version=`cat $abidir/$arch/$sub.compiler` + echo -n "$version..." + ) + rm -rf tmp $filenames + 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. + +__package_prefixes="linux-image" + +. $DEBIAN/etc/getabis + +compilers=`cat $abidir/*/*.compiler | sort -u | wc -l` +if [ "$compilers" != 1 ]; then + echo "WARNING: inconsistant compiler versions detected" 1>&2 +fi + +sort < $fwinfo | uniq > fwinfo.tmp +mv fwinfo.tmp $fwinfo + +rmdir $tmpdir + +# Add the new ABI directory, remove the old +git add $abidir +find $DEBIAN/abi/* -maxdepth 0 -type d | grep -v $verfull | while read f; do git rm -r $f;done --- linux-3.11.0.orig/debian/scripts/misc/splitconfig.pl +++ linux-3.11.0/debian/scripts/misc/splitconfig.pl @@ -0,0 +1,107 @@ +#!/usr/bin/perl -w + +%allconfigs = (); +%common = (); + +print "Reading config's ...\n"; + +for $config (@ARGV) { + # 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"; +} + +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-3.11.0.orig/debian/scripts/misc/fw-to-ihex.sh +++ linux-3.11.0/debian/scripts/misc/fw-to-ihex.sh @@ -0,0 +1,18 @@ +#!/bin/bash + +F=$1 +if [ "$F" = "" ] +then + echo You must supply a firmware file. + exit 1 +fi + +echo "unsigned char d[] = {" > $F.c +hexdump -v -e '"\t" 8/1 "0x%02x, " "\n"' $F >> $F.c +echo "};" >> $F.c +sed -i 's/0x .*$//' $F.c + +O="`dirname $F`/`basename $F`.o" +gcc -o $O -c $F.c +objcopy -Oihex $F.o $F.ihex + --- linux-3.11.0.orig/debian/scripts/misc/find-obsolete-firmware +++ linux-3.11.0/debian/scripts/misc/find-obsolete-firmware @@ -0,0 +1,91 @@ +#!/bin/bash +# +# Find all duplicate or obsolete firmware that is being carried +# in the kernel firmware directory. Compare these files against +# the linux-firmware package for the approriate release. For example, +# assuming this is raring, then compare the kernel firmware files +# against the raring branch of linux-firmware. +# +# Example: $0 ~/ubuntu/linux-firmware-raring + +USEAGE="$0 LINUX-FIRMWARE" + +. debian/debian.env + +NFWINFO="`find $DEBIAN -name fwinfo|wc -l`" +if [ ! "$NFWINFO" = "1" ] +then + echo Your repo is hosed. There can only be one fwinfo file. + find $DEBIAN -name fwinfo + exit 1 +fi + +FWINFO="`pwd`/`find $DEBIAN -name fwinfo`" + +if [ "$1" = "" ] +then + echo $USEAGE + exit 1 +fi +FW="$1" + +if [ ! -f $FW/WHENCE ] +then + echo Bogus linux-firmware directory + exit 1 +fi +if ! egrep -q "^firmware:" $FWINFO +then + echo Bogus firmware info file + exit 1 +fi + +# +# Prepare the tree and make firmware. +# +TEE="tee -a" +LO=`pwd`/firmware.txt +LF=`pwd`/lib/firmware +rm -rf debian/build $LF $LO +fakeroot debian/rules clean prepare-generic +cp debian/build/build-generic/.config . +mkdir -p $LF +make firmware_install INSTALL_MOD_PATH=`pwd` + +(cd $LF +find . -type f | while read f +do + BN="`basename $f`" + + if ! grep -q $BN $FWINFO + then + echo "Unused firmware: $f" | $TEE $LO + else + if [ -f $FW/$f ] + then + if ! cmp $FW/$f $f + then + echo "$f differs" | $TEE $LO + else + echo "$f is duplicated" | $TEE $LO + fi + else + echo "$f does not exist in $FW" | $TEE $LO + fi + fi +done) + +# +# Check for firmware files referenced by the kernel +# that do not exist in either location. +# +cat $FWINFO | while read fwi f +do + if [ -s lib/firmware/$f ] || [ -s $FW/$f ] + then + continue + else + echo "Missing firmware $f" | $TEE $LO + fi +done + --- linux-3.11.0.orig/debian/scripts/misc/insert-changes.pl +++ linux-3.11.0/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-3.11.0.orig/debian/docs/README.inclusion-list +++ linux-3.11.0/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-3.11.0.orig/debian/tests-build/README +++ linux-3.11.0/debian/tests-build/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-3.11.0.orig/debian/tests-build/check-aliases +++ linux-3.11.0/debian/tests-build/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-3.11.0.orig/debian/rules.d/3-binary-indep.mk +++ linux-3.11.0/debian/rules.d/3-binary-indep.mk @@ -0,0 +1,149 @@ +build-indep: + @echo Debug: $@ + +# The binary-indep dependency chain is: +# +# install-headers <- install-doc <- install-source <- install-tools <- install-indep <- binary-indep +# install-headers <- binary-headers +# +indep_hdrpkg = $(indep_hdrs_pkg_name) +indep_hdrdir = $(CURDIR)/debian/$(indep_hdrpkg)/usr/src/$(indep_hdrpkg) +install-headers: + @echo Debug: $@ + dh_testdir + dh_testroot + dh_prep + +ifeq ($(do_flavour_header_package),true) + 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 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 + +docpkg = $(doc_pkg_name) +docdir = $(CURDIR)/debian/$(docpkg)/usr/share/doc/$(docpkg) +install-doc: install-headers + @echo Debug: $@ +ifeq ($(do_doc_package),true) + dh_testdir + dh_testroot + + 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 + +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 + @echo Debug: $@ +ifeq ($(do_source_package),true) + + 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: toolssbin = $(CURDIR)/debian/$(toolspkg)/usr/sbin +install-tools: toolsman = $(CURDIR)/debian/$(toolspkg)/usr/share/man +install-tools: install-source $(stampdir)/stamp-build-perarch + @echo Debug: $@ +ifeq ($(do_tools_common),true) + install -d $(toolsbin) + install -d $(toolsman)/man1 + + install -m755 debian/tools/generic $(toolsbin)/cpupower + install -m644 $(CURDIR)/tools/power/cpupower/man/*.1 $(toolsman)/man1/ + + install -m755 debian/tools/generic $(toolsbin)/perf + + install -m755 debian/tools/generic $(toolsbin)/x86_energy_perf_policy + install -m755 debian/tools/generic $(toolsbin)/turbostat + + install -d $(toolssbin) + install -m755 debian/tools/generic $(toolssbin)/hv_kvp_daemon + install -m755 debian/tools/generic $(toolssbin)/hv_vss_daemon + + 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 + + install -d $(toolsman)/man8 + install -m644 $(CURDIR)/tools/power/x86/x86_energy_perf_policy/*.8 $(toolsman)/man8 + install -m644 $(CURDIR)/tools/power/x86/turbostat/*.8 $(toolsman)/man8 + + install -m644 $(CURDIR)/tools/hv/*.8 $(toolsman)/man8 +endif + +install-indep: install-tools + @echo Debug: $@ + +# This is just to make it easy to call manually. Normally done in +# binary-indep target during builds. +binary-headers: install-headers + @echo Debug: $@ + 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) + $(lockme) dh_gencontrol -p$(indep_hdrpkg) + dh_md5sums -p$(indep_hdrpkg) + dh_builddeb -p$(indep_hdrpkg) + +binary-indep: install-indep + @echo Debug: $@ + + dh_installchangelogs -i + dh_installdocs -i + dh_compress -i + dh_fixperms -i + dh_installdeb -i + $(lockme) dh_gencontrol -i + dh_md5sums -i + dh_builddeb -i --- linux-3.11.0.orig/debian/rules.d/0-common-vars.mk +++ linux-3.11.0/debian/rules.d/0-common-vars.mk @@ -0,0 +1,233 @@ +# +# The source package name will be the first token from $(DEBIAN)/changelog +# +src_pkg_name=$(shell sed -n '1s/^\(.*\) (.*).*$$/\1/p' $(DEBIAN)/changelog) + +# Get some version info +release := $(shell sed -n '1s/^$(src_pkg_name).*(\(.*\)-.*).*$$/\1/p' $(DEBIAN)/changelog) +revisions := $(shell sed -n 's/^$(src_pkg_name)\ .*($(release)-\(.*\)).*$$/\1/p' $(DEBIAN)/changelog | tac) +revision ?= $(word $(words $(revisions)),$(revisions)) +prev_revisions := $(filter-out $(revision),0.0 $(revisions)) +prev_revision := $(word $(words $(prev_revisions)),$(prev_revisions)) + +prev_fullver ?= $(shell dpkg-parsechangelog -l$(DEBIAN)/changelog -o1 -c1 | sed -ne 's/^Version: *//p') + +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= + +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. +raw_kernelversion=$(shell make kernelversion) + +# +# full_build -- are we doing a full buildd style build +# +ifeq ($(wildcard /CurrentlyBuilding),) +full_build?=false +else +full_build?=true +endif + +# +# The debug packages are ginormous, so you probably want to skip +# building them (as a developer). +# +ifeq ($(full_build),false) +skipdbg=true +endif + +abinum := $(shell echo $(revision) | sed -e 's/\..*//')$(abi_suffix) +prev_abinum := $(shell echo $(prev_revision) | sed -e 's/\..*//')$(abi_suffix) +abi_release := $(release)-$(abinum) + +uploadnum := $(shell echo $(revision) | sed -e 's/.*\.//') +ifneq ($(full_build),false) + uploadnum := $(uploadnum)-Ubuntu +endif + +# XXX: linux-libc-dev got bumped to -803.N inadvertantly by a ti-omap4 upload +# shift our version higher for this package only. Ensure this only +# occurs for the v2.6.35 kernel so that we do not propogate this into +# any other series. +raw_uploadnum := $(shell echo $(revision) | sed -e 's/.*\.//') +libc_dev_version := +ifeq ($(DEBIAN),debian.master) +ifeq ($(release),2.6.35) +libc_dev_version := -v$(release)-$(shell expr "$(abinum)" + 1000).$(raw_uploadnum) +endif +endif + +DEB_HOST_MULTIARCH = $(shell dpkg-architecture -qDEB_HOST_MULTIARCH) +DEB_HOST_GNU_TYPE = $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE) +DEB_BUILD_GNU_TYPE = $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE) +DEB_HOST_ARCH = $(shell dpkg-architecture -qDEB_HOST_ARCH) +DEB_BUILD_ARCH = $(shell dpkg-architecture -qDEB_BUILD_ARCH) + +# +# Detect invocations of the form 'fakeroot debian/rules binary arch=armhf' +# within an x86'en schroot. This only gets you part of the way since the +# packaging phase fails, but you can at least compile the kernel quickly. +# +arch := $(DEB_HOST_ARCH) +ifneq ($(arch),$(DEB_HOST_ARCH)) + CROSS_COMPILE ?= $(shell dpkg-architecture -a$(arch) -qDEB_HOST_GNU_TYPE -f 2>/dev/null)- +endif + +# +# Detect invocations of the form 'dpkg-buildpackage -B -aarmhf' 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) +extra_pkg_name=linux-image-extra-$(abi_release) +hdrs_pkg_name=linux-headers-$(abi_release) +indep_hdrs_pkg_name=$(src_pkg_name)-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),) + ifeq ($(do_tools),) + ifneq ($(DEB_BUILD_GNU_TYPE),$(DEB_HOST_GNU_TYPE)) + do_tools=false + endif + endif + do_tools?=true +else + do_tools?=false +endif +do_tools_common?=false +tools_pkg_name=$(src_pkg_name)-tools-$(abi_release) +tools_common_pkg_name=$(src_pkg_name)-tools-common +tools_flavour_pkg_name=linux-tools-$(abi_release) + +# 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) \ + KERNELVERSION=$(abi_release)-$(target_flavour) \ + CONFIG_DEBUG_SECTION_MISMATCH=y \ + KBUILD_BUILD_VERSION="$(uploadnum)" \ + LOCALVERSION= localver-extra= \ + CFLAGS_MODULE="-DPKG_ABI=$(abinum)" +ifneq ($(LOCAL_ENV_CC),) +kmake += CC=$(LOCAL_ENV_CC) DISTCC_HOSTS=$(LOCAL_ENV_DISTCC_HOSTS) +endif + +# Locking is required in parallel builds to prevent loss of contents +# of the debian/files. +lockme_file = $(CURDIR)/debian/.LOCK +lockme_cmd = flock -w 60 +lockme = $(lockme_cmd) $(lockme_file) + +# Checks if a var is overriden by the custom rules. Called with var and +# flavour as arguments. +custom_override = \ + $(shell if [ -n "$($(1)_$(2))" ]; then echo "$($(1)_$(2))"; else echo "$($(1))"; fi) --- linux-3.11.0.orig/debian/rules.d/4-checks.mk +++ linux-3.11.0/debian/rules.d/4-checks.mk @@ -0,0 +1,27 @@ +# Check ABI for package against last release (if not same abinum) +abi-check-%: $(stampdir)/stamp-build-% + @echo Debug: $@ + 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-% + @echo Debug: $@ + 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 Debug: $@ + +# Check the config against the known options list. +config-prepare-check-%: $(stampdir)/stamp-prepare-tree-% + @echo Debug: $@ + @perl -f $(DROOT)/scripts/config-check \ + $(builddir)/build-$*/.config "$(arch)" "$*" "$(sharedconfdir)" "$(skipconfig)" + --- linux-3.11.0.orig/debian/rules.d/2-binary-arch.mk +++ linux-3.11.0/debian/rules.d/2-binary-arch.mk @@ -0,0 +1,591 @@ +# 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 + +# Typically supplied from the arch makefile, e.g., debian.master/control.d/armhf.mk +ifneq ($(gcc),) +kmake += CC=$(CROSS_COMPILE)$(gcc) +endif + +$(stampdir)/stamp-prepare-%: config-prepare-check-% + @echo Debug: $@ + @touch $@ +$(stampdir)/stamp-prepare-tree-%: target_flavour = $* +$(stampdir)/stamp-prepare-tree-%: $(commonconfdir)/config.common.$(family) $(archconfdir)/config.common.$(arch) $(archconfdir)/config.flavour.% + @echo Debug: $@ + 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)-$* $(raw_kernelversion)"/' > $(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 Debug: $@ +# Used by developers to allow efficient pre-building without fakeroot. +build-%: $(stampdir)/stamp-build-% + @echo Debug: $@ + +# Do the actual build, including image and modules +$(stampdir)/stamp-build-%: target_flavour = $* +$(stampdir)/stamp-build-%: bldimg = $(call custom_override,build_image,$*) +$(stampdir)/stamp-build-%: dtb_target = $(dtb_files_$*) +$(stampdir)/stamp-build-%: $(stampdir)/stamp-prepare-% + @echo Debug: $@ build_image $(build_image) bldimg $(bldimg) + $(build_cd) $(kmake) $(build_O) $(conc_level) $(bldimg) modules $(dtb_target) + @touch $@ + +# Install the finished build +install-%: pkgdir = $(CURDIR)/debian/$(bin_pkg_name)-$* +install-%: pkgdir_ex = $(CURDIR)/debian/$(extra_pkg_name)-$* +install-%: bindoc = $(pkgdir)/usr/share/doc/$(bin_pkg_name)-$* +install-%: dbgpkgdir = $(CURDIR)/debian/$(bin_pkg_name)-$*-dbgsym +install-%: signed = $(CURDIR)/debian/$(bin_pkg_name)-signed +install-%: toolspkgdir = $(CURDIR)/debian/$(tools_flavour_pkg_name)-$* +install-%: basepkg = $(hdrs_pkg_name) +install-%: indeppkg = $(indep_hdrs_pkg_name) +install-%: kernfile = $(call custom_override,kernel_file,$*) +install-%: instfile = $(call custom_override,install_file,$*) +install-%: hdrdir = $(CURDIR)/debian/$(basepkg)-$*/usr/src/$(basepkg)-$* +install-%: target_flavour = $* +install-%: dtb_files = $(dtb_files_$*) +install-%: CONFIG_MODULE_SIG_HASH=sha512 +install-%: MODSECKEY=$(builddir)/build-$*/signing_key.priv +install-%: MODPUBKEY=$(builddir)/build-$*/signing_key.x509 +install-%: checks-% + @echo Debug: $@ kernel_file $(kernel_file) kernfile $(kernfile) install_file $(install_file) instfile $(instfile) + dh_testdir + dh_testroot + dh_clean -k -p$(bin_pkg_name)-$* + dh_clean -k -p$(hdrs_pkg_name)-$* +ifneq ($(skipdbg),true) + dh_clean -k -p$(dbg_pkg_name)-$* +endif + + # 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-$*/$(kernfile) \ + $(pkgdir)/boot/$(instfile)-$(abi_release)-$* +else + install -d $(pkgdir)/boot + gzip -c9v $(builddir)/build-$*/$(kernfile) > \ + $(pkgdir)/boot/$(instfile)-$(abi_release)-$* + chmod 600 $(pkgdir)/boot/$(instfile)-$(abi_release)-$* +endif + +ifeq ($(arch),amd64) +ifeq ($(uefi_signed),true) + install -d $(signed)/$(release)-$(revision) + # Check to see if this supports handoff, if not do not sign it. + # Check the identification area magic and version >= 0x020b + handoff=`dd if="$(pkgdir)/boot/$(instfile)-$(abi_release)-$*" bs=1 skip=514 count=6 2>/dev/null | od -s | gawk '($$1 == 0 && $$2 == 25672 && $$3 == 21362 && $$4 >= 523) { print "GOOD" }'`; \ + if [ "$$handoff" = "GOOD" ]; then \ + cp -p $(pkgdir)/boot/$(instfile)-$(abi_release)-$* \ + $(signed)/$(release)-$(revision)/$(instfile)-$(abi_release)-$*.efi; \ + fi +endif +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)-$* + if [ "$(dtb_files)" ]; then \ + install -d $(pkgdir)/lib/firmware/$(abi_release)-$*/device-tree; \ + for dtb_file in $(dtb_files); do \ + install -m644 $(builddir)/build-$*/arch/$(build_arch)/boot/dts/$$dtb_file \ + $(pkgdir)/lib/firmware/$(abi_release)-$*/device-tree/$$dtb_file; \ + done \ + fi +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)-$* + +ifeq ($(do_extras_package),true) + # + # Remove all modules not in the inclusion list. + # + if [ -f $(DEBIAN)/control.d/$(target_flavour).inclusion-list ] ; then \ + mkdir -p $(pkgdir_ex)/lib/modules/$(abi_release)-$*; \ + mv $(pkgdir)/lib/modules/$(abi_release)-$*/kernel \ + $(pkgdir_ex)/lib/modules/$(abi_release)-$*/kernel; \ + $(SHELL) $(DROOT)/scripts/module-inclusion --master \ + $(pkgdir_ex)/lib/modules/$(abi_release)-$*/kernel \ + $(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; \ + if [ `grep -c 'unknown symbol' $(target_flavour).depmod.log` -gt 0 ]; then \ + echo "EE: Unresolved module dependencies in base package!"; \ + exit 1; \ + fi \ + fi +endif + +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/$(instfile)/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 +ifeq ($(do_extras_package),true) + # Install the postinit/postrm scripts in the extras package. + if [ -f $(DEBIAN)/control.d/$(target_flavour).inclusion-list ] ; then \ + install -d $(pkgdir_ex)/DEBIAN; \ + for script in postinst postrm ; do \ + sed -e 's/=V/$(abi_release)-$*/g' -e 's/=K/$(instfile)/g' \ + -e 's/=L/$(loader)/g' -e 's@=B@$(build_arch)@g' \ + debian/control-scripts/$$script > $(pkgdir_ex)/DEBIAN/$$script; \ + chmod 755 $(pkgdir_ex)/DEBIAN/$$script; \ + done; \ + fi +endif + + # 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/$(instfile)/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 + # Add .gnu_debuglink sections to each stripped .ko + # pointing to unstripped verson + find $(pkgdir) -name '*.ko' | sed 's|$(pkgdir)||'| while read module ; do \ + if [[ -f "$(dbgpkgdir)/usr/lib/debug/$$module" ]] ; then \ + $(CROSS_COMPILE)objcopy \ + --add-gnu-debuglink=$(dbgpkgdir)/usr/lib/debug/$$module \ + $(pkgdir)/$$module; \ + scripts/sign-file $(CONFIG_MODULE_SIG_HASH) $(MODSECKEY) $(MODPUBKEY) \ + $(pkgdir)/$$module; \ + fi; \ + done + 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 $(hdrdir)/source + # Copy over the compilation version. + cp "$(builddir)/build-$*/include/generated/compile.h" \ + "$(hdrdir)/include/generated/compile.h" + # 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)" "$(indeppkg)" "$*" + # 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/$(instfile)/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-build + + # + # 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)-$*/_ + +ifeq ($(do_tools),true) + # Create the linux-tools version-flavour link + install -d $(toolspkgdir)/usr/lib/linux-tools + ln -s ../$(src_pkg_name)-tools-$(abi_release) $(toolspkgdir)/usr/lib/linux-tools/$(abi_release)-$* +endif + +headers_tmp := $(CURDIR)/debian/tmp-headers +headers_dir := $(CURDIR)/debian/linux-libc-dev + +hmake := $(MAKE) -C $(CURDIR) O=$(headers_tmp) \ + KERNELVERSION=$(abi_release) INSTALL_HDR_PATH=$(headers_tmp)/install \ + SHELL="$(SHELL)" ARCH=$(header_arch) + +install-arch-headers: + @echo Debug: $@ + dh_testdir + dh_testroot + dh_clean -k -plinux-libc-dev + + rm -rf $(headers_tmp) + install -d $(headers_tmp) $(headers_dir)/usr/include/ + + $(hmake) $(defconfig) + mv $(headers_tmp)/.config $(headers_tmp)/.config.old + sed -e 's/^# \(CONFIG_MODVERSIONS\) is not set$$/\1=y/' \ + -e 's/.*CONFIG_LOCALVERSION_AUTO.*/# CONFIG_LOCALVERSION_AUTO is not set/' \ + $(headers_tmp)/.config.old > $(headers_tmp)/.config + $(hmake) silentoldconfig + $(hmake) headers_install + + ( cd $(headers_tmp)/install/include/ && \ + find . -name '.' -o -name '.*' -prune -o -print | \ + cpio -pvd --preserve-modification-time \ + $(headers_dir)/usr/include/ ) + 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 + @echo Debug: $@ + 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 + $(lockme) 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-%: pkgimg_ex = $(extra_pkg_name)-$* +binary-%: pkghdr = $(hdrs_pkg_name)-$* +binary-%: dbgpkg = $(bin_pkg_name)-$*-dbgsym +binary-%: dbgpkgdir = $(CURDIR)/debian/$(bin_pkg_name)-$*-dbgsym +binary-%: pkgtools = $(tools_flavour_pkg_name)-$* +binary-%: target_flavour = $* +binary-%: install-% + @echo Debug: $@ + 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) + $(lockme) dh_gencontrol -p$(pkgimg) + dh_md5sums -p$(pkgimg) + dh_builddeb -p$(pkgimg) -- -Zbzip2 -z9 + +ifeq ($(do_extras_package),true) + if [ -f $(DEBIAN)/control.d/$(target_flavour).inclusion-list ] ; then \ + dh_installchangelogs -p$(pkgimg_ex); \ + dh_installdocs -p$(pkgimg_ex); \ + dh_compress -p$(pkgimg_ex); \ + dh_fixperms -p$(pkgimg_ex) -X/boot/; \ + dh_installdeb -p$(pkgimg_ex); \ + dh_shlibdeps -p$(pkgimg_ex); \ + $(lockme) dh_gencontrol -p$(pkgimg_ex); \ + dh_md5sums -p$(pkgimg_ex); \ + dh_builddeb -p$(pkgimg_ex) -- -Zbzip2 -z9; \ + fi +endif + + dh_installchangelogs -p$(pkghdr) + dh_installdocs -p$(pkghdr) + dh_compress -p$(pkghdr) + dh_fixperms -p$(pkghdr) + dh_shlibdeps -p$(pkghdr) + dh_installdeb -p$(pkghdr) + $(lockme) 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; \ + $(lockme) 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) + $(lockme) 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; \ + ( \ + $(lockme_cmd) 9 || exit 1; \ + 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; \ + ) 9>$(lockme_file) + # Now, the package wont get into the archive, but it will get put + # into the debug system. +endif + +ifeq ($(do_tools),true) + dh_installchangelogs -p$(pkgtools) + dh_installdocs -p$(pkgtools) + dh_compress -p$(pkgtools) + dh_fixperms -p$(pkgtools) + dh_shlibdeps -p$(pkgtools) + dh_installdeb -p$(pkgtools) + $(lockme) dh_gencontrol -p$(pkgtools) + dh_md5sums -p$(pkgtools) + dh_builddeb -p$(pkgtools) +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 +# +builddirpa = $(builddir)/tools-perarch + +$(stampdir)/stamp-prepare-perarch: + @echo Debug: $@ +ifeq ($(do_tools),true) + rm -rf $(builddirpa) + install -d $(builddirpa) + for i in *; do ln -s $(CURDIR)/$$i $(builddirpa); done + rm $(builddirpa)/tools + rsync -a tools/ $(builddirpa)/tools/ +endif + touch $@ + +$(stampdir)/stamp-build-perarch: $(stampdir)/stamp-prepare-perarch + @echo Debug: $@ +ifeq ($(do_tools),true) + +ifeq ($(do_tools_cpupower),true) + # Allow for multiple installed versions of cpupower and libcpupower.so: + # Override LIB_MIN in order to to generate a versioned .so named + # libcpupower.so.$(abi_release) and link cpupower with that. + make -C $(builddirpa)/tools/power/cpupower \ + ARCH=$(arch) \ + CROSS=$(CROSS_COMPILE) \ + LIB_MIN=$(abi_release) CPUFREQ_BENCH=false +endif + +ifeq ($(do_tools_perf),true) + cd $(builddirpa)/tools/perf && \ + make prefix=/usr ARCH=$(arch) HAVE_CPLUS_DEMANGLE=1 CROSS_COMPILE=$(CROSS_COMPILE) NO_LIBPYTHON=1 NO_LIBPERL=1 PYTHON=python2.7 +endif +ifeq ($(do_tools_x86),true) + cd $(builddirpa)/tools/power/x86/x86_energy_perf_policy && make ARCH=$(arch) CROSS_COMPILE=$(CROSS_COMPILE) + cd $(builddirpa)/tools/power/x86/turbostat && make ARCH=$(arch) CROSS_COMPILE=$(CROSS_COMPILE) +endif +ifeq ($(do_tools_hyperv),true) + cd $(builddirpa)/tools/hv && make ARCH=$(arch) CROSS_COMPILE=$(CROSS_COMPILE) +endif +endif + @touch $@ + +install-perarch: toolspkgdir = $(CURDIR)/debian/$(tools_pkg_name) +install-perarch: $(stampdir)/stamp-build-perarch + @echo Debug: $@ + # Add the tools. +ifeq ($(do_tools),true) + install -d $(toolspkgdir)/usr/lib + install -d $(toolspkgdir)/usr/lib/$(src_pkg_name)-tools-$(abi_release) + +ifeq ($(do_tools_cpupower),true) + install -m755 $(builddirpa)/tools/power/cpupower/cpupower \ + $(toolspkgdir)/usr/lib/$(src_pkg_name)-tools-$(abi_release) + # Install only the full versioned libcpupower.so.$(abi_release), not + # the usual symlinks to it. + install -m644 $(builddirpa)/tools/power/cpupower/libcpupower.so.$(abi_release) \ + $(toolspkgdir)/usr/lib/ +endif + +ifeq ($(do_tools_perf),true) + install -m755 $(builddirpa)/tools/perf/perf $(toolspkgdir)/usr/lib/$(src_pkg_name)-tools-$(abi_release) +endif +ifeq ($(do_tools_x86),true) + install -m755 $(builddirpa)/tools/power/x86/x86_energy_perf_policy/x86_energy_perf_policy \ + $(toolspkgdir)/usr/lib/$(src_pkg_name)-tools-$(abi_release) + install -m755 $(builddirpa)/tools/power/x86/turbostat/turbostat \ + $(toolspkgdir)/usr/lib/$(src_pkg_name)-tools-$(abi_release) +endif +ifeq ($(do_tools_hyperv),true) + install -m755 $(builddirpa)/tools/hv/hv_kvp_daemon \ + $(toolspkgdir)/usr/lib/$(src_pkg_name)-tools-$(abi_release) + install -m755 $(builddirpa)/tools/hv/hv_vss_daemon \ + $(toolspkgdir)/usr/lib/$(src_pkg_name)-tools-$(abi_release) +endif +endif + +binary-perarch: toolspkg = $(tools_pkg_name) +binary-perarch: install-perarch + @echo Debug: $@ +ifeq ($(do_tools),true) + dh_strip -p$(toolspkg) + dh_installchangelogs -p$(toolspkg) + dh_installdocs -p$(toolspkg) + dh_compress -p$(toolspkg) + dh_fixperms -p$(toolspkg) + dh_shlibdeps -p$(toolspkg) + dh_installdeb -p$(toolspkg) + $(lockme) dh_gencontrol -p$(toolspkg) + dh_md5sums -p$(toolspkg) + dh_builddeb -p$(toolspkg) +endif + +binary-debs: signed = $(CURDIR)/debian/$(bin_pkg_name)-signed +binary-debs: signedv = $(CURDIR)/debian/$(bin_pkg_name)-signed/$(release)-$(revision) +binary-debs: signed_tar = $(src_pkg_name)_$(release)-$(revision)_$(arch).tar.gz +binary-debs: binary-perarch $(addprefix binary-,$(flavours)) + @echo Debug: $@ +ifeq ($(arch),amd64) +ifeq ($(uefi_signed),true) + echo $(release)-$(revision) > $(signedv)/version + cd $(signedv) && ls *.efi >flavours + cd $(signed) && tar czvf ../../../$(signed_tar) . + dpkg-distaddfile $(signed_tar) raw-uefi - +endif +endif + +build-arch-deps-$(do_flavour_image_package) += $(addprefix $(stampdir)/stamp-build-,$(flavours)) +build-arch: $(build-arch-deps-true) + @echo Debug: $@ + +ifeq ($(AUTOBUILD),) +binary-arch-deps-$(do_flavour_image_package) += binary-udebs +else +binary-arch-deps-$(do_flavour_image_package) = binary-debs +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) + @echo Debug: $@ + --- linux-3.11.0.orig/debian/rules.d/5-udebs.mk +++ linux-3.11.0/debian/rules.d/5-udebs.mk @@ -0,0 +1,67 @@ +# Do udebs if not disabled in the arch-specific makefile +binary-udebs: binary-debs + @echo Debug: $@ +ifeq ($(disable_d_i),) + @$(MAKE) --no-print-directory -f $(DROOT)/rules DEBIAN=$(DEBIAN) \ + do-binary-udebs +endif + +do-binary-udebs: debian/control + @echo Debug: $@ + dh_testdir + dh_testroot + + # unpack the kernels into a temporary directory + mkdir -p debian/d-i-${arch} + + imagelist=$$(cat $(builddir)/kernel-versions | grep ^${arch} | gawk '{print $$4}') && \ + for i in $$imagelist; do \ + dpkg -x $$(ls ../linux-image-$$i\_$(release)-$(revision)_${arch}.deb) \ + debian/d-i-${arch}; \ + if [ -f ../linux-image-extra-$$i\_$(release)-$(revision)_${arch}.deb ] ; then \ + dpkg -x ../linux-image-extra-$$i\_$(release)-$(revision)_${arch}.deb \ + debian/d-i-${arch}; \ + fi; \ + /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; \ + $(lockme) dh_gencontrol -p$$i; \ + dh_builddeb -p$$i; \ + done + + # Generate the meta-udeb dependancy lists. + @gawk ' \ + /Package: / { package=$$2 } \ + (/Package-Type: udeb/ && package !~ /^'$(src_pkg_name)'-udebs-/) { \ + match(package, "'$(release)'-'$(abinum)'-(.*)-di", bits); \ + flavour = bits[1]; \ + udebs[flavour] = udebs[flavour] package ", "; \ + } \ + END { \ + for (flavour in udebs) { \ + package="'$(src_pkg_name)'-udebs-" flavour; \ + file="debian/" package ".substvars"; \ + print("udeb:Depends=" udebs[flavour]) > file; \ + metas="'$(builddir)'/udeb-meta-packages"; \ + print(package) >metas \ + } \ + } \ + ' <$(CURDIR)/debian/control + @while read i; do \ + $(lockme) dh_gencontrol -p$$i; \ + dh_builddeb -p$$i; \ + done <$(builddir)/udeb-meta-packages --- linux-3.11.0.orig/debian/rules.d/1-maintainer.mk +++ linux-3.11.0/debian/rules.d/1-maintainer.mk @@ -0,0 +1,120 @@ +# 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)" + @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' | \ + gawk '/UBUNTU: '".*Ubuntu-$(prev_fullver)"'$$/ { 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) | gawk -F. '{print $$2}'` + 1); \ + nextmajor=$(shell expr `echo $(revision) | awk -F. '{print $$1}'` + 1); \ + now="$(shell date -R)"; \ + echo "Creating new changelog set for $(release)-$$nextmajor.$$nextminor..."; \ + echo -e "$(src_pkg_name) ($(release)-$$nextmajor.$$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-3.11.0.orig/debian/commit-templates/config-updates +++ linux-3.11.0/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-3.11.0.orig/debian/commit-templates/sauce-patch +++ linux-3.11.0/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-3.11.0.orig/debian/commit-templates/missing-modules +++ linux-3.11.0/debian/commit-templates/missing-modules @@ -0,0 +1,3 @@ +UBUNTU: build/modules: Add modules that have intentionally gone missing + +Ignore: yes --- linux-3.11.0.orig/debian/commit-templates/upstream-patch +++ linux-3.11.0/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-3.11.0.orig/debian/commit-templates/bumpabi +++ linux-3.11.0/debian/commit-templates/bumpabi @@ -0,0 +1,3 @@ +UBUNTU: Bump ABI + +Ignore: yes --- linux-3.11.0.orig/debian/commit-templates/newrelease +++ linux-3.11.0/debian/commit-templates/newrelease @@ -0,0 +1,3 @@ +UBUNTU: Start new release + +Ignore: yes --- linux-3.11.0.orig/debian/commit-templates/external-driver +++ linux-3.11.0/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-3.11.0.orig/debian/stamps/keep-dir +++ linux-3.11.0/debian/stamps/keep-dir @@ -0,0 +1 @@ +Place holder --- linux-3.11.0.orig/debian/tests/rebuild +++ linux-3.11.0/debian/tests/rebuild @@ -0,0 +1 @@ +#!/bin/true --- linux-3.11.0.orig/debian/tests/control +++ linux-3.11.0/debian/tests/control @@ -0,0 +1,3 @@ +Tests: rebuild +Depends: build-essential +Restrictions: build-needed --- linux-3.11.0.orig/ubuntu/update-lttng.sh +++ linux-3.11.0/ubuntu/update-lttng.sh @@ -0,0 +1,11 @@ +#!/bin/bash + +# +# Update lttng from the modules repository +# + +REPO=git://git.lttng.org/lttng-modules.git + +git clone $REPO +rsync -av --delete --exclude=.git lttng-modules/ lttng/ + --- linux-3.11.0.orig/ubuntu/Makefile +++ linux-3.11.0/ubuntu/Makefile @@ -0,0 +1,29 @@ +# +# Makefile for the Linux kernel 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. +# + +## +## +## +obj-$(CONFIG_DM_RAID45) += dm-raid4-5/ +## +## +## +obj-$(CONFIG_AUFS_FS) += aufs/ +## +## +## +obj-m += lttng/ +## +## +## + +# This is a stupid trick to get kbuild to create ubuntu/built-in.o +obj- += foo.o --- linux-3.11.0.orig/ubuntu/Kconfig +++ linux-3.11.0/ubuntu/Kconfig @@ -0,0 +1,22 @@ +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/dm-raid4-5/Kconfig" +## +## +## +source "ubuntu/aufs/Kconfig" +## +## +## + +endmenu --- linux-3.11.0.orig/ubuntu/aufs-update +++ linux-3.11.0/ubuntu/aufs-update @@ -0,0 +1,52 @@ +#!/bin/bash +# +# NOTE: See aufs/BOM.UPDATING for instructions on how to use this updater. +# + +if [ "$#" -ne 1 ]; then + echo "Usage: $0 " 1>&2 + exit 1 +fi +aufs="$1" + +# Get the current tip name +{ + read x url + read x o_log_sha1 + read x o_tip_sha1 +} + * + * 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; only + * version 2.1 of the License. + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "wrapper/trace-clock.h" +#include "lttng-tracer-core.h" +#include "lttng-events.h" + +#define LTTNG_MODULES_MAJOR_VERSION 2 +#define LTTNG_MODULES_MINOR_VERSION 3 +#define LTTNG_MODULES_PATCHLEVEL_VERSION 0 + +#define LTTNG_VERSION_NAME "Dominus Vobiscum" +#define LTTNG_VERSION_DESCRIPTION \ + "A very succulent line-up of beers brewed at Microbrasserie Charlevoix. Elaborated starting from special malts and fermented with a Belgian yeast. These beers are refermented in bottle and will make you discover the richness of wheat, amber and triple styles." + +#ifndef CHAR_BIT +#define CHAR_BIT 8 +#endif + +/* Number of bytes to log with a read/write event */ +#define LTTNG_LOG_RW_SIZE 32L +#define LTTNG_MAX_SMALL_SIZE 0xFFFFU + +#ifdef RING_BUFFER_ALIGN +#define lttng_alignof(type) __alignof__(type) +#else +#define lttng_alignof(type) 1 +#endif + +/* Tracer properties */ +#define CTF_MAGIC_NUMBER 0xC1FC1FC1 +#define TSDL_MAGIC_NUMBER 0x75D11D57 + +/* CTF specification version followed */ +#define CTF_SPEC_MAJOR 1 +#define CTF_SPEC_MINOR 8 + +/* + * Number of milliseconds to retry before failing metadata writes on buffer full + * condition. (10 seconds) + */ +#define LTTNG_METADATA_TIMEOUT_MSEC 10000 + +#define LTTNG_RFLAG_EXTENDED RING_BUFFER_RFLAG_END +#define LTTNG_RFLAG_END (LTTNG_RFLAG_EXTENDED << 1) + +#endif /* _LTTNG_TRACER_H */ --- linux-3.11.0.orig/ubuntu/lttng/lttng-context-vpid.c +++ linux-3.11.0/ubuntu/lttng/lttng-context-vpid.c @@ -0,0 +1,87 @@ +/* + * lttng-context-vpid.c + * + * LTTng vPID context. + * + * Copyright (C) 2009-2012 Mathieu Desnoyers + * + * 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; only + * version 2.1 of the License. + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include +#include +#include +#include "lttng-events.h" +#include "wrapper/ringbuffer/frontend_types.h" +#include "wrapper/vmalloc.h" +#include "lttng-tracer.h" + +static +size_t vpid_get_size(size_t offset) +{ + size_t size = 0; + + size += lib_ring_buffer_align(offset, lttng_alignof(pid_t)); + size += sizeof(pid_t); + return size; +} + +static +void vpid_record(struct lttng_ctx_field *field, + struct lib_ring_buffer_ctx *ctx, + struct lttng_channel *chan) +{ + pid_t vpid; + + /* + * nsproxy can be NULL when scheduled out of exit. + */ + if (!current->nsproxy) + vpid = 0; + else + vpid = task_tgid_vnr(current); + lib_ring_buffer_align_ctx(ctx, lttng_alignof(vpid)); + chan->ops->event_write(ctx, &vpid, sizeof(vpid)); +} + +int lttng_add_vpid_to_ctx(struct lttng_ctx **ctx) +{ + struct lttng_ctx_field *field; + + field = lttng_append_context(ctx); + if (!field) + return -ENOMEM; + if (lttng_find_context(*ctx, "vpid")) { + lttng_remove_context_field(ctx, field); + return -EEXIST; + } + field->event_field.name = "vpid"; + field->event_field.type.atype = atype_integer; + field->event_field.type.u.basic.integer.size = sizeof(pid_t) * CHAR_BIT; + field->event_field.type.u.basic.integer.alignment = lttng_alignof(pid_t) * CHAR_BIT; + field->event_field.type.u.basic.integer.signedness = lttng_is_signed_type(pid_t); + field->event_field.type.u.basic.integer.reverse_byte_order = 0; + field->event_field.type.u.basic.integer.base = 10; + field->event_field.type.u.basic.integer.encoding = lttng_encode_none; + field->get_size = vpid_get_size; + field->record = vpid_record; + wrapper_vmalloc_sync_all(); + return 0; +} +EXPORT_SYMBOL_GPL(lttng_add_vpid_to_ctx); + +MODULE_LICENSE("GPL and additional rights"); +MODULE_AUTHOR("Mathieu Desnoyers"); +MODULE_DESCRIPTION("Linux Trace Toolkit vPID Context"); --- linux-3.11.0.orig/ubuntu/lttng/lttng-context.c +++ linux-3.11.0/ubuntu/lttng/lttng-context.c @@ -0,0 +1,105 @@ +/* + * lttng-context.c + * + * LTTng trace/channel/event context management. + * + * Copyright (C) 2011-2012 Mathieu Desnoyers + * + * 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; only + * version 2.1 of the License. + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include +#include +#include +#include +#include "wrapper/vmalloc.h" /* for wrapper_vmalloc_sync_all() */ +#include "lttng-events.h" +#include "lttng-tracer.h" + +int lttng_find_context(struct lttng_ctx *ctx, const char *name) +{ + unsigned int i; + + for (i = 0; i < ctx->nr_fields; i++) { + /* Skip allocated (but non-initialized) contexts */ + if (!ctx->fields[i].event_field.name) + continue; + if (!strcmp(ctx->fields[i].event_field.name, name)) + return 1; + } + return 0; +} +EXPORT_SYMBOL_GPL(lttng_find_context); + +/* + * Note: as we append context information, the pointer location may change. + */ +struct lttng_ctx_field *lttng_append_context(struct lttng_ctx **ctx_p) +{ + struct lttng_ctx_field *field; + struct lttng_ctx *ctx; + + if (!*ctx_p) { + *ctx_p = kzalloc(sizeof(struct lttng_ctx), GFP_KERNEL); + if (!*ctx_p) + return NULL; + } + ctx = *ctx_p; + if (ctx->nr_fields + 1 > ctx->allocated_fields) { + struct lttng_ctx_field *new_fields; + + ctx->allocated_fields = max_t(size_t, 1, 2 * ctx->allocated_fields); + new_fields = kzalloc(ctx->allocated_fields * sizeof(struct lttng_ctx_field), GFP_KERNEL); + if (!new_fields) + return NULL; + if (ctx->fields) + memcpy(new_fields, ctx->fields, sizeof(*ctx->fields) * ctx->nr_fields); + kfree(ctx->fields); + ctx->fields = new_fields; + } + field = &ctx->fields[ctx->nr_fields]; + ctx->nr_fields++; + return field; +} +EXPORT_SYMBOL_GPL(lttng_append_context); + +/* + * Remove last context field. + */ +void lttng_remove_context_field(struct lttng_ctx **ctx_p, + struct lttng_ctx_field *field) +{ + struct lttng_ctx *ctx; + + ctx = *ctx_p; + ctx->nr_fields--; + WARN_ON_ONCE(&ctx->fields[ctx->nr_fields] != field); + memset(&ctx->fields[ctx->nr_fields], 0, sizeof(struct lttng_ctx_field)); +} +EXPORT_SYMBOL_GPL(lttng_remove_context_field); + +void lttng_destroy_context(struct lttng_ctx *ctx) +{ + int i; + + if (!ctx) + return; + for (i = 0; i < ctx->nr_fields; i++) { + if (ctx->fields[i].destroy) + ctx->fields[i].destroy(&ctx->fields[i]); + } + kfree(ctx->fields); + kfree(ctx); +} --- linux-3.11.0.orig/ubuntu/lttng/mit-license.txt +++ linux-3.11.0/ubuntu/lttng/mit-license.txt @@ -0,0 +1,19 @@ +Copyright (c) ... + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. --- linux-3.11.0.orig/ubuntu/lttng/lttng-abi.c +++ linux-3.11.0/ubuntu/lttng/lttng-abi.c @@ -0,0 +1,1588 @@ +/* + * lttng-abi.c + * + * LTTng ABI + * + * Copyright (C) 2010-2012 Mathieu Desnoyers + * + * 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; only + * version 2.1 of the License. + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + * + * + * Mimic system calls for: + * - session creation, returns a file descriptor or failure. + * - channel creation, returns a file descriptor or failure. + * - Operates on a session file descriptor + * - Takes all channel options as parameters. + * - stream get, returns a file descriptor or failure. + * - Operates on a channel file descriptor. + * - stream notifier get, returns a file descriptor or failure. + * - Operates on a channel file descriptor. + * - event creation, returns a file descriptor or failure. + * - Operates on a channel file descriptor + * - Takes an event name as parameter + * - Takes an instrumentation source as parameter + * - e.g. tracepoints, dynamic_probes... + * - Takes instrumentation source specific arguments. + */ + +#include +#include +#include +#include +#include +#include +#include "wrapper/vmalloc.h" /* for wrapper_vmalloc_sync_all() */ +#include "wrapper/ringbuffer/vfs.h" +#include "wrapper/ringbuffer/backend.h" +#include "wrapper/ringbuffer/frontend.h" +#include "wrapper/poll.h" +#include "lttng-abi.h" +#include "lttng-abi-old.h" +#include "lttng-events.h" +#include "lttng-tracer.h" +#include "lib/ringbuffer/frontend_types.h" + +/* + * This is LTTng's own personal way to create a system call as an external + * module. We use ioctl() on /proc/lttng. + */ + +static struct proc_dir_entry *lttng_proc_dentry; +static const struct file_operations lttng_fops; +static const struct file_operations lttng_session_fops; +static const struct file_operations lttng_channel_fops; +static const struct file_operations lttng_metadata_fops; +static const struct file_operations lttng_event_fops; +static struct file_operations lttng_stream_ring_buffer_file_operations; + +/* + * Teardown management: opened file descriptors keep a refcount on the module, + * so it can only exit when all file descriptors are closed. + */ + +static +int lttng_abi_create_session(void) +{ + struct lttng_session *session; + struct file *session_file; + int session_fd, ret; + + session = lttng_session_create(); + if (!session) + return -ENOMEM; + session_fd = get_unused_fd(); + if (session_fd < 0) { + ret = session_fd; + goto fd_error; + } + session_file = anon_inode_getfile("[lttng_session]", + <tng_session_fops, + session, O_RDWR); + if (IS_ERR(session_file)) { + ret = PTR_ERR(session_file); + goto file_error; + } + session->file = session_file; + fd_install(session_fd, session_file); + return session_fd; + +file_error: + put_unused_fd(session_fd); +fd_error: + lttng_session_destroy(session); + return ret; +} + +static +int lttng_abi_tracepoint_list(void) +{ + struct file *tracepoint_list_file; + int file_fd, ret; + + file_fd = get_unused_fd(); + if (file_fd < 0) { + ret = file_fd; + goto fd_error; + } + + tracepoint_list_file = anon_inode_getfile("[lttng_session]", + <tng_tracepoint_list_fops, + NULL, O_RDWR); + if (IS_ERR(tracepoint_list_file)) { + ret = PTR_ERR(tracepoint_list_file); + goto file_error; + } + ret = lttng_tracepoint_list_fops.open(NULL, tracepoint_list_file); + if (ret < 0) + goto open_error; + fd_install(file_fd, tracepoint_list_file); + if (file_fd < 0) { + ret = file_fd; + goto fd_error; + } + return file_fd; + +open_error: + fput(tracepoint_list_file); +file_error: + put_unused_fd(file_fd); +fd_error: + return ret; +} + +static +void lttng_abi_tracer_version(struct lttng_kernel_tracer_version *v) +{ + v->major = LTTNG_MODULES_MAJOR_VERSION; + v->minor = LTTNG_MODULES_MINOR_VERSION; + v->patchlevel = LTTNG_MODULES_PATCHLEVEL_VERSION; +} + +static +long lttng_abi_add_context(struct file *file, + struct lttng_kernel_context *context_param, + struct lttng_ctx **ctx, struct lttng_session *session) +{ + + if (session->been_active) + return -EPERM; + + switch (context_param->ctx) { + case LTTNG_KERNEL_CONTEXT_PID: + return lttng_add_pid_to_ctx(ctx); + case LTTNG_KERNEL_CONTEXT_PRIO: + return lttng_add_prio_to_ctx(ctx); + case LTTNG_KERNEL_CONTEXT_NICE: + return lttng_add_nice_to_ctx(ctx); + case LTTNG_KERNEL_CONTEXT_VPID: + return lttng_add_vpid_to_ctx(ctx); + case LTTNG_KERNEL_CONTEXT_TID: + return lttng_add_tid_to_ctx(ctx); + case LTTNG_KERNEL_CONTEXT_VTID: + return lttng_add_vtid_to_ctx(ctx); + case LTTNG_KERNEL_CONTEXT_PPID: + return lttng_add_ppid_to_ctx(ctx); + case LTTNG_KERNEL_CONTEXT_VPPID: + return lttng_add_vppid_to_ctx(ctx); + case LTTNG_KERNEL_CONTEXT_PERF_COUNTER: + context_param->u.perf_counter.name[LTTNG_KERNEL_SYM_NAME_LEN - 1] = '\0'; + return lttng_add_perf_counter_to_ctx(context_param->u.perf_counter.type, + context_param->u.perf_counter.config, + context_param->u.perf_counter.name, + ctx); + case LTTNG_KERNEL_CONTEXT_PROCNAME: + return lttng_add_procname_to_ctx(ctx); + case LTTNG_KERNEL_CONTEXT_HOSTNAME: + return lttng_add_hostname_to_ctx(ctx); + default: + return -EINVAL; + } +} + +/** + * lttng_ioctl - lttng syscall through ioctl + * + * @file: the file + * @cmd: the command + * @arg: command arg + * + * This ioctl implements lttng commands: + * LTTNG_KERNEL_SESSION + * Returns a LTTng trace session file descriptor + * LTTNG_KERNEL_TRACER_VERSION + * Returns the LTTng kernel tracer version + * LTTNG_KERNEL_TRACEPOINT_LIST + * Returns a file descriptor listing available tracepoints + * LTTNG_KERNEL_WAIT_QUIESCENT + * Returns after all previously running probes have completed + * + * The returned session will be deleted when its file descriptor is closed. + */ +static +long lttng_ioctl(struct file *file, unsigned int cmd, unsigned long arg) +{ + switch (cmd) { + case LTTNG_KERNEL_OLD_SESSION: + case LTTNG_KERNEL_SESSION: + return lttng_abi_create_session(); + case LTTNG_KERNEL_OLD_TRACER_VERSION: + { + struct lttng_kernel_tracer_version v; + struct lttng_kernel_old_tracer_version oldv; + struct lttng_kernel_old_tracer_version *uversion = + (struct lttng_kernel_old_tracer_version __user *) arg; + + lttng_abi_tracer_version(&v); + oldv.major = v.major; + oldv.minor = v.minor; + oldv.patchlevel = v.patchlevel; + + if (copy_to_user(uversion, &oldv, sizeof(oldv))) + return -EFAULT; + return 0; + } + case LTTNG_KERNEL_TRACER_VERSION: + { + struct lttng_kernel_tracer_version version; + struct lttng_kernel_tracer_version *uversion = + (struct lttng_kernel_tracer_version __user *) arg; + + lttng_abi_tracer_version(&version); + + if (copy_to_user(uversion, &version, sizeof(version))) + return -EFAULT; + return 0; + } + case LTTNG_KERNEL_OLD_TRACEPOINT_LIST: + case LTTNG_KERNEL_TRACEPOINT_LIST: + return lttng_abi_tracepoint_list(); + case LTTNG_KERNEL_OLD_WAIT_QUIESCENT: + case LTTNG_KERNEL_WAIT_QUIESCENT: + synchronize_trace(); + return 0; + case LTTNG_KERNEL_OLD_CALIBRATE: + { + struct lttng_kernel_old_calibrate __user *ucalibrate = + (struct lttng_kernel_old_calibrate __user *) arg; + struct lttng_kernel_old_calibrate old_calibrate; + struct lttng_kernel_calibrate calibrate; + int ret; + + if (copy_from_user(&old_calibrate, ucalibrate, sizeof(old_calibrate))) + return -EFAULT; + calibrate.type = old_calibrate.type; + ret = lttng_calibrate(&calibrate); + if (copy_to_user(ucalibrate, &old_calibrate, sizeof(old_calibrate))) + return -EFAULT; + return ret; + } + case LTTNG_KERNEL_CALIBRATE: + { + struct lttng_kernel_calibrate __user *ucalibrate = + (struct lttng_kernel_calibrate __user *) arg; + struct lttng_kernel_calibrate calibrate; + int ret; + + if (copy_from_user(&calibrate, ucalibrate, sizeof(calibrate))) + return -EFAULT; + ret = lttng_calibrate(&calibrate); + if (copy_to_user(ucalibrate, &calibrate, sizeof(calibrate))) + return -EFAULT; + return ret; + } + default: + return -ENOIOCTLCMD; + } +} + +static const struct file_operations lttng_fops = { + .owner = THIS_MODULE, + .unlocked_ioctl = lttng_ioctl, +#ifdef CONFIG_COMPAT + .compat_ioctl = lttng_ioctl, +#endif +}; + +static +int lttng_abi_create_channel(struct file *session_file, + struct lttng_kernel_channel *chan_param, + enum channel_type channel_type) +{ + struct lttng_session *session = session_file->private_data; + const struct file_operations *fops = NULL; + const char *transport_name; + struct lttng_channel *chan; + struct file *chan_file; + int chan_fd; + int ret = 0; + + chan_fd = get_unused_fd(); + if (chan_fd < 0) { + ret = chan_fd; + goto fd_error; + } + switch (channel_type) { + case PER_CPU_CHANNEL: + fops = <tng_channel_fops; + break; + case METADATA_CHANNEL: + fops = <tng_metadata_fops; + break; + } + + chan_file = anon_inode_getfile("[lttng_channel]", + fops, + NULL, O_RDWR); + if (IS_ERR(chan_file)) { + ret = PTR_ERR(chan_file); + goto file_error; + } + switch (channel_type) { + case PER_CPU_CHANNEL: + if (chan_param->output == LTTNG_KERNEL_SPLICE) { + transport_name = chan_param->overwrite ? + "relay-overwrite" : "relay-discard"; + } else if (chan_param->output == LTTNG_KERNEL_MMAP) { + transport_name = chan_param->overwrite ? + "relay-overwrite-mmap" : "relay-discard-mmap"; + } else { + return -EINVAL; + } + break; + case METADATA_CHANNEL: + if (chan_param->output == LTTNG_KERNEL_SPLICE) + transport_name = "relay-metadata"; + else if (chan_param->output == LTTNG_KERNEL_MMAP) + transport_name = "relay-metadata-mmap"; + else + return -EINVAL; + break; + default: + transport_name = ""; + break; + } + /* + * We tolerate no failure path after channel creation. It will stay + * invariant for the rest of the session. + */ + chan = lttng_channel_create(session, transport_name, NULL, + chan_param->subbuf_size, + chan_param->num_subbuf, + chan_param->switch_timer_interval, + chan_param->read_timer_interval, + channel_type); + if (!chan) { + ret = -EINVAL; + goto chan_error; + } + chan->file = chan_file; + chan_file->private_data = chan; + fd_install(chan_fd, chan_file); + atomic_long_inc(&session_file->f_count); + + return chan_fd; + +chan_error: + fput(chan_file); +file_error: + put_unused_fd(chan_fd); +fd_error: + return ret; +} + +/** + * lttng_session_ioctl - lttng session fd ioctl + * + * @file: the file + * @cmd: the command + * @arg: command arg + * + * This ioctl implements lttng commands: + * LTTNG_KERNEL_CHANNEL + * Returns a LTTng channel file descriptor + * LTTNG_KERNEL_ENABLE + * Enables tracing for a session (weak enable) + * LTTNG_KERNEL_DISABLE + * Disables tracing for a session (strong disable) + * LTTNG_KERNEL_METADATA + * Returns a LTTng metadata file descriptor + * + * The returned channel will be deleted when its file descriptor is closed. + */ +static +long lttng_session_ioctl(struct file *file, unsigned int cmd, unsigned long arg) +{ + struct lttng_session *session = file->private_data; + + switch (cmd) { + case LTTNG_KERNEL_OLD_CHANNEL: + { + struct lttng_kernel_channel chan_param; + struct lttng_kernel_old_channel old_chan_param; + + if (copy_from_user(&old_chan_param, + (struct lttng_kernel_old_channel __user *) arg, + sizeof(struct lttng_kernel_old_channel))) + return -EFAULT; + chan_param.overwrite = old_chan_param.overwrite; + chan_param.subbuf_size = old_chan_param.subbuf_size; + chan_param.num_subbuf = old_chan_param.num_subbuf; + chan_param.switch_timer_interval = old_chan_param.switch_timer_interval; + chan_param.read_timer_interval = old_chan_param.read_timer_interval; + chan_param.output = old_chan_param.output; + + return lttng_abi_create_channel(file, &chan_param, + PER_CPU_CHANNEL); + } + case LTTNG_KERNEL_CHANNEL: + { + struct lttng_kernel_channel chan_param; + + if (copy_from_user(&chan_param, + (struct lttng_kernel_channel __user *) arg, + sizeof(struct lttng_kernel_channel))) + return -EFAULT; + return lttng_abi_create_channel(file, &chan_param, + PER_CPU_CHANNEL); + } + case LTTNG_KERNEL_OLD_SESSION_START: + case LTTNG_KERNEL_OLD_ENABLE: + case LTTNG_KERNEL_SESSION_START: + case LTTNG_KERNEL_ENABLE: + return lttng_session_enable(session); + case LTTNG_KERNEL_OLD_SESSION_STOP: + case LTTNG_KERNEL_OLD_DISABLE: + case LTTNG_KERNEL_SESSION_STOP: + case LTTNG_KERNEL_DISABLE: + return lttng_session_disable(session); + case LTTNG_KERNEL_OLD_METADATA: + { + struct lttng_kernel_channel chan_param; + struct lttng_kernel_old_channel old_chan_param; + + if (copy_from_user(&old_chan_param, + (struct lttng_kernel_old_channel __user *) arg, + sizeof(struct lttng_kernel_old_channel))) + return -EFAULT; + chan_param.overwrite = old_chan_param.overwrite; + chan_param.subbuf_size = old_chan_param.subbuf_size; + chan_param.num_subbuf = old_chan_param.num_subbuf; + chan_param.switch_timer_interval = old_chan_param.switch_timer_interval; + chan_param.read_timer_interval = old_chan_param.read_timer_interval; + chan_param.output = old_chan_param.output; + + return lttng_abi_create_channel(file, &chan_param, + METADATA_CHANNEL); + } + case LTTNG_KERNEL_METADATA: + { + struct lttng_kernel_channel chan_param; + + if (copy_from_user(&chan_param, + (struct lttng_kernel_channel __user *) arg, + sizeof(struct lttng_kernel_channel))) + return -EFAULT; + return lttng_abi_create_channel(file, &chan_param, + METADATA_CHANNEL); + } + default: + return -ENOIOCTLCMD; + } +} + +/* + * Called when the last file reference is dropped. + * + * Big fat note: channels and events are invariant for the whole session after + * their creation. So this session destruction also destroys all channel and + * event structures specific to this session (they are not destroyed when their + * individual file is released). + */ +static +int lttng_session_release(struct inode *inode, struct file *file) +{ + struct lttng_session *session = file->private_data; + + if (session) + lttng_session_destroy(session); + return 0; +} + +static const struct file_operations lttng_session_fops = { + .owner = THIS_MODULE, + .release = lttng_session_release, + .unlocked_ioctl = lttng_session_ioctl, +#ifdef CONFIG_COMPAT + .compat_ioctl = lttng_session_ioctl, +#endif +}; + +/** + * lttng_metadata_ring_buffer_poll - LTTng ring buffer poll file operation + * @filp: the file + * @wait: poll table + * + * Handles the poll operations for the metadata channels. + */ +static +unsigned int lttng_metadata_ring_buffer_poll(struct file *filp, + poll_table *wait) +{ + struct lttng_metadata_stream *stream = filp->private_data; + struct lib_ring_buffer *buf = stream->priv; + int finalized; + unsigned int mask = 0; + + if (filp->f_mode & FMODE_READ) { + poll_wait_set_exclusive(wait); + poll_wait(filp, &stream->read_wait, wait); + + finalized = stream->finalized; + + /* + * lib_ring_buffer_is_finalized() contains a smp_rmb() + * ordering finalized load before offsets loads. + */ + WARN_ON(atomic_long_read(&buf->active_readers) != 1); + + if (finalized) + mask |= POLLHUP; + + if (stream->metadata_cache->metadata_written > + stream->metadata_out) + mask |= POLLIN; + } + + return mask; +} + +static +void lttng_metadata_ring_buffer_ioctl_put_next_subbuf(struct file *filp, + unsigned int cmd, unsigned long arg) +{ + struct lttng_metadata_stream *stream = filp->private_data; + + stream->metadata_out = stream->metadata_in; +} + +static +long lttng_metadata_ring_buffer_ioctl(struct file *filp, + unsigned int cmd, unsigned long arg) +{ + int ret; + struct lttng_metadata_stream *stream = filp->private_data; + struct lib_ring_buffer *buf = stream->priv; + + switch (cmd) { + case RING_BUFFER_GET_NEXT_SUBBUF: + { + struct lttng_metadata_stream *stream = filp->private_data; + struct lib_ring_buffer *buf = stream->priv; + struct channel *chan = buf->backend.chan; + + ret = lttng_metadata_output_channel(stream, chan); + if (ret > 0) { + lib_ring_buffer_switch_slow(buf, SWITCH_ACTIVE); + ret = 0; + } else if (ret < 0) + goto err; + break; + } + case RING_BUFFER_GET_SUBBUF: + { + /* + * Random access is not allowed for metadata channel. + */ + return -ENOSYS; + } + case RING_BUFFER_FLUSH: + { + struct lttng_metadata_stream *stream = filp->private_data; + struct lib_ring_buffer *buf = stream->priv; + struct channel *chan = buf->backend.chan; + + /* + * Before doing the actual ring buffer flush, write up to one + * packet of metadata in the ring buffer. + */ + ret = lttng_metadata_output_channel(stream, chan); + if (ret < 0) + goto err; + break; + } + default: + break; + } + /* PUT_SUBBUF is the one from lib ring buffer, unmodified. */ + + /* Performing lib ring buffer ioctl after our own. */ + ret = lib_ring_buffer_ioctl(filp, cmd, arg, buf); + if (ret < 0) + goto err; + + switch (cmd) { + case RING_BUFFER_PUT_NEXT_SUBBUF: + { + lttng_metadata_ring_buffer_ioctl_put_next_subbuf(filp, + cmd, arg); + break; + } + default: + break; + } +err: + return ret; +} + +#ifdef CONFIG_COMPAT +static +long lttng_metadata_ring_buffer_compat_ioctl(struct file *filp, + unsigned int cmd, unsigned long arg) +{ + int ret; + struct lttng_metadata_stream *stream = filp->private_data; + struct lib_ring_buffer *buf = stream->priv; + + switch (cmd) { + case RING_BUFFER_GET_NEXT_SUBBUF: + { + struct lttng_metadata_stream *stream = filp->private_data; + struct lib_ring_buffer *buf = stream->priv; + struct channel *chan = buf->backend.chan; + + ret = lttng_metadata_output_channel(stream, chan); + if (ret > 0) { + lib_ring_buffer_switch_slow(buf, SWITCH_ACTIVE); + ret = 0; + } else if (ret < 0) + goto err; + break; + } + case RING_BUFFER_GET_SUBBUF: + { + /* + * Random access is not allowed for metadata channel. + */ + return -ENOSYS; + } + default: + break; + } + /* PUT_SUBBUF is the one from lib ring buffer, unmodified. */ + + /* Performing lib ring buffer ioctl after our own. */ + ret = lib_ring_buffer_compat_ioctl(filp, cmd, arg, buf); + if (ret < 0) + goto err; + + switch (cmd) { + case RING_BUFFER_PUT_NEXT_SUBBUF: + { + lttng_metadata_ring_buffer_ioctl_put_next_subbuf(filp, + cmd, arg); + break; + } + default: + break; + } +err: + return ret; +} +#endif + +/* + * This is not used by anonymous file descriptors. This code is left + * there if we ever want to implement an inode with open() operation. + */ +static +int lttng_metadata_ring_buffer_open(struct inode *inode, struct file *file) +{ + struct lttng_metadata_stream *stream = inode->i_private; + struct lib_ring_buffer *buf = stream->priv; + + file->private_data = buf; + /* + * Since life-time of metadata cache differs from that of + * session, we need to keep our own reference on the transport. + */ + if (!try_module_get(stream->transport->owner)) { + printk(KERN_WARNING "LTT : Can't lock transport module.\n"); + return -EBUSY; + } + return lib_ring_buffer_open(inode, file, buf); +} + +static +int lttng_metadata_ring_buffer_release(struct inode *inode, struct file *file) +{ + struct lttng_metadata_stream *stream = file->private_data; + struct lib_ring_buffer *buf = stream->priv; + + kref_put(&stream->metadata_cache->refcount, metadata_cache_destroy); + module_put(stream->transport->owner); + return lib_ring_buffer_release(inode, file, buf); +} + +static +ssize_t lttng_metadata_ring_buffer_splice_read(struct file *in, loff_t *ppos, + struct pipe_inode_info *pipe, size_t len, + unsigned int flags) +{ + struct lttng_metadata_stream *stream = in->private_data; + struct lib_ring_buffer *buf = stream->priv; + + return lib_ring_buffer_splice_read(in, ppos, pipe, len, + flags, buf); +} + +static +int lttng_metadata_ring_buffer_mmap(struct file *filp, + struct vm_area_struct *vma) +{ + struct lttng_metadata_stream *stream = filp->private_data; + struct lib_ring_buffer *buf = stream->priv; + + return lib_ring_buffer_mmap(filp, vma, buf); +} + +static +const struct file_operations lttng_metadata_ring_buffer_file_operations = { + .owner = THIS_MODULE, + .open = lttng_metadata_ring_buffer_open, + .release = lttng_metadata_ring_buffer_release, + .poll = lttng_metadata_ring_buffer_poll, + .splice_read = lttng_metadata_ring_buffer_splice_read, + .mmap = lttng_metadata_ring_buffer_mmap, + .unlocked_ioctl = lttng_metadata_ring_buffer_ioctl, + .llseek = vfs_lib_ring_buffer_no_llseek, +#ifdef CONFIG_COMPAT + .compat_ioctl = lttng_metadata_ring_buffer_compat_ioctl, +#endif +}; + +static +int lttng_abi_create_stream_fd(struct file *channel_file, void *stream_priv, + const struct file_operations *fops) +{ + int stream_fd, ret; + struct file *stream_file; + + stream_fd = get_unused_fd(); + if (stream_fd < 0) { + ret = stream_fd; + goto fd_error; + } + stream_file = anon_inode_getfile("[lttng_stream]", fops, + stream_priv, O_RDWR); + if (IS_ERR(stream_file)) { + ret = PTR_ERR(stream_file); + goto file_error; + } + /* + * OPEN_FMODE, called within anon_inode_getfile/alloc_file, don't honor + * FMODE_LSEEK, FMODE_PREAD nor FMODE_PWRITE. We need to read from this + * file descriptor, so we set FMODE_PREAD here. + */ + stream_file->f_mode |= FMODE_PREAD; + fd_install(stream_fd, stream_file); + /* + * The stream holds a reference to the channel within the generic ring + * buffer library, so no need to hold a refcount on the channel and + * session files here. + */ + return stream_fd; + +file_error: + put_unused_fd(stream_fd); +fd_error: + return ret; +} + +static +int lttng_abi_open_stream(struct file *channel_file) +{ + struct lttng_channel *channel = channel_file->private_data; + struct lib_ring_buffer *buf; + int ret; + void *stream_priv; + + buf = channel->ops->buffer_read_open(channel->chan); + if (!buf) + return -ENOENT; + + stream_priv = buf; + ret = lttng_abi_create_stream_fd(channel_file, stream_priv, + <tng_stream_ring_buffer_file_operations); + if (ret < 0) + goto fd_error; + + return ret; + +fd_error: + channel->ops->buffer_read_close(buf); + return ret; +} + +static +int lttng_abi_open_metadata_stream(struct file *channel_file) +{ + struct lttng_channel *channel = channel_file->private_data; + struct lttng_session *session = channel->session; + struct lib_ring_buffer *buf; + int ret; + struct lttng_metadata_stream *metadata_stream; + void *stream_priv; + + buf = channel->ops->buffer_read_open(channel->chan); + if (!buf) + return -ENOENT; + + metadata_stream = kzalloc(sizeof(struct lttng_metadata_stream), + GFP_KERNEL); + if (!metadata_stream) { + ret = -ENOMEM; + goto nomem; + } + metadata_stream->metadata_cache = session->metadata_cache; + init_waitqueue_head(&metadata_stream->read_wait); + metadata_stream->priv = buf; + stream_priv = metadata_stream; + metadata_stream->transport = channel->transport; + + /* + * Since life-time of metadata cache differs from that of + * session, we need to keep our own reference on the transport. + */ + if (!try_module_get(metadata_stream->transport->owner)) { + printk(KERN_WARNING "LTT : Can't lock transport module.\n"); + ret = -EINVAL; + goto notransport; + } + + ret = lttng_abi_create_stream_fd(channel_file, stream_priv, + <tng_metadata_ring_buffer_file_operations); + if (ret < 0) + goto fd_error; + + kref_get(&session->metadata_cache->refcount); + list_add(&metadata_stream->list, + &session->metadata_cache->metadata_stream); + return ret; + +fd_error: + module_put(metadata_stream->transport->owner); +notransport: + kfree(metadata_stream); +nomem: + channel->ops->buffer_read_close(buf); + return ret; +} + +static +int lttng_abi_create_event(struct file *channel_file, + struct lttng_kernel_event *event_param) +{ + struct lttng_channel *channel = channel_file->private_data; + struct lttng_event *event; + int event_fd, ret; + struct file *event_file; + + event_param->name[LTTNG_KERNEL_SYM_NAME_LEN - 1] = '\0'; + switch (event_param->instrumentation) { + case LTTNG_KERNEL_KRETPROBE: + event_param->u.kretprobe.symbol_name[LTTNG_KERNEL_SYM_NAME_LEN - 1] = '\0'; + break; + case LTTNG_KERNEL_KPROBE: + event_param->u.kprobe.symbol_name[LTTNG_KERNEL_SYM_NAME_LEN - 1] = '\0'; + break; + case LTTNG_KERNEL_FUNCTION: + event_param->u.ftrace.symbol_name[LTTNG_KERNEL_SYM_NAME_LEN - 1] = '\0'; + break; + default: + break; + } + switch (event_param->instrumentation) { + default: + event_fd = get_unused_fd(); + if (event_fd < 0) { + ret = event_fd; + goto fd_error; + } + event_file = anon_inode_getfile("[lttng_event]", + <tng_event_fops, + NULL, O_RDWR); + if (IS_ERR(event_file)) { + ret = PTR_ERR(event_file); + goto file_error; + } + /* + * We tolerate no failure path after event creation. It + * will stay invariant for the rest of the session. + */ + event = lttng_event_create(channel, event_param, NULL, NULL); + if (!event) { + ret = -EINVAL; + goto event_error; + } + event_file->private_data = event; + fd_install(event_fd, event_file); + /* The event holds a reference on the channel */ + atomic_long_inc(&channel_file->f_count); + break; + case LTTNG_KERNEL_SYSCALL: + /* + * Only all-syscall tracing supported for now. + */ + if (event_param->name[0] != '\0') + return -EINVAL; + ret = lttng_syscalls_register(channel, NULL); + if (ret) + goto fd_error; + event_fd = 0; + break; + } + return event_fd; + +event_error: + fput(event_file); +file_error: + put_unused_fd(event_fd); +fd_error: + return ret; +} + +/** + * lttng_channel_ioctl - lttng syscall through ioctl + * + * @file: the file + * @cmd: the command + * @arg: command arg + * + * This ioctl implements lttng commands: + * LTTNG_KERNEL_STREAM + * Returns an event stream file descriptor or failure. + * (typically, one event stream records events from one CPU) + * LTTNG_KERNEL_EVENT + * Returns an event file descriptor or failure. + * LTTNG_KERNEL_CONTEXT + * Prepend a context field to each event in the channel + * LTTNG_KERNEL_ENABLE + * Enable recording for events in this channel (weak enable) + * LTTNG_KERNEL_DISABLE + * Disable recording for events in this channel (strong disable) + * + * Channel and event file descriptors also hold a reference on the session. + */ +static +long lttng_channel_ioctl(struct file *file, unsigned int cmd, unsigned long arg) +{ + struct lttng_channel *channel = file->private_data; + + switch (cmd) { + case LTTNG_KERNEL_OLD_STREAM: + case LTTNG_KERNEL_STREAM: + return lttng_abi_open_stream(file); + case LTTNG_KERNEL_OLD_EVENT: + { + struct lttng_kernel_event *uevent_param; + struct lttng_kernel_old_event *old_uevent_param; + int ret; + + uevent_param = kmalloc(sizeof(struct lttng_kernel_event), + GFP_KERNEL); + if (!uevent_param) { + ret = -ENOMEM; + goto old_event_end; + } + old_uevent_param = kmalloc( + sizeof(struct lttng_kernel_old_event), + GFP_KERNEL); + if (!old_uevent_param) { + ret = -ENOMEM; + goto old_event_error_free_param; + } + if (copy_from_user(old_uevent_param, + (struct lttng_kernel_old_event __user *) arg, + sizeof(struct lttng_kernel_old_event))) { + ret = -EFAULT; + goto old_event_error_free_old_param; + } + + memcpy(uevent_param->name, old_uevent_param->name, + sizeof(uevent_param->name)); + uevent_param->instrumentation = + old_uevent_param->instrumentation; + + switch (old_uevent_param->instrumentation) { + case LTTNG_KERNEL_KPROBE: + uevent_param->u.kprobe.addr = + old_uevent_param->u.kprobe.addr; + uevent_param->u.kprobe.offset = + old_uevent_param->u.kprobe.offset; + memcpy(uevent_param->u.kprobe.symbol_name, + old_uevent_param->u.kprobe.symbol_name, + sizeof(uevent_param->u.kprobe.symbol_name)); + break; + case LTTNG_KERNEL_KRETPROBE: + uevent_param->u.kretprobe.addr = + old_uevent_param->u.kretprobe.addr; + uevent_param->u.kretprobe.offset = + old_uevent_param->u.kretprobe.offset; + memcpy(uevent_param->u.kretprobe.symbol_name, + old_uevent_param->u.kretprobe.symbol_name, + sizeof(uevent_param->u.kretprobe.symbol_name)); + break; + case LTTNG_KERNEL_FUNCTION: + memcpy(uevent_param->u.ftrace.symbol_name, + old_uevent_param->u.ftrace.symbol_name, + sizeof(uevent_param->u.ftrace.symbol_name)); + break; + default: + break; + } + ret = lttng_abi_create_event(file, uevent_param); + +old_event_error_free_old_param: + kfree(old_uevent_param); +old_event_error_free_param: + kfree(uevent_param); +old_event_end: + return ret; + } + case LTTNG_KERNEL_EVENT: + { + struct lttng_kernel_event uevent_param; + + if (copy_from_user(&uevent_param, + (struct lttng_kernel_event __user *) arg, + sizeof(uevent_param))) + return -EFAULT; + return lttng_abi_create_event(file, &uevent_param); + } + case LTTNG_KERNEL_OLD_CONTEXT: + { + struct lttng_kernel_context *ucontext_param; + struct lttng_kernel_old_context *old_ucontext_param; + int ret; + + ucontext_param = kmalloc(sizeof(struct lttng_kernel_context), + GFP_KERNEL); + if (!ucontext_param) { + ret = -ENOMEM; + goto old_ctx_end; + } + old_ucontext_param = kmalloc(sizeof(struct lttng_kernel_old_context), + GFP_KERNEL); + if (!old_ucontext_param) { + ret = -ENOMEM; + goto old_ctx_error_free_param; + } + + if (copy_from_user(old_ucontext_param, + (struct lttng_kernel_old_context __user *) arg, + sizeof(struct lttng_kernel_old_context))) { + ret = -EFAULT; + goto old_ctx_error_free_old_param; + } + ucontext_param->ctx = old_ucontext_param->ctx; + memcpy(ucontext_param->padding, old_ucontext_param->padding, + sizeof(ucontext_param->padding)); + /* only type that uses the union */ + if (old_ucontext_param->ctx == LTTNG_KERNEL_CONTEXT_PERF_COUNTER) { + ucontext_param->u.perf_counter.type = + old_ucontext_param->u.perf_counter.type; + ucontext_param->u.perf_counter.config = + old_ucontext_param->u.perf_counter.config; + memcpy(ucontext_param->u.perf_counter.name, + old_ucontext_param->u.perf_counter.name, + sizeof(ucontext_param->u.perf_counter.name)); + } + + ret = lttng_abi_add_context(file, + ucontext_param, + &channel->ctx, channel->session); + +old_ctx_error_free_old_param: + kfree(old_ucontext_param); +old_ctx_error_free_param: + kfree(ucontext_param); +old_ctx_end: + return ret; + } + case LTTNG_KERNEL_CONTEXT: + { + struct lttng_kernel_context ucontext_param; + + if (copy_from_user(&ucontext_param, + (struct lttng_kernel_context __user *) arg, + sizeof(ucontext_param))) + return -EFAULT; + return lttng_abi_add_context(file, + &ucontext_param, + &channel->ctx, channel->session); + } + case LTTNG_KERNEL_OLD_ENABLE: + case LTTNG_KERNEL_ENABLE: + return lttng_channel_enable(channel); + case LTTNG_KERNEL_OLD_DISABLE: + case LTTNG_KERNEL_DISABLE: + return lttng_channel_disable(channel); + default: + return -ENOIOCTLCMD; + } + +} + +/** + * lttng_metadata_ioctl - lttng syscall through ioctl + * + * @file: the file + * @cmd: the command + * @arg: command arg + * + * This ioctl implements lttng commands: + * LTTNG_KERNEL_STREAM + * Returns an event stream file descriptor or failure. + * + * Channel and event file descriptors also hold a reference on the session. + */ +static +long lttng_metadata_ioctl(struct file *file, unsigned int cmd, unsigned long arg) +{ + switch (cmd) { + case LTTNG_KERNEL_OLD_STREAM: + case LTTNG_KERNEL_STREAM: + return lttng_abi_open_metadata_stream(file); + default: + return -ENOIOCTLCMD; + } +} + +/** + * lttng_channel_poll - lttng stream addition/removal monitoring + * + * @file: the file + * @wait: poll table + */ +unsigned int lttng_channel_poll(struct file *file, poll_table *wait) +{ + struct lttng_channel *channel = file->private_data; + unsigned int mask = 0; + + if (file->f_mode & FMODE_READ) { + poll_wait_set_exclusive(wait); + poll_wait(file, channel->ops->get_hp_wait_queue(channel->chan), + wait); + + if (channel->ops->is_disabled(channel->chan)) + return POLLERR; + if (channel->ops->is_finalized(channel->chan)) + return POLLHUP; + if (channel->ops->buffer_has_read_closed_stream(channel->chan)) + return POLLIN | POLLRDNORM; + return 0; + } + return mask; + +} + +static +int lttng_channel_release(struct inode *inode, struct file *file) +{ + struct lttng_channel *channel = file->private_data; + + if (channel) + fput(channel->session->file); + return 0; +} + +static +int lttng_metadata_channel_release(struct inode *inode, struct file *file) +{ + struct lttng_channel *channel = file->private_data; + + if (channel) { + lttng_metadata_channel_destroy(channel); + fput(channel->session->file); + } + + return 0; +} + +static const struct file_operations lttng_channel_fops = { + .owner = THIS_MODULE, + .release = lttng_channel_release, + .poll = lttng_channel_poll, + .unlocked_ioctl = lttng_channel_ioctl, +#ifdef CONFIG_COMPAT + .compat_ioctl = lttng_channel_ioctl, +#endif +}; + +static const struct file_operations lttng_metadata_fops = { + .owner = THIS_MODULE, + .release = lttng_metadata_channel_release, + .unlocked_ioctl = lttng_metadata_ioctl, +#ifdef CONFIG_COMPAT + .compat_ioctl = lttng_metadata_ioctl, +#endif +}; + +/** + * lttng_event_ioctl - lttng syscall through ioctl + * + * @file: the file + * @cmd: the command + * @arg: command arg + * + * This ioctl implements lttng commands: + * LTTNG_KERNEL_CONTEXT + * Prepend a context field to each record of this event + * LTTNG_KERNEL_ENABLE + * Enable recording for this event (weak enable) + * LTTNG_KERNEL_DISABLE + * Disable recording for this event (strong disable) + */ +static +long lttng_event_ioctl(struct file *file, unsigned int cmd, unsigned long arg) +{ + struct lttng_event *event = file->private_data; + + switch (cmd) { + case LTTNG_KERNEL_OLD_CONTEXT: + { + struct lttng_kernel_context *ucontext_param; + struct lttng_kernel_old_context *old_ucontext_param; + int ret; + + ucontext_param = kmalloc(sizeof(struct lttng_kernel_context), + GFP_KERNEL); + if (!ucontext_param) { + ret = -ENOMEM; + goto old_ctx_end; + } + old_ucontext_param = kmalloc(sizeof(struct lttng_kernel_old_context), + GFP_KERNEL); + if (!old_ucontext_param) { + ret = -ENOMEM; + goto old_ctx_error_free_param; + } + + if (copy_from_user(old_ucontext_param, + (struct lttng_kernel_old_context __user *) arg, + sizeof(struct lttng_kernel_old_context))) { + ret = -EFAULT; + goto old_ctx_error_free_old_param; + } + ucontext_param->ctx = old_ucontext_param->ctx; + memcpy(ucontext_param->padding, old_ucontext_param->padding, + sizeof(ucontext_param->padding)); + /* only type that uses the union */ + if (old_ucontext_param->ctx == LTTNG_KERNEL_CONTEXT_PERF_COUNTER) { + ucontext_param->u.perf_counter.type = + old_ucontext_param->u.perf_counter.type; + ucontext_param->u.perf_counter.config = + old_ucontext_param->u.perf_counter.config; + memcpy(ucontext_param->u.perf_counter.name, + old_ucontext_param->u.perf_counter.name, + sizeof(ucontext_param->u.perf_counter.name)); + } + + ret = lttng_abi_add_context(file, + ucontext_param, + &event->ctx, event->chan->session); + +old_ctx_error_free_old_param: + kfree(old_ucontext_param); +old_ctx_error_free_param: + kfree(ucontext_param); +old_ctx_end: + return ret; + } + case LTTNG_KERNEL_CONTEXT: + { + struct lttng_kernel_context ucontext_param; + + if (copy_from_user(&ucontext_param, + (struct lttng_kernel_context __user *) arg, + sizeof(ucontext_param))) + return -EFAULT; + return lttng_abi_add_context(file, + &ucontext_param, + &event->ctx, event->chan->session); + } + case LTTNG_KERNEL_OLD_ENABLE: + case LTTNG_KERNEL_ENABLE: + return lttng_event_enable(event); + case LTTNG_KERNEL_OLD_DISABLE: + case LTTNG_KERNEL_DISABLE: + return lttng_event_disable(event); + default: + return -ENOIOCTLCMD; + } +} + +static +int lttng_event_release(struct inode *inode, struct file *file) +{ + struct lttng_event *event = file->private_data; + + if (event) + fput(event->chan->file); + return 0; +} + +/* TODO: filter control ioctl */ +static const struct file_operations lttng_event_fops = { + .owner = THIS_MODULE, + .release = lttng_event_release, + .unlocked_ioctl = lttng_event_ioctl, +#ifdef CONFIG_COMPAT + .compat_ioctl = lttng_event_ioctl, +#endif +}; + +static int put_u64(uint64_t val, unsigned long arg) +{ + return put_user(val, (uint64_t __user *) arg); +} + +static long lttng_stream_ring_buffer_ioctl(struct file *filp, + unsigned int cmd, unsigned long arg) +{ + struct lib_ring_buffer *buf = filp->private_data; + struct channel *chan = buf->backend.chan; + const struct lib_ring_buffer_config *config = &chan->backend.config; + struct lttng_channel *lttng_chan = channel_get_private(chan); + int ret; + + if (atomic_read(&chan->record_disabled)) + return -EIO; + + switch (cmd) { + case LTTNG_RING_BUFFER_GET_TIMESTAMP_BEGIN: + { + uint64_t ts; + + if (!lttng_chan->ops) + goto error; + ret = lttng_chan->ops->timestamp_begin(config, buf, &ts); + if (ret < 0) + goto error; + return put_u64(ts, arg); + } + case LTTNG_RING_BUFFER_GET_TIMESTAMP_END: + { + uint64_t ts; + + if (!lttng_chan->ops) + goto error; + ret = lttng_chan->ops->timestamp_end(config, buf, &ts); + if (ret < 0) + goto error; + return put_u64(ts, arg); + } + case LTTNG_RING_BUFFER_GET_EVENTS_DISCARDED: + { + uint64_t ed; + + if (!lttng_chan->ops) + goto error; + ret = lttng_chan->ops->events_discarded(config, buf, &ed); + if (ret < 0) + goto error; + return put_u64(ed, arg); + } + case LTTNG_RING_BUFFER_GET_CONTENT_SIZE: + { + uint64_t cs; + + if (!lttng_chan->ops) + goto error; + ret = lttng_chan->ops->content_size(config, buf, &cs); + if (ret < 0) + goto error; + return put_u64(cs, arg); + } + case LTTNG_RING_BUFFER_GET_PACKET_SIZE: + { + uint64_t ps; + + if (!lttng_chan->ops) + goto error; + ret = lttng_chan->ops->packet_size(config, buf, &ps); + if (ret < 0) + goto error; + return put_u64(ps, arg); + } + case LTTNG_RING_BUFFER_GET_STREAM_ID: + { + uint64_t si; + + if (!lttng_chan->ops) + goto error; + ret = lttng_chan->ops->stream_id(config, buf, &si); + if (ret < 0) + goto error; + return put_u64(si, arg); + } + case LTTNG_RING_BUFFER_GET_CURRENT_TIMESTAMP: + { + uint64_t ts; + + if (!lttng_chan->ops) + goto error; + ret = lttng_chan->ops->current_timestamp(config, buf, &ts); + if (ret < 0) + goto error; + return put_u64(ts, arg); + } + default: + return lib_ring_buffer_file_operations.unlocked_ioctl(filp, + cmd, arg); + } + +error: + return -ENOSYS; +} + +#ifdef CONFIG_COMPAT +static long lttng_stream_ring_buffer_compat_ioctl(struct file *filp, + unsigned int cmd, unsigned long arg) +{ + struct lib_ring_buffer *buf = filp->private_data; + struct channel *chan = buf->backend.chan; + const struct lib_ring_buffer_config *config = &chan->backend.config; + struct lttng_channel *lttng_chan = channel_get_private(chan); + int ret; + + if (atomic_read(&chan->record_disabled)) + return -EIO; + + switch (cmd) { + case LTTNG_RING_BUFFER_COMPAT_GET_TIMESTAMP_BEGIN: + { + uint64_t ts; + + if (!lttng_chan->ops) + goto error; + ret = lttng_chan->ops->timestamp_begin(config, buf, &ts); + if (ret < 0) + goto error; + return put_u64(ts, arg); + } + case LTTNG_RING_BUFFER_COMPAT_GET_TIMESTAMP_END: + { + uint64_t ts; + + if (!lttng_chan->ops) + goto error; + ret = lttng_chan->ops->timestamp_end(config, buf, &ts); + if (ret < 0) + goto error; + return put_u64(ts, arg); + } + case LTTNG_RING_BUFFER_COMPAT_GET_EVENTS_DISCARDED: + { + uint64_t ed; + + if (!lttng_chan->ops) + goto error; + ret = lttng_chan->ops->events_discarded(config, buf, &ed); + if (ret < 0) + goto error; + return put_u64(ed, arg); + } + case LTTNG_RING_BUFFER_COMPAT_GET_CONTENT_SIZE: + { + uint64_t cs; + + if (!lttng_chan->ops) + goto error; + ret = lttng_chan->ops->content_size(config, buf, &cs); + if (ret < 0) + goto error; + return put_u64(cs, arg); + } + case LTTNG_RING_BUFFER_COMPAT_GET_PACKET_SIZE: + { + uint64_t ps; + + if (!lttng_chan->ops) + goto error; + ret = lttng_chan->ops->packet_size(config, buf, &ps); + if (ret < 0) + goto error; + return put_u64(ps, arg); + } + case LTTNG_RING_BUFFER_COMPAT_GET_STREAM_ID: + { + uint64_t si; + + if (!lttng_chan->ops) + goto error; + ret = lttng_chan->ops->stream_id(config, buf, &si); + if (ret < 0) + goto error; + return put_u64(si, arg); + } + case LTTNG_RING_BUFFER_GET_CURRENT_TIMESTAMP: + { + uint64_t ts; + + if (!lttng_chan->ops) + goto error; + ret = lttng_chan->ops->current_timestamp(config, buf, &ts); + if (ret < 0) + goto error; + return put_u64(ts, arg); + } + default: + return lib_ring_buffer_file_operations.compat_ioctl(filp, + cmd, arg); + } + +error: + return -ENOSYS; +} +#endif /* CONFIG_COMPAT */ + +static void lttng_stream_override_ring_buffer_fops(void) +{ + lttng_stream_ring_buffer_file_operations.owner = THIS_MODULE; + lttng_stream_ring_buffer_file_operations.open = + lib_ring_buffer_file_operations.open; + lttng_stream_ring_buffer_file_operations.release = + lib_ring_buffer_file_operations.release; + lttng_stream_ring_buffer_file_operations.poll = + lib_ring_buffer_file_operations.poll; + lttng_stream_ring_buffer_file_operations.splice_read = + lib_ring_buffer_file_operations.splice_read; + lttng_stream_ring_buffer_file_operations.mmap = + lib_ring_buffer_file_operations.mmap; + lttng_stream_ring_buffer_file_operations.unlocked_ioctl = + lttng_stream_ring_buffer_ioctl; + lttng_stream_ring_buffer_file_operations.llseek = + lib_ring_buffer_file_operations.llseek; +#ifdef CONFIG_COMPAT + lttng_stream_ring_buffer_file_operations.compat_ioctl = + lttng_stream_ring_buffer_compat_ioctl; +#endif +} + +int __init lttng_abi_init(void) +{ + int ret = 0; + + wrapper_vmalloc_sync_all(); + lttng_proc_dentry = proc_create_data("lttng", S_IRUSR | S_IWUSR, NULL, + <tng_fops, NULL); + + if (!lttng_proc_dentry) { + printk(KERN_ERR "Error creating LTTng control file\n"); + ret = -ENOMEM; + goto error; + } + lttng_stream_override_ring_buffer_fops(); + +error: + return ret; +} + +void __exit lttng_abi_exit(void) +{ + if (lttng_proc_dentry) + remove_proc_entry("lttng", NULL); +} --- linux-3.11.0.orig/ubuntu/lttng/lttng-ring-buffer-client.h +++ linux-3.11.0/ubuntu/lttng/lttng-ring-buffer-client.h @@ -0,0 +1,694 @@ +/* + * lttng-ring-buffer-client.h + * + * LTTng lib ring buffer client template. + * + * Copyright (C) 2010-2012 Mathieu Desnoyers + * + * 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; only + * version 2.1 of the License. + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include +#include +#include "lib/bitfield.h" +#include "wrapper/vmalloc.h" /* for wrapper_vmalloc_sync_all() */ +#include "wrapper/trace-clock.h" +#include "lttng-events.h" +#include "lttng-tracer.h" +#include "wrapper/ringbuffer/frontend_types.h" + +#define LTTNG_COMPACT_EVENT_BITS 5 +#define LTTNG_COMPACT_TSC_BITS 27 + +/* + * Keep the natural field alignment for _each field_ within this structure if + * you ever add/remove a field from this header. Packed attribute is not used + * because gcc generates poor code on at least powerpc and mips. Don't ever + * let gcc add padding between the structure elements. + * + * The guarantee we have with timestamps is that all the events in a + * packet are included (inclusive) within the begin/end timestamps of + * the packet. Another guarantee we have is that the "timestamp begin", + * as well as the event timestamps, are monotonically increasing (never + * decrease) when moving forward in a stream (physically). But this + * guarantee does not apply to "timestamp end", because it is sampled at + * commit time, which is not ordered with respect to space reservation. + */ + +struct packet_header { + /* Trace packet header */ + uint32_t magic; /* + * Trace magic number. + * contains endianness information. + */ + uint8_t uuid[16]; + uint32_t stream_id; + + struct { + /* Stream packet context */ + uint64_t timestamp_begin; /* Cycle count at subbuffer start */ + uint64_t timestamp_end; /* Cycle count at subbuffer end */ + uint64_t content_size; /* Size of data in subbuffer */ + uint64_t packet_size; /* Subbuffer size (include padding) */ + unsigned long events_discarded; /* + * Events lost in this subbuffer since + * the beginning of the trace. + * (may overflow) + */ + uint32_t cpu_id; /* CPU id associated with stream */ + uint8_t header_end; /* End of header */ + } ctx; +}; + + +static inline notrace u64 lib_ring_buffer_clock_read(struct channel *chan) +{ + return trace_clock_read64(); +} + +static inline +size_t ctx_get_size(size_t offset, struct lttng_ctx *ctx) +{ + int i; + size_t orig_offset = offset; + + if (likely(!ctx)) + return 0; + for (i = 0; i < ctx->nr_fields; i++) + offset += ctx->fields[i].get_size(offset); + return offset - orig_offset; +} + +static inline +void ctx_record(struct lib_ring_buffer_ctx *bufctx, + struct lttng_channel *chan, + struct lttng_ctx *ctx) +{ + int i; + + if (likely(!ctx)) + return; + for (i = 0; i < ctx->nr_fields; i++) + ctx->fields[i].record(&ctx->fields[i], bufctx, chan); +} + +/* + * record_header_size - Calculate the header size and padding necessary. + * @config: ring buffer instance configuration + * @chan: channel + * @offset: offset in the write buffer + * @pre_header_padding: padding to add before the header (output) + * @ctx: reservation context + * + * Returns the event header size (including padding). + * + * The payload must itself determine its own alignment from the biggest type it + * contains. + */ +static __inline__ +unsigned char record_header_size(const struct lib_ring_buffer_config *config, + struct channel *chan, size_t offset, + size_t *pre_header_padding, + struct lib_ring_buffer_ctx *ctx) +{ + struct lttng_channel *lttng_chan = channel_get_private(chan); + struct lttng_event *event = ctx->priv; + size_t orig_offset = offset; + size_t padding; + + switch (lttng_chan->header_type) { + case 1: /* compact */ + padding = lib_ring_buffer_align(offset, lttng_alignof(uint32_t)); + offset += padding; + if (!(ctx->rflags & (RING_BUFFER_RFLAG_FULL_TSC | LTTNG_RFLAG_EXTENDED))) { + offset += sizeof(uint32_t); /* id and timestamp */ + } else { + /* Minimum space taken by LTTNG_COMPACT_EVENT_BITS id */ + offset += (LTTNG_COMPACT_EVENT_BITS + CHAR_BIT - 1) / CHAR_BIT; + /* Align extended struct on largest member */ + offset += lib_ring_buffer_align(offset, lttng_alignof(uint64_t)); + offset += sizeof(uint32_t); /* id */ + offset += lib_ring_buffer_align(offset, lttng_alignof(uint64_t)); + offset += sizeof(uint64_t); /* timestamp */ + } + break; + case 2: /* large */ + padding = lib_ring_buffer_align(offset, lttng_alignof(uint16_t)); + offset += padding; + offset += sizeof(uint16_t); + if (!(ctx->rflags & (RING_BUFFER_RFLAG_FULL_TSC | LTTNG_RFLAG_EXTENDED))) { + offset += lib_ring_buffer_align(offset, lttng_alignof(uint32_t)); + offset += sizeof(uint32_t); /* timestamp */ + } else { + /* Align extended struct on largest member */ + offset += lib_ring_buffer_align(offset, lttng_alignof(uint64_t)); + offset += sizeof(uint32_t); /* id */ + offset += lib_ring_buffer_align(offset, lttng_alignof(uint64_t)); + offset += sizeof(uint64_t); /* timestamp */ + } + break; + default: + padding = 0; + WARN_ON_ONCE(1); + } + offset += ctx_get_size(offset, event->ctx); + offset += ctx_get_size(offset, lttng_chan->ctx); + + *pre_header_padding = padding; + return offset - orig_offset; +} + +#include "wrapper/ringbuffer/api.h" + +static +void lttng_write_event_header_slow(const struct lib_ring_buffer_config *config, + struct lib_ring_buffer_ctx *ctx, + uint32_t event_id); + +/* + * lttng_write_event_header + * + * Writes the event header to the offset (already aligned on 32-bits). + * + * @config: ring buffer instance configuration + * @ctx: reservation context + * @event_id: event ID + */ +static __inline__ +void lttng_write_event_header(const struct lib_ring_buffer_config *config, + struct lib_ring_buffer_ctx *ctx, + uint32_t event_id) +{ + struct lttng_channel *lttng_chan = channel_get_private(ctx->chan); + struct lttng_event *event = ctx->priv; + + if (unlikely(ctx->rflags)) + goto slow_path; + + switch (lttng_chan->header_type) { + case 1: /* compact */ + { + uint32_t id_time = 0; + + bt_bitfield_write(&id_time, uint32_t, + 0, + LTTNG_COMPACT_EVENT_BITS, + event_id); + bt_bitfield_write(&id_time, uint32_t, + LTTNG_COMPACT_EVENT_BITS, + LTTNG_COMPACT_TSC_BITS, + ctx->tsc); + lib_ring_buffer_write(config, ctx, &id_time, sizeof(id_time)); + break; + } + case 2: /* large */ + { + uint32_t timestamp = (uint32_t) ctx->tsc; + uint16_t id = event_id; + + lib_ring_buffer_write(config, ctx, &id, sizeof(id)); + lib_ring_buffer_align_ctx(ctx, lttng_alignof(uint32_t)); + lib_ring_buffer_write(config, ctx, ×tamp, sizeof(timestamp)); + break; + } + default: + WARN_ON_ONCE(1); + } + + ctx_record(ctx, lttng_chan, lttng_chan->ctx); + ctx_record(ctx, lttng_chan, event->ctx); + lib_ring_buffer_align_ctx(ctx, ctx->largest_align); + + return; + +slow_path: + lttng_write_event_header_slow(config, ctx, event_id); +} + +static +void lttng_write_event_header_slow(const struct lib_ring_buffer_config *config, + struct lib_ring_buffer_ctx *ctx, + uint32_t event_id) +{ + struct lttng_channel *lttng_chan = channel_get_private(ctx->chan); + struct lttng_event *event = ctx->priv; + + switch (lttng_chan->header_type) { + case 1: /* compact */ + if (!(ctx->rflags & (RING_BUFFER_RFLAG_FULL_TSC | LTTNG_RFLAG_EXTENDED))) { + uint32_t id_time = 0; + + bt_bitfield_write(&id_time, uint32_t, + 0, + LTTNG_COMPACT_EVENT_BITS, + event_id); + bt_bitfield_write(&id_time, uint32_t, + LTTNG_COMPACT_EVENT_BITS, + LTTNG_COMPACT_TSC_BITS, ctx->tsc); + lib_ring_buffer_write(config, ctx, &id_time, sizeof(id_time)); + } else { + uint8_t id = 0; + uint64_t timestamp = ctx->tsc; + + bt_bitfield_write(&id, uint8_t, + 0, + LTTNG_COMPACT_EVENT_BITS, + 31); + lib_ring_buffer_write(config, ctx, &id, sizeof(id)); + /* Align extended struct on largest member */ + lib_ring_buffer_align_ctx(ctx, lttng_alignof(uint64_t)); + lib_ring_buffer_write(config, ctx, &event_id, sizeof(event_id)); + lib_ring_buffer_align_ctx(ctx, lttng_alignof(uint64_t)); + lib_ring_buffer_write(config, ctx, ×tamp, sizeof(timestamp)); + } + break; + case 2: /* large */ + { + if (!(ctx->rflags & (RING_BUFFER_RFLAG_FULL_TSC | LTTNG_RFLAG_EXTENDED))) { + uint32_t timestamp = (uint32_t) ctx->tsc; + uint16_t id = event_id; + + lib_ring_buffer_write(config, ctx, &id, sizeof(id)); + lib_ring_buffer_align_ctx(ctx, lttng_alignof(uint32_t)); + lib_ring_buffer_write(config, ctx, ×tamp, sizeof(timestamp)); + } else { + uint16_t id = 65535; + uint64_t timestamp = ctx->tsc; + + lib_ring_buffer_write(config, ctx, &id, sizeof(id)); + /* Align extended struct on largest member */ + lib_ring_buffer_align_ctx(ctx, lttng_alignof(uint64_t)); + lib_ring_buffer_write(config, ctx, &event_id, sizeof(event_id)); + lib_ring_buffer_align_ctx(ctx, lttng_alignof(uint64_t)); + lib_ring_buffer_write(config, ctx, ×tamp, sizeof(timestamp)); + } + break; + } + default: + WARN_ON_ONCE(1); + } + ctx_record(ctx, lttng_chan, lttng_chan->ctx); + ctx_record(ctx, lttng_chan, event->ctx); + lib_ring_buffer_align_ctx(ctx, ctx->largest_align); +} + +static const struct lib_ring_buffer_config client_config; + +static u64 client_ring_buffer_clock_read(struct channel *chan) +{ + return lib_ring_buffer_clock_read(chan); +} + +static +size_t client_record_header_size(const struct lib_ring_buffer_config *config, + struct channel *chan, size_t offset, + size_t *pre_header_padding, + struct lib_ring_buffer_ctx *ctx) +{ + return record_header_size(config, chan, offset, + pre_header_padding, ctx); +} + +/** + * client_packet_header_size - called on buffer-switch to a new sub-buffer + * + * Return header size without padding after the structure. Don't use packed + * structure because gcc generates inefficient code on some architectures + * (powerpc, mips..) + */ +static size_t client_packet_header_size(void) +{ + return offsetof(struct packet_header, ctx.header_end); +} + +static void client_buffer_begin(struct lib_ring_buffer *buf, u64 tsc, + unsigned int subbuf_idx) +{ + struct channel *chan = buf->backend.chan; + struct packet_header *header = + (struct packet_header *) + lib_ring_buffer_offset_address(&buf->backend, + subbuf_idx * chan->backend.subbuf_size); + struct lttng_channel *lttng_chan = channel_get_private(chan); + struct lttng_session *session = lttng_chan->session; + + header->magic = CTF_MAGIC_NUMBER; + memcpy(header->uuid, session->uuid.b, sizeof(session->uuid)); + header->stream_id = lttng_chan->id; + header->ctx.timestamp_begin = tsc; + header->ctx.timestamp_end = 0; + header->ctx.content_size = ~0ULL; /* for debugging */ + header->ctx.packet_size = ~0ULL; + header->ctx.events_discarded = 0; + header->ctx.cpu_id = buf->backend.cpu; +} + +/* + * offset is assumed to never be 0 here : never deliver a completely empty + * subbuffer. data_size is between 1 and subbuf_size. + */ +static void client_buffer_end(struct lib_ring_buffer *buf, u64 tsc, + unsigned int subbuf_idx, unsigned long data_size) +{ + struct channel *chan = buf->backend.chan; + struct packet_header *header = + (struct packet_header *) + lib_ring_buffer_offset_address(&buf->backend, + subbuf_idx * chan->backend.subbuf_size); + unsigned long records_lost = 0; + + header->ctx.timestamp_end = tsc; + header->ctx.content_size = + (uint64_t) data_size * CHAR_BIT; /* in bits */ + header->ctx.packet_size = + (uint64_t) PAGE_ALIGN(data_size) * CHAR_BIT; /* in bits */ + records_lost += lib_ring_buffer_get_records_lost_full(&client_config, buf); + records_lost += lib_ring_buffer_get_records_lost_wrap(&client_config, buf); + records_lost += lib_ring_buffer_get_records_lost_big(&client_config, buf); + header->ctx.events_discarded = records_lost; +} + +static int client_buffer_create(struct lib_ring_buffer *buf, void *priv, + int cpu, const char *name) +{ + return 0; +} + +static void client_buffer_finalize(struct lib_ring_buffer *buf, void *priv, int cpu) +{ +} + +static struct packet_header *client_packet_header( + const struct lib_ring_buffer_config *config, + struct lib_ring_buffer *buf) +{ + struct lib_ring_buffer_backend *bufb; + unsigned long sb_bindex; + struct packet_header *header; + + bufb = &buf->backend; + sb_bindex = subbuffer_id_get_index(config, bufb->buf_rsb.id); + header = (struct packet_header *) + lib_ring_buffer_offset_address(bufb, + sb_bindex * bufb->chan->backend.subbuf_size); + + return header; +} + +static int client_timestamp_begin(const struct lib_ring_buffer_config *config, + struct lib_ring_buffer *buf, + uint64_t *timestamp_begin) +{ + struct packet_header *header = client_packet_header(config, buf); + *timestamp_begin = header->ctx.timestamp_begin; + + return 0; +} + +static int client_timestamp_end(const struct lib_ring_buffer_config *config, + struct lib_ring_buffer *buf, + uint64_t *timestamp_end) +{ + struct packet_header *header = client_packet_header(config, buf); + *timestamp_end = header->ctx.timestamp_end; + + return 0; +} + +static int client_events_discarded(const struct lib_ring_buffer_config *config, + struct lib_ring_buffer *buf, + uint64_t *events_discarded) +{ + struct packet_header *header = client_packet_header(config, buf); + *events_discarded = header->ctx.events_discarded; + + return 0; +} + +static int client_content_size(const struct lib_ring_buffer_config *config, + struct lib_ring_buffer *buf, + uint64_t *content_size) +{ + struct packet_header *header = client_packet_header(config, buf); + *content_size = header->ctx.content_size; + + return 0; +} + +static int client_packet_size(const struct lib_ring_buffer_config *config, + struct lib_ring_buffer *buf, + uint64_t *packet_size) +{ + struct packet_header *header = client_packet_header(config, buf); + *packet_size = header->ctx.packet_size; + + return 0; +} + +static int client_stream_id(const struct lib_ring_buffer_config *config, + struct lib_ring_buffer *buf, + uint64_t *stream_id) +{ + struct packet_header *header = client_packet_header(config, buf); + *stream_id = header->stream_id; + + return 0; +} + +static int client_current_timestamp(const struct lib_ring_buffer_config *config, + struct lib_ring_buffer *bufb, + uint64_t *ts) +{ + *ts = config->cb.ring_buffer_clock_read(bufb->backend.chan); + + return 0; +} + +static const struct lib_ring_buffer_config client_config = { + .cb.ring_buffer_clock_read = client_ring_buffer_clock_read, + .cb.record_header_size = client_record_header_size, + .cb.subbuffer_header_size = client_packet_header_size, + .cb.buffer_begin = client_buffer_begin, + .cb.buffer_end = client_buffer_end, + .cb.buffer_create = client_buffer_create, + .cb.buffer_finalize = client_buffer_finalize, + + .tsc_bits = LTTNG_COMPACT_TSC_BITS, + .alloc = RING_BUFFER_ALLOC_PER_CPU, + .sync = RING_BUFFER_SYNC_PER_CPU, + .mode = RING_BUFFER_MODE_TEMPLATE, + .backend = RING_BUFFER_PAGE, + .output = RING_BUFFER_OUTPUT_TEMPLATE, + .oops = RING_BUFFER_OOPS_CONSISTENCY, + .ipi = RING_BUFFER_IPI_BARRIER, + .wakeup = RING_BUFFER_WAKEUP_BY_TIMER, +}; + +static +struct channel *_channel_create(const char *name, + struct lttng_channel *lttng_chan, void *buf_addr, + size_t subbuf_size, size_t num_subbuf, + unsigned int switch_timer_interval, + unsigned int read_timer_interval) +{ + lttng_chan->ops->timestamp_begin = client_timestamp_begin; + lttng_chan->ops->timestamp_end = client_timestamp_end; + lttng_chan->ops->events_discarded = client_events_discarded; + lttng_chan->ops->content_size = client_content_size; + lttng_chan->ops->packet_size = client_packet_size; + lttng_chan->ops->stream_id = client_stream_id; + lttng_chan->ops->current_timestamp = client_current_timestamp; + + return channel_create(&client_config, name, lttng_chan, buf_addr, + subbuf_size, num_subbuf, switch_timer_interval, + read_timer_interval); +} + +static +void lttng_channel_destroy(struct channel *chan) +{ + channel_destroy(chan); +} + +static +struct lib_ring_buffer *lttng_buffer_read_open(struct channel *chan) +{ + struct lib_ring_buffer *buf; + int cpu; + + for_each_channel_cpu(cpu, chan) { + buf = channel_get_ring_buffer(&client_config, chan, cpu); + if (!lib_ring_buffer_open_read(buf)) + return buf; + } + return NULL; +} + +static +int lttng_buffer_has_read_closed_stream(struct channel *chan) +{ + struct lib_ring_buffer *buf; + int cpu; + + for_each_channel_cpu(cpu, chan) { + buf = channel_get_ring_buffer(&client_config, chan, cpu); + if (!atomic_long_read(&buf->active_readers)) + return 1; + } + return 0; +} + +static +void lttng_buffer_read_close(struct lib_ring_buffer *buf) +{ + lib_ring_buffer_release_read(buf); +} + +static +int lttng_event_reserve(struct lib_ring_buffer_ctx *ctx, + uint32_t event_id) +{ + struct lttng_channel *lttng_chan = channel_get_private(ctx->chan); + int ret, cpu; + + cpu = lib_ring_buffer_get_cpu(&client_config); + if (cpu < 0) + return -EPERM; + ctx->cpu = cpu; + + switch (lttng_chan->header_type) { + case 1: /* compact */ + if (event_id > 30) + ctx->rflags |= LTTNG_RFLAG_EXTENDED; + break; + case 2: /* large */ + if (event_id > 65534) + ctx->rflags |= LTTNG_RFLAG_EXTENDED; + break; + default: + WARN_ON_ONCE(1); + } + + ret = lib_ring_buffer_reserve(&client_config, ctx); + if (ret) + goto put; + lttng_write_event_header(&client_config, ctx, event_id); + return 0; +put: + lib_ring_buffer_put_cpu(&client_config); + return ret; +} + +static +void lttng_event_commit(struct lib_ring_buffer_ctx *ctx) +{ + lib_ring_buffer_commit(&client_config, ctx); + lib_ring_buffer_put_cpu(&client_config); +} + +static +void lttng_event_write(struct lib_ring_buffer_ctx *ctx, const void *src, + size_t len) +{ + lib_ring_buffer_write(&client_config, ctx, src, len); +} + +static +void lttng_event_write_from_user(struct lib_ring_buffer_ctx *ctx, + const void __user *src, size_t len) +{ + lib_ring_buffer_copy_from_user_inatomic(&client_config, ctx, src, len); +} + +static +void lttng_event_memset(struct lib_ring_buffer_ctx *ctx, + int c, size_t len) +{ + lib_ring_buffer_memset(&client_config, ctx, c, len); +} + +static +wait_queue_head_t *lttng_get_writer_buf_wait_queue(struct channel *chan, int cpu) +{ + struct lib_ring_buffer *buf = channel_get_ring_buffer(&client_config, + chan, cpu); + return &buf->write_wait; +} + +static +wait_queue_head_t *lttng_get_hp_wait_queue(struct channel *chan) +{ + return &chan->hp_wait; +} + +static +int lttng_is_finalized(struct channel *chan) +{ + return lib_ring_buffer_channel_is_finalized(chan); +} + +static +int lttng_is_disabled(struct channel *chan) +{ + return lib_ring_buffer_channel_is_disabled(chan); +} + +static struct lttng_transport lttng_relay_transport = { + .name = "relay-" RING_BUFFER_MODE_TEMPLATE_STRING, + .owner = THIS_MODULE, + .ops = { + .channel_create = _channel_create, + .channel_destroy = lttng_channel_destroy, + .buffer_read_open = lttng_buffer_read_open, + .buffer_has_read_closed_stream = + lttng_buffer_has_read_closed_stream, + .buffer_read_close = lttng_buffer_read_close, + .event_reserve = lttng_event_reserve, + .event_commit = lttng_event_commit, + .event_write = lttng_event_write, + .event_write_from_user = lttng_event_write_from_user, + .event_memset = lttng_event_memset, + .packet_avail_size = NULL, /* Would be racy anyway */ + .get_writer_buf_wait_queue = lttng_get_writer_buf_wait_queue, + .get_hp_wait_queue = lttng_get_hp_wait_queue, + .is_finalized = lttng_is_finalized, + .is_disabled = lttng_is_disabled, + }, +}; + +static int __init lttng_ring_buffer_client_init(void) +{ + /* + * This vmalloc sync all also takes care of the lib ring buffer + * vmalloc'd module pages when it is built as a module into LTTng. + */ + wrapper_vmalloc_sync_all(); + lttng_transport_register(<tng_relay_transport); + return 0; +} + +module_init(lttng_ring_buffer_client_init); + +static void __exit lttng_ring_buffer_client_exit(void) +{ + lttng_transport_unregister(<tng_relay_transport); +} + +module_exit(lttng_ring_buffer_client_exit); + +MODULE_LICENSE("GPL and additional rights"); +MODULE_AUTHOR("Mathieu Desnoyers"); +MODULE_DESCRIPTION("LTTng ring buffer " RING_BUFFER_MODE_TEMPLATE_STRING + " client"); --- linux-3.11.0.orig/ubuntu/lttng/lttng-calibrate.c +++ linux-3.11.0/ubuntu/lttng/lttng-calibrate.c @@ -0,0 +1,42 @@ +/* + * lttng-calibrate.c + * + * LTTng probe calibration. + * + * Copyright (C) 2010-2012 Mathieu Desnoyers + * + * 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; only + * version 2.1 of the License. + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include "lttng-abi.h" +#include "lttng-events.h" + +noinline +void lttng_calibrate_kretprobe(void) +{ + asm volatile (""); +} + +int lttng_calibrate(struct lttng_kernel_calibrate *calibrate) +{ + switch (calibrate->type) { + case LTTNG_KERNEL_CALIBRATE_KRETPROBE: + lttng_calibrate_kretprobe(); + break; + default: + return -EINVAL; + } + return 0; +} --- linux-3.11.0.orig/ubuntu/lttng/lttng-ring-buffer-client-mmap-overwrite.c +++ linux-3.11.0/ubuntu/lttng/lttng-ring-buffer-client-mmap-overwrite.c @@ -0,0 +1,33 @@ +/* + * lttng-ring-buffer-client-overwrite.c + * + * LTTng lib ring buffer client (overwrite mode). + * + * Copyright (C) 2010-2012 Mathieu Desnoyers + * + * 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; only + * version 2.1 of the License. + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include +#include "lttng-tracer.h" + +#define RING_BUFFER_MODE_TEMPLATE RING_BUFFER_OVERWRITE +#define RING_BUFFER_MODE_TEMPLATE_STRING "overwrite-mmap" +#define RING_BUFFER_OUTPUT_TEMPLATE RING_BUFFER_MMAP +#include "lttng-ring-buffer-client.h" + +MODULE_LICENSE("GPL and additional rights"); +MODULE_AUTHOR("Mathieu Desnoyers"); +MODULE_DESCRIPTION("LTTng Ring Buffer Client Overwrite Mode"); --- linux-3.11.0.orig/ubuntu/lttng/CodingStyle +++ linux-3.11.0/ubuntu/lttng/CodingStyle @@ -0,0 +1,10 @@ +LTTng Modules Kernel Tracer Coding Style + +The coding style used for this project follows the the Linux kernel +guide lines. Please refer to: + +- Linux kernel Documentation/CodingStyle document for details, +- Linux kernel scripts/checkpatch.pl for a script which verify the patch + coding style. + +Mathieu Desnoyers, May 30, 2012 --- linux-3.11.0.orig/ubuntu/lttng/lttng-ring-buffer-client-discard.c +++ linux-3.11.0/ubuntu/lttng/lttng-ring-buffer-client-discard.c @@ -0,0 +1,33 @@ +/* + * lttng-ring-buffer-client-discard.c + * + * LTTng lib ring buffer client (discard mode). + * + * Copyright (C) 2010-2012 Mathieu Desnoyers + * + * 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; only + * version 2.1 of the License. + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include +#include "lttng-tracer.h" + +#define RING_BUFFER_MODE_TEMPLATE RING_BUFFER_DISCARD +#define RING_BUFFER_MODE_TEMPLATE_STRING "discard" +#define RING_BUFFER_OUTPUT_TEMPLATE RING_BUFFER_SPLICE +#include "lttng-ring-buffer-client.h" + +MODULE_LICENSE("GPL and additional rights"); +MODULE_AUTHOR("Mathieu Desnoyers"); +MODULE_DESCRIPTION("LTTng Ring Buffer Client Discard Mode"); --- linux-3.11.0.orig/ubuntu/lttng/lttng-context-vppid.c +++ linux-3.11.0/ubuntu/lttng/lttng-context-vppid.c @@ -0,0 +1,102 @@ +/* + * lttng-context-vppid.c + * + * LTTng vPPID context. + * + * Copyright (C) 2009-2012 Mathieu Desnoyers + * + * 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; only + * version 2.1 of the License. + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include +#include +#include +#include +#include "lttng-events.h" +#include "wrapper/ringbuffer/frontend_types.h" +#include "wrapper/vmalloc.h" +#include "lttng-tracer.h" + +static +size_t vppid_get_size(size_t offset) +{ + size_t size = 0; + + size += lib_ring_buffer_align(offset, lttng_alignof(pid_t)); + size += sizeof(pid_t); + return size; +} + +static +void vppid_record(struct lttng_ctx_field *field, + struct lib_ring_buffer_ctx *ctx, + struct lttng_channel *chan) +{ + struct task_struct *parent; + pid_t vppid; + + /* + * current nsproxy can be NULL when scheduled out of exit. pid_vnr uses + * the current thread nsproxy to perform the lookup. + */ + + /* + * TODO: when we eventually add RCU subsystem instrumentation, + * taking the rcu read lock here will trigger RCU tracing + * recursively. We should modify the kernel synchronization so + * it synchronizes both for RCU and RCU sched, and rely on + * rcu_read_lock_sched_notrace. + */ + + rcu_read_lock(); + parent = rcu_dereference(current->real_parent); + if (!current->nsproxy) + vppid = 0; + else + vppid = task_tgid_vnr(parent); + rcu_read_unlock(); + lib_ring_buffer_align_ctx(ctx, lttng_alignof(vppid)); + chan->ops->event_write(ctx, &vppid, sizeof(vppid)); +} + +int lttng_add_vppid_to_ctx(struct lttng_ctx **ctx) +{ + struct lttng_ctx_field *field; + + field = lttng_append_context(ctx); + if (!field) + return -ENOMEM; + if (lttng_find_context(*ctx, "vppid")) { + lttng_remove_context_field(ctx, field); + return -EEXIST; + } + field->event_field.name = "vppid"; + field->event_field.type.atype = atype_integer; + field->event_field.type.u.basic.integer.size = sizeof(pid_t) * CHAR_BIT; + field->event_field.type.u.basic.integer.alignment = lttng_alignof(pid_t) * CHAR_BIT; + field->event_field.type.u.basic.integer.signedness = lttng_is_signed_type(pid_t); + field->event_field.type.u.basic.integer.reverse_byte_order = 0; + field->event_field.type.u.basic.integer.base = 10; + field->event_field.type.u.basic.integer.encoding = lttng_encode_none; + field->get_size = vppid_get_size; + field->record = vppid_record; + wrapper_vmalloc_sync_all(); + return 0; +} +EXPORT_SYMBOL_GPL(lttng_add_vppid_to_ctx); + +MODULE_LICENSE("GPL and additional rights"); +MODULE_AUTHOR("Mathieu Desnoyers"); +MODULE_DESCRIPTION("Linux Trace Toolkit vPPID Context"); --- linux-3.11.0.orig/ubuntu/lttng/lttng-ring-buffer-metadata-client.c +++ linux-3.11.0/ubuntu/lttng/lttng-ring-buffer-metadata-client.c @@ -0,0 +1,33 @@ +/* + * lttng-ring-buffer-metadata-client.c + * + * LTTng lib ring buffer metadta client. + * + * Copyright (C) 2010-2012 Mathieu Desnoyers + * + * 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; only + * version 2.1 of the License. + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include +#include "lttng-tracer.h" + +#define RING_BUFFER_MODE_TEMPLATE RING_BUFFER_DISCARD +#define RING_BUFFER_MODE_TEMPLATE_STRING "metadata" +#define RING_BUFFER_OUTPUT_TEMPLATE RING_BUFFER_SPLICE +#include "lttng-ring-buffer-metadata-client.h" + +MODULE_LICENSE("GPL and additional rights"); +MODULE_AUTHOR("Mathieu Desnoyers"); +MODULE_DESCRIPTION("LTTng Ring Buffer Metadata Client"); --- linux-3.11.0.orig/ubuntu/lttng/TODO +++ linux-3.11.0/ubuntu/lttng/TODO @@ -0,0 +1,116 @@ +Please contact Mathieu Desnoyers for +questions about this TODO list. The "Cleanup/Testing" section would be +good to go through before integration into mainline. The "Features" +section is a wish list of features to complete before releasing the +"LTTng 2.0" final version, but are not required to have LTTng working. +These features are mostly performance enhancements and instrumentation +enhancements. + +TODO: + +A) Cleanup/Testing + + 1) Test lib ring buffer snapshot feature. + When working on the lttngtop project, Julien Desfossez + reported that he needed to push the consumer position + forward explicitely with lib_ring_buffer_put_next_subbuf. + This means that although the usual case of pairs of + lib_ring_buffer_get_next_subbuf/lib_ring_buffer_put_next_subbuf + work fine, there is probably a problem that needs to be + investigated in + lib_ring_buffer_get_subbuf/lib_ring_buffer_put_subbuf, which + depend on the producer to push the reader position. + Contact: Julien Desfossez + + +B) Features + + 1) Integration of the LTTng 0.x trace clocks into + LTTng 2.0. + Currently using mainline kernel monotonic clock. NMIs can + therefore not be traced, and this causes a significant + performance degradation compared to the LTTng 0.x trace + clocks. Imply the creation of drivers/staging/lttng/arch to + contain the arch-specific clock support files. + * Dependency: addition of clock descriptions to CTF. + See: http://git.lttng.org/?p=linux-2.6-lttng.git;a=summary + for the LTTng 0.x git tree. + + 2) Port OMAP3 LTTng trace clocks to x86 to support systems + without constant TSC. + * Dependency: (B.1) + See: http://git.lttng.org/?p=linux-2.6-lttng.git;a=summary + for the LTTng 0.x git tree. + + 3) Implement mmap operation on an anonymous file created by a + LTTNG_KERNEL_CLOCK ioctl to export data to export + synchronized kernel and user-level LTTng trace clocks: + with: + - shared per-cpu data, + - read seqlock. + The content exported by this shared memory area will be + arch-specific. + * Dependency: (B.1) && (B.2) + See: http://git.lttng.org/?p=linux-2.6-lttng.git;a=summary + for the LTTng 0.x git tree, which has vDSO support for + LTTng trace clock on the x86 architecture. + + 3) Integrate the "statedump" module from LTTng 0.x into LTTng + 2.0. + See: http://git.lttng.org/?p=lttng-modules.git;a=shortlog;h=refs/heads/v0.19-stable + ltt-statedump.c + + 4) Generate system call TRACE_EVENT headers for all + architectures (currently done: x86 32/64). + + 5) Define "unknown" system calls into instrumentation/syscalls + override files / or do SYSCALL_DEFINE improvements to + mainline kernel to allow automatic generation of these + missing system call descriptions. + + 6) Create missing tracepoint event headers files into + instrumentation/events from headers located in + include/trace/events/. Choice: either do as currently done, + and copy those headers locally into the lttng driver and + perform the modifications locally, or push TRACE_EVENT API + modification into mainline headers, which would require + collaboration from Ftrace/Perf maintainers. + + 7) Poll: implement a poll and/or epoll exclusive wakeup scheme, + which contradicts POSIX, but protect multiple consumer + threads from thundering herd effect. + + 8) Re-integrate sample modules from libringbuffer into + lttng driver. Those modules can be used as example of how to + use libringbuffer in other contexts than LTTng, and are + useful to perform benchmarks of the ringbuffer library. + See: http://www.efficios.com/ringbuffer + + 9) NOHZ support for lib ring buffer. NOHZ infrastructure in the + Linux kernel does not support notifiers chains, which does + not let LTTng play nicely with low power consumption setups + for flight recorder (overwrite mode) live traces. One way to + allow integration between NOHZ and LTTng would be to add + support for such notifiers into NOHZ kernel infrastructure. + + 10) Turn lttng-probes.c probe_list into a + hash table. Turns O(n^2) trace systems registration (cost + for n systems) into O(n). (O(1) per system) + + 11) drivers/staging/lttng/probes/lttng-ftrace.c: + LTTng currently uses kretprobes for per-function tracing, + not the function tracer. So lttng-ftrace.c should be used + for "all" function tracing. + + 12) drivers/staging/lttng/probes/lttng-types.c: + This is a currently unused placeholder to export entire C + type declarations into the trace metadata, e.g. for support + of describing the layout of structures/enumeration mapping + along with syscall entry events. The design of this support + will likely change though, and become integrated with the + TRACE_EVENT support within lttng, by adding new macros, and + support for generation of metadata from these macros, to + allow description of those compound types/enumerations. + +Please send patches +To: Mathieu Desnoyers --- linux-3.11.0.orig/ubuntu/lttng/lttng-syscalls.c +++ linux-3.11.0/ubuntu/lttng/lttng-syscalls.c @@ -0,0 +1,459 @@ +/* + * lttng-syscalls.c + * + * LTTng syscall probes. + * + * Copyright (C) 2010-2012 Mathieu Desnoyers + * + * 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; only + * version 2.1 of the License. + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include +#include +#include +#include +#include + +#include "wrapper/tracepoint.h" +#include "lttng-events.h" + +#ifndef CONFIG_COMPAT +# ifndef is_compat_task +# define is_compat_task() (0) +# endif +#endif + +static +void syscall_entry_probe(void *__data, struct pt_regs *regs, long id); + +/* + * Forward declarations for old kernels. + */ +struct mmsghdr; +struct rlimit64; +struct oldold_utsname; +struct old_utsname; +struct sel_arg_struct; +struct mmap_arg_struct; + +/* + * Take care of NOARGS not supported by mainline. + */ +#define DECLARE_EVENT_CLASS_NOARGS(name, tstruct, assign, print) +#define DEFINE_EVENT_NOARGS(template, name) +#define TRACE_EVENT_NOARGS(name, struct, assign, print) + +/* + * Create LTTng tracepoint probes. + */ +#define LTTNG_PACKAGE_BUILD +#define CREATE_TRACE_POINTS +#define TP_MODULE_NOINIT +#define TRACE_INCLUDE_PATH ../instrumentation/syscalls/headers + +#define PARAMS(args...) args + +/* Hijack probe callback for system calls */ +#undef TP_PROBE_CB +#define TP_PROBE_CB(_template) &syscall_entry_probe +#define SC_TRACE_EVENT(_name, _proto, _args, _struct, _assign, _printk) \ + TRACE_EVENT(_name, PARAMS(_proto), PARAMS(_args),\ + PARAMS(_struct), PARAMS(_assign), PARAMS(_printk)) +#define SC_DECLARE_EVENT_CLASS_NOARGS(_name, _struct, _assign, _printk) \ + DECLARE_EVENT_CLASS_NOARGS(_name, PARAMS(_struct), PARAMS(_assign),\ + PARAMS(_printk)) +#define SC_DEFINE_EVENT_NOARGS(_template, _name) \ + DEFINE_EVENT_NOARGS(_template, _name) +#undef TRACE_SYSTEM +#define TRACE_SYSTEM syscalls_integers +#include "instrumentation/syscalls/headers/syscalls_integers.h" +#undef TRACE_SYSTEM +#define TRACE_SYSTEM syscalls_pointers +#include "instrumentation/syscalls/headers/syscalls_pointers.h" +#undef TRACE_SYSTEM +#undef SC_TRACE_EVENT +#undef SC_DECLARE_EVENT_CLASS_NOARGS +#undef SC_DEFINE_EVENT_NOARGS + +#define TRACE_SYSTEM syscalls_unknown +#include "instrumentation/syscalls/headers/syscalls_unknown.h" +#undef TRACE_SYSTEM + +/* For compat syscalls */ +#undef _TRACE_SYSCALLS_integers_H +#undef _TRACE_SYSCALLS_pointers_H + +/* Hijack probe callback for system calls */ +#undef TP_PROBE_CB +#define TP_PROBE_CB(_template) &syscall_entry_probe +#define SC_TRACE_EVENT(_name, _proto, _args, _struct, _assign, _printk) \ + TRACE_EVENT(compat_##_name, PARAMS(_proto), PARAMS(_args), \ + PARAMS(_struct), PARAMS(_assign), \ + PARAMS(_printk)) +#define SC_DECLARE_EVENT_CLASS_NOARGS(_name, _struct, _assign, _printk) \ + DECLARE_EVENT_CLASS_NOARGS(compat_##_name, PARAMS(_struct), \ + PARAMS(_assign), PARAMS(_printk)) +#define SC_DEFINE_EVENT_NOARGS(_template, _name) \ + DEFINE_EVENT_NOARGS(compat_##_template, compat_##_name) +#define TRACE_SYSTEM compat_syscalls_integers +#include "instrumentation/syscalls/headers/compat_syscalls_integers.h" +#undef TRACE_SYSTEM +#define TRACE_SYSTEM compat_syscalls_pointers +#include "instrumentation/syscalls/headers/compat_syscalls_pointers.h" +#undef TRACE_SYSTEM +#undef SC_TRACE_EVENT +#undef SC_DECLARE_EVENT_CLASS_NOARGS +#undef SC_DEFINE_EVENT_NOARGS +#undef TP_PROBE_CB + +#undef TP_MODULE_NOINIT +#undef LTTNG_PACKAGE_BUILD +#undef CREATE_TRACE_POINTS + +struct trace_syscall_entry { + void *func; + const struct lttng_event_desc *desc; + const struct lttng_event_field *fields; + unsigned int nrargs; +}; + +#define CREATE_SYSCALL_TABLE + +#undef TRACE_SYSCALL_TABLE +#define TRACE_SYSCALL_TABLE(_template, _name, _nr, _nrargs) \ + [ _nr ] = { \ + .func = __event_probe__##_template, \ + .nrargs = (_nrargs), \ + .fields = __event_fields___##_template, \ + .desc = &__event_desc___##_name, \ + }, + +static const struct trace_syscall_entry sc_table[] = { +#include "instrumentation/syscalls/headers/syscalls_integers.h" +#include "instrumentation/syscalls/headers/syscalls_pointers.h" +}; + +#undef TRACE_SYSCALL_TABLE +#define TRACE_SYSCALL_TABLE(_template, _name, _nr, _nrargs) \ + [ _nr ] = { \ + .func = __event_probe__##compat_##_template, \ + .nrargs = (_nrargs), \ + .fields = __event_fields___##compat_##_template,\ + .desc = &__event_desc___##compat_##_name, \ + }, + +/* Create compatibility syscall table */ +const struct trace_syscall_entry compat_sc_table[] = { +#include "instrumentation/syscalls/headers/compat_syscalls_integers.h" +#include "instrumentation/syscalls/headers/compat_syscalls_pointers.h" +}; + +#undef CREATE_SYSCALL_TABLE + +static void syscall_entry_unknown(struct lttng_event *event, + struct pt_regs *regs, unsigned int id) +{ + unsigned long args[UNKNOWN_SYSCALL_NRARGS]; + + syscall_get_arguments(current, regs, 0, UNKNOWN_SYSCALL_NRARGS, args); + if (unlikely(is_compat_task())) + __event_probe__compat_sys_unknown(event, id, args); + else + __event_probe__sys_unknown(event, id, args); +} + +void syscall_entry_probe(void *__data, struct pt_regs *regs, long id) +{ + struct lttng_channel *chan = __data; + struct lttng_event *event, *unknown_event; + const struct trace_syscall_entry *table, *entry; + size_t table_len; + + if (unlikely(is_compat_task())) { + table = compat_sc_table; + table_len = ARRAY_SIZE(compat_sc_table); + unknown_event = chan->sc_compat_unknown; + } else { + table = sc_table; + table_len = ARRAY_SIZE(sc_table); + unknown_event = chan->sc_unknown; + } + if (unlikely(id >= table_len)) { + syscall_entry_unknown(unknown_event, regs, id); + return; + } + if (unlikely(is_compat_task())) + event = chan->compat_sc_table[id]; + else + event = chan->sc_table[id]; + if (unlikely(!event)) { + syscall_entry_unknown(unknown_event, regs, id); + return; + } + entry = &table[id]; + WARN_ON_ONCE(!entry); + + switch (entry->nrargs) { + case 0: + { + void (*fptr)(void *__data) = entry->func; + + fptr(event); + break; + } + case 1: + { + void (*fptr)(void *__data, unsigned long arg0) = entry->func; + unsigned long args[1]; + + syscall_get_arguments(current, regs, 0, entry->nrargs, args); + fptr(event, args[0]); + break; + } + case 2: + { + void (*fptr)(void *__data, + unsigned long arg0, + unsigned long arg1) = entry->func; + unsigned long args[2]; + + syscall_get_arguments(current, regs, 0, entry->nrargs, args); + fptr(event, args[0], args[1]); + break; + } + case 3: + { + void (*fptr)(void *__data, + unsigned long arg0, + unsigned long arg1, + unsigned long arg2) = entry->func; + unsigned long args[3]; + + syscall_get_arguments(current, regs, 0, entry->nrargs, args); + fptr(event, args[0], args[1], args[2]); + break; + } + case 4: + { + void (*fptr)(void *__data, + unsigned long arg0, + unsigned long arg1, + unsigned long arg2, + unsigned long arg3) = entry->func; + unsigned long args[4]; + + syscall_get_arguments(current, regs, 0, entry->nrargs, args); + fptr(event, args[0], args[1], args[2], args[3]); + break; + } + case 5: + { + void (*fptr)(void *__data, + unsigned long arg0, + unsigned long arg1, + unsigned long arg2, + unsigned long arg3, + unsigned long arg4) = entry->func; + unsigned long args[5]; + + syscall_get_arguments(current, regs, 0, entry->nrargs, args); + fptr(event, args[0], args[1], args[2], args[3], args[4]); + break; + } + case 6: + { + void (*fptr)(void *__data, + unsigned long arg0, + unsigned long arg1, + unsigned long arg2, + unsigned long arg3, + unsigned long arg4, + unsigned long arg5) = entry->func; + unsigned long args[6]; + + syscall_get_arguments(current, regs, 0, entry->nrargs, args); + fptr(event, args[0], args[1], args[2], + args[3], args[4], args[5]); + break; + } + default: + break; + } +} + +/* noinline to diminish caller stack size */ +static +int fill_table(const struct trace_syscall_entry *table, size_t table_len, + struct lttng_event **chan_table, struct lttng_channel *chan, void *filter) +{ + const struct lttng_event_desc *desc; + unsigned int i; + + /* Allocate events for each syscall, insert into table */ + for (i = 0; i < table_len; i++) { + struct lttng_kernel_event ev; + desc = table[i].desc; + + if (!desc) { + /* Unknown syscall */ + continue; + } + /* + * Skip those already populated by previous failed + * register for this channel. + */ + if (chan_table[i]) + continue; + memset(&ev, 0, sizeof(ev)); + strncpy(ev.name, desc->name, LTTNG_KERNEL_SYM_NAME_LEN); + ev.name[LTTNG_KERNEL_SYM_NAME_LEN - 1] = '\0'; + ev.instrumentation = LTTNG_KERNEL_NOOP; + chan_table[i] = lttng_event_create(chan, &ev, filter, + desc); + if (!chan_table[i]) { + /* + * If something goes wrong in event registration + * after the first one, we have no choice but to + * leave the previous events in there, until + * deleted by session teardown. + */ + return -EINVAL; + } + } + return 0; +} + +int lttng_syscalls_register(struct lttng_channel *chan, void *filter) +{ + struct lttng_kernel_event ev; + int ret; + + wrapper_vmalloc_sync_all(); + + if (!chan->sc_table) { + /* create syscall table mapping syscall to events */ + chan->sc_table = kzalloc(sizeof(struct lttng_event *) + * ARRAY_SIZE(sc_table), GFP_KERNEL); + if (!chan->sc_table) + return -ENOMEM; + } + +#ifdef CONFIG_COMPAT + if (!chan->compat_sc_table) { + /* create syscall table mapping compat syscall to events */ + chan->compat_sc_table = kzalloc(sizeof(struct lttng_event *) + * ARRAY_SIZE(compat_sc_table), GFP_KERNEL); + if (!chan->compat_sc_table) + return -ENOMEM; + } +#endif + if (!chan->sc_unknown) { + const struct lttng_event_desc *desc = + &__event_desc___sys_unknown; + + memset(&ev, 0, sizeof(ev)); + strncpy(ev.name, desc->name, LTTNG_KERNEL_SYM_NAME_LEN); + ev.name[LTTNG_KERNEL_SYM_NAME_LEN - 1] = '\0'; + ev.instrumentation = LTTNG_KERNEL_NOOP; + chan->sc_unknown = lttng_event_create(chan, &ev, filter, + desc); + if (!chan->sc_unknown) { + return -EINVAL; + } + } + + if (!chan->sc_compat_unknown) { + const struct lttng_event_desc *desc = + &__event_desc___compat_sys_unknown; + + memset(&ev, 0, sizeof(ev)); + strncpy(ev.name, desc->name, LTTNG_KERNEL_SYM_NAME_LEN); + ev.name[LTTNG_KERNEL_SYM_NAME_LEN - 1] = '\0'; + ev.instrumentation = LTTNG_KERNEL_NOOP; + chan->sc_compat_unknown = lttng_event_create(chan, &ev, filter, + desc); + if (!chan->sc_compat_unknown) { + return -EINVAL; + } + } + + if (!chan->sc_exit) { + const struct lttng_event_desc *desc = + &__event_desc___exit_syscall; + + memset(&ev, 0, sizeof(ev)); + strncpy(ev.name, desc->name, LTTNG_KERNEL_SYM_NAME_LEN); + ev.name[LTTNG_KERNEL_SYM_NAME_LEN - 1] = '\0'; + ev.instrumentation = LTTNG_KERNEL_NOOP; + chan->sc_exit = lttng_event_create(chan, &ev, filter, + desc); + if (!chan->sc_exit) { + return -EINVAL; + } + } + + ret = fill_table(sc_table, ARRAY_SIZE(sc_table), + chan->sc_table, chan, filter); + if (ret) + return ret; +#ifdef CONFIG_COMPAT + ret = fill_table(compat_sc_table, ARRAY_SIZE(compat_sc_table), + chan->compat_sc_table, chan, filter); + if (ret) + return ret; +#endif + ret = kabi_2635_tracepoint_probe_register("sys_enter", + (void *) syscall_entry_probe, chan); + if (ret) + return ret; + /* + * We change the name of sys_exit tracepoint due to namespace + * conflict with sys_exit syscall entry. + */ + ret = kabi_2635_tracepoint_probe_register("sys_exit", + (void *) __event_probe__exit_syscall, + chan->sc_exit); + if (ret) { + WARN_ON_ONCE(kabi_2635_tracepoint_probe_unregister("sys_enter", + (void *) syscall_entry_probe, chan)); + } + return ret; +} + +/* + * Only called at session destruction. + */ +int lttng_syscalls_unregister(struct lttng_channel *chan) +{ + int ret; + + if (!chan->sc_table) + return 0; + ret = kabi_2635_tracepoint_probe_unregister("sys_exit", + (void *) __event_probe__exit_syscall, + chan->sc_exit); + if (ret) + return ret; + ret = kabi_2635_tracepoint_probe_unregister("sys_enter", + (void *) syscall_entry_probe, chan); + if (ret) + return ret; + /* lttng_event destroy will be performed by lttng_session_destroy() */ + kfree(chan->sc_table); +#ifdef CONFIG_COMPAT + kfree(chan->compat_sc_table); +#endif + return 0; +} --- linux-3.11.0.orig/ubuntu/lttng/gpl-2.0.txt +++ linux-3.11.0/ubuntu/lttng/gpl-2.0.txt @@ -0,0 +1,339 @@ + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc., + 51 Franklin Street, 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. + + 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 Lesser 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., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 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 Lesser General +Public License instead of this License. --- linux-3.11.0.orig/ubuntu/lttng/lttng-abi.h +++ linux-3.11.0/ubuntu/lttng/lttng-abi.h @@ -0,0 +1,217 @@ +#ifndef _LTTNG_ABI_H +#define _LTTNG_ABI_H + +/* + * lttng-abi.h + * + * LTTng ABI header + * + * Copyright (C) 2010-2012 Mathieu Desnoyers + * + * 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; only + * version 2.1 of the License. + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include + +#define LTTNG_KERNEL_SYM_NAME_LEN 256 + +enum lttng_kernel_instrumentation { + LTTNG_KERNEL_TRACEPOINT = 0, + LTTNG_KERNEL_KPROBE = 1, + LTTNG_KERNEL_FUNCTION = 2, + LTTNG_KERNEL_KRETPROBE = 3, + LTTNG_KERNEL_NOOP = 4, /* not hooked */ + LTTNG_KERNEL_SYSCALL = 5, +}; + +/* + * LTTng consumer mode + */ +enum lttng_kernel_output { + LTTNG_KERNEL_SPLICE = 0, + LTTNG_KERNEL_MMAP = 1, +}; + +/* + * LTTng DebugFS ABI structures. + */ +#define LTTNG_KERNEL_CHANNEL_PADDING LTTNG_KERNEL_SYM_NAME_LEN + 32 +struct lttng_kernel_channel { + uint64_t subbuf_size; /* in bytes */ + uint64_t num_subbuf; + unsigned int switch_timer_interval; /* usecs */ + unsigned int read_timer_interval; /* usecs */ + enum lttng_kernel_output output; /* splice, mmap */ + int overwrite; /* 1: overwrite, 0: discard */ + char padding[LTTNG_KERNEL_CHANNEL_PADDING]; +}__attribute__((packed)); + +struct lttng_kernel_kretprobe { + uint64_t addr; + + uint64_t offset; + char symbol_name[LTTNG_KERNEL_SYM_NAME_LEN]; +}__attribute__((packed)); + +/* + * Either addr is used, or symbol_name and offset. + */ +struct lttng_kernel_kprobe { + uint64_t addr; + + uint64_t offset; + char symbol_name[LTTNG_KERNEL_SYM_NAME_LEN]; +}__attribute__((packed)); + +struct lttng_kernel_function_tracer { + char symbol_name[LTTNG_KERNEL_SYM_NAME_LEN]; +}__attribute__((packed)); + +/* + * For syscall tracing, name = '\0' means "enable all". + */ +#define LTTNG_KERNEL_EVENT_PADDING1 16 +#define LTTNG_KERNEL_EVENT_PADDING2 LTTNG_KERNEL_SYM_NAME_LEN + 32 +struct lttng_kernel_event { + char name[LTTNG_KERNEL_SYM_NAME_LEN]; /* event name */ + enum lttng_kernel_instrumentation instrumentation; + char padding[LTTNG_KERNEL_EVENT_PADDING1]; + + /* Per instrumentation type configuration */ + union { + struct lttng_kernel_kretprobe kretprobe; + struct lttng_kernel_kprobe kprobe; + struct lttng_kernel_function_tracer ftrace; + char padding[LTTNG_KERNEL_EVENT_PADDING2]; + } u; +}__attribute__((packed)); + +struct lttng_kernel_tracer_version { + uint32_t major; + uint32_t minor; + uint32_t patchlevel; +}__attribute__((packed)); + +enum lttng_kernel_calibrate_type { + LTTNG_KERNEL_CALIBRATE_KRETPROBE, +}; + +struct lttng_kernel_calibrate { + enum lttng_kernel_calibrate_type type; /* type (input) */ +}__attribute__((packed)); + +enum lttng_kernel_context_type { + LTTNG_KERNEL_CONTEXT_PID = 0, + LTTNG_KERNEL_CONTEXT_PERF_COUNTER = 1, + LTTNG_KERNEL_CONTEXT_PROCNAME = 2, + LTTNG_KERNEL_CONTEXT_PRIO = 3, + LTTNG_KERNEL_CONTEXT_NICE = 4, + LTTNG_KERNEL_CONTEXT_VPID = 5, + LTTNG_KERNEL_CONTEXT_TID = 6, + LTTNG_KERNEL_CONTEXT_VTID = 7, + LTTNG_KERNEL_CONTEXT_PPID = 8, + LTTNG_KERNEL_CONTEXT_VPPID = 9, + LTTNG_KERNEL_CONTEXT_HOSTNAME = 10, +}; + +struct lttng_kernel_perf_counter_ctx { + uint32_t type; + uint64_t config; + char name[LTTNG_KERNEL_SYM_NAME_LEN]; +}__attribute__((packed)); + +#define LTTNG_KERNEL_CONTEXT_PADDING1 16 +#define LTTNG_KERNEL_CONTEXT_PADDING2 LTTNG_KERNEL_SYM_NAME_LEN + 32 +struct lttng_kernel_context { + enum lttng_kernel_context_type ctx; + char padding[LTTNG_KERNEL_CONTEXT_PADDING1]; + + union { + struct lttng_kernel_perf_counter_ctx perf_counter; + char padding[LTTNG_KERNEL_CONTEXT_PADDING2]; + } u; +}__attribute__((packed)); + +/* LTTng file descriptor ioctl */ +#define LTTNG_KERNEL_SESSION _IO(0xF6, 0x45) +#define LTTNG_KERNEL_TRACER_VERSION \ + _IOR(0xF6, 0x46, struct lttng_kernel_tracer_version) +#define LTTNG_KERNEL_TRACEPOINT_LIST _IO(0xF6, 0x47) +#define LTTNG_KERNEL_WAIT_QUIESCENT _IO(0xF6, 0x48) +#define LTTNG_KERNEL_CALIBRATE \ + _IOWR(0xF6, 0x49, struct lttng_kernel_calibrate) + +/* Session FD ioctl */ +#define LTTNG_KERNEL_METADATA \ + _IOW(0xF6, 0x54, struct lttng_kernel_channel) +#define LTTNG_KERNEL_CHANNEL \ + _IOW(0xF6, 0x55, struct lttng_kernel_channel) +#define LTTNG_KERNEL_SESSION_START _IO(0xF6, 0x56) +#define LTTNG_KERNEL_SESSION_STOP _IO(0xF6, 0x57) + +/* Channel FD ioctl */ +#define LTTNG_KERNEL_STREAM _IO(0xF6, 0x62) +#define LTTNG_KERNEL_EVENT \ + _IOW(0xF6, 0x63, struct lttng_kernel_event) + +/* Event and Channel FD ioctl */ +#define LTTNG_KERNEL_CONTEXT \ + _IOW(0xF6, 0x71, struct lttng_kernel_context) + +/* Event, Channel and Session ioctl */ +#define LTTNG_KERNEL_ENABLE _IO(0xF6, 0x82) +#define LTTNG_KERNEL_DISABLE _IO(0xF6, 0x83) + +/* LTTng-specific ioctls for the lib ringbuffer */ +/* returns the timestamp begin of the current sub-buffer */ +#define LTTNG_RING_BUFFER_GET_TIMESTAMP_BEGIN _IOR(0xF6, 0x20, uint64_t) +/* returns the timestamp end of the current sub-buffer */ +#define LTTNG_RING_BUFFER_GET_TIMESTAMP_END _IOR(0xF6, 0x21, uint64_t) +/* returns the number of events discarded */ +#define LTTNG_RING_BUFFER_GET_EVENTS_DISCARDED _IOR(0xF6, 0x22, uint64_t) +/* returns the packet payload size */ +#define LTTNG_RING_BUFFER_GET_CONTENT_SIZE _IOR(0xF6, 0x23, uint64_t) +/* returns the actual packet size */ +#define LTTNG_RING_BUFFER_GET_PACKET_SIZE _IOR(0xF6, 0x24, uint64_t) +/* returns the stream id */ +#define LTTNG_RING_BUFFER_GET_STREAM_ID _IOR(0xF6, 0x25, uint64_t) +/* returns the current timestamp */ +#define LTTNG_RING_BUFFER_GET_CURRENT_TIMESTAMP _IOR(0xF6, 0x26, uint64_t) + +#ifdef CONFIG_COMPAT +/* returns the timestamp begin of the current sub-buffer */ +#define LTTNG_RING_BUFFER_COMPAT_GET_TIMESTAMP_BEGIN \ + LTTNG_RING_BUFFER_GET_TIMESTAMP_BEGIN +/* returns the timestamp end of the current sub-buffer */ +#define LTTNG_RING_BUFFER_COMPAT_GET_TIMESTAMP_END \ + LTTNG_RING_BUFFER_GET_TIMESTAMP_END +/* returns the number of events discarded */ +#define LTTNG_RING_BUFFER_COMPAT_GET_EVENTS_DISCARDED \ + LTTNG_RING_BUFFER_GET_EVENTS_DISCARDED +/* returns the packet payload size */ +#define LTTNG_RING_BUFFER_COMPAT_GET_CONTENT_SIZE \ + LTTNG_RING_BUFFER_GET_CONTENT_SIZE +/* returns the actual packet size */ +#define LTTNG_RING_BUFFER_COMPAT_GET_PACKET_SIZE \ + LTTNG_RING_BUFFER_GET_PACKET_SIZE +/* returns the stream id */ +#define LTTNG_RING_BUFFER_COMPAT_GET_STREAM_ID \ + LTTNG_RING_BUFFER_GET_STREAM_ID +/* returns the current timestamp */ +#define LTTNG_RING_BUFFER_COMPAT_GET_CURRENT_TIMESTAMP \ + LTTNG_RING_BUFFER_GET_CURRENT_TIMESTAMP +#endif /* CONFIG_COMPAT */ + +#endif /* _LTTNG_ABI_H */ --- linux-3.11.0.orig/ubuntu/lttng/Makefile +++ linux-3.11.0/ubuntu/lttng/Makefile @@ -0,0 +1,61 @@ +# +# Makefile for the LTT objects. +# + +ifneq ($(KERNELRELEASE),) +ifneq ($(CONFIG_TRACEPOINTS),) + +obj-m += lttng-ring-buffer-client-discard.o +obj-m += lttng-ring-buffer-client-overwrite.o +obj-m += lttng-ring-buffer-metadata-client.o +obj-m += lttng-ring-buffer-client-mmap-discard.o +obj-m += lttng-ring-buffer-client-mmap-overwrite.o +obj-m += lttng-ring-buffer-metadata-mmap-client.o + +obj-m += lttng-tracer.o +lttng-tracer-objs := lttng-events.o lttng-abi.o \ + lttng-probes.o lttng-context.o \ + lttng-context-pid.o lttng-context-procname.o \ + lttng-context-prio.o lttng-context-nice.o \ + lttng-context-vpid.o lttng-context-tid.o \ + lttng-context-vtid.o lttng-context-ppid.o \ + lttng-context-vppid.o lttng-calibrate.o \ + lttng-context-hostname.o wrapper/random.o + +obj-m += lttng-statedump.o +lttng-statedump-objs := lttng-statedump-impl.o wrapper/irqdesc.o \ + wrapper/fdtable.o + +ifneq ($(CONFIG_HAVE_SYSCALL_TRACEPOINTS),) +lttng-tracer-objs += lttng-syscalls.o probes/lttng-probe-user.o +endif # CONFIG_HAVE_SYSCALL_TRACEPOINTS + +ifneq ($(CONFIG_PERF_EVENTS),) +lttng-tracer-objs += $(shell \ + if [ $(VERSION) -ge 3 \ + -o \( $(VERSION) -eq 2 -a $(PATCHLEVEL) -ge 6 -a $(SUBLEVEL) -ge 33 \) ] ; then \ + echo "lttng-context-perf-counters.o" ; fi;) +endif # CONFIG_PERF_EVENTS + +obj-m += probes/ +obj-m += lib/ + +endif # CONFIG_TRACEPOINTS + +else # KERNELRELEASE + KERNELDIR ?= /lib/modules/$(shell uname -r)/build + PWD := $(shell pwd) + CFLAGS = $(EXTCFLAGS) + +default: + $(MAKE) -C $(KERNELDIR) M=$(PWD) modules + +modules_install: + $(MAKE) -C $(KERNELDIR) M=$(PWD) modules_install + +clean: + $(MAKE) -C $(KERNELDIR) M=$(PWD) clean + +%.i: %.c + $(MAKE) -C $(KERNELDIR) M=$(PWD) $@ +endif # KERNELRELEASE --- linux-3.11.0.orig/ubuntu/lttng/lttng-context-ppid.c +++ linux-3.11.0/ubuntu/lttng/lttng-context-ppid.c @@ -0,0 +1,93 @@ +/* + * lttng-context-ppid.c + * + * LTTng PPID context. + * + * Copyright (C) 2009-2012 Mathieu Desnoyers + * + * 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; only + * version 2.1 of the License. + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include +#include +#include +#include +#include "lttng-events.h" +#include "wrapper/ringbuffer/frontend_types.h" +#include "wrapper/vmalloc.h" +#include "lttng-tracer.h" + +static +size_t ppid_get_size(size_t offset) +{ + size_t size = 0; + + size += lib_ring_buffer_align(offset, lttng_alignof(pid_t)); + size += sizeof(pid_t); + return size; +} + +static +void ppid_record(struct lttng_ctx_field *field, + struct lib_ring_buffer_ctx *ctx, + struct lttng_channel *chan) +{ + pid_t ppid; + + + /* + * TODO: when we eventually add RCU subsystem instrumentation, + * taking the rcu read lock here will trigger RCU tracing + * recursively. We should modify the kernel synchronization so + * it synchronizes both for RCU and RCU sched, and rely on + * rcu_read_lock_sched_notrace. + */ + + rcu_read_lock(); + ppid = task_tgid_nr(current->real_parent); + rcu_read_unlock(); + lib_ring_buffer_align_ctx(ctx, lttng_alignof(ppid)); + chan->ops->event_write(ctx, &ppid, sizeof(ppid)); +} + +int lttng_add_ppid_to_ctx(struct lttng_ctx **ctx) +{ + struct lttng_ctx_field *field; + + field = lttng_append_context(ctx); + if (!field) + return -ENOMEM; + if (lttng_find_context(*ctx, "ppid")) { + lttng_remove_context_field(ctx, field); + return -EEXIST; + } + field->event_field.name = "ppid"; + field->event_field.type.atype = atype_integer; + field->event_field.type.u.basic.integer.size = sizeof(pid_t) * CHAR_BIT; + field->event_field.type.u.basic.integer.alignment = lttng_alignof(pid_t) * CHAR_BIT; + field->event_field.type.u.basic.integer.signedness = lttng_is_signed_type(pid_t); + field->event_field.type.u.basic.integer.reverse_byte_order = 0; + field->event_field.type.u.basic.integer.base = 10; + field->event_field.type.u.basic.integer.encoding = lttng_encode_none; + field->get_size = ppid_get_size; + field->record = ppid_record; + wrapper_vmalloc_sync_all(); + return 0; +} +EXPORT_SYMBOL_GPL(lttng_add_ppid_to_ctx); + +MODULE_LICENSE("GPL and additional rights"); +MODULE_AUTHOR("Mathieu Desnoyers"); +MODULE_DESCRIPTION("Linux Trace Toolkit PPID Context"); --- linux-3.11.0.orig/ubuntu/lttng/lttng-ring-buffer-metadata-mmap-client.c +++ linux-3.11.0/ubuntu/lttng/lttng-ring-buffer-metadata-mmap-client.c @@ -0,0 +1,33 @@ +/* + * lttng-ring-buffer-metadata-client.c + * + * LTTng lib ring buffer metadta client. + * + * Copyright (C) 2010-2012 Mathieu Desnoyers + * + * 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; only + * version 2.1 of the License. + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include +#include "lttng-tracer.h" + +#define RING_BUFFER_MODE_TEMPLATE RING_BUFFER_DISCARD +#define RING_BUFFER_MODE_TEMPLATE_STRING "metadata-mmap" +#define RING_BUFFER_OUTPUT_TEMPLATE RING_BUFFER_MMAP +#include "lttng-ring-buffer-metadata-client.h" + +MODULE_LICENSE("GPL and additional rights"); +MODULE_AUTHOR("Mathieu Desnoyers"); +MODULE_DESCRIPTION("LTTng Ring Buffer Metadata Client"); --- linux-3.11.0.orig/ubuntu/lttng/LICENSE +++ linux-3.11.0/ubuntu/lttng/LICENSE @@ -0,0 +1,28 @@ +LTTng modules licensing +Mathieu Desnoyers +June 2, 2011 + +* LGPLv2.1/GPLv2 dual-license + +The files contained within this package are licensed under +LGPLv2.1/GPLv2 dual-license (see lgpl-2.1.txt and gpl-2.0.txt for +details), except for files identified by the following sections. + +* GPLv2 license + +These files are licensed exclusively under the GPLv2 license. See +gpl-2.0.txt for details. + +lib/ringbuffer/ring_buffer_splice.c +lib/ringbuffer/ring_buffer_mmap.c +instrumentation/events/mainline/*.h +instrumentation/events/lttng-modules/*.h + +* MIT-style license + +These files are licensed under an MIT-style license. See mit-license.txt +for details. + +lib/prio_heap/lttng_prio_heap.h +lib/prio_heap/lttng_prio_heap.c +lib/bitfield.h --- linux-3.11.0.orig/ubuntu/lttng/README +++ linux-3.11.0/ubuntu/lttng/README @@ -0,0 +1,93 @@ +LTTng 2.x modules + +Mathieu Desnoyers +March 29, 2013 + +LTTng 2.x kernel modules build against a vanilla or distribution kernel, without +need for additional patches. Other features: + +- Produces CTF (Common Trace Format) natively, + (http://www.efficios.com/ctf) +- Tracepoints, Function tracer, CPU Performance Monitoring Unit (PMU) + counters, kprobes, and kretprobes support, +- Integrated interface for both kernel and userspace tracing, +- Have the ability to attach "context" information to events in the + trace (e.g. any PMU counter, pid, ppid, tid, comm name, etc). + All the extra information fields to be collected with events are + optional, specified on a per-tracing-session basis (except for + timestamp and event id, which are mandatory). + +To build and install, you will need to have your kernel headers available (or +access to your full kernel source tree), and use: + +% make +# make modules_install +# depmod -a + +If you need to specify the target directory to the kernel you want to build +against, use: + +% KERNELDIR=path_to_kernel_dir make +# KERNELDIR=path_to_kernel_dir make modules_install +# depmod -a kernel_version + +Use lttng-tools to control the tracer. LTTng tools should automatically load +the kernel modules when needed. Use Babeltrace to print traces as a +human-readable text log. These tools are available at the following URL: +http://lttng.org/lttng2.0 + +So far, it has been tested on vanilla Linux kernels 2.6.38, 2.6.39, 3.0, +3.1, 3.2, 3.3 (on x86 32/64-bit, and powerpc 32-bit at the moment, build +tested on ARM), 3.4, 3.5, 3.8, 3.9-rc on x86 64-bit. Kernels 2.6.32 to +2.6.34 need up to 3 patches applied (refer to linux-patches within the +lttng-modules tree). It should work fine with newer kernels and other +architectures, but expect build issues with kernels older than 2.6.36. +The clock source currently used is the standard gettimeofday (slower, +less scalable and less precise than the LTTng 0.x clocks). Support for +LTTng 0.x clocks will be added back soon into LTTng 2.0. + + +* Kernel config options required + +CONFIG_MODULES: required + * Kernel modules support. +CONFIG_KALLSYMS: required + * See wrapper/ files. This is necessary until the few required missing + symbols are exported to GPL modules from mainline. +CONFIG_HIGH_RES_TIMERS: required + * Needed for LTTng 2.0 clock source. +CONFIG_TRACEPOINTS: required + kernel tracepoint instrumentation + * Enabled as side-effect of any of the perf/ftrace/blktrace + instrumentation features. + + +* Kernel config options supported (optional) + +The following kernel configuration options will affect the features +available from LTTng: + + +CONFIG_HAVE_SYSCALL_TRACEPOINTS: + system call tracing + lttng enable-event -k --syscall + lttng enable-event -k -a +CONFIG_PERF_EVENTS: + performance counters + lttng add-context -t perf:* +CONFIG_EVENT_TRACING: + needed to allow block layer tracing +CONFIG_KPROBES: + Dynamic probe. + lttng enable-event -k --probe ... +CONFIG_KRETPROBES: + Dynamic function entry/return probe. + lttng enable-event -k --function ... + + +* Note about Perf PMU counters support + +Each PMU counter has its zero value set when it is attached to a context with +add-context. Therefore, it is normal that the same counters attached to both the +stream context and event context show different values for a given event; what +matters is that they increment at the same rate. --- linux-3.11.0.orig/ubuntu/lttng/lttng-context-procname.c +++ linux-3.11.0/ubuntu/lttng/lttng-context-procname.c @@ -0,0 +1,85 @@ +/* + * lttng-context-procname.c + * + * LTTng procname context. + * + * Copyright (C) 2009-2012 Mathieu Desnoyers + * + * 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; only + * version 2.1 of the License. + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include +#include +#include +#include "lttng-events.h" +#include "wrapper/ringbuffer/frontend_types.h" +#include "wrapper/vmalloc.h" +#include "lttng-tracer.h" + +static +size_t procname_get_size(size_t offset) +{ + size_t size = 0; + + size += sizeof(current->comm); + return size; +} + +/* + * Racy read of procname. We simply copy its whole array size. + * Races with /proc//procname write only. + * Otherwise having to take a mutex for each event is cumbersome and + * could lead to crash in IRQ context and deadlock of the lockdep tracer. + */ +static +void procname_record(struct lttng_ctx_field *field, + struct lib_ring_buffer_ctx *ctx, + struct lttng_channel *chan) +{ + chan->ops->event_write(ctx, current->comm, sizeof(current->comm)); +} + +int lttng_add_procname_to_ctx(struct lttng_ctx **ctx) +{ + struct lttng_ctx_field *field; + + field = lttng_append_context(ctx); + if (!field) + return -ENOMEM; + if (lttng_find_context(*ctx, "procname")) { + lttng_remove_context_field(ctx, field); + return -EEXIST; + } + field->event_field.name = "procname"; + field->event_field.type.atype = atype_array; + field->event_field.type.u.array.elem_type.atype = atype_integer; + field->event_field.type.u.array.elem_type.u.basic.integer.size = sizeof(char) * CHAR_BIT; + field->event_field.type.u.array.elem_type.u.basic.integer.alignment = lttng_alignof(char) * CHAR_BIT; + field->event_field.type.u.array.elem_type.u.basic.integer.signedness = lttng_is_signed_type(char); + field->event_field.type.u.array.elem_type.u.basic.integer.reverse_byte_order = 0; + field->event_field.type.u.array.elem_type.u.basic.integer.base = 10; + field->event_field.type.u.array.elem_type.u.basic.integer.encoding = lttng_encode_UTF8; + field->event_field.type.u.array.length = sizeof(current->comm); + + field->get_size = procname_get_size; + field->record = procname_record; + wrapper_vmalloc_sync_all(); + return 0; +} +EXPORT_SYMBOL_GPL(lttng_add_procname_to_ctx); + +MODULE_LICENSE("GPL and additional rights"); +MODULE_AUTHOR("Mathieu Desnoyers"); +MODULE_DESCRIPTION("Linux Trace Toolkit Perf Support"); --- linux-3.11.0.orig/ubuntu/lttng/lgpl-2.1.txt +++ linux-3.11.0/ubuntu/lttng/lgpl-2.1.txt @@ -0,0 +1,504 @@ + GNU LESSER GENERAL PUBLIC LICENSE + Version 2.1, February 1999 + + Copyright (C) 1991, 1999 Free Software Foundation, Inc. + 51 Franklin Street, 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 Street, 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-3.11.0.orig/ubuntu/lttng/lttng-statedump-impl.c +++ linux-3.11.0/ubuntu/lttng/lttng-statedump-impl.c @@ -0,0 +1,426 @@ +/* + * lttng-statedump.c + * + * Linux Trace Toolkit Next Generation Kernel State Dump + * + * Copyright 2005 Jean-Hugues Deschenes + * Copyright 2006-2012 Mathieu Desnoyers + * + * 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; only + * version 2.1 of the License. + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + * + * Changes: + * Eric Clement: Add listing of network IP interface + * 2006, 2007 Mathieu Desnoyers Fix kernel threads + * Various updates + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "lttng-events.h" +#include "wrapper/irqdesc.h" +#include "wrapper/spinlock.h" +#include "wrapper/fdtable.h" +#include "wrapper/nsproxy.h" + +#ifdef CONFIG_GENERIC_HARDIRQS +#include +#endif + +/* Define the tracepoints, but do not build the probes */ +#define CREATE_TRACE_POINTS +#define TRACE_INCLUDE_PATH ../instrumentation/events/lttng-module +#define TRACE_INCLUDE_FILE lttng-statedump +#include "instrumentation/events/lttng-module/lttng-statedump.h" + +struct lttng_fd_ctx { + char *page; + struct lttng_session *session; + struct task_struct *p; +}; + +/* + * Protected by the trace lock. + */ +static struct delayed_work cpu_work[NR_CPUS]; +static DECLARE_WAIT_QUEUE_HEAD(statedump_wq); +static atomic_t kernel_threads_to_run; + +enum lttng_thread_type { + LTTNG_USER_THREAD = 0, + LTTNG_KERNEL_THREAD = 1, +}; + +enum lttng_execution_mode { + LTTNG_USER_MODE = 0, + LTTNG_SYSCALL = 1, + LTTNG_TRAP = 2, + LTTNG_IRQ = 3, + LTTNG_SOFTIRQ = 4, + LTTNG_MODE_UNKNOWN = 5, +}; + +enum lttng_execution_submode { + LTTNG_NONE = 0, + LTTNG_UNKNOWN = 1, +}; + +enum lttng_process_status { + LTTNG_UNNAMED = 0, + LTTNG_WAIT_FORK = 1, + LTTNG_WAIT_CPU = 2, + LTTNG_EXIT = 3, + LTTNG_ZOMBIE = 4, + LTTNG_WAIT = 5, + LTTNG_RUN = 6, + LTTNG_DEAD = 7, +}; + +#ifdef CONFIG_INET +static +void lttng_enumerate_device(struct lttng_session *session, + struct net_device *dev) +{ + struct in_device *in_dev; + struct in_ifaddr *ifa; + + if (dev->flags & IFF_UP) { + in_dev = in_dev_get(dev); + if (in_dev) { + for (ifa = in_dev->ifa_list; ifa != NULL; + ifa = ifa->ifa_next) { + trace_lttng_statedump_network_interface( + session, dev, ifa); + } + in_dev_put(in_dev); + } + } else { + trace_lttng_statedump_network_interface( + session, dev, NULL); + } +} + +static +int lttng_enumerate_network_ip_interface(struct lttng_session *session) +{ + struct net_device *dev; + + read_lock(&dev_base_lock); + for_each_netdev(&init_net, dev) + lttng_enumerate_device(session, dev); + read_unlock(&dev_base_lock); + + return 0; +} +#else /* CONFIG_INET */ +static inline +int lttng_enumerate_network_ip_interface(struct lttng_session *session) +{ + return 0; +} +#endif /* CONFIG_INET */ + +static +int lttng_dump_one_fd(const void *p, struct file *file, unsigned int fd) +{ + const struct lttng_fd_ctx *ctx = p; + const char *s = d_path(&file->f_path, ctx->page, PAGE_SIZE); + + if (IS_ERR(s)) { + struct dentry *dentry = file->f_path.dentry; + + /* Make sure we give at least some info */ + spin_lock(&dentry->d_lock); + trace_lttng_statedump_file_descriptor(ctx->session, ctx->p, fd, + dentry->d_name.name); + spin_unlock(&dentry->d_lock); + goto end; + } + trace_lttng_statedump_file_descriptor(ctx->session, ctx->p, fd, s); +end: + return 0; +} + +static +void lttng_enumerate_task_fd(struct lttng_session *session, + struct task_struct *p, char *tmp) +{ + struct lttng_fd_ctx ctx = { .page = tmp, .session = session, .p = p }; + + task_lock(p); + lttng_iterate_fd(p->files, 0, lttng_dump_one_fd, &ctx); + task_unlock(p); +} + +static +int lttng_enumerate_file_descriptors(struct lttng_session *session) +{ + struct task_struct *p; + char *tmp = (char *) __get_free_page(GFP_KERNEL); + + /* Enumerate active file descriptors */ + rcu_read_lock(); + for_each_process(p) + lttng_enumerate_task_fd(session, p, tmp); + rcu_read_unlock(); + free_page((unsigned long) tmp); + return 0; +} + +#if 0 +/* + * FIXME: we cannot take a mmap_sem while in a RCU read-side critical section + * (scheduling in atomic). Normally, the tasklist lock protects this kind of + * iteration, but it is not exported to modules. + */ +static +void lttng_enumerate_task_vm_maps(struct lttng_session *session, + struct task_struct *p) +{ + struct mm_struct *mm; + struct vm_area_struct *map; + unsigned long ino; + + /* get_task_mm does a task_lock... */ + mm = get_task_mm(p); + if (!mm) + return; + + map = mm->mmap; + if (map) { + down_read(&mm->mmap_sem); + while (map) { + if (map->vm_file) + ino = map->vm_file->f_dentry->d_inode->i_ino; + else + ino = 0; + trace_lttng_statedump_vm_map(session, p, map, ino); + map = map->vm_next; + } + up_read(&mm->mmap_sem); + } + mmput(mm); +} + +static +int lttng_enumerate_vm_maps(struct lttng_session *session) +{ + struct task_struct *p; + + rcu_read_lock(); + for_each_process(p) + lttng_enumerate_task_vm_maps(session, p); + rcu_read_unlock(); + return 0; +} +#endif + +#ifdef CONFIG_GENERIC_HARDIRQS + +#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,39)) +#define irq_desc_get_chip(desc) get_irq_desc_chip(desc) +#endif + +static +void lttng_list_interrupts(struct lttng_session *session) +{ + unsigned int irq; + unsigned long flags = 0; + struct irq_desc *desc; + +#define irq_to_desc wrapper_irq_to_desc + /* needs irq_desc */ + for_each_irq_desc(irq, desc) { + struct irqaction *action; + const char *irq_chip_name = + irq_desc_get_chip(desc)->name ? : "unnamed_irq_chip"; + + local_irq_save(flags); + wrapper_desc_spin_lock(&desc->lock); + for (action = desc->action; action; action = action->next) { + trace_lttng_statedump_interrupt(session, + irq, irq_chip_name, action); + } + wrapper_desc_spin_unlock(&desc->lock); + local_irq_restore(flags); + } +#undef irq_to_desc +} +#else +static inline +void list_interrupts(struct lttng_session *session) +{ +} +#endif + +static +void lttng_statedump_process_ns(struct lttng_session *session, + struct task_struct *p, + enum lttng_thread_type type, + enum lttng_execution_mode mode, + enum lttng_execution_submode submode, + enum lttng_process_status status) +{ + struct nsproxy *proxy; + struct pid_namespace *pid_ns; + + rcu_read_lock(); + proxy = task_nsproxy(p); + if (proxy) { + pid_ns = lttng_get_proxy_pid_ns(proxy); + do { + trace_lttng_statedump_process_state(session, + p, type, mode, submode, status, pid_ns); + pid_ns = pid_ns->parent; + } while (pid_ns); + } else { + trace_lttng_statedump_process_state(session, + p, type, mode, submode, status, NULL); + } + rcu_read_unlock(); +} + +static +int lttng_enumerate_process_states(struct lttng_session *session) +{ + struct task_struct *g, *p; + + rcu_read_lock(); + for_each_process(g) { + p = g; + do { + enum lttng_execution_mode mode = + LTTNG_MODE_UNKNOWN; + enum lttng_execution_submode submode = + LTTNG_UNKNOWN; + enum lttng_process_status status; + enum lttng_thread_type type; + + task_lock(p); + if (p->exit_state == EXIT_ZOMBIE) + status = LTTNG_ZOMBIE; + else if (p->exit_state == EXIT_DEAD) + status = LTTNG_DEAD; + else if (p->state == TASK_RUNNING) { + /* Is this a forked child that has not run yet? */ + if (list_empty(&p->rt.run_list)) + status = LTTNG_WAIT_FORK; + else + /* + * All tasks are considered as wait_cpu; + * the viewer will sort out if the task + * was really running at this time. + */ + status = LTTNG_WAIT_CPU; + } else if (p->state & + (TASK_INTERRUPTIBLE | TASK_UNINTERRUPTIBLE)) { + /* Task is waiting for something to complete */ + status = LTTNG_WAIT; + } else + status = LTTNG_UNNAMED; + submode = LTTNG_NONE; + + /* + * Verification of t->mm is to filter out kernel + * threads; Viewer will further filter out if a + * user-space thread was in syscall mode or not. + */ + if (p->mm) + type = LTTNG_USER_THREAD; + else + type = LTTNG_KERNEL_THREAD; + lttng_statedump_process_ns(session, + p, type, mode, submode, status); + task_unlock(p); + } while_each_thread(g, p); + } + rcu_read_unlock(); + + return 0; +} + +static +void lttng_statedump_work_func(struct work_struct *work) +{ + if (atomic_dec_and_test(&kernel_threads_to_run)) + /* If we are the last thread, wake up do_lttng_statedump */ + wake_up(&statedump_wq); +} + +static +int do_lttng_statedump(struct lttng_session *session) +{ + int cpu; + + trace_lttng_statedump_start(session); + lttng_enumerate_process_states(session); + lttng_enumerate_file_descriptors(session); + /* FIXME lttng_enumerate_vm_maps(session); */ + lttng_list_interrupts(session); + lttng_enumerate_network_ip_interface(session); + + /* TODO lttng_dump_idt_table(session); */ + /* TODO lttng_dump_softirq_vec(session); */ + /* TODO lttng_list_modules(session); */ + /* TODO lttng_dump_swap_files(session); */ + + /* + * Fire off a work queue on each CPU. Their sole purpose in life + * is to guarantee that each CPU has been in a state where is was in + * syscall mode (i.e. not in a trap, an IRQ or a soft IRQ). + */ + get_online_cpus(); + atomic_set(&kernel_threads_to_run, num_online_cpus()); + for_each_online_cpu(cpu) { + INIT_DELAYED_WORK(&cpu_work[cpu], lttng_statedump_work_func); + schedule_delayed_work_on(cpu, &cpu_work[cpu], 0); + } + /* Wait for all threads to run */ + __wait_event(statedump_wq, (atomic_read(&kernel_threads_to_run) == 0)); + put_online_cpus(); + /* Our work is done */ + trace_lttng_statedump_end(session); + return 0; +} + +/* + * Called with session mutex held. + */ +int lttng_statedump_start(struct lttng_session *session) +{ + return do_lttng_statedump(session); +} +EXPORT_SYMBOL_GPL(lttng_statedump_start); + +MODULE_LICENSE("GPL and additional rights"); +MODULE_AUTHOR("Jean-Hugues Deschenes"); +MODULE_DESCRIPTION("Linux Trace Toolkit Next Generation Statedump"); --- linux-3.11.0.orig/ubuntu/lttng/lttng-ring-buffer-client-overwrite.c +++ linux-3.11.0/ubuntu/lttng/lttng-ring-buffer-client-overwrite.c @@ -0,0 +1,33 @@ +/* + * lttng-ring-buffer-client-overwrite.c + * + * LTTng lib ring buffer client (overwrite mode). + * + * Copyright (C) 2010-2012 Mathieu Desnoyers + * + * 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; only + * version 2.1 of the License. + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include +#include "lttng-tracer.h" + +#define RING_BUFFER_MODE_TEMPLATE RING_BUFFER_OVERWRITE +#define RING_BUFFER_MODE_TEMPLATE_STRING "overwrite" +#define RING_BUFFER_OUTPUT_TEMPLATE RING_BUFFER_SPLICE +#include "lttng-ring-buffer-client.h" + +MODULE_LICENSE("GPL and additional rights"); +MODULE_AUTHOR("Mathieu Desnoyers"); +MODULE_DESCRIPTION("LTTng Ring Buffer Client Overwrite Mode"); --- linux-3.11.0.orig/ubuntu/lttng/lttng-context-nice.c +++ linux-3.11.0/ubuntu/lttng/lttng-context-nice.c @@ -0,0 +1,81 @@ +/* + * lttng-context-nice.c + * + * LTTng nice context. + * + * Copyright (C) 2009-2012 Mathieu Desnoyers + * + * 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; only + * version 2.1 of the License. + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include +#include +#include +#include "lttng-events.h" +#include "wrapper/ringbuffer/frontend_types.h" +#include "wrapper/vmalloc.h" +#include "lttng-tracer.h" + +static +size_t nice_get_size(size_t offset) +{ + size_t size = 0; + + size += lib_ring_buffer_align(offset, lttng_alignof(int)); + size += sizeof(int); + return size; +} + +static +void nice_record(struct lttng_ctx_field *field, + struct lib_ring_buffer_ctx *ctx, + struct lttng_channel *chan) +{ + int nice; + + nice = task_nice(current); + lib_ring_buffer_align_ctx(ctx, lttng_alignof(nice)); + chan->ops->event_write(ctx, &nice, sizeof(nice)); +} + +int lttng_add_nice_to_ctx(struct lttng_ctx **ctx) +{ + struct lttng_ctx_field *field; + + field = lttng_append_context(ctx); + if (!field) + return -ENOMEM; + if (lttng_find_context(*ctx, "nice")) { + lttng_remove_context_field(ctx, field); + return -EEXIST; + } + field->event_field.name = "nice"; + field->event_field.type.atype = atype_integer; + field->event_field.type.u.basic.integer.size = sizeof(int) * CHAR_BIT; + field->event_field.type.u.basic.integer.alignment = lttng_alignof(int) * CHAR_BIT; + field->event_field.type.u.basic.integer.signedness = lttng_is_signed_type(int); + field->event_field.type.u.basic.integer.reverse_byte_order = 0; + field->event_field.type.u.basic.integer.base = 10; + field->event_field.type.u.basic.integer.encoding = lttng_encode_none; + field->get_size = nice_get_size; + field->record = nice_record; + wrapper_vmalloc_sync_all(); + return 0; +} +EXPORT_SYMBOL_GPL(lttng_add_nice_to_ctx); + +MODULE_LICENSE("GPL and additional rights"); +MODULE_AUTHOR("Mathieu Desnoyers"); +MODULE_DESCRIPTION("Linux Trace Toolkit Nice Context"); --- linux-3.11.0.orig/ubuntu/lttng/lttng-context-prio.c +++ linux-3.11.0/ubuntu/lttng/lttng-context-prio.c @@ -0,0 +1,102 @@ +/* + * lttng-context-prio.c + * + * LTTng priority context. + * + * Copyright (C) 2009-2012 Mathieu Desnoyers + * + * 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; only + * version 2.1 of the License. + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include +#include +#include +#include "lttng-events.h" +#include "wrapper/ringbuffer/frontend_types.h" +#include "wrapper/vmalloc.h" +#include "wrapper/kallsyms.h" +#include "lttng-tracer.h" + +static +int (*wrapper_task_prio_sym)(struct task_struct *t); + +int wrapper_task_prio_init(void) +{ + wrapper_task_prio_sym = (void *) kallsyms_lookup_funcptr("task_prio"); + if (!wrapper_task_prio_sym) { + printk(KERN_WARNING "LTTng: task_prio symbol lookup failed.\n"); + return -EINVAL; + } + return 0; +} + +static +size_t prio_get_size(size_t offset) +{ + size_t size = 0; + + size += lib_ring_buffer_align(offset, lttng_alignof(int)); + size += sizeof(int); + return size; +} + +static +void prio_record(struct lttng_ctx_field *field, + struct lib_ring_buffer_ctx *ctx, + struct lttng_channel *chan) +{ + int prio; + + prio = wrapper_task_prio_sym(current); + lib_ring_buffer_align_ctx(ctx, lttng_alignof(prio)); + chan->ops->event_write(ctx, &prio, sizeof(prio)); +} + +int lttng_add_prio_to_ctx(struct lttng_ctx **ctx) +{ + struct lttng_ctx_field *field; + int ret; + + if (!wrapper_task_prio_sym) { + ret = wrapper_task_prio_init(); + if (ret) + return ret; + } + + field = lttng_append_context(ctx); + if (!field) + return -ENOMEM; + if (lttng_find_context(*ctx, "prio")) { + lttng_remove_context_field(ctx, field); + return -EEXIST; + } + field->event_field.name = "prio"; + field->event_field.type.atype = atype_integer; + field->event_field.type.u.basic.integer.size = sizeof(int) * CHAR_BIT; + field->event_field.type.u.basic.integer.alignment = lttng_alignof(int) * CHAR_BIT; + field->event_field.type.u.basic.integer.signedness = lttng_is_signed_type(int); + field->event_field.type.u.basic.integer.reverse_byte_order = 0; + field->event_field.type.u.basic.integer.base = 10; + field->event_field.type.u.basic.integer.encoding = lttng_encode_none; + field->get_size = prio_get_size; + field->record = prio_record; + wrapper_vmalloc_sync_all(); + return 0; +} +EXPORT_SYMBOL_GPL(lttng_add_prio_to_ctx); + +MODULE_LICENSE("GPL and additional rights"); +MODULE_AUTHOR("Mathieu Desnoyers"); +MODULE_DESCRIPTION("Linux Trace Toolkit Priority Context"); --- linux-3.11.0.orig/ubuntu/lttng/lttng-context-vtid.c +++ linux-3.11.0/ubuntu/lttng/lttng-context-vtid.c @@ -0,0 +1,87 @@ +/* + * lttng-context-vtid.c + * + * LTTng vTID context. + * + * Copyright (C) 2009-2012 Mathieu Desnoyers + * + * 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; only + * version 2.1 of the License. + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include +#include +#include +#include "lttng-events.h" +#include "wrapper/ringbuffer/frontend_types.h" +#include "wrapper/vmalloc.h" +#include "lttng-tracer.h" + +static +size_t vtid_get_size(size_t offset) +{ + size_t size = 0; + + size += lib_ring_buffer_align(offset, lttng_alignof(pid_t)); + size += sizeof(pid_t); + return size; +} + +static +void vtid_record(struct lttng_ctx_field *field, + struct lib_ring_buffer_ctx *ctx, + struct lttng_channel *chan) +{ + pid_t vtid; + + /* + * nsproxy can be NULL when scheduled out of exit. + */ + if (!current->nsproxy) + vtid = 0; + else + vtid = task_pid_vnr(current); + lib_ring_buffer_align_ctx(ctx, lttng_alignof(vtid)); + chan->ops->event_write(ctx, &vtid, sizeof(vtid)); +} + +int lttng_add_vtid_to_ctx(struct lttng_ctx **ctx) +{ + struct lttng_ctx_field *field; + + field = lttng_append_context(ctx); + if (!field) + return -ENOMEM; + if (lttng_find_context(*ctx, "vtid")) { + lttng_remove_context_field(ctx, field); + return -EEXIST; + } + field->event_field.name = "vtid"; + field->event_field.type.atype = atype_integer; + field->event_field.type.u.basic.integer.size = sizeof(pid_t) * CHAR_BIT; + field->event_field.type.u.basic.integer.alignment = lttng_alignof(pid_t) * CHAR_BIT; + field->event_field.type.u.basic.integer.signedness = lttng_is_signed_type(pid_t); + field->event_field.type.u.basic.integer.reverse_byte_order = 0; + field->event_field.type.u.basic.integer.base = 10; + field->event_field.type.u.basic.integer.encoding = lttng_encode_none; + field->get_size = vtid_get_size; + field->record = vtid_record; + wrapper_vmalloc_sync_all(); + return 0; +} +EXPORT_SYMBOL_GPL(lttng_add_vtid_to_ctx); + +MODULE_LICENSE("GPL and additional rights"); +MODULE_AUTHOR("Mathieu Desnoyers"); +MODULE_DESCRIPTION("Linux Trace Toolkit vTID Context"); --- linux-3.11.0.orig/ubuntu/lttng/lttng-abi-old.h +++ linux-3.11.0/ubuntu/lttng/lttng-abi-old.h @@ -0,0 +1,141 @@ +#ifndef _LTTNG_ABI_OLD_H +#define _LTTNG_ABI_OLD_H + +/* + * lttng-abi-old.h + * + * LTTng old ABI header (without support for compat 32/64 bits) + * + * Copyright (C) 2010-2012 Mathieu Desnoyers + * + * 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; only + * version 2.1 of the License. + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include +#include "lttng-abi.h" + +/* + * LTTng DebugFS ABI structures. + */ +#define LTTNG_KERNEL_OLD_CHANNEL_PADDING LTTNG_KERNEL_SYM_NAME_LEN + 32 +struct lttng_kernel_old_channel { + int overwrite; /* 1: overwrite, 0: discard */ + uint64_t subbuf_size; /* in bytes */ + uint64_t num_subbuf; + unsigned int switch_timer_interval; /* usecs */ + unsigned int read_timer_interval; /* usecs */ + enum lttng_kernel_output output; /* splice, mmap */ + char padding[LTTNG_KERNEL_OLD_CHANNEL_PADDING]; +}; + +struct lttng_kernel_old_kretprobe { + uint64_t addr; + + uint64_t offset; + char symbol_name[LTTNG_KERNEL_SYM_NAME_LEN]; +}; + +/* + * Either addr is used, or symbol_name and offset. + */ +struct lttng_kernel_old_kprobe { + uint64_t addr; + + uint64_t offset; + char symbol_name[LTTNG_KERNEL_SYM_NAME_LEN]; +}; + +struct lttng_kernel_old_function_tracer { + char symbol_name[LTTNG_KERNEL_SYM_NAME_LEN]; +}; + +/* + * For syscall tracing, name = '\0' means "enable all". + */ +#define LTTNG_KERNEL_OLD_EVENT_PADDING1 16 +#define LTTNG_KERNEL_OLD_EVENT_PADDING2 LTTNG_KERNEL_SYM_NAME_LEN + 32 +struct lttng_kernel_old_event { + char name[LTTNG_KERNEL_SYM_NAME_LEN]; /* event name */ + enum lttng_kernel_instrumentation instrumentation; + char padding[LTTNG_KERNEL_OLD_EVENT_PADDING1]; + + /* Per instrumentation type configuration */ + union { + struct lttng_kernel_old_kretprobe kretprobe; + struct lttng_kernel_old_kprobe kprobe; + struct lttng_kernel_old_function_tracer ftrace; + char padding[LTTNG_KERNEL_OLD_EVENT_PADDING2]; + } u; +}; + +struct lttng_kernel_old_tracer_version { + uint32_t major; + uint32_t minor; + uint32_t patchlevel; +}; + +struct lttng_kernel_old_calibrate { + enum lttng_kernel_calibrate_type type; /* type (input) */ +}; + +struct lttng_kernel_old_perf_counter_ctx { + uint32_t type; + uint64_t config; + char name[LTTNG_KERNEL_SYM_NAME_LEN]; +}; + +#define LTTNG_KERNEL_OLD_CONTEXT_PADDING1 16 +#define LTTNG_KERNEL_OLD_CONTEXT_PADDING2 LTTNG_KERNEL_SYM_NAME_LEN + 32 +struct lttng_kernel_old_context { + enum lttng_kernel_context_type ctx; + char padding[LTTNG_KERNEL_OLD_CONTEXT_PADDING1]; + + union { + struct lttng_kernel_old_perf_counter_ctx perf_counter; + char padding[LTTNG_KERNEL_OLD_CONTEXT_PADDING2]; + } u; +}; + +/* LTTng file descriptor ioctl */ +#define LTTNG_KERNEL_OLD_SESSION _IO(0xF6, 0x40) +#define LTTNG_KERNEL_OLD_TRACER_VERSION \ + _IOR(0xF6, 0x41, struct lttng_kernel_old_tracer_version) +#define LTTNG_KERNEL_OLD_TRACEPOINT_LIST _IO(0xF6, 0x42) +#define LTTNG_KERNEL_OLD_WAIT_QUIESCENT _IO(0xF6, 0x43) +#define LTTNG_KERNEL_OLD_CALIBRATE \ + _IOWR(0xF6, 0x44, struct lttng_kernel_old_calibrate) + +/* Session FD ioctl */ +#define LTTNG_KERNEL_OLD_METADATA \ + _IOW(0xF6, 0x50, struct lttng_kernel_old_channel) +#define LTTNG_KERNEL_OLD_CHANNEL \ + _IOW(0xF6, 0x51, struct lttng_kernel_old_channel) +#define LTTNG_KERNEL_OLD_SESSION_START _IO(0xF6, 0x52) +#define LTTNG_KERNEL_OLD_SESSION_STOP _IO(0xF6, 0x53) + +/* Channel FD ioctl */ +#define LTTNG_KERNEL_OLD_STREAM _IO(0xF6, 0x60) +#define LTTNG_KERNEL_OLD_EVENT \ + _IOW(0xF6, 0x61, struct lttng_kernel_old_event) + +/* Event and Channel FD ioctl */ +#define LTTNG_KERNEL_OLD_CONTEXT \ + _IOW(0xF6, 0x70, struct lttng_kernel_old_context) + +/* Event, Channel and Session ioctl */ +#define LTTNG_KERNEL_OLD_ENABLE _IO(0xF6, 0x80) +#define LTTNG_KERNEL_OLD_DISABLE _IO(0xF6, 0x81) + +#endif /* _LTTNG_ABI_OLD_H */ --- linux-3.11.0.orig/ubuntu/lttng/lttng-context-perf-counters.c +++ linux-3.11.0/ubuntu/lttng/lttng-context-perf-counters.c @@ -0,0 +1,285 @@ +/* + * lttng-context-perf-counters.c + * + * LTTng performance monitoring counters (perf-counters) integration module. + * + * Copyright (C) 2009-2012 Mathieu Desnoyers + * + * 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; only + * version 2.1 of the License. + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include +#include +#include +#include +#include +#include +#include "lttng-events.h" +#include "wrapper/ringbuffer/frontend_types.h" +#include "wrapper/vmalloc.h" +#include "wrapper/perf.h" +#include "lttng-tracer.h" + +static +size_t perf_counter_get_size(size_t offset) +{ + size_t size = 0; + + size += lib_ring_buffer_align(offset, lttng_alignof(uint64_t)); + size += sizeof(uint64_t); + return size; +} + +static +void perf_counter_record(struct lttng_ctx_field *field, + struct lib_ring_buffer_ctx *ctx, + struct lttng_channel *chan) +{ + struct perf_event *event; + uint64_t value; + + event = field->u.perf_counter->e[ctx->cpu]; + if (likely(event)) { + if (unlikely(event->state == PERF_EVENT_STATE_ERROR)) { + value = 0; + } else { + event->pmu->read(event); + value = local64_read(&event->count); + } + } else { + /* + * Perf chooses not to be clever and not to support enabling a + * perf counter before the cpu is brought up. Therefore, we need + * to support having events coming (e.g. scheduler events) + * before the counter is setup. Write an arbitrary 0 in this + * case. + */ + value = 0; + } + lib_ring_buffer_align_ctx(ctx, lttng_alignof(value)); + chan->ops->event_write(ctx, &value, sizeof(value)); +} + +#if defined(CONFIG_PERF_EVENTS) && (LINUX_VERSION_CODE >= KERNEL_VERSION(3,0,99)) +static +void overflow_callback(struct perf_event *event, + struct perf_sample_data *data, + struct pt_regs *regs) +{ +} +#else +static +void overflow_callback(struct perf_event *event, int nmi, + struct perf_sample_data *data, + struct pt_regs *regs) +{ +} +#endif + +static +void lttng_destroy_perf_counter_field(struct lttng_ctx_field *field) +{ + struct perf_event **events = field->u.perf_counter->e; + int cpu; + + get_online_cpus(); + for_each_online_cpu(cpu) + perf_event_release_kernel(events[cpu]); + put_online_cpus(); +#ifdef CONFIG_HOTPLUG_CPU + unregister_cpu_notifier(&field->u.perf_counter->nb); +#endif + kfree(field->event_field.name); + kfree(field->u.perf_counter->attr); + kfree(events); + kfree(field->u.perf_counter); +} + +#ifdef CONFIG_HOTPLUG_CPU + +/** + * lttng_perf_counter_hp_callback - CPU hotplug callback + * @nb: notifier block + * @action: hotplug action to take + * @hcpu: CPU number + * + * Returns the success/failure of the operation. (%NOTIFY_OK, %NOTIFY_BAD) + * + * We can setup perf counters when the cpu is online (up prepare seems to be too + * soon). + */ +static +int lttng_perf_counter_cpu_hp_callback(struct notifier_block *nb, + unsigned long action, + void *hcpu) +{ + unsigned int cpu = (unsigned long) hcpu; + struct lttng_perf_counter_field *perf_field = + container_of(nb, struct lttng_perf_counter_field, nb); + struct perf_event **events = perf_field->e; + struct perf_event_attr *attr = perf_field->attr; + struct perf_event *pevent; + + if (!perf_field->hp_enable) + return NOTIFY_OK; + + switch (action) { + case CPU_ONLINE: + case CPU_ONLINE_FROZEN: + pevent = wrapper_perf_event_create_kernel_counter(attr, + cpu, NULL, overflow_callback); + if (!pevent || IS_ERR(pevent)) + return NOTIFY_BAD; + if (pevent->state == PERF_EVENT_STATE_ERROR) { + perf_event_release_kernel(pevent); + return NOTIFY_BAD; + } + barrier(); /* Create perf counter before setting event */ + events[cpu] = pevent; + break; + case CPU_UP_CANCELED: + case CPU_UP_CANCELED_FROZEN: + case CPU_DEAD: + case CPU_DEAD_FROZEN: + pevent = events[cpu]; + events[cpu] = NULL; + barrier(); /* NULLify event before perf counter teardown */ + perf_event_release_kernel(pevent); + break; + } + return NOTIFY_OK; +} + +#endif + +int lttng_add_perf_counter_to_ctx(uint32_t type, + uint64_t config, + const char *name, + struct lttng_ctx **ctx) +{ + struct lttng_ctx_field *field; + struct lttng_perf_counter_field *perf_field; + struct perf_event **events; + struct perf_event_attr *attr; + int ret; + int cpu; + char *name_alloc; + + events = kzalloc(num_possible_cpus() * sizeof(*events), GFP_KERNEL); + if (!events) + return -ENOMEM; + + attr = kzalloc(sizeof(struct perf_event_attr), GFP_KERNEL); + if (!attr) { + ret = -ENOMEM; + goto error_attr; + } + + attr->type = type; + attr->config = config; + attr->size = sizeof(struct perf_event_attr); + attr->pinned = 1; + attr->disabled = 0; + + perf_field = kzalloc(sizeof(struct lttng_perf_counter_field), GFP_KERNEL); + if (!perf_field) { + ret = -ENOMEM; + goto error_alloc_perf_field; + } + perf_field->e = events; + perf_field->attr = attr; + + name_alloc = kstrdup(name, GFP_KERNEL); + if (!name_alloc) { + ret = -ENOMEM; + goto name_alloc_error; + } + + field = lttng_append_context(ctx); + if (!field) { + ret = -ENOMEM; + goto append_context_error; + } + if (lttng_find_context(*ctx, name_alloc)) { + ret = -EEXIST; + goto find_error; + } + +#ifdef CONFIG_HOTPLUG_CPU + perf_field->nb.notifier_call = + lttng_perf_counter_cpu_hp_callback; + perf_field->nb.priority = 0; + register_cpu_notifier(&perf_field->nb); +#endif + + get_online_cpus(); + for_each_online_cpu(cpu) { + events[cpu] = wrapper_perf_event_create_kernel_counter(attr, + cpu, NULL, overflow_callback); + if (!events[cpu] || IS_ERR(events[cpu])) { + ret = -EINVAL; + goto counter_error; + } + if (events[cpu]->state == PERF_EVENT_STATE_ERROR) { + ret = -EBUSY; + goto counter_busy; + } + } + put_online_cpus(); + + field->destroy = lttng_destroy_perf_counter_field; + + field->event_field.name = name_alloc; + field->event_field.type.atype = atype_integer; + field->event_field.type.u.basic.integer.size = sizeof(uint64_t) * CHAR_BIT; + field->event_field.type.u.basic.integer.alignment = lttng_alignof(uint64_t) * CHAR_BIT; + field->event_field.type.u.basic.integer.signedness = lttng_is_signed_type(uint64_t); + field->event_field.type.u.basic.integer.reverse_byte_order = 0; + field->event_field.type.u.basic.integer.base = 10; + field->event_field.type.u.basic.integer.encoding = lttng_encode_none; + field->get_size = perf_counter_get_size; + field->record = perf_counter_record; + field->u.perf_counter = perf_field; + perf_field->hp_enable = 1; + + wrapper_vmalloc_sync_all(); + return 0; + +counter_busy: +counter_error: + for_each_online_cpu(cpu) { + if (events[cpu] && !IS_ERR(events[cpu])) + perf_event_release_kernel(events[cpu]); + } + put_online_cpus(); +#ifdef CONFIG_HOTPLUG_CPU + unregister_cpu_notifier(&perf_field->nb); +#endif +find_error: + lttng_remove_context_field(ctx, field); +append_context_error: + kfree(name_alloc); +name_alloc_error: + kfree(perf_field); +error_alloc_perf_field: + kfree(attr); +error_attr: + kfree(events); + return ret; +} + +MODULE_LICENSE("GPL and additional rights"); +MODULE_AUTHOR("Mathieu Desnoyers"); +MODULE_DESCRIPTION("Linux Trace Toolkit Perf Support"); --- linux-3.11.0.orig/ubuntu/lttng/lttng-ring-buffer-metadata-client.h +++ linux-3.11.0/ubuntu/lttng/lttng-ring-buffer-metadata-client.h @@ -0,0 +1,398 @@ +/* + * lttng-ring-buffer-client.h + * + * LTTng lib ring buffer client template. + * + * Copyright (C) 2010-2012 Mathieu Desnoyers + * + * 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; only + * version 2.1 of the License. + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include +#include +#include "wrapper/vmalloc.h" /* for wrapper_vmalloc_sync_all() */ +#include "lttng-events.h" +#include "lttng-tracer.h" + +struct metadata_packet_header { + uint32_t magic; /* 0x75D11D57 */ + uint8_t uuid[16]; /* Unique Universal Identifier */ + uint32_t checksum; /* 0 if unused */ + uint32_t content_size; /* in bits */ + uint32_t packet_size; /* in bits */ + uint8_t compression_scheme; /* 0 if unused */ + uint8_t encryption_scheme; /* 0 if unused */ + uint8_t checksum_scheme; /* 0 if unused */ + uint8_t major; /* CTF spec major version number */ + uint8_t minor; /* CTF spec minor version number */ + uint8_t header_end[0]; +}; + +struct metadata_record_header { + uint8_t header_end[0]; /* End of header */ +}; + +static const struct lib_ring_buffer_config client_config; + +static inline +u64 lib_ring_buffer_clock_read(struct channel *chan) +{ + return 0; +} + +static inline +unsigned char record_header_size(const struct lib_ring_buffer_config *config, + struct channel *chan, size_t offset, + size_t *pre_header_padding, + struct lib_ring_buffer_ctx *ctx) +{ + return 0; +} + +#include "wrapper/ringbuffer/api.h" + +static u64 client_ring_buffer_clock_read(struct channel *chan) +{ + return 0; +} + +static +size_t client_record_header_size(const struct lib_ring_buffer_config *config, + struct channel *chan, size_t offset, + size_t *pre_header_padding, + struct lib_ring_buffer_ctx *ctx) +{ + return 0; +} + +/** + * client_packet_header_size - called on buffer-switch to a new sub-buffer + * + * Return header size without padding after the structure. Don't use packed + * structure because gcc generates inefficient code on some architectures + * (powerpc, mips..) + */ +static size_t client_packet_header_size(void) +{ + return offsetof(struct metadata_packet_header, header_end); +} + +static void client_buffer_begin(struct lib_ring_buffer *buf, u64 tsc, + unsigned int subbuf_idx) +{ + struct channel *chan = buf->backend.chan; + struct metadata_packet_header *header = + (struct metadata_packet_header *) + lib_ring_buffer_offset_address(&buf->backend, + subbuf_idx * chan->backend.subbuf_size); + struct lttng_channel *lttng_chan = channel_get_private(chan); + struct lttng_session *session = lttng_chan->session; + + header->magic = TSDL_MAGIC_NUMBER; + memcpy(header->uuid, session->uuid.b, sizeof(session->uuid)); + header->checksum = 0; /* 0 if unused */ + header->content_size = 0xFFFFFFFF; /* in bits, for debugging */ + header->packet_size = 0xFFFFFFFF; /* in bits, for debugging */ + header->compression_scheme = 0; /* 0 if unused */ + header->encryption_scheme = 0; /* 0 if unused */ + header->checksum_scheme = 0; /* 0 if unused */ + header->major = CTF_SPEC_MAJOR; + header->minor = CTF_SPEC_MINOR; +} + +/* + * offset is assumed to never be 0 here : never deliver a completely empty + * subbuffer. data_size is between 1 and subbuf_size. + */ +static void client_buffer_end(struct lib_ring_buffer *buf, u64 tsc, + unsigned int subbuf_idx, unsigned long data_size) +{ + struct channel *chan = buf->backend.chan; + struct metadata_packet_header *header = + (struct metadata_packet_header *) + lib_ring_buffer_offset_address(&buf->backend, + subbuf_idx * chan->backend.subbuf_size); + unsigned long records_lost = 0; + + header->content_size = data_size * CHAR_BIT; /* in bits */ + header->packet_size = PAGE_ALIGN(data_size) * CHAR_BIT; /* in bits */ + /* + * We do not care about the records lost count, because the metadata + * channel waits and retry. + */ + (void) lib_ring_buffer_get_records_lost_full(&client_config, buf); + records_lost += lib_ring_buffer_get_records_lost_wrap(&client_config, buf); + records_lost += lib_ring_buffer_get_records_lost_big(&client_config, buf); + WARN_ON_ONCE(records_lost != 0); +} + +static int client_buffer_create(struct lib_ring_buffer *buf, void *priv, + int cpu, const char *name) +{ + return 0; +} + +static void client_buffer_finalize(struct lib_ring_buffer *buf, void *priv, int cpu) +{ +} + +static int client_timestamp_begin(const struct lib_ring_buffer_config *config, + struct lib_ring_buffer *buf, uint64_t *timestamp_begin) +{ + return -ENOSYS; +} + +static int client_timestamp_end(const struct lib_ring_buffer_config *config, + struct lib_ring_buffer *bufb, + uint64_t *timestamp_end) +{ + return -ENOSYS; +} + +static int client_events_discarded(const struct lib_ring_buffer_config *config, + struct lib_ring_buffer *bufb, + uint64_t *events_discarded) +{ + return -ENOSYS; +} + +static int client_current_timestamp(const struct lib_ring_buffer_config *config, + struct lib_ring_buffer *bufb, + uint64_t *ts) +{ + return -ENOSYS; +} + +static int client_content_size(const struct lib_ring_buffer_config *config, + struct lib_ring_buffer *bufb, + uint64_t *content_size) +{ + return -ENOSYS; +} + +static int client_packet_size(const struct lib_ring_buffer_config *config, + struct lib_ring_buffer *bufb, + uint64_t *packet_size) +{ + return -ENOSYS; +} + +static int client_stream_id(const struct lib_ring_buffer_config *config, + struct lib_ring_buffer *bufb, + uint64_t *stream_id) +{ + return -ENOSYS; +} + +static const struct lib_ring_buffer_config client_config = { + .cb.ring_buffer_clock_read = client_ring_buffer_clock_read, + .cb.record_header_size = client_record_header_size, + .cb.subbuffer_header_size = client_packet_header_size, + .cb.buffer_begin = client_buffer_begin, + .cb.buffer_end = client_buffer_end, + .cb.buffer_create = client_buffer_create, + .cb.buffer_finalize = client_buffer_finalize, + + .tsc_bits = 0, + .alloc = RING_BUFFER_ALLOC_GLOBAL, + .sync = RING_BUFFER_SYNC_GLOBAL, + .mode = RING_BUFFER_MODE_TEMPLATE, + .backend = RING_BUFFER_PAGE, + .output = RING_BUFFER_OUTPUT_TEMPLATE, + .oops = RING_BUFFER_OOPS_CONSISTENCY, + .ipi = RING_BUFFER_IPI_BARRIER, + .wakeup = RING_BUFFER_WAKEUP_BY_TIMER, +}; + +static +struct channel *_channel_create(const char *name, + struct lttng_channel *lttng_chan, void *buf_addr, + size_t subbuf_size, size_t num_subbuf, + unsigned int switch_timer_interval, + unsigned int read_timer_interval) +{ + lttng_chan->ops->timestamp_begin = client_timestamp_begin; + lttng_chan->ops->timestamp_end = client_timestamp_end; + lttng_chan->ops->events_discarded = client_events_discarded; + lttng_chan->ops->content_size = client_content_size; + lttng_chan->ops->packet_size = client_packet_size; + lttng_chan->ops->stream_id = client_stream_id; + lttng_chan->ops->current_timestamp = client_current_timestamp; + + return channel_create(&client_config, name, lttng_chan, buf_addr, + subbuf_size, num_subbuf, switch_timer_interval, + read_timer_interval); +} + +static +void lttng_channel_destroy(struct channel *chan) +{ + channel_destroy(chan); +} + +static +struct lib_ring_buffer *lttng_buffer_read_open(struct channel *chan) +{ + struct lib_ring_buffer *buf; + + buf = channel_get_ring_buffer(&client_config, chan, 0); + if (!lib_ring_buffer_open_read(buf)) + return buf; + return NULL; +} + +static +int lttng_buffer_has_read_closed_stream(struct channel *chan) +{ + struct lib_ring_buffer *buf; + int cpu; + + for_each_channel_cpu(cpu, chan) { + buf = channel_get_ring_buffer(&client_config, chan, cpu); + if (!atomic_long_read(&buf->active_readers)) + return 1; + } + return 0; +} + +static +void lttng_buffer_read_close(struct lib_ring_buffer *buf) +{ + lib_ring_buffer_release_read(buf); +} + +static +int lttng_event_reserve(struct lib_ring_buffer_ctx *ctx, uint32_t event_id) +{ + return lib_ring_buffer_reserve(&client_config, ctx); +} + +static +void lttng_event_commit(struct lib_ring_buffer_ctx *ctx) +{ + lib_ring_buffer_commit(&client_config, ctx); +} + +static +void lttng_event_write(struct lib_ring_buffer_ctx *ctx, const void *src, + size_t len) +{ + lib_ring_buffer_write(&client_config, ctx, src, len); +} + +static +void lttng_event_write_from_user(struct lib_ring_buffer_ctx *ctx, + const void __user *src, size_t len) +{ + lib_ring_buffer_copy_from_user_inatomic(&client_config, ctx, src, len); +} + +static +void lttng_event_memset(struct lib_ring_buffer_ctx *ctx, + int c, size_t len) +{ + lib_ring_buffer_memset(&client_config, ctx, c, len); +} + +static +size_t lttng_packet_avail_size(struct channel *chan) + +{ + unsigned long o_begin; + struct lib_ring_buffer *buf; + + buf = chan->backend.buf; /* Only for global buffer ! */ + o_begin = v_read(&client_config, &buf->offset); + if (subbuf_offset(o_begin, chan) != 0) { + return chan->backend.subbuf_size - subbuf_offset(o_begin, chan); + } else { + return chan->backend.subbuf_size - subbuf_offset(o_begin, chan) + - sizeof(struct metadata_packet_header); + } +} + +static +wait_queue_head_t *lttng_get_writer_buf_wait_queue(struct channel *chan, int cpu) +{ + struct lib_ring_buffer *buf = channel_get_ring_buffer(&client_config, + chan, cpu); + return &buf->write_wait; +} + +static +wait_queue_head_t *lttng_get_hp_wait_queue(struct channel *chan) +{ + return &chan->hp_wait; +} + +static +int lttng_is_finalized(struct channel *chan) +{ + return lib_ring_buffer_channel_is_finalized(chan); +} + +static +int lttng_is_disabled(struct channel *chan) +{ + return lib_ring_buffer_channel_is_disabled(chan); +} + +static struct lttng_transport lttng_relay_transport = { + .name = "relay-" RING_BUFFER_MODE_TEMPLATE_STRING, + .owner = THIS_MODULE, + .ops = { + .channel_create = _channel_create, + .channel_destroy = lttng_channel_destroy, + .buffer_read_open = lttng_buffer_read_open, + .buffer_has_read_closed_stream = + lttng_buffer_has_read_closed_stream, + .buffer_read_close = lttng_buffer_read_close, + .event_reserve = lttng_event_reserve, + .event_commit = lttng_event_commit, + .event_write_from_user = lttng_event_write_from_user, + .event_memset = lttng_event_memset, + .event_write = lttng_event_write, + .packet_avail_size = lttng_packet_avail_size, + .get_writer_buf_wait_queue = lttng_get_writer_buf_wait_queue, + .get_hp_wait_queue = lttng_get_hp_wait_queue, + .is_finalized = lttng_is_finalized, + .is_disabled = lttng_is_disabled, + }, +}; + +static int __init lttng_ring_buffer_client_init(void) +{ + /* + * This vmalloc sync all also takes care of the lib ring buffer + * vmalloc'd module pages when it is built as a module into LTTng. + */ + wrapper_vmalloc_sync_all(); + lttng_transport_register(<tng_relay_transport); + return 0; +} + +module_init(lttng_ring_buffer_client_init); + +static void __exit lttng_ring_buffer_client_exit(void) +{ + lttng_transport_unregister(<tng_relay_transport); +} + +module_exit(lttng_ring_buffer_client_exit); + +MODULE_LICENSE("GPL and additional rights"); +MODULE_AUTHOR("Mathieu Desnoyers"); +MODULE_DESCRIPTION("LTTng ring buffer " RING_BUFFER_MODE_TEMPLATE_STRING + " client"); --- linux-3.11.0.orig/ubuntu/lttng/lttng-events.c +++ linux-3.11.0/ubuntu/lttng/lttng-events.c @@ -0,0 +1,1254 @@ +/* + * lttng-events.c + * + * Holds LTTng per-session event registry. + * + * Copyright (C) 2010-2012 Mathieu Desnoyers + * + * 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; only + * version 2.1 of the License. + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include +#include +#include +#include +#include +#include +#include +#include "wrapper/uuid.h" +#include "wrapper/vmalloc.h" /* for wrapper_vmalloc_sync_all() */ +#include "wrapper/random.h" +#include "wrapper/tracepoint.h" +#include "lttng-events.h" +#include "lttng-tracer.h" +#include "lttng-abi-old.h" + +#define METADATA_CACHE_DEFAULT_SIZE 4096 + +static LIST_HEAD(sessions); +static LIST_HEAD(lttng_transport_list); +/* + * Protect the sessions and metadata caches. + */ +static DEFINE_MUTEX(sessions_mutex); +static struct kmem_cache *event_cache; + +static void _lttng_event_destroy(struct lttng_event *event); +static void _lttng_channel_destroy(struct lttng_channel *chan); +static int _lttng_event_unregister(struct lttng_event *event); +static +int _lttng_event_metadata_statedump(struct lttng_session *session, + struct lttng_channel *chan, + struct lttng_event *event); +static +int _lttng_session_metadata_statedump(struct lttng_session *session); +static +void _lttng_metadata_channel_hangup(struct lttng_metadata_stream *stream); + +void synchronize_trace(void) +{ + synchronize_sched(); +#ifdef CONFIG_PREEMPT_RT + synchronize_rcu(); +#endif +} + +struct lttng_session *lttng_session_create(void) +{ + struct lttng_session *session; + struct lttng_metadata_cache *metadata_cache; + + mutex_lock(&sessions_mutex); + session = kzalloc(sizeof(struct lttng_session), GFP_KERNEL); + if (!session) + goto err; + INIT_LIST_HEAD(&session->chan); + INIT_LIST_HEAD(&session->events); + uuid_le_gen(&session->uuid); + + metadata_cache = kzalloc(sizeof(struct lttng_metadata_cache), + GFP_KERNEL); + if (!metadata_cache) + goto err_free_session; + metadata_cache->data = kzalloc(METADATA_CACHE_DEFAULT_SIZE, + GFP_KERNEL); + if (!metadata_cache->data) + goto err_free_cache; + metadata_cache->cache_alloc = METADATA_CACHE_DEFAULT_SIZE; + kref_init(&metadata_cache->refcount); + session->metadata_cache = metadata_cache; + INIT_LIST_HEAD(&metadata_cache->metadata_stream); + list_add(&session->list, &sessions); + mutex_unlock(&sessions_mutex); + return session; + +err_free_cache: + kfree(metadata_cache); +err_free_session: + kfree(session); +err: + mutex_unlock(&sessions_mutex); + return NULL; +} + +void metadata_cache_destroy(struct kref *kref) +{ + struct lttng_metadata_cache *cache = + container_of(kref, struct lttng_metadata_cache, refcount); + kfree(cache->data); + kfree(cache); +} + +void lttng_session_destroy(struct lttng_session *session) +{ + struct lttng_channel *chan, *tmpchan; + struct lttng_event *event, *tmpevent; + struct lttng_metadata_stream *metadata_stream; + int ret; + + mutex_lock(&sessions_mutex); + ACCESS_ONCE(session->active) = 0; + list_for_each_entry(chan, &session->chan, list) { + ret = lttng_syscalls_unregister(chan); + WARN_ON(ret); + } + list_for_each_entry(event, &session->events, list) { + ret = _lttng_event_unregister(event); + WARN_ON(ret); + } + synchronize_trace(); /* Wait for in-flight events to complete */ + list_for_each_entry_safe(event, tmpevent, &session->events, list) + _lttng_event_destroy(event); + list_for_each_entry_safe(chan, tmpchan, &session->chan, list) { + BUG_ON(chan->channel_type == METADATA_CHANNEL); + _lttng_channel_destroy(chan); + } + list_for_each_entry(metadata_stream, &session->metadata_cache->metadata_stream, list) + _lttng_metadata_channel_hangup(metadata_stream); + kref_put(&session->metadata_cache->refcount, metadata_cache_destroy); + list_del(&session->list); + mutex_unlock(&sessions_mutex); + kfree(session); +} + +int lttng_session_enable(struct lttng_session *session) +{ + int ret = 0; + struct lttng_channel *chan; + + mutex_lock(&sessions_mutex); + if (session->active) { + ret = -EBUSY; + goto end; + } + + /* + * Snapshot the number of events per channel to know the type of header + * we need to use. + */ + list_for_each_entry(chan, &session->chan, list) { + if (chan->header_type) + continue; /* don't change it if session stop/restart */ + if (chan->free_event_id < 31) + chan->header_type = 1; /* compact */ + else + chan->header_type = 2; /* large */ + } + + ACCESS_ONCE(session->active) = 1; + ACCESS_ONCE(session->been_active) = 1; + ret = _lttng_session_metadata_statedump(session); + if (ret) { + ACCESS_ONCE(session->active) = 0; + goto end; + } + ret = lttng_statedump_start(session); + if (ret) + ACCESS_ONCE(session->active) = 0; +end: + mutex_unlock(&sessions_mutex); + return ret; +} + +int lttng_session_disable(struct lttng_session *session) +{ + int ret = 0; + + mutex_lock(&sessions_mutex); + if (!session->active) { + ret = -EBUSY; + goto end; + } + ACCESS_ONCE(session->active) = 0; +end: + mutex_unlock(&sessions_mutex); + return ret; +} + +int lttng_channel_enable(struct lttng_channel *channel) +{ + int old; + + if (channel->channel_type == METADATA_CHANNEL) + return -EPERM; + old = xchg(&channel->enabled, 1); + if (old) + return -EEXIST; + return 0; +} + +int lttng_channel_disable(struct lttng_channel *channel) +{ + int old; + + if (channel->channel_type == METADATA_CHANNEL) + return -EPERM; + old = xchg(&channel->enabled, 0); + if (!old) + return -EEXIST; + return 0; +} + +int lttng_event_enable(struct lttng_event *event) +{ + int old; + + if (event->chan->channel_type == METADATA_CHANNEL) + return -EPERM; + old = xchg(&event->enabled, 1); + if (old) + return -EEXIST; + return 0; +} + +int lttng_event_disable(struct lttng_event *event) +{ + int old; + + if (event->chan->channel_type == METADATA_CHANNEL) + return -EPERM; + old = xchg(&event->enabled, 0); + if (!old) + return -EEXIST; + return 0; +} + +static struct lttng_transport *lttng_transport_find(const char *name) +{ + struct lttng_transport *transport; + + list_for_each_entry(transport, <tng_transport_list, node) { + if (!strcmp(transport->name, name)) + return transport; + } + return NULL; +} + +struct lttng_channel *lttng_channel_create(struct lttng_session *session, + const char *transport_name, + void *buf_addr, + size_t subbuf_size, size_t num_subbuf, + unsigned int switch_timer_interval, + unsigned int read_timer_interval, + enum channel_type channel_type) +{ + struct lttng_channel *chan; + struct lttng_transport *transport = NULL; + + mutex_lock(&sessions_mutex); + if (session->been_active && channel_type != METADATA_CHANNEL) + goto active; /* Refuse to add channel to active session */ + transport = lttng_transport_find(transport_name); + if (!transport) { + printk(KERN_WARNING "LTTng transport %s not found\n", + transport_name); + goto notransport; + } + if (!try_module_get(transport->owner)) { + printk(KERN_WARNING "LTT : Can't lock transport module.\n"); + goto notransport; + } + chan = kzalloc(sizeof(struct lttng_channel), GFP_KERNEL); + if (!chan) + goto nomem; + chan->session = session; + chan->id = session->free_chan_id++; + chan->ops = &transport->ops; + /* + * Note: the channel creation op already writes into the packet + * headers. Therefore the "chan" information used as input + * should be already accessible. + */ + chan->chan = transport->ops.channel_create(transport_name, + chan, buf_addr, subbuf_size, num_subbuf, + switch_timer_interval, read_timer_interval); + if (!chan->chan) + goto create_error; + chan->enabled = 1; + chan->transport = transport; + chan->channel_type = channel_type; + list_add(&chan->list, &session->chan); + mutex_unlock(&sessions_mutex); + return chan; + +create_error: + kfree(chan); +nomem: + if (transport) + module_put(transport->owner); +notransport: +active: + mutex_unlock(&sessions_mutex); + return NULL; +} + +/* + * Only used internally at session destruction for per-cpu channels, and + * when metadata channel is released. + * Needs to be called with sessions mutex held. + */ +static +void _lttng_channel_destroy(struct lttng_channel *chan) +{ + chan->ops->channel_destroy(chan->chan); + module_put(chan->transport->owner); + list_del(&chan->list); + lttng_destroy_context(chan->ctx); + kfree(chan); +} + +void lttng_metadata_channel_destroy(struct lttng_channel *chan) +{ + BUG_ON(chan->channel_type != METADATA_CHANNEL); + + /* Protect the metadata cache with the sessions_mutex. */ + mutex_lock(&sessions_mutex); + _lttng_channel_destroy(chan); + mutex_unlock(&sessions_mutex); +} +EXPORT_SYMBOL_GPL(lttng_metadata_channel_destroy); + +static +void _lttng_metadata_channel_hangup(struct lttng_metadata_stream *stream) +{ + stream->finalized = 1; + wake_up_interruptible(&stream->read_wait); +} + +/* + * Supports event creation while tracing session is active. + */ +struct lttng_event *lttng_event_create(struct lttng_channel *chan, + struct lttng_kernel_event *event_param, + void *filter, + const struct lttng_event_desc *internal_desc) +{ + struct lttng_event *event; + int ret; + + mutex_lock(&sessions_mutex); + if (chan->free_event_id == -1U) + goto full; + /* + * This is O(n^2) (for each event, the loop is called at event + * creation). Might require a hash if we have lots of events. + */ + list_for_each_entry(event, &chan->session->events, list) + if (!strcmp(event->desc->name, event_param->name)) + goto exist; + event = kmem_cache_zalloc(event_cache, GFP_KERNEL); + if (!event) + goto cache_error; + event->chan = chan; + event->filter = filter; + event->id = chan->free_event_id++; + event->enabled = 1; + event->instrumentation = event_param->instrumentation; + /* Populate lttng_event structure before tracepoint registration. */ + smp_wmb(); + switch (event_param->instrumentation) { + case LTTNG_KERNEL_TRACEPOINT: + event->desc = lttng_event_get(event_param->name); + if (!event->desc) + goto register_error; + ret = kabi_2635_tracepoint_probe_register(event_param->name, + event->desc->probe_callback, + event); + if (ret) + goto register_error; + break; + case LTTNG_KERNEL_KPROBE: + ret = lttng_kprobes_register(event_param->name, + event_param->u.kprobe.symbol_name, + event_param->u.kprobe.offset, + event_param->u.kprobe.addr, + event); + if (ret) + goto register_error; + ret = try_module_get(event->desc->owner); + WARN_ON_ONCE(!ret); + break; + case LTTNG_KERNEL_KRETPROBE: + { + struct lttng_event *event_return; + + /* kretprobe defines 2 events */ + event_return = + kmem_cache_zalloc(event_cache, GFP_KERNEL); + if (!event_return) + goto register_error; + event_return->chan = chan; + event_return->filter = filter; + event_return->id = chan->free_event_id++; + event_return->enabled = 1; + event_return->instrumentation = event_param->instrumentation; + /* + * Populate lttng_event structure before kretprobe registration. + */ + smp_wmb(); + ret = lttng_kretprobes_register(event_param->name, + event_param->u.kretprobe.symbol_name, + event_param->u.kretprobe.offset, + event_param->u.kretprobe.addr, + event, event_return); + if (ret) { + kmem_cache_free(event_cache, event_return); + goto register_error; + } + /* Take 2 refs on the module: one per event. */ + ret = try_module_get(event->desc->owner); + WARN_ON_ONCE(!ret); + ret = try_module_get(event->desc->owner); + WARN_ON_ONCE(!ret); + ret = _lttng_event_metadata_statedump(chan->session, chan, + event_return); + if (ret) { + kmem_cache_free(event_cache, event_return); + module_put(event->desc->owner); + module_put(event->desc->owner); + goto statedump_error; + } + list_add(&event_return->list, &chan->session->events); + break; + } + case LTTNG_KERNEL_FUNCTION: + ret = lttng_ftrace_register(event_param->name, + event_param->u.ftrace.symbol_name, + event); + if (ret) + goto register_error; + ret = try_module_get(event->desc->owner); + WARN_ON_ONCE(!ret); + break; + case LTTNG_KERNEL_NOOP: + event->desc = internal_desc; + if (!event->desc) + goto register_error; + break; + default: + WARN_ON_ONCE(1); + } + ret = _lttng_event_metadata_statedump(chan->session, chan, event); + if (ret) + goto statedump_error; + list_add(&event->list, &chan->session->events); + mutex_unlock(&sessions_mutex); + return event; + +statedump_error: + /* If a statedump error occurs, events will not be readable. */ +register_error: + kmem_cache_free(event_cache, event); +cache_error: +exist: +full: + mutex_unlock(&sessions_mutex); + return NULL; +} + +/* + * Only used internally at session destruction. + */ +int _lttng_event_unregister(struct lttng_event *event) +{ + int ret = -EINVAL; + + switch (event->instrumentation) { + case LTTNG_KERNEL_TRACEPOINT: + ret = kabi_2635_tracepoint_probe_unregister(event->desc->name, + event->desc->probe_callback, + event); + if (ret) + return ret; + break; + case LTTNG_KERNEL_KPROBE: + lttng_kprobes_unregister(event); + ret = 0; + break; + case LTTNG_KERNEL_KRETPROBE: + lttng_kretprobes_unregister(event); + ret = 0; + break; + case LTTNG_KERNEL_FUNCTION: + lttng_ftrace_unregister(event); + ret = 0; + break; + case LTTNG_KERNEL_NOOP: + ret = 0; + break; + default: + WARN_ON_ONCE(1); + } + return ret; +} + +/* + * Only used internally at session destruction. + */ +static +void _lttng_event_destroy(struct lttng_event *event) +{ + switch (event->instrumentation) { + case LTTNG_KERNEL_TRACEPOINT: + lttng_event_put(event->desc); + break; + case LTTNG_KERNEL_KPROBE: + module_put(event->desc->owner); + lttng_kprobes_destroy_private(event); + break; + case LTTNG_KERNEL_KRETPROBE: + module_put(event->desc->owner); + lttng_kretprobes_destroy_private(event); + break; + case LTTNG_KERNEL_FUNCTION: + module_put(event->desc->owner); + lttng_ftrace_destroy_private(event); + break; + case LTTNG_KERNEL_NOOP: + break; + default: + WARN_ON_ONCE(1); + } + list_del(&event->list); + lttng_destroy_context(event->ctx); + kmem_cache_free(event_cache, event); +} + +/* + * Serialize at most one packet worth of metadata into a metadata + * channel. + * We have exclusive access to our metadata buffer (protected by the + * sessions_mutex), so we can do racy operations such as looking for + * remaining space left in packet and write, since mutual exclusion + * protects us from concurrent writes. + * Returns the number of bytes written in the channel, 0 if no data + * was written and a negative value on error. + */ +int lttng_metadata_output_channel(struct lttng_metadata_stream *stream, + struct channel *chan) +{ + struct lib_ring_buffer_ctx ctx; + int ret = 0; + size_t len, reserve_len; + + /* + * Ensure we support mutiple get_next / put sequences followed + * by put_next. + */ + WARN_ON(stream->metadata_in < stream->metadata_out); + if (stream->metadata_in != stream->metadata_out) + return 0; + + len = stream->metadata_cache->metadata_written - + stream->metadata_in; + if (!len) + return 0; + reserve_len = min_t(size_t, + stream->transport->ops.packet_avail_size(chan), + len); + lib_ring_buffer_ctx_init(&ctx, chan, NULL, reserve_len, + sizeof(char), -1); + /* + * If reservation failed, return an error to the caller. + */ + ret = stream->transport->ops.event_reserve(&ctx, 0); + if (ret != 0) { + printk(KERN_WARNING "LTTng: Metadata event reservation failed\n"); + goto end; + } + stream->transport->ops.event_write(&ctx, + stream->metadata_cache->data + stream->metadata_in, + reserve_len); + stream->transport->ops.event_commit(&ctx); + stream->metadata_in += reserve_len; + ret = reserve_len; + +end: + return ret; +} + +/* + * Write the metadata to the metadata cache. + * Must be called with sessions_mutex held. + */ +int lttng_metadata_printf(struct lttng_session *session, + const char *fmt, ...) +{ + char *str; + size_t len; + va_list ap; + struct lttng_metadata_stream *stream; + + WARN_ON_ONCE(!ACCESS_ONCE(session->active)); + + va_start(ap, fmt); + str = kvasprintf(GFP_KERNEL, fmt, ap); + va_end(ap); + if (!str) + return -ENOMEM; + + len = strlen(str); + if (session->metadata_cache->metadata_written + len > + session->metadata_cache->cache_alloc) { + char *tmp_cache_realloc; + unsigned int tmp_cache_alloc_size; + + tmp_cache_alloc_size = max_t(unsigned int, + session->metadata_cache->cache_alloc + len, + session->metadata_cache->cache_alloc << 1); + tmp_cache_realloc = krealloc(session->metadata_cache->data, + tmp_cache_alloc_size, GFP_KERNEL); + if (!tmp_cache_realloc) + goto err; + session->metadata_cache->cache_alloc = tmp_cache_alloc_size; + session->metadata_cache->data = tmp_cache_realloc; + } + memcpy(session->metadata_cache->data + + session->metadata_cache->metadata_written, + str, len); + session->metadata_cache->metadata_written += len; + kfree(str); + + list_for_each_entry(stream, &session->metadata_cache->metadata_stream, list) + wake_up_interruptible(&stream->read_wait); + + return 0; + +err: + kfree(str); + return -ENOMEM; +} + +/* + * Must be called with sessions_mutex held. + */ +static +int _lttng_field_statedump(struct lttng_session *session, + const struct lttng_event_field *field) +{ + int ret = 0; + + switch (field->type.atype) { + case atype_integer: + ret = lttng_metadata_printf(session, + " integer { size = %u; align = %u; signed = %u; encoding = %s; base = %u;%s } _%s;\n", + field->type.u.basic.integer.size, + field->type.u.basic.integer.alignment, + field->type.u.basic.integer.signedness, + (field->type.u.basic.integer.encoding == lttng_encode_none) + ? "none" + : (field->type.u.basic.integer.encoding == lttng_encode_UTF8) + ? "UTF8" + : "ASCII", + field->type.u.basic.integer.base, +#ifdef __BIG_ENDIAN + field->type.u.basic.integer.reverse_byte_order ? " byte_order = le;" : "", +#else + field->type.u.basic.integer.reverse_byte_order ? " byte_order = be;" : "", +#endif + field->name); + break; + case atype_enum: + ret = lttng_metadata_printf(session, + " %s _%s;\n", + field->type.u.basic.enumeration.name, + field->name); + break; + case atype_array: + { + const struct lttng_basic_type *elem_type; + + elem_type = &field->type.u.array.elem_type; + ret = lttng_metadata_printf(session, + " integer { size = %u; align = %u; signed = %u; encoding = %s; base = %u;%s } _%s[%u];\n", + elem_type->u.basic.integer.size, + elem_type->u.basic.integer.alignment, + elem_type->u.basic.integer.signedness, + (elem_type->u.basic.integer.encoding == lttng_encode_none) + ? "none" + : (elem_type->u.basic.integer.encoding == lttng_encode_UTF8) + ? "UTF8" + : "ASCII", + elem_type->u.basic.integer.base, +#ifdef __BIG_ENDIAN + elem_type->u.basic.integer.reverse_byte_order ? " byte_order = le;" : "", +#else + elem_type->u.basic.integer.reverse_byte_order ? " byte_order = be;" : "", +#endif + field->name, field->type.u.array.length); + break; + } + case atype_sequence: + { + const struct lttng_basic_type *elem_type; + const struct lttng_basic_type *length_type; + + elem_type = &field->type.u.sequence.elem_type; + length_type = &field->type.u.sequence.length_type; + ret = lttng_metadata_printf(session, + " integer { size = %u; align = %u; signed = %u; encoding = %s; base = %u;%s } __%s_length;\n", + length_type->u.basic.integer.size, + (unsigned int) length_type->u.basic.integer.alignment, + length_type->u.basic.integer.signedness, + (length_type->u.basic.integer.encoding == lttng_encode_none) + ? "none" + : ((length_type->u.basic.integer.encoding == lttng_encode_UTF8) + ? "UTF8" + : "ASCII"), + length_type->u.basic.integer.base, +#ifdef __BIG_ENDIAN + length_type->u.basic.integer.reverse_byte_order ? " byte_order = le;" : "", +#else + length_type->u.basic.integer.reverse_byte_order ? " byte_order = be;" : "", +#endif + field->name); + if (ret) + return ret; + + ret = lttng_metadata_printf(session, + " integer { size = %u; align = %u; signed = %u; encoding = %s; base = %u;%s } _%s[ __%s_length ];\n", + elem_type->u.basic.integer.size, + (unsigned int) elem_type->u.basic.integer.alignment, + elem_type->u.basic.integer.signedness, + (elem_type->u.basic.integer.encoding == lttng_encode_none) + ? "none" + : ((elem_type->u.basic.integer.encoding == lttng_encode_UTF8) + ? "UTF8" + : "ASCII"), + elem_type->u.basic.integer.base, +#ifdef __BIG_ENDIAN + elem_type->u.basic.integer.reverse_byte_order ? " byte_order = le;" : "", +#else + elem_type->u.basic.integer.reverse_byte_order ? " byte_order = be;" : "", +#endif + field->name, + field->name); + break; + } + + case atype_string: + /* Default encoding is UTF8 */ + ret = lttng_metadata_printf(session, + " string%s _%s;\n", + field->type.u.basic.string.encoding == lttng_encode_ASCII ? + " { encoding = ASCII; }" : "", + field->name); + break; + default: + WARN_ON_ONCE(1); + return -EINVAL; + } + return ret; +} + +static +int _lttng_context_metadata_statedump(struct lttng_session *session, + struct lttng_ctx *ctx) +{ + int ret = 0; + int i; + + if (!ctx) + return 0; + for (i = 0; i < ctx->nr_fields; i++) { + const struct lttng_ctx_field *field = &ctx->fields[i]; + + ret = _lttng_field_statedump(session, &field->event_field); + if (ret) + return ret; + } + return ret; +} + +static +int _lttng_fields_metadata_statedump(struct lttng_session *session, + struct lttng_event *event) +{ + const struct lttng_event_desc *desc = event->desc; + int ret = 0; + int i; + + for (i = 0; i < desc->nr_fields; i++) { + const struct lttng_event_field *field = &desc->fields[i]; + + ret = _lttng_field_statedump(session, field); + if (ret) + return ret; + } + return ret; +} + +/* + * Must be called with sessions_mutex held. + */ +static +int _lttng_event_metadata_statedump(struct lttng_session *session, + struct lttng_channel *chan, + struct lttng_event *event) +{ + int ret = 0; + + if (event->metadata_dumped || !ACCESS_ONCE(session->active)) + return 0; + if (chan->channel_type == METADATA_CHANNEL) + return 0; + + ret = lttng_metadata_printf(session, + "event {\n" + " name = %s;\n" + " id = %u;\n" + " stream_id = %u;\n", + event->desc->name, + event->id, + event->chan->id); + if (ret) + goto end; + + if (event->ctx) { + ret = lttng_metadata_printf(session, + " context := struct {\n"); + if (ret) + goto end; + } + ret = _lttng_context_metadata_statedump(session, event->ctx); + if (ret) + goto end; + if (event->ctx) { + ret = lttng_metadata_printf(session, + " };\n"); + if (ret) + goto end; + } + + ret = lttng_metadata_printf(session, + " fields := struct {\n" + ); + if (ret) + goto end; + + ret = _lttng_fields_metadata_statedump(session, event); + if (ret) + goto end; + + /* + * LTTng space reservation can only reserve multiples of the + * byte size. + */ + ret = lttng_metadata_printf(session, + " };\n" + "};\n\n"); + if (ret) + goto end; + + event->metadata_dumped = 1; +end: + return ret; + +} + +/* + * Must be called with sessions_mutex held. + */ +static +int _lttng_channel_metadata_statedump(struct lttng_session *session, + struct lttng_channel *chan) +{ + int ret = 0; + + if (chan->metadata_dumped || !ACCESS_ONCE(session->active)) + return 0; + + if (chan->channel_type == METADATA_CHANNEL) + return 0; + + WARN_ON_ONCE(!chan->header_type); + ret = lttng_metadata_printf(session, + "stream {\n" + " id = %u;\n" + " event.header := %s;\n" + " packet.context := struct packet_context;\n", + chan->id, + chan->header_type == 1 ? "struct event_header_compact" : + "struct event_header_large"); + if (ret) + goto end; + + if (chan->ctx) { + ret = lttng_metadata_printf(session, + " event.context := struct {\n"); + if (ret) + goto end; + } + ret = _lttng_context_metadata_statedump(session, chan->ctx); + if (ret) + goto end; + if (chan->ctx) { + ret = lttng_metadata_printf(session, + " };\n"); + if (ret) + goto end; + } + + ret = lttng_metadata_printf(session, + "};\n\n"); + + chan->metadata_dumped = 1; +end: + return ret; +} + +/* + * Must be called with sessions_mutex held. + */ +static +int _lttng_stream_packet_context_declare(struct lttng_session *session) +{ + return lttng_metadata_printf(session, + "struct packet_context {\n" + " uint64_clock_monotonic_t timestamp_begin;\n" + " uint64_clock_monotonic_t timestamp_end;\n" + " uint64_t content_size;\n" + " uint64_t packet_size;\n" + " unsigned long events_discarded;\n" + " uint32_t cpu_id;\n" + "};\n\n" + ); +} + +/* + * Compact header: + * id: range: 0 - 30. + * id 31 is reserved to indicate an extended header. + * + * Large header: + * id: range: 0 - 65534. + * id 65535 is reserved to indicate an extended header. + * + * Must be called with sessions_mutex held. + */ +static +int _lttng_event_header_declare(struct lttng_session *session) +{ + return lttng_metadata_printf(session, + "struct event_header_compact {\n" + " enum : uint5_t { compact = 0 ... 30, extended = 31 } id;\n" + " variant {\n" + " struct {\n" + " uint27_clock_monotonic_t timestamp;\n" + " } compact;\n" + " struct {\n" + " uint32_t id;\n" + " uint64_clock_monotonic_t timestamp;\n" + " } extended;\n" + " } v;\n" + "} align(%u);\n" + "\n" + "struct event_header_large {\n" + " enum : uint16_t { compact = 0 ... 65534, extended = 65535 } id;\n" + " variant {\n" + " struct {\n" + " uint32_clock_monotonic_t timestamp;\n" + " } compact;\n" + " struct {\n" + " uint32_t id;\n" + " uint64_clock_monotonic_t timestamp;\n" + " } extended;\n" + " } v;\n" + "} align(%u);\n\n", + lttng_alignof(uint32_t) * CHAR_BIT, + lttng_alignof(uint16_t) * CHAR_BIT + ); +} + + /* + * Approximation of NTP time of day to clock monotonic correlation, + * taken at start of trace. + * Yes, this is only an approximation. Yes, we can (and will) do better + * in future versions. + */ +static +uint64_t measure_clock_offset(void) +{ + uint64_t offset, monotonic[2], realtime; + struct timespec rts = { 0, 0 }; + unsigned long flags; + + /* Disable interrupts to increase correlation precision. */ + local_irq_save(flags); + monotonic[0] = trace_clock_read64(); + getnstimeofday(&rts); + monotonic[1] = trace_clock_read64(); + local_irq_restore(flags); + + offset = (monotonic[0] + monotonic[1]) >> 1; + realtime = (uint64_t) rts.tv_sec * NSEC_PER_SEC; + realtime += rts.tv_nsec; + offset = realtime - offset; + return offset; +} + +/* + * Output metadata into this session's metadata buffers. + * Must be called with sessions_mutex held. + */ +static +int _lttng_session_metadata_statedump(struct lttng_session *session) +{ + unsigned char *uuid_c = session->uuid.b; + unsigned char uuid_s[37], clock_uuid_s[BOOT_ID_LEN]; + struct lttng_channel *chan; + struct lttng_event *event; + int ret = 0; + + if (!ACCESS_ONCE(session->active)) + return 0; + if (session->metadata_dumped) + goto skip_session; + + snprintf(uuid_s, sizeof(uuid_s), + "%02x%02x%02x%02x-%02x%02x-%02x%02x-%02x%02x-%02x%02x%02x%02x%02x%02x", + uuid_c[0], uuid_c[1], uuid_c[2], uuid_c[3], + uuid_c[4], uuid_c[5], uuid_c[6], uuid_c[7], + uuid_c[8], uuid_c[9], uuid_c[10], uuid_c[11], + uuid_c[12], uuid_c[13], uuid_c[14], uuid_c[15]); + + ret = lttng_metadata_printf(session, + "typealias integer { size = 8; align = %u; signed = false; } := uint8_t;\n" + "typealias integer { size = 16; align = %u; signed = false; } := uint16_t;\n" + "typealias integer { size = 32; align = %u; signed = false; } := uint32_t;\n" + "typealias integer { size = 64; align = %u; signed = false; } := uint64_t;\n" + "typealias integer { size = %u; align = %u; signed = false; } := unsigned long;\n" + "typealias integer { size = 5; align = 1; signed = false; } := uint5_t;\n" + "typealias integer { size = 27; align = 1; signed = false; } := uint27_t;\n" + "\n" + "trace {\n" + " major = %u;\n" + " minor = %u;\n" + " uuid = \"%s\";\n" + " byte_order = %s;\n" + " packet.header := struct {\n" + " uint32_t magic;\n" + " uint8_t uuid[16];\n" + " uint32_t stream_id;\n" + " };\n" + "};\n\n", + lttng_alignof(uint8_t) * CHAR_BIT, + lttng_alignof(uint16_t) * CHAR_BIT, + lttng_alignof(uint32_t) * CHAR_BIT, + lttng_alignof(uint64_t) * CHAR_BIT, + sizeof(unsigned long) * CHAR_BIT, + lttng_alignof(unsigned long) * CHAR_BIT, + CTF_SPEC_MAJOR, + CTF_SPEC_MINOR, + uuid_s, +#ifdef __BIG_ENDIAN + "be" +#else + "le" +#endif + ); + if (ret) + goto end; + + ret = lttng_metadata_printf(session, + "env {\n" + " hostname = \"%s\";\n" + " domain = \"kernel\";\n" + " sysname = \"%s\";\n" + " kernel_release = \"%s\";\n" + " kernel_version = \"%s\";\n" + " tracer_name = \"lttng-modules\";\n" + " tracer_major = %d;\n" + " tracer_minor = %d;\n" + " tracer_patchlevel = %d;\n" + "};\n\n", + current->nsproxy->uts_ns->name.nodename, + utsname()->sysname, + utsname()->release, + utsname()->version, + LTTNG_MODULES_MAJOR_VERSION, + LTTNG_MODULES_MINOR_VERSION, + LTTNG_MODULES_PATCHLEVEL_VERSION + ); + if (ret) + goto end; + + ret = lttng_metadata_printf(session, + "clock {\n" + " name = %s;\n", + "monotonic" + ); + if (ret) + goto end; + + if (!trace_clock_uuid(clock_uuid_s)) { + ret = lttng_metadata_printf(session, + " uuid = \"%s\";\n", + clock_uuid_s + ); + if (ret) + goto end; + } + + ret = lttng_metadata_printf(session, + " description = \"Monotonic Clock\";\n" + " freq = %llu; /* Frequency, in Hz */\n" + " /* clock value offset from Epoch is: offset * (1/freq) */\n" + " offset = %llu;\n" + "};\n\n", + (unsigned long long) trace_clock_freq(), + (unsigned long long) measure_clock_offset() + ); + if (ret) + goto end; + + ret = lttng_metadata_printf(session, + "typealias integer {\n" + " size = 27; align = 1; signed = false;\n" + " map = clock.monotonic.value;\n" + "} := uint27_clock_monotonic_t;\n" + "\n" + "typealias integer {\n" + " size = 32; align = %u; signed = false;\n" + " map = clock.monotonic.value;\n" + "} := uint32_clock_monotonic_t;\n" + "\n" + "typealias integer {\n" + " size = 64; align = %u; signed = false;\n" + " map = clock.monotonic.value;\n" + "} := uint64_clock_monotonic_t;\n\n", + lttng_alignof(uint32_t) * CHAR_BIT, + lttng_alignof(uint64_t) * CHAR_BIT + ); + if (ret) + goto end; + + ret = _lttng_stream_packet_context_declare(session); + if (ret) + goto end; + + ret = _lttng_event_header_declare(session); + if (ret) + goto end; + +skip_session: + list_for_each_entry(chan, &session->chan, list) { + ret = _lttng_channel_metadata_statedump(session, chan); + if (ret) + goto end; + } + + list_for_each_entry(event, &session->events, list) { + ret = _lttng_event_metadata_statedump(session, event->chan, event); + if (ret) + goto end; + } + session->metadata_dumped = 1; +end: + return ret; +} + +/** + * lttng_transport_register - LTT transport registration + * @transport: transport structure + * + * Registers a transport which can be used as output to extract the data out of + * LTTng. The module calling this registration function must ensure that no + * trap-inducing code will be executed by the transport functions. E.g. + * vmalloc_sync_all() must be called between a vmalloc and the moment the memory + * is made visible to the transport function. This registration acts as a + * vmalloc_sync_all. Therefore, only if the module allocates virtual memory + * after its registration must it synchronize the TLBs. + */ +void lttng_transport_register(struct lttng_transport *transport) +{ + /* + * Make sure no page fault can be triggered by the module about to be + * registered. We deal with this here so we don't have to call + * vmalloc_sync_all() in each module's init. + */ + wrapper_vmalloc_sync_all(); + + mutex_lock(&sessions_mutex); + list_add_tail(&transport->node, <tng_transport_list); + mutex_unlock(&sessions_mutex); +} +EXPORT_SYMBOL_GPL(lttng_transport_register); + +/** + * lttng_transport_unregister - LTT transport unregistration + * @transport: transport structure + */ +void lttng_transport_unregister(struct lttng_transport *transport) +{ + mutex_lock(&sessions_mutex); + list_del(&transport->node); + mutex_unlock(&sessions_mutex); +} +EXPORT_SYMBOL_GPL(lttng_transport_unregister); + +static int __init lttng_events_init(void) +{ + int ret; + + event_cache = KMEM_CACHE(lttng_event, 0); + if (!event_cache) + return -ENOMEM; + ret = lttng_abi_init(); + if (ret) + goto error_abi; + return 0; +error_abi: + kmem_cache_destroy(event_cache); + return ret; +} + +module_init(lttng_events_init); + +static void __exit lttng_events_exit(void) +{ + struct lttng_session *session, *tmpsession; + + lttng_abi_exit(); + list_for_each_entry_safe(session, tmpsession, &sessions, list) + lttng_session_destroy(session); + kmem_cache_destroy(event_cache); +} + +module_exit(lttng_events_exit); + +MODULE_LICENSE("GPL and additional rights"); +MODULE_AUTHOR("Mathieu Desnoyers "); +MODULE_DESCRIPTION("LTTng Events"); --- linux-3.11.0.orig/ubuntu/lttng/ChangeLog +++ linux-3.11.0/ubuntu/lttng/ChangeLog @@ -0,0 +1,306 @@ +2013-09-03 LTTng modules 2.3.0 + * Fix: metadata stream should not reference session + * Fix: btrfs: support 3.11 Linux kernel + * statedump: remove KERN_DEBUG messages + * Fix: ext4: add missing tracepoints for 3.11 kernel + * Fix: ext4: Linux 3.11 support + * Fix: ext3: 3.11 Linux support + * Fix: statedump nsproxy 3.11 Linux support + +2013-08-30 LTTng modules 2.3.0-rc2 + * Fix: metadata lttng channel refcount + * README: lttng-modules incompatible with lttng 0.x patchset + +2013-07-17 LTTng modules 2.3.0-rc1 + * Fix: kvm x86 probes side-effect + * Fix: allow get/put subbuf in loop for metadata stream + * Add support for kvm x86 specific tracepoints + * Add mainline headers for kvm x86 tracepoints + * Remove old 3.0.4 x86-64 extracted syscall info + * Point the x86-64 overrides to newly extracted 3.10-rc7 files + * Add syscalls extracted files from a 3.10-rc7 kernel + * Improve documentation of the syscall extractor script + * Fix: double length of __dynamic_len array + * Fix printk instrumentation + * Introduce __dynamic_array_enc_ext_2() and tp_memcpy_dyn_2() + * Fix: ring buffer: get_subbuf() checks should be performed on "consumed" parameter + * Fix: SWITCH_FLUSH new sub-buffer checks + * Fix: ring buffer: handle concurrent update in nested buffer wrap around check + * Cleanup: lib_ring_buffer_switch_new_end() only calls subbuffer_set_data_size() + * Revert "Cleanup: ring buffer: remove lib_ring_buffer_switch_new_end()" + * Fix: handle writes of length 0 + * Fix: ring buffer: RING_BUFFER_FLUSH ioctl buffer corruption + * Cleanup: ring buffer: remove lib_ring_buffer_switch_new_end() + * print warning and return -EBUSY on double get_subbuf() + * Add header to fix compilation of syscalls-extractor on 3.9 kernel + * Fix: don't do 0 byte event reservation + * Document that payload size need to be greater than 0 + * Fix build and load against linux-2.6.33.x + * Fix: add missing CONFIG_COMPAT around lib_ring_buffer_compat_ioctl + * Metadata cache and multiple metadata channels + * fix block instrumentation probe signature mismatch for 3.9.x kernels + * fix: block instrumentation: NULL pointer dereference + * Update rcu instrumentation to 3.9.[0-4] + * Fix CPU hotplug section mismatches + * Add system calls definitions for powerpc-32 + * Remove bashism in lttng-syscalls-generate-headers.sh + * Update ARM (32 bit) syscall tracepoints to 3.4 + +2013-05-09 LTTng modules 2.2.0-rc2 + * Remove useless lttng_metadata probe + * Fix: warning kvm_trace_exit_reason redefined for 3.9 kernel + * Fix: 3.9.0 block layer instrumentation build + * Revert "Stop build if CONFIG_TRACEPOINTS is not set" + * Stop build if CONFIG_TRACEPOINTS is not set + * Add comments to endifs. + * Fix: remove ARM set_tls system call override + * Cleanup: arm sys_mmap whitespace + * Clean up using global_dirty_limit wrapper for writeback probe + +2013-03-29 LTTng modules 2.2.0-rc1 + * Update README + * Fix: vmscan instrumentation build + * writeback instrumentation: remove duplicated structures + * block: update instrumentation to 3.9 rc kernel + * rcu: update to 3.9 rc kernel instrumentation + * workqueue instrumentation: remove duplicated structures + * Rename odd event names + * Introduce API to remap event names exposed by LTTng + * lttng-module: sched.h: Fix compilation on 3.9 kernel + * Fix Linux 3.8 btrfs probe warning + * Fix Linux 3.8 ext4 probe support + * Fix 3.8 kernel support: namespace lttng_is_signed_type() + * Fix: don't flush-final for offset 0 if reader is on sub-buffer + * instrumentation sched: add missing fork pid info + * Fix check in lttng_strlen_user_inatomic + * instrumentation: sync with Linux commit a1ce392 + * Fix: statedump: missing locking, use lttng_iterate_fd + * Implement lttng_iterate_fd wrapper + * Instrumentation cleanup: kmem events should print hex pointers + * Fix compilation of ext4 and btrfs tracepoints on 2.6.40 kernels + * Fix: statedump hang/too early completion due to logic error + * Fix: statedump hang due to incorrect wait/wakeup use + * put_ulong calls in lib_ring_buffer_compat_ioctl() should be compat + * wrapper/perf.h: Fix kernel version condition + * Add new kernel probes instrumentation + * Update kernel probes to more detailed match to kernel versions + * Fix possible kernel build errors with linux-patches + * Add missing MIT license text to 3 files under this license + * Update sites using kernel version checking macro to new range + * Make upper bound of kernel version checking macro exclusive + * sock instrumentation: fix fields to get referenced values + * ext3 instrumentation: fix of assignment code conversion + * sched instrumentation: rename "pid" fields in sched_process_exec + * Remove remaining semicolons in TP_fast_assign blocks + * Fix compilation for 3.0 kernels that are named 2.6.40 + * Fix compilation for 3.0 branch (>= 3.0.39) + * Add kernel version checking macro + * Remove semicolons in TP_fast_assign blocks + * Add ifdefs to net probe to support Linux 2.6.39 + * Add kernel probes for supplementary subsystems + * Check if interrupt action name is not null in statedump + * Fix exec instrumentation: only for kernels 3.4.0 and higher + * Add TRACE_EVENT(sched_process_exec) to sched.h + * lib/ringbuffer/frontend_api.h: Include linux/prefetch.h. + * Fix warning with 3.6.0 kernel + * ABI with support for compat 32/64 bits + * Perform calculation on bit size in 64-bit + * Use uint64_t for packet header content size and packet size + * Fix: compat layer only on supported architectures + * Fix ring buffer 32/64 bits compat + * Fix cleanup: move lttng-tracer-core.h include to lib ringbuffer config.h + * Fix ring_buffer_frontend.c: missing include lttng-tracer-core.h + * Fix: statedump missing check for NULL namespace + +2012-09-10 LTTng modules 2.1.0-rc1 + * fix timestamps on architectures without CONFIG_KTIME_SCALAR + * Support for linux kernels 2.6.32 through 2.6.37 + * Document limitation of vppid and ppid context wrt eventual RCU instrumentation + * Cleanup: no need to hold RCU read-side lock when reading current nsproxy + * Add env hostname information + * Fix: lttng_statedump_process_state for each PID NS has infinite loop + * lttng_statedump_process_state for each PID NS + * Support the hostname context + * Fix: statedump namespaced pid, tid and ppid + * Fix: statedump: disable vm maps enumeration + * Fix: ensure userspace accesses are done with _inatomic + * Fix: vppid context should test for current nsproxy + * Add MIPS system call support + * Change mode of lttng-syscalls-generate-headers.sh to 755 + * cleanup: fix typo in syscall instrumentation header + * Cleanup: remove trailing whitespace in README + * trace event: introduce TP_MODULE_NOAUTOLOAD and TP_MODULE_NOINIT + * LTTng: probe-statedump: add #include + * fix: signal_generate event should print utf8 for comm field + * Makes write operation a parameter for tp_memcpy macro + * Add coding style document + * Update instrumentation/events README file + * Add makefile target for preprocessor + * Fix: free_event_id check should compare unsigned int with -1U + * Use unsigned long type for events discarded counter + * Fix: update signal instrumentation for 3.4 kernel + * LTTng Modules ARM syscall instrumentation + * Fix: generate header missing echo -e for escape chars + * Fix: add missing uaccess.h include (for ARM) + * README: Document that CONFIG_MODULES is required + * Fix: README typo + * Fix: document required and optional kernel config options in README + +2012-03-29 LTTng modules 2.0.1 + * Fix: is_compat_task !CONFIG_COMPAT compile error on kernels >= 3.3 + +2012-03-20 LTTng modules 2.0.0 + * First STABLE version + * Add version name + +2012-03-20 LTTng modules 2.0.0-rc4 + * Update README and add version name place-holder + +2012-03-16 LTTng modules 2.0.0-rc3 + * Fix clock offset 32-bit multiplication overflow + * Fix : wrong assign of fd in state dump + * License cleanup, ifdef namespace cleanup + * Fix: ensure power of 2 check handles 64-bit size_t entirely + +2012-03-02 LTTng modules 2.0.0-rc2 + * Fix: dmesg printout should not print metadata warnings + * Fix: use transport name as channel name + * Fix: Return -EINVAL instead of print warning if non power of 2 size/num_subbuf + +2012-02-20 LTTng modules 2.0.0-rc1 + * Standardize version across toolchain + * statedump: Use old macro name for kernel 2.6.38 + +2012-02-16 LTTng modules 2.0-pre15 + * Add timer instrumentation + * fix: need to undef mainline define + * fix: Include signal.h instead of irq.h for prototype match check + * Add signal instrumentation + +2012-02-16 LTTng modules 2.0-pre14 + * syscall tracing: sys_getcpu + * Add sys_clone x86 instrumentation + * statedump: fix include circular dep + * Implement state dump + +2012-02-09 LTTng modules 2.0-pre13 + * Update README + * environment: write sysname, release, version, domain to metadata + * Allow open /proc/lttng for read & write + +2012-02-02 LTTng modules 2.0-pre12 + * Add x86 32/64 execve syscall instrumentation override + * Remove unused defines + * Add padding to ABI + * Use LTTNG_KERNEL_SYM_NAME_LEN + * Update version to 1.9.9 + * Add missing double-quotes to clock uuid + * clock: read bootid as clock monotonic ID + * Fix comment + * Cleanup comment + * clock: output clock description in metadata + * Properly fix the timekeeping overflow detection + * Fix init bug + * rename lib-ring-buffer to lttng-lib-ring-buffer + * Remove #warning + * Mass rename: ltt_*/ltt-* to LTTNG_*/LTTNG-* + * Update TODO + * Update TODO + * Remove debugfs file (keep only proc file) + * Rename lttng-debugfs-abi files to lttng-abi + +2011-12-13 LTTng modules 2.0-pre11 + * Fix OOPS caused by reference of config pointer + * Gather detailed info from x86 64 32-bit compat syscall instrumentation + * lttng lib: ring buffer move null pointer check to open + * lttng lib: ring buffer remove duplicate null pointer + * lttng lib: ring buffer: remove stale null-pointer + * lttng wrapper: add missing include to kallsyms wrapper + * lttng: cleanup one-bit signed bitfields + * Add TODO file + * Update symbol name length max size to 256 + * Fix last modifications to string_from_user operations + * Document that depmod needs to be executed by hand + * Fix strlen_user fault space reservation + * Fix tp_copy_string_from_user handling of faults + * Disable block layer tracing support for kernels < 2.6.38 + * lttng context: perf counter, fix 32-bit vs 64-bit field size bug + * Update trace clock warning to match the current development plan + * ringbuffer: make ring buffer printk less verbose + * Makefile: do not run depmod manually + +2011-09-30 LTTng modules 2.0-pre10 + * x86-32: override sys_mmap syscall instrumentation + * Fix cast warning + +2011-09-29 LTTng modules 2.0-pre9 + * x86 32 syscalls: fix !CONFIG_UID16 + * Use __string_from_user + * Add __string_from_user + * Rename "comm" context to "procname" + * Fetch "type" name field for mount syscall + * Create common override file for all architectures + * Shrink stack size usage + * Cleanup: remove unused lttng-compat-syscalls.c file + * Support detailed compat syscalls on x86_64 + * Fix syscall table + * Add disabled compat syscalls detail (work in progress) + * Add config compat support for detailed x86_32 syscalls + * Handle newer 3.1+ perf API + * Add dummy x86-32 override headers + * Bind x86-32 syscall headers + * Add x86-32 syscall headers + * Add check for KALLSYMS_ALL in syscall extraction script + * Automate string extraction for syscalls + * Automate syscall filename/pathname extraction + * Add exit to ring_buffer_frontend so module is unloadable + * Add sys_open filename (x86_64) + * Add missing memcpy callback + * copy_from_user and memset + * Add missing alignment after header write + * lib ring buffer: add frontend init as module_init + * lib ring buffer frontend: add missing lock initialization + * ARM: Set bit 0 for thumb mode in kallsyms_lookup_name returned address (missing file) + * ARM: Set bit 0 for thumb mode in kallsyms_lookup_name returned address + * Create override for sys_mmap + * Rename syscalls -> syscall in LTTng ABI + * Use different event name for compat syscalls + * Allow trace syscall table override + * Add dummy override files + * syscall detail: add override capability + * Add pointer pretty-print heuristics + * Add __field_hex + * Rename sys exit errno into ret + * Enable detailed syscalls only for native x86_64 + * Use "unknown" for compat syscalls + * Disable x86-64 specific detailed syscalls for now, until we deal with 32-bit compat + * Fix syscall exit + * Fix sys exit + * Only enable detailed syscalls for x86_64 for now + * Merge unknown syscall method with extended detail method + * Add underscore prefix before event names + * Add syscalls pointers detailed syscall tracing + * Use perl for regexp + * Support generation of syscall probes for those with pointers + * Support detailed syscalls with 0 arguments + * detailed syscall tracing (work in progress) + * Expose /proc/lttng file + * Implement detailed syscall event probe + * Disable perf build for < 2.6.33 kernels + * Syscall detail mode: generate syscall table + * block instrumentation: write cmd as hex sequence + * lttng-events TRACE_EVENT generator cleanup + * block layer instrumentation: fix cmd field + * Remove 0 args syscalls for now from type-aware syscall cb generator + * Generate trace syscall table macros + * Put syscall tracing without arg types back in place + * Detailed system call tracing (TRACE_EVENT() generation for integer support) + * lttng events probes: don't clash with "ctx" variable name + * lib ring buffer must take private pointer copy before decrementing refcount + +2011-08-16 LTTng modules 2.0-pre8 + * Fix metadata buffer wait/wakeup + +2011-08-12 LTTng modules 2.0-pre7 + * Add missing module refcount to lttng_tracepoint_list_fops + * Add license info about lib/ringbuffer/ring_buffer_mmap.c being GPLv2 --- linux-3.11.0.orig/ubuntu/lttng/lttng-endian.h +++ linux-3.11.0/ubuntu/lttng/lttng-endian.h @@ -0,0 +1,43 @@ +#ifndef _LTTNG_ENDIAN_H +#define _LTTNG_ENDIAN_H + +/* + * lttng-endian.h + * + * Copyright (C) 2010-2012 Mathieu Desnoyers + * + * 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; only + * version 2.1 of the License. + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifdef __KERNEL__ +# include +# ifdef __BIG_ENDIAN +# define __BYTE_ORDER __BIG_ENDIAN +# elif defined(__LITTLE_ENDIAN) +# define __BYTE_ORDER __LITTLE_ENDIAN +# else +# error "unknown endianness" +# endif +#ifndef __BIG_ENDIAN +# define __BIG_ENDIAN 4321 +#endif +#ifndef __LITTLE_ENDIAN +# define __LITTLE_ENDIAN 1234 +#endif +#else +# include +#endif + +#endif /* _LTTNG_ENDIAN_H */ --- linux-3.11.0.orig/ubuntu/lttng/lttng-context-tid.c +++ linux-3.11.0/ubuntu/lttng/lttng-context-tid.c @@ -0,0 +1,81 @@ +/* + * lttng-context-tid.c + * + * LTTng TID context. + * + * Copyright (C) 2009-2012 Mathieu Desnoyers + * + * 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; only + * version 2.1 of the License. + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include +#include +#include +#include "lttng-events.h" +#include "wrapper/ringbuffer/frontend_types.h" +#include "wrapper/vmalloc.h" +#include "lttng-tracer.h" + +static +size_t tid_get_size(size_t offset) +{ + size_t size = 0; + + size += lib_ring_buffer_align(offset, lttng_alignof(pid_t)); + size += sizeof(pid_t); + return size; +} + +static +void tid_record(struct lttng_ctx_field *field, + struct lib_ring_buffer_ctx *ctx, + struct lttng_channel *chan) +{ + pid_t tid; + + tid = task_pid_nr(current); + lib_ring_buffer_align_ctx(ctx, lttng_alignof(tid)); + chan->ops->event_write(ctx, &tid, sizeof(tid)); +} + +int lttng_add_tid_to_ctx(struct lttng_ctx **ctx) +{ + struct lttng_ctx_field *field; + + field = lttng_append_context(ctx); + if (!field) + return -ENOMEM; + if (lttng_find_context(*ctx, "tid")) { + lttng_remove_context_field(ctx, field); + return -EEXIST; + } + field->event_field.name = "tid"; + field->event_field.type.atype = atype_integer; + field->event_field.type.u.basic.integer.size = sizeof(pid_t) * CHAR_BIT; + field->event_field.type.u.basic.integer.alignment = lttng_alignof(pid_t) * CHAR_BIT; + field->event_field.type.u.basic.integer.signedness = lttng_is_signed_type(pid_t); + field->event_field.type.u.basic.integer.reverse_byte_order = 0; + field->event_field.type.u.basic.integer.base = 10; + field->event_field.type.u.basic.integer.encoding = lttng_encode_none; + field->get_size = tid_get_size; + field->record = tid_record; + wrapper_vmalloc_sync_all(); + return 0; +} +EXPORT_SYMBOL_GPL(lttng_add_tid_to_ctx); + +MODULE_LICENSE("GPL and additional rights"); +MODULE_AUTHOR("Mathieu Desnoyers"); +MODULE_DESCRIPTION("Linux Trace Toolkit TID Context"); --- linux-3.11.0.orig/ubuntu/lttng/lttng-probes.c +++ linux-3.11.0/ubuntu/lttng/lttng-probes.c @@ -0,0 +1,171 @@ +/* + * lttng-probes.c + * + * Holds LTTng probes registry. + * + * Copyright (C) 2010-2012 Mathieu Desnoyers + * + * 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; only + * version 2.1 of the License. + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include +#include +#include +#include + +#include "lttng-events.h" + +static LIST_HEAD(probe_list); +static DEFINE_MUTEX(probe_mutex); + +static +const struct lttng_event_desc *find_event(const char *name) +{ + struct lttng_probe_desc *probe_desc; + int i; + + list_for_each_entry(probe_desc, &probe_list, head) { + for (i = 0; i < probe_desc->nr_events; i++) { + if (!strcmp(probe_desc->event_desc[i]->name, name)) + return probe_desc->event_desc[i]; + } + } + return NULL; +} + +int lttng_probe_register(struct lttng_probe_desc *desc) +{ + int ret = 0; + int i; + + mutex_lock(&probe_mutex); + /* + * TODO: This is O(N^2). Turn into a hash table when probe registration + * overhead becomes an issue. + */ + for (i = 0; i < desc->nr_events; i++) { + if (find_event(desc->event_desc[i]->name)) { + ret = -EEXIST; + goto end; + } + } + list_add(&desc->head, &probe_list); +end: + mutex_unlock(&probe_mutex); + return ret; +} +EXPORT_SYMBOL_GPL(lttng_probe_register); + +void lttng_probe_unregister(struct lttng_probe_desc *desc) +{ + mutex_lock(&probe_mutex); + list_del(&desc->head); + mutex_unlock(&probe_mutex); +} +EXPORT_SYMBOL_GPL(lttng_probe_unregister); + +const struct lttng_event_desc *lttng_event_get(const char *name) +{ + const struct lttng_event_desc *event; + int ret; + + mutex_lock(&probe_mutex); + event = find_event(name); + mutex_unlock(&probe_mutex); + if (!event) + return NULL; + ret = try_module_get(event->owner); + WARN_ON_ONCE(!ret); + return event; +} +EXPORT_SYMBOL_GPL(lttng_event_get); + +void lttng_event_put(const struct lttng_event_desc *event) +{ + module_put(event->owner); +} +EXPORT_SYMBOL_GPL(lttng_event_put); + +static +void *tp_list_start(struct seq_file *m, loff_t *pos) +{ + struct lttng_probe_desc *probe_desc; + int iter = 0, i; + + mutex_lock(&probe_mutex); + list_for_each_entry(probe_desc, &probe_list, head) { + for (i = 0; i < probe_desc->nr_events; i++) { + if (iter++ >= *pos) + return (void *) probe_desc->event_desc[i]; + } + } + /* End of list */ + return NULL; +} + +static +void *tp_list_next(struct seq_file *m, void *p, loff_t *ppos) +{ + struct lttng_probe_desc *probe_desc; + int iter = 0, i; + + (*ppos)++; + list_for_each_entry(probe_desc, &probe_list, head) { + for (i = 0; i < probe_desc->nr_events; i++) { + if (iter++ >= *ppos) + return (void *) probe_desc->event_desc[i]; + } + } + /* End of list */ + return NULL; +} + +static +void tp_list_stop(struct seq_file *m, void *p) +{ + mutex_unlock(&probe_mutex); +} + +static +int tp_list_show(struct seq_file *m, void *p) +{ + const struct lttng_event_desc *probe_desc = p; + + seq_printf(m, "event { name = %s; };\n", + probe_desc->name); + return 0; +} + +static +const struct seq_operations lttng_tracepoint_list_seq_ops = { + .start = tp_list_start, + .next = tp_list_next, + .stop = tp_list_stop, + .show = tp_list_show, +}; + +static +int lttng_tracepoint_list_open(struct inode *inode, struct file *file) +{ + return seq_open(file, <tng_tracepoint_list_seq_ops); +} + +const struct file_operations lttng_tracepoint_list_fops = { + .owner = THIS_MODULE, + .open = lttng_tracepoint_list_open, + .read = seq_read, + .llseek = seq_lseek, + .release = seq_release, +}; --- linux-3.11.0.orig/ubuntu/lttng/lttng-tracer-core.h +++ linux-3.11.0/ubuntu/lttng/lttng-tracer-core.h @@ -0,0 +1,41 @@ +#ifndef LTTNG_TRACER_CORE_H +#define LTTNG_TRACER_CORE_H + +/* + * lttng-tracer-core.h + * + * This contains the core definitions for the Linux Trace Toolkit Next + * Generation tracer. + * + * Copyright (C) 2005-2012 Mathieu Desnoyers + * + * 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; only + * version 2.1 of the License. + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include +#include + +#ifndef CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS +/* Align data on its natural alignment */ +#define RING_BUFFER_ALIGN +#endif + +#include "wrapper/ringbuffer/config.h" + +struct lttng_session; +struct lttng_channel; +struct lttng_event; + +#endif /* LTTNG_TRACER_CORE_H */ --- linux-3.11.0.orig/ubuntu/lttng/lttng-context-pid.c +++ linux-3.11.0/ubuntu/lttng/lttng-context-pid.c @@ -0,0 +1,81 @@ +/* + * lttng-context-pid.c + * + * LTTng PID context. + * + * Copyright (C) 2009-2012 Mathieu Desnoyers + * + * 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; only + * version 2.1 of the License. + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include +#include +#include +#include "lttng-events.h" +#include "wrapper/ringbuffer/frontend_types.h" +#include "wrapper/vmalloc.h" +#include "lttng-tracer.h" + +static +size_t pid_get_size(size_t offset) +{ + size_t size = 0; + + size += lib_ring_buffer_align(offset, lttng_alignof(pid_t)); + size += sizeof(pid_t); + return size; +} + +static +void pid_record(struct lttng_ctx_field *field, + struct lib_ring_buffer_ctx *ctx, + struct lttng_channel *chan) +{ + pid_t pid; + + pid = task_tgid_nr(current); + lib_ring_buffer_align_ctx(ctx, lttng_alignof(pid)); + chan->ops->event_write(ctx, &pid, sizeof(pid)); +} + +int lttng_add_pid_to_ctx(struct lttng_ctx **ctx) +{ + struct lttng_ctx_field *field; + + field = lttng_append_context(ctx); + if (!field) + return -ENOMEM; + if (lttng_find_context(*ctx, "pid")) { + lttng_remove_context_field(ctx, field); + return -EEXIST; + } + field->event_field.name = "pid"; + field->event_field.type.atype = atype_integer; + field->event_field.type.u.basic.integer.size = sizeof(pid_t) * CHAR_BIT; + field->event_field.type.u.basic.integer.alignment = lttng_alignof(pid_t) * CHAR_BIT; + field->event_field.type.u.basic.integer.signedness = lttng_is_signed_type(pid_t); + field->event_field.type.u.basic.integer.reverse_byte_order = 0; + field->event_field.type.u.basic.integer.base = 10; + field->event_field.type.u.basic.integer.encoding = lttng_encode_none; + field->get_size = pid_get_size; + field->record = pid_record; + wrapper_vmalloc_sync_all(); + return 0; +} +EXPORT_SYMBOL_GPL(lttng_add_pid_to_ctx); + +MODULE_LICENSE("GPL and additional rights"); +MODULE_AUTHOR("Mathieu Desnoyers"); +MODULE_DESCRIPTION("Linux Trace Toolkit PID Context"); --- linux-3.11.0.orig/ubuntu/lttng/lttng-kernel-version.h +++ linux-3.11.0/ubuntu/lttng/lttng-kernel-version.h @@ -0,0 +1,36 @@ +#ifndef _LTTNG_KERNEL_VERSION_H +#define _LTTNG_KERNEL_VERSION_H + +/* + * lttng-kernel-version.h + * + * Contains helpers to check more complex kernel version conditions. + * + * Copyright (C) 2012 Mathieu Desnoyers + * + * 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; only + * version 2.1 of the License. + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include + +/* + * This macro checks if the kernel version is between the two specified + * versions (lower limit inclusive, upper limit exclusive). + */ +#define LTTNG_KERNEL_RANGE(a_low, b_low, c_low, a_high, b_high, c_high) \ + (LINUX_VERSION_CODE >= KERNEL_VERSION(a_low, b_low, c_low) && \ + LINUX_VERSION_CODE < KERNEL_VERSION(a_high, b_high, c_high)) + +#endif /* _LTTNG_KERNEL_VERSION_H */ --- linux-3.11.0.orig/ubuntu/lttng/lttng-context-hostname.c +++ linux-3.11.0/ubuntu/lttng/lttng-context-hostname.c @@ -0,0 +1,99 @@ +/* + * lttng-context-hostname.c + * + * LTTng hostname context. + * + * Copyright (C) 2009-2012 Mathieu Desnoyers + * + * 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; only + * version 2.1 of the License. + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include +#include +#include +#include +#include "lttng-events.h" +#include "wrapper/ringbuffer/frontend_types.h" +#include "wrapper/vmalloc.h" +#include "lttng-tracer.h" + +#define LTTNG_HOSTNAME_CTX_LEN (__NEW_UTS_LEN + 1) + +static +size_t hostname_get_size(size_t offset) +{ + size_t size = 0; + + size += LTTNG_HOSTNAME_CTX_LEN; + return size; +} + +static +void hostname_record(struct lttng_ctx_field *field, + struct lib_ring_buffer_ctx *ctx, + struct lttng_channel *chan) +{ + struct nsproxy *nsproxy; + struct uts_namespace *ns; + char *hostname; + + /* + * No need to take the RCU read-side lock to read current + * nsproxy. (documented in nsproxy.h) + */ + nsproxy = current->nsproxy; + if (nsproxy) { + ns = nsproxy->uts_ns; + hostname = ns->name.nodename; + chan->ops->event_write(ctx, hostname, + LTTNG_HOSTNAME_CTX_LEN); + } else { + chan->ops->event_memset(ctx, 0, + LTTNG_HOSTNAME_CTX_LEN); + } +} + +int lttng_add_hostname_to_ctx(struct lttng_ctx **ctx) +{ + struct lttng_ctx_field *field; + + field = lttng_append_context(ctx); + if (!field) + return -ENOMEM; + if (lttng_find_context(*ctx, "hostname")) { + lttng_remove_context_field(ctx, field); + return -EEXIST; + } + field->event_field.name = "hostname"; + field->event_field.type.atype = atype_array; + field->event_field.type.u.array.elem_type.atype = atype_integer; + field->event_field.type.u.array.elem_type.u.basic.integer.size = sizeof(char) * CHAR_BIT; + field->event_field.type.u.array.elem_type.u.basic.integer.alignment = lttng_alignof(char) * CHAR_BIT; + field->event_field.type.u.array.elem_type.u.basic.integer.signedness = lttng_is_signed_type(char); + field->event_field.type.u.array.elem_type.u.basic.integer.reverse_byte_order = 0; + field->event_field.type.u.array.elem_type.u.basic.integer.base = 10; + field->event_field.type.u.array.elem_type.u.basic.integer.encoding = lttng_encode_UTF8; + field->event_field.type.u.array.length = LTTNG_HOSTNAME_CTX_LEN; + + field->get_size = hostname_get_size; + field->record = hostname_record; + wrapper_vmalloc_sync_all(); + return 0; +} +EXPORT_SYMBOL_GPL(lttng_add_hostname_to_ctx); + +MODULE_LICENSE("GPL and additional rights"); +MODULE_AUTHOR("Mathieu Desnoyers"); +MODULE_DESCRIPTION("Linux Trace Toolkit Perf Support"); --- linux-3.11.0.orig/ubuntu/lttng/lttng-events.h +++ linux-3.11.0/ubuntu/lttng/lttng-events.h @@ -0,0 +1,529 @@ +#ifndef _LTTNG_EVENTS_H +#define _LTTNG_EVENTS_H + +/* + * lttng-events.h + * + * Holds LTTng per-session event registry. + * + * Copyright (C) 2010-2012 Mathieu Desnoyers + * + * 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; only + * version 2.1 of the License. + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include +#include +#include +#include +#include "wrapper/uuid.h" +#include "lttng-abi.h" +#include "lttng-abi-old.h" + +#define lttng_is_signed_type(type) (((type)(-1)) < 0) + +struct lttng_channel; +struct lttng_session; +struct lttng_metadata_cache; +struct lib_ring_buffer_ctx; +struct perf_event; +struct perf_event_attr; +struct lib_ring_buffer_config; + +/* Type description */ + +/* Update the astract_types name table in lttng-types.c along with this enum */ +enum abstract_types { + atype_integer, + atype_enum, + atype_array, + atype_sequence, + atype_string, + NR_ABSTRACT_TYPES, +}; + +/* Update the string_encodings name table in lttng-types.c along with this enum */ +enum lttng_string_encodings { + lttng_encode_none = 0, + lttng_encode_UTF8 = 1, + lttng_encode_ASCII = 2, + NR_STRING_ENCODINGS, +}; + +enum channel_type { + PER_CPU_CHANNEL, + METADATA_CHANNEL, +}; + +struct lttng_enum_entry { + unsigned long long start, end; /* start and end are inclusive */ + const char *string; +}; + +#define __type_integer(_type, _byte_order, _base, _encoding) \ + { \ + .atype = atype_integer, \ + .u.basic.integer = \ + { \ + .size = sizeof(_type) * CHAR_BIT, \ + .alignment = lttng_alignof(_type) * CHAR_BIT, \ + .signedness = lttng_is_signed_type(_type), \ + .reverse_byte_order = _byte_order != __BYTE_ORDER, \ + .base = _base, \ + .encoding = lttng_encode_##_encoding, \ + }, \ + } \ + +struct lttng_integer_type { + unsigned int size; /* in bits */ + unsigned short alignment; /* in bits */ + unsigned int signedness:1, + reverse_byte_order:1; + unsigned int base; /* 2, 8, 10, 16, for pretty print */ + enum lttng_string_encodings encoding; +}; + +union _lttng_basic_type { + struct lttng_integer_type integer; + struct { + const char *name; + } enumeration; + struct { + enum lttng_string_encodings encoding; + } string; +}; + +struct lttng_basic_type { + enum abstract_types atype; + union { + union _lttng_basic_type basic; + } u; +}; + +struct lttng_type { + enum abstract_types atype; + union { + union _lttng_basic_type basic; + struct { + struct lttng_basic_type elem_type; + unsigned int length; /* num. elems. */ + } array; + struct { + struct lttng_basic_type length_type; + struct lttng_basic_type elem_type; + } sequence; + } u; +}; + +struct lttng_enum { + const char *name; + struct lttng_type container_type; + const struct lttng_enum_entry *entries; + unsigned int len; +}; + +/* Event field description */ + +struct lttng_event_field { + const char *name; + struct lttng_type type; +}; + +/* + * We need to keep this perf counter field separately from struct + * lttng_ctx_field because cpu hotplug needs fixed-location addresses. + */ +struct lttng_perf_counter_field { + struct notifier_block nb; + int hp_enable; + struct perf_event_attr *attr; + struct perf_event **e; /* per-cpu array */ +}; + +struct lttng_ctx_field { + struct lttng_event_field event_field; + size_t (*get_size)(size_t offset); + void (*record)(struct lttng_ctx_field *field, + struct lib_ring_buffer_ctx *ctx, + struct lttng_channel *chan); + union { + struct lttng_perf_counter_field *perf_counter; + } u; + void (*destroy)(struct lttng_ctx_field *field); +}; + +struct lttng_ctx { + struct lttng_ctx_field *fields; + unsigned int nr_fields; + unsigned int allocated_fields; +}; + +struct lttng_event_desc { + const char *name; + void *probe_callback; + const struct lttng_event_ctx *ctx; /* context */ + const struct lttng_event_field *fields; /* event payload */ + unsigned int nr_fields; + struct module *owner; +}; + +struct lttng_probe_desc { + const struct lttng_event_desc **event_desc; + unsigned int nr_events; + struct list_head head; /* chain registered probes */ +}; + +struct lttng_krp; /* Kretprobe handling */ + +/* + * lttng_event structure is referred to by the tracing fast path. It must be + * kept small. + */ +struct lttng_event { + unsigned int id; + struct lttng_channel *chan; + int enabled; + const struct lttng_event_desc *desc; + void *filter; + struct lttng_ctx *ctx; + enum lttng_kernel_instrumentation instrumentation; + union { + struct { + struct kprobe kp; + char *symbol_name; + } kprobe; + struct { + struct lttng_krp *lttng_krp; + char *symbol_name; + } kretprobe; + struct { + char *symbol_name; + } ftrace; + } u; + struct list_head list; /* Event list */ + unsigned int metadata_dumped:1; +}; + +struct lttng_channel_ops { + struct channel *(*channel_create)(const char *name, + struct lttng_channel *lttng_chan, + void *buf_addr, + size_t subbuf_size, size_t num_subbuf, + unsigned int switch_timer_interval, + unsigned int read_timer_interval); + void (*channel_destroy)(struct channel *chan); + struct lib_ring_buffer *(*buffer_read_open)(struct channel *chan); + int (*buffer_has_read_closed_stream)(struct channel *chan); + void (*buffer_read_close)(struct lib_ring_buffer *buf); + int (*event_reserve)(struct lib_ring_buffer_ctx *ctx, + uint32_t event_id); + void (*event_commit)(struct lib_ring_buffer_ctx *ctx); + void (*event_write)(struct lib_ring_buffer_ctx *ctx, const void *src, + size_t len); + void (*event_write_from_user)(struct lib_ring_buffer_ctx *ctx, + const void *src, size_t len); + void (*event_memset)(struct lib_ring_buffer_ctx *ctx, + int c, size_t len); + /* + * packet_avail_size returns the available size in the current + * packet. Note that the size returned is only a hint, since it + * may change due to concurrent writes. + */ + size_t (*packet_avail_size)(struct channel *chan); + wait_queue_head_t *(*get_writer_buf_wait_queue)(struct channel *chan, int cpu); + wait_queue_head_t *(*get_hp_wait_queue)(struct channel *chan); + int (*is_finalized)(struct channel *chan); + int (*is_disabled)(struct channel *chan); + int (*timestamp_begin) (const struct lib_ring_buffer_config *config, + struct lib_ring_buffer *bufb, + uint64_t *timestamp_begin); + int (*timestamp_end) (const struct lib_ring_buffer_config *config, + struct lib_ring_buffer *bufb, + uint64_t *timestamp_end); + int (*events_discarded) (const struct lib_ring_buffer_config *config, + struct lib_ring_buffer *bufb, + uint64_t *events_discarded); + int (*content_size) (const struct lib_ring_buffer_config *config, + struct lib_ring_buffer *bufb, + uint64_t *content_size); + int (*packet_size) (const struct lib_ring_buffer_config *config, + struct lib_ring_buffer *bufb, + uint64_t *packet_size); + int (*stream_id) (const struct lib_ring_buffer_config *config, + struct lib_ring_buffer *bufb, + uint64_t *stream_id); + int (*current_timestamp) (const struct lib_ring_buffer_config *config, + struct lib_ring_buffer *bufb, + uint64_t *ts); +}; + +struct lttng_transport { + char *name; + struct module *owner; + struct list_head node; + struct lttng_channel_ops ops; +}; + +struct lttng_channel { + unsigned int id; + struct channel *chan; /* Channel buffers */ + int enabled; + struct lttng_ctx *ctx; + /* Event ID management */ + struct lttng_session *session; + struct file *file; /* File associated to channel */ + unsigned int free_event_id; /* Next event ID to allocate */ + struct list_head list; /* Channel list */ + struct lttng_channel_ops *ops; + struct lttng_transport *transport; + struct lttng_event **sc_table; /* for syscall tracing */ + struct lttng_event **compat_sc_table; + struct lttng_event *sc_unknown; /* for unknown syscalls */ + struct lttng_event *sc_compat_unknown; + struct lttng_event *sc_exit; /* for syscall exit */ + int header_type; /* 0: unset, 1: compact, 2: large */ + enum channel_type channel_type; + unsigned int metadata_dumped:1; +}; + +struct lttng_metadata_stream { + void *priv; /* Ring buffer private data */ + struct lttng_metadata_cache *metadata_cache; + unsigned int metadata_in; /* Bytes read from the cache */ + unsigned int metadata_out; /* Bytes consumed from stream */ + int finalized; /* Has channel been finalized */ + wait_queue_head_t read_wait; /* Reader buffer-level wait queue */ + struct list_head list; /* Stream list */ + struct lttng_transport *transport; +}; + +struct lttng_session { + int active; /* Is trace session active ? */ + int been_active; /* Has trace session been active ? */ + struct file *file; /* File associated to session */ + struct list_head chan; /* Channel list head */ + struct list_head events; /* Event list head */ + struct list_head list; /* Session list */ + unsigned int free_chan_id; /* Next chan ID to allocate */ + uuid_le uuid; /* Trace session unique ID */ + struct lttng_metadata_cache *metadata_cache; + unsigned int metadata_dumped:1; +}; + +struct lttng_metadata_cache { + char *data; /* Metadata cache */ + unsigned int cache_alloc; /* Metadata allocated size (bytes) */ + unsigned int metadata_written; /* Number of bytes written in metadata cache */ + struct kref refcount; /* Metadata cache usage */ + struct list_head metadata_stream; /* Metadata stream list */ +}; + +struct lttng_session *lttng_session_create(void); +int lttng_session_enable(struct lttng_session *session); +int lttng_session_disable(struct lttng_session *session); +void lttng_session_destroy(struct lttng_session *session); +void metadata_cache_destroy(struct kref *kref); + +struct lttng_channel *lttng_channel_create(struct lttng_session *session, + const char *transport_name, + void *buf_addr, + size_t subbuf_size, size_t num_subbuf, + unsigned int switch_timer_interval, + unsigned int read_timer_interval, + enum channel_type channel_type); +struct lttng_channel *lttng_global_channel_create(struct lttng_session *session, + int overwrite, void *buf_addr, + size_t subbuf_size, size_t num_subbuf, + unsigned int switch_timer_interval, + unsigned int read_timer_interval); + +void lttng_metadata_channel_destroy(struct lttng_channel *chan); +struct lttng_event *lttng_event_create(struct lttng_channel *chan, + struct lttng_kernel_event *event_param, + void *filter, + const struct lttng_event_desc *internal_desc); +struct lttng_event *lttng_event_compat_old_create(struct lttng_channel *chan, + struct lttng_kernel_old_event *old_event_param, + void *filter, + const struct lttng_event_desc *internal_desc); + +int lttng_channel_enable(struct lttng_channel *channel); +int lttng_channel_disable(struct lttng_channel *channel); +int lttng_event_enable(struct lttng_event *event); +int lttng_event_disable(struct lttng_event *event); + +void lttng_transport_register(struct lttng_transport *transport); +void lttng_transport_unregister(struct lttng_transport *transport); + +void synchronize_trace(void); +int lttng_abi_init(void); +int lttng_abi_compat_old_init(void); +void lttng_abi_exit(void); +void lttng_abi_compat_old_exit(void); + +int lttng_probe_register(struct lttng_probe_desc *desc); +void lttng_probe_unregister(struct lttng_probe_desc *desc); +const struct lttng_event_desc *lttng_event_get(const char *name); +void lttng_event_put(const struct lttng_event_desc *desc); +int lttng_probes_init(void); +void lttng_probes_exit(void); + +int lttng_metadata_output_channel(struct lttng_metadata_stream *stream, + struct channel *chan); + +#if defined(CONFIG_HAVE_SYSCALL_TRACEPOINTS) +int lttng_syscalls_register(struct lttng_channel *chan, void *filter); +int lttng_syscalls_unregister(struct lttng_channel *chan); +#else +static inline int lttng_syscalls_register(struct lttng_channel *chan, void *filter) +{ + return -ENOSYS; +} + +static inline int lttng_syscalls_unregister(struct lttng_channel *chan) +{ + return 0; +} +#endif + +struct lttng_ctx_field *lttng_append_context(struct lttng_ctx **ctx); +int lttng_find_context(struct lttng_ctx *ctx, const char *name); +void lttng_remove_context_field(struct lttng_ctx **ctx, + struct lttng_ctx_field *field); +void lttng_destroy_context(struct lttng_ctx *ctx); +int lttng_add_pid_to_ctx(struct lttng_ctx **ctx); +int lttng_add_procname_to_ctx(struct lttng_ctx **ctx); +int lttng_add_prio_to_ctx(struct lttng_ctx **ctx); +int lttng_add_nice_to_ctx(struct lttng_ctx **ctx); +int lttng_add_vpid_to_ctx(struct lttng_ctx **ctx); +int lttng_add_tid_to_ctx(struct lttng_ctx **ctx); +int lttng_add_vtid_to_ctx(struct lttng_ctx **ctx); +int lttng_add_ppid_to_ctx(struct lttng_ctx **ctx); +int lttng_add_vppid_to_ctx(struct lttng_ctx **ctx); +int lttng_add_hostname_to_ctx(struct lttng_ctx **ctx); +#if defined(CONFIG_PERF_EVENTS) && (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,33)) +int lttng_add_perf_counter_to_ctx(uint32_t type, + uint64_t config, + const char *name, + struct lttng_ctx **ctx); +#else +static inline +int lttng_add_perf_counter_to_ctx(uint32_t type, + uint64_t config, + const char *name, + struct lttng_ctx **ctx) +{ + return -ENOSYS; +} +#endif + +extern int lttng_statedump_start(struct lttng_session *session); + +#ifdef CONFIG_KPROBES +int lttng_kprobes_register(const char *name, + const char *symbol_name, + uint64_t offset, + uint64_t addr, + struct lttng_event *event); +void lttng_kprobes_unregister(struct lttng_event *event); +void lttng_kprobes_destroy_private(struct lttng_event *event); +#else +static inline +int lttng_kprobes_register(const char *name, + const char *symbol_name, + uint64_t offset, + uint64_t addr, + struct lttng_event *event) +{ + return -ENOSYS; +} + +static inline +void lttng_kprobes_unregister(struct lttng_event *event) +{ +} + +static inline +void lttng_kprobes_destroy_private(struct lttng_event *event) +{ +} +#endif + +#ifdef CONFIG_KRETPROBES +int lttng_kretprobes_register(const char *name, + const char *symbol_name, + uint64_t offset, + uint64_t addr, + struct lttng_event *event_entry, + struct lttng_event *event_exit); +void lttng_kretprobes_unregister(struct lttng_event *event); +void lttng_kretprobes_destroy_private(struct lttng_event *event); +#else +static inline +int lttng_kretprobes_register(const char *name, + const char *symbol_name, + uint64_t offset, + uint64_t addr, + struct lttng_event *event_entry, + struct lttng_event *event_exit) +{ + return -ENOSYS; +} + +static inline +void lttng_kretprobes_unregister(struct lttng_event *event) +{ +} + +static inline +void lttng_kretprobes_destroy_private(struct lttng_event *event) +{ +} +#endif + +#ifdef CONFIG_DYNAMIC_FTRACE +int lttng_ftrace_register(const char *name, + const char *symbol_name, + struct lttng_event *event); +void lttng_ftrace_unregister(struct lttng_event *event); +void lttng_ftrace_destroy_private(struct lttng_event *event); +#else +static inline +int lttng_ftrace_register(const char *name, + const char *symbol_name, + struct lttng_event *event) +{ + return -ENOSYS; +} + +static inline +void lttng_ftrace_unregister(struct lttng_event *event) +{ +} + +static inline +void lttng_ftrace_destroy_private(struct lttng_event *event) +{ +} +#endif + +int lttng_calibrate(struct lttng_kernel_calibrate *calibrate); + +extern const struct file_operations lttng_tracepoint_list_fops; + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,35)) +#define TRACEPOINT_HAS_DATA_ARG +#endif + +#endif /* _LTTNG_EVENTS_H */ --- linux-3.11.0.orig/ubuntu/lttng/lttng-ring-buffer-client-mmap-discard.c +++ linux-3.11.0/ubuntu/lttng/lttng-ring-buffer-client-mmap-discard.c @@ -0,0 +1,33 @@ +/* + * lttng-ring-buffer-client-discard.c + * + * LTTng lib ring buffer client (discard mode). + * + * Copyright (C) 2010-2012 Mathieu Desnoyers + * + * 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; only + * version 2.1 of the License. + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include +#include "lttng-tracer.h" + +#define RING_BUFFER_MODE_TEMPLATE RING_BUFFER_DISCARD +#define RING_BUFFER_MODE_TEMPLATE_STRING "discard-mmap" +#define RING_BUFFER_OUTPUT_TEMPLATE RING_BUFFER_MMAP +#include "lttng-ring-buffer-client.h" + +MODULE_LICENSE("GPL and additional rights"); +MODULE_AUTHOR("Mathieu Desnoyers"); +MODULE_DESCRIPTION("LTTng Ring Buffer Client Discard Mode"); --- linux-3.11.0.orig/ubuntu/lttng/lib/Makefile +++ linux-3.11.0/ubuntu/lttng/lib/Makefile @@ -0,0 +1,11 @@ +obj-m += lttng-lib-ring-buffer.o + +lttng-lib-ring-buffer-objs := \ + ringbuffer/ring_buffer_backend.o \ + ringbuffer/ring_buffer_frontend.o \ + ringbuffer/ring_buffer_iterator.o \ + ringbuffer/ring_buffer_vfs.o \ + ringbuffer/ring_buffer_splice.o \ + ringbuffer/ring_buffer_mmap.o \ + prio_heap/lttng_prio_heap.o \ + ../wrapper/splice.o --- linux-3.11.0.orig/ubuntu/lttng/lib/bitfield.h +++ linux-3.11.0/ubuntu/lttng/lib/bitfield.h @@ -0,0 +1,408 @@ +#ifndef _BABELTRACE_BITFIELD_H +#define _BABELTRACE_BITFIELD_H + +/* + * BabelTrace + * + * Bitfields read/write functions. + * + * Copyright 2010 - Mathieu Desnoyers + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +#include "../lttng-endian.h" + +#ifndef CHAR_BIT +#define CHAR_BIT 8 +#endif + +/* We can't shift a int from 32 bit, >> 32 and << 32 on int is undefined */ +#define _bt_piecewise_rshift(_v, _shift) \ +({ \ + typeof(_v) ___v = (_v); \ + typeof(_shift) ___shift = (_shift); \ + unsigned long sb = (___shift) / (sizeof(___v) * CHAR_BIT - 1); \ + unsigned long final = (___shift) % (sizeof(___v) * CHAR_BIT - 1); \ + \ + for (; sb; sb--) \ + ___v >>= sizeof(___v) * CHAR_BIT - 1; \ + ___v >>= final; \ +}) + +#define _bt_piecewise_lshift(_v, _shift) \ +({ \ + typeof(_v) ___v = (_v); \ + typeof(_shift) ___shift = (_shift); \ + unsigned long sb = (___shift) / (sizeof(___v) * CHAR_BIT - 1); \ + unsigned long final = (___shift) % (sizeof(___v) * CHAR_BIT - 1); \ + \ + for (; sb; sb--) \ + ___v <<= sizeof(___v) * CHAR_BIT - 1; \ + ___v <<= final; \ +}) + +#define _bt_is_signed_type(type) (((type)(-1)) < 0) + +#define _bt_unsigned_cast(type, v) \ +({ \ + (sizeof(v) < sizeof(type)) ? \ + ((type) (v)) & (~(~(type) 0 << (sizeof(v) * CHAR_BIT))) : \ + (type) (v); \ +}) + +/* + * bt_bitfield_write - write integer to a bitfield in native endianness + * + * Save integer to the bitfield, which starts at the "start" bit, has "len" + * bits. + * The inside of a bitfield is from high bits to low bits. + * Uses native endianness. + * For unsigned "v", pad MSB with 0 if bitfield is larger than v. + * For signed "v", sign-extend v if bitfield is larger than v. + * + * On little endian, bytes are placed from the less significant to the most + * significant. Also, consecutive bitfields are placed from lower bits to higher + * bits. + * + * On big endian, bytes are places from most significant to less significant. + * Also, consecutive bitfields are placed from higher to lower bits. + */ + +#define _bt_bitfield_write_le(_ptr, type, _start, _length, _v) \ +do { \ + typeof(_v) __v = (_v); \ + type *__ptr = (void *) (_ptr); \ + unsigned long __start = (_start), __length = (_length); \ + type mask, cmask; \ + unsigned long ts = sizeof(type) * CHAR_BIT; /* type size */ \ + unsigned long start_unit, end_unit, this_unit; \ + unsigned long end, cshift; /* cshift is "complement shift" */ \ + \ + if (!__length) \ + break; \ + \ + end = __start + __length; \ + start_unit = __start / ts; \ + end_unit = (end + (ts - 1)) / ts; \ + \ + /* Trim v high bits */ \ + if (__length < sizeof(__v) * CHAR_BIT) \ + __v &= ~((~(typeof(__v)) 0) << __length); \ + \ + /* We can now append v with a simple "or", shift it piece-wise */ \ + this_unit = start_unit; \ + if (start_unit == end_unit - 1) { \ + mask = ~((~(type) 0) << (__start % ts)); \ + if (end % ts) \ + mask |= (~(type) 0) << (end % ts); \ + cmask = (type) __v << (__start % ts); \ + cmask &= ~mask; \ + __ptr[this_unit] &= mask; \ + __ptr[this_unit] |= cmask; \ + break; \ + } \ + if (__start % ts) { \ + cshift = __start % ts; \ + mask = ~((~(type) 0) << cshift); \ + cmask = (type) __v << cshift; \ + cmask &= ~mask; \ + __ptr[this_unit] &= mask; \ + __ptr[this_unit] |= cmask; \ + __v = _bt_piecewise_rshift(__v, ts - cshift); \ + __start += ts - cshift; \ + this_unit++; \ + } \ + for (; this_unit < end_unit - 1; this_unit++) { \ + __ptr[this_unit] = (type) __v; \ + __v = _bt_piecewise_rshift(__v, ts); \ + __start += ts; \ + } \ + if (end % ts) { \ + mask = (~(type) 0) << (end % ts); \ + cmask = (type) __v; \ + cmask &= ~mask; \ + __ptr[this_unit] &= mask; \ + __ptr[this_unit] |= cmask; \ + } else \ + __ptr[this_unit] = (type) __v; \ +} while (0) + +#define _bt_bitfield_write_be(_ptr, type, _start, _length, _v) \ +do { \ + typeof(_v) __v = (_v); \ + type *__ptr = (void *) (_ptr); \ + unsigned long __start = (_start), __length = (_length); \ + type mask, cmask; \ + unsigned long ts = sizeof(type) * CHAR_BIT; /* type size */ \ + unsigned long start_unit, end_unit, this_unit; \ + unsigned long end, cshift; /* cshift is "complement shift" */ \ + \ + if (!__length) \ + break; \ + \ + end = __start + __length; \ + start_unit = __start / ts; \ + end_unit = (end + (ts - 1)) / ts; \ + \ + /* Trim v high bits */ \ + if (__length < sizeof(__v) * CHAR_BIT) \ + __v &= ~((~(typeof(__v)) 0) << __length); \ + \ + /* We can now append v with a simple "or", shift it piece-wise */ \ + this_unit = end_unit - 1; \ + if (start_unit == end_unit - 1) { \ + mask = ~((~(type) 0) << ((ts - (end % ts)) % ts)); \ + if (__start % ts) \ + mask |= (~((type) 0)) << (ts - (__start % ts)); \ + cmask = (type) __v << ((ts - (end % ts)) % ts); \ + cmask &= ~mask; \ + __ptr[this_unit] &= mask; \ + __ptr[this_unit] |= cmask; \ + break; \ + } \ + if (end % ts) { \ + cshift = end % ts; \ + mask = ~((~(type) 0) << (ts - cshift)); \ + cmask = (type) __v << (ts - cshift); \ + cmask &= ~mask; \ + __ptr[this_unit] &= mask; \ + __ptr[this_unit] |= cmask; \ + __v = _bt_piecewise_rshift(__v, cshift); \ + end -= cshift; \ + this_unit--; \ + } \ + for (; (long) this_unit >= (long) start_unit + 1; this_unit--) { \ + __ptr[this_unit] = (type) __v; \ + __v = _bt_piecewise_rshift(__v, ts); \ + end -= ts; \ + } \ + if (__start % ts) { \ + mask = (~(type) 0) << (ts - (__start % ts)); \ + cmask = (type) __v; \ + cmask &= ~mask; \ + __ptr[this_unit] &= mask; \ + __ptr[this_unit] |= cmask; \ + } else \ + __ptr[this_unit] = (type) __v; \ +} while (0) + +/* + * bt_bitfield_write - write integer to a bitfield in native endianness + * bt_bitfield_write_le - write integer to a bitfield in little endian + * bt_bitfield_write_be - write integer to a bitfield in big endian + */ + +#if (__BYTE_ORDER == __LITTLE_ENDIAN) + +#define bt_bitfield_write(ptr, type, _start, _length, _v) \ + _bt_bitfield_write_le(ptr, type, _start, _length, _v) + +#define bt_bitfield_write_le(ptr, type, _start, _length, _v) \ + _bt_bitfield_write_le(ptr, type, _start, _length, _v) + +#define bt_bitfield_write_be(ptr, type, _start, _length, _v) \ + _bt_bitfield_write_be(ptr, unsigned char, _start, _length, _v) + +#elif (__BYTE_ORDER == __BIG_ENDIAN) + +#define bt_bitfield_write(ptr, type, _start, _length, _v) \ + _bt_bitfield_write_be(ptr, type, _start, _length, _v) + +#define bt_bitfield_write_le(ptr, type, _start, _length, _v) \ + _bt_bitfield_write_le(ptr, unsigned char, _start, _length, _v) + +#define bt_bitfield_write_be(ptr, type, _start, _length, _v) \ + _bt_bitfield_write_be(ptr, type, _start, _length, _v) + +#else /* (BYTE_ORDER == PDP_ENDIAN) */ + +#error "Byte order not supported" + +#endif + +#define _bt_bitfield_read_le(_ptr, type, _start, _length, _vptr) \ +do { \ + typeof(*(_vptr)) *__vptr = (_vptr); \ + typeof(*__vptr) __v; \ + type *__ptr = (void *) (_ptr); \ + unsigned long __start = (_start), __length = (_length); \ + type mask, cmask; \ + unsigned long ts = sizeof(type) * CHAR_BIT; /* type size */ \ + unsigned long start_unit, end_unit, this_unit; \ + unsigned long end, cshift; /* cshift is "complement shift" */ \ + \ + if (!__length) { \ + *__vptr = 0; \ + break; \ + } \ + \ + end = __start + __length; \ + start_unit = __start / ts; \ + end_unit = (end + (ts - 1)) / ts; \ + \ + this_unit = end_unit - 1; \ + if (_bt_is_signed_type(typeof(__v)) \ + && (__ptr[this_unit] & ((type) 1 << ((end % ts ? : ts) - 1)))) \ + __v = ~(typeof(__v)) 0; \ + else \ + __v = 0; \ + if (start_unit == end_unit - 1) { \ + cmask = __ptr[this_unit]; \ + cmask >>= (__start % ts); \ + if ((end - __start) % ts) { \ + mask = ~((~(type) 0) << (end - __start)); \ + cmask &= mask; \ + } \ + __v = _bt_piecewise_lshift(__v, end - __start); \ + __v |= _bt_unsigned_cast(typeof(__v), cmask); \ + *__vptr = __v; \ + break; \ + } \ + if (end % ts) { \ + cshift = end % ts; \ + mask = ~((~(type) 0) << cshift); \ + cmask = __ptr[this_unit]; \ + cmask &= mask; \ + __v = _bt_piecewise_lshift(__v, cshift); \ + __v |= _bt_unsigned_cast(typeof(__v), cmask); \ + end -= cshift; \ + this_unit--; \ + } \ + for (; (long) this_unit >= (long) start_unit + 1; this_unit--) { \ + __v = _bt_piecewise_lshift(__v, ts); \ + __v |= _bt_unsigned_cast(typeof(__v), __ptr[this_unit]);\ + end -= ts; \ + } \ + if (__start % ts) { \ + mask = ~((~(type) 0) << (ts - (__start % ts))); \ + cmask = __ptr[this_unit]; \ + cmask >>= (__start % ts); \ + cmask &= mask; \ + __v = _bt_piecewise_lshift(__v, ts - (__start % ts)); \ + __v |= _bt_unsigned_cast(typeof(__v), cmask); \ + } else { \ + __v = _bt_piecewise_lshift(__v, ts); \ + __v |= _bt_unsigned_cast(typeof(__v), __ptr[this_unit]);\ + } \ + *__vptr = __v; \ +} while (0) + +#define _bt_bitfield_read_be(_ptr, type, _start, _length, _vptr) \ +do { \ + typeof(*(_vptr)) *__vptr = (_vptr); \ + typeof(*__vptr) __v; \ + type *__ptr = (void *) (_ptr); \ + unsigned long __start = (_start), __length = (_length); \ + type mask, cmask; \ + unsigned long ts = sizeof(type) * CHAR_BIT; /* type size */ \ + unsigned long start_unit, end_unit, this_unit; \ + unsigned long end, cshift; /* cshift is "complement shift" */ \ + \ + if (!__length) { \ + *__vptr = 0; \ + break; \ + } \ + \ + end = __start + __length; \ + start_unit = __start / ts; \ + end_unit = (end + (ts - 1)) / ts; \ + \ + this_unit = start_unit; \ + if (_bt_is_signed_type(typeof(__v)) \ + && (__ptr[this_unit] & ((type) 1 << (ts - (__start % ts) - 1)))) \ + __v = ~(typeof(__v)) 0; \ + else \ + __v = 0; \ + if (start_unit == end_unit - 1) { \ + cmask = __ptr[this_unit]; \ + cmask >>= (ts - (end % ts)) % ts; \ + if ((end - __start) % ts) { \ + mask = ~((~(type) 0) << (end - __start)); \ + cmask &= mask; \ + } \ + __v = _bt_piecewise_lshift(__v, end - __start); \ + __v |= _bt_unsigned_cast(typeof(__v), cmask); \ + *__vptr = __v; \ + break; \ + } \ + if (__start % ts) { \ + cshift = __start % ts; \ + mask = ~((~(type) 0) << (ts - cshift)); \ + cmask = __ptr[this_unit]; \ + cmask &= mask; \ + __v = _bt_piecewise_lshift(__v, ts - cshift); \ + __v |= _bt_unsigned_cast(typeof(__v), cmask); \ + __start += ts - cshift; \ + this_unit++; \ + } \ + for (; this_unit < end_unit - 1; this_unit++) { \ + __v = _bt_piecewise_lshift(__v, ts); \ + __v |= _bt_unsigned_cast(typeof(__v), __ptr[this_unit]);\ + __start += ts; \ + } \ + if (end % ts) { \ + mask = ~((~(type) 0) << (end % ts)); \ + cmask = __ptr[this_unit]; \ + cmask >>= ts - (end % ts); \ + cmask &= mask; \ + __v = _bt_piecewise_lshift(__v, end % ts); \ + __v |= _bt_unsigned_cast(typeof(__v), cmask); \ + } else { \ + __v = _bt_piecewise_lshift(__v, ts); \ + __v |= _bt_unsigned_cast(typeof(__v), __ptr[this_unit]);\ + } \ + *__vptr = __v; \ +} while (0) + +/* + * bt_bitfield_read - read integer from a bitfield in native endianness + * bt_bitfield_read_le - read integer from a bitfield in little endian + * bt_bitfield_read_be - read integer from a bitfield in big endian + */ + +#if (__BYTE_ORDER == __LITTLE_ENDIAN) + +#define bt_bitfield_read(_ptr, type, _start, _length, _vptr) \ + _bt_bitfield_read_le(_ptr, type, _start, _length, _vptr) + +#define bt_bitfield_read_le(_ptr, type, _start, _length, _vptr) \ + _bt_bitfield_read_le(_ptr, type, _start, _length, _vptr) + +#define bt_bitfield_read_be(_ptr, type, _start, _length, _vptr) \ + _bt_bitfield_read_be(_ptr, unsigned char, _start, _length, _vptr) + +#elif (__BYTE_ORDER == __BIG_ENDIAN) + +#define bt_bitfield_read(_ptr, type, _start, _length, _vptr) \ + _bt_bitfield_read_be(_ptr, type, _start, _length, _vptr) + +#define bt_bitfield_read_le(_ptr, type, _start, _length, _vptr) \ + _bt_bitfield_read_le(_ptr, unsigned char, _start, _length, _vptr) + +#define bt_bitfield_read_be(_ptr, type, _start, _length, _vptr) \ + _bt_bitfield_read_be(_ptr, type, _start, _length, _vptr) + +#else /* (__BYTE_ORDER == __PDP_ENDIAN) */ + +#error "Byte order not supported" + +#endif + +#endif /* _BABELTRACE_BITFIELD_H */ --- linux-3.11.0.orig/ubuntu/lttng/lib/bug.h +++ linux-3.11.0/ubuntu/lttng/lib/bug.h @@ -0,0 +1,41 @@ +#ifndef _LTTNG_BUG_H +#define _LTTNG_BUG_H + +/* + * lib/bug.h + * + * Copyright (C) 2010-2012 Mathieu Desnoyers + * + * 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; only + * version 2.1 of the License. + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/** + * BUILD_RUNTIME_BUG_ON - check condition at build (if constant) or runtime + * @condition: the condition which should be false. + * + * If the condition is a constant and true, the compiler will generate a build + * error. If the condition is not constant, a BUG will be triggered at runtime + * if the condition is ever true. If the condition is constant and false, no + * code is emitted. + */ +#define BUILD_RUNTIME_BUG_ON(condition) \ + do { \ + if (__builtin_constant_p(condition)) \ + BUILD_BUG_ON(condition); \ + else \ + BUG_ON(condition); \ + } while (0) + +#endif --- linux-3.11.0.orig/ubuntu/lttng/lib/align.h +++ linux-3.11.0/ubuntu/lttng/lib/align.h @@ -0,0 +1,73 @@ +#ifndef _LTTNG_ALIGN_H +#define _LTTNG_ALIGN_H + +/* + * lib/align.h + * + * Copyright (C) 2010-2012 Mathieu Desnoyers + * + * 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; only + * version 2.1 of the License. + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifdef __KERNEL__ + +#include +#include "bug.h" + +#define ALIGN_FLOOR(x, a) __ALIGN_FLOOR_MASK(x, (typeof(x)) (a) - 1) +#define __ALIGN_FLOOR_MASK(x, mask) ((x) & ~(mask)) +#define PTR_ALIGN_FLOOR(p, a) \ + ((typeof(p)) ALIGN_FLOOR((unsigned long) (p), a)) + +/* + * Align pointer on natural object alignment. + */ +#define object_align(obj) PTR_ALIGN(obj, __alignof__(*(obj))) +#define object_align_floor(obj) PTR_ALIGN_FLOOR(obj, __alignof__(*(obj))) + +/** + * offset_align - Calculate the offset needed to align an object on its natural + * alignment towards higher addresses. + * @align_drift: object offset from an "alignment"-aligned address. + * @alignment: natural object alignment. Must be non-zero, power of 2. + * + * Returns the offset that must be added to align towards higher + * addresses. + */ +#define offset_align(align_drift, alignment) \ + ({ \ + BUILD_RUNTIME_BUG_ON((alignment) == 0 \ + || ((alignment) & ((alignment) - 1))); \ + (((alignment) - (align_drift)) & ((alignment) - 1)); \ + }) + +/** + * offset_align_floor - Calculate the offset needed to align an object + * on its natural alignment towards lower addresses. + * @align_drift: object offset from an "alignment"-aligned address. + * @alignment: natural object alignment. Must be non-zero, power of 2. + * + * Returns the offset that must be substracted to align towards lower addresses. + */ +#define offset_align_floor(align_drift, alignment) \ + ({ \ + BUILD_RUNTIME_BUG_ON((alignment) == 0 \ + || ((alignment) & ((alignment) - 1))); \ + (((align_drift) - (alignment)) & ((alignment) - 1); \ + }) + +#endif /* __KERNEL__ */ + +#endif --- linux-3.11.0.orig/ubuntu/lttng/lib/prio_heap/lttng_prio_heap.c +++ linux-3.11.0/ubuntu/lttng/lib/prio_heap/lttng_prio_heap.c @@ -0,0 +1,215 @@ +/* + * lttng_prio_heap.c + * + * Priority heap containing pointers. Based on CLRS, chapter 6. + * + * Copyright 2011 - Mathieu Desnoyers + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +#include +#include "lttng_prio_heap.h" + +#ifdef DEBUG_HEAP +void lttng_check_heap(const struct lttng_ptr_heap *heap) +{ + size_t i; + + if (!heap->len) + return; + + for (i = 1; i < heap->len; i++) + WARN_ON_ONCE(!heap->gt(heap->ptrs[i], heap->ptrs[0])); +} +#endif + +static +size_t parent(size_t i) +{ + return (i -1) >> 1; +} + +static +size_t left(size_t i) +{ + return (i << 1) + 1; +} + +static +size_t right(size_t i) +{ + return (i << 1) + 2; +} + +/* + * Copy of heap->ptrs pointer is invalid after heap_grow. + */ +static +int heap_grow(struct lttng_ptr_heap *heap, size_t new_len) +{ + void **new_ptrs; + + if (heap->alloc_len >= new_len) + return 0; + + heap->alloc_len = max_t(size_t, new_len, heap->alloc_len << 1); + new_ptrs = kmalloc(heap->alloc_len * sizeof(void *), heap->gfpmask); + if (!new_ptrs) + return -ENOMEM; + if (heap->ptrs) + memcpy(new_ptrs, heap->ptrs, heap->len * sizeof(void *)); + kfree(heap->ptrs); + heap->ptrs = new_ptrs; + return 0; +} + +static +int heap_set_len(struct lttng_ptr_heap *heap, size_t new_len) +{ + int ret; + + ret = heap_grow(heap, new_len); + if (ret) + return ret; + heap->len = new_len; + return 0; +} + +int lttng_heap_init(struct lttng_ptr_heap *heap, size_t alloc_len, + gfp_t gfpmask, int gt(void *a, void *b)) +{ + heap->ptrs = NULL; + heap->len = 0; + heap->alloc_len = 0; + heap->gt = gt; + heap->gfpmask = gfpmask; + /* + * Minimum size allocated is 1 entry to ensure memory allocation + * never fails within heap_replace_max. + */ + return heap_grow(heap, max_t(size_t, 1, alloc_len)); +} + +void lttng_heap_free(struct lttng_ptr_heap *heap) +{ + kfree(heap->ptrs); +} + +static void heapify(struct lttng_ptr_heap *heap, size_t i) +{ + void **ptrs = heap->ptrs; + size_t l, r, largest; + + for (;;) { + void *tmp; + + l = left(i); + r = right(i); + if (l < heap->len && heap->gt(ptrs[l], ptrs[i])) + largest = l; + else + largest = i; + if (r < heap->len && heap->gt(ptrs[r], ptrs[largest])) + largest = r; + if (largest == i) + break; + tmp = ptrs[i]; + ptrs[i] = ptrs[largest]; + ptrs[largest] = tmp; + i = largest; + } + lttng_check_heap(heap); +} + +void *lttng_heap_replace_max(struct lttng_ptr_heap *heap, void *p) +{ + void *res; + + if (!heap->len) { + (void) heap_set_len(heap, 1); + heap->ptrs[0] = p; + lttng_check_heap(heap); + return NULL; + } + + /* Replace the current max and heapify */ + res = heap->ptrs[0]; + heap->ptrs[0] = p; + heapify(heap, 0); + return res; +} + +int lttng_heap_insert(struct lttng_ptr_heap *heap, void *p) +{ + void **ptrs; + size_t pos; + int ret; + + ret = heap_set_len(heap, heap->len + 1); + if (ret) + return ret; + ptrs = heap->ptrs; + pos = heap->len - 1; + while (pos > 0 && heap->gt(p, ptrs[parent(pos)])) { + /* Move parent down until we find the right spot */ + ptrs[pos] = ptrs[parent(pos)]; + pos = parent(pos); + } + ptrs[pos] = p; + lttng_check_heap(heap); + return 0; +} + +void *lttng_heap_remove(struct lttng_ptr_heap *heap) +{ + switch (heap->len) { + case 0: + return NULL; + case 1: + (void) heap_set_len(heap, 0); + return heap->ptrs[0]; + } + /* Shrink, replace the current max by previous last entry and heapify */ + heap_set_len(heap, heap->len - 1); + /* len changed. previous last entry is at heap->len */ + return lttng_heap_replace_max(heap, heap->ptrs[heap->len]); +} + +void *lttng_heap_cherrypick(struct lttng_ptr_heap *heap, void *p) +{ + size_t pos, len = heap->len; + + for (pos = 0; pos < len; pos++) + if (heap->ptrs[pos] == p) + goto found; + return NULL; +found: + if (heap->len == 1) { + (void) heap_set_len(heap, 0); + lttng_check_heap(heap); + return heap->ptrs[0]; + } + /* Replace p with previous last entry and heapify. */ + heap_set_len(heap, heap->len - 1); + /* len changed. previous last entry is at heap->len */ + heap->ptrs[pos] = heap->ptrs[heap->len]; + heapify(heap, pos); + return p; +} --- linux-3.11.0.orig/ubuntu/lttng/lib/prio_heap/lttng_prio_heap.h +++ linux-3.11.0/ubuntu/lttng/lib/prio_heap/lttng_prio_heap.h @@ -0,0 +1,125 @@ +#ifndef _LTTNG_PRIO_HEAP_H +#define _LTTNG_PRIO_HEAP_H + +/* + * lttng_prio_heap.h + * + * Priority heap containing pointers. Based on CLRS, chapter 6. + * + * Copyright 2011 - Mathieu Desnoyers + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +#include + +struct lttng_ptr_heap { + size_t len, alloc_len; + void **ptrs; + int (*gt)(void *a, void *b); + gfp_t gfpmask; +}; + +#ifdef DEBUG_HEAP +void lttng_check_heap(const struct lttng_ptr_heap *heap); +#else +static inline +void lttng_check_heap(const struct lttng_ptr_heap *heap) +{ +} +#endif + +/** + * lttng_heap_maximum - return the largest element in the heap + * @heap: the heap to be operated on + * + * Returns the largest element in the heap, without performing any modification + * to the heap structure. Returns NULL if the heap is empty. + */ +static inline void *lttng_heap_maximum(const struct lttng_ptr_heap *heap) +{ + lttng_check_heap(heap); + return heap->len ? heap->ptrs[0] : NULL; +} + +/** + * lttng_heap_init - initialize the heap + * @heap: the heap to initialize + * @alloc_len: number of elements initially allocated + * @gfp: allocation flags + * @gt: function to compare the elements + * + * Returns -ENOMEM if out of memory. + */ +extern int lttng_heap_init(struct lttng_ptr_heap *heap, + size_t alloc_len, gfp_t gfpmask, + int gt(void *a, void *b)); + +/** + * lttng_heap_free - free the heap + * @heap: the heap to free + */ +extern void lttng_heap_free(struct lttng_ptr_heap *heap); + +/** + * lttng_heap_insert - insert an element into the heap + * @heap: the heap to be operated on + * @p: the element to add + * + * Insert an element into the heap. + * + * Returns -ENOMEM if out of memory. + */ +extern int lttng_heap_insert(struct lttng_ptr_heap *heap, void *p); + +/** + * lttng_heap_remove - remove the largest element from the heap + * @heap: the heap to be operated on + * + * Returns the largest element in the heap. It removes this element from the + * heap. Returns NULL if the heap is empty. + */ +extern void *lttng_heap_remove(struct lttng_ptr_heap *heap); + +/** + * lttng_heap_cherrypick - remove a given element from the heap + * @heap: the heap to be operated on + * @p: the element + * + * Remove the given element from the heap. Return the element if present, else + * return NULL. This algorithm has a complexity of O(n), which is higher than + * O(log(n)) provided by the rest of this API. + */ +extern void *lttng_heap_cherrypick(struct lttng_ptr_heap *heap, void *p); + +/** + * lttng_heap_replace_max - replace the the largest element from the heap + * @heap: the heap to be operated on + * @p: the pointer to be inserted as topmost element replacement + * + * Returns the largest element in the heap. It removes this element from the + * heap. The heap is rebalanced only once after the insertion. Returns NULL if + * the heap is empty. + * + * This is the equivalent of calling heap_remove() and then heap_insert(), but + * it only rebalances the heap once. It never allocates memory. + */ +extern void *lttng_heap_replace_max(struct lttng_ptr_heap *heap, void *p); + +#endif /* _LTTNG_PRIO_HEAP_H */ --- linux-3.11.0.orig/ubuntu/lttng/lib/ringbuffer/backend.h +++ linux-3.11.0/ubuntu/lttng/lib/ringbuffer/backend.h @@ -0,0 +1,272 @@ +#ifndef _LIB_RING_BUFFER_BACKEND_H +#define _LIB_RING_BUFFER_BACKEND_H + +/* + * lib/ringbuffer/backend.h + * + * Ring buffer backend (API). + * + * Copyright (C) 2010-2012 Mathieu Desnoyers + * + * 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; only + * version 2.1 of the License. + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + * + * Credits to Steven Rostedt for proposing to use an extra-subbuffer owned by + * the reader in flight recorder mode. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +/* Internal helpers */ +#include "../../wrapper/ringbuffer/backend_internal.h" +#include "../../wrapper/ringbuffer/frontend_internal.h" + +/* Ring buffer backend API */ + +/* Ring buffer backend access (read/write) */ + +extern size_t lib_ring_buffer_read(struct lib_ring_buffer_backend *bufb, + size_t offset, void *dest, size_t len); + +extern int __lib_ring_buffer_copy_to_user(struct lib_ring_buffer_backend *bufb, + size_t offset, void __user *dest, + size_t len); + +extern int lib_ring_buffer_read_cstr(struct lib_ring_buffer_backend *bufb, + size_t offset, void *dest, size_t len); + +extern struct page ** +lib_ring_buffer_read_get_page(struct lib_ring_buffer_backend *bufb, size_t offset, + void ***virt); + +/* + * Return the address where a given offset is located. + * Should be used to get the current subbuffer header pointer. Given we know + * it's never on a page boundary, it's safe to write directly to this address, + * as long as the write is never bigger than a page size. + */ +extern void * +lib_ring_buffer_offset_address(struct lib_ring_buffer_backend *bufb, + size_t offset); +extern void * +lib_ring_buffer_read_offset_address(struct lib_ring_buffer_backend *bufb, + size_t offset); + +/** + * lib_ring_buffer_write - write data to a buffer backend + * @config : ring buffer instance configuration + * @ctx: ring buffer context. (input arguments only) + * @src : source pointer to copy from + * @len : length of data to copy + * + * This function copies "len" bytes of data from a source pointer to a buffer + * backend, at the current context offset. This is more or less a buffer + * backend-specific memcpy() operation. Calls the slow path (_ring_buffer_write) + * if copy is crossing a page boundary. + */ +static inline +void lib_ring_buffer_write(const struct lib_ring_buffer_config *config, + struct lib_ring_buffer_ctx *ctx, + const void *src, size_t len) +{ + struct lib_ring_buffer_backend *bufb = &ctx->buf->backend; + struct channel_backend *chanb = &ctx->chan->backend; + size_t sbidx, index; + size_t offset = ctx->buf_offset; + ssize_t pagecpy; + struct lib_ring_buffer_backend_pages *rpages; + unsigned long sb_bindex, id; + + if (unlikely(!len)) + return; + offset &= chanb->buf_size - 1; + sbidx = offset >> chanb->subbuf_size_order; + index = (offset & (chanb->subbuf_size - 1)) >> PAGE_SHIFT; + pagecpy = min_t(size_t, len, (-offset) & ~PAGE_MASK); + id = bufb->buf_wsb[sbidx].id; + sb_bindex = subbuffer_id_get_index(config, id); + rpages = bufb->array[sb_bindex]; + CHAN_WARN_ON(ctx->chan, + config->mode == RING_BUFFER_OVERWRITE + && subbuffer_id_is_noref(config, id)); + if (likely(pagecpy == len)) + lib_ring_buffer_do_copy(config, + rpages->p[index].virt + + (offset & ~PAGE_MASK), + src, len); + else + _lib_ring_buffer_write(bufb, offset, src, len, 0); + ctx->buf_offset += len; +} + +/** + * lib_ring_buffer_memset - write len bytes of c to a buffer backend + * @config : ring buffer instance configuration + * @bufb : ring buffer backend + * @offset : offset within the buffer + * @c : the byte to copy + * @len : number of bytes to copy + * + * This function writes "len" bytes of "c" to a buffer backend, at a specific + * offset. This is more or less a buffer backend-specific memset() operation. + * Calls the slow path (_ring_buffer_memset) if write is crossing a page + * boundary. + */ +static inline +void lib_ring_buffer_memset(const struct lib_ring_buffer_config *config, + struct lib_ring_buffer_ctx *ctx, int c, size_t len) +{ + + struct lib_ring_buffer_backend *bufb = &ctx->buf->backend; + struct channel_backend *chanb = &ctx->chan->backend; + size_t sbidx, index; + size_t offset = ctx->buf_offset; + ssize_t pagecpy; + struct lib_ring_buffer_backend_pages *rpages; + unsigned long sb_bindex, id; + + if (unlikely(!len)) + return; + offset &= chanb->buf_size - 1; + sbidx = offset >> chanb->subbuf_size_order; + index = (offset & (chanb->subbuf_size - 1)) >> PAGE_SHIFT; + pagecpy = min_t(size_t, len, (-offset) & ~PAGE_MASK); + id = bufb->buf_wsb[sbidx].id; + sb_bindex = subbuffer_id_get_index(config, id); + rpages = bufb->array[sb_bindex]; + CHAN_WARN_ON(ctx->chan, + config->mode == RING_BUFFER_OVERWRITE + && subbuffer_id_is_noref(config, id)); + if (likely(pagecpy == len)) + lib_ring_buffer_do_memset(rpages->p[index].virt + + (offset & ~PAGE_MASK), + c, len); + else + _lib_ring_buffer_memset(bufb, offset, c, len, 0); + ctx->buf_offset += len; +} + +/** + * lib_ring_buffer_copy_from_user_inatomic - write userspace data to a buffer backend + * @config : ring buffer instance configuration + * @ctx: ring buffer context. (input arguments only) + * @src : userspace source pointer to copy from + * @len : length of data to copy + * + * This function copies "len" bytes of data from a userspace pointer to a + * buffer backend, at the current context offset. This is more or less a buffer + * backend-specific memcpy() operation. Calls the slow path + * (_ring_buffer_write_from_user_inatomic) if copy is crossing a page boundary. + * Disable the page fault handler to ensure we never try to take the mmap_sem. + */ +static inline +void lib_ring_buffer_copy_from_user_inatomic(const struct lib_ring_buffer_config *config, + struct lib_ring_buffer_ctx *ctx, + const void __user *src, size_t len) +{ + struct lib_ring_buffer_backend *bufb = &ctx->buf->backend; + struct channel_backend *chanb = &ctx->chan->backend; + size_t sbidx, index; + size_t offset = ctx->buf_offset; + ssize_t pagecpy; + struct lib_ring_buffer_backend_pages *rpages; + unsigned long sb_bindex, id; + unsigned long ret; + mm_segment_t old_fs = get_fs(); + + if (unlikely(!len)) + return; + offset &= chanb->buf_size - 1; + sbidx = offset >> chanb->subbuf_size_order; + index = (offset & (chanb->subbuf_size - 1)) >> PAGE_SHIFT; + pagecpy = min_t(size_t, len, (-offset) & ~PAGE_MASK); + id = bufb->buf_wsb[sbidx].id; + sb_bindex = subbuffer_id_get_index(config, id); + rpages = bufb->array[sb_bindex]; + CHAN_WARN_ON(ctx->chan, + config->mode == RING_BUFFER_OVERWRITE + && subbuffer_id_is_noref(config, id)); + + set_fs(KERNEL_DS); + pagefault_disable(); + if (unlikely(!access_ok(VERIFY_READ, src, len))) + goto fill_buffer; + + if (likely(pagecpy == len)) { + ret = lib_ring_buffer_do_copy_from_user_inatomic( + rpages->p[index].virt + (offset & ~PAGE_MASK), + src, len); + if (unlikely(ret > 0)) { + len -= (pagecpy - ret); + offset += (pagecpy - ret); + goto fill_buffer; + } + } else { + _lib_ring_buffer_copy_from_user_inatomic(bufb, offset, src, len, 0); + } + pagefault_enable(); + set_fs(old_fs); + ctx->buf_offset += len; + + return; + +fill_buffer: + pagefault_enable(); + set_fs(old_fs); + /* + * In the error path we call the slow path version to avoid + * the pollution of static inline code. + */ + _lib_ring_buffer_memset(bufb, offset, 0, len, 0); +} + +/* + * This accessor counts the number of unread records in a buffer. + * It only provides a consistent value if no reads not writes are performed + * concurrently. + */ +static inline +unsigned long lib_ring_buffer_get_records_unread( + const struct lib_ring_buffer_config *config, + struct lib_ring_buffer *buf) +{ + struct lib_ring_buffer_backend *bufb = &buf->backend; + struct lib_ring_buffer_backend_pages *pages; + unsigned long records_unread = 0, sb_bindex, id; + unsigned int i; + + for (i = 0; i < bufb->chan->backend.num_subbuf; i++) { + id = bufb->buf_wsb[i].id; + sb_bindex = subbuffer_id_get_index(config, id); + pages = bufb->array[sb_bindex]; + records_unread += v_read(config, &pages->records_unread); + } + if (config->mode == RING_BUFFER_OVERWRITE) { + id = bufb->buf_rsb.id; + sb_bindex = subbuffer_id_get_index(config, id); + pages = bufb->array[sb_bindex]; + records_unread += v_read(config, &pages->records_unread); + } + return records_unread; +} + +#endif /* _LIB_RING_BUFFER_BACKEND_H */ --- linux-3.11.0.orig/ubuntu/lttng/lib/ringbuffer/frontend_api.h +++ linux-3.11.0/ubuntu/lttng/lib/ringbuffer/frontend_api.h @@ -0,0 +1,371 @@ +#ifndef _LIB_RING_BUFFER_FRONTEND_API_H +#define _LIB_RING_BUFFER_FRONTEND_API_H + +/* + * lib/ringbuffer/frontend_api.h + * + * Ring Buffer Library Synchronization Header (buffer write API). + * + * Copyright (C) 2005-2012 Mathieu Desnoyers + * + * 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; only + * version 2.1 of the License. + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + * + * Author: + * Mathieu Desnoyers + * + * See ring_buffer_frontend.c for more information on wait-free algorithms. + * See linux/ringbuffer/frontend.h for channel allocation and read-side API. + */ + +#include "../../wrapper/ringbuffer/frontend.h" +#include +#include + +/** + * lib_ring_buffer_get_cpu - Precedes ring buffer reserve/commit. + * + * Disables preemption (acts as a RCU read-side critical section) and keeps a + * ring buffer nesting count as supplementary safety net to ensure tracer client + * code will never trigger an endless recursion. Returns the processor ID on + * success, -EPERM on failure (nesting count too high). + * + * asm volatile and "memory" clobber prevent the compiler from moving + * instructions out of the ring buffer nesting count. This is required to ensure + * that probe side-effects which can cause recursion (e.g. unforeseen traps, + * divisions by 0, ...) are triggered within the incremented nesting count + * section. + */ +static inline +int lib_ring_buffer_get_cpu(const struct lib_ring_buffer_config *config) +{ + int cpu, nesting; + + rcu_read_lock_sched_notrace(); + cpu = smp_processor_id(); + nesting = ++per_cpu(lib_ring_buffer_nesting, cpu); + barrier(); + + if (unlikely(nesting > 4)) { + WARN_ON_ONCE(1); + per_cpu(lib_ring_buffer_nesting, cpu)--; + rcu_read_unlock_sched_notrace(); + return -EPERM; + } else + return cpu; +} + +/** + * lib_ring_buffer_put_cpu - Follows ring buffer reserve/commit. + */ +static inline +void lib_ring_buffer_put_cpu(const struct lib_ring_buffer_config *config) +{ + barrier(); + __get_cpu_var(lib_ring_buffer_nesting)--; + rcu_read_unlock_sched_notrace(); +} + +/* + * lib_ring_buffer_try_reserve is called by lib_ring_buffer_reserve(). It is not + * part of the API per se. + * + * returns 0 if reserve ok, or 1 if the slow path must be taken. + */ +static inline +int lib_ring_buffer_try_reserve(const struct lib_ring_buffer_config *config, + struct lib_ring_buffer_ctx *ctx, + unsigned long *o_begin, unsigned long *o_end, + unsigned long *o_old, size_t *before_hdr_pad) +{ + struct channel *chan = ctx->chan; + struct lib_ring_buffer *buf = ctx->buf; + *o_begin = v_read(config, &buf->offset); + *o_old = *o_begin; + + ctx->tsc = lib_ring_buffer_clock_read(chan); + if ((int64_t) ctx->tsc == -EIO) + return 1; + + /* + * Prefetch cacheline for read because we have to read the previous + * commit counter to increment it and commit seq value to compare it to + * the commit counter. + */ + prefetch(&buf->commit_hot[subbuf_index(*o_begin, chan)]); + + if (last_tsc_overflow(config, buf, ctx->tsc)) + ctx->rflags |= RING_BUFFER_RFLAG_FULL_TSC; + + if (unlikely(subbuf_offset(*o_begin, chan) == 0)) + return 1; + + ctx->slot_size = record_header_size(config, chan, *o_begin, + before_hdr_pad, ctx); + ctx->slot_size += + lib_ring_buffer_align(*o_begin + ctx->slot_size, + ctx->largest_align) + ctx->data_size; + if (unlikely((subbuf_offset(*o_begin, chan) + ctx->slot_size) + > chan->backend.subbuf_size)) + return 1; + + /* + * Record fits in the current buffer and we are not on a switch + * boundary. It's safe to write. + */ + *o_end = *o_begin + ctx->slot_size; + + if (unlikely((subbuf_offset(*o_end, chan)) == 0)) + /* + * The offset_end will fall at the very beginning of the next + * subbuffer. + */ + return 1; + + return 0; +} + +/** + * lib_ring_buffer_reserve - Reserve space in a ring buffer. + * @config: ring buffer instance configuration. + * @ctx: ring buffer context. (input and output) Must be already initialized. + * + * Atomic wait-free slot reservation. The reserved space starts at the context + * "pre_offset". Its length is "slot_size". The associated time-stamp is "tsc". + * + * Return : + * 0 on success. + * -EAGAIN if channel is disabled. + * -ENOSPC if event size is too large for packet. + * -ENOBUFS if there is currently not enough space in buffer for the event. + * -EIO if data cannot be written into the buffer for any other reason. + */ + +static inline +int lib_ring_buffer_reserve(const struct lib_ring_buffer_config *config, + struct lib_ring_buffer_ctx *ctx) +{ + struct channel *chan = ctx->chan; + struct lib_ring_buffer *buf; + unsigned long o_begin, o_end, o_old; + size_t before_hdr_pad = 0; + + if (atomic_read(&chan->record_disabled)) + return -EAGAIN; + + if (config->alloc == RING_BUFFER_ALLOC_PER_CPU) + buf = per_cpu_ptr(chan->backend.buf, ctx->cpu); + else + buf = chan->backend.buf; + if (atomic_read(&buf->record_disabled)) + return -EAGAIN; + ctx->buf = buf; + + /* + * Perform retryable operations. + */ + if (unlikely(lib_ring_buffer_try_reserve(config, ctx, &o_begin, + &o_end, &o_old, &before_hdr_pad))) + goto slow_path; + + if (unlikely(v_cmpxchg(config, &ctx->buf->offset, o_old, o_end) + != o_old)) + goto slow_path; + + /* + * Atomically update last_tsc. This update races against concurrent + * atomic updates, but the race will always cause supplementary full TSC + * record headers, never the opposite (missing a full TSC record header + * when it would be needed). + */ + save_last_tsc(config, ctx->buf, ctx->tsc); + + /* + * Push the reader if necessary + */ + lib_ring_buffer_reserve_push_reader(ctx->buf, chan, o_end - 1); + + /* + * Clear noref flag for this subbuffer. + */ + lib_ring_buffer_clear_noref(config, &ctx->buf->backend, + subbuf_index(o_end - 1, chan)); + + ctx->pre_offset = o_begin; + ctx->buf_offset = o_begin + before_hdr_pad; + return 0; +slow_path: + return lib_ring_buffer_reserve_slow(ctx); +} + +/** + * lib_ring_buffer_switch - Perform a sub-buffer switch for a per-cpu buffer. + * @config: ring buffer instance configuration. + * @buf: buffer + * @mode: buffer switch mode (SWITCH_ACTIVE or SWITCH_FLUSH) + * + * This operation is completely reentrant : can be called while tracing is + * active with absolutely no lock held. + * + * Note, however, that as a v_cmpxchg is used for some atomic operations and + * requires to be executed locally for per-CPU buffers, this function must be + * called from the CPU which owns the buffer for a ACTIVE flush, with preemption + * disabled, for RING_BUFFER_SYNC_PER_CPU configuration. + */ +static inline +void lib_ring_buffer_switch(const struct lib_ring_buffer_config *config, + struct lib_ring_buffer *buf, enum switch_mode mode) +{ + lib_ring_buffer_switch_slow(buf, mode); +} + +/* See ring_buffer_frontend_api.h for lib_ring_buffer_reserve(). */ + +/** + * lib_ring_buffer_commit - Commit an record. + * @config: ring buffer instance configuration. + * @ctx: ring buffer context. (input arguments only) + * + * Atomic unordered slot commit. Increments the commit count in the + * specified sub-buffer, and delivers it if necessary. + */ +static inline +void lib_ring_buffer_commit(const struct lib_ring_buffer_config *config, + const struct lib_ring_buffer_ctx *ctx) +{ + struct channel *chan = ctx->chan; + struct lib_ring_buffer *buf = ctx->buf; + unsigned long offset_end = ctx->buf_offset; + unsigned long endidx = subbuf_index(offset_end - 1, chan); + unsigned long commit_count; + + /* + * Must count record before incrementing the commit count. + */ + subbuffer_count_record(config, &buf->backend, endidx); + + /* + * Order all writes to buffer before the commit count update that will + * determine that the subbuffer is full. + */ + if (config->ipi == RING_BUFFER_IPI_BARRIER) { + /* + * Must write slot data before incrementing commit count. This + * compiler barrier is upgraded into a smp_mb() by the IPI sent + * by get_subbuf(). + */ + barrier(); + } else + smp_wmb(); + + v_add(config, ctx->slot_size, &buf->commit_hot[endidx].cc); + + /* + * commit count read can race with concurrent OOO commit count updates. + * This is only needed for lib_ring_buffer_check_deliver (for + * non-polling delivery only) and for + * lib_ring_buffer_write_commit_counter. The race can only cause the + * counter to be read with the same value more than once, which could + * cause : + * - Multiple delivery for the same sub-buffer (which is handled + * gracefully by the reader code) if the value is for a full + * sub-buffer. It's important that we can never miss a sub-buffer + * delivery. Re-reading the value after the v_add ensures this. + * - Reading a commit_count with a higher value that what was actually + * added to it for the lib_ring_buffer_write_commit_counter call + * (again caused by a concurrent committer). It does not matter, + * because this function is interested in the fact that the commit + * count reaches back the reserve offset for a specific sub-buffer, + * which is completely independent of the order. + */ + commit_count = v_read(config, &buf->commit_hot[endidx].cc); + + lib_ring_buffer_check_deliver(config, buf, chan, offset_end - 1, + commit_count, endidx); + /* + * Update used size at each commit. It's needed only for extracting + * ring_buffer buffers from vmcore, after crash. + */ + lib_ring_buffer_write_commit_counter(config, buf, chan, endidx, + ctx->buf_offset, commit_count, + ctx->slot_size); +} + +/** + * lib_ring_buffer_try_discard_reserve - Try discarding a record. + * @config: ring buffer instance configuration. + * @ctx: ring buffer context. (input arguments only) + * + * Only succeeds if no other record has been written after the record to + * discard. If discard fails, the record must be committed to the buffer. + * + * Returns 0 upon success, -EPERM if the record cannot be discarded. + */ +static inline +int lib_ring_buffer_try_discard_reserve(const struct lib_ring_buffer_config *config, + const struct lib_ring_buffer_ctx *ctx) +{ + struct lib_ring_buffer *buf = ctx->buf; + unsigned long end_offset = ctx->pre_offset + ctx->slot_size; + + /* + * We need to ensure that if the cmpxchg succeeds and discards the + * record, the next record will record a full TSC, because it cannot + * rely on the last_tsc associated with the discarded record to detect + * overflows. The only way to ensure this is to set the last_tsc to 0 + * (assuming no 64-bit TSC overflow), which forces to write a 64-bit + * timestamp in the next record. + * + * Note: if discard fails, we must leave the TSC in the record header. + * It is needed to keep track of TSC overflows for the following + * records. + */ + save_last_tsc(config, buf, 0ULL); + + if (likely(v_cmpxchg(config, &buf->offset, end_offset, ctx->pre_offset) + != end_offset)) + return -EPERM; + else + return 0; +} + +static inline +void channel_record_disable(const struct lib_ring_buffer_config *config, + struct channel *chan) +{ + atomic_inc(&chan->record_disabled); +} + +static inline +void channel_record_enable(const struct lib_ring_buffer_config *config, + struct channel *chan) +{ + atomic_dec(&chan->record_disabled); +} + +static inline +void lib_ring_buffer_record_disable(const struct lib_ring_buffer_config *config, + struct lib_ring_buffer *buf) +{ + atomic_inc(&buf->record_disabled); +} + +static inline +void lib_ring_buffer_record_enable(const struct lib_ring_buffer_config *config, + struct lib_ring_buffer *buf) +{ + atomic_dec(&buf->record_disabled); +} + +#endif /* _LIB_RING_BUFFER_FRONTEND_API_H */ --- linux-3.11.0.orig/ubuntu/lttng/lib/ringbuffer/vfs.h +++ linux-3.11.0/ubuntu/lttng/lib/ringbuffer/vfs.h @@ -0,0 +1,150 @@ +#ifndef _LIB_RING_BUFFER_VFS_H +#define _LIB_RING_BUFFER_VFS_H + +/* + * lib/ringbuffer/vfs.h + * + * Wait-free ring buffer VFS file operations. + * + * Copyright (C) 2005-2012 Mathieu Desnoyers + * + * 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; only + * version 2.1 of the License. + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + * + * Author: + * Mathieu Desnoyers + */ + +#include +#include + +/* VFS API */ + +extern const struct file_operations lib_ring_buffer_file_operations; + +/* + * Internal file operations. + */ + +struct lib_ring_buffer; + +int lib_ring_buffer_open(struct inode *inode, struct file *file, + struct lib_ring_buffer *buf); +int lib_ring_buffer_release(struct inode *inode, struct file *file, + struct lib_ring_buffer *buf); +unsigned int lib_ring_buffer_poll(struct file *filp, poll_table *wait, + struct lib_ring_buffer *buf); +ssize_t lib_ring_buffer_splice_read(struct file *in, loff_t *ppos, + struct pipe_inode_info *pipe, size_t len, + unsigned int flags, struct lib_ring_buffer *buf); +int lib_ring_buffer_mmap(struct file *filp, struct vm_area_struct *vma, + struct lib_ring_buffer *buf); + +/* Ring Buffer ioctl() and ioctl numbers */ +long lib_ring_buffer_ioctl(struct file *filp, unsigned int cmd, + unsigned long arg, struct lib_ring_buffer *buf); +#ifdef CONFIG_COMPAT +long lib_ring_buffer_compat_ioctl(struct file *filp, unsigned int cmd, + unsigned long arg, struct lib_ring_buffer *buf); +#endif + +ssize_t vfs_lib_ring_buffer_file_splice_read(struct file *in, loff_t *ppos, + struct pipe_inode_info *pipe, size_t len, unsigned int flags); +loff_t vfs_lib_ring_buffer_no_llseek(struct file *file, loff_t offset, + int origin); +int vfs_lib_ring_buffer_mmap(struct file *filp, struct vm_area_struct *vma); +ssize_t vfs_lib_ring_buffer_splice_read(struct file *in, loff_t *ppos, + struct pipe_inode_info *pipe, size_t len, + unsigned int flags); + +/* + * Use RING_BUFFER_GET_NEXT_SUBBUF / RING_BUFFER_PUT_NEXT_SUBBUF to read and + * consume sub-buffers sequentially. + * + * Reading sub-buffers without consuming them can be performed with: + * + * RING_BUFFER_SNAPSHOT + * RING_BUFFER_SNAPSHOT_GET_CONSUMED + * RING_BUFFER_SNAPSHOT_GET_PRODUCED + * + * to get the offset range to consume, and then by passing each sub-buffer + * offset to RING_BUFFER_GET_SUBBUF, read the sub-buffer, and then release it + * with RING_BUFFER_PUT_SUBBUF. + * + * Note that the "snapshot" API can be used to read the sub-buffer in reverse + * order, which is useful for flight recorder snapshots. + */ + +/* Get a snapshot of the current ring buffer producer and consumer positions */ +#define RING_BUFFER_SNAPSHOT _IO(0xF6, 0x00) +/* Get the consumer position (iteration start) */ +#define RING_BUFFER_SNAPSHOT_GET_CONSUMED _IOR(0xF6, 0x01, unsigned long) +/* Get the producer position (iteration end) */ +#define RING_BUFFER_SNAPSHOT_GET_PRODUCED _IOR(0xF6, 0x02, unsigned long) +/* Get exclusive read access to the specified sub-buffer position */ +#define RING_BUFFER_GET_SUBBUF _IOW(0xF6, 0x03, unsigned long) +/* Release exclusive sub-buffer access */ +#define RING_BUFFER_PUT_SUBBUF _IO(0xF6, 0x04) + +/* Get exclusive read access to the next sub-buffer that can be read. */ +#define RING_BUFFER_GET_NEXT_SUBBUF _IO(0xF6, 0x05) +/* Release exclusive sub-buffer access, move consumer forward. */ +#define RING_BUFFER_PUT_NEXT_SUBBUF _IO(0xF6, 0x06) +/* returns the size of the current sub-buffer, without padding (for mmap). */ +#define RING_BUFFER_GET_SUBBUF_SIZE _IOR(0xF6, 0x07, unsigned long) +/* returns the size of the current sub-buffer, with padding (for splice). */ +#define RING_BUFFER_GET_PADDED_SUBBUF_SIZE _IOR(0xF6, 0x08, unsigned long) +/* returns the maximum size for sub-buffers. */ +#define RING_BUFFER_GET_MAX_SUBBUF_SIZE _IOR(0xF6, 0x09, unsigned long) +/* returns the length to mmap. */ +#define RING_BUFFER_GET_MMAP_LEN _IOR(0xF6, 0x0A, unsigned long) +/* returns the offset of the subbuffer belonging to the mmap reader. */ +#define RING_BUFFER_GET_MMAP_READ_OFFSET _IOR(0xF6, 0x0B, unsigned long) +/* flush the current sub-buffer */ +#define RING_BUFFER_FLUSH _IO(0xF6, 0x0C) + +#ifdef CONFIG_COMPAT +/* Get a snapshot of the current ring buffer producer and consumer positions */ +#define RING_BUFFER_COMPAT_SNAPSHOT RING_BUFFER_SNAPSHOT +/* Get the consumer position (iteration start) */ +#define RING_BUFFER_COMPAT_SNAPSHOT_GET_CONSUMED \ + _IOR(0xF6, 0x01, compat_ulong_t) +/* Get the producer position (iteration end) */ +#define RING_BUFFER_COMPAT_SNAPSHOT_GET_PRODUCED \ + _IOR(0xF6, 0x02, compat_ulong_t) +/* Get exclusive read access to the specified sub-buffer position */ +#define RING_BUFFER_COMPAT_GET_SUBBUF _IOW(0xF6, 0x03, compat_ulong_t) +/* Release exclusive sub-buffer access */ +#define RING_BUFFER_COMPAT_PUT_SUBBUF RING_BUFFER_PUT_SUBBUF + +/* Get exclusive read access to the next sub-buffer that can be read. */ +#define RING_BUFFER_COMPAT_GET_NEXT_SUBBUF RING_BUFFER_GET_NEXT_SUBBUF +/* Release exclusive sub-buffer access, move consumer forward. */ +#define RING_BUFFER_COMPAT_PUT_NEXT_SUBBUF RING_BUFFER_PUT_NEXT_SUBBUF +/* returns the size of the current sub-buffer, without padding (for mmap). */ +#define RING_BUFFER_COMPAT_GET_SUBBUF_SIZE _IOR(0xF6, 0x07, compat_ulong_t) +/* returns the size of the current sub-buffer, with padding (for splice). */ +#define RING_BUFFER_COMPAT_GET_PADDED_SUBBUF_SIZE \ + _IOR(0xF6, 0x08, compat_ulong_t) +/* returns the maximum size for sub-buffers. */ +#define RING_BUFFER_COMPAT_GET_MAX_SUBBUF_SIZE _IOR(0xF6, 0x09, compat_ulong_t) +/* returns the length to mmap. */ +#define RING_BUFFER_COMPAT_GET_MMAP_LEN _IOR(0xF6, 0x0A, compat_ulong_t) +/* returns the offset of the subbuffer belonging to the mmap reader. */ +#define RING_BUFFER_COMPAT_GET_MMAP_READ_OFFSET _IOR(0xF6, 0x0B, compat_ulong_t) +/* flush the current sub-buffer */ +#define RING_BUFFER_COMPAT_FLUSH RING_BUFFER_FLUSH +#endif /* CONFIG_COMPAT */ + +#endif /* _LIB_RING_BUFFER_VFS_H */ --- linux-3.11.0.orig/ubuntu/lttng/lib/ringbuffer/frontend_internal.h +++ linux-3.11.0/ubuntu/lttng/lib/ringbuffer/frontend_internal.h @@ -0,0 +1,450 @@ +#ifndef _LIB_RING_BUFFER_FRONTEND_INTERNAL_H +#define _LIB_RING_BUFFER_FRONTEND_INTERNAL_H + +/* + * linux/ringbuffer/frontend_internal.h + * + * Ring Buffer Library Synchronization Header (internal helpers). + * + * Copyright (C) 2005-2012 Mathieu Desnoyers + * + * 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; only + * version 2.1 of the License. + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + * + * Author: + * Mathieu Desnoyers + * + * See ring_buffer_frontend.c for more information on wait-free algorithms. + */ + +#include "../../wrapper/ringbuffer/config.h" +#include "../../wrapper/ringbuffer/backend_types.h" +#include "../../wrapper/ringbuffer/frontend_types.h" +#include "../../lib/prio_heap/lttng_prio_heap.h" /* For per-CPU read-side iterator */ + +/* Buffer offset macros */ + +/* buf_trunc mask selects only the buffer number. */ +static inline +unsigned long buf_trunc(unsigned long offset, struct channel *chan) +{ + return offset & ~(chan->backend.buf_size - 1); + +} + +/* Select the buffer number value (counter). */ +static inline +unsigned long buf_trunc_val(unsigned long offset, struct channel *chan) +{ + return buf_trunc(offset, chan) >> chan->backend.buf_size_order; +} + +/* buf_offset mask selects only the offset within the current buffer. */ +static inline +unsigned long buf_offset(unsigned long offset, struct channel *chan) +{ + return offset & (chan->backend.buf_size - 1); +} + +/* subbuf_offset mask selects the offset within the current subbuffer. */ +static inline +unsigned long subbuf_offset(unsigned long offset, struct channel *chan) +{ + return offset & (chan->backend.subbuf_size - 1); +} + +/* subbuf_trunc mask selects the subbuffer number. */ +static inline +unsigned long subbuf_trunc(unsigned long offset, struct channel *chan) +{ + return offset & ~(chan->backend.subbuf_size - 1); +} + +/* subbuf_align aligns the offset to the next subbuffer. */ +static inline +unsigned long subbuf_align(unsigned long offset, struct channel *chan) +{ + return (offset + chan->backend.subbuf_size) + & ~(chan->backend.subbuf_size - 1); +} + +/* subbuf_index returns the index of the current subbuffer within the buffer. */ +static inline +unsigned long subbuf_index(unsigned long offset, struct channel *chan) +{ + return buf_offset(offset, chan) >> chan->backend.subbuf_size_order; +} + +/* + * Last TSC comparison functions. Check if the current TSC overflows tsc_bits + * bits from the last TSC read. When overflows are detected, the full 64-bit + * timestamp counter should be written in the record header. Reads and writes + * last_tsc atomically. + */ + +#if (BITS_PER_LONG == 32) +static inline +void save_last_tsc(const struct lib_ring_buffer_config *config, + struct lib_ring_buffer *buf, u64 tsc) +{ + if (config->tsc_bits == 0 || config->tsc_bits == 64) + return; + + /* + * Ensure the compiler performs this update in a single instruction. + */ + v_set(config, &buf->last_tsc, (unsigned long)(tsc >> config->tsc_bits)); +} + +static inline +int last_tsc_overflow(const struct lib_ring_buffer_config *config, + struct lib_ring_buffer *buf, u64 tsc) +{ + unsigned long tsc_shifted; + + if (config->tsc_bits == 0 || config->tsc_bits == 64) + return 0; + + tsc_shifted = (unsigned long)(tsc >> config->tsc_bits); + if (unlikely(tsc_shifted + - (unsigned long)v_read(config, &buf->last_tsc))) + return 1; + else + return 0; +} +#else +static inline +void save_last_tsc(const struct lib_ring_buffer_config *config, + struct lib_ring_buffer *buf, u64 tsc) +{ + if (config->tsc_bits == 0 || config->tsc_bits == 64) + return; + + v_set(config, &buf->last_tsc, (unsigned long)tsc); +} + +static inline +int last_tsc_overflow(const struct lib_ring_buffer_config *config, + struct lib_ring_buffer *buf, u64 tsc) +{ + if (config->tsc_bits == 0 || config->tsc_bits == 64) + return 0; + + if (unlikely((tsc - v_read(config, &buf->last_tsc)) + >> config->tsc_bits)) + return 1; + else + return 0; +} +#endif + +extern +int lib_ring_buffer_reserve_slow(struct lib_ring_buffer_ctx *ctx); + +extern +void lib_ring_buffer_switch_slow(struct lib_ring_buffer *buf, + enum switch_mode mode); + +extern +void lib_ring_buffer_switch_remote(struct lib_ring_buffer *buf); + +/* Buffer write helpers */ + +static inline +void lib_ring_buffer_reserve_push_reader(struct lib_ring_buffer *buf, + struct channel *chan, + unsigned long offset) +{ + unsigned long consumed_old, consumed_new; + + do { + consumed_old = atomic_long_read(&buf->consumed); + /* + * If buffer is in overwrite mode, push the reader consumed + * count if the write position has reached it and we are not + * at the first iteration (don't push the reader farther than + * the writer). This operation can be done concurrently by many + * writers in the same buffer, the writer being at the farthest + * write position sub-buffer index in the buffer being the one + * which will win this loop. + */ + if (unlikely(subbuf_trunc(offset, chan) + - subbuf_trunc(consumed_old, chan) + >= chan->backend.buf_size)) + consumed_new = subbuf_align(consumed_old, chan); + else + return; + } while (unlikely(atomic_long_cmpxchg(&buf->consumed, consumed_old, + consumed_new) != consumed_old)); +} + +static inline +void lib_ring_buffer_vmcore_check_deliver(const struct lib_ring_buffer_config *config, + struct lib_ring_buffer *buf, + unsigned long commit_count, + unsigned long idx) +{ + if (config->oops == RING_BUFFER_OOPS_CONSISTENCY) + v_set(config, &buf->commit_hot[idx].seq, commit_count); +} + +static inline +int lib_ring_buffer_poll_deliver(const struct lib_ring_buffer_config *config, + struct lib_ring_buffer *buf, + struct channel *chan) +{ + unsigned long consumed_old, consumed_idx, commit_count, write_offset; + + consumed_old = atomic_long_read(&buf->consumed); + consumed_idx = subbuf_index(consumed_old, chan); + commit_count = v_read(config, &buf->commit_cold[consumed_idx].cc_sb); + /* + * No memory barrier here, since we are only interested + * in a statistically correct polling result. The next poll will + * get the data is we are racing. The mb() that ensures correct + * memory order is in get_subbuf. + */ + write_offset = v_read(config, &buf->offset); + + /* + * Check that the subbuffer we are trying to consume has been + * already fully committed. + */ + + if (((commit_count - chan->backend.subbuf_size) + & chan->commit_count_mask) + - (buf_trunc(consumed_old, chan) + >> chan->backend.num_subbuf_order) + != 0) + return 0; + + /* + * Check that we are not about to read the same subbuffer in + * which the writer head is. + */ + if (subbuf_trunc(write_offset, chan) - subbuf_trunc(consumed_old, chan) + == 0) + return 0; + + return 1; + +} + +static inline +int lib_ring_buffer_pending_data(const struct lib_ring_buffer_config *config, + struct lib_ring_buffer *buf, + struct channel *chan) +{ + return !!subbuf_offset(v_read(config, &buf->offset), chan); +} + +static inline +unsigned long lib_ring_buffer_get_data_size(const struct lib_ring_buffer_config *config, + struct lib_ring_buffer *buf, + unsigned long idx) +{ + return subbuffer_get_data_size(config, &buf->backend, idx); +} + +/* + * Check if all space reservation in a buffer have been committed. This helps + * knowing if an execution context is nested (for per-cpu buffers only). + * This is a very specific ftrace use-case, so we keep this as "internal" API. + */ +static inline +int lib_ring_buffer_reserve_committed(const struct lib_ring_buffer_config *config, + struct lib_ring_buffer *buf, + struct channel *chan) +{ + unsigned long offset, idx, commit_count; + + CHAN_WARN_ON(chan, config->alloc != RING_BUFFER_ALLOC_PER_CPU); + CHAN_WARN_ON(chan, config->sync != RING_BUFFER_SYNC_PER_CPU); + + /* + * Read offset and commit count in a loop so they are both read + * atomically wrt interrupts. By deal with interrupt concurrency by + * restarting both reads if the offset has been pushed. Note that given + * we only have to deal with interrupt concurrency here, an interrupt + * modifying the commit count will also modify "offset", so it is safe + * to only check for offset modifications. + */ + do { + offset = v_read(config, &buf->offset); + idx = subbuf_index(offset, chan); + commit_count = v_read(config, &buf->commit_hot[idx].cc); + } while (offset != v_read(config, &buf->offset)); + + return ((buf_trunc(offset, chan) >> chan->backend.num_subbuf_order) + - (commit_count & chan->commit_count_mask) == 0); +} + +static inline +void lib_ring_buffer_check_deliver(const struct lib_ring_buffer_config *config, + struct lib_ring_buffer *buf, + struct channel *chan, + unsigned long offset, + unsigned long commit_count, + unsigned long idx) +{ + unsigned long old_commit_count = commit_count + - chan->backend.subbuf_size; + u64 tsc; + + /* Check if all commits have been done */ + if (unlikely((buf_trunc(offset, chan) >> chan->backend.num_subbuf_order) + - (old_commit_count & chan->commit_count_mask) == 0)) { + /* + * If we succeeded at updating cc_sb below, we are the subbuffer + * writer delivering the subbuffer. Deals with concurrent + * updates of the "cc" value without adding a add_return atomic + * operation to the fast path. + * + * We are doing the delivery in two steps: + * - First, we cmpxchg() cc_sb to the new value + * old_commit_count + 1. This ensures that we are the only + * subbuffer user successfully filling the subbuffer, but we + * do _not_ set the cc_sb value to "commit_count" yet. + * Therefore, other writers that would wrap around the ring + * buffer and try to start writing to our subbuffer would + * have to drop records, because it would appear as + * non-filled. + * We therefore have exclusive access to the subbuffer control + * structures. This mutual exclusion with other writers is + * crucially important to perform record overruns count in + * flight recorder mode locklessly. + * - When we are ready to release the subbuffer (either for + * reading or for overrun by other writers), we simply set the + * cc_sb value to "commit_count" and perform delivery. + * + * The subbuffer size is least 2 bytes (minimum size: 1 page). + * This guarantees that old_commit_count + 1 != commit_count. + */ + + /* + * Order prior updates to reserve count prior to the + * commit_cold cc_sb update. + */ + smp_wmb(); + if (likely(v_cmpxchg(config, &buf->commit_cold[idx].cc_sb, + old_commit_count, old_commit_count + 1) + == old_commit_count)) { + /* + * Start of exclusive subbuffer access. We are + * guaranteed to be the last writer in this subbuffer + * and any other writer trying to access this subbuffer + * in this state is required to drop records. + */ + tsc = config->cb.ring_buffer_clock_read(chan); + v_add(config, + subbuffer_get_records_count(config, + &buf->backend, idx), + &buf->records_count); + v_add(config, + subbuffer_count_records_overrun(config, + &buf->backend, + idx), + &buf->records_overrun); + config->cb.buffer_end(buf, tsc, idx, + lib_ring_buffer_get_data_size(config, + buf, + idx)); + + /* + * Set noref flag and offset for this subbuffer id. + * Contains a memory barrier that ensures counter stores + * are ordered before set noref and offset. + */ + lib_ring_buffer_set_noref_offset(config, &buf->backend, idx, + buf_trunc_val(offset, chan)); + + /* + * Order set_noref and record counter updates before the + * end of subbuffer exclusive access. Orders with + * respect to writers coming into the subbuffer after + * wrap around, and also order wrt concurrent readers. + */ + smp_mb(); + /* End of exclusive subbuffer access */ + v_set(config, &buf->commit_cold[idx].cc_sb, + commit_count); + /* + * Order later updates to reserve count after + * the commit_cold cc_sb update. + */ + smp_wmb(); + lib_ring_buffer_vmcore_check_deliver(config, buf, + commit_count, idx); + + /* + * RING_BUFFER_WAKEUP_BY_WRITER wakeup is not lock-free. + */ + if (config->wakeup == RING_BUFFER_WAKEUP_BY_WRITER + && atomic_long_read(&buf->active_readers) + && lib_ring_buffer_poll_deliver(config, buf, chan)) { + wake_up_interruptible(&buf->read_wait); + wake_up_interruptible(&chan->read_wait); + } + + } + } +} + +/* + * lib_ring_buffer_write_commit_counter + * + * For flight recording. must be called after commit. + * This function increments the subbuffer's commit_seq counter each time the + * commit count reaches back the reserve offset (modulo subbuffer size). It is + * useful for crash dump. + */ +static inline +void lib_ring_buffer_write_commit_counter(const struct lib_ring_buffer_config *config, + struct lib_ring_buffer *buf, + struct channel *chan, + unsigned long idx, + unsigned long buf_offset, + unsigned long commit_count, + size_t slot_size) +{ + unsigned long offset, commit_seq_old; + + if (config->oops != RING_BUFFER_OOPS_CONSISTENCY) + return; + + offset = buf_offset + slot_size; + + /* + * subbuf_offset includes commit_count_mask. We can simply + * compare the offsets within the subbuffer without caring about + * buffer full/empty mismatch because offset is never zero here + * (subbuffer header and record headers have non-zero length). + */ + if (unlikely(subbuf_offset(offset - commit_count, chan))) + return; + + commit_seq_old = v_read(config, &buf->commit_hot[idx].seq); + while ((long) (commit_seq_old - commit_count) < 0) + commit_seq_old = v_cmpxchg(config, &buf->commit_hot[idx].seq, + commit_seq_old, commit_count); +} + +extern int lib_ring_buffer_create(struct lib_ring_buffer *buf, + struct channel_backend *chanb, int cpu); +extern void lib_ring_buffer_free(struct lib_ring_buffer *buf); + +/* Keep track of trap nesting inside ring buffer code */ +DECLARE_PER_CPU(unsigned int, lib_ring_buffer_nesting); + +#endif /* _LIB_RING_BUFFER_FRONTEND_INTERNAL_H */ --- linux-3.11.0.orig/ubuntu/lttng/lib/ringbuffer/ring_buffer_backend.c +++ linux-3.11.0/ubuntu/lttng/lib/ringbuffer/ring_buffer_backend.c @@ -0,0 +1,869 @@ +/* + * ring_buffer_backend.c + * + * Copyright (C) 2005-2012 Mathieu Desnoyers + * + * 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; only + * version 2.1 of the License. + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "../../wrapper/vmalloc.h" /* for wrapper_vmalloc_sync_all() */ +#include "../../wrapper/ringbuffer/config.h" +#include "../../wrapper/ringbuffer/backend.h" +#include "../../wrapper/ringbuffer/frontend.h" + +/** + * lib_ring_buffer_backend_allocate - allocate a channel buffer + * @config: ring buffer instance configuration + * @buf: the buffer struct + * @size: total size of the buffer + * @num_subbuf: number of subbuffers + * @extra_reader_sb: need extra subbuffer for reader + */ +static +int lib_ring_buffer_backend_allocate(const struct lib_ring_buffer_config *config, + struct lib_ring_buffer_backend *bufb, + size_t size, size_t num_subbuf, + int extra_reader_sb) +{ + struct channel_backend *chanb = &bufb->chan->backend; + unsigned long j, num_pages, num_pages_per_subbuf, page_idx = 0; + unsigned long subbuf_size, mmap_offset = 0; + unsigned long num_subbuf_alloc; + struct page **pages; + void **virt; + unsigned long i; + + num_pages = size >> PAGE_SHIFT; + num_pages_per_subbuf = num_pages >> get_count_order(num_subbuf); + subbuf_size = chanb->subbuf_size; + num_subbuf_alloc = num_subbuf; + + if (extra_reader_sb) { + num_pages += num_pages_per_subbuf; /* Add pages for reader */ + num_subbuf_alloc++; + } + + pages = kmalloc_node(ALIGN(sizeof(*pages) * num_pages, + 1 << INTERNODE_CACHE_SHIFT), + GFP_KERNEL, cpu_to_node(max(bufb->cpu, 0))); + if (unlikely(!pages)) + goto pages_error; + + virt = kmalloc_node(ALIGN(sizeof(*virt) * num_pages, + 1 << INTERNODE_CACHE_SHIFT), + GFP_KERNEL, cpu_to_node(max(bufb->cpu, 0))); + if (unlikely(!virt)) + goto virt_error; + + bufb->array = kmalloc_node(ALIGN(sizeof(*bufb->array) + * num_subbuf_alloc, + 1 << INTERNODE_CACHE_SHIFT), + GFP_KERNEL, cpu_to_node(max(bufb->cpu, 0))); + if (unlikely(!bufb->array)) + goto array_error; + + for (i = 0; i < num_pages; i++) { + pages[i] = alloc_pages_node(cpu_to_node(max(bufb->cpu, 0)), + GFP_KERNEL | __GFP_ZERO, 0); + if (unlikely(!pages[i])) + goto depopulate; + virt[i] = page_address(pages[i]); + } + bufb->num_pages_per_subbuf = num_pages_per_subbuf; + + /* Allocate backend pages array elements */ + for (i = 0; i < num_subbuf_alloc; i++) { + bufb->array[i] = + kzalloc_node(ALIGN( + sizeof(struct lib_ring_buffer_backend_pages) + + sizeof(struct lib_ring_buffer_backend_page) + * num_pages_per_subbuf, + 1 << INTERNODE_CACHE_SHIFT), + GFP_KERNEL, cpu_to_node(max(bufb->cpu, 0))); + if (!bufb->array[i]) + goto free_array; + } + + /* Allocate write-side subbuffer table */ + bufb->buf_wsb = kzalloc_node(ALIGN( + sizeof(struct lib_ring_buffer_backend_subbuffer) + * num_subbuf, + 1 << INTERNODE_CACHE_SHIFT), + GFP_KERNEL, cpu_to_node(max(bufb->cpu, 0))); + if (unlikely(!bufb->buf_wsb)) + goto free_array; + + for (i = 0; i < num_subbuf; i++) + bufb->buf_wsb[i].id = subbuffer_id(config, 0, 1, i); + + /* Assign read-side subbuffer table */ + if (extra_reader_sb) + bufb->buf_rsb.id = subbuffer_id(config, 0, 1, + num_subbuf_alloc - 1); + else + bufb->buf_rsb.id = subbuffer_id(config, 0, 1, 0); + + /* Assign pages to page index */ + for (i = 0; i < num_subbuf_alloc; i++) { + for (j = 0; j < num_pages_per_subbuf; j++) { + CHAN_WARN_ON(chanb, page_idx > num_pages); + bufb->array[i]->p[j].virt = virt[page_idx]; + bufb->array[i]->p[j].page = pages[page_idx]; + page_idx++; + } + if (config->output == RING_BUFFER_MMAP) { + bufb->array[i]->mmap_offset = mmap_offset; + mmap_offset += subbuf_size; + } + } + + /* + * If kmalloc ever uses vmalloc underneath, make sure the buffer pages + * will not fault. + */ + wrapper_vmalloc_sync_all(); + kfree(virt); + kfree(pages); + return 0; + +free_array: + for (i = 0; (i < num_subbuf_alloc && bufb->array[i]); i++) + kfree(bufb->array[i]); +depopulate: + /* Free all allocated pages */ + for (i = 0; (i < num_pages && pages[i]); i++) + __free_page(pages[i]); + kfree(bufb->array); +array_error: + kfree(virt); +virt_error: + kfree(pages); +pages_error: + return -ENOMEM; +} + +int lib_ring_buffer_backend_create(struct lib_ring_buffer_backend *bufb, + struct channel_backend *chanb, int cpu) +{ + const struct lib_ring_buffer_config *config = &chanb->config; + + bufb->chan = container_of(chanb, struct channel, backend); + bufb->cpu = cpu; + + return lib_ring_buffer_backend_allocate(config, bufb, chanb->buf_size, + chanb->num_subbuf, + chanb->extra_reader_sb); +} + +void lib_ring_buffer_backend_free(struct lib_ring_buffer_backend *bufb) +{ + struct channel_backend *chanb = &bufb->chan->backend; + unsigned long i, j, num_subbuf_alloc; + + num_subbuf_alloc = chanb->num_subbuf; + if (chanb->extra_reader_sb) + num_subbuf_alloc++; + + kfree(bufb->buf_wsb); + for (i = 0; i < num_subbuf_alloc; i++) { + for (j = 0; j < bufb->num_pages_per_subbuf; j++) + __free_page(bufb->array[i]->p[j].page); + kfree(bufb->array[i]); + } + kfree(bufb->array); + bufb->allocated = 0; +} + +void lib_ring_buffer_backend_reset(struct lib_ring_buffer_backend *bufb) +{ + struct channel_backend *chanb = &bufb->chan->backend; + const struct lib_ring_buffer_config *config = &chanb->config; + unsigned long num_subbuf_alloc; + unsigned int i; + + num_subbuf_alloc = chanb->num_subbuf; + if (chanb->extra_reader_sb) + num_subbuf_alloc++; + + for (i = 0; i < chanb->num_subbuf; i++) + bufb->buf_wsb[i].id = subbuffer_id(config, 0, 1, i); + if (chanb->extra_reader_sb) + bufb->buf_rsb.id = subbuffer_id(config, 0, 1, + num_subbuf_alloc - 1); + else + bufb->buf_rsb.id = subbuffer_id(config, 0, 1, 0); + + for (i = 0; i < num_subbuf_alloc; i++) { + /* Don't reset mmap_offset */ + v_set(config, &bufb->array[i]->records_commit, 0); + v_set(config, &bufb->array[i]->records_unread, 0); + bufb->array[i]->data_size = 0; + /* Don't reset backend page and virt addresses */ + } + /* Don't reset num_pages_per_subbuf, cpu, allocated */ + v_set(config, &bufb->records_read, 0); +} + +/* + * The frontend is responsible for also calling ring_buffer_backend_reset for + * each buffer when calling channel_backend_reset. + */ +void channel_backend_reset(struct channel_backend *chanb) +{ + struct channel *chan = container_of(chanb, struct channel, backend); + const struct lib_ring_buffer_config *config = &chanb->config; + + /* + * Don't reset buf_size, subbuf_size, subbuf_size_order, + * num_subbuf_order, buf_size_order, extra_reader_sb, num_subbuf, + * priv, notifiers, config, cpumask and name. + */ + chanb->start_tsc = config->cb.ring_buffer_clock_read(chan); +} + +#ifdef CONFIG_HOTPLUG_CPU +/** + * lib_ring_buffer_cpu_hp_callback - CPU hotplug callback + * @nb: notifier block + * @action: hotplug action to take + * @hcpu: CPU number + * + * Returns the success/failure of the operation. (%NOTIFY_OK, %NOTIFY_BAD) + */ +static +int lib_ring_buffer_cpu_hp_callback(struct notifier_block *nb, + unsigned long action, + void *hcpu) +{ + unsigned int cpu = (unsigned long)hcpu; + struct channel_backend *chanb = container_of(nb, struct channel_backend, + cpu_hp_notifier); + const struct lib_ring_buffer_config *config = &chanb->config; + struct lib_ring_buffer *buf; + int ret; + + CHAN_WARN_ON(chanb, config->alloc == RING_BUFFER_ALLOC_GLOBAL); + + switch (action) { + case CPU_UP_PREPARE: + case CPU_UP_PREPARE_FROZEN: + buf = per_cpu_ptr(chanb->buf, cpu); + ret = lib_ring_buffer_create(buf, chanb, cpu); + if (ret) { + printk(KERN_ERR + "ring_buffer_cpu_hp_callback: cpu %d " + "buffer creation failed\n", cpu); + return NOTIFY_BAD; + } + break; + case CPU_DEAD: + case CPU_DEAD_FROZEN: + /* No need to do a buffer switch here, because it will happen + * when tracing is stopped, or will be done by switch timer CPU + * DEAD callback. */ + break; + } + return NOTIFY_OK; +} +#endif + +/** + * channel_backend_init - initialize a channel backend + * @chanb: channel backend + * @name: channel name + * @config: client ring buffer configuration + * @priv: client private data + * @parent: dentry of parent directory, %NULL for root directory + * @subbuf_size: size of sub-buffers (> PAGE_SIZE, power of 2) + * @num_subbuf: number of sub-buffers (power of 2) + * + * Returns channel pointer if successful, %NULL otherwise. + * + * Creates per-cpu channel buffers using the sizes and attributes + * specified. The created channel buffer files will be named + * name_0...name_N-1. File permissions will be %S_IRUSR. + * + * Called with CPU hotplug disabled. + */ +int channel_backend_init(struct channel_backend *chanb, + const char *name, + const struct lib_ring_buffer_config *config, + void *priv, size_t subbuf_size, size_t num_subbuf) +{ + struct channel *chan = container_of(chanb, struct channel, backend); + unsigned int i; + int ret; + + if (!name) + return -EPERM; + + /* Check that the subbuffer size is larger than a page. */ + if (subbuf_size < PAGE_SIZE) + return -EINVAL; + + /* + * Make sure the number of subbuffers and subbuffer size are + * power of 2 and nonzero. + */ + if (!subbuf_size || (subbuf_size & (subbuf_size - 1))) + return -EINVAL; + if (!num_subbuf || (num_subbuf & (num_subbuf - 1))) + return -EINVAL; + + ret = subbuffer_id_check_index(config, num_subbuf); + if (ret) + return ret; + + chanb->priv = priv; + chanb->buf_size = num_subbuf * subbuf_size; + chanb->subbuf_size = subbuf_size; + chanb->buf_size_order = get_count_order(chanb->buf_size); + chanb->subbuf_size_order = get_count_order(subbuf_size); + chanb->num_subbuf_order = get_count_order(num_subbuf); + chanb->extra_reader_sb = + (config->mode == RING_BUFFER_OVERWRITE) ? 1 : 0; + chanb->num_subbuf = num_subbuf; + strlcpy(chanb->name, name, NAME_MAX); + memcpy(&chanb->config, config, sizeof(chanb->config)); + + if (config->alloc == RING_BUFFER_ALLOC_PER_CPU) { + if (!zalloc_cpumask_var(&chanb->cpumask, GFP_KERNEL)) + return -ENOMEM; + } + + if (config->alloc == RING_BUFFER_ALLOC_PER_CPU) { + /* Allocating the buffer per-cpu structures */ + chanb->buf = alloc_percpu(struct lib_ring_buffer); + if (!chanb->buf) + goto free_cpumask; + + /* + * In case of non-hotplug cpu, if the ring-buffer is allocated + * in early initcall, it will not be notified of secondary cpus. + * In that off case, we need to allocate for all possible cpus. + */ +#ifdef CONFIG_HOTPLUG_CPU + /* + * buf->backend.allocated test takes care of concurrent CPU + * hotplug. + * Priority higher than frontend, so we create the ring buffer + * before we start the timer. + */ + chanb->cpu_hp_notifier.notifier_call = + lib_ring_buffer_cpu_hp_callback; + chanb->cpu_hp_notifier.priority = 5; + register_hotcpu_notifier(&chanb->cpu_hp_notifier); + + get_online_cpus(); + for_each_online_cpu(i) { + ret = lib_ring_buffer_create(per_cpu_ptr(chanb->buf, i), + chanb, i); + if (ret) + goto free_bufs; /* cpu hotplug locked */ + } + put_online_cpus(); +#else + for_each_possible_cpu(i) { + ret = lib_ring_buffer_create(per_cpu_ptr(chanb->buf, i), + chanb, i); + if (ret) + goto free_bufs; /* cpu hotplug locked */ + } +#endif + } else { + chanb->buf = kzalloc(sizeof(struct lib_ring_buffer), GFP_KERNEL); + if (!chanb->buf) + goto free_cpumask; + ret = lib_ring_buffer_create(chanb->buf, chanb, -1); + if (ret) + goto free_bufs; + } + chanb->start_tsc = config->cb.ring_buffer_clock_read(chan); + + return 0; + +free_bufs: + if (config->alloc == RING_BUFFER_ALLOC_PER_CPU) { + for_each_possible_cpu(i) { + struct lib_ring_buffer *buf = per_cpu_ptr(chanb->buf, i); + + if (!buf->backend.allocated) + continue; + lib_ring_buffer_free(buf); + } +#ifdef CONFIG_HOTPLUG_CPU + put_online_cpus(); +#endif + free_percpu(chanb->buf); + } else + kfree(chanb->buf); +free_cpumask: + if (config->alloc == RING_BUFFER_ALLOC_PER_CPU) + free_cpumask_var(chanb->cpumask); + return -ENOMEM; +} + +/** + * channel_backend_unregister_notifiers - unregister notifiers + * @chan: the channel + * + * Holds CPU hotplug. + */ +void channel_backend_unregister_notifiers(struct channel_backend *chanb) +{ + const struct lib_ring_buffer_config *config = &chanb->config; + + if (config->alloc == RING_BUFFER_ALLOC_PER_CPU) + unregister_hotcpu_notifier(&chanb->cpu_hp_notifier); +} + +/** + * channel_backend_free - destroy the channel + * @chan: the channel + * + * Destroy all channel buffers and frees the channel. + */ +void channel_backend_free(struct channel_backend *chanb) +{ + const struct lib_ring_buffer_config *config = &chanb->config; + unsigned int i; + + if (config->alloc == RING_BUFFER_ALLOC_PER_CPU) { + for_each_possible_cpu(i) { + struct lib_ring_buffer *buf = per_cpu_ptr(chanb->buf, i); + + if (!buf->backend.allocated) + continue; + lib_ring_buffer_free(buf); + } + free_cpumask_var(chanb->cpumask); + free_percpu(chanb->buf); + } else { + struct lib_ring_buffer *buf = chanb->buf; + + CHAN_WARN_ON(chanb, !buf->backend.allocated); + lib_ring_buffer_free(buf); + kfree(buf); + } +} + +/** + * lib_ring_buffer_write - write data to a ring_buffer buffer. + * @bufb : buffer backend + * @offset : offset within the buffer + * @src : source address + * @len : length to write + * @pagecpy : page size copied so far + */ +void _lib_ring_buffer_write(struct lib_ring_buffer_backend *bufb, size_t offset, + const void *src, size_t len, ssize_t pagecpy) +{ + struct channel_backend *chanb = &bufb->chan->backend; + const struct lib_ring_buffer_config *config = &chanb->config; + size_t sbidx, index; + struct lib_ring_buffer_backend_pages *rpages; + unsigned long sb_bindex, id; + + do { + len -= pagecpy; + src += pagecpy; + offset += pagecpy; + sbidx = offset >> chanb->subbuf_size_order; + index = (offset & (chanb->subbuf_size - 1)) >> PAGE_SHIFT; + + /* + * Underlying layer should never ask for writes across + * subbuffers. + */ + CHAN_WARN_ON(chanb, offset >= chanb->buf_size); + + pagecpy = min_t(size_t, len, PAGE_SIZE - (offset & ~PAGE_MASK)); + id = bufb->buf_wsb[sbidx].id; + sb_bindex = subbuffer_id_get_index(config, id); + rpages = bufb->array[sb_bindex]; + CHAN_WARN_ON(chanb, config->mode == RING_BUFFER_OVERWRITE + && subbuffer_id_is_noref(config, id)); + lib_ring_buffer_do_copy(config, + rpages->p[index].virt + + (offset & ~PAGE_MASK), + src, pagecpy); + } while (unlikely(len != pagecpy)); +} +EXPORT_SYMBOL_GPL(_lib_ring_buffer_write); + + +/** + * lib_ring_buffer_memset - write len bytes of c to a ring_buffer buffer. + * @bufb : buffer backend + * @offset : offset within the buffer + * @c : the byte to write + * @len : length to write + * @pagecpy : page size copied so far + */ +void _lib_ring_buffer_memset(struct lib_ring_buffer_backend *bufb, + size_t offset, + int c, size_t len, ssize_t pagecpy) +{ + struct channel_backend *chanb = &bufb->chan->backend; + const struct lib_ring_buffer_config *config = &chanb->config; + size_t sbidx, index; + struct lib_ring_buffer_backend_pages *rpages; + unsigned long sb_bindex, id; + + do { + len -= pagecpy; + offset += pagecpy; + sbidx = offset >> chanb->subbuf_size_order; + index = (offset & (chanb->subbuf_size - 1)) >> PAGE_SHIFT; + + /* + * Underlying layer should never ask for writes across + * subbuffers. + */ + CHAN_WARN_ON(chanb, offset >= chanb->buf_size); + + pagecpy = min_t(size_t, len, PAGE_SIZE - (offset & ~PAGE_MASK)); + id = bufb->buf_wsb[sbidx].id; + sb_bindex = subbuffer_id_get_index(config, id); + rpages = bufb->array[sb_bindex]; + CHAN_WARN_ON(chanb, config->mode == RING_BUFFER_OVERWRITE + && subbuffer_id_is_noref(config, id)); + lib_ring_buffer_do_memset(rpages->p[index].virt + + (offset & ~PAGE_MASK), + c, pagecpy); + } while (unlikely(len != pagecpy)); +} +EXPORT_SYMBOL_GPL(_lib_ring_buffer_memset); + + +/** + * lib_ring_buffer_copy_from_user_inatomic - write user data to a ring_buffer buffer. + * @bufb : buffer backend + * @offset : offset within the buffer + * @src : source address + * @len : length to write + * @pagecpy : page size copied so far + * + * This function deals with userspace pointers, it should never be called + * directly without having the src pointer checked with access_ok() + * previously. + */ +void _lib_ring_buffer_copy_from_user_inatomic(struct lib_ring_buffer_backend *bufb, + size_t offset, + const void __user *src, size_t len, + ssize_t pagecpy) +{ + struct channel_backend *chanb = &bufb->chan->backend; + const struct lib_ring_buffer_config *config = &chanb->config; + size_t sbidx, index; + struct lib_ring_buffer_backend_pages *rpages; + unsigned long sb_bindex, id; + int ret; + + do { + len -= pagecpy; + src += pagecpy; + offset += pagecpy; + sbidx = offset >> chanb->subbuf_size_order; + index = (offset & (chanb->subbuf_size - 1)) >> PAGE_SHIFT; + + /* + * Underlying layer should never ask for writes across + * subbuffers. + */ + CHAN_WARN_ON(chanb, offset >= chanb->buf_size); + + pagecpy = min_t(size_t, len, PAGE_SIZE - (offset & ~PAGE_MASK)); + id = bufb->buf_wsb[sbidx].id; + sb_bindex = subbuffer_id_get_index(config, id); + rpages = bufb->array[sb_bindex]; + CHAN_WARN_ON(chanb, config->mode == RING_BUFFER_OVERWRITE + && subbuffer_id_is_noref(config, id)); + ret = lib_ring_buffer_do_copy_from_user_inatomic(rpages->p[index].virt + + (offset & ~PAGE_MASK), + src, pagecpy) != 0; + if (ret > 0) { + offset += (pagecpy - ret); + len -= (pagecpy - ret); + _lib_ring_buffer_memset(bufb, offset, 0, len, 0); + break; /* stop copy */ + } + } while (unlikely(len != pagecpy)); +} +EXPORT_SYMBOL_GPL(_lib_ring_buffer_copy_from_user_inatomic); + +/** + * lib_ring_buffer_read - read data from ring_buffer_buffer. + * @bufb : buffer backend + * @offset : offset within the buffer + * @dest : destination address + * @len : length to copy to destination + * + * Should be protected by get_subbuf/put_subbuf. + * Returns the length copied. + */ +size_t lib_ring_buffer_read(struct lib_ring_buffer_backend *bufb, size_t offset, + void *dest, size_t len) +{ + struct channel_backend *chanb = &bufb->chan->backend; + const struct lib_ring_buffer_config *config = &chanb->config; + size_t index; + ssize_t pagecpy, orig_len; + struct lib_ring_buffer_backend_pages *rpages; + unsigned long sb_bindex, id; + + orig_len = len; + offset &= chanb->buf_size - 1; + index = (offset & (chanb->subbuf_size - 1)) >> PAGE_SHIFT; + if (unlikely(!len)) + return 0; + for (;;) { + pagecpy = min_t(size_t, len, PAGE_SIZE - (offset & ~PAGE_MASK)); + id = bufb->buf_rsb.id; + sb_bindex = subbuffer_id_get_index(config, id); + rpages = bufb->array[sb_bindex]; + CHAN_WARN_ON(chanb, config->mode == RING_BUFFER_OVERWRITE + && subbuffer_id_is_noref(config, id)); + memcpy(dest, rpages->p[index].virt + (offset & ~PAGE_MASK), + pagecpy); + len -= pagecpy; + if (likely(!len)) + break; + dest += pagecpy; + offset += pagecpy; + index = (offset & (chanb->subbuf_size - 1)) >> PAGE_SHIFT; + /* + * Underlying layer should never ask for reads across + * subbuffers. + */ + CHAN_WARN_ON(chanb, offset >= chanb->buf_size); + } + return orig_len; +} +EXPORT_SYMBOL_GPL(lib_ring_buffer_read); + +/** + * __lib_ring_buffer_copy_to_user - read data from ring_buffer to userspace + * @bufb : buffer backend + * @offset : offset within the buffer + * @dest : destination userspace address + * @len : length to copy to destination + * + * Should be protected by get_subbuf/put_subbuf. + * access_ok() must have been performed on dest addresses prior to call this + * function. + * Returns -EFAULT on error, 0 if ok. + */ +int __lib_ring_buffer_copy_to_user(struct lib_ring_buffer_backend *bufb, + size_t offset, void __user *dest, size_t len) +{ + struct channel_backend *chanb = &bufb->chan->backend; + const struct lib_ring_buffer_config *config = &chanb->config; + size_t index; + ssize_t pagecpy; + struct lib_ring_buffer_backend_pages *rpages; + unsigned long sb_bindex, id; + + offset &= chanb->buf_size - 1; + index = (offset & (chanb->subbuf_size - 1)) >> PAGE_SHIFT; + if (unlikely(!len)) + return 0; + for (;;) { + pagecpy = min_t(size_t, len, PAGE_SIZE - (offset & ~PAGE_MASK)); + id = bufb->buf_rsb.id; + sb_bindex = subbuffer_id_get_index(config, id); + rpages = bufb->array[sb_bindex]; + CHAN_WARN_ON(chanb, config->mode == RING_BUFFER_OVERWRITE + && subbuffer_id_is_noref(config, id)); + if (__copy_to_user(dest, + rpages->p[index].virt + (offset & ~PAGE_MASK), + pagecpy)) + return -EFAULT; + len -= pagecpy; + if (likely(!len)) + break; + dest += pagecpy; + offset += pagecpy; + index = (offset & (chanb->subbuf_size - 1)) >> PAGE_SHIFT; + /* + * Underlying layer should never ask for reads across + * subbuffers. + */ + CHAN_WARN_ON(chanb, offset >= chanb->buf_size); + } + return 0; +} +EXPORT_SYMBOL_GPL(__lib_ring_buffer_copy_to_user); + +/** + * lib_ring_buffer_read_cstr - read a C-style string from ring_buffer. + * @bufb : buffer backend + * @offset : offset within the buffer + * @dest : destination address + * @len : destination's length + * + * Return string's length, or -EINVAL on error. + * Should be protected by get_subbuf/put_subbuf. + * Destination length should be at least 1 to hold '\0'. + */ +int lib_ring_buffer_read_cstr(struct lib_ring_buffer_backend *bufb, size_t offset, + void *dest, size_t len) +{ + struct channel_backend *chanb = &bufb->chan->backend; + const struct lib_ring_buffer_config *config = &chanb->config; + size_t index; + ssize_t pagecpy, pagelen, strpagelen, orig_offset; + char *str; + struct lib_ring_buffer_backend_pages *rpages; + unsigned long sb_bindex, id; + + offset &= chanb->buf_size - 1; + index = (offset & (chanb->subbuf_size - 1)) >> PAGE_SHIFT; + orig_offset = offset; + if (unlikely(!len)) + return -EINVAL; + for (;;) { + id = bufb->buf_rsb.id; + sb_bindex = subbuffer_id_get_index(config, id); + rpages = bufb->array[sb_bindex]; + CHAN_WARN_ON(chanb, config->mode == RING_BUFFER_OVERWRITE + && subbuffer_id_is_noref(config, id)); + str = (char *)rpages->p[index].virt + (offset & ~PAGE_MASK); + pagelen = PAGE_SIZE - (offset & ~PAGE_MASK); + strpagelen = strnlen(str, pagelen); + if (len) { + pagecpy = min_t(size_t, len, strpagelen); + if (dest) { + memcpy(dest, str, pagecpy); + dest += pagecpy; + } + len -= pagecpy; + } + offset += strpagelen; + index = (offset & (chanb->subbuf_size - 1)) >> PAGE_SHIFT; + if (strpagelen < pagelen) + break; + /* + * Underlying layer should never ask for reads across + * subbuffers. + */ + CHAN_WARN_ON(chanb, offset >= chanb->buf_size); + } + if (dest && len) + ((char *)dest)[0] = 0; + return offset - orig_offset; +} +EXPORT_SYMBOL_GPL(lib_ring_buffer_read_cstr); + +/** + * lib_ring_buffer_read_get_page - Get a whole page to read from + * @bufb : buffer backend + * @offset : offset within the buffer + * @virt : pointer to page address (output) + * + * Should be protected by get_subbuf/put_subbuf. + * Returns the pointer to the page struct pointer. + */ +struct page **lib_ring_buffer_read_get_page(struct lib_ring_buffer_backend *bufb, + size_t offset, void ***virt) +{ + size_t index; + struct lib_ring_buffer_backend_pages *rpages; + struct channel_backend *chanb = &bufb->chan->backend; + const struct lib_ring_buffer_config *config = &chanb->config; + unsigned long sb_bindex, id; + + offset &= chanb->buf_size - 1; + index = (offset & (chanb->subbuf_size - 1)) >> PAGE_SHIFT; + id = bufb->buf_rsb.id; + sb_bindex = subbuffer_id_get_index(config, id); + rpages = bufb->array[sb_bindex]; + CHAN_WARN_ON(chanb, config->mode == RING_BUFFER_OVERWRITE + && subbuffer_id_is_noref(config, id)); + *virt = &rpages->p[index].virt; + return &rpages->p[index].page; +} +EXPORT_SYMBOL_GPL(lib_ring_buffer_read_get_page); + +/** + * lib_ring_buffer_read_offset_address - get address of a buffer location + * @bufb : buffer backend + * @offset : offset within the buffer. + * + * Return the address where a given offset is located (for read). + * Should be used to get the current subbuffer header pointer. Given we know + * it's never on a page boundary, it's safe to write directly to this address, + * as long as the write is never bigger than a page size. + */ +void *lib_ring_buffer_read_offset_address(struct lib_ring_buffer_backend *bufb, + size_t offset) +{ + size_t index; + struct lib_ring_buffer_backend_pages *rpages; + struct channel_backend *chanb = &bufb->chan->backend; + const struct lib_ring_buffer_config *config = &chanb->config; + unsigned long sb_bindex, id; + + offset &= chanb->buf_size - 1; + index = (offset & (chanb->subbuf_size - 1)) >> PAGE_SHIFT; + id = bufb->buf_rsb.id; + sb_bindex = subbuffer_id_get_index(config, id); + rpages = bufb->array[sb_bindex]; + CHAN_WARN_ON(chanb, config->mode == RING_BUFFER_OVERWRITE + && subbuffer_id_is_noref(config, id)); + return rpages->p[index].virt + (offset & ~PAGE_MASK); +} +EXPORT_SYMBOL_GPL(lib_ring_buffer_read_offset_address); + +/** + * lib_ring_buffer_offset_address - get address of a location within the buffer + * @bufb : buffer backend + * @offset : offset within the buffer. + * + * Return the address where a given offset is located. + * Should be used to get the current subbuffer header pointer. Given we know + * it's always at the beginning of a page, it's safe to write directly to this + * address, as long as the write is never bigger than a page size. + */ +void *lib_ring_buffer_offset_address(struct lib_ring_buffer_backend *bufb, + size_t offset) +{ + size_t sbidx, index; + struct lib_ring_buffer_backend_pages *rpages; + struct channel_backend *chanb = &bufb->chan->backend; + const struct lib_ring_buffer_config *config = &chanb->config; + unsigned long sb_bindex, id; + + offset &= chanb->buf_size - 1; + sbidx = offset >> chanb->subbuf_size_order; + index = (offset & (chanb->subbuf_size - 1)) >> PAGE_SHIFT; + id = bufb->buf_wsb[sbidx].id; + sb_bindex = subbuffer_id_get_index(config, id); + rpages = bufb->array[sb_bindex]; + CHAN_WARN_ON(chanb, config->mode == RING_BUFFER_OVERWRITE + && subbuffer_id_is_noref(config, id)); + return rpages->p[index].virt + (offset & ~PAGE_MASK); +} +EXPORT_SYMBOL_GPL(lib_ring_buffer_offset_address); --- linux-3.11.0.orig/ubuntu/lttng/lib/ringbuffer/iterator.h +++ linux-3.11.0/ubuntu/lttng/lib/ringbuffer/iterator.h @@ -0,0 +1,83 @@ +#ifndef _LIB_RING_BUFFER_ITERATOR_H +#define _LIB_RING_BUFFER_ITERATOR_H + +/* + * lib/ringbuffer/iterator.h + * + * Ring buffer and channel iterators. + * + * Copyright (C) 2010-2012 Mathieu Desnoyers + * + * 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; only + * version 2.1 of the License. + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + * + * Author: + * Mathieu Desnoyers + */ + +#include "../../wrapper/ringbuffer/backend.h" +#include "../../wrapper/ringbuffer/frontend.h" +#include "../../wrapper/ringbuffer/vfs.h" + +/* + * lib_ring_buffer_get_next_record advances the buffer read position to the next + * record. It returns either the size of the next record, -EAGAIN if there is + * currently no data available, or -ENODATA if no data is available and buffer + * is finalized. + */ +extern ssize_t lib_ring_buffer_get_next_record(struct channel *chan, + struct lib_ring_buffer *buf); + +/* + * channel_get_next_record advances the buffer read position to the next record. + * It returns either the size of the next record, -EAGAIN if there is currently + * no data available, or -ENODATA if no data is available and buffer is + * finalized. + * Returns the current buffer in ret_buf. + */ +extern ssize_t channel_get_next_record(struct channel *chan, + struct lib_ring_buffer **ret_buf); + +/** + * read_current_record - copy the buffer current record into dest. + * @buf: ring buffer + * @dest: destination where the record should be copied + * + * dest should be large enough to contain the record. Returns the number of + * bytes copied. + */ +static inline size_t read_current_record(struct lib_ring_buffer *buf, void *dest) +{ + return lib_ring_buffer_read(&buf->backend, buf->iter.read_offset, + dest, buf->iter.payload_len); +} + +extern int lib_ring_buffer_iterator_open(struct lib_ring_buffer *buf); +extern void lib_ring_buffer_iterator_release(struct lib_ring_buffer *buf); +extern int channel_iterator_open(struct channel *chan); +extern void channel_iterator_release(struct channel *chan); + +extern const struct file_operations channel_payload_file_operations; +extern const struct file_operations lib_ring_buffer_payload_file_operations; + +/* + * Used internally. + */ +int channel_iterator_init(struct channel *chan); +void channel_iterator_unregister_notifiers(struct channel *chan); +void channel_iterator_free(struct channel *chan); +void channel_iterator_reset(struct channel *chan); +void lib_ring_buffer_iterator_reset(struct lib_ring_buffer *buf); + +#endif /* _LIB_RING_BUFFER_ITERATOR_H */ --- linux-3.11.0.orig/ubuntu/lttng/lib/ringbuffer/ring_buffer_splice.c +++ linux-3.11.0/ubuntu/lttng/lib/ringbuffer/ring_buffer_splice.c @@ -0,0 +1,227 @@ +/* + * ring_buffer_splice.c + * + * Copyright (C) 2002-2005 - Tom Zanussi , IBM Corp + * Copyright (C) 1999-2005 - Karim Yaghmour + * Copyright (C) 2008-2012 - Mathieu Desnoyers + * + * 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; only + * version 2.1 of the License. + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + * + * Re-using code from kernel/relay.c, which is why it is licensed under + * the GPLv2. + */ + +#include +#include + +#include "../../wrapper/splice.h" +#include "../../wrapper/ringbuffer/backend.h" +#include "../../wrapper/ringbuffer/frontend.h" +#include "../../wrapper/ringbuffer/vfs.h" + +#if 0 +#define printk_dbg(fmt, args...) printk(fmt, args) +#else +#define printk_dbg(fmt, args...) +#endif + +loff_t vfs_lib_ring_buffer_no_llseek(struct file *file, loff_t offset, + int origin) +{ + return -ESPIPE; +} +EXPORT_SYMBOL_GPL(vfs_lib_ring_buffer_no_llseek); + +/* + * Release pages from the buffer so splice pipe_to_file can move them. + * Called after the pipe has been populated with buffer pages. + */ +static void lib_ring_buffer_pipe_buf_release(struct pipe_inode_info *pipe, + struct pipe_buffer *pbuf) +{ + __free_page(pbuf->page); +} + +static const struct pipe_buf_operations ring_buffer_pipe_buf_ops = { + .can_merge = 0, + .map = generic_pipe_buf_map, + .unmap = generic_pipe_buf_unmap, + .confirm = generic_pipe_buf_confirm, + .release = lib_ring_buffer_pipe_buf_release, + .steal = generic_pipe_buf_steal, + .get = generic_pipe_buf_get, +}; + +/* + * Page release operation after splice pipe_to_file ends. + */ +static void lib_ring_buffer_page_release(struct splice_pipe_desc *spd, + unsigned int i) +{ + __free_page(spd->pages[i]); +} + +/* + * subbuf_splice_actor - splice up to one subbuf's worth of data + */ +static int subbuf_splice_actor(struct file *in, + loff_t *ppos, + struct pipe_inode_info *pipe, + size_t len, + unsigned int flags, + struct lib_ring_buffer *buf) +{ + struct channel *chan = buf->backend.chan; + const struct lib_ring_buffer_config *config = &chan->backend.config; + unsigned int poff, subbuf_pages, nr_pages; + struct page *pages[PIPE_DEF_BUFFERS]; + struct partial_page partial[PIPE_DEF_BUFFERS]; + struct splice_pipe_desc spd = { + .pages = pages, + .nr_pages = 0, + .partial = partial, + .flags = flags, + .ops = &ring_buffer_pipe_buf_ops, + .spd_release = lib_ring_buffer_page_release, + }; + unsigned long consumed_old, roffset; + unsigned long bytes_avail; + + /* + * Check that a GET_SUBBUF ioctl has been done before. + */ + WARN_ON(atomic_long_read(&buf->active_readers) != 1); + consumed_old = lib_ring_buffer_get_consumed(config, buf); + consumed_old += *ppos; + + /* + * Adjust read len, if longer than what is available. + * Max read size is 1 subbuffer due to get_subbuf/put_subbuf for + * protection. + */ + bytes_avail = chan->backend.subbuf_size; + WARN_ON(bytes_avail > chan->backend.buf_size); + len = min_t(size_t, len, bytes_avail); + subbuf_pages = bytes_avail >> PAGE_SHIFT; + nr_pages = min_t(unsigned int, subbuf_pages, PIPE_DEF_BUFFERS); + roffset = consumed_old & PAGE_MASK; + poff = consumed_old & ~PAGE_MASK; + printk_dbg(KERN_DEBUG "SPLICE actor len %zu pos %zd write_pos %ld\n", + len, (ssize_t)*ppos, lib_ring_buffer_get_offset(config, buf)); + + for (; spd.nr_pages < nr_pages; spd.nr_pages++) { + unsigned int this_len; + struct page **page, *new_page; + void **virt; + + if (!len) + break; + printk_dbg(KERN_DEBUG "SPLICE actor loop len %zu roffset %ld\n", + len, roffset); + + /* + * We have to replace the page we are moving into the splice + * pipe. + */ + new_page = alloc_pages_node(cpu_to_node(max(buf->backend.cpu, + 0)), + GFP_KERNEL | __GFP_ZERO, 0); + if (!new_page) + break; + + this_len = PAGE_SIZE - poff; + page = lib_ring_buffer_read_get_page(&buf->backend, roffset, &virt); + spd.pages[spd.nr_pages] = *page; + *page = new_page; + *virt = page_address(new_page); + spd.partial[spd.nr_pages].offset = poff; + spd.partial[spd.nr_pages].len = this_len; + + poff = 0; + roffset += PAGE_SIZE; + len -= this_len; + } + + if (!spd.nr_pages) + return 0; + + return wrapper_splice_to_pipe(pipe, &spd); +} + +ssize_t lib_ring_buffer_splice_read(struct file *in, loff_t *ppos, + struct pipe_inode_info *pipe, size_t len, + unsigned int flags, + struct lib_ring_buffer *buf) +{ + struct channel *chan = buf->backend.chan; + const struct lib_ring_buffer_config *config = &chan->backend.config; + ssize_t spliced; + int ret; + + if (config->output != RING_BUFFER_SPLICE) + return -EINVAL; + + /* + * We require ppos and length to be page-aligned for performance reasons + * (no page copy). Size is known using the ioctl + * RING_BUFFER_GET_PADDED_SUBBUF_SIZE, which is page-size padded. + * We fail when the ppos or len passed is not page-sized, because splice + * is not allowed to copy more than the length passed as parameter (so + * the ABI does not let us silently copy more than requested to include + * padding). + */ + if (*ppos != PAGE_ALIGN(*ppos) || len != PAGE_ALIGN(len)) + return -EINVAL; + + ret = 0; + spliced = 0; + + printk_dbg(KERN_DEBUG "SPLICE read len %zu pos %zd\n", len, + (ssize_t)*ppos); + while (len && !spliced) { + ret = subbuf_splice_actor(in, ppos, pipe, len, flags, buf); + printk_dbg(KERN_DEBUG "SPLICE read loop ret %d\n", ret); + if (ret < 0) + break; + else if (!ret) { + if (flags & SPLICE_F_NONBLOCK) + ret = -EAGAIN; + break; + } + + *ppos += ret; + if (ret > len) + len = 0; + else + len -= ret; + spliced += ret; + } + + if (spliced) + return spliced; + + return ret; +} +EXPORT_SYMBOL_GPL(lib_ring_buffer_splice_read); + +ssize_t vfs_lib_ring_buffer_splice_read(struct file *in, loff_t *ppos, + struct pipe_inode_info *pipe, size_t len, + unsigned int flags) +{ + struct lib_ring_buffer *buf = in->private_data; + + return lib_ring_buffer_splice_read(in, ppos, pipe, len, flags, buf); +} +EXPORT_SYMBOL_GPL(vfs_lib_ring_buffer_splice_read); --- linux-3.11.0.orig/ubuntu/lttng/lib/ringbuffer/api.h +++ linux-3.11.0/ubuntu/lttng/lib/ringbuffer/api.h @@ -0,0 +1,37 @@ +#ifndef _LIB_RING_BUFFER_API_H +#define _LIB_RING_BUFFER_API_H + +/* + * lib/ringbuffer/api.h + * + * Ring Buffer API. + * + * Copyright (C) 2010-2012 Mathieu Desnoyers + * + * 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; only + * version 2.1 of the License. + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include "../../wrapper/ringbuffer/backend.h" +#include "../../wrapper/ringbuffer/frontend.h" +#include "../../wrapper/ringbuffer/vfs.h" + +/* + * ring_buffer_frontend_api.h contains static inline functions that depend on + * client static inlines. Hence the inclusion of this "api" header only + * within the client. + */ +#include "../../wrapper/ringbuffer/frontend_api.h" + +#endif /* _LIB_RING_BUFFER_API_H */ --- linux-3.11.0.orig/ubuntu/lttng/lib/ringbuffer/ring_buffer_vfs.c +++ linux-3.11.0/ubuntu/lttng/lib/ringbuffer/ring_buffer_vfs.c @@ -0,0 +1,450 @@ +/* + * ring_buffer_vfs.c + * + * Ring Buffer VFS file operations. + * + * Copyright (C) 2010-2012 Mathieu Desnoyers + * + * 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; only + * version 2.1 of the License. + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include +#include +#include + +#include "../../wrapper/ringbuffer/backend.h" +#include "../../wrapper/ringbuffer/frontend.h" +#include "../../wrapper/ringbuffer/vfs.h" +#include "../../wrapper/poll.h" + +static int put_ulong(unsigned long val, unsigned long arg) +{ + return put_user(val, (unsigned long __user *)arg); +} + +#ifdef CONFIG_COMPAT +static int compat_put_ulong(compat_ulong_t val, unsigned long arg) +{ + return put_user(val, (compat_ulong_t __user *)compat_ptr(arg)); +} +#endif + +/* + * This is not used by anonymous file descriptors. This code is left + * there if we ever want to implement an inode with open() operation. + */ +int lib_ring_buffer_open(struct inode *inode, struct file *file, + struct lib_ring_buffer *buf) +{ + int ret; + + if (!buf) + return -EINVAL; + + ret = lib_ring_buffer_open_read(buf); + if (ret) + return ret; + + ret = nonseekable_open(inode, file); + if (ret) + goto release_read; + return 0; + +release_read: + lib_ring_buffer_release_read(buf); + return ret; +} +EXPORT_SYMBOL_GPL(lib_ring_buffer_open); + +/** + * vfs_lib_ring_buffer_open - ring buffer open file operation + * @inode: opened inode + * @file: opened file + * + * Open implementation. Makes sure only one open instance of a buffer is + * done at a given moment. + */ +static +int vfs_lib_ring_buffer_open(struct inode *inode, struct file *file) +{ + struct lib_ring_buffer *buf = inode->i_private; + + file->private_data = buf; + return lib_ring_buffer_open(inode, file, buf); +} + +int lib_ring_buffer_release(struct inode *inode, struct file *file, + struct lib_ring_buffer *buf) +{ + lib_ring_buffer_release_read(buf); + + return 0; +} +EXPORT_SYMBOL_GPL(lib_ring_buffer_release); + +/** + * vfs_lib_ring_buffer_release - ring buffer release file operation + * @inode: opened inode + * @file: opened file + * + * Release implementation. + */ +static +int vfs_lib_ring_buffer_release(struct inode *inode, struct file *file) +{ + struct lib_ring_buffer *buf = file->private_data; + + return lib_ring_buffer_release(inode, file, buf); +} + +unsigned int lib_ring_buffer_poll(struct file *filp, poll_table *wait, + struct lib_ring_buffer *buf) +{ + unsigned int mask = 0; + struct channel *chan = buf->backend.chan; + const struct lib_ring_buffer_config *config = &chan->backend.config; + int finalized, disabled; + + if (filp->f_mode & FMODE_READ) { + poll_wait_set_exclusive(wait); + poll_wait(filp, &buf->read_wait, wait); + + finalized = lib_ring_buffer_is_finalized(config, buf); + disabled = lib_ring_buffer_channel_is_disabled(chan); + + /* + * lib_ring_buffer_is_finalized() contains a smp_rmb() ordering + * finalized load before offsets loads. + */ + WARN_ON(atomic_long_read(&buf->active_readers) != 1); +retry: + if (disabled) + return POLLERR; + + if (subbuf_trunc(lib_ring_buffer_get_offset(config, buf), chan) + - subbuf_trunc(lib_ring_buffer_get_consumed(config, buf), chan) + == 0) { + if (finalized) + return POLLHUP; + else { + /* + * The memory barriers + * __wait_event()/wake_up_interruptible() take + * care of "raw_spin_is_locked" memory ordering. + */ + if (raw_spin_is_locked(&buf->raw_tick_nohz_spinlock)) + goto retry; + else + return 0; + } + } else { + if (subbuf_trunc(lib_ring_buffer_get_offset(config, buf), + chan) + - subbuf_trunc(lib_ring_buffer_get_consumed(config, buf), + chan) + >= chan->backend.buf_size) + return POLLPRI | POLLRDBAND; + else + return POLLIN | POLLRDNORM; + } + } + return mask; +} +EXPORT_SYMBOL_GPL(lib_ring_buffer_poll); + +/** + * vfs_lib_ring_buffer_poll - ring buffer poll file operation + * @filp: the file + * @wait: poll table + * + * Poll implementation. + */ +static +unsigned int vfs_lib_ring_buffer_poll(struct file *filp, poll_table *wait) +{ + struct lib_ring_buffer *buf = filp->private_data; + + return lib_ring_buffer_poll(filp, wait, buf); +} + +long lib_ring_buffer_ioctl(struct file *filp, unsigned int cmd, + unsigned long arg, struct lib_ring_buffer *buf) +{ + struct channel *chan = buf->backend.chan; + const struct lib_ring_buffer_config *config = &chan->backend.config; + + if (lib_ring_buffer_channel_is_disabled(chan)) + return -EIO; + + switch (cmd) { + case RING_BUFFER_SNAPSHOT: + return lib_ring_buffer_snapshot(buf, &buf->cons_snapshot, + &buf->prod_snapshot); + case RING_BUFFER_SNAPSHOT_GET_CONSUMED: + return put_ulong(buf->cons_snapshot, arg); + case RING_BUFFER_SNAPSHOT_GET_PRODUCED: + return put_ulong(buf->prod_snapshot, arg); + case RING_BUFFER_GET_SUBBUF: + { + unsigned long uconsume; + long ret; + + ret = get_user(uconsume, (unsigned long __user *) arg); + if (ret) + return ret; /* will return -EFAULT */ + ret = lib_ring_buffer_get_subbuf(buf, uconsume); + if (!ret) { + /* Set file position to zero at each successful "get" */ + filp->f_pos = 0; + } + return ret; + } + case RING_BUFFER_PUT_SUBBUF: + lib_ring_buffer_put_subbuf(buf); + return 0; + + case RING_BUFFER_GET_NEXT_SUBBUF: + { + long ret; + + ret = lib_ring_buffer_get_next_subbuf(buf); + if (!ret) { + /* Set file position to zero at each successful "get" */ + filp->f_pos = 0; + } + return ret; + } + case RING_BUFFER_PUT_NEXT_SUBBUF: + lib_ring_buffer_put_next_subbuf(buf); + return 0; + case RING_BUFFER_GET_SUBBUF_SIZE: + return put_ulong(lib_ring_buffer_get_read_data_size(config, buf), + arg); + case RING_BUFFER_GET_PADDED_SUBBUF_SIZE: + { + unsigned long size; + + size = lib_ring_buffer_get_read_data_size(config, buf); + size = PAGE_ALIGN(size); + return put_ulong(size, arg); + } + case RING_BUFFER_GET_MAX_SUBBUF_SIZE: + return put_ulong(chan->backend.subbuf_size, arg); + case RING_BUFFER_GET_MMAP_LEN: + { + unsigned long mmap_buf_len; + + if (config->output != RING_BUFFER_MMAP) + return -EINVAL; + mmap_buf_len = chan->backend.buf_size; + if (chan->backend.extra_reader_sb) + mmap_buf_len += chan->backend.subbuf_size; + if (mmap_buf_len > INT_MAX) + return -EFBIG; + return put_ulong(mmap_buf_len, arg); + } + case RING_BUFFER_GET_MMAP_READ_OFFSET: + { + unsigned long sb_bindex; + + if (config->output != RING_BUFFER_MMAP) + return -EINVAL; + sb_bindex = subbuffer_id_get_index(config, + buf->backend.buf_rsb.id); + return put_ulong(buf->backend.array[sb_bindex]->mmap_offset, + arg); + } + case RING_BUFFER_FLUSH: + lib_ring_buffer_switch_remote(buf); + return 0; + default: + return -ENOIOCTLCMD; + } +} +EXPORT_SYMBOL_GPL(lib_ring_buffer_ioctl); + +/** + * vfs_lib_ring_buffer_ioctl - control ring buffer reader synchronization + * + * @filp: the file + * @cmd: the command + * @arg: command arg + * + * This ioctl implements commands necessary for producer/consumer + * and flight recorder reader interaction : + * RING_BUFFER_GET_NEXT_SUBBUF + * Get the next sub-buffer that can be read. It never blocks. + * RING_BUFFER_PUT_NEXT_SUBBUF + * Release the currently read sub-buffer. + * RING_BUFFER_GET_SUBBUF_SIZE + * returns the size of the current sub-buffer. + * RING_BUFFER_GET_MAX_SUBBUF_SIZE + * returns the maximum size for sub-buffers. + * RING_BUFFER_GET_NUM_SUBBUF + * returns the number of reader-visible sub-buffers in the per cpu + * channel (for mmap). + * RING_BUFFER_GET_MMAP_READ_OFFSET + * returns the offset of the subbuffer belonging to the reader. + * Should only be used for mmap clients. + */ +static +long vfs_lib_ring_buffer_ioctl(struct file *filp, unsigned int cmd, unsigned long arg) +{ + struct lib_ring_buffer *buf = filp->private_data; + + return lib_ring_buffer_ioctl(filp, cmd, arg, buf); +} + +#ifdef CONFIG_COMPAT +long lib_ring_buffer_compat_ioctl(struct file *filp, unsigned int cmd, + unsigned long arg, struct lib_ring_buffer *buf) +{ + struct channel *chan = buf->backend.chan; + const struct lib_ring_buffer_config *config = &chan->backend.config; + + if (lib_ring_buffer_channel_is_disabled(chan)) + return -EIO; + + switch (cmd) { + case RING_BUFFER_COMPAT_SNAPSHOT: + return lib_ring_buffer_snapshot(buf, &buf->cons_snapshot, + &buf->prod_snapshot); + case RING_BUFFER_COMPAT_SNAPSHOT_GET_CONSUMED: + return compat_put_ulong(buf->cons_snapshot, arg); + case RING_BUFFER_COMPAT_SNAPSHOT_GET_PRODUCED: + return compat_put_ulong(buf->prod_snapshot, arg); + case RING_BUFFER_COMPAT_GET_SUBBUF: + { + __u32 uconsume; + unsigned long consume; + long ret; + + ret = get_user(uconsume, (__u32 __user *) arg); + if (ret) + return ret; /* will return -EFAULT */ + consume = buf->cons_snapshot; + consume &= ~0xFFFFFFFFL; + consume |= uconsume; + ret = lib_ring_buffer_get_subbuf(buf, consume); + if (!ret) { + /* Set file position to zero at each successful "get" */ + filp->f_pos = 0; + } + return ret; + } + case RING_BUFFER_COMPAT_PUT_SUBBUF: + lib_ring_buffer_put_subbuf(buf); + return 0; + + case RING_BUFFER_COMPAT_GET_NEXT_SUBBUF: + { + long ret; + + ret = lib_ring_buffer_get_next_subbuf(buf); + if (!ret) { + /* Set file position to zero at each successful "get" */ + filp->f_pos = 0; + } + return ret; + } + case RING_BUFFER_COMPAT_PUT_NEXT_SUBBUF: + lib_ring_buffer_put_next_subbuf(buf); + return 0; + case RING_BUFFER_COMPAT_GET_SUBBUF_SIZE: + { + unsigned long data_size; + + data_size = lib_ring_buffer_get_read_data_size(config, buf); + if (data_size > UINT_MAX) + return -EFBIG; + return compat_put_ulong(data_size, arg); + } + case RING_BUFFER_COMPAT_GET_PADDED_SUBBUF_SIZE: + { + unsigned long size; + + size = lib_ring_buffer_get_read_data_size(config, buf); + size = PAGE_ALIGN(size); + if (size > UINT_MAX) + return -EFBIG; + return compat_put_ulong(size, arg); + } + case RING_BUFFER_COMPAT_GET_MAX_SUBBUF_SIZE: + if (chan->backend.subbuf_size > UINT_MAX) + return -EFBIG; + return compat_put_ulong(chan->backend.subbuf_size, arg); + case RING_BUFFER_COMPAT_GET_MMAP_LEN: + { + unsigned long mmap_buf_len; + + if (config->output != RING_BUFFER_MMAP) + return -EINVAL; + mmap_buf_len = chan->backend.buf_size; + if (chan->backend.extra_reader_sb) + mmap_buf_len += chan->backend.subbuf_size; + if (mmap_buf_len > UINT_MAX) + return -EFBIG; + return compat_put_ulong(mmap_buf_len, arg); + } + case RING_BUFFER_COMPAT_GET_MMAP_READ_OFFSET: + { + unsigned long sb_bindex, read_offset; + + if (config->output != RING_BUFFER_MMAP) + return -EINVAL; + sb_bindex = subbuffer_id_get_index(config, + buf->backend.buf_rsb.id); + read_offset = buf->backend.array[sb_bindex]->mmap_offset; + if (read_offset > UINT_MAX) + return -EINVAL; + return compat_put_ulong(read_offset, arg); + } + case RING_BUFFER_COMPAT_FLUSH: + lib_ring_buffer_switch_remote(buf); + return 0; + default: + return -ENOIOCTLCMD; + } +} +EXPORT_SYMBOL_GPL(lib_ring_buffer_compat_ioctl); + +static +long vfs_lib_ring_buffer_compat_ioctl(struct file *filp, unsigned int cmd, + unsigned long arg) +{ + struct lib_ring_buffer *buf = filp->private_data; + + return lib_ring_buffer_compat_ioctl(filp, cmd, arg, buf); +} +#endif + +const struct file_operations lib_ring_buffer_file_operations = { + .owner = THIS_MODULE, + .open = vfs_lib_ring_buffer_open, + .release = vfs_lib_ring_buffer_release, + .poll = vfs_lib_ring_buffer_poll, + .splice_read = vfs_lib_ring_buffer_splice_read, + .mmap = vfs_lib_ring_buffer_mmap, + .unlocked_ioctl = vfs_lib_ring_buffer_ioctl, + .llseek = vfs_lib_ring_buffer_no_llseek, +#ifdef CONFIG_COMPAT + .compat_ioctl = vfs_lib_ring_buffer_compat_ioctl, +#endif +}; +EXPORT_SYMBOL_GPL(lib_ring_buffer_file_operations); + +MODULE_LICENSE("GPL and additional rights"); +MODULE_AUTHOR("Mathieu Desnoyers"); +MODULE_DESCRIPTION("Ring Buffer Library VFS"); --- linux-3.11.0.orig/ubuntu/lttng/lib/ringbuffer/ring_buffer_iterator.c +++ linux-3.11.0/ubuntu/lttng/lib/ringbuffer/ring_buffer_iterator.c @@ -0,0 +1,810 @@ +/* + * ring_buffer_iterator.c + * + * Ring buffer and channel iterators. Get each event of a channel in order. Uses + * a prio heap for per-cpu buffers, giving a O(log(NR_CPUS)) algorithmic + * complexity for the "get next event" operation. + * + * Copyright (C) 2010-2012 Mathieu Desnoyers + * + * 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; only + * version 2.1 of the License. + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + * + * Author: + * Mathieu Desnoyers + */ + +#include "../../wrapper/ringbuffer/iterator.h" +#include +#include +#include + +/* + * Safety factor taking into account internal kernel interrupt latency. + * Assuming 250ms worse-case latency. + */ +#define MAX_SYSTEM_LATENCY 250 + +/* + * Maximum delta expected between trace clocks. At most 1 jiffy delta. + */ +#define MAX_CLOCK_DELTA (jiffies_to_usecs(1) * 1000) + +/** + * lib_ring_buffer_get_next_record - Get the next record in a buffer. + * @chan: channel + * @buf: buffer + * + * Returns the size of the event read, -EAGAIN if buffer is empty, -ENODATA if + * buffer is empty and finalized. The buffer must already be opened for reading. + */ +ssize_t lib_ring_buffer_get_next_record(struct channel *chan, + struct lib_ring_buffer *buf) +{ + const struct lib_ring_buffer_config *config = &chan->backend.config; + struct lib_ring_buffer_iter *iter = &buf->iter; + int ret; + +restart: + switch (iter->state) { + case ITER_GET_SUBBUF: + ret = lib_ring_buffer_get_next_subbuf(buf); + if (ret && !ACCESS_ONCE(buf->finalized) + && config->alloc == RING_BUFFER_ALLOC_GLOBAL) { + /* + * Use "pull" scheme for global buffers. The reader + * itself flushes the buffer to "pull" data not visible + * to readers yet. Flush current subbuffer and re-try. + * + * Per-CPU buffers rather use a "push" scheme because + * the IPI needed to flush all CPU's buffers is too + * costly. In the "push" scheme, the reader waits for + * the writer periodic deferrable timer to flush the + * buffers (keeping track of a quiescent state + * timestamp). Therefore, the writer "pushes" data out + * of the buffers rather than letting the reader "pull" + * data from the buffer. + */ + lib_ring_buffer_switch_slow(buf, SWITCH_ACTIVE); + ret = lib_ring_buffer_get_next_subbuf(buf); + } + if (ret) + return ret; + iter->consumed = buf->cons_snapshot; + iter->data_size = lib_ring_buffer_get_read_data_size(config, buf); + iter->read_offset = iter->consumed; + /* skip header */ + iter->read_offset += config->cb.subbuffer_header_size(); + iter->state = ITER_TEST_RECORD; + goto restart; + case ITER_TEST_RECORD: + if (iter->read_offset - iter->consumed >= iter->data_size) { + iter->state = ITER_PUT_SUBBUF; + } else { + CHAN_WARN_ON(chan, !config->cb.record_get); + config->cb.record_get(config, chan, buf, + iter->read_offset, + &iter->header_len, + &iter->payload_len, + &iter->timestamp); + iter->read_offset += iter->header_len; + subbuffer_consume_record(config, &buf->backend); + iter->state = ITER_NEXT_RECORD; + return iter->payload_len; + } + goto restart; + case ITER_NEXT_RECORD: + iter->read_offset += iter->payload_len; + iter->state = ITER_TEST_RECORD; + goto restart; + case ITER_PUT_SUBBUF: + lib_ring_buffer_put_next_subbuf(buf); + iter->state = ITER_GET_SUBBUF; + goto restart; + default: + CHAN_WARN_ON(chan, 1); /* Should not happen */ + return -EPERM; + } +} +EXPORT_SYMBOL_GPL(lib_ring_buffer_get_next_record); + +static int buf_is_higher(void *a, void *b) +{ + struct lib_ring_buffer *bufa = a; + struct lib_ring_buffer *bufb = b; + + /* Consider lowest timestamps to be at the top of the heap */ + return (bufa->iter.timestamp < bufb->iter.timestamp); +} + +static +void lib_ring_buffer_get_empty_buf_records(const struct lib_ring_buffer_config *config, + struct channel *chan) +{ + struct lttng_ptr_heap *heap = &chan->iter.heap; + struct lib_ring_buffer *buf, *tmp; + ssize_t len; + + list_for_each_entry_safe(buf, tmp, &chan->iter.empty_head, + iter.empty_node) { + len = lib_ring_buffer_get_next_record(chan, buf); + + /* + * Deal with -EAGAIN and -ENODATA. + * len >= 0 means record contains data. + * -EBUSY should never happen, because we support only one + * reader. + */ + switch (len) { + case -EAGAIN: + /* Keep node in empty list */ + break; + case -ENODATA: + /* + * Buffer is finalized. Don't add to list of empty + * buffer, because it has no more data to provide, ever. + */ + list_del(&buf->iter.empty_node); + break; + case -EBUSY: + CHAN_WARN_ON(chan, 1); + break; + default: + /* + * Insert buffer into the heap, remove from empty buffer + * list. + */ + CHAN_WARN_ON(chan, len < 0); + list_del(&buf->iter.empty_node); + CHAN_WARN_ON(chan, lttng_heap_insert(heap, buf)); + } + } +} + +static +void lib_ring_buffer_wait_for_qs(const struct lib_ring_buffer_config *config, + struct channel *chan) +{ + u64 timestamp_qs; + unsigned long wait_msecs; + + /* + * No need to wait if no empty buffers are present. + */ + if (list_empty(&chan->iter.empty_head)) + return; + + timestamp_qs = config->cb.ring_buffer_clock_read(chan); + /* + * We need to consider previously empty buffers. + * Do a get next buf record on each of them. Add them to + * the heap if they have data. If at least one of them + * don't have data, we need to wait for + * switch_timer_interval + MAX_SYSTEM_LATENCY (so we are sure the + * buffers have been switched either by the timer or idle entry) and + * check them again, adding them if they have data. + */ + lib_ring_buffer_get_empty_buf_records(config, chan); + + /* + * No need to wait if no empty buffers are present. + */ + if (list_empty(&chan->iter.empty_head)) + return; + + /* + * We need to wait for the buffer switch timer to run. If the + * CPU is idle, idle entry performed the switch. + * TODO: we could optimize further by skipping the sleep if all + * empty buffers belong to idle or offline cpus. + */ + wait_msecs = jiffies_to_msecs(chan->switch_timer_interval); + wait_msecs += MAX_SYSTEM_LATENCY; + msleep(wait_msecs); + lib_ring_buffer_get_empty_buf_records(config, chan); + /* + * Any buffer still in the empty list here cannot possibly + * contain an event with a timestamp prior to "timestamp_qs". + * The new quiescent state timestamp is the one we grabbed + * before waiting for buffer data. It is therefore safe to + * ignore empty buffers up to last_qs timestamp for fusion + * merge. + */ + chan->iter.last_qs = timestamp_qs; +} + +/** + * channel_get_next_record - Get the next record in a channel. + * @chan: channel + * @ret_buf: the buffer in which the event is located (output) + * + * Returns the size of new current event, -EAGAIN if all buffers are empty, + * -ENODATA if all buffers are empty and finalized. The channel must already be + * opened for reading. + */ + +ssize_t channel_get_next_record(struct channel *chan, + struct lib_ring_buffer **ret_buf) +{ + const struct lib_ring_buffer_config *config = &chan->backend.config; + struct lib_ring_buffer *buf; + struct lttng_ptr_heap *heap; + ssize_t len; + + if (config->alloc == RING_BUFFER_ALLOC_GLOBAL) { + *ret_buf = channel_get_ring_buffer(config, chan, 0); + return lib_ring_buffer_get_next_record(chan, *ret_buf); + } + + heap = &chan->iter.heap; + + /* + * get next record for topmost buffer. + */ + buf = lttng_heap_maximum(heap); + if (buf) { + len = lib_ring_buffer_get_next_record(chan, buf); + /* + * Deal with -EAGAIN and -ENODATA. + * len >= 0 means record contains data. + */ + switch (len) { + case -EAGAIN: + buf->iter.timestamp = 0; + list_add(&buf->iter.empty_node, &chan->iter.empty_head); + /* Remove topmost buffer from the heap */ + CHAN_WARN_ON(chan, lttng_heap_remove(heap) != buf); + break; + case -ENODATA: + /* + * Buffer is finalized. Remove buffer from heap and + * don't add to list of empty buffer, because it has no + * more data to provide, ever. + */ + CHAN_WARN_ON(chan, lttng_heap_remove(heap) != buf); + break; + case -EBUSY: + CHAN_WARN_ON(chan, 1); + break; + default: + /* + * Reinsert buffer into the heap. Note that heap can be + * partially empty, so we need to use + * lttng_heap_replace_max(). + */ + CHAN_WARN_ON(chan, len < 0); + CHAN_WARN_ON(chan, lttng_heap_replace_max(heap, buf) != buf); + break; + } + } + + buf = lttng_heap_maximum(heap); + if (!buf || buf->iter.timestamp > chan->iter.last_qs) { + /* + * Deal with buffers previously showing no data. + * Add buffers containing data to the heap, update + * last_qs. + */ + lib_ring_buffer_wait_for_qs(config, chan); + } + + *ret_buf = buf = lttng_heap_maximum(heap); + if (buf) { + /* + * If this warning triggers, you probably need to check your + * system interrupt latency. Typical causes: too many printk() + * output going to a serial console with interrupts off. + * Allow for MAX_CLOCK_DELTA ns timestamp delta going backward. + * Observed on SMP KVM setups with trace_clock(). + */ + if (chan->iter.last_timestamp + > (buf->iter.timestamp + MAX_CLOCK_DELTA)) { + printk(KERN_WARNING "ring_buffer: timestamps going " + "backward. Last time %llu ns, cpu %d, " + "current time %llu ns, cpu %d, " + "delta %llu ns.\n", + chan->iter.last_timestamp, chan->iter.last_cpu, + buf->iter.timestamp, buf->backend.cpu, + chan->iter.last_timestamp - buf->iter.timestamp); + CHAN_WARN_ON(chan, 1); + } + chan->iter.last_timestamp = buf->iter.timestamp; + chan->iter.last_cpu = buf->backend.cpu; + return buf->iter.payload_len; + } else { + /* Heap is empty */ + if (list_empty(&chan->iter.empty_head)) + return -ENODATA; /* All buffers finalized */ + else + return -EAGAIN; /* Temporarily empty */ + } +} +EXPORT_SYMBOL_GPL(channel_get_next_record); + +static +void lib_ring_buffer_iterator_init(struct channel *chan, struct lib_ring_buffer *buf) +{ + if (buf->iter.allocated) + return; + + buf->iter.allocated = 1; + if (chan->iter.read_open && !buf->iter.read_open) { + CHAN_WARN_ON(chan, lib_ring_buffer_open_read(buf) != 0); + buf->iter.read_open = 1; + } + + /* Add to list of buffers without any current record */ + if (chan->backend.config.alloc == RING_BUFFER_ALLOC_PER_CPU) + list_add(&buf->iter.empty_node, &chan->iter.empty_head); +} + +#ifdef CONFIG_HOTPLUG_CPU +static +int channel_iterator_cpu_hotplug(struct notifier_block *nb, + unsigned long action, + void *hcpu) +{ + unsigned int cpu = (unsigned long)hcpu; + struct channel *chan = container_of(nb, struct channel, + hp_iter_notifier); + struct lib_ring_buffer *buf = per_cpu_ptr(chan->backend.buf, cpu); + const struct lib_ring_buffer_config *config = &chan->backend.config; + + if (!chan->hp_iter_enable) + return NOTIFY_DONE; + + CHAN_WARN_ON(chan, config->alloc == RING_BUFFER_ALLOC_GLOBAL); + + switch (action) { + case CPU_DOWN_FAILED: + case CPU_DOWN_FAILED_FROZEN: + case CPU_ONLINE: + case CPU_ONLINE_FROZEN: + lib_ring_buffer_iterator_init(chan, buf); + return NOTIFY_OK; + default: + return NOTIFY_DONE; + } +} +#endif + +int channel_iterator_init(struct channel *chan) +{ + const struct lib_ring_buffer_config *config = &chan->backend.config; + struct lib_ring_buffer *buf; + + if (config->alloc == RING_BUFFER_ALLOC_PER_CPU) { + int cpu, ret; + + INIT_LIST_HEAD(&chan->iter.empty_head); + ret = lttng_heap_init(&chan->iter.heap, + num_possible_cpus(), + GFP_KERNEL, buf_is_higher); + if (ret) + return ret; + /* + * In case of non-hotplug cpu, if the ring-buffer is allocated + * in early initcall, it will not be notified of secondary cpus. + * In that off case, we need to allocate for all possible cpus. + */ +#ifdef CONFIG_HOTPLUG_CPU + chan->hp_iter_notifier.notifier_call = + channel_iterator_cpu_hotplug; + chan->hp_iter_notifier.priority = 10; + register_cpu_notifier(&chan->hp_iter_notifier); + get_online_cpus(); + for_each_online_cpu(cpu) { + buf = per_cpu_ptr(chan->backend.buf, cpu); + lib_ring_buffer_iterator_init(chan, buf); + } + chan->hp_iter_enable = 1; + put_online_cpus(); +#else + for_each_possible_cpu(cpu) { + buf = per_cpu_ptr(chan->backend.buf, cpu); + lib_ring_buffer_iterator_init(chan, buf); + } +#endif + } else { + buf = channel_get_ring_buffer(config, chan, 0); + lib_ring_buffer_iterator_init(chan, buf); + } + return 0; +} + +void channel_iterator_unregister_notifiers(struct channel *chan) +{ + const struct lib_ring_buffer_config *config = &chan->backend.config; + + if (config->alloc == RING_BUFFER_ALLOC_PER_CPU) { + chan->hp_iter_enable = 0; + unregister_cpu_notifier(&chan->hp_iter_notifier); + } +} + +void channel_iterator_free(struct channel *chan) +{ + const struct lib_ring_buffer_config *config = &chan->backend.config; + + if (config->alloc == RING_BUFFER_ALLOC_PER_CPU) + lttng_heap_free(&chan->iter.heap); +} + +int lib_ring_buffer_iterator_open(struct lib_ring_buffer *buf) +{ + struct channel *chan = buf->backend.chan; + const struct lib_ring_buffer_config *config = &chan->backend.config; + CHAN_WARN_ON(chan, config->output != RING_BUFFER_ITERATOR); + return lib_ring_buffer_open_read(buf); +} +EXPORT_SYMBOL_GPL(lib_ring_buffer_iterator_open); + +/* + * Note: Iterators must not be mixed with other types of outputs, because an + * iterator can leave the buffer in "GET" state, which is not consistent with + * other types of output (mmap, splice, raw data read). + */ +void lib_ring_buffer_iterator_release(struct lib_ring_buffer *buf) +{ + lib_ring_buffer_release_read(buf); +} +EXPORT_SYMBOL_GPL(lib_ring_buffer_iterator_release); + +int channel_iterator_open(struct channel *chan) +{ + const struct lib_ring_buffer_config *config = &chan->backend.config; + struct lib_ring_buffer *buf; + int ret = 0, cpu; + + CHAN_WARN_ON(chan, config->output != RING_BUFFER_ITERATOR); + + if (config->alloc == RING_BUFFER_ALLOC_PER_CPU) { + get_online_cpus(); + /* Allow CPU hotplug to keep track of opened reader */ + chan->iter.read_open = 1; + for_each_channel_cpu(cpu, chan) { + buf = channel_get_ring_buffer(config, chan, cpu); + ret = lib_ring_buffer_iterator_open(buf); + if (ret) + goto error; + buf->iter.read_open = 1; + } + put_online_cpus(); + } else { + buf = channel_get_ring_buffer(config, chan, 0); + ret = lib_ring_buffer_iterator_open(buf); + } + return ret; +error: + /* Error should always happen on CPU 0, hence no close is required. */ + CHAN_WARN_ON(chan, cpu != 0); + put_online_cpus(); + return ret; +} +EXPORT_SYMBOL_GPL(channel_iterator_open); + +void channel_iterator_release(struct channel *chan) +{ + const struct lib_ring_buffer_config *config = &chan->backend.config; + struct lib_ring_buffer *buf; + int cpu; + + if (config->alloc == RING_BUFFER_ALLOC_PER_CPU) { + get_online_cpus(); + for_each_channel_cpu(cpu, chan) { + buf = channel_get_ring_buffer(config, chan, cpu); + if (buf->iter.read_open) { + lib_ring_buffer_iterator_release(buf); + buf->iter.read_open = 0; + } + } + chan->iter.read_open = 0; + put_online_cpus(); + } else { + buf = channel_get_ring_buffer(config, chan, 0); + lib_ring_buffer_iterator_release(buf); + } +} +EXPORT_SYMBOL_GPL(channel_iterator_release); + +void lib_ring_buffer_iterator_reset(struct lib_ring_buffer *buf) +{ + struct channel *chan = buf->backend.chan; + + if (buf->iter.state != ITER_GET_SUBBUF) + lib_ring_buffer_put_next_subbuf(buf); + buf->iter.state = ITER_GET_SUBBUF; + /* Remove from heap (if present). */ + if (lttng_heap_cherrypick(&chan->iter.heap, buf)) + list_add(&buf->iter.empty_node, &chan->iter.empty_head); + buf->iter.timestamp = 0; + buf->iter.header_len = 0; + buf->iter.payload_len = 0; + buf->iter.consumed = 0; + buf->iter.read_offset = 0; + buf->iter.data_size = 0; + /* Don't reset allocated and read_open */ +} + +void channel_iterator_reset(struct channel *chan) +{ + const struct lib_ring_buffer_config *config = &chan->backend.config; + struct lib_ring_buffer *buf; + int cpu; + + /* Empty heap, put into empty_head */ + while ((buf = lttng_heap_remove(&chan->iter.heap)) != NULL) + list_add(&buf->iter.empty_node, &chan->iter.empty_head); + + for_each_channel_cpu(cpu, chan) { + buf = channel_get_ring_buffer(config, chan, cpu); + lib_ring_buffer_iterator_reset(buf); + } + /* Don't reset read_open */ + chan->iter.last_qs = 0; + chan->iter.last_timestamp = 0; + chan->iter.last_cpu = 0; + chan->iter.len_left = 0; +} + +/* + * Ring buffer payload extraction read() implementation. + */ +static +ssize_t channel_ring_buffer_file_read(struct file *filp, + char __user *user_buf, + size_t count, + loff_t *ppos, + struct channel *chan, + struct lib_ring_buffer *buf, + int fusionmerge) +{ + const struct lib_ring_buffer_config *config = &chan->backend.config; + size_t read_count = 0, read_offset; + ssize_t len; + + might_sleep(); + if (!access_ok(VERIFY_WRITE, user_buf, count)) + return -EFAULT; + + /* Finish copy of previous record */ + if (*ppos != 0) { + if (read_count < count) { + len = chan->iter.len_left; + read_offset = *ppos; + if (config->alloc == RING_BUFFER_ALLOC_PER_CPU + && fusionmerge) + buf = lttng_heap_maximum(&chan->iter.heap); + CHAN_WARN_ON(chan, !buf); + goto skip_get_next; + } + } + + while (read_count < count) { + size_t copy_len, space_left; + + if (fusionmerge) + len = channel_get_next_record(chan, &buf); + else + len = lib_ring_buffer_get_next_record(chan, buf); +len_test: + if (len < 0) { + /* + * Check if buffer is finalized (end of file). + */ + if (len == -ENODATA) { + /* A 0 read_count will tell about end of file */ + goto nodata; + } + if (filp->f_flags & O_NONBLOCK) { + if (!read_count) + read_count = -EAGAIN; + goto nodata; + } else { + int error; + + /* + * No data available at the moment, return what + * we got. + */ + if (read_count) + goto nodata; + + /* + * Wait for returned len to be >= 0 or -ENODATA. + */ + if (fusionmerge) + error = wait_event_interruptible( + chan->read_wait, + ((len = channel_get_next_record(chan, + &buf)), len != -EAGAIN)); + else + error = wait_event_interruptible( + buf->read_wait, + ((len = lib_ring_buffer_get_next_record( + chan, buf)), len != -EAGAIN)); + CHAN_WARN_ON(chan, len == -EBUSY); + if (error) { + read_count = error; + goto nodata; + } + CHAN_WARN_ON(chan, len < 0 && len != -ENODATA); + goto len_test; + } + } + read_offset = buf->iter.read_offset; +skip_get_next: + space_left = count - read_count; + if (len <= space_left) { + copy_len = len; + chan->iter.len_left = 0; + *ppos = 0; + } else { + copy_len = space_left; + chan->iter.len_left = len - copy_len; + *ppos = read_offset + copy_len; + } + if (__lib_ring_buffer_copy_to_user(&buf->backend, read_offset, + &user_buf[read_count], + copy_len)) { + /* + * Leave the len_left and ppos values at their current + * state, as we currently have a valid event to read. + */ + return -EFAULT; + } + read_count += copy_len; + }; + return read_count; + +nodata: + *ppos = 0; + chan->iter.len_left = 0; + return read_count; +} + +/** + * lib_ring_buffer_file_read - Read buffer record payload. + * @filp: file structure pointer. + * @buffer: user buffer to read data into. + * @count: number of bytes to read. + * @ppos: file read position. + * + * Returns a negative value on error, or the number of bytes read on success. + * ppos is used to save the position _within the current record_ between calls + * to read(). + */ +static +ssize_t lib_ring_buffer_file_read(struct file *filp, + char __user *user_buf, + size_t count, + loff_t *ppos) +{ + struct inode *inode = filp->f_dentry->d_inode; + struct lib_ring_buffer *buf = inode->i_private; + struct channel *chan = buf->backend.chan; + + return channel_ring_buffer_file_read(filp, user_buf, count, ppos, + chan, buf, 0); +} + +/** + * channel_file_read - Read channel record payload. + * @filp: file structure pointer. + * @buffer: user buffer to read data into. + * @count: number of bytes to read. + * @ppos: file read position. + * + * Returns a negative value on error, or the number of bytes read on success. + * ppos is used to save the position _within the current record_ between calls + * to read(). + */ +static +ssize_t channel_file_read(struct file *filp, + char __user *user_buf, + size_t count, + loff_t *ppos) +{ + struct inode *inode = filp->f_dentry->d_inode; + struct channel *chan = inode->i_private; + const struct lib_ring_buffer_config *config = &chan->backend.config; + + if (config->alloc == RING_BUFFER_ALLOC_PER_CPU) + return channel_ring_buffer_file_read(filp, user_buf, count, + ppos, chan, NULL, 1); + else { + struct lib_ring_buffer *buf = + channel_get_ring_buffer(config, chan, 0); + return channel_ring_buffer_file_read(filp, user_buf, count, + ppos, chan, buf, 0); + } +} + +static +int lib_ring_buffer_file_open(struct inode *inode, struct file *file) +{ + struct lib_ring_buffer *buf = inode->i_private; + int ret; + + ret = lib_ring_buffer_iterator_open(buf); + if (ret) + return ret; + + file->private_data = buf; + ret = nonseekable_open(inode, file); + if (ret) + goto release_iter; + return 0; + +release_iter: + lib_ring_buffer_iterator_release(buf); + return ret; +} + +static +int lib_ring_buffer_file_release(struct inode *inode, struct file *file) +{ + struct lib_ring_buffer *buf = inode->i_private; + + lib_ring_buffer_iterator_release(buf); + return 0; +} + +static +int channel_file_open(struct inode *inode, struct file *file) +{ + struct channel *chan = inode->i_private; + int ret; + + ret = channel_iterator_open(chan); + if (ret) + return ret; + + file->private_data = chan; + ret = nonseekable_open(inode, file); + if (ret) + goto release_iter; + return 0; + +release_iter: + channel_iterator_release(chan); + return ret; +} + +static +int channel_file_release(struct inode *inode, struct file *file) +{ + struct channel *chan = inode->i_private; + + channel_iterator_release(chan); + return 0; +} + +const struct file_operations channel_payload_file_operations = { + .owner = THIS_MODULE, + .open = channel_file_open, + .release = channel_file_release, + .read = channel_file_read, + .llseek = vfs_lib_ring_buffer_no_llseek, +}; +EXPORT_SYMBOL_GPL(channel_payload_file_operations); + +const struct file_operations lib_ring_buffer_payload_file_operations = { + .owner = THIS_MODULE, + .open = lib_ring_buffer_file_open, + .release = lib_ring_buffer_file_release, + .read = lib_ring_buffer_file_read, + .llseek = vfs_lib_ring_buffer_no_llseek, +}; +EXPORT_SYMBOL_GPL(lib_ring_buffer_payload_file_operations); --- linux-3.11.0.orig/ubuntu/lttng/lib/ringbuffer/vatomic.h +++ linux-3.11.0/ubuntu/lttng/lib/ringbuffer/vatomic.h @@ -0,0 +1,97 @@ +#ifndef _LIB_RING_BUFFER_VATOMIC_H +#define _LIB_RING_BUFFER_VATOMIC_H + +/* + * lib/ringbuffer/vatomic.h + * + * Copyright (C) 2010-2012 Mathieu Desnoyers + * + * 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; only + * version 2.1 of the License. + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include +#include + +/* + * Same data type (long) accessed differently depending on configuration. + * v field is for non-atomic access (protected by mutual exclusion). + * In the fast-path, the ring_buffer_config structure is constant, so the + * compiler can statically select the appropriate branch. + * local_t is used for per-cpu and per-thread buffers. + * atomic_long_t is used for globally shared buffers. + */ +union v_atomic { + local_t l; + atomic_long_t a; + long v; +}; + +static inline +long v_read(const struct lib_ring_buffer_config *config, union v_atomic *v_a) +{ + if (config->sync == RING_BUFFER_SYNC_PER_CPU) + return local_read(&v_a->l); + else + return atomic_long_read(&v_a->a); +} + +static inline +void v_set(const struct lib_ring_buffer_config *config, union v_atomic *v_a, + long v) +{ + if (config->sync == RING_BUFFER_SYNC_PER_CPU) + local_set(&v_a->l, v); + else + atomic_long_set(&v_a->a, v); +} + +static inline +void v_add(const struct lib_ring_buffer_config *config, long v, union v_atomic *v_a) +{ + if (config->sync == RING_BUFFER_SYNC_PER_CPU) + local_add(v, &v_a->l); + else + atomic_long_add(v, &v_a->a); +} + +static inline +void v_inc(const struct lib_ring_buffer_config *config, union v_atomic *v_a) +{ + if (config->sync == RING_BUFFER_SYNC_PER_CPU) + local_inc(&v_a->l); + else + atomic_long_inc(&v_a->a); +} + +/* + * Non-atomic decrement. Only used by reader, apply to reader-owned subbuffer. + */ +static inline +void _v_dec(const struct lib_ring_buffer_config *config, union v_atomic *v_a) +{ + --v_a->v; +} + +static inline +long v_cmpxchg(const struct lib_ring_buffer_config *config, union v_atomic *v_a, + long old, long _new) +{ + if (config->sync == RING_BUFFER_SYNC_PER_CPU) + return local_cmpxchg(&v_a->l, old, _new); + else + return atomic_long_cmpxchg(&v_a->a, old, _new); +} + +#endif /* _LIB_RING_BUFFER_VATOMIC_H */ --- linux-3.11.0.orig/ubuntu/lttng/lib/ringbuffer/backend_types.h +++ linux-3.11.0/ubuntu/lttng/lib/ringbuffer/backend_types.h @@ -0,0 +1,97 @@ +#ifndef _LIB_RING_BUFFER_BACKEND_TYPES_H +#define _LIB_RING_BUFFER_BACKEND_TYPES_H + +/* + * lib/ringbuffer/backend_types.h + * + * Ring buffer backend (types). + * + * Copyright (C) 2008-2012 Mathieu Desnoyers + * + * 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; only + * version 2.1 of the License. + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include +#include + +struct lib_ring_buffer_backend_page { + void *virt; /* page virtual address (cached) */ + struct page *page; /* pointer to page structure */ +}; + +struct lib_ring_buffer_backend_pages { + unsigned long mmap_offset; /* offset of the subbuffer in mmap */ + union v_atomic records_commit; /* current records committed count */ + union v_atomic records_unread; /* records to read */ + unsigned long data_size; /* Amount of data to read from subbuf */ + struct lib_ring_buffer_backend_page p[]; +}; + +struct lib_ring_buffer_backend_subbuffer { + /* Identifier for subbuf backend pages. Exchanged atomically. */ + unsigned long id; /* backend subbuffer identifier */ +}; + +/* + * Forward declaration of frontend-specific channel and ring_buffer. + */ +struct channel; +struct lib_ring_buffer; + +struct lib_ring_buffer_backend { + /* Array of ring_buffer_backend_subbuffer for writer */ + struct lib_ring_buffer_backend_subbuffer *buf_wsb; + /* ring_buffer_backend_subbuffer for reader */ + struct lib_ring_buffer_backend_subbuffer buf_rsb; + /* + * Pointer array of backend pages, for whole buffer. + * Indexed by ring_buffer_backend_subbuffer identifier (id) index. + */ + struct lib_ring_buffer_backend_pages **array; + unsigned int num_pages_per_subbuf; + + struct channel *chan; /* Associated channel */ + int cpu; /* This buffer's cpu. -1 if global. */ + union v_atomic records_read; /* Number of records read */ + unsigned int allocated:1; /* is buffer allocated ? */ +}; + +struct channel_backend { + unsigned long buf_size; /* Size of the buffer */ + unsigned long subbuf_size; /* Sub-buffer size */ + unsigned int subbuf_size_order; /* Order of sub-buffer size */ + unsigned int num_subbuf_order; /* + * Order of number of sub-buffers/buffer + * for writer. + */ + unsigned int buf_size_order; /* Order of buffer size */ + unsigned int extra_reader_sb:1; /* has extra reader subbuffer ? */ + struct lib_ring_buffer *buf; /* Channel per-cpu buffers */ + + unsigned long num_subbuf; /* Number of sub-buffers for writer */ + u64 start_tsc; /* Channel creation TSC value */ + void *priv; /* Client-specific information */ + struct notifier_block cpu_hp_notifier; /* CPU hotplug notifier */ + /* + * We need to copy config because the module containing the + * source config can vanish before the last reference to this + * channel's streams is released. + */ + struct lib_ring_buffer_config config; /* Ring buffer configuration */ + cpumask_var_t cpumask; /* Allocated per-cpu buffers cpumask */ + char name[NAME_MAX]; /* Channel name */ +}; + +#endif /* _LIB_RING_BUFFER_BACKEND_TYPES_H */ --- linux-3.11.0.orig/ubuntu/lttng/lib/ringbuffer/config.h +++ linux-3.11.0/ubuntu/lttng/lib/ringbuffer/config.h @@ -0,0 +1,315 @@ +#ifndef _LIB_RING_BUFFER_CONFIG_H +#define _LIB_RING_BUFFER_CONFIG_H + +/* + * lib/ringbuffer/config.h + * + * Ring buffer configuration header. Note: after declaring the standard inline + * functions, clients should also include linux/ringbuffer/api.h. + * + * Copyright (C) 2010-2012 Mathieu Desnoyers + * + * 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; only + * version 2.1 of the License. + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include +#include +#include "../align.h" +#include "../../lttng-tracer-core.h" + +struct lib_ring_buffer; +struct channel; +struct lib_ring_buffer_config; +struct lib_ring_buffer_ctx; + +/* + * Ring buffer client callbacks. Only used by slow path, never on fast path. + * For the fast path, record_header_size(), ring_buffer_clock_read() should be + * provided as inline functions too. These may simply return 0 if not used by + * the client. + */ +struct lib_ring_buffer_client_cb { + /* Mandatory callbacks */ + + /* A static inline version is also required for fast path */ + u64 (*ring_buffer_clock_read) (struct channel *chan); + size_t (*record_header_size) (const struct lib_ring_buffer_config *config, + struct channel *chan, size_t offset, + size_t *pre_header_padding, + struct lib_ring_buffer_ctx *ctx); + + /* Slow path only, at subbuffer switch */ + size_t (*subbuffer_header_size) (void); + void (*buffer_begin) (struct lib_ring_buffer *buf, u64 tsc, + unsigned int subbuf_idx); + void (*buffer_end) (struct lib_ring_buffer *buf, u64 tsc, + unsigned int subbuf_idx, unsigned long data_size); + + /* Optional callbacks (can be set to NULL) */ + + /* Called at buffer creation/finalize */ + int (*buffer_create) (struct lib_ring_buffer *buf, void *priv, + int cpu, const char *name); + /* + * Clients should guarantee that no new reader handle can be opened + * after finalize. + */ + void (*buffer_finalize) (struct lib_ring_buffer *buf, void *priv, int cpu); + + /* + * Extract header length, payload length and timestamp from event + * record. Used by buffer iterators. Timestamp is only used by channel + * iterator. + */ + void (*record_get) (const struct lib_ring_buffer_config *config, + struct channel *chan, struct lib_ring_buffer *buf, + size_t offset, size_t *header_len, + size_t *payload_len, u64 *timestamp); +}; + +/* + * Ring buffer instance configuration. + * + * Declare as "static const" within the client object to ensure the inline fast + * paths can be optimized. + * + * alloc/sync pairs: + * + * RING_BUFFER_ALLOC_PER_CPU and RING_BUFFER_SYNC_PER_CPU : + * Per-cpu buffers with per-cpu synchronization. Tracing must be performed + * with preemption disabled (lib_ring_buffer_get_cpu() and + * lib_ring_buffer_put_cpu()). + * + * RING_BUFFER_ALLOC_PER_CPU and RING_BUFFER_SYNC_GLOBAL : + * Per-cpu buffer with global synchronization. Tracing can be performed with + * preemption enabled, statistically stays on the local buffers. + * + * RING_BUFFER_ALLOC_GLOBAL and RING_BUFFER_SYNC_PER_CPU : + * Should only be used for buffers belonging to a single thread or protected + * by mutual exclusion by the client. Note that periodical sub-buffer switch + * should be disabled in this kind of configuration. + * + * RING_BUFFER_ALLOC_GLOBAL and RING_BUFFER_SYNC_GLOBAL : + * Global shared buffer with global synchronization. + * + * wakeup: + * + * RING_BUFFER_WAKEUP_BY_TIMER uses per-cpu deferrable timers to poll the + * buffers and wake up readers if data is ready. Mainly useful for tracers which + * don't want to call into the wakeup code on the tracing path. Use in + * combination with "read_timer_interval" channel_create() argument. + * + * RING_BUFFER_WAKEUP_BY_WRITER directly wakes up readers when a subbuffer is + * ready to read. Lower latencies before the reader is woken up. Mainly suitable + * for drivers. + * + * RING_BUFFER_WAKEUP_NONE does not perform any wakeup whatsoever. The client + * has the responsibility to perform wakeups. + */ +struct lib_ring_buffer_config { + enum { + RING_BUFFER_ALLOC_PER_CPU, + RING_BUFFER_ALLOC_GLOBAL, + } alloc; + enum { + RING_BUFFER_SYNC_PER_CPU, /* Wait-free */ + RING_BUFFER_SYNC_GLOBAL, /* Lock-free */ + } sync; + enum { + RING_BUFFER_OVERWRITE, /* Overwrite when buffer full */ + RING_BUFFER_DISCARD, /* Discard when buffer full */ + } mode; + enum { + RING_BUFFER_SPLICE, + RING_BUFFER_MMAP, + RING_BUFFER_READ, /* TODO */ + RING_BUFFER_ITERATOR, + RING_BUFFER_NONE, + } output; + enum { + RING_BUFFER_PAGE, + RING_BUFFER_VMAP, /* TODO */ + RING_BUFFER_STATIC, /* TODO */ + } backend; + enum { + RING_BUFFER_NO_OOPS_CONSISTENCY, + RING_BUFFER_OOPS_CONSISTENCY, + } oops; + enum { + RING_BUFFER_IPI_BARRIER, + RING_BUFFER_NO_IPI_BARRIER, + } ipi; + enum { + RING_BUFFER_WAKEUP_BY_TIMER, /* wake up performed by timer */ + RING_BUFFER_WAKEUP_BY_WRITER, /* + * writer wakes up reader, + * not lock-free + * (takes spinlock). + */ + } wakeup; + /* + * tsc_bits: timestamp bits saved at each record. + * 0 and 64 disable the timestamp compression scheme. + */ + unsigned int tsc_bits; + struct lib_ring_buffer_client_cb cb; +}; + +/* + * ring buffer context + * + * Context passed to lib_ring_buffer_reserve(), lib_ring_buffer_commit(), + * lib_ring_buffer_try_discard_reserve(), lib_ring_buffer_align_ctx() and + * lib_ring_buffer_write(). + */ +struct lib_ring_buffer_ctx { + /* input received by lib_ring_buffer_reserve(), saved here. */ + struct channel *chan; /* channel */ + void *priv; /* client private data */ + size_t data_size; /* size of payload */ + int largest_align; /* + * alignment of the largest element + * in the payload + */ + int cpu; /* processor id */ + + /* output from lib_ring_buffer_reserve() */ + struct lib_ring_buffer *buf; /* + * buffer corresponding to processor id + * for this channel + */ + size_t slot_size; /* size of the reserved slot */ + unsigned long buf_offset; /* offset following the record header */ + unsigned long pre_offset; /* + * Initial offset position _before_ + * the record is written. Positioned + * prior to record header alignment + * padding. + */ + u64 tsc; /* time-stamp counter value */ + unsigned int rflags; /* reservation flags */ +}; + +/** + * lib_ring_buffer_ctx_init - initialize ring buffer context + * @ctx: ring buffer context to initialize + * @chan: channel + * @priv: client private data + * @data_size: size of record data payload. It must be greater than 0. + * @largest_align: largest alignment within data payload types + * @cpu: processor id + */ +static inline +void lib_ring_buffer_ctx_init(struct lib_ring_buffer_ctx *ctx, + struct channel *chan, void *priv, + size_t data_size, int largest_align, + int cpu) +{ + ctx->chan = chan; + ctx->priv = priv; + ctx->data_size = data_size; + ctx->largest_align = largest_align; + ctx->cpu = cpu; + ctx->rflags = 0; +} + +/* + * Reservation flags. + * + * RING_BUFFER_RFLAG_FULL_TSC + * + * This flag is passed to record_header_size() and to the primitive used to + * write the record header. It indicates that the full 64-bit time value is + * needed in the record header. If this flag is not set, the record header needs + * only to contain "tsc_bits" bit of time value. + * + * Reservation flags can be added by the client, starting from + * "(RING_BUFFER_FLAGS_END << 0)". It can be used to pass information from + * record_header_size() to lib_ring_buffer_write_record_header(). + */ +#define RING_BUFFER_RFLAG_FULL_TSC (1U << 0) +#define RING_BUFFER_RFLAG_END (1U << 1) + +#ifndef LTTNG_TRACER_CORE_H +#error "lttng-tracer-core.h is needed for RING_BUFFER_ALIGN define" +#endif + +/* + * We need to define RING_BUFFER_ALIGN_ATTR so it is known early at + * compile-time. We have to duplicate the "config->align" information and the + * definition here because config->align is used both in the slow and fast + * paths, but RING_BUFFER_ALIGN_ATTR is only available for the client code. + */ +#ifdef RING_BUFFER_ALIGN + +# define RING_BUFFER_ALIGN_ATTR /* Default arch alignment */ + +/* + * Calculate the offset needed to align the type. + * size_of_type must be non-zero. + */ +static inline +unsigned int lib_ring_buffer_align(size_t align_drift, size_t size_of_type) +{ + return offset_align(align_drift, size_of_type); +} + +#else + +# define RING_BUFFER_ALIGN_ATTR __attribute__((packed)) + +/* + * Calculate the offset needed to align the type. + * size_of_type must be non-zero. + */ +static inline +unsigned int lib_ring_buffer_align(size_t align_drift, size_t size_of_type) +{ + return 0; +} + +#endif + +/** + * lib_ring_buffer_align_ctx - Align context offset on "alignment" + * @ctx: ring buffer context. + */ +static inline +void lib_ring_buffer_align_ctx(struct lib_ring_buffer_ctx *ctx, + size_t alignment) +{ + ctx->buf_offset += lib_ring_buffer_align(ctx->buf_offset, + alignment); +} + +/* + * lib_ring_buffer_check_config() returns 0 on success. + * Used internally to check for valid configurations at channel creation. + */ +static inline +int lib_ring_buffer_check_config(const struct lib_ring_buffer_config *config, + unsigned int switch_timer_interval, + unsigned int read_timer_interval) +{ + if (config->alloc == RING_BUFFER_ALLOC_GLOBAL + && config->sync == RING_BUFFER_SYNC_PER_CPU + && switch_timer_interval) + return -EINVAL; + return 0; +} + +#include "../../wrapper/ringbuffer/vatomic.h" + +#endif /* _LIB_RING_BUFFER_CONFIG_H */ --- linux-3.11.0.orig/ubuntu/lttng/lib/ringbuffer/frontend.h +++ linux-3.11.0/ubuntu/lttng/lib/ringbuffer/frontend.h @@ -0,0 +1,240 @@ +#ifndef _LIB_RING_BUFFER_FRONTEND_H +#define _LIB_RING_BUFFER_FRONTEND_H + +/* + * lib/ringbuffer/frontend.h + * + * Ring Buffer Library Synchronization Header (API). + * + * Copyright (C) 2005-2012 Mathieu Desnoyers + * + * 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; only + * version 2.1 of the License. + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + * + * Author: + * Mathieu Desnoyers + * + * See ring_buffer_frontend.c for more information on wait-free algorithms. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include + +/* Internal helpers */ +#include "../../wrapper/ringbuffer/frontend_internal.h" + +/* Buffer creation/removal and setup operations */ + +/* + * switch_timer_interval is the time interval (in us) to fill sub-buffers with + * padding to let readers get those sub-buffers. Used for live streaming. + * + * read_timer_interval is the time interval (in us) to wake up pending readers. + * + * buf_addr is a pointer the the beginning of the preallocated buffer contiguous + * address mapping. It is used only by RING_BUFFER_STATIC configuration. It can + * be set to NULL for other backends. + */ + +extern +struct channel *channel_create(const struct lib_ring_buffer_config *config, + const char *name, void *priv, + void *buf_addr, + size_t subbuf_size, size_t num_subbuf, + unsigned int switch_timer_interval, + unsigned int read_timer_interval); + +/* + * channel_destroy returns the private data pointer. It finalizes all channel's + * buffers, waits for readers to release all references, and destroys the + * channel. + */ +extern +void *channel_destroy(struct channel *chan); + + +/* Buffer read operations */ + +/* + * Iteration on channel cpumask needs to issue a read barrier to match the write + * barrier in cpu hotplug. It orders the cpumask read before read of per-cpu + * buffer data. The per-cpu buffer is never removed by cpu hotplug; teardown is + * only performed at channel destruction. + */ +#define for_each_channel_cpu(cpu, chan) \ + for ((cpu) = -1; \ + ({ (cpu) = cpumask_next(cpu, (chan)->backend.cpumask); \ + smp_read_barrier_depends(); (cpu) < nr_cpu_ids; });) + +extern struct lib_ring_buffer *channel_get_ring_buffer( + const struct lib_ring_buffer_config *config, + struct channel *chan, int cpu); +extern int lib_ring_buffer_open_read(struct lib_ring_buffer *buf); +extern void lib_ring_buffer_release_read(struct lib_ring_buffer *buf); + +/* + * Read sequence: snapshot, many get_subbuf/put_subbuf, move_consumer. + */ +extern int lib_ring_buffer_snapshot(struct lib_ring_buffer *buf, + unsigned long *consumed, + unsigned long *produced); +extern void lib_ring_buffer_move_consumer(struct lib_ring_buffer *buf, + unsigned long consumed_new); + +extern int lib_ring_buffer_get_subbuf(struct lib_ring_buffer *buf, + unsigned long consumed); +extern void lib_ring_buffer_put_subbuf(struct lib_ring_buffer *buf); + +/* + * lib_ring_buffer_get_next_subbuf/lib_ring_buffer_put_next_subbuf are helpers + * to read sub-buffers sequentially. + */ +static inline int lib_ring_buffer_get_next_subbuf(struct lib_ring_buffer *buf) +{ + int ret; + + ret = lib_ring_buffer_snapshot(buf, &buf->cons_snapshot, + &buf->prod_snapshot); + if (ret) + return ret; + ret = lib_ring_buffer_get_subbuf(buf, buf->cons_snapshot); + return ret; +} + +static inline void lib_ring_buffer_put_next_subbuf(struct lib_ring_buffer *buf) +{ + lib_ring_buffer_put_subbuf(buf); + lib_ring_buffer_move_consumer(buf, subbuf_align(buf->cons_snapshot, + buf->backend.chan)); +} + +extern void channel_reset(struct channel *chan); +extern void lib_ring_buffer_reset(struct lib_ring_buffer *buf); + +static inline +unsigned long lib_ring_buffer_get_offset(const struct lib_ring_buffer_config *config, + struct lib_ring_buffer *buf) +{ + return v_read(config, &buf->offset); +} + +static inline +unsigned long lib_ring_buffer_get_consumed(const struct lib_ring_buffer_config *config, + struct lib_ring_buffer *buf) +{ + return atomic_long_read(&buf->consumed); +} + +/* + * Must call lib_ring_buffer_is_finalized before reading counters (memory + * ordering enforced with respect to trace teardown). + */ +static inline +int lib_ring_buffer_is_finalized(const struct lib_ring_buffer_config *config, + struct lib_ring_buffer *buf) +{ + int finalized = ACCESS_ONCE(buf->finalized); + /* + * Read finalized before counters. + */ + smp_rmb(); + return finalized; +} + +static inline +int lib_ring_buffer_channel_is_finalized(const struct channel *chan) +{ + return chan->finalized; +} + +static inline +int lib_ring_buffer_channel_is_disabled(const struct channel *chan) +{ + return atomic_read(&chan->record_disabled); +} + +static inline +unsigned long lib_ring_buffer_get_read_data_size( + const struct lib_ring_buffer_config *config, + struct lib_ring_buffer *buf) +{ + return subbuffer_get_read_data_size(config, &buf->backend); +} + +static inline +unsigned long lib_ring_buffer_get_records_count( + const struct lib_ring_buffer_config *config, + struct lib_ring_buffer *buf) +{ + return v_read(config, &buf->records_count); +} + +static inline +unsigned long lib_ring_buffer_get_records_overrun( + const struct lib_ring_buffer_config *config, + struct lib_ring_buffer *buf) +{ + return v_read(config, &buf->records_overrun); +} + +static inline +unsigned long lib_ring_buffer_get_records_lost_full( + const struct lib_ring_buffer_config *config, + struct lib_ring_buffer *buf) +{ + return v_read(config, &buf->records_lost_full); +} + +static inline +unsigned long lib_ring_buffer_get_records_lost_wrap( + const struct lib_ring_buffer_config *config, + struct lib_ring_buffer *buf) +{ + return v_read(config, &buf->records_lost_wrap); +} + +static inline +unsigned long lib_ring_buffer_get_records_lost_big( + const struct lib_ring_buffer_config *config, + struct lib_ring_buffer *buf) +{ + return v_read(config, &buf->records_lost_big); +} + +static inline +unsigned long lib_ring_buffer_get_records_read( + const struct lib_ring_buffer_config *config, + struct lib_ring_buffer *buf) +{ + return v_read(config, &buf->backend.records_read); +} + +#endif /* _LIB_RING_BUFFER_FRONTEND_H */ --- linux-3.11.0.orig/ubuntu/lttng/lib/ringbuffer/nohz.h +++ linux-3.11.0/ubuntu/lttng/lib/ringbuffer/nohz.h @@ -0,0 +1,42 @@ +#ifndef _LIB_RING_BUFFER_NOHZ_H +#define _LIB_RING_BUFFER_NOHZ_H + +/* + * lib/ringbuffer/nohz.h + * + * Copyright (C) 2011-2012 Mathieu Desnoyers + * + * 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; only + * version 2.1 of the License. + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifdef CONFIG_LIB_RING_BUFFER +void lib_ring_buffer_tick_nohz_flush(void); +void lib_ring_buffer_tick_nohz_stop(void); +void lib_ring_buffer_tick_nohz_restart(void); +#else +static inline void lib_ring_buffer_tick_nohz_flush(void) +{ +} + +static inline void lib_ring_buffer_tick_nohz_stop(void) +{ +} + +static inline void lib_ring_buffer_tick_nohz_restart(void) +{ +} +#endif + +#endif /* _LIB_RING_BUFFER_NOHZ_H */ --- linux-3.11.0.orig/ubuntu/lttng/lib/ringbuffer/frontend_types.h +++ linux-3.11.0/ubuntu/lttng/lib/ringbuffer/frontend_types.h @@ -0,0 +1,188 @@ +#ifndef _LIB_RING_BUFFER_FRONTEND_TYPES_H +#define _LIB_RING_BUFFER_FRONTEND_TYPES_H + +/* + * lib/ringbuffer/frontend_types.h + * + * Ring Buffer Library Synchronization Header (types). + * + * Copyright (C) 2010-2012 Mathieu Desnoyers + * + * 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; only + * version 2.1 of the License. + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + * + * Author: + * Mathieu Desnoyers + * + * See ring_buffer_frontend.c for more information on wait-free algorithms. + */ + +#include +#include "../../wrapper/ringbuffer/config.h" +#include "../../wrapper/ringbuffer/backend_types.h" +#include "../../wrapper/spinlock.h" +#include "../../lib/prio_heap/lttng_prio_heap.h" /* For per-CPU read-side iterator */ + +/* + * A switch is done during tracing or as a final flush after tracing (so it + * won't write in the new sub-buffer). + */ +enum switch_mode { SWITCH_ACTIVE, SWITCH_FLUSH }; + +/* channel-level read-side iterator */ +struct channel_iter { + /* Prio heap of buffers. Lowest timestamps at the top. */ + struct lttng_ptr_heap heap; /* Heap of struct lib_ring_buffer ptrs */ + struct list_head empty_head; /* Empty buffers linked-list head */ + int read_open; /* Opened for reading ? */ + u64 last_qs; /* Last quiescent state timestamp */ + u64 last_timestamp; /* Last timestamp (for WARN_ON) */ + int last_cpu; /* Last timestamp cpu */ + /* + * read() file operation state. + */ + unsigned long len_left; +}; + +/* channel: collection of per-cpu ring buffers. */ +struct channel { + atomic_t record_disabled; + unsigned long commit_count_mask; /* + * Commit count mask, removing + * the MSBs corresponding to + * bits used to represent the + * subbuffer index. + */ + + struct channel_backend backend; /* Associated backend */ + + unsigned long switch_timer_interval; /* Buffer flush (jiffies) */ + unsigned long read_timer_interval; /* Reader wakeup (jiffies) */ + struct notifier_block cpu_hp_notifier; /* CPU hotplug notifier */ + struct notifier_block tick_nohz_notifier; /* CPU nohz notifier */ + struct notifier_block hp_iter_notifier; /* hotplug iterator notifier */ + unsigned int cpu_hp_enable:1; /* Enable CPU hotplug notif. */ + unsigned int hp_iter_enable:1; /* Enable hp iter notif. */ + wait_queue_head_t read_wait; /* reader wait queue */ + wait_queue_head_t hp_wait; /* CPU hotplug wait queue */ + int finalized; /* Has channel been finalized */ + struct channel_iter iter; /* Channel read-side iterator */ + struct kref ref; /* Reference count */ +}; + +/* Per-subbuffer commit counters used on the hot path */ +struct commit_counters_hot { + union v_atomic cc; /* Commit counter */ + union v_atomic seq; /* Consecutive commits */ +}; + +/* Per-subbuffer commit counters used only on cold paths */ +struct commit_counters_cold { + union v_atomic cc_sb; /* Incremented _once_ at sb switch */ +}; + +/* Per-buffer read iterator */ +struct lib_ring_buffer_iter { + u64 timestamp; /* Current record timestamp */ + size_t header_len; /* Current record header length */ + size_t payload_len; /* Current record payload length */ + + struct list_head empty_node; /* Linked list of empty buffers */ + unsigned long consumed, read_offset, data_size; + enum { + ITER_GET_SUBBUF = 0, + ITER_TEST_RECORD, + ITER_NEXT_RECORD, + ITER_PUT_SUBBUF, + } state; + unsigned int allocated:1; + unsigned int read_open:1; /* Opened for reading ? */ +}; + +/* ring buffer state */ +struct lib_ring_buffer { + /* First 32 bytes cache-hot cacheline */ + union v_atomic offset; /* Current offset in the buffer */ + struct commit_counters_hot *commit_hot; + /* Commit count per sub-buffer */ + atomic_long_t consumed; /* + * Current offset in the buffer + * standard atomic access (shared) + */ + atomic_t record_disabled; + /* End of first 32 bytes cacheline */ + union v_atomic last_tsc; /* + * Last timestamp written in the buffer. + */ + + struct lib_ring_buffer_backend backend; /* Associated backend */ + + struct commit_counters_cold *commit_cold; + /* Commit count per sub-buffer */ + atomic_long_t active_readers; /* + * Active readers count + * standard atomic access (shared) + */ + /* Dropped records */ + union v_atomic records_lost_full; /* Buffer full */ + union v_atomic records_lost_wrap; /* Nested wrap-around */ + union v_atomic records_lost_big; /* Events too big */ + union v_atomic records_count; /* Number of records written */ + union v_atomic records_overrun; /* Number of overwritten records */ + wait_queue_head_t read_wait; /* reader buffer-level wait queue */ + wait_queue_head_t write_wait; /* writer buffer-level wait queue (for metadata only) */ + int finalized; /* buffer has been finalized */ + struct timer_list switch_timer; /* timer for periodical switch */ + struct timer_list read_timer; /* timer for read poll */ + raw_spinlock_t raw_tick_nohz_spinlock; /* nohz entry lock/trylock */ + struct lib_ring_buffer_iter iter; /* read-side iterator */ + unsigned long get_subbuf_consumed; /* Read-side consumed */ + unsigned long prod_snapshot; /* Producer count snapshot */ + unsigned long cons_snapshot; /* Consumer count snapshot */ + unsigned int get_subbuf:1, /* Sub-buffer being held by reader */ + switch_timer_enabled:1, /* Protected by ring_buffer_nohz_lock */ + read_timer_enabled:1; /* Protected by ring_buffer_nohz_lock */ +}; + +static inline +void *channel_get_private(struct channel *chan) +{ + return chan->backend.priv; +} + +/* + * Issue warnings and disable channels upon internal error. + * Can receive struct lib_ring_buffer or struct lib_ring_buffer_backend + * parameters. + */ +#define CHAN_WARN_ON(c, cond) \ + ({ \ + struct channel *__chan; \ + int _____ret = unlikely(cond); \ + if (_____ret) { \ + if (__same_type(*(c), struct channel_backend)) \ + __chan = container_of((void *) (c), \ + struct channel, \ + backend); \ + else if (__same_type(*(c), struct channel)) \ + __chan = (void *) (c); \ + else \ + BUG_ON(1); \ + atomic_inc(&__chan->record_disabled); \ + WARN_ON(1); \ + } \ + _____ret; \ + }) + +#endif /* _LIB_RING_BUFFER_FRONTEND_TYPES_H */ --- linux-3.11.0.orig/ubuntu/lttng/lib/ringbuffer/ring_buffer_frontend.c +++ linux-3.11.0/ubuntu/lttng/lib/ringbuffer/ring_buffer_frontend.c @@ -0,0 +1,1830 @@ +/* + * ring_buffer_frontend.c + * + * Copyright (C) 2005-2012 Mathieu Desnoyers + * + * 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; only + * version 2.1 of the License. + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + * + * + * Ring buffer wait-free buffer synchronization. Producer-consumer and flight + * recorder (overwrite) modes. See thesis: + * + * Desnoyers, Mathieu (2009), "Low-Impact Operating System Tracing", Ph.D. + * dissertation, Ecole Polytechnique de Montreal. + * http://www.lttng.org/pub/thesis/desnoyers-dissertation-2009-12.pdf + * + * - Algorithm presentation in Chapter 5: + * "Lockless Multi-Core High-Throughput Buffering". + * - Algorithm formal verification in Section 8.6: + * "Formal verification of LTTng" + * + * Author: + * Mathieu Desnoyers + * + * Inspired from LTT and RelayFS: + * Karim Yaghmour + * Tom Zanussi + * Bob Wisniewski + * And from K42 : + * Bob Wisniewski + * + * Buffer reader semantic : + * + * - get_subbuf_size + * while buffer is not finalized and empty + * - get_subbuf + * - if return value != 0, continue + * - splice one subbuffer worth of data to a pipe + * - splice the data from pipe to disk/network + * - put_subbuf + */ + +#include +#include +#include + +#include "../../wrapper/ringbuffer/config.h" +#include "../../wrapper/ringbuffer/backend.h" +#include "../../wrapper/ringbuffer/frontend.h" +#include "../../wrapper/ringbuffer/iterator.h" +#include "../../wrapper/ringbuffer/nohz.h" + +/* + * Internal structure representing offsets to use at a sub-buffer switch. + */ +struct switch_offsets { + unsigned long begin, end, old; + size_t pre_header_padding, size; + unsigned int switch_new_start:1, switch_new_end:1, switch_old_start:1, + switch_old_end:1; +}; + +#ifdef CONFIG_NO_HZ +enum tick_nohz_val { + TICK_NOHZ_STOP, + TICK_NOHZ_FLUSH, + TICK_NOHZ_RESTART, +}; + +static ATOMIC_NOTIFIER_HEAD(tick_nohz_notifier); +#endif /* CONFIG_NO_HZ */ + +static DEFINE_PER_CPU(spinlock_t, ring_buffer_nohz_lock); + +DEFINE_PER_CPU(unsigned int, lib_ring_buffer_nesting); +EXPORT_PER_CPU_SYMBOL(lib_ring_buffer_nesting); + +static +void lib_ring_buffer_print_errors(struct channel *chan, + struct lib_ring_buffer *buf, int cpu); + +/* + * Must be called under cpu hotplug protection. + */ +void lib_ring_buffer_free(struct lib_ring_buffer *buf) +{ + struct channel *chan = buf->backend.chan; + + lib_ring_buffer_print_errors(chan, buf, buf->backend.cpu); + kfree(buf->commit_hot); + kfree(buf->commit_cold); + + lib_ring_buffer_backend_free(&buf->backend); +} + +/** + * lib_ring_buffer_reset - Reset ring buffer to initial values. + * @buf: Ring buffer. + * + * Effectively empty the ring buffer. Should be called when the buffer is not + * used for writing. The ring buffer can be opened for reading, but the reader + * should not be using the iterator concurrently with reset. The previous + * current iterator record is reset. + */ +void lib_ring_buffer_reset(struct lib_ring_buffer *buf) +{ + struct channel *chan = buf->backend.chan; + const struct lib_ring_buffer_config *config = &chan->backend.config; + unsigned int i; + + /* + * Reset iterator first. It will put the subbuffer if it currently holds + * it. + */ + lib_ring_buffer_iterator_reset(buf); + v_set(config, &buf->offset, 0); + for (i = 0; i < chan->backend.num_subbuf; i++) { + v_set(config, &buf->commit_hot[i].cc, 0); + v_set(config, &buf->commit_hot[i].seq, 0); + v_set(config, &buf->commit_cold[i].cc_sb, 0); + } + atomic_long_set(&buf->consumed, 0); + atomic_set(&buf->record_disabled, 0); + v_set(config, &buf->last_tsc, 0); + lib_ring_buffer_backend_reset(&buf->backend); + /* Don't reset number of active readers */ + v_set(config, &buf->records_lost_full, 0); + v_set(config, &buf->records_lost_wrap, 0); + v_set(config, &buf->records_lost_big, 0); + v_set(config, &buf->records_count, 0); + v_set(config, &buf->records_overrun, 0); + buf->finalized = 0; +} +EXPORT_SYMBOL_GPL(lib_ring_buffer_reset); + +/** + * channel_reset - Reset channel to initial values. + * @chan: Channel. + * + * Effectively empty the channel. Should be called when the channel is not used + * for writing. The channel can be opened for reading, but the reader should not + * be using the iterator concurrently with reset. The previous current iterator + * record is reset. + */ +void channel_reset(struct channel *chan) +{ + /* + * Reset iterators first. Will put the subbuffer if held for reading. + */ + channel_iterator_reset(chan); + atomic_set(&chan->record_disabled, 0); + /* Don't reset commit_count_mask, still valid */ + channel_backend_reset(&chan->backend); + /* Don't reset switch/read timer interval */ + /* Don't reset notifiers and notifier enable bits */ + /* Don't reset reader reference count */ +} +EXPORT_SYMBOL_GPL(channel_reset); + +/* + * Must be called under cpu hotplug protection. + */ +int lib_ring_buffer_create(struct lib_ring_buffer *buf, + struct channel_backend *chanb, int cpu) +{ + const struct lib_ring_buffer_config *config = &chanb->config; + struct channel *chan = container_of(chanb, struct channel, backend); + void *priv = chanb->priv; + size_t subbuf_header_size; + u64 tsc; + int ret; + + /* Test for cpu hotplug */ + if (buf->backend.allocated) + return 0; + + /* + * Paranoia: per cpu dynamic allocation is not officially documented as + * zeroing the memory, so let's do it here too, just in case. + */ + memset(buf, 0, sizeof(*buf)); + + ret = lib_ring_buffer_backend_create(&buf->backend, &chan->backend, cpu); + if (ret) + return ret; + + buf->commit_hot = + kzalloc_node(ALIGN(sizeof(*buf->commit_hot) + * chan->backend.num_subbuf, + 1 << INTERNODE_CACHE_SHIFT), + GFP_KERNEL, cpu_to_node(max(cpu, 0))); + if (!buf->commit_hot) { + ret = -ENOMEM; + goto free_chanbuf; + } + + buf->commit_cold = + kzalloc_node(ALIGN(sizeof(*buf->commit_cold) + * chan->backend.num_subbuf, + 1 << INTERNODE_CACHE_SHIFT), + GFP_KERNEL, cpu_to_node(max(cpu, 0))); + if (!buf->commit_cold) { + ret = -ENOMEM; + goto free_commit; + } + + init_waitqueue_head(&buf->read_wait); + init_waitqueue_head(&buf->write_wait); + raw_spin_lock_init(&buf->raw_tick_nohz_spinlock); + + /* + * Write the subbuffer header for first subbuffer so we know the total + * duration of data gathering. + */ + subbuf_header_size = config->cb.subbuffer_header_size(); + v_set(config, &buf->offset, subbuf_header_size); + subbuffer_id_clear_noref(config, &buf->backend.buf_wsb[0].id); + tsc = config->cb.ring_buffer_clock_read(buf->backend.chan); + config->cb.buffer_begin(buf, tsc, 0); + v_add(config, subbuf_header_size, &buf->commit_hot[0].cc); + + if (config->cb.buffer_create) { + ret = config->cb.buffer_create(buf, priv, cpu, chanb->name); + if (ret) + goto free_init; + } + + /* + * Ensure the buffer is ready before setting it to allocated and setting + * the cpumask. + * Used for cpu hotplug vs cpumask iteration. + */ + smp_wmb(); + buf->backend.allocated = 1; + + if (config->alloc == RING_BUFFER_ALLOC_PER_CPU) { + CHAN_WARN_ON(chan, cpumask_test_cpu(cpu, + chan->backend.cpumask)); + cpumask_set_cpu(cpu, chan->backend.cpumask); + } + + return 0; + + /* Error handling */ +free_init: + kfree(buf->commit_cold); +free_commit: + kfree(buf->commit_hot); +free_chanbuf: + lib_ring_buffer_backend_free(&buf->backend); + return ret; +} + +static void switch_buffer_timer(unsigned long data) +{ + struct lib_ring_buffer *buf = (struct lib_ring_buffer *)data; + struct channel *chan = buf->backend.chan; + const struct lib_ring_buffer_config *config = &chan->backend.config; + + /* + * Only flush buffers periodically if readers are active. + */ + if (atomic_long_read(&buf->active_readers)) + lib_ring_buffer_switch_slow(buf, SWITCH_ACTIVE); + + if (config->alloc == RING_BUFFER_ALLOC_PER_CPU) + mod_timer_pinned(&buf->switch_timer, + jiffies + chan->switch_timer_interval); + else + mod_timer(&buf->switch_timer, + jiffies + chan->switch_timer_interval); +} + +/* + * Called with ring_buffer_nohz_lock held for per-cpu buffers. + */ +static void lib_ring_buffer_start_switch_timer(struct lib_ring_buffer *buf) +{ + struct channel *chan = buf->backend.chan; + const struct lib_ring_buffer_config *config = &chan->backend.config; + + if (!chan->switch_timer_interval || buf->switch_timer_enabled) + return; + init_timer(&buf->switch_timer); + buf->switch_timer.function = switch_buffer_timer; + buf->switch_timer.expires = jiffies + chan->switch_timer_interval; + buf->switch_timer.data = (unsigned long)buf; + if (config->alloc == RING_BUFFER_ALLOC_PER_CPU) + add_timer_on(&buf->switch_timer, buf->backend.cpu); + else + add_timer(&buf->switch_timer); + buf->switch_timer_enabled = 1; +} + +/* + * Called with ring_buffer_nohz_lock held for per-cpu buffers. + */ +static void lib_ring_buffer_stop_switch_timer(struct lib_ring_buffer *buf) +{ + struct channel *chan = buf->backend.chan; + + if (!chan->switch_timer_interval || !buf->switch_timer_enabled) + return; + + del_timer_sync(&buf->switch_timer); + buf->switch_timer_enabled = 0; +} + +/* + * Polling timer to check the channels for data. + */ +static void read_buffer_timer(unsigned long data) +{ + struct lib_ring_buffer *buf = (struct lib_ring_buffer *)data; + struct channel *chan = buf->backend.chan; + const struct lib_ring_buffer_config *config = &chan->backend.config; + + CHAN_WARN_ON(chan, !buf->backend.allocated); + + if (atomic_long_read(&buf->active_readers) + && lib_ring_buffer_poll_deliver(config, buf, chan)) { + wake_up_interruptible(&buf->read_wait); + wake_up_interruptible(&chan->read_wait); + } + + if (config->alloc == RING_BUFFER_ALLOC_PER_CPU) + mod_timer_pinned(&buf->read_timer, + jiffies + chan->read_timer_interval); + else + mod_timer(&buf->read_timer, + jiffies + chan->read_timer_interval); +} + +/* + * Called with ring_buffer_nohz_lock held for per-cpu buffers. + */ +static void lib_ring_buffer_start_read_timer(struct lib_ring_buffer *buf) +{ + struct channel *chan = buf->backend.chan; + const struct lib_ring_buffer_config *config = &chan->backend.config; + + if (config->wakeup != RING_BUFFER_WAKEUP_BY_TIMER + || !chan->read_timer_interval + || buf->read_timer_enabled) + return; + + init_timer(&buf->read_timer); + buf->read_timer.function = read_buffer_timer; + buf->read_timer.expires = jiffies + chan->read_timer_interval; + buf->read_timer.data = (unsigned long)buf; + + if (config->alloc == RING_BUFFER_ALLOC_PER_CPU) + add_timer_on(&buf->read_timer, buf->backend.cpu); + else + add_timer(&buf->read_timer); + buf->read_timer_enabled = 1; +} + +/* + * Called with ring_buffer_nohz_lock held for per-cpu buffers. + */ +static void lib_ring_buffer_stop_read_timer(struct lib_ring_buffer *buf) +{ + struct channel *chan = buf->backend.chan; + const struct lib_ring_buffer_config *config = &chan->backend.config; + + if (config->wakeup != RING_BUFFER_WAKEUP_BY_TIMER + || !chan->read_timer_interval + || !buf->read_timer_enabled) + return; + + del_timer_sync(&buf->read_timer); + /* + * do one more check to catch data that has been written in the last + * timer period. + */ + if (lib_ring_buffer_poll_deliver(config, buf, chan)) { + wake_up_interruptible(&buf->read_wait); + wake_up_interruptible(&chan->read_wait); + } + buf->read_timer_enabled = 0; +} + +#ifdef CONFIG_HOTPLUG_CPU +/** + * lib_ring_buffer_cpu_hp_callback - CPU hotplug callback + * @nb: notifier block + * @action: hotplug action to take + * @hcpu: CPU number + * + * Returns the success/failure of the operation. (%NOTIFY_OK, %NOTIFY_BAD) + */ +static +int lib_ring_buffer_cpu_hp_callback(struct notifier_block *nb, + unsigned long action, + void *hcpu) +{ + unsigned int cpu = (unsigned long)hcpu; + struct channel *chan = container_of(nb, struct channel, + cpu_hp_notifier); + struct lib_ring_buffer *buf = per_cpu_ptr(chan->backend.buf, cpu); + const struct lib_ring_buffer_config *config = &chan->backend.config; + + if (!chan->cpu_hp_enable) + return NOTIFY_DONE; + + CHAN_WARN_ON(chan, config->alloc == RING_BUFFER_ALLOC_GLOBAL); + + switch (action) { + case CPU_DOWN_FAILED: + case CPU_DOWN_FAILED_FROZEN: + case CPU_ONLINE: + case CPU_ONLINE_FROZEN: + wake_up_interruptible(&chan->hp_wait); + lib_ring_buffer_start_switch_timer(buf); + lib_ring_buffer_start_read_timer(buf); + return NOTIFY_OK; + + case CPU_DOWN_PREPARE: + case CPU_DOWN_PREPARE_FROZEN: + lib_ring_buffer_stop_switch_timer(buf); + lib_ring_buffer_stop_read_timer(buf); + return NOTIFY_OK; + + case CPU_DEAD: + case CPU_DEAD_FROZEN: + /* + * Performing a buffer switch on a remote CPU. Performed by + * the CPU responsible for doing the hotunplug after the target + * CPU stopped running completely. Ensures that all data + * from that remote CPU is flushed. + */ + lib_ring_buffer_switch_slow(buf, SWITCH_ACTIVE); + return NOTIFY_OK; + + default: + return NOTIFY_DONE; + } +} +#endif + +#if defined(CONFIG_NO_HZ) && defined(CONFIG_LIB_RING_BUFFER) +/* + * For per-cpu buffers, call the reader wakeups before switching the buffer, so + * that wake-up-tracing generated events are flushed before going idle (in + * tick_nohz). We test if the spinlock is locked to deal with the race where + * readers try to sample the ring buffer before we perform the switch. We let + * the readers retry in that case. If there is data in the buffer, the wake up + * is going to forbid the CPU running the reader thread from going idle. + */ +static int notrace ring_buffer_tick_nohz_callback(struct notifier_block *nb, + unsigned long val, + void *data) +{ + struct channel *chan = container_of(nb, struct channel, + tick_nohz_notifier); + const struct lib_ring_buffer_config *config = &chan->backend.config; + struct lib_ring_buffer *buf; + int cpu = smp_processor_id(); + + if (config->alloc != RING_BUFFER_ALLOC_PER_CPU) { + /* + * We don't support keeping the system idle with global buffers + * and streaming active. In order to do so, we would need to + * sample a non-nohz-cpumask racelessly with the nohz updates + * without adding synchronization overhead to nohz. Leave this + * use-case out for now. + */ + return 0; + } + + buf = channel_get_ring_buffer(config, chan, cpu); + switch (val) { + case TICK_NOHZ_FLUSH: + raw_spin_lock(&buf->raw_tick_nohz_spinlock); + if (config->wakeup == RING_BUFFER_WAKEUP_BY_TIMER + && chan->read_timer_interval + && atomic_long_read(&buf->active_readers) + && (lib_ring_buffer_poll_deliver(config, buf, chan) + || lib_ring_buffer_pending_data(config, buf, chan))) { + wake_up_interruptible(&buf->read_wait); + wake_up_interruptible(&chan->read_wait); + } + if (chan->switch_timer_interval) + lib_ring_buffer_switch_slow(buf, SWITCH_ACTIVE); + raw_spin_unlock(&buf->raw_tick_nohz_spinlock); + break; + case TICK_NOHZ_STOP: + spin_lock(&__get_cpu_var(ring_buffer_nohz_lock)); + lib_ring_buffer_stop_switch_timer(buf); + lib_ring_buffer_stop_read_timer(buf); + spin_unlock(&__get_cpu_var(ring_buffer_nohz_lock)); + break; + case TICK_NOHZ_RESTART: + spin_lock(&__get_cpu_var(ring_buffer_nohz_lock)); + lib_ring_buffer_start_read_timer(buf); + lib_ring_buffer_start_switch_timer(buf); + spin_unlock(&__get_cpu_var(ring_buffer_nohz_lock)); + break; + } + + return 0; +} + +void notrace lib_ring_buffer_tick_nohz_flush(void) +{ + atomic_notifier_call_chain(&tick_nohz_notifier, TICK_NOHZ_FLUSH, + NULL); +} + +void notrace lib_ring_buffer_tick_nohz_stop(void) +{ + atomic_notifier_call_chain(&tick_nohz_notifier, TICK_NOHZ_STOP, + NULL); +} + +void notrace lib_ring_buffer_tick_nohz_restart(void) +{ + atomic_notifier_call_chain(&tick_nohz_notifier, TICK_NOHZ_RESTART, + NULL); +} +#endif /* defined(CONFIG_NO_HZ) && defined(CONFIG_LIB_RING_BUFFER) */ + +/* + * Holds CPU hotplug. + */ +static void channel_unregister_notifiers(struct channel *chan) +{ + const struct lib_ring_buffer_config *config = &chan->backend.config; + int cpu; + + channel_iterator_unregister_notifiers(chan); + if (config->alloc == RING_BUFFER_ALLOC_PER_CPU) { +#ifdef CONFIG_NO_HZ + /* + * Remove the nohz notifier first, so we are certain we stop + * the timers. + */ + atomic_notifier_chain_unregister(&tick_nohz_notifier, + &chan->tick_nohz_notifier); + /* + * ring_buffer_nohz_lock will not be needed below, because + * we just removed the notifiers, which were the only source of + * concurrency. + */ +#endif /* CONFIG_NO_HZ */ +#ifdef CONFIG_HOTPLUG_CPU + get_online_cpus(); + chan->cpu_hp_enable = 0; + for_each_online_cpu(cpu) { + struct lib_ring_buffer *buf = per_cpu_ptr(chan->backend.buf, + cpu); + lib_ring_buffer_stop_switch_timer(buf); + lib_ring_buffer_stop_read_timer(buf); + } + put_online_cpus(); + unregister_cpu_notifier(&chan->cpu_hp_notifier); +#else + for_each_possible_cpu(cpu) { + struct lib_ring_buffer *buf = per_cpu_ptr(chan->backend.buf, + cpu); + lib_ring_buffer_stop_switch_timer(buf); + lib_ring_buffer_stop_read_timer(buf); + } +#endif + } else { + struct lib_ring_buffer *buf = chan->backend.buf; + + lib_ring_buffer_stop_switch_timer(buf); + lib_ring_buffer_stop_read_timer(buf); + } + channel_backend_unregister_notifiers(&chan->backend); +} + +static void channel_free(struct channel *chan) +{ + channel_iterator_free(chan); + channel_backend_free(&chan->backend); + kfree(chan); +} + +/** + * channel_create - Create channel. + * @config: ring buffer instance configuration + * @name: name of the channel + * @priv: ring buffer client private data + * @buf_addr: pointer the the beginning of the preallocated buffer contiguous + * address mapping. It is used only by RING_BUFFER_STATIC + * configuration. It can be set to NULL for other backends. + * @subbuf_size: subbuffer size + * @num_subbuf: number of subbuffers + * @switch_timer_interval: Time interval (in us) to fill sub-buffers with + * padding to let readers get those sub-buffers. + * Used for live streaming. + * @read_timer_interval: Time interval (in us) to wake up pending readers. + * + * Holds cpu hotplug. + * Returns NULL on failure. + */ +struct channel *channel_create(const struct lib_ring_buffer_config *config, + const char *name, void *priv, void *buf_addr, + size_t subbuf_size, + size_t num_subbuf, unsigned int switch_timer_interval, + unsigned int read_timer_interval) +{ + int ret, cpu; + struct channel *chan; + + if (lib_ring_buffer_check_config(config, switch_timer_interval, + read_timer_interval)) + return NULL; + + chan = kzalloc(sizeof(struct channel), GFP_KERNEL); + if (!chan) + return NULL; + + ret = channel_backend_init(&chan->backend, name, config, priv, + subbuf_size, num_subbuf); + if (ret) + goto error; + + ret = channel_iterator_init(chan); + if (ret) + goto error_free_backend; + + chan->commit_count_mask = (~0UL >> chan->backend.num_subbuf_order); + chan->switch_timer_interval = usecs_to_jiffies(switch_timer_interval); + chan->read_timer_interval = usecs_to_jiffies(read_timer_interval); + kref_init(&chan->ref); + init_waitqueue_head(&chan->read_wait); + init_waitqueue_head(&chan->hp_wait); + + if (config->alloc == RING_BUFFER_ALLOC_PER_CPU) { +#if defined(CONFIG_NO_HZ) && defined(CONFIG_LIB_RING_BUFFER) + /* Only benefit from NO_HZ idle with per-cpu buffers for now. */ + chan->tick_nohz_notifier.notifier_call = + ring_buffer_tick_nohz_callback; + chan->tick_nohz_notifier.priority = ~0U; + atomic_notifier_chain_register(&tick_nohz_notifier, + &chan->tick_nohz_notifier); +#endif /* defined(CONFIG_NO_HZ) && defined(CONFIG_LIB_RING_BUFFER) */ + + /* + * In case of non-hotplug cpu, if the ring-buffer is allocated + * in early initcall, it will not be notified of secondary cpus. + * In that off case, we need to allocate for all possible cpus. + */ +#ifdef CONFIG_HOTPLUG_CPU + chan->cpu_hp_notifier.notifier_call = + lib_ring_buffer_cpu_hp_callback; + chan->cpu_hp_notifier.priority = 6; + register_cpu_notifier(&chan->cpu_hp_notifier); + + get_online_cpus(); + for_each_online_cpu(cpu) { + struct lib_ring_buffer *buf = per_cpu_ptr(chan->backend.buf, + cpu); + spin_lock(&per_cpu(ring_buffer_nohz_lock, cpu)); + lib_ring_buffer_start_switch_timer(buf); + lib_ring_buffer_start_read_timer(buf); + spin_unlock(&per_cpu(ring_buffer_nohz_lock, cpu)); + } + chan->cpu_hp_enable = 1; + put_online_cpus(); +#else + for_each_possible_cpu(cpu) { + struct lib_ring_buffer *buf = per_cpu_ptr(chan->backend.buf, + cpu); + spin_lock(&per_cpu(ring_buffer_nohz_lock, cpu)); + lib_ring_buffer_start_switch_timer(buf); + lib_ring_buffer_start_read_timer(buf); + spin_unlock(&per_cpu(ring_buffer_nohz_lock, cpu)); + } +#endif + } else { + struct lib_ring_buffer *buf = chan->backend.buf; + + lib_ring_buffer_start_switch_timer(buf); + lib_ring_buffer_start_read_timer(buf); + } + + return chan; + +error_free_backend: + channel_backend_free(&chan->backend); +error: + kfree(chan); + return NULL; +} +EXPORT_SYMBOL_GPL(channel_create); + +static +void channel_release(struct kref *kref) +{ + struct channel *chan = container_of(kref, struct channel, ref); + channel_free(chan); +} + +/** + * channel_destroy - Finalize, wait for q.s. and destroy channel. + * @chan: channel to destroy + * + * Holds cpu hotplug. + * Call "destroy" callback, finalize channels, and then decrement the + * channel reference count. Note that when readers have completed data + * consumption of finalized channels, get_subbuf() will return -ENODATA. + * They should release their handle at that point. Returns the private + * data pointer. + */ +void *channel_destroy(struct channel *chan) +{ + int cpu; + const struct lib_ring_buffer_config *config = &chan->backend.config; + void *priv; + + channel_unregister_notifiers(chan); + + if (config->alloc == RING_BUFFER_ALLOC_PER_CPU) { + /* + * No need to hold cpu hotplug, because all notifiers have been + * unregistered. + */ + for_each_channel_cpu(cpu, chan) { + struct lib_ring_buffer *buf = per_cpu_ptr(chan->backend.buf, + cpu); + + if (config->cb.buffer_finalize) + config->cb.buffer_finalize(buf, + chan->backend.priv, + cpu); + if (buf->backend.allocated) + lib_ring_buffer_switch_slow(buf, SWITCH_FLUSH); + /* + * Perform flush before writing to finalized. + */ + smp_wmb(); + ACCESS_ONCE(buf->finalized) = 1; + wake_up_interruptible(&buf->read_wait); + } + } else { + struct lib_ring_buffer *buf = chan->backend.buf; + + if (config->cb.buffer_finalize) + config->cb.buffer_finalize(buf, chan->backend.priv, -1); + if (buf->backend.allocated) + lib_ring_buffer_switch_slow(buf, SWITCH_FLUSH); + /* + * Perform flush before writing to finalized. + */ + smp_wmb(); + ACCESS_ONCE(buf->finalized) = 1; + wake_up_interruptible(&buf->read_wait); + } + ACCESS_ONCE(chan->finalized) = 1; + wake_up_interruptible(&chan->hp_wait); + wake_up_interruptible(&chan->read_wait); + priv = chan->backend.priv; + kref_put(&chan->ref, channel_release); + return priv; +} +EXPORT_SYMBOL_GPL(channel_destroy); + +struct lib_ring_buffer *channel_get_ring_buffer( + const struct lib_ring_buffer_config *config, + struct channel *chan, int cpu) +{ + if (config->alloc == RING_BUFFER_ALLOC_GLOBAL) + return chan->backend.buf; + else + return per_cpu_ptr(chan->backend.buf, cpu); +} +EXPORT_SYMBOL_GPL(channel_get_ring_buffer); + +int lib_ring_buffer_open_read(struct lib_ring_buffer *buf) +{ + struct channel *chan = buf->backend.chan; + + if (!atomic_long_add_unless(&buf->active_readers, 1, 1)) + return -EBUSY; + kref_get(&chan->ref); + smp_mb__after_atomic_inc(); + return 0; +} +EXPORT_SYMBOL_GPL(lib_ring_buffer_open_read); + +void lib_ring_buffer_release_read(struct lib_ring_buffer *buf) +{ + struct channel *chan = buf->backend.chan; + + CHAN_WARN_ON(chan, atomic_long_read(&buf->active_readers) != 1); + smp_mb__before_atomic_dec(); + atomic_long_dec(&buf->active_readers); + kref_put(&chan->ref, channel_release); +} +EXPORT_SYMBOL_GPL(lib_ring_buffer_release_read); + +/* + * Promote compiler barrier to a smp_mb(). + * For the specific ring buffer case, this IPI call should be removed if the + * architecture does not reorder writes. This should eventually be provided by + * a separate architecture-specific infrastructure. + */ +static void remote_mb(void *info) +{ + smp_mb(); +} + +/** + * lib_ring_buffer_snapshot - save subbuffer position snapshot (for read) + * @buf: ring buffer + * @consumed: consumed count indicating the position where to read + * @produced: produced count, indicates position when to stop reading + * + * Returns -ENODATA if buffer is finalized, -EAGAIN if there is currently no + * data to read at consumed position, or 0 if the get operation succeeds. + * Busy-loop trying to get data if the tick_nohz sequence lock is held. + */ + +int lib_ring_buffer_snapshot(struct lib_ring_buffer *buf, + unsigned long *consumed, unsigned long *produced) +{ + struct channel *chan = buf->backend.chan; + const struct lib_ring_buffer_config *config = &chan->backend.config; + unsigned long consumed_cur, write_offset; + int finalized; + +retry: + finalized = ACCESS_ONCE(buf->finalized); + /* + * Read finalized before counters. + */ + smp_rmb(); + consumed_cur = atomic_long_read(&buf->consumed); + /* + * No need to issue a memory barrier between consumed count read and + * write offset read, because consumed count can only change + * concurrently in overwrite mode, and we keep a sequence counter + * identifier derived from the write offset to check we are getting + * the same sub-buffer we are expecting (the sub-buffers are atomically + * "tagged" upon writes, tags are checked upon read). + */ + write_offset = v_read(config, &buf->offset); + + /* + * Check that we are not about to read the same subbuffer in + * which the writer head is. + */ + if (subbuf_trunc(write_offset, chan) - subbuf_trunc(consumed_cur, chan) + == 0) + goto nodata; + + *consumed = consumed_cur; + *produced = subbuf_trunc(write_offset, chan); + + return 0; + +nodata: + /* + * The memory barriers __wait_event()/wake_up_interruptible() take care + * of "raw_spin_is_locked" memory ordering. + */ + if (finalized) + return -ENODATA; + else if (raw_spin_is_locked(&buf->raw_tick_nohz_spinlock)) + goto retry; + else + return -EAGAIN; +} +EXPORT_SYMBOL_GPL(lib_ring_buffer_snapshot); + +/** + * lib_ring_buffer_put_snapshot - move consumed counter forward + * + * Should only be called from consumer context. + * @buf: ring buffer + * @consumed_new: new consumed count value + */ +void lib_ring_buffer_move_consumer(struct lib_ring_buffer *buf, + unsigned long consumed_new) +{ + struct lib_ring_buffer_backend *bufb = &buf->backend; + struct channel *chan = bufb->chan; + unsigned long consumed; + + CHAN_WARN_ON(chan, atomic_long_read(&buf->active_readers) != 1); + + /* + * Only push the consumed value forward. + * If the consumed cmpxchg fails, this is because we have been pushed by + * the writer in flight recorder mode. + */ + consumed = atomic_long_read(&buf->consumed); + while ((long) consumed - (long) consumed_new < 0) + consumed = atomic_long_cmpxchg(&buf->consumed, consumed, + consumed_new); + /* Wake-up the metadata producer */ + wake_up_interruptible(&buf->write_wait); +} +EXPORT_SYMBOL_GPL(lib_ring_buffer_move_consumer); + +/** + * lib_ring_buffer_get_subbuf - get exclusive access to subbuffer for reading + * @buf: ring buffer + * @consumed: consumed count indicating the position where to read + * + * Returns -ENODATA if buffer is finalized, -EAGAIN if there is currently no + * data to read at consumed position, or 0 if the get operation succeeds. + * Busy-loop trying to get data if the tick_nohz sequence lock is held. + */ +int lib_ring_buffer_get_subbuf(struct lib_ring_buffer *buf, + unsigned long consumed) +{ + struct channel *chan = buf->backend.chan; + const struct lib_ring_buffer_config *config = &chan->backend.config; + unsigned long consumed_cur, consumed_idx, commit_count, write_offset; + int ret; + int finalized; + + if (buf->get_subbuf) { + /* + * Reader is trying to get a subbuffer twice. + */ + CHAN_WARN_ON(chan, 1); + return -EBUSY; + } +retry: + finalized = ACCESS_ONCE(buf->finalized); + /* + * Read finalized before counters. + */ + smp_rmb(); + consumed_cur = atomic_long_read(&buf->consumed); + consumed_idx = subbuf_index(consumed, chan); + commit_count = v_read(config, &buf->commit_cold[consumed_idx].cc_sb); + /* + * Make sure we read the commit count before reading the buffer + * data and the write offset. Correct consumed offset ordering + * wrt commit count is insured by the use of cmpxchg to update + * the consumed offset. + * smp_call_function_single can fail if the remote CPU is offline, + * this is OK because then there is no wmb to execute there. + * If our thread is executing on the same CPU as the on the buffers + * belongs to, we don't have to synchronize it at all. If we are + * migrated, the scheduler will take care of the memory barriers. + * Normally, smp_call_function_single() should ensure program order when + * executing the remote function, which implies that it surrounds the + * function execution with : + * smp_mb() + * send IPI + * csd_lock_wait + * recv IPI + * smp_mb() + * exec. function + * smp_mb() + * csd unlock + * smp_mb() + * + * However, smp_call_function_single() does not seem to clearly execute + * such barriers. It depends on spinlock semantic to provide the barrier + * before executing the IPI and, when busy-looping, csd_lock_wait only + * executes smp_mb() when it has to wait for the other CPU. + * + * I don't trust this code. Therefore, let's add the smp_mb() sequence + * required ourself, even if duplicated. It has no performance impact + * anyway. + * + * smp_mb() is needed because smp_rmb() and smp_wmb() only order read vs + * read and write vs write. They do not ensure core synchronization. We + * really have to ensure total order between the 3 barriers running on + * the 2 CPUs. + */ + if (config->ipi == RING_BUFFER_IPI_BARRIER) { + if (config->sync == RING_BUFFER_SYNC_PER_CPU + && config->alloc == RING_BUFFER_ALLOC_PER_CPU) { + if (raw_smp_processor_id() != buf->backend.cpu) { + /* Total order with IPI handler smp_mb() */ + smp_mb(); + smp_call_function_single(buf->backend.cpu, + remote_mb, NULL, 1); + /* Total order with IPI handler smp_mb() */ + smp_mb(); + } + } else { + /* Total order with IPI handler smp_mb() */ + smp_mb(); + smp_call_function(remote_mb, NULL, 1); + /* Total order with IPI handler smp_mb() */ + smp_mb(); + } + } else { + /* + * Local rmb to match the remote wmb to read the commit count + * before the buffer data and the write offset. + */ + smp_rmb(); + } + + write_offset = v_read(config, &buf->offset); + + /* + * Check that the buffer we are getting is after or at consumed_cur + * position. + */ + if ((long) subbuf_trunc(consumed, chan) + - (long) subbuf_trunc(consumed_cur, chan) < 0) + goto nodata; + + /* + * Check that the subbuffer we are trying to consume has been + * already fully committed. + */ + if (((commit_count - chan->backend.subbuf_size) + & chan->commit_count_mask) + - (buf_trunc(consumed, chan) + >> chan->backend.num_subbuf_order) + != 0) + goto nodata; + + /* + * Check that we are not about to read the same subbuffer in + * which the writer head is. + */ + if (subbuf_trunc(write_offset, chan) - subbuf_trunc(consumed, chan) + == 0) + goto nodata; + + /* + * Failure to get the subbuffer causes a busy-loop retry without going + * to a wait queue. These are caused by short-lived race windows where + * the writer is getting access to a subbuffer we were trying to get + * access to. Also checks that the "consumed" buffer count we are + * looking for matches the one contained in the subbuffer id. + */ + ret = update_read_sb_index(config, &buf->backend, &chan->backend, + consumed_idx, buf_trunc_val(consumed, chan)); + if (ret) + goto retry; + subbuffer_id_clear_noref(config, &buf->backend.buf_rsb.id); + + buf->get_subbuf_consumed = consumed; + buf->get_subbuf = 1; + + return 0; + +nodata: + /* + * The memory barriers __wait_event()/wake_up_interruptible() take care + * of "raw_spin_is_locked" memory ordering. + */ + if (finalized) + return -ENODATA; + else if (raw_spin_is_locked(&buf->raw_tick_nohz_spinlock)) + goto retry; + else + return -EAGAIN; +} +EXPORT_SYMBOL_GPL(lib_ring_buffer_get_subbuf); + +/** + * lib_ring_buffer_put_subbuf - release exclusive subbuffer access + * @buf: ring buffer + */ +void lib_ring_buffer_put_subbuf(struct lib_ring_buffer *buf) +{ + struct lib_ring_buffer_backend *bufb = &buf->backend; + struct channel *chan = bufb->chan; + const struct lib_ring_buffer_config *config = &chan->backend.config; + unsigned long read_sb_bindex, consumed_idx, consumed; + + CHAN_WARN_ON(chan, atomic_long_read(&buf->active_readers) != 1); + + if (!buf->get_subbuf) { + /* + * Reader puts a subbuffer it did not get. + */ + CHAN_WARN_ON(chan, 1); + return; + } + consumed = buf->get_subbuf_consumed; + buf->get_subbuf = 0; + + /* + * Clear the records_unread counter. (overruns counter) + * Can still be non-zero if a file reader simply grabbed the data + * without using iterators. + * Can be below zero if an iterator is used on a snapshot more than + * once. + */ + read_sb_bindex = subbuffer_id_get_index(config, bufb->buf_rsb.id); + v_add(config, v_read(config, + &bufb->array[read_sb_bindex]->records_unread), + &bufb->records_read); + v_set(config, &bufb->array[read_sb_bindex]->records_unread, 0); + CHAN_WARN_ON(chan, config->mode == RING_BUFFER_OVERWRITE + && subbuffer_id_is_noref(config, bufb->buf_rsb.id)); + subbuffer_id_set_noref(config, &bufb->buf_rsb.id); + + /* + * Exchange the reader subbuffer with the one we put in its place in the + * writer subbuffer table. Expect the original consumed count. If + * update_read_sb_index fails, this is because the writer updated the + * subbuffer concurrently. We should therefore keep the subbuffer we + * currently have: it has become invalid to try reading this sub-buffer + * consumed count value anyway. + */ + consumed_idx = subbuf_index(consumed, chan); + update_read_sb_index(config, &buf->backend, &chan->backend, + consumed_idx, buf_trunc_val(consumed, chan)); + /* + * update_read_sb_index return value ignored. Don't exchange sub-buffer + * if the writer concurrently updated it. + */ +} +EXPORT_SYMBOL_GPL(lib_ring_buffer_put_subbuf); + +/* + * cons_offset is an iterator on all subbuffer offsets between the reader + * position and the writer position. (inclusive) + */ +static +void lib_ring_buffer_print_subbuffer_errors(struct lib_ring_buffer *buf, + struct channel *chan, + unsigned long cons_offset, + int cpu) +{ + const struct lib_ring_buffer_config *config = &chan->backend.config; + unsigned long cons_idx, commit_count, commit_count_sb; + + cons_idx = subbuf_index(cons_offset, chan); + commit_count = v_read(config, &buf->commit_hot[cons_idx].cc); + commit_count_sb = v_read(config, &buf->commit_cold[cons_idx].cc_sb); + + if (subbuf_offset(commit_count, chan) != 0) + printk(KERN_WARNING + "ring buffer %s, cpu %d: " + "commit count in subbuffer %lu,\n" + "expecting multiples of %lu bytes\n" + " [ %lu bytes committed, %lu bytes reader-visible ]\n", + chan->backend.name, cpu, cons_idx, + chan->backend.subbuf_size, + commit_count, commit_count_sb); + + printk(KERN_DEBUG "ring buffer: %s, cpu %d: %lu bytes committed\n", + chan->backend.name, cpu, commit_count); +} + +static +void lib_ring_buffer_print_buffer_errors(struct lib_ring_buffer *buf, + struct channel *chan, + void *priv, int cpu) +{ + const struct lib_ring_buffer_config *config = &chan->backend.config; + unsigned long write_offset, cons_offset; + + /* + * No need to order commit_count, write_offset and cons_offset reads + * because we execute at teardown when no more writer nor reader + * references are left. + */ + write_offset = v_read(config, &buf->offset); + cons_offset = atomic_long_read(&buf->consumed); + if (write_offset != cons_offset) + printk(KERN_DEBUG + "ring buffer %s, cpu %d: " + "non-consumed data\n" + " [ %lu bytes written, %lu bytes read ]\n", + chan->backend.name, cpu, write_offset, cons_offset); + + for (cons_offset = atomic_long_read(&buf->consumed); + (long) (subbuf_trunc((unsigned long) v_read(config, &buf->offset), + chan) + - cons_offset) > 0; + cons_offset = subbuf_align(cons_offset, chan)) + lib_ring_buffer_print_subbuffer_errors(buf, chan, cons_offset, + cpu); +} + +static +void lib_ring_buffer_print_errors(struct channel *chan, + struct lib_ring_buffer *buf, int cpu) +{ + const struct lib_ring_buffer_config *config = &chan->backend.config; + void *priv = chan->backend.priv; + + if (!strcmp(chan->backend.name, "relay-metadata")) { + printk(KERN_DEBUG "ring buffer %s: %lu records written, " + "%lu records overrun\n", + chan->backend.name, + v_read(config, &buf->records_count), + v_read(config, &buf->records_overrun)); + } else { + printk(KERN_DEBUG "ring buffer %s, cpu %d: %lu records written, " + "%lu records overrun\n", + chan->backend.name, cpu, + v_read(config, &buf->records_count), + v_read(config, &buf->records_overrun)); + + if (v_read(config, &buf->records_lost_full) + || v_read(config, &buf->records_lost_wrap) + || v_read(config, &buf->records_lost_big)) + printk(KERN_WARNING + "ring buffer %s, cpu %d: records were lost. Caused by:\n" + " [ %lu buffer full, %lu nest buffer wrap-around, " + "%lu event too big ]\n", + chan->backend.name, cpu, + v_read(config, &buf->records_lost_full), + v_read(config, &buf->records_lost_wrap), + v_read(config, &buf->records_lost_big)); + } + lib_ring_buffer_print_buffer_errors(buf, chan, priv, cpu); +} + +/* + * lib_ring_buffer_switch_old_start: Populate old subbuffer header. + * + * Only executed when the buffer is finalized, in SWITCH_FLUSH. + */ +static +void lib_ring_buffer_switch_old_start(struct lib_ring_buffer *buf, + struct channel *chan, + struct switch_offsets *offsets, + u64 tsc) +{ + const struct lib_ring_buffer_config *config = &chan->backend.config; + unsigned long oldidx = subbuf_index(offsets->old, chan); + unsigned long commit_count; + + config->cb.buffer_begin(buf, tsc, oldidx); + + /* + * Order all writes to buffer before the commit count update that will + * determine that the subbuffer is full. + */ + if (config->ipi == RING_BUFFER_IPI_BARRIER) { + /* + * Must write slot data before incrementing commit count. This + * compiler barrier is upgraded into a smp_mb() by the IPI sent + * by get_subbuf(). + */ + barrier(); + } else + smp_wmb(); + v_add(config, config->cb.subbuffer_header_size(), + &buf->commit_hot[oldidx].cc); + commit_count = v_read(config, &buf->commit_hot[oldidx].cc); + /* Check if the written buffer has to be delivered */ + lib_ring_buffer_check_deliver(config, buf, chan, offsets->old, + commit_count, oldidx); + lib_ring_buffer_write_commit_counter(config, buf, chan, oldidx, + offsets->old, commit_count, + config->cb.subbuffer_header_size()); +} + +/* + * lib_ring_buffer_switch_old_end: switch old subbuffer + * + * Note : offset_old should never be 0 here. It is ok, because we never perform + * buffer switch on an empty subbuffer in SWITCH_ACTIVE mode. The caller + * increments the offset_old value when doing a SWITCH_FLUSH on an empty + * subbuffer. + */ +static +void lib_ring_buffer_switch_old_end(struct lib_ring_buffer *buf, + struct channel *chan, + struct switch_offsets *offsets, + u64 tsc) +{ + const struct lib_ring_buffer_config *config = &chan->backend.config; + unsigned long oldidx = subbuf_index(offsets->old - 1, chan); + unsigned long commit_count, padding_size, data_size; + + data_size = subbuf_offset(offsets->old - 1, chan) + 1; + padding_size = chan->backend.subbuf_size - data_size; + subbuffer_set_data_size(config, &buf->backend, oldidx, data_size); + + /* + * Order all writes to buffer before the commit count update that will + * determine that the subbuffer is full. + */ + if (config->ipi == RING_BUFFER_IPI_BARRIER) { + /* + * Must write slot data before incrementing commit count. This + * compiler barrier is upgraded into a smp_mb() by the IPI sent + * by get_subbuf(). + */ + barrier(); + } else + smp_wmb(); + v_add(config, padding_size, &buf->commit_hot[oldidx].cc); + commit_count = v_read(config, &buf->commit_hot[oldidx].cc); + lib_ring_buffer_check_deliver(config, buf, chan, offsets->old - 1, + commit_count, oldidx); + lib_ring_buffer_write_commit_counter(config, buf, chan, oldidx, + offsets->old, commit_count, + padding_size); +} + +/* + * lib_ring_buffer_switch_new_start: Populate new subbuffer. + * + * This code can be executed unordered : writers may already have written to the + * sub-buffer before this code gets executed, caution. The commit makes sure + * that this code is executed before the deliver of this sub-buffer. + */ +static +void lib_ring_buffer_switch_new_start(struct lib_ring_buffer *buf, + struct channel *chan, + struct switch_offsets *offsets, + u64 tsc) +{ + const struct lib_ring_buffer_config *config = &chan->backend.config; + unsigned long beginidx = subbuf_index(offsets->begin, chan); + unsigned long commit_count; + + config->cb.buffer_begin(buf, tsc, beginidx); + + /* + * Order all writes to buffer before the commit count update that will + * determine that the subbuffer is full. + */ + if (config->ipi == RING_BUFFER_IPI_BARRIER) { + /* + * Must write slot data before incrementing commit count. This + * compiler barrier is upgraded into a smp_mb() by the IPI sent + * by get_subbuf(). + */ + barrier(); + } else + smp_wmb(); + v_add(config, config->cb.subbuffer_header_size(), + &buf->commit_hot[beginidx].cc); + commit_count = v_read(config, &buf->commit_hot[beginidx].cc); + /* Check if the written buffer has to be delivered */ + lib_ring_buffer_check_deliver(config, buf, chan, offsets->begin, + commit_count, beginidx); + lib_ring_buffer_write_commit_counter(config, buf, chan, beginidx, + offsets->begin, commit_count, + config->cb.subbuffer_header_size()); +} + +/* + * lib_ring_buffer_switch_new_end: finish switching current subbuffer + * + * Calls subbuffer_set_data_size() to set the data size of the current + * sub-buffer. We do not need to perform check_deliver nor commit here, + * since this task will be done by the "commit" of the event for which + * we are currently doing the space reservation. + */ +static +void lib_ring_buffer_switch_new_end(struct lib_ring_buffer *buf, + struct channel *chan, + struct switch_offsets *offsets, + u64 tsc) +{ + const struct lib_ring_buffer_config *config = &chan->backend.config; + unsigned long endidx, data_size; + + endidx = subbuf_index(offsets->end - 1, chan); + data_size = subbuf_offset(offsets->end - 1, chan) + 1; + subbuffer_set_data_size(config, &buf->backend, endidx, data_size); +} + +/* + * Returns : + * 0 if ok + * !0 if execution must be aborted. + */ +static +int lib_ring_buffer_try_switch_slow(enum switch_mode mode, + struct lib_ring_buffer *buf, + struct channel *chan, + struct switch_offsets *offsets, + u64 *tsc) +{ + const struct lib_ring_buffer_config *config = &chan->backend.config; + unsigned long off, reserve_commit_diff; + + offsets->begin = v_read(config, &buf->offset); + offsets->old = offsets->begin; + offsets->switch_old_start = 0; + off = subbuf_offset(offsets->begin, chan); + + *tsc = config->cb.ring_buffer_clock_read(chan); + + /* + * Ensure we flush the header of an empty subbuffer when doing the + * finalize (SWITCH_FLUSH). This ensures that we end up knowing the + * total data gathering duration even if there were no records saved + * after the last buffer switch. + * In SWITCH_ACTIVE mode, switch the buffer when it contains events. + * SWITCH_ACTIVE only flushes the current subbuffer, dealing with end of + * subbuffer header as appropriate. + * The next record that reserves space will be responsible for + * populating the following subbuffer header. We choose not to populate + * the next subbuffer header here because we want to be able to use + * SWITCH_ACTIVE for periodical buffer flush and CPU tick_nohz stop + * buffer flush, which must guarantee that all the buffer content + * (records and header timestamps) are visible to the reader. This is + * required for quiescence guarantees for the fusion merge. + */ + if (mode != SWITCH_FLUSH && !off) + return -1; /* we do not have to switch : buffer is empty */ + + if (unlikely(off == 0)) { + unsigned long sb_index, commit_count; + + /* + * We are performing a SWITCH_FLUSH. At this stage, there are no + * concurrent writes into the buffer. + * + * The client does not save any header information. Don't + * switch empty subbuffer on finalize, because it is invalid to + * deliver a completely empty subbuffer. + */ + if (!config->cb.subbuffer_header_size()) + return -1; + + /* Test new buffer integrity */ + sb_index = subbuf_index(offsets->begin, chan); + commit_count = v_read(config, + &buf->commit_cold[sb_index].cc_sb); + reserve_commit_diff = + (buf_trunc(offsets->begin, chan) + >> chan->backend.num_subbuf_order) + - (commit_count & chan->commit_count_mask); + if (likely(reserve_commit_diff == 0)) { + /* Next subbuffer not being written to. */ + if (unlikely(config->mode != RING_BUFFER_OVERWRITE && + subbuf_trunc(offsets->begin, chan) + - subbuf_trunc((unsigned long) + atomic_long_read(&buf->consumed), chan) + >= chan->backend.buf_size)) { + /* + * We do not overwrite non consumed buffers + * and we are full : don't switch. + */ + return -1; + } else { + /* + * Next subbuffer not being written to, and we + * are either in overwrite mode or the buffer is + * not full. It's safe to write in this new + * subbuffer. + */ + } + } else { + /* + * Next subbuffer reserve offset does not match the + * commit offset. Don't perform switch in + * producer-consumer and overwrite mode. Caused by + * either a writer OOPS or too many nested writes over a + * reserve/commit pair. + */ + return -1; + } + + /* + * Need to write the subbuffer start header on finalize. + */ + offsets->switch_old_start = 1; + } + offsets->begin = subbuf_align(offsets->begin, chan); + /* Note: old points to the next subbuf at offset 0 */ + offsets->end = offsets->begin; + return 0; +} + +/* + * Force a sub-buffer switch. This operation is completely reentrant : can be + * called while tracing is active with absolutely no lock held. + * + * Note, however, that as a v_cmpxchg is used for some atomic + * operations, this function must be called from the CPU which owns the buffer + * for a ACTIVE flush. + */ +void lib_ring_buffer_switch_slow(struct lib_ring_buffer *buf, enum switch_mode mode) +{ + struct channel *chan = buf->backend.chan; + const struct lib_ring_buffer_config *config = &chan->backend.config; + struct switch_offsets offsets; + unsigned long oldidx; + u64 tsc; + + offsets.size = 0; + + /* + * Perform retryable operations. + */ + do { + if (lib_ring_buffer_try_switch_slow(mode, buf, chan, &offsets, + &tsc)) + return; /* Switch not needed */ + } while (v_cmpxchg(config, &buf->offset, offsets.old, offsets.end) + != offsets.old); + + /* + * Atomically update last_tsc. This update races against concurrent + * atomic updates, but the race will always cause supplementary full TSC + * records, never the opposite (missing a full TSC record when it would + * be needed). + */ + save_last_tsc(config, buf, tsc); + + /* + * Push the reader if necessary + */ + lib_ring_buffer_reserve_push_reader(buf, chan, offsets.old); + + oldidx = subbuf_index(offsets.old, chan); + lib_ring_buffer_clear_noref(config, &buf->backend, oldidx); + + /* + * May need to populate header start on SWITCH_FLUSH. + */ + if (offsets.switch_old_start) { + lib_ring_buffer_switch_old_start(buf, chan, &offsets, tsc); + offsets.old += config->cb.subbuffer_header_size(); + } + + /* + * Switch old subbuffer. + */ + lib_ring_buffer_switch_old_end(buf, chan, &offsets, tsc); +} +EXPORT_SYMBOL_GPL(lib_ring_buffer_switch_slow); + +static void remote_switch(void *info) +{ + struct lib_ring_buffer *buf = info; + + lib_ring_buffer_switch_slow(buf, SWITCH_ACTIVE); +} + +void lib_ring_buffer_switch_remote(struct lib_ring_buffer *buf) +{ + struct channel *chan = buf->backend.chan; + const struct lib_ring_buffer_config *config = &chan->backend.config; + int ret; + + /* + * With global synchronization we don't need to use the IPI scheme. + */ + if (config->sync == RING_BUFFER_SYNC_GLOBAL) { + lib_ring_buffer_switch_slow(buf, SWITCH_ACTIVE); + return; + } + + /* + * Taking lock on CPU hotplug to ensure two things: first, that the + * target cpu is not taken concurrently offline while we are within + * smp_call_function_single() (I don't trust that get_cpu() on the + * _local_ CPU actually inhibit CPU hotplug for the _remote_ CPU (to be + * confirmed)). Secondly, if it happens that the CPU is not online, our + * own call to lib_ring_buffer_switch_slow() needs to be protected from + * CPU hotplug handlers, which can also perform a remote subbuffer + * switch. + */ + get_online_cpus(); + ret = smp_call_function_single(buf->backend.cpu, + remote_switch, buf, 1); + if (ret) { + /* Remote CPU is offline, do it ourself. */ + lib_ring_buffer_switch_slow(buf, SWITCH_ACTIVE); + } + put_online_cpus(); +} +EXPORT_SYMBOL_GPL(lib_ring_buffer_switch_remote); + +/* + * Returns : + * 0 if ok + * -ENOSPC if event size is too large for packet. + * -ENOBUFS if there is currently not enough space in buffer for the event. + * -EIO if data cannot be written into the buffer for any other reason. + */ +static +int lib_ring_buffer_try_reserve_slow(struct lib_ring_buffer *buf, + struct channel *chan, + struct switch_offsets *offsets, + struct lib_ring_buffer_ctx *ctx) +{ + const struct lib_ring_buffer_config *config = &chan->backend.config; + unsigned long reserve_commit_diff, offset_cmp; + +retry: + offsets->begin = offset_cmp = v_read(config, &buf->offset); + offsets->old = offsets->begin; + offsets->switch_new_start = 0; + offsets->switch_new_end = 0; + offsets->switch_old_end = 0; + offsets->pre_header_padding = 0; + + ctx->tsc = config->cb.ring_buffer_clock_read(chan); + if ((int64_t) ctx->tsc == -EIO) + return -EIO; + + if (last_tsc_overflow(config, buf, ctx->tsc)) + ctx->rflags |= RING_BUFFER_RFLAG_FULL_TSC; + + if (unlikely(subbuf_offset(offsets->begin, ctx->chan) == 0)) { + offsets->switch_new_start = 1; /* For offsets->begin */ + } else { + offsets->size = config->cb.record_header_size(config, chan, + offsets->begin, + &offsets->pre_header_padding, + ctx); + offsets->size += + lib_ring_buffer_align(offsets->begin + offsets->size, + ctx->largest_align) + + ctx->data_size; + if (unlikely(subbuf_offset(offsets->begin, chan) + + offsets->size > chan->backend.subbuf_size)) { + offsets->switch_old_end = 1; /* For offsets->old */ + offsets->switch_new_start = 1; /* For offsets->begin */ + } + } + if (unlikely(offsets->switch_new_start)) { + unsigned long sb_index, commit_count; + + /* + * We are typically not filling the previous buffer completely. + */ + if (likely(offsets->switch_old_end)) + offsets->begin = subbuf_align(offsets->begin, chan); + offsets->begin = offsets->begin + + config->cb.subbuffer_header_size(); + /* Test new buffer integrity */ + sb_index = subbuf_index(offsets->begin, chan); + /* + * Read buf->offset before buf->commit_cold[sb_index].cc_sb. + * lib_ring_buffer_check_deliver() has the matching + * memory barriers required around commit_cold cc_sb + * updates to ensure reserve and commit counter updates + * are not seen reordered when updated by another CPU. + */ + smp_rmb(); + commit_count = v_read(config, + &buf->commit_cold[sb_index].cc_sb); + /* Read buf->commit_cold[sb_index].cc_sb before buf->offset. */ + smp_rmb(); + if (unlikely(offset_cmp != v_read(config, &buf->offset))) { + /* + * The reserve counter have been concurrently updated + * while we read the commit counter. This means the + * commit counter we read might not match buf->offset + * due to concurrent update. We therefore need to retry. + */ + goto retry; + } + reserve_commit_diff = + (buf_trunc(offsets->begin, chan) + >> chan->backend.num_subbuf_order) + - (commit_count & chan->commit_count_mask); + if (likely(reserve_commit_diff == 0)) { + /* Next subbuffer not being written to. */ + if (unlikely(config->mode != RING_BUFFER_OVERWRITE && + subbuf_trunc(offsets->begin, chan) + - subbuf_trunc((unsigned long) + atomic_long_read(&buf->consumed), chan) + >= chan->backend.buf_size)) { + /* + * We do not overwrite non consumed buffers + * and we are full : record is lost. + */ + v_inc(config, &buf->records_lost_full); + return -ENOBUFS; + } else { + /* + * Next subbuffer not being written to, and we + * are either in overwrite mode or the buffer is + * not full. It's safe to write in this new + * subbuffer. + */ + } + } else { + /* + * Next subbuffer reserve offset does not match the + * commit offset, and this did not involve update to the + * reserve counter. Drop record in producer-consumer and + * overwrite mode. Caused by either a writer OOPS or + * too many nested writes over a reserve/commit pair. + */ + v_inc(config, &buf->records_lost_wrap); + return -EIO; + } + offsets->size = + config->cb.record_header_size(config, chan, + offsets->begin, + &offsets->pre_header_padding, + ctx); + offsets->size += + lib_ring_buffer_align(offsets->begin + offsets->size, + ctx->largest_align) + + ctx->data_size; + if (unlikely(subbuf_offset(offsets->begin, chan) + + offsets->size > chan->backend.subbuf_size)) { + /* + * Record too big for subbuffers, report error, don't + * complete the sub-buffer switch. + */ + v_inc(config, &buf->records_lost_big); + return -ENOSPC; + } else { + /* + * We just made a successful buffer switch and the + * record fits in the new subbuffer. Let's write. + */ + } + } else { + /* + * Record fits in the current buffer and we are not on a switch + * boundary. It's safe to write. + */ + } + offsets->end = offsets->begin + offsets->size; + + if (unlikely(subbuf_offset(offsets->end, chan) == 0)) { + /* + * The offset_end will fall at the very beginning of the next + * subbuffer. + */ + offsets->switch_new_end = 1; /* For offsets->begin */ + } + return 0; +} + +/** + * lib_ring_buffer_reserve_slow - Atomic slot reservation in a buffer. + * @ctx: ring buffer context. + * + * Return : -NOBUFS if not enough space, -ENOSPC if event size too large, + * -EIO for other errors, else returns 0. + * It will take care of sub-buffer switching. + */ +int lib_ring_buffer_reserve_slow(struct lib_ring_buffer_ctx *ctx) +{ + struct channel *chan = ctx->chan; + const struct lib_ring_buffer_config *config = &chan->backend.config; + struct lib_ring_buffer *buf; + struct switch_offsets offsets; + int ret; + + if (config->alloc == RING_BUFFER_ALLOC_PER_CPU) + buf = per_cpu_ptr(chan->backend.buf, ctx->cpu); + else + buf = chan->backend.buf; + ctx->buf = buf; + + offsets.size = 0; + + do { + ret = lib_ring_buffer_try_reserve_slow(buf, chan, &offsets, + ctx); + if (unlikely(ret)) + return ret; + } while (unlikely(v_cmpxchg(config, &buf->offset, offsets.old, + offsets.end) + != offsets.old)); + + /* + * Atomically update last_tsc. This update races against concurrent + * atomic updates, but the race will always cause supplementary full TSC + * records, never the opposite (missing a full TSC record when it would + * be needed). + */ + save_last_tsc(config, buf, ctx->tsc); + + /* + * Push the reader if necessary + */ + lib_ring_buffer_reserve_push_reader(buf, chan, offsets.end - 1); + + /* + * Clear noref flag for this subbuffer. + */ + lib_ring_buffer_clear_noref(config, &buf->backend, + subbuf_index(offsets.end - 1, chan)); + + /* + * Switch old subbuffer if needed. + */ + if (unlikely(offsets.switch_old_end)) { + lib_ring_buffer_clear_noref(config, &buf->backend, + subbuf_index(offsets.old - 1, chan)); + lib_ring_buffer_switch_old_end(buf, chan, &offsets, ctx->tsc); + } + + /* + * Populate new subbuffer. + */ + if (unlikely(offsets.switch_new_start)) + lib_ring_buffer_switch_new_start(buf, chan, &offsets, ctx->tsc); + + if (unlikely(offsets.switch_new_end)) + lib_ring_buffer_switch_new_end(buf, chan, &offsets, ctx->tsc); + + ctx->slot_size = offsets.size; + ctx->pre_offset = offsets.begin; + ctx->buf_offset = offsets.begin + offsets.pre_header_padding; + return 0; +} +EXPORT_SYMBOL_GPL(lib_ring_buffer_reserve_slow); + +int __init init_lib_ring_buffer_frontend(void) +{ + int cpu; + + for_each_possible_cpu(cpu) + spin_lock_init(&per_cpu(ring_buffer_nohz_lock, cpu)); + return 0; +} + +module_init(init_lib_ring_buffer_frontend); + +void __exit exit_lib_ring_buffer_frontend(void) +{ +} + +module_exit(exit_lib_ring_buffer_frontend); --- linux-3.11.0.orig/ubuntu/lttng/lib/ringbuffer/ring_buffer_mmap.c +++ linux-3.11.0/ubuntu/lttng/lib/ringbuffer/ring_buffer_mmap.c @@ -0,0 +1,128 @@ +/* + * ring_buffer_mmap.c + * + * Copyright (C) 2002-2005 - Tom Zanussi , IBM Corp + * Copyright (C) 1999-2005 - Karim Yaghmour + * Copyright (C) 2008-2012 - Mathieu Desnoyers + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; only version 2 of the License. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Re-using code from kernel/relay.c, hence the GPLv2 license for this + * file. + */ + +#include +#include + +#include "../../wrapper/ringbuffer/backend.h" +#include "../../wrapper/ringbuffer/frontend.h" +#include "../../wrapper/ringbuffer/vfs.h" + +/* + * fault() vm_op implementation for ring buffer file mapping. + */ +static int lib_ring_buffer_fault(struct vm_area_struct *vma, struct vm_fault *vmf) +{ + struct lib_ring_buffer *buf = vma->vm_private_data; + struct channel *chan = buf->backend.chan; + const struct lib_ring_buffer_config *config = &chan->backend.config; + pgoff_t pgoff = vmf->pgoff; + struct page **page; + void **virt; + unsigned long offset, sb_bindex; + + /* + * Verify that faults are only done on the range of pages owned by the + * reader. + */ + offset = pgoff << PAGE_SHIFT; + sb_bindex = subbuffer_id_get_index(config, buf->backend.buf_rsb.id); + if (!(offset >= buf->backend.array[sb_bindex]->mmap_offset + && offset < buf->backend.array[sb_bindex]->mmap_offset + + buf->backend.chan->backend.subbuf_size)) + return VM_FAULT_SIGBUS; + /* + * ring_buffer_read_get_page() gets the page in the current reader's + * pages. + */ + page = lib_ring_buffer_read_get_page(&buf->backend, offset, &virt); + if (!*page) + return VM_FAULT_SIGBUS; + get_page(*page); + vmf->page = *page; + + return 0; +} + +/* + * vm_ops for ring buffer file mappings. + */ +static const struct vm_operations_struct lib_ring_buffer_mmap_ops = { + .fault = lib_ring_buffer_fault, +}; + +/** + * lib_ring_buffer_mmap_buf: - mmap channel buffer to process address space + * @buf: ring buffer to map + * @vma: vm_area_struct describing memory to be mapped + * + * Returns 0 if ok, negative on error + * + * Caller should already have grabbed mmap_sem. + */ +static int lib_ring_buffer_mmap_buf(struct lib_ring_buffer *buf, + struct vm_area_struct *vma) +{ + unsigned long length = vma->vm_end - vma->vm_start; + struct channel *chan = buf->backend.chan; + const struct lib_ring_buffer_config *config = &chan->backend.config; + unsigned long mmap_buf_len; + + if (config->output != RING_BUFFER_MMAP) + return -EINVAL; + + mmap_buf_len = chan->backend.buf_size; + if (chan->backend.extra_reader_sb) + mmap_buf_len += chan->backend.subbuf_size; + + if (length != mmap_buf_len) + return -EINVAL; + + vma->vm_ops = &lib_ring_buffer_mmap_ops; + vma->vm_flags |= VM_DONTEXPAND; + vma->vm_private_data = buf; + + return 0; +} + +int lib_ring_buffer_mmap(struct file *filp, struct vm_area_struct *vma, + struct lib_ring_buffer *buf) +{ + return lib_ring_buffer_mmap_buf(buf, vma); +} +EXPORT_SYMBOL_GPL(lib_ring_buffer_mmap); + +/** + * vfs_lib_ring_buffer_mmap - mmap file op + * @filp: the file + * @vma: the vma describing what to map + * + * Calls upon lib_ring_buffer_mmap_buf() to map the file into user space. + */ +int vfs_lib_ring_buffer_mmap(struct file *filp, struct vm_area_struct *vma) +{ + struct lib_ring_buffer *buf = filp->private_data; + return lib_ring_buffer_mmap(filp, vma, buf); +} +EXPORT_SYMBOL_GPL(vfs_lib_ring_buffer_mmap); --- linux-3.11.0.orig/ubuntu/lttng/lib/ringbuffer/backend_internal.h +++ linux-3.11.0/ubuntu/lttng/lib/ringbuffer/backend_internal.h @@ -0,0 +1,461 @@ +#ifndef _LIB_RING_BUFFER_BACKEND_INTERNAL_H +#define _LIB_RING_BUFFER_BACKEND_INTERNAL_H + +/* + * lib/ringbuffer/backend_internal.h + * + * Ring buffer backend (internal helpers). + * + * Copyright (C) 2008-2012 Mathieu Desnoyers + * + * 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; only + * version 2.1 of the License. + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include "../../wrapper/ringbuffer/config.h" +#include "../../wrapper/ringbuffer/backend_types.h" +#include "../../wrapper/ringbuffer/frontend_types.h" +#include +#include + +/* Ring buffer backend API presented to the frontend */ + +/* Ring buffer and channel backend create/free */ + +int lib_ring_buffer_backend_create(struct lib_ring_buffer_backend *bufb, + struct channel_backend *chan, int cpu); +void channel_backend_unregister_notifiers(struct channel_backend *chanb); +void lib_ring_buffer_backend_free(struct lib_ring_buffer_backend *bufb); +int channel_backend_init(struct channel_backend *chanb, + const char *name, + const struct lib_ring_buffer_config *config, + void *priv, size_t subbuf_size, + size_t num_subbuf); +void channel_backend_free(struct channel_backend *chanb); + +void lib_ring_buffer_backend_reset(struct lib_ring_buffer_backend *bufb); +void channel_backend_reset(struct channel_backend *chanb); + +int lib_ring_buffer_backend_init(void); +void lib_ring_buffer_backend_exit(void); + +extern void _lib_ring_buffer_write(struct lib_ring_buffer_backend *bufb, + size_t offset, const void *src, size_t len, + ssize_t pagecpy); +extern void _lib_ring_buffer_memset(struct lib_ring_buffer_backend *bufb, + size_t offset, int c, size_t len, + ssize_t pagecpy); +extern void _lib_ring_buffer_copy_from_user_inatomic(struct lib_ring_buffer_backend *bufb, + size_t offset, const void *src, + size_t len, ssize_t pagecpy); + +/* + * Subbuffer ID bits for overwrite mode. Need to fit within a single word to be + * exchanged atomically. + * + * Top half word, except lowest bit, belongs to "offset", which is used to keep + * to count the produced buffers. For overwrite mode, this provides the + * consumer with the capacity to read subbuffers in order, handling the + * situation where producers would write up to 2^15 buffers (or 2^31 for 64-bit + * systems) concurrently with a single execution of get_subbuf (between offset + * sampling and subbuffer ID exchange). + */ + +#define HALF_ULONG_BITS (BITS_PER_LONG >> 1) + +#define SB_ID_OFFSET_SHIFT (HALF_ULONG_BITS + 1) +#define SB_ID_OFFSET_COUNT (1UL << SB_ID_OFFSET_SHIFT) +#define SB_ID_OFFSET_MASK (~(SB_ID_OFFSET_COUNT - 1)) +/* + * Lowest bit of top word half belongs to noref. Used only for overwrite mode. + */ +#define SB_ID_NOREF_SHIFT (SB_ID_OFFSET_SHIFT - 1) +#define SB_ID_NOREF_COUNT (1UL << SB_ID_NOREF_SHIFT) +#define SB_ID_NOREF_MASK SB_ID_NOREF_COUNT +/* + * In overwrite mode: lowest half of word is used for index. + * Limit of 2^16 subbuffers per buffer on 32-bit, 2^32 on 64-bit. + * In producer-consumer mode: whole word used for index. + */ +#define SB_ID_INDEX_SHIFT 0 +#define SB_ID_INDEX_COUNT (1UL << SB_ID_INDEX_SHIFT) +#define SB_ID_INDEX_MASK (SB_ID_NOREF_COUNT - 1) + +/* + * Construct the subbuffer id from offset, index and noref. Use only the index + * for producer-consumer mode (offset and noref are only used in overwrite + * mode). + */ +static inline +unsigned long subbuffer_id(const struct lib_ring_buffer_config *config, + unsigned long offset, unsigned long noref, + unsigned long index) +{ + if (config->mode == RING_BUFFER_OVERWRITE) + return (offset << SB_ID_OFFSET_SHIFT) + | (noref << SB_ID_NOREF_SHIFT) + | index; + else + return index; +} + +/* + * Compare offset with the offset contained within id. Return 1 if the offset + * bits are identical, else 0. + */ +static inline +int subbuffer_id_compare_offset(const struct lib_ring_buffer_config *config, + unsigned long id, unsigned long offset) +{ + return (id & SB_ID_OFFSET_MASK) == (offset << SB_ID_OFFSET_SHIFT); +} + +static inline +unsigned long subbuffer_id_get_index(const struct lib_ring_buffer_config *config, + unsigned long id) +{ + if (config->mode == RING_BUFFER_OVERWRITE) + return id & SB_ID_INDEX_MASK; + else + return id; +} + +static inline +unsigned long subbuffer_id_is_noref(const struct lib_ring_buffer_config *config, + unsigned long id) +{ + if (config->mode == RING_BUFFER_OVERWRITE) + return !!(id & SB_ID_NOREF_MASK); + else + return 1; +} + +/* + * Only used by reader on subbuffer ID it has exclusive access to. No volatile + * needed. + */ +static inline +void subbuffer_id_set_noref(const struct lib_ring_buffer_config *config, + unsigned long *id) +{ + if (config->mode == RING_BUFFER_OVERWRITE) + *id |= SB_ID_NOREF_MASK; +} + +static inline +void subbuffer_id_set_noref_offset(const struct lib_ring_buffer_config *config, + unsigned long *id, unsigned long offset) +{ + unsigned long tmp; + + if (config->mode == RING_BUFFER_OVERWRITE) { + tmp = *id; + tmp &= ~SB_ID_OFFSET_MASK; + tmp |= offset << SB_ID_OFFSET_SHIFT; + tmp |= SB_ID_NOREF_MASK; + /* Volatile store, read concurrently by readers. */ + ACCESS_ONCE(*id) = tmp; + } +} + +/* No volatile access, since already used locally */ +static inline +void subbuffer_id_clear_noref(const struct lib_ring_buffer_config *config, + unsigned long *id) +{ + if (config->mode == RING_BUFFER_OVERWRITE) + *id &= ~SB_ID_NOREF_MASK; +} + +/* + * For overwrite mode, cap the number of subbuffers per buffer to: + * 2^16 on 32-bit architectures + * 2^32 on 64-bit architectures + * This is required to fit in the index part of the ID. Return 0 on success, + * -EPERM on failure. + */ +static inline +int subbuffer_id_check_index(const struct lib_ring_buffer_config *config, + unsigned long num_subbuf) +{ + if (config->mode == RING_BUFFER_OVERWRITE) + return (num_subbuf > (1UL << HALF_ULONG_BITS)) ? -EPERM : 0; + else + return 0; +} + +static inline +void subbuffer_count_record(const struct lib_ring_buffer_config *config, + struct lib_ring_buffer_backend *bufb, + unsigned long idx) +{ + unsigned long sb_bindex; + + sb_bindex = subbuffer_id_get_index(config, bufb->buf_wsb[idx].id); + v_inc(config, &bufb->array[sb_bindex]->records_commit); +} + +/* + * Reader has exclusive subbuffer access for record consumption. No need to + * perform the decrement atomically. + */ +static inline +void subbuffer_consume_record(const struct lib_ring_buffer_config *config, + struct lib_ring_buffer_backend *bufb) +{ + unsigned long sb_bindex; + + sb_bindex = subbuffer_id_get_index(config, bufb->buf_rsb.id); + CHAN_WARN_ON(bufb->chan, + !v_read(config, &bufb->array[sb_bindex]->records_unread)); + /* Non-atomic decrement protected by exclusive subbuffer access */ + _v_dec(config, &bufb->array[sb_bindex]->records_unread); + v_inc(config, &bufb->records_read); +} + +static inline +unsigned long subbuffer_get_records_count( + const struct lib_ring_buffer_config *config, + struct lib_ring_buffer_backend *bufb, + unsigned long idx) +{ + unsigned long sb_bindex; + + sb_bindex = subbuffer_id_get_index(config, bufb->buf_wsb[idx].id); + return v_read(config, &bufb->array[sb_bindex]->records_commit); +} + +/* + * Must be executed at subbuffer delivery when the writer has _exclusive_ + * subbuffer access. See ring_buffer_check_deliver() for details. + * ring_buffer_get_records_count() must be called to get the records count + * before this function, because it resets the records_commit count. + */ +static inline +unsigned long subbuffer_count_records_overrun( + const struct lib_ring_buffer_config *config, + struct lib_ring_buffer_backend *bufb, + unsigned long idx) +{ + struct lib_ring_buffer_backend_pages *pages; + unsigned long overruns, sb_bindex; + + sb_bindex = subbuffer_id_get_index(config, bufb->buf_wsb[idx].id); + pages = bufb->array[sb_bindex]; + overruns = v_read(config, &pages->records_unread); + v_set(config, &pages->records_unread, + v_read(config, &pages->records_commit)); + v_set(config, &pages->records_commit, 0); + + return overruns; +} + +static inline +void subbuffer_set_data_size(const struct lib_ring_buffer_config *config, + struct lib_ring_buffer_backend *bufb, + unsigned long idx, + unsigned long data_size) +{ + struct lib_ring_buffer_backend_pages *pages; + unsigned long sb_bindex; + + sb_bindex = subbuffer_id_get_index(config, bufb->buf_wsb[idx].id); + pages = bufb->array[sb_bindex]; + pages->data_size = data_size; +} + +static inline +unsigned long subbuffer_get_read_data_size( + const struct lib_ring_buffer_config *config, + struct lib_ring_buffer_backend *bufb) +{ + struct lib_ring_buffer_backend_pages *pages; + unsigned long sb_bindex; + + sb_bindex = subbuffer_id_get_index(config, bufb->buf_rsb.id); + pages = bufb->array[sb_bindex]; + return pages->data_size; +} + +static inline +unsigned long subbuffer_get_data_size( + const struct lib_ring_buffer_config *config, + struct lib_ring_buffer_backend *bufb, + unsigned long idx) +{ + struct lib_ring_buffer_backend_pages *pages; + unsigned long sb_bindex; + + sb_bindex = subbuffer_id_get_index(config, bufb->buf_wsb[idx].id); + pages = bufb->array[sb_bindex]; + return pages->data_size; +} + +/** + * lib_ring_buffer_clear_noref - Clear the noref subbuffer flag, called by + * writer. + */ +static inline +void lib_ring_buffer_clear_noref(const struct lib_ring_buffer_config *config, + struct lib_ring_buffer_backend *bufb, + unsigned long idx) +{ + unsigned long id, new_id; + + if (config->mode != RING_BUFFER_OVERWRITE) + return; + + /* + * Performing a volatile access to read the sb_pages, because we want to + * read a coherent version of the pointer and the associated noref flag. + */ + id = ACCESS_ONCE(bufb->buf_wsb[idx].id); + for (;;) { + /* This check is called on the fast path for each record. */ + if (likely(!subbuffer_id_is_noref(config, id))) { + /* + * Store after load dependency ordering the writes to + * the subbuffer after load and test of the noref flag + * matches the memory barrier implied by the cmpxchg() + * in update_read_sb_index(). + */ + return; /* Already writing to this buffer */ + } + new_id = id; + subbuffer_id_clear_noref(config, &new_id); + new_id = cmpxchg(&bufb->buf_wsb[idx].id, id, new_id); + if (likely(new_id == id)) + break; + id = new_id; + } +} + +/** + * lib_ring_buffer_set_noref_offset - Set the noref subbuffer flag and offset, + * called by writer. + */ +static inline +void lib_ring_buffer_set_noref_offset(const struct lib_ring_buffer_config *config, + struct lib_ring_buffer_backend *bufb, + unsigned long idx, unsigned long offset) +{ + if (config->mode != RING_BUFFER_OVERWRITE) + return; + + /* + * Because ring_buffer_set_noref() is only called by a single thread + * (the one which updated the cc_sb value), there are no concurrent + * updates to take care of: other writers have not updated cc_sb, so + * they cannot set the noref flag, and concurrent readers cannot modify + * the pointer because the noref flag is not set yet. + * The smp_wmb() in ring_buffer_commit() takes care of ordering writes + * to the subbuffer before this set noref operation. + * subbuffer_set_noref() uses a volatile store to deal with concurrent + * readers of the noref flag. + */ + CHAN_WARN_ON(bufb->chan, + subbuffer_id_is_noref(config, bufb->buf_wsb[idx].id)); + /* + * Memory barrier that ensures counter stores are ordered before set + * noref and offset. + */ + smp_mb(); + subbuffer_id_set_noref_offset(config, &bufb->buf_wsb[idx].id, offset); +} + +/** + * update_read_sb_index - Read-side subbuffer index update. + */ +static inline +int update_read_sb_index(const struct lib_ring_buffer_config *config, + struct lib_ring_buffer_backend *bufb, + struct channel_backend *chanb, + unsigned long consumed_idx, + unsigned long consumed_count) +{ + unsigned long old_id, new_id; + + if (config->mode == RING_BUFFER_OVERWRITE) { + /* + * Exchange the target writer subbuffer with our own unused + * subbuffer. No need to use ACCESS_ONCE() here to read the + * old_wpage, because the value read will be confirmed by the + * following cmpxchg(). + */ + old_id = bufb->buf_wsb[consumed_idx].id; + if (unlikely(!subbuffer_id_is_noref(config, old_id))) + return -EAGAIN; + /* + * Make sure the offset count we are expecting matches the one + * indicated by the writer. + */ + if (unlikely(!subbuffer_id_compare_offset(config, old_id, + consumed_count))) + return -EAGAIN; + CHAN_WARN_ON(bufb->chan, + !subbuffer_id_is_noref(config, bufb->buf_rsb.id)); + subbuffer_id_set_noref_offset(config, &bufb->buf_rsb.id, + consumed_count); + new_id = cmpxchg(&bufb->buf_wsb[consumed_idx].id, old_id, + bufb->buf_rsb.id); + if (unlikely(old_id != new_id)) + return -EAGAIN; + bufb->buf_rsb.id = new_id; + } else { + /* No page exchange, use the writer page directly */ + bufb->buf_rsb.id = bufb->buf_wsb[consumed_idx].id; + } + return 0; +} + +/* + * Use the architecture-specific memcpy implementation for constant-sized + * inputs, but rely on an inline memcpy for length statically unknown. + * The function call to memcpy is just way too expensive for a fast path. + */ +#define lib_ring_buffer_do_copy(config, dest, src, len) \ +do { \ + size_t __len = (len); \ + if (__builtin_constant_p(len)) \ + memcpy(dest, src, __len); \ + else \ + inline_memcpy(dest, src, __len); \ +} while (0) + +/* + * We use __copy_from_user_inatomic to copy userspace data since we already + * did the access_ok for the whole range. + */ +static inline +unsigned long lib_ring_buffer_do_copy_from_user_inatomic(void *dest, + const void __user *src, + unsigned long len) +{ + return __copy_from_user_inatomic(dest, src, len); +} + +/* + * write len bytes to dest with c + */ +static inline +void lib_ring_buffer_do_memset(char *dest, int c, + unsigned long len) +{ + unsigned long i; + + for (i = 0; i < len; i++) + dest[i] = c; +} + +#endif /* _LIB_RING_BUFFER_BACKEND_INTERNAL_H */ --- linux-3.11.0.orig/ubuntu/lttng/linux-patches/backport-tp-2.6.34-tracepoint-data.patch +++ linux-3.11.0/ubuntu/lttng/linux-patches/backport-tp-2.6.34-tracepoint-data.patch @@ -0,0 +1,559 @@ +commit 2c2a566b64b4254c530fb0c2222b30e8a739bac9 +Author: Mathieu Desnoyers +Date: Sat Sep 1 17:45:09 2012 -0700 + + tracing: Let tracepoints have data passed to tracepoint callbacks (backport) + + Backport of commit 38516ab59fbc5b3bb278cf5e1fe2867c70cff32e for + 2.6.34.x. Keeping kABI compatibility. + + Signed-off-by: Mathieu Desnoyers + +--- + include/linux/tracepoint.h | 149 +++++++++++++++++++++++++-------- + kernel/tracepoint.c | 144 ++++++++++++++++++++++--------- + samples/tracepoints/tp-samples-trace.h | 4 +- + 3 files changed, 220 insertions(+), 77 deletions(-) + +Index: linux/include/linux/tracepoint.h +=================================================================== +--- linux.orig/include/linux/tracepoint.h ++++ linux/include/linux/tracepoint.h +@@ -20,12 +20,20 @@ + struct module; + struct tracepoint; + ++#define HAVE_KABI_2635_TRACEPOINT ++ ++struct tracepoint_func { ++ void *func; ++ void *data; ++ bool kabi_2635; ++}; ++ + struct tracepoint { + const char *name; /* Tracepoint name */ + int state; /* State. */ + void (*regfunc)(void); + void (*unregfunc)(void); +- void **funcs; ++ struct tracepoint_func *funcs; + } __attribute__((aligned(32))); /* + * Aligned on 32 bytes because it is + * globally visible and gcc happily +@@ -43,17 +51,33 @@ struct tracepoint { + /* + * it_func[0] is never NULL because there is at least one element in the array + * when the array itself is non NULL. +- */ +-#define __DO_TRACE(tp, proto, args) \ +- do { \ +- void **it_func; \ ++ * ++ * Note, the proto and args passed in includes "__data" as the first parameter. ++ * The reason for this is to handle the "void" prototype. If a tracepoint ++ * has a "void" prototype, then it is invalid to declare a function ++ * as "(void *, void)". The DECLARE_TRACE_NOARGS() will pass in just ++ * "void *data", where as the DECLARE_TRACE() will pass in "void *data, proto". ++ */ ++#define __DO_TRACE(tp, data_proto, data_args, proto, args) \ ++ do { \ ++ struct tracepoint_func *it_func_ptr; \ ++ void *it_func; \ ++ \ ++ rcu_read_lock_sched_notrace(); \ ++ it_func_ptr = rcu_dereference_sched((tp)->funcs); \ ++ if (it_func_ptr) { \ ++ do { \ ++ if (it_func_ptr->kabi_2635) { \ ++ void *__data; \ + \ +- rcu_read_lock_sched_notrace(); \ +- it_func = rcu_dereference_sched((tp)->funcs); \ +- if (it_func) { \ +- do { \ +- ((void(*)(proto))(*it_func))(args); \ +- } while (*(++it_func)); \ ++ it_func = (it_func_ptr)->func; \ ++ __data = (it_func_ptr)->data; \ ++ ((void(*)(data_proto))(it_func))(data_args); \ ++ } else { \ ++ it_func = (it_func_ptr)->func; \ ++ ((void(*)(proto))(it_func))(args); \ ++ } \ ++ } while ((++it_func_ptr)->func); \ + } \ + rcu_read_unlock_sched_notrace(); \ + } while (0) +@@ -63,22 +87,39 @@ struct tracepoint { + * not add unwanted padding between the beginning of the section and the + * structure. Force alignment to the same alignment as the section start. + */ +-#define DECLARE_TRACE(name, proto, args) \ ++#define __DECLARE_TRACE(name, proto, args, data_proto, data_args) \ + extern struct tracepoint __tracepoint_##name; \ + static inline void trace_##name(proto) \ + { \ + if (unlikely(__tracepoint_##name.state)) \ + __DO_TRACE(&__tracepoint_##name, \ +- TP_PROTO(proto), TP_ARGS(args)); \ ++ TP_PROTO(data_proto), \ ++ TP_ARGS(data_args), \ ++ TP_PROTO(proto), \ ++ TP_ARGS(args)); \ + } \ +- static inline int register_trace_##name(void (*probe)(proto)) \ +- { \ ++ static inline int \ ++ register_trace_##name(void (*probe)(proto)) \ ++ { \ + return tracepoint_probe_register(#name, (void *)probe); \ +- } \ +- static inline int unregister_trace_##name(void (*probe)(proto)) \ +- { \ +- return tracepoint_probe_unregister(#name, (void *)probe);\ +- } ++ } \ ++ static inline int \ ++ unregister_trace_##name(void (*probe)(proto)) \ ++ { \ ++ return tracepoint_probe_unregister(#name, (void *)probe); \ ++ } \ ++ static inline int \ ++ kabi_2635_register_trace_##name(void (*probe)(data_proto), void *data) \ ++ { \ ++ return kabi_2635_tracepoint_probe_register(#name, (void *)probe, \ ++ data); \ ++ } \ ++ static inline int \ ++ kabi_2635_unregister_trace_##name(void (*probe)(data_proto), void *data) \ ++ { \ ++ return kabi_2635_tracepoint_probe_unregister(#name, (void *)probe, \ ++ data); \ ++ } + + + #define DEFINE_TRACE_FN(name, reg, unreg) \ +@@ -100,19 +141,29 @@ extern void tracepoint_update_probe_rang + struct tracepoint *end); + + #else /* !CONFIG_TRACEPOINTS */ +-#define DECLARE_TRACE(name, proto, args) \ +- static inline void _do_trace_##name(struct tracepoint *tp, proto) \ +- { } \ +- static inline void trace_##name(proto) \ +- { } \ +- static inline int register_trace_##name(void (*probe)(proto)) \ +- { \ +- return -ENOSYS; \ +- } \ +- static inline int unregister_trace_##name(void (*probe)(proto)) \ +- { \ +- return -ENOSYS; \ +- } ++#define __DECLARE_TRACE(name, proto, args, data_proto, data_args) \ ++ static inline void trace_##name(proto) \ ++ { } \ ++ static inline int \ ++ register_trace_##name(void (*probe)(proto)) \ ++ { \ ++ return -ENOSYS; \ ++ } \ ++ static inline int \ ++ unregister_trace_##name(void (*probe)(proto)) \ ++ { \ ++ return -ENOSYS; \ ++ } \ ++ static inline int \ ++ kabi_2635_register_trace_##name(void (*probe)(data_proto), void *data) \ ++ { \ ++ return -ENOSYS; \ ++ } \ ++ static inline int \ ++ kabi_2635_unregister_trace_##name(void (*probe)(data_proto), void *data) \ ++ { \ ++ return -ENOSYS; \ ++ } + + #define DEFINE_TRACE_FN(name, reg, unreg) + #define DEFINE_TRACE(name) +@@ -123,6 +174,28 @@ static inline void tracepoint_update_pro + struct tracepoint *end) + { } + #endif /* CONFIG_TRACEPOINTS */ ++ ++/* ++ * The need for the DECLARE_TRACE_NOARGS() is to handle the prototype ++ * (void). "void" is a special value in a function prototype and can ++ * not be combined with other arguments. Since the DECLARE_TRACE() ++ * macro adds a data element at the beginning of the prototype, ++ * we need a way to differentiate "(void *data, proto)" from ++ * "(void *data, void)". The second prototype is invalid. ++ * ++ * DECLARE_TRACE_NOARGS() passes "void" as the tracepoint prototype ++ * and "void *__data" as the callback prototype. ++ * ++ * DECLARE_TRACE() passes "proto" as the tracepoint protoype and ++ * "void *__data, proto" as the callback prototype. ++ */ ++#define DECLARE_TRACE_NOARGS(name) \ ++ __DECLARE_TRACE(name, void, , void *__data, __data) ++#define DECLARE_TRACE(name, proto, args) \ ++ __DECLARE_TRACE(name, PARAMS(proto), PARAMS(args), \ ++ PARAMS(void *__data, proto), \ ++ PARAMS(__data, args)) ++ + #endif /* DECLARE_TRACE */ + + /* +@@ -130,15 +203,23 @@ static inline void tracepoint_update_pro + * Internal API, should not be used directly. + */ + extern int tracepoint_probe_register(const char *name, void *probe); ++extern int kabi_2635_tracepoint_probe_register(const char *name, void *probe, void *data); + + /* + * Disconnect a probe from a tracepoint. + * Internal API, should not be used directly. + */ +-extern int tracepoint_probe_unregister(const char *name, void *probe); ++extern int ++tracepoint_probe_unregister(const char *name, void *probe); ++extern int ++kabi_2635_tracepoint_probe_unregister(const char *name, void *probe, void *data); + + extern int tracepoint_probe_register_noupdate(const char *name, void *probe); ++extern int kabi_2635_tracepoint_probe_register_noupdate(const char *name, void *probe, ++ void *data); + extern int tracepoint_probe_unregister_noupdate(const char *name, void *probe); ++extern int kabi_2635_tracepoint_probe_unregister_noupdate(const char *name, void *probe, ++ void *data); + extern void tracepoint_probe_update_all(void); + + struct tracepoint_iter { +Index: linux/kernel/tracepoint.c +=================================================================== +--- linux.orig/kernel/tracepoint.c ++++ linux/kernel/tracepoint.c +@@ -54,7 +54,7 @@ static struct hlist_head tracepoint_tabl + */ + struct tracepoint_entry { + struct hlist_node hlist; +- void **funcs; ++ struct tracepoint_func *funcs; + int refcount; /* Number of times armed. 0 if disarmed. */ + char name[0]; + }; +@@ -64,12 +64,12 @@ struct tp_probes { + struct rcu_head rcu; + struct list_head list; + } u; +- void *probes[0]; ++ struct tracepoint_func probes[0]; + }; + + static inline void *allocate_probes(int count) + { +- struct tp_probes *p = kmalloc(count * sizeof(void *) ++ struct tp_probes *p = kmalloc(count * sizeof(struct tracepoint_func) + + sizeof(struct tp_probes), GFP_KERNEL); + return p == NULL ? NULL : p->probes; + } +@@ -79,7 +79,7 @@ static void rcu_free_old_probes(struct r + kfree(container_of(head, struct tp_probes, u.rcu)); + } + +-static inline void release_probes(void *old) ++static inline void release_probes(struct tracepoint_func *old) + { + if (old) { + struct tp_probes *tp_probes = container_of(old, +@@ -95,15 +95,16 @@ static void debug_print_probes(struct tr + if (!tracepoint_debug || !entry->funcs) + return; + +- for (i = 0; entry->funcs[i]; i++) +- printk(KERN_DEBUG "Probe %d : %p\n", i, entry->funcs[i]); ++ for (i = 0; entry->funcs[i].func; i++) ++ printk(KERN_DEBUG "Probe %d : %p\n", i, entry->funcs[i].func); + } + +-static void * +-tracepoint_entry_add_probe(struct tracepoint_entry *entry, void *probe) ++static struct tracepoint_func * ++tracepoint_entry_add_probe(struct tracepoint_entry *entry, ++ void *probe, void *data, bool kabi_2635) + { + int nr_probes = 0; +- void **old, **new; ++ struct tracepoint_func *old, *new; + + WARN_ON(!probe); + +@@ -111,8 +112,9 @@ tracepoint_entry_add_probe(struct tracep + old = entry->funcs; + if (old) { + /* (N -> N+1), (N != 0, 1) probes */ +- for (nr_probes = 0; old[nr_probes]; nr_probes++) +- if (old[nr_probes] == probe) ++ for (nr_probes = 0; old[nr_probes].func; nr_probes++) ++ if (old[nr_probes].func == probe && ++ old[nr_probes].data == data) + return ERR_PTR(-EEXIST); + } + /* + 2 : one for new probe, one for NULL func */ +@@ -120,9 +122,11 @@ tracepoint_entry_add_probe(struct tracep + if (new == NULL) + return ERR_PTR(-ENOMEM); + if (old) +- memcpy(new, old, nr_probes * sizeof(void *)); +- new[nr_probes] = probe; +- new[nr_probes + 1] = NULL; ++ memcpy(new, old, nr_probes * sizeof(struct tracepoint_func)); ++ new[nr_probes].func = probe; ++ new[nr_probes].data = data; ++ new[nr_probes].kabi_2635 = kabi_2635; ++ new[nr_probes + 1].func = NULL; + entry->refcount = nr_probes + 1; + entry->funcs = new; + debug_print_probes(entry); +@@ -130,10 +134,11 @@ tracepoint_entry_add_probe(struct tracep + } + + static void * +-tracepoint_entry_remove_probe(struct tracepoint_entry *entry, void *probe) ++tracepoint_entry_remove_probe(struct tracepoint_entry *entry, ++ void *probe, void *data) + { + int nr_probes = 0, nr_del = 0, i; +- void **old, **new; ++ struct tracepoint_func *old, *new; + + old = entry->funcs; + +@@ -142,8 +147,10 @@ tracepoint_entry_remove_probe(struct tra + + debug_print_probes(entry); + /* (N -> M), (N > 1, M >= 0) probes */ +- for (nr_probes = 0; old[nr_probes]; nr_probes++) { +- if ((!probe || old[nr_probes] == probe)) ++ for (nr_probes = 0; old[nr_probes].func; nr_probes++) { ++ if (!probe || ++ (old[nr_probes].func == probe && ++ old[nr_probes].data == data)) + nr_del++; + } + +@@ -160,10 +167,11 @@ tracepoint_entry_remove_probe(struct tra + new = allocate_probes(nr_probes - nr_del + 1); + if (new == NULL) + return ERR_PTR(-ENOMEM); +- for (i = 0; old[i]; i++) +- if ((probe && old[i] != probe)) ++ for (i = 0; old[i].func; i++) ++ if (probe && ++ (old[i].func != probe || old[i].data != data)) + new[j++] = old[i]; +- new[nr_probes - nr_del] = NULL; ++ new[nr_probes - nr_del].func = NULL; + entry->refcount = nr_probes - nr_del; + entry->funcs = new; + } +@@ -315,18 +323,19 @@ static void tracepoint_update_probes(voi + module_update_tracepoints(); + } + +-static void *tracepoint_add_probe(const char *name, void *probe) ++static struct tracepoint_func * ++tracepoint_add_probe(const char *name, void *probe, void *data, bool kabi_2635) + { + struct tracepoint_entry *entry; +- void *old; ++ struct tracepoint_func *old; + + entry = get_tracepoint(name); + if (!entry) { + entry = add_tracepoint(name); + if (IS_ERR(entry)) +- return entry; ++ return (struct tracepoint_func *)entry; + } +- old = tracepoint_entry_add_probe(entry, probe); ++ old = tracepoint_entry_add_probe(entry, probe, data, kabi_2635); + if (IS_ERR(old) && !entry->refcount) + remove_tracepoint(entry); + return old; +@@ -340,12 +349,14 @@ static void *tracepoint_add_probe(const + * Returns 0 if ok, error value on error. + * The probe address must at least be aligned on the architecture pointer size. + */ +-int tracepoint_probe_register(const char *name, void *probe) ++static ++int ___tracepoint_probe_register(const char *name, void *probe, void *data, ++ bool kabi_2635) + { +- void *old; ++ struct tracepoint_func *old; + + mutex_lock(&tracepoints_mutex); +- old = tracepoint_add_probe(name, probe); ++ old = tracepoint_add_probe(name, probe, data, kabi_2635); + mutex_unlock(&tracepoints_mutex); + if (IS_ERR(old)) + return PTR_ERR(old); +@@ -354,17 +365,30 @@ int tracepoint_probe_register(const char + release_probes(old); + return 0; + } ++ ++int kabi_2635_tracepoint_probe_register(const char *name, void *probe, void *data) ++{ ++ return ___tracepoint_probe_register(name, probe, data, 1); ++} ++EXPORT_SYMBOL_GPL(kabi_2635_tracepoint_probe_register); ++ ++ ++int tracepoint_probe_register(const char *name, void *probe) ++{ ++ return ___tracepoint_probe_register(name, probe, NULL, 0); ++} + EXPORT_SYMBOL_GPL(tracepoint_probe_register); + +-static void *tracepoint_remove_probe(const char *name, void *probe) ++static struct tracepoint_func * ++tracepoint_remove_probe(const char *name, void *probe, void *data) + { + struct tracepoint_entry *entry; +- void *old; ++ struct tracepoint_func *old; + + entry = get_tracepoint(name); + if (!entry) + return ERR_PTR(-ENOENT); +- old = tracepoint_entry_remove_probe(entry, probe); ++ old = tracepoint_entry_remove_probe(entry, probe, data); + if (IS_ERR(old)) + return old; + if (!entry->refcount) +@@ -382,12 +406,13 @@ static void *tracepoint_remove_probe(con + * itself uses stop_machine(), which insures that every preempt disabled section + * have finished. + */ +-int tracepoint_probe_unregister(const char *name, void *probe) ++static ++int ___tracepoint_probe_unregister(const char *name, void *probe, void *data) + { +- void *old; ++ struct tracepoint_func *old; + + mutex_lock(&tracepoints_mutex); +- old = tracepoint_remove_probe(name, probe); ++ old = tracepoint_remove_probe(name, probe, data); + mutex_unlock(&tracepoints_mutex); + if (IS_ERR(old)) + return PTR_ERR(old); +@@ -396,6 +421,17 @@ int tracepoint_probe_unregister(const ch + release_probes(old); + return 0; + } ++ ++int kabi_2635_tracepoint_probe_unregister(const char *name, void *probe, void *data) ++{ ++ return ___tracepoint_probe_unregister(name, probe, data); ++} ++EXPORT_SYMBOL_GPL(kabi_2635_tracepoint_probe_unregister); ++ ++int tracepoint_probe_unregister(const char *name, void *probe) ++{ ++ return ___tracepoint_probe_unregister(name, probe, NULL); ++} + EXPORT_SYMBOL_GPL(tracepoint_probe_unregister); + + static LIST_HEAD(old_probes); +@@ -418,12 +454,14 @@ static void tracepoint_add_old_probes(vo + * + * caller must call tracepoint_probe_update_all() + */ +-int tracepoint_probe_register_noupdate(const char *name, void *probe) ++static ++int ___tracepoint_probe_register_noupdate(const char *name, void *probe, ++ void *data, bool kabi_2635) + { +- void *old; ++ struct tracepoint_func *old; + + mutex_lock(&tracepoints_mutex); +- old = tracepoint_add_probe(name, probe); ++ old = tracepoint_add_probe(name, probe, data, kabi_2635); + if (IS_ERR(old)) { + mutex_unlock(&tracepoints_mutex); + return PTR_ERR(old); +@@ -432,6 +470,18 @@ int tracepoint_probe_register_noupdate(c + mutex_unlock(&tracepoints_mutex); + return 0; + } ++ ++int kabi_2635_tracepoint_probe_register_noupdate(const char *name, void *probe, ++ void *data) ++{ ++ return ___tracepoint_probe_register_noupdate(name, probe, data, 1); ++} ++EXPORT_SYMBOL_GPL(kabi_2635_tracepoint_probe_register_noupdate); ++ ++int tracepoint_probe_register_noupdate(const char *name, void *probe) ++{ ++ return ___tracepoint_probe_register_noupdate(name, probe, NULL, 0); ++} + EXPORT_SYMBOL_GPL(tracepoint_probe_register_noupdate); + + /** +@@ -441,12 +491,14 @@ EXPORT_SYMBOL_GPL(tracepoint_probe_regis + * + * caller must call tracepoint_probe_update_all() + */ +-int tracepoint_probe_unregister_noupdate(const char *name, void *probe) ++static ++int ___tracepoint_probe_unregister_noupdate(const char *name, void *probe, ++ void *data) + { +- void *old; ++ struct tracepoint_func *old; + + mutex_lock(&tracepoints_mutex); +- old = tracepoint_remove_probe(name, probe); ++ old = tracepoint_remove_probe(name, probe, data); + if (IS_ERR(old)) { + mutex_unlock(&tracepoints_mutex); + return PTR_ERR(old); +@@ -455,6 +507,18 @@ int tracepoint_probe_unregister_noupdate + mutex_unlock(&tracepoints_mutex); + return 0; + } ++ ++int kabi_2635_tracepoint_probe_unregister_noupdate(const char *name, void *probe, ++ void *data) ++{ ++ return ___tracepoint_probe_unregister_noupdate(name, probe, data); ++} ++EXPORT_SYMBOL_GPL(kabi_2635_tracepoint_probe_unregister_noupdate); ++ ++int tracepoint_probe_unregister_noupdate(const char *name, void *probe) ++{ ++ return ___tracepoint_probe_unregister_noupdate(name, probe, NULL); ++} + EXPORT_SYMBOL_GPL(tracepoint_probe_unregister_noupdate); + + /** +Index: linux/samples/tracepoints/tp-samples-trace.h +=================================================================== +--- linux.orig/samples/tracepoints/tp-samples-trace.h ++++ linux/samples/tracepoints/tp-samples-trace.h +@@ -7,7 +7,5 @@ + DECLARE_TRACE(subsys_event, + TP_PROTO(struct inode *inode, struct file *file), + TP_ARGS(inode, file)); +-DECLARE_TRACE(subsys_eventb, +- TP_PROTO(void), +- TP_ARGS()); ++DECLARE_TRACE_NOARGS(subsys_eventb); + #endif --- linux-3.11.0.orig/ubuntu/lttng/linux-patches/backport-splice-sym-2.6.32-34.patch +++ linux-3.11.0/ubuntu/lttng/linux-patches/backport-splice-sym-2.6.32-34.patch @@ -0,0 +1,71 @@ +commit f0d902f497ee2fb747086322a31925c7fb351d7a +Author: Mathieu Desnoyers +Date: Sat Sep 1 17:47:36 2012 -0700 + + mm: export generic_pipe_buf_*() to modules (backport) + + Backport for 2.6.32.x to 2.6.34.x of commits: + + commit 51921cb746f56983db5a373ca68deb2b0d3ddf01 + Author: Miklos Szeredi + Date: Wed May 26 08:44:22 2010 +0200 + + mm: export generic_pipe_buf_*() to modules + + This is needed by fuse device code which wants to create pipe buffers. + Signed-off-by: Miklos Szeredi + + Signed-off-by: Mathieu Desnoyers + +diff --git a/fs/pipe.c b/fs/pipe.c +index d0cc080..0eb6f53 100644 +--- a/fs/pipe.c ++++ b/fs/pipe.c +@@ -222,6 +222,7 @@ void *generic_pipe_buf_map(struct pipe_inode_info *pipe, + + return kmap(buf->page); + } ++EXPORT_SYMBOL(generic_pipe_buf_map); + + /** + * generic_pipe_buf_unmap - unmap a previously mapped pipe buffer +@@ -241,6 +242,7 @@ void generic_pipe_buf_unmap(struct pipe_inode_info *pipe, + } else + kunmap(buf->page); + } ++EXPORT_SYMBOL(generic_pipe_buf_unmap); + + /** + * generic_pipe_buf_steal - attempt to take ownership of a &pipe_buffer +@@ -271,6 +273,7 @@ int generic_pipe_buf_steal(struct pipe_inode_info *pipe, + + return 1; + } ++EXPORT_SYMBOL(generic_pipe_buf_steal); + + /** + * generic_pipe_buf_get - get a reference to a &struct pipe_buffer +@@ -286,6 +289,7 @@ void generic_pipe_buf_get(struct pipe_inode_info *pipe, struct pipe_buffer *buf) + { + page_cache_get(buf->page); + } ++EXPORT_SYMBOL(generic_pipe_buf_get); + + /** + * generic_pipe_buf_confirm - verify contents of the pipe buffer +@@ -301,6 +305,7 @@ int generic_pipe_buf_confirm(struct pipe_inode_info *info, + { + return 0; + } ++EXPORT_SYMBOL(generic_pipe_buf_confirm); + + /** + * generic_pipe_buf_release - put a reference to a &struct pipe_buffer +@@ -315,6 +320,7 @@ void generic_pipe_buf_release(struct pipe_inode_info *pipe, + { + page_cache_release(buf->page); + } ++EXPORT_SYMBOL(generic_pipe_buf_release); + + static const struct pipe_buf_operations anon_pipe_buf_ops = { + .can_merge = 1, --- linux-3.11.0.orig/ubuntu/lttng/linux-patches/backport-kallsym-sym-2.6.32.patch +++ linux-3.11.0/ubuntu/lttng/linux-patches/backport-kallsym-sym-2.6.32.patch @@ -0,0 +1,37 @@ +commit e6b48d720e39d17f06a4462be4164e1a358817de +Author: Mathieu Desnoyers +Date: Sat Sep 1 17:51:33 2012 -0700 + + kallsyms: Re-enable export of kallsyms_lookup (backport) + + Backport of part of commit: + + commit f60d24d2ad04977b0bd9e3eb35dba2d2fa569af9 + Author: Frederic Weisbecker + Date: Tue Nov 10 10:17:07 2009 +0100 + + hw-breakpoints: Fix broken hw-breakpoint sample module + + The hw-breakpoint sample module has been broken during the + hw-breakpoint internals refactoring. Propagate the changes + to it. + + Reported-by: "K. Prasad" + Signed-off-by: Frederic Weisbecker + + for kernel 2.6.32.x. (just the symbol export) + + Signed-off-by: Mathieu Desnoyers + +diff --git a/kernel/kallsyms.c b/kernel/kallsyms.c +index 8b6b8b6..8e5288a 100644 +--- a/kernel/kallsyms.c ++++ b/kernel/kallsyms.c +@@ -181,6 +181,7 @@ unsigned long kallsyms_lookup_name(const char *name) + } + return module_kallsyms_lookup_name(name); + } ++EXPORT_SYMBOL_GPL(kallsyms_lookup_name); + + int kallsyms_on_each_symbol(int (*fn)(void *, const char *, struct module *, + unsigned long), --- linux-3.11.0.orig/ubuntu/lttng/linux-patches/backport-tracepoint-data-2.6.32-33.patch +++ linux-3.11.0/ubuntu/lttng/linux-patches/backport-tracepoint-data-2.6.32-33.patch @@ -0,0 +1,555 @@ +commit 2c2a566b64b4254c530fb0c2222b30e8a739bac9 +Author: Mathieu Desnoyers +Date: Sat Sep 1 17:45:09 2012 -0700 + + tracing: Let tracepoints have data passed to tracepoint callbacks (backport) + + Backport of commit 38516ab59fbc5b3bb278cf5e1fe2867c70cff32e for + 2.6.32.x and 2.6.33.x. Keeping kABI compatibility. + + Signed-off-by: Mathieu Desnoyers + +--- + include/linux/tracepoint.h | 141 +++++++++++++++++++++++++------- + kernel/tracepoint.c | 144 ++++++++++++++++++++++++--------- + samples/tracepoints/tp-samples-trace.h | 4 +- + 3 files changed, 216 insertions(+), 73 deletions(-) + +Index: linux/include/linux/tracepoint.h +=================================================================== +--- linux.orig/include/linux/tracepoint.h ++++ linux/include/linux/tracepoint.h +@@ -20,12 +20,20 @@ + struct module; + struct tracepoint; + ++#define HAVE_KABI_2635_TRACEPOINT ++ ++struct tracepoint_func { ++ void *func; ++ void *data; ++ bool kabi_2635; ++}; ++ + struct tracepoint { + const char *name; /* Tracepoint name */ + int state; /* State. */ + void (*regfunc)(void); + void (*unregfunc)(void); +- void **funcs; ++ struct tracepoint_func *funcs; + } __attribute__((aligned(32))); /* + * Aligned on 32 bytes because it is + * globally visible and gcc happily +@@ -43,17 +51,33 @@ struct tracepoint { + /* + * it_func[0] is never NULL because there is at least one element in the array + * when the array itself is non NULL. ++ * ++ * Note, the proto and args passed in includes "__data" as the first parameter. ++ * The reason for this is to handle the "void" prototype. If a tracepoint ++ * has a "void" prototype, then it is invalid to declare a function ++ * as "(void *, void)". The DECLARE_TRACE_NOARGS() will pass in just ++ * "void *data", where as the DECLARE_TRACE() will pass in "void *data, proto". + */ +-#define __DO_TRACE(tp, proto, args) \ ++#define __DO_TRACE(tp, data_proto, data_args, proto, args) \ + do { \ +- void **it_func; \ ++ struct tracepoint_func *it_func_ptr; \ ++ void *it_func; \ + \ + rcu_read_lock_sched_notrace(); \ +- it_func = rcu_dereference((tp)->funcs); \ +- if (it_func) { \ ++ it_func_ptr = rcu_dereference((tp)->funcs); \ ++ if (it_func_ptr) { \ + do { \ +- ((void(*)(proto))(*it_func))(args); \ +- } while (*(++it_func)); \ ++ if (it_func_ptr->kabi_2635) { \ ++ void *__data; \ ++ \ ++ it_func = (it_func_ptr)->func; \ ++ __data = (it_func_ptr)->data; \ ++ ((void(*)(data_proto))(it_func))(data_args); \ ++ } else { \ ++ it_func = (it_func_ptr)->func; \ ++ ((void(*)(proto))(it_func))(args); \ ++ } \ ++ } while ((++it_func_ptr)->func); \ + } \ + rcu_read_unlock_sched_notrace(); \ + } while (0) +@@ -63,22 +87,39 @@ struct tracepoint { + * not add unwanted padding between the beginning of the section and the + * structure. Force alignment to the same alignment as the section start. + */ +-#define DECLARE_TRACE(name, proto, args) \ ++#define __DECLARE_TRACE(name, proto, args, data_proto, data_args) \ + extern struct tracepoint __tracepoint_##name; \ + static inline void trace_##name(proto) \ + { \ + if (unlikely(__tracepoint_##name.state)) \ + __DO_TRACE(&__tracepoint_##name, \ +- TP_PROTO(proto), TP_ARGS(args)); \ ++ TP_PROTO(data_proto), \ ++ TP_ARGS(data_args), \ ++ TP_PROTO(proto), \ ++ TP_ARGS(args)); \ + } \ +- static inline int register_trace_##name(void (*probe)(proto)) \ +- { \ ++ static inline int \ ++ register_trace_##name(void (*probe)(proto)) \ ++ { \ + return tracepoint_probe_register(#name, (void *)probe); \ +- } \ +- static inline int unregister_trace_##name(void (*probe)(proto)) \ +- { \ +- return tracepoint_probe_unregister(#name, (void *)probe);\ +- } ++ } \ ++ static inline int \ ++ unregister_trace_##name(void (*probe)(proto)) \ ++ { \ ++ return tracepoint_probe_unregister(#name, (void *)probe); \ ++ } \ ++ static inline int \ ++ kabi_2635_register_trace_##name(void (*probe)(data_proto), void *data) \ ++ { \ ++ return kabi_2635_tracepoint_probe_register(#name, (void *)probe, \ ++ data); \ ++ } \ ++ static inline int \ ++ kabi_2635_unregister_trace_##name(void (*probe)(data_proto), void *data) \ ++ { \ ++ return kabi_2635_tracepoint_probe_unregister(#name, (void *)probe, \ ++ data); \ ++ } + + + #define DEFINE_TRACE_FN(name, reg, unreg) \ +@@ -100,19 +141,29 @@ extern void tracepoint_update_probe_rang + struct tracepoint *end); + + #else /* !CONFIG_TRACEPOINTS */ +-#define DECLARE_TRACE(name, proto, args) \ +- static inline void _do_trace_##name(struct tracepoint *tp, proto) \ +- { } \ +- static inline void trace_##name(proto) \ +- { } \ +- static inline int register_trace_##name(void (*probe)(proto)) \ +- { \ +- return -ENOSYS; \ +- } \ +- static inline int unregister_trace_##name(void (*probe)(proto)) \ +- { \ +- return -ENOSYS; \ +- } ++#define __DECLARE_TRACE(name, proto, args, data_proto, data_args) \ ++ static inline void trace_##name(proto) \ ++ { } \ ++ static inline int \ ++ register_trace_##name(void (*probe)(proto)) \ ++ { \ ++ return -ENOSYS; \ ++ } \ ++ static inline int \ ++ unregister_trace_##name(void (*probe)(proto)) \ ++ { \ ++ return -ENOSYS; \ ++ } \ ++ static inline int \ ++ kabi_2635_register_trace_##name(void (*probe)(data_proto), void *data) \ ++ { \ ++ return -ENOSYS; \ ++ } \ ++ static inline int \ ++ kabi_2635_unregister_trace_##name(void (*probe)(data_proto), void *data) \ ++ { \ ++ return -ENOSYS; \ ++ } + + #define DEFINE_TRACE_FN(name, reg, unreg) + #define DEFINE_TRACE(name) +@@ -123,6 +174,28 @@ static inline void tracepoint_update_pro + struct tracepoint *end) + { } + #endif /* CONFIG_TRACEPOINTS */ ++ ++/* ++ * The need for the DECLARE_TRACE_NOARGS() is to handle the prototype ++ * (void). "void" is a special value in a function prototype and can ++ * not be combined with other arguments. Since the DECLARE_TRACE() ++ * macro adds a data element at the beginning of the prototype, ++ * we need a way to differentiate "(void *data, proto)" from ++ * "(void *data, void)". The second prototype is invalid. ++ * ++ * DECLARE_TRACE_NOARGS() passes "void" as the tracepoint prototype ++ * and "void *__data" as the callback prototype. ++ * ++ * DECLARE_TRACE() passes "proto" as the tracepoint protoype and ++ * "void *__data, proto" as the callback prototype. ++ */ ++#define DECLARE_TRACE_NOARGS(name) \ ++ __DECLARE_TRACE(name, void, , void *__data, __data) ++#define DECLARE_TRACE(name, proto, args) \ ++ __DECLARE_TRACE(name, PARAMS(proto), PARAMS(args), \ ++ PARAMS(void *__data, proto), \ ++ PARAMS(__data, args)) ++ + #endif /* DECLARE_TRACE */ + + /* +@@ -130,15 +203,23 @@ static inline void tracepoint_update_pro + * Internal API, should not be used directly. + */ + extern int tracepoint_probe_register(const char *name, void *probe); ++extern int kabi_2635_tracepoint_probe_register(const char *name, void *probe, void *data); + + /* + * Disconnect a probe from a tracepoint. + * Internal API, should not be used directly. + */ +-extern int tracepoint_probe_unregister(const char *name, void *probe); ++extern int ++tracepoint_probe_unregister(const char *name, void *probe); ++extern int ++kabi_2635_tracepoint_probe_unregister(const char *name, void *probe, void *data); + + extern int tracepoint_probe_register_noupdate(const char *name, void *probe); ++extern int kabi_2635_tracepoint_probe_register_noupdate(const char *name, void *probe, ++ void *data); + extern int tracepoint_probe_unregister_noupdate(const char *name, void *probe); ++extern int kabi_2635_tracepoint_probe_unregister_noupdate(const char *name, void *probe, ++ void *data); + extern void tracepoint_probe_update_all(void); + + struct tracepoint_iter { +Index: linux/kernel/tracepoint.c +=================================================================== +--- linux.orig/kernel/tracepoint.c ++++ linux/kernel/tracepoint.c +@@ -54,7 +54,7 @@ static struct hlist_head tracepoint_tabl + */ + struct tracepoint_entry { + struct hlist_node hlist; +- void **funcs; ++ struct tracepoint_func *funcs; + int refcount; /* Number of times armed. 0 if disarmed. */ + char name[0]; + }; +@@ -64,12 +64,12 @@ struct tp_probes { + struct rcu_head rcu; + struct list_head list; + } u; +- void *probes[0]; ++ struct tracepoint_func probes[0]; + }; + + static inline void *allocate_probes(int count) + { +- struct tp_probes *p = kmalloc(count * sizeof(void *) ++ struct tp_probes *p = kmalloc(count * sizeof(struct tracepoint_func) + + sizeof(struct tp_probes), GFP_KERNEL); + return p == NULL ? NULL : p->probes; + } +@@ -79,7 +79,7 @@ static void rcu_free_old_probes(struct r + kfree(container_of(head, struct tp_probes, u.rcu)); + } + +-static inline void release_probes(void *old) ++static inline void release_probes(struct tracepoint_func *old) + { + if (old) { + struct tp_probes *tp_probes = container_of(old, +@@ -95,15 +95,16 @@ static void debug_print_probes(struct tr + if (!tracepoint_debug || !entry->funcs) + return; + +- for (i = 0; entry->funcs[i]; i++) +- printk(KERN_DEBUG "Probe %d : %p\n", i, entry->funcs[i]); ++ for (i = 0; entry->funcs[i].func; i++) ++ printk(KERN_DEBUG "Probe %d : %p\n", i, entry->funcs[i].func); + } + +-static void * +-tracepoint_entry_add_probe(struct tracepoint_entry *entry, void *probe) ++static struct tracepoint_func * ++tracepoint_entry_add_probe(struct tracepoint_entry *entry, ++ void *probe, void *data, bool kabi_2635) + { + int nr_probes = 0; +- void **old, **new; ++ struct tracepoint_func *old, *new; + + WARN_ON(!probe); + +@@ -111,8 +112,9 @@ tracepoint_entry_add_probe(struct tracep + old = entry->funcs; + if (old) { + /* (N -> N+1), (N != 0, 1) probes */ +- for (nr_probes = 0; old[nr_probes]; nr_probes++) +- if (old[nr_probes] == probe) ++ for (nr_probes = 0; old[nr_probes].func; nr_probes++) ++ if (old[nr_probes].func == probe && ++ old[nr_probes].data == data) + return ERR_PTR(-EEXIST); + } + /* + 2 : one for new probe, one for NULL func */ +@@ -120,9 +122,11 @@ tracepoint_entry_add_probe(struct tracep + if (new == NULL) + return ERR_PTR(-ENOMEM); + if (old) +- memcpy(new, old, nr_probes * sizeof(void *)); +- new[nr_probes] = probe; +- new[nr_probes + 1] = NULL; ++ memcpy(new, old, nr_probes * sizeof(struct tracepoint_func)); ++ new[nr_probes].func = probe; ++ new[nr_probes].data = data; ++ new[nr_probes].kabi_2635 = kabi_2635; ++ new[nr_probes + 1].func = NULL; + entry->refcount = nr_probes + 1; + entry->funcs = new; + debug_print_probes(entry); +@@ -130,10 +134,11 @@ tracepoint_entry_add_probe(struct tracep + } + + static void * +-tracepoint_entry_remove_probe(struct tracepoint_entry *entry, void *probe) ++tracepoint_entry_remove_probe(struct tracepoint_entry *entry, ++ void *probe, void *data) + { + int nr_probes = 0, nr_del = 0, i; +- void **old, **new; ++ struct tracepoint_func *old, *new; + + old = entry->funcs; + +@@ -142,8 +147,10 @@ tracepoint_entry_remove_probe(struct tra + + debug_print_probes(entry); + /* (N -> M), (N > 1, M >= 0) probes */ +- for (nr_probes = 0; old[nr_probes]; nr_probes++) { +- if ((!probe || old[nr_probes] == probe)) ++ for (nr_probes = 0; old[nr_probes].func; nr_probes++) { ++ if (!probe || ++ (old[nr_probes].func == probe && ++ old[nr_probes].data == data)) + nr_del++; + } + +@@ -160,10 +167,11 @@ tracepoint_entry_remove_probe(struct tra + new = allocate_probes(nr_probes - nr_del + 1); + if (new == NULL) + return ERR_PTR(-ENOMEM); +- for (i = 0; old[i]; i++) +- if ((probe && old[i] != probe)) ++ for (i = 0; old[i].func; i++) ++ if (probe && ++ (old[i].func != probe || old[i].data != data)) + new[j++] = old[i]; +- new[nr_probes - nr_del] = NULL; ++ new[nr_probes - nr_del].func = NULL; + entry->refcount = nr_probes - nr_del; + entry->funcs = new; + } +@@ -315,18 +323,19 @@ static void tracepoint_update_probes(voi + module_update_tracepoints(); + } + +-static void *tracepoint_add_probe(const char *name, void *probe) ++static struct tracepoint_func * ++tracepoint_add_probe(const char *name, void *probe, void *data, bool kabi_2635) + { + struct tracepoint_entry *entry; +- void *old; ++ struct tracepoint_func *old; + + entry = get_tracepoint(name); + if (!entry) { + entry = add_tracepoint(name); + if (IS_ERR(entry)) +- return entry; ++ return (struct tracepoint_func *)entry; + } +- old = tracepoint_entry_add_probe(entry, probe); ++ old = tracepoint_entry_add_probe(entry, probe, data, kabi_2635); + if (IS_ERR(old) && !entry->refcount) + remove_tracepoint(entry); + return old; +@@ -340,12 +349,14 @@ static void *tracepoint_add_probe(const + * Returns 0 if ok, error value on error. + * The probe address must at least be aligned on the architecture pointer size. + */ +-int tracepoint_probe_register(const char *name, void *probe) ++static ++int ___tracepoint_probe_register(const char *name, void *probe, void *data, ++ bool kabi_2635) + { +- void *old; ++ struct tracepoint_func *old; + + mutex_lock(&tracepoints_mutex); +- old = tracepoint_add_probe(name, probe); ++ old = tracepoint_add_probe(name, probe, data, kabi_2635); + mutex_unlock(&tracepoints_mutex); + if (IS_ERR(old)) + return PTR_ERR(old); +@@ -354,17 +365,30 @@ int tracepoint_probe_register(const char + release_probes(old); + return 0; + } ++ ++int kabi_2635_tracepoint_probe_register(const char *name, void *probe, void *data) ++{ ++ return ___tracepoint_probe_register(name, probe, data, 1); ++} ++EXPORT_SYMBOL_GPL(kabi_2635_tracepoint_probe_register); ++ ++ ++int tracepoint_probe_register(const char *name, void *probe) ++{ ++ return ___tracepoint_probe_register(name, probe, NULL, 0); ++} + EXPORT_SYMBOL_GPL(tracepoint_probe_register); + +-static void *tracepoint_remove_probe(const char *name, void *probe) ++static struct tracepoint_func * ++tracepoint_remove_probe(const char *name, void *probe, void *data) + { + struct tracepoint_entry *entry; +- void *old; ++ struct tracepoint_func *old; + + entry = get_tracepoint(name); + if (!entry) + return ERR_PTR(-ENOENT); +- old = tracepoint_entry_remove_probe(entry, probe); ++ old = tracepoint_entry_remove_probe(entry, probe, data); + if (IS_ERR(old)) + return old; + if (!entry->refcount) +@@ -382,12 +406,13 @@ static void *tracepoint_remove_probe(con + * itself uses stop_machine(), which insures that every preempt disabled section + * have finished. + */ +-int tracepoint_probe_unregister(const char *name, void *probe) ++static ++int ___tracepoint_probe_unregister(const char *name, void *probe, void *data) + { +- void *old; ++ struct tracepoint_func *old; + + mutex_lock(&tracepoints_mutex); +- old = tracepoint_remove_probe(name, probe); ++ old = tracepoint_remove_probe(name, probe, data); + mutex_unlock(&tracepoints_mutex); + if (IS_ERR(old)) + return PTR_ERR(old); +@@ -396,6 +421,17 @@ int tracepoint_probe_unregister(const ch + release_probes(old); + return 0; + } ++ ++int kabi_2635_tracepoint_probe_unregister(const char *name, void *probe, void *data) ++{ ++ return ___tracepoint_probe_unregister(name, probe, data); ++} ++EXPORT_SYMBOL_GPL(kabi_2635_tracepoint_probe_unregister); ++ ++int tracepoint_probe_unregister(const char *name, void *probe) ++{ ++ return ___tracepoint_probe_unregister(name, probe, NULL); ++} + EXPORT_SYMBOL_GPL(tracepoint_probe_unregister); + + static LIST_HEAD(old_probes); +@@ -418,12 +454,14 @@ static void tracepoint_add_old_probes(vo + * + * caller must call tracepoint_probe_update_all() + */ +-int tracepoint_probe_register_noupdate(const char *name, void *probe) ++static ++int ___tracepoint_probe_register_noupdate(const char *name, void *probe, ++ void *data, bool kabi_2635) + { +- void *old; ++ struct tracepoint_func *old; + + mutex_lock(&tracepoints_mutex); +- old = tracepoint_add_probe(name, probe); ++ old = tracepoint_add_probe(name, probe, data, kabi_2635); + if (IS_ERR(old)) { + mutex_unlock(&tracepoints_mutex); + return PTR_ERR(old); +@@ -432,6 +470,18 @@ int tracepoint_probe_register_noupdate(c + mutex_unlock(&tracepoints_mutex); + return 0; + } ++ ++int kabi_2635_tracepoint_probe_register_noupdate(const char *name, void *probe, ++ void *data) ++{ ++ return ___tracepoint_probe_register_noupdate(name, probe, data, 1); ++} ++EXPORT_SYMBOL_GPL(kabi_2635_tracepoint_probe_register_noupdate); ++ ++int tracepoint_probe_register_noupdate(const char *name, void *probe) ++{ ++ return ___tracepoint_probe_register_noupdate(name, probe, NULL, 0); ++} + EXPORT_SYMBOL_GPL(tracepoint_probe_register_noupdate); + + /** +@@ -441,12 +491,14 @@ EXPORT_SYMBOL_GPL(tracepoint_probe_regis + * + * caller must call tracepoint_probe_update_all() + */ +-int tracepoint_probe_unregister_noupdate(const char *name, void *probe) ++static ++int ___tracepoint_probe_unregister_noupdate(const char *name, void *probe, ++ void *data) + { +- void *old; ++ struct tracepoint_func *old; + + mutex_lock(&tracepoints_mutex); +- old = tracepoint_remove_probe(name, probe); ++ old = tracepoint_remove_probe(name, probe, data); + if (IS_ERR(old)) { + mutex_unlock(&tracepoints_mutex); + return PTR_ERR(old); +@@ -455,6 +507,18 @@ int tracepoint_probe_unregister_noupdate + mutex_unlock(&tracepoints_mutex); + return 0; + } ++ ++int kabi_2635_tracepoint_probe_unregister_noupdate(const char *name, void *probe, ++ void *data) ++{ ++ return ___tracepoint_probe_unregister_noupdate(name, probe, data); ++} ++EXPORT_SYMBOL_GPL(kabi_2635_tracepoint_probe_unregister_noupdate); ++ ++int tracepoint_probe_unregister_noupdate(const char *name, void *probe) ++{ ++ return ___tracepoint_probe_unregister_noupdate(name, probe, NULL); ++} + EXPORT_SYMBOL_GPL(tracepoint_probe_unregister_noupdate); + + /** +Index: linux/samples/tracepoints/tp-samples-trace.h +=================================================================== +--- linux.orig/samples/tracepoints/tp-samples-trace.h ++++ linux/samples/tracepoints/tp-samples-trace.h +@@ -7,7 +7,5 @@ + DECLARE_TRACE(subsys_event, + TP_PROTO(struct inode *inode, struct file *file), + TP_ARGS(inode, file)); +-DECLARE_TRACE(subsys_eventb, +- TP_PROTO(void), +- TP_ARGS()); ++DECLARE_TRACE_NOARGS(subsys_eventb); + #endif --- linux-3.11.0.orig/ubuntu/lttng/instrumentation/events/README +++ linux-3.11.0/ubuntu/lttng/instrumentation/events/README @@ -0,0 +1,27 @@ +* Workflow for updating patches from newer kernel: + +Diff mainline/ and lttng-module/ directories. + +Pull the new headers from mainline kernel to mainline/. +Copy them into lttng-modules. +Apply diff. Fix conflicts. + + +* Workflow to add new Tracepoint instrumentation to newer kernel, + and add support for it into LTTng: + +a) instrument the kernel with new trace events headers. If you want that + instrumentation distributed, you will have to push those changes into + the upstream Linux kernel first, +b) copy those headers into lttng mainline/ directory, +c) look at a diff from other headers between mainline/ and + lttng/, and use that as a recipe to create a new lttng/ + header from the mainline/ header, +d) create a new file in probes/ for the new trace event header you added, +e) add it to probes/Makefile, +f) build, make modules_install, +g) don't forget to load that new module too. + +Currently, LTTng policy is to only accept headers derived from trace +event headers accepted into the Linux kernel upstream for tracepoints +related to upstream kernel instrumentation. --- linux-3.11.0.orig/ubuntu/lttng/instrumentation/events/mainline/printk.h +++ linux-3.11.0/ubuntu/lttng/instrumentation/events/mainline/printk.h @@ -0,0 +1,41 @@ +#undef TRACE_SYSTEM +#define TRACE_SYSTEM printk + +#if !defined(_TRACE_PRINTK_H) || defined(TRACE_HEADER_MULTI_READ) +#define _TRACE_PRINTK_H + +#include + +TRACE_EVENT_CONDITION(console, + TP_PROTO(const char *log_buf, unsigned start, unsigned end, + unsigned log_buf_len), + + TP_ARGS(log_buf, start, end, log_buf_len), + + TP_CONDITION(start != end), + + TP_STRUCT__entry( + __dynamic_array(char, msg, end - start + 1) + ), + + TP_fast_assign( + if ((start & (log_buf_len - 1)) > (end & (log_buf_len - 1))) { + memcpy(__get_dynamic_array(msg), + log_buf + (start & (log_buf_len - 1)), + log_buf_len - (start & (log_buf_len - 1))); + memcpy((char *)__get_dynamic_array(msg) + + log_buf_len - (start & (log_buf_len - 1)), + log_buf, end & (log_buf_len - 1)); + } else + memcpy(__get_dynamic_array(msg), + log_buf + (start & (log_buf_len - 1)), + end - start); + ((char *)__get_dynamic_array(msg))[end - start] = 0; + ), + + TP_printk("%s", __get_str(msg)) +); +#endif /* _TRACE_PRINTK_H */ + +/* This part must be outside protection */ +#include --- linux-3.11.0.orig/ubuntu/lttng/instrumentation/events/mainline/kvm.h +++ linux-3.11.0/ubuntu/lttng/instrumentation/events/mainline/kvm.h @@ -0,0 +1,312 @@ +#if !defined(_TRACE_KVM_MAIN_H) || defined(TRACE_HEADER_MULTI_READ) +#define _TRACE_KVM_MAIN_H + +#include + +#undef TRACE_SYSTEM +#define TRACE_SYSTEM kvm + +#define ERSN(x) { KVM_EXIT_##x, "KVM_EXIT_" #x } + +#define kvm_trace_exit_reason \ + ERSN(UNKNOWN), ERSN(EXCEPTION), ERSN(IO), ERSN(HYPERCALL), \ + ERSN(DEBUG), ERSN(HLT), ERSN(MMIO), ERSN(IRQ_WINDOW_OPEN), \ + ERSN(SHUTDOWN), ERSN(FAIL_ENTRY), ERSN(INTR), ERSN(SET_TPR), \ + ERSN(TPR_ACCESS), ERSN(S390_SIEIC), ERSN(S390_RESET), ERSN(DCR),\ + ERSN(NMI), ERSN(INTERNAL_ERROR), ERSN(OSI) + +TRACE_EVENT(kvm_userspace_exit, + TP_PROTO(__u32 reason, int errno), + TP_ARGS(reason, errno), + + TP_STRUCT__entry( + __field( __u32, reason ) + __field( int, errno ) + ), + + TP_fast_assign( + __entry->reason = reason; + __entry->errno = errno; + ), + + TP_printk("reason %s (%d)", + __entry->errno < 0 ? + (__entry->errno == -EINTR ? "restart" : "error") : + __print_symbolic(__entry->reason, kvm_trace_exit_reason), + __entry->errno < 0 ? -__entry->errno : __entry->reason) +); + +#if defined(__KVM_HAVE_IOAPIC) +TRACE_EVENT(kvm_set_irq, + TP_PROTO(unsigned int gsi, int level, int irq_source_id), + TP_ARGS(gsi, level, irq_source_id), + + TP_STRUCT__entry( + __field( unsigned int, gsi ) + __field( int, level ) + __field( int, irq_source_id ) + ), + + TP_fast_assign( + __entry->gsi = gsi; + __entry->level = level; + __entry->irq_source_id = irq_source_id; + ), + + TP_printk("gsi %u level %d source %d", + __entry->gsi, __entry->level, __entry->irq_source_id) +); + +#define kvm_deliver_mode \ + {0x0, "Fixed"}, \ + {0x1, "LowPrio"}, \ + {0x2, "SMI"}, \ + {0x3, "Res3"}, \ + {0x4, "NMI"}, \ + {0x5, "INIT"}, \ + {0x6, "SIPI"}, \ + {0x7, "ExtINT"} + +TRACE_EVENT(kvm_ioapic_set_irq, + TP_PROTO(__u64 e, int pin, bool coalesced), + TP_ARGS(e, pin, coalesced), + + TP_STRUCT__entry( + __field( __u64, e ) + __field( int, pin ) + __field( bool, coalesced ) + ), + + TP_fast_assign( + __entry->e = e; + __entry->pin = pin; + __entry->coalesced = coalesced; + ), + + TP_printk("pin %u dst %x vec=%u (%s|%s|%s%s)%s", + __entry->pin, (u8)(__entry->e >> 56), (u8)__entry->e, + __print_symbolic((__entry->e >> 8 & 0x7), kvm_deliver_mode), + (__entry->e & (1<<11)) ? "logical" : "physical", + (__entry->e & (1<<15)) ? "level" : "edge", + (__entry->e & (1<<16)) ? "|masked" : "", + __entry->coalesced ? " (coalesced)" : "") +); + +TRACE_EVENT(kvm_msi_set_irq, + TP_PROTO(__u64 address, __u64 data), + TP_ARGS(address, data), + + TP_STRUCT__entry( + __field( __u64, address ) + __field( __u64, data ) + ), + + TP_fast_assign( + __entry->address = address; + __entry->data = data; + ), + + TP_printk("dst %u vec %x (%s|%s|%s%s)", + (u8)(__entry->address >> 12), (u8)__entry->data, + __print_symbolic((__entry->data >> 8 & 0x7), kvm_deliver_mode), + (__entry->address & (1<<2)) ? "logical" : "physical", + (__entry->data & (1<<15)) ? "level" : "edge", + (__entry->address & (1<<3)) ? "|rh" : "") +); + +#define kvm_irqchips \ + {KVM_IRQCHIP_PIC_MASTER, "PIC master"}, \ + {KVM_IRQCHIP_PIC_SLAVE, "PIC slave"}, \ + {KVM_IRQCHIP_IOAPIC, "IOAPIC"} + +TRACE_EVENT(kvm_ack_irq, + TP_PROTO(unsigned int irqchip, unsigned int pin), + TP_ARGS(irqchip, pin), + + TP_STRUCT__entry( + __field( unsigned int, irqchip ) + __field( unsigned int, pin ) + ), + + TP_fast_assign( + __entry->irqchip = irqchip; + __entry->pin = pin; + ), + + TP_printk("irqchip %s pin %u", + __print_symbolic(__entry->irqchip, kvm_irqchips), + __entry->pin) +); + + + +#endif /* defined(__KVM_HAVE_IOAPIC) */ + +#define KVM_TRACE_MMIO_READ_UNSATISFIED 0 +#define KVM_TRACE_MMIO_READ 1 +#define KVM_TRACE_MMIO_WRITE 2 + +#define kvm_trace_symbol_mmio \ + { KVM_TRACE_MMIO_READ_UNSATISFIED, "unsatisfied-read" }, \ + { KVM_TRACE_MMIO_READ, "read" }, \ + { KVM_TRACE_MMIO_WRITE, "write" } + +TRACE_EVENT(kvm_mmio, + TP_PROTO(int type, int len, u64 gpa, u64 val), + TP_ARGS(type, len, gpa, val), + + TP_STRUCT__entry( + __field( u32, type ) + __field( u32, len ) + __field( u64, gpa ) + __field( u64, val ) + ), + + TP_fast_assign( + __entry->type = type; + __entry->len = len; + __entry->gpa = gpa; + __entry->val = val; + ), + + TP_printk("mmio %s len %u gpa 0x%llx val 0x%llx", + __print_symbolic(__entry->type, kvm_trace_symbol_mmio), + __entry->len, __entry->gpa, __entry->val) +); + +#define kvm_fpu_load_symbol \ + {0, "unload"}, \ + {1, "load"} + +TRACE_EVENT(kvm_fpu, + TP_PROTO(int load), + TP_ARGS(load), + + TP_STRUCT__entry( + __field( u32, load ) + ), + + TP_fast_assign( + __entry->load = load; + ), + + TP_printk("%s", __print_symbolic(__entry->load, kvm_fpu_load_symbol)) +); + +TRACE_EVENT(kvm_age_page, + TP_PROTO(ulong hva, struct kvm_memory_slot *slot, int ref), + TP_ARGS(hva, slot, ref), + + TP_STRUCT__entry( + __field( u64, hva ) + __field( u64, gfn ) + __field( u8, referenced ) + ), + + TP_fast_assign( + __entry->hva = hva; + __entry->gfn = + slot->base_gfn + ((hva - slot->userspace_addr) >> PAGE_SHIFT); + __entry->referenced = ref; + ), + + TP_printk("hva %llx gfn %llx %s", + __entry->hva, __entry->gfn, + __entry->referenced ? "YOUNG" : "OLD") +); + +#ifdef CONFIG_KVM_ASYNC_PF +DECLARE_EVENT_CLASS(kvm_async_get_page_class, + + TP_PROTO(u64 gva, u64 gfn), + + TP_ARGS(gva, gfn), + + TP_STRUCT__entry( + __field(__u64, gva) + __field(u64, gfn) + ), + + TP_fast_assign( + __entry->gva = gva; + __entry->gfn = gfn; + ), + + TP_printk("gva = %#llx, gfn = %#llx", __entry->gva, __entry->gfn) +); + +DEFINE_EVENT(kvm_async_get_page_class, kvm_try_async_get_page, + + TP_PROTO(u64 gva, u64 gfn), + + TP_ARGS(gva, gfn) +); + +DEFINE_EVENT(kvm_async_get_page_class, kvm_async_pf_doublefault, + + TP_PROTO(u64 gva, u64 gfn), + + TP_ARGS(gva, gfn) +); + +DECLARE_EVENT_CLASS(kvm_async_pf_nopresent_ready, + + TP_PROTO(u64 token, u64 gva), + + TP_ARGS(token, gva), + + TP_STRUCT__entry( + __field(__u64, token) + __field(__u64, gva) + ), + + TP_fast_assign( + __entry->token = token; + __entry->gva = gva; + ), + + TP_printk("token %#llx gva %#llx", __entry->token, __entry->gva) + +); + +DEFINE_EVENT(kvm_async_pf_nopresent_ready, kvm_async_pf_not_present, + + TP_PROTO(u64 token, u64 gva), + + TP_ARGS(token, gva) +); + +DEFINE_EVENT(kvm_async_pf_nopresent_ready, kvm_async_pf_ready, + + TP_PROTO(u64 token, u64 gva), + + TP_ARGS(token, gva) +); + +TRACE_EVENT( + kvm_async_pf_completed, + TP_PROTO(unsigned long address, struct page *page, u64 gva), + TP_ARGS(address, page, gva), + + TP_STRUCT__entry( + __field(unsigned long, address) + __field(pfn_t, pfn) + __field(u64, gva) + ), + + TP_fast_assign( + __entry->address = address; + __entry->pfn = page ? page_to_pfn(page) : 0; + __entry->gva = gva; + ), + + TP_printk("gva %#llx address %#lx pfn %#llx", __entry->gva, + __entry->address, __entry->pfn) +); + +#endif + +#endif /* _TRACE_KVM_MAIN_H */ + +/* This part must be outside protection */ +#include --- linux-3.11.0.orig/ubuntu/lttng/instrumentation/events/mainline/lock.h +++ linux-3.11.0/ubuntu/lttng/instrumentation/events/mainline/lock.h @@ -0,0 +1,86 @@ +#undef TRACE_SYSTEM +#define TRACE_SYSTEM lock + +#if !defined(_TRACE_LOCK_H) || defined(TRACE_HEADER_MULTI_READ) +#define _TRACE_LOCK_H + +#include +#include + +#ifdef CONFIG_LOCKDEP + +TRACE_EVENT(lock_acquire, + + TP_PROTO(struct lockdep_map *lock, unsigned int subclass, + int trylock, int read, int check, + struct lockdep_map *next_lock, unsigned long ip), + + TP_ARGS(lock, subclass, trylock, read, check, next_lock, ip), + + TP_STRUCT__entry( + __field(unsigned int, flags) + __string(name, lock->name) + __field(void *, lockdep_addr) + ), + + TP_fast_assign( + __entry->flags = (trylock ? 1 : 0) | (read ? 2 : 0); + __assign_str(name, lock->name); + __entry->lockdep_addr = lock; + ), + + TP_printk("%p %s%s%s", __entry->lockdep_addr, + (__entry->flags & 1) ? "try " : "", + (__entry->flags & 2) ? "read " : "", + __get_str(name)) +); + +DECLARE_EVENT_CLASS(lock, + + TP_PROTO(struct lockdep_map *lock, unsigned long ip), + + TP_ARGS(lock, ip), + + TP_STRUCT__entry( + __string( name, lock->name ) + __field( void *, lockdep_addr ) + ), + + TP_fast_assign( + __assign_str(name, lock->name); + __entry->lockdep_addr = lock; + ), + + TP_printk("%p %s", __entry->lockdep_addr, __get_str(name)) +); + +DEFINE_EVENT(lock, lock_release, + + TP_PROTO(struct lockdep_map *lock, unsigned long ip), + + TP_ARGS(lock, ip) +); + +#ifdef CONFIG_LOCK_STAT + +DEFINE_EVENT(lock, lock_contended, + + TP_PROTO(struct lockdep_map *lock, unsigned long ip), + + TP_ARGS(lock, ip) +); + +DEFINE_EVENT(lock, lock_acquired, + + TP_PROTO(struct lockdep_map *lock, unsigned long ip), + + TP_ARGS(lock, ip) +); + +#endif +#endif + +#endif /* _TRACE_LOCK_H */ + +/* This part must be outside protection */ +#include --- linux-3.11.0.orig/ubuntu/lttng/instrumentation/events/mainline/workqueue.h +++ linux-3.11.0/ubuntu/lttng/instrumentation/events/mainline/workqueue.h @@ -0,0 +1,121 @@ +#undef TRACE_SYSTEM +#define TRACE_SYSTEM workqueue + +#if !defined(_TRACE_WORKQUEUE_H) || defined(TRACE_HEADER_MULTI_READ) +#define _TRACE_WORKQUEUE_H + +#include +#include + +DECLARE_EVENT_CLASS(workqueue_work, + + TP_PROTO(struct work_struct *work), + + TP_ARGS(work), + + TP_STRUCT__entry( + __field( void *, work ) + ), + + TP_fast_assign( + __entry->work = work; + ), + + TP_printk("work struct %p", __entry->work) +); + +/** + * workqueue_queue_work - called when a work gets queued + * @req_cpu: the requested cpu + * @cwq: pointer to struct cpu_workqueue_struct + * @work: pointer to struct work_struct + * + * This event occurs when a work is queued immediately or once a + * delayed work is actually queued on a workqueue (ie: once the delay + * has been reached). + */ +TRACE_EVENT(workqueue_queue_work, + + TP_PROTO(unsigned int req_cpu, struct cpu_workqueue_struct *cwq, + struct work_struct *work), + + TP_ARGS(req_cpu, cwq, work), + + TP_STRUCT__entry( + __field( void *, work ) + __field( void *, function) + __field( void *, workqueue) + __field( unsigned int, req_cpu ) + __field( unsigned int, cpu ) + ), + + TP_fast_assign( + __entry->work = work; + __entry->function = work->func; + __entry->workqueue = cwq->wq; + __entry->req_cpu = req_cpu; + __entry->cpu = cwq->pool->gcwq->cpu; + ), + + TP_printk("work struct=%p function=%pf workqueue=%p req_cpu=%u cpu=%u", + __entry->work, __entry->function, __entry->workqueue, + __entry->req_cpu, __entry->cpu) +); + +/** + * workqueue_activate_work - called when a work gets activated + * @work: pointer to struct work_struct + * + * This event occurs when a queued work is put on the active queue, + * which happens immediately after queueing unless @max_active limit + * is reached. + */ +DEFINE_EVENT(workqueue_work, workqueue_activate_work, + + TP_PROTO(struct work_struct *work), + + TP_ARGS(work) +); + +/** + * workqueue_execute_start - called immediately before the workqueue callback + * @work: pointer to struct work_struct + * + * Allows to track workqueue execution. + */ +TRACE_EVENT(workqueue_execute_start, + + TP_PROTO(struct work_struct *work), + + TP_ARGS(work), + + TP_STRUCT__entry( + __field( void *, work ) + __field( void *, function) + ), + + TP_fast_assign( + __entry->work = work; + __entry->function = work->func; + ), + + TP_printk("work struct %p: function %pf", __entry->work, __entry->function) +); + +/** + * workqueue_execute_end - called immediately after the workqueue callback + * @work: pointer to struct work_struct + * + * Allows to track workqueue execution. + */ +DEFINE_EVENT(workqueue_work, workqueue_execute_end, + + TP_PROTO(struct work_struct *work), + + TP_ARGS(work) +); + +#endif /* _TRACE_WORKQUEUE_H */ + +/* This part must be outside protection */ +#include --- linux-3.11.0.orig/ubuntu/lttng/instrumentation/events/mainline/udp.h +++ linux-3.11.0/ubuntu/lttng/instrumentation/events/mainline/udp.h @@ -0,0 +1,32 @@ +#undef TRACE_SYSTEM +#define TRACE_SYSTEM udp + +#if !defined(_TRACE_UDP_H) || defined(TRACE_HEADER_MULTI_READ) +#define _TRACE_UDP_H + +#include +#include + +TRACE_EVENT(udp_fail_queue_rcv_skb, + + TP_PROTO(int rc, struct sock *sk), + + TP_ARGS(rc, sk), + + TP_STRUCT__entry( + __field(int, rc) + __field(__u16, lport) + ), + + TP_fast_assign( + __entry->rc = rc; + __entry->lport = inet_sk(sk)->inet_num; + ), + + TP_printk("rc=%d port=%hu", __entry->rc, __entry->lport) +); + +#endif /* _TRACE_UDP_H */ + +/* This part must be outside protection */ +#include --- linux-3.11.0.orig/ubuntu/lttng/instrumentation/events/mainline/regmap.h +++ linux-3.11.0/ubuntu/lttng/instrumentation/events/mainline/regmap.h @@ -0,0 +1,181 @@ +#undef TRACE_SYSTEM +#define TRACE_SYSTEM regmap + +#if !defined(_TRACE_REGMAP_H) || defined(TRACE_HEADER_MULTI_READ) +#define _TRACE_REGMAP_H + +#include +#include + +struct device; +struct regmap; + +/* + * Log register events + */ +DECLARE_EVENT_CLASS(regmap_reg, + + TP_PROTO(struct device *dev, unsigned int reg, + unsigned int val), + + TP_ARGS(dev, reg, val), + + TP_STRUCT__entry( + __string( name, dev_name(dev) ) + __field( unsigned int, reg ) + __field( unsigned int, val ) + ), + + TP_fast_assign( + __assign_str(name, dev_name(dev)); + __entry->reg = reg; + __entry->val = val; + ), + + TP_printk("%s reg=%x val=%x", __get_str(name), + (unsigned int)__entry->reg, + (unsigned int)__entry->val) +); + +DEFINE_EVENT(regmap_reg, regmap_reg_write, + + TP_PROTO(struct device *dev, unsigned int reg, + unsigned int val), + + TP_ARGS(dev, reg, val) + +); + +DEFINE_EVENT(regmap_reg, regmap_reg_read, + + TP_PROTO(struct device *dev, unsigned int reg, + unsigned int val), + + TP_ARGS(dev, reg, val) + +); + +DEFINE_EVENT(regmap_reg, regmap_reg_read_cache, + + TP_PROTO(struct device *dev, unsigned int reg, + unsigned int val), + + TP_ARGS(dev, reg, val) + +); + +DECLARE_EVENT_CLASS(regmap_block, + + TP_PROTO(struct device *dev, unsigned int reg, int count), + + TP_ARGS(dev, reg, count), + + TP_STRUCT__entry( + __string( name, dev_name(dev) ) + __field( unsigned int, reg ) + __field( int, count ) + ), + + TP_fast_assign( + __assign_str(name, dev_name(dev)); + __entry->reg = reg; + __entry->count = count; + ), + + TP_printk("%s reg=%x count=%d", __get_str(name), + (unsigned int)__entry->reg, + (int)__entry->count) +); + +DEFINE_EVENT(regmap_block, regmap_hw_read_start, + + TP_PROTO(struct device *dev, unsigned int reg, int count), + + TP_ARGS(dev, reg, count) +); + +DEFINE_EVENT(regmap_block, regmap_hw_read_done, + + TP_PROTO(struct device *dev, unsigned int reg, int count), + + TP_ARGS(dev, reg, count) +); + +DEFINE_EVENT(regmap_block, regmap_hw_write_start, + + TP_PROTO(struct device *dev, unsigned int reg, int count), + + TP_ARGS(dev, reg, count) +); + +DEFINE_EVENT(regmap_block, regmap_hw_write_done, + + TP_PROTO(struct device *dev, unsigned int reg, int count), + + TP_ARGS(dev, reg, count) +); + +TRACE_EVENT(regcache_sync, + + TP_PROTO(struct device *dev, const char *type, + const char *status), + + TP_ARGS(dev, type, status), + + TP_STRUCT__entry( + __string( name, dev_name(dev) ) + __string( status, status ) + __string( type, type ) + __field( int, type ) + ), + + TP_fast_assign( + __assign_str(name, dev_name(dev)); + __assign_str(status, status); + __assign_str(type, type); + ), + + TP_printk("%s type=%s status=%s", __get_str(name), + __get_str(type), __get_str(status)) +); + +DECLARE_EVENT_CLASS(regmap_bool, + + TP_PROTO(struct device *dev, bool flag), + + TP_ARGS(dev, flag), + + TP_STRUCT__entry( + __string( name, dev_name(dev) ) + __field( int, flag ) + ), + + TP_fast_assign( + __assign_str(name, dev_name(dev)); + __entry->flag = flag; + ), + + TP_printk("%s flag=%d", __get_str(name), + (int)__entry->flag) +); + +DEFINE_EVENT(regmap_bool, regmap_cache_only, + + TP_PROTO(struct device *dev, bool flag), + + TP_ARGS(dev, flag) + +); + +DEFINE_EVENT(regmap_bool, regmap_cache_bypass, + + TP_PROTO(struct device *dev, bool flag), + + TP_ARGS(dev, flag) + +); + +#endif /* _TRACE_REGMAP_H */ + +/* This part must be outside protection */ +#include --- linux-3.11.0.orig/ubuntu/lttng/instrumentation/events/mainline/napi.h +++ linux-3.11.0/ubuntu/lttng/instrumentation/events/mainline/napi.h @@ -0,0 +1,38 @@ +#undef TRACE_SYSTEM +#define TRACE_SYSTEM napi + +#if !defined(_TRACE_NAPI_H) || defined(TRACE_HEADER_MULTI_READ) +#define _TRACE_NAPI_H_ + +#include +#include +#include + +#define NO_DEV "(no_device)" + +TRACE_EVENT(napi_poll, + + TP_PROTO(struct napi_struct *napi), + + TP_ARGS(napi), + + TP_STRUCT__entry( + __field( struct napi_struct *, napi) + __string( dev_name, napi->dev ? napi->dev->name : NO_DEV) + ), + + TP_fast_assign( + __entry->napi = napi; + __assign_str(dev_name, napi->dev ? napi->dev->name : NO_DEV); + ), + + TP_printk("napi poll on napi struct %p for device %s", + __entry->napi, __get_str(dev_name)) +); + +#undef NO_DEV + +#endif /* _TRACE_NAPI_H_ */ + +/* This part must be outside protection */ +#include --- linux-3.11.0.orig/ubuntu/lttng/instrumentation/events/mainline/jbd2.h +++ linux-3.11.0/ubuntu/lttng/instrumentation/events/mainline/jbd2.h @@ -0,0 +1,262 @@ +#undef TRACE_SYSTEM +#define TRACE_SYSTEM jbd2 + +#if !defined(_TRACE_JBD2_H) || defined(TRACE_HEADER_MULTI_READ) +#define _TRACE_JBD2_H + +#include +#include + +struct transaction_chp_stats_s; +struct transaction_run_stats_s; + +TRACE_EVENT(jbd2_checkpoint, + + TP_PROTO(journal_t *journal, int result), + + TP_ARGS(journal, result), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( int, result ) + ), + + TP_fast_assign( + __entry->dev = journal->j_fs_dev->bd_dev; + __entry->result = result; + ), + + TP_printk("dev %d,%d result %d", + MAJOR(__entry->dev), MINOR(__entry->dev), __entry->result) +); + +DECLARE_EVENT_CLASS(jbd2_commit, + + TP_PROTO(journal_t *journal, transaction_t *commit_transaction), + + TP_ARGS(journal, commit_transaction), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( char, sync_commit ) + __field( int, transaction ) + ), + + TP_fast_assign( + __entry->dev = journal->j_fs_dev->bd_dev; + __entry->sync_commit = commit_transaction->t_synchronous_commit; + __entry->transaction = commit_transaction->t_tid; + ), + + TP_printk("dev %d,%d transaction %d sync %d", + MAJOR(__entry->dev), MINOR(__entry->dev), + __entry->transaction, __entry->sync_commit) +); + +DEFINE_EVENT(jbd2_commit, jbd2_start_commit, + + TP_PROTO(journal_t *journal, transaction_t *commit_transaction), + + TP_ARGS(journal, commit_transaction) +); + +DEFINE_EVENT(jbd2_commit, jbd2_commit_locking, + + TP_PROTO(journal_t *journal, transaction_t *commit_transaction), + + TP_ARGS(journal, commit_transaction) +); + +DEFINE_EVENT(jbd2_commit, jbd2_commit_flushing, + + TP_PROTO(journal_t *journal, transaction_t *commit_transaction), + + TP_ARGS(journal, commit_transaction) +); + +DEFINE_EVENT(jbd2_commit, jbd2_commit_logging, + + TP_PROTO(journal_t *journal, transaction_t *commit_transaction), + + TP_ARGS(journal, commit_transaction) +); + +DEFINE_EVENT(jbd2_commit, jbd2_drop_transaction, + + TP_PROTO(journal_t *journal, transaction_t *commit_transaction), + + TP_ARGS(journal, commit_transaction) +); + +TRACE_EVENT(jbd2_end_commit, + TP_PROTO(journal_t *journal, transaction_t *commit_transaction), + + TP_ARGS(journal, commit_transaction), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( char, sync_commit ) + __field( int, transaction ) + __field( int, head ) + ), + + TP_fast_assign( + __entry->dev = journal->j_fs_dev->bd_dev; + __entry->sync_commit = commit_transaction->t_synchronous_commit; + __entry->transaction = commit_transaction->t_tid; + __entry->head = journal->j_tail_sequence; + ), + + TP_printk("dev %d,%d transaction %d sync %d head %d", + MAJOR(__entry->dev), MINOR(__entry->dev), + __entry->transaction, __entry->sync_commit, __entry->head) +); + +TRACE_EVENT(jbd2_submit_inode_data, + TP_PROTO(struct inode *inode), + + TP_ARGS(inode), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + ), + + TP_fast_assign( + __entry->dev = inode->i_sb->s_dev; + __entry->ino = inode->i_ino; + ), + + TP_printk("dev %d,%d ino %lu", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino) +); + +TRACE_EVENT(jbd2_run_stats, + TP_PROTO(dev_t dev, unsigned long tid, + struct transaction_run_stats_s *stats), + + TP_ARGS(dev, tid, stats), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( unsigned long, tid ) + __field( unsigned long, wait ) + __field( unsigned long, running ) + __field( unsigned long, locked ) + __field( unsigned long, flushing ) + __field( unsigned long, logging ) + __field( __u32, handle_count ) + __field( __u32, blocks ) + __field( __u32, blocks_logged ) + ), + + TP_fast_assign( + __entry->dev = dev; + __entry->tid = tid; + __entry->wait = stats->rs_wait; + __entry->running = stats->rs_running; + __entry->locked = stats->rs_locked; + __entry->flushing = stats->rs_flushing; + __entry->logging = stats->rs_logging; + __entry->handle_count = stats->rs_handle_count; + __entry->blocks = stats->rs_blocks; + __entry->blocks_logged = stats->rs_blocks_logged; + ), + + TP_printk("dev %d,%d tid %lu wait %u running %u locked %u flushing %u " + "logging %u handle_count %u blocks %u blocks_logged %u", + MAJOR(__entry->dev), MINOR(__entry->dev), __entry->tid, + jiffies_to_msecs(__entry->wait), + jiffies_to_msecs(__entry->running), + jiffies_to_msecs(__entry->locked), + jiffies_to_msecs(__entry->flushing), + jiffies_to_msecs(__entry->logging), + __entry->handle_count, __entry->blocks, + __entry->blocks_logged) +); + +TRACE_EVENT(jbd2_checkpoint_stats, + TP_PROTO(dev_t dev, unsigned long tid, + struct transaction_chp_stats_s *stats), + + TP_ARGS(dev, tid, stats), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( unsigned long, tid ) + __field( unsigned long, chp_time ) + __field( __u32, forced_to_close ) + __field( __u32, written ) + __field( __u32, dropped ) + ), + + TP_fast_assign( + __entry->dev = dev; + __entry->tid = tid; + __entry->chp_time = stats->cs_chp_time; + __entry->forced_to_close= stats->cs_forced_to_close; + __entry->written = stats->cs_written; + __entry->dropped = stats->cs_dropped; + ), + + TP_printk("dev %d,%d tid %lu chp_time %u forced_to_close %u " + "written %u dropped %u", + MAJOR(__entry->dev), MINOR(__entry->dev), __entry->tid, + jiffies_to_msecs(__entry->chp_time), + __entry->forced_to_close, __entry->written, __entry->dropped) +); + +TRACE_EVENT(jbd2_update_log_tail, + + TP_PROTO(journal_t *journal, tid_t first_tid, + unsigned long block_nr, unsigned long freed), + + TP_ARGS(journal, first_tid, block_nr, freed), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( tid_t, tail_sequence ) + __field( tid_t, first_tid ) + __field(unsigned long, block_nr ) + __field(unsigned long, freed ) + ), + + TP_fast_assign( + __entry->dev = journal->j_fs_dev->bd_dev; + __entry->tail_sequence = journal->j_tail_sequence; + __entry->first_tid = first_tid; + __entry->block_nr = block_nr; + __entry->freed = freed; + ), + + TP_printk("dev %d,%d from %u to %u offset %lu freed %lu", + MAJOR(__entry->dev), MINOR(__entry->dev), + __entry->tail_sequence, __entry->first_tid, + __entry->block_nr, __entry->freed) +); + +TRACE_EVENT(jbd2_write_superblock, + + TP_PROTO(journal_t *journal, int write_op), + + TP_ARGS(journal, write_op), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( int, write_op ) + ), + + TP_fast_assign( + __entry->dev = journal->j_fs_dev->bd_dev; + __entry->write_op = write_op; + ), + + TP_printk("dev %d,%d write_op %x", MAJOR(__entry->dev), + MINOR(__entry->dev), __entry->write_op) +); + +#endif /* _TRACE_JBD2_H */ + +/* This part must be outside protection */ +#include --- linux-3.11.0.orig/ubuntu/lttng/instrumentation/events/mainline/random.h +++ linux-3.11.0/ubuntu/lttng/instrumentation/events/mainline/random.h @@ -0,0 +1,134 @@ +#undef TRACE_SYSTEM +#define TRACE_SYSTEM random + +#if !defined(_TRACE_RANDOM_H) || defined(TRACE_HEADER_MULTI_READ) +#define _TRACE_RANDOM_H + +#include +#include + +DECLARE_EVENT_CLASS(random__mix_pool_bytes, + TP_PROTO(const char *pool_name, int bytes, unsigned long IP), + + TP_ARGS(pool_name, bytes, IP), + + TP_STRUCT__entry( + __field( const char *, pool_name ) + __field( int, bytes ) + __field(unsigned long, IP ) + ), + + TP_fast_assign( + __entry->pool_name = pool_name; + __entry->bytes = bytes; + __entry->IP = IP; + ), + + TP_printk("%s pool: bytes %d caller %pF", + __entry->pool_name, __entry->bytes, (void *)__entry->IP) +); + +DEFINE_EVENT(random__mix_pool_bytes, mix_pool_bytes, + TP_PROTO(const char *pool_name, int bytes, unsigned long IP), + + TP_ARGS(pool_name, bytes, IP) +); + +DEFINE_EVENT(random__mix_pool_bytes, mix_pool_bytes_nolock, + TP_PROTO(const char *pool_name, int bytes, unsigned long IP), + + TP_ARGS(pool_name, bytes, IP) +); + +TRACE_EVENT(credit_entropy_bits, + TP_PROTO(const char *pool_name, int bits, int entropy_count, + int entropy_total, unsigned long IP), + + TP_ARGS(pool_name, bits, entropy_count, entropy_total, IP), + + TP_STRUCT__entry( + __field( const char *, pool_name ) + __field( int, bits ) + __field( int, entropy_count ) + __field( int, entropy_total ) + __field(unsigned long, IP ) + ), + + TP_fast_assign( + __entry->pool_name = pool_name; + __entry->bits = bits; + __entry->entropy_count = entropy_count; + __entry->entropy_total = entropy_total; + __entry->IP = IP; + ), + + TP_printk("%s pool: bits %d entropy_count %d entropy_total %d " + "caller %pF", __entry->pool_name, __entry->bits, + __entry->entropy_count, __entry->entropy_total, + (void *)__entry->IP) +); + +TRACE_EVENT(get_random_bytes, + TP_PROTO(int nbytes, unsigned long IP), + + TP_ARGS(nbytes, IP), + + TP_STRUCT__entry( + __field( int, nbytes ) + __field(unsigned long, IP ) + ), + + TP_fast_assign( + __entry->nbytes = nbytes; + __entry->IP = IP; + ), + + TP_printk("nbytes %d caller %pF", __entry->nbytes, (void *)__entry->IP) +); + +DECLARE_EVENT_CLASS(random__extract_entropy, + TP_PROTO(const char *pool_name, int nbytes, int entropy_count, + unsigned long IP), + + TP_ARGS(pool_name, nbytes, entropy_count, IP), + + TP_STRUCT__entry( + __field( const char *, pool_name ) + __field( int, nbytes ) + __field( int, entropy_count ) + __field(unsigned long, IP ) + ), + + TP_fast_assign( + __entry->pool_name = pool_name; + __entry->nbytes = nbytes; + __entry->entropy_count = entropy_count; + __entry->IP = IP; + ), + + TP_printk("%s pool: nbytes %d entropy_count %d caller %pF", + __entry->pool_name, __entry->nbytes, __entry->entropy_count, + (void *)__entry->IP) +); + + +DEFINE_EVENT(random__extract_entropy, extract_entropy, + TP_PROTO(const char *pool_name, int nbytes, int entropy_count, + unsigned long IP), + + TP_ARGS(pool_name, nbytes, entropy_count, IP) +); + +DEFINE_EVENT(random__extract_entropy, extract_entropy_user, + TP_PROTO(const char *pool_name, int nbytes, int entropy_count, + unsigned long IP), + + TP_ARGS(pool_name, nbytes, entropy_count, IP) +); + + + +#endif /* _TRACE_RANDOM_H */ + +/* This part must be outside protection */ +#include --- linux-3.11.0.orig/ubuntu/lttng/instrumentation/events/mainline/compaction.h +++ linux-3.11.0/ubuntu/lttng/instrumentation/events/mainline/compaction.h @@ -0,0 +1,74 @@ +#undef TRACE_SYSTEM +#define TRACE_SYSTEM compaction + +#if !defined(_TRACE_COMPACTION_H) || defined(TRACE_HEADER_MULTI_READ) +#define _TRACE_COMPACTION_H + +#include +#include +#include + +DECLARE_EVENT_CLASS(mm_compaction_isolate_template, + + TP_PROTO(unsigned long nr_scanned, + unsigned long nr_taken), + + TP_ARGS(nr_scanned, nr_taken), + + TP_STRUCT__entry( + __field(unsigned long, nr_scanned) + __field(unsigned long, nr_taken) + ), + + TP_fast_assign( + __entry->nr_scanned = nr_scanned; + __entry->nr_taken = nr_taken; + ), + + TP_printk("nr_scanned=%lu nr_taken=%lu", + __entry->nr_scanned, + __entry->nr_taken) +); + +DEFINE_EVENT(mm_compaction_isolate_template, mm_compaction_isolate_migratepages, + + TP_PROTO(unsigned long nr_scanned, + unsigned long nr_taken), + + TP_ARGS(nr_scanned, nr_taken) +); + +DEFINE_EVENT(mm_compaction_isolate_template, mm_compaction_isolate_freepages, + TP_PROTO(unsigned long nr_scanned, + unsigned long nr_taken), + + TP_ARGS(nr_scanned, nr_taken) +); + +TRACE_EVENT(mm_compaction_migratepages, + + TP_PROTO(unsigned long nr_migrated, + unsigned long nr_failed), + + TP_ARGS(nr_migrated, nr_failed), + + TP_STRUCT__entry( + __field(unsigned long, nr_migrated) + __field(unsigned long, nr_failed) + ), + + TP_fast_assign( + __entry->nr_migrated = nr_migrated; + __entry->nr_failed = nr_failed; + ), + + TP_printk("nr_migrated=%lu nr_failed=%lu", + __entry->nr_migrated, + __entry->nr_failed) +); + + +#endif /* _TRACE_COMPACTION_H */ + +/* This part must be outside protection */ +#include --- linux-3.11.0.orig/ubuntu/lttng/instrumentation/events/mainline/sched.h +++ linux-3.11.0/ubuntu/lttng/instrumentation/events/mainline/sched.h @@ -0,0 +1,432 @@ +#undef TRACE_SYSTEM +#define TRACE_SYSTEM sched + +#if !defined(_TRACE_SCHED_H) || defined(TRACE_HEADER_MULTI_READ) +#define _TRACE_SCHED_H + +#include +#include +#include + +/* + * Tracepoint for calling kthread_stop, performed to end a kthread: + */ +TRACE_EVENT(sched_kthread_stop, + + TP_PROTO(struct task_struct *t), + + TP_ARGS(t), + + TP_STRUCT__entry( + __array( char, comm, TASK_COMM_LEN ) + __field( pid_t, pid ) + ), + + TP_fast_assign( + memcpy(__entry->comm, t->comm, TASK_COMM_LEN); + __entry->pid = t->pid; + ), + + TP_printk("comm=%s pid=%d", __entry->comm, __entry->pid) +); + +/* + * Tracepoint for the return value of the kthread stopping: + */ +TRACE_EVENT(sched_kthread_stop_ret, + + TP_PROTO(int ret), + + TP_ARGS(ret), + + TP_STRUCT__entry( + __field( int, ret ) + ), + + TP_fast_assign( + __entry->ret = ret; + ), + + TP_printk("ret=%d", __entry->ret) +); + +/* + * Tracepoint for waking up a task: + */ +DECLARE_EVENT_CLASS(sched_wakeup_template, + + TP_PROTO(struct task_struct *p, int success), + + TP_ARGS(p, success), + + TP_STRUCT__entry( + __array( char, comm, TASK_COMM_LEN ) + __field( pid_t, pid ) + __field( int, prio ) + __field( int, success ) + __field( int, target_cpu ) + ), + + TP_fast_assign( + memcpy(__entry->comm, p->comm, TASK_COMM_LEN); + __entry->pid = p->pid; + __entry->prio = p->prio; + __entry->success = success; + __entry->target_cpu = task_cpu(p); + ), + + TP_printk("comm=%s pid=%d prio=%d success=%d target_cpu=%03d", + __entry->comm, __entry->pid, __entry->prio, + __entry->success, __entry->target_cpu) +); + +DEFINE_EVENT(sched_wakeup_template, sched_wakeup, + TP_PROTO(struct task_struct *p, int success), + TP_ARGS(p, success)); + +/* + * Tracepoint for waking up a new task: + */ +DEFINE_EVENT(sched_wakeup_template, sched_wakeup_new, + TP_PROTO(struct task_struct *p, int success), + TP_ARGS(p, success)); + +#ifdef CREATE_TRACE_POINTS +static inline long __trace_sched_switch_state(struct task_struct *p) +{ + long state = p->state; + +#ifdef CONFIG_PREEMPT + /* + * For all intents and purposes a preempted task is a running task. + */ + if (task_thread_info(p)->preempt_count & PREEMPT_ACTIVE) + state = TASK_RUNNING | TASK_STATE_MAX; +#endif + + return state; +} +#endif + +/* + * Tracepoint for task switches, performed by the scheduler: + */ +TRACE_EVENT(sched_switch, + + TP_PROTO(struct task_struct *prev, + struct task_struct *next), + + TP_ARGS(prev, next), + + TP_STRUCT__entry( + __array( char, prev_comm, TASK_COMM_LEN ) + __field( pid_t, prev_pid ) + __field( int, prev_prio ) + __field( long, prev_state ) + __array( char, next_comm, TASK_COMM_LEN ) + __field( pid_t, next_pid ) + __field( int, next_prio ) + ), + + TP_fast_assign( + memcpy(__entry->next_comm, next->comm, TASK_COMM_LEN); + __entry->prev_pid = prev->pid; + __entry->prev_prio = prev->prio; + __entry->prev_state = __trace_sched_switch_state(prev); + memcpy(__entry->prev_comm, prev->comm, TASK_COMM_LEN); + __entry->next_pid = next->pid; + __entry->next_prio = next->prio; + ), + + TP_printk("prev_comm=%s prev_pid=%d prev_prio=%d prev_state=%s%s ==> next_comm=%s next_pid=%d next_prio=%d", + __entry->prev_comm, __entry->prev_pid, __entry->prev_prio, + __entry->prev_state & (TASK_STATE_MAX-1) ? + __print_flags(__entry->prev_state & (TASK_STATE_MAX-1), "|", + { 1, "S"} , { 2, "D" }, { 4, "T" }, { 8, "t" }, + { 16, "Z" }, { 32, "X" }, { 64, "x" }, + { 128, "W" }) : "R", + __entry->prev_state & TASK_STATE_MAX ? "+" : "", + __entry->next_comm, __entry->next_pid, __entry->next_prio) +); + +/* + * Tracepoint for a task being migrated: + */ +TRACE_EVENT(sched_migrate_task, + + TP_PROTO(struct task_struct *p, int dest_cpu), + + TP_ARGS(p, dest_cpu), + + TP_STRUCT__entry( + __array( char, comm, TASK_COMM_LEN ) + __field( pid_t, pid ) + __field( int, prio ) + __field( int, orig_cpu ) + __field( int, dest_cpu ) + ), + + TP_fast_assign( + memcpy(__entry->comm, p->comm, TASK_COMM_LEN); + __entry->pid = p->pid; + __entry->prio = p->prio; + __entry->orig_cpu = task_cpu(p); + __entry->dest_cpu = dest_cpu; + ), + + TP_printk("comm=%s pid=%d prio=%d orig_cpu=%d dest_cpu=%d", + __entry->comm, __entry->pid, __entry->prio, + __entry->orig_cpu, __entry->dest_cpu) +); + +DECLARE_EVENT_CLASS(sched_process_template, + + TP_PROTO(struct task_struct *p), + + TP_ARGS(p), + + TP_STRUCT__entry( + __array( char, comm, TASK_COMM_LEN ) + __field( pid_t, pid ) + __field( int, prio ) + ), + + TP_fast_assign( + memcpy(__entry->comm, p->comm, TASK_COMM_LEN); + __entry->pid = p->pid; + __entry->prio = p->prio; + ), + + TP_printk("comm=%s pid=%d prio=%d", + __entry->comm, __entry->pid, __entry->prio) +); + +/* + * Tracepoint for freeing a task: + */ +DEFINE_EVENT(sched_process_template, sched_process_free, + TP_PROTO(struct task_struct *p), + TP_ARGS(p)); + + +/* + * Tracepoint for a task exiting: + */ +DEFINE_EVENT(sched_process_template, sched_process_exit, + TP_PROTO(struct task_struct *p), + TP_ARGS(p)); + +/* + * Tracepoint for waiting on task to unschedule: + */ +DEFINE_EVENT(sched_process_template, sched_wait_task, + TP_PROTO(struct task_struct *p), + TP_ARGS(p)); + +/* + * Tracepoint for a waiting task: + */ +TRACE_EVENT(sched_process_wait, + + TP_PROTO(struct pid *pid), + + TP_ARGS(pid), + + TP_STRUCT__entry( + __array( char, comm, TASK_COMM_LEN ) + __field( pid_t, pid ) + __field( int, prio ) + ), + + TP_fast_assign( + memcpy(__entry->comm, current->comm, TASK_COMM_LEN); + __entry->pid = pid_nr(pid); + __entry->prio = current->prio; + ), + + TP_printk("comm=%s pid=%d prio=%d", + __entry->comm, __entry->pid, __entry->prio) +); + +/* + * Tracepoint for do_fork: + */ +TRACE_EVENT(sched_process_fork, + + TP_PROTO(struct task_struct *parent, struct task_struct *child), + + TP_ARGS(parent, child), + + TP_STRUCT__entry( + __array( char, parent_comm, TASK_COMM_LEN ) + __field( pid_t, parent_pid ) + __array( char, child_comm, TASK_COMM_LEN ) + __field( pid_t, child_pid ) + ), + + TP_fast_assign( + memcpy(__entry->parent_comm, parent->comm, TASK_COMM_LEN); + __entry->parent_pid = parent->pid; + memcpy(__entry->child_comm, child->comm, TASK_COMM_LEN); + __entry->child_pid = child->pid; + ), + + TP_printk("comm=%s pid=%d child_comm=%s child_pid=%d", + __entry->parent_comm, __entry->parent_pid, + __entry->child_comm, __entry->child_pid) +); + +/* + * Tracepoint for exec: + */ +TRACE_EVENT(sched_process_exec, + + TP_PROTO(struct task_struct *p, pid_t old_pid, + struct linux_binprm *bprm), + + TP_ARGS(p, old_pid, bprm), + + TP_STRUCT__entry( + __string( filename, bprm->filename ) + __field( pid_t, pid ) + __field( pid_t, old_pid ) + ), + + TP_fast_assign( + __assign_str(filename, bprm->filename); + __entry->pid = p->pid; + __entry->old_pid = old_pid; + ), + + TP_printk("filename=%s pid=%d old_pid=%d", __get_str(filename), + __entry->pid, __entry->old_pid) +); + +/* + * XXX the below sched_stat tracepoints only apply to SCHED_OTHER/BATCH/IDLE + * adding sched_stat support to SCHED_FIFO/RR would be welcome. + */ +DECLARE_EVENT_CLASS(sched_stat_template, + + TP_PROTO(struct task_struct *tsk, u64 delay), + + TP_ARGS(tsk, delay), + + TP_STRUCT__entry( + __array( char, comm, TASK_COMM_LEN ) + __field( pid_t, pid ) + __field( u64, delay ) + ), + + TP_fast_assign( + memcpy(__entry->comm, tsk->comm, TASK_COMM_LEN); + __entry->pid = tsk->pid; + __entry->delay = delay; + ) + TP_perf_assign( + __perf_count(delay); + ), + + TP_printk("comm=%s pid=%d delay=%Lu [ns]", + __entry->comm, __entry->pid, + (unsigned long long)__entry->delay) +); + + +/* + * Tracepoint for accounting wait time (time the task is runnable + * but not actually running due to scheduler contention). + */ +DEFINE_EVENT(sched_stat_template, sched_stat_wait, + TP_PROTO(struct task_struct *tsk, u64 delay), + TP_ARGS(tsk, delay)); + +/* + * Tracepoint for accounting sleep time (time the task is not runnable, + * including iowait, see below). + */ +DEFINE_EVENT(sched_stat_template, sched_stat_sleep, + TP_PROTO(struct task_struct *tsk, u64 delay), + TP_ARGS(tsk, delay)); + +/* + * Tracepoint for accounting iowait time (time the task is not runnable + * due to waiting on IO to complete). + */ +DEFINE_EVENT(sched_stat_template, sched_stat_iowait, + TP_PROTO(struct task_struct *tsk, u64 delay), + TP_ARGS(tsk, delay)); + +/* + * Tracepoint for accounting blocked time (time the task is in uninterruptible). + */ +DEFINE_EVENT(sched_stat_template, sched_stat_blocked, + TP_PROTO(struct task_struct *tsk, u64 delay), + TP_ARGS(tsk, delay)); + +/* + * Tracepoint for accounting runtime (time the task is executing + * on a CPU). + */ +TRACE_EVENT(sched_stat_runtime, + + TP_PROTO(struct task_struct *tsk, u64 runtime, u64 vruntime), + + TP_ARGS(tsk, runtime, vruntime), + + TP_STRUCT__entry( + __array( char, comm, TASK_COMM_LEN ) + __field( pid_t, pid ) + __field( u64, runtime ) + __field( u64, vruntime ) + ), + + TP_fast_assign( + memcpy(__entry->comm, tsk->comm, TASK_COMM_LEN); + __entry->pid = tsk->pid; + __entry->runtime = runtime; + __entry->vruntime = vruntime; + ) + TP_perf_assign( + __perf_count(runtime); + ), + + TP_printk("comm=%s pid=%d runtime=%Lu [ns] vruntime=%Lu [ns]", + __entry->comm, __entry->pid, + (unsigned long long)__entry->runtime, + (unsigned long long)__entry->vruntime) +); + +/* + * Tracepoint for showing priority inheritance modifying a tasks + * priority. + */ +TRACE_EVENT(sched_pi_setprio, + + TP_PROTO(struct task_struct *tsk, int newprio), + + TP_ARGS(tsk, newprio), + + TP_STRUCT__entry( + __array( char, comm, TASK_COMM_LEN ) + __field( pid_t, pid ) + __field( int, oldprio ) + __field( int, newprio ) + ), + + TP_fast_assign( + memcpy(__entry->comm, tsk->comm, TASK_COMM_LEN); + __entry->pid = tsk->pid; + __entry->oldprio = tsk->prio; + __entry->newprio = newprio; + ), + + TP_printk("comm=%s pid=%d oldprio=%d newprio=%d", + __entry->comm, __entry->pid, + __entry->oldprio, __entry->newprio) +); + +#endif /* _TRACE_SCHED_H */ + +/* This part must be outside protection */ +#include --- linux-3.11.0.orig/ubuntu/lttng/instrumentation/events/mainline/signal.h +++ linux-3.11.0/ubuntu/lttng/instrumentation/events/mainline/signal.h @@ -0,0 +1,125 @@ +#undef TRACE_SYSTEM +#define TRACE_SYSTEM signal + +#if !defined(_TRACE_SIGNAL_H) || defined(TRACE_HEADER_MULTI_READ) +#define _TRACE_SIGNAL_H + +#include +#include +#include + +#define TP_STORE_SIGINFO(__entry, info) \ + do { \ + if (info == SEND_SIG_NOINFO || \ + info == SEND_SIG_FORCED) { \ + __entry->errno = 0; \ + __entry->code = SI_USER; \ + } else if (info == SEND_SIG_PRIV) { \ + __entry->errno = 0; \ + __entry->code = SI_KERNEL; \ + } else { \ + __entry->errno = info->si_errno; \ + __entry->code = info->si_code; \ + } \ + } while (0) + +#ifndef TRACE_HEADER_MULTI_READ +enum { + TRACE_SIGNAL_DELIVERED, + TRACE_SIGNAL_IGNORED, + TRACE_SIGNAL_ALREADY_PENDING, + TRACE_SIGNAL_OVERFLOW_FAIL, + TRACE_SIGNAL_LOSE_INFO, +}; +#endif + +/** + * signal_generate - called when a signal is generated + * @sig: signal number + * @info: pointer to struct siginfo + * @task: pointer to struct task_struct + * @group: shared or private + * @result: TRACE_SIGNAL_* + * + * Current process sends a 'sig' signal to 'task' process with + * 'info' siginfo. If 'info' is SEND_SIG_NOINFO or SEND_SIG_PRIV, + * 'info' is not a pointer and you can't access its field. Instead, + * SEND_SIG_NOINFO means that si_code is SI_USER, and SEND_SIG_PRIV + * means that si_code is SI_KERNEL. + */ +TRACE_EVENT(signal_generate, + + TP_PROTO(int sig, struct siginfo *info, struct task_struct *task, + int group, int result), + + TP_ARGS(sig, info, task, group, result), + + TP_STRUCT__entry( + __field( int, sig ) + __field( int, errno ) + __field( int, code ) + __array( char, comm, TASK_COMM_LEN ) + __field( pid_t, pid ) + __field( int, group ) + __field( int, result ) + ), + + TP_fast_assign( + __entry->sig = sig; + TP_STORE_SIGINFO(__entry, info); + memcpy(__entry->comm, task->comm, TASK_COMM_LEN); + __entry->pid = task->pid; + __entry->group = group; + __entry->result = result; + ), + + TP_printk("sig=%d errno=%d code=%d comm=%s pid=%d grp=%d res=%d", + __entry->sig, __entry->errno, __entry->code, + __entry->comm, __entry->pid, __entry->group, + __entry->result) +); + +/** + * signal_deliver - called when a signal is delivered + * @sig: signal number + * @info: pointer to struct siginfo + * @ka: pointer to struct k_sigaction + * + * A 'sig' signal is delivered to current process with 'info' siginfo, + * and it will be handled by 'ka'. ka->sa.sa_handler can be SIG_IGN or + * SIG_DFL. + * Note that some signals reported by signal_generate tracepoint can be + * lost, ignored or modified (by debugger) before hitting this tracepoint. + * This means, this can show which signals are actually delivered, but + * matching generated signals and delivered signals may not be correct. + */ +TRACE_EVENT(signal_deliver, + + TP_PROTO(int sig, struct siginfo *info, struct k_sigaction *ka), + + TP_ARGS(sig, info, ka), + + TP_STRUCT__entry( + __field( int, sig ) + __field( int, errno ) + __field( int, code ) + __field( unsigned long, sa_handler ) + __field( unsigned long, sa_flags ) + ), + + TP_fast_assign( + __entry->sig = sig; + TP_STORE_SIGINFO(__entry, info); + __entry->sa_handler = (unsigned long)ka->sa.sa_handler; + __entry->sa_flags = ka->sa.sa_flags; + ), + + TP_printk("sig=%d errno=%d code=%d sa_handler=%lx sa_flags=%lx", + __entry->sig, __entry->errno, __entry->code, + __entry->sa_handler, __entry->sa_flags) +); + +#endif /* _TRACE_SIGNAL_H */ + +/* This part must be outside protection */ +#include --- linux-3.11.0.orig/ubuntu/lttng/instrumentation/events/mainline/sock.h +++ linux-3.11.0/ubuntu/lttng/instrumentation/events/mainline/sock.h @@ -0,0 +1,68 @@ +#undef TRACE_SYSTEM +#define TRACE_SYSTEM sock + +#if !defined(_TRACE_SOCK_H) || defined(TRACE_HEADER_MULTI_READ) +#define _TRACE_SOCK_H + +#include +#include + +TRACE_EVENT(sock_rcvqueue_full, + + TP_PROTO(struct sock *sk, struct sk_buff *skb), + + TP_ARGS(sk, skb), + + TP_STRUCT__entry( + __field(int, rmem_alloc) + __field(unsigned int, truesize) + __field(int, sk_rcvbuf) + ), + + TP_fast_assign( + __entry->rmem_alloc = atomic_read(&sk->sk_rmem_alloc); + __entry->truesize = skb->truesize; + __entry->sk_rcvbuf = sk->sk_rcvbuf; + ), + + TP_printk("rmem_alloc=%d truesize=%u sk_rcvbuf=%d", + __entry->rmem_alloc, __entry->truesize, __entry->sk_rcvbuf) +); + +TRACE_EVENT(sock_exceed_buf_limit, + + TP_PROTO(struct sock *sk, struct proto *prot, long allocated), + + TP_ARGS(sk, prot, allocated), + + TP_STRUCT__entry( + __array(char, name, 32) + __field(long *, sysctl_mem) + __field(long, allocated) + __field(int, sysctl_rmem) + __field(int, rmem_alloc) + ), + + TP_fast_assign( + strncpy(__entry->name, prot->name, 32); + __entry->sysctl_mem = prot->sysctl_mem; + __entry->allocated = allocated; + __entry->sysctl_rmem = prot->sysctl_rmem[0]; + __entry->rmem_alloc = atomic_read(&sk->sk_rmem_alloc); + ), + + TP_printk("proto:%s sysctl_mem=%ld,%ld,%ld allocated=%ld " + "sysctl_rmem=%d rmem_alloc=%d", + __entry->name, + __entry->sysctl_mem[0], + __entry->sysctl_mem[1], + __entry->sysctl_mem[2], + __entry->allocated, + __entry->sysctl_rmem, + __entry->rmem_alloc) +); + +#endif /* _TRACE_SOCK_H */ + +/* This part must be outside protection */ +#include --- linux-3.11.0.orig/ubuntu/lttng/instrumentation/events/mainline/scsi.h +++ linux-3.11.0/ubuntu/lttng/instrumentation/events/mainline/scsi.h @@ -0,0 +1,365 @@ +#undef TRACE_SYSTEM +#define TRACE_SYSTEM scsi + +#if !defined(_TRACE_SCSI_H) || defined(TRACE_HEADER_MULTI_READ) +#define _TRACE_SCSI_H + +#include +#include +#include +#include + +#define scsi_opcode_name(opcode) { opcode, #opcode } +#define show_opcode_name(val) \ + __print_symbolic(val, \ + scsi_opcode_name(TEST_UNIT_READY), \ + scsi_opcode_name(REZERO_UNIT), \ + scsi_opcode_name(REQUEST_SENSE), \ + scsi_opcode_name(FORMAT_UNIT), \ + scsi_opcode_name(READ_BLOCK_LIMITS), \ + scsi_opcode_name(REASSIGN_BLOCKS), \ + scsi_opcode_name(INITIALIZE_ELEMENT_STATUS), \ + scsi_opcode_name(READ_6), \ + scsi_opcode_name(WRITE_6), \ + scsi_opcode_name(SEEK_6), \ + scsi_opcode_name(READ_REVERSE), \ + scsi_opcode_name(WRITE_FILEMARKS), \ + scsi_opcode_name(SPACE), \ + scsi_opcode_name(INQUIRY), \ + scsi_opcode_name(RECOVER_BUFFERED_DATA), \ + scsi_opcode_name(MODE_SELECT), \ + scsi_opcode_name(RESERVE), \ + scsi_opcode_name(RELEASE), \ + scsi_opcode_name(COPY), \ + scsi_opcode_name(ERASE), \ + scsi_opcode_name(MODE_SENSE), \ + scsi_opcode_name(START_STOP), \ + scsi_opcode_name(RECEIVE_DIAGNOSTIC), \ + scsi_opcode_name(SEND_DIAGNOSTIC), \ + scsi_opcode_name(ALLOW_MEDIUM_REMOVAL), \ + scsi_opcode_name(SET_WINDOW), \ + scsi_opcode_name(READ_CAPACITY), \ + scsi_opcode_name(READ_10), \ + scsi_opcode_name(WRITE_10), \ + scsi_opcode_name(SEEK_10), \ + scsi_opcode_name(POSITION_TO_ELEMENT), \ + scsi_opcode_name(WRITE_VERIFY), \ + scsi_opcode_name(VERIFY), \ + scsi_opcode_name(SEARCH_HIGH), \ + scsi_opcode_name(SEARCH_EQUAL), \ + scsi_opcode_name(SEARCH_LOW), \ + scsi_opcode_name(SET_LIMITS), \ + scsi_opcode_name(PRE_FETCH), \ + scsi_opcode_name(READ_POSITION), \ + scsi_opcode_name(SYNCHRONIZE_CACHE), \ + scsi_opcode_name(LOCK_UNLOCK_CACHE), \ + scsi_opcode_name(READ_DEFECT_DATA), \ + scsi_opcode_name(MEDIUM_SCAN), \ + scsi_opcode_name(COMPARE), \ + scsi_opcode_name(COPY_VERIFY), \ + scsi_opcode_name(WRITE_BUFFER), \ + scsi_opcode_name(READ_BUFFER), \ + scsi_opcode_name(UPDATE_BLOCK), \ + scsi_opcode_name(READ_LONG), \ + scsi_opcode_name(WRITE_LONG), \ + scsi_opcode_name(CHANGE_DEFINITION), \ + scsi_opcode_name(WRITE_SAME), \ + scsi_opcode_name(UNMAP), \ + scsi_opcode_name(READ_TOC), \ + scsi_opcode_name(LOG_SELECT), \ + scsi_opcode_name(LOG_SENSE), \ + scsi_opcode_name(XDWRITEREAD_10), \ + scsi_opcode_name(MODE_SELECT_10), \ + scsi_opcode_name(RESERVE_10), \ + scsi_opcode_name(RELEASE_10), \ + scsi_opcode_name(MODE_SENSE_10), \ + scsi_opcode_name(PERSISTENT_RESERVE_IN), \ + scsi_opcode_name(PERSISTENT_RESERVE_OUT), \ + scsi_opcode_name(VARIABLE_LENGTH_CMD), \ + scsi_opcode_name(REPORT_LUNS), \ + scsi_opcode_name(MAINTENANCE_IN), \ + scsi_opcode_name(MAINTENANCE_OUT), \ + scsi_opcode_name(MOVE_MEDIUM), \ + scsi_opcode_name(EXCHANGE_MEDIUM), \ + scsi_opcode_name(READ_12), \ + scsi_opcode_name(WRITE_12), \ + scsi_opcode_name(WRITE_VERIFY_12), \ + scsi_opcode_name(SEARCH_HIGH_12), \ + scsi_opcode_name(SEARCH_EQUAL_12), \ + scsi_opcode_name(SEARCH_LOW_12), \ + scsi_opcode_name(READ_ELEMENT_STATUS), \ + scsi_opcode_name(SEND_VOLUME_TAG), \ + scsi_opcode_name(WRITE_LONG_2), \ + scsi_opcode_name(READ_16), \ + scsi_opcode_name(WRITE_16), \ + scsi_opcode_name(VERIFY_16), \ + scsi_opcode_name(WRITE_SAME_16), \ + scsi_opcode_name(SERVICE_ACTION_IN), \ + scsi_opcode_name(SAI_READ_CAPACITY_16), \ + scsi_opcode_name(SAI_GET_LBA_STATUS), \ + scsi_opcode_name(MI_REPORT_TARGET_PGS), \ + scsi_opcode_name(MO_SET_TARGET_PGS), \ + scsi_opcode_name(READ_32), \ + scsi_opcode_name(WRITE_32), \ + scsi_opcode_name(WRITE_SAME_32), \ + scsi_opcode_name(ATA_16), \ + scsi_opcode_name(ATA_12)) + +#define scsi_hostbyte_name(result) { result, #result } +#define show_hostbyte_name(val) \ + __print_symbolic(val, \ + scsi_hostbyte_name(DID_OK), \ + scsi_hostbyte_name(DID_NO_CONNECT), \ + scsi_hostbyte_name(DID_BUS_BUSY), \ + scsi_hostbyte_name(DID_TIME_OUT), \ + scsi_hostbyte_name(DID_BAD_TARGET), \ + scsi_hostbyte_name(DID_ABORT), \ + scsi_hostbyte_name(DID_PARITY), \ + scsi_hostbyte_name(DID_ERROR), \ + scsi_hostbyte_name(DID_RESET), \ + scsi_hostbyte_name(DID_BAD_INTR), \ + scsi_hostbyte_name(DID_PASSTHROUGH), \ + scsi_hostbyte_name(DID_SOFT_ERROR), \ + scsi_hostbyte_name(DID_IMM_RETRY), \ + scsi_hostbyte_name(DID_REQUEUE), \ + scsi_hostbyte_name(DID_TRANSPORT_DISRUPTED), \ + scsi_hostbyte_name(DID_TRANSPORT_FAILFAST)) + +#define scsi_driverbyte_name(result) { result, #result } +#define show_driverbyte_name(val) \ + __print_symbolic(val, \ + scsi_driverbyte_name(DRIVER_OK), \ + scsi_driverbyte_name(DRIVER_BUSY), \ + scsi_driverbyte_name(DRIVER_SOFT), \ + scsi_driverbyte_name(DRIVER_MEDIA), \ + scsi_driverbyte_name(DRIVER_ERROR), \ + scsi_driverbyte_name(DRIVER_INVALID), \ + scsi_driverbyte_name(DRIVER_TIMEOUT), \ + scsi_driverbyte_name(DRIVER_HARD), \ + scsi_driverbyte_name(DRIVER_SENSE)) + +#define scsi_msgbyte_name(result) { result, #result } +#define show_msgbyte_name(val) \ + __print_symbolic(val, \ + scsi_msgbyte_name(COMMAND_COMPLETE), \ + scsi_msgbyte_name(EXTENDED_MESSAGE), \ + scsi_msgbyte_name(SAVE_POINTERS), \ + scsi_msgbyte_name(RESTORE_POINTERS), \ + scsi_msgbyte_name(DISCONNECT), \ + scsi_msgbyte_name(INITIATOR_ERROR), \ + scsi_msgbyte_name(ABORT_TASK_SET), \ + scsi_msgbyte_name(MESSAGE_REJECT), \ + scsi_msgbyte_name(NOP), \ + scsi_msgbyte_name(MSG_PARITY_ERROR), \ + scsi_msgbyte_name(LINKED_CMD_COMPLETE), \ + scsi_msgbyte_name(LINKED_FLG_CMD_COMPLETE), \ + scsi_msgbyte_name(TARGET_RESET), \ + scsi_msgbyte_name(ABORT_TASK), \ + scsi_msgbyte_name(CLEAR_TASK_SET), \ + scsi_msgbyte_name(INITIATE_RECOVERY), \ + scsi_msgbyte_name(RELEASE_RECOVERY), \ + scsi_msgbyte_name(CLEAR_ACA), \ + scsi_msgbyte_name(LOGICAL_UNIT_RESET), \ + scsi_msgbyte_name(SIMPLE_QUEUE_TAG), \ + scsi_msgbyte_name(HEAD_OF_QUEUE_TAG), \ + scsi_msgbyte_name(ORDERED_QUEUE_TAG), \ + scsi_msgbyte_name(IGNORE_WIDE_RESIDUE), \ + scsi_msgbyte_name(ACA), \ + scsi_msgbyte_name(QAS_REQUEST), \ + scsi_msgbyte_name(BUS_DEVICE_RESET), \ + scsi_msgbyte_name(ABORT)) + +#define scsi_statusbyte_name(result) { result, #result } +#define show_statusbyte_name(val) \ + __print_symbolic(val, \ + scsi_statusbyte_name(SAM_STAT_GOOD), \ + scsi_statusbyte_name(SAM_STAT_CHECK_CONDITION), \ + scsi_statusbyte_name(SAM_STAT_CONDITION_MET), \ + scsi_statusbyte_name(SAM_STAT_BUSY), \ + scsi_statusbyte_name(SAM_STAT_INTERMEDIATE), \ + scsi_statusbyte_name(SAM_STAT_INTERMEDIATE_CONDITION_MET), \ + scsi_statusbyte_name(SAM_STAT_RESERVATION_CONFLICT), \ + scsi_statusbyte_name(SAM_STAT_COMMAND_TERMINATED), \ + scsi_statusbyte_name(SAM_STAT_TASK_SET_FULL), \ + scsi_statusbyte_name(SAM_STAT_ACA_ACTIVE), \ + scsi_statusbyte_name(SAM_STAT_TASK_ABORTED)) + +#define scsi_prot_op_name(result) { result, #result } +#define show_prot_op_name(val) \ + __print_symbolic(val, \ + scsi_prot_op_name(SCSI_PROT_NORMAL), \ + scsi_prot_op_name(SCSI_PROT_READ_INSERT), \ + scsi_prot_op_name(SCSI_PROT_WRITE_STRIP), \ + scsi_prot_op_name(SCSI_PROT_READ_STRIP), \ + scsi_prot_op_name(SCSI_PROT_WRITE_INSERT), \ + scsi_prot_op_name(SCSI_PROT_READ_PASS), \ + scsi_prot_op_name(SCSI_PROT_WRITE_PASS)) + +const char *scsi_trace_parse_cdb(struct trace_seq*, unsigned char*, int); +#define __parse_cdb(cdb, len) scsi_trace_parse_cdb(p, cdb, len) + +TRACE_EVENT(scsi_dispatch_cmd_start, + + TP_PROTO(struct scsi_cmnd *cmd), + + TP_ARGS(cmd), + + TP_STRUCT__entry( + __field( unsigned int, host_no ) + __field( unsigned int, channel ) + __field( unsigned int, id ) + __field( unsigned int, lun ) + __field( unsigned int, opcode ) + __field( unsigned int, cmd_len ) + __field( unsigned int, data_sglen ) + __field( unsigned int, prot_sglen ) + __field( unsigned char, prot_op ) + __dynamic_array(unsigned char, cmnd, cmd->cmd_len) + ), + + TP_fast_assign( + __entry->host_no = cmd->device->host->host_no; + __entry->channel = cmd->device->channel; + __entry->id = cmd->device->id; + __entry->lun = cmd->device->lun; + __entry->opcode = cmd->cmnd[0]; + __entry->cmd_len = cmd->cmd_len; + __entry->data_sglen = scsi_sg_count(cmd); + __entry->prot_sglen = scsi_prot_sg_count(cmd); + __entry->prot_op = scsi_get_prot_op(cmd); + memcpy(__get_dynamic_array(cmnd), cmd->cmnd, cmd->cmd_len); + ), + + TP_printk("host_no=%u channel=%u id=%u lun=%u data_sgl=%u prot_sgl=%u" \ + " prot_op=%s cmnd=(%s %s raw=%s)", + __entry->host_no, __entry->channel, __entry->id, + __entry->lun, __entry->data_sglen, __entry->prot_sglen, + show_prot_op_name(__entry->prot_op), + show_opcode_name(__entry->opcode), + __parse_cdb(__get_dynamic_array(cmnd), __entry->cmd_len), + __print_hex(__get_dynamic_array(cmnd), __entry->cmd_len)) +); + +TRACE_EVENT(scsi_dispatch_cmd_error, + + TP_PROTO(struct scsi_cmnd *cmd, int rtn), + + TP_ARGS(cmd, rtn), + + TP_STRUCT__entry( + __field( unsigned int, host_no ) + __field( unsigned int, channel ) + __field( unsigned int, id ) + __field( unsigned int, lun ) + __field( int, rtn ) + __field( unsigned int, opcode ) + __field( unsigned int, cmd_len ) + __field( unsigned int, data_sglen ) + __field( unsigned int, prot_sglen ) + __field( unsigned char, prot_op ) + __dynamic_array(unsigned char, cmnd, cmd->cmd_len) + ), + + TP_fast_assign( + __entry->host_no = cmd->device->host->host_no; + __entry->channel = cmd->device->channel; + __entry->id = cmd->device->id; + __entry->lun = cmd->device->lun; + __entry->rtn = rtn; + __entry->opcode = cmd->cmnd[0]; + __entry->cmd_len = cmd->cmd_len; + __entry->data_sglen = scsi_sg_count(cmd); + __entry->prot_sglen = scsi_prot_sg_count(cmd); + __entry->prot_op = scsi_get_prot_op(cmd); + memcpy(__get_dynamic_array(cmnd), cmd->cmnd, cmd->cmd_len); + ), + + TP_printk("host_no=%u channel=%u id=%u lun=%u data_sgl=%u prot_sgl=%u" \ + " prot_op=%s cmnd=(%s %s raw=%s) rtn=%d", + __entry->host_no, __entry->channel, __entry->id, + __entry->lun, __entry->data_sglen, __entry->prot_sglen, + show_prot_op_name(__entry->prot_op), + show_opcode_name(__entry->opcode), + __parse_cdb(__get_dynamic_array(cmnd), __entry->cmd_len), + __print_hex(__get_dynamic_array(cmnd), __entry->cmd_len), + __entry->rtn) +); + +DECLARE_EVENT_CLASS(scsi_cmd_done_timeout_template, + + TP_PROTO(struct scsi_cmnd *cmd), + + TP_ARGS(cmd), + + TP_STRUCT__entry( + __field( unsigned int, host_no ) + __field( unsigned int, channel ) + __field( unsigned int, id ) + __field( unsigned int, lun ) + __field( int, result ) + __field( unsigned int, opcode ) + __field( unsigned int, cmd_len ) + __field( unsigned int, data_sglen ) + __field( unsigned int, prot_sglen ) + __field( unsigned char, prot_op ) + __dynamic_array(unsigned char, cmnd, cmd->cmd_len) + ), + + TP_fast_assign( + __entry->host_no = cmd->device->host->host_no; + __entry->channel = cmd->device->channel; + __entry->id = cmd->device->id; + __entry->lun = cmd->device->lun; + __entry->result = cmd->result; + __entry->opcode = cmd->cmnd[0]; + __entry->cmd_len = cmd->cmd_len; + __entry->data_sglen = scsi_sg_count(cmd); + __entry->prot_sglen = scsi_prot_sg_count(cmd); + __entry->prot_op = scsi_get_prot_op(cmd); + memcpy(__get_dynamic_array(cmnd), cmd->cmnd, cmd->cmd_len); + ), + + TP_printk("host_no=%u channel=%u id=%u lun=%u data_sgl=%u " \ + "prot_sgl=%u prot_op=%s cmnd=(%s %s raw=%s) result=(driver=" \ + "%s host=%s message=%s status=%s)", + __entry->host_no, __entry->channel, __entry->id, + __entry->lun, __entry->data_sglen, __entry->prot_sglen, + show_prot_op_name(__entry->prot_op), + show_opcode_name(__entry->opcode), + __parse_cdb(__get_dynamic_array(cmnd), __entry->cmd_len), + __print_hex(__get_dynamic_array(cmnd), __entry->cmd_len), + show_driverbyte_name(((__entry->result) >> 24) & 0xff), + show_hostbyte_name(((__entry->result) >> 16) & 0xff), + show_msgbyte_name(((__entry->result) >> 8) & 0xff), + show_statusbyte_name(__entry->result & 0xff)) +); + +DEFINE_EVENT(scsi_cmd_done_timeout_template, scsi_dispatch_cmd_done, + TP_PROTO(struct scsi_cmnd *cmd), + TP_ARGS(cmd)); + +DEFINE_EVENT(scsi_cmd_done_timeout_template, scsi_dispatch_cmd_timeout, + TP_PROTO(struct scsi_cmnd *cmd), + TP_ARGS(cmd)); + +TRACE_EVENT(scsi_eh_wakeup, + + TP_PROTO(struct Scsi_Host *shost), + + TP_ARGS(shost), + + TP_STRUCT__entry( + __field( unsigned int, host_no ) + ), + + TP_fast_assign( + __entry->host_no = shost->host_no; + ), + + TP_printk("host_no=%u", __entry->host_no) +); + +#endif /* _TRACE_SCSI_H */ + +/* This part must be outside protection */ +#include --- linux-3.11.0.orig/ubuntu/lttng/instrumentation/events/mainline/regulator.h +++ linux-3.11.0/ubuntu/lttng/instrumentation/events/mainline/regulator.h @@ -0,0 +1,141 @@ +#undef TRACE_SYSTEM +#define TRACE_SYSTEM regulator + +#if !defined(_TRACE_REGULATOR_H) || defined(TRACE_HEADER_MULTI_READ) +#define _TRACE_REGULATOR_H + +#include +#include + +/* + * Events which just log themselves and the regulator name for enable/disable + * type tracking. + */ +DECLARE_EVENT_CLASS(regulator_basic, + + TP_PROTO(const char *name), + + TP_ARGS(name), + + TP_STRUCT__entry( + __string( name, name ) + ), + + TP_fast_assign( + __assign_str(name, name); + ), + + TP_printk("name=%s", __get_str(name)) + +); + +DEFINE_EVENT(regulator_basic, regulator_enable, + + TP_PROTO(const char *name), + + TP_ARGS(name) + +); + +DEFINE_EVENT(regulator_basic, regulator_enable_delay, + + TP_PROTO(const char *name), + + TP_ARGS(name) + +); + +DEFINE_EVENT(regulator_basic, regulator_enable_complete, + + TP_PROTO(const char *name), + + TP_ARGS(name) + +); + +DEFINE_EVENT(regulator_basic, regulator_disable, + + TP_PROTO(const char *name), + + TP_ARGS(name) + +); + +DEFINE_EVENT(regulator_basic, regulator_disable_complete, + + TP_PROTO(const char *name), + + TP_ARGS(name) + +); + +/* + * Events that take a range of numerical values, mostly for voltages + * and so on. + */ +DECLARE_EVENT_CLASS(regulator_range, + + TP_PROTO(const char *name, int min, int max), + + TP_ARGS(name, min, max), + + TP_STRUCT__entry( + __string( name, name ) + __field( int, min ) + __field( int, max ) + ), + + TP_fast_assign( + __assign_str(name, name); + __entry->min = min; + __entry->max = max; + ), + + TP_printk("name=%s (%d-%d)", __get_str(name), + (int)__entry->min, (int)__entry->max) +); + +DEFINE_EVENT(regulator_range, regulator_set_voltage, + + TP_PROTO(const char *name, int min, int max), + + TP_ARGS(name, min, max) + +); + + +/* + * Events that take a single value, mostly for readback and refcounts. + */ +DECLARE_EVENT_CLASS(regulator_value, + + TP_PROTO(const char *name, unsigned int val), + + TP_ARGS(name, val), + + TP_STRUCT__entry( + __string( name, name ) + __field( unsigned int, val ) + ), + + TP_fast_assign( + __assign_str(name, name); + __entry->val = val; + ), + + TP_printk("name=%s, val=%u", __get_str(name), + (int)__entry->val) +); + +DEFINE_EVENT(regulator_value, regulator_set_voltage_complete, + + TP_PROTO(const char *name, unsigned int value), + + TP_ARGS(name, value) + +); + +#endif /* _TRACE_POWER_H */ + +/* This part must be outside protection */ +#include --- linux-3.11.0.orig/ubuntu/lttng/instrumentation/events/mainline/block.h +++ linux-3.11.0/ubuntu/lttng/instrumentation/events/mainline/block.h @@ -0,0 +1,571 @@ +#undef TRACE_SYSTEM +#define TRACE_SYSTEM block + +#if !defined(_TRACE_BLOCK_H) || defined(TRACE_HEADER_MULTI_READ) +#define _TRACE_BLOCK_H + +#include +#include +#include + +#define RWBS_LEN 8 + +DECLARE_EVENT_CLASS(block_rq_with_error, + + TP_PROTO(struct request_queue *q, struct request *rq), + + TP_ARGS(q, rq), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( sector_t, sector ) + __field( unsigned int, nr_sector ) + __field( int, errors ) + __array( char, rwbs, RWBS_LEN ) + __dynamic_array( char, cmd, blk_cmd_buf_len(rq) ) + ), + + TP_fast_assign( + __entry->dev = rq->rq_disk ? disk_devt(rq->rq_disk) : 0; + __entry->sector = (rq->cmd_type == REQ_TYPE_BLOCK_PC) ? + 0 : blk_rq_pos(rq); + __entry->nr_sector = (rq->cmd_type == REQ_TYPE_BLOCK_PC) ? + 0 : blk_rq_sectors(rq); + __entry->errors = rq->errors; + + blk_fill_rwbs(__entry->rwbs, rq->cmd_flags, blk_rq_bytes(rq)); + blk_dump_cmd(__get_str(cmd), rq); + ), + + TP_printk("%d,%d %s (%s) %llu + %u [%d]", + MAJOR(__entry->dev), MINOR(__entry->dev), + __entry->rwbs, __get_str(cmd), + (unsigned long long)__entry->sector, + __entry->nr_sector, __entry->errors) +); + +/** + * block_rq_abort - abort block operation request + * @q: queue containing the block operation request + * @rq: block IO operation request + * + * Called immediately after pending block IO operation request @rq in + * queue @q is aborted. The fields in the operation request @rq + * can be examined to determine which device and sectors the pending + * operation would access. + */ +DEFINE_EVENT(block_rq_with_error, block_rq_abort, + + TP_PROTO(struct request_queue *q, struct request *rq), + + TP_ARGS(q, rq) +); + +/** + * block_rq_requeue - place block IO request back on a queue + * @q: queue holding operation + * @rq: block IO operation request + * + * The block operation request @rq is being placed back into queue + * @q. For some reason the request was not completed and needs to be + * put back in the queue. + */ +DEFINE_EVENT(block_rq_with_error, block_rq_requeue, + + TP_PROTO(struct request_queue *q, struct request *rq), + + TP_ARGS(q, rq) +); + +/** + * block_rq_complete - block IO operation completed by device driver + * @q: queue containing the block operation request + * @rq: block operations request + * + * The block_rq_complete tracepoint event indicates that some portion + * of operation request has been completed by the device driver. If + * the @rq->bio is %NULL, then there is absolutely no additional work to + * do for the request. If @rq->bio is non-NULL then there is + * additional work required to complete the request. + */ +DEFINE_EVENT(block_rq_with_error, block_rq_complete, + + TP_PROTO(struct request_queue *q, struct request *rq), + + TP_ARGS(q, rq) +); + +DECLARE_EVENT_CLASS(block_rq, + + TP_PROTO(struct request_queue *q, struct request *rq), + + TP_ARGS(q, rq), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( sector_t, sector ) + __field( unsigned int, nr_sector ) + __field( unsigned int, bytes ) + __array( char, rwbs, RWBS_LEN ) + __array( char, comm, TASK_COMM_LEN ) + __dynamic_array( char, cmd, blk_cmd_buf_len(rq) ) + ), + + TP_fast_assign( + __entry->dev = rq->rq_disk ? disk_devt(rq->rq_disk) : 0; + __entry->sector = (rq->cmd_type == REQ_TYPE_BLOCK_PC) ? + 0 : blk_rq_pos(rq); + __entry->nr_sector = (rq->cmd_type == REQ_TYPE_BLOCK_PC) ? + 0 : blk_rq_sectors(rq); + __entry->bytes = (rq->cmd_type == REQ_TYPE_BLOCK_PC) ? + blk_rq_bytes(rq) : 0; + + blk_fill_rwbs(__entry->rwbs, rq->cmd_flags, blk_rq_bytes(rq)); + blk_dump_cmd(__get_str(cmd), rq); + memcpy(__entry->comm, current->comm, TASK_COMM_LEN); + ), + + TP_printk("%d,%d %s %u (%s) %llu + %u [%s]", + MAJOR(__entry->dev), MINOR(__entry->dev), + __entry->rwbs, __entry->bytes, __get_str(cmd), + (unsigned long long)__entry->sector, + __entry->nr_sector, __entry->comm) +); + +/** + * block_rq_insert - insert block operation request into queue + * @q: target queue + * @rq: block IO operation request + * + * Called immediately before block operation request @rq is inserted + * into queue @q. The fields in the operation request @rq struct can + * be examined to determine which device and sectors the pending + * operation would access. + */ +DEFINE_EVENT(block_rq, block_rq_insert, + + TP_PROTO(struct request_queue *q, struct request *rq), + + TP_ARGS(q, rq) +); + +/** + * block_rq_issue - issue pending block IO request operation to device driver + * @q: queue holding operation + * @rq: block IO operation operation request + * + * Called when block operation request @rq from queue @q is sent to a + * device driver for processing. + */ +DEFINE_EVENT(block_rq, block_rq_issue, + + TP_PROTO(struct request_queue *q, struct request *rq), + + TP_ARGS(q, rq) +); + +/** + * block_bio_bounce - used bounce buffer when processing block operation + * @q: queue holding the block operation + * @bio: block operation + * + * A bounce buffer was used to handle the block operation @bio in @q. + * This occurs when hardware limitations prevent a direct transfer of + * data between the @bio data memory area and the IO device. Use of a + * bounce buffer requires extra copying of data and decreases + * performance. + */ +TRACE_EVENT(block_bio_bounce, + + TP_PROTO(struct request_queue *q, struct bio *bio), + + TP_ARGS(q, bio), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( sector_t, sector ) + __field( unsigned int, nr_sector ) + __array( char, rwbs, RWBS_LEN ) + __array( char, comm, TASK_COMM_LEN ) + ), + + TP_fast_assign( + __entry->dev = bio->bi_bdev ? + bio->bi_bdev->bd_dev : 0; + __entry->sector = bio->bi_sector; + __entry->nr_sector = bio->bi_size >> 9; + blk_fill_rwbs(__entry->rwbs, bio->bi_rw, bio->bi_size); + memcpy(__entry->comm, current->comm, TASK_COMM_LEN); + ), + + TP_printk("%d,%d %s %llu + %u [%s]", + MAJOR(__entry->dev), MINOR(__entry->dev), __entry->rwbs, + (unsigned long long)__entry->sector, + __entry->nr_sector, __entry->comm) +); + +/** + * block_bio_complete - completed all work on the block operation + * @q: queue holding the block operation + * @bio: block operation completed + * @error: io error value + * + * This tracepoint indicates there is no further work to do on this + * block IO operation @bio. + */ +TRACE_EVENT(block_bio_complete, + + TP_PROTO(struct request_queue *q, struct bio *bio, int error), + + TP_ARGS(q, bio, error), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( sector_t, sector ) + __field( unsigned, nr_sector ) + __field( int, error ) + __array( char, rwbs, RWBS_LEN) + ), + + TP_fast_assign( + __entry->dev = bio->bi_bdev->bd_dev; + __entry->sector = bio->bi_sector; + __entry->nr_sector = bio->bi_size >> 9; + __entry->error = error; + blk_fill_rwbs(__entry->rwbs, bio->bi_rw, bio->bi_size); + ), + + TP_printk("%d,%d %s %llu + %u [%d]", + MAJOR(__entry->dev), MINOR(__entry->dev), __entry->rwbs, + (unsigned long long)__entry->sector, + __entry->nr_sector, __entry->error) +); + +DECLARE_EVENT_CLASS(block_bio, + + TP_PROTO(struct request_queue *q, struct bio *bio), + + TP_ARGS(q, bio), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( sector_t, sector ) + __field( unsigned int, nr_sector ) + __array( char, rwbs, RWBS_LEN ) + __array( char, comm, TASK_COMM_LEN ) + ), + + TP_fast_assign( + __entry->dev = bio->bi_bdev->bd_dev; + __entry->sector = bio->bi_sector; + __entry->nr_sector = bio->bi_size >> 9; + blk_fill_rwbs(__entry->rwbs, bio->bi_rw, bio->bi_size); + memcpy(__entry->comm, current->comm, TASK_COMM_LEN); + ), + + TP_printk("%d,%d %s %llu + %u [%s]", + MAJOR(__entry->dev), MINOR(__entry->dev), __entry->rwbs, + (unsigned long long)__entry->sector, + __entry->nr_sector, __entry->comm) +); + +/** + * block_bio_backmerge - merging block operation to the end of an existing operation + * @q: queue holding operation + * @bio: new block operation to merge + * + * Merging block request @bio to the end of an existing block request + * in queue @q. + */ +DEFINE_EVENT(block_bio, block_bio_backmerge, + + TP_PROTO(struct request_queue *q, struct bio *bio), + + TP_ARGS(q, bio) +); + +/** + * block_bio_frontmerge - merging block operation to the beginning of an existing operation + * @q: queue holding operation + * @bio: new block operation to merge + * + * Merging block IO operation @bio to the beginning of an existing block + * operation in queue @q. + */ +DEFINE_EVENT(block_bio, block_bio_frontmerge, + + TP_PROTO(struct request_queue *q, struct bio *bio), + + TP_ARGS(q, bio) +); + +/** + * block_bio_queue - putting new block IO operation in queue + * @q: queue holding operation + * @bio: new block operation + * + * About to place the block IO operation @bio into queue @q. + */ +DEFINE_EVENT(block_bio, block_bio_queue, + + TP_PROTO(struct request_queue *q, struct bio *bio), + + TP_ARGS(q, bio) +); + +DECLARE_EVENT_CLASS(block_get_rq, + + TP_PROTO(struct request_queue *q, struct bio *bio, int rw), + + TP_ARGS(q, bio, rw), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( sector_t, sector ) + __field( unsigned int, nr_sector ) + __array( char, rwbs, RWBS_LEN ) + __array( char, comm, TASK_COMM_LEN ) + ), + + TP_fast_assign( + __entry->dev = bio ? bio->bi_bdev->bd_dev : 0; + __entry->sector = bio ? bio->bi_sector : 0; + __entry->nr_sector = bio ? bio->bi_size >> 9 : 0; + blk_fill_rwbs(__entry->rwbs, + bio ? bio->bi_rw : 0, __entry->nr_sector); + memcpy(__entry->comm, current->comm, TASK_COMM_LEN); + ), + + TP_printk("%d,%d %s %llu + %u [%s]", + MAJOR(__entry->dev), MINOR(__entry->dev), __entry->rwbs, + (unsigned long long)__entry->sector, + __entry->nr_sector, __entry->comm) +); + +/** + * block_getrq - get a free request entry in queue for block IO operations + * @q: queue for operations + * @bio: pending block IO operation + * @rw: low bit indicates a read (%0) or a write (%1) + * + * A request struct for queue @q has been allocated to handle the + * block IO operation @bio. + */ +DEFINE_EVENT(block_get_rq, block_getrq, + + TP_PROTO(struct request_queue *q, struct bio *bio, int rw), + + TP_ARGS(q, bio, rw) +); + +/** + * block_sleeprq - waiting to get a free request entry in queue for block IO operation + * @q: queue for operation + * @bio: pending block IO operation + * @rw: low bit indicates a read (%0) or a write (%1) + * + * In the case where a request struct cannot be provided for queue @q + * the process needs to wait for an request struct to become + * available. This tracepoint event is generated each time the + * process goes to sleep waiting for request struct become available. + */ +DEFINE_EVENT(block_get_rq, block_sleeprq, + + TP_PROTO(struct request_queue *q, struct bio *bio, int rw), + + TP_ARGS(q, bio, rw) +); + +/** + * block_plug - keep operations requests in request queue + * @q: request queue to plug + * + * Plug the request queue @q. Do not allow block operation requests + * to be sent to the device driver. Instead, accumulate requests in + * the queue to improve throughput performance of the block device. + */ +TRACE_EVENT(block_plug, + + TP_PROTO(struct request_queue *q), + + TP_ARGS(q), + + TP_STRUCT__entry( + __array( char, comm, TASK_COMM_LEN ) + ), + + TP_fast_assign( + memcpy(__entry->comm, current->comm, TASK_COMM_LEN); + ), + + TP_printk("[%s]", __entry->comm) +); + +DECLARE_EVENT_CLASS(block_unplug, + + TP_PROTO(struct request_queue *q, unsigned int depth, bool explicit), + + TP_ARGS(q, depth, explicit), + + TP_STRUCT__entry( + __field( int, nr_rq ) + __array( char, comm, TASK_COMM_LEN ) + ), + + TP_fast_assign( + __entry->nr_rq = depth; + memcpy(__entry->comm, current->comm, TASK_COMM_LEN); + ), + + TP_printk("[%s] %d", __entry->comm, __entry->nr_rq) +); + +/** + * block_unplug - release of operations requests in request queue + * @q: request queue to unplug + * @depth: number of requests just added to the queue + * @explicit: whether this was an explicit unplug, or one from schedule() + * + * Unplug request queue @q because device driver is scheduled to work + * on elements in the request queue. + */ +DEFINE_EVENT(block_unplug, block_unplug, + + TP_PROTO(struct request_queue *q, unsigned int depth, bool explicit), + + TP_ARGS(q, depth, explicit) +); + +/** + * block_split - split a single bio struct into two bio structs + * @q: queue containing the bio + * @bio: block operation being split + * @new_sector: The starting sector for the new bio + * + * The bio request @bio in request queue @q needs to be split into two + * bio requests. The newly created @bio request starts at + * @new_sector. This split may be required due to hardware limitation + * such as operation crossing device boundaries in a RAID system. + */ +TRACE_EVENT(block_split, + + TP_PROTO(struct request_queue *q, struct bio *bio, + unsigned int new_sector), + + TP_ARGS(q, bio, new_sector), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( sector_t, sector ) + __field( sector_t, new_sector ) + __array( char, rwbs, RWBS_LEN ) + __array( char, comm, TASK_COMM_LEN ) + ), + + TP_fast_assign( + __entry->dev = bio->bi_bdev->bd_dev; + __entry->sector = bio->bi_sector; + __entry->new_sector = new_sector; + blk_fill_rwbs(__entry->rwbs, bio->bi_rw, bio->bi_size); + memcpy(__entry->comm, current->comm, TASK_COMM_LEN); + ), + + TP_printk("%d,%d %s %llu / %llu [%s]", + MAJOR(__entry->dev), MINOR(__entry->dev), __entry->rwbs, + (unsigned long long)__entry->sector, + (unsigned long long)__entry->new_sector, + __entry->comm) +); + +/** + * block_bio_remap - map request for a logical device to the raw device + * @q: queue holding the operation + * @bio: revised operation + * @dev: device for the operation + * @from: original sector for the operation + * + * An operation for a logical device has been mapped to the + * raw block device. + */ +TRACE_EVENT(block_bio_remap, + + TP_PROTO(struct request_queue *q, struct bio *bio, dev_t dev, + sector_t from), + + TP_ARGS(q, bio, dev, from), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( sector_t, sector ) + __field( unsigned int, nr_sector ) + __field( dev_t, old_dev ) + __field( sector_t, old_sector ) + __array( char, rwbs, RWBS_LEN) + ), + + TP_fast_assign( + __entry->dev = bio->bi_bdev->bd_dev; + __entry->sector = bio->bi_sector; + __entry->nr_sector = bio->bi_size >> 9; + __entry->old_dev = dev; + __entry->old_sector = from; + blk_fill_rwbs(__entry->rwbs, bio->bi_rw, bio->bi_size); + ), + + TP_printk("%d,%d %s %llu + %u <- (%d,%d) %llu", + MAJOR(__entry->dev), MINOR(__entry->dev), __entry->rwbs, + (unsigned long long)__entry->sector, + __entry->nr_sector, + MAJOR(__entry->old_dev), MINOR(__entry->old_dev), + (unsigned long long)__entry->old_sector) +); + +/** + * block_rq_remap - map request for a block operation request + * @q: queue holding the operation + * @rq: block IO operation request + * @dev: device for the operation + * @from: original sector for the operation + * + * The block operation request @rq in @q has been remapped. The block + * operation request @rq holds the current information and @from hold + * the original sector. + */ +TRACE_EVENT(block_rq_remap, + + TP_PROTO(struct request_queue *q, struct request *rq, dev_t dev, + sector_t from), + + TP_ARGS(q, rq, dev, from), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( sector_t, sector ) + __field( unsigned int, nr_sector ) + __field( dev_t, old_dev ) + __field( sector_t, old_sector ) + __array( char, rwbs, RWBS_LEN) + ), + + TP_fast_assign( + __entry->dev = disk_devt(rq->rq_disk); + __entry->sector = blk_rq_pos(rq); + __entry->nr_sector = blk_rq_sectors(rq); + __entry->old_dev = dev; + __entry->old_sector = from; + blk_fill_rwbs(__entry->rwbs, rq->cmd_flags, blk_rq_bytes(rq)); + ), + + TP_printk("%d,%d %s %llu + %u <- (%d,%d) %llu", + MAJOR(__entry->dev), MINOR(__entry->dev), __entry->rwbs, + (unsigned long long)__entry->sector, + __entry->nr_sector, + MAJOR(__entry->old_dev), MINOR(__entry->old_dev), + (unsigned long long)__entry->old_sector) +); + +#endif /* _TRACE_BLOCK_H */ + +/* This part must be outside protection */ +#include + --- linux-3.11.0.orig/ubuntu/lttng/instrumentation/events/mainline/ext3.h +++ linux-3.11.0/ubuntu/lttng/instrumentation/events/mainline/ext3.h @@ -0,0 +1,864 @@ +#undef TRACE_SYSTEM +#define TRACE_SYSTEM ext3 + +#if !defined(_TRACE_EXT3_H) || defined(TRACE_HEADER_MULTI_READ) +#define _TRACE_EXT3_H + +#include + +TRACE_EVENT(ext3_free_inode, + TP_PROTO(struct inode *inode), + + TP_ARGS(inode), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( umode_t, mode ) + __field( uid_t, uid ) + __field( gid_t, gid ) + __field( blkcnt_t, blocks ) + ), + + TP_fast_assign( + __entry->dev = inode->i_sb->s_dev; + __entry->ino = inode->i_ino; + __entry->mode = inode->i_mode; + __entry->uid = i_uid_read(inode); + __entry->gid = i_gid_read(inode); + __entry->blocks = inode->i_blocks; + ), + + TP_printk("dev %d,%d ino %lu mode 0%o uid %u gid %u blocks %lu", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + __entry->mode, __entry->uid, __entry->gid, + (unsigned long) __entry->blocks) +); + +TRACE_EVENT(ext3_request_inode, + TP_PROTO(struct inode *dir, int mode), + + TP_ARGS(dir, mode), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, dir ) + __field( umode_t, mode ) + ), + + TP_fast_assign( + __entry->dev = dir->i_sb->s_dev; + __entry->dir = dir->i_ino; + __entry->mode = mode; + ), + + TP_printk("dev %d,%d dir %lu mode 0%o", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->dir, __entry->mode) +); + +TRACE_EVENT(ext3_allocate_inode, + TP_PROTO(struct inode *inode, struct inode *dir, int mode), + + TP_ARGS(inode, dir, mode), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( ino_t, dir ) + __field( umode_t, mode ) + ), + + TP_fast_assign( + __entry->dev = inode->i_sb->s_dev; + __entry->ino = inode->i_ino; + __entry->dir = dir->i_ino; + __entry->mode = mode; + ), + + TP_printk("dev %d,%d ino %lu dir %lu mode 0%o", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + (unsigned long) __entry->dir, __entry->mode) +); + +TRACE_EVENT(ext3_evict_inode, + TP_PROTO(struct inode *inode), + + TP_ARGS(inode), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( int, nlink ) + ), + + TP_fast_assign( + __entry->dev = inode->i_sb->s_dev; + __entry->ino = inode->i_ino; + __entry->nlink = inode->i_nlink; + ), + + TP_printk("dev %d,%d ino %lu nlink %d", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, __entry->nlink) +); + +TRACE_EVENT(ext3_drop_inode, + TP_PROTO(struct inode *inode, int drop), + + TP_ARGS(inode, drop), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( int, drop ) + ), + + TP_fast_assign( + __entry->dev = inode->i_sb->s_dev; + __entry->ino = inode->i_ino; + __entry->drop = drop; + ), + + TP_printk("dev %d,%d ino %lu drop %d", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, __entry->drop) +); + +TRACE_EVENT(ext3_mark_inode_dirty, + TP_PROTO(struct inode *inode, unsigned long IP), + + TP_ARGS(inode, IP), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field(unsigned long, ip ) + ), + + TP_fast_assign( + __entry->dev = inode->i_sb->s_dev; + __entry->ino = inode->i_ino; + __entry->ip = IP; + ), + + TP_printk("dev %d,%d ino %lu caller %pF", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, (void *)__entry->ip) +); + +TRACE_EVENT(ext3_write_begin, + TP_PROTO(struct inode *inode, loff_t pos, unsigned int len, + unsigned int flags), + + TP_ARGS(inode, pos, len, flags), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( loff_t, pos ) + __field( unsigned int, len ) + __field( unsigned int, flags ) + ), + + TP_fast_assign( + __entry->dev = inode->i_sb->s_dev; + __entry->ino = inode->i_ino; + __entry->pos = pos; + __entry->len = len; + __entry->flags = flags; + ), + + TP_printk("dev %d,%d ino %lu pos %llu len %u flags %u", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + (unsigned long long) __entry->pos, __entry->len, + __entry->flags) +); + +DECLARE_EVENT_CLASS(ext3__write_end, + TP_PROTO(struct inode *inode, loff_t pos, unsigned int len, + unsigned int copied), + + TP_ARGS(inode, pos, len, copied), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( loff_t, pos ) + __field( unsigned int, len ) + __field( unsigned int, copied ) + ), + + TP_fast_assign( + __entry->dev = inode->i_sb->s_dev; + __entry->ino = inode->i_ino; + __entry->pos = pos; + __entry->len = len; + __entry->copied = copied; + ), + + TP_printk("dev %d,%d ino %lu pos %llu len %u copied %u", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + (unsigned long long) __entry->pos, __entry->len, + __entry->copied) +); + +DEFINE_EVENT(ext3__write_end, ext3_ordered_write_end, + + TP_PROTO(struct inode *inode, loff_t pos, unsigned int len, + unsigned int copied), + + TP_ARGS(inode, pos, len, copied) +); + +DEFINE_EVENT(ext3__write_end, ext3_writeback_write_end, + + TP_PROTO(struct inode *inode, loff_t pos, unsigned int len, + unsigned int copied), + + TP_ARGS(inode, pos, len, copied) +); + +DEFINE_EVENT(ext3__write_end, ext3_journalled_write_end, + + TP_PROTO(struct inode *inode, loff_t pos, unsigned int len, + unsigned int copied), + + TP_ARGS(inode, pos, len, copied) +); + +DECLARE_EVENT_CLASS(ext3__page_op, + TP_PROTO(struct page *page), + + TP_ARGS(page), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( pgoff_t, index ) + + ), + + TP_fast_assign( + __entry->index = page->index; + __entry->ino = page->mapping->host->i_ino; + __entry->dev = page->mapping->host->i_sb->s_dev; + ), + + TP_printk("dev %d,%d ino %lu page_index %lu", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, __entry->index) +); + +DEFINE_EVENT(ext3__page_op, ext3_ordered_writepage, + + TP_PROTO(struct page *page), + + TP_ARGS(page) +); + +DEFINE_EVENT(ext3__page_op, ext3_writeback_writepage, + + TP_PROTO(struct page *page), + + TP_ARGS(page) +); + +DEFINE_EVENT(ext3__page_op, ext3_journalled_writepage, + + TP_PROTO(struct page *page), + + TP_ARGS(page) +); + +DEFINE_EVENT(ext3__page_op, ext3_readpage, + + TP_PROTO(struct page *page), + + TP_ARGS(page) +); + +DEFINE_EVENT(ext3__page_op, ext3_releasepage, + + TP_PROTO(struct page *page), + + TP_ARGS(page) +); + +TRACE_EVENT(ext3_invalidatepage, + TP_PROTO(struct page *page, unsigned long offset), + + TP_ARGS(page, offset), + + TP_STRUCT__entry( + __field( pgoff_t, index ) + __field( unsigned long, offset ) + __field( ino_t, ino ) + __field( dev_t, dev ) + + ), + + TP_fast_assign( + __entry->index = page->index; + __entry->offset = offset; + __entry->ino = page->mapping->host->i_ino; + __entry->dev = page->mapping->host->i_sb->s_dev; + ), + + TP_printk("dev %d,%d ino %lu page_index %lu offset %lu", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + __entry->index, __entry->offset) +); + +TRACE_EVENT(ext3_discard_blocks, + TP_PROTO(struct super_block *sb, unsigned long blk, + unsigned long count), + + TP_ARGS(sb, blk, count), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( unsigned long, blk ) + __field( unsigned long, count ) + + ), + + TP_fast_assign( + __entry->dev = sb->s_dev; + __entry->blk = blk; + __entry->count = count; + ), + + TP_printk("dev %d,%d blk %lu count %lu", + MAJOR(__entry->dev), MINOR(__entry->dev), + __entry->blk, __entry->count) +); + +TRACE_EVENT(ext3_request_blocks, + TP_PROTO(struct inode *inode, unsigned long goal, + unsigned long count), + + TP_ARGS(inode, goal, count), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( unsigned long, count ) + __field( unsigned long, goal ) + ), + + TP_fast_assign( + __entry->dev = inode->i_sb->s_dev; + __entry->ino = inode->i_ino; + __entry->count = count; + __entry->goal = goal; + ), + + TP_printk("dev %d,%d ino %lu count %lu goal %lu ", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + __entry->count, __entry->goal) +); + +TRACE_EVENT(ext3_allocate_blocks, + TP_PROTO(struct inode *inode, unsigned long goal, + unsigned long count, unsigned long block), + + TP_ARGS(inode, goal, count, block), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( unsigned long, block ) + __field( unsigned long, count ) + __field( unsigned long, goal ) + ), + + TP_fast_assign( + __entry->dev = inode->i_sb->s_dev; + __entry->ino = inode->i_ino; + __entry->block = block; + __entry->count = count; + __entry->goal = goal; + ), + + TP_printk("dev %d,%d ino %lu count %lu block %lu goal %lu", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + __entry->count, __entry->block, + __entry->goal) +); + +TRACE_EVENT(ext3_free_blocks, + TP_PROTO(struct inode *inode, unsigned long block, + unsigned long count), + + TP_ARGS(inode, block, count), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( umode_t, mode ) + __field( unsigned long, block ) + __field( unsigned long, count ) + ), + + TP_fast_assign( + __entry->dev = inode->i_sb->s_dev; + __entry->ino = inode->i_ino; + __entry->mode = inode->i_mode; + __entry->block = block; + __entry->count = count; + ), + + TP_printk("dev %d,%d ino %lu mode 0%o block %lu count %lu", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + __entry->mode, __entry->block, __entry->count) +); + +TRACE_EVENT(ext3_sync_file_enter, + TP_PROTO(struct file *file, int datasync), + + TP_ARGS(file, datasync), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( ino_t, parent ) + __field( int, datasync ) + ), + + TP_fast_assign( + struct dentry *dentry = file->f_path.dentry; + + __entry->dev = dentry->d_inode->i_sb->s_dev; + __entry->ino = dentry->d_inode->i_ino; + __entry->datasync = datasync; + __entry->parent = dentry->d_parent->d_inode->i_ino; + ), + + TP_printk("dev %d,%d ino %lu parent %ld datasync %d ", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + (unsigned long) __entry->parent, __entry->datasync) +); + +TRACE_EVENT(ext3_sync_file_exit, + TP_PROTO(struct inode *inode, int ret), + + TP_ARGS(inode, ret), + + TP_STRUCT__entry( + __field( int, ret ) + __field( ino_t, ino ) + __field( dev_t, dev ) + ), + + TP_fast_assign( + __entry->ret = ret; + __entry->ino = inode->i_ino; + __entry->dev = inode->i_sb->s_dev; + ), + + TP_printk("dev %d,%d ino %lu ret %d", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + __entry->ret) +); + +TRACE_EVENT(ext3_sync_fs, + TP_PROTO(struct super_block *sb, int wait), + + TP_ARGS(sb, wait), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( int, wait ) + + ), + + TP_fast_assign( + __entry->dev = sb->s_dev; + __entry->wait = wait; + ), + + TP_printk("dev %d,%d wait %d", + MAJOR(__entry->dev), MINOR(__entry->dev), + __entry->wait) +); + +TRACE_EVENT(ext3_rsv_window_add, + TP_PROTO(struct super_block *sb, + struct ext3_reserve_window_node *rsv_node), + + TP_ARGS(sb, rsv_node), + + TP_STRUCT__entry( + __field( unsigned long, start ) + __field( unsigned long, end ) + __field( dev_t, dev ) + ), + + TP_fast_assign( + __entry->dev = sb->s_dev; + __entry->start = rsv_node->rsv_window._rsv_start; + __entry->end = rsv_node->rsv_window._rsv_end; + ), + + TP_printk("dev %d,%d start %lu end %lu", + MAJOR(__entry->dev), MINOR(__entry->dev), + __entry->start, __entry->end) +); + +TRACE_EVENT(ext3_discard_reservation, + TP_PROTO(struct inode *inode, + struct ext3_reserve_window_node *rsv_node), + + TP_ARGS(inode, rsv_node), + + TP_STRUCT__entry( + __field( unsigned long, start ) + __field( unsigned long, end ) + __field( ino_t, ino ) + __field( dev_t, dev ) + ), + + TP_fast_assign( + __entry->start = rsv_node->rsv_window._rsv_start; + __entry->end = rsv_node->rsv_window._rsv_end; + __entry->ino = inode->i_ino; + __entry->dev = inode->i_sb->s_dev; + ), + + TP_printk("dev %d,%d ino %lu start %lu end %lu", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long)__entry->ino, __entry->start, + __entry->end) +); + +TRACE_EVENT(ext3_alloc_new_reservation, + TP_PROTO(struct super_block *sb, unsigned long goal), + + TP_ARGS(sb, goal), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( unsigned long, goal ) + ), + + TP_fast_assign( + __entry->dev = sb->s_dev; + __entry->goal = goal; + ), + + TP_printk("dev %d,%d goal %lu", + MAJOR(__entry->dev), MINOR(__entry->dev), + __entry->goal) +); + +TRACE_EVENT(ext3_reserved, + TP_PROTO(struct super_block *sb, unsigned long block, + struct ext3_reserve_window_node *rsv_node), + + TP_ARGS(sb, block, rsv_node), + + TP_STRUCT__entry( + __field( unsigned long, block ) + __field( unsigned long, start ) + __field( unsigned long, end ) + __field( dev_t, dev ) + ), + + TP_fast_assign( + __entry->block = block; + __entry->start = rsv_node->rsv_window._rsv_start; + __entry->end = rsv_node->rsv_window._rsv_end; + __entry->dev = sb->s_dev; + ), + + TP_printk("dev %d,%d block %lu, start %lu end %lu", + MAJOR(__entry->dev), MINOR(__entry->dev), + __entry->block, __entry->start, __entry->end) +); + +TRACE_EVENT(ext3_forget, + TP_PROTO(struct inode *inode, int is_metadata, unsigned long block), + + TP_ARGS(inode, is_metadata, block), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( umode_t, mode ) + __field( int, is_metadata ) + __field( unsigned long, block ) + ), + + TP_fast_assign( + __entry->dev = inode->i_sb->s_dev; + __entry->ino = inode->i_ino; + __entry->mode = inode->i_mode; + __entry->is_metadata = is_metadata; + __entry->block = block; + ), + + TP_printk("dev %d,%d ino %lu mode 0%o is_metadata %d block %lu", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + __entry->mode, __entry->is_metadata, __entry->block) +); + +TRACE_EVENT(ext3_read_block_bitmap, + TP_PROTO(struct super_block *sb, unsigned int group), + + TP_ARGS(sb, group), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( __u32, group ) + + ), + + TP_fast_assign( + __entry->dev = sb->s_dev; + __entry->group = group; + ), + + TP_printk("dev %d,%d group %u", + MAJOR(__entry->dev), MINOR(__entry->dev), + __entry->group) +); + +TRACE_EVENT(ext3_direct_IO_enter, + TP_PROTO(struct inode *inode, loff_t offset, unsigned long len, int rw), + + TP_ARGS(inode, offset, len, rw), + + TP_STRUCT__entry( + __field( ino_t, ino ) + __field( dev_t, dev ) + __field( loff_t, pos ) + __field( unsigned long, len ) + __field( int, rw ) + ), + + TP_fast_assign( + __entry->ino = inode->i_ino; + __entry->dev = inode->i_sb->s_dev; + __entry->pos = offset; + __entry->len = len; + __entry->rw = rw; + ), + + TP_printk("dev %d,%d ino %lu pos %llu len %lu rw %d", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + (unsigned long long) __entry->pos, __entry->len, + __entry->rw) +); + +TRACE_EVENT(ext3_direct_IO_exit, + TP_PROTO(struct inode *inode, loff_t offset, unsigned long len, + int rw, int ret), + + TP_ARGS(inode, offset, len, rw, ret), + + TP_STRUCT__entry( + __field( ino_t, ino ) + __field( dev_t, dev ) + __field( loff_t, pos ) + __field( unsigned long, len ) + __field( int, rw ) + __field( int, ret ) + ), + + TP_fast_assign( + __entry->ino = inode->i_ino; + __entry->dev = inode->i_sb->s_dev; + __entry->pos = offset; + __entry->len = len; + __entry->rw = rw; + __entry->ret = ret; + ), + + TP_printk("dev %d,%d ino %lu pos %llu len %lu rw %d ret %d", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + (unsigned long long) __entry->pos, __entry->len, + __entry->rw, __entry->ret) +); + +TRACE_EVENT(ext3_unlink_enter, + TP_PROTO(struct inode *parent, struct dentry *dentry), + + TP_ARGS(parent, dentry), + + TP_STRUCT__entry( + __field( ino_t, parent ) + __field( ino_t, ino ) + __field( loff_t, size ) + __field( dev_t, dev ) + ), + + TP_fast_assign( + __entry->parent = parent->i_ino; + __entry->ino = dentry->d_inode->i_ino; + __entry->size = dentry->d_inode->i_size; + __entry->dev = dentry->d_inode->i_sb->s_dev; + ), + + TP_printk("dev %d,%d ino %lu size %lld parent %ld", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + (unsigned long long)__entry->size, + (unsigned long) __entry->parent) +); + +TRACE_EVENT(ext3_unlink_exit, + TP_PROTO(struct dentry *dentry, int ret), + + TP_ARGS(dentry, ret), + + TP_STRUCT__entry( + __field( ino_t, ino ) + __field( dev_t, dev ) + __field( int, ret ) + ), + + TP_fast_assign( + __entry->ino = dentry->d_inode->i_ino; + __entry->dev = dentry->d_inode->i_sb->s_dev; + __entry->ret = ret; + ), + + TP_printk("dev %d,%d ino %lu ret %d", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + __entry->ret) +); + +DECLARE_EVENT_CLASS(ext3__truncate, + TP_PROTO(struct inode *inode), + + TP_ARGS(inode), + + TP_STRUCT__entry( + __field( ino_t, ino ) + __field( dev_t, dev ) + __field( blkcnt_t, blocks ) + ), + + TP_fast_assign( + __entry->ino = inode->i_ino; + __entry->dev = inode->i_sb->s_dev; + __entry->blocks = inode->i_blocks; + ), + + TP_printk("dev %d,%d ino %lu blocks %lu", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, (unsigned long) __entry->blocks) +); + +DEFINE_EVENT(ext3__truncate, ext3_truncate_enter, + + TP_PROTO(struct inode *inode), + + TP_ARGS(inode) +); + +DEFINE_EVENT(ext3__truncate, ext3_truncate_exit, + + TP_PROTO(struct inode *inode), + + TP_ARGS(inode) +); + +TRACE_EVENT(ext3_get_blocks_enter, + TP_PROTO(struct inode *inode, unsigned long lblk, + unsigned long len, int create), + + TP_ARGS(inode, lblk, len, create), + + TP_STRUCT__entry( + __field( ino_t, ino ) + __field( dev_t, dev ) + __field( unsigned long, lblk ) + __field( unsigned long, len ) + __field( int, create ) + ), + + TP_fast_assign( + __entry->ino = inode->i_ino; + __entry->dev = inode->i_sb->s_dev; + __entry->lblk = lblk; + __entry->len = len; + __entry->create = create; + ), + + TP_printk("dev %d,%d ino %lu lblk %lu len %lu create %u", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + __entry->lblk, __entry->len, __entry->create) +); + +TRACE_EVENT(ext3_get_blocks_exit, + TP_PROTO(struct inode *inode, unsigned long lblk, + unsigned long pblk, unsigned long len, int ret), + + TP_ARGS(inode, lblk, pblk, len, ret), + + TP_STRUCT__entry( + __field( ino_t, ino ) + __field( dev_t, dev ) + __field( unsigned long, lblk ) + __field( unsigned long, pblk ) + __field( unsigned long, len ) + __field( int, ret ) + ), + + TP_fast_assign( + __entry->ino = inode->i_ino; + __entry->dev = inode->i_sb->s_dev; + __entry->lblk = lblk; + __entry->pblk = pblk; + __entry->len = len; + __entry->ret = ret; + ), + + TP_printk("dev %d,%d ino %lu lblk %lu pblk %lu len %lu ret %d", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + __entry->lblk, __entry->pblk, + __entry->len, __entry->ret) +); + +TRACE_EVENT(ext3_load_inode, + TP_PROTO(struct inode *inode), + + TP_ARGS(inode), + + TP_STRUCT__entry( + __field( ino_t, ino ) + __field( dev_t, dev ) + ), + + TP_fast_assign( + __entry->ino = inode->i_ino; + __entry->dev = inode->i_sb->s_dev; + ), + + TP_printk("dev %d,%d ino %lu", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino) +); + +#endif /* _TRACE_EXT3_H */ + +/* This part must be outside protection */ +#include --- linux-3.11.0.orig/ubuntu/lttng/instrumentation/events/mainline/net.h +++ linux-3.11.0/ubuntu/lttng/instrumentation/events/mainline/net.h @@ -0,0 +1,84 @@ +#undef TRACE_SYSTEM +#define TRACE_SYSTEM net + +#if !defined(_TRACE_NET_H) || defined(TRACE_HEADER_MULTI_READ) +#define _TRACE_NET_H + +#include +#include +#include +#include + +TRACE_EVENT(net_dev_xmit, + + TP_PROTO(struct sk_buff *skb, + int rc, + struct net_device *dev, + unsigned int skb_len), + + TP_ARGS(skb, rc, dev, skb_len), + + TP_STRUCT__entry( + __field( void *, skbaddr ) + __field( unsigned int, len ) + __field( int, rc ) + __string( name, dev->name ) + ), + + TP_fast_assign( + __entry->skbaddr = skb; + __entry->len = skb_len; + __entry->rc = rc; + __assign_str(name, dev->name); + ), + + TP_printk("dev=%s skbaddr=%p len=%u rc=%d", + __get_str(name), __entry->skbaddr, __entry->len, __entry->rc) +); + +DECLARE_EVENT_CLASS(net_dev_template, + + TP_PROTO(struct sk_buff *skb), + + TP_ARGS(skb), + + TP_STRUCT__entry( + __field( void *, skbaddr ) + __field( unsigned int, len ) + __string( name, skb->dev->name ) + ), + + TP_fast_assign( + __entry->skbaddr = skb; + __entry->len = skb->len; + __assign_str(name, skb->dev->name); + ), + + TP_printk("dev=%s skbaddr=%p len=%u", + __get_str(name), __entry->skbaddr, __entry->len) +) + +DEFINE_EVENT(net_dev_template, net_dev_queue, + + TP_PROTO(struct sk_buff *skb), + + TP_ARGS(skb) +); + +DEFINE_EVENT(net_dev_template, netif_receive_skb, + + TP_PROTO(struct sk_buff *skb), + + TP_ARGS(skb) +); + +DEFINE_EVENT(net_dev_template, netif_rx, + + TP_PROTO(struct sk_buff *skb), + + TP_ARGS(skb) +); +#endif /* _TRACE_NET_H */ + +/* This part must be outside protection */ +#include --- linux-3.11.0.orig/ubuntu/lttng/instrumentation/events/mainline/writeback.h +++ linux-3.11.0/ubuntu/lttng/instrumentation/events/mainline/writeback.h @@ -0,0 +1,492 @@ +#undef TRACE_SYSTEM +#define TRACE_SYSTEM writeback + +#if !defined(_TRACE_WRITEBACK_H) || defined(TRACE_HEADER_MULTI_READ) +#define _TRACE_WRITEBACK_H + +#include +#include + +#define show_inode_state(state) \ + __print_flags(state, "|", \ + {I_DIRTY_SYNC, "I_DIRTY_SYNC"}, \ + {I_DIRTY_DATASYNC, "I_DIRTY_DATASYNC"}, \ + {I_DIRTY_PAGES, "I_DIRTY_PAGES"}, \ + {I_NEW, "I_NEW"}, \ + {I_WILL_FREE, "I_WILL_FREE"}, \ + {I_FREEING, "I_FREEING"}, \ + {I_CLEAR, "I_CLEAR"}, \ + {I_SYNC, "I_SYNC"}, \ + {I_REFERENCED, "I_REFERENCED"} \ + ) + +#define WB_WORK_REASON \ + {WB_REASON_BACKGROUND, "background"}, \ + {WB_REASON_TRY_TO_FREE_PAGES, "try_to_free_pages"}, \ + {WB_REASON_SYNC, "sync"}, \ + {WB_REASON_PERIODIC, "periodic"}, \ + {WB_REASON_LAPTOP_TIMER, "laptop_timer"}, \ + {WB_REASON_FREE_MORE_MEM, "free_more_memory"}, \ + {WB_REASON_FS_FREE_SPACE, "fs_free_space"}, \ + {WB_REASON_FORKER_THREAD, "forker_thread"} + +struct wb_writeback_work; + +DECLARE_EVENT_CLASS(writeback_work_class, + TP_PROTO(struct backing_dev_info *bdi, struct wb_writeback_work *work), + TP_ARGS(bdi, work), + TP_STRUCT__entry( + __array(char, name, 32) + __field(long, nr_pages) + __field(dev_t, sb_dev) + __field(int, sync_mode) + __field(int, for_kupdate) + __field(int, range_cyclic) + __field(int, for_background) + __field(int, reason) + ), + TP_fast_assign( + struct device *dev = bdi->dev; + if (!dev) + dev = default_backing_dev_info.dev; + strncpy(__entry->name, dev_name(dev), 32); + __entry->nr_pages = work->nr_pages; + __entry->sb_dev = work->sb ? work->sb->s_dev : 0; + __entry->sync_mode = work->sync_mode; + __entry->for_kupdate = work->for_kupdate; + __entry->range_cyclic = work->range_cyclic; + __entry->for_background = work->for_background; + __entry->reason = work->reason; + ), + TP_printk("bdi %s: sb_dev %d:%d nr_pages=%ld sync_mode=%d " + "kupdate=%d range_cyclic=%d background=%d reason=%s", + __entry->name, + MAJOR(__entry->sb_dev), MINOR(__entry->sb_dev), + __entry->nr_pages, + __entry->sync_mode, + __entry->for_kupdate, + __entry->range_cyclic, + __entry->for_background, + __print_symbolic(__entry->reason, WB_WORK_REASON) + ) +); +#define DEFINE_WRITEBACK_WORK_EVENT(name) \ +DEFINE_EVENT(writeback_work_class, name, \ + TP_PROTO(struct backing_dev_info *bdi, struct wb_writeback_work *work), \ + TP_ARGS(bdi, work)) +DEFINE_WRITEBACK_WORK_EVENT(writeback_nothread); +DEFINE_WRITEBACK_WORK_EVENT(writeback_queue); +DEFINE_WRITEBACK_WORK_EVENT(writeback_exec); +DEFINE_WRITEBACK_WORK_EVENT(writeback_start); +DEFINE_WRITEBACK_WORK_EVENT(writeback_written); +DEFINE_WRITEBACK_WORK_EVENT(writeback_wait); + +TRACE_EVENT(writeback_pages_written, + TP_PROTO(long pages_written), + TP_ARGS(pages_written), + TP_STRUCT__entry( + __field(long, pages) + ), + TP_fast_assign( + __entry->pages = pages_written; + ), + TP_printk("%ld", __entry->pages) +); + +DECLARE_EVENT_CLASS(writeback_class, + TP_PROTO(struct backing_dev_info *bdi), + TP_ARGS(bdi), + TP_STRUCT__entry( + __array(char, name, 32) + ), + TP_fast_assign( + strncpy(__entry->name, dev_name(bdi->dev), 32); + ), + TP_printk("bdi %s", + __entry->name + ) +); +#define DEFINE_WRITEBACK_EVENT(name) \ +DEFINE_EVENT(writeback_class, name, \ + TP_PROTO(struct backing_dev_info *bdi), \ + TP_ARGS(bdi)) + +DEFINE_WRITEBACK_EVENT(writeback_nowork); +DEFINE_WRITEBACK_EVENT(writeback_wake_background); +DEFINE_WRITEBACK_EVENT(writeback_wake_thread); +DEFINE_WRITEBACK_EVENT(writeback_wake_forker_thread); +DEFINE_WRITEBACK_EVENT(writeback_bdi_register); +DEFINE_WRITEBACK_EVENT(writeback_bdi_unregister); +DEFINE_WRITEBACK_EVENT(writeback_thread_start); +DEFINE_WRITEBACK_EVENT(writeback_thread_stop); + +DECLARE_EVENT_CLASS(wbc_class, + TP_PROTO(struct writeback_control *wbc, struct backing_dev_info *bdi), + TP_ARGS(wbc, bdi), + TP_STRUCT__entry( + __array(char, name, 32) + __field(long, nr_to_write) + __field(long, pages_skipped) + __field(int, sync_mode) + __field(int, for_kupdate) + __field(int, for_background) + __field(int, for_reclaim) + __field(int, range_cyclic) + __field(long, range_start) + __field(long, range_end) + ), + + TP_fast_assign( + strncpy(__entry->name, dev_name(bdi->dev), 32); + __entry->nr_to_write = wbc->nr_to_write; + __entry->pages_skipped = wbc->pages_skipped; + __entry->sync_mode = wbc->sync_mode; + __entry->for_kupdate = wbc->for_kupdate; + __entry->for_background = wbc->for_background; + __entry->for_reclaim = wbc->for_reclaim; + __entry->range_cyclic = wbc->range_cyclic; + __entry->range_start = (long)wbc->range_start; + __entry->range_end = (long)wbc->range_end; + ), + + TP_printk("bdi %s: towrt=%ld skip=%ld mode=%d kupd=%d " + "bgrd=%d reclm=%d cyclic=%d " + "start=0x%lx end=0x%lx", + __entry->name, + __entry->nr_to_write, + __entry->pages_skipped, + __entry->sync_mode, + __entry->for_kupdate, + __entry->for_background, + __entry->for_reclaim, + __entry->range_cyclic, + __entry->range_start, + __entry->range_end) +) + +#define DEFINE_WBC_EVENT(name) \ +DEFINE_EVENT(wbc_class, name, \ + TP_PROTO(struct writeback_control *wbc, struct backing_dev_info *bdi), \ + TP_ARGS(wbc, bdi)) +DEFINE_WBC_EVENT(wbc_writepage); + +TRACE_EVENT(writeback_queue_io, + TP_PROTO(struct bdi_writeback *wb, + struct wb_writeback_work *work, + int moved), + TP_ARGS(wb, work, moved), + TP_STRUCT__entry( + __array(char, name, 32) + __field(unsigned long, older) + __field(long, age) + __field(int, moved) + __field(int, reason) + ), + TP_fast_assign( + unsigned long *older_than_this = work->older_than_this; + strncpy(__entry->name, dev_name(wb->bdi->dev), 32); + __entry->older = older_than_this ? *older_than_this : 0; + __entry->age = older_than_this ? + (jiffies - *older_than_this) * 1000 / HZ : -1; + __entry->moved = moved; + __entry->reason = work->reason; + ), + TP_printk("bdi %s: older=%lu age=%ld enqueue=%d reason=%s", + __entry->name, + __entry->older, /* older_than_this in jiffies */ + __entry->age, /* older_than_this in relative milliseconds */ + __entry->moved, + __print_symbolic(__entry->reason, WB_WORK_REASON) + ) +); + +TRACE_EVENT(global_dirty_state, + + TP_PROTO(unsigned long background_thresh, + unsigned long dirty_thresh + ), + + TP_ARGS(background_thresh, + dirty_thresh + ), + + TP_STRUCT__entry( + __field(unsigned long, nr_dirty) + __field(unsigned long, nr_writeback) + __field(unsigned long, nr_unstable) + __field(unsigned long, background_thresh) + __field(unsigned long, dirty_thresh) + __field(unsigned long, dirty_limit) + __field(unsigned long, nr_dirtied) + __field(unsigned long, nr_written) + ), + + TP_fast_assign( + __entry->nr_dirty = global_page_state(NR_FILE_DIRTY); + __entry->nr_writeback = global_page_state(NR_WRITEBACK); + __entry->nr_unstable = global_page_state(NR_UNSTABLE_NFS); + __entry->nr_dirtied = global_page_state(NR_DIRTIED); + __entry->nr_written = global_page_state(NR_WRITTEN); + __entry->background_thresh = background_thresh; + __entry->dirty_thresh = dirty_thresh; + __entry->dirty_limit = global_dirty_limit; + ), + + TP_printk("dirty=%lu writeback=%lu unstable=%lu " + "bg_thresh=%lu thresh=%lu limit=%lu " + "dirtied=%lu written=%lu", + __entry->nr_dirty, + __entry->nr_writeback, + __entry->nr_unstable, + __entry->background_thresh, + __entry->dirty_thresh, + __entry->dirty_limit, + __entry->nr_dirtied, + __entry->nr_written + ) +); + +#define KBps(x) ((x) << (PAGE_SHIFT - 10)) + +TRACE_EVENT(bdi_dirty_ratelimit, + + TP_PROTO(struct backing_dev_info *bdi, + unsigned long dirty_rate, + unsigned long task_ratelimit), + + TP_ARGS(bdi, dirty_rate, task_ratelimit), + + TP_STRUCT__entry( + __array(char, bdi, 32) + __field(unsigned long, write_bw) + __field(unsigned long, avg_write_bw) + __field(unsigned long, dirty_rate) + __field(unsigned long, dirty_ratelimit) + __field(unsigned long, task_ratelimit) + __field(unsigned long, balanced_dirty_ratelimit) + ), + + TP_fast_assign( + strlcpy(__entry->bdi, dev_name(bdi->dev), 32); + __entry->write_bw = KBps(bdi->write_bandwidth); + __entry->avg_write_bw = KBps(bdi->avg_write_bandwidth); + __entry->dirty_rate = KBps(dirty_rate); + __entry->dirty_ratelimit = KBps(bdi->dirty_ratelimit); + __entry->task_ratelimit = KBps(task_ratelimit); + __entry->balanced_dirty_ratelimit = + KBps(bdi->balanced_dirty_ratelimit); + ), + + TP_printk("bdi %s: " + "write_bw=%lu awrite_bw=%lu dirty_rate=%lu " + "dirty_ratelimit=%lu task_ratelimit=%lu " + "balanced_dirty_ratelimit=%lu", + __entry->bdi, + __entry->write_bw, /* write bandwidth */ + __entry->avg_write_bw, /* avg write bandwidth */ + __entry->dirty_rate, /* bdi dirty rate */ + __entry->dirty_ratelimit, /* base ratelimit */ + __entry->task_ratelimit, /* ratelimit with position control */ + __entry->balanced_dirty_ratelimit /* the balanced ratelimit */ + ) +); + +TRACE_EVENT(balance_dirty_pages, + + TP_PROTO(struct backing_dev_info *bdi, + unsigned long thresh, + unsigned long bg_thresh, + unsigned long dirty, + unsigned long bdi_thresh, + unsigned long bdi_dirty, + unsigned long dirty_ratelimit, + unsigned long task_ratelimit, + unsigned long dirtied, + unsigned long period, + long pause, + unsigned long start_time), + + TP_ARGS(bdi, thresh, bg_thresh, dirty, bdi_thresh, bdi_dirty, + dirty_ratelimit, task_ratelimit, + dirtied, period, pause, start_time), + + TP_STRUCT__entry( + __array( char, bdi, 32) + __field(unsigned long, limit) + __field(unsigned long, setpoint) + __field(unsigned long, dirty) + __field(unsigned long, bdi_setpoint) + __field(unsigned long, bdi_dirty) + __field(unsigned long, dirty_ratelimit) + __field(unsigned long, task_ratelimit) + __field(unsigned int, dirtied) + __field(unsigned int, dirtied_pause) + __field(unsigned long, paused) + __field( long, pause) + __field(unsigned long, period) + __field( long, think) + ), + + TP_fast_assign( + unsigned long freerun = (thresh + bg_thresh) / 2; + strlcpy(__entry->bdi, dev_name(bdi->dev), 32); + + __entry->limit = global_dirty_limit; + __entry->setpoint = (global_dirty_limit + freerun) / 2; + __entry->dirty = dirty; + __entry->bdi_setpoint = __entry->setpoint * + bdi_thresh / (thresh + 1); + __entry->bdi_dirty = bdi_dirty; + __entry->dirty_ratelimit = KBps(dirty_ratelimit); + __entry->task_ratelimit = KBps(task_ratelimit); + __entry->dirtied = dirtied; + __entry->dirtied_pause = current->nr_dirtied_pause; + __entry->think = current->dirty_paused_when == 0 ? 0 : + (long)(jiffies - current->dirty_paused_when) * 1000/HZ; + __entry->period = period * 1000 / HZ; + __entry->pause = pause * 1000 / HZ; + __entry->paused = (jiffies - start_time) * 1000 / HZ; + ), + + + TP_printk("bdi %s: " + "limit=%lu setpoint=%lu dirty=%lu " + "bdi_setpoint=%lu bdi_dirty=%lu " + "dirty_ratelimit=%lu task_ratelimit=%lu " + "dirtied=%u dirtied_pause=%u " + "paused=%lu pause=%ld period=%lu think=%ld", + __entry->bdi, + __entry->limit, + __entry->setpoint, + __entry->dirty, + __entry->bdi_setpoint, + __entry->bdi_dirty, + __entry->dirty_ratelimit, + __entry->task_ratelimit, + __entry->dirtied, + __entry->dirtied_pause, + __entry->paused, /* ms */ + __entry->pause, /* ms */ + __entry->period, /* ms */ + __entry->think /* ms */ + ) +); + +TRACE_EVENT(writeback_sb_inodes_requeue, + + TP_PROTO(struct inode *inode), + TP_ARGS(inode), + + TP_STRUCT__entry( + __array(char, name, 32) + __field(unsigned long, ino) + __field(unsigned long, state) + __field(unsigned long, dirtied_when) + ), + + TP_fast_assign( + strncpy(__entry->name, + dev_name(inode_to_bdi(inode)->dev), 32); + __entry->ino = inode->i_ino; + __entry->state = inode->i_state; + __entry->dirtied_when = inode->dirtied_when; + ), + + TP_printk("bdi %s: ino=%lu state=%s dirtied_when=%lu age=%lu", + __entry->name, + __entry->ino, + show_inode_state(__entry->state), + __entry->dirtied_when, + (jiffies - __entry->dirtied_when) / HZ + ) +); + +DECLARE_EVENT_CLASS(writeback_congest_waited_template, + + TP_PROTO(unsigned int usec_timeout, unsigned int usec_delayed), + + TP_ARGS(usec_timeout, usec_delayed), + + TP_STRUCT__entry( + __field( unsigned int, usec_timeout ) + __field( unsigned int, usec_delayed ) + ), + + TP_fast_assign( + __entry->usec_timeout = usec_timeout; + __entry->usec_delayed = usec_delayed; + ), + + TP_printk("usec_timeout=%u usec_delayed=%u", + __entry->usec_timeout, + __entry->usec_delayed) +); + +DEFINE_EVENT(writeback_congest_waited_template, writeback_congestion_wait, + + TP_PROTO(unsigned int usec_timeout, unsigned int usec_delayed), + + TP_ARGS(usec_timeout, usec_delayed) +); + +DEFINE_EVENT(writeback_congest_waited_template, writeback_wait_iff_congested, + + TP_PROTO(unsigned int usec_timeout, unsigned int usec_delayed), + + TP_ARGS(usec_timeout, usec_delayed) +); + +DECLARE_EVENT_CLASS(writeback_single_inode_template, + + TP_PROTO(struct inode *inode, + struct writeback_control *wbc, + unsigned long nr_to_write + ), + + TP_ARGS(inode, wbc, nr_to_write), + + TP_STRUCT__entry( + __array(char, name, 32) + __field(unsigned long, ino) + __field(unsigned long, state) + __field(unsigned long, dirtied_when) + __field(unsigned long, writeback_index) + __field(long, nr_to_write) + __field(unsigned long, wrote) + ), + + TP_fast_assign( + strncpy(__entry->name, + dev_name(inode_to_bdi(inode)->dev), 32); + __entry->ino = inode->i_ino; + __entry->state = inode->i_state; + __entry->dirtied_when = inode->dirtied_when; + __entry->writeback_index = inode->i_mapping->writeback_index; + __entry->nr_to_write = nr_to_write; + __entry->wrote = nr_to_write - wbc->nr_to_write; + ), + + TP_printk("bdi %s: ino=%lu state=%s dirtied_when=%lu age=%lu " + "index=%lu to_write=%ld wrote=%lu", + __entry->name, + __entry->ino, + show_inode_state(__entry->state), + __entry->dirtied_when, + (jiffies - __entry->dirtied_when) / HZ, + __entry->writeback_index, + __entry->nr_to_write, + __entry->wrote + ) +); + +DEFINE_EVENT(writeback_single_inode_template, writeback_single_inode, + TP_PROTO(struct inode *inode, + struct writeback_control *wbc, + unsigned long nr_to_write), + TP_ARGS(inode, wbc, nr_to_write) +); + +#endif /* _TRACE_WRITEBACK_H */ + +/* This part must be outside protection */ +#include --- linux-3.11.0.orig/ubuntu/lttng/instrumentation/events/mainline/sunrpc.h +++ linux-3.11.0/ubuntu/lttng/instrumentation/events/mainline/sunrpc.h @@ -0,0 +1,177 @@ +#undef TRACE_SYSTEM +#define TRACE_SYSTEM sunrpc + +#if !defined(_TRACE_SUNRPC_H) || defined(TRACE_HEADER_MULTI_READ) +#define _TRACE_SUNRPC_H + +#include +#include +#include + +DECLARE_EVENT_CLASS(rpc_task_status, + + TP_PROTO(struct rpc_task *task), + + TP_ARGS(task), + + TP_STRUCT__entry( + __field(const struct rpc_task *, task) + __field(const struct rpc_clnt *, clnt) + __field(int, status) + ), + + TP_fast_assign( + __entry->task = task; + __entry->clnt = task->tk_client; + __entry->status = task->tk_status; + ), + + TP_printk("task:%p@%p, status %d",__entry->task, __entry->clnt, __entry->status) +); + +DEFINE_EVENT(rpc_task_status, rpc_call_status, + TP_PROTO(struct rpc_task *task), + + TP_ARGS(task) +); + +DEFINE_EVENT(rpc_task_status, rpc_bind_status, + TP_PROTO(struct rpc_task *task), + + TP_ARGS(task) +); + +TRACE_EVENT(rpc_connect_status, + TP_PROTO(struct rpc_task *task, int status), + + TP_ARGS(task, status), + + TP_STRUCT__entry( + __field(const struct rpc_task *, task) + __field(const struct rpc_clnt *, clnt) + __field(int, status) + ), + + TP_fast_assign( + __entry->task = task; + __entry->clnt = task->tk_client; + __entry->status = status; + ), + + TP_printk("task:%p@%p, status %d",__entry->task, __entry->clnt, __entry->status) +); + +DECLARE_EVENT_CLASS(rpc_task_running, + + TP_PROTO(const struct rpc_clnt *clnt, const struct rpc_task *task, const void *action), + + TP_ARGS(clnt, task, action), + + TP_STRUCT__entry( + __field(const struct rpc_clnt *, clnt) + __field(const struct rpc_task *, task) + __field(const void *, action) + __field(unsigned long, runstate) + __field(int, status) + __field(unsigned short, flags) + ), + + TP_fast_assign( + __entry->clnt = clnt; + __entry->task = task; + __entry->action = action; + __entry->runstate = task->tk_runstate; + __entry->status = task->tk_status; + __entry->flags = task->tk_flags; + ), + + TP_printk("task:%p@%p flags=%4.4x state=%4.4lx status=%d action=%pf", + __entry->task, + __entry->clnt, + __entry->flags, + __entry->runstate, + __entry->status, + __entry->action + ) +); + +DEFINE_EVENT(rpc_task_running, rpc_task_begin, + + TP_PROTO(const struct rpc_clnt *clnt, const struct rpc_task *task, const void *action), + + TP_ARGS(clnt, task, action) + +); + +DEFINE_EVENT(rpc_task_running, rpc_task_run_action, + + TP_PROTO(const struct rpc_clnt *clnt, const struct rpc_task *task, const void *action), + + TP_ARGS(clnt, task, action) + +); + +DEFINE_EVENT(rpc_task_running, rpc_task_complete, + + TP_PROTO(const struct rpc_clnt *clnt, const struct rpc_task *task, const void *action), + + TP_ARGS(clnt, task, action) + +); + +DECLARE_EVENT_CLASS(rpc_task_queued, + + TP_PROTO(const struct rpc_clnt *clnt, const struct rpc_task *task, const struct rpc_wait_queue *q), + + TP_ARGS(clnt, task, q), + + TP_STRUCT__entry( + __field(const struct rpc_clnt *, clnt) + __field(const struct rpc_task *, task) + __field(unsigned long, timeout) + __field(unsigned long, runstate) + __field(int, status) + __field(unsigned short, flags) + __string(q_name, rpc_qname(q)) + ), + + TP_fast_assign( + __entry->clnt = clnt; + __entry->task = task; + __entry->timeout = task->tk_timeout; + __entry->runstate = task->tk_runstate; + __entry->status = task->tk_status; + __entry->flags = task->tk_flags; + __assign_str(q_name, rpc_qname(q)); + ), + + TP_printk("task:%p@%p flags=%4.4x state=%4.4lx status=%d timeout=%lu queue=%s", + __entry->task, + __entry->clnt, + __entry->flags, + __entry->runstate, + __entry->status, + __entry->timeout, + __get_str(q_name) + ) +); + +DEFINE_EVENT(rpc_task_queued, rpc_task_sleep, + + TP_PROTO(const struct rpc_clnt *clnt, const struct rpc_task *task, const struct rpc_wait_queue *q), + + TP_ARGS(clnt, task, q) + +); + +DEFINE_EVENT(rpc_task_queued, rpc_task_wakeup, + + TP_PROTO(const struct rpc_clnt *clnt, const struct rpc_task *task, const struct rpc_wait_queue *q), + + TP_ARGS(clnt, task, q) + +); + +#endif /* _TRACE_SUNRPC_H */ + +#include --- linux-3.11.0.orig/ubuntu/lttng/instrumentation/events/mainline/timer.h +++ linux-3.11.0/ubuntu/lttng/instrumentation/events/mainline/timer.h @@ -0,0 +1,329 @@ +#undef TRACE_SYSTEM +#define TRACE_SYSTEM timer + +#if !defined(_TRACE_TIMER_H) || defined(TRACE_HEADER_MULTI_READ) +#define _TRACE_TIMER_H + +#include +#include +#include + +DECLARE_EVENT_CLASS(timer_class, + + TP_PROTO(struct timer_list *timer), + + TP_ARGS(timer), + + TP_STRUCT__entry( + __field( void *, timer ) + ), + + TP_fast_assign( + __entry->timer = timer; + ), + + TP_printk("timer=%p", __entry->timer) +); + +/** + * timer_init - called when the timer is initialized + * @timer: pointer to struct timer_list + */ +DEFINE_EVENT(timer_class, timer_init, + + TP_PROTO(struct timer_list *timer), + + TP_ARGS(timer) +); + +/** + * timer_start - called when the timer is started + * @timer: pointer to struct timer_list + * @expires: the timers expiry time + */ +TRACE_EVENT(timer_start, + + TP_PROTO(struct timer_list *timer, unsigned long expires), + + TP_ARGS(timer, expires), + + TP_STRUCT__entry( + __field( void *, timer ) + __field( void *, function ) + __field( unsigned long, expires ) + __field( unsigned long, now ) + ), + + TP_fast_assign( + __entry->timer = timer; + __entry->function = timer->function; + __entry->expires = expires; + __entry->now = jiffies; + ), + + TP_printk("timer=%p function=%pf expires=%lu [timeout=%ld]", + __entry->timer, __entry->function, __entry->expires, + (long)__entry->expires - __entry->now) +); + +/** + * timer_expire_entry - called immediately before the timer callback + * @timer: pointer to struct timer_list + * + * Allows to determine the timer latency. + */ +TRACE_EVENT(timer_expire_entry, + + TP_PROTO(struct timer_list *timer), + + TP_ARGS(timer), + + TP_STRUCT__entry( + __field( void *, timer ) + __field( unsigned long, now ) + __field( void *, function) + ), + + TP_fast_assign( + __entry->timer = timer; + __entry->now = jiffies; + __entry->function = timer->function; + ), + + TP_printk("timer=%p function=%pf now=%lu", __entry->timer, __entry->function,__entry->now) +); + +/** + * timer_expire_exit - called immediately after the timer callback returns + * @timer: pointer to struct timer_list + * + * When used in combination with the timer_expire_entry tracepoint we can + * determine the runtime of the timer callback function. + * + * NOTE: Do NOT derefernce timer in TP_fast_assign. The pointer might + * be invalid. We solely track the pointer. + */ +DEFINE_EVENT(timer_class, timer_expire_exit, + + TP_PROTO(struct timer_list *timer), + + TP_ARGS(timer) +); + +/** + * timer_cancel - called when the timer is canceled + * @timer: pointer to struct timer_list + */ +DEFINE_EVENT(timer_class, timer_cancel, + + TP_PROTO(struct timer_list *timer), + + TP_ARGS(timer) +); + +/** + * hrtimer_init - called when the hrtimer is initialized + * @timer: pointer to struct hrtimer + * @clockid: the hrtimers clock + * @mode: the hrtimers mode + */ +TRACE_EVENT(hrtimer_init, + + TP_PROTO(struct hrtimer *hrtimer, clockid_t clockid, + enum hrtimer_mode mode), + + TP_ARGS(hrtimer, clockid, mode), + + TP_STRUCT__entry( + __field( void *, hrtimer ) + __field( clockid_t, clockid ) + __field( enum hrtimer_mode, mode ) + ), + + TP_fast_assign( + __entry->hrtimer = hrtimer; + __entry->clockid = clockid; + __entry->mode = mode; + ), + + TP_printk("hrtimer=%p clockid=%s mode=%s", __entry->hrtimer, + __entry->clockid == CLOCK_REALTIME ? + "CLOCK_REALTIME" : "CLOCK_MONOTONIC", + __entry->mode == HRTIMER_MODE_ABS ? + "HRTIMER_MODE_ABS" : "HRTIMER_MODE_REL") +); + +/** + * hrtimer_start - called when the hrtimer is started + * @timer: pointer to struct hrtimer + */ +TRACE_EVENT(hrtimer_start, + + TP_PROTO(struct hrtimer *hrtimer), + + TP_ARGS(hrtimer), + + TP_STRUCT__entry( + __field( void *, hrtimer ) + __field( void *, function ) + __field( s64, expires ) + __field( s64, softexpires ) + ), + + TP_fast_assign( + __entry->hrtimer = hrtimer; + __entry->function = hrtimer->function; + __entry->expires = hrtimer_get_expires(hrtimer).tv64; + __entry->softexpires = hrtimer_get_softexpires(hrtimer).tv64; + ), + + TP_printk("hrtimer=%p function=%pf expires=%llu softexpires=%llu", + __entry->hrtimer, __entry->function, + (unsigned long long)ktime_to_ns((ktime_t) { + .tv64 = __entry->expires }), + (unsigned long long)ktime_to_ns((ktime_t) { + .tv64 = __entry->softexpires })) +); + +/** + * htimmer_expire_entry - called immediately before the hrtimer callback + * @timer: pointer to struct hrtimer + * @now: pointer to variable which contains current time of the + * timers base. + * + * Allows to determine the timer latency. + */ +TRACE_EVENT(hrtimer_expire_entry, + + TP_PROTO(struct hrtimer *hrtimer, ktime_t *now), + + TP_ARGS(hrtimer, now), + + TP_STRUCT__entry( + __field( void *, hrtimer ) + __field( s64, now ) + __field( void *, function) + ), + + TP_fast_assign( + __entry->hrtimer = hrtimer; + __entry->now = now->tv64; + __entry->function = hrtimer->function; + ), + + TP_printk("hrtimer=%p function=%pf now=%llu", __entry->hrtimer, __entry->function, + (unsigned long long)ktime_to_ns((ktime_t) { .tv64 = __entry->now })) + ); + +DECLARE_EVENT_CLASS(hrtimer_class, + + TP_PROTO(struct hrtimer *hrtimer), + + TP_ARGS(hrtimer), + + TP_STRUCT__entry( + __field( void *, hrtimer ) + ), + + TP_fast_assign( + __entry->hrtimer = hrtimer; + ), + + TP_printk("hrtimer=%p", __entry->hrtimer) +); + +/** + * hrtimer_expire_exit - called immediately after the hrtimer callback returns + * @timer: pointer to struct hrtimer + * + * When used in combination with the hrtimer_expire_entry tracepoint we can + * determine the runtime of the callback function. + */ +DEFINE_EVENT(hrtimer_class, hrtimer_expire_exit, + + TP_PROTO(struct hrtimer *hrtimer), + + TP_ARGS(hrtimer) +); + +/** + * hrtimer_cancel - called when the hrtimer is canceled + * @hrtimer: pointer to struct hrtimer + */ +DEFINE_EVENT(hrtimer_class, hrtimer_cancel, + + TP_PROTO(struct hrtimer *hrtimer), + + TP_ARGS(hrtimer) +); + +/** + * itimer_state - called when itimer is started or canceled + * @which: name of the interval timer + * @value: the itimers value, itimer is canceled if value->it_value is + * zero, otherwise it is started + * @expires: the itimers expiry time + */ +TRACE_EVENT(itimer_state, + + TP_PROTO(int which, const struct itimerval *const value, + cputime_t expires), + + TP_ARGS(which, value, expires), + + TP_STRUCT__entry( + __field( int, which ) + __field( cputime_t, expires ) + __field( long, value_sec ) + __field( long, value_usec ) + __field( long, interval_sec ) + __field( long, interval_usec ) + ), + + TP_fast_assign( + __entry->which = which; + __entry->expires = expires; + __entry->value_sec = value->it_value.tv_sec; + __entry->value_usec = value->it_value.tv_usec; + __entry->interval_sec = value->it_interval.tv_sec; + __entry->interval_usec = value->it_interval.tv_usec; + ), + + TP_printk("which=%d expires=%llu it_value=%ld.%ld it_interval=%ld.%ld", + __entry->which, (unsigned long long)__entry->expires, + __entry->value_sec, __entry->value_usec, + __entry->interval_sec, __entry->interval_usec) +); + +/** + * itimer_expire - called when itimer expires + * @which: type of the interval timer + * @pid: pid of the process which owns the timer + * @now: current time, used to calculate the latency of itimer + */ +TRACE_EVENT(itimer_expire, + + TP_PROTO(int which, struct pid *pid, cputime_t now), + + TP_ARGS(which, pid, now), + + TP_STRUCT__entry( + __field( int , which ) + __field( pid_t, pid ) + __field( cputime_t, now ) + ), + + TP_fast_assign( + __entry->which = which; + __entry->now = now; + __entry->pid = pid_nr(pid); + ), + + TP_printk("which=%d pid=%d now=%llu", __entry->which, + (int) __entry->pid, (unsigned long long)__entry->now) +); + +#endif /* _TRACE_TIMER_H */ + +/* This part must be outside protection */ +#include --- linux-3.11.0.orig/ubuntu/lttng/instrumentation/events/mainline/kmem.h +++ linux-3.11.0/ubuntu/lttng/instrumentation/events/mainline/kmem.h @@ -0,0 +1,308 @@ +#undef TRACE_SYSTEM +#define TRACE_SYSTEM kmem + +#if !defined(_TRACE_KMEM_H) || defined(TRACE_HEADER_MULTI_READ) +#define _TRACE_KMEM_H + +#include +#include +#include + +DECLARE_EVENT_CLASS(kmem_alloc, + + TP_PROTO(unsigned long call_site, + const void *ptr, + size_t bytes_req, + size_t bytes_alloc, + gfp_t gfp_flags), + + TP_ARGS(call_site, ptr, bytes_req, bytes_alloc, gfp_flags), + + TP_STRUCT__entry( + __field( unsigned long, call_site ) + __field( const void *, ptr ) + __field( size_t, bytes_req ) + __field( size_t, bytes_alloc ) + __field( gfp_t, gfp_flags ) + ), + + TP_fast_assign( + __entry->call_site = call_site; + __entry->ptr = ptr; + __entry->bytes_req = bytes_req; + __entry->bytes_alloc = bytes_alloc; + __entry->gfp_flags = gfp_flags; + ), + + TP_printk("call_site=%lx ptr=%p bytes_req=%zu bytes_alloc=%zu gfp_flags=%s", + __entry->call_site, + __entry->ptr, + __entry->bytes_req, + __entry->bytes_alloc, + show_gfp_flags(__entry->gfp_flags)) +); + +DEFINE_EVENT(kmem_alloc, kmalloc, + + TP_PROTO(unsigned long call_site, const void *ptr, + size_t bytes_req, size_t bytes_alloc, gfp_t gfp_flags), + + TP_ARGS(call_site, ptr, bytes_req, bytes_alloc, gfp_flags) +); + +DEFINE_EVENT(kmem_alloc, kmem_cache_alloc, + + TP_PROTO(unsigned long call_site, const void *ptr, + size_t bytes_req, size_t bytes_alloc, gfp_t gfp_flags), + + TP_ARGS(call_site, ptr, bytes_req, bytes_alloc, gfp_flags) +); + +DECLARE_EVENT_CLASS(kmem_alloc_node, + + TP_PROTO(unsigned long call_site, + const void *ptr, + size_t bytes_req, + size_t bytes_alloc, + gfp_t gfp_flags, + int node), + + TP_ARGS(call_site, ptr, bytes_req, bytes_alloc, gfp_flags, node), + + TP_STRUCT__entry( + __field( unsigned long, call_site ) + __field( const void *, ptr ) + __field( size_t, bytes_req ) + __field( size_t, bytes_alloc ) + __field( gfp_t, gfp_flags ) + __field( int, node ) + ), + + TP_fast_assign( + __entry->call_site = call_site; + __entry->ptr = ptr; + __entry->bytes_req = bytes_req; + __entry->bytes_alloc = bytes_alloc; + __entry->gfp_flags = gfp_flags; + __entry->node = node; + ), + + TP_printk("call_site=%lx ptr=%p bytes_req=%zu bytes_alloc=%zu gfp_flags=%s node=%d", + __entry->call_site, + __entry->ptr, + __entry->bytes_req, + __entry->bytes_alloc, + show_gfp_flags(__entry->gfp_flags), + __entry->node) +); + +DEFINE_EVENT(kmem_alloc_node, kmalloc_node, + + TP_PROTO(unsigned long call_site, const void *ptr, + size_t bytes_req, size_t bytes_alloc, + gfp_t gfp_flags, int node), + + TP_ARGS(call_site, ptr, bytes_req, bytes_alloc, gfp_flags, node) +); + +DEFINE_EVENT(kmem_alloc_node, kmem_cache_alloc_node, + + TP_PROTO(unsigned long call_site, const void *ptr, + size_t bytes_req, size_t bytes_alloc, + gfp_t gfp_flags, int node), + + TP_ARGS(call_site, ptr, bytes_req, bytes_alloc, gfp_flags, node) +); + +DECLARE_EVENT_CLASS(kmem_free, + + TP_PROTO(unsigned long call_site, const void *ptr), + + TP_ARGS(call_site, ptr), + + TP_STRUCT__entry( + __field( unsigned long, call_site ) + __field( const void *, ptr ) + ), + + TP_fast_assign( + __entry->call_site = call_site; + __entry->ptr = ptr; + ), + + TP_printk("call_site=%lx ptr=%p", __entry->call_site, __entry->ptr) +); + +DEFINE_EVENT(kmem_free, kfree, + + TP_PROTO(unsigned long call_site, const void *ptr), + + TP_ARGS(call_site, ptr) +); + +DEFINE_EVENT(kmem_free, kmem_cache_free, + + TP_PROTO(unsigned long call_site, const void *ptr), + + TP_ARGS(call_site, ptr) +); + +TRACE_EVENT(mm_page_free, + + TP_PROTO(struct page *page, unsigned int order), + + TP_ARGS(page, order), + + TP_STRUCT__entry( + __field( struct page *, page ) + __field( unsigned int, order ) + ), + + TP_fast_assign( + __entry->page = page; + __entry->order = order; + ), + + TP_printk("page=%p pfn=%lu order=%d", + __entry->page, + page_to_pfn(__entry->page), + __entry->order) +); + +TRACE_EVENT(mm_page_free_batched, + + TP_PROTO(struct page *page, int cold), + + TP_ARGS(page, cold), + + TP_STRUCT__entry( + __field( struct page *, page ) + __field( int, cold ) + ), + + TP_fast_assign( + __entry->page = page; + __entry->cold = cold; + ), + + TP_printk("page=%p pfn=%lu order=0 cold=%d", + __entry->page, + page_to_pfn(__entry->page), + __entry->cold) +); + +TRACE_EVENT(mm_page_alloc, + + TP_PROTO(struct page *page, unsigned int order, + gfp_t gfp_flags, int migratetype), + + TP_ARGS(page, order, gfp_flags, migratetype), + + TP_STRUCT__entry( + __field( struct page *, page ) + __field( unsigned int, order ) + __field( gfp_t, gfp_flags ) + __field( int, migratetype ) + ), + + TP_fast_assign( + __entry->page = page; + __entry->order = order; + __entry->gfp_flags = gfp_flags; + __entry->migratetype = migratetype; + ), + + TP_printk("page=%p pfn=%lu order=%d migratetype=%d gfp_flags=%s", + __entry->page, + __entry->page ? page_to_pfn(__entry->page) : 0, + __entry->order, + __entry->migratetype, + show_gfp_flags(__entry->gfp_flags)) +); + +DECLARE_EVENT_CLASS(mm_page, + + TP_PROTO(struct page *page, unsigned int order, int migratetype), + + TP_ARGS(page, order, migratetype), + + TP_STRUCT__entry( + __field( struct page *, page ) + __field( unsigned int, order ) + __field( int, migratetype ) + ), + + TP_fast_assign( + __entry->page = page; + __entry->order = order; + __entry->migratetype = migratetype; + ), + + TP_printk("page=%p pfn=%lu order=%u migratetype=%d percpu_refill=%d", + __entry->page, + __entry->page ? page_to_pfn(__entry->page) : 0, + __entry->order, + __entry->migratetype, + __entry->order == 0) +); + +DEFINE_EVENT(mm_page, mm_page_alloc_zone_locked, + + TP_PROTO(struct page *page, unsigned int order, int migratetype), + + TP_ARGS(page, order, migratetype) +); + +DEFINE_EVENT_PRINT(mm_page, mm_page_pcpu_drain, + + TP_PROTO(struct page *page, unsigned int order, int migratetype), + + TP_ARGS(page, order, migratetype), + + TP_printk("page=%p pfn=%lu order=%d migratetype=%d", + __entry->page, page_to_pfn(__entry->page), + __entry->order, __entry->migratetype) +); + +TRACE_EVENT(mm_page_alloc_extfrag, + + TP_PROTO(struct page *page, + int alloc_order, int fallback_order, + int alloc_migratetype, int fallback_migratetype), + + TP_ARGS(page, + alloc_order, fallback_order, + alloc_migratetype, fallback_migratetype), + + TP_STRUCT__entry( + __field( struct page *, page ) + __field( int, alloc_order ) + __field( int, fallback_order ) + __field( int, alloc_migratetype ) + __field( int, fallback_migratetype ) + ), + + TP_fast_assign( + __entry->page = page; + __entry->alloc_order = alloc_order; + __entry->fallback_order = fallback_order; + __entry->alloc_migratetype = alloc_migratetype; + __entry->fallback_migratetype = fallback_migratetype; + ), + + TP_printk("page=%p pfn=%lu alloc_order=%d fallback_order=%d pageblock_order=%d alloc_migratetype=%d fallback_migratetype=%d fragmenting=%d change_ownership=%d", + __entry->page, + page_to_pfn(__entry->page), + __entry->alloc_order, + __entry->fallback_order, + pageblock_order, + __entry->alloc_migratetype, + __entry->fallback_migratetype, + __entry->fallback_order < pageblock_order, + __entry->alloc_migratetype == __entry->fallback_migratetype) +); + +#endif /* _TRACE_KMEM_H */ + +/* This part must be outside protection */ +#include --- linux-3.11.0.orig/ubuntu/lttng/instrumentation/events/mainline/gpio.h +++ linux-3.11.0/ubuntu/lttng/instrumentation/events/mainline/gpio.h @@ -0,0 +1,56 @@ +#undef TRACE_SYSTEM +#define TRACE_SYSTEM gpio + +#if !defined(_TRACE_GPIO_H) || defined(TRACE_HEADER_MULTI_READ) +#define _TRACE_GPIO_H + +#include + +TRACE_EVENT(gpio_direction, + + TP_PROTO(unsigned gpio, int in, int err), + + TP_ARGS(gpio, in, err), + + TP_STRUCT__entry( + __field(unsigned, gpio) + __field(int, in) + __field(int, err) + ), + + TP_fast_assign( + __entry->gpio = gpio; + __entry->in = in; + __entry->err = err; + ), + + TP_printk("%u %3s (%d)", __entry->gpio, + __entry->in ? "in" : "out", __entry->err) +); + +TRACE_EVENT(gpio_value, + + TP_PROTO(unsigned gpio, int get, int value), + + TP_ARGS(gpio, get, value), + + TP_STRUCT__entry( + __field(unsigned, gpio) + __field(int, get) + __field(int, value) + ), + + TP_fast_assign( + __entry->gpio = gpio; + __entry->get = get; + __entry->value = value; + ), + + TP_printk("%u %3s %d", __entry->gpio, + __entry->get ? "get" : "set", __entry->value) +); + +#endif /* if !defined(_TRACE_GPIO_H) || defined(TRACE_HEADER_MULTI_READ) */ + +/* This part must be outside protection */ +#include --- linux-3.11.0.orig/ubuntu/lttng/instrumentation/events/mainline/asoc.h +++ linux-3.11.0/ubuntu/lttng/instrumentation/events/mainline/asoc.h @@ -0,0 +1,410 @@ +#undef TRACE_SYSTEM +#define TRACE_SYSTEM asoc + +#if !defined(_TRACE_ASOC_H) || defined(TRACE_HEADER_MULTI_READ) +#define _TRACE_ASOC_H + +#include +#include + +#define DAPM_DIRECT "(direct)" + +struct snd_soc_jack; +struct snd_soc_codec; +struct snd_soc_platform; +struct snd_soc_card; +struct snd_soc_dapm_widget; + +/* + * Log register events + */ +DECLARE_EVENT_CLASS(snd_soc_reg, + + TP_PROTO(struct snd_soc_codec *codec, unsigned int reg, + unsigned int val), + + TP_ARGS(codec, reg, val), + + TP_STRUCT__entry( + __string( name, codec->name ) + __field( int, id ) + __field( unsigned int, reg ) + __field( unsigned int, val ) + ), + + TP_fast_assign( + __assign_str(name, codec->name); + __entry->id = codec->id; + __entry->reg = reg; + __entry->val = val; + ), + + TP_printk("codec=%s.%d reg=%x val=%x", __get_str(name), + (int)__entry->id, (unsigned int)__entry->reg, + (unsigned int)__entry->val) +); + +DEFINE_EVENT(snd_soc_reg, snd_soc_reg_write, + + TP_PROTO(struct snd_soc_codec *codec, unsigned int reg, + unsigned int val), + + TP_ARGS(codec, reg, val) + +); + +DEFINE_EVENT(snd_soc_reg, snd_soc_reg_read, + + TP_PROTO(struct snd_soc_codec *codec, unsigned int reg, + unsigned int val), + + TP_ARGS(codec, reg, val) + +); + +DECLARE_EVENT_CLASS(snd_soc_preg, + + TP_PROTO(struct snd_soc_platform *platform, unsigned int reg, + unsigned int val), + + TP_ARGS(platform, reg, val), + + TP_STRUCT__entry( + __string( name, platform->name ) + __field( int, id ) + __field( unsigned int, reg ) + __field( unsigned int, val ) + ), + + TP_fast_assign( + __assign_str(name, platform->name); + __entry->id = platform->id; + __entry->reg = reg; + __entry->val = val; + ), + + TP_printk("platform=%s.%d reg=%x val=%x", __get_str(name), + (int)__entry->id, (unsigned int)__entry->reg, + (unsigned int)__entry->val) +); + +DEFINE_EVENT(snd_soc_preg, snd_soc_preg_write, + + TP_PROTO(struct snd_soc_platform *platform, unsigned int reg, + unsigned int val), + + TP_ARGS(platform, reg, val) + +); + +DEFINE_EVENT(snd_soc_preg, snd_soc_preg_read, + + TP_PROTO(struct snd_soc_platform *platform, unsigned int reg, + unsigned int val), + + TP_ARGS(platform, reg, val) + +); + +DECLARE_EVENT_CLASS(snd_soc_card, + + TP_PROTO(struct snd_soc_card *card, int val), + + TP_ARGS(card, val), + + TP_STRUCT__entry( + __string( name, card->name ) + __field( int, val ) + ), + + TP_fast_assign( + __assign_str(name, card->name); + __entry->val = val; + ), + + TP_printk("card=%s val=%d", __get_str(name), (int)__entry->val) +); + +DEFINE_EVENT(snd_soc_card, snd_soc_bias_level_start, + + TP_PROTO(struct snd_soc_card *card, int val), + + TP_ARGS(card, val) + +); + +DEFINE_EVENT(snd_soc_card, snd_soc_bias_level_done, + + TP_PROTO(struct snd_soc_card *card, int val), + + TP_ARGS(card, val) + +); + +DECLARE_EVENT_CLASS(snd_soc_dapm_basic, + + TP_PROTO(struct snd_soc_card *card), + + TP_ARGS(card), + + TP_STRUCT__entry( + __string( name, card->name ) + ), + + TP_fast_assign( + __assign_str(name, card->name); + ), + + TP_printk("card=%s", __get_str(name)) +); + +DEFINE_EVENT(snd_soc_dapm_basic, snd_soc_dapm_start, + + TP_PROTO(struct snd_soc_card *card), + + TP_ARGS(card) + +); + +DEFINE_EVENT(snd_soc_dapm_basic, snd_soc_dapm_done, + + TP_PROTO(struct snd_soc_card *card), + + TP_ARGS(card) + +); + +DECLARE_EVENT_CLASS(snd_soc_dapm_widget, + + TP_PROTO(struct snd_soc_dapm_widget *w, int val), + + TP_ARGS(w, val), + + TP_STRUCT__entry( + __string( name, w->name ) + __field( int, val ) + ), + + TP_fast_assign( + __assign_str(name, w->name); + __entry->val = val; + ), + + TP_printk("widget=%s val=%d", __get_str(name), + (int)__entry->val) +); + +DEFINE_EVENT(snd_soc_dapm_widget, snd_soc_dapm_widget_power, + + TP_PROTO(struct snd_soc_dapm_widget *w, int val), + + TP_ARGS(w, val) + +); + +DEFINE_EVENT(snd_soc_dapm_widget, snd_soc_dapm_widget_event_start, + + TP_PROTO(struct snd_soc_dapm_widget *w, int val), + + TP_ARGS(w, val) + +); + +DEFINE_EVENT(snd_soc_dapm_widget, snd_soc_dapm_widget_event_done, + + TP_PROTO(struct snd_soc_dapm_widget *w, int val), + + TP_ARGS(w, val) + +); + +TRACE_EVENT(snd_soc_dapm_walk_done, + + TP_PROTO(struct snd_soc_card *card), + + TP_ARGS(card), + + TP_STRUCT__entry( + __string( name, card->name ) + __field( int, power_checks ) + __field( int, path_checks ) + __field( int, neighbour_checks ) + ), + + TP_fast_assign( + __assign_str(name, card->name); + __entry->power_checks = card->dapm_stats.power_checks; + __entry->path_checks = card->dapm_stats.path_checks; + __entry->neighbour_checks = card->dapm_stats.neighbour_checks; + ), + + TP_printk("%s: checks %d power, %d path, %d neighbour", + __get_str(name), (int)__entry->power_checks, + (int)__entry->path_checks, (int)__entry->neighbour_checks) +); + +TRACE_EVENT(snd_soc_dapm_output_path, + + TP_PROTO(struct snd_soc_dapm_widget *widget, + struct snd_soc_dapm_path *path), + + TP_ARGS(widget, path), + + TP_STRUCT__entry( + __string( wname, widget->name ) + __string( pname, path->name ? path->name : DAPM_DIRECT) + __string( psname, path->sink->name ) + __field( int, path_sink ) + __field( int, path_connect ) + ), + + TP_fast_assign( + __assign_str(wname, widget->name); + __assign_str(pname, path->name ? path->name : DAPM_DIRECT); + __assign_str(psname, path->sink->name); + __entry->path_connect = path->connect; + __entry->path_sink = (long)path->sink; + ), + + TP_printk("%c%s -> %s -> %s\n", + (int) __entry->path_sink && + (int) __entry->path_connect ? '*' : ' ', + __get_str(wname), __get_str(pname), __get_str(psname)) +); + +TRACE_EVENT(snd_soc_dapm_input_path, + + TP_PROTO(struct snd_soc_dapm_widget *widget, + struct snd_soc_dapm_path *path), + + TP_ARGS(widget, path), + + TP_STRUCT__entry( + __string( wname, widget->name ) + __string( pname, path->name ? path->name : DAPM_DIRECT) + __string( psname, path->source->name ) + __field( int, path_source ) + __field( int, path_connect ) + ), + + TP_fast_assign( + __assign_str(wname, widget->name); + __assign_str(pname, path->name ? path->name : DAPM_DIRECT); + __assign_str(psname, path->source->name); + __entry->path_connect = path->connect; + __entry->path_source = (long)path->source; + ), + + TP_printk("%c%s <- %s <- %s\n", + (int) __entry->path_source && + (int) __entry->path_connect ? '*' : ' ', + __get_str(wname), __get_str(pname), __get_str(psname)) +); + +TRACE_EVENT(snd_soc_dapm_connected, + + TP_PROTO(int paths, int stream), + + TP_ARGS(paths, stream), + + TP_STRUCT__entry( + __field( int, paths ) + __field( int, stream ) + ), + + TP_fast_assign( + __entry->paths = paths; + __entry->stream = stream; + ), + + TP_printk("%s: found %d paths\n", + __entry->stream ? "capture" : "playback", __entry->paths) +); + +TRACE_EVENT(snd_soc_jack_irq, + + TP_PROTO(const char *name), + + TP_ARGS(name), + + TP_STRUCT__entry( + __string( name, name ) + ), + + TP_fast_assign( + __assign_str(name, name); + ), + + TP_printk("%s", __get_str(name)) +); + +TRACE_EVENT(snd_soc_jack_report, + + TP_PROTO(struct snd_soc_jack *jack, int mask, int val), + + TP_ARGS(jack, mask, val), + + TP_STRUCT__entry( + __string( name, jack->jack->name ) + __field( int, mask ) + __field( int, val ) + ), + + TP_fast_assign( + __assign_str(name, jack->jack->name); + __entry->mask = mask; + __entry->val = val; + ), + + TP_printk("jack=%s %x/%x", __get_str(name), (int)__entry->val, + (int)__entry->mask) +); + +TRACE_EVENT(snd_soc_jack_notify, + + TP_PROTO(struct snd_soc_jack *jack, int val), + + TP_ARGS(jack, val), + + TP_STRUCT__entry( + __string( name, jack->jack->name ) + __field( int, val ) + ), + + TP_fast_assign( + __assign_str(name, jack->jack->name); + __entry->val = val; + ), + + TP_printk("jack=%s %x", __get_str(name), (int)__entry->val) +); + +TRACE_EVENT(snd_soc_cache_sync, + + TP_PROTO(struct snd_soc_codec *codec, const char *type, + const char *status), + + TP_ARGS(codec, type, status), + + TP_STRUCT__entry( + __string( name, codec->name ) + __string( status, status ) + __string( type, type ) + __field( int, id ) + ), + + TP_fast_assign( + __assign_str(name, codec->name); + __assign_str(status, status); + __assign_str(type, type); + __entry->id = codec->id; + ), + + TP_printk("codec=%s.%d type=%s status=%s", __get_str(name), + (int)__entry->id, __get_str(type), __get_str(status)) +); + +#endif /* _TRACE_ASOC_H */ + +/* This part must be outside protection */ +#include --- linux-3.11.0.orig/ubuntu/lttng/instrumentation/events/mainline/syscalls.h +++ linux-3.11.0/ubuntu/lttng/instrumentation/events/mainline/syscalls.h @@ -0,0 +1,75 @@ +#undef TRACE_SYSTEM +#define TRACE_SYSTEM raw_syscalls +#define TRACE_INCLUDE_FILE syscalls + +#if !defined(_TRACE_EVENTS_SYSCALLS_H) || defined(TRACE_HEADER_MULTI_READ) +#define _TRACE_EVENTS_SYSCALLS_H + +#include + +#include +#include + + +#ifdef CONFIG_HAVE_SYSCALL_TRACEPOINTS + +extern void syscall_regfunc(void); +extern void syscall_unregfunc(void); + +TRACE_EVENT_FN(sys_enter, + + TP_PROTO(struct pt_regs *regs, long id), + + TP_ARGS(regs, id), + + TP_STRUCT__entry( + __field( long, id ) + __array( unsigned long, args, 6 ) + ), + + TP_fast_assign( + __entry->id = id; + syscall_get_arguments(current, regs, 0, 6, __entry->args); + ), + + TP_printk("NR %ld (%lx, %lx, %lx, %lx, %lx, %lx)", + __entry->id, + __entry->args[0], __entry->args[1], __entry->args[2], + __entry->args[3], __entry->args[4], __entry->args[5]), + + syscall_regfunc, syscall_unregfunc +); + +TRACE_EVENT_FLAGS(sys_enter, TRACE_EVENT_FL_CAP_ANY) + +TRACE_EVENT_FN(sys_exit, + + TP_PROTO(struct pt_regs *regs, long ret), + + TP_ARGS(regs, ret), + + TP_STRUCT__entry( + __field( long, id ) + __field( long, ret ) + ), + + TP_fast_assign( + __entry->id = syscall_get_nr(current, regs); + __entry->ret = ret; + ), + + TP_printk("NR %ld = %ld", + __entry->id, __entry->ret), + + syscall_regfunc, syscall_unregfunc +); + +TRACE_EVENT_FLAGS(sys_exit, TRACE_EVENT_FL_CAP_ANY) + +#endif /* CONFIG_HAVE_SYSCALL_TRACEPOINTS */ + +#endif /* _TRACE_EVENTS_SYSCALLS_H */ + +/* This part must be outside protection */ +#include + --- linux-3.11.0.orig/ubuntu/lttng/instrumentation/events/mainline/skb.h +++ linux-3.11.0/ubuntu/lttng/instrumentation/events/mainline/skb.h @@ -0,0 +1,75 @@ +#undef TRACE_SYSTEM +#define TRACE_SYSTEM skb + +#if !defined(_TRACE_SKB_H) || defined(TRACE_HEADER_MULTI_READ) +#define _TRACE_SKB_H + +#include +#include +#include + +/* + * Tracepoint for free an sk_buff: + */ +TRACE_EVENT(kfree_skb, + + TP_PROTO(struct sk_buff *skb, void *location), + + TP_ARGS(skb, location), + + TP_STRUCT__entry( + __field( void *, skbaddr ) + __field( void *, location ) + __field( unsigned short, protocol ) + ), + + TP_fast_assign( + __entry->skbaddr = skb; + __entry->location = location; + __entry->protocol = ntohs(skb->protocol); + ), + + TP_printk("skbaddr=%p protocol=%u location=%p", + __entry->skbaddr, __entry->protocol, __entry->location) +); + +TRACE_EVENT(consume_skb, + + TP_PROTO(struct sk_buff *skb), + + TP_ARGS(skb), + + TP_STRUCT__entry( + __field( void *, skbaddr ) + ), + + TP_fast_assign( + __entry->skbaddr = skb; + ), + + TP_printk("skbaddr=%p", __entry->skbaddr) +); + +TRACE_EVENT(skb_copy_datagram_iovec, + + TP_PROTO(const struct sk_buff *skb, int len), + + TP_ARGS(skb, len), + + TP_STRUCT__entry( + __field( const void *, skbaddr ) + __field( int, len ) + ), + + TP_fast_assign( + __entry->skbaddr = skb; + __entry->len = len; + ), + + TP_printk("skbaddr=%p len=%d", __entry->skbaddr, __entry->len) +); + +#endif /* _TRACE_SKB_H */ + +/* This part must be outside protection */ +#include --- linux-3.11.0.orig/ubuntu/lttng/instrumentation/events/mainline/rpm.h +++ linux-3.11.0/ubuntu/lttng/instrumentation/events/mainline/rpm.h @@ -0,0 +1,100 @@ + +#undef TRACE_SYSTEM +#define TRACE_SYSTEM rpm + +#if !defined(_TRACE_RUNTIME_POWER_H) || defined(TRACE_HEADER_MULTI_READ) +#define _TRACE_RUNTIME_POWER_H + +#include +#include + +struct device; + +/* + * The rpm_internal events are used for tracing some important + * runtime pm internal functions. + */ +DECLARE_EVENT_CLASS(rpm_internal, + + TP_PROTO(struct device *dev, int flags), + + TP_ARGS(dev, flags), + + TP_STRUCT__entry( + __string( name, dev_name(dev) ) + __field( int, flags ) + __field( int , usage_count ) + __field( int , disable_depth ) + __field( int , runtime_auto ) + __field( int , request_pending ) + __field( int , irq_safe ) + __field( int , child_count ) + ), + + TP_fast_assign( + __assign_str(name, dev_name(dev)); + __entry->flags = flags; + __entry->usage_count = atomic_read( + &dev->power.usage_count); + __entry->disable_depth = dev->power.disable_depth; + __entry->runtime_auto = dev->power.runtime_auto; + __entry->request_pending = dev->power.request_pending; + __entry->irq_safe = dev->power.irq_safe; + __entry->child_count = atomic_read( + &dev->power.child_count); + ), + + TP_printk("%s flags-%x cnt-%-2d dep-%-2d auto-%-1d p-%-1d" + " irq-%-1d child-%d", + __get_str(name), __entry->flags, + __entry->usage_count, + __entry->disable_depth, + __entry->runtime_auto, + __entry->request_pending, + __entry->irq_safe, + __entry->child_count + ) +); +DEFINE_EVENT(rpm_internal, rpm_suspend, + + TP_PROTO(struct device *dev, int flags), + + TP_ARGS(dev, flags) +); +DEFINE_EVENT(rpm_internal, rpm_resume, + + TP_PROTO(struct device *dev, int flags), + + TP_ARGS(dev, flags) +); +DEFINE_EVENT(rpm_internal, rpm_idle, + + TP_PROTO(struct device *dev, int flags), + + TP_ARGS(dev, flags) +); + +TRACE_EVENT(rpm_return_int, + TP_PROTO(struct device *dev, unsigned long ip, int ret), + TP_ARGS(dev, ip, ret), + + TP_STRUCT__entry( + __string( name, dev_name(dev)) + __field( unsigned long, ip ) + __field( int, ret ) + ), + + TP_fast_assign( + __assign_str(name, dev_name(dev)); + __entry->ip = ip; + __entry->ret = ret; + ), + + TP_printk("%pS:%s ret=%d", (void *)__entry->ip, __get_str(name), + __entry->ret) +); + +#endif /* _TRACE_RUNTIME_POWER_H */ + +/* This part must be outside protection */ +#include --- linux-3.11.0.orig/ubuntu/lttng/instrumentation/events/mainline/module.h +++ linux-3.11.0/ubuntu/lttng/instrumentation/events/mainline/module.h @@ -0,0 +1,131 @@ +/* + * Because linux/module.h has tracepoints in the header, and ftrace.h + * eventually includes this file, define_trace.h includes linux/module.h + * But we do not want the module.h to override the TRACE_SYSTEM macro + * variable that define_trace.h is processing, so we only set it + * when module events are being processed, which would happen when + * CREATE_TRACE_POINTS is defined. + */ +#ifdef CREATE_TRACE_POINTS +#undef TRACE_SYSTEM +#define TRACE_SYSTEM module +#endif + +#if !defined(_TRACE_MODULE_H) || defined(TRACE_HEADER_MULTI_READ) +#define _TRACE_MODULE_H + +#include + +#ifdef CONFIG_MODULES + +struct module; + +#define show_module_flags(flags) __print_flags(flags, "", \ + { (1UL << TAINT_PROPRIETARY_MODULE), "P" }, \ + { (1UL << TAINT_FORCED_MODULE), "F" }, \ + { (1UL << TAINT_CRAP), "C" }) + +TRACE_EVENT(module_load, + + TP_PROTO(struct module *mod), + + TP_ARGS(mod), + + TP_STRUCT__entry( + __field( unsigned int, taints ) + __string( name, mod->name ) + ), + + TP_fast_assign( + __entry->taints = mod->taints; + __assign_str(name, mod->name); + ), + + TP_printk("%s %s", __get_str(name), show_module_flags(__entry->taints)) +); + +TRACE_EVENT(module_free, + + TP_PROTO(struct module *mod), + + TP_ARGS(mod), + + TP_STRUCT__entry( + __string( name, mod->name ) + ), + + TP_fast_assign( + __assign_str(name, mod->name); + ), + + TP_printk("%s", __get_str(name)) +); + +#ifdef CONFIG_MODULE_UNLOAD +/* trace_module_get/put are only used if CONFIG_MODULE_UNLOAD is defined */ + +DECLARE_EVENT_CLASS(module_refcnt, + + TP_PROTO(struct module *mod, unsigned long ip), + + TP_ARGS(mod, ip), + + TP_STRUCT__entry( + __field( unsigned long, ip ) + __field( int, refcnt ) + __string( name, mod->name ) + ), + + TP_fast_assign( + __entry->ip = ip; + __entry->refcnt = __this_cpu_read(mod->refptr->incs) + __this_cpu_read(mod->refptr->decs); + __assign_str(name, mod->name); + ), + + TP_printk("%s call_site=%pf refcnt=%d", + __get_str(name), (void *)__entry->ip, __entry->refcnt) +); + +DEFINE_EVENT(module_refcnt, module_get, + + TP_PROTO(struct module *mod, unsigned long ip), + + TP_ARGS(mod, ip) +); + +DEFINE_EVENT(module_refcnt, module_put, + + TP_PROTO(struct module *mod, unsigned long ip), + + TP_ARGS(mod, ip) +); +#endif /* CONFIG_MODULE_UNLOAD */ + +TRACE_EVENT(module_request, + + TP_PROTO(char *name, bool wait, unsigned long ip), + + TP_ARGS(name, wait, ip), + + TP_STRUCT__entry( + __field( unsigned long, ip ) + __field( bool, wait ) + __string( name, name ) + ), + + TP_fast_assign( + __entry->ip = ip; + __entry->wait = wait; + __assign_str(name, name); + ), + + TP_printk("%s wait=%d call_site=%pf", + __get_str(name), (int)__entry->wait, (void *)__entry->ip) +); + +#endif /* CONFIG_MODULES */ + +#endif /* _TRACE_MODULE_H */ + +/* This part must be outside protection */ +#include --- linux-3.11.0.orig/ubuntu/lttng/instrumentation/events/mainline/jbd.h +++ linux-3.11.0/ubuntu/lttng/instrumentation/events/mainline/jbd.h @@ -0,0 +1,194 @@ +#undef TRACE_SYSTEM +#define TRACE_SYSTEM jbd + +#if !defined(_TRACE_JBD_H) || defined(TRACE_HEADER_MULTI_READ) +#define _TRACE_JBD_H + +#include +#include + +TRACE_EVENT(jbd_checkpoint, + + TP_PROTO(journal_t *journal, int result), + + TP_ARGS(journal, result), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( int, result ) + ), + + TP_fast_assign( + __entry->dev = journal->j_fs_dev->bd_dev; + __entry->result = result; + ), + + TP_printk("dev %d,%d result %d", + MAJOR(__entry->dev), MINOR(__entry->dev), + __entry->result) +); + +DECLARE_EVENT_CLASS(jbd_commit, + + TP_PROTO(journal_t *journal, transaction_t *commit_transaction), + + TP_ARGS(journal, commit_transaction), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( int, transaction ) + ), + + TP_fast_assign( + __entry->dev = journal->j_fs_dev->bd_dev; + __entry->transaction = commit_transaction->t_tid; + ), + + TP_printk("dev %d,%d transaction %d", + MAJOR(__entry->dev), MINOR(__entry->dev), + __entry->transaction) +); + +DEFINE_EVENT(jbd_commit, jbd_start_commit, + + TP_PROTO(journal_t *journal, transaction_t *commit_transaction), + + TP_ARGS(journal, commit_transaction) +); + +DEFINE_EVENT(jbd_commit, jbd_commit_locking, + + TP_PROTO(journal_t *journal, transaction_t *commit_transaction), + + TP_ARGS(journal, commit_transaction) +); + +DEFINE_EVENT(jbd_commit, jbd_commit_flushing, + + TP_PROTO(journal_t *journal, transaction_t *commit_transaction), + + TP_ARGS(journal, commit_transaction) +); + +DEFINE_EVENT(jbd_commit, jbd_commit_logging, + + TP_PROTO(journal_t *journal, transaction_t *commit_transaction), + + TP_ARGS(journal, commit_transaction) +); + +TRACE_EVENT(jbd_drop_transaction, + + TP_PROTO(journal_t *journal, transaction_t *commit_transaction), + + TP_ARGS(journal, commit_transaction), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( int, transaction ) + ), + + TP_fast_assign( + __entry->dev = journal->j_fs_dev->bd_dev; + __entry->transaction = commit_transaction->t_tid; + ), + + TP_printk("dev %d,%d transaction %d", + MAJOR(__entry->dev), MINOR(__entry->dev), + __entry->transaction) +); + +TRACE_EVENT(jbd_end_commit, + TP_PROTO(journal_t *journal, transaction_t *commit_transaction), + + TP_ARGS(journal, commit_transaction), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( int, transaction ) + __field( int, head ) + ), + + TP_fast_assign( + __entry->dev = journal->j_fs_dev->bd_dev; + __entry->transaction = commit_transaction->t_tid; + __entry->head = journal->j_tail_sequence; + ), + + TP_printk("dev %d,%d transaction %d head %d", + MAJOR(__entry->dev), MINOR(__entry->dev), + __entry->transaction, __entry->head) +); + +TRACE_EVENT(jbd_do_submit_data, + TP_PROTO(journal_t *journal, transaction_t *commit_transaction), + + TP_ARGS(journal, commit_transaction), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( int, transaction ) + ), + + TP_fast_assign( + __entry->dev = journal->j_fs_dev->bd_dev; + __entry->transaction = commit_transaction->t_tid; + ), + + TP_printk("dev %d,%d transaction %d", + MAJOR(__entry->dev), MINOR(__entry->dev), + __entry->transaction) +); + +TRACE_EVENT(jbd_cleanup_journal_tail, + + TP_PROTO(journal_t *journal, tid_t first_tid, + unsigned long block_nr, unsigned long freed), + + TP_ARGS(journal, first_tid, block_nr, freed), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( tid_t, tail_sequence ) + __field( tid_t, first_tid ) + __field(unsigned long, block_nr ) + __field(unsigned long, freed ) + ), + + TP_fast_assign( + __entry->dev = journal->j_fs_dev->bd_dev; + __entry->tail_sequence = journal->j_tail_sequence; + __entry->first_tid = first_tid; + __entry->block_nr = block_nr; + __entry->freed = freed; + ), + + TP_printk("dev %d,%d from %u to %u offset %lu freed %lu", + MAJOR(__entry->dev), MINOR(__entry->dev), + __entry->tail_sequence, __entry->first_tid, + __entry->block_nr, __entry->freed) +); + +TRACE_EVENT(journal_write_superblock, + TP_PROTO(journal_t *journal, int write_op), + + TP_ARGS(journal, write_op), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( int, write_op ) + ), + + TP_fast_assign( + __entry->dev = journal->j_fs_dev->bd_dev; + __entry->write_op = write_op; + ), + + TP_printk("dev %d,%d write_op %x", MAJOR(__entry->dev), + MINOR(__entry->dev), __entry->write_op) +); + +#endif /* _TRACE_JBD_H */ + +/* This part must be outside protection */ +#include --- linux-3.11.0.orig/ubuntu/lttng/instrumentation/events/mainline/btrfs.h +++ linux-3.11.0/ubuntu/lttng/instrumentation/events/mainline/btrfs.h @@ -0,0 +1,918 @@ +#undef TRACE_SYSTEM +#define TRACE_SYSTEM btrfs + +#if !defined(_TRACE_BTRFS_H) || defined(TRACE_HEADER_MULTI_READ) +#define _TRACE_BTRFS_H + +#include +#include +#include + +struct btrfs_root; +struct btrfs_fs_info; +struct btrfs_inode; +struct extent_map; +struct btrfs_ordered_extent; +struct btrfs_delayed_ref_node; +struct btrfs_delayed_tree_ref; +struct btrfs_delayed_data_ref; +struct btrfs_delayed_ref_head; +struct btrfs_block_group_cache; +struct btrfs_free_cluster; +struct map_lookup; +struct extent_buffer; + +#define show_ref_type(type) \ + __print_symbolic(type, \ + { BTRFS_TREE_BLOCK_REF_KEY, "TREE_BLOCK_REF" }, \ + { BTRFS_EXTENT_DATA_REF_KEY, "EXTENT_DATA_REF" }, \ + { BTRFS_EXTENT_REF_V0_KEY, "EXTENT_REF_V0" }, \ + { BTRFS_SHARED_BLOCK_REF_KEY, "SHARED_BLOCK_REF" }, \ + { BTRFS_SHARED_DATA_REF_KEY, "SHARED_DATA_REF" }) + +#define __show_root_type(obj) \ + __print_symbolic_u64(obj, \ + { BTRFS_ROOT_TREE_OBJECTID, "ROOT_TREE" }, \ + { BTRFS_EXTENT_TREE_OBJECTID, "EXTENT_TREE" }, \ + { BTRFS_CHUNK_TREE_OBJECTID, "CHUNK_TREE" }, \ + { BTRFS_DEV_TREE_OBJECTID, "DEV_TREE" }, \ + { BTRFS_FS_TREE_OBJECTID, "FS_TREE" }, \ + { BTRFS_ROOT_TREE_DIR_OBJECTID, "ROOT_TREE_DIR" }, \ + { BTRFS_CSUM_TREE_OBJECTID, "CSUM_TREE" }, \ + { BTRFS_TREE_LOG_OBJECTID, "TREE_LOG" }, \ + { BTRFS_TREE_RELOC_OBJECTID, "TREE_RELOC" }, \ + { BTRFS_DATA_RELOC_TREE_OBJECTID, "DATA_RELOC_TREE" }) + +#define show_root_type(obj) \ + obj, ((obj >= BTRFS_DATA_RELOC_TREE_OBJECTID) || \ + (obj <= BTRFS_CSUM_TREE_OBJECTID )) ? __show_root_type(obj) : "-" + +#define BTRFS_GROUP_FLAGS \ + { BTRFS_BLOCK_GROUP_DATA, "DATA"}, \ + { BTRFS_BLOCK_GROUP_SYSTEM, "SYSTEM"}, \ + { BTRFS_BLOCK_GROUP_METADATA, "METADATA"}, \ + { BTRFS_BLOCK_GROUP_RAID0, "RAID0"}, \ + { BTRFS_BLOCK_GROUP_RAID1, "RAID1"}, \ + { BTRFS_BLOCK_GROUP_DUP, "DUP"}, \ + { BTRFS_BLOCK_GROUP_RAID10, "RAID10"} + +#define BTRFS_UUID_SIZE 16 + +TRACE_EVENT(btrfs_transaction_commit, + + TP_PROTO(struct btrfs_root *root), + + TP_ARGS(root), + + TP_STRUCT__entry( + __field( u64, generation ) + __field( u64, root_objectid ) + ), + + TP_fast_assign( + __entry->generation = root->fs_info->generation; + __entry->root_objectid = root->root_key.objectid; + ), + + TP_printk("root = %llu(%s), gen = %llu", + show_root_type(__entry->root_objectid), + (unsigned long long)__entry->generation) +); + +DECLARE_EVENT_CLASS(btrfs__inode, + + TP_PROTO(struct inode *inode), + + TP_ARGS(inode), + + TP_STRUCT__entry( + __field( ino_t, ino ) + __field( blkcnt_t, blocks ) + __field( u64, disk_i_size ) + __field( u64, generation ) + __field( u64, last_trans ) + __field( u64, logged_trans ) + __field( u64, root_objectid ) + ), + + TP_fast_assign( + __entry->ino = inode->i_ino; + __entry->blocks = inode->i_blocks; + __entry->disk_i_size = BTRFS_I(inode)->disk_i_size; + __entry->generation = BTRFS_I(inode)->generation; + __entry->last_trans = BTRFS_I(inode)->last_trans; + __entry->logged_trans = BTRFS_I(inode)->logged_trans; + __entry->root_objectid = + BTRFS_I(inode)->root->root_key.objectid; + ), + + TP_printk("root = %llu(%s), gen = %llu, ino = %lu, blocks = %llu, " + "disk_i_size = %llu, last_trans = %llu, logged_trans = %llu", + show_root_type(__entry->root_objectid), + (unsigned long long)__entry->generation, + (unsigned long)__entry->ino, + (unsigned long long)__entry->blocks, + (unsigned long long)__entry->disk_i_size, + (unsigned long long)__entry->last_trans, + (unsigned long long)__entry->logged_trans) +); + +DEFINE_EVENT(btrfs__inode, btrfs_inode_new, + + TP_PROTO(struct inode *inode), + + TP_ARGS(inode) +); + +DEFINE_EVENT(btrfs__inode, btrfs_inode_request, + + TP_PROTO(struct inode *inode), + + TP_ARGS(inode) +); + +DEFINE_EVENT(btrfs__inode, btrfs_inode_evict, + + TP_PROTO(struct inode *inode), + + TP_ARGS(inode) +); + +#define __show_map_type(type) \ + __print_symbolic_u64(type, \ + { EXTENT_MAP_LAST_BYTE, "LAST_BYTE" }, \ + { EXTENT_MAP_HOLE, "HOLE" }, \ + { EXTENT_MAP_INLINE, "INLINE" }, \ + { EXTENT_MAP_DELALLOC, "DELALLOC" }) + +#define show_map_type(type) \ + type, (type >= EXTENT_MAP_LAST_BYTE) ? "-" : __show_map_type(type) + +#define show_map_flags(flag) \ + __print_flags(flag, "|", \ + { EXTENT_FLAG_PINNED, "PINNED" }, \ + { EXTENT_FLAG_COMPRESSED, "COMPRESSED" }, \ + { EXTENT_FLAG_VACANCY, "VACANCY" }, \ + { EXTENT_FLAG_PREALLOC, "PREALLOC" }) + +TRACE_EVENT(btrfs_get_extent, + + TP_PROTO(struct btrfs_root *root, struct extent_map *map), + + TP_ARGS(root, map), + + TP_STRUCT__entry( + __field( u64, root_objectid ) + __field( u64, start ) + __field( u64, len ) + __field( u64, orig_start ) + __field( u64, block_start ) + __field( u64, block_len ) + __field( unsigned long, flags ) + __field( int, refs ) + __field( unsigned int, compress_type ) + ), + + TP_fast_assign( + __entry->root_objectid = root->root_key.objectid; + __entry->start = map->start; + __entry->len = map->len; + __entry->orig_start = map->orig_start; + __entry->block_start = map->block_start; + __entry->block_len = map->block_len; + __entry->flags = map->flags; + __entry->refs = atomic_read(&map->refs); + __entry->compress_type = map->compress_type; + ), + + TP_printk("root = %llu(%s), start = %llu, len = %llu, " + "orig_start = %llu, block_start = %llu(%s), " + "block_len = %llu, flags = %s, refs = %u, " + "compress_type = %u", + show_root_type(__entry->root_objectid), + (unsigned long long)__entry->start, + (unsigned long long)__entry->len, + (unsigned long long)__entry->orig_start, + show_map_type(__entry->block_start), + (unsigned long long)__entry->block_len, + show_map_flags(__entry->flags), + __entry->refs, __entry->compress_type) +); + +#define show_ordered_flags(flags) \ + __print_symbolic(flags, \ + { BTRFS_ORDERED_IO_DONE, "IO_DONE" }, \ + { BTRFS_ORDERED_COMPLETE, "COMPLETE" }, \ + { BTRFS_ORDERED_NOCOW, "NOCOW" }, \ + { BTRFS_ORDERED_COMPRESSED, "COMPRESSED" }, \ + { BTRFS_ORDERED_PREALLOC, "PREALLOC" }, \ + { BTRFS_ORDERED_DIRECT, "DIRECT" }) + +DECLARE_EVENT_CLASS(btrfs__ordered_extent, + + TP_PROTO(struct inode *inode, struct btrfs_ordered_extent *ordered), + + TP_ARGS(inode, ordered), + + TP_STRUCT__entry( + __field( ino_t, ino ) + __field( u64, file_offset ) + __field( u64, start ) + __field( u64, len ) + __field( u64, disk_len ) + __field( u64, bytes_left ) + __field( unsigned long, flags ) + __field( int, compress_type ) + __field( int, refs ) + __field( u64, root_objectid ) + ), + + TP_fast_assign( + __entry->ino = inode->i_ino; + __entry->file_offset = ordered->file_offset; + __entry->start = ordered->start; + __entry->len = ordered->len; + __entry->disk_len = ordered->disk_len; + __entry->bytes_left = ordered->bytes_left; + __entry->flags = ordered->flags; + __entry->compress_type = ordered->compress_type; + __entry->refs = atomic_read(&ordered->refs); + __entry->root_objectid = + BTRFS_I(inode)->root->root_key.objectid; + ), + + TP_printk("root = %llu(%s), ino = %llu, file_offset = %llu, " + "start = %llu, len = %llu, disk_len = %llu, " + "bytes_left = %llu, flags = %s, compress_type = %d, " + "refs = %d", + show_root_type(__entry->root_objectid), + (unsigned long long)__entry->ino, + (unsigned long long)__entry->file_offset, + (unsigned long long)__entry->start, + (unsigned long long)__entry->len, + (unsigned long long)__entry->disk_len, + (unsigned long long)__entry->bytes_left, + show_ordered_flags(__entry->flags), + __entry->compress_type, __entry->refs) +); + +DEFINE_EVENT(btrfs__ordered_extent, btrfs_ordered_extent_add, + + TP_PROTO(struct inode *inode, struct btrfs_ordered_extent *ordered), + + TP_ARGS(inode, ordered) +); + +DEFINE_EVENT(btrfs__ordered_extent, btrfs_ordered_extent_remove, + + TP_PROTO(struct inode *inode, struct btrfs_ordered_extent *ordered), + + TP_ARGS(inode, ordered) +); + +DEFINE_EVENT(btrfs__ordered_extent, btrfs_ordered_extent_start, + + TP_PROTO(struct inode *inode, struct btrfs_ordered_extent *ordered), + + TP_ARGS(inode, ordered) +); + +DEFINE_EVENT(btrfs__ordered_extent, btrfs_ordered_extent_put, + + TP_PROTO(struct inode *inode, struct btrfs_ordered_extent *ordered), + + TP_ARGS(inode, ordered) +); + +DECLARE_EVENT_CLASS(btrfs__writepage, + + TP_PROTO(struct page *page, struct inode *inode, + struct writeback_control *wbc), + + TP_ARGS(page, inode, wbc), + + TP_STRUCT__entry( + __field( ino_t, ino ) + __field( pgoff_t, index ) + __field( long, nr_to_write ) + __field( long, pages_skipped ) + __field( loff_t, range_start ) + __field( loff_t, range_end ) + __field( char, for_kupdate ) + __field( char, for_reclaim ) + __field( char, range_cyclic ) + __field( pgoff_t, writeback_index ) + __field( u64, root_objectid ) + ), + + TP_fast_assign( + __entry->ino = inode->i_ino; + __entry->index = page->index; + __entry->nr_to_write = wbc->nr_to_write; + __entry->pages_skipped = wbc->pages_skipped; + __entry->range_start = wbc->range_start; + __entry->range_end = wbc->range_end; + __entry->for_kupdate = wbc->for_kupdate; + __entry->for_reclaim = wbc->for_reclaim; + __entry->range_cyclic = wbc->range_cyclic; + __entry->writeback_index = inode->i_mapping->writeback_index; + __entry->root_objectid = + BTRFS_I(inode)->root->root_key.objectid; + ), + + TP_printk("root = %llu(%s), ino = %lu, page_index = %lu, " + "nr_to_write = %ld, pages_skipped = %ld, range_start = %llu, " + "range_end = %llu, for_kupdate = %d, " + "for_reclaim = %d, range_cyclic = %d, writeback_index = %lu", + show_root_type(__entry->root_objectid), + (unsigned long)__entry->ino, __entry->index, + __entry->nr_to_write, __entry->pages_skipped, + __entry->range_start, __entry->range_end, + __entry->for_kupdate, + __entry->for_reclaim, __entry->range_cyclic, + (unsigned long)__entry->writeback_index) +); + +DEFINE_EVENT(btrfs__writepage, __extent_writepage, + + TP_PROTO(struct page *page, struct inode *inode, + struct writeback_control *wbc), + + TP_ARGS(page, inode, wbc) +); + +TRACE_EVENT(btrfs_writepage_end_io_hook, + + TP_PROTO(struct page *page, u64 start, u64 end, int uptodate), + + TP_ARGS(page, start, end, uptodate), + + TP_STRUCT__entry( + __field( ino_t, ino ) + __field( pgoff_t, index ) + __field( u64, start ) + __field( u64, end ) + __field( int, uptodate ) + __field( u64, root_objectid ) + ), + + TP_fast_assign( + __entry->ino = page->mapping->host->i_ino; + __entry->index = page->index; + __entry->start = start; + __entry->end = end; + __entry->uptodate = uptodate; + __entry->root_objectid = + BTRFS_I(page->mapping->host)->root->root_key.objectid; + ), + + TP_printk("root = %llu(%s), ino = %lu, page_index = %lu, start = %llu, " + "end = %llu, uptodate = %d", + show_root_type(__entry->root_objectid), + (unsigned long)__entry->ino, (unsigned long)__entry->index, + (unsigned long long)__entry->start, + (unsigned long long)__entry->end, __entry->uptodate) +); + +TRACE_EVENT(btrfs_sync_file, + + TP_PROTO(struct file *file, int datasync), + + TP_ARGS(file, datasync), + + TP_STRUCT__entry( + __field( ino_t, ino ) + __field( ino_t, parent ) + __field( int, datasync ) + __field( u64, root_objectid ) + ), + + TP_fast_assign( + struct dentry *dentry = file->f_path.dentry; + struct inode *inode = dentry->d_inode; + + __entry->ino = inode->i_ino; + __entry->parent = dentry->d_parent->d_inode->i_ino; + __entry->datasync = datasync; + __entry->root_objectid = + BTRFS_I(inode)->root->root_key.objectid; + ), + + TP_printk("root = %llu(%s), ino = %ld, parent = %ld, datasync = %d", + show_root_type(__entry->root_objectid), + (unsigned long)__entry->ino, (unsigned long)__entry->parent, + __entry->datasync) +); + +TRACE_EVENT(btrfs_sync_fs, + + TP_PROTO(int wait), + + TP_ARGS(wait), + + TP_STRUCT__entry( + __field( int, wait ) + ), + + TP_fast_assign( + __entry->wait = wait; + ), + + TP_printk("wait = %d", __entry->wait) +); + +#define show_ref_action(action) \ + __print_symbolic(action, \ + { BTRFS_ADD_DELAYED_REF, "ADD_DELAYED_REF" }, \ + { BTRFS_DROP_DELAYED_REF, "DROP_DELAYED_REF" }, \ + { BTRFS_ADD_DELAYED_EXTENT, "ADD_DELAYED_EXTENT" }, \ + { BTRFS_UPDATE_DELAYED_HEAD, "UPDATE_DELAYED_HEAD" }) + + +TRACE_EVENT(btrfs_delayed_tree_ref, + + TP_PROTO(struct btrfs_delayed_ref_node *ref, + struct btrfs_delayed_tree_ref *full_ref, + int action), + + TP_ARGS(ref, full_ref, action), + + TP_STRUCT__entry( + __field( u64, bytenr ) + __field( u64, num_bytes ) + __field( int, action ) + __field( u64, parent ) + __field( u64, ref_root ) + __field( int, level ) + __field( int, type ) + __field( u64, seq ) + ), + + TP_fast_assign( + __entry->bytenr = ref->bytenr; + __entry->num_bytes = ref->num_bytes; + __entry->action = action; + __entry->parent = full_ref->parent; + __entry->ref_root = full_ref->root; + __entry->level = full_ref->level; + __entry->type = ref->type; + __entry->seq = ref->seq; + ), + + TP_printk("bytenr = %llu, num_bytes = %llu, action = %s, " + "parent = %llu(%s), ref_root = %llu(%s), level = %d, " + "type = %s, seq = %llu", + (unsigned long long)__entry->bytenr, + (unsigned long long)__entry->num_bytes, + show_ref_action(__entry->action), + show_root_type(__entry->parent), + show_root_type(__entry->ref_root), + __entry->level, show_ref_type(__entry->type), + (unsigned long long)__entry->seq) +); + +TRACE_EVENT(btrfs_delayed_data_ref, + + TP_PROTO(struct btrfs_delayed_ref_node *ref, + struct btrfs_delayed_data_ref *full_ref, + int action), + + TP_ARGS(ref, full_ref, action), + + TP_STRUCT__entry( + __field( u64, bytenr ) + __field( u64, num_bytes ) + __field( int, action ) + __field( u64, parent ) + __field( u64, ref_root ) + __field( u64, owner ) + __field( u64, offset ) + __field( int, type ) + __field( u64, seq ) + ), + + TP_fast_assign( + __entry->bytenr = ref->bytenr; + __entry->num_bytes = ref->num_bytes; + __entry->action = action; + __entry->parent = full_ref->parent; + __entry->ref_root = full_ref->root; + __entry->owner = full_ref->objectid; + __entry->offset = full_ref->offset; + __entry->type = ref->type; + __entry->seq = ref->seq; + ), + + TP_printk("bytenr = %llu, num_bytes = %llu, action = %s, " + "parent = %llu(%s), ref_root = %llu(%s), owner = %llu, " + "offset = %llu, type = %s, seq = %llu", + (unsigned long long)__entry->bytenr, + (unsigned long long)__entry->num_bytes, + show_ref_action(__entry->action), + show_root_type(__entry->parent), + show_root_type(__entry->ref_root), + (unsigned long long)__entry->owner, + (unsigned long long)__entry->offset, + show_ref_type(__entry->type), + (unsigned long long)__entry->seq) +); + +TRACE_EVENT(btrfs_delayed_ref_head, + + TP_PROTO(struct btrfs_delayed_ref_node *ref, + struct btrfs_delayed_ref_head *head_ref, + int action), + + TP_ARGS(ref, head_ref, action), + + TP_STRUCT__entry( + __field( u64, bytenr ) + __field( u64, num_bytes ) + __field( int, action ) + __field( int, is_data ) + ), + + TP_fast_assign( + __entry->bytenr = ref->bytenr; + __entry->num_bytes = ref->num_bytes; + __entry->action = action; + __entry->is_data = head_ref->is_data; + ), + + TP_printk("bytenr = %llu, num_bytes = %llu, action = %s, is_data = %d", + (unsigned long long)__entry->bytenr, + (unsigned long long)__entry->num_bytes, + show_ref_action(__entry->action), + __entry->is_data) +); + +#define show_chunk_type(type) \ + __print_flags(type, "|", \ + { BTRFS_BLOCK_GROUP_DATA, "DATA" }, \ + { BTRFS_BLOCK_GROUP_SYSTEM, "SYSTEM"}, \ + { BTRFS_BLOCK_GROUP_METADATA, "METADATA"}, \ + { BTRFS_BLOCK_GROUP_RAID0, "RAID0" }, \ + { BTRFS_BLOCK_GROUP_RAID1, "RAID1" }, \ + { BTRFS_BLOCK_GROUP_DUP, "DUP" }, \ + { BTRFS_BLOCK_GROUP_RAID10, "RAID10"}) + +DECLARE_EVENT_CLASS(btrfs__chunk, + + TP_PROTO(struct btrfs_root *root, struct map_lookup *map, + u64 offset, u64 size), + + TP_ARGS(root, map, offset, size), + + TP_STRUCT__entry( + __field( int, num_stripes ) + __field( u64, type ) + __field( int, sub_stripes ) + __field( u64, offset ) + __field( u64, size ) + __field( u64, root_objectid ) + ), + + TP_fast_assign( + __entry->num_stripes = map->num_stripes; + __entry->type = map->type; + __entry->sub_stripes = map->sub_stripes; + __entry->offset = offset; + __entry->size = size; + __entry->root_objectid = root->root_key.objectid; + ), + + TP_printk("root = %llu(%s), offset = %llu, size = %llu, " + "num_stripes = %d, sub_stripes = %d, type = %s", + show_root_type(__entry->root_objectid), + (unsigned long long)__entry->offset, + (unsigned long long)__entry->size, + __entry->num_stripes, __entry->sub_stripes, + show_chunk_type(__entry->type)) +); + +DEFINE_EVENT(btrfs__chunk, btrfs_chunk_alloc, + + TP_PROTO(struct btrfs_root *root, struct map_lookup *map, + u64 offset, u64 size), + + TP_ARGS(root, map, offset, size) +); + +DEFINE_EVENT(btrfs__chunk, btrfs_chunk_free, + + TP_PROTO(struct btrfs_root *root, struct map_lookup *map, + u64 offset, u64 size), + + TP_ARGS(root, map, offset, size) +); + +TRACE_EVENT(btrfs_cow_block, + + TP_PROTO(struct btrfs_root *root, struct extent_buffer *buf, + struct extent_buffer *cow), + + TP_ARGS(root, buf, cow), + + TP_STRUCT__entry( + __field( u64, root_objectid ) + __field( u64, buf_start ) + __field( int, refs ) + __field( u64, cow_start ) + __field( int, buf_level ) + __field( int, cow_level ) + ), + + TP_fast_assign( + __entry->root_objectid = root->root_key.objectid; + __entry->buf_start = buf->start; + __entry->refs = atomic_read(&buf->refs); + __entry->cow_start = cow->start; + __entry->buf_level = btrfs_header_level(buf); + __entry->cow_level = btrfs_header_level(cow); + ), + + TP_printk("root = %llu(%s), refs = %d, orig_buf = %llu " + "(orig_level = %d), cow_buf = %llu (cow_level = %d)", + show_root_type(__entry->root_objectid), + __entry->refs, + (unsigned long long)__entry->buf_start, + __entry->buf_level, + (unsigned long long)__entry->cow_start, + __entry->cow_level) +); + +TRACE_EVENT(btrfs_space_reservation, + + TP_PROTO(struct btrfs_fs_info *fs_info, char *type, u64 val, + u64 bytes, int reserve), + + TP_ARGS(fs_info, type, val, bytes, reserve), + + TP_STRUCT__entry( + __array( u8, fsid, BTRFS_UUID_SIZE ) + __string( type, type ) + __field( u64, val ) + __field( u64, bytes ) + __field( int, reserve ) + ), + + TP_fast_assign( + memcpy(__entry->fsid, fs_info->fsid, BTRFS_UUID_SIZE); + __assign_str(type, type); + __entry->val = val; + __entry->bytes = bytes; + __entry->reserve = reserve; + ), + + TP_printk("%pU: %s: %Lu %s %Lu", __entry->fsid, __get_str(type), + __entry->val, __entry->reserve ? "reserve" : "release", + __entry->bytes) +); + +DECLARE_EVENT_CLASS(btrfs__reserved_extent, + + TP_PROTO(struct btrfs_root *root, u64 start, u64 len), + + TP_ARGS(root, start, len), + + TP_STRUCT__entry( + __field( u64, root_objectid ) + __field( u64, start ) + __field( u64, len ) + ), + + TP_fast_assign( + __entry->root_objectid = root->root_key.objectid; + __entry->start = start; + __entry->len = len; + ), + + TP_printk("root = %llu(%s), start = %llu, len = %llu", + show_root_type(__entry->root_objectid), + (unsigned long long)__entry->start, + (unsigned long long)__entry->len) +); + +DEFINE_EVENT(btrfs__reserved_extent, btrfs_reserved_extent_alloc, + + TP_PROTO(struct btrfs_root *root, u64 start, u64 len), + + TP_ARGS(root, start, len) +); + +DEFINE_EVENT(btrfs__reserved_extent, btrfs_reserved_extent_free, + + TP_PROTO(struct btrfs_root *root, u64 start, u64 len), + + TP_ARGS(root, start, len) +); + +TRACE_EVENT(find_free_extent, + + TP_PROTO(struct btrfs_root *root, u64 num_bytes, u64 empty_size, + u64 data), + + TP_ARGS(root, num_bytes, empty_size, data), + + TP_STRUCT__entry( + __field( u64, root_objectid ) + __field( u64, num_bytes ) + __field( u64, empty_size ) + __field( u64, data ) + ), + + TP_fast_assign( + __entry->root_objectid = root->root_key.objectid; + __entry->num_bytes = num_bytes; + __entry->empty_size = empty_size; + __entry->data = data; + ), + + TP_printk("root = %Lu(%s), len = %Lu, empty_size = %Lu, " + "flags = %Lu(%s)", show_root_type(__entry->root_objectid), + __entry->num_bytes, __entry->empty_size, __entry->data, + __print_flags((unsigned long)__entry->data, "|", + BTRFS_GROUP_FLAGS)) +); + +DECLARE_EVENT_CLASS(btrfs__reserve_extent, + + TP_PROTO(struct btrfs_root *root, + struct btrfs_block_group_cache *block_group, u64 start, + u64 len), + + TP_ARGS(root, block_group, start, len), + + TP_STRUCT__entry( + __field( u64, root_objectid ) + __field( u64, bg_objectid ) + __field( u64, flags ) + __field( u64, start ) + __field( u64, len ) + ), + + TP_fast_assign( + __entry->root_objectid = root->root_key.objectid; + __entry->bg_objectid = block_group->key.objectid; + __entry->flags = block_group->flags; + __entry->start = start; + __entry->len = len; + ), + + TP_printk("root = %Lu(%s), block_group = %Lu, flags = %Lu(%s), " + "start = %Lu, len = %Lu", + show_root_type(__entry->root_objectid), __entry->bg_objectid, + __entry->flags, __print_flags((unsigned long)__entry->flags, + "|", BTRFS_GROUP_FLAGS), + __entry->start, __entry->len) +); + +DEFINE_EVENT(btrfs__reserve_extent, btrfs_reserve_extent, + + TP_PROTO(struct btrfs_root *root, + struct btrfs_block_group_cache *block_group, u64 start, + u64 len), + + TP_ARGS(root, block_group, start, len) +); + +DEFINE_EVENT(btrfs__reserve_extent, btrfs_reserve_extent_cluster, + + TP_PROTO(struct btrfs_root *root, + struct btrfs_block_group_cache *block_group, u64 start, + u64 len), + + TP_ARGS(root, block_group, start, len) +); + +TRACE_EVENT(btrfs_find_cluster, + + TP_PROTO(struct btrfs_block_group_cache *block_group, u64 start, + u64 bytes, u64 empty_size, u64 min_bytes), + + TP_ARGS(block_group, start, bytes, empty_size, min_bytes), + + TP_STRUCT__entry( + __field( u64, bg_objectid ) + __field( u64, flags ) + __field( u64, start ) + __field( u64, bytes ) + __field( u64, empty_size ) + __field( u64, min_bytes ) + ), + + TP_fast_assign( + __entry->bg_objectid = block_group->key.objectid; + __entry->flags = block_group->flags; + __entry->start = start; + __entry->bytes = bytes; + __entry->empty_size = empty_size; + __entry->min_bytes = min_bytes; + ), + + TP_printk("block_group = %Lu, flags = %Lu(%s), start = %Lu, len = %Lu," + " empty_size = %Lu, min_bytes = %Lu", __entry->bg_objectid, + __entry->flags, + __print_flags((unsigned long)__entry->flags, "|", + BTRFS_GROUP_FLAGS), __entry->start, + __entry->bytes, __entry->empty_size, __entry->min_bytes) +); + +TRACE_EVENT(btrfs_failed_cluster_setup, + + TP_PROTO(struct btrfs_block_group_cache *block_group), + + TP_ARGS(block_group), + + TP_STRUCT__entry( + __field( u64, bg_objectid ) + ), + + TP_fast_assign( + __entry->bg_objectid = block_group->key.objectid; + ), + + TP_printk("block_group = %Lu", __entry->bg_objectid) +); + +TRACE_EVENT(btrfs_setup_cluster, + + TP_PROTO(struct btrfs_block_group_cache *block_group, + struct btrfs_free_cluster *cluster, u64 size, int bitmap), + + TP_ARGS(block_group, cluster, size, bitmap), + + TP_STRUCT__entry( + __field( u64, bg_objectid ) + __field( u64, flags ) + __field( u64, start ) + __field( u64, max_size ) + __field( u64, size ) + __field( int, bitmap ) + ), + + TP_fast_assign( + __entry->bg_objectid = block_group->key.objectid; + __entry->flags = block_group->flags; + __entry->start = cluster->window_start; + __entry->max_size = cluster->max_size; + __entry->size = size; + __entry->bitmap = bitmap; + ), + + TP_printk("block_group = %Lu, flags = %Lu(%s), window_start = %Lu, " + "size = %Lu, max_size = %Lu, bitmap = %d", + __entry->bg_objectid, + __entry->flags, + __print_flags((unsigned long)__entry->flags, "|", + BTRFS_GROUP_FLAGS), __entry->start, + __entry->size, __entry->max_size, __entry->bitmap) +); + +struct extent_state; +TRACE_EVENT(alloc_extent_state, + + TP_PROTO(struct extent_state *state, gfp_t mask, unsigned long IP), + + TP_ARGS(state, mask, IP), + + TP_STRUCT__entry( + __field(struct extent_state *, state) + __field(gfp_t, mask) + __field(unsigned long, ip) + ), + + TP_fast_assign( + __entry->state = state, + __entry->mask = mask, + __entry->ip = IP + ), + + TP_printk("state=%p; mask = %s; caller = %pF", __entry->state, + show_gfp_flags(__entry->mask), (void *)__entry->ip) +); + +TRACE_EVENT(free_extent_state, + + TP_PROTO(struct extent_state *state, unsigned long IP), + + TP_ARGS(state, IP), + + TP_STRUCT__entry( + __field(struct extent_state *, state) + __field(unsigned long, ip) + ), + + TP_fast_assign( + __entry->state = state, + __entry->ip = IP + ), + + TP_printk(" state=%p; caller = %pF", __entry->state, + (void *)__entry->ip) +); + +#endif /* _TRACE_BTRFS_H */ + +/* This part must be outside protection */ +#include --- linux-3.11.0.orig/ubuntu/lttng/instrumentation/events/mainline/irq.h +++ linux-3.11.0/ubuntu/lttng/instrumentation/events/mainline/irq.h @@ -0,0 +1,150 @@ +#undef TRACE_SYSTEM +#define TRACE_SYSTEM irq + +#if !defined(_TRACE_IRQ_H) || defined(TRACE_HEADER_MULTI_READ) +#define _TRACE_IRQ_H + +#include + +struct irqaction; +struct softirq_action; + +#define softirq_name(sirq) { sirq##_SOFTIRQ, #sirq } +#define show_softirq_name(val) \ + __print_symbolic(val, \ + softirq_name(HI), \ + softirq_name(TIMER), \ + softirq_name(NET_TX), \ + softirq_name(NET_RX), \ + softirq_name(BLOCK), \ + softirq_name(BLOCK_IOPOLL), \ + softirq_name(TASKLET), \ + softirq_name(SCHED), \ + softirq_name(HRTIMER), \ + softirq_name(RCU)) + +/** + * irq_handler_entry - called immediately before the irq action handler + * @irq: irq number + * @action: pointer to struct irqaction + * + * The struct irqaction pointed to by @action contains various + * information about the handler, including the device name, + * @action->name, and the device id, @action->dev_id. When used in + * conjunction with the irq_handler_exit tracepoint, we can figure + * out irq handler latencies. + */ +TRACE_EVENT(irq_handler_entry, + + TP_PROTO(int irq, struct irqaction *action), + + TP_ARGS(irq, action), + + TP_STRUCT__entry( + __field( int, irq ) + __string( name, action->name ) + ), + + TP_fast_assign( + __entry->irq = irq; + __assign_str(name, action->name); + ), + + TP_printk("irq=%d name=%s", __entry->irq, __get_str(name)) +); + +/** + * irq_handler_exit - called immediately after the irq action handler returns + * @irq: irq number + * @action: pointer to struct irqaction + * @ret: return value + * + * If the @ret value is set to IRQ_HANDLED, then we know that the corresponding + * @action->handler scuccessully handled this irq. Otherwise, the irq might be + * a shared irq line, or the irq was not handled successfully. Can be used in + * conjunction with the irq_handler_entry to understand irq handler latencies. + */ +TRACE_EVENT(irq_handler_exit, + + TP_PROTO(int irq, struct irqaction *action, int ret), + + TP_ARGS(irq, action, ret), + + TP_STRUCT__entry( + __field( int, irq ) + __field( int, ret ) + ), + + TP_fast_assign( + __entry->irq = irq; + __entry->ret = ret; + ), + + TP_printk("irq=%d ret=%s", + __entry->irq, __entry->ret ? "handled" : "unhandled") +); + +DECLARE_EVENT_CLASS(softirq, + + TP_PROTO(unsigned int vec_nr), + + TP_ARGS(vec_nr), + + TP_STRUCT__entry( + __field( unsigned int, vec ) + ), + + TP_fast_assign( + __entry->vec = vec_nr; + ), + + TP_printk("vec=%u [action=%s]", __entry->vec, + show_softirq_name(__entry->vec)) +); + +/** + * softirq_entry - called immediately before the softirq handler + * @vec_nr: softirq vector number + * + * When used in combination with the softirq_exit tracepoint + * we can determine the softirq handler runtine. + */ +DEFINE_EVENT(softirq, softirq_entry, + + TP_PROTO(unsigned int vec_nr), + + TP_ARGS(vec_nr) +); + +/** + * softirq_exit - called immediately after the softirq handler returns + * @vec_nr: softirq vector number + * + * When used in combination with the softirq_entry tracepoint + * we can determine the softirq handler runtine. + */ +DEFINE_EVENT(softirq, softirq_exit, + + TP_PROTO(unsigned int vec_nr), + + TP_ARGS(vec_nr) +); + +/** + * softirq_raise - called immediately when a softirq is raised + * @vec_nr: softirq vector number + * + * When used in combination with the softirq_entry tracepoint + * we can determine the softirq raise to run latency. + */ +DEFINE_EVENT(softirq, softirq_raise, + + TP_PROTO(unsigned int vec_nr), + + TP_ARGS(vec_nr) +); + +#endif /* _TRACE_IRQ_H */ + +/* This part must be outside protection */ +#include --- linux-3.11.0.orig/ubuntu/lttng/instrumentation/events/mainline/rcu.h +++ linux-3.11.0/ubuntu/lttng/instrumentation/events/mainline/rcu.h @@ -0,0 +1,618 @@ +#undef TRACE_SYSTEM +#define TRACE_SYSTEM rcu + +#if !defined(_TRACE_RCU_H) || defined(TRACE_HEADER_MULTI_READ) +#define _TRACE_RCU_H + +#include + +/* + * Tracepoint for start/end markers used for utilization calculations. + * By convention, the string is of the following forms: + * + * "Start " -- Mark the start of the specified activity, + * such as "context switch". Nesting is permitted. + * "End " -- Mark the end of the specified activity. + * + * An "@" character within "" is a comment character: Data + * reduction scripts will ignore the "@" and the remainder of the line. + */ +TRACE_EVENT(rcu_utilization, + + TP_PROTO(char *s), + + TP_ARGS(s), + + TP_STRUCT__entry( + __field(char *, s) + ), + + TP_fast_assign( + __entry->s = s; + ), + + TP_printk("%s", __entry->s) +); + +#ifdef CONFIG_RCU_TRACE + +#if defined(CONFIG_TREE_RCU) || defined(CONFIG_TREE_PREEMPT_RCU) + +/* + * Tracepoint for grace-period events: starting and ending a grace + * period ("start" and "end", respectively), a CPU noting the start + * of a new grace period or the end of an old grace period ("cpustart" + * and "cpuend", respectively), a CPU passing through a quiescent + * state ("cpuqs"), a CPU coming online or going offline ("cpuonl" + * and "cpuofl", respectively), and a CPU being kicked for being too + * long in dyntick-idle mode ("kick"). + */ +TRACE_EVENT(rcu_grace_period, + + TP_PROTO(char *rcuname, unsigned long gpnum, char *gpevent), + + TP_ARGS(rcuname, gpnum, gpevent), + + TP_STRUCT__entry( + __field(char *, rcuname) + __field(unsigned long, gpnum) + __field(char *, gpevent) + ), + + TP_fast_assign( + __entry->rcuname = rcuname; + __entry->gpnum = gpnum; + __entry->gpevent = gpevent; + ), + + TP_printk("%s %lu %s", + __entry->rcuname, __entry->gpnum, __entry->gpevent) +); + +/* + * Tracepoint for grace-period-initialization events. These are + * distinguished by the type of RCU, the new grace-period number, the + * rcu_node structure level, the starting and ending CPU covered by the + * rcu_node structure, and the mask of CPUs that will be waited for. + * All but the type of RCU are extracted from the rcu_node structure. + */ +TRACE_EVENT(rcu_grace_period_init, + + TP_PROTO(char *rcuname, unsigned long gpnum, u8 level, + int grplo, int grphi, unsigned long qsmask), + + TP_ARGS(rcuname, gpnum, level, grplo, grphi, qsmask), + + TP_STRUCT__entry( + __field(char *, rcuname) + __field(unsigned long, gpnum) + __field(u8, level) + __field(int, grplo) + __field(int, grphi) + __field(unsigned long, qsmask) + ), + + TP_fast_assign( + __entry->rcuname = rcuname; + __entry->gpnum = gpnum; + __entry->level = level; + __entry->grplo = grplo; + __entry->grphi = grphi; + __entry->qsmask = qsmask; + ), + + TP_printk("%s %lu %u %d %d %lx", + __entry->rcuname, __entry->gpnum, __entry->level, + __entry->grplo, __entry->grphi, __entry->qsmask) +); + +/* + * Tracepoint for tasks blocking within preemptible-RCU read-side + * critical sections. Track the type of RCU (which one day might + * include SRCU), the grace-period number that the task is blocking + * (the current or the next), and the task's PID. + */ +TRACE_EVENT(rcu_preempt_task, + + TP_PROTO(char *rcuname, int pid, unsigned long gpnum), + + TP_ARGS(rcuname, pid, gpnum), + + TP_STRUCT__entry( + __field(char *, rcuname) + __field(unsigned long, gpnum) + __field(int, pid) + ), + + TP_fast_assign( + __entry->rcuname = rcuname; + __entry->gpnum = gpnum; + __entry->pid = pid; + ), + + TP_printk("%s %lu %d", + __entry->rcuname, __entry->gpnum, __entry->pid) +); + +/* + * Tracepoint for tasks that blocked within a given preemptible-RCU + * read-side critical section exiting that critical section. Track the + * type of RCU (which one day might include SRCU) and the task's PID. + */ +TRACE_EVENT(rcu_unlock_preempted_task, + + TP_PROTO(char *rcuname, unsigned long gpnum, int pid), + + TP_ARGS(rcuname, gpnum, pid), + + TP_STRUCT__entry( + __field(char *, rcuname) + __field(unsigned long, gpnum) + __field(int, pid) + ), + + TP_fast_assign( + __entry->rcuname = rcuname; + __entry->gpnum = gpnum; + __entry->pid = pid; + ), + + TP_printk("%s %lu %d", __entry->rcuname, __entry->gpnum, __entry->pid) +); + +/* + * Tracepoint for quiescent-state-reporting events. These are + * distinguished by the type of RCU, the grace-period number, the + * mask of quiescent lower-level entities, the rcu_node structure level, + * the starting and ending CPU covered by the rcu_node structure, and + * whether there are any blocked tasks blocking the current grace period. + * All but the type of RCU are extracted from the rcu_node structure. + */ +TRACE_EVENT(rcu_quiescent_state_report, + + TP_PROTO(char *rcuname, unsigned long gpnum, + unsigned long mask, unsigned long qsmask, + u8 level, int grplo, int grphi, int gp_tasks), + + TP_ARGS(rcuname, gpnum, mask, qsmask, level, grplo, grphi, gp_tasks), + + TP_STRUCT__entry( + __field(char *, rcuname) + __field(unsigned long, gpnum) + __field(unsigned long, mask) + __field(unsigned long, qsmask) + __field(u8, level) + __field(int, grplo) + __field(int, grphi) + __field(u8, gp_tasks) + ), + + TP_fast_assign( + __entry->rcuname = rcuname; + __entry->gpnum = gpnum; + __entry->mask = mask; + __entry->qsmask = qsmask; + __entry->level = level; + __entry->grplo = grplo; + __entry->grphi = grphi; + __entry->gp_tasks = gp_tasks; + ), + + TP_printk("%s %lu %lx>%lx %u %d %d %u", + __entry->rcuname, __entry->gpnum, + __entry->mask, __entry->qsmask, __entry->level, + __entry->grplo, __entry->grphi, __entry->gp_tasks) +); + +/* + * Tracepoint for quiescent states detected by force_quiescent_state(). + * These trace events include the type of RCU, the grace-period number + * that was blocked by the CPU, the CPU itself, and the type of quiescent + * state, which can be "dti" for dyntick-idle mode, "ofl" for CPU offline, + * or "kick" when kicking a CPU that has been in dyntick-idle mode for + * too long. + */ +TRACE_EVENT(rcu_fqs, + + TP_PROTO(char *rcuname, unsigned long gpnum, int cpu, char *qsevent), + + TP_ARGS(rcuname, gpnum, cpu, qsevent), + + TP_STRUCT__entry( + __field(char *, rcuname) + __field(unsigned long, gpnum) + __field(int, cpu) + __field(char *, qsevent) + ), + + TP_fast_assign( + __entry->rcuname = rcuname; + __entry->gpnum = gpnum; + __entry->cpu = cpu; + __entry->qsevent = qsevent; + ), + + TP_printk("%s %lu %d %s", + __entry->rcuname, __entry->gpnum, + __entry->cpu, __entry->qsevent) +); + +#endif /* #if defined(CONFIG_TREE_RCU) || defined(CONFIG_TREE_PREEMPT_RCU) */ + +/* + * Tracepoint for dyntick-idle entry/exit events. These take a string + * as argument: "Start" for entering dyntick-idle mode, "End" for + * leaving it, "--=" for events moving towards idle, and "++=" for events + * moving away from idle. "Error on entry: not idle task" and "Error on + * exit: not idle task" indicate that a non-idle task is erroneously + * toying with the idle loop. + * + * These events also take a pair of numbers, which indicate the nesting + * depth before and after the event of interest. Note that task-related + * events use the upper bits of each number, while interrupt-related + * events use the lower bits. + */ +TRACE_EVENT(rcu_dyntick, + + TP_PROTO(char *polarity, long long oldnesting, long long newnesting), + + TP_ARGS(polarity, oldnesting, newnesting), + + TP_STRUCT__entry( + __field(char *, polarity) + __field(long long, oldnesting) + __field(long long, newnesting) + ), + + TP_fast_assign( + __entry->polarity = polarity; + __entry->oldnesting = oldnesting; + __entry->newnesting = newnesting; + ), + + TP_printk("%s %llx %llx", __entry->polarity, + __entry->oldnesting, __entry->newnesting) +); + +/* + * Tracepoint for RCU preparation for idle, the goal being to get RCU + * processing done so that the current CPU can shut off its scheduling + * clock and enter dyntick-idle mode. One way to accomplish this is + * to drain all RCU callbacks from this CPU, and the other is to have + * done everything RCU requires for the current grace period. In this + * latter case, the CPU will be awakened at the end of the current grace + * period in order to process the remainder of its callbacks. + * + * These tracepoints take a string as argument: + * + * "No callbacks": Nothing to do, no callbacks on this CPU. + * "In holdoff": Nothing to do, holding off after unsuccessful attempt. + * "Begin holdoff": Attempt failed, don't retry until next jiffy. + * "Dyntick with callbacks": Entering dyntick-idle despite callbacks. + * "Dyntick with lazy callbacks": Entering dyntick-idle w/lazy callbacks. + * "More callbacks": Still more callbacks, try again to clear them out. + * "Callbacks drained": All callbacks processed, off to dyntick idle! + * "Timer": Timer fired to cause CPU to continue processing callbacks. + * "Demigrate": Timer fired on wrong CPU, woke up correct CPU. + * "Cleanup after idle": Idle exited, timer canceled. + */ +TRACE_EVENT(rcu_prep_idle, + + TP_PROTO(char *reason), + + TP_ARGS(reason), + + TP_STRUCT__entry( + __field(char *, reason) + ), + + TP_fast_assign( + __entry->reason = reason; + ), + + TP_printk("%s", __entry->reason) +); + +/* + * Tracepoint for the registration of a single RCU callback function. + * The first argument is the type of RCU, the second argument is + * a pointer to the RCU callback itself, the third element is the + * number of lazy callbacks queued, and the fourth element is the + * total number of callbacks queued. + */ +TRACE_EVENT(rcu_callback, + + TP_PROTO(char *rcuname, struct rcu_head *rhp, long qlen_lazy, + long qlen), + + TP_ARGS(rcuname, rhp, qlen_lazy, qlen), + + TP_STRUCT__entry( + __field(char *, rcuname) + __field(void *, rhp) + __field(void *, func) + __field(long, qlen_lazy) + __field(long, qlen) + ), + + TP_fast_assign( + __entry->rcuname = rcuname; + __entry->rhp = rhp; + __entry->func = rhp->func; + __entry->qlen_lazy = qlen_lazy; + __entry->qlen = qlen; + ), + + TP_printk("%s rhp=%p func=%pf %ld/%ld", + __entry->rcuname, __entry->rhp, __entry->func, + __entry->qlen_lazy, __entry->qlen) +); + +/* + * Tracepoint for the registration of a single RCU callback of the special + * kfree() form. The first argument is the RCU type, the second argument + * is a pointer to the RCU callback, the third argument is the offset + * of the callback within the enclosing RCU-protected data structure, + * the fourth argument is the number of lazy callbacks queued, and the + * fifth argument is the total number of callbacks queued. + */ +TRACE_EVENT(rcu_kfree_callback, + + TP_PROTO(char *rcuname, struct rcu_head *rhp, unsigned long offset, + long qlen_lazy, long qlen), + + TP_ARGS(rcuname, rhp, offset, qlen_lazy, qlen), + + TP_STRUCT__entry( + __field(char *, rcuname) + __field(void *, rhp) + __field(unsigned long, offset) + __field(long, qlen_lazy) + __field(long, qlen) + ), + + TP_fast_assign( + __entry->rcuname = rcuname; + __entry->rhp = rhp; + __entry->offset = offset; + __entry->qlen_lazy = qlen_lazy; + __entry->qlen = qlen; + ), + + TP_printk("%s rhp=%p func=%ld %ld/%ld", + __entry->rcuname, __entry->rhp, __entry->offset, + __entry->qlen_lazy, __entry->qlen) +); + +/* + * Tracepoint for marking the beginning rcu_do_batch, performed to start + * RCU callback invocation. The first argument is the RCU flavor, + * the second is the number of lazy callbacks queued, the third is + * the total number of callbacks queued, and the fourth argument is + * the current RCU-callback batch limit. + */ +TRACE_EVENT(rcu_batch_start, + + TP_PROTO(char *rcuname, long qlen_lazy, long qlen, int blimit), + + TP_ARGS(rcuname, qlen_lazy, qlen, blimit), + + TP_STRUCT__entry( + __field(char *, rcuname) + __field(long, qlen_lazy) + __field(long, qlen) + __field(int, blimit) + ), + + TP_fast_assign( + __entry->rcuname = rcuname; + __entry->qlen_lazy = qlen_lazy; + __entry->qlen = qlen; + __entry->blimit = blimit; + ), + + TP_printk("%s CBs=%ld/%ld bl=%d", + __entry->rcuname, __entry->qlen_lazy, __entry->qlen, + __entry->blimit) +); + +/* + * Tracepoint for the invocation of a single RCU callback function. + * The first argument is the type of RCU, and the second argument is + * a pointer to the RCU callback itself. + */ +TRACE_EVENT(rcu_invoke_callback, + + TP_PROTO(char *rcuname, struct rcu_head *rhp), + + TP_ARGS(rcuname, rhp), + + TP_STRUCT__entry( + __field(char *, rcuname) + __field(void *, rhp) + __field(void *, func) + ), + + TP_fast_assign( + __entry->rcuname = rcuname; + __entry->rhp = rhp; + __entry->func = rhp->func; + ), + + TP_printk("%s rhp=%p func=%pf", + __entry->rcuname, __entry->rhp, __entry->func) +); + +/* + * Tracepoint for the invocation of a single RCU callback of the special + * kfree() form. The first argument is the RCU flavor, the second + * argument is a pointer to the RCU callback, and the third argument + * is the offset of the callback within the enclosing RCU-protected + * data structure. + */ +TRACE_EVENT(rcu_invoke_kfree_callback, + + TP_PROTO(char *rcuname, struct rcu_head *rhp, unsigned long offset), + + TP_ARGS(rcuname, rhp, offset), + + TP_STRUCT__entry( + __field(char *, rcuname) + __field(void *, rhp) + __field(unsigned long, offset) + ), + + TP_fast_assign( + __entry->rcuname = rcuname; + __entry->rhp = rhp; + __entry->offset = offset; + ), + + TP_printk("%s rhp=%p func=%ld", + __entry->rcuname, __entry->rhp, __entry->offset) +); + +/* + * Tracepoint for exiting rcu_do_batch after RCU callbacks have been + * invoked. The first argument is the name of the RCU flavor, + * the second argument is number of callbacks actually invoked, + * the third argument (cb) is whether or not any of the callbacks that + * were ready to invoke at the beginning of this batch are still + * queued, the fourth argument (nr) is the return value of need_resched(), + * the fifth argument (iit) is 1 if the current task is the idle task, + * and the sixth argument (risk) is the return value from + * rcu_is_callbacks_kthread(). + */ +TRACE_EVENT(rcu_batch_end, + + TP_PROTO(char *rcuname, int callbacks_invoked, + bool cb, bool nr, bool iit, bool risk), + + TP_ARGS(rcuname, callbacks_invoked, cb, nr, iit, risk), + + TP_STRUCT__entry( + __field(char *, rcuname) + __field(int, callbacks_invoked) + __field(bool, cb) + __field(bool, nr) + __field(bool, iit) + __field(bool, risk) + ), + + TP_fast_assign( + __entry->rcuname = rcuname; + __entry->callbacks_invoked = callbacks_invoked; + __entry->cb = cb; + __entry->nr = nr; + __entry->iit = iit; + __entry->risk = risk; + ), + + TP_printk("%s CBs-invoked=%d idle=%c%c%c%c", + __entry->rcuname, __entry->callbacks_invoked, + __entry->cb ? 'C' : '.', + __entry->nr ? 'S' : '.', + __entry->iit ? 'I' : '.', + __entry->risk ? 'R' : '.') +); + +/* + * Tracepoint for rcutorture readers. The first argument is the name + * of the RCU flavor from rcutorture's viewpoint and the second argument + * is the callback address. + */ +TRACE_EVENT(rcu_torture_read, + + TP_PROTO(char *rcutorturename, struct rcu_head *rhp), + + TP_ARGS(rcutorturename, rhp), + + TP_STRUCT__entry( + __field(char *, rcutorturename) + __field(struct rcu_head *, rhp) + ), + + TP_fast_assign( + __entry->rcutorturename = rcutorturename; + __entry->rhp = rhp; + ), + + TP_printk("%s torture read %p", + __entry->rcutorturename, __entry->rhp) +); + +/* + * Tracepoint for _rcu_barrier() execution. The string "s" describes + * the _rcu_barrier phase: + * "Begin": rcu_barrier_callback() started. + * "Check": rcu_barrier_callback() checking for piggybacking. + * "EarlyExit": rcu_barrier_callback() piggybacked, thus early exit. + * "Inc1": rcu_barrier_callback() piggyback check counter incremented. + * "Offline": rcu_barrier_callback() found offline CPU + * "OnlineQ": rcu_barrier_callback() found online CPU with callbacks. + * "OnlineNQ": rcu_barrier_callback() found online CPU, no callbacks. + * "IRQ": An rcu_barrier_callback() callback posted on remote CPU. + * "CB": An rcu_barrier_callback() invoked a callback, not the last. + * "LastCB": An rcu_barrier_callback() invoked the last callback. + * "Inc2": rcu_barrier_callback() piggyback check counter incremented. + * The "cpu" argument is the CPU or -1 if meaningless, the "cnt" argument + * is the count of remaining callbacks, and "done" is the piggybacking count. + */ +TRACE_EVENT(rcu_barrier, + + TP_PROTO(char *rcuname, char *s, int cpu, int cnt, unsigned long done), + + TP_ARGS(rcuname, s, cpu, cnt, done), + + TP_STRUCT__entry( + __field(char *, rcuname) + __field(char *, s) + __field(int, cpu) + __field(int, cnt) + __field(unsigned long, done) + ), + + TP_fast_assign( + __entry->rcuname = rcuname; + __entry->s = s; + __entry->cpu = cpu; + __entry->cnt = cnt; + __entry->done = done; + ), + + TP_printk("%s %s cpu %d remaining %d # %lu", + __entry->rcuname, __entry->s, __entry->cpu, __entry->cnt, + __entry->done) +); + +#else /* #ifdef CONFIG_RCU_TRACE */ + +#define trace_rcu_grace_period(rcuname, gpnum, gpevent) do { } while (0) +#define trace_rcu_grace_period_init(rcuname, gpnum, level, grplo, grphi, \ + qsmask) do { } while (0) +#define trace_rcu_preempt_task(rcuname, pid, gpnum) do { } while (0) +#define trace_rcu_unlock_preempted_task(rcuname, gpnum, pid) do { } while (0) +#define trace_rcu_quiescent_state_report(rcuname, gpnum, mask, qsmask, level, \ + grplo, grphi, gp_tasks) do { } \ + while (0) +#define trace_rcu_fqs(rcuname, gpnum, cpu, qsevent) do { } while (0) +#define trace_rcu_dyntick(polarity, oldnesting, newnesting) do { } while (0) +#define trace_rcu_prep_idle(reason) do { } while (0) +#define trace_rcu_callback(rcuname, rhp, qlen_lazy, qlen) do { } while (0) +#define trace_rcu_kfree_callback(rcuname, rhp, offset, qlen_lazy, qlen) \ + do { } while (0) +#define trace_rcu_batch_start(rcuname, qlen_lazy, qlen, blimit) \ + do { } while (0) +#define trace_rcu_invoke_callback(rcuname, rhp) do { } while (0) +#define trace_rcu_invoke_kfree_callback(rcuname, rhp, offset) do { } while (0) +#define trace_rcu_batch_end(rcuname, callbacks_invoked, cb, nr, iit, risk) \ + do { } while (0) +#define trace_rcu_torture_read(rcutorturename, rhp) do { } while (0) +#define trace_rcu_barrier(name, s, cpu, cnt, done) do { } while (0) + +#endif /* #else #ifdef CONFIG_RCU_TRACE */ + +#endif /* _TRACE_RCU_H */ + +/* This part must be outside protection */ +#include --- linux-3.11.0.orig/ubuntu/lttng/instrumentation/events/mainline/vmscan.h +++ linux-3.11.0/ubuntu/lttng/instrumentation/events/mainline/vmscan.h @@ -0,0 +1,383 @@ +#undef TRACE_SYSTEM +#define TRACE_SYSTEM vmscan + +#if !defined(_TRACE_VMSCAN_H) || defined(TRACE_HEADER_MULTI_READ) +#define _TRACE_VMSCAN_H + +#include +#include +#include +#include +#include + +#define RECLAIM_WB_ANON 0x0001u +#define RECLAIM_WB_FILE 0x0002u +#define RECLAIM_WB_MIXED 0x0010u +#define RECLAIM_WB_SYNC 0x0004u /* Unused, all reclaim async */ +#define RECLAIM_WB_ASYNC 0x0008u + +#define show_reclaim_flags(flags) \ + (flags) ? __print_flags(flags, "|", \ + {RECLAIM_WB_ANON, "RECLAIM_WB_ANON"}, \ + {RECLAIM_WB_FILE, "RECLAIM_WB_FILE"}, \ + {RECLAIM_WB_MIXED, "RECLAIM_WB_MIXED"}, \ + {RECLAIM_WB_SYNC, "RECLAIM_WB_SYNC"}, \ + {RECLAIM_WB_ASYNC, "RECLAIM_WB_ASYNC"} \ + ) : "RECLAIM_WB_NONE" + +#define trace_reclaim_flags(page) ( \ + (page_is_file_cache(page) ? RECLAIM_WB_FILE : RECLAIM_WB_ANON) | \ + (RECLAIM_WB_ASYNC) \ + ) + +#define trace_shrink_flags(file) \ + ( \ + (file ? RECLAIM_WB_FILE : RECLAIM_WB_ANON) | \ + (RECLAIM_WB_ASYNC) \ + ) + +TRACE_EVENT(mm_vmscan_kswapd_sleep, + + TP_PROTO(int nid), + + TP_ARGS(nid), + + TP_STRUCT__entry( + __field( int, nid ) + ), + + TP_fast_assign( + __entry->nid = nid; + ), + + TP_printk("nid=%d", __entry->nid) +); + +TRACE_EVENT(mm_vmscan_kswapd_wake, + + TP_PROTO(int nid, int order), + + TP_ARGS(nid, order), + + TP_STRUCT__entry( + __field( int, nid ) + __field( int, order ) + ), + + TP_fast_assign( + __entry->nid = nid; + __entry->order = order; + ), + + TP_printk("nid=%d order=%d", __entry->nid, __entry->order) +); + +TRACE_EVENT(mm_vmscan_wakeup_kswapd, + + TP_PROTO(int nid, int zid, int order), + + TP_ARGS(nid, zid, order), + + TP_STRUCT__entry( + __field( int, nid ) + __field( int, zid ) + __field( int, order ) + ), + + TP_fast_assign( + __entry->nid = nid; + __entry->zid = zid; + __entry->order = order; + ), + + TP_printk("nid=%d zid=%d order=%d", + __entry->nid, + __entry->zid, + __entry->order) +); + +DECLARE_EVENT_CLASS(mm_vmscan_direct_reclaim_begin_template, + + TP_PROTO(int order, int may_writepage, gfp_t gfp_flags), + + TP_ARGS(order, may_writepage, gfp_flags), + + TP_STRUCT__entry( + __field( int, order ) + __field( int, may_writepage ) + __field( gfp_t, gfp_flags ) + ), + + TP_fast_assign( + __entry->order = order; + __entry->may_writepage = may_writepage; + __entry->gfp_flags = gfp_flags; + ), + + TP_printk("order=%d may_writepage=%d gfp_flags=%s", + __entry->order, + __entry->may_writepage, + show_gfp_flags(__entry->gfp_flags)) +); + +DEFINE_EVENT(mm_vmscan_direct_reclaim_begin_template, mm_vmscan_direct_reclaim_begin, + + TP_PROTO(int order, int may_writepage, gfp_t gfp_flags), + + TP_ARGS(order, may_writepage, gfp_flags) +); + +DEFINE_EVENT(mm_vmscan_direct_reclaim_begin_template, mm_vmscan_memcg_reclaim_begin, + + TP_PROTO(int order, int may_writepage, gfp_t gfp_flags), + + TP_ARGS(order, may_writepage, gfp_flags) +); + +DEFINE_EVENT(mm_vmscan_direct_reclaim_begin_template, mm_vmscan_memcg_softlimit_reclaim_begin, + + TP_PROTO(int order, int may_writepage, gfp_t gfp_flags), + + TP_ARGS(order, may_writepage, gfp_flags) +); + +DECLARE_EVENT_CLASS(mm_vmscan_direct_reclaim_end_template, + + TP_PROTO(unsigned long nr_reclaimed), + + TP_ARGS(nr_reclaimed), + + TP_STRUCT__entry( + __field( unsigned long, nr_reclaimed ) + ), + + TP_fast_assign( + __entry->nr_reclaimed = nr_reclaimed; + ), + + TP_printk("nr_reclaimed=%lu", __entry->nr_reclaimed) +); + +DEFINE_EVENT(mm_vmscan_direct_reclaim_end_template, mm_vmscan_direct_reclaim_end, + + TP_PROTO(unsigned long nr_reclaimed), + + TP_ARGS(nr_reclaimed) +); + +DEFINE_EVENT(mm_vmscan_direct_reclaim_end_template, mm_vmscan_memcg_reclaim_end, + + TP_PROTO(unsigned long nr_reclaimed), + + TP_ARGS(nr_reclaimed) +); + +DEFINE_EVENT(mm_vmscan_direct_reclaim_end_template, mm_vmscan_memcg_softlimit_reclaim_end, + + TP_PROTO(unsigned long nr_reclaimed), + + TP_ARGS(nr_reclaimed) +); + +TRACE_EVENT(mm_shrink_slab_start, + TP_PROTO(struct shrinker *shr, struct shrink_control *sc, + long nr_objects_to_shrink, unsigned long pgs_scanned, + unsigned long lru_pgs, unsigned long cache_items, + unsigned long long delta, unsigned long total_scan), + + TP_ARGS(shr, sc, nr_objects_to_shrink, pgs_scanned, lru_pgs, + cache_items, delta, total_scan), + + TP_STRUCT__entry( + __field(struct shrinker *, shr) + __field(void *, shrink) + __field(long, nr_objects_to_shrink) + __field(gfp_t, gfp_flags) + __field(unsigned long, pgs_scanned) + __field(unsigned long, lru_pgs) + __field(unsigned long, cache_items) + __field(unsigned long long, delta) + __field(unsigned long, total_scan) + ), + + TP_fast_assign( + __entry->shr = shr; + __entry->shrink = shr->shrink; + __entry->nr_objects_to_shrink = nr_objects_to_shrink; + __entry->gfp_flags = sc->gfp_mask; + __entry->pgs_scanned = pgs_scanned; + __entry->lru_pgs = lru_pgs; + __entry->cache_items = cache_items; + __entry->delta = delta; + __entry->total_scan = total_scan; + ), + + TP_printk("%pF %p: objects to shrink %ld gfp_flags %s pgs_scanned %ld lru_pgs %ld cache items %ld delta %lld total_scan %ld", + __entry->shrink, + __entry->shr, + __entry->nr_objects_to_shrink, + show_gfp_flags(__entry->gfp_flags), + __entry->pgs_scanned, + __entry->lru_pgs, + __entry->cache_items, + __entry->delta, + __entry->total_scan) +); + +TRACE_EVENT(mm_shrink_slab_end, + TP_PROTO(struct shrinker *shr, int shrinker_retval, + long unused_scan_cnt, long new_scan_cnt), + + TP_ARGS(shr, shrinker_retval, unused_scan_cnt, new_scan_cnt), + + TP_STRUCT__entry( + __field(struct shrinker *, shr) + __field(void *, shrink) + __field(long, unused_scan) + __field(long, new_scan) + __field(int, retval) + __field(long, total_scan) + ), + + TP_fast_assign( + __entry->shr = shr; + __entry->shrink = shr->shrink; + __entry->unused_scan = unused_scan_cnt; + __entry->new_scan = new_scan_cnt; + __entry->retval = shrinker_retval; + __entry->total_scan = new_scan_cnt - unused_scan_cnt; + ), + + TP_printk("%pF %p: unused scan count %ld new scan count %ld total_scan %ld last shrinker return val %d", + __entry->shrink, + __entry->shr, + __entry->unused_scan, + __entry->new_scan, + __entry->total_scan, + __entry->retval) +); + +DECLARE_EVENT_CLASS(mm_vmscan_lru_isolate_template, + + TP_PROTO(int order, + unsigned long nr_requested, + unsigned long nr_scanned, + unsigned long nr_taken, + isolate_mode_t isolate_mode, + int file), + + TP_ARGS(order, nr_requested, nr_scanned, nr_taken, isolate_mode, file), + + TP_STRUCT__entry( + __field(int, order) + __field(unsigned long, nr_requested) + __field(unsigned long, nr_scanned) + __field(unsigned long, nr_taken) + __field(isolate_mode_t, isolate_mode) + __field(int, file) + ), + + TP_fast_assign( + __entry->order = order; + __entry->nr_requested = nr_requested; + __entry->nr_scanned = nr_scanned; + __entry->nr_taken = nr_taken; + __entry->isolate_mode = isolate_mode; + __entry->file = file; + ), + + TP_printk("isolate_mode=%d order=%d nr_requested=%lu nr_scanned=%lu nr_taken=%lu file=%d", + __entry->isolate_mode, + __entry->order, + __entry->nr_requested, + __entry->nr_scanned, + __entry->nr_taken, + __entry->file) +); + +DEFINE_EVENT(mm_vmscan_lru_isolate_template, mm_vmscan_lru_isolate, + + TP_PROTO(int order, + unsigned long nr_requested, + unsigned long nr_scanned, + unsigned long nr_taken, + isolate_mode_t isolate_mode, + int file), + + TP_ARGS(order, nr_requested, nr_scanned, nr_taken, isolate_mode, file) + +); + +DEFINE_EVENT(mm_vmscan_lru_isolate_template, mm_vmscan_memcg_isolate, + + TP_PROTO(int order, + unsigned long nr_requested, + unsigned long nr_scanned, + unsigned long nr_taken, + isolate_mode_t isolate_mode, + int file), + + TP_ARGS(order, nr_requested, nr_scanned, nr_taken, isolate_mode, file) + +); + +TRACE_EVENT(mm_vmscan_writepage, + + TP_PROTO(struct page *page, + int reclaim_flags), + + TP_ARGS(page, reclaim_flags), + + TP_STRUCT__entry( + __field(struct page *, page) + __field(int, reclaim_flags) + ), + + TP_fast_assign( + __entry->page = page; + __entry->reclaim_flags = reclaim_flags; + ), + + TP_printk("page=%p pfn=%lu flags=%s", + __entry->page, + page_to_pfn(__entry->page), + show_reclaim_flags(__entry->reclaim_flags)) +); + +TRACE_EVENT(mm_vmscan_lru_shrink_inactive, + + TP_PROTO(int nid, int zid, + unsigned long nr_scanned, unsigned long nr_reclaimed, + int priority, int reclaim_flags), + + TP_ARGS(nid, zid, nr_scanned, nr_reclaimed, priority, reclaim_flags), + + TP_STRUCT__entry( + __field(int, nid) + __field(int, zid) + __field(unsigned long, nr_scanned) + __field(unsigned long, nr_reclaimed) + __field(int, priority) + __field(int, reclaim_flags) + ), + + TP_fast_assign( + __entry->nid = nid; + __entry->zid = zid; + __entry->nr_scanned = nr_scanned; + __entry->nr_reclaimed = nr_reclaimed; + __entry->priority = priority; + __entry->reclaim_flags = reclaim_flags; + ), + + TP_printk("nid=%d zid=%d nr_scanned=%ld nr_reclaimed=%ld priority=%d flags=%s", + __entry->nid, __entry->zid, + __entry->nr_scanned, __entry->nr_reclaimed, + __entry->priority, + show_reclaim_flags(__entry->reclaim_flags)) +); + +#endif /* _TRACE_VMSCAN_H */ + +/* This part must be outside protection */ +#include --- linux-3.11.0.orig/ubuntu/lttng/instrumentation/events/mainline/power.h +++ linux-3.11.0/ubuntu/lttng/instrumentation/events/mainline/power.h @@ -0,0 +1,275 @@ +#undef TRACE_SYSTEM +#define TRACE_SYSTEM power + +#if !defined(_TRACE_POWER_H) || defined(TRACE_HEADER_MULTI_READ) +#define _TRACE_POWER_H + +#include +#include + +DECLARE_EVENT_CLASS(cpu, + + TP_PROTO(unsigned int state, unsigned int cpu_id), + + TP_ARGS(state, cpu_id), + + TP_STRUCT__entry( + __field( u32, state ) + __field( u32, cpu_id ) + ), + + TP_fast_assign( + __entry->state = state; + __entry->cpu_id = cpu_id; + ), + + TP_printk("state=%lu cpu_id=%lu", (unsigned long)__entry->state, + (unsigned long)__entry->cpu_id) +); + +DEFINE_EVENT(cpu, cpu_idle, + + TP_PROTO(unsigned int state, unsigned int cpu_id), + + TP_ARGS(state, cpu_id) +); + +/* This file can get included multiple times, TRACE_HEADER_MULTI_READ at top */ +#ifndef _PWR_EVENT_AVOID_DOUBLE_DEFINING +#define _PWR_EVENT_AVOID_DOUBLE_DEFINING + +#define PWR_EVENT_EXIT -1 +#endif + +DEFINE_EVENT(cpu, cpu_frequency, + + TP_PROTO(unsigned int frequency, unsigned int cpu_id), + + TP_ARGS(frequency, cpu_id) +); + +TRACE_EVENT(machine_suspend, + + TP_PROTO(unsigned int state), + + TP_ARGS(state), + + TP_STRUCT__entry( + __field( u32, state ) + ), + + TP_fast_assign( + __entry->state = state; + ), + + TP_printk("state=%lu", (unsigned long)__entry->state) +); + +DECLARE_EVENT_CLASS(wakeup_source, + + TP_PROTO(const char *name, unsigned int state), + + TP_ARGS(name, state), + + TP_STRUCT__entry( + __string( name, name ) + __field( u64, state ) + ), + + TP_fast_assign( + __assign_str(name, name); + __entry->state = state; + ), + + TP_printk("%s state=0x%lx", __get_str(name), + (unsigned long)__entry->state) +); + +DEFINE_EVENT(wakeup_source, wakeup_source_activate, + + TP_PROTO(const char *name, unsigned int state), + + TP_ARGS(name, state) +); + +DEFINE_EVENT(wakeup_source, wakeup_source_deactivate, + + TP_PROTO(const char *name, unsigned int state), + + TP_ARGS(name, state) +); + +#ifdef CONFIG_EVENT_POWER_TRACING_DEPRECATED + +/* + * The power events are used for cpuidle & suspend (power_start, power_end) + * and for cpufreq (power_frequency) + */ +DECLARE_EVENT_CLASS(power, + + TP_PROTO(unsigned int type, unsigned int state, unsigned int cpu_id), + + TP_ARGS(type, state, cpu_id), + + TP_STRUCT__entry( + __field( u64, type ) + __field( u64, state ) + __field( u64, cpu_id ) + ), + + TP_fast_assign( + __entry->type = type; + __entry->state = state; + __entry->cpu_id = cpu_id; + ), + + TP_printk("type=%lu state=%lu cpu_id=%lu", (unsigned long)__entry->type, + (unsigned long)__entry->state, (unsigned long)__entry->cpu_id) +); + +DEFINE_EVENT(power, power_start, + + TP_PROTO(unsigned int type, unsigned int state, unsigned int cpu_id), + + TP_ARGS(type, state, cpu_id) +); + +DEFINE_EVENT(power, power_frequency, + + TP_PROTO(unsigned int type, unsigned int state, unsigned int cpu_id), + + TP_ARGS(type, state, cpu_id) +); + +TRACE_EVENT(power_end, + + TP_PROTO(unsigned int cpu_id), + + TP_ARGS(cpu_id), + + TP_STRUCT__entry( + __field( u64, cpu_id ) + ), + + TP_fast_assign( + __entry->cpu_id = cpu_id; + ), + + TP_printk("cpu_id=%lu", (unsigned long)__entry->cpu_id) + +); + +/* Deprecated dummy functions must be protected against multi-declartion */ +#ifndef _PWR_EVENT_AVOID_DOUBLE_DEFINING_DEPRECATED +#define _PWR_EVENT_AVOID_DOUBLE_DEFINING_DEPRECATED + +enum { + POWER_NONE = 0, + POWER_CSTATE = 1, + POWER_PSTATE = 2, +}; +#endif /* _PWR_EVENT_AVOID_DOUBLE_DEFINING_DEPRECATED */ + +#else /* CONFIG_EVENT_POWER_TRACING_DEPRECATED */ + +#ifndef _PWR_EVENT_AVOID_DOUBLE_DEFINING_DEPRECATED +#define _PWR_EVENT_AVOID_DOUBLE_DEFINING_DEPRECATED +enum { + POWER_NONE = 0, + POWER_CSTATE = 1, + POWER_PSTATE = 2, +}; + +/* These dummy declaration have to be ripped out when the deprecated + events get removed */ +static inline void trace_power_start(u64 type, u64 state, u64 cpuid) {}; +static inline void trace_power_end(u64 cpuid) {}; +static inline void trace_power_start_rcuidle(u64 type, u64 state, u64 cpuid) {}; +static inline void trace_power_end_rcuidle(u64 cpuid) {}; +static inline void trace_power_frequency(u64 type, u64 state, u64 cpuid) {}; +#endif /* _PWR_EVENT_AVOID_DOUBLE_DEFINING_DEPRECATED */ + +#endif /* CONFIG_EVENT_POWER_TRACING_DEPRECATED */ + +/* + * The clock events are used for clock enable/disable and for + * clock rate change + */ +DECLARE_EVENT_CLASS(clock, + + TP_PROTO(const char *name, unsigned int state, unsigned int cpu_id), + + TP_ARGS(name, state, cpu_id), + + TP_STRUCT__entry( + __string( name, name ) + __field( u64, state ) + __field( u64, cpu_id ) + ), + + TP_fast_assign( + __assign_str(name, name); + __entry->state = state; + __entry->cpu_id = cpu_id; + ), + + TP_printk("%s state=%lu cpu_id=%lu", __get_str(name), + (unsigned long)__entry->state, (unsigned long)__entry->cpu_id) +); + +DEFINE_EVENT(clock, clock_enable, + + TP_PROTO(const char *name, unsigned int state, unsigned int cpu_id), + + TP_ARGS(name, state, cpu_id) +); + +DEFINE_EVENT(clock, clock_disable, + + TP_PROTO(const char *name, unsigned int state, unsigned int cpu_id), + + TP_ARGS(name, state, cpu_id) +); + +DEFINE_EVENT(clock, clock_set_rate, + + TP_PROTO(const char *name, unsigned int state, unsigned int cpu_id), + + TP_ARGS(name, state, cpu_id) +); + +/* + * The power domain events are used for power domains transitions + */ +DECLARE_EVENT_CLASS(power_domain, + + TP_PROTO(const char *name, unsigned int state, unsigned int cpu_id), + + TP_ARGS(name, state, cpu_id), + + TP_STRUCT__entry( + __string( name, name ) + __field( u64, state ) + __field( u64, cpu_id ) + ), + + TP_fast_assign( + __assign_str(name, name); + __entry->state = state; + __entry->cpu_id = cpu_id; +), + + TP_printk("%s state=%lu cpu_id=%lu", __get_str(name), + (unsigned long)__entry->state, (unsigned long)__entry->cpu_id) +); + +DEFINE_EVENT(power_domain, power_domain_target, + + TP_PROTO(const char *name, unsigned int state, unsigned int cpu_id), + + TP_ARGS(name, state, cpu_id) +); +#endif /* _TRACE_POWER_H */ + +/* This part must be outside protection */ +#include --- linux-3.11.0.orig/ubuntu/lttng/instrumentation/events/mainline/ext4.h +++ linux-3.11.0/ubuntu/lttng/instrumentation/events/mainline/ext4.h @@ -0,0 +1,2061 @@ +#undef TRACE_SYSTEM +#define TRACE_SYSTEM ext4 + +#if !defined(_TRACE_EXT4_H) || defined(TRACE_HEADER_MULTI_READ) +#define _TRACE_EXT4_H + +#include +#include + +struct ext4_allocation_context; +struct ext4_allocation_request; +struct ext4_extent; +struct ext4_prealloc_space; +struct ext4_inode_info; +struct mpage_da_data; +struct ext4_map_blocks; +struct ext4_extent; + +#define EXT4_I(inode) (container_of(inode, struct ext4_inode_info, vfs_inode)) + +TRACE_EVENT(ext4_free_inode, + TP_PROTO(struct inode *inode), + + TP_ARGS(inode), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( uid_t, uid ) + __field( gid_t, gid ) + __field( __u64, blocks ) + __field( __u16, mode ) + ), + + TP_fast_assign( + __entry->dev = inode->i_sb->s_dev; + __entry->ino = inode->i_ino; + __entry->uid = i_uid_read(inode); + __entry->gid = i_gid_read(inode); + __entry->blocks = inode->i_blocks; + __entry->mode = inode->i_mode; + ), + + TP_printk("dev %d,%d ino %lu mode 0%o uid %u gid %u blocks %llu", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, __entry->mode, + __entry->uid, __entry->gid, __entry->blocks) +); + +TRACE_EVENT(ext4_request_inode, + TP_PROTO(struct inode *dir, int mode), + + TP_ARGS(dir, mode), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, dir ) + __field( __u16, mode ) + ), + + TP_fast_assign( + __entry->dev = dir->i_sb->s_dev; + __entry->dir = dir->i_ino; + __entry->mode = mode; + ), + + TP_printk("dev %d,%d dir %lu mode 0%o", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->dir, __entry->mode) +); + +TRACE_EVENT(ext4_allocate_inode, + TP_PROTO(struct inode *inode, struct inode *dir, int mode), + + TP_ARGS(inode, dir, mode), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( ino_t, dir ) + __field( __u16, mode ) + ), + + TP_fast_assign( + __entry->dev = inode->i_sb->s_dev; + __entry->ino = inode->i_ino; + __entry->dir = dir->i_ino; + __entry->mode = mode; + ), + + TP_printk("dev %d,%d ino %lu dir %lu mode 0%o", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + (unsigned long) __entry->dir, __entry->mode) +); + +TRACE_EVENT(ext4_evict_inode, + TP_PROTO(struct inode *inode), + + TP_ARGS(inode), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( int, nlink ) + ), + + TP_fast_assign( + __entry->dev = inode->i_sb->s_dev; + __entry->ino = inode->i_ino; + __entry->nlink = inode->i_nlink; + ), + + TP_printk("dev %d,%d ino %lu nlink %d", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, __entry->nlink) +); + +TRACE_EVENT(ext4_drop_inode, + TP_PROTO(struct inode *inode, int drop), + + TP_ARGS(inode, drop), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( int, drop ) + ), + + TP_fast_assign( + __entry->dev = inode->i_sb->s_dev; + __entry->ino = inode->i_ino; + __entry->drop = drop; + ), + + TP_printk("dev %d,%d ino %lu drop %d", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, __entry->drop) +); + +TRACE_EVENT(ext4_mark_inode_dirty, + TP_PROTO(struct inode *inode, unsigned long IP), + + TP_ARGS(inode, IP), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field(unsigned long, ip ) + ), + + TP_fast_assign( + __entry->dev = inode->i_sb->s_dev; + __entry->ino = inode->i_ino; + __entry->ip = IP; + ), + + TP_printk("dev %d,%d ino %lu caller %pF", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, (void *)__entry->ip) +); + +TRACE_EVENT(ext4_begin_ordered_truncate, + TP_PROTO(struct inode *inode, loff_t new_size), + + TP_ARGS(inode, new_size), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( loff_t, new_size ) + ), + + TP_fast_assign( + __entry->dev = inode->i_sb->s_dev; + __entry->ino = inode->i_ino; + __entry->new_size = new_size; + ), + + TP_printk("dev %d,%d ino %lu new_size %lld", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + __entry->new_size) +); + +DECLARE_EVENT_CLASS(ext4__write_begin, + + TP_PROTO(struct inode *inode, loff_t pos, unsigned int len, + unsigned int flags), + + TP_ARGS(inode, pos, len, flags), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( loff_t, pos ) + __field( unsigned int, len ) + __field( unsigned int, flags ) + ), + + TP_fast_assign( + __entry->dev = inode->i_sb->s_dev; + __entry->ino = inode->i_ino; + __entry->pos = pos; + __entry->len = len; + __entry->flags = flags; + ), + + TP_printk("dev %d,%d ino %lu pos %lld len %u flags %u", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + __entry->pos, __entry->len, __entry->flags) +); + +DEFINE_EVENT(ext4__write_begin, ext4_write_begin, + + TP_PROTO(struct inode *inode, loff_t pos, unsigned int len, + unsigned int flags), + + TP_ARGS(inode, pos, len, flags) +); + +DEFINE_EVENT(ext4__write_begin, ext4_da_write_begin, + + TP_PROTO(struct inode *inode, loff_t pos, unsigned int len, + unsigned int flags), + + TP_ARGS(inode, pos, len, flags) +); + +DECLARE_EVENT_CLASS(ext4__write_end, + TP_PROTO(struct inode *inode, loff_t pos, unsigned int len, + unsigned int copied), + + TP_ARGS(inode, pos, len, copied), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( loff_t, pos ) + __field( unsigned int, len ) + __field( unsigned int, copied ) + ), + + TP_fast_assign( + __entry->dev = inode->i_sb->s_dev; + __entry->ino = inode->i_ino; + __entry->pos = pos; + __entry->len = len; + __entry->copied = copied; + ), + + TP_printk("dev %d,%d ino %lu pos %lld len %u copied %u", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + __entry->pos, __entry->len, __entry->copied) +); + +DEFINE_EVENT(ext4__write_end, ext4_ordered_write_end, + + TP_PROTO(struct inode *inode, loff_t pos, unsigned int len, + unsigned int copied), + + TP_ARGS(inode, pos, len, copied) +); + +DEFINE_EVENT(ext4__write_end, ext4_writeback_write_end, + + TP_PROTO(struct inode *inode, loff_t pos, unsigned int len, + unsigned int copied), + + TP_ARGS(inode, pos, len, copied) +); + +DEFINE_EVENT(ext4__write_end, ext4_journalled_write_end, + + TP_PROTO(struct inode *inode, loff_t pos, unsigned int len, + unsigned int copied), + + TP_ARGS(inode, pos, len, copied) +); + +DEFINE_EVENT(ext4__write_end, ext4_da_write_end, + + TP_PROTO(struct inode *inode, loff_t pos, unsigned int len, + unsigned int copied), + + TP_ARGS(inode, pos, len, copied) +); + +TRACE_EVENT(ext4_da_writepages, + TP_PROTO(struct inode *inode, struct writeback_control *wbc), + + TP_ARGS(inode, wbc), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( long, nr_to_write ) + __field( long, pages_skipped ) + __field( loff_t, range_start ) + __field( loff_t, range_end ) + __field( pgoff_t, writeback_index ) + __field( int, sync_mode ) + __field( char, for_kupdate ) + __field( char, range_cyclic ) + ), + + TP_fast_assign( + __entry->dev = inode->i_sb->s_dev; + __entry->ino = inode->i_ino; + __entry->nr_to_write = wbc->nr_to_write; + __entry->pages_skipped = wbc->pages_skipped; + __entry->range_start = wbc->range_start; + __entry->range_end = wbc->range_end; + __entry->writeback_index = inode->i_mapping->writeback_index; + __entry->sync_mode = wbc->sync_mode; + __entry->for_kupdate = wbc->for_kupdate; + __entry->range_cyclic = wbc->range_cyclic; + ), + + TP_printk("dev %d,%d ino %lu nr_to_write %ld pages_skipped %ld " + "range_start %lld range_end %lld sync_mode %d " + "for_kupdate %d range_cyclic %d writeback_index %lu", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, __entry->nr_to_write, + __entry->pages_skipped, __entry->range_start, + __entry->range_end, __entry->sync_mode, + __entry->for_kupdate, __entry->range_cyclic, + (unsigned long) __entry->writeback_index) +); + +TRACE_EVENT(ext4_da_write_pages, + TP_PROTO(struct inode *inode, struct mpage_da_data *mpd), + + TP_ARGS(inode, mpd), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( __u64, b_blocknr ) + __field( __u32, b_size ) + __field( __u32, b_state ) + __field( unsigned long, first_page ) + __field( int, io_done ) + __field( int, pages_written ) + __field( int, sync_mode ) + ), + + TP_fast_assign( + __entry->dev = inode->i_sb->s_dev; + __entry->ino = inode->i_ino; + __entry->b_blocknr = mpd->b_blocknr; + __entry->b_size = mpd->b_size; + __entry->b_state = mpd->b_state; + __entry->first_page = mpd->first_page; + __entry->io_done = mpd->io_done; + __entry->pages_written = mpd->pages_written; + __entry->sync_mode = mpd->wbc->sync_mode; + ), + + TP_printk("dev %d,%d ino %lu b_blocknr %llu b_size %u b_state 0x%04x " + "first_page %lu io_done %d pages_written %d sync_mode %d", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + __entry->b_blocknr, __entry->b_size, + __entry->b_state, __entry->first_page, + __entry->io_done, __entry->pages_written, + __entry->sync_mode + ) +); + +TRACE_EVENT(ext4_da_writepages_result, + TP_PROTO(struct inode *inode, struct writeback_control *wbc, + int ret, int pages_written), + + TP_ARGS(inode, wbc, ret, pages_written), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( int, ret ) + __field( int, pages_written ) + __field( long, pages_skipped ) + __field( pgoff_t, writeback_index ) + __field( int, sync_mode ) + ), + + TP_fast_assign( + __entry->dev = inode->i_sb->s_dev; + __entry->ino = inode->i_ino; + __entry->ret = ret; + __entry->pages_written = pages_written; + __entry->pages_skipped = wbc->pages_skipped; + __entry->writeback_index = inode->i_mapping->writeback_index; + __entry->sync_mode = wbc->sync_mode; + ), + + TP_printk("dev %d,%d ino %lu ret %d pages_written %d pages_skipped %ld " + "sync_mode %d writeback_index %lu", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, __entry->ret, + __entry->pages_written, __entry->pages_skipped, + __entry->sync_mode, + (unsigned long) __entry->writeback_index) +); + +DECLARE_EVENT_CLASS(ext4__page_op, + TP_PROTO(struct page *page), + + TP_ARGS(page), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( pgoff_t, index ) + + ), + + TP_fast_assign( + __entry->dev = page->mapping->host->i_sb->s_dev; + __entry->ino = page->mapping->host->i_ino; + __entry->index = page->index; + ), + + TP_printk("dev %d,%d ino %lu page_index %lu", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + (unsigned long) __entry->index) +); + +DEFINE_EVENT(ext4__page_op, ext4_writepage, + + TP_PROTO(struct page *page), + + TP_ARGS(page) +); + +DEFINE_EVENT(ext4__page_op, ext4_readpage, + + TP_PROTO(struct page *page), + + TP_ARGS(page) +); + +DEFINE_EVENT(ext4__page_op, ext4_releasepage, + + TP_PROTO(struct page *page), + + TP_ARGS(page) +); + +TRACE_EVENT(ext4_invalidatepage, + TP_PROTO(struct page *page, unsigned long offset), + + TP_ARGS(page, offset), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( pgoff_t, index ) + __field( unsigned long, offset ) + + ), + + TP_fast_assign( + __entry->dev = page->mapping->host->i_sb->s_dev; + __entry->ino = page->mapping->host->i_ino; + __entry->index = page->index; + __entry->offset = offset; + ), + + TP_printk("dev %d,%d ino %lu page_index %lu offset %lu", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + (unsigned long) __entry->index, __entry->offset) +); + +TRACE_EVENT(ext4_discard_blocks, + TP_PROTO(struct super_block *sb, unsigned long long blk, + unsigned long long count), + + TP_ARGS(sb, blk, count), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( __u64, blk ) + __field( __u64, count ) + + ), + + TP_fast_assign( + __entry->dev = sb->s_dev; + __entry->blk = blk; + __entry->count = count; + ), + + TP_printk("dev %d,%d blk %llu count %llu", + MAJOR(__entry->dev), MINOR(__entry->dev), + __entry->blk, __entry->count) +); + +DECLARE_EVENT_CLASS(ext4__mb_new_pa, + TP_PROTO(struct ext4_allocation_context *ac, + struct ext4_prealloc_space *pa), + + TP_ARGS(ac, pa), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( __u64, pa_pstart ) + __field( __u64, pa_lstart ) + __field( __u32, pa_len ) + + ), + + TP_fast_assign( + __entry->dev = ac->ac_sb->s_dev; + __entry->ino = ac->ac_inode->i_ino; + __entry->pa_pstart = pa->pa_pstart; + __entry->pa_lstart = pa->pa_lstart; + __entry->pa_len = pa->pa_len; + ), + + TP_printk("dev %d,%d ino %lu pstart %llu len %u lstart %llu", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + __entry->pa_pstart, __entry->pa_len, __entry->pa_lstart) +); + +DEFINE_EVENT(ext4__mb_new_pa, ext4_mb_new_inode_pa, + + TP_PROTO(struct ext4_allocation_context *ac, + struct ext4_prealloc_space *pa), + + TP_ARGS(ac, pa) +); + +DEFINE_EVENT(ext4__mb_new_pa, ext4_mb_new_group_pa, + + TP_PROTO(struct ext4_allocation_context *ac, + struct ext4_prealloc_space *pa), + + TP_ARGS(ac, pa) +); + +TRACE_EVENT(ext4_mb_release_inode_pa, + TP_PROTO(struct ext4_prealloc_space *pa, + unsigned long long block, unsigned int count), + + TP_ARGS(pa, block, count), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( __u64, block ) + __field( __u32, count ) + + ), + + TP_fast_assign( + __entry->dev = pa->pa_inode->i_sb->s_dev; + __entry->ino = pa->pa_inode->i_ino; + __entry->block = block; + __entry->count = count; + ), + + TP_printk("dev %d,%d ino %lu block %llu count %u", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + __entry->block, __entry->count) +); + +TRACE_EVENT(ext4_mb_release_group_pa, + TP_PROTO(struct super_block *sb, struct ext4_prealloc_space *pa), + + TP_ARGS(sb, pa), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( __u64, pa_pstart ) + __field( __u32, pa_len ) + + ), + + TP_fast_assign( + __entry->dev = sb->s_dev; + __entry->pa_pstart = pa->pa_pstart; + __entry->pa_len = pa->pa_len; + ), + + TP_printk("dev %d,%d pstart %llu len %u", + MAJOR(__entry->dev), MINOR(__entry->dev), + __entry->pa_pstart, __entry->pa_len) +); + +TRACE_EVENT(ext4_discard_preallocations, + TP_PROTO(struct inode *inode), + + TP_ARGS(inode), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + + ), + + TP_fast_assign( + __entry->dev = inode->i_sb->s_dev; + __entry->ino = inode->i_ino; + ), + + TP_printk("dev %d,%d ino %lu", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino) +); + +TRACE_EVENT(ext4_mb_discard_preallocations, + TP_PROTO(struct super_block *sb, int needed), + + TP_ARGS(sb, needed), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( int, needed ) + + ), + + TP_fast_assign( + __entry->dev = sb->s_dev; + __entry->needed = needed; + ), + + TP_printk("dev %d,%d needed %d", + MAJOR(__entry->dev), MINOR(__entry->dev), + __entry->needed) +); + +TRACE_EVENT(ext4_request_blocks, + TP_PROTO(struct ext4_allocation_request *ar), + + TP_ARGS(ar), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( unsigned int, len ) + __field( __u32, logical ) + __field( __u32, lleft ) + __field( __u32, lright ) + __field( __u64, goal ) + __field( __u64, pleft ) + __field( __u64, pright ) + __field( unsigned int, flags ) + ), + + TP_fast_assign( + __entry->dev = ar->inode->i_sb->s_dev; + __entry->ino = ar->inode->i_ino; + __entry->len = ar->len; + __entry->logical = ar->logical; + __entry->goal = ar->goal; + __entry->lleft = ar->lleft; + __entry->lright = ar->lright; + __entry->pleft = ar->pleft; + __entry->pright = ar->pright; + __entry->flags = ar->flags; + ), + + TP_printk("dev %d,%d ino %lu flags %u len %u lblk %u goal %llu " + "lleft %u lright %u pleft %llu pright %llu ", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, __entry->flags, + __entry->len, __entry->logical, __entry->goal, + __entry->lleft, __entry->lright, __entry->pleft, + __entry->pright) +); + +TRACE_EVENT(ext4_allocate_blocks, + TP_PROTO(struct ext4_allocation_request *ar, unsigned long long block), + + TP_ARGS(ar, block), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( __u64, block ) + __field( unsigned int, len ) + __field( __u32, logical ) + __field( __u32, lleft ) + __field( __u32, lright ) + __field( __u64, goal ) + __field( __u64, pleft ) + __field( __u64, pright ) + __field( unsigned int, flags ) + ), + + TP_fast_assign( + __entry->dev = ar->inode->i_sb->s_dev; + __entry->ino = ar->inode->i_ino; + __entry->block = block; + __entry->len = ar->len; + __entry->logical = ar->logical; + __entry->goal = ar->goal; + __entry->lleft = ar->lleft; + __entry->lright = ar->lright; + __entry->pleft = ar->pleft; + __entry->pright = ar->pright; + __entry->flags = ar->flags; + ), + + TP_printk("dev %d,%d ino %lu flags %u len %u block %llu lblk %u " + "goal %llu lleft %u lright %u pleft %llu pright %llu", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, __entry->flags, + __entry->len, __entry->block, __entry->logical, + __entry->goal, __entry->lleft, __entry->lright, + __entry->pleft, __entry->pright) +); + +TRACE_EVENT(ext4_free_blocks, + TP_PROTO(struct inode *inode, __u64 block, unsigned long count, + int flags), + + TP_ARGS(inode, block, count, flags), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( __u64, block ) + __field( unsigned long, count ) + __field( int, flags ) + __field( __u16, mode ) + ), + + TP_fast_assign( + __entry->dev = inode->i_sb->s_dev; + __entry->ino = inode->i_ino; + __entry->block = block; + __entry->count = count; + __entry->flags = flags; + __entry->mode = inode->i_mode; + ), + + TP_printk("dev %d,%d ino %lu mode 0%o block %llu count %lu flags %d", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + __entry->mode, __entry->block, __entry->count, + __entry->flags) +); + +TRACE_EVENT(ext4_sync_file_enter, + TP_PROTO(struct file *file, int datasync), + + TP_ARGS(file, datasync), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( ino_t, parent ) + __field( int, datasync ) + ), + + TP_fast_assign( + struct dentry *dentry = file->f_path.dentry; + + __entry->dev = dentry->d_inode->i_sb->s_dev; + __entry->ino = dentry->d_inode->i_ino; + __entry->datasync = datasync; + __entry->parent = dentry->d_parent->d_inode->i_ino; + ), + + TP_printk("dev %d,%d ino %lu parent %lu datasync %d ", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + (unsigned long) __entry->parent, __entry->datasync) +); + +TRACE_EVENT(ext4_sync_file_exit, + TP_PROTO(struct inode *inode, int ret), + + TP_ARGS(inode, ret), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( int, ret ) + ), + + TP_fast_assign( + __entry->dev = inode->i_sb->s_dev; + __entry->ino = inode->i_ino; + __entry->ret = ret; + ), + + TP_printk("dev %d,%d ino %lu ret %d", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + __entry->ret) +); + +TRACE_EVENT(ext4_sync_fs, + TP_PROTO(struct super_block *sb, int wait), + + TP_ARGS(sb, wait), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( int, wait ) + + ), + + TP_fast_assign( + __entry->dev = sb->s_dev; + __entry->wait = wait; + ), + + TP_printk("dev %d,%d wait %d", + MAJOR(__entry->dev), MINOR(__entry->dev), + __entry->wait) +); + +TRACE_EVENT(ext4_alloc_da_blocks, + TP_PROTO(struct inode *inode), + + TP_ARGS(inode), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( unsigned int, data_blocks ) + __field( unsigned int, meta_blocks ) + ), + + TP_fast_assign( + __entry->dev = inode->i_sb->s_dev; + __entry->ino = inode->i_ino; + __entry->data_blocks = EXT4_I(inode)->i_reserved_data_blocks; + __entry->meta_blocks = EXT4_I(inode)->i_reserved_meta_blocks; + ), + + TP_printk("dev %d,%d ino %lu data_blocks %u meta_blocks %u", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + __entry->data_blocks, __entry->meta_blocks) +); + +TRACE_EVENT(ext4_mballoc_alloc, + TP_PROTO(struct ext4_allocation_context *ac), + + TP_ARGS(ac), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( __u32, orig_logical ) + __field( int, orig_start ) + __field( __u32, orig_group ) + __field( int, orig_len ) + __field( __u32, goal_logical ) + __field( int, goal_start ) + __field( __u32, goal_group ) + __field( int, goal_len ) + __field( __u32, result_logical ) + __field( int, result_start ) + __field( __u32, result_group ) + __field( int, result_len ) + __field( __u16, found ) + __field( __u16, groups ) + __field( __u16, buddy ) + __field( __u16, flags ) + __field( __u16, tail ) + __field( __u8, cr ) + ), + + TP_fast_assign( + __entry->dev = ac->ac_inode->i_sb->s_dev; + __entry->ino = ac->ac_inode->i_ino; + __entry->orig_logical = ac->ac_o_ex.fe_logical; + __entry->orig_start = ac->ac_o_ex.fe_start; + __entry->orig_group = ac->ac_o_ex.fe_group; + __entry->orig_len = ac->ac_o_ex.fe_len; + __entry->goal_logical = ac->ac_g_ex.fe_logical; + __entry->goal_start = ac->ac_g_ex.fe_start; + __entry->goal_group = ac->ac_g_ex.fe_group; + __entry->goal_len = ac->ac_g_ex.fe_len; + __entry->result_logical = ac->ac_f_ex.fe_logical; + __entry->result_start = ac->ac_f_ex.fe_start; + __entry->result_group = ac->ac_f_ex.fe_group; + __entry->result_len = ac->ac_f_ex.fe_len; + __entry->found = ac->ac_found; + __entry->flags = ac->ac_flags; + __entry->groups = ac->ac_groups_scanned; + __entry->buddy = ac->ac_buddy; + __entry->tail = ac->ac_tail; + __entry->cr = ac->ac_criteria; + ), + + TP_printk("dev %d,%d inode %lu orig %u/%d/%u@%u goal %u/%d/%u@%u " + "result %u/%d/%u@%u blks %u grps %u cr %u flags 0x%04x " + "tail %u broken %u", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + __entry->orig_group, __entry->orig_start, + __entry->orig_len, __entry->orig_logical, + __entry->goal_group, __entry->goal_start, + __entry->goal_len, __entry->goal_logical, + __entry->result_group, __entry->result_start, + __entry->result_len, __entry->result_logical, + __entry->found, __entry->groups, __entry->cr, + __entry->flags, __entry->tail, + __entry->buddy ? 1 << __entry->buddy : 0) +); + +TRACE_EVENT(ext4_mballoc_prealloc, + TP_PROTO(struct ext4_allocation_context *ac), + + TP_ARGS(ac), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( __u32, orig_logical ) + __field( int, orig_start ) + __field( __u32, orig_group ) + __field( int, orig_len ) + __field( __u32, result_logical ) + __field( int, result_start ) + __field( __u32, result_group ) + __field( int, result_len ) + ), + + TP_fast_assign( + __entry->dev = ac->ac_inode->i_sb->s_dev; + __entry->ino = ac->ac_inode->i_ino; + __entry->orig_logical = ac->ac_o_ex.fe_logical; + __entry->orig_start = ac->ac_o_ex.fe_start; + __entry->orig_group = ac->ac_o_ex.fe_group; + __entry->orig_len = ac->ac_o_ex.fe_len; + __entry->result_logical = ac->ac_b_ex.fe_logical; + __entry->result_start = ac->ac_b_ex.fe_start; + __entry->result_group = ac->ac_b_ex.fe_group; + __entry->result_len = ac->ac_b_ex.fe_len; + ), + + TP_printk("dev %d,%d inode %lu orig %u/%d/%u@%u result %u/%d/%u@%u", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + __entry->orig_group, __entry->orig_start, + __entry->orig_len, __entry->orig_logical, + __entry->result_group, __entry->result_start, + __entry->result_len, __entry->result_logical) +); + +DECLARE_EVENT_CLASS(ext4__mballoc, + TP_PROTO(struct super_block *sb, + struct inode *inode, + ext4_group_t group, + ext4_grpblk_t start, + ext4_grpblk_t len), + + TP_ARGS(sb, inode, group, start, len), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( int, result_start ) + __field( __u32, result_group ) + __field( int, result_len ) + ), + + TP_fast_assign( + __entry->dev = sb->s_dev; + __entry->ino = inode ? inode->i_ino : 0; + __entry->result_start = start; + __entry->result_group = group; + __entry->result_len = len; + ), + + TP_printk("dev %d,%d inode %lu extent %u/%d/%d ", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + __entry->result_group, __entry->result_start, + __entry->result_len) +); + +DEFINE_EVENT(ext4__mballoc, ext4_mballoc_discard, + + TP_PROTO(struct super_block *sb, + struct inode *inode, + ext4_group_t group, + ext4_grpblk_t start, + ext4_grpblk_t len), + + TP_ARGS(sb, inode, group, start, len) +); + +DEFINE_EVENT(ext4__mballoc, ext4_mballoc_free, + + TP_PROTO(struct super_block *sb, + struct inode *inode, + ext4_group_t group, + ext4_grpblk_t start, + ext4_grpblk_t len), + + TP_ARGS(sb, inode, group, start, len) +); + +TRACE_EVENT(ext4_forget, + TP_PROTO(struct inode *inode, int is_metadata, __u64 block), + + TP_ARGS(inode, is_metadata, block), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( __u64, block ) + __field( int, is_metadata ) + __field( __u16, mode ) + ), + + TP_fast_assign( + __entry->dev = inode->i_sb->s_dev; + __entry->ino = inode->i_ino; + __entry->block = block; + __entry->is_metadata = is_metadata; + __entry->mode = inode->i_mode; + ), + + TP_printk("dev %d,%d ino %lu mode 0%o is_metadata %d block %llu", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + __entry->mode, __entry->is_metadata, __entry->block) +); + +TRACE_EVENT(ext4_da_update_reserve_space, + TP_PROTO(struct inode *inode, int used_blocks, int quota_claim), + + TP_ARGS(inode, used_blocks, quota_claim), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( __u64, i_blocks ) + __field( int, used_blocks ) + __field( int, reserved_data_blocks ) + __field( int, reserved_meta_blocks ) + __field( int, allocated_meta_blocks ) + __field( int, quota_claim ) + __field( __u16, mode ) + ), + + TP_fast_assign( + __entry->dev = inode->i_sb->s_dev; + __entry->ino = inode->i_ino; + __entry->i_blocks = inode->i_blocks; + __entry->used_blocks = used_blocks; + __entry->reserved_data_blocks = + EXT4_I(inode)->i_reserved_data_blocks; + __entry->reserved_meta_blocks = + EXT4_I(inode)->i_reserved_meta_blocks; + __entry->allocated_meta_blocks = + EXT4_I(inode)->i_allocated_meta_blocks; + __entry->quota_claim = quota_claim; + __entry->mode = inode->i_mode; + ), + + TP_printk("dev %d,%d ino %lu mode 0%o i_blocks %llu used_blocks %d " + "reserved_data_blocks %d reserved_meta_blocks %d " + "allocated_meta_blocks %d quota_claim %d", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + __entry->mode, __entry->i_blocks, + __entry->used_blocks, __entry->reserved_data_blocks, + __entry->reserved_meta_blocks, __entry->allocated_meta_blocks, + __entry->quota_claim) +); + +TRACE_EVENT(ext4_da_reserve_space, + TP_PROTO(struct inode *inode, int md_needed), + + TP_ARGS(inode, md_needed), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( __u64, i_blocks ) + __field( int, md_needed ) + __field( int, reserved_data_blocks ) + __field( int, reserved_meta_blocks ) + __field( __u16, mode ) + ), + + TP_fast_assign( + __entry->dev = inode->i_sb->s_dev; + __entry->ino = inode->i_ino; + __entry->i_blocks = inode->i_blocks; + __entry->md_needed = md_needed; + __entry->reserved_data_blocks = EXT4_I(inode)->i_reserved_data_blocks; + __entry->reserved_meta_blocks = EXT4_I(inode)->i_reserved_meta_blocks; + __entry->mode = inode->i_mode; + ), + + TP_printk("dev %d,%d ino %lu mode 0%o i_blocks %llu md_needed %d " + "reserved_data_blocks %d reserved_meta_blocks %d", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + __entry->mode, __entry->i_blocks, + __entry->md_needed, __entry->reserved_data_blocks, + __entry->reserved_meta_blocks) +); + +TRACE_EVENT(ext4_da_release_space, + TP_PROTO(struct inode *inode, int freed_blocks), + + TP_ARGS(inode, freed_blocks), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( __u64, i_blocks ) + __field( int, freed_blocks ) + __field( int, reserved_data_blocks ) + __field( int, reserved_meta_blocks ) + __field( int, allocated_meta_blocks ) + __field( __u16, mode ) + ), + + TP_fast_assign( + __entry->dev = inode->i_sb->s_dev; + __entry->ino = inode->i_ino; + __entry->i_blocks = inode->i_blocks; + __entry->freed_blocks = freed_blocks; + __entry->reserved_data_blocks = EXT4_I(inode)->i_reserved_data_blocks; + __entry->reserved_meta_blocks = EXT4_I(inode)->i_reserved_meta_blocks; + __entry->allocated_meta_blocks = EXT4_I(inode)->i_allocated_meta_blocks; + __entry->mode = inode->i_mode; + ), + + TP_printk("dev %d,%d ino %lu mode 0%o i_blocks %llu freed_blocks %d " + "reserved_data_blocks %d reserved_meta_blocks %d " + "allocated_meta_blocks %d", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + __entry->mode, __entry->i_blocks, + __entry->freed_blocks, __entry->reserved_data_blocks, + __entry->reserved_meta_blocks, __entry->allocated_meta_blocks) +); + +DECLARE_EVENT_CLASS(ext4__bitmap_load, + TP_PROTO(struct super_block *sb, unsigned long group), + + TP_ARGS(sb, group), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( __u32, group ) + + ), + + TP_fast_assign( + __entry->dev = sb->s_dev; + __entry->group = group; + ), + + TP_printk("dev %d,%d group %u", + MAJOR(__entry->dev), MINOR(__entry->dev), + __entry->group) +); + +DEFINE_EVENT(ext4__bitmap_load, ext4_mb_bitmap_load, + + TP_PROTO(struct super_block *sb, unsigned long group), + + TP_ARGS(sb, group) +); + +DEFINE_EVENT(ext4__bitmap_load, ext4_mb_buddy_bitmap_load, + + TP_PROTO(struct super_block *sb, unsigned long group), + + TP_ARGS(sb, group) +); + +DEFINE_EVENT(ext4__bitmap_load, ext4_read_block_bitmap_load, + + TP_PROTO(struct super_block *sb, unsigned long group), + + TP_ARGS(sb, group) +); + +DEFINE_EVENT(ext4__bitmap_load, ext4_load_inode_bitmap, + + TP_PROTO(struct super_block *sb, unsigned long group), + + TP_ARGS(sb, group) +); + +TRACE_EVENT(ext4_direct_IO_enter, + TP_PROTO(struct inode *inode, loff_t offset, unsigned long len, int rw), + + TP_ARGS(inode, offset, len, rw), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( loff_t, pos ) + __field( unsigned long, len ) + __field( int, rw ) + ), + + TP_fast_assign( + __entry->dev = inode->i_sb->s_dev; + __entry->ino = inode->i_ino; + __entry->pos = offset; + __entry->len = len; + __entry->rw = rw; + ), + + TP_printk("dev %d,%d ino %lu pos %lld len %lu rw %d", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + __entry->pos, __entry->len, __entry->rw) +); + +TRACE_EVENT(ext4_direct_IO_exit, + TP_PROTO(struct inode *inode, loff_t offset, unsigned long len, + int rw, int ret), + + TP_ARGS(inode, offset, len, rw, ret), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( loff_t, pos ) + __field( unsigned long, len ) + __field( int, rw ) + __field( int, ret ) + ), + + TP_fast_assign( + __entry->dev = inode->i_sb->s_dev; + __entry->ino = inode->i_ino; + __entry->pos = offset; + __entry->len = len; + __entry->rw = rw; + __entry->ret = ret; + ), + + TP_printk("dev %d,%d ino %lu pos %lld len %lu rw %d ret %d", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + __entry->pos, __entry->len, + __entry->rw, __entry->ret) +); + +TRACE_EVENT(ext4_fallocate_enter, + TP_PROTO(struct inode *inode, loff_t offset, loff_t len, int mode), + + TP_ARGS(inode, offset, len, mode), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( loff_t, pos ) + __field( loff_t, len ) + __field( int, mode ) + ), + + TP_fast_assign( + __entry->dev = inode->i_sb->s_dev; + __entry->ino = inode->i_ino; + __entry->pos = offset; + __entry->len = len; + __entry->mode = mode; + ), + + TP_printk("dev %d,%d ino %lu pos %lld len %lld mode %d", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, __entry->pos, + __entry->len, __entry->mode) +); + +TRACE_EVENT(ext4_fallocate_exit, + TP_PROTO(struct inode *inode, loff_t offset, + unsigned int max_blocks, int ret), + + TP_ARGS(inode, offset, max_blocks, ret), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( loff_t, pos ) + __field( unsigned int, blocks ) + __field( int, ret ) + ), + + TP_fast_assign( + __entry->dev = inode->i_sb->s_dev; + __entry->ino = inode->i_ino; + __entry->pos = offset; + __entry->blocks = max_blocks; + __entry->ret = ret; + ), + + TP_printk("dev %d,%d ino %lu pos %lld blocks %u ret %d", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + __entry->pos, __entry->blocks, + __entry->ret) +); + +TRACE_EVENT(ext4_unlink_enter, + TP_PROTO(struct inode *parent, struct dentry *dentry), + + TP_ARGS(parent, dentry), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( ino_t, parent ) + __field( loff_t, size ) + ), + + TP_fast_assign( + __entry->dev = dentry->d_inode->i_sb->s_dev; + __entry->ino = dentry->d_inode->i_ino; + __entry->parent = parent->i_ino; + __entry->size = dentry->d_inode->i_size; + ), + + TP_printk("dev %d,%d ino %lu size %lld parent %lu", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, __entry->size, + (unsigned long) __entry->parent) +); + +TRACE_EVENT(ext4_unlink_exit, + TP_PROTO(struct dentry *dentry, int ret), + + TP_ARGS(dentry, ret), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( int, ret ) + ), + + TP_fast_assign( + __entry->dev = dentry->d_inode->i_sb->s_dev; + __entry->ino = dentry->d_inode->i_ino; + __entry->ret = ret; + ), + + TP_printk("dev %d,%d ino %lu ret %d", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + __entry->ret) +); + +DECLARE_EVENT_CLASS(ext4__truncate, + TP_PROTO(struct inode *inode), + + TP_ARGS(inode), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( __u64, blocks ) + ), + + TP_fast_assign( + __entry->dev = inode->i_sb->s_dev; + __entry->ino = inode->i_ino; + __entry->blocks = inode->i_blocks; + ), + + TP_printk("dev %d,%d ino %lu blocks %llu", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, __entry->blocks) +); + +DEFINE_EVENT(ext4__truncate, ext4_truncate_enter, + + TP_PROTO(struct inode *inode), + + TP_ARGS(inode) +); + +DEFINE_EVENT(ext4__truncate, ext4_truncate_exit, + + TP_PROTO(struct inode *inode), + + TP_ARGS(inode) +); + +/* 'ux' is the uninitialized extent. */ +TRACE_EVENT(ext4_ext_convert_to_initialized_enter, + TP_PROTO(struct inode *inode, struct ext4_map_blocks *map, + struct ext4_extent *ux), + + TP_ARGS(inode, map, ux), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( ext4_lblk_t, m_lblk ) + __field( unsigned, m_len ) + __field( ext4_lblk_t, u_lblk ) + __field( unsigned, u_len ) + __field( ext4_fsblk_t, u_pblk ) + ), + + TP_fast_assign( + __entry->dev = inode->i_sb->s_dev; + __entry->ino = inode->i_ino; + __entry->m_lblk = map->m_lblk; + __entry->m_len = map->m_len; + __entry->u_lblk = le32_to_cpu(ux->ee_block); + __entry->u_len = ext4_ext_get_actual_len(ux); + __entry->u_pblk = ext4_ext_pblock(ux); + ), + + TP_printk("dev %d,%d ino %lu m_lblk %u m_len %u u_lblk %u u_len %u " + "u_pblk %llu", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + __entry->m_lblk, __entry->m_len, + __entry->u_lblk, __entry->u_len, __entry->u_pblk) +); + +/* + * 'ux' is the uninitialized extent. + * 'ix' is the initialized extent to which blocks are transferred. + */ +TRACE_EVENT(ext4_ext_convert_to_initialized_fastpath, + TP_PROTO(struct inode *inode, struct ext4_map_blocks *map, + struct ext4_extent *ux, struct ext4_extent *ix), + + TP_ARGS(inode, map, ux, ix), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( ext4_lblk_t, m_lblk ) + __field( unsigned, m_len ) + __field( ext4_lblk_t, u_lblk ) + __field( unsigned, u_len ) + __field( ext4_fsblk_t, u_pblk ) + __field( ext4_lblk_t, i_lblk ) + __field( unsigned, i_len ) + __field( ext4_fsblk_t, i_pblk ) + ), + + TP_fast_assign( + __entry->dev = inode->i_sb->s_dev; + __entry->ino = inode->i_ino; + __entry->m_lblk = map->m_lblk; + __entry->m_len = map->m_len; + __entry->u_lblk = le32_to_cpu(ux->ee_block); + __entry->u_len = ext4_ext_get_actual_len(ux); + __entry->u_pblk = ext4_ext_pblock(ux); + __entry->i_lblk = le32_to_cpu(ix->ee_block); + __entry->i_len = ext4_ext_get_actual_len(ix); + __entry->i_pblk = ext4_ext_pblock(ix); + ), + + TP_printk("dev %d,%d ino %lu m_lblk %u m_len %u " + "u_lblk %u u_len %u u_pblk %llu " + "i_lblk %u i_len %u i_pblk %llu ", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + __entry->m_lblk, __entry->m_len, + __entry->u_lblk, __entry->u_len, __entry->u_pblk, + __entry->i_lblk, __entry->i_len, __entry->i_pblk) +); + +DECLARE_EVENT_CLASS(ext4__map_blocks_enter, + TP_PROTO(struct inode *inode, ext4_lblk_t lblk, + unsigned int len, unsigned int flags), + + TP_ARGS(inode, lblk, len, flags), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( ext4_lblk_t, lblk ) + __field( unsigned int, len ) + __field( unsigned int, flags ) + ), + + TP_fast_assign( + __entry->dev = inode->i_sb->s_dev; + __entry->ino = inode->i_ino; + __entry->lblk = lblk; + __entry->len = len; + __entry->flags = flags; + ), + + TP_printk("dev %d,%d ino %lu lblk %u len %u flags %u", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + __entry->lblk, __entry->len, __entry->flags) +); + +DEFINE_EVENT(ext4__map_blocks_enter, ext4_ext_map_blocks_enter, + TP_PROTO(struct inode *inode, ext4_lblk_t lblk, + unsigned len, unsigned flags), + + TP_ARGS(inode, lblk, len, flags) +); + +DEFINE_EVENT(ext4__map_blocks_enter, ext4_ind_map_blocks_enter, + TP_PROTO(struct inode *inode, ext4_lblk_t lblk, + unsigned len, unsigned flags), + + TP_ARGS(inode, lblk, len, flags) +); + +DECLARE_EVENT_CLASS(ext4__map_blocks_exit, + TP_PROTO(struct inode *inode, ext4_lblk_t lblk, + ext4_fsblk_t pblk, unsigned int len, int ret), + + TP_ARGS(inode, lblk, pblk, len, ret), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( ext4_fsblk_t, pblk ) + __field( ext4_lblk_t, lblk ) + __field( unsigned int, len ) + __field( int, ret ) + ), + + TP_fast_assign( + __entry->dev = inode->i_sb->s_dev; + __entry->ino = inode->i_ino; + __entry->pblk = pblk; + __entry->lblk = lblk; + __entry->len = len; + __entry->ret = ret; + ), + + TP_printk("dev %d,%d ino %lu lblk %u pblk %llu len %u ret %d", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + __entry->lblk, __entry->pblk, + __entry->len, __entry->ret) +); + +DEFINE_EVENT(ext4__map_blocks_exit, ext4_ext_map_blocks_exit, + TP_PROTO(struct inode *inode, ext4_lblk_t lblk, + ext4_fsblk_t pblk, unsigned len, int ret), + + TP_ARGS(inode, lblk, pblk, len, ret) +); + +DEFINE_EVENT(ext4__map_blocks_exit, ext4_ind_map_blocks_exit, + TP_PROTO(struct inode *inode, ext4_lblk_t lblk, + ext4_fsblk_t pblk, unsigned len, int ret), + + TP_ARGS(inode, lblk, pblk, len, ret) +); + +TRACE_EVENT(ext4_ext_load_extent, + TP_PROTO(struct inode *inode, ext4_lblk_t lblk, ext4_fsblk_t pblk), + + TP_ARGS(inode, lblk, pblk), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( ext4_fsblk_t, pblk ) + __field( ext4_lblk_t, lblk ) + ), + + TP_fast_assign( + __entry->dev = inode->i_sb->s_dev; + __entry->ino = inode->i_ino; + __entry->pblk = pblk; + __entry->lblk = lblk; + ), + + TP_printk("dev %d,%d ino %lu lblk %u pblk %llu", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + __entry->lblk, __entry->pblk) +); + +TRACE_EVENT(ext4_load_inode, + TP_PROTO(struct inode *inode), + + TP_ARGS(inode), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + ), + + TP_fast_assign( + __entry->dev = inode->i_sb->s_dev; + __entry->ino = inode->i_ino; + ), + + TP_printk("dev %d,%d ino %ld", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino) +); + +TRACE_EVENT(ext4_journal_start, + TP_PROTO(struct super_block *sb, int nblocks, unsigned long IP), + + TP_ARGS(sb, nblocks, IP), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field(unsigned long, ip ) + __field( int, nblocks ) + ), + + TP_fast_assign( + __entry->dev = sb->s_dev; + __entry->ip = IP; + __entry->nblocks = nblocks; + ), + + TP_printk("dev %d,%d nblocks %d caller %pF", + MAJOR(__entry->dev), MINOR(__entry->dev), + __entry->nblocks, (void *)__entry->ip) +); + +DECLARE_EVENT_CLASS(ext4__trim, + TP_PROTO(struct super_block *sb, + ext4_group_t group, + ext4_grpblk_t start, + ext4_grpblk_t len), + + TP_ARGS(sb, group, start, len), + + TP_STRUCT__entry( + __field( int, dev_major ) + __field( int, dev_minor ) + __field( __u32, group ) + __field( int, start ) + __field( int, len ) + ), + + TP_fast_assign( + __entry->dev_major = MAJOR(sb->s_dev); + __entry->dev_minor = MINOR(sb->s_dev); + __entry->group = group; + __entry->start = start; + __entry->len = len; + ), + + TP_printk("dev %d,%d group %u, start %d, len %d", + __entry->dev_major, __entry->dev_minor, + __entry->group, __entry->start, __entry->len) +); + +DEFINE_EVENT(ext4__trim, ext4_trim_extent, + + TP_PROTO(struct super_block *sb, + ext4_group_t group, + ext4_grpblk_t start, + ext4_grpblk_t len), + + TP_ARGS(sb, group, start, len) +); + +DEFINE_EVENT(ext4__trim, ext4_trim_all_free, + + TP_PROTO(struct super_block *sb, + ext4_group_t group, + ext4_grpblk_t start, + ext4_grpblk_t len), + + TP_ARGS(sb, group, start, len) +); + +TRACE_EVENT(ext4_ext_handle_uninitialized_extents, + TP_PROTO(struct inode *inode, struct ext4_map_blocks *map, + unsigned int allocated, ext4_fsblk_t newblock), + + TP_ARGS(inode, map, allocated, newblock), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( int, flags ) + __field( ext4_lblk_t, lblk ) + __field( ext4_fsblk_t, pblk ) + __field( unsigned int, len ) + __field( unsigned int, allocated ) + __field( ext4_fsblk_t, newblk ) + ), + + TP_fast_assign( + __entry->dev = inode->i_sb->s_dev; + __entry->ino = inode->i_ino; + __entry->flags = map->m_flags; + __entry->lblk = map->m_lblk; + __entry->pblk = map->m_pblk; + __entry->len = map->m_len; + __entry->allocated = allocated; + __entry->newblk = newblock; + ), + + TP_printk("dev %d,%d ino %lu m_lblk %u m_pblk %llu m_len %u flags %d" + "allocated %d newblock %llu", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + (unsigned) __entry->lblk, (unsigned long long) __entry->pblk, + __entry->len, __entry->flags, + (unsigned int) __entry->allocated, + (unsigned long long) __entry->newblk) +); + +TRACE_EVENT(ext4_get_implied_cluster_alloc_exit, + TP_PROTO(struct super_block *sb, struct ext4_map_blocks *map, int ret), + + TP_ARGS(sb, map, ret), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( unsigned int, flags ) + __field( ext4_lblk_t, lblk ) + __field( ext4_fsblk_t, pblk ) + __field( unsigned int, len ) + __field( int, ret ) + ), + + TP_fast_assign( + __entry->dev = sb->s_dev; + __entry->flags = map->m_flags; + __entry->lblk = map->m_lblk; + __entry->pblk = map->m_pblk; + __entry->len = map->m_len; + __entry->ret = ret; + ), + + TP_printk("dev %d,%d m_lblk %u m_pblk %llu m_len %u m_flags %u ret %d", + MAJOR(__entry->dev), MINOR(__entry->dev), + __entry->lblk, (unsigned long long) __entry->pblk, + __entry->len, __entry->flags, __entry->ret) +); + +TRACE_EVENT(ext4_ext_put_in_cache, + TP_PROTO(struct inode *inode, ext4_lblk_t lblk, unsigned int len, + ext4_fsblk_t start), + + TP_ARGS(inode, lblk, len, start), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( ext4_lblk_t, lblk ) + __field( unsigned int, len ) + __field( ext4_fsblk_t, start ) + ), + + TP_fast_assign( + __entry->dev = inode->i_sb->s_dev; + __entry->ino = inode->i_ino; + __entry->lblk = lblk; + __entry->len = len; + __entry->start = start; + ), + + TP_printk("dev %d,%d ino %lu lblk %u len %u start %llu", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + (unsigned) __entry->lblk, + __entry->len, + (unsigned long long) __entry->start) +); + +TRACE_EVENT(ext4_ext_in_cache, + TP_PROTO(struct inode *inode, ext4_lblk_t lblk, int ret), + + TP_ARGS(inode, lblk, ret), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( ext4_lblk_t, lblk ) + __field( int, ret ) + ), + + TP_fast_assign( + __entry->dev = inode->i_sb->s_dev; + __entry->ino = inode->i_ino; + __entry->lblk = lblk; + __entry->ret = ret; + ), + + TP_printk("dev %d,%d ino %lu lblk %u ret %d", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + (unsigned) __entry->lblk, + __entry->ret) + +); + +TRACE_EVENT(ext4_find_delalloc_range, + TP_PROTO(struct inode *inode, ext4_lblk_t from, ext4_lblk_t to, + int reverse, int found, ext4_lblk_t found_blk), + + TP_ARGS(inode, from, to, reverse, found, found_blk), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( ext4_lblk_t, from ) + __field( ext4_lblk_t, to ) + __field( int, reverse ) + __field( int, found ) + __field( ext4_lblk_t, found_blk ) + ), + + TP_fast_assign( + __entry->dev = inode->i_sb->s_dev; + __entry->ino = inode->i_ino; + __entry->from = from; + __entry->to = to; + __entry->reverse = reverse; + __entry->found = found; + __entry->found_blk = found_blk; + ), + + TP_printk("dev %d,%d ino %lu from %u to %u reverse %d found %d " + "(blk = %u)", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + (unsigned) __entry->from, (unsigned) __entry->to, + __entry->reverse, __entry->found, + (unsigned) __entry->found_blk) +); + +TRACE_EVENT(ext4_get_reserved_cluster_alloc, + TP_PROTO(struct inode *inode, ext4_lblk_t lblk, unsigned int len), + + TP_ARGS(inode, lblk, len), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( ext4_lblk_t, lblk ) + __field( unsigned int, len ) + ), + + TP_fast_assign( + __entry->dev = inode->i_sb->s_dev; + __entry->ino = inode->i_ino; + __entry->lblk = lblk; + __entry->len = len; + ), + + TP_printk("dev %d,%d ino %lu lblk %u len %u", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + (unsigned) __entry->lblk, + __entry->len) +); + +TRACE_EVENT(ext4_ext_show_extent, + TP_PROTO(struct inode *inode, ext4_lblk_t lblk, ext4_fsblk_t pblk, + unsigned short len), + + TP_ARGS(inode, lblk, pblk, len), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( ext4_fsblk_t, pblk ) + __field( ext4_lblk_t, lblk ) + __field( unsigned short, len ) + ), + + TP_fast_assign( + __entry->dev = inode->i_sb->s_dev; + __entry->ino = inode->i_ino; + __entry->pblk = pblk; + __entry->lblk = lblk; + __entry->len = len; + ), + + TP_printk("dev %d,%d ino %lu lblk %u pblk %llu len %u", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + (unsigned) __entry->lblk, + (unsigned long long) __entry->pblk, + (unsigned short) __entry->len) +); + +TRACE_EVENT(ext4_remove_blocks, + TP_PROTO(struct inode *inode, struct ext4_extent *ex, + ext4_lblk_t from, ext4_fsblk_t to, + ext4_fsblk_t partial_cluster), + + TP_ARGS(inode, ex, from, to, partial_cluster), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( ext4_lblk_t, from ) + __field( ext4_lblk_t, to ) + __field( ext4_fsblk_t, partial ) + __field( ext4_fsblk_t, ee_pblk ) + __field( ext4_lblk_t, ee_lblk ) + __field( unsigned short, ee_len ) + ), + + TP_fast_assign( + __entry->dev = inode->i_sb->s_dev; + __entry->ino = inode->i_ino; + __entry->from = from; + __entry->to = to; + __entry->partial = partial_cluster; + __entry->ee_pblk = ext4_ext_pblock(ex); + __entry->ee_lblk = cpu_to_le32(ex->ee_block); + __entry->ee_len = ext4_ext_get_actual_len(ex); + ), + + TP_printk("dev %d,%d ino %lu extent [%u(%llu), %u]" + "from %u to %u partial_cluster %u", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + (unsigned) __entry->ee_lblk, + (unsigned long long) __entry->ee_pblk, + (unsigned short) __entry->ee_len, + (unsigned) __entry->from, + (unsigned) __entry->to, + (unsigned) __entry->partial) +); + +TRACE_EVENT(ext4_ext_rm_leaf, + TP_PROTO(struct inode *inode, ext4_lblk_t start, + struct ext4_extent *ex, ext4_fsblk_t partial_cluster), + + TP_ARGS(inode, start, ex, partial_cluster), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( ext4_fsblk_t, partial ) + __field( ext4_lblk_t, start ) + __field( ext4_lblk_t, ee_lblk ) + __field( ext4_fsblk_t, ee_pblk ) + __field( short, ee_len ) + ), + + TP_fast_assign( + __entry->dev = inode->i_sb->s_dev; + __entry->ino = inode->i_ino; + __entry->partial = partial_cluster; + __entry->start = start; + __entry->ee_lblk = le32_to_cpu(ex->ee_block); + __entry->ee_pblk = ext4_ext_pblock(ex); + __entry->ee_len = ext4_ext_get_actual_len(ex); + ), + + TP_printk("dev %d,%d ino %lu start_lblk %u last_extent [%u(%llu), %u]" + "partial_cluster %u", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + (unsigned) __entry->start, + (unsigned) __entry->ee_lblk, + (unsigned long long) __entry->ee_pblk, + (unsigned short) __entry->ee_len, + (unsigned) __entry->partial) +); + +TRACE_EVENT(ext4_ext_rm_idx, + TP_PROTO(struct inode *inode, ext4_fsblk_t pblk), + + TP_ARGS(inode, pblk), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( ext4_fsblk_t, pblk ) + ), + + TP_fast_assign( + __entry->dev = inode->i_sb->s_dev; + __entry->ino = inode->i_ino; + __entry->pblk = pblk; + ), + + TP_printk("dev %d,%d ino %lu index_pblk %llu", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + (unsigned long long) __entry->pblk) +); + +TRACE_EVENT(ext4_ext_remove_space, + TP_PROTO(struct inode *inode, ext4_lblk_t start, int depth), + + TP_ARGS(inode, start, depth), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( ext4_lblk_t, start ) + __field( int, depth ) + ), + + TP_fast_assign( + __entry->dev = inode->i_sb->s_dev; + __entry->ino = inode->i_ino; + __entry->start = start; + __entry->depth = depth; + ), + + TP_printk("dev %d,%d ino %lu since %u depth %d", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + (unsigned) __entry->start, + __entry->depth) +); + +TRACE_EVENT(ext4_ext_remove_space_done, + TP_PROTO(struct inode *inode, ext4_lblk_t start, int depth, + ext4_lblk_t partial, unsigned short eh_entries), + + TP_ARGS(inode, start, depth, partial, eh_entries), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( ext4_lblk_t, start ) + __field( int, depth ) + __field( ext4_lblk_t, partial ) + __field( unsigned short, eh_entries ) + ), + + TP_fast_assign( + __entry->dev = inode->i_sb->s_dev; + __entry->ino = inode->i_ino; + __entry->start = start; + __entry->depth = depth; + __entry->partial = partial; + __entry->eh_entries = eh_entries; + ), + + TP_printk("dev %d,%d ino %lu since %u depth %d partial %u " + "remaining_entries %u", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + (unsigned) __entry->start, + __entry->depth, + (unsigned) __entry->partial, + (unsigned short) __entry->eh_entries) +); + +#endif /* _TRACE_EXT4_H */ + +/* This part must be outside protection */ +#include --- linux-3.11.0.orig/ubuntu/lttng/instrumentation/events/mainline/arch/x86/kvm/trace.h +++ linux-3.11.0/ubuntu/lttng/instrumentation/events/mainline/arch/x86/kvm/trace.h @@ -0,0 +1,828 @@ +#if !defined(_TRACE_KVM_H) || defined(TRACE_HEADER_MULTI_READ) +#define _TRACE_KVM_H + +#include +#include +#include +#include + +#undef TRACE_SYSTEM +#define TRACE_SYSTEM kvm + +/* + * Tracepoint for guest mode entry. + */ +TRACE_EVENT(kvm_entry, + TP_PROTO(unsigned int vcpu_id), + TP_ARGS(vcpu_id), + + TP_STRUCT__entry( + __field( unsigned int, vcpu_id ) + ), + + TP_fast_assign( + __entry->vcpu_id = vcpu_id; + ), + + TP_printk("vcpu %u", __entry->vcpu_id) +); + +/* + * Tracepoint for hypercall. + */ +TRACE_EVENT(kvm_hypercall, + TP_PROTO(unsigned long nr, unsigned long a0, unsigned long a1, + unsigned long a2, unsigned long a3), + TP_ARGS(nr, a0, a1, a2, a3), + + TP_STRUCT__entry( + __field( unsigned long, nr ) + __field( unsigned long, a0 ) + __field( unsigned long, a1 ) + __field( unsigned long, a2 ) + __field( unsigned long, a3 ) + ), + + TP_fast_assign( + __entry->nr = nr; + __entry->a0 = a0; + __entry->a1 = a1; + __entry->a2 = a2; + __entry->a3 = a3; + ), + + TP_printk("nr 0x%lx a0 0x%lx a1 0x%lx a2 0x%lx a3 0x%lx", + __entry->nr, __entry->a0, __entry->a1, __entry->a2, + __entry->a3) +); + +/* + * Tracepoint for hypercall. + */ +TRACE_EVENT(kvm_hv_hypercall, + TP_PROTO(__u16 code, bool fast, __u16 rep_cnt, __u16 rep_idx, + __u64 ingpa, __u64 outgpa), + TP_ARGS(code, fast, rep_cnt, rep_idx, ingpa, outgpa), + + TP_STRUCT__entry( + __field( __u16, rep_cnt ) + __field( __u16, rep_idx ) + __field( __u64, ingpa ) + __field( __u64, outgpa ) + __field( __u16, code ) + __field( bool, fast ) + ), + + TP_fast_assign( + __entry->rep_cnt = rep_cnt; + __entry->rep_idx = rep_idx; + __entry->ingpa = ingpa; + __entry->outgpa = outgpa; + __entry->code = code; + __entry->fast = fast; + ), + + TP_printk("code 0x%x %s cnt 0x%x idx 0x%x in 0x%llx out 0x%llx", + __entry->code, __entry->fast ? "fast" : "slow", + __entry->rep_cnt, __entry->rep_idx, __entry->ingpa, + __entry->outgpa) +); + +/* + * Tracepoint for PIO. + */ +TRACE_EVENT(kvm_pio, + TP_PROTO(unsigned int rw, unsigned int port, unsigned int size, + unsigned int count), + TP_ARGS(rw, port, size, count), + + TP_STRUCT__entry( + __field( unsigned int, rw ) + __field( unsigned int, port ) + __field( unsigned int, size ) + __field( unsigned int, count ) + ), + + TP_fast_assign( + __entry->rw = rw; + __entry->port = port; + __entry->size = size; + __entry->count = count; + ), + + TP_printk("pio_%s at 0x%x size %d count %d", + __entry->rw ? "write" : "read", + __entry->port, __entry->size, __entry->count) +); + +/* + * Tracepoint for cpuid. + */ +TRACE_EVENT(kvm_cpuid, + TP_PROTO(unsigned int function, unsigned long rax, unsigned long rbx, + unsigned long rcx, unsigned long rdx), + TP_ARGS(function, rax, rbx, rcx, rdx), + + TP_STRUCT__entry( + __field( unsigned int, function ) + __field( unsigned long, rax ) + __field( unsigned long, rbx ) + __field( unsigned long, rcx ) + __field( unsigned long, rdx ) + ), + + TP_fast_assign( + __entry->function = function; + __entry->rax = rax; + __entry->rbx = rbx; + __entry->rcx = rcx; + __entry->rdx = rdx; + ), + + TP_printk("func %x rax %lx rbx %lx rcx %lx rdx %lx", + __entry->function, __entry->rax, + __entry->rbx, __entry->rcx, __entry->rdx) +); + +#define AREG(x) { APIC_##x, "APIC_" #x } + +#define kvm_trace_symbol_apic \ + AREG(ID), AREG(LVR), AREG(TASKPRI), AREG(ARBPRI), AREG(PROCPRI), \ + AREG(EOI), AREG(RRR), AREG(LDR), AREG(DFR), AREG(SPIV), AREG(ISR), \ + AREG(TMR), AREG(IRR), AREG(ESR), AREG(ICR), AREG(ICR2), AREG(LVTT), \ + AREG(LVTTHMR), AREG(LVTPC), AREG(LVT0), AREG(LVT1), AREG(LVTERR), \ + AREG(TMICT), AREG(TMCCT), AREG(TDCR), AREG(SELF_IPI), AREG(EFEAT), \ + AREG(ECTRL) +/* + * Tracepoint for apic access. + */ +TRACE_EVENT(kvm_apic, + TP_PROTO(unsigned int rw, unsigned int reg, unsigned int val), + TP_ARGS(rw, reg, val), + + TP_STRUCT__entry( + __field( unsigned int, rw ) + __field( unsigned int, reg ) + __field( unsigned int, val ) + ), + + TP_fast_assign( + __entry->rw = rw; + __entry->reg = reg; + __entry->val = val; + ), + + TP_printk("apic_%s %s = 0x%x", + __entry->rw ? "write" : "read", + __print_symbolic(__entry->reg, kvm_trace_symbol_apic), + __entry->val) +); + +#define trace_kvm_apic_read(reg, val) trace_kvm_apic(0, reg, val) +#define trace_kvm_apic_write(reg, val) trace_kvm_apic(1, reg, val) + +#define KVM_ISA_VMX 1 +#define KVM_ISA_SVM 2 + +/* + * Tracepoint for kvm guest exit: + */ +TRACE_EVENT(kvm_exit, + TP_PROTO(unsigned int exit_reason, struct kvm_vcpu *vcpu, u32 isa), + TP_ARGS(exit_reason, vcpu, isa), + + TP_STRUCT__entry( + __field( unsigned int, exit_reason ) + __field( unsigned long, guest_rip ) + __field( u32, isa ) + __field( u64, info1 ) + __field( u64, info2 ) + ), + + TP_fast_assign( + __entry->exit_reason = exit_reason; + __entry->guest_rip = kvm_rip_read(vcpu); + __entry->isa = isa; + kvm_x86_ops->get_exit_info(vcpu, &__entry->info1, + &__entry->info2); + ), + + TP_printk("reason %s rip 0x%lx info %llx %llx", + (__entry->isa == KVM_ISA_VMX) ? + __print_symbolic(__entry->exit_reason, VMX_EXIT_REASONS) : + __print_symbolic(__entry->exit_reason, SVM_EXIT_REASONS), + __entry->guest_rip, __entry->info1, __entry->info2) +); + +/* + * Tracepoint for kvm interrupt injection: + */ +TRACE_EVENT(kvm_inj_virq, + TP_PROTO(unsigned int irq), + TP_ARGS(irq), + + TP_STRUCT__entry( + __field( unsigned int, irq ) + ), + + TP_fast_assign( + __entry->irq = irq; + ), + + TP_printk("irq %u", __entry->irq) +); + +#define EXS(x) { x##_VECTOR, "#" #x } + +#define kvm_trace_sym_exc \ + EXS(DE), EXS(DB), EXS(BP), EXS(OF), EXS(BR), EXS(UD), EXS(NM), \ + EXS(DF), EXS(TS), EXS(NP), EXS(SS), EXS(GP), EXS(PF), \ + EXS(MF), EXS(MC) + +/* + * Tracepoint for kvm interrupt injection: + */ +TRACE_EVENT(kvm_inj_exception, + TP_PROTO(unsigned exception, bool has_error, unsigned error_code), + TP_ARGS(exception, has_error, error_code), + + TP_STRUCT__entry( + __field( u8, exception ) + __field( u8, has_error ) + __field( u32, error_code ) + ), + + TP_fast_assign( + __entry->exception = exception; + __entry->has_error = has_error; + __entry->error_code = error_code; + ), + + TP_printk("%s (0x%x)", + __print_symbolic(__entry->exception, kvm_trace_sym_exc), + /* FIXME: don't print error_code if not present */ + __entry->has_error ? __entry->error_code : 0) +); + +/* + * Tracepoint for page fault. + */ +TRACE_EVENT(kvm_page_fault, + TP_PROTO(unsigned long fault_address, unsigned int error_code), + TP_ARGS(fault_address, error_code), + + TP_STRUCT__entry( + __field( unsigned long, fault_address ) + __field( unsigned int, error_code ) + ), + + TP_fast_assign( + __entry->fault_address = fault_address; + __entry->error_code = error_code; + ), + + TP_printk("address %lx error_code %x", + __entry->fault_address, __entry->error_code) +); + +/* + * Tracepoint for guest MSR access. + */ +TRACE_EVENT(kvm_msr, + TP_PROTO(unsigned write, u32 ecx, u64 data, bool exception), + TP_ARGS(write, ecx, data, exception), + + TP_STRUCT__entry( + __field( unsigned, write ) + __field( u32, ecx ) + __field( u64, data ) + __field( u8, exception ) + ), + + TP_fast_assign( + __entry->write = write; + __entry->ecx = ecx; + __entry->data = data; + __entry->exception = exception; + ), + + TP_printk("msr_%s %x = 0x%llx%s", + __entry->write ? "write" : "read", + __entry->ecx, __entry->data, + __entry->exception ? " (#GP)" : "") +); + +#define trace_kvm_msr_read(ecx, data) trace_kvm_msr(0, ecx, data, false) +#define trace_kvm_msr_write(ecx, data) trace_kvm_msr(1, ecx, data, false) +#define trace_kvm_msr_read_ex(ecx) trace_kvm_msr(0, ecx, 0, true) +#define trace_kvm_msr_write_ex(ecx, data) trace_kvm_msr(1, ecx, data, true) + +/* + * Tracepoint for guest CR access. + */ +TRACE_EVENT(kvm_cr, + TP_PROTO(unsigned int rw, unsigned int cr, unsigned long val), + TP_ARGS(rw, cr, val), + + TP_STRUCT__entry( + __field( unsigned int, rw ) + __field( unsigned int, cr ) + __field( unsigned long, val ) + ), + + TP_fast_assign( + __entry->rw = rw; + __entry->cr = cr; + __entry->val = val; + ), + + TP_printk("cr_%s %x = 0x%lx", + __entry->rw ? "write" : "read", + __entry->cr, __entry->val) +); + +#define trace_kvm_cr_read(cr, val) trace_kvm_cr(0, cr, val) +#define trace_kvm_cr_write(cr, val) trace_kvm_cr(1, cr, val) + +TRACE_EVENT(kvm_pic_set_irq, + TP_PROTO(__u8 chip, __u8 pin, __u8 elcr, __u8 imr, bool coalesced), + TP_ARGS(chip, pin, elcr, imr, coalesced), + + TP_STRUCT__entry( + __field( __u8, chip ) + __field( __u8, pin ) + __field( __u8, elcr ) + __field( __u8, imr ) + __field( bool, coalesced ) + ), + + TP_fast_assign( + __entry->chip = chip; + __entry->pin = pin; + __entry->elcr = elcr; + __entry->imr = imr; + __entry->coalesced = coalesced; + ), + + TP_printk("chip %u pin %u (%s%s)%s", + __entry->chip, __entry->pin, + (__entry->elcr & (1 << __entry->pin)) ? "level":"edge", + (__entry->imr & (1 << __entry->pin)) ? "|masked":"", + __entry->coalesced ? " (coalesced)" : "") +); + +#define kvm_apic_dst_shorthand \ + {0x0, "dst"}, \ + {0x1, "self"}, \ + {0x2, "all"}, \ + {0x3, "all-but-self"} + +TRACE_EVENT(kvm_apic_ipi, + TP_PROTO(__u32 icr_low, __u32 dest_id), + TP_ARGS(icr_low, dest_id), + + TP_STRUCT__entry( + __field( __u32, icr_low ) + __field( __u32, dest_id ) + ), + + TP_fast_assign( + __entry->icr_low = icr_low; + __entry->dest_id = dest_id; + ), + + TP_printk("dst %x vec %u (%s|%s|%s|%s|%s)", + __entry->dest_id, (u8)__entry->icr_low, + __print_symbolic((__entry->icr_low >> 8 & 0x7), + kvm_deliver_mode), + (__entry->icr_low & (1<<11)) ? "logical" : "physical", + (__entry->icr_low & (1<<14)) ? "assert" : "de-assert", + (__entry->icr_low & (1<<15)) ? "level" : "edge", + __print_symbolic((__entry->icr_low >> 18 & 0x3), + kvm_apic_dst_shorthand)) +); + +TRACE_EVENT(kvm_apic_accept_irq, + TP_PROTO(__u32 apicid, __u16 dm, __u8 tm, __u8 vec, bool coalesced), + TP_ARGS(apicid, dm, tm, vec, coalesced), + + TP_STRUCT__entry( + __field( __u32, apicid ) + __field( __u16, dm ) + __field( __u8, tm ) + __field( __u8, vec ) + __field( bool, coalesced ) + ), + + TP_fast_assign( + __entry->apicid = apicid; + __entry->dm = dm; + __entry->tm = tm; + __entry->vec = vec; + __entry->coalesced = coalesced; + ), + + TP_printk("apicid %x vec %u (%s|%s)%s", + __entry->apicid, __entry->vec, + __print_symbolic((__entry->dm >> 8 & 0x7), kvm_deliver_mode), + __entry->tm ? "level" : "edge", + __entry->coalesced ? " (coalesced)" : "") +); + +TRACE_EVENT(kvm_eoi, + TP_PROTO(struct kvm_lapic *apic, int vector), + TP_ARGS(apic, vector), + + TP_STRUCT__entry( + __field( __u32, apicid ) + __field( int, vector ) + ), + + TP_fast_assign( + __entry->apicid = apic->vcpu->vcpu_id; + __entry->vector = vector; + ), + + TP_printk("apicid %x vector %d", __entry->apicid, __entry->vector) +); + +TRACE_EVENT(kvm_pv_eoi, + TP_PROTO(struct kvm_lapic *apic, int vector), + TP_ARGS(apic, vector), + + TP_STRUCT__entry( + __field( __u32, apicid ) + __field( int, vector ) + ), + + TP_fast_assign( + __entry->apicid = apic->vcpu->vcpu_id; + __entry->vector = vector; + ), + + TP_printk("apicid %x vector %d", __entry->apicid, __entry->vector) +); + +/* + * Tracepoint for nested VMRUN + */ +TRACE_EVENT(kvm_nested_vmrun, + TP_PROTO(__u64 rip, __u64 vmcb, __u64 nested_rip, __u32 int_ctl, + __u32 event_inj, bool npt), + TP_ARGS(rip, vmcb, nested_rip, int_ctl, event_inj, npt), + + TP_STRUCT__entry( + __field( __u64, rip ) + __field( __u64, vmcb ) + __field( __u64, nested_rip ) + __field( __u32, int_ctl ) + __field( __u32, event_inj ) + __field( bool, npt ) + ), + + TP_fast_assign( + __entry->rip = rip; + __entry->vmcb = vmcb; + __entry->nested_rip = nested_rip; + __entry->int_ctl = int_ctl; + __entry->event_inj = event_inj; + __entry->npt = npt; + ), + + TP_printk("rip: 0x%016llx vmcb: 0x%016llx nrip: 0x%016llx int_ctl: 0x%08x " + "event_inj: 0x%08x npt: %s", + __entry->rip, __entry->vmcb, __entry->nested_rip, + __entry->int_ctl, __entry->event_inj, + __entry->npt ? "on" : "off") +); + +TRACE_EVENT(kvm_nested_intercepts, + TP_PROTO(__u16 cr_read, __u16 cr_write, __u32 exceptions, __u64 intercept), + TP_ARGS(cr_read, cr_write, exceptions, intercept), + + TP_STRUCT__entry( + __field( __u16, cr_read ) + __field( __u16, cr_write ) + __field( __u32, exceptions ) + __field( __u64, intercept ) + ), + + TP_fast_assign( + __entry->cr_read = cr_read; + __entry->cr_write = cr_write; + __entry->exceptions = exceptions; + __entry->intercept = intercept; + ), + + TP_printk("cr_read: %04x cr_write: %04x excp: %08x intercept: %016llx", + __entry->cr_read, __entry->cr_write, __entry->exceptions, + __entry->intercept) +); +/* + * Tracepoint for #VMEXIT while nested + */ +TRACE_EVENT(kvm_nested_vmexit, + TP_PROTO(__u64 rip, __u32 exit_code, + __u64 exit_info1, __u64 exit_info2, + __u32 exit_int_info, __u32 exit_int_info_err, __u32 isa), + TP_ARGS(rip, exit_code, exit_info1, exit_info2, + exit_int_info, exit_int_info_err, isa), + + TP_STRUCT__entry( + __field( __u64, rip ) + __field( __u32, exit_code ) + __field( __u64, exit_info1 ) + __field( __u64, exit_info2 ) + __field( __u32, exit_int_info ) + __field( __u32, exit_int_info_err ) + __field( __u32, isa ) + ), + + TP_fast_assign( + __entry->rip = rip; + __entry->exit_code = exit_code; + __entry->exit_info1 = exit_info1; + __entry->exit_info2 = exit_info2; + __entry->exit_int_info = exit_int_info; + __entry->exit_int_info_err = exit_int_info_err; + __entry->isa = isa; + ), + TP_printk("rip: 0x%016llx reason: %s ext_inf1: 0x%016llx " + "ext_inf2: 0x%016llx ext_int: 0x%08x ext_int_err: 0x%08x", + __entry->rip, + (__entry->isa == KVM_ISA_VMX) ? + __print_symbolic(__entry->exit_code, VMX_EXIT_REASONS) : + __print_symbolic(__entry->exit_code, SVM_EXIT_REASONS), + __entry->exit_info1, __entry->exit_info2, + __entry->exit_int_info, __entry->exit_int_info_err) +); + +/* + * Tracepoint for #VMEXIT reinjected to the guest + */ +TRACE_EVENT(kvm_nested_vmexit_inject, + TP_PROTO(__u32 exit_code, + __u64 exit_info1, __u64 exit_info2, + __u32 exit_int_info, __u32 exit_int_info_err, __u32 isa), + TP_ARGS(exit_code, exit_info1, exit_info2, + exit_int_info, exit_int_info_err, isa), + + TP_STRUCT__entry( + __field( __u32, exit_code ) + __field( __u64, exit_info1 ) + __field( __u64, exit_info2 ) + __field( __u32, exit_int_info ) + __field( __u32, exit_int_info_err ) + __field( __u32, isa ) + ), + + TP_fast_assign( + __entry->exit_code = exit_code; + __entry->exit_info1 = exit_info1; + __entry->exit_info2 = exit_info2; + __entry->exit_int_info = exit_int_info; + __entry->exit_int_info_err = exit_int_info_err; + __entry->isa = isa; + ), + + TP_printk("reason: %s ext_inf1: 0x%016llx " + "ext_inf2: 0x%016llx ext_int: 0x%08x ext_int_err: 0x%08x", + (__entry->isa == KVM_ISA_VMX) ? + __print_symbolic(__entry->exit_code, VMX_EXIT_REASONS) : + __print_symbolic(__entry->exit_code, SVM_EXIT_REASONS), + __entry->exit_info1, __entry->exit_info2, + __entry->exit_int_info, __entry->exit_int_info_err) +); + +/* + * Tracepoint for nested #vmexit because of interrupt pending + */ +TRACE_EVENT(kvm_nested_intr_vmexit, + TP_PROTO(__u64 rip), + TP_ARGS(rip), + + TP_STRUCT__entry( + __field( __u64, rip ) + ), + + TP_fast_assign( + __entry->rip = rip + ), + + TP_printk("rip: 0x%016llx", __entry->rip) +); + +/* + * Tracepoint for nested #vmexit because of interrupt pending + */ +TRACE_EVENT(kvm_invlpga, + TP_PROTO(__u64 rip, int asid, u64 address), + TP_ARGS(rip, asid, address), + + TP_STRUCT__entry( + __field( __u64, rip ) + __field( int, asid ) + __field( __u64, address ) + ), + + TP_fast_assign( + __entry->rip = rip; + __entry->asid = asid; + __entry->address = address; + ), + + TP_printk("rip: 0x%016llx asid: %d address: 0x%016llx", + __entry->rip, __entry->asid, __entry->address) +); + +/* + * Tracepoint for nested #vmexit because of interrupt pending + */ +TRACE_EVENT(kvm_skinit, + TP_PROTO(__u64 rip, __u32 slb), + TP_ARGS(rip, slb), + + TP_STRUCT__entry( + __field( __u64, rip ) + __field( __u32, slb ) + ), + + TP_fast_assign( + __entry->rip = rip; + __entry->slb = slb; + ), + + TP_printk("rip: 0x%016llx slb: 0x%08x", + __entry->rip, __entry->slb) +); + +#define KVM_EMUL_INSN_F_CR0_PE (1 << 0) +#define KVM_EMUL_INSN_F_EFL_VM (1 << 1) +#define KVM_EMUL_INSN_F_CS_D (1 << 2) +#define KVM_EMUL_INSN_F_CS_L (1 << 3) + +#define kvm_trace_symbol_emul_flags \ + { 0, "real" }, \ + { KVM_EMUL_INSN_F_CR0_PE \ + | KVM_EMUL_INSN_F_EFL_VM, "vm16" }, \ + { KVM_EMUL_INSN_F_CR0_PE, "prot16" }, \ + { KVM_EMUL_INSN_F_CR0_PE \ + | KVM_EMUL_INSN_F_CS_D, "prot32" }, \ + { KVM_EMUL_INSN_F_CR0_PE \ + | KVM_EMUL_INSN_F_CS_L, "prot64" } + +#define kei_decode_mode(mode) ({ \ + u8 flags = 0xff; \ + switch (mode) { \ + case X86EMUL_MODE_REAL: \ + flags = 0; \ + break; \ + case X86EMUL_MODE_VM86: \ + flags = KVM_EMUL_INSN_F_EFL_VM; \ + break; \ + case X86EMUL_MODE_PROT16: \ + flags = KVM_EMUL_INSN_F_CR0_PE; \ + break; \ + case X86EMUL_MODE_PROT32: \ + flags = KVM_EMUL_INSN_F_CR0_PE \ + | KVM_EMUL_INSN_F_CS_D; \ + break; \ + case X86EMUL_MODE_PROT64: \ + flags = KVM_EMUL_INSN_F_CR0_PE \ + | KVM_EMUL_INSN_F_CS_L; \ + break; \ + } \ + flags; \ + }) + +TRACE_EVENT(kvm_emulate_insn, + TP_PROTO(struct kvm_vcpu *vcpu, __u8 failed), + TP_ARGS(vcpu, failed), + + TP_STRUCT__entry( + __field( __u64, rip ) + __field( __u32, csbase ) + __field( __u8, len ) + __array( __u8, insn, 15 ) + __field( __u8, flags ) + __field( __u8, failed ) + ), + + TP_fast_assign( + __entry->rip = vcpu->arch.emulate_ctxt.fetch.start; + __entry->csbase = kvm_x86_ops->get_segment_base(vcpu, VCPU_SREG_CS); + __entry->len = vcpu->arch.emulate_ctxt._eip + - vcpu->arch.emulate_ctxt.fetch.start; + memcpy(__entry->insn, + vcpu->arch.emulate_ctxt.fetch.data, + 15); + __entry->flags = kei_decode_mode(vcpu->arch.emulate_ctxt.mode); + __entry->failed = failed; + ), + + TP_printk("%x:%llx:%s (%s)%s", + __entry->csbase, __entry->rip, + __print_hex(__entry->insn, __entry->len), + __print_symbolic(__entry->flags, + kvm_trace_symbol_emul_flags), + __entry->failed ? " failed" : "" + ) + ); + +#define trace_kvm_emulate_insn_start(vcpu) trace_kvm_emulate_insn(vcpu, 0) +#define trace_kvm_emulate_insn_failed(vcpu) trace_kvm_emulate_insn(vcpu, 1) + +TRACE_EVENT( + vcpu_match_mmio, + TP_PROTO(gva_t gva, gpa_t gpa, bool write, bool gpa_match), + TP_ARGS(gva, gpa, write, gpa_match), + + TP_STRUCT__entry( + __field(gva_t, gva) + __field(gpa_t, gpa) + __field(bool, write) + __field(bool, gpa_match) + ), + + TP_fast_assign( + __entry->gva = gva; + __entry->gpa = gpa; + __entry->write = write; + __entry->gpa_match = gpa_match + ), + + TP_printk("gva %#lx gpa %#llx %s %s", __entry->gva, __entry->gpa, + __entry->write ? "Write" : "Read", + __entry->gpa_match ? "GPA" : "GVA") +); + +#ifdef CONFIG_X86_64 + +#define host_clocks \ + {VCLOCK_NONE, "none"}, \ + {VCLOCK_TSC, "tsc"}, \ + {VCLOCK_HPET, "hpet"} \ + +TRACE_EVENT(kvm_update_master_clock, + TP_PROTO(bool use_master_clock, unsigned int host_clock, bool offset_matched), + TP_ARGS(use_master_clock, host_clock, offset_matched), + + TP_STRUCT__entry( + __field( bool, use_master_clock ) + __field( unsigned int, host_clock ) + __field( bool, offset_matched ) + ), + + TP_fast_assign( + __entry->use_master_clock = use_master_clock; + __entry->host_clock = host_clock; + __entry->offset_matched = offset_matched; + ), + + TP_printk("masterclock %d hostclock %s offsetmatched %u", + __entry->use_master_clock, + __print_symbolic(__entry->host_clock, host_clocks), + __entry->offset_matched) +); + +TRACE_EVENT(kvm_track_tsc, + TP_PROTO(unsigned int vcpu_id, unsigned int nr_matched, + unsigned int online_vcpus, bool use_master_clock, + unsigned int host_clock), + TP_ARGS(vcpu_id, nr_matched, online_vcpus, use_master_clock, + host_clock), + + TP_STRUCT__entry( + __field( unsigned int, vcpu_id ) + __field( unsigned int, nr_vcpus_matched_tsc ) + __field( unsigned int, online_vcpus ) + __field( bool, use_master_clock ) + __field( unsigned int, host_clock ) + ), + + TP_fast_assign( + __entry->vcpu_id = vcpu_id; + __entry->nr_vcpus_matched_tsc = nr_matched; + __entry->online_vcpus = online_vcpus; + __entry->use_master_clock = use_master_clock; + __entry->host_clock = host_clock; + ), + + TP_printk("vcpu_id %u masterclock %u offsetmatched %u nr_online %u" + " hostclock %s", + __entry->vcpu_id, __entry->use_master_clock, + __entry->nr_vcpus_matched_tsc, __entry->online_vcpus, + __print_symbolic(__entry->host_clock, host_clocks)) +); + +#endif /* CONFIG_X86_64 */ + +#endif /* _TRACE_KVM_H */ + +#undef TRACE_INCLUDE_PATH +#define TRACE_INCLUDE_PATH arch/x86/kvm +#undef TRACE_INCLUDE_FILE +#define TRACE_INCLUDE_FILE trace + +/* This part must be outside protection */ +#include --- linux-3.11.0.orig/ubuntu/lttng/instrumentation/events/mainline/arch/x86/kvm/mmutrace.h +++ linux-3.11.0/ubuntu/lttng/instrumentation/events/mainline/arch/x86/kvm/mmutrace.h @@ -0,0 +1,285 @@ +#if !defined(_TRACE_KVMMMU_H) || defined(TRACE_HEADER_MULTI_READ) +#define _TRACE_KVMMMU_H + +#include +#include + +#undef TRACE_SYSTEM +#define TRACE_SYSTEM kvmmmu + +#define KVM_MMU_PAGE_FIELDS \ + __field(__u64, gfn) \ + __field(__u32, role) \ + __field(__u32, root_count) \ + __field(bool, unsync) + +#define KVM_MMU_PAGE_ASSIGN(sp) \ + __entry->gfn = sp->gfn; \ + __entry->role = sp->role.word; \ + __entry->root_count = sp->root_count; \ + __entry->unsync = sp->unsync; + +#define KVM_MMU_PAGE_PRINTK() ({ \ + const char *ret = p->buffer + p->len; \ + static const char *access_str[] = { \ + "---", "--x", "w--", "w-x", "-u-", "-ux", "wu-", "wux" \ + }; \ + union kvm_mmu_page_role role; \ + \ + role.word = __entry->role; \ + \ + trace_seq_printf(p, "sp gfn %llx %u%s q%u%s %s%s" \ + " %snxe root %u %s%c", \ + __entry->gfn, role.level, \ + role.cr4_pae ? " pae" : "", \ + role.quadrant, \ + role.direct ? " direct" : "", \ + access_str[role.access], \ + role.invalid ? " invalid" : "", \ + role.nxe ? "" : "!", \ + __entry->root_count, \ + __entry->unsync ? "unsync" : "sync", 0); \ + ret; \ + }) + +#define kvm_mmu_trace_pferr_flags \ + { PFERR_PRESENT_MASK, "P" }, \ + { PFERR_WRITE_MASK, "W" }, \ + { PFERR_USER_MASK, "U" }, \ + { PFERR_RSVD_MASK, "RSVD" }, \ + { PFERR_FETCH_MASK, "F" } + +/* + * A pagetable walk has started + */ +TRACE_EVENT( + kvm_mmu_pagetable_walk, + TP_PROTO(u64 addr, u32 pferr), + TP_ARGS(addr, pferr), + + TP_STRUCT__entry( + __field(__u64, addr) + __field(__u32, pferr) + ), + + TP_fast_assign( + __entry->addr = addr; + __entry->pferr = pferr; + ), + + TP_printk("addr %llx pferr %x %s", __entry->addr, __entry->pferr, + __print_flags(__entry->pferr, "|", kvm_mmu_trace_pferr_flags)) +); + + +/* We just walked a paging element */ +TRACE_EVENT( + kvm_mmu_paging_element, + TP_PROTO(u64 pte, int level), + TP_ARGS(pte, level), + + TP_STRUCT__entry( + __field(__u64, pte) + __field(__u32, level) + ), + + TP_fast_assign( + __entry->pte = pte; + __entry->level = level; + ), + + TP_printk("pte %llx level %u", __entry->pte, __entry->level) +); + +DECLARE_EVENT_CLASS(kvm_mmu_set_bit_class, + + TP_PROTO(unsigned long table_gfn, unsigned index, unsigned size), + + TP_ARGS(table_gfn, index, size), + + TP_STRUCT__entry( + __field(__u64, gpa) + ), + + TP_fast_assign( + __entry->gpa = ((u64)table_gfn << PAGE_SHIFT) + + index * size; + ), + + TP_printk("gpa %llx", __entry->gpa) +); + +/* We set a pte accessed bit */ +DEFINE_EVENT(kvm_mmu_set_bit_class, kvm_mmu_set_accessed_bit, + + TP_PROTO(unsigned long table_gfn, unsigned index, unsigned size), + + TP_ARGS(table_gfn, index, size) +); + +/* We set a pte dirty bit */ +DEFINE_EVENT(kvm_mmu_set_bit_class, kvm_mmu_set_dirty_bit, + + TP_PROTO(unsigned long table_gfn, unsigned index, unsigned size), + + TP_ARGS(table_gfn, index, size) +); + +TRACE_EVENT( + kvm_mmu_walker_error, + TP_PROTO(u32 pferr), + TP_ARGS(pferr), + + TP_STRUCT__entry( + __field(__u32, pferr) + ), + + TP_fast_assign( + __entry->pferr = pferr; + ), + + TP_printk("pferr %x %s", __entry->pferr, + __print_flags(__entry->pferr, "|", kvm_mmu_trace_pferr_flags)) +); + +TRACE_EVENT( + kvm_mmu_get_page, + TP_PROTO(struct kvm_mmu_page *sp, bool created), + TP_ARGS(sp, created), + + TP_STRUCT__entry( + KVM_MMU_PAGE_FIELDS + __field(bool, created) + ), + + TP_fast_assign( + KVM_MMU_PAGE_ASSIGN(sp) + __entry->created = created; + ), + + TP_printk("%s %s", KVM_MMU_PAGE_PRINTK(), + __entry->created ? "new" : "existing") +); + +DECLARE_EVENT_CLASS(kvm_mmu_page_class, + + TP_PROTO(struct kvm_mmu_page *sp), + TP_ARGS(sp), + + TP_STRUCT__entry( + KVM_MMU_PAGE_FIELDS + ), + + TP_fast_assign( + KVM_MMU_PAGE_ASSIGN(sp) + ), + + TP_printk("%s", KVM_MMU_PAGE_PRINTK()) +); + +DEFINE_EVENT(kvm_mmu_page_class, kvm_mmu_sync_page, + TP_PROTO(struct kvm_mmu_page *sp), + + TP_ARGS(sp) +); + +DEFINE_EVENT(kvm_mmu_page_class, kvm_mmu_unsync_page, + TP_PROTO(struct kvm_mmu_page *sp), + + TP_ARGS(sp) +); + +DEFINE_EVENT(kvm_mmu_page_class, kvm_mmu_prepare_zap_page, + TP_PROTO(struct kvm_mmu_page *sp), + + TP_ARGS(sp) +); + +TRACE_EVENT( + mark_mmio_spte, + TP_PROTO(u64 *sptep, gfn_t gfn, unsigned access), + TP_ARGS(sptep, gfn, access), + + TP_STRUCT__entry( + __field(void *, sptep) + __field(gfn_t, gfn) + __field(unsigned, access) + ), + + TP_fast_assign( + __entry->sptep = sptep; + __entry->gfn = gfn; + __entry->access = access; + ), + + TP_printk("sptep:%p gfn %llx access %x", __entry->sptep, __entry->gfn, + __entry->access) +); + +TRACE_EVENT( + handle_mmio_page_fault, + TP_PROTO(u64 addr, gfn_t gfn, unsigned access), + TP_ARGS(addr, gfn, access), + + TP_STRUCT__entry( + __field(u64, addr) + __field(gfn_t, gfn) + __field(unsigned, access) + ), + + TP_fast_assign( + __entry->addr = addr; + __entry->gfn = gfn; + __entry->access = access; + ), + + TP_printk("addr:%llx gfn %llx access %x", __entry->addr, __entry->gfn, + __entry->access) +); + +#define __spte_satisfied(__spte) \ + (__entry->retry && is_writable_pte(__entry->__spte)) + +TRACE_EVENT( + fast_page_fault, + TP_PROTO(struct kvm_vcpu *vcpu, gva_t gva, u32 error_code, + u64 *sptep, u64 old_spte, bool retry), + TP_ARGS(vcpu, gva, error_code, sptep, old_spte, retry), + + TP_STRUCT__entry( + __field(int, vcpu_id) + __field(gva_t, gva) + __field(u32, error_code) + __field(u64 *, sptep) + __field(u64, old_spte) + __field(u64, new_spte) + __field(bool, retry) + ), + + TP_fast_assign( + __entry->vcpu_id = vcpu->vcpu_id; + __entry->gva = gva; + __entry->error_code = error_code; + __entry->sptep = sptep; + __entry->old_spte = old_spte; + __entry->new_spte = *sptep; + __entry->retry = retry; + ), + + TP_printk("vcpu %d gva %lx error_code %s sptep %p old %#llx" + " new %llx spurious %d fixed %d", __entry->vcpu_id, + __entry->gva, __print_flags(__entry->error_code, "|", + kvm_mmu_trace_pferr_flags), __entry->sptep, + __entry->old_spte, __entry->new_spte, + __spte_satisfied(old_spte), __spte_satisfied(new_spte) + ) +); +#endif /* _TRACE_KVMMMU_H */ + +#undef TRACE_INCLUDE_PATH +#define TRACE_INCLUDE_PATH . +#undef TRACE_INCLUDE_FILE +#define TRACE_INCLUDE_FILE mmutrace + +/* This part must be outside protection */ +#include --- linux-3.11.0.orig/ubuntu/lttng/instrumentation/events/lttng-module/printk.h +++ linux-3.11.0/ubuntu/lttng/instrumentation/events/lttng-module/printk.h @@ -0,0 +1,83 @@ +#undef TRACE_SYSTEM +#define TRACE_SYSTEM printk + +#if !defined(_TRACE_PRINTK_H) || defined(TRACE_HEADER_MULTI_READ) +#define _TRACE_PRINTK_H + +#include +#include + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,10,0)) + +TRACE_EVENT(console, + TP_PROTO(const char *text, size_t len), + + TP_ARGS(text, len), + + TP_STRUCT__entry( + __dynamic_array_text(char, msg, len) + ), + + TP_fast_assign( + tp_memcpy_dyn(msg, text) + ), + + TP_printk("%s", __get_str(msg)) +) + +#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3,5,0)) + +TRACE_EVENT_CONDITION(console, + TP_PROTO(const char *log_buf, unsigned start, unsigned end, + unsigned log_buf_len), + + TP_ARGS(log_buf, start, end, log_buf_len), + + TP_CONDITION(start != end), + + TP_STRUCT__entry( + __dynamic_array_text(char, msg, end - start) + ), + + TP_fast_assign( + tp_memcpy_dyn(msg, log_buf + start) + ), + + TP_printk("%s", __get_str(msg)) +) + +#else /* (LINUX_VERSION_CODE < KERNEL_VERSION(3,5,0)) */ + +TRACE_EVENT_CONDITION(console, + TP_PROTO(const char *log_buf, unsigned start, unsigned end, + unsigned log_buf_len), + + TP_ARGS(log_buf, start, end, log_buf_len), + + TP_CONDITION(start != end), + + TP_STRUCT__entry( + __dynamic_array_text_2(char, msg, + (start & (log_buf_len - 1)) > (end & (log_buf_len - 1)) + ? log_buf_len - (start & (log_buf_len - 1)) + : end - start, + (start & (log_buf_len - 1)) > (end & (log_buf_len - 1)) + ? end & (log_buf_len - 1) + : 0) + ), + + TP_fast_assign( + tp_memcpy_dyn_2(msg, + log_buf + (start & (log_buf_len - 1)), + log_buf) + ), + + TP_printk("%s", __get_str(msg)) +) + +#endif + +#endif /* _TRACE_PRINTK_H */ + +/* This part must be outside protection */ +#include "../../../probes/define_trace.h" --- linux-3.11.0.orig/ubuntu/lttng/instrumentation/events/lttng-module/kvm.h +++ linux-3.11.0/ubuntu/lttng/instrumentation/events/lttng-module/kvm.h @@ -0,0 +1,356 @@ +#if !defined(_TRACE_KVM_MAIN_H) || defined(TRACE_HEADER_MULTI_READ) +#define _TRACE_KVM_MAIN_H + +#include +#include + +#undef TRACE_SYSTEM +#define TRACE_SYSTEM kvm + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,38)) + +#define ERSN(x) { KVM_EXIT_##x, "KVM_EXIT_" #x } + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,9,0)) + +#define kvm_trace_exit_reason \ + ERSN(UNKNOWN), ERSN(EXCEPTION), ERSN(IO), ERSN(HYPERCALL), \ + ERSN(DEBUG), ERSN(HLT), ERSN(MMIO), ERSN(IRQ_WINDOW_OPEN), \ + ERSN(SHUTDOWN), ERSN(FAIL_ENTRY), ERSN(INTR), ERSN(SET_TPR), \ + ERSN(TPR_ACCESS), ERSN(S390_SIEIC), ERSN(S390_RESET), ERSN(DCR),\ + ERSN(NMI), ERSN(INTERNAL_ERROR), ERSN(OSI), ERSN(PAPR_HCALL), \ + ERSN(S390_UCONTROL), ERSN(WATCHDOG), ERSN(S390_TSCH) + +#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3,6,0)) + +#define kvm_trace_exit_reason \ + ERSN(UNKNOWN), ERSN(EXCEPTION), ERSN(IO), ERSN(HYPERCALL), \ + ERSN(DEBUG), ERSN(HLT), ERSN(MMIO), ERSN(IRQ_WINDOW_OPEN), \ + ERSN(SHUTDOWN), ERSN(FAIL_ENTRY), ERSN(INTR), ERSN(SET_TPR), \ + ERSN(TPR_ACCESS), ERSN(S390_SIEIC), ERSN(S390_RESET), ERSN(DCR),\ + ERSN(NMI), ERSN(INTERNAL_ERROR), ERSN(OSI), ERSN(PAPR_HCALL), \ + ERSN(S390_UCONTROL) + +#else + +#define kvm_trace_exit_reason \ + ERSN(UNKNOWN), ERSN(EXCEPTION), ERSN(IO), ERSN(HYPERCALL), \ + ERSN(DEBUG), ERSN(HLT), ERSN(MMIO), ERSN(IRQ_WINDOW_OPEN), \ + ERSN(SHUTDOWN), ERSN(FAIL_ENTRY), ERSN(INTR), ERSN(SET_TPR), \ + ERSN(TPR_ACCESS), ERSN(S390_SIEIC), ERSN(S390_RESET), ERSN(DCR),\ + ERSN(NMI), ERSN(INTERNAL_ERROR), ERSN(OSI) + +#endif + +TRACE_EVENT(kvm_userspace_exit, + TP_PROTO(__u32 reason, int errno), + TP_ARGS(reason, errno), + + TP_STRUCT__entry( + __field( __u32, reason ) + __field( int, errno ) + ), + + TP_fast_assign( + tp_assign(reason, reason) + tp_assign(errno, errno) + ), + + TP_printk("reason %s (%d)", + __entry->errno < 0 ? + (__entry->errno == -EINTR ? "restart" : "error") : + __print_symbolic(__entry->reason, kvm_trace_exit_reason), + __entry->errno < 0 ? -__entry->errno : __entry->reason) +) +#endif + +#if (LINUX_VERSION_CODE < KERNEL_VERSION(3,6,0)) +#if defined(__KVM_HAVE_IOAPIC) +#undef __KVM_HAVE_IRQ_LINE +#define __KVM_HAVE_IRQ_LINE +#endif +#endif + +#if defined(__KVM_HAVE_IRQ_LINE) +TRACE_EVENT(kvm_set_irq, + TP_PROTO(unsigned int gsi, int level, int irq_source_id), + TP_ARGS(gsi, level, irq_source_id), + + TP_STRUCT__entry( + __field( unsigned int, gsi ) + __field( int, level ) + __field( int, irq_source_id ) + ), + + TP_fast_assign( + tp_assign(gsi, gsi) + tp_assign(level, level) + tp_assign(irq_source_id, irq_source_id) + ), + + TP_printk("gsi %u level %d source %d", + __entry->gsi, __entry->level, __entry->irq_source_id) +) +#endif + +#if defined(__KVM_HAVE_IOAPIC) +#define kvm_deliver_mode \ + {0x0, "Fixed"}, \ + {0x1, "LowPrio"}, \ + {0x2, "SMI"}, \ + {0x3, "Res3"}, \ + {0x4, "NMI"}, \ + {0x5, "INIT"}, \ + {0x6, "SIPI"}, \ + {0x7, "ExtINT"} + +TRACE_EVENT(kvm_ioapic_set_irq, + TP_PROTO(__u64 e, int pin, bool coalesced), + TP_ARGS(e, pin, coalesced), + + TP_STRUCT__entry( + __field( __u64, e ) + __field( int, pin ) + __field( bool, coalesced ) + ), + + TP_fast_assign( + tp_assign(e, e) + tp_assign(pin, pin) + tp_assign(coalesced, coalesced) + ), + + TP_printk("pin %u dst %x vec=%u (%s|%s|%s%s)%s", + __entry->pin, (u8)(__entry->e >> 56), (u8)__entry->e, + __print_symbolic((__entry->e >> 8 & 0x7), kvm_deliver_mode), + (__entry->e & (1<<11)) ? "logical" : "physical", + (__entry->e & (1<<15)) ? "level" : "edge", + (__entry->e & (1<<16)) ? "|masked" : "", + __entry->coalesced ? " (coalesced)" : "") +) + +TRACE_EVENT(kvm_msi_set_irq, + TP_PROTO(__u64 address, __u64 data), + TP_ARGS(address, data), + + TP_STRUCT__entry( + __field( __u64, address ) + __field( __u64, data ) + ), + + TP_fast_assign( + tp_assign(address, address) + tp_assign(data, data) + ), + + TP_printk("dst %u vec %x (%s|%s|%s%s)", + (u8)(__entry->address >> 12), (u8)__entry->data, + __print_symbolic((__entry->data >> 8 & 0x7), kvm_deliver_mode), + (__entry->address & (1<<2)) ? "logical" : "physical", + (__entry->data & (1<<15)) ? "level" : "edge", + (__entry->address & (1<<3)) ? "|rh" : "") +) + +#define kvm_irqchips \ + {KVM_IRQCHIP_PIC_MASTER, "PIC master"}, \ + {KVM_IRQCHIP_PIC_SLAVE, "PIC slave"}, \ + {KVM_IRQCHIP_IOAPIC, "IOAPIC"} + +TRACE_EVENT(kvm_ack_irq, + TP_PROTO(unsigned int irqchip, unsigned int pin), + TP_ARGS(irqchip, pin), + + TP_STRUCT__entry( + __field( unsigned int, irqchip ) + __field( unsigned int, pin ) + ), + + TP_fast_assign( + tp_assign(irqchip, irqchip) + tp_assign(pin, pin) + ), + + TP_printk("irqchip %s pin %u", + __print_symbolic(__entry->irqchip, kvm_irqchips), + __entry->pin) +) + + + +#endif /* defined(__KVM_HAVE_IOAPIC) */ + +#define KVM_TRACE_MMIO_READ_UNSATISFIED 0 +#define KVM_TRACE_MMIO_READ 1 +#define KVM_TRACE_MMIO_WRITE 2 + +#define kvm_trace_symbol_mmio \ + { KVM_TRACE_MMIO_READ_UNSATISFIED, "unsatisfied-read" }, \ + { KVM_TRACE_MMIO_READ, "read" }, \ + { KVM_TRACE_MMIO_WRITE, "write" } + +TRACE_EVENT(kvm_mmio, + TP_PROTO(int type, int len, u64 gpa, u64 val), + TP_ARGS(type, len, gpa, val), + + TP_STRUCT__entry( + __field( u32, type ) + __field( u32, len ) + __field( u64, gpa ) + __field( u64, val ) + ), + + TP_fast_assign( + tp_assign(type, type) + tp_assign(len, len) + tp_assign(gpa, gpa) + tp_assign(val, val) + ), + + TP_printk("mmio %s len %u gpa 0x%llx val 0x%llx", + __print_symbolic(__entry->type, kvm_trace_symbol_mmio), + __entry->len, __entry->gpa, __entry->val) +) + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,34)) + +#define kvm_fpu_load_symbol \ + {0, "unload"}, \ + {1, "load"} + +TRACE_EVENT(kvm_fpu, + TP_PROTO(int load), + TP_ARGS(load), + + TP_STRUCT__entry( + __field( u32, load ) + ), + + TP_fast_assign( + tp_assign(load, load) + ), + + TP_printk("%s", __print_symbolic(__entry->load, kvm_fpu_load_symbol)) +) + +TRACE_EVENT(kvm_age_page, + TP_PROTO(ulong hva, struct kvm_memory_slot *slot, int ref), + TP_ARGS(hva, slot, ref), + + TP_STRUCT__entry( + __field( u64, hva ) + __field( u64, gfn ) + __field( u8, referenced ) + ), + + TP_fast_assign( + tp_assign(hva, hva) + tp_assign(gfn, + slot->base_gfn + ((hva - slot->userspace_addr) >> PAGE_SHIFT)) + tp_assign(referenced, ref) + ), + + TP_printk("hva %llx gfn %llx %s", + __entry->hva, __entry->gfn, + __entry->referenced ? "YOUNG" : "OLD") +) +#endif + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,38)) + +#ifdef CONFIG_KVM_ASYNC_PF +DECLARE_EVENT_CLASS(kvm_async_get_page_class, + + TP_PROTO(u64 gva, u64 gfn), + + TP_ARGS(gva, gfn), + + TP_STRUCT__entry( + __field(__u64, gva) + __field(u64, gfn) + ), + + TP_fast_assign( + tp_assign(gva, gva) + tp_assign(gfn, gfn) + ), + + TP_printk("gva = %#llx, gfn = %#llx", __entry->gva, __entry->gfn) +) + +DEFINE_EVENT(kvm_async_get_page_class, kvm_try_async_get_page, + + TP_PROTO(u64 gva, u64 gfn), + + TP_ARGS(gva, gfn) +) + +DEFINE_EVENT(kvm_async_get_page_class, kvm_async_pf_doublefault, + + TP_PROTO(u64 gva, u64 gfn), + + TP_ARGS(gva, gfn) +) + +DECLARE_EVENT_CLASS(kvm_async_pf_nopresent_ready, + + TP_PROTO(u64 token, u64 gva), + + TP_ARGS(token, gva), + + TP_STRUCT__entry( + __field(__u64, token) + __field(__u64, gva) + ), + + TP_fast_assign( + tp_assign(token, token) + tp_assign(gva, gva) + ), + + TP_printk("token %#llx gva %#llx", __entry->token, __entry->gva) + +) + +DEFINE_EVENT(kvm_async_pf_nopresent_ready, kvm_async_pf_not_present, + + TP_PROTO(u64 token, u64 gva), + + TP_ARGS(token, gva) +) + +DEFINE_EVENT(kvm_async_pf_nopresent_ready, kvm_async_pf_ready, + + TP_PROTO(u64 token, u64 gva), + + TP_ARGS(token, gva) +) + +TRACE_EVENT( + kvm_async_pf_completed, + TP_PROTO(unsigned long address, struct page *page, u64 gva), + TP_ARGS(address, page, gva), + + TP_STRUCT__entry( + __field(unsigned long, address) + __field(pfn_t, pfn) + __field(u64, gva) + ), + + TP_fast_assign( + tp_assign(address, address) + tp_assign(pfn, page ? page_to_pfn(page) : 0) + tp_assign(gva, gva) + ), + + TP_printk("gva %#llx address %#lx pfn %#llx", __entry->gva, + __entry->address, __entry->pfn) +) + +#endif + +#endif + +#endif /* _TRACE_KVM_MAIN_H */ + +/* This part must be outside protection */ +#include "../../../probes/define_trace.h" --- linux-3.11.0.orig/ubuntu/lttng/instrumentation/events/lttng-module/lock.h +++ linux-3.11.0/ubuntu/lttng/instrumentation/events/lttng-module/lock.h @@ -0,0 +1,207 @@ +#include + +#undef TRACE_SYSTEM +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,33)) +#define TRACE_SYSTEM lock +#else +#define TRACE_SYSTEM lockdep +#define TRACE_INCLUDE_FILE lock +#if defined(_TRACE_LOCKDEP_H) +#define _TRACE_LOCK_H +#endif +#endif + +#if !defined(_TRACE_LOCK_H) || defined(TRACE_HEADER_MULTI_READ) +#define _TRACE_LOCK_H + +#include +#include + +#ifdef CONFIG_LOCKDEP + +TRACE_EVENT(lock_acquire, + + TP_PROTO(struct lockdep_map *lock, unsigned int subclass, + int trylock, int read, int check, + struct lockdep_map *next_lock, unsigned long ip), + + TP_ARGS(lock, subclass, trylock, read, check, next_lock, ip), + + TP_STRUCT__entry( + __field(unsigned int, flags) + __string(name, lock->name) +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,34)) + __field(void *, lockdep_addr) +#endif + ), + + TP_fast_assign( + tp_assign(flags, (trylock ? 1 : 0) | (read ? 2 : 0)) + tp_strcpy(name, lock->name) +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,34)) + tp_assign(lockdep_addr, lock) +#endif + ), + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,34)) + TP_printk("%p %s%s%s", __entry->lockdep_addr, +#else + TP_printk("%s%s%s", +#endif + (__entry->flags & 1) ? "try " : "", + (__entry->flags & 2) ? "read " : "", + __get_str(name)) +) + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,35)) + +DECLARE_EVENT_CLASS(lock, + + TP_PROTO(struct lockdep_map *lock, unsigned long ip), + + TP_ARGS(lock, ip), + + TP_STRUCT__entry( + __string( name, lock->name ) + __field( void *, lockdep_addr ) + ), + + TP_fast_assign( + tp_strcpy(name, lock->name) + tp_assign(lockdep_addr, lock) + ), + + TP_printk("%p %s", __entry->lockdep_addr, __get_str(name)) +) + +DEFINE_EVENT(lock, lock_release, + + TP_PROTO(struct lockdep_map *lock, unsigned long ip), + + TP_ARGS(lock, ip) +) + +#ifdef CONFIG_LOCK_STAT + +DEFINE_EVENT(lock, lock_contended, + + TP_PROTO(struct lockdep_map *lock, unsigned long ip), + + TP_ARGS(lock, ip) +) + +DEFINE_EVENT(lock, lock_acquired, + + TP_PROTO(struct lockdep_map *lock, unsigned long ip), + + TP_ARGS(lock, ip) +) + +#endif + +#else /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,35)) */ + +TRACE_EVENT(lock_release, + + TP_PROTO(struct lockdep_map *lock, int nested, unsigned long ip), + + TP_ARGS(lock, nested, ip), + + TP_STRUCT__entry( + __string( name, lock->name ) +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,34)) + __field( void *, lockdep_addr ) +#endif + ), + + TP_fast_assign( + tp_strcpy(name, lock->name) +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,34)) + tp_assign(lockdep_addr, lock) +#endif + ), + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,34)) + TP_printk("%p %s", __entry->lockdep_addr, __get_str(name)) +#else + TP_printk("%s", __get_str(name)) +#endif +) + +#ifdef CONFIG_LOCK_STAT + +TRACE_EVENT(lock_contended, + + TP_PROTO(struct lockdep_map *lock, unsigned long ip), + + TP_ARGS(lock, ip), + + TP_STRUCT__entry( + __string( name, lock->name ) +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,34)) + __field( void *, lockdep_addr ) +#endif + ), + + TP_fast_assign( + tp_strcpy(name, lock->name) +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,34)) + tp_assign(lockdep_addr, lock) +#endif + ), + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,34)) + TP_printk("%p %s", __entry->lockdep_addr, __get_str(name)) +#else + TP_printk("%s", __get_str(name)) +#endif +) + +TRACE_EVENT(lock_acquired, + + TP_PROTO(struct lockdep_map *lock, unsigned long ip, s64 waittime), + + TP_ARGS(lock, ip, waittime), + + TP_STRUCT__entry( + __string( name, lock->name ) +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,34)) + __field( s64, wait_nsec ) + __field( void *, lockdep_addr ) +#else + __field(unsigned long, wait_usec) + __field(unsigned long, wait_nsec_rem) +#endif + ), + + TP_fast_assign( + tp_strcpy(name, lock->name) +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,34)) + tp_assign(wait_nsec, waittime) + tp_assign(lockdep_addr, lock) +#else + tp_assign(wait_usec, (unsigned long)waittime) + tp_assign(wait_nsec_rem, do_div(waittime, NSEC_PER_USEC)) +#endif + ), + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,34)) + TP_printk("%p %s (%llu ns)", __entry->lockdep_addr, + __get_str(name), __entry->wait_nsec) +#else + TP_printk("%s (%lu.%03lu us)", + __get_str(name), + __entry->wait_usec, __entry->wait_nsec_rem) +#endif +) + +#endif + +#endif /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,35)) */ + +#endif + +#endif /* _TRACE_LOCK_H */ + +/* This part must be outside protection */ +#include "../../../probes/define_trace.h" --- linux-3.11.0.orig/ubuntu/lttng/instrumentation/events/lttng-module/workqueue.h +++ linux-3.11.0/ubuntu/lttng/instrumentation/events/lttng-module/workqueue.h @@ -0,0 +1,219 @@ +#undef TRACE_SYSTEM +#define TRACE_SYSTEM workqueue + +#if !defined(_TRACE_WORKQUEUE_H) || defined(TRACE_HEADER_MULTI_READ) +#define _TRACE_WORKQUEUE_H + +#include +#include +#include + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,36)) + +#ifndef _TRACE_WORKQUEUE_DEF_ +#define _TRACE_WORKQUEUE_DEF_ + +struct worker; +struct global_cwq; + +#endif + +DECLARE_EVENT_CLASS(workqueue_work, + + TP_PROTO(struct work_struct *work), + + TP_ARGS(work), + + TP_STRUCT__entry( + __field( void *, work ) + ), + + TP_fast_assign( + tp_assign(work, work) + ), + + TP_printk("work struct %p", __entry->work) +) + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,37)) +/** + * workqueue_queue_work - called when a work gets queued + * @req_cpu: the requested cpu + * @cwq: pointer to struct cpu_workqueue_struct + * @work: pointer to struct work_struct + * + * This event occurs when a work is queued immediately or once a + * delayed work is actually queued on a workqueue (ie: once the delay + * has been reached). + */ +TRACE_EVENT(workqueue_queue_work, + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,9,0)) + TP_PROTO(unsigned int req_cpu, struct pool_workqueue *pwq, + struct work_struct *work), + + TP_ARGS(req_cpu, pwq, work), +#else + TP_PROTO(unsigned int req_cpu, struct cpu_workqueue_struct *cwq, + struct work_struct *work), + + TP_ARGS(req_cpu, cwq, work), +#endif + + TP_STRUCT__entry( + __field( void *, work ) + __field( void *, function) + __field( unsigned int, req_cpu ) + ), + + TP_fast_assign( + tp_assign(work, work) + tp_assign(function, work->func) + tp_assign(req_cpu, req_cpu) + ), + + TP_printk("work struct=%p function=%pf req_cpu=%u", + __entry->work, __entry->function, + __entry->req_cpu) +) + +/** + * workqueue_activate_work - called when a work gets activated + * @work: pointer to struct work_struct + * + * This event occurs when a queued work is put on the active queue, + * which happens immediately after queueing unless @max_active limit + * is reached. + */ +DEFINE_EVENT(workqueue_work, workqueue_activate_work, + + TP_PROTO(struct work_struct *work), + + TP_ARGS(work) +) +#endif + +/** + * workqueue_execute_start - called immediately before the workqueue callback + * @work: pointer to struct work_struct + * + * Allows to track workqueue execution. + */ +TRACE_EVENT(workqueue_execute_start, + + TP_PROTO(struct work_struct *work), + + TP_ARGS(work), + + TP_STRUCT__entry( + __field( void *, work ) + __field( void *, function) + ), + + TP_fast_assign( + tp_assign(work, work) + tp_assign(function, work->func) + ), + + TP_printk("work struct %p: function %pf", __entry->work, __entry->function) +) + +/** + * workqueue_execute_end - called immediately after the workqueue callback + * @work: pointer to struct work_struct + * + * Allows to track workqueue execution. + */ +DEFINE_EVENT(workqueue_work, workqueue_execute_end, + + TP_PROTO(struct work_struct *work), + + TP_ARGS(work) +) + +#else + +DECLARE_EVENT_CLASS(workqueue, + + TP_PROTO(struct task_struct *wq_thread, struct work_struct *work), + + TP_ARGS(wq_thread, work), + + TP_STRUCT__entry( + __array(char, thread_comm, TASK_COMM_LEN) + __field(pid_t, thread_pid) + __field(work_func_t, func) + ), + + TP_fast_assign( + tp_memcpy(thread_comm, wq_thread->comm, TASK_COMM_LEN) + tp_assign(thread_pid, wq_thread->pid) + tp_assign(func, work->func) + ), + + TP_printk("thread=%s:%d func=%pf", __entry->thread_comm, + __entry->thread_pid, __entry->func) +) + +DEFINE_EVENT(workqueue, workqueue_insertion, + + TP_PROTO(struct task_struct *wq_thread, struct work_struct *work), + + TP_ARGS(wq_thread, work) +) + +DEFINE_EVENT(workqueue, workqueue_execution, + + TP_PROTO(struct task_struct *wq_thread, struct work_struct *work), + + TP_ARGS(wq_thread, work) +) + +/* Trace the creation of one workqueue thread on a cpu */ +TRACE_EVENT(workqueue_creation, + + TP_PROTO(struct task_struct *wq_thread, int cpu), + + TP_ARGS(wq_thread, cpu), + + TP_STRUCT__entry( + __array(char, thread_comm, TASK_COMM_LEN) + __field(pid_t, thread_pid) + __field(int, cpu) + ), + + TP_fast_assign( + tp_memcpy(thread_comm, wq_thread->comm, TASK_COMM_LEN) + tp_assign(thread_pid, wq_thread->pid) + tp_assign(cpu, cpu) + ), + + TP_printk("thread=%s:%d cpu=%d", __entry->thread_comm, + __entry->thread_pid, __entry->cpu) +) + +TRACE_EVENT(workqueue_destruction, + + TP_PROTO(struct task_struct *wq_thread), + + TP_ARGS(wq_thread), + + TP_STRUCT__entry( + __array(char, thread_comm, TASK_COMM_LEN) + __field(pid_t, thread_pid) + ), + + TP_fast_assign( + tp_memcpy(thread_comm, wq_thread->comm, TASK_COMM_LEN) + tp_assign(thread_pid, wq_thread->pid) + ), + + TP_printk("thread=%s:%d", __entry->thread_comm, __entry->thread_pid) +) + +#endif + +#endif /* _TRACE_WORKQUEUE_H */ + +/* This part must be outside protection */ +#include "../../../probes/define_trace.h" --- linux-3.11.0.orig/ubuntu/lttng/instrumentation/events/lttng-module/udp.h +++ linux-3.11.0/ubuntu/lttng/instrumentation/events/lttng-module/udp.h @@ -0,0 +1,32 @@ +#undef TRACE_SYSTEM +#define TRACE_SYSTEM udp + +#if !defined(_TRACE_UDP_H) || defined(TRACE_HEADER_MULTI_READ) +#define _TRACE_UDP_H + +#include +#include + +TRACE_EVENT(udp_fail_queue_rcv_skb, + + TP_PROTO(int rc, struct sock *sk), + + TP_ARGS(rc, sk), + + TP_STRUCT__entry( + __field(int, rc) + __field(__u16, lport) + ), + + TP_fast_assign( + tp_assign(rc, rc) + tp_assign(lport, inet_sk(sk)->inet_num) + ), + + TP_printk("rc=%d port=%hu", __entry->rc, __entry->lport) +) + +#endif /* _TRACE_UDP_H */ + +/* This part must be outside protection */ +#include "../../../probes/define_trace.h" --- linux-3.11.0.orig/ubuntu/lttng/instrumentation/events/lttng-module/regmap.h +++ linux-3.11.0/ubuntu/lttng/instrumentation/events/lttng-module/regmap.h @@ -0,0 +1,188 @@ +#undef TRACE_SYSTEM +#define TRACE_SYSTEM regmap + +#if !defined(_TRACE_REGMAP_H) || defined(TRACE_HEADER_MULTI_READ) +#define _TRACE_REGMAP_H + +#include +#include +#include + +#ifndef _TRACE_REGMAP_DEF_ +#define _TRACE_REGMAP_DEF_ +struct device; +struct regmap; +#endif + +/* + * Log register events + */ +DECLARE_EVENT_CLASS(regmap_reg, + + TP_PROTO(struct device *dev, unsigned int reg, + unsigned int val), + + TP_ARGS(dev, reg, val), + + TP_STRUCT__entry( + __string( name, dev_name(dev) ) + __field( unsigned int, reg ) + __field( unsigned int, val ) + ), + + TP_fast_assign( + tp_strcpy(name, dev_name(dev)) + tp_assign(reg, reg) + tp_assign(val, val) + ), + + TP_printk("%s reg=%x val=%x", __get_str(name), + (unsigned int)__entry->reg, + (unsigned int)__entry->val) +) + +DEFINE_EVENT(regmap_reg, regmap_reg_write, + + TP_PROTO(struct device *dev, unsigned int reg, + unsigned int val), + + TP_ARGS(dev, reg, val) + +) + +DEFINE_EVENT(regmap_reg, regmap_reg_read, + + TP_PROTO(struct device *dev, unsigned int reg, + unsigned int val), + + TP_ARGS(dev, reg, val) + +) + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,3,0)) +DEFINE_EVENT(regmap_reg, regmap_reg_read_cache, + + TP_PROTO(struct device *dev, unsigned int reg, + unsigned int val), + + TP_ARGS(dev, reg, val) + +) +#endif + +DECLARE_EVENT_CLASS(regmap_block, + + TP_PROTO(struct device *dev, unsigned int reg, int count), + + TP_ARGS(dev, reg, count), + + TP_STRUCT__entry( + __string( name, dev_name(dev) ) + __field( unsigned int, reg ) + __field( int, count ) + ), + + TP_fast_assign( + tp_strcpy(name, dev_name(dev)) + tp_assign(reg, reg) + tp_assign(count, count) + ), + + TP_printk("%s reg=%x count=%d", __get_str(name), + (unsigned int)__entry->reg, + (int)__entry->count) +) + +DEFINE_EVENT(regmap_block, regmap_hw_read_start, + + TP_PROTO(struct device *dev, unsigned int reg, int count), + + TP_ARGS(dev, reg, count) +) + +DEFINE_EVENT(regmap_block, regmap_hw_read_done, + + TP_PROTO(struct device *dev, unsigned int reg, int count), + + TP_ARGS(dev, reg, count) +) + +DEFINE_EVENT(regmap_block, regmap_hw_write_start, + + TP_PROTO(struct device *dev, unsigned int reg, int count), + + TP_ARGS(dev, reg, count) +) + +DEFINE_EVENT(regmap_block, regmap_hw_write_done, + + TP_PROTO(struct device *dev, unsigned int reg, int count), + + TP_ARGS(dev, reg, count) +) + +TRACE_EVENT(regcache_sync, + + TP_PROTO(struct device *dev, const char *type, + const char *status), + + TP_ARGS(dev, type, status), + + TP_STRUCT__entry( + __string( name, dev_name(dev) ) + __string( status, status ) + __string( type, type ) + ), + + TP_fast_assign( + tp_strcpy(name, dev_name(dev)) + tp_strcpy(status, status) + tp_strcpy(type, type) + ), + + TP_printk("%s type=%s status=%s", __get_str(name), + __get_str(type), __get_str(status)) +) + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,4,0)) +DECLARE_EVENT_CLASS(regmap_bool, + + TP_PROTO(struct device *dev, bool flag), + + TP_ARGS(dev, flag), + + TP_STRUCT__entry( + __string( name, dev_name(dev) ) + __field( int, flag ) + ), + + TP_fast_assign( + tp_strcpy(name, dev_name(dev)) + tp_assign(flag, flag) + ), + + TP_printk("%s flag=%d", __get_str(name), + (int)__entry->flag) +) + +DEFINE_EVENT(regmap_bool, regmap_cache_only, + + TP_PROTO(struct device *dev, bool flag), + + TP_ARGS(dev, flag) + +) + +DEFINE_EVENT(regmap_bool, regmap_cache_bypass, + + TP_PROTO(struct device *dev, bool flag), + + TP_ARGS(dev, flag) + +) +#endif + +#endif /* _TRACE_REGMAP_H */ + +/* This part must be outside protection */ +#include "../../../probes/define_trace.h" --- linux-3.11.0.orig/ubuntu/lttng/instrumentation/events/lttng-module/napi.h +++ linux-3.11.0/ubuntu/lttng/instrumentation/events/lttng-module/napi.h @@ -0,0 +1,38 @@ +#undef TRACE_SYSTEM +#define TRACE_SYSTEM napi + +#if !defined(_TRACE_NAPI_H_) || defined(TRACE_HEADER_MULTI_READ) +#define _TRACE_NAPI_H_ + +#include +#include +#include + +#define NO_DEV "(no_device)" + +TRACE_EVENT(napi_poll, + + TP_PROTO(struct napi_struct *napi), + + TP_ARGS(napi), + + TP_STRUCT__entry( + __field( struct napi_struct *, napi) + __string( dev_name, napi->dev ? napi->dev->name : NO_DEV) + ), + + TP_fast_assign( + tp_assign(napi, napi) + tp_strcpy(dev_name, napi->dev ? napi->dev->name : NO_DEV) + ), + + TP_printk("napi poll on napi struct %p for device %s", + __entry->napi, __get_str(dev_name)) +) + +#undef NO_DEV + +#endif /* _TRACE_NAPI_H_ */ + +/* This part must be outside protection */ +#include "../../../probes/define_trace.h" --- linux-3.11.0.orig/ubuntu/lttng/instrumentation/events/lttng-module/jbd2.h +++ linux-3.11.0/ubuntu/lttng/instrumentation/events/lttng-module/jbd2.h @@ -0,0 +1,280 @@ +#undef TRACE_SYSTEM +#define TRACE_SYSTEM jbd2 + +#if !defined(_TRACE_JBD2_H) || defined(TRACE_HEADER_MULTI_READ) +#define _TRACE_JBD2_H + +#include +#include +#include + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,32)) +#ifndef _TRACE_JBD2_DEF +#define _TRACE_JBD2_DEF +struct transaction_chp_stats_s; +struct transaction_run_stats_s; +#endif +#endif + +TRACE_EVENT(jbd2_checkpoint, + + TP_PROTO(journal_t *journal, int result), + + TP_ARGS(journal, result), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( int, result ) + ), + + TP_fast_assign( + tp_assign(dev, journal->j_fs_dev->bd_dev) + tp_assign(result, result) + ), + + TP_printk("dev %d,%d result %d", + MAJOR(__entry->dev), MINOR(__entry->dev), __entry->result) +) + +DECLARE_EVENT_CLASS(jbd2_commit, + + TP_PROTO(journal_t *journal, transaction_t *commit_transaction), + + TP_ARGS(journal, commit_transaction), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( char, sync_commit ) + __field( int, transaction ) + ), + + TP_fast_assign( + tp_assign(dev, journal->j_fs_dev->bd_dev) + tp_assign(sync_commit, commit_transaction->t_synchronous_commit) + tp_assign(transaction, commit_transaction->t_tid) + ), + + TP_printk("dev %d,%d transaction %d sync %d", + MAJOR(__entry->dev), MINOR(__entry->dev), + __entry->transaction, __entry->sync_commit) +) + +DEFINE_EVENT(jbd2_commit, jbd2_start_commit, + + TP_PROTO(journal_t *journal, transaction_t *commit_transaction), + + TP_ARGS(journal, commit_transaction) +) + +DEFINE_EVENT(jbd2_commit, jbd2_commit_locking, + + TP_PROTO(journal_t *journal, transaction_t *commit_transaction), + + TP_ARGS(journal, commit_transaction) +) + +DEFINE_EVENT(jbd2_commit, jbd2_commit_flushing, + + TP_PROTO(journal_t *journal, transaction_t *commit_transaction), + + TP_ARGS(journal, commit_transaction) +) + +DEFINE_EVENT(jbd2_commit, jbd2_commit_logging, + + TP_PROTO(journal_t *journal, transaction_t *commit_transaction), + + TP_ARGS(journal, commit_transaction) +) + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,4,0)) +DEFINE_EVENT(jbd2_commit, jbd2_drop_transaction, + + TP_PROTO(journal_t *journal, transaction_t *commit_transaction), + + TP_ARGS(journal, commit_transaction) +) +#endif + +TRACE_EVENT(jbd2_end_commit, + TP_PROTO(journal_t *journal, transaction_t *commit_transaction), + + TP_ARGS(journal, commit_transaction), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( char, sync_commit ) + __field( int, transaction ) + __field( int, head ) + ), + + TP_fast_assign( + tp_assign(dev, journal->j_fs_dev->bd_dev) + tp_assign(sync_commit, commit_transaction->t_synchronous_commit) + tp_assign(transaction, commit_transaction->t_tid) + tp_assign(head, journal->j_tail_sequence) + ), + + TP_printk("dev %d,%d transaction %d sync %d head %d", + MAJOR(__entry->dev), MINOR(__entry->dev), + __entry->transaction, __entry->sync_commit, __entry->head) +) + +TRACE_EVENT(jbd2_submit_inode_data, + TP_PROTO(struct inode *inode), + + TP_ARGS(inode), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + ), + + TP_fast_assign( + tp_assign(dev, inode->i_sb->s_dev) + tp_assign(ino, inode->i_ino) + ), + + TP_printk("dev %d,%d ino %lu", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino) +) + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,32)) +TRACE_EVENT(jbd2_run_stats, + TP_PROTO(dev_t dev, unsigned long tid, + struct transaction_run_stats_s *stats), + + TP_ARGS(dev, tid, stats), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( unsigned long, tid ) + __field( unsigned long, wait ) + __field( unsigned long, running ) + __field( unsigned long, locked ) + __field( unsigned long, flushing ) + __field( unsigned long, logging ) + __field( __u32, handle_count ) + __field( __u32, blocks ) + __field( __u32, blocks_logged ) + ), + + TP_fast_assign( + tp_assign(dev, dev) + tp_assign(tid, tid) + tp_assign(wait, stats->rs_wait) + tp_assign(running, stats->rs_running) + tp_assign(locked, stats->rs_locked) + tp_assign(flushing, stats->rs_flushing) + tp_assign(logging, stats->rs_logging) + tp_assign(handle_count, stats->rs_handle_count) + tp_assign(blocks, stats->rs_blocks) + tp_assign(blocks_logged, stats->rs_blocks_logged) + ), + + TP_printk("dev %d,%d tid %lu wait %u running %u locked %u flushing %u " + "logging %u handle_count %u blocks %u blocks_logged %u", + MAJOR(__entry->dev), MINOR(__entry->dev), __entry->tid, + jiffies_to_msecs(__entry->wait), + jiffies_to_msecs(__entry->running), + jiffies_to_msecs(__entry->locked), + jiffies_to_msecs(__entry->flushing), + jiffies_to_msecs(__entry->logging), + __entry->handle_count, __entry->blocks, + __entry->blocks_logged) +) + +TRACE_EVENT(jbd2_checkpoint_stats, + TP_PROTO(dev_t dev, unsigned long tid, + struct transaction_chp_stats_s *stats), + + TP_ARGS(dev, tid, stats), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( unsigned long, tid ) + __field( unsigned long, chp_time ) + __field( __u32, forced_to_close ) + __field( __u32, written ) + __field( __u32, dropped ) + ), + + TP_fast_assign( + tp_assign(dev, dev) + tp_assign(tid, tid) + tp_assign(chp_time, stats->cs_chp_time) + tp_assign(forced_to_close, stats->cs_forced_to_close) + tp_assign(written, stats->cs_written) + tp_assign(dropped, stats->cs_dropped) + ), + + TP_printk("dev %d,%d tid %lu chp_time %u forced_to_close %u " + "written %u dropped %u", + MAJOR(__entry->dev), MINOR(__entry->dev), __entry->tid, + jiffies_to_msecs(__entry->chp_time), + __entry->forced_to_close, __entry->written, __entry->dropped) +) +#endif + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,34)) +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,4,0)) +TRACE_EVENT(jbd2_update_log_tail, +#else +TRACE_EVENT(jbd2_cleanup_journal_tail, +#endif + + TP_PROTO(journal_t *journal, tid_t first_tid, + unsigned long block_nr, unsigned long freed), + + TP_ARGS(journal, first_tid, block_nr, freed), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( tid_t, tail_sequence ) + __field( tid_t, first_tid ) + __field(unsigned long, block_nr ) + __field(unsigned long, freed ) + ), + + TP_fast_assign( + tp_assign(dev, journal->j_fs_dev->bd_dev) + tp_assign(tail_sequence, journal->j_tail_sequence) + tp_assign(first_tid, first_tid) + tp_assign(block_nr, block_nr) + tp_assign(freed, freed) + ), + + TP_printk("dev %d,%d from %u to %u offset %lu freed %lu", + MAJOR(__entry->dev), MINOR(__entry->dev), + __entry->tail_sequence, __entry->first_tid, + __entry->block_nr, __entry->freed) +) +#endif + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,4,0)) +TRACE_EVENT(jbd2_write_superblock, + + TP_PROTO(journal_t *journal, int write_op), + + TP_ARGS(journal, write_op), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( int, write_op ) + ), + + TP_fast_assign( + tp_assign(dev, journal->j_fs_dev->bd_dev) + tp_assign(write_op, write_op) + ), + + TP_printk("dev %d,%d write_op %x", MAJOR(__entry->dev), + MINOR(__entry->dev), __entry->write_op) +) +#endif + +#endif /* _TRACE_JBD2_H */ + +/* This part must be outside protection */ +#include "../../../probes/define_trace.h" --- linux-3.11.0.orig/ubuntu/lttng/instrumentation/events/lttng-module/random.h +++ linux-3.11.0/ubuntu/lttng/instrumentation/events/lttng-module/random.h @@ -0,0 +1,152 @@ +#undef TRACE_SYSTEM +#define TRACE_SYSTEM random + +#if !defined(_TRACE_RANDOM_H) || defined(TRACE_HEADER_MULTI_READ) +#define _TRACE_RANDOM_H + +#include +#include + +DECLARE_EVENT_CLASS(random__mix_pool_bytes, + TP_PROTO(const char *pool_name, int bytes, unsigned long IP), + + TP_ARGS(pool_name, bytes, IP), + + TP_STRUCT__entry( + __string( pool_name, pool_name ) + __field( int, bytes ) + __field(unsigned long, IP ) + ), + + TP_fast_assign( + tp_strcpy(pool_name, pool_name) + tp_assign(bytes, bytes) + tp_assign(IP, IP) + ), + + TP_printk("%s pool: bytes %d caller %pF", + __get_str(pool_name), __entry->bytes, (void *)__entry->IP) +) + +DEFINE_EVENT_MAP(random__mix_pool_bytes, mix_pool_bytes, + + random_mix_pool_bytes, + + TP_PROTO(const char *pool_name, int bytes, unsigned long IP), + + TP_ARGS(pool_name, bytes, IP) +) + +DEFINE_EVENT_MAP(random__mix_pool_bytes, mix_pool_bytes_nolock, + + random_mix_pool_bytes_nolock, + + TP_PROTO(const char *pool_name, int bytes, unsigned long IP), + + TP_ARGS(pool_name, bytes, IP) +) + +TRACE_EVENT_MAP(credit_entropy_bits, + + random_credit_entropy_bits, + + TP_PROTO(const char *pool_name, int bits, int entropy_count, + int entropy_total, unsigned long IP), + + TP_ARGS(pool_name, bits, entropy_count, entropy_total, IP), + + TP_STRUCT__entry( + __string( pool_name, pool_name ) + __field( int, bits ) + __field( int, entropy_count ) + __field( int, entropy_total ) + __field(unsigned long, IP ) + ), + + TP_fast_assign( + tp_strcpy(pool_name, pool_name) + tp_assign(bits, bits) + tp_assign(entropy_count, entropy_count) + tp_assign(entropy_total, entropy_total) + tp_assign(IP, IP) + ), + + TP_printk("%s pool: bits %d entropy_count %d entropy_total %d " + "caller %pF", __get_str(pool_name), __entry->bits, + __entry->entropy_count, __entry->entropy_total, + (void *)__entry->IP) +) + +TRACE_EVENT_MAP(get_random_bytes, + + random_get_random_bytes, + + TP_PROTO(int nbytes, unsigned long IP), + + TP_ARGS(nbytes, IP), + + TP_STRUCT__entry( + __field( int, nbytes ) + __field(unsigned long, IP ) + ), + + TP_fast_assign( + tp_assign(nbytes, nbytes) + tp_assign(IP, IP) + ), + + TP_printk("nbytes %d caller %pF", __entry->nbytes, (void *)__entry->IP) +) + +DECLARE_EVENT_CLASS(random__extract_entropy, + TP_PROTO(const char *pool_name, int nbytes, int entropy_count, + unsigned long IP), + + TP_ARGS(pool_name, nbytes, entropy_count, IP), + + TP_STRUCT__entry( + __string( pool_name, pool_name ) + __field( int, nbytes ) + __field( int, entropy_count ) + __field(unsigned long, IP ) + ), + + TP_fast_assign( + tp_strcpy(pool_name, pool_name) + tp_assign(nbytes, nbytes) + tp_assign(entropy_count, entropy_count) + tp_assign(IP, IP) + ), + + TP_printk("%s pool: nbytes %d entropy_count %d caller %pF", + __get_str(pool_name), __entry->nbytes, __entry->entropy_count, + (void *)__entry->IP) +) + + +DEFINE_EVENT_MAP(random__extract_entropy, extract_entropy, + + random_extract_entropy, + + TP_PROTO(const char *pool_name, int nbytes, int entropy_count, + unsigned long IP), + + TP_ARGS(pool_name, nbytes, entropy_count, IP) +) + +DEFINE_EVENT_MAP(random__extract_entropy, extract_entropy_user, + + random_extract_entropy_user, + + TP_PROTO(const char *pool_name, int nbytes, int entropy_count, + unsigned long IP), + + TP_ARGS(pool_name, nbytes, entropy_count, IP) +) + + + +#endif /* _TRACE_RANDOM_H */ + +/* This part must be outside protection */ +#include "../../../probes/define_trace.h" --- linux-3.11.0.orig/ubuntu/lttng/instrumentation/events/lttng-module/compaction.h +++ linux-3.11.0/ubuntu/lttng/instrumentation/events/lttng-module/compaction.h @@ -0,0 +1,74 @@ +#undef TRACE_SYSTEM +#define TRACE_SYSTEM compaction + +#if !defined(_TRACE_COMPACTION_H) || defined(TRACE_HEADER_MULTI_READ) +#define _TRACE_COMPACTION_H + +#include +#include +#include + +DECLARE_EVENT_CLASS(mm_compaction_isolate_template, + + TP_PROTO(unsigned long nr_scanned, + unsigned long nr_taken), + + TP_ARGS(nr_scanned, nr_taken), + + TP_STRUCT__entry( + __field(unsigned long, nr_scanned) + __field(unsigned long, nr_taken) + ), + + TP_fast_assign( + tp_assign(nr_scanned, nr_scanned) + tp_assign(nr_taken, nr_taken) + ), + + TP_printk("nr_scanned=%lu nr_taken=%lu", + __entry->nr_scanned, + __entry->nr_taken) +) + +DEFINE_EVENT(mm_compaction_isolate_template, mm_compaction_isolate_migratepages, + + TP_PROTO(unsigned long nr_scanned, + unsigned long nr_taken), + + TP_ARGS(nr_scanned, nr_taken) +) + +DEFINE_EVENT(mm_compaction_isolate_template, mm_compaction_isolate_freepages, + TP_PROTO(unsigned long nr_scanned, + unsigned long nr_taken), + + TP_ARGS(nr_scanned, nr_taken) +) + +TRACE_EVENT(mm_compaction_migratepages, + + TP_PROTO(unsigned long nr_migrated, + unsigned long nr_failed), + + TP_ARGS(nr_migrated, nr_failed), + + TP_STRUCT__entry( + __field(unsigned long, nr_migrated) + __field(unsigned long, nr_failed) + ), + + TP_fast_assign( + tp_assign(nr_migrated, nr_migrated) + tp_assign(nr_failed, nr_failed) + ), + + TP_printk("nr_migrated=%lu nr_failed=%lu", + __entry->nr_migrated, + __entry->nr_failed) +) + + +#endif /* _TRACE_COMPACTION_H */ + +/* This part must be outside protection */ +#include "../../../probes/define_trace.h" --- linux-3.11.0.orig/ubuntu/lttng/instrumentation/events/lttng-module/sched.h +++ linux-3.11.0/ubuntu/lttng/instrumentation/events/lttng-module/sched.h @@ -0,0 +1,560 @@ +#undef TRACE_SYSTEM +#define TRACE_SYSTEM sched + +#if !defined(_TRACE_SCHED_H) || defined(TRACE_HEADER_MULTI_READ) +#define _TRACE_SCHED_H + +#include +#include +#include +#include +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,9,0)) +#include +#endif + +#ifndef _TRACE_SCHED_DEF_ +#define _TRACE_SCHED_DEF_ + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,35)) + +static inline long __trace_sched_switch_state(struct task_struct *p) +{ + long state = p->state; + +#ifdef CONFIG_PREEMPT + /* + * For all intents and purposes a preempted task is a running task. + */ + if (task_thread_info(p)->preempt_count & PREEMPT_ACTIVE) +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,2,0)) + state = TASK_RUNNING | TASK_STATE_MAX; +#else + state = TASK_RUNNING; +#endif +#endif + + return state; +} + +#endif + +#endif /* _TRACE_SCHED_DEF_ */ + +/* + * Tracepoint for calling kthread_stop, performed to end a kthread: + */ +TRACE_EVENT(sched_kthread_stop, + + TP_PROTO(struct task_struct *t), + + TP_ARGS(t), + + TP_STRUCT__entry( + __array_text( char, comm, TASK_COMM_LEN ) + __field( pid_t, tid ) + ), + + TP_fast_assign( + tp_memcpy(comm, t->comm, TASK_COMM_LEN) + tp_assign(tid, t->pid) + ), + + TP_printk("comm=%s tid=%d", __entry->comm, __entry->tid) +) + +/* + * Tracepoint for the return value of the kthread stopping: + */ +TRACE_EVENT(sched_kthread_stop_ret, + + TP_PROTO(int ret), + + TP_ARGS(ret), + + TP_STRUCT__entry( + __field( int, ret ) + ), + + TP_fast_assign( + tp_assign(ret, ret) + ), + + TP_printk("ret=%d", __entry->ret) +) + +/* + * Tracepoint for waking up a task: + */ +DECLARE_EVENT_CLASS(sched_wakeup_template, + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,35)) + TP_PROTO(struct task_struct *p, int success), + + TP_ARGS(p, success), +#else + TP_PROTO(struct rq *rq, struct task_struct *p, int success), + + TP_ARGS(rq, p, success), +#endif + + TP_STRUCT__entry( + __array_text( char, comm, TASK_COMM_LEN ) + __field( pid_t, tid ) + __field( int, prio ) + __field( int, success ) +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,32)) + __field( int, target_cpu ) +#endif + ), + + TP_fast_assign( + tp_memcpy(comm, p->comm, TASK_COMM_LEN) + tp_assign(tid, p->pid) + tp_assign(prio, p->prio) + tp_assign(success, success) +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,32)) + tp_assign(target_cpu, task_cpu(p)) +#endif +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,6,0)) + ) + TP_perf_assign( + __perf_task(p) +#endif + ), + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,32)) + TP_printk("comm=%s tid=%d prio=%d success=%d target_cpu=%03d", + __entry->comm, __entry->tid, __entry->prio, + __entry->success, __entry->target_cpu) +#else + TP_printk("comm=%s tid=%d prio=%d success=%d", + __entry->comm, __entry->tid, __entry->prio, + __entry->success) +#endif +) + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,35)) + +DEFINE_EVENT(sched_wakeup_template, sched_wakeup, + TP_PROTO(struct task_struct *p, int success), + TP_ARGS(p, success)) + +/* + * Tracepoint for waking up a new task: + */ +DEFINE_EVENT(sched_wakeup_template, sched_wakeup_new, + TP_PROTO(struct task_struct *p, int success), + TP_ARGS(p, success)) + +#else /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,35)) */ + +DEFINE_EVENT(sched_wakeup_template, sched_wakeup, + TP_PROTO(struct rq *rq, struct task_struct *p, int success), + TP_ARGS(rq, p, success)) + +/* + * Tracepoint for waking up a new task: + */ +DEFINE_EVENT(sched_wakeup_template, sched_wakeup_new, + TP_PROTO(struct rq *rq, struct task_struct *p, int success), + TP_ARGS(rq, p, success)) + +#endif /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,35)) */ + +/* + * Tracepoint for task switches, performed by the scheduler: + */ +TRACE_EVENT(sched_switch, + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,35)) + TP_PROTO(struct task_struct *prev, + struct task_struct *next), + + TP_ARGS(prev, next), +#else /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,35)) */ + TP_PROTO(struct rq *rq, struct task_struct *prev, + struct task_struct *next), + + TP_ARGS(rq, prev, next), +#endif /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,35)) */ + + TP_STRUCT__entry( + __array_text( char, prev_comm, TASK_COMM_LEN ) + __field( pid_t, prev_tid ) + __field( int, prev_prio ) + __field( long, prev_state ) + __array_text( char, next_comm, TASK_COMM_LEN ) + __field( pid_t, next_tid ) + __field( int, next_prio ) + ), + + TP_fast_assign( + tp_memcpy(next_comm, next->comm, TASK_COMM_LEN) + tp_assign(prev_tid, prev->pid) + tp_assign(prev_prio, prev->prio - MAX_RT_PRIO) +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,35)) + tp_assign(prev_state, __trace_sched_switch_state(prev)) +#else + tp_assign(prev_state, prev->state) +#endif + tp_memcpy(prev_comm, prev->comm, TASK_COMM_LEN) + tp_assign(next_tid, next->pid) + tp_assign(next_prio, next->prio - MAX_RT_PRIO) + ), + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,2,0)) + TP_printk("prev_comm=%s prev_tid=%d prev_prio=%d prev_state=%s%s ==> next_comm=%s next_tid=%d next_prio=%d", + __entry->prev_comm, __entry->prev_tid, __entry->prev_prio, + __entry->prev_state & (TASK_STATE_MAX-1) ? + __print_flags(__entry->prev_state & (TASK_STATE_MAX-1), "|", + { 1, "S"} , { 2, "D" }, { 4, "T" }, { 8, "t" }, + { 16, "Z" }, { 32, "X" }, { 64, "x" }, + { 128, "W" }) : "R", + __entry->prev_state & TASK_STATE_MAX ? "+" : "", + __entry->next_comm, __entry->next_tid, __entry->next_prio) +#else + TP_printk("prev_comm=%s prev_tid=%d prev_prio=%d prev_state=%s ==> next_comm=%s next_tid=%d next_prio=%d", + __entry->prev_comm, __entry->prev_tid, __entry->prev_prio, + __entry->prev_state ? + __print_flags(__entry->prev_state, "|", + { 1, "S"} , { 2, "D" }, { 4, "T" }, { 8, "t" }, + { 16, "Z" }, { 32, "X" }, { 64, "x" }, + { 128, "W" }) : "R", + __entry->next_comm, __entry->next_tid, __entry->next_prio) +#endif +) + +/* + * Tracepoint for a task being migrated: + */ +TRACE_EVENT(sched_migrate_task, + + TP_PROTO(struct task_struct *p, int dest_cpu), + + TP_ARGS(p, dest_cpu), + + TP_STRUCT__entry( + __array_text( char, comm, TASK_COMM_LEN ) + __field( pid_t, tid ) + __field( int, prio ) + __field( int, orig_cpu ) + __field( int, dest_cpu ) + ), + + TP_fast_assign( + tp_memcpy(comm, p->comm, TASK_COMM_LEN) + tp_assign(tid, p->pid) + tp_assign(prio, p->prio - MAX_RT_PRIO) + tp_assign(orig_cpu, task_cpu(p)) + tp_assign(dest_cpu, dest_cpu) + ), + + TP_printk("comm=%s tid=%d prio=%d orig_cpu=%d dest_cpu=%d", + __entry->comm, __entry->tid, __entry->prio, + __entry->orig_cpu, __entry->dest_cpu) +) + +DECLARE_EVENT_CLASS(sched_process_template, + + TP_PROTO(struct task_struct *p), + + TP_ARGS(p), + + TP_STRUCT__entry( + __array_text( char, comm, TASK_COMM_LEN ) + __field( pid_t, tid ) + __field( int, prio ) + ), + + TP_fast_assign( + tp_memcpy(comm, p->comm, TASK_COMM_LEN) + tp_assign(tid, p->pid) + tp_assign(prio, p->prio - MAX_RT_PRIO) + ), + + TP_printk("comm=%s tid=%d prio=%d", + __entry->comm, __entry->tid, __entry->prio) +) + +/* + * Tracepoint for freeing a task: + */ +DEFINE_EVENT(sched_process_template, sched_process_free, + TP_PROTO(struct task_struct *p), + TP_ARGS(p)) + + +/* + * Tracepoint for a task exiting: + */ +DEFINE_EVENT(sched_process_template, sched_process_exit, + TP_PROTO(struct task_struct *p), + TP_ARGS(p)) + +/* + * Tracepoint for waiting on task to unschedule: + */ +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,35)) +DEFINE_EVENT(sched_process_template, sched_wait_task, + TP_PROTO(struct task_struct *p), + TP_ARGS(p)) +#else /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,35)) */ +DEFINE_EVENT(sched_process_template, sched_wait_task, + TP_PROTO(struct rq *rq, struct task_struct *p), + TP_ARGS(rq, p)) +#endif /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,35)) */ + +/* + * Tracepoint for a waiting task: + */ +TRACE_EVENT(sched_process_wait, + + TP_PROTO(struct pid *pid), + + TP_ARGS(pid), + + TP_STRUCT__entry( + __array_text( char, comm, TASK_COMM_LEN ) + __field( pid_t, tid ) + __field( int, prio ) + ), + + TP_fast_assign( + tp_memcpy(comm, current->comm, TASK_COMM_LEN) + tp_assign(tid, pid_nr(pid)) + tp_assign(prio, current->prio - MAX_RT_PRIO) + ), + + TP_printk("comm=%s tid=%d prio=%d", + __entry->comm, __entry->tid, __entry->prio) +) + +/* + * Tracepoint for do_fork. + * Saving both TID and PID information, especially for the child, allows + * trace analyzers to distinguish between creation of a new process and + * creation of a new thread. Newly created processes will have child_tid + * == child_pid, while creation of a thread yields to child_tid != + * child_pid. + */ +TRACE_EVENT(sched_process_fork, + + TP_PROTO(struct task_struct *parent, struct task_struct *child), + + TP_ARGS(parent, child), + + TP_STRUCT__entry( + __array_text( char, parent_comm, TASK_COMM_LEN ) + __field( pid_t, parent_tid ) + __field( pid_t, parent_pid ) + __array_text( char, child_comm, TASK_COMM_LEN ) + __field( pid_t, child_tid ) + __field( pid_t, child_pid ) + ), + + TP_fast_assign( + tp_memcpy(parent_comm, parent->comm, TASK_COMM_LEN) + tp_assign(parent_tid, parent->pid) + tp_assign(parent_pid, parent->tgid) + tp_memcpy(child_comm, child->comm, TASK_COMM_LEN) + tp_assign(child_tid, child->pid) + tp_assign(child_pid, child->tgid) + ), + + TP_printk("comm=%s tid=%d child_comm=%s child_tid=%d", + __entry->parent_comm, __entry->parent_tid, + __entry->child_comm, __entry->child_tid) +) + +#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,33)) +/* + * Tracepoint for sending a signal: + */ +TRACE_EVENT(sched_signal_send, + + TP_PROTO(int sig, struct task_struct *p), + + TP_ARGS(sig, p), + + TP_STRUCT__entry( + __field( int, sig ) + __array( char, comm, TASK_COMM_LEN ) + __field( pid_t, pid ) + ), + + TP_fast_assign( + tp_memcpy(comm, p->comm, TASK_COMM_LEN) + tp_assign(pid, p->pid) + tp_assign(sig, sig) + ), + + TP_printk("sig=%d comm=%s pid=%d", + __entry->sig, __entry->comm, __entry->pid) +) +#endif + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,4,0)) +/* + * Tracepoint for exec: + */ +TRACE_EVENT(sched_process_exec, + + TP_PROTO(struct task_struct *p, pid_t old_pid, + struct linux_binprm *bprm), + + TP_ARGS(p, old_pid, bprm), + + TP_STRUCT__entry( + __string( filename, bprm->filename ) + __field( pid_t, tid ) + __field( pid_t, old_tid ) + ), + + TP_fast_assign( + tp_strcpy(filename, bprm->filename) + tp_assign(tid, p->pid) + tp_assign(old_tid, old_pid) + ), + + TP_printk("filename=%s tid=%d old_tid=%d", __get_str(filename), + __entry->tid, __entry->old_tid) +) +#endif + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,32)) +/* + * XXX the below sched_stat tracepoints only apply to SCHED_OTHER/BATCH/IDLE + * adding sched_stat support to SCHED_FIFO/RR would be welcome. + */ +DECLARE_EVENT_CLASS(sched_stat_template, + + TP_PROTO(struct task_struct *tsk, u64 delay), + + TP_ARGS(tsk, delay), + + TP_STRUCT__entry( + __array_text( char, comm, TASK_COMM_LEN ) + __field( pid_t, tid ) + __field( u64, delay ) + ), + + TP_fast_assign( + tp_memcpy(comm, tsk->comm, TASK_COMM_LEN) + tp_assign(tid, tsk->pid) + tp_assign(delay, delay) + ) + TP_perf_assign( + __perf_count(delay) + ), + + TP_printk("comm=%s tid=%d delay=%Lu [ns]", + __entry->comm, __entry->tid, + (unsigned long long)__entry->delay) +) + + +/* + * Tracepoint for accounting wait time (time the task is runnable + * but not actually running due to scheduler contention). + */ +DEFINE_EVENT(sched_stat_template, sched_stat_wait, + TP_PROTO(struct task_struct *tsk, u64 delay), + TP_ARGS(tsk, delay)) + +/* + * Tracepoint for accounting sleep time (time the task is not runnable, + * including iowait, see below). + */ +DEFINE_EVENT(sched_stat_template, sched_stat_sleep, + TP_PROTO(struct task_struct *tsk, u64 delay), + TP_ARGS(tsk, delay)) + +/* + * Tracepoint for accounting iowait time (time the task is not runnable + * due to waiting on IO to complete). + */ +DEFINE_EVENT(sched_stat_template, sched_stat_iowait, + TP_PROTO(struct task_struct *tsk, u64 delay), + TP_ARGS(tsk, delay)) + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,3,0)) +/* + * Tracepoint for accounting blocked time (time the task is in uninterruptible). + */ +DEFINE_EVENT(sched_stat_template, sched_stat_blocked, + TP_PROTO(struct task_struct *tsk, u64 delay), + TP_ARGS(tsk, delay)) +#endif + +/* + * Tracepoint for accounting runtime (time the task is executing + * on a CPU). + */ +TRACE_EVENT(sched_stat_runtime, + + TP_PROTO(struct task_struct *tsk, u64 runtime, u64 vruntime), + + TP_ARGS(tsk, runtime, vruntime), + + TP_STRUCT__entry( + __array_text( char, comm, TASK_COMM_LEN ) + __field( pid_t, tid ) + __field( u64, runtime ) + __field( u64, vruntime ) + ), + + TP_fast_assign( + tp_memcpy(comm, tsk->comm, TASK_COMM_LEN) + tp_assign(tid, tsk->pid) + tp_assign(runtime, runtime) + tp_assign(vruntime, vruntime) + ) + TP_perf_assign( + __perf_count(runtime) +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,6,0)) + __perf_task(tsk) +#endif + ), + + TP_printk("comm=%s tid=%d runtime=%Lu [ns] vruntime=%Lu [ns]", + __entry->comm, __entry->tid, + (unsigned long long)__entry->runtime, + (unsigned long long)__entry->vruntime) +) +#endif + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,37)) +/* + * Tracepoint for showing priority inheritance modifying a tasks + * priority. + */ +TRACE_EVENT(sched_pi_setprio, + + TP_PROTO(struct task_struct *tsk, int newprio), + + TP_ARGS(tsk, newprio), + + TP_STRUCT__entry( + __array_text( char, comm, TASK_COMM_LEN ) + __field( pid_t, tid ) + __field( int, oldprio ) + __field( int, newprio ) + ), + + TP_fast_assign( + tp_memcpy(comm, tsk->comm, TASK_COMM_LEN) + tp_assign(tid, tsk->pid) + tp_assign(oldprio, tsk->prio - MAX_RT_PRIO) + tp_assign(newprio, newprio - MAX_RT_PRIO) + ), + + TP_printk("comm=%s tid=%d oldprio=%d newprio=%d", + __entry->comm, __entry->tid, + __entry->oldprio, __entry->newprio) +) +#endif + +#endif /* _TRACE_SCHED_H */ + +/* This part must be outside protection */ +#include "../../../probes/define_trace.h" --- linux-3.11.0.orig/ubuntu/lttng/instrumentation/events/lttng-module/signal.h +++ linux-3.11.0/ubuntu/lttng/instrumentation/events/lttng-module/signal.h @@ -0,0 +1,202 @@ +#undef TRACE_SYSTEM +#define TRACE_SYSTEM signal + +#if !defined(_TRACE_SIGNAL_H) || defined(TRACE_HEADER_MULTI_READ) +#define _TRACE_SIGNAL_H + +#include +#include + +#ifndef _TRACE_SIGNAL_DEF +#define _TRACE_SIGNAL_DEF +#include +#include +#undef TP_STORE_SIGINFO +#define TP_STORE_SIGINFO(info) \ + tp_assign(errno, \ + (info == SEND_SIG_NOINFO || info == SEND_SIG_FORCED || info == SEND_SIG_PRIV) ? \ + 0 : \ + info->si_errno) \ + tp_assign(code, \ + (info == SEND_SIG_NOINFO || info == SEND_SIG_FORCED) ? \ + SI_USER : \ + ((info == SEND_SIG_PRIV) ? SI_KERNEL : info->si_code)) +#endif /* _TRACE_SIGNAL_DEF */ + +/** + * signal_generate - called when a signal is generated + * @sig: signal number + * @info: pointer to struct siginfo + * @task: pointer to struct task_struct + * + * Current process sends a 'sig' signal to 'task' process with + * 'info' siginfo. If 'info' is SEND_SIG_NOINFO or SEND_SIG_PRIV, + * 'info' is not a pointer and you can't access its field. Instead, + * SEND_SIG_NOINFO means that si_code is SI_USER, and SEND_SIG_PRIV + * means that si_code is SI_KERNEL. + */ +#if (LINUX_VERSION_CODE < KERNEL_VERSION(3,4,0)) +TRACE_EVENT(signal_generate, + + TP_PROTO(int sig, struct siginfo *info, struct task_struct *task), + + TP_ARGS(sig, info, task), + + TP_STRUCT__entry( + __field( int, sig ) + __field( int, errno ) + __field( int, code ) + __array_text( char, comm, TASK_COMM_LEN ) + __field( pid_t, pid ) + ), + + TP_fast_assign( + tp_assign(sig, sig) + TP_STORE_SIGINFO(info) + tp_memcpy(comm, task->comm, TASK_COMM_LEN) + tp_assign(pid, task->pid) + ), + + TP_printk("sig=%d errno=%d code=%d comm=%s pid=%d", + __entry->sig, __entry->errno, __entry->code, + __entry->comm, __entry->pid) +) +#else +TRACE_EVENT(signal_generate, + + TP_PROTO(int sig, struct siginfo *info, struct task_struct *task, + int group, int result), + + TP_ARGS(sig, info, task, group, result), + + TP_STRUCT__entry( + __field( int, sig ) + __field( int, errno ) + __field( int, code ) + __array_text( char, comm, TASK_COMM_LEN ) + __field( pid_t, pid ) + __field( int, group ) + __field( int, result ) + ), + + TP_fast_assign( + tp_assign(sig, sig) + TP_STORE_SIGINFO(info) + tp_memcpy(comm, task->comm, TASK_COMM_LEN) + tp_assign(pid, task->pid) + tp_assign(group, group) + tp_assign(result, result) + ), + + TP_printk("sig=%d errno=%d code=%d comm=%s pid=%d grp=%d res=%d", + __entry->sig, __entry->errno, __entry->code, + __entry->comm, __entry->pid, __entry->group, + __entry->result) +) +#endif + +/** + * signal_deliver - called when a signal is delivered + * @sig: signal number + * @info: pointer to struct siginfo + * @ka: pointer to struct k_sigaction + * + * A 'sig' signal is delivered to current process with 'info' siginfo, + * and it will be handled by 'ka'. ka->sa.sa_handler can be SIG_IGN or + * SIG_DFL. + * Note that some signals reported by signal_generate tracepoint can be + * lost, ignored or modified (by debugger) before hitting this tracepoint. + * This means, this can show which signals are actually delivered, but + * matching generated signals and delivered signals may not be correct. + */ +TRACE_EVENT(signal_deliver, + + TP_PROTO(int sig, struct siginfo *info, struct k_sigaction *ka), + + TP_ARGS(sig, info, ka), + + TP_STRUCT__entry( + __field( int, sig ) + __field( int, errno ) + __field( int, code ) + __field( unsigned long, sa_handler ) + __field( unsigned long, sa_flags ) + ), + + TP_fast_assign( + tp_assign(sig, sig) + TP_STORE_SIGINFO(info) + tp_assign(sa_handler, (unsigned long)ka->sa.sa_handler) + tp_assign(sa_flags, ka->sa.sa_flags) + ), + + TP_printk("sig=%d errno=%d code=%d sa_handler=%lx sa_flags=%lx", + __entry->sig, __entry->errno, __entry->code, + __entry->sa_handler, __entry->sa_flags) +) + +#if (LINUX_VERSION_CODE < KERNEL_VERSION(3,4,0)) +DECLARE_EVENT_CLASS(signal_queue_overflow, + + TP_PROTO(int sig, int group, struct siginfo *info), + + TP_ARGS(sig, group, info), + + TP_STRUCT__entry( + __field( int, sig ) + __field( int, group ) + __field( int, errno ) + __field( int, code ) + ), + + TP_fast_assign( + tp_assign(sig, sig) + tp_assign(group, group) + TP_STORE_SIGINFO(info) + ), + + TP_printk("sig=%d group=%d errno=%d code=%d", + __entry->sig, __entry->group, __entry->errno, __entry->code) +) + +/** + * signal_overflow_fail - called when signal queue is overflow + * @sig: signal number + * @group: signal to process group or not (bool) + * @info: pointer to struct siginfo + * + * Kernel fails to generate 'sig' signal with 'info' siginfo, because + * siginfo queue is overflow, and the signal is dropped. + * 'group' is not 0 if the signal will be sent to a process group. + * 'sig' is always one of RT signals. + */ +DEFINE_EVENT(signal_queue_overflow, signal_overflow_fail, + + TP_PROTO(int sig, int group, struct siginfo *info), + + TP_ARGS(sig, group, info) +) + +/** + * signal_lose_info - called when siginfo is lost + * @sig: signal number + * @group: signal to process group or not (bool) + * @info: pointer to struct siginfo + * + * Kernel generates 'sig' signal but loses 'info' siginfo, because siginfo + * queue is overflow. + * 'group' is not 0 if the signal will be sent to a process group. + * 'sig' is always one of non-RT signals. + */ +DEFINE_EVENT(signal_queue_overflow, signal_lose_info, + + TP_PROTO(int sig, int group, struct siginfo *info), + + TP_ARGS(sig, group, info) +) +#endif + +#endif /* _TRACE_SIGNAL_H */ + +/* This part must be outside protection */ +#include "../../../probes/define_trace.h" --- linux-3.11.0.orig/ubuntu/lttng/instrumentation/events/lttng-module/sock.h +++ linux-3.11.0/ubuntu/lttng/instrumentation/events/lttng-module/sock.h @@ -0,0 +1,68 @@ +#undef TRACE_SYSTEM +#define TRACE_SYSTEM sock + +#if !defined(_TRACE_SOCK_H) || defined(TRACE_HEADER_MULTI_READ) +#define _TRACE_SOCK_H + +#include +#include + +TRACE_EVENT(sock_rcvqueue_full, + + TP_PROTO(struct sock *sk, struct sk_buff *skb), + + TP_ARGS(sk, skb), + + TP_STRUCT__entry( + __field(int, rmem_alloc) + __field(unsigned int, truesize) + __field(int, sk_rcvbuf) + ), + + TP_fast_assign( + tp_assign(rmem_alloc, atomic_read(&sk->sk_rmem_alloc)) + tp_assign(truesize, skb->truesize) + tp_assign(sk_rcvbuf, sk->sk_rcvbuf) + ), + + TP_printk("rmem_alloc=%d truesize=%u sk_rcvbuf=%d", + __entry->rmem_alloc, __entry->truesize, __entry->sk_rcvbuf) +) + +TRACE_EVENT(sock_exceed_buf_limit, + + TP_PROTO(struct sock *sk, struct proto *prot, long allocated), + + TP_ARGS(sk, prot, allocated), + + TP_STRUCT__entry( + __string(name, prot->name) + __array(long, sysctl_mem, 3) + __field(long, allocated) + __field(int, sysctl_rmem) + __field(int, rmem_alloc) + ), + + TP_fast_assign( + tp_strcpy(name, prot->name) + tp_memcpy(sysctl_mem, prot->sysctl_mem, 3 * sizeof(long)) + tp_assign(allocated, allocated) + tp_assign(sysctl_rmem, prot->sysctl_rmem[0]) + tp_assign(rmem_alloc, atomic_read(&sk->sk_rmem_alloc)) + ), + + TP_printk("proto:%s sysctl_mem=%ld,%ld,%ld allocated=%ld " + "sysctl_rmem=%d rmem_alloc=%d", + __entry->name, + __entry->sysctl_mem[0], + __entry->sysctl_mem[1], + __entry->sysctl_mem[2], + __entry->allocated, + __entry->sysctl_rmem, + __entry->rmem_alloc) +) + +#endif /* _TRACE_SOCK_H */ + +/* This part must be outside protection */ +#include "../../../probes/define_trace.h" --- linux-3.11.0.orig/ubuntu/lttng/instrumentation/events/lttng-module/lttng-statedump.h +++ linux-3.11.0/ubuntu/lttng/instrumentation/events/lttng-module/lttng-statedump.h @@ -0,0 +1,166 @@ +#undef TRACE_SYSTEM +#define TRACE_SYSTEM lttng_statedump + +#if !defined(_TRACE_LTTNG_STATEDUMP_H) || defined(TRACE_HEADER_MULTI_READ) +#define _TRACE_LTTNG_STATEDUMP_H + +#include +#include +#include + +TRACE_EVENT(lttng_statedump_start, + TP_PROTO(struct lttng_session *session), + TP_ARGS(session), + TP_STRUCT__entry( + ), + TP_fast_assign( + ), + TP_printk("") +) + +TRACE_EVENT(lttng_statedump_end, + TP_PROTO(struct lttng_session *session), + TP_ARGS(session), + TP_STRUCT__entry( + ), + TP_fast_assign( + ), + TP_printk("") +) + +TRACE_EVENT(lttng_statedump_process_state, + TP_PROTO(struct lttng_session *session, + struct task_struct *p, + int type, int mode, int submode, int status, + struct pid_namespace *pid_ns), + TP_ARGS(session, p, type, mode, submode, status, pid_ns), + TP_STRUCT__entry( + __field(pid_t, tid) + __field(pid_t, vtid) + __field(pid_t, pid) + __field(pid_t, vpid) + __field(pid_t, ppid) + __field(pid_t, vppid) + __array_text(char, name, TASK_COMM_LEN) + __field(int, type) + __field(int, mode) + __field(int, submode) + __field(int, status) + __field(int, ns_level) + ), + TP_fast_assign( + tp_assign(tid, p->pid) + tp_assign(vtid, pid_ns ? task_pid_nr_ns(p, pid_ns) : 0) + tp_assign(pid, p->tgid) + tp_assign(vpid, pid_ns ? task_tgid_nr_ns(p, pid_ns) : 0) + tp_assign(ppid, + ({ + pid_t ret; + + rcu_read_lock(); + ret = task_tgid_nr(p->real_parent); + rcu_read_unlock(); + ret; + })) + tp_assign(vppid, + ({ + struct task_struct *parent; + pid_t ret = 0; + + if (pid_ns) { + rcu_read_lock(); + parent = rcu_dereference(p->real_parent); + ret = task_tgid_nr_ns(parent, pid_ns); + rcu_read_unlock(); + } + ret; + })) + tp_memcpy(name, p->comm, TASK_COMM_LEN) + tp_assign(type, type) + tp_assign(mode, mode) + tp_assign(submode, submode) + tp_assign(status, status) + tp_assign(ns_level, pid_ns ? pid_ns->level : 0) + ), + TP_printk("") +) + +TRACE_EVENT(lttng_statedump_file_descriptor, + TP_PROTO(struct lttng_session *session, + struct task_struct *p, int fd, const char *filename), + TP_ARGS(session, p, fd, filename), + TP_STRUCT__entry( + __field(pid_t, pid) + __field(int, fd) + __string(filename, filename) + ), + TP_fast_assign( + tp_assign(pid, p->tgid) + tp_assign(fd, fd) + tp_strcpy(filename, filename) + ), + TP_printk("") +) + +TRACE_EVENT(lttng_statedump_vm_map, + TP_PROTO(struct lttng_session *session, + struct task_struct *p, struct vm_area_struct *map, + unsigned long inode), + TP_ARGS(session, p, map, inode), + TP_STRUCT__entry( + __field(pid_t, pid) + __field_hex(unsigned long, start) + __field_hex(unsigned long, end) + __field_hex(unsigned long, flags) + __field(unsigned long, inode) + __field(unsigned long, pgoff) + ), + TP_fast_assign( + tp_assign(pid, p->tgid) + tp_assign(start, map->vm_start) + tp_assign(end, map->vm_end) + tp_assign(flags, map->vm_flags) + tp_assign(inode, inode) + tp_assign(pgoff, map->vm_pgoff << PAGE_SHIFT) + ), + TP_printk("") +) + +TRACE_EVENT(lttng_statedump_network_interface, + TP_PROTO(struct lttng_session *session, + struct net_device *dev, struct in_ifaddr *ifa), + TP_ARGS(session, dev, ifa), + TP_STRUCT__entry( + __string(name, dev->name) + __field_network_hex(uint32_t, address_ipv4) + ), + TP_fast_assign( + tp_strcpy(name, dev->name) + tp_assign(address_ipv4, ifa ? ifa->ifa_address : 0U) + ), + TP_printk("") +) + +/* Called with desc->lock held */ +TRACE_EVENT(lttng_statedump_interrupt, + TP_PROTO(struct lttng_session *session, + unsigned int irq, const char *chip_name, + struct irqaction *action), + TP_ARGS(session, irq, chip_name, action), + TP_STRUCT__entry( + __field(unsigned int, irq) + __string(name, chip_name) + __string(action, action->name ? : "") + ), + TP_fast_assign( + tp_assign(irq, irq) + tp_strcpy(name, chip_name) + tp_strcpy(action, action->name ? : "") + ), + TP_printk("") +) + +#endif /* _TRACE_LTTNG_STATEDUMP_H */ + +/* This part must be outside protection */ +#include "../../../probes/define_trace.h" --- linux-3.11.0.orig/ubuntu/lttng/instrumentation/events/lttng-module/scsi.h +++ linux-3.11.0/ubuntu/lttng/instrumentation/events/lttng-module/scsi.h @@ -0,0 +1,406 @@ +#undef TRACE_SYSTEM +#define TRACE_SYSTEM scsi + +#if !defined(_TRACE_SCSI_H) || defined(TRACE_HEADER_MULTI_READ) +#define _TRACE_SCSI_H + +#include +#include +#include +#include +#include + +#ifndef _TRACE_SCSI_DEF +#define _TRACE_SCSI_DEF + +#define scsi_opcode_name(opcode) { opcode, #opcode } +#define show_opcode_name(val) \ + __print_symbolic(val, \ + scsi_opcode_name(TEST_UNIT_READY), \ + scsi_opcode_name(REZERO_UNIT), \ + scsi_opcode_name(REQUEST_SENSE), \ + scsi_opcode_name(FORMAT_UNIT), \ + scsi_opcode_name(READ_BLOCK_LIMITS), \ + scsi_opcode_name(REASSIGN_BLOCKS), \ + scsi_opcode_name(INITIALIZE_ELEMENT_STATUS), \ + scsi_opcode_name(READ_6), \ + scsi_opcode_name(WRITE_6), \ + scsi_opcode_name(SEEK_6), \ + scsi_opcode_name(READ_REVERSE), \ + scsi_opcode_name(WRITE_FILEMARKS), \ + scsi_opcode_name(SPACE), \ + scsi_opcode_name(INQUIRY), \ + scsi_opcode_name(RECOVER_BUFFERED_DATA), \ + scsi_opcode_name(MODE_SELECT), \ + scsi_opcode_name(RESERVE), \ + scsi_opcode_name(RELEASE), \ + scsi_opcode_name(COPY), \ + scsi_opcode_name(ERASE), \ + scsi_opcode_name(MODE_SENSE), \ + scsi_opcode_name(START_STOP), \ + scsi_opcode_name(RECEIVE_DIAGNOSTIC), \ + scsi_opcode_name(SEND_DIAGNOSTIC), \ + scsi_opcode_name(ALLOW_MEDIUM_REMOVAL), \ + scsi_opcode_name(SET_WINDOW), \ + scsi_opcode_name(READ_CAPACITY), \ + scsi_opcode_name(READ_10), \ + scsi_opcode_name(WRITE_10), \ + scsi_opcode_name(SEEK_10), \ + scsi_opcode_name(POSITION_TO_ELEMENT), \ + scsi_opcode_name(WRITE_VERIFY), \ + scsi_opcode_name(VERIFY), \ + scsi_opcode_name(SEARCH_HIGH), \ + scsi_opcode_name(SEARCH_EQUAL), \ + scsi_opcode_name(SEARCH_LOW), \ + scsi_opcode_name(SET_LIMITS), \ + scsi_opcode_name(PRE_FETCH), \ + scsi_opcode_name(READ_POSITION), \ + scsi_opcode_name(SYNCHRONIZE_CACHE), \ + scsi_opcode_name(LOCK_UNLOCK_CACHE), \ + scsi_opcode_name(READ_DEFECT_DATA), \ + scsi_opcode_name(MEDIUM_SCAN), \ + scsi_opcode_name(COMPARE), \ + scsi_opcode_name(COPY_VERIFY), \ + scsi_opcode_name(WRITE_BUFFER), \ + scsi_opcode_name(READ_BUFFER), \ + scsi_opcode_name(UPDATE_BLOCK), \ + scsi_opcode_name(READ_LONG), \ + scsi_opcode_name(WRITE_LONG), \ + scsi_opcode_name(CHANGE_DEFINITION), \ + scsi_opcode_name(WRITE_SAME), \ + scsi_opcode_name(UNMAP), \ + scsi_opcode_name(READ_TOC), \ + scsi_opcode_name(LOG_SELECT), \ + scsi_opcode_name(LOG_SENSE), \ + scsi_opcode_name(XDWRITEREAD_10), \ + scsi_opcode_name(MODE_SELECT_10), \ + scsi_opcode_name(RESERVE_10), \ + scsi_opcode_name(RELEASE_10), \ + scsi_opcode_name(MODE_SENSE_10), \ + scsi_opcode_name(PERSISTENT_RESERVE_IN), \ + scsi_opcode_name(PERSISTENT_RESERVE_OUT), \ + scsi_opcode_name(VARIABLE_LENGTH_CMD), \ + scsi_opcode_name(REPORT_LUNS), \ + scsi_opcode_name(MAINTENANCE_IN), \ + scsi_opcode_name(MAINTENANCE_OUT), \ + scsi_opcode_name(MOVE_MEDIUM), \ + scsi_opcode_name(EXCHANGE_MEDIUM), \ + scsi_opcode_name(READ_12), \ + scsi_opcode_name(WRITE_12), \ + scsi_opcode_name(WRITE_VERIFY_12), \ + scsi_opcode_name(SEARCH_HIGH_12), \ + scsi_opcode_name(SEARCH_EQUAL_12), \ + scsi_opcode_name(SEARCH_LOW_12), \ + scsi_opcode_name(READ_ELEMENT_STATUS), \ + scsi_opcode_name(SEND_VOLUME_TAG), \ + scsi_opcode_name(WRITE_LONG_2), \ + scsi_opcode_name(READ_16), \ + scsi_opcode_name(WRITE_16), \ + scsi_opcode_name(VERIFY_16), \ + scsi_opcode_name(WRITE_SAME_16), \ + scsi_opcode_name(SERVICE_ACTION_IN), \ + scsi_opcode_name(SAI_READ_CAPACITY_16), \ + scsi_opcode_name(SAI_GET_LBA_STATUS), \ + scsi_opcode_name(MI_REPORT_TARGET_PGS), \ + scsi_opcode_name(MO_SET_TARGET_PGS), \ + scsi_opcode_name(READ_32), \ + scsi_opcode_name(WRITE_32), \ + scsi_opcode_name(WRITE_SAME_32), \ + scsi_opcode_name(ATA_16), \ + scsi_opcode_name(ATA_12)) + +#define scsi_hostbyte_name(result) { result, #result } +#define show_hostbyte_name(val) \ + __print_symbolic(val, \ + scsi_hostbyte_name(DID_OK), \ + scsi_hostbyte_name(DID_NO_CONNECT), \ + scsi_hostbyte_name(DID_BUS_BUSY), \ + scsi_hostbyte_name(DID_TIME_OUT), \ + scsi_hostbyte_name(DID_BAD_TARGET), \ + scsi_hostbyte_name(DID_ABORT), \ + scsi_hostbyte_name(DID_PARITY), \ + scsi_hostbyte_name(DID_ERROR), \ + scsi_hostbyte_name(DID_RESET), \ + scsi_hostbyte_name(DID_BAD_INTR), \ + scsi_hostbyte_name(DID_PASSTHROUGH), \ + scsi_hostbyte_name(DID_SOFT_ERROR), \ + scsi_hostbyte_name(DID_IMM_RETRY), \ + scsi_hostbyte_name(DID_REQUEUE), \ + scsi_hostbyte_name(DID_TRANSPORT_DISRUPTED), \ + scsi_hostbyte_name(DID_TRANSPORT_FAILFAST)) + +#define scsi_driverbyte_name(result) { result, #result } +#define show_driverbyte_name(val) \ + __print_symbolic(val, \ + scsi_driverbyte_name(DRIVER_OK), \ + scsi_driverbyte_name(DRIVER_BUSY), \ + scsi_driverbyte_name(DRIVER_SOFT), \ + scsi_driverbyte_name(DRIVER_MEDIA), \ + scsi_driverbyte_name(DRIVER_ERROR), \ + scsi_driverbyte_name(DRIVER_INVALID), \ + scsi_driverbyte_name(DRIVER_TIMEOUT), \ + scsi_driverbyte_name(DRIVER_HARD), \ + scsi_driverbyte_name(DRIVER_SENSE)) + +#define scsi_msgbyte_name(result) { result, #result } +#define show_msgbyte_name(val) \ + __print_symbolic(val, \ + scsi_msgbyte_name(COMMAND_COMPLETE), \ + scsi_msgbyte_name(EXTENDED_MESSAGE), \ + scsi_msgbyte_name(SAVE_POINTERS), \ + scsi_msgbyte_name(RESTORE_POINTERS), \ + scsi_msgbyte_name(DISCONNECT), \ + scsi_msgbyte_name(INITIATOR_ERROR), \ + scsi_msgbyte_name(ABORT_TASK_SET), \ + scsi_msgbyte_name(MESSAGE_REJECT), \ + scsi_msgbyte_name(NOP), \ + scsi_msgbyte_name(MSG_PARITY_ERROR), \ + scsi_msgbyte_name(LINKED_CMD_COMPLETE), \ + scsi_msgbyte_name(LINKED_FLG_CMD_COMPLETE), \ + scsi_msgbyte_name(TARGET_RESET), \ + scsi_msgbyte_name(ABORT_TASK), \ + scsi_msgbyte_name(CLEAR_TASK_SET), \ + scsi_msgbyte_name(INITIATE_RECOVERY), \ + scsi_msgbyte_name(RELEASE_RECOVERY), \ + scsi_msgbyte_name(CLEAR_ACA), \ + scsi_msgbyte_name(LOGICAL_UNIT_RESET), \ + scsi_msgbyte_name(SIMPLE_QUEUE_TAG), \ + scsi_msgbyte_name(HEAD_OF_QUEUE_TAG), \ + scsi_msgbyte_name(ORDERED_QUEUE_TAG), \ + scsi_msgbyte_name(IGNORE_WIDE_RESIDUE), \ + scsi_msgbyte_name(ACA), \ + scsi_msgbyte_name(QAS_REQUEST), \ + scsi_msgbyte_name(BUS_DEVICE_RESET), \ + scsi_msgbyte_name(ABORT)) + +#define scsi_statusbyte_name(result) { result, #result } +#define show_statusbyte_name(val) \ + __print_symbolic(val, \ + scsi_statusbyte_name(SAM_STAT_GOOD), \ + scsi_statusbyte_name(SAM_STAT_CHECK_CONDITION), \ + scsi_statusbyte_name(SAM_STAT_CONDITION_MET), \ + scsi_statusbyte_name(SAM_STAT_BUSY), \ + scsi_statusbyte_name(SAM_STAT_INTERMEDIATE), \ + scsi_statusbyte_name(SAM_STAT_INTERMEDIATE_CONDITION_MET), \ + scsi_statusbyte_name(SAM_STAT_RESERVATION_CONFLICT), \ + scsi_statusbyte_name(SAM_STAT_COMMAND_TERMINATED), \ + scsi_statusbyte_name(SAM_STAT_TASK_SET_FULL), \ + scsi_statusbyte_name(SAM_STAT_ACA_ACTIVE), \ + scsi_statusbyte_name(SAM_STAT_TASK_ABORTED)) + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,39)) +#define scsi_prot_op_name(result) { result, #result } +#define show_prot_op_name(val) \ + __print_symbolic(val, \ + scsi_prot_op_name(SCSI_PROT_NORMAL), \ + scsi_prot_op_name(SCSI_PROT_READ_INSERT), \ + scsi_prot_op_name(SCSI_PROT_WRITE_STRIP), \ + scsi_prot_op_name(SCSI_PROT_READ_STRIP), \ + scsi_prot_op_name(SCSI_PROT_WRITE_INSERT), \ + scsi_prot_op_name(SCSI_PROT_READ_PASS), \ + scsi_prot_op_name(SCSI_PROT_WRITE_PASS)) +#endif + +const char *scsi_trace_parse_cdb(struct trace_seq*, unsigned char*, int); +#define __parse_cdb(cdb, len) scsi_trace_parse_cdb(p, cdb, len) +#endif + +TRACE_EVENT(scsi_dispatch_cmd_start, + + TP_PROTO(struct scsi_cmnd *cmd), + + TP_ARGS(cmd), + + TP_STRUCT__entry( + __field( unsigned int, host_no ) + __field( unsigned int, channel ) + __field( unsigned int, id ) + __field( unsigned int, lun ) + __field( unsigned int, opcode ) + __field( unsigned int, cmd_len ) + __field( unsigned int, data_sglen ) + __field( unsigned int, prot_sglen ) +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,39)) + __field( unsigned char, prot_op ) +#endif + __dynamic_array_hex(unsigned char, cmnd, cmd->cmd_len) + ), + + TP_fast_assign( + tp_assign(host_no, cmd->device->host->host_no) + tp_assign(channel, cmd->device->channel) + tp_assign(id, cmd->device->id) + tp_assign(lun, cmd->device->lun) + tp_assign(opcode, cmd->cmnd[0]) + tp_assign(cmd_len, cmd->cmd_len) + tp_assign(data_sglen, scsi_sg_count(cmd)) + tp_assign(prot_sglen, scsi_prot_sg_count(cmd)) +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,39)) + tp_assign(prot_op, scsi_get_prot_op(cmd)) +#endif + tp_memcpy_dyn(cmnd, cmd->cmnd) + ), + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,39)) + TP_printk("host_no=%u channel=%u id=%u lun=%u data_sgl=%u prot_sgl=%u" \ + " prot_op=%s cmnd=(%s %s raw=%s)", +#else + TP_printk("host_no=%u channel=%u id=%u lun=%u data_sgl=%u prot_sgl=%u" \ + " cmnd=(%s %s raw=%s)", +#endif + __entry->host_no, __entry->channel, __entry->id, + __entry->lun, __entry->data_sglen, __entry->prot_sglen, +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,39)) + show_prot_op_name(__entry->prot_op), +#endif + show_opcode_name(__entry->opcode), + __parse_cdb(__get_dynamic_array(cmnd), __entry->cmd_len), + __print_hex(__get_dynamic_array(cmnd), __entry->cmd_len)) +) + +TRACE_EVENT(scsi_dispatch_cmd_error, + + TP_PROTO(struct scsi_cmnd *cmd, int rtn), + + TP_ARGS(cmd, rtn), + + TP_STRUCT__entry( + __field( unsigned int, host_no ) + __field( unsigned int, channel ) + __field( unsigned int, id ) + __field( unsigned int, lun ) + __field( int, rtn ) + __field( unsigned int, opcode ) + __field( unsigned int, cmd_len ) + __field( unsigned int, data_sglen ) + __field( unsigned int, prot_sglen ) +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,39)) + __field( unsigned char, prot_op ) +#endif + __dynamic_array_hex(unsigned char, cmnd, cmd->cmd_len) + ), + + TP_fast_assign( + tp_assign(host_no, cmd->device->host->host_no) + tp_assign(channel, cmd->device->channel) + tp_assign(id, cmd->device->id) + tp_assign(lun, cmd->device->lun) + tp_assign(rtn, rtn) + tp_assign(opcode, cmd->cmnd[0]) + tp_assign(cmd_len, cmd->cmd_len) + tp_assign(data_sglen, scsi_sg_count(cmd)) + tp_assign(prot_sglen, scsi_prot_sg_count(cmd)) +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,39)) + tp_assign(prot_op, scsi_get_prot_op(cmd)) +#endif + tp_memcpy_dyn(cmnd, cmd->cmnd) + ), + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,39)) + TP_printk("host_no=%u channel=%u id=%u lun=%u data_sgl=%u prot_sgl=%u" \ + " prot_op=%s cmnd=(%s %s raw=%s) rtn=%d", +#else + TP_printk("host_no=%u channel=%u id=%u lun=%u data_sgl=%u prot_sgl=%u" \ + " cmnd=(%s %s raw=%s) rtn=%d", +#endif + __entry->host_no, __entry->channel, __entry->id, + __entry->lun, __entry->data_sglen, __entry->prot_sglen, +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,39)) + show_prot_op_name(__entry->prot_op), +#endif + show_opcode_name(__entry->opcode), + __parse_cdb(__get_dynamic_array(cmnd), __entry->cmd_len), + __print_hex(__get_dynamic_array(cmnd), __entry->cmd_len), + __entry->rtn) +) + +DECLARE_EVENT_CLASS(scsi_cmd_done_timeout_template, + + TP_PROTO(struct scsi_cmnd *cmd), + + TP_ARGS(cmd), + + TP_STRUCT__entry( + __field( unsigned int, host_no ) + __field( unsigned int, channel ) + __field( unsigned int, id ) + __field( unsigned int, lun ) + __field( int, result ) + __field( unsigned int, opcode ) + __field( unsigned int, cmd_len ) + __field( unsigned int, data_sglen ) + __field( unsigned int, prot_sglen ) +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,39)) + __field( unsigned char, prot_op ) +#endif + __dynamic_array_hex(unsigned char, cmnd, cmd->cmd_len) + ), + + TP_fast_assign( + tp_assign(host_no, cmd->device->host->host_no) + tp_assign(channel, cmd->device->channel) + tp_assign(id, cmd->device->id) + tp_assign(lun, cmd->device->lun) + tp_assign(result, cmd->result) + tp_assign(opcode, cmd->cmnd[0]) + tp_assign(cmd_len, cmd->cmd_len) + tp_assign(data_sglen, scsi_sg_count(cmd)) + tp_assign(prot_sglen, scsi_prot_sg_count(cmd)) +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,39)) + tp_assign(prot_op, scsi_get_prot_op(cmd)) +#endif + tp_memcpy_dyn(cmnd, cmd->cmnd) + ), + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,39)) + TP_printk("host_no=%u channel=%u id=%u lun=%u data_sgl=%u " \ + "prot_sgl=%u prot_op=%s cmnd=(%s %s raw=%s) result=(driver=" \ + "%s host=%s message=%s status=%s)", +#else + TP_printk("host_no=%u channel=%u id=%u lun=%u data_sgl=%u " \ + "prot_sgl=%u cmnd=(%s %s raw=%s) result=(driver=%s host=%s " \ + "message=%s status=%s)", +#endif + __entry->host_no, __entry->channel, __entry->id, + __entry->lun, __entry->data_sglen, __entry->prot_sglen, +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,39)) + show_prot_op_name(__entry->prot_op), +#endif + show_opcode_name(__entry->opcode), + __parse_cdb(__get_dynamic_array(cmnd), __entry->cmd_len), + __print_hex(__get_dynamic_array(cmnd), __entry->cmd_len), + show_driverbyte_name(((__entry->result) >> 24) & 0xff), + show_hostbyte_name(((__entry->result) >> 16) & 0xff), + show_msgbyte_name(((__entry->result) >> 8) & 0xff), + show_statusbyte_name(__entry->result & 0xff)) +) + +DEFINE_EVENT(scsi_cmd_done_timeout_template, scsi_dispatch_cmd_done, + TP_PROTO(struct scsi_cmnd *cmd), + TP_ARGS(cmd)) + +DEFINE_EVENT(scsi_cmd_done_timeout_template, scsi_dispatch_cmd_timeout, + TP_PROTO(struct scsi_cmnd *cmd), + TP_ARGS(cmd)) + +TRACE_EVENT(scsi_eh_wakeup, + + TP_PROTO(struct Scsi_Host *shost), + + TP_ARGS(shost), + + TP_STRUCT__entry( + __field( unsigned int, host_no ) + ), + + TP_fast_assign( + tp_assign(host_no, shost->host_no) + ), + + TP_printk("host_no=%u", __entry->host_no) +) + +#endif /* _TRACE_SCSI_H */ + +/* This part must be outside protection */ +#include "../../../probes/define_trace.h" --- linux-3.11.0.orig/ubuntu/lttng/instrumentation/events/lttng-module/regulator.h +++ linux-3.11.0/ubuntu/lttng/instrumentation/events/lttng-module/regulator.h @@ -0,0 +1,141 @@ +#undef TRACE_SYSTEM +#define TRACE_SYSTEM regulator + +#if !defined(_TRACE_REGULATOR_H) || defined(TRACE_HEADER_MULTI_READ) +#define _TRACE_REGULATOR_H + +#include +#include + +/* + * Events which just log themselves and the regulator name for enable/disable + * type tracking. + */ +DECLARE_EVENT_CLASS(regulator_basic, + + TP_PROTO(const char *name), + + TP_ARGS(name), + + TP_STRUCT__entry( + __string( name, name ) + ), + + TP_fast_assign( + tp_strcpy(name, name) + ), + + TP_printk("name=%s", __get_str(name)) + +) + +DEFINE_EVENT(regulator_basic, regulator_enable, + + TP_PROTO(const char *name), + + TP_ARGS(name) + +) + +DEFINE_EVENT(regulator_basic, regulator_enable_delay, + + TP_PROTO(const char *name), + + TP_ARGS(name) + +) + +DEFINE_EVENT(regulator_basic, regulator_enable_complete, + + TP_PROTO(const char *name), + + TP_ARGS(name) + +) + +DEFINE_EVENT(regulator_basic, regulator_disable, + + TP_PROTO(const char *name), + + TP_ARGS(name) + +) + +DEFINE_EVENT(regulator_basic, regulator_disable_complete, + + TP_PROTO(const char *name), + + TP_ARGS(name) + +) + +/* + * Events that take a range of numerical values, mostly for voltages + * and so on. + */ +DECLARE_EVENT_CLASS(regulator_range, + + TP_PROTO(const char *name, int min, int max), + + TP_ARGS(name, min, max), + + TP_STRUCT__entry( + __string( name, name ) + __field( int, min ) + __field( int, max ) + ), + + TP_fast_assign( + tp_strcpy(name, name) + tp_assign(min, min) + tp_assign(max, max) + ), + + TP_printk("name=%s (%d-%d)", __get_str(name), + (int)__entry->min, (int)__entry->max) +) + +DEFINE_EVENT(regulator_range, regulator_set_voltage, + + TP_PROTO(const char *name, int min, int max), + + TP_ARGS(name, min, max) + +) + + +/* + * Events that take a single value, mostly for readback and refcounts. + */ +DECLARE_EVENT_CLASS(regulator_value, + + TP_PROTO(const char *name, unsigned int val), + + TP_ARGS(name, val), + + TP_STRUCT__entry( + __string( name, name ) + __field( unsigned int, val ) + ), + + TP_fast_assign( + tp_strcpy(name, name) + tp_assign(val, val) + ), + + TP_printk("name=%s, val=%u", __get_str(name), + (int)__entry->val) +) + +DEFINE_EVENT(regulator_value, regulator_set_voltage_complete, + + TP_PROTO(const char *name, unsigned int value), + + TP_ARGS(name, value) + +) + +#endif /* _TRACE_POWER_H */ + +/* This part must be outside protection */ +#include "../../../probes/define_trace.h" --- linux-3.11.0.orig/ubuntu/lttng/instrumentation/events/lttng-module/block.h +++ linux-3.11.0/ubuntu/lttng/instrumentation/events/lttng-module/block.h @@ -0,0 +1,878 @@ +#undef TRACE_SYSTEM +#define TRACE_SYSTEM block + +#if !defined(_TRACE_BLOCK_H) || defined(TRACE_HEADER_MULTI_READ) +#define _TRACE_BLOCK_H + +#include +#include +#include +#include +#include + +#define RWBS_LEN 8 + +#ifndef _TRACE_BLOCK_DEF_ +#define _TRACE_BLOCK_DEF_ + +#define __blk_dump_cmd(cmd, len) "" + +enum { + RWBS_FLAG_WRITE = (1 << 0), + RWBS_FLAG_DISCARD = (1 << 1), + RWBS_FLAG_READ = (1 << 2), + RWBS_FLAG_RAHEAD = (1 << 3), + RWBS_FLAG_BARRIER = (1 << 4), + RWBS_FLAG_SYNC = (1 << 5), + RWBS_FLAG_META = (1 << 6), + RWBS_FLAG_SECURE = (1 << 7), + RWBS_FLAG_FLUSH = (1 << 8), + RWBS_FLAG_FUA = (1 << 9), +}; + +#endif /* _TRACE_BLOCK_DEF_ */ + +#define __print_rwbs_flags(rwbs) \ + __print_flags(rwbs, "", \ + { RWBS_FLAG_FLUSH, "F" }, \ + { RWBS_FLAG_WRITE, "W" }, \ + { RWBS_FLAG_DISCARD, "D" }, \ + { RWBS_FLAG_READ, "R" }, \ + { RWBS_FLAG_FUA, "F" }, \ + { RWBS_FLAG_RAHEAD, "A" }, \ + { RWBS_FLAG_BARRIER, "B" }, \ + { RWBS_FLAG_SYNC, "S" }, \ + { RWBS_FLAG_META, "M" }, \ + { RWBS_FLAG_SECURE, "E" }) + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,1,0)) + +#define blk_fill_rwbs(rwbs, rw, bytes) \ + tp_assign(rwbs, ((rw) & WRITE ? RWBS_FLAG_WRITE : \ + ( (rw) & REQ_DISCARD ? RWBS_FLAG_DISCARD : \ + ( (bytes) ? RWBS_FLAG_READ : \ + ( 0 )))) \ + | ((rw) & REQ_RAHEAD ? RWBS_FLAG_RAHEAD : 0) \ + | ((rw) & REQ_SYNC ? RWBS_FLAG_SYNC : 0) \ + | ((rw) & REQ_META ? RWBS_FLAG_META : 0) \ + | ((rw) & REQ_SECURE ? RWBS_FLAG_SECURE : 0) \ + | ((rw) & REQ_FLUSH ? RWBS_FLAG_FLUSH : 0) \ + | ((rw) & REQ_FUA ? RWBS_FLAG_FUA : 0)) + +#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,37)) + +#define blk_fill_rwbs(rwbs, rw, bytes) \ + tp_assign(rwbs, ((rw) & WRITE ? RWBS_FLAG_WRITE : \ + ( (rw) & REQ_DISCARD ? RWBS_FLAG_DISCARD : \ + ( (bytes) ? RWBS_FLAG_READ : \ + ( 0 )))) \ + | ((rw) & REQ_RAHEAD ? RWBS_FLAG_RAHEAD : 0) \ + | ((rw) & REQ_SYNC ? RWBS_FLAG_SYNC : 0) \ + | ((rw) & REQ_META ? RWBS_FLAG_META : 0) \ + | ((rw) & REQ_SECURE ? RWBS_FLAG_SECURE : 0)) + +#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,36)) + +#define blk_fill_rwbs(rwbs, rw, bytes) \ + tp_assign(rwbs, ((rw) & WRITE ? RWBS_FLAG_WRITE : \ + ( (rw) & REQ_DISCARD ? RWBS_FLAG_DISCARD : \ + ( (bytes) ? RWBS_FLAG_READ : \ + ( 0 )))) \ + | ((rw) & REQ_RAHEAD ? RWBS_FLAG_RAHEAD : 0) \ + | ((rw) & REQ_HARDBARRIER ? RWBS_FLAG_BARRIER : 0) \ + | ((rw) & REQ_SYNC ? RWBS_FLAG_SYNC : 0) \ + | ((rw) & REQ_META ? RWBS_FLAG_META : 0) \ + | ((rw) & REQ_SECURE ? RWBS_FLAG_SECURE : 0)) + +#else + +#define blk_fill_rwbs(rwbs, rw, bytes) \ + tp_assign(rwbs, ((rw) & WRITE ? RWBS_FLAG_WRITE : \ + ( (rw) & (1 << BIO_RW_DISCARD) ? RWBS_FLAG_DISCARD : \ + ( (bytes) ? RWBS_FLAG_READ : \ + ( 0 )))) \ + | ((rw) & (1 << BIO_RW_AHEAD) ? RWBS_FLAG_RAHEAD : 0) \ + | ((rw) & (1 << BIO_RW_SYNCIO) ? RWBS_FLAG_SYNC : 0) \ + | ((rw) & (1 << BIO_RW_META) ? RWBS_FLAG_META : 0) \ + | ((rw) & (1 << BIO_RW_BARRIER) ? RWBS_FLAG_BARRIER : 0)) + +#endif + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,9,0)) +DECLARE_EVENT_CLASS(block_buffer, + + TP_PROTO(struct buffer_head *bh), + + TP_ARGS(bh), + + TP_STRUCT__entry ( + __field( dev_t, dev ) + __field( sector_t, sector ) + __field( size_t, size ) + ), + + TP_fast_assign( + tp_assign(dev, bh->b_bdev->bd_dev) + tp_assign(sector, bh->b_blocknr) + tp_assign(size, bh->b_size) + ), + + TP_printk("%d,%d sector=%llu size=%zu", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long long)__entry->sector, __entry->size + ) +) + +/** + * block_touch_buffer - mark a buffer accessed + * @bh: buffer_head being touched + * + * Called from touch_buffer(). + */ +DEFINE_EVENT(block_buffer, block_touch_buffer, + + TP_PROTO(struct buffer_head *bh), + + TP_ARGS(bh) +) + +/** + * block_dirty_buffer - mark a buffer dirty + * @bh: buffer_head being dirtied + * + * Called from mark_buffer_dirty(). + */ +DEFINE_EVENT(block_buffer, block_dirty_buffer, + + TP_PROTO(struct buffer_head *bh), + + TP_ARGS(bh) +) +#endif + +DECLARE_EVENT_CLASS(block_rq_with_error, + + TP_PROTO(struct request_queue *q, struct request *rq), + + TP_ARGS(q, rq), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( sector_t, sector ) + __field( unsigned int, nr_sector ) + __field( int, errors ) + __field( unsigned int, rwbs ) + __dynamic_array_hex( unsigned char, cmd, + (rq->cmd_type == REQ_TYPE_BLOCK_PC) ? + rq->cmd_len : 0) + ), + + TP_fast_assign( + tp_assign(dev, rq->rq_disk ? disk_devt(rq->rq_disk) : 0) + tp_assign(sector, (rq->cmd_type == REQ_TYPE_BLOCK_PC) ? + 0 : blk_rq_pos(rq)) + tp_assign(nr_sector, (rq->cmd_type == REQ_TYPE_BLOCK_PC) ? + 0 : blk_rq_sectors(rq)) + tp_assign(errors, rq->errors) + blk_fill_rwbs(rwbs, rq->cmd_flags, blk_rq_bytes(rq)) + tp_memcpy_dyn(cmd, (rq->cmd_type == REQ_TYPE_BLOCK_PC) ? + rq->cmd : NULL) + ), + + TP_printk("%d,%d %s (%s) %llu + %u [%d]", + MAJOR(__entry->dev), MINOR(__entry->dev), + __print_rwbs_flags(__entry->rwbs), + __blk_dump_cmd(__get_dynamic_array(cmd), + __get_dynamic_array_len(cmd)), + (unsigned long long)__entry->sector, + __entry->nr_sector, __entry->errors) +) + +/** + * block_rq_abort - abort block operation request + * @q: queue containing the block operation request + * @rq: block IO operation request + * + * Called immediately after pending block IO operation request @rq in + * queue @q is aborted. The fields in the operation request @rq + * can be examined to determine which device and sectors the pending + * operation would access. + */ +DEFINE_EVENT(block_rq_with_error, block_rq_abort, + + TP_PROTO(struct request_queue *q, struct request *rq), + + TP_ARGS(q, rq) +) + +/** + * block_rq_requeue - place block IO request back on a queue + * @q: queue holding operation + * @rq: block IO operation request + * + * The block operation request @rq is being placed back into queue + * @q. For some reason the request was not completed and needs to be + * put back in the queue. + */ +DEFINE_EVENT(block_rq_with_error, block_rq_requeue, + + TP_PROTO(struct request_queue *q, struct request *rq), + + TP_ARGS(q, rq) +) + +/** + * block_rq_complete - block IO operation completed by device driver + * @q: queue containing the block operation request + * @rq: block operations request + * + * The block_rq_complete tracepoint event indicates that some portion + * of operation request has been completed by the device driver. If + * the @rq->bio is %NULL, then there is absolutely no additional work to + * do for the request. If @rq->bio is non-NULL then there is + * additional work required to complete the request. + */ +DEFINE_EVENT(block_rq_with_error, block_rq_complete, + + TP_PROTO(struct request_queue *q, struct request *rq), + + TP_ARGS(q, rq) +) + +DECLARE_EVENT_CLASS(block_rq, + + TP_PROTO(struct request_queue *q, struct request *rq), + + TP_ARGS(q, rq), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( sector_t, sector ) + __field( unsigned int, nr_sector ) + __field( unsigned int, bytes ) + __field( unsigned int, rwbs ) + __array_text( char, comm, TASK_COMM_LEN ) + __dynamic_array_hex( unsigned char, cmd, + (rq->cmd_type == REQ_TYPE_BLOCK_PC) ? + rq->cmd_len : 0) + ), + + TP_fast_assign( + tp_assign(dev, rq->rq_disk ? disk_devt(rq->rq_disk) : 0) + tp_assign(sector, (rq->cmd_type == REQ_TYPE_BLOCK_PC) ? + 0 : blk_rq_pos(rq)) + tp_assign(nr_sector, (rq->cmd_type == REQ_TYPE_BLOCK_PC) ? + 0 : blk_rq_sectors(rq)) + tp_assign(bytes, (rq->cmd_type == REQ_TYPE_BLOCK_PC) ? + blk_rq_bytes(rq) : 0) + blk_fill_rwbs(rwbs, rq->cmd_flags, blk_rq_bytes(rq)) + tp_memcpy_dyn(cmd, (rq->cmd_type == REQ_TYPE_BLOCK_PC) ? + rq->cmd : NULL) + tp_memcpy(comm, current->comm, TASK_COMM_LEN) + ), + + TP_printk("%d,%d %s %u (%s) %llu + %u [%s]", + MAJOR(__entry->dev), MINOR(__entry->dev), + __print_rwbs_flags(__entry->rwbs), + __entry->bytes, + __blk_dump_cmd(__get_dynamic_array(cmd), + __get_dynamic_array_len(cmd)), + (unsigned long long)__entry->sector, + __entry->nr_sector, __entry->comm) +) + +/** + * block_rq_insert - insert block operation request into queue + * @q: target queue + * @rq: block IO operation request + * + * Called immediately before block operation request @rq is inserted + * into queue @q. The fields in the operation request @rq struct can + * be examined to determine which device and sectors the pending + * operation would access. + */ +DEFINE_EVENT(block_rq, block_rq_insert, + + TP_PROTO(struct request_queue *q, struct request *rq), + + TP_ARGS(q, rq) +) + +/** + * block_rq_issue - issue pending block IO request operation to device driver + * @q: queue holding operation + * @rq: block IO operation operation request + * + * Called when block operation request @rq from queue @q is sent to a + * device driver for processing. + */ +DEFINE_EVENT(block_rq, block_rq_issue, + + TP_PROTO(struct request_queue *q, struct request *rq), + + TP_ARGS(q, rq) +) + +/** + * block_bio_bounce - used bounce buffer when processing block operation + * @q: queue holding the block operation + * @bio: block operation + * + * A bounce buffer was used to handle the block operation @bio in @q. + * This occurs when hardware limitations prevent a direct transfer of + * data between the @bio data memory area and the IO device. Use of a + * bounce buffer requires extra copying of data and decreases + * performance. + */ +TRACE_EVENT(block_bio_bounce, + + TP_PROTO(struct request_queue *q, struct bio *bio), + + TP_ARGS(q, bio), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( sector_t, sector ) + __field( unsigned int, nr_sector ) + __field( unsigned int, rwbs ) + __array_text( char, comm, TASK_COMM_LEN ) + ), + + TP_fast_assign( + tp_assign(dev, bio->bi_bdev ? + bio->bi_bdev->bd_dev : 0) + tp_assign(sector, bio->bi_sector) + tp_assign(nr_sector, bio->bi_size >> 9) + blk_fill_rwbs(rwbs, bio->bi_rw, bio->bi_size) + tp_memcpy(comm, current->comm, TASK_COMM_LEN) + ), + + TP_printk("%d,%d %s %llu + %u [%s]", + MAJOR(__entry->dev), MINOR(__entry->dev), + __print_rwbs_flags(__entry->rwbs), + (unsigned long long)__entry->sector, + __entry->nr_sector, __entry->comm) +) + +/** + * block_bio_complete - completed all work on the block operation + * @q: queue holding the block operation + * @bio: block operation completed + * @error: io error value + * + * This tracepoint indicates there is no further work to do on this + * block IO operation @bio. + */ +TRACE_EVENT(block_bio_complete, + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,38)) + TP_PROTO(struct request_queue *q, struct bio *bio, int error), + + TP_ARGS(q, bio, error), +#else + TP_PROTO(struct request_queue *q, struct bio *bio), + + TP_ARGS(q, bio), +#endif + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( sector_t, sector ) + __field( unsigned, nr_sector ) + __field( int, error ) + __field( unsigned int, rwbs ) + ), + + TP_fast_assign( + tp_assign(dev, bio->bi_bdev->bd_dev) + tp_assign(sector, bio->bi_sector) + tp_assign(nr_sector, bio->bi_size >> 9) +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,38)) + tp_assign(error, error) +#else + tp_assign(error, 0) +#endif + blk_fill_rwbs(rwbs, bio->bi_rw, bio->bi_size) + ), + + TP_printk("%d,%d %s %llu + %u [%d]", + MAJOR(__entry->dev), MINOR(__entry->dev), + __print_rwbs_flags(__entry->rwbs), + (unsigned long long)__entry->sector, + __entry->nr_sector, __entry->error) +) + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,9,0)) +DECLARE_EVENT_CLASS(block_bio_merge, + + TP_PROTO(struct request_queue *q, struct request *rq, struct bio *bio), + + TP_ARGS(q, rq, bio), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( sector_t, sector ) + __field( unsigned int, nr_sector ) + __field( unsigned int, rwbs ) + __array_text( char, comm, TASK_COMM_LEN ) + ), + + TP_fast_assign( + tp_assign(dev, bio->bi_bdev->bd_dev) + tp_assign(sector, bio->bi_sector) + tp_assign(nr_sector, bio->bi_size >> 9) + blk_fill_rwbs(rwbs, bio->bi_rw, bio->bi_size) + tp_memcpy(comm, current->comm, TASK_COMM_LEN) + ), + + TP_printk("%d,%d %s %llu + %u [%s]", + MAJOR(__entry->dev), MINOR(__entry->dev), + __print_rwbs_flags(__entry->rwbs), + (unsigned long long)__entry->sector, + __entry->nr_sector, __entry->comm) +) + +/** + * block_bio_backmerge - merging block operation to the end of an existing operation + * @q: queue holding operation + * @bio: new block operation to merge + * + * Merging block request @bio to the end of an existing block request + * in queue @q. + */ +DEFINE_EVENT(block_bio_merge, block_bio_backmerge, + + TP_PROTO(struct request_queue *q, struct request *rq, struct bio *bio), + + TP_ARGS(q, rq, bio) +) + +/** + * block_bio_frontmerge - merging block operation to the beginning of an existing operation + * @q: queue holding operation + * @bio: new block operation to merge + * + * Merging block IO operation @bio to the beginning of an existing block + * operation in queue @q. + */ +DEFINE_EVENT(block_bio_merge, block_bio_frontmerge, + + TP_PROTO(struct request_queue *q, struct request *rq, struct bio *bio), + + TP_ARGS(q, rq, bio) +) + +/** + * block_bio_queue - putting new block IO operation in queue + * @q: queue holding operation + * @bio: new block operation + * + * About to place the block IO operation @bio into queue @q. + */ +TRACE_EVENT(block_bio_queue, + + TP_PROTO(struct request_queue *q, struct bio *bio), + + TP_ARGS(q, bio), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( sector_t, sector ) + __field( unsigned int, nr_sector ) + __array( char, rwbs, RWBS_LEN ) + __array( char, comm, TASK_COMM_LEN ) + ), + + TP_fast_assign( + tp_assign(dev, bio->bi_bdev->bd_dev) + tp_assign(sector, bio->bi_sector) + tp_assign(nr_sector, bio->bi_size >> 9) + blk_fill_rwbs(rwbs, bio->bi_rw, bio->bi_size) + tp_memcpy(comm, current->comm, TASK_COMM_LEN) + ), + + TP_printk("%d,%d %s %llu + %u [%s]", + MAJOR(__entry->dev), MINOR(__entry->dev), __entry->rwbs, + (unsigned long long)__entry->sector, + __entry->nr_sector, __entry->comm) +) +#else +DECLARE_EVENT_CLASS(block_bio, + + TP_PROTO(struct request_queue *q, struct bio *bio), + + TP_ARGS(q, bio), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( sector_t, sector ) + __field( unsigned int, nr_sector ) + __field( unsigned int, rwbs ) + __array_text( char, comm, TASK_COMM_LEN ) + ), + + TP_fast_assign( + tp_assign(dev, bio->bi_bdev ? bio->bi_bdev->bd_dev : 0) + tp_assign(sector, bio->bi_sector) + tp_assign(nr_sector, bio->bi_size >> 9) + blk_fill_rwbs(rwbs, bio->bi_rw, bio->bi_size) + tp_memcpy(comm, current->comm, TASK_COMM_LEN) + ), + + TP_printk("%d,%d %s %llu + %u [%s]", + MAJOR(__entry->dev), MINOR(__entry->dev), + __print_rwbs_flags(__entry->rwbs), + (unsigned long long)__entry->sector, + __entry->nr_sector, __entry->comm) +) + +/** + * block_bio_backmerge - merging block operation to the end of an existing operation + * @q: queue holding operation + * @bio: new block operation to merge + * + * Merging block request @bio to the end of an existing block request + * in queue @q. + */ +DEFINE_EVENT(block_bio, block_bio_backmerge, + + TP_PROTO(struct request_queue *q, struct bio *bio), + + TP_ARGS(q, bio) +) + +/** + * block_bio_frontmerge - merging block operation to the beginning of an existing operation + * @q: queue holding operation + * @bio: new block operation to merge + * + * Merging block IO operation @bio to the beginning of an existing block + * operation in queue @q. + */ +DEFINE_EVENT(block_bio, block_bio_frontmerge, + + TP_PROTO(struct request_queue *q, struct bio *bio), + + TP_ARGS(q, bio) +) + +/** + * block_bio_queue - putting new block IO operation in queue + * @q: queue holding operation + * @bio: new block operation + * + * About to place the block IO operation @bio into queue @q. + */ +DEFINE_EVENT(block_bio, block_bio_queue, + + TP_PROTO(struct request_queue *q, struct bio *bio), + + TP_ARGS(q, bio) +) +#endif + +DECLARE_EVENT_CLASS(block_get_rq, + + TP_PROTO(struct request_queue *q, struct bio *bio, int rw), + + TP_ARGS(q, bio, rw), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( sector_t, sector ) + __field( unsigned int, nr_sector ) + __field( unsigned int, rwbs ) + __array_text( char, comm, TASK_COMM_LEN ) + ), + + TP_fast_assign( + tp_assign(dev, bio ? bio->bi_bdev->bd_dev : 0) + tp_assign(sector, bio ? bio->bi_sector : 0) + tp_assign(nr_sector, bio ? bio->bi_size >> 9 : 0) + blk_fill_rwbs(rwbs, bio ? bio->bi_rw : 0, + bio ? bio->bi_size >> 9 : 0) + tp_memcpy(comm, current->comm, TASK_COMM_LEN) + ), + + TP_printk("%d,%d %s %llu + %u [%s]", + MAJOR(__entry->dev), MINOR(__entry->dev), + __print_rwbs_flags(__entry->rwbs), + (unsigned long long)__entry->sector, + __entry->nr_sector, __entry->comm) +) + +/** + * block_getrq - get a free request entry in queue for block IO operations + * @q: queue for operations + * @bio: pending block IO operation + * @rw: low bit indicates a read (%0) or a write (%1) + * + * A request struct for queue @q has been allocated to handle the + * block IO operation @bio. + */ +DEFINE_EVENT(block_get_rq, block_getrq, + + TP_PROTO(struct request_queue *q, struct bio *bio, int rw), + + TP_ARGS(q, bio, rw) +) + +/** + * block_sleeprq - waiting to get a free request entry in queue for block IO operation + * @q: queue for operation + * @bio: pending block IO operation + * @rw: low bit indicates a read (%0) or a write (%1) + * + * In the case where a request struct cannot be provided for queue @q + * the process needs to wait for an request struct to become + * available. This tracepoint event is generated each time the + * process goes to sleep waiting for request struct become available. + */ +DEFINE_EVENT(block_get_rq, block_sleeprq, + + TP_PROTO(struct request_queue *q, struct bio *bio, int rw), + + TP_ARGS(q, bio, rw) +) + +/** + * block_plug - keep operations requests in request queue + * @q: request queue to plug + * + * Plug the request queue @q. Do not allow block operation requests + * to be sent to the device driver. Instead, accumulate requests in + * the queue to improve throughput performance of the block device. + */ +TRACE_EVENT(block_plug, + + TP_PROTO(struct request_queue *q), + + TP_ARGS(q), + + TP_STRUCT__entry( + __array_text( char, comm, TASK_COMM_LEN ) + ), + + TP_fast_assign( + tp_memcpy(comm, current->comm, TASK_COMM_LEN) + ), + + TP_printk("[%s]", __entry->comm) +) + +DECLARE_EVENT_CLASS(block_unplug, + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,39)) + TP_PROTO(struct request_queue *q, unsigned int depth, bool explicit), + + TP_ARGS(q, depth, explicit), +#else + TP_PROTO(struct request_queue *q), + + TP_ARGS(q), +#endif + + TP_STRUCT__entry( + __field( int, nr_rq ) + __array_text( char, comm, TASK_COMM_LEN ) + ), + + TP_fast_assign( +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,39)) + tp_assign(nr_rq, depth) +#else + tp_assign(nr_rq, q->rq.count[READ] + q->rq.count[WRITE]) +#endif + tp_memcpy(comm, current->comm, TASK_COMM_LEN) + ), + + TP_printk("[%s] %d", __entry->comm, __entry->nr_rq) +) + +#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,39)) +/** + * block_unplug_timer - timed release of operations requests in queue to device driver + * @q: request queue to unplug + * + * Unplug the request queue @q because a timer expired and allow block + * operation requests to be sent to the device driver. + */ +DEFINE_EVENT(block_unplug, block_unplug_timer, + + TP_PROTO(struct request_queue *q), + + TP_ARGS(q) +) +#endif + +/** + * block_unplug - release of operations requests in request queue + * @q: request queue to unplug + * @depth: number of requests just added to the queue + * @explicit: whether this was an explicit unplug, or one from schedule() + * + * Unplug request queue @q because device driver is scheduled to work + * on elements in the request queue. + */ +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,39)) +DEFINE_EVENT(block_unplug, block_unplug, +#else +DEFINE_EVENT(block_unplug, block_unplug_io, +#endif + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,39)) + TP_PROTO(struct request_queue *q, unsigned int depth, bool explicit), + + TP_ARGS(q, depth, explicit) +#else + TP_PROTO(struct request_queue *q), + + TP_ARGS(q) +#endif +) + +/** + * block_split - split a single bio struct into two bio structs + * @q: queue containing the bio + * @bio: block operation being split + * @new_sector: The starting sector for the new bio + * + * The bio request @bio in request queue @q needs to be split into two + * bio requests. The newly created @bio request starts at + * @new_sector. This split may be required due to hardware limitation + * such as operation crossing device boundaries in a RAID system. + */ +TRACE_EVENT(block_split, + + TP_PROTO(struct request_queue *q, struct bio *bio, + unsigned int new_sector), + + TP_ARGS(q, bio, new_sector), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( sector_t, sector ) + __field( sector_t, new_sector ) + __field( unsigned int, rwbs ) + __array_text( char, comm, TASK_COMM_LEN ) + ), + + TP_fast_assign( + tp_assign(dev, bio->bi_bdev->bd_dev) + tp_assign(sector, bio->bi_sector) + tp_assign(new_sector, new_sector) + blk_fill_rwbs(rwbs, bio->bi_rw, bio->bi_size) + tp_memcpy(comm, current->comm, TASK_COMM_LEN) + ), + + TP_printk("%d,%d %s %llu / %llu [%s]", + MAJOR(__entry->dev), MINOR(__entry->dev), + __print_rwbs_flags(__entry->rwbs), + (unsigned long long)__entry->sector, + (unsigned long long)__entry->new_sector, + __entry->comm) +) + +/** + * block_bio_remap - map request for a logical device to the raw device + * @q: queue holding the operation + * @bio: revised operation + * @dev: device for the operation + * @from: original sector for the operation + * + * An operation for a logical device has been mapped to the + * raw block device. + */ +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,38)) +TRACE_EVENT(block_bio_remap, +#else +TRACE_EVENT(block_remap, +#endif + + TP_PROTO(struct request_queue *q, struct bio *bio, dev_t dev, + sector_t from), + + TP_ARGS(q, bio, dev, from), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( sector_t, sector ) + __field( unsigned int, nr_sector ) + __field( dev_t, old_dev ) + __field( sector_t, old_sector ) + __field( unsigned int, rwbs ) + ), + + TP_fast_assign( + tp_assign(dev, bio->bi_bdev->bd_dev) + tp_assign(sector, bio->bi_sector) + tp_assign(nr_sector, bio->bi_size >> 9) + tp_assign(old_dev, dev) + tp_assign(old_sector, from) + blk_fill_rwbs(rwbs, bio->bi_rw, bio->bi_size) + ), + + TP_printk("%d,%d %s %llu + %u <- (%d,%d) %llu", + MAJOR(__entry->dev), MINOR(__entry->dev), + __print_rwbs_flags(__entry->rwbs), + (unsigned long long)__entry->sector, + __entry->nr_sector, + MAJOR(__entry->old_dev), MINOR(__entry->old_dev), + (unsigned long long)__entry->old_sector) +) + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,32)) +/** + * block_rq_remap - map request for a block operation request + * @q: queue holding the operation + * @rq: block IO operation request + * @dev: device for the operation + * @from: original sector for the operation + * + * The block operation request @rq in @q has been remapped. The block + * operation request @rq holds the current information and @from hold + * the original sector. + */ +TRACE_EVENT(block_rq_remap, + + TP_PROTO(struct request_queue *q, struct request *rq, dev_t dev, + sector_t from), + + TP_ARGS(q, rq, dev, from), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( sector_t, sector ) + __field( unsigned int, nr_sector ) + __field( dev_t, old_dev ) + __field( sector_t, old_sector ) + __field( unsigned int, rwbs ) + ), + + TP_fast_assign( + tp_assign(dev, disk_devt(rq->rq_disk)) + tp_assign(sector, blk_rq_pos(rq)) + tp_assign(nr_sector, blk_rq_sectors(rq)) + tp_assign(old_dev, dev) + tp_assign(old_sector, from) + blk_fill_rwbs(rwbs, rq->cmd_flags, blk_rq_bytes(rq)) + ), + + TP_printk("%d,%d %s %llu + %u <- (%d,%d) %llu", + MAJOR(__entry->dev), MINOR(__entry->dev), + __print_rwbs_flags(__entry->rwbs), + (unsigned long long)__entry->sector, + __entry->nr_sector, + MAJOR(__entry->old_dev), MINOR(__entry->old_dev), + (unsigned long long)__entry->old_sector) +) +#endif + +#undef __print_rwbs_flags +#undef blk_fill_rwbs + +#endif /* _TRACE_BLOCK_H */ + +/* This part must be outside protection */ +#include "../../../probes/define_trace.h" + --- linux-3.11.0.orig/ubuntu/lttng/instrumentation/events/lttng-module/ext3.h +++ linux-3.11.0/ubuntu/lttng/instrumentation/events/lttng-module/ext3.h @@ -0,0 +1,902 @@ +#undef TRACE_SYSTEM +#define TRACE_SYSTEM ext3 + +#if !defined(_TRACE_EXT3_H) || defined(TRACE_HEADER_MULTI_READ) +#define _TRACE_EXT3_H + +#include +#include + +TRACE_EVENT(ext3_free_inode, + TP_PROTO(struct inode *inode), + + TP_ARGS(inode), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( umode_t, mode ) + __field( uid_t, uid ) + __field( gid_t, gid ) + __field( blkcnt_t, blocks ) + ), + + TP_fast_assign( + tp_assign(dev, inode->i_sb->s_dev) + tp_assign(ino, inode->i_ino) + tp_assign(mode, inode->i_mode) +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,5,0)) + tp_assign(uid, i_uid_read(inode)) + tp_assign(gid, i_gid_read(inode)) +#else + tp_assign(uid, inode->i_uid) + tp_assign(gid, inode->i_gid) +#endif + tp_assign(blocks, inode->i_blocks) + ), + + TP_printk("dev %d,%d ino %lu mode 0%o uid %u gid %u blocks %lu", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + __entry->mode, __entry->uid, __entry->gid, + (unsigned long) __entry->blocks) +) + +TRACE_EVENT(ext3_request_inode, + TP_PROTO(struct inode *dir, int mode), + + TP_ARGS(dir, mode), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, dir ) + __field( umode_t, mode ) + ), + + TP_fast_assign( + tp_assign(dev, dir->i_sb->s_dev) + tp_assign(dir, dir->i_ino) + tp_assign(mode, mode) + ), + + TP_printk("dev %d,%d dir %lu mode 0%o", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->dir, __entry->mode) +) + +TRACE_EVENT(ext3_allocate_inode, + TP_PROTO(struct inode *inode, struct inode *dir, int mode), + + TP_ARGS(inode, dir, mode), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( ino_t, dir ) + __field( umode_t, mode ) + ), + + TP_fast_assign( + tp_assign(dev, inode->i_sb->s_dev) + tp_assign(ino, inode->i_ino) + tp_assign(dir, dir->i_ino) + tp_assign(mode, mode) + ), + + TP_printk("dev %d,%d ino %lu dir %lu mode 0%o", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + (unsigned long) __entry->dir, __entry->mode) +) + +TRACE_EVENT(ext3_evict_inode, + TP_PROTO(struct inode *inode), + + TP_ARGS(inode), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( int, nlink ) + ), + + TP_fast_assign( + tp_assign(dev, inode->i_sb->s_dev) + tp_assign(ino, inode->i_ino) + tp_assign(nlink, inode->i_nlink) + ), + + TP_printk("dev %d,%d ino %lu nlink %d", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, __entry->nlink) +) + +TRACE_EVENT(ext3_drop_inode, + TP_PROTO(struct inode *inode, int drop), + + TP_ARGS(inode, drop), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( int, drop ) + ), + + TP_fast_assign( + tp_assign(dev, inode->i_sb->s_dev) + tp_assign(ino, inode->i_ino) + tp_assign(drop, drop) + ), + + TP_printk("dev %d,%d ino %lu drop %d", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, __entry->drop) +) + +TRACE_EVENT(ext3_mark_inode_dirty, + TP_PROTO(struct inode *inode, unsigned long IP), + + TP_ARGS(inode, IP), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field(unsigned long, ip ) + ), + + TP_fast_assign( + tp_assign(dev, inode->i_sb->s_dev) + tp_assign(ino, inode->i_ino) + tp_assign(ip, IP) + ), + + TP_printk("dev %d,%d ino %lu caller %pF", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, (void *)__entry->ip) +) + +TRACE_EVENT(ext3_write_begin, + TP_PROTO(struct inode *inode, loff_t pos, unsigned int len, + unsigned int flags), + + TP_ARGS(inode, pos, len, flags), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( loff_t, pos ) + __field( unsigned int, len ) + __field( unsigned int, flags ) + ), + + TP_fast_assign( + tp_assign(dev, inode->i_sb->s_dev) + tp_assign(ino, inode->i_ino) + tp_assign(pos, pos) + tp_assign(len, len) + tp_assign(flags, flags) + ), + + TP_printk("dev %d,%d ino %lu pos %llu len %u flags %u", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + (unsigned long long) __entry->pos, __entry->len, + __entry->flags) +) + +DECLARE_EVENT_CLASS(ext3__write_end, + TP_PROTO(struct inode *inode, loff_t pos, unsigned int len, + unsigned int copied), + + TP_ARGS(inode, pos, len, copied), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( loff_t, pos ) + __field( unsigned int, len ) + __field( unsigned int, copied ) + ), + + TP_fast_assign( + tp_assign(dev, inode->i_sb->s_dev) + tp_assign(ino, inode->i_ino) + tp_assign(pos, pos) + tp_assign(len, len) + tp_assign(copied, copied) + ), + + TP_printk("dev %d,%d ino %lu pos %llu len %u copied %u", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + (unsigned long long) __entry->pos, __entry->len, + __entry->copied) +) + +DEFINE_EVENT(ext3__write_end, ext3_ordered_write_end, + + TP_PROTO(struct inode *inode, loff_t pos, unsigned int len, + unsigned int copied), + + TP_ARGS(inode, pos, len, copied) +) + +DEFINE_EVENT(ext3__write_end, ext3_writeback_write_end, + + TP_PROTO(struct inode *inode, loff_t pos, unsigned int len, + unsigned int copied), + + TP_ARGS(inode, pos, len, copied) +) + +DEFINE_EVENT(ext3__write_end, ext3_journalled_write_end, + + TP_PROTO(struct inode *inode, loff_t pos, unsigned int len, + unsigned int copied), + + TP_ARGS(inode, pos, len, copied) +) + +DECLARE_EVENT_CLASS(ext3__page_op, + TP_PROTO(struct page *page), + + TP_ARGS(page), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( pgoff_t, index ) + + ), + + TP_fast_assign( + tp_assign(index, page->index) + tp_assign(ino, page->mapping->host->i_ino) + tp_assign(dev, page->mapping->host->i_sb->s_dev) + ), + + TP_printk("dev %d,%d ino %lu page_index %lu", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, __entry->index) +) + +DEFINE_EVENT(ext3__page_op, ext3_ordered_writepage, + + TP_PROTO(struct page *page), + + TP_ARGS(page) +) + +DEFINE_EVENT(ext3__page_op, ext3_writeback_writepage, + + TP_PROTO(struct page *page), + + TP_ARGS(page) +) + +DEFINE_EVENT(ext3__page_op, ext3_journalled_writepage, + + TP_PROTO(struct page *page), + + TP_ARGS(page) +) + +DEFINE_EVENT(ext3__page_op, ext3_readpage, + + TP_PROTO(struct page *page), + + TP_ARGS(page) +) + +DEFINE_EVENT(ext3__page_op, ext3_releasepage, + + TP_PROTO(struct page *page), + + TP_ARGS(page) +) + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,11,0)) + +TRACE_EVENT(ext3_invalidatepage, + TP_PROTO(struct page *page, unsigned int offset, unsigned int length), + + TP_ARGS(page, offset, length), + + TP_STRUCT__entry( + __field( pgoff_t, index ) + __field( unsigned int, offset ) + __field( unsigned int, length ) + __field( ino_t, ino ) + __field( dev_t, dev ) + + ), + + TP_fast_assign( + tp_assign(index, page->index) + tp_assign(offset, offset) + tp_assign(length, length) + tp_assign(ino, page->mapping->host->i_ino) + tp_assign(dev, page->mapping->host->i_sb->s_dev) + ), + + TP_printk("dev %d,%d ino %lu page_index %lu offset %u length %u", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + __entry->index, __entry->offset, __entry->length) +) + +#else + +TRACE_EVENT(ext3_invalidatepage, + TP_PROTO(struct page *page, unsigned long offset), + + TP_ARGS(page, offset), + + TP_STRUCT__entry( + __field( pgoff_t, index ) + __field( unsigned long, offset ) + __field( ino_t, ino ) + __field( dev_t, dev ) + + ), + + TP_fast_assign( + tp_assign(index, page->index) + tp_assign(offset, offset) + tp_assign(ino, page->mapping->host->i_ino) + tp_assign(dev, page->mapping->host->i_sb->s_dev) + ), + + TP_printk("dev %d,%d ino %lu page_index %lu offset %lu", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + __entry->index, __entry->offset) +) + +#endif + +TRACE_EVENT(ext3_discard_blocks, + TP_PROTO(struct super_block *sb, unsigned long blk, + unsigned long count), + + TP_ARGS(sb, blk, count), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( unsigned long, blk ) + __field( unsigned long, count ) + + ), + + TP_fast_assign( + tp_assign(dev, sb->s_dev) + tp_assign(blk, blk) + tp_assign(count, count) + ), + + TP_printk("dev %d,%d blk %lu count %lu", + MAJOR(__entry->dev), MINOR(__entry->dev), + __entry->blk, __entry->count) +) + +TRACE_EVENT(ext3_request_blocks, + TP_PROTO(struct inode *inode, unsigned long goal, + unsigned long count), + + TP_ARGS(inode, goal, count), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( unsigned long, count ) + __field( unsigned long, goal ) + ), + + TP_fast_assign( + tp_assign(dev, inode->i_sb->s_dev) + tp_assign(ino, inode->i_ino) + tp_assign(count, count) + tp_assign(goal, goal) + ), + + TP_printk("dev %d,%d ino %lu count %lu goal %lu ", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + __entry->count, __entry->goal) +) + +TRACE_EVENT(ext3_allocate_blocks, + TP_PROTO(struct inode *inode, unsigned long goal, + unsigned long count, unsigned long block), + + TP_ARGS(inode, goal, count, block), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( unsigned long, block ) + __field( unsigned long, count ) + __field( unsigned long, goal ) + ), + + TP_fast_assign( + tp_assign(dev, inode->i_sb->s_dev) + tp_assign(ino, inode->i_ino) + tp_assign(block, block) + tp_assign(count, count) + tp_assign(goal, goal) + ), + + TP_printk("dev %d,%d ino %lu count %lu block %lu goal %lu", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + __entry->count, __entry->block, + __entry->goal) +) + +TRACE_EVENT(ext3_free_blocks, + TP_PROTO(struct inode *inode, unsigned long block, + unsigned long count), + + TP_ARGS(inode, block, count), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( umode_t, mode ) + __field( unsigned long, block ) + __field( unsigned long, count ) + ), + + TP_fast_assign( + tp_assign(dev, inode->i_sb->s_dev) + tp_assign(ino, inode->i_ino) + tp_assign(mode, inode->i_mode) + tp_assign(block, block) + tp_assign(count, count) + ), + + TP_printk("dev %d,%d ino %lu mode 0%o block %lu count %lu", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + __entry->mode, __entry->block, __entry->count) +) + +TRACE_EVENT(ext3_sync_file_enter, + TP_PROTO(struct file *file, int datasync), + + TP_ARGS(file, datasync), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( ino_t, parent ) + __field( int, datasync ) + ), + + TP_fast_assign( + tp_assign(dev, file->f_path.dentry->d_inode->i_sb->s_dev) + tp_assign(ino, file->f_path.dentry->d_inode->i_ino) + tp_assign(datasync, datasync) + tp_assign(parent, file->f_path.dentry->d_parent->d_inode->i_ino) + ), + + TP_printk("dev %d,%d ino %lu parent %ld datasync %d ", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + (unsigned long) __entry->parent, __entry->datasync) +) + +TRACE_EVENT(ext3_sync_file_exit, + TP_PROTO(struct inode *inode, int ret), + + TP_ARGS(inode, ret), + + TP_STRUCT__entry( + __field( int, ret ) + __field( ino_t, ino ) + __field( dev_t, dev ) + ), + + TP_fast_assign( + tp_assign(ret, ret) + tp_assign(ino, inode->i_ino) + tp_assign(dev, inode->i_sb->s_dev) + ), + + TP_printk("dev %d,%d ino %lu ret %d", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + __entry->ret) +) + +TRACE_EVENT(ext3_sync_fs, + TP_PROTO(struct super_block *sb, int wait), + + TP_ARGS(sb, wait), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( int, wait ) + + ), + + TP_fast_assign( + tp_assign(dev, sb->s_dev) + tp_assign(wait, wait) + ), + + TP_printk("dev %d,%d wait %d", + MAJOR(__entry->dev), MINOR(__entry->dev), + __entry->wait) +) + +TRACE_EVENT(ext3_rsv_window_add, + TP_PROTO(struct super_block *sb, + struct ext3_reserve_window_node *rsv_node), + + TP_ARGS(sb, rsv_node), + + TP_STRUCT__entry( + __field( unsigned long, start ) + __field( unsigned long, end ) + __field( dev_t, dev ) + ), + + TP_fast_assign( + tp_assign(dev, sb->s_dev) + tp_assign(start, rsv_node->rsv_window._rsv_start) + tp_assign(end, rsv_node->rsv_window._rsv_end) + ), + + TP_printk("dev %d,%d start %lu end %lu", + MAJOR(__entry->dev), MINOR(__entry->dev), + __entry->start, __entry->end) +) + +TRACE_EVENT(ext3_discard_reservation, + TP_PROTO(struct inode *inode, + struct ext3_reserve_window_node *rsv_node), + + TP_ARGS(inode, rsv_node), + + TP_STRUCT__entry( + __field( unsigned long, start ) + __field( unsigned long, end ) + __field( ino_t, ino ) + __field( dev_t, dev ) + ), + + TP_fast_assign( + tp_assign(start, rsv_node->rsv_window._rsv_start) + tp_assign(end, rsv_node->rsv_window._rsv_end) + tp_assign(ino, inode->i_ino) + tp_assign(dev, inode->i_sb->s_dev) + ), + + TP_printk("dev %d,%d ino %lu start %lu end %lu", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long)__entry->ino, __entry->start, + __entry->end) +) + +TRACE_EVENT(ext3_alloc_new_reservation, + TP_PROTO(struct super_block *sb, unsigned long goal), + + TP_ARGS(sb, goal), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( unsigned long, goal ) + ), + + TP_fast_assign( + tp_assign(dev, sb->s_dev) + tp_assign(goal, goal) + ), + + TP_printk("dev %d,%d goal %lu", + MAJOR(__entry->dev), MINOR(__entry->dev), + __entry->goal) +) + +TRACE_EVENT(ext3_reserved, + TP_PROTO(struct super_block *sb, unsigned long block, + struct ext3_reserve_window_node *rsv_node), + + TP_ARGS(sb, block, rsv_node), + + TP_STRUCT__entry( + __field( unsigned long, block ) + __field( unsigned long, start ) + __field( unsigned long, end ) + __field( dev_t, dev ) + ), + + TP_fast_assign( + tp_assign(block, block) + tp_assign(start, rsv_node->rsv_window._rsv_start) + tp_assign(end, rsv_node->rsv_window._rsv_end) + tp_assign(dev, sb->s_dev) + ), + + TP_printk("dev %d,%d block %lu, start %lu end %lu", + MAJOR(__entry->dev), MINOR(__entry->dev), + __entry->block, __entry->start, __entry->end) +) + +TRACE_EVENT(ext3_forget, + TP_PROTO(struct inode *inode, int is_metadata, unsigned long block), + + TP_ARGS(inode, is_metadata, block), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( umode_t, mode ) + __field( int, is_metadata ) + __field( unsigned long, block ) + ), + + TP_fast_assign( + tp_assign(dev, inode->i_sb->s_dev) + tp_assign(ino, inode->i_ino) + tp_assign(mode, inode->i_mode) + tp_assign(is_metadata, is_metadata) + tp_assign(block, block) + ), + + TP_printk("dev %d,%d ino %lu mode 0%o is_metadata %d block %lu", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + __entry->mode, __entry->is_metadata, __entry->block) +) + +TRACE_EVENT(ext3_read_block_bitmap, + TP_PROTO(struct super_block *sb, unsigned int group), + + TP_ARGS(sb, group), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( __u32, group ) + + ), + + TP_fast_assign( + tp_assign(dev, sb->s_dev) + tp_assign(group, group) + ), + + TP_printk("dev %d,%d group %u", + MAJOR(__entry->dev), MINOR(__entry->dev), + __entry->group) +) + +TRACE_EVENT(ext3_direct_IO_enter, + TP_PROTO(struct inode *inode, loff_t offset, unsigned long len, int rw), + + TP_ARGS(inode, offset, len, rw), + + TP_STRUCT__entry( + __field( ino_t, ino ) + __field( dev_t, dev ) + __field( loff_t, pos ) + __field( unsigned long, len ) + __field( int, rw ) + ), + + TP_fast_assign( + tp_assign(ino, inode->i_ino) + tp_assign(dev, inode->i_sb->s_dev) + tp_assign(pos, offset) + tp_assign(len, len) + tp_assign(rw, rw) + ), + + TP_printk("dev %d,%d ino %lu pos %llu len %lu rw %d", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + (unsigned long long) __entry->pos, __entry->len, + __entry->rw) +) + +TRACE_EVENT(ext3_direct_IO_exit, + TP_PROTO(struct inode *inode, loff_t offset, unsigned long len, + int rw, int ret), + + TP_ARGS(inode, offset, len, rw, ret), + + TP_STRUCT__entry( + __field( ino_t, ino ) + __field( dev_t, dev ) + __field( loff_t, pos ) + __field( unsigned long, len ) + __field( int, rw ) + __field( int, ret ) + ), + + TP_fast_assign( + tp_assign(ino, inode->i_ino) + tp_assign(dev, inode->i_sb->s_dev) + tp_assign(pos, offset) + tp_assign(len, len) + tp_assign(rw, rw) + tp_assign(ret, ret) + ), + + TP_printk("dev %d,%d ino %lu pos %llu len %lu rw %d ret %d", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + (unsigned long long) __entry->pos, __entry->len, + __entry->rw, __entry->ret) +) + +TRACE_EVENT(ext3_unlink_enter, + TP_PROTO(struct inode *parent, struct dentry *dentry), + + TP_ARGS(parent, dentry), + + TP_STRUCT__entry( + __field( ino_t, parent ) + __field( ino_t, ino ) + __field( loff_t, size ) + __field( dev_t, dev ) + ), + + TP_fast_assign( + tp_assign(parent, parent->i_ino) + tp_assign(ino, dentry->d_inode->i_ino) + tp_assign(size, dentry->d_inode->i_size) + tp_assign(dev, dentry->d_inode->i_sb->s_dev) + ), + + TP_printk("dev %d,%d ino %lu size %lld parent %ld", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + (unsigned long long)__entry->size, + (unsigned long) __entry->parent) +) + +TRACE_EVENT(ext3_unlink_exit, + TP_PROTO(struct dentry *dentry, int ret), + + TP_ARGS(dentry, ret), + + TP_STRUCT__entry( + __field( ino_t, ino ) + __field( dev_t, dev ) + __field( int, ret ) + ), + + TP_fast_assign( + tp_assign(ino, dentry->d_inode->i_ino) + tp_assign(dev, dentry->d_inode->i_sb->s_dev) + tp_assign(ret, ret) + ), + + TP_printk("dev %d,%d ino %lu ret %d", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + __entry->ret) +) + +DECLARE_EVENT_CLASS(ext3__truncate, + TP_PROTO(struct inode *inode), + + TP_ARGS(inode), + + TP_STRUCT__entry( + __field( ino_t, ino ) + __field( dev_t, dev ) + __field( blkcnt_t, blocks ) + ), + + TP_fast_assign( + tp_assign(ino, inode->i_ino) + tp_assign(dev, inode->i_sb->s_dev) + tp_assign(blocks, inode->i_blocks) + ), + + TP_printk("dev %d,%d ino %lu blocks %lu", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, (unsigned long) __entry->blocks) +) + +DEFINE_EVENT(ext3__truncate, ext3_truncate_enter, + + TP_PROTO(struct inode *inode), + + TP_ARGS(inode) +) + +DEFINE_EVENT(ext3__truncate, ext3_truncate_exit, + + TP_PROTO(struct inode *inode), + + TP_ARGS(inode) +) + +TRACE_EVENT(ext3_get_blocks_enter, + TP_PROTO(struct inode *inode, unsigned long lblk, + unsigned long len, int create), + + TP_ARGS(inode, lblk, len, create), + + TP_STRUCT__entry( + __field( ino_t, ino ) + __field( dev_t, dev ) + __field( unsigned long, lblk ) + __field( unsigned long, len ) + __field( int, create ) + ), + + TP_fast_assign( + tp_assign(ino, inode->i_ino) + tp_assign(dev, inode->i_sb->s_dev) + tp_assign(lblk, lblk) + tp_assign(len, len) + tp_assign(create, create) + ), + + TP_printk("dev %d,%d ino %lu lblk %lu len %lu create %u", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + __entry->lblk, __entry->len, __entry->create) +) + +TRACE_EVENT(ext3_get_blocks_exit, + TP_PROTO(struct inode *inode, unsigned long lblk, + unsigned long pblk, unsigned long len, int ret), + + TP_ARGS(inode, lblk, pblk, len, ret), + + TP_STRUCT__entry( + __field( ino_t, ino ) + __field( dev_t, dev ) + __field( unsigned long, lblk ) + __field( unsigned long, pblk ) + __field( unsigned long, len ) + __field( int, ret ) + ), + + TP_fast_assign( + tp_assign(ino, inode->i_ino) + tp_assign(dev, inode->i_sb->s_dev) + tp_assign(lblk, lblk) + tp_assign(pblk, pblk) + tp_assign(len, len) + tp_assign(ret, ret) + ), + + TP_printk("dev %d,%d ino %lu lblk %lu pblk %lu len %lu ret %d", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + __entry->lblk, __entry->pblk, + __entry->len, __entry->ret) +) + +TRACE_EVENT(ext3_load_inode, + TP_PROTO(struct inode *inode), + + TP_ARGS(inode), + + TP_STRUCT__entry( + __field( ino_t, ino ) + __field( dev_t, dev ) + ), + + TP_fast_assign( + tp_assign(ino, inode->i_ino) + tp_assign(dev, inode->i_sb->s_dev) + ), + + TP_printk("dev %d,%d ino %lu", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino) +) + +#endif /* _TRACE_EXT3_H */ + +/* This part must be outside protection */ +#include "../../../probes/define_trace.h" --- linux-3.11.0.orig/ubuntu/lttng/instrumentation/events/lttng-module/net.h +++ linux-3.11.0/ubuntu/lttng/instrumentation/events/lttng-module/net.h @@ -0,0 +1,105 @@ +#undef TRACE_SYSTEM +#define TRACE_SYSTEM net + +#if !defined(_TRACE_NET_H) || defined(TRACE_HEADER_MULTI_READ) +#define _TRACE_NET_H + +#include +#include +#include +#include +#include + +TRACE_EVENT(net_dev_xmit, + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,40)) + TP_PROTO(struct sk_buff *skb, + int rc, + struct net_device *dev, + unsigned int skb_len), + + TP_ARGS(skb, rc, dev, skb_len), +#else + TP_PROTO(struct sk_buff *skb, + int rc), + + TP_ARGS(skb, rc), +#endif + + TP_STRUCT__entry( + __field( void *, skbaddr ) + __field( unsigned int, len ) + __field( int, rc ) +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,40)) + __string( name, dev->name ) +#else + __string( name, skb->dev->name ) +#endif + ), + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,40)) + TP_fast_assign( + tp_assign(skbaddr, skb) + tp_assign(len, skb_len) + tp_assign(rc, rc) + tp_strcpy(name, dev->name) + ), +#else + TP_fast_assign( + tp_assign(skbaddr, skb) + tp_assign(len, skb->len) + tp_assign(rc, rc) + tp_strcpy(name, skb->dev->name) + ), +#endif + + TP_printk("dev=%s skbaddr=%p len=%u rc=%d", + __get_str(name), __entry->skbaddr, __entry->len, __entry->rc) +) + +DECLARE_EVENT_CLASS(net_dev_template, + + TP_PROTO(struct sk_buff *skb), + + TP_ARGS(skb), + + TP_STRUCT__entry( + __field( void *, skbaddr ) + __field( unsigned int, len ) + __string( name, skb->dev->name ) + ), + + TP_fast_assign( + tp_assign(skbaddr, skb) + tp_assign(len, skb->len) + tp_strcpy(name, skb->dev->name) + ), + + TP_printk("dev=%s skbaddr=%p len=%u", + __get_str(name), __entry->skbaddr, __entry->len) +) + +DEFINE_EVENT(net_dev_template, net_dev_queue, + + TP_PROTO(struct sk_buff *skb), + + TP_ARGS(skb) +) + +DEFINE_EVENT(net_dev_template, netif_receive_skb, + + TP_PROTO(struct sk_buff *skb), + + TP_ARGS(skb) +) + +DEFINE_EVENT(net_dev_template, netif_rx, + + TP_PROTO(struct sk_buff *skb), + + TP_ARGS(skb) +) +#endif /* _TRACE_NET_H */ + +/* This part must be outside protection */ +#include "../../../probes/define_trace.h" --- linux-3.11.0.orig/ubuntu/lttng/instrumentation/events/lttng-module/writeback.h +++ linux-3.11.0/ubuntu/lttng/instrumentation/events/lttng-module/writeback.h @@ -0,0 +1,617 @@ +#undef TRACE_SYSTEM +#define TRACE_SYSTEM writeback + +#if !defined(_TRACE_WRITEBACK_H) || defined(TRACE_HEADER_MULTI_READ) +#define _TRACE_WRITEBACK_H + +#include +#include +#include + +#ifndef _TRACE_WRITEBACK_DEF_ +#define _TRACE_WRITEBACK_DEF_ +static inline struct backing_dev_info *inode_to_bdi(struct inode *inode) +{ + struct super_block *sb = inode->i_sb; + + if (strcmp(sb->s_type->name, "bdev") == 0) + return inode->i_mapping->backing_dev_info; + + return sb->s_bdi; +} +#endif + +#define show_inode_state(state) \ + __print_flags(state, "|", \ + {I_DIRTY_SYNC, "I_DIRTY_SYNC"}, \ + {I_DIRTY_DATASYNC, "I_DIRTY_DATASYNC"}, \ + {I_DIRTY_PAGES, "I_DIRTY_PAGES"}, \ + {I_NEW, "I_NEW"}, \ + {I_WILL_FREE, "I_WILL_FREE"}, \ + {I_FREEING, "I_FREEING"}, \ + {I_CLEAR, "I_CLEAR"}, \ + {I_SYNC, "I_SYNC"}, \ + {I_REFERENCED, "I_REFERENCED"} \ + ) + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,2,0)) +#define WB_WORK_REASON \ + {WB_REASON_BACKGROUND, "background"}, \ + {WB_REASON_TRY_TO_FREE_PAGES, "try_to_free_pages"}, \ + {WB_REASON_SYNC, "sync"}, \ + {WB_REASON_PERIODIC, "periodic"}, \ + {WB_REASON_LAPTOP_TIMER, "laptop_timer"}, \ + {WB_REASON_FREE_MORE_MEM, "free_more_memory"}, \ + {WB_REASON_FS_FREE_SPACE, "fs_free_space"}, \ + {WB_REASON_FORKER_THREAD, "forker_thread"} +#endif + +DECLARE_EVENT_CLASS(writeback_work_class, + TP_PROTO(struct backing_dev_info *bdi, struct wb_writeback_work *work), + TP_ARGS(bdi, work), + TP_STRUCT__entry( + __array(char, name, 32) + ), + TP_fast_assign( + tp_memcpy(name, dev_name(bdi->dev ? bdi->dev : + default_backing_dev_info.dev), 32) + ), + TP_printk("bdi %s", + __entry->name + ) +) +#define DEFINE_WRITEBACK_WORK_EVENT(name) \ +DEFINE_EVENT(writeback_work_class, name, \ + TP_PROTO(struct backing_dev_info *bdi, struct wb_writeback_work *work), \ + TP_ARGS(bdi, work)) +DEFINE_WRITEBACK_WORK_EVENT(writeback_nothread) +DEFINE_WRITEBACK_WORK_EVENT(writeback_queue) +DEFINE_WRITEBACK_WORK_EVENT(writeback_exec) +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,1,0)) +DEFINE_WRITEBACK_WORK_EVENT(writeback_start) +DEFINE_WRITEBACK_WORK_EVENT(writeback_written) +DEFINE_WRITEBACK_WORK_EVENT(writeback_wait) +#endif + +TRACE_EVENT(writeback_pages_written, + TP_PROTO(long pages_written), + TP_ARGS(pages_written), + TP_STRUCT__entry( + __field(long, pages) + ), + TP_fast_assign( + tp_assign(pages, pages_written) + ), + TP_printk("%ld", __entry->pages) +) + +DECLARE_EVENT_CLASS(writeback_class, + TP_PROTO(struct backing_dev_info *bdi), + TP_ARGS(bdi), + TP_STRUCT__entry( + __array(char, name, 32) + ), + TP_fast_assign( + tp_memcpy(name, dev_name(bdi->dev), 32) + ), + TP_printk("bdi %s", + __entry->name + ) +) +#define DEFINE_WRITEBACK_EVENT(name) \ +DEFINE_EVENT(writeback_class, name, \ + TP_PROTO(struct backing_dev_info *bdi), \ + TP_ARGS(bdi)) + +#define DEFINE_WRITEBACK_EVENT_MAP(name, map) \ +DEFINE_EVENT_MAP(writeback_class, name, map, \ + TP_PROTO(struct backing_dev_info *bdi), \ + TP_ARGS(bdi)) + +DEFINE_WRITEBACK_EVENT(writeback_nowork) +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,38)) +DEFINE_WRITEBACK_EVENT(writeback_wake_background) +#endif +DEFINE_WRITEBACK_EVENT(writeback_wake_thread) +DEFINE_WRITEBACK_EVENT(writeback_wake_forker_thread) +DEFINE_WRITEBACK_EVENT(writeback_bdi_register) +DEFINE_WRITEBACK_EVENT(writeback_bdi_unregister) +DEFINE_WRITEBACK_EVENT(writeback_thread_start) +DEFINE_WRITEBACK_EVENT(writeback_thread_stop) +#if (LTTNG_KERNEL_RANGE(3,1,0, 3,2,0)) +DEFINE_WRITEBACK_EVENT_MAP(balance_dirty_start, writeback_balance_dirty_start) +DEFINE_WRITEBACK_EVENT_MAP(balance_dirty_wait, writeback_balance_dirty_wait) + +TRACE_EVENT_MAP(balance_dirty_written, + + writeback_balance_dirty_written, + + TP_PROTO(struct backing_dev_info *bdi, int written), + + TP_ARGS(bdi, written), + + TP_STRUCT__entry( + __array(char, name, 32) + __field(int, written) + ), + + TP_fast_assign( + tp_memcpy(name, dev_name(bdi->dev), 32) + tp_assign(written, written) + ), + + TP_printk("bdi %s written %d", + __entry->name, + __entry->written + ) +) +#endif + +DECLARE_EVENT_CLASS(writeback_wbc_class, + TP_PROTO(struct writeback_control *wbc, struct backing_dev_info *bdi), + TP_ARGS(wbc, bdi), + TP_STRUCT__entry( + __array(char, name, 32) + __field(long, nr_to_write) + __field(long, pages_skipped) + __field(int, sync_mode) + __field(int, for_kupdate) + __field(int, for_background) + __field(int, for_reclaim) + __field(int, range_cyclic) +#if (LINUX_VERSION_CODE < KERNEL_VERSION(3,1,0)) + __field(int, more_io) + __field(unsigned long, older_than_this) +#endif + __field(long, range_start) + __field(long, range_end) + ), + + TP_fast_assign( + tp_memcpy(name, dev_name(bdi->dev), 32) + tp_assign(nr_to_write, wbc->nr_to_write) + tp_assign(pages_skipped, wbc->pages_skipped) + tp_assign(sync_mode, wbc->sync_mode) + tp_assign(for_kupdate, wbc->for_kupdate) + tp_assign(for_background, wbc->for_background) + tp_assign(for_reclaim, wbc->for_reclaim) + tp_assign(range_cyclic, wbc->range_cyclic) +#if (LINUX_VERSION_CODE < KERNEL_VERSION(3,1,0)) + tp_assign(more_io, wbc->more_io) + tp_assign(older_than_this, wbc->older_than_this ? + *wbc->older_than_this : 0) +#endif + tp_assign(range_start, (long)wbc->range_start) + tp_assign(range_end, (long)wbc->range_end) + ), + + TP_printk("bdi %s: towrt=%ld skip=%ld mode=%d kupd=%d " +#if (LINUX_VERSION_CODE < KERNEL_VERSION(3,1,0)) + "bgrd=%d reclm=%d cyclic=%d more=%d older=0x%lx " +#else + "bgrd=%d reclm=%d cyclic=%d " +#endif + "start=0x%lx end=0x%lx", + __entry->name, + __entry->nr_to_write, + __entry->pages_skipped, + __entry->sync_mode, + __entry->for_kupdate, + __entry->for_background, + __entry->for_reclaim, + __entry->range_cyclic, +#if (LINUX_VERSION_CODE < KERNEL_VERSION(3,1,0)) + __entry->more_io, + __entry->older_than_this, +#endif + __entry->range_start, + __entry->range_end) +) + +#undef DEFINE_WBC_EVENT +#define DEFINE_WBC_EVENT(name, map) \ +DEFINE_EVENT_MAP(writeback_wbc_class, name, map, \ + TP_PROTO(struct writeback_control *wbc, struct backing_dev_info *bdi), \ + TP_ARGS(wbc, bdi)) +#if (LINUX_VERSION_CODE < KERNEL_VERSION(3,1,0)) +DEFINE_WBC_EVENT(wbc_writeback_start, writeback_wbc_writeback_start) +DEFINE_WBC_EVENT(wbc_writeback_written, writeback_wbc_writeback_written) +DEFINE_WBC_EVENT(wbc_writeback_wait, writeback_wbc_writeback_wait) +DEFINE_WBC_EVENT(wbc_balance_dirty_start, writeback_wbc_balance_dirty_start) +DEFINE_WBC_EVENT(wbc_balance_dirty_written, writeback_wbc_balance_dirty_written) +DEFINE_WBC_EVENT(wbc_balance_dirty_wait, writeback_wbc_balance_dirty_wait) +#endif +DEFINE_WBC_EVENT(wbc_writepage, writeback_wbc_writepage) + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,1,0)) +TRACE_EVENT(writeback_queue_io, + TP_PROTO(struct bdi_writeback *wb, +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,2,0)) + struct wb_writeback_work *work, +#else + unsigned long *older_than_this, +#endif + int moved), +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,2,0)) + TP_ARGS(wb, work, moved), +#else + TP_ARGS(wb, older_than_this, moved), +#endif + TP_STRUCT__entry( + __array(char, name, 32) +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,2,0)) +#else + __field(unsigned long, older) + __field(long, age) +#endif + __field(int, moved) + ), + TP_fast_assign( + tp_memcpy(name, dev_name(wb->bdi->dev), 32) +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,2,0)) +#else + tp_assign(older, older_than_this ? *older_than_this : 0) + tp_assign(age, older_than_this ? + (jiffies - *older_than_this) * 1000 / HZ : -1) +#endif + tp_assign(moved, moved) + ), +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,2,0)) + TP_printk("bdi %s: enqueue=%d", + __entry->name, + __entry->moved, + ) +#else + TP_printk("bdi %s: older=%lu age=%ld enqueue=%d", + __entry->name, + __entry->older, /* older_than_this in jiffies */ + __entry->age, /* older_than_this in relative milliseconds */ + __entry->moved + ) +#endif +) + +TRACE_EVENT_MAP(global_dirty_state, + + writeback_global_dirty_state, + + TP_PROTO(unsigned long background_thresh, + unsigned long dirty_thresh + ), + + TP_ARGS(background_thresh, + dirty_thresh + ), + + TP_STRUCT__entry( + __field(unsigned long, nr_dirty) + __field(unsigned long, nr_writeback) + __field(unsigned long, nr_unstable) + __field(unsigned long, background_thresh) + __field(unsigned long, dirty_thresh) + __field(unsigned long, dirty_limit) + __field(unsigned long, nr_dirtied) + __field(unsigned long, nr_written) + ), + + TP_fast_assign( + tp_assign(nr_dirty, global_page_state(NR_FILE_DIRTY)) + tp_assign(nr_writeback, global_page_state(NR_WRITEBACK)) + tp_assign(nr_unstable, global_page_state(NR_UNSTABLE_NFS)) + tp_assign(nr_dirtied, global_page_state(NR_DIRTIED)) + tp_assign(nr_written, global_page_state(NR_WRITTEN)) + tp_assign(background_thresh, background_thresh) + tp_assign(dirty_thresh, dirty_thresh) + tp_assign(dirty_limit, global_dirty_limit) + ), + + TP_printk("dirty=%lu writeback=%lu unstable=%lu " + "bg_thresh=%lu thresh=%lu limit=%lu " + "dirtied=%lu written=%lu", + __entry->nr_dirty, + __entry->nr_writeback, + __entry->nr_unstable, + __entry->background_thresh, + __entry->dirty_thresh, + __entry->dirty_limit, + __entry->nr_dirtied, + __entry->nr_written + ) +) +#endif + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,2,0)) + +#define KBps(x) ((x) << (PAGE_SHIFT - 10)) + +TRACE_EVENT_MAP(bdi_dirty_ratelimit, + + writeback_bdi_dirty_ratelimit, + + TP_PROTO(struct backing_dev_info *bdi, + unsigned long dirty_rate, + unsigned long task_ratelimit), + + TP_ARGS(bdi, dirty_rate, task_ratelimit), + + TP_STRUCT__entry( + __array(char, bdi, 32) + __field(unsigned long, write_bw) + __field(unsigned long, avg_write_bw) + __field(unsigned long, dirty_rate) + __field(unsigned long, dirty_ratelimit) + __field(unsigned long, task_ratelimit) + __field(unsigned long, balanced_dirty_ratelimit) + ), + + TP_fast_assign( + tp_memcpy(bdi, dev_name(bdi->dev), 32) + tp_assign(write_bw, KBps(bdi->write_bandwidth)) + tp_assign(avg_write_bw, KBps(bdi->avg_write_bandwidth)) + tp_assign(dirty_rate, KBps(dirty_rate)) + tp_assign(dirty_ratelimit, KBps(bdi->dirty_ratelimit)) + tp_assign(task_ratelimit, KBps(task_ratelimit)) + tp_assign(balanced_dirty_ratelimit, + KBps(bdi->balanced_dirty_ratelimit)) + ), + + TP_printk("bdi %s: " + "write_bw=%lu awrite_bw=%lu dirty_rate=%lu " + "dirty_ratelimit=%lu task_ratelimit=%lu " + "balanced_dirty_ratelimit=%lu", + __entry->bdi, + __entry->write_bw, /* write bandwidth */ + __entry->avg_write_bw, /* avg write bandwidth */ + __entry->dirty_rate, /* bdi dirty rate */ + __entry->dirty_ratelimit, /* base ratelimit */ + __entry->task_ratelimit, /* ratelimit with position control */ + __entry->balanced_dirty_ratelimit /* the balanced ratelimit */ + ) +) + +TRACE_EVENT_MAP(balance_dirty_pages, + + writeback_balance_dirty_pages, + + TP_PROTO(struct backing_dev_info *bdi, + unsigned long thresh, + unsigned long bg_thresh, + unsigned long dirty, + unsigned long bdi_thresh, + unsigned long bdi_dirty, + unsigned long dirty_ratelimit, + unsigned long task_ratelimit, + unsigned long dirtied, +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,3,0)) + unsigned long period, +#endif + long pause, + unsigned long start_time), + + TP_ARGS(bdi, thresh, bg_thresh, dirty, bdi_thresh, bdi_dirty, + dirty_ratelimit, task_ratelimit, +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,3,0)) + dirtied, period, pause, start_time), +#else + dirtied, pause, start_time), +#endif + TP_STRUCT__entry( + __array( char, bdi, 32) + __field(unsigned long, limit) + __field(unsigned long, setpoint) + __field(unsigned long, dirty) + __field(unsigned long, bdi_setpoint) + __field(unsigned long, bdi_dirty) + __field(unsigned long, dirty_ratelimit) + __field(unsigned long, task_ratelimit) + __field(unsigned int, dirtied) + __field(unsigned int, dirtied_pause) + __field(unsigned long, paused) + __field( long, pause) +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,3,0)) + __field(unsigned long, period) + __field( long, think) +#endif + ), + + TP_fast_assign( + tp_memcpy(bdi, dev_name(bdi->dev), 32) + tp_assign(limit, global_dirty_limit) + tp_assign(setpoint, + (global_dirty_limit + (thresh + bg_thresh) / 2) / 2) + tp_assign(dirty, dirty) + tp_assign(bdi_setpoint, + ((global_dirty_limit + (thresh + bg_thresh) / 2) / 2) * + bdi_thresh / (thresh + 1)) + tp_assign(bdi_dirty, bdi_dirty) + tp_assign(dirty_ratelimit, KBps(dirty_ratelimit)) + tp_assign(task_ratelimit, KBps(task_ratelimit)) + tp_assign(dirtied, dirtied) + tp_assign(dirtied_pause, current->nr_dirtied_pause) +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,3,0)) + tp_assign(think, current->dirty_paused_when == 0 ? 0 : + (long)(jiffies - current->dirty_paused_when) * 1000/HZ) + tp_assign(period, period * 1000 / HZ) +#endif + tp_assign(pause, pause * 1000 / HZ) + tp_assign(paused, (jiffies - start_time) * 1000 / HZ) + ), + + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,3,0)) + TP_printk("bdi %s: " + "limit=%lu setpoint=%lu dirty=%lu " + "bdi_setpoint=%lu bdi_dirty=%lu " + "dirty_ratelimit=%lu task_ratelimit=%lu " + "dirtied=%u dirtied_pause=%u " + "paused=%lu pause=%ld period=%lu think=%ld", + __entry->bdi, + __entry->limit, + __entry->setpoint, + __entry->dirty, + __entry->bdi_setpoint, + __entry->bdi_dirty, + __entry->dirty_ratelimit, + __entry->task_ratelimit, + __entry->dirtied, + __entry->dirtied_pause, + __entry->paused, /* ms */ + __entry->pause, /* ms */ + __entry->period, /* ms */ + __entry->think /* ms */ + ) +#else + TP_printk("bdi %s: " + "limit=%lu setpoint=%lu dirty=%lu " + "bdi_setpoint=%lu bdi_dirty=%lu " + "dirty_ratelimit=%lu task_ratelimit=%lu " + "dirtied=%u dirtied_pause=%u " + "paused=%lu pause=%ld", + __entry->bdi, + __entry->limit, + __entry->setpoint, + __entry->dirty, + __entry->bdi_setpoint, + __entry->bdi_dirty, + __entry->dirty_ratelimit, + __entry->task_ratelimit, + __entry->dirtied, + __entry->dirtied_pause, + __entry->paused, /* ms */ + __entry->pause /* ms */ + ) +#endif +) +#endif + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,5,0)) +TRACE_EVENT(writeback_sb_inodes_requeue, + + TP_PROTO(struct inode *inode), + TP_ARGS(inode), + + TP_STRUCT__entry( + __array(char, name, 32) + __field(unsigned long, ino) + __field(unsigned long, state) + __field(unsigned long, dirtied_when) + ), + + TP_fast_assign( + tp_memcpy(name, dev_name(inode_to_bdi(inode)->dev), 32) + tp_assign(ino, inode->i_ino) + tp_assign(state, inode->i_state) + tp_assign(dirtied_when, inode->dirtied_when) + ), + + TP_printk("bdi %s: ino=%lu state=%s dirtied_when=%lu age=%lu", + __entry->name, + __entry->ino, + show_inode_state(__entry->state), + __entry->dirtied_when, + (jiffies - __entry->dirtied_when) / HZ + ) +) +#endif + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,37)) +DECLARE_EVENT_CLASS(writeback_congest_waited_template, + + TP_PROTO(unsigned int usec_timeout, unsigned int usec_delayed), + + TP_ARGS(usec_timeout, usec_delayed), + + TP_STRUCT__entry( + __field( unsigned int, usec_timeout ) + __field( unsigned int, usec_delayed ) + ), + + TP_fast_assign( + tp_assign(usec_timeout, usec_timeout) + tp_assign(usec_delayed, usec_delayed) + ), + + TP_printk("usec_timeout=%u usec_delayed=%u", + __entry->usec_timeout, + __entry->usec_delayed) +) + +DEFINE_EVENT(writeback_congest_waited_template, writeback_congestion_wait, + + TP_PROTO(unsigned int usec_timeout, unsigned int usec_delayed), + + TP_ARGS(usec_timeout, usec_delayed) +) + +DEFINE_EVENT(writeback_congest_waited_template, writeback_wait_iff_congested, + + TP_PROTO(unsigned int usec_timeout, unsigned int usec_delayed), + + TP_ARGS(usec_timeout, usec_delayed) +) +#endif + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,1,0)) +DECLARE_EVENT_CLASS(writeback_single_inode_template, + + TP_PROTO(struct inode *inode, + struct writeback_control *wbc, + unsigned long nr_to_write + ), + + TP_ARGS(inode, wbc, nr_to_write), + + TP_STRUCT__entry( + __array(char, name, 32) + __field(unsigned long, ino) + __field(unsigned long, state) + __field(unsigned long, dirtied_when) + __field(unsigned long, writeback_index) + __field(long, nr_to_write) + __field(unsigned long, wrote) + ), + + TP_fast_assign( + tp_memcpy(name, dev_name(inode_to_bdi(inode)->dev), 32) + tp_assign(ino, inode->i_ino) + tp_assign(state, inode->i_state) + tp_assign(dirtied_when, inode->dirtied_when) + tp_assign(writeback_index, inode->i_mapping->writeback_index) + tp_assign(nr_to_write, nr_to_write) + tp_assign(wrote, nr_to_write - wbc->nr_to_write) + ), + + TP_printk("bdi %s: ino=%lu state=%s dirtied_when=%lu age=%lu " + "index=%lu to_write=%ld wrote=%lu", + __entry->name, + __entry->ino, + show_inode_state(__entry->state), + __entry->dirtied_when, + (jiffies - __entry->dirtied_when) / HZ, + __entry->writeback_index, + __entry->nr_to_write, + __entry->wrote + ) +) + +#if (LINUX_VERSION_CODE < KERNEL_VERSION(3,5,0)) +DEFINE_EVENT(writeback_single_inode_template, writeback_single_inode_requeue, + TP_PROTO(struct inode *inode, + struct writeback_control *wbc, + unsigned long nr_to_write), + TP_ARGS(inode, wbc, nr_to_write) +) +#endif + +DEFINE_EVENT(writeback_single_inode_template, writeback_single_inode, + TP_PROTO(struct inode *inode, + struct writeback_control *wbc, + unsigned long nr_to_write), + TP_ARGS(inode, wbc, nr_to_write) +) +#endif + +#endif /* _TRACE_WRITEBACK_H */ + +/* This part must be outside protection */ +#include "../../../probes/define_trace.h" --- linux-3.11.0.orig/ubuntu/lttng/instrumentation/events/lttng-module/sunrpc.h +++ linux-3.11.0/ubuntu/lttng/instrumentation/events/lttng-module/sunrpc.h @@ -0,0 +1,177 @@ +#undef TRACE_SYSTEM +#define TRACE_SYSTEM sunrpc + +#if !defined(_TRACE_SUNRPC_H) || defined(TRACE_HEADER_MULTI_READ) +#define _TRACE_SUNRPC_H + +#include +#include +#include + +DECLARE_EVENT_CLASS(rpc_task_status, + + TP_PROTO(struct rpc_task *task), + + TP_ARGS(task), + + TP_STRUCT__entry( + __field(const struct rpc_task *, task) + __field(const struct rpc_clnt *, clnt) + __field(int, status) + ), + + TP_fast_assign( + tp_assign(task, task) + tp_assign(clnt, task->tk_client) + tp_assign(status, task->tk_status) + ), + + TP_printk("task:%p@%p, status %d",__entry->task, __entry->clnt, __entry->status) +) + +DEFINE_EVENT(rpc_task_status, rpc_call_status, + TP_PROTO(struct rpc_task *task), + + TP_ARGS(task) +) + +DEFINE_EVENT(rpc_task_status, rpc_bind_status, + TP_PROTO(struct rpc_task *task), + + TP_ARGS(task) +) + +TRACE_EVENT(rpc_connect_status, + TP_PROTO(struct rpc_task *task, int status), + + TP_ARGS(task, status), + + TP_STRUCT__entry( + __field(const struct rpc_task *, task) + __field(const struct rpc_clnt *, clnt) + __field(int, status) + ), + + TP_fast_assign( + tp_assign(task, task) + tp_assign(clnt, task->tk_client) + tp_assign(status, status) + ), + + TP_printk("task:%p@%p, status %d",__entry->task, __entry->clnt, __entry->status) +) + +DECLARE_EVENT_CLASS(rpc_task_running, + + TP_PROTO(const struct rpc_clnt *clnt, const struct rpc_task *task, const void *action), + + TP_ARGS(clnt, task, action), + + TP_STRUCT__entry( + __field(const struct rpc_clnt *, clnt) + __field(const struct rpc_task *, task) + __field(const void *, action) + __field(unsigned long, runstate) + __field(int, status) + __field(unsigned short, flags) + ), + + TP_fast_assign( + tp_assign(clnt, clnt) + tp_assign(task, task) + tp_assign(action, action) + tp_assign(runstate, task->tk_runstate) + tp_assign(status, task->tk_status) + tp_assign(flags, task->tk_flags) + ), + + TP_printk("task:%p@%p flags=%4.4x state=%4.4lx status=%d action=%pf", + __entry->task, + __entry->clnt, + __entry->flags, + __entry->runstate, + __entry->status, + __entry->action + ) +) + +DEFINE_EVENT(rpc_task_running, rpc_task_begin, + + TP_PROTO(const struct rpc_clnt *clnt, const struct rpc_task *task, const void *action), + + TP_ARGS(clnt, task, action) + +) + +DEFINE_EVENT(rpc_task_running, rpc_task_run_action, + + TP_PROTO(const struct rpc_clnt *clnt, const struct rpc_task *task, const void *action), + + TP_ARGS(clnt, task, action) + +) + +DEFINE_EVENT(rpc_task_running, rpc_task_complete, + + TP_PROTO(const struct rpc_clnt *clnt, const struct rpc_task *task, const void *action), + + TP_ARGS(clnt, task, action) + +) + +DECLARE_EVENT_CLASS(rpc_task_queued, + + TP_PROTO(const struct rpc_clnt *clnt, const struct rpc_task *task, const struct rpc_wait_queue *q), + + TP_ARGS(clnt, task, q), + + TP_STRUCT__entry( + __field(const struct rpc_clnt *, clnt) + __field(const struct rpc_task *, task) + __field(unsigned long, timeout) + __field(unsigned long, runstate) + __field(int, status) + __field(unsigned short, flags) + __string(q_name, rpc_qname(q)) + ), + + TP_fast_assign( + tp_assign(clnt, clnt) + tp_assign(task, task) + tp_assign(timeout, task->tk_timeout) + tp_assign(runstate, task->tk_runstate) + tp_assign(status, task->tk_status) + tp_assign(flags, task->tk_flags) + tp_strcpy(q_name, rpc_qname(q)) + ), + + TP_printk("task:%p@%p flags=%4.4x state=%4.4lx status=%d timeout=%lu queue=%s", + __entry->task, + __entry->clnt, + __entry->flags, + __entry->runstate, + __entry->status, + __entry->timeout, + __get_str(q_name) + ) +) + +DEFINE_EVENT(rpc_task_queued, rpc_task_sleep, + + TP_PROTO(const struct rpc_clnt *clnt, const struct rpc_task *task, const struct rpc_wait_queue *q), + + TP_ARGS(clnt, task, q) + +) + +DEFINE_EVENT(rpc_task_queued, rpc_task_wakeup, + + TP_PROTO(const struct rpc_clnt *clnt, const struct rpc_task *task, const struct rpc_wait_queue *q), + + TP_ARGS(clnt, task, q) + +) + +#endif /* _TRACE_SUNRPC_H */ + +#include "../../../probes/define_trace.h" --- linux-3.11.0.orig/ubuntu/lttng/instrumentation/events/lttng-module/timer.h +++ linux-3.11.0/ubuntu/lttng/instrumentation/events/lttng-module/timer.h @@ -0,0 +1,336 @@ +#undef TRACE_SYSTEM +#define TRACE_SYSTEM timer + +#if !defined(_TRACE_TIMER_H) || defined(TRACE_HEADER_MULTI_READ) +#define _TRACE_TIMER_H + +#include + +#ifndef _TRACE_TIMER_DEF_ +#define _TRACE_TIMER_DEF_ +#include +#include + +struct timer_list; + +#endif /* _TRACE_TIMER_DEF_ */ + +DECLARE_EVENT_CLASS(timer_class, + + TP_PROTO(struct timer_list *timer), + + TP_ARGS(timer), + + TP_STRUCT__entry( + __field( void *, timer ) + ), + + TP_fast_assign( + tp_assign(timer, timer) + ), + + TP_printk("timer=%p", __entry->timer) +) + +/** + * timer_init - called when the timer is initialized + * @timer: pointer to struct timer_list + */ +DEFINE_EVENT(timer_class, timer_init, + + TP_PROTO(struct timer_list *timer), + + TP_ARGS(timer) +) + +/** + * timer_start - called when the timer is started + * @timer: pointer to struct timer_list + * @expires: the timers expiry time + */ +TRACE_EVENT(timer_start, + + TP_PROTO(struct timer_list *timer, unsigned long expires), + + TP_ARGS(timer, expires), + + TP_STRUCT__entry( + __field( void *, timer ) + __field( void *, function ) + __field( unsigned long, expires ) + __field( unsigned long, now ) + ), + + TP_fast_assign( + tp_assign(timer, timer) + tp_assign(function, timer->function) + tp_assign(expires, expires) + tp_assign(now, jiffies) + ), + + TP_printk("timer=%p function=%pf expires=%lu [timeout=%ld]", + __entry->timer, __entry->function, __entry->expires, + (long)__entry->expires - __entry->now) +) + +/** + * timer_expire_entry - called immediately before the timer callback + * @timer: pointer to struct timer_list + * + * Allows to determine the timer latency. + */ +TRACE_EVENT(timer_expire_entry, + + TP_PROTO(struct timer_list *timer), + + TP_ARGS(timer), + + TP_STRUCT__entry( + __field( void *, timer ) + __field( unsigned long, now ) + __field( void *, function) + ), + + TP_fast_assign( + tp_assign(timer, timer) + tp_assign(now, jiffies) + tp_assign(function, timer->function) + ), + + TP_printk("timer=%p function=%pf now=%lu", __entry->timer, __entry->function,__entry->now) +) + +/** + * timer_expire_exit - called immediately after the timer callback returns + * @timer: pointer to struct timer_list + * + * When used in combination with the timer_expire_entry tracepoint we can + * determine the runtime of the timer callback function. + * + * NOTE: Do NOT derefernce timer in TP_fast_assign. The pointer might + * be invalid. We solely track the pointer. + */ +DEFINE_EVENT(timer_class, timer_expire_exit, + + TP_PROTO(struct timer_list *timer), + + TP_ARGS(timer) +) + +/** + * timer_cancel - called when the timer is canceled + * @timer: pointer to struct timer_list + */ +DEFINE_EVENT(timer_class, timer_cancel, + + TP_PROTO(struct timer_list *timer), + + TP_ARGS(timer) +) + +/** + * hrtimer_init - called when the hrtimer is initialized + * @timer: pointer to struct hrtimer + * @clockid: the hrtimers clock + * @mode: the hrtimers mode + */ +TRACE_EVENT(hrtimer_init, + + TP_PROTO(struct hrtimer *hrtimer, clockid_t clockid, + enum hrtimer_mode mode), + + TP_ARGS(hrtimer, clockid, mode), + + TP_STRUCT__entry( + __field( void *, hrtimer ) + __field( clockid_t, clockid ) + __field( enum hrtimer_mode, mode ) + ), + + TP_fast_assign( + tp_assign(hrtimer, hrtimer) + tp_assign(clockid, clockid) + tp_assign(mode, mode) + ), + + TP_printk("hrtimer=%p clockid=%s mode=%s", __entry->hrtimer, + __entry->clockid == CLOCK_REALTIME ? + "CLOCK_REALTIME" : "CLOCK_MONOTONIC", + __entry->mode == HRTIMER_MODE_ABS ? + "HRTIMER_MODE_ABS" : "HRTIMER_MODE_REL") +) + +/** + * hrtimer_start - called when the hrtimer is started + * @timer: pointer to struct hrtimer + */ +TRACE_EVENT(hrtimer_start, + + TP_PROTO(struct hrtimer *hrtimer), + + TP_ARGS(hrtimer), + + TP_STRUCT__entry( + __field( void *, hrtimer ) + __field( void *, function ) + __field( s64, expires ) + __field( s64, softexpires ) + ), + + TP_fast_assign( + tp_assign(hrtimer, hrtimer) + tp_assign(function, hrtimer->function) + tp_assign(expires, hrtimer_get_expires(hrtimer).tv64) + tp_assign(softexpires, hrtimer_get_softexpires(hrtimer).tv64) + ), + + TP_printk("hrtimer=%p function=%pf expires=%llu softexpires=%llu", + __entry->hrtimer, __entry->function, + (unsigned long long)ktime_to_ns((ktime_t) { + .tv64 = __entry->expires }), + (unsigned long long)ktime_to_ns((ktime_t) { + .tv64 = __entry->softexpires })) +) + +/** + * htimmer_expire_entry - called immediately before the hrtimer callback + * @timer: pointer to struct hrtimer + * @now: pointer to variable which contains current time of the + * timers base. + * + * Allows to determine the timer latency. + */ +TRACE_EVENT(hrtimer_expire_entry, + + TP_PROTO(struct hrtimer *hrtimer, ktime_t *now), + + TP_ARGS(hrtimer, now), + + TP_STRUCT__entry( + __field( void *, hrtimer ) + __field( s64, now ) + __field( void *, function) + ), + + TP_fast_assign( + tp_assign(hrtimer, hrtimer) + tp_assign(now, now->tv64) + tp_assign(function, hrtimer->function) + ), + + TP_printk("hrtimer=%p function=%pf now=%llu", __entry->hrtimer, __entry->function, + (unsigned long long)ktime_to_ns((ktime_t) { .tv64 = __entry->now })) +) + +DECLARE_EVENT_CLASS(hrtimer_class, + + TP_PROTO(struct hrtimer *hrtimer), + + TP_ARGS(hrtimer), + + TP_STRUCT__entry( + __field( void *, hrtimer ) + ), + + TP_fast_assign( + tp_assign(hrtimer, hrtimer) + ), + + TP_printk("hrtimer=%p", __entry->hrtimer) +) + +/** + * hrtimer_expire_exit - called immediately after the hrtimer callback returns + * @timer: pointer to struct hrtimer + * + * When used in combination with the hrtimer_expire_entry tracepoint we can + * determine the runtime of the callback function. + */ +DEFINE_EVENT(hrtimer_class, hrtimer_expire_exit, + + TP_PROTO(struct hrtimer *hrtimer), + + TP_ARGS(hrtimer) +) + +/** + * hrtimer_cancel - called when the hrtimer is canceled + * @hrtimer: pointer to struct hrtimer + */ +DEFINE_EVENT(hrtimer_class, hrtimer_cancel, + + TP_PROTO(struct hrtimer *hrtimer), + + TP_ARGS(hrtimer) +) + +/** + * itimer_state - called when itimer is started or canceled + * @which: name of the interval timer + * @value: the itimers value, itimer is canceled if value->it_value is + * zero, otherwise it is started + * @expires: the itimers expiry time + */ +TRACE_EVENT(itimer_state, + + TP_PROTO(int which, const struct itimerval *const value, + cputime_t expires), + + TP_ARGS(which, value, expires), + + TP_STRUCT__entry( + __field( int, which ) + __field( cputime_t, expires ) + __field( long, value_sec ) + __field( long, value_usec ) + __field( long, interval_sec ) + __field( long, interval_usec ) + ), + + TP_fast_assign( + tp_assign(which, which) + tp_assign(expires, expires) + tp_assign(value_sec, value->it_value.tv_sec) + tp_assign(value_usec, value->it_value.tv_usec) + tp_assign(interval_sec, value->it_interval.tv_sec) + tp_assign(interval_usec, value->it_interval.tv_usec) + ), + + TP_printk("which=%d expires=%llu it_value=%ld.%ld it_interval=%ld.%ld", + __entry->which, (unsigned long long)__entry->expires, + __entry->value_sec, __entry->value_usec, + __entry->interval_sec, __entry->interval_usec) +) + +/** + * itimer_expire - called when itimer expires + * @which: type of the interval timer + * @pid: pid of the process which owns the timer + * @now: current time, used to calculate the latency of itimer + */ +TRACE_EVENT(itimer_expire, + + TP_PROTO(int which, struct pid *pid, cputime_t now), + + TP_ARGS(which, pid, now), + + TP_STRUCT__entry( + __field( int , which ) + __field( pid_t, pid ) + __field( cputime_t, now ) + ), + + TP_fast_assign( + tp_assign(which, which) + tp_assign(now, now) + tp_assign(pid, pid_nr(pid)) + ), + + TP_printk("which=%d pid=%d now=%llu", __entry->which, + (int) __entry->pid, (unsigned long long)__entry->now) +) + +#endif /* _TRACE_TIMER_H */ + +/* This part must be outside protection */ +#include "../../../probes/define_trace.h" --- linux-3.11.0.orig/ubuntu/lttng/instrumentation/events/lttng-module/kmem.h +++ linux-3.11.0/ubuntu/lttng/instrumentation/events/lttng-module/kmem.h @@ -0,0 +1,331 @@ +#undef TRACE_SYSTEM +#define TRACE_SYSTEM kmem + +#if !defined(_TRACE_KMEM_H) || defined(TRACE_HEADER_MULTI_READ) +#define _TRACE_KMEM_H + +#include +#include +#include +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,36)) +#include +#endif + +DECLARE_EVENT_CLASS(kmem_alloc, + + TP_PROTO(unsigned long call_site, + const void *ptr, + size_t bytes_req, + size_t bytes_alloc, + gfp_t gfp_flags), + + TP_ARGS(call_site, ptr, bytes_req, bytes_alloc, gfp_flags), + + TP_STRUCT__entry( + __field_hex( unsigned long, call_site ) + __field_hex( const void *, ptr ) + __field( size_t, bytes_req ) + __field( size_t, bytes_alloc ) + __field( gfp_t, gfp_flags ) + ), + + TP_fast_assign( + tp_assign(call_site, call_site) + tp_assign(ptr, ptr) + tp_assign(bytes_req, bytes_req) + tp_assign(bytes_alloc, bytes_alloc) + tp_assign(gfp_flags, gfp_flags) + ), + + TP_printk("call_site=%lx ptr=%p bytes_req=%zu bytes_alloc=%zu gfp_flags=%s", + __entry->call_site, + __entry->ptr, + __entry->bytes_req, + __entry->bytes_alloc, + show_gfp_flags(__entry->gfp_flags)) +) + +DEFINE_EVENT_MAP(kmem_alloc, kmalloc, + + kmem_kmalloc, + + TP_PROTO(unsigned long call_site, const void *ptr, + size_t bytes_req, size_t bytes_alloc, gfp_t gfp_flags), + + TP_ARGS(call_site, ptr, bytes_req, bytes_alloc, gfp_flags) +) + +DEFINE_EVENT(kmem_alloc, kmem_cache_alloc, + + TP_PROTO(unsigned long call_site, const void *ptr, + size_t bytes_req, size_t bytes_alloc, gfp_t gfp_flags), + + TP_ARGS(call_site, ptr, bytes_req, bytes_alloc, gfp_flags) +) + +DECLARE_EVENT_CLASS(kmem_alloc_node, + + TP_PROTO(unsigned long call_site, + const void *ptr, + size_t bytes_req, + size_t bytes_alloc, + gfp_t gfp_flags, + int node), + + TP_ARGS(call_site, ptr, bytes_req, bytes_alloc, gfp_flags, node), + + TP_STRUCT__entry( + __field_hex( unsigned long, call_site ) + __field_hex( const void *, ptr ) + __field( size_t, bytes_req ) + __field( size_t, bytes_alloc ) + __field( gfp_t, gfp_flags ) + __field( int, node ) + ), + + TP_fast_assign( + tp_assign(call_site, call_site) + tp_assign(ptr, ptr) + tp_assign(bytes_req, bytes_req) + tp_assign(bytes_alloc, bytes_alloc) + tp_assign(gfp_flags, gfp_flags) + tp_assign(node, node) + ), + + TP_printk("call_site=%lx ptr=%p bytes_req=%zu bytes_alloc=%zu gfp_flags=%s node=%d", + __entry->call_site, + __entry->ptr, + __entry->bytes_req, + __entry->bytes_alloc, + show_gfp_flags(__entry->gfp_flags), + __entry->node) +) + +DEFINE_EVENT_MAP(kmem_alloc_node, kmalloc_node, + + kmem_kmalloc_node, + + TP_PROTO(unsigned long call_site, const void *ptr, + size_t bytes_req, size_t bytes_alloc, + gfp_t gfp_flags, int node), + + TP_ARGS(call_site, ptr, bytes_req, bytes_alloc, gfp_flags, node) +) + +DEFINE_EVENT(kmem_alloc_node, kmem_cache_alloc_node, + + TP_PROTO(unsigned long call_site, const void *ptr, + size_t bytes_req, size_t bytes_alloc, + gfp_t gfp_flags, int node), + + TP_ARGS(call_site, ptr, bytes_req, bytes_alloc, gfp_flags, node) +) + +DECLARE_EVENT_CLASS(kmem_free, + + TP_PROTO(unsigned long call_site, const void *ptr), + + TP_ARGS(call_site, ptr), + + TP_STRUCT__entry( + __field_hex( unsigned long, call_site ) + __field_hex( const void *, ptr ) + ), + + TP_fast_assign( + tp_assign(call_site, call_site) + tp_assign(ptr, ptr) + ), + + TP_printk("call_site=%lx ptr=%p", __entry->call_site, __entry->ptr) +) + +DEFINE_EVENT_MAP(kmem_free, kfree, + + kmem_kfree, + + TP_PROTO(unsigned long call_site, const void *ptr), + + TP_ARGS(call_site, ptr) +) + +DEFINE_EVENT(kmem_free, kmem_cache_free, + + TP_PROTO(unsigned long call_site, const void *ptr), + + TP_ARGS(call_site, ptr) +) + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,32)) +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,3,0)) +TRACE_EVENT(mm_page_free, +#else +TRACE_EVENT(mm_page_free_direct, +#endif + + TP_PROTO(struct page *page, unsigned int order), + + TP_ARGS(page, order), + + TP_STRUCT__entry( + __field_hex( struct page *, page ) + __field( unsigned int, order ) + ), + + TP_fast_assign( + tp_assign(page, page) + tp_assign(order, order) + ), + + TP_printk("page=%p pfn=%lu order=%d", + __entry->page, + page_to_pfn(__entry->page), + __entry->order) +) + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,3,0)) +TRACE_EVENT(mm_page_free_batched, +#else +TRACE_EVENT(mm_pagevec_free, +#endif + + TP_PROTO(struct page *page, int cold), + + TP_ARGS(page, cold), + + TP_STRUCT__entry( + __field_hex( struct page *, page ) + __field( int, cold ) + ), + + TP_fast_assign( + tp_assign(page, page) + tp_assign(cold, cold) + ), + + TP_printk("page=%p pfn=%lu order=0 cold=%d", + __entry->page, + page_to_pfn(__entry->page), + __entry->cold) +) + +TRACE_EVENT(mm_page_alloc, + + TP_PROTO(struct page *page, unsigned int order, + gfp_t gfp_flags, int migratetype), + + TP_ARGS(page, order, gfp_flags, migratetype), + + TP_STRUCT__entry( + __field_hex( struct page *, page ) + __field( unsigned int, order ) + __field( gfp_t, gfp_flags ) + __field( int, migratetype ) + ), + + TP_fast_assign( + tp_assign(page, page) + tp_assign(order, order) + tp_assign(gfp_flags, gfp_flags) + tp_assign(migratetype, migratetype) + ), + + TP_printk("page=%p pfn=%lu order=%d migratetype=%d gfp_flags=%s", + __entry->page, + __entry->page ? page_to_pfn(__entry->page) : 0, + __entry->order, + __entry->migratetype, + show_gfp_flags(__entry->gfp_flags)) +) + +DECLARE_EVENT_CLASS(mm_page, + + TP_PROTO(struct page *page, unsigned int order, int migratetype), + + TP_ARGS(page, order, migratetype), + + TP_STRUCT__entry( + __field_hex( struct page *, page ) + __field( unsigned int, order ) + __field( int, migratetype ) + ), + + TP_fast_assign( + tp_assign(page, page) + tp_assign(order, order) + tp_assign(migratetype, migratetype) + ), + + TP_printk("page=%p pfn=%lu order=%u migratetype=%d percpu_refill=%d", + __entry->page, + __entry->page ? page_to_pfn(__entry->page) : 0, + __entry->order, + __entry->migratetype, + __entry->order == 0) +) + +DEFINE_EVENT(mm_page, mm_page_alloc_zone_locked, + + TP_PROTO(struct page *page, unsigned int order, int migratetype), + + TP_ARGS(page, order, migratetype) +) + +DEFINE_EVENT_PRINT(mm_page, mm_page_pcpu_drain, + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,33)) + TP_PROTO(struct page *page, unsigned int order, int migratetype), +#else + TP_PROTO(struct page *page, int order, int migratetype), +#endif + + TP_ARGS(page, order, migratetype), + + TP_printk("page=%p pfn=%lu order=%d migratetype=%d", + __entry->page, page_to_pfn(__entry->page), + __entry->order, __entry->migratetype) +) + +TRACE_EVENT(mm_page_alloc_extfrag, + + TP_PROTO(struct page *page, + int alloc_order, int fallback_order, + int alloc_migratetype, int fallback_migratetype), + + TP_ARGS(page, + alloc_order, fallback_order, + alloc_migratetype, fallback_migratetype), + + TP_STRUCT__entry( + __field_hex( struct page *, page ) + __field( int, alloc_order ) + __field( int, fallback_order ) + __field( int, alloc_migratetype ) + __field( int, fallback_migratetype ) + ), + + TP_fast_assign( + tp_assign(page, page) + tp_assign(alloc_order, alloc_order) + tp_assign(fallback_order, fallback_order) + tp_assign(alloc_migratetype, alloc_migratetype) + tp_assign(fallback_migratetype, fallback_migratetype) + ), + + TP_printk("page=%p pfn=%lu alloc_order=%d fallback_order=%d pageblock_order=%d alloc_migratetype=%d fallback_migratetype=%d fragmenting=%d change_ownership=%d", + __entry->page, + page_to_pfn(__entry->page), + __entry->alloc_order, + __entry->fallback_order, + pageblock_order, + __entry->alloc_migratetype, + __entry->fallback_migratetype, + __entry->fallback_order < pageblock_order, + __entry->alloc_migratetype == __entry->fallback_migratetype) +) +#endif + +#endif /* _TRACE_KMEM_H */ + +/* This part must be outside protection */ +#include "../../../probes/define_trace.h" --- linux-3.11.0.orig/ubuntu/lttng/instrumentation/events/lttng-module/gpio.h +++ linux-3.11.0/ubuntu/lttng/instrumentation/events/lttng-module/gpio.h @@ -0,0 +1,56 @@ +#undef TRACE_SYSTEM +#define TRACE_SYSTEM gpio + +#if !defined(_TRACE_GPIO_H) || defined(TRACE_HEADER_MULTI_READ) +#define _TRACE_GPIO_H + +#include + +TRACE_EVENT(gpio_direction, + + TP_PROTO(unsigned gpio, int in, int err), + + TP_ARGS(gpio, in, err), + + TP_STRUCT__entry( + __field(unsigned, gpio) + __field(int, in) + __field(int, err) + ), + + TP_fast_assign( + tp_assign(gpio, gpio) + tp_assign(in, in) + tp_assign(err, err) + ), + + TP_printk("%u %3s (%d)", __entry->gpio, + __entry->in ? "in" : "out", __entry->err) +) + +TRACE_EVENT(gpio_value, + + TP_PROTO(unsigned gpio, int get, int value), + + TP_ARGS(gpio, get, value), + + TP_STRUCT__entry( + __field(unsigned, gpio) + __field(int, get) + __field(int, value) + ), + + TP_fast_assign( + tp_assign(gpio, gpio) + tp_assign(get, get) + tp_assign(value, value) + ), + + TP_printk("%u %3s %d", __entry->gpio, + __entry->get ? "get" : "set", __entry->value) +) + +#endif /* if !defined(_TRACE_GPIO_H) || defined(TRACE_HEADER_MULTI_READ) */ + +/* This part must be outside protection */ +#include "../../../probes/define_trace.h" --- linux-3.11.0.orig/ubuntu/lttng/instrumentation/events/lttng-module/asoc.h +++ linux-3.11.0/ubuntu/lttng/instrumentation/events/lttng-module/asoc.h @@ -0,0 +1,422 @@ +#undef TRACE_SYSTEM +#define TRACE_SYSTEM asoc + +#if !defined(_TRACE_ASOC_H) || defined(TRACE_HEADER_MULTI_READ) +#define _TRACE_ASOC_H + +#include +#include +#include + +#define DAPM_DIRECT "(direct)" + +#ifndef _TRACE_ASOC_DEF +#define _TRACE_ASOC_DEF +struct snd_soc_jack; +struct snd_soc_codec; +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,1,0)) +struct snd_soc_platform; +#endif +struct snd_soc_card; +struct snd_soc_dapm_widget; +#endif + +/* + * Log register events + */ +DECLARE_EVENT_CLASS(snd_soc_reg, + + TP_PROTO(struct snd_soc_codec *codec, unsigned int reg, + unsigned int val), + + TP_ARGS(codec, reg, val), + + TP_STRUCT__entry( + __string( name, codec->name ) + __field( int, id ) + __field( unsigned int, reg ) + __field( unsigned int, val ) + ), + + TP_fast_assign( + tp_strcpy(name, codec->name) + tp_assign(id, codec->id) + tp_assign(reg, reg) + tp_assign(val, val) + ), + + TP_printk("codec=%s.%d reg=%x val=%x", __get_str(name), + (int)__entry->id, (unsigned int)__entry->reg, + (unsigned int)__entry->val) +) + +DEFINE_EVENT(snd_soc_reg, snd_soc_reg_write, + + TP_PROTO(struct snd_soc_codec *codec, unsigned int reg, + unsigned int val), + + TP_ARGS(codec, reg, val) + +) + +DEFINE_EVENT(snd_soc_reg, snd_soc_reg_read, + + TP_PROTO(struct snd_soc_codec *codec, unsigned int reg, + unsigned int val), + + TP_ARGS(codec, reg, val) + +) + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,1,0)) +DECLARE_EVENT_CLASS(snd_soc_preg, + + TP_PROTO(struct snd_soc_platform *platform, unsigned int reg, + unsigned int val), + + TP_ARGS(platform, reg, val), + + TP_STRUCT__entry( + __string( name, platform->name ) + __field( int, id ) + __field( unsigned int, reg ) + __field( unsigned int, val ) + ), + + TP_fast_assign( + tp_strcpy(name, platform->name) + tp_assign(id, platform->id) + tp_assign(reg, reg) + tp_assign(val, val) + ), + + TP_printk("platform=%s.%d reg=%x val=%x", __get_str(name), + (int)__entry->id, (unsigned int)__entry->reg, + (unsigned int)__entry->val) +) + +DEFINE_EVENT(snd_soc_preg, snd_soc_preg_write, + + TP_PROTO(struct snd_soc_platform *platform, unsigned int reg, + unsigned int val), + + TP_ARGS(platform, reg, val) + +) + +DEFINE_EVENT(snd_soc_preg, snd_soc_preg_read, + + TP_PROTO(struct snd_soc_platform *platform, unsigned int reg, + unsigned int val), + + TP_ARGS(platform, reg, val) + +) +#endif + +DECLARE_EVENT_CLASS(snd_soc_card, + + TP_PROTO(struct snd_soc_card *card, int val), + + TP_ARGS(card, val), + + TP_STRUCT__entry( + __string( name, card->name ) + __field( int, val ) + ), + + TP_fast_assign( + tp_strcpy(name, card->name) + tp_assign(val, val) + ), + + TP_printk("card=%s val=%d", __get_str(name), (int)__entry->val) +) + +DEFINE_EVENT(snd_soc_card, snd_soc_bias_level_start, + + TP_PROTO(struct snd_soc_card *card, int val), + + TP_ARGS(card, val) + +) + +DEFINE_EVENT(snd_soc_card, snd_soc_bias_level_done, + + TP_PROTO(struct snd_soc_card *card, int val), + + TP_ARGS(card, val) + +) + +DECLARE_EVENT_CLASS(snd_soc_dapm_basic, + + TP_PROTO(struct snd_soc_card *card), + + TP_ARGS(card), + + TP_STRUCT__entry( + __string( name, card->name ) + ), + + TP_fast_assign( + tp_strcpy(name, card->name) + ), + + TP_printk("card=%s", __get_str(name)) +) + +DEFINE_EVENT(snd_soc_dapm_basic, snd_soc_dapm_start, + + TP_PROTO(struct snd_soc_card *card), + + TP_ARGS(card) + +) + +DEFINE_EVENT(snd_soc_dapm_basic, snd_soc_dapm_done, + + TP_PROTO(struct snd_soc_card *card), + + TP_ARGS(card) + +) + +DECLARE_EVENT_CLASS(snd_soc_dapm_widget, + + TP_PROTO(struct snd_soc_dapm_widget *w, int val), + + TP_ARGS(w, val), + + TP_STRUCT__entry( + __string( name, w->name ) + __field( int, val ) + ), + + TP_fast_assign( + tp_strcpy(name, w->name) + tp_assign(val, val) + ), + + TP_printk("widget=%s val=%d", __get_str(name), + (int)__entry->val) +) + +DEFINE_EVENT(snd_soc_dapm_widget, snd_soc_dapm_widget_power, + + TP_PROTO(struct snd_soc_dapm_widget *w, int val), + + TP_ARGS(w, val) + +) + +DEFINE_EVENT(snd_soc_dapm_widget, snd_soc_dapm_widget_event_start, + + TP_PROTO(struct snd_soc_dapm_widget *w, int val), + + TP_ARGS(w, val) + +) + +DEFINE_EVENT(snd_soc_dapm_widget, snd_soc_dapm_widget_event_done, + + TP_PROTO(struct snd_soc_dapm_widget *w, int val), + + TP_ARGS(w, val) + +) + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,2,0)) +TRACE_EVENT(snd_soc_dapm_walk_done, + + TP_PROTO(struct snd_soc_card *card), + + TP_ARGS(card), + + TP_STRUCT__entry( + __string( name, card->name ) + __field( int, power_checks ) + __field( int, path_checks ) + __field( int, neighbour_checks ) + ), + + TP_fast_assign( + tp_strcpy(name, card->name) + tp_assign(power_checks, card->dapm_stats.power_checks) + tp_assign(path_checks, card->dapm_stats.path_checks) + tp_assign(neighbour_checks, card->dapm_stats.neighbour_checks) + ), + + TP_printk("%s: checks %d power, %d path, %d neighbour", + __get_str(name), (int)__entry->power_checks, + (int)__entry->path_checks, (int)__entry->neighbour_checks) +) +#endif + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,5,0)) +TRACE_EVENT(snd_soc_dapm_output_path, + + TP_PROTO(struct snd_soc_dapm_widget *widget, + struct snd_soc_dapm_path *path), + + TP_ARGS(widget, path), + + TP_STRUCT__entry( + __string( wname, widget->name ) + __string( pname, path->name ? path->name : DAPM_DIRECT) + __string( psname, path->sink->name ) + __field( int, path_sink ) + __field( int, path_connect ) + ), + + TP_fast_assign( + tp_strcpy(wname, widget->name) + tp_strcpy(pname, path->name ? path->name : DAPM_DIRECT) + tp_strcpy(psname, path->sink->name) + tp_assign(path_connect, path->connect) + tp_assign(path_sink, (long)path->sink) + ), + + TP_printk("%c%s -> %s -> %s\n", + (int) __entry->path_sink && + (int) __entry->path_connect ? '*' : ' ', + __get_str(wname), __get_str(pname), __get_str(psname)) +) + +TRACE_EVENT(snd_soc_dapm_input_path, + + TP_PROTO(struct snd_soc_dapm_widget *widget, + struct snd_soc_dapm_path *path), + + TP_ARGS(widget, path), + + TP_STRUCT__entry( + __string( wname, widget->name ) + __string( pname, path->name ? path->name : DAPM_DIRECT) + __string( psname, path->source->name ) + __field( int, path_source ) + __field( int, path_connect ) + ), + + TP_fast_assign( + tp_strcpy(wname, widget->name) + tp_strcpy(pname, path->name ? path->name : DAPM_DIRECT) + tp_strcpy(psname, path->source->name) + tp_assign(path_connect, path->connect) + tp_assign(path_source, (long)path->source) + ), + + TP_printk("%c%s <- %s <- %s\n", + (int) __entry->path_source && + (int) __entry->path_connect ? '*' : ' ', + __get_str(wname), __get_str(pname), __get_str(psname)) +) + +TRACE_EVENT(snd_soc_dapm_connected, + + TP_PROTO(int paths, int stream), + + TP_ARGS(paths, stream), + + TP_STRUCT__entry( + __field( int, paths ) + __field( int, stream ) + ), + + TP_fast_assign( + tp_assign(paths, paths) + tp_assign(stream, stream) + ), + + TP_printk("%s: found %d paths\n", + __entry->stream ? "capture" : "playback", __entry->paths) +) +#endif + +TRACE_EVENT(snd_soc_jack_irq, + + TP_PROTO(const char *name), + + TP_ARGS(name), + + TP_STRUCT__entry( + __string( name, name ) + ), + + TP_fast_assign( + tp_strcpy(name, name) + ), + + TP_printk("%s", __get_str(name)) +) + +TRACE_EVENT(snd_soc_jack_report, + + TP_PROTO(struct snd_soc_jack *jack, int mask, int val), + + TP_ARGS(jack, mask, val), + + TP_STRUCT__entry( + __string( name, jack->jack->name ) + __field( int, mask ) + __field( int, val ) + ), + + TP_fast_assign( + tp_strcpy(name, jack->jack->name) + tp_assign(mask, mask) + tp_assign(val, val) + ), + + TP_printk("jack=%s %x/%x", __get_str(name), (int)__entry->val, + (int)__entry->mask) +) + +TRACE_EVENT(snd_soc_jack_notify, + + TP_PROTO(struct snd_soc_jack *jack, int val), + + TP_ARGS(jack, val), + + TP_STRUCT__entry( + __string( name, jack->jack->name ) + __field( int, val ) + ), + + TP_fast_assign( + tp_strcpy(name, jack->jack->name) + tp_assign(val, val) + ), + + TP_printk("jack=%s %x", __get_str(name), (int)__entry->val) +) + +TRACE_EVENT(snd_soc_cache_sync, + + TP_PROTO(struct snd_soc_codec *codec, const char *type, + const char *status), + + TP_ARGS(codec, type, status), + + TP_STRUCT__entry( + __string( name, codec->name ) + __string( status, status ) + __string( type, type ) + __field( int, id ) + ), + + TP_fast_assign( + tp_strcpy(name, codec->name) + tp_strcpy(status, status) + tp_strcpy(type, type) + tp_assign(id, codec->id) + ), + + TP_printk("codec=%s.%d type=%s status=%s", __get_str(name), + (int)__entry->id, __get_str(type), __get_str(status)) +) + +#endif /* _TRACE_ASOC_H */ + +/* This part must be outside protection */ +#include "../../../probes/define_trace.h" --- linux-3.11.0.orig/ubuntu/lttng/instrumentation/events/lttng-module/syscalls.h +++ linux-3.11.0/ubuntu/lttng/instrumentation/events/lttng-module/syscalls.h @@ -0,0 +1,76 @@ +#undef TRACE_SYSTEM +#define TRACE_SYSTEM raw_syscalls +#define TRACE_INCLUDE_FILE syscalls + +#if !defined(_TRACE_EVENTS_SYSCALLS_H) || defined(TRACE_HEADER_MULTI_READ) +#define _TRACE_EVENTS_SYSCALLS_H + +#include + +#ifdef CONFIG_HAVE_SYSCALL_TRACEPOINTS + +#ifndef _TRACE_SYSCALLS_DEF_ +#define _TRACE_SYSCALLS_DEF_ + +#include +#include + +#endif /* _TRACE_SYSCALLS_DEF_ */ + +TRACE_EVENT(sys_enter, + + TP_PROTO(struct pt_regs *regs, long id), + + TP_ARGS(regs, id), + + TP_STRUCT__entry( + __field( long, id ) + __array( unsigned long, args, 6 ) + ), + + TP_fast_assign( + tp_assign(id, id) + { + tp_memcpy(args, + ({ + unsigned long args_copy[6]; + syscall_get_arguments(current, regs, + 0, 6, args_copy); + args_copy; + }), 6 * sizeof(unsigned long)); + } + ), + + TP_printk("NR %ld (%lx, %lx, %lx, %lx, %lx, %lx)", + __entry->id, + __entry->args[0], __entry->args[1], __entry->args[2], + __entry->args[3], __entry->args[4], __entry->args[5]) +) + +TRACE_EVENT(sys_exit, + + TP_PROTO(struct pt_regs *regs, long ret), + + TP_ARGS(regs, ret), + + TP_STRUCT__entry( + __field( long, id ) + __field( long, ret ) + ), + + TP_fast_assign( + tp_assign(id, syscall_get_nr(current, regs)) + tp_assign(ret, ret) + ), + + TP_printk("NR %ld = %ld", + __entry->id, __entry->ret) +) + +#endif /* CONFIG_HAVE_SYSCALL_TRACEPOINTS */ + +#endif /* _TRACE_EVENTS_SYSCALLS_H */ + +/* This part must be outside protection */ +#include "../../../probes/define_trace.h" + --- linux-3.11.0.orig/ubuntu/lttng/instrumentation/events/lttng-module/skb.h +++ linux-3.11.0/ubuntu/lttng/instrumentation/events/lttng-module/skb.h @@ -0,0 +1,84 @@ +#undef TRACE_SYSTEM +#define TRACE_SYSTEM skb + +#if !defined(_TRACE_SKB_H) || defined(TRACE_HEADER_MULTI_READ) +#define _TRACE_SKB_H + +#include +#include +#include +#include + +/* + * Tracepoint for free an sk_buff: + */ +TRACE_EVENT_MAP(kfree_skb, + + skb_kfree, + + TP_PROTO(struct sk_buff *skb, void *location), + + TP_ARGS(skb, location), + + TP_STRUCT__entry( + __field( void *, skbaddr ) + __field( void *, location ) + __field( unsigned short, protocol ) + ), + + TP_fast_assign( + tp_assign(skbaddr, skb) + tp_assign(location, location) + tp_assign(protocol, ntohs(skb->protocol)) + ), + + TP_printk("skbaddr=%p protocol=%u location=%p", + __entry->skbaddr, __entry->protocol, __entry->location) +) + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,37)) +TRACE_EVENT_MAP(consume_skb, + + skb_consume, + + TP_PROTO(struct sk_buff *skb), + + TP_ARGS(skb), + + TP_STRUCT__entry( + __field( void *, skbaddr ) + ), + + TP_fast_assign( + tp_assign(skbaddr, skb) + ), + + TP_printk("skbaddr=%p", __entry->skbaddr) +) +#endif + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,32)) +TRACE_EVENT(skb_copy_datagram_iovec, + + TP_PROTO(const struct sk_buff *skb, int len), + + TP_ARGS(skb, len), + + TP_STRUCT__entry( + __field( const void *, skbaddr ) + __field( int, len ) + ), + + TP_fast_assign( + tp_assign(skbaddr, skb) + tp_assign(len, len) + ), + + TP_printk("skbaddr=%p len=%d", __entry->skbaddr, __entry->len) +) +#endif + +#endif /* _TRACE_SKB_H */ + +/* This part must be outside protection */ +#include "../../../probes/define_trace.h" --- linux-3.11.0.orig/ubuntu/lttng/instrumentation/events/lttng-module/rpm.h +++ linux-3.11.0/ubuntu/lttng/instrumentation/events/lttng-module/rpm.h @@ -0,0 +1,101 @@ + +#undef TRACE_SYSTEM +#define TRACE_SYSTEM rpm + +#if !defined(_TRACE_RUNTIME_POWER_H) || defined(TRACE_HEADER_MULTI_READ) +#define _TRACE_RUNTIME_POWER_H + +#include +#include + +#ifndef _TRACE_RPM_DEF_ +#define _TRACE_RPM_DEF_ +struct device; +#endif + +/* + * The rpm_internal events are used for tracing some important + * runtime pm internal functions. + */ +DECLARE_EVENT_CLASS(rpm_internal, + + TP_PROTO(struct device *dev, int flags), + + TP_ARGS(dev, flags), + + TP_STRUCT__entry( + __string( name, dev_name(dev) ) + __field( int, flags ) + __field( int , usage_count ) + __field( int , disable_depth ) + __field( int , runtime_auto ) + __field( int , request_pending ) + __field( int , irq_safe ) + __field( int , child_count ) + ), + + TP_fast_assign( + tp_strcpy(name, dev_name(dev)) + tp_assign(flags, flags) + tp_assign(usage_count, atomic_read(&dev->power.usage_count)) + tp_assign(disable_depth, dev->power.disable_depth) + tp_assign(runtime_auto, dev->power.runtime_auto) + tp_assign(request_pending, dev->power.request_pending) + tp_assign(irq_safe, dev->power.irq_safe) + tp_assign(child_count, atomic_read(&dev->power.child_count)) + ), + + TP_printk("%s flags-%x cnt-%-2d dep-%-2d auto-%-1d p-%-1d" + " irq-%-1d child-%d", + __get_str(name), __entry->flags, + __entry->usage_count, + __entry->disable_depth, + __entry->runtime_auto, + __entry->request_pending, + __entry->irq_safe, + __entry->child_count + ) +) +DEFINE_EVENT(rpm_internal, rpm_suspend, + + TP_PROTO(struct device *dev, int flags), + + TP_ARGS(dev, flags) +) +DEFINE_EVENT(rpm_internal, rpm_resume, + + TP_PROTO(struct device *dev, int flags), + + TP_ARGS(dev, flags) +) +DEFINE_EVENT(rpm_internal, rpm_idle, + + TP_PROTO(struct device *dev, int flags), + + TP_ARGS(dev, flags) +) + +TRACE_EVENT(rpm_return_int, + TP_PROTO(struct device *dev, unsigned long ip, int ret), + TP_ARGS(dev, ip, ret), + + TP_STRUCT__entry( + __string( name, dev_name(dev)) + __field( unsigned long, ip ) + __field( int, ret ) + ), + + TP_fast_assign( + tp_strcpy(name, dev_name(dev)) + tp_assign(ip, ip) + tp_assign(ret, ret) + ), + + TP_printk("%pS:%s ret=%d", (void *)__entry->ip, __get_str(name), + __entry->ret) +) + +#endif /* _TRACE_RUNTIME_POWER_H */ + +/* This part must be outside protection */ +#include "../../../probes/define_trace.h" --- linux-3.11.0.orig/ubuntu/lttng/instrumentation/events/lttng-module/module.h +++ linux-3.11.0/ubuntu/lttng/instrumentation/events/lttng-module/module.h @@ -0,0 +1,157 @@ +/* + * Because linux/module.h has tracepoints in the header, and ftrace.h + * eventually includes this file, define_trace.h includes linux/module.h + * But we do not want the module.h to override the TRACE_SYSTEM macro + * variable that define_trace.h is processing, so we only set it + * when module events are being processed, which would happen when + * CREATE_TRACE_POINTS is defined. + */ +#ifdef CREATE_TRACE_POINTS +#undef TRACE_SYSTEM +#define TRACE_SYSTEM module +#endif + +#if !defined(_TRACE_MODULE_H) || defined(TRACE_HEADER_MULTI_READ) +#define _TRACE_MODULE_H + +#include +#include + +#ifdef CONFIG_MODULES + +#ifndef _TRACE_MODULE_DEF +#define _TRACE_MODULE_DEF +struct module; + +#define show_module_flags(flags) __print_flags(flags, "", \ + { (1UL << TAINT_PROPRIETARY_MODULE), "P" }, \ + { (1UL << TAINT_FORCED_MODULE), "F" }, \ + { (1UL << TAINT_CRAP), "C" }) +#endif + +TRACE_EVENT(module_load, + + TP_PROTO(struct module *mod), + + TP_ARGS(mod), + + TP_STRUCT__entry( + __field( unsigned int, taints ) + __string( name, mod->name ) + ), + + TP_fast_assign( + tp_assign(taints, mod->taints) + tp_strcpy(name, mod->name) + ), + + TP_printk("%s %s", __get_str(name), show_module_flags(__entry->taints)) +) + +TRACE_EVENT(module_free, + + TP_PROTO(struct module *mod), + + TP_ARGS(mod), + + TP_STRUCT__entry( + __string( name, mod->name ) + ), + + TP_fast_assign( + tp_strcpy(name, mod->name) + ), + + TP_printk("%s", __get_str(name)) +) + +#ifdef CONFIG_MODULE_UNLOAD +/* trace_module_get/put are only used if CONFIG_MODULE_UNLOAD is defined */ + +DECLARE_EVENT_CLASS(module_refcnt, + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,35)) + TP_PROTO(struct module *mod, unsigned long ip), + + TP_ARGS(mod, ip), +#else + TP_PROTO(struct module *mod, unsigned long ip, int refcnt), + + TP_ARGS(mod, ip, refcnt), +#endif + + TP_STRUCT__entry( + __field( unsigned long, ip ) + __field( int, refcnt ) + __string( name, mod->name ) + ), + + TP_fast_assign( + tp_assign(ip, ip) +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,35)) + tp_assign(refcnt, __this_cpu_read(mod->refptr->incs) + __this_cpu_read(mod->refptr->decs)) +#else + tp_assign(refcnt, refcnt) +#endif + tp_strcpy(name, mod->name) + ), + + TP_printk("%s call_site=%pf refcnt=%d", + __get_str(name), (void *)__entry->ip, __entry->refcnt) +) + +DEFINE_EVENT(module_refcnt, module_get, + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,35)) + TP_PROTO(struct module *mod, unsigned long ip), + + TP_ARGS(mod, ip) +#else + TP_PROTO(struct module *mod, unsigned long ip, int refcnt), + + TP_ARGS(mod, ip, refcnt) +#endif +) + +DEFINE_EVENT(module_refcnt, module_put, + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,35)) + TP_PROTO(struct module *mod, unsigned long ip), + + TP_ARGS(mod, ip) +#else + TP_PROTO(struct module *mod, unsigned long ip, int refcnt), + + TP_ARGS(mod, ip, refcnt) +#endif +) +#endif /* CONFIG_MODULE_UNLOAD */ + +TRACE_EVENT(module_request, + + TP_PROTO(char *name, bool wait, unsigned long ip), + + TP_ARGS(name, wait, ip), + + TP_STRUCT__entry( + __field( unsigned long, ip ) + __field( bool, wait ) + __string( name, name ) + ), + + TP_fast_assign( + tp_assign(ip, ip) + tp_assign(wait, wait) + tp_strcpy(name, name) + ), + + TP_printk("%s wait=%d call_site=%pf", + __get_str(name), (int)__entry->wait, (void *)__entry->ip) +) + +#endif /* CONFIG_MODULES */ + +#endif /* _TRACE_MODULE_H */ + +/* This part must be outside protection */ +#include "../../../probes/define_trace.h" --- linux-3.11.0.orig/ubuntu/lttng/instrumentation/events/lttng-module/jbd.h +++ linux-3.11.0/ubuntu/lttng/instrumentation/events/lttng-module/jbd.h @@ -0,0 +1,268 @@ +#undef TRACE_SYSTEM +#define TRACE_SYSTEM jbd + +#if !defined(_TRACE_JBD_H) || defined(TRACE_HEADER_MULTI_READ) +#define _TRACE_JBD_H + +#include +#include +#include + +TRACE_EVENT(jbd_checkpoint, + + TP_PROTO(journal_t *journal, int result), + + TP_ARGS(journal, result), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( int, result ) + ), + + TP_fast_assign( + tp_assign(dev, journal->j_fs_dev->bd_dev) + tp_assign(result, result) + ), + + TP_printk("dev %d,%d result %d", + MAJOR(__entry->dev), MINOR(__entry->dev), + __entry->result) +) + +DECLARE_EVENT_CLASS(jbd_commit, + + TP_PROTO(journal_t *journal, transaction_t *commit_transaction), + + TP_ARGS(journal, commit_transaction), + + TP_STRUCT__entry( + __field( dev_t, dev ) +#if (LINUX_VERSION_CODE < KERNEL_VERSION(3,5,0)) + __field( char, sync_commit ) +#endif + __field( int, transaction ) + ), + + TP_fast_assign( + tp_assign(dev, journal->j_fs_dev->bd_dev) +#if (LINUX_VERSION_CODE < KERNEL_VERSION(3,5,0)) + tp_assign(sync_commit, commit_transaction->t_synchronous_commit) +#endif + tp_assign(transaction, commit_transaction->t_tid) + ), + +#if (LINUX_VERSION_CODE < KERNEL_VERSION(3,5,0)) + TP_printk("dev %d,%d transaction %d sync %d", + MAJOR(__entry->dev), MINOR(__entry->dev), + __entry->transaction, __entry->sync_commit) +#else + TP_printk("dev %d,%d transaction %d", + MAJOR(__entry->dev), MINOR(__entry->dev), + __entry->transaction) +#endif +) + +DEFINE_EVENT(jbd_commit, jbd_start_commit, + + TP_PROTO(journal_t *journal, transaction_t *commit_transaction), + + TP_ARGS(journal, commit_transaction) +) + +DEFINE_EVENT(jbd_commit, jbd_commit_locking, + + TP_PROTO(journal_t *journal, transaction_t *commit_transaction), + + TP_ARGS(journal, commit_transaction) +) + +DEFINE_EVENT(jbd_commit, jbd_commit_flushing, + + TP_PROTO(journal_t *journal, transaction_t *commit_transaction), + + TP_ARGS(journal, commit_transaction) +) + +DEFINE_EVENT(jbd_commit, jbd_commit_logging, + + TP_PROTO(journal_t *journal, transaction_t *commit_transaction), + + TP_ARGS(journal, commit_transaction) +) + +TRACE_EVENT(jbd_drop_transaction, + + TP_PROTO(journal_t *journal, transaction_t *commit_transaction), + + TP_ARGS(journal, commit_transaction), + + TP_STRUCT__entry( + __field( dev_t, dev ) +#if (LINUX_VERSION_CODE < KERNEL_VERSION(3,5,0)) + __field( char, sync_commit ) +#endif + __field( int, transaction ) + ), + + TP_fast_assign( + tp_assign(dev, journal->j_fs_dev->bd_dev) +#if (LINUX_VERSION_CODE < KERNEL_VERSION(3,5,0)) + tp_assign(sync_commit, commit_transaction->t_synchronous_commit) +#endif + tp_assign(transaction, commit_transaction->t_tid) + ), + +#if (LINUX_VERSION_CODE < KERNEL_VERSION(3,5,0)) + TP_printk("dev %d,%d transaction %d sync %d", + MAJOR(__entry->dev), MINOR(__entry->dev), + __entry->transaction, __entry->sync_commit) +#else + TP_printk("dev %d,%d transaction %d", + MAJOR(__entry->dev), MINOR(__entry->dev), + __entry->transaction) +#endif +) + +TRACE_EVENT(jbd_end_commit, + TP_PROTO(journal_t *journal, transaction_t *commit_transaction), + + TP_ARGS(journal, commit_transaction), + + TP_STRUCT__entry( + __field( dev_t, dev ) +#if (LINUX_VERSION_CODE < KERNEL_VERSION(3,5,0)) + __field( char, sync_commit ) +#endif + __field( int, transaction ) + __field( int, head ) + ), + + TP_fast_assign( + tp_assign(dev, journal->j_fs_dev->bd_dev) +#if (LINUX_VERSION_CODE < KERNEL_VERSION(3,5,0)) + tp_assign(sync_commit, commit_transaction->t_synchronous_commit) +#endif + tp_assign(transaction, commit_transaction->t_tid) + tp_assign(head, journal->j_tail_sequence) + ), + +#if (LINUX_VERSION_CODE < KERNEL_VERSION(3,5,0)) + TP_printk("dev %d,%d transaction %d sync %d head %d", + MAJOR(__entry->dev), MINOR(__entry->dev), + __entry->transaction, __entry->sync_commit, __entry->head) +#else + TP_printk("dev %d,%d transaction %d head %d", + MAJOR(__entry->dev), MINOR(__entry->dev), + __entry->transaction, __entry->head) +#endif +) + +TRACE_EVENT(jbd_do_submit_data, + TP_PROTO(journal_t *journal, transaction_t *commit_transaction), + + TP_ARGS(journal, commit_transaction), + + TP_STRUCT__entry( + __field( dev_t, dev ) +#if (LINUX_VERSION_CODE < KERNEL_VERSION(3,5,0)) + __field( char, sync_commit ) +#endif + __field( int, transaction ) + ), + + TP_fast_assign( + tp_assign(dev, journal->j_fs_dev->bd_dev) +#if (LINUX_VERSION_CODE < KERNEL_VERSION(3,5,0)) + tp_assign(sync_commit, commit_transaction->t_synchronous_commit) +#endif + tp_assign(transaction, commit_transaction->t_tid) + ), + +#if (LINUX_VERSION_CODE < KERNEL_VERSION(3,5,0)) + TP_printk("dev %d,%d transaction %d sync %d", + MAJOR(__entry->dev), MINOR(__entry->dev), + __entry->transaction, __entry->sync_commit) +#else + TP_printk("dev %d,%d transaction %d", + MAJOR(__entry->dev), MINOR(__entry->dev), + __entry->transaction) +#endif +) + +TRACE_EVENT(jbd_cleanup_journal_tail, + + TP_PROTO(journal_t *journal, tid_t first_tid, + unsigned long block_nr, unsigned long freed), + + TP_ARGS(journal, first_tid, block_nr, freed), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( tid_t, tail_sequence ) + __field( tid_t, first_tid ) + __field(unsigned long, block_nr ) + __field(unsigned long, freed ) + ), + + TP_fast_assign( + tp_assign(dev, journal->j_fs_dev->bd_dev) + tp_assign(tail_sequence, journal->j_tail_sequence) + tp_assign(first_tid, first_tid) + tp_assign(block_nr, block_nr) + tp_assign(freed, freed) + ), + + TP_printk("dev %d,%d from %u to %u offset %lu freed %lu", + MAJOR(__entry->dev), MINOR(__entry->dev), + __entry->tail_sequence, __entry->first_tid, + __entry->block_nr, __entry->freed) +) + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,5,0)) +TRACE_EVENT_MAP(journal_write_superblock, + + jbd_journal_write_superblock, + + TP_PROTO(journal_t *journal, int write_op), + + TP_ARGS(journal, write_op), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( int, write_op ) + ), + + TP_fast_assign( + tp_assign(dev, journal->j_fs_dev->bd_dev) + tp_assign(write_op, write_op) + ), + + TP_printk("dev %d,%d write_op %x", MAJOR(__entry->dev), + MINOR(__entry->dev), __entry->write_op) +) +#else +TRACE_EVENT(jbd_update_superblock_end, + TP_PROTO(journal_t *journal, int wait), + + TP_ARGS(journal, wait), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( int, wait ) + ), + + TP_fast_assign( + tp_assign(dev, journal->j_fs_dev->bd_dev) + tp_assign(wait, wait) + ), + + TP_printk("dev %d,%d wait %d", + MAJOR(__entry->dev), MINOR(__entry->dev), + __entry->wait) +) +#endif + +#endif /* _TRACE_JBD_H */ + +/* This part must be outside protection */ +#include "../../../probes/define_trace.h" --- linux-3.11.0.orig/ubuntu/lttng/instrumentation/events/lttng-module/btrfs.h +++ linux-3.11.0/ubuntu/lttng/instrumentation/events/lttng-module/btrfs.h @@ -0,0 +1,1102 @@ +#undef TRACE_SYSTEM +#define TRACE_SYSTEM btrfs + +#if !defined(_TRACE_BTRFS_H) || defined(TRACE_HEADER_MULTI_READ) +#define _TRACE_BTRFS_H + +#include +#include +#include +#include + +#ifndef _TRACE_BTRFS_DEF_ +#define _TRACE_BTRFS_DEF_ +struct btrfs_root; +struct btrfs_fs_info; +struct btrfs_inode; +struct extent_map; +struct btrfs_ordered_extent; +struct btrfs_delayed_ref_node; +struct btrfs_delayed_tree_ref; +struct btrfs_delayed_data_ref; +struct btrfs_delayed_ref_head; +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,3,0)) +struct btrfs_block_group_cache; +struct btrfs_free_cluster; +#endif +struct map_lookup; +struct extent_buffer; +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,4,0)) +struct extent_state; +#endif +#endif + +#define show_ref_type(type) \ + __print_symbolic(type, \ + { BTRFS_TREE_BLOCK_REF_KEY, "TREE_BLOCK_REF" }, \ + { BTRFS_EXTENT_DATA_REF_KEY, "EXTENT_DATA_REF" }, \ + { BTRFS_EXTENT_REF_V0_KEY, "EXTENT_REF_V0" }, \ + { BTRFS_SHARED_BLOCK_REF_KEY, "SHARED_BLOCK_REF" }, \ + { BTRFS_SHARED_DATA_REF_KEY, "SHARED_DATA_REF" }) + + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,11,0)) +#define __show_root_type(obj) \ + __print_symbolic_u64(obj, \ + { BTRFS_ROOT_TREE_OBJECTID, "ROOT_TREE" }, \ + { BTRFS_EXTENT_TREE_OBJECTID, "EXTENT_TREE" }, \ + { BTRFS_CHUNK_TREE_OBJECTID, "CHUNK_TREE" }, \ + { BTRFS_DEV_TREE_OBJECTID, "DEV_TREE" }, \ + { BTRFS_FS_TREE_OBJECTID, "FS_TREE" }, \ + { BTRFS_ROOT_TREE_DIR_OBJECTID, "ROOT_TREE_DIR" }, \ + { BTRFS_CSUM_TREE_OBJECTID, "CSUM_TREE" }, \ + { BTRFS_TREE_LOG_OBJECTID, "TREE_LOG" }, \ + { BTRFS_QUOTA_TREE_OBJECTID, "QUOTA_TREE" }, \ + { BTRFS_TREE_RELOC_OBJECTID, "TREE_RELOC" }, \ + { BTRFS_DATA_RELOC_TREE_OBJECTID, "DATA_RELOC_TREE" }) +#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,40)) +#define __show_root_type(obj) \ + __print_symbolic_u64(obj, \ + { BTRFS_ROOT_TREE_OBJECTID, "ROOT_TREE" }, \ + { BTRFS_EXTENT_TREE_OBJECTID, "EXTENT_TREE" }, \ + { BTRFS_CHUNK_TREE_OBJECTID, "CHUNK_TREE" }, \ + { BTRFS_DEV_TREE_OBJECTID, "DEV_TREE" }, \ + { BTRFS_FS_TREE_OBJECTID, "FS_TREE" }, \ + { BTRFS_ROOT_TREE_DIR_OBJECTID, "ROOT_TREE_DIR" }, \ + { BTRFS_CSUM_TREE_OBJECTID, "CSUM_TREE" }, \ + { BTRFS_TREE_LOG_OBJECTID, "TREE_LOG" }, \ + { BTRFS_TREE_RELOC_OBJECTID, "TREE_RELOC" }, \ + { BTRFS_DATA_RELOC_TREE_OBJECTID, "DATA_RELOC_TREE" }) +#else +#define __show_root_type(obj) \ + __print_symbolic(obj, \ + { BTRFS_ROOT_TREE_OBJECTID, "ROOT_TREE" }, \ + { BTRFS_EXTENT_TREE_OBJECTID, "EXTENT_TREE" }, \ + { BTRFS_CHUNK_TREE_OBJECTID, "CHUNK_TREE" }, \ + { BTRFS_DEV_TREE_OBJECTID, "DEV_TREE" }, \ + { BTRFS_FS_TREE_OBJECTID, "FS_TREE" }, \ + { BTRFS_ROOT_TREE_DIR_OBJECTID, "ROOT_TREE_DIR" }, \ + { BTRFS_CSUM_TREE_OBJECTID, "CSUM_TREE" }, \ + { BTRFS_TREE_LOG_OBJECTID, "TREE_LOG" }, \ + { BTRFS_TREE_RELOC_OBJECTID, "TREE_RELOC" }, \ + { BTRFS_DATA_RELOC_TREE_OBJECTID, "DATA_RELOC_TREE" }) +#endif + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,11,0)) +#define show_root_type(obj) \ + obj, ((obj >= BTRFS_DATA_RELOC_TREE_OBJECTID) || \ + (obj >= BTRFS_ROOT_TREE_OBJECTID && \ + obj <= BTRFS_QUOTA_TREE_OBJECTID)) ? __show_root_type(obj) : "-" +#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3,8,0)) +#define show_root_type(obj) \ + obj, ((obj >= BTRFS_DATA_RELOC_TREE_OBJECTID) || \ + (obj >= BTRFS_ROOT_TREE_OBJECTID && \ + obj <= BTRFS_CSUM_TREE_OBJECTID)) ? __show_root_type(obj) : "-" +#else /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,8,0)) */ +#define show_root_type(obj) \ + obj, ((obj >= BTRFS_DATA_RELOC_TREE_OBJECTID) || \ + (obj <= BTRFS_CSUM_TREE_OBJECTID )) ? __show_root_type(obj) : "-" +#endif /* #else #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,8,0)) */ + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,11,0)) + +#define BTRFS_GROUP_FLAGS \ + { BTRFS_BLOCK_GROUP_DATA, "DATA"}, \ + { BTRFS_BLOCK_GROUP_SYSTEM, "SYSTEM"}, \ + { BTRFS_BLOCK_GROUP_METADATA, "METADATA"}, \ + { BTRFS_BLOCK_GROUP_RAID0, "RAID0"}, \ + { BTRFS_BLOCK_GROUP_RAID1, "RAID1"}, \ + { BTRFS_BLOCK_GROUP_DUP, "DUP"}, \ + { BTRFS_BLOCK_GROUP_RAID10, "RAID10"}, \ + { BTRFS_BLOCK_GROUP_RAID5, "RAID5"}, \ + { BTRFS_BLOCK_GROUP_RAID6, "RAID6"} + +#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3,3,0)) + +#define BTRFS_GROUP_FLAGS \ + { BTRFS_BLOCK_GROUP_DATA, "DATA"}, \ + { BTRFS_BLOCK_GROUP_SYSTEM, "SYSTEM"}, \ + { BTRFS_BLOCK_GROUP_METADATA, "METADATA"}, \ + { BTRFS_BLOCK_GROUP_RAID0, "RAID0"}, \ + { BTRFS_BLOCK_GROUP_RAID1, "RAID1"}, \ + { BTRFS_BLOCK_GROUP_DUP, "DUP"}, \ + { BTRFS_BLOCK_GROUP_RAID10, "RAID10"} + +#define BTRFS_UUID_SIZE 16 + +#endif + +TRACE_EVENT(btrfs_transaction_commit, + + TP_PROTO(struct btrfs_root *root), + + TP_ARGS(root), + + TP_STRUCT__entry( + __field( u64, generation ) + __field( u64, root_objectid ) + ), + + TP_fast_assign( + tp_assign(generation, root->fs_info->generation) + tp_assign(root_objectid, root->root_key.objectid) + ), + + TP_printk("root = %llu(%s), gen = %llu", + show_root_type(__entry->root_objectid), + (unsigned long long)__entry->generation) +) + +DECLARE_EVENT_CLASS(btrfs__inode, + + TP_PROTO(struct inode *inode), + + TP_ARGS(inode), + + TP_STRUCT__entry( + __field( ino_t, ino ) + __field( blkcnt_t, blocks ) + __field( u64, disk_i_size ) + __field( u64, generation ) + __field( u64, last_trans ) + __field( u64, logged_trans ) + __field( u64, root_objectid ) + ), + + TP_fast_assign( + tp_assign(ino, inode->i_ino) + tp_assign(blocks, inode->i_blocks) + tp_assign(disk_i_size, BTRFS_I(inode)->disk_i_size) + tp_assign(generation, BTRFS_I(inode)->generation) + tp_assign(last_trans, BTRFS_I(inode)->last_trans) + tp_assign(logged_trans, BTRFS_I(inode)->logged_trans) + tp_assign(root_objectid, + BTRFS_I(inode)->root->root_key.objectid) + ), + + TP_printk("root = %llu(%s), gen = %llu, ino = %lu, blocks = %llu, " + "disk_i_size = %llu, last_trans = %llu, logged_trans = %llu", + show_root_type(__entry->root_objectid), + (unsigned long long)__entry->generation, + (unsigned long)__entry->ino, + (unsigned long long)__entry->blocks, + (unsigned long long)__entry->disk_i_size, + (unsigned long long)__entry->last_trans, + (unsigned long long)__entry->logged_trans) +) + +DEFINE_EVENT(btrfs__inode, btrfs_inode_new, + + TP_PROTO(struct inode *inode), + + TP_ARGS(inode) +) + +DEFINE_EVENT(btrfs__inode, btrfs_inode_request, + + TP_PROTO(struct inode *inode), + + TP_ARGS(inode) +) + +DEFINE_EVENT(btrfs__inode, btrfs_inode_evict, + + TP_PROTO(struct inode *inode), + + TP_ARGS(inode) +) + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,40)) +#define __show_map_type(type) \ + __print_symbolic_u64(type, \ + { EXTENT_MAP_LAST_BYTE, "LAST_BYTE" }, \ + { EXTENT_MAP_HOLE, "HOLE" }, \ + { EXTENT_MAP_INLINE, "INLINE" }, \ + { EXTENT_MAP_DELALLOC, "DELALLOC" }) +#else +#define __show_map_type(type) \ + __print_symbolic(type, \ + { EXTENT_MAP_LAST_BYTE, "LAST_BYTE" }, \ + { EXTENT_MAP_HOLE, "HOLE" }, \ + { EXTENT_MAP_INLINE, "INLINE" }, \ + { EXTENT_MAP_DELALLOC, "DELALLOC" }) +#endif + +#define show_map_type(type) \ + type, (type >= EXTENT_MAP_LAST_BYTE) ? "-" : __show_map_type(type) + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,11,0)) + +#define show_map_flags(flag) \ + __print_flags(flag, "|", \ + { EXTENT_FLAG_PINNED, "PINNED" }, \ + { EXTENT_FLAG_COMPRESSED, "COMPRESSED" }, \ + { EXTENT_FLAG_VACANCY, "VACANCY" }, \ + { EXTENT_FLAG_PREALLOC, "PREALLOC" }, \ + { EXTENT_FLAG_LOGGING, "LOGGING" }, \ + { EXTENT_FLAG_FILLING, "FILLING" }) + +#else + +#define show_map_flags(flag) \ + __print_flags(flag, "|", \ + { EXTENT_FLAG_PINNED, "PINNED" }, \ + { EXTENT_FLAG_COMPRESSED, "COMPRESSED" }, \ + { EXTENT_FLAG_VACANCY, "VACANCY" }, \ + { EXTENT_FLAG_PREALLOC, "PREALLOC" }) + +#endif + +TRACE_EVENT(btrfs_get_extent, + + TP_PROTO(struct btrfs_root *root, struct extent_map *map), + + TP_ARGS(root, map), + + TP_STRUCT__entry( + __field( u64, root_objectid ) + __field( u64, start ) + __field( u64, len ) + __field( u64, orig_start ) + __field( u64, block_start ) + __field( u64, block_len ) + __field( unsigned long, flags ) + __field( int, refs ) + __field( unsigned int, compress_type ) + ), + + TP_fast_assign( + tp_assign(root_objectid, root->root_key.objectid) + tp_assign(start, map->start) + tp_assign(len, map->len) + tp_assign(orig_start, map->orig_start) + tp_assign(block_start, map->block_start) + tp_assign(block_len, map->block_len) + tp_assign(flags, map->flags) + tp_assign(refs, atomic_read(&map->refs)) + tp_assign(compress_type, map->compress_type) + ), + + TP_printk("root = %llu(%s), start = %llu, len = %llu, " + "orig_start = %llu, block_start = %llu(%s), " + "block_len = %llu, flags = %s, refs = %u, " + "compress_type = %u", + show_root_type(__entry->root_objectid), + (unsigned long long)__entry->start, + (unsigned long long)__entry->len, + (unsigned long long)__entry->orig_start, + show_map_type(__entry->block_start), + (unsigned long long)__entry->block_len, + show_map_flags(__entry->flags), + __entry->refs, __entry->compress_type) +) + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,11,0)) + +#define show_ordered_flags(flags) \ + __print_symbolic(flags, \ + { BTRFS_ORDERED_IO_DONE, "IO_DONE" }, \ + { BTRFS_ORDERED_COMPLETE, "COMPLETE" }, \ + { BTRFS_ORDERED_NOCOW, "NOCOW" }, \ + { BTRFS_ORDERED_COMPRESSED, "COMPRESSED" }, \ + { BTRFS_ORDERED_PREALLOC, "PREALLOC" }, \ + { BTRFS_ORDERED_DIRECT, "DIRECT" }, \ + { BTRFS_ORDERED_IOERR, "IOERR" }, \ + { BTRFS_ORDERED_UPDATED_ISIZE, "UPDATED_ISIZE" }, \ + { BTRFS_ORDERED_LOGGED_CSUM, "LOGGED_CSUM" }) + +#else + +#define show_ordered_flags(flags) \ + __print_symbolic(flags, \ + { BTRFS_ORDERED_IO_DONE, "IO_DONE" }, \ + { BTRFS_ORDERED_COMPLETE, "COMPLETE" }, \ + { BTRFS_ORDERED_NOCOW, "NOCOW" }, \ + { BTRFS_ORDERED_COMPRESSED, "COMPRESSED" }, \ + { BTRFS_ORDERED_PREALLOC, "PREALLOC" }, \ + { BTRFS_ORDERED_DIRECT, "DIRECT" }) + +#endif + +DECLARE_EVENT_CLASS(btrfs__ordered_extent, + + TP_PROTO(struct inode *inode, struct btrfs_ordered_extent *ordered), + + TP_ARGS(inode, ordered), + + TP_STRUCT__entry( + __field( ino_t, ino ) + __field( u64, file_offset ) + __field( u64, start ) + __field( u64, len ) + __field( u64, disk_len ) + __field( u64, bytes_left ) + __field( unsigned long, flags ) + __field( int, compress_type ) + __field( int, refs ) + __field( u64, root_objectid ) + ), + + TP_fast_assign( + tp_assign(ino, inode->i_ino) + tp_assign(file_offset, ordered->file_offset) + tp_assign(start, ordered->start) + tp_assign(len, ordered->len) + tp_assign(disk_len, ordered->disk_len) + tp_assign(bytes_left, ordered->bytes_left) + tp_assign(flags, ordered->flags) + tp_assign(compress_type, ordered->compress_type) + tp_assign(refs, atomic_read(&ordered->refs)) + tp_assign(root_objectid, + BTRFS_I(inode)->root->root_key.objectid) + ), + + TP_printk("root = %llu(%s), ino = %llu, file_offset = %llu, " + "start = %llu, len = %llu, disk_len = %llu, " + "bytes_left = %llu, flags = %s, compress_type = %d, " + "refs = %d", + show_root_type(__entry->root_objectid), + (unsigned long long)__entry->ino, + (unsigned long long)__entry->file_offset, + (unsigned long long)__entry->start, + (unsigned long long)__entry->len, + (unsigned long long)__entry->disk_len, + (unsigned long long)__entry->bytes_left, + show_ordered_flags(__entry->flags), + __entry->compress_type, __entry->refs) +) + +DEFINE_EVENT(btrfs__ordered_extent, btrfs_ordered_extent_add, + + TP_PROTO(struct inode *inode, struct btrfs_ordered_extent *ordered), + + TP_ARGS(inode, ordered) +) + +DEFINE_EVENT(btrfs__ordered_extent, btrfs_ordered_extent_remove, + + TP_PROTO(struct inode *inode, struct btrfs_ordered_extent *ordered), + + TP_ARGS(inode, ordered) +) + +DEFINE_EVENT(btrfs__ordered_extent, btrfs_ordered_extent_start, + + TP_PROTO(struct inode *inode, struct btrfs_ordered_extent *ordered), + + TP_ARGS(inode, ordered) +) + +DEFINE_EVENT(btrfs__ordered_extent, btrfs_ordered_extent_put, + + TP_PROTO(struct inode *inode, struct btrfs_ordered_extent *ordered), + + TP_ARGS(inode, ordered) +) + +DECLARE_EVENT_CLASS(btrfs__writepage, + + TP_PROTO(struct page *page, struct inode *inode, + struct writeback_control *wbc), + + TP_ARGS(page, inode, wbc), + + TP_STRUCT__entry( + __field( ino_t, ino ) + __field( pgoff_t, index ) + __field( long, nr_to_write ) + __field( long, pages_skipped ) + __field( loff_t, range_start ) + __field( loff_t, range_end ) +#if (LINUX_VERSION_CODE < KERNEL_VERSION(3,1,0)) + __field( char, nonblocking ) +#endif + __field( char, for_kupdate ) + __field( char, for_reclaim ) + __field( char, range_cyclic ) + __field( pgoff_t, writeback_index ) + __field( u64, root_objectid ) + ), + + TP_fast_assign( + tp_assign(ino, inode->i_ino) + tp_assign(index, page->index) + tp_assign(nr_to_write, wbc->nr_to_write) + tp_assign(pages_skipped, wbc->pages_skipped) + tp_assign(range_start, wbc->range_start) + tp_assign(range_end, wbc->range_end) +#if (LINUX_VERSION_CODE < KERNEL_VERSION(3,1,0)) + tp_assign(nonblocking, wbc->nonblocking) +#endif + tp_assign(for_kupdate, wbc->for_kupdate) + tp_assign(for_reclaim, wbc->for_reclaim) + tp_assign(range_cyclic, wbc->range_cyclic) + tp_assign(writeback_index, inode->i_mapping->writeback_index) + tp_assign(root_objectid, + BTRFS_I(inode)->root->root_key.objectid) + ), + +#if (LINUX_VERSION_CODE < KERNEL_VERSION(3,1,0)) + TP_printk("root = %llu(%s), ino = %lu, page_index = %lu, " + "nr_to_write = %ld, pages_skipped = %ld, range_start = %llu, " + "range_end = %llu, nonblocking = %d, for_kupdate = %d, " + "for_reclaim = %d, range_cyclic = %d, writeback_index = %lu", + show_root_type(__entry->root_objectid), + (unsigned long)__entry->ino, __entry->index, + __entry->nr_to_write, __entry->pages_skipped, + __entry->range_start, __entry->range_end, + __entry->nonblocking, __entry->for_kupdate, + __entry->for_reclaim, __entry->range_cyclic, + (unsigned long)__entry->writeback_index) +#else + TP_printk("root = %llu(%s), ino = %lu, page_index = %lu, " + "nr_to_write = %ld, pages_skipped = %ld, range_start = %llu, " + "range_end = %llu, for_kupdate = %d, " + "for_reclaim = %d, range_cyclic = %d, writeback_index = %lu", + show_root_type(__entry->root_objectid), + (unsigned long)__entry->ino, __entry->index, + __entry->nr_to_write, __entry->pages_skipped, + __entry->range_start, __entry->range_end, + __entry->for_kupdate, + __entry->for_reclaim, __entry->range_cyclic, + (unsigned long)__entry->writeback_index) +#endif +) + +DEFINE_EVENT(btrfs__writepage, __extent_writepage, + + TP_PROTO(struct page *page, struct inode *inode, + struct writeback_control *wbc), + + TP_ARGS(page, inode, wbc) +) + +TRACE_EVENT(btrfs_writepage_end_io_hook, + + TP_PROTO(struct page *page, u64 start, u64 end, int uptodate), + + TP_ARGS(page, start, end, uptodate), + + TP_STRUCT__entry( + __field( ino_t, ino ) + __field( pgoff_t, index ) + __field( u64, start ) + __field( u64, end ) + __field( int, uptodate ) + __field( u64, root_objectid ) + ), + + TP_fast_assign( + tp_assign(ino, page->mapping->host->i_ino) + tp_assign(index, page->index) + tp_assign(start, start) + tp_assign(end, end) + tp_assign(uptodate, uptodate) + tp_assign(root_objectid, + BTRFS_I(page->mapping->host)->root->root_key.objectid) + ), + + TP_printk("root = %llu(%s), ino = %lu, page_index = %lu, start = %llu, " + "end = %llu, uptodate = %d", + show_root_type(__entry->root_objectid), + (unsigned long)__entry->ino, (unsigned long)__entry->index, + (unsigned long long)__entry->start, + (unsigned long long)__entry->end, __entry->uptodate) +) + +TRACE_EVENT(btrfs_sync_file, + + TP_PROTO(struct file *file, int datasync), + + TP_ARGS(file, datasync), + + TP_STRUCT__entry( + __field( ino_t, ino ) + __field( ino_t, parent ) + __field( int, datasync ) + __field( u64, root_objectid ) + ), + + TP_fast_assign( + tp_assign(ino, file->f_path.dentry->d_inode->i_ino) + tp_assign(parent, file->f_path.dentry->d_parent->d_inode->i_ino) + tp_assign(datasync, datasync) + tp_assign(root_objectid, + BTRFS_I(file->f_path.dentry->d_inode)->root->root_key.objectid) + ), + + TP_printk("root = %llu(%s), ino = %ld, parent = %ld, datasync = %d", + show_root_type(__entry->root_objectid), + (unsigned long)__entry->ino, (unsigned long)__entry->parent, + __entry->datasync) +) + +TRACE_EVENT(btrfs_sync_fs, + + TP_PROTO(int wait), + + TP_ARGS(wait), + + TP_STRUCT__entry( + __field( int, wait ) + ), + + TP_fast_assign( + tp_assign(wait, wait) + ), + + TP_printk("wait = %d", __entry->wait) +) + +#define show_ref_action(action) \ + __print_symbolic(action, \ + { BTRFS_ADD_DELAYED_REF, "ADD_DELAYED_REF" }, \ + { BTRFS_DROP_DELAYED_REF, "DROP_DELAYED_REF" }, \ + { BTRFS_ADD_DELAYED_EXTENT, "ADD_DELAYED_EXTENT" }, \ + { BTRFS_UPDATE_DELAYED_HEAD, "UPDATE_DELAYED_HEAD" }) + + +TRACE_EVENT(btrfs_delayed_tree_ref, + + TP_PROTO(struct btrfs_delayed_ref_node *ref, + struct btrfs_delayed_tree_ref *full_ref, + int action), + + TP_ARGS(ref, full_ref, action), + + TP_STRUCT__entry( + __field( u64, bytenr ) + __field( u64, num_bytes ) + __field( int, action ) + __field( u64, parent ) + __field( u64, ref_root ) + __field( int, level ) + __field( int, type ) +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,7,0)) + __field( u64, seq ) +#endif + ), + + TP_fast_assign( + tp_assign(bytenr, ref->bytenr) + tp_assign(num_bytes, ref->num_bytes) + tp_assign(action, action) + tp_assign(parent, full_ref->parent) + tp_assign(ref_root, full_ref->root) + tp_assign(level, full_ref->level) + tp_assign(type, ref->type) +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,7,0)) + tp_assign(seq, ref->seq) +#endif + ), + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,7,0)) + TP_printk("bytenr = %llu, num_bytes = %llu, action = %s, " + "parent = %llu(%s), ref_root = %llu(%s), level = %d, " + "type = %s, seq = %llu", +#else + TP_printk("bytenr = %llu, num_bytes = %llu, action = %s, " + "parent = %llu(%s), ref_root = %llu(%s), level = %d, " + "type = %s", +#endif + (unsigned long long)__entry->bytenr, + (unsigned long long)__entry->num_bytes, + show_ref_action(__entry->action), + show_root_type(__entry->parent), + show_root_type(__entry->ref_root), +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,7,0)) + __entry->level, show_ref_type(__entry->type), + (unsigned long long)__entry->seq) +#else + __entry->level, show_ref_type(__entry->type)) +#endif +) + +TRACE_EVENT(btrfs_delayed_data_ref, + + TP_PROTO(struct btrfs_delayed_ref_node *ref, + struct btrfs_delayed_data_ref *full_ref, + int action), + + TP_ARGS(ref, full_ref, action), + + TP_STRUCT__entry( + __field( u64, bytenr ) + __field( u64, num_bytes ) + __field( int, action ) + __field( u64, parent ) + __field( u64, ref_root ) + __field( u64, owner ) + __field( u64, offset ) + __field( int, type ) +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,7,0)) + __field( u64, seq ) +#endif + ), + + TP_fast_assign( + tp_assign(bytenr, ref->bytenr) + tp_assign(num_bytes, ref->num_bytes) + tp_assign(action, action) + tp_assign(parent, full_ref->parent) + tp_assign(ref_root, full_ref->root) + tp_assign(owner, full_ref->objectid) + tp_assign(offset, full_ref->offset) + tp_assign(type, ref->type) +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,7,0)) + tp_assign(seq, ref->seq) +#endif + ), + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,7,0)) + TP_printk("bytenr = %llu, num_bytes = %llu, action = %s, " + "parent = %llu(%s), ref_root = %llu(%s), owner = %llu, " + "offset = %llu, type = %s, seq = %llu", +#else + TP_printk("bytenr = %llu, num_bytes = %llu, action = %s, " + "parent = %llu(%s), ref_root = %llu(%s), owner = %llu, " + "offset = %llu, type = %s", +#endif + (unsigned long long)__entry->bytenr, + (unsigned long long)__entry->num_bytes, + show_ref_action(__entry->action), + show_root_type(__entry->parent), + show_root_type(__entry->ref_root), + (unsigned long long)__entry->owner, + (unsigned long long)__entry->offset, +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,7,0)) + show_ref_type(__entry->type), + (unsigned long long)__entry->seq) +#else + show_ref_type(__entry->type)) +#endif +) + +TRACE_EVENT(btrfs_delayed_ref_head, + + TP_PROTO(struct btrfs_delayed_ref_node *ref, + struct btrfs_delayed_ref_head *head_ref, + int action), + + TP_ARGS(ref, head_ref, action), + + TP_STRUCT__entry( + __field( u64, bytenr ) + __field( u64, num_bytes ) + __field( int, action ) + __field( int, is_data ) + ), + + TP_fast_assign( + tp_assign(bytenr, ref->bytenr) + tp_assign(num_bytes, ref->num_bytes) + tp_assign(action, action) + tp_assign(is_data, head_ref->is_data) + ), + + TP_printk("bytenr = %llu, num_bytes = %llu, action = %s, is_data = %d", + (unsigned long long)__entry->bytenr, + (unsigned long long)__entry->num_bytes, + show_ref_action(__entry->action), + __entry->is_data) +) + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,11,0)) + +#define show_chunk_type(type) \ + __print_flags(type, "|", \ + { BTRFS_BLOCK_GROUP_DATA, "DATA" }, \ + { BTRFS_BLOCK_GROUP_SYSTEM, "SYSTEM"}, \ + { BTRFS_BLOCK_GROUP_METADATA, "METADATA"}, \ + { BTRFS_BLOCK_GROUP_RAID0, "RAID0" }, \ + { BTRFS_BLOCK_GROUP_RAID1, "RAID1" }, \ + { BTRFS_BLOCK_GROUP_DUP, "DUP" }, \ + { BTRFS_BLOCK_GROUP_RAID10, "RAID10"}, \ + { BTRFS_BLOCK_GROUP_RAID5, "RAID5" }, \ + { BTRFS_BLOCK_GROUP_RAID6, "RAID6" }) + +#else + +#define show_chunk_type(type) \ + __print_flags(type, "|", \ + { BTRFS_BLOCK_GROUP_DATA, "DATA" }, \ + { BTRFS_BLOCK_GROUP_SYSTEM, "SYSTEM"}, \ + { BTRFS_BLOCK_GROUP_METADATA, "METADATA"}, \ + { BTRFS_BLOCK_GROUP_RAID0, "RAID0" }, \ + { BTRFS_BLOCK_GROUP_RAID1, "RAID1" }, \ + { BTRFS_BLOCK_GROUP_DUP, "DUP" }, \ + { BTRFS_BLOCK_GROUP_RAID10, "RAID10"}) + +#endif + +DECLARE_EVENT_CLASS(btrfs__chunk, + + TP_PROTO(struct btrfs_root *root, struct map_lookup *map, + u64 offset, u64 size), + + TP_ARGS(root, map, offset, size), + + TP_STRUCT__entry( + __field( int, num_stripes ) + __field( u64, type ) + __field( int, sub_stripes ) + __field( u64, offset ) + __field( u64, size ) + __field( u64, root_objectid ) + ), + + TP_fast_assign( + tp_assign(num_stripes, map->num_stripes) + tp_assign(type, map->type) + tp_assign(sub_stripes, map->sub_stripes) + tp_assign(offset, offset) + tp_assign(size, size) + tp_assign(root_objectid, root->root_key.objectid) + ), + + TP_printk("root = %llu(%s), offset = %llu, size = %llu, " + "num_stripes = %d, sub_stripes = %d, type = %s", + show_root_type(__entry->root_objectid), + (unsigned long long)__entry->offset, + (unsigned long long)__entry->size, + __entry->num_stripes, __entry->sub_stripes, + show_chunk_type(__entry->type)) +) + +DEFINE_EVENT(btrfs__chunk, btrfs_chunk_alloc, + + TP_PROTO(struct btrfs_root *root, struct map_lookup *map, + u64 offset, u64 size), + + TP_ARGS(root, map, offset, size) +) + +DEFINE_EVENT(btrfs__chunk, btrfs_chunk_free, + + TP_PROTO(struct btrfs_root *root, struct map_lookup *map, + u64 offset, u64 size), + + TP_ARGS(root, map, offset, size) +) + +TRACE_EVENT(btrfs_cow_block, + + TP_PROTO(struct btrfs_root *root, struct extent_buffer *buf, + struct extent_buffer *cow), + + TP_ARGS(root, buf, cow), + + TP_STRUCT__entry( + __field( u64, root_objectid ) + __field( u64, buf_start ) + __field( int, refs ) + __field( u64, cow_start ) + __field( int, buf_level ) + __field( int, cow_level ) + ), + + TP_fast_assign( + tp_assign(root_objectid, root->root_key.objectid) + tp_assign(buf_start, buf->start) + tp_assign(refs, atomic_read(&buf->refs)) + tp_assign(cow_start, cow->start) + tp_assign(buf_level, btrfs_header_level(buf)) + tp_assign(cow_level, btrfs_header_level(cow)) + ), + + TP_printk("root = %llu(%s), refs = %d, orig_buf = %llu " + "(orig_level = %d), cow_buf = %llu (cow_level = %d)", + show_root_type(__entry->root_objectid), + __entry->refs, + (unsigned long long)__entry->buf_start, + __entry->buf_level, + (unsigned long long)__entry->cow_start, + __entry->cow_level) +) + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,3,0)) +TRACE_EVENT(btrfs_space_reservation, + + TP_PROTO(struct btrfs_fs_info *fs_info, char *type, u64 val, + u64 bytes, int reserve), + + TP_ARGS(fs_info, type, val, bytes, reserve), + + TP_STRUCT__entry( + __array( u8, fsid, BTRFS_UUID_SIZE ) + __string( type, type ) + __field( u64, val ) + __field( u64, bytes ) + __field( int, reserve ) + ), + + TP_fast_assign( + tp_memcpy(fsid, fs_info->fsid, BTRFS_UUID_SIZE) + tp_strcpy(type, type) + tp_assign(val, val) + tp_assign(bytes, bytes) + tp_assign(reserve, reserve) + ), + + TP_printk("%pU: %s: %Lu %s %Lu", __entry->fsid, __get_str(type), + __entry->val, __entry->reserve ? "reserve" : "release", + __entry->bytes) +) +#endif + +DECLARE_EVENT_CLASS(btrfs__reserved_extent, + + TP_PROTO(struct btrfs_root *root, u64 start, u64 len), + + TP_ARGS(root, start, len), + + TP_STRUCT__entry( + __field( u64, root_objectid ) + __field( u64, start ) + __field( u64, len ) + ), + + TP_fast_assign( + tp_assign(root_objectid, root->root_key.objectid) + tp_assign(start, start) + tp_assign(len, len) + ), + + TP_printk("root = %llu(%s), start = %llu, len = %llu", + show_root_type(__entry->root_objectid), + (unsigned long long)__entry->start, + (unsigned long long)__entry->len) +) + +DEFINE_EVENT(btrfs__reserved_extent, btrfs_reserved_extent_alloc, + + TP_PROTO(struct btrfs_root *root, u64 start, u64 len), + + TP_ARGS(root, start, len) +) + +DEFINE_EVENT(btrfs__reserved_extent, btrfs_reserved_extent_free, + + TP_PROTO(struct btrfs_root *root, u64 start, u64 len), + + TP_ARGS(root, start, len) +) + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,3,0)) +TRACE_EVENT_MAP(find_free_extent, + + btrfs_find_free_extent, + + TP_PROTO(struct btrfs_root *root, u64 num_bytes, u64 empty_size, + u64 data), + + TP_ARGS(root, num_bytes, empty_size, data), + + TP_STRUCT__entry( + __field( u64, root_objectid ) + __field( u64, num_bytes ) + __field( u64, empty_size ) + __field( u64, data ) + ), + + TP_fast_assign( + tp_assign(root_objectid, root->root_key.objectid) + tp_assign(num_bytes, num_bytes) + tp_assign(empty_size, empty_size) + tp_assign(data, data) + ), + + TP_printk("root = %Lu(%s), len = %Lu, empty_size = %Lu, " + "flags = %Lu(%s)", show_root_type(__entry->root_objectid), + __entry->num_bytes, __entry->empty_size, __entry->data, + __print_flags((unsigned long)__entry->data, "|", + BTRFS_GROUP_FLAGS)) +) + +DECLARE_EVENT_CLASS(btrfs__reserve_extent, + + TP_PROTO(struct btrfs_root *root, + struct btrfs_block_group_cache *block_group, u64 start, + u64 len), + + TP_ARGS(root, block_group, start, len), + + TP_STRUCT__entry( + __field( u64, root_objectid ) + __field( u64, bg_objectid ) + __field( u64, flags ) + __field( u64, start ) + __field( u64, len ) + ), + + TP_fast_assign( + tp_assign(root_objectid, root->root_key.objectid) + tp_assign(bg_objectid, block_group->key.objectid) + tp_assign(flags, block_group->flags) + tp_assign(start, start) + tp_assign(len, len) + ), + + TP_printk("root = %Lu(%s), block_group = %Lu, flags = %Lu(%s), " + "start = %Lu, len = %Lu", + show_root_type(__entry->root_objectid), __entry->bg_objectid, + __entry->flags, __print_flags((unsigned long)__entry->flags, + "|", BTRFS_GROUP_FLAGS), + __entry->start, __entry->len) +) + +DEFINE_EVENT(btrfs__reserve_extent, btrfs_reserve_extent, + + TP_PROTO(struct btrfs_root *root, + struct btrfs_block_group_cache *block_group, u64 start, + u64 len), + + TP_ARGS(root, block_group, start, len) +) + +DEFINE_EVENT(btrfs__reserve_extent, btrfs_reserve_extent_cluster, + + TP_PROTO(struct btrfs_root *root, + struct btrfs_block_group_cache *block_group, u64 start, + u64 len), + + TP_ARGS(root, block_group, start, len) +) + +TRACE_EVENT(btrfs_find_cluster, + + TP_PROTO(struct btrfs_block_group_cache *block_group, u64 start, + u64 bytes, u64 empty_size, u64 min_bytes), + + TP_ARGS(block_group, start, bytes, empty_size, min_bytes), + + TP_STRUCT__entry( + __field( u64, bg_objectid ) + __field( u64, flags ) + __field( u64, start ) + __field( u64, bytes ) + __field( u64, empty_size ) + __field( u64, min_bytes ) + ), + + TP_fast_assign( + tp_assign(bg_objectid, block_group->key.objectid) + tp_assign(flags, block_group->flags) + tp_assign(start, start) + tp_assign(bytes, bytes) + tp_assign(empty_size, empty_size) + tp_assign(min_bytes, min_bytes) + ), + + TP_printk("block_group = %Lu, flags = %Lu(%s), start = %Lu, len = %Lu," + " empty_size = %Lu, min_bytes = %Lu", __entry->bg_objectid, + __entry->flags, + __print_flags((unsigned long)__entry->flags, "|", + BTRFS_GROUP_FLAGS), __entry->start, + __entry->bytes, __entry->empty_size, __entry->min_bytes) +) + +TRACE_EVENT(btrfs_failed_cluster_setup, + + TP_PROTO(struct btrfs_block_group_cache *block_group), + + TP_ARGS(block_group), + + TP_STRUCT__entry( + __field( u64, bg_objectid ) + ), + + TP_fast_assign( + tp_assign(bg_objectid, block_group->key.objectid) + ), + + TP_printk("block_group = %Lu", __entry->bg_objectid) +) + +TRACE_EVENT(btrfs_setup_cluster, + + TP_PROTO(struct btrfs_block_group_cache *block_group, + struct btrfs_free_cluster *cluster, u64 size, int bitmap), + + TP_ARGS(block_group, cluster, size, bitmap), + + TP_STRUCT__entry( + __field( u64, bg_objectid ) + __field( u64, flags ) + __field( u64, start ) + __field( u64, max_size ) + __field( u64, size ) + __field( int, bitmap ) + ), + + TP_fast_assign( + tp_assign(bg_objectid, block_group->key.objectid) + tp_assign(flags, block_group->flags) + tp_assign(start, cluster->window_start) + tp_assign(max_size, cluster->max_size) + tp_assign(size, size) + tp_assign(bitmap, bitmap) + ), + + TP_printk("block_group = %Lu, flags = %Lu(%s), window_start = %Lu, " + "size = %Lu, max_size = %Lu, bitmap = %d", + __entry->bg_objectid, + __entry->flags, + __print_flags((unsigned long)__entry->flags, "|", + BTRFS_GROUP_FLAGS), __entry->start, + __entry->size, __entry->max_size, __entry->bitmap) +) +#endif + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,4,0)) +TRACE_EVENT_MAP(alloc_extent_state, + + btrfs_alloc_extent_state, + + TP_PROTO(struct extent_state *state, gfp_t mask, unsigned long IP), + + TP_ARGS(state, mask, IP), + + TP_STRUCT__entry( + __field(struct extent_state *, state) + __field(gfp_t, mask) + __field(unsigned long, ip) + ), + + TP_fast_assign( + tp_assign(state, state) + tp_assign(mask, mask) + tp_assign(ip, IP) + ), + + TP_printk("state=%p; mask = %s; caller = %pF", __entry->state, + show_gfp_flags(__entry->mask), (void *)__entry->ip) +) + +TRACE_EVENT_MAP(free_extent_state, + + btrfs_free_extent_state, + + TP_PROTO(struct extent_state *state, unsigned long IP), + + TP_ARGS(state, IP), + + TP_STRUCT__entry( + __field(struct extent_state *, state) + __field(unsigned long, ip) + ), + + TP_fast_assign( + tp_assign(state, state) + tp_assign(ip, IP) + ), + + TP_printk(" state=%p; caller = %pF", __entry->state, + (void *)__entry->ip) +) +#endif + +#endif /* _TRACE_BTRFS_H */ + +/* This part must be outside protection */ +#include "../../../probes/define_trace.h" --- linux-3.11.0.orig/ubuntu/lttng/instrumentation/events/lttng-module/irq.h +++ linux-3.11.0/ubuntu/lttng/instrumentation/events/lttng-module/irq.h @@ -0,0 +1,220 @@ +#undef TRACE_SYSTEM +#define TRACE_SYSTEM irq + +#if !defined(_TRACE_IRQ_H) || defined(TRACE_HEADER_MULTI_READ) +#define _TRACE_IRQ_H + +#include + +#ifndef _TRACE_IRQ_DEF_ +#define _TRACE_IRQ_DEF_ + +struct irqaction; +struct softirq_action; + +#define softirq_name(sirq) { sirq##_SOFTIRQ, #sirq } +#define show_softirq_name(val) \ + __print_symbolic(val, \ + softirq_name(HI), \ + softirq_name(TIMER), \ + softirq_name(NET_TX), \ + softirq_name(NET_RX), \ + softirq_name(BLOCK), \ + softirq_name(BLOCK_IOPOLL), \ + softirq_name(TASKLET), \ + softirq_name(SCHED), \ + softirq_name(HRTIMER), \ + softirq_name(RCU)) + +#endif /* _TRACE_IRQ_DEF_ */ + +/** + * irq_handler_entry - called immediately before the irq action handler + * @irq: irq number + * @action: pointer to struct irqaction + * + * The struct irqaction pointed to by @action contains various + * information about the handler, including the device name, + * @action->name, and the device id, @action->dev_id. When used in + * conjunction with the irq_handler_exit tracepoint, we can figure + * out irq handler latencies. + */ +TRACE_EVENT(irq_handler_entry, + + TP_PROTO(int irq, struct irqaction *action), + + TP_ARGS(irq, action), + + TP_STRUCT__entry( + __field( int, irq ) + __string( name, action->name ) + ), + + TP_fast_assign( + tp_assign(irq, irq) + tp_strcpy(name, action->name) + ), + + TP_printk("irq=%d name=%s", __entry->irq, __get_str(name)) +) + +/** + * irq_handler_exit - called immediately after the irq action handler returns + * @irq: irq number + * @action: pointer to struct irqaction + * @ret: return value + * + * If the @ret value is set to IRQ_HANDLED, then we know that the corresponding + * @action->handler scuccessully handled this irq. Otherwise, the irq might be + * a shared irq line, or the irq was not handled successfully. Can be used in + * conjunction with the irq_handler_entry to understand irq handler latencies. + */ +TRACE_EVENT(irq_handler_exit, + + TP_PROTO(int irq, struct irqaction *action, int ret), + + TP_ARGS(irq, action, ret), + + TP_STRUCT__entry( + __field( int, irq ) + __field( int, ret ) + ), + + TP_fast_assign( + tp_assign(irq, irq) + tp_assign(ret, ret) + ), + + TP_printk("irq=%d ret=%s", + __entry->irq, __entry->ret ? "handled" : "unhandled") +) + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,37)) +DECLARE_EVENT_CLASS(softirq, + + TP_PROTO(unsigned int vec_nr), + + TP_ARGS(vec_nr), + + TP_STRUCT__entry( + __field( unsigned int, vec ) + ), + + TP_fast_assign( + tp_assign(vec, vec_nr) + ), + + TP_printk("vec=%u [action=%s]", __entry->vec, + show_softirq_name(__entry->vec)) +) + +/** + * softirq_entry - called immediately before the softirq handler + * @vec_nr: softirq vector number + * + * When used in combination with the softirq_exit tracepoint + * we can determine the softirq handler runtine. + */ +DEFINE_EVENT(softirq, softirq_entry, + + TP_PROTO(unsigned int vec_nr), + + TP_ARGS(vec_nr) +) + +/** + * softirq_exit - called immediately after the softirq handler returns + * @vec_nr: softirq vector number + * + * When used in combination with the softirq_entry tracepoint + * we can determine the softirq handler runtine. + */ +DEFINE_EVENT(softirq, softirq_exit, + + TP_PROTO(unsigned int vec_nr), + + TP_ARGS(vec_nr) +) + +/** + * softirq_raise - called immediately when a softirq is raised + * @vec_nr: softirq vector number + * + * When used in combination with the softirq_entry tracepoint + * we can determine the softirq raise to run latency. + */ +DEFINE_EVENT(softirq, softirq_raise, + + TP_PROTO(unsigned int vec_nr), + + TP_ARGS(vec_nr) +) +#else /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,37)) */ +DECLARE_EVENT_CLASS(softirq, + + TP_PROTO(struct softirq_action *h, struct softirq_action *vec), + + TP_ARGS(h, vec), + + TP_STRUCT__entry( + __field( unsigned int, vec ) + ), + + TP_fast_assign( + tp_assign(vec, (int)(h - vec)) + ), + + TP_printk("vec=%u [action=%s]", __entry->vec, + show_softirq_name(__entry->vec)) +) + +/** + * softirq_entry - called immediately before the softirq handler + * @h: pointer to struct softirq_action + * @vec: pointer to first struct softirq_action in softirq_vec array + * + * When used in combination with the softirq_exit tracepoint + * we can determine the softirq handler runtine. + */ +DEFINE_EVENT(softirq, softirq_entry, + + TP_PROTO(struct softirq_action *h, struct softirq_action *vec), + + TP_ARGS(h, vec) +) + +/** + * softirq_exit - called immediately after the softirq handler returns + * @h: pointer to struct softirq_action + * @vec: pointer to first struct softirq_action in softirq_vec array + * + * When used in combination with the softirq_entry tracepoint + * we can determine the softirq handler runtine. + */ +DEFINE_EVENT(softirq, softirq_exit, + + TP_PROTO(struct softirq_action *h, struct softirq_action *vec), + + TP_ARGS(h, vec) +) + +/** + * softirq_raise - called immediately when a softirq is raised + * @h: pointer to struct softirq_action + * @vec: pointer to first struct softirq_action in softirq_vec array + * + * When used in combination with the softirq_entry tracepoint + * we can determine the softirq raise to run latency. + */ +DEFINE_EVENT(softirq, softirq_raise, + + TP_PROTO(struct softirq_action *h, struct softirq_action *vec), + + TP_ARGS(h, vec) +) +#endif /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,37)) */ + +#endif /* _TRACE_IRQ_H */ + +/* This part must be outside protection */ +#include "../../../probes/define_trace.h" --- linux-3.11.0.orig/ubuntu/lttng/instrumentation/events/lttng-module/rcu.h +++ linux-3.11.0/ubuntu/lttng/instrumentation/events/lttng-module/rcu.h @@ -0,0 +1,759 @@ +#undef TRACE_SYSTEM +#define TRACE_SYSTEM rcu + +#if !defined(_TRACE_RCU_H) || defined(TRACE_HEADER_MULTI_READ) +#define _TRACE_RCU_H + +#include +#include + +/* + * Tracepoint for start/end markers used for utilization calculations. + * By convention, the string is of the following forms: + * + * "Start " -- Mark the start of the specified activity, + * such as "context switch". Nesting is permitted. + * "End " -- Mark the end of the specified activity. + * + * An "@" character within "" is a comment character: Data + * reduction scripts will ignore the "@" and the remainder of the line. + */ +TRACE_EVENT(rcu_utilization, + + TP_PROTO(char *s), + + TP_ARGS(s), + + TP_STRUCT__entry( + __string(s, s) + ), + + TP_fast_assign( + tp_strcpy(s, s) + ), + + TP_printk("%s", __get_str(s)) +) + +#ifdef CONFIG_RCU_TRACE + +#if defined(CONFIG_TREE_RCU) || defined(CONFIG_TREE_PREEMPT_RCU) + +/* + * Tracepoint for grace-period events: starting and ending a grace + * period ("start" and "end", respectively), a CPU noting the start + * of a new grace period or the end of an old grace period ("cpustart" + * and "cpuend", respectively), a CPU passing through a quiescent + * state ("cpuqs"), a CPU coming online or going offline ("cpuonl" + * and "cpuofl", respectively), and a CPU being kicked for being too + * long in dyntick-idle mode ("kick"). + */ +TRACE_EVENT(rcu_grace_period, + + TP_PROTO(char *rcuname, unsigned long gpnum, char *gpevent), + + TP_ARGS(rcuname, gpnum, gpevent), + + TP_STRUCT__entry( + __string(rcuname, rcuname) + __field(unsigned long, gpnum) + __string(gpevent, gpevent) + ), + + TP_fast_assign( + tp_strcpy(rcuname, rcuname) + tp_assign(gpnum, gpnum) + tp_strcpy(gpevent, gpevent) + ), + + TP_printk("%s %lu %s", + __get_str(rcuname), __entry->gpnum, __get_str(gpevent)) +) + +/* + * Tracepoint for grace-period-initialization events. These are + * distinguished by the type of RCU, the new grace-period number, the + * rcu_node structure level, the starting and ending CPU covered by the + * rcu_node structure, and the mask of CPUs that will be waited for. + * All but the type of RCU are extracted from the rcu_node structure. + */ +TRACE_EVENT(rcu_grace_period_init, + + TP_PROTO(char *rcuname, unsigned long gpnum, u8 level, + int grplo, int grphi, unsigned long qsmask), + + TP_ARGS(rcuname, gpnum, level, grplo, grphi, qsmask), + + TP_STRUCT__entry( + __string(rcuname, rcuname) + __field(unsigned long, gpnum) + __field(u8, level) + __field(int, grplo) + __field(int, grphi) + __field(unsigned long, qsmask) + ), + + TP_fast_assign( + tp_strcpy(rcuname, rcuname) + tp_assign(gpnum, gpnum) + tp_assign(level, level) + tp_assign(grplo, grplo) + tp_assign(grphi, grphi) + tp_assign(qsmask, qsmask) + ), + + TP_printk("%s %lu %u %d %d %lx", + __get_str(rcuname), __entry->gpnum, __entry->level, + __entry->grplo, __entry->grphi, __entry->qsmask) +) + +/* + * Tracepoint for tasks blocking within preemptible-RCU read-side + * critical sections. Track the type of RCU (which one day might + * include SRCU), the grace-period number that the task is blocking + * (the current or the next), and the task's PID. + */ +TRACE_EVENT(rcu_preempt_task, + + TP_PROTO(char *rcuname, int pid, unsigned long gpnum), + + TP_ARGS(rcuname, pid, gpnum), + + TP_STRUCT__entry( + __string(rcuname, rcuname) + __field(unsigned long, gpnum) + __field(int, pid) + ), + + TP_fast_assign( + tp_strcpy(rcuname, rcuname) + tp_assign(gpnum, gpnum) + tp_assign(pid, pid) + ), + + TP_printk("%s %lu %d", + __get_str(rcuname), __entry->gpnum, __entry->pid) +) + +/* + * Tracepoint for tasks that blocked within a given preemptible-RCU + * read-side critical section exiting that critical section. Track the + * type of RCU (which one day might include SRCU) and the task's PID. + */ +TRACE_EVENT(rcu_unlock_preempted_task, + + TP_PROTO(char *rcuname, unsigned long gpnum, int pid), + + TP_ARGS(rcuname, gpnum, pid), + + TP_STRUCT__entry( + __string(rcuname, rcuname) + __field(unsigned long, gpnum) + __field(int, pid) + ), + + TP_fast_assign( + tp_strcpy(rcuname, rcuname) + tp_assign(gpnum, gpnum) + tp_assign(pid, pid) + ), + + TP_printk("%s %lu %d", __get_str(rcuname), __entry->gpnum, __entry->pid) +) + +/* + * Tracepoint for quiescent-state-reporting events. These are + * distinguished by the type of RCU, the grace-period number, the + * mask of quiescent lower-level entities, the rcu_node structure level, + * the starting and ending CPU covered by the rcu_node structure, and + * whether there are any blocked tasks blocking the current grace period. + * All but the type of RCU are extracted from the rcu_node structure. + */ +TRACE_EVENT(rcu_quiescent_state_report, + + TP_PROTO(char *rcuname, unsigned long gpnum, + unsigned long mask, unsigned long qsmask, + u8 level, int grplo, int grphi, int gp_tasks), + + TP_ARGS(rcuname, gpnum, mask, qsmask, level, grplo, grphi, gp_tasks), + + TP_STRUCT__entry( + __string(rcuname, rcuname) + __field(unsigned long, gpnum) + __field(unsigned long, mask) + __field(unsigned long, qsmask) + __field(u8, level) + __field(int, grplo) + __field(int, grphi) + __field(u8, gp_tasks) + ), + + TP_fast_assign( + tp_strcpy(rcuname, rcuname) + tp_assign(gpnum, gpnum) + tp_assign(mask, mask) + tp_assign(qsmask, qsmask) + tp_assign(level, level) + tp_assign(grplo, grplo) + tp_assign(grphi, grphi) + tp_assign(gp_tasks, gp_tasks) + ), + + TP_printk("%s %lu %lx>%lx %u %d %d %u", + __get_str(rcuname), __entry->gpnum, + __entry->mask, __entry->qsmask, __entry->level, + __entry->grplo, __entry->grphi, __entry->gp_tasks) +) + +/* + * Tracepoint for quiescent states detected by force_quiescent_state(). + * These trace events include the type of RCU, the grace-period number + * that was blocked by the CPU, the CPU itself, and the type of quiescent + * state, which can be "dti" for dyntick-idle mode, "ofl" for CPU offline, + * or "kick" when kicking a CPU that has been in dyntick-idle mode for + * too long. + */ +TRACE_EVENT(rcu_fqs, + + TP_PROTO(char *rcuname, unsigned long gpnum, int cpu, char *qsevent), + + TP_ARGS(rcuname, gpnum, cpu, qsevent), + + TP_STRUCT__entry( + __string(rcuname, rcuname) + __field(unsigned long, gpnum) + __field(int, cpu) + __string(qsevent, qsevent) + ), + + TP_fast_assign( + tp_strcpy(rcuname, rcuname) + tp_assign(gpnum, gpnum) + tp_assign(cpu, cpu) + tp_strcpy(qsevent, qsevent) + ), + + TP_printk("%s %lu %d %s", + __get_str(rcuname), __entry->gpnum, + __entry->cpu, __get_str(qsevent)) +) + +#endif /* #if defined(CONFIG_TREE_RCU) || defined(CONFIG_TREE_PREEMPT_RCU) */ + +/* + * Tracepoint for dyntick-idle entry/exit events. These take a string + * as argument: "Start" for entering dyntick-idle mode, "End" for + * leaving it, "--=" for events moving towards idle, and "++=" for events + * moving away from idle. "Error on entry: not idle task" and "Error on + * exit: not idle task" indicate that a non-idle task is erroneously + * toying with the idle loop. + * + * These events also take a pair of numbers, which indicate the nesting + * depth before and after the event of interest. Note that task-related + * events use the upper bits of each number, while interrupt-related + * events use the lower bits. + */ +TRACE_EVENT(rcu_dyntick, + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,3,0)) + TP_PROTO(char *polarity, long long oldnesting, long long newnesting), + + TP_ARGS(polarity, oldnesting, newnesting), +#else + TP_PROTO(char *polarity), + + TP_ARGS(polarity), +#endif + + TP_STRUCT__entry( + __string(polarity, polarity) +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,3,0)) + __field(long long, oldnesting) + __field(long long, newnesting) +#endif + ), + + TP_fast_assign( + tp_strcpy(polarity, polarity) +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,3,0)) + tp_assign(oldnesting, oldnesting) + tp_assign(newnesting, newnesting) +#endif + ), + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,3,0)) + TP_printk("%s %llx %llx", __get_str(polarity), + __entry->oldnesting, __entry->newnesting) +#else + TP_printk("%s", __get_str(polarity)) +#endif +) + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,3,0)) +/* + * Tracepoint for RCU preparation for idle, the goal being to get RCU + * processing done so that the current CPU can shut off its scheduling + * clock and enter dyntick-idle mode. One way to accomplish this is + * to drain all RCU callbacks from this CPU, and the other is to have + * done everything RCU requires for the current grace period. In this + * latter case, the CPU will be awakened at the end of the current grace + * period in order to process the remainder of its callbacks. + * + * These tracepoints take a string as argument: + * + * "No callbacks": Nothing to do, no callbacks on this CPU. + * "In holdoff": Nothing to do, holding off after unsuccessful attempt. + * "Begin holdoff": Attempt failed, don't retry until next jiffy. + * "Dyntick with callbacks": Entering dyntick-idle despite callbacks. + * "Dyntick with lazy callbacks": Entering dyntick-idle w/lazy callbacks. + * "More callbacks": Still more callbacks, try again to clear them out. + * "Callbacks drained": All callbacks processed, off to dyntick idle! + * "Timer": Timer fired to cause CPU to continue processing callbacks. + * "Demigrate": Timer fired on wrong CPU, woke up correct CPU. + * "Cleanup after idle": Idle exited, timer canceled. + */ +TRACE_EVENT(rcu_prep_idle, + + TP_PROTO(char *reason), + + TP_ARGS(reason), + + TP_STRUCT__entry( + __string(reason, reason) + ), + + TP_fast_assign( + tp_strcpy(reason, reason) + ), + + TP_printk("%s", __get_str(reason)) +) +#endif + +/* + * Tracepoint for the registration of a single RCU callback function. + * The first argument is the type of RCU, the second argument is + * a pointer to the RCU callback itself, the third element is the + * number of lazy callbacks queued, and the fourth element is the + * total number of callbacks queued. + */ +TRACE_EVENT(rcu_callback, + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,4,0)) + TP_PROTO(char *rcuname, struct rcu_head *rhp, long qlen_lazy, + long qlen), + + TP_ARGS(rcuname, rhp, qlen_lazy, qlen), +#else + TP_PROTO(char *rcuname, struct rcu_head *rhp, long qlen), + + TP_ARGS(rcuname, rhp, qlen), +#endif + + TP_STRUCT__entry( + __string(rcuname, rcuname) + __field(void *, rhp) + __field(void *, func) +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,4,0)) + __field(long, qlen_lazy) +#endif + __field(long, qlen) + ), + + TP_fast_assign( + tp_strcpy(rcuname, rcuname) + tp_assign(rhp, rhp) + tp_assign(func, rhp->func) +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,4,0)) + tp_assign(qlen_lazy, qlen_lazy) +#endif + tp_assign(qlen, qlen) + ), + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,4,0)) + TP_printk("%s rhp=%p func=%pf %ld/%ld", + __get_str(rcuname), __entry->rhp, __entry->func, + __entry->qlen_lazy, __entry->qlen) +#else + TP_printk("%s rhp=%p func=%pf %ld", + __get_str(rcuname), __entry->rhp, __entry->func, + __entry->qlen) +#endif +) + +/* + * Tracepoint for the registration of a single RCU callback of the special + * kfree() form. The first argument is the RCU type, the second argument + * is a pointer to the RCU callback, the third argument is the offset + * of the callback within the enclosing RCU-protected data structure, + * the fourth argument is the number of lazy callbacks queued, and the + * fifth argument is the total number of callbacks queued. + */ +TRACE_EVENT(rcu_kfree_callback, + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,4,0)) + TP_PROTO(char *rcuname, struct rcu_head *rhp, unsigned long offset, + long qlen_lazy, long qlen), + + TP_ARGS(rcuname, rhp, offset, qlen_lazy, qlen), +#else + TP_PROTO(char *rcuname, struct rcu_head *rhp, unsigned long offset, + long qlen), + + TP_ARGS(rcuname, rhp, offset, qlen), +#endif + + TP_STRUCT__entry( + __string(rcuname, rcuname) + __field(void *, rhp) + __field(unsigned long, offset) +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,4,0)) + __field(long, qlen_lazy) +#endif + __field(long, qlen) + ), + + TP_fast_assign( + tp_strcpy(rcuname, rcuname) + tp_assign(rhp, rhp) + tp_assign(offset, offset) +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,4,0)) + tp_assign(qlen_lazy, qlen_lazy) +#endif + tp_assign(qlen, qlen) + ), + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,4,0)) + TP_printk("%s rhp=%p func=%ld %ld/%ld", + __get_str(rcuname), __entry->rhp, __entry->offset, + __entry->qlen_lazy, __entry->qlen) +#else + TP_printk("%s rhp=%p func=%ld %ld", + __get_str(rcuname), __entry->rhp, __entry->offset, + __entry->qlen) +#endif +) + +/* + * Tracepoint for marking the beginning rcu_do_batch, performed to start + * RCU callback invocation. The first argument is the RCU flavor, + * the second is the number of lazy callbacks queued, the third is + * the total number of callbacks queued, and the fourth argument is + * the current RCU-callback batch limit. + */ +TRACE_EVENT(rcu_batch_start, + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,9,0)) + TP_PROTO(char *rcuname, long qlen_lazy, long qlen, long blimit), + + TP_ARGS(rcuname, qlen_lazy, qlen, blimit), +#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3,4,0)) + TP_PROTO(char *rcuname, long qlen_lazy, long qlen, int blimit), + + TP_ARGS(rcuname, qlen_lazy, qlen, blimit), +#else + TP_PROTO(char *rcuname, long qlen, int blimit), + + TP_ARGS(rcuname, qlen, blimit), +#endif + + TP_STRUCT__entry( + __string(rcuname, rcuname) +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,4,0)) + __field(long, qlen_lazy) +#endif + __field(long, qlen) +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,9,0)) + __field(long, blimit) +#else + __field(int, blimit) +#endif + ), + + TP_fast_assign( + tp_strcpy(rcuname, rcuname) +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,4,0)) + tp_assign(qlen_lazy, qlen_lazy) +#endif + tp_assign(qlen, qlen) + tp_assign(blimit, blimit) + ), + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,9,0)) + TP_printk("%s CBs=%ld/%ld bl=%ld", + __get_str(rcuname), __entry->qlen_lazy, __entry->qlen, + __entry->blimit) +#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3,4,0)) + TP_printk("%s CBs=%ld/%ld bl=%d", + __get_str(rcuname), __entry->qlen_lazy, __entry->qlen, + __entry->blimit) +#else + TP_printk("%s CBs=%ld bl=%d", + __get_str(rcuname), __entry->qlen, __entry->blimit) +#endif +) + +/* + * Tracepoint for the invocation of a single RCU callback function. + * The first argument is the type of RCU, and the second argument is + * a pointer to the RCU callback itself. + */ +TRACE_EVENT(rcu_invoke_callback, + + TP_PROTO(char *rcuname, struct rcu_head *rhp), + + TP_ARGS(rcuname, rhp), + + TP_STRUCT__entry( + __string(rcuname, rcuname) + __field(void *, rhp) + __field(void *, func) + ), + + TP_fast_assign( + tp_strcpy(rcuname, rcuname) + tp_assign(rhp, rhp) + tp_assign(func, rhp->func) + ), + + TP_printk("%s rhp=%p func=%pf", + __get_str(rcuname), __entry->rhp, __entry->func) +) + +/* + * Tracepoint for the invocation of a single RCU callback of the special + * kfree() form. The first argument is the RCU flavor, the second + * argument is a pointer to the RCU callback, and the third argument + * is the offset of the callback within the enclosing RCU-protected + * data structure. + */ +TRACE_EVENT(rcu_invoke_kfree_callback, + + TP_PROTO(char *rcuname, struct rcu_head *rhp, unsigned long offset), + + TP_ARGS(rcuname, rhp, offset), + + TP_STRUCT__entry( + __string(rcuname, rcuname) + __field(void *, rhp) + __field(unsigned long, offset) + ), + + TP_fast_assign( + tp_strcpy(rcuname, rcuname) + tp_assign(rhp, rhp) + tp_assign(offset, offset) + ), + + TP_printk("%s rhp=%p func=%ld", + __get_str(rcuname), __entry->rhp, __entry->offset) +) + +/* + * Tracepoint for exiting rcu_do_batch after RCU callbacks have been + * invoked. The first argument is the name of the RCU flavor, + * the second argument is number of callbacks actually invoked, + * the third argument (cb) is whether or not any of the callbacks that + * were ready to invoke at the beginning of this batch are still + * queued, the fourth argument (nr) is the return value of need_resched(), + * the fifth argument (iit) is 1 if the current task is the idle task, + * and the sixth argument (risk) is the return value from + * rcu_is_callbacks_kthread(). + */ +TRACE_EVENT(rcu_batch_end, + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,3,0)) + TP_PROTO(char *rcuname, int callbacks_invoked, + bool cb, bool nr, bool iit, bool risk), + + TP_ARGS(rcuname, callbacks_invoked, cb, nr, iit, risk), +#else + TP_PROTO(char *rcuname, int callbacks_invoked), + + TP_ARGS(rcuname, callbacks_invoked), +#endif + + TP_STRUCT__entry( + __string(rcuname, rcuname) + __field(int, callbacks_invoked) +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,3,0)) + __field(bool, cb) + __field(bool, nr) + __field(bool, iit) + __field(bool, risk) +#endif + ), + + TP_fast_assign( + tp_strcpy(rcuname, rcuname) + tp_assign(callbacks_invoked, callbacks_invoked) +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,3,0)) + tp_assign(cb, cb) + tp_assign(nr, nr) + tp_assign(iit, iit) + tp_assign(risk, risk) +#endif + ), + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,3,0)) + TP_printk("%s CBs-invoked=%d idle=%c%c%c%c", + __get_str(rcuname), __entry->callbacks_invoked, + __entry->cb ? 'C' : '.', + __entry->nr ? 'S' : '.', + __entry->iit ? 'I' : '.', + __entry->risk ? 'R' : '.') +#else + TP_printk("%s CBs-invoked=%d", + __get_str(rcuname), __entry->callbacks_invoked) +#endif +) + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,3,0)) +/* + * Tracepoint for rcutorture readers. The first argument is the name + * of the RCU flavor from rcutorture's viewpoint and the second argument + * is the callback address. + */ +TRACE_EVENT(rcu_torture_read, + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,9,0)) + TP_PROTO(char *rcutorturename, struct rcu_head *rhp, + unsigned long secs, unsigned long c_old, unsigned long c), + + TP_ARGS(rcutorturename, rhp, secs, c_old, c), +#else + TP_PROTO(char *rcutorturename, struct rcu_head *rhp), + + TP_ARGS(rcutorturename, rhp), +#endif + + TP_STRUCT__entry( + __string(rcutorturename, rcutorturename) + __field(struct rcu_head *, rhp) +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,9,0)) + __field(unsigned long, secs) + __field(unsigned long, c_old) + __field(unsigned long, c) +#endif + ), + + TP_fast_assign( + tp_strcpy(rcutorturename, rcutorturename) + tp_assign(rhp, rhp) +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,9,0)) + tp_assign(secs, secs) + tp_assign(c_old, c_old) + tp_assign(c, c) +#endif + ), + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,9,0)) + TP_printk("%s torture read %p %luus c: %lu %lu", + __entry->rcutorturename, __entry->rhp, + __entry->secs, __entry->c_old, __entry->c) +#else + TP_printk("%s torture read %p", + __get_str(rcutorturename), __entry->rhp) +#endif +) +#endif + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,6,0)) +/* + * Tracepoint for _rcu_barrier() execution. The string "s" describes + * the _rcu_barrier phase: + * "Begin": rcu_barrier_callback() started. + * "Check": rcu_barrier_callback() checking for piggybacking. + * "EarlyExit": rcu_barrier_callback() piggybacked, thus early exit. + * "Inc1": rcu_barrier_callback() piggyback check counter incremented. + * "Offline": rcu_barrier_callback() found offline CPU + * "OnlineQ": rcu_barrier_callback() found online CPU with callbacks. + * "OnlineNQ": rcu_barrier_callback() found online CPU, no callbacks. + * "IRQ": An rcu_barrier_callback() callback posted on remote CPU. + * "CB": An rcu_barrier_callback() invoked a callback, not the last. + * "LastCB": An rcu_barrier_callback() invoked the last callback. + * "Inc2": rcu_barrier_callback() piggyback check counter incremented. + * The "cpu" argument is the CPU or -1 if meaningless, the "cnt" argument + * is the count of remaining callbacks, and "done" is the piggybacking count. + */ +TRACE_EVENT(rcu_barrier, + + TP_PROTO(char *rcuname, char *s, int cpu, int cnt, unsigned long done), + + TP_ARGS(rcuname, s, cpu, cnt, done), + + TP_STRUCT__entry( + __string(rcuname, rcuname) + __string(s, s) + __field(int, cpu) + __field(int, cnt) + __field(unsigned long, done) + ), + + TP_fast_assign( + tp_strcpy(rcuname, rcuname) + tp_strcpy(s, s) + tp_assign(cpu, cpu) + tp_assign(cnt, cnt) + tp_assign(done, done) + ), + + TP_printk("%s %s cpu %d remaining %d # %lu", + __get_str(rcuname), __get_str(s), __entry->cpu, __entry->cnt, + __entry->done) +) +#endif + +#else /* #ifdef CONFIG_RCU_TRACE */ + +#define trace_rcu_grace_period(rcuname, gpnum, gpevent) do { } while (0) +#define trace_rcu_grace_period_init(rcuname, gpnum, level, grplo, grphi, \ + qsmask) do { } while (0) +#define trace_rcu_preempt_task(rcuname, pid, gpnum) do { } while (0) +#define trace_rcu_unlock_preempted_task(rcuname, gpnum, pid) do { } while (0) +#define trace_rcu_quiescent_state_report(rcuname, gpnum, mask, qsmask, level, \ + grplo, grphi, gp_tasks) do { } \ + while (0) +#define trace_rcu_fqs(rcuname, gpnum, cpu, qsevent) do { } while (0) +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,3,0)) +#define trace_rcu_dyntick(polarity, oldnesting, newnesting) do { } while (0) +#else +#define trace_rcu_dyntick(polarity) do { } while (0) +#endif +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,3,0)) +#define trace_rcu_prep_idle(reason) do { } while (0) +#endif +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,4,0)) +#define trace_rcu_callback(rcuname, rhp, qlen_lazy, qlen) do { } while (0) +#define trace_rcu_kfree_callback(rcuname, rhp, offset, qlen_lazy, qlen) \ + do { } while (0) +#define trace_rcu_batch_start(rcuname, qlen_lazy, qlen, blimit) \ + do { } while (0) +#else +#define trace_rcu_callback(rcuname, rhp, qlen) do { } while (0) +#define trace_rcu_kfree_callback(rcuname, rhp, offset, qlen) do { } while (0) +#define trace_rcu_batch_start(rcuname, qlen, blimit) do { } while (0) +#endif +#define trace_rcu_invoke_callback(rcuname, rhp) do { } while (0) +#define trace_rcu_invoke_kfree_callback(rcuname, rhp, offset) do { } while (0) +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,3,0)) +#define trace_rcu_batch_end(rcuname, callbacks_invoked, cb, nr, iit, risk) \ + do { } while (0) +#else +#define trace_rcu_batch_end(rcuname, callbacks_invoked) do { } while (0) +#endif +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,9,0)) +#define trace_rcu_torture_read(rcutorturename, rhp, secs, c_old, c) \ + do { } while (0) +#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3,3,0)) +#define trace_rcu_torture_read(rcutorturename, rhp) do { } while (0) +#endif +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,6,0)) +#define trace_rcu_barrier(name, s, cpu, cnt, done) do { } while (0) +#endif +#endif /* #else #ifdef CONFIG_RCU_TRACE */ + +#endif /* _TRACE_RCU_H */ + +/* This part must be outside protection */ +#include "../../../probes/define_trace.h" --- linux-3.11.0.orig/ubuntu/lttng/instrumentation/events/lttng-module/vmscan.h +++ linux-3.11.0/ubuntu/lttng/instrumentation/events/lttng-module/vmscan.h @@ -0,0 +1,586 @@ +#undef TRACE_SYSTEM +#define TRACE_SYSTEM vmscan + +#if !defined(_TRACE_VMSCAN_H) || defined(TRACE_HEADER_MULTI_READ) +#define _TRACE_VMSCAN_H + +#include +#include +#include +#include +#include +#include + +#ifndef _TRACE_VMSCAN_DEF +#define _TRACE_VMSCAN_DEF +#define RECLAIM_WB_ANON 0x0001u +#define RECLAIM_WB_FILE 0x0002u +#define RECLAIM_WB_MIXED 0x0010u +#define RECLAIM_WB_SYNC 0x0004u /* Unused, all reclaim async */ +#define RECLAIM_WB_ASYNC 0x0008u + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,37)) +#define show_reclaim_flags(flags) \ + (flags) ? __print_flags(flags, "|", \ + {RECLAIM_WB_ANON, "RECLAIM_WB_ANON"}, \ + {RECLAIM_WB_FILE, "RECLAIM_WB_FILE"}, \ + {RECLAIM_WB_MIXED, "RECLAIM_WB_MIXED"}, \ + {RECLAIM_WB_SYNC, "RECLAIM_WB_SYNC"}, \ + {RECLAIM_WB_ASYNC, "RECLAIM_WB_ASYNC"} \ + ) : "RECLAIM_WB_NONE" +#else +#define show_reclaim_flags(flags) \ + (flags) ? __print_flags(flags, "|", \ + {RECLAIM_WB_ANON, "RECLAIM_WB_ANON"}, \ + {RECLAIM_WB_FILE, "RECLAIM_WB_FILE"}, \ + {RECLAIM_WB_SYNC, "RECLAIM_WB_SYNC"}, \ + {RECLAIM_WB_ASYNC, "RECLAIM_WB_ASYNC"} \ + ) : "RECLAIM_WB_NONE" +#endif + +#if ((LINUX_VERSION_CODE <= KERNEL_VERSION(3,0,38)) || \ + LTTNG_KERNEL_RANGE(3,1,0, 3,2,0)) +typedef int isolate_mode_t; +#endif + +#endif + +TRACE_EVENT(mm_vmscan_kswapd_sleep, + + TP_PROTO(int nid), + + TP_ARGS(nid), + + TP_STRUCT__entry( + __field( int, nid ) + ), + + TP_fast_assign( + tp_assign(nid, nid) + ), + + TP_printk("nid=%d", __entry->nid) +) + +TRACE_EVENT(mm_vmscan_kswapd_wake, + + TP_PROTO(int nid, int order), + + TP_ARGS(nid, order), + + TP_STRUCT__entry( + __field( int, nid ) + __field( int, order ) + ), + + TP_fast_assign( + tp_assign(nid, nid) + tp_assign(order, order) + ), + + TP_printk("nid=%d order=%d", __entry->nid, __entry->order) +) + +TRACE_EVENT(mm_vmscan_wakeup_kswapd, + + TP_PROTO(int nid, int zid, int order), + + TP_ARGS(nid, zid, order), + + TP_STRUCT__entry( + __field( int, nid ) + __field( int, zid ) + __field( int, order ) + ), + + TP_fast_assign( + tp_assign(nid, nid) + tp_assign(zid, zid) + tp_assign(order, order) + ), + + TP_printk("nid=%d zid=%d order=%d", + __entry->nid, + __entry->zid, + __entry->order) +) + +DECLARE_EVENT_CLASS(mm_vmscan_direct_reclaim_begin_template, + + TP_PROTO(int order, int may_writepage, gfp_t gfp_flags), + + TP_ARGS(order, may_writepage, gfp_flags), + + TP_STRUCT__entry( + __field( int, order ) + __field( int, may_writepage ) + __field( gfp_t, gfp_flags ) + ), + + TP_fast_assign( + tp_assign(order, order) + tp_assign(may_writepage, may_writepage) + tp_assign(gfp_flags, gfp_flags) + ), + + TP_printk("order=%d may_writepage=%d gfp_flags=%s", + __entry->order, + __entry->may_writepage, + show_gfp_flags(__entry->gfp_flags)) +) + +DEFINE_EVENT(mm_vmscan_direct_reclaim_begin_template, mm_vmscan_direct_reclaim_begin, + + TP_PROTO(int order, int may_writepage, gfp_t gfp_flags), + + TP_ARGS(order, may_writepage, gfp_flags) +) + +DEFINE_EVENT(mm_vmscan_direct_reclaim_begin_template, mm_vmscan_memcg_reclaim_begin, + + TP_PROTO(int order, int may_writepage, gfp_t gfp_flags), + + TP_ARGS(order, may_writepage, gfp_flags) +) + +DEFINE_EVENT(mm_vmscan_direct_reclaim_begin_template, mm_vmscan_memcg_softlimit_reclaim_begin, + + TP_PROTO(int order, int may_writepage, gfp_t gfp_flags), + + TP_ARGS(order, may_writepage, gfp_flags) +) + +DECLARE_EVENT_CLASS(mm_vmscan_direct_reclaim_end_template, + + TP_PROTO(unsigned long nr_reclaimed), + + TP_ARGS(nr_reclaimed), + + TP_STRUCT__entry( + __field( unsigned long, nr_reclaimed ) + ), + + TP_fast_assign( + tp_assign(nr_reclaimed, nr_reclaimed) + ), + + TP_printk("nr_reclaimed=%lu", __entry->nr_reclaimed) +) + +DEFINE_EVENT(mm_vmscan_direct_reclaim_end_template, mm_vmscan_direct_reclaim_end, + + TP_PROTO(unsigned long nr_reclaimed), + + TP_ARGS(nr_reclaimed) +) + +DEFINE_EVENT(mm_vmscan_direct_reclaim_end_template, mm_vmscan_memcg_reclaim_end, + + TP_PROTO(unsigned long nr_reclaimed), + + TP_ARGS(nr_reclaimed) +) + +DEFINE_EVENT(mm_vmscan_direct_reclaim_end_template, mm_vmscan_memcg_softlimit_reclaim_end, + + TP_PROTO(unsigned long nr_reclaimed), + + TP_ARGS(nr_reclaimed) +) + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,1,0)) +TRACE_EVENT(mm_shrink_slab_start, + TP_PROTO(struct shrinker *shr, struct shrink_control *sc, + long nr_objects_to_shrink, unsigned long pgs_scanned, + unsigned long lru_pgs, unsigned long cache_items, + unsigned long long delta, unsigned long total_scan), + + TP_ARGS(shr, sc, nr_objects_to_shrink, pgs_scanned, lru_pgs, + cache_items, delta, total_scan), + + TP_STRUCT__entry( + __field(struct shrinker *, shr) + __field(void *, shrink) + __field(long, nr_objects_to_shrink) + __field(gfp_t, gfp_flags) + __field(unsigned long, pgs_scanned) + __field(unsigned long, lru_pgs) + __field(unsigned long, cache_items) + __field(unsigned long long, delta) + __field(unsigned long, total_scan) + ), + + TP_fast_assign( + tp_assign(shr,shr) + tp_assign(shrink, shr->shrink) + tp_assign(nr_objects_to_shrink, nr_objects_to_shrink) + tp_assign(gfp_flags, sc->gfp_mask) + tp_assign(pgs_scanned, pgs_scanned) + tp_assign(lru_pgs, lru_pgs) + tp_assign(cache_items, cache_items) + tp_assign(delta, delta) + tp_assign(total_scan, total_scan) + ), + + TP_printk("%pF %p: objects to shrink %ld gfp_flags %s pgs_scanned %ld lru_pgs %ld cache items %ld delta %lld total_scan %ld", + __entry->shrink, + __entry->shr, + __entry->nr_objects_to_shrink, + show_gfp_flags(__entry->gfp_flags), + __entry->pgs_scanned, + __entry->lru_pgs, + __entry->cache_items, + __entry->delta, + __entry->total_scan) +) + +TRACE_EVENT(mm_shrink_slab_end, + TP_PROTO(struct shrinker *shr, int shrinker_retval, + long unused_scan_cnt, long new_scan_cnt), + + TP_ARGS(shr, shrinker_retval, unused_scan_cnt, new_scan_cnt), + + TP_STRUCT__entry( + __field(struct shrinker *, shr) + __field(void *, shrink) + __field(long, unused_scan) + __field(long, new_scan) + __field(int, retval) + __field(long, total_scan) + ), + + TP_fast_assign( + tp_assign(shr, shr) + tp_assign(shrink, shr->shrink) + tp_assign(unused_scan, unused_scan_cnt) + tp_assign(new_scan, new_scan_cnt) + tp_assign(retval, shrinker_retval) + tp_assign(total_scan, new_scan_cnt - unused_scan_cnt) + ), + + TP_printk("%pF %p: unused scan count %ld new scan count %ld total_scan %ld last shrinker return val %d", + __entry->shrink, + __entry->shr, + __entry->unused_scan, + __entry->new_scan, + __entry->total_scan, + __entry->retval) +) +#endif + +DECLARE_EVENT_CLASS(mm_vmscan_lru_isolate_template, + + TP_PROTO(int order, + unsigned long nr_requested, + unsigned long nr_scanned, + unsigned long nr_taken, +#if (LINUX_VERSION_CODE < KERNEL_VERSION(3,5,0)) + unsigned long nr_lumpy_taken, + unsigned long nr_lumpy_dirty, + unsigned long nr_lumpy_failed, +#endif +#if (LINUX_VERSION_CODE < KERNEL_VERSION(3,3,0)) + isolate_mode_t isolate_mode +#else + isolate_mode_t isolate_mode, + int file +#endif + ), + + TP_ARGS(order, nr_requested, nr_scanned, nr_taken, +#if (LINUX_VERSION_CODE < KERNEL_VERSION(3,5,0)) + nr_lumpy_taken, nr_lumpy_dirty, nr_lumpy_failed, +#endif +#if (LINUX_VERSION_CODE < KERNEL_VERSION(3,3,0)) + isolate_mode +#else + isolate_mode, file +#endif + ), + + + TP_STRUCT__entry( + __field(int, order) + __field(unsigned long, nr_requested) + __field(unsigned long, nr_scanned) + __field(unsigned long, nr_taken) +#if (LINUX_VERSION_CODE < KERNEL_VERSION(3,5,0)) + __field(unsigned long, nr_lumpy_taken) + __field(unsigned long, nr_lumpy_dirty) + __field(unsigned long, nr_lumpy_failed) +#endif + __field(isolate_mode_t, isolate_mode) +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,3,0)) + __field(int, file) +#endif + ), + + TP_fast_assign( + tp_assign(order, order) + tp_assign(nr_requested, nr_requested) + tp_assign(nr_scanned, nr_scanned) + tp_assign(nr_taken, nr_taken) +#if (LINUX_VERSION_CODE < KERNEL_VERSION(3,5,0)) + tp_assign(nr_lumpy_taken, nr_lumpy_taken) + tp_assign(nr_lumpy_dirty, nr_lumpy_dirty) + tp_assign(nr_lumpy_failed, nr_lumpy_failed) +#endif + tp_assign(isolate_mode, isolate_mode) +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,3,0)) + tp_assign(file, file) +#endif + ), + +#if (LINUX_VERSION_CODE < KERNEL_VERSION(3,3,0)) + TP_printk("isolate_mode=%d order=%d nr_requested=%lu nr_scanned=%lu nr_taken=%lu contig_taken=%lu contig_dirty=%lu contig_failed=%lu", + __entry->isolate_mode, + __entry->order, + __entry->nr_requested, + __entry->nr_scanned, + __entry->nr_taken, + __entry->nr_lumpy_taken, + __entry->nr_lumpy_dirty, + __entry->nr_lumpy_failed) +#elif (LINUX_VERSION_CODE < KERNEL_VERSION(3,5,0)) + TP_printk("isolate_mode=%d order=%d nr_requested=%lu nr_scanned=%lu nr_taken=%lu contig_taken=%lu contig_dirty=%lu contig_failed=%lu file=%d", + __entry->isolate_mode, + __entry->order, + __entry->nr_requested, + __entry->nr_scanned, + __entry->nr_taken, + __entry->nr_lumpy_taken, + __entry->nr_lumpy_dirty, + __entry->nr_lumpy_failed, + __entry->file) +#else + TP_printk("isolate_mode=%d order=%d nr_requested=%lu nr_scanned=%lu nr_taken=%lu file=%d", + __entry->isolate_mode, + __entry->order, + __entry->nr_requested, + __entry->nr_scanned, + __entry->nr_taken, + __entry->file) +#endif +) + +DEFINE_EVENT(mm_vmscan_lru_isolate_template, mm_vmscan_lru_isolate, + + TP_PROTO(int order, + unsigned long nr_requested, + unsigned long nr_scanned, + unsigned long nr_taken, +#if (LINUX_VERSION_CODE < KERNEL_VERSION(3,5,0)) + unsigned long nr_lumpy_taken, + unsigned long nr_lumpy_dirty, + unsigned long nr_lumpy_failed, +#endif +#if (LINUX_VERSION_CODE < KERNEL_VERSION(3,3,0)) + isolate_mode_t isolate_mode +#else + isolate_mode_t isolate_mode, + int file +#endif + ), + + TP_ARGS(order, nr_requested, nr_scanned, nr_taken, +#if (LINUX_VERSION_CODE < KERNEL_VERSION(3,5,0)) + nr_lumpy_taken, nr_lumpy_dirty, nr_lumpy_failed, +#endif +#if (LINUX_VERSION_CODE < KERNEL_VERSION(3,3,0)) + isolate_mode +#else + isolate_mode, file +#endif + ) + +) + +DEFINE_EVENT(mm_vmscan_lru_isolate_template, mm_vmscan_memcg_isolate, + + TP_PROTO(int order, + unsigned long nr_requested, + unsigned long nr_scanned, + unsigned long nr_taken, +#if (LINUX_VERSION_CODE < KERNEL_VERSION(3,5,0)) + unsigned long nr_lumpy_taken, + unsigned long nr_lumpy_dirty, + unsigned long nr_lumpy_failed, +#endif +#if (LINUX_VERSION_CODE < KERNEL_VERSION(3,3,0)) + isolate_mode_t isolate_mode +#else + isolate_mode_t isolate_mode, + int file +#endif + ), + + TP_ARGS(order, nr_requested, nr_scanned, nr_taken, +#if (LINUX_VERSION_CODE < KERNEL_VERSION(3,5,0)) + nr_lumpy_taken, nr_lumpy_dirty, nr_lumpy_failed, +#endif +#if (LINUX_VERSION_CODE < KERNEL_VERSION(3,3,0)) + isolate_mode +#else + isolate_mode, file +#endif + ) +) + +TRACE_EVENT(mm_vmscan_writepage, + + TP_PROTO(struct page *page, + int reclaim_flags), + + TP_ARGS(page, reclaim_flags), + + TP_STRUCT__entry( + __field(struct page *, page) + __field(int, reclaim_flags) + ), + + TP_fast_assign( + tp_assign(page, page) + tp_assign(reclaim_flags, reclaim_flags) + ), + + TP_printk("page=%p pfn=%lu flags=%s", + __entry->page, + page_to_pfn(__entry->page), + show_reclaim_flags(__entry->reclaim_flags)) +) + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,37)) +TRACE_EVENT(mm_vmscan_lru_shrink_inactive, + + TP_PROTO(int nid, int zid, + unsigned long nr_scanned, unsigned long nr_reclaimed, + int priority, int reclaim_flags), + + TP_ARGS(nid, zid, nr_scanned, nr_reclaimed, priority, reclaim_flags), + + TP_STRUCT__entry( + __field(int, nid) + __field(int, zid) + __field(unsigned long, nr_scanned) + __field(unsigned long, nr_reclaimed) + __field(int, priority) + __field(int, reclaim_flags) + ), + + TP_fast_assign( + tp_assign(nid, nid) + tp_assign(zid, zid) + tp_assign(nr_scanned, nr_scanned) + tp_assign(nr_reclaimed, nr_reclaimed) + tp_assign(priority, priority) + tp_assign(reclaim_flags, reclaim_flags) + ), + + TP_printk("nid=%d zid=%d nr_scanned=%ld nr_reclaimed=%ld priority=%d flags=%s", + __entry->nid, __entry->zid, + __entry->nr_scanned, __entry->nr_reclaimed, + __entry->priority, + show_reclaim_flags(__entry->reclaim_flags)) +) +#endif + +#if (LINUX_VERSION_CODE < KERNEL_VERSION(3,5,0)) +TRACE_EVENT_MAP(replace_swap_token, + + mm_vmscan_replace_swap_token, + + TP_PROTO(struct mm_struct *old_mm, + struct mm_struct *new_mm), + + TP_ARGS(old_mm, new_mm), + + TP_STRUCT__entry( + __field(struct mm_struct*, old_mm) + __field(unsigned int, old_prio) + __field(struct mm_struct*, new_mm) + __field(unsigned int, new_prio) + ), + + TP_fast_assign( + tp_assign(old_mm, old_mm) + tp_assign(old_prio, old_mm ? old_mm->token_priority : 0) + tp_assign(new_mm, new_mm) + tp_assign(new_prio, new_mm->token_priority) + ), + + TP_printk("old_token_mm=%p old_prio=%u new_token_mm=%p new_prio=%u", + __entry->old_mm, __entry->old_prio, + __entry->new_mm, __entry->new_prio) +) + +DECLARE_EVENT_CLASS(mm_vmscan_put_swap_token_template, + TP_PROTO(struct mm_struct *swap_token_mm), + + TP_ARGS(swap_token_mm), + + TP_STRUCT__entry( + __field(struct mm_struct*, swap_token_mm) + ), + + TP_fast_assign( + tp_assign(swap_token_mm, swap_token_mm) + ), + + TP_printk("token_mm=%p", __entry->swap_token_mm) +) + +DEFINE_EVENT_MAP(mm_vmscan_put_swap_token_template, put_swap_token, + + mm_vmscan_put_swap_token, + + TP_PROTO(struct mm_struct *swap_token_mm), + TP_ARGS(swap_token_mm) +) + +DEFINE_EVENT_CONDITION_MAP(mm_vmscan_put_swap_token_template, disable_swap_token, + + mm_vmscan_disable_swap_token, + + TP_PROTO(struct mm_struct *swap_token_mm), + TP_ARGS(swap_token_mm), + TP_CONDITION(swap_token_mm != NULL) +) + +TRACE_EVENT_CONDITION_MAP(update_swap_token_priority, + + mm_vmscan_update_swap_token_priority, + + TP_PROTO(struct mm_struct *mm, + unsigned int old_prio, + struct mm_struct *swap_token_mm), + + TP_ARGS(mm, old_prio, swap_token_mm), + + TP_CONDITION(mm->token_priority != old_prio), + + TP_STRUCT__entry( + __field(struct mm_struct*, mm) + __field(unsigned int, old_prio) + __field(unsigned int, new_prio) + __field(struct mm_struct*, swap_token_mm) + __field(unsigned int, swap_token_prio) + ), + + TP_fast_assign( + tp_assign(mm, mm) + tp_assign(old_prio, old_prio) + tp_assign(new_prio, mm->token_priority) + tp_assign(swap_token_mm, swap_token_mm) + tp_assign(swap_token_prio, swap_token_mm ? swap_token_mm->token_priority : 0) + ), + + TP_printk("mm=%p old_prio=%u new_prio=%u swap_token_mm=%p token_prio=%u", + __entry->mm, __entry->old_prio, __entry->new_prio, + __entry->swap_token_mm, __entry->swap_token_prio) +) +#endif + +#endif /* _TRACE_VMSCAN_H */ + +/* This part must be outside protection */ +#include "../../../probes/define_trace.h" --- linux-3.11.0.orig/ubuntu/lttng/instrumentation/events/lttng-module/power.h +++ linux-3.11.0/ubuntu/lttng/instrumentation/events/lttng-module/power.h @@ -0,0 +1,351 @@ +#undef TRACE_SYSTEM +#define TRACE_SYSTEM power + +#if !defined(_TRACE_POWER_H) || defined(TRACE_HEADER_MULTI_READ) +#define _TRACE_POWER_H + +#include +#include +#include + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,38)) +DECLARE_EVENT_CLASS(power_cpu, + + TP_PROTO(unsigned int state, unsigned int cpu_id), + + TP_ARGS(state, cpu_id), + + TP_STRUCT__entry( + __field( u32, state ) + __field( u32, cpu_id ) + ), + + TP_fast_assign( + tp_assign(state, state) + tp_assign(cpu_id, cpu_id) + ), + + TP_printk("state=%lu cpu_id=%lu", (unsigned long)__entry->state, + (unsigned long)__entry->cpu_id) +) + +DEFINE_EVENT_MAP(power_cpu, cpu_idle, + + power_cpu_idle, + + TP_PROTO(unsigned int state, unsigned int cpu_id), + + TP_ARGS(state, cpu_id) +) + +/* This file can get included multiple times, TRACE_HEADER_MULTI_READ at top */ +#ifndef _PWR_EVENT_AVOID_DOUBLE_DEFINING +#define _PWR_EVENT_AVOID_DOUBLE_DEFINING + +#define PWR_EVENT_EXIT -1 +#endif + +DEFINE_EVENT_MAP(power_cpu, cpu_frequency, + + power_cpu_frequency, + + TP_PROTO(unsigned int frequency, unsigned int cpu_id), + + TP_ARGS(frequency, cpu_id) +) + +TRACE_EVENT_MAP(machine_suspend, + + power_machine_suspend, + + TP_PROTO(unsigned int state), + + TP_ARGS(state), + + TP_STRUCT__entry( + __field( u32, state ) + ), + + TP_fast_assign( + tp_assign(state, state) + ), + + TP_printk("state=%lu", (unsigned long)__entry->state) +) +#endif + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,5,0)) +DECLARE_EVENT_CLASS(power_wakeup_source, + + TP_PROTO(const char *name, unsigned int state), + + TP_ARGS(name, state), + + TP_STRUCT__entry( + __string( name, name ) + __field( u64, state ) + ), + + TP_fast_assign( + tp_strcpy(name, name) + tp_assign(state, state) + ), + + TP_printk("%s state=0x%lx", __get_str(name), + (unsigned long)__entry->state) +) + +DEFINE_EVENT_MAP(power_wakeup_source, wakeup_source_activate, + + power_wakeup_source_activate, + + TP_PROTO(const char *name, unsigned int state), + + TP_ARGS(name, state) +) + +DEFINE_EVENT_MAP(power_wakeup_source, wakeup_source_deactivate, + + power_wakeup_source_deactivate, + + TP_PROTO(const char *name, unsigned int state), + + TP_ARGS(name, state) +) +#endif + +#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,38)) +#undef CONFIG_EVENT_POWER_TRACING_DEPRECATED +#define CONFIG_EVENT_POWER_TRACING_DEPRECATED +#define _PWR_EVENT_AVOID_DOUBLE_DEFINING_DEPRECATED +#endif + +#ifdef CONFIG_EVENT_POWER_TRACING_DEPRECATED + +/* + * The power events are used for cpuidle & suspend (power_start, power_end) + * and for cpufreq (power_frequency) + */ +DECLARE_EVENT_CLASS(power, + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,36)) + TP_PROTO(unsigned int type, unsigned int state, unsigned int cpu_id), + + TP_ARGS(type, state, cpu_id), +#else + TP_PROTO(unsigned int type, unsigned int state), + + TP_ARGS(type, state), +#endif + + TP_STRUCT__entry( + __field( u64, type ) + __field( u64, state ) +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,36)) + __field( u64, cpu_id ) +#endif + ), + + TP_fast_assign( + tp_assign(type, type) + tp_assign(state, state) +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,36)) + tp_assign(cpu_id, cpu_id) +#endif + ), + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,36)) + TP_printk("type=%lu state=%lu cpu_id=%lu", (unsigned long)__entry->type, + (unsigned long)__entry->state, (unsigned long)__entry->cpu_id) +#else + TP_printk("type=%lu state=%lu", (unsigned long)__entry->type, + (unsigned long)__entry->state) +#endif +) + +DEFINE_EVENT(power, power_start, + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,36)) + TP_PROTO(unsigned int type, unsigned int state, unsigned int cpu_id), + + TP_ARGS(type, state, cpu_id) +#else + TP_PROTO(unsigned int type, unsigned int state), + + TP_ARGS(type, state) +#endif +) + +DEFINE_EVENT(power, power_frequency, + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,36)) + TP_PROTO(unsigned int type, unsigned int state, unsigned int cpu_id), + + TP_ARGS(type, state, cpu_id) +#else + TP_PROTO(unsigned int type, unsigned int state), + + TP_ARGS(type, state) +#endif +) + +TRACE_EVENT(power_end, + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,36)) + TP_PROTO(unsigned int cpu_id), + + TP_ARGS(cpu_id), +#else + TP_PROTO(int dummy), + + TP_ARGS(dummy), +#endif + + TP_STRUCT__entry( +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,36)) + __field( u64, cpu_id ) +#else + __field( u64, dummy ) +#endif + ), + + TP_fast_assign( +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,36)) + tp_assign(cpu_id, cpu_id) +#else + tp_assign(dummy, 0xffff) +#endif + ), + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,36)) + TP_printk("cpu_id=%lu", (unsigned long)__entry->cpu_id) +#else + TP_printk("dummy=%lu", (unsigned long)__entry->dummy) +#endif +) + +/* Deprecated dummy functions must be protected against multi-declartion */ +#ifndef _PWR_EVENT_AVOID_DOUBLE_DEFINING_DEPRECATED +#define _PWR_EVENT_AVOID_DOUBLE_DEFINING_DEPRECATED + +enum { + POWER_NONE = 0, + POWER_CSTATE = 1, + POWER_PSTATE = 2, +}; +#endif /* _PWR_EVENT_AVOID_DOUBLE_DEFINING_DEPRECATED */ + +#else /* CONFIG_EVENT_POWER_TRACING_DEPRECATED */ + +#ifndef _PWR_EVENT_AVOID_DOUBLE_DEFINING_DEPRECATED +#define _PWR_EVENT_AVOID_DOUBLE_DEFINING_DEPRECATED +enum { + POWER_NONE = 0, + POWER_CSTATE = 1, + POWER_PSTATE = 2, +}; + +/* These dummy declaration have to be ripped out when the deprecated + events get removed */ +static inline void trace_power_start(u64 type, u64 state, u64 cpuid) {}; +static inline void trace_power_end(u64 cpuid) {}; +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,4,0)) +static inline void trace_power_start_rcuidle(u64 type, u64 state, u64 cpuid) {}; +static inline void trace_power_end_rcuidle(u64 cpuid) {}; +#endif +static inline void trace_power_frequency(u64 type, u64 state, u64 cpuid) {}; +#endif /* _PWR_EVENT_AVOID_DOUBLE_DEFINING_DEPRECATED */ + +#endif /* CONFIG_EVENT_POWER_TRACING_DEPRECATED */ + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,37)) +/* + * The clock events are used for clock enable/disable and for + * clock rate change + */ +DECLARE_EVENT_CLASS(power_clock, + + TP_PROTO(const char *name, unsigned int state, unsigned int cpu_id), + + TP_ARGS(name, state, cpu_id), + + TP_STRUCT__entry( + __string( name, name ) + __field( u64, state ) + __field( u64, cpu_id ) + ), + + TP_fast_assign( + tp_strcpy(name, name) + tp_assign(state, state) + tp_assign(cpu_id, cpu_id) + ), + + TP_printk("%s state=%lu cpu_id=%lu", __get_str(name), + (unsigned long)__entry->state, (unsigned long)__entry->cpu_id) +) + +DEFINE_EVENT_MAP(power_clock, clock_enable, + + power_clock_enable, + + TP_PROTO(const char *name, unsigned int state, unsigned int cpu_id), + + TP_ARGS(name, state, cpu_id) +) + +DEFINE_EVENT_MAP(power_clock, clock_disable, + + power_clock_disable, + + TP_PROTO(const char *name, unsigned int state, unsigned int cpu_id), + + TP_ARGS(name, state, cpu_id) +) + +DEFINE_EVENT_MAP(power_clock, clock_set_rate, + + power_clock_set_rate, + + TP_PROTO(const char *name, unsigned int state, unsigned int cpu_id), + + TP_ARGS(name, state, cpu_id) +) + +/* + * The power domain events are used for power domains transitions + */ +DECLARE_EVENT_CLASS(power_domain, + + TP_PROTO(const char *name, unsigned int state, unsigned int cpu_id), + + TP_ARGS(name, state, cpu_id), + + TP_STRUCT__entry( + __string( name, name ) + __field( u64, state ) + __field( u64, cpu_id ) + ), + + TP_fast_assign( + tp_strcpy(name, name) + tp_assign(state, state) + tp_assign(cpu_id, cpu_id) +), + + TP_printk("%s state=%lu cpu_id=%lu", __get_str(name), + (unsigned long)__entry->state, (unsigned long)__entry->cpu_id) +) + +DEFINE_EVENT(power_domain, power_domain_target, + + TP_PROTO(const char *name, unsigned int state, unsigned int cpu_id), + + TP_ARGS(name, state, cpu_id) +) +#endif + +#endif /* _TRACE_POWER_H */ + +/* This part must be outside protection */ +#include "../../../probes/define_trace.h" --- linux-3.11.0.orig/ubuntu/lttng/instrumentation/events/lttng-module/ext4.h +++ linux-3.11.0/ubuntu/lttng/instrumentation/events/lttng-module/ext4.h @@ -0,0 +1,3086 @@ +#undef TRACE_SYSTEM +#define TRACE_SYSTEM ext4 + +#if !defined(_TRACE_EXT4_H) || defined(TRACE_HEADER_MULTI_READ) +#define _TRACE_EXT4_H + +#include +#include +#include + +#ifndef _TRACE_EXT4_DEF_ +#define _TRACE_EXT4_DEF_ +struct ext4_allocation_context; +struct ext4_allocation_request; +struct ext4_prealloc_space; +struct ext4_inode_info; +struct mpage_da_data; +struct ext4_map_blocks; +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,2,0)) +struct ext4_extent; +#endif +#endif + +#define EXT4_I(inode) (container_of(inode, struct ext4_inode_info, vfs_inode)) +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,1,0)) +#define TP_MODE_T __u16 +#else +#define TP_MODE_T umode_t +#endif + +TRACE_EVENT(ext4_free_inode, + TP_PROTO(struct inode *inode), + + TP_ARGS(inode), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( uid_t, uid ) + __field( gid_t, gid ) + __field( __u64, blocks ) + __field( TP_MODE_T, mode ) + ), + + TP_fast_assign( + tp_assign(dev, inode->i_sb->s_dev) + tp_assign(ino, inode->i_ino) +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,5,0)) + tp_assign(uid, i_uid_read(inode)) + tp_assign(gid, i_gid_read(inode)) +#else + tp_assign(uid, inode->i_uid) + tp_assign(gid, inode->i_gid) +#endif + tp_assign(blocks, inode->i_blocks) + tp_assign(mode, inode->i_mode) + ), + + TP_printk("dev %d,%d ino %lu mode 0%o uid %u gid %u blocks %llu", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, __entry->mode, + __entry->uid, __entry->gid, __entry->blocks) +) + +TRACE_EVENT(ext4_request_inode, + TP_PROTO(struct inode *dir, int mode), + + TP_ARGS(dir, mode), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, dir ) + __field( TP_MODE_T, mode ) + ), + + TP_fast_assign( + tp_assign(dev, dir->i_sb->s_dev) + tp_assign(dir, dir->i_ino) + tp_assign(mode, mode) + ), + + TP_printk("dev %d,%d dir %lu mode 0%o", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->dir, __entry->mode) +) + +TRACE_EVENT(ext4_allocate_inode, + TP_PROTO(struct inode *inode, struct inode *dir, int mode), + + TP_ARGS(inode, dir, mode), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( ino_t, dir ) + __field( TP_MODE_T, mode ) + ), + + TP_fast_assign( + tp_assign(dev, inode->i_sb->s_dev) + tp_assign(ino, inode->i_ino) + tp_assign(dir, dir->i_ino) + tp_assign(mode, mode) + ), + + TP_printk("dev %d,%d ino %lu dir %lu mode 0%o", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + (unsigned long) __entry->dir, __entry->mode) +) + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,37)) +TRACE_EVENT(ext4_evict_inode, + TP_PROTO(struct inode *inode), + + TP_ARGS(inode), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( int, nlink ) + ), + + TP_fast_assign( + tp_assign(dev, inode->i_sb->s_dev) + tp_assign(ino, inode->i_ino) + tp_assign(nlink, inode->i_nlink) + ), + + TP_printk("dev %d,%d ino %lu nlink %d", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, __entry->nlink) +) + +TRACE_EVENT(ext4_drop_inode, + TP_PROTO(struct inode *inode, int drop), + + TP_ARGS(inode, drop), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( int, drop ) + ), + + TP_fast_assign( + tp_assign(dev, inode->i_sb->s_dev) + tp_assign(ino, inode->i_ino) + tp_assign(drop, drop) + ), + + TP_printk("dev %d,%d ino %lu drop %d", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, __entry->drop) +) + +TRACE_EVENT(ext4_mark_inode_dirty, + TP_PROTO(struct inode *inode, unsigned long IP), + + TP_ARGS(inode, IP), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field(unsigned long, ip ) + ), + + TP_fast_assign( + tp_assign(dev, inode->i_sb->s_dev) + tp_assign(ino, inode->i_ino) + tp_assign(ip, IP) + ), + + TP_printk("dev %d,%d ino %lu caller %pF", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, (void *)__entry->ip) +) + +TRACE_EVENT(ext4_begin_ordered_truncate, + TP_PROTO(struct inode *inode, loff_t new_size), + + TP_ARGS(inode, new_size), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( loff_t, new_size ) + ), + + TP_fast_assign( + tp_assign(dev, inode->i_sb->s_dev) + tp_assign(ino, inode->i_ino) + tp_assign(new_size, new_size) + ), + + TP_printk("dev %d,%d ino %lu new_size %lld", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + __entry->new_size) +) +#endif + +DECLARE_EVENT_CLASS(ext4__write_begin, + + TP_PROTO(struct inode *inode, loff_t pos, unsigned int len, + unsigned int flags), + + TP_ARGS(inode, pos, len, flags), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( loff_t, pos ) + __field( unsigned int, len ) + __field( unsigned int, flags ) + ), + + TP_fast_assign( + tp_assign(dev, inode->i_sb->s_dev) + tp_assign(ino, inode->i_ino) + tp_assign(pos, pos) + tp_assign(len, len) + tp_assign(flags, flags) + ), + + TP_printk("dev %d,%d ino %lu pos %lld len %u flags %u", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + __entry->pos, __entry->len, __entry->flags) +) + +DEFINE_EVENT(ext4__write_begin, ext4_write_begin, + + TP_PROTO(struct inode *inode, loff_t pos, unsigned int len, + unsigned int flags), + + TP_ARGS(inode, pos, len, flags) +) + +DEFINE_EVENT(ext4__write_begin, ext4_da_write_begin, + + TP_PROTO(struct inode *inode, loff_t pos, unsigned int len, + unsigned int flags), + + TP_ARGS(inode, pos, len, flags) +) + +DECLARE_EVENT_CLASS(ext4__write_end, + TP_PROTO(struct inode *inode, loff_t pos, unsigned int len, + unsigned int copied), + + TP_ARGS(inode, pos, len, copied), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( loff_t, pos ) + __field( unsigned int, len ) + __field( unsigned int, copied ) + ), + + TP_fast_assign( + tp_assign(dev, inode->i_sb->s_dev) + tp_assign(ino, inode->i_ino) + tp_assign(pos, pos) + tp_assign(len, len) + tp_assign(copied, copied) + ), + + TP_printk("dev %d,%d ino %lu pos %lld len %u copied %u", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + __entry->pos, __entry->len, __entry->copied) +) + +DEFINE_EVENT(ext4__write_end, ext4_ordered_write_end, + + TP_PROTO(struct inode *inode, loff_t pos, unsigned int len, + unsigned int copied), + + TP_ARGS(inode, pos, len, copied) +) + +DEFINE_EVENT(ext4__write_end, ext4_writeback_write_end, + + TP_PROTO(struct inode *inode, loff_t pos, unsigned int len, + unsigned int copied), + + TP_ARGS(inode, pos, len, copied) +) + +DEFINE_EVENT(ext4__write_end, ext4_journalled_write_end, + + TP_PROTO(struct inode *inode, loff_t pos, unsigned int len, + unsigned int copied), + + TP_ARGS(inode, pos, len, copied) +) + +DEFINE_EVENT(ext4__write_end, ext4_da_write_end, + + TP_PROTO(struct inode *inode, loff_t pos, unsigned int len, + unsigned int copied), + + TP_ARGS(inode, pos, len, copied) +) + +#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,40)) +TRACE_EVENT(ext4_writepage, + TP_PROTO(struct inode *inode, struct page *page), + + TP_ARGS(inode, page), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( pgoff_t, index ) + + ), + + TP_fast_assign( + tp_assign(dev, inode->i_sb->s_dev) + tp_assign(ino, inode->i_ino) + tp_assign(index, page->index) + ), + + TP_printk("dev %d,%d ino %lu page_index %lu", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, __entry->index) +) +#endif + +TRACE_EVENT(ext4_da_writepages, + TP_PROTO(struct inode *inode, struct writeback_control *wbc), + + TP_ARGS(inode, wbc), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( long, nr_to_write ) + __field( long, pages_skipped ) + __field( loff_t, range_start ) + __field( loff_t, range_end ) + __field( pgoff_t, writeback_index ) +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,39)) + __field( int, sync_mode ) +#endif +#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,37)) + __field( char, nonblocking ) +#endif + __field( char, for_kupdate ) +#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,39)) + __field( char, for_reclaim ) +#endif + __field( char, range_cyclic ) + ), + + TP_fast_assign( + tp_assign(dev, inode->i_sb->s_dev) + tp_assign(ino, inode->i_ino) + tp_assign(nr_to_write, wbc->nr_to_write) + tp_assign(pages_skipped, wbc->pages_skipped) + tp_assign(range_start, wbc->range_start) + tp_assign(range_end, wbc->range_end) + tp_assign(writeback_index, inode->i_mapping->writeback_index) +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,39)) + tp_assign(sync_mode, wbc->sync_mode) +#endif +#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,37)) + tp_assign(nonblocking, wbc->nonblocking) +#endif + tp_assign(for_kupdate, wbc->for_kupdate) +#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,39)) + tp_assign(for_reclaim, wbc->for_reclaim) +#endif + tp_assign(range_cyclic, wbc->range_cyclic) + ), + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,39)) + TP_printk("dev %d,%d ino %lu nr_to_write %ld pages_skipped %ld " + "range_start %lld range_end %lld sync_mode %d " + "for_kupdate %d range_cyclic %d writeback_index %lu", +#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,37)) + TP_printk("dev %d,%d ino %lu nr_to_write %ld pages_skipped %ld " + "range_start %llu range_end %llu " + "for_kupdate %d for_reclaim %d " + "range_cyclic %d writeback_index %lu", +#else + TP_printk("dev %d,%d ino %lu nr_to_write %ld pages_skipped %ld " + "range_start %llu range_end %llu " + "nonblocking %d for_kupdate %d for_reclaim %d " + "range_cyclic %d writeback_index %lu", +#endif + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, __entry->nr_to_write, + __entry->pages_skipped, __entry->range_start, +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,39)) + __entry->range_end, __entry->sync_mode, + __entry->for_kupdate, __entry->range_cyclic, +#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,37)) + __entry->range_end, + __entry->for_kupdate, __entry->for_reclaim, + __entry->range_cyclic, +#else + __entry->range_end, __entry->nonblocking, + __entry->for_kupdate, __entry->for_reclaim, + __entry->range_cyclic, +#endif + (unsigned long) __entry->writeback_index) +) + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,11,0)) + +TRACE_EVENT(ext4_da_write_pages, + TP_PROTO(struct inode *inode, pgoff_t first_page, + struct writeback_control *wbc), + + TP_ARGS(inode, first_page, wbc), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( pgoff_t, first_page ) + __field( long, nr_to_write ) + __field( int, sync_mode ) + ), + + TP_fast_assign( + tp_assign(dev, inode->i_sb->s_dev) + tp_assign(ino, inode->i_ino) + tp_assign(first_page, first_page) + tp_assign(nr_to_write, wbc->nr_to_write) + tp_assign(sync_mode, wbc->sync_mode) + ), + + TP_printk("dev %d,%d ino %lu first_page %lu nr_to_write %ld " + "sync_mode %d", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, __entry->first_page, + __entry->nr_to_write, __entry->sync_mode) +) + +#else + +TRACE_EVENT(ext4_da_write_pages, + TP_PROTO(struct inode *inode, struct mpage_da_data *mpd), + + TP_ARGS(inode, mpd), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( __u64, b_blocknr ) + __field( __u32, b_size ) + __field( __u32, b_state ) + __field( unsigned long, first_page ) + __field( int, io_done ) + __field( int, pages_written ) +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,39)) + __field( int, sync_mode ) +#endif + ), + + TP_fast_assign( + tp_assign(dev, inode->i_sb->s_dev) + tp_assign(ino, inode->i_ino) + tp_assign(b_blocknr, mpd->b_blocknr) + tp_assign(b_size, mpd->b_size) + tp_assign(b_state, mpd->b_state) + tp_assign(first_page, mpd->first_page) + tp_assign(io_done, mpd->io_done) + tp_assign(pages_written, mpd->pages_written) +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,39)) + tp_assign(sync_mode, mpd->wbc->sync_mode) +#endif + ), + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,39)) + TP_printk("dev %d,%d ino %lu b_blocknr %llu b_size %u b_state 0x%04x " + "first_page %lu io_done %d pages_written %d sync_mode %d", +#else + TP_printk("dev %d,%d ino %lu b_blocknr %llu b_size %u b_state 0x%04x " + "first_page %lu io_done %d pages_written %d", +#endif + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + __entry->b_blocknr, __entry->b_size, + __entry->b_state, __entry->first_page, +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,39)) + __entry->io_done, __entry->pages_written, + __entry->sync_mode +#else + __entry->io_done, __entry->pages_written +#endif + ) +) + +#endif + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,11,0)) + +TRACE_EVENT(ext4_da_write_pages_extent, + TP_PROTO(struct inode *inode, struct ext4_map_blocks *map), + + TP_ARGS(inode, map), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( __u64, lblk ) + __field( __u32, len ) + __field( __u32, flags ) + ), + + TP_fast_assign( + tp_assign(dev, inode->i_sb->s_dev) + tp_assign(ino, inode->i_ino) + tp_assign(lblk, map->m_lblk) + tp_assign(len, map->m_len) + tp_assign(flags, map->m_flags) + ), + + TP_printk("dev %d,%d ino %lu lblk %llu len %u flags %s", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, __entry->lblk, __entry->len, + show_mflags(__entry->flags)) +) + +#endif + +TRACE_EVENT(ext4_da_writepages_result, + TP_PROTO(struct inode *inode, struct writeback_control *wbc, + int ret, int pages_written), + + TP_ARGS(inode, wbc, ret, pages_written), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( int, ret ) + __field( int, pages_written ) + __field( long, pages_skipped ) + __field( pgoff_t, writeback_index ) +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,39)) + __field( int, sync_mode ) +#endif +#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,33)) + __field( char, encountered_congestion ) +#endif +#if (LINUX_VERSION_CODE < KERNEL_VERSION(3,1,0)) + __field( char, more_io ) +#endif +#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,35)) + __field( char, no_nrwrite_index_update ) +#endif + ), + + TP_fast_assign( + tp_assign(dev, inode->i_sb->s_dev) + tp_assign(ino, inode->i_ino) + tp_assign(ret, ret) + tp_assign(pages_written, pages_written) + tp_assign(pages_skipped, wbc->pages_skipped) + tp_assign(writeback_index, inode->i_mapping->writeback_index) +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,39)) + tp_assign(sync_mode, wbc->sync_mode) +#endif +#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,33)) + tp_assign(encountered_congestion, wbc->encountered_congestion) +#endif +#if (LINUX_VERSION_CODE < KERNEL_VERSION(3,1,0)) + tp_assign(more_io, wbc->more_io) +#endif +#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,35)) + tp_assign(no_nrwrite_index_update, wbc->no_nrwrite_index_update) +#endif + ), + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,1,0)) + TP_printk("dev %d,%d ino %lu ret %d pages_written %d pages_skipped %ld " + "sync_mode %d writeback_index %lu", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, __entry->ret, + __entry->pages_written, __entry->pages_skipped, + __entry->sync_mode, + (unsigned long) __entry->writeback_index) +#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,39)) + TP_printk("dev %d,%d ino %lu ret %d pages_written %d pages_skipped %ld " + " more_io %d sync_mode %d writeback_index %lu", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, __entry->ret, + __entry->pages_written, __entry->pages_skipped, + __entry->more_io, __entry->sync_mode, + (unsigned long) __entry->writeback_index) +#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,35)) + TP_printk("dev %d,%d ino %lu ret %d pages_written %d pages_skipped %ld " + " more_io %d writeback_index %lu", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, __entry->ret, + __entry->pages_written, __entry->pages_skipped, + __entry->more_io, + (unsigned long) __entry->writeback_index) +#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,33)) + TP_printk("dev %d,%d ino %lu ret %d pages_written %d pages_skipped %ld " + " more_io %d no_nrwrite_index_update %d writeback_index %lu", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, __entry->ret, + __entry->pages_written, __entry->pages_skipped, + __entry->more_io, __entry->no_nrwrite_index_update, + (unsigned long) __entry->writeback_index) +#else + TP_printk("dev %d,%d ino %lu ret %d pages_written %d pages_skipped %ld " + " congestion %d" + " more_io %d no_nrwrite_index_update %d writeback_index %lu", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, __entry->ret, + __entry->pages_written, __entry->pages_skipped, + __entry->encountered_congestion, + __entry->more_io, __entry->no_nrwrite_index_update, + (unsigned long) __entry->writeback_index) +#endif +) + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,39)) +DECLARE_EVENT_CLASS(ext4__page_op, + TP_PROTO(struct page *page), + + TP_ARGS(page), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( pgoff_t, index ) + + ), + + TP_fast_assign( + tp_assign(dev, page->mapping->host->i_sb->s_dev) + tp_assign(ino, page->mapping->host->i_ino) + tp_assign(index, page->index) + ), + + TP_printk("dev %d,%d ino %lu page_index %lu", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + (unsigned long) __entry->index) +) + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,40)) +DEFINE_EVENT(ext4__page_op, ext4_writepage, + + TP_PROTO(struct page *page), + + TP_ARGS(page) +) +#endif + +DEFINE_EVENT(ext4__page_op, ext4_readpage, + + TP_PROTO(struct page *page), + + TP_ARGS(page) +) + +DEFINE_EVENT(ext4__page_op, ext4_releasepage, + + TP_PROTO(struct page *page), + + TP_ARGS(page) +) + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,11,0)) + +DECLARE_EVENT_CLASS(ext4_invalidatepage_op, + TP_PROTO(struct page *page, unsigned int offset, unsigned int length), + + TP_ARGS(page, offset, length), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( pgoff_t, index ) + __field( unsigned int, offset ) + __field( unsigned int, length ) + ), + + TP_fast_assign( + tp_assign(dev, page->mapping->host->i_sb->s_dev) + tp_assign(ino, page->mapping->host->i_ino) + tp_assign(index, page->index) + tp_assign(offset, offset) + tp_assign(length, length) + ), + + TP_printk("dev %d,%d ino %lu page_index %lu offset %u length %u", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + (unsigned long) __entry->index, + __entry->offset, __entry->length) +) + +DEFINE_EVENT(ext4_invalidatepage_op, ext4_invalidatepage, + TP_PROTO(struct page *page, unsigned int offset, unsigned int length), + + TP_ARGS(page, offset, length) +) + +DEFINE_EVENT(ext4_invalidatepage_op, ext4_journalled_invalidatepage, + TP_PROTO(struct page *page, unsigned int offset, unsigned int length), + + TP_ARGS(page, offset, length) +) + +#else + +TRACE_EVENT(ext4_invalidatepage, + TP_PROTO(struct page *page, unsigned long offset), + + TP_ARGS(page, offset), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( pgoff_t, index ) + __field( unsigned long, offset ) + + ), + + TP_fast_assign( + tp_assign(dev, page->mapping->host->i_sb->s_dev) + tp_assign(ino, page->mapping->host->i_ino) + tp_assign(index, page->index) + tp_assign(offset, offset) + ), + + TP_printk("dev %d,%d ino %lu page_index %lu offset %lu", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + (unsigned long) __entry->index, __entry->offset) +) + +#endif + +#endif + +TRACE_EVENT(ext4_discard_blocks, + TP_PROTO(struct super_block *sb, unsigned long long blk, + unsigned long long count), + + TP_ARGS(sb, blk, count), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( __u64, blk ) + __field( __u64, count ) + + ), + + TP_fast_assign( + tp_assign(dev, sb->s_dev) + tp_assign(blk, blk) + tp_assign(count, count) + ), + + TP_printk("dev %d,%d blk %llu count %llu", + MAJOR(__entry->dev), MINOR(__entry->dev), + __entry->blk, __entry->count) +) + +DECLARE_EVENT_CLASS(ext4__mb_new_pa, + TP_PROTO(struct ext4_allocation_context *ac, + struct ext4_prealloc_space *pa), + + TP_ARGS(ac, pa), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( __u64, pa_pstart ) + __field( __u64, pa_lstart ) + __field( __u32, pa_len ) + + ), + + TP_fast_assign( + tp_assign(dev, ac->ac_sb->s_dev) + tp_assign(ino, ac->ac_inode->i_ino) + tp_assign(pa_pstart, pa->pa_pstart) + tp_assign(pa_lstart, pa->pa_lstart) + tp_assign(pa_len, pa->pa_len) + ), + + TP_printk("dev %d,%d ino %lu pstart %llu len %u lstart %llu", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + __entry->pa_pstart, __entry->pa_len, __entry->pa_lstart) +) + +DEFINE_EVENT(ext4__mb_new_pa, ext4_mb_new_inode_pa, + + TP_PROTO(struct ext4_allocation_context *ac, + struct ext4_prealloc_space *pa), + + TP_ARGS(ac, pa) +) + +DEFINE_EVENT(ext4__mb_new_pa, ext4_mb_new_group_pa, + + TP_PROTO(struct ext4_allocation_context *ac, + struct ext4_prealloc_space *pa), + + TP_ARGS(ac, pa) +) + +TRACE_EVENT(ext4_mb_release_inode_pa, + TP_PROTO( +#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,40)) +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,37)) + struct super_block *sb, + struct inode *inode, +#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,36)) + struct super_block *sb, + struct ext4_allocation_context *ac, +#else + struct ext4_allocation_context *ac, +#endif +#endif + struct ext4_prealloc_space *pa, + unsigned long long block, unsigned int count), + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,40)) + TP_ARGS(pa, block, count), +#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,37)) + TP_ARGS(sb, inode, pa, block, count), +#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,36)) + TP_ARGS(sb, ac, pa, block, count), +#else + TP_ARGS(ac, pa, block, count), +#endif + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( __u64, block ) + __field( __u32, count ) + + ), + + TP_fast_assign( +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,40)) + tp_assign(dev, pa->pa_inode->i_sb->s_dev) + tp_assign(ino, pa->pa_inode->i_ino) +#else +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,36)) + tp_assign(dev, sb->s_dev) +#else + tp_assign(dev, ac->ac_sb->s_dev) +#endif +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,37)) + tp_assign(ino, inode->i_ino) +#else + tp_assign(ino, (ac && ac->ac_inode) ? ac->ac_inode->i_ino : 0) +#endif +#endif + tp_assign(block, block) + tp_assign(count, count) + ), + + TP_printk("dev %d,%d ino %lu block %llu count %u", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + __entry->block, __entry->count) +) + +TRACE_EVENT(ext4_mb_release_group_pa, + +#if (LTTNG_KERNEL_RANGE(2,6,40, 3,3,0)) + TP_PROTO(struct ext4_prealloc_space *pa), + + TP_ARGS(pa), +#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,37)) + TP_PROTO(struct super_block *sb, struct ext4_prealloc_space *pa), + + TP_ARGS(sb, pa), +#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,36)) + TP_PROTO(struct super_block *sb, + struct ext4_allocation_context *ac, + struct ext4_prealloc_space *pa), + + TP_ARGS(sb, ac, pa), +#else + TP_PROTO(struct ext4_allocation_context *ac, + struct ext4_prealloc_space *pa), + + TP_ARGS(ac, pa), +#endif + + TP_STRUCT__entry( + __field( dev_t, dev ) +#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,37)) + __field( ino_t, ino ) +#endif + __field( __u64, pa_pstart ) + __field( __u32, pa_len ) + + ), + + TP_fast_assign( +#if (LTTNG_KERNEL_RANGE(2,6,40, 3,3,0)) + tp_assign(dev, pa->pa_inode->i_sb->s_dev) +#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,36)) + tp_assign(dev, sb->s_dev) +#else + tp_assign(dev, ac->ac_sb->s_dev) +#endif +#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,37)) + tp_assign(ino, (ac && ac->ac_inode) ? ac->ac_inode->i_ino : 0) +#endif + tp_assign(pa_pstart, pa->pa_pstart) + tp_assign(pa_len, pa->pa_len) + ), + + TP_printk("dev %d,%d pstart %llu len %u", + MAJOR(__entry->dev), MINOR(__entry->dev), + __entry->pa_pstart, __entry->pa_len) +) + +TRACE_EVENT(ext4_discard_preallocations, + TP_PROTO(struct inode *inode), + + TP_ARGS(inode), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + + ), + + TP_fast_assign( + tp_assign(dev, inode->i_sb->s_dev) + tp_assign(ino, inode->i_ino) + ), + + TP_printk("dev %d,%d ino %lu", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino) +) + +TRACE_EVENT(ext4_mb_discard_preallocations, + TP_PROTO(struct super_block *sb, int needed), + + TP_ARGS(sb, needed), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( int, needed ) + + ), + + TP_fast_assign( + tp_assign(dev, sb->s_dev) + tp_assign(needed, needed) + ), + + TP_printk("dev %d,%d needed %d", + MAJOR(__entry->dev), MINOR(__entry->dev), + __entry->needed) +) + +TRACE_EVENT(ext4_request_blocks, + TP_PROTO(struct ext4_allocation_request *ar), + + TP_ARGS(ar), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( unsigned int, len ) + __field( __u32, logical ) + __field( __u32, lleft ) + __field( __u32, lright ) + __field( __u64, goal ) + __field( __u64, pleft ) + __field( __u64, pright ) + __field( unsigned int, flags ) + ), + + TP_fast_assign( + tp_assign(dev, ar->inode->i_sb->s_dev) + tp_assign(ino, ar->inode->i_ino) + tp_assign(len, ar->len) + tp_assign(logical, ar->logical) + tp_assign(goal, ar->goal) + tp_assign(lleft, ar->lleft) + tp_assign(lright, ar->lright) + tp_assign(pleft, ar->pleft) + tp_assign(pright, ar->pright) + tp_assign(flags, ar->flags) + ), + + TP_printk("dev %d,%d ino %lu flags %u len %u lblk %u goal %llu " + "lleft %u lright %u pleft %llu pright %llu ", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, __entry->flags, + __entry->len, __entry->logical, __entry->goal, + __entry->lleft, __entry->lright, __entry->pleft, + __entry->pright) +) + +TRACE_EVENT(ext4_allocate_blocks, + TP_PROTO(struct ext4_allocation_request *ar, unsigned long long block), + + TP_ARGS(ar, block), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( __u64, block ) + __field( unsigned int, len ) + __field( __u32, logical ) + __field( __u32, lleft ) + __field( __u32, lright ) + __field( __u64, goal ) + __field( __u64, pleft ) + __field( __u64, pright ) + __field( unsigned int, flags ) + ), + + TP_fast_assign( + tp_assign(dev, ar->inode->i_sb->s_dev) + tp_assign(ino, ar->inode->i_ino) + tp_assign(block, block) + tp_assign(len, ar->len) + tp_assign(logical, ar->logical) + tp_assign(goal, ar->goal) + tp_assign(lleft, ar->lleft) + tp_assign(lright, ar->lright) + tp_assign(pleft, ar->pleft) + tp_assign(pright, ar->pright) + tp_assign(flags, ar->flags) + ), + + TP_printk("dev %d,%d ino %lu flags %u len %u block %llu lblk %u " + "goal %llu lleft %u lright %u pleft %llu pright %llu", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, __entry->flags, + __entry->len, __entry->block, __entry->logical, + __entry->goal, __entry->lleft, __entry->lright, + __entry->pleft, __entry->pright) +) + +TRACE_EVENT(ext4_free_blocks, +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,33)) + TP_PROTO(struct inode *inode, __u64 block, unsigned long count, + int flags), + + TP_ARGS(inode, block, count, flags), +#else + TP_PROTO(struct inode *inode, __u64 block, unsigned long count, + int metadata), + + TP_ARGS(inode, block, count, metadata), +#endif + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( __u64, block ) + __field( unsigned long, count ) +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,33)) + __field( int, flags ) + __field( TP_MODE_T, mode ) +#else + __field( int, metadata ) +#endif + ), + + TP_fast_assign( + tp_assign(dev, inode->i_sb->s_dev) + tp_assign(ino, inode->i_ino) + tp_assign(block, block) + tp_assign(count, count) +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,33)) + tp_assign(flags, flags) + tp_assign(mode, inode->i_mode) +#else + tp_assign(metadata, metadata) +#endif + ), + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,33)) + TP_printk("dev %d,%d ino %lu mode 0%o block %llu count %lu flags %d", +#else + TP_printk("dev %d,%d ino %lu block %llu count %lu metadata %d", +#endif + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,33)) + __entry->mode, __entry->block, __entry->count, + __entry->flags) +#else + __entry->block, __entry->count, __entry->metadata) +#endif +) + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,39)) +TRACE_EVENT(ext4_sync_file_enter, +#else +TRACE_EVENT(ext4_sync_file, +#endif +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,35)) + TP_PROTO(struct file *file, int datasync), + + TP_ARGS(file, datasync), +#else + TP_PROTO(struct file *file, struct dentry *dentry, int datasync), + + TP_ARGS(file, dentry, datasync), +#endif + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( ino_t, parent ) + __field( int, datasync ) + ), + + TP_fast_assign( +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,35)) + tp_assign(dev, file->f_path.dentry->d_inode->i_sb->s_dev) + tp_assign(ino, file->f_path.dentry->d_inode->i_ino) + tp_assign(datasync, datasync) + tp_assign(parent, file->f_path.dentry->d_parent->d_inode->i_ino) +#else + tp_assign(dev, dentry->d_inode->i_sb->s_dev) + tp_assign(ino, dentry->d_inode->i_ino) + tp_assign(datasync, datasync) + tp_assign(parent, dentry->d_parent->d_inode->i_ino) +#endif + ), + + TP_printk("dev %d,%d ino %lu parent %lu datasync %d ", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + (unsigned long) __entry->parent, __entry->datasync) +) + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,39)) +TRACE_EVENT(ext4_sync_file_exit, + TP_PROTO(struct inode *inode, int ret), + + TP_ARGS(inode, ret), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( int, ret ) + ), + + TP_fast_assign( + tp_assign(dev, inode->i_sb->s_dev) + tp_assign(ino, inode->i_ino) + tp_assign(ret, ret) + ), + + TP_printk("dev %d,%d ino %lu ret %d", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + __entry->ret) +) +#endif + +TRACE_EVENT(ext4_sync_fs, + TP_PROTO(struct super_block *sb, int wait), + + TP_ARGS(sb, wait), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( int, wait ) + + ), + + TP_fast_assign( + tp_assign(dev, sb->s_dev) + tp_assign(wait, wait) + ), + + TP_printk("dev %d,%d wait %d", + MAJOR(__entry->dev), MINOR(__entry->dev), + __entry->wait) +) + +TRACE_EVENT(ext4_alloc_da_blocks, + TP_PROTO(struct inode *inode), + + TP_ARGS(inode), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( unsigned int, data_blocks ) + __field( unsigned int, meta_blocks ) + ), + + TP_fast_assign( + tp_assign(dev, inode->i_sb->s_dev) + tp_assign(ino, inode->i_ino) + tp_assign(data_blocks, EXT4_I(inode)->i_reserved_data_blocks) + tp_assign(meta_blocks, EXT4_I(inode)->i_reserved_meta_blocks) + ), + + TP_printk("dev %d,%d ino %lu data_blocks %u meta_blocks %u", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + __entry->data_blocks, __entry->meta_blocks) +) + +TRACE_EVENT(ext4_mballoc_alloc, + TP_PROTO(struct ext4_allocation_context *ac), + + TP_ARGS(ac), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( __u32, orig_logical ) + __field( int, orig_start ) + __field( __u32, orig_group ) + __field( int, orig_len ) + __field( __u32, goal_logical ) + __field( int, goal_start ) + __field( __u32, goal_group ) + __field( int, goal_len ) + __field( __u32, result_logical ) + __field( int, result_start ) + __field( __u32, result_group ) + __field( int, result_len ) + __field( __u16, found ) + __field( __u16, groups ) + __field( __u16, buddy ) + __field( __u16, flags ) + __field( __u16, tail ) + __field( __u8, cr ) + ), + + TP_fast_assign( + tp_assign(dev, ac->ac_inode->i_sb->s_dev) + tp_assign(ino, ac->ac_inode->i_ino) + tp_assign(orig_logical, ac->ac_o_ex.fe_logical) + tp_assign(orig_start, ac->ac_o_ex.fe_start) + tp_assign(orig_group, ac->ac_o_ex.fe_group) + tp_assign(orig_len, ac->ac_o_ex.fe_len) + tp_assign(goal_logical, ac->ac_g_ex.fe_logical) + tp_assign(goal_start, ac->ac_g_ex.fe_start) + tp_assign(goal_group, ac->ac_g_ex.fe_group) + tp_assign(goal_len, ac->ac_g_ex.fe_len) + tp_assign(result_logical, ac->ac_f_ex.fe_logical) + tp_assign(result_start, ac->ac_f_ex.fe_start) + tp_assign(result_group, ac->ac_f_ex.fe_group) + tp_assign(result_len, ac->ac_f_ex.fe_len) + tp_assign(found, ac->ac_found) + tp_assign(flags, ac->ac_flags) + tp_assign(groups, ac->ac_groups_scanned) + tp_assign(buddy, ac->ac_buddy) + tp_assign(tail, ac->ac_tail) + tp_assign(cr, ac->ac_criteria) + ), + + TP_printk("dev %d,%d inode %lu orig %u/%d/%u@%u goal %u/%d/%u@%u " + "result %u/%d/%u@%u blks %u grps %u cr %u flags 0x%04x " + "tail %u broken %u", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + __entry->orig_group, __entry->orig_start, + __entry->orig_len, __entry->orig_logical, + __entry->goal_group, __entry->goal_start, + __entry->goal_len, __entry->goal_logical, + __entry->result_group, __entry->result_start, + __entry->result_len, __entry->result_logical, + __entry->found, __entry->groups, __entry->cr, + __entry->flags, __entry->tail, + __entry->buddy ? 1 << __entry->buddy : 0) +) + +TRACE_EVENT(ext4_mballoc_prealloc, + TP_PROTO(struct ext4_allocation_context *ac), + + TP_ARGS(ac), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( __u32, orig_logical ) + __field( int, orig_start ) + __field( __u32, orig_group ) + __field( int, orig_len ) + __field( __u32, result_logical ) + __field( int, result_start ) + __field( __u32, result_group ) + __field( int, result_len ) + ), + + TP_fast_assign( + tp_assign(dev, ac->ac_inode->i_sb->s_dev) + tp_assign(ino, ac->ac_inode->i_ino) + tp_assign(orig_logical, ac->ac_o_ex.fe_logical) + tp_assign(orig_start, ac->ac_o_ex.fe_start) + tp_assign(orig_group, ac->ac_o_ex.fe_group) + tp_assign(orig_len, ac->ac_o_ex.fe_len) + tp_assign(result_logical, ac->ac_b_ex.fe_logical) + tp_assign(result_start, ac->ac_b_ex.fe_start) + tp_assign(result_group, ac->ac_b_ex.fe_group) + tp_assign(result_len, ac->ac_b_ex.fe_len) + ), + + TP_printk("dev %d,%d inode %lu orig %u/%d/%u@%u result %u/%d/%u@%u", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + __entry->orig_group, __entry->orig_start, + __entry->orig_len, __entry->orig_logical, + __entry->result_group, __entry->result_start, + __entry->result_len, __entry->result_logical) +) + +DECLARE_EVENT_CLASS(ext4__mballoc, +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,37)) + TP_PROTO(struct super_block *sb, + struct inode *inode, + ext4_group_t group, + ext4_grpblk_t start, + ext4_grpblk_t len), + + TP_ARGS(sb, inode, group, start, len), +#else + TP_PROTO(struct ext4_allocation_context *ac), + + TP_ARGS(ac), +#endif + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) +#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,37)) + __field( __u32, result_logical ) +#endif + __field( int, result_start ) + __field( __u32, result_group ) + __field( int, result_len ) + ), + + TP_fast_assign( +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,37)) + tp_assign(dev, sb->s_dev) + tp_assign(ino, inode ? inode->i_ino : 0) + tp_assign(result_start, start) + tp_assign(result_group, group) + tp_assign(result_len, len) +#else + tp_assign(dev, ac->ac_sb->s_dev) + tp_assign(ino, ac->ac_inode ? ac->ac_inode->i_ino : 0) + tp_assign(result_logical, ac->ac_b_ex.fe_logical) + tp_assign(result_start, ac->ac_b_ex.fe_start) + tp_assign(result_group, ac->ac_b_ex.fe_group) + tp_assign(result_len, ac->ac_b_ex.fe_len) +#endif + ), + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,37)) + TP_printk("dev %d,%d inode %lu extent %u/%d/%d ", +#else + TP_printk("dev %d,%d inode %lu extent %u/%d/%u@%u ", +#endif + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + __entry->result_group, __entry->result_start, +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,37)) + __entry->result_len +#else + __entry->result_len, __entry->result_logical +#endif + ) +) + +DEFINE_EVENT(ext4__mballoc, ext4_mballoc_discard, + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,37)) + TP_PROTO(struct super_block *sb, + struct inode *inode, + ext4_group_t group, + ext4_grpblk_t start, + ext4_grpblk_t len), + + TP_ARGS(sb, inode, group, start, len) +#else + TP_PROTO(struct ext4_allocation_context *ac), + + TP_ARGS(ac) +#endif +) + +DEFINE_EVENT(ext4__mballoc, ext4_mballoc_free, + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,37)) + TP_PROTO(struct super_block *sb, + struct inode *inode, + ext4_group_t group, + ext4_grpblk_t start, + ext4_grpblk_t len), + + TP_ARGS(sb, inode, group, start, len) +#else + TP_PROTO(struct ext4_allocation_context *ac), + + TP_ARGS(ac) +#endif +) + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,33)) +TRACE_EVENT(ext4_forget, + TP_PROTO(struct inode *inode, int is_metadata, __u64 block), + + TP_ARGS(inode, is_metadata, block), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( __u64, block ) + __field( int, is_metadata ) + __field( TP_MODE_T, mode ) + ), + + TP_fast_assign( + tp_assign(dev, inode->i_sb->s_dev) + tp_assign(ino, inode->i_ino) + tp_assign(block, block) + tp_assign(is_metadata, is_metadata) + tp_assign(mode, inode->i_mode) + ), + + TP_printk("dev %d,%d ino %lu mode 0%o is_metadata %d block %llu", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + __entry->mode, __entry->is_metadata, __entry->block) +) +#endif + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,34)) +TRACE_EVENT(ext4_da_update_reserve_space, +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,2,0)) + TP_PROTO(struct inode *inode, int used_blocks, int quota_claim), + + TP_ARGS(inode, used_blocks, quota_claim), +#else + TP_PROTO(struct inode *inode, int used_blocks), + + TP_ARGS(inode, used_blocks), +#endif + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( __u64, i_blocks ) + __field( int, used_blocks ) + __field( int, reserved_data_blocks ) + __field( int, reserved_meta_blocks ) + __field( int, allocated_meta_blocks ) +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,2,0)) + __field( int, quota_claim ) +#endif + __field( TP_MODE_T, mode ) + ), + + TP_fast_assign( + tp_assign(dev, inode->i_sb->s_dev) + tp_assign(ino, inode->i_ino) + tp_assign(i_blocks, inode->i_blocks) + tp_assign(used_blocks, used_blocks) + tp_assign(reserved_data_blocks, + EXT4_I(inode)->i_reserved_data_blocks) + tp_assign(reserved_meta_blocks, + EXT4_I(inode)->i_reserved_meta_blocks) + tp_assign(allocated_meta_blocks, + EXT4_I(inode)->i_allocated_meta_blocks) +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,2,0)) + tp_assign(quota_claim, quota_claim) +#endif + tp_assign(mode, inode->i_mode) + ), + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,2,0)) + TP_printk("dev %d,%d ino %lu mode 0%o i_blocks %llu used_blocks %d " + "reserved_data_blocks %d reserved_meta_blocks %d " + "allocated_meta_blocks %d quota_claim %d", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + __entry->mode, __entry->i_blocks, + __entry->used_blocks, __entry->reserved_data_blocks, + __entry->reserved_meta_blocks, __entry->allocated_meta_blocks, + __entry->quota_claim) +#else + TP_printk("dev %d,%d ino %lu mode 0%o i_blocks %llu used_blocks %d " + "reserved_data_blocks %d reserved_meta_blocks %d " + "allocated_meta_blocks %d", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + __entry->mode, __entry->i_blocks, + __entry->used_blocks, __entry->reserved_data_blocks, + __entry->reserved_meta_blocks, __entry->allocated_meta_blocks) +#endif +) + +TRACE_EVENT(ext4_da_reserve_space, + TP_PROTO(struct inode *inode, int md_needed), + + TP_ARGS(inode, md_needed), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( __u64, i_blocks ) + __field( int, md_needed ) + __field( int, reserved_data_blocks ) + __field( int, reserved_meta_blocks ) + __field( TP_MODE_T, mode ) + ), + + TP_fast_assign( + tp_assign(dev, inode->i_sb->s_dev) + tp_assign(ino, inode->i_ino) + tp_assign(i_blocks, inode->i_blocks) + tp_assign(md_needed, md_needed) + tp_assign(reserved_data_blocks, + EXT4_I(inode)->i_reserved_data_blocks) + tp_assign(reserved_meta_blocks, + EXT4_I(inode)->i_reserved_meta_blocks) + tp_assign(mode, inode->i_mode) + ), + + TP_printk("dev %d,%d ino %lu mode 0%o i_blocks %llu md_needed %d " + "reserved_data_blocks %d reserved_meta_blocks %d", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + __entry->mode, __entry->i_blocks, + __entry->md_needed, __entry->reserved_data_blocks, + __entry->reserved_meta_blocks) +) + +TRACE_EVENT(ext4_da_release_space, + TP_PROTO(struct inode *inode, int freed_blocks), + + TP_ARGS(inode, freed_blocks), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( __u64, i_blocks ) + __field( int, freed_blocks ) + __field( int, reserved_data_blocks ) + __field( int, reserved_meta_blocks ) + __field( int, allocated_meta_blocks ) + __field( TP_MODE_T, mode ) + ), + + TP_fast_assign( + tp_assign(dev, inode->i_sb->s_dev) + tp_assign(ino, inode->i_ino) + tp_assign(i_blocks, inode->i_blocks) + tp_assign(freed_blocks, freed_blocks) + tp_assign(reserved_data_blocks, + EXT4_I(inode)->i_reserved_data_blocks) + tp_assign(reserved_meta_blocks, + EXT4_I(inode)->i_reserved_meta_blocks) + tp_assign(allocated_meta_blocks, + EXT4_I(inode)->i_allocated_meta_blocks) + tp_assign(mode, inode->i_mode) + ), + + TP_printk("dev %d,%d ino %lu mode 0%o i_blocks %llu freed_blocks %d " + "reserved_data_blocks %d reserved_meta_blocks %d " + "allocated_meta_blocks %d", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + __entry->mode, __entry->i_blocks, + __entry->freed_blocks, __entry->reserved_data_blocks, + __entry->reserved_meta_blocks, __entry->allocated_meta_blocks) +) +#endif + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,35)) +DECLARE_EVENT_CLASS(ext4__bitmap_load, + TP_PROTO(struct super_block *sb, unsigned long group), + + TP_ARGS(sb, group), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( __u32, group ) + + ), + + TP_fast_assign( + tp_assign(dev, sb->s_dev) + tp_assign(group, group) + ), + + TP_printk("dev %d,%d group %u", + MAJOR(__entry->dev), MINOR(__entry->dev), + __entry->group) +) + +DEFINE_EVENT(ext4__bitmap_load, ext4_mb_bitmap_load, + + TP_PROTO(struct super_block *sb, unsigned long group), + + TP_ARGS(sb, group) +) + +DEFINE_EVENT(ext4__bitmap_load, ext4_mb_buddy_bitmap_load, + + TP_PROTO(struct super_block *sb, unsigned long group), + + TP_ARGS(sb, group) +) +#endif + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,39)) +DEFINE_EVENT(ext4__bitmap_load, ext4_read_block_bitmap_load, + + TP_PROTO(struct super_block *sb, unsigned long group), + + TP_ARGS(sb, group) +) + +DEFINE_EVENT(ext4__bitmap_load, ext4_load_inode_bitmap, + + TP_PROTO(struct super_block *sb, unsigned long group), + + TP_ARGS(sb, group) +) + +TRACE_EVENT(ext4_direct_IO_enter, + TP_PROTO(struct inode *inode, loff_t offset, unsigned long len, int rw), + + TP_ARGS(inode, offset, len, rw), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( loff_t, pos ) + __field( unsigned long, len ) + __field( int, rw ) + ), + + TP_fast_assign( + tp_assign(dev, inode->i_sb->s_dev) + tp_assign(ino, inode->i_ino) + tp_assign(pos, offset) + tp_assign(len, len) + tp_assign(rw, rw) + ), + + TP_printk("dev %d,%d ino %lu pos %lld len %lu rw %d", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + __entry->pos, __entry->len, __entry->rw) +) + +TRACE_EVENT(ext4_direct_IO_exit, + TP_PROTO(struct inode *inode, loff_t offset, unsigned long len, + int rw, int ret), + + TP_ARGS(inode, offset, len, rw, ret), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( loff_t, pos ) + __field( unsigned long, len ) + __field( int, rw ) + __field( int, ret ) + ), + + TP_fast_assign( + tp_assign(dev, inode->i_sb->s_dev) + tp_assign(ino, inode->i_ino) + tp_assign(pos, offset) + tp_assign(len, len) + tp_assign(rw, rw) + tp_assign(ret, ret) + ), + + TP_printk("dev %d,%d ino %lu pos %lld len %lu rw %d ret %d", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + __entry->pos, __entry->len, + __entry->rw, __entry->ret) +) + +TRACE_EVENT(ext4_fallocate_enter, + TP_PROTO(struct inode *inode, loff_t offset, loff_t len, int mode), + + TP_ARGS(inode, offset, len, mode), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( loff_t, pos ) + __field( loff_t, len ) + __field( int, mode ) + ), + + TP_fast_assign( + tp_assign(dev, inode->i_sb->s_dev) + tp_assign(ino, inode->i_ino) + tp_assign(pos, offset) + tp_assign(len, len) + tp_assign(mode, mode) + ), + + TP_printk("dev %d,%d ino %lu pos %lld len %lld mode %d", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, __entry->pos, + __entry->len, __entry->mode) +) + +TRACE_EVENT(ext4_fallocate_exit, + TP_PROTO(struct inode *inode, loff_t offset, + unsigned int max_blocks, int ret), + + TP_ARGS(inode, offset, max_blocks, ret), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( loff_t, pos ) + __field( unsigned int, blocks ) + __field( int, ret ) + ), + + TP_fast_assign( + tp_assign(dev, inode->i_sb->s_dev) + tp_assign(ino, inode->i_ino) + tp_assign(pos, offset) + tp_assign(blocks, max_blocks) + tp_assign(ret, ret) + ), + + TP_printk("dev %d,%d ino %lu pos %lld blocks %u ret %d", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + __entry->pos, __entry->blocks, + __entry->ret) +) + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,11,0)) + +TRACE_EVENT(ext4_punch_hole, + TP_PROTO(struct inode *inode, loff_t offset, loff_t len), + + TP_ARGS(inode, offset, len), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( loff_t, offset ) + __field( loff_t, len ) + ), + + TP_fast_assign( + tp_assign(dev, inode->i_sb->s_dev) + tp_assign(ino, inode->i_ino) + tp_assign(offset, offset) + tp_assign(len, len) + ), + + TP_printk("dev %d,%d ino %lu offset %lld len %lld", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + __entry->offset, __entry->len) +) + +#endif + +TRACE_EVENT(ext4_unlink_enter, + TP_PROTO(struct inode *parent, struct dentry *dentry), + + TP_ARGS(parent, dentry), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( ino_t, parent ) + __field( loff_t, size ) + ), + + TP_fast_assign( + tp_assign(dev, dentry->d_inode->i_sb->s_dev) + tp_assign(ino, dentry->d_inode->i_ino) + tp_assign(parent, parent->i_ino) + tp_assign(size, dentry->d_inode->i_size) + ), + + TP_printk("dev %d,%d ino %lu size %lld parent %lu", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, __entry->size, + (unsigned long) __entry->parent) +) + +TRACE_EVENT(ext4_unlink_exit, + TP_PROTO(struct dentry *dentry, int ret), + + TP_ARGS(dentry, ret), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( int, ret ) + ), + + TP_fast_assign( + tp_assign(dev, dentry->d_inode->i_sb->s_dev) + tp_assign(ino, dentry->d_inode->i_ino) + tp_assign(ret, ret) + ), + + TP_printk("dev %d,%d ino %lu ret %d", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + __entry->ret) +) + +DECLARE_EVENT_CLASS(ext4__truncate, + TP_PROTO(struct inode *inode), + + TP_ARGS(inode), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( __u64, blocks ) + ), + + TP_fast_assign( + tp_assign(dev, inode->i_sb->s_dev) + tp_assign(ino, inode->i_ino) + tp_assign(blocks, inode->i_blocks) + ), + + TP_printk("dev %d,%d ino %lu blocks %llu", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, __entry->blocks) +) + +DEFINE_EVENT(ext4__truncate, ext4_truncate_enter, + + TP_PROTO(struct inode *inode), + + TP_ARGS(inode) +) + +DEFINE_EVENT(ext4__truncate, ext4_truncate_exit, + + TP_PROTO(struct inode *inode), + + TP_ARGS(inode) +) + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,2,0)) +/* 'ux' is the uninitialized extent. */ +TRACE_EVENT(ext4_ext_convert_to_initialized_enter, + TP_PROTO(struct inode *inode, struct ext4_map_blocks *map, + struct ext4_extent *ux), + + TP_ARGS(inode, map, ux), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( ext4_lblk_t, m_lblk ) + __field( unsigned, m_len ) + __field( ext4_lblk_t, u_lblk ) + __field( unsigned, u_len ) + __field( ext4_fsblk_t, u_pblk ) + ), + + TP_fast_assign( + tp_assign(dev, inode->i_sb->s_dev) + tp_assign(ino, inode->i_ino) + tp_assign(m_lblk, map->m_lblk) + tp_assign(m_len, map->m_len) + tp_assign(u_lblk, le32_to_cpu(ux->ee_block)) + tp_assign(u_len, ext4_ext_get_actual_len(ux)) + tp_assign(u_pblk, ext4_ext_pblock(ux)) + ), + + TP_printk("dev %d,%d ino %lu m_lblk %u m_len %u u_lblk %u u_len %u " + "u_pblk %llu", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + __entry->m_lblk, __entry->m_len, + __entry->u_lblk, __entry->u_len, __entry->u_pblk) +) + +/* + * 'ux' is the uninitialized extent. + * 'ix' is the initialized extent to which blocks are transferred. + */ +TRACE_EVENT(ext4_ext_convert_to_initialized_fastpath, + TP_PROTO(struct inode *inode, struct ext4_map_blocks *map, + struct ext4_extent *ux, struct ext4_extent *ix), + + TP_ARGS(inode, map, ux, ix), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( ext4_lblk_t, m_lblk ) + __field( unsigned, m_len ) + __field( ext4_lblk_t, u_lblk ) + __field( unsigned, u_len ) + __field( ext4_fsblk_t, u_pblk ) + __field( ext4_lblk_t, i_lblk ) + __field( unsigned, i_len ) + __field( ext4_fsblk_t, i_pblk ) + ), + + TP_fast_assign( + tp_assign(dev, inode->i_sb->s_dev) + tp_assign(ino, inode->i_ino) + tp_assign(m_lblk, map->m_lblk) + tp_assign(m_len, map->m_len) + tp_assign(u_lblk, le32_to_cpu(ux->ee_block)) + tp_assign(u_len, ext4_ext_get_actual_len(ux)) + tp_assign(u_pblk, ext4_ext_pblock(ux)) + tp_assign(i_lblk, le32_to_cpu(ix->ee_block)) + tp_assign(i_len, ext4_ext_get_actual_len(ix)) + tp_assign(i_pblk, ext4_ext_pblock(ix)) + ), + + TP_printk("dev %d,%d ino %lu m_lblk %u m_len %u " + "u_lblk %u u_len %u u_pblk %llu " + "i_lblk %u i_len %u i_pblk %llu ", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + __entry->m_lblk, __entry->m_len, + __entry->u_lblk, __entry->u_len, __entry->u_pblk, + __entry->i_lblk, __entry->i_len, __entry->i_pblk) +) +#endif + +DECLARE_EVENT_CLASS(ext4__map_blocks_enter, + TP_PROTO(struct inode *inode, ext4_lblk_t lblk, + unsigned int len, unsigned int flags), + + TP_ARGS(inode, lblk, len, flags), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( ext4_lblk_t, lblk ) + __field( unsigned int, len ) + __field( unsigned int, flags ) + ), + + TP_fast_assign( + tp_assign(dev, inode->i_sb->s_dev) + tp_assign(ino, inode->i_ino) + tp_assign(lblk, lblk) + tp_assign(len, len) + tp_assign(flags, flags) + ), + + TP_printk("dev %d,%d ino %lu lblk %u len %u flags %u", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + __entry->lblk, __entry->len, __entry->flags) +) + +DEFINE_EVENT(ext4__map_blocks_enter, ext4_ext_map_blocks_enter, + TP_PROTO(struct inode *inode, ext4_lblk_t lblk, + unsigned len, unsigned flags), + + TP_ARGS(inode, lblk, len, flags) +) + +DEFINE_EVENT(ext4__map_blocks_enter, ext4_ind_map_blocks_enter, + TP_PROTO(struct inode *inode, ext4_lblk_t lblk, + unsigned len, unsigned flags), + + TP_ARGS(inode, lblk, len, flags) +) + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,11,0)) + +DECLARE_EVENT_CLASS(ext4__map_blocks_exit, + TP_PROTO(struct inode *inode, unsigned flags, struct ext4_map_blocks *map, + int ret), + + TP_ARGS(inode, flags, map, ret), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( unsigned int, flags ) + __field( ext4_fsblk_t, pblk ) + __field( ext4_lblk_t, lblk ) + __field( unsigned int, len ) + __field( unsigned int, mflags ) + __field( int, ret ) + ), + + TP_fast_assign( + tp_assign(dev, inode->i_sb->s_dev) + tp_assign(ino, inode->i_ino) + tp_assign(flags, flags) + tp_assign(pblk, map->m_pblk) + tp_assign(lblk, map->m_lblk) + tp_assign(len, map->m_len) + tp_assign(mflags, map->m_flags) + tp_assign(ret, ret) + ), + + TP_printk("dev %d,%d ino %lu flags %s lblk %u pblk %llu len %u " + "mflags %s ret %d", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + show_map_flags(__entry->flags), __entry->lblk, __entry->pblk, + __entry->len, show_mflags(__entry->mflags), __entry->ret) +) + +DEFINE_EVENT(ext4__map_blocks_exit, ext4_ext_map_blocks_exit, + TP_PROTO(struct inode *inode, unsigned flags, + struct ext4_map_blocks *map, int ret), + + TP_ARGS(inode, flags, map, ret) +) + +DEFINE_EVENT(ext4__map_blocks_exit, ext4_ind_map_blocks_exit, + TP_PROTO(struct inode *inode, unsigned flags, + struct ext4_map_blocks *map, int ret), + + TP_ARGS(inode, flags, map, ret) +) + +#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3,8,0)) + +DECLARE_EVENT_CLASS(ext4__map_blocks_exit, + TP_PROTO(struct inode *inode, struct ext4_map_blocks *map, int ret), + + TP_ARGS(inode, map, ret), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( ext4_fsblk_t, pblk ) + __field( ext4_lblk_t, lblk ) + __field( unsigned int, len ) + __field( unsigned int, flags ) + __field( int, ret ) + ), + + TP_fast_assign( + tp_assign(dev, inode->i_sb->s_dev) + tp_assign(ino, inode->i_ino) + tp_assign(pblk, map->m_pblk) + tp_assign(lblk, map->m_lblk) + tp_assign(len, map->m_len) + tp_assign(flags, map->m_flags) + tp_assign(ret, ret) + ), + + TP_printk("dev %d,%d ino %lu lblk %u pblk %llu len %u flags %x ret %d", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + __entry->lblk, __entry->pblk, + __entry->len, __entry->flags, __entry->ret) +) + +DEFINE_EVENT(ext4__map_blocks_exit, ext4_ext_map_blocks_exit, + TP_PROTO(struct inode *inode, struct ext4_map_blocks *map, int ret), + + TP_ARGS(inode, map, ret) +) + +DEFINE_EVENT(ext4__map_blocks_exit, ext4_ind_map_blocks_exit, + TP_PROTO(struct inode *inode, struct ext4_map_blocks *map, int ret), + + TP_ARGS(inode, map, ret) +) + +#else /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,8,0)) */ + +DECLARE_EVENT_CLASS(ext4__map_blocks_exit, + TP_PROTO(struct inode *inode, ext4_lblk_t lblk, + ext4_fsblk_t pblk, unsigned int len, int ret), + + TP_ARGS(inode, lblk, pblk, len, ret), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( ext4_fsblk_t, pblk ) + __field( ext4_lblk_t, lblk ) + __field( unsigned int, len ) + __field( int, ret ) + ), + + TP_fast_assign( + tp_assign(dev, inode->i_sb->s_dev) + tp_assign(ino, inode->i_ino) + tp_assign(pblk, pblk) + tp_assign(lblk, lblk) + tp_assign(len, len) + tp_assign(ret, ret) + ), + + TP_printk("dev %d,%d ino %lu lblk %u pblk %llu len %u ret %d", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + __entry->lblk, __entry->pblk, + __entry->len, __entry->ret) +) + +DEFINE_EVENT(ext4__map_blocks_exit, ext4_ext_map_blocks_exit, + TP_PROTO(struct inode *inode, ext4_lblk_t lblk, + ext4_fsblk_t pblk, unsigned len, int ret), + + TP_ARGS(inode, lblk, pblk, len, ret) +) + +DEFINE_EVENT(ext4__map_blocks_exit, ext4_ind_map_blocks_exit, + TP_PROTO(struct inode *inode, ext4_lblk_t lblk, + ext4_fsblk_t pblk, unsigned len, int ret), + + TP_ARGS(inode, lblk, pblk, len, ret) +) + +#endif /* #else #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,8,0)) */ + +TRACE_EVENT(ext4_ext_load_extent, + TP_PROTO(struct inode *inode, ext4_lblk_t lblk, ext4_fsblk_t pblk), + + TP_ARGS(inode, lblk, pblk), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( ext4_fsblk_t, pblk ) + __field( ext4_lblk_t, lblk ) + ), + + TP_fast_assign( + tp_assign(dev, inode->i_sb->s_dev) + tp_assign(ino, inode->i_ino) + tp_assign(pblk, pblk) + tp_assign(lblk, lblk) + ), + + TP_printk("dev %d,%d ino %lu lblk %u pblk %llu", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + __entry->lblk, __entry->pblk) +) + +TRACE_EVENT(ext4_load_inode, + TP_PROTO(struct inode *inode), + + TP_ARGS(inode), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + ), + + TP_fast_assign( + tp_assign(dev, inode->i_sb->s_dev) + tp_assign(ino, inode->i_ino) + ), + + TP_printk("dev %d,%d ino %ld", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino) +) +#endif + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,11,0)) + +TRACE_EVENT(ext4_journal_start, + TP_PROTO(struct super_block *sb, int blocks, int rsv_blocks, + unsigned long IP), + + TP_ARGS(sb, blocks, rsv_blocks, IP), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field(unsigned long, ip ) + __field( int, blocks ) + __field( int, rsv_blocks ) + ), + + TP_fast_assign( + tp_assign(dev, sb->s_dev) + tp_assign(ip, IP) + tp_assign(blocks, blocks) + tp_assign(rsv_blocks, rsv_blocks) + ), + + TP_printk("dev %d,%d blocks, %d rsv_blocks, %d caller %pF", + MAJOR(__entry->dev), MINOR(__entry->dev), + __entry->blocks, __entry->rsv_blocks, (void *)__entry->ip) +) + +TRACE_EVENT(ext4_journal_start_reserved, + TP_PROTO(struct super_block *sb, int blocks, unsigned long IP), + + TP_ARGS(sb, blocks, IP), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field(unsigned long, ip ) + __field( int, blocks ) + ), + + TP_fast_assign( + tp_assign(dev, sb->s_dev) + tp_assign(ip, IP) + tp_assign(blocks, blocks) + ), + + TP_printk("dev %d,%d blocks, %d caller %pF", + MAJOR(__entry->dev), MINOR(__entry->dev), + __entry->blocks, (void *)__entry->ip) +) + +#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3,1,0)) + +TRACE_EVENT(ext4_journal_start, + TP_PROTO(struct super_block *sb, int nblocks, unsigned long IP), + + TP_ARGS(sb, nblocks, IP), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field(unsigned long, ip ) + __field( int, nblocks ) + ), + + TP_fast_assign( + tp_assign(dev, sb->s_dev) + tp_assign(ip, IP) + tp_assign(nblocks, nblocks) + ), + + TP_printk("dev %d,%d nblocks %d caller %pF", + MAJOR(__entry->dev), MINOR(__entry->dev), + __entry->nblocks, (void *)__entry->ip) +) + +DECLARE_EVENT_CLASS(ext4__trim, + TP_PROTO(struct super_block *sb, + ext4_group_t group, + ext4_grpblk_t start, + ext4_grpblk_t len), + + TP_ARGS(sb, group, start, len), + + TP_STRUCT__entry( + __field( int, dev_major ) + __field( int, dev_minor ) + __field( __u32, group ) + __field( int, start ) + __field( int, len ) + ), + + TP_fast_assign( + tp_assign(dev_major, MAJOR(sb->s_dev)) + tp_assign(dev_minor, MINOR(sb->s_dev)) + tp_assign(group, group) + tp_assign(start, start) + tp_assign(len, len) + ), + + TP_printk("dev %d,%d group %u, start %d, len %d", + __entry->dev_major, __entry->dev_minor, + __entry->group, __entry->start, __entry->len) +) + +DEFINE_EVENT(ext4__trim, ext4_trim_extent, + + TP_PROTO(struct super_block *sb, + ext4_group_t group, + ext4_grpblk_t start, + ext4_grpblk_t len), + + TP_ARGS(sb, group, start, len) +) + +DEFINE_EVENT(ext4__trim, ext4_trim_all_free, + + TP_PROTO(struct super_block *sb, + ext4_group_t group, + ext4_grpblk_t start, + ext4_grpblk_t len), + + TP_ARGS(sb, group, start, len) +) +#endif + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,2,0)) + +TRACE_EVENT(ext4_ext_handle_uninitialized_extents, +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,8,0)) + TP_PROTO(struct inode *inode, struct ext4_map_blocks *map, int flags, + unsigned int allocated, ext4_fsblk_t newblock), + + TP_ARGS(inode, map, flags, allocated, newblock), +#else /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,8,0)) */ + TP_PROTO(struct inode *inode, struct ext4_map_blocks *map, + unsigned int allocated, ext4_fsblk_t newblock), + + TP_ARGS(inode, map, allocated, newblock), +#endif /* #else #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,8,0)) */ + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( int, flags ) + __field( ext4_lblk_t, lblk ) + __field( ext4_fsblk_t, pblk ) + __field( unsigned int, len ) + __field( unsigned int, allocated ) + __field( ext4_fsblk_t, newblk ) + ), + + TP_fast_assign( + tp_assign(dev, inode->i_sb->s_dev) + tp_assign(ino, inode->i_ino) +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,8,0)) + tp_assign(flags, flags) +#else /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,8,0)) */ + tp_assign(flags, map->m_flags) +#endif /* #else #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,8,0)) */ + tp_assign(lblk, map->m_lblk) + tp_assign(pblk, map->m_pblk) + tp_assign(len, map->m_len) + tp_assign(allocated, allocated) + tp_assign(newblk, newblock) + ), + + TP_printk("dev %d,%d ino %lu m_lblk %u m_pblk %llu m_len %u flags %d" + "allocated %d newblock %llu", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + (unsigned) __entry->lblk, (unsigned long long) __entry->pblk, + __entry->len, __entry->flags, + (unsigned int) __entry->allocated, + (unsigned long long) __entry->newblk) +) + +TRACE_EVENT(ext4_get_implied_cluster_alloc_exit, + TP_PROTO(struct super_block *sb, struct ext4_map_blocks *map, int ret), + + TP_ARGS(sb, map, ret), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( unsigned int, flags ) + __field( ext4_lblk_t, lblk ) + __field( ext4_fsblk_t, pblk ) + __field( unsigned int, len ) + __field( int, ret ) + ), + + TP_fast_assign( + tp_assign(dev, sb->s_dev) + tp_assign(flags, map->m_flags) + tp_assign(lblk, map->m_lblk) + tp_assign(pblk, map->m_pblk) + tp_assign(len, map->m_len) + tp_assign(ret, ret) + ), + + TP_printk("dev %d,%d m_lblk %u m_pblk %llu m_len %u m_flags %u ret %d", + MAJOR(__entry->dev), MINOR(__entry->dev), + __entry->lblk, (unsigned long long) __entry->pblk, + __entry->len, __entry->flags, __entry->ret) +) + +TRACE_EVENT(ext4_ext_put_in_cache, + TP_PROTO(struct inode *inode, ext4_lblk_t lblk, unsigned int len, + ext4_fsblk_t start), + + TP_ARGS(inode, lblk, len, start), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( ext4_lblk_t, lblk ) + __field( unsigned int, len ) + __field( ext4_fsblk_t, start ) + ), + + TP_fast_assign( + tp_assign(dev, inode->i_sb->s_dev) + tp_assign(ino, inode->i_ino) + tp_assign(lblk, lblk) + tp_assign(len, len) + tp_assign(start, start) + ), + + TP_printk("dev %d,%d ino %lu lblk %u len %u start %llu", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + (unsigned) __entry->lblk, + __entry->len, + (unsigned long long) __entry->start) +) + +TRACE_EVENT(ext4_ext_in_cache, + TP_PROTO(struct inode *inode, ext4_lblk_t lblk, int ret), + + TP_ARGS(inode, lblk, ret), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( ext4_lblk_t, lblk ) + __field( int, ret ) + ), + + TP_fast_assign( + tp_assign(dev, inode->i_sb->s_dev) + tp_assign(ino, inode->i_ino) + tp_assign(lblk, lblk) + tp_assign(ret, ret) + ), + + TP_printk("dev %d,%d ino %lu lblk %u ret %d", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + (unsigned) __entry->lblk, + __entry->ret) + +) + +TRACE_EVENT(ext4_find_delalloc_range, + TP_PROTO(struct inode *inode, ext4_lblk_t from, ext4_lblk_t to, + int reverse, int found, ext4_lblk_t found_blk), + + TP_ARGS(inode, from, to, reverse, found, found_blk), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( ext4_lblk_t, from ) + __field( ext4_lblk_t, to ) + __field( int, reverse ) + __field( int, found ) + __field( ext4_lblk_t, found_blk ) + ), + + TP_fast_assign( + tp_assign(dev, inode->i_sb->s_dev) + tp_assign(ino, inode->i_ino) + tp_assign(from, from) + tp_assign(to, to) + tp_assign(reverse, reverse) + tp_assign(found, found) + tp_assign(found_blk, found_blk) + ), + + TP_printk("dev %d,%d ino %lu from %u to %u reverse %d found %d " + "(blk = %u)", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + (unsigned) __entry->from, (unsigned) __entry->to, + __entry->reverse, __entry->found, + (unsigned) __entry->found_blk) +) + +TRACE_EVENT(ext4_get_reserved_cluster_alloc, + TP_PROTO(struct inode *inode, ext4_lblk_t lblk, unsigned int len), + + TP_ARGS(inode, lblk, len), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( ext4_lblk_t, lblk ) + __field( unsigned int, len ) + ), + + TP_fast_assign( + tp_assign(dev, inode->i_sb->s_dev) + tp_assign(ino, inode->i_ino) + tp_assign(lblk, lblk) + tp_assign(len, len) + ), + + TP_printk("dev %d,%d ino %lu lblk %u len %u", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + (unsigned) __entry->lblk, + __entry->len) +) + +TRACE_EVENT(ext4_ext_show_extent, + TP_PROTO(struct inode *inode, ext4_lblk_t lblk, ext4_fsblk_t pblk, + unsigned short len), + + TP_ARGS(inode, lblk, pblk, len), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( ext4_fsblk_t, pblk ) + __field( ext4_lblk_t, lblk ) + __field( unsigned short, len ) + ), + + TP_fast_assign( + tp_assign(dev, inode->i_sb->s_dev) + tp_assign(ino, inode->i_ino) + tp_assign(pblk, pblk) + tp_assign(lblk, lblk) + tp_assign(len, len) + ), + + TP_printk("dev %d,%d ino %lu lblk %u pblk %llu len %u", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + (unsigned) __entry->lblk, + (unsigned long long) __entry->pblk, + (unsigned short) __entry->len) +) + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,11,0)) + +TRACE_EVENT(ext4_remove_blocks, + TP_PROTO(struct inode *inode, struct ext4_extent *ex, + ext4_lblk_t from, ext4_fsblk_t to, + long long partial_cluster), + + TP_ARGS(inode, ex, from, to, partial_cluster), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( ext4_lblk_t, from ) + __field( ext4_lblk_t, to ) + __field( long long, partial ) + __field( ext4_fsblk_t, ee_pblk ) + __field( ext4_lblk_t, ee_lblk ) + __field( unsigned short, ee_len ) + ), + + TP_fast_assign( + tp_assign(dev, inode->i_sb->s_dev) + tp_assign(ino, inode->i_ino) + tp_assign(from, from) + tp_assign(to, to) + tp_assign(partial, partial_cluster) + tp_assign(ee_pblk, ext4_ext_pblock(ex)) + tp_assign(ee_lblk, le32_to_cpu(ex->ee_block)) + tp_assign(ee_len, ext4_ext_get_actual_len(ex)) + ), + + TP_printk("dev %d,%d ino %lu extent [%u(%llu), %u]" + "from %u to %u partial_cluster %lld", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + (unsigned) __entry->ee_lblk, + (unsigned long long) __entry->ee_pblk, + (unsigned short) __entry->ee_len, + (unsigned) __entry->from, + (unsigned) __entry->to, + (long long) __entry->partial) +) + +#else + +TRACE_EVENT(ext4_remove_blocks, + TP_PROTO(struct inode *inode, struct ext4_extent *ex, + ext4_lblk_t from, ext4_fsblk_t to, + ext4_fsblk_t partial_cluster), + + TP_ARGS(inode, ex, from, to, partial_cluster), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( ext4_lblk_t, from ) + __field( ext4_lblk_t, to ) + __field( ext4_fsblk_t, partial ) + __field( ext4_fsblk_t, ee_pblk ) + __field( ext4_lblk_t, ee_lblk ) + __field( unsigned short, ee_len ) + ), + + TP_fast_assign( + tp_assign(dev, inode->i_sb->s_dev) + tp_assign(ino, inode->i_ino) + tp_assign(from, from) + tp_assign(to, to) + tp_assign(partial, partial_cluster) + tp_assign(ee_pblk, ext4_ext_pblock(ex)) + tp_assign(ee_lblk, cpu_to_le32(ex->ee_block)) + tp_assign(ee_len, ext4_ext_get_actual_len(ex)) + ), + + TP_printk("dev %d,%d ino %lu extent [%u(%llu), %u]" + "from %u to %u partial_cluster %u", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + (unsigned) __entry->ee_lblk, + (unsigned long long) __entry->ee_pblk, + (unsigned short) __entry->ee_len, + (unsigned) __entry->from, + (unsigned) __entry->to, + (unsigned) __entry->partial) +) + +#endif + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,11,0)) + +TRACE_EVENT(ext4_ext_rm_leaf, + TP_PROTO(struct inode *inode, ext4_lblk_t start, + struct ext4_extent *ex, + long long partial_cluster), + + TP_ARGS(inode, start, ex, partial_cluster), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( long long, partial ) + __field( ext4_lblk_t, start ) + __field( ext4_lblk_t, ee_lblk ) + __field( ext4_fsblk_t, ee_pblk ) + __field( short, ee_len ) + ), + + TP_fast_assign( + tp_assign(dev, inode->i_sb->s_dev) + tp_assign(ino, inode->i_ino) + tp_assign(partial, partial_cluster) + tp_assign(start, start) + tp_assign(ee_lblk, le32_to_cpu(ex->ee_block)) + tp_assign(ee_pblk, ext4_ext_pblock(ex)) + tp_assign(ee_len, ext4_ext_get_actual_len(ex)) + ), + + TP_printk("dev %d,%d ino %lu start_lblk %u last_extent [%u(%llu), %u]" + "partial_cluster %lld", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + (unsigned) __entry->start, + (unsigned) __entry->ee_lblk, + (unsigned long long) __entry->ee_pblk, + (unsigned short) __entry->ee_len, + (long long) __entry->partial) +) + +#else + +TRACE_EVENT(ext4_ext_rm_leaf, + TP_PROTO(struct inode *inode, ext4_lblk_t start, + struct ext4_extent *ex, ext4_fsblk_t partial_cluster), + + TP_ARGS(inode, start, ex, partial_cluster), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( ext4_fsblk_t, partial ) + __field( ext4_lblk_t, start ) + __field( ext4_lblk_t, ee_lblk ) + __field( ext4_fsblk_t, ee_pblk ) + __field( short, ee_len ) + ), + + TP_fast_assign( + tp_assign(dev, inode->i_sb->s_dev) + tp_assign(ino, inode->i_ino) + tp_assign(partial, partial_cluster) + tp_assign(start, start) + tp_assign(ee_lblk, le32_to_cpu(ex->ee_block)) + tp_assign(ee_pblk, ext4_ext_pblock(ex)) + tp_assign(ee_len, ext4_ext_get_actual_len(ex)) + ), + + TP_printk("dev %d,%d ino %lu start_lblk %u last_extent [%u(%llu), %u]" + "partial_cluster %u", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + (unsigned) __entry->start, + (unsigned) __entry->ee_lblk, + (unsigned long long) __entry->ee_pblk, + (unsigned short) __entry->ee_len, + (unsigned) __entry->partial) +) + +#endif + +TRACE_EVENT(ext4_ext_rm_idx, + TP_PROTO(struct inode *inode, ext4_fsblk_t pblk), + + TP_ARGS(inode, pblk), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( ext4_fsblk_t, pblk ) + ), + + TP_fast_assign( + tp_assign(dev, inode->i_sb->s_dev) + tp_assign(ino, inode->i_ino) + tp_assign(pblk, pblk) + ), + + TP_printk("dev %d,%d ino %lu index_pblk %llu", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + (unsigned long long) __entry->pblk) +) + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,11,0)) + +TRACE_EVENT(ext4_ext_remove_space, + TP_PROTO(struct inode *inode, ext4_lblk_t start, + ext4_lblk_t end, int depth), + + TP_ARGS(inode, start, end, depth), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( ext4_lblk_t, start ) + __field( ext4_lblk_t, end ) + __field( int, depth ) + ), + + TP_fast_assign( + tp_assign(dev, inode->i_sb->s_dev) + tp_assign(ino, inode->i_ino) + tp_assign(start, start) + tp_assign(end, end) + tp_assign(depth, depth) + ), + + TP_printk("dev %d,%d ino %lu since %u end %u depth %d", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + (unsigned) __entry->start, + (unsigned) __entry->end, + __entry->depth) +) + +#else + +TRACE_EVENT(ext4_ext_remove_space, + TP_PROTO(struct inode *inode, ext4_lblk_t start, int depth), + + TP_ARGS(inode, start, depth), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( ext4_lblk_t, start ) + __field( int, depth ) + ), + + TP_fast_assign( + tp_assign(dev, inode->i_sb->s_dev) + tp_assign(ino, inode->i_ino) + tp_assign(start, start) + tp_assign(depth, depth) + ), + + TP_printk("dev %d,%d ino %lu since %u depth %d", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + (unsigned) __entry->start, + __entry->depth) +) + +#endif + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,11,0)) + +TRACE_EVENT(ext4_ext_remove_space_done, + TP_PROTO(struct inode *inode, ext4_lblk_t start, ext4_lblk_t end, + int depth, long long partial, __le16 eh_entries), + + TP_ARGS(inode, start, end, depth, partial, eh_entries), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( ext4_lblk_t, start ) + __field( ext4_lblk_t, end ) + __field( int, depth ) + __field( long long, partial ) + __field( unsigned short, eh_entries ) + ), + + TP_fast_assign( + tp_assign(dev, inode->i_sb->s_dev) + tp_assign(ino, inode->i_ino) + tp_assign(start, start) + tp_assign(end, end) + tp_assign(depth, depth) + tp_assign(partial, partial) + tp_assign(eh_entries, le16_to_cpu(eh_entries)) + ), + + TP_printk("dev %d,%d ino %lu since %u end %u depth %d partial %lld " + "remaining_entries %u", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + (unsigned) __entry->start, + (unsigned) __entry->end, + __entry->depth, + (long long) __entry->partial, + (unsigned short) __entry->eh_entries) +) + +#else + +TRACE_EVENT(ext4_ext_remove_space_done, + TP_PROTO(struct inode *inode, ext4_lblk_t start, int depth, + ext4_lblk_t partial, unsigned short eh_entries), + + TP_ARGS(inode, start, depth, partial, eh_entries), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( ext4_lblk_t, start ) + __field( int, depth ) + __field( ext4_lblk_t, partial ) + __field( unsigned short, eh_entries ) + ), + + TP_fast_assign( + tp_assign(dev, inode->i_sb->s_dev) + tp_assign(ino, inode->i_ino) + tp_assign(start, start) + tp_assign(depth, depth) + tp_assign(partial, partial) + tp_assign(eh_entries, eh_entries) + ), + + TP_printk("dev %d,%d ino %lu since %u depth %d partial %u " + "remaining_entries %u", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + (unsigned) __entry->start, + __entry->depth, + (unsigned) __entry->partial, + (unsigned short) __entry->eh_entries) +) + +#endif + +#endif + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,11,0)) + +TRACE_EVENT(ext4_es_insert_extent, + TP_PROTO(struct inode *inode, struct extent_status *es), + + TP_ARGS(inode, es), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( ext4_lblk_t, lblk ) + __field( ext4_lblk_t, len ) + __field( ext4_fsblk_t, pblk ) + __field( char, status ) + ), + + TP_fast_assign( + tp_assign(dev, inode->i_sb->s_dev) + tp_assign(ino, inode->i_ino) + tp_assign(lblk, es->es_lblk) + tp_assign(len, es->es_len) + tp_assign(pblk, ext4_es_pblock(es)) + tp_assign(status, ext4_es_status(es) >> 60) + ), + + TP_printk("dev %d,%d ino %lu es [%u/%u) mapped %llu status %s", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + __entry->lblk, __entry->len, + __entry->pblk, show_extent_status(__entry->status)) +) + +TRACE_EVENT(ext4_es_remove_extent, + TP_PROTO(struct inode *inode, ext4_lblk_t lblk, ext4_lblk_t len), + + TP_ARGS(inode, lblk, len), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( loff_t, lblk ) + __field( loff_t, len ) + ), + + TP_fast_assign( + tp_assign(dev, inode->i_sb->s_dev) + tp_assign(ino, inode->i_ino) + tp_assign(lblk, lblk) + tp_assign(len, len) + ), + + TP_printk("dev %d,%d ino %lu es [%lld/%lld)", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + __entry->lblk, __entry->len) +) + +TRACE_EVENT(ext4_es_find_delayed_extent_range_enter, + TP_PROTO(struct inode *inode, ext4_lblk_t lblk), + + TP_ARGS(inode, lblk), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( ext4_lblk_t, lblk ) + ), + + TP_fast_assign( + tp_assign(dev, inode->i_sb->s_dev) + tp_assign(ino, inode->i_ino) + tp_assign(lblk, lblk) + ), + + TP_printk("dev %d,%d ino %lu lblk %u", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, __entry->lblk) +) + +TRACE_EVENT(ext4_es_find_delayed_extent_range_exit, + TP_PROTO(struct inode *inode, struct extent_status *es), + + TP_ARGS(inode, es), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( ext4_lblk_t, lblk ) + __field( ext4_lblk_t, len ) + __field( ext4_fsblk_t, pblk ) + __field( char, status ) + ), + + TP_fast_assign( + tp_assign(dev, inode->i_sb->s_dev) + tp_assign(ino, inode->i_ino) + tp_assign(lblk, es->es_lblk) + tp_assign(len, es->es_len) + tp_assign(pblk, ext4_es_pblock(es)) + tp_assign(status, ext4_es_status(es) >> 60) + ), + + TP_printk("dev %d,%d ino %lu es [%u/%u) mapped %llu status %s", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + __entry->lblk, __entry->len, + __entry->pblk, show_extent_status(__entry->status)) +) + +TRACE_EVENT(ext4_es_lookup_extent_enter, + TP_PROTO(struct inode *inode, ext4_lblk_t lblk), + + TP_ARGS(inode, lblk), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( ext4_lblk_t, lblk ) + ), + + TP_fast_assign( + tp_assign(dev, inode->i_sb->s_dev) + tp_assign(ino, inode->i_ino) + tp_assign(lblk, lblk) + ), + + TP_printk("dev %d,%d ino %lu lblk %u", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, __entry->lblk) +) + +TRACE_EVENT(ext4_es_lookup_extent_exit, + TP_PROTO(struct inode *inode, struct extent_status *es, + int found), + + TP_ARGS(inode, es, found), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( ext4_lblk_t, lblk ) + __field( ext4_lblk_t, len ) + __field( ext4_fsblk_t, pblk ) + __field( char, status ) + __field( int, found ) + ), + + TP_fast_assign( + tp_assign(dev, inode->i_sb->s_dev) + tp_assign(ino, inode->i_ino) + tp_assign(lblk, es->es_lblk) + tp_assign(len, es->es_len) + tp_assign(pblk, ext4_es_pblock(es)) + tp_assign(status, ext4_es_status(es) >> 60) + tp_assign(found, found) + ), + + TP_printk("dev %d,%d ino %lu found %d [%u/%u) %llu %s", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, __entry->found, + __entry->lblk, __entry->len, + __entry->found ? __entry->pblk : 0, + show_extent_status(__entry->found ? __entry->status : 0)) +) + +TRACE_EVENT(ext4_es_shrink_enter, + TP_PROTO(struct super_block *sb, int nr_to_scan, int cache_cnt), + + TP_ARGS(sb, nr_to_scan, cache_cnt), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( int, nr_to_scan ) + __field( int, cache_cnt ) + ), + + TP_fast_assign( + tp_assign(dev, sb->s_dev) + tp_assign(nr_to_scan, nr_to_scan) + tp_assign(cache_cnt, cache_cnt) + ), + + TP_printk("dev %d,%d nr_to_scan %d cache_cnt %d", + MAJOR(__entry->dev), MINOR(__entry->dev), + __entry->nr_to_scan, __entry->cache_cnt) +) + +TRACE_EVENT(ext4_es_shrink_exit, + TP_PROTO(struct super_block *sb, int shrunk_nr, int cache_cnt), + + TP_ARGS(sb, shrunk_nr, cache_cnt), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( int, shrunk_nr ) + __field( int, cache_cnt ) + ), + + TP_fast_assign( + tp_assign(dev, sb->s_dev) + tp_assign(shrunk_nr, shrunk_nr) + tp_assign(cache_cnt, cache_cnt) + ), + + TP_printk("dev %d,%d shrunk_nr %d cache_cnt %d", + MAJOR(__entry->dev), MINOR(__entry->dev), + __entry->shrunk_nr, __entry->cache_cnt) +) + +#endif + +#endif /* _TRACE_EXT4_H */ + +/* This part must be outside protection */ +#include "../../../probes/define_trace.h" --- linux-3.11.0.orig/ubuntu/lttng/instrumentation/events/lttng-module/arch/x86/kvm/trace.h +++ linux-3.11.0/ubuntu/lttng/instrumentation/events/lttng-module/arch/x86/kvm/trace.h @@ -0,0 +1,833 @@ +#if !defined(_TRACE_KVM_H) || defined(TRACE_HEADER_MULTI_READ) +#define _TRACE_KVM_H + +#include +#include +#include +#include +#include +#include <../arch/x86/kvm/lapic.h> +#include <../arch/x86/kvm/kvm_cache_regs.h> + +#undef TRACE_SYSTEM +#define TRACE_SYSTEM kvm + +/* + * Tracepoint for guest mode entry. + */ +TRACE_EVENT(kvm_entry, + TP_PROTO(unsigned int vcpu_id), + TP_ARGS(vcpu_id), + + TP_STRUCT__entry( + __field( unsigned int, vcpu_id ) + ), + + TP_fast_assign( + tp_assign(vcpu_id, vcpu_id) + ), + + TP_printk("vcpu %u", __entry->vcpu_id) +) + +/* + * Tracepoint for hypercall. + */ +TRACE_EVENT(kvm_hypercall, + TP_PROTO(unsigned long nr, unsigned long a0, unsigned long a1, + unsigned long a2, unsigned long a3), + TP_ARGS(nr, a0, a1, a2, a3), + + TP_STRUCT__entry( + __field( unsigned long, nr ) + __field( unsigned long, a0 ) + __field( unsigned long, a1 ) + __field( unsigned long, a2 ) + __field( unsigned long, a3 ) + ), + + TP_fast_assign( + tp_assign(nr, nr) + tp_assign(a0, a0) + tp_assign(a1, a1) + tp_assign(a2, a2) + tp_assign(a3, a3) + ), + + TP_printk("nr 0x%lx a0 0x%lx a1 0x%lx a2 0x%lx a3 0x%lx", + __entry->nr, __entry->a0, __entry->a1, __entry->a2, + __entry->a3) +) + +/* + * Tracepoint for hypercall. + */ +TRACE_EVENT(kvm_hv_hypercall, + TP_PROTO(__u16 code, bool fast, __u16 rep_cnt, __u16 rep_idx, + __u64 ingpa, __u64 outgpa), + TP_ARGS(code, fast, rep_cnt, rep_idx, ingpa, outgpa), + + TP_STRUCT__entry( + __field( __u16, rep_cnt ) + __field( __u16, rep_idx ) + __field( __u64, ingpa ) + __field( __u64, outgpa ) + __field( __u16, code ) + __field( bool, fast ) + ), + + TP_fast_assign( + tp_assign(rep_cnt, rep_cnt) + tp_assign(rep_idx, rep_idx) + tp_assign(ingpa, ingpa) + tp_assign(outgpa, outgpa) + tp_assign(code, code) + tp_assign(fast, fast) + ), + + TP_printk("code 0x%x %s cnt 0x%x idx 0x%x in 0x%llx out 0x%llx", + __entry->code, __entry->fast ? "fast" : "slow", + __entry->rep_cnt, __entry->rep_idx, __entry->ingpa, + __entry->outgpa) +) + +/* + * Tracepoint for PIO. + */ +TRACE_EVENT(kvm_pio, + TP_PROTO(unsigned int rw, unsigned int port, unsigned int size, + unsigned int count), + TP_ARGS(rw, port, size, count), + + TP_STRUCT__entry( + __field( unsigned int, rw ) + __field( unsigned int, port ) + __field( unsigned int, size ) + __field( unsigned int, count ) + ), + + TP_fast_assign( + tp_assign(rw, rw) + tp_assign(port, port) + tp_assign(size, size) + tp_assign(count, count) + ), + + TP_printk("pio_%s at 0x%x size %d count %d", + __entry->rw ? "write" : "read", + __entry->port, __entry->size, __entry->count) +) + +/* + * Tracepoint for cpuid. + */ +TRACE_EVENT(kvm_cpuid, + TP_PROTO(unsigned int function, unsigned long rax, unsigned long rbx, + unsigned long rcx, unsigned long rdx), + TP_ARGS(function, rax, rbx, rcx, rdx), + + TP_STRUCT__entry( + __field( unsigned int, function ) + __field( unsigned long, rax ) + __field( unsigned long, rbx ) + __field( unsigned long, rcx ) + __field( unsigned long, rdx ) + ), + + TP_fast_assign( + tp_assign(function, function) + tp_assign(rax, rax) + tp_assign(rbx, rbx) + tp_assign(rcx, rcx) + tp_assign(rdx, rdx) + ), + + TP_printk("func %x rax %lx rbx %lx rcx %lx rdx %lx", + __entry->function, __entry->rax, + __entry->rbx, __entry->rcx, __entry->rdx) +) + +#define AREG(x) { APIC_##x, "APIC_" #x } + +#define kvm_trace_symbol_apic \ + AREG(ID), AREG(LVR), AREG(TASKPRI), AREG(ARBPRI), AREG(PROCPRI), \ + AREG(EOI), AREG(RRR), AREG(LDR), AREG(DFR), AREG(SPIV), AREG(ISR), \ + AREG(TMR), AREG(IRR), AREG(ESR), AREG(ICR), AREG(ICR2), AREG(LVTT), \ + AREG(LVTTHMR), AREG(LVTPC), AREG(LVT0), AREG(LVT1), AREG(LVTERR), \ + AREG(TMICT), AREG(TMCCT), AREG(TDCR), AREG(SELF_IPI), AREG(EFEAT), \ + AREG(ECTRL) +/* + * Tracepoint for apic access. + */ +TRACE_EVENT(kvm_apic, + TP_PROTO(unsigned int rw, unsigned int reg, unsigned int val), + TP_ARGS(rw, reg, val), + + TP_STRUCT__entry( + __field( unsigned int, rw ) + __field( unsigned int, reg ) + __field( unsigned int, val ) + ), + + TP_fast_assign( + tp_assign(rw, rw) + tp_assign(reg, reg) + tp_assign(val, val) + ), + + TP_printk("apic_%s %s = 0x%x", + __entry->rw ? "write" : "read", + __print_symbolic(__entry->reg, kvm_trace_symbol_apic), + __entry->val) +) + +#define trace_kvm_apic_read(reg, val) trace_kvm_apic(0, reg, val) +#define trace_kvm_apic_write(reg, val) trace_kvm_apic(1, reg, val) + +#define KVM_ISA_VMX 1 +#define KVM_ISA_SVM 2 + +/* + * Tracepoint for kvm guest exit: + */ +TRACE_EVENT(kvm_exit, + TP_PROTO(unsigned int exit_reason, struct kvm_vcpu *vcpu, u32 isa, u64 info1, u64 info2), + TP_ARGS(exit_reason, vcpu, isa, info1, info2), + + TP_STRUCT__entry( + __field( unsigned int, exit_reason ) + __field( unsigned long, guest_rip ) + __field( u32, isa ) + __field( u64, info1 ) + __field( u64, info2 ) + ), + + TP_fast_assign( + tp_assign(exit_reason, exit_reason) + tp_assign(guest_rip, kvm_rip_read(vcpu)) + tp_assign(isa, isa) + kvm_x86_ops->get_exit_info(vcpu, &info1, + &info2); + tp_assign(info1, info1) + tp_assign(info2, info2) + ), + + TP_printk("reason %s rip info %llx %llx", + (__entry->isa == KVM_ISA_VMX) ? + __print_symbolic(__entry->exit_reason, VMX_EXIT_REASONS) : + __print_symbolic(__entry->exit_reason, SVM_EXIT_REASONS), + /* __entry->guest_rip,*/ __entry->info1, __entry->info2) +) + +/* + * Tracepoint for kvm interrupt injection: + */ +TRACE_EVENT(kvm_inj_virq, + TP_PROTO(unsigned int irq), + TP_ARGS(irq), + + TP_STRUCT__entry( + __field( unsigned int, irq ) + ), + + TP_fast_assign( + tp_assign(irq, irq) + ), + + TP_printk("irq %u", __entry->irq) +) + +#define EXS(x) { x##_VECTOR, "#" #x } + +#define kvm_trace_sym_exc \ + EXS(DE), EXS(DB), EXS(BP), EXS(OF), EXS(BR), EXS(UD), EXS(NM), \ + EXS(DF), EXS(TS), EXS(NP), EXS(SS), EXS(GP), EXS(PF), \ + EXS(MF), EXS(MC) + +/* + * Tracepoint for kvm interrupt injection: + */ +TRACE_EVENT(kvm_inj_exception, + TP_PROTO(unsigned exception, bool has_error, unsigned error_code), + TP_ARGS(exception, has_error, error_code), + + TP_STRUCT__entry( + __field( u8, exception ) + __field( u8, has_error ) + __field( u32, error_code ) + ), + + TP_fast_assign( + tp_assign(exception, exception) + tp_assign(has_error, has_error) + tp_assign(error_code, error_code) + ), + + TP_printk("%s (0x%x)", + __print_symbolic(__entry->exception, kvm_trace_sym_exc), + /* FIXME: don't print error_code if not present */ + __entry->has_error ? __entry->error_code : 0) +) + +/* + * Tracepoint for page fault. + */ +TRACE_EVENT(kvm_page_fault, + TP_PROTO(unsigned long fault_address, unsigned int error_code), + TP_ARGS(fault_address, error_code), + + TP_STRUCT__entry( + __field( unsigned long, fault_address ) + __field( unsigned int, error_code ) + ), + + TP_fast_assign( + tp_assign(fault_address, fault_address) + tp_assign(error_code, error_code) + ), + + TP_printk("address %lx error_code %x", + __entry->fault_address, __entry->error_code) +) + +/* + * Tracepoint for guest MSR access. + */ +TRACE_EVENT(kvm_msr, + TP_PROTO(unsigned write, u32 ecx, u64 data, bool exception), + TP_ARGS(write, ecx, data, exception), + + TP_STRUCT__entry( + __field( unsigned, write ) + __field( u32, ecx ) + __field( u64, data ) + __field( u8, exception ) + ), + + TP_fast_assign( + tp_assign(write, write) + tp_assign(ecx, ecx) + tp_assign(data, data) + tp_assign(exception, exception) + ), + + TP_printk("msr_%s %x = 0x%llx%s", + __entry->write ? "write" : "read", + __entry->ecx, __entry->data, + __entry->exception ? " (#GP)" : "") +) + +#define trace_kvm_msr_read(ecx, data) trace_kvm_msr(0, ecx, data, false) +#define trace_kvm_msr_write(ecx, data) trace_kvm_msr(1, ecx, data, false) +#define trace_kvm_msr_read_ex(ecx) trace_kvm_msr(0, ecx, 0, true) +#define trace_kvm_msr_write_ex(ecx, data) trace_kvm_msr(1, ecx, data, true) + +/* + * Tracepoint for guest CR access. + */ +TRACE_EVENT(kvm_cr, + TP_PROTO(unsigned int rw, unsigned int cr, unsigned long val), + TP_ARGS(rw, cr, val), + + TP_STRUCT__entry( + __field( unsigned int, rw ) + __field( unsigned int, cr ) + __field( unsigned long, val ) + ), + + TP_fast_assign( + tp_assign(rw, rw) + tp_assign(cr, cr) + tp_assign(val, val) + ), + + TP_printk("cr_%s %x = 0x%lx", + __entry->rw ? "write" : "read", + __entry->cr, __entry->val) +) + +#define trace_kvm_cr_read(cr, val) trace_kvm_cr(0, cr, val) +#define trace_kvm_cr_write(cr, val) trace_kvm_cr(1, cr, val) + +TRACE_EVENT(kvm_pic_set_irq, + TP_PROTO(__u8 chip, __u8 pin, __u8 elcr, __u8 imr, bool coalesced), + TP_ARGS(chip, pin, elcr, imr, coalesced), + + TP_STRUCT__entry( + __field( __u8, chip ) + __field( __u8, pin ) + __field( __u8, elcr ) + __field( __u8, imr ) + __field( bool, coalesced ) + ), + + TP_fast_assign( + tp_assign(chip, chip) + tp_assign(pin, pin) + tp_assign(elcr, elcr) + tp_assign(imr, imr) + tp_assign(coalesced, coalesced) + ), + + TP_printk("chip %u pin %u (%s%s)%s", + __entry->chip, __entry->pin, + (__entry->elcr & (1 << __entry->pin)) ? "level":"edge", + (__entry->imr & (1 << __entry->pin)) ? "|masked":"", + __entry->coalesced ? " (coalesced)" : "") +) + +#define kvm_apic_dst_shorthand \ + {0x0, "dst"}, \ + {0x1, "self"}, \ + {0x2, "all"}, \ + {0x3, "all-but-self"} + +TRACE_EVENT(kvm_apic_ipi, + TP_PROTO(__u32 icr_low, __u32 dest_id), + TP_ARGS(icr_low, dest_id), + + TP_STRUCT__entry( + __field( __u32, icr_low ) + __field( __u32, dest_id ) + ), + + TP_fast_assign( + tp_assign(icr_low, icr_low) + tp_assign(dest_id, dest_id) + ), + + TP_printk("dst %x vec %u (%s|%s|%s|%s|%s)", + __entry->dest_id, (u8)__entry->icr_low, + __print_symbolic((__entry->icr_low >> 8 & 0x7), + kvm_deliver_mode), + (__entry->icr_low & (1<<11)) ? "logical" : "physical", + (__entry->icr_low & (1<<14)) ? "assert" : "de-assert", + (__entry->icr_low & (1<<15)) ? "level" : "edge", + __print_symbolic((__entry->icr_low >> 18 & 0x3), + kvm_apic_dst_shorthand)) +) + +TRACE_EVENT(kvm_apic_accept_irq, + TP_PROTO(__u32 apicid, __u16 dm, __u8 tm, __u8 vec, bool coalesced), + TP_ARGS(apicid, dm, tm, vec, coalesced), + + TP_STRUCT__entry( + __field( __u32, apicid ) + __field( __u16, dm ) + __field( __u8, tm ) + __field( __u8, vec ) + __field( bool, coalesced ) + ), + + TP_fast_assign( + tp_assign(apicid, apicid) + tp_assign(dm, dm) + tp_assign(tm, tm) + tp_assign(vec, vec) + tp_assign(coalesced, coalesced) + ), + + TP_printk("apicid %x vec %u (%s|%s)%s", + __entry->apicid, __entry->vec, + __print_symbolic((__entry->dm >> 8 & 0x7), kvm_deliver_mode), + __entry->tm ? "level" : "edge", + __entry->coalesced ? " (coalesced)" : "") +) + +TRACE_EVENT(kvm_eoi, + TP_PROTO(struct kvm_lapic *apic, int vector), + TP_ARGS(apic, vector), + + TP_STRUCT__entry( + __field( __u32, apicid ) + __field( int, vector ) + ), + + TP_fast_assign( + tp_assign(apicid, apic->vcpu->vcpu_id) + tp_assign(vector, vector) + ), + + TP_printk("apicid %x vector %d", __entry->apicid, __entry->vector) +) + +TRACE_EVENT(kvm_pv_eoi, + TP_PROTO(struct kvm_lapic *apic, int vector), + TP_ARGS(apic, vector), + + TP_STRUCT__entry( + __field( __u32, apicid ) + __field( int, vector ) + ), + + TP_fast_assign( + tp_assign(apicid, apic->vcpu->vcpu_id) + tp_assign(vector, vector) + ), + + TP_printk("apicid %x vector %d", __entry->apicid, __entry->vector) +) + +/* + * Tracepoint for nested VMRUN + */ +TRACE_EVENT(kvm_nested_vmrun, + TP_PROTO(__u64 rip, __u64 vmcb, __u64 nested_rip, __u32 int_ctl, + __u32 event_inj, bool npt), + TP_ARGS(rip, vmcb, nested_rip, int_ctl, event_inj, npt), + + TP_STRUCT__entry( + __field( __u64, rip ) + __field( __u64, vmcb ) + __field( __u64, nested_rip ) + __field( __u32, int_ctl ) + __field( __u32, event_inj ) + __field( bool, npt ) + ), + + TP_fast_assign( + tp_assign(rip, rip) + tp_assign(vmcb, vmcb) + tp_assign(nested_rip, nested_rip) + tp_assign(int_ctl, int_ctl) + tp_assign(event_inj, event_inj) + tp_assign(npt, npt) + ), + + TP_printk("rip: 0x%016llx vmcb: 0x%016llx nrip: 0x%016llx int_ctl: 0x%08x " + "event_inj: 0x%08x npt: %s", + __entry->rip, __entry->vmcb, __entry->nested_rip, + __entry->int_ctl, __entry->event_inj, + __entry->npt ? "on" : "off") +) + +TRACE_EVENT(kvm_nested_intercepts, + TP_PROTO(__u16 cr_read, __u16 cr_write, __u32 exceptions, __u64 intercept), + TP_ARGS(cr_read, cr_write, exceptions, intercept), + + TP_STRUCT__entry( + __field( __u16, cr_read ) + __field( __u16, cr_write ) + __field( __u32, exceptions ) + __field( __u64, intercept ) + ), + + TP_fast_assign( + tp_assign(cr_read, cr_read) + tp_assign(cr_write, cr_write) + tp_assign(exceptions, exceptions) + tp_assign(intercept, intercept) + ), + + TP_printk("cr_read: %04x cr_write: %04x excp: %08x intercept: %016llx", + __entry->cr_read, __entry->cr_write, __entry->exceptions, + __entry->intercept) +) +/* + * Tracepoint for #VMEXIT while nested + */ +TRACE_EVENT(kvm_nested_vmexit, + TP_PROTO(__u64 rip, __u32 exit_code, + __u64 exit_info1, __u64 exit_info2, + __u32 exit_int_info, __u32 exit_int_info_err, __u32 isa), + TP_ARGS(rip, exit_code, exit_info1, exit_info2, + exit_int_info, exit_int_info_err, isa), + + TP_STRUCT__entry( + __field( __u64, rip ) + __field( __u32, exit_code ) + __field( __u64, exit_info1 ) + __field( __u64, exit_info2 ) + __field( __u32, exit_int_info ) + __field( __u32, exit_int_info_err ) + __field( __u32, isa ) + ), + + TP_fast_assign( + tp_assign(rip, rip) + tp_assign(exit_code, exit_code) + tp_assign(exit_info1, exit_info1) + tp_assign(exit_info2, exit_info2) + tp_assign(exit_int_info, exit_int_info) + tp_assign(exit_int_info_err, exit_int_info_err) + tp_assign(isa, isa) + ), + TP_printk("rip: 0x%016llx reason: %s ext_inf1: 0x%016llx " + "ext_inf2: 0x%016llx ext_int: 0x%08x ext_int_err: 0x%08x", + __entry->rip, + (__entry->isa == KVM_ISA_VMX) ? + __print_symbolic(__entry->exit_code, VMX_EXIT_REASONS) : + __print_symbolic(__entry->exit_code, SVM_EXIT_REASONS), + __entry->exit_info1, __entry->exit_info2, + __entry->exit_int_info, __entry->exit_int_info_err) +) + +/* + * Tracepoint for #VMEXIT reinjected to the guest + */ +TRACE_EVENT(kvm_nested_vmexit_inject, + TP_PROTO(__u32 exit_code, + __u64 exit_info1, __u64 exit_info2, + __u32 exit_int_info, __u32 exit_int_info_err, __u32 isa), + TP_ARGS(exit_code, exit_info1, exit_info2, + exit_int_info, exit_int_info_err, isa), + + TP_STRUCT__entry( + __field( __u32, exit_code ) + __field( __u64, exit_info1 ) + __field( __u64, exit_info2 ) + __field( __u32, exit_int_info ) + __field( __u32, exit_int_info_err ) + __field( __u32, isa ) + ), + + TP_fast_assign( + tp_assign(exit_code, exit_code) + tp_assign(exit_info1, exit_info1) + tp_assign(exit_info2, exit_info2) + tp_assign(exit_int_info, exit_int_info) + tp_assign(exit_int_info_err, exit_int_info_err) + tp_assign(isa, isa) + ), + + TP_printk("reason: %s ext_inf1: 0x%016llx " + "ext_inf2: 0x%016llx ext_int: 0x%08x ext_int_err: 0x%08x", + (__entry->isa == KVM_ISA_VMX) ? + __print_symbolic(__entry->exit_code, VMX_EXIT_REASONS) : + __print_symbolic(__entry->exit_code, SVM_EXIT_REASONS), + __entry->exit_info1, __entry->exit_info2, + __entry->exit_int_info, __entry->exit_int_info_err) +) + +/* + * Tracepoint for nested #vmexit because of interrupt pending + */ +TRACE_EVENT(kvm_nested_intr_vmexit, + TP_PROTO(__u64 rip), + TP_ARGS(rip), + + TP_STRUCT__entry( + __field( __u64, rip ) + ), + + TP_fast_assign( + tp_assign(rip, rip) + ), + + TP_printk("rip: 0x%016llx", __entry->rip) +) + +/* + * Tracepoint for nested #vmexit because of interrupt pending + */ +TRACE_EVENT(kvm_invlpga, + TP_PROTO(__u64 rip, int asid, u64 address), + TP_ARGS(rip, asid, address), + + TP_STRUCT__entry( + __field( __u64, rip ) + __field( int, asid ) + __field( __u64, address ) + ), + + TP_fast_assign( + tp_assign(rip, rip) + tp_assign(asid, asid) + tp_assign(address, address) + ), + + TP_printk("rip: 0x%016llx asid: %d address: 0x%016llx", + __entry->rip, __entry->asid, __entry->address) +) + +/* + * Tracepoint for nested #vmexit because of interrupt pending + */ +TRACE_EVENT(kvm_skinit, + TP_PROTO(__u64 rip, __u32 slb), + TP_ARGS(rip, slb), + + TP_STRUCT__entry( + __field( __u64, rip ) + __field( __u32, slb ) + ), + + TP_fast_assign( + tp_assign(rip, rip) + tp_assign(slb, slb) + ), + + TP_printk("rip: 0x%016llx slb: 0x%08x", + __entry->rip, __entry->slb) +) + +#define KVM_EMUL_INSN_F_CR0_PE (1 << 0) +#define KVM_EMUL_INSN_F_EFL_VM (1 << 1) +#define KVM_EMUL_INSN_F_CS_D (1 << 2) +#define KVM_EMUL_INSN_F_CS_L (1 << 3) + +#define kvm_trace_symbol_emul_flags \ + { 0, "real" }, \ + { KVM_EMUL_INSN_F_CR0_PE \ + | KVM_EMUL_INSN_F_EFL_VM, "vm16" }, \ + { KVM_EMUL_INSN_F_CR0_PE, "prot16" }, \ + { KVM_EMUL_INSN_F_CR0_PE \ + | KVM_EMUL_INSN_F_CS_D, "prot32" }, \ + { KVM_EMUL_INSN_F_CR0_PE \ + | KVM_EMUL_INSN_F_CS_L, "prot64" } + +#define kei_decode_mode(mode) ({ \ + u8 flags = 0xff; \ + switch (mode) { \ + case X86EMUL_MODE_REAL: \ + flags = 0; \ + break; \ + case X86EMUL_MODE_VM86: \ + flags = KVM_EMUL_INSN_F_EFL_VM; \ + break; \ + case X86EMUL_MODE_PROT16: \ + flags = KVM_EMUL_INSN_F_CR0_PE; \ + break; \ + case X86EMUL_MODE_PROT32: \ + flags = KVM_EMUL_INSN_F_CR0_PE \ + | KVM_EMUL_INSN_F_CS_D; \ + break; \ + case X86EMUL_MODE_PROT64: \ + flags = KVM_EMUL_INSN_F_CR0_PE \ + | KVM_EMUL_INSN_F_CS_L; \ + break; \ + } \ + flags; \ + }) + +TRACE_EVENT(kvm_emulate_insn, + TP_PROTO(struct kvm_vcpu *vcpu, __u8 failed), + TP_ARGS(vcpu, failed), + + TP_STRUCT__entry( + __field( __u64, rip ) + __field( __u32, csbase ) + __field( __u8, len ) + __array( __u8, insn, 15 ) + __field( __u8, flags ) + __field( __u8, failed ) + ), + + TP_fast_assign( + tp_assign(rip, vcpu->arch.emulate_ctxt.fetch.start) + tp_assign(csbase, kvm_x86_ops->get_segment_base(vcpu, VCPU_SREG_CS)) + tp_assign(len, vcpu->arch.emulate_ctxt._eip + - vcpu->arch.emulate_ctxt.fetch.start) + tp_memcpy(insn, + vcpu->arch.emulate_ctxt.fetch.data, + 15) + tp_assign(flags, kei_decode_mode(vcpu->arch.emulate_ctxt.mode)) + tp_assign(failed, failed) + ), + + TP_printk("%x:%llx:%s (%s)%s", + __entry->csbase, __entry->rip, + __print_hex(__entry->insn, __entry->len), + __print_symbolic(__entry->flags, + kvm_trace_symbol_emul_flags), + __entry->failed ? " failed" : "" + ) + ) + +#define trace_kvm_emulate_insn_start(vcpu) trace_kvm_emulate_insn(vcpu, 0) +#define trace_kvm_emulate_insn_failed(vcpu) trace_kvm_emulate_insn(vcpu, 1) + +TRACE_EVENT( + vcpu_match_mmio, + TP_PROTO(gva_t gva, gpa_t gpa, bool write, bool gpa_match), + TP_ARGS(gva, gpa, write, gpa_match), + + TP_STRUCT__entry( + __field(gva_t, gva) + __field(gpa_t, gpa) + __field(bool, write) + __field(bool, gpa_match) + ), + + TP_fast_assign( + tp_assign(gva, gva) + tp_assign(gpa, gpa) + tp_assign(write, write) + tp_assign(gpa_match, gpa_match) + ), + + TP_printk("gva %#lx gpa %#llx %s %s", __entry->gva, __entry->gpa, + __entry->write ? "Write" : "Read", + __entry->gpa_match ? "GPA" : "GVA") +) + +#ifdef CONFIG_X86_64 + +#define host_clocks \ + {VCLOCK_NONE, "none"}, \ + {VCLOCK_TSC, "tsc"}, \ + {VCLOCK_HPET, "hpet"} \ + +TRACE_EVENT(kvm_update_master_clock, + TP_PROTO(bool use_master_clock, unsigned int host_clock, bool offset_matched), + TP_ARGS(use_master_clock, host_clock, offset_matched), + + TP_STRUCT__entry( + __field( bool, use_master_clock ) + __field( unsigned int, host_clock ) + __field( bool, offset_matched ) + ), + + TP_fast_assign( + tp_assign(use_master_clock, use_master_clock) + tp_assign(host_clock, host_clock) + tp_assign(offset_matched, offset_matched) + ), + + TP_printk("masterclock %d hostclock %s offsetmatched %u", + __entry->use_master_clock, + __print_symbolic(__entry->host_clock, host_clocks), + __entry->offset_matched) +) + +TRACE_EVENT(kvm_track_tsc, + TP_PROTO(unsigned int vcpu_id, unsigned int nr_matched, + unsigned int online_vcpus, bool use_master_clock, + unsigned int host_clock), + TP_ARGS(vcpu_id, nr_matched, online_vcpus, use_master_clock, + host_clock), + + TP_STRUCT__entry( + __field( unsigned int, vcpu_id ) + __field( unsigned int, nr_vcpus_matched_tsc ) + __field( unsigned int, online_vcpus ) + __field( bool, use_master_clock ) + __field( unsigned int, host_clock ) + ), + + TP_fast_assign( + tp_assign(vcpu_id, vcpu_id) + tp_assign(nr_vcpus_matched_tsc, nr_matched) + tp_assign(online_vcpus, online_vcpus) + tp_assign(use_master_clock, use_master_clock) + tp_assign(host_clock, host_clock) + ), + + TP_printk("vcpu_id %u masterclock %u offsetmatched %u nr_online %u" + " hostclock %s", + __entry->vcpu_id, __entry->use_master_clock, + __entry->nr_vcpus_matched_tsc, __entry->online_vcpus, + __print_symbolic(__entry->host_clock, host_clocks)) +) + +#endif /* CONFIG_X86_64 */ + +#endif /* _TRACE_KVM_H */ + +#undef TRACE_INCLUDE_PATH +#define TRACE_INCLUDE_PATH ../instrumentation/events/lttng-module/arch/x86/kvm +#undef TRACE_INCLUDE_FILE +#define TRACE_INCLUDE_FILE trace + +/* This part must be outside protection */ +#include "../../../../../../probes/define_trace.h" --- linux-3.11.0.orig/ubuntu/lttng/instrumentation/events/lttng-module/arch/x86/kvm/mmutrace.h +++ linux-3.11.0/ubuntu/lttng/instrumentation/events/lttng-module/arch/x86/kvm/mmutrace.h @@ -0,0 +1,285 @@ +#if !defined(_TRACE_KVMMMU_H) || defined(TRACE_HEADER_MULTI_READ) +#define _TRACE_KVMMMU_H + +#include +#include + +#undef TRACE_SYSTEM +#define TRACE_SYSTEM kvmmmu + +#define KVM_MMU_PAGE_FIELDS \ + __field(__u64, gfn) \ + __field(__u32, role) \ + __field(__u32, root_count) \ + __field(bool, unsync) + +#define KVM_MMU_PAGE_ASSIGN(sp) \ + tp_assign(gfn, sp->gfn) \ + tp_assign(role, sp->role.word) \ + tp_assign(root_count, sp->root_count) \ + tp_assign(unsync, sp->unsync) + +#define KVM_MMU_PAGE_PRINTK() ({ \ + const char *ret = p->buffer + p->len; \ + static const char *access_str[] = { \ + "---", "--x", "w--", "w-x", "-u-", "-ux", "wu-", "wux" \ + }; \ + union kvm_mmu_page_role role; \ + \ + role.word = __entry->role; \ + \ + trace_seq_printf(p, "sp gfn %llx %u%s q%u%s %s%s" \ + " %snxe root %u %s%c", \ + __entry->gfn, role.level, \ + role.cr4_pae ? " pae" : "", \ + role.quadrant, \ + role.direct ? " direct" : "", \ + access_str[role.access], \ + role.invalid ? " invalid" : "", \ + role.nxe ? "" : "!", \ + __entry->root_count, \ + __entry->unsync ? "unsync" : "sync", 0); \ + ret; \ + }) + +#define kvm_mmu_trace_pferr_flags \ + { PFERR_PRESENT_MASK, "P" }, \ + { PFERR_WRITE_MASK, "W" }, \ + { PFERR_USER_MASK, "U" }, \ + { PFERR_RSVD_MASK, "RSVD" }, \ + { PFERR_FETCH_MASK, "F" } + +/* + * A pagetable walk has started + */ +TRACE_EVENT( + kvm_mmu_pagetable_walk, + TP_PROTO(u64 addr, u32 pferr), + TP_ARGS(addr, pferr), + + TP_STRUCT__entry( + __field(__u64, addr) + __field(__u32, pferr) + ), + + TP_fast_assign( + tp_assign(addr, addr) + tp_assign(pferr, pferr) + ), + + TP_printk("addr %llx pferr %x %s", __entry->addr, __entry->pferr, + __print_flags(__entry->pferr, "|", kvm_mmu_trace_pferr_flags)) +) + + +/* We just walked a paging element */ +TRACE_EVENT( + kvm_mmu_paging_element, + TP_PROTO(u64 pte, int level), + TP_ARGS(pte, level), + + TP_STRUCT__entry( + __field(__u64, pte) + __field(__u32, level) + ), + + TP_fast_assign( + tp_assign(pte, pte) + tp_assign(level, level) + ), + + TP_printk("pte %llx level %u", __entry->pte, __entry->level) +) + +DECLARE_EVENT_CLASS(kvm_mmu_set_bit_class, + + TP_PROTO(unsigned long table_gfn, unsigned index, unsigned size), + + TP_ARGS(table_gfn, index, size), + + TP_STRUCT__entry( + __field(__u64, gpa) + ), + + TP_fast_assign( + tp_assign(gpa, ((u64)table_gfn << PAGE_SHIFT) + + index * size) + ), + + TP_printk("gpa %llx", __entry->gpa) +) + +/* We set a pte accessed bit */ +DEFINE_EVENT(kvm_mmu_set_bit_class, kvm_mmu_set_accessed_bit, + + TP_PROTO(unsigned long table_gfn, unsigned index, unsigned size), + + TP_ARGS(table_gfn, index, size) +) + +/* We set a pte dirty bit */ +DEFINE_EVENT(kvm_mmu_set_bit_class, kvm_mmu_set_dirty_bit, + + TP_PROTO(unsigned long table_gfn, unsigned index, unsigned size), + + TP_ARGS(table_gfn, index, size) +) + +TRACE_EVENT( + kvm_mmu_walker_error, + TP_PROTO(u32 pferr), + TP_ARGS(pferr), + + TP_STRUCT__entry( + __field(__u32, pferr) + ), + + TP_fast_assign( + tp_assign(pferr, pferr) + ), + + TP_printk("pferr %x %s", __entry->pferr, + __print_flags(__entry->pferr, "|", kvm_mmu_trace_pferr_flags)) +) + +TRACE_EVENT( + kvm_mmu_get_page, + TP_PROTO(struct kvm_mmu_page *sp, bool created), + TP_ARGS(sp, created), + + TP_STRUCT__entry( + KVM_MMU_PAGE_FIELDS + __field(bool, created) + ), + + TP_fast_assign( + KVM_MMU_PAGE_ASSIGN(sp) + tp_assign(created, created) + ), + + TP_printk("%s %s", KVM_MMU_PAGE_PRINTK(), + __entry->created ? "new" : "existing") +) + +DECLARE_EVENT_CLASS(kvm_mmu_page_class, + + TP_PROTO(struct kvm_mmu_page *sp), + TP_ARGS(sp), + + TP_STRUCT__entry( + KVM_MMU_PAGE_FIELDS + ), + + TP_fast_assign( + KVM_MMU_PAGE_ASSIGN(sp) + ), + + TP_printk("%s", KVM_MMU_PAGE_PRINTK()) +) + +DEFINE_EVENT(kvm_mmu_page_class, kvm_mmu_sync_page, + TP_PROTO(struct kvm_mmu_page *sp), + + TP_ARGS(sp) +) + +DEFINE_EVENT(kvm_mmu_page_class, kvm_mmu_unsync_page, + TP_PROTO(struct kvm_mmu_page *sp), + + TP_ARGS(sp) +) + +DEFINE_EVENT(kvm_mmu_page_class, kvm_mmu_prepare_zap_page, + TP_PROTO(struct kvm_mmu_page *sp), + + TP_ARGS(sp) +) + +TRACE_EVENT( + mark_mmio_spte, + TP_PROTO(u64 *sptep, gfn_t gfn, unsigned access), + TP_ARGS(sptep, gfn, access), + + TP_STRUCT__entry( + __field(void *, sptep) + __field(gfn_t, gfn) + __field(unsigned, access) + ), + + TP_fast_assign( + tp_assign(sptep, sptep) + tp_assign(gfn, gfn) + tp_assign(access, access) + ), + + TP_printk("sptep:%p gfn %llx access %x", __entry->sptep, __entry->gfn, + __entry->access) +) + +TRACE_EVENT( + handle_mmio_page_fault, + TP_PROTO(u64 addr, gfn_t gfn, unsigned access), + TP_ARGS(addr, gfn, access), + + TP_STRUCT__entry( + __field(u64, addr) + __field(gfn_t, gfn) + __field(unsigned, access) + ), + + TP_fast_assign( + tp_assign(addr, addr) + tp_assign(gfn, gfn) + tp_assign(access, access) + ), + + TP_printk("addr:%llx gfn %llx access %x", __entry->addr, __entry->gfn, + __entry->access) +) + +#define __spte_satisfied(__spte) \ + (__entry->retry && is_writable_pte(__entry->__spte)) + +TRACE_EVENT( + fast_page_fault, + TP_PROTO(struct kvm_vcpu *vcpu, gva_t gva, u32 error_code, + u64 *sptep, u64 old_spte, bool retry), + TP_ARGS(vcpu, gva, error_code, sptep, old_spte, retry), + + TP_STRUCT__entry( + __field(int, vcpu_id) + __field(gva_t, gva) + __field(u32, error_code) + __field(u64 *, sptep) + __field(u64, old_spte) + __field(u64, new_spte) + __field(bool, retry) + ), + + TP_fast_assign( + tp_assign(vcpu_id, vcpu->vcpu_id) + tp_assign(gva, gva) + tp_assign(error_code, error_code) + tp_assign(sptep, sptep) + tp_assign(old_spte, old_spte) + tp_assign(new_spte, *sptep) + tp_assign(retry, retry) + ), + + TP_printk("vcpu %d gva %lx error_code %s sptep %p old %#llx" + " new %llx spurious %d fixed %d", __entry->vcpu_id, + __entry->gva, __print_flags(__entry->error_code, "|", + kvm_mmu_trace_pferr_flags), __entry->sptep, + __entry->old_spte, __entry->new_spte, + __spte_satisfied(old_spte), __spte_satisfied(new_spte) + ) +) +#endif /* _TRACE_KVMMMU_H */ + +#undef TRACE_INCLUDE_PATH +#define TRACE_INCLUDE_PATH ../instrumentation/events/lttng-module/arch/x86/kvm +#undef TRACE_INCLUDE_FILE +#define TRACE_INCLUDE_FILE mmutrace + +/* This part must be outside protection */ +#include "../../../../../../probes/define_trace.h" --- linux-3.11.0.orig/ubuntu/lttng/instrumentation/syscalls/lttng-syscalls-generate-headers.sh +++ linux-3.11.0/ubuntu/lttng/instrumentation/syscalls/lttng-syscalls-generate-headers.sh @@ -0,0 +1,279 @@ +#!/bin/sh + +# Generate system call probe description macros from syscall metadata dump file. +# The resulting header will be written in the headers subdirectory, in a file name +# based on the name of the input file. +# +# example usage: +# +# lttng-syscalls-generate-headers.sh +# lttng-syscalls-generate-headers.sh integers 3.0.4 x86-64-syscalls-3.0.4 64 +# lttng-syscalls-generate-headers.sh pointers 3.0.4 x86-64-syscalls-3.0.4 64 + +CLASS=$1 +INPUTDIR=$2 +INPUTFILE=$3 +BITNESS=$4 +INPUT=${INPUTDIR}/${INPUTFILE} +SRCFILE=gen.tmp.0 +TMPFILE=gen.tmp.1 +HEADER=headers/${INPUTFILE}_${CLASS}.h + +cp ${INPUT} ${SRCFILE} + +#Cleanup +perl -p -e 's/^\[.*\] //g' ${SRCFILE} > ${TMPFILE} +mv ${TMPFILE} ${SRCFILE} + +perl -p -e 's/^syscall sys_([^ ]*)/syscall $1/g' ${SRCFILE} > ${TMPFILE} +mv ${TMPFILE} ${SRCFILE} + +#Filter + +if [ "$CLASS" = integers ]; then + #select integers and no-args. + CLASSCAP=INTEGERS + grep -v "\\*\|cap_user_header_t" ${SRCFILE} > ${TMPFILE} + mv ${TMPFILE} ${SRCFILE} +fi + + +if [ "$CLASS" = pointers ]; then + #select system calls using pointers. + CLASSCAP=POINTERS + grep "\\*\|cap_#user_header_t" ${SRCFILE} > ${TMPFILE} + mv ${TMPFILE} ${SRCFILE} +fi + +echo "/* THIS FILE IS AUTO-GENERATED. DO NOT EDIT */" > ${HEADER} + +echo \ +"#ifndef CREATE_SYSCALL_TABLE + +#if !defined(_TRACE_SYSCALLS_${CLASSCAP}_H) || defined(TRACE_HEADER_MULTI_READ) +#define _TRACE_SYSCALLS_${CLASSCAP}_H + +#include +#include +#include \"${INPUTFILE}_${CLASS}_override.h\" +#include \"syscalls_${CLASS}_override.h\" +" >> ${HEADER} + +if [ "$CLASS" = integers ]; then + +NRARGS=0 + +printf \ +'SC_DECLARE_EVENT_CLASS_NOARGS(syscalls_noargs,\n'\ +' TP_STRUCT__entry(),\n'\ +' TP_fast_assign(),\n'\ +' TP_printk()\n'\ +')'\ + >> ${HEADER} + +grep "^syscall [^ ]* nr [^ ]* nbargs ${NRARGS} " ${SRCFILE} > ${TMPFILE} +perl -p -e 's/^syscall ([^ ]*) nr ([^ ]*) nbargs ([^ ]*) '\ +'types: \(([^)]*)\) '\ +'args: \(([^)]*)\)/'\ +'#ifndef OVERRIDE_'"${BITNESS}"'_sys_$1\n'\ +'SC_DEFINE_EVENT_NOARGS(syscalls_noargs, sys_$1)\n'\ +'#endif/g'\ + ${TMPFILE} >> ${HEADER} + +fi + + +# types: 4 +# args 5 + +NRARGS=1 +grep "^syscall [^ ]* nr [^ ]* nbargs ${NRARGS} " ${SRCFILE} > ${TMPFILE} +perl -p -e 's/^syscall ([^ ]*) nr ([^ ]*) nbargs ([^ ]*) '\ +'types: \(([^)]*)\) '\ +'args: \(([^)]*)\)/'\ +'#ifndef OVERRIDE_'"${BITNESS}"'_sys_$1\n'\ +'SC_TRACE_EVENT(sys_$1,\n'\ +' TP_PROTO($4 $5),\n'\ +' TP_ARGS($5),\n'\ +' TP_STRUCT__entry(__field($4, $5)),\n'\ +' TP_fast_assign(tp_assign($4, $5, $5)),\n'\ +' TP_printk()\n'\ +')\n'\ +'#endif/g'\ + ${TMPFILE} >> ${HEADER} + +# types: 4 5 +# args 6 7 + +NRARGS=2 +grep "^syscall [^ ]* nr [^ ]* nbargs ${NRARGS} " ${SRCFILE} > ${TMPFILE} +perl -p -e 's/^syscall ([^ ]*) nr ([^ ]*) nbargs ([^ ]*) '\ +'types: \(([^,]*), ([^)]*)\) '\ +'args: \(([^,]*), ([^)]*)\)/'\ +'#ifndef OVERRIDE_'"${BITNESS}"'_sys_$1\n'\ +'SC_TRACE_EVENT(sys_$1,\n'\ +' TP_PROTO($4 $6, $5 $7),\n'\ +' TP_ARGS($6, $7),\n'\ +' TP_STRUCT__entry(__field($4, $6) __field($5, $7)),\n'\ +' TP_fast_assign(tp_assign($4, $6, $6) tp_assign($5, $7, $7)),\n'\ +' TP_printk()\n'\ +')\n'\ +'#endif/g'\ + ${TMPFILE} >> ${HEADER} + +# types: 4 5 6 +# args 7 8 9 + +NRARGS=3 +grep "^syscall [^ ]* nr [^ ]* nbargs ${NRARGS} " ${SRCFILE} > ${TMPFILE} +perl -p -e 's/^syscall ([^ ]*) nr ([^ ]*) nbargs ([^ ]*) '\ +'types: \(([^,]*), ([^,]*), ([^)]*)\) '\ +'args: \(([^,]*), ([^,]*), ([^)]*)\)/'\ +'#ifndef OVERRIDE_'"${BITNESS}"'_sys_$1\n'\ +'SC_TRACE_EVENT(sys_$1,\n'\ +' TP_PROTO($4 $7, $5 $8, $6 $9),\n'\ +' TP_ARGS($7, $8, $9),\n'\ +' TP_STRUCT__entry(__field($4, $7) __field($5, $8) __field($6, $9)),\n'\ +' TP_fast_assign(tp_assign($4, $7, $7) tp_assign($5, $8, $8) tp_assign($6, $9, $9)),\n'\ +' TP_printk()\n'\ +')\n'\ +'#endif/g'\ + ${TMPFILE} >> ${HEADER} + + +# types: 4 5 6 7 +# args 8 9 10 11 + +NRARGS=4 +grep "^syscall [^ ]* nr [^ ]* nbargs ${NRARGS} " ${SRCFILE} > ${TMPFILE} +perl -p -e 's/^syscall ([^ ]*) nr ([^ ]*) nbargs ([^ ]*) '\ +'types: \(([^,]*), ([^,]*), ([^,]*), ([^)]*)\) '\ +'args: \(([^,]*), ([^,]*), ([^,]*), ([^)]*)\)/'\ +'#ifndef OVERRIDE_'"${BITNESS}"'_sys_$1\n'\ +'SC_TRACE_EVENT(sys_$1,\n'\ +' TP_PROTO($4 $8, $5 $9, $6 $10, $7 $11),\n'\ +' TP_ARGS($8, $9, $10, $11),\n'\ +' TP_STRUCT__entry(__field($4, $8) __field($5, $9) __field($6, $10) __field($7, $11)),\n'\ +' TP_fast_assign(tp_assign($4, $8, $8) tp_assign($5, $9, $9) tp_assign($6, $10, $10) tp_assign($7, $11, $11)),\n'\ +' TP_printk()\n'\ +')\n'\ +'#endif/g'\ + ${TMPFILE} >> ${HEADER} + +# types: 4 5 6 7 8 +# args 9 10 11 12 13 + +NRARGS=5 +grep "^syscall [^ ]* nr [^ ]* nbargs ${NRARGS} " ${SRCFILE} > ${TMPFILE} +perl -p -e 's/^syscall ([^ ]*) nr ([^ ]*) nbargs ([^ ]*) '\ +'types: \(([^,]*), ([^,]*), ([^,]*), ([^,]*), ([^)]*)\) '\ +'args: \(([^,]*), ([^,]*), ([^,]*), ([^,]*), ([^)]*)\)/'\ +'#ifndef OVERRIDE_'"${BITNESS}"'_sys_$1\n'\ +'SC_TRACE_EVENT(sys_$1,\n'\ +' TP_PROTO($4 $9, $5 $10, $6 $11, $7 $12, $8 $13),\n'\ +' TP_ARGS($9, $10, $11, $12, $13),\n'\ +' TP_STRUCT__entry(__field($4, $9) __field($5, $10) __field($6, $11) __field($7, $12) __field($8, $13)),\n'\ +' TP_fast_assign(tp_assign($4, $9, $9) tp_assign($5, $10, $10) tp_assign($6, $11, $11) tp_assign($7, $12, $12) tp_assign($8, $13, $13)),\n'\ +' TP_printk()\n'\ +')\n'\ +'#endif/g'\ + ${TMPFILE} >> ${HEADER} + + +# types: 4 5 6 7 8 9 +# args 10 11 12 13 14 15 + +NRARGS=6 +grep "^syscall [^ ]* nr [^ ]* nbargs ${NRARGS} " ${SRCFILE} > ${TMPFILE} +perl -p -e 's/^syscall ([^ ]*) nr ([^ ]*) nbargs ([^ ]*) '\ +'types: \(([^,]*), ([^,]*), ([^,]*), ([^,]*), ([^,]*), ([^\)]*)\) '\ +'args: \(([^,]*), ([^,]*), ([^,]*), ([^,]*), ([^,]*), ([^\)]*)\)/'\ +'#ifndef OVERRIDE_'"${BITNESS}"'_sys_$1\n'\ +'SC_TRACE_EVENT(sys_$1,\n'\ +' TP_PROTO($4 $10, $5 $11, $6 $12, $7 $13, $8 $14, $9 $15),\n'\ +' TP_ARGS($10, $11, $12, $13, $14, $15),\n'\ +' TP_STRUCT__entry(__field($4, $10) __field($5, $11) __field($6, $12) __field($7, $13) __field($8, $14) __field($9, $15)),\n'\ +' TP_fast_assign(tp_assign($4, $10, $10) tp_assign($5, $11, $11) tp_assign($6, $12, $12) tp_assign($7, $13, $13) tp_assign($8, $14, $14) tp_assign($9, $15, $15)),\n'\ +' TP_printk()\n'\ +')\n'\ +'#endif/g'\ + ${TMPFILE} >> ${HEADER} + +# Macro for tracing syscall table + +rm -f ${TMPFILE} +for NRARGS in $(seq 0 6); do + grep "^syscall [^ ]* nr [^ ]* nbargs ${NRARGS} " ${SRCFILE} >> ${TMPFILE} +done + +echo \ +" +#endif /* _TRACE_SYSCALLS_${CLASSCAP}_H */ + +/* This part must be outside protection */ +#include \"../../../probes/define_trace.h\" + +#else /* CREATE_SYSCALL_TABLE */ + +#include \"${INPUTFILE}_${CLASS}_override.h\" +#include \"syscalls_${CLASS}_override.h\" +" >> ${HEADER} + +NRARGS=0 + +if [ "$CLASS" = integers ]; then +#noargs +grep "^syscall [^ ]* nr [^ ]* nbargs ${NRARGS} " ${SRCFILE} > ${TMPFILE} +perl -p -e 's/^syscall ([^ ]*) nr ([^ ]*) nbargs ([^ ]*) .*$/'\ +'#ifndef OVERRIDE_TABLE_'"${BITNESS}"'_sys_$1\n'\ +'TRACE_SYSCALL_TABLE\(syscalls_noargs, sys_$1, $2, $3\)\n'\ +'#endif/g'\ + ${TMPFILE} >> ${HEADER} +fi + +#others. +grep -v "^syscall [^ ]* nr [^ ]* nbargs ${NRARGS} " ${SRCFILE} > ${TMPFILE} +perl -p -e 's/^syscall ([^ ]*) nr ([^ ]*) nbargs ([^ ]*) .*$/'\ +'#ifndef OVERRIDE_TABLE_'"${BITNESS}"'_sys_$1\n'\ +'TRACE_SYSCALL_TABLE(sys_$1, sys_$1, $2, $3)\n'\ +'#endif/g'\ + ${TMPFILE} >> ${HEADER} + +echo -n \ +" +#endif /* CREATE_SYSCALL_TABLE */ +" >> ${HEADER} + +#fields names: ...char * type with *name* or *file* or *path* or *root* +# or *put_old* or *type* +cp -f ${HEADER} ${TMPFILE} +rm -f ${HEADER} +perl -p -e 's/__field\(([^,)]*char \*), ([^\)]*)(name|file|path|root|put_old|type)([^\)]*)\)/__string_from_user($2$3$4, $2$3$4)/g'\ + ${TMPFILE} >> ${HEADER} +cp -f ${HEADER} ${TMPFILE} +rm -f ${HEADER} +perl -p -e 's/tp_assign\(([^,)]*char \*), ([^,]*)(name|file|path|root|put_old|type)([^,]*), ([^\)]*)\)/tp_copy_string_from_user($2$3$4, $5)/g'\ + ${TMPFILE} >> ${HEADER} + +#prettify addresses heuristics. +#field names with addr or ptr +cp -f ${HEADER} ${TMPFILE} +rm -f ${HEADER} +perl -p -e 's/__field\(([^,)]*), ([^,)]*addr|[^,)]*ptr)([^),]*)\)/__field_hex($1, $2$3)/g'\ + ${TMPFILE} >> ${HEADER} + +#field types ending with '*' +cp -f ${HEADER} ${TMPFILE} +rm -f ${HEADER} +perl -p -e 's/__field\(([^,)]*\*), ([^),]*)\)/__field_hex($1, $2)/g'\ + ${TMPFILE} >> ${HEADER} + +#strip the extra type information from tp_assign. +cp -f ${HEADER} ${TMPFILE} +rm -f ${HEADER} +perl -p -e 's/tp_assign\(([^,)]*), ([^,]*), ([^\)]*)\)/tp_assign($2, $3)/g'\ + ${TMPFILE} >> ${HEADER} + +rm -f ${INPUTFILE}.tmp +rm -f ${TMPFILE} +rm -f ${SRCFILE} --- linux-3.11.0.orig/ubuntu/lttng/instrumentation/syscalls/README +++ linux-3.11.0/ubuntu/lttng/instrumentation/syscalls/README @@ -0,0 +1,18 @@ +LTTng system call tracing + +1) lttng-syscall-extractor + +You need to build a kernel with CONFIG_FTRACE_SYSCALLS=y and +CONFIG_KALLSYMS_ALL=y for extraction. Apply the linker patch to get your +kernel to keep the system call metadata after boot. Then build and load +the LTTng syscall extractor module. The module will fail to load (this +is expected). See the dmesg output for system call metadata. + +2) Generate system call TRACE_EVENT(). + +Take the dmesg metadata and feed it to lttng-syscalls-generate-headers.sh, e.g., +from the instrumentation/syscalls directory. See the script header for +usage example. It should be run for both the integers and pointers types. + +After these are created, we just need to follow the new system call additions, +no need to regenerate the whole thing, since system calls are only appended to. --- linux-3.11.0.orig/ubuntu/lttng/instrumentation/syscalls/3.10.0-rc7/x86-64-syscalls-3.10.0-rc7 +++ linux-3.11.0/ubuntu/lttng/instrumentation/syscalls/3.10.0-rc7/x86-64-syscalls-3.10.0-rc7 @@ -0,0 +1,290 @@ +syscall sys_read nr 0 nbargs 3 types: (unsigned int, char *, size_t) args: (fd, buf, count) +syscall sys_write nr 1 nbargs 3 types: (unsigned int, const char *, size_t) args: (fd, buf, count) +syscall sys_open nr 2 nbargs 3 types: (const char *, int, umode_t) args: (filename, flags, mode) +syscall sys_close nr 3 nbargs 1 types: (unsigned int) args: (fd) +syscall sys_newstat nr 4 nbargs 2 types: (const char *, struct stat *) args: (filename, statbuf) +syscall sys_newfstat nr 5 nbargs 2 types: (unsigned int, struct stat *) args: (fd, statbuf) +syscall sys_newlstat nr 6 nbargs 2 types: (const char *, struct stat *) args: (filename, statbuf) +syscall sys_poll nr 7 nbargs 3 types: (struct pollfd *, unsigned int, int) args: (ufds, nfds, timeout_msecs) +syscall sys_lseek nr 8 nbargs 3 types: (unsigned int, off_t, unsigned int) args: (fd, offset, whence) +syscall sys_mmap nr 9 nbargs 6 types: (unsigned long, unsigned long, unsigned long, unsigned long, unsigned long, unsigned long) args: (addr, len, prot, flags, fd, off) +syscall sys_mprotect nr 10 nbargs 3 types: (unsigned long, size_t, unsigned long) args: (start, len, prot) +syscall sys_munmap nr 11 nbargs 2 types: (unsigned long, size_t) args: (addr, len) +syscall sys_brk nr 12 nbargs 1 types: (unsigned long) args: (brk) +syscall sys_rt_sigaction nr 13 nbargs 4 types: (int, const struct sigaction *, struct sigaction *, size_t) args: (sig, act, oact, sigsetsize) +syscall sys_rt_sigprocmask nr 14 nbargs 4 types: (int, sigset_t *, sigset_t *, size_t) args: (how, nset, oset, sigsetsize) +syscall sys_ioctl nr 16 nbargs 3 types: (unsigned int, unsigned int, unsigned long) args: (fd, cmd, arg) +syscall sys_pread64 nr 17 nbargs 4 types: (unsigned int, char *, size_t, loff_t) args: (fd, buf, count, pos) +syscall sys_pwrite64 nr 18 nbargs 4 types: (unsigned int, const char *, size_t, loff_t) args: (fd, buf, count, pos) +syscall sys_readv nr 19 nbargs 3 types: (unsigned long, const struct iovec *, unsigned long) args: (fd, vec, vlen) +syscall sys_writev nr 20 nbargs 3 types: (unsigned long, const struct iovec *, unsigned long) args: (fd, vec, vlen) +syscall sys_access nr 21 nbargs 2 types: (const char *, int) args: (filename, mode) +syscall sys_pipe nr 22 nbargs 1 types: (int *) args: (fildes) +syscall sys_select nr 23 nbargs 5 types: (int, fd_set *, fd_set *, fd_set *, struct timeval *) args: (n, inp, outp, exp, tvp) +syscall sys_sched_yield nr 24 nbargs 0 types: () args: () +syscall sys_mremap nr 25 nbargs 5 types: (unsigned long, unsigned long, unsigned long, unsigned long, unsigned long) args: (addr, old_len, new_len, flags, new_addr) +syscall sys_msync nr 26 nbargs 3 types: (unsigned long, size_t, int) args: (start, len, flags) +syscall sys_mincore nr 27 nbargs 3 types: (unsigned long, size_t, unsigned char *) args: (start, len, vec) +syscall sys_madvise nr 28 nbargs 3 types: (unsigned long, size_t, int) args: (start, len_in, behavior) +syscall sys_shmget nr 29 nbargs 3 types: (key_t, size_t, int) args: (key, size, shmflg) +syscall sys_shmat nr 30 nbargs 3 types: (int, char *, int) args: (shmid, shmaddr, shmflg) +syscall sys_shmctl nr 31 nbargs 3 types: (int, int, struct shmid_ds *) args: (shmid, cmd, buf) +syscall sys_dup nr 32 nbargs 1 types: (unsigned int) args: (fildes) +syscall sys_dup2 nr 33 nbargs 2 types: (unsigned int, unsigned int) args: (oldfd, newfd) +syscall sys_pause nr 34 nbargs 0 types: () args: () +syscall sys_nanosleep nr 35 nbargs 2 types: (struct timespec *, struct timespec *) args: (rqtp, rmtp) +syscall sys_getitimer nr 36 nbargs 2 types: (int, struct itimerval *) args: (which, value) +syscall sys_alarm nr 37 nbargs 1 types: (unsigned int) args: (seconds) +syscall sys_setitimer nr 38 nbargs 3 types: (int, struct itimerval *, struct itimerval *) args: (which, value, ovalue) +syscall sys_getpid nr 39 nbargs 0 types: () args: () +syscall sys_sendfile64 nr 40 nbargs 4 types: (int, int, loff_t *, size_t) args: (out_fd, in_fd, offset, count) +syscall sys_socket nr 41 nbargs 3 types: (int, int, int) args: (family, type, protocol) +syscall sys_connect nr 42 nbargs 3 types: (int, struct sockaddr *, int) args: (fd, uservaddr, addrlen) +syscall sys_accept nr 43 nbargs 3 types: (int, struct sockaddr *, int *) args: (fd, upeer_sockaddr, upeer_addrlen) +syscall sys_sendto nr 44 nbargs 6 types: (int, void *, size_t, unsigned int, struct sockaddr *, int) args: (fd, buff, len, flags, addr, addr_len) +syscall sys_recvfrom nr 45 nbargs 6 types: (int, void *, size_t, unsigned int, struct sockaddr *, int *) args: (fd, ubuf, size, flags, addr, addr_len) +syscall sys_sendmsg nr 46 nbargs 3 types: (int, struct msghdr *, unsigned int) args: (fd, msg, flags) +syscall sys_recvmsg nr 47 nbargs 3 types: (int, struct msghdr *, unsigned int) args: (fd, msg, flags) +syscall sys_shutdown nr 48 nbargs 2 types: (int, int) args: (fd, how) +syscall sys_bind nr 49 nbargs 3 types: (int, struct sockaddr *, int) args: (fd, umyaddr, addrlen) +syscall sys_listen nr 50 nbargs 2 types: (int, int) args: (fd, backlog) +syscall sys_getsockname nr 51 nbargs 3 types: (int, struct sockaddr *, int *) args: (fd, usockaddr, usockaddr_len) +syscall sys_getpeername nr 52 nbargs 3 types: (int, struct sockaddr *, int *) args: (fd, usockaddr, usockaddr_len) +syscall sys_socketpair nr 53 nbargs 4 types: (int, int, int, int *) args: (family, type, protocol, usockvec) +syscall sys_setsockopt nr 54 nbargs 5 types: (int, int, int, char *, int) args: (fd, level, optname, optval, optlen) +syscall sys_getsockopt nr 55 nbargs 5 types: (int, int, int, char *, int *) args: (fd, level, optname, optval, optlen) +syscall sys_exit nr 60 nbargs 1 types: (int) args: (error_code) +syscall sys_wait4 nr 61 nbargs 4 types: (pid_t, int *, int, struct rusage *) args: (upid, stat_addr, options, ru) +syscall sys_kill nr 62 nbargs 2 types: (pid_t, int) args: (pid, sig) +syscall sys_newuname nr 63 nbargs 1 types: (struct new_utsname *) args: (name) +syscall sys_semget nr 64 nbargs 3 types: (key_t, int, int) args: (key, nsems, semflg) +syscall sys_semop nr 65 nbargs 3 types: (int, struct sembuf *, unsigned) args: (semid, tsops, nsops) +syscall sys_semctl nr 66 nbargs 4 types: (int, int, int, unsigned long) args: (semid, semnum, cmd, arg) +syscall sys_shmdt nr 67 nbargs 1 types: (char *) args: (shmaddr) +syscall sys_msgget nr 68 nbargs 2 types: (key_t, int) args: (key, msgflg) +syscall sys_msgsnd nr 69 nbargs 4 types: (int, struct msgbuf *, size_t, int) args: (msqid, msgp, msgsz, msgflg) +syscall sys_msgrcv nr 70 nbargs 5 types: (int, struct msgbuf *, size_t, long, int) args: (msqid, msgp, msgsz, msgtyp, msgflg) +syscall sys_msgctl nr 71 nbargs 3 types: (int, int, struct msqid_ds *) args: (msqid, cmd, buf) +syscall sys_fcntl nr 72 nbargs 3 types: (unsigned int, unsigned int, unsigned long) args: (fd, cmd, arg) +syscall sys_flock nr 73 nbargs 2 types: (unsigned int, unsigned int) args: (fd, cmd) +syscall sys_fsync nr 74 nbargs 1 types: (unsigned int) args: (fd) +syscall sys_fdatasync nr 75 nbargs 1 types: (unsigned int) args: (fd) +syscall sys_truncate nr 76 nbargs 2 types: (const char *, long) args: (path, length) +syscall sys_ftruncate nr 77 nbargs 2 types: (unsigned int, unsigned long) args: (fd, length) +syscall sys_getdents nr 78 nbargs 3 types: (unsigned int, struct linux_dirent *, unsigned int) args: (fd, dirent, count) +syscall sys_getcwd nr 79 nbargs 2 types: (char *, unsigned long) args: (buf, size) +syscall sys_chdir nr 80 nbargs 1 types: (const char *) args: (filename) +syscall sys_fchdir nr 81 nbargs 1 types: (unsigned int) args: (fd) +syscall sys_rename nr 82 nbargs 2 types: (const char *, const char *) args: (oldname, newname) +syscall sys_mkdir nr 83 nbargs 2 types: (const char *, umode_t) args: (pathname, mode) +syscall sys_rmdir nr 84 nbargs 1 types: (const char *) args: (pathname) +syscall sys_creat nr 85 nbargs 2 types: (const char *, umode_t) args: (pathname, mode) +syscall sys_link nr 86 nbargs 2 types: (const char *, const char *) args: (oldname, newname) +syscall sys_unlink nr 87 nbargs 1 types: (const char *) args: (pathname) +syscall sys_symlink nr 88 nbargs 2 types: (const char *, const char *) args: (oldname, newname) +syscall sys_readlink nr 89 nbargs 3 types: (const char *, char *, int) args: (path, buf, bufsiz) +syscall sys_chmod nr 90 nbargs 2 types: (const char *, umode_t) args: (filename, mode) +syscall sys_fchmod nr 91 nbargs 2 types: (unsigned int, umode_t) args: (fd, mode) +syscall sys_chown nr 92 nbargs 3 types: (const char *, uid_t, gid_t) args: (filename, user, group) +syscall sys_fchown nr 93 nbargs 3 types: (unsigned int, uid_t, gid_t) args: (fd, user, group) +syscall sys_lchown nr 94 nbargs 3 types: (const char *, uid_t, gid_t) args: (filename, user, group) +syscall sys_umask nr 95 nbargs 1 types: (int) args: (mask) +syscall sys_gettimeofday nr 96 nbargs 2 types: (struct timeval *, struct timezone *) args: (tv, tz) +syscall sys_getrlimit nr 97 nbargs 2 types: (unsigned int, struct rlimit *) args: (resource, rlim) +syscall sys_getrusage nr 98 nbargs 2 types: (int, struct rusage *) args: (who, ru) +syscall sys_sysinfo nr 99 nbargs 1 types: (struct sysinfo *) args: (info) +syscall sys_times nr 100 nbargs 1 types: (struct tms *) args: (tbuf) +syscall sys_ptrace nr 101 nbargs 4 types: (long, long, unsigned long, unsigned long) args: (request, pid, addr, data) +syscall sys_getuid nr 102 nbargs 0 types: () args: () +syscall sys_syslog nr 103 nbargs 3 types: (int, char *, int) args: (type, buf, len) +syscall sys_getgid nr 104 nbargs 0 types: () args: () +syscall sys_setuid nr 105 nbargs 1 types: (uid_t) args: (uid) +syscall sys_setgid nr 106 nbargs 1 types: (gid_t) args: (gid) +syscall sys_geteuid nr 107 nbargs 0 types: () args: () +syscall sys_getegid nr 108 nbargs 0 types: () args: () +syscall sys_setpgid nr 109 nbargs 2 types: (pid_t, pid_t) args: (pid, pgid) +syscall sys_getppid nr 110 nbargs 0 types: () args: () +syscall sys_getpgrp nr 111 nbargs 0 types: () args: () +syscall sys_setsid nr 112 nbargs 0 types: () args: () +syscall sys_setreuid nr 113 nbargs 2 types: (uid_t, uid_t) args: (ruid, euid) +syscall sys_setregid nr 114 nbargs 2 types: (gid_t, gid_t) args: (rgid, egid) +syscall sys_getgroups nr 115 nbargs 2 types: (int, gid_t *) args: (gidsetsize, grouplist) +syscall sys_setgroups nr 116 nbargs 2 types: (int, gid_t *) args: (gidsetsize, grouplist) +syscall sys_setresuid nr 117 nbargs 3 types: (uid_t, uid_t, uid_t) args: (ruid, euid, suid) +syscall sys_getresuid nr 118 nbargs 3 types: (uid_t *, uid_t *, uid_t *) args: (ruidp, euidp, suidp) +syscall sys_setresgid nr 119 nbargs 3 types: (gid_t, gid_t, gid_t) args: (rgid, egid, sgid) +syscall sys_getresgid nr 120 nbargs 3 types: (gid_t *, gid_t *, gid_t *) args: (rgidp, egidp, sgidp) +syscall sys_getpgid nr 121 nbargs 1 types: (pid_t) args: (pid) +syscall sys_setfsuid nr 122 nbargs 1 types: (uid_t) args: (uid) +syscall sys_setfsgid nr 123 nbargs 1 types: (gid_t) args: (gid) +syscall sys_getsid nr 124 nbargs 1 types: (pid_t) args: (pid) +syscall sys_capget nr 125 nbargs 2 types: (cap_user_header_t, cap_user_data_t) args: (header, dataptr) +syscall sys_capset nr 126 nbargs 2 types: (cap_user_header_t, const cap_user_data_t) args: (header, data) +syscall sys_rt_sigpending nr 127 nbargs 2 types: (sigset_t *, size_t) args: (uset, sigsetsize) +syscall sys_rt_sigtimedwait nr 128 nbargs 4 types: (const sigset_t *, siginfo_t *, const struct timespec *, size_t) args: (uthese, uinfo, uts, sigsetsize) +syscall sys_rt_sigqueueinfo nr 129 nbargs 3 types: (pid_t, int, siginfo_t *) args: (pid, sig, uinfo) +syscall sys_rt_sigsuspend nr 130 nbargs 2 types: (sigset_t *, size_t) args: (unewset, sigsetsize) +syscall sys_sigaltstack nr 131 nbargs 2 types: (const stack_t *, stack_t *) args: (uss, uoss) +syscall sys_utime nr 132 nbargs 2 types: (char *, struct utimbuf *) args: (filename, times) +syscall sys_mknod nr 133 nbargs 3 types: (const char *, umode_t, unsigned) args: (filename, mode, dev) +syscall sys_personality nr 135 nbargs 1 types: (unsigned int) args: (personality) +syscall sys_ustat nr 136 nbargs 2 types: (unsigned, struct ustat *) args: (dev, ubuf) +syscall sys_statfs nr 137 nbargs 2 types: (const char *, struct statfs *) args: (pathname, buf) +syscall sys_fstatfs nr 138 nbargs 2 types: (unsigned int, struct statfs *) args: (fd, buf) +syscall sys_sysfs nr 139 nbargs 3 types: (int, unsigned long, unsigned long) args: (option, arg1, arg2) +syscall sys_getpriority nr 140 nbargs 2 types: (int, int) args: (which, who) +syscall sys_setpriority nr 141 nbargs 3 types: (int, int, int) args: (which, who, niceval) +syscall sys_sched_setparam nr 142 nbargs 2 types: (pid_t, struct sched_param *) args: (pid, param) +syscall sys_sched_getparam nr 143 nbargs 2 types: (pid_t, struct sched_param *) args: (pid, param) +syscall sys_sched_setscheduler nr 144 nbargs 3 types: (pid_t, int, struct sched_param *) args: (pid, policy, param) +syscall sys_sched_getscheduler nr 145 nbargs 1 types: (pid_t) args: (pid) +syscall sys_sched_get_priority_max nr 146 nbargs 1 types: (int) args: (policy) +syscall sys_sched_get_priority_min nr 147 nbargs 1 types: (int) args: (policy) +syscall sys_sched_rr_get_interval nr 148 nbargs 2 types: (pid_t, struct timespec *) args: (pid, interval) +syscall sys_mlock nr 149 nbargs 2 types: (unsigned long, size_t) args: (start, len) +syscall sys_munlock nr 150 nbargs 2 types: (unsigned long, size_t) args: (start, len) +syscall sys_mlockall nr 151 nbargs 1 types: (int) args: (flags) +syscall sys_munlockall nr 152 nbargs 0 types: () args: () +syscall sys_vhangup nr 153 nbargs 0 types: () args: () +syscall sys_pivot_root nr 155 nbargs 2 types: (const char *, const char *) args: (new_root, put_old) +syscall sys_sysctl nr 156 nbargs 1 types: (struct __sysctl_args *) args: (args) +syscall sys_prctl nr 157 nbargs 5 types: (int, unsigned long, unsigned long, unsigned long, unsigned long) args: (option, arg2, arg3, arg4, arg5) +syscall sys_adjtimex nr 159 nbargs 1 types: (struct timex *) args: (txc_p) +syscall sys_setrlimit nr 160 nbargs 2 types: (unsigned int, struct rlimit *) args: (resource, rlim) +syscall sys_chroot nr 161 nbargs 1 types: (const char *) args: (filename) +syscall sys_sync nr 162 nbargs 0 types: () args: () +syscall sys_acct nr 163 nbargs 1 types: (const char *) args: (name) +syscall sys_settimeofday nr 164 nbargs 2 types: (struct timeval *, struct timezone *) args: (tv, tz) +syscall sys_mount nr 165 nbargs 5 types: (char *, char *, char *, unsigned long, void *) args: (dev_name, dir_name, type, flags, data) +syscall sys_umount nr 166 nbargs 2 types: (char *, int) args: (name, flags) +syscall sys_swapon nr 167 nbargs 2 types: (const char *, int) args: (specialfile, swap_flags) +syscall sys_swapoff nr 168 nbargs 1 types: (const char *) args: (specialfile) +syscall sys_reboot nr 169 nbargs 4 types: (int, int, unsigned int, void *) args: (magic1, magic2, cmd, arg) +syscall sys_sethostname nr 170 nbargs 2 types: (char *, int) args: (name, len) +syscall sys_setdomainname nr 171 nbargs 2 types: (char *, int) args: (name, len) +syscall sys_init_module nr 175 nbargs 3 types: (void *, unsigned long, const char *) args: (umod, len, uargs) +syscall sys_delete_module nr 176 nbargs 2 types: (const char *, unsigned int) args: (name_user, flags) +syscall sys_quotactl nr 179 nbargs 4 types: (unsigned int, const char *, qid_t, void *) args: (cmd, special, id, addr) +syscall sys_gettid nr 186 nbargs 0 types: () args: () +syscall sys_readahead nr 187 nbargs 3 types: (int, loff_t, size_t) args: (fd, offset, count) +syscall sys_setxattr nr 188 nbargs 5 types: (const char *, const char *, const void *, size_t, int) args: (pathname, name, value, size, flags) +syscall sys_lsetxattr nr 189 nbargs 5 types: (const char *, const char *, const void *, size_t, int) args: (pathname, name, value, size, flags) +syscall sys_fsetxattr nr 190 nbargs 5 types: (int, const char *, const void *, size_t, int) args: (fd, name, value, size, flags) +syscall sys_getxattr nr 191 nbargs 4 types: (const char *, const char *, void *, size_t) args: (pathname, name, value, size) +syscall sys_lgetxattr nr 192 nbargs 4 types: (const char *, const char *, void *, size_t) args: (pathname, name, value, size) +syscall sys_fgetxattr nr 193 nbargs 4 types: (int, const char *, void *, size_t) args: (fd, name, value, size) +syscall sys_listxattr nr 194 nbargs 3 types: (const char *, char *, size_t) args: (pathname, list, size) +syscall sys_llistxattr nr 195 nbargs 3 types: (const char *, char *, size_t) args: (pathname, list, size) +syscall sys_flistxattr nr 196 nbargs 3 types: (int, char *, size_t) args: (fd, list, size) +syscall sys_removexattr nr 197 nbargs 2 types: (const char *, const char *) args: (pathname, name) +syscall sys_lremovexattr nr 198 nbargs 2 types: (const char *, const char *) args: (pathname, name) +syscall sys_fremovexattr nr 199 nbargs 2 types: (int, const char *) args: (fd, name) +syscall sys_tkill nr 200 nbargs 2 types: (pid_t, int) args: (pid, sig) +syscall sys_time nr 201 nbargs 1 types: (time_t *) args: (tloc) +syscall sys_futex nr 202 nbargs 6 types: (u32 *, int, u32, struct timespec *, u32 *, u32) args: (uaddr, op, val, utime, uaddr2, val3) +syscall sys_sched_setaffinity nr 203 nbargs 3 types: (pid_t, unsigned int, unsigned long *) args: (pid, len, user_mask_ptr) +syscall sys_sched_getaffinity nr 204 nbargs 3 types: (pid_t, unsigned int, unsigned long *) args: (pid, len, user_mask_ptr) +syscall sys_io_setup nr 206 nbargs 2 types: (unsigned, aio_context_t *) args: (nr_events, ctxp) +syscall sys_io_destroy nr 207 nbargs 1 types: (aio_context_t) args: (ctx) +syscall sys_io_getevents nr 208 nbargs 5 types: (aio_context_t, long, long, struct io_event *, struct timespec *) args: (ctx_id, min_nr, nr, events, timeout) +syscall sys_io_submit nr 209 nbargs 3 types: (aio_context_t, long, struct iocb * *) args: (ctx_id, nr, iocbpp) +syscall sys_io_cancel nr 210 nbargs 3 types: (aio_context_t, struct iocb *, struct io_event *) args: (ctx_id, iocb, result) +syscall sys_lookup_dcookie nr 212 nbargs 3 types: (u64, char *, size_t) args: (cookie64, buf, len) +syscall sys_epoll_create nr 213 nbargs 1 types: (int) args: (size) +syscall sys_remap_file_pages nr 216 nbargs 5 types: (unsigned long, unsigned long, unsigned long, unsigned long, unsigned long) args: (start, size, prot, pgoff, flags) +syscall sys_getdents64 nr 217 nbargs 3 types: (unsigned int, struct linux_dirent64 *, unsigned int) args: (fd, dirent, count) +syscall sys_set_tid_address nr 218 nbargs 1 types: (int *) args: (tidptr) +syscall sys_restart_syscall nr 219 nbargs 0 types: () args: () +syscall sys_semtimedop nr 220 nbargs 4 types: (int, struct sembuf *, unsigned, const struct timespec *) args: (semid, tsops, nsops, timeout) +syscall sys_fadvise64 nr 221 nbargs 4 types: (int, loff_t, size_t, int) args: (fd, offset, len, advice) +syscall sys_timer_create nr 222 nbargs 3 types: (const clockid_t, struct sigevent *, timer_t *) args: (which_clock, timer_event_spec, created_timer_id) +syscall sys_timer_settime nr 223 nbargs 4 types: (timer_t, int, const struct itimerspec *, struct itimerspec *) args: (timer_id, flags, new_setting, old_setting) +syscall sys_timer_gettime nr 224 nbargs 2 types: (timer_t, struct itimerspec *) args: (timer_id, setting) +syscall sys_timer_getoverrun nr 225 nbargs 1 types: (timer_t) args: (timer_id) +syscall sys_timer_delete nr 226 nbargs 1 types: (timer_t) args: (timer_id) +syscall sys_clock_settime nr 227 nbargs 2 types: (const clockid_t, const struct timespec *) args: (which_clock, tp) +syscall sys_clock_gettime nr 228 nbargs 2 types: (const clockid_t, struct timespec *) args: (which_clock, tp) +syscall sys_clock_getres nr 229 nbargs 2 types: (const clockid_t, struct timespec *) args: (which_clock, tp) +syscall sys_clock_nanosleep nr 230 nbargs 4 types: (const clockid_t, int, const struct timespec *, struct timespec *) args: (which_clock, flags, rqtp, rmtp) +syscall sys_exit_group nr 231 nbargs 1 types: (int) args: (error_code) +syscall sys_epoll_wait nr 232 nbargs 4 types: (int, struct epoll_event *, int, int) args: (epfd, events, maxevents, timeout) +syscall sys_epoll_ctl nr 233 nbargs 4 types: (int, int, int, struct epoll_event *) args: (epfd, op, fd, event) +syscall sys_tgkill nr 234 nbargs 3 types: (pid_t, pid_t, int) args: (tgid, pid, sig) +syscall sys_utimes nr 235 nbargs 2 types: (char *, struct timeval *) args: (filename, utimes) +syscall sys_mbind nr 237 nbargs 6 types: (unsigned long, unsigned long, unsigned long, unsigned long *, unsigned long, unsigned) args: (start, len, mode, nmask, maxnode, flags) +syscall sys_set_mempolicy nr 238 nbargs 3 types: (int, unsigned long *, unsigned long) args: (mode, nmask, maxnode) +syscall sys_get_mempolicy nr 239 nbargs 5 types: (int *, unsigned long *, unsigned long, unsigned long, unsigned long) args: (policy, nmask, maxnode, addr, flags) +syscall sys_mq_open nr 240 nbargs 4 types: (const char *, int, umode_t, struct mq_attr *) args: (u_name, oflag, mode, u_attr) +syscall sys_mq_unlink nr 241 nbargs 1 types: (const char *) args: (u_name) +syscall sys_mq_timedsend nr 242 nbargs 5 types: (mqd_t, const char *, size_t, unsigned int, const struct timespec *) args: (mqdes, u_msg_ptr, msg_len, msg_prio, u_abs_timeout) +syscall sys_mq_timedreceive nr 243 nbargs 5 types: (mqd_t, char *, size_t, unsigned int *, const struct timespec *) args: (mqdes, u_msg_ptr, msg_len, u_msg_prio, u_abs_timeout) +syscall sys_mq_notify nr 244 nbargs 2 types: (mqd_t, const struct sigevent *) args: (mqdes, u_notification) +syscall sys_mq_getsetattr nr 245 nbargs 3 types: (mqd_t, const struct mq_attr *, struct mq_attr *) args: (mqdes, u_mqstat, u_omqstat) +syscall sys_kexec_load nr 246 nbargs 4 types: (unsigned long, unsigned long, struct kexec_segment *, unsigned long) args: (entry, nr_segments, segments, flags) +syscall sys_waitid nr 247 nbargs 5 types: (int, pid_t, struct siginfo *, int, struct rusage *) args: (which, upid, infop, options, ru) +syscall sys_add_key nr 248 nbargs 5 types: (const char *, const char *, const void *, size_t, key_serial_t) args: (_type, _description, _payload, plen, ringid) +syscall sys_request_key nr 249 nbargs 4 types: (const char *, const char *, const char *, key_serial_t) args: (_type, _description, _callout_info, destringid) +syscall sys_keyctl nr 250 nbargs 5 types: (int, unsigned long, unsigned long, unsigned long, unsigned long) args: (option, arg2, arg3, arg4, arg5) +syscall sys_ioprio_set nr 251 nbargs 3 types: (int, int, int) args: (which, who, ioprio) +syscall sys_ioprio_get nr 252 nbargs 2 types: (int, int) args: (which, who) +syscall sys_inotify_init nr 253 nbargs 0 types: () args: () +syscall sys_inotify_add_watch nr 254 nbargs 3 types: (int, const char *, u32) args: (fd, pathname, mask) +syscall sys_inotify_rm_watch nr 255 nbargs 2 types: (int, __s32) args: (fd, wd) +syscall sys_migrate_pages nr 256 nbargs 4 types: (pid_t, unsigned long, const unsigned long *, const unsigned long *) args: (pid, maxnode, old_nodes, new_nodes) +syscall sys_openat nr 257 nbargs 4 types: (int, const char *, int, umode_t) args: (dfd, filename, flags, mode) +syscall sys_mkdirat nr 258 nbargs 3 types: (int, const char *, umode_t) args: (dfd, pathname, mode) +syscall sys_mknodat nr 259 nbargs 4 types: (int, const char *, umode_t, unsigned) args: (dfd, filename, mode, dev) +syscall sys_fchownat nr 260 nbargs 5 types: (int, const char *, uid_t, gid_t, int) args: (dfd, filename, user, group, flag) +syscall sys_futimesat nr 261 nbargs 3 types: (int, const char *, struct timeval *) args: (dfd, filename, utimes) +syscall sys_newfstatat nr 262 nbargs 4 types: (int, const char *, struct stat *, int) args: (dfd, filename, statbuf, flag) +syscall sys_unlinkat nr 263 nbargs 3 types: (int, const char *, int) args: (dfd, pathname, flag) +syscall sys_renameat nr 264 nbargs 4 types: (int, const char *, int, const char *) args: (olddfd, oldname, newdfd, newname) +syscall sys_linkat nr 265 nbargs 5 types: (int, const char *, int, const char *, int) args: (olddfd, oldname, newdfd, newname, flags) +syscall sys_symlinkat nr 266 nbargs 3 types: (const char *, int, const char *) args: (oldname, newdfd, newname) +syscall sys_readlinkat nr 267 nbargs 4 types: (int, const char *, char *, int) args: (dfd, pathname, buf, bufsiz) +syscall sys_fchmodat nr 268 nbargs 3 types: (int, const char *, umode_t) args: (dfd, filename, mode) +syscall sys_faccessat nr 269 nbargs 3 types: (int, const char *, int) args: (dfd, filename, mode) +syscall sys_pselect6 nr 270 nbargs 6 types: (int, fd_set *, fd_set *, fd_set *, struct timespec *, void *) args: (n, inp, outp, exp, tsp, sig) +syscall sys_ppoll nr 271 nbargs 5 types: (struct pollfd *, unsigned int, struct timespec *, const sigset_t *, size_t) args: (ufds, nfds, tsp, sigmask, sigsetsize) +syscall sys_unshare nr 272 nbargs 1 types: (unsigned long) args: (unshare_flags) +syscall sys_set_robust_list nr 273 nbargs 2 types: (struct robust_list_head *, size_t) args: (head, len) +syscall sys_get_robust_list nr 274 nbargs 3 types: (int, struct robust_list_head * *, size_t *) args: (pid, head_ptr, len_ptr) +syscall sys_splice nr 275 nbargs 6 types: (int, loff_t *, int, loff_t *, size_t, unsigned int) args: (fd_in, off_in, fd_out, off_out, len, flags) +syscall sys_tee nr 276 nbargs 4 types: (int, int, size_t, unsigned int) args: (fdin, fdout, len, flags) +syscall sys_sync_file_range nr 277 nbargs 4 types: (int, loff_t, loff_t, unsigned int) args: (fd, offset, nbytes, flags) +syscall sys_vmsplice nr 278 nbargs 4 types: (int, const struct iovec *, unsigned long, unsigned int) args: (fd, iov, nr_segs, flags) +syscall sys_move_pages nr 279 nbargs 6 types: (pid_t, unsigned long, const void * *, const int *, int *, int) args: (pid, nr_pages, pages, nodes, status, flags) +syscall sys_utimensat nr 280 nbargs 4 types: (int, const char *, struct timespec *, int) args: (dfd, filename, utimes, flags) +syscall sys_epoll_pwait nr 281 nbargs 6 types: (int, struct epoll_event *, int, int, const sigset_t *, size_t) args: (epfd, events, maxevents, timeout, sigmask, sigsetsize) +syscall sys_signalfd nr 282 nbargs 3 types: (int, sigset_t *, size_t) args: (ufd, user_mask, sizemask) +syscall sys_timerfd_create nr 283 nbargs 2 types: (int, int) args: (clockid, flags) +syscall sys_eventfd nr 284 nbargs 1 types: (unsigned int) args: (count) +syscall sys_fallocate nr 285 nbargs 4 types: (int, int, loff_t, loff_t) args: (fd, mode, offset, len) +syscall sys_timerfd_settime nr 286 nbargs 4 types: (int, int, const struct itimerspec *, struct itimerspec *) args: (ufd, flags, utmr, otmr) +syscall sys_timerfd_gettime nr 287 nbargs 2 types: (int, struct itimerspec *) args: (ufd, otmr) +syscall sys_accept4 nr 288 nbargs 4 types: (int, struct sockaddr *, int *, int) args: (fd, upeer_sockaddr, upeer_addrlen, flags) +syscall sys_signalfd4 nr 289 nbargs 4 types: (int, sigset_t *, size_t, int) args: (ufd, user_mask, sizemask, flags) +syscall sys_eventfd2 nr 290 nbargs 2 types: (unsigned int, int) args: (count, flags) +syscall sys_epoll_create1 nr 291 nbargs 1 types: (int) args: (flags) +syscall sys_dup3 nr 292 nbargs 3 types: (unsigned int, unsigned int, int) args: (oldfd, newfd, flags) +syscall sys_pipe2 nr 293 nbargs 2 types: (int *, int) args: (fildes, flags) +syscall sys_inotify_init1 nr 294 nbargs 1 types: (int) args: (flags) +syscall sys_preadv nr 295 nbargs 5 types: (unsigned long, const struct iovec *, unsigned long, unsigned long, unsigned long) args: (fd, vec, vlen, pos_l, pos_h) +syscall sys_pwritev nr 296 nbargs 5 types: (unsigned long, const struct iovec *, unsigned long, unsigned long, unsigned long) args: (fd, vec, vlen, pos_l, pos_h) +syscall sys_rt_tgsigqueueinfo nr 297 nbargs 4 types: (pid_t, pid_t, int, siginfo_t *) args: (tgid, pid, sig, uinfo) +syscall sys_perf_event_open nr 298 nbargs 5 types: (struct perf_event_attr *, pid_t, int, int, unsigned long) args: (attr_uptr, pid, cpu, group_fd, flags) +syscall sys_recvmmsg nr 299 nbargs 5 types: (int, struct mmsghdr *, unsigned int, unsigned int, struct timespec *) args: (fd, mmsg, vlen, flags, timeout) +syscall sys_fanotify_init nr 300 nbargs 2 types: (unsigned int, unsigned int) args: (flags, event_f_flags) +syscall sys_fanotify_mark nr 301 nbargs 5 types: (int, unsigned int, __u64, int, const char *) args: (fanotify_fd, flags, mask, dfd, pathname) +syscall sys_prlimit64 nr 302 nbargs 4 types: (pid_t, unsigned int, const struct rlimit64 *, struct rlimit64 *) args: (pid, resource, new_rlim, old_rlim) +syscall sys_name_to_handle_at nr 303 nbargs 5 types: (int, const char *, struct file_handle *, int *, int) args: (dfd, name, handle, mnt_id, flag) +syscall sys_open_by_handle_at nr 304 nbargs 3 types: (int, struct file_handle *, int) args: (mountdirfd, handle, flags) +syscall sys_clock_adjtime nr 305 nbargs 2 types: (const clockid_t, struct timex *) args: (which_clock, utx) +syscall sys_syncfs nr 306 nbargs 1 types: (int) args: (fd) +syscall sys_sendmmsg nr 307 nbargs 4 types: (int, struct mmsghdr *, unsigned int, unsigned int) args: (fd, mmsg, vlen, flags) +syscall sys_setns nr 308 nbargs 2 types: (int, int) args: (fd, nstype) +syscall sys_getcpu nr 309 nbargs 3 types: (unsigned *, unsigned *, struct getcpu_cache *) args: (cpup, nodep, unused) +syscall sys_process_vm_readv nr 310 nbargs 6 types: (pid_t, const struct iovec *, unsigned long, const struct iovec *, unsigned long, unsigned long) args: (pid, lvec, liovcnt, rvec, riovcnt, flags) +syscall sys_process_vm_writev nr 311 nbargs 6 types: (pid_t, const struct iovec *, unsigned long, const struct iovec *, unsigned long, unsigned long) args: (pid, lvec, liovcnt, rvec, riovcnt, flags) +syscall sys_finit_module nr 313 nbargs 3 types: (int, const char *, int) args: (fd, uargs, flags) +SUCCESS --- linux-3.11.0.orig/ubuntu/lttng/instrumentation/syscalls/headers/mips-64-syscalls-3.5.0_integers_override.h +++ linux-3.11.0/ubuntu/lttng/instrumentation/syscalls/headers/mips-64-syscalls-3.5.0_integers_override.h @@ -0,0 +1,3 @@ +/* + * this is a place-holder for MIPS integer syscall definition override. + */ --- linux-3.11.0.orig/ubuntu/lttng/instrumentation/syscalls/headers/x86-32-syscalls-3.1.0-rc6_pointers_override.h +++ linux-3.11.0/ubuntu/lttng/instrumentation/syscalls/headers/x86-32-syscalls-3.1.0-rc6_pointers_override.h @@ -0,0 +1,33 @@ + +#ifndef CREATE_SYSCALL_TABLE + +# ifndef CONFIG_UID16 +# define OVERRIDE_32_sys_getgroups16 +# define OVERRIDE_32_sys_setgroups16 +# define OVERRIDE_32_sys_lchown16 +# define OVERRIDE_32_sys_getresuid16 +# define OVERRIDE_32_sys_getresgid16 +# define OVERRIDE_32_sys_chown16 +# endif + +#else /* CREATE_SYSCALL_TABLE */ + +# ifndef CONFIG_UID16 +# define OVERRIDE_TABLE_32_sys_getgroups16 +# define OVERRIDE_TABLE_32_sys_setgroups16 +# define OVERRIDE_TABLE_32_sys_lchown16 +# define OVERRIDE_TABLE_32_sys_getresuid16 +# define OVERRIDE_TABLE_32_sys_getresgid16 +# define OVERRIDE_TABLE_32_sys_chown16 +# endif + +#define OVERRIDE_TABLE_32_sys_execve +TRACE_SYSCALL_TABLE(sys_execve, sys_execve, 11, 3) +#define OVERRIDE_TABLE_32_sys_clone +TRACE_SYSCALL_TABLE(sys_clone, sys_clone, 120, 5) +#define OVERRIDE_TABLE_32_sys_getcpu +TRACE_SYSCALL_TABLE(sys_getcpu, sys_getcpu, 318, 3) + +#endif /* CREATE_SYSCALL_TABLE */ + + --- linux-3.11.0.orig/ubuntu/lttng/instrumentation/syscalls/headers/compat_syscalls_integers.h +++ linux-3.11.0/ubuntu/lttng/instrumentation/syscalls/headers/compat_syscalls_integers.h @@ -0,0 +1,3 @@ +#ifdef CONFIG_X86_64 +#include "x86-32-syscalls-3.1.0-rc6_integers.h" +#endif --- linux-3.11.0.orig/ubuntu/lttng/instrumentation/syscalls/headers/arm-32-syscalls-3.4.25_pointers.h +++ linux-3.11.0/ubuntu/lttng/instrumentation/syscalls/headers/arm-32-syscalls-3.4.25_pointers.h @@ -0,0 +1,2316 @@ +/* THIS FILE IS AUTO-GENERATED. DO NOT EDIT */ +#ifndef CREATE_SYSCALL_TABLE + +#if !defined(_TRACE_SYSCALLS_POINTERS_H) || defined(TRACE_HEADER_MULTI_READ) +#define _TRACE_SYSCALLS_POINTERS_H + +#include +#include +#include "arm-32-syscalls-3.4.25_pointers_override.h" +#include "syscalls_pointers_override.h" + +#ifndef OVERRIDE_32_sys_unlink +SC_TRACE_EVENT(sys_unlink, + TP_PROTO(const char * pathname), + TP_ARGS(pathname), + TP_STRUCT__entry(__string_from_user(pathname, pathname)), + TP_fast_assign(tp_copy_string_from_user(pathname, pathname)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_chdir +SC_TRACE_EVENT(sys_chdir, + TP_PROTO(const char * filename), + TP_ARGS(filename), + TP_STRUCT__entry(__string_from_user(filename, filename)), + TP_fast_assign(tp_copy_string_from_user(filename, filename)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_rmdir +SC_TRACE_EVENT(sys_rmdir, + TP_PROTO(const char * pathname), + TP_ARGS(pathname), + TP_STRUCT__entry(__string_from_user(pathname, pathname)), + TP_fast_assign(tp_copy_string_from_user(pathname, pathname)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_pipe +SC_TRACE_EVENT(sys_pipe, + TP_PROTO(int * fildes), + TP_ARGS(fildes), + TP_STRUCT__entry(__field_hex(int *, fildes)), + TP_fast_assign(tp_assign(fildes, fildes)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_times +SC_TRACE_EVENT(sys_times, + TP_PROTO(struct tms * tbuf), + TP_ARGS(tbuf), + TP_STRUCT__entry(__field_hex(struct tms *, tbuf)), + TP_fast_assign(tp_assign(tbuf, tbuf)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_acct +SC_TRACE_EVENT(sys_acct, + TP_PROTO(const char * name), + TP_ARGS(name), + TP_STRUCT__entry(__string_from_user(name, name)), + TP_fast_assign(tp_copy_string_from_user(name, name)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_chroot +SC_TRACE_EVENT(sys_chroot, + TP_PROTO(const char * filename), + TP_ARGS(filename), + TP_STRUCT__entry(__string_from_user(filename, filename)), + TP_fast_assign(tp_copy_string_from_user(filename, filename)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_sigpending +SC_TRACE_EVENT(sys_sigpending, + TP_PROTO(old_sigset_t * set), + TP_ARGS(set), + TP_STRUCT__entry(__field_hex(old_sigset_t *, set)), + TP_fast_assign(tp_assign(set, set)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_uselib +SC_TRACE_EVENT(sys_uselib, + TP_PROTO(const char * library), + TP_ARGS(library), + TP_STRUCT__entry(__field_hex(const char *, library)), + TP_fast_assign(tp_assign(library, library)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_swapoff +SC_TRACE_EVENT(sys_swapoff, + TP_PROTO(const char * specialfile), + TP_ARGS(specialfile), + TP_STRUCT__entry(__string_from_user(specialfile, specialfile)), + TP_fast_assign(tp_copy_string_from_user(specialfile, specialfile)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_sysinfo +SC_TRACE_EVENT(sys_sysinfo, + TP_PROTO(struct sysinfo * info), + TP_ARGS(info), + TP_STRUCT__entry(__field_hex(struct sysinfo *, info)), + TP_fast_assign(tp_assign(info, info)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_newuname +SC_TRACE_EVENT(sys_newuname, + TP_PROTO(struct new_utsname * name), + TP_ARGS(name), + TP_STRUCT__entry(__field_hex(struct new_utsname *, name)), + TP_fast_assign(tp_assign(name, name)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_adjtimex +SC_TRACE_EVENT(sys_adjtimex, + TP_PROTO(struct timex * txc_p), + TP_ARGS(txc_p), + TP_STRUCT__entry(__field_hex(struct timex *, txc_p)), + TP_fast_assign(tp_assign(txc_p, txc_p)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_sysctl +SC_TRACE_EVENT(sys_sysctl, + TP_PROTO(struct __sysctl_args * args), + TP_ARGS(args), + TP_STRUCT__entry(__field_hex(struct __sysctl_args *, args)), + TP_fast_assign(tp_assign(args, args)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_set_tid_address +SC_TRACE_EVENT(sys_set_tid_address, + TP_PROTO(int * tidptr), + TP_ARGS(tidptr), + TP_STRUCT__entry(__field_hex(int *, tidptr)), + TP_fast_assign(tp_assign(tidptr, tidptr)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_mq_unlink +SC_TRACE_EVENT(sys_mq_unlink, + TP_PROTO(const char * u_name), + TP_ARGS(u_name), + TP_STRUCT__entry(__string_from_user(u_name, u_name)), + TP_fast_assign(tp_copy_string_from_user(u_name, u_name)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_shmdt +SC_TRACE_EVENT(sys_shmdt, + TP_PROTO(char * shmaddr), + TP_ARGS(shmaddr), + TP_STRUCT__entry(__field_hex(char *, shmaddr)), + TP_fast_assign(tp_assign(shmaddr, shmaddr)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_creat +SC_TRACE_EVENT(sys_creat, + TP_PROTO(const char * pathname, umode_t mode), + TP_ARGS(pathname, mode), + TP_STRUCT__entry(__string_from_user(pathname, pathname) __field(umode_t, mode)), + TP_fast_assign(tp_copy_string_from_user(pathname, pathname) tp_assign(mode, mode)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_link +SC_TRACE_EVENT(sys_link, + TP_PROTO(const char * oldname, const char * newname), + TP_ARGS(oldname, newname), + TP_STRUCT__entry(__string_from_user(oldname, oldname) __string_from_user(newname, newname)), + TP_fast_assign(tp_copy_string_from_user(oldname, oldname) tp_copy_string_from_user(newname, newname)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_chmod +SC_TRACE_EVENT(sys_chmod, + TP_PROTO(const char * filename, umode_t mode), + TP_ARGS(filename, mode), + TP_STRUCT__entry(__string_from_user(filename, filename) __field(umode_t, mode)), + TP_fast_assign(tp_copy_string_from_user(filename, filename) tp_assign(mode, mode)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_access +SC_TRACE_EVENT(sys_access, + TP_PROTO(const char * filename, int mode), + TP_ARGS(filename, mode), + TP_STRUCT__entry(__string_from_user(filename, filename) __field(int, mode)), + TP_fast_assign(tp_copy_string_from_user(filename, filename) tp_assign(mode, mode)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_rename +SC_TRACE_EVENT(sys_rename, + TP_PROTO(const char * oldname, const char * newname), + TP_ARGS(oldname, newname), + TP_STRUCT__entry(__string_from_user(oldname, oldname) __string_from_user(newname, newname)), + TP_fast_assign(tp_copy_string_from_user(oldname, oldname) tp_copy_string_from_user(newname, newname)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_mkdir +SC_TRACE_EVENT(sys_mkdir, + TP_PROTO(const char * pathname, umode_t mode), + TP_ARGS(pathname, mode), + TP_STRUCT__entry(__string_from_user(pathname, pathname) __field(umode_t, mode)), + TP_fast_assign(tp_copy_string_from_user(pathname, pathname) tp_assign(mode, mode)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_umount +SC_TRACE_EVENT(sys_umount, + TP_PROTO(char * name, int flags), + TP_ARGS(name, flags), + TP_STRUCT__entry(__string_from_user(name, name) __field(int, flags)), + TP_fast_assign(tp_copy_string_from_user(name, name) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_ustat +SC_TRACE_EVENT(sys_ustat, + TP_PROTO(unsigned dev, struct ustat * ubuf), + TP_ARGS(dev, ubuf), + TP_STRUCT__entry(__field(unsigned, dev) __field_hex(struct ustat *, ubuf)), + TP_fast_assign(tp_assign(dev, dev) tp_assign(ubuf, ubuf)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_sethostname +SC_TRACE_EVENT(sys_sethostname, + TP_PROTO(char * name, int len), + TP_ARGS(name, len), + TP_STRUCT__entry(__string_from_user(name, name) __field(int, len)), + TP_fast_assign(tp_copy_string_from_user(name, name) tp_assign(len, len)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_setrlimit +SC_TRACE_EVENT(sys_setrlimit, + TP_PROTO(unsigned int resource, struct rlimit * rlim), + TP_ARGS(resource, rlim), + TP_STRUCT__entry(__field(unsigned int, resource) __field_hex(struct rlimit *, rlim)), + TP_fast_assign(tp_assign(resource, resource) tp_assign(rlim, rlim)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_getrusage +SC_TRACE_EVENT(sys_getrusage, + TP_PROTO(int who, struct rusage * ru), + TP_ARGS(who, ru), + TP_STRUCT__entry(__field(int, who) __field_hex(struct rusage *, ru)), + TP_fast_assign(tp_assign(who, who) tp_assign(ru, ru)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_gettimeofday +SC_TRACE_EVENT(sys_gettimeofday, + TP_PROTO(struct timeval * tv, struct timezone * tz), + TP_ARGS(tv, tz), + TP_STRUCT__entry(__field_hex(struct timeval *, tv) __field_hex(struct timezone *, tz)), + TP_fast_assign(tp_assign(tv, tv) tp_assign(tz, tz)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_settimeofday +SC_TRACE_EVENT(sys_settimeofday, + TP_PROTO(struct timeval * tv, struct timezone * tz), + TP_ARGS(tv, tz), + TP_STRUCT__entry(__field_hex(struct timeval *, tv) __field_hex(struct timezone *, tz)), + TP_fast_assign(tp_assign(tv, tv) tp_assign(tz, tz)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_getgroups16 +SC_TRACE_EVENT(sys_getgroups16, + TP_PROTO(int gidsetsize, old_gid_t * grouplist), + TP_ARGS(gidsetsize, grouplist), + TP_STRUCT__entry(__field(int, gidsetsize) __field_hex(old_gid_t *, grouplist)), + TP_fast_assign(tp_assign(gidsetsize, gidsetsize) tp_assign(grouplist, grouplist)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_setgroups16 +SC_TRACE_EVENT(sys_setgroups16, + TP_PROTO(int gidsetsize, old_gid_t * grouplist), + TP_ARGS(gidsetsize, grouplist), + TP_STRUCT__entry(__field(int, gidsetsize) __field_hex(old_gid_t *, grouplist)), + TP_fast_assign(tp_assign(gidsetsize, gidsetsize) tp_assign(grouplist, grouplist)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_symlink +SC_TRACE_EVENT(sys_symlink, + TP_PROTO(const char * oldname, const char * newname), + TP_ARGS(oldname, newname), + TP_STRUCT__entry(__string_from_user(oldname, oldname) __string_from_user(newname, newname)), + TP_fast_assign(tp_copy_string_from_user(oldname, oldname) tp_copy_string_from_user(newname, newname)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_swapon +SC_TRACE_EVENT(sys_swapon, + TP_PROTO(const char * specialfile, int swap_flags), + TP_ARGS(specialfile, swap_flags), + TP_STRUCT__entry(__string_from_user(specialfile, specialfile) __field(int, swap_flags)), + TP_fast_assign(tp_copy_string_from_user(specialfile, specialfile) tp_assign(swap_flags, swap_flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_truncate +SC_TRACE_EVENT(sys_truncate, + TP_PROTO(const char * path, long length), + TP_ARGS(path, length), + TP_STRUCT__entry(__string_from_user(path, path) __field(long, length)), + TP_fast_assign(tp_copy_string_from_user(path, path) tp_assign(length, length)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_statfs +SC_TRACE_EVENT(sys_statfs, + TP_PROTO(const char * pathname, struct statfs * buf), + TP_ARGS(pathname, buf), + TP_STRUCT__entry(__string_from_user(pathname, pathname) __field_hex(struct statfs *, buf)), + TP_fast_assign(tp_copy_string_from_user(pathname, pathname) tp_assign(buf, buf)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_fstatfs +SC_TRACE_EVENT(sys_fstatfs, + TP_PROTO(unsigned int fd, struct statfs * buf), + TP_ARGS(fd, buf), + TP_STRUCT__entry(__field(unsigned int, fd) __field_hex(struct statfs *, buf)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(buf, buf)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_getitimer +SC_TRACE_EVENT(sys_getitimer, + TP_PROTO(int which, struct itimerval * value), + TP_ARGS(which, value), + TP_STRUCT__entry(__field(int, which) __field_hex(struct itimerval *, value)), + TP_fast_assign(tp_assign(which, which) tp_assign(value, value)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_newstat +SC_TRACE_EVENT(sys_newstat, + TP_PROTO(const char * filename, struct stat * statbuf), + TP_ARGS(filename, statbuf), + TP_STRUCT__entry(__string_from_user(filename, filename) __field_hex(struct stat *, statbuf)), + TP_fast_assign(tp_copy_string_from_user(filename, filename) tp_assign(statbuf, statbuf)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_newlstat +SC_TRACE_EVENT(sys_newlstat, + TP_PROTO(const char * filename, struct stat * statbuf), + TP_ARGS(filename, statbuf), + TP_STRUCT__entry(__string_from_user(filename, filename) __field_hex(struct stat *, statbuf)), + TP_fast_assign(tp_copy_string_from_user(filename, filename) tp_assign(statbuf, statbuf)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_newfstat +SC_TRACE_EVENT(sys_newfstat, + TP_PROTO(unsigned int fd, struct stat * statbuf), + TP_ARGS(fd, statbuf), + TP_STRUCT__entry(__field(unsigned int, fd) __field_hex(struct stat *, statbuf)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(statbuf, statbuf)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_setdomainname +SC_TRACE_EVENT(sys_setdomainname, + TP_PROTO(char * name, int len), + TP_ARGS(name, len), + TP_STRUCT__entry(__string_from_user(name, name) __field(int, len)), + TP_fast_assign(tp_copy_string_from_user(name, name) tp_assign(len, len)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_delete_module +SC_TRACE_EVENT(sys_delete_module, + TP_PROTO(const char * name_user, unsigned int flags), + TP_ARGS(name_user, flags), + TP_STRUCT__entry(__string_from_user(name_user, name_user) __field(unsigned int, flags)), + TP_fast_assign(tp_copy_string_from_user(name_user, name_user) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_sched_setparam +SC_TRACE_EVENT(sys_sched_setparam, + TP_PROTO(pid_t pid, struct sched_param * param), + TP_ARGS(pid, param), + TP_STRUCT__entry(__field(pid_t, pid) __field_hex(struct sched_param *, param)), + TP_fast_assign(tp_assign(pid, pid) tp_assign(param, param)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_sched_getparam +SC_TRACE_EVENT(sys_sched_getparam, + TP_PROTO(pid_t pid, struct sched_param * param), + TP_ARGS(pid, param), + TP_STRUCT__entry(__field(pid_t, pid) __field_hex(struct sched_param *, param)), + TP_fast_assign(tp_assign(pid, pid) tp_assign(param, param)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_sched_rr_get_interval +SC_TRACE_EVENT(sys_sched_rr_get_interval, + TP_PROTO(pid_t pid, struct timespec * interval), + TP_ARGS(pid, interval), + TP_STRUCT__entry(__field(pid_t, pid) __field_hex(struct timespec *, interval)), + TP_fast_assign(tp_assign(pid, pid) tp_assign(interval, interval)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_nanosleep +SC_TRACE_EVENT(sys_nanosleep, + TP_PROTO(struct timespec * rqtp, struct timespec * rmtp), + TP_ARGS(rqtp, rmtp), + TP_STRUCT__entry(__field_hex(struct timespec *, rqtp) __field_hex(struct timespec *, rmtp)), + TP_fast_assign(tp_assign(rqtp, rqtp) tp_assign(rmtp, rmtp)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_rt_sigpending +SC_TRACE_EVENT(sys_rt_sigpending, + TP_PROTO(sigset_t * set, size_t sigsetsize), + TP_ARGS(set, sigsetsize), + TP_STRUCT__entry(__field_hex(sigset_t *, set) __field(size_t, sigsetsize)), + TP_fast_assign(tp_assign(set, set) tp_assign(sigsetsize, sigsetsize)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_rt_sigsuspend +SC_TRACE_EVENT(sys_rt_sigsuspend, + TP_PROTO(sigset_t * unewset, size_t sigsetsize), + TP_ARGS(unewset, sigsetsize), + TP_STRUCT__entry(__field_hex(sigset_t *, unewset) __field(size_t, sigsetsize)), + TP_fast_assign(tp_assign(unewset, unewset) tp_assign(sigsetsize, sigsetsize)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_getcwd +SC_TRACE_EVENT(sys_getcwd, + TP_PROTO(char * buf, unsigned long size), + TP_ARGS(buf, size), + TP_STRUCT__entry(__field_hex(char *, buf) __field(unsigned long, size)), + TP_fast_assign(tp_assign(buf, buf) tp_assign(size, size)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_getrlimit +SC_TRACE_EVENT(sys_getrlimit, + TP_PROTO(unsigned int resource, struct rlimit * rlim), + TP_ARGS(resource, rlim), + TP_STRUCT__entry(__field(unsigned int, resource) __field_hex(struct rlimit *, rlim)), + TP_fast_assign(tp_assign(resource, resource) tp_assign(rlim, rlim)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_stat64 +SC_TRACE_EVENT(sys_stat64, + TP_PROTO(const char * filename, struct stat64 * statbuf), + TP_ARGS(filename, statbuf), + TP_STRUCT__entry(__string_from_user(filename, filename) __field_hex(struct stat64 *, statbuf)), + TP_fast_assign(tp_copy_string_from_user(filename, filename) tp_assign(statbuf, statbuf)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_lstat64 +SC_TRACE_EVENT(sys_lstat64, + TP_PROTO(const char * filename, struct stat64 * statbuf), + TP_ARGS(filename, statbuf), + TP_STRUCT__entry(__string_from_user(filename, filename) __field_hex(struct stat64 *, statbuf)), + TP_fast_assign(tp_copy_string_from_user(filename, filename) tp_assign(statbuf, statbuf)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_fstat64 +SC_TRACE_EVENT(sys_fstat64, + TP_PROTO(unsigned long fd, struct stat64 * statbuf), + TP_ARGS(fd, statbuf), + TP_STRUCT__entry(__field(unsigned long, fd) __field_hex(struct stat64 *, statbuf)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(statbuf, statbuf)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_getgroups +SC_TRACE_EVENT(sys_getgroups, + TP_PROTO(int gidsetsize, gid_t * grouplist), + TP_ARGS(gidsetsize, grouplist), + TP_STRUCT__entry(__field(int, gidsetsize) __field_hex(gid_t *, grouplist)), + TP_fast_assign(tp_assign(gidsetsize, gidsetsize) tp_assign(grouplist, grouplist)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_setgroups +SC_TRACE_EVENT(sys_setgroups, + TP_PROTO(int gidsetsize, gid_t * grouplist), + TP_ARGS(gidsetsize, grouplist), + TP_STRUCT__entry(__field(int, gidsetsize) __field_hex(gid_t *, grouplist)), + TP_fast_assign(tp_assign(gidsetsize, gidsetsize) tp_assign(grouplist, grouplist)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_pivot_root +SC_TRACE_EVENT(sys_pivot_root, + TP_PROTO(const char * new_root, const char * put_old), + TP_ARGS(new_root, put_old), + TP_STRUCT__entry(__string_from_user(new_root, new_root) __string_from_user(put_old, put_old)), + TP_fast_assign(tp_copy_string_from_user(new_root, new_root) tp_copy_string_from_user(put_old, put_old)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_removexattr +SC_TRACE_EVENT(sys_removexattr, + TP_PROTO(const char * pathname, const char * name), + TP_ARGS(pathname, name), + TP_STRUCT__entry(__string_from_user(pathname, pathname) __string_from_user(name, name)), + TP_fast_assign(tp_copy_string_from_user(pathname, pathname) tp_copy_string_from_user(name, name)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_lremovexattr +SC_TRACE_EVENT(sys_lremovexattr, + TP_PROTO(const char * pathname, const char * name), + TP_ARGS(pathname, name), + TP_STRUCT__entry(__string_from_user(pathname, pathname) __string_from_user(name, name)), + TP_fast_assign(tp_copy_string_from_user(pathname, pathname) tp_copy_string_from_user(name, name)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_fremovexattr +SC_TRACE_EVENT(sys_fremovexattr, + TP_PROTO(int fd, const char * name), + TP_ARGS(fd, name), + TP_STRUCT__entry(__field(int, fd) __string_from_user(name, name)), + TP_fast_assign(tp_assign(fd, fd) tp_copy_string_from_user(name, name)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_io_setup +SC_TRACE_EVENT(sys_io_setup, + TP_PROTO(unsigned nr_events, aio_context_t * ctxp), + TP_ARGS(nr_events, ctxp), + TP_STRUCT__entry(__field(unsigned, nr_events) __field_hex(aio_context_t *, ctxp)), + TP_fast_assign(tp_assign(nr_events, nr_events) tp_assign(ctxp, ctxp)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_timer_gettime +SC_TRACE_EVENT(sys_timer_gettime, + TP_PROTO(timer_t timer_id, struct itimerspec * setting), + TP_ARGS(timer_id, setting), + TP_STRUCT__entry(__field(timer_t, timer_id) __field_hex(struct itimerspec *, setting)), + TP_fast_assign(tp_assign(timer_id, timer_id) tp_assign(setting, setting)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_clock_settime +SC_TRACE_EVENT(sys_clock_settime, + TP_PROTO(const clockid_t which_clock, const struct timespec * tp), + TP_ARGS(which_clock, tp), + TP_STRUCT__entry(__field(const clockid_t, which_clock) __field_hex(const struct timespec *, tp)), + TP_fast_assign(tp_assign(which_clock, which_clock) tp_assign(tp, tp)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_clock_gettime +SC_TRACE_EVENT(sys_clock_gettime, + TP_PROTO(const clockid_t which_clock, struct timespec * tp), + TP_ARGS(which_clock, tp), + TP_STRUCT__entry(__field(const clockid_t, which_clock) __field_hex(struct timespec *, tp)), + TP_fast_assign(tp_assign(which_clock, which_clock) tp_assign(tp, tp)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_clock_getres +SC_TRACE_EVENT(sys_clock_getres, + TP_PROTO(const clockid_t which_clock, struct timespec * tp), + TP_ARGS(which_clock, tp), + TP_STRUCT__entry(__field(const clockid_t, which_clock) __field_hex(struct timespec *, tp)), + TP_fast_assign(tp_assign(which_clock, which_clock) tp_assign(tp, tp)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_utimes +SC_TRACE_EVENT(sys_utimes, + TP_PROTO(char * filename, struct timeval * utimes), + TP_ARGS(filename, utimes), + TP_STRUCT__entry(__string_from_user(filename, filename) __field_hex(struct timeval *, utimes)), + TP_fast_assign(tp_copy_string_from_user(filename, filename) tp_assign(utimes, utimes)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_mq_notify +SC_TRACE_EVENT(sys_mq_notify, + TP_PROTO(mqd_t mqdes, const struct sigevent * u_notification), + TP_ARGS(mqdes, u_notification), + TP_STRUCT__entry(__field(mqd_t, mqdes) __field_hex(const struct sigevent *, u_notification)), + TP_fast_assign(tp_assign(mqdes, mqdes) tp_assign(u_notification, u_notification)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_set_robust_list +SC_TRACE_EVENT(sys_set_robust_list, + TP_PROTO(struct robust_list_head * head, size_t len), + TP_ARGS(head, len), + TP_STRUCT__entry(__field_hex(struct robust_list_head *, head) __field(size_t, len)), + TP_fast_assign(tp_assign(head, head) tp_assign(len, len)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_timerfd_gettime +SC_TRACE_EVENT(sys_timerfd_gettime, + TP_PROTO(int ufd, struct itimerspec * otmr), + TP_ARGS(ufd, otmr), + TP_STRUCT__entry(__field(int, ufd) __field_hex(struct itimerspec *, otmr)), + TP_fast_assign(tp_assign(ufd, ufd) tp_assign(otmr, otmr)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_pipe2 +SC_TRACE_EVENT(sys_pipe2, + TP_PROTO(int * fildes, int flags), + TP_ARGS(fildes, flags), + TP_STRUCT__entry(__field_hex(int *, fildes) __field(int, flags)), + TP_fast_assign(tp_assign(fildes, fildes) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_clock_adjtime +SC_TRACE_EVENT(sys_clock_adjtime, + TP_PROTO(const clockid_t which_clock, struct timex * utx), + TP_ARGS(which_clock, utx), + TP_STRUCT__entry(__field(const clockid_t, which_clock) __field_hex(struct timex *, utx)), + TP_fast_assign(tp_assign(which_clock, which_clock) tp_assign(utx, utx)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_read +SC_TRACE_EVENT(sys_read, + TP_PROTO(unsigned int fd, char * buf, size_t count), + TP_ARGS(fd, buf, count), + TP_STRUCT__entry(__field(unsigned int, fd) __field_hex(char *, buf) __field(size_t, count)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(buf, buf) tp_assign(count, count)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_write +SC_TRACE_EVENT(sys_write, + TP_PROTO(unsigned int fd, const char * buf, size_t count), + TP_ARGS(fd, buf, count), + TP_STRUCT__entry(__field(unsigned int, fd) __field_hex(const char *, buf) __field(size_t, count)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(buf, buf) tp_assign(count, count)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_open +SC_TRACE_EVENT(sys_open, + TP_PROTO(const char * filename, int flags, umode_t mode), + TP_ARGS(filename, flags, mode), + TP_STRUCT__entry(__string_from_user(filename, filename) __field(int, flags) __field(umode_t, mode)), + TP_fast_assign(tp_copy_string_from_user(filename, filename) tp_assign(flags, flags) tp_assign(mode, mode)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_mknod +SC_TRACE_EVENT(sys_mknod, + TP_PROTO(const char * filename, umode_t mode, unsigned dev), + TP_ARGS(filename, mode, dev), + TP_STRUCT__entry(__string_from_user(filename, filename) __field(umode_t, mode) __field(unsigned, dev)), + TP_fast_assign(tp_copy_string_from_user(filename, filename) tp_assign(mode, mode) tp_assign(dev, dev)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_lchown16 +SC_TRACE_EVENT(sys_lchown16, + TP_PROTO(const char * filename, old_uid_t user, old_gid_t group), + TP_ARGS(filename, user, group), + TP_STRUCT__entry(__string_from_user(filename, filename) __field(old_uid_t, user) __field(old_gid_t, group)), + TP_fast_assign(tp_copy_string_from_user(filename, filename) tp_assign(user, user) tp_assign(group, group)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_readlink +SC_TRACE_EVENT(sys_readlink, + TP_PROTO(const char * path, char * buf, int bufsiz), + TP_ARGS(path, buf, bufsiz), + TP_STRUCT__entry(__string_from_user(path, path) __field_hex(char *, buf) __field(int, bufsiz)), + TP_fast_assign(tp_copy_string_from_user(path, path) tp_assign(buf, buf) tp_assign(bufsiz, bufsiz)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_syslog +SC_TRACE_EVENT(sys_syslog, + TP_PROTO(int type, char * buf, int len), + TP_ARGS(type, buf, len), + TP_STRUCT__entry(__field(int, type) __field_hex(char *, buf) __field(int, len)), + TP_fast_assign(tp_assign(type, type) tp_assign(buf, buf) tp_assign(len, len)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_setitimer +SC_TRACE_EVENT(sys_setitimer, + TP_PROTO(int which, struct itimerval * value, struct itimerval * ovalue), + TP_ARGS(which, value, ovalue), + TP_STRUCT__entry(__field(int, which) __field_hex(struct itimerval *, value) __field_hex(struct itimerval *, ovalue)), + TP_fast_assign(tp_assign(which, which) tp_assign(value, value) tp_assign(ovalue, ovalue)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_sigprocmask +SC_TRACE_EVENT(sys_sigprocmask, + TP_PROTO(int how, old_sigset_t * nset, old_sigset_t * oset), + TP_ARGS(how, nset, oset), + TP_STRUCT__entry(__field(int, how) __field_hex(old_sigset_t *, nset) __field_hex(old_sigset_t *, oset)), + TP_fast_assign(tp_assign(how, how) tp_assign(nset, nset) tp_assign(oset, oset)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_init_module +SC_TRACE_EVENT(sys_init_module, + TP_PROTO(void * umod, unsigned long len, const char * uargs), + TP_ARGS(umod, len, uargs), + TP_STRUCT__entry(__field_hex(void *, umod) __field(unsigned long, len) __field_hex(const char *, uargs)), + TP_fast_assign(tp_assign(umod, umod) tp_assign(len, len) tp_assign(uargs, uargs)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_getdents +SC_TRACE_EVENT(sys_getdents, + TP_PROTO(unsigned int fd, struct linux_dirent * dirent, unsigned int count), + TP_ARGS(fd, dirent, count), + TP_STRUCT__entry(__field(unsigned int, fd) __field_hex(struct linux_dirent *, dirent) __field(unsigned int, count)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(dirent, dirent) tp_assign(count, count)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_readv +SC_TRACE_EVENT(sys_readv, + TP_PROTO(unsigned long fd, const struct iovec * vec, unsigned long vlen), + TP_ARGS(fd, vec, vlen), + TP_STRUCT__entry(__field(unsigned long, fd) __field_hex(const struct iovec *, vec) __field(unsigned long, vlen)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(vec, vec) tp_assign(vlen, vlen)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_writev +SC_TRACE_EVENT(sys_writev, + TP_PROTO(unsigned long fd, const struct iovec * vec, unsigned long vlen), + TP_ARGS(fd, vec, vlen), + TP_STRUCT__entry(__field(unsigned long, fd) __field_hex(const struct iovec *, vec) __field(unsigned long, vlen)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(vec, vec) tp_assign(vlen, vlen)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_sched_setscheduler +SC_TRACE_EVENT(sys_sched_setscheduler, + TP_PROTO(pid_t pid, int policy, struct sched_param * param), + TP_ARGS(pid, policy, param), + TP_STRUCT__entry(__field(pid_t, pid) __field(int, policy) __field_hex(struct sched_param *, param)), + TP_fast_assign(tp_assign(pid, pid) tp_assign(policy, policy) tp_assign(param, param)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_getresuid16 +SC_TRACE_EVENT(sys_getresuid16, + TP_PROTO(old_uid_t * ruid, old_uid_t * euid, old_uid_t * suid), + TP_ARGS(ruid, euid, suid), + TP_STRUCT__entry(__field_hex(old_uid_t *, ruid) __field_hex(old_uid_t *, euid) __field_hex(old_uid_t *, suid)), + TP_fast_assign(tp_assign(ruid, ruid) tp_assign(euid, euid) tp_assign(suid, suid)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_poll +SC_TRACE_EVENT(sys_poll, + TP_PROTO(struct pollfd * ufds, unsigned int nfds, int timeout_msecs), + TP_ARGS(ufds, nfds, timeout_msecs), + TP_STRUCT__entry(__field_hex(struct pollfd *, ufds) __field(unsigned int, nfds) __field(int, timeout_msecs)), + TP_fast_assign(tp_assign(ufds, ufds) tp_assign(nfds, nfds) tp_assign(timeout_msecs, timeout_msecs)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_getresgid16 +SC_TRACE_EVENT(sys_getresgid16, + TP_PROTO(old_gid_t * rgid, old_gid_t * egid, old_gid_t * sgid), + TP_ARGS(rgid, egid, sgid), + TP_STRUCT__entry(__field_hex(old_gid_t *, rgid) __field_hex(old_gid_t *, egid) __field_hex(old_gid_t *, sgid)), + TP_fast_assign(tp_assign(rgid, rgid) tp_assign(egid, egid) tp_assign(sgid, sgid)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_rt_sigqueueinfo +SC_TRACE_EVENT(sys_rt_sigqueueinfo, + TP_PROTO(pid_t pid, int sig, siginfo_t * uinfo), + TP_ARGS(pid, sig, uinfo), + TP_STRUCT__entry(__field(pid_t, pid) __field(int, sig) __field_hex(siginfo_t *, uinfo)), + TP_fast_assign(tp_assign(pid, pid) tp_assign(sig, sig) tp_assign(uinfo, uinfo)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_chown16 +SC_TRACE_EVENT(sys_chown16, + TP_PROTO(const char * filename, old_uid_t user, old_gid_t group), + TP_ARGS(filename, user, group), + TP_STRUCT__entry(__string_from_user(filename, filename) __field(old_uid_t, user) __field(old_gid_t, group)), + TP_fast_assign(tp_copy_string_from_user(filename, filename) tp_assign(user, user) tp_assign(group, group)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_lchown +SC_TRACE_EVENT(sys_lchown, + TP_PROTO(const char * filename, uid_t user, gid_t group), + TP_ARGS(filename, user, group), + TP_STRUCT__entry(__string_from_user(filename, filename) __field(uid_t, user) __field(gid_t, group)), + TP_fast_assign(tp_copy_string_from_user(filename, filename) tp_assign(user, user) tp_assign(group, group)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_getresuid +SC_TRACE_EVENT(sys_getresuid, + TP_PROTO(uid_t * ruid, uid_t * euid, uid_t * suid), + TP_ARGS(ruid, euid, suid), + TP_STRUCT__entry(__field_hex(uid_t *, ruid) __field_hex(uid_t *, euid) __field_hex(uid_t *, suid)), + TP_fast_assign(tp_assign(ruid, ruid) tp_assign(euid, euid) tp_assign(suid, suid)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_getresgid +SC_TRACE_EVENT(sys_getresgid, + TP_PROTO(gid_t * rgid, gid_t * egid, gid_t * sgid), + TP_ARGS(rgid, egid, sgid), + TP_STRUCT__entry(__field_hex(gid_t *, rgid) __field_hex(gid_t *, egid) __field_hex(gid_t *, sgid)), + TP_fast_assign(tp_assign(rgid, rgid) tp_assign(egid, egid) tp_assign(sgid, sgid)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_chown +SC_TRACE_EVENT(sys_chown, + TP_PROTO(const char * filename, uid_t user, gid_t group), + TP_ARGS(filename, user, group), + TP_STRUCT__entry(__string_from_user(filename, filename) __field(uid_t, user) __field(gid_t, group)), + TP_fast_assign(tp_copy_string_from_user(filename, filename) tp_assign(user, user) tp_assign(group, group)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_getdents64 +SC_TRACE_EVENT(sys_getdents64, + TP_PROTO(unsigned int fd, struct linux_dirent64 * dirent, unsigned int count), + TP_ARGS(fd, dirent, count), + TP_STRUCT__entry(__field(unsigned int, fd) __field_hex(struct linux_dirent64 *, dirent) __field(unsigned int, count)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(dirent, dirent) tp_assign(count, count)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_mincore +SC_TRACE_EVENT(sys_mincore, + TP_PROTO(unsigned long start, size_t len, unsigned char * vec), + TP_ARGS(start, len, vec), + TP_STRUCT__entry(__field(unsigned long, start) __field(size_t, len) __field_hex(unsigned char *, vec)), + TP_fast_assign(tp_assign(start, start) tp_assign(len, len) tp_assign(vec, vec)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_listxattr +SC_TRACE_EVENT(sys_listxattr, + TP_PROTO(const char * pathname, char * list, size_t size), + TP_ARGS(pathname, list, size), + TP_STRUCT__entry(__string_from_user(pathname, pathname) __field_hex(char *, list) __field(size_t, size)), + TP_fast_assign(tp_copy_string_from_user(pathname, pathname) tp_assign(list, list) tp_assign(size, size)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_llistxattr +SC_TRACE_EVENT(sys_llistxattr, + TP_PROTO(const char * pathname, char * list, size_t size), + TP_ARGS(pathname, list, size), + TP_STRUCT__entry(__string_from_user(pathname, pathname) __field_hex(char *, list) __field(size_t, size)), + TP_fast_assign(tp_copy_string_from_user(pathname, pathname) tp_assign(list, list) tp_assign(size, size)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_flistxattr +SC_TRACE_EVENT(sys_flistxattr, + TP_PROTO(int fd, char * list, size_t size), + TP_ARGS(fd, list, size), + TP_STRUCT__entry(__field(int, fd) __field_hex(char *, list) __field(size_t, size)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(list, list) tp_assign(size, size)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_sched_setaffinity +SC_TRACE_EVENT(sys_sched_setaffinity, + TP_PROTO(pid_t pid, unsigned int len, unsigned long * user_mask_ptr), + TP_ARGS(pid, len, user_mask_ptr), + TP_STRUCT__entry(__field(pid_t, pid) __field(unsigned int, len) __field_hex(unsigned long *, user_mask_ptr)), + TP_fast_assign(tp_assign(pid, pid) tp_assign(len, len) tp_assign(user_mask_ptr, user_mask_ptr)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_sched_getaffinity +SC_TRACE_EVENT(sys_sched_getaffinity, + TP_PROTO(pid_t pid, unsigned int len, unsigned long * user_mask_ptr), + TP_ARGS(pid, len, user_mask_ptr), + TP_STRUCT__entry(__field(pid_t, pid) __field(unsigned int, len) __field_hex(unsigned long *, user_mask_ptr)), + TP_fast_assign(tp_assign(pid, pid) tp_assign(len, len) tp_assign(user_mask_ptr, user_mask_ptr)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_io_submit +SC_TRACE_EVENT(sys_io_submit, + TP_PROTO(aio_context_t ctx_id, long nr, struct iocb * * iocbpp), + TP_ARGS(ctx_id, nr, iocbpp), + TP_STRUCT__entry(__field(aio_context_t, ctx_id) __field(long, nr) __field_hex(struct iocb * *, iocbpp)), + TP_fast_assign(tp_assign(ctx_id, ctx_id) tp_assign(nr, nr) tp_assign(iocbpp, iocbpp)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_io_cancel +SC_TRACE_EVENT(sys_io_cancel, + TP_PROTO(aio_context_t ctx_id, struct iocb * iocb, struct io_event * result), + TP_ARGS(ctx_id, iocb, result), + TP_STRUCT__entry(__field(aio_context_t, ctx_id) __field_hex(struct iocb *, iocb) __field_hex(struct io_event *, result)), + TP_fast_assign(tp_assign(ctx_id, ctx_id) tp_assign(iocb, iocb) tp_assign(result, result)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_timer_create +SC_TRACE_EVENT(sys_timer_create, + TP_PROTO(const clockid_t which_clock, struct sigevent * timer_event_spec, timer_t * created_timer_id), + TP_ARGS(which_clock, timer_event_spec, created_timer_id), + TP_STRUCT__entry(__field(const clockid_t, which_clock) __field_hex(struct sigevent *, timer_event_spec) __field_hex(timer_t *, created_timer_id)), + TP_fast_assign(tp_assign(which_clock, which_clock) tp_assign(timer_event_spec, timer_event_spec) tp_assign(created_timer_id, created_timer_id)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_mq_getsetattr +SC_TRACE_EVENT(sys_mq_getsetattr, + TP_PROTO(mqd_t mqdes, const struct mq_attr * u_mqstat, struct mq_attr * u_omqstat), + TP_ARGS(mqdes, u_mqstat, u_omqstat), + TP_STRUCT__entry(__field(mqd_t, mqdes) __field_hex(const struct mq_attr *, u_mqstat) __field_hex(struct mq_attr *, u_omqstat)), + TP_fast_assign(tp_assign(mqdes, mqdes) tp_assign(u_mqstat, u_mqstat) tp_assign(u_omqstat, u_omqstat)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_bind +SC_TRACE_EVENT(sys_bind, + TP_PROTO(int fd, struct sockaddr * umyaddr, int addrlen), + TP_ARGS(fd, umyaddr, addrlen), + TP_STRUCT__entry(__field(int, fd) __field_hex(struct sockaddr *, umyaddr) __field_hex(int, addrlen)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(umyaddr, umyaddr) tp_assign(addrlen, addrlen)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_connect +SC_TRACE_EVENT(sys_connect, + TP_PROTO(int fd, struct sockaddr * uservaddr, int addrlen), + TP_ARGS(fd, uservaddr, addrlen), + TP_STRUCT__entry(__field(int, fd) __field_hex(struct sockaddr *, uservaddr) __field_hex(int, addrlen)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(uservaddr, uservaddr) tp_assign(addrlen, addrlen)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_accept +SC_TRACE_EVENT(sys_accept, + TP_PROTO(int fd, struct sockaddr * upeer_sockaddr, int * upeer_addrlen), + TP_ARGS(fd, upeer_sockaddr, upeer_addrlen), + TP_STRUCT__entry(__field(int, fd) __field_hex(struct sockaddr *, upeer_sockaddr) __field_hex(int *, upeer_addrlen)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(upeer_sockaddr, upeer_sockaddr) tp_assign(upeer_addrlen, upeer_addrlen)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_getsockname +SC_TRACE_EVENT(sys_getsockname, + TP_PROTO(int fd, struct sockaddr * usockaddr, int * usockaddr_len), + TP_ARGS(fd, usockaddr, usockaddr_len), + TP_STRUCT__entry(__field(int, fd) __field_hex(struct sockaddr *, usockaddr) __field_hex(int *, usockaddr_len)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(usockaddr, usockaddr) tp_assign(usockaddr_len, usockaddr_len)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_getpeername +SC_TRACE_EVENT(sys_getpeername, + TP_PROTO(int fd, struct sockaddr * usockaddr, int * usockaddr_len), + TP_ARGS(fd, usockaddr, usockaddr_len), + TP_STRUCT__entry(__field(int, fd) __field_hex(struct sockaddr *, usockaddr) __field_hex(int *, usockaddr_len)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(usockaddr, usockaddr) tp_assign(usockaddr_len, usockaddr_len)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_sendmsg +SC_TRACE_EVENT(sys_sendmsg, + TP_PROTO(int fd, struct msghdr * msg, unsigned flags), + TP_ARGS(fd, msg, flags), + TP_STRUCT__entry(__field(int, fd) __field_hex(struct msghdr *, msg) __field(unsigned, flags)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(msg, msg) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_recvmsg +SC_TRACE_EVENT(sys_recvmsg, + TP_PROTO(int fd, struct msghdr * msg, unsigned int flags), + TP_ARGS(fd, msg, flags), + TP_STRUCT__entry(__field(int, fd) __field_hex(struct msghdr *, msg) __field(unsigned int, flags)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(msg, msg) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_semop +SC_TRACE_EVENT(sys_semop, + TP_PROTO(int semid, struct sembuf * tsops, unsigned nsops), + TP_ARGS(semid, tsops, nsops), + TP_STRUCT__entry(__field(int, semid) __field_hex(struct sembuf *, tsops) __field(unsigned, nsops)), + TP_fast_assign(tp_assign(semid, semid) tp_assign(tsops, tsops) tp_assign(nsops, nsops)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_msgctl +SC_TRACE_EVENT(sys_msgctl, + TP_PROTO(int msqid, int cmd, struct msqid_ds * buf), + TP_ARGS(msqid, cmd, buf), + TP_STRUCT__entry(__field(int, msqid) __field(int, cmd) __field_hex(struct msqid_ds *, buf)), + TP_fast_assign(tp_assign(msqid, msqid) tp_assign(cmd, cmd) tp_assign(buf, buf)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_shmat +SC_TRACE_EVENT(sys_shmat, + TP_PROTO(int shmid, char * shmaddr, int shmflg), + TP_ARGS(shmid, shmaddr, shmflg), + TP_STRUCT__entry(__field(int, shmid) __field_hex(char *, shmaddr) __field(int, shmflg)), + TP_fast_assign(tp_assign(shmid, shmid) tp_assign(shmaddr, shmaddr) tp_assign(shmflg, shmflg)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_shmctl +SC_TRACE_EVENT(sys_shmctl, + TP_PROTO(int shmid, int cmd, struct shmid_ds * buf), + TP_ARGS(shmid, cmd, buf), + TP_STRUCT__entry(__field(int, shmid) __field(int, cmd) __field_hex(struct shmid_ds *, buf)), + TP_fast_assign(tp_assign(shmid, shmid) tp_assign(cmd, cmd) tp_assign(buf, buf)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_inotify_add_watch +SC_TRACE_EVENT(sys_inotify_add_watch, + TP_PROTO(int fd, const char * pathname, u32 mask), + TP_ARGS(fd, pathname, mask), + TP_STRUCT__entry(__field(int, fd) __string_from_user(pathname, pathname) __field(u32, mask)), + TP_fast_assign(tp_assign(fd, fd) tp_copy_string_from_user(pathname, pathname) tp_assign(mask, mask)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_mkdirat +SC_TRACE_EVENT(sys_mkdirat, + TP_PROTO(int dfd, const char * pathname, umode_t mode), + TP_ARGS(dfd, pathname, mode), + TP_STRUCT__entry(__field(int, dfd) __string_from_user(pathname, pathname) __field(umode_t, mode)), + TP_fast_assign(tp_assign(dfd, dfd) tp_copy_string_from_user(pathname, pathname) tp_assign(mode, mode)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_futimesat +SC_TRACE_EVENT(sys_futimesat, + TP_PROTO(int dfd, const char * filename, struct timeval * utimes), + TP_ARGS(dfd, filename, utimes), + TP_STRUCT__entry(__field(int, dfd) __string_from_user(filename, filename) __field_hex(struct timeval *, utimes)), + TP_fast_assign(tp_assign(dfd, dfd) tp_copy_string_from_user(filename, filename) tp_assign(utimes, utimes)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_unlinkat +SC_TRACE_EVENT(sys_unlinkat, + TP_PROTO(int dfd, const char * pathname, int flag), + TP_ARGS(dfd, pathname, flag), + TP_STRUCT__entry(__field(int, dfd) __string_from_user(pathname, pathname) __field(int, flag)), + TP_fast_assign(tp_assign(dfd, dfd) tp_copy_string_from_user(pathname, pathname) tp_assign(flag, flag)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_symlinkat +SC_TRACE_EVENT(sys_symlinkat, + TP_PROTO(const char * oldname, int newdfd, const char * newname), + TP_ARGS(oldname, newdfd, newname), + TP_STRUCT__entry(__string_from_user(oldname, oldname) __field(int, newdfd) __string_from_user(newname, newname)), + TP_fast_assign(tp_copy_string_from_user(oldname, oldname) tp_assign(newdfd, newdfd) tp_copy_string_from_user(newname, newname)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_fchmodat +SC_TRACE_EVENT(sys_fchmodat, + TP_PROTO(int dfd, const char * filename, umode_t mode), + TP_ARGS(dfd, filename, mode), + TP_STRUCT__entry(__field(int, dfd) __string_from_user(filename, filename) __field(umode_t, mode)), + TP_fast_assign(tp_assign(dfd, dfd) tp_copy_string_from_user(filename, filename) tp_assign(mode, mode)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_faccessat +SC_TRACE_EVENT(sys_faccessat, + TP_PROTO(int dfd, const char * filename, int mode), + TP_ARGS(dfd, filename, mode), + TP_STRUCT__entry(__field(int, dfd) __string_from_user(filename, filename) __field(int, mode)), + TP_fast_assign(tp_assign(dfd, dfd) tp_copy_string_from_user(filename, filename) tp_assign(mode, mode)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_get_robust_list +SC_TRACE_EVENT(sys_get_robust_list, + TP_PROTO(int pid, struct robust_list_head * * head_ptr, size_t * len_ptr), + TP_ARGS(pid, head_ptr, len_ptr), + TP_STRUCT__entry(__field(int, pid) __field_hex(struct robust_list_head * *, head_ptr) __field_hex(size_t *, len_ptr)), + TP_fast_assign(tp_assign(pid, pid) tp_assign(head_ptr, head_ptr) tp_assign(len_ptr, len_ptr)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_getcpu +SC_TRACE_EVENT(sys_getcpu, + TP_PROTO(unsigned * cpup, unsigned * nodep, struct getcpu_cache * unused), + TP_ARGS(cpup, nodep, unused), + TP_STRUCT__entry(__field_hex(unsigned *, cpup) __field_hex(unsigned *, nodep) __field_hex(struct getcpu_cache *, unused)), + TP_fast_assign(tp_assign(cpup, cpup) tp_assign(nodep, nodep) tp_assign(unused, unused)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_signalfd +SC_TRACE_EVENT(sys_signalfd, + TP_PROTO(int ufd, sigset_t * user_mask, size_t sizemask), + TP_ARGS(ufd, user_mask, sizemask), + TP_STRUCT__entry(__field(int, ufd) __field_hex(sigset_t *, user_mask) __field(size_t, sizemask)), + TP_fast_assign(tp_assign(ufd, ufd) tp_assign(user_mask, user_mask) tp_assign(sizemask, sizemask)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_open_by_handle_at +SC_TRACE_EVENT(sys_open_by_handle_at, + TP_PROTO(int mountdirfd, struct file_handle * handle, int flags), + TP_ARGS(mountdirfd, handle, flags), + TP_STRUCT__entry(__field(int, mountdirfd) __field_hex(struct file_handle *, handle) __field(int, flags)), + TP_fast_assign(tp_assign(mountdirfd, mountdirfd) tp_assign(handle, handle) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_reboot +SC_TRACE_EVENT(sys_reboot, + TP_PROTO(int magic1, int magic2, unsigned int cmd, void * arg), + TP_ARGS(magic1, magic2, cmd, arg), + TP_STRUCT__entry(__field(int, magic1) __field(int, magic2) __field(unsigned int, cmd) __field_hex(void *, arg)), + TP_fast_assign(tp_assign(magic1, magic1) tp_assign(magic2, magic2) tp_assign(cmd, cmd) tp_assign(arg, arg)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_wait4 +SC_TRACE_EVENT(sys_wait4, + TP_PROTO(pid_t upid, int * stat_addr, int options, struct rusage * ru), + TP_ARGS(upid, stat_addr, options, ru), + TP_STRUCT__entry(__field(pid_t, upid) __field_hex(int *, stat_addr) __field(int, options) __field_hex(struct rusage *, ru)), + TP_fast_assign(tp_assign(upid, upid) tp_assign(stat_addr, stat_addr) tp_assign(options, options) tp_assign(ru, ru)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_quotactl +SC_TRACE_EVENT(sys_quotactl, + TP_PROTO(unsigned int cmd, const char * special, qid_t id, void * addr), + TP_ARGS(cmd, special, id, addr), + TP_STRUCT__entry(__field(unsigned int, cmd) __field_hex(const char *, special) __field(qid_t, id) __field_hex(void *, addr)), + TP_fast_assign(tp_assign(cmd, cmd) tp_assign(special, special) tp_assign(id, id) tp_assign(addr, addr)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_rt_sigaction +SC_TRACE_EVENT(sys_rt_sigaction, + TP_PROTO(int sig, const struct sigaction * act, struct sigaction * oact, size_t sigsetsize), + TP_ARGS(sig, act, oact, sigsetsize), + TP_STRUCT__entry(__field(int, sig) __field_hex(const struct sigaction *, act) __field_hex(struct sigaction *, oact) __field(size_t, sigsetsize)), + TP_fast_assign(tp_assign(sig, sig) tp_assign(act, act) tp_assign(oact, oact) tp_assign(sigsetsize, sigsetsize)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_rt_sigprocmask +SC_TRACE_EVENT(sys_rt_sigprocmask, + TP_PROTO(int how, sigset_t * nset, sigset_t * oset, size_t sigsetsize), + TP_ARGS(how, nset, oset, sigsetsize), + TP_STRUCT__entry(__field(int, how) __field_hex(sigset_t *, nset) __field_hex(sigset_t *, oset) __field(size_t, sigsetsize)), + TP_fast_assign(tp_assign(how, how) tp_assign(nset, nset) tp_assign(oset, oset) tp_assign(sigsetsize, sigsetsize)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_rt_sigtimedwait +SC_TRACE_EVENT(sys_rt_sigtimedwait, + TP_PROTO(const sigset_t * uthese, siginfo_t * uinfo, const struct timespec * uts, size_t sigsetsize), + TP_ARGS(uthese, uinfo, uts, sigsetsize), + TP_STRUCT__entry(__field_hex(const sigset_t *, uthese) __field_hex(siginfo_t *, uinfo) __field_hex(const struct timespec *, uts) __field(size_t, sigsetsize)), + TP_fast_assign(tp_assign(uthese, uthese) tp_assign(uinfo, uinfo) tp_assign(uts, uts) tp_assign(sigsetsize, sigsetsize)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_sendfile +SC_TRACE_EVENT(sys_sendfile, + TP_PROTO(int out_fd, int in_fd, off_t * offset, size_t count), + TP_ARGS(out_fd, in_fd, offset, count), + TP_STRUCT__entry(__field(int, out_fd) __field(int, in_fd) __field_hex(off_t *, offset) __field(size_t, count)), + TP_fast_assign(tp_assign(out_fd, out_fd) tp_assign(in_fd, in_fd) tp_assign(offset, offset) tp_assign(count, count)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_getxattr +SC_TRACE_EVENT(sys_getxattr, + TP_PROTO(const char * pathname, const char * name, void * value, size_t size), + TP_ARGS(pathname, name, value, size), + TP_STRUCT__entry(__string_from_user(pathname, pathname) __string_from_user(name, name) __field_hex(void *, value) __field(size_t, size)), + TP_fast_assign(tp_copy_string_from_user(pathname, pathname) tp_copy_string_from_user(name, name) tp_assign(value, value) tp_assign(size, size)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_lgetxattr +SC_TRACE_EVENT(sys_lgetxattr, + TP_PROTO(const char * pathname, const char * name, void * value, size_t size), + TP_ARGS(pathname, name, value, size), + TP_STRUCT__entry(__string_from_user(pathname, pathname) __string_from_user(name, name) __field_hex(void *, value) __field(size_t, size)), + TP_fast_assign(tp_copy_string_from_user(pathname, pathname) tp_copy_string_from_user(name, name) tp_assign(value, value) tp_assign(size, size)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_fgetxattr +SC_TRACE_EVENT(sys_fgetxattr, + TP_PROTO(int fd, const char * name, void * value, size_t size), + TP_ARGS(fd, name, value, size), + TP_STRUCT__entry(__field(int, fd) __string_from_user(name, name) __field_hex(void *, value) __field(size_t, size)), + TP_fast_assign(tp_assign(fd, fd) tp_copy_string_from_user(name, name) tp_assign(value, value) tp_assign(size, size)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_sendfile64 +SC_TRACE_EVENT(sys_sendfile64, + TP_PROTO(int out_fd, int in_fd, loff_t * offset, size_t count), + TP_ARGS(out_fd, in_fd, offset, count), + TP_STRUCT__entry(__field(int, out_fd) __field(int, in_fd) __field_hex(loff_t *, offset) __field(size_t, count)), + TP_fast_assign(tp_assign(out_fd, out_fd) tp_assign(in_fd, in_fd) tp_assign(offset, offset) tp_assign(count, count)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_epoll_ctl +SC_TRACE_EVENT(sys_epoll_ctl, + TP_PROTO(int epfd, int op, int fd, struct epoll_event * event), + TP_ARGS(epfd, op, fd, event), + TP_STRUCT__entry(__field(int, epfd) __field(int, op) __field(int, fd) __field_hex(struct epoll_event *, event)), + TP_fast_assign(tp_assign(epfd, epfd) tp_assign(op, op) tp_assign(fd, fd) tp_assign(event, event)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_epoll_wait +SC_TRACE_EVENT(sys_epoll_wait, + TP_PROTO(int epfd, struct epoll_event * events, int maxevents, int timeout), + TP_ARGS(epfd, events, maxevents, timeout), + TP_STRUCT__entry(__field(int, epfd) __field_hex(struct epoll_event *, events) __field(int, maxevents) __field(int, timeout)), + TP_fast_assign(tp_assign(epfd, epfd) tp_assign(events, events) tp_assign(maxevents, maxevents) tp_assign(timeout, timeout)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_timer_settime +SC_TRACE_EVENT(sys_timer_settime, + TP_PROTO(timer_t timer_id, int flags, const struct itimerspec * new_setting, struct itimerspec * old_setting), + TP_ARGS(timer_id, flags, new_setting, old_setting), + TP_STRUCT__entry(__field(timer_t, timer_id) __field(int, flags) __field_hex(const struct itimerspec *, new_setting) __field_hex(struct itimerspec *, old_setting)), + TP_fast_assign(tp_assign(timer_id, timer_id) tp_assign(flags, flags) tp_assign(new_setting, new_setting) tp_assign(old_setting, old_setting)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_clock_nanosleep +SC_TRACE_EVENT(sys_clock_nanosleep, + TP_PROTO(const clockid_t which_clock, int flags, const struct timespec * rqtp, struct timespec * rmtp), + TP_ARGS(which_clock, flags, rqtp, rmtp), + TP_STRUCT__entry(__field(const clockid_t, which_clock) __field(int, flags) __field_hex(const struct timespec *, rqtp) __field_hex(struct timespec *, rmtp)), + TP_fast_assign(tp_assign(which_clock, which_clock) tp_assign(flags, flags) tp_assign(rqtp, rqtp) tp_assign(rmtp, rmtp)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_mq_open +SC_TRACE_EVENT(sys_mq_open, + TP_PROTO(const char * u_name, int oflag, umode_t mode, struct mq_attr * u_attr), + TP_ARGS(u_name, oflag, mode, u_attr), + TP_STRUCT__entry(__string_from_user(u_name, u_name) __field(int, oflag) __field(umode_t, mode) __field_hex(struct mq_attr *, u_attr)), + TP_fast_assign(tp_copy_string_from_user(u_name, u_name) tp_assign(oflag, oflag) tp_assign(mode, mode) tp_assign(u_attr, u_attr)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_socketpair +SC_TRACE_EVENT(sys_socketpair, + TP_PROTO(int family, int type, int protocol, int * usockvec), + TP_ARGS(family, type, protocol, usockvec), + TP_STRUCT__entry(__field(int, family) __field(int, type) __field(int, protocol) __field_hex(int *, usockvec)), + TP_fast_assign(tp_assign(family, family) tp_assign(type, type) tp_assign(protocol, protocol) tp_assign(usockvec, usockvec)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_send +SC_TRACE_EVENT(sys_send, + TP_PROTO(int fd, void * buff, size_t len, unsigned flags), + TP_ARGS(fd, buff, len, flags), + TP_STRUCT__entry(__field(int, fd) __field_hex(void *, buff) __field(size_t, len) __field(unsigned, flags)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(buff, buff) tp_assign(len, len) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_msgsnd +SC_TRACE_EVENT(sys_msgsnd, + TP_PROTO(int msqid, struct msgbuf * msgp, size_t msgsz, int msgflg), + TP_ARGS(msqid, msgp, msgsz, msgflg), + TP_STRUCT__entry(__field(int, msqid) __field_hex(struct msgbuf *, msgp) __field(size_t, msgsz) __field(int, msgflg)), + TP_fast_assign(tp_assign(msqid, msqid) tp_assign(msgp, msgp) tp_assign(msgsz, msgsz) tp_assign(msgflg, msgflg)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_request_key +SC_TRACE_EVENT(sys_request_key, + TP_PROTO(const char * _type, const char * _description, const char * _callout_info, key_serial_t destringid), + TP_ARGS(_type, _description, _callout_info, destringid), + TP_STRUCT__entry(__string_from_user(_type, _type) __field_hex(const char *, _description) __field_hex(const char *, _callout_info) __field(key_serial_t, destringid)), + TP_fast_assign(tp_copy_string_from_user(_type, _type) tp_assign(_description, _description) tp_assign(_callout_info, _callout_info) tp_assign(destringid, destringid)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_semtimedop +SC_TRACE_EVENT(sys_semtimedop, + TP_PROTO(int semid, struct sembuf * tsops, unsigned nsops, const struct timespec * timeout), + TP_ARGS(semid, tsops, nsops, timeout), + TP_STRUCT__entry(__field(int, semid) __field_hex(struct sembuf *, tsops) __field(unsigned, nsops) __field_hex(const struct timespec *, timeout)), + TP_fast_assign(tp_assign(semid, semid) tp_assign(tsops, tsops) tp_assign(nsops, nsops) tp_assign(timeout, timeout)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_openat +SC_TRACE_EVENT(sys_openat, + TP_PROTO(int dfd, const char * filename, int flags, umode_t mode), + TP_ARGS(dfd, filename, flags, mode), + TP_STRUCT__entry(__field(int, dfd) __string_from_user(filename, filename) __field(int, flags) __field(umode_t, mode)), + TP_fast_assign(tp_assign(dfd, dfd) tp_copy_string_from_user(filename, filename) tp_assign(flags, flags) tp_assign(mode, mode)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_mknodat +SC_TRACE_EVENT(sys_mknodat, + TP_PROTO(int dfd, const char * filename, umode_t mode, unsigned dev), + TP_ARGS(dfd, filename, mode, dev), + TP_STRUCT__entry(__field(int, dfd) __string_from_user(filename, filename) __field(umode_t, mode) __field(unsigned, dev)), + TP_fast_assign(tp_assign(dfd, dfd) tp_copy_string_from_user(filename, filename) tp_assign(mode, mode) tp_assign(dev, dev)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_fstatat64 +SC_TRACE_EVENT(sys_fstatat64, + TP_PROTO(int dfd, const char * filename, struct stat64 * statbuf, int flag), + TP_ARGS(dfd, filename, statbuf, flag), + TP_STRUCT__entry(__field(int, dfd) __string_from_user(filename, filename) __field_hex(struct stat64 *, statbuf) __field(int, flag)), + TP_fast_assign(tp_assign(dfd, dfd) tp_copy_string_from_user(filename, filename) tp_assign(statbuf, statbuf) tp_assign(flag, flag)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_renameat +SC_TRACE_EVENT(sys_renameat, + TP_PROTO(int olddfd, const char * oldname, int newdfd, const char * newname), + TP_ARGS(olddfd, oldname, newdfd, newname), + TP_STRUCT__entry(__field(int, olddfd) __string_from_user(oldname, oldname) __field(int, newdfd) __string_from_user(newname, newname)), + TP_fast_assign(tp_assign(olddfd, olddfd) tp_copy_string_from_user(oldname, oldname) tp_assign(newdfd, newdfd) tp_copy_string_from_user(newname, newname)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_readlinkat +SC_TRACE_EVENT(sys_readlinkat, + TP_PROTO(int dfd, const char * pathname, char * buf, int bufsiz), + TP_ARGS(dfd, pathname, buf, bufsiz), + TP_STRUCT__entry(__field(int, dfd) __string_from_user(pathname, pathname) __field_hex(char *, buf) __field(int, bufsiz)), + TP_fast_assign(tp_assign(dfd, dfd) tp_copy_string_from_user(pathname, pathname) tp_assign(buf, buf) tp_assign(bufsiz, bufsiz)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_vmsplice +SC_TRACE_EVENT(sys_vmsplice, + TP_PROTO(int fd, const struct iovec * iov, unsigned long nr_segs, unsigned int flags), + TP_ARGS(fd, iov, nr_segs, flags), + TP_STRUCT__entry(__field(int, fd) __field_hex(const struct iovec *, iov) __field(unsigned long, nr_segs) __field(unsigned int, flags)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(iov, iov) tp_assign(nr_segs, nr_segs) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_utimensat +SC_TRACE_EVENT(sys_utimensat, + TP_PROTO(int dfd, const char * filename, struct timespec * utimes, int flags), + TP_ARGS(dfd, filename, utimes, flags), + TP_STRUCT__entry(__field(int, dfd) __string_from_user(filename, filename) __field_hex(struct timespec *, utimes) __field(int, flags)), + TP_fast_assign(tp_assign(dfd, dfd) tp_copy_string_from_user(filename, filename) tp_assign(utimes, utimes) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_timerfd_settime +SC_TRACE_EVENT(sys_timerfd_settime, + TP_PROTO(int ufd, int flags, const struct itimerspec * utmr, struct itimerspec * otmr), + TP_ARGS(ufd, flags, utmr, otmr), + TP_STRUCT__entry(__field(int, ufd) __field(int, flags) __field_hex(const struct itimerspec *, utmr) __field_hex(struct itimerspec *, otmr)), + TP_fast_assign(tp_assign(ufd, ufd) tp_assign(flags, flags) tp_assign(utmr, utmr) tp_assign(otmr, otmr)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_signalfd4 +SC_TRACE_EVENT(sys_signalfd4, + TP_PROTO(int ufd, sigset_t * user_mask, size_t sizemask, int flags), + TP_ARGS(ufd, user_mask, sizemask, flags), + TP_STRUCT__entry(__field(int, ufd) __field_hex(sigset_t *, user_mask) __field(size_t, sizemask) __field(int, flags)), + TP_fast_assign(tp_assign(ufd, ufd) tp_assign(user_mask, user_mask) tp_assign(sizemask, sizemask) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_rt_tgsigqueueinfo +SC_TRACE_EVENT(sys_rt_tgsigqueueinfo, + TP_PROTO(pid_t tgid, pid_t pid, int sig, siginfo_t * uinfo), + TP_ARGS(tgid, pid, sig, uinfo), + TP_STRUCT__entry(__field(pid_t, tgid) __field(pid_t, pid) __field(int, sig) __field_hex(siginfo_t *, uinfo)), + TP_fast_assign(tp_assign(tgid, tgid) tp_assign(pid, pid) tp_assign(sig, sig) tp_assign(uinfo, uinfo)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_accept4 +SC_TRACE_EVENT(sys_accept4, + TP_PROTO(int fd, struct sockaddr * upeer_sockaddr, int * upeer_addrlen, int flags), + TP_ARGS(fd, upeer_sockaddr, upeer_addrlen, flags), + TP_STRUCT__entry(__field(int, fd) __field_hex(struct sockaddr *, upeer_sockaddr) __field_hex(int *, upeer_addrlen) __field(int, flags)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(upeer_sockaddr, upeer_sockaddr) tp_assign(upeer_addrlen, upeer_addrlen) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_prlimit64 +SC_TRACE_EVENT(sys_prlimit64, + TP_PROTO(pid_t pid, unsigned int resource, const struct rlimit64 * new_rlim, struct rlimit64 * old_rlim), + TP_ARGS(pid, resource, new_rlim, old_rlim), + TP_STRUCT__entry(__field(pid_t, pid) __field(unsigned int, resource) __field_hex(const struct rlimit64 *, new_rlim) __field_hex(struct rlimit64 *, old_rlim)), + TP_fast_assign(tp_assign(pid, pid) tp_assign(resource, resource) tp_assign(new_rlim, new_rlim) tp_assign(old_rlim, old_rlim)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_sendmmsg +SC_TRACE_EVENT(sys_sendmmsg, + TP_PROTO(int fd, struct mmsghdr * mmsg, unsigned int vlen, unsigned int flags), + TP_ARGS(fd, mmsg, vlen, flags), + TP_STRUCT__entry(__field(int, fd) __field_hex(struct mmsghdr *, mmsg) __field(unsigned int, vlen) __field(unsigned int, flags)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(mmsg, mmsg) tp_assign(vlen, vlen) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_mount +SC_TRACE_EVENT(sys_mount, + TP_PROTO(char * dev_name, char * dir_name, char * type, unsigned long flags, void * data), + TP_ARGS(dev_name, dir_name, type, flags, data), + TP_STRUCT__entry(__string_from_user(dev_name, dev_name) __string_from_user(dir_name, dir_name) __string_from_user(type, type) __field(unsigned long, flags) __field_hex(void *, data)), + TP_fast_assign(tp_copy_string_from_user(dev_name, dev_name) tp_copy_string_from_user(dir_name, dir_name) tp_copy_string_from_user(type, type) tp_assign(flags, flags) tp_assign(data, data)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_llseek +SC_TRACE_EVENT(sys_llseek, + TP_PROTO(unsigned int fd, unsigned long offset_high, unsigned long offset_low, loff_t * result, unsigned int origin), + TP_ARGS(fd, offset_high, offset_low, result, origin), + TP_STRUCT__entry(__field(unsigned int, fd) __field(unsigned long, offset_high) __field(unsigned long, offset_low) __field_hex(loff_t *, result) __field(unsigned int, origin)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(offset_high, offset_high) tp_assign(offset_low, offset_low) tp_assign(result, result) tp_assign(origin, origin)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_select +SC_TRACE_EVENT(sys_select, + TP_PROTO(int n, fd_set * inp, fd_set * outp, fd_set * exp, struct timeval * tvp), + TP_ARGS(n, inp, outp, exp, tvp), + TP_STRUCT__entry(__field(int, n) __field_hex(fd_set *, inp) __field_hex(fd_set *, outp) __field_hex(fd_set *, exp) __field_hex(struct timeval *, tvp)), + TP_fast_assign(tp_assign(n, n) tp_assign(inp, inp) tp_assign(outp, outp) tp_assign(exp, exp) tp_assign(tvp, tvp)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_setxattr +SC_TRACE_EVENT(sys_setxattr, + TP_PROTO(const char * pathname, const char * name, const void * value, size_t size, int flags), + TP_ARGS(pathname, name, value, size, flags), + TP_STRUCT__entry(__string_from_user(pathname, pathname) __string_from_user(name, name) __field_hex(const void *, value) __field(size_t, size) __field(int, flags)), + TP_fast_assign(tp_copy_string_from_user(pathname, pathname) tp_copy_string_from_user(name, name) tp_assign(value, value) tp_assign(size, size) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_lsetxattr +SC_TRACE_EVENT(sys_lsetxattr, + TP_PROTO(const char * pathname, const char * name, const void * value, size_t size, int flags), + TP_ARGS(pathname, name, value, size, flags), + TP_STRUCT__entry(__string_from_user(pathname, pathname) __string_from_user(name, name) __field_hex(const void *, value) __field(size_t, size) __field(int, flags)), + TP_fast_assign(tp_copy_string_from_user(pathname, pathname) tp_copy_string_from_user(name, name) tp_assign(value, value) tp_assign(size, size) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_fsetxattr +SC_TRACE_EVENT(sys_fsetxattr, + TP_PROTO(int fd, const char * name, const void * value, size_t size, int flags), + TP_ARGS(fd, name, value, size, flags), + TP_STRUCT__entry(__field(int, fd) __string_from_user(name, name) __field_hex(const void *, value) __field(size_t, size) __field(int, flags)), + TP_fast_assign(tp_assign(fd, fd) tp_copy_string_from_user(name, name) tp_assign(value, value) tp_assign(size, size) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_io_getevents +SC_TRACE_EVENT(sys_io_getevents, + TP_PROTO(aio_context_t ctx_id, long min_nr, long nr, struct io_event * events, struct timespec * timeout), + TP_ARGS(ctx_id, min_nr, nr, events, timeout), + TP_STRUCT__entry(__field(aio_context_t, ctx_id) __field(long, min_nr) __field(long, nr) __field_hex(struct io_event *, events) __field_hex(struct timespec *, timeout)), + TP_fast_assign(tp_assign(ctx_id, ctx_id) tp_assign(min_nr, min_nr) tp_assign(nr, nr) tp_assign(events, events) tp_assign(timeout, timeout)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_mq_timedsend +SC_TRACE_EVENT(sys_mq_timedsend, + TP_PROTO(mqd_t mqdes, const char * u_msg_ptr, size_t msg_len, unsigned int msg_prio, const struct timespec * u_abs_timeout), + TP_ARGS(mqdes, u_msg_ptr, msg_len, msg_prio, u_abs_timeout), + TP_STRUCT__entry(__field(mqd_t, mqdes) __field_hex(const char *, u_msg_ptr) __field(size_t, msg_len) __field(unsigned int, msg_prio) __field_hex(const struct timespec *, u_abs_timeout)), + TP_fast_assign(tp_assign(mqdes, mqdes) tp_assign(u_msg_ptr, u_msg_ptr) tp_assign(msg_len, msg_len) tp_assign(msg_prio, msg_prio) tp_assign(u_abs_timeout, u_abs_timeout)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_mq_timedreceive +SC_TRACE_EVENT(sys_mq_timedreceive, + TP_PROTO(mqd_t mqdes, char * u_msg_ptr, size_t msg_len, unsigned int * u_msg_prio, const struct timespec * u_abs_timeout), + TP_ARGS(mqdes, u_msg_ptr, msg_len, u_msg_prio, u_abs_timeout), + TP_STRUCT__entry(__field(mqd_t, mqdes) __field_hex(char *, u_msg_ptr) __field(size_t, msg_len) __field_hex(unsigned int *, u_msg_prio) __field_hex(const struct timespec *, u_abs_timeout)), + TP_fast_assign(tp_assign(mqdes, mqdes) tp_assign(u_msg_ptr, u_msg_ptr) tp_assign(msg_len, msg_len) tp_assign(u_msg_prio, u_msg_prio) tp_assign(u_abs_timeout, u_abs_timeout)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_waitid +SC_TRACE_EVENT(sys_waitid, + TP_PROTO(int which, pid_t upid, struct siginfo * infop, int options, struct rusage * ru), + TP_ARGS(which, upid, infop, options, ru), + TP_STRUCT__entry(__field(int, which) __field(pid_t, upid) __field_hex(struct siginfo *, infop) __field(int, options) __field_hex(struct rusage *, ru)), + TP_fast_assign(tp_assign(which, which) tp_assign(upid, upid) tp_assign(infop, infop) tp_assign(options, options) tp_assign(ru, ru)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_setsockopt +SC_TRACE_EVENT(sys_setsockopt, + TP_PROTO(int fd, int level, int optname, char * optval, int optlen), + TP_ARGS(fd, level, optname, optval, optlen), + TP_STRUCT__entry(__field(int, fd) __field(int, level) __field(int, optname) __field_hex(char *, optval) __field(int, optlen)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(level, level) tp_assign(optname, optname) tp_assign(optval, optval) tp_assign(optlen, optlen)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_getsockopt +SC_TRACE_EVENT(sys_getsockopt, + TP_PROTO(int fd, int level, int optname, char * optval, int * optlen), + TP_ARGS(fd, level, optname, optval, optlen), + TP_STRUCT__entry(__field(int, fd) __field(int, level) __field(int, optname) __field_hex(char *, optval) __field_hex(int *, optlen)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(level, level) tp_assign(optname, optname) tp_assign(optval, optval) tp_assign(optlen, optlen)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_msgrcv +SC_TRACE_EVENT(sys_msgrcv, + TP_PROTO(int msqid, struct msgbuf * msgp, size_t msgsz, long msgtyp, int msgflg), + TP_ARGS(msqid, msgp, msgsz, msgtyp, msgflg), + TP_STRUCT__entry(__field(int, msqid) __field_hex(struct msgbuf *, msgp) __field(size_t, msgsz) __field(long, msgtyp) __field(int, msgflg)), + TP_fast_assign(tp_assign(msqid, msqid) tp_assign(msgp, msgp) tp_assign(msgsz, msgsz) tp_assign(msgtyp, msgtyp) tp_assign(msgflg, msgflg)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_add_key +SC_TRACE_EVENT(sys_add_key, + TP_PROTO(const char * _type, const char * _description, const void * _payload, size_t plen, key_serial_t ringid), + TP_ARGS(_type, _description, _payload, plen, ringid), + TP_STRUCT__entry(__string_from_user(_type, _type) __field_hex(const char *, _description) __field_hex(const void *, _payload) __field(size_t, plen) __field(key_serial_t, ringid)), + TP_fast_assign(tp_copy_string_from_user(_type, _type) tp_assign(_description, _description) tp_assign(_payload, _payload) tp_assign(plen, plen) tp_assign(ringid, ringid)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_fchownat +SC_TRACE_EVENT(sys_fchownat, + TP_PROTO(int dfd, const char * filename, uid_t user, gid_t group, int flag), + TP_ARGS(dfd, filename, user, group, flag), + TP_STRUCT__entry(__field(int, dfd) __string_from_user(filename, filename) __field(uid_t, user) __field(gid_t, group) __field(int, flag)), + TP_fast_assign(tp_assign(dfd, dfd) tp_copy_string_from_user(filename, filename) tp_assign(user, user) tp_assign(group, group) tp_assign(flag, flag)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_linkat +SC_TRACE_EVENT(sys_linkat, + TP_PROTO(int olddfd, const char * oldname, int newdfd, const char * newname, int flags), + TP_ARGS(olddfd, oldname, newdfd, newname, flags), + TP_STRUCT__entry(__field(int, olddfd) __string_from_user(oldname, oldname) __field(int, newdfd) __string_from_user(newname, newname) __field(int, flags)), + TP_fast_assign(tp_assign(olddfd, olddfd) tp_copy_string_from_user(oldname, oldname) tp_assign(newdfd, newdfd) tp_copy_string_from_user(newname, newname) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_ppoll +SC_TRACE_EVENT(sys_ppoll, + TP_PROTO(struct pollfd * ufds, unsigned int nfds, struct timespec * tsp, const sigset_t * sigmask, size_t sigsetsize), + TP_ARGS(ufds, nfds, tsp, sigmask, sigsetsize), + TP_STRUCT__entry(__field_hex(struct pollfd *, ufds) __field(unsigned int, nfds) __field_hex(struct timespec *, tsp) __field_hex(const sigset_t *, sigmask) __field(size_t, sigsetsize)), + TP_fast_assign(tp_assign(ufds, ufds) tp_assign(nfds, nfds) tp_assign(tsp, tsp) tp_assign(sigmask, sigmask) tp_assign(sigsetsize, sigsetsize)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_preadv +SC_TRACE_EVENT(sys_preadv, + TP_PROTO(unsigned long fd, const struct iovec * vec, unsigned long vlen, unsigned long pos_l, unsigned long pos_h), + TP_ARGS(fd, vec, vlen, pos_l, pos_h), + TP_STRUCT__entry(__field(unsigned long, fd) __field_hex(const struct iovec *, vec) __field(unsigned long, vlen) __field(unsigned long, pos_l) __field(unsigned long, pos_h)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(vec, vec) tp_assign(vlen, vlen) tp_assign(pos_l, pos_l) tp_assign(pos_h, pos_h)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_pwritev +SC_TRACE_EVENT(sys_pwritev, + TP_PROTO(unsigned long fd, const struct iovec * vec, unsigned long vlen, unsigned long pos_l, unsigned long pos_h), + TP_ARGS(fd, vec, vlen, pos_l, pos_h), + TP_STRUCT__entry(__field(unsigned long, fd) __field_hex(const struct iovec *, vec) __field(unsigned long, vlen) __field(unsigned long, pos_l) __field(unsigned long, pos_h)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(vec, vec) tp_assign(vlen, vlen) tp_assign(pos_l, pos_l) tp_assign(pos_h, pos_h)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_perf_event_open +SC_TRACE_EVENT(sys_perf_event_open, + TP_PROTO(struct perf_event_attr * attr_uptr, pid_t pid, int cpu, int group_fd, unsigned long flags), + TP_ARGS(attr_uptr, pid, cpu, group_fd, flags), + TP_STRUCT__entry(__field_hex(struct perf_event_attr *, attr_uptr) __field(pid_t, pid) __field(int, cpu) __field(int, group_fd) __field(unsigned long, flags)), + TP_fast_assign(tp_assign(attr_uptr, attr_uptr) tp_assign(pid, pid) tp_assign(cpu, cpu) tp_assign(group_fd, group_fd) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_recvmmsg +SC_TRACE_EVENT(sys_recvmmsg, + TP_PROTO(int fd, struct mmsghdr * mmsg, unsigned int vlen, unsigned int flags, struct timespec * timeout), + TP_ARGS(fd, mmsg, vlen, flags, timeout), + TP_STRUCT__entry(__field(int, fd) __field_hex(struct mmsghdr *, mmsg) __field(unsigned int, vlen) __field(unsigned int, flags) __field_hex(struct timespec *, timeout)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(mmsg, mmsg) tp_assign(vlen, vlen) tp_assign(flags, flags) tp_assign(timeout, timeout)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_name_to_handle_at +SC_TRACE_EVENT(sys_name_to_handle_at, + TP_PROTO(int dfd, const char * name, struct file_handle * handle, int * mnt_id, int flag), + TP_ARGS(dfd, name, handle, mnt_id, flag), + TP_STRUCT__entry(__field(int, dfd) __string_from_user(name, name) __field_hex(struct file_handle *, handle) __field_hex(int *, mnt_id) __field(int, flag)), + TP_fast_assign(tp_assign(dfd, dfd) tp_copy_string_from_user(name, name) tp_assign(handle, handle) tp_assign(mnt_id, mnt_id) tp_assign(flag, flag)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_futex +SC_TRACE_EVENT(sys_futex, + TP_PROTO(u32 * uaddr, int op, u32 val, struct timespec * utime, u32 * uaddr2, u32 val3), + TP_ARGS(uaddr, op, val, utime, uaddr2, val3), + TP_STRUCT__entry(__field_hex(u32 *, uaddr) __field(int, op) __field(u32, val) __field_hex(struct timespec *, utime) __field_hex(u32 *, uaddr2) __field(u32, val3)), + TP_fast_assign(tp_assign(uaddr, uaddr) tp_assign(op, op) tp_assign(val, val) tp_assign(utime, utime) tp_assign(uaddr2, uaddr2) tp_assign(val3, val3)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_sendto +SC_TRACE_EVENT(sys_sendto, + TP_PROTO(int fd, void * buff, size_t len, unsigned flags, struct sockaddr * addr, int addr_len), + TP_ARGS(fd, buff, len, flags, addr, addr_len), + TP_STRUCT__entry(__field(int, fd) __field_hex(void *, buff) __field(size_t, len) __field(unsigned, flags) __field_hex(struct sockaddr *, addr) __field_hex(int, addr_len)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(buff, buff) tp_assign(len, len) tp_assign(flags, flags) tp_assign(addr, addr) tp_assign(addr_len, addr_len)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_recvfrom +SC_TRACE_EVENT(sys_recvfrom, + TP_PROTO(int fd, void * ubuf, size_t size, unsigned flags, struct sockaddr * addr, int * addr_len), + TP_ARGS(fd, ubuf, size, flags, addr, addr_len), + TP_STRUCT__entry(__field(int, fd) __field_hex(void *, ubuf) __field(size_t, size) __field(unsigned, flags) __field_hex(struct sockaddr *, addr) __field_hex(int *, addr_len)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(ubuf, ubuf) tp_assign(size, size) tp_assign(flags, flags) tp_assign(addr, addr) tp_assign(addr_len, addr_len)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_pselect6 +SC_TRACE_EVENT(sys_pselect6, + TP_PROTO(int n, fd_set * inp, fd_set * outp, fd_set * exp, struct timespec * tsp, void * sig), + TP_ARGS(n, inp, outp, exp, tsp, sig), + TP_STRUCT__entry(__field(int, n) __field_hex(fd_set *, inp) __field_hex(fd_set *, outp) __field_hex(fd_set *, exp) __field_hex(struct timespec *, tsp) __field_hex(void *, sig)), + TP_fast_assign(tp_assign(n, n) tp_assign(inp, inp) tp_assign(outp, outp) tp_assign(exp, exp) tp_assign(tsp, tsp) tp_assign(sig, sig)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_splice +SC_TRACE_EVENT(sys_splice, + TP_PROTO(int fd_in, loff_t * off_in, int fd_out, loff_t * off_out, size_t len, unsigned int flags), + TP_ARGS(fd_in, off_in, fd_out, off_out, len, flags), + TP_STRUCT__entry(__field(int, fd_in) __field_hex(loff_t *, off_in) __field(int, fd_out) __field_hex(loff_t *, off_out) __field(size_t, len) __field(unsigned int, flags)), + TP_fast_assign(tp_assign(fd_in, fd_in) tp_assign(off_in, off_in) tp_assign(fd_out, fd_out) tp_assign(off_out, off_out) tp_assign(len, len) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_epoll_pwait +SC_TRACE_EVENT(sys_epoll_pwait, + TP_PROTO(int epfd, struct epoll_event * events, int maxevents, int timeout, const sigset_t * sigmask, size_t sigsetsize), + TP_ARGS(epfd, events, maxevents, timeout, sigmask, sigsetsize), + TP_STRUCT__entry(__field(int, epfd) __field_hex(struct epoll_event *, events) __field(int, maxevents) __field(int, timeout) __field_hex(const sigset_t *, sigmask) __field(size_t, sigsetsize)), + TP_fast_assign(tp_assign(epfd, epfd) tp_assign(events, events) tp_assign(maxevents, maxevents) tp_assign(timeout, timeout) tp_assign(sigmask, sigmask) tp_assign(sigsetsize, sigsetsize)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_process_vm_readv +SC_TRACE_EVENT(sys_process_vm_readv, + TP_PROTO(pid_t pid, const struct iovec * lvec, unsigned long liovcnt, const struct iovec * rvec, unsigned long riovcnt, unsigned long flags), + TP_ARGS(pid, lvec, liovcnt, rvec, riovcnt, flags), + TP_STRUCT__entry(__field(pid_t, pid) __field_hex(const struct iovec *, lvec) __field(unsigned long, liovcnt) __field_hex(const struct iovec *, rvec) __field(unsigned long, riovcnt) __field(unsigned long, flags)), + TP_fast_assign(tp_assign(pid, pid) tp_assign(lvec, lvec) tp_assign(liovcnt, liovcnt) tp_assign(rvec, rvec) tp_assign(riovcnt, riovcnt) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_process_vm_writev +SC_TRACE_EVENT(sys_process_vm_writev, + TP_PROTO(pid_t pid, const struct iovec * lvec, unsigned long liovcnt, const struct iovec * rvec, unsigned long riovcnt, unsigned long flags), + TP_ARGS(pid, lvec, liovcnt, rvec, riovcnt, flags), + TP_STRUCT__entry(__field(pid_t, pid) __field_hex(const struct iovec *, lvec) __field(unsigned long, liovcnt) __field_hex(const struct iovec *, rvec) __field(unsigned long, riovcnt) __field(unsigned long, flags)), + TP_fast_assign(tp_assign(pid, pid) tp_assign(lvec, lvec) tp_assign(liovcnt, liovcnt) tp_assign(rvec, rvec) tp_assign(riovcnt, riovcnt) tp_assign(flags, flags)), + TP_printk() +) +#endif + +#endif /* _TRACE_SYSCALLS_POINTERS_H */ + +/* This part must be outside protection */ +#include "../../../probes/define_trace.h" + +#else /* CREATE_SYSCALL_TABLE */ + +#include "arm-32-syscalls-3.4.25_pointers_override.h" +#include "syscalls_pointers_override.h" + +#ifndef OVERRIDE_TABLE_32_sys_read +TRACE_SYSCALL_TABLE(sys_read, sys_read, 3, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_write +TRACE_SYSCALL_TABLE(sys_write, sys_write, 4, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_open +TRACE_SYSCALL_TABLE(sys_open, sys_open, 5, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_creat +TRACE_SYSCALL_TABLE(sys_creat, sys_creat, 8, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_link +TRACE_SYSCALL_TABLE(sys_link, sys_link, 9, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_unlink +TRACE_SYSCALL_TABLE(sys_unlink, sys_unlink, 10, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_chdir +TRACE_SYSCALL_TABLE(sys_chdir, sys_chdir, 12, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_mknod +TRACE_SYSCALL_TABLE(sys_mknod, sys_mknod, 14, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_chmod +TRACE_SYSCALL_TABLE(sys_chmod, sys_chmod, 15, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_lchown16 +TRACE_SYSCALL_TABLE(sys_lchown16, sys_lchown16, 16, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_mount +TRACE_SYSCALL_TABLE(sys_mount, sys_mount, 21, 5) +#endif +#ifndef OVERRIDE_TABLE_32_sys_access +TRACE_SYSCALL_TABLE(sys_access, sys_access, 33, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_rename +TRACE_SYSCALL_TABLE(sys_rename, sys_rename, 38, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_mkdir +TRACE_SYSCALL_TABLE(sys_mkdir, sys_mkdir, 39, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_rmdir +TRACE_SYSCALL_TABLE(sys_rmdir, sys_rmdir, 40, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_pipe +TRACE_SYSCALL_TABLE(sys_pipe, sys_pipe, 42, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_times +TRACE_SYSCALL_TABLE(sys_times, sys_times, 43, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_acct +TRACE_SYSCALL_TABLE(sys_acct, sys_acct, 51, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_umount +TRACE_SYSCALL_TABLE(sys_umount, sys_umount, 52, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_chroot +TRACE_SYSCALL_TABLE(sys_chroot, sys_chroot, 61, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_ustat +TRACE_SYSCALL_TABLE(sys_ustat, sys_ustat, 62, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_sigpending +TRACE_SYSCALL_TABLE(sys_sigpending, sys_sigpending, 73, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_sethostname +TRACE_SYSCALL_TABLE(sys_sethostname, sys_sethostname, 74, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_setrlimit +TRACE_SYSCALL_TABLE(sys_setrlimit, sys_setrlimit, 75, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_getrusage +TRACE_SYSCALL_TABLE(sys_getrusage, sys_getrusage, 77, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_gettimeofday +TRACE_SYSCALL_TABLE(sys_gettimeofday, sys_gettimeofday, 78, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_settimeofday +TRACE_SYSCALL_TABLE(sys_settimeofday, sys_settimeofday, 79, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_getgroups16 +TRACE_SYSCALL_TABLE(sys_getgroups16, sys_getgroups16, 80, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_setgroups16 +TRACE_SYSCALL_TABLE(sys_setgroups16, sys_setgroups16, 81, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_symlink +TRACE_SYSCALL_TABLE(sys_symlink, sys_symlink, 83, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_readlink +TRACE_SYSCALL_TABLE(sys_readlink, sys_readlink, 85, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_uselib +TRACE_SYSCALL_TABLE(sys_uselib, sys_uselib, 86, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_swapon +TRACE_SYSCALL_TABLE(sys_swapon, sys_swapon, 87, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_reboot +TRACE_SYSCALL_TABLE(sys_reboot, sys_reboot, 88, 4) +#endif +#ifndef OVERRIDE_TABLE_32_sys_truncate +TRACE_SYSCALL_TABLE(sys_truncate, sys_truncate, 92, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_statfs +TRACE_SYSCALL_TABLE(sys_statfs, sys_statfs, 99, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_fstatfs +TRACE_SYSCALL_TABLE(sys_fstatfs, sys_fstatfs, 100, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_syslog +TRACE_SYSCALL_TABLE(sys_syslog, sys_syslog, 103, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_setitimer +TRACE_SYSCALL_TABLE(sys_setitimer, sys_setitimer, 104, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_getitimer +TRACE_SYSCALL_TABLE(sys_getitimer, sys_getitimer, 105, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_newstat +TRACE_SYSCALL_TABLE(sys_newstat, sys_newstat, 106, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_newlstat +TRACE_SYSCALL_TABLE(sys_newlstat, sys_newlstat, 107, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_newfstat +TRACE_SYSCALL_TABLE(sys_newfstat, sys_newfstat, 108, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_wait4 +TRACE_SYSCALL_TABLE(sys_wait4, sys_wait4, 114, 4) +#endif +#ifndef OVERRIDE_TABLE_32_sys_swapoff +TRACE_SYSCALL_TABLE(sys_swapoff, sys_swapoff, 115, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_sysinfo +TRACE_SYSCALL_TABLE(sys_sysinfo, sys_sysinfo, 116, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_setdomainname +TRACE_SYSCALL_TABLE(sys_setdomainname, sys_setdomainname, 121, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_newuname +TRACE_SYSCALL_TABLE(sys_newuname, sys_newuname, 122, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_adjtimex +TRACE_SYSCALL_TABLE(sys_adjtimex, sys_adjtimex, 124, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_sigprocmask +TRACE_SYSCALL_TABLE(sys_sigprocmask, sys_sigprocmask, 126, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_init_module +TRACE_SYSCALL_TABLE(sys_init_module, sys_init_module, 128, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_delete_module +TRACE_SYSCALL_TABLE(sys_delete_module, sys_delete_module, 129, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_quotactl +TRACE_SYSCALL_TABLE(sys_quotactl, sys_quotactl, 131, 4) +#endif +#ifndef OVERRIDE_TABLE_32_sys_llseek +TRACE_SYSCALL_TABLE(sys_llseek, sys_llseek, 140, 5) +#endif +#ifndef OVERRIDE_TABLE_32_sys_getdents +TRACE_SYSCALL_TABLE(sys_getdents, sys_getdents, 141, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_select +TRACE_SYSCALL_TABLE(sys_select, sys_select, 142, 5) +#endif +#ifndef OVERRIDE_TABLE_32_sys_readv +TRACE_SYSCALL_TABLE(sys_readv, sys_readv, 145, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_writev +TRACE_SYSCALL_TABLE(sys_writev, sys_writev, 146, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_sysctl +TRACE_SYSCALL_TABLE(sys_sysctl, sys_sysctl, 149, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_sched_setparam +TRACE_SYSCALL_TABLE(sys_sched_setparam, sys_sched_setparam, 154, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_sched_getparam +TRACE_SYSCALL_TABLE(sys_sched_getparam, sys_sched_getparam, 155, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_sched_setscheduler +TRACE_SYSCALL_TABLE(sys_sched_setscheduler, sys_sched_setscheduler, 156, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_sched_rr_get_interval +TRACE_SYSCALL_TABLE(sys_sched_rr_get_interval, sys_sched_rr_get_interval, 161, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_nanosleep +TRACE_SYSCALL_TABLE(sys_nanosleep, sys_nanosleep, 162, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_getresuid16 +TRACE_SYSCALL_TABLE(sys_getresuid16, sys_getresuid16, 165, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_poll +TRACE_SYSCALL_TABLE(sys_poll, sys_poll, 168, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_getresgid16 +TRACE_SYSCALL_TABLE(sys_getresgid16, sys_getresgid16, 171, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_rt_sigaction +TRACE_SYSCALL_TABLE(sys_rt_sigaction, sys_rt_sigaction, 174, 4) +#endif +#ifndef OVERRIDE_TABLE_32_sys_rt_sigprocmask +TRACE_SYSCALL_TABLE(sys_rt_sigprocmask, sys_rt_sigprocmask, 175, 4) +#endif +#ifndef OVERRIDE_TABLE_32_sys_rt_sigpending +TRACE_SYSCALL_TABLE(sys_rt_sigpending, sys_rt_sigpending, 176, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_rt_sigtimedwait +TRACE_SYSCALL_TABLE(sys_rt_sigtimedwait, sys_rt_sigtimedwait, 177, 4) +#endif +#ifndef OVERRIDE_TABLE_32_sys_rt_sigqueueinfo +TRACE_SYSCALL_TABLE(sys_rt_sigqueueinfo, sys_rt_sigqueueinfo, 178, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_rt_sigsuspend +TRACE_SYSCALL_TABLE(sys_rt_sigsuspend, sys_rt_sigsuspend, 179, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_chown16 +TRACE_SYSCALL_TABLE(sys_chown16, sys_chown16, 182, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_getcwd +TRACE_SYSCALL_TABLE(sys_getcwd, sys_getcwd, 183, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_sendfile +TRACE_SYSCALL_TABLE(sys_sendfile, sys_sendfile, 187, 4) +#endif +#ifndef OVERRIDE_TABLE_32_sys_getrlimit +TRACE_SYSCALL_TABLE(sys_getrlimit, sys_getrlimit, 191, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_stat64 +TRACE_SYSCALL_TABLE(sys_stat64, sys_stat64, 195, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_lstat64 +TRACE_SYSCALL_TABLE(sys_lstat64, sys_lstat64, 196, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_fstat64 +TRACE_SYSCALL_TABLE(sys_fstat64, sys_fstat64, 197, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_lchown +TRACE_SYSCALL_TABLE(sys_lchown, sys_lchown, 198, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_getgroups +TRACE_SYSCALL_TABLE(sys_getgroups, sys_getgroups, 205, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_setgroups +TRACE_SYSCALL_TABLE(sys_setgroups, sys_setgroups, 206, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_getresuid +TRACE_SYSCALL_TABLE(sys_getresuid, sys_getresuid, 209, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_getresgid +TRACE_SYSCALL_TABLE(sys_getresgid, sys_getresgid, 211, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_chown +TRACE_SYSCALL_TABLE(sys_chown, sys_chown, 212, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_getdents64 +TRACE_SYSCALL_TABLE(sys_getdents64, sys_getdents64, 217, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_pivot_root +TRACE_SYSCALL_TABLE(sys_pivot_root, sys_pivot_root, 218, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_mincore +TRACE_SYSCALL_TABLE(sys_mincore, sys_mincore, 219, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_setxattr +TRACE_SYSCALL_TABLE(sys_setxattr, sys_setxattr, 226, 5) +#endif +#ifndef OVERRIDE_TABLE_32_sys_lsetxattr +TRACE_SYSCALL_TABLE(sys_lsetxattr, sys_lsetxattr, 227, 5) +#endif +#ifndef OVERRIDE_TABLE_32_sys_fsetxattr +TRACE_SYSCALL_TABLE(sys_fsetxattr, sys_fsetxattr, 228, 5) +#endif +#ifndef OVERRIDE_TABLE_32_sys_getxattr +TRACE_SYSCALL_TABLE(sys_getxattr, sys_getxattr, 229, 4) +#endif +#ifndef OVERRIDE_TABLE_32_sys_lgetxattr +TRACE_SYSCALL_TABLE(sys_lgetxattr, sys_lgetxattr, 230, 4) +#endif +#ifndef OVERRIDE_TABLE_32_sys_fgetxattr +TRACE_SYSCALL_TABLE(sys_fgetxattr, sys_fgetxattr, 231, 4) +#endif +#ifndef OVERRIDE_TABLE_32_sys_listxattr +TRACE_SYSCALL_TABLE(sys_listxattr, sys_listxattr, 232, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_llistxattr +TRACE_SYSCALL_TABLE(sys_llistxattr, sys_llistxattr, 233, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_flistxattr +TRACE_SYSCALL_TABLE(sys_flistxattr, sys_flistxattr, 234, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_removexattr +TRACE_SYSCALL_TABLE(sys_removexattr, sys_removexattr, 235, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_lremovexattr +TRACE_SYSCALL_TABLE(sys_lremovexattr, sys_lremovexattr, 236, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_fremovexattr +TRACE_SYSCALL_TABLE(sys_fremovexattr, sys_fremovexattr, 237, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_sendfile64 +TRACE_SYSCALL_TABLE(sys_sendfile64, sys_sendfile64, 239, 4) +#endif +#ifndef OVERRIDE_TABLE_32_sys_futex +TRACE_SYSCALL_TABLE(sys_futex, sys_futex, 240, 6) +#endif +#ifndef OVERRIDE_TABLE_32_sys_sched_setaffinity +TRACE_SYSCALL_TABLE(sys_sched_setaffinity, sys_sched_setaffinity, 241, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_sched_getaffinity +TRACE_SYSCALL_TABLE(sys_sched_getaffinity, sys_sched_getaffinity, 242, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_io_setup +TRACE_SYSCALL_TABLE(sys_io_setup, sys_io_setup, 243, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_io_getevents +TRACE_SYSCALL_TABLE(sys_io_getevents, sys_io_getevents, 245, 5) +#endif +#ifndef OVERRIDE_TABLE_32_sys_io_submit +TRACE_SYSCALL_TABLE(sys_io_submit, sys_io_submit, 246, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_io_cancel +TRACE_SYSCALL_TABLE(sys_io_cancel, sys_io_cancel, 247, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_epoll_ctl +TRACE_SYSCALL_TABLE(sys_epoll_ctl, sys_epoll_ctl, 251, 4) +#endif +#ifndef OVERRIDE_TABLE_32_sys_epoll_wait +TRACE_SYSCALL_TABLE(sys_epoll_wait, sys_epoll_wait, 252, 4) +#endif +#ifndef OVERRIDE_TABLE_32_sys_set_tid_address +TRACE_SYSCALL_TABLE(sys_set_tid_address, sys_set_tid_address, 256, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_timer_create +TRACE_SYSCALL_TABLE(sys_timer_create, sys_timer_create, 257, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_timer_settime +TRACE_SYSCALL_TABLE(sys_timer_settime, sys_timer_settime, 258, 4) +#endif +#ifndef OVERRIDE_TABLE_32_sys_timer_gettime +TRACE_SYSCALL_TABLE(sys_timer_gettime, sys_timer_gettime, 259, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_clock_settime +TRACE_SYSCALL_TABLE(sys_clock_settime, sys_clock_settime, 262, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_clock_gettime +TRACE_SYSCALL_TABLE(sys_clock_gettime, sys_clock_gettime, 263, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_clock_getres +TRACE_SYSCALL_TABLE(sys_clock_getres, sys_clock_getres, 264, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_clock_nanosleep +TRACE_SYSCALL_TABLE(sys_clock_nanosleep, sys_clock_nanosleep, 265, 4) +#endif +#ifndef OVERRIDE_TABLE_32_sys_utimes +TRACE_SYSCALL_TABLE(sys_utimes, sys_utimes, 269, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_mq_open +TRACE_SYSCALL_TABLE(sys_mq_open, sys_mq_open, 274, 4) +#endif +#ifndef OVERRIDE_TABLE_32_sys_mq_unlink +TRACE_SYSCALL_TABLE(sys_mq_unlink, sys_mq_unlink, 275, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_mq_timedsend +TRACE_SYSCALL_TABLE(sys_mq_timedsend, sys_mq_timedsend, 276, 5) +#endif +#ifndef OVERRIDE_TABLE_32_sys_mq_timedreceive +TRACE_SYSCALL_TABLE(sys_mq_timedreceive, sys_mq_timedreceive, 277, 5) +#endif +#ifndef OVERRIDE_TABLE_32_sys_mq_notify +TRACE_SYSCALL_TABLE(sys_mq_notify, sys_mq_notify, 278, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_mq_getsetattr +TRACE_SYSCALL_TABLE(sys_mq_getsetattr, sys_mq_getsetattr, 279, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_waitid +TRACE_SYSCALL_TABLE(sys_waitid, sys_waitid, 280, 5) +#endif +#ifndef OVERRIDE_TABLE_32_sys_bind +TRACE_SYSCALL_TABLE(sys_bind, sys_bind, 282, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_connect +TRACE_SYSCALL_TABLE(sys_connect, sys_connect, 283, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_accept +TRACE_SYSCALL_TABLE(sys_accept, sys_accept, 285, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_getsockname +TRACE_SYSCALL_TABLE(sys_getsockname, sys_getsockname, 286, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_getpeername +TRACE_SYSCALL_TABLE(sys_getpeername, sys_getpeername, 287, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_socketpair +TRACE_SYSCALL_TABLE(sys_socketpair, sys_socketpair, 288, 4) +#endif +#ifndef OVERRIDE_TABLE_32_sys_send +TRACE_SYSCALL_TABLE(sys_send, sys_send, 289, 4) +#endif +#ifndef OVERRIDE_TABLE_32_sys_sendto +TRACE_SYSCALL_TABLE(sys_sendto, sys_sendto, 290, 6) +#endif +#ifndef OVERRIDE_TABLE_32_sys_recvfrom +TRACE_SYSCALL_TABLE(sys_recvfrom, sys_recvfrom, 292, 6) +#endif +#ifndef OVERRIDE_TABLE_32_sys_setsockopt +TRACE_SYSCALL_TABLE(sys_setsockopt, sys_setsockopt, 294, 5) +#endif +#ifndef OVERRIDE_TABLE_32_sys_getsockopt +TRACE_SYSCALL_TABLE(sys_getsockopt, sys_getsockopt, 295, 5) +#endif +#ifndef OVERRIDE_TABLE_32_sys_sendmsg +TRACE_SYSCALL_TABLE(sys_sendmsg, sys_sendmsg, 296, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_recvmsg +TRACE_SYSCALL_TABLE(sys_recvmsg, sys_recvmsg, 297, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_semop +TRACE_SYSCALL_TABLE(sys_semop, sys_semop, 298, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_msgsnd +TRACE_SYSCALL_TABLE(sys_msgsnd, sys_msgsnd, 301, 4) +#endif +#ifndef OVERRIDE_TABLE_32_sys_msgrcv +TRACE_SYSCALL_TABLE(sys_msgrcv, sys_msgrcv, 302, 5) +#endif +#ifndef OVERRIDE_TABLE_32_sys_msgctl +TRACE_SYSCALL_TABLE(sys_msgctl, sys_msgctl, 304, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_shmat +TRACE_SYSCALL_TABLE(sys_shmat, sys_shmat, 305, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_shmdt +TRACE_SYSCALL_TABLE(sys_shmdt, sys_shmdt, 306, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_shmctl +TRACE_SYSCALL_TABLE(sys_shmctl, sys_shmctl, 308, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_add_key +TRACE_SYSCALL_TABLE(sys_add_key, sys_add_key, 309, 5) +#endif +#ifndef OVERRIDE_TABLE_32_sys_request_key +TRACE_SYSCALL_TABLE(sys_request_key, sys_request_key, 310, 4) +#endif +#ifndef OVERRIDE_TABLE_32_sys_semtimedop +TRACE_SYSCALL_TABLE(sys_semtimedop, sys_semtimedop, 312, 4) +#endif +#ifndef OVERRIDE_TABLE_32_sys_inotify_add_watch +TRACE_SYSCALL_TABLE(sys_inotify_add_watch, sys_inotify_add_watch, 317, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_openat +TRACE_SYSCALL_TABLE(sys_openat, sys_openat, 322, 4) +#endif +#ifndef OVERRIDE_TABLE_32_sys_mkdirat +TRACE_SYSCALL_TABLE(sys_mkdirat, sys_mkdirat, 323, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_mknodat +TRACE_SYSCALL_TABLE(sys_mknodat, sys_mknodat, 324, 4) +#endif +#ifndef OVERRIDE_TABLE_32_sys_fchownat +TRACE_SYSCALL_TABLE(sys_fchownat, sys_fchownat, 325, 5) +#endif +#ifndef OVERRIDE_TABLE_32_sys_futimesat +TRACE_SYSCALL_TABLE(sys_futimesat, sys_futimesat, 326, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_fstatat64 +TRACE_SYSCALL_TABLE(sys_fstatat64, sys_fstatat64, 327, 4) +#endif +#ifndef OVERRIDE_TABLE_32_sys_unlinkat +TRACE_SYSCALL_TABLE(sys_unlinkat, sys_unlinkat, 328, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_renameat +TRACE_SYSCALL_TABLE(sys_renameat, sys_renameat, 329, 4) +#endif +#ifndef OVERRIDE_TABLE_32_sys_linkat +TRACE_SYSCALL_TABLE(sys_linkat, sys_linkat, 330, 5) +#endif +#ifndef OVERRIDE_TABLE_32_sys_symlinkat +TRACE_SYSCALL_TABLE(sys_symlinkat, sys_symlinkat, 331, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_readlinkat +TRACE_SYSCALL_TABLE(sys_readlinkat, sys_readlinkat, 332, 4) +#endif +#ifndef OVERRIDE_TABLE_32_sys_fchmodat +TRACE_SYSCALL_TABLE(sys_fchmodat, sys_fchmodat, 333, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_faccessat +TRACE_SYSCALL_TABLE(sys_faccessat, sys_faccessat, 334, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_pselect6 +TRACE_SYSCALL_TABLE(sys_pselect6, sys_pselect6, 335, 6) +#endif +#ifndef OVERRIDE_TABLE_32_sys_ppoll +TRACE_SYSCALL_TABLE(sys_ppoll, sys_ppoll, 336, 5) +#endif +#ifndef OVERRIDE_TABLE_32_sys_set_robust_list +TRACE_SYSCALL_TABLE(sys_set_robust_list, sys_set_robust_list, 338, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_get_robust_list +TRACE_SYSCALL_TABLE(sys_get_robust_list, sys_get_robust_list, 339, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_splice +TRACE_SYSCALL_TABLE(sys_splice, sys_splice, 340, 6) +#endif +#ifndef OVERRIDE_TABLE_32_sys_vmsplice +TRACE_SYSCALL_TABLE(sys_vmsplice, sys_vmsplice, 343, 4) +#endif +#ifndef OVERRIDE_TABLE_32_sys_getcpu +TRACE_SYSCALL_TABLE(sys_getcpu, sys_getcpu, 345, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_epoll_pwait +TRACE_SYSCALL_TABLE(sys_epoll_pwait, sys_epoll_pwait, 346, 6) +#endif +#ifndef OVERRIDE_TABLE_32_sys_utimensat +TRACE_SYSCALL_TABLE(sys_utimensat, sys_utimensat, 348, 4) +#endif +#ifndef OVERRIDE_TABLE_32_sys_signalfd +TRACE_SYSCALL_TABLE(sys_signalfd, sys_signalfd, 349, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_timerfd_settime +TRACE_SYSCALL_TABLE(sys_timerfd_settime, sys_timerfd_settime, 353, 4) +#endif +#ifndef OVERRIDE_TABLE_32_sys_timerfd_gettime +TRACE_SYSCALL_TABLE(sys_timerfd_gettime, sys_timerfd_gettime, 354, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_signalfd4 +TRACE_SYSCALL_TABLE(sys_signalfd4, sys_signalfd4, 355, 4) +#endif +#ifndef OVERRIDE_TABLE_32_sys_pipe2 +TRACE_SYSCALL_TABLE(sys_pipe2, sys_pipe2, 359, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_preadv +TRACE_SYSCALL_TABLE(sys_preadv, sys_preadv, 361, 5) +#endif +#ifndef OVERRIDE_TABLE_32_sys_pwritev +TRACE_SYSCALL_TABLE(sys_pwritev, sys_pwritev, 362, 5) +#endif +#ifndef OVERRIDE_TABLE_32_sys_rt_tgsigqueueinfo +TRACE_SYSCALL_TABLE(sys_rt_tgsigqueueinfo, sys_rt_tgsigqueueinfo, 363, 4) +#endif +#ifndef OVERRIDE_TABLE_32_sys_perf_event_open +TRACE_SYSCALL_TABLE(sys_perf_event_open, sys_perf_event_open, 364, 5) +#endif +#ifndef OVERRIDE_TABLE_32_sys_recvmmsg +TRACE_SYSCALL_TABLE(sys_recvmmsg, sys_recvmmsg, 365, 5) +#endif +#ifndef OVERRIDE_TABLE_32_sys_accept4 +TRACE_SYSCALL_TABLE(sys_accept4, sys_accept4, 366, 4) +#endif +#ifndef OVERRIDE_TABLE_32_sys_prlimit64 +TRACE_SYSCALL_TABLE(sys_prlimit64, sys_prlimit64, 369, 4) +#endif +#ifndef OVERRIDE_TABLE_32_sys_name_to_handle_at +TRACE_SYSCALL_TABLE(sys_name_to_handle_at, sys_name_to_handle_at, 370, 5) +#endif +#ifndef OVERRIDE_TABLE_32_sys_open_by_handle_at +TRACE_SYSCALL_TABLE(sys_open_by_handle_at, sys_open_by_handle_at, 371, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_clock_adjtime +TRACE_SYSCALL_TABLE(sys_clock_adjtime, sys_clock_adjtime, 372, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_sendmmsg +TRACE_SYSCALL_TABLE(sys_sendmmsg, sys_sendmmsg, 374, 4) +#endif +#ifndef OVERRIDE_TABLE_32_sys_process_vm_readv +TRACE_SYSCALL_TABLE(sys_process_vm_readv, sys_process_vm_readv, 376, 6) +#endif +#ifndef OVERRIDE_TABLE_32_sys_process_vm_writev +TRACE_SYSCALL_TABLE(sys_process_vm_writev, sys_process_vm_writev, 377, 6) +#endif + +#endif /* CREATE_SYSCALL_TABLE */ --- linux-3.11.0.orig/ubuntu/lttng/instrumentation/syscalls/headers/syscalls_pointers_override.h +++ linux-3.11.0/ubuntu/lttng/instrumentation/syscalls/headers/syscalls_pointers_override.h @@ -0,0 +1,53 @@ +#define OVERRIDE_32_sys_execve +#define OVERRIDE_64_sys_execve + +#ifndef CREATE_SYSCALL_TABLE + +SC_TRACE_EVENT(sys_execve, + TP_PROTO(const char *filename, char *const *argv, char *const *envp), + TP_ARGS(filename, argv, envp), + TP_STRUCT__entry(__string_from_user(filename, filename) + __field_hex(char *const *, argv) + __field_hex(char *const *, envp)), + TP_fast_assign(tp_copy_string_from_user(filename, filename) + tp_assign(argv, argv) + tp_assign(envp, envp)), + TP_printk() +) + +SC_TRACE_EVENT(sys_clone, + TP_PROTO(unsigned long clone_flags, unsigned long newsp, + void __user *parent_tid, + void __user *child_tid), + TP_ARGS(clone_flags, newsp, parent_tid, child_tid), + TP_STRUCT__entry( + __field_hex(unsigned long, clone_flags) + __field_hex(unsigned long, newsp) + __field_hex(void *, parent_tid) + __field_hex(void *, child_tid)), + TP_fast_assign( + tp_assign(clone_flags, clone_flags) + tp_assign(newsp, newsp) + tp_assign(parent_tid, parent_tid) + tp_assign(child_tid, child_tid)), + TP_printk() +) + +/* present in 32, missing in 64 due to old kernel headers */ +#define OVERRIDE_32_sys_getcpu +#define OVERRIDE_64_sys_getcpu +SC_TRACE_EVENT(sys_getcpu, + TP_PROTO(unsigned __user *cpup, unsigned __user *nodep, void *tcache), + TP_ARGS(cpup, nodep, tcache), + TP_STRUCT__entry( + __field_hex(unsigned *, cpup) + __field_hex(unsigned *, nodep) + __field_hex(void *, tcache)), + TP_fast_assign( + tp_assign(cpup, cpup) + tp_assign(nodep, nodep) + tp_assign(tcache, tcache)), + TP_printk() +) + +#endif /* CREATE_SYSCALL_TABLE */ --- linux-3.11.0.orig/ubuntu/lttng/instrumentation/syscalls/headers/x86-32-syscalls-3.1.0-rc6_integers.h +++ linux-3.11.0/ubuntu/lttng/instrumentation/syscalls/headers/x86-32-syscalls-3.1.0-rc6_integers.h @@ -0,0 +1,1163 @@ +/* THIS FILE IS AUTO-GENERATED. DO NOT EDIT */ +#ifndef CREATE_SYSCALL_TABLE + +#if !defined(_TRACE_SYSCALLS_INTEGERS_H) || defined(TRACE_HEADER_MULTI_READ) +#define _TRACE_SYSCALLS_INTEGERS_H + +#include +#include +#include "x86-32-syscalls-3.1.0-rc6_integers_override.h" +#include "syscalls_integers_override.h" + +SC_DECLARE_EVENT_CLASS_NOARGS(syscalls_noargs, + TP_STRUCT__entry(), + TP_fast_assign(), + TP_printk() +) +#ifndef OVERRIDE_32_sys_restart_syscall +SC_DEFINE_EVENT_NOARGS(syscalls_noargs, sys_restart_syscall) +#endif +#ifndef OVERRIDE_32_sys_getpid +SC_DEFINE_EVENT_NOARGS(syscalls_noargs, sys_getpid) +#endif +#ifndef OVERRIDE_32_sys_getuid16 +SC_DEFINE_EVENT_NOARGS(syscalls_noargs, sys_getuid16) +#endif +#ifndef OVERRIDE_32_sys_pause +SC_DEFINE_EVENT_NOARGS(syscalls_noargs, sys_pause) +#endif +#ifndef OVERRIDE_32_sys_sync +SC_DEFINE_EVENT_NOARGS(syscalls_noargs, sys_sync) +#endif +#ifndef OVERRIDE_32_sys_getgid16 +SC_DEFINE_EVENT_NOARGS(syscalls_noargs, sys_getgid16) +#endif +#ifndef OVERRIDE_32_sys_geteuid16 +SC_DEFINE_EVENT_NOARGS(syscalls_noargs, sys_geteuid16) +#endif +#ifndef OVERRIDE_32_sys_getegid16 +SC_DEFINE_EVENT_NOARGS(syscalls_noargs, sys_getegid16) +#endif +#ifndef OVERRIDE_32_sys_getppid +SC_DEFINE_EVENT_NOARGS(syscalls_noargs, sys_getppid) +#endif +#ifndef OVERRIDE_32_sys_getpgrp +SC_DEFINE_EVENT_NOARGS(syscalls_noargs, sys_getpgrp) +#endif +#ifndef OVERRIDE_32_sys_setsid +SC_DEFINE_EVENT_NOARGS(syscalls_noargs, sys_setsid) +#endif +#ifndef OVERRIDE_32_sys_sgetmask +SC_DEFINE_EVENT_NOARGS(syscalls_noargs, sys_sgetmask) +#endif +#ifndef OVERRIDE_32_sys_vhangup +SC_DEFINE_EVENT_NOARGS(syscalls_noargs, sys_vhangup) +#endif +#ifndef OVERRIDE_32_sys_munlockall +SC_DEFINE_EVENT_NOARGS(syscalls_noargs, sys_munlockall) +#endif +#ifndef OVERRIDE_32_sys_sched_yield +SC_DEFINE_EVENT_NOARGS(syscalls_noargs, sys_sched_yield) +#endif +#ifndef OVERRIDE_32_sys_getuid +SC_DEFINE_EVENT_NOARGS(syscalls_noargs, sys_getuid) +#endif +#ifndef OVERRIDE_32_sys_getgid +SC_DEFINE_EVENT_NOARGS(syscalls_noargs, sys_getgid) +#endif +#ifndef OVERRIDE_32_sys_geteuid +SC_DEFINE_EVENT_NOARGS(syscalls_noargs, sys_geteuid) +#endif +#ifndef OVERRIDE_32_sys_getegid +SC_DEFINE_EVENT_NOARGS(syscalls_noargs, sys_getegid) +#endif +#ifndef OVERRIDE_32_sys_gettid +SC_DEFINE_EVENT_NOARGS(syscalls_noargs, sys_gettid) +#endif +#ifndef OVERRIDE_32_sys_inotify_init +SC_DEFINE_EVENT_NOARGS(syscalls_noargs, sys_inotify_init) +#endif +#ifndef OVERRIDE_32_sys_exit +SC_TRACE_EVENT(sys_exit, + TP_PROTO(int error_code), + TP_ARGS(error_code), + TP_STRUCT__entry(__field(int, error_code)), + TP_fast_assign(tp_assign(error_code, error_code)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_close +SC_TRACE_EVENT(sys_close, + TP_PROTO(unsigned int fd), + TP_ARGS(fd), + TP_STRUCT__entry(__field(unsigned int, fd)), + TP_fast_assign(tp_assign(fd, fd)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_setuid16 +SC_TRACE_EVENT(sys_setuid16, + TP_PROTO(old_uid_t uid), + TP_ARGS(uid), + TP_STRUCT__entry(__field(old_uid_t, uid)), + TP_fast_assign(tp_assign(uid, uid)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_alarm +SC_TRACE_EVENT(sys_alarm, + TP_PROTO(unsigned int seconds), + TP_ARGS(seconds), + TP_STRUCT__entry(__field(unsigned int, seconds)), + TP_fast_assign(tp_assign(seconds, seconds)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_nice +SC_TRACE_EVENT(sys_nice, + TP_PROTO(int increment), + TP_ARGS(increment), + TP_STRUCT__entry(__field(int, increment)), + TP_fast_assign(tp_assign(increment, increment)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_dup +SC_TRACE_EVENT(sys_dup, + TP_PROTO(unsigned int fildes), + TP_ARGS(fildes), + TP_STRUCT__entry(__field(unsigned int, fildes)), + TP_fast_assign(tp_assign(fildes, fildes)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_brk +SC_TRACE_EVENT(sys_brk, + TP_PROTO(unsigned long brk), + TP_ARGS(brk), + TP_STRUCT__entry(__field(unsigned long, brk)), + TP_fast_assign(tp_assign(brk, brk)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_setgid16 +SC_TRACE_EVENT(sys_setgid16, + TP_PROTO(old_gid_t gid), + TP_ARGS(gid), + TP_STRUCT__entry(__field(old_gid_t, gid)), + TP_fast_assign(tp_assign(gid, gid)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_umask +SC_TRACE_EVENT(sys_umask, + TP_PROTO(int mask), + TP_ARGS(mask), + TP_STRUCT__entry(__field(int, mask)), + TP_fast_assign(tp_assign(mask, mask)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_ssetmask +SC_TRACE_EVENT(sys_ssetmask, + TP_PROTO(int newmask), + TP_ARGS(newmask), + TP_STRUCT__entry(__field(int, newmask)), + TP_fast_assign(tp_assign(newmask, newmask)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_fsync +SC_TRACE_EVENT(sys_fsync, + TP_PROTO(unsigned int fd), + TP_ARGS(fd), + TP_STRUCT__entry(__field(unsigned int, fd)), + TP_fast_assign(tp_assign(fd, fd)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_getpgid +SC_TRACE_EVENT(sys_getpgid, + TP_PROTO(pid_t pid), + TP_ARGS(pid), + TP_STRUCT__entry(__field(pid_t, pid)), + TP_fast_assign(tp_assign(pid, pid)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_fchdir +SC_TRACE_EVENT(sys_fchdir, + TP_PROTO(unsigned int fd), + TP_ARGS(fd), + TP_STRUCT__entry(__field(unsigned int, fd)), + TP_fast_assign(tp_assign(fd, fd)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_personality +SC_TRACE_EVENT(sys_personality, + TP_PROTO(unsigned int personality), + TP_ARGS(personality), + TP_STRUCT__entry(__field(unsigned int, personality)), + TP_fast_assign(tp_assign(personality, personality)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_setfsuid16 +SC_TRACE_EVENT(sys_setfsuid16, + TP_PROTO(old_uid_t uid), + TP_ARGS(uid), + TP_STRUCT__entry(__field(old_uid_t, uid)), + TP_fast_assign(tp_assign(uid, uid)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_setfsgid16 +SC_TRACE_EVENT(sys_setfsgid16, + TP_PROTO(old_gid_t gid), + TP_ARGS(gid), + TP_STRUCT__entry(__field(old_gid_t, gid)), + TP_fast_assign(tp_assign(gid, gid)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_getsid +SC_TRACE_EVENT(sys_getsid, + TP_PROTO(pid_t pid), + TP_ARGS(pid), + TP_STRUCT__entry(__field(pid_t, pid)), + TP_fast_assign(tp_assign(pid, pid)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_fdatasync +SC_TRACE_EVENT(sys_fdatasync, + TP_PROTO(unsigned int fd), + TP_ARGS(fd), + TP_STRUCT__entry(__field(unsigned int, fd)), + TP_fast_assign(tp_assign(fd, fd)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_mlockall +SC_TRACE_EVENT(sys_mlockall, + TP_PROTO(int flags), + TP_ARGS(flags), + TP_STRUCT__entry(__field(int, flags)), + TP_fast_assign(tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_sched_getscheduler +SC_TRACE_EVENT(sys_sched_getscheduler, + TP_PROTO(pid_t pid), + TP_ARGS(pid), + TP_STRUCT__entry(__field(pid_t, pid)), + TP_fast_assign(tp_assign(pid, pid)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_sched_get_priority_max +SC_TRACE_EVENT(sys_sched_get_priority_max, + TP_PROTO(int policy), + TP_ARGS(policy), + TP_STRUCT__entry(__field(int, policy)), + TP_fast_assign(tp_assign(policy, policy)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_sched_get_priority_min +SC_TRACE_EVENT(sys_sched_get_priority_min, + TP_PROTO(int policy), + TP_ARGS(policy), + TP_STRUCT__entry(__field(int, policy)), + TP_fast_assign(tp_assign(policy, policy)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_setuid +SC_TRACE_EVENT(sys_setuid, + TP_PROTO(uid_t uid), + TP_ARGS(uid), + TP_STRUCT__entry(__field(uid_t, uid)), + TP_fast_assign(tp_assign(uid, uid)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_setgid +SC_TRACE_EVENT(sys_setgid, + TP_PROTO(gid_t gid), + TP_ARGS(gid), + TP_STRUCT__entry(__field(gid_t, gid)), + TP_fast_assign(tp_assign(gid, gid)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_setfsuid +SC_TRACE_EVENT(sys_setfsuid, + TP_PROTO(uid_t uid), + TP_ARGS(uid), + TP_STRUCT__entry(__field(uid_t, uid)), + TP_fast_assign(tp_assign(uid, uid)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_setfsgid +SC_TRACE_EVENT(sys_setfsgid, + TP_PROTO(gid_t gid), + TP_ARGS(gid), + TP_STRUCT__entry(__field(gid_t, gid)), + TP_fast_assign(tp_assign(gid, gid)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_io_destroy +SC_TRACE_EVENT(sys_io_destroy, + TP_PROTO(aio_context_t ctx), + TP_ARGS(ctx), + TP_STRUCT__entry(__field(aio_context_t, ctx)), + TP_fast_assign(tp_assign(ctx, ctx)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_exit_group +SC_TRACE_EVENT(sys_exit_group, + TP_PROTO(int error_code), + TP_ARGS(error_code), + TP_STRUCT__entry(__field(int, error_code)), + TP_fast_assign(tp_assign(error_code, error_code)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_epoll_create +SC_TRACE_EVENT(sys_epoll_create, + TP_PROTO(int size), + TP_ARGS(size), + TP_STRUCT__entry(__field(int, size)), + TP_fast_assign(tp_assign(size, size)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_timer_getoverrun +SC_TRACE_EVENT(sys_timer_getoverrun, + TP_PROTO(timer_t timer_id), + TP_ARGS(timer_id), + TP_STRUCT__entry(__field(timer_t, timer_id)), + TP_fast_assign(tp_assign(timer_id, timer_id)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_timer_delete +SC_TRACE_EVENT(sys_timer_delete, + TP_PROTO(timer_t timer_id), + TP_ARGS(timer_id), + TP_STRUCT__entry(__field(timer_t, timer_id)), + TP_fast_assign(tp_assign(timer_id, timer_id)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_unshare +SC_TRACE_EVENT(sys_unshare, + TP_PROTO(unsigned long unshare_flags), + TP_ARGS(unshare_flags), + TP_STRUCT__entry(__field(unsigned long, unshare_flags)), + TP_fast_assign(tp_assign(unshare_flags, unshare_flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_eventfd +SC_TRACE_EVENT(sys_eventfd, + TP_PROTO(unsigned int count), + TP_ARGS(count), + TP_STRUCT__entry(__field(unsigned int, count)), + TP_fast_assign(tp_assign(count, count)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_epoll_create1 +SC_TRACE_EVENT(sys_epoll_create1, + TP_PROTO(int flags), + TP_ARGS(flags), + TP_STRUCT__entry(__field(int, flags)), + TP_fast_assign(tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_inotify_init1 +SC_TRACE_EVENT(sys_inotify_init1, + TP_PROTO(int flags), + TP_ARGS(flags), + TP_STRUCT__entry(__field(int, flags)), + TP_fast_assign(tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_syncfs +SC_TRACE_EVENT(sys_syncfs, + TP_PROTO(int fd), + TP_ARGS(fd), + TP_STRUCT__entry(__field(int, fd)), + TP_fast_assign(tp_assign(fd, fd)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_kill +SC_TRACE_EVENT(sys_kill, + TP_PROTO(pid_t pid, int sig), + TP_ARGS(pid, sig), + TP_STRUCT__entry(__field(pid_t, pid) __field(int, sig)), + TP_fast_assign(tp_assign(pid, pid) tp_assign(sig, sig)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_signal +SC_TRACE_EVENT(sys_signal, + TP_PROTO(int sig, __sighandler_t handler), + TP_ARGS(sig, handler), + TP_STRUCT__entry(__field(int, sig) __field(__sighandler_t, handler)), + TP_fast_assign(tp_assign(sig, sig) tp_assign(handler, handler)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_setpgid +SC_TRACE_EVENT(sys_setpgid, + TP_PROTO(pid_t pid, pid_t pgid), + TP_ARGS(pid, pgid), + TP_STRUCT__entry(__field(pid_t, pid) __field(pid_t, pgid)), + TP_fast_assign(tp_assign(pid, pid) tp_assign(pgid, pgid)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_dup2 +SC_TRACE_EVENT(sys_dup2, + TP_PROTO(unsigned int oldfd, unsigned int newfd), + TP_ARGS(oldfd, newfd), + TP_STRUCT__entry(__field(unsigned int, oldfd) __field(unsigned int, newfd)), + TP_fast_assign(tp_assign(oldfd, oldfd) tp_assign(newfd, newfd)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_setreuid16 +SC_TRACE_EVENT(sys_setreuid16, + TP_PROTO(old_uid_t ruid, old_uid_t euid), + TP_ARGS(ruid, euid), + TP_STRUCT__entry(__field(old_uid_t, ruid) __field(old_uid_t, euid)), + TP_fast_assign(tp_assign(ruid, ruid) tp_assign(euid, euid)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_setregid16 +SC_TRACE_EVENT(sys_setregid16, + TP_PROTO(old_gid_t rgid, old_gid_t egid), + TP_ARGS(rgid, egid), + TP_STRUCT__entry(__field(old_gid_t, rgid) __field(old_gid_t, egid)), + TP_fast_assign(tp_assign(rgid, rgid) tp_assign(egid, egid)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_munmap +SC_TRACE_EVENT(sys_munmap, + TP_PROTO(unsigned long addr, size_t len), + TP_ARGS(addr, len), + TP_STRUCT__entry(__field_hex(unsigned long, addr) __field(size_t, len)), + TP_fast_assign(tp_assign(addr, addr) tp_assign(len, len)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_ftruncate +SC_TRACE_EVENT(sys_ftruncate, + TP_PROTO(unsigned int fd, unsigned long length), + TP_ARGS(fd, length), + TP_STRUCT__entry(__field(unsigned int, fd) __field(unsigned long, length)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(length, length)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_fchmod +SC_TRACE_EVENT(sys_fchmod, + TP_PROTO(unsigned int fd, mode_t mode), + TP_ARGS(fd, mode), + TP_STRUCT__entry(__field(unsigned int, fd) __field(mode_t, mode)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(mode, mode)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_getpriority +SC_TRACE_EVENT(sys_getpriority, + TP_PROTO(int which, int who), + TP_ARGS(which, who), + TP_STRUCT__entry(__field(int, which) __field(int, who)), + TP_fast_assign(tp_assign(which, which) tp_assign(who, who)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_bdflush +SC_TRACE_EVENT(sys_bdflush, + TP_PROTO(int func, long data), + TP_ARGS(func, data), + TP_STRUCT__entry(__field(int, func) __field(long, data)), + TP_fast_assign(tp_assign(func, func) tp_assign(data, data)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_flock +SC_TRACE_EVENT(sys_flock, + TP_PROTO(unsigned int fd, unsigned int cmd), + TP_ARGS(fd, cmd), + TP_STRUCT__entry(__field(unsigned int, fd) __field(unsigned int, cmd)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(cmd, cmd)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_mlock +SC_TRACE_EVENT(sys_mlock, + TP_PROTO(unsigned long start, size_t len), + TP_ARGS(start, len), + TP_STRUCT__entry(__field(unsigned long, start) __field(size_t, len)), + TP_fast_assign(tp_assign(start, start) tp_assign(len, len)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_munlock +SC_TRACE_EVENT(sys_munlock, + TP_PROTO(unsigned long start, size_t len), + TP_ARGS(start, len), + TP_STRUCT__entry(__field(unsigned long, start) __field(size_t, len)), + TP_fast_assign(tp_assign(start, start) tp_assign(len, len)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_setreuid +SC_TRACE_EVENT(sys_setreuid, + TP_PROTO(uid_t ruid, uid_t euid), + TP_ARGS(ruid, euid), + TP_STRUCT__entry(__field(uid_t, ruid) __field(uid_t, euid)), + TP_fast_assign(tp_assign(ruid, ruid) tp_assign(euid, euid)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_setregid +SC_TRACE_EVENT(sys_setregid, + TP_PROTO(gid_t rgid, gid_t egid), + TP_ARGS(rgid, egid), + TP_STRUCT__entry(__field(gid_t, rgid) __field(gid_t, egid)), + TP_fast_assign(tp_assign(rgid, rgid) tp_assign(egid, egid)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_tkill +SC_TRACE_EVENT(sys_tkill, + TP_PROTO(pid_t pid, int sig), + TP_ARGS(pid, sig), + TP_STRUCT__entry(__field(pid_t, pid) __field(int, sig)), + TP_fast_assign(tp_assign(pid, pid) tp_assign(sig, sig)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_ioprio_get +SC_TRACE_EVENT(sys_ioprio_get, + TP_PROTO(int which, int who), + TP_ARGS(which, who), + TP_STRUCT__entry(__field(int, which) __field(int, who)), + TP_fast_assign(tp_assign(which, which) tp_assign(who, who)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_inotify_rm_watch +SC_TRACE_EVENT(sys_inotify_rm_watch, + TP_PROTO(int fd, __s32 wd), + TP_ARGS(fd, wd), + TP_STRUCT__entry(__field(int, fd) __field(__s32, wd)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(wd, wd)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_timerfd_create +SC_TRACE_EVENT(sys_timerfd_create, + TP_PROTO(int clockid, int flags), + TP_ARGS(clockid, flags), + TP_STRUCT__entry(__field(int, clockid) __field(int, flags)), + TP_fast_assign(tp_assign(clockid, clockid) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_eventfd2 +SC_TRACE_EVENT(sys_eventfd2, + TP_PROTO(unsigned int count, int flags), + TP_ARGS(count, flags), + TP_STRUCT__entry(__field(unsigned int, count) __field(int, flags)), + TP_fast_assign(tp_assign(count, count) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_fanotify_init +SC_TRACE_EVENT(sys_fanotify_init, + TP_PROTO(unsigned int flags, unsigned int event_f_flags), + TP_ARGS(flags, event_f_flags), + TP_STRUCT__entry(__field(unsigned int, flags) __field(unsigned int, event_f_flags)), + TP_fast_assign(tp_assign(flags, flags) tp_assign(event_f_flags, event_f_flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_setns +SC_TRACE_EVENT(sys_setns, + TP_PROTO(int fd, int nstype), + TP_ARGS(fd, nstype), + TP_STRUCT__entry(__field(int, fd) __field(int, nstype)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(nstype, nstype)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_lseek +SC_TRACE_EVENT(sys_lseek, + TP_PROTO(unsigned int fd, off_t offset, unsigned int origin), + TP_ARGS(fd, offset, origin), + TP_STRUCT__entry(__field(unsigned int, fd) __field(off_t, offset) __field(unsigned int, origin)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(offset, offset) tp_assign(origin, origin)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_ioctl +SC_TRACE_EVENT(sys_ioctl, + TP_PROTO(unsigned int fd, unsigned int cmd, unsigned long arg), + TP_ARGS(fd, cmd, arg), + TP_STRUCT__entry(__field(unsigned int, fd) __field(unsigned int, cmd) __field(unsigned long, arg)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(cmd, cmd) tp_assign(arg, arg)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_fcntl +SC_TRACE_EVENT(sys_fcntl, + TP_PROTO(unsigned int fd, unsigned int cmd, unsigned long arg), + TP_ARGS(fd, cmd, arg), + TP_STRUCT__entry(__field(unsigned int, fd) __field(unsigned int, cmd) __field(unsigned long, arg)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(cmd, cmd) tp_assign(arg, arg)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_fchown16 +SC_TRACE_EVENT(sys_fchown16, + TP_PROTO(unsigned int fd, old_uid_t user, old_gid_t group), + TP_ARGS(fd, user, group), + TP_STRUCT__entry(__field(unsigned int, fd) __field(old_uid_t, user) __field(old_gid_t, group)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(user, user) tp_assign(group, group)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_setpriority +SC_TRACE_EVENT(sys_setpriority, + TP_PROTO(int which, int who, int niceval), + TP_ARGS(which, who, niceval), + TP_STRUCT__entry(__field(int, which) __field(int, who) __field(int, niceval)), + TP_fast_assign(tp_assign(which, which) tp_assign(who, who) tp_assign(niceval, niceval)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_mprotect +SC_TRACE_EVENT(sys_mprotect, + TP_PROTO(unsigned long start, size_t len, unsigned long prot), + TP_ARGS(start, len, prot), + TP_STRUCT__entry(__field(unsigned long, start) __field(size_t, len) __field(unsigned long, prot)), + TP_fast_assign(tp_assign(start, start) tp_assign(len, len) tp_assign(prot, prot)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_sysfs +SC_TRACE_EVENT(sys_sysfs, + TP_PROTO(int option, unsigned long arg1, unsigned long arg2), + TP_ARGS(option, arg1, arg2), + TP_STRUCT__entry(__field(int, option) __field(unsigned long, arg1) __field(unsigned long, arg2)), + TP_fast_assign(tp_assign(option, option) tp_assign(arg1, arg1) tp_assign(arg2, arg2)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_msync +SC_TRACE_EVENT(sys_msync, + TP_PROTO(unsigned long start, size_t len, int flags), + TP_ARGS(start, len, flags), + TP_STRUCT__entry(__field(unsigned long, start) __field(size_t, len) __field(int, flags)), + TP_fast_assign(tp_assign(start, start) tp_assign(len, len) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_setresuid16 +SC_TRACE_EVENT(sys_setresuid16, + TP_PROTO(old_uid_t ruid, old_uid_t euid, old_uid_t suid), + TP_ARGS(ruid, euid, suid), + TP_STRUCT__entry(__field(old_uid_t, ruid) __field(old_uid_t, euid) __field(old_uid_t, suid)), + TP_fast_assign(tp_assign(ruid, ruid) tp_assign(euid, euid) tp_assign(suid, suid)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_setresgid16 +SC_TRACE_EVENT(sys_setresgid16, + TP_PROTO(old_gid_t rgid, old_gid_t egid, old_gid_t sgid), + TP_ARGS(rgid, egid, sgid), + TP_STRUCT__entry(__field(old_gid_t, rgid) __field(old_gid_t, egid) __field(old_gid_t, sgid)), + TP_fast_assign(tp_assign(rgid, rgid) tp_assign(egid, egid) tp_assign(sgid, sgid)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_fchown +SC_TRACE_EVENT(sys_fchown, + TP_PROTO(unsigned int fd, uid_t user, gid_t group), + TP_ARGS(fd, user, group), + TP_STRUCT__entry(__field(unsigned int, fd) __field(uid_t, user) __field(gid_t, group)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(user, user) tp_assign(group, group)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_setresuid +SC_TRACE_EVENT(sys_setresuid, + TP_PROTO(uid_t ruid, uid_t euid, uid_t suid), + TP_ARGS(ruid, euid, suid), + TP_STRUCT__entry(__field(uid_t, ruid) __field(uid_t, euid) __field(uid_t, suid)), + TP_fast_assign(tp_assign(ruid, ruid) tp_assign(euid, euid) tp_assign(suid, suid)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_setresgid +SC_TRACE_EVENT(sys_setresgid, + TP_PROTO(gid_t rgid, gid_t egid, gid_t sgid), + TP_ARGS(rgid, egid, sgid), + TP_STRUCT__entry(__field(gid_t, rgid) __field(gid_t, egid) __field(gid_t, sgid)), + TP_fast_assign(tp_assign(rgid, rgid) tp_assign(egid, egid) tp_assign(sgid, sgid)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_madvise +SC_TRACE_EVENT(sys_madvise, + TP_PROTO(unsigned long start, size_t len_in, int behavior), + TP_ARGS(start, len_in, behavior), + TP_STRUCT__entry(__field(unsigned long, start) __field(size_t, len_in) __field(int, behavior)), + TP_fast_assign(tp_assign(start, start) tp_assign(len_in, len_in) tp_assign(behavior, behavior)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_fcntl64 +SC_TRACE_EVENT(sys_fcntl64, + TP_PROTO(unsigned int fd, unsigned int cmd, unsigned long arg), + TP_ARGS(fd, cmd, arg), + TP_STRUCT__entry(__field(unsigned int, fd) __field(unsigned int, cmd) __field(unsigned long, arg)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(cmd, cmd) tp_assign(arg, arg)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_tgkill +SC_TRACE_EVENT(sys_tgkill, + TP_PROTO(pid_t tgid, pid_t pid, int sig), + TP_ARGS(tgid, pid, sig), + TP_STRUCT__entry(__field(pid_t, tgid) __field(pid_t, pid) __field(int, sig)), + TP_fast_assign(tp_assign(tgid, tgid) tp_assign(pid, pid) tp_assign(sig, sig)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_ioprio_set +SC_TRACE_EVENT(sys_ioprio_set, + TP_PROTO(int which, int who, int ioprio), + TP_ARGS(which, who, ioprio), + TP_STRUCT__entry(__field(int, which) __field(int, who) __field(int, ioprio)), + TP_fast_assign(tp_assign(which, which) tp_assign(who, who) tp_assign(ioprio, ioprio)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_dup3 +SC_TRACE_EVENT(sys_dup3, + TP_PROTO(unsigned int oldfd, unsigned int newfd, int flags), + TP_ARGS(oldfd, newfd, flags), + TP_STRUCT__entry(__field(unsigned int, oldfd) __field(unsigned int, newfd) __field(int, flags)), + TP_fast_assign(tp_assign(oldfd, oldfd) tp_assign(newfd, newfd) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_ptrace +SC_TRACE_EVENT(sys_ptrace, + TP_PROTO(long request, long pid, unsigned long addr, unsigned long data), + TP_ARGS(request, pid, addr, data), + TP_STRUCT__entry(__field(long, request) __field(long, pid) __field_hex(unsigned long, addr) __field(unsigned long, data)), + TP_fast_assign(tp_assign(request, request) tp_assign(pid, pid) tp_assign(addr, addr) tp_assign(data, data)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_tee +SC_TRACE_EVENT(sys_tee, + TP_PROTO(int fdin, int fdout, size_t len, unsigned int flags), + TP_ARGS(fdin, fdout, len, flags), + TP_STRUCT__entry(__field(int, fdin) __field(int, fdout) __field(size_t, len) __field(unsigned int, flags)), + TP_fast_assign(tp_assign(fdin, fdin) tp_assign(fdout, fdout) tp_assign(len, len) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_mremap +SC_TRACE_EVENT(sys_mremap, + TP_PROTO(unsigned long addr, unsigned long old_len, unsigned long new_len, unsigned long flags, unsigned long new_addr), + TP_ARGS(addr, old_len, new_len, flags, new_addr), + TP_STRUCT__entry(__field_hex(unsigned long, addr) __field(unsigned long, old_len) __field(unsigned long, new_len) __field(unsigned long, flags) __field_hex(unsigned long, new_addr)), + TP_fast_assign(tp_assign(addr, addr) tp_assign(old_len, old_len) tp_assign(new_len, new_len) tp_assign(flags, flags) tp_assign(new_addr, new_addr)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_prctl +SC_TRACE_EVENT(sys_prctl, + TP_PROTO(int option, unsigned long arg2, unsigned long arg3, unsigned long arg4, unsigned long arg5), + TP_ARGS(option, arg2, arg3, arg4, arg5), + TP_STRUCT__entry(__field(int, option) __field(unsigned long, arg2) __field(unsigned long, arg3) __field(unsigned long, arg4) __field(unsigned long, arg5)), + TP_fast_assign(tp_assign(option, option) tp_assign(arg2, arg2) tp_assign(arg3, arg3) tp_assign(arg4, arg4) tp_assign(arg5, arg5)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_remap_file_pages +SC_TRACE_EVENT(sys_remap_file_pages, + TP_PROTO(unsigned long start, unsigned long size, unsigned long prot, unsigned long pgoff, unsigned long flags), + TP_ARGS(start, size, prot, pgoff, flags), + TP_STRUCT__entry(__field(unsigned long, start) __field(unsigned long, size) __field(unsigned long, prot) __field(unsigned long, pgoff) __field(unsigned long, flags)), + TP_fast_assign(tp_assign(start, start) tp_assign(size, size) tp_assign(prot, prot) tp_assign(pgoff, pgoff) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_keyctl +SC_TRACE_EVENT(sys_keyctl, + TP_PROTO(int option, unsigned long arg2, unsigned long arg3, unsigned long arg4, unsigned long arg5), + TP_ARGS(option, arg2, arg3, arg4, arg5), + TP_STRUCT__entry(__field(int, option) __field(unsigned long, arg2) __field(unsigned long, arg3) __field(unsigned long, arg4) __field(unsigned long, arg5)), + TP_fast_assign(tp_assign(option, option) tp_assign(arg2, arg2) tp_assign(arg3, arg3) tp_assign(arg4, arg4) tp_assign(arg5, arg5)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_mmap_pgoff +SC_TRACE_EVENT(sys_mmap_pgoff, + TP_PROTO(unsigned long addr, unsigned long len, unsigned long prot, unsigned long flags, unsigned long fd, unsigned long pgoff), + TP_ARGS(addr, len, prot, flags, fd, pgoff), + TP_STRUCT__entry(__field_hex(unsigned long, addr) __field(unsigned long, len) __field(unsigned long, prot) __field(unsigned long, flags) __field(unsigned long, fd) __field(unsigned long, pgoff)), + TP_fast_assign(tp_assign(addr, addr) tp_assign(len, len) tp_assign(prot, prot) tp_assign(flags, flags) tp_assign(fd, fd) tp_assign(pgoff, pgoff)), + TP_printk() +) +#endif + +#endif /* _TRACE_SYSCALLS_INTEGERS_H */ + +/* This part must be outside protection */ +#include "../../../probes/define_trace.h" + +#else /* CREATE_SYSCALL_TABLE */ + +#include "x86-32-syscalls-3.1.0-rc6_integers_override.h" +#include "syscalls_integers_override.h" + +#ifndef OVERRIDE_TABLE_32_sys_restart_syscall +TRACE_SYSCALL_TABLE(syscalls_noargs, sys_restart_syscall, 0, 0) +#endif +#ifndef OVERRIDE_TABLE_32_sys_getpid +TRACE_SYSCALL_TABLE(syscalls_noargs, sys_getpid, 20, 0) +#endif +#ifndef OVERRIDE_TABLE_32_sys_getuid16 +TRACE_SYSCALL_TABLE(syscalls_noargs, sys_getuid16, 24, 0) +#endif +#ifndef OVERRIDE_TABLE_32_sys_pause +TRACE_SYSCALL_TABLE(syscalls_noargs, sys_pause, 29, 0) +#endif +#ifndef OVERRIDE_TABLE_32_sys_sync +TRACE_SYSCALL_TABLE(syscalls_noargs, sys_sync, 36, 0) +#endif +#ifndef OVERRIDE_TABLE_32_sys_getgid16 +TRACE_SYSCALL_TABLE(syscalls_noargs, sys_getgid16, 47, 0) +#endif +#ifndef OVERRIDE_TABLE_32_sys_geteuid16 +TRACE_SYSCALL_TABLE(syscalls_noargs, sys_geteuid16, 49, 0) +#endif +#ifndef OVERRIDE_TABLE_32_sys_getegid16 +TRACE_SYSCALL_TABLE(syscalls_noargs, sys_getegid16, 50, 0) +#endif +#ifndef OVERRIDE_TABLE_32_sys_getppid +TRACE_SYSCALL_TABLE(syscalls_noargs, sys_getppid, 64, 0) +#endif +#ifndef OVERRIDE_TABLE_32_sys_getpgrp +TRACE_SYSCALL_TABLE(syscalls_noargs, sys_getpgrp, 65, 0) +#endif +#ifndef OVERRIDE_TABLE_32_sys_setsid +TRACE_SYSCALL_TABLE(syscalls_noargs, sys_setsid, 66, 0) +#endif +#ifndef OVERRIDE_TABLE_32_sys_sgetmask +TRACE_SYSCALL_TABLE(syscalls_noargs, sys_sgetmask, 68, 0) +#endif +#ifndef OVERRIDE_TABLE_32_sys_vhangup +TRACE_SYSCALL_TABLE(syscalls_noargs, sys_vhangup, 111, 0) +#endif +#ifndef OVERRIDE_TABLE_32_sys_munlockall +TRACE_SYSCALL_TABLE(syscalls_noargs, sys_munlockall, 153, 0) +#endif +#ifndef OVERRIDE_TABLE_32_sys_sched_yield +TRACE_SYSCALL_TABLE(syscalls_noargs, sys_sched_yield, 158, 0) +#endif +#ifndef OVERRIDE_TABLE_32_sys_getuid +TRACE_SYSCALL_TABLE(syscalls_noargs, sys_getuid, 199, 0) +#endif +#ifndef OVERRIDE_TABLE_32_sys_getgid +TRACE_SYSCALL_TABLE(syscalls_noargs, sys_getgid, 200, 0) +#endif +#ifndef OVERRIDE_TABLE_32_sys_geteuid +TRACE_SYSCALL_TABLE(syscalls_noargs, sys_geteuid, 201, 0) +#endif +#ifndef OVERRIDE_TABLE_32_sys_getegid +TRACE_SYSCALL_TABLE(syscalls_noargs, sys_getegid, 202, 0) +#endif +#ifndef OVERRIDE_TABLE_32_sys_gettid +TRACE_SYSCALL_TABLE(syscalls_noargs, sys_gettid, 224, 0) +#endif +#ifndef OVERRIDE_TABLE_32_sys_inotify_init +TRACE_SYSCALL_TABLE(syscalls_noargs, sys_inotify_init, 291, 0) +#endif +#ifndef OVERRIDE_TABLE_32_sys_exit +TRACE_SYSCALL_TABLE(sys_exit, sys_exit, 1, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_close +TRACE_SYSCALL_TABLE(sys_close, sys_close, 6, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_lseek +TRACE_SYSCALL_TABLE(sys_lseek, sys_lseek, 19, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_setuid16 +TRACE_SYSCALL_TABLE(sys_setuid16, sys_setuid16, 23, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_ptrace +TRACE_SYSCALL_TABLE(sys_ptrace, sys_ptrace, 26, 4) +#endif +#ifndef OVERRIDE_TABLE_32_sys_alarm +TRACE_SYSCALL_TABLE(sys_alarm, sys_alarm, 27, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_nice +TRACE_SYSCALL_TABLE(sys_nice, sys_nice, 34, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_kill +TRACE_SYSCALL_TABLE(sys_kill, sys_kill, 37, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_dup +TRACE_SYSCALL_TABLE(sys_dup, sys_dup, 41, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_brk +TRACE_SYSCALL_TABLE(sys_brk, sys_brk, 45, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_setgid16 +TRACE_SYSCALL_TABLE(sys_setgid16, sys_setgid16, 46, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_signal +TRACE_SYSCALL_TABLE(sys_signal, sys_signal, 48, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_ioctl +TRACE_SYSCALL_TABLE(sys_ioctl, sys_ioctl, 54, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_fcntl +TRACE_SYSCALL_TABLE(sys_fcntl, sys_fcntl, 55, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_setpgid +TRACE_SYSCALL_TABLE(sys_setpgid, sys_setpgid, 57, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_umask +TRACE_SYSCALL_TABLE(sys_umask, sys_umask, 60, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_dup2 +TRACE_SYSCALL_TABLE(sys_dup2, sys_dup2, 63, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_ssetmask +TRACE_SYSCALL_TABLE(sys_ssetmask, sys_ssetmask, 69, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_setreuid16 +TRACE_SYSCALL_TABLE(sys_setreuid16, sys_setreuid16, 70, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_setregid16 +TRACE_SYSCALL_TABLE(sys_setregid16, sys_setregid16, 71, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_munmap +TRACE_SYSCALL_TABLE(sys_munmap, sys_munmap, 91, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_ftruncate +TRACE_SYSCALL_TABLE(sys_ftruncate, sys_ftruncate, 93, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_fchmod +TRACE_SYSCALL_TABLE(sys_fchmod, sys_fchmod, 94, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_fchown16 +TRACE_SYSCALL_TABLE(sys_fchown16, sys_fchown16, 95, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_getpriority +TRACE_SYSCALL_TABLE(sys_getpriority, sys_getpriority, 96, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_setpriority +TRACE_SYSCALL_TABLE(sys_setpriority, sys_setpriority, 97, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_fsync +TRACE_SYSCALL_TABLE(sys_fsync, sys_fsync, 118, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_mprotect +TRACE_SYSCALL_TABLE(sys_mprotect, sys_mprotect, 125, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_getpgid +TRACE_SYSCALL_TABLE(sys_getpgid, sys_getpgid, 132, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_fchdir +TRACE_SYSCALL_TABLE(sys_fchdir, sys_fchdir, 133, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_bdflush +TRACE_SYSCALL_TABLE(sys_bdflush, sys_bdflush, 134, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_sysfs +TRACE_SYSCALL_TABLE(sys_sysfs, sys_sysfs, 135, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_personality +TRACE_SYSCALL_TABLE(sys_personality, sys_personality, 136, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_setfsuid16 +TRACE_SYSCALL_TABLE(sys_setfsuid16, sys_setfsuid16, 138, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_setfsgid16 +TRACE_SYSCALL_TABLE(sys_setfsgid16, sys_setfsgid16, 139, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_flock +TRACE_SYSCALL_TABLE(sys_flock, sys_flock, 143, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_msync +TRACE_SYSCALL_TABLE(sys_msync, sys_msync, 144, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_getsid +TRACE_SYSCALL_TABLE(sys_getsid, sys_getsid, 147, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_fdatasync +TRACE_SYSCALL_TABLE(sys_fdatasync, sys_fdatasync, 148, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_mlock +TRACE_SYSCALL_TABLE(sys_mlock, sys_mlock, 150, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_munlock +TRACE_SYSCALL_TABLE(sys_munlock, sys_munlock, 151, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_mlockall +TRACE_SYSCALL_TABLE(sys_mlockall, sys_mlockall, 152, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_sched_getscheduler +TRACE_SYSCALL_TABLE(sys_sched_getscheduler, sys_sched_getscheduler, 157, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_sched_get_priority_max +TRACE_SYSCALL_TABLE(sys_sched_get_priority_max, sys_sched_get_priority_max, 159, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_sched_get_priority_min +TRACE_SYSCALL_TABLE(sys_sched_get_priority_min, sys_sched_get_priority_min, 160, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_mremap +TRACE_SYSCALL_TABLE(sys_mremap, sys_mremap, 163, 5) +#endif +#ifndef OVERRIDE_TABLE_32_sys_setresuid16 +TRACE_SYSCALL_TABLE(sys_setresuid16, sys_setresuid16, 164, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_setresgid16 +TRACE_SYSCALL_TABLE(sys_setresgid16, sys_setresgid16, 170, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_prctl +TRACE_SYSCALL_TABLE(sys_prctl, sys_prctl, 172, 5) +#endif +#ifndef OVERRIDE_TABLE_32_sys_mmap_pgoff +TRACE_SYSCALL_TABLE(sys_mmap_pgoff, sys_mmap_pgoff, 192, 6) +#endif +#ifndef OVERRIDE_TABLE_32_sys_setreuid +TRACE_SYSCALL_TABLE(sys_setreuid, sys_setreuid, 203, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_setregid +TRACE_SYSCALL_TABLE(sys_setregid, sys_setregid, 204, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_fchown +TRACE_SYSCALL_TABLE(sys_fchown, sys_fchown, 207, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_setresuid +TRACE_SYSCALL_TABLE(sys_setresuid, sys_setresuid, 208, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_setresgid +TRACE_SYSCALL_TABLE(sys_setresgid, sys_setresgid, 210, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_setuid +TRACE_SYSCALL_TABLE(sys_setuid, sys_setuid, 213, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_setgid +TRACE_SYSCALL_TABLE(sys_setgid, sys_setgid, 214, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_setfsuid +TRACE_SYSCALL_TABLE(sys_setfsuid, sys_setfsuid, 215, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_setfsgid +TRACE_SYSCALL_TABLE(sys_setfsgid, sys_setfsgid, 216, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_madvise +TRACE_SYSCALL_TABLE(sys_madvise, sys_madvise, 219, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_fcntl64 +TRACE_SYSCALL_TABLE(sys_fcntl64, sys_fcntl64, 221, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_tkill +TRACE_SYSCALL_TABLE(sys_tkill, sys_tkill, 238, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_io_destroy +TRACE_SYSCALL_TABLE(sys_io_destroy, sys_io_destroy, 246, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_exit_group +TRACE_SYSCALL_TABLE(sys_exit_group, sys_exit_group, 252, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_epoll_create +TRACE_SYSCALL_TABLE(sys_epoll_create, sys_epoll_create, 254, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_remap_file_pages +TRACE_SYSCALL_TABLE(sys_remap_file_pages, sys_remap_file_pages, 257, 5) +#endif +#ifndef OVERRIDE_TABLE_32_sys_timer_getoverrun +TRACE_SYSCALL_TABLE(sys_timer_getoverrun, sys_timer_getoverrun, 262, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_timer_delete +TRACE_SYSCALL_TABLE(sys_timer_delete, sys_timer_delete, 263, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_tgkill +TRACE_SYSCALL_TABLE(sys_tgkill, sys_tgkill, 270, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_keyctl +TRACE_SYSCALL_TABLE(sys_keyctl, sys_keyctl, 288, 5) +#endif +#ifndef OVERRIDE_TABLE_32_sys_ioprio_set +TRACE_SYSCALL_TABLE(sys_ioprio_set, sys_ioprio_set, 289, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_ioprio_get +TRACE_SYSCALL_TABLE(sys_ioprio_get, sys_ioprio_get, 290, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_inotify_rm_watch +TRACE_SYSCALL_TABLE(sys_inotify_rm_watch, sys_inotify_rm_watch, 293, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_unshare +TRACE_SYSCALL_TABLE(sys_unshare, sys_unshare, 310, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_tee +TRACE_SYSCALL_TABLE(sys_tee, sys_tee, 315, 4) +#endif +#ifndef OVERRIDE_TABLE_32_sys_timerfd_create +TRACE_SYSCALL_TABLE(sys_timerfd_create, sys_timerfd_create, 322, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_eventfd +TRACE_SYSCALL_TABLE(sys_eventfd, sys_eventfd, 323, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_eventfd2 +TRACE_SYSCALL_TABLE(sys_eventfd2, sys_eventfd2, 328, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_epoll_create1 +TRACE_SYSCALL_TABLE(sys_epoll_create1, sys_epoll_create1, 329, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_dup3 +TRACE_SYSCALL_TABLE(sys_dup3, sys_dup3, 330, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_inotify_init1 +TRACE_SYSCALL_TABLE(sys_inotify_init1, sys_inotify_init1, 332, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_fanotify_init +TRACE_SYSCALL_TABLE(sys_fanotify_init, sys_fanotify_init, 338, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_syncfs +TRACE_SYSCALL_TABLE(sys_syncfs, sys_syncfs, 344, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_setns +TRACE_SYSCALL_TABLE(sys_setns, sys_setns, 346, 2) +#endif + +#endif /* CREATE_SYSCALL_TABLE */ --- linux-3.11.0.orig/ubuntu/lttng/instrumentation/syscalls/headers/mips-64-syscalls-3.5.0_integers.h +++ linux-3.11.0/ubuntu/lttng/instrumentation/syscalls/headers/mips-64-syscalls-3.5.0_integers.h @@ -0,0 +1,1163 @@ +/* THIS FILE IS AUTO-GENERATED. DO NOT EDIT */ +#ifndef CREATE_SYSCALL_TABLE + +#if !defined(_TRACE_SYSCALLS_INTEGERS_H) || defined(TRACE_HEADER_MULTI_READ) +#define _TRACE_SYSCALLS_INTEGERS_H + +#include +#include +#include "mips-64-syscalls-3.5.0_integers_override.h" +#include "syscalls_integers_override.h" + +SC_DECLARE_EVENT_CLASS_NOARGS(syscalls_noargs, + TP_STRUCT__entry(), + TP_fast_assign(), + TP_printk() +) +#ifndef OVERRIDE_64_sys_sgetmask +SC_DEFINE_EVENT_NOARGS(syscalls_noargs, sys_sgetmask) +#endif +#ifndef OVERRIDE_64_sys_sched_yield +SC_DEFINE_EVENT_NOARGS(syscalls_noargs, sys_sched_yield) +#endif +#ifndef OVERRIDE_64_sys_pause +SC_DEFINE_EVENT_NOARGS(syscalls_noargs, sys_pause) +#endif +#ifndef OVERRIDE_64_sys_getpid +SC_DEFINE_EVENT_NOARGS(syscalls_noargs, sys_getpid) +#endif +#ifndef OVERRIDE_64_sys_getuid +SC_DEFINE_EVENT_NOARGS(syscalls_noargs, sys_getuid) +#endif +#ifndef OVERRIDE_64_sys_getgid +SC_DEFINE_EVENT_NOARGS(syscalls_noargs, sys_getgid) +#endif +#ifndef OVERRIDE_64_sys_geteuid +SC_DEFINE_EVENT_NOARGS(syscalls_noargs, sys_geteuid) +#endif +#ifndef OVERRIDE_64_sys_getegid +SC_DEFINE_EVENT_NOARGS(syscalls_noargs, sys_getegid) +#endif +#ifndef OVERRIDE_64_sys_getppid +SC_DEFINE_EVENT_NOARGS(syscalls_noargs, sys_getppid) +#endif +#ifndef OVERRIDE_64_sys_getpgrp +SC_DEFINE_EVENT_NOARGS(syscalls_noargs, sys_getpgrp) +#endif +#ifndef OVERRIDE_64_sys_setsid +SC_DEFINE_EVENT_NOARGS(syscalls_noargs, sys_setsid) +#endif +#ifndef OVERRIDE_64_sys_munlockall +SC_DEFINE_EVENT_NOARGS(syscalls_noargs, sys_munlockall) +#endif +#ifndef OVERRIDE_64_sys_vhangup +SC_DEFINE_EVENT_NOARGS(syscalls_noargs, sys_vhangup) +#endif +#ifndef OVERRIDE_64_sys_sync +SC_DEFINE_EVENT_NOARGS(syscalls_noargs, sys_sync) +#endif +#ifndef OVERRIDE_64_sys_gettid +SC_DEFINE_EVENT_NOARGS(syscalls_noargs, sys_gettid) +#endif +#ifndef OVERRIDE_64_sys_restart_syscall +SC_DEFINE_EVENT_NOARGS(syscalls_noargs, sys_restart_syscall) +#endif +#ifndef OVERRIDE_64_sys_inotify_init +SC_DEFINE_EVENT_NOARGS(syscalls_noargs, sys_inotify_init) +#endif +#ifndef OVERRIDE_64_sys_nice +SC_TRACE_EVENT(sys_nice, + TP_PROTO(int increment), + TP_ARGS(increment), + TP_STRUCT__entry(__field(int, increment)), + TP_fast_assign(tp_assign(increment, increment)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_ssetmask +SC_TRACE_EVENT(sys_ssetmask, + TP_PROTO(int newmask), + TP_ARGS(newmask), + TP_STRUCT__entry(__field(int, newmask)), + TP_fast_assign(tp_assign(newmask, newmask)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_personality +SC_TRACE_EVENT(sys_personality, + TP_PROTO(unsigned int personality), + TP_ARGS(personality), + TP_STRUCT__entry(__field(unsigned int, personality)), + TP_fast_assign(tp_assign(personality, personality)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_close +SC_TRACE_EVENT(sys_close, + TP_PROTO(unsigned int fd), + TP_ARGS(fd), + TP_STRUCT__entry(__field(unsigned int, fd)), + TP_fast_assign(tp_assign(fd, fd)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_brk +SC_TRACE_EVENT(sys_brk, + TP_PROTO(unsigned long brk), + TP_ARGS(brk), + TP_STRUCT__entry(__field(unsigned long, brk)), + TP_fast_assign(tp_assign(brk, brk)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_dup +SC_TRACE_EVENT(sys_dup, + TP_PROTO(unsigned int fildes), + TP_ARGS(fildes), + TP_STRUCT__entry(__field(unsigned int, fildes)), + TP_fast_assign(tp_assign(fildes, fildes)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_alarm +SC_TRACE_EVENT(sys_alarm, + TP_PROTO(unsigned int seconds), + TP_ARGS(seconds), + TP_STRUCT__entry(__field(unsigned int, seconds)), + TP_fast_assign(tp_assign(seconds, seconds)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_exit +SC_TRACE_EVENT(sys_exit, + TP_PROTO(int error_code), + TP_ARGS(error_code), + TP_STRUCT__entry(__field(int, error_code)), + TP_fast_assign(tp_assign(error_code, error_code)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_fsync +SC_TRACE_EVENT(sys_fsync, + TP_PROTO(unsigned int fd), + TP_ARGS(fd), + TP_STRUCT__entry(__field(unsigned int, fd)), + TP_fast_assign(tp_assign(fd, fd)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_fdatasync +SC_TRACE_EVENT(sys_fdatasync, + TP_PROTO(unsigned int fd), + TP_ARGS(fd), + TP_STRUCT__entry(__field(unsigned int, fd)), + TP_fast_assign(tp_assign(fd, fd)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_fchdir +SC_TRACE_EVENT(sys_fchdir, + TP_PROTO(unsigned int fd), + TP_ARGS(fd), + TP_STRUCT__entry(__field(unsigned int, fd)), + TP_fast_assign(tp_assign(fd, fd)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_umask +SC_TRACE_EVENT(sys_umask, + TP_PROTO(int mask), + TP_ARGS(mask), + TP_STRUCT__entry(__field(int, mask)), + TP_fast_assign(tp_assign(mask, mask)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_setuid +SC_TRACE_EVENT(sys_setuid, + TP_PROTO(uid_t uid), + TP_ARGS(uid), + TP_STRUCT__entry(__field(uid_t, uid)), + TP_fast_assign(tp_assign(uid, uid)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_setgid +SC_TRACE_EVENT(sys_setgid, + TP_PROTO(gid_t gid), + TP_ARGS(gid), + TP_STRUCT__entry(__field(gid_t, gid)), + TP_fast_assign(tp_assign(gid, gid)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_getpgid +SC_TRACE_EVENT(sys_getpgid, + TP_PROTO(pid_t pid), + TP_ARGS(pid), + TP_STRUCT__entry(__field(pid_t, pid)), + TP_fast_assign(tp_assign(pid, pid)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_setfsuid +SC_TRACE_EVENT(sys_setfsuid, + TP_PROTO(uid_t uid), + TP_ARGS(uid), + TP_STRUCT__entry(__field(uid_t, uid)), + TP_fast_assign(tp_assign(uid, uid)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_setfsgid +SC_TRACE_EVENT(sys_setfsgid, + TP_PROTO(gid_t gid), + TP_ARGS(gid), + TP_STRUCT__entry(__field(gid_t, gid)), + TP_fast_assign(tp_assign(gid, gid)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_getsid +SC_TRACE_EVENT(sys_getsid, + TP_PROTO(pid_t pid), + TP_ARGS(pid), + TP_STRUCT__entry(__field(pid_t, pid)), + TP_fast_assign(tp_assign(pid, pid)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_32_personality +SC_TRACE_EVENT(sys_32_personality, + TP_PROTO(unsigned long personality), + TP_ARGS(personality), + TP_STRUCT__entry(__field(unsigned long, personality)), + TP_fast_assign(tp_assign(personality, personality)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_sched_getscheduler +SC_TRACE_EVENT(sys_sched_getscheduler, + TP_PROTO(pid_t pid), + TP_ARGS(pid), + TP_STRUCT__entry(__field(pid_t, pid)), + TP_fast_assign(tp_assign(pid, pid)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_sched_get_priority_max +SC_TRACE_EVENT(sys_sched_get_priority_max, + TP_PROTO(int policy), + TP_ARGS(policy), + TP_STRUCT__entry(__field(int, policy)), + TP_fast_assign(tp_assign(policy, policy)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_sched_get_priority_min +SC_TRACE_EVENT(sys_sched_get_priority_min, + TP_PROTO(int policy), + TP_ARGS(policy), + TP_STRUCT__entry(__field(int, policy)), + TP_fast_assign(tp_assign(policy, policy)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_mlockall +SC_TRACE_EVENT(sys_mlockall, + TP_PROTO(int flags), + TP_ARGS(flags), + TP_STRUCT__entry(__field(int, flags)), + TP_fast_assign(tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_io_destroy +SC_TRACE_EVENT(sys_io_destroy, + TP_PROTO(aio_context_t ctx), + TP_ARGS(ctx), + TP_STRUCT__entry(__field(aio_context_t, ctx)), + TP_fast_assign(tp_assign(ctx, ctx)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_exit_group +SC_TRACE_EVENT(sys_exit_group, + TP_PROTO(int error_code), + TP_ARGS(error_code), + TP_STRUCT__entry(__field(int, error_code)), + TP_fast_assign(tp_assign(error_code, error_code)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_epoll_create +SC_TRACE_EVENT(sys_epoll_create, + TP_PROTO(int size), + TP_ARGS(size), + TP_STRUCT__entry(__field(int, size)), + TP_fast_assign(tp_assign(size, size)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_timer_getoverrun +SC_TRACE_EVENT(sys_timer_getoverrun, + TP_PROTO(timer_t timer_id), + TP_ARGS(timer_id), + TP_STRUCT__entry(__field(timer_t, timer_id)), + TP_fast_assign(tp_assign(timer_id, timer_id)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_timer_delete +SC_TRACE_EVENT(sys_timer_delete, + TP_PROTO(timer_t timer_id), + TP_ARGS(timer_id), + TP_STRUCT__entry(__field(timer_t, timer_id)), + TP_fast_assign(tp_assign(timer_id, timer_id)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_set_thread_area +SC_TRACE_EVENT(sys_set_thread_area, + TP_PROTO(unsigned long addr), + TP_ARGS(addr), + TP_STRUCT__entry(__field_hex(unsigned long, addr)), + TP_fast_assign(tp_assign(addr, addr)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_unshare +SC_TRACE_EVENT(sys_unshare, + TP_PROTO(unsigned long unshare_flags), + TP_ARGS(unshare_flags), + TP_STRUCT__entry(__field(unsigned long, unshare_flags)), + TP_fast_assign(tp_assign(unshare_flags, unshare_flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_eventfd +SC_TRACE_EVENT(sys_eventfd, + TP_PROTO(unsigned int count), + TP_ARGS(count), + TP_STRUCT__entry(__field(unsigned int, count)), + TP_fast_assign(tp_assign(count, count)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_epoll_create1 +SC_TRACE_EVENT(sys_epoll_create1, + TP_PROTO(int flags), + TP_ARGS(flags), + TP_STRUCT__entry(__field(int, flags)), + TP_fast_assign(tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_inotify_init1 +SC_TRACE_EVENT(sys_inotify_init1, + TP_PROTO(int flags), + TP_ARGS(flags), + TP_STRUCT__entry(__field(int, flags)), + TP_fast_assign(tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_syncfs +SC_TRACE_EVENT(sys_syncfs, + TP_PROTO(int fd), + TP_ARGS(fd), + TP_STRUCT__entry(__field(int, fd)), + TP_fast_assign(tp_assign(fd, fd)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_bdflush +SC_TRACE_EVENT(sys_bdflush, + TP_PROTO(int func, long data), + TP_ARGS(func, data), + TP_STRUCT__entry(__field(int, func) __field(long, data)), + TP_fast_assign(tp_assign(func, func) tp_assign(data, data)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_munmap +SC_TRACE_EVENT(sys_munmap, + TP_PROTO(unsigned long addr, size_t len), + TP_ARGS(addr, len), + TP_STRUCT__entry(__field_hex(unsigned long, addr) __field(size_t, len)), + TP_fast_assign(tp_assign(addr, addr) tp_assign(len, len)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_dup2 +SC_TRACE_EVENT(sys_dup2, + TP_PROTO(unsigned int oldfd, unsigned int newfd), + TP_ARGS(oldfd, newfd), + TP_STRUCT__entry(__field(unsigned int, oldfd) __field(unsigned int, newfd)), + TP_fast_assign(tp_assign(oldfd, oldfd) tp_assign(newfd, newfd)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_shutdown +SC_TRACE_EVENT(sys_shutdown, + TP_PROTO(int fd, int how), + TP_ARGS(fd, how), + TP_STRUCT__entry(__field(int, fd) __field(int, how)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(how, how)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_listen +SC_TRACE_EVENT(sys_listen, + TP_PROTO(int fd, int backlog), + TP_ARGS(fd, backlog), + TP_STRUCT__entry(__field(int, fd) __field(int, backlog)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(backlog, backlog)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_kill +SC_TRACE_EVENT(sys_kill, + TP_PROTO(pid_t pid, int sig), + TP_ARGS(pid, sig), + TP_STRUCT__entry(__field(pid_t, pid) __field(int, sig)), + TP_fast_assign(tp_assign(pid, pid) tp_assign(sig, sig)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_msgget +SC_TRACE_EVENT(sys_msgget, + TP_PROTO(key_t key, int msgflg), + TP_ARGS(key, msgflg), + TP_STRUCT__entry(__field(key_t, key) __field(int, msgflg)), + TP_fast_assign(tp_assign(key, key) tp_assign(msgflg, msgflg)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_flock +SC_TRACE_EVENT(sys_flock, + TP_PROTO(unsigned int fd, unsigned int cmd), + TP_ARGS(fd, cmd), + TP_STRUCT__entry(__field(unsigned int, fd) __field(unsigned int, cmd)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(cmd, cmd)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_ftruncate +SC_TRACE_EVENT(sys_ftruncate, + TP_PROTO(unsigned int fd, unsigned long length), + TP_ARGS(fd, length), + TP_STRUCT__entry(__field(unsigned int, fd) __field(unsigned long, length)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(length, length)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_fchmod +SC_TRACE_EVENT(sys_fchmod, + TP_PROTO(unsigned int fd, umode_t mode), + TP_ARGS(fd, mode), + TP_STRUCT__entry(__field(unsigned int, fd) __field(umode_t, mode)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(mode, mode)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_setpgid +SC_TRACE_EVENT(sys_setpgid, + TP_PROTO(pid_t pid, pid_t pgid), + TP_ARGS(pid, pgid), + TP_STRUCT__entry(__field(pid_t, pid) __field(pid_t, pgid)), + TP_fast_assign(tp_assign(pid, pid) tp_assign(pgid, pgid)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_setreuid +SC_TRACE_EVENT(sys_setreuid, + TP_PROTO(uid_t ruid, uid_t euid), + TP_ARGS(ruid, euid), + TP_STRUCT__entry(__field(uid_t, ruid) __field(uid_t, euid)), + TP_fast_assign(tp_assign(ruid, ruid) tp_assign(euid, euid)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_setregid +SC_TRACE_EVENT(sys_setregid, + TP_PROTO(gid_t rgid, gid_t egid), + TP_ARGS(rgid, egid), + TP_STRUCT__entry(__field(gid_t, rgid) __field(gid_t, egid)), + TP_fast_assign(tp_assign(rgid, rgid) tp_assign(egid, egid)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_getpriority +SC_TRACE_EVENT(sys_getpriority, + TP_PROTO(int which, int who), + TP_ARGS(which, who), + TP_STRUCT__entry(__field(int, which) __field(int, who)), + TP_fast_assign(tp_assign(which, which) tp_assign(who, who)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_mlock +SC_TRACE_EVENT(sys_mlock, + TP_PROTO(unsigned long start, size_t len), + TP_ARGS(start, len), + TP_STRUCT__entry(__field(unsigned long, start) __field(size_t, len)), + TP_fast_assign(tp_assign(start, start) tp_assign(len, len)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_munlock +SC_TRACE_EVENT(sys_munlock, + TP_PROTO(unsigned long start, size_t len), + TP_ARGS(start, len), + TP_STRUCT__entry(__field(unsigned long, start) __field(size_t, len)), + TP_fast_assign(tp_assign(start, start) tp_assign(len, len)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_tkill +SC_TRACE_EVENT(sys_tkill, + TP_PROTO(pid_t pid, int sig), + TP_ARGS(pid, sig), + TP_STRUCT__entry(__field(pid_t, pid) __field(int, sig)), + TP_fast_assign(tp_assign(pid, pid) tp_assign(sig, sig)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_inotify_rm_watch +SC_TRACE_EVENT(sys_inotify_rm_watch, + TP_PROTO(int fd, __s32 wd), + TP_ARGS(fd, wd), + TP_STRUCT__entry(__field(int, fd) __field(__s32, wd)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(wd, wd)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_ioprio_get +SC_TRACE_EVENT(sys_ioprio_get, + TP_PROTO(int which, int who), + TP_ARGS(which, who), + TP_STRUCT__entry(__field(int, which) __field(int, who)), + TP_fast_assign(tp_assign(which, which) tp_assign(who, who)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_timerfd_create +SC_TRACE_EVENT(sys_timerfd_create, + TP_PROTO(int clockid, int flags), + TP_ARGS(clockid, flags), + TP_STRUCT__entry(__field(int, clockid) __field(int, flags)), + TP_fast_assign(tp_assign(clockid, clockid) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_eventfd2 +SC_TRACE_EVENT(sys_eventfd2, + TP_PROTO(unsigned int count, int flags), + TP_ARGS(count, flags), + TP_STRUCT__entry(__field(unsigned int, count) __field(int, flags)), + TP_fast_assign(tp_assign(count, count) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_setns +SC_TRACE_EVENT(sys_setns, + TP_PROTO(int fd, int nstype), + TP_ARGS(fd, nstype), + TP_STRUCT__entry(__field(int, fd) __field(int, nstype)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(nstype, nstype)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_ioctl +SC_TRACE_EVENT(sys_ioctl, + TP_PROTO(unsigned int fd, unsigned int cmd, unsigned long arg), + TP_ARGS(fd, cmd, arg), + TP_STRUCT__entry(__field(unsigned int, fd) __field(unsigned int, cmd) __field(unsigned long, arg)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(cmd, cmd) tp_assign(arg, arg)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_fcntl +SC_TRACE_EVENT(sys_fcntl, + TP_PROTO(unsigned int fd, unsigned int cmd, unsigned long arg), + TP_ARGS(fd, cmd, arg), + TP_STRUCT__entry(__field(unsigned int, fd) __field(unsigned int, cmd) __field(unsigned long, arg)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(cmd, cmd) tp_assign(arg, arg)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_lseek +SC_TRACE_EVENT(sys_lseek, + TP_PROTO(unsigned int fd, off_t offset, unsigned int origin), + TP_ARGS(fd, offset, origin), + TP_STRUCT__entry(__field(unsigned int, fd) __field(off_t, offset) __field(unsigned int, origin)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(offset, offset) tp_assign(origin, origin)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_mprotect +SC_TRACE_EVENT(sys_mprotect, + TP_PROTO(unsigned long start, size_t len, unsigned long prot), + TP_ARGS(start, len, prot), + TP_STRUCT__entry(__field(unsigned long, start) __field(size_t, len) __field(unsigned long, prot)), + TP_fast_assign(tp_assign(start, start) tp_assign(len, len) tp_assign(prot, prot)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_msync +SC_TRACE_EVENT(sys_msync, + TP_PROTO(unsigned long start, size_t len, int flags), + TP_ARGS(start, len, flags), + TP_STRUCT__entry(__field(unsigned long, start) __field(size_t, len) __field(int, flags)), + TP_fast_assign(tp_assign(start, start) tp_assign(len, len) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_madvise +SC_TRACE_EVENT(sys_madvise, + TP_PROTO(unsigned long start, size_t len_in, int behavior), + TP_ARGS(start, len_in, behavior), + TP_STRUCT__entry(__field(unsigned long, start) __field(size_t, len_in) __field(int, behavior)), + TP_fast_assign(tp_assign(start, start) tp_assign(len_in, len_in) tp_assign(behavior, behavior)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_shmget +SC_TRACE_EVENT(sys_shmget, + TP_PROTO(key_t key, size_t size, int shmflg), + TP_ARGS(key, size, shmflg), + TP_STRUCT__entry(__field(key_t, key) __field(size_t, size) __field(int, shmflg)), + TP_fast_assign(tp_assign(key, key) tp_assign(size, size) tp_assign(shmflg, shmflg)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_socket +SC_TRACE_EVENT(sys_socket, + TP_PROTO(int family, int type, int protocol), + TP_ARGS(family, type, protocol), + TP_STRUCT__entry(__field(int, family) __field(int, type) __field(int, protocol)), + TP_fast_assign(tp_assign(family, family) tp_assign(type, type) tp_assign(protocol, protocol)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_semget +SC_TRACE_EVENT(sys_semget, + TP_PROTO(key_t key, int nsems, int semflg), + TP_ARGS(key, nsems, semflg), + TP_STRUCT__entry(__field(key_t, key) __field(int, nsems) __field(int, semflg)), + TP_fast_assign(tp_assign(key, key) tp_assign(nsems, nsems) tp_assign(semflg, semflg)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_fchown +SC_TRACE_EVENT(sys_fchown, + TP_PROTO(unsigned int fd, uid_t user, gid_t group), + TP_ARGS(fd, user, group), + TP_STRUCT__entry(__field(unsigned int, fd) __field(uid_t, user) __field(gid_t, group)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(user, user) tp_assign(group, group)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_setresuid +SC_TRACE_EVENT(sys_setresuid, + TP_PROTO(uid_t ruid, uid_t euid, uid_t suid), + TP_ARGS(ruid, euid, suid), + TP_STRUCT__entry(__field(uid_t, ruid) __field(uid_t, euid) __field(uid_t, suid)), + TP_fast_assign(tp_assign(ruid, ruid) tp_assign(euid, euid) tp_assign(suid, suid)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_setresgid +SC_TRACE_EVENT(sys_setresgid, + TP_PROTO(gid_t rgid, gid_t egid, gid_t sgid), + TP_ARGS(rgid, egid, sgid), + TP_STRUCT__entry(__field(gid_t, rgid) __field(gid_t, egid) __field(gid_t, sgid)), + TP_fast_assign(tp_assign(rgid, rgid) tp_assign(egid, egid) tp_assign(sgid, sgid)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_sysfs +SC_TRACE_EVENT(sys_sysfs, + TP_PROTO(int option, unsigned long arg1, unsigned long arg2), + TP_ARGS(option, arg1, arg2), + TP_STRUCT__entry(__field(int, option) __field(unsigned long, arg1) __field(unsigned long, arg2)), + TP_fast_assign(tp_assign(option, option) tp_assign(arg1, arg1) tp_assign(arg2, arg2)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_setpriority +SC_TRACE_EVENT(sys_setpriority, + TP_PROTO(int which, int who, int niceval), + TP_ARGS(which, who, niceval), + TP_STRUCT__entry(__field(int, which) __field(int, who) __field(int, niceval)), + TP_fast_assign(tp_assign(which, which) tp_assign(who, who) tp_assign(niceval, niceval)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_cacheflush +SC_TRACE_EVENT(sys_cacheflush, + TP_PROTO(unsigned long addr, unsigned long bytes, unsigned int cache), + TP_ARGS(addr, bytes, cache), + TP_STRUCT__entry(__field_hex(unsigned long, addr) __field(unsigned long, bytes) __field(unsigned int, cache)), + TP_fast_assign(tp_assign(addr, addr) tp_assign(bytes, bytes) tp_assign(cache, cache)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_tgkill +SC_TRACE_EVENT(sys_tgkill, + TP_PROTO(pid_t tgid, pid_t pid, int sig), + TP_ARGS(tgid, pid, sig), + TP_STRUCT__entry(__field(pid_t, tgid) __field(pid_t, pid) __field(int, sig)), + TP_fast_assign(tp_assign(tgid, tgid) tp_assign(pid, pid) tp_assign(sig, sig)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_ioprio_set +SC_TRACE_EVENT(sys_ioprio_set, + TP_PROTO(int which, int who, int ioprio), + TP_ARGS(which, who, ioprio), + TP_STRUCT__entry(__field(int, which) __field(int, who) __field(int, ioprio)), + TP_fast_assign(tp_assign(which, which) tp_assign(who, who) tp_assign(ioprio, ioprio)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_dup3 +SC_TRACE_EVENT(sys_dup3, + TP_PROTO(unsigned int oldfd, unsigned int newfd, int flags), + TP_ARGS(oldfd, newfd, flags), + TP_STRUCT__entry(__field(unsigned int, oldfd) __field(unsigned int, newfd) __field(int, flags)), + TP_fast_assign(tp_assign(oldfd, oldfd) tp_assign(newfd, newfd) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_32_ftruncate64 +SC_TRACE_EVENT(sys_32_ftruncate64, + TP_PROTO(unsigned long fd, unsigned long __dummy, unsigned long a2, unsigned long a3), + TP_ARGS(fd, __dummy, a2, a3), + TP_STRUCT__entry(__field(unsigned long, fd) __field(unsigned long, __dummy) __field(unsigned long, a2) __field(unsigned long, a3)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(__dummy, __dummy) tp_assign(a2, a2) tp_assign(a3, a3)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_ptrace +SC_TRACE_EVENT(sys_ptrace, + TP_PROTO(long request, long pid, unsigned long addr, unsigned long data), + TP_ARGS(request, pid, addr, data), + TP_STRUCT__entry(__field(long, request) __field(long, pid) __field_hex(unsigned long, addr) __field(unsigned long, data)), + TP_fast_assign(tp_assign(request, request) tp_assign(pid, pid) tp_assign(addr, addr) tp_assign(data, data)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_n32_semctl +SC_TRACE_EVENT(sys_n32_semctl, + TP_PROTO(int semid, int semnum, int cmd, u32 arg), + TP_ARGS(semid, semnum, cmd, arg), + TP_STRUCT__entry(__field(int, semid) __field(int, semnum) __field(int, cmd) __field(u32, arg)), + TP_fast_assign(tp_assign(semid, semid) tp_assign(semnum, semnum) tp_assign(cmd, cmd) tp_assign(arg, arg)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_n32_msgsnd +SC_TRACE_EVENT(sys_n32_msgsnd, + TP_PROTO(int msqid, u32 msgp, unsigned int msgsz, int msgflg), + TP_ARGS(msqid, msgp, msgsz, msgflg), + TP_STRUCT__entry(__field(int, msqid) __field(u32, msgp) __field(unsigned int, msgsz) __field(int, msgflg)), + TP_fast_assign(tp_assign(msqid, msqid) tp_assign(msgp, msgp) tp_assign(msgsz, msgsz) tp_assign(msgflg, msgflg)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_tee +SC_TRACE_EVENT(sys_tee, + TP_PROTO(int fdin, int fdout, size_t len, unsigned int flags), + TP_ARGS(fdin, fdout, len, flags), + TP_STRUCT__entry(__field(int, fdin) __field(int, fdout) __field(size_t, len) __field(unsigned int, flags)), + TP_fast_assign(tp_assign(fdin, fdin) tp_assign(fdout, fdout) tp_assign(len, len) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_mremap +SC_TRACE_EVENT(sys_mremap, + TP_PROTO(unsigned long addr, unsigned long old_len, unsigned long new_len, unsigned long flags, unsigned long new_addr), + TP_ARGS(addr, old_len, new_len, flags, new_addr), + TP_STRUCT__entry(__field_hex(unsigned long, addr) __field(unsigned long, old_len) __field(unsigned long, new_len) __field(unsigned long, flags) __field_hex(unsigned long, new_addr)), + TP_fast_assign(tp_assign(addr, addr) tp_assign(old_len, old_len) tp_assign(new_len, new_len) tp_assign(flags, flags) tp_assign(new_addr, new_addr)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_n32_msgrcv +SC_TRACE_EVENT(sys_n32_msgrcv, + TP_PROTO(int msqid, u32 msgp, size_t msgsz, int msgtyp, int msgflg), + TP_ARGS(msqid, msgp, msgsz, msgtyp, msgflg), + TP_STRUCT__entry(__field(int, msqid) __field(u32, msgp) __field(size_t, msgsz) __field(int, msgtyp) __field(int, msgflg)), + TP_fast_assign(tp_assign(msqid, msqid) tp_assign(msgp, msgp) tp_assign(msgsz, msgsz) tp_assign(msgtyp, msgtyp) tp_assign(msgflg, msgflg)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_prctl +SC_TRACE_EVENT(sys_prctl, + TP_PROTO(int option, unsigned long arg2, unsigned long arg3, unsigned long arg4, unsigned long arg5), + TP_ARGS(option, arg2, arg3, arg4, arg5), + TP_STRUCT__entry(__field(int, option) __field(unsigned long, arg2) __field(unsigned long, arg3) __field(unsigned long, arg4) __field(unsigned long, arg5)), + TP_fast_assign(tp_assign(option, option) tp_assign(arg2, arg2) tp_assign(arg3, arg3) tp_assign(arg4, arg4) tp_assign(arg5, arg5)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_remap_file_pages +SC_TRACE_EVENT(sys_remap_file_pages, + TP_PROTO(unsigned long start, unsigned long size, unsigned long prot, unsigned long pgoff, unsigned long flags), + TP_ARGS(start, size, prot, pgoff, flags), + TP_STRUCT__entry(__field(unsigned long, start) __field(unsigned long, size) __field(unsigned long, prot) __field(unsigned long, pgoff) __field(unsigned long, flags)), + TP_fast_assign(tp_assign(start, start) tp_assign(size, size) tp_assign(prot, prot) tp_assign(pgoff, pgoff) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_32_ipc +SC_TRACE_EVENT(sys_32_ipc, + TP_PROTO(u32 call, long first, long second, long third, unsigned long ptr, unsigned long fifth), + TP_ARGS(call, first, second, third, ptr, fifth), + TP_STRUCT__entry(__field(u32, call) __field(long, first) __field(long, second) __field(long, third) __field_hex(unsigned long, ptr) __field(unsigned long, fifth)), + TP_fast_assign(tp_assign(call, call) tp_assign(first, first) tp_assign(second, second) tp_assign(third, third) tp_assign(ptr, ptr) tp_assign(fifth, fifth)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_mips_mmap2 +SC_TRACE_EVENT(sys_mips_mmap2, + TP_PROTO(unsigned long addr, unsigned long len, unsigned long prot, unsigned long flags, unsigned long fd, unsigned long pgoff), + TP_ARGS(addr, len, prot, flags, fd, pgoff), + TP_STRUCT__entry(__field_hex(unsigned long, addr) __field(unsigned long, len) __field(unsigned long, prot) __field(unsigned long, flags) __field(unsigned long, fd) __field(unsigned long, pgoff)), + TP_fast_assign(tp_assign(addr, addr) tp_assign(len, len) tp_assign(prot, prot) tp_assign(flags, flags) tp_assign(fd, fd) tp_assign(pgoff, pgoff)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_mips_mmap +SC_TRACE_EVENT(sys_mips_mmap, + TP_PROTO(unsigned long addr, unsigned long len, unsigned long prot, unsigned long flags, unsigned long fd, off_t offset), + TP_ARGS(addr, len, prot, flags, fd, offset), + TP_STRUCT__entry(__field_hex(unsigned long, addr) __field(unsigned long, len) __field(unsigned long, prot) __field(unsigned long, flags) __field(unsigned long, fd) __field(off_t, offset)), + TP_fast_assign(tp_assign(addr, addr) tp_assign(len, len) tp_assign(prot, prot) tp_assign(flags, flags) tp_assign(fd, fd) tp_assign(offset, offset)), + TP_printk() +) +#endif + +#endif /* _TRACE_SYSCALLS_INTEGERS_H */ + +/* This part must be outside protection */ +#include "../../../probes/define_trace.h" + +#else /* CREATE_SYSCALL_TABLE */ + +#include "mips-64-syscalls-3.5.0_integers_override.h" +#include "syscalls_integers_override.h" + +#ifndef OVERRIDE_TABLE_64_sys_sgetmask +TRACE_SYSCALL_TABLE(syscalls_noargs, sys_sgetmask, 4068, 0) +#endif +#ifndef OVERRIDE_TABLE_64_sys_sched_yield +TRACE_SYSCALL_TABLE(syscalls_noargs, sys_sched_yield, 6023, 0) +#endif +#ifndef OVERRIDE_TABLE_64_sys_pause +TRACE_SYSCALL_TABLE(syscalls_noargs, sys_pause, 6033, 0) +#endif +#ifndef OVERRIDE_TABLE_64_sys_getpid +TRACE_SYSCALL_TABLE(syscalls_noargs, sys_getpid, 6038, 0) +#endif +#ifndef OVERRIDE_TABLE_64_sys_getuid +TRACE_SYSCALL_TABLE(syscalls_noargs, sys_getuid, 6100, 0) +#endif +#ifndef OVERRIDE_TABLE_64_sys_getgid +TRACE_SYSCALL_TABLE(syscalls_noargs, sys_getgid, 6102, 0) +#endif +#ifndef OVERRIDE_TABLE_64_sys_geteuid +TRACE_SYSCALL_TABLE(syscalls_noargs, sys_geteuid, 6105, 0) +#endif +#ifndef OVERRIDE_TABLE_64_sys_getegid +TRACE_SYSCALL_TABLE(syscalls_noargs, sys_getegid, 6106, 0) +#endif +#ifndef OVERRIDE_TABLE_64_sys_getppid +TRACE_SYSCALL_TABLE(syscalls_noargs, sys_getppid, 6108, 0) +#endif +#ifndef OVERRIDE_TABLE_64_sys_getpgrp +TRACE_SYSCALL_TABLE(syscalls_noargs, sys_getpgrp, 6109, 0) +#endif +#ifndef OVERRIDE_TABLE_64_sys_setsid +TRACE_SYSCALL_TABLE(syscalls_noargs, sys_setsid, 6110, 0) +#endif +#ifndef OVERRIDE_TABLE_64_sys_munlockall +TRACE_SYSCALL_TABLE(syscalls_noargs, sys_munlockall, 6149, 0) +#endif +#ifndef OVERRIDE_TABLE_64_sys_vhangup +TRACE_SYSCALL_TABLE(syscalls_noargs, sys_vhangup, 6150, 0) +#endif +#ifndef OVERRIDE_TABLE_64_sys_sync +TRACE_SYSCALL_TABLE(syscalls_noargs, sys_sync, 6157, 0) +#endif +#ifndef OVERRIDE_TABLE_64_sys_gettid +TRACE_SYSCALL_TABLE(syscalls_noargs, sys_gettid, 6178, 0) +#endif +#ifndef OVERRIDE_TABLE_64_sys_restart_syscall +TRACE_SYSCALL_TABLE(syscalls_noargs, sys_restart_syscall, 6214, 0) +#endif +#ifndef OVERRIDE_TABLE_64_sys_inotify_init +TRACE_SYSCALL_TABLE(syscalls_noargs, sys_inotify_init, 6247, 0) +#endif +#ifndef OVERRIDE_TABLE_64_sys_nice +TRACE_SYSCALL_TABLE(sys_nice, sys_nice, 4034, 1) +#endif +#ifndef OVERRIDE_TABLE_64_sys_ssetmask +TRACE_SYSCALL_TABLE(sys_ssetmask, sys_ssetmask, 4069, 1) +#endif +#ifndef OVERRIDE_TABLE_64_sys_32_ipc +TRACE_SYSCALL_TABLE(sys_32_ipc, sys_32_ipc, 4117, 6) +#endif +#ifndef OVERRIDE_TABLE_64_sys_bdflush +TRACE_SYSCALL_TABLE(sys_bdflush, sys_bdflush, 4134, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_mips_mmap2 +TRACE_SYSCALL_TABLE(sys_mips_mmap2, sys_mips_mmap2, 4210, 6) +#endif +#ifndef OVERRIDE_TABLE_64_sys_32_ftruncate64 +TRACE_SYSCALL_TABLE(sys_32_ftruncate64, sys_32_ftruncate64, 4212, 4) +#endif +#ifndef OVERRIDE_TABLE_64_sys_ioctl +TRACE_SYSCALL_TABLE(sys_ioctl, sys_ioctl, 5015, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_fcntl +TRACE_SYSCALL_TABLE(sys_fcntl, sys_fcntl, 5070, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_ptrace +TRACE_SYSCALL_TABLE(sys_ptrace, sys_ptrace, 5099, 4) +#endif +#ifndef OVERRIDE_TABLE_64_sys_personality +TRACE_SYSCALL_TABLE(sys_personality, sys_personality, 5132, 1) +#endif +#ifndef OVERRIDE_TABLE_64_sys_close +TRACE_SYSCALL_TABLE(sys_close, sys_close, 6003, 1) +#endif +#ifndef OVERRIDE_TABLE_64_sys_lseek +TRACE_SYSCALL_TABLE(sys_lseek, sys_lseek, 6008, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_mips_mmap +TRACE_SYSCALL_TABLE(sys_mips_mmap, sys_mips_mmap, 6009, 6) +#endif +#ifndef OVERRIDE_TABLE_64_sys_mprotect +TRACE_SYSCALL_TABLE(sys_mprotect, sys_mprotect, 6010, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_munmap +TRACE_SYSCALL_TABLE(sys_munmap, sys_munmap, 6011, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_brk +TRACE_SYSCALL_TABLE(sys_brk, sys_brk, 6012, 1) +#endif +#ifndef OVERRIDE_TABLE_64_sys_mremap +TRACE_SYSCALL_TABLE(sys_mremap, sys_mremap, 6024, 5) +#endif +#ifndef OVERRIDE_TABLE_64_sys_msync +TRACE_SYSCALL_TABLE(sys_msync, sys_msync, 6025, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_madvise +TRACE_SYSCALL_TABLE(sys_madvise, sys_madvise, 6027, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_shmget +TRACE_SYSCALL_TABLE(sys_shmget, sys_shmget, 6028, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_dup +TRACE_SYSCALL_TABLE(sys_dup, sys_dup, 6031, 1) +#endif +#ifndef OVERRIDE_TABLE_64_sys_dup2 +TRACE_SYSCALL_TABLE(sys_dup2, sys_dup2, 6032, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_alarm +TRACE_SYSCALL_TABLE(sys_alarm, sys_alarm, 6037, 1) +#endif +#ifndef OVERRIDE_TABLE_64_sys_socket +TRACE_SYSCALL_TABLE(sys_socket, sys_socket, 6040, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_shutdown +TRACE_SYSCALL_TABLE(sys_shutdown, sys_shutdown, 6047, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_listen +TRACE_SYSCALL_TABLE(sys_listen, sys_listen, 6049, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_exit +TRACE_SYSCALL_TABLE(sys_exit, sys_exit, 6058, 1) +#endif +#ifndef OVERRIDE_TABLE_64_sys_kill +TRACE_SYSCALL_TABLE(sys_kill, sys_kill, 6060, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_semget +TRACE_SYSCALL_TABLE(sys_semget, sys_semget, 6062, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_n32_semctl +TRACE_SYSCALL_TABLE(sys_n32_semctl, sys_n32_semctl, 6064, 4) +#endif +#ifndef OVERRIDE_TABLE_64_sys_msgget +TRACE_SYSCALL_TABLE(sys_msgget, sys_msgget, 6066, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_n32_msgsnd +TRACE_SYSCALL_TABLE(sys_n32_msgsnd, sys_n32_msgsnd, 6067, 4) +#endif +#ifndef OVERRIDE_TABLE_64_sys_n32_msgrcv +TRACE_SYSCALL_TABLE(sys_n32_msgrcv, sys_n32_msgrcv, 6068, 5) +#endif +#ifndef OVERRIDE_TABLE_64_sys_flock +TRACE_SYSCALL_TABLE(sys_flock, sys_flock, 6071, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_fsync +TRACE_SYSCALL_TABLE(sys_fsync, sys_fsync, 6072, 1) +#endif +#ifndef OVERRIDE_TABLE_64_sys_fdatasync +TRACE_SYSCALL_TABLE(sys_fdatasync, sys_fdatasync, 6073, 1) +#endif +#ifndef OVERRIDE_TABLE_64_sys_ftruncate +TRACE_SYSCALL_TABLE(sys_ftruncate, sys_ftruncate, 6075, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_fchdir +TRACE_SYSCALL_TABLE(sys_fchdir, sys_fchdir, 6079, 1) +#endif +#ifndef OVERRIDE_TABLE_64_sys_fchmod +TRACE_SYSCALL_TABLE(sys_fchmod, sys_fchmod, 6089, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_fchown +TRACE_SYSCALL_TABLE(sys_fchown, sys_fchown, 6091, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_umask +TRACE_SYSCALL_TABLE(sys_umask, sys_umask, 6093, 1) +#endif +#ifndef OVERRIDE_TABLE_64_sys_setuid +TRACE_SYSCALL_TABLE(sys_setuid, sys_setuid, 6103, 1) +#endif +#ifndef OVERRIDE_TABLE_64_sys_setgid +TRACE_SYSCALL_TABLE(sys_setgid, sys_setgid, 6104, 1) +#endif +#ifndef OVERRIDE_TABLE_64_sys_setpgid +TRACE_SYSCALL_TABLE(sys_setpgid, sys_setpgid, 6107, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_setreuid +TRACE_SYSCALL_TABLE(sys_setreuid, sys_setreuid, 6111, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_setregid +TRACE_SYSCALL_TABLE(sys_setregid, sys_setregid, 6112, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_setresuid +TRACE_SYSCALL_TABLE(sys_setresuid, sys_setresuid, 6115, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_setresgid +TRACE_SYSCALL_TABLE(sys_setresgid, sys_setresgid, 6117, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_getpgid +TRACE_SYSCALL_TABLE(sys_getpgid, sys_getpgid, 6119, 1) +#endif +#ifndef OVERRIDE_TABLE_64_sys_setfsuid +TRACE_SYSCALL_TABLE(sys_setfsuid, sys_setfsuid, 6120, 1) +#endif +#ifndef OVERRIDE_TABLE_64_sys_setfsgid +TRACE_SYSCALL_TABLE(sys_setfsgid, sys_setfsgid, 6121, 1) +#endif +#ifndef OVERRIDE_TABLE_64_sys_getsid +TRACE_SYSCALL_TABLE(sys_getsid, sys_getsid, 6122, 1) +#endif +#ifndef OVERRIDE_TABLE_64_sys_32_personality +TRACE_SYSCALL_TABLE(sys_32_personality, sys_32_personality, 6132, 1) +#endif +#ifndef OVERRIDE_TABLE_64_sys_sysfs +TRACE_SYSCALL_TABLE(sys_sysfs, sys_sysfs, 6136, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_getpriority +TRACE_SYSCALL_TABLE(sys_getpriority, sys_getpriority, 6137, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_setpriority +TRACE_SYSCALL_TABLE(sys_setpriority, sys_setpriority, 6138, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_sched_getscheduler +TRACE_SYSCALL_TABLE(sys_sched_getscheduler, sys_sched_getscheduler, 6142, 1) +#endif +#ifndef OVERRIDE_TABLE_64_sys_sched_get_priority_max +TRACE_SYSCALL_TABLE(sys_sched_get_priority_max, sys_sched_get_priority_max, 6143, 1) +#endif +#ifndef OVERRIDE_TABLE_64_sys_sched_get_priority_min +TRACE_SYSCALL_TABLE(sys_sched_get_priority_min, sys_sched_get_priority_min, 6144, 1) +#endif +#ifndef OVERRIDE_TABLE_64_sys_mlock +TRACE_SYSCALL_TABLE(sys_mlock, sys_mlock, 6146, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_munlock +TRACE_SYSCALL_TABLE(sys_munlock, sys_munlock, 6147, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_mlockall +TRACE_SYSCALL_TABLE(sys_mlockall, sys_mlockall, 6148, 1) +#endif +#ifndef OVERRIDE_TABLE_64_sys_prctl +TRACE_SYSCALL_TABLE(sys_prctl, sys_prctl, 6153, 5) +#endif +#ifndef OVERRIDE_TABLE_64_sys_tkill +TRACE_SYSCALL_TABLE(sys_tkill, sys_tkill, 6192, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_cacheflush +TRACE_SYSCALL_TABLE(sys_cacheflush, sys_cacheflush, 6197, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_io_destroy +TRACE_SYSCALL_TABLE(sys_io_destroy, sys_io_destroy, 6201, 1) +#endif +#ifndef OVERRIDE_TABLE_64_sys_exit_group +TRACE_SYSCALL_TABLE(sys_exit_group, sys_exit_group, 6205, 1) +#endif +#ifndef OVERRIDE_TABLE_64_sys_epoll_create +TRACE_SYSCALL_TABLE(sys_epoll_create, sys_epoll_create, 6207, 1) +#endif +#ifndef OVERRIDE_TABLE_64_sys_remap_file_pages +TRACE_SYSCALL_TABLE(sys_remap_file_pages, sys_remap_file_pages, 6210, 5) +#endif +#ifndef OVERRIDE_TABLE_64_sys_timer_getoverrun +TRACE_SYSCALL_TABLE(sys_timer_getoverrun, sys_timer_getoverrun, 6223, 1) +#endif +#ifndef OVERRIDE_TABLE_64_sys_timer_delete +TRACE_SYSCALL_TABLE(sys_timer_delete, sys_timer_delete, 6224, 1) +#endif +#ifndef OVERRIDE_TABLE_64_sys_tgkill +TRACE_SYSCALL_TABLE(sys_tgkill, sys_tgkill, 6229, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_set_thread_area +TRACE_SYSCALL_TABLE(sys_set_thread_area, sys_set_thread_area, 6246, 1) +#endif +#ifndef OVERRIDE_TABLE_64_sys_inotify_rm_watch +TRACE_SYSCALL_TABLE(sys_inotify_rm_watch, sys_inotify_rm_watch, 6249, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_unshare +TRACE_SYSCALL_TABLE(sys_unshare, sys_unshare, 6266, 1) +#endif +#ifndef OVERRIDE_TABLE_64_sys_tee +TRACE_SYSCALL_TABLE(sys_tee, sys_tee, 6269, 4) +#endif +#ifndef OVERRIDE_TABLE_64_sys_ioprio_set +TRACE_SYSCALL_TABLE(sys_ioprio_set, sys_ioprio_set, 6277, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_ioprio_get +TRACE_SYSCALL_TABLE(sys_ioprio_get, sys_ioprio_get, 6278, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_eventfd +TRACE_SYSCALL_TABLE(sys_eventfd, sys_eventfd, 6282, 1) +#endif +#ifndef OVERRIDE_TABLE_64_sys_timerfd_create +TRACE_SYSCALL_TABLE(sys_timerfd_create, sys_timerfd_create, 6284, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_eventfd2 +TRACE_SYSCALL_TABLE(sys_eventfd2, sys_eventfd2, 6288, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_epoll_create1 +TRACE_SYSCALL_TABLE(sys_epoll_create1, sys_epoll_create1, 6289, 1) +#endif +#ifndef OVERRIDE_TABLE_64_sys_dup3 +TRACE_SYSCALL_TABLE(sys_dup3, sys_dup3, 6290, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_inotify_init1 +TRACE_SYSCALL_TABLE(sys_inotify_init1, sys_inotify_init1, 6292, 1) +#endif +#ifndef OVERRIDE_TABLE_64_sys_syncfs +TRACE_SYSCALL_TABLE(sys_syncfs, sys_syncfs, 6306, 1) +#endif +#ifndef OVERRIDE_TABLE_64_sys_setns +TRACE_SYSCALL_TABLE(sys_setns, sys_setns, 6308, 2) +#endif + +#endif /* CREATE_SYSCALL_TABLE */ --- linux-3.11.0.orig/ubuntu/lttng/instrumentation/syscalls/headers/mips-32-syscalls-3.5.0_integers.h +++ linux-3.11.0/ubuntu/lttng/instrumentation/syscalls/headers/mips-32-syscalls-3.5.0_integers.h @@ -0,0 +1,677 @@ +/* THIS FILE IS AUTO-GENERATED. DO NOT EDIT */ +#ifndef CREATE_SYSCALL_TABLE + +#if !defined(_TRACE_SYSCALLS_INTEGERS_H) || defined(TRACE_HEADER_MULTI_READ) +#define _TRACE_SYSCALLS_INTEGERS_H + +#include +#include +#include "mips-32-syscalls-3.5.0_integers_override.h" +#include "syscalls_integers_override.h" + +SC_DECLARE_EVENT_CLASS_NOARGS(syscalls_noargs, + TP_STRUCT__entry(), + TP_fast_assign(), + TP_printk() +) +#ifndef OVERRIDE_32_sys_getpid +SC_DEFINE_EVENT_NOARGS(syscalls_noargs, sys_getpid) +#endif +#ifndef OVERRIDE_32_sys_getuid +SC_DEFINE_EVENT_NOARGS(syscalls_noargs, sys_getuid) +#endif +#ifndef OVERRIDE_32_sys_pause +SC_DEFINE_EVENT_NOARGS(syscalls_noargs, sys_pause) +#endif +#ifndef OVERRIDE_32_sys_sync +SC_DEFINE_EVENT_NOARGS(syscalls_noargs, sys_sync) +#endif +#ifndef OVERRIDE_32_sys_getgid +SC_DEFINE_EVENT_NOARGS(syscalls_noargs, sys_getgid) +#endif +#ifndef OVERRIDE_32_sys_geteuid +SC_DEFINE_EVENT_NOARGS(syscalls_noargs, sys_geteuid) +#endif +#ifndef OVERRIDE_32_sys_getegid +SC_DEFINE_EVENT_NOARGS(syscalls_noargs, sys_getegid) +#endif +#ifndef OVERRIDE_32_sys_getppid +SC_DEFINE_EVENT_NOARGS(syscalls_noargs, sys_getppid) +#endif +#ifndef OVERRIDE_32_sys_getpgrp +SC_DEFINE_EVENT_NOARGS(syscalls_noargs, sys_getpgrp) +#endif +#ifndef OVERRIDE_32_sys_setsid +SC_DEFINE_EVENT_NOARGS(syscalls_noargs, sys_setsid) +#endif +#ifndef OVERRIDE_32_sys_sgetmask +SC_DEFINE_EVENT_NOARGS(syscalls_noargs, sys_sgetmask) +#endif +#ifndef OVERRIDE_32_sys_vhangup +SC_DEFINE_EVENT_NOARGS(syscalls_noargs, sys_vhangup) +#endif +#ifndef OVERRIDE_32_sys_munlockall +SC_DEFINE_EVENT_NOARGS(syscalls_noargs, sys_munlockall) +#endif +#ifndef OVERRIDE_32_sys_sched_yield +SC_DEFINE_EVENT_NOARGS(syscalls_noargs, sys_sched_yield) +#endif +#ifndef OVERRIDE_32_sys_exit +SC_TRACE_EVENT(sys_exit, + TP_PROTO(int error_code), + TP_ARGS(error_code), + TP_STRUCT__entry(__field(int, error_code)), + TP_fast_assign(tp_assign(error_code, error_code)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_close +SC_TRACE_EVENT(sys_close, + TP_PROTO(unsigned int fd), + TP_ARGS(fd), + TP_STRUCT__entry(__field(unsigned int, fd)), + TP_fast_assign(tp_assign(fd, fd)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_setuid +SC_TRACE_EVENT(sys_setuid, + TP_PROTO(uid_t uid), + TP_ARGS(uid), + TP_STRUCT__entry(__field(uid_t, uid)), + TP_fast_assign(tp_assign(uid, uid)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_alarm +SC_TRACE_EVENT(sys_alarm, + TP_PROTO(unsigned int seconds), + TP_ARGS(seconds), + TP_STRUCT__entry(__field(unsigned int, seconds)), + TP_fast_assign(tp_assign(seconds, seconds)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_nice +SC_TRACE_EVENT(sys_nice, + TP_PROTO(int increment), + TP_ARGS(increment), + TP_STRUCT__entry(__field(int, increment)), + TP_fast_assign(tp_assign(increment, increment)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_dup +SC_TRACE_EVENT(sys_dup, + TP_PROTO(unsigned int fildes), + TP_ARGS(fildes), + TP_STRUCT__entry(__field(unsigned int, fildes)), + TP_fast_assign(tp_assign(fildes, fildes)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_brk +SC_TRACE_EVENT(sys_brk, + TP_PROTO(unsigned long brk), + TP_ARGS(brk), + TP_STRUCT__entry(__field(unsigned long, brk)), + TP_fast_assign(tp_assign(brk, brk)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_setgid +SC_TRACE_EVENT(sys_setgid, + TP_PROTO(gid_t gid), + TP_ARGS(gid), + TP_STRUCT__entry(__field(gid_t, gid)), + TP_fast_assign(tp_assign(gid, gid)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_umask +SC_TRACE_EVENT(sys_umask, + TP_PROTO(int mask), + TP_ARGS(mask), + TP_STRUCT__entry(__field(int, mask)), + TP_fast_assign(tp_assign(mask, mask)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_ssetmask +SC_TRACE_EVENT(sys_ssetmask, + TP_PROTO(int newmask), + TP_ARGS(newmask), + TP_STRUCT__entry(__field(int, newmask)), + TP_fast_assign(tp_assign(newmask, newmask)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_fsync +SC_TRACE_EVENT(sys_fsync, + TP_PROTO(unsigned int fd), + TP_ARGS(fd), + TP_STRUCT__entry(__field(unsigned int, fd)), + TP_fast_assign(tp_assign(fd, fd)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_getpgid +SC_TRACE_EVENT(sys_getpgid, + TP_PROTO(pid_t pid), + TP_ARGS(pid), + TP_STRUCT__entry(__field(pid_t, pid)), + TP_fast_assign(tp_assign(pid, pid)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_fchdir +SC_TRACE_EVENT(sys_fchdir, + TP_PROTO(unsigned int fd), + TP_ARGS(fd), + TP_STRUCT__entry(__field(unsigned int, fd)), + TP_fast_assign(tp_assign(fd, fd)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_personality +SC_TRACE_EVENT(sys_personality, + TP_PROTO(unsigned int personality), + TP_ARGS(personality), + TP_STRUCT__entry(__field(unsigned int, personality)), + TP_fast_assign(tp_assign(personality, personality)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_setfsuid +SC_TRACE_EVENT(sys_setfsuid, + TP_PROTO(uid_t uid), + TP_ARGS(uid), + TP_STRUCT__entry(__field(uid_t, uid)), + TP_fast_assign(tp_assign(uid, uid)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_setfsgid +SC_TRACE_EVENT(sys_setfsgid, + TP_PROTO(gid_t gid), + TP_ARGS(gid), + TP_STRUCT__entry(__field(gid_t, gid)), + TP_fast_assign(tp_assign(gid, gid)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_getsid +SC_TRACE_EVENT(sys_getsid, + TP_PROTO(pid_t pid), + TP_ARGS(pid), + TP_STRUCT__entry(__field(pid_t, pid)), + TP_fast_assign(tp_assign(pid, pid)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_fdatasync +SC_TRACE_EVENT(sys_fdatasync, + TP_PROTO(unsigned int fd), + TP_ARGS(fd), + TP_STRUCT__entry(__field(unsigned int, fd)), + TP_fast_assign(tp_assign(fd, fd)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_mlockall +SC_TRACE_EVENT(sys_mlockall, + TP_PROTO(int flags), + TP_ARGS(flags), + TP_STRUCT__entry(__field(int, flags)), + TP_fast_assign(tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_sched_getscheduler +SC_TRACE_EVENT(sys_sched_getscheduler, + TP_PROTO(pid_t pid), + TP_ARGS(pid), + TP_STRUCT__entry(__field(pid_t, pid)), + TP_fast_assign(tp_assign(pid, pid)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_sched_get_priority_max +SC_TRACE_EVENT(sys_sched_get_priority_max, + TP_PROTO(int policy), + TP_ARGS(policy), + TP_STRUCT__entry(__field(int, policy)), + TP_fast_assign(tp_assign(policy, policy)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_sched_get_priority_min +SC_TRACE_EVENT(sys_sched_get_priority_min, + TP_PROTO(int policy), + TP_ARGS(policy), + TP_STRUCT__entry(__field(int, policy)), + TP_fast_assign(tp_assign(policy, policy)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_kill +SC_TRACE_EVENT(sys_kill, + TP_PROTO(pid_t pid, int sig), + TP_ARGS(pid, sig), + TP_STRUCT__entry(__field(pid_t, pid) __field(int, sig)), + TP_fast_assign(tp_assign(pid, pid) tp_assign(sig, sig)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_setpgid +SC_TRACE_EVENT(sys_setpgid, + TP_PROTO(pid_t pid, pid_t pgid), + TP_ARGS(pid, pgid), + TP_STRUCT__entry(__field(pid_t, pid) __field(pid_t, pgid)), + TP_fast_assign(tp_assign(pid, pid) tp_assign(pgid, pgid)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_dup2 +SC_TRACE_EVENT(sys_dup2, + TP_PROTO(unsigned int oldfd, unsigned int newfd), + TP_ARGS(oldfd, newfd), + TP_STRUCT__entry(__field(unsigned int, oldfd) __field(unsigned int, newfd)), + TP_fast_assign(tp_assign(oldfd, oldfd) tp_assign(newfd, newfd)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_setreuid +SC_TRACE_EVENT(sys_setreuid, + TP_PROTO(uid_t ruid, uid_t euid), + TP_ARGS(ruid, euid), + TP_STRUCT__entry(__field(uid_t, ruid) __field(uid_t, euid)), + TP_fast_assign(tp_assign(ruid, ruid) tp_assign(euid, euid)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_setregid +SC_TRACE_EVENT(sys_setregid, + TP_PROTO(gid_t rgid, gid_t egid), + TP_ARGS(rgid, egid), + TP_STRUCT__entry(__field(gid_t, rgid) __field(gid_t, egid)), + TP_fast_assign(tp_assign(rgid, rgid) tp_assign(egid, egid)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_munmap +SC_TRACE_EVENT(sys_munmap, + TP_PROTO(unsigned long addr, size_t len), + TP_ARGS(addr, len), + TP_STRUCT__entry(__field_hex(unsigned long, addr) __field(size_t, len)), + TP_fast_assign(tp_assign(addr, addr) tp_assign(len, len)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_ftruncate +SC_TRACE_EVENT(sys_ftruncate, + TP_PROTO(unsigned int fd, unsigned long length), + TP_ARGS(fd, length), + TP_STRUCT__entry(__field(unsigned int, fd) __field(unsigned long, length)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(length, length)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_fchmod +SC_TRACE_EVENT(sys_fchmod, + TP_PROTO(unsigned int fd, umode_t mode), + TP_ARGS(fd, mode), + TP_STRUCT__entry(__field(unsigned int, fd) __field(umode_t, mode)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(mode, mode)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_getpriority +SC_TRACE_EVENT(sys_getpriority, + TP_PROTO(int which, int who), + TP_ARGS(which, who), + TP_STRUCT__entry(__field(int, which) __field(int, who)), + TP_fast_assign(tp_assign(which, which) tp_assign(who, who)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_bdflush +SC_TRACE_EVENT(sys_bdflush, + TP_PROTO(int func, long data), + TP_ARGS(func, data), + TP_STRUCT__entry(__field(int, func) __field(long, data)), + TP_fast_assign(tp_assign(func, func) tp_assign(data, data)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_flock +SC_TRACE_EVENT(sys_flock, + TP_PROTO(unsigned int fd, unsigned int cmd), + TP_ARGS(fd, cmd), + TP_STRUCT__entry(__field(unsigned int, fd) __field(unsigned int, cmd)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(cmd, cmd)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_mlock +SC_TRACE_EVENT(sys_mlock, + TP_PROTO(unsigned long start, size_t len), + TP_ARGS(start, len), + TP_STRUCT__entry(__field(unsigned long, start) __field(size_t, len)), + TP_fast_assign(tp_assign(start, start) tp_assign(len, len)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_munlock +SC_TRACE_EVENT(sys_munlock, + TP_PROTO(unsigned long start, size_t len), + TP_ARGS(start, len), + TP_STRUCT__entry(__field(unsigned long, start) __field(size_t, len)), + TP_fast_assign(tp_assign(start, start) tp_assign(len, len)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_lseek +SC_TRACE_EVENT(sys_lseek, + TP_PROTO(unsigned int fd, off_t offset, unsigned int origin), + TP_ARGS(fd, offset, origin), + TP_STRUCT__entry(__field(unsigned int, fd) __field(off_t, offset) __field(unsigned int, origin)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(offset, offset) tp_assign(origin, origin)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_ioctl +SC_TRACE_EVENT(sys_ioctl, + TP_PROTO(unsigned int fd, unsigned int cmd, unsigned long arg), + TP_ARGS(fd, cmd, arg), + TP_STRUCT__entry(__field(unsigned int, fd) __field(unsigned int, cmd) __field(unsigned long, arg)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(cmd, cmd) tp_assign(arg, arg)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_fcntl +SC_TRACE_EVENT(sys_fcntl, + TP_PROTO(unsigned int fd, unsigned int cmd, unsigned long arg), + TP_ARGS(fd, cmd, arg), + TP_STRUCT__entry(__field(unsigned int, fd) __field(unsigned int, cmd) __field(unsigned long, arg)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(cmd, cmd) tp_assign(arg, arg)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_fchown +SC_TRACE_EVENT(sys_fchown, + TP_PROTO(unsigned int fd, uid_t user, gid_t group), + TP_ARGS(fd, user, group), + TP_STRUCT__entry(__field(unsigned int, fd) __field(uid_t, user) __field(gid_t, group)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(user, user) tp_assign(group, group)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_setpriority +SC_TRACE_EVENT(sys_setpriority, + TP_PROTO(int which, int who, int niceval), + TP_ARGS(which, who, niceval), + TP_STRUCT__entry(__field(int, which) __field(int, who) __field(int, niceval)), + TP_fast_assign(tp_assign(which, which) tp_assign(who, who) tp_assign(niceval, niceval)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_mprotect +SC_TRACE_EVENT(sys_mprotect, + TP_PROTO(unsigned long start, size_t len, unsigned long prot), + TP_ARGS(start, len, prot), + TP_STRUCT__entry(__field(unsigned long, start) __field(size_t, len) __field(unsigned long, prot)), + TP_fast_assign(tp_assign(start, start) tp_assign(len, len) tp_assign(prot, prot)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_sysfs +SC_TRACE_EVENT(sys_sysfs, + TP_PROTO(int option, unsigned long arg1, unsigned long arg2), + TP_ARGS(option, arg1, arg2), + TP_STRUCT__entry(__field(int, option) __field(unsigned long, arg1) __field(unsigned long, arg2)), + TP_fast_assign(tp_assign(option, option) tp_assign(arg1, arg1) tp_assign(arg2, arg2)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_msync +SC_TRACE_EVENT(sys_msync, + TP_PROTO(unsigned long start, size_t len, int flags), + TP_ARGS(start, len, flags), + TP_STRUCT__entry(__field(unsigned long, start) __field(size_t, len) __field(int, flags)), + TP_fast_assign(tp_assign(start, start) tp_assign(len, len) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_cacheflush +SC_TRACE_EVENT(sys_cacheflush, + TP_PROTO(unsigned long addr, unsigned long bytes, unsigned int cache), + TP_ARGS(addr, bytes, cache), + TP_STRUCT__entry(__field_hex(unsigned long, addr) __field(unsigned long, bytes) __field(unsigned int, cache)), + TP_fast_assign(tp_assign(addr, addr) tp_assign(bytes, bytes) tp_assign(cache, cache)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_ptrace +SC_TRACE_EVENT(sys_ptrace, + TP_PROTO(long request, long pid, unsigned long addr, unsigned long data), + TP_ARGS(request, pid, addr, data), + TP_STRUCT__entry(__field(long, request) __field(long, pid) __field_hex(unsigned long, addr) __field(unsigned long, data)), + TP_fast_assign(tp_assign(request, request) tp_assign(pid, pid) tp_assign(addr, addr) tp_assign(data, data)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_mremap +SC_TRACE_EVENT(sys_mremap, + TP_PROTO(unsigned long addr, unsigned long old_len, unsigned long new_len, unsigned long flags, unsigned long new_addr), + TP_ARGS(addr, old_len, new_len, flags, new_addr), + TP_STRUCT__entry(__field_hex(unsigned long, addr) __field(unsigned long, old_len) __field(unsigned long, new_len) __field(unsigned long, flags) __field_hex(unsigned long, new_addr)), + TP_fast_assign(tp_assign(addr, addr) tp_assign(old_len, old_len) tp_assign(new_len, new_len) tp_assign(flags, flags) tp_assign(new_addr, new_addr)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_mips_mmap +SC_TRACE_EVENT(sys_mips_mmap, + TP_PROTO(unsigned long addr, unsigned long len, unsigned long prot, unsigned long flags, unsigned long fd, off_t offset), + TP_ARGS(addr, len, prot, flags, fd, offset), + TP_STRUCT__entry(__field_hex(unsigned long, addr) __field(unsigned long, len) __field(unsigned long, prot) __field(unsigned long, flags) __field(unsigned long, fd) __field(off_t, offset)), + TP_fast_assign(tp_assign(addr, addr) tp_assign(len, len) tp_assign(prot, prot) tp_assign(flags, flags) tp_assign(fd, fd) tp_assign(offset, offset)), + TP_printk() +) +#endif + +#endif /* _TRACE_SYSCALLS_INTEGERS_H */ + +/* This part must be outside protection */ +#include "../../../probes/define_trace.h" + +#else /* CREATE_SYSCALL_TABLE */ + +#include "mips-32-syscalls-3.5.0_integers_override.h" +#include "syscalls_integers_override.h" + +#ifndef OVERRIDE_TABLE_32_sys_getpid +TRACE_SYSCALL_TABLE(syscalls_noargs, sys_getpid, 4041, 0) +#endif +#ifndef OVERRIDE_TABLE_32_sys_getuid +TRACE_SYSCALL_TABLE(syscalls_noargs, sys_getuid, 4049, 0) +#endif +#ifndef OVERRIDE_TABLE_32_sys_pause +TRACE_SYSCALL_TABLE(syscalls_noargs, sys_pause, 4059, 0) +#endif +#ifndef OVERRIDE_TABLE_32_sys_sync +TRACE_SYSCALL_TABLE(syscalls_noargs, sys_sync, 4073, 0) +#endif +#ifndef OVERRIDE_TABLE_32_sys_getgid +TRACE_SYSCALL_TABLE(syscalls_noargs, sys_getgid, 4095, 0) +#endif +#ifndef OVERRIDE_TABLE_32_sys_geteuid +TRACE_SYSCALL_TABLE(syscalls_noargs, sys_geteuid, 4099, 0) +#endif +#ifndef OVERRIDE_TABLE_32_sys_getegid +TRACE_SYSCALL_TABLE(syscalls_noargs, sys_getegid, 4101, 0) +#endif +#ifndef OVERRIDE_TABLE_32_sys_getppid +TRACE_SYSCALL_TABLE(syscalls_noargs, sys_getppid, 4129, 0) +#endif +#ifndef OVERRIDE_TABLE_32_sys_getpgrp +TRACE_SYSCALL_TABLE(syscalls_noargs, sys_getpgrp, 4131, 0) +#endif +#ifndef OVERRIDE_TABLE_32_sys_setsid +TRACE_SYSCALL_TABLE(syscalls_noargs, sys_setsid, 4133, 0) +#endif +#ifndef OVERRIDE_TABLE_32_sys_sgetmask +TRACE_SYSCALL_TABLE(syscalls_noargs, sys_sgetmask, 4137, 0) +#endif +#ifndef OVERRIDE_TABLE_32_sys_vhangup +TRACE_SYSCALL_TABLE(syscalls_noargs, sys_vhangup, 4223, 0) +#endif +#ifndef OVERRIDE_TABLE_32_sys_munlockall +TRACE_SYSCALL_TABLE(syscalls_noargs, sys_munlockall, 4315, 0) +#endif +#ifndef OVERRIDE_TABLE_32_sys_sched_yield +TRACE_SYSCALL_TABLE(syscalls_noargs, sys_sched_yield, 4325, 0) +#endif +#ifndef OVERRIDE_TABLE_32_sys_exit +TRACE_SYSCALL_TABLE(sys_exit, sys_exit, 4003, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_close +TRACE_SYSCALL_TABLE(sys_close, sys_close, 4013, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_lseek +TRACE_SYSCALL_TABLE(sys_lseek, sys_lseek, 4039, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_setuid +TRACE_SYSCALL_TABLE(sys_setuid, sys_setuid, 4047, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_ptrace +TRACE_SYSCALL_TABLE(sys_ptrace, sys_ptrace, 4053, 4) +#endif +#ifndef OVERRIDE_TABLE_32_sys_alarm +TRACE_SYSCALL_TABLE(sys_alarm, sys_alarm, 4055, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_nice +TRACE_SYSCALL_TABLE(sys_nice, sys_nice, 4069, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_kill +TRACE_SYSCALL_TABLE(sys_kill, sys_kill, 4075, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_dup +TRACE_SYSCALL_TABLE(sys_dup, sys_dup, 4083, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_brk +TRACE_SYSCALL_TABLE(sys_brk, sys_brk, 4091, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_setgid +TRACE_SYSCALL_TABLE(sys_setgid, sys_setgid, 4093, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_ioctl +TRACE_SYSCALL_TABLE(sys_ioctl, sys_ioctl, 4109, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_fcntl +TRACE_SYSCALL_TABLE(sys_fcntl, sys_fcntl, 4111, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_setpgid +TRACE_SYSCALL_TABLE(sys_setpgid, sys_setpgid, 4115, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_umask +TRACE_SYSCALL_TABLE(sys_umask, sys_umask, 4121, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_dup2 +TRACE_SYSCALL_TABLE(sys_dup2, sys_dup2, 4127, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_ssetmask +TRACE_SYSCALL_TABLE(sys_ssetmask, sys_ssetmask, 4139, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_setreuid +TRACE_SYSCALL_TABLE(sys_setreuid, sys_setreuid, 4141, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_setregid +TRACE_SYSCALL_TABLE(sys_setregid, sys_setregid, 4143, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_mips_mmap +TRACE_SYSCALL_TABLE(sys_mips_mmap, sys_mips_mmap, 4181, 6) +#endif +#ifndef OVERRIDE_TABLE_32_sys_munmap +TRACE_SYSCALL_TABLE(sys_munmap, sys_munmap, 4183, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_ftruncate +TRACE_SYSCALL_TABLE(sys_ftruncate, sys_ftruncate, 4187, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_fchmod +TRACE_SYSCALL_TABLE(sys_fchmod, sys_fchmod, 4189, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_fchown +TRACE_SYSCALL_TABLE(sys_fchown, sys_fchown, 4191, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_getpriority +TRACE_SYSCALL_TABLE(sys_getpriority, sys_getpriority, 4193, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_setpriority +TRACE_SYSCALL_TABLE(sys_setpriority, sys_setpriority, 4195, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_fsync +TRACE_SYSCALL_TABLE(sys_fsync, sys_fsync, 4237, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_mprotect +TRACE_SYSCALL_TABLE(sys_mprotect, sys_mprotect, 4251, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_getpgid +TRACE_SYSCALL_TABLE(sys_getpgid, sys_getpgid, 4265, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_fchdir +TRACE_SYSCALL_TABLE(sys_fchdir, sys_fchdir, 4267, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_bdflush +TRACE_SYSCALL_TABLE(sys_bdflush, sys_bdflush, 4269, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_sysfs +TRACE_SYSCALL_TABLE(sys_sysfs, sys_sysfs, 4271, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_personality +TRACE_SYSCALL_TABLE(sys_personality, sys_personality, 4273, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_setfsuid +TRACE_SYSCALL_TABLE(sys_setfsuid, sys_setfsuid, 4277, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_setfsgid +TRACE_SYSCALL_TABLE(sys_setfsgid, sys_setfsgid, 4279, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_flock +TRACE_SYSCALL_TABLE(sys_flock, sys_flock, 4287, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_msync +TRACE_SYSCALL_TABLE(sys_msync, sys_msync, 4289, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_cacheflush +TRACE_SYSCALL_TABLE(sys_cacheflush, sys_cacheflush, 4295, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_getsid +TRACE_SYSCALL_TABLE(sys_getsid, sys_getsid, 4303, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_fdatasync +TRACE_SYSCALL_TABLE(sys_fdatasync, sys_fdatasync, 4305, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_mlock +TRACE_SYSCALL_TABLE(sys_mlock, sys_mlock, 4309, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_munlock +TRACE_SYSCALL_TABLE(sys_munlock, sys_munlock, 4311, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_mlockall +TRACE_SYSCALL_TABLE(sys_mlockall, sys_mlockall, 4313, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_sched_getscheduler +TRACE_SYSCALL_TABLE(sys_sched_getscheduler, sys_sched_getscheduler, 4323, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_sched_get_priority_max +TRACE_SYSCALL_TABLE(sys_sched_get_priority_max, sys_sched_get_priority_max, 4327, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_sched_get_priority_min +TRACE_SYSCALL_TABLE(sys_sched_get_priority_min, sys_sched_get_priority_min, 4329, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_mremap +TRACE_SYSCALL_TABLE(sys_mremap, sys_mremap, 4335, 5) +#endif + +#endif /* CREATE_SYSCALL_TABLE */ --- linux-3.11.0.orig/ubuntu/lttng/instrumentation/syscalls/headers/powerpc-32-syscalls-3.0.34_integers.h +++ linux-3.11.0/ubuntu/lttng/instrumentation/syscalls/headers/powerpc-32-syscalls-3.0.34_integers.h @@ -0,0 +1,1043 @@ +/* THIS FILE IS AUTO-GENERATED. DO NOT EDIT */ +#ifndef CREATE_SYSCALL_TABLE + +#if !defined(_TRACE_SYSCALLS_INTEGERS_H) || defined(TRACE_HEADER_MULTI_READ) +#define _TRACE_SYSCALLS_INTEGERS_H + +#include +#include +#include "powerpc-32-syscalls-3.0.34_integers_override.h" +#include "syscalls_integers_override.h" + +SC_DECLARE_EVENT_CLASS_NOARGS(syscalls_noargs, + TP_STRUCT__entry(), + TP_fast_assign(), + TP_printk() +) +#ifndef OVERRIDE_32_sys_restart_syscall +SC_DEFINE_EVENT_NOARGS(syscalls_noargs, sys_restart_syscall) +#endif +#ifndef OVERRIDE_32_sys_getpid +SC_DEFINE_EVENT_NOARGS(syscalls_noargs, sys_getpid) +#endif +#ifndef OVERRIDE_32_sys_getuid +SC_DEFINE_EVENT_NOARGS(syscalls_noargs, sys_getuid) +#endif +#ifndef OVERRIDE_32_sys_pause +SC_DEFINE_EVENT_NOARGS(syscalls_noargs, sys_pause) +#endif +#ifndef OVERRIDE_32_sys_sync +SC_DEFINE_EVENT_NOARGS(syscalls_noargs, sys_sync) +#endif +#ifndef OVERRIDE_32_sys_getgid +SC_DEFINE_EVENT_NOARGS(syscalls_noargs, sys_getgid) +#endif +#ifndef OVERRIDE_32_sys_geteuid +SC_DEFINE_EVENT_NOARGS(syscalls_noargs, sys_geteuid) +#endif +#ifndef OVERRIDE_32_sys_getegid +SC_DEFINE_EVENT_NOARGS(syscalls_noargs, sys_getegid) +#endif +#ifndef OVERRIDE_32_sys_getppid +SC_DEFINE_EVENT_NOARGS(syscalls_noargs, sys_getppid) +#endif +#ifndef OVERRIDE_32_sys_getpgrp +SC_DEFINE_EVENT_NOARGS(syscalls_noargs, sys_getpgrp) +#endif +#ifndef OVERRIDE_32_sys_setsid +SC_DEFINE_EVENT_NOARGS(syscalls_noargs, sys_setsid) +#endif +#ifndef OVERRIDE_32_sys_sgetmask +SC_DEFINE_EVENT_NOARGS(syscalls_noargs, sys_sgetmask) +#endif +#ifndef OVERRIDE_32_sys_vhangup +SC_DEFINE_EVENT_NOARGS(syscalls_noargs, sys_vhangup) +#endif +#ifndef OVERRIDE_32_sys_munlockall +SC_DEFINE_EVENT_NOARGS(syscalls_noargs, sys_munlockall) +#endif +#ifndef OVERRIDE_32_sys_sched_yield +SC_DEFINE_EVENT_NOARGS(syscalls_noargs, sys_sched_yield) +#endif +#ifndef OVERRIDE_32_sys_gettid +SC_DEFINE_EVENT_NOARGS(syscalls_noargs, sys_gettid) +#endif +#ifndef OVERRIDE_32_sys_inotify_init +SC_DEFINE_EVENT_NOARGS(syscalls_noargs, sys_inotify_init) +#endif +#ifndef OVERRIDE_32_sys_exit +SC_TRACE_EVENT(sys_exit, + TP_PROTO(int error_code), + TP_ARGS(error_code), + TP_STRUCT__entry(__field(int, error_code)), + TP_fast_assign(tp_assign(error_code, error_code)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_close +SC_TRACE_EVENT(sys_close, + TP_PROTO(unsigned int fd), + TP_ARGS(fd), + TP_STRUCT__entry(__field(unsigned int, fd)), + TP_fast_assign(tp_assign(fd, fd)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_setuid +SC_TRACE_EVENT(sys_setuid, + TP_PROTO(uid_t uid), + TP_ARGS(uid), + TP_STRUCT__entry(__field(uid_t, uid)), + TP_fast_assign(tp_assign(uid, uid)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_alarm +SC_TRACE_EVENT(sys_alarm, + TP_PROTO(unsigned int seconds), + TP_ARGS(seconds), + TP_STRUCT__entry(__field(unsigned int, seconds)), + TP_fast_assign(tp_assign(seconds, seconds)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_nice +SC_TRACE_EVENT(sys_nice, + TP_PROTO(int increment), + TP_ARGS(increment), + TP_STRUCT__entry(__field(int, increment)), + TP_fast_assign(tp_assign(increment, increment)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_dup +SC_TRACE_EVENT(sys_dup, + TP_PROTO(unsigned int fildes), + TP_ARGS(fildes), + TP_STRUCT__entry(__field(unsigned int, fildes)), + TP_fast_assign(tp_assign(fildes, fildes)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_brk +SC_TRACE_EVENT(sys_brk, + TP_PROTO(unsigned long brk), + TP_ARGS(brk), + TP_STRUCT__entry(__field(unsigned long, brk)), + TP_fast_assign(tp_assign(brk, brk)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_setgid +SC_TRACE_EVENT(sys_setgid, + TP_PROTO(gid_t gid), + TP_ARGS(gid), + TP_STRUCT__entry(__field(gid_t, gid)), + TP_fast_assign(tp_assign(gid, gid)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_umask +SC_TRACE_EVENT(sys_umask, + TP_PROTO(int mask), + TP_ARGS(mask), + TP_STRUCT__entry(__field(int, mask)), + TP_fast_assign(tp_assign(mask, mask)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_ssetmask +SC_TRACE_EVENT(sys_ssetmask, + TP_PROTO(int newmask), + TP_ARGS(newmask), + TP_STRUCT__entry(__field(int, newmask)), + TP_fast_assign(tp_assign(newmask, newmask)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_fsync +SC_TRACE_EVENT(sys_fsync, + TP_PROTO(unsigned int fd), + TP_ARGS(fd), + TP_STRUCT__entry(__field(unsigned int, fd)), + TP_fast_assign(tp_assign(fd, fd)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_getpgid +SC_TRACE_EVENT(sys_getpgid, + TP_PROTO(pid_t pid), + TP_ARGS(pid), + TP_STRUCT__entry(__field(pid_t, pid)), + TP_fast_assign(tp_assign(pid, pid)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_fchdir +SC_TRACE_EVENT(sys_fchdir, + TP_PROTO(unsigned int fd), + TP_ARGS(fd), + TP_STRUCT__entry(__field(unsigned int, fd)), + TP_fast_assign(tp_assign(fd, fd)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_personality +SC_TRACE_EVENT(sys_personality, + TP_PROTO(unsigned int personality), + TP_ARGS(personality), + TP_STRUCT__entry(__field(unsigned int, personality)), + TP_fast_assign(tp_assign(personality, personality)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_setfsuid +SC_TRACE_EVENT(sys_setfsuid, + TP_PROTO(uid_t uid), + TP_ARGS(uid), + TP_STRUCT__entry(__field(uid_t, uid)), + TP_fast_assign(tp_assign(uid, uid)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_setfsgid +SC_TRACE_EVENT(sys_setfsgid, + TP_PROTO(gid_t gid), + TP_ARGS(gid), + TP_STRUCT__entry(__field(gid_t, gid)), + TP_fast_assign(tp_assign(gid, gid)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_getsid +SC_TRACE_EVENT(sys_getsid, + TP_PROTO(pid_t pid), + TP_ARGS(pid), + TP_STRUCT__entry(__field(pid_t, pid)), + TP_fast_assign(tp_assign(pid, pid)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_fdatasync +SC_TRACE_EVENT(sys_fdatasync, + TP_PROTO(unsigned int fd), + TP_ARGS(fd), + TP_STRUCT__entry(__field(unsigned int, fd)), + TP_fast_assign(tp_assign(fd, fd)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_mlockall +SC_TRACE_EVENT(sys_mlockall, + TP_PROTO(int flags), + TP_ARGS(flags), + TP_STRUCT__entry(__field(int, flags)), + TP_fast_assign(tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_sched_getscheduler +SC_TRACE_EVENT(sys_sched_getscheduler, + TP_PROTO(pid_t pid), + TP_ARGS(pid), + TP_STRUCT__entry(__field(pid_t, pid)), + TP_fast_assign(tp_assign(pid, pid)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_sched_get_priority_max +SC_TRACE_EVENT(sys_sched_get_priority_max, + TP_PROTO(int policy), + TP_ARGS(policy), + TP_STRUCT__entry(__field(int, policy)), + TP_fast_assign(tp_assign(policy, policy)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_sched_get_priority_min +SC_TRACE_EVENT(sys_sched_get_priority_min, + TP_PROTO(int policy), + TP_ARGS(policy), + TP_STRUCT__entry(__field(int, policy)), + TP_fast_assign(tp_assign(policy, policy)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_io_destroy +SC_TRACE_EVENT(sys_io_destroy, + TP_PROTO(aio_context_t ctx), + TP_ARGS(ctx), + TP_STRUCT__entry(__field(aio_context_t, ctx)), + TP_fast_assign(tp_assign(ctx, ctx)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_exit_group +SC_TRACE_EVENT(sys_exit_group, + TP_PROTO(int error_code), + TP_ARGS(error_code), + TP_STRUCT__entry(__field(int, error_code)), + TP_fast_assign(tp_assign(error_code, error_code)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_epoll_create +SC_TRACE_EVENT(sys_epoll_create, + TP_PROTO(int size), + TP_ARGS(size), + TP_STRUCT__entry(__field(int, size)), + TP_fast_assign(tp_assign(size, size)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_timer_getoverrun +SC_TRACE_EVENT(sys_timer_getoverrun, + TP_PROTO(timer_t timer_id), + TP_ARGS(timer_id), + TP_STRUCT__entry(__field(timer_t, timer_id)), + TP_fast_assign(tp_assign(timer_id, timer_id)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_timer_delete +SC_TRACE_EVENT(sys_timer_delete, + TP_PROTO(timer_t timer_id), + TP_ARGS(timer_id), + TP_STRUCT__entry(__field(timer_t, timer_id)), + TP_fast_assign(tp_assign(timer_id, timer_id)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_unshare +SC_TRACE_EVENT(sys_unshare, + TP_PROTO(unsigned long unshare_flags), + TP_ARGS(unshare_flags), + TP_STRUCT__entry(__field(unsigned long, unshare_flags)), + TP_fast_assign(tp_assign(unshare_flags, unshare_flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_eventfd +SC_TRACE_EVENT(sys_eventfd, + TP_PROTO(unsigned int count), + TP_ARGS(count), + TP_STRUCT__entry(__field(unsigned int, count)), + TP_fast_assign(tp_assign(count, count)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_epoll_create1 +SC_TRACE_EVENT(sys_epoll_create1, + TP_PROTO(int flags), + TP_ARGS(flags), + TP_STRUCT__entry(__field(int, flags)), + TP_fast_assign(tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_inotify_init1 +SC_TRACE_EVENT(sys_inotify_init1, + TP_PROTO(int flags), + TP_ARGS(flags), + TP_STRUCT__entry(__field(int, flags)), + TP_fast_assign(tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_syncfs +SC_TRACE_EVENT(sys_syncfs, + TP_PROTO(int fd), + TP_ARGS(fd), + TP_STRUCT__entry(__field(int, fd)), + TP_fast_assign(tp_assign(fd, fd)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_kill +SC_TRACE_EVENT(sys_kill, + TP_PROTO(pid_t pid, int sig), + TP_ARGS(pid, sig), + TP_STRUCT__entry(__field(pid_t, pid) __field(int, sig)), + TP_fast_assign(tp_assign(pid, pid) tp_assign(sig, sig)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_signal +SC_TRACE_EVENT(sys_signal, + TP_PROTO(int sig, __sighandler_t handler), + TP_ARGS(sig, handler), + TP_STRUCT__entry(__field(int, sig) __field(__sighandler_t, handler)), + TP_fast_assign(tp_assign(sig, sig) tp_assign(handler, handler)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_setpgid +SC_TRACE_EVENT(sys_setpgid, + TP_PROTO(pid_t pid, pid_t pgid), + TP_ARGS(pid, pgid), + TP_STRUCT__entry(__field(pid_t, pid) __field(pid_t, pgid)), + TP_fast_assign(tp_assign(pid, pid) tp_assign(pgid, pgid)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_dup2 +SC_TRACE_EVENT(sys_dup2, + TP_PROTO(unsigned int oldfd, unsigned int newfd), + TP_ARGS(oldfd, newfd), + TP_STRUCT__entry(__field(unsigned int, oldfd) __field(unsigned int, newfd)), + TP_fast_assign(tp_assign(oldfd, oldfd) tp_assign(newfd, newfd)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_setreuid +SC_TRACE_EVENT(sys_setreuid, + TP_PROTO(uid_t ruid, uid_t euid), + TP_ARGS(ruid, euid), + TP_STRUCT__entry(__field(uid_t, ruid) __field(uid_t, euid)), + TP_fast_assign(tp_assign(ruid, ruid) tp_assign(euid, euid)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_setregid +SC_TRACE_EVENT(sys_setregid, + TP_PROTO(gid_t rgid, gid_t egid), + TP_ARGS(rgid, egid), + TP_STRUCT__entry(__field(gid_t, rgid) __field(gid_t, egid)), + TP_fast_assign(tp_assign(rgid, rgid) tp_assign(egid, egid)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_munmap +SC_TRACE_EVENT(sys_munmap, + TP_PROTO(unsigned long addr, size_t len), + TP_ARGS(addr, len), + TP_STRUCT__entry(__field_hex(unsigned long, addr) __field(size_t, len)), + TP_fast_assign(tp_assign(addr, addr) tp_assign(len, len)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_ftruncate +SC_TRACE_EVENT(sys_ftruncate, + TP_PROTO(unsigned int fd, unsigned long length), + TP_ARGS(fd, length), + TP_STRUCT__entry(__field(unsigned int, fd) __field(unsigned long, length)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(length, length)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_fchmod +SC_TRACE_EVENT(sys_fchmod, + TP_PROTO(unsigned int fd, mode_t mode), + TP_ARGS(fd, mode), + TP_STRUCT__entry(__field(unsigned int, fd) __field(mode_t, mode)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(mode, mode)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_getpriority +SC_TRACE_EVENT(sys_getpriority, + TP_PROTO(int which, int who), + TP_ARGS(which, who), + TP_STRUCT__entry(__field(int, which) __field(int, who)), + TP_fast_assign(tp_assign(which, which) tp_assign(who, who)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_bdflush +SC_TRACE_EVENT(sys_bdflush, + TP_PROTO(int func, long data), + TP_ARGS(func, data), + TP_STRUCT__entry(__field(int, func) __field(long, data)), + TP_fast_assign(tp_assign(func, func) tp_assign(data, data)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_flock +SC_TRACE_EVENT(sys_flock, + TP_PROTO(unsigned int fd, unsigned int cmd), + TP_ARGS(fd, cmd), + TP_STRUCT__entry(__field(unsigned int, fd) __field(unsigned int, cmd)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(cmd, cmd)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_mlock +SC_TRACE_EVENT(sys_mlock, + TP_PROTO(unsigned long start, size_t len), + TP_ARGS(start, len), + TP_STRUCT__entry(__field(unsigned long, start) __field(size_t, len)), + TP_fast_assign(tp_assign(start, start) tp_assign(len, len)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_munlock +SC_TRACE_EVENT(sys_munlock, + TP_PROTO(unsigned long start, size_t len), + TP_ARGS(start, len), + TP_STRUCT__entry(__field(unsigned long, start) __field(size_t, len)), + TP_fast_assign(tp_assign(start, start) tp_assign(len, len)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_tkill +SC_TRACE_EVENT(sys_tkill, + TP_PROTO(pid_t pid, int sig), + TP_ARGS(pid, sig), + TP_STRUCT__entry(__field(pid_t, pid) __field(int, sig)), + TP_fast_assign(tp_assign(pid, pid) tp_assign(sig, sig)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_ioprio_get +SC_TRACE_EVENT(sys_ioprio_get, + TP_PROTO(int which, int who), + TP_ARGS(which, who), + TP_STRUCT__entry(__field(int, which) __field(int, who)), + TP_fast_assign(tp_assign(which, which) tp_assign(who, who)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_inotify_rm_watch +SC_TRACE_EVENT(sys_inotify_rm_watch, + TP_PROTO(int fd, __s32 wd), + TP_ARGS(fd, wd), + TP_STRUCT__entry(__field(int, fd) __field(__s32, wd)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(wd, wd)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_timerfd_create +SC_TRACE_EVENT(sys_timerfd_create, + TP_PROTO(int clockid, int flags), + TP_ARGS(clockid, flags), + TP_STRUCT__entry(__field(int, clockid) __field(int, flags)), + TP_fast_assign(tp_assign(clockid, clockid) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_eventfd2 +SC_TRACE_EVENT(sys_eventfd2, + TP_PROTO(unsigned int count, int flags), + TP_ARGS(count, flags), + TP_STRUCT__entry(__field(unsigned int, count) __field(int, flags)), + TP_fast_assign(tp_assign(count, count) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_listen +SC_TRACE_EVENT(sys_listen, + TP_PROTO(int fd, int backlog), + TP_ARGS(fd, backlog), + TP_STRUCT__entry(__field(int, fd) __field(int, backlog)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(backlog, backlog)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_shutdown +SC_TRACE_EVENT(sys_shutdown, + TP_PROTO(int fd, int how), + TP_ARGS(fd, how), + TP_STRUCT__entry(__field(int, fd) __field(int, how)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(how, how)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_setns +SC_TRACE_EVENT(sys_setns, + TP_PROTO(int fd, int nstype), + TP_ARGS(fd, nstype), + TP_STRUCT__entry(__field(int, fd) __field(int, nstype)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(nstype, nstype)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_lseek +SC_TRACE_EVENT(sys_lseek, + TP_PROTO(unsigned int fd, off_t offset, unsigned int origin), + TP_ARGS(fd, offset, origin), + TP_STRUCT__entry(__field(unsigned int, fd) __field(off_t, offset) __field(unsigned int, origin)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(offset, offset) tp_assign(origin, origin)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_ioctl +SC_TRACE_EVENT(sys_ioctl, + TP_PROTO(unsigned int fd, unsigned int cmd, unsigned long arg), + TP_ARGS(fd, cmd, arg), + TP_STRUCT__entry(__field(unsigned int, fd) __field(unsigned int, cmd) __field(unsigned long, arg)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(cmd, cmd) tp_assign(arg, arg)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_fcntl +SC_TRACE_EVENT(sys_fcntl, + TP_PROTO(unsigned int fd, unsigned int cmd, unsigned long arg), + TP_ARGS(fd, cmd, arg), + TP_STRUCT__entry(__field(unsigned int, fd) __field(unsigned int, cmd) __field(unsigned long, arg)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(cmd, cmd) tp_assign(arg, arg)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_fchown +SC_TRACE_EVENT(sys_fchown, + TP_PROTO(unsigned int fd, uid_t user, gid_t group), + TP_ARGS(fd, user, group), + TP_STRUCT__entry(__field(unsigned int, fd) __field(uid_t, user) __field(gid_t, group)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(user, user) tp_assign(group, group)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_setpriority +SC_TRACE_EVENT(sys_setpriority, + TP_PROTO(int which, int who, int niceval), + TP_ARGS(which, who, niceval), + TP_STRUCT__entry(__field(int, which) __field(int, who) __field(int, niceval)), + TP_fast_assign(tp_assign(which, which) tp_assign(who, who) tp_assign(niceval, niceval)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_mprotect +SC_TRACE_EVENT(sys_mprotect, + TP_PROTO(unsigned long start, size_t len, unsigned long prot), + TP_ARGS(start, len, prot), + TP_STRUCT__entry(__field(unsigned long, start) __field(size_t, len) __field(unsigned long, prot)), + TP_fast_assign(tp_assign(start, start) tp_assign(len, len) tp_assign(prot, prot)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_sysfs +SC_TRACE_EVENT(sys_sysfs, + TP_PROTO(int option, unsigned long arg1, unsigned long arg2), + TP_ARGS(option, arg1, arg2), + TP_STRUCT__entry(__field(int, option) __field(unsigned long, arg1) __field(unsigned long, arg2)), + TP_fast_assign(tp_assign(option, option) tp_assign(arg1, arg1) tp_assign(arg2, arg2)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_msync +SC_TRACE_EVENT(sys_msync, + TP_PROTO(unsigned long start, size_t len, int flags), + TP_ARGS(start, len, flags), + TP_STRUCT__entry(__field(unsigned long, start) __field(size_t, len) __field(int, flags)), + TP_fast_assign(tp_assign(start, start) tp_assign(len, len) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_setresuid +SC_TRACE_EVENT(sys_setresuid, + TP_PROTO(uid_t ruid, uid_t euid, uid_t suid), + TP_ARGS(ruid, euid, suid), + TP_STRUCT__entry(__field(uid_t, ruid) __field(uid_t, euid) __field(uid_t, suid)), + TP_fast_assign(tp_assign(ruid, ruid) tp_assign(euid, euid) tp_assign(suid, suid)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_setresgid +SC_TRACE_EVENT(sys_setresgid, + TP_PROTO(gid_t rgid, gid_t egid, gid_t sgid), + TP_ARGS(rgid, egid, sgid), + TP_STRUCT__entry(__field(gid_t, rgid) __field(gid_t, egid) __field(gid_t, sgid)), + TP_fast_assign(tp_assign(rgid, rgid) tp_assign(egid, egid) tp_assign(sgid, sgid)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_fcntl64 +SC_TRACE_EVENT(sys_fcntl64, + TP_PROTO(unsigned int fd, unsigned int cmd, unsigned long arg), + TP_ARGS(fd, cmd, arg), + TP_STRUCT__entry(__field(unsigned int, fd) __field(unsigned int, cmd) __field(unsigned long, arg)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(cmd, cmd) tp_assign(arg, arg)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_madvise +SC_TRACE_EVENT(sys_madvise, + TP_PROTO(unsigned long start, size_t len_in, int behavior), + TP_ARGS(start, len_in, behavior), + TP_STRUCT__entry(__field(unsigned long, start) __field(size_t, len_in) __field(int, behavior)), + TP_fast_assign(tp_assign(start, start) tp_assign(len_in, len_in) tp_assign(behavior, behavior)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_tgkill +SC_TRACE_EVENT(sys_tgkill, + TP_PROTO(pid_t tgid, pid_t pid, int sig), + TP_ARGS(tgid, pid, sig), + TP_STRUCT__entry(__field(pid_t, tgid) __field(pid_t, pid) __field(int, sig)), + TP_fast_assign(tp_assign(tgid, tgid) tp_assign(pid, pid) tp_assign(sig, sig)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_ioprio_set +SC_TRACE_EVENT(sys_ioprio_set, + TP_PROTO(int which, int who, int ioprio), + TP_ARGS(which, who, ioprio), + TP_STRUCT__entry(__field(int, which) __field(int, who) __field(int, ioprio)), + TP_fast_assign(tp_assign(which, which) tp_assign(who, who) tp_assign(ioprio, ioprio)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_dup3 +SC_TRACE_EVENT(sys_dup3, + TP_PROTO(unsigned int oldfd, unsigned int newfd, int flags), + TP_ARGS(oldfd, newfd, flags), + TP_STRUCT__entry(__field(unsigned int, oldfd) __field(unsigned int, newfd) __field(int, flags)), + TP_fast_assign(tp_assign(oldfd, oldfd) tp_assign(newfd, newfd) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_socket +SC_TRACE_EVENT(sys_socket, + TP_PROTO(int family, int type, int protocol), + TP_ARGS(family, type, protocol), + TP_STRUCT__entry(__field(int, family) __field(int, type) __field(int, protocol)), + TP_fast_assign(tp_assign(family, family) tp_assign(type, type) tp_assign(protocol, protocol)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_ptrace +SC_TRACE_EVENT(sys_ptrace, + TP_PROTO(long request, long pid, unsigned long addr, unsigned long data), + TP_ARGS(request, pid, addr, data), + TP_STRUCT__entry(__field(long, request) __field(long, pid) __field_hex(unsigned long, addr) __field(unsigned long, data)), + TP_fast_assign(tp_assign(request, request) tp_assign(pid, pid) tp_assign(addr, addr) tp_assign(data, data)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_tee +SC_TRACE_EVENT(sys_tee, + TP_PROTO(int fdin, int fdout, size_t len, unsigned int flags), + TP_ARGS(fdin, fdout, len, flags), + TP_STRUCT__entry(__field(int, fdin) __field(int, fdout) __field(size_t, len) __field(unsigned int, flags)), + TP_fast_assign(tp_assign(fdin, fdin) tp_assign(fdout, fdout) tp_assign(len, len) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_mremap +SC_TRACE_EVENT(sys_mremap, + TP_PROTO(unsigned long addr, unsigned long old_len, unsigned long new_len, unsigned long flags, unsigned long new_addr), + TP_ARGS(addr, old_len, new_len, flags, new_addr), + TP_STRUCT__entry(__field_hex(unsigned long, addr) __field(unsigned long, old_len) __field(unsigned long, new_len) __field(unsigned long, flags) __field_hex(unsigned long, new_addr)), + TP_fast_assign(tp_assign(addr, addr) tp_assign(old_len, old_len) tp_assign(new_len, new_len) tp_assign(flags, flags) tp_assign(new_addr, new_addr)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_prctl +SC_TRACE_EVENT(sys_prctl, + TP_PROTO(int option, unsigned long arg2, unsigned long arg3, unsigned long arg4, unsigned long arg5), + TP_ARGS(option, arg2, arg3, arg4, arg5), + TP_STRUCT__entry(__field(int, option) __field(unsigned long, arg2) __field(unsigned long, arg3) __field(unsigned long, arg4) __field(unsigned long, arg5)), + TP_fast_assign(tp_assign(option, option) tp_assign(arg2, arg2) tp_assign(arg3, arg3) tp_assign(arg4, arg4) tp_assign(arg5, arg5)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_remap_file_pages +SC_TRACE_EVENT(sys_remap_file_pages, + TP_PROTO(unsigned long start, unsigned long size, unsigned long prot, unsigned long pgoff, unsigned long flags), + TP_ARGS(start, size, prot, pgoff, flags), + TP_STRUCT__entry(__field(unsigned long, start) __field(unsigned long, size) __field(unsigned long, prot) __field(unsigned long, pgoff) __field(unsigned long, flags)), + TP_fast_assign(tp_assign(start, start) tp_assign(size, size) tp_assign(prot, prot) tp_assign(pgoff, pgoff) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_keyctl +SC_TRACE_EVENT(sys_keyctl, + TP_PROTO(int option, unsigned long arg2, unsigned long arg3, unsigned long arg4, unsigned long arg5), + TP_ARGS(option, arg2, arg3, arg4, arg5), + TP_STRUCT__entry(__field(int, option) __field(unsigned long, arg2) __field(unsigned long, arg3) __field(unsigned long, arg4) __field(unsigned long, arg5)), + TP_fast_assign(tp_assign(option, option) tp_assign(arg2, arg2) tp_assign(arg3, arg3) tp_assign(arg4, arg4) tp_assign(arg5, arg5)), + TP_printk() +) +#endif + +#endif /* _TRACE_SYSCALLS_INTEGERS_H */ + +/* This part must be outside protection */ +#include "../../../probes/define_trace.h" + +#else /* CREATE_SYSCALL_TABLE */ + +#include "powerpc-32-syscalls-3.0.34_integers_override.h" +#include "syscalls_integers_override.h" + +#ifndef OVERRIDE_TABLE_32_sys_restart_syscall +TRACE_SYSCALL_TABLE(syscalls_noargs, sys_restart_syscall, 0, 0) +#endif +#ifndef OVERRIDE_TABLE_32_sys_getpid +TRACE_SYSCALL_TABLE(syscalls_noargs, sys_getpid, 20, 0) +#endif +#ifndef OVERRIDE_TABLE_32_sys_getuid +TRACE_SYSCALL_TABLE(syscalls_noargs, sys_getuid, 24, 0) +#endif +#ifndef OVERRIDE_TABLE_32_sys_pause +TRACE_SYSCALL_TABLE(syscalls_noargs, sys_pause, 29, 0) +#endif +#ifndef OVERRIDE_TABLE_32_sys_sync +TRACE_SYSCALL_TABLE(syscalls_noargs, sys_sync, 36, 0) +#endif +#ifndef OVERRIDE_TABLE_32_sys_getgid +TRACE_SYSCALL_TABLE(syscalls_noargs, sys_getgid, 47, 0) +#endif +#ifndef OVERRIDE_TABLE_32_sys_geteuid +TRACE_SYSCALL_TABLE(syscalls_noargs, sys_geteuid, 49, 0) +#endif +#ifndef OVERRIDE_TABLE_32_sys_getegid +TRACE_SYSCALL_TABLE(syscalls_noargs, sys_getegid, 50, 0) +#endif +#ifndef OVERRIDE_TABLE_32_sys_getppid +TRACE_SYSCALL_TABLE(syscalls_noargs, sys_getppid, 64, 0) +#endif +#ifndef OVERRIDE_TABLE_32_sys_getpgrp +TRACE_SYSCALL_TABLE(syscalls_noargs, sys_getpgrp, 65, 0) +#endif +#ifndef OVERRIDE_TABLE_32_sys_setsid +TRACE_SYSCALL_TABLE(syscalls_noargs, sys_setsid, 66, 0) +#endif +#ifndef OVERRIDE_TABLE_32_sys_sgetmask +TRACE_SYSCALL_TABLE(syscalls_noargs, sys_sgetmask, 68, 0) +#endif +#ifndef OVERRIDE_TABLE_32_sys_vhangup +TRACE_SYSCALL_TABLE(syscalls_noargs, sys_vhangup, 111, 0) +#endif +#ifndef OVERRIDE_TABLE_32_sys_munlockall +TRACE_SYSCALL_TABLE(syscalls_noargs, sys_munlockall, 153, 0) +#endif +#ifndef OVERRIDE_TABLE_32_sys_sched_yield +TRACE_SYSCALL_TABLE(syscalls_noargs, sys_sched_yield, 158, 0) +#endif +#ifndef OVERRIDE_TABLE_32_sys_gettid +TRACE_SYSCALL_TABLE(syscalls_noargs, sys_gettid, 207, 0) +#endif +#ifndef OVERRIDE_TABLE_32_sys_inotify_init +TRACE_SYSCALL_TABLE(syscalls_noargs, sys_inotify_init, 275, 0) +#endif +#ifndef OVERRIDE_TABLE_32_sys_exit +TRACE_SYSCALL_TABLE(sys_exit, sys_exit, 1, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_close +TRACE_SYSCALL_TABLE(sys_close, sys_close, 6, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_lseek +TRACE_SYSCALL_TABLE(sys_lseek, sys_lseek, 19, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_setuid +TRACE_SYSCALL_TABLE(sys_setuid, sys_setuid, 23, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_ptrace +TRACE_SYSCALL_TABLE(sys_ptrace, sys_ptrace, 26, 4) +#endif +#ifndef OVERRIDE_TABLE_32_sys_alarm +TRACE_SYSCALL_TABLE(sys_alarm, sys_alarm, 27, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_nice +TRACE_SYSCALL_TABLE(sys_nice, sys_nice, 34, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_kill +TRACE_SYSCALL_TABLE(sys_kill, sys_kill, 37, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_dup +TRACE_SYSCALL_TABLE(sys_dup, sys_dup, 41, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_brk +TRACE_SYSCALL_TABLE(sys_brk, sys_brk, 45, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_setgid +TRACE_SYSCALL_TABLE(sys_setgid, sys_setgid, 46, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_signal +TRACE_SYSCALL_TABLE(sys_signal, sys_signal, 48, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_ioctl +TRACE_SYSCALL_TABLE(sys_ioctl, sys_ioctl, 54, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_fcntl +TRACE_SYSCALL_TABLE(sys_fcntl, sys_fcntl, 55, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_setpgid +TRACE_SYSCALL_TABLE(sys_setpgid, sys_setpgid, 57, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_umask +TRACE_SYSCALL_TABLE(sys_umask, sys_umask, 60, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_dup2 +TRACE_SYSCALL_TABLE(sys_dup2, sys_dup2, 63, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_ssetmask +TRACE_SYSCALL_TABLE(sys_ssetmask, sys_ssetmask, 69, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_setreuid +TRACE_SYSCALL_TABLE(sys_setreuid, sys_setreuid, 70, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_setregid +TRACE_SYSCALL_TABLE(sys_setregid, sys_setregid, 71, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_munmap +TRACE_SYSCALL_TABLE(sys_munmap, sys_munmap, 91, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_ftruncate +TRACE_SYSCALL_TABLE(sys_ftruncate, sys_ftruncate, 93, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_fchmod +TRACE_SYSCALL_TABLE(sys_fchmod, sys_fchmod, 94, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_fchown +TRACE_SYSCALL_TABLE(sys_fchown, sys_fchown, 95, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_getpriority +TRACE_SYSCALL_TABLE(sys_getpriority, sys_getpriority, 96, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_setpriority +TRACE_SYSCALL_TABLE(sys_setpriority, sys_setpriority, 97, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_fsync +TRACE_SYSCALL_TABLE(sys_fsync, sys_fsync, 118, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_mprotect +TRACE_SYSCALL_TABLE(sys_mprotect, sys_mprotect, 125, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_getpgid +TRACE_SYSCALL_TABLE(sys_getpgid, sys_getpgid, 132, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_fchdir +TRACE_SYSCALL_TABLE(sys_fchdir, sys_fchdir, 133, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_bdflush +TRACE_SYSCALL_TABLE(sys_bdflush, sys_bdflush, 134, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_sysfs +TRACE_SYSCALL_TABLE(sys_sysfs, sys_sysfs, 135, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_personality +TRACE_SYSCALL_TABLE(sys_personality, sys_personality, 136, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_setfsuid +TRACE_SYSCALL_TABLE(sys_setfsuid, sys_setfsuid, 138, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_setfsgid +TRACE_SYSCALL_TABLE(sys_setfsgid, sys_setfsgid, 139, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_flock +TRACE_SYSCALL_TABLE(sys_flock, sys_flock, 143, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_msync +TRACE_SYSCALL_TABLE(sys_msync, sys_msync, 144, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_getsid +TRACE_SYSCALL_TABLE(sys_getsid, sys_getsid, 147, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_fdatasync +TRACE_SYSCALL_TABLE(sys_fdatasync, sys_fdatasync, 148, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_mlock +TRACE_SYSCALL_TABLE(sys_mlock, sys_mlock, 150, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_munlock +TRACE_SYSCALL_TABLE(sys_munlock, sys_munlock, 151, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_mlockall +TRACE_SYSCALL_TABLE(sys_mlockall, sys_mlockall, 152, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_sched_getscheduler +TRACE_SYSCALL_TABLE(sys_sched_getscheduler, sys_sched_getscheduler, 157, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_sched_get_priority_max +TRACE_SYSCALL_TABLE(sys_sched_get_priority_max, sys_sched_get_priority_max, 159, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_sched_get_priority_min +TRACE_SYSCALL_TABLE(sys_sched_get_priority_min, sys_sched_get_priority_min, 160, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_mremap +TRACE_SYSCALL_TABLE(sys_mremap, sys_mremap, 163, 5) +#endif +#ifndef OVERRIDE_TABLE_32_sys_setresuid +TRACE_SYSCALL_TABLE(sys_setresuid, sys_setresuid, 164, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_setresgid +TRACE_SYSCALL_TABLE(sys_setresgid, sys_setresgid, 169, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_prctl +TRACE_SYSCALL_TABLE(sys_prctl, sys_prctl, 171, 5) +#endif +#ifndef OVERRIDE_TABLE_32_sys_fcntl64 +TRACE_SYSCALL_TABLE(sys_fcntl64, sys_fcntl64, 204, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_madvise +TRACE_SYSCALL_TABLE(sys_madvise, sys_madvise, 205, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_tkill +TRACE_SYSCALL_TABLE(sys_tkill, sys_tkill, 208, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_io_destroy +TRACE_SYSCALL_TABLE(sys_io_destroy, sys_io_destroy, 228, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_exit_group +TRACE_SYSCALL_TABLE(sys_exit_group, sys_exit_group, 234, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_epoll_create +TRACE_SYSCALL_TABLE(sys_epoll_create, sys_epoll_create, 236, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_remap_file_pages +TRACE_SYSCALL_TABLE(sys_remap_file_pages, sys_remap_file_pages, 239, 5) +#endif +#ifndef OVERRIDE_TABLE_32_sys_timer_getoverrun +TRACE_SYSCALL_TABLE(sys_timer_getoverrun, sys_timer_getoverrun, 243, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_timer_delete +TRACE_SYSCALL_TABLE(sys_timer_delete, sys_timer_delete, 244, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_tgkill +TRACE_SYSCALL_TABLE(sys_tgkill, sys_tgkill, 250, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_keyctl +TRACE_SYSCALL_TABLE(sys_keyctl, sys_keyctl, 271, 5) +#endif +#ifndef OVERRIDE_TABLE_32_sys_ioprio_set +TRACE_SYSCALL_TABLE(sys_ioprio_set, sys_ioprio_set, 273, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_ioprio_get +TRACE_SYSCALL_TABLE(sys_ioprio_get, sys_ioprio_get, 274, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_inotify_rm_watch +TRACE_SYSCALL_TABLE(sys_inotify_rm_watch, sys_inotify_rm_watch, 277, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_unshare +TRACE_SYSCALL_TABLE(sys_unshare, sys_unshare, 282, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_tee +TRACE_SYSCALL_TABLE(sys_tee, sys_tee, 284, 4) +#endif +#ifndef OVERRIDE_TABLE_32_sys_timerfd_create +TRACE_SYSCALL_TABLE(sys_timerfd_create, sys_timerfd_create, 306, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_eventfd +TRACE_SYSCALL_TABLE(sys_eventfd, sys_eventfd, 307, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_eventfd2 +TRACE_SYSCALL_TABLE(sys_eventfd2, sys_eventfd2, 314, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_epoll_create1 +TRACE_SYSCALL_TABLE(sys_epoll_create1, sys_epoll_create1, 315, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_dup3 +TRACE_SYSCALL_TABLE(sys_dup3, sys_dup3, 316, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_inotify_init1 +TRACE_SYSCALL_TABLE(sys_inotify_init1, sys_inotify_init1, 318, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_socket +TRACE_SYSCALL_TABLE(sys_socket, sys_socket, 326, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_listen +TRACE_SYSCALL_TABLE(sys_listen, sys_listen, 329, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_shutdown +TRACE_SYSCALL_TABLE(sys_shutdown, sys_shutdown, 338, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_syncfs +TRACE_SYSCALL_TABLE(sys_syncfs, sys_syncfs, 348, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_setns +TRACE_SYSCALL_TABLE(sys_setns, sys_setns, 350, 2) +#endif + +#endif /* CREATE_SYSCALL_TABLE */ --- linux-3.11.0.orig/ubuntu/lttng/instrumentation/syscalls/headers/syscalls_integers.h +++ linux-3.11.0/ubuntu/lttng/instrumentation/syscalls/headers/syscalls_integers.h @@ -0,0 +1,15 @@ +#ifdef CONFIG_X86_64 +#include "x86-64-syscalls-3.10.0-rc7_integers.h" +#endif + +#ifdef CONFIG_X86_32 +#include "x86-32-syscalls-3.1.0-rc6_integers.h" +#endif + +#ifdef CONFIG_ARM +#include "arm-32-syscalls-3.4.25_integers.h" +#endif + +#ifdef CONFIG_PPC +#include "powerpc-32-syscalls-3.0.34_integers.h" +#endif --- linux-3.11.0.orig/ubuntu/lttng/instrumentation/syscalls/headers/arm-32-syscalls-3.4.25_pointers_override.h +++ linux-3.11.0/ubuntu/lttng/instrumentation/syscalls/headers/arm-32-syscalls-3.4.25_pointers_override.h @@ -0,0 +1,39 @@ + +#define OVERRIDE_TABLE_32_sys_mmap2 + + +#ifndef CREATE_SYSCALL_TABLE + +SC_TRACE_EVENT(sys_mmap2, + TP_PROTO(void *addr, size_t len, int prot, + int flags, int fd, off_t pgoff), + TP_ARGS(addr, len, prot, flags, fd, pgoff), + TP_STRUCT__entry( + __field_hex(void *, addr) + __field(size_t, len) + __field(int, prot) + __field(int, flags) + __field(int, fd) + __field(off_t, pgoff)), + TP_fast_assign( + tp_assign(addr, addr) + tp_assign(len, len) + tp_assign(prot, prot) + tp_assign(flags, flags) + tp_assign(fd, fd) + tp_assign(pgoff, pgoff)), + TP_printk() +) + +#else /* CREATE_SYSCALL_TABLE */ + +#define OVERRIDE_TABLE_32_sys_execve +TRACE_SYSCALL_TABLE(sys_execve, sys_execve, 11, 3) +#define OVERRIDE_TABLE_32_sys_clone +TRACE_SYSCALL_TABLE(sys_clone, sys_clone, 120, 5) +#define OVERRIDE_TABLE_32_sys_mmap2 +TRACE_SYSCALL_TABLE(sys_mmap2, sys_mmap2, 192, 6) + +#endif /* CREATE_SYSCALL_TABLE */ + + --- linux-3.11.0.orig/ubuntu/lttng/instrumentation/syscalls/headers/x86-64-syscalls-3.10.0-rc7_pointers.h +++ linux-3.11.0/ubuntu/lttng/instrumentation/syscalls/headers/x86-64-syscalls-3.10.0-rc7_pointers.h @@ -0,0 +1,2304 @@ +/* THIS FILE IS AUTO-GENERATED. DO NOT EDIT */ +#ifndef CREATE_SYSCALL_TABLE + +#if !defined(_TRACE_SYSCALLS_POINTERS_H) || defined(TRACE_HEADER_MULTI_READ) +#define _TRACE_SYSCALLS_POINTERS_H + +#include +#include +#include "x86-64-syscalls-3.10.0-rc7_pointers_override.h" +#include "syscalls_pointers_override.h" + +#ifndef OVERRIDE_64_sys_pipe +SC_TRACE_EVENT(sys_pipe, + TP_PROTO(int * fildes), + TP_ARGS(fildes), + TP_STRUCT__entry(__field_hex(int *, fildes)), + TP_fast_assign(tp_assign(fildes, fildes)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_newuname +SC_TRACE_EVENT(sys_newuname, + TP_PROTO(struct new_utsname * name), + TP_ARGS(name), + TP_STRUCT__entry(__field_hex(struct new_utsname *, name)), + TP_fast_assign(tp_assign(name, name)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_shmdt +SC_TRACE_EVENT(sys_shmdt, + TP_PROTO(char * shmaddr), + TP_ARGS(shmaddr), + TP_STRUCT__entry(__field_hex(char *, shmaddr)), + TP_fast_assign(tp_assign(shmaddr, shmaddr)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_chdir +SC_TRACE_EVENT(sys_chdir, + TP_PROTO(const char * filename), + TP_ARGS(filename), + TP_STRUCT__entry(__string_from_user(filename, filename)), + TP_fast_assign(tp_copy_string_from_user(filename, filename)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_rmdir +SC_TRACE_EVENT(sys_rmdir, + TP_PROTO(const char * pathname), + TP_ARGS(pathname), + TP_STRUCT__entry(__string_from_user(pathname, pathname)), + TP_fast_assign(tp_copy_string_from_user(pathname, pathname)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_unlink +SC_TRACE_EVENT(sys_unlink, + TP_PROTO(const char * pathname), + TP_ARGS(pathname), + TP_STRUCT__entry(__string_from_user(pathname, pathname)), + TP_fast_assign(tp_copy_string_from_user(pathname, pathname)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_sysinfo +SC_TRACE_EVENT(sys_sysinfo, + TP_PROTO(struct sysinfo * info), + TP_ARGS(info), + TP_STRUCT__entry(__field_hex(struct sysinfo *, info)), + TP_fast_assign(tp_assign(info, info)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_times +SC_TRACE_EVENT(sys_times, + TP_PROTO(struct tms * tbuf), + TP_ARGS(tbuf), + TP_STRUCT__entry(__field_hex(struct tms *, tbuf)), + TP_fast_assign(tp_assign(tbuf, tbuf)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_sysctl +SC_TRACE_EVENT(sys_sysctl, + TP_PROTO(struct __sysctl_args * args), + TP_ARGS(args), + TP_STRUCT__entry(__field_hex(struct __sysctl_args *, args)), + TP_fast_assign(tp_assign(args, args)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_adjtimex +SC_TRACE_EVENT(sys_adjtimex, + TP_PROTO(struct timex * txc_p), + TP_ARGS(txc_p), + TP_STRUCT__entry(__field_hex(struct timex *, txc_p)), + TP_fast_assign(tp_assign(txc_p, txc_p)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_chroot +SC_TRACE_EVENT(sys_chroot, + TP_PROTO(const char * filename), + TP_ARGS(filename), + TP_STRUCT__entry(__string_from_user(filename, filename)), + TP_fast_assign(tp_copy_string_from_user(filename, filename)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_acct +SC_TRACE_EVENT(sys_acct, + TP_PROTO(const char * name), + TP_ARGS(name), + TP_STRUCT__entry(__string_from_user(name, name)), + TP_fast_assign(tp_copy_string_from_user(name, name)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_swapoff +SC_TRACE_EVENT(sys_swapoff, + TP_PROTO(const char * specialfile), + TP_ARGS(specialfile), + TP_STRUCT__entry(__string_from_user(specialfile, specialfile)), + TP_fast_assign(tp_copy_string_from_user(specialfile, specialfile)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_time +SC_TRACE_EVENT(sys_time, + TP_PROTO(time_t * tloc), + TP_ARGS(tloc), + TP_STRUCT__entry(__field_hex(time_t *, tloc)), + TP_fast_assign(tp_assign(tloc, tloc)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_set_tid_address +SC_TRACE_EVENT(sys_set_tid_address, + TP_PROTO(int * tidptr), + TP_ARGS(tidptr), + TP_STRUCT__entry(__field_hex(int *, tidptr)), + TP_fast_assign(tp_assign(tidptr, tidptr)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_mq_unlink +SC_TRACE_EVENT(sys_mq_unlink, + TP_PROTO(const char * u_name), + TP_ARGS(u_name), + TP_STRUCT__entry(__string_from_user(u_name, u_name)), + TP_fast_assign(tp_copy_string_from_user(u_name, u_name)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_newstat +SC_TRACE_EVENT(sys_newstat, + TP_PROTO(const char * filename, struct stat * statbuf), + TP_ARGS(filename, statbuf), + TP_STRUCT__entry(__string_from_user(filename, filename) __field_hex(struct stat *, statbuf)), + TP_fast_assign(tp_copy_string_from_user(filename, filename) tp_assign(statbuf, statbuf)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_newfstat +SC_TRACE_EVENT(sys_newfstat, + TP_PROTO(unsigned int fd, struct stat * statbuf), + TP_ARGS(fd, statbuf), + TP_STRUCT__entry(__field(unsigned int, fd) __field_hex(struct stat *, statbuf)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(statbuf, statbuf)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_newlstat +SC_TRACE_EVENT(sys_newlstat, + TP_PROTO(const char * filename, struct stat * statbuf), + TP_ARGS(filename, statbuf), + TP_STRUCT__entry(__string_from_user(filename, filename) __field_hex(struct stat *, statbuf)), + TP_fast_assign(tp_copy_string_from_user(filename, filename) tp_assign(statbuf, statbuf)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_access +SC_TRACE_EVENT(sys_access, + TP_PROTO(const char * filename, int mode), + TP_ARGS(filename, mode), + TP_STRUCT__entry(__string_from_user(filename, filename) __field(int, mode)), + TP_fast_assign(tp_copy_string_from_user(filename, filename) tp_assign(mode, mode)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_nanosleep +SC_TRACE_EVENT(sys_nanosleep, + TP_PROTO(struct timespec * rqtp, struct timespec * rmtp), + TP_ARGS(rqtp, rmtp), + TP_STRUCT__entry(__field_hex(struct timespec *, rqtp) __field_hex(struct timespec *, rmtp)), + TP_fast_assign(tp_assign(rqtp, rqtp) tp_assign(rmtp, rmtp)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_getitimer +SC_TRACE_EVENT(sys_getitimer, + TP_PROTO(int which, struct itimerval * value), + TP_ARGS(which, value), + TP_STRUCT__entry(__field(int, which) __field_hex(struct itimerval *, value)), + TP_fast_assign(tp_assign(which, which) tp_assign(value, value)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_truncate +SC_TRACE_EVENT(sys_truncate, + TP_PROTO(const char * path, long length), + TP_ARGS(path, length), + TP_STRUCT__entry(__string_from_user(path, path) __field(long, length)), + TP_fast_assign(tp_copy_string_from_user(path, path) tp_assign(length, length)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_getcwd +SC_TRACE_EVENT(sys_getcwd, + TP_PROTO(char * buf, unsigned long size), + TP_ARGS(buf, size), + TP_STRUCT__entry(__field_hex(char *, buf) __field(unsigned long, size)), + TP_fast_assign(tp_assign(buf, buf) tp_assign(size, size)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_rename +SC_TRACE_EVENT(sys_rename, + TP_PROTO(const char * oldname, const char * newname), + TP_ARGS(oldname, newname), + TP_STRUCT__entry(__string_from_user(oldname, oldname) __string_from_user(newname, newname)), + TP_fast_assign(tp_copy_string_from_user(oldname, oldname) tp_copy_string_from_user(newname, newname)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_mkdir +SC_TRACE_EVENT(sys_mkdir, + TP_PROTO(const char * pathname, umode_t mode), + TP_ARGS(pathname, mode), + TP_STRUCT__entry(__string_from_user(pathname, pathname) __field(umode_t, mode)), + TP_fast_assign(tp_copy_string_from_user(pathname, pathname) tp_assign(mode, mode)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_creat +SC_TRACE_EVENT(sys_creat, + TP_PROTO(const char * pathname, umode_t mode), + TP_ARGS(pathname, mode), + TP_STRUCT__entry(__string_from_user(pathname, pathname) __field(umode_t, mode)), + TP_fast_assign(tp_copy_string_from_user(pathname, pathname) tp_assign(mode, mode)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_link +SC_TRACE_EVENT(sys_link, + TP_PROTO(const char * oldname, const char * newname), + TP_ARGS(oldname, newname), + TP_STRUCT__entry(__string_from_user(oldname, oldname) __string_from_user(newname, newname)), + TP_fast_assign(tp_copy_string_from_user(oldname, oldname) tp_copy_string_from_user(newname, newname)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_symlink +SC_TRACE_EVENT(sys_symlink, + TP_PROTO(const char * oldname, const char * newname), + TP_ARGS(oldname, newname), + TP_STRUCT__entry(__string_from_user(oldname, oldname) __string_from_user(newname, newname)), + TP_fast_assign(tp_copy_string_from_user(oldname, oldname) tp_copy_string_from_user(newname, newname)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_chmod +SC_TRACE_EVENT(sys_chmod, + TP_PROTO(const char * filename, umode_t mode), + TP_ARGS(filename, mode), + TP_STRUCT__entry(__string_from_user(filename, filename) __field(umode_t, mode)), + TP_fast_assign(tp_copy_string_from_user(filename, filename) tp_assign(mode, mode)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_gettimeofday +SC_TRACE_EVENT(sys_gettimeofday, + TP_PROTO(struct timeval * tv, struct timezone * tz), + TP_ARGS(tv, tz), + TP_STRUCT__entry(__field_hex(struct timeval *, tv) __field_hex(struct timezone *, tz)), + TP_fast_assign(tp_assign(tv, tv) tp_assign(tz, tz)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_getrlimit +SC_TRACE_EVENT(sys_getrlimit, + TP_PROTO(unsigned int resource, struct rlimit * rlim), + TP_ARGS(resource, rlim), + TP_STRUCT__entry(__field(unsigned int, resource) __field_hex(struct rlimit *, rlim)), + TP_fast_assign(tp_assign(resource, resource) tp_assign(rlim, rlim)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_getrusage +SC_TRACE_EVENT(sys_getrusage, + TP_PROTO(int who, struct rusage * ru), + TP_ARGS(who, ru), + TP_STRUCT__entry(__field(int, who) __field_hex(struct rusage *, ru)), + TP_fast_assign(tp_assign(who, who) tp_assign(ru, ru)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_getgroups +SC_TRACE_EVENT(sys_getgroups, + TP_PROTO(int gidsetsize, gid_t * grouplist), + TP_ARGS(gidsetsize, grouplist), + TP_STRUCT__entry(__field(int, gidsetsize) __field_hex(gid_t *, grouplist)), + TP_fast_assign(tp_assign(gidsetsize, gidsetsize) tp_assign(grouplist, grouplist)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_setgroups +SC_TRACE_EVENT(sys_setgroups, + TP_PROTO(int gidsetsize, gid_t * grouplist), + TP_ARGS(gidsetsize, grouplist), + TP_STRUCT__entry(__field(int, gidsetsize) __field_hex(gid_t *, grouplist)), + TP_fast_assign(tp_assign(gidsetsize, gidsetsize) tp_assign(grouplist, grouplist)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_rt_sigpending +SC_TRACE_EVENT(sys_rt_sigpending, + TP_PROTO(sigset_t * uset, size_t sigsetsize), + TP_ARGS(uset, sigsetsize), + TP_STRUCT__entry(__field_hex(sigset_t *, uset) __field(size_t, sigsetsize)), + TP_fast_assign(tp_assign(uset, uset) tp_assign(sigsetsize, sigsetsize)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_rt_sigsuspend +SC_TRACE_EVENT(sys_rt_sigsuspend, + TP_PROTO(sigset_t * unewset, size_t sigsetsize), + TP_ARGS(unewset, sigsetsize), + TP_STRUCT__entry(__field_hex(sigset_t *, unewset) __field(size_t, sigsetsize)), + TP_fast_assign(tp_assign(unewset, unewset) tp_assign(sigsetsize, sigsetsize)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_sigaltstack +SC_TRACE_EVENT(sys_sigaltstack, + TP_PROTO(const stack_t * uss, stack_t * uoss), + TP_ARGS(uss, uoss), + TP_STRUCT__entry(__field_hex(const stack_t *, uss) __field_hex(stack_t *, uoss)), + TP_fast_assign(tp_assign(uss, uss) tp_assign(uoss, uoss)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_utime +SC_TRACE_EVENT(sys_utime, + TP_PROTO(char * filename, struct utimbuf * times), + TP_ARGS(filename, times), + TP_STRUCT__entry(__string_from_user(filename, filename) __field_hex(struct utimbuf *, times)), + TP_fast_assign(tp_copy_string_from_user(filename, filename) tp_assign(times, times)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_ustat +SC_TRACE_EVENT(sys_ustat, + TP_PROTO(unsigned dev, struct ustat * ubuf), + TP_ARGS(dev, ubuf), + TP_STRUCT__entry(__field(unsigned, dev) __field_hex(struct ustat *, ubuf)), + TP_fast_assign(tp_assign(dev, dev) tp_assign(ubuf, ubuf)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_statfs +SC_TRACE_EVENT(sys_statfs, + TP_PROTO(const char * pathname, struct statfs * buf), + TP_ARGS(pathname, buf), + TP_STRUCT__entry(__string_from_user(pathname, pathname) __field_hex(struct statfs *, buf)), + TP_fast_assign(tp_copy_string_from_user(pathname, pathname) tp_assign(buf, buf)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_fstatfs +SC_TRACE_EVENT(sys_fstatfs, + TP_PROTO(unsigned int fd, struct statfs * buf), + TP_ARGS(fd, buf), + TP_STRUCT__entry(__field(unsigned int, fd) __field_hex(struct statfs *, buf)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(buf, buf)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_sched_setparam +SC_TRACE_EVENT(sys_sched_setparam, + TP_PROTO(pid_t pid, struct sched_param * param), + TP_ARGS(pid, param), + TP_STRUCT__entry(__field(pid_t, pid) __field_hex(struct sched_param *, param)), + TP_fast_assign(tp_assign(pid, pid) tp_assign(param, param)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_sched_getparam +SC_TRACE_EVENT(sys_sched_getparam, + TP_PROTO(pid_t pid, struct sched_param * param), + TP_ARGS(pid, param), + TP_STRUCT__entry(__field(pid_t, pid) __field_hex(struct sched_param *, param)), + TP_fast_assign(tp_assign(pid, pid) tp_assign(param, param)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_sched_rr_get_interval +SC_TRACE_EVENT(sys_sched_rr_get_interval, + TP_PROTO(pid_t pid, struct timespec * interval), + TP_ARGS(pid, interval), + TP_STRUCT__entry(__field(pid_t, pid) __field_hex(struct timespec *, interval)), + TP_fast_assign(tp_assign(pid, pid) tp_assign(interval, interval)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_pivot_root +SC_TRACE_EVENT(sys_pivot_root, + TP_PROTO(const char * new_root, const char * put_old), + TP_ARGS(new_root, put_old), + TP_STRUCT__entry(__string_from_user(new_root, new_root) __string_from_user(put_old, put_old)), + TP_fast_assign(tp_copy_string_from_user(new_root, new_root) tp_copy_string_from_user(put_old, put_old)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_setrlimit +SC_TRACE_EVENT(sys_setrlimit, + TP_PROTO(unsigned int resource, struct rlimit * rlim), + TP_ARGS(resource, rlim), + TP_STRUCT__entry(__field(unsigned int, resource) __field_hex(struct rlimit *, rlim)), + TP_fast_assign(tp_assign(resource, resource) tp_assign(rlim, rlim)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_settimeofday +SC_TRACE_EVENT(sys_settimeofday, + TP_PROTO(struct timeval * tv, struct timezone * tz), + TP_ARGS(tv, tz), + TP_STRUCT__entry(__field_hex(struct timeval *, tv) __field_hex(struct timezone *, tz)), + TP_fast_assign(tp_assign(tv, tv) tp_assign(tz, tz)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_umount +SC_TRACE_EVENT(sys_umount, + TP_PROTO(char * name, int flags), + TP_ARGS(name, flags), + TP_STRUCT__entry(__string_from_user(name, name) __field(int, flags)), + TP_fast_assign(tp_copy_string_from_user(name, name) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_swapon +SC_TRACE_EVENT(sys_swapon, + TP_PROTO(const char * specialfile, int swap_flags), + TP_ARGS(specialfile, swap_flags), + TP_STRUCT__entry(__string_from_user(specialfile, specialfile) __field(int, swap_flags)), + TP_fast_assign(tp_copy_string_from_user(specialfile, specialfile) tp_assign(swap_flags, swap_flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_sethostname +SC_TRACE_EVENT(sys_sethostname, + TP_PROTO(char * name, int len), + TP_ARGS(name, len), + TP_STRUCT__entry(__string_from_user(name, name) __field(int, len)), + TP_fast_assign(tp_copy_string_from_user(name, name) tp_assign(len, len)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_setdomainname +SC_TRACE_EVENT(sys_setdomainname, + TP_PROTO(char * name, int len), + TP_ARGS(name, len), + TP_STRUCT__entry(__string_from_user(name, name) __field(int, len)), + TP_fast_assign(tp_copy_string_from_user(name, name) tp_assign(len, len)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_delete_module +SC_TRACE_EVENT(sys_delete_module, + TP_PROTO(const char * name_user, unsigned int flags), + TP_ARGS(name_user, flags), + TP_STRUCT__entry(__string_from_user(name_user, name_user) __field(unsigned int, flags)), + TP_fast_assign(tp_copy_string_from_user(name_user, name_user) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_removexattr +SC_TRACE_EVENT(sys_removexattr, + TP_PROTO(const char * pathname, const char * name), + TP_ARGS(pathname, name), + TP_STRUCT__entry(__string_from_user(pathname, pathname) __string_from_user(name, name)), + TP_fast_assign(tp_copy_string_from_user(pathname, pathname) tp_copy_string_from_user(name, name)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_lremovexattr +SC_TRACE_EVENT(sys_lremovexattr, + TP_PROTO(const char * pathname, const char * name), + TP_ARGS(pathname, name), + TP_STRUCT__entry(__string_from_user(pathname, pathname) __string_from_user(name, name)), + TP_fast_assign(tp_copy_string_from_user(pathname, pathname) tp_copy_string_from_user(name, name)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_fremovexattr +SC_TRACE_EVENT(sys_fremovexattr, + TP_PROTO(int fd, const char * name), + TP_ARGS(fd, name), + TP_STRUCT__entry(__field(int, fd) __string_from_user(name, name)), + TP_fast_assign(tp_assign(fd, fd) tp_copy_string_from_user(name, name)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_io_setup +SC_TRACE_EVENT(sys_io_setup, + TP_PROTO(unsigned nr_events, aio_context_t * ctxp), + TP_ARGS(nr_events, ctxp), + TP_STRUCT__entry(__field(unsigned, nr_events) __field_hex(aio_context_t *, ctxp)), + TP_fast_assign(tp_assign(nr_events, nr_events) tp_assign(ctxp, ctxp)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_timer_gettime +SC_TRACE_EVENT(sys_timer_gettime, + TP_PROTO(timer_t timer_id, struct itimerspec * setting), + TP_ARGS(timer_id, setting), + TP_STRUCT__entry(__field(timer_t, timer_id) __field_hex(struct itimerspec *, setting)), + TP_fast_assign(tp_assign(timer_id, timer_id) tp_assign(setting, setting)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_clock_settime +SC_TRACE_EVENT(sys_clock_settime, + TP_PROTO(const clockid_t which_clock, const struct timespec * tp), + TP_ARGS(which_clock, tp), + TP_STRUCT__entry(__field(const clockid_t, which_clock) __field_hex(const struct timespec *, tp)), + TP_fast_assign(tp_assign(which_clock, which_clock) tp_assign(tp, tp)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_clock_gettime +SC_TRACE_EVENT(sys_clock_gettime, + TP_PROTO(const clockid_t which_clock, struct timespec * tp), + TP_ARGS(which_clock, tp), + TP_STRUCT__entry(__field(const clockid_t, which_clock) __field_hex(struct timespec *, tp)), + TP_fast_assign(tp_assign(which_clock, which_clock) tp_assign(tp, tp)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_clock_getres +SC_TRACE_EVENT(sys_clock_getres, + TP_PROTO(const clockid_t which_clock, struct timespec * tp), + TP_ARGS(which_clock, tp), + TP_STRUCT__entry(__field(const clockid_t, which_clock) __field_hex(struct timespec *, tp)), + TP_fast_assign(tp_assign(which_clock, which_clock) tp_assign(tp, tp)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_utimes +SC_TRACE_EVENT(sys_utimes, + TP_PROTO(char * filename, struct timeval * utimes), + TP_ARGS(filename, utimes), + TP_STRUCT__entry(__string_from_user(filename, filename) __field_hex(struct timeval *, utimes)), + TP_fast_assign(tp_copy_string_from_user(filename, filename) tp_assign(utimes, utimes)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_mq_notify +SC_TRACE_EVENT(sys_mq_notify, + TP_PROTO(mqd_t mqdes, const struct sigevent * u_notification), + TP_ARGS(mqdes, u_notification), + TP_STRUCT__entry(__field(mqd_t, mqdes) __field_hex(const struct sigevent *, u_notification)), + TP_fast_assign(tp_assign(mqdes, mqdes) tp_assign(u_notification, u_notification)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_set_robust_list +SC_TRACE_EVENT(sys_set_robust_list, + TP_PROTO(struct robust_list_head * head, size_t len), + TP_ARGS(head, len), + TP_STRUCT__entry(__field_hex(struct robust_list_head *, head) __field(size_t, len)), + TP_fast_assign(tp_assign(head, head) tp_assign(len, len)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_timerfd_gettime +SC_TRACE_EVENT(sys_timerfd_gettime, + TP_PROTO(int ufd, struct itimerspec * otmr), + TP_ARGS(ufd, otmr), + TP_STRUCT__entry(__field(int, ufd) __field_hex(struct itimerspec *, otmr)), + TP_fast_assign(tp_assign(ufd, ufd) tp_assign(otmr, otmr)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_pipe2 +SC_TRACE_EVENT(sys_pipe2, + TP_PROTO(int * fildes, int flags), + TP_ARGS(fildes, flags), + TP_STRUCT__entry(__field_hex(int *, fildes) __field(int, flags)), + TP_fast_assign(tp_assign(fildes, fildes) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_clock_adjtime +SC_TRACE_EVENT(sys_clock_adjtime, + TP_PROTO(const clockid_t which_clock, struct timex * utx), + TP_ARGS(which_clock, utx), + TP_STRUCT__entry(__field(const clockid_t, which_clock) __field_hex(struct timex *, utx)), + TP_fast_assign(tp_assign(which_clock, which_clock) tp_assign(utx, utx)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_read +SC_TRACE_EVENT(sys_read, + TP_PROTO(unsigned int fd, char * buf, size_t count), + TP_ARGS(fd, buf, count), + TP_STRUCT__entry(__field(unsigned int, fd) __field_hex(char *, buf) __field(size_t, count)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(buf, buf) tp_assign(count, count)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_write +SC_TRACE_EVENT(sys_write, + TP_PROTO(unsigned int fd, const char * buf, size_t count), + TP_ARGS(fd, buf, count), + TP_STRUCT__entry(__field(unsigned int, fd) __field_hex(const char *, buf) __field(size_t, count)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(buf, buf) tp_assign(count, count)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_open +SC_TRACE_EVENT(sys_open, + TP_PROTO(const char * filename, int flags, umode_t mode), + TP_ARGS(filename, flags, mode), + TP_STRUCT__entry(__string_from_user(filename, filename) __field(int, flags) __field(umode_t, mode)), + TP_fast_assign(tp_copy_string_from_user(filename, filename) tp_assign(flags, flags) tp_assign(mode, mode)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_poll +SC_TRACE_EVENT(sys_poll, + TP_PROTO(struct pollfd * ufds, unsigned int nfds, int timeout_msecs), + TP_ARGS(ufds, nfds, timeout_msecs), + TP_STRUCT__entry(__field_hex(struct pollfd *, ufds) __field(unsigned int, nfds) __field(int, timeout_msecs)), + TP_fast_assign(tp_assign(ufds, ufds) tp_assign(nfds, nfds) tp_assign(timeout_msecs, timeout_msecs)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_readv +SC_TRACE_EVENT(sys_readv, + TP_PROTO(unsigned long fd, const struct iovec * vec, unsigned long vlen), + TP_ARGS(fd, vec, vlen), + TP_STRUCT__entry(__field(unsigned long, fd) __field_hex(const struct iovec *, vec) __field(unsigned long, vlen)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(vec, vec) tp_assign(vlen, vlen)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_writev +SC_TRACE_EVENT(sys_writev, + TP_PROTO(unsigned long fd, const struct iovec * vec, unsigned long vlen), + TP_ARGS(fd, vec, vlen), + TP_STRUCT__entry(__field(unsigned long, fd) __field_hex(const struct iovec *, vec) __field(unsigned long, vlen)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(vec, vec) tp_assign(vlen, vlen)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_mincore +SC_TRACE_EVENT(sys_mincore, + TP_PROTO(unsigned long start, size_t len, unsigned char * vec), + TP_ARGS(start, len, vec), + TP_STRUCT__entry(__field(unsigned long, start) __field(size_t, len) __field_hex(unsigned char *, vec)), + TP_fast_assign(tp_assign(start, start) tp_assign(len, len) tp_assign(vec, vec)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_shmat +SC_TRACE_EVENT(sys_shmat, + TP_PROTO(int shmid, char * shmaddr, int shmflg), + TP_ARGS(shmid, shmaddr, shmflg), + TP_STRUCT__entry(__field(int, shmid) __field_hex(char *, shmaddr) __field(int, shmflg)), + TP_fast_assign(tp_assign(shmid, shmid) tp_assign(shmaddr, shmaddr) tp_assign(shmflg, shmflg)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_shmctl +SC_TRACE_EVENT(sys_shmctl, + TP_PROTO(int shmid, int cmd, struct shmid_ds * buf), + TP_ARGS(shmid, cmd, buf), + TP_STRUCT__entry(__field(int, shmid) __field(int, cmd) __field_hex(struct shmid_ds *, buf)), + TP_fast_assign(tp_assign(shmid, shmid) tp_assign(cmd, cmd) tp_assign(buf, buf)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_setitimer +SC_TRACE_EVENT(sys_setitimer, + TP_PROTO(int which, struct itimerval * value, struct itimerval * ovalue), + TP_ARGS(which, value, ovalue), + TP_STRUCT__entry(__field(int, which) __field_hex(struct itimerval *, value) __field_hex(struct itimerval *, ovalue)), + TP_fast_assign(tp_assign(which, which) tp_assign(value, value) tp_assign(ovalue, ovalue)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_connect +SC_TRACE_EVENT(sys_connect, + TP_PROTO(int fd, struct sockaddr * uservaddr, int addrlen), + TP_ARGS(fd, uservaddr, addrlen), + TP_STRUCT__entry(__field(int, fd) __field_hex(struct sockaddr *, uservaddr) __field_hex(int, addrlen)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(uservaddr, uservaddr) tp_assign(addrlen, addrlen)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_accept +SC_TRACE_EVENT(sys_accept, + TP_PROTO(int fd, struct sockaddr * upeer_sockaddr, int * upeer_addrlen), + TP_ARGS(fd, upeer_sockaddr, upeer_addrlen), + TP_STRUCT__entry(__field(int, fd) __field_hex(struct sockaddr *, upeer_sockaddr) __field_hex(int *, upeer_addrlen)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(upeer_sockaddr, upeer_sockaddr) tp_assign(upeer_addrlen, upeer_addrlen)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_sendmsg +SC_TRACE_EVENT(sys_sendmsg, + TP_PROTO(int fd, struct msghdr * msg, unsigned int flags), + TP_ARGS(fd, msg, flags), + TP_STRUCT__entry(__field(int, fd) __field_hex(struct msghdr *, msg) __field(unsigned int, flags)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(msg, msg) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_recvmsg +SC_TRACE_EVENT(sys_recvmsg, + TP_PROTO(int fd, struct msghdr * msg, unsigned int flags), + TP_ARGS(fd, msg, flags), + TP_STRUCT__entry(__field(int, fd) __field_hex(struct msghdr *, msg) __field(unsigned int, flags)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(msg, msg) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_bind +SC_TRACE_EVENT(sys_bind, + TP_PROTO(int fd, struct sockaddr * umyaddr, int addrlen), + TP_ARGS(fd, umyaddr, addrlen), + TP_STRUCT__entry(__field(int, fd) __field_hex(struct sockaddr *, umyaddr) __field_hex(int, addrlen)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(umyaddr, umyaddr) tp_assign(addrlen, addrlen)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_getsockname +SC_TRACE_EVENT(sys_getsockname, + TP_PROTO(int fd, struct sockaddr * usockaddr, int * usockaddr_len), + TP_ARGS(fd, usockaddr, usockaddr_len), + TP_STRUCT__entry(__field(int, fd) __field_hex(struct sockaddr *, usockaddr) __field_hex(int *, usockaddr_len)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(usockaddr, usockaddr) tp_assign(usockaddr_len, usockaddr_len)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_getpeername +SC_TRACE_EVENT(sys_getpeername, + TP_PROTO(int fd, struct sockaddr * usockaddr, int * usockaddr_len), + TP_ARGS(fd, usockaddr, usockaddr_len), + TP_STRUCT__entry(__field(int, fd) __field_hex(struct sockaddr *, usockaddr) __field_hex(int *, usockaddr_len)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(usockaddr, usockaddr) tp_assign(usockaddr_len, usockaddr_len)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_semop +SC_TRACE_EVENT(sys_semop, + TP_PROTO(int semid, struct sembuf * tsops, unsigned nsops), + TP_ARGS(semid, tsops, nsops), + TP_STRUCT__entry(__field(int, semid) __field_hex(struct sembuf *, tsops) __field(unsigned, nsops)), + TP_fast_assign(tp_assign(semid, semid) tp_assign(tsops, tsops) tp_assign(nsops, nsops)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_msgctl +SC_TRACE_EVENT(sys_msgctl, + TP_PROTO(int msqid, int cmd, struct msqid_ds * buf), + TP_ARGS(msqid, cmd, buf), + TP_STRUCT__entry(__field(int, msqid) __field(int, cmd) __field_hex(struct msqid_ds *, buf)), + TP_fast_assign(tp_assign(msqid, msqid) tp_assign(cmd, cmd) tp_assign(buf, buf)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_getdents +SC_TRACE_EVENT(sys_getdents, + TP_PROTO(unsigned int fd, struct linux_dirent * dirent, unsigned int count), + TP_ARGS(fd, dirent, count), + TP_STRUCT__entry(__field(unsigned int, fd) __field_hex(struct linux_dirent *, dirent) __field(unsigned int, count)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(dirent, dirent) tp_assign(count, count)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_readlink +SC_TRACE_EVENT(sys_readlink, + TP_PROTO(const char * path, char * buf, int bufsiz), + TP_ARGS(path, buf, bufsiz), + TP_STRUCT__entry(__string_from_user(path, path) __field_hex(char *, buf) __field(int, bufsiz)), + TP_fast_assign(tp_copy_string_from_user(path, path) tp_assign(buf, buf) tp_assign(bufsiz, bufsiz)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_chown +SC_TRACE_EVENT(sys_chown, + TP_PROTO(const char * filename, uid_t user, gid_t group), + TP_ARGS(filename, user, group), + TP_STRUCT__entry(__string_from_user(filename, filename) __field(uid_t, user) __field(gid_t, group)), + TP_fast_assign(tp_copy_string_from_user(filename, filename) tp_assign(user, user) tp_assign(group, group)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_lchown +SC_TRACE_EVENT(sys_lchown, + TP_PROTO(const char * filename, uid_t user, gid_t group), + TP_ARGS(filename, user, group), + TP_STRUCT__entry(__string_from_user(filename, filename) __field(uid_t, user) __field(gid_t, group)), + TP_fast_assign(tp_copy_string_from_user(filename, filename) tp_assign(user, user) tp_assign(group, group)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_syslog +SC_TRACE_EVENT(sys_syslog, + TP_PROTO(int type, char * buf, int len), + TP_ARGS(type, buf, len), + TP_STRUCT__entry(__field(int, type) __field_hex(char *, buf) __field(int, len)), + TP_fast_assign(tp_assign(type, type) tp_assign(buf, buf) tp_assign(len, len)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_getresuid +SC_TRACE_EVENT(sys_getresuid, + TP_PROTO(uid_t * ruidp, uid_t * euidp, uid_t * suidp), + TP_ARGS(ruidp, euidp, suidp), + TP_STRUCT__entry(__field_hex(uid_t *, ruidp) __field_hex(uid_t *, euidp) __field_hex(uid_t *, suidp)), + TP_fast_assign(tp_assign(ruidp, ruidp) tp_assign(euidp, euidp) tp_assign(suidp, suidp)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_getresgid +SC_TRACE_EVENT(sys_getresgid, + TP_PROTO(gid_t * rgidp, gid_t * egidp, gid_t * sgidp), + TP_ARGS(rgidp, egidp, sgidp), + TP_STRUCT__entry(__field_hex(gid_t *, rgidp) __field_hex(gid_t *, egidp) __field_hex(gid_t *, sgidp)), + TP_fast_assign(tp_assign(rgidp, rgidp) tp_assign(egidp, egidp) tp_assign(sgidp, sgidp)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_rt_sigqueueinfo +SC_TRACE_EVENT(sys_rt_sigqueueinfo, + TP_PROTO(pid_t pid, int sig, siginfo_t * uinfo), + TP_ARGS(pid, sig, uinfo), + TP_STRUCT__entry(__field(pid_t, pid) __field(int, sig) __field_hex(siginfo_t *, uinfo)), + TP_fast_assign(tp_assign(pid, pid) tp_assign(sig, sig) tp_assign(uinfo, uinfo)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_mknod +SC_TRACE_EVENT(sys_mknod, + TP_PROTO(const char * filename, umode_t mode, unsigned dev), + TP_ARGS(filename, mode, dev), + TP_STRUCT__entry(__string_from_user(filename, filename) __field(umode_t, mode) __field(unsigned, dev)), + TP_fast_assign(tp_copy_string_from_user(filename, filename) tp_assign(mode, mode) tp_assign(dev, dev)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_sched_setscheduler +SC_TRACE_EVENT(sys_sched_setscheduler, + TP_PROTO(pid_t pid, int policy, struct sched_param * param), + TP_ARGS(pid, policy, param), + TP_STRUCT__entry(__field(pid_t, pid) __field(int, policy) __field_hex(struct sched_param *, param)), + TP_fast_assign(tp_assign(pid, pid) tp_assign(policy, policy) tp_assign(param, param)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_init_module +SC_TRACE_EVENT(sys_init_module, + TP_PROTO(void * umod, unsigned long len, const char * uargs), + TP_ARGS(umod, len, uargs), + TP_STRUCT__entry(__field_hex(void *, umod) __field(unsigned long, len) __field_hex(const char *, uargs)), + TP_fast_assign(tp_assign(umod, umod) tp_assign(len, len) tp_assign(uargs, uargs)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_listxattr +SC_TRACE_EVENT(sys_listxattr, + TP_PROTO(const char * pathname, char * list, size_t size), + TP_ARGS(pathname, list, size), + TP_STRUCT__entry(__string_from_user(pathname, pathname) __field_hex(char *, list) __field(size_t, size)), + TP_fast_assign(tp_copy_string_from_user(pathname, pathname) tp_assign(list, list) tp_assign(size, size)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_llistxattr +SC_TRACE_EVENT(sys_llistxattr, + TP_PROTO(const char * pathname, char * list, size_t size), + TP_ARGS(pathname, list, size), + TP_STRUCT__entry(__string_from_user(pathname, pathname) __field_hex(char *, list) __field(size_t, size)), + TP_fast_assign(tp_copy_string_from_user(pathname, pathname) tp_assign(list, list) tp_assign(size, size)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_flistxattr +SC_TRACE_EVENT(sys_flistxattr, + TP_PROTO(int fd, char * list, size_t size), + TP_ARGS(fd, list, size), + TP_STRUCT__entry(__field(int, fd) __field_hex(char *, list) __field(size_t, size)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(list, list) tp_assign(size, size)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_sched_setaffinity +SC_TRACE_EVENT(sys_sched_setaffinity, + TP_PROTO(pid_t pid, unsigned int len, unsigned long * user_mask_ptr), + TP_ARGS(pid, len, user_mask_ptr), + TP_STRUCT__entry(__field(pid_t, pid) __field(unsigned int, len) __field_hex(unsigned long *, user_mask_ptr)), + TP_fast_assign(tp_assign(pid, pid) tp_assign(len, len) tp_assign(user_mask_ptr, user_mask_ptr)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_sched_getaffinity +SC_TRACE_EVENT(sys_sched_getaffinity, + TP_PROTO(pid_t pid, unsigned int len, unsigned long * user_mask_ptr), + TP_ARGS(pid, len, user_mask_ptr), + TP_STRUCT__entry(__field(pid_t, pid) __field(unsigned int, len) __field_hex(unsigned long *, user_mask_ptr)), + TP_fast_assign(tp_assign(pid, pid) tp_assign(len, len) tp_assign(user_mask_ptr, user_mask_ptr)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_io_submit +SC_TRACE_EVENT(sys_io_submit, + TP_PROTO(aio_context_t ctx_id, long nr, struct iocb * * iocbpp), + TP_ARGS(ctx_id, nr, iocbpp), + TP_STRUCT__entry(__field(aio_context_t, ctx_id) __field(long, nr) __field_hex(struct iocb * *, iocbpp)), + TP_fast_assign(tp_assign(ctx_id, ctx_id) tp_assign(nr, nr) tp_assign(iocbpp, iocbpp)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_io_cancel +SC_TRACE_EVENT(sys_io_cancel, + TP_PROTO(aio_context_t ctx_id, struct iocb * iocb, struct io_event * result), + TP_ARGS(ctx_id, iocb, result), + TP_STRUCT__entry(__field(aio_context_t, ctx_id) __field_hex(struct iocb *, iocb) __field_hex(struct io_event *, result)), + TP_fast_assign(tp_assign(ctx_id, ctx_id) tp_assign(iocb, iocb) tp_assign(result, result)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_lookup_dcookie +SC_TRACE_EVENT(sys_lookup_dcookie, + TP_PROTO(u64 cookie64, char * buf, size_t len), + TP_ARGS(cookie64, buf, len), + TP_STRUCT__entry(__field(u64, cookie64) __field_hex(char *, buf) __field(size_t, len)), + TP_fast_assign(tp_assign(cookie64, cookie64) tp_assign(buf, buf) tp_assign(len, len)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_getdents64 +SC_TRACE_EVENT(sys_getdents64, + TP_PROTO(unsigned int fd, struct linux_dirent64 * dirent, unsigned int count), + TP_ARGS(fd, dirent, count), + TP_STRUCT__entry(__field(unsigned int, fd) __field_hex(struct linux_dirent64 *, dirent) __field(unsigned int, count)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(dirent, dirent) tp_assign(count, count)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_timer_create +SC_TRACE_EVENT(sys_timer_create, + TP_PROTO(const clockid_t which_clock, struct sigevent * timer_event_spec, timer_t * created_timer_id), + TP_ARGS(which_clock, timer_event_spec, created_timer_id), + TP_STRUCT__entry(__field(const clockid_t, which_clock) __field_hex(struct sigevent *, timer_event_spec) __field_hex(timer_t *, created_timer_id)), + TP_fast_assign(tp_assign(which_clock, which_clock) tp_assign(timer_event_spec, timer_event_spec) tp_assign(created_timer_id, created_timer_id)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_set_mempolicy +SC_TRACE_EVENT(sys_set_mempolicy, + TP_PROTO(int mode, unsigned long * nmask, unsigned long maxnode), + TP_ARGS(mode, nmask, maxnode), + TP_STRUCT__entry(__field(int, mode) __field_hex(unsigned long *, nmask) __field(unsigned long, maxnode)), + TP_fast_assign(tp_assign(mode, mode) tp_assign(nmask, nmask) tp_assign(maxnode, maxnode)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_mq_getsetattr +SC_TRACE_EVENT(sys_mq_getsetattr, + TP_PROTO(mqd_t mqdes, const struct mq_attr * u_mqstat, struct mq_attr * u_omqstat), + TP_ARGS(mqdes, u_mqstat, u_omqstat), + TP_STRUCT__entry(__field(mqd_t, mqdes) __field_hex(const struct mq_attr *, u_mqstat) __field_hex(struct mq_attr *, u_omqstat)), + TP_fast_assign(tp_assign(mqdes, mqdes) tp_assign(u_mqstat, u_mqstat) tp_assign(u_omqstat, u_omqstat)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_inotify_add_watch +SC_TRACE_EVENT(sys_inotify_add_watch, + TP_PROTO(int fd, const char * pathname, u32 mask), + TP_ARGS(fd, pathname, mask), + TP_STRUCT__entry(__field(int, fd) __string_from_user(pathname, pathname) __field(u32, mask)), + TP_fast_assign(tp_assign(fd, fd) tp_copy_string_from_user(pathname, pathname) tp_assign(mask, mask)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_mkdirat +SC_TRACE_EVENT(sys_mkdirat, + TP_PROTO(int dfd, const char * pathname, umode_t mode), + TP_ARGS(dfd, pathname, mode), + TP_STRUCT__entry(__field(int, dfd) __string_from_user(pathname, pathname) __field(umode_t, mode)), + TP_fast_assign(tp_assign(dfd, dfd) tp_copy_string_from_user(pathname, pathname) tp_assign(mode, mode)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_futimesat +SC_TRACE_EVENT(sys_futimesat, + TP_PROTO(int dfd, const char * filename, struct timeval * utimes), + TP_ARGS(dfd, filename, utimes), + TP_STRUCT__entry(__field(int, dfd) __string_from_user(filename, filename) __field_hex(struct timeval *, utimes)), + TP_fast_assign(tp_assign(dfd, dfd) tp_copy_string_from_user(filename, filename) tp_assign(utimes, utimes)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_unlinkat +SC_TRACE_EVENT(sys_unlinkat, + TP_PROTO(int dfd, const char * pathname, int flag), + TP_ARGS(dfd, pathname, flag), + TP_STRUCT__entry(__field(int, dfd) __string_from_user(pathname, pathname) __field(int, flag)), + TP_fast_assign(tp_assign(dfd, dfd) tp_copy_string_from_user(pathname, pathname) tp_assign(flag, flag)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_symlinkat +SC_TRACE_EVENT(sys_symlinkat, + TP_PROTO(const char * oldname, int newdfd, const char * newname), + TP_ARGS(oldname, newdfd, newname), + TP_STRUCT__entry(__string_from_user(oldname, oldname) __field(int, newdfd) __string_from_user(newname, newname)), + TP_fast_assign(tp_copy_string_from_user(oldname, oldname) tp_assign(newdfd, newdfd) tp_copy_string_from_user(newname, newname)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_fchmodat +SC_TRACE_EVENT(sys_fchmodat, + TP_PROTO(int dfd, const char * filename, umode_t mode), + TP_ARGS(dfd, filename, mode), + TP_STRUCT__entry(__field(int, dfd) __string_from_user(filename, filename) __field(umode_t, mode)), + TP_fast_assign(tp_assign(dfd, dfd) tp_copy_string_from_user(filename, filename) tp_assign(mode, mode)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_faccessat +SC_TRACE_EVENT(sys_faccessat, + TP_PROTO(int dfd, const char * filename, int mode), + TP_ARGS(dfd, filename, mode), + TP_STRUCT__entry(__field(int, dfd) __string_from_user(filename, filename) __field(int, mode)), + TP_fast_assign(tp_assign(dfd, dfd) tp_copy_string_from_user(filename, filename) tp_assign(mode, mode)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_get_robust_list +SC_TRACE_EVENT(sys_get_robust_list, + TP_PROTO(int pid, struct robust_list_head * * head_ptr, size_t * len_ptr), + TP_ARGS(pid, head_ptr, len_ptr), + TP_STRUCT__entry(__field(int, pid) __field_hex(struct robust_list_head * *, head_ptr) __field_hex(size_t *, len_ptr)), + TP_fast_assign(tp_assign(pid, pid) tp_assign(head_ptr, head_ptr) tp_assign(len_ptr, len_ptr)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_signalfd +SC_TRACE_EVENT(sys_signalfd, + TP_PROTO(int ufd, sigset_t * user_mask, size_t sizemask), + TP_ARGS(ufd, user_mask, sizemask), + TP_STRUCT__entry(__field(int, ufd) __field_hex(sigset_t *, user_mask) __field(size_t, sizemask)), + TP_fast_assign(tp_assign(ufd, ufd) tp_assign(user_mask, user_mask) tp_assign(sizemask, sizemask)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_open_by_handle_at +SC_TRACE_EVENT(sys_open_by_handle_at, + TP_PROTO(int mountdirfd, struct file_handle * handle, int flags), + TP_ARGS(mountdirfd, handle, flags), + TP_STRUCT__entry(__field(int, mountdirfd) __field_hex(struct file_handle *, handle) __field(int, flags)), + TP_fast_assign(tp_assign(mountdirfd, mountdirfd) tp_assign(handle, handle) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_getcpu +SC_TRACE_EVENT(sys_getcpu, + TP_PROTO(unsigned * cpup, unsigned * nodep, struct getcpu_cache * unused), + TP_ARGS(cpup, nodep, unused), + TP_STRUCT__entry(__field_hex(unsigned *, cpup) __field_hex(unsigned *, nodep) __field_hex(struct getcpu_cache *, unused)), + TP_fast_assign(tp_assign(cpup, cpup) tp_assign(nodep, nodep) tp_assign(unused, unused)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_finit_module +SC_TRACE_EVENT(sys_finit_module, + TP_PROTO(int fd, const char * uargs, int flags), + TP_ARGS(fd, uargs, flags), + TP_STRUCT__entry(__field(int, fd) __field_hex(const char *, uargs) __field(int, flags)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(uargs, uargs) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_rt_sigaction +SC_TRACE_EVENT(sys_rt_sigaction, + TP_PROTO(int sig, const struct sigaction * act, struct sigaction * oact, size_t sigsetsize), + TP_ARGS(sig, act, oact, sigsetsize), + TP_STRUCT__entry(__field(int, sig) __field_hex(const struct sigaction *, act) __field_hex(struct sigaction *, oact) __field(size_t, sigsetsize)), + TP_fast_assign(tp_assign(sig, sig) tp_assign(act, act) tp_assign(oact, oact) tp_assign(sigsetsize, sigsetsize)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_rt_sigprocmask +SC_TRACE_EVENT(sys_rt_sigprocmask, + TP_PROTO(int how, sigset_t * nset, sigset_t * oset, size_t sigsetsize), + TP_ARGS(how, nset, oset, sigsetsize), + TP_STRUCT__entry(__field(int, how) __field_hex(sigset_t *, nset) __field_hex(sigset_t *, oset) __field(size_t, sigsetsize)), + TP_fast_assign(tp_assign(how, how) tp_assign(nset, nset) tp_assign(oset, oset) tp_assign(sigsetsize, sigsetsize)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_pread64 +SC_TRACE_EVENT(sys_pread64, + TP_PROTO(unsigned int fd, char * buf, size_t count, loff_t pos), + TP_ARGS(fd, buf, count, pos), + TP_STRUCT__entry(__field(unsigned int, fd) __field_hex(char *, buf) __field(size_t, count) __field(loff_t, pos)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(buf, buf) tp_assign(count, count) tp_assign(pos, pos)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_pwrite64 +SC_TRACE_EVENT(sys_pwrite64, + TP_PROTO(unsigned int fd, const char * buf, size_t count, loff_t pos), + TP_ARGS(fd, buf, count, pos), + TP_STRUCT__entry(__field(unsigned int, fd) __field_hex(const char *, buf) __field(size_t, count) __field(loff_t, pos)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(buf, buf) tp_assign(count, count) tp_assign(pos, pos)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_sendfile64 +SC_TRACE_EVENT(sys_sendfile64, + TP_PROTO(int out_fd, int in_fd, loff_t * offset, size_t count), + TP_ARGS(out_fd, in_fd, offset, count), + TP_STRUCT__entry(__field(int, out_fd) __field(int, in_fd) __field_hex(loff_t *, offset) __field(size_t, count)), + TP_fast_assign(tp_assign(out_fd, out_fd) tp_assign(in_fd, in_fd) tp_assign(offset, offset) tp_assign(count, count)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_socketpair +SC_TRACE_EVENT(sys_socketpair, + TP_PROTO(int family, int type, int protocol, int * usockvec), + TP_ARGS(family, type, protocol, usockvec), + TP_STRUCT__entry(__field(int, family) __field(int, type) __field(int, protocol) __field_hex(int *, usockvec)), + TP_fast_assign(tp_assign(family, family) tp_assign(type, type) tp_assign(protocol, protocol) tp_assign(usockvec, usockvec)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_wait4 +SC_TRACE_EVENT(sys_wait4, + TP_PROTO(pid_t upid, int * stat_addr, int options, struct rusage * ru), + TP_ARGS(upid, stat_addr, options, ru), + TP_STRUCT__entry(__field(pid_t, upid) __field_hex(int *, stat_addr) __field(int, options) __field_hex(struct rusage *, ru)), + TP_fast_assign(tp_assign(upid, upid) tp_assign(stat_addr, stat_addr) tp_assign(options, options) tp_assign(ru, ru)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_msgsnd +SC_TRACE_EVENT(sys_msgsnd, + TP_PROTO(int msqid, struct msgbuf * msgp, size_t msgsz, int msgflg), + TP_ARGS(msqid, msgp, msgsz, msgflg), + TP_STRUCT__entry(__field(int, msqid) __field_hex(struct msgbuf *, msgp) __field(size_t, msgsz) __field(int, msgflg)), + TP_fast_assign(tp_assign(msqid, msqid) tp_assign(msgp, msgp) tp_assign(msgsz, msgsz) tp_assign(msgflg, msgflg)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_rt_sigtimedwait +SC_TRACE_EVENT(sys_rt_sigtimedwait, + TP_PROTO(const sigset_t * uthese, siginfo_t * uinfo, const struct timespec * uts, size_t sigsetsize), + TP_ARGS(uthese, uinfo, uts, sigsetsize), + TP_STRUCT__entry(__field_hex(const sigset_t *, uthese) __field_hex(siginfo_t *, uinfo) __field_hex(const struct timespec *, uts) __field(size_t, sigsetsize)), + TP_fast_assign(tp_assign(uthese, uthese) tp_assign(uinfo, uinfo) tp_assign(uts, uts) tp_assign(sigsetsize, sigsetsize)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_reboot +SC_TRACE_EVENT(sys_reboot, + TP_PROTO(int magic1, int magic2, unsigned int cmd, void * arg), + TP_ARGS(magic1, magic2, cmd, arg), + TP_STRUCT__entry(__field(int, magic1) __field(int, magic2) __field(unsigned int, cmd) __field_hex(void *, arg)), + TP_fast_assign(tp_assign(magic1, magic1) tp_assign(magic2, magic2) tp_assign(cmd, cmd) tp_assign(arg, arg)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_quotactl +SC_TRACE_EVENT(sys_quotactl, + TP_PROTO(unsigned int cmd, const char * special, qid_t id, void * addr), + TP_ARGS(cmd, special, id, addr), + TP_STRUCT__entry(__field(unsigned int, cmd) __field_hex(const char *, special) __field(qid_t, id) __field_hex(void *, addr)), + TP_fast_assign(tp_assign(cmd, cmd) tp_assign(special, special) tp_assign(id, id) tp_assign(addr, addr)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_getxattr +SC_TRACE_EVENT(sys_getxattr, + TP_PROTO(const char * pathname, const char * name, void * value, size_t size), + TP_ARGS(pathname, name, value, size), + TP_STRUCT__entry(__string_from_user(pathname, pathname) __string_from_user(name, name) __field_hex(void *, value) __field(size_t, size)), + TP_fast_assign(tp_copy_string_from_user(pathname, pathname) tp_copy_string_from_user(name, name) tp_assign(value, value) tp_assign(size, size)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_lgetxattr +SC_TRACE_EVENT(sys_lgetxattr, + TP_PROTO(const char * pathname, const char * name, void * value, size_t size), + TP_ARGS(pathname, name, value, size), + TP_STRUCT__entry(__string_from_user(pathname, pathname) __string_from_user(name, name) __field_hex(void *, value) __field(size_t, size)), + TP_fast_assign(tp_copy_string_from_user(pathname, pathname) tp_copy_string_from_user(name, name) tp_assign(value, value) tp_assign(size, size)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_fgetxattr +SC_TRACE_EVENT(sys_fgetxattr, + TP_PROTO(int fd, const char * name, void * value, size_t size), + TP_ARGS(fd, name, value, size), + TP_STRUCT__entry(__field(int, fd) __string_from_user(name, name) __field_hex(void *, value) __field(size_t, size)), + TP_fast_assign(tp_assign(fd, fd) tp_copy_string_from_user(name, name) tp_assign(value, value) tp_assign(size, size)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_semtimedop +SC_TRACE_EVENT(sys_semtimedop, + TP_PROTO(int semid, struct sembuf * tsops, unsigned nsops, const struct timespec * timeout), + TP_ARGS(semid, tsops, nsops, timeout), + TP_STRUCT__entry(__field(int, semid) __field_hex(struct sembuf *, tsops) __field(unsigned, nsops) __field_hex(const struct timespec *, timeout)), + TP_fast_assign(tp_assign(semid, semid) tp_assign(tsops, tsops) tp_assign(nsops, nsops) tp_assign(timeout, timeout)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_timer_settime +SC_TRACE_EVENT(sys_timer_settime, + TP_PROTO(timer_t timer_id, int flags, const struct itimerspec * new_setting, struct itimerspec * old_setting), + TP_ARGS(timer_id, flags, new_setting, old_setting), + TP_STRUCT__entry(__field(timer_t, timer_id) __field(int, flags) __field_hex(const struct itimerspec *, new_setting) __field_hex(struct itimerspec *, old_setting)), + TP_fast_assign(tp_assign(timer_id, timer_id) tp_assign(flags, flags) tp_assign(new_setting, new_setting) tp_assign(old_setting, old_setting)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_clock_nanosleep +SC_TRACE_EVENT(sys_clock_nanosleep, + TP_PROTO(const clockid_t which_clock, int flags, const struct timespec * rqtp, struct timespec * rmtp), + TP_ARGS(which_clock, flags, rqtp, rmtp), + TP_STRUCT__entry(__field(const clockid_t, which_clock) __field(int, flags) __field_hex(const struct timespec *, rqtp) __field_hex(struct timespec *, rmtp)), + TP_fast_assign(tp_assign(which_clock, which_clock) tp_assign(flags, flags) tp_assign(rqtp, rqtp) tp_assign(rmtp, rmtp)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_epoll_wait +SC_TRACE_EVENT(sys_epoll_wait, + TP_PROTO(int epfd, struct epoll_event * events, int maxevents, int timeout), + TP_ARGS(epfd, events, maxevents, timeout), + TP_STRUCT__entry(__field(int, epfd) __field_hex(struct epoll_event *, events) __field(int, maxevents) __field(int, timeout)), + TP_fast_assign(tp_assign(epfd, epfd) tp_assign(events, events) tp_assign(maxevents, maxevents) tp_assign(timeout, timeout)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_epoll_ctl +SC_TRACE_EVENT(sys_epoll_ctl, + TP_PROTO(int epfd, int op, int fd, struct epoll_event * event), + TP_ARGS(epfd, op, fd, event), + TP_STRUCT__entry(__field(int, epfd) __field(int, op) __field(int, fd) __field_hex(struct epoll_event *, event)), + TP_fast_assign(tp_assign(epfd, epfd) tp_assign(op, op) tp_assign(fd, fd) tp_assign(event, event)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_mq_open +SC_TRACE_EVENT(sys_mq_open, + TP_PROTO(const char * u_name, int oflag, umode_t mode, struct mq_attr * u_attr), + TP_ARGS(u_name, oflag, mode, u_attr), + TP_STRUCT__entry(__string_from_user(u_name, u_name) __field(int, oflag) __field(umode_t, mode) __field_hex(struct mq_attr *, u_attr)), + TP_fast_assign(tp_copy_string_from_user(u_name, u_name) tp_assign(oflag, oflag) tp_assign(mode, mode) tp_assign(u_attr, u_attr)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_kexec_load +SC_TRACE_EVENT(sys_kexec_load, + TP_PROTO(unsigned long entry, unsigned long nr_segments, struct kexec_segment * segments, unsigned long flags), + TP_ARGS(entry, nr_segments, segments, flags), + TP_STRUCT__entry(__field(unsigned long, entry) __field(unsigned long, nr_segments) __field_hex(struct kexec_segment *, segments) __field(unsigned long, flags)), + TP_fast_assign(tp_assign(entry, entry) tp_assign(nr_segments, nr_segments) tp_assign(segments, segments) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_request_key +SC_TRACE_EVENT(sys_request_key, + TP_PROTO(const char * _type, const char * _description, const char * _callout_info, key_serial_t destringid), + TP_ARGS(_type, _description, _callout_info, destringid), + TP_STRUCT__entry(__string_from_user(_type, _type) __field_hex(const char *, _description) __field_hex(const char *, _callout_info) __field(key_serial_t, destringid)), + TP_fast_assign(tp_copy_string_from_user(_type, _type) tp_assign(_description, _description) tp_assign(_callout_info, _callout_info) tp_assign(destringid, destringid)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_migrate_pages +SC_TRACE_EVENT(sys_migrate_pages, + TP_PROTO(pid_t pid, unsigned long maxnode, const unsigned long * old_nodes, const unsigned long * new_nodes), + TP_ARGS(pid, maxnode, old_nodes, new_nodes), + TP_STRUCT__entry(__field(pid_t, pid) __field(unsigned long, maxnode) __field_hex(const unsigned long *, old_nodes) __field_hex(const unsigned long *, new_nodes)), + TP_fast_assign(tp_assign(pid, pid) tp_assign(maxnode, maxnode) tp_assign(old_nodes, old_nodes) tp_assign(new_nodes, new_nodes)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_openat +SC_TRACE_EVENT(sys_openat, + TP_PROTO(int dfd, const char * filename, int flags, umode_t mode), + TP_ARGS(dfd, filename, flags, mode), + TP_STRUCT__entry(__field(int, dfd) __string_from_user(filename, filename) __field(int, flags) __field(umode_t, mode)), + TP_fast_assign(tp_assign(dfd, dfd) tp_copy_string_from_user(filename, filename) tp_assign(flags, flags) tp_assign(mode, mode)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_mknodat +SC_TRACE_EVENT(sys_mknodat, + TP_PROTO(int dfd, const char * filename, umode_t mode, unsigned dev), + TP_ARGS(dfd, filename, mode, dev), + TP_STRUCT__entry(__field(int, dfd) __string_from_user(filename, filename) __field(umode_t, mode) __field(unsigned, dev)), + TP_fast_assign(tp_assign(dfd, dfd) tp_copy_string_from_user(filename, filename) tp_assign(mode, mode) tp_assign(dev, dev)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_newfstatat +SC_TRACE_EVENT(sys_newfstatat, + TP_PROTO(int dfd, const char * filename, struct stat * statbuf, int flag), + TP_ARGS(dfd, filename, statbuf, flag), + TP_STRUCT__entry(__field(int, dfd) __string_from_user(filename, filename) __field_hex(struct stat *, statbuf) __field(int, flag)), + TP_fast_assign(tp_assign(dfd, dfd) tp_copy_string_from_user(filename, filename) tp_assign(statbuf, statbuf) tp_assign(flag, flag)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_renameat +SC_TRACE_EVENT(sys_renameat, + TP_PROTO(int olddfd, const char * oldname, int newdfd, const char * newname), + TP_ARGS(olddfd, oldname, newdfd, newname), + TP_STRUCT__entry(__field(int, olddfd) __string_from_user(oldname, oldname) __field(int, newdfd) __string_from_user(newname, newname)), + TP_fast_assign(tp_assign(olddfd, olddfd) tp_copy_string_from_user(oldname, oldname) tp_assign(newdfd, newdfd) tp_copy_string_from_user(newname, newname)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_readlinkat +SC_TRACE_EVENT(sys_readlinkat, + TP_PROTO(int dfd, const char * pathname, char * buf, int bufsiz), + TP_ARGS(dfd, pathname, buf, bufsiz), + TP_STRUCT__entry(__field(int, dfd) __string_from_user(pathname, pathname) __field_hex(char *, buf) __field(int, bufsiz)), + TP_fast_assign(tp_assign(dfd, dfd) tp_copy_string_from_user(pathname, pathname) tp_assign(buf, buf) tp_assign(bufsiz, bufsiz)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_vmsplice +SC_TRACE_EVENT(sys_vmsplice, + TP_PROTO(int fd, const struct iovec * iov, unsigned long nr_segs, unsigned int flags), + TP_ARGS(fd, iov, nr_segs, flags), + TP_STRUCT__entry(__field(int, fd) __field_hex(const struct iovec *, iov) __field(unsigned long, nr_segs) __field(unsigned int, flags)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(iov, iov) tp_assign(nr_segs, nr_segs) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_utimensat +SC_TRACE_EVENT(sys_utimensat, + TP_PROTO(int dfd, const char * filename, struct timespec * utimes, int flags), + TP_ARGS(dfd, filename, utimes, flags), + TP_STRUCT__entry(__field(int, dfd) __string_from_user(filename, filename) __field_hex(struct timespec *, utimes) __field(int, flags)), + TP_fast_assign(tp_assign(dfd, dfd) tp_copy_string_from_user(filename, filename) tp_assign(utimes, utimes) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_timerfd_settime +SC_TRACE_EVENT(sys_timerfd_settime, + TP_PROTO(int ufd, int flags, const struct itimerspec * utmr, struct itimerspec * otmr), + TP_ARGS(ufd, flags, utmr, otmr), + TP_STRUCT__entry(__field(int, ufd) __field(int, flags) __field_hex(const struct itimerspec *, utmr) __field_hex(struct itimerspec *, otmr)), + TP_fast_assign(tp_assign(ufd, ufd) tp_assign(flags, flags) tp_assign(utmr, utmr) tp_assign(otmr, otmr)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_accept4 +SC_TRACE_EVENT(sys_accept4, + TP_PROTO(int fd, struct sockaddr * upeer_sockaddr, int * upeer_addrlen, int flags), + TP_ARGS(fd, upeer_sockaddr, upeer_addrlen, flags), + TP_STRUCT__entry(__field(int, fd) __field_hex(struct sockaddr *, upeer_sockaddr) __field_hex(int *, upeer_addrlen) __field(int, flags)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(upeer_sockaddr, upeer_sockaddr) tp_assign(upeer_addrlen, upeer_addrlen) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_signalfd4 +SC_TRACE_EVENT(sys_signalfd4, + TP_PROTO(int ufd, sigset_t * user_mask, size_t sizemask, int flags), + TP_ARGS(ufd, user_mask, sizemask, flags), + TP_STRUCT__entry(__field(int, ufd) __field_hex(sigset_t *, user_mask) __field(size_t, sizemask) __field(int, flags)), + TP_fast_assign(tp_assign(ufd, ufd) tp_assign(user_mask, user_mask) tp_assign(sizemask, sizemask) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_rt_tgsigqueueinfo +SC_TRACE_EVENT(sys_rt_tgsigqueueinfo, + TP_PROTO(pid_t tgid, pid_t pid, int sig, siginfo_t * uinfo), + TP_ARGS(tgid, pid, sig, uinfo), + TP_STRUCT__entry(__field(pid_t, tgid) __field(pid_t, pid) __field(int, sig) __field_hex(siginfo_t *, uinfo)), + TP_fast_assign(tp_assign(tgid, tgid) tp_assign(pid, pid) tp_assign(sig, sig) tp_assign(uinfo, uinfo)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_prlimit64 +SC_TRACE_EVENT(sys_prlimit64, + TP_PROTO(pid_t pid, unsigned int resource, const struct rlimit64 * new_rlim, struct rlimit64 * old_rlim), + TP_ARGS(pid, resource, new_rlim, old_rlim), + TP_STRUCT__entry(__field(pid_t, pid) __field(unsigned int, resource) __field_hex(const struct rlimit64 *, new_rlim) __field_hex(struct rlimit64 *, old_rlim)), + TP_fast_assign(tp_assign(pid, pid) tp_assign(resource, resource) tp_assign(new_rlim, new_rlim) tp_assign(old_rlim, old_rlim)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_sendmmsg +SC_TRACE_EVENT(sys_sendmmsg, + TP_PROTO(int fd, struct mmsghdr * mmsg, unsigned int vlen, unsigned int flags), + TP_ARGS(fd, mmsg, vlen, flags), + TP_STRUCT__entry(__field(int, fd) __field_hex(struct mmsghdr *, mmsg) __field(unsigned int, vlen) __field(unsigned int, flags)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(mmsg, mmsg) tp_assign(vlen, vlen) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_select +SC_TRACE_EVENT(sys_select, + TP_PROTO(int n, fd_set * inp, fd_set * outp, fd_set * exp, struct timeval * tvp), + TP_ARGS(n, inp, outp, exp, tvp), + TP_STRUCT__entry(__field(int, n) __field_hex(fd_set *, inp) __field_hex(fd_set *, outp) __field_hex(fd_set *, exp) __field_hex(struct timeval *, tvp)), + TP_fast_assign(tp_assign(n, n) tp_assign(inp, inp) tp_assign(outp, outp) tp_assign(exp, exp) tp_assign(tvp, tvp)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_setsockopt +SC_TRACE_EVENT(sys_setsockopt, + TP_PROTO(int fd, int level, int optname, char * optval, int optlen), + TP_ARGS(fd, level, optname, optval, optlen), + TP_STRUCT__entry(__field(int, fd) __field(int, level) __field(int, optname) __field_hex(char *, optval) __field(int, optlen)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(level, level) tp_assign(optname, optname) tp_assign(optval, optval) tp_assign(optlen, optlen)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_getsockopt +SC_TRACE_EVENT(sys_getsockopt, + TP_PROTO(int fd, int level, int optname, char * optval, int * optlen), + TP_ARGS(fd, level, optname, optval, optlen), + TP_STRUCT__entry(__field(int, fd) __field(int, level) __field(int, optname) __field_hex(char *, optval) __field_hex(int *, optlen)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(level, level) tp_assign(optname, optname) tp_assign(optval, optval) tp_assign(optlen, optlen)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_msgrcv +SC_TRACE_EVENT(sys_msgrcv, + TP_PROTO(int msqid, struct msgbuf * msgp, size_t msgsz, long msgtyp, int msgflg), + TP_ARGS(msqid, msgp, msgsz, msgtyp, msgflg), + TP_STRUCT__entry(__field(int, msqid) __field_hex(struct msgbuf *, msgp) __field(size_t, msgsz) __field(long, msgtyp) __field(int, msgflg)), + TP_fast_assign(tp_assign(msqid, msqid) tp_assign(msgp, msgp) tp_assign(msgsz, msgsz) tp_assign(msgtyp, msgtyp) tp_assign(msgflg, msgflg)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_mount +SC_TRACE_EVENT(sys_mount, + TP_PROTO(char * dev_name, char * dir_name, char * type, unsigned long flags, void * data), + TP_ARGS(dev_name, dir_name, type, flags, data), + TP_STRUCT__entry(__string_from_user(dev_name, dev_name) __string_from_user(dir_name, dir_name) __string_from_user(type, type) __field(unsigned long, flags) __field_hex(void *, data)), + TP_fast_assign(tp_copy_string_from_user(dev_name, dev_name) tp_copy_string_from_user(dir_name, dir_name) tp_copy_string_from_user(type, type) tp_assign(flags, flags) tp_assign(data, data)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_setxattr +SC_TRACE_EVENT(sys_setxattr, + TP_PROTO(const char * pathname, const char * name, const void * value, size_t size, int flags), + TP_ARGS(pathname, name, value, size, flags), + TP_STRUCT__entry(__string_from_user(pathname, pathname) __string_from_user(name, name) __field_hex(const void *, value) __field(size_t, size) __field(int, flags)), + TP_fast_assign(tp_copy_string_from_user(pathname, pathname) tp_copy_string_from_user(name, name) tp_assign(value, value) tp_assign(size, size) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_lsetxattr +SC_TRACE_EVENT(sys_lsetxattr, + TP_PROTO(const char * pathname, const char * name, const void * value, size_t size, int flags), + TP_ARGS(pathname, name, value, size, flags), + TP_STRUCT__entry(__string_from_user(pathname, pathname) __string_from_user(name, name) __field_hex(const void *, value) __field(size_t, size) __field(int, flags)), + TP_fast_assign(tp_copy_string_from_user(pathname, pathname) tp_copy_string_from_user(name, name) tp_assign(value, value) tp_assign(size, size) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_fsetxattr +SC_TRACE_EVENT(sys_fsetxattr, + TP_PROTO(int fd, const char * name, const void * value, size_t size, int flags), + TP_ARGS(fd, name, value, size, flags), + TP_STRUCT__entry(__field(int, fd) __string_from_user(name, name) __field_hex(const void *, value) __field(size_t, size) __field(int, flags)), + TP_fast_assign(tp_assign(fd, fd) tp_copy_string_from_user(name, name) tp_assign(value, value) tp_assign(size, size) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_io_getevents +SC_TRACE_EVENT(sys_io_getevents, + TP_PROTO(aio_context_t ctx_id, long min_nr, long nr, struct io_event * events, struct timespec * timeout), + TP_ARGS(ctx_id, min_nr, nr, events, timeout), + TP_STRUCT__entry(__field(aio_context_t, ctx_id) __field(long, min_nr) __field(long, nr) __field_hex(struct io_event *, events) __field_hex(struct timespec *, timeout)), + TP_fast_assign(tp_assign(ctx_id, ctx_id) tp_assign(min_nr, min_nr) tp_assign(nr, nr) tp_assign(events, events) tp_assign(timeout, timeout)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_get_mempolicy +SC_TRACE_EVENT(sys_get_mempolicy, + TP_PROTO(int * policy, unsigned long * nmask, unsigned long maxnode, unsigned long addr, unsigned long flags), + TP_ARGS(policy, nmask, maxnode, addr, flags), + TP_STRUCT__entry(__field_hex(int *, policy) __field_hex(unsigned long *, nmask) __field(unsigned long, maxnode) __field_hex(unsigned long, addr) __field(unsigned long, flags)), + TP_fast_assign(tp_assign(policy, policy) tp_assign(nmask, nmask) tp_assign(maxnode, maxnode) tp_assign(addr, addr) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_mq_timedsend +SC_TRACE_EVENT(sys_mq_timedsend, + TP_PROTO(mqd_t mqdes, const char * u_msg_ptr, size_t msg_len, unsigned int msg_prio, const struct timespec * u_abs_timeout), + TP_ARGS(mqdes, u_msg_ptr, msg_len, msg_prio, u_abs_timeout), + TP_STRUCT__entry(__field(mqd_t, mqdes) __field_hex(const char *, u_msg_ptr) __field(size_t, msg_len) __field(unsigned int, msg_prio) __field_hex(const struct timespec *, u_abs_timeout)), + TP_fast_assign(tp_assign(mqdes, mqdes) tp_assign(u_msg_ptr, u_msg_ptr) tp_assign(msg_len, msg_len) tp_assign(msg_prio, msg_prio) tp_assign(u_abs_timeout, u_abs_timeout)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_mq_timedreceive +SC_TRACE_EVENT(sys_mq_timedreceive, + TP_PROTO(mqd_t mqdes, char * u_msg_ptr, size_t msg_len, unsigned int * u_msg_prio, const struct timespec * u_abs_timeout), + TP_ARGS(mqdes, u_msg_ptr, msg_len, u_msg_prio, u_abs_timeout), + TP_STRUCT__entry(__field(mqd_t, mqdes) __field_hex(char *, u_msg_ptr) __field(size_t, msg_len) __field_hex(unsigned int *, u_msg_prio) __field_hex(const struct timespec *, u_abs_timeout)), + TP_fast_assign(tp_assign(mqdes, mqdes) tp_assign(u_msg_ptr, u_msg_ptr) tp_assign(msg_len, msg_len) tp_assign(u_msg_prio, u_msg_prio) tp_assign(u_abs_timeout, u_abs_timeout)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_waitid +SC_TRACE_EVENT(sys_waitid, + TP_PROTO(int which, pid_t upid, struct siginfo * infop, int options, struct rusage * ru), + TP_ARGS(which, upid, infop, options, ru), + TP_STRUCT__entry(__field(int, which) __field(pid_t, upid) __field_hex(struct siginfo *, infop) __field(int, options) __field_hex(struct rusage *, ru)), + TP_fast_assign(tp_assign(which, which) tp_assign(upid, upid) tp_assign(infop, infop) tp_assign(options, options) tp_assign(ru, ru)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_add_key +SC_TRACE_EVENT(sys_add_key, + TP_PROTO(const char * _type, const char * _description, const void * _payload, size_t plen, key_serial_t ringid), + TP_ARGS(_type, _description, _payload, plen, ringid), + TP_STRUCT__entry(__string_from_user(_type, _type) __field_hex(const char *, _description) __field_hex(const void *, _payload) __field(size_t, plen) __field(key_serial_t, ringid)), + TP_fast_assign(tp_copy_string_from_user(_type, _type) tp_assign(_description, _description) tp_assign(_payload, _payload) tp_assign(plen, plen) tp_assign(ringid, ringid)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_fchownat +SC_TRACE_EVENT(sys_fchownat, + TP_PROTO(int dfd, const char * filename, uid_t user, gid_t group, int flag), + TP_ARGS(dfd, filename, user, group, flag), + TP_STRUCT__entry(__field(int, dfd) __string_from_user(filename, filename) __field(uid_t, user) __field(gid_t, group) __field(int, flag)), + TP_fast_assign(tp_assign(dfd, dfd) tp_copy_string_from_user(filename, filename) tp_assign(user, user) tp_assign(group, group) tp_assign(flag, flag)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_linkat +SC_TRACE_EVENT(sys_linkat, + TP_PROTO(int olddfd, const char * oldname, int newdfd, const char * newname, int flags), + TP_ARGS(olddfd, oldname, newdfd, newname, flags), + TP_STRUCT__entry(__field(int, olddfd) __string_from_user(oldname, oldname) __field(int, newdfd) __string_from_user(newname, newname) __field(int, flags)), + TP_fast_assign(tp_assign(olddfd, olddfd) tp_copy_string_from_user(oldname, oldname) tp_assign(newdfd, newdfd) tp_copy_string_from_user(newname, newname) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_ppoll +SC_TRACE_EVENT(sys_ppoll, + TP_PROTO(struct pollfd * ufds, unsigned int nfds, struct timespec * tsp, const sigset_t * sigmask, size_t sigsetsize), + TP_ARGS(ufds, nfds, tsp, sigmask, sigsetsize), + TP_STRUCT__entry(__field_hex(struct pollfd *, ufds) __field(unsigned int, nfds) __field_hex(struct timespec *, tsp) __field_hex(const sigset_t *, sigmask) __field(size_t, sigsetsize)), + TP_fast_assign(tp_assign(ufds, ufds) tp_assign(nfds, nfds) tp_assign(tsp, tsp) tp_assign(sigmask, sigmask) tp_assign(sigsetsize, sigsetsize)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_preadv +SC_TRACE_EVENT(sys_preadv, + TP_PROTO(unsigned long fd, const struct iovec * vec, unsigned long vlen, unsigned long pos_l, unsigned long pos_h), + TP_ARGS(fd, vec, vlen, pos_l, pos_h), + TP_STRUCT__entry(__field(unsigned long, fd) __field_hex(const struct iovec *, vec) __field(unsigned long, vlen) __field(unsigned long, pos_l) __field(unsigned long, pos_h)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(vec, vec) tp_assign(vlen, vlen) tp_assign(pos_l, pos_l) tp_assign(pos_h, pos_h)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_pwritev +SC_TRACE_EVENT(sys_pwritev, + TP_PROTO(unsigned long fd, const struct iovec * vec, unsigned long vlen, unsigned long pos_l, unsigned long pos_h), + TP_ARGS(fd, vec, vlen, pos_l, pos_h), + TP_STRUCT__entry(__field(unsigned long, fd) __field_hex(const struct iovec *, vec) __field(unsigned long, vlen) __field(unsigned long, pos_l) __field(unsigned long, pos_h)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(vec, vec) tp_assign(vlen, vlen) tp_assign(pos_l, pos_l) tp_assign(pos_h, pos_h)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_perf_event_open +SC_TRACE_EVENT(sys_perf_event_open, + TP_PROTO(struct perf_event_attr * attr_uptr, pid_t pid, int cpu, int group_fd, unsigned long flags), + TP_ARGS(attr_uptr, pid, cpu, group_fd, flags), + TP_STRUCT__entry(__field_hex(struct perf_event_attr *, attr_uptr) __field(pid_t, pid) __field(int, cpu) __field(int, group_fd) __field(unsigned long, flags)), + TP_fast_assign(tp_assign(attr_uptr, attr_uptr) tp_assign(pid, pid) tp_assign(cpu, cpu) tp_assign(group_fd, group_fd) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_recvmmsg +SC_TRACE_EVENT(sys_recvmmsg, + TP_PROTO(int fd, struct mmsghdr * mmsg, unsigned int vlen, unsigned int flags, struct timespec * timeout), + TP_ARGS(fd, mmsg, vlen, flags, timeout), + TP_STRUCT__entry(__field(int, fd) __field_hex(struct mmsghdr *, mmsg) __field(unsigned int, vlen) __field(unsigned int, flags) __field_hex(struct timespec *, timeout)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(mmsg, mmsg) tp_assign(vlen, vlen) tp_assign(flags, flags) tp_assign(timeout, timeout)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_fanotify_mark +SC_TRACE_EVENT(sys_fanotify_mark, + TP_PROTO(int fanotify_fd, unsigned int flags, __u64 mask, int dfd, const char * pathname), + TP_ARGS(fanotify_fd, flags, mask, dfd, pathname), + TP_STRUCT__entry(__field(int, fanotify_fd) __field(unsigned int, flags) __field(__u64, mask) __field(int, dfd) __string_from_user(pathname, pathname)), + TP_fast_assign(tp_assign(fanotify_fd, fanotify_fd) tp_assign(flags, flags) tp_assign(mask, mask) tp_assign(dfd, dfd) tp_copy_string_from_user(pathname, pathname)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_name_to_handle_at +SC_TRACE_EVENT(sys_name_to_handle_at, + TP_PROTO(int dfd, const char * name, struct file_handle * handle, int * mnt_id, int flag), + TP_ARGS(dfd, name, handle, mnt_id, flag), + TP_STRUCT__entry(__field(int, dfd) __string_from_user(name, name) __field_hex(struct file_handle *, handle) __field_hex(int *, mnt_id) __field(int, flag)), + TP_fast_assign(tp_assign(dfd, dfd) tp_copy_string_from_user(name, name) tp_assign(handle, handle) tp_assign(mnt_id, mnt_id) tp_assign(flag, flag)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_sendto +SC_TRACE_EVENT(sys_sendto, + TP_PROTO(int fd, void * buff, size_t len, unsigned int flags, struct sockaddr * addr, int addr_len), + TP_ARGS(fd, buff, len, flags, addr, addr_len), + TP_STRUCT__entry(__field(int, fd) __field_hex(void *, buff) __field(size_t, len) __field(unsigned int, flags) __field_hex(struct sockaddr *, addr) __field_hex(int, addr_len)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(buff, buff) tp_assign(len, len) tp_assign(flags, flags) tp_assign(addr, addr) tp_assign(addr_len, addr_len)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_recvfrom +SC_TRACE_EVENT(sys_recvfrom, + TP_PROTO(int fd, void * ubuf, size_t size, unsigned int flags, struct sockaddr * addr, int * addr_len), + TP_ARGS(fd, ubuf, size, flags, addr, addr_len), + TP_STRUCT__entry(__field(int, fd) __field_hex(void *, ubuf) __field(size_t, size) __field(unsigned int, flags) __field_hex(struct sockaddr *, addr) __field_hex(int *, addr_len)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(ubuf, ubuf) tp_assign(size, size) tp_assign(flags, flags) tp_assign(addr, addr) tp_assign(addr_len, addr_len)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_futex +SC_TRACE_EVENT(sys_futex, + TP_PROTO(u32 * uaddr, int op, u32 val, struct timespec * utime, u32 * uaddr2, u32 val3), + TP_ARGS(uaddr, op, val, utime, uaddr2, val3), + TP_STRUCT__entry(__field_hex(u32 *, uaddr) __field(int, op) __field(u32, val) __field_hex(struct timespec *, utime) __field_hex(u32 *, uaddr2) __field(u32, val3)), + TP_fast_assign(tp_assign(uaddr, uaddr) tp_assign(op, op) tp_assign(val, val) tp_assign(utime, utime) tp_assign(uaddr2, uaddr2) tp_assign(val3, val3)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_mbind +SC_TRACE_EVENT(sys_mbind, + TP_PROTO(unsigned long start, unsigned long len, unsigned long mode, unsigned long * nmask, unsigned long maxnode, unsigned flags), + TP_ARGS(start, len, mode, nmask, maxnode, flags), + TP_STRUCT__entry(__field(unsigned long, start) __field(unsigned long, len) __field(unsigned long, mode) __field_hex(unsigned long *, nmask) __field(unsigned long, maxnode) __field(unsigned, flags)), + TP_fast_assign(tp_assign(start, start) tp_assign(len, len) tp_assign(mode, mode) tp_assign(nmask, nmask) tp_assign(maxnode, maxnode) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_pselect6 +SC_TRACE_EVENT(sys_pselect6, + TP_PROTO(int n, fd_set * inp, fd_set * outp, fd_set * exp, struct timespec * tsp, void * sig), + TP_ARGS(n, inp, outp, exp, tsp, sig), + TP_STRUCT__entry(__field(int, n) __field_hex(fd_set *, inp) __field_hex(fd_set *, outp) __field_hex(fd_set *, exp) __field_hex(struct timespec *, tsp) __field_hex(void *, sig)), + TP_fast_assign(tp_assign(n, n) tp_assign(inp, inp) tp_assign(outp, outp) tp_assign(exp, exp) tp_assign(tsp, tsp) tp_assign(sig, sig)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_splice +SC_TRACE_EVENT(sys_splice, + TP_PROTO(int fd_in, loff_t * off_in, int fd_out, loff_t * off_out, size_t len, unsigned int flags), + TP_ARGS(fd_in, off_in, fd_out, off_out, len, flags), + TP_STRUCT__entry(__field(int, fd_in) __field_hex(loff_t *, off_in) __field(int, fd_out) __field_hex(loff_t *, off_out) __field(size_t, len) __field(unsigned int, flags)), + TP_fast_assign(tp_assign(fd_in, fd_in) tp_assign(off_in, off_in) tp_assign(fd_out, fd_out) tp_assign(off_out, off_out) tp_assign(len, len) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_move_pages +SC_TRACE_EVENT(sys_move_pages, + TP_PROTO(pid_t pid, unsigned long nr_pages, const void * * pages, const int * nodes, int * status, int flags), + TP_ARGS(pid, nr_pages, pages, nodes, status, flags), + TP_STRUCT__entry(__field(pid_t, pid) __field(unsigned long, nr_pages) __field_hex(const void * *, pages) __field_hex(const int *, nodes) __field_hex(int *, status) __field(int, flags)), + TP_fast_assign(tp_assign(pid, pid) tp_assign(nr_pages, nr_pages) tp_assign(pages, pages) tp_assign(nodes, nodes) tp_assign(status, status) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_epoll_pwait +SC_TRACE_EVENT(sys_epoll_pwait, + TP_PROTO(int epfd, struct epoll_event * events, int maxevents, int timeout, const sigset_t * sigmask, size_t sigsetsize), + TP_ARGS(epfd, events, maxevents, timeout, sigmask, sigsetsize), + TP_STRUCT__entry(__field(int, epfd) __field_hex(struct epoll_event *, events) __field(int, maxevents) __field(int, timeout) __field_hex(const sigset_t *, sigmask) __field(size_t, sigsetsize)), + TP_fast_assign(tp_assign(epfd, epfd) tp_assign(events, events) tp_assign(maxevents, maxevents) tp_assign(timeout, timeout) tp_assign(sigmask, sigmask) tp_assign(sigsetsize, sigsetsize)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_process_vm_readv +SC_TRACE_EVENT(sys_process_vm_readv, + TP_PROTO(pid_t pid, const struct iovec * lvec, unsigned long liovcnt, const struct iovec * rvec, unsigned long riovcnt, unsigned long flags), + TP_ARGS(pid, lvec, liovcnt, rvec, riovcnt, flags), + TP_STRUCT__entry(__field(pid_t, pid) __field_hex(const struct iovec *, lvec) __field(unsigned long, liovcnt) __field_hex(const struct iovec *, rvec) __field(unsigned long, riovcnt) __field(unsigned long, flags)), + TP_fast_assign(tp_assign(pid, pid) tp_assign(lvec, lvec) tp_assign(liovcnt, liovcnt) tp_assign(rvec, rvec) tp_assign(riovcnt, riovcnt) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_process_vm_writev +SC_TRACE_EVENT(sys_process_vm_writev, + TP_PROTO(pid_t pid, const struct iovec * lvec, unsigned long liovcnt, const struct iovec * rvec, unsigned long riovcnt, unsigned long flags), + TP_ARGS(pid, lvec, liovcnt, rvec, riovcnt, flags), + TP_STRUCT__entry(__field(pid_t, pid) __field_hex(const struct iovec *, lvec) __field(unsigned long, liovcnt) __field_hex(const struct iovec *, rvec) __field(unsigned long, riovcnt) __field(unsigned long, flags)), + TP_fast_assign(tp_assign(pid, pid) tp_assign(lvec, lvec) tp_assign(liovcnt, liovcnt) tp_assign(rvec, rvec) tp_assign(riovcnt, riovcnt) tp_assign(flags, flags)), + TP_printk() +) +#endif + +#endif /* _TRACE_SYSCALLS_POINTERS_H */ + +/* This part must be outside protection */ +#include "../../../probes/define_trace.h" + +#else /* CREATE_SYSCALL_TABLE */ + +#include "x86-64-syscalls-3.10.0-rc7_pointers_override.h" +#include "syscalls_pointers_override.h" + +#ifndef OVERRIDE_TABLE_64_sys_read +TRACE_SYSCALL_TABLE(sys_read, sys_read, 0, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_write +TRACE_SYSCALL_TABLE(sys_write, sys_write, 1, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_open +TRACE_SYSCALL_TABLE(sys_open, sys_open, 2, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_newstat +TRACE_SYSCALL_TABLE(sys_newstat, sys_newstat, 4, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_newfstat +TRACE_SYSCALL_TABLE(sys_newfstat, sys_newfstat, 5, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_newlstat +TRACE_SYSCALL_TABLE(sys_newlstat, sys_newlstat, 6, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_poll +TRACE_SYSCALL_TABLE(sys_poll, sys_poll, 7, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_rt_sigaction +TRACE_SYSCALL_TABLE(sys_rt_sigaction, sys_rt_sigaction, 13, 4) +#endif +#ifndef OVERRIDE_TABLE_64_sys_rt_sigprocmask +TRACE_SYSCALL_TABLE(sys_rt_sigprocmask, sys_rt_sigprocmask, 14, 4) +#endif +#ifndef OVERRIDE_TABLE_64_sys_pread64 +TRACE_SYSCALL_TABLE(sys_pread64, sys_pread64, 17, 4) +#endif +#ifndef OVERRIDE_TABLE_64_sys_pwrite64 +TRACE_SYSCALL_TABLE(sys_pwrite64, sys_pwrite64, 18, 4) +#endif +#ifndef OVERRIDE_TABLE_64_sys_readv +TRACE_SYSCALL_TABLE(sys_readv, sys_readv, 19, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_writev +TRACE_SYSCALL_TABLE(sys_writev, sys_writev, 20, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_access +TRACE_SYSCALL_TABLE(sys_access, sys_access, 21, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_pipe +TRACE_SYSCALL_TABLE(sys_pipe, sys_pipe, 22, 1) +#endif +#ifndef OVERRIDE_TABLE_64_sys_select +TRACE_SYSCALL_TABLE(sys_select, sys_select, 23, 5) +#endif +#ifndef OVERRIDE_TABLE_64_sys_mincore +TRACE_SYSCALL_TABLE(sys_mincore, sys_mincore, 27, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_shmat +TRACE_SYSCALL_TABLE(sys_shmat, sys_shmat, 30, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_shmctl +TRACE_SYSCALL_TABLE(sys_shmctl, sys_shmctl, 31, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_nanosleep +TRACE_SYSCALL_TABLE(sys_nanosleep, sys_nanosleep, 35, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_getitimer +TRACE_SYSCALL_TABLE(sys_getitimer, sys_getitimer, 36, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_setitimer +TRACE_SYSCALL_TABLE(sys_setitimer, sys_setitimer, 38, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_sendfile64 +TRACE_SYSCALL_TABLE(sys_sendfile64, sys_sendfile64, 40, 4) +#endif +#ifndef OVERRIDE_TABLE_64_sys_connect +TRACE_SYSCALL_TABLE(sys_connect, sys_connect, 42, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_accept +TRACE_SYSCALL_TABLE(sys_accept, sys_accept, 43, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_sendto +TRACE_SYSCALL_TABLE(sys_sendto, sys_sendto, 44, 6) +#endif +#ifndef OVERRIDE_TABLE_64_sys_recvfrom +TRACE_SYSCALL_TABLE(sys_recvfrom, sys_recvfrom, 45, 6) +#endif +#ifndef OVERRIDE_TABLE_64_sys_sendmsg +TRACE_SYSCALL_TABLE(sys_sendmsg, sys_sendmsg, 46, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_recvmsg +TRACE_SYSCALL_TABLE(sys_recvmsg, sys_recvmsg, 47, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_bind +TRACE_SYSCALL_TABLE(sys_bind, sys_bind, 49, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_getsockname +TRACE_SYSCALL_TABLE(sys_getsockname, sys_getsockname, 51, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_getpeername +TRACE_SYSCALL_TABLE(sys_getpeername, sys_getpeername, 52, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_socketpair +TRACE_SYSCALL_TABLE(sys_socketpair, sys_socketpair, 53, 4) +#endif +#ifndef OVERRIDE_TABLE_64_sys_setsockopt +TRACE_SYSCALL_TABLE(sys_setsockopt, sys_setsockopt, 54, 5) +#endif +#ifndef OVERRIDE_TABLE_64_sys_getsockopt +TRACE_SYSCALL_TABLE(sys_getsockopt, sys_getsockopt, 55, 5) +#endif +#ifndef OVERRIDE_TABLE_64_sys_wait4 +TRACE_SYSCALL_TABLE(sys_wait4, sys_wait4, 61, 4) +#endif +#ifndef OVERRIDE_TABLE_64_sys_newuname +TRACE_SYSCALL_TABLE(sys_newuname, sys_newuname, 63, 1) +#endif +#ifndef OVERRIDE_TABLE_64_sys_semop +TRACE_SYSCALL_TABLE(sys_semop, sys_semop, 65, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_shmdt +TRACE_SYSCALL_TABLE(sys_shmdt, sys_shmdt, 67, 1) +#endif +#ifndef OVERRIDE_TABLE_64_sys_msgsnd +TRACE_SYSCALL_TABLE(sys_msgsnd, sys_msgsnd, 69, 4) +#endif +#ifndef OVERRIDE_TABLE_64_sys_msgrcv +TRACE_SYSCALL_TABLE(sys_msgrcv, sys_msgrcv, 70, 5) +#endif +#ifndef OVERRIDE_TABLE_64_sys_msgctl +TRACE_SYSCALL_TABLE(sys_msgctl, sys_msgctl, 71, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_truncate +TRACE_SYSCALL_TABLE(sys_truncate, sys_truncate, 76, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_getdents +TRACE_SYSCALL_TABLE(sys_getdents, sys_getdents, 78, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_getcwd +TRACE_SYSCALL_TABLE(sys_getcwd, sys_getcwd, 79, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_chdir +TRACE_SYSCALL_TABLE(sys_chdir, sys_chdir, 80, 1) +#endif +#ifndef OVERRIDE_TABLE_64_sys_rename +TRACE_SYSCALL_TABLE(sys_rename, sys_rename, 82, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_mkdir +TRACE_SYSCALL_TABLE(sys_mkdir, sys_mkdir, 83, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_rmdir +TRACE_SYSCALL_TABLE(sys_rmdir, sys_rmdir, 84, 1) +#endif +#ifndef OVERRIDE_TABLE_64_sys_creat +TRACE_SYSCALL_TABLE(sys_creat, sys_creat, 85, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_link +TRACE_SYSCALL_TABLE(sys_link, sys_link, 86, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_unlink +TRACE_SYSCALL_TABLE(sys_unlink, sys_unlink, 87, 1) +#endif +#ifndef OVERRIDE_TABLE_64_sys_symlink +TRACE_SYSCALL_TABLE(sys_symlink, sys_symlink, 88, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_readlink +TRACE_SYSCALL_TABLE(sys_readlink, sys_readlink, 89, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_chmod +TRACE_SYSCALL_TABLE(sys_chmod, sys_chmod, 90, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_chown +TRACE_SYSCALL_TABLE(sys_chown, sys_chown, 92, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_lchown +TRACE_SYSCALL_TABLE(sys_lchown, sys_lchown, 94, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_gettimeofday +TRACE_SYSCALL_TABLE(sys_gettimeofday, sys_gettimeofday, 96, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_getrlimit +TRACE_SYSCALL_TABLE(sys_getrlimit, sys_getrlimit, 97, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_getrusage +TRACE_SYSCALL_TABLE(sys_getrusage, sys_getrusage, 98, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_sysinfo +TRACE_SYSCALL_TABLE(sys_sysinfo, sys_sysinfo, 99, 1) +#endif +#ifndef OVERRIDE_TABLE_64_sys_times +TRACE_SYSCALL_TABLE(sys_times, sys_times, 100, 1) +#endif +#ifndef OVERRIDE_TABLE_64_sys_syslog +TRACE_SYSCALL_TABLE(sys_syslog, sys_syslog, 103, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_getgroups +TRACE_SYSCALL_TABLE(sys_getgroups, sys_getgroups, 115, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_setgroups +TRACE_SYSCALL_TABLE(sys_setgroups, sys_setgroups, 116, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_getresuid +TRACE_SYSCALL_TABLE(sys_getresuid, sys_getresuid, 118, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_getresgid +TRACE_SYSCALL_TABLE(sys_getresgid, sys_getresgid, 120, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_rt_sigpending +TRACE_SYSCALL_TABLE(sys_rt_sigpending, sys_rt_sigpending, 127, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_rt_sigtimedwait +TRACE_SYSCALL_TABLE(sys_rt_sigtimedwait, sys_rt_sigtimedwait, 128, 4) +#endif +#ifndef OVERRIDE_TABLE_64_sys_rt_sigqueueinfo +TRACE_SYSCALL_TABLE(sys_rt_sigqueueinfo, sys_rt_sigqueueinfo, 129, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_rt_sigsuspend +TRACE_SYSCALL_TABLE(sys_rt_sigsuspend, sys_rt_sigsuspend, 130, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_sigaltstack +TRACE_SYSCALL_TABLE(sys_sigaltstack, sys_sigaltstack, 131, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_utime +TRACE_SYSCALL_TABLE(sys_utime, sys_utime, 132, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_mknod +TRACE_SYSCALL_TABLE(sys_mknod, sys_mknod, 133, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_ustat +TRACE_SYSCALL_TABLE(sys_ustat, sys_ustat, 136, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_statfs +TRACE_SYSCALL_TABLE(sys_statfs, sys_statfs, 137, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_fstatfs +TRACE_SYSCALL_TABLE(sys_fstatfs, sys_fstatfs, 138, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_sched_setparam +TRACE_SYSCALL_TABLE(sys_sched_setparam, sys_sched_setparam, 142, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_sched_getparam +TRACE_SYSCALL_TABLE(sys_sched_getparam, sys_sched_getparam, 143, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_sched_setscheduler +TRACE_SYSCALL_TABLE(sys_sched_setscheduler, sys_sched_setscheduler, 144, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_sched_rr_get_interval +TRACE_SYSCALL_TABLE(sys_sched_rr_get_interval, sys_sched_rr_get_interval, 148, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_pivot_root +TRACE_SYSCALL_TABLE(sys_pivot_root, sys_pivot_root, 155, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_sysctl +TRACE_SYSCALL_TABLE(sys_sysctl, sys_sysctl, 156, 1) +#endif +#ifndef OVERRIDE_TABLE_64_sys_adjtimex +TRACE_SYSCALL_TABLE(sys_adjtimex, sys_adjtimex, 159, 1) +#endif +#ifndef OVERRIDE_TABLE_64_sys_setrlimit +TRACE_SYSCALL_TABLE(sys_setrlimit, sys_setrlimit, 160, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_chroot +TRACE_SYSCALL_TABLE(sys_chroot, sys_chroot, 161, 1) +#endif +#ifndef OVERRIDE_TABLE_64_sys_acct +TRACE_SYSCALL_TABLE(sys_acct, sys_acct, 163, 1) +#endif +#ifndef OVERRIDE_TABLE_64_sys_settimeofday +TRACE_SYSCALL_TABLE(sys_settimeofday, sys_settimeofday, 164, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_mount +TRACE_SYSCALL_TABLE(sys_mount, sys_mount, 165, 5) +#endif +#ifndef OVERRIDE_TABLE_64_sys_umount +TRACE_SYSCALL_TABLE(sys_umount, sys_umount, 166, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_swapon +TRACE_SYSCALL_TABLE(sys_swapon, sys_swapon, 167, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_swapoff +TRACE_SYSCALL_TABLE(sys_swapoff, sys_swapoff, 168, 1) +#endif +#ifndef OVERRIDE_TABLE_64_sys_reboot +TRACE_SYSCALL_TABLE(sys_reboot, sys_reboot, 169, 4) +#endif +#ifndef OVERRIDE_TABLE_64_sys_sethostname +TRACE_SYSCALL_TABLE(sys_sethostname, sys_sethostname, 170, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_setdomainname +TRACE_SYSCALL_TABLE(sys_setdomainname, sys_setdomainname, 171, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_init_module +TRACE_SYSCALL_TABLE(sys_init_module, sys_init_module, 175, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_delete_module +TRACE_SYSCALL_TABLE(sys_delete_module, sys_delete_module, 176, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_quotactl +TRACE_SYSCALL_TABLE(sys_quotactl, sys_quotactl, 179, 4) +#endif +#ifndef OVERRIDE_TABLE_64_sys_setxattr +TRACE_SYSCALL_TABLE(sys_setxattr, sys_setxattr, 188, 5) +#endif +#ifndef OVERRIDE_TABLE_64_sys_lsetxattr +TRACE_SYSCALL_TABLE(sys_lsetxattr, sys_lsetxattr, 189, 5) +#endif +#ifndef OVERRIDE_TABLE_64_sys_fsetxattr +TRACE_SYSCALL_TABLE(sys_fsetxattr, sys_fsetxattr, 190, 5) +#endif +#ifndef OVERRIDE_TABLE_64_sys_getxattr +TRACE_SYSCALL_TABLE(sys_getxattr, sys_getxattr, 191, 4) +#endif +#ifndef OVERRIDE_TABLE_64_sys_lgetxattr +TRACE_SYSCALL_TABLE(sys_lgetxattr, sys_lgetxattr, 192, 4) +#endif +#ifndef OVERRIDE_TABLE_64_sys_fgetxattr +TRACE_SYSCALL_TABLE(sys_fgetxattr, sys_fgetxattr, 193, 4) +#endif +#ifndef OVERRIDE_TABLE_64_sys_listxattr +TRACE_SYSCALL_TABLE(sys_listxattr, sys_listxattr, 194, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_llistxattr +TRACE_SYSCALL_TABLE(sys_llistxattr, sys_llistxattr, 195, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_flistxattr +TRACE_SYSCALL_TABLE(sys_flistxattr, sys_flistxattr, 196, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_removexattr +TRACE_SYSCALL_TABLE(sys_removexattr, sys_removexattr, 197, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_lremovexattr +TRACE_SYSCALL_TABLE(sys_lremovexattr, sys_lremovexattr, 198, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_fremovexattr +TRACE_SYSCALL_TABLE(sys_fremovexattr, sys_fremovexattr, 199, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_time +TRACE_SYSCALL_TABLE(sys_time, sys_time, 201, 1) +#endif +#ifndef OVERRIDE_TABLE_64_sys_futex +TRACE_SYSCALL_TABLE(sys_futex, sys_futex, 202, 6) +#endif +#ifndef OVERRIDE_TABLE_64_sys_sched_setaffinity +TRACE_SYSCALL_TABLE(sys_sched_setaffinity, sys_sched_setaffinity, 203, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_sched_getaffinity +TRACE_SYSCALL_TABLE(sys_sched_getaffinity, sys_sched_getaffinity, 204, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_io_setup +TRACE_SYSCALL_TABLE(sys_io_setup, sys_io_setup, 206, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_io_getevents +TRACE_SYSCALL_TABLE(sys_io_getevents, sys_io_getevents, 208, 5) +#endif +#ifndef OVERRIDE_TABLE_64_sys_io_submit +TRACE_SYSCALL_TABLE(sys_io_submit, sys_io_submit, 209, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_io_cancel +TRACE_SYSCALL_TABLE(sys_io_cancel, sys_io_cancel, 210, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_lookup_dcookie +TRACE_SYSCALL_TABLE(sys_lookup_dcookie, sys_lookup_dcookie, 212, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_getdents64 +TRACE_SYSCALL_TABLE(sys_getdents64, sys_getdents64, 217, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_set_tid_address +TRACE_SYSCALL_TABLE(sys_set_tid_address, sys_set_tid_address, 218, 1) +#endif +#ifndef OVERRIDE_TABLE_64_sys_semtimedop +TRACE_SYSCALL_TABLE(sys_semtimedop, sys_semtimedop, 220, 4) +#endif +#ifndef OVERRIDE_TABLE_64_sys_timer_create +TRACE_SYSCALL_TABLE(sys_timer_create, sys_timer_create, 222, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_timer_settime +TRACE_SYSCALL_TABLE(sys_timer_settime, sys_timer_settime, 223, 4) +#endif +#ifndef OVERRIDE_TABLE_64_sys_timer_gettime +TRACE_SYSCALL_TABLE(sys_timer_gettime, sys_timer_gettime, 224, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_clock_settime +TRACE_SYSCALL_TABLE(sys_clock_settime, sys_clock_settime, 227, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_clock_gettime +TRACE_SYSCALL_TABLE(sys_clock_gettime, sys_clock_gettime, 228, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_clock_getres +TRACE_SYSCALL_TABLE(sys_clock_getres, sys_clock_getres, 229, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_clock_nanosleep +TRACE_SYSCALL_TABLE(sys_clock_nanosleep, sys_clock_nanosleep, 230, 4) +#endif +#ifndef OVERRIDE_TABLE_64_sys_epoll_wait +TRACE_SYSCALL_TABLE(sys_epoll_wait, sys_epoll_wait, 232, 4) +#endif +#ifndef OVERRIDE_TABLE_64_sys_epoll_ctl +TRACE_SYSCALL_TABLE(sys_epoll_ctl, sys_epoll_ctl, 233, 4) +#endif +#ifndef OVERRIDE_TABLE_64_sys_utimes +TRACE_SYSCALL_TABLE(sys_utimes, sys_utimes, 235, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_mbind +TRACE_SYSCALL_TABLE(sys_mbind, sys_mbind, 237, 6) +#endif +#ifndef OVERRIDE_TABLE_64_sys_set_mempolicy +TRACE_SYSCALL_TABLE(sys_set_mempolicy, sys_set_mempolicy, 238, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_get_mempolicy +TRACE_SYSCALL_TABLE(sys_get_mempolicy, sys_get_mempolicy, 239, 5) +#endif +#ifndef OVERRIDE_TABLE_64_sys_mq_open +TRACE_SYSCALL_TABLE(sys_mq_open, sys_mq_open, 240, 4) +#endif +#ifndef OVERRIDE_TABLE_64_sys_mq_unlink +TRACE_SYSCALL_TABLE(sys_mq_unlink, sys_mq_unlink, 241, 1) +#endif +#ifndef OVERRIDE_TABLE_64_sys_mq_timedsend +TRACE_SYSCALL_TABLE(sys_mq_timedsend, sys_mq_timedsend, 242, 5) +#endif +#ifndef OVERRIDE_TABLE_64_sys_mq_timedreceive +TRACE_SYSCALL_TABLE(sys_mq_timedreceive, sys_mq_timedreceive, 243, 5) +#endif +#ifndef OVERRIDE_TABLE_64_sys_mq_notify +TRACE_SYSCALL_TABLE(sys_mq_notify, sys_mq_notify, 244, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_mq_getsetattr +TRACE_SYSCALL_TABLE(sys_mq_getsetattr, sys_mq_getsetattr, 245, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_kexec_load +TRACE_SYSCALL_TABLE(sys_kexec_load, sys_kexec_load, 246, 4) +#endif +#ifndef OVERRIDE_TABLE_64_sys_waitid +TRACE_SYSCALL_TABLE(sys_waitid, sys_waitid, 247, 5) +#endif +#ifndef OVERRIDE_TABLE_64_sys_add_key +TRACE_SYSCALL_TABLE(sys_add_key, sys_add_key, 248, 5) +#endif +#ifndef OVERRIDE_TABLE_64_sys_request_key +TRACE_SYSCALL_TABLE(sys_request_key, sys_request_key, 249, 4) +#endif +#ifndef OVERRIDE_TABLE_64_sys_inotify_add_watch +TRACE_SYSCALL_TABLE(sys_inotify_add_watch, sys_inotify_add_watch, 254, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_migrate_pages +TRACE_SYSCALL_TABLE(sys_migrate_pages, sys_migrate_pages, 256, 4) +#endif +#ifndef OVERRIDE_TABLE_64_sys_openat +TRACE_SYSCALL_TABLE(sys_openat, sys_openat, 257, 4) +#endif +#ifndef OVERRIDE_TABLE_64_sys_mkdirat +TRACE_SYSCALL_TABLE(sys_mkdirat, sys_mkdirat, 258, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_mknodat +TRACE_SYSCALL_TABLE(sys_mknodat, sys_mknodat, 259, 4) +#endif +#ifndef OVERRIDE_TABLE_64_sys_fchownat +TRACE_SYSCALL_TABLE(sys_fchownat, sys_fchownat, 260, 5) +#endif +#ifndef OVERRIDE_TABLE_64_sys_futimesat +TRACE_SYSCALL_TABLE(sys_futimesat, sys_futimesat, 261, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_newfstatat +TRACE_SYSCALL_TABLE(sys_newfstatat, sys_newfstatat, 262, 4) +#endif +#ifndef OVERRIDE_TABLE_64_sys_unlinkat +TRACE_SYSCALL_TABLE(sys_unlinkat, sys_unlinkat, 263, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_renameat +TRACE_SYSCALL_TABLE(sys_renameat, sys_renameat, 264, 4) +#endif +#ifndef OVERRIDE_TABLE_64_sys_linkat +TRACE_SYSCALL_TABLE(sys_linkat, sys_linkat, 265, 5) +#endif +#ifndef OVERRIDE_TABLE_64_sys_symlinkat +TRACE_SYSCALL_TABLE(sys_symlinkat, sys_symlinkat, 266, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_readlinkat +TRACE_SYSCALL_TABLE(sys_readlinkat, sys_readlinkat, 267, 4) +#endif +#ifndef OVERRIDE_TABLE_64_sys_fchmodat +TRACE_SYSCALL_TABLE(sys_fchmodat, sys_fchmodat, 268, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_faccessat +TRACE_SYSCALL_TABLE(sys_faccessat, sys_faccessat, 269, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_pselect6 +TRACE_SYSCALL_TABLE(sys_pselect6, sys_pselect6, 270, 6) +#endif +#ifndef OVERRIDE_TABLE_64_sys_ppoll +TRACE_SYSCALL_TABLE(sys_ppoll, sys_ppoll, 271, 5) +#endif +#ifndef OVERRIDE_TABLE_64_sys_set_robust_list +TRACE_SYSCALL_TABLE(sys_set_robust_list, sys_set_robust_list, 273, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_get_robust_list +TRACE_SYSCALL_TABLE(sys_get_robust_list, sys_get_robust_list, 274, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_splice +TRACE_SYSCALL_TABLE(sys_splice, sys_splice, 275, 6) +#endif +#ifndef OVERRIDE_TABLE_64_sys_vmsplice +TRACE_SYSCALL_TABLE(sys_vmsplice, sys_vmsplice, 278, 4) +#endif +#ifndef OVERRIDE_TABLE_64_sys_move_pages +TRACE_SYSCALL_TABLE(sys_move_pages, sys_move_pages, 279, 6) +#endif +#ifndef OVERRIDE_TABLE_64_sys_utimensat +TRACE_SYSCALL_TABLE(sys_utimensat, sys_utimensat, 280, 4) +#endif +#ifndef OVERRIDE_TABLE_64_sys_epoll_pwait +TRACE_SYSCALL_TABLE(sys_epoll_pwait, sys_epoll_pwait, 281, 6) +#endif +#ifndef OVERRIDE_TABLE_64_sys_signalfd +TRACE_SYSCALL_TABLE(sys_signalfd, sys_signalfd, 282, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_timerfd_settime +TRACE_SYSCALL_TABLE(sys_timerfd_settime, sys_timerfd_settime, 286, 4) +#endif +#ifndef OVERRIDE_TABLE_64_sys_timerfd_gettime +TRACE_SYSCALL_TABLE(sys_timerfd_gettime, sys_timerfd_gettime, 287, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_accept4 +TRACE_SYSCALL_TABLE(sys_accept4, sys_accept4, 288, 4) +#endif +#ifndef OVERRIDE_TABLE_64_sys_signalfd4 +TRACE_SYSCALL_TABLE(sys_signalfd4, sys_signalfd4, 289, 4) +#endif +#ifndef OVERRIDE_TABLE_64_sys_pipe2 +TRACE_SYSCALL_TABLE(sys_pipe2, sys_pipe2, 293, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_preadv +TRACE_SYSCALL_TABLE(sys_preadv, sys_preadv, 295, 5) +#endif +#ifndef OVERRIDE_TABLE_64_sys_pwritev +TRACE_SYSCALL_TABLE(sys_pwritev, sys_pwritev, 296, 5) +#endif +#ifndef OVERRIDE_TABLE_64_sys_rt_tgsigqueueinfo +TRACE_SYSCALL_TABLE(sys_rt_tgsigqueueinfo, sys_rt_tgsigqueueinfo, 297, 4) +#endif +#ifndef OVERRIDE_TABLE_64_sys_perf_event_open +TRACE_SYSCALL_TABLE(sys_perf_event_open, sys_perf_event_open, 298, 5) +#endif +#ifndef OVERRIDE_TABLE_64_sys_recvmmsg +TRACE_SYSCALL_TABLE(sys_recvmmsg, sys_recvmmsg, 299, 5) +#endif +#ifndef OVERRIDE_TABLE_64_sys_fanotify_mark +TRACE_SYSCALL_TABLE(sys_fanotify_mark, sys_fanotify_mark, 301, 5) +#endif +#ifndef OVERRIDE_TABLE_64_sys_prlimit64 +TRACE_SYSCALL_TABLE(sys_prlimit64, sys_prlimit64, 302, 4) +#endif +#ifndef OVERRIDE_TABLE_64_sys_name_to_handle_at +TRACE_SYSCALL_TABLE(sys_name_to_handle_at, sys_name_to_handle_at, 303, 5) +#endif +#ifndef OVERRIDE_TABLE_64_sys_open_by_handle_at +TRACE_SYSCALL_TABLE(sys_open_by_handle_at, sys_open_by_handle_at, 304, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_clock_adjtime +TRACE_SYSCALL_TABLE(sys_clock_adjtime, sys_clock_adjtime, 305, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_sendmmsg +TRACE_SYSCALL_TABLE(sys_sendmmsg, sys_sendmmsg, 307, 4) +#endif +#ifndef OVERRIDE_TABLE_64_sys_getcpu +TRACE_SYSCALL_TABLE(sys_getcpu, sys_getcpu, 309, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_process_vm_readv +TRACE_SYSCALL_TABLE(sys_process_vm_readv, sys_process_vm_readv, 310, 6) +#endif +#ifndef OVERRIDE_TABLE_64_sys_process_vm_writev +TRACE_SYSCALL_TABLE(sys_process_vm_writev, sys_process_vm_writev, 311, 6) +#endif +#ifndef OVERRIDE_TABLE_64_sys_finit_module +TRACE_SYSCALL_TABLE(sys_finit_module, sys_finit_module, 313, 3) +#endif + +#endif /* CREATE_SYSCALL_TABLE */ --- linux-3.11.0.orig/ubuntu/lttng/instrumentation/syscalls/headers/mips-64-syscalls-3.5.0_pointers_override.h +++ linux-3.11.0/ubuntu/lttng/instrumentation/syscalls/headers/mips-64-syscalls-3.5.0_pointers_override.h @@ -0,0 +1,8 @@ +#ifndef CREATE_SYSCALL_TABLE + +#else /* CREATE_SYSCALL_TABLE */ + +#define OVERRIDE_TABLE_64_sys_clone +TRACE_SYSCALL_TABLE(sys_clone, sys_clone, 5055, 0) + +#endif /* CREATE_SYSCALL_TABLE */ --- linux-3.11.0.orig/ubuntu/lttng/instrumentation/syscalls/headers/syscalls_pointers.h +++ linux-3.11.0/ubuntu/lttng/instrumentation/syscalls/headers/syscalls_pointers.h @@ -0,0 +1,15 @@ +#ifdef CONFIG_X86_64 +#include "x86-64-syscalls-3.10.0-rc7_pointers.h" +#endif + +#ifdef CONFIG_X86_32 +#include "x86-32-syscalls-3.1.0-rc6_pointers.h" +#endif + +#ifdef CONFIG_ARM +#include "arm-32-syscalls-3.4.25_pointers.h" +#endif + +#ifdef CONFIG_PPC +#include "powerpc-32-syscalls-3.0.34_pointers.h" +#endif --- linux-3.11.0.orig/ubuntu/lttng/instrumentation/syscalls/headers/powerpc-32-syscalls-3.0.34_pointers_override.h +++ linux-3.11.0/ubuntu/lttng/instrumentation/syscalls/headers/powerpc-32-syscalls-3.0.34_pointers_override.h @@ -0,0 +1,36 @@ +#define OVERRIDE_TABLE_32_sys_mmap2 + +#ifndef CREATE_SYSCALL_TABLE + +SC_TRACE_EVENT(sys_mmap2, + TP_PROTO(void *addr, size_t len, int prot, + int flags, int fd, off_t pgoff), + TP_ARGS(addr, len, prot, flags, fd, pgoff), + TP_STRUCT__entry( + __field_hex(void *, addr) + __field(size_t, len) + __field(int, prot) + __field(int, flags) + __field(int, fd) + __field(off_t, pgoff)), + TP_fast_assign( + tp_assign(addr, addr) + tp_assign(len, len) + tp_assign(prot, prot) + tp_assign(flags, flags) + tp_assign(fd, fd) + tp_assign(pgoff, pgoff)), + TP_printk() +) + +#else /* CREATE_SYSCALL_TABLE */ + +#define OVERRIDE_TABLE_32_sys_execve +TRACE_SYSCALL_TABLE(sys_execve, sys_execve, 11, 3) +#define OVERRIDE_TABLE_32_sys_clone +TRACE_SYSCALL_TABLE(sys_clone, sys_clone, 120, 5) +#define OVERRIDE_TABLE_32_sys_mmap2 +TRACE_SYSCALL_TABLE(sys_mmap2, sys_mmap2, 192, 6) + +#endif /* CREATE_SYSCALL_TABLE */ + --- linux-3.11.0.orig/ubuntu/lttng/instrumentation/syscalls/headers/powerpc-32-syscalls-3.0.34_integers_override.h +++ linux-3.11.0/ubuntu/lttng/instrumentation/syscalls/headers/powerpc-32-syscalls-3.0.34_integers_override.h @@ -0,0 +1,9 @@ +#ifndef CREATE_SYSCALL_TABLE + +#else /* CREATE_SYSCALL_TABLE */ + +#define OVVERRIDE_TABLE_32_sys_mmap +TRACE_SYSCALL_TABLE(sys_mmap, sys_mmap, 90, 6) + +#endif /* CREATE_SYSCALL_TABLE */ + --- linux-3.11.0.orig/ubuntu/lttng/instrumentation/syscalls/headers/syscalls_unknown.h +++ linux-3.11.0/ubuntu/lttng/instrumentation/syscalls/headers/syscalls_unknown.h @@ -0,0 +1,55 @@ +#if !defined(_TRACE_SYSCALLS_UNKNOWN_H) || defined(TRACE_HEADER_MULTI_READ) +#define _TRACE_SYSCALLS_UNKNOWN_H + +#include +#include + +#define UNKNOWN_SYSCALL_NRARGS 6 + +TRACE_EVENT(sys_unknown, + TP_PROTO(unsigned int id, unsigned long *args), + TP_ARGS(id, args), + TP_STRUCT__entry( + __field(unsigned int, id) + __array(unsigned long, args, UNKNOWN_SYSCALL_NRARGS) + ), + TP_fast_assign( + tp_assign(id, id) + tp_memcpy(args, args, UNKNOWN_SYSCALL_NRARGS * sizeof(*args)) + ), + TP_printk() +) +TRACE_EVENT(compat_sys_unknown, + TP_PROTO(unsigned int id, unsigned long *args), + TP_ARGS(id, args), + TP_STRUCT__entry( + __field(unsigned int, id) + __array(unsigned long, args, UNKNOWN_SYSCALL_NRARGS) + ), + TP_fast_assign( + tp_assign(id, id) + tp_memcpy(args, args, UNKNOWN_SYSCALL_NRARGS * sizeof(*args)) + ), + TP_printk() +) +/* + * This is going to hook on sys_exit in the kernel. + * We change the name so we don't clash with the sys_exit syscall entry + * event. + */ +TRACE_EVENT(exit_syscall, + TP_PROTO(struct pt_regs *regs, long ret), + TP_ARGS(regs, ret), + TP_STRUCT__entry( + __field(long, ret) + ), + TP_fast_assign( + tp_assign(ret, ret) + ), + TP_printk() +) + +#endif /* _TRACE_SYSCALLS_UNKNOWN_H */ + +/* This part must be outside protection */ +#include "../../../probes/define_trace.h" --- linux-3.11.0.orig/ubuntu/lttng/instrumentation/syscalls/headers/mips-32-syscalls-3.5.0_integers_override.h +++ linux-3.11.0/ubuntu/lttng/instrumentation/syscalls/headers/mips-32-syscalls-3.5.0_integers_override.h @@ -0,0 +1,3 @@ +/* + * this is a place-holder for MIPS integer syscall definition override. + */ --- linux-3.11.0.orig/ubuntu/lttng/instrumentation/syscalls/headers/mips-32-syscalls-3.5.0_pointers_override.h +++ linux-3.11.0/ubuntu/lttng/instrumentation/syscalls/headers/mips-32-syscalls-3.5.0_pointers_override.h @@ -0,0 +1,8 @@ +#ifndef CREATE_SYSCALL_TABLE + +#else /* CREATE_SYSCALL_TABLE */ + +#define OVERRIDE_TABLE_32_sys_clone +TRACE_SYSCALL_TABLE(sys_clone, sys_clone, 4120, 0) + +#endif /* CREATE_SYSCALL_TABLE */ --- linux-3.11.0.orig/ubuntu/lttng/instrumentation/syscalls/headers/powerpc-32-syscalls-3.0.34_pointers.h +++ linux-3.11.0/ubuntu/lttng/instrumentation/syscalls/headers/powerpc-32-syscalls-3.0.34_pointers.h @@ -0,0 +1,2316 @@ +/* THIS FILE IS AUTO-GENERATED. DO NOT EDIT */ +#ifndef CREATE_SYSCALL_TABLE + +#if !defined(_TRACE_SYSCALLS_POINTERS_H) || defined(TRACE_HEADER_MULTI_READ) +#define _TRACE_SYSCALLS_POINTERS_H + +#include +#include +#include "powerpc-32-syscalls-3.0.34_pointers_override.h" +#include "syscalls_pointers_override.h" + +#ifndef OVERRIDE_32_sys_unlink +SC_TRACE_EVENT(sys_unlink, + TP_PROTO(const char * pathname), + TP_ARGS(pathname), + TP_STRUCT__entry(__string_from_user(pathname, pathname)), + TP_fast_assign(tp_copy_string_from_user(pathname, pathname)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_chdir +SC_TRACE_EVENT(sys_chdir, + TP_PROTO(const char * filename), + TP_ARGS(filename), + TP_STRUCT__entry(__string_from_user(filename, filename)), + TP_fast_assign(tp_copy_string_from_user(filename, filename)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_time +SC_TRACE_EVENT(sys_time, + TP_PROTO(time_t * tloc), + TP_ARGS(tloc), + TP_STRUCT__entry(__field_hex(time_t *, tloc)), + TP_fast_assign(tp_assign(tloc, tloc)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_oldumount +SC_TRACE_EVENT(sys_oldumount, + TP_PROTO(char * name), + TP_ARGS(name), + TP_STRUCT__entry(__string_from_user(name, name)), + TP_fast_assign(tp_copy_string_from_user(name, name)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_stime +SC_TRACE_EVENT(sys_stime, + TP_PROTO(time_t * tptr), + TP_ARGS(tptr), + TP_STRUCT__entry(__field_hex(time_t *, tptr)), + TP_fast_assign(tp_assign(tptr, tptr)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_rmdir +SC_TRACE_EVENT(sys_rmdir, + TP_PROTO(const char * pathname), + TP_ARGS(pathname), + TP_STRUCT__entry(__string_from_user(pathname, pathname)), + TP_fast_assign(tp_copy_string_from_user(pathname, pathname)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_pipe +SC_TRACE_EVENT(sys_pipe, + TP_PROTO(int * fildes), + TP_ARGS(fildes), + TP_STRUCT__entry(__field_hex(int *, fildes)), + TP_fast_assign(tp_assign(fildes, fildes)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_times +SC_TRACE_EVENT(sys_times, + TP_PROTO(struct tms * tbuf), + TP_ARGS(tbuf), + TP_STRUCT__entry(__field_hex(struct tms *, tbuf)), + TP_fast_assign(tp_assign(tbuf, tbuf)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_acct +SC_TRACE_EVENT(sys_acct, + TP_PROTO(const char * name), + TP_ARGS(name), + TP_STRUCT__entry(__string_from_user(name, name)), + TP_fast_assign(tp_copy_string_from_user(name, name)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_olduname +SC_TRACE_EVENT(sys_olduname, + TP_PROTO(struct oldold_utsname * name), + TP_ARGS(name), + TP_STRUCT__entry(__field_hex(struct oldold_utsname *, name)), + TP_fast_assign(tp_assign(name, name)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_chroot +SC_TRACE_EVENT(sys_chroot, + TP_PROTO(const char * filename), + TP_ARGS(filename), + TP_STRUCT__entry(__string_from_user(filename, filename)), + TP_fast_assign(tp_copy_string_from_user(filename, filename)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_sigpending +SC_TRACE_EVENT(sys_sigpending, + TP_PROTO(old_sigset_t * set), + TP_ARGS(set), + TP_STRUCT__entry(__field_hex(old_sigset_t *, set)), + TP_fast_assign(tp_assign(set, set)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_uselib +SC_TRACE_EVENT(sys_uselib, + TP_PROTO(const char * library), + TP_ARGS(library), + TP_STRUCT__entry(__field_hex(const char *, library)), + TP_fast_assign(tp_assign(library, library)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_uname +SC_TRACE_EVENT(sys_uname, + TP_PROTO(struct old_utsname * name), + TP_ARGS(name), + TP_STRUCT__entry(__field_hex(struct old_utsname *, name)), + TP_fast_assign(tp_assign(name, name)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_swapoff +SC_TRACE_EVENT(sys_swapoff, + TP_PROTO(const char * specialfile), + TP_ARGS(specialfile), + TP_STRUCT__entry(__string_from_user(specialfile, specialfile)), + TP_fast_assign(tp_copy_string_from_user(specialfile, specialfile)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_sysinfo +SC_TRACE_EVENT(sys_sysinfo, + TP_PROTO(struct sysinfo * info), + TP_ARGS(info), + TP_STRUCT__entry(__field_hex(struct sysinfo *, info)), + TP_fast_assign(tp_assign(info, info)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_newuname +SC_TRACE_EVENT(sys_newuname, + TP_PROTO(struct new_utsname * name), + TP_ARGS(name), + TP_STRUCT__entry(__field_hex(struct new_utsname *, name)), + TP_fast_assign(tp_assign(name, name)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_adjtimex +SC_TRACE_EVENT(sys_adjtimex, + TP_PROTO(struct timex * txc_p), + TP_ARGS(txc_p), + TP_STRUCT__entry(__field_hex(struct timex *, txc_p)), + TP_fast_assign(tp_assign(txc_p, txc_p)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_sysctl +SC_TRACE_EVENT(sys_sysctl, + TP_PROTO(struct __sysctl_args * args), + TP_ARGS(args), + TP_STRUCT__entry(__field_hex(struct __sysctl_args *, args)), + TP_fast_assign(tp_assign(args, args)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_set_tid_address +SC_TRACE_EVENT(sys_set_tid_address, + TP_PROTO(int * tidptr), + TP_ARGS(tidptr), + TP_STRUCT__entry(__field_hex(int *, tidptr)), + TP_fast_assign(tp_assign(tidptr, tidptr)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_mq_unlink +SC_TRACE_EVENT(sys_mq_unlink, + TP_PROTO(const char * u_name), + TP_ARGS(u_name), + TP_STRUCT__entry(__string_from_user(u_name, u_name)), + TP_fast_assign(tp_copy_string_from_user(u_name, u_name)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_creat +SC_TRACE_EVENT(sys_creat, + TP_PROTO(const char * pathname, int mode), + TP_ARGS(pathname, mode), + TP_STRUCT__entry(__string_from_user(pathname, pathname) __field(int, mode)), + TP_fast_assign(tp_copy_string_from_user(pathname, pathname) tp_assign(mode, mode)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_link +SC_TRACE_EVENT(sys_link, + TP_PROTO(const char * oldname, const char * newname), + TP_ARGS(oldname, newname), + TP_STRUCT__entry(__string_from_user(oldname, oldname) __string_from_user(newname, newname)), + TP_fast_assign(tp_copy_string_from_user(oldname, oldname) tp_copy_string_from_user(newname, newname)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_chmod +SC_TRACE_EVENT(sys_chmod, + TP_PROTO(const char * filename, mode_t mode), + TP_ARGS(filename, mode), + TP_STRUCT__entry(__string_from_user(filename, filename) __field(mode_t, mode)), + TP_fast_assign(tp_copy_string_from_user(filename, filename) tp_assign(mode, mode)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_stat +SC_TRACE_EVENT(sys_stat, + TP_PROTO(const char * filename, struct __old_kernel_stat * statbuf), + TP_ARGS(filename, statbuf), + TP_STRUCT__entry(__string_from_user(filename, filename) __field_hex(struct __old_kernel_stat *, statbuf)), + TP_fast_assign(tp_copy_string_from_user(filename, filename) tp_assign(statbuf, statbuf)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_fstat +SC_TRACE_EVENT(sys_fstat, + TP_PROTO(unsigned int fd, struct __old_kernel_stat * statbuf), + TP_ARGS(fd, statbuf), + TP_STRUCT__entry(__field(unsigned int, fd) __field_hex(struct __old_kernel_stat *, statbuf)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(statbuf, statbuf)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_utime +SC_TRACE_EVENT(sys_utime, + TP_PROTO(char * filename, struct utimbuf * times), + TP_ARGS(filename, times), + TP_STRUCT__entry(__string_from_user(filename, filename) __field_hex(struct utimbuf *, times)), + TP_fast_assign(tp_copy_string_from_user(filename, filename) tp_assign(times, times)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_access +SC_TRACE_EVENT(sys_access, + TP_PROTO(const char * filename, int mode), + TP_ARGS(filename, mode), + TP_STRUCT__entry(__string_from_user(filename, filename) __field(int, mode)), + TP_fast_assign(tp_copy_string_from_user(filename, filename) tp_assign(mode, mode)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_rename +SC_TRACE_EVENT(sys_rename, + TP_PROTO(const char * oldname, const char * newname), + TP_ARGS(oldname, newname), + TP_STRUCT__entry(__string_from_user(oldname, oldname) __string_from_user(newname, newname)), + TP_fast_assign(tp_copy_string_from_user(oldname, oldname) tp_copy_string_from_user(newname, newname)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_mkdir +SC_TRACE_EVENT(sys_mkdir, + TP_PROTO(const char * pathname, int mode), + TP_ARGS(pathname, mode), + TP_STRUCT__entry(__string_from_user(pathname, pathname) __field(int, mode)), + TP_fast_assign(tp_copy_string_from_user(pathname, pathname) tp_assign(mode, mode)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_umount +SC_TRACE_EVENT(sys_umount, + TP_PROTO(char * name, int flags), + TP_ARGS(name, flags), + TP_STRUCT__entry(__string_from_user(name, name) __field(int, flags)), + TP_fast_assign(tp_copy_string_from_user(name, name) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_ustat +SC_TRACE_EVENT(sys_ustat, + TP_PROTO(unsigned dev, struct ustat * ubuf), + TP_ARGS(dev, ubuf), + TP_STRUCT__entry(__field(unsigned, dev) __field_hex(struct ustat *, ubuf)), + TP_fast_assign(tp_assign(dev, dev) tp_assign(ubuf, ubuf)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_sethostname +SC_TRACE_EVENT(sys_sethostname, + TP_PROTO(char * name, int len), + TP_ARGS(name, len), + TP_STRUCT__entry(__string_from_user(name, name) __field(int, len)), + TP_fast_assign(tp_copy_string_from_user(name, name) tp_assign(len, len)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_setrlimit +SC_TRACE_EVENT(sys_setrlimit, + TP_PROTO(unsigned int resource, struct rlimit * rlim), + TP_ARGS(resource, rlim), + TP_STRUCT__entry(__field(unsigned int, resource) __field_hex(struct rlimit *, rlim)), + TP_fast_assign(tp_assign(resource, resource) tp_assign(rlim, rlim)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_old_getrlimit +SC_TRACE_EVENT(sys_old_getrlimit, + TP_PROTO(unsigned int resource, struct rlimit * rlim), + TP_ARGS(resource, rlim), + TP_STRUCT__entry(__field(unsigned int, resource) __field_hex(struct rlimit *, rlim)), + TP_fast_assign(tp_assign(resource, resource) tp_assign(rlim, rlim)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_getrusage +SC_TRACE_EVENT(sys_getrusage, + TP_PROTO(int who, struct rusage * ru), + TP_ARGS(who, ru), + TP_STRUCT__entry(__field(int, who) __field_hex(struct rusage *, ru)), + TP_fast_assign(tp_assign(who, who) tp_assign(ru, ru)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_gettimeofday +SC_TRACE_EVENT(sys_gettimeofday, + TP_PROTO(struct timeval * tv, struct timezone * tz), + TP_ARGS(tv, tz), + TP_STRUCT__entry(__field_hex(struct timeval *, tv) __field_hex(struct timezone *, tz)), + TP_fast_assign(tp_assign(tv, tv) tp_assign(tz, tz)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_settimeofday +SC_TRACE_EVENT(sys_settimeofday, + TP_PROTO(struct timeval * tv, struct timezone * tz), + TP_ARGS(tv, tz), + TP_STRUCT__entry(__field_hex(struct timeval *, tv) __field_hex(struct timezone *, tz)), + TP_fast_assign(tp_assign(tv, tv) tp_assign(tz, tz)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_getgroups +SC_TRACE_EVENT(sys_getgroups, + TP_PROTO(int gidsetsize, gid_t * grouplist), + TP_ARGS(gidsetsize, grouplist), + TP_STRUCT__entry(__field(int, gidsetsize) __field_hex(gid_t *, grouplist)), + TP_fast_assign(tp_assign(gidsetsize, gidsetsize) tp_assign(grouplist, grouplist)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_setgroups +SC_TRACE_EVENT(sys_setgroups, + TP_PROTO(int gidsetsize, gid_t * grouplist), + TP_ARGS(gidsetsize, grouplist), + TP_STRUCT__entry(__field(int, gidsetsize) __field_hex(gid_t *, grouplist)), + TP_fast_assign(tp_assign(gidsetsize, gidsetsize) tp_assign(grouplist, grouplist)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_symlink +SC_TRACE_EVENT(sys_symlink, + TP_PROTO(const char * oldname, const char * newname), + TP_ARGS(oldname, newname), + TP_STRUCT__entry(__string_from_user(oldname, oldname) __string_from_user(newname, newname)), + TP_fast_assign(tp_copy_string_from_user(oldname, oldname) tp_copy_string_from_user(newname, newname)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_lstat +SC_TRACE_EVENT(sys_lstat, + TP_PROTO(const char * filename, struct __old_kernel_stat * statbuf), + TP_ARGS(filename, statbuf), + TP_STRUCT__entry(__string_from_user(filename, filename) __field_hex(struct __old_kernel_stat *, statbuf)), + TP_fast_assign(tp_copy_string_from_user(filename, filename) tp_assign(statbuf, statbuf)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_swapon +SC_TRACE_EVENT(sys_swapon, + TP_PROTO(const char * specialfile, int swap_flags), + TP_ARGS(specialfile, swap_flags), + TP_STRUCT__entry(__string_from_user(specialfile, specialfile) __field(int, swap_flags)), + TP_fast_assign(tp_copy_string_from_user(specialfile, specialfile) tp_assign(swap_flags, swap_flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_truncate +SC_TRACE_EVENT(sys_truncate, + TP_PROTO(const char * path, long length), + TP_ARGS(path, length), + TP_STRUCT__entry(__string_from_user(path, path) __field(long, length)), + TP_fast_assign(tp_copy_string_from_user(path, path) tp_assign(length, length)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_statfs +SC_TRACE_EVENT(sys_statfs, + TP_PROTO(const char * pathname, struct statfs * buf), + TP_ARGS(pathname, buf), + TP_STRUCT__entry(__string_from_user(pathname, pathname) __field_hex(struct statfs *, buf)), + TP_fast_assign(tp_copy_string_from_user(pathname, pathname) tp_assign(buf, buf)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_fstatfs +SC_TRACE_EVENT(sys_fstatfs, + TP_PROTO(unsigned int fd, struct statfs * buf), + TP_ARGS(fd, buf), + TP_STRUCT__entry(__field(unsigned int, fd) __field_hex(struct statfs *, buf)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(buf, buf)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_socketcall +SC_TRACE_EVENT(sys_socketcall, + TP_PROTO(int call, unsigned long * args), + TP_ARGS(call, args), + TP_STRUCT__entry(__field(int, call) __field_hex(unsigned long *, args)), + TP_fast_assign(tp_assign(call, call) tp_assign(args, args)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_getitimer +SC_TRACE_EVENT(sys_getitimer, + TP_PROTO(int which, struct itimerval * value), + TP_ARGS(which, value), + TP_STRUCT__entry(__field(int, which) __field_hex(struct itimerval *, value)), + TP_fast_assign(tp_assign(which, which) tp_assign(value, value)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_newstat +SC_TRACE_EVENT(sys_newstat, + TP_PROTO(const char * filename, struct stat * statbuf), + TP_ARGS(filename, statbuf), + TP_STRUCT__entry(__string_from_user(filename, filename) __field_hex(struct stat *, statbuf)), + TP_fast_assign(tp_copy_string_from_user(filename, filename) tp_assign(statbuf, statbuf)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_newlstat +SC_TRACE_EVENT(sys_newlstat, + TP_PROTO(const char * filename, struct stat * statbuf), + TP_ARGS(filename, statbuf), + TP_STRUCT__entry(__string_from_user(filename, filename) __field_hex(struct stat *, statbuf)), + TP_fast_assign(tp_copy_string_from_user(filename, filename) tp_assign(statbuf, statbuf)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_newfstat +SC_TRACE_EVENT(sys_newfstat, + TP_PROTO(unsigned int fd, struct stat * statbuf), + TP_ARGS(fd, statbuf), + TP_STRUCT__entry(__field(unsigned int, fd) __field_hex(struct stat *, statbuf)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(statbuf, statbuf)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_setdomainname +SC_TRACE_EVENT(sys_setdomainname, + TP_PROTO(char * name, int len), + TP_ARGS(name, len), + TP_STRUCT__entry(__string_from_user(name, name) __field(int, len)), + TP_fast_assign(tp_copy_string_from_user(name, name) tp_assign(len, len)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_delete_module +SC_TRACE_EVENT(sys_delete_module, + TP_PROTO(const char * name_user, unsigned int flags), + TP_ARGS(name_user, flags), + TP_STRUCT__entry(__string_from_user(name_user, name_user) __field(unsigned int, flags)), + TP_fast_assign(tp_copy_string_from_user(name_user, name_user) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_sched_setparam +SC_TRACE_EVENT(sys_sched_setparam, + TP_PROTO(pid_t pid, struct sched_param * param), + TP_ARGS(pid, param), + TP_STRUCT__entry(__field(pid_t, pid) __field_hex(struct sched_param *, param)), + TP_fast_assign(tp_assign(pid, pid) tp_assign(param, param)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_sched_getparam +SC_TRACE_EVENT(sys_sched_getparam, + TP_PROTO(pid_t pid, struct sched_param * param), + TP_ARGS(pid, param), + TP_STRUCT__entry(__field(pid_t, pid) __field_hex(struct sched_param *, param)), + TP_fast_assign(tp_assign(pid, pid) tp_assign(param, param)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_sched_rr_get_interval +SC_TRACE_EVENT(sys_sched_rr_get_interval, + TP_PROTO(pid_t pid, struct timespec * interval), + TP_ARGS(pid, interval), + TP_STRUCT__entry(__field(pid_t, pid) __field_hex(struct timespec *, interval)), + TP_fast_assign(tp_assign(pid, pid) tp_assign(interval, interval)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_nanosleep +SC_TRACE_EVENT(sys_nanosleep, + TP_PROTO(struct timespec * rqtp, struct timespec * rmtp), + TP_ARGS(rqtp, rmtp), + TP_STRUCT__entry(__field_hex(struct timespec *, rqtp) __field_hex(struct timespec *, rmtp)), + TP_fast_assign(tp_assign(rqtp, rqtp) tp_assign(rmtp, rmtp)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_rt_sigpending +SC_TRACE_EVENT(sys_rt_sigpending, + TP_PROTO(sigset_t * set, size_t sigsetsize), + TP_ARGS(set, sigsetsize), + TP_STRUCT__entry(__field_hex(sigset_t *, set) __field(size_t, sigsetsize)), + TP_fast_assign(tp_assign(set, set) tp_assign(sigsetsize, sigsetsize)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_rt_sigsuspend +SC_TRACE_EVENT(sys_rt_sigsuspend, + TP_PROTO(sigset_t * unewset, size_t sigsetsize), + TP_ARGS(unewset, sigsetsize), + TP_STRUCT__entry(__field_hex(sigset_t *, unewset) __field(size_t, sigsetsize)), + TP_fast_assign(tp_assign(unewset, unewset) tp_assign(sigsetsize, sigsetsize)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_getcwd +SC_TRACE_EVENT(sys_getcwd, + TP_PROTO(char * buf, unsigned long size), + TP_ARGS(buf, size), + TP_STRUCT__entry(__field_hex(char *, buf) __field(unsigned long, size)), + TP_fast_assign(tp_assign(buf, buf) tp_assign(size, size)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_getrlimit +SC_TRACE_EVENT(sys_getrlimit, + TP_PROTO(unsigned int resource, struct rlimit * rlim), + TP_ARGS(resource, rlim), + TP_STRUCT__entry(__field(unsigned int, resource) __field_hex(struct rlimit *, rlim)), + TP_fast_assign(tp_assign(resource, resource) tp_assign(rlim, rlim)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_stat64 +SC_TRACE_EVENT(sys_stat64, + TP_PROTO(const char * filename, struct stat64 * statbuf), + TP_ARGS(filename, statbuf), + TP_STRUCT__entry(__string_from_user(filename, filename) __field_hex(struct stat64 *, statbuf)), + TP_fast_assign(tp_copy_string_from_user(filename, filename) tp_assign(statbuf, statbuf)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_lstat64 +SC_TRACE_EVENT(sys_lstat64, + TP_PROTO(const char * filename, struct stat64 * statbuf), + TP_ARGS(filename, statbuf), + TP_STRUCT__entry(__string_from_user(filename, filename) __field_hex(struct stat64 *, statbuf)), + TP_fast_assign(tp_copy_string_from_user(filename, filename) tp_assign(statbuf, statbuf)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_fstat64 +SC_TRACE_EVENT(sys_fstat64, + TP_PROTO(unsigned long fd, struct stat64 * statbuf), + TP_ARGS(fd, statbuf), + TP_STRUCT__entry(__field(unsigned long, fd) __field_hex(struct stat64 *, statbuf)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(statbuf, statbuf)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_pivot_root +SC_TRACE_EVENT(sys_pivot_root, + TP_PROTO(const char * new_root, const char * put_old), + TP_ARGS(new_root, put_old), + TP_STRUCT__entry(__string_from_user(new_root, new_root) __string_from_user(put_old, put_old)), + TP_fast_assign(tp_copy_string_from_user(new_root, new_root) tp_copy_string_from_user(put_old, put_old)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_removexattr +SC_TRACE_EVENT(sys_removexattr, + TP_PROTO(const char * pathname, const char * name), + TP_ARGS(pathname, name), + TP_STRUCT__entry(__string_from_user(pathname, pathname) __string_from_user(name, name)), + TP_fast_assign(tp_copy_string_from_user(pathname, pathname) tp_copy_string_from_user(name, name)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_lremovexattr +SC_TRACE_EVENT(sys_lremovexattr, + TP_PROTO(const char * pathname, const char * name), + TP_ARGS(pathname, name), + TP_STRUCT__entry(__string_from_user(pathname, pathname) __string_from_user(name, name)), + TP_fast_assign(tp_copy_string_from_user(pathname, pathname) tp_copy_string_from_user(name, name)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_fremovexattr +SC_TRACE_EVENT(sys_fremovexattr, + TP_PROTO(int fd, const char * name), + TP_ARGS(fd, name), + TP_STRUCT__entry(__field(int, fd) __string_from_user(name, name)), + TP_fast_assign(tp_assign(fd, fd) tp_copy_string_from_user(name, name)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_io_setup +SC_TRACE_EVENT(sys_io_setup, + TP_PROTO(unsigned nr_events, aio_context_t * ctxp), + TP_ARGS(nr_events, ctxp), + TP_STRUCT__entry(__field(unsigned, nr_events) __field_hex(aio_context_t *, ctxp)), + TP_fast_assign(tp_assign(nr_events, nr_events) tp_assign(ctxp, ctxp)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_timer_gettime +SC_TRACE_EVENT(sys_timer_gettime, + TP_PROTO(timer_t timer_id, struct itimerspec * setting), + TP_ARGS(timer_id, setting), + TP_STRUCT__entry(__field(timer_t, timer_id) __field_hex(struct itimerspec *, setting)), + TP_fast_assign(tp_assign(timer_id, timer_id) tp_assign(setting, setting)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_clock_settime +SC_TRACE_EVENT(sys_clock_settime, + TP_PROTO(const clockid_t which_clock, const struct timespec * tp), + TP_ARGS(which_clock, tp), + TP_STRUCT__entry(__field(const clockid_t, which_clock) __field_hex(const struct timespec *, tp)), + TP_fast_assign(tp_assign(which_clock, which_clock) tp_assign(tp, tp)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_clock_gettime +SC_TRACE_EVENT(sys_clock_gettime, + TP_PROTO(const clockid_t which_clock, struct timespec * tp), + TP_ARGS(which_clock, tp), + TP_STRUCT__entry(__field(const clockid_t, which_clock) __field_hex(struct timespec *, tp)), + TP_fast_assign(tp_assign(which_clock, which_clock) tp_assign(tp, tp)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_clock_getres +SC_TRACE_EVENT(sys_clock_getres, + TP_PROTO(const clockid_t which_clock, struct timespec * tp), + TP_ARGS(which_clock, tp), + TP_STRUCT__entry(__field(const clockid_t, which_clock) __field_hex(struct timespec *, tp)), + TP_fast_assign(tp_assign(which_clock, which_clock) tp_assign(tp, tp)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_utimes +SC_TRACE_EVENT(sys_utimes, + TP_PROTO(char * filename, struct timeval * utimes), + TP_ARGS(filename, utimes), + TP_STRUCT__entry(__string_from_user(filename, filename) __field_hex(struct timeval *, utimes)), + TP_fast_assign(tp_copy_string_from_user(filename, filename) tp_assign(utimes, utimes)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_mq_notify +SC_TRACE_EVENT(sys_mq_notify, + TP_PROTO(mqd_t mqdes, const struct sigevent * u_notification), + TP_ARGS(mqdes, u_notification), + TP_STRUCT__entry(__field(mqd_t, mqdes) __field_hex(const struct sigevent *, u_notification)), + TP_fast_assign(tp_assign(mqdes, mqdes) tp_assign(u_notification, u_notification)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_set_robust_list +SC_TRACE_EVENT(sys_set_robust_list, + TP_PROTO(struct robust_list_head * head, size_t len), + TP_ARGS(head, len), + TP_STRUCT__entry(__field_hex(struct robust_list_head *, head) __field(size_t, len)), + TP_fast_assign(tp_assign(head, head) tp_assign(len, len)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_timerfd_gettime +SC_TRACE_EVENT(sys_timerfd_gettime, + TP_PROTO(int ufd, struct itimerspec * otmr), + TP_ARGS(ufd, otmr), + TP_STRUCT__entry(__field(int, ufd) __field_hex(struct itimerspec *, otmr)), + TP_fast_assign(tp_assign(ufd, ufd) tp_assign(otmr, otmr)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_pipe2 +SC_TRACE_EVENT(sys_pipe2, + TP_PROTO(int * fildes, int flags), + TP_ARGS(fildes, flags), + TP_STRUCT__entry(__field_hex(int *, fildes) __field(int, flags)), + TP_fast_assign(tp_assign(fildes, fildes) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_clock_adjtime +SC_TRACE_EVENT(sys_clock_adjtime, + TP_PROTO(const clockid_t which_clock, struct timex * utx), + TP_ARGS(which_clock, utx), + TP_STRUCT__entry(__field(const clockid_t, which_clock) __field_hex(struct timex *, utx)), + TP_fast_assign(tp_assign(which_clock, which_clock) tp_assign(utx, utx)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_read +SC_TRACE_EVENT(sys_read, + TP_PROTO(unsigned int fd, char * buf, size_t count), + TP_ARGS(fd, buf, count), + TP_STRUCT__entry(__field(unsigned int, fd) __field_hex(char *, buf) __field(size_t, count)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(buf, buf) tp_assign(count, count)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_write +SC_TRACE_EVENT(sys_write, + TP_PROTO(unsigned int fd, const char * buf, size_t count), + TP_ARGS(fd, buf, count), + TP_STRUCT__entry(__field(unsigned int, fd) __field_hex(const char *, buf) __field(size_t, count)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(buf, buf) tp_assign(count, count)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_open +SC_TRACE_EVENT(sys_open, + TP_PROTO(const char * filename, int flags, int mode), + TP_ARGS(filename, flags, mode), + TP_STRUCT__entry(__string_from_user(filename, filename) __field(int, flags) __field(int, mode)), + TP_fast_assign(tp_copy_string_from_user(filename, filename) tp_assign(flags, flags) tp_assign(mode, mode)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_waitpid +SC_TRACE_EVENT(sys_waitpid, + TP_PROTO(pid_t pid, int * stat_addr, int options), + TP_ARGS(pid, stat_addr, options), + TP_STRUCT__entry(__field(pid_t, pid) __field_hex(int *, stat_addr) __field(int, options)), + TP_fast_assign(tp_assign(pid, pid) tp_assign(stat_addr, stat_addr) tp_assign(options, options)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_mknod +SC_TRACE_EVENT(sys_mknod, + TP_PROTO(const char * filename, int mode, unsigned dev), + TP_ARGS(filename, mode, dev), + TP_STRUCT__entry(__string_from_user(filename, filename) __field(int, mode) __field(unsigned, dev)), + TP_fast_assign(tp_copy_string_from_user(filename, filename) tp_assign(mode, mode) tp_assign(dev, dev)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_lchown +SC_TRACE_EVENT(sys_lchown, + TP_PROTO(const char * filename, uid_t user, gid_t group), + TP_ARGS(filename, user, group), + TP_STRUCT__entry(__string_from_user(filename, filename) __field(uid_t, user) __field(gid_t, group)), + TP_fast_assign(tp_copy_string_from_user(filename, filename) tp_assign(user, user) tp_assign(group, group)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_readlink +SC_TRACE_EVENT(sys_readlink, + TP_PROTO(const char * path, char * buf, int bufsiz), + TP_ARGS(path, buf, bufsiz), + TP_STRUCT__entry(__string_from_user(path, path) __field_hex(char *, buf) __field(int, bufsiz)), + TP_fast_assign(tp_copy_string_from_user(path, path) tp_assign(buf, buf) tp_assign(bufsiz, bufsiz)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_old_readdir +SC_TRACE_EVENT(sys_old_readdir, + TP_PROTO(unsigned int fd, struct old_linux_dirent * dirent, unsigned int count), + TP_ARGS(fd, dirent, count), + TP_STRUCT__entry(__field(unsigned int, fd) __field_hex(struct old_linux_dirent *, dirent) __field(unsigned int, count)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(dirent, dirent) tp_assign(count, count)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_syslog +SC_TRACE_EVENT(sys_syslog, + TP_PROTO(int type, char * buf, int len), + TP_ARGS(type, buf, len), + TP_STRUCT__entry(__field(int, type) __field_hex(char *, buf) __field(int, len)), + TP_fast_assign(tp_assign(type, type) tp_assign(buf, buf) tp_assign(len, len)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_setitimer +SC_TRACE_EVENT(sys_setitimer, + TP_PROTO(int which, struct itimerval * value, struct itimerval * ovalue), + TP_ARGS(which, value, ovalue), + TP_STRUCT__entry(__field(int, which) __field_hex(struct itimerval *, value) __field_hex(struct itimerval *, ovalue)), + TP_fast_assign(tp_assign(which, which) tp_assign(value, value) tp_assign(ovalue, ovalue)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_sigprocmask +SC_TRACE_EVENT(sys_sigprocmask, + TP_PROTO(int how, old_sigset_t * nset, old_sigset_t * oset), + TP_ARGS(how, nset, oset), + TP_STRUCT__entry(__field(int, how) __field_hex(old_sigset_t *, nset) __field_hex(old_sigset_t *, oset)), + TP_fast_assign(tp_assign(how, how) tp_assign(nset, nset) tp_assign(oset, oset)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_init_module +SC_TRACE_EVENT(sys_init_module, + TP_PROTO(void * umod, unsigned long len, const char * uargs), + TP_ARGS(umod, len, uargs), + TP_STRUCT__entry(__field_hex(void *, umod) __field(unsigned long, len) __field_hex(const char *, uargs)), + TP_fast_assign(tp_assign(umod, umod) tp_assign(len, len) tp_assign(uargs, uargs)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_getdents +SC_TRACE_EVENT(sys_getdents, + TP_PROTO(unsigned int fd, struct linux_dirent * dirent, unsigned int count), + TP_ARGS(fd, dirent, count), + TP_STRUCT__entry(__field(unsigned int, fd) __field_hex(struct linux_dirent *, dirent) __field(unsigned int, count)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(dirent, dirent) tp_assign(count, count)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_readv +SC_TRACE_EVENT(sys_readv, + TP_PROTO(unsigned long fd, const struct iovec * vec, unsigned long vlen), + TP_ARGS(fd, vec, vlen), + TP_STRUCT__entry(__field(unsigned long, fd) __field_hex(const struct iovec *, vec) __field(unsigned long, vlen)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(vec, vec) tp_assign(vlen, vlen)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_writev +SC_TRACE_EVENT(sys_writev, + TP_PROTO(unsigned long fd, const struct iovec * vec, unsigned long vlen), + TP_ARGS(fd, vec, vlen), + TP_STRUCT__entry(__field(unsigned long, fd) __field_hex(const struct iovec *, vec) __field(unsigned long, vlen)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(vec, vec) tp_assign(vlen, vlen)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_sched_setscheduler +SC_TRACE_EVENT(sys_sched_setscheduler, + TP_PROTO(pid_t pid, int policy, struct sched_param * param), + TP_ARGS(pid, policy, param), + TP_STRUCT__entry(__field(pid_t, pid) __field(int, policy) __field_hex(struct sched_param *, param)), + TP_fast_assign(tp_assign(pid, pid) tp_assign(policy, policy) tp_assign(param, param)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_getresuid +SC_TRACE_EVENT(sys_getresuid, + TP_PROTO(uid_t * ruid, uid_t * euid, uid_t * suid), + TP_ARGS(ruid, euid, suid), + TP_STRUCT__entry(__field_hex(uid_t *, ruid) __field_hex(uid_t *, euid) __field_hex(uid_t *, suid)), + TP_fast_assign(tp_assign(ruid, ruid) tp_assign(euid, euid) tp_assign(suid, suid)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_poll +SC_TRACE_EVENT(sys_poll, + TP_PROTO(struct pollfd * ufds, unsigned int nfds, long timeout_msecs), + TP_ARGS(ufds, nfds, timeout_msecs), + TP_STRUCT__entry(__field_hex(struct pollfd *, ufds) __field(unsigned int, nfds) __field(long, timeout_msecs)), + TP_fast_assign(tp_assign(ufds, ufds) tp_assign(nfds, nfds) tp_assign(timeout_msecs, timeout_msecs)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_nfsservctl +SC_TRACE_EVENT(sys_nfsservctl, + TP_PROTO(int cmd, struct nfsctl_arg * arg, void * res), + TP_ARGS(cmd, arg, res), + TP_STRUCT__entry(__field(int, cmd) __field_hex(struct nfsctl_arg *, arg) __field_hex(void *, res)), + TP_fast_assign(tp_assign(cmd, cmd) tp_assign(arg, arg) tp_assign(res, res)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_getresgid +SC_TRACE_EVENT(sys_getresgid, + TP_PROTO(gid_t * rgid, gid_t * egid, gid_t * sgid), + TP_ARGS(rgid, egid, sgid), + TP_STRUCT__entry(__field_hex(gid_t *, rgid) __field_hex(gid_t *, egid) __field_hex(gid_t *, sgid)), + TP_fast_assign(tp_assign(rgid, rgid) tp_assign(egid, egid) tp_assign(sgid, sgid)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_rt_sigqueueinfo +SC_TRACE_EVENT(sys_rt_sigqueueinfo, + TP_PROTO(pid_t pid, int sig, siginfo_t * uinfo), + TP_ARGS(pid, sig, uinfo), + TP_STRUCT__entry(__field(pid_t, pid) __field(int, sig) __field_hex(siginfo_t *, uinfo)), + TP_fast_assign(tp_assign(pid, pid) tp_assign(sig, sig) tp_assign(uinfo, uinfo)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_chown +SC_TRACE_EVENT(sys_chown, + TP_PROTO(const char * filename, uid_t user, gid_t group), + TP_ARGS(filename, user, group), + TP_STRUCT__entry(__string_from_user(filename, filename) __field(uid_t, user) __field(gid_t, group)), + TP_fast_assign(tp_copy_string_from_user(filename, filename) tp_assign(user, user) tp_assign(group, group)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_getdents64 +SC_TRACE_EVENT(sys_getdents64, + TP_PROTO(unsigned int fd, struct linux_dirent64 * dirent, unsigned int count), + TP_ARGS(fd, dirent, count), + TP_STRUCT__entry(__field(unsigned int, fd) __field_hex(struct linux_dirent64 *, dirent) __field(unsigned int, count)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(dirent, dirent) tp_assign(count, count)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_mincore +SC_TRACE_EVENT(sys_mincore, + TP_PROTO(unsigned long start, size_t len, unsigned char * vec), + TP_ARGS(start, len, vec), + TP_STRUCT__entry(__field(unsigned long, start) __field(size_t, len) __field_hex(unsigned char *, vec)), + TP_fast_assign(tp_assign(start, start) tp_assign(len, len) tp_assign(vec, vec)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_listxattr +SC_TRACE_EVENT(sys_listxattr, + TP_PROTO(const char * pathname, char * list, size_t size), + TP_ARGS(pathname, list, size), + TP_STRUCT__entry(__string_from_user(pathname, pathname) __field_hex(char *, list) __field(size_t, size)), + TP_fast_assign(tp_copy_string_from_user(pathname, pathname) tp_assign(list, list) tp_assign(size, size)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_llistxattr +SC_TRACE_EVENT(sys_llistxattr, + TP_PROTO(const char * pathname, char * list, size_t size), + TP_ARGS(pathname, list, size), + TP_STRUCT__entry(__string_from_user(pathname, pathname) __field_hex(char *, list) __field(size_t, size)), + TP_fast_assign(tp_copy_string_from_user(pathname, pathname) tp_assign(list, list) tp_assign(size, size)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_flistxattr +SC_TRACE_EVENT(sys_flistxattr, + TP_PROTO(int fd, char * list, size_t size), + TP_ARGS(fd, list, size), + TP_STRUCT__entry(__field(int, fd) __field_hex(char *, list) __field(size_t, size)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(list, list) tp_assign(size, size)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_sched_setaffinity +SC_TRACE_EVENT(sys_sched_setaffinity, + TP_PROTO(pid_t pid, unsigned int len, unsigned long * user_mask_ptr), + TP_ARGS(pid, len, user_mask_ptr), + TP_STRUCT__entry(__field(pid_t, pid) __field(unsigned int, len) __field_hex(unsigned long *, user_mask_ptr)), + TP_fast_assign(tp_assign(pid, pid) tp_assign(len, len) tp_assign(user_mask_ptr, user_mask_ptr)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_sched_getaffinity +SC_TRACE_EVENT(sys_sched_getaffinity, + TP_PROTO(pid_t pid, unsigned int len, unsigned long * user_mask_ptr), + TP_ARGS(pid, len, user_mask_ptr), + TP_STRUCT__entry(__field(pid_t, pid) __field(unsigned int, len) __field_hex(unsigned long *, user_mask_ptr)), + TP_fast_assign(tp_assign(pid, pid) tp_assign(len, len) tp_assign(user_mask_ptr, user_mask_ptr)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_io_submit +SC_TRACE_EVENT(sys_io_submit, + TP_PROTO(aio_context_t ctx_id, long nr, struct iocb * * iocbpp), + TP_ARGS(ctx_id, nr, iocbpp), + TP_STRUCT__entry(__field(aio_context_t, ctx_id) __field(long, nr) __field_hex(struct iocb * *, iocbpp)), + TP_fast_assign(tp_assign(ctx_id, ctx_id) tp_assign(nr, nr) tp_assign(iocbpp, iocbpp)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_io_cancel +SC_TRACE_EVENT(sys_io_cancel, + TP_PROTO(aio_context_t ctx_id, struct iocb * iocb, struct io_event * result), + TP_ARGS(ctx_id, iocb, result), + TP_STRUCT__entry(__field(aio_context_t, ctx_id) __field_hex(struct iocb *, iocb) __field_hex(struct io_event *, result)), + TP_fast_assign(tp_assign(ctx_id, ctx_id) tp_assign(iocb, iocb) tp_assign(result, result)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_timer_create +SC_TRACE_EVENT(sys_timer_create, + TP_PROTO(const clockid_t which_clock, struct sigevent * timer_event_spec, timer_t * created_timer_id), + TP_ARGS(which_clock, timer_event_spec, created_timer_id), + TP_STRUCT__entry(__field(const clockid_t, which_clock) __field_hex(struct sigevent *, timer_event_spec) __field_hex(timer_t *, created_timer_id)), + TP_fast_assign(tp_assign(which_clock, which_clock) tp_assign(timer_event_spec, timer_event_spec) tp_assign(created_timer_id, created_timer_id)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_statfs64 +SC_TRACE_EVENT(sys_statfs64, + TP_PROTO(const char * pathname, size_t sz, struct statfs64 * buf), + TP_ARGS(pathname, sz, buf), + TP_STRUCT__entry(__string_from_user(pathname, pathname) __field(size_t, sz) __field_hex(struct statfs64 *, buf)), + TP_fast_assign(tp_copy_string_from_user(pathname, pathname) tp_assign(sz, sz) tp_assign(buf, buf)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_fstatfs64 +SC_TRACE_EVENT(sys_fstatfs64, + TP_PROTO(unsigned int fd, size_t sz, struct statfs64 * buf), + TP_ARGS(fd, sz, buf), + TP_STRUCT__entry(__field(unsigned int, fd) __field(size_t, sz) __field_hex(struct statfs64 *, buf)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(sz, sz) tp_assign(buf, buf)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_mq_getsetattr +SC_TRACE_EVENT(sys_mq_getsetattr, + TP_PROTO(mqd_t mqdes, const struct mq_attr * u_mqstat, struct mq_attr * u_omqstat), + TP_ARGS(mqdes, u_mqstat, u_omqstat), + TP_STRUCT__entry(__field(mqd_t, mqdes) __field_hex(const struct mq_attr *, u_mqstat) __field_hex(struct mq_attr *, u_omqstat)), + TP_fast_assign(tp_assign(mqdes, mqdes) tp_assign(u_mqstat, u_mqstat) tp_assign(u_omqstat, u_omqstat)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_inotify_add_watch +SC_TRACE_EVENT(sys_inotify_add_watch, + TP_PROTO(int fd, const char * pathname, u32 mask), + TP_ARGS(fd, pathname, mask), + TP_STRUCT__entry(__field(int, fd) __string_from_user(pathname, pathname) __field(u32, mask)), + TP_fast_assign(tp_assign(fd, fd) tp_copy_string_from_user(pathname, pathname) tp_assign(mask, mask)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_mkdirat +SC_TRACE_EVENT(sys_mkdirat, + TP_PROTO(int dfd, const char * pathname, int mode), + TP_ARGS(dfd, pathname, mode), + TP_STRUCT__entry(__field(int, dfd) __string_from_user(pathname, pathname) __field(int, mode)), + TP_fast_assign(tp_assign(dfd, dfd) tp_copy_string_from_user(pathname, pathname) tp_assign(mode, mode)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_futimesat +SC_TRACE_EVENT(sys_futimesat, + TP_PROTO(int dfd, const char * filename, struct timeval * utimes), + TP_ARGS(dfd, filename, utimes), + TP_STRUCT__entry(__field(int, dfd) __string_from_user(filename, filename) __field_hex(struct timeval *, utimes)), + TP_fast_assign(tp_assign(dfd, dfd) tp_copy_string_from_user(filename, filename) tp_assign(utimes, utimes)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_unlinkat +SC_TRACE_EVENT(sys_unlinkat, + TP_PROTO(int dfd, const char * pathname, int flag), + TP_ARGS(dfd, pathname, flag), + TP_STRUCT__entry(__field(int, dfd) __string_from_user(pathname, pathname) __field(int, flag)), + TP_fast_assign(tp_assign(dfd, dfd) tp_copy_string_from_user(pathname, pathname) tp_assign(flag, flag)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_symlinkat +SC_TRACE_EVENT(sys_symlinkat, + TP_PROTO(const char * oldname, int newdfd, const char * newname), + TP_ARGS(oldname, newdfd, newname), + TP_STRUCT__entry(__string_from_user(oldname, oldname) __field(int, newdfd) __string_from_user(newname, newname)), + TP_fast_assign(tp_copy_string_from_user(oldname, oldname) tp_assign(newdfd, newdfd) tp_copy_string_from_user(newname, newname)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_fchmodat +SC_TRACE_EVENT(sys_fchmodat, + TP_PROTO(int dfd, const char * filename, mode_t mode), + TP_ARGS(dfd, filename, mode), + TP_STRUCT__entry(__field(int, dfd) __string_from_user(filename, filename) __field(mode_t, mode)), + TP_fast_assign(tp_assign(dfd, dfd) tp_copy_string_from_user(filename, filename) tp_assign(mode, mode)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_faccessat +SC_TRACE_EVENT(sys_faccessat, + TP_PROTO(int dfd, const char * filename, int mode), + TP_ARGS(dfd, filename, mode), + TP_STRUCT__entry(__field(int, dfd) __string_from_user(filename, filename) __field(int, mode)), + TP_fast_assign(tp_assign(dfd, dfd) tp_copy_string_from_user(filename, filename) tp_assign(mode, mode)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_get_robust_list +SC_TRACE_EVENT(sys_get_robust_list, + TP_PROTO(int pid, struct robust_list_head * * head_ptr, size_t * len_ptr), + TP_ARGS(pid, head_ptr, len_ptr), + TP_STRUCT__entry(__field(int, pid) __field_hex(struct robust_list_head * *, head_ptr) __field_hex(size_t *, len_ptr)), + TP_fast_assign(tp_assign(pid, pid) tp_assign(head_ptr, head_ptr) tp_assign(len_ptr, len_ptr)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_getcpu +SC_TRACE_EVENT(sys_getcpu, + TP_PROTO(unsigned * cpup, unsigned * nodep, struct getcpu_cache * unused), + TP_ARGS(cpup, nodep, unused), + TP_STRUCT__entry(__field_hex(unsigned *, cpup) __field_hex(unsigned *, nodep) __field_hex(struct getcpu_cache *, unused)), + TP_fast_assign(tp_assign(cpup, cpup) tp_assign(nodep, nodep) tp_assign(unused, unused)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_signalfd +SC_TRACE_EVENT(sys_signalfd, + TP_PROTO(int ufd, sigset_t * user_mask, size_t sizemask), + TP_ARGS(ufd, user_mask, sizemask), + TP_STRUCT__entry(__field(int, ufd) __field_hex(sigset_t *, user_mask) __field(size_t, sizemask)), + TP_fast_assign(tp_assign(ufd, ufd) tp_assign(user_mask, user_mask) tp_assign(sizemask, sizemask)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_bind +SC_TRACE_EVENT(sys_bind, + TP_PROTO(int fd, struct sockaddr * umyaddr, int addrlen), + TP_ARGS(fd, umyaddr, addrlen), + TP_STRUCT__entry(__field(int, fd) __field_hex(struct sockaddr *, umyaddr) __field_hex(int, addrlen)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(umyaddr, umyaddr) tp_assign(addrlen, addrlen)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_connect +SC_TRACE_EVENT(sys_connect, + TP_PROTO(int fd, struct sockaddr * uservaddr, int addrlen), + TP_ARGS(fd, uservaddr, addrlen), + TP_STRUCT__entry(__field(int, fd) __field_hex(struct sockaddr *, uservaddr) __field_hex(int, addrlen)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(uservaddr, uservaddr) tp_assign(addrlen, addrlen)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_accept +SC_TRACE_EVENT(sys_accept, + TP_PROTO(int fd, struct sockaddr * upeer_sockaddr, int * upeer_addrlen), + TP_ARGS(fd, upeer_sockaddr, upeer_addrlen), + TP_STRUCT__entry(__field(int, fd) __field_hex(struct sockaddr *, upeer_sockaddr) __field_hex(int *, upeer_addrlen)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(upeer_sockaddr, upeer_sockaddr) tp_assign(upeer_addrlen, upeer_addrlen)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_getsockname +SC_TRACE_EVENT(sys_getsockname, + TP_PROTO(int fd, struct sockaddr * usockaddr, int * usockaddr_len), + TP_ARGS(fd, usockaddr, usockaddr_len), + TP_STRUCT__entry(__field(int, fd) __field_hex(struct sockaddr *, usockaddr) __field_hex(int *, usockaddr_len)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(usockaddr, usockaddr) tp_assign(usockaddr_len, usockaddr_len)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_getpeername +SC_TRACE_EVENT(sys_getpeername, + TP_PROTO(int fd, struct sockaddr * usockaddr, int * usockaddr_len), + TP_ARGS(fd, usockaddr, usockaddr_len), + TP_STRUCT__entry(__field(int, fd) __field_hex(struct sockaddr *, usockaddr) __field_hex(int *, usockaddr_len)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(usockaddr, usockaddr) tp_assign(usockaddr_len, usockaddr_len)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_sendmsg +SC_TRACE_EVENT(sys_sendmsg, + TP_PROTO(int fd, struct msghdr * msg, unsigned flags), + TP_ARGS(fd, msg, flags), + TP_STRUCT__entry(__field(int, fd) __field_hex(struct msghdr *, msg) __field(unsigned, flags)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(msg, msg) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_recvmsg +SC_TRACE_EVENT(sys_recvmsg, + TP_PROTO(int fd, struct msghdr * msg, unsigned int flags), + TP_ARGS(fd, msg, flags), + TP_STRUCT__entry(__field(int, fd) __field_hex(struct msghdr *, msg) __field(unsigned int, flags)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(msg, msg) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_reboot +SC_TRACE_EVENT(sys_reboot, + TP_PROTO(int magic1, int magic2, unsigned int cmd, void * arg), + TP_ARGS(magic1, magic2, cmd, arg), + TP_STRUCT__entry(__field(int, magic1) __field(int, magic2) __field(unsigned int, cmd) __field_hex(void *, arg)), + TP_fast_assign(tp_assign(magic1, magic1) tp_assign(magic2, magic2) tp_assign(cmd, cmd) tp_assign(arg, arg)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_wait4 +SC_TRACE_EVENT(sys_wait4, + TP_PROTO(pid_t upid, int * stat_addr, int options, struct rusage * ru), + TP_ARGS(upid, stat_addr, options, ru), + TP_STRUCT__entry(__field(pid_t, upid) __field_hex(int *, stat_addr) __field(int, options) __field_hex(struct rusage *, ru)), + TP_fast_assign(tp_assign(upid, upid) tp_assign(stat_addr, stat_addr) tp_assign(options, options) tp_assign(ru, ru)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_rt_sigaction +SC_TRACE_EVENT(sys_rt_sigaction, + TP_PROTO(int sig, const struct sigaction * act, struct sigaction * oact, size_t sigsetsize), + TP_ARGS(sig, act, oact, sigsetsize), + TP_STRUCT__entry(__field(int, sig) __field_hex(const struct sigaction *, act) __field_hex(struct sigaction *, oact) __field(size_t, sigsetsize)), + TP_fast_assign(tp_assign(sig, sig) tp_assign(act, act) tp_assign(oact, oact) tp_assign(sigsetsize, sigsetsize)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_rt_sigprocmask +SC_TRACE_EVENT(sys_rt_sigprocmask, + TP_PROTO(int how, sigset_t * nset, sigset_t * oset, size_t sigsetsize), + TP_ARGS(how, nset, oset, sigsetsize), + TP_STRUCT__entry(__field(int, how) __field_hex(sigset_t *, nset) __field_hex(sigset_t *, oset) __field(size_t, sigsetsize)), + TP_fast_assign(tp_assign(how, how) tp_assign(nset, nset) tp_assign(oset, oset) tp_assign(sigsetsize, sigsetsize)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_rt_sigtimedwait +SC_TRACE_EVENT(sys_rt_sigtimedwait, + TP_PROTO(const sigset_t * uthese, siginfo_t * uinfo, const struct timespec * uts, size_t sigsetsize), + TP_ARGS(uthese, uinfo, uts, sigsetsize), + TP_STRUCT__entry(__field_hex(const sigset_t *, uthese) __field_hex(siginfo_t *, uinfo) __field_hex(const struct timespec *, uts) __field(size_t, sigsetsize)), + TP_fast_assign(tp_assign(uthese, uthese) tp_assign(uinfo, uinfo) tp_assign(uts, uts) tp_assign(sigsetsize, sigsetsize)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_sendfile +SC_TRACE_EVENT(sys_sendfile, + TP_PROTO(int out_fd, int in_fd, off_t * offset, size_t count), + TP_ARGS(out_fd, in_fd, offset, count), + TP_STRUCT__entry(__field(int, out_fd) __field(int, in_fd) __field_hex(off_t *, offset) __field(size_t, count)), + TP_fast_assign(tp_assign(out_fd, out_fd) tp_assign(in_fd, in_fd) tp_assign(offset, offset) tp_assign(count, count)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_getxattr +SC_TRACE_EVENT(sys_getxattr, + TP_PROTO(const char * pathname, const char * name, void * value, size_t size), + TP_ARGS(pathname, name, value, size), + TP_STRUCT__entry(__string_from_user(pathname, pathname) __string_from_user(name, name) __field_hex(void *, value) __field(size_t, size)), + TP_fast_assign(tp_copy_string_from_user(pathname, pathname) tp_copy_string_from_user(name, name) tp_assign(value, value) tp_assign(size, size)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_lgetxattr +SC_TRACE_EVENT(sys_lgetxattr, + TP_PROTO(const char * pathname, const char * name, void * value, size_t size), + TP_ARGS(pathname, name, value, size), + TP_STRUCT__entry(__string_from_user(pathname, pathname) __string_from_user(name, name) __field_hex(void *, value) __field(size_t, size)), + TP_fast_assign(tp_copy_string_from_user(pathname, pathname) tp_copy_string_from_user(name, name) tp_assign(value, value) tp_assign(size, size)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_fgetxattr +SC_TRACE_EVENT(sys_fgetxattr, + TP_PROTO(int fd, const char * name, void * value, size_t size), + TP_ARGS(fd, name, value, size), + TP_STRUCT__entry(__field(int, fd) __string_from_user(name, name) __field_hex(void *, value) __field(size_t, size)), + TP_fast_assign(tp_assign(fd, fd) tp_copy_string_from_user(name, name) tp_assign(value, value) tp_assign(size, size)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_sendfile64 +SC_TRACE_EVENT(sys_sendfile64, + TP_PROTO(int out_fd, int in_fd, loff_t * offset, size_t count), + TP_ARGS(out_fd, in_fd, offset, count), + TP_STRUCT__entry(__field(int, out_fd) __field(int, in_fd) __field_hex(loff_t *, offset) __field(size_t, count)), + TP_fast_assign(tp_assign(out_fd, out_fd) tp_assign(in_fd, in_fd) tp_assign(offset, offset) tp_assign(count, count)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_epoll_ctl +SC_TRACE_EVENT(sys_epoll_ctl, + TP_PROTO(int epfd, int op, int fd, struct epoll_event * event), + TP_ARGS(epfd, op, fd, event), + TP_STRUCT__entry(__field(int, epfd) __field(int, op) __field(int, fd) __field_hex(struct epoll_event *, event)), + TP_fast_assign(tp_assign(epfd, epfd) tp_assign(op, op) tp_assign(fd, fd) tp_assign(event, event)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_epoll_wait +SC_TRACE_EVENT(sys_epoll_wait, + TP_PROTO(int epfd, struct epoll_event * events, int maxevents, int timeout), + TP_ARGS(epfd, events, maxevents, timeout), + TP_STRUCT__entry(__field(int, epfd) __field_hex(struct epoll_event *, events) __field(int, maxevents) __field(int, timeout)), + TP_fast_assign(tp_assign(epfd, epfd) tp_assign(events, events) tp_assign(maxevents, maxevents) tp_assign(timeout, timeout)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_timer_settime +SC_TRACE_EVENT(sys_timer_settime, + TP_PROTO(timer_t timer_id, int flags, const struct itimerspec * new_setting, struct itimerspec * old_setting), + TP_ARGS(timer_id, flags, new_setting, old_setting), + TP_STRUCT__entry(__field(timer_t, timer_id) __field(int, flags) __field_hex(const struct itimerspec *, new_setting) __field_hex(struct itimerspec *, old_setting)), + TP_fast_assign(tp_assign(timer_id, timer_id) tp_assign(flags, flags) tp_assign(new_setting, new_setting) tp_assign(old_setting, old_setting)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_clock_nanosleep +SC_TRACE_EVENT(sys_clock_nanosleep, + TP_PROTO(const clockid_t which_clock, int flags, const struct timespec * rqtp, struct timespec * rmtp), + TP_ARGS(which_clock, flags, rqtp, rmtp), + TP_STRUCT__entry(__field(const clockid_t, which_clock) __field(int, flags) __field_hex(const struct timespec *, rqtp) __field_hex(struct timespec *, rmtp)), + TP_fast_assign(tp_assign(which_clock, which_clock) tp_assign(flags, flags) tp_assign(rqtp, rqtp) tp_assign(rmtp, rmtp)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_mq_open +SC_TRACE_EVENT(sys_mq_open, + TP_PROTO(const char * u_name, int oflag, mode_t mode, struct mq_attr * u_attr), + TP_ARGS(u_name, oflag, mode, u_attr), + TP_STRUCT__entry(__string_from_user(u_name, u_name) __field(int, oflag) __field(mode_t, mode) __field_hex(struct mq_attr *, u_attr)), + TP_fast_assign(tp_copy_string_from_user(u_name, u_name) tp_assign(oflag, oflag) tp_assign(mode, mode) tp_assign(u_attr, u_attr)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_request_key +SC_TRACE_EVENT(sys_request_key, + TP_PROTO(const char * _type, const char * _description, const char * _callout_info, key_serial_t destringid), + TP_ARGS(_type, _description, _callout_info, destringid), + TP_STRUCT__entry(__string_from_user(_type, _type) __field_hex(const char *, _description) __field_hex(const char *, _callout_info) __field(key_serial_t, destringid)), + TP_fast_assign(tp_copy_string_from_user(_type, _type) tp_assign(_description, _description) tp_assign(_callout_info, _callout_info) tp_assign(destringid, destringid)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_vmsplice +SC_TRACE_EVENT(sys_vmsplice, + TP_PROTO(int fd, const struct iovec * iov, unsigned long nr_segs, unsigned int flags), + TP_ARGS(fd, iov, nr_segs, flags), + TP_STRUCT__entry(__field(int, fd) __field_hex(const struct iovec *, iov) __field(unsigned long, nr_segs) __field(unsigned int, flags)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(iov, iov) tp_assign(nr_segs, nr_segs) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_openat +SC_TRACE_EVENT(sys_openat, + TP_PROTO(int dfd, const char * filename, int flags, int mode), + TP_ARGS(dfd, filename, flags, mode), + TP_STRUCT__entry(__field(int, dfd) __string_from_user(filename, filename) __field(int, flags) __field(int, mode)), + TP_fast_assign(tp_assign(dfd, dfd) tp_copy_string_from_user(filename, filename) tp_assign(flags, flags) tp_assign(mode, mode)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_mknodat +SC_TRACE_EVENT(sys_mknodat, + TP_PROTO(int dfd, const char * filename, int mode, unsigned dev), + TP_ARGS(dfd, filename, mode, dev), + TP_STRUCT__entry(__field(int, dfd) __string_from_user(filename, filename) __field(int, mode) __field(unsigned, dev)), + TP_fast_assign(tp_assign(dfd, dfd) tp_copy_string_from_user(filename, filename) tp_assign(mode, mode) tp_assign(dev, dev)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_fstatat64 +SC_TRACE_EVENT(sys_fstatat64, + TP_PROTO(int dfd, const char * filename, struct stat64 * statbuf, int flag), + TP_ARGS(dfd, filename, statbuf, flag), + TP_STRUCT__entry(__field(int, dfd) __string_from_user(filename, filename) __field_hex(struct stat64 *, statbuf) __field(int, flag)), + TP_fast_assign(tp_assign(dfd, dfd) tp_copy_string_from_user(filename, filename) tp_assign(statbuf, statbuf) tp_assign(flag, flag)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_renameat +SC_TRACE_EVENT(sys_renameat, + TP_PROTO(int olddfd, const char * oldname, int newdfd, const char * newname), + TP_ARGS(olddfd, oldname, newdfd, newname), + TP_STRUCT__entry(__field(int, olddfd) __string_from_user(oldname, oldname) __field(int, newdfd) __string_from_user(newname, newname)), + TP_fast_assign(tp_assign(olddfd, olddfd) tp_copy_string_from_user(oldname, oldname) tp_assign(newdfd, newdfd) tp_copy_string_from_user(newname, newname)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_readlinkat +SC_TRACE_EVENT(sys_readlinkat, + TP_PROTO(int dfd, const char * pathname, char * buf, int bufsiz), + TP_ARGS(dfd, pathname, buf, bufsiz), + TP_STRUCT__entry(__field(int, dfd) __string_from_user(pathname, pathname) __field_hex(char *, buf) __field(int, bufsiz)), + TP_fast_assign(tp_assign(dfd, dfd) tp_copy_string_from_user(pathname, pathname) tp_assign(buf, buf) tp_assign(bufsiz, bufsiz)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_utimensat +SC_TRACE_EVENT(sys_utimensat, + TP_PROTO(int dfd, const char * filename, struct timespec * utimes, int flags), + TP_ARGS(dfd, filename, utimes, flags), + TP_STRUCT__entry(__field(int, dfd) __string_from_user(filename, filename) __field_hex(struct timespec *, utimes) __field(int, flags)), + TP_fast_assign(tp_assign(dfd, dfd) tp_copy_string_from_user(filename, filename) tp_assign(utimes, utimes) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_timerfd_settime +SC_TRACE_EVENT(sys_timerfd_settime, + TP_PROTO(int ufd, int flags, const struct itimerspec * utmr, struct itimerspec * otmr), + TP_ARGS(ufd, flags, utmr, otmr), + TP_STRUCT__entry(__field(int, ufd) __field(int, flags) __field_hex(const struct itimerspec *, utmr) __field_hex(struct itimerspec *, otmr)), + TP_fast_assign(tp_assign(ufd, ufd) tp_assign(flags, flags) tp_assign(utmr, utmr) tp_assign(otmr, otmr)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_signalfd4 +SC_TRACE_EVENT(sys_signalfd4, + TP_PROTO(int ufd, sigset_t * user_mask, size_t sizemask, int flags), + TP_ARGS(ufd, user_mask, sizemask, flags), + TP_STRUCT__entry(__field(int, ufd) __field_hex(sigset_t *, user_mask) __field(size_t, sizemask) __field(int, flags)), + TP_fast_assign(tp_assign(ufd, ufd) tp_assign(user_mask, user_mask) tp_assign(sizemask, sizemask) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_rt_tgsigqueueinfo +SC_TRACE_EVENT(sys_rt_tgsigqueueinfo, + TP_PROTO(pid_t tgid, pid_t pid, int sig, siginfo_t * uinfo), + TP_ARGS(tgid, pid, sig, uinfo), + TP_STRUCT__entry(__field(pid_t, tgid) __field(pid_t, pid) __field(int, sig) __field_hex(siginfo_t *, uinfo)), + TP_fast_assign(tp_assign(tgid, tgid) tp_assign(pid, pid) tp_assign(sig, sig) tp_assign(uinfo, uinfo)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_prlimit64 +SC_TRACE_EVENT(sys_prlimit64, + TP_PROTO(pid_t pid, unsigned int resource, const struct rlimit64 * new_rlim, struct rlimit64 * old_rlim), + TP_ARGS(pid, resource, new_rlim, old_rlim), + TP_STRUCT__entry(__field(pid_t, pid) __field(unsigned int, resource) __field_hex(const struct rlimit64 *, new_rlim) __field_hex(struct rlimit64 *, old_rlim)), + TP_fast_assign(tp_assign(pid, pid) tp_assign(resource, resource) tp_assign(new_rlim, new_rlim) tp_assign(old_rlim, old_rlim)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_socketpair +SC_TRACE_EVENT(sys_socketpair, + TP_PROTO(int family, int type, int protocol, int * usockvec), + TP_ARGS(family, type, protocol, usockvec), + TP_STRUCT__entry(__field(int, family) __field(int, type) __field(int, protocol) __field_hex(int *, usockvec)), + TP_fast_assign(tp_assign(family, family) tp_assign(type, type) tp_assign(protocol, protocol) tp_assign(usockvec, usockvec)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_send +SC_TRACE_EVENT(sys_send, + TP_PROTO(int fd, void * buff, size_t len, unsigned flags), + TP_ARGS(fd, buff, len, flags), + TP_STRUCT__entry(__field(int, fd) __field_hex(void *, buff) __field(size_t, len) __field(unsigned, flags)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(buff, buff) tp_assign(len, len) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_accept4 +SC_TRACE_EVENT(sys_accept4, + TP_PROTO(int fd, struct sockaddr * upeer_sockaddr, int * upeer_addrlen, int flags), + TP_ARGS(fd, upeer_sockaddr, upeer_addrlen, flags), + TP_STRUCT__entry(__field(int, fd) __field_hex(struct sockaddr *, upeer_sockaddr) __field_hex(int *, upeer_addrlen) __field(int, flags)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(upeer_sockaddr, upeer_sockaddr) tp_assign(upeer_addrlen, upeer_addrlen) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_sendmmsg +SC_TRACE_EVENT(sys_sendmmsg, + TP_PROTO(int fd, struct mmsghdr * mmsg, unsigned int vlen, unsigned int flags), + TP_ARGS(fd, mmsg, vlen, flags), + TP_STRUCT__entry(__field(int, fd) __field_hex(struct mmsghdr *, mmsg) __field(unsigned int, vlen) __field(unsigned int, flags)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(mmsg, mmsg) tp_assign(vlen, vlen) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_mount +SC_TRACE_EVENT(sys_mount, + TP_PROTO(char * dev_name, char * dir_name, char * type, unsigned long flags, void * data), + TP_ARGS(dev_name, dir_name, type, flags, data), + TP_STRUCT__entry(__string_from_user(dev_name, dev_name) __string_from_user(dir_name, dir_name) __string_from_user(type, type) __field(unsigned long, flags) __field_hex(void *, data)), + TP_fast_assign(tp_copy_string_from_user(dev_name, dev_name) tp_copy_string_from_user(dir_name, dir_name) tp_copy_string_from_user(type, type) tp_assign(flags, flags) tp_assign(data, data)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_llseek +SC_TRACE_EVENT(sys_llseek, + TP_PROTO(unsigned int fd, unsigned long offset_high, unsigned long offset_low, loff_t * result, unsigned int origin), + TP_ARGS(fd, offset_high, offset_low, result, origin), + TP_STRUCT__entry(__field(unsigned int, fd) __field(unsigned long, offset_high) __field(unsigned long, offset_low) __field_hex(loff_t *, result) __field(unsigned int, origin)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(offset_high, offset_high) tp_assign(offset_low, offset_low) tp_assign(result, result) tp_assign(origin, origin)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_select +SC_TRACE_EVENT(sys_select, + TP_PROTO(int n, fd_set * inp, fd_set * outp, fd_set * exp, struct timeval * tvp), + TP_ARGS(n, inp, outp, exp, tvp), + TP_STRUCT__entry(__field(int, n) __field_hex(fd_set *, inp) __field_hex(fd_set *, outp) __field_hex(fd_set *, exp) __field_hex(struct timeval *, tvp)), + TP_fast_assign(tp_assign(n, n) tp_assign(inp, inp) tp_assign(outp, outp) tp_assign(exp, exp) tp_assign(tvp, tvp)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_pciconfig_read +SC_TRACE_EVENT(sys_pciconfig_read, + TP_PROTO(unsigned long bus, unsigned long dfn, unsigned long off, unsigned long len, void * buf), + TP_ARGS(bus, dfn, off, len, buf), + TP_STRUCT__entry(__field(unsigned long, bus) __field(unsigned long, dfn) __field(unsigned long, off) __field(unsigned long, len) __field_hex(void *, buf)), + TP_fast_assign(tp_assign(bus, bus) tp_assign(dfn, dfn) tp_assign(off, off) tp_assign(len, len) tp_assign(buf, buf)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_pciconfig_write +SC_TRACE_EVENT(sys_pciconfig_write, + TP_PROTO(unsigned long bus, unsigned long dfn, unsigned long off, unsigned long len, void * buf), + TP_ARGS(bus, dfn, off, len, buf), + TP_STRUCT__entry(__field(unsigned long, bus) __field(unsigned long, dfn) __field(unsigned long, off) __field(unsigned long, len) __field_hex(void *, buf)), + TP_fast_assign(tp_assign(bus, bus) tp_assign(dfn, dfn) tp_assign(off, off) tp_assign(len, len) tp_assign(buf, buf)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_setxattr +SC_TRACE_EVENT(sys_setxattr, + TP_PROTO(const char * pathname, const char * name, const void * value, size_t size, int flags), + TP_ARGS(pathname, name, value, size, flags), + TP_STRUCT__entry(__string_from_user(pathname, pathname) __string_from_user(name, name) __field_hex(const void *, value) __field(size_t, size) __field(int, flags)), + TP_fast_assign(tp_copy_string_from_user(pathname, pathname) tp_copy_string_from_user(name, name) tp_assign(value, value) tp_assign(size, size) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_lsetxattr +SC_TRACE_EVENT(sys_lsetxattr, + TP_PROTO(const char * pathname, const char * name, const void * value, size_t size, int flags), + TP_ARGS(pathname, name, value, size, flags), + TP_STRUCT__entry(__string_from_user(pathname, pathname) __string_from_user(name, name) __field_hex(const void *, value) __field(size_t, size) __field(int, flags)), + TP_fast_assign(tp_copy_string_from_user(pathname, pathname) tp_copy_string_from_user(name, name) tp_assign(value, value) tp_assign(size, size) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_fsetxattr +SC_TRACE_EVENT(sys_fsetxattr, + TP_PROTO(int fd, const char * name, const void * value, size_t size, int flags), + TP_ARGS(fd, name, value, size, flags), + TP_STRUCT__entry(__field(int, fd) __string_from_user(name, name) __field_hex(const void *, value) __field(size_t, size) __field(int, flags)), + TP_fast_assign(tp_assign(fd, fd) tp_copy_string_from_user(name, name) tp_assign(value, value) tp_assign(size, size) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_io_getevents +SC_TRACE_EVENT(sys_io_getevents, + TP_PROTO(aio_context_t ctx_id, long min_nr, long nr, struct io_event * events, struct timespec * timeout), + TP_ARGS(ctx_id, min_nr, nr, events, timeout), + TP_STRUCT__entry(__field(aio_context_t, ctx_id) __field(long, min_nr) __field(long, nr) __field_hex(struct io_event *, events) __field_hex(struct timespec *, timeout)), + TP_fast_assign(tp_assign(ctx_id, ctx_id) tp_assign(min_nr, min_nr) tp_assign(nr, nr) tp_assign(events, events) tp_assign(timeout, timeout)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_mq_timedsend +SC_TRACE_EVENT(sys_mq_timedsend, + TP_PROTO(mqd_t mqdes, const char * u_msg_ptr, size_t msg_len, unsigned int msg_prio, const struct timespec * u_abs_timeout), + TP_ARGS(mqdes, u_msg_ptr, msg_len, msg_prio, u_abs_timeout), + TP_STRUCT__entry(__field(mqd_t, mqdes) __field_hex(const char *, u_msg_ptr) __field(size_t, msg_len) __field(unsigned int, msg_prio) __field_hex(const struct timespec *, u_abs_timeout)), + TP_fast_assign(tp_assign(mqdes, mqdes) tp_assign(u_msg_ptr, u_msg_ptr) tp_assign(msg_len, msg_len) tp_assign(msg_prio, msg_prio) tp_assign(u_abs_timeout, u_abs_timeout)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_mq_timedreceive +SC_TRACE_EVENT(sys_mq_timedreceive, + TP_PROTO(mqd_t mqdes, char * u_msg_ptr, size_t msg_len, unsigned int * u_msg_prio, const struct timespec * u_abs_timeout), + TP_ARGS(mqdes, u_msg_ptr, msg_len, u_msg_prio, u_abs_timeout), + TP_STRUCT__entry(__field(mqd_t, mqdes) __field_hex(char *, u_msg_ptr) __field(size_t, msg_len) __field_hex(unsigned int *, u_msg_prio) __field_hex(const struct timespec *, u_abs_timeout)), + TP_fast_assign(tp_assign(mqdes, mqdes) tp_assign(u_msg_ptr, u_msg_ptr) tp_assign(msg_len, msg_len) tp_assign(u_msg_prio, u_msg_prio) tp_assign(u_abs_timeout, u_abs_timeout)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_add_key +SC_TRACE_EVENT(sys_add_key, + TP_PROTO(const char * _type, const char * _description, const void * _payload, size_t plen, key_serial_t ringid), + TP_ARGS(_type, _description, _payload, plen, ringid), + TP_STRUCT__entry(__string_from_user(_type, _type) __field_hex(const char *, _description) __field_hex(const void *, _payload) __field(size_t, plen) __field(key_serial_t, ringid)), + TP_fast_assign(tp_copy_string_from_user(_type, _type) tp_assign(_description, _description) tp_assign(_payload, _payload) tp_assign(plen, plen) tp_assign(ringid, ringid)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_waitid +SC_TRACE_EVENT(sys_waitid, + TP_PROTO(int which, pid_t upid, struct siginfo * infop, int options, struct rusage * ru), + TP_ARGS(which, upid, infop, options, ru), + TP_STRUCT__entry(__field(int, which) __field(pid_t, upid) __field_hex(struct siginfo *, infop) __field(int, options) __field_hex(struct rusage *, ru)), + TP_fast_assign(tp_assign(which, which) tp_assign(upid, upid) tp_assign(infop, infop) tp_assign(options, options) tp_assign(ru, ru)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_ppoll +SC_TRACE_EVENT(sys_ppoll, + TP_PROTO(struct pollfd * ufds, unsigned int nfds, struct timespec * tsp, const sigset_t * sigmask, size_t sigsetsize), + TP_ARGS(ufds, nfds, tsp, sigmask, sigsetsize), + TP_STRUCT__entry(__field_hex(struct pollfd *, ufds) __field(unsigned int, nfds) __field_hex(struct timespec *, tsp) __field_hex(const sigset_t *, sigmask) __field(size_t, sigsetsize)), + TP_fast_assign(tp_assign(ufds, ufds) tp_assign(nfds, nfds) tp_assign(tsp, tsp) tp_assign(sigmask, sigmask) tp_assign(sigsetsize, sigsetsize)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_fchownat +SC_TRACE_EVENT(sys_fchownat, + TP_PROTO(int dfd, const char * filename, uid_t user, gid_t group, int flag), + TP_ARGS(dfd, filename, user, group, flag), + TP_STRUCT__entry(__field(int, dfd) __string_from_user(filename, filename) __field(uid_t, user) __field(gid_t, group) __field(int, flag)), + TP_fast_assign(tp_assign(dfd, dfd) tp_copy_string_from_user(filename, filename) tp_assign(user, user) tp_assign(group, group) tp_assign(flag, flag)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_linkat +SC_TRACE_EVENT(sys_linkat, + TP_PROTO(int olddfd, const char * oldname, int newdfd, const char * newname, int flags), + TP_ARGS(olddfd, oldname, newdfd, newname, flags), + TP_STRUCT__entry(__field(int, olddfd) __string_from_user(oldname, oldname) __field(int, newdfd) __string_from_user(newname, newname) __field(int, flags)), + TP_fast_assign(tp_assign(olddfd, olddfd) tp_copy_string_from_user(oldname, oldname) tp_assign(newdfd, newdfd) tp_copy_string_from_user(newname, newname) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_perf_event_open +SC_TRACE_EVENT(sys_perf_event_open, + TP_PROTO(struct perf_event_attr * attr_uptr, pid_t pid, int cpu, int group_fd, unsigned long flags), + TP_ARGS(attr_uptr, pid, cpu, group_fd, flags), + TP_STRUCT__entry(__field_hex(struct perf_event_attr *, attr_uptr) __field(pid_t, pid) __field(int, cpu) __field(int, group_fd) __field(unsigned long, flags)), + TP_fast_assign(tp_assign(attr_uptr, attr_uptr) tp_assign(pid, pid) tp_assign(cpu, cpu) tp_assign(group_fd, group_fd) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_preadv +SC_TRACE_EVENT(sys_preadv, + TP_PROTO(unsigned long fd, const struct iovec * vec, unsigned long vlen, unsigned long pos_l, unsigned long pos_h), + TP_ARGS(fd, vec, vlen, pos_l, pos_h), + TP_STRUCT__entry(__field(unsigned long, fd) __field_hex(const struct iovec *, vec) __field(unsigned long, vlen) __field(unsigned long, pos_l) __field(unsigned long, pos_h)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(vec, vec) tp_assign(vlen, vlen) tp_assign(pos_l, pos_l) tp_assign(pos_h, pos_h)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_pwritev +SC_TRACE_EVENT(sys_pwritev, + TP_PROTO(unsigned long fd, const struct iovec * vec, unsigned long vlen, unsigned long pos_l, unsigned long pos_h), + TP_ARGS(fd, vec, vlen, pos_l, pos_h), + TP_STRUCT__entry(__field(unsigned long, fd) __field_hex(const struct iovec *, vec) __field(unsigned long, vlen) __field(unsigned long, pos_l) __field(unsigned long, pos_h)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(vec, vec) tp_assign(vlen, vlen) tp_assign(pos_l, pos_l) tp_assign(pos_h, pos_h)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_setsockopt +SC_TRACE_EVENT(sys_setsockopt, + TP_PROTO(int fd, int level, int optname, char * optval, int optlen), + TP_ARGS(fd, level, optname, optval, optlen), + TP_STRUCT__entry(__field(int, fd) __field(int, level) __field(int, optname) __field_hex(char *, optval) __field(int, optlen)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(level, level) tp_assign(optname, optname) tp_assign(optval, optval) tp_assign(optlen, optlen)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_getsockopt +SC_TRACE_EVENT(sys_getsockopt, + TP_PROTO(int fd, int level, int optname, char * optval, int * optlen), + TP_ARGS(fd, level, optname, optval, optlen), + TP_STRUCT__entry(__field(int, fd) __field(int, level) __field(int, optname) __field_hex(char *, optval) __field_hex(int *, optlen)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(level, level) tp_assign(optname, optname) tp_assign(optval, optval) tp_assign(optlen, optlen)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_recvmmsg +SC_TRACE_EVENT(sys_recvmmsg, + TP_PROTO(int fd, struct mmsghdr * mmsg, unsigned int vlen, unsigned int flags, struct timespec * timeout), + TP_ARGS(fd, mmsg, vlen, flags, timeout), + TP_STRUCT__entry(__field(int, fd) __field_hex(struct mmsghdr *, mmsg) __field(unsigned int, vlen) __field(unsigned int, flags) __field_hex(struct timespec *, timeout)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(mmsg, mmsg) tp_assign(vlen, vlen) tp_assign(flags, flags) tp_assign(timeout, timeout)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_ipc +SC_TRACE_EVENT(sys_ipc, + TP_PROTO(unsigned int call, int first, unsigned long second, unsigned long third, void * ptr, long fifth), + TP_ARGS(call, first, second, third, ptr, fifth), + TP_STRUCT__entry(__field(unsigned int, call) __field(int, first) __field(unsigned long, second) __field(unsigned long, third) __field_hex(void *, ptr) __field(long, fifth)), + TP_fast_assign(tp_assign(call, call) tp_assign(first, first) tp_assign(second, second) tp_assign(third, third) tp_assign(ptr, ptr) tp_assign(fifth, fifth)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_futex +SC_TRACE_EVENT(sys_futex, + TP_PROTO(u32 * uaddr, int op, u32 val, struct timespec * utime, u32 * uaddr2, u32 val3), + TP_ARGS(uaddr, op, val, utime, uaddr2, val3), + TP_STRUCT__entry(__field_hex(u32 *, uaddr) __field(int, op) __field(u32, val) __field_hex(struct timespec *, utime) __field_hex(u32 *, uaddr2) __field(u32, val3)), + TP_fast_assign(tp_assign(uaddr, uaddr) tp_assign(op, op) tp_assign(val, val) tp_assign(utime, utime) tp_assign(uaddr2, uaddr2) tp_assign(val3, val3)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_pselect6 +SC_TRACE_EVENT(sys_pselect6, + TP_PROTO(int n, fd_set * inp, fd_set * outp, fd_set * exp, struct timespec * tsp, void * sig), + TP_ARGS(n, inp, outp, exp, tsp, sig), + TP_STRUCT__entry(__field(int, n) __field_hex(fd_set *, inp) __field_hex(fd_set *, outp) __field_hex(fd_set *, exp) __field_hex(struct timespec *, tsp) __field_hex(void *, sig)), + TP_fast_assign(tp_assign(n, n) tp_assign(inp, inp) tp_assign(outp, outp) tp_assign(exp, exp) tp_assign(tsp, tsp) tp_assign(sig, sig)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_splice +SC_TRACE_EVENT(sys_splice, + TP_PROTO(int fd_in, loff_t * off_in, int fd_out, loff_t * off_out, size_t len, unsigned int flags), + TP_ARGS(fd_in, off_in, fd_out, off_out, len, flags), + TP_STRUCT__entry(__field(int, fd_in) __field_hex(loff_t *, off_in) __field(int, fd_out) __field_hex(loff_t *, off_out) __field(size_t, len) __field(unsigned int, flags)), + TP_fast_assign(tp_assign(fd_in, fd_in) tp_assign(off_in, off_in) tp_assign(fd_out, fd_out) tp_assign(off_out, off_out) tp_assign(len, len) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_epoll_pwait +SC_TRACE_EVENT(sys_epoll_pwait, + TP_PROTO(int epfd, struct epoll_event * events, int maxevents, int timeout, const sigset_t * sigmask, size_t sigsetsize), + TP_ARGS(epfd, events, maxevents, timeout, sigmask, sigsetsize), + TP_STRUCT__entry(__field(int, epfd) __field_hex(struct epoll_event *, events) __field(int, maxevents) __field(int, timeout) __field_hex(const sigset_t *, sigmask) __field(size_t, sigsetsize)), + TP_fast_assign(tp_assign(epfd, epfd) tp_assign(events, events) tp_assign(maxevents, maxevents) tp_assign(timeout, timeout) tp_assign(sigmask, sigmask) tp_assign(sigsetsize, sigsetsize)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_sendto +SC_TRACE_EVENT(sys_sendto, + TP_PROTO(int fd, void * buff, size_t len, unsigned flags, struct sockaddr * addr, int addr_len), + TP_ARGS(fd, buff, len, flags, addr, addr_len), + TP_STRUCT__entry(__field(int, fd) __field_hex(void *, buff) __field(size_t, len) __field(unsigned, flags) __field_hex(struct sockaddr *, addr) __field_hex(int, addr_len)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(buff, buff) tp_assign(len, len) tp_assign(flags, flags) tp_assign(addr, addr) tp_assign(addr_len, addr_len)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_recvfrom +SC_TRACE_EVENT(sys_recvfrom, + TP_PROTO(int fd, void * ubuf, size_t size, unsigned flags, struct sockaddr * addr, int * addr_len), + TP_ARGS(fd, ubuf, size, flags, addr, addr_len), + TP_STRUCT__entry(__field(int, fd) __field_hex(void *, ubuf) __field(size_t, size) __field(unsigned, flags) __field_hex(struct sockaddr *, addr) __field_hex(int *, addr_len)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(ubuf, ubuf) tp_assign(size, size) tp_assign(flags, flags) tp_assign(addr, addr) tp_assign(addr_len, addr_len)), + TP_printk() +) +#endif + +#endif /* _TRACE_SYSCALLS_POINTERS_H */ + +/* This part must be outside protection */ +#include "../../../probes/define_trace.h" + +#else /* CREATE_SYSCALL_TABLE */ + +#include "powerpc-32-syscalls-3.0.34_pointers_override.h" +#include "syscalls_pointers_override.h" + +#ifndef OVERRIDE_TABLE_32_sys_read +TRACE_SYSCALL_TABLE(sys_read, sys_read, 3, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_write +TRACE_SYSCALL_TABLE(sys_write, sys_write, 4, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_open +TRACE_SYSCALL_TABLE(sys_open, sys_open, 5, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_waitpid +TRACE_SYSCALL_TABLE(sys_waitpid, sys_waitpid, 7, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_creat +TRACE_SYSCALL_TABLE(sys_creat, sys_creat, 8, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_link +TRACE_SYSCALL_TABLE(sys_link, sys_link, 9, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_unlink +TRACE_SYSCALL_TABLE(sys_unlink, sys_unlink, 10, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_chdir +TRACE_SYSCALL_TABLE(sys_chdir, sys_chdir, 12, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_time +TRACE_SYSCALL_TABLE(sys_time, sys_time, 13, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_mknod +TRACE_SYSCALL_TABLE(sys_mknod, sys_mknod, 14, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_chmod +TRACE_SYSCALL_TABLE(sys_chmod, sys_chmod, 15, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_lchown +TRACE_SYSCALL_TABLE(sys_lchown, sys_lchown, 16, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_stat +TRACE_SYSCALL_TABLE(sys_stat, sys_stat, 18, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_mount +TRACE_SYSCALL_TABLE(sys_mount, sys_mount, 21, 5) +#endif +#ifndef OVERRIDE_TABLE_32_sys_oldumount +TRACE_SYSCALL_TABLE(sys_oldumount, sys_oldumount, 22, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_stime +TRACE_SYSCALL_TABLE(sys_stime, sys_stime, 25, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_fstat +TRACE_SYSCALL_TABLE(sys_fstat, sys_fstat, 28, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_utime +TRACE_SYSCALL_TABLE(sys_utime, sys_utime, 30, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_access +TRACE_SYSCALL_TABLE(sys_access, sys_access, 33, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_rename +TRACE_SYSCALL_TABLE(sys_rename, sys_rename, 38, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_mkdir +TRACE_SYSCALL_TABLE(sys_mkdir, sys_mkdir, 39, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_rmdir +TRACE_SYSCALL_TABLE(sys_rmdir, sys_rmdir, 40, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_pipe +TRACE_SYSCALL_TABLE(sys_pipe, sys_pipe, 42, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_times +TRACE_SYSCALL_TABLE(sys_times, sys_times, 43, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_acct +TRACE_SYSCALL_TABLE(sys_acct, sys_acct, 51, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_umount +TRACE_SYSCALL_TABLE(sys_umount, sys_umount, 52, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_olduname +TRACE_SYSCALL_TABLE(sys_olduname, sys_olduname, 59, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_chroot +TRACE_SYSCALL_TABLE(sys_chroot, sys_chroot, 61, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_ustat +TRACE_SYSCALL_TABLE(sys_ustat, sys_ustat, 62, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_sigpending +TRACE_SYSCALL_TABLE(sys_sigpending, sys_sigpending, 73, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_sethostname +TRACE_SYSCALL_TABLE(sys_sethostname, sys_sethostname, 74, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_setrlimit +TRACE_SYSCALL_TABLE(sys_setrlimit, sys_setrlimit, 75, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_old_getrlimit +TRACE_SYSCALL_TABLE(sys_old_getrlimit, sys_old_getrlimit, 76, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_getrusage +TRACE_SYSCALL_TABLE(sys_getrusage, sys_getrusage, 77, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_gettimeofday +TRACE_SYSCALL_TABLE(sys_gettimeofday, sys_gettimeofday, 78, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_settimeofday +TRACE_SYSCALL_TABLE(sys_settimeofday, sys_settimeofday, 79, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_getgroups +TRACE_SYSCALL_TABLE(sys_getgroups, sys_getgroups, 80, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_setgroups +TRACE_SYSCALL_TABLE(sys_setgroups, sys_setgroups, 81, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_symlink +TRACE_SYSCALL_TABLE(sys_symlink, sys_symlink, 83, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_lstat +TRACE_SYSCALL_TABLE(sys_lstat, sys_lstat, 84, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_readlink +TRACE_SYSCALL_TABLE(sys_readlink, sys_readlink, 85, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_uselib +TRACE_SYSCALL_TABLE(sys_uselib, sys_uselib, 86, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_swapon +TRACE_SYSCALL_TABLE(sys_swapon, sys_swapon, 87, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_reboot +TRACE_SYSCALL_TABLE(sys_reboot, sys_reboot, 88, 4) +#endif +#ifndef OVERRIDE_TABLE_32_sys_old_readdir +TRACE_SYSCALL_TABLE(sys_old_readdir, sys_old_readdir, 89, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_truncate +TRACE_SYSCALL_TABLE(sys_truncate, sys_truncate, 92, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_statfs +TRACE_SYSCALL_TABLE(sys_statfs, sys_statfs, 99, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_fstatfs +TRACE_SYSCALL_TABLE(sys_fstatfs, sys_fstatfs, 100, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_socketcall +TRACE_SYSCALL_TABLE(sys_socketcall, sys_socketcall, 102, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_syslog +TRACE_SYSCALL_TABLE(sys_syslog, sys_syslog, 103, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_setitimer +TRACE_SYSCALL_TABLE(sys_setitimer, sys_setitimer, 104, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_getitimer +TRACE_SYSCALL_TABLE(sys_getitimer, sys_getitimer, 105, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_newstat +TRACE_SYSCALL_TABLE(sys_newstat, sys_newstat, 106, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_newlstat +TRACE_SYSCALL_TABLE(sys_newlstat, sys_newlstat, 107, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_newfstat +TRACE_SYSCALL_TABLE(sys_newfstat, sys_newfstat, 108, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_uname +TRACE_SYSCALL_TABLE(sys_uname, sys_uname, 109, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_wait4 +TRACE_SYSCALL_TABLE(sys_wait4, sys_wait4, 114, 4) +#endif +#ifndef OVERRIDE_TABLE_32_sys_swapoff +TRACE_SYSCALL_TABLE(sys_swapoff, sys_swapoff, 115, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_sysinfo +TRACE_SYSCALL_TABLE(sys_sysinfo, sys_sysinfo, 116, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_ipc +TRACE_SYSCALL_TABLE(sys_ipc, sys_ipc, 117, 6) +#endif +#ifndef OVERRIDE_TABLE_32_sys_setdomainname +TRACE_SYSCALL_TABLE(sys_setdomainname, sys_setdomainname, 121, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_newuname +TRACE_SYSCALL_TABLE(sys_newuname, sys_newuname, 122, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_adjtimex +TRACE_SYSCALL_TABLE(sys_adjtimex, sys_adjtimex, 124, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_sigprocmask +TRACE_SYSCALL_TABLE(sys_sigprocmask, sys_sigprocmask, 126, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_init_module +TRACE_SYSCALL_TABLE(sys_init_module, sys_init_module, 128, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_delete_module +TRACE_SYSCALL_TABLE(sys_delete_module, sys_delete_module, 129, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_llseek +TRACE_SYSCALL_TABLE(sys_llseek, sys_llseek, 140, 5) +#endif +#ifndef OVERRIDE_TABLE_32_sys_getdents +TRACE_SYSCALL_TABLE(sys_getdents, sys_getdents, 141, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_select +TRACE_SYSCALL_TABLE(sys_select, sys_select, 142, 5) +#endif +#ifndef OVERRIDE_TABLE_32_sys_readv +TRACE_SYSCALL_TABLE(sys_readv, sys_readv, 145, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_writev +TRACE_SYSCALL_TABLE(sys_writev, sys_writev, 146, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_sysctl +TRACE_SYSCALL_TABLE(sys_sysctl, sys_sysctl, 149, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_sched_setparam +TRACE_SYSCALL_TABLE(sys_sched_setparam, sys_sched_setparam, 154, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_sched_getparam +TRACE_SYSCALL_TABLE(sys_sched_getparam, sys_sched_getparam, 155, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_sched_setscheduler +TRACE_SYSCALL_TABLE(sys_sched_setscheduler, sys_sched_setscheduler, 156, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_sched_rr_get_interval +TRACE_SYSCALL_TABLE(sys_sched_rr_get_interval, sys_sched_rr_get_interval, 161, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_nanosleep +TRACE_SYSCALL_TABLE(sys_nanosleep, sys_nanosleep, 162, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_getresuid +TRACE_SYSCALL_TABLE(sys_getresuid, sys_getresuid, 165, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_poll +TRACE_SYSCALL_TABLE(sys_poll, sys_poll, 167, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_nfsservctl +TRACE_SYSCALL_TABLE(sys_nfsservctl, sys_nfsservctl, 168, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_getresgid +TRACE_SYSCALL_TABLE(sys_getresgid, sys_getresgid, 170, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_rt_sigaction +TRACE_SYSCALL_TABLE(sys_rt_sigaction, sys_rt_sigaction, 173, 4) +#endif +#ifndef OVERRIDE_TABLE_32_sys_rt_sigprocmask +TRACE_SYSCALL_TABLE(sys_rt_sigprocmask, sys_rt_sigprocmask, 174, 4) +#endif +#ifndef OVERRIDE_TABLE_32_sys_rt_sigpending +TRACE_SYSCALL_TABLE(sys_rt_sigpending, sys_rt_sigpending, 175, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_rt_sigtimedwait +TRACE_SYSCALL_TABLE(sys_rt_sigtimedwait, sys_rt_sigtimedwait, 176, 4) +#endif +#ifndef OVERRIDE_TABLE_32_sys_rt_sigqueueinfo +TRACE_SYSCALL_TABLE(sys_rt_sigqueueinfo, sys_rt_sigqueueinfo, 177, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_rt_sigsuspend +TRACE_SYSCALL_TABLE(sys_rt_sigsuspend, sys_rt_sigsuspend, 178, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_chown +TRACE_SYSCALL_TABLE(sys_chown, sys_chown, 181, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_getcwd +TRACE_SYSCALL_TABLE(sys_getcwd, sys_getcwd, 182, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_sendfile +TRACE_SYSCALL_TABLE(sys_sendfile, sys_sendfile, 186, 4) +#endif +#ifndef OVERRIDE_TABLE_32_sys_getrlimit +TRACE_SYSCALL_TABLE(sys_getrlimit, sys_getrlimit, 190, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_stat64 +TRACE_SYSCALL_TABLE(sys_stat64, sys_stat64, 195, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_lstat64 +TRACE_SYSCALL_TABLE(sys_lstat64, sys_lstat64, 196, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_fstat64 +TRACE_SYSCALL_TABLE(sys_fstat64, sys_fstat64, 197, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_pciconfig_read +TRACE_SYSCALL_TABLE(sys_pciconfig_read, sys_pciconfig_read, 198, 5) +#endif +#ifndef OVERRIDE_TABLE_32_sys_pciconfig_write +TRACE_SYSCALL_TABLE(sys_pciconfig_write, sys_pciconfig_write, 199, 5) +#endif +#ifndef OVERRIDE_TABLE_32_sys_getdents64 +TRACE_SYSCALL_TABLE(sys_getdents64, sys_getdents64, 202, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_pivot_root +TRACE_SYSCALL_TABLE(sys_pivot_root, sys_pivot_root, 203, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_mincore +TRACE_SYSCALL_TABLE(sys_mincore, sys_mincore, 206, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_setxattr +TRACE_SYSCALL_TABLE(sys_setxattr, sys_setxattr, 209, 5) +#endif +#ifndef OVERRIDE_TABLE_32_sys_lsetxattr +TRACE_SYSCALL_TABLE(sys_lsetxattr, sys_lsetxattr, 210, 5) +#endif +#ifndef OVERRIDE_TABLE_32_sys_fsetxattr +TRACE_SYSCALL_TABLE(sys_fsetxattr, sys_fsetxattr, 211, 5) +#endif +#ifndef OVERRIDE_TABLE_32_sys_getxattr +TRACE_SYSCALL_TABLE(sys_getxattr, sys_getxattr, 212, 4) +#endif +#ifndef OVERRIDE_TABLE_32_sys_lgetxattr +TRACE_SYSCALL_TABLE(sys_lgetxattr, sys_lgetxattr, 213, 4) +#endif +#ifndef OVERRIDE_TABLE_32_sys_fgetxattr +TRACE_SYSCALL_TABLE(sys_fgetxattr, sys_fgetxattr, 214, 4) +#endif +#ifndef OVERRIDE_TABLE_32_sys_listxattr +TRACE_SYSCALL_TABLE(sys_listxattr, sys_listxattr, 215, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_llistxattr +TRACE_SYSCALL_TABLE(sys_llistxattr, sys_llistxattr, 216, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_flistxattr +TRACE_SYSCALL_TABLE(sys_flistxattr, sys_flistxattr, 217, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_removexattr +TRACE_SYSCALL_TABLE(sys_removexattr, sys_removexattr, 218, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_lremovexattr +TRACE_SYSCALL_TABLE(sys_lremovexattr, sys_lremovexattr, 219, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_fremovexattr +TRACE_SYSCALL_TABLE(sys_fremovexattr, sys_fremovexattr, 220, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_futex +TRACE_SYSCALL_TABLE(sys_futex, sys_futex, 221, 6) +#endif +#ifndef OVERRIDE_TABLE_32_sys_sched_setaffinity +TRACE_SYSCALL_TABLE(sys_sched_setaffinity, sys_sched_setaffinity, 222, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_sched_getaffinity +TRACE_SYSCALL_TABLE(sys_sched_getaffinity, sys_sched_getaffinity, 223, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_sendfile64 +TRACE_SYSCALL_TABLE(sys_sendfile64, sys_sendfile64, 226, 4) +#endif +#ifndef OVERRIDE_TABLE_32_sys_io_setup +TRACE_SYSCALL_TABLE(sys_io_setup, sys_io_setup, 227, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_io_getevents +TRACE_SYSCALL_TABLE(sys_io_getevents, sys_io_getevents, 229, 5) +#endif +#ifndef OVERRIDE_TABLE_32_sys_io_submit +TRACE_SYSCALL_TABLE(sys_io_submit, sys_io_submit, 230, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_io_cancel +TRACE_SYSCALL_TABLE(sys_io_cancel, sys_io_cancel, 231, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_set_tid_address +TRACE_SYSCALL_TABLE(sys_set_tid_address, sys_set_tid_address, 232, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_epoll_ctl +TRACE_SYSCALL_TABLE(sys_epoll_ctl, sys_epoll_ctl, 237, 4) +#endif +#ifndef OVERRIDE_TABLE_32_sys_epoll_wait +TRACE_SYSCALL_TABLE(sys_epoll_wait, sys_epoll_wait, 238, 4) +#endif +#ifndef OVERRIDE_TABLE_32_sys_timer_create +TRACE_SYSCALL_TABLE(sys_timer_create, sys_timer_create, 240, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_timer_settime +TRACE_SYSCALL_TABLE(sys_timer_settime, sys_timer_settime, 241, 4) +#endif +#ifndef OVERRIDE_TABLE_32_sys_timer_gettime +TRACE_SYSCALL_TABLE(sys_timer_gettime, sys_timer_gettime, 242, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_clock_settime +TRACE_SYSCALL_TABLE(sys_clock_settime, sys_clock_settime, 245, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_clock_gettime +TRACE_SYSCALL_TABLE(sys_clock_gettime, sys_clock_gettime, 246, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_clock_getres +TRACE_SYSCALL_TABLE(sys_clock_getres, sys_clock_getres, 247, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_clock_nanosleep +TRACE_SYSCALL_TABLE(sys_clock_nanosleep, sys_clock_nanosleep, 248, 4) +#endif +#ifndef OVERRIDE_TABLE_32_sys_utimes +TRACE_SYSCALL_TABLE(sys_utimes, sys_utimes, 251, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_statfs64 +TRACE_SYSCALL_TABLE(sys_statfs64, sys_statfs64, 252, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_fstatfs64 +TRACE_SYSCALL_TABLE(sys_fstatfs64, sys_fstatfs64, 253, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_mq_open +TRACE_SYSCALL_TABLE(sys_mq_open, sys_mq_open, 262, 4) +#endif +#ifndef OVERRIDE_TABLE_32_sys_mq_unlink +TRACE_SYSCALL_TABLE(sys_mq_unlink, sys_mq_unlink, 263, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_mq_timedsend +TRACE_SYSCALL_TABLE(sys_mq_timedsend, sys_mq_timedsend, 264, 5) +#endif +#ifndef OVERRIDE_TABLE_32_sys_mq_timedreceive +TRACE_SYSCALL_TABLE(sys_mq_timedreceive, sys_mq_timedreceive, 265, 5) +#endif +#ifndef OVERRIDE_TABLE_32_sys_mq_notify +TRACE_SYSCALL_TABLE(sys_mq_notify, sys_mq_notify, 266, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_mq_getsetattr +TRACE_SYSCALL_TABLE(sys_mq_getsetattr, sys_mq_getsetattr, 267, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_add_key +TRACE_SYSCALL_TABLE(sys_add_key, sys_add_key, 269, 5) +#endif +#ifndef OVERRIDE_TABLE_32_sys_request_key +TRACE_SYSCALL_TABLE(sys_request_key, sys_request_key, 270, 4) +#endif +#ifndef OVERRIDE_TABLE_32_sys_waitid +TRACE_SYSCALL_TABLE(sys_waitid, sys_waitid, 272, 5) +#endif +#ifndef OVERRIDE_TABLE_32_sys_inotify_add_watch +TRACE_SYSCALL_TABLE(sys_inotify_add_watch, sys_inotify_add_watch, 276, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_pselect6 +TRACE_SYSCALL_TABLE(sys_pselect6, sys_pselect6, 280, 6) +#endif +#ifndef OVERRIDE_TABLE_32_sys_ppoll +TRACE_SYSCALL_TABLE(sys_ppoll, sys_ppoll, 281, 5) +#endif +#ifndef OVERRIDE_TABLE_32_sys_splice +TRACE_SYSCALL_TABLE(sys_splice, sys_splice, 283, 6) +#endif +#ifndef OVERRIDE_TABLE_32_sys_vmsplice +TRACE_SYSCALL_TABLE(sys_vmsplice, sys_vmsplice, 285, 4) +#endif +#ifndef OVERRIDE_TABLE_32_sys_openat +TRACE_SYSCALL_TABLE(sys_openat, sys_openat, 286, 4) +#endif +#ifndef OVERRIDE_TABLE_32_sys_mkdirat +TRACE_SYSCALL_TABLE(sys_mkdirat, sys_mkdirat, 287, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_mknodat +TRACE_SYSCALL_TABLE(sys_mknodat, sys_mknodat, 288, 4) +#endif +#ifndef OVERRIDE_TABLE_32_sys_fchownat +TRACE_SYSCALL_TABLE(sys_fchownat, sys_fchownat, 289, 5) +#endif +#ifndef OVERRIDE_TABLE_32_sys_futimesat +TRACE_SYSCALL_TABLE(sys_futimesat, sys_futimesat, 290, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_fstatat64 +TRACE_SYSCALL_TABLE(sys_fstatat64, sys_fstatat64, 291, 4) +#endif +#ifndef OVERRIDE_TABLE_32_sys_unlinkat +TRACE_SYSCALL_TABLE(sys_unlinkat, sys_unlinkat, 292, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_renameat +TRACE_SYSCALL_TABLE(sys_renameat, sys_renameat, 293, 4) +#endif +#ifndef OVERRIDE_TABLE_32_sys_linkat +TRACE_SYSCALL_TABLE(sys_linkat, sys_linkat, 294, 5) +#endif +#ifndef OVERRIDE_TABLE_32_sys_symlinkat +TRACE_SYSCALL_TABLE(sys_symlinkat, sys_symlinkat, 295, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_readlinkat +TRACE_SYSCALL_TABLE(sys_readlinkat, sys_readlinkat, 296, 4) +#endif +#ifndef OVERRIDE_TABLE_32_sys_fchmodat +TRACE_SYSCALL_TABLE(sys_fchmodat, sys_fchmodat, 297, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_faccessat +TRACE_SYSCALL_TABLE(sys_faccessat, sys_faccessat, 298, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_get_robust_list +TRACE_SYSCALL_TABLE(sys_get_robust_list, sys_get_robust_list, 299, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_set_robust_list +TRACE_SYSCALL_TABLE(sys_set_robust_list, sys_set_robust_list, 300, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_getcpu +TRACE_SYSCALL_TABLE(sys_getcpu, sys_getcpu, 302, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_epoll_pwait +TRACE_SYSCALL_TABLE(sys_epoll_pwait, sys_epoll_pwait, 303, 6) +#endif +#ifndef OVERRIDE_TABLE_32_sys_utimensat +TRACE_SYSCALL_TABLE(sys_utimensat, sys_utimensat, 304, 4) +#endif +#ifndef OVERRIDE_TABLE_32_sys_signalfd +TRACE_SYSCALL_TABLE(sys_signalfd, sys_signalfd, 305, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_timerfd_settime +TRACE_SYSCALL_TABLE(sys_timerfd_settime, sys_timerfd_settime, 311, 4) +#endif +#ifndef OVERRIDE_TABLE_32_sys_timerfd_gettime +TRACE_SYSCALL_TABLE(sys_timerfd_gettime, sys_timerfd_gettime, 312, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_signalfd4 +TRACE_SYSCALL_TABLE(sys_signalfd4, sys_signalfd4, 313, 4) +#endif +#ifndef OVERRIDE_TABLE_32_sys_pipe2 +TRACE_SYSCALL_TABLE(sys_pipe2, sys_pipe2, 317, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_perf_event_open +TRACE_SYSCALL_TABLE(sys_perf_event_open, sys_perf_event_open, 319, 5) +#endif +#ifndef OVERRIDE_TABLE_32_sys_preadv +TRACE_SYSCALL_TABLE(sys_preadv, sys_preadv, 320, 5) +#endif +#ifndef OVERRIDE_TABLE_32_sys_pwritev +TRACE_SYSCALL_TABLE(sys_pwritev, sys_pwritev, 321, 5) +#endif +#ifndef OVERRIDE_TABLE_32_sys_rt_tgsigqueueinfo +TRACE_SYSCALL_TABLE(sys_rt_tgsigqueueinfo, sys_rt_tgsigqueueinfo, 322, 4) +#endif +#ifndef OVERRIDE_TABLE_32_sys_prlimit64 +TRACE_SYSCALL_TABLE(sys_prlimit64, sys_prlimit64, 325, 4) +#endif +#ifndef OVERRIDE_TABLE_32_sys_bind +TRACE_SYSCALL_TABLE(sys_bind, sys_bind, 327, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_connect +TRACE_SYSCALL_TABLE(sys_connect, sys_connect, 328, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_accept +TRACE_SYSCALL_TABLE(sys_accept, sys_accept, 330, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_getsockname +TRACE_SYSCALL_TABLE(sys_getsockname, sys_getsockname, 331, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_getpeername +TRACE_SYSCALL_TABLE(sys_getpeername, sys_getpeername, 332, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_socketpair +TRACE_SYSCALL_TABLE(sys_socketpair, sys_socketpair, 333, 4) +#endif +#ifndef OVERRIDE_TABLE_32_sys_send +TRACE_SYSCALL_TABLE(sys_send, sys_send, 334, 4) +#endif +#ifndef OVERRIDE_TABLE_32_sys_sendto +TRACE_SYSCALL_TABLE(sys_sendto, sys_sendto, 335, 6) +#endif +#ifndef OVERRIDE_TABLE_32_sys_recvfrom +TRACE_SYSCALL_TABLE(sys_recvfrom, sys_recvfrom, 337, 6) +#endif +#ifndef OVERRIDE_TABLE_32_sys_setsockopt +TRACE_SYSCALL_TABLE(sys_setsockopt, sys_setsockopt, 339, 5) +#endif +#ifndef OVERRIDE_TABLE_32_sys_getsockopt +TRACE_SYSCALL_TABLE(sys_getsockopt, sys_getsockopt, 340, 5) +#endif +#ifndef OVERRIDE_TABLE_32_sys_sendmsg +TRACE_SYSCALL_TABLE(sys_sendmsg, sys_sendmsg, 341, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_recvmsg +TRACE_SYSCALL_TABLE(sys_recvmsg, sys_recvmsg, 342, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_recvmmsg +TRACE_SYSCALL_TABLE(sys_recvmmsg, sys_recvmmsg, 343, 5) +#endif +#ifndef OVERRIDE_TABLE_32_sys_accept4 +TRACE_SYSCALL_TABLE(sys_accept4, sys_accept4, 344, 4) +#endif +#ifndef OVERRIDE_TABLE_32_sys_clock_adjtime +TRACE_SYSCALL_TABLE(sys_clock_adjtime, sys_clock_adjtime, 347, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_sendmmsg +TRACE_SYSCALL_TABLE(sys_sendmmsg, sys_sendmmsg, 349, 4) +#endif + +#endif /* CREATE_SYSCALL_TABLE */ --- linux-3.11.0.orig/ubuntu/lttng/instrumentation/syscalls/headers/x86-32-syscalls-3.1.0-rc6_pointers.h +++ linux-3.11.0/ubuntu/lttng/instrumentation/syscalls/headers/x86-32-syscalls-3.1.0-rc6_pointers.h @@ -0,0 +1,2232 @@ +/* THIS FILE IS AUTO-GENERATED. DO NOT EDIT */ +#ifndef CREATE_SYSCALL_TABLE + +#if !defined(_TRACE_SYSCALLS_POINTERS_H) || defined(TRACE_HEADER_MULTI_READ) +#define _TRACE_SYSCALLS_POINTERS_H + +#include +#include +#include "x86-32-syscalls-3.1.0-rc6_pointers_override.h" +#include "syscalls_pointers_override.h" + +#ifndef OVERRIDE_32_sys_unlink +SC_TRACE_EVENT(sys_unlink, + TP_PROTO(const char * pathname), + TP_ARGS(pathname), + TP_STRUCT__entry(__string_from_user(pathname, pathname)), + TP_fast_assign(tp_copy_string_from_user(pathname, pathname)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_chdir +SC_TRACE_EVENT(sys_chdir, + TP_PROTO(const char * filename), + TP_ARGS(filename), + TP_STRUCT__entry(__string_from_user(filename, filename)), + TP_fast_assign(tp_copy_string_from_user(filename, filename)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_time +SC_TRACE_EVENT(sys_time, + TP_PROTO(time_t * tloc), + TP_ARGS(tloc), + TP_STRUCT__entry(__field_hex(time_t *, tloc)), + TP_fast_assign(tp_assign(tloc, tloc)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_oldumount +SC_TRACE_EVENT(sys_oldumount, + TP_PROTO(char * name), + TP_ARGS(name), + TP_STRUCT__entry(__string_from_user(name, name)), + TP_fast_assign(tp_copy_string_from_user(name, name)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_stime +SC_TRACE_EVENT(sys_stime, + TP_PROTO(time_t * tptr), + TP_ARGS(tptr), + TP_STRUCT__entry(__field_hex(time_t *, tptr)), + TP_fast_assign(tp_assign(tptr, tptr)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_rmdir +SC_TRACE_EVENT(sys_rmdir, + TP_PROTO(const char * pathname), + TP_ARGS(pathname), + TP_STRUCT__entry(__string_from_user(pathname, pathname)), + TP_fast_assign(tp_copy_string_from_user(pathname, pathname)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_pipe +SC_TRACE_EVENT(sys_pipe, + TP_PROTO(int * fildes), + TP_ARGS(fildes), + TP_STRUCT__entry(__field_hex(int *, fildes)), + TP_fast_assign(tp_assign(fildes, fildes)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_times +SC_TRACE_EVENT(sys_times, + TP_PROTO(struct tms * tbuf), + TP_ARGS(tbuf), + TP_STRUCT__entry(__field_hex(struct tms *, tbuf)), + TP_fast_assign(tp_assign(tbuf, tbuf)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_acct +SC_TRACE_EVENT(sys_acct, + TP_PROTO(const char * name), + TP_ARGS(name), + TP_STRUCT__entry(__string_from_user(name, name)), + TP_fast_assign(tp_copy_string_from_user(name, name)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_olduname +SC_TRACE_EVENT(sys_olduname, + TP_PROTO(struct oldold_utsname * name), + TP_ARGS(name), + TP_STRUCT__entry(__field_hex(struct oldold_utsname *, name)), + TP_fast_assign(tp_assign(name, name)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_chroot +SC_TRACE_EVENT(sys_chroot, + TP_PROTO(const char * filename), + TP_ARGS(filename), + TP_STRUCT__entry(__string_from_user(filename, filename)), + TP_fast_assign(tp_copy_string_from_user(filename, filename)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_sigpending +SC_TRACE_EVENT(sys_sigpending, + TP_PROTO(old_sigset_t * set), + TP_ARGS(set), + TP_STRUCT__entry(__field_hex(old_sigset_t *, set)), + TP_fast_assign(tp_assign(set, set)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_old_select +SC_TRACE_EVENT(sys_old_select, + TP_PROTO(struct sel_arg_struct * arg), + TP_ARGS(arg), + TP_STRUCT__entry(__field_hex(struct sel_arg_struct *, arg)), + TP_fast_assign(tp_assign(arg, arg)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_uselib +SC_TRACE_EVENT(sys_uselib, + TP_PROTO(const char * library), + TP_ARGS(library), + TP_STRUCT__entry(__field_hex(const char *, library)), + TP_fast_assign(tp_assign(library, library)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_old_mmap +SC_TRACE_EVENT(sys_old_mmap, + TP_PROTO(struct mmap_arg_struct * arg), + TP_ARGS(arg), + TP_STRUCT__entry(__field_hex(struct mmap_arg_struct *, arg)), + TP_fast_assign(tp_assign(arg, arg)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_uname +SC_TRACE_EVENT(sys_uname, + TP_PROTO(struct old_utsname * name), + TP_ARGS(name), + TP_STRUCT__entry(__field_hex(struct old_utsname *, name)), + TP_fast_assign(tp_assign(name, name)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_swapoff +SC_TRACE_EVENT(sys_swapoff, + TP_PROTO(const char * specialfile), + TP_ARGS(specialfile), + TP_STRUCT__entry(__string_from_user(specialfile, specialfile)), + TP_fast_assign(tp_copy_string_from_user(specialfile, specialfile)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_sysinfo +SC_TRACE_EVENT(sys_sysinfo, + TP_PROTO(struct sysinfo * info), + TP_ARGS(info), + TP_STRUCT__entry(__field_hex(struct sysinfo *, info)), + TP_fast_assign(tp_assign(info, info)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_newuname +SC_TRACE_EVENT(sys_newuname, + TP_PROTO(struct new_utsname * name), + TP_ARGS(name), + TP_STRUCT__entry(__field_hex(struct new_utsname *, name)), + TP_fast_assign(tp_assign(name, name)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_adjtimex +SC_TRACE_EVENT(sys_adjtimex, + TP_PROTO(struct timex * txc_p), + TP_ARGS(txc_p), + TP_STRUCT__entry(__field_hex(struct timex *, txc_p)), + TP_fast_assign(tp_assign(txc_p, txc_p)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_sysctl +SC_TRACE_EVENT(sys_sysctl, + TP_PROTO(struct __sysctl_args * args), + TP_ARGS(args), + TP_STRUCT__entry(__field_hex(struct __sysctl_args *, args)), + TP_fast_assign(tp_assign(args, args)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_set_tid_address +SC_TRACE_EVENT(sys_set_tid_address, + TP_PROTO(int * tidptr), + TP_ARGS(tidptr), + TP_STRUCT__entry(__field_hex(int *, tidptr)), + TP_fast_assign(tp_assign(tidptr, tidptr)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_mq_unlink +SC_TRACE_EVENT(sys_mq_unlink, + TP_PROTO(const char * u_name), + TP_ARGS(u_name), + TP_STRUCT__entry(__string_from_user(u_name, u_name)), + TP_fast_assign(tp_copy_string_from_user(u_name, u_name)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_creat +SC_TRACE_EVENT(sys_creat, + TP_PROTO(const char * pathname, int mode), + TP_ARGS(pathname, mode), + TP_STRUCT__entry(__string_from_user(pathname, pathname) __field(int, mode)), + TP_fast_assign(tp_copy_string_from_user(pathname, pathname) tp_assign(mode, mode)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_link +SC_TRACE_EVENT(sys_link, + TP_PROTO(const char * oldname, const char * newname), + TP_ARGS(oldname, newname), + TP_STRUCT__entry(__string_from_user(oldname, oldname) __string_from_user(newname, newname)), + TP_fast_assign(tp_copy_string_from_user(oldname, oldname) tp_copy_string_from_user(newname, newname)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_chmod +SC_TRACE_EVENT(sys_chmod, + TP_PROTO(const char * filename, mode_t mode), + TP_ARGS(filename, mode), + TP_STRUCT__entry(__string_from_user(filename, filename) __field(mode_t, mode)), + TP_fast_assign(tp_copy_string_from_user(filename, filename) tp_assign(mode, mode)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_stat +SC_TRACE_EVENT(sys_stat, + TP_PROTO(const char * filename, struct __old_kernel_stat * statbuf), + TP_ARGS(filename, statbuf), + TP_STRUCT__entry(__string_from_user(filename, filename) __field_hex(struct __old_kernel_stat *, statbuf)), + TP_fast_assign(tp_copy_string_from_user(filename, filename) tp_assign(statbuf, statbuf)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_fstat +SC_TRACE_EVENT(sys_fstat, + TP_PROTO(unsigned int fd, struct __old_kernel_stat * statbuf), + TP_ARGS(fd, statbuf), + TP_STRUCT__entry(__field(unsigned int, fd) __field_hex(struct __old_kernel_stat *, statbuf)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(statbuf, statbuf)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_utime +SC_TRACE_EVENT(sys_utime, + TP_PROTO(char * filename, struct utimbuf * times), + TP_ARGS(filename, times), + TP_STRUCT__entry(__string_from_user(filename, filename) __field_hex(struct utimbuf *, times)), + TP_fast_assign(tp_copy_string_from_user(filename, filename) tp_assign(times, times)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_access +SC_TRACE_EVENT(sys_access, + TP_PROTO(const char * filename, int mode), + TP_ARGS(filename, mode), + TP_STRUCT__entry(__string_from_user(filename, filename) __field(int, mode)), + TP_fast_assign(tp_copy_string_from_user(filename, filename) tp_assign(mode, mode)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_rename +SC_TRACE_EVENT(sys_rename, + TP_PROTO(const char * oldname, const char * newname), + TP_ARGS(oldname, newname), + TP_STRUCT__entry(__string_from_user(oldname, oldname) __string_from_user(newname, newname)), + TP_fast_assign(tp_copy_string_from_user(oldname, oldname) tp_copy_string_from_user(newname, newname)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_mkdir +SC_TRACE_EVENT(sys_mkdir, + TP_PROTO(const char * pathname, int mode), + TP_ARGS(pathname, mode), + TP_STRUCT__entry(__string_from_user(pathname, pathname) __field(int, mode)), + TP_fast_assign(tp_copy_string_from_user(pathname, pathname) tp_assign(mode, mode)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_umount +SC_TRACE_EVENT(sys_umount, + TP_PROTO(char * name, int flags), + TP_ARGS(name, flags), + TP_STRUCT__entry(__string_from_user(name, name) __field(int, flags)), + TP_fast_assign(tp_copy_string_from_user(name, name) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_ustat +SC_TRACE_EVENT(sys_ustat, + TP_PROTO(unsigned dev, struct ustat * ubuf), + TP_ARGS(dev, ubuf), + TP_STRUCT__entry(__field(unsigned, dev) __field_hex(struct ustat *, ubuf)), + TP_fast_assign(tp_assign(dev, dev) tp_assign(ubuf, ubuf)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_sethostname +SC_TRACE_EVENT(sys_sethostname, + TP_PROTO(char * name, int len), + TP_ARGS(name, len), + TP_STRUCT__entry(__string_from_user(name, name) __field(int, len)), + TP_fast_assign(tp_copy_string_from_user(name, name) tp_assign(len, len)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_setrlimit +SC_TRACE_EVENT(sys_setrlimit, + TP_PROTO(unsigned int resource, struct rlimit * rlim), + TP_ARGS(resource, rlim), + TP_STRUCT__entry(__field(unsigned int, resource) __field_hex(struct rlimit *, rlim)), + TP_fast_assign(tp_assign(resource, resource) tp_assign(rlim, rlim)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_old_getrlimit +SC_TRACE_EVENT(sys_old_getrlimit, + TP_PROTO(unsigned int resource, struct rlimit * rlim), + TP_ARGS(resource, rlim), + TP_STRUCT__entry(__field(unsigned int, resource) __field_hex(struct rlimit *, rlim)), + TP_fast_assign(tp_assign(resource, resource) tp_assign(rlim, rlim)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_getrusage +SC_TRACE_EVENT(sys_getrusage, + TP_PROTO(int who, struct rusage * ru), + TP_ARGS(who, ru), + TP_STRUCT__entry(__field(int, who) __field_hex(struct rusage *, ru)), + TP_fast_assign(tp_assign(who, who) tp_assign(ru, ru)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_gettimeofday +SC_TRACE_EVENT(sys_gettimeofday, + TP_PROTO(struct timeval * tv, struct timezone * tz), + TP_ARGS(tv, tz), + TP_STRUCT__entry(__field_hex(struct timeval *, tv) __field_hex(struct timezone *, tz)), + TP_fast_assign(tp_assign(tv, tv) tp_assign(tz, tz)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_settimeofday +SC_TRACE_EVENT(sys_settimeofday, + TP_PROTO(struct timeval * tv, struct timezone * tz), + TP_ARGS(tv, tz), + TP_STRUCT__entry(__field_hex(struct timeval *, tv) __field_hex(struct timezone *, tz)), + TP_fast_assign(tp_assign(tv, tv) tp_assign(tz, tz)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_getgroups16 +SC_TRACE_EVENT(sys_getgroups16, + TP_PROTO(int gidsetsize, old_gid_t * grouplist), + TP_ARGS(gidsetsize, grouplist), + TP_STRUCT__entry(__field(int, gidsetsize) __field_hex(old_gid_t *, grouplist)), + TP_fast_assign(tp_assign(gidsetsize, gidsetsize) tp_assign(grouplist, grouplist)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_setgroups16 +SC_TRACE_EVENT(sys_setgroups16, + TP_PROTO(int gidsetsize, old_gid_t * grouplist), + TP_ARGS(gidsetsize, grouplist), + TP_STRUCT__entry(__field(int, gidsetsize) __field_hex(old_gid_t *, grouplist)), + TP_fast_assign(tp_assign(gidsetsize, gidsetsize) tp_assign(grouplist, grouplist)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_symlink +SC_TRACE_EVENT(sys_symlink, + TP_PROTO(const char * oldname, const char * newname), + TP_ARGS(oldname, newname), + TP_STRUCT__entry(__string_from_user(oldname, oldname) __string_from_user(newname, newname)), + TP_fast_assign(tp_copy_string_from_user(oldname, oldname) tp_copy_string_from_user(newname, newname)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_lstat +SC_TRACE_EVENT(sys_lstat, + TP_PROTO(const char * filename, struct __old_kernel_stat * statbuf), + TP_ARGS(filename, statbuf), + TP_STRUCT__entry(__string_from_user(filename, filename) __field_hex(struct __old_kernel_stat *, statbuf)), + TP_fast_assign(tp_copy_string_from_user(filename, filename) tp_assign(statbuf, statbuf)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_swapon +SC_TRACE_EVENT(sys_swapon, + TP_PROTO(const char * specialfile, int swap_flags), + TP_ARGS(specialfile, swap_flags), + TP_STRUCT__entry(__string_from_user(specialfile, specialfile) __field(int, swap_flags)), + TP_fast_assign(tp_copy_string_from_user(specialfile, specialfile) tp_assign(swap_flags, swap_flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_truncate +SC_TRACE_EVENT(sys_truncate, + TP_PROTO(const char * path, long length), + TP_ARGS(path, length), + TP_STRUCT__entry(__string_from_user(path, path) __field(long, length)), + TP_fast_assign(tp_copy_string_from_user(path, path) tp_assign(length, length)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_statfs +SC_TRACE_EVENT(sys_statfs, + TP_PROTO(const char * pathname, struct statfs * buf), + TP_ARGS(pathname, buf), + TP_STRUCT__entry(__string_from_user(pathname, pathname) __field_hex(struct statfs *, buf)), + TP_fast_assign(tp_copy_string_from_user(pathname, pathname) tp_assign(buf, buf)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_fstatfs +SC_TRACE_EVENT(sys_fstatfs, + TP_PROTO(unsigned int fd, struct statfs * buf), + TP_ARGS(fd, buf), + TP_STRUCT__entry(__field(unsigned int, fd) __field_hex(struct statfs *, buf)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(buf, buf)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_socketcall +SC_TRACE_EVENT(sys_socketcall, + TP_PROTO(int call, unsigned long * args), + TP_ARGS(call, args), + TP_STRUCT__entry(__field(int, call) __field_hex(unsigned long *, args)), + TP_fast_assign(tp_assign(call, call) tp_assign(args, args)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_getitimer +SC_TRACE_EVENT(sys_getitimer, + TP_PROTO(int which, struct itimerval * value), + TP_ARGS(which, value), + TP_STRUCT__entry(__field(int, which) __field_hex(struct itimerval *, value)), + TP_fast_assign(tp_assign(which, which) tp_assign(value, value)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_newstat +SC_TRACE_EVENT(sys_newstat, + TP_PROTO(const char * filename, struct stat * statbuf), + TP_ARGS(filename, statbuf), + TP_STRUCT__entry(__string_from_user(filename, filename) __field_hex(struct stat *, statbuf)), + TP_fast_assign(tp_copy_string_from_user(filename, filename) tp_assign(statbuf, statbuf)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_newlstat +SC_TRACE_EVENT(sys_newlstat, + TP_PROTO(const char * filename, struct stat * statbuf), + TP_ARGS(filename, statbuf), + TP_STRUCT__entry(__string_from_user(filename, filename) __field_hex(struct stat *, statbuf)), + TP_fast_assign(tp_copy_string_from_user(filename, filename) tp_assign(statbuf, statbuf)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_newfstat +SC_TRACE_EVENT(sys_newfstat, + TP_PROTO(unsigned int fd, struct stat * statbuf), + TP_ARGS(fd, statbuf), + TP_STRUCT__entry(__field(unsigned int, fd) __field_hex(struct stat *, statbuf)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(statbuf, statbuf)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_setdomainname +SC_TRACE_EVENT(sys_setdomainname, + TP_PROTO(char * name, int len), + TP_ARGS(name, len), + TP_STRUCT__entry(__string_from_user(name, name) __field(int, len)), + TP_fast_assign(tp_copy_string_from_user(name, name) tp_assign(len, len)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_delete_module +SC_TRACE_EVENT(sys_delete_module, + TP_PROTO(const char * name_user, unsigned int flags), + TP_ARGS(name_user, flags), + TP_STRUCT__entry(__string_from_user(name_user, name_user) __field(unsigned int, flags)), + TP_fast_assign(tp_copy_string_from_user(name_user, name_user) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_sched_setparam +SC_TRACE_EVENT(sys_sched_setparam, + TP_PROTO(pid_t pid, struct sched_param * param), + TP_ARGS(pid, param), + TP_STRUCT__entry(__field(pid_t, pid) __field_hex(struct sched_param *, param)), + TP_fast_assign(tp_assign(pid, pid) tp_assign(param, param)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_sched_getparam +SC_TRACE_EVENT(sys_sched_getparam, + TP_PROTO(pid_t pid, struct sched_param * param), + TP_ARGS(pid, param), + TP_STRUCT__entry(__field(pid_t, pid) __field_hex(struct sched_param *, param)), + TP_fast_assign(tp_assign(pid, pid) tp_assign(param, param)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_sched_rr_get_interval +SC_TRACE_EVENT(sys_sched_rr_get_interval, + TP_PROTO(pid_t pid, struct timespec * interval), + TP_ARGS(pid, interval), + TP_STRUCT__entry(__field(pid_t, pid) __field_hex(struct timespec *, interval)), + TP_fast_assign(tp_assign(pid, pid) tp_assign(interval, interval)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_nanosleep +SC_TRACE_EVENT(sys_nanosleep, + TP_PROTO(struct timespec * rqtp, struct timespec * rmtp), + TP_ARGS(rqtp, rmtp), + TP_STRUCT__entry(__field_hex(struct timespec *, rqtp) __field_hex(struct timespec *, rmtp)), + TP_fast_assign(tp_assign(rqtp, rqtp) tp_assign(rmtp, rmtp)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_rt_sigpending +SC_TRACE_EVENT(sys_rt_sigpending, + TP_PROTO(sigset_t * set, size_t sigsetsize), + TP_ARGS(set, sigsetsize), + TP_STRUCT__entry(__field_hex(sigset_t *, set) __field(size_t, sigsetsize)), + TP_fast_assign(tp_assign(set, set) tp_assign(sigsetsize, sigsetsize)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_rt_sigsuspend +SC_TRACE_EVENT(sys_rt_sigsuspend, + TP_PROTO(sigset_t * unewset, size_t sigsetsize), + TP_ARGS(unewset, sigsetsize), + TP_STRUCT__entry(__field_hex(sigset_t *, unewset) __field(size_t, sigsetsize)), + TP_fast_assign(tp_assign(unewset, unewset) tp_assign(sigsetsize, sigsetsize)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_getcwd +SC_TRACE_EVENT(sys_getcwd, + TP_PROTO(char * buf, unsigned long size), + TP_ARGS(buf, size), + TP_STRUCT__entry(__field_hex(char *, buf) __field(unsigned long, size)), + TP_fast_assign(tp_assign(buf, buf) tp_assign(size, size)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_getrlimit +SC_TRACE_EVENT(sys_getrlimit, + TP_PROTO(unsigned int resource, struct rlimit * rlim), + TP_ARGS(resource, rlim), + TP_STRUCT__entry(__field(unsigned int, resource) __field_hex(struct rlimit *, rlim)), + TP_fast_assign(tp_assign(resource, resource) tp_assign(rlim, rlim)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_stat64 +SC_TRACE_EVENT(sys_stat64, + TP_PROTO(const char * filename, struct stat64 * statbuf), + TP_ARGS(filename, statbuf), + TP_STRUCT__entry(__string_from_user(filename, filename) __field_hex(struct stat64 *, statbuf)), + TP_fast_assign(tp_copy_string_from_user(filename, filename) tp_assign(statbuf, statbuf)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_lstat64 +SC_TRACE_EVENT(sys_lstat64, + TP_PROTO(const char * filename, struct stat64 * statbuf), + TP_ARGS(filename, statbuf), + TP_STRUCT__entry(__string_from_user(filename, filename) __field_hex(struct stat64 *, statbuf)), + TP_fast_assign(tp_copy_string_from_user(filename, filename) tp_assign(statbuf, statbuf)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_fstat64 +SC_TRACE_EVENT(sys_fstat64, + TP_PROTO(unsigned long fd, struct stat64 * statbuf), + TP_ARGS(fd, statbuf), + TP_STRUCT__entry(__field(unsigned long, fd) __field_hex(struct stat64 *, statbuf)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(statbuf, statbuf)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_getgroups +SC_TRACE_EVENT(sys_getgroups, + TP_PROTO(int gidsetsize, gid_t * grouplist), + TP_ARGS(gidsetsize, grouplist), + TP_STRUCT__entry(__field(int, gidsetsize) __field_hex(gid_t *, grouplist)), + TP_fast_assign(tp_assign(gidsetsize, gidsetsize) tp_assign(grouplist, grouplist)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_setgroups +SC_TRACE_EVENT(sys_setgroups, + TP_PROTO(int gidsetsize, gid_t * grouplist), + TP_ARGS(gidsetsize, grouplist), + TP_STRUCT__entry(__field(int, gidsetsize) __field_hex(gid_t *, grouplist)), + TP_fast_assign(tp_assign(gidsetsize, gidsetsize) tp_assign(grouplist, grouplist)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_pivot_root +SC_TRACE_EVENT(sys_pivot_root, + TP_PROTO(const char * new_root, const char * put_old), + TP_ARGS(new_root, put_old), + TP_STRUCT__entry(__string_from_user(new_root, new_root) __string_from_user(put_old, put_old)), + TP_fast_assign(tp_copy_string_from_user(new_root, new_root) tp_copy_string_from_user(put_old, put_old)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_removexattr +SC_TRACE_EVENT(sys_removexattr, + TP_PROTO(const char * pathname, const char * name), + TP_ARGS(pathname, name), + TP_STRUCT__entry(__string_from_user(pathname, pathname) __string_from_user(name, name)), + TP_fast_assign(tp_copy_string_from_user(pathname, pathname) tp_copy_string_from_user(name, name)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_lremovexattr +SC_TRACE_EVENT(sys_lremovexattr, + TP_PROTO(const char * pathname, const char * name), + TP_ARGS(pathname, name), + TP_STRUCT__entry(__string_from_user(pathname, pathname) __string_from_user(name, name)), + TP_fast_assign(tp_copy_string_from_user(pathname, pathname) tp_copy_string_from_user(name, name)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_fremovexattr +SC_TRACE_EVENT(sys_fremovexattr, + TP_PROTO(int fd, const char * name), + TP_ARGS(fd, name), + TP_STRUCT__entry(__field(int, fd) __string_from_user(name, name)), + TP_fast_assign(tp_assign(fd, fd) tp_copy_string_from_user(name, name)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_io_setup +SC_TRACE_EVENT(sys_io_setup, + TP_PROTO(unsigned nr_events, aio_context_t * ctxp), + TP_ARGS(nr_events, ctxp), + TP_STRUCT__entry(__field(unsigned, nr_events) __field_hex(aio_context_t *, ctxp)), + TP_fast_assign(tp_assign(nr_events, nr_events) tp_assign(ctxp, ctxp)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_timer_gettime +SC_TRACE_EVENT(sys_timer_gettime, + TP_PROTO(timer_t timer_id, struct itimerspec * setting), + TP_ARGS(timer_id, setting), + TP_STRUCT__entry(__field(timer_t, timer_id) __field_hex(struct itimerspec *, setting)), + TP_fast_assign(tp_assign(timer_id, timer_id) tp_assign(setting, setting)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_clock_settime +SC_TRACE_EVENT(sys_clock_settime, + TP_PROTO(const clockid_t which_clock, const struct timespec * tp), + TP_ARGS(which_clock, tp), + TP_STRUCT__entry(__field(const clockid_t, which_clock) __field_hex(const struct timespec *, tp)), + TP_fast_assign(tp_assign(which_clock, which_clock) tp_assign(tp, tp)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_clock_gettime +SC_TRACE_EVENT(sys_clock_gettime, + TP_PROTO(const clockid_t which_clock, struct timespec * tp), + TP_ARGS(which_clock, tp), + TP_STRUCT__entry(__field(const clockid_t, which_clock) __field_hex(struct timespec *, tp)), + TP_fast_assign(tp_assign(which_clock, which_clock) tp_assign(tp, tp)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_clock_getres +SC_TRACE_EVENT(sys_clock_getres, + TP_PROTO(const clockid_t which_clock, struct timespec * tp), + TP_ARGS(which_clock, tp), + TP_STRUCT__entry(__field(const clockid_t, which_clock) __field_hex(struct timespec *, tp)), + TP_fast_assign(tp_assign(which_clock, which_clock) tp_assign(tp, tp)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_utimes +SC_TRACE_EVENT(sys_utimes, + TP_PROTO(char * filename, struct timeval * utimes), + TP_ARGS(filename, utimes), + TP_STRUCT__entry(__string_from_user(filename, filename) __field_hex(struct timeval *, utimes)), + TP_fast_assign(tp_copy_string_from_user(filename, filename) tp_assign(utimes, utimes)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_mq_notify +SC_TRACE_EVENT(sys_mq_notify, + TP_PROTO(mqd_t mqdes, const struct sigevent * u_notification), + TP_ARGS(mqdes, u_notification), + TP_STRUCT__entry(__field(mqd_t, mqdes) __field_hex(const struct sigevent *, u_notification)), + TP_fast_assign(tp_assign(mqdes, mqdes) tp_assign(u_notification, u_notification)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_set_robust_list +SC_TRACE_EVENT(sys_set_robust_list, + TP_PROTO(struct robust_list_head * head, size_t len), + TP_ARGS(head, len), + TP_STRUCT__entry(__field_hex(struct robust_list_head *, head) __field(size_t, len)), + TP_fast_assign(tp_assign(head, head) tp_assign(len, len)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_timerfd_gettime +SC_TRACE_EVENT(sys_timerfd_gettime, + TP_PROTO(int ufd, struct itimerspec * otmr), + TP_ARGS(ufd, otmr), + TP_STRUCT__entry(__field(int, ufd) __field_hex(struct itimerspec *, otmr)), + TP_fast_assign(tp_assign(ufd, ufd) tp_assign(otmr, otmr)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_pipe2 +SC_TRACE_EVENT(sys_pipe2, + TP_PROTO(int * fildes, int flags), + TP_ARGS(fildes, flags), + TP_STRUCT__entry(__field_hex(int *, fildes) __field(int, flags)), + TP_fast_assign(tp_assign(fildes, fildes) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_clock_adjtime +SC_TRACE_EVENT(sys_clock_adjtime, + TP_PROTO(const clockid_t which_clock, struct timex * utx), + TP_ARGS(which_clock, utx), + TP_STRUCT__entry(__field(const clockid_t, which_clock) __field_hex(struct timex *, utx)), + TP_fast_assign(tp_assign(which_clock, which_clock) tp_assign(utx, utx)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_read +SC_TRACE_EVENT(sys_read, + TP_PROTO(unsigned int fd, char * buf, size_t count), + TP_ARGS(fd, buf, count), + TP_STRUCT__entry(__field(unsigned int, fd) __field_hex(char *, buf) __field(size_t, count)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(buf, buf) tp_assign(count, count)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_write +SC_TRACE_EVENT(sys_write, + TP_PROTO(unsigned int fd, const char * buf, size_t count), + TP_ARGS(fd, buf, count), + TP_STRUCT__entry(__field(unsigned int, fd) __field_hex(const char *, buf) __field(size_t, count)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(buf, buf) tp_assign(count, count)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_open +SC_TRACE_EVENT(sys_open, + TP_PROTO(const char * filename, int flags, int mode), + TP_ARGS(filename, flags, mode), + TP_STRUCT__entry(__string_from_user(filename, filename) __field(int, flags) __field(int, mode)), + TP_fast_assign(tp_copy_string_from_user(filename, filename) tp_assign(flags, flags) tp_assign(mode, mode)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_waitpid +SC_TRACE_EVENT(sys_waitpid, + TP_PROTO(pid_t pid, int * stat_addr, int options), + TP_ARGS(pid, stat_addr, options), + TP_STRUCT__entry(__field(pid_t, pid) __field_hex(int *, stat_addr) __field(int, options)), + TP_fast_assign(tp_assign(pid, pid) tp_assign(stat_addr, stat_addr) tp_assign(options, options)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_mknod +SC_TRACE_EVENT(sys_mknod, + TP_PROTO(const char * filename, int mode, unsigned dev), + TP_ARGS(filename, mode, dev), + TP_STRUCT__entry(__string_from_user(filename, filename) __field(int, mode) __field(unsigned, dev)), + TP_fast_assign(tp_copy_string_from_user(filename, filename) tp_assign(mode, mode) tp_assign(dev, dev)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_lchown16 +SC_TRACE_EVENT(sys_lchown16, + TP_PROTO(const char * filename, old_uid_t user, old_gid_t group), + TP_ARGS(filename, user, group), + TP_STRUCT__entry(__string_from_user(filename, filename) __field(old_uid_t, user) __field(old_gid_t, group)), + TP_fast_assign(tp_copy_string_from_user(filename, filename) tp_assign(user, user) tp_assign(group, group)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_readlink +SC_TRACE_EVENT(sys_readlink, + TP_PROTO(const char * path, char * buf, int bufsiz), + TP_ARGS(path, buf, bufsiz), + TP_STRUCT__entry(__string_from_user(path, path) __field_hex(char *, buf) __field(int, bufsiz)), + TP_fast_assign(tp_copy_string_from_user(path, path) tp_assign(buf, buf) tp_assign(bufsiz, bufsiz)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_old_readdir +SC_TRACE_EVENT(sys_old_readdir, + TP_PROTO(unsigned int fd, struct old_linux_dirent * dirent, unsigned int count), + TP_ARGS(fd, dirent, count), + TP_STRUCT__entry(__field(unsigned int, fd) __field_hex(struct old_linux_dirent *, dirent) __field(unsigned int, count)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(dirent, dirent) tp_assign(count, count)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_syslog +SC_TRACE_EVENT(sys_syslog, + TP_PROTO(int type, char * buf, int len), + TP_ARGS(type, buf, len), + TP_STRUCT__entry(__field(int, type) __field_hex(char *, buf) __field(int, len)), + TP_fast_assign(tp_assign(type, type) tp_assign(buf, buf) tp_assign(len, len)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_setitimer +SC_TRACE_EVENT(sys_setitimer, + TP_PROTO(int which, struct itimerval * value, struct itimerval * ovalue), + TP_ARGS(which, value, ovalue), + TP_STRUCT__entry(__field(int, which) __field_hex(struct itimerval *, value) __field_hex(struct itimerval *, ovalue)), + TP_fast_assign(tp_assign(which, which) tp_assign(value, value) tp_assign(ovalue, ovalue)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_sigprocmask +SC_TRACE_EVENT(sys_sigprocmask, + TP_PROTO(int how, old_sigset_t * nset, old_sigset_t * oset), + TP_ARGS(how, nset, oset), + TP_STRUCT__entry(__field(int, how) __field_hex(old_sigset_t *, nset) __field_hex(old_sigset_t *, oset)), + TP_fast_assign(tp_assign(how, how) tp_assign(nset, nset) tp_assign(oset, oset)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_init_module +SC_TRACE_EVENT(sys_init_module, + TP_PROTO(void * umod, unsigned long len, const char * uargs), + TP_ARGS(umod, len, uargs), + TP_STRUCT__entry(__field_hex(void *, umod) __field(unsigned long, len) __field_hex(const char *, uargs)), + TP_fast_assign(tp_assign(umod, umod) tp_assign(len, len) tp_assign(uargs, uargs)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_getdents +SC_TRACE_EVENT(sys_getdents, + TP_PROTO(unsigned int fd, struct linux_dirent * dirent, unsigned int count), + TP_ARGS(fd, dirent, count), + TP_STRUCT__entry(__field(unsigned int, fd) __field_hex(struct linux_dirent *, dirent) __field(unsigned int, count)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(dirent, dirent) tp_assign(count, count)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_readv +SC_TRACE_EVENT(sys_readv, + TP_PROTO(unsigned long fd, const struct iovec * vec, unsigned long vlen), + TP_ARGS(fd, vec, vlen), + TP_STRUCT__entry(__field(unsigned long, fd) __field_hex(const struct iovec *, vec) __field(unsigned long, vlen)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(vec, vec) tp_assign(vlen, vlen)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_writev +SC_TRACE_EVENT(sys_writev, + TP_PROTO(unsigned long fd, const struct iovec * vec, unsigned long vlen), + TP_ARGS(fd, vec, vlen), + TP_STRUCT__entry(__field(unsigned long, fd) __field_hex(const struct iovec *, vec) __field(unsigned long, vlen)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(vec, vec) tp_assign(vlen, vlen)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_sched_setscheduler +SC_TRACE_EVENT(sys_sched_setscheduler, + TP_PROTO(pid_t pid, int policy, struct sched_param * param), + TP_ARGS(pid, policy, param), + TP_STRUCT__entry(__field(pid_t, pid) __field(int, policy) __field_hex(struct sched_param *, param)), + TP_fast_assign(tp_assign(pid, pid) tp_assign(policy, policy) tp_assign(param, param)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_getresuid16 +SC_TRACE_EVENT(sys_getresuid16, + TP_PROTO(old_uid_t * ruid, old_uid_t * euid, old_uid_t * suid), + TP_ARGS(ruid, euid, suid), + TP_STRUCT__entry(__field_hex(old_uid_t *, ruid) __field_hex(old_uid_t *, euid) __field_hex(old_uid_t *, suid)), + TP_fast_assign(tp_assign(ruid, ruid) tp_assign(euid, euid) tp_assign(suid, suid)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_poll +SC_TRACE_EVENT(sys_poll, + TP_PROTO(struct pollfd * ufds, unsigned int nfds, long timeout_msecs), + TP_ARGS(ufds, nfds, timeout_msecs), + TP_STRUCT__entry(__field_hex(struct pollfd *, ufds) __field(unsigned int, nfds) __field(long, timeout_msecs)), + TP_fast_assign(tp_assign(ufds, ufds) tp_assign(nfds, nfds) tp_assign(timeout_msecs, timeout_msecs)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_getresgid16 +SC_TRACE_EVENT(sys_getresgid16, + TP_PROTO(old_gid_t * rgid, old_gid_t * egid, old_gid_t * sgid), + TP_ARGS(rgid, egid, sgid), + TP_STRUCT__entry(__field_hex(old_gid_t *, rgid) __field_hex(old_gid_t *, egid) __field_hex(old_gid_t *, sgid)), + TP_fast_assign(tp_assign(rgid, rgid) tp_assign(egid, egid) tp_assign(sgid, sgid)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_rt_sigqueueinfo +SC_TRACE_EVENT(sys_rt_sigqueueinfo, + TP_PROTO(pid_t pid, int sig, siginfo_t * uinfo), + TP_ARGS(pid, sig, uinfo), + TP_STRUCT__entry(__field(pid_t, pid) __field(int, sig) __field_hex(siginfo_t *, uinfo)), + TP_fast_assign(tp_assign(pid, pid) tp_assign(sig, sig) tp_assign(uinfo, uinfo)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_chown16 +SC_TRACE_EVENT(sys_chown16, + TP_PROTO(const char * filename, old_uid_t user, old_gid_t group), + TP_ARGS(filename, user, group), + TP_STRUCT__entry(__string_from_user(filename, filename) __field(old_uid_t, user) __field(old_gid_t, group)), + TP_fast_assign(tp_copy_string_from_user(filename, filename) tp_assign(user, user) tp_assign(group, group)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_lchown +SC_TRACE_EVENT(sys_lchown, + TP_PROTO(const char * filename, uid_t user, gid_t group), + TP_ARGS(filename, user, group), + TP_STRUCT__entry(__string_from_user(filename, filename) __field(uid_t, user) __field(gid_t, group)), + TP_fast_assign(tp_copy_string_from_user(filename, filename) tp_assign(user, user) tp_assign(group, group)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_getresuid +SC_TRACE_EVENT(sys_getresuid, + TP_PROTO(uid_t * ruid, uid_t * euid, uid_t * suid), + TP_ARGS(ruid, euid, suid), + TP_STRUCT__entry(__field_hex(uid_t *, ruid) __field_hex(uid_t *, euid) __field_hex(uid_t *, suid)), + TP_fast_assign(tp_assign(ruid, ruid) tp_assign(euid, euid) tp_assign(suid, suid)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_getresgid +SC_TRACE_EVENT(sys_getresgid, + TP_PROTO(gid_t * rgid, gid_t * egid, gid_t * sgid), + TP_ARGS(rgid, egid, sgid), + TP_STRUCT__entry(__field_hex(gid_t *, rgid) __field_hex(gid_t *, egid) __field_hex(gid_t *, sgid)), + TP_fast_assign(tp_assign(rgid, rgid) tp_assign(egid, egid) tp_assign(sgid, sgid)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_chown +SC_TRACE_EVENT(sys_chown, + TP_PROTO(const char * filename, uid_t user, gid_t group), + TP_ARGS(filename, user, group), + TP_STRUCT__entry(__string_from_user(filename, filename) __field(uid_t, user) __field(gid_t, group)), + TP_fast_assign(tp_copy_string_from_user(filename, filename) tp_assign(user, user) tp_assign(group, group)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_mincore +SC_TRACE_EVENT(sys_mincore, + TP_PROTO(unsigned long start, size_t len, unsigned char * vec), + TP_ARGS(start, len, vec), + TP_STRUCT__entry(__field(unsigned long, start) __field(size_t, len) __field_hex(unsigned char *, vec)), + TP_fast_assign(tp_assign(start, start) tp_assign(len, len) tp_assign(vec, vec)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_getdents64 +SC_TRACE_EVENT(sys_getdents64, + TP_PROTO(unsigned int fd, struct linux_dirent64 * dirent, unsigned int count), + TP_ARGS(fd, dirent, count), + TP_STRUCT__entry(__field(unsigned int, fd) __field_hex(struct linux_dirent64 *, dirent) __field(unsigned int, count)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(dirent, dirent) tp_assign(count, count)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_listxattr +SC_TRACE_EVENT(sys_listxattr, + TP_PROTO(const char * pathname, char * list, size_t size), + TP_ARGS(pathname, list, size), + TP_STRUCT__entry(__string_from_user(pathname, pathname) __field_hex(char *, list) __field(size_t, size)), + TP_fast_assign(tp_copy_string_from_user(pathname, pathname) tp_assign(list, list) tp_assign(size, size)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_llistxattr +SC_TRACE_EVENT(sys_llistxattr, + TP_PROTO(const char * pathname, char * list, size_t size), + TP_ARGS(pathname, list, size), + TP_STRUCT__entry(__string_from_user(pathname, pathname) __field_hex(char *, list) __field(size_t, size)), + TP_fast_assign(tp_copy_string_from_user(pathname, pathname) tp_assign(list, list) tp_assign(size, size)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_flistxattr +SC_TRACE_EVENT(sys_flistxattr, + TP_PROTO(int fd, char * list, size_t size), + TP_ARGS(fd, list, size), + TP_STRUCT__entry(__field(int, fd) __field_hex(char *, list) __field(size_t, size)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(list, list) tp_assign(size, size)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_sched_setaffinity +SC_TRACE_EVENT(sys_sched_setaffinity, + TP_PROTO(pid_t pid, unsigned int len, unsigned long * user_mask_ptr), + TP_ARGS(pid, len, user_mask_ptr), + TP_STRUCT__entry(__field(pid_t, pid) __field(unsigned int, len) __field_hex(unsigned long *, user_mask_ptr)), + TP_fast_assign(tp_assign(pid, pid) tp_assign(len, len) tp_assign(user_mask_ptr, user_mask_ptr)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_sched_getaffinity +SC_TRACE_EVENT(sys_sched_getaffinity, + TP_PROTO(pid_t pid, unsigned int len, unsigned long * user_mask_ptr), + TP_ARGS(pid, len, user_mask_ptr), + TP_STRUCT__entry(__field(pid_t, pid) __field(unsigned int, len) __field_hex(unsigned long *, user_mask_ptr)), + TP_fast_assign(tp_assign(pid, pid) tp_assign(len, len) tp_assign(user_mask_ptr, user_mask_ptr)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_io_submit +SC_TRACE_EVENT(sys_io_submit, + TP_PROTO(aio_context_t ctx_id, long nr, struct iocb * * iocbpp), + TP_ARGS(ctx_id, nr, iocbpp), + TP_STRUCT__entry(__field(aio_context_t, ctx_id) __field(long, nr) __field_hex(struct iocb * *, iocbpp)), + TP_fast_assign(tp_assign(ctx_id, ctx_id) tp_assign(nr, nr) tp_assign(iocbpp, iocbpp)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_io_cancel +SC_TRACE_EVENT(sys_io_cancel, + TP_PROTO(aio_context_t ctx_id, struct iocb * iocb, struct io_event * result), + TP_ARGS(ctx_id, iocb, result), + TP_STRUCT__entry(__field(aio_context_t, ctx_id) __field_hex(struct iocb *, iocb) __field_hex(struct io_event *, result)), + TP_fast_assign(tp_assign(ctx_id, ctx_id) tp_assign(iocb, iocb) tp_assign(result, result)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_timer_create +SC_TRACE_EVENT(sys_timer_create, + TP_PROTO(const clockid_t which_clock, struct sigevent * timer_event_spec, timer_t * created_timer_id), + TP_ARGS(which_clock, timer_event_spec, created_timer_id), + TP_STRUCT__entry(__field(const clockid_t, which_clock) __field_hex(struct sigevent *, timer_event_spec) __field_hex(timer_t *, created_timer_id)), + TP_fast_assign(tp_assign(which_clock, which_clock) tp_assign(timer_event_spec, timer_event_spec) tp_assign(created_timer_id, created_timer_id)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_statfs64 +SC_TRACE_EVENT(sys_statfs64, + TP_PROTO(const char * pathname, size_t sz, struct statfs64 * buf), + TP_ARGS(pathname, sz, buf), + TP_STRUCT__entry(__string_from_user(pathname, pathname) __field(size_t, sz) __field_hex(struct statfs64 *, buf)), + TP_fast_assign(tp_copy_string_from_user(pathname, pathname) tp_assign(sz, sz) tp_assign(buf, buf)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_fstatfs64 +SC_TRACE_EVENT(sys_fstatfs64, + TP_PROTO(unsigned int fd, size_t sz, struct statfs64 * buf), + TP_ARGS(fd, sz, buf), + TP_STRUCT__entry(__field(unsigned int, fd) __field(size_t, sz) __field_hex(struct statfs64 *, buf)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(sz, sz) tp_assign(buf, buf)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_mq_getsetattr +SC_TRACE_EVENT(sys_mq_getsetattr, + TP_PROTO(mqd_t mqdes, const struct mq_attr * u_mqstat, struct mq_attr * u_omqstat), + TP_ARGS(mqdes, u_mqstat, u_omqstat), + TP_STRUCT__entry(__field(mqd_t, mqdes) __field_hex(const struct mq_attr *, u_mqstat) __field_hex(struct mq_attr *, u_omqstat)), + TP_fast_assign(tp_assign(mqdes, mqdes) tp_assign(u_mqstat, u_mqstat) tp_assign(u_omqstat, u_omqstat)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_inotify_add_watch +SC_TRACE_EVENT(sys_inotify_add_watch, + TP_PROTO(int fd, const char * pathname, u32 mask), + TP_ARGS(fd, pathname, mask), + TP_STRUCT__entry(__field(int, fd) __string_from_user(pathname, pathname) __field(u32, mask)), + TP_fast_assign(tp_assign(fd, fd) tp_copy_string_from_user(pathname, pathname) tp_assign(mask, mask)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_mkdirat +SC_TRACE_EVENT(sys_mkdirat, + TP_PROTO(int dfd, const char * pathname, int mode), + TP_ARGS(dfd, pathname, mode), + TP_STRUCT__entry(__field(int, dfd) __string_from_user(pathname, pathname) __field(int, mode)), + TP_fast_assign(tp_assign(dfd, dfd) tp_copy_string_from_user(pathname, pathname) tp_assign(mode, mode)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_futimesat +SC_TRACE_EVENT(sys_futimesat, + TP_PROTO(int dfd, const char * filename, struct timeval * utimes), + TP_ARGS(dfd, filename, utimes), + TP_STRUCT__entry(__field(int, dfd) __string_from_user(filename, filename) __field_hex(struct timeval *, utimes)), + TP_fast_assign(tp_assign(dfd, dfd) tp_copy_string_from_user(filename, filename) tp_assign(utimes, utimes)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_unlinkat +SC_TRACE_EVENT(sys_unlinkat, + TP_PROTO(int dfd, const char * pathname, int flag), + TP_ARGS(dfd, pathname, flag), + TP_STRUCT__entry(__field(int, dfd) __string_from_user(pathname, pathname) __field(int, flag)), + TP_fast_assign(tp_assign(dfd, dfd) tp_copy_string_from_user(pathname, pathname) tp_assign(flag, flag)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_symlinkat +SC_TRACE_EVENT(sys_symlinkat, + TP_PROTO(const char * oldname, int newdfd, const char * newname), + TP_ARGS(oldname, newdfd, newname), + TP_STRUCT__entry(__string_from_user(oldname, oldname) __field(int, newdfd) __string_from_user(newname, newname)), + TP_fast_assign(tp_copy_string_from_user(oldname, oldname) tp_assign(newdfd, newdfd) tp_copy_string_from_user(newname, newname)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_fchmodat +SC_TRACE_EVENT(sys_fchmodat, + TP_PROTO(int dfd, const char * filename, mode_t mode), + TP_ARGS(dfd, filename, mode), + TP_STRUCT__entry(__field(int, dfd) __string_from_user(filename, filename) __field(mode_t, mode)), + TP_fast_assign(tp_assign(dfd, dfd) tp_copy_string_from_user(filename, filename) tp_assign(mode, mode)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_faccessat +SC_TRACE_EVENT(sys_faccessat, + TP_PROTO(int dfd, const char * filename, int mode), + TP_ARGS(dfd, filename, mode), + TP_STRUCT__entry(__field(int, dfd) __string_from_user(filename, filename) __field(int, mode)), + TP_fast_assign(tp_assign(dfd, dfd) tp_copy_string_from_user(filename, filename) tp_assign(mode, mode)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_get_robust_list +SC_TRACE_EVENT(sys_get_robust_list, + TP_PROTO(int pid, struct robust_list_head * * head_ptr, size_t * len_ptr), + TP_ARGS(pid, head_ptr, len_ptr), + TP_STRUCT__entry(__field(int, pid) __field_hex(struct robust_list_head * *, head_ptr) __field_hex(size_t *, len_ptr)), + TP_fast_assign(tp_assign(pid, pid) tp_assign(head_ptr, head_ptr) tp_assign(len_ptr, len_ptr)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_getcpu +SC_TRACE_EVENT(sys_getcpu, + TP_PROTO(unsigned * cpup, unsigned * nodep, struct getcpu_cache * unused), + TP_ARGS(cpup, nodep, unused), + TP_STRUCT__entry(__field_hex(unsigned *, cpup) __field_hex(unsigned *, nodep) __field_hex(struct getcpu_cache *, unused)), + TP_fast_assign(tp_assign(cpup, cpup) tp_assign(nodep, nodep) tp_assign(unused, unused)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_signalfd +SC_TRACE_EVENT(sys_signalfd, + TP_PROTO(int ufd, sigset_t * user_mask, size_t sizemask), + TP_ARGS(ufd, user_mask, sizemask), + TP_STRUCT__entry(__field(int, ufd) __field_hex(sigset_t *, user_mask) __field(size_t, sizemask)), + TP_fast_assign(tp_assign(ufd, ufd) tp_assign(user_mask, user_mask) tp_assign(sizemask, sizemask)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_reboot +SC_TRACE_EVENT(sys_reboot, + TP_PROTO(int magic1, int magic2, unsigned int cmd, void * arg), + TP_ARGS(magic1, magic2, cmd, arg), + TP_STRUCT__entry(__field(int, magic1) __field(int, magic2) __field(unsigned int, cmd) __field_hex(void *, arg)), + TP_fast_assign(tp_assign(magic1, magic1) tp_assign(magic2, magic2) tp_assign(cmd, cmd) tp_assign(arg, arg)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_wait4 +SC_TRACE_EVENT(sys_wait4, + TP_PROTO(pid_t upid, int * stat_addr, int options, struct rusage * ru), + TP_ARGS(upid, stat_addr, options, ru), + TP_STRUCT__entry(__field(pid_t, upid) __field_hex(int *, stat_addr) __field(int, options) __field_hex(struct rusage *, ru)), + TP_fast_assign(tp_assign(upid, upid) tp_assign(stat_addr, stat_addr) tp_assign(options, options) tp_assign(ru, ru)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_quotactl +SC_TRACE_EVENT(sys_quotactl, + TP_PROTO(unsigned int cmd, const char * special, qid_t id, void * addr), + TP_ARGS(cmd, special, id, addr), + TP_STRUCT__entry(__field(unsigned int, cmd) __field_hex(const char *, special) __field(qid_t, id) __field_hex(void *, addr)), + TP_fast_assign(tp_assign(cmd, cmd) tp_assign(special, special) tp_assign(id, id) tp_assign(addr, addr)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_rt_sigaction +SC_TRACE_EVENT(sys_rt_sigaction, + TP_PROTO(int sig, const struct sigaction * act, struct sigaction * oact, size_t sigsetsize), + TP_ARGS(sig, act, oact, sigsetsize), + TP_STRUCT__entry(__field(int, sig) __field_hex(const struct sigaction *, act) __field_hex(struct sigaction *, oact) __field(size_t, sigsetsize)), + TP_fast_assign(tp_assign(sig, sig) tp_assign(act, act) tp_assign(oact, oact) tp_assign(sigsetsize, sigsetsize)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_rt_sigprocmask +SC_TRACE_EVENT(sys_rt_sigprocmask, + TP_PROTO(int how, sigset_t * nset, sigset_t * oset, size_t sigsetsize), + TP_ARGS(how, nset, oset, sigsetsize), + TP_STRUCT__entry(__field(int, how) __field_hex(sigset_t *, nset) __field_hex(sigset_t *, oset) __field(size_t, sigsetsize)), + TP_fast_assign(tp_assign(how, how) tp_assign(nset, nset) tp_assign(oset, oset) tp_assign(sigsetsize, sigsetsize)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_rt_sigtimedwait +SC_TRACE_EVENT(sys_rt_sigtimedwait, + TP_PROTO(const sigset_t * uthese, siginfo_t * uinfo, const struct timespec * uts, size_t sigsetsize), + TP_ARGS(uthese, uinfo, uts, sigsetsize), + TP_STRUCT__entry(__field_hex(const sigset_t *, uthese) __field_hex(siginfo_t *, uinfo) __field_hex(const struct timespec *, uts) __field(size_t, sigsetsize)), + TP_fast_assign(tp_assign(uthese, uthese) tp_assign(uinfo, uinfo) tp_assign(uts, uts) tp_assign(sigsetsize, sigsetsize)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_sendfile +SC_TRACE_EVENT(sys_sendfile, + TP_PROTO(int out_fd, int in_fd, off_t * offset, size_t count), + TP_ARGS(out_fd, in_fd, offset, count), + TP_STRUCT__entry(__field(int, out_fd) __field(int, in_fd) __field_hex(off_t *, offset) __field(size_t, count)), + TP_fast_assign(tp_assign(out_fd, out_fd) tp_assign(in_fd, in_fd) tp_assign(offset, offset) tp_assign(count, count)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_getxattr +SC_TRACE_EVENT(sys_getxattr, + TP_PROTO(const char * pathname, const char * name, void * value, size_t size), + TP_ARGS(pathname, name, value, size), + TP_STRUCT__entry(__string_from_user(pathname, pathname) __string_from_user(name, name) __field_hex(void *, value) __field(size_t, size)), + TP_fast_assign(tp_copy_string_from_user(pathname, pathname) tp_copy_string_from_user(name, name) tp_assign(value, value) tp_assign(size, size)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_lgetxattr +SC_TRACE_EVENT(sys_lgetxattr, + TP_PROTO(const char * pathname, const char * name, void * value, size_t size), + TP_ARGS(pathname, name, value, size), + TP_STRUCT__entry(__string_from_user(pathname, pathname) __string_from_user(name, name) __field_hex(void *, value) __field(size_t, size)), + TP_fast_assign(tp_copy_string_from_user(pathname, pathname) tp_copy_string_from_user(name, name) tp_assign(value, value) tp_assign(size, size)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_fgetxattr +SC_TRACE_EVENT(sys_fgetxattr, + TP_PROTO(int fd, const char * name, void * value, size_t size), + TP_ARGS(fd, name, value, size), + TP_STRUCT__entry(__field(int, fd) __string_from_user(name, name) __field_hex(void *, value) __field(size_t, size)), + TP_fast_assign(tp_assign(fd, fd) tp_copy_string_from_user(name, name) tp_assign(value, value) tp_assign(size, size)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_sendfile64 +SC_TRACE_EVENT(sys_sendfile64, + TP_PROTO(int out_fd, int in_fd, loff_t * offset, size_t count), + TP_ARGS(out_fd, in_fd, offset, count), + TP_STRUCT__entry(__field(int, out_fd) __field(int, in_fd) __field_hex(loff_t *, offset) __field(size_t, count)), + TP_fast_assign(tp_assign(out_fd, out_fd) tp_assign(in_fd, in_fd) tp_assign(offset, offset) tp_assign(count, count)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_epoll_ctl +SC_TRACE_EVENT(sys_epoll_ctl, + TP_PROTO(int epfd, int op, int fd, struct epoll_event * event), + TP_ARGS(epfd, op, fd, event), + TP_STRUCT__entry(__field(int, epfd) __field(int, op) __field(int, fd) __field_hex(struct epoll_event *, event)), + TP_fast_assign(tp_assign(epfd, epfd) tp_assign(op, op) tp_assign(fd, fd) tp_assign(event, event)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_epoll_wait +SC_TRACE_EVENT(sys_epoll_wait, + TP_PROTO(int epfd, struct epoll_event * events, int maxevents, int timeout), + TP_ARGS(epfd, events, maxevents, timeout), + TP_STRUCT__entry(__field(int, epfd) __field_hex(struct epoll_event *, events) __field(int, maxevents) __field(int, timeout)), + TP_fast_assign(tp_assign(epfd, epfd) tp_assign(events, events) tp_assign(maxevents, maxevents) tp_assign(timeout, timeout)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_timer_settime +SC_TRACE_EVENT(sys_timer_settime, + TP_PROTO(timer_t timer_id, int flags, const struct itimerspec * new_setting, struct itimerspec * old_setting), + TP_ARGS(timer_id, flags, new_setting, old_setting), + TP_STRUCT__entry(__field(timer_t, timer_id) __field(int, flags) __field_hex(const struct itimerspec *, new_setting) __field_hex(struct itimerspec *, old_setting)), + TP_fast_assign(tp_assign(timer_id, timer_id) tp_assign(flags, flags) tp_assign(new_setting, new_setting) tp_assign(old_setting, old_setting)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_clock_nanosleep +SC_TRACE_EVENT(sys_clock_nanosleep, + TP_PROTO(const clockid_t which_clock, int flags, const struct timespec * rqtp, struct timespec * rmtp), + TP_ARGS(which_clock, flags, rqtp, rmtp), + TP_STRUCT__entry(__field(const clockid_t, which_clock) __field(int, flags) __field_hex(const struct timespec *, rqtp) __field_hex(struct timespec *, rmtp)), + TP_fast_assign(tp_assign(which_clock, which_clock) tp_assign(flags, flags) tp_assign(rqtp, rqtp) tp_assign(rmtp, rmtp)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_mq_open +SC_TRACE_EVENT(sys_mq_open, + TP_PROTO(const char * u_name, int oflag, mode_t mode, struct mq_attr * u_attr), + TP_ARGS(u_name, oflag, mode, u_attr), + TP_STRUCT__entry(__string_from_user(u_name, u_name) __field(int, oflag) __field(mode_t, mode) __field_hex(struct mq_attr *, u_attr)), + TP_fast_assign(tp_copy_string_from_user(u_name, u_name) tp_assign(oflag, oflag) tp_assign(mode, mode) tp_assign(u_attr, u_attr)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_kexec_load +SC_TRACE_EVENT(sys_kexec_load, + TP_PROTO(unsigned long entry, unsigned long nr_segments, struct kexec_segment * segments, unsigned long flags), + TP_ARGS(entry, nr_segments, segments, flags), + TP_STRUCT__entry(__field(unsigned long, entry) __field(unsigned long, nr_segments) __field_hex(struct kexec_segment *, segments) __field(unsigned long, flags)), + TP_fast_assign(tp_assign(entry, entry) tp_assign(nr_segments, nr_segments) tp_assign(segments, segments) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_request_key +SC_TRACE_EVENT(sys_request_key, + TP_PROTO(const char * _type, const char * _description, const char * _callout_info, key_serial_t destringid), + TP_ARGS(_type, _description, _callout_info, destringid), + TP_STRUCT__entry(__string_from_user(_type, _type) __field_hex(const char *, _description) __field_hex(const char *, _callout_info) __field(key_serial_t, destringid)), + TP_fast_assign(tp_copy_string_from_user(_type, _type) tp_assign(_description, _description) tp_assign(_callout_info, _callout_info) tp_assign(destringid, destringid)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_openat +SC_TRACE_EVENT(sys_openat, + TP_PROTO(int dfd, const char * filename, int flags, int mode), + TP_ARGS(dfd, filename, flags, mode), + TP_STRUCT__entry(__field(int, dfd) __string_from_user(filename, filename) __field(int, flags) __field(int, mode)), + TP_fast_assign(tp_assign(dfd, dfd) tp_copy_string_from_user(filename, filename) tp_assign(flags, flags) tp_assign(mode, mode)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_mknodat +SC_TRACE_EVENT(sys_mknodat, + TP_PROTO(int dfd, const char * filename, int mode, unsigned dev), + TP_ARGS(dfd, filename, mode, dev), + TP_STRUCT__entry(__field(int, dfd) __string_from_user(filename, filename) __field(int, mode) __field(unsigned, dev)), + TP_fast_assign(tp_assign(dfd, dfd) tp_copy_string_from_user(filename, filename) tp_assign(mode, mode) tp_assign(dev, dev)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_fstatat64 +SC_TRACE_EVENT(sys_fstatat64, + TP_PROTO(int dfd, const char * filename, struct stat64 * statbuf, int flag), + TP_ARGS(dfd, filename, statbuf, flag), + TP_STRUCT__entry(__field(int, dfd) __string_from_user(filename, filename) __field_hex(struct stat64 *, statbuf) __field(int, flag)), + TP_fast_assign(tp_assign(dfd, dfd) tp_copy_string_from_user(filename, filename) tp_assign(statbuf, statbuf) tp_assign(flag, flag)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_renameat +SC_TRACE_EVENT(sys_renameat, + TP_PROTO(int olddfd, const char * oldname, int newdfd, const char * newname), + TP_ARGS(olddfd, oldname, newdfd, newname), + TP_STRUCT__entry(__field(int, olddfd) __string_from_user(oldname, oldname) __field(int, newdfd) __string_from_user(newname, newname)), + TP_fast_assign(tp_assign(olddfd, olddfd) tp_copy_string_from_user(oldname, oldname) tp_assign(newdfd, newdfd) tp_copy_string_from_user(newname, newname)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_readlinkat +SC_TRACE_EVENT(sys_readlinkat, + TP_PROTO(int dfd, const char * pathname, char * buf, int bufsiz), + TP_ARGS(dfd, pathname, buf, bufsiz), + TP_STRUCT__entry(__field(int, dfd) __string_from_user(pathname, pathname) __field_hex(char *, buf) __field(int, bufsiz)), + TP_fast_assign(tp_assign(dfd, dfd) tp_copy_string_from_user(pathname, pathname) tp_assign(buf, buf) tp_assign(bufsiz, bufsiz)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_vmsplice +SC_TRACE_EVENT(sys_vmsplice, + TP_PROTO(int fd, const struct iovec * iov, unsigned long nr_segs, unsigned int flags), + TP_ARGS(fd, iov, nr_segs, flags), + TP_STRUCT__entry(__field(int, fd) __field_hex(const struct iovec *, iov) __field(unsigned long, nr_segs) __field(unsigned int, flags)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(iov, iov) tp_assign(nr_segs, nr_segs) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_utimensat +SC_TRACE_EVENT(sys_utimensat, + TP_PROTO(int dfd, const char * filename, struct timespec * utimes, int flags), + TP_ARGS(dfd, filename, utimes, flags), + TP_STRUCT__entry(__field(int, dfd) __string_from_user(filename, filename) __field_hex(struct timespec *, utimes) __field(int, flags)), + TP_fast_assign(tp_assign(dfd, dfd) tp_copy_string_from_user(filename, filename) tp_assign(utimes, utimes) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_timerfd_settime +SC_TRACE_EVENT(sys_timerfd_settime, + TP_PROTO(int ufd, int flags, const struct itimerspec * utmr, struct itimerspec * otmr), + TP_ARGS(ufd, flags, utmr, otmr), + TP_STRUCT__entry(__field(int, ufd) __field(int, flags) __field_hex(const struct itimerspec *, utmr) __field_hex(struct itimerspec *, otmr)), + TP_fast_assign(tp_assign(ufd, ufd) tp_assign(flags, flags) tp_assign(utmr, utmr) tp_assign(otmr, otmr)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_signalfd4 +SC_TRACE_EVENT(sys_signalfd4, + TP_PROTO(int ufd, sigset_t * user_mask, size_t sizemask, int flags), + TP_ARGS(ufd, user_mask, sizemask, flags), + TP_STRUCT__entry(__field(int, ufd) __field_hex(sigset_t *, user_mask) __field(size_t, sizemask) __field(int, flags)), + TP_fast_assign(tp_assign(ufd, ufd) tp_assign(user_mask, user_mask) tp_assign(sizemask, sizemask) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_rt_tgsigqueueinfo +SC_TRACE_EVENT(sys_rt_tgsigqueueinfo, + TP_PROTO(pid_t tgid, pid_t pid, int sig, siginfo_t * uinfo), + TP_ARGS(tgid, pid, sig, uinfo), + TP_STRUCT__entry(__field(pid_t, tgid) __field(pid_t, pid) __field(int, sig) __field_hex(siginfo_t *, uinfo)), + TP_fast_assign(tp_assign(tgid, tgid) tp_assign(pid, pid) tp_assign(sig, sig) tp_assign(uinfo, uinfo)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_prlimit64 +SC_TRACE_EVENT(sys_prlimit64, + TP_PROTO(pid_t pid, unsigned int resource, const struct rlimit64 * new_rlim, struct rlimit64 * old_rlim), + TP_ARGS(pid, resource, new_rlim, old_rlim), + TP_STRUCT__entry(__field(pid_t, pid) __field(unsigned int, resource) __field_hex(const struct rlimit64 *, new_rlim) __field_hex(struct rlimit64 *, old_rlim)), + TP_fast_assign(tp_assign(pid, pid) tp_assign(resource, resource) tp_assign(new_rlim, new_rlim) tp_assign(old_rlim, old_rlim)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_sendmmsg +SC_TRACE_EVENT(sys_sendmmsg, + TP_PROTO(int fd, struct mmsghdr * mmsg, unsigned int vlen, unsigned int flags), + TP_ARGS(fd, mmsg, vlen, flags), + TP_STRUCT__entry(__field(int, fd) __field_hex(struct mmsghdr *, mmsg) __field(unsigned int, vlen) __field(unsigned int, flags)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(mmsg, mmsg) tp_assign(vlen, vlen) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_mount +SC_TRACE_EVENT(sys_mount, + TP_PROTO(char * dev_name, char * dir_name, char * type, unsigned long flags, void * data), + TP_ARGS(dev_name, dir_name, type, flags, data), + TP_STRUCT__entry(__string_from_user(dev_name, dev_name) __string_from_user(dir_name, dir_name) __string_from_user(type, type) __field(unsigned long, flags) __field_hex(void *, data)), + TP_fast_assign(tp_copy_string_from_user(dev_name, dev_name) tp_copy_string_from_user(dir_name, dir_name) tp_copy_string_from_user(type, type) tp_assign(flags, flags) tp_assign(data, data)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_llseek +SC_TRACE_EVENT(sys_llseek, + TP_PROTO(unsigned int fd, unsigned long offset_high, unsigned long offset_low, loff_t * result, unsigned int origin), + TP_ARGS(fd, offset_high, offset_low, result, origin), + TP_STRUCT__entry(__field(unsigned int, fd) __field(unsigned long, offset_high) __field(unsigned long, offset_low) __field_hex(loff_t *, result) __field(unsigned int, origin)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(offset_high, offset_high) tp_assign(offset_low, offset_low) tp_assign(result, result) tp_assign(origin, origin)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_select +SC_TRACE_EVENT(sys_select, + TP_PROTO(int n, fd_set * inp, fd_set * outp, fd_set * exp, struct timeval * tvp), + TP_ARGS(n, inp, outp, exp, tvp), + TP_STRUCT__entry(__field(int, n) __field_hex(fd_set *, inp) __field_hex(fd_set *, outp) __field_hex(fd_set *, exp) __field_hex(struct timeval *, tvp)), + TP_fast_assign(tp_assign(n, n) tp_assign(inp, inp) tp_assign(outp, outp) tp_assign(exp, exp) tp_assign(tvp, tvp)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_setxattr +SC_TRACE_EVENT(sys_setxattr, + TP_PROTO(const char * pathname, const char * name, const void * value, size_t size, int flags), + TP_ARGS(pathname, name, value, size, flags), + TP_STRUCT__entry(__string_from_user(pathname, pathname) __string_from_user(name, name) __field_hex(const void *, value) __field(size_t, size) __field(int, flags)), + TP_fast_assign(tp_copy_string_from_user(pathname, pathname) tp_copy_string_from_user(name, name) tp_assign(value, value) tp_assign(size, size) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_lsetxattr +SC_TRACE_EVENT(sys_lsetxattr, + TP_PROTO(const char * pathname, const char * name, const void * value, size_t size, int flags), + TP_ARGS(pathname, name, value, size, flags), + TP_STRUCT__entry(__string_from_user(pathname, pathname) __string_from_user(name, name) __field_hex(const void *, value) __field(size_t, size) __field(int, flags)), + TP_fast_assign(tp_copy_string_from_user(pathname, pathname) tp_copy_string_from_user(name, name) tp_assign(value, value) tp_assign(size, size) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_fsetxattr +SC_TRACE_EVENT(sys_fsetxattr, + TP_PROTO(int fd, const char * name, const void * value, size_t size, int flags), + TP_ARGS(fd, name, value, size, flags), + TP_STRUCT__entry(__field(int, fd) __string_from_user(name, name) __field_hex(const void *, value) __field(size_t, size) __field(int, flags)), + TP_fast_assign(tp_assign(fd, fd) tp_copy_string_from_user(name, name) tp_assign(value, value) tp_assign(size, size) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_io_getevents +SC_TRACE_EVENT(sys_io_getevents, + TP_PROTO(aio_context_t ctx_id, long min_nr, long nr, struct io_event * events, struct timespec * timeout), + TP_ARGS(ctx_id, min_nr, nr, events, timeout), + TP_STRUCT__entry(__field(aio_context_t, ctx_id) __field(long, min_nr) __field(long, nr) __field_hex(struct io_event *, events) __field_hex(struct timespec *, timeout)), + TP_fast_assign(tp_assign(ctx_id, ctx_id) tp_assign(min_nr, min_nr) tp_assign(nr, nr) tp_assign(events, events) tp_assign(timeout, timeout)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_mq_timedsend +SC_TRACE_EVENT(sys_mq_timedsend, + TP_PROTO(mqd_t mqdes, const char * u_msg_ptr, size_t msg_len, unsigned int msg_prio, const struct timespec * u_abs_timeout), + TP_ARGS(mqdes, u_msg_ptr, msg_len, msg_prio, u_abs_timeout), + TP_STRUCT__entry(__field(mqd_t, mqdes) __field_hex(const char *, u_msg_ptr) __field(size_t, msg_len) __field(unsigned int, msg_prio) __field_hex(const struct timespec *, u_abs_timeout)), + TP_fast_assign(tp_assign(mqdes, mqdes) tp_assign(u_msg_ptr, u_msg_ptr) tp_assign(msg_len, msg_len) tp_assign(msg_prio, msg_prio) tp_assign(u_abs_timeout, u_abs_timeout)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_mq_timedreceive +SC_TRACE_EVENT(sys_mq_timedreceive, + TP_PROTO(mqd_t mqdes, char * u_msg_ptr, size_t msg_len, unsigned int * u_msg_prio, const struct timespec * u_abs_timeout), + TP_ARGS(mqdes, u_msg_ptr, msg_len, u_msg_prio, u_abs_timeout), + TP_STRUCT__entry(__field(mqd_t, mqdes) __field_hex(char *, u_msg_ptr) __field(size_t, msg_len) __field_hex(unsigned int *, u_msg_prio) __field_hex(const struct timespec *, u_abs_timeout)), + TP_fast_assign(tp_assign(mqdes, mqdes) tp_assign(u_msg_ptr, u_msg_ptr) tp_assign(msg_len, msg_len) tp_assign(u_msg_prio, u_msg_prio) tp_assign(u_abs_timeout, u_abs_timeout)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_waitid +SC_TRACE_EVENT(sys_waitid, + TP_PROTO(int which, pid_t upid, struct siginfo * infop, int options, struct rusage * ru), + TP_ARGS(which, upid, infop, options, ru), + TP_STRUCT__entry(__field(int, which) __field(pid_t, upid) __field_hex(struct siginfo *, infop) __field(int, options) __field_hex(struct rusage *, ru)), + TP_fast_assign(tp_assign(which, which) tp_assign(upid, upid) tp_assign(infop, infop) tp_assign(options, options) tp_assign(ru, ru)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_add_key +SC_TRACE_EVENT(sys_add_key, + TP_PROTO(const char * _type, const char * _description, const void * _payload, size_t plen, key_serial_t ringid), + TP_ARGS(_type, _description, _payload, plen, ringid), + TP_STRUCT__entry(__string_from_user(_type, _type) __field_hex(const char *, _description) __field_hex(const void *, _payload) __field(size_t, plen) __field(key_serial_t, ringid)), + TP_fast_assign(tp_copy_string_from_user(_type, _type) tp_assign(_description, _description) tp_assign(_payload, _payload) tp_assign(plen, plen) tp_assign(ringid, ringid)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_fchownat +SC_TRACE_EVENT(sys_fchownat, + TP_PROTO(int dfd, const char * filename, uid_t user, gid_t group, int flag), + TP_ARGS(dfd, filename, user, group, flag), + TP_STRUCT__entry(__field(int, dfd) __string_from_user(filename, filename) __field(uid_t, user) __field(gid_t, group) __field(int, flag)), + TP_fast_assign(tp_assign(dfd, dfd) tp_copy_string_from_user(filename, filename) tp_assign(user, user) tp_assign(group, group) tp_assign(flag, flag)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_linkat +SC_TRACE_EVENT(sys_linkat, + TP_PROTO(int olddfd, const char * oldname, int newdfd, const char * newname, int flags), + TP_ARGS(olddfd, oldname, newdfd, newname, flags), + TP_STRUCT__entry(__field(int, olddfd) __string_from_user(oldname, oldname) __field(int, newdfd) __string_from_user(newname, newname) __field(int, flags)), + TP_fast_assign(tp_assign(olddfd, olddfd) tp_copy_string_from_user(oldname, oldname) tp_assign(newdfd, newdfd) tp_copy_string_from_user(newname, newname) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_ppoll +SC_TRACE_EVENT(sys_ppoll, + TP_PROTO(struct pollfd * ufds, unsigned int nfds, struct timespec * tsp, const sigset_t * sigmask, size_t sigsetsize), + TP_ARGS(ufds, nfds, tsp, sigmask, sigsetsize), + TP_STRUCT__entry(__field_hex(struct pollfd *, ufds) __field(unsigned int, nfds) __field_hex(struct timespec *, tsp) __field_hex(const sigset_t *, sigmask) __field(size_t, sigsetsize)), + TP_fast_assign(tp_assign(ufds, ufds) tp_assign(nfds, nfds) tp_assign(tsp, tsp) tp_assign(sigmask, sigmask) tp_assign(sigsetsize, sigsetsize)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_preadv +SC_TRACE_EVENT(sys_preadv, + TP_PROTO(unsigned long fd, const struct iovec * vec, unsigned long vlen, unsigned long pos_l, unsigned long pos_h), + TP_ARGS(fd, vec, vlen, pos_l, pos_h), + TP_STRUCT__entry(__field(unsigned long, fd) __field_hex(const struct iovec *, vec) __field(unsigned long, vlen) __field(unsigned long, pos_l) __field(unsigned long, pos_h)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(vec, vec) tp_assign(vlen, vlen) tp_assign(pos_l, pos_l) tp_assign(pos_h, pos_h)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_pwritev +SC_TRACE_EVENT(sys_pwritev, + TP_PROTO(unsigned long fd, const struct iovec * vec, unsigned long vlen, unsigned long pos_l, unsigned long pos_h), + TP_ARGS(fd, vec, vlen, pos_l, pos_h), + TP_STRUCT__entry(__field(unsigned long, fd) __field_hex(const struct iovec *, vec) __field(unsigned long, vlen) __field(unsigned long, pos_l) __field(unsigned long, pos_h)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(vec, vec) tp_assign(vlen, vlen) tp_assign(pos_l, pos_l) tp_assign(pos_h, pos_h)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_perf_event_open +SC_TRACE_EVENT(sys_perf_event_open, + TP_PROTO(struct perf_event_attr * attr_uptr, pid_t pid, int cpu, int group_fd, unsigned long flags), + TP_ARGS(attr_uptr, pid, cpu, group_fd, flags), + TP_STRUCT__entry(__field_hex(struct perf_event_attr *, attr_uptr) __field(pid_t, pid) __field(int, cpu) __field(int, group_fd) __field(unsigned long, flags)), + TP_fast_assign(tp_assign(attr_uptr, attr_uptr) tp_assign(pid, pid) tp_assign(cpu, cpu) tp_assign(group_fd, group_fd) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_recvmmsg +SC_TRACE_EVENT(sys_recvmmsg, + TP_PROTO(int fd, struct mmsghdr * mmsg, unsigned int vlen, unsigned int flags, struct timespec * timeout), + TP_ARGS(fd, mmsg, vlen, flags, timeout), + TP_STRUCT__entry(__field(int, fd) __field_hex(struct mmsghdr *, mmsg) __field(unsigned int, vlen) __field(unsigned int, flags) __field_hex(struct timespec *, timeout)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(mmsg, mmsg) tp_assign(vlen, vlen) tp_assign(flags, flags) tp_assign(timeout, timeout)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_ipc +SC_TRACE_EVENT(sys_ipc, + TP_PROTO(unsigned int call, int first, unsigned long second, unsigned long third, void * ptr, long fifth), + TP_ARGS(call, first, second, third, ptr, fifth), + TP_STRUCT__entry(__field(unsigned int, call) __field(int, first) __field(unsigned long, second) __field(unsigned long, third) __field_hex(void *, ptr) __field(long, fifth)), + TP_fast_assign(tp_assign(call, call) tp_assign(first, first) tp_assign(second, second) tp_assign(third, third) tp_assign(ptr, ptr) tp_assign(fifth, fifth)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_futex +SC_TRACE_EVENT(sys_futex, + TP_PROTO(u32 * uaddr, int op, u32 val, struct timespec * utime, u32 * uaddr2, u32 val3), + TP_ARGS(uaddr, op, val, utime, uaddr2, val3), + TP_STRUCT__entry(__field_hex(u32 *, uaddr) __field(int, op) __field(u32, val) __field_hex(struct timespec *, utime) __field_hex(u32 *, uaddr2) __field(u32, val3)), + TP_fast_assign(tp_assign(uaddr, uaddr) tp_assign(op, op) tp_assign(val, val) tp_assign(utime, utime) tp_assign(uaddr2, uaddr2) tp_assign(val3, val3)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_pselect6 +SC_TRACE_EVENT(sys_pselect6, + TP_PROTO(int n, fd_set * inp, fd_set * outp, fd_set * exp, struct timespec * tsp, void * sig), + TP_ARGS(n, inp, outp, exp, tsp, sig), + TP_STRUCT__entry(__field(int, n) __field_hex(fd_set *, inp) __field_hex(fd_set *, outp) __field_hex(fd_set *, exp) __field_hex(struct timespec *, tsp) __field_hex(void *, sig)), + TP_fast_assign(tp_assign(n, n) tp_assign(inp, inp) tp_assign(outp, outp) tp_assign(exp, exp) tp_assign(tsp, tsp) tp_assign(sig, sig)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_splice +SC_TRACE_EVENT(sys_splice, + TP_PROTO(int fd_in, loff_t * off_in, int fd_out, loff_t * off_out, size_t len, unsigned int flags), + TP_ARGS(fd_in, off_in, fd_out, off_out, len, flags), + TP_STRUCT__entry(__field(int, fd_in) __field_hex(loff_t *, off_in) __field(int, fd_out) __field_hex(loff_t *, off_out) __field(size_t, len) __field(unsigned int, flags)), + TP_fast_assign(tp_assign(fd_in, fd_in) tp_assign(off_in, off_in) tp_assign(fd_out, fd_out) tp_assign(off_out, off_out) tp_assign(len, len) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_epoll_pwait +SC_TRACE_EVENT(sys_epoll_pwait, + TP_PROTO(int epfd, struct epoll_event * events, int maxevents, int timeout, const sigset_t * sigmask, size_t sigsetsize), + TP_ARGS(epfd, events, maxevents, timeout, sigmask, sigsetsize), + TP_STRUCT__entry(__field(int, epfd) __field_hex(struct epoll_event *, events) __field(int, maxevents) __field(int, timeout) __field_hex(const sigset_t *, sigmask) __field(size_t, sigsetsize)), + TP_fast_assign(tp_assign(epfd, epfd) tp_assign(events, events) tp_assign(maxevents, maxevents) tp_assign(timeout, timeout) tp_assign(sigmask, sigmask) tp_assign(sigsetsize, sigsetsize)), + TP_printk() +) +#endif + +#endif /* _TRACE_SYSCALLS_POINTERS_H */ + +/* This part must be outside protection */ +#include "../../../probes/define_trace.h" + +#else /* CREATE_SYSCALL_TABLE */ + +#include "x86-32-syscalls-3.1.0-rc6_pointers_override.h" +#include "syscalls_pointers_override.h" + +#ifndef OVERRIDE_TABLE_32_sys_read +TRACE_SYSCALL_TABLE(sys_read, sys_read, 3, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_write +TRACE_SYSCALL_TABLE(sys_write, sys_write, 4, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_open +TRACE_SYSCALL_TABLE(sys_open, sys_open, 5, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_waitpid +TRACE_SYSCALL_TABLE(sys_waitpid, sys_waitpid, 7, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_creat +TRACE_SYSCALL_TABLE(sys_creat, sys_creat, 8, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_link +TRACE_SYSCALL_TABLE(sys_link, sys_link, 9, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_unlink +TRACE_SYSCALL_TABLE(sys_unlink, sys_unlink, 10, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_chdir +TRACE_SYSCALL_TABLE(sys_chdir, sys_chdir, 12, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_time +TRACE_SYSCALL_TABLE(sys_time, sys_time, 13, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_mknod +TRACE_SYSCALL_TABLE(sys_mknod, sys_mknod, 14, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_chmod +TRACE_SYSCALL_TABLE(sys_chmod, sys_chmod, 15, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_lchown16 +TRACE_SYSCALL_TABLE(sys_lchown16, sys_lchown16, 16, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_stat +TRACE_SYSCALL_TABLE(sys_stat, sys_stat, 18, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_mount +TRACE_SYSCALL_TABLE(sys_mount, sys_mount, 21, 5) +#endif +#ifndef OVERRIDE_TABLE_32_sys_oldumount +TRACE_SYSCALL_TABLE(sys_oldumount, sys_oldumount, 22, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_stime +TRACE_SYSCALL_TABLE(sys_stime, sys_stime, 25, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_fstat +TRACE_SYSCALL_TABLE(sys_fstat, sys_fstat, 28, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_utime +TRACE_SYSCALL_TABLE(sys_utime, sys_utime, 30, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_access +TRACE_SYSCALL_TABLE(sys_access, sys_access, 33, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_rename +TRACE_SYSCALL_TABLE(sys_rename, sys_rename, 38, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_mkdir +TRACE_SYSCALL_TABLE(sys_mkdir, sys_mkdir, 39, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_rmdir +TRACE_SYSCALL_TABLE(sys_rmdir, sys_rmdir, 40, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_pipe +TRACE_SYSCALL_TABLE(sys_pipe, sys_pipe, 42, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_times +TRACE_SYSCALL_TABLE(sys_times, sys_times, 43, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_acct +TRACE_SYSCALL_TABLE(sys_acct, sys_acct, 51, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_umount +TRACE_SYSCALL_TABLE(sys_umount, sys_umount, 52, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_olduname +TRACE_SYSCALL_TABLE(sys_olduname, sys_olduname, 59, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_chroot +TRACE_SYSCALL_TABLE(sys_chroot, sys_chroot, 61, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_ustat +TRACE_SYSCALL_TABLE(sys_ustat, sys_ustat, 62, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_sigpending +TRACE_SYSCALL_TABLE(sys_sigpending, sys_sigpending, 73, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_sethostname +TRACE_SYSCALL_TABLE(sys_sethostname, sys_sethostname, 74, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_setrlimit +TRACE_SYSCALL_TABLE(sys_setrlimit, sys_setrlimit, 75, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_old_getrlimit +TRACE_SYSCALL_TABLE(sys_old_getrlimit, sys_old_getrlimit, 76, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_getrusage +TRACE_SYSCALL_TABLE(sys_getrusage, sys_getrusage, 77, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_gettimeofday +TRACE_SYSCALL_TABLE(sys_gettimeofday, sys_gettimeofday, 78, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_settimeofday +TRACE_SYSCALL_TABLE(sys_settimeofday, sys_settimeofday, 79, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_getgroups16 +TRACE_SYSCALL_TABLE(sys_getgroups16, sys_getgroups16, 80, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_setgroups16 +TRACE_SYSCALL_TABLE(sys_setgroups16, sys_setgroups16, 81, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_old_select +TRACE_SYSCALL_TABLE(sys_old_select, sys_old_select, 82, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_symlink +TRACE_SYSCALL_TABLE(sys_symlink, sys_symlink, 83, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_lstat +TRACE_SYSCALL_TABLE(sys_lstat, sys_lstat, 84, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_readlink +TRACE_SYSCALL_TABLE(sys_readlink, sys_readlink, 85, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_uselib +TRACE_SYSCALL_TABLE(sys_uselib, sys_uselib, 86, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_swapon +TRACE_SYSCALL_TABLE(sys_swapon, sys_swapon, 87, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_reboot +TRACE_SYSCALL_TABLE(sys_reboot, sys_reboot, 88, 4) +#endif +#ifndef OVERRIDE_TABLE_32_sys_old_readdir +TRACE_SYSCALL_TABLE(sys_old_readdir, sys_old_readdir, 89, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_old_mmap +TRACE_SYSCALL_TABLE(sys_old_mmap, sys_old_mmap, 90, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_truncate +TRACE_SYSCALL_TABLE(sys_truncate, sys_truncate, 92, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_statfs +TRACE_SYSCALL_TABLE(sys_statfs, sys_statfs, 99, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_fstatfs +TRACE_SYSCALL_TABLE(sys_fstatfs, sys_fstatfs, 100, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_socketcall +TRACE_SYSCALL_TABLE(sys_socketcall, sys_socketcall, 102, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_syslog +TRACE_SYSCALL_TABLE(sys_syslog, sys_syslog, 103, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_setitimer +TRACE_SYSCALL_TABLE(sys_setitimer, sys_setitimer, 104, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_getitimer +TRACE_SYSCALL_TABLE(sys_getitimer, sys_getitimer, 105, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_newstat +TRACE_SYSCALL_TABLE(sys_newstat, sys_newstat, 106, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_newlstat +TRACE_SYSCALL_TABLE(sys_newlstat, sys_newlstat, 107, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_newfstat +TRACE_SYSCALL_TABLE(sys_newfstat, sys_newfstat, 108, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_uname +TRACE_SYSCALL_TABLE(sys_uname, sys_uname, 109, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_wait4 +TRACE_SYSCALL_TABLE(sys_wait4, sys_wait4, 114, 4) +#endif +#ifndef OVERRIDE_TABLE_32_sys_swapoff +TRACE_SYSCALL_TABLE(sys_swapoff, sys_swapoff, 115, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_sysinfo +TRACE_SYSCALL_TABLE(sys_sysinfo, sys_sysinfo, 116, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_ipc +TRACE_SYSCALL_TABLE(sys_ipc, sys_ipc, 117, 6) +#endif +#ifndef OVERRIDE_TABLE_32_sys_setdomainname +TRACE_SYSCALL_TABLE(sys_setdomainname, sys_setdomainname, 121, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_newuname +TRACE_SYSCALL_TABLE(sys_newuname, sys_newuname, 122, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_adjtimex +TRACE_SYSCALL_TABLE(sys_adjtimex, sys_adjtimex, 124, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_sigprocmask +TRACE_SYSCALL_TABLE(sys_sigprocmask, sys_sigprocmask, 126, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_init_module +TRACE_SYSCALL_TABLE(sys_init_module, sys_init_module, 128, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_delete_module +TRACE_SYSCALL_TABLE(sys_delete_module, sys_delete_module, 129, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_quotactl +TRACE_SYSCALL_TABLE(sys_quotactl, sys_quotactl, 131, 4) +#endif +#ifndef OVERRIDE_TABLE_32_sys_llseek +TRACE_SYSCALL_TABLE(sys_llseek, sys_llseek, 140, 5) +#endif +#ifndef OVERRIDE_TABLE_32_sys_getdents +TRACE_SYSCALL_TABLE(sys_getdents, sys_getdents, 141, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_select +TRACE_SYSCALL_TABLE(sys_select, sys_select, 142, 5) +#endif +#ifndef OVERRIDE_TABLE_32_sys_readv +TRACE_SYSCALL_TABLE(sys_readv, sys_readv, 145, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_writev +TRACE_SYSCALL_TABLE(sys_writev, sys_writev, 146, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_sysctl +TRACE_SYSCALL_TABLE(sys_sysctl, sys_sysctl, 149, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_sched_setparam +TRACE_SYSCALL_TABLE(sys_sched_setparam, sys_sched_setparam, 154, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_sched_getparam +TRACE_SYSCALL_TABLE(sys_sched_getparam, sys_sched_getparam, 155, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_sched_setscheduler +TRACE_SYSCALL_TABLE(sys_sched_setscheduler, sys_sched_setscheduler, 156, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_sched_rr_get_interval +TRACE_SYSCALL_TABLE(sys_sched_rr_get_interval, sys_sched_rr_get_interval, 161, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_nanosleep +TRACE_SYSCALL_TABLE(sys_nanosleep, sys_nanosleep, 162, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_getresuid16 +TRACE_SYSCALL_TABLE(sys_getresuid16, sys_getresuid16, 165, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_poll +TRACE_SYSCALL_TABLE(sys_poll, sys_poll, 168, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_getresgid16 +TRACE_SYSCALL_TABLE(sys_getresgid16, sys_getresgid16, 171, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_rt_sigaction +TRACE_SYSCALL_TABLE(sys_rt_sigaction, sys_rt_sigaction, 174, 4) +#endif +#ifndef OVERRIDE_TABLE_32_sys_rt_sigprocmask +TRACE_SYSCALL_TABLE(sys_rt_sigprocmask, sys_rt_sigprocmask, 175, 4) +#endif +#ifndef OVERRIDE_TABLE_32_sys_rt_sigpending +TRACE_SYSCALL_TABLE(sys_rt_sigpending, sys_rt_sigpending, 176, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_rt_sigtimedwait +TRACE_SYSCALL_TABLE(sys_rt_sigtimedwait, sys_rt_sigtimedwait, 177, 4) +#endif +#ifndef OVERRIDE_TABLE_32_sys_rt_sigqueueinfo +TRACE_SYSCALL_TABLE(sys_rt_sigqueueinfo, sys_rt_sigqueueinfo, 178, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_rt_sigsuspend +TRACE_SYSCALL_TABLE(sys_rt_sigsuspend, sys_rt_sigsuspend, 179, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_chown16 +TRACE_SYSCALL_TABLE(sys_chown16, sys_chown16, 182, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_getcwd +TRACE_SYSCALL_TABLE(sys_getcwd, sys_getcwd, 183, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_sendfile +TRACE_SYSCALL_TABLE(sys_sendfile, sys_sendfile, 187, 4) +#endif +#ifndef OVERRIDE_TABLE_32_sys_getrlimit +TRACE_SYSCALL_TABLE(sys_getrlimit, sys_getrlimit, 191, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_stat64 +TRACE_SYSCALL_TABLE(sys_stat64, sys_stat64, 195, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_lstat64 +TRACE_SYSCALL_TABLE(sys_lstat64, sys_lstat64, 196, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_fstat64 +TRACE_SYSCALL_TABLE(sys_fstat64, sys_fstat64, 197, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_lchown +TRACE_SYSCALL_TABLE(sys_lchown, sys_lchown, 198, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_getgroups +TRACE_SYSCALL_TABLE(sys_getgroups, sys_getgroups, 205, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_setgroups +TRACE_SYSCALL_TABLE(sys_setgroups, sys_setgroups, 206, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_getresuid +TRACE_SYSCALL_TABLE(sys_getresuid, sys_getresuid, 209, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_getresgid +TRACE_SYSCALL_TABLE(sys_getresgid, sys_getresgid, 211, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_chown +TRACE_SYSCALL_TABLE(sys_chown, sys_chown, 212, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_pivot_root +TRACE_SYSCALL_TABLE(sys_pivot_root, sys_pivot_root, 217, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_mincore +TRACE_SYSCALL_TABLE(sys_mincore, sys_mincore, 218, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_getdents64 +TRACE_SYSCALL_TABLE(sys_getdents64, sys_getdents64, 220, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_setxattr +TRACE_SYSCALL_TABLE(sys_setxattr, sys_setxattr, 226, 5) +#endif +#ifndef OVERRIDE_TABLE_32_sys_lsetxattr +TRACE_SYSCALL_TABLE(sys_lsetxattr, sys_lsetxattr, 227, 5) +#endif +#ifndef OVERRIDE_TABLE_32_sys_fsetxattr +TRACE_SYSCALL_TABLE(sys_fsetxattr, sys_fsetxattr, 228, 5) +#endif +#ifndef OVERRIDE_TABLE_32_sys_getxattr +TRACE_SYSCALL_TABLE(sys_getxattr, sys_getxattr, 229, 4) +#endif +#ifndef OVERRIDE_TABLE_32_sys_lgetxattr +TRACE_SYSCALL_TABLE(sys_lgetxattr, sys_lgetxattr, 230, 4) +#endif +#ifndef OVERRIDE_TABLE_32_sys_fgetxattr +TRACE_SYSCALL_TABLE(sys_fgetxattr, sys_fgetxattr, 231, 4) +#endif +#ifndef OVERRIDE_TABLE_32_sys_listxattr +TRACE_SYSCALL_TABLE(sys_listxattr, sys_listxattr, 232, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_llistxattr +TRACE_SYSCALL_TABLE(sys_llistxattr, sys_llistxattr, 233, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_flistxattr +TRACE_SYSCALL_TABLE(sys_flistxattr, sys_flistxattr, 234, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_removexattr +TRACE_SYSCALL_TABLE(sys_removexattr, sys_removexattr, 235, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_lremovexattr +TRACE_SYSCALL_TABLE(sys_lremovexattr, sys_lremovexattr, 236, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_fremovexattr +TRACE_SYSCALL_TABLE(sys_fremovexattr, sys_fremovexattr, 237, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_sendfile64 +TRACE_SYSCALL_TABLE(sys_sendfile64, sys_sendfile64, 239, 4) +#endif +#ifndef OVERRIDE_TABLE_32_sys_futex +TRACE_SYSCALL_TABLE(sys_futex, sys_futex, 240, 6) +#endif +#ifndef OVERRIDE_TABLE_32_sys_sched_setaffinity +TRACE_SYSCALL_TABLE(sys_sched_setaffinity, sys_sched_setaffinity, 241, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_sched_getaffinity +TRACE_SYSCALL_TABLE(sys_sched_getaffinity, sys_sched_getaffinity, 242, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_io_setup +TRACE_SYSCALL_TABLE(sys_io_setup, sys_io_setup, 245, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_io_getevents +TRACE_SYSCALL_TABLE(sys_io_getevents, sys_io_getevents, 247, 5) +#endif +#ifndef OVERRIDE_TABLE_32_sys_io_submit +TRACE_SYSCALL_TABLE(sys_io_submit, sys_io_submit, 248, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_io_cancel +TRACE_SYSCALL_TABLE(sys_io_cancel, sys_io_cancel, 249, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_epoll_ctl +TRACE_SYSCALL_TABLE(sys_epoll_ctl, sys_epoll_ctl, 255, 4) +#endif +#ifndef OVERRIDE_TABLE_32_sys_epoll_wait +TRACE_SYSCALL_TABLE(sys_epoll_wait, sys_epoll_wait, 256, 4) +#endif +#ifndef OVERRIDE_TABLE_32_sys_set_tid_address +TRACE_SYSCALL_TABLE(sys_set_tid_address, sys_set_tid_address, 258, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_timer_create +TRACE_SYSCALL_TABLE(sys_timer_create, sys_timer_create, 259, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_timer_settime +TRACE_SYSCALL_TABLE(sys_timer_settime, sys_timer_settime, 260, 4) +#endif +#ifndef OVERRIDE_TABLE_32_sys_timer_gettime +TRACE_SYSCALL_TABLE(sys_timer_gettime, sys_timer_gettime, 261, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_clock_settime +TRACE_SYSCALL_TABLE(sys_clock_settime, sys_clock_settime, 264, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_clock_gettime +TRACE_SYSCALL_TABLE(sys_clock_gettime, sys_clock_gettime, 265, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_clock_getres +TRACE_SYSCALL_TABLE(sys_clock_getres, sys_clock_getres, 266, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_clock_nanosleep +TRACE_SYSCALL_TABLE(sys_clock_nanosleep, sys_clock_nanosleep, 267, 4) +#endif +#ifndef OVERRIDE_TABLE_32_sys_statfs64 +TRACE_SYSCALL_TABLE(sys_statfs64, sys_statfs64, 268, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_fstatfs64 +TRACE_SYSCALL_TABLE(sys_fstatfs64, sys_fstatfs64, 269, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_utimes +TRACE_SYSCALL_TABLE(sys_utimes, sys_utimes, 271, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_mq_open +TRACE_SYSCALL_TABLE(sys_mq_open, sys_mq_open, 277, 4) +#endif +#ifndef OVERRIDE_TABLE_32_sys_mq_unlink +TRACE_SYSCALL_TABLE(sys_mq_unlink, sys_mq_unlink, 278, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_mq_timedsend +TRACE_SYSCALL_TABLE(sys_mq_timedsend, sys_mq_timedsend, 279, 5) +#endif +#ifndef OVERRIDE_TABLE_32_sys_mq_timedreceive +TRACE_SYSCALL_TABLE(sys_mq_timedreceive, sys_mq_timedreceive, 280, 5) +#endif +#ifndef OVERRIDE_TABLE_32_sys_mq_notify +TRACE_SYSCALL_TABLE(sys_mq_notify, sys_mq_notify, 281, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_mq_getsetattr +TRACE_SYSCALL_TABLE(sys_mq_getsetattr, sys_mq_getsetattr, 282, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_kexec_load +TRACE_SYSCALL_TABLE(sys_kexec_load, sys_kexec_load, 283, 4) +#endif +#ifndef OVERRIDE_TABLE_32_sys_waitid +TRACE_SYSCALL_TABLE(sys_waitid, sys_waitid, 284, 5) +#endif +#ifndef OVERRIDE_TABLE_32_sys_add_key +TRACE_SYSCALL_TABLE(sys_add_key, sys_add_key, 286, 5) +#endif +#ifndef OVERRIDE_TABLE_32_sys_request_key +TRACE_SYSCALL_TABLE(sys_request_key, sys_request_key, 287, 4) +#endif +#ifndef OVERRIDE_TABLE_32_sys_inotify_add_watch +TRACE_SYSCALL_TABLE(sys_inotify_add_watch, sys_inotify_add_watch, 292, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_openat +TRACE_SYSCALL_TABLE(sys_openat, sys_openat, 295, 4) +#endif +#ifndef OVERRIDE_TABLE_32_sys_mkdirat +TRACE_SYSCALL_TABLE(sys_mkdirat, sys_mkdirat, 296, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_mknodat +TRACE_SYSCALL_TABLE(sys_mknodat, sys_mknodat, 297, 4) +#endif +#ifndef OVERRIDE_TABLE_32_sys_fchownat +TRACE_SYSCALL_TABLE(sys_fchownat, sys_fchownat, 298, 5) +#endif +#ifndef OVERRIDE_TABLE_32_sys_futimesat +TRACE_SYSCALL_TABLE(sys_futimesat, sys_futimesat, 299, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_fstatat64 +TRACE_SYSCALL_TABLE(sys_fstatat64, sys_fstatat64, 300, 4) +#endif +#ifndef OVERRIDE_TABLE_32_sys_unlinkat +TRACE_SYSCALL_TABLE(sys_unlinkat, sys_unlinkat, 301, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_renameat +TRACE_SYSCALL_TABLE(sys_renameat, sys_renameat, 302, 4) +#endif +#ifndef OVERRIDE_TABLE_32_sys_linkat +TRACE_SYSCALL_TABLE(sys_linkat, sys_linkat, 303, 5) +#endif +#ifndef OVERRIDE_TABLE_32_sys_symlinkat +TRACE_SYSCALL_TABLE(sys_symlinkat, sys_symlinkat, 304, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_readlinkat +TRACE_SYSCALL_TABLE(sys_readlinkat, sys_readlinkat, 305, 4) +#endif +#ifndef OVERRIDE_TABLE_32_sys_fchmodat +TRACE_SYSCALL_TABLE(sys_fchmodat, sys_fchmodat, 306, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_faccessat +TRACE_SYSCALL_TABLE(sys_faccessat, sys_faccessat, 307, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_pselect6 +TRACE_SYSCALL_TABLE(sys_pselect6, sys_pselect6, 308, 6) +#endif +#ifndef OVERRIDE_TABLE_32_sys_ppoll +TRACE_SYSCALL_TABLE(sys_ppoll, sys_ppoll, 309, 5) +#endif +#ifndef OVERRIDE_TABLE_32_sys_set_robust_list +TRACE_SYSCALL_TABLE(sys_set_robust_list, sys_set_robust_list, 311, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_get_robust_list +TRACE_SYSCALL_TABLE(sys_get_robust_list, sys_get_robust_list, 312, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_splice +TRACE_SYSCALL_TABLE(sys_splice, sys_splice, 313, 6) +#endif +#ifndef OVERRIDE_TABLE_32_sys_vmsplice +TRACE_SYSCALL_TABLE(sys_vmsplice, sys_vmsplice, 316, 4) +#endif +#ifndef OVERRIDE_TABLE_32_sys_getcpu +TRACE_SYSCALL_TABLE(sys_getcpu, sys_getcpu, 318, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_epoll_pwait +TRACE_SYSCALL_TABLE(sys_epoll_pwait, sys_epoll_pwait, 319, 6) +#endif +#ifndef OVERRIDE_TABLE_32_sys_utimensat +TRACE_SYSCALL_TABLE(sys_utimensat, sys_utimensat, 320, 4) +#endif +#ifndef OVERRIDE_TABLE_32_sys_signalfd +TRACE_SYSCALL_TABLE(sys_signalfd, sys_signalfd, 321, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_timerfd_settime +TRACE_SYSCALL_TABLE(sys_timerfd_settime, sys_timerfd_settime, 325, 4) +#endif +#ifndef OVERRIDE_TABLE_32_sys_timerfd_gettime +TRACE_SYSCALL_TABLE(sys_timerfd_gettime, sys_timerfd_gettime, 326, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_signalfd4 +TRACE_SYSCALL_TABLE(sys_signalfd4, sys_signalfd4, 327, 4) +#endif +#ifndef OVERRIDE_TABLE_32_sys_pipe2 +TRACE_SYSCALL_TABLE(sys_pipe2, sys_pipe2, 331, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_preadv +TRACE_SYSCALL_TABLE(sys_preadv, sys_preadv, 333, 5) +#endif +#ifndef OVERRIDE_TABLE_32_sys_pwritev +TRACE_SYSCALL_TABLE(sys_pwritev, sys_pwritev, 334, 5) +#endif +#ifndef OVERRIDE_TABLE_32_sys_rt_tgsigqueueinfo +TRACE_SYSCALL_TABLE(sys_rt_tgsigqueueinfo, sys_rt_tgsigqueueinfo, 335, 4) +#endif +#ifndef OVERRIDE_TABLE_32_sys_perf_event_open +TRACE_SYSCALL_TABLE(sys_perf_event_open, sys_perf_event_open, 336, 5) +#endif +#ifndef OVERRIDE_TABLE_32_sys_recvmmsg +TRACE_SYSCALL_TABLE(sys_recvmmsg, sys_recvmmsg, 337, 5) +#endif +#ifndef OVERRIDE_TABLE_32_sys_prlimit64 +TRACE_SYSCALL_TABLE(sys_prlimit64, sys_prlimit64, 340, 4) +#endif +#ifndef OVERRIDE_TABLE_32_sys_clock_adjtime +TRACE_SYSCALL_TABLE(sys_clock_adjtime, sys_clock_adjtime, 343, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_sendmmsg +TRACE_SYSCALL_TABLE(sys_sendmmsg, sys_sendmmsg, 345, 4) +#endif + +#endif /* CREATE_SYSCALL_TABLE */ --- linux-3.11.0.orig/ubuntu/lttng/instrumentation/syscalls/headers/syscalls_integers_override.h +++ linux-3.11.0/ubuntu/lttng/instrumentation/syscalls/headers/syscalls_integers_override.h @@ -0,0 +1,14 @@ +#define OVERRIDE_32_sys_mmap +#define OVERRIDE_64_sys_mmap + +#ifndef CREATE_SYSCALL_TABLE + +SC_TRACE_EVENT(sys_mmap, + TP_PROTO(unsigned long addr, unsigned long len, unsigned long prot, unsigned long flags, unsigned long fd, unsigned long off), + TP_ARGS(addr, len, prot, flags, fd, off), + TP_STRUCT__entry(__field_hex(unsigned long, addr) __field(size_t, len) __field(int, prot) __field(int, flags) __field(int, fd) __field(off_t, offset)), + TP_fast_assign(tp_assign(addr, addr) tp_assign(len, len) tp_assign(prot, prot) tp_assign(flags, flags) tp_assign(fd, fd) tp_assign(offset, off)), + TP_printk() +) + +#endif /* CREATE_SYSCALL_TABLE */ --- linux-3.11.0.orig/ubuntu/lttng/instrumentation/syscalls/headers/mips-64-syscalls-3.5.0_pointers.h +++ linux-3.11.0/ubuntu/lttng/instrumentation/syscalls/headers/mips-64-syscalls-3.5.0_pointers.h @@ -0,0 +1,2232 @@ +/* THIS FILE IS AUTO-GENERATED. DO NOT EDIT */ +#ifndef CREATE_SYSCALL_TABLE + +#if !defined(_TRACE_SYSCALLS_POINTERS_H) || defined(TRACE_HEADER_MULTI_READ) +#define _TRACE_SYSCALLS_POINTERS_H + +#include +#include +#include "mips-64-syscalls-3.5.0_pointers_override.h" +#include "syscalls_pointers_override.h" + +#ifndef OVERRIDE_64_sys_oldumount +SC_TRACE_EVENT(sys_oldumount, + TP_PROTO(char * name), + TP_ARGS(name), + TP_STRUCT__entry(__string_from_user(name, name)), + TP_fast_assign(tp_copy_string_from_user(name, name)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_olduname +SC_TRACE_EVENT(sys_olduname, + TP_PROTO(struct oldold_utsname * name), + TP_ARGS(name), + TP_STRUCT__entry(__field_hex(struct oldold_utsname *, name)), + TP_fast_assign(tp_assign(name, name)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_uselib +SC_TRACE_EVENT(sys_uselib, + TP_PROTO(const char * library), + TP_ARGS(library), + TP_STRUCT__entry(__field_hex(const char *, library)), + TP_fast_assign(tp_assign(library, library)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_uname +SC_TRACE_EVENT(sys_uname, + TP_PROTO(struct old_utsname * name), + TP_ARGS(name), + TP_STRUCT__entry(__field_hex(struct old_utsname *, name)), + TP_fast_assign(tp_assign(name, name)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_sysinfo +SC_TRACE_EVENT(sys_sysinfo, + TP_PROTO(struct sysinfo * info), + TP_ARGS(info), + TP_STRUCT__entry(__field_hex(struct sysinfo *, info)), + TP_fast_assign(tp_assign(info, info)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_times +SC_TRACE_EVENT(sys_times, + TP_PROTO(struct tms * tbuf), + TP_ARGS(tbuf), + TP_STRUCT__entry(__field_hex(struct tms *, tbuf)), + TP_fast_assign(tp_assign(tbuf, tbuf)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_sysctl +SC_TRACE_EVENT(sys_sysctl, + TP_PROTO(struct __sysctl_args * args), + TP_ARGS(args), + TP_STRUCT__entry(__field_hex(struct __sysctl_args *, args)), + TP_fast_assign(tp_assign(args, args)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_adjtimex +SC_TRACE_EVENT(sys_adjtimex, + TP_PROTO(struct timex * txc_p), + TP_ARGS(txc_p), + TP_STRUCT__entry(__field_hex(struct timex *, txc_p)), + TP_fast_assign(tp_assign(txc_p, txc_p)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_newuname +SC_TRACE_EVENT(sys_newuname, + TP_PROTO(struct new_utsname * name), + TP_ARGS(name), + TP_STRUCT__entry(__field_hex(struct new_utsname *, name)), + TP_fast_assign(tp_assign(name, name)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_shmdt +SC_TRACE_EVENT(sys_shmdt, + TP_PROTO(char * shmaddr), + TP_ARGS(shmaddr), + TP_STRUCT__entry(__field_hex(char *, shmaddr)), + TP_fast_assign(tp_assign(shmaddr, shmaddr)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_chdir +SC_TRACE_EVENT(sys_chdir, + TP_PROTO(const char * filename), + TP_ARGS(filename), + TP_STRUCT__entry(__string_from_user(filename, filename)), + TP_fast_assign(tp_copy_string_from_user(filename, filename)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_rmdir +SC_TRACE_EVENT(sys_rmdir, + TP_PROTO(const char * pathname), + TP_ARGS(pathname), + TP_STRUCT__entry(__string_from_user(pathname, pathname)), + TP_fast_assign(tp_copy_string_from_user(pathname, pathname)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_unlink +SC_TRACE_EVENT(sys_unlink, + TP_PROTO(const char * pathname), + TP_ARGS(pathname), + TP_STRUCT__entry(__string_from_user(pathname, pathname)), + TP_fast_assign(tp_copy_string_from_user(pathname, pathname)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_chroot +SC_TRACE_EVENT(sys_chroot, + TP_PROTO(const char * filename), + TP_ARGS(filename), + TP_STRUCT__entry(__string_from_user(filename, filename)), + TP_fast_assign(tp_copy_string_from_user(filename, filename)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_swapoff +SC_TRACE_EVENT(sys_swapoff, + TP_PROTO(const char * specialfile), + TP_ARGS(specialfile), + TP_STRUCT__entry(__string_from_user(specialfile, specialfile)), + TP_fast_assign(tp_copy_string_from_user(specialfile, specialfile)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_set_tid_address +SC_TRACE_EVENT(sys_set_tid_address, + TP_PROTO(int * tidptr), + TP_ARGS(tidptr), + TP_STRUCT__entry(__field_hex(int *, tidptr)), + TP_fast_assign(tp_assign(tidptr, tidptr)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_nanosleep +SC_TRACE_EVENT(sys_nanosleep, + TP_PROTO(struct timespec * rqtp, struct timespec * rmtp), + TP_ARGS(rqtp, rmtp), + TP_STRUCT__entry(__field_hex(struct timespec *, rqtp) __field_hex(struct timespec *, rmtp)), + TP_fast_assign(tp_assign(rqtp, rqtp) tp_assign(rmtp, rmtp)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_getitimer +SC_TRACE_EVENT(sys_getitimer, + TP_PROTO(int which, struct itimerval * value), + TP_ARGS(which, value), + TP_STRUCT__entry(__field(int, which) __field_hex(struct itimerval *, value)), + TP_fast_assign(tp_assign(which, which) tp_assign(value, value)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_gettimeofday +SC_TRACE_EVENT(sys_gettimeofday, + TP_PROTO(struct timeval * tv, struct timezone * tz), + TP_ARGS(tv, tz), + TP_STRUCT__entry(__field_hex(struct timeval *, tv) __field_hex(struct timezone *, tz)), + TP_fast_assign(tp_assign(tv, tv) tp_assign(tz, tz)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_getrlimit +SC_TRACE_EVENT(sys_getrlimit, + TP_PROTO(unsigned int resource, struct rlimit * rlim), + TP_ARGS(resource, rlim), + TP_STRUCT__entry(__field(unsigned int, resource) __field_hex(struct rlimit *, rlim)), + TP_fast_assign(tp_assign(resource, resource) tp_assign(rlim, rlim)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_getrusage +SC_TRACE_EVENT(sys_getrusage, + TP_PROTO(int who, struct rusage * ru), + TP_ARGS(who, ru), + TP_STRUCT__entry(__field(int, who) __field_hex(struct rusage *, ru)), + TP_fast_assign(tp_assign(who, who) tp_assign(ru, ru)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_rt_sigpending +SC_TRACE_EVENT(sys_rt_sigpending, + TP_PROTO(sigset_t * set, size_t sigsetsize), + TP_ARGS(set, sigsetsize), + TP_STRUCT__entry(__field_hex(sigset_t *, set) __field(size_t, sigsetsize)), + TP_fast_assign(tp_assign(set, set) tp_assign(sigsetsize, sigsetsize)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_utime +SC_TRACE_EVENT(sys_utime, + TP_PROTO(char * filename, struct utimbuf * times), + TP_ARGS(filename, times), + TP_STRUCT__entry(__string_from_user(filename, filename) __field_hex(struct utimbuf *, times)), + TP_fast_assign(tp_copy_string_from_user(filename, filename) tp_assign(times, times)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_ustat +SC_TRACE_EVENT(sys_ustat, + TP_PROTO(unsigned dev, struct ustat * ubuf), + TP_ARGS(dev, ubuf), + TP_STRUCT__entry(__field(unsigned, dev) __field_hex(struct ustat *, ubuf)), + TP_fast_assign(tp_assign(dev, dev) tp_assign(ubuf, ubuf)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_statfs +SC_TRACE_EVENT(sys_statfs, + TP_PROTO(const char * pathname, struct statfs * buf), + TP_ARGS(pathname, buf), + TP_STRUCT__entry(__string_from_user(pathname, pathname) __field_hex(struct statfs *, buf)), + TP_fast_assign(tp_copy_string_from_user(pathname, pathname) tp_assign(buf, buf)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_fstatfs +SC_TRACE_EVENT(sys_fstatfs, + TP_PROTO(unsigned int fd, struct statfs * buf), + TP_ARGS(fd, buf), + TP_STRUCT__entry(__field(unsigned int, fd) __field_hex(struct statfs *, buf)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(buf, buf)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_sched_rr_get_interval +SC_TRACE_EVENT(sys_sched_rr_get_interval, + TP_PROTO(pid_t pid, struct timespec * interval), + TP_ARGS(pid, interval), + TP_STRUCT__entry(__field(pid_t, pid) __field_hex(struct timespec *, interval)), + TP_fast_assign(tp_assign(pid, pid) tp_assign(interval, interval)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_setrlimit +SC_TRACE_EVENT(sys_setrlimit, + TP_PROTO(unsigned int resource, struct rlimit * rlim), + TP_ARGS(resource, rlim), + TP_STRUCT__entry(__field(unsigned int, resource) __field_hex(struct rlimit *, rlim)), + TP_fast_assign(tp_assign(resource, resource) tp_assign(rlim, rlim)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_settimeofday +SC_TRACE_EVENT(sys_settimeofday, + TP_PROTO(struct timeval * tv, struct timezone * tz), + TP_ARGS(tv, tz), + TP_STRUCT__entry(__field_hex(struct timeval *, tv) __field_hex(struct timezone *, tz)), + TP_fast_assign(tp_assign(tv, tv) tp_assign(tz, tz)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_io_setup +SC_TRACE_EVENT(sys_io_setup, + TP_PROTO(unsigned nr_events, aio_context_t * ctxp), + TP_ARGS(nr_events, ctxp), + TP_STRUCT__entry(__field(unsigned, nr_events) __field_hex(aio_context_t *, ctxp)), + TP_fast_assign(tp_assign(nr_events, nr_events) tp_assign(ctxp, ctxp)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_timer_gettime +SC_TRACE_EVENT(sys_timer_gettime, + TP_PROTO(timer_t timer_id, struct itimerspec * setting), + TP_ARGS(timer_id, setting), + TP_STRUCT__entry(__field(timer_t, timer_id) __field_hex(struct itimerspec *, setting)), + TP_fast_assign(tp_assign(timer_id, timer_id) tp_assign(setting, setting)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_clock_settime +SC_TRACE_EVENT(sys_clock_settime, + TP_PROTO(const clockid_t which_clock, const struct timespec * tp), + TP_ARGS(which_clock, tp), + TP_STRUCT__entry(__field(const clockid_t, which_clock) __field_hex(const struct timespec *, tp)), + TP_fast_assign(tp_assign(which_clock, which_clock) tp_assign(tp, tp)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_clock_gettime +SC_TRACE_EVENT(sys_clock_gettime, + TP_PROTO(const clockid_t which_clock, struct timespec * tp), + TP_ARGS(which_clock, tp), + TP_STRUCT__entry(__field(const clockid_t, which_clock) __field_hex(struct timespec *, tp)), + TP_fast_assign(tp_assign(which_clock, which_clock) tp_assign(tp, tp)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_clock_getres +SC_TRACE_EVENT(sys_clock_getres, + TP_PROTO(const clockid_t which_clock, struct timespec * tp), + TP_ARGS(which_clock, tp), + TP_STRUCT__entry(__field(const clockid_t, which_clock) __field_hex(struct timespec *, tp)), + TP_fast_assign(tp_assign(which_clock, which_clock) tp_assign(tp, tp)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_utimes +SC_TRACE_EVENT(sys_utimes, + TP_PROTO(char * filename, struct timeval * utimes), + TP_ARGS(filename, utimes), + TP_STRUCT__entry(__string_from_user(filename, filename) __field_hex(struct timeval *, utimes)), + TP_fast_assign(tp_copy_string_from_user(filename, filename) tp_assign(utimes, utimes)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_set_robust_list +SC_TRACE_EVENT(sys_set_robust_list, + TP_PROTO(struct robust_list_head * head, size_t len), + TP_ARGS(head, len), + TP_STRUCT__entry(__field_hex(struct robust_list_head *, head) __field(size_t, len)), + TP_fast_assign(tp_assign(head, head) tp_assign(len, len)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_timerfd_gettime +SC_TRACE_EVENT(sys_timerfd_gettime, + TP_PROTO(int ufd, struct itimerspec * otmr), + TP_ARGS(ufd, otmr), + TP_STRUCT__entry(__field(int, ufd) __field_hex(struct itimerspec *, otmr)), + TP_fast_assign(tp_assign(ufd, ufd) tp_assign(otmr, otmr)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_clock_adjtime +SC_TRACE_EVENT(sys_clock_adjtime, + TP_PROTO(const clockid_t which_clock, struct timex * utx), + TP_ARGS(which_clock, utx), + TP_STRUCT__entry(__field(const clockid_t, which_clock) __field_hex(struct timex *, utx)), + TP_fast_assign(tp_assign(which_clock, which_clock) tp_assign(utx, utx)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_newstat +SC_TRACE_EVENT(sys_newstat, + TP_PROTO(const char * filename, struct stat * statbuf), + TP_ARGS(filename, statbuf), + TP_STRUCT__entry(__string_from_user(filename, filename) __field_hex(struct stat *, statbuf)), + TP_fast_assign(tp_copy_string_from_user(filename, filename) tp_assign(statbuf, statbuf)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_newfstat +SC_TRACE_EVENT(sys_newfstat, + TP_PROTO(unsigned int fd, struct stat * statbuf), + TP_ARGS(fd, statbuf), + TP_STRUCT__entry(__field(unsigned int, fd) __field_hex(struct stat *, statbuf)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(statbuf, statbuf)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_newlstat +SC_TRACE_EVENT(sys_newlstat, + TP_PROTO(const char * filename, struct stat * statbuf), + TP_ARGS(filename, statbuf), + TP_STRUCT__entry(__string_from_user(filename, filename) __field_hex(struct stat *, statbuf)), + TP_fast_assign(tp_copy_string_from_user(filename, filename) tp_assign(statbuf, statbuf)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_access +SC_TRACE_EVENT(sys_access, + TP_PROTO(const char * filename, int mode), + TP_ARGS(filename, mode), + TP_STRUCT__entry(__string_from_user(filename, filename) __field(int, mode)), + TP_fast_assign(tp_copy_string_from_user(filename, filename) tp_assign(mode, mode)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_truncate +SC_TRACE_EVENT(sys_truncate, + TP_PROTO(const char * path, long length), + TP_ARGS(path, length), + TP_STRUCT__entry(__string_from_user(path, path) __field(long, length)), + TP_fast_assign(tp_copy_string_from_user(path, path) tp_assign(length, length)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_getcwd +SC_TRACE_EVENT(sys_getcwd, + TP_PROTO(char * buf, unsigned long size), + TP_ARGS(buf, size), + TP_STRUCT__entry(__field_hex(char *, buf) __field(unsigned long, size)), + TP_fast_assign(tp_assign(buf, buf) tp_assign(size, size)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_rename +SC_TRACE_EVENT(sys_rename, + TP_PROTO(const char * oldname, const char * newname), + TP_ARGS(oldname, newname), + TP_STRUCT__entry(__string_from_user(oldname, oldname) __string_from_user(newname, newname)), + TP_fast_assign(tp_copy_string_from_user(oldname, oldname) tp_copy_string_from_user(newname, newname)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_mkdir +SC_TRACE_EVENT(sys_mkdir, + TP_PROTO(const char * pathname, umode_t mode), + TP_ARGS(pathname, mode), + TP_STRUCT__entry(__string_from_user(pathname, pathname) __field(umode_t, mode)), + TP_fast_assign(tp_copy_string_from_user(pathname, pathname) tp_assign(mode, mode)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_creat +SC_TRACE_EVENT(sys_creat, + TP_PROTO(const char * pathname, umode_t mode), + TP_ARGS(pathname, mode), + TP_STRUCT__entry(__string_from_user(pathname, pathname) __field(umode_t, mode)), + TP_fast_assign(tp_copy_string_from_user(pathname, pathname) tp_assign(mode, mode)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_link +SC_TRACE_EVENT(sys_link, + TP_PROTO(const char * oldname, const char * newname), + TP_ARGS(oldname, newname), + TP_STRUCT__entry(__string_from_user(oldname, oldname) __string_from_user(newname, newname)), + TP_fast_assign(tp_copy_string_from_user(oldname, oldname) tp_copy_string_from_user(newname, newname)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_symlink +SC_TRACE_EVENT(sys_symlink, + TP_PROTO(const char * oldname, const char * newname), + TP_ARGS(oldname, newname), + TP_STRUCT__entry(__string_from_user(oldname, oldname) __string_from_user(newname, newname)), + TP_fast_assign(tp_copy_string_from_user(oldname, oldname) tp_copy_string_from_user(newname, newname)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_chmod +SC_TRACE_EVENT(sys_chmod, + TP_PROTO(const char * filename, umode_t mode), + TP_ARGS(filename, mode), + TP_STRUCT__entry(__string_from_user(filename, filename) __field(umode_t, mode)), + TP_fast_assign(tp_copy_string_from_user(filename, filename) tp_assign(mode, mode)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_getgroups +SC_TRACE_EVENT(sys_getgroups, + TP_PROTO(int gidsetsize, gid_t * grouplist), + TP_ARGS(gidsetsize, grouplist), + TP_STRUCT__entry(__field(int, gidsetsize) __field_hex(gid_t *, grouplist)), + TP_fast_assign(tp_assign(gidsetsize, gidsetsize) tp_assign(grouplist, grouplist)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_setgroups +SC_TRACE_EVENT(sys_setgroups, + TP_PROTO(int gidsetsize, gid_t * grouplist), + TP_ARGS(gidsetsize, grouplist), + TP_STRUCT__entry(__field(int, gidsetsize) __field_hex(gid_t *, grouplist)), + TP_fast_assign(tp_assign(gidsetsize, gidsetsize) tp_assign(grouplist, grouplist)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_32_rt_sigpending +SC_TRACE_EVENT(sys_32_rt_sigpending, + TP_PROTO(compat_sigset_t * uset, unsigned int sigsetsize), + TP_ARGS(uset, sigsetsize), + TP_STRUCT__entry(__field_hex(compat_sigset_t *, uset) __field(unsigned int, sigsetsize)), + TP_fast_assign(tp_assign(uset, uset) tp_assign(sigsetsize, sigsetsize)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_sched_setparam +SC_TRACE_EVENT(sys_sched_setparam, + TP_PROTO(pid_t pid, struct sched_param * param), + TP_ARGS(pid, param), + TP_STRUCT__entry(__field(pid_t, pid) __field_hex(struct sched_param *, param)), + TP_fast_assign(tp_assign(pid, pid) tp_assign(param, param)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_sched_getparam +SC_TRACE_EVENT(sys_sched_getparam, + TP_PROTO(pid_t pid, struct sched_param * param), + TP_ARGS(pid, param), + TP_STRUCT__entry(__field(pid_t, pid) __field_hex(struct sched_param *, param)), + TP_fast_assign(tp_assign(pid, pid) tp_assign(param, param)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_32_sched_rr_get_interval +SC_TRACE_EVENT(sys_32_sched_rr_get_interval, + TP_PROTO(compat_pid_t pid, struct compat_timespec * interval), + TP_ARGS(pid, interval), + TP_STRUCT__entry(__field(compat_pid_t, pid) __field_hex(struct compat_timespec *, interval)), + TP_fast_assign(tp_assign(pid, pid) tp_assign(interval, interval)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_pivot_root +SC_TRACE_EVENT(sys_pivot_root, + TP_PROTO(const char * new_root, const char * put_old), + TP_ARGS(new_root, put_old), + TP_STRUCT__entry(__string_from_user(new_root, new_root) __string_from_user(put_old, put_old)), + TP_fast_assign(tp_copy_string_from_user(new_root, new_root) tp_copy_string_from_user(put_old, put_old)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_umount +SC_TRACE_EVENT(sys_umount, + TP_PROTO(char * name, int flags), + TP_ARGS(name, flags), + TP_STRUCT__entry(__string_from_user(name, name) __field(int, flags)), + TP_fast_assign(tp_copy_string_from_user(name, name) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_swapon +SC_TRACE_EVENT(sys_swapon, + TP_PROTO(const char * specialfile, int swap_flags), + TP_ARGS(specialfile, swap_flags), + TP_STRUCT__entry(__string_from_user(specialfile, specialfile) __field(int, swap_flags)), + TP_fast_assign(tp_copy_string_from_user(specialfile, specialfile) tp_assign(swap_flags, swap_flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_sethostname +SC_TRACE_EVENT(sys_sethostname, + TP_PROTO(char * name, int len), + TP_ARGS(name, len), + TP_STRUCT__entry(__string_from_user(name, name) __field(int, len)), + TP_fast_assign(tp_copy_string_from_user(name, name) tp_assign(len, len)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_setdomainname +SC_TRACE_EVENT(sys_setdomainname, + TP_PROTO(char * name, int len), + TP_ARGS(name, len), + TP_STRUCT__entry(__string_from_user(name, name) __field(int, len)), + TP_fast_assign(tp_copy_string_from_user(name, name) tp_assign(len, len)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_delete_module +SC_TRACE_EVENT(sys_delete_module, + TP_PROTO(const char * name_user, unsigned int flags), + TP_ARGS(name_user, flags), + TP_STRUCT__entry(__string_from_user(name_user, name_user) __field(unsigned int, flags)), + TP_fast_assign(tp_copy_string_from_user(name_user, name_user) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_removexattr +SC_TRACE_EVENT(sys_removexattr, + TP_PROTO(const char * pathname, const char * name), + TP_ARGS(pathname, name), + TP_STRUCT__entry(__string_from_user(pathname, pathname) __string_from_user(name, name)), + TP_fast_assign(tp_copy_string_from_user(pathname, pathname) tp_copy_string_from_user(name, name)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_lremovexattr +SC_TRACE_EVENT(sys_lremovexattr, + TP_PROTO(const char * pathname, const char * name), + TP_ARGS(pathname, name), + TP_STRUCT__entry(__string_from_user(pathname, pathname) __string_from_user(name, name)), + TP_fast_assign(tp_copy_string_from_user(pathname, pathname) tp_copy_string_from_user(name, name)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_fremovexattr +SC_TRACE_EVENT(sys_fremovexattr, + TP_PROTO(int fd, const char * name), + TP_ARGS(fd, name), + TP_STRUCT__entry(__field(int, fd) __string_from_user(name, name)), + TP_fast_assign(tp_assign(fd, fd) tp_copy_string_from_user(name, name)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_pipe2 +SC_TRACE_EVENT(sys_pipe2, + TP_PROTO(int * fildes, int flags), + TP_ARGS(fildes, flags), + TP_STRUCT__entry(__field_hex(int *, fildes) __field(int, flags)), + TP_fast_assign(tp_assign(fildes, fildes) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_waitpid +SC_TRACE_EVENT(sys_waitpid, + TP_PROTO(pid_t pid, int * stat_addr, int options), + TP_ARGS(pid, stat_addr, options), + TP_STRUCT__entry(__field(pid_t, pid) __field_hex(int *, stat_addr) __field(int, options)), + TP_fast_assign(tp_assign(pid, pid) tp_assign(stat_addr, stat_addr) tp_assign(options, options)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_32_sigaction +SC_TRACE_EVENT(sys_32_sigaction, + TP_PROTO(long sig, const struct sigaction32 * act, struct sigaction32 * oact), + TP_ARGS(sig, act, oact), + TP_STRUCT__entry(__field(long, sig) __field_hex(const struct sigaction32 *, act) __field_hex(struct sigaction32 *, oact)), + TP_fast_assign(tp_assign(sig, sig) tp_assign(act, act) tp_assign(oact, oact)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_readv +SC_TRACE_EVENT(sys_readv, + TP_PROTO(unsigned long fd, const struct iovec * vec, unsigned long vlen), + TP_ARGS(fd, vec, vlen), + TP_STRUCT__entry(__field(unsigned long, fd) __field_hex(const struct iovec *, vec) __field(unsigned long, vlen)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(vec, vec) tp_assign(vlen, vlen)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_writev +SC_TRACE_EVENT(sys_writev, + TP_PROTO(unsigned long fd, const struct iovec * vec, unsigned long vlen), + TP_ARGS(fd, vec, vlen), + TP_STRUCT__entry(__field(unsigned long, fd) __field_hex(const struct iovec *, vec) __field(unsigned long, vlen)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(vec, vec) tp_assign(vlen, vlen)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_shmctl +SC_TRACE_EVENT(sys_shmctl, + TP_PROTO(int shmid, int cmd, struct shmid_ds * buf), + TP_ARGS(shmid, cmd, buf), + TP_STRUCT__entry(__field(int, shmid) __field(int, cmd) __field_hex(struct shmid_ds *, buf)), + TP_fast_assign(tp_assign(shmid, shmid) tp_assign(cmd, cmd) tp_assign(buf, buf)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_setitimer +SC_TRACE_EVENT(sys_setitimer, + TP_PROTO(int which, struct itimerval * value, struct itimerval * ovalue), + TP_ARGS(which, value, ovalue), + TP_STRUCT__entry(__field(int, which) __field_hex(struct itimerval *, value) __field_hex(struct itimerval *, ovalue)), + TP_fast_assign(tp_assign(which, which) tp_assign(value, value) tp_assign(ovalue, ovalue)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_sendmsg +SC_TRACE_EVENT(sys_sendmsg, + TP_PROTO(int fd, struct msghdr * msg, unsigned int flags), + TP_ARGS(fd, msg, flags), + TP_STRUCT__entry(__field(int, fd) __field_hex(struct msghdr *, msg) __field(unsigned int, flags)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(msg, msg) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_recvmsg +SC_TRACE_EVENT(sys_recvmsg, + TP_PROTO(int fd, struct msghdr * msg, unsigned int flags), + TP_ARGS(fd, msg, flags), + TP_STRUCT__entry(__field(int, fd) __field_hex(struct msghdr *, msg) __field(unsigned int, flags)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(msg, msg) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_msgctl +SC_TRACE_EVENT(sys_msgctl, + TP_PROTO(int msqid, int cmd, struct msqid_ds * buf), + TP_ARGS(msqid, cmd, buf), + TP_STRUCT__entry(__field(int, msqid) __field(int, cmd) __field_hex(struct msqid_ds *, buf)), + TP_fast_assign(tp_assign(msqid, msqid) tp_assign(cmd, cmd) tp_assign(buf, buf)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_getdents +SC_TRACE_EVENT(sys_getdents, + TP_PROTO(unsigned int fd, struct linux_dirent * dirent, unsigned int count), + TP_ARGS(fd, dirent, count), + TP_STRUCT__entry(__field(unsigned int, fd) __field_hex(struct linux_dirent *, dirent) __field(unsigned int, count)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(dirent, dirent) tp_assign(count, count)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_rt_sigqueueinfo +SC_TRACE_EVENT(sys_rt_sigqueueinfo, + TP_PROTO(pid_t pid, int sig, siginfo_t * uinfo), + TP_ARGS(pid, sig, uinfo), + TP_STRUCT__entry(__field(pid_t, pid) __field(int, sig) __field_hex(siginfo_t *, uinfo)), + TP_fast_assign(tp_assign(pid, pid) tp_assign(sig, sig) tp_assign(uinfo, uinfo)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_sched_setaffinity +SC_TRACE_EVENT(sys_sched_setaffinity, + TP_PROTO(pid_t pid, unsigned int len, unsigned long * user_mask_ptr), + TP_ARGS(pid, len, user_mask_ptr), + TP_STRUCT__entry(__field(pid_t, pid) __field(unsigned int, len) __field_hex(unsigned long *, user_mask_ptr)), + TP_fast_assign(tp_assign(pid, pid) tp_assign(len, len) tp_assign(user_mask_ptr, user_mask_ptr)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_sched_getaffinity +SC_TRACE_EVENT(sys_sched_getaffinity, + TP_PROTO(pid_t pid, unsigned int len, unsigned long * user_mask_ptr), + TP_ARGS(pid, len, user_mask_ptr), + TP_STRUCT__entry(__field(pid_t, pid) __field(unsigned int, len) __field_hex(unsigned long *, user_mask_ptr)), + TP_fast_assign(tp_assign(pid, pid) tp_assign(len, len) tp_assign(user_mask_ptr, user_mask_ptr)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_io_submit +SC_TRACE_EVENT(sys_io_submit, + TP_PROTO(aio_context_t ctx_id, long nr, struct iocb * * iocbpp), + TP_ARGS(ctx_id, nr, iocbpp), + TP_STRUCT__entry(__field(aio_context_t, ctx_id) __field(long, nr) __field_hex(struct iocb * *, iocbpp)), + TP_fast_assign(tp_assign(ctx_id, ctx_id) tp_assign(nr, nr) tp_assign(iocbpp, iocbpp)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_timer_create +SC_TRACE_EVENT(sys_timer_create, + TP_PROTO(const clockid_t which_clock, struct sigevent * timer_event_spec, timer_t * created_timer_id), + TP_ARGS(which_clock, timer_event_spec, created_timer_id), + TP_STRUCT__entry(__field(const clockid_t, which_clock) __field_hex(struct sigevent *, timer_event_spec) __field_hex(timer_t *, created_timer_id)), + TP_fast_assign(tp_assign(which_clock, which_clock) tp_assign(timer_event_spec, timer_event_spec) tp_assign(created_timer_id, created_timer_id)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_futimesat +SC_TRACE_EVENT(sys_futimesat, + TP_PROTO(int dfd, const char * filename, struct timeval * utimes), + TP_ARGS(dfd, filename, utimes), + TP_STRUCT__entry(__field(int, dfd) __string_from_user(filename, filename) __field_hex(struct timeval *, utimes)), + TP_fast_assign(tp_assign(dfd, dfd) tp_copy_string_from_user(filename, filename) tp_assign(utimes, utimes)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_get_robust_list +SC_TRACE_EVENT(sys_get_robust_list, + TP_PROTO(int pid, struct robust_list_head * * head_ptr, size_t * len_ptr), + TP_ARGS(pid, head_ptr, len_ptr), + TP_STRUCT__entry(__field(int, pid) __field_hex(struct robust_list_head * *, head_ptr) __field_hex(size_t *, len_ptr)), + TP_fast_assign(tp_assign(pid, pid) tp_assign(head_ptr, head_ptr) tp_assign(len_ptr, len_ptr)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_signalfd +SC_TRACE_EVENT(sys_signalfd, + TP_PROTO(int ufd, sigset_t * user_mask, size_t sizemask), + TP_ARGS(ufd, user_mask, sizemask), + TP_STRUCT__entry(__field(int, ufd) __field_hex(sigset_t *, user_mask) __field(size_t, sizemask)), + TP_fast_assign(tp_assign(ufd, ufd) tp_assign(user_mask, user_mask) tp_assign(sizemask, sizemask)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_read +SC_TRACE_EVENT(sys_read, + TP_PROTO(unsigned int fd, char * buf, size_t count), + TP_ARGS(fd, buf, count), + TP_STRUCT__entry(__field(unsigned int, fd) __field_hex(char *, buf) __field(size_t, count)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(buf, buf) tp_assign(count, count)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_write +SC_TRACE_EVENT(sys_write, + TP_PROTO(unsigned int fd, const char * buf, size_t count), + TP_ARGS(fd, buf, count), + TP_STRUCT__entry(__field(unsigned int, fd) __field_hex(const char *, buf) __field(size_t, count)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(buf, buf) tp_assign(count, count)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_open +SC_TRACE_EVENT(sys_open, + TP_PROTO(const char * filename, int flags, umode_t mode), + TP_ARGS(filename, flags, mode), + TP_STRUCT__entry(__string_from_user(filename, filename) __field(int, flags) __field(umode_t, mode)), + TP_fast_assign(tp_copy_string_from_user(filename, filename) tp_assign(flags, flags) tp_assign(mode, mode)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_poll +SC_TRACE_EVENT(sys_poll, + TP_PROTO(struct pollfd * ufds, unsigned int nfds, int timeout_msecs), + TP_ARGS(ufds, nfds, timeout_msecs), + TP_STRUCT__entry(__field_hex(struct pollfd *, ufds) __field(unsigned int, nfds) __field(int, timeout_msecs)), + TP_fast_assign(tp_assign(ufds, ufds) tp_assign(nfds, nfds) tp_assign(timeout_msecs, timeout_msecs)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_mincore +SC_TRACE_EVENT(sys_mincore, + TP_PROTO(unsigned long start, size_t len, unsigned char * vec), + TP_ARGS(start, len, vec), + TP_STRUCT__entry(__field(unsigned long, start) __field(size_t, len) __field_hex(unsigned char *, vec)), + TP_fast_assign(tp_assign(start, start) tp_assign(len, len) tp_assign(vec, vec)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_shmat +SC_TRACE_EVENT(sys_shmat, + TP_PROTO(int shmid, char * shmaddr, int shmflg), + TP_ARGS(shmid, shmaddr, shmflg), + TP_STRUCT__entry(__field(int, shmid) __field_hex(char *, shmaddr) __field(int, shmflg)), + TP_fast_assign(tp_assign(shmid, shmid) tp_assign(shmaddr, shmaddr) tp_assign(shmflg, shmflg)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_connect +SC_TRACE_EVENT(sys_connect, + TP_PROTO(int fd, struct sockaddr * uservaddr, int addrlen), + TP_ARGS(fd, uservaddr, addrlen), + TP_STRUCT__entry(__field(int, fd) __field_hex(struct sockaddr *, uservaddr) __field_hex(int, addrlen)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(uservaddr, uservaddr) tp_assign(addrlen, addrlen)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_accept +SC_TRACE_EVENT(sys_accept, + TP_PROTO(int fd, struct sockaddr * upeer_sockaddr, int * upeer_addrlen), + TP_ARGS(fd, upeer_sockaddr, upeer_addrlen), + TP_STRUCT__entry(__field(int, fd) __field_hex(struct sockaddr *, upeer_sockaddr) __field_hex(int *, upeer_addrlen)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(upeer_sockaddr, upeer_sockaddr) tp_assign(upeer_addrlen, upeer_addrlen)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_bind +SC_TRACE_EVENT(sys_bind, + TP_PROTO(int fd, struct sockaddr * umyaddr, int addrlen), + TP_ARGS(fd, umyaddr, addrlen), + TP_STRUCT__entry(__field(int, fd) __field_hex(struct sockaddr *, umyaddr) __field_hex(int, addrlen)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(umyaddr, umyaddr) tp_assign(addrlen, addrlen)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_getsockname +SC_TRACE_EVENT(sys_getsockname, + TP_PROTO(int fd, struct sockaddr * usockaddr, int * usockaddr_len), + TP_ARGS(fd, usockaddr, usockaddr_len), + TP_STRUCT__entry(__field(int, fd) __field_hex(struct sockaddr *, usockaddr) __field_hex(int *, usockaddr_len)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(usockaddr, usockaddr) tp_assign(usockaddr_len, usockaddr_len)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_getpeername +SC_TRACE_EVENT(sys_getpeername, + TP_PROTO(int fd, struct sockaddr * usockaddr, int * usockaddr_len), + TP_ARGS(fd, usockaddr, usockaddr_len), + TP_STRUCT__entry(__field(int, fd) __field_hex(struct sockaddr *, usockaddr) __field_hex(int *, usockaddr_len)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(usockaddr, usockaddr) tp_assign(usockaddr_len, usockaddr_len)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_semop +SC_TRACE_EVENT(sys_semop, + TP_PROTO(int semid, struct sembuf * tsops, unsigned nsops), + TP_ARGS(semid, tsops, nsops), + TP_STRUCT__entry(__field(int, semid) __field_hex(struct sembuf *, tsops) __field(unsigned, nsops)), + TP_fast_assign(tp_assign(semid, semid) tp_assign(tsops, tsops) tp_assign(nsops, nsops)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_readlink +SC_TRACE_EVENT(sys_readlink, + TP_PROTO(const char * path, char * buf, int bufsiz), + TP_ARGS(path, buf, bufsiz), + TP_STRUCT__entry(__string_from_user(path, path) __field_hex(char *, buf) __field(int, bufsiz)), + TP_fast_assign(tp_copy_string_from_user(path, path) tp_assign(buf, buf) tp_assign(bufsiz, bufsiz)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_chown +SC_TRACE_EVENT(sys_chown, + TP_PROTO(const char * filename, uid_t user, gid_t group), + TP_ARGS(filename, user, group), + TP_STRUCT__entry(__string_from_user(filename, filename) __field(uid_t, user) __field(gid_t, group)), + TP_fast_assign(tp_copy_string_from_user(filename, filename) tp_assign(user, user) tp_assign(group, group)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_lchown +SC_TRACE_EVENT(sys_lchown, + TP_PROTO(const char * filename, uid_t user, gid_t group), + TP_ARGS(filename, user, group), + TP_STRUCT__entry(__string_from_user(filename, filename) __field(uid_t, user) __field(gid_t, group)), + TP_fast_assign(tp_copy_string_from_user(filename, filename) tp_assign(user, user) tp_assign(group, group)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_syslog +SC_TRACE_EVENT(sys_syslog, + TP_PROTO(int type, char * buf, int len), + TP_ARGS(type, buf, len), + TP_STRUCT__entry(__field(int, type) __field_hex(char *, buf) __field(int, len)), + TP_fast_assign(tp_assign(type, type) tp_assign(buf, buf) tp_assign(len, len)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_getresuid +SC_TRACE_EVENT(sys_getresuid, + TP_PROTO(uid_t * ruidp, uid_t * euidp, uid_t * suidp), + TP_ARGS(ruidp, euidp, suidp), + TP_STRUCT__entry(__field_hex(uid_t *, ruidp) __field_hex(uid_t *, euidp) __field_hex(uid_t *, suidp)), + TP_fast_assign(tp_assign(ruidp, ruidp) tp_assign(euidp, euidp) tp_assign(suidp, suidp)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_getresgid +SC_TRACE_EVENT(sys_getresgid, + TP_PROTO(gid_t * rgidp, gid_t * egidp, gid_t * sgidp), + TP_ARGS(rgidp, egidp, sgidp), + TP_STRUCT__entry(__field_hex(gid_t *, rgidp) __field_hex(gid_t *, egidp) __field_hex(gid_t *, sgidp)), + TP_fast_assign(tp_assign(rgidp, rgidp) tp_assign(egidp, egidp) tp_assign(sgidp, sgidp)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_32_rt_sigqueueinfo +SC_TRACE_EVENT(sys_32_rt_sigqueueinfo, + TP_PROTO(int pid, int sig, compat_siginfo_t * uinfo), + TP_ARGS(pid, sig, uinfo), + TP_STRUCT__entry(__field(int, pid) __field(int, sig) __field_hex(compat_siginfo_t *, uinfo)), + TP_fast_assign(tp_assign(pid, pid) tp_assign(sig, sig) tp_assign(uinfo, uinfo)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_mknod +SC_TRACE_EVENT(sys_mknod, + TP_PROTO(const char * filename, umode_t mode, unsigned dev), + TP_ARGS(filename, mode, dev), + TP_STRUCT__entry(__string_from_user(filename, filename) __field(umode_t, mode) __field(unsigned, dev)), + TP_fast_assign(tp_copy_string_from_user(filename, filename) tp_assign(mode, mode) tp_assign(dev, dev)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_sched_setscheduler +SC_TRACE_EVENT(sys_sched_setscheduler, + TP_PROTO(pid_t pid, int policy, struct sched_param * param), + TP_ARGS(pid, policy, param), + TP_STRUCT__entry(__field(pid_t, pid) __field(int, policy) __field_hex(struct sched_param *, param)), + TP_fast_assign(tp_assign(pid, pid) tp_assign(policy, policy) tp_assign(param, param)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_init_module +SC_TRACE_EVENT(sys_init_module, + TP_PROTO(void * umod, unsigned long len, const char * uargs), + TP_ARGS(umod, len, uargs), + TP_STRUCT__entry(__field_hex(void *, umod) __field(unsigned long, len) __field_hex(const char *, uargs)), + TP_fast_assign(tp_assign(umod, umod) tp_assign(len, len) tp_assign(uargs, uargs)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_listxattr +SC_TRACE_EVENT(sys_listxattr, + TP_PROTO(const char * pathname, char * list, size_t size), + TP_ARGS(pathname, list, size), + TP_STRUCT__entry(__string_from_user(pathname, pathname) __field_hex(char *, list) __field(size_t, size)), + TP_fast_assign(tp_copy_string_from_user(pathname, pathname) tp_assign(list, list) tp_assign(size, size)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_llistxattr +SC_TRACE_EVENT(sys_llistxattr, + TP_PROTO(const char * pathname, char * list, size_t size), + TP_ARGS(pathname, list, size), + TP_STRUCT__entry(__string_from_user(pathname, pathname) __field_hex(char *, list) __field(size_t, size)), + TP_fast_assign(tp_copy_string_from_user(pathname, pathname) tp_assign(list, list) tp_assign(size, size)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_flistxattr +SC_TRACE_EVENT(sys_flistxattr, + TP_PROTO(int fd, char * list, size_t size), + TP_ARGS(fd, list, size), + TP_STRUCT__entry(__field(int, fd) __field_hex(char *, list) __field(size_t, size)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(list, list) tp_assign(size, size)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_cachectl +SC_TRACE_EVENT(sys_cachectl, + TP_PROTO(char * addr, int nbytes, int op), + TP_ARGS(addr, nbytes, op), + TP_STRUCT__entry(__field_hex(char *, addr) __field(int, nbytes) __field(int, op)), + TP_fast_assign(tp_assign(addr, addr) tp_assign(nbytes, nbytes) tp_assign(op, op)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_io_cancel +SC_TRACE_EVENT(sys_io_cancel, + TP_PROTO(aio_context_t ctx_id, struct iocb * iocb, struct io_event * result), + TP_ARGS(ctx_id, iocb, result), + TP_STRUCT__entry(__field(aio_context_t, ctx_id) __field_hex(struct iocb *, iocb) __field_hex(struct io_event *, result)), + TP_fast_assign(tp_assign(ctx_id, ctx_id) tp_assign(iocb, iocb) tp_assign(result, result)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_inotify_add_watch +SC_TRACE_EVENT(sys_inotify_add_watch, + TP_PROTO(int fd, const char * pathname, u32 mask), + TP_ARGS(fd, pathname, mask), + TP_STRUCT__entry(__field(int, fd) __string_from_user(pathname, pathname) __field(u32, mask)), + TP_fast_assign(tp_assign(fd, fd) tp_copy_string_from_user(pathname, pathname) tp_assign(mask, mask)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_mkdirat +SC_TRACE_EVENT(sys_mkdirat, + TP_PROTO(int dfd, const char * pathname, umode_t mode), + TP_ARGS(dfd, pathname, mode), + TP_STRUCT__entry(__field(int, dfd) __string_from_user(pathname, pathname) __field(umode_t, mode)), + TP_fast_assign(tp_assign(dfd, dfd) tp_copy_string_from_user(pathname, pathname) tp_assign(mode, mode)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_unlinkat +SC_TRACE_EVENT(sys_unlinkat, + TP_PROTO(int dfd, const char * pathname, int flag), + TP_ARGS(dfd, pathname, flag), + TP_STRUCT__entry(__field(int, dfd) __string_from_user(pathname, pathname) __field(int, flag)), + TP_fast_assign(tp_assign(dfd, dfd) tp_copy_string_from_user(pathname, pathname) tp_assign(flag, flag)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_symlinkat +SC_TRACE_EVENT(sys_symlinkat, + TP_PROTO(const char * oldname, int newdfd, const char * newname), + TP_ARGS(oldname, newdfd, newname), + TP_STRUCT__entry(__string_from_user(oldname, oldname) __field(int, newdfd) __string_from_user(newname, newname)), + TP_fast_assign(tp_copy_string_from_user(oldname, oldname) tp_assign(newdfd, newdfd) tp_copy_string_from_user(newname, newname)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_fchmodat +SC_TRACE_EVENT(sys_fchmodat, + TP_PROTO(int dfd, const char * filename, umode_t mode), + TP_ARGS(dfd, filename, mode), + TP_STRUCT__entry(__field(int, dfd) __string_from_user(filename, filename) __field(umode_t, mode)), + TP_fast_assign(tp_assign(dfd, dfd) tp_copy_string_from_user(filename, filename) tp_assign(mode, mode)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_faccessat +SC_TRACE_EVENT(sys_faccessat, + TP_PROTO(int dfd, const char * filename, int mode), + TP_ARGS(dfd, filename, mode), + TP_STRUCT__entry(__field(int, dfd) __string_from_user(filename, filename) __field(int, mode)), + TP_fast_assign(tp_assign(dfd, dfd) tp_copy_string_from_user(filename, filename) tp_assign(mode, mode)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_getcpu +SC_TRACE_EVENT(sys_getcpu, + TP_PROTO(unsigned * cpup, unsigned * nodep, struct getcpu_cache * unused), + TP_ARGS(cpup, nodep, unused), + TP_STRUCT__entry(__field_hex(unsigned *, cpup) __field_hex(unsigned *, nodep) __field_hex(struct getcpu_cache *, unused)), + TP_fast_assign(tp_assign(cpup, cpup) tp_assign(nodep, nodep) tp_assign(unused, unused)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_getdents64 +SC_TRACE_EVENT(sys_getdents64, + TP_PROTO(unsigned int fd, struct linux_dirent64 * dirent, unsigned int count), + TP_ARGS(fd, dirent, count), + TP_STRUCT__entry(__field(unsigned int, fd) __field_hex(struct linux_dirent64 *, dirent) __field(unsigned int, count)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(dirent, dirent) tp_assign(count, count)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_send +SC_TRACE_EVENT(sys_send, + TP_PROTO(int fd, void * buff, size_t len, unsigned int flags), + TP_ARGS(fd, buff, len, flags), + TP_STRUCT__entry(__field(int, fd) __field_hex(void *, buff) __field(size_t, len) __field(unsigned int, flags)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(buff, buff) tp_assign(len, len) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_32_truncate64 +SC_TRACE_EVENT(sys_32_truncate64, + TP_PROTO(const char * path, unsigned long __dummy, unsigned long a2, unsigned long a3), + TP_ARGS(path, __dummy, a2, a3), + TP_STRUCT__entry(__string_from_user(path, path) __field(unsigned long, __dummy) __field(unsigned long, a2) __field(unsigned long, a3)), + TP_fast_assign(tp_copy_string_from_user(path, path) tp_assign(__dummy, __dummy) tp_assign(a2, a2) tp_assign(a3, a3)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_rt_sigaction +SC_TRACE_EVENT(sys_rt_sigaction, + TP_PROTO(int sig, const struct sigaction * act, struct sigaction * oact, size_t sigsetsize), + TP_ARGS(sig, act, oact, sigsetsize), + TP_STRUCT__entry(__field(int, sig) __field_hex(const struct sigaction *, act) __field_hex(struct sigaction *, oact) __field(size_t, sigsetsize)), + TP_fast_assign(tp_assign(sig, sig) tp_assign(act, act) tp_assign(oact, oact) tp_assign(sigsetsize, sigsetsize)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_rt_sigprocmask +SC_TRACE_EVENT(sys_rt_sigprocmask, + TP_PROTO(int how, sigset_t * nset, sigset_t * oset, size_t sigsetsize), + TP_ARGS(how, nset, oset, sigsetsize), + TP_STRUCT__entry(__field(int, how) __field_hex(sigset_t *, nset) __field_hex(sigset_t *, oset) __field(size_t, sigsetsize)), + TP_fast_assign(tp_assign(how, how) tp_assign(nset, nset) tp_assign(oset, oset) tp_assign(sigsetsize, sigsetsize)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_wait4 +SC_TRACE_EVENT(sys_wait4, + TP_PROTO(pid_t upid, int * stat_addr, int options, struct rusage * ru), + TP_ARGS(upid, stat_addr, options, ru), + TP_STRUCT__entry(__field(pid_t, upid) __field_hex(int *, stat_addr) __field(int, options) __field_hex(struct rusage *, ru)), + TP_fast_assign(tp_assign(upid, upid) tp_assign(stat_addr, stat_addr) tp_assign(options, options) tp_assign(ru, ru)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_msgsnd +SC_TRACE_EVENT(sys_msgsnd, + TP_PROTO(int msqid, struct msgbuf * msgp, size_t msgsz, int msgflg), + TP_ARGS(msqid, msgp, msgsz, msgflg), + TP_STRUCT__entry(__field(int, msqid) __field_hex(struct msgbuf *, msgp) __field(size_t, msgsz) __field(int, msgflg)), + TP_fast_assign(tp_assign(msqid, msqid) tp_assign(msgp, msgp) tp_assign(msgsz, msgsz) tp_assign(msgflg, msgflg)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_rt_sigtimedwait +SC_TRACE_EVENT(sys_rt_sigtimedwait, + TP_PROTO(const sigset_t * uthese, siginfo_t * uinfo, const struct timespec * uts, size_t sigsetsize), + TP_ARGS(uthese, uinfo, uts, sigsetsize), + TP_STRUCT__entry(__field_hex(const sigset_t *, uthese) __field_hex(siginfo_t *, uinfo) __field_hex(const struct timespec *, uts) __field(size_t, sigsetsize)), + TP_fast_assign(tp_assign(uthese, uthese) tp_assign(uinfo, uinfo) tp_assign(uts, uts) tp_assign(sigsetsize, sigsetsize)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_semtimedop +SC_TRACE_EVENT(sys_semtimedop, + TP_PROTO(int semid, struct sembuf * tsops, unsigned nsops, const struct timespec * timeout), + TP_ARGS(semid, tsops, nsops, timeout), + TP_STRUCT__entry(__field(int, semid) __field_hex(struct sembuf *, tsops) __field(unsigned, nsops) __field_hex(const struct timespec *, timeout)), + TP_fast_assign(tp_assign(semid, semid) tp_assign(tsops, tsops) tp_assign(nsops, nsops) tp_assign(timeout, timeout)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_timer_settime +SC_TRACE_EVENT(sys_timer_settime, + TP_PROTO(timer_t timer_id, int flags, const struct itimerspec * new_setting, struct itimerspec * old_setting), + TP_ARGS(timer_id, flags, new_setting, old_setting), + TP_STRUCT__entry(__field(timer_t, timer_id) __field(int, flags) __field_hex(const struct itimerspec *, new_setting) __field_hex(struct itimerspec *, old_setting)), + TP_fast_assign(tp_assign(timer_id, timer_id) tp_assign(flags, flags) tp_assign(new_setting, new_setting) tp_assign(old_setting, old_setting)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_clock_nanosleep +SC_TRACE_EVENT(sys_clock_nanosleep, + TP_PROTO(const clockid_t which_clock, int flags, const struct timespec * rqtp, struct timespec * rmtp), + TP_ARGS(which_clock, flags, rqtp, rmtp), + TP_STRUCT__entry(__field(const clockid_t, which_clock) __field(int, flags) __field_hex(const struct timespec *, rqtp) __field_hex(struct timespec *, rmtp)), + TP_fast_assign(tp_assign(which_clock, which_clock) tp_assign(flags, flags) tp_assign(rqtp, rqtp) tp_assign(rmtp, rmtp)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_vmsplice +SC_TRACE_EVENT(sys_vmsplice, + TP_PROTO(int fd, const struct iovec * iov, unsigned long nr_segs, unsigned int flags), + TP_ARGS(fd, iov, nr_segs, flags), + TP_STRUCT__entry(__field(int, fd) __field_hex(const struct iovec *, iov) __field(unsigned long, nr_segs) __field(unsigned int, flags)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(iov, iov) tp_assign(nr_segs, nr_segs) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_utimensat +SC_TRACE_EVENT(sys_utimensat, + TP_PROTO(int dfd, const char * filename, struct timespec * utimes, int flags), + TP_ARGS(dfd, filename, utimes, flags), + TP_STRUCT__entry(__field(int, dfd) __string_from_user(filename, filename) __field_hex(struct timespec *, utimes) __field(int, flags)), + TP_fast_assign(tp_assign(dfd, dfd) tp_copy_string_from_user(filename, filename) tp_assign(utimes, utimes) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_timerfd_settime +SC_TRACE_EVENT(sys_timerfd_settime, + TP_PROTO(int ufd, int flags, const struct itimerspec * utmr, struct itimerspec * otmr), + TP_ARGS(ufd, flags, utmr, otmr), + TP_STRUCT__entry(__field(int, ufd) __field(int, flags) __field_hex(const struct itimerspec *, utmr) __field_hex(struct itimerspec *, otmr)), + TP_fast_assign(tp_assign(ufd, ufd) tp_assign(flags, flags) tp_assign(utmr, utmr) tp_assign(otmr, otmr)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_rt_tgsigqueueinfo +SC_TRACE_EVENT(sys_rt_tgsigqueueinfo, + TP_PROTO(pid_t tgid, pid_t pid, int sig, siginfo_t * uinfo), + TP_ARGS(tgid, pid, sig, uinfo), + TP_STRUCT__entry(__field(pid_t, tgid) __field(pid_t, pid) __field(int, sig) __field_hex(siginfo_t *, uinfo)), + TP_fast_assign(tp_assign(tgid, tgid) tp_assign(pid, pid) tp_assign(sig, sig) tp_assign(uinfo, uinfo)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_sendmmsg +SC_TRACE_EVENT(sys_sendmmsg, + TP_PROTO(int fd, struct mmsghdr * mmsg, unsigned int vlen, unsigned int flags), + TP_ARGS(fd, mmsg, vlen, flags), + TP_STRUCT__entry(__field(int, fd) __field_hex(struct mmsghdr *, mmsg) __field(unsigned int, vlen) __field(unsigned int, flags)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(mmsg, mmsg) tp_assign(vlen, vlen) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_32_rt_sigaction +SC_TRACE_EVENT(sys_32_rt_sigaction, + TP_PROTO(int sig, const struct sigaction32 * act, struct sigaction32 * oact, unsigned int sigsetsize), + TP_ARGS(sig, act, oact, sigsetsize), + TP_STRUCT__entry(__field(int, sig) __field_hex(const struct sigaction32 *, act) __field_hex(struct sigaction32 *, oact) __field(unsigned int, sigsetsize)), + TP_fast_assign(tp_assign(sig, sig) tp_assign(act, act) tp_assign(oact, oact) tp_assign(sigsetsize, sigsetsize)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_32_rt_sigprocmask +SC_TRACE_EVENT(sys_32_rt_sigprocmask, + TP_PROTO(int how, compat_sigset_t * set, compat_sigset_t * oset, unsigned int sigsetsize), + TP_ARGS(how, set, oset, sigsetsize), + TP_STRUCT__entry(__field(int, how) __field_hex(compat_sigset_t *, set) __field_hex(compat_sigset_t *, oset) __field(unsigned int, sigsetsize)), + TP_fast_assign(tp_assign(how, how) tp_assign(set, set) tp_assign(oset, oset) tp_assign(sigsetsize, sigsetsize)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_32_sendfile +SC_TRACE_EVENT(sys_32_sendfile, + TP_PROTO(long out_fd, long in_fd, compat_off_t * offset, s32 count), + TP_ARGS(out_fd, in_fd, offset, count), + TP_STRUCT__entry(__field(long, out_fd) __field(long, in_fd) __field_hex(compat_off_t *, offset) __field(s32, count)), + TP_fast_assign(tp_assign(out_fd, out_fd) tp_assign(in_fd, in_fd) tp_assign(offset, offset) tp_assign(count, count)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_socketpair +SC_TRACE_EVENT(sys_socketpair, + TP_PROTO(int family, int type, int protocol, int * usockvec), + TP_ARGS(family, type, protocol, usockvec), + TP_STRUCT__entry(__field(int, family) __field(int, type) __field(int, protocol) __field_hex(int *, usockvec)), + TP_fast_assign(tp_assign(family, family) tp_assign(type, type) tp_assign(protocol, protocol) tp_assign(usockvec, usockvec)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_reboot +SC_TRACE_EVENT(sys_reboot, + TP_PROTO(int magic1, int magic2, unsigned int cmd, void * arg), + TP_ARGS(magic1, magic2, cmd, arg), + TP_STRUCT__entry(__field(int, magic1) __field(int, magic2) __field(unsigned int, cmd) __field_hex(void *, arg)), + TP_fast_assign(tp_assign(magic1, magic1) tp_assign(magic2, magic2) tp_assign(cmd, cmd) tp_assign(arg, arg)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_quotactl +SC_TRACE_EVENT(sys_quotactl, + TP_PROTO(unsigned int cmd, const char * special, qid_t id, void * addr), + TP_ARGS(cmd, special, id, addr), + TP_STRUCT__entry(__field(unsigned int, cmd) __field_hex(const char *, special) __field(qid_t, id) __field_hex(void *, addr)), + TP_fast_assign(tp_assign(cmd, cmd) tp_assign(special, special) tp_assign(id, id) tp_assign(addr, addr)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_getxattr +SC_TRACE_EVENT(sys_getxattr, + TP_PROTO(const char * pathname, const char * name, void * value, size_t size), + TP_ARGS(pathname, name, value, size), + TP_STRUCT__entry(__string_from_user(pathname, pathname) __string_from_user(name, name) __field_hex(void *, value) __field(size_t, size)), + TP_fast_assign(tp_copy_string_from_user(pathname, pathname) tp_copy_string_from_user(name, name) tp_assign(value, value) tp_assign(size, size)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_lgetxattr +SC_TRACE_EVENT(sys_lgetxattr, + TP_PROTO(const char * pathname, const char * name, void * value, size_t size), + TP_ARGS(pathname, name, value, size), + TP_STRUCT__entry(__string_from_user(pathname, pathname) __string_from_user(name, name) __field_hex(void *, value) __field(size_t, size)), + TP_fast_assign(tp_copy_string_from_user(pathname, pathname) tp_copy_string_from_user(name, name) tp_assign(value, value) tp_assign(size, size)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_fgetxattr +SC_TRACE_EVENT(sys_fgetxattr, + TP_PROTO(int fd, const char * name, void * value, size_t size), + TP_ARGS(fd, name, value, size), + TP_STRUCT__entry(__field(int, fd) __string_from_user(name, name) __field_hex(void *, value) __field(size_t, size)), + TP_fast_assign(tp_assign(fd, fd) tp_copy_string_from_user(name, name) tp_assign(value, value) tp_assign(size, size)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_epoll_ctl +SC_TRACE_EVENT(sys_epoll_ctl, + TP_PROTO(int epfd, int op, int fd, struct epoll_event * event), + TP_ARGS(epfd, op, fd, event), + TP_STRUCT__entry(__field(int, epfd) __field(int, op) __field(int, fd) __field_hex(struct epoll_event *, event)), + TP_fast_assign(tp_assign(epfd, epfd) tp_assign(op, op) tp_assign(fd, fd) tp_assign(event, event)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_epoll_wait +SC_TRACE_EVENT(sys_epoll_wait, + TP_PROTO(int epfd, struct epoll_event * events, int maxevents, int timeout), + TP_ARGS(epfd, events, maxevents, timeout), + TP_STRUCT__entry(__field(int, epfd) __field_hex(struct epoll_event *, events) __field(int, maxevents) __field(int, timeout)), + TP_fast_assign(tp_assign(epfd, epfd) tp_assign(events, events) tp_assign(maxevents, maxevents) tp_assign(timeout, timeout)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_sendfile64 +SC_TRACE_EVENT(sys_sendfile64, + TP_PROTO(int out_fd, int in_fd, loff_t * offset, size_t count), + TP_ARGS(out_fd, in_fd, offset, count), + TP_STRUCT__entry(__field(int, out_fd) __field(int, in_fd) __field_hex(loff_t *, offset) __field(size_t, count)), + TP_fast_assign(tp_assign(out_fd, out_fd) tp_assign(in_fd, in_fd) tp_assign(offset, offset) tp_assign(count, count)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_openat +SC_TRACE_EVENT(sys_openat, + TP_PROTO(int dfd, const char * filename, int flags, umode_t mode), + TP_ARGS(dfd, filename, flags, mode), + TP_STRUCT__entry(__field(int, dfd) __string_from_user(filename, filename) __field(int, flags) __field(umode_t, mode)), + TP_fast_assign(tp_assign(dfd, dfd) tp_copy_string_from_user(filename, filename) tp_assign(flags, flags) tp_assign(mode, mode)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_mknodat +SC_TRACE_EVENT(sys_mknodat, + TP_PROTO(int dfd, const char * filename, umode_t mode, unsigned dev), + TP_ARGS(dfd, filename, mode, dev), + TP_STRUCT__entry(__field(int, dfd) __string_from_user(filename, filename) __field(umode_t, mode) __field(unsigned, dev)), + TP_fast_assign(tp_assign(dfd, dfd) tp_copy_string_from_user(filename, filename) tp_assign(mode, mode) tp_assign(dev, dev)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_newfstatat +SC_TRACE_EVENT(sys_newfstatat, + TP_PROTO(int dfd, const char * filename, struct stat * statbuf, int flag), + TP_ARGS(dfd, filename, statbuf, flag), + TP_STRUCT__entry(__field(int, dfd) __string_from_user(filename, filename) __field_hex(struct stat *, statbuf) __field(int, flag)), + TP_fast_assign(tp_assign(dfd, dfd) tp_copy_string_from_user(filename, filename) tp_assign(statbuf, statbuf) tp_assign(flag, flag)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_renameat +SC_TRACE_EVENT(sys_renameat, + TP_PROTO(int olddfd, const char * oldname, int newdfd, const char * newname), + TP_ARGS(olddfd, oldname, newdfd, newname), + TP_STRUCT__entry(__field(int, olddfd) __string_from_user(oldname, oldname) __field(int, newdfd) __string_from_user(newname, newname)), + TP_fast_assign(tp_assign(olddfd, olddfd) tp_copy_string_from_user(oldname, oldname) tp_assign(newdfd, newdfd) tp_copy_string_from_user(newname, newname)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_readlinkat +SC_TRACE_EVENT(sys_readlinkat, + TP_PROTO(int dfd, const char * pathname, char * buf, int bufsiz), + TP_ARGS(dfd, pathname, buf, bufsiz), + TP_STRUCT__entry(__field(int, dfd) __string_from_user(pathname, pathname) __field_hex(char *, buf) __field(int, bufsiz)), + TP_fast_assign(tp_assign(dfd, dfd) tp_copy_string_from_user(pathname, pathname) tp_assign(buf, buf) tp_assign(bufsiz, bufsiz)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_signalfd4 +SC_TRACE_EVENT(sys_signalfd4, + TP_PROTO(int ufd, sigset_t * user_mask, size_t sizemask, int flags), + TP_ARGS(ufd, user_mask, sizemask, flags), + TP_STRUCT__entry(__field(int, ufd) __field_hex(sigset_t *, user_mask) __field(size_t, sizemask) __field(int, flags)), + TP_fast_assign(tp_assign(ufd, ufd) tp_assign(user_mask, user_mask) tp_assign(sizemask, sizemask) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_accept4 +SC_TRACE_EVENT(sys_accept4, + TP_PROTO(int fd, struct sockaddr * upeer_sockaddr, int * upeer_addrlen, int flags), + TP_ARGS(fd, upeer_sockaddr, upeer_addrlen, flags), + TP_STRUCT__entry(__field(int, fd) __field_hex(struct sockaddr *, upeer_sockaddr) __field_hex(int *, upeer_addrlen) __field(int, flags)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(upeer_sockaddr, upeer_sockaddr) tp_assign(upeer_addrlen, upeer_addrlen) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_prlimit64 +SC_TRACE_EVENT(sys_prlimit64, + TP_PROTO(pid_t pid, unsigned int resource, const struct rlimit64 * new_rlim, struct rlimit64 * old_rlim), + TP_ARGS(pid, resource, new_rlim, old_rlim), + TP_STRUCT__entry(__field(pid_t, pid) __field(unsigned int, resource) __field_hex(const struct rlimit64 *, new_rlim) __field_hex(struct rlimit64 *, old_rlim)), + TP_fast_assign(tp_assign(pid, pid) tp_assign(resource, resource) tp_assign(new_rlim, new_rlim) tp_assign(old_rlim, old_rlim)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_32_llseek +SC_TRACE_EVENT(sys_32_llseek, + TP_PROTO(unsigned int fd, unsigned int offset_high, unsigned int offset_low, loff_t * result, unsigned int origin), + TP_ARGS(fd, offset_high, offset_low, result, origin), + TP_STRUCT__entry(__field(unsigned int, fd) __field(unsigned int, offset_high) __field(unsigned int, offset_low) __field_hex(loff_t *, result) __field(unsigned int, origin)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(offset_high, offset_high) tp_assign(offset_low, offset_low) tp_assign(result, result) tp_assign(origin, origin)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_32_waitid +SC_TRACE_EVENT(sys_32_waitid, + TP_PROTO(int which, compat_pid_t pid, compat_siginfo_t * uinfo, int options, struct compat_rusage * uru), + TP_ARGS(which, pid, uinfo, options, uru), + TP_STRUCT__entry(__field(int, which) __field(compat_pid_t, pid) __field_hex(compat_siginfo_t *, uinfo) __field(int, options) __field_hex(struct compat_rusage *, uru)), + TP_fast_assign(tp_assign(which, which) tp_assign(pid, pid) tp_assign(uinfo, uinfo) tp_assign(options, options) tp_assign(uru, uru)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_select +SC_TRACE_EVENT(sys_select, + TP_PROTO(int n, fd_set * inp, fd_set * outp, fd_set * exp, struct timeval * tvp), + TP_ARGS(n, inp, outp, exp, tvp), + TP_STRUCT__entry(__field(int, n) __field_hex(fd_set *, inp) __field_hex(fd_set *, outp) __field_hex(fd_set *, exp) __field_hex(struct timeval *, tvp)), + TP_fast_assign(tp_assign(n, n) tp_assign(inp, inp) tp_assign(outp, outp) tp_assign(exp, exp) tp_assign(tvp, tvp)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_setsockopt +SC_TRACE_EVENT(sys_setsockopt, + TP_PROTO(int fd, int level, int optname, char * optval, int optlen), + TP_ARGS(fd, level, optname, optval, optlen), + TP_STRUCT__entry(__field(int, fd) __field(int, level) __field(int, optname) __field_hex(char *, optval) __field(int, optlen)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(level, level) tp_assign(optname, optname) tp_assign(optval, optval) tp_assign(optlen, optlen)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_msgrcv +SC_TRACE_EVENT(sys_msgrcv, + TP_PROTO(int msqid, struct msgbuf * msgp, size_t msgsz, long msgtyp, int msgflg), + TP_ARGS(msqid, msgp, msgsz, msgtyp, msgflg), + TP_STRUCT__entry(__field(int, msqid) __field_hex(struct msgbuf *, msgp) __field(size_t, msgsz) __field(long, msgtyp) __field(int, msgflg)), + TP_fast_assign(tp_assign(msqid, msqid) tp_assign(msgp, msgp) tp_assign(msgsz, msgsz) tp_assign(msgtyp, msgtyp) tp_assign(msgflg, msgflg)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_mount +SC_TRACE_EVENT(sys_mount, + TP_PROTO(char * dev_name, char * dir_name, char * type, unsigned long flags, void * data), + TP_ARGS(dev_name, dir_name, type, flags, data), + TP_STRUCT__entry(__string_from_user(dev_name, dev_name) __string_from_user(dir_name, dir_name) __string_from_user(type, type) __field(unsigned long, flags) __field_hex(void *, data)), + TP_fast_assign(tp_copy_string_from_user(dev_name, dev_name) tp_copy_string_from_user(dir_name, dir_name) tp_copy_string_from_user(type, type) tp_assign(flags, flags) tp_assign(data, data)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_io_getevents +SC_TRACE_EVENT(sys_io_getevents, + TP_PROTO(aio_context_t ctx_id, long min_nr, long nr, struct io_event * events, struct timespec * timeout), + TP_ARGS(ctx_id, min_nr, nr, events, timeout), + TP_STRUCT__entry(__field(aio_context_t, ctx_id) __field(long, min_nr) __field(long, nr) __field_hex(struct io_event *, events) __field_hex(struct timespec *, timeout)), + TP_fast_assign(tp_assign(ctx_id, ctx_id) tp_assign(min_nr, min_nr) tp_assign(nr, nr) tp_assign(events, events) tp_assign(timeout, timeout)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_waitid +SC_TRACE_EVENT(sys_waitid, + TP_PROTO(int which, pid_t upid, struct siginfo * infop, int options, struct rusage * ru), + TP_ARGS(which, upid, infop, options, ru), + TP_STRUCT__entry(__field(int, which) __field(pid_t, upid) __field_hex(struct siginfo *, infop) __field(int, options) __field_hex(struct rusage *, ru)), + TP_fast_assign(tp_assign(which, which) tp_assign(upid, upid) tp_assign(infop, infop) tp_assign(options, options) tp_assign(ru, ru)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_ppoll +SC_TRACE_EVENT(sys_ppoll, + TP_PROTO(struct pollfd * ufds, unsigned int nfds, struct timespec * tsp, const sigset_t * sigmask, size_t sigsetsize), + TP_ARGS(ufds, nfds, tsp, sigmask, sigsetsize), + TP_STRUCT__entry(__field_hex(struct pollfd *, ufds) __field(unsigned int, nfds) __field_hex(struct timespec *, tsp) __field_hex(const sigset_t *, sigmask) __field(size_t, sigsetsize)), + TP_fast_assign(tp_assign(ufds, ufds) tp_assign(nfds, nfds) tp_assign(tsp, tsp) tp_assign(sigmask, sigmask) tp_assign(sigsetsize, sigsetsize)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_recvmmsg +SC_TRACE_EVENT(sys_recvmmsg, + TP_PROTO(int fd, struct mmsghdr * mmsg, unsigned int vlen, unsigned int flags, struct timespec * timeout), + TP_ARGS(fd, mmsg, vlen, flags, timeout), + TP_STRUCT__entry(__field(int, fd) __field_hex(struct mmsghdr *, mmsg) __field(unsigned int, vlen) __field(unsigned int, flags) __field_hex(struct timespec *, timeout)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(mmsg, mmsg) tp_assign(vlen, vlen) tp_assign(flags, flags) tp_assign(timeout, timeout)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_getsockopt +SC_TRACE_EVENT(sys_getsockopt, + TP_PROTO(int fd, int level, int optname, char * optval, int * optlen), + TP_ARGS(fd, level, optname, optval, optlen), + TP_STRUCT__entry(__field(int, fd) __field(int, level) __field(int, optname) __field_hex(char *, optval) __field_hex(int *, optlen)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(level, level) tp_assign(optname, optname) tp_assign(optval, optval) tp_assign(optlen, optlen)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_setxattr +SC_TRACE_EVENT(sys_setxattr, + TP_PROTO(const char * pathname, const char * name, const void * value, size_t size, int flags), + TP_ARGS(pathname, name, value, size, flags), + TP_STRUCT__entry(__string_from_user(pathname, pathname) __string_from_user(name, name) __field_hex(const void *, value) __field(size_t, size) __field(int, flags)), + TP_fast_assign(tp_copy_string_from_user(pathname, pathname) tp_copy_string_from_user(name, name) tp_assign(value, value) tp_assign(size, size) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_lsetxattr +SC_TRACE_EVENT(sys_lsetxattr, + TP_PROTO(const char * pathname, const char * name, const void * value, size_t size, int flags), + TP_ARGS(pathname, name, value, size, flags), + TP_STRUCT__entry(__string_from_user(pathname, pathname) __string_from_user(name, name) __field_hex(const void *, value) __field(size_t, size) __field(int, flags)), + TP_fast_assign(tp_copy_string_from_user(pathname, pathname) tp_copy_string_from_user(name, name) tp_assign(value, value) tp_assign(size, size) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_fsetxattr +SC_TRACE_EVENT(sys_fsetxattr, + TP_PROTO(int fd, const char * name, const void * value, size_t size, int flags), + TP_ARGS(fd, name, value, size, flags), + TP_STRUCT__entry(__field(int, fd) __string_from_user(name, name) __field_hex(const void *, value) __field(size_t, size) __field(int, flags)), + TP_fast_assign(tp_assign(fd, fd) tp_copy_string_from_user(name, name) tp_assign(value, value) tp_assign(size, size) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_fchownat +SC_TRACE_EVENT(sys_fchownat, + TP_PROTO(int dfd, const char * filename, uid_t user, gid_t group, int flag), + TP_ARGS(dfd, filename, user, group, flag), + TP_STRUCT__entry(__field(int, dfd) __string_from_user(filename, filename) __field(uid_t, user) __field(gid_t, group) __field(int, flag)), + TP_fast_assign(tp_assign(dfd, dfd) tp_copy_string_from_user(filename, filename) tp_assign(user, user) tp_assign(group, group) tp_assign(flag, flag)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_linkat +SC_TRACE_EVENT(sys_linkat, + TP_PROTO(int olddfd, const char * oldname, int newdfd, const char * newname, int flags), + TP_ARGS(olddfd, oldname, newdfd, newname, flags), + TP_STRUCT__entry(__field(int, olddfd) __string_from_user(oldname, oldname) __field(int, newdfd) __string_from_user(newname, newname) __field(int, flags)), + TP_fast_assign(tp_assign(olddfd, olddfd) tp_copy_string_from_user(oldname, oldname) tp_assign(newdfd, newdfd) tp_copy_string_from_user(newname, newname) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_preadv +SC_TRACE_EVENT(sys_preadv, + TP_PROTO(unsigned long fd, const struct iovec * vec, unsigned long vlen, unsigned long pos_l, unsigned long pos_h), + TP_ARGS(fd, vec, vlen, pos_l, pos_h), + TP_STRUCT__entry(__field(unsigned long, fd) __field_hex(const struct iovec *, vec) __field(unsigned long, vlen) __field(unsigned long, pos_l) __field(unsigned long, pos_h)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(vec, vec) tp_assign(vlen, vlen) tp_assign(pos_l, pos_l) tp_assign(pos_h, pos_h)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_pwritev +SC_TRACE_EVENT(sys_pwritev, + TP_PROTO(unsigned long fd, const struct iovec * vec, unsigned long vlen, unsigned long pos_l, unsigned long pos_h), + TP_ARGS(fd, vec, vlen, pos_l, pos_h), + TP_STRUCT__entry(__field(unsigned long, fd) __field_hex(const struct iovec *, vec) __field(unsigned long, vlen) __field(unsigned long, pos_l) __field(unsigned long, pos_h)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(vec, vec) tp_assign(vlen, vlen) tp_assign(pos_l, pos_l) tp_assign(pos_h, pos_h)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_32_pread +SC_TRACE_EVENT(sys_32_pread, + TP_PROTO(unsigned long fd, char * buf, size_t count, unsigned long unused, unsigned long a4, unsigned long a5), + TP_ARGS(fd, buf, count, unused, a4, a5), + TP_STRUCT__entry(__field(unsigned long, fd) __field_hex(char *, buf) __field(size_t, count) __field(unsigned long, unused) __field(unsigned long, a4) __field(unsigned long, a5)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(buf, buf) tp_assign(count, count) tp_assign(unused, unused) tp_assign(a4, a4) tp_assign(a5, a5)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_32_pwrite +SC_TRACE_EVENT(sys_32_pwrite, + TP_PROTO(unsigned int fd, const char * buf, size_t count, u32 unused, u64 a4, u64 a5), + TP_ARGS(fd, buf, count, unused, a4, a5), + TP_STRUCT__entry(__field(unsigned int, fd) __field_hex(const char *, buf) __field(size_t, count) __field(u32, unused) __field(u64, a4) __field(u64, a5)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(buf, buf) tp_assign(count, count) tp_assign(unused, unused) tp_assign(a4, a4) tp_assign(a5, a5)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_32_fanotify_mark +SC_TRACE_EVENT(sys_32_fanotify_mark, + TP_PROTO(int fanotify_fd, unsigned int flags, u64 a3, u64 a4, int dfd, const char * pathname), + TP_ARGS(fanotify_fd, flags, a3, a4, dfd, pathname), + TP_STRUCT__entry(__field(int, fanotify_fd) __field(unsigned int, flags) __field(u64, a3) __field(u64, a4) __field(int, dfd) __string_from_user(pathname, pathname)), + TP_fast_assign(tp_assign(fanotify_fd, fanotify_fd) tp_assign(flags, flags) tp_assign(a3, a3) tp_assign(a4, a4) tp_assign(dfd, dfd) tp_copy_string_from_user(pathname, pathname)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_recvfrom +SC_TRACE_EVENT(sys_recvfrom, + TP_PROTO(int fd, void * ubuf, size_t size, unsigned int flags, struct sockaddr * addr, int * addr_len), + TP_ARGS(fd, ubuf, size, flags, addr, addr_len), + TP_STRUCT__entry(__field(int, fd) __field_hex(void *, ubuf) __field(size_t, size) __field(unsigned int, flags) __field_hex(struct sockaddr *, addr) __field_hex(int *, addr_len)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(ubuf, ubuf) tp_assign(size, size) tp_assign(flags, flags) tp_assign(addr, addr) tp_assign(addr_len, addr_len)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_futex +SC_TRACE_EVENT(sys_futex, + TP_PROTO(u32 * uaddr, int op, u32 val, struct timespec * utime, u32 * uaddr2, u32 val3), + TP_ARGS(uaddr, op, val, utime, uaddr2, val3), + TP_STRUCT__entry(__field_hex(u32 *, uaddr) __field(int, op) __field(u32, val) __field_hex(struct timespec *, utime) __field_hex(u32 *, uaddr2) __field(u32, val3)), + TP_fast_assign(tp_assign(uaddr, uaddr) tp_assign(op, op) tp_assign(val, val) tp_assign(utime, utime) tp_assign(uaddr2, uaddr2) tp_assign(val3, val3)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_pselect6 +SC_TRACE_EVENT(sys_pselect6, + TP_PROTO(int n, fd_set * inp, fd_set * outp, fd_set * exp, struct timespec * tsp, void * sig), + TP_ARGS(n, inp, outp, exp, tsp, sig), + TP_STRUCT__entry(__field(int, n) __field_hex(fd_set *, inp) __field_hex(fd_set *, outp) __field_hex(fd_set *, exp) __field_hex(struct timespec *, tsp) __field_hex(void *, sig)), + TP_fast_assign(tp_assign(n, n) tp_assign(inp, inp) tp_assign(outp, outp) tp_assign(exp, exp) tp_assign(tsp, tsp) tp_assign(sig, sig)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_epoll_pwait +SC_TRACE_EVENT(sys_epoll_pwait, + TP_PROTO(int epfd, struct epoll_event * events, int maxevents, int timeout, const sigset_t * sigmask, size_t sigsetsize), + TP_ARGS(epfd, events, maxevents, timeout, sigmask, sigsetsize), + TP_STRUCT__entry(__field(int, epfd) __field_hex(struct epoll_event *, events) __field(int, maxevents) __field(int, timeout) __field_hex(const sigset_t *, sigmask) __field(size_t, sigsetsize)), + TP_fast_assign(tp_assign(epfd, epfd) tp_assign(events, events) tp_assign(maxevents, maxevents) tp_assign(timeout, timeout) tp_assign(sigmask, sigmask) tp_assign(sigsetsize, sigsetsize)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_process_vm_readv +SC_TRACE_EVENT(sys_process_vm_readv, + TP_PROTO(pid_t pid, const struct iovec * lvec, unsigned long liovcnt, const struct iovec * rvec, unsigned long riovcnt, unsigned long flags), + TP_ARGS(pid, lvec, liovcnt, rvec, riovcnt, flags), + TP_STRUCT__entry(__field(pid_t, pid) __field_hex(const struct iovec *, lvec) __field(unsigned long, liovcnt) __field_hex(const struct iovec *, rvec) __field(unsigned long, riovcnt) __field(unsigned long, flags)), + TP_fast_assign(tp_assign(pid, pid) tp_assign(lvec, lvec) tp_assign(liovcnt, liovcnt) tp_assign(rvec, rvec) tp_assign(riovcnt, riovcnt) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_process_vm_writev +SC_TRACE_EVENT(sys_process_vm_writev, + TP_PROTO(pid_t pid, const struct iovec * lvec, unsigned long liovcnt, const struct iovec * rvec, unsigned long riovcnt, unsigned long flags), + TP_ARGS(pid, lvec, liovcnt, rvec, riovcnt, flags), + TP_STRUCT__entry(__field(pid_t, pid) __field_hex(const struct iovec *, lvec) __field(unsigned long, liovcnt) __field_hex(const struct iovec *, rvec) __field(unsigned long, riovcnt) __field(unsigned long, flags)), + TP_fast_assign(tp_assign(pid, pid) tp_assign(lvec, lvec) tp_assign(liovcnt, liovcnt) tp_assign(rvec, rvec) tp_assign(riovcnt, riovcnt) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_sendto +SC_TRACE_EVENT(sys_sendto, + TP_PROTO(int fd, void * buff, size_t len, unsigned int flags, struct sockaddr * addr, int addr_len), + TP_ARGS(fd, buff, len, flags, addr, addr_len), + TP_STRUCT__entry(__field(int, fd) __field_hex(void *, buff) __field(size_t, len) __field(unsigned int, flags) __field_hex(struct sockaddr *, addr) __field_hex(int, addr_len)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(buff, buff) tp_assign(len, len) tp_assign(flags, flags) tp_assign(addr, addr) tp_assign(addr_len, addr_len)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_32_futex +SC_TRACE_EVENT(sys_32_futex, + TP_PROTO(u32 * uaddr, int op, u32 val, struct compat_timespec * utime, u32 * uaddr2, u32 val3), + TP_ARGS(uaddr, op, val, utime, uaddr2, val3), + TP_STRUCT__entry(__field_hex(u32 *, uaddr) __field(int, op) __field(u32, val) __field_hex(struct compat_timespec *, utime) __field_hex(u32 *, uaddr2) __field(u32, val3)), + TP_fast_assign(tp_assign(uaddr, uaddr) tp_assign(op, op) tp_assign(val, val) tp_assign(utime, utime) tp_assign(uaddr2, uaddr2) tp_assign(val3, val3)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_splice +SC_TRACE_EVENT(sys_splice, + TP_PROTO(int fd_in, loff_t * off_in, int fd_out, loff_t * off_out, size_t len, unsigned int flags), + TP_ARGS(fd_in, off_in, fd_out, off_out, len, flags), + TP_STRUCT__entry(__field(int, fd_in) __field_hex(loff_t *, off_in) __field(int, fd_out) __field_hex(loff_t *, off_out) __field(size_t, len) __field(unsigned int, flags)), + TP_fast_assign(tp_assign(fd_in, fd_in) tp_assign(off_in, off_in) tp_assign(fd_out, fd_out) tp_assign(off_out, off_out) tp_assign(len, len) tp_assign(flags, flags)), + TP_printk() +) +#endif + +#endif /* _TRACE_SYSCALLS_POINTERS_H */ + +/* This part must be outside protection */ +#include "../../../probes/define_trace.h" + +#else /* CREATE_SYSCALL_TABLE */ + +#include "mips-64-syscalls-3.5.0_pointers_override.h" +#include "syscalls_pointers_override.h" + +#ifndef OVERRIDE_TABLE_64_sys_waitpid +TRACE_SYSCALL_TABLE(sys_waitpid, sys_waitpid, 4007, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_oldumount +TRACE_SYSCALL_TABLE(sys_oldumount, sys_oldumount, 4022, 1) +#endif +#ifndef OVERRIDE_TABLE_64_sys_olduname +TRACE_SYSCALL_TABLE(sys_olduname, sys_olduname, 4059, 1) +#endif +#ifndef OVERRIDE_TABLE_64_sys_32_sigaction +TRACE_SYSCALL_TABLE(sys_32_sigaction, sys_32_sigaction, 4067, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_uselib +TRACE_SYSCALL_TABLE(sys_uselib, sys_uselib, 4086, 1) +#endif +#ifndef OVERRIDE_TABLE_64_sys_uname +TRACE_SYSCALL_TABLE(sys_uname, sys_uname, 4109, 1) +#endif +#ifndef OVERRIDE_TABLE_64_sys_32_llseek +TRACE_SYSCALL_TABLE(sys_32_llseek, sys_32_llseek, 4140, 5) +#endif +#ifndef OVERRIDE_TABLE_64_sys_send +TRACE_SYSCALL_TABLE(sys_send, sys_send, 4178, 4) +#endif +#ifndef OVERRIDE_TABLE_64_sys_32_pread +TRACE_SYSCALL_TABLE(sys_32_pread, sys_32_pread, 4200, 6) +#endif +#ifndef OVERRIDE_TABLE_64_sys_32_pwrite +TRACE_SYSCALL_TABLE(sys_32_pwrite, sys_32_pwrite, 4201, 6) +#endif +#ifndef OVERRIDE_TABLE_64_sys_32_truncate64 +TRACE_SYSCALL_TABLE(sys_32_truncate64, sys_32_truncate64, 4211, 4) +#endif +#ifndef OVERRIDE_TABLE_64_sys_32_waitid +TRACE_SYSCALL_TABLE(sys_32_waitid, sys_32_waitid, 4278, 5) +#endif +#ifndef OVERRIDE_TABLE_64_sys_32_fanotify_mark +TRACE_SYSCALL_TABLE(sys_32_fanotify_mark, sys_32_fanotify_mark, 4337, 6) +#endif +#ifndef OVERRIDE_TABLE_64_sys_rt_sigaction +TRACE_SYSCALL_TABLE(sys_rt_sigaction, sys_rt_sigaction, 5013, 4) +#endif +#ifndef OVERRIDE_TABLE_64_sys_rt_sigprocmask +TRACE_SYSCALL_TABLE(sys_rt_sigprocmask, sys_rt_sigprocmask, 5014, 4) +#endif +#ifndef OVERRIDE_TABLE_64_sys_readv +TRACE_SYSCALL_TABLE(sys_readv, sys_readv, 5018, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_writev +TRACE_SYSCALL_TABLE(sys_writev, sys_writev, 5019, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_select +TRACE_SYSCALL_TABLE(sys_select, sys_select, 5022, 5) +#endif +#ifndef OVERRIDE_TABLE_64_sys_shmctl +TRACE_SYSCALL_TABLE(sys_shmctl, sys_shmctl, 5030, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_nanosleep +TRACE_SYSCALL_TABLE(sys_nanosleep, sys_nanosleep, 5034, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_getitimer +TRACE_SYSCALL_TABLE(sys_getitimer, sys_getitimer, 5035, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_setitimer +TRACE_SYSCALL_TABLE(sys_setitimer, sys_setitimer, 5036, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_recvfrom +TRACE_SYSCALL_TABLE(sys_recvfrom, sys_recvfrom, 5044, 6) +#endif +#ifndef OVERRIDE_TABLE_64_sys_sendmsg +TRACE_SYSCALL_TABLE(sys_sendmsg, sys_sendmsg, 5045, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_recvmsg +TRACE_SYSCALL_TABLE(sys_recvmsg, sys_recvmsg, 5046, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_setsockopt +TRACE_SYSCALL_TABLE(sys_setsockopt, sys_setsockopt, 5053, 5) +#endif +#ifndef OVERRIDE_TABLE_64_sys_wait4 +TRACE_SYSCALL_TABLE(sys_wait4, sys_wait4, 5059, 4) +#endif +#ifndef OVERRIDE_TABLE_64_sys_msgsnd +TRACE_SYSCALL_TABLE(sys_msgsnd, sys_msgsnd, 5067, 4) +#endif +#ifndef OVERRIDE_TABLE_64_sys_msgrcv +TRACE_SYSCALL_TABLE(sys_msgrcv, sys_msgrcv, 5068, 5) +#endif +#ifndef OVERRIDE_TABLE_64_sys_msgctl +TRACE_SYSCALL_TABLE(sys_msgctl, sys_msgctl, 5069, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_getdents +TRACE_SYSCALL_TABLE(sys_getdents, sys_getdents, 5076, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_gettimeofday +TRACE_SYSCALL_TABLE(sys_gettimeofday, sys_gettimeofday, 5094, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_getrlimit +TRACE_SYSCALL_TABLE(sys_getrlimit, sys_getrlimit, 5095, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_getrusage +TRACE_SYSCALL_TABLE(sys_getrusage, sys_getrusage, 5096, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_sysinfo +TRACE_SYSCALL_TABLE(sys_sysinfo, sys_sysinfo, 5097, 1) +#endif +#ifndef OVERRIDE_TABLE_64_sys_times +TRACE_SYSCALL_TABLE(sys_times, sys_times, 5098, 1) +#endif +#ifndef OVERRIDE_TABLE_64_sys_rt_sigpending +TRACE_SYSCALL_TABLE(sys_rt_sigpending, sys_rt_sigpending, 5125, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_rt_sigtimedwait +TRACE_SYSCALL_TABLE(sys_rt_sigtimedwait, sys_rt_sigtimedwait, 5126, 4) +#endif +#ifndef OVERRIDE_TABLE_64_sys_rt_sigqueueinfo +TRACE_SYSCALL_TABLE(sys_rt_sigqueueinfo, sys_rt_sigqueueinfo, 5127, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_utime +TRACE_SYSCALL_TABLE(sys_utime, sys_utime, 5130, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_ustat +TRACE_SYSCALL_TABLE(sys_ustat, sys_ustat, 5133, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_statfs +TRACE_SYSCALL_TABLE(sys_statfs, sys_statfs, 5134, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_fstatfs +TRACE_SYSCALL_TABLE(sys_fstatfs, sys_fstatfs, 5135, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_sched_rr_get_interval +TRACE_SYSCALL_TABLE(sys_sched_rr_get_interval, sys_sched_rr_get_interval, 5145, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_sysctl +TRACE_SYSCALL_TABLE(sys_sysctl, sys_sysctl, 5152, 1) +#endif +#ifndef OVERRIDE_TABLE_64_sys_adjtimex +TRACE_SYSCALL_TABLE(sys_adjtimex, sys_adjtimex, 5154, 1) +#endif +#ifndef OVERRIDE_TABLE_64_sys_setrlimit +TRACE_SYSCALL_TABLE(sys_setrlimit, sys_setrlimit, 5155, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_settimeofday +TRACE_SYSCALL_TABLE(sys_settimeofday, sys_settimeofday, 5159, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_mount +TRACE_SYSCALL_TABLE(sys_mount, sys_mount, 5160, 5) +#endif +#ifndef OVERRIDE_TABLE_64_sys_futex +TRACE_SYSCALL_TABLE(sys_futex, sys_futex, 5194, 6) +#endif +#ifndef OVERRIDE_TABLE_64_sys_sched_setaffinity +TRACE_SYSCALL_TABLE(sys_sched_setaffinity, sys_sched_setaffinity, 5195, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_sched_getaffinity +TRACE_SYSCALL_TABLE(sys_sched_getaffinity, sys_sched_getaffinity, 5196, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_io_setup +TRACE_SYSCALL_TABLE(sys_io_setup, sys_io_setup, 5200, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_io_getevents +TRACE_SYSCALL_TABLE(sys_io_getevents, sys_io_getevents, 5202, 5) +#endif +#ifndef OVERRIDE_TABLE_64_sys_io_submit +TRACE_SYSCALL_TABLE(sys_io_submit, sys_io_submit, 5203, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_semtimedop +TRACE_SYSCALL_TABLE(sys_semtimedop, sys_semtimedop, 5214, 4) +#endif +#ifndef OVERRIDE_TABLE_64_sys_timer_create +TRACE_SYSCALL_TABLE(sys_timer_create, sys_timer_create, 5216, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_timer_settime +TRACE_SYSCALL_TABLE(sys_timer_settime, sys_timer_settime, 5217, 4) +#endif +#ifndef OVERRIDE_TABLE_64_sys_timer_gettime +TRACE_SYSCALL_TABLE(sys_timer_gettime, sys_timer_gettime, 5218, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_clock_settime +TRACE_SYSCALL_TABLE(sys_clock_settime, sys_clock_settime, 5221, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_clock_gettime +TRACE_SYSCALL_TABLE(sys_clock_gettime, sys_clock_gettime, 5222, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_clock_getres +TRACE_SYSCALL_TABLE(sys_clock_getres, sys_clock_getres, 5223, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_clock_nanosleep +TRACE_SYSCALL_TABLE(sys_clock_nanosleep, sys_clock_nanosleep, 5224, 4) +#endif +#ifndef OVERRIDE_TABLE_64_sys_utimes +TRACE_SYSCALL_TABLE(sys_utimes, sys_utimes, 5226, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_waitid +TRACE_SYSCALL_TABLE(sys_waitid, sys_waitid, 5237, 5) +#endif +#ifndef OVERRIDE_TABLE_64_sys_futimesat +TRACE_SYSCALL_TABLE(sys_futimesat, sys_futimesat, 5251, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_pselect6 +TRACE_SYSCALL_TABLE(sys_pselect6, sys_pselect6, 5260, 6) +#endif +#ifndef OVERRIDE_TABLE_64_sys_ppoll +TRACE_SYSCALL_TABLE(sys_ppoll, sys_ppoll, 5261, 5) +#endif +#ifndef OVERRIDE_TABLE_64_sys_vmsplice +TRACE_SYSCALL_TABLE(sys_vmsplice, sys_vmsplice, 5266, 4) +#endif +#ifndef OVERRIDE_TABLE_64_sys_set_robust_list +TRACE_SYSCALL_TABLE(sys_set_robust_list, sys_set_robust_list, 5268, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_get_robust_list +TRACE_SYSCALL_TABLE(sys_get_robust_list, sys_get_robust_list, 5269, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_epoll_pwait +TRACE_SYSCALL_TABLE(sys_epoll_pwait, sys_epoll_pwait, 5272, 6) +#endif +#ifndef OVERRIDE_TABLE_64_sys_utimensat +TRACE_SYSCALL_TABLE(sys_utimensat, sys_utimensat, 5275, 4) +#endif +#ifndef OVERRIDE_TABLE_64_sys_signalfd +TRACE_SYSCALL_TABLE(sys_signalfd, sys_signalfd, 5276, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_timerfd_gettime +TRACE_SYSCALL_TABLE(sys_timerfd_gettime, sys_timerfd_gettime, 5281, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_timerfd_settime +TRACE_SYSCALL_TABLE(sys_timerfd_settime, sys_timerfd_settime, 5282, 4) +#endif +#ifndef OVERRIDE_TABLE_64_sys_rt_tgsigqueueinfo +TRACE_SYSCALL_TABLE(sys_rt_tgsigqueueinfo, sys_rt_tgsigqueueinfo, 5291, 4) +#endif +#ifndef OVERRIDE_TABLE_64_sys_recvmmsg +TRACE_SYSCALL_TABLE(sys_recvmmsg, sys_recvmmsg, 5294, 5) +#endif +#ifndef OVERRIDE_TABLE_64_sys_clock_adjtime +TRACE_SYSCALL_TABLE(sys_clock_adjtime, sys_clock_adjtime, 5300, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_sendmmsg +TRACE_SYSCALL_TABLE(sys_sendmmsg, sys_sendmmsg, 5302, 4) +#endif +#ifndef OVERRIDE_TABLE_64_sys_process_vm_readv +TRACE_SYSCALL_TABLE(sys_process_vm_readv, sys_process_vm_readv, 5304, 6) +#endif +#ifndef OVERRIDE_TABLE_64_sys_process_vm_writev +TRACE_SYSCALL_TABLE(sys_process_vm_writev, sys_process_vm_writev, 5305, 6) +#endif +#ifndef OVERRIDE_TABLE_64_sys_read +TRACE_SYSCALL_TABLE(sys_read, sys_read, 6000, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_write +TRACE_SYSCALL_TABLE(sys_write, sys_write, 6001, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_open +TRACE_SYSCALL_TABLE(sys_open, sys_open, 6002, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_newstat +TRACE_SYSCALL_TABLE(sys_newstat, sys_newstat, 6004, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_newfstat +TRACE_SYSCALL_TABLE(sys_newfstat, sys_newfstat, 6005, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_newlstat +TRACE_SYSCALL_TABLE(sys_newlstat, sys_newlstat, 6006, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_poll +TRACE_SYSCALL_TABLE(sys_poll, sys_poll, 6007, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_32_rt_sigaction +TRACE_SYSCALL_TABLE(sys_32_rt_sigaction, sys_32_rt_sigaction, 6013, 4) +#endif +#ifndef OVERRIDE_TABLE_64_sys_32_rt_sigprocmask +TRACE_SYSCALL_TABLE(sys_32_rt_sigprocmask, sys_32_rt_sigprocmask, 6014, 4) +#endif +#ifndef OVERRIDE_TABLE_64_sys_access +TRACE_SYSCALL_TABLE(sys_access, sys_access, 6020, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_mincore +TRACE_SYSCALL_TABLE(sys_mincore, sys_mincore, 6026, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_shmat +TRACE_SYSCALL_TABLE(sys_shmat, sys_shmat, 6029, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_32_sendfile +TRACE_SYSCALL_TABLE(sys_32_sendfile, sys_32_sendfile, 6039, 4) +#endif +#ifndef OVERRIDE_TABLE_64_sys_connect +TRACE_SYSCALL_TABLE(sys_connect, sys_connect, 6041, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_accept +TRACE_SYSCALL_TABLE(sys_accept, sys_accept, 6042, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_sendto +TRACE_SYSCALL_TABLE(sys_sendto, sys_sendto, 6043, 6) +#endif +#ifndef OVERRIDE_TABLE_64_sys_bind +TRACE_SYSCALL_TABLE(sys_bind, sys_bind, 6048, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_getsockname +TRACE_SYSCALL_TABLE(sys_getsockname, sys_getsockname, 6050, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_getpeername +TRACE_SYSCALL_TABLE(sys_getpeername, sys_getpeername, 6051, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_socketpair +TRACE_SYSCALL_TABLE(sys_socketpair, sys_socketpair, 6052, 4) +#endif +#ifndef OVERRIDE_TABLE_64_sys_getsockopt +TRACE_SYSCALL_TABLE(sys_getsockopt, sys_getsockopt, 6054, 5) +#endif +#ifndef OVERRIDE_TABLE_64_sys_newuname +TRACE_SYSCALL_TABLE(sys_newuname, sys_newuname, 6061, 1) +#endif +#ifndef OVERRIDE_TABLE_64_sys_semop +TRACE_SYSCALL_TABLE(sys_semop, sys_semop, 6063, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_shmdt +TRACE_SYSCALL_TABLE(sys_shmdt, sys_shmdt, 6065, 1) +#endif +#ifndef OVERRIDE_TABLE_64_sys_truncate +TRACE_SYSCALL_TABLE(sys_truncate, sys_truncate, 6074, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_getcwd +TRACE_SYSCALL_TABLE(sys_getcwd, sys_getcwd, 6077, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_chdir +TRACE_SYSCALL_TABLE(sys_chdir, sys_chdir, 6078, 1) +#endif +#ifndef OVERRIDE_TABLE_64_sys_rename +TRACE_SYSCALL_TABLE(sys_rename, sys_rename, 6080, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_mkdir +TRACE_SYSCALL_TABLE(sys_mkdir, sys_mkdir, 6081, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_rmdir +TRACE_SYSCALL_TABLE(sys_rmdir, sys_rmdir, 6082, 1) +#endif +#ifndef OVERRIDE_TABLE_64_sys_creat +TRACE_SYSCALL_TABLE(sys_creat, sys_creat, 6083, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_link +TRACE_SYSCALL_TABLE(sys_link, sys_link, 6084, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_unlink +TRACE_SYSCALL_TABLE(sys_unlink, sys_unlink, 6085, 1) +#endif +#ifndef OVERRIDE_TABLE_64_sys_symlink +TRACE_SYSCALL_TABLE(sys_symlink, sys_symlink, 6086, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_readlink +TRACE_SYSCALL_TABLE(sys_readlink, sys_readlink, 6087, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_chmod +TRACE_SYSCALL_TABLE(sys_chmod, sys_chmod, 6088, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_chown +TRACE_SYSCALL_TABLE(sys_chown, sys_chown, 6090, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_lchown +TRACE_SYSCALL_TABLE(sys_lchown, sys_lchown, 6092, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_syslog +TRACE_SYSCALL_TABLE(sys_syslog, sys_syslog, 6101, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_getgroups +TRACE_SYSCALL_TABLE(sys_getgroups, sys_getgroups, 6113, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_setgroups +TRACE_SYSCALL_TABLE(sys_setgroups, sys_setgroups, 6114, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_getresuid +TRACE_SYSCALL_TABLE(sys_getresuid, sys_getresuid, 6116, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_getresgid +TRACE_SYSCALL_TABLE(sys_getresgid, sys_getresgid, 6118, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_32_rt_sigpending +TRACE_SYSCALL_TABLE(sys_32_rt_sigpending, sys_32_rt_sigpending, 6125, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_32_rt_sigqueueinfo +TRACE_SYSCALL_TABLE(sys_32_rt_sigqueueinfo, sys_32_rt_sigqueueinfo, 6127, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_mknod +TRACE_SYSCALL_TABLE(sys_mknod, sys_mknod, 6131, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_sched_setparam +TRACE_SYSCALL_TABLE(sys_sched_setparam, sys_sched_setparam, 6139, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_sched_getparam +TRACE_SYSCALL_TABLE(sys_sched_getparam, sys_sched_getparam, 6140, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_sched_setscheduler +TRACE_SYSCALL_TABLE(sys_sched_setscheduler, sys_sched_setscheduler, 6141, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_32_sched_rr_get_interval +TRACE_SYSCALL_TABLE(sys_32_sched_rr_get_interval, sys_32_sched_rr_get_interval, 6145, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_pivot_root +TRACE_SYSCALL_TABLE(sys_pivot_root, sys_pivot_root, 6151, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_chroot +TRACE_SYSCALL_TABLE(sys_chroot, sys_chroot, 6156, 1) +#endif +#ifndef OVERRIDE_TABLE_64_sys_umount +TRACE_SYSCALL_TABLE(sys_umount, sys_umount, 6161, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_swapon +TRACE_SYSCALL_TABLE(sys_swapon, sys_swapon, 6162, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_swapoff +TRACE_SYSCALL_TABLE(sys_swapoff, sys_swapoff, 6163, 1) +#endif +#ifndef OVERRIDE_TABLE_64_sys_reboot +TRACE_SYSCALL_TABLE(sys_reboot, sys_reboot, 6164, 4) +#endif +#ifndef OVERRIDE_TABLE_64_sys_sethostname +TRACE_SYSCALL_TABLE(sys_sethostname, sys_sethostname, 6165, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_setdomainname +TRACE_SYSCALL_TABLE(sys_setdomainname, sys_setdomainname, 6166, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_init_module +TRACE_SYSCALL_TABLE(sys_init_module, sys_init_module, 6168, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_delete_module +TRACE_SYSCALL_TABLE(sys_delete_module, sys_delete_module, 6169, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_quotactl +TRACE_SYSCALL_TABLE(sys_quotactl, sys_quotactl, 6172, 4) +#endif +#ifndef OVERRIDE_TABLE_64_sys_setxattr +TRACE_SYSCALL_TABLE(sys_setxattr, sys_setxattr, 6180, 5) +#endif +#ifndef OVERRIDE_TABLE_64_sys_lsetxattr +TRACE_SYSCALL_TABLE(sys_lsetxattr, sys_lsetxattr, 6181, 5) +#endif +#ifndef OVERRIDE_TABLE_64_sys_fsetxattr +TRACE_SYSCALL_TABLE(sys_fsetxattr, sys_fsetxattr, 6182, 5) +#endif +#ifndef OVERRIDE_TABLE_64_sys_getxattr +TRACE_SYSCALL_TABLE(sys_getxattr, sys_getxattr, 6183, 4) +#endif +#ifndef OVERRIDE_TABLE_64_sys_lgetxattr +TRACE_SYSCALL_TABLE(sys_lgetxattr, sys_lgetxattr, 6184, 4) +#endif +#ifndef OVERRIDE_TABLE_64_sys_fgetxattr +TRACE_SYSCALL_TABLE(sys_fgetxattr, sys_fgetxattr, 6185, 4) +#endif +#ifndef OVERRIDE_TABLE_64_sys_listxattr +TRACE_SYSCALL_TABLE(sys_listxattr, sys_listxattr, 6186, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_llistxattr +TRACE_SYSCALL_TABLE(sys_llistxattr, sys_llistxattr, 6187, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_flistxattr +TRACE_SYSCALL_TABLE(sys_flistxattr, sys_flistxattr, 6188, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_removexattr +TRACE_SYSCALL_TABLE(sys_removexattr, sys_removexattr, 6189, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_lremovexattr +TRACE_SYSCALL_TABLE(sys_lremovexattr, sys_lremovexattr, 6190, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_fremovexattr +TRACE_SYSCALL_TABLE(sys_fremovexattr, sys_fremovexattr, 6191, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_32_futex +TRACE_SYSCALL_TABLE(sys_32_futex, sys_32_futex, 6194, 6) +#endif +#ifndef OVERRIDE_TABLE_64_sys_cachectl +TRACE_SYSCALL_TABLE(sys_cachectl, sys_cachectl, 6198, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_io_cancel +TRACE_SYSCALL_TABLE(sys_io_cancel, sys_io_cancel, 6204, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_epoll_ctl +TRACE_SYSCALL_TABLE(sys_epoll_ctl, sys_epoll_ctl, 6208, 4) +#endif +#ifndef OVERRIDE_TABLE_64_sys_epoll_wait +TRACE_SYSCALL_TABLE(sys_epoll_wait, sys_epoll_wait, 6209, 4) +#endif +#ifndef OVERRIDE_TABLE_64_sys_set_tid_address +TRACE_SYSCALL_TABLE(sys_set_tid_address, sys_set_tid_address, 6213, 1) +#endif +#ifndef OVERRIDE_TABLE_64_sys_sendfile64 +TRACE_SYSCALL_TABLE(sys_sendfile64, sys_sendfile64, 6219, 4) +#endif +#ifndef OVERRIDE_TABLE_64_sys_inotify_add_watch +TRACE_SYSCALL_TABLE(sys_inotify_add_watch, sys_inotify_add_watch, 6248, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_openat +TRACE_SYSCALL_TABLE(sys_openat, sys_openat, 6251, 4) +#endif +#ifndef OVERRIDE_TABLE_64_sys_mkdirat +TRACE_SYSCALL_TABLE(sys_mkdirat, sys_mkdirat, 6252, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_mknodat +TRACE_SYSCALL_TABLE(sys_mknodat, sys_mknodat, 6253, 4) +#endif +#ifndef OVERRIDE_TABLE_64_sys_fchownat +TRACE_SYSCALL_TABLE(sys_fchownat, sys_fchownat, 6254, 5) +#endif +#ifndef OVERRIDE_TABLE_64_sys_newfstatat +TRACE_SYSCALL_TABLE(sys_newfstatat, sys_newfstatat, 6256, 4) +#endif +#ifndef OVERRIDE_TABLE_64_sys_unlinkat +TRACE_SYSCALL_TABLE(sys_unlinkat, sys_unlinkat, 6257, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_renameat +TRACE_SYSCALL_TABLE(sys_renameat, sys_renameat, 6258, 4) +#endif +#ifndef OVERRIDE_TABLE_64_sys_linkat +TRACE_SYSCALL_TABLE(sys_linkat, sys_linkat, 6259, 5) +#endif +#ifndef OVERRIDE_TABLE_64_sys_symlinkat +TRACE_SYSCALL_TABLE(sys_symlinkat, sys_symlinkat, 6260, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_readlinkat +TRACE_SYSCALL_TABLE(sys_readlinkat, sys_readlinkat, 6261, 4) +#endif +#ifndef OVERRIDE_TABLE_64_sys_fchmodat +TRACE_SYSCALL_TABLE(sys_fchmodat, sys_fchmodat, 6262, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_faccessat +TRACE_SYSCALL_TABLE(sys_faccessat, sys_faccessat, 6263, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_splice +TRACE_SYSCALL_TABLE(sys_splice, sys_splice, 6267, 6) +#endif +#ifndef OVERRIDE_TABLE_64_sys_getcpu +TRACE_SYSCALL_TABLE(sys_getcpu, sys_getcpu, 6275, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_signalfd4 +TRACE_SYSCALL_TABLE(sys_signalfd4, sys_signalfd4, 6287, 4) +#endif +#ifndef OVERRIDE_TABLE_64_sys_pipe2 +TRACE_SYSCALL_TABLE(sys_pipe2, sys_pipe2, 6291, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_preadv +TRACE_SYSCALL_TABLE(sys_preadv, sys_preadv, 6293, 5) +#endif +#ifndef OVERRIDE_TABLE_64_sys_pwritev +TRACE_SYSCALL_TABLE(sys_pwritev, sys_pwritev, 6294, 5) +#endif +#ifndef OVERRIDE_TABLE_64_sys_accept4 +TRACE_SYSCALL_TABLE(sys_accept4, sys_accept4, 6297, 4) +#endif +#ifndef OVERRIDE_TABLE_64_sys_getdents64 +TRACE_SYSCALL_TABLE(sys_getdents64, sys_getdents64, 6299, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_prlimit64 +TRACE_SYSCALL_TABLE(sys_prlimit64, sys_prlimit64, 6302, 4) +#endif + +#endif /* CREATE_SYSCALL_TABLE */ --- linux-3.11.0.orig/ubuntu/lttng/instrumentation/syscalls/headers/arm-32-syscalls-3.4.25_integers_override.h +++ linux-3.11.0/ubuntu/lttng/instrumentation/syscalls/headers/arm-32-syscalls-3.4.25_integers_override.h @@ -0,0 +1,52 @@ + + +#define OVERRIDE_TABLE_32_sys_arm_fadvise64_64 +#define OVERRIDE_TABLE_32_sys_sync_file_range2 + +#ifndef CREATE_SYSCALL_TABLE + +SC_TRACE_EVENT(sys_arm_fadvise64_64, + TP_PROTO(int fd, int advice, loff_t offset, loff_t len), + TP_ARGS(fd, advice, offset, len), + TP_STRUCT__entry( + __field_hex(int, fd) + __field_hex(int, advice) + __field_hex(loff_t, offset) + __field_hex(loff_t, len)), + TP_fast_assign( + tp_assign(fd, fd) + tp_assign(advice, advice) + tp_assign(offset, offset) + tp_assign(len, len)), + TP_printk() +) + +SC_TRACE_EVENT(sys_sync_file_range2, + TP_PROTO(int fd, loff_t offset, loff_t nbytes, unsigned int flags), + TP_ARGS(fd, offset, nbytes, flags), + TP_STRUCT__entry( + __field_hex(int, fd) + __field_hex(loff_t, offset) + __field_hex(loff_t, nbytes) + __field_hex(unsigned int, flags)), + TP_fast_assign( + tp_assign(fd, fd) + tp_assign(offset, offset) + tp_assign(nbytes, nbytes) + tp_assign(flags, flags)), + TP_printk() +) + +#else /* CREATE_SYSCALL_TABLE */ + +#define OVVERRIDE_TABLE_32_sys_mmap +TRACE_SYSCALL_TABLE(sys_mmap, sys_mmap, 90, 6) + +#define OVERRIDE_TABLE_32_sys_arm_fadvise64_64 +TRACE_SYSCALL_TABLE(sys_arm_fadvise64_64, sys_arm_fadvise64_64, 270, 4) +#define OVERRIDE_TABLE_32_sys_sync_file_range2 +TRACE_SYSCALL_TABLE(sys_sync_file_range2, sys_sync_file_range2, 341, 4) + +#endif /* CREATE_SYSCALL_TABLE */ + + --- linux-3.11.0.orig/ubuntu/lttng/instrumentation/syscalls/headers/arm-32-syscalls-3.4.25_integers.h +++ linux-3.11.0/ubuntu/lttng/instrumentation/syscalls/headers/arm-32-syscalls-3.4.25_integers.h @@ -0,0 +1,1181 @@ +/* THIS FILE IS AUTO-GENERATED. DO NOT EDIT */ +#ifndef CREATE_SYSCALL_TABLE + +#if !defined(_TRACE_SYSCALLS_INTEGERS_H) || defined(TRACE_HEADER_MULTI_READ) +#define _TRACE_SYSCALLS_INTEGERS_H + +#include +#include +#include "arm-32-syscalls-3.4.25_integers_override.h" +#include "syscalls_integers_override.h" + +SC_DECLARE_EVENT_CLASS_NOARGS(syscalls_noargs, + TP_STRUCT__entry(), + TP_fast_assign(), + TP_printk() +) +#ifndef OVERRIDE_32_sys_restart_syscall +SC_DEFINE_EVENT_NOARGS(syscalls_noargs, sys_restart_syscall) +#endif +#ifndef OVERRIDE_32_sys_getpid +SC_DEFINE_EVENT_NOARGS(syscalls_noargs, sys_getpid) +#endif +#ifndef OVERRIDE_32_sys_getuid16 +SC_DEFINE_EVENT_NOARGS(syscalls_noargs, sys_getuid16) +#endif +#ifndef OVERRIDE_32_sys_pause +SC_DEFINE_EVENT_NOARGS(syscalls_noargs, sys_pause) +#endif +#ifndef OVERRIDE_32_sys_sync +SC_DEFINE_EVENT_NOARGS(syscalls_noargs, sys_sync) +#endif +#ifndef OVERRIDE_32_sys_getgid16 +SC_DEFINE_EVENT_NOARGS(syscalls_noargs, sys_getgid16) +#endif +#ifndef OVERRIDE_32_sys_geteuid16 +SC_DEFINE_EVENT_NOARGS(syscalls_noargs, sys_geteuid16) +#endif +#ifndef OVERRIDE_32_sys_getegid16 +SC_DEFINE_EVENT_NOARGS(syscalls_noargs, sys_getegid16) +#endif +#ifndef OVERRIDE_32_sys_getppid +SC_DEFINE_EVENT_NOARGS(syscalls_noargs, sys_getppid) +#endif +#ifndef OVERRIDE_32_sys_getpgrp +SC_DEFINE_EVENT_NOARGS(syscalls_noargs, sys_getpgrp) +#endif +#ifndef OVERRIDE_32_sys_setsid +SC_DEFINE_EVENT_NOARGS(syscalls_noargs, sys_setsid) +#endif +#ifndef OVERRIDE_32_sys_vhangup +SC_DEFINE_EVENT_NOARGS(syscalls_noargs, sys_vhangup) +#endif +#ifndef OVERRIDE_32_sys_munlockall +SC_DEFINE_EVENT_NOARGS(syscalls_noargs, sys_munlockall) +#endif +#ifndef OVERRIDE_32_sys_sched_yield +SC_DEFINE_EVENT_NOARGS(syscalls_noargs, sys_sched_yield) +#endif +#ifndef OVERRIDE_32_sys_getuid +SC_DEFINE_EVENT_NOARGS(syscalls_noargs, sys_getuid) +#endif +#ifndef OVERRIDE_32_sys_getgid +SC_DEFINE_EVENT_NOARGS(syscalls_noargs, sys_getgid) +#endif +#ifndef OVERRIDE_32_sys_geteuid +SC_DEFINE_EVENT_NOARGS(syscalls_noargs, sys_geteuid) +#endif +#ifndef OVERRIDE_32_sys_getegid +SC_DEFINE_EVENT_NOARGS(syscalls_noargs, sys_getegid) +#endif +#ifndef OVERRIDE_32_sys_gettid +SC_DEFINE_EVENT_NOARGS(syscalls_noargs, sys_gettid) +#endif +#ifndef OVERRIDE_32_sys_inotify_init +SC_DEFINE_EVENT_NOARGS(syscalls_noargs, sys_inotify_init) +#endif +#ifndef OVERRIDE_32_sys_exit +SC_TRACE_EVENT(sys_exit, + TP_PROTO(int error_code), + TP_ARGS(error_code), + TP_STRUCT__entry(__field(int, error_code)), + TP_fast_assign(tp_assign(error_code, error_code)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_close +SC_TRACE_EVENT(sys_close, + TP_PROTO(unsigned int fd), + TP_ARGS(fd), + TP_STRUCT__entry(__field(unsigned int, fd)), + TP_fast_assign(tp_assign(fd, fd)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_setuid16 +SC_TRACE_EVENT(sys_setuid16, + TP_PROTO(old_uid_t uid), + TP_ARGS(uid), + TP_STRUCT__entry(__field(old_uid_t, uid)), + TP_fast_assign(tp_assign(uid, uid)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_nice +SC_TRACE_EVENT(sys_nice, + TP_PROTO(int increment), + TP_ARGS(increment), + TP_STRUCT__entry(__field(int, increment)), + TP_fast_assign(tp_assign(increment, increment)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_dup +SC_TRACE_EVENT(sys_dup, + TP_PROTO(unsigned int fildes), + TP_ARGS(fildes), + TP_STRUCT__entry(__field(unsigned int, fildes)), + TP_fast_assign(tp_assign(fildes, fildes)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_brk +SC_TRACE_EVENT(sys_brk, + TP_PROTO(unsigned long brk), + TP_ARGS(brk), + TP_STRUCT__entry(__field(unsigned long, brk)), + TP_fast_assign(tp_assign(brk, brk)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_setgid16 +SC_TRACE_EVENT(sys_setgid16, + TP_PROTO(old_gid_t gid), + TP_ARGS(gid), + TP_STRUCT__entry(__field(old_gid_t, gid)), + TP_fast_assign(tp_assign(gid, gid)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_umask +SC_TRACE_EVENT(sys_umask, + TP_PROTO(int mask), + TP_ARGS(mask), + TP_STRUCT__entry(__field(int, mask)), + TP_fast_assign(tp_assign(mask, mask)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_fsync +SC_TRACE_EVENT(sys_fsync, + TP_PROTO(unsigned int fd), + TP_ARGS(fd), + TP_STRUCT__entry(__field(unsigned int, fd)), + TP_fast_assign(tp_assign(fd, fd)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_getpgid +SC_TRACE_EVENT(sys_getpgid, + TP_PROTO(pid_t pid), + TP_ARGS(pid), + TP_STRUCT__entry(__field(pid_t, pid)), + TP_fast_assign(tp_assign(pid, pid)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_fchdir +SC_TRACE_EVENT(sys_fchdir, + TP_PROTO(unsigned int fd), + TP_ARGS(fd), + TP_STRUCT__entry(__field(unsigned int, fd)), + TP_fast_assign(tp_assign(fd, fd)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_personality +SC_TRACE_EVENT(sys_personality, + TP_PROTO(unsigned int personality), + TP_ARGS(personality), + TP_STRUCT__entry(__field(unsigned int, personality)), + TP_fast_assign(tp_assign(personality, personality)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_setfsuid16 +SC_TRACE_EVENT(sys_setfsuid16, + TP_PROTO(old_uid_t uid), + TP_ARGS(uid), + TP_STRUCT__entry(__field(old_uid_t, uid)), + TP_fast_assign(tp_assign(uid, uid)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_setfsgid16 +SC_TRACE_EVENT(sys_setfsgid16, + TP_PROTO(old_gid_t gid), + TP_ARGS(gid), + TP_STRUCT__entry(__field(old_gid_t, gid)), + TP_fast_assign(tp_assign(gid, gid)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_getsid +SC_TRACE_EVENT(sys_getsid, + TP_PROTO(pid_t pid), + TP_ARGS(pid), + TP_STRUCT__entry(__field(pid_t, pid)), + TP_fast_assign(tp_assign(pid, pid)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_fdatasync +SC_TRACE_EVENT(sys_fdatasync, + TP_PROTO(unsigned int fd), + TP_ARGS(fd), + TP_STRUCT__entry(__field(unsigned int, fd)), + TP_fast_assign(tp_assign(fd, fd)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_mlockall +SC_TRACE_EVENT(sys_mlockall, + TP_PROTO(int flags), + TP_ARGS(flags), + TP_STRUCT__entry(__field(int, flags)), + TP_fast_assign(tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_sched_getscheduler +SC_TRACE_EVENT(sys_sched_getscheduler, + TP_PROTO(pid_t pid), + TP_ARGS(pid), + TP_STRUCT__entry(__field(pid_t, pid)), + TP_fast_assign(tp_assign(pid, pid)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_sched_get_priority_max +SC_TRACE_EVENT(sys_sched_get_priority_max, + TP_PROTO(int policy), + TP_ARGS(policy), + TP_STRUCT__entry(__field(int, policy)), + TP_fast_assign(tp_assign(policy, policy)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_sched_get_priority_min +SC_TRACE_EVENT(sys_sched_get_priority_min, + TP_PROTO(int policy), + TP_ARGS(policy), + TP_STRUCT__entry(__field(int, policy)), + TP_fast_assign(tp_assign(policy, policy)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_setuid +SC_TRACE_EVENT(sys_setuid, + TP_PROTO(uid_t uid), + TP_ARGS(uid), + TP_STRUCT__entry(__field(uid_t, uid)), + TP_fast_assign(tp_assign(uid, uid)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_setgid +SC_TRACE_EVENT(sys_setgid, + TP_PROTO(gid_t gid), + TP_ARGS(gid), + TP_STRUCT__entry(__field(gid_t, gid)), + TP_fast_assign(tp_assign(gid, gid)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_setfsuid +SC_TRACE_EVENT(sys_setfsuid, + TP_PROTO(uid_t uid), + TP_ARGS(uid), + TP_STRUCT__entry(__field(uid_t, uid)), + TP_fast_assign(tp_assign(uid, uid)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_setfsgid +SC_TRACE_EVENT(sys_setfsgid, + TP_PROTO(gid_t gid), + TP_ARGS(gid), + TP_STRUCT__entry(__field(gid_t, gid)), + TP_fast_assign(tp_assign(gid, gid)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_io_destroy +SC_TRACE_EVENT(sys_io_destroy, + TP_PROTO(aio_context_t ctx), + TP_ARGS(ctx), + TP_STRUCT__entry(__field(aio_context_t, ctx)), + TP_fast_assign(tp_assign(ctx, ctx)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_exit_group +SC_TRACE_EVENT(sys_exit_group, + TP_PROTO(int error_code), + TP_ARGS(error_code), + TP_STRUCT__entry(__field(int, error_code)), + TP_fast_assign(tp_assign(error_code, error_code)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_epoll_create +SC_TRACE_EVENT(sys_epoll_create, + TP_PROTO(int size), + TP_ARGS(size), + TP_STRUCT__entry(__field(int, size)), + TP_fast_assign(tp_assign(size, size)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_timer_getoverrun +SC_TRACE_EVENT(sys_timer_getoverrun, + TP_PROTO(timer_t timer_id), + TP_ARGS(timer_id), + TP_STRUCT__entry(__field(timer_t, timer_id)), + TP_fast_assign(tp_assign(timer_id, timer_id)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_timer_delete +SC_TRACE_EVENT(sys_timer_delete, + TP_PROTO(timer_t timer_id), + TP_ARGS(timer_id), + TP_STRUCT__entry(__field(timer_t, timer_id)), + TP_fast_assign(tp_assign(timer_id, timer_id)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_unshare +SC_TRACE_EVENT(sys_unshare, + TP_PROTO(unsigned long unshare_flags), + TP_ARGS(unshare_flags), + TP_STRUCT__entry(__field(unsigned long, unshare_flags)), + TP_fast_assign(tp_assign(unshare_flags, unshare_flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_eventfd +SC_TRACE_EVENT(sys_eventfd, + TP_PROTO(unsigned int count), + TP_ARGS(count), + TP_STRUCT__entry(__field(unsigned int, count)), + TP_fast_assign(tp_assign(count, count)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_epoll_create1 +SC_TRACE_EVENT(sys_epoll_create1, + TP_PROTO(int flags), + TP_ARGS(flags), + TP_STRUCT__entry(__field(int, flags)), + TP_fast_assign(tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_inotify_init1 +SC_TRACE_EVENT(sys_inotify_init1, + TP_PROTO(int flags), + TP_ARGS(flags), + TP_STRUCT__entry(__field(int, flags)), + TP_fast_assign(tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_syncfs +SC_TRACE_EVENT(sys_syncfs, + TP_PROTO(int fd), + TP_ARGS(fd), + TP_STRUCT__entry(__field(int, fd)), + TP_fast_assign(tp_assign(fd, fd)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_kill +SC_TRACE_EVENT(sys_kill, + TP_PROTO(pid_t pid, int sig), + TP_ARGS(pid, sig), + TP_STRUCT__entry(__field(pid_t, pid) __field(int, sig)), + TP_fast_assign(tp_assign(pid, pid) tp_assign(sig, sig)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_setpgid +SC_TRACE_EVENT(sys_setpgid, + TP_PROTO(pid_t pid, pid_t pgid), + TP_ARGS(pid, pgid), + TP_STRUCT__entry(__field(pid_t, pid) __field(pid_t, pgid)), + TP_fast_assign(tp_assign(pid, pid) tp_assign(pgid, pgid)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_dup2 +SC_TRACE_EVENT(sys_dup2, + TP_PROTO(unsigned int oldfd, unsigned int newfd), + TP_ARGS(oldfd, newfd), + TP_STRUCT__entry(__field(unsigned int, oldfd) __field(unsigned int, newfd)), + TP_fast_assign(tp_assign(oldfd, oldfd) tp_assign(newfd, newfd)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_setreuid16 +SC_TRACE_EVENT(sys_setreuid16, + TP_PROTO(old_uid_t ruid, old_uid_t euid), + TP_ARGS(ruid, euid), + TP_STRUCT__entry(__field(old_uid_t, ruid) __field(old_uid_t, euid)), + TP_fast_assign(tp_assign(ruid, ruid) tp_assign(euid, euid)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_setregid16 +SC_TRACE_EVENT(sys_setregid16, + TP_PROTO(old_gid_t rgid, old_gid_t egid), + TP_ARGS(rgid, egid), + TP_STRUCT__entry(__field(old_gid_t, rgid) __field(old_gid_t, egid)), + TP_fast_assign(tp_assign(rgid, rgid) tp_assign(egid, egid)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_munmap +SC_TRACE_EVENT(sys_munmap, + TP_PROTO(unsigned long addr, size_t len), + TP_ARGS(addr, len), + TP_STRUCT__entry(__field_hex(unsigned long, addr) __field(size_t, len)), + TP_fast_assign(tp_assign(addr, addr) tp_assign(len, len)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_ftruncate +SC_TRACE_EVENT(sys_ftruncate, + TP_PROTO(unsigned int fd, unsigned long length), + TP_ARGS(fd, length), + TP_STRUCT__entry(__field(unsigned int, fd) __field(unsigned long, length)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(length, length)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_fchmod +SC_TRACE_EVENT(sys_fchmod, + TP_PROTO(unsigned int fd, umode_t mode), + TP_ARGS(fd, mode), + TP_STRUCT__entry(__field(unsigned int, fd) __field(umode_t, mode)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(mode, mode)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_getpriority +SC_TRACE_EVENT(sys_getpriority, + TP_PROTO(int which, int who), + TP_ARGS(which, who), + TP_STRUCT__entry(__field(int, which) __field(int, who)), + TP_fast_assign(tp_assign(which, which) tp_assign(who, who)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_bdflush +SC_TRACE_EVENT(sys_bdflush, + TP_PROTO(int func, long data), + TP_ARGS(func, data), + TP_STRUCT__entry(__field(int, func) __field(long, data)), + TP_fast_assign(tp_assign(func, func) tp_assign(data, data)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_flock +SC_TRACE_EVENT(sys_flock, + TP_PROTO(unsigned int fd, unsigned int cmd), + TP_ARGS(fd, cmd), + TP_STRUCT__entry(__field(unsigned int, fd) __field(unsigned int, cmd)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(cmd, cmd)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_mlock +SC_TRACE_EVENT(sys_mlock, + TP_PROTO(unsigned long start, size_t len), + TP_ARGS(start, len), + TP_STRUCT__entry(__field(unsigned long, start) __field(size_t, len)), + TP_fast_assign(tp_assign(start, start) tp_assign(len, len)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_munlock +SC_TRACE_EVENT(sys_munlock, + TP_PROTO(unsigned long start, size_t len), + TP_ARGS(start, len), + TP_STRUCT__entry(__field(unsigned long, start) __field(size_t, len)), + TP_fast_assign(tp_assign(start, start) tp_assign(len, len)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_setreuid +SC_TRACE_EVENT(sys_setreuid, + TP_PROTO(uid_t ruid, uid_t euid), + TP_ARGS(ruid, euid), + TP_STRUCT__entry(__field(uid_t, ruid) __field(uid_t, euid)), + TP_fast_assign(tp_assign(ruid, ruid) tp_assign(euid, euid)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_setregid +SC_TRACE_EVENT(sys_setregid, + TP_PROTO(gid_t rgid, gid_t egid), + TP_ARGS(rgid, egid), + TP_STRUCT__entry(__field(gid_t, rgid) __field(gid_t, egid)), + TP_fast_assign(tp_assign(rgid, rgid) tp_assign(egid, egid)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_tkill +SC_TRACE_EVENT(sys_tkill, + TP_PROTO(pid_t pid, int sig), + TP_ARGS(pid, sig), + TP_STRUCT__entry(__field(pid_t, pid) __field(int, sig)), + TP_fast_assign(tp_assign(pid, pid) tp_assign(sig, sig)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_listen +SC_TRACE_EVENT(sys_listen, + TP_PROTO(int fd, int backlog), + TP_ARGS(fd, backlog), + TP_STRUCT__entry(__field(int, fd) __field(int, backlog)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(backlog, backlog)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_shutdown +SC_TRACE_EVENT(sys_shutdown, + TP_PROTO(int fd, int how), + TP_ARGS(fd, how), + TP_STRUCT__entry(__field(int, fd) __field(int, how)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(how, how)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_msgget +SC_TRACE_EVENT(sys_msgget, + TP_PROTO(key_t key, int msgflg), + TP_ARGS(key, msgflg), + TP_STRUCT__entry(__field(key_t, key) __field(int, msgflg)), + TP_fast_assign(tp_assign(key, key) tp_assign(msgflg, msgflg)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_ioprio_get +SC_TRACE_EVENT(sys_ioprio_get, + TP_PROTO(int which, int who), + TP_ARGS(which, who), + TP_STRUCT__entry(__field(int, which) __field(int, who)), + TP_fast_assign(tp_assign(which, which) tp_assign(who, who)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_inotify_rm_watch +SC_TRACE_EVENT(sys_inotify_rm_watch, + TP_PROTO(int fd, __s32 wd), + TP_ARGS(fd, wd), + TP_STRUCT__entry(__field(int, fd) __field(__s32, wd)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(wd, wd)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_timerfd_create +SC_TRACE_EVENT(sys_timerfd_create, + TP_PROTO(int clockid, int flags), + TP_ARGS(clockid, flags), + TP_STRUCT__entry(__field(int, clockid) __field(int, flags)), + TP_fast_assign(tp_assign(clockid, clockid) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_eventfd2 +SC_TRACE_EVENT(sys_eventfd2, + TP_PROTO(unsigned int count, int flags), + TP_ARGS(count, flags), + TP_STRUCT__entry(__field(unsigned int, count) __field(int, flags)), + TP_fast_assign(tp_assign(count, count) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_fanotify_init +SC_TRACE_EVENT(sys_fanotify_init, + TP_PROTO(unsigned int flags, unsigned int event_f_flags), + TP_ARGS(flags, event_f_flags), + TP_STRUCT__entry(__field(unsigned int, flags) __field(unsigned int, event_f_flags)), + TP_fast_assign(tp_assign(flags, flags) tp_assign(event_f_flags, event_f_flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_setns +SC_TRACE_EVENT(sys_setns, + TP_PROTO(int fd, int nstype), + TP_ARGS(fd, nstype), + TP_STRUCT__entry(__field(int, fd) __field(int, nstype)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(nstype, nstype)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_lseek +SC_TRACE_EVENT(sys_lseek, + TP_PROTO(unsigned int fd, off_t offset, unsigned int origin), + TP_ARGS(fd, offset, origin), + TP_STRUCT__entry(__field(unsigned int, fd) __field(off_t, offset) __field(unsigned int, origin)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(offset, offset) tp_assign(origin, origin)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_ioctl +SC_TRACE_EVENT(sys_ioctl, + TP_PROTO(unsigned int fd, unsigned int cmd, unsigned long arg), + TP_ARGS(fd, cmd, arg), + TP_STRUCT__entry(__field(unsigned int, fd) __field(unsigned int, cmd) __field(unsigned long, arg)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(cmd, cmd) tp_assign(arg, arg)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_fcntl +SC_TRACE_EVENT(sys_fcntl, + TP_PROTO(unsigned int fd, unsigned int cmd, unsigned long arg), + TP_ARGS(fd, cmd, arg), + TP_STRUCT__entry(__field(unsigned int, fd) __field(unsigned int, cmd) __field(unsigned long, arg)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(cmd, cmd) tp_assign(arg, arg)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_fchown16 +SC_TRACE_EVENT(sys_fchown16, + TP_PROTO(unsigned int fd, old_uid_t user, old_gid_t group), + TP_ARGS(fd, user, group), + TP_STRUCT__entry(__field(unsigned int, fd) __field(old_uid_t, user) __field(old_gid_t, group)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(user, user) tp_assign(group, group)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_setpriority +SC_TRACE_EVENT(sys_setpriority, + TP_PROTO(int which, int who, int niceval), + TP_ARGS(which, who, niceval), + TP_STRUCT__entry(__field(int, which) __field(int, who) __field(int, niceval)), + TP_fast_assign(tp_assign(which, which) tp_assign(who, who) tp_assign(niceval, niceval)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_mprotect +SC_TRACE_EVENT(sys_mprotect, + TP_PROTO(unsigned long start, size_t len, unsigned long prot), + TP_ARGS(start, len, prot), + TP_STRUCT__entry(__field(unsigned long, start) __field(size_t, len) __field(unsigned long, prot)), + TP_fast_assign(tp_assign(start, start) tp_assign(len, len) tp_assign(prot, prot)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_sysfs +SC_TRACE_EVENT(sys_sysfs, + TP_PROTO(int option, unsigned long arg1, unsigned long arg2), + TP_ARGS(option, arg1, arg2), + TP_STRUCT__entry(__field(int, option) __field(unsigned long, arg1) __field(unsigned long, arg2)), + TP_fast_assign(tp_assign(option, option) tp_assign(arg1, arg1) tp_assign(arg2, arg2)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_msync +SC_TRACE_EVENT(sys_msync, + TP_PROTO(unsigned long start, size_t len, int flags), + TP_ARGS(start, len, flags), + TP_STRUCT__entry(__field(unsigned long, start) __field(size_t, len) __field(int, flags)), + TP_fast_assign(tp_assign(start, start) tp_assign(len, len) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_setresuid16 +SC_TRACE_EVENT(sys_setresuid16, + TP_PROTO(old_uid_t ruid, old_uid_t euid, old_uid_t suid), + TP_ARGS(ruid, euid, suid), + TP_STRUCT__entry(__field(old_uid_t, ruid) __field(old_uid_t, euid) __field(old_uid_t, suid)), + TP_fast_assign(tp_assign(ruid, ruid) tp_assign(euid, euid) tp_assign(suid, suid)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_setresgid16 +SC_TRACE_EVENT(sys_setresgid16, + TP_PROTO(old_gid_t rgid, old_gid_t egid, old_gid_t sgid), + TP_ARGS(rgid, egid, sgid), + TP_STRUCT__entry(__field(old_gid_t, rgid) __field(old_gid_t, egid) __field(old_gid_t, sgid)), + TP_fast_assign(tp_assign(rgid, rgid) tp_assign(egid, egid) tp_assign(sgid, sgid)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_fchown +SC_TRACE_EVENT(sys_fchown, + TP_PROTO(unsigned int fd, uid_t user, gid_t group), + TP_ARGS(fd, user, group), + TP_STRUCT__entry(__field(unsigned int, fd) __field(uid_t, user) __field(gid_t, group)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(user, user) tp_assign(group, group)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_setresuid +SC_TRACE_EVENT(sys_setresuid, + TP_PROTO(uid_t ruid, uid_t euid, uid_t suid), + TP_ARGS(ruid, euid, suid), + TP_STRUCT__entry(__field(uid_t, ruid) __field(uid_t, euid) __field(uid_t, suid)), + TP_fast_assign(tp_assign(ruid, ruid) tp_assign(euid, euid) tp_assign(suid, suid)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_setresgid +SC_TRACE_EVENT(sys_setresgid, + TP_PROTO(gid_t rgid, gid_t egid, gid_t sgid), + TP_ARGS(rgid, egid, sgid), + TP_STRUCT__entry(__field(gid_t, rgid) __field(gid_t, egid) __field(gid_t, sgid)), + TP_fast_assign(tp_assign(rgid, rgid) tp_assign(egid, egid) tp_assign(sgid, sgid)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_madvise +SC_TRACE_EVENT(sys_madvise, + TP_PROTO(unsigned long start, size_t len_in, int behavior), + TP_ARGS(start, len_in, behavior), + TP_STRUCT__entry(__field(unsigned long, start) __field(size_t, len_in) __field(int, behavior)), + TP_fast_assign(tp_assign(start, start) tp_assign(len_in, len_in) tp_assign(behavior, behavior)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_fcntl64 +SC_TRACE_EVENT(sys_fcntl64, + TP_PROTO(unsigned int fd, unsigned int cmd, unsigned long arg), + TP_ARGS(fd, cmd, arg), + TP_STRUCT__entry(__field(unsigned int, fd) __field(unsigned int, cmd) __field(unsigned long, arg)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(cmd, cmd) tp_assign(arg, arg)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_tgkill +SC_TRACE_EVENT(sys_tgkill, + TP_PROTO(pid_t tgid, pid_t pid, int sig), + TP_ARGS(tgid, pid, sig), + TP_STRUCT__entry(__field(pid_t, tgid) __field(pid_t, pid) __field(int, sig)), + TP_fast_assign(tp_assign(tgid, tgid) tp_assign(pid, pid) tp_assign(sig, sig)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_socket +SC_TRACE_EVENT(sys_socket, + TP_PROTO(int family, int type, int protocol), + TP_ARGS(family, type, protocol), + TP_STRUCT__entry(__field(int, family) __field(int, type) __field(int, protocol)), + TP_fast_assign(tp_assign(family, family) tp_assign(type, type) tp_assign(protocol, protocol)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_semget +SC_TRACE_EVENT(sys_semget, + TP_PROTO(key_t key, int nsems, int semflg), + TP_ARGS(key, nsems, semflg), + TP_STRUCT__entry(__field(key_t, key) __field(int, nsems) __field(int, semflg)), + TP_fast_assign(tp_assign(key, key) tp_assign(nsems, nsems) tp_assign(semflg, semflg)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_shmget +SC_TRACE_EVENT(sys_shmget, + TP_PROTO(key_t key, size_t size, int shmflg), + TP_ARGS(key, size, shmflg), + TP_STRUCT__entry(__field(key_t, key) __field(size_t, size) __field(int, shmflg)), + TP_fast_assign(tp_assign(key, key) tp_assign(size, size) tp_assign(shmflg, shmflg)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_ioprio_set +SC_TRACE_EVENT(sys_ioprio_set, + TP_PROTO(int which, int who, int ioprio), + TP_ARGS(which, who, ioprio), + TP_STRUCT__entry(__field(int, which) __field(int, who) __field(int, ioprio)), + TP_fast_assign(tp_assign(which, which) tp_assign(who, who) tp_assign(ioprio, ioprio)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_dup3 +SC_TRACE_EVENT(sys_dup3, + TP_PROTO(unsigned int oldfd, unsigned int newfd, int flags), + TP_ARGS(oldfd, newfd, flags), + TP_STRUCT__entry(__field(unsigned int, oldfd) __field(unsigned int, newfd) __field(int, flags)), + TP_fast_assign(tp_assign(oldfd, oldfd) tp_assign(newfd, newfd) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_ptrace +SC_TRACE_EVENT(sys_ptrace, + TP_PROTO(long request, long pid, unsigned long addr, unsigned long data), + TP_ARGS(request, pid, addr, data), + TP_STRUCT__entry(__field(long, request) __field(long, pid) __field_hex(unsigned long, addr) __field(unsigned long, data)), + TP_fast_assign(tp_assign(request, request) tp_assign(pid, pid) tp_assign(addr, addr) tp_assign(data, data)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_tee +SC_TRACE_EVENT(sys_tee, + TP_PROTO(int fdin, int fdout, size_t len, unsigned int flags), + TP_ARGS(fdin, fdout, len, flags), + TP_STRUCT__entry(__field(int, fdin) __field(int, fdout) __field(size_t, len) __field(unsigned int, flags)), + TP_fast_assign(tp_assign(fdin, fdin) tp_assign(fdout, fdout) tp_assign(len, len) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_mremap +SC_TRACE_EVENT(sys_mremap, + TP_PROTO(unsigned long addr, unsigned long old_len, unsigned long new_len, unsigned long flags, unsigned long new_addr), + TP_ARGS(addr, old_len, new_len, flags, new_addr), + TP_STRUCT__entry(__field_hex(unsigned long, addr) __field(unsigned long, old_len) __field(unsigned long, new_len) __field(unsigned long, flags) __field_hex(unsigned long, new_addr)), + TP_fast_assign(tp_assign(addr, addr) tp_assign(old_len, old_len) tp_assign(new_len, new_len) tp_assign(flags, flags) tp_assign(new_addr, new_addr)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_prctl +SC_TRACE_EVENT(sys_prctl, + TP_PROTO(int option, unsigned long arg2, unsigned long arg3, unsigned long arg4, unsigned long arg5), + TP_ARGS(option, arg2, arg3, arg4, arg5), + TP_STRUCT__entry(__field(int, option) __field(unsigned long, arg2) __field(unsigned long, arg3) __field(unsigned long, arg4) __field(unsigned long, arg5)), + TP_fast_assign(tp_assign(option, option) tp_assign(arg2, arg2) tp_assign(arg3, arg3) tp_assign(arg4, arg4) tp_assign(arg5, arg5)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_remap_file_pages +SC_TRACE_EVENT(sys_remap_file_pages, + TP_PROTO(unsigned long start, unsigned long size, unsigned long prot, unsigned long pgoff, unsigned long flags), + TP_ARGS(start, size, prot, pgoff, flags), + TP_STRUCT__entry(__field(unsigned long, start) __field(unsigned long, size) __field(unsigned long, prot) __field(unsigned long, pgoff) __field(unsigned long, flags)), + TP_fast_assign(tp_assign(start, start) tp_assign(size, size) tp_assign(prot, prot) tp_assign(pgoff, pgoff) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_keyctl +SC_TRACE_EVENT(sys_keyctl, + TP_PROTO(int option, unsigned long arg2, unsigned long arg3, unsigned long arg4, unsigned long arg5), + TP_ARGS(option, arg2, arg3, arg4, arg5), + TP_STRUCT__entry(__field(int, option) __field(unsigned long, arg2) __field(unsigned long, arg3) __field(unsigned long, arg4) __field(unsigned long, arg5)), + TP_fast_assign(tp_assign(option, option) tp_assign(arg2, arg2) tp_assign(arg3, arg3) tp_assign(arg4, arg4) tp_assign(arg5, arg5)), + TP_printk() +) +#endif + +#endif /* _TRACE_SYSCALLS_INTEGERS_H */ + +/* This part must be outside protection */ +#include "../../../probes/define_trace.h" + +#else /* CREATE_SYSCALL_TABLE */ + +#include "arm-32-syscalls-3.4.25_integers_override.h" +#include "syscalls_integers_override.h" + +#ifndef OVERRIDE_TABLE_32_sys_restart_syscall +TRACE_SYSCALL_TABLE(syscalls_noargs, sys_restart_syscall, 0, 0) +#endif +#ifndef OVERRIDE_TABLE_32_sys_getpid +TRACE_SYSCALL_TABLE(syscalls_noargs, sys_getpid, 20, 0) +#endif +#ifndef OVERRIDE_TABLE_32_sys_getuid16 +TRACE_SYSCALL_TABLE(syscalls_noargs, sys_getuid16, 24, 0) +#endif +#ifndef OVERRIDE_TABLE_32_sys_pause +TRACE_SYSCALL_TABLE(syscalls_noargs, sys_pause, 29, 0) +#endif +#ifndef OVERRIDE_TABLE_32_sys_sync +TRACE_SYSCALL_TABLE(syscalls_noargs, sys_sync, 36, 0) +#endif +#ifndef OVERRIDE_TABLE_32_sys_getgid16 +TRACE_SYSCALL_TABLE(syscalls_noargs, sys_getgid16, 47, 0) +#endif +#ifndef OVERRIDE_TABLE_32_sys_geteuid16 +TRACE_SYSCALL_TABLE(syscalls_noargs, sys_geteuid16, 49, 0) +#endif +#ifndef OVERRIDE_TABLE_32_sys_getegid16 +TRACE_SYSCALL_TABLE(syscalls_noargs, sys_getegid16, 50, 0) +#endif +#ifndef OVERRIDE_TABLE_32_sys_getppid +TRACE_SYSCALL_TABLE(syscalls_noargs, sys_getppid, 64, 0) +#endif +#ifndef OVERRIDE_TABLE_32_sys_getpgrp +TRACE_SYSCALL_TABLE(syscalls_noargs, sys_getpgrp, 65, 0) +#endif +#ifndef OVERRIDE_TABLE_32_sys_setsid +TRACE_SYSCALL_TABLE(syscalls_noargs, sys_setsid, 66, 0) +#endif +#ifndef OVERRIDE_TABLE_32_sys_vhangup +TRACE_SYSCALL_TABLE(syscalls_noargs, sys_vhangup, 111, 0) +#endif +#ifndef OVERRIDE_TABLE_32_sys_munlockall +TRACE_SYSCALL_TABLE(syscalls_noargs, sys_munlockall, 153, 0) +#endif +#ifndef OVERRIDE_TABLE_32_sys_sched_yield +TRACE_SYSCALL_TABLE(syscalls_noargs, sys_sched_yield, 158, 0) +#endif +#ifndef OVERRIDE_TABLE_32_sys_getuid +TRACE_SYSCALL_TABLE(syscalls_noargs, sys_getuid, 199, 0) +#endif +#ifndef OVERRIDE_TABLE_32_sys_getgid +TRACE_SYSCALL_TABLE(syscalls_noargs, sys_getgid, 200, 0) +#endif +#ifndef OVERRIDE_TABLE_32_sys_geteuid +TRACE_SYSCALL_TABLE(syscalls_noargs, sys_geteuid, 201, 0) +#endif +#ifndef OVERRIDE_TABLE_32_sys_getegid +TRACE_SYSCALL_TABLE(syscalls_noargs, sys_getegid, 202, 0) +#endif +#ifndef OVERRIDE_TABLE_32_sys_gettid +TRACE_SYSCALL_TABLE(syscalls_noargs, sys_gettid, 224, 0) +#endif +#ifndef OVERRIDE_TABLE_32_sys_inotify_init +TRACE_SYSCALL_TABLE(syscalls_noargs, sys_inotify_init, 316, 0) +#endif +#ifndef OVERRIDE_TABLE_32_sys_exit +TRACE_SYSCALL_TABLE(sys_exit, sys_exit, 1, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_close +TRACE_SYSCALL_TABLE(sys_close, sys_close, 6, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_lseek +TRACE_SYSCALL_TABLE(sys_lseek, sys_lseek, 19, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_setuid16 +TRACE_SYSCALL_TABLE(sys_setuid16, sys_setuid16, 23, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_ptrace +TRACE_SYSCALL_TABLE(sys_ptrace, sys_ptrace, 26, 4) +#endif +#ifndef OVERRIDE_TABLE_32_sys_nice +TRACE_SYSCALL_TABLE(sys_nice, sys_nice, 34, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_kill +TRACE_SYSCALL_TABLE(sys_kill, sys_kill, 37, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_dup +TRACE_SYSCALL_TABLE(sys_dup, sys_dup, 41, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_brk +TRACE_SYSCALL_TABLE(sys_brk, sys_brk, 45, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_setgid16 +TRACE_SYSCALL_TABLE(sys_setgid16, sys_setgid16, 46, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_ioctl +TRACE_SYSCALL_TABLE(sys_ioctl, sys_ioctl, 54, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_fcntl +TRACE_SYSCALL_TABLE(sys_fcntl, sys_fcntl, 55, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_setpgid +TRACE_SYSCALL_TABLE(sys_setpgid, sys_setpgid, 57, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_umask +TRACE_SYSCALL_TABLE(sys_umask, sys_umask, 60, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_dup2 +TRACE_SYSCALL_TABLE(sys_dup2, sys_dup2, 63, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_setreuid16 +TRACE_SYSCALL_TABLE(sys_setreuid16, sys_setreuid16, 70, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_setregid16 +TRACE_SYSCALL_TABLE(sys_setregid16, sys_setregid16, 71, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_munmap +TRACE_SYSCALL_TABLE(sys_munmap, sys_munmap, 91, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_ftruncate +TRACE_SYSCALL_TABLE(sys_ftruncate, sys_ftruncate, 93, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_fchmod +TRACE_SYSCALL_TABLE(sys_fchmod, sys_fchmod, 94, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_fchown16 +TRACE_SYSCALL_TABLE(sys_fchown16, sys_fchown16, 95, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_getpriority +TRACE_SYSCALL_TABLE(sys_getpriority, sys_getpriority, 96, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_setpriority +TRACE_SYSCALL_TABLE(sys_setpriority, sys_setpriority, 97, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_fsync +TRACE_SYSCALL_TABLE(sys_fsync, sys_fsync, 118, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_mprotect +TRACE_SYSCALL_TABLE(sys_mprotect, sys_mprotect, 125, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_getpgid +TRACE_SYSCALL_TABLE(sys_getpgid, sys_getpgid, 132, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_fchdir +TRACE_SYSCALL_TABLE(sys_fchdir, sys_fchdir, 133, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_bdflush +TRACE_SYSCALL_TABLE(sys_bdflush, sys_bdflush, 134, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_sysfs +TRACE_SYSCALL_TABLE(sys_sysfs, sys_sysfs, 135, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_personality +TRACE_SYSCALL_TABLE(sys_personality, sys_personality, 136, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_setfsuid16 +TRACE_SYSCALL_TABLE(sys_setfsuid16, sys_setfsuid16, 138, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_setfsgid16 +TRACE_SYSCALL_TABLE(sys_setfsgid16, sys_setfsgid16, 139, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_flock +TRACE_SYSCALL_TABLE(sys_flock, sys_flock, 143, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_msync +TRACE_SYSCALL_TABLE(sys_msync, sys_msync, 144, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_getsid +TRACE_SYSCALL_TABLE(sys_getsid, sys_getsid, 147, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_fdatasync +TRACE_SYSCALL_TABLE(sys_fdatasync, sys_fdatasync, 148, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_mlock +TRACE_SYSCALL_TABLE(sys_mlock, sys_mlock, 150, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_munlock +TRACE_SYSCALL_TABLE(sys_munlock, sys_munlock, 151, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_mlockall +TRACE_SYSCALL_TABLE(sys_mlockall, sys_mlockall, 152, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_sched_getscheduler +TRACE_SYSCALL_TABLE(sys_sched_getscheduler, sys_sched_getscheduler, 157, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_sched_get_priority_max +TRACE_SYSCALL_TABLE(sys_sched_get_priority_max, sys_sched_get_priority_max, 159, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_sched_get_priority_min +TRACE_SYSCALL_TABLE(sys_sched_get_priority_min, sys_sched_get_priority_min, 160, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_mremap +TRACE_SYSCALL_TABLE(sys_mremap, sys_mremap, 163, 5) +#endif +#ifndef OVERRIDE_TABLE_32_sys_setresuid16 +TRACE_SYSCALL_TABLE(sys_setresuid16, sys_setresuid16, 164, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_setresgid16 +TRACE_SYSCALL_TABLE(sys_setresgid16, sys_setresgid16, 170, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_prctl +TRACE_SYSCALL_TABLE(sys_prctl, sys_prctl, 172, 5) +#endif +#ifndef OVERRIDE_TABLE_32_sys_setreuid +TRACE_SYSCALL_TABLE(sys_setreuid, sys_setreuid, 203, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_setregid +TRACE_SYSCALL_TABLE(sys_setregid, sys_setregid, 204, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_fchown +TRACE_SYSCALL_TABLE(sys_fchown, sys_fchown, 207, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_setresuid +TRACE_SYSCALL_TABLE(sys_setresuid, sys_setresuid, 208, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_setresgid +TRACE_SYSCALL_TABLE(sys_setresgid, sys_setresgid, 210, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_setuid +TRACE_SYSCALL_TABLE(sys_setuid, sys_setuid, 213, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_setgid +TRACE_SYSCALL_TABLE(sys_setgid, sys_setgid, 214, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_setfsuid +TRACE_SYSCALL_TABLE(sys_setfsuid, sys_setfsuid, 215, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_setfsgid +TRACE_SYSCALL_TABLE(sys_setfsgid, sys_setfsgid, 216, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_madvise +TRACE_SYSCALL_TABLE(sys_madvise, sys_madvise, 220, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_fcntl64 +TRACE_SYSCALL_TABLE(sys_fcntl64, sys_fcntl64, 221, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_tkill +TRACE_SYSCALL_TABLE(sys_tkill, sys_tkill, 238, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_io_destroy +TRACE_SYSCALL_TABLE(sys_io_destroy, sys_io_destroy, 244, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_exit_group +TRACE_SYSCALL_TABLE(sys_exit_group, sys_exit_group, 248, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_epoll_create +TRACE_SYSCALL_TABLE(sys_epoll_create, sys_epoll_create, 250, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_remap_file_pages +TRACE_SYSCALL_TABLE(sys_remap_file_pages, sys_remap_file_pages, 253, 5) +#endif +#ifndef OVERRIDE_TABLE_32_sys_timer_getoverrun +TRACE_SYSCALL_TABLE(sys_timer_getoverrun, sys_timer_getoverrun, 260, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_timer_delete +TRACE_SYSCALL_TABLE(sys_timer_delete, sys_timer_delete, 261, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_tgkill +TRACE_SYSCALL_TABLE(sys_tgkill, sys_tgkill, 268, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_socket +TRACE_SYSCALL_TABLE(sys_socket, sys_socket, 281, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_listen +TRACE_SYSCALL_TABLE(sys_listen, sys_listen, 284, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_shutdown +TRACE_SYSCALL_TABLE(sys_shutdown, sys_shutdown, 293, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_semget +TRACE_SYSCALL_TABLE(sys_semget, sys_semget, 299, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_msgget +TRACE_SYSCALL_TABLE(sys_msgget, sys_msgget, 303, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_shmget +TRACE_SYSCALL_TABLE(sys_shmget, sys_shmget, 307, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_keyctl +TRACE_SYSCALL_TABLE(sys_keyctl, sys_keyctl, 311, 5) +#endif +#ifndef OVERRIDE_TABLE_32_sys_ioprio_set +TRACE_SYSCALL_TABLE(sys_ioprio_set, sys_ioprio_set, 314, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_ioprio_get +TRACE_SYSCALL_TABLE(sys_ioprio_get, sys_ioprio_get, 315, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_inotify_rm_watch +TRACE_SYSCALL_TABLE(sys_inotify_rm_watch, sys_inotify_rm_watch, 318, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_unshare +TRACE_SYSCALL_TABLE(sys_unshare, sys_unshare, 337, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_tee +TRACE_SYSCALL_TABLE(sys_tee, sys_tee, 342, 4) +#endif +#ifndef OVERRIDE_TABLE_32_sys_timerfd_create +TRACE_SYSCALL_TABLE(sys_timerfd_create, sys_timerfd_create, 350, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_eventfd +TRACE_SYSCALL_TABLE(sys_eventfd, sys_eventfd, 351, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_eventfd2 +TRACE_SYSCALL_TABLE(sys_eventfd2, sys_eventfd2, 356, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_epoll_create1 +TRACE_SYSCALL_TABLE(sys_epoll_create1, sys_epoll_create1, 357, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_dup3 +TRACE_SYSCALL_TABLE(sys_dup3, sys_dup3, 358, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_inotify_init1 +TRACE_SYSCALL_TABLE(sys_inotify_init1, sys_inotify_init1, 360, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_fanotify_init +TRACE_SYSCALL_TABLE(sys_fanotify_init, sys_fanotify_init, 367, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_syncfs +TRACE_SYSCALL_TABLE(sys_syncfs, sys_syncfs, 373, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_setns +TRACE_SYSCALL_TABLE(sys_setns, sys_setns, 375, 2) +#endif + +#endif /* CREATE_SYSCALL_TABLE */ --- linux-3.11.0.orig/ubuntu/lttng/instrumentation/syscalls/headers/mips-32-syscalls-3.5.0_pointers.h +++ linux-3.11.0/ubuntu/lttng/instrumentation/syscalls/headers/mips-32-syscalls-3.5.0_pointers.h @@ -0,0 +1,984 @@ +/* THIS FILE IS AUTO-GENERATED. DO NOT EDIT */ +#ifndef CREATE_SYSCALL_TABLE + +#if !defined(_TRACE_SYSCALLS_POINTERS_H) || defined(TRACE_HEADER_MULTI_READ) +#define _TRACE_SYSCALLS_POINTERS_H + +#include +#include +#include "mips-32-syscalls-3.5.0_pointers_override.h" +#include "syscalls_pointers_override.h" + +#ifndef OVERRIDE_32_sys_unlink +SC_TRACE_EVENT(sys_unlink, + TP_PROTO(const char * pathname), + TP_ARGS(pathname), + TP_STRUCT__entry(__string_from_user(pathname, pathname)), + TP_fast_assign(tp_copy_string_from_user(pathname, pathname)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_chdir +SC_TRACE_EVENT(sys_chdir, + TP_PROTO(const char * filename), + TP_ARGS(filename), + TP_STRUCT__entry(__string_from_user(filename, filename)), + TP_fast_assign(tp_copy_string_from_user(filename, filename)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_time +SC_TRACE_EVENT(sys_time, + TP_PROTO(time_t * tloc), + TP_ARGS(tloc), + TP_STRUCT__entry(__field_hex(time_t *, tloc)), + TP_fast_assign(tp_assign(tloc, tloc)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_oldumount +SC_TRACE_EVENT(sys_oldumount, + TP_PROTO(char * name), + TP_ARGS(name), + TP_STRUCT__entry(__string_from_user(name, name)), + TP_fast_assign(tp_copy_string_from_user(name, name)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_stime +SC_TRACE_EVENT(sys_stime, + TP_PROTO(time_t * tptr), + TP_ARGS(tptr), + TP_STRUCT__entry(__field_hex(time_t *, tptr)), + TP_fast_assign(tp_assign(tptr, tptr)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_rmdir +SC_TRACE_EVENT(sys_rmdir, + TP_PROTO(const char * pathname), + TP_ARGS(pathname), + TP_STRUCT__entry(__string_from_user(pathname, pathname)), + TP_fast_assign(tp_copy_string_from_user(pathname, pathname)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_times +SC_TRACE_EVENT(sys_times, + TP_PROTO(struct tms * tbuf), + TP_ARGS(tbuf), + TP_STRUCT__entry(__field_hex(struct tms *, tbuf)), + TP_fast_assign(tp_assign(tbuf, tbuf)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_olduname +SC_TRACE_EVENT(sys_olduname, + TP_PROTO(struct oldold_utsname * name), + TP_ARGS(name), + TP_STRUCT__entry(__field_hex(struct oldold_utsname *, name)), + TP_fast_assign(tp_assign(name, name)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_chroot +SC_TRACE_EVENT(sys_chroot, + TP_PROTO(const char * filename), + TP_ARGS(filename), + TP_STRUCT__entry(__string_from_user(filename, filename)), + TP_fast_assign(tp_copy_string_from_user(filename, filename)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_sigpending +SC_TRACE_EVENT(sys_sigpending, + TP_PROTO(old_sigset_t * set), + TP_ARGS(set), + TP_STRUCT__entry(__field_hex(old_sigset_t *, set)), + TP_fast_assign(tp_assign(set, set)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_uselib +SC_TRACE_EVENT(sys_uselib, + TP_PROTO(const char * library), + TP_ARGS(library), + TP_STRUCT__entry(__field_hex(const char *, library)), + TP_fast_assign(tp_assign(library, library)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_uname +SC_TRACE_EVENT(sys_uname, + TP_PROTO(struct old_utsname * name), + TP_ARGS(name), + TP_STRUCT__entry(__field_hex(struct old_utsname *, name)), + TP_fast_assign(tp_assign(name, name)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_swapoff +SC_TRACE_EVENT(sys_swapoff, + TP_PROTO(const char * specialfile), + TP_ARGS(specialfile), + TP_STRUCT__entry(__string_from_user(specialfile, specialfile)), + TP_fast_assign(tp_copy_string_from_user(specialfile, specialfile)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_sysinfo +SC_TRACE_EVENT(sys_sysinfo, + TP_PROTO(struct sysinfo * info), + TP_ARGS(info), + TP_STRUCT__entry(__field_hex(struct sysinfo *, info)), + TP_fast_assign(tp_assign(info, info)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_newuname +SC_TRACE_EVENT(sys_newuname, + TP_PROTO(struct new_utsname * name), + TP_ARGS(name), + TP_STRUCT__entry(__field_hex(struct new_utsname *, name)), + TP_fast_assign(tp_assign(name, name)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_adjtimex +SC_TRACE_EVENT(sys_adjtimex, + TP_PROTO(struct timex * txc_p), + TP_ARGS(txc_p), + TP_STRUCT__entry(__field_hex(struct timex *, txc_p)), + TP_fast_assign(tp_assign(txc_p, txc_p)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_sysctl +SC_TRACE_EVENT(sys_sysctl, + TP_PROTO(struct __sysctl_args * args), + TP_ARGS(args), + TP_STRUCT__entry(__field_hex(struct __sysctl_args *, args)), + TP_fast_assign(tp_assign(args, args)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_creat +SC_TRACE_EVENT(sys_creat, + TP_PROTO(const char * pathname, umode_t mode), + TP_ARGS(pathname, mode), + TP_STRUCT__entry(__string_from_user(pathname, pathname) __field(umode_t, mode)), + TP_fast_assign(tp_copy_string_from_user(pathname, pathname) tp_assign(mode, mode)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_link +SC_TRACE_EVENT(sys_link, + TP_PROTO(const char * oldname, const char * newname), + TP_ARGS(oldname, newname), + TP_STRUCT__entry(__string_from_user(oldname, oldname) __string_from_user(newname, newname)), + TP_fast_assign(tp_copy_string_from_user(oldname, oldname) tp_copy_string_from_user(newname, newname)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_chmod +SC_TRACE_EVENT(sys_chmod, + TP_PROTO(const char * filename, umode_t mode), + TP_ARGS(filename, mode), + TP_STRUCT__entry(__string_from_user(filename, filename) __field(umode_t, mode)), + TP_fast_assign(tp_copy_string_from_user(filename, filename) tp_assign(mode, mode)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_utime +SC_TRACE_EVENT(sys_utime, + TP_PROTO(char * filename, struct utimbuf * times), + TP_ARGS(filename, times), + TP_STRUCT__entry(__string_from_user(filename, filename) __field_hex(struct utimbuf *, times)), + TP_fast_assign(tp_copy_string_from_user(filename, filename) tp_assign(times, times)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_access +SC_TRACE_EVENT(sys_access, + TP_PROTO(const char * filename, int mode), + TP_ARGS(filename, mode), + TP_STRUCT__entry(__string_from_user(filename, filename) __field(int, mode)), + TP_fast_assign(tp_copy_string_from_user(filename, filename) tp_assign(mode, mode)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_rename +SC_TRACE_EVENT(sys_rename, + TP_PROTO(const char * oldname, const char * newname), + TP_ARGS(oldname, newname), + TP_STRUCT__entry(__string_from_user(oldname, oldname) __string_from_user(newname, newname)), + TP_fast_assign(tp_copy_string_from_user(oldname, oldname) tp_copy_string_from_user(newname, newname)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_mkdir +SC_TRACE_EVENT(sys_mkdir, + TP_PROTO(const char * pathname, umode_t mode), + TP_ARGS(pathname, mode), + TP_STRUCT__entry(__string_from_user(pathname, pathname) __field(umode_t, mode)), + TP_fast_assign(tp_copy_string_from_user(pathname, pathname) tp_assign(mode, mode)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_umount +SC_TRACE_EVENT(sys_umount, + TP_PROTO(char * name, int flags), + TP_ARGS(name, flags), + TP_STRUCT__entry(__string_from_user(name, name) __field(int, flags)), + TP_fast_assign(tp_copy_string_from_user(name, name) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_ustat +SC_TRACE_EVENT(sys_ustat, + TP_PROTO(unsigned dev, struct ustat * ubuf), + TP_ARGS(dev, ubuf), + TP_STRUCT__entry(__field(unsigned, dev) __field_hex(struct ustat *, ubuf)), + TP_fast_assign(tp_assign(dev, dev) tp_assign(ubuf, ubuf)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_sethostname +SC_TRACE_EVENT(sys_sethostname, + TP_PROTO(char * name, int len), + TP_ARGS(name, len), + TP_STRUCT__entry(__string_from_user(name, name) __field(int, len)), + TP_fast_assign(tp_copy_string_from_user(name, name) tp_assign(len, len)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_setrlimit +SC_TRACE_EVENT(sys_setrlimit, + TP_PROTO(unsigned int resource, struct rlimit * rlim), + TP_ARGS(resource, rlim), + TP_STRUCT__entry(__field(unsigned int, resource) __field_hex(struct rlimit *, rlim)), + TP_fast_assign(tp_assign(resource, resource) tp_assign(rlim, rlim)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_getrlimit +SC_TRACE_EVENT(sys_getrlimit, + TP_PROTO(unsigned int resource, struct rlimit * rlim), + TP_ARGS(resource, rlim), + TP_STRUCT__entry(__field(unsigned int, resource) __field_hex(struct rlimit *, rlim)), + TP_fast_assign(tp_assign(resource, resource) tp_assign(rlim, rlim)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_getrusage +SC_TRACE_EVENT(sys_getrusage, + TP_PROTO(int who, struct rusage * ru), + TP_ARGS(who, ru), + TP_STRUCT__entry(__field(int, who) __field_hex(struct rusage *, ru)), + TP_fast_assign(tp_assign(who, who) tp_assign(ru, ru)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_gettimeofday +SC_TRACE_EVENT(sys_gettimeofday, + TP_PROTO(struct timeval * tv, struct timezone * tz), + TP_ARGS(tv, tz), + TP_STRUCT__entry(__field_hex(struct timeval *, tv) __field_hex(struct timezone *, tz)), + TP_fast_assign(tp_assign(tv, tv) tp_assign(tz, tz)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_settimeofday +SC_TRACE_EVENT(sys_settimeofday, + TP_PROTO(struct timeval * tv, struct timezone * tz), + TP_ARGS(tv, tz), + TP_STRUCT__entry(__field_hex(struct timeval *, tv) __field_hex(struct timezone *, tz)), + TP_fast_assign(tp_assign(tv, tv) tp_assign(tz, tz)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_getgroups +SC_TRACE_EVENT(sys_getgroups, + TP_PROTO(int gidsetsize, gid_t * grouplist), + TP_ARGS(gidsetsize, grouplist), + TP_STRUCT__entry(__field(int, gidsetsize) __field_hex(gid_t *, grouplist)), + TP_fast_assign(tp_assign(gidsetsize, gidsetsize) tp_assign(grouplist, grouplist)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_setgroups +SC_TRACE_EVENT(sys_setgroups, + TP_PROTO(int gidsetsize, gid_t * grouplist), + TP_ARGS(gidsetsize, grouplist), + TP_STRUCT__entry(__field(int, gidsetsize) __field_hex(gid_t *, grouplist)), + TP_fast_assign(tp_assign(gidsetsize, gidsetsize) tp_assign(grouplist, grouplist)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_symlink +SC_TRACE_EVENT(sys_symlink, + TP_PROTO(const char * oldname, const char * newname), + TP_ARGS(oldname, newname), + TP_STRUCT__entry(__string_from_user(oldname, oldname) __string_from_user(newname, newname)), + TP_fast_assign(tp_copy_string_from_user(oldname, oldname) tp_copy_string_from_user(newname, newname)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_swapon +SC_TRACE_EVENT(sys_swapon, + TP_PROTO(const char * specialfile, int swap_flags), + TP_ARGS(specialfile, swap_flags), + TP_STRUCT__entry(__string_from_user(specialfile, specialfile) __field(int, swap_flags)), + TP_fast_assign(tp_copy_string_from_user(specialfile, specialfile) tp_assign(swap_flags, swap_flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_truncate +SC_TRACE_EVENT(sys_truncate, + TP_PROTO(const char * path, long length), + TP_ARGS(path, length), + TP_STRUCT__entry(__string_from_user(path, path) __field(long, length)), + TP_fast_assign(tp_copy_string_from_user(path, path) tp_assign(length, length)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_statfs +SC_TRACE_EVENT(sys_statfs, + TP_PROTO(const char * pathname, struct statfs * buf), + TP_ARGS(pathname, buf), + TP_STRUCT__entry(__string_from_user(pathname, pathname) __field_hex(struct statfs *, buf)), + TP_fast_assign(tp_copy_string_from_user(pathname, pathname) tp_assign(buf, buf)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_fstatfs +SC_TRACE_EVENT(sys_fstatfs, + TP_PROTO(unsigned int fd, struct statfs * buf), + TP_ARGS(fd, buf), + TP_STRUCT__entry(__field(unsigned int, fd) __field_hex(struct statfs *, buf)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(buf, buf)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_socketcall +SC_TRACE_EVENT(sys_socketcall, + TP_PROTO(int call, unsigned long * args), + TP_ARGS(call, args), + TP_STRUCT__entry(__field(int, call) __field_hex(unsigned long *, args)), + TP_fast_assign(tp_assign(call, call) tp_assign(args, args)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_getitimer +SC_TRACE_EVENT(sys_getitimer, + TP_PROTO(int which, struct itimerval * value), + TP_ARGS(which, value), + TP_STRUCT__entry(__field(int, which) __field_hex(struct itimerval *, value)), + TP_fast_assign(tp_assign(which, which) tp_assign(value, value)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_newstat +SC_TRACE_EVENT(sys_newstat, + TP_PROTO(const char * filename, struct stat * statbuf), + TP_ARGS(filename, statbuf), + TP_STRUCT__entry(__string_from_user(filename, filename) __field_hex(struct stat *, statbuf)), + TP_fast_assign(tp_copy_string_from_user(filename, filename) tp_assign(statbuf, statbuf)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_newlstat +SC_TRACE_EVENT(sys_newlstat, + TP_PROTO(const char * filename, struct stat * statbuf), + TP_ARGS(filename, statbuf), + TP_STRUCT__entry(__string_from_user(filename, filename) __field_hex(struct stat *, statbuf)), + TP_fast_assign(tp_copy_string_from_user(filename, filename) tp_assign(statbuf, statbuf)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_newfstat +SC_TRACE_EVENT(sys_newfstat, + TP_PROTO(unsigned int fd, struct stat * statbuf), + TP_ARGS(fd, statbuf), + TP_STRUCT__entry(__field(unsigned int, fd) __field_hex(struct stat *, statbuf)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(statbuf, statbuf)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_setdomainname +SC_TRACE_EVENT(sys_setdomainname, + TP_PROTO(char * name, int len), + TP_ARGS(name, len), + TP_STRUCT__entry(__string_from_user(name, name) __field(int, len)), + TP_fast_assign(tp_copy_string_from_user(name, name) tp_assign(len, len)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_delete_module +SC_TRACE_EVENT(sys_delete_module, + TP_PROTO(const char * name_user, unsigned int flags), + TP_ARGS(name_user, flags), + TP_STRUCT__entry(__string_from_user(name_user, name_user) __field(unsigned int, flags)), + TP_fast_assign(tp_copy_string_from_user(name_user, name_user) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_sched_setparam +SC_TRACE_EVENT(sys_sched_setparam, + TP_PROTO(pid_t pid, struct sched_param * param), + TP_ARGS(pid, param), + TP_STRUCT__entry(__field(pid_t, pid) __field_hex(struct sched_param *, param)), + TP_fast_assign(tp_assign(pid, pid) tp_assign(param, param)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_sched_getparam +SC_TRACE_EVENT(sys_sched_getparam, + TP_PROTO(pid_t pid, struct sched_param * param), + TP_ARGS(pid, param), + TP_STRUCT__entry(__field(pid_t, pid) __field_hex(struct sched_param *, param)), + TP_fast_assign(tp_assign(pid, pid) tp_assign(param, param)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_sched_rr_get_interval +SC_TRACE_EVENT(sys_sched_rr_get_interval, + TP_PROTO(pid_t pid, struct timespec * interval), + TP_ARGS(pid, interval), + TP_STRUCT__entry(__field(pid_t, pid) __field_hex(struct timespec *, interval)), + TP_fast_assign(tp_assign(pid, pid) tp_assign(interval, interval)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_nanosleep +SC_TRACE_EVENT(sys_nanosleep, + TP_PROTO(struct timespec * rqtp, struct timespec * rmtp), + TP_ARGS(rqtp, rmtp), + TP_STRUCT__entry(__field_hex(struct timespec *, rqtp) __field_hex(struct timespec *, rmtp)), + TP_fast_assign(tp_assign(rqtp, rqtp) tp_assign(rmtp, rmtp)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_read +SC_TRACE_EVENT(sys_read, + TP_PROTO(unsigned int fd, char * buf, size_t count), + TP_ARGS(fd, buf, count), + TP_STRUCT__entry(__field(unsigned int, fd) __field_hex(char *, buf) __field(size_t, count)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(buf, buf) tp_assign(count, count)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_write +SC_TRACE_EVENT(sys_write, + TP_PROTO(unsigned int fd, const char * buf, size_t count), + TP_ARGS(fd, buf, count), + TP_STRUCT__entry(__field(unsigned int, fd) __field_hex(const char *, buf) __field(size_t, count)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(buf, buf) tp_assign(count, count)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_open +SC_TRACE_EVENT(sys_open, + TP_PROTO(const char * filename, int flags, umode_t mode), + TP_ARGS(filename, flags, mode), + TP_STRUCT__entry(__string_from_user(filename, filename) __field(int, flags) __field(umode_t, mode)), + TP_fast_assign(tp_copy_string_from_user(filename, filename) tp_assign(flags, flags) tp_assign(mode, mode)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_waitpid +SC_TRACE_EVENT(sys_waitpid, + TP_PROTO(pid_t pid, int * stat_addr, int options), + TP_ARGS(pid, stat_addr, options), + TP_STRUCT__entry(__field(pid_t, pid) __field_hex(int *, stat_addr) __field(int, options)), + TP_fast_assign(tp_assign(pid, pid) tp_assign(stat_addr, stat_addr) tp_assign(options, options)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_mknod +SC_TRACE_EVENT(sys_mknod, + TP_PROTO(const char * filename, umode_t mode, unsigned dev), + TP_ARGS(filename, mode, dev), + TP_STRUCT__entry(__string_from_user(filename, filename) __field(umode_t, mode) __field(unsigned, dev)), + TP_fast_assign(tp_copy_string_from_user(filename, filename) tp_assign(mode, mode) tp_assign(dev, dev)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_lchown +SC_TRACE_EVENT(sys_lchown, + TP_PROTO(const char * filename, uid_t user, gid_t group), + TP_ARGS(filename, user, group), + TP_STRUCT__entry(__string_from_user(filename, filename) __field(uid_t, user) __field(gid_t, group)), + TP_fast_assign(tp_copy_string_from_user(filename, filename) tp_assign(user, user) tp_assign(group, group)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_sigaction +SC_TRACE_EVENT(sys_sigaction, + TP_PROTO(int sig, const struct sigaction * act, struct sigaction * oact), + TP_ARGS(sig, act, oact), + TP_STRUCT__entry(__field(int, sig) __field_hex(const struct sigaction *, act) __field_hex(struct sigaction *, oact)), + TP_fast_assign(tp_assign(sig, sig) tp_assign(act, act) tp_assign(oact, oact)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_readlink +SC_TRACE_EVENT(sys_readlink, + TP_PROTO(const char * path, char * buf, int bufsiz), + TP_ARGS(path, buf, bufsiz), + TP_STRUCT__entry(__string_from_user(path, path) __field_hex(char *, buf) __field(int, bufsiz)), + TP_fast_assign(tp_copy_string_from_user(path, path) tp_assign(buf, buf) tp_assign(bufsiz, bufsiz)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_old_readdir +SC_TRACE_EVENT(sys_old_readdir, + TP_PROTO(unsigned int fd, struct old_linux_dirent * dirent, unsigned int count), + TP_ARGS(fd, dirent, count), + TP_STRUCT__entry(__field(unsigned int, fd) __field_hex(struct old_linux_dirent *, dirent) __field(unsigned int, count)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(dirent, dirent) tp_assign(count, count)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_syslog +SC_TRACE_EVENT(sys_syslog, + TP_PROTO(int type, char * buf, int len), + TP_ARGS(type, buf, len), + TP_STRUCT__entry(__field(int, type) __field_hex(char *, buf) __field(int, len)), + TP_fast_assign(tp_assign(type, type) tp_assign(buf, buf) tp_assign(len, len)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_setitimer +SC_TRACE_EVENT(sys_setitimer, + TP_PROTO(int which, struct itimerval * value, struct itimerval * ovalue), + TP_ARGS(which, value, ovalue), + TP_STRUCT__entry(__field(int, which) __field_hex(struct itimerval *, value) __field_hex(struct itimerval *, ovalue)), + TP_fast_assign(tp_assign(which, which) tp_assign(value, value) tp_assign(ovalue, ovalue)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_sigprocmask +SC_TRACE_EVENT(sys_sigprocmask, + TP_PROTO(int how, old_sigset_t * nset, old_sigset_t * oset), + TP_ARGS(how, nset, oset), + TP_STRUCT__entry(__field(int, how) __field_hex(old_sigset_t *, nset) __field_hex(old_sigset_t *, oset)), + TP_fast_assign(tp_assign(how, how) tp_assign(nset, nset) tp_assign(oset, oset)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_init_module +SC_TRACE_EVENT(sys_init_module, + TP_PROTO(void * umod, unsigned long len, const char * uargs), + TP_ARGS(umod, len, uargs), + TP_STRUCT__entry(__field_hex(void *, umod) __field(unsigned long, len) __field_hex(const char *, uargs)), + TP_fast_assign(tp_assign(umod, umod) tp_assign(len, len) tp_assign(uargs, uargs)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_getdents +SC_TRACE_EVENT(sys_getdents, + TP_PROTO(unsigned int fd, struct linux_dirent * dirent, unsigned int count), + TP_ARGS(fd, dirent, count), + TP_STRUCT__entry(__field(unsigned int, fd) __field_hex(struct linux_dirent *, dirent) __field(unsigned int, count)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(dirent, dirent) tp_assign(count, count)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_readv +SC_TRACE_EVENT(sys_readv, + TP_PROTO(unsigned long fd, const struct iovec * vec, unsigned long vlen), + TP_ARGS(fd, vec, vlen), + TP_STRUCT__entry(__field(unsigned long, fd) __field_hex(const struct iovec *, vec) __field(unsigned long, vlen)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(vec, vec) tp_assign(vlen, vlen)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_writev +SC_TRACE_EVENT(sys_writev, + TP_PROTO(unsigned long fd, const struct iovec * vec, unsigned long vlen), + TP_ARGS(fd, vec, vlen), + TP_STRUCT__entry(__field(unsigned long, fd) __field_hex(const struct iovec *, vec) __field(unsigned long, vlen)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(vec, vec) tp_assign(vlen, vlen)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_cachectl +SC_TRACE_EVENT(sys_cachectl, + TP_PROTO(char * addr, int nbytes, int op), + TP_ARGS(addr, nbytes, op), + TP_STRUCT__entry(__field_hex(char *, addr) __field(int, nbytes) __field(int, op)), + TP_fast_assign(tp_assign(addr, addr) tp_assign(nbytes, nbytes) tp_assign(op, op)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_sched_setscheduler +SC_TRACE_EVENT(sys_sched_setscheduler, + TP_PROTO(pid_t pid, int policy, struct sched_param * param), + TP_ARGS(pid, policy, param), + TP_STRUCT__entry(__field(pid_t, pid) __field(int, policy) __field_hex(struct sched_param *, param)), + TP_fast_assign(tp_assign(pid, pid) tp_assign(policy, policy) tp_assign(param, param)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_accept +SC_TRACE_EVENT(sys_accept, + TP_PROTO(int fd, struct sockaddr * upeer_sockaddr, int * upeer_addrlen), + TP_ARGS(fd, upeer_sockaddr, upeer_addrlen), + TP_STRUCT__entry(__field(int, fd) __field_hex(struct sockaddr *, upeer_sockaddr) __field_hex(int *, upeer_addrlen)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(upeer_sockaddr, upeer_sockaddr) tp_assign(upeer_addrlen, upeer_addrlen)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_bind +SC_TRACE_EVENT(sys_bind, + TP_PROTO(int fd, struct sockaddr * umyaddr, int addrlen), + TP_ARGS(fd, umyaddr, addrlen), + TP_STRUCT__entry(__field(int, fd) __field_hex(struct sockaddr *, umyaddr) __field_hex(int, addrlen)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(umyaddr, umyaddr) tp_assign(addrlen, addrlen)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_connect +SC_TRACE_EVENT(sys_connect, + TP_PROTO(int fd, struct sockaddr * uservaddr, int addrlen), + TP_ARGS(fd, uservaddr, addrlen), + TP_STRUCT__entry(__field(int, fd) __field_hex(struct sockaddr *, uservaddr) __field_hex(int, addrlen)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(uservaddr, uservaddr) tp_assign(addrlen, addrlen)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_getpeername +SC_TRACE_EVENT(sys_getpeername, + TP_PROTO(int fd, struct sockaddr * usockaddr, int * usockaddr_len), + TP_ARGS(fd, usockaddr, usockaddr_len), + TP_STRUCT__entry(__field(int, fd) __field_hex(struct sockaddr *, usockaddr) __field_hex(int *, usockaddr_len)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(usockaddr, usockaddr) tp_assign(usockaddr_len, usockaddr_len)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_getsockname +SC_TRACE_EVENT(sys_getsockname, + TP_PROTO(int fd, struct sockaddr * usockaddr, int * usockaddr_len), + TP_ARGS(fd, usockaddr, usockaddr_len), + TP_STRUCT__entry(__field(int, fd) __field_hex(struct sockaddr *, usockaddr) __field_hex(int *, usockaddr_len)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(usockaddr, usockaddr) tp_assign(usockaddr_len, usockaddr_len)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_reboot +SC_TRACE_EVENT(sys_reboot, + TP_PROTO(int magic1, int magic2, unsigned int cmd, void * arg), + TP_ARGS(magic1, magic2, cmd, arg), + TP_STRUCT__entry(__field(int, magic1) __field(int, magic2) __field(unsigned int, cmd) __field_hex(void *, arg)), + TP_fast_assign(tp_assign(magic1, magic1) tp_assign(magic2, magic2) tp_assign(cmd, cmd) tp_assign(arg, arg)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_wait4 +SC_TRACE_EVENT(sys_wait4, + TP_PROTO(pid_t upid, int * stat_addr, int options, struct rusage * ru), + TP_ARGS(upid, stat_addr, options, ru), + TP_STRUCT__entry(__field(pid_t, upid) __field_hex(int *, stat_addr) __field(int, options) __field_hex(struct rusage *, ru)), + TP_fast_assign(tp_assign(upid, upid) tp_assign(stat_addr, stat_addr) tp_assign(options, options) tp_assign(ru, ru)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_quotactl +SC_TRACE_EVENT(sys_quotactl, + TP_PROTO(unsigned int cmd, const char * special, qid_t id, void * addr), + TP_ARGS(cmd, special, id, addr), + TP_STRUCT__entry(__field(unsigned int, cmd) __field_hex(const char *, special) __field(qid_t, id) __field_hex(void *, addr)), + TP_fast_assign(tp_assign(cmd, cmd) tp_assign(special, special) tp_assign(id, id) tp_assign(addr, addr)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_mount +SC_TRACE_EVENT(sys_mount, + TP_PROTO(char * dev_name, char * dir_name, char * type, unsigned long flags, void * data), + TP_ARGS(dev_name, dir_name, type, flags, data), + TP_STRUCT__entry(__string_from_user(dev_name, dev_name) __string_from_user(dir_name, dir_name) __string_from_user(type, type) __field(unsigned long, flags) __field_hex(void *, data)), + TP_fast_assign(tp_copy_string_from_user(dev_name, dev_name) tp_copy_string_from_user(dir_name, dir_name) tp_copy_string_from_user(type, type) tp_assign(flags, flags) tp_assign(data, data)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_llseek +SC_TRACE_EVENT(sys_llseek, + TP_PROTO(unsigned int fd, unsigned long offset_high, unsigned long offset_low, loff_t * result, unsigned int origin), + TP_ARGS(fd, offset_high, offset_low, result, origin), + TP_STRUCT__entry(__field(unsigned int, fd) __field(unsigned long, offset_high) __field(unsigned long, offset_low) __field_hex(loff_t *, result) __field(unsigned int, origin)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(offset_high, offset_high) tp_assign(offset_low, offset_low) tp_assign(result, result) tp_assign(origin, origin)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_select +SC_TRACE_EVENT(sys_select, + TP_PROTO(int n, fd_set * inp, fd_set * outp, fd_set * exp, struct timeval * tvp), + TP_ARGS(n, inp, outp, exp, tvp), + TP_STRUCT__entry(__field(int, n) __field_hex(fd_set *, inp) __field_hex(fd_set *, outp) __field_hex(fd_set *, exp) __field_hex(struct timeval *, tvp)), + TP_fast_assign(tp_assign(n, n) tp_assign(inp, inp) tp_assign(outp, outp) tp_assign(exp, exp) tp_assign(tvp, tvp)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_ipc +SC_TRACE_EVENT(sys_ipc, + TP_PROTO(unsigned int call, int first, unsigned long second, unsigned long third, void * ptr, long fifth), + TP_ARGS(call, first, second, third, ptr, fifth), + TP_STRUCT__entry(__field(unsigned int, call) __field(int, first) __field(unsigned long, second) __field(unsigned long, third) __field_hex(void *, ptr) __field(long, fifth)), + TP_fast_assign(tp_assign(call, call) tp_assign(first, first) tp_assign(second, second) tp_assign(third, third) tp_assign(ptr, ptr) tp_assign(fifth, fifth)), + TP_printk() +) +#endif + +#endif /* _TRACE_SYSCALLS_POINTERS_H */ + +/* This part must be outside protection */ +#include "../../../probes/define_trace.h" + +#else /* CREATE_SYSCALL_TABLE */ + +#include "mips-32-syscalls-3.5.0_pointers_override.h" +#include "syscalls_pointers_override.h" + +#ifndef OVERRIDE_TABLE_32_sys_read +TRACE_SYSCALL_TABLE(sys_read, sys_read, 4007, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_write +TRACE_SYSCALL_TABLE(sys_write, sys_write, 4009, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_open +TRACE_SYSCALL_TABLE(sys_open, sys_open, 4011, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_waitpid +TRACE_SYSCALL_TABLE(sys_waitpid, sys_waitpid, 4015, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_creat +TRACE_SYSCALL_TABLE(sys_creat, sys_creat, 4017, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_link +TRACE_SYSCALL_TABLE(sys_link, sys_link, 4019, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_unlink +TRACE_SYSCALL_TABLE(sys_unlink, sys_unlink, 4021, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_chdir +TRACE_SYSCALL_TABLE(sys_chdir, sys_chdir, 4025, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_time +TRACE_SYSCALL_TABLE(sys_time, sys_time, 4027, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_mknod +TRACE_SYSCALL_TABLE(sys_mknod, sys_mknod, 4029, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_chmod +TRACE_SYSCALL_TABLE(sys_chmod, sys_chmod, 4031, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_lchown +TRACE_SYSCALL_TABLE(sys_lchown, sys_lchown, 4033, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_mount +TRACE_SYSCALL_TABLE(sys_mount, sys_mount, 4043, 5) +#endif +#ifndef OVERRIDE_TABLE_32_sys_oldumount +TRACE_SYSCALL_TABLE(sys_oldumount, sys_oldumount, 4045, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_stime +TRACE_SYSCALL_TABLE(sys_stime, sys_stime, 4051, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_utime +TRACE_SYSCALL_TABLE(sys_utime, sys_utime, 4061, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_access +TRACE_SYSCALL_TABLE(sys_access, sys_access, 4067, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_rename +TRACE_SYSCALL_TABLE(sys_rename, sys_rename, 4077, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_mkdir +TRACE_SYSCALL_TABLE(sys_mkdir, sys_mkdir, 4079, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_rmdir +TRACE_SYSCALL_TABLE(sys_rmdir, sys_rmdir, 4081, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_times +TRACE_SYSCALL_TABLE(sys_times, sys_times, 4087, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_umount +TRACE_SYSCALL_TABLE(sys_umount, sys_umount, 4105, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_olduname +TRACE_SYSCALL_TABLE(sys_olduname, sys_olduname, 4119, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_chroot +TRACE_SYSCALL_TABLE(sys_chroot, sys_chroot, 4123, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_ustat +TRACE_SYSCALL_TABLE(sys_ustat, sys_ustat, 4125, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_sigaction +TRACE_SYSCALL_TABLE(sys_sigaction, sys_sigaction, 4135, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_sigpending +TRACE_SYSCALL_TABLE(sys_sigpending, sys_sigpending, 4147, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_sethostname +TRACE_SYSCALL_TABLE(sys_sethostname, sys_sethostname, 4149, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_setrlimit +TRACE_SYSCALL_TABLE(sys_setrlimit, sys_setrlimit, 4151, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_getrlimit +TRACE_SYSCALL_TABLE(sys_getrlimit, sys_getrlimit, 4153, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_getrusage +TRACE_SYSCALL_TABLE(sys_getrusage, sys_getrusage, 4155, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_gettimeofday +TRACE_SYSCALL_TABLE(sys_gettimeofday, sys_gettimeofday, 4157, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_settimeofday +TRACE_SYSCALL_TABLE(sys_settimeofday, sys_settimeofday, 4159, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_getgroups +TRACE_SYSCALL_TABLE(sys_getgroups, sys_getgroups, 4161, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_setgroups +TRACE_SYSCALL_TABLE(sys_setgroups, sys_setgroups, 4163, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_symlink +TRACE_SYSCALL_TABLE(sys_symlink, sys_symlink, 4167, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_readlink +TRACE_SYSCALL_TABLE(sys_readlink, sys_readlink, 4171, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_uselib +TRACE_SYSCALL_TABLE(sys_uselib, sys_uselib, 4173, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_swapon +TRACE_SYSCALL_TABLE(sys_swapon, sys_swapon, 4175, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_reboot +TRACE_SYSCALL_TABLE(sys_reboot, sys_reboot, 4177, 4) +#endif +#ifndef OVERRIDE_TABLE_32_sys_old_readdir +TRACE_SYSCALL_TABLE(sys_old_readdir, sys_old_readdir, 4179, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_truncate +TRACE_SYSCALL_TABLE(sys_truncate, sys_truncate, 4185, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_statfs +TRACE_SYSCALL_TABLE(sys_statfs, sys_statfs, 4199, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_fstatfs +TRACE_SYSCALL_TABLE(sys_fstatfs, sys_fstatfs, 4201, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_socketcall +TRACE_SYSCALL_TABLE(sys_socketcall, sys_socketcall, 4205, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_syslog +TRACE_SYSCALL_TABLE(sys_syslog, sys_syslog, 4207, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_setitimer +TRACE_SYSCALL_TABLE(sys_setitimer, sys_setitimer, 4209, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_getitimer +TRACE_SYSCALL_TABLE(sys_getitimer, sys_getitimer, 4211, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_newstat +TRACE_SYSCALL_TABLE(sys_newstat, sys_newstat, 4213, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_newlstat +TRACE_SYSCALL_TABLE(sys_newlstat, sys_newlstat, 4215, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_newfstat +TRACE_SYSCALL_TABLE(sys_newfstat, sys_newfstat, 4217, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_uname +TRACE_SYSCALL_TABLE(sys_uname, sys_uname, 4219, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_wait4 +TRACE_SYSCALL_TABLE(sys_wait4, sys_wait4, 4229, 4) +#endif +#ifndef OVERRIDE_TABLE_32_sys_swapoff +TRACE_SYSCALL_TABLE(sys_swapoff, sys_swapoff, 4231, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_sysinfo +TRACE_SYSCALL_TABLE(sys_sysinfo, sys_sysinfo, 4233, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_ipc +TRACE_SYSCALL_TABLE(sys_ipc, sys_ipc, 4235, 6) +#endif +#ifndef OVERRIDE_TABLE_32_sys_setdomainname +TRACE_SYSCALL_TABLE(sys_setdomainname, sys_setdomainname, 4243, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_newuname +TRACE_SYSCALL_TABLE(sys_newuname, sys_newuname, 4245, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_adjtimex +TRACE_SYSCALL_TABLE(sys_adjtimex, sys_adjtimex, 4249, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_sigprocmask +TRACE_SYSCALL_TABLE(sys_sigprocmask, sys_sigprocmask, 4253, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_init_module +TRACE_SYSCALL_TABLE(sys_init_module, sys_init_module, 4257, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_delete_module +TRACE_SYSCALL_TABLE(sys_delete_module, sys_delete_module, 4259, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_quotactl +TRACE_SYSCALL_TABLE(sys_quotactl, sys_quotactl, 4263, 4) +#endif +#ifndef OVERRIDE_TABLE_32_sys_llseek +TRACE_SYSCALL_TABLE(sys_llseek, sys_llseek, 4281, 5) +#endif +#ifndef OVERRIDE_TABLE_32_sys_getdents +TRACE_SYSCALL_TABLE(sys_getdents, sys_getdents, 4283, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_select +TRACE_SYSCALL_TABLE(sys_select, sys_select, 4285, 5) +#endif +#ifndef OVERRIDE_TABLE_32_sys_readv +TRACE_SYSCALL_TABLE(sys_readv, sys_readv, 4291, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_writev +TRACE_SYSCALL_TABLE(sys_writev, sys_writev, 4293, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_cachectl +TRACE_SYSCALL_TABLE(sys_cachectl, sys_cachectl, 4297, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_sysctl +TRACE_SYSCALL_TABLE(sys_sysctl, sys_sysctl, 4307, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_sched_setparam +TRACE_SYSCALL_TABLE(sys_sched_setparam, sys_sched_setparam, 4317, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_sched_getparam +TRACE_SYSCALL_TABLE(sys_sched_getparam, sys_sched_getparam, 4319, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_sched_setscheduler +TRACE_SYSCALL_TABLE(sys_sched_setscheduler, sys_sched_setscheduler, 4321, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_sched_rr_get_interval +TRACE_SYSCALL_TABLE(sys_sched_rr_get_interval, sys_sched_rr_get_interval, 4331, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_nanosleep +TRACE_SYSCALL_TABLE(sys_nanosleep, sys_nanosleep, 4333, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_accept +TRACE_SYSCALL_TABLE(sys_accept, sys_accept, 4337, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_bind +TRACE_SYSCALL_TABLE(sys_bind, sys_bind, 4339, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_connect +TRACE_SYSCALL_TABLE(sys_connect, sys_connect, 4341, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_getpeername +TRACE_SYSCALL_TABLE(sys_getpeername, sys_getpeername, 4343, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_getsockname +TRACE_SYSCALL_TABLE(sys_getsockname, sys_getsockname, 4345, 3) +#endif + +#endif /* CREATE_SYSCALL_TABLE */ --- linux-3.11.0.orig/ubuntu/lttng/instrumentation/syscalls/headers/x86-64-syscalls-3.10.0-rc7_integers.h +++ linux-3.11.0/ubuntu/lttng/instrumentation/syscalls/headers/x86-64-syscalls-3.10.0-rc7_integers.h @@ -0,0 +1,1097 @@ +/* THIS FILE IS AUTO-GENERATED. DO NOT EDIT */ +#ifndef CREATE_SYSCALL_TABLE + +#if !defined(_TRACE_SYSCALLS_INTEGERS_H) || defined(TRACE_HEADER_MULTI_READ) +#define _TRACE_SYSCALLS_INTEGERS_H + +#include +#include +#include "x86-64-syscalls-3.10.0-rc7_integers_override.h" +#include "syscalls_integers_override.h" + +SC_DECLARE_EVENT_CLASS_NOARGS(syscalls_noargs, + TP_STRUCT__entry(), + TP_fast_assign(), + TP_printk() +) +#ifndef OVERRIDE_64_sys_sched_yield +SC_DEFINE_EVENT_NOARGS(syscalls_noargs, sys_sched_yield) +#endif +#ifndef OVERRIDE_64_sys_pause +SC_DEFINE_EVENT_NOARGS(syscalls_noargs, sys_pause) +#endif +#ifndef OVERRIDE_64_sys_getpid +SC_DEFINE_EVENT_NOARGS(syscalls_noargs, sys_getpid) +#endif +#ifndef OVERRIDE_64_sys_getuid +SC_DEFINE_EVENT_NOARGS(syscalls_noargs, sys_getuid) +#endif +#ifndef OVERRIDE_64_sys_getgid +SC_DEFINE_EVENT_NOARGS(syscalls_noargs, sys_getgid) +#endif +#ifndef OVERRIDE_64_sys_geteuid +SC_DEFINE_EVENT_NOARGS(syscalls_noargs, sys_geteuid) +#endif +#ifndef OVERRIDE_64_sys_getegid +SC_DEFINE_EVENT_NOARGS(syscalls_noargs, sys_getegid) +#endif +#ifndef OVERRIDE_64_sys_getppid +SC_DEFINE_EVENT_NOARGS(syscalls_noargs, sys_getppid) +#endif +#ifndef OVERRIDE_64_sys_getpgrp +SC_DEFINE_EVENT_NOARGS(syscalls_noargs, sys_getpgrp) +#endif +#ifndef OVERRIDE_64_sys_setsid +SC_DEFINE_EVENT_NOARGS(syscalls_noargs, sys_setsid) +#endif +#ifndef OVERRIDE_64_sys_munlockall +SC_DEFINE_EVENT_NOARGS(syscalls_noargs, sys_munlockall) +#endif +#ifndef OVERRIDE_64_sys_vhangup +SC_DEFINE_EVENT_NOARGS(syscalls_noargs, sys_vhangup) +#endif +#ifndef OVERRIDE_64_sys_sync +SC_DEFINE_EVENT_NOARGS(syscalls_noargs, sys_sync) +#endif +#ifndef OVERRIDE_64_sys_gettid +SC_DEFINE_EVENT_NOARGS(syscalls_noargs, sys_gettid) +#endif +#ifndef OVERRIDE_64_sys_restart_syscall +SC_DEFINE_EVENT_NOARGS(syscalls_noargs, sys_restart_syscall) +#endif +#ifndef OVERRIDE_64_sys_inotify_init +SC_DEFINE_EVENT_NOARGS(syscalls_noargs, sys_inotify_init) +#endif +#ifndef OVERRIDE_64_sys_close +SC_TRACE_EVENT(sys_close, + TP_PROTO(unsigned int fd), + TP_ARGS(fd), + TP_STRUCT__entry(__field(unsigned int, fd)), + TP_fast_assign(tp_assign(fd, fd)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_brk +SC_TRACE_EVENT(sys_brk, + TP_PROTO(unsigned long brk), + TP_ARGS(brk), + TP_STRUCT__entry(__field(unsigned long, brk)), + TP_fast_assign(tp_assign(brk, brk)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_dup +SC_TRACE_EVENT(sys_dup, + TP_PROTO(unsigned int fildes), + TP_ARGS(fildes), + TP_STRUCT__entry(__field(unsigned int, fildes)), + TP_fast_assign(tp_assign(fildes, fildes)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_alarm +SC_TRACE_EVENT(sys_alarm, + TP_PROTO(unsigned int seconds), + TP_ARGS(seconds), + TP_STRUCT__entry(__field(unsigned int, seconds)), + TP_fast_assign(tp_assign(seconds, seconds)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_exit +SC_TRACE_EVENT(sys_exit, + TP_PROTO(int error_code), + TP_ARGS(error_code), + TP_STRUCT__entry(__field(int, error_code)), + TP_fast_assign(tp_assign(error_code, error_code)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_fsync +SC_TRACE_EVENT(sys_fsync, + TP_PROTO(unsigned int fd), + TP_ARGS(fd), + TP_STRUCT__entry(__field(unsigned int, fd)), + TP_fast_assign(tp_assign(fd, fd)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_fdatasync +SC_TRACE_EVENT(sys_fdatasync, + TP_PROTO(unsigned int fd), + TP_ARGS(fd), + TP_STRUCT__entry(__field(unsigned int, fd)), + TP_fast_assign(tp_assign(fd, fd)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_fchdir +SC_TRACE_EVENT(sys_fchdir, + TP_PROTO(unsigned int fd), + TP_ARGS(fd), + TP_STRUCT__entry(__field(unsigned int, fd)), + TP_fast_assign(tp_assign(fd, fd)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_umask +SC_TRACE_EVENT(sys_umask, + TP_PROTO(int mask), + TP_ARGS(mask), + TP_STRUCT__entry(__field(int, mask)), + TP_fast_assign(tp_assign(mask, mask)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_setuid +SC_TRACE_EVENT(sys_setuid, + TP_PROTO(uid_t uid), + TP_ARGS(uid), + TP_STRUCT__entry(__field(uid_t, uid)), + TP_fast_assign(tp_assign(uid, uid)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_setgid +SC_TRACE_EVENT(sys_setgid, + TP_PROTO(gid_t gid), + TP_ARGS(gid), + TP_STRUCT__entry(__field(gid_t, gid)), + TP_fast_assign(tp_assign(gid, gid)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_getpgid +SC_TRACE_EVENT(sys_getpgid, + TP_PROTO(pid_t pid), + TP_ARGS(pid), + TP_STRUCT__entry(__field(pid_t, pid)), + TP_fast_assign(tp_assign(pid, pid)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_setfsuid +SC_TRACE_EVENT(sys_setfsuid, + TP_PROTO(uid_t uid), + TP_ARGS(uid), + TP_STRUCT__entry(__field(uid_t, uid)), + TP_fast_assign(tp_assign(uid, uid)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_setfsgid +SC_TRACE_EVENT(sys_setfsgid, + TP_PROTO(gid_t gid), + TP_ARGS(gid), + TP_STRUCT__entry(__field(gid_t, gid)), + TP_fast_assign(tp_assign(gid, gid)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_getsid +SC_TRACE_EVENT(sys_getsid, + TP_PROTO(pid_t pid), + TP_ARGS(pid), + TP_STRUCT__entry(__field(pid_t, pid)), + TP_fast_assign(tp_assign(pid, pid)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_personality +SC_TRACE_EVENT(sys_personality, + TP_PROTO(unsigned int personality), + TP_ARGS(personality), + TP_STRUCT__entry(__field(unsigned int, personality)), + TP_fast_assign(tp_assign(personality, personality)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_sched_getscheduler +SC_TRACE_EVENT(sys_sched_getscheduler, + TP_PROTO(pid_t pid), + TP_ARGS(pid), + TP_STRUCT__entry(__field(pid_t, pid)), + TP_fast_assign(tp_assign(pid, pid)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_sched_get_priority_max +SC_TRACE_EVENT(sys_sched_get_priority_max, + TP_PROTO(int policy), + TP_ARGS(policy), + TP_STRUCT__entry(__field(int, policy)), + TP_fast_assign(tp_assign(policy, policy)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_sched_get_priority_min +SC_TRACE_EVENT(sys_sched_get_priority_min, + TP_PROTO(int policy), + TP_ARGS(policy), + TP_STRUCT__entry(__field(int, policy)), + TP_fast_assign(tp_assign(policy, policy)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_mlockall +SC_TRACE_EVENT(sys_mlockall, + TP_PROTO(int flags), + TP_ARGS(flags), + TP_STRUCT__entry(__field(int, flags)), + TP_fast_assign(tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_io_destroy +SC_TRACE_EVENT(sys_io_destroy, + TP_PROTO(aio_context_t ctx), + TP_ARGS(ctx), + TP_STRUCT__entry(__field(aio_context_t, ctx)), + TP_fast_assign(tp_assign(ctx, ctx)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_epoll_create +SC_TRACE_EVENT(sys_epoll_create, + TP_PROTO(int size), + TP_ARGS(size), + TP_STRUCT__entry(__field(int, size)), + TP_fast_assign(tp_assign(size, size)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_timer_getoverrun +SC_TRACE_EVENT(sys_timer_getoverrun, + TP_PROTO(timer_t timer_id), + TP_ARGS(timer_id), + TP_STRUCT__entry(__field(timer_t, timer_id)), + TP_fast_assign(tp_assign(timer_id, timer_id)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_timer_delete +SC_TRACE_EVENT(sys_timer_delete, + TP_PROTO(timer_t timer_id), + TP_ARGS(timer_id), + TP_STRUCT__entry(__field(timer_t, timer_id)), + TP_fast_assign(tp_assign(timer_id, timer_id)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_exit_group +SC_TRACE_EVENT(sys_exit_group, + TP_PROTO(int error_code), + TP_ARGS(error_code), + TP_STRUCT__entry(__field(int, error_code)), + TP_fast_assign(tp_assign(error_code, error_code)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_unshare +SC_TRACE_EVENT(sys_unshare, + TP_PROTO(unsigned long unshare_flags), + TP_ARGS(unshare_flags), + TP_STRUCT__entry(__field(unsigned long, unshare_flags)), + TP_fast_assign(tp_assign(unshare_flags, unshare_flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_eventfd +SC_TRACE_EVENT(sys_eventfd, + TP_PROTO(unsigned int count), + TP_ARGS(count), + TP_STRUCT__entry(__field(unsigned int, count)), + TP_fast_assign(tp_assign(count, count)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_epoll_create1 +SC_TRACE_EVENT(sys_epoll_create1, + TP_PROTO(int flags), + TP_ARGS(flags), + TP_STRUCT__entry(__field(int, flags)), + TP_fast_assign(tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_inotify_init1 +SC_TRACE_EVENT(sys_inotify_init1, + TP_PROTO(int flags), + TP_ARGS(flags), + TP_STRUCT__entry(__field(int, flags)), + TP_fast_assign(tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_syncfs +SC_TRACE_EVENT(sys_syncfs, + TP_PROTO(int fd), + TP_ARGS(fd), + TP_STRUCT__entry(__field(int, fd)), + TP_fast_assign(tp_assign(fd, fd)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_munmap +SC_TRACE_EVENT(sys_munmap, + TP_PROTO(unsigned long addr, size_t len), + TP_ARGS(addr, len), + TP_STRUCT__entry(__field_hex(unsigned long, addr) __field(size_t, len)), + TP_fast_assign(tp_assign(addr, addr) tp_assign(len, len)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_dup2 +SC_TRACE_EVENT(sys_dup2, + TP_PROTO(unsigned int oldfd, unsigned int newfd), + TP_ARGS(oldfd, newfd), + TP_STRUCT__entry(__field(unsigned int, oldfd) __field(unsigned int, newfd)), + TP_fast_assign(tp_assign(oldfd, oldfd) tp_assign(newfd, newfd)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_shutdown +SC_TRACE_EVENT(sys_shutdown, + TP_PROTO(int fd, int how), + TP_ARGS(fd, how), + TP_STRUCT__entry(__field(int, fd) __field(int, how)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(how, how)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_listen +SC_TRACE_EVENT(sys_listen, + TP_PROTO(int fd, int backlog), + TP_ARGS(fd, backlog), + TP_STRUCT__entry(__field(int, fd) __field(int, backlog)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(backlog, backlog)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_kill +SC_TRACE_EVENT(sys_kill, + TP_PROTO(pid_t pid, int sig), + TP_ARGS(pid, sig), + TP_STRUCT__entry(__field(pid_t, pid) __field(int, sig)), + TP_fast_assign(tp_assign(pid, pid) tp_assign(sig, sig)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_msgget +SC_TRACE_EVENT(sys_msgget, + TP_PROTO(key_t key, int msgflg), + TP_ARGS(key, msgflg), + TP_STRUCT__entry(__field(key_t, key) __field(int, msgflg)), + TP_fast_assign(tp_assign(key, key) tp_assign(msgflg, msgflg)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_flock +SC_TRACE_EVENT(sys_flock, + TP_PROTO(unsigned int fd, unsigned int cmd), + TP_ARGS(fd, cmd), + TP_STRUCT__entry(__field(unsigned int, fd) __field(unsigned int, cmd)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(cmd, cmd)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_ftruncate +SC_TRACE_EVENT(sys_ftruncate, + TP_PROTO(unsigned int fd, unsigned long length), + TP_ARGS(fd, length), + TP_STRUCT__entry(__field(unsigned int, fd) __field(unsigned long, length)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(length, length)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_fchmod +SC_TRACE_EVENT(sys_fchmod, + TP_PROTO(unsigned int fd, umode_t mode), + TP_ARGS(fd, mode), + TP_STRUCT__entry(__field(unsigned int, fd) __field(umode_t, mode)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(mode, mode)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_setpgid +SC_TRACE_EVENT(sys_setpgid, + TP_PROTO(pid_t pid, pid_t pgid), + TP_ARGS(pid, pgid), + TP_STRUCT__entry(__field(pid_t, pid) __field(pid_t, pgid)), + TP_fast_assign(tp_assign(pid, pid) tp_assign(pgid, pgid)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_setreuid +SC_TRACE_EVENT(sys_setreuid, + TP_PROTO(uid_t ruid, uid_t euid), + TP_ARGS(ruid, euid), + TP_STRUCT__entry(__field(uid_t, ruid) __field(uid_t, euid)), + TP_fast_assign(tp_assign(ruid, ruid) tp_assign(euid, euid)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_setregid +SC_TRACE_EVENT(sys_setregid, + TP_PROTO(gid_t rgid, gid_t egid), + TP_ARGS(rgid, egid), + TP_STRUCT__entry(__field(gid_t, rgid) __field(gid_t, egid)), + TP_fast_assign(tp_assign(rgid, rgid) tp_assign(egid, egid)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_getpriority +SC_TRACE_EVENT(sys_getpriority, + TP_PROTO(int which, int who), + TP_ARGS(which, who), + TP_STRUCT__entry(__field(int, which) __field(int, who)), + TP_fast_assign(tp_assign(which, which) tp_assign(who, who)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_mlock +SC_TRACE_EVENT(sys_mlock, + TP_PROTO(unsigned long start, size_t len), + TP_ARGS(start, len), + TP_STRUCT__entry(__field(unsigned long, start) __field(size_t, len)), + TP_fast_assign(tp_assign(start, start) tp_assign(len, len)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_munlock +SC_TRACE_EVENT(sys_munlock, + TP_PROTO(unsigned long start, size_t len), + TP_ARGS(start, len), + TP_STRUCT__entry(__field(unsigned long, start) __field(size_t, len)), + TP_fast_assign(tp_assign(start, start) tp_assign(len, len)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_tkill +SC_TRACE_EVENT(sys_tkill, + TP_PROTO(pid_t pid, int sig), + TP_ARGS(pid, sig), + TP_STRUCT__entry(__field(pid_t, pid) __field(int, sig)), + TP_fast_assign(tp_assign(pid, pid) tp_assign(sig, sig)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_ioprio_get +SC_TRACE_EVENT(sys_ioprio_get, + TP_PROTO(int which, int who), + TP_ARGS(which, who), + TP_STRUCT__entry(__field(int, which) __field(int, who)), + TP_fast_assign(tp_assign(which, which) tp_assign(who, who)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_inotify_rm_watch +SC_TRACE_EVENT(sys_inotify_rm_watch, + TP_PROTO(int fd, __s32 wd), + TP_ARGS(fd, wd), + TP_STRUCT__entry(__field(int, fd) __field(__s32, wd)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(wd, wd)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_timerfd_create +SC_TRACE_EVENT(sys_timerfd_create, + TP_PROTO(int clockid, int flags), + TP_ARGS(clockid, flags), + TP_STRUCT__entry(__field(int, clockid) __field(int, flags)), + TP_fast_assign(tp_assign(clockid, clockid) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_eventfd2 +SC_TRACE_EVENT(sys_eventfd2, + TP_PROTO(unsigned int count, int flags), + TP_ARGS(count, flags), + TP_STRUCT__entry(__field(unsigned int, count) __field(int, flags)), + TP_fast_assign(tp_assign(count, count) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_fanotify_init +SC_TRACE_EVENT(sys_fanotify_init, + TP_PROTO(unsigned int flags, unsigned int event_f_flags), + TP_ARGS(flags, event_f_flags), + TP_STRUCT__entry(__field(unsigned int, flags) __field(unsigned int, event_f_flags)), + TP_fast_assign(tp_assign(flags, flags) tp_assign(event_f_flags, event_f_flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_setns +SC_TRACE_EVENT(sys_setns, + TP_PROTO(int fd, int nstype), + TP_ARGS(fd, nstype), + TP_STRUCT__entry(__field(int, fd) __field(int, nstype)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(nstype, nstype)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_lseek +SC_TRACE_EVENT(sys_lseek, + TP_PROTO(unsigned int fd, off_t offset, unsigned int whence), + TP_ARGS(fd, offset, whence), + TP_STRUCT__entry(__field(unsigned int, fd) __field(off_t, offset) __field(unsigned int, whence)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(offset, offset) tp_assign(whence, whence)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_mprotect +SC_TRACE_EVENT(sys_mprotect, + TP_PROTO(unsigned long start, size_t len, unsigned long prot), + TP_ARGS(start, len, prot), + TP_STRUCT__entry(__field(unsigned long, start) __field(size_t, len) __field(unsigned long, prot)), + TP_fast_assign(tp_assign(start, start) tp_assign(len, len) tp_assign(prot, prot)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_ioctl +SC_TRACE_EVENT(sys_ioctl, + TP_PROTO(unsigned int fd, unsigned int cmd, unsigned long arg), + TP_ARGS(fd, cmd, arg), + TP_STRUCT__entry(__field(unsigned int, fd) __field(unsigned int, cmd) __field(unsigned long, arg)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(cmd, cmd) tp_assign(arg, arg)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_msync +SC_TRACE_EVENT(sys_msync, + TP_PROTO(unsigned long start, size_t len, int flags), + TP_ARGS(start, len, flags), + TP_STRUCT__entry(__field(unsigned long, start) __field(size_t, len) __field(int, flags)), + TP_fast_assign(tp_assign(start, start) tp_assign(len, len) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_madvise +SC_TRACE_EVENT(sys_madvise, + TP_PROTO(unsigned long start, size_t len_in, int behavior), + TP_ARGS(start, len_in, behavior), + TP_STRUCT__entry(__field(unsigned long, start) __field(size_t, len_in) __field(int, behavior)), + TP_fast_assign(tp_assign(start, start) tp_assign(len_in, len_in) tp_assign(behavior, behavior)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_shmget +SC_TRACE_EVENT(sys_shmget, + TP_PROTO(key_t key, size_t size, int shmflg), + TP_ARGS(key, size, shmflg), + TP_STRUCT__entry(__field(key_t, key) __field(size_t, size) __field(int, shmflg)), + TP_fast_assign(tp_assign(key, key) tp_assign(size, size) tp_assign(shmflg, shmflg)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_socket +SC_TRACE_EVENT(sys_socket, + TP_PROTO(int family, int type, int protocol), + TP_ARGS(family, type, protocol), + TP_STRUCT__entry(__field(int, family) __field(int, type) __field(int, protocol)), + TP_fast_assign(tp_assign(family, family) tp_assign(type, type) tp_assign(protocol, protocol)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_semget +SC_TRACE_EVENT(sys_semget, + TP_PROTO(key_t key, int nsems, int semflg), + TP_ARGS(key, nsems, semflg), + TP_STRUCT__entry(__field(key_t, key) __field(int, nsems) __field(int, semflg)), + TP_fast_assign(tp_assign(key, key) tp_assign(nsems, nsems) tp_assign(semflg, semflg)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_fcntl +SC_TRACE_EVENT(sys_fcntl, + TP_PROTO(unsigned int fd, unsigned int cmd, unsigned long arg), + TP_ARGS(fd, cmd, arg), + TP_STRUCT__entry(__field(unsigned int, fd) __field(unsigned int, cmd) __field(unsigned long, arg)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(cmd, cmd) tp_assign(arg, arg)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_fchown +SC_TRACE_EVENT(sys_fchown, + TP_PROTO(unsigned int fd, uid_t user, gid_t group), + TP_ARGS(fd, user, group), + TP_STRUCT__entry(__field(unsigned int, fd) __field(uid_t, user) __field(gid_t, group)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(user, user) tp_assign(group, group)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_setresuid +SC_TRACE_EVENT(sys_setresuid, + TP_PROTO(uid_t ruid, uid_t euid, uid_t suid), + TP_ARGS(ruid, euid, suid), + TP_STRUCT__entry(__field(uid_t, ruid) __field(uid_t, euid) __field(uid_t, suid)), + TP_fast_assign(tp_assign(ruid, ruid) tp_assign(euid, euid) tp_assign(suid, suid)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_setresgid +SC_TRACE_EVENT(sys_setresgid, + TP_PROTO(gid_t rgid, gid_t egid, gid_t sgid), + TP_ARGS(rgid, egid, sgid), + TP_STRUCT__entry(__field(gid_t, rgid) __field(gid_t, egid) __field(gid_t, sgid)), + TP_fast_assign(tp_assign(rgid, rgid) tp_assign(egid, egid) tp_assign(sgid, sgid)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_sysfs +SC_TRACE_EVENT(sys_sysfs, + TP_PROTO(int option, unsigned long arg1, unsigned long arg2), + TP_ARGS(option, arg1, arg2), + TP_STRUCT__entry(__field(int, option) __field(unsigned long, arg1) __field(unsigned long, arg2)), + TP_fast_assign(tp_assign(option, option) tp_assign(arg1, arg1) tp_assign(arg2, arg2)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_setpriority +SC_TRACE_EVENT(sys_setpriority, + TP_PROTO(int which, int who, int niceval), + TP_ARGS(which, who, niceval), + TP_STRUCT__entry(__field(int, which) __field(int, who) __field(int, niceval)), + TP_fast_assign(tp_assign(which, which) tp_assign(who, who) tp_assign(niceval, niceval)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_readahead +SC_TRACE_EVENT(sys_readahead, + TP_PROTO(int fd, loff_t offset, size_t count), + TP_ARGS(fd, offset, count), + TP_STRUCT__entry(__field(int, fd) __field(loff_t, offset) __field(size_t, count)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(offset, offset) tp_assign(count, count)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_tgkill +SC_TRACE_EVENT(sys_tgkill, + TP_PROTO(pid_t tgid, pid_t pid, int sig), + TP_ARGS(tgid, pid, sig), + TP_STRUCT__entry(__field(pid_t, tgid) __field(pid_t, pid) __field(int, sig)), + TP_fast_assign(tp_assign(tgid, tgid) tp_assign(pid, pid) tp_assign(sig, sig)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_ioprio_set +SC_TRACE_EVENT(sys_ioprio_set, + TP_PROTO(int which, int who, int ioprio), + TP_ARGS(which, who, ioprio), + TP_STRUCT__entry(__field(int, which) __field(int, who) __field(int, ioprio)), + TP_fast_assign(tp_assign(which, which) tp_assign(who, who) tp_assign(ioprio, ioprio)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_dup3 +SC_TRACE_EVENT(sys_dup3, + TP_PROTO(unsigned int oldfd, unsigned int newfd, int flags), + TP_ARGS(oldfd, newfd, flags), + TP_STRUCT__entry(__field(unsigned int, oldfd) __field(unsigned int, newfd) __field(int, flags)), + TP_fast_assign(tp_assign(oldfd, oldfd) tp_assign(newfd, newfd) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_semctl +SC_TRACE_EVENT(sys_semctl, + TP_PROTO(int semid, int semnum, int cmd, unsigned long arg), + TP_ARGS(semid, semnum, cmd, arg), + TP_STRUCT__entry(__field(int, semid) __field(int, semnum) __field(int, cmd) __field(unsigned long, arg)), + TP_fast_assign(tp_assign(semid, semid) tp_assign(semnum, semnum) tp_assign(cmd, cmd) tp_assign(arg, arg)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_ptrace +SC_TRACE_EVENT(sys_ptrace, + TP_PROTO(long request, long pid, unsigned long addr, unsigned long data), + TP_ARGS(request, pid, addr, data), + TP_STRUCT__entry(__field(long, request) __field(long, pid) __field_hex(unsigned long, addr) __field(unsigned long, data)), + TP_fast_assign(tp_assign(request, request) tp_assign(pid, pid) tp_assign(addr, addr) tp_assign(data, data)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_fadvise64 +SC_TRACE_EVENT(sys_fadvise64, + TP_PROTO(int fd, loff_t offset, size_t len, int advice), + TP_ARGS(fd, offset, len, advice), + TP_STRUCT__entry(__field(int, fd) __field(loff_t, offset) __field(size_t, len) __field(int, advice)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(offset, offset) tp_assign(len, len) tp_assign(advice, advice)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_tee +SC_TRACE_EVENT(sys_tee, + TP_PROTO(int fdin, int fdout, size_t len, unsigned int flags), + TP_ARGS(fdin, fdout, len, flags), + TP_STRUCT__entry(__field(int, fdin) __field(int, fdout) __field(size_t, len) __field(unsigned int, flags)), + TP_fast_assign(tp_assign(fdin, fdin) tp_assign(fdout, fdout) tp_assign(len, len) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_sync_file_range +SC_TRACE_EVENT(sys_sync_file_range, + TP_PROTO(int fd, loff_t offset, loff_t nbytes, unsigned int flags), + TP_ARGS(fd, offset, nbytes, flags), + TP_STRUCT__entry(__field(int, fd) __field(loff_t, offset) __field(loff_t, nbytes) __field(unsigned int, flags)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(offset, offset) tp_assign(nbytes, nbytes) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_fallocate +SC_TRACE_EVENT(sys_fallocate, + TP_PROTO(int fd, int mode, loff_t offset, loff_t len), + TP_ARGS(fd, mode, offset, len), + TP_STRUCT__entry(__field(int, fd) __field(int, mode) __field(loff_t, offset) __field(loff_t, len)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(mode, mode) tp_assign(offset, offset) tp_assign(len, len)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_mremap +SC_TRACE_EVENT(sys_mremap, + TP_PROTO(unsigned long addr, unsigned long old_len, unsigned long new_len, unsigned long flags, unsigned long new_addr), + TP_ARGS(addr, old_len, new_len, flags, new_addr), + TP_STRUCT__entry(__field_hex(unsigned long, addr) __field(unsigned long, old_len) __field(unsigned long, new_len) __field(unsigned long, flags) __field_hex(unsigned long, new_addr)), + TP_fast_assign(tp_assign(addr, addr) tp_assign(old_len, old_len) tp_assign(new_len, new_len) tp_assign(flags, flags) tp_assign(new_addr, new_addr)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_prctl +SC_TRACE_EVENT(sys_prctl, + TP_PROTO(int option, unsigned long arg2, unsigned long arg3, unsigned long arg4, unsigned long arg5), + TP_ARGS(option, arg2, arg3, arg4, arg5), + TP_STRUCT__entry(__field(int, option) __field(unsigned long, arg2) __field(unsigned long, arg3) __field(unsigned long, arg4) __field(unsigned long, arg5)), + TP_fast_assign(tp_assign(option, option) tp_assign(arg2, arg2) tp_assign(arg3, arg3) tp_assign(arg4, arg4) tp_assign(arg5, arg5)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_remap_file_pages +SC_TRACE_EVENT(sys_remap_file_pages, + TP_PROTO(unsigned long start, unsigned long size, unsigned long prot, unsigned long pgoff, unsigned long flags), + TP_ARGS(start, size, prot, pgoff, flags), + TP_STRUCT__entry(__field(unsigned long, start) __field(unsigned long, size) __field(unsigned long, prot) __field(unsigned long, pgoff) __field(unsigned long, flags)), + TP_fast_assign(tp_assign(start, start) tp_assign(size, size) tp_assign(prot, prot) tp_assign(pgoff, pgoff) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_keyctl +SC_TRACE_EVENT(sys_keyctl, + TP_PROTO(int option, unsigned long arg2, unsigned long arg3, unsigned long arg4, unsigned long arg5), + TP_ARGS(option, arg2, arg3, arg4, arg5), + TP_STRUCT__entry(__field(int, option) __field(unsigned long, arg2) __field(unsigned long, arg3) __field(unsigned long, arg4) __field(unsigned long, arg5)), + TP_fast_assign(tp_assign(option, option) tp_assign(arg2, arg2) tp_assign(arg3, arg3) tp_assign(arg4, arg4) tp_assign(arg5, arg5)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_mmap +SC_TRACE_EVENT(sys_mmap, + TP_PROTO(unsigned long addr, unsigned long len, unsigned long prot, unsigned long flags, unsigned long fd, unsigned long off), + TP_ARGS(addr, len, prot, flags, fd, off), + TP_STRUCT__entry(__field_hex(unsigned long, addr) __field(unsigned long, len) __field(unsigned long, prot) __field(unsigned long, flags) __field(unsigned long, fd) __field(unsigned long, off)), + TP_fast_assign(tp_assign(addr, addr) tp_assign(len, len) tp_assign(prot, prot) tp_assign(flags, flags) tp_assign(fd, fd) tp_assign(off, off)), + TP_printk() +) +#endif + +#endif /* _TRACE_SYSCALLS_INTEGERS_H */ + +/* This part must be outside protection */ +#include "../../../probes/define_trace.h" + +#else /* CREATE_SYSCALL_TABLE */ + +#include "x86-64-syscalls-3.10.0-rc7_integers_override.h" +#include "syscalls_integers_override.h" + +#ifndef OVERRIDE_TABLE_64_sys_sched_yield +TRACE_SYSCALL_TABLE(syscalls_noargs, sys_sched_yield, 24, 0) +#endif +#ifndef OVERRIDE_TABLE_64_sys_pause +TRACE_SYSCALL_TABLE(syscalls_noargs, sys_pause, 34, 0) +#endif +#ifndef OVERRIDE_TABLE_64_sys_getpid +TRACE_SYSCALL_TABLE(syscalls_noargs, sys_getpid, 39, 0) +#endif +#ifndef OVERRIDE_TABLE_64_sys_getuid +TRACE_SYSCALL_TABLE(syscalls_noargs, sys_getuid, 102, 0) +#endif +#ifndef OVERRIDE_TABLE_64_sys_getgid +TRACE_SYSCALL_TABLE(syscalls_noargs, sys_getgid, 104, 0) +#endif +#ifndef OVERRIDE_TABLE_64_sys_geteuid +TRACE_SYSCALL_TABLE(syscalls_noargs, sys_geteuid, 107, 0) +#endif +#ifndef OVERRIDE_TABLE_64_sys_getegid +TRACE_SYSCALL_TABLE(syscalls_noargs, sys_getegid, 108, 0) +#endif +#ifndef OVERRIDE_TABLE_64_sys_getppid +TRACE_SYSCALL_TABLE(syscalls_noargs, sys_getppid, 110, 0) +#endif +#ifndef OVERRIDE_TABLE_64_sys_getpgrp +TRACE_SYSCALL_TABLE(syscalls_noargs, sys_getpgrp, 111, 0) +#endif +#ifndef OVERRIDE_TABLE_64_sys_setsid +TRACE_SYSCALL_TABLE(syscalls_noargs, sys_setsid, 112, 0) +#endif +#ifndef OVERRIDE_TABLE_64_sys_munlockall +TRACE_SYSCALL_TABLE(syscalls_noargs, sys_munlockall, 152, 0) +#endif +#ifndef OVERRIDE_TABLE_64_sys_vhangup +TRACE_SYSCALL_TABLE(syscalls_noargs, sys_vhangup, 153, 0) +#endif +#ifndef OVERRIDE_TABLE_64_sys_sync +TRACE_SYSCALL_TABLE(syscalls_noargs, sys_sync, 162, 0) +#endif +#ifndef OVERRIDE_TABLE_64_sys_gettid +TRACE_SYSCALL_TABLE(syscalls_noargs, sys_gettid, 186, 0) +#endif +#ifndef OVERRIDE_TABLE_64_sys_restart_syscall +TRACE_SYSCALL_TABLE(syscalls_noargs, sys_restart_syscall, 219, 0) +#endif +#ifndef OVERRIDE_TABLE_64_sys_inotify_init +TRACE_SYSCALL_TABLE(syscalls_noargs, sys_inotify_init, 253, 0) +#endif +#ifndef OVERRIDE_TABLE_64_sys_close +TRACE_SYSCALL_TABLE(sys_close, sys_close, 3, 1) +#endif +#ifndef OVERRIDE_TABLE_64_sys_lseek +TRACE_SYSCALL_TABLE(sys_lseek, sys_lseek, 8, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_mmap +TRACE_SYSCALL_TABLE(sys_mmap, sys_mmap, 9, 6) +#endif +#ifndef OVERRIDE_TABLE_64_sys_mprotect +TRACE_SYSCALL_TABLE(sys_mprotect, sys_mprotect, 10, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_munmap +TRACE_SYSCALL_TABLE(sys_munmap, sys_munmap, 11, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_brk +TRACE_SYSCALL_TABLE(sys_brk, sys_brk, 12, 1) +#endif +#ifndef OVERRIDE_TABLE_64_sys_ioctl +TRACE_SYSCALL_TABLE(sys_ioctl, sys_ioctl, 16, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_mremap +TRACE_SYSCALL_TABLE(sys_mremap, sys_mremap, 25, 5) +#endif +#ifndef OVERRIDE_TABLE_64_sys_msync +TRACE_SYSCALL_TABLE(sys_msync, sys_msync, 26, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_madvise +TRACE_SYSCALL_TABLE(sys_madvise, sys_madvise, 28, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_shmget +TRACE_SYSCALL_TABLE(sys_shmget, sys_shmget, 29, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_dup +TRACE_SYSCALL_TABLE(sys_dup, sys_dup, 32, 1) +#endif +#ifndef OVERRIDE_TABLE_64_sys_dup2 +TRACE_SYSCALL_TABLE(sys_dup2, sys_dup2, 33, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_alarm +TRACE_SYSCALL_TABLE(sys_alarm, sys_alarm, 37, 1) +#endif +#ifndef OVERRIDE_TABLE_64_sys_socket +TRACE_SYSCALL_TABLE(sys_socket, sys_socket, 41, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_shutdown +TRACE_SYSCALL_TABLE(sys_shutdown, sys_shutdown, 48, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_listen +TRACE_SYSCALL_TABLE(sys_listen, sys_listen, 50, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_exit +TRACE_SYSCALL_TABLE(sys_exit, sys_exit, 60, 1) +#endif +#ifndef OVERRIDE_TABLE_64_sys_kill +TRACE_SYSCALL_TABLE(sys_kill, sys_kill, 62, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_semget +TRACE_SYSCALL_TABLE(sys_semget, sys_semget, 64, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_semctl +TRACE_SYSCALL_TABLE(sys_semctl, sys_semctl, 66, 4) +#endif +#ifndef OVERRIDE_TABLE_64_sys_msgget +TRACE_SYSCALL_TABLE(sys_msgget, sys_msgget, 68, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_fcntl +TRACE_SYSCALL_TABLE(sys_fcntl, sys_fcntl, 72, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_flock +TRACE_SYSCALL_TABLE(sys_flock, sys_flock, 73, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_fsync +TRACE_SYSCALL_TABLE(sys_fsync, sys_fsync, 74, 1) +#endif +#ifndef OVERRIDE_TABLE_64_sys_fdatasync +TRACE_SYSCALL_TABLE(sys_fdatasync, sys_fdatasync, 75, 1) +#endif +#ifndef OVERRIDE_TABLE_64_sys_ftruncate +TRACE_SYSCALL_TABLE(sys_ftruncate, sys_ftruncate, 77, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_fchdir +TRACE_SYSCALL_TABLE(sys_fchdir, sys_fchdir, 81, 1) +#endif +#ifndef OVERRIDE_TABLE_64_sys_fchmod +TRACE_SYSCALL_TABLE(sys_fchmod, sys_fchmod, 91, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_fchown +TRACE_SYSCALL_TABLE(sys_fchown, sys_fchown, 93, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_umask +TRACE_SYSCALL_TABLE(sys_umask, sys_umask, 95, 1) +#endif +#ifndef OVERRIDE_TABLE_64_sys_ptrace +TRACE_SYSCALL_TABLE(sys_ptrace, sys_ptrace, 101, 4) +#endif +#ifndef OVERRIDE_TABLE_64_sys_setuid +TRACE_SYSCALL_TABLE(sys_setuid, sys_setuid, 105, 1) +#endif +#ifndef OVERRIDE_TABLE_64_sys_setgid +TRACE_SYSCALL_TABLE(sys_setgid, sys_setgid, 106, 1) +#endif +#ifndef OVERRIDE_TABLE_64_sys_setpgid +TRACE_SYSCALL_TABLE(sys_setpgid, sys_setpgid, 109, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_setreuid +TRACE_SYSCALL_TABLE(sys_setreuid, sys_setreuid, 113, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_setregid +TRACE_SYSCALL_TABLE(sys_setregid, sys_setregid, 114, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_setresuid +TRACE_SYSCALL_TABLE(sys_setresuid, sys_setresuid, 117, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_setresgid +TRACE_SYSCALL_TABLE(sys_setresgid, sys_setresgid, 119, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_getpgid +TRACE_SYSCALL_TABLE(sys_getpgid, sys_getpgid, 121, 1) +#endif +#ifndef OVERRIDE_TABLE_64_sys_setfsuid +TRACE_SYSCALL_TABLE(sys_setfsuid, sys_setfsuid, 122, 1) +#endif +#ifndef OVERRIDE_TABLE_64_sys_setfsgid +TRACE_SYSCALL_TABLE(sys_setfsgid, sys_setfsgid, 123, 1) +#endif +#ifndef OVERRIDE_TABLE_64_sys_getsid +TRACE_SYSCALL_TABLE(sys_getsid, sys_getsid, 124, 1) +#endif +#ifndef OVERRIDE_TABLE_64_sys_personality +TRACE_SYSCALL_TABLE(sys_personality, sys_personality, 135, 1) +#endif +#ifndef OVERRIDE_TABLE_64_sys_sysfs +TRACE_SYSCALL_TABLE(sys_sysfs, sys_sysfs, 139, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_getpriority +TRACE_SYSCALL_TABLE(sys_getpriority, sys_getpriority, 140, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_setpriority +TRACE_SYSCALL_TABLE(sys_setpriority, sys_setpriority, 141, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_sched_getscheduler +TRACE_SYSCALL_TABLE(sys_sched_getscheduler, sys_sched_getscheduler, 145, 1) +#endif +#ifndef OVERRIDE_TABLE_64_sys_sched_get_priority_max +TRACE_SYSCALL_TABLE(sys_sched_get_priority_max, sys_sched_get_priority_max, 146, 1) +#endif +#ifndef OVERRIDE_TABLE_64_sys_sched_get_priority_min +TRACE_SYSCALL_TABLE(sys_sched_get_priority_min, sys_sched_get_priority_min, 147, 1) +#endif +#ifndef OVERRIDE_TABLE_64_sys_mlock +TRACE_SYSCALL_TABLE(sys_mlock, sys_mlock, 149, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_munlock +TRACE_SYSCALL_TABLE(sys_munlock, sys_munlock, 150, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_mlockall +TRACE_SYSCALL_TABLE(sys_mlockall, sys_mlockall, 151, 1) +#endif +#ifndef OVERRIDE_TABLE_64_sys_prctl +TRACE_SYSCALL_TABLE(sys_prctl, sys_prctl, 157, 5) +#endif +#ifndef OVERRIDE_TABLE_64_sys_readahead +TRACE_SYSCALL_TABLE(sys_readahead, sys_readahead, 187, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_tkill +TRACE_SYSCALL_TABLE(sys_tkill, sys_tkill, 200, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_io_destroy +TRACE_SYSCALL_TABLE(sys_io_destroy, sys_io_destroy, 207, 1) +#endif +#ifndef OVERRIDE_TABLE_64_sys_epoll_create +TRACE_SYSCALL_TABLE(sys_epoll_create, sys_epoll_create, 213, 1) +#endif +#ifndef OVERRIDE_TABLE_64_sys_remap_file_pages +TRACE_SYSCALL_TABLE(sys_remap_file_pages, sys_remap_file_pages, 216, 5) +#endif +#ifndef OVERRIDE_TABLE_64_sys_fadvise64 +TRACE_SYSCALL_TABLE(sys_fadvise64, sys_fadvise64, 221, 4) +#endif +#ifndef OVERRIDE_TABLE_64_sys_timer_getoverrun +TRACE_SYSCALL_TABLE(sys_timer_getoverrun, sys_timer_getoverrun, 225, 1) +#endif +#ifndef OVERRIDE_TABLE_64_sys_timer_delete +TRACE_SYSCALL_TABLE(sys_timer_delete, sys_timer_delete, 226, 1) +#endif +#ifndef OVERRIDE_TABLE_64_sys_exit_group +TRACE_SYSCALL_TABLE(sys_exit_group, sys_exit_group, 231, 1) +#endif +#ifndef OVERRIDE_TABLE_64_sys_tgkill +TRACE_SYSCALL_TABLE(sys_tgkill, sys_tgkill, 234, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_keyctl +TRACE_SYSCALL_TABLE(sys_keyctl, sys_keyctl, 250, 5) +#endif +#ifndef OVERRIDE_TABLE_64_sys_ioprio_set +TRACE_SYSCALL_TABLE(sys_ioprio_set, sys_ioprio_set, 251, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_ioprio_get +TRACE_SYSCALL_TABLE(sys_ioprio_get, sys_ioprio_get, 252, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_inotify_rm_watch +TRACE_SYSCALL_TABLE(sys_inotify_rm_watch, sys_inotify_rm_watch, 255, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_unshare +TRACE_SYSCALL_TABLE(sys_unshare, sys_unshare, 272, 1) +#endif +#ifndef OVERRIDE_TABLE_64_sys_tee +TRACE_SYSCALL_TABLE(sys_tee, sys_tee, 276, 4) +#endif +#ifndef OVERRIDE_TABLE_64_sys_sync_file_range +TRACE_SYSCALL_TABLE(sys_sync_file_range, sys_sync_file_range, 277, 4) +#endif +#ifndef OVERRIDE_TABLE_64_sys_timerfd_create +TRACE_SYSCALL_TABLE(sys_timerfd_create, sys_timerfd_create, 283, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_eventfd +TRACE_SYSCALL_TABLE(sys_eventfd, sys_eventfd, 284, 1) +#endif +#ifndef OVERRIDE_TABLE_64_sys_fallocate +TRACE_SYSCALL_TABLE(sys_fallocate, sys_fallocate, 285, 4) +#endif +#ifndef OVERRIDE_TABLE_64_sys_eventfd2 +TRACE_SYSCALL_TABLE(sys_eventfd2, sys_eventfd2, 290, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_epoll_create1 +TRACE_SYSCALL_TABLE(sys_epoll_create1, sys_epoll_create1, 291, 1) +#endif +#ifndef OVERRIDE_TABLE_64_sys_dup3 +TRACE_SYSCALL_TABLE(sys_dup3, sys_dup3, 292, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_inotify_init1 +TRACE_SYSCALL_TABLE(sys_inotify_init1, sys_inotify_init1, 294, 1) +#endif +#ifndef OVERRIDE_TABLE_64_sys_fanotify_init +TRACE_SYSCALL_TABLE(sys_fanotify_init, sys_fanotify_init, 300, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_syncfs +TRACE_SYSCALL_TABLE(sys_syncfs, sys_syncfs, 306, 1) +#endif +#ifndef OVERRIDE_TABLE_64_sys_setns +TRACE_SYSCALL_TABLE(sys_setns, sys_setns, 308, 2) +#endif + +#endif /* CREATE_SYSCALL_TABLE */ --- linux-3.11.0.orig/ubuntu/lttng/instrumentation/syscalls/headers/x86-32-syscalls-3.1.0-rc6_integers_override.h +++ linux-3.11.0/ubuntu/lttng/instrumentation/syscalls/headers/x86-32-syscalls-3.1.0-rc6_integers_override.h @@ -0,0 +1,38 @@ +#ifndef CONFIG_UID16 + +#define OVERRIDE_32_sys_getuid16 +#define OVERRIDE_32_sys_getgid16 +#define OVERRIDE_32_sys_geteuid16 +#define OVERRIDE_32_sys_getegid16 +#define OVERRIDE_32_sys_setuid16 +#define OVERRIDE_32_sys_setgid16 +#define OVERRIDE_32_sys_setfsuid16 +#define OVERRIDE_32_sys_setfsgid16 +#define OVERRIDE_32_sys_setreuid16 +#define OVERRIDE_32_sys_setregid16 +#define OVERRIDE_32_sys_fchown16 +#define OVERRIDE_32_sys_setresuid16 +#define OVERRIDE_32_sys_setresgid16 + +#define OVERRIDE_TABLE_32_sys_getuid16 +#define OVERRIDE_TABLE_32_sys_getgid16 +#define OVERRIDE_TABLE_32_sys_geteuid16 +#define OVERRIDE_TABLE_32_sys_getegid16 +#define OVERRIDE_TABLE_32_sys_setuid16 +#define OVERRIDE_TABLE_32_sys_setgid16 +#define OVERRIDE_TABLE_32_sys_setreuid16 +#define OVERRIDE_TABLE_32_sys_setregid16 +#define OVERRIDE_TABLE_32_sys_fchown16 +#define OVERRIDE_TABLE_32_sys_setfsuid16 +#define OVERRIDE_TABLE_32_sys_setfsgid16 +#define OVERRIDE_TABLE_32_sys_setresuid16 +#define OVERRIDE_TABLE_32_sys_setresgid16 + +#endif + +#ifdef CREATE_SYSCALL_TABLE + +#define OVERRIDE_TABLE_32_sys_mmap +TRACE_SYSCALL_TABLE(sys_mmap, sys_mmap, 90, 6) + +#endif --- linux-3.11.0.orig/ubuntu/lttng/instrumentation/syscalls/headers/x86-64-syscalls-3.10.0-rc7_integers_override.h +++ linux-3.11.0/ubuntu/lttng/instrumentation/syscalls/headers/x86-64-syscalls-3.10.0-rc7_integers_override.h @@ -0,0 +1,3 @@ +/* + * this is a place-holder for x86_64 integer syscall definition override. + */ --- linux-3.11.0.orig/ubuntu/lttng/instrumentation/syscalls/headers/compat_syscalls_pointers.h +++ linux-3.11.0/ubuntu/lttng/instrumentation/syscalls/headers/compat_syscalls_pointers.h @@ -0,0 +1,3 @@ +#ifdef CONFIG_X86_64 +#include "x86-32-syscalls-3.1.0-rc6_pointers.h" +#endif --- linux-3.11.0.orig/ubuntu/lttng/instrumentation/syscalls/headers/x86-64-syscalls-3.10.0-rc7_pointers_override.h +++ linux-3.11.0/ubuntu/lttng/instrumentation/syscalls/headers/x86-64-syscalls-3.10.0-rc7_pointers_override.h @@ -0,0 +1,12 @@ +#ifndef CREATE_SYSCALL_TABLE + +#else /* CREATE_SYSCALL_TABLE */ + +#define OVERRIDE_TABLE_64_sys_clone +TRACE_SYSCALL_TABLE(sys_clone, sys_clone, 56, 5) +#define OVERRIDE_TABLE_64_sys_execve +TRACE_SYSCALL_TABLE(sys_execve, sys_execve, 59, 3) +#define OVERRIDE_TABLE_64_sys_getcpu +TRACE_SYSCALL_TABLE(sys_getcpu, sys_getcpu, 309, 3) + +#endif /* CREATE_SYSCALL_TABLE */ --- linux-3.11.0.orig/ubuntu/lttng/instrumentation/syscalls/3.1.0-rc6/x86-32-syscalls-3.1.0-rc6 +++ linux-3.11.0/ubuntu/lttng/instrumentation/syscalls/3.1.0-rc6/x86-32-syscalls-3.1.0-rc6 @@ -0,0 +1,291 @@ +syscall sys_restart_syscall nr 0 nbargs 0 types: () args: () +syscall sys_exit nr 1 nbargs 1 types: (int) args: (error_code) +syscall sys_read nr 3 nbargs 3 types: (unsigned int, char *, size_t) args: (fd, buf, count) +syscall sys_write nr 4 nbargs 3 types: (unsigned int, const char *, size_t) args: (fd, buf, count) +syscall sys_open nr 5 nbargs 3 types: (const char *, int, int) args: (filename, flags, mode) +syscall sys_close nr 6 nbargs 1 types: (unsigned int) args: (fd) +syscall sys_waitpid nr 7 nbargs 3 types: (pid_t, int *, int) args: (pid, stat_addr, options) +syscall sys_creat nr 8 nbargs 2 types: (const char *, int) args: (pathname, mode) +syscall sys_link nr 9 nbargs 2 types: (const char *, const char *) args: (oldname, newname) +syscall sys_unlink nr 10 nbargs 1 types: (const char *) args: (pathname) +syscall sys_chdir nr 12 nbargs 1 types: (const char *) args: (filename) +syscall sys_time nr 13 nbargs 1 types: (time_t *) args: (tloc) +syscall sys_mknod nr 14 nbargs 3 types: (const char *, int, unsigned) args: (filename, mode, dev) +syscall sys_chmod nr 15 nbargs 2 types: (const char *, mode_t) args: (filename, mode) +syscall sys_lchown16 nr 16 nbargs 3 types: (const char *, old_uid_t, old_gid_t) args: (filename, user, group) +syscall sys_stat nr 18 nbargs 2 types: (const char *, struct __old_kernel_stat *) args: (filename, statbuf) +syscall sys_lseek nr 19 nbargs 3 types: (unsigned int, off_t, unsigned int) args: (fd, offset, origin) +syscall sys_getpid nr 20 nbargs 0 types: () args: () +syscall sys_mount nr 21 nbargs 5 types: (char *, char *, char *, unsigned long, void *) args: (dev_name, dir_name, type, flags, data) +syscall sys_oldumount nr 22 nbargs 1 types: (char *) args: (name) +syscall sys_setuid16 nr 23 nbargs 1 types: (old_uid_t) args: (uid) +syscall sys_getuid16 nr 24 nbargs 0 types: () args: () +syscall sys_stime nr 25 nbargs 1 types: (time_t *) args: (tptr) +syscall sys_ptrace nr 26 nbargs 4 types: (long, long, unsigned long, unsigned long) args: (request, pid, addr, data) +syscall sys_alarm nr 27 nbargs 1 types: (unsigned int) args: (seconds) +syscall sys_fstat nr 28 nbargs 2 types: (unsigned int, struct __old_kernel_stat *) args: (fd, statbuf) +syscall sys_pause nr 29 nbargs 0 types: () args: () +syscall sys_utime nr 30 nbargs 2 types: (char *, struct utimbuf *) args: (filename, times) +syscall sys_access nr 33 nbargs 2 types: (const char *, int) args: (filename, mode) +syscall sys_nice nr 34 nbargs 1 types: (int) args: (increment) +syscall sys_sync nr 36 nbargs 0 types: () args: () +syscall sys_kill nr 37 nbargs 2 types: (pid_t, int) args: (pid, sig) +syscall sys_rename nr 38 nbargs 2 types: (const char *, const char *) args: (oldname, newname) +syscall sys_mkdir nr 39 nbargs 2 types: (const char *, int) args: (pathname, mode) +syscall sys_rmdir nr 40 nbargs 1 types: (const char *) args: (pathname) +syscall sys_dup nr 41 nbargs 1 types: (unsigned int) args: (fildes) +syscall sys_pipe nr 42 nbargs 1 types: (int *) args: (fildes) +syscall sys_times nr 43 nbargs 1 types: (struct tms *) args: (tbuf) +syscall sys_brk nr 45 nbargs 1 types: (unsigned long) args: (brk) +syscall sys_setgid16 nr 46 nbargs 1 types: (old_gid_t) args: (gid) +syscall sys_getgid16 nr 47 nbargs 0 types: () args: () +syscall sys_signal nr 48 nbargs 2 types: (int, __sighandler_t) args: (sig, handler) +syscall sys_geteuid16 nr 49 nbargs 0 types: () args: () +syscall sys_getegid16 nr 50 nbargs 0 types: () args: () +syscall sys_acct nr 51 nbargs 1 types: (const char *) args: (name) +syscall sys_umount nr 52 nbargs 2 types: (char *, int) args: (name, flags) +syscall sys_ioctl nr 54 nbargs 3 types: (unsigned int, unsigned int, unsigned long) args: (fd, cmd, arg) +syscall sys_fcntl nr 55 nbargs 3 types: (unsigned int, unsigned int, unsigned long) args: (fd, cmd, arg) +syscall sys_setpgid nr 57 nbargs 2 types: (pid_t, pid_t) args: (pid, pgid) +syscall sys_olduname nr 59 nbargs 1 types: (struct oldold_utsname *) args: (name) +syscall sys_umask nr 60 nbargs 1 types: (int) args: (mask) +syscall sys_chroot nr 61 nbargs 1 types: (const char *) args: (filename) +syscall sys_ustat nr 62 nbargs 2 types: (unsigned, struct ustat *) args: (dev, ubuf) +syscall sys_dup2 nr 63 nbargs 2 types: (unsigned int, unsigned int) args: (oldfd, newfd) +syscall sys_getppid nr 64 nbargs 0 types: () args: () +syscall sys_getpgrp nr 65 nbargs 0 types: () args: () +syscall sys_setsid nr 66 nbargs 0 types: () args: () +syscall sys_sgetmask nr 68 nbargs 0 types: () args: () +syscall sys_ssetmask nr 69 nbargs 1 types: (int) args: (newmask) +syscall sys_setreuid16 nr 70 nbargs 2 types: (old_uid_t, old_uid_t) args: (ruid, euid) +syscall sys_setregid16 nr 71 nbargs 2 types: (old_gid_t, old_gid_t) args: (rgid, egid) +syscall sys_sigpending nr 73 nbargs 1 types: (old_sigset_t *) args: (set) +syscall sys_sethostname nr 74 nbargs 2 types: (char *, int) args: (name, len) +syscall sys_setrlimit nr 75 nbargs 2 types: (unsigned int, struct rlimit *) args: (resource, rlim) +syscall sys_old_getrlimit nr 76 nbargs 2 types: (unsigned int, struct rlimit *) args: (resource, rlim) +syscall sys_getrusage nr 77 nbargs 2 types: (int, struct rusage *) args: (who, ru) +syscall sys_gettimeofday nr 78 nbargs 2 types: (struct timeval *, struct timezone *) args: (tv, tz) +syscall sys_settimeofday nr 79 nbargs 2 types: (struct timeval *, struct timezone *) args: (tv, tz) +syscall sys_getgroups16 nr 80 nbargs 2 types: (int, old_gid_t *) args: (gidsetsize, grouplist) +syscall sys_setgroups16 nr 81 nbargs 2 types: (int, old_gid_t *) args: (gidsetsize, grouplist) +syscall sys_old_select nr 82 nbargs 1 types: (struct sel_arg_struct *) args: (arg) +syscall sys_symlink nr 83 nbargs 2 types: (const char *, const char *) args: (oldname, newname) +syscall sys_lstat nr 84 nbargs 2 types: (const char *, struct __old_kernel_stat *) args: (filename, statbuf) +syscall sys_readlink nr 85 nbargs 3 types: (const char *, char *, int) args: (path, buf, bufsiz) +syscall sys_uselib nr 86 nbargs 1 types: (const char *) args: (library) +syscall sys_swapon nr 87 nbargs 2 types: (const char *, int) args: (specialfile, swap_flags) +syscall sys_reboot nr 88 nbargs 4 types: (int, int, unsigned int, void *) args: (magic1, magic2, cmd, arg) +syscall sys_old_readdir nr 89 nbargs 3 types: (unsigned int, struct old_linux_dirent *, unsigned int) args: (fd, dirent, count) +syscall sys_old_mmap nr 90 nbargs 1 types: (struct mmap_arg_struct *) args: (arg) +syscall sys_munmap nr 91 nbargs 2 types: (unsigned long, size_t) args: (addr, len) +syscall sys_truncate nr 92 nbargs 2 types: (const char *, long) args: (path, length) +syscall sys_ftruncate nr 93 nbargs 2 types: (unsigned int, unsigned long) args: (fd, length) +syscall sys_fchmod nr 94 nbargs 2 types: (unsigned int, mode_t) args: (fd, mode) +syscall sys_fchown16 nr 95 nbargs 3 types: (unsigned int, old_uid_t, old_gid_t) args: (fd, user, group) +syscall sys_getpriority nr 96 nbargs 2 types: (int, int) args: (which, who) +syscall sys_setpriority nr 97 nbargs 3 types: (int, int, int) args: (which, who, niceval) +syscall sys_statfs nr 99 nbargs 2 types: (const char *, struct statfs *) args: (pathname, buf) +syscall sys_fstatfs nr 100 nbargs 2 types: (unsigned int, struct statfs *) args: (fd, buf) +syscall sys_socketcall nr 102 nbargs 2 types: (int, unsigned long *) args: (call, args) +syscall sys_syslog nr 103 nbargs 3 types: (int, char *, int) args: (type, buf, len) +syscall sys_setitimer nr 104 nbargs 3 types: (int, struct itimerval *, struct itimerval *) args: (which, value, ovalue) +syscall sys_getitimer nr 105 nbargs 2 types: (int, struct itimerval *) args: (which, value) +syscall sys_newstat nr 106 nbargs 2 types: (const char *, struct stat *) args: (filename, statbuf) +syscall sys_newlstat nr 107 nbargs 2 types: (const char *, struct stat *) args: (filename, statbuf) +syscall sys_newfstat nr 108 nbargs 2 types: (unsigned int, struct stat *) args: (fd, statbuf) +syscall sys_uname nr 109 nbargs 1 types: (struct old_utsname *) args: (name) +syscall sys_vhangup nr 111 nbargs 0 types: () args: () +syscall sys_wait4 nr 114 nbargs 4 types: (pid_t, int *, int, struct rusage *) args: (upid, stat_addr, options, ru) +syscall sys_swapoff nr 115 nbargs 1 types: (const char *) args: (specialfile) +syscall sys_sysinfo nr 116 nbargs 1 types: (struct sysinfo *) args: (info) +syscall sys_ipc nr 117 nbargs 6 types: (unsigned int, int, unsigned long, unsigned long, void *, long) args: (call, first, second, third, ptr, fifth) +syscall sys_fsync nr 118 nbargs 1 types: (unsigned int) args: (fd) +syscall sys_setdomainname nr 121 nbargs 2 types: (char *, int) args: (name, len) +syscall sys_newuname nr 122 nbargs 1 types: (struct new_utsname *) args: (name) +syscall sys_adjtimex nr 124 nbargs 1 types: (struct timex *) args: (txc_p) +syscall sys_mprotect nr 125 nbargs 3 types: (unsigned long, size_t, unsigned long) args: (start, len, prot) +syscall sys_sigprocmask nr 126 nbargs 3 types: (int, old_sigset_t *, old_sigset_t *) args: (how, nset, oset) +syscall sys_init_module nr 128 nbargs 3 types: (void *, unsigned long, const char *) args: (umod, len, uargs) +syscall sys_delete_module nr 129 nbargs 2 types: (const char *, unsigned int) args: (name_user, flags) +syscall sys_quotactl nr 131 nbargs 4 types: (unsigned int, const char *, qid_t, void *) args: (cmd, special, id, addr) +syscall sys_getpgid nr 132 nbargs 1 types: (pid_t) args: (pid) +syscall sys_fchdir nr 133 nbargs 1 types: (unsigned int) args: (fd) +syscall sys_bdflush nr 134 nbargs 2 types: (int, long) args: (func, data) +syscall sys_sysfs nr 135 nbargs 3 types: (int, unsigned long, unsigned long) args: (option, arg1, arg2) +syscall sys_personality nr 136 nbargs 1 types: (unsigned int) args: (personality) +syscall sys_setfsuid16 nr 138 nbargs 1 types: (old_uid_t) args: (uid) +syscall sys_setfsgid16 nr 139 nbargs 1 types: (old_gid_t) args: (gid) +syscall sys_llseek nr 140 nbargs 5 types: (unsigned int, unsigned long, unsigned long, loff_t *, unsigned int) args: (fd, offset_high, offset_low, result, origin) +syscall sys_getdents nr 141 nbargs 3 types: (unsigned int, struct linux_dirent *, unsigned int) args: (fd, dirent, count) +syscall sys_select nr 142 nbargs 5 types: (int, fd_set *, fd_set *, fd_set *, struct timeval *) args: (n, inp, outp, exp, tvp) +syscall sys_flock nr 143 nbargs 2 types: (unsigned int, unsigned int) args: (fd, cmd) +syscall sys_msync nr 144 nbargs 3 types: (unsigned long, size_t, int) args: (start, len, flags) +syscall sys_readv nr 145 nbargs 3 types: (unsigned long, const struct iovec *, unsigned long) args: (fd, vec, vlen) +syscall sys_writev nr 146 nbargs 3 types: (unsigned long, const struct iovec *, unsigned long) args: (fd, vec, vlen) +syscall sys_getsid nr 147 nbargs 1 types: (pid_t) args: (pid) +syscall sys_fdatasync nr 148 nbargs 1 types: (unsigned int) args: (fd) +syscall sys_sysctl nr 149 nbargs 1 types: (struct __sysctl_args *) args: (args) +syscall sys_mlock nr 150 nbargs 2 types: (unsigned long, size_t) args: (start, len) +syscall sys_munlock nr 151 nbargs 2 types: (unsigned long, size_t) args: (start, len) +syscall sys_mlockall nr 152 nbargs 1 types: (int) args: (flags) +syscall sys_munlockall nr 153 nbargs 0 types: () args: () +syscall sys_sched_setparam nr 154 nbargs 2 types: (pid_t, struct sched_param *) args: (pid, param) +syscall sys_sched_getparam nr 155 nbargs 2 types: (pid_t, struct sched_param *) args: (pid, param) +syscall sys_sched_setscheduler nr 156 nbargs 3 types: (pid_t, int, struct sched_param *) args: (pid, policy, param) +syscall sys_sched_getscheduler nr 157 nbargs 1 types: (pid_t) args: (pid) +syscall sys_sched_yield nr 158 nbargs 0 types: () args: () +syscall sys_sched_get_priority_max nr 159 nbargs 1 types: (int) args: (policy) +syscall sys_sched_get_priority_min nr 160 nbargs 1 types: (int) args: (policy) +syscall sys_sched_rr_get_interval nr 161 nbargs 2 types: (pid_t, struct timespec *) args: (pid, interval) +syscall sys_nanosleep nr 162 nbargs 2 types: (struct timespec *, struct timespec *) args: (rqtp, rmtp) +syscall sys_mremap nr 163 nbargs 5 types: (unsigned long, unsigned long, unsigned long, unsigned long, unsigned long) args: (addr, old_len, new_len, flags, new_addr) +syscall sys_setresuid16 nr 164 nbargs 3 types: (old_uid_t, old_uid_t, old_uid_t) args: (ruid, euid, suid) +syscall sys_getresuid16 nr 165 nbargs 3 types: (old_uid_t *, old_uid_t *, old_uid_t *) args: (ruid, euid, suid) +syscall sys_poll nr 168 nbargs 3 types: (struct pollfd *, unsigned int, long) args: (ufds, nfds, timeout_msecs) +syscall sys_setresgid16 nr 170 nbargs 3 types: (old_gid_t, old_gid_t, old_gid_t) args: (rgid, egid, sgid) +syscall sys_getresgid16 nr 171 nbargs 3 types: (old_gid_t *, old_gid_t *, old_gid_t *) args: (rgid, egid, sgid) +syscall sys_prctl nr 172 nbargs 5 types: (int, unsigned long, unsigned long, unsigned long, unsigned long) args: (option, arg2, arg3, arg4, arg5) +syscall sys_rt_sigaction nr 174 nbargs 4 types: (int, const struct sigaction *, struct sigaction *, size_t) args: (sig, act, oact, sigsetsize) +syscall sys_rt_sigprocmask nr 175 nbargs 4 types: (int, sigset_t *, sigset_t *, size_t) args: (how, nset, oset, sigsetsize) +syscall sys_rt_sigpending nr 176 nbargs 2 types: (sigset_t *, size_t) args: (set, sigsetsize) +syscall sys_rt_sigtimedwait nr 177 nbargs 4 types: (const sigset_t *, siginfo_t *, const struct timespec *, size_t) args: (uthese, uinfo, uts, sigsetsize) +syscall sys_rt_sigqueueinfo nr 178 nbargs 3 types: (pid_t, int, siginfo_t *) args: (pid, sig, uinfo) +syscall sys_rt_sigsuspend nr 179 nbargs 2 types: (sigset_t *, size_t) args: (unewset, sigsetsize) +syscall sys_chown16 nr 182 nbargs 3 types: (const char *, old_uid_t, old_gid_t) args: (filename, user, group) +syscall sys_getcwd nr 183 nbargs 2 types: (char *, unsigned long) args: (buf, size) +syscall sys_capget nr 184 nbargs 2 types: (cap_user_header_t, cap_user_data_t) args: (header, dataptr) +syscall sys_capset nr 185 nbargs 2 types: (cap_user_header_t, const cap_user_data_t) args: (header, data) +syscall sys_sendfile nr 187 nbargs 4 types: (int, int, off_t *, size_t) args: (out_fd, in_fd, offset, count) +syscall sys_getrlimit nr 191 nbargs 2 types: (unsigned int, struct rlimit *) args: (resource, rlim) +syscall sys_mmap_pgoff nr 192 nbargs 6 types: (unsigned long, unsigned long, unsigned long, unsigned long, unsigned long, unsigned long) args: (addr, len, prot, flags, fd, pgoff) +syscall sys_stat64 nr 195 nbargs 2 types: (const char *, struct stat64 *) args: (filename, statbuf) +syscall sys_lstat64 nr 196 nbargs 2 types: (const char *, struct stat64 *) args: (filename, statbuf) +syscall sys_fstat64 nr 197 nbargs 2 types: (unsigned long, struct stat64 *) args: (fd, statbuf) +syscall sys_lchown nr 198 nbargs 3 types: (const char *, uid_t, gid_t) args: (filename, user, group) +syscall sys_getuid nr 199 nbargs 0 types: () args: () +syscall sys_getgid nr 200 nbargs 0 types: () args: () +syscall sys_geteuid nr 201 nbargs 0 types: () args: () +syscall sys_getegid nr 202 nbargs 0 types: () args: () +syscall sys_setreuid nr 203 nbargs 2 types: (uid_t, uid_t) args: (ruid, euid) +syscall sys_setregid nr 204 nbargs 2 types: (gid_t, gid_t) args: (rgid, egid) +syscall sys_getgroups nr 205 nbargs 2 types: (int, gid_t *) args: (gidsetsize, grouplist) +syscall sys_setgroups nr 206 nbargs 2 types: (int, gid_t *) args: (gidsetsize, grouplist) +syscall sys_fchown nr 207 nbargs 3 types: (unsigned int, uid_t, gid_t) args: (fd, user, group) +syscall sys_setresuid nr 208 nbargs 3 types: (uid_t, uid_t, uid_t) args: (ruid, euid, suid) +syscall sys_getresuid nr 209 nbargs 3 types: (uid_t *, uid_t *, uid_t *) args: (ruid, euid, suid) +syscall sys_setresgid nr 210 nbargs 3 types: (gid_t, gid_t, gid_t) args: (rgid, egid, sgid) +syscall sys_getresgid nr 211 nbargs 3 types: (gid_t *, gid_t *, gid_t *) args: (rgid, egid, sgid) +syscall sys_chown nr 212 nbargs 3 types: (const char *, uid_t, gid_t) args: (filename, user, group) +syscall sys_setuid nr 213 nbargs 1 types: (uid_t) args: (uid) +syscall sys_setgid nr 214 nbargs 1 types: (gid_t) args: (gid) +syscall sys_setfsuid nr 215 nbargs 1 types: (uid_t) args: (uid) +syscall sys_setfsgid nr 216 nbargs 1 types: (gid_t) args: (gid) +syscall sys_pivot_root nr 217 nbargs 2 types: (const char *, const char *) args: (new_root, put_old) +syscall sys_mincore nr 218 nbargs 3 types: (unsigned long, size_t, unsigned char *) args: (start, len, vec) +syscall sys_madvise nr 219 nbargs 3 types: (unsigned long, size_t, int) args: (start, len_in, behavior) +syscall sys_getdents64 nr 220 nbargs 3 types: (unsigned int, struct linux_dirent64 *, unsigned int) args: (fd, dirent, count) +syscall sys_fcntl64 nr 221 nbargs 3 types: (unsigned int, unsigned int, unsigned long) args: (fd, cmd, arg) +syscall sys_gettid nr 224 nbargs 0 types: () args: () +syscall sys_setxattr nr 226 nbargs 5 types: (const char *, const char *, const void *, size_t, int) args: (pathname, name, value, size, flags) +syscall sys_lsetxattr nr 227 nbargs 5 types: (const char *, const char *, const void *, size_t, int) args: (pathname, name, value, size, flags) +syscall sys_fsetxattr nr 228 nbargs 5 types: (int, const char *, const void *, size_t, int) args: (fd, name, value, size, flags) +syscall sys_getxattr nr 229 nbargs 4 types: (const char *, const char *, void *, size_t) args: (pathname, name, value, size) +syscall sys_lgetxattr nr 230 nbargs 4 types: (const char *, const char *, void *, size_t) args: (pathname, name, value, size) +syscall sys_fgetxattr nr 231 nbargs 4 types: (int, const char *, void *, size_t) args: (fd, name, value, size) +syscall sys_listxattr nr 232 nbargs 3 types: (const char *, char *, size_t) args: (pathname, list, size) +syscall sys_llistxattr nr 233 nbargs 3 types: (const char *, char *, size_t) args: (pathname, list, size) +syscall sys_flistxattr nr 234 nbargs 3 types: (int, char *, size_t) args: (fd, list, size) +syscall sys_removexattr nr 235 nbargs 2 types: (const char *, const char *) args: (pathname, name) +syscall sys_lremovexattr nr 236 nbargs 2 types: (const char *, const char *) args: (pathname, name) +syscall sys_fremovexattr nr 237 nbargs 2 types: (int, const char *) args: (fd, name) +syscall sys_tkill nr 238 nbargs 2 types: (pid_t, int) args: (pid, sig) +syscall sys_sendfile64 nr 239 nbargs 4 types: (int, int, loff_t *, size_t) args: (out_fd, in_fd, offset, count) +syscall sys_futex nr 240 nbargs 6 types: (u32 *, int, u32, struct timespec *, u32 *, u32) args: (uaddr, op, val, utime, uaddr2, val3) +syscall sys_sched_setaffinity nr 241 nbargs 3 types: (pid_t, unsigned int, unsigned long *) args: (pid, len, user_mask_ptr) +syscall sys_sched_getaffinity nr 242 nbargs 3 types: (pid_t, unsigned int, unsigned long *) args: (pid, len, user_mask_ptr) +syscall sys_io_setup nr 245 nbargs 2 types: (unsigned, aio_context_t *) args: (nr_events, ctxp) +syscall sys_io_destroy nr 246 nbargs 1 types: (aio_context_t) args: (ctx) +syscall sys_io_getevents nr 247 nbargs 5 types: (aio_context_t, long, long, struct io_event *, struct timespec *) args: (ctx_id, min_nr, nr, events, timeout) +syscall sys_io_submit nr 248 nbargs 3 types: (aio_context_t, long, struct iocb * *) args: (ctx_id, nr, iocbpp) +syscall sys_io_cancel nr 249 nbargs 3 types: (aio_context_t, struct iocb *, struct io_event *) args: (ctx_id, iocb, result) +syscall sys_exit_group nr 252 nbargs 1 types: (int) args: (error_code) +syscall sys_epoll_create nr 254 nbargs 1 types: (int) args: (size) +syscall sys_epoll_ctl nr 255 nbargs 4 types: (int, int, int, struct epoll_event *) args: (epfd, op, fd, event) +syscall sys_epoll_wait nr 256 nbargs 4 types: (int, struct epoll_event *, int, int) args: (epfd, events, maxevents, timeout) +syscall sys_remap_file_pages nr 257 nbargs 5 types: (unsigned long, unsigned long, unsigned long, unsigned long, unsigned long) args: (start, size, prot, pgoff, flags) +syscall sys_set_tid_address nr 258 nbargs 1 types: (int *) args: (tidptr) +syscall sys_timer_create nr 259 nbargs 3 types: (const clockid_t, struct sigevent *, timer_t *) args: (which_clock, timer_event_spec, created_timer_id) +syscall sys_timer_settime nr 260 nbargs 4 types: (timer_t, int, const struct itimerspec *, struct itimerspec *) args: (timer_id, flags, new_setting, old_setting) +syscall sys_timer_gettime nr 261 nbargs 2 types: (timer_t, struct itimerspec *) args: (timer_id, setting) +syscall sys_timer_getoverrun nr 262 nbargs 1 types: (timer_t) args: (timer_id) +syscall sys_timer_delete nr 263 nbargs 1 types: (timer_t) args: (timer_id) +syscall sys_clock_settime nr 264 nbargs 2 types: (const clockid_t, const struct timespec *) args: (which_clock, tp) +syscall sys_clock_gettime nr 265 nbargs 2 types: (const clockid_t, struct timespec *) args: (which_clock, tp) +syscall sys_clock_getres nr 266 nbargs 2 types: (const clockid_t, struct timespec *) args: (which_clock, tp) +syscall sys_clock_nanosleep nr 267 nbargs 4 types: (const clockid_t, int, const struct timespec *, struct timespec *) args: (which_clock, flags, rqtp, rmtp) +syscall sys_statfs64 nr 268 nbargs 3 types: (const char *, size_t, struct statfs64 *) args: (pathname, sz, buf) +syscall sys_fstatfs64 nr 269 nbargs 3 types: (unsigned int, size_t, struct statfs64 *) args: (fd, sz, buf) +syscall sys_tgkill nr 270 nbargs 3 types: (pid_t, pid_t, int) args: (tgid, pid, sig) +syscall sys_utimes nr 271 nbargs 2 types: (char *, struct timeval *) args: (filename, utimes) +syscall sys_mq_open nr 277 nbargs 4 types: (const char *, int, mode_t, struct mq_attr *) args: (u_name, oflag, mode, u_attr) +syscall sys_mq_unlink nr 278 nbargs 1 types: (const char *) args: (u_name) +syscall sys_mq_timedsend nr 279 nbargs 5 types: (mqd_t, const char *, size_t, unsigned int, const struct timespec *) args: (mqdes, u_msg_ptr, msg_len, msg_prio, u_abs_timeout) +syscall sys_mq_timedreceive nr 280 nbargs 5 types: (mqd_t, char *, size_t, unsigned int *, const struct timespec *) args: (mqdes, u_msg_ptr, msg_len, u_msg_prio, u_abs_timeout) +syscall sys_mq_notify nr 281 nbargs 2 types: (mqd_t, const struct sigevent *) args: (mqdes, u_notification) +syscall sys_mq_getsetattr nr 282 nbargs 3 types: (mqd_t, const struct mq_attr *, struct mq_attr *) args: (mqdes, u_mqstat, u_omqstat) +syscall sys_kexec_load nr 283 nbargs 4 types: (unsigned long, unsigned long, struct kexec_segment *, unsigned long) args: (entry, nr_segments, segments, flags) +syscall sys_waitid nr 284 nbargs 5 types: (int, pid_t, struct siginfo *, int, struct rusage *) args: (which, upid, infop, options, ru) +syscall sys_add_key nr 286 nbargs 5 types: (const char *, const char *, const void *, size_t, key_serial_t) args: (_type, _description, _payload, plen, ringid) +syscall sys_request_key nr 287 nbargs 4 types: (const char *, const char *, const char *, key_serial_t) args: (_type, _description, _callout_info, destringid) +syscall sys_keyctl nr 288 nbargs 5 types: (int, unsigned long, unsigned long, unsigned long, unsigned long) args: (option, arg2, arg3, arg4, arg5) +syscall sys_ioprio_set nr 289 nbargs 3 types: (int, int, int) args: (which, who, ioprio) +syscall sys_ioprio_get nr 290 nbargs 2 types: (int, int) args: (which, who) +syscall sys_inotify_init nr 291 nbargs 0 types: () args: () +syscall sys_inotify_add_watch nr 292 nbargs 3 types: (int, const char *, u32) args: (fd, pathname, mask) +syscall sys_inotify_rm_watch nr 293 nbargs 2 types: (int, __s32) args: (fd, wd) +syscall sys_openat nr 295 nbargs 4 types: (int, const char *, int, int) args: (dfd, filename, flags, mode) +syscall sys_mkdirat nr 296 nbargs 3 types: (int, const char *, int) args: (dfd, pathname, mode) +syscall sys_mknodat nr 297 nbargs 4 types: (int, const char *, int, unsigned) args: (dfd, filename, mode, dev) +syscall sys_fchownat nr 298 nbargs 5 types: (int, const char *, uid_t, gid_t, int) args: (dfd, filename, user, group, flag) +syscall sys_futimesat nr 299 nbargs 3 types: (int, const char *, struct timeval *) args: (dfd, filename, utimes) +syscall sys_fstatat64 nr 300 nbargs 4 types: (int, const char *, struct stat64 *, int) args: (dfd, filename, statbuf, flag) +syscall sys_unlinkat nr 301 nbargs 3 types: (int, const char *, int) args: (dfd, pathname, flag) +syscall sys_renameat nr 302 nbargs 4 types: (int, const char *, int, const char *) args: (olddfd, oldname, newdfd, newname) +syscall sys_linkat nr 303 nbargs 5 types: (int, const char *, int, const char *, int) args: (olddfd, oldname, newdfd, newname, flags) +syscall sys_symlinkat nr 304 nbargs 3 types: (const char *, int, const char *) args: (oldname, newdfd, newname) +syscall sys_readlinkat nr 305 nbargs 4 types: (int, const char *, char *, int) args: (dfd, pathname, buf, bufsiz) +syscall sys_fchmodat nr 306 nbargs 3 types: (int, const char *, mode_t) args: (dfd, filename, mode) +syscall sys_faccessat nr 307 nbargs 3 types: (int, const char *, int) args: (dfd, filename, mode) +syscall sys_pselect6 nr 308 nbargs 6 types: (int, fd_set *, fd_set *, fd_set *, struct timespec *, void *) args: (n, inp, outp, exp, tsp, sig) +syscall sys_ppoll nr 309 nbargs 5 types: (struct pollfd *, unsigned int, struct timespec *, const sigset_t *, size_t) args: (ufds, nfds, tsp, sigmask, sigsetsize) +syscall sys_unshare nr 310 nbargs 1 types: (unsigned long) args: (unshare_flags) +syscall sys_set_robust_list nr 311 nbargs 2 types: (struct robust_list_head *, size_t) args: (head, len) +syscall sys_get_robust_list nr 312 nbargs 3 types: (int, struct robust_list_head * *, size_t *) args: (pid, head_ptr, len_ptr) +syscall sys_splice nr 313 nbargs 6 types: (int, loff_t *, int, loff_t *, size_t, unsigned int) args: (fd_in, off_in, fd_out, off_out, len, flags) +syscall sys_tee nr 315 nbargs 4 types: (int, int, size_t, unsigned int) args: (fdin, fdout, len, flags) +syscall sys_vmsplice nr 316 nbargs 4 types: (int, const struct iovec *, unsigned long, unsigned int) args: (fd, iov, nr_segs, flags) +syscall sys_getcpu nr 318 nbargs 3 types: (unsigned *, unsigned *, struct getcpu_cache *) args: (cpup, nodep, unused) +syscall sys_epoll_pwait nr 319 nbargs 6 types: (int, struct epoll_event *, int, int, const sigset_t *, size_t) args: (epfd, events, maxevents, timeout, sigmask, sigsetsize) +syscall sys_utimensat nr 320 nbargs 4 types: (int, const char *, struct timespec *, int) args: (dfd, filename, utimes, flags) +syscall sys_signalfd nr 321 nbargs 3 types: (int, sigset_t *, size_t) args: (ufd, user_mask, sizemask) +syscall sys_timerfd_create nr 322 nbargs 2 types: (int, int) args: (clockid, flags) +syscall sys_eventfd nr 323 nbargs 1 types: (unsigned int) args: (count) +syscall sys_timerfd_settime nr 325 nbargs 4 types: (int, int, const struct itimerspec *, struct itimerspec *) args: (ufd, flags, utmr, otmr) +syscall sys_timerfd_gettime nr 326 nbargs 2 types: (int, struct itimerspec *) args: (ufd, otmr) +syscall sys_signalfd4 nr 327 nbargs 4 types: (int, sigset_t *, size_t, int) args: (ufd, user_mask, sizemask, flags) +syscall sys_eventfd2 nr 328 nbargs 2 types: (unsigned int, int) args: (count, flags) +syscall sys_epoll_create1 nr 329 nbargs 1 types: (int) args: (flags) +syscall sys_dup3 nr 330 nbargs 3 types: (unsigned int, unsigned int, int) args: (oldfd, newfd, flags) +syscall sys_pipe2 nr 331 nbargs 2 types: (int *, int) args: (fildes, flags) +syscall sys_inotify_init1 nr 332 nbargs 1 types: (int) args: (flags) +syscall sys_preadv nr 333 nbargs 5 types: (unsigned long, const struct iovec *, unsigned long, unsigned long, unsigned long) args: (fd, vec, vlen, pos_l, pos_h) +syscall sys_pwritev nr 334 nbargs 5 types: (unsigned long, const struct iovec *, unsigned long, unsigned long, unsigned long) args: (fd, vec, vlen, pos_l, pos_h) +syscall sys_rt_tgsigqueueinfo nr 335 nbargs 4 types: (pid_t, pid_t, int, siginfo_t *) args: (tgid, pid, sig, uinfo) +syscall sys_perf_event_open nr 336 nbargs 5 types: (struct perf_event_attr *, pid_t, int, int, unsigned long) args: (attr_uptr, pid, cpu, group_fd, flags) +syscall sys_recvmmsg nr 337 nbargs 5 types: (int, struct mmsghdr *, unsigned int, unsigned int, struct timespec *) args: (fd, mmsg, vlen, flags, timeout) +syscall sys_fanotify_init nr 338 nbargs 2 types: (unsigned int, unsigned int) args: (flags, event_f_flags) +syscall sys_prlimit64 nr 340 nbargs 4 types: (pid_t, unsigned int, const struct rlimit64 *, struct rlimit64 *) args: (pid, resource, new_rlim, old_rlim) +syscall sys_clock_adjtime nr 343 nbargs 2 types: (const clockid_t, struct timex *) args: (which_clock, utx) +syscall sys_syncfs nr 344 nbargs 1 types: (int) args: (fd) +syscall sys_sendmmsg nr 345 nbargs 4 types: (int, struct mmsghdr *, unsigned int, unsigned int) args: (fd, mmsg, vlen, flags) +syscall sys_setns nr 346 nbargs 2 types: (int, int) args: (fd, nstype) --- linux-3.11.0.orig/ubuntu/lttng/instrumentation/syscalls/lttng-syscalls-extractor/Makefile +++ linux-3.11.0/ubuntu/lttng/instrumentation/syscalls/lttng-syscalls-extractor/Makefile @@ -0,0 +1 @@ +obj-m += lttng-syscalls-extractor.o --- linux-3.11.0.orig/ubuntu/lttng/instrumentation/syscalls/lttng-syscalls-extractor/lttng-syscalls-extractor.c +++ linux-3.11.0/ubuntu/lttng/instrumentation/syscalls/lttng-syscalls-extractor/lttng-syscalls-extractor.c @@ -0,0 +1,100 @@ +/* + * lttng-syscalls-extractor.c + * + * Dump syscall metadata to console. + * + * Copyright 2011 - Mathieu Desnoyers + * Copyright 2011 - Julien Desfossez + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#ifndef CONFIG_FTRACE_SYSCALLS +#error "You need to set CONFIG_FTRACE_SYSCALLS=y" +#endif + +#ifndef CONFIG_KALLSYMS_ALL +#error "You need to set CONFIG_KALLSYMS_ALL=y" +#endif + +static struct syscall_metadata **__start_syscalls_metadata; +static struct syscall_metadata **__stop_syscalls_metadata; + +static __init +struct syscall_metadata *find_syscall_meta(unsigned long syscall) +{ + struct syscall_metadata **iter; + + for (iter = __start_syscalls_metadata; + iter < __stop_syscalls_metadata; iter++) { + if ((*iter)->syscall_nr == syscall) + return (*iter); + } + return NULL; +} + +int init_module(void) +{ + struct syscall_metadata *meta; + int i; + + __start_syscalls_metadata = (void *) kallsyms_lookup_name("__start_syscalls_metadata"); + __stop_syscalls_metadata = (void *) kallsyms_lookup_name("__stop_syscalls_metadata"); + + for (i = 0; i < NR_syscalls; i++) { + int j; + + meta = find_syscall_meta(i); + if (!meta) + continue; + printk("syscall %s nr %d nbargs %d ", + meta->name, meta->syscall_nr, meta->nb_args); + printk("types: ("); + for (j = 0; j < meta->nb_args; j++) { + if (j > 0) + printk(", "); + printk("%s", meta->types[j]); + } + printk(") "); + printk("args: ("); + for (j = 0; j < meta->nb_args; j++) { + if (j > 0) + printk(", "); + printk("%s", meta->args[j]); + } + printk(")\n"); + } + printk("SUCCESS\n"); + + return -1; +} + +void cleanup_module(void) +{ +} + +MODULE_LICENSE("GPL"); --- linux-3.11.0.orig/ubuntu/lttng/instrumentation/syscalls/3.5.0/mips-32-syscalls-3.5.0 +++ linux-3.11.0/ubuntu/lttng/instrumentation/syscalls/3.5.0/mips-32-syscalls-3.5.0 @@ -0,0 +1,141 @@ +syscall sys_exit nr 4003 nbargs 1 types: (int) args: (error_code) +syscall sys_read nr 4007 nbargs 3 types: (unsigned int, char *, size_t) args: (fd, buf, count) +syscall sys_write nr 4009 nbargs 3 types: (unsigned int, const char *, size_t) args: (fd, buf, count) +syscall sys_open nr 4011 nbargs 3 types: (const char *, int, umode_t) args: (filename, flags, mode) +syscall sys_close nr 4013 nbargs 1 types: (unsigned int) args: (fd) +syscall sys_waitpid nr 4015 nbargs 3 types: (pid_t, int *, int) args: (pid, stat_addr, options) +syscall sys_creat nr 4017 nbargs 2 types: (const char *, umode_t) args: (pathname, mode) +syscall sys_link nr 4019 nbargs 2 types: (const char *, const char *) args: (oldname, newname) +syscall sys_unlink nr 4021 nbargs 1 types: (const char *) args: (pathname) +syscall sys_chdir nr 4025 nbargs 1 types: (const char *) args: (filename) +syscall sys_time nr 4027 nbargs 1 types: (time_t *) args: (tloc) +syscall sys_mknod nr 4029 nbargs 3 types: (const char *, umode_t, unsigned) args: (filename, mode, dev) +syscall sys_chmod nr 4031 nbargs 2 types: (const char *, umode_t) args: (filename, mode) +syscall sys_lchown nr 4033 nbargs 3 types: (const char *, uid_t, gid_t) args: (filename, user, group) +syscall sys_lseek nr 4039 nbargs 3 types: (unsigned int, off_t, unsigned int) args: (fd, offset, origin) +syscall sys_getpid nr 4041 nbargs 0 types: () args: () +syscall sys_mount nr 4043 nbargs 5 types: (char *, char *, char *, unsigned long, void *) args: (dev_name, dir_name, type, flags, data) +syscall sys_oldumount nr 4045 nbargs 1 types: (char *) args: (name) +syscall sys_setuid nr 4047 nbargs 1 types: (uid_t) args: (uid) +syscall sys_getuid nr 4049 nbargs 0 types: () args: () +syscall sys_stime nr 4051 nbargs 1 types: (time_t *) args: (tptr) +syscall sys_ptrace nr 4053 nbargs 4 types: (long, long, unsigned long, unsigned long) args: (request, pid, addr, data) +syscall sys_alarm nr 4055 nbargs 1 types: (unsigned int) args: (seconds) +syscall sys_pause nr 4059 nbargs 0 types: () args: () +syscall sys_utime nr 4061 nbargs 2 types: (char *, struct utimbuf *) args: (filename, times) +syscall sys_access nr 4067 nbargs 2 types: (const char *, int) args: (filename, mode) +syscall sys_nice nr 4069 nbargs 1 types: (int) args: (increment) +syscall sys_sync nr 4073 nbargs 0 types: () args: () +syscall sys_kill nr 4075 nbargs 2 types: (pid_t, int) args: (pid, sig) +syscall sys_rename nr 4077 nbargs 2 types: (const char *, const char *) args: (oldname, newname) +syscall sys_mkdir nr 4079 nbargs 2 types: (const char *, umode_t) args: (pathname, mode) +syscall sys_rmdir nr 4081 nbargs 1 types: (const char *) args: (pathname) +syscall sys_dup nr 4083 nbargs 1 types: (unsigned int) args: (fildes) +syscall sys_times nr 4087 nbargs 1 types: (struct tms *) args: (tbuf) +syscall sys_brk nr 4091 nbargs 1 types: (unsigned long) args: (brk) +syscall sys_setgid nr 4093 nbargs 1 types: (gid_t) args: (gid) +syscall sys_getgid nr 4095 nbargs 0 types: () args: () +syscall sys_geteuid nr 4099 nbargs 0 types: () args: () +syscall sys_getegid nr 4101 nbargs 0 types: () args: () +syscall sys_umount nr 4105 nbargs 2 types: (char *, int) args: (name, flags) +syscall sys_ioctl nr 4109 nbargs 3 types: (unsigned int, unsigned int, unsigned long) args: (fd, cmd, arg) +syscall sys_fcntl nr 4111 nbargs 3 types: (unsigned int, unsigned int, unsigned long) args: (fd, cmd, arg) +syscall sys_setpgid nr 4115 nbargs 2 types: (pid_t, pid_t) args: (pid, pgid) +syscall sys_olduname nr 4119 nbargs 1 types: (struct oldold_utsname *) args: (name) +syscall sys_umask nr 4121 nbargs 1 types: (int) args: (mask) +syscall sys_chroot nr 4123 nbargs 1 types: (const char *) args: (filename) +syscall sys_ustat nr 4125 nbargs 2 types: (unsigned, struct ustat *) args: (dev, ubuf) +syscall sys_dup2 nr 4127 nbargs 2 types: (unsigned int, unsigned int) args: (oldfd, newfd) +syscall sys_getppid nr 4129 nbargs 0 types: () args: () +syscall sys_getpgrp nr 4131 nbargs 0 types: () args: () +syscall sys_setsid nr 4133 nbargs 0 types: () args: () +syscall sys_sigaction nr 4135 nbargs 3 types: (int, const struct sigaction *, struct sigaction *) args: (sig, act, oact) +syscall sys_sgetmask nr 4137 nbargs 0 types: () args: () +syscall sys_ssetmask nr 4139 nbargs 1 types: (int) args: (newmask) +syscall sys_setreuid nr 4141 nbargs 2 types: (uid_t, uid_t) args: (ruid, euid) +syscall sys_setregid nr 4143 nbargs 2 types: (gid_t, gid_t) args: (rgid, egid) +syscall sys_sigpending nr 4147 nbargs 1 types: (old_sigset_t *) args: (set) +syscall sys_sethostname nr 4149 nbargs 2 types: (char *, int) args: (name, len) +syscall sys_setrlimit nr 4151 nbargs 2 types: (unsigned int, struct rlimit *) args: (resource, rlim) +syscall sys_getrlimit nr 4153 nbargs 2 types: (unsigned int, struct rlimit *) args: (resource, rlim) +syscall sys_getrusage nr 4155 nbargs 2 types: (int, struct rusage *) args: (who, ru) +syscall sys_gettimeofday nr 4157 nbargs 2 types: (struct timeval *, struct timezone *) args: (tv, tz) +syscall sys_settimeofday nr 4159 nbargs 2 types: (struct timeval *, struct timezone *) args: (tv, tz) +syscall sys_getgroups nr 4161 nbargs 2 types: (int, gid_t *) args: (gidsetsize, grouplist) +syscall sys_setgroups nr 4163 nbargs 2 types: (int, gid_t *) args: (gidsetsize, grouplist) +syscall sys_symlink nr 4167 nbargs 2 types: (const char *, const char *) args: (oldname, newname) +syscall sys_readlink nr 4171 nbargs 3 types: (const char *, char *, int) args: (path, buf, bufsiz) +syscall sys_uselib nr 4173 nbargs 1 types: (const char *) args: (library) +syscall sys_swapon nr 4175 nbargs 2 types: (const char *, int) args: (specialfile, swap_flags) +syscall sys_reboot nr 4177 nbargs 4 types: (int, int, unsigned int, void *) args: (magic1, magic2, cmd, arg) +syscall sys_old_readdir nr 4179 nbargs 3 types: (unsigned int, struct old_linux_dirent *, unsigned int) args: (fd, dirent, count) +syscall sys_mips_mmap nr 4181 nbargs 6 types: (unsigned long, unsigned long, unsigned long, unsigned long, unsigned long, off_t) args: (addr, len, prot, flags, fd, offset) +syscall sys_munmap nr 4183 nbargs 2 types: (unsigned long, size_t) args: (addr, len) +syscall sys_truncate nr 4185 nbargs 2 types: (const char *, long) args: (path, length) +syscall sys_ftruncate nr 4187 nbargs 2 types: (unsigned int, unsigned long) args: (fd, length) +syscall sys_fchmod nr 4189 nbargs 2 types: (unsigned int, umode_t) args: (fd, mode) +syscall sys_fchown nr 4191 nbargs 3 types: (unsigned int, uid_t, gid_t) args: (fd, user, group) +syscall sys_getpriority nr 4193 nbargs 2 types: (int, int) args: (which, who) +syscall sys_setpriority nr 4195 nbargs 3 types: (int, int, int) args: (which, who, niceval) +syscall sys_statfs nr 4199 nbargs 2 types: (const char *, struct statfs *) args: (pathname, buf) +syscall sys_fstatfs nr 4201 nbargs 2 types: (unsigned int, struct statfs *) args: (fd, buf) +syscall sys_socketcall nr 4205 nbargs 2 types: (int, unsigned long *) args: (call, args) +syscall sys_syslog nr 4207 nbargs 3 types: (int, char *, int) args: (type, buf, len) +syscall sys_setitimer nr 4209 nbargs 3 types: (int, struct itimerval *, struct itimerval *) args: (which, value, ovalue) +syscall sys_getitimer nr 4211 nbargs 2 types: (int, struct itimerval *) args: (which, value) +syscall sys_newstat nr 4213 nbargs 2 types: (const char *, struct stat *) args: (filename, statbuf) +syscall sys_newlstat nr 4215 nbargs 2 types: (const char *, struct stat *) args: (filename, statbuf) +syscall sys_newfstat nr 4217 nbargs 2 types: (unsigned int, struct stat *) args: (fd, statbuf) +syscall sys_uname nr 4219 nbargs 1 types: (struct old_utsname *) args: (name) +syscall sys_vhangup nr 4223 nbargs 0 types: () args: () +syscall sys_wait4 nr 4229 nbargs 4 types: (pid_t, int *, int, struct rusage *) args: (upid, stat_addr, options, ru) +syscall sys_swapoff nr 4231 nbargs 1 types: (const char *) args: (specialfile) +syscall sys_sysinfo nr 4233 nbargs 1 types: (struct sysinfo *) args: (info) +syscall sys_ipc nr 4235 nbargs 6 types: (unsigned int, int, unsigned long, unsigned long, void *, long) args: (call, first, second, third, ptr, fifth) +syscall sys_fsync nr 4237 nbargs 1 types: (unsigned int) args: (fd) +syscall sys_setdomainname nr 4243 nbargs 2 types: (char *, int) args: (name, len) +syscall sys_newuname nr 4245 nbargs 1 types: (struct new_utsname *) args: (name) +syscall sys_adjtimex nr 4249 nbargs 1 types: (struct timex *) args: (txc_p) +syscall sys_mprotect nr 4251 nbargs 3 types: (unsigned long, size_t, unsigned long) args: (start, len, prot) +syscall sys_sigprocmask nr 4253 nbargs 3 types: (int, old_sigset_t *, old_sigset_t *) args: (how, nset, oset) +syscall sys_init_module nr 4257 nbargs 3 types: (void *, unsigned long, const char *) args: (umod, len, uargs) +syscall sys_delete_module nr 4259 nbargs 2 types: (const char *, unsigned int) args: (name_user, flags) +syscall sys_quotactl nr 4263 nbargs 4 types: (unsigned int, const char *, qid_t, void *) args: (cmd, special, id, addr) +syscall sys_getpgid nr 4265 nbargs 1 types: (pid_t) args: (pid) +syscall sys_fchdir nr 4267 nbargs 1 types: (unsigned int) args: (fd) +syscall sys_bdflush nr 4269 nbargs 2 types: (int, long) args: (func, data) +syscall sys_sysfs nr 4271 nbargs 3 types: (int, unsigned long, unsigned long) args: (option, arg1, arg2) +syscall sys_personality nr 4273 nbargs 1 types: (unsigned int) args: (personality) +syscall sys_setfsuid nr 4277 nbargs 1 types: (uid_t) args: (uid) +syscall sys_setfsgid nr 4279 nbargs 1 types: (gid_t) args: (gid) +syscall sys_llseek nr 4281 nbargs 5 types: (unsigned int, unsigned long, unsigned long, loff_t *, unsigned int) args: (fd, offset_high, offset_low, result, origin) +syscall sys_getdents nr 4283 nbargs 3 types: (unsigned int, struct linux_dirent *, unsigned int) args: (fd, dirent, count) +syscall sys_select nr 4285 nbargs 5 types: (int, fd_set *, fd_set *, fd_set *, struct timeval *) args: (n, inp, outp, exp, tvp) +syscall sys_flock nr 4287 nbargs 2 types: (unsigned int, unsigned int) args: (fd, cmd) +syscall sys_msync nr 4289 nbargs 3 types: (unsigned long, size_t, int) args: (start, len, flags) +syscall sys_readv nr 4291 nbargs 3 types: (unsigned long, const struct iovec *, unsigned long) args: (fd, vec, vlen) +syscall sys_writev nr 4293 nbargs 3 types: (unsigned long, const struct iovec *, unsigned long) args: (fd, vec, vlen) +syscall sys_cacheflush nr 4295 nbargs 3 types: (unsigned long, unsigned long, unsigned int) args: (addr, bytes, cache) +syscall sys_cachectl nr 4297 nbargs 3 types: (char *, int, int) args: (addr, nbytes, op) +syscall sys_getsid nr 4303 nbargs 1 types: (pid_t) args: (pid) +syscall sys_fdatasync nr 4305 nbargs 1 types: (unsigned int) args: (fd) +syscall sys_sysctl nr 4307 nbargs 1 types: (struct __sysctl_args *) args: (args) +syscall sys_mlock nr 4309 nbargs 2 types: (unsigned long, size_t) args: (start, len) +syscall sys_munlock nr 4311 nbargs 2 types: (unsigned long, size_t) args: (start, len) +syscall sys_mlockall nr 4313 nbargs 1 types: (int) args: (flags) +syscall sys_munlockall nr 4315 nbargs 0 types: () args: () +syscall sys_sched_setparam nr 4317 nbargs 2 types: (pid_t, struct sched_param *) args: (pid, param) +syscall sys_sched_getparam nr 4319 nbargs 2 types: (pid_t, struct sched_param *) args: (pid, param) +syscall sys_sched_setscheduler nr 4321 nbargs 3 types: (pid_t, int, struct sched_param *) args: (pid, policy, param) +syscall sys_sched_getscheduler nr 4323 nbargs 1 types: (pid_t) args: (pid) +syscall sys_sched_yield nr 4325 nbargs 0 types: () args: () +syscall sys_sched_get_priority_max nr 4327 nbargs 1 types: (int) args: (policy) +syscall sys_sched_get_priority_min nr 4329 nbargs 1 types: (int) args: (policy) +syscall sys_sched_rr_get_interval nr 4331 nbargs 2 types: (pid_t, struct timespec *) args: (pid, interval) +syscall sys_nanosleep nr 4333 nbargs 2 types: (struct timespec *, struct timespec *) args: (rqtp, rmtp) +syscall sys_mremap nr 4335 nbargs 5 types: (unsigned long, unsigned long, unsigned long, unsigned long, unsigned long) args: (addr, old_len, new_len, flags, new_addr) +syscall sys_accept nr 4337 nbargs 3 types: (int, struct sockaddr *, int *) args: (fd, upeer_sockaddr, upeer_addrlen) +syscall sys_bind nr 4339 nbargs 3 types: (int, struct sockaddr *, int) args: (fd, umyaddr, addrlen) +syscall sys_connect nr 4341 nbargs 3 types: (int, struct sockaddr *, int) args: (fd, uservaddr, addrlen) +syscall sys_getpeername nr 4343 nbargs 3 types: (int, struct sockaddr *, int *) args: (fd, usockaddr, usockaddr_len) +syscall sys_getsockname nr 4345 nbargs 3 types: (int, struct sockaddr *, int *) args: (fd, usockaddr, usockaddr_len) --- linux-3.11.0.orig/ubuntu/lttng/instrumentation/syscalls/3.5.0/mips-64-syscalls-3.5.0 +++ linux-3.11.0/ubuntu/lttng/instrumentation/syscalls/3.5.0/mips-64-syscalls-3.5.0 @@ -0,0 +1,289 @@ +syscall sys_waitpid nr 4007 nbargs 3 types: (pid_t, int *, int) args: (pid, stat_addr, options) +syscall sys_oldumount nr 4022 nbargs 1 types: (char *) args: (name) +syscall sys_nice nr 4034 nbargs 1 types: (int) args: (increment) +syscall sys_olduname nr 4059 nbargs 1 types: (struct oldold_utsname *) args: (name) +syscall sys_32_sigaction nr 4067 nbargs 3 types: (long, const struct sigaction32 *, struct sigaction32 *) args: (sig, act, oact) +syscall sys_sgetmask nr 4068 nbargs 0 types: () args: () +syscall sys_ssetmask nr 4069 nbargs 1 types: (int) args: (newmask) +syscall sys_uselib nr 4086 nbargs 1 types: (const char *) args: (library) +syscall sys_uname nr 4109 nbargs 1 types: (struct old_utsname *) args: (name) +syscall sys_32_ipc nr 4117 nbargs 6 types: (u32, long, long, long, unsigned long, unsigned long) args: (call, first, second, third, ptr, fifth) +syscall sys_bdflush nr 4134 nbargs 2 types: (int, long) args: (func, data) +syscall sys_32_llseek nr 4140 nbargs 5 types: (unsigned int, unsigned int, unsigned int, loff_t *, unsigned int) args: (fd, offset_high, offset_low, result, origin) +syscall sys_send nr 4178 nbargs 4 types: (int, void *, size_t, unsigned int) args: (fd, buff, len, flags) +syscall sys_32_pread nr 4200 nbargs 6 types: (unsigned long, char *, size_t, unsigned long, unsigned long, unsigned long) args: (fd, buf, count, unused, a4, a5) +syscall sys_32_pwrite nr 4201 nbargs 6 types: (unsigned int, const char *, size_t, u32, u64, u64) args: (fd, buf, count, unused, a4, a5) +syscall sys_mips_mmap2 nr 4210 nbargs 6 types: (unsigned long, unsigned long, unsigned long, unsigned long, unsigned long, unsigned long) args: (addr, len, prot, flags, fd, pgoff) +syscall sys_32_truncate64 nr 4211 nbargs 4 types: (const char *, unsigned long, unsigned long, unsigned long) args: (path, __dummy, a2, a3) +syscall sys_32_ftruncate64 nr 4212 nbargs 4 types: (unsigned long, unsigned long, unsigned long, unsigned long) args: (fd, __dummy, a2, a3) +syscall sys_32_waitid nr 4278 nbargs 5 types: (int, compat_pid_t, compat_siginfo_t *, int, struct compat_rusage *) args: (which, pid, uinfo, options, uru) +syscall sys_32_fanotify_mark nr 4337 nbargs 6 types: (int, unsigned int, u64, u64, int, const char *) args: (fanotify_fd, flags, a3, a4, dfd, pathname) +syscall sys_rt_sigaction nr 5013 nbargs 4 types: (int, const struct sigaction *, struct sigaction *, size_t) args: (sig, act, oact, sigsetsize) +syscall sys_rt_sigprocmask nr 5014 nbargs 4 types: (int, sigset_t *, sigset_t *, size_t) args: (how, nset, oset, sigsetsize) +syscall sys_ioctl nr 5015 nbargs 3 types: (unsigned int, unsigned int, unsigned long) args: (fd, cmd, arg) +syscall sys_readv nr 5018 nbargs 3 types: (unsigned long, const struct iovec *, unsigned long) args: (fd, vec, vlen) +syscall sys_writev nr 5019 nbargs 3 types: (unsigned long, const struct iovec *, unsigned long) args: (fd, vec, vlen) +syscall sys_select nr 5022 nbargs 5 types: (int, fd_set *, fd_set *, fd_set *, struct timeval *) args: (n, inp, outp, exp, tvp) +syscall sys_shmctl nr 5030 nbargs 3 types: (int, int, struct shmid_ds *) args: (shmid, cmd, buf) +syscall sys_nanosleep nr 5034 nbargs 2 types: (struct timespec *, struct timespec *) args: (rqtp, rmtp) +syscall sys_getitimer nr 5035 nbargs 2 types: (int, struct itimerval *) args: (which, value) +syscall sys_setitimer nr 5036 nbargs 3 types: (int, struct itimerval *, struct itimerval *) args: (which, value, ovalue) +syscall sys_recvfrom nr 5044 nbargs 6 types: (int, void *, size_t, unsigned int, struct sockaddr *, int *) args: (fd, ubuf, size, flags, addr, addr_len) +syscall sys_sendmsg nr 5045 nbargs 3 types: (int, struct msghdr *, unsigned int) args: (fd, msg, flags) +syscall sys_recvmsg nr 5046 nbargs 3 types: (int, struct msghdr *, unsigned int) args: (fd, msg, flags) +syscall sys_setsockopt nr 5053 nbargs 5 types: (int, int, int, char *, int) args: (fd, level, optname, optval, optlen) +syscall sys_wait4 nr 5059 nbargs 4 types: (pid_t, int *, int, struct rusage *) args: (upid, stat_addr, options, ru) +syscall sys_msgsnd nr 5067 nbargs 4 types: (int, struct msgbuf *, size_t, int) args: (msqid, msgp, msgsz, msgflg) +syscall sys_msgrcv nr 5068 nbargs 5 types: (int, struct msgbuf *, size_t, long, int) args: (msqid, msgp, msgsz, msgtyp, msgflg) +syscall sys_msgctl nr 5069 nbargs 3 types: (int, int, struct msqid_ds *) args: (msqid, cmd, buf) +syscall sys_fcntl nr 5070 nbargs 3 types: (unsigned int, unsigned int, unsigned long) args: (fd, cmd, arg) +syscall sys_getdents nr 5076 nbargs 3 types: (unsigned int, struct linux_dirent *, unsigned int) args: (fd, dirent, count) +syscall sys_gettimeofday nr 5094 nbargs 2 types: (struct timeval *, struct timezone *) args: (tv, tz) +syscall sys_getrlimit nr 5095 nbargs 2 types: (unsigned int, struct rlimit *) args: (resource, rlim) +syscall sys_getrusage nr 5096 nbargs 2 types: (int, struct rusage *) args: (who, ru) +syscall sys_sysinfo nr 5097 nbargs 1 types: (struct sysinfo *) args: (info) +syscall sys_times nr 5098 nbargs 1 types: (struct tms *) args: (tbuf) +syscall sys_ptrace nr 5099 nbargs 4 types: (long, long, unsigned long, unsigned long) args: (request, pid, addr, data) +syscall sys_rt_sigpending nr 5125 nbargs 2 types: (sigset_t *, size_t) args: (set, sigsetsize) +syscall sys_rt_sigtimedwait nr 5126 nbargs 4 types: (const sigset_t *, siginfo_t *, const struct timespec *, size_t) args: (uthese, uinfo, uts, sigsetsize) +syscall sys_rt_sigqueueinfo nr 5127 nbargs 3 types: (pid_t, int, siginfo_t *) args: (pid, sig, uinfo) +syscall sys_utime nr 5130 nbargs 2 types: (char *, struct utimbuf *) args: (filename, times) +syscall sys_personality nr 5132 nbargs 1 types: (unsigned int) args: (personality) +syscall sys_ustat nr 5133 nbargs 2 types: (unsigned, struct ustat *) args: (dev, ubuf) +syscall sys_statfs nr 5134 nbargs 2 types: (const char *, struct statfs *) args: (pathname, buf) +syscall sys_fstatfs nr 5135 nbargs 2 types: (unsigned int, struct statfs *) args: (fd, buf) +syscall sys_sched_rr_get_interval nr 5145 nbargs 2 types: (pid_t, struct timespec *) args: (pid, interval) +syscall sys_sysctl nr 5152 nbargs 1 types: (struct __sysctl_args *) args: (args) +syscall sys_adjtimex nr 5154 nbargs 1 types: (struct timex *) args: (txc_p) +syscall sys_setrlimit nr 5155 nbargs 2 types: (unsigned int, struct rlimit *) args: (resource, rlim) +syscall sys_settimeofday nr 5159 nbargs 2 types: (struct timeval *, struct timezone *) args: (tv, tz) +syscall sys_mount nr 5160 nbargs 5 types: (char *, char *, char *, unsigned long, void *) args: (dev_name, dir_name, type, flags, data) +syscall sys_futex nr 5194 nbargs 6 types: (u32 *, int, u32, struct timespec *, u32 *, u32) args: (uaddr, op, val, utime, uaddr2, val3) +syscall sys_sched_setaffinity nr 5195 nbargs 3 types: (pid_t, unsigned int, unsigned long *) args: (pid, len, user_mask_ptr) +syscall sys_sched_getaffinity nr 5196 nbargs 3 types: (pid_t, unsigned int, unsigned long *) args: (pid, len, user_mask_ptr) +syscall sys_io_setup nr 5200 nbargs 2 types: (unsigned, aio_context_t *) args: (nr_events, ctxp) +syscall sys_io_getevents nr 5202 nbargs 5 types: (aio_context_t, long, long, struct io_event *, struct timespec *) args: (ctx_id, min_nr, nr, events, timeout) +syscall sys_io_submit nr 5203 nbargs 3 types: (aio_context_t, long, struct iocb * *) args: (ctx_id, nr, iocbpp) +syscall sys_semtimedop nr 5214 nbargs 4 types: (int, struct sembuf *, unsigned, const struct timespec *) args: (semid, tsops, nsops, timeout) +syscall sys_timer_create nr 5216 nbargs 3 types: (const clockid_t, struct sigevent *, timer_t *) args: (which_clock, timer_event_spec, created_timer_id) +syscall sys_timer_settime nr 5217 nbargs 4 types: (timer_t, int, const struct itimerspec *, struct itimerspec *) args: (timer_id, flags, new_setting, old_setting) +syscall sys_timer_gettime nr 5218 nbargs 2 types: (timer_t, struct itimerspec *) args: (timer_id, setting) +syscall sys_clock_settime nr 5221 nbargs 2 types: (const clockid_t, const struct timespec *) args: (which_clock, tp) +syscall sys_clock_gettime nr 5222 nbargs 2 types: (const clockid_t, struct timespec *) args: (which_clock, tp) +syscall sys_clock_getres nr 5223 nbargs 2 types: (const clockid_t, struct timespec *) args: (which_clock, tp) +syscall sys_clock_nanosleep nr 5224 nbargs 4 types: (const clockid_t, int, const struct timespec *, struct timespec *) args: (which_clock, flags, rqtp, rmtp) +syscall sys_utimes nr 5226 nbargs 2 types: (char *, struct timeval *) args: (filename, utimes) +syscall sys_waitid nr 5237 nbargs 5 types: (int, pid_t, struct siginfo *, int, struct rusage *) args: (which, upid, infop, options, ru) +syscall sys_futimesat nr 5251 nbargs 3 types: (int, const char *, struct timeval *) args: (dfd, filename, utimes) +syscall sys_pselect6 nr 5260 nbargs 6 types: (int, fd_set *, fd_set *, fd_set *, struct timespec *, void *) args: (n, inp, outp, exp, tsp, sig) +syscall sys_ppoll nr 5261 nbargs 5 types: (struct pollfd *, unsigned int, struct timespec *, const sigset_t *, size_t) args: (ufds, nfds, tsp, sigmask, sigsetsize) +syscall sys_vmsplice nr 5266 nbargs 4 types: (int, const struct iovec *, unsigned long, unsigned int) args: (fd, iov, nr_segs, flags) +syscall sys_set_robust_list nr 5268 nbargs 2 types: (struct robust_list_head *, size_t) args: (head, len) +syscall sys_get_robust_list nr 5269 nbargs 3 types: (int, struct robust_list_head * *, size_t *) args: (pid, head_ptr, len_ptr) +syscall sys_epoll_pwait nr 5272 nbargs 6 types: (int, struct epoll_event *, int, int, const sigset_t *, size_t) args: (epfd, events, maxevents, timeout, sigmask, sigsetsize) +syscall sys_utimensat nr 5275 nbargs 4 types: (int, const char *, struct timespec *, int) args: (dfd, filename, utimes, flags) +syscall sys_signalfd nr 5276 nbargs 3 types: (int, sigset_t *, size_t) args: (ufd, user_mask, sizemask) +syscall sys_timerfd_gettime nr 5281 nbargs 2 types: (int, struct itimerspec *) args: (ufd, otmr) +syscall sys_timerfd_settime nr 5282 nbargs 4 types: (int, int, const struct itimerspec *, struct itimerspec *) args: (ufd, flags, utmr, otmr) +syscall sys_rt_tgsigqueueinfo nr 5291 nbargs 4 types: (pid_t, pid_t, int, siginfo_t *) args: (tgid, pid, sig, uinfo) +syscall sys_recvmmsg nr 5294 nbargs 5 types: (int, struct mmsghdr *, unsigned int, unsigned int, struct timespec *) args: (fd, mmsg, vlen, flags, timeout) +syscall sys_clock_adjtime nr 5300 nbargs 2 types: (const clockid_t, struct timex *) args: (which_clock, utx) +syscall sys_sendmmsg nr 5302 nbargs 4 types: (int, struct mmsghdr *, unsigned int, unsigned int) args: (fd, mmsg, vlen, flags) +syscall sys_process_vm_readv nr 5304 nbargs 6 types: (pid_t, const struct iovec *, unsigned long, const struct iovec *, unsigned long, unsigned long) args: (pid, lvec, liovcnt, rvec, riovcnt, flags) +syscall sys_process_vm_writev nr 5305 nbargs 6 types: (pid_t, const struct iovec *, unsigned long, const struct iovec *, unsigned long, unsigned long) args: (pid, lvec, liovcnt, rvec, riovcnt, flags) +syscall sys_read nr 6000 nbargs 3 types: (unsigned int, char *, size_t) args: (fd, buf, count) +syscall sys_write nr 6001 nbargs 3 types: (unsigned int, const char *, size_t) args: (fd, buf, count) +syscall sys_open nr 6002 nbargs 3 types: (const char *, int, umode_t) args: (filename, flags, mode) +syscall sys_close nr 6003 nbargs 1 types: (unsigned int) args: (fd) +syscall sys_newstat nr 6004 nbargs 2 types: (const char *, struct stat *) args: (filename, statbuf) +syscall sys_newfstat nr 6005 nbargs 2 types: (unsigned int, struct stat *) args: (fd, statbuf) +syscall sys_newlstat nr 6006 nbargs 2 types: (const char *, struct stat *) args: (filename, statbuf) +syscall sys_poll nr 6007 nbargs 3 types: (struct pollfd *, unsigned int, int) args: (ufds, nfds, timeout_msecs) +syscall sys_lseek nr 6008 nbargs 3 types: (unsigned int, off_t, unsigned int) args: (fd, offset, origin) +syscall sys_mips_mmap nr 6009 nbargs 6 types: (unsigned long, unsigned long, unsigned long, unsigned long, unsigned long, off_t) args: (addr, len, prot, flags, fd, offset) +syscall sys_mprotect nr 6010 nbargs 3 types: (unsigned long, size_t, unsigned long) args: (start, len, prot) +syscall sys_munmap nr 6011 nbargs 2 types: (unsigned long, size_t) args: (addr, len) +syscall sys_brk nr 6012 nbargs 1 types: (unsigned long) args: (brk) +syscall sys_32_rt_sigaction nr 6013 nbargs 4 types: (int, const struct sigaction32 *, struct sigaction32 *, unsigned int) args: (sig, act, oact, sigsetsize) +syscall sys_32_rt_sigprocmask nr 6014 nbargs 4 types: (int, compat_sigset_t *, compat_sigset_t *, unsigned int) args: (how, set, oset, sigsetsize) +syscall sys_access nr 6020 nbargs 2 types: (const char *, int) args: (filename, mode) +syscall sys_sched_yield nr 6023 nbargs 0 types: () args: () +syscall sys_mremap nr 6024 nbargs 5 types: (unsigned long, unsigned long, unsigned long, unsigned long, unsigned long) args: (addr, old_len, new_len, flags, new_addr) +syscall sys_msync nr 6025 nbargs 3 types: (unsigned long, size_t, int) args: (start, len, flags) +syscall sys_mincore nr 6026 nbargs 3 types: (unsigned long, size_t, unsigned char *) args: (start, len, vec) +syscall sys_madvise nr 6027 nbargs 3 types: (unsigned long, size_t, int) args: (start, len_in, behavior) +syscall sys_shmget nr 6028 nbargs 3 types: (key_t, size_t, int) args: (key, size, shmflg) +syscall sys_shmat nr 6029 nbargs 3 types: (int, char *, int) args: (shmid, shmaddr, shmflg) +syscall sys_dup nr 6031 nbargs 1 types: (unsigned int) args: (fildes) +syscall sys_dup2 nr 6032 nbargs 2 types: (unsigned int, unsigned int) args: (oldfd, newfd) +syscall sys_pause nr 6033 nbargs 0 types: () args: () +syscall sys_alarm nr 6037 nbargs 1 types: (unsigned int) args: (seconds) +syscall sys_getpid nr 6038 nbargs 0 types: () args: () +syscall sys_32_sendfile nr 6039 nbargs 4 types: (long, long, compat_off_t *, s32) args: (out_fd, in_fd, offset, count) +syscall sys_socket nr 6040 nbargs 3 types: (int, int, int) args: (family, type, protocol) +syscall sys_connect nr 6041 nbargs 3 types: (int, struct sockaddr *, int) args: (fd, uservaddr, addrlen) +syscall sys_accept nr 6042 nbargs 3 types: (int, struct sockaddr *, int *) args: (fd, upeer_sockaddr, upeer_addrlen) +syscall sys_sendto nr 6043 nbargs 6 types: (int, void *, size_t, unsigned int, struct sockaddr *, int) args: (fd, buff, len, flags, addr, addr_len) +syscall sys_shutdown nr 6047 nbargs 2 types: (int, int) args: (fd, how) +syscall sys_bind nr 6048 nbargs 3 types: (int, struct sockaddr *, int) args: (fd, umyaddr, addrlen) +syscall sys_listen nr 6049 nbargs 2 types: (int, int) args: (fd, backlog) +syscall sys_getsockname nr 6050 nbargs 3 types: (int, struct sockaddr *, int *) args: (fd, usockaddr, usockaddr_len) +syscall sys_getpeername nr 6051 nbargs 3 types: (int, struct sockaddr *, int *) args: (fd, usockaddr, usockaddr_len) +syscall sys_socketpair nr 6052 nbargs 4 types: (int, int, int, int *) args: (family, type, protocol, usockvec) +syscall sys_getsockopt nr 6054 nbargs 5 types: (int, int, int, char *, int *) args: (fd, level, optname, optval, optlen) +syscall sys_exit nr 6058 nbargs 1 types: (int) args: (error_code) +syscall sys_kill nr 6060 nbargs 2 types: (pid_t, int) args: (pid, sig) +syscall sys_newuname nr 6061 nbargs 1 types: (struct new_utsname *) args: (name) +syscall sys_semget nr 6062 nbargs 3 types: (key_t, int, int) args: (key, nsems, semflg) +syscall sys_semop nr 6063 nbargs 3 types: (int, struct sembuf *, unsigned) args: (semid, tsops, nsops) +syscall sys_n32_semctl nr 6064 nbargs 4 types: (int, int, int, u32) args: (semid, semnum, cmd, arg) +syscall sys_shmdt nr 6065 nbargs 1 types: (char *) args: (shmaddr) +syscall sys_msgget nr 6066 nbargs 2 types: (key_t, int) args: (key, msgflg) +syscall sys_n32_msgsnd nr 6067 nbargs 4 types: (int, u32, unsigned int, int) args: (msqid, msgp, msgsz, msgflg) +syscall sys_n32_msgrcv nr 6068 nbargs 5 types: (int, u32, size_t, int, int) args: (msqid, msgp, msgsz, msgtyp, msgflg) +syscall sys_flock nr 6071 nbargs 2 types: (unsigned int, unsigned int) args: (fd, cmd) +syscall sys_fsync nr 6072 nbargs 1 types: (unsigned int) args: (fd) +syscall sys_fdatasync nr 6073 nbargs 1 types: (unsigned int) args: (fd) +syscall sys_truncate nr 6074 nbargs 2 types: (const char *, long) args: (path, length) +syscall sys_ftruncate nr 6075 nbargs 2 types: (unsigned int, unsigned long) args: (fd, length) +syscall sys_getcwd nr 6077 nbargs 2 types: (char *, unsigned long) args: (buf, size) +syscall sys_chdir nr 6078 nbargs 1 types: (const char *) args: (filename) +syscall sys_fchdir nr 6079 nbargs 1 types: (unsigned int) args: (fd) +syscall sys_rename nr 6080 nbargs 2 types: (const char *, const char *) args: (oldname, newname) +syscall sys_mkdir nr 6081 nbargs 2 types: (const char *, umode_t) args: (pathname, mode) +syscall sys_rmdir nr 6082 nbargs 1 types: (const char *) args: (pathname) +syscall sys_creat nr 6083 nbargs 2 types: (const char *, umode_t) args: (pathname, mode) +syscall sys_link nr 6084 nbargs 2 types: (const char *, const char *) args: (oldname, newname) +syscall sys_unlink nr 6085 nbargs 1 types: (const char *) args: (pathname) +syscall sys_symlink nr 6086 nbargs 2 types: (const char *, const char *) args: (oldname, newname) +syscall sys_readlink nr 6087 nbargs 3 types: (const char *, char *, int) args: (path, buf, bufsiz) +syscall sys_chmod nr 6088 nbargs 2 types: (const char *, umode_t) args: (filename, mode) +syscall sys_fchmod nr 6089 nbargs 2 types: (unsigned int, umode_t) args: (fd, mode) +syscall sys_chown nr 6090 nbargs 3 types: (const char *, uid_t, gid_t) args: (filename, user, group) +syscall sys_fchown nr 6091 nbargs 3 types: (unsigned int, uid_t, gid_t) args: (fd, user, group) +syscall sys_lchown nr 6092 nbargs 3 types: (const char *, uid_t, gid_t) args: (filename, user, group) +syscall sys_umask nr 6093 nbargs 1 types: (int) args: (mask) +syscall sys_getuid nr 6100 nbargs 0 types: () args: () +syscall sys_syslog nr 6101 nbargs 3 types: (int, char *, int) args: (type, buf, len) +syscall sys_getgid nr 6102 nbargs 0 types: () args: () +syscall sys_setuid nr 6103 nbargs 1 types: (uid_t) args: (uid) +syscall sys_setgid nr 6104 nbargs 1 types: (gid_t) args: (gid) +syscall sys_geteuid nr 6105 nbargs 0 types: () args: () +syscall sys_getegid nr 6106 nbargs 0 types: () args: () +syscall sys_setpgid nr 6107 nbargs 2 types: (pid_t, pid_t) args: (pid, pgid) +syscall sys_getppid nr 6108 nbargs 0 types: () args: () +syscall sys_getpgrp nr 6109 nbargs 0 types: () args: () +syscall sys_setsid nr 6110 nbargs 0 types: () args: () +syscall sys_setreuid nr 6111 nbargs 2 types: (uid_t, uid_t) args: (ruid, euid) +syscall sys_setregid nr 6112 nbargs 2 types: (gid_t, gid_t) args: (rgid, egid) +syscall sys_getgroups nr 6113 nbargs 2 types: (int, gid_t *) args: (gidsetsize, grouplist) +syscall sys_setgroups nr 6114 nbargs 2 types: (int, gid_t *) args: (gidsetsize, grouplist) +syscall sys_setresuid nr 6115 nbargs 3 types: (uid_t, uid_t, uid_t) args: (ruid, euid, suid) +syscall sys_getresuid nr 6116 nbargs 3 types: (uid_t *, uid_t *, uid_t *) args: (ruidp, euidp, suidp) +syscall sys_setresgid nr 6117 nbargs 3 types: (gid_t, gid_t, gid_t) args: (rgid, egid, sgid) +syscall sys_getresgid nr 6118 nbargs 3 types: (gid_t *, gid_t *, gid_t *) args: (rgidp, egidp, sgidp) +syscall sys_getpgid nr 6119 nbargs 1 types: (pid_t) args: (pid) +syscall sys_setfsuid nr 6120 nbargs 1 types: (uid_t) args: (uid) +syscall sys_setfsgid nr 6121 nbargs 1 types: (gid_t) args: (gid) +syscall sys_getsid nr 6122 nbargs 1 types: (pid_t) args: (pid) +syscall sys_capget nr 6123 nbargs 2 types: (cap_user_header_t, cap_user_data_t) args: (header, dataptr) +syscall sys_capset nr 6124 nbargs 2 types: (cap_user_header_t, const cap_user_data_t) args: (header, data) +syscall sys_32_rt_sigpending nr 6125 nbargs 2 types: (compat_sigset_t *, unsigned int) args: (uset, sigsetsize) +syscall sys_32_rt_sigqueueinfo nr 6127 nbargs 3 types: (int, int, compat_siginfo_t *) args: (pid, sig, uinfo) +syscall sys_mknod nr 6131 nbargs 3 types: (const char *, umode_t, unsigned) args: (filename, mode, dev) +syscall sys_32_personality nr 6132 nbargs 1 types: (unsigned long) args: (personality) +syscall sys_sysfs nr 6136 nbargs 3 types: (int, unsigned long, unsigned long) args: (option, arg1, arg2) +syscall sys_getpriority nr 6137 nbargs 2 types: (int, int) args: (which, who) +syscall sys_setpriority nr 6138 nbargs 3 types: (int, int, int) args: (which, who, niceval) +syscall sys_sched_setparam nr 6139 nbargs 2 types: (pid_t, struct sched_param *) args: (pid, param) +syscall sys_sched_getparam nr 6140 nbargs 2 types: (pid_t, struct sched_param *) args: (pid, param) +syscall sys_sched_setscheduler nr 6141 nbargs 3 types: (pid_t, int, struct sched_param *) args: (pid, policy, param) +syscall sys_sched_getscheduler nr 6142 nbargs 1 types: (pid_t) args: (pid) +syscall sys_sched_get_priority_max nr 6143 nbargs 1 types: (int) args: (policy) +syscall sys_sched_get_priority_min nr 6144 nbargs 1 types: (int) args: (policy) +syscall sys_32_sched_rr_get_interval nr 6145 nbargs 2 types: (compat_pid_t, struct compat_timespec *) args: (pid, interval) +syscall sys_mlock nr 6146 nbargs 2 types: (unsigned long, size_t) args: (start, len) +syscall sys_munlock nr 6147 nbargs 2 types: (unsigned long, size_t) args: (start, len) +syscall sys_mlockall nr 6148 nbargs 1 types: (int) args: (flags) +syscall sys_munlockall nr 6149 nbargs 0 types: () args: () +syscall sys_vhangup nr 6150 nbargs 0 types: () args: () +syscall sys_pivot_root nr 6151 nbargs 2 types: (const char *, const char *) args: (new_root, put_old) +syscall sys_prctl nr 6153 nbargs 5 types: (int, unsigned long, unsigned long, unsigned long, unsigned long) args: (option, arg2, arg3, arg4, arg5) +syscall sys_chroot nr 6156 nbargs 1 types: (const char *) args: (filename) +syscall sys_sync nr 6157 nbargs 0 types: () args: () +syscall sys_umount nr 6161 nbargs 2 types: (char *, int) args: (name, flags) +syscall sys_swapon nr 6162 nbargs 2 types: (const char *, int) args: (specialfile, swap_flags) +syscall sys_swapoff nr 6163 nbargs 1 types: (const char *) args: (specialfile) +syscall sys_reboot nr 6164 nbargs 4 types: (int, int, unsigned int, void *) args: (magic1, magic2, cmd, arg) +syscall sys_sethostname nr 6165 nbargs 2 types: (char *, int) args: (name, len) +syscall sys_setdomainname nr 6166 nbargs 2 types: (char *, int) args: (name, len) +syscall sys_init_module nr 6168 nbargs 3 types: (void *, unsigned long, const char *) args: (umod, len, uargs) +syscall sys_delete_module nr 6169 nbargs 2 types: (const char *, unsigned int) args: (name_user, flags) +syscall sys_quotactl nr 6172 nbargs 4 types: (unsigned int, const char *, qid_t, void *) args: (cmd, special, id, addr) +syscall sys_gettid nr 6178 nbargs 0 types: () args: () +syscall sys_setxattr nr 6180 nbargs 5 types: (const char *, const char *, const void *, size_t, int) args: (pathname, name, value, size, flags) +syscall sys_lsetxattr nr 6181 nbargs 5 types: (const char *, const char *, const void *, size_t, int) args: (pathname, name, value, size, flags) +syscall sys_fsetxattr nr 6182 nbargs 5 types: (int, const char *, const void *, size_t, int) args: (fd, name, value, size, flags) +syscall sys_getxattr nr 6183 nbargs 4 types: (const char *, const char *, void *, size_t) args: (pathname, name, value, size) +syscall sys_lgetxattr nr 6184 nbargs 4 types: (const char *, const char *, void *, size_t) args: (pathname, name, value, size) +syscall sys_fgetxattr nr 6185 nbargs 4 types: (int, const char *, void *, size_t) args: (fd, name, value, size) +syscall sys_listxattr nr 6186 nbargs 3 types: (const char *, char *, size_t) args: (pathname, list, size) +syscall sys_llistxattr nr 6187 nbargs 3 types: (const char *, char *, size_t) args: (pathname, list, size) +syscall sys_flistxattr nr 6188 nbargs 3 types: (int, char *, size_t) args: (fd, list, size) +syscall sys_removexattr nr 6189 nbargs 2 types: (const char *, const char *) args: (pathname, name) +syscall sys_lremovexattr nr 6190 nbargs 2 types: (const char *, const char *) args: (pathname, name) +syscall sys_fremovexattr nr 6191 nbargs 2 types: (int, const char *) args: (fd, name) +syscall sys_tkill nr 6192 nbargs 2 types: (pid_t, int) args: (pid, sig) +syscall sys_32_futex nr 6194 nbargs 6 types: (u32 *, int, u32, struct compat_timespec *, u32 *, u32) args: (uaddr, op, val, utime, uaddr2, val3) +syscall sys_cacheflush nr 6197 nbargs 3 types: (unsigned long, unsigned long, unsigned int) args: (addr, bytes, cache) +syscall sys_cachectl nr 6198 nbargs 3 types: (char *, int, int) args: (addr, nbytes, op) +syscall sys_io_destroy nr 6201 nbargs 1 types: (aio_context_t) args: (ctx) +syscall sys_io_cancel nr 6204 nbargs 3 types: (aio_context_t, struct iocb *, struct io_event *) args: (ctx_id, iocb, result) +syscall sys_exit_group nr 6205 nbargs 1 types: (int) args: (error_code) +syscall sys_epoll_create nr 6207 nbargs 1 types: (int) args: (size) +syscall sys_epoll_ctl nr 6208 nbargs 4 types: (int, int, int, struct epoll_event *) args: (epfd, op, fd, event) +syscall sys_epoll_wait nr 6209 nbargs 4 types: (int, struct epoll_event *, int, int) args: (epfd, events, maxevents, timeout) +syscall sys_remap_file_pages nr 6210 nbargs 5 types: (unsigned long, unsigned long, unsigned long, unsigned long, unsigned long) args: (start, size, prot, pgoff, flags) +syscall sys_set_tid_address nr 6213 nbargs 1 types: (int *) args: (tidptr) +syscall sys_restart_syscall nr 6214 nbargs 0 types: () args: () +syscall sys_sendfile64 nr 6219 nbargs 4 types: (int, int, loff_t *, size_t) args: (out_fd, in_fd, offset, count) +syscall sys_timer_getoverrun nr 6223 nbargs 1 types: (timer_t) args: (timer_id) +syscall sys_timer_delete nr 6224 nbargs 1 types: (timer_t) args: (timer_id) +syscall sys_tgkill nr 6229 nbargs 3 types: (pid_t, pid_t, int) args: (tgid, pid, sig) +syscall sys_set_thread_area nr 6246 nbargs 1 types: (unsigned long) args: (addr) +syscall sys_inotify_init nr 6247 nbargs 0 types: () args: () +syscall sys_inotify_add_watch nr 6248 nbargs 3 types: (int, const char *, u32) args: (fd, pathname, mask) +syscall sys_inotify_rm_watch nr 6249 nbargs 2 types: (int, __s32) args: (fd, wd) +syscall sys_openat nr 6251 nbargs 4 types: (int, const char *, int, umode_t) args: (dfd, filename, flags, mode) +syscall sys_mkdirat nr 6252 nbargs 3 types: (int, const char *, umode_t) args: (dfd, pathname, mode) +syscall sys_mknodat nr 6253 nbargs 4 types: (int, const char *, umode_t, unsigned) args: (dfd, filename, mode, dev) +syscall sys_fchownat nr 6254 nbargs 5 types: (int, const char *, uid_t, gid_t, int) args: (dfd, filename, user, group, flag) +syscall sys_newfstatat nr 6256 nbargs 4 types: (int, const char *, struct stat *, int) args: (dfd, filename, statbuf, flag) +syscall sys_unlinkat nr 6257 nbargs 3 types: (int, const char *, int) args: (dfd, pathname, flag) +syscall sys_renameat nr 6258 nbargs 4 types: (int, const char *, int, const char *) args: (olddfd, oldname, newdfd, newname) +syscall sys_linkat nr 6259 nbargs 5 types: (int, const char *, int, const char *, int) args: (olddfd, oldname, newdfd, newname, flags) +syscall sys_symlinkat nr 6260 nbargs 3 types: (const char *, int, const char *) args: (oldname, newdfd, newname) +syscall sys_readlinkat nr 6261 nbargs 4 types: (int, const char *, char *, int) args: (dfd, pathname, buf, bufsiz) +syscall sys_fchmodat nr 6262 nbargs 3 types: (int, const char *, umode_t) args: (dfd, filename, mode) +syscall sys_faccessat nr 6263 nbargs 3 types: (int, const char *, int) args: (dfd, filename, mode) +syscall sys_unshare nr 6266 nbargs 1 types: (unsigned long) args: (unshare_flags) +syscall sys_splice nr 6267 nbargs 6 types: (int, loff_t *, int, loff_t *, size_t, unsigned int) args: (fd_in, off_in, fd_out, off_out, len, flags) +syscall sys_tee nr 6269 nbargs 4 types: (int, int, size_t, unsigned int) args: (fdin, fdout, len, flags) +syscall sys_getcpu nr 6275 nbargs 3 types: (unsigned *, unsigned *, struct getcpu_cache *) args: (cpup, nodep, unused) +syscall sys_ioprio_set nr 6277 nbargs 3 types: (int, int, int) args: (which, who, ioprio) +syscall sys_ioprio_get nr 6278 nbargs 2 types: (int, int) args: (which, who) +syscall sys_eventfd nr 6282 nbargs 1 types: (unsigned int) args: (count) +syscall sys_timerfd_create nr 6284 nbargs 2 types: (int, int) args: (clockid, flags) +syscall sys_signalfd4 nr 6287 nbargs 4 types: (int, sigset_t *, size_t, int) args: (ufd, user_mask, sizemask, flags) +syscall sys_eventfd2 nr 6288 nbargs 2 types: (unsigned int, int) args: (count, flags) +syscall sys_epoll_create1 nr 6289 nbargs 1 types: (int) args: (flags) +syscall sys_dup3 nr 6290 nbargs 3 types: (unsigned int, unsigned int, int) args: (oldfd, newfd, flags) +syscall sys_pipe2 nr 6291 nbargs 2 types: (int *, int) args: (fildes, flags) +syscall sys_inotify_init1 nr 6292 nbargs 1 types: (int) args: (flags) +syscall sys_preadv nr 6293 nbargs 5 types: (unsigned long, const struct iovec *, unsigned long, unsigned long, unsigned long) args: (fd, vec, vlen, pos_l, pos_h) +syscall sys_pwritev nr 6294 nbargs 5 types: (unsigned long, const struct iovec *, unsigned long, unsigned long, unsigned long) args: (fd, vec, vlen, pos_l, pos_h) +syscall sys_accept4 nr 6297 nbargs 4 types: (int, struct sockaddr *, int *, int) args: (fd, upeer_sockaddr, upeer_addrlen, flags) +syscall sys_getdents64 nr 6299 nbargs 3 types: (unsigned int, struct linux_dirent64 *, unsigned int) args: (fd, dirent, count) +syscall sys_prlimit64 nr 6302 nbargs 4 types: (pid_t, unsigned int, const struct rlimit64 *, struct rlimit64 *) args: (pid, resource, new_rlim, old_rlim) +syscall sys_syncfs nr 6306 nbargs 1 types: (int) args: (fd) +syscall sys_setns nr 6308 nbargs 2 types: (int, int) args: (fd, nstype) --- linux-3.11.0.orig/ubuntu/lttng/instrumentation/syscalls/3.0.34/powerpc-32-syscalls-3.0.34 +++ linux-3.11.0/ubuntu/lttng/instrumentation/syscalls/3.0.34/powerpc-32-syscalls-3.0.34 @@ -0,0 +1,286 @@ +syscall sys_restart_syscall nr 0 nbargs 0 types: () args: () +syscall sys_exit nr 1 nbargs 1 types: (int) args: (error_code) +syscall sys_read nr 3 nbargs 3 types: (unsigned int, char *, size_t) args: (fd, buf, count) +syscall sys_write nr 4 nbargs 3 types: (unsigned int, const char *, size_t) args: (fd, buf, count) +syscall sys_open nr 5 nbargs 3 types: (const char *, int, int) args: (filename, flags, mode) +syscall sys_close nr 6 nbargs 1 types: (unsigned int) args: (fd) +syscall sys_waitpid nr 7 nbargs 3 types: (pid_t, int *, int) args: (pid, stat_addr, options) +syscall sys_creat nr 8 nbargs 2 types: (const char *, int) args: (pathname, mode) +syscall sys_link nr 9 nbargs 2 types: (const char *, const char *) args: (oldname, newname) +syscall sys_unlink nr 10 nbargs 1 types: (const char *) args: (pathname) +syscall sys_chdir nr 12 nbargs 1 types: (const char *) args: (filename) +syscall sys_time nr 13 nbargs 1 types: (time_t *) args: (tloc) +syscall sys_mknod nr 14 nbargs 3 types: (const char *, int, unsigned) args: (filename, mode, dev) +syscall sys_chmod nr 15 nbargs 2 types: (const char *, mode_t) args: (filename, mode) +syscall sys_lchown nr 16 nbargs 3 types: (const char *, uid_t, gid_t) args: (filename, user, group) +syscall sys_stat nr 18 nbargs 2 types: (const char *, struct __old_kernel_stat *) args: (filename, statbuf) +syscall sys_lseek nr 19 nbargs 3 types: (unsigned int, off_t, unsigned int) args: (fd, offset, origin) +syscall sys_getpid nr 20 nbargs 0 types: () args: () +syscall sys_mount nr 21 nbargs 5 types: (char *, char *, char *, unsigned long, void *) args: (dev_name, dir_name, type, flags, data) +syscall sys_oldumount nr 22 nbargs 1 types: (char *) args: (name) +syscall sys_setuid nr 23 nbargs 1 types: (uid_t) args: (uid) +syscall sys_getuid nr 24 nbargs 0 types: () args: () +syscall sys_stime nr 25 nbargs 1 types: (time_t *) args: (tptr) +syscall sys_ptrace nr 26 nbargs 4 types: (long, long, unsigned long, unsigned long) args: (request, pid, addr, data) +syscall sys_alarm nr 27 nbargs 1 types: (unsigned int) args: (seconds) +syscall sys_fstat nr 28 nbargs 2 types: (unsigned int, struct __old_kernel_stat *) args: (fd, statbuf) +syscall sys_pause nr 29 nbargs 0 types: () args: () +syscall sys_utime nr 30 nbargs 2 types: (char *, struct utimbuf *) args: (filename, times) +syscall sys_access nr 33 nbargs 2 types: (const char *, int) args: (filename, mode) +syscall sys_nice nr 34 nbargs 1 types: (int) args: (increment) +syscall sys_sync nr 36 nbargs 0 types: () args: () +syscall sys_kill nr 37 nbargs 2 types: (pid_t, int) args: (pid, sig) +syscall sys_rename nr 38 nbargs 2 types: (const char *, const char *) args: (oldname, newname) +syscall sys_mkdir nr 39 nbargs 2 types: (const char *, int) args: (pathname, mode) +syscall sys_rmdir nr 40 nbargs 1 types: (const char *) args: (pathname) +syscall sys_dup nr 41 nbargs 1 types: (unsigned int) args: (fildes) +syscall sys_pipe nr 42 nbargs 1 types: (int *) args: (fildes) +syscall sys_times nr 43 nbargs 1 types: (struct tms *) args: (tbuf) +syscall sys_brk nr 45 nbargs 1 types: (unsigned long) args: (brk) +syscall sys_setgid nr 46 nbargs 1 types: (gid_t) args: (gid) +syscall sys_getgid nr 47 nbargs 0 types: () args: () +syscall sys_signal nr 48 nbargs 2 types: (int, __sighandler_t) args: (sig, handler) +syscall sys_geteuid nr 49 nbargs 0 types: () args: () +syscall sys_getegid nr 50 nbargs 0 types: () args: () +syscall sys_acct nr 51 nbargs 1 types: (const char *) args: (name) +syscall sys_umount nr 52 nbargs 2 types: (char *, int) args: (name, flags) +syscall sys_ioctl nr 54 nbargs 3 types: (unsigned int, unsigned int, unsigned long) args: (fd, cmd, arg) +syscall sys_fcntl nr 55 nbargs 3 types: (unsigned int, unsigned int, unsigned long) args: (fd, cmd, arg) +syscall sys_setpgid nr 57 nbargs 2 types: (pid_t, pid_t) args: (pid, pgid) +syscall sys_olduname nr 59 nbargs 1 types: (struct oldold_utsname *) args: (name) +syscall sys_umask nr 60 nbargs 1 types: (int) args: (mask) +syscall sys_chroot nr 61 nbargs 1 types: (const char *) args: (filename) +syscall sys_ustat nr 62 nbargs 2 types: (unsigned, struct ustat *) args: (dev, ubuf) +syscall sys_dup2 nr 63 nbargs 2 types: (unsigned int, unsigned int) args: (oldfd, newfd) +syscall sys_getppid nr 64 nbargs 0 types: () args: () +syscall sys_getpgrp nr 65 nbargs 0 types: () args: () +syscall sys_setsid nr 66 nbargs 0 types: () args: () +syscall sys_sgetmask nr 68 nbargs 0 types: () args: () +syscall sys_ssetmask nr 69 nbargs 1 types: (int) args: (newmask) +syscall sys_setreuid nr 70 nbargs 2 types: (uid_t, uid_t) args: (ruid, euid) +syscall sys_setregid nr 71 nbargs 2 types: (gid_t, gid_t) args: (rgid, egid) +syscall sys_sigpending nr 73 nbargs 1 types: (old_sigset_t *) args: (set) +syscall sys_sethostname nr 74 nbargs 2 types: (char *, int) args: (name, len) +syscall sys_setrlimit nr 75 nbargs 2 types: (unsigned int, struct rlimit *) args: (resource, rlim) +syscall sys_old_getrlimit nr 76 nbargs 2 types: (unsigned int, struct rlimit *) args: (resource, rlim) +syscall sys_getrusage nr 77 nbargs 2 types: (int, struct rusage *) args: (who, ru) +syscall sys_gettimeofday nr 78 nbargs 2 types: (struct timeval *, struct timezone *) args: (tv, tz) +syscall sys_settimeofday nr 79 nbargs 2 types: (struct timeval *, struct timezone *) args: (tv, tz) +syscall sys_getgroups nr 80 nbargs 2 types: (int, gid_t *) args: (gidsetsize, grouplist) +syscall sys_setgroups nr 81 nbargs 2 types: (int, gid_t *) args: (gidsetsize, grouplist) +syscall sys_symlink nr 83 nbargs 2 types: (const char *, const char *) args: (oldname, newname) +syscall sys_lstat nr 84 nbargs 2 types: (const char *, struct __old_kernel_stat *) args: (filename, statbuf) +syscall sys_readlink nr 85 nbargs 3 types: (const char *, char *, int) args: (path, buf, bufsiz) +syscall sys_uselib nr 86 nbargs 1 types: (const char *) args: (library) +syscall sys_swapon nr 87 nbargs 2 types: (const char *, int) args: (specialfile, swap_flags) +syscall sys_reboot nr 88 nbargs 4 types: (int, int, unsigned int, void *) args: (magic1, magic2, cmd, arg) +syscall sys_old_readdir nr 89 nbargs 3 types: (unsigned int, struct old_linux_dirent *, unsigned int) args: (fd, dirent, count) +syscall sys_munmap nr 91 nbargs 2 types: (unsigned long, size_t) args: (addr, len) +syscall sys_truncate nr 92 nbargs 2 types: (const char *, long) args: (path, length) +syscall sys_ftruncate nr 93 nbargs 2 types: (unsigned int, unsigned long) args: (fd, length) +syscall sys_fchmod nr 94 nbargs 2 types: (unsigned int, mode_t) args: (fd, mode) +syscall sys_fchown nr 95 nbargs 3 types: (unsigned int, uid_t, gid_t) args: (fd, user, group) +syscall sys_getpriority nr 96 nbargs 2 types: (int, int) args: (which, who) +syscall sys_setpriority nr 97 nbargs 3 types: (int, int, int) args: (which, who, niceval) +syscall sys_statfs nr 99 nbargs 2 types: (const char *, struct statfs *) args: (pathname, buf) +syscall sys_fstatfs nr 100 nbargs 2 types: (unsigned int, struct statfs *) args: (fd, buf) +syscall sys_socketcall nr 102 nbargs 2 types: (int, unsigned long *) args: (call, args) +syscall sys_syslog nr 103 nbargs 3 types: (int, char *, int) args: (type, buf, len) +syscall sys_setitimer nr 104 nbargs 3 types: (int, struct itimerval *, struct itimerval *) args: (which, value, ovalue) +syscall sys_getitimer nr 105 nbargs 2 types: (int, struct itimerval *) args: (which, value) +syscall sys_newstat nr 106 nbargs 2 types: (const char *, struct stat *) args: (filename, statbuf) +syscall sys_newlstat nr 107 nbargs 2 types: (const char *, struct stat *) args: (filename, statbuf) +syscall sys_newfstat nr 108 nbargs 2 types: (unsigned int, struct stat *) args: (fd, statbuf) +syscall sys_uname nr 109 nbargs 1 types: (struct old_utsname *) args: (name) +syscall sys_vhangup nr 111 nbargs 0 types: () args: () +syscall sys_wait4 nr 114 nbargs 4 types: (pid_t, int *, int, struct rusage *) args: (upid, stat_addr, options, ru) +syscall sys_swapoff nr 115 nbargs 1 types: (const char *) args: (specialfile) +syscall sys_sysinfo nr 116 nbargs 1 types: (struct sysinfo *) args: (info) +syscall sys_ipc nr 117 nbargs 6 types: (unsigned int, int, unsigned long, unsigned long, void *, long) args: (call, first, second, third, ptr, fifth) +syscall sys_fsync nr 118 nbargs 1 types: (unsigned int) args: (fd) +syscall sys_setdomainname nr 121 nbargs 2 types: (char *, int) args: (name, len) +syscall sys_newuname nr 122 nbargs 1 types: (struct new_utsname *) args: (name) +syscall sys_adjtimex nr 124 nbargs 1 types: (struct timex *) args: (txc_p) +syscall sys_mprotect nr 125 nbargs 3 types: (unsigned long, size_t, unsigned long) args: (start, len, prot) +syscall sys_sigprocmask nr 126 nbargs 3 types: (int, old_sigset_t *, old_sigset_t *) args: (how, nset, oset) +syscall sys_init_module nr 128 nbargs 3 types: (void *, unsigned long, const char *) args: (umod, len, uargs) +syscall sys_delete_module nr 129 nbargs 2 types: (const char *, unsigned int) args: (name_user, flags) +syscall sys_getpgid nr 132 nbargs 1 types: (pid_t) args: (pid) +syscall sys_fchdir nr 133 nbargs 1 types: (unsigned int) args: (fd) +syscall sys_bdflush nr 134 nbargs 2 types: (int, long) args: (func, data) +syscall sys_sysfs nr 135 nbargs 3 types: (int, unsigned long, unsigned long) args: (option, arg1, arg2) +syscall sys_personality nr 136 nbargs 1 types: (unsigned int) args: (personality) +syscall sys_setfsuid nr 138 nbargs 1 types: (uid_t) args: (uid) +syscall sys_setfsgid nr 139 nbargs 1 types: (gid_t) args: (gid) +syscall sys_llseek nr 140 nbargs 5 types: (unsigned int, unsigned long, unsigned long, loff_t *, unsigned int) args: (fd, offset_high, offset_low, result, origin) +syscall sys_getdents nr 141 nbargs 3 types: (unsigned int, struct linux_dirent *, unsigned int) args: (fd, dirent, count) +syscall sys_select nr 142 nbargs 5 types: (int, fd_set *, fd_set *, fd_set *, struct timeval *) args: (n, inp, outp, exp, tvp) +syscall sys_flock nr 143 nbargs 2 types: (unsigned int, unsigned int) args: (fd, cmd) +syscall sys_msync nr 144 nbargs 3 types: (unsigned long, size_t, int) args: (start, len, flags) +syscall sys_readv nr 145 nbargs 3 types: (unsigned long, const struct iovec *, unsigned long) args: (fd, vec, vlen) +syscall sys_writev nr 146 nbargs 3 types: (unsigned long, const struct iovec *, unsigned long) args: (fd, vec, vlen) +syscall sys_getsid nr 147 nbargs 1 types: (pid_t) args: (pid) +syscall sys_fdatasync nr 148 nbargs 1 types: (unsigned int) args: (fd) +syscall sys_sysctl nr 149 nbargs 1 types: (struct __sysctl_args *) args: (args) +syscall sys_mlock nr 150 nbargs 2 types: (unsigned long, size_t) args: (start, len) +syscall sys_munlock nr 151 nbargs 2 types: (unsigned long, size_t) args: (start, len) +syscall sys_mlockall nr 152 nbargs 1 types: (int) args: (flags) +syscall sys_munlockall nr 153 nbargs 0 types: () args: () +syscall sys_sched_setparam nr 154 nbargs 2 types: (pid_t, struct sched_param *) args: (pid, param) +syscall sys_sched_getparam nr 155 nbargs 2 types: (pid_t, struct sched_param *) args: (pid, param) +syscall sys_sched_setscheduler nr 156 nbargs 3 types: (pid_t, int, struct sched_param *) args: (pid, policy, param) +syscall sys_sched_getscheduler nr 157 nbargs 1 types: (pid_t) args: (pid) +syscall sys_sched_yield nr 158 nbargs 0 types: () args: () +syscall sys_sched_get_priority_max nr 159 nbargs 1 types: (int) args: (policy) +syscall sys_sched_get_priority_min nr 160 nbargs 1 types: (int) args: (policy) +syscall sys_sched_rr_get_interval nr 161 nbargs 2 types: (pid_t, struct timespec *) args: (pid, interval) +syscall sys_nanosleep nr 162 nbargs 2 types: (struct timespec *, struct timespec *) args: (rqtp, rmtp) +syscall sys_mremap nr 163 nbargs 5 types: (unsigned long, unsigned long, unsigned long, unsigned long, unsigned long) args: (addr, old_len, new_len, flags, new_addr) +syscall sys_setresuid nr 164 nbargs 3 types: (uid_t, uid_t, uid_t) args: (ruid, euid, suid) +syscall sys_getresuid nr 165 nbargs 3 types: (uid_t *, uid_t *, uid_t *) args: (ruid, euid, suid) +syscall sys_poll nr 167 nbargs 3 types: (struct pollfd *, unsigned int, long) args: (ufds, nfds, timeout_msecs) +syscall sys_nfsservctl nr 168 nbargs 3 types: (int, struct nfsctl_arg *, void *) args: (cmd, arg, res) +syscall sys_setresgid nr 169 nbargs 3 types: (gid_t, gid_t, gid_t) args: (rgid, egid, sgid) +syscall sys_getresgid nr 170 nbargs 3 types: (gid_t *, gid_t *, gid_t *) args: (rgid, egid, sgid) +syscall sys_prctl nr 171 nbargs 5 types: (int, unsigned long, unsigned long, unsigned long, unsigned long) args: (option, arg2, arg3, arg4, arg5) +syscall sys_rt_sigaction nr 173 nbargs 4 types: (int, const struct sigaction *, struct sigaction *, size_t) args: (sig, act, oact, sigsetsize) +syscall sys_rt_sigprocmask nr 174 nbargs 4 types: (int, sigset_t *, sigset_t *, size_t) args: (how, nset, oset, sigsetsize) +syscall sys_rt_sigpending nr 175 nbargs 2 types: (sigset_t *, size_t) args: (set, sigsetsize) +syscall sys_rt_sigtimedwait nr 176 nbargs 4 types: (const sigset_t *, siginfo_t *, const struct timespec *, size_t) args: (uthese, uinfo, uts, sigsetsize) +syscall sys_rt_sigqueueinfo nr 177 nbargs 3 types: (pid_t, int, siginfo_t *) args: (pid, sig, uinfo) +syscall sys_rt_sigsuspend nr 178 nbargs 2 types: (sigset_t *, size_t) args: (unewset, sigsetsize) +syscall sys_chown nr 181 nbargs 3 types: (const char *, uid_t, gid_t) args: (filename, user, group) +syscall sys_getcwd nr 182 nbargs 2 types: (char *, unsigned long) args: (buf, size) +syscall sys_capget nr 183 nbargs 2 types: (cap_user_header_t, cap_user_data_t) args: (header, dataptr) +syscall sys_capset nr 184 nbargs 2 types: (cap_user_header_t, const cap_user_data_t) args: (header, data) +syscall sys_sendfile nr 186 nbargs 4 types: (int, int, off_t *, size_t) args: (out_fd, in_fd, offset, count) +syscall sys_getrlimit nr 190 nbargs 2 types: (unsigned int, struct rlimit *) args: (resource, rlim) +syscall sys_stat64 nr 195 nbargs 2 types: (const char *, struct stat64 *) args: (filename, statbuf) +syscall sys_lstat64 nr 196 nbargs 2 types: (const char *, struct stat64 *) args: (filename, statbuf) +syscall sys_fstat64 nr 197 nbargs 2 types: (unsigned long, struct stat64 *) args: (fd, statbuf) +syscall sys_pciconfig_read nr 198 nbargs 5 types: (unsigned long, unsigned long, unsigned long, unsigned long, void *) args: (bus, dfn, off, len, buf) +syscall sys_pciconfig_write nr 199 nbargs 5 types: (unsigned long, unsigned long, unsigned long, unsigned long, void *) args: (bus, dfn, off, len, buf) +syscall sys_getdents64 nr 202 nbargs 3 types: (unsigned int, struct linux_dirent64 *, unsigned int) args: (fd, dirent, count) +syscall sys_pivot_root nr 203 nbargs 2 types: (const char *, const char *) args: (new_root, put_old) +syscall sys_fcntl64 nr 204 nbargs 3 types: (unsigned int, unsigned int, unsigned long) args: (fd, cmd, arg) +syscall sys_madvise nr 205 nbargs 3 types: (unsigned long, size_t, int) args: (start, len_in, behavior) +syscall sys_mincore nr 206 nbargs 3 types: (unsigned long, size_t, unsigned char *) args: (start, len, vec) +syscall sys_gettid nr 207 nbargs 0 types: () args: () +syscall sys_tkill nr 208 nbargs 2 types: (pid_t, int) args: (pid, sig) +syscall sys_setxattr nr 209 nbargs 5 types: (const char *, const char *, const void *, size_t, int) args: (pathname, name, value, size, flags) +syscall sys_lsetxattr nr 210 nbargs 5 types: (const char *, const char *, const void *, size_t, int) args: (pathname, name, value, size, flags) +syscall sys_fsetxattr nr 211 nbargs 5 types: (int, const char *, const void *, size_t, int) args: (fd, name, value, size, flags) +syscall sys_getxattr nr 212 nbargs 4 types: (const char *, const char *, void *, size_t) args: (pathname, name, value, size) +syscall sys_lgetxattr nr 213 nbargs 4 types: (const char *, const char *, void *, size_t) args: (pathname, name, value, size) +syscall sys_fgetxattr nr 214 nbargs 4 types: (int, const char *, void *, size_t) args: (fd, name, value, size) +syscall sys_listxattr nr 215 nbargs 3 types: (const char *, char *, size_t) args: (pathname, list, size) +syscall sys_llistxattr nr 216 nbargs 3 types: (const char *, char *, size_t) args: (pathname, list, size) +syscall sys_flistxattr nr 217 nbargs 3 types: (int, char *, size_t) args: (fd, list, size) +syscall sys_removexattr nr 218 nbargs 2 types: (const char *, const char *) args: (pathname, name) +syscall sys_lremovexattr nr 219 nbargs 2 types: (const char *, const char *) args: (pathname, name) +syscall sys_fremovexattr nr 220 nbargs 2 types: (int, const char *) args: (fd, name) +syscall sys_futex nr 221 nbargs 6 types: (u32 *, int, u32, struct timespec *, u32 *, u32) args: (uaddr, op, val, utime, uaddr2, val3) +syscall sys_sched_setaffinity nr 222 nbargs 3 types: (pid_t, unsigned int, unsigned long *) args: (pid, len, user_mask_ptr) +syscall sys_sched_getaffinity nr 223 nbargs 3 types: (pid_t, unsigned int, unsigned long *) args: (pid, len, user_mask_ptr) +syscall sys_sendfile64 nr 226 nbargs 4 types: (int, int, loff_t *, size_t) args: (out_fd, in_fd, offset, count) +syscall sys_io_setup nr 227 nbargs 2 types: (unsigned, aio_context_t *) args: (nr_events, ctxp) +syscall sys_io_destroy nr 228 nbargs 1 types: (aio_context_t) args: (ctx) +syscall sys_io_getevents nr 229 nbargs 5 types: (aio_context_t, long, long, struct io_event *, struct timespec *) args: (ctx_id, min_nr, nr, events, timeout) +syscall sys_io_submit nr 230 nbargs 3 types: (aio_context_t, long, struct iocb * *) args: (ctx_id, nr, iocbpp) +syscall sys_io_cancel nr 231 nbargs 3 types: (aio_context_t, struct iocb *, struct io_event *) args: (ctx_id, iocb, result) +syscall sys_set_tid_address nr 232 nbargs 1 types: (int *) args: (tidptr) +syscall sys_exit_group nr 234 nbargs 1 types: (int) args: (error_code) +syscall sys_epoll_create nr 236 nbargs 1 types: (int) args: (size) +syscall sys_epoll_ctl nr 237 nbargs 4 types: (int, int, int, struct epoll_event *) args: (epfd, op, fd, event) +syscall sys_epoll_wait nr 238 nbargs 4 types: (int, struct epoll_event *, int, int) args: (epfd, events, maxevents, timeout) +syscall sys_remap_file_pages nr 239 nbargs 5 types: (unsigned long, unsigned long, unsigned long, unsigned long, unsigned long) args: (start, size, prot, pgoff, flags) +syscall sys_timer_create nr 240 nbargs 3 types: (const clockid_t, struct sigevent *, timer_t *) args: (which_clock, timer_event_spec, created_timer_id) +syscall sys_timer_settime nr 241 nbargs 4 types: (timer_t, int, const struct itimerspec *, struct itimerspec *) args: (timer_id, flags, new_setting, old_setting) +syscall sys_timer_gettime nr 242 nbargs 2 types: (timer_t, struct itimerspec *) args: (timer_id, setting) +syscall sys_timer_getoverrun nr 243 nbargs 1 types: (timer_t) args: (timer_id) +syscall sys_timer_delete nr 244 nbargs 1 types: (timer_t) args: (timer_id) +syscall sys_clock_settime nr 245 nbargs 2 types: (const clockid_t, const struct timespec *) args: (which_clock, tp) +syscall sys_clock_gettime nr 246 nbargs 2 types: (const clockid_t, struct timespec *) args: (which_clock, tp) +syscall sys_clock_getres nr 247 nbargs 2 types: (const clockid_t, struct timespec *) args: (which_clock, tp) +syscall sys_clock_nanosleep nr 248 nbargs 4 types: (const clockid_t, int, const struct timespec *, struct timespec *) args: (which_clock, flags, rqtp, rmtp) +syscall sys_tgkill nr 250 nbargs 3 types: (pid_t, pid_t, int) args: (tgid, pid, sig) +syscall sys_utimes nr 251 nbargs 2 types: (char *, struct timeval *) args: (filename, utimes) +syscall sys_statfs64 nr 252 nbargs 3 types: (const char *, size_t, struct statfs64 *) args: (pathname, sz, buf) +syscall sys_fstatfs64 nr 253 nbargs 3 types: (unsigned int, size_t, struct statfs64 *) args: (fd, sz, buf) +syscall sys_mq_open nr 262 nbargs 4 types: (const char *, int, mode_t, struct mq_attr *) args: (u_name, oflag, mode, u_attr) +syscall sys_mq_unlink nr 263 nbargs 1 types: (const char *) args: (u_name) +syscall sys_mq_timedsend nr 264 nbargs 5 types: (mqd_t, const char *, size_t, unsigned int, const struct timespec *) args: (mqdes, u_msg_ptr, msg_len, msg_prio, u_abs_timeout) +syscall sys_mq_timedreceive nr 265 nbargs 5 types: (mqd_t, char *, size_t, unsigned int *, const struct timespec *) args: (mqdes, u_msg_ptr, msg_len, u_msg_prio, u_abs_timeout) +syscall sys_mq_notify nr 266 nbargs 2 types: (mqd_t, const struct sigevent *) args: (mqdes, u_notification) +syscall sys_mq_getsetattr nr 267 nbargs 3 types: (mqd_t, const struct mq_attr *, struct mq_attr *) args: (mqdes, u_mqstat, u_omqstat) +syscall sys_add_key nr 269 nbargs 5 types: (const char *, const char *, const void *, size_t, key_serial_t) args: (_type, _description, _payload, plen, ringid) +syscall sys_request_key nr 270 nbargs 4 types: (const char *, const char *, const char *, key_serial_t) args: (_type, _description, _callout_info, destringid) +syscall sys_keyctl nr 271 nbargs 5 types: (int, unsigned long, unsigned long, unsigned long, unsigned long) args: (option, arg2, arg3, arg4, arg5) +syscall sys_waitid nr 272 nbargs 5 types: (int, pid_t, struct siginfo *, int, struct rusage *) args: (which, upid, infop, options, ru) +syscall sys_ioprio_set nr 273 nbargs 3 types: (int, int, int) args: (which, who, ioprio) +syscall sys_ioprio_get nr 274 nbargs 2 types: (int, int) args: (which, who) +syscall sys_inotify_init nr 275 nbargs 0 types: () args: () +syscall sys_inotify_add_watch nr 276 nbargs 3 types: (int, const char *, u32) args: (fd, pathname, mask) +syscall sys_inotify_rm_watch nr 277 nbargs 2 types: (int, __s32) args: (fd, wd) +syscall sys_pselect6 nr 280 nbargs 6 types: (int, fd_set *, fd_set *, fd_set *, struct timespec *, void *) args: (n, inp, outp, exp, tsp, sig) +syscall sys_ppoll nr 281 nbargs 5 types: (struct pollfd *, unsigned int, struct timespec *, const sigset_t *, size_t) args: (ufds, nfds, tsp, sigmask, sigsetsize) +syscall sys_unshare nr 282 nbargs 1 types: (unsigned long) args: (unshare_flags) +syscall sys_splice nr 283 nbargs 6 types: (int, loff_t *, int, loff_t *, size_t, unsigned int) args: (fd_in, off_in, fd_out, off_out, len, flags) +syscall sys_tee nr 284 nbargs 4 types: (int, int, size_t, unsigned int) args: (fdin, fdout, len, flags) +syscall sys_vmsplice nr 285 nbargs 4 types: (int, const struct iovec *, unsigned long, unsigned int) args: (fd, iov, nr_segs, flags) +syscall sys_openat nr 286 nbargs 4 types: (int, const char *, int, int) args: (dfd, filename, flags, mode) +syscall sys_mkdirat nr 287 nbargs 3 types: (int, const char *, int) args: (dfd, pathname, mode) +syscall sys_mknodat nr 288 nbargs 4 types: (int, const char *, int, unsigned) args: (dfd, filename, mode, dev) +syscall sys_fchownat nr 289 nbargs 5 types: (int, const char *, uid_t, gid_t, int) args: (dfd, filename, user, group, flag) +syscall sys_futimesat nr 290 nbargs 3 types: (int, const char *, struct timeval *) args: (dfd, filename, utimes) +syscall sys_fstatat64 nr 291 nbargs 4 types: (int, const char *, struct stat64 *, int) args: (dfd, filename, statbuf, flag) +syscall sys_unlinkat nr 292 nbargs 3 types: (int, const char *, int) args: (dfd, pathname, flag) +syscall sys_renameat nr 293 nbargs 4 types: (int, const char *, int, const char *) args: (olddfd, oldname, newdfd, newname) +syscall sys_linkat nr 294 nbargs 5 types: (int, const char *, int, const char *, int) args: (olddfd, oldname, newdfd, newname, flags) +syscall sys_symlinkat nr 295 nbargs 3 types: (const char *, int, const char *) args: (oldname, newdfd, newname) +syscall sys_readlinkat nr 296 nbargs 4 types: (int, const char *, char *, int) args: (dfd, pathname, buf, bufsiz) +syscall sys_fchmodat nr 297 nbargs 3 types: (int, const char *, mode_t) args: (dfd, filename, mode) +syscall sys_faccessat nr 298 nbargs 3 types: (int, const char *, int) args: (dfd, filename, mode) +syscall sys_get_robust_list nr 299 nbargs 3 types: (int, struct robust_list_head * *, size_t *) args: (pid, head_ptr, len_ptr) +syscall sys_set_robust_list nr 300 nbargs 2 types: (struct robust_list_head *, size_t) args: (head, len) +syscall sys_getcpu nr 302 nbargs 3 types: (unsigned *, unsigned *, struct getcpu_cache *) args: (cpup, nodep, unused) +syscall sys_epoll_pwait nr 303 nbargs 6 types: (int, struct epoll_event *, int, int, const sigset_t *, size_t) args: (epfd, events, maxevents, timeout, sigmask, sigsetsize) +syscall sys_utimensat nr 304 nbargs 4 types: (int, const char *, struct timespec *, int) args: (dfd, filename, utimes, flags) +syscall sys_signalfd nr 305 nbargs 3 types: (int, sigset_t *, size_t) args: (ufd, user_mask, sizemask) +syscall sys_timerfd_create nr 306 nbargs 2 types: (int, int) args: (clockid, flags) +syscall sys_eventfd nr 307 nbargs 1 types: (unsigned int) args: (count) +syscall sys_timerfd_settime nr 311 nbargs 4 types: (int, int, const struct itimerspec *, struct itimerspec *) args: (ufd, flags, utmr, otmr) +syscall sys_timerfd_gettime nr 312 nbargs 2 types: (int, struct itimerspec *) args: (ufd, otmr) +syscall sys_signalfd4 nr 313 nbargs 4 types: (int, sigset_t *, size_t, int) args: (ufd, user_mask, sizemask, flags) +syscall sys_eventfd2 nr 314 nbargs 2 types: (unsigned int, int) args: (count, flags) +syscall sys_epoll_create1 nr 315 nbargs 1 types: (int) args: (flags) +syscall sys_dup3 nr 316 nbargs 3 types: (unsigned int, unsigned int, int) args: (oldfd, newfd, flags) +syscall sys_pipe2 nr 317 nbargs 2 types: (int *, int) args: (fildes, flags) +syscall sys_inotify_init1 nr 318 nbargs 1 types: (int) args: (flags) +syscall sys_perf_event_open nr 319 nbargs 5 types: (struct perf_event_attr *, pid_t, int, int, unsigned long) args: (attr_uptr, pid, cpu, group_fd, flags) +syscall sys_preadv nr 320 nbargs 5 types: (unsigned long, const struct iovec *, unsigned long, unsigned long, unsigned long) args: (fd, vec, vlen, pos_l, pos_h) +syscall sys_pwritev nr 321 nbargs 5 types: (unsigned long, const struct iovec *, unsigned long, unsigned long, unsigned long) args: (fd, vec, vlen, pos_l, pos_h) +syscall sys_rt_tgsigqueueinfo nr 322 nbargs 4 types: (pid_t, pid_t, int, siginfo_t *) args: (tgid, pid, sig, uinfo) +syscall sys_prlimit64 nr 325 nbargs 4 types: (pid_t, unsigned int, const struct rlimit64 *, struct rlimit64 *) args: (pid, resource, new_rlim, old_rlim) +syscall sys_socket nr 326 nbargs 3 types: (int, int, int) args: (family, type, protocol) +syscall sys_bind nr 327 nbargs 3 types: (int, struct sockaddr *, int) args: (fd, umyaddr, addrlen) +syscall sys_connect nr 328 nbargs 3 types: (int, struct sockaddr *, int) args: (fd, uservaddr, addrlen) +syscall sys_listen nr 329 nbargs 2 types: (int, int) args: (fd, backlog) +syscall sys_accept nr 330 nbargs 3 types: (int, struct sockaddr *, int *) args: (fd, upeer_sockaddr, upeer_addrlen) +syscall sys_getsockname nr 331 nbargs 3 types: (int, struct sockaddr *, int *) args: (fd, usockaddr, usockaddr_len) +syscall sys_getpeername nr 332 nbargs 3 types: (int, struct sockaddr *, int *) args: (fd, usockaddr, usockaddr_len) +syscall sys_socketpair nr 333 nbargs 4 types: (int, int, int, int *) args: (family, type, protocol, usockvec) +syscall sys_send nr 334 nbargs 4 types: (int, void *, size_t, unsigned) args: (fd, buff, len, flags) +syscall sys_sendto nr 335 nbargs 6 types: (int, void *, size_t, unsigned, struct sockaddr *, int) args: (fd, buff, len, flags, addr, addr_len) +syscall sys_recvfrom nr 337 nbargs 6 types: (int, void *, size_t, unsigned, struct sockaddr *, int *) args: (fd, ubuf, size, flags, addr, addr_len) +syscall sys_shutdown nr 338 nbargs 2 types: (int, int) args: (fd, how) +syscall sys_setsockopt nr 339 nbargs 5 types: (int, int, int, char *, int) args: (fd, level, optname, optval, optlen) +syscall sys_getsockopt nr 340 nbargs 5 types: (int, int, int, char *, int *) args: (fd, level, optname, optval, optlen) +syscall sys_sendmsg nr 341 nbargs 3 types: (int, struct msghdr *, unsigned) args: (fd, msg, flags) +syscall sys_recvmsg nr 342 nbargs 3 types: (int, struct msghdr *, unsigned int) args: (fd, msg, flags) +syscall sys_recvmmsg nr 343 nbargs 5 types: (int, struct mmsghdr *, unsigned int, unsigned int, struct timespec *) args: (fd, mmsg, vlen, flags, timeout) +syscall sys_accept4 nr 344 nbargs 4 types: (int, struct sockaddr *, int *, int) args: (fd, upeer_sockaddr, upeer_addrlen, flags) +syscall sys_clock_adjtime nr 347 nbargs 2 types: (const clockid_t, struct timex *) args: (which_clock, utx) +syscall sys_syncfs nr 348 nbargs 1 types: (int) args: (fd) +syscall sys_sendmmsg nr 349 nbargs 4 types: (int, struct mmsghdr *, unsigned int, unsigned int) args: (fd, mmsg, vlen, flags) +syscall sys_setns nr 350 nbargs 2 types: (int, int) args: (fd, nstype) --- linux-3.11.0.orig/ubuntu/lttng/instrumentation/syscalls/3.4.25/arm-32-syscalls-3.4.25 +++ linux-3.11.0/ubuntu/lttng/instrumentation/syscalls/3.4.25/arm-32-syscalls-3.4.25 @@ -0,0 +1,299 @@ +syscall sys_restart_syscall nr 0 nbargs 0 types: () args: () +syscall sys_exit nr 1 nbargs 1 types: (int) args: (error_code) +syscall sys_read nr 3 nbargs 3 types: (unsigned int, char *, size_t) args: (fd, buf, count) +syscall sys_write nr 4 nbargs 3 types: (unsigned int, const char *, size_t) args: (fd, buf, count) +syscall sys_open nr 5 nbargs 3 types: (const char *, int, umode_t) args: (filename, flags, mode) +syscall sys_close nr 6 nbargs 1 types: (unsigned int) args: (fd) +syscall sys_creat nr 8 nbargs 2 types: (const char *, umode_t) args: (pathname, mode) +syscall sys_link nr 9 nbargs 2 types: (const char *, const char *) args: (oldname, newname) +syscall sys_unlink nr 10 nbargs 1 types: (const char *) args: (pathname) +syscall sys_chdir nr 12 nbargs 1 types: (const char *) args: (filename) +syscall sys_mknod nr 14 nbargs 3 types: (const char *, umode_t, unsigned) args: (filename, mode, dev) +syscall sys_chmod nr 15 nbargs 2 types: (const char *, umode_t) args: (filename, mode) +syscall sys_lchown16 nr 16 nbargs 3 types: (const char *, old_uid_t, old_gid_t) args: (filename, user, group) +syscall sys_lseek nr 19 nbargs 3 types: (unsigned int, off_t, unsigned int) args: (fd, offset, origin) +syscall sys_getpid nr 20 nbargs 0 types: () args: () +syscall sys_mount nr 21 nbargs 5 types: (char *, char *, char *, unsigned long, void *) args: (dev_name, dir_name, type, flags, data) +syscall sys_setuid16 nr 23 nbargs 1 types: (old_uid_t) args: (uid) +syscall sys_getuid16 nr 24 nbargs 0 types: () args: () +syscall sys_ptrace nr 26 nbargs 4 types: (long, long, unsigned long, unsigned long) args: (request, pid, addr, data) +syscall sys_pause nr 29 nbargs 0 types: () args: () +syscall sys_access nr 33 nbargs 2 types: (const char *, int) args: (filename, mode) +syscall sys_nice nr 34 nbargs 1 types: (int) args: (increment) +syscall sys_sync nr 36 nbargs 0 types: () args: () +syscall sys_kill nr 37 nbargs 2 types: (pid_t, int) args: (pid, sig) +syscall sys_rename nr 38 nbargs 2 types: (const char *, const char *) args: (oldname, newname) +syscall sys_mkdir nr 39 nbargs 2 types: (const char *, umode_t) args: (pathname, mode) +syscall sys_rmdir nr 40 nbargs 1 types: (const char *) args: (pathname) +syscall sys_dup nr 41 nbargs 1 types: (unsigned int) args: (fildes) +syscall sys_pipe nr 42 nbargs 1 types: (int *) args: (fildes) +syscall sys_times nr 43 nbargs 1 types: (struct tms *) args: (tbuf) +syscall sys_brk nr 45 nbargs 1 types: (unsigned long) args: (brk) +syscall sys_setgid16 nr 46 nbargs 1 types: (old_gid_t) args: (gid) +syscall sys_getgid16 nr 47 nbargs 0 types: () args: () +syscall sys_geteuid16 nr 49 nbargs 0 types: () args: () +syscall sys_getegid16 nr 50 nbargs 0 types: () args: () +syscall sys_acct nr 51 nbargs 1 types: (const char *) args: (name) +syscall sys_umount nr 52 nbargs 2 types: (char *, int) args: (name, flags) +syscall sys_ioctl nr 54 nbargs 3 types: (unsigned int, unsigned int, unsigned long) args: (fd, cmd, arg) +syscall sys_fcntl nr 55 nbargs 3 types: (unsigned int, unsigned int, unsigned long) args: (fd, cmd, arg) +syscall sys_setpgid nr 57 nbargs 2 types: (pid_t, pid_t) args: (pid, pgid) +syscall sys_umask nr 60 nbargs 1 types: (int) args: (mask) +syscall sys_chroot nr 61 nbargs 1 types: (const char *) args: (filename) +syscall sys_ustat nr 62 nbargs 2 types: (unsigned, struct ustat *) args: (dev, ubuf) +syscall sys_dup2 nr 63 nbargs 2 types: (unsigned int, unsigned int) args: (oldfd, newfd) +syscall sys_getppid nr 64 nbargs 0 types: () args: () +syscall sys_getpgrp nr 65 nbargs 0 types: () args: () +syscall sys_setsid nr 66 nbargs 0 types: () args: () +syscall sys_setreuid16 nr 70 nbargs 2 types: (old_uid_t, old_uid_t) args: (ruid, euid) +syscall sys_setregid16 nr 71 nbargs 2 types: (old_gid_t, old_gid_t) args: (rgid, egid) +syscall sys_sigpending nr 73 nbargs 1 types: (old_sigset_t *) args: (set) +syscall sys_sethostname nr 74 nbargs 2 types: (char *, int) args: (name, len) +syscall sys_setrlimit nr 75 nbargs 2 types: (unsigned int, struct rlimit *) args: (resource, rlim) +syscall sys_getrusage nr 77 nbargs 2 types: (int, struct rusage *) args: (who, ru) +syscall sys_gettimeofday nr 78 nbargs 2 types: (struct timeval *, struct timezone *) args: (tv, tz) +syscall sys_settimeofday nr 79 nbargs 2 types: (struct timeval *, struct timezone *) args: (tv, tz) +syscall sys_getgroups16 nr 80 nbargs 2 types: (int, old_gid_t *) args: (gidsetsize, grouplist) +syscall sys_setgroups16 nr 81 nbargs 2 types: (int, old_gid_t *) args: (gidsetsize, grouplist) +syscall sys_symlink nr 83 nbargs 2 types: (const char *, const char *) args: (oldname, newname) +syscall sys_readlink nr 85 nbargs 3 types: (const char *, char *, int) args: (path, buf, bufsiz) +syscall sys_uselib nr 86 nbargs 1 types: (const char *) args: (library) +syscall sys_swapon nr 87 nbargs 2 types: (const char *, int) args: (specialfile, swap_flags) +syscall sys_reboot nr 88 nbargs 4 types: (int, int, unsigned int, void *) args: (magic1, magic2, cmd, arg) +syscall sys_munmap nr 91 nbargs 2 types: (unsigned long, size_t) args: (addr, len) +syscall sys_truncate nr 92 nbargs 2 types: (const char *, long) args: (path, length) +syscall sys_ftruncate nr 93 nbargs 2 types: (unsigned int, unsigned long) args: (fd, length) +syscall sys_fchmod nr 94 nbargs 2 types: (unsigned int, umode_t) args: (fd, mode) +syscall sys_fchown16 nr 95 nbargs 3 types: (unsigned int, old_uid_t, old_gid_t) args: (fd, user, group) +syscall sys_getpriority nr 96 nbargs 2 types: (int, int) args: (which, who) +syscall sys_setpriority nr 97 nbargs 3 types: (int, int, int) args: (which, who, niceval) +syscall sys_statfs nr 99 nbargs 2 types: (const char *, struct statfs *) args: (pathname, buf) +syscall sys_fstatfs nr 100 nbargs 2 types: (unsigned int, struct statfs *) args: (fd, buf) +syscall sys_syslog nr 103 nbargs 3 types: (int, char *, int) args: (type, buf, len) +syscall sys_setitimer nr 104 nbargs 3 types: (int, struct itimerval *, struct itimerval *) args: (which, value, ovalue) +syscall sys_getitimer nr 105 nbargs 2 types: (int, struct itimerval *) args: (which, value) +syscall sys_newstat nr 106 nbargs 2 types: (const char *, struct stat *) args: (filename, statbuf) +syscall sys_newlstat nr 107 nbargs 2 types: (const char *, struct stat *) args: (filename, statbuf) +syscall sys_newfstat nr 108 nbargs 2 types: (unsigned int, struct stat *) args: (fd, statbuf) +syscall sys_vhangup nr 111 nbargs 0 types: () args: () +syscall sys_wait4 nr 114 nbargs 4 types: (pid_t, int *, int, struct rusage *) args: (upid, stat_addr, options, ru) +syscall sys_swapoff nr 115 nbargs 1 types: (const char *) args: (specialfile) +syscall sys_sysinfo nr 116 nbargs 1 types: (struct sysinfo *) args: (info) +syscall sys_fsync nr 118 nbargs 1 types: (unsigned int) args: (fd) +syscall sys_setdomainname nr 121 nbargs 2 types: (char *, int) args: (name, len) +syscall sys_newuname nr 122 nbargs 1 types: (struct new_utsname *) args: (name) +syscall sys_adjtimex nr 124 nbargs 1 types: (struct timex *) args: (txc_p) +syscall sys_mprotect nr 125 nbargs 3 types: (unsigned long, size_t, unsigned long) args: (start, len, prot) +syscall sys_sigprocmask nr 126 nbargs 3 types: (int, old_sigset_t *, old_sigset_t *) args: (how, nset, oset) +syscall sys_init_module nr 128 nbargs 3 types: (void *, unsigned long, const char *) args: (umod, len, uargs) +syscall sys_delete_module nr 129 nbargs 2 types: (const char *, unsigned int) args: (name_user, flags) +syscall sys_quotactl nr 131 nbargs 4 types: (unsigned int, const char *, qid_t, void *) args: (cmd, special, id, addr) +syscall sys_getpgid nr 132 nbargs 1 types: (pid_t) args: (pid) +syscall sys_fchdir nr 133 nbargs 1 types: (unsigned int) args: (fd) +syscall sys_bdflush nr 134 nbargs 2 types: (int, long) args: (func, data) +syscall sys_sysfs nr 135 nbargs 3 types: (int, unsigned long, unsigned long) args: (option, arg1, arg2) +syscall sys_personality nr 136 nbargs 1 types: (unsigned int) args: (personality) +syscall sys_setfsuid16 nr 138 nbargs 1 types: (old_uid_t) args: (uid) +syscall sys_setfsgid16 nr 139 nbargs 1 types: (old_gid_t) args: (gid) +syscall sys_llseek nr 140 nbargs 5 types: (unsigned int, unsigned long, unsigned long, loff_t *, unsigned int) args: (fd, offset_high, offset_low, result, origin) +syscall sys_getdents nr 141 nbargs 3 types: (unsigned int, struct linux_dirent *, unsigned int) args: (fd, dirent, count) +syscall sys_select nr 142 nbargs 5 types: (int, fd_set *, fd_set *, fd_set *, struct timeval *) args: (n, inp, outp, exp, tvp) +syscall sys_flock nr 143 nbargs 2 types: (unsigned int, unsigned int) args: (fd, cmd) +syscall sys_msync nr 144 nbargs 3 types: (unsigned long, size_t, int) args: (start, len, flags) +syscall sys_readv nr 145 nbargs 3 types: (unsigned long, const struct iovec *, unsigned long) args: (fd, vec, vlen) +syscall sys_writev nr 146 nbargs 3 types: (unsigned long, const struct iovec *, unsigned long) args: (fd, vec, vlen) +syscall sys_getsid nr 147 nbargs 1 types: (pid_t) args: (pid) +syscall sys_fdatasync nr 148 nbargs 1 types: (unsigned int) args: (fd) +syscall sys_sysctl nr 149 nbargs 1 types: (struct __sysctl_args *) args: (args) +syscall sys_mlock nr 150 nbargs 2 types: (unsigned long, size_t) args: (start, len) +syscall sys_munlock nr 151 nbargs 2 types: (unsigned long, size_t) args: (start, len) +syscall sys_mlockall nr 152 nbargs 1 types: (int) args: (flags) +syscall sys_munlockall nr 153 nbargs 0 types: () args: () +syscall sys_sched_setparam nr 154 nbargs 2 types: (pid_t, struct sched_param *) args: (pid, param) +syscall sys_sched_getparam nr 155 nbargs 2 types: (pid_t, struct sched_param *) args: (pid, param) +syscall sys_sched_setscheduler nr 156 nbargs 3 types: (pid_t, int, struct sched_param *) args: (pid, policy, param) +syscall sys_sched_getscheduler nr 157 nbargs 1 types: (pid_t) args: (pid) +syscall sys_sched_yield nr 158 nbargs 0 types: () args: () +syscall sys_sched_get_priority_max nr 159 nbargs 1 types: (int) args: (policy) +syscall sys_sched_get_priority_min nr 160 nbargs 1 types: (int) args: (policy) +syscall sys_sched_rr_get_interval nr 161 nbargs 2 types: (pid_t, struct timespec *) args: (pid, interval) +syscall sys_nanosleep nr 162 nbargs 2 types: (struct timespec *, struct timespec *) args: (rqtp, rmtp) +syscall sys_mremap nr 163 nbargs 5 types: (unsigned long, unsigned long, unsigned long, unsigned long, unsigned long) args: (addr, old_len, new_len, flags, new_addr) +syscall sys_setresuid16 nr 164 nbargs 3 types: (old_uid_t, old_uid_t, old_uid_t) args: (ruid, euid, suid) +syscall sys_getresuid16 nr 165 nbargs 3 types: (old_uid_t *, old_uid_t *, old_uid_t *) args: (ruid, euid, suid) +syscall sys_poll nr 168 nbargs 3 types: (struct pollfd *, unsigned int, int) args: (ufds, nfds, timeout_msecs) +syscall sys_setresgid16 nr 170 nbargs 3 types: (old_gid_t, old_gid_t, old_gid_t) args: (rgid, egid, sgid) +syscall sys_getresgid16 nr 171 nbargs 3 types: (old_gid_t *, old_gid_t *, old_gid_t *) args: (rgid, egid, sgid) +syscall sys_prctl nr 172 nbargs 5 types: (int, unsigned long, unsigned long, unsigned long, unsigned long) args: (option, arg2, arg3, arg4, arg5) +syscall sys_rt_sigaction nr 174 nbargs 4 types: (int, const struct sigaction *, struct sigaction *, size_t) args: (sig, act, oact, sigsetsize) +syscall sys_rt_sigprocmask nr 175 nbargs 4 types: (int, sigset_t *, sigset_t *, size_t) args: (how, nset, oset, sigsetsize) +syscall sys_rt_sigpending nr 176 nbargs 2 types: (sigset_t *, size_t) args: (set, sigsetsize) +syscall sys_rt_sigtimedwait nr 177 nbargs 4 types: (const sigset_t *, siginfo_t *, const struct timespec *, size_t) args: (uthese, uinfo, uts, sigsetsize) +syscall sys_rt_sigqueueinfo nr 178 nbargs 3 types: (pid_t, int, siginfo_t *) args: (pid, sig, uinfo) +syscall sys_rt_sigsuspend nr 179 nbargs 2 types: (sigset_t *, size_t) args: (unewset, sigsetsize) +syscall sys_chown16 nr 182 nbargs 3 types: (const char *, old_uid_t, old_gid_t) args: (filename, user, group) +syscall sys_getcwd nr 183 nbargs 2 types: (char *, unsigned long) args: (buf, size) +syscall sys_capget nr 184 nbargs 2 types: (cap_user_header_t, cap_user_data_t) args: (header, dataptr) +syscall sys_capset nr 185 nbargs 2 types: (cap_user_header_t, const cap_user_data_t) args: (header, data) +syscall sys_sendfile nr 187 nbargs 4 types: (int, int, off_t *, size_t) args: (out_fd, in_fd, offset, count) +syscall sys_getrlimit nr 191 nbargs 2 types: (unsigned int, struct rlimit *) args: (resource, rlim) +syscall sys_stat64 nr 195 nbargs 2 types: (const char *, struct stat64 *) args: (filename, statbuf) +syscall sys_lstat64 nr 196 nbargs 2 types: (const char *, struct stat64 *) args: (filename, statbuf) +syscall sys_fstat64 nr 197 nbargs 2 types: (unsigned long, struct stat64 *) args: (fd, statbuf) +syscall sys_lchown nr 198 nbargs 3 types: (const char *, uid_t, gid_t) args: (filename, user, group) +syscall sys_getuid nr 199 nbargs 0 types: () args: () +syscall sys_getgid nr 200 nbargs 0 types: () args: () +syscall sys_geteuid nr 201 nbargs 0 types: () args: () +syscall sys_getegid nr 202 nbargs 0 types: () args: () +syscall sys_setreuid nr 203 nbargs 2 types: (uid_t, uid_t) args: (ruid, euid) +syscall sys_setregid nr 204 nbargs 2 types: (gid_t, gid_t) args: (rgid, egid) +syscall sys_getgroups nr 205 nbargs 2 types: (int, gid_t *) args: (gidsetsize, grouplist) +syscall sys_setgroups nr 206 nbargs 2 types: (int, gid_t *) args: (gidsetsize, grouplist) +syscall sys_fchown nr 207 nbargs 3 types: (unsigned int, uid_t, gid_t) args: (fd, user, group) +syscall sys_setresuid nr 208 nbargs 3 types: (uid_t, uid_t, uid_t) args: (ruid, euid, suid) +syscall sys_getresuid nr 209 nbargs 3 types: (uid_t *, uid_t *, uid_t *) args: (ruid, euid, suid) +syscall sys_setresgid nr 210 nbargs 3 types: (gid_t, gid_t, gid_t) args: (rgid, egid, sgid) +syscall sys_getresgid nr 211 nbargs 3 types: (gid_t *, gid_t *, gid_t *) args: (rgid, egid, sgid) +syscall sys_chown nr 212 nbargs 3 types: (const char *, uid_t, gid_t) args: (filename, user, group) +syscall sys_setuid nr 213 nbargs 1 types: (uid_t) args: (uid) +syscall sys_setgid nr 214 nbargs 1 types: (gid_t) args: (gid) +syscall sys_setfsuid nr 215 nbargs 1 types: (uid_t) args: (uid) +syscall sys_setfsgid nr 216 nbargs 1 types: (gid_t) args: (gid) +syscall sys_getdents64 nr 217 nbargs 3 types: (unsigned int, struct linux_dirent64 *, unsigned int) args: (fd, dirent, count) +syscall sys_pivot_root nr 218 nbargs 2 types: (const char *, const char *) args: (new_root, put_old) +syscall sys_mincore nr 219 nbargs 3 types: (unsigned long, size_t, unsigned char *) args: (start, len, vec) +syscall sys_madvise nr 220 nbargs 3 types: (unsigned long, size_t, int) args: (start, len_in, behavior) +syscall sys_fcntl64 nr 221 nbargs 3 types: (unsigned int, unsigned int, unsigned long) args: (fd, cmd, arg) +syscall sys_gettid nr 224 nbargs 0 types: () args: () +syscall sys_setxattr nr 226 nbargs 5 types: (const char *, const char *, const void *, size_t, int) args: (pathname, name, value, size, flags) +syscall sys_lsetxattr nr 227 nbargs 5 types: (const char *, const char *, const void *, size_t, int) args: (pathname, name, value, size, flags) +syscall sys_fsetxattr nr 228 nbargs 5 types: (int, const char *, const void *, size_t, int) args: (fd, name, value, size, flags) +syscall sys_getxattr nr 229 nbargs 4 types: (const char *, const char *, void *, size_t) args: (pathname, name, value, size) +syscall sys_lgetxattr nr 230 nbargs 4 types: (const char *, const char *, void *, size_t) args: (pathname, name, value, size) +syscall sys_fgetxattr nr 231 nbargs 4 types: (int, const char *, void *, size_t) args: (fd, name, value, size) +syscall sys_listxattr nr 232 nbargs 3 types: (const char *, char *, size_t) args: (pathname, list, size) +syscall sys_llistxattr nr 233 nbargs 3 types: (const char *, char *, size_t) args: (pathname, list, size) +syscall sys_flistxattr nr 234 nbargs 3 types: (int, char *, size_t) args: (fd, list, size) +syscall sys_removexattr nr 235 nbargs 2 types: (const char *, const char *) args: (pathname, name) +syscall sys_lremovexattr nr 236 nbargs 2 types: (const char *, const char *) args: (pathname, name) +syscall sys_fremovexattr nr 237 nbargs 2 types: (int, const char *) args: (fd, name) +syscall sys_tkill nr 238 nbargs 2 types: (pid_t, int) args: (pid, sig) +syscall sys_sendfile64 nr 239 nbargs 4 types: (int, int, loff_t *, size_t) args: (out_fd, in_fd, offset, count) +syscall sys_futex nr 240 nbargs 6 types: (u32 *, int, u32, struct timespec *, u32 *, u32) args: (uaddr, op, val, utime, uaddr2, val3) +syscall sys_sched_setaffinity nr 241 nbargs 3 types: (pid_t, unsigned int, unsigned long *) args: (pid, len, user_mask_ptr) +syscall sys_sched_getaffinity nr 242 nbargs 3 types: (pid_t, unsigned int, unsigned long *) args: (pid, len, user_mask_ptr) +syscall sys_io_setup nr 243 nbargs 2 types: (unsigned, aio_context_t *) args: (nr_events, ctxp) +syscall sys_io_destroy nr 244 nbargs 1 types: (aio_context_t) args: (ctx) +syscall sys_io_getevents nr 245 nbargs 5 types: (aio_context_t, long, long, struct io_event *, struct timespec *) args: (ctx_id, min_nr, nr, events, timeout) +syscall sys_io_submit nr 246 nbargs 3 types: (aio_context_t, long, struct iocb * *) args: (ctx_id, nr, iocbpp) +syscall sys_io_cancel nr 247 nbargs 3 types: (aio_context_t, struct iocb *, struct io_event *) args: (ctx_id, iocb, result) +syscall sys_exit_group nr 248 nbargs 1 types: (int) args: (error_code) +syscall sys_epoll_create nr 250 nbargs 1 types: (int) args: (size) +syscall sys_epoll_ctl nr 251 nbargs 4 types: (int, int, int, struct epoll_event *) args: (epfd, op, fd, event) +syscall sys_epoll_wait nr 252 nbargs 4 types: (int, struct epoll_event *, int, int) args: (epfd, events, maxevents, timeout) +syscall sys_remap_file_pages nr 253 nbargs 5 types: (unsigned long, unsigned long, unsigned long, unsigned long, unsigned long) args: (start, size, prot, pgoff, flags) +syscall sys_set_tid_address nr 256 nbargs 1 types: (int *) args: (tidptr) +syscall sys_timer_create nr 257 nbargs 3 types: (const clockid_t, struct sigevent *, timer_t *) args: (which_clock, timer_event_spec, created_timer_id) +syscall sys_timer_settime nr 258 nbargs 4 types: (timer_t, int, const struct itimerspec *, struct itimerspec *) args: (timer_id, flags, new_setting, old_setting) +syscall sys_timer_gettime nr 259 nbargs 2 types: (timer_t, struct itimerspec *) args: (timer_id, setting) +syscall sys_timer_getoverrun nr 260 nbargs 1 types: (timer_t) args: (timer_id) +syscall sys_timer_delete nr 261 nbargs 1 types: (timer_t) args: (timer_id) +syscall sys_clock_settime nr 262 nbargs 2 types: (const clockid_t, const struct timespec *) args: (which_clock, tp) +syscall sys_clock_gettime nr 263 nbargs 2 types: (const clockid_t, struct timespec *) args: (which_clock, tp) +syscall sys_clock_getres nr 264 nbargs 2 types: (const clockid_t, struct timespec *) args: (which_clock, tp) +syscall sys_clock_nanosleep nr 265 nbargs 4 types: (const clockid_t, int, const struct timespec *, struct timespec *) args: (which_clock, flags, rqtp, rmtp) +syscall sys_tgkill nr 268 nbargs 3 types: (pid_t, pid_t, int) args: (tgid, pid, sig) +syscall sys_utimes nr 269 nbargs 2 types: (char *, struct timeval *) args: (filename, utimes) +syscall sys_mq_open nr 274 nbargs 4 types: (const char *, int, umode_t, struct mq_attr *) args: (u_name, oflag, mode, u_attr) +syscall sys_mq_unlink nr 275 nbargs 1 types: (const char *) args: (u_name) +syscall sys_mq_timedsend nr 276 nbargs 5 types: (mqd_t, const char *, size_t, unsigned int, const struct timespec *) args: (mqdes, u_msg_ptr, msg_len, msg_prio, u_abs_timeout) +syscall sys_mq_timedreceive nr 277 nbargs 5 types: (mqd_t, char *, size_t, unsigned int *, const struct timespec *) args: (mqdes, u_msg_ptr, msg_len, u_msg_prio, u_abs_timeout) +syscall sys_mq_notify nr 278 nbargs 2 types: (mqd_t, const struct sigevent *) args: (mqdes, u_notification) +syscall sys_mq_getsetattr nr 279 nbargs 3 types: (mqd_t, const struct mq_attr *, struct mq_attr *) args: (mqdes, u_mqstat, u_omqstat) +syscall sys_waitid nr 280 nbargs 5 types: (int, pid_t, struct siginfo *, int, struct rusage *) args: (which, upid, infop, options, ru) +syscall sys_socket nr 281 nbargs 3 types: (int, int, int) args: (family, type, protocol) +syscall sys_bind nr 282 nbargs 3 types: (int, struct sockaddr *, int) args: (fd, umyaddr, addrlen) +syscall sys_connect nr 283 nbargs 3 types: (int, struct sockaddr *, int) args: (fd, uservaddr, addrlen) +syscall sys_listen nr 284 nbargs 2 types: (int, int) args: (fd, backlog) +syscall sys_accept nr 285 nbargs 3 types: (int, struct sockaddr *, int *) args: (fd, upeer_sockaddr, upeer_addrlen) +syscall sys_getsockname nr 286 nbargs 3 types: (int, struct sockaddr *, int *) args: (fd, usockaddr, usockaddr_len) +syscall sys_getpeername nr 287 nbargs 3 types: (int, struct sockaddr *, int *) args: (fd, usockaddr, usockaddr_len) +syscall sys_socketpair nr 288 nbargs 4 types: (int, int, int, int *) args: (family, type, protocol, usockvec) +syscall sys_send nr 289 nbargs 4 types: (int, void *, size_t, unsigned) args: (fd, buff, len, flags) +syscall sys_sendto nr 290 nbargs 6 types: (int, void *, size_t, unsigned, struct sockaddr *, int) args: (fd, buff, len, flags, addr, addr_len) +syscall sys_recvfrom nr 292 nbargs 6 types: (int, void *, size_t, unsigned, struct sockaddr *, int *) args: (fd, ubuf, size, flags, addr, addr_len) +syscall sys_shutdown nr 293 nbargs 2 types: (int, int) args: (fd, how) +syscall sys_setsockopt nr 294 nbargs 5 types: (int, int, int, char *, int) args: (fd, level, optname, optval, optlen) +syscall sys_getsockopt nr 295 nbargs 5 types: (int, int, int, char *, int *) args: (fd, level, optname, optval, optlen) +syscall sys_sendmsg nr 296 nbargs 3 types: (int, struct msghdr *, unsigned) args: (fd, msg, flags) +syscall sys_recvmsg nr 297 nbargs 3 types: (int, struct msghdr *, unsigned int) args: (fd, msg, flags) +syscall sys_semop nr 298 nbargs 3 types: (int, struct sembuf *, unsigned) args: (semid, tsops, nsops) +syscall sys_semget nr 299 nbargs 3 types: (key_t, int, int) args: (key, nsems, semflg) +syscall sys_msgsnd nr 301 nbargs 4 types: (int, struct msgbuf *, size_t, int) args: (msqid, msgp, msgsz, msgflg) +syscall sys_msgrcv nr 302 nbargs 5 types: (int, struct msgbuf *, size_t, long, int) args: (msqid, msgp, msgsz, msgtyp, msgflg) +syscall sys_msgget nr 303 nbargs 2 types: (key_t, int) args: (key, msgflg) +syscall sys_msgctl nr 304 nbargs 3 types: (int, int, struct msqid_ds *) args: (msqid, cmd, buf) +syscall sys_shmat nr 305 nbargs 3 types: (int, char *, int) args: (shmid, shmaddr, shmflg) +syscall sys_shmdt nr 306 nbargs 1 types: (char *) args: (shmaddr) +syscall sys_shmget nr 307 nbargs 3 types: (key_t, size_t, int) args: (key, size, shmflg) +syscall sys_shmctl nr 308 nbargs 3 types: (int, int, struct shmid_ds *) args: (shmid, cmd, buf) +syscall sys_add_key nr 309 nbargs 5 types: (const char *, const char *, const void *, size_t, key_serial_t) args: (_type, _description, _payload, plen, ringid) +syscall sys_request_key nr 310 nbargs 4 types: (const char *, const char *, const char *, key_serial_t) args: (_type, _description, _callout_info, destringid) +syscall sys_keyctl nr 311 nbargs 5 types: (int, unsigned long, unsigned long, unsigned long, unsigned long) args: (option, arg2, arg3, arg4, arg5) +syscall sys_semtimedop nr 312 nbargs 4 types: (int, struct sembuf *, unsigned, const struct timespec *) args: (semid, tsops, nsops, timeout) +syscall sys_ioprio_set nr 314 nbargs 3 types: (int, int, int) args: (which, who, ioprio) +syscall sys_ioprio_get nr 315 nbargs 2 types: (int, int) args: (which, who) +syscall sys_inotify_init nr 316 nbargs 0 types: () args: () +syscall sys_inotify_add_watch nr 317 nbargs 3 types: (int, const char *, u32) args: (fd, pathname, mask) +syscall sys_inotify_rm_watch nr 318 nbargs 2 types: (int, __s32) args: (fd, wd) +syscall sys_openat nr 322 nbargs 4 types: (int, const char *, int, umode_t) args: (dfd, filename, flags, mode) +syscall sys_mkdirat nr 323 nbargs 3 types: (int, const char *, umode_t) args: (dfd, pathname, mode) +syscall sys_mknodat nr 324 nbargs 4 types: (int, const char *, umode_t, unsigned) args: (dfd, filename, mode, dev) +syscall sys_fchownat nr 325 nbargs 5 types: (int, const char *, uid_t, gid_t, int) args: (dfd, filename, user, group, flag) +syscall sys_futimesat nr 326 nbargs 3 types: (int, const char *, struct timeval *) args: (dfd, filename, utimes) +syscall sys_fstatat64 nr 327 nbargs 4 types: (int, const char *, struct stat64 *, int) args: (dfd, filename, statbuf, flag) +syscall sys_unlinkat nr 328 nbargs 3 types: (int, const char *, int) args: (dfd, pathname, flag) +syscall sys_renameat nr 329 nbargs 4 types: (int, const char *, int, const char *) args: (olddfd, oldname, newdfd, newname) +syscall sys_linkat nr 330 nbargs 5 types: (int, const char *, int, const char *, int) args: (olddfd, oldname, newdfd, newname, flags) +syscall sys_symlinkat nr 331 nbargs 3 types: (const char *, int, const char *) args: (oldname, newdfd, newname) +syscall sys_readlinkat nr 332 nbargs 4 types: (int, const char *, char *, int) args: (dfd, pathname, buf, bufsiz) +syscall sys_fchmodat nr 333 nbargs 3 types: (int, const char *, umode_t) args: (dfd, filename, mode) +syscall sys_faccessat nr 334 nbargs 3 types: (int, const char *, int) args: (dfd, filename, mode) +syscall sys_pselect6 nr 335 nbargs 6 types: (int, fd_set *, fd_set *, fd_set *, struct timespec *, void *) args: (n, inp, outp, exp, tsp, sig) +syscall sys_ppoll nr 336 nbargs 5 types: (struct pollfd *, unsigned int, struct timespec *, const sigset_t *, size_t) args: (ufds, nfds, tsp, sigmask, sigsetsize) +syscall sys_unshare nr 337 nbargs 1 types: (unsigned long) args: (unshare_flags) +syscall sys_set_robust_list nr 338 nbargs 2 types: (struct robust_list_head *, size_t) args: (head, len) +syscall sys_get_robust_list nr 339 nbargs 3 types: (int, struct robust_list_head * *, size_t *) args: (pid, head_ptr, len_ptr) +syscall sys_splice nr 340 nbargs 6 types: (int, loff_t *, int, loff_t *, size_t, unsigned int) args: (fd_in, off_in, fd_out, off_out, len, flags) +syscall sys_tee nr 342 nbargs 4 types: (int, int, size_t, unsigned int) args: (fdin, fdout, len, flags) +syscall sys_vmsplice nr 343 nbargs 4 types: (int, const struct iovec *, unsigned long, unsigned int) args: (fd, iov, nr_segs, flags) +syscall sys_getcpu nr 345 nbargs 3 types: (unsigned *, unsigned *, struct getcpu_cache *) args: (cpup, nodep, unused) +syscall sys_epoll_pwait nr 346 nbargs 6 types: (int, struct epoll_event *, int, int, const sigset_t *, size_t) args: (epfd, events, maxevents, timeout, sigmask, sigsetsize) +syscall sys_utimensat nr 348 nbargs 4 types: (int, const char *, struct timespec *, int) args: (dfd, filename, utimes, flags) +syscall sys_signalfd nr 349 nbargs 3 types: (int, sigset_t *, size_t) args: (ufd, user_mask, sizemask) +syscall sys_timerfd_create nr 350 nbargs 2 types: (int, int) args: (clockid, flags) +syscall sys_eventfd nr 351 nbargs 1 types: (unsigned int) args: (count) +syscall sys_timerfd_settime nr 353 nbargs 4 types: (int, int, const struct itimerspec *, struct itimerspec *) args: (ufd, flags, utmr, otmr) +syscall sys_timerfd_gettime nr 354 nbargs 2 types: (int, struct itimerspec *) args: (ufd, otmr) +syscall sys_signalfd4 nr 355 nbargs 4 types: (int, sigset_t *, size_t, int) args: (ufd, user_mask, sizemask, flags) +syscall sys_eventfd2 nr 356 nbargs 2 types: (unsigned int, int) args: (count, flags) +syscall sys_epoll_create1 nr 357 nbargs 1 types: (int) args: (flags) +syscall sys_dup3 nr 358 nbargs 3 types: (unsigned int, unsigned int, int) args: (oldfd, newfd, flags) +syscall sys_pipe2 nr 359 nbargs 2 types: (int *, int) args: (fildes, flags) +syscall sys_inotify_init1 nr 360 nbargs 1 types: (int) args: (flags) +syscall sys_preadv nr 361 nbargs 5 types: (unsigned long, const struct iovec *, unsigned long, unsigned long, unsigned long) args: (fd, vec, vlen, pos_l, pos_h) +syscall sys_pwritev nr 362 nbargs 5 types: (unsigned long, const struct iovec *, unsigned long, unsigned long, unsigned long) args: (fd, vec, vlen, pos_l, pos_h) +syscall sys_rt_tgsigqueueinfo nr 363 nbargs 4 types: (pid_t, pid_t, int, siginfo_t *) args: (tgid, pid, sig, uinfo) +syscall sys_perf_event_open nr 364 nbargs 5 types: (struct perf_event_attr *, pid_t, int, int, unsigned long) args: (attr_uptr, pid, cpu, group_fd, flags) +syscall sys_recvmmsg nr 365 nbargs 5 types: (int, struct mmsghdr *, unsigned int, unsigned int, struct timespec *) args: (fd, mmsg, vlen, flags, timeout) +syscall sys_accept4 nr 366 nbargs 4 types: (int, struct sockaddr *, int *, int) args: (fd, upeer_sockaddr, upeer_addrlen, flags) +syscall sys_fanotify_init nr 367 nbargs 2 types: (unsigned int, unsigned int) args: (flags, event_f_flags) +syscall sys_prlimit64 nr 369 nbargs 4 types: (pid_t, unsigned int, const struct rlimit64 *, struct rlimit64 *) args: (pid, resource, new_rlim, old_rlim) +syscall sys_name_to_handle_at nr 370 nbargs 5 types: (int, const char *, struct file_handle *, int *, int) args: (dfd, name, handle, mnt_id, flag) +syscall sys_open_by_handle_at nr 371 nbargs 3 types: (int, struct file_handle *, int) args: (mountdirfd, handle, flags) +syscall sys_clock_adjtime nr 372 nbargs 2 types: (const clockid_t, struct timex *) args: (which_clock, utx) +syscall sys_syncfs nr 373 nbargs 1 types: (int) args: (fd) +syscall sys_sendmmsg nr 374 nbargs 4 types: (int, struct mmsghdr *, unsigned int, unsigned int) args: (fd, mmsg, vlen, flags) +syscall sys_setns nr 375 nbargs 2 types: (int, int) args: (fd, nstype) +syscall sys_process_vm_readv nr 376 nbargs 6 types: (pid_t, const struct iovec *, unsigned long, const struct iovec *, unsigned long, unsigned long) args: (pid, lvec, liovcnt, rvec, riovcnt, flags) +syscall sys_process_vm_writev nr 377 nbargs 6 types: (pid_t, const struct iovec *, unsigned long, const struct iovec *, unsigned long, unsigned long) args: (pid, lvec, liovcnt, rvec, riovcnt, flags) --- linux-3.11.0.orig/ubuntu/lttng/probes/lttng-probe-btrfs.c +++ linux-3.11.0/ubuntu/lttng/probes/lttng-probe-btrfs.c @@ -0,0 +1,48 @@ +/* + * probes/lttng-probe-btrfs.c + * + * LTTng btrfs probes. + * + * Copyright (C) 2010-2012 Mathieu Desnoyers + * Copyright (C) 2012 Mentor Graphics Corp. + * + * 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; only + * version 2.1 of the License. + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include +#include +#include <../fs/btrfs/ctree.h> +#include <../fs/btrfs/transaction.h> +#include <../fs/btrfs/volumes.h> +#include + +/* + * Create the tracepoint static inlines from the kernel to validate that our + * trace event macros match the kernel we run on. + */ +#include + +/* + * Create LTTng tracepoint probes. + */ +#define LTTNG_PACKAGE_BUILD +#define CREATE_TRACE_POINTS +#define TRACE_INCLUDE_PATH ../instrumentation/events/lttng-module + +#include "../instrumentation/events/lttng-module/btrfs.h" + +MODULE_LICENSE("GPL and additional rights"); +MODULE_AUTHOR("Andrew Gabbasov "); +MODULE_DESCRIPTION("LTTng btrfs probes"); --- linux-3.11.0.orig/ubuntu/lttng/probes/lttng-probe-sched.c +++ linux-3.11.0/ubuntu/lttng/probes/lttng-probe-sched.c @@ -0,0 +1,44 @@ +/* + * probes/lttng-probe-sched.c + * + * LTTng sched probes. + * + * Copyright (C) 2010-2012 Mathieu Desnoyers + * + * 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; only + * version 2.1 of the License. + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include + +/* + * Create the tracepoint static inlines from the kernel to validate that our + * trace event macros match the kernel we run on. + */ +#include + +#include "../wrapper/tracepoint.h" + +/* + * Create LTTng tracepoint probes. + */ +#define LTTNG_PACKAGE_BUILD +#define CREATE_TRACE_POINTS +#define TRACE_INCLUDE_PATH ../instrumentation/events/lttng-module + +#include "../instrumentation/events/lttng-module/sched.h" + +MODULE_LICENSE("GPL and additional rights"); +MODULE_AUTHOR("Mathieu Desnoyers "); +MODULE_DESCRIPTION("LTTng sched probes"); --- linux-3.11.0.orig/ubuntu/lttng/probes/lttng.h +++ linux-3.11.0/ubuntu/lttng/probes/lttng.h @@ -0,0 +1,27 @@ +#ifndef _LTTNG_PROBES_LTTNG_H +#define _LTTNG_PROBES_LTTNG_H + +/* + * lttng.h + * + * Copyright (C) 2010-2012 Mathieu Desnoyers + * + * 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; only + * version 2.1 of the License. + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#undef PARAMS +#define PARAMS(args...) args + +#endif /* _LTTNG_PROBES_LTTNG_H */ --- linux-3.11.0.orig/ubuntu/lttng/probes/lttng-probe-statedump.c +++ linux-3.11.0/ubuntu/lttng/probes/lttng-probe-statedump.c @@ -0,0 +1,46 @@ +/* + * probes/lttng-probe-statedump.c + * + * LTTng statedump probes. + * + * Copyright (C) 2010-2012 Mathieu Desnoyers + * + * 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; only + * version 2.1 of the License. + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include "../lttng-events.h" + +/* + * Create LTTng tracepoint probes. + */ +#define LTTNG_PACKAGE_BUILD +#define CREATE_TRACE_POINTS +#define TP_SESSION_CHECK +#define TRACE_INCLUDE_PATH ../instrumentation/events/lttng-module +#define TRACE_INCLUDE_FILE lttng-statedump + +#include "../instrumentation/events/lttng-module/lttng-statedump.h" + +MODULE_LICENSE("GPL and additional rights"); +MODULE_AUTHOR("Mathieu Desnoyers "); +MODULE_DESCRIPTION("LTTng statedump probes"); --- linux-3.11.0.orig/ubuntu/lttng/probes/lttng-probe-irq.c +++ linux-3.11.0/ubuntu/lttng/probes/lttng-probe-irq.c @@ -0,0 +1,45 @@ +/* + * probes/lttng-probe-irq.c + * + * LTTng irq probes. + * + * Copyright (C) 2010-2012 Mathieu Desnoyers + * + * 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; only + * version 2.1 of the License. + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include +#include + +/* + * Create the tracepoint static inlines from the kernel to validate that our + * trace event macros match the kernel we run on. + */ +#include + +#include "../wrapper/tracepoint.h" + +/* + * Create LTTng tracepoint probes. + */ +#define LTTNG_PACKAGE_BUILD +#define CREATE_TRACE_POINTS +#define TRACE_INCLUDE_PATH ../instrumentation/events/lttng-module + +#include "../instrumentation/events/lttng-module/irq.h" + +MODULE_LICENSE("GPL and additional rights"); +MODULE_AUTHOR("Mathieu Desnoyers "); +MODULE_DESCRIPTION("LTTng irq probes"); --- linux-3.11.0.orig/ubuntu/lttng/probes/lttng-probe-net.c +++ linux-3.11.0/ubuntu/lttng/probes/lttng-probe-net.c @@ -0,0 +1,43 @@ +/* + * probes/lttng-probe-net.c + * + * LTTng net probes. + * + * Copyright (C) 2010-2012 Mathieu Desnoyers + * Copyright (C) 2012 Mentor Graphics Corp. + * + * 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; only + * version 2.1 of the License. + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include + +/* + * Create the tracepoint static inlines from the kernel to validate that our + * trace event macros match the kernel we run on. + */ +#include + +/* + * Create LTTng tracepoint probes. + */ +#define LTTNG_PACKAGE_BUILD +#define CREATE_TRACE_POINTS +#define TRACE_INCLUDE_PATH ../instrumentation/events/lttng-module + +#include "../instrumentation/events/lttng-module/net.h" + +MODULE_LICENSE("GPL and additional rights"); +MODULE_AUTHOR("Wade Farnsworth "); +MODULE_DESCRIPTION("LTTng net probes"); --- linux-3.11.0.orig/ubuntu/lttng/probes/lttng-probe-kmem.c +++ linux-3.11.0/ubuntu/lttng/probes/lttng-probe-kmem.c @@ -0,0 +1,45 @@ +/* + * probes/lttng-probe-kmem.c + * + * LTTng kmem probes. + * + * Copyright (C) 2010-2012 Mathieu Desnoyers + * Copyright (C) 2012 Mentor Graphics Corp. + * + * 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; only + * version 2.1 of the License. + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include + +/* + * Create the tracepoint static inlines from the kernel to validate that our + * trace event macros match the kernel we run on. + */ +#include + +#include "../wrapper/tracepoint.h" + +/* + * Create LTTng tracepoint probes. + */ +#define LTTNG_PACKAGE_BUILD +#define CREATE_TRACE_POINTS +#define TRACE_INCLUDE_PATH ../instrumentation/events/lttng-module + +#include "../instrumentation/events/lttng-module/kmem.h" + +MODULE_LICENSE("GPL and additional rights"); +MODULE_AUTHOR("Wade Farnsworth and Andrew Gabbasov "); +MODULE_DESCRIPTION("LTTng kmem probes"); --- linux-3.11.0.orig/ubuntu/lttng/probes/lttng-probe-random.c +++ linux-3.11.0/ubuntu/lttng/probes/lttng-probe-random.c @@ -0,0 +1,43 @@ +/* + * probes/lttng-probe-random.c + * + * LTTng random probes. + * + * Copyright (C) 2010-2012 Mathieu Desnoyers + * Copyright (C) 2012 Mentor Graphics Corp. + * + * 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; only + * version 2.1 of the License. + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include + +/* + * Create the tracepoint static inlines from the kernel to validate that our + * trace event macros match the kernel we run on. + */ +#include + +/* + * Create LTTng tracepoint probes. + */ +#define LTTNG_PACKAGE_BUILD +#define CREATE_TRACE_POINTS +#define TRACE_INCLUDE_PATH ../instrumentation/events/lttng-module + +#include "../instrumentation/events/lttng-module/random.h" + +MODULE_LICENSE("GPL and additional rights"); +MODULE_AUTHOR("Andrew Gabbasov "); +MODULE_DESCRIPTION("LTTng random probes"); --- linux-3.11.0.orig/ubuntu/lttng/probes/lttng-probe-writeback.c +++ linux-3.11.0/ubuntu/lttng/probes/lttng-probe-writeback.c @@ -0,0 +1,54 @@ +/* + * probes/lttng-probe-writeback.c + * + * LTTng writeback probes. + * + * Copyright (C) 2010-2012 Mathieu Desnoyers + * Copyright (C) 2012 Mentor Graphics Corp. + * + * 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; only + * version 2.1 of the License. + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include +#include +#include + +/* + * Create the tracepoint static inlines from the kernel to validate that our + * trace event macros match the kernel we run on. + */ +#include + +#include "../lttng-kernel-version.h" +#include "../wrapper/writeback.h" + +/* #if */ + +#define global_dirty_limit wrapper_global_dirty_limit() + +/* #endif */ + +/* + * Create LTTng tracepoint probes. + */ +#define LTTNG_PACKAGE_BUILD +#define CREATE_TRACE_POINTS +#define TRACE_INCLUDE_PATH ../instrumentation/events/lttng-module + +#include "../instrumentation/events/lttng-module/writeback.h" + +MODULE_LICENSE("GPL and additional rights"); +MODULE_AUTHOR("Andrew Gabbasov "); +MODULE_DESCRIPTION("LTTng writeback probes"); --- linux-3.11.0.orig/ubuntu/lttng/probes/lttng-probe-jbd2.c +++ linux-3.11.0/ubuntu/lttng/probes/lttng-probe-jbd2.c @@ -0,0 +1,45 @@ +/* + * probes/lttng-probe-jbd2.c + * + * LTTng jbd2 probes. + * + * Copyright (C) 2010-2012 Mathieu Desnoyers + * Copyright (C) 2012 Mentor Graphics Corp. + * + * 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; only + * version 2.1 of the License. + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include + +/* + * Create the tracepoint static inlines from the kernel to validate that our + * trace event macros match the kernel we run on. + */ +#include + +#include "../wrapper/tracepoint.h" + +/* + * Create LTTng tracepoint probes. + */ +#define LTTNG_PACKAGE_BUILD +#define CREATE_TRACE_POINTS +#define TRACE_INCLUDE_PATH ../instrumentation/events/lttng-module + +#include "../instrumentation/events/lttng-module/jbd2.h" + +MODULE_LICENSE("GPL and additional rights"); +MODULE_AUTHOR("Wade Farnsworth and Andrew Gabbasov "); +MODULE_DESCRIPTION("LTTng jbd2 probes"); --- linux-3.11.0.orig/ubuntu/lttng/probes/lttng-probe-lock.c +++ linux-3.11.0/ubuntu/lttng/probes/lttng-probe-lock.c @@ -0,0 +1,50 @@ +/* + * probes/lttng-probe-lock.c + * + * LTTng lock probes. + * + * Copyright (C) 2010-2012 Mathieu Desnoyers + * Copyright (C) 2012 Mentor Graphics Corp. + * + * 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; only + * version 2.1 of the License. + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include +#include + +/* + * Create the tracepoint static inlines from the kernel to validate that our + * trace event macros match the kernel we run on. + */ +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,33)) +#include +#else +#include +#endif + +#include "../wrapper/tracepoint.h" + +/* + * Create LTTng tracepoint probes. + */ +#define LTTNG_PACKAGE_BUILD +#define CREATE_TRACE_POINTS +#define TRACE_INCLUDE_PATH ../instrumentation/events/lttng-module + +#include "../instrumentation/events/lttng-module/lock.h" + +MODULE_LICENSE("GPL and additional rights"); +MODULE_AUTHOR("Wade Farnsworth and Andrew Gabbasov "); +MODULE_DESCRIPTION("LTTng lock probes"); --- linux-3.11.0.orig/ubuntu/lttng/probes/lttng-probe-gpio.c +++ linux-3.11.0/ubuntu/lttng/probes/lttng-probe-gpio.c @@ -0,0 +1,43 @@ +/* + * probes/lttng-probe-gpio.c + * + * LTTng gpio probes. + * + * Copyright (C) 2010-2012 Mathieu Desnoyers + * Copyright (C) 2012 Mentor Graphics Corp. + * + * 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; only + * version 2.1 of the License. + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include + +/* + * Create the tracepoint static inlines from the kernel to validate that our + * trace event macros match the kernel we run on. + */ +#include + +/* + * Create LTTng tracepoint probes. + */ +#define LTTNG_PACKAGE_BUILD +#define CREATE_TRACE_POINTS +#define TRACE_INCLUDE_PATH ../instrumentation/events/lttng-module + +#include "../instrumentation/events/lttng-module/gpio.h" + +MODULE_LICENSE("GPL and additional rights"); +MODULE_AUTHOR("Wade Farnsworth "); +MODULE_DESCRIPTION("LTTng gpio probes"); --- linux-3.11.0.orig/ubuntu/lttng/probes/lttng-kretprobes.c +++ linux-3.11.0/ubuntu/lttng/probes/lttng-kretprobes.c @@ -0,0 +1,290 @@ +/* + * probes/lttng-kretprobes.c + * + * LTTng kretprobes integration module. + * + * Copyright (C) 2009-2012 Mathieu Desnoyers + * + * 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; only + * version 2.1 of the License. + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include +#include +#include +#include +#include "../lttng-events.h" +#include "../wrapper/ringbuffer/frontend_types.h" +#include "../wrapper/vmalloc.h" +#include "../lttng-tracer.h" + +enum lttng_kretprobe_type { + EVENT_ENTRY = 0, + EVENT_RETURN = 1, +}; + +struct lttng_krp { + struct kretprobe krp; + struct lttng_event *event[2]; /* ENTRY and RETURN */ + struct kref kref_register; + struct kref kref_alloc; +}; + +static +int _lttng_kretprobes_handler(struct kretprobe_instance *krpi, + struct pt_regs *regs, + enum lttng_kretprobe_type type) +{ + struct lttng_krp *lttng_krp = + container_of(krpi->rp, struct lttng_krp, krp); + struct lttng_event *event = + lttng_krp->event[type]; + struct lttng_channel *chan = event->chan; + struct lib_ring_buffer_ctx ctx; + int ret; + struct { + unsigned long ip; + unsigned long parent_ip; + } payload; + + if (unlikely(!ACCESS_ONCE(chan->session->active))) + return 0; + if (unlikely(!ACCESS_ONCE(chan->enabled))) + return 0; + if (unlikely(!ACCESS_ONCE(event->enabled))) + return 0; + + payload.ip = (unsigned long) krpi->rp->kp.addr; + payload.parent_ip = (unsigned long) krpi->ret_addr; + + lib_ring_buffer_ctx_init(&ctx, chan->chan, event, sizeof(payload), + lttng_alignof(payload), -1); + ret = chan->ops->event_reserve(&ctx, event->id); + if (ret < 0) + return 0; + lib_ring_buffer_align_ctx(&ctx, lttng_alignof(payload)); + chan->ops->event_write(&ctx, &payload, sizeof(payload)); + chan->ops->event_commit(&ctx); + return 0; +} + +static +int lttng_kretprobes_handler_entry(struct kretprobe_instance *krpi, + struct pt_regs *regs) +{ + return _lttng_kretprobes_handler(krpi, regs, EVENT_ENTRY); +} + +static +int lttng_kretprobes_handler_return(struct kretprobe_instance *krpi, + struct pt_regs *regs) +{ + return _lttng_kretprobes_handler(krpi, regs, EVENT_RETURN); +} + +/* + * Create event description + */ +static +int lttng_create_kprobe_event(const char *name, struct lttng_event *event, + enum lttng_kretprobe_type type) +{ + struct lttng_event_field *fields; + struct lttng_event_desc *desc; + int ret; + char *alloc_name; + size_t name_len; + const char *suffix = NULL; + + desc = kzalloc(sizeof(*event->desc), GFP_KERNEL); + if (!desc) + return -ENOMEM; + name_len = strlen(name); + switch (type) { + case EVENT_ENTRY: + suffix = "_entry"; + break; + case EVENT_RETURN: + suffix = "_return"; + break; + } + name_len += strlen(suffix); + alloc_name = kmalloc(name_len + 1, GFP_KERNEL); + if (!alloc_name) { + ret = -ENOMEM; + goto error_str; + } + strcpy(alloc_name, name); + strcat(alloc_name, suffix); + desc->name = alloc_name; + desc->nr_fields = 2; + desc->fields = fields = + kzalloc(2 * sizeof(struct lttng_event_field), GFP_KERNEL); + if (!desc->fields) { + ret = -ENOMEM; + goto error_fields; + } + fields[0].name = "ip"; + fields[0].type.atype = atype_integer; + fields[0].type.u.basic.integer.size = sizeof(unsigned long) * CHAR_BIT; + fields[0].type.u.basic.integer.alignment = lttng_alignof(unsigned long) * CHAR_BIT; + fields[0].type.u.basic.integer.signedness = lttng_is_signed_type(unsigned long); + fields[0].type.u.basic.integer.reverse_byte_order = 0; + fields[0].type.u.basic.integer.base = 16; + fields[0].type.u.basic.integer.encoding = lttng_encode_none; + + fields[1].name = "parent_ip"; + fields[1].type.atype = atype_integer; + fields[1].type.u.basic.integer.size = sizeof(unsigned long) * CHAR_BIT; + fields[1].type.u.basic.integer.alignment = lttng_alignof(unsigned long) * CHAR_BIT; + fields[1].type.u.basic.integer.signedness = lttng_is_signed_type(unsigned long); + fields[1].type.u.basic.integer.reverse_byte_order = 0; + fields[1].type.u.basic.integer.base = 16; + fields[1].type.u.basic.integer.encoding = lttng_encode_none; + + desc->owner = THIS_MODULE; + event->desc = desc; + + return 0; + +error_fields: + kfree(desc->name); +error_str: + kfree(desc); + return ret; +} + +int lttng_kretprobes_register(const char *name, + const char *symbol_name, + uint64_t offset, + uint64_t addr, + struct lttng_event *event_entry, + struct lttng_event *event_return) +{ + int ret; + struct lttng_krp *lttng_krp; + + /* Kprobes expects a NULL symbol name if unused */ + if (symbol_name[0] == '\0') + symbol_name = NULL; + + ret = lttng_create_kprobe_event(name, event_entry, EVENT_ENTRY); + if (ret) + goto error; + ret = lttng_create_kprobe_event(name, event_return, EVENT_RETURN); + if (ret) + goto event_return_error; + lttng_krp = kzalloc(sizeof(*lttng_krp), GFP_KERNEL); + if (!lttng_krp) + goto krp_error; + lttng_krp->krp.entry_handler = lttng_kretprobes_handler_entry; + lttng_krp->krp.handler = lttng_kretprobes_handler_return; + if (symbol_name) { + char *alloc_symbol; + + alloc_symbol = kstrdup(symbol_name, GFP_KERNEL); + if (!alloc_symbol) { + ret = -ENOMEM; + goto name_error; + } + lttng_krp->krp.kp.symbol_name = + alloc_symbol; + event_entry->u.kretprobe.symbol_name = + alloc_symbol; + event_return->u.kretprobe.symbol_name = + alloc_symbol; + } + lttng_krp->krp.kp.offset = offset; + lttng_krp->krp.kp.addr = (void *) (unsigned long) addr; + + /* Allow probe handler to find event structures */ + lttng_krp->event[EVENT_ENTRY] = event_entry; + lttng_krp->event[EVENT_RETURN] = event_return; + event_entry->u.kretprobe.lttng_krp = lttng_krp; + event_return->u.kretprobe.lttng_krp = lttng_krp; + + /* + * Both events must be unregistered before the kretprobe is + * unregistered. Same for memory allocation. + */ + kref_init(<tng_krp->kref_alloc); + kref_get(<tng_krp->kref_alloc); /* inc refcount to 2 */ + kref_init(<tng_krp->kref_register); + kref_get(<tng_krp->kref_register); /* inc refcount to 2 */ + + /* + * Ensure the memory we just allocated don't trigger page faults. + * Well.. kprobes itself puts the page fault handler on the blacklist, + * but we can never be too careful. + */ + wrapper_vmalloc_sync_all(); + + ret = register_kretprobe(<tng_krp->krp); + if (ret) + goto register_error; + return 0; + +register_error: + kfree(lttng_krp->krp.kp.symbol_name); +name_error: + kfree(lttng_krp); +krp_error: + kfree(event_return->desc->fields); + kfree(event_return->desc->name); + kfree(event_return->desc); +event_return_error: + kfree(event_entry->desc->fields); + kfree(event_entry->desc->name); + kfree(event_entry->desc); +error: + return ret; +} +EXPORT_SYMBOL_GPL(lttng_kretprobes_register); + +static +void _lttng_kretprobes_unregister_release(struct kref *kref) +{ + struct lttng_krp *lttng_krp = + container_of(kref, struct lttng_krp, kref_register); + unregister_kretprobe(<tng_krp->krp); +} + +void lttng_kretprobes_unregister(struct lttng_event *event) +{ + kref_put(&event->u.kretprobe.lttng_krp->kref_register, + _lttng_kretprobes_unregister_release); +} +EXPORT_SYMBOL_GPL(lttng_kretprobes_unregister); + +static +void _lttng_kretprobes_release(struct kref *kref) +{ + struct lttng_krp *lttng_krp = + container_of(kref, struct lttng_krp, kref_alloc); + kfree(lttng_krp->krp.kp.symbol_name); +} + +void lttng_kretprobes_destroy_private(struct lttng_event *event) +{ + kfree(event->desc->fields); + kfree(event->desc->name); + kfree(event->desc); + kref_put(&event->u.kretprobe.lttng_krp->kref_alloc, + _lttng_kretprobes_release); +} +EXPORT_SYMBOL_GPL(lttng_kretprobes_destroy_private); + +MODULE_LICENSE("GPL and additional rights"); +MODULE_AUTHOR("Mathieu Desnoyers"); +MODULE_DESCRIPTION("Linux Trace Toolkit Kretprobes Support"); --- linux-3.11.0.orig/ubuntu/lttng/probes/lttng-probe-ext4.c +++ linux-3.11.0/ubuntu/lttng/probes/lttng-probe-ext4.c @@ -0,0 +1,51 @@ +/* + * probes/lttng-probe-ext4.c + * + * LTTng ext4 probes. + * + * Copyright (C) 2010-2012 Mathieu Desnoyers + * Copyright (C) 2012 Mentor Graphics Corp. + * + * 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; only + * version 2.1 of the License. + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include +#include +#include <../fs/ext4/ext4.h> +#include <../fs/ext4/mballoc.h> +#include <../fs/ext4/ext4_extents.h> +#include + +/* + * Create the tracepoint static inlines from the kernel to validate that our + * trace event macros match the kernel we run on. + */ +#include + +#include "../lttng-kernel-version.h" +#include "../wrapper/tracepoint.h" + +/* + * Create LTTng tracepoint probes. + */ +#define LTTNG_PACKAGE_BUILD +#define CREATE_TRACE_POINTS +#define TRACE_INCLUDE_PATH ../instrumentation/events/lttng-module + +#include "../instrumentation/events/lttng-module/ext4.h" + +MODULE_LICENSE("GPL and additional rights"); +MODULE_AUTHOR("Andrew Gabbasov "); +MODULE_DESCRIPTION("LTTng ext4 probes"); --- linux-3.11.0.orig/ubuntu/lttng/probes/lttng-probe-compaction.c +++ linux-3.11.0/ubuntu/lttng/probes/lttng-probe-compaction.c @@ -0,0 +1,43 @@ +/* + * probes/lttng-probe-compaction.c + * + * LTTng compaction probes. + * + * Copyright (C) 2010-2012 Mathieu Desnoyers + * Copyright (C) 2012 Mentor Graphics Corp. + * + * 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; only + * version 2.1 of the License. + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include + +/* + * Create the tracepoint static inlines from the kernel to validate that our + * trace event macros match the kernel we run on. + */ +#include + +/* + * Create LTTng tracepoint probes. + */ +#define LTTNG_PACKAGE_BUILD +#define CREATE_TRACE_POINTS +#define TRACE_INCLUDE_PATH ../instrumentation/events/lttng-module + +#include "../instrumentation/events/lttng-module/compaction.h" + +MODULE_LICENSE("GPL and additional rights"); +MODULE_AUTHOR("Andrew Gabbasov "); +MODULE_DESCRIPTION("LTTng compaction probes"); --- linux-3.11.0.orig/ubuntu/lttng/probes/lttng-types.c +++ linux-3.11.0/ubuntu/lttng/probes/lttng-types.c @@ -0,0 +1,61 @@ +/* + * probes/lttng-types.c + * + * LTTng types. + * + * Copyright (C) 2010-2012 Mathieu Desnoyers + * + * 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; only + * version 2.1 of the License. + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include +#include +#include "../wrapper/vmalloc.h" /* for wrapper_vmalloc_sync_all() */ +#include "../lttng-events.h" +#include "lttng-types.h" +#include + +#define STAGE_EXPORT_ENUMS +#include "lttng-types.h" +#include "lttng-type-list.h" +#undef STAGE_EXPORT_ENUMS + +struct lttng_enum lttng_enums[] = { +#define STAGE_EXPORT_TYPES +#include "lttng-types.h" +#include "lttng-type-list.h" +#undef STAGE_EXPORT_TYPES +}; + +static int lttng_types_init(void) +{ + int ret = 0; + + wrapper_vmalloc_sync_all(); + /* TODO */ + return ret; +} + +module_init(lttng_types_init); + +static void lttng_types_exit(void) +{ +} + +module_exit(lttng_types_exit); + +MODULE_LICENSE("GPL and additional rights"); +MODULE_AUTHOR("Mathieu Desnoyers "); +MODULE_DESCRIPTION("LTTng types"); --- linux-3.11.0.orig/ubuntu/lttng/probes/lttng-type-list.h +++ linux-3.11.0/ubuntu/lttng/probes/lttng-type-list.h @@ -0,0 +1,33 @@ +/* + * lttng-type-list.h + * + * Copyright (C) 2010-2012 Mathieu Desnoyers + * + * 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; only + * version 2.1 of the License. + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/* Type list, used to create metadata */ + +/* Enumerations */ +TRACE_EVENT_ENUM(hrtimer_mode, + V(HRTIMER_MODE_ABS), + V(HRTIMER_MODE_REL), + V(HRTIMER_MODE_PINNED), + V(HRTIMER_MODE_ABS_PINNED), + V(HRTIMER_MODE_REL_PINNED), + R(HRTIMER_MODE_UNDEFINED, 0x04, 0x20), /* Example (to remove) */ +) + +TRACE_EVENT_TYPE(hrtimer_mode, enum, unsigned char) --- linux-3.11.0.orig/ubuntu/lttng/probes/lttng-probe-user.c +++ linux-3.11.0/ubuntu/lttng/probes/lttng-probe-user.c @@ -0,0 +1,54 @@ +/* + * lttng-probe-user.c + * + * Copyright (C) 2012 Mathieu Desnoyers + * + * 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; only + * version 2.1 of the License. + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include +#include "lttng-probe-user.h" + +/* + * Calculate string length. Include final null terminating character if there is + * one, or ends at first fault. Disabling page faults ensures that we can safely + * call this from pretty much any context, including those where the caller + * holds mmap_sem, or any lock which nests in mmap_sem. + */ +long lttng_strlen_user_inatomic(const char *addr) +{ + long count = 0; + mm_segment_t old_fs = get_fs(); + + set_fs(KERNEL_DS); + pagefault_disable(); + for (;;) { + char v; + unsigned long ret; + + ret = __copy_from_user_inatomic(&v, + (__force const char __user *)(addr), + sizeof(v)); + if (unlikely(ret > 0)) + break; + count++; + if (unlikely(!v)) + break; + addr++; + } + pagefault_enable(); + set_fs(old_fs); + return count; +} --- linux-3.11.0.orig/ubuntu/lttng/probes/lttng-probe-skb.c +++ linux-3.11.0/ubuntu/lttng/probes/lttng-probe-skb.c @@ -0,0 +1,45 @@ +/* + * probes/lttng-probe-skb.c + * + * LTTng skb probes. + * + * Copyright (C) 2010-2012 Mathieu Desnoyers + * Copyright (C) 2012 Mentor Graphics Corp. + * + * 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; only + * version 2.1 of the License. + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include + +/* + * Create the tracepoint static inlines from the kernel to validate that our + * trace event macros match the kernel we run on. + */ +#include + +#include "../wrapper/tracepoint.h" + +/* + * Create LTTng tracepoint probes. + */ +#define LTTNG_PACKAGE_BUILD +#define CREATE_TRACE_POINTS +#define TRACE_INCLUDE_PATH ../instrumentation/events/lttng-module + +#include "../instrumentation/events/lttng-module/skb.h" + +MODULE_LICENSE("GPL and additional rights"); +MODULE_AUTHOR("Wade Farnsworth and Andrew Gabbasov "); +MODULE_DESCRIPTION("LTTng skb probes"); --- linux-3.11.0.orig/ubuntu/lttng/probes/lttng-ftrace.c +++ linux-3.11.0/ubuntu/lttng/probes/lttng-ftrace.c @@ -0,0 +1,201 @@ +/* + * probes/lttng-ftrace.c + * + * LTTng function tracer integration module. + * + * Copyright (C) 2009-2012 Mathieu Desnoyers + * + * 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; only + * version 2.1 of the License. + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/* + * Ftrace function tracer does not seem to provide synchronization between probe + * teardown and callback execution. Therefore, we make this module permanently + * loaded (unloadable). + * + * TODO: Move to register_ftrace_function() (which is exported for + * modules) for Linux >= 3.0. It is faster (only enables the selected + * functions), and will stay there. + */ + +#include +#include +#include +#include "../lttng-events.h" +#include "../wrapper/ringbuffer/frontend_types.h" +#include "../wrapper/ftrace.h" +#include "../wrapper/vmalloc.h" +#include "../lttng-tracer.h" + +static +void lttng_ftrace_handler(unsigned long ip, unsigned long parent_ip, void **data) +{ + struct lttng_event *event = *data; + struct lttng_channel *chan = event->chan; + struct lib_ring_buffer_ctx ctx; + struct { + unsigned long ip; + unsigned long parent_ip; + } payload; + int ret; + + if (unlikely(!ACCESS_ONCE(chan->session->active))) + return; + if (unlikely(!ACCESS_ONCE(chan->enabled))) + return; + if (unlikely(!ACCESS_ONCE(event->enabled))) + return; + + lib_ring_buffer_ctx_init(&ctx, chan->chan, event, + sizeof(payload), lttng_alignof(payload), -1); + ret = chan->ops->event_reserve(&ctx, event->id); + if (ret < 0) + return; + payload.ip = ip; + payload.parent_ip = parent_ip; + lib_ring_buffer_align_ctx(&ctx, lttng_alignof(payload)); + chan->ops->event_write(&ctx, &payload, sizeof(payload)); + chan->ops->event_commit(&ctx); + return; +} + +/* + * Create event description + */ +static +int lttng_create_ftrace_event(const char *name, struct lttng_event *event) +{ + struct lttng_event_field *fields; + struct lttng_event_desc *desc; + int ret; + + desc = kzalloc(sizeof(*event->desc), GFP_KERNEL); + if (!desc) + return -ENOMEM; + desc->name = kstrdup(name, GFP_KERNEL); + if (!desc->name) { + ret = -ENOMEM; + goto error_str; + } + desc->nr_fields = 2; + desc->fields = fields = + kzalloc(2 * sizeof(struct lttng_event_field), GFP_KERNEL); + if (!desc->fields) { + ret = -ENOMEM; + goto error_fields; + } + fields[0].name = "ip"; + fields[0].type.atype = atype_integer; + fields[0].type.u.basic.integer.size = sizeof(unsigned long) * CHAR_BIT; + fields[0].type.u.basic.integer.alignment = lttng_alignof(unsigned long) * CHAR_BIT; + fields[0].type.u.basic.integer.signedness = lttng_is_signed_type(unsigned long); + fields[0].type.u.basic.integer.reverse_byte_order = 0; + fields[0].type.u.basic.integer.base = 16; + fields[0].type.u.basic.integer.encoding = lttng_encode_none; + + fields[1].name = "parent_ip"; + fields[1].type.atype = atype_integer; + fields[1].type.u.basic.integer.size = sizeof(unsigned long) * CHAR_BIT; + fields[1].type.u.basic.integer.alignment = lttng_alignof(unsigned long) * CHAR_BIT; + fields[1].type.u.basic.integer.signedness = lttng_is_signed_type(unsigned long); + fields[1].type.u.basic.integer.reverse_byte_order = 0; + fields[1].type.u.basic.integer.base = 16; + fields[1].type.u.basic.integer.encoding = lttng_encode_none; + + desc->owner = THIS_MODULE; + event->desc = desc; + + return 0; + +error_fields: + kfree(desc->name); +error_str: + kfree(desc); + return ret; +} + +static +struct ftrace_probe_ops lttng_ftrace_ops = { + .func = lttng_ftrace_handler, +}; + +int lttng_ftrace_register(const char *name, + const char *symbol_name, + struct lttng_event *event) +{ + int ret; + + ret = lttng_create_ftrace_event(name, event); + if (ret) + goto error; + + event->u.ftrace.symbol_name = kstrdup(symbol_name, GFP_KERNEL); + if (!event->u.ftrace.symbol_name) + goto name_error; + + /* Ensure the memory we just allocated don't trigger page faults */ + wrapper_vmalloc_sync_all(); + + ret = wrapper_register_ftrace_function_probe(event->u.ftrace.symbol_name, + <tng_ftrace_ops, event); + if (ret < 0) + goto register_error; + return 0; + +register_error: + kfree(event->u.ftrace.symbol_name); +name_error: + kfree(event->desc->name); + kfree(event->desc); +error: + return ret; +} +EXPORT_SYMBOL_GPL(lttng_ftrace_register); + +void lttng_ftrace_unregister(struct lttng_event *event) +{ + wrapper_unregister_ftrace_function_probe(event->u.ftrace.symbol_name, + <tng_ftrace_ops, event); +} +EXPORT_SYMBOL_GPL(lttng_ftrace_unregister); + +void lttng_ftrace_destroy_private(struct lttng_event *event) +{ + kfree(event->u.ftrace.symbol_name); + kfree(event->desc->fields); + kfree(event->desc->name); + kfree(event->desc); +} +EXPORT_SYMBOL_GPL(lttng_ftrace_destroy_private); + +int lttng_ftrace_init(void) +{ + wrapper_vmalloc_sync_all(); + return 0; +} +module_init(lttng_ftrace_init) + +/* + * Ftrace takes care of waiting for a grace period (RCU sched) at probe + * unregistration, and disables preemption around probe call. + */ +void lttng_ftrace_exit(void) +{ +} +module_exit(lttng_ftrace_exit) + +MODULE_LICENSE("GPL and additional rights"); +MODULE_AUTHOR("Mathieu Desnoyers"); +MODULE_DESCRIPTION("Linux Trace Toolkit Ftrace Support"); --- linux-3.11.0.orig/ubuntu/lttng/probes/lttng-probe-asoc.c +++ linux-3.11.0/ubuntu/lttng/probes/lttng-probe-asoc.c @@ -0,0 +1,45 @@ +/* + * probes/lttng-probe-asoc.c + * + * LTTng asoc probes. + * + * Copyright (C) 2010-2012 Mathieu Desnoyers + * Copyright (C) 2012 Mentor Graphics Corp. + * + * 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; only + * version 2.1 of the License. + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include +#include +#include + +/* + * Create the tracepoint static inlines from the kernel to validate that our + * trace event macros match the kernel we run on. + */ +#include + +/* + * Create LTTng tracepoint probes. + */ +#define LTTNG_PACKAGE_BUILD +#define CREATE_TRACE_POINTS +#define TRACE_INCLUDE_PATH ../instrumentation/events/lttng-module + +#include "../instrumentation/events/lttng-module/asoc.h" + +MODULE_LICENSE("GPL and additional rights"); +MODULE_AUTHOR("Wade Farnsworth , Paul Woegerer , and Andrew Gabbasov "); +MODULE_DESCRIPTION("LTTng asoc probes"); --- linux-3.11.0.orig/ubuntu/lttng/probes/define_trace.h +++ linux-3.11.0/ubuntu/lttng/probes/define_trace.h @@ -0,0 +1,180 @@ +/* + * define_trace.h + * + * Copyright (C) 2009 Steven Rostedt + * Copyright (C) 2010-2012 Mathieu Desnoyers + * + * 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; only + * version 2.1 of the License. + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/* + * Trace files that want to automate creationg of all tracepoints defined + * in their file should include this file. The following are macros that the + * trace file may define: + * + * TRACE_SYSTEM defines the system the tracepoint is for + * + * TRACE_INCLUDE_FILE if the file name is something other than TRACE_SYSTEM.h + * This macro may be defined to tell define_trace.h what file to include. + * Note, leave off the ".h". + * + * TRACE_INCLUDE_PATH if the path is something other than core kernel include/trace + * then this macro can define the path to use. Note, the path is relative to + * define_trace.h, not the file including it. Full path names for out of tree + * modules must be used. + */ + +#ifdef CREATE_TRACE_POINTS + +/* Prevent recursion */ +#undef CREATE_TRACE_POINTS + +#include +/* + * module.h includes tracepoints, and because ftrace.h + * pulls in module.h: + * trace/ftrace.h -> linux/ftrace_event.h -> linux/perf_event.h -> + * linux/ftrace.h -> linux/module.h + * we must include module.h here before we play with any of + * the TRACE_EVENT() macros, otherwise the tracepoints included + * by module.h may break the build. + */ +#include + +#undef TRACE_EVENT_MAP +#define TRACE_EVENT_MAP(name, map, proto, args, tstruct, assign, print) \ + DEFINE_TRACE(name) + +#undef TRACE_EVENT_CONDITION_MAP +#define TRACE_EVENT_CONDITION_MAP(name, map, proto, args, cond, tstruct, assign, print) \ + TRACE_EVENT(name, \ + PARAMS(proto), \ + PARAMS(args), \ + PARAMS(tstruct), \ + PARAMS(assign), \ + PARAMS(print)) + +#undef TRACE_EVENT_FN_MAP +#define TRACE_EVENT_FN_MAP(name, map, proto, args, tstruct, \ + assign, print, reg, unreg) \ + DEFINE_TRACE_FN(name, reg, unreg) + +#undef DEFINE_EVENT_MAP +#define DEFINE_EVENT_MAP(template, name, map, proto, args) \ + DEFINE_TRACE(name) + +#undef DEFINE_EVENT_PRINT_MAP +#define DEFINE_EVENT_PRINT_MAP(template, name, map, proto, args, print) \ + DEFINE_TRACE(name) + +#undef DEFINE_EVENT_CONDITION_MAP +#define DEFINE_EVENT_CONDITION_MAP(template, name, map, proto, args, cond) \ + DEFINE_EVENT(template, name, PARAMS(proto), PARAMS(args)) + + +#undef TRACE_EVENT +#define TRACE_EVENT(name, proto, args, tstruct, assign, print) \ + DEFINE_TRACE(name) + +#undef TRACE_EVENT_CONDITION +#define TRACE_EVENT_CONDITION(name, proto, args, cond, tstruct, assign, print) \ + TRACE_EVENT(name, \ + PARAMS(proto), \ + PARAMS(args), \ + PARAMS(tstruct), \ + PARAMS(assign), \ + PARAMS(print)) + +#undef TRACE_EVENT_FN +#define TRACE_EVENT_FN(name, proto, args, tstruct, \ + assign, print, reg, unreg) \ + DEFINE_TRACE_FN(name, reg, unreg) + +#undef DEFINE_EVENT +#define DEFINE_EVENT(template, name, proto, args) \ + DEFINE_TRACE(name) + +#undef DEFINE_EVENT_PRINT +#define DEFINE_EVENT_PRINT(template, name, proto, args, print) \ + DEFINE_TRACE(name) + +#undef DEFINE_EVENT_CONDITION +#define DEFINE_EVENT_CONDITION(template, name, proto, args, cond) \ + DEFINE_EVENT(template, name, PARAMS(proto), PARAMS(args)) + +#undef DECLARE_TRACE +#define DECLARE_TRACE(name, proto, args) \ + DEFINE_TRACE(name) + +#undef TRACE_INCLUDE +#undef __TRACE_INCLUDE + +#ifndef TRACE_INCLUDE_FILE +# define TRACE_INCLUDE_FILE TRACE_SYSTEM +# define UNDEF_TRACE_INCLUDE_FILE +#endif + +#ifndef TRACE_INCLUDE_PATH +# define __TRACE_INCLUDE(system) +# define UNDEF_TRACE_INCLUDE_PATH +#else +# define __TRACE_INCLUDE(system) __stringify(TRACE_INCLUDE_PATH/system.h) +#endif + +# define TRACE_INCLUDE(system) __TRACE_INCLUDE(system) + +/* Let the trace headers be reread */ +#define TRACE_HEADER_MULTI_READ + +#include TRACE_INCLUDE(TRACE_INCLUDE_FILE) + +/* Make all open coded DECLARE_TRACE nops */ +#undef DECLARE_TRACE +#define DECLARE_TRACE(name, proto, args) + +#ifdef LTTNG_PACKAGE_BUILD +#include "lttng-events.h" +#endif + +#undef TRACE_EVENT +#undef TRACE_EVENT_FN +#undef TRACE_EVENT_CONDITION +#undef DEFINE_EVENT +#undef DEFINE_EVENT_PRINT +#undef DEFINE_EVENT_CONDITION +#undef TRACE_EVENT_MAP +#undef TRACE_EVENT_FN_MAP +#undef TRACE_EVENT_CONDITION_MAP +#undef DECLARE_EVENT_CLASS +#undef DEFINE_EVENT_MAP +#undef DEFINE_EVENT_PRINT_MAP +#undef DEFINE_EVENT_CONDITION_MAP +#undef TRACE_HEADER_MULTI_READ + +/* Only undef what we defined in this file */ +#ifdef UNDEF_TRACE_INCLUDE_FILE +# undef TRACE_INCLUDE_FILE +# undef UNDEF_TRACE_INCLUDE_FILE +#endif + +#ifdef UNDEF_TRACE_INCLUDE_PATH +# undef TRACE_INCLUDE_PATH +# undef UNDEF_TRACE_INCLUDE_PATH +#endif + +/* We may be processing more files */ +#define CREATE_TRACE_POINTS + +#endif /* CREATE_TRACE_POINTS */ --- linux-3.11.0.orig/ubuntu/lttng/probes/lttng-probe-power.c +++ linux-3.11.0/ubuntu/lttng/probes/lttng-probe-power.c @@ -0,0 +1,45 @@ +/* + * probes/lttng-probe-power.c + * + * LTTng power probes. + * + * Copyright (C) 2010-2012 Mathieu Desnoyers + * Copyright (C) 2012 Mentor Graphics Corp. + * + * 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; only + * version 2.1 of the License. + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include + +/* + * Create the tracepoint static inlines from the kernel to validate that our + * trace event macros match the kernel we run on. + */ +#include + +#include "../wrapper/tracepoint.h" + +/* + * Create LTTng tracepoint probes. + */ +#define LTTNG_PACKAGE_BUILD +#define CREATE_TRACE_POINTS +#define TRACE_INCLUDE_PATH ../instrumentation/events/lttng-module + +#include "../instrumentation/events/lttng-module/power.h" + +MODULE_LICENSE("GPL and additional rights"); +MODULE_AUTHOR("Wade Farnsworth and Andrew Gabbasov "); +MODULE_DESCRIPTION("LTTng power probes"); --- linux-3.11.0.orig/ubuntu/lttng/probes/lttng-kprobes.c +++ linux-3.11.0/ubuntu/lttng/probes/lttng-kprobes.c @@ -0,0 +1,177 @@ +/* + * probes/lttng-kprobes.c + * + * LTTng kprobes integration module. + * + * Copyright (C) 2009-2012 Mathieu Desnoyers + * + * 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; only + * version 2.1 of the License. + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include +#include +#include +#include "../lttng-events.h" +#include "../wrapper/ringbuffer/frontend_types.h" +#include "../wrapper/vmalloc.h" +#include "../lttng-tracer.h" + +static +int lttng_kprobes_handler_pre(struct kprobe *p, struct pt_regs *regs) +{ + struct lttng_event *event = + container_of(p, struct lttng_event, u.kprobe.kp); + struct lttng_channel *chan = event->chan; + struct lib_ring_buffer_ctx ctx; + int ret; + unsigned long data = (unsigned long) p->addr; + + if (unlikely(!ACCESS_ONCE(chan->session->active))) + return 0; + if (unlikely(!ACCESS_ONCE(chan->enabled))) + return 0; + if (unlikely(!ACCESS_ONCE(event->enabled))) + return 0; + + lib_ring_buffer_ctx_init(&ctx, chan->chan, event, sizeof(data), + lttng_alignof(data), -1); + ret = chan->ops->event_reserve(&ctx, event->id); + if (ret < 0) + return 0; + lib_ring_buffer_align_ctx(&ctx, lttng_alignof(data)); + chan->ops->event_write(&ctx, &data, sizeof(data)); + chan->ops->event_commit(&ctx); + return 0; +} + +/* + * Create event description + */ +static +int lttng_create_kprobe_event(const char *name, struct lttng_event *event) +{ + struct lttng_event_field *field; + struct lttng_event_desc *desc; + int ret; + + desc = kzalloc(sizeof(*event->desc), GFP_KERNEL); + if (!desc) + return -ENOMEM; + desc->name = kstrdup(name, GFP_KERNEL); + if (!desc->name) { + ret = -ENOMEM; + goto error_str; + } + desc->nr_fields = 1; + desc->fields = field = + kzalloc(1 * sizeof(struct lttng_event_field), GFP_KERNEL); + if (!field) { + ret = -ENOMEM; + goto error_field; + } + field->name = "ip"; + field->type.atype = atype_integer; + field->type.u.basic.integer.size = sizeof(unsigned long) * CHAR_BIT; + field->type.u.basic.integer.alignment = lttng_alignof(unsigned long) * CHAR_BIT; + field->type.u.basic.integer.signedness = lttng_is_signed_type(unsigned long); + field->type.u.basic.integer.reverse_byte_order = 0; + field->type.u.basic.integer.base = 16; + field->type.u.basic.integer.encoding = lttng_encode_none; + desc->owner = THIS_MODULE; + event->desc = desc; + + return 0; + +error_field: + kfree(desc->name); +error_str: + kfree(desc); + return ret; +} + +int lttng_kprobes_register(const char *name, + const char *symbol_name, + uint64_t offset, + uint64_t addr, + struct lttng_event *event) +{ + int ret; + + /* Kprobes expects a NULL symbol name if unused */ + if (symbol_name[0] == '\0') + symbol_name = NULL; + + ret = lttng_create_kprobe_event(name, event); + if (ret) + goto error; + memset(&event->u.kprobe.kp, 0, sizeof(event->u.kprobe.kp)); + event->u.kprobe.kp.pre_handler = lttng_kprobes_handler_pre; + if (symbol_name) { + event->u.kprobe.symbol_name = + kzalloc(LTTNG_KERNEL_SYM_NAME_LEN * sizeof(char), + GFP_KERNEL); + if (!event->u.kprobe.symbol_name) { + ret = -ENOMEM; + goto name_error; + } + memcpy(event->u.kprobe.symbol_name, symbol_name, + LTTNG_KERNEL_SYM_NAME_LEN * sizeof(char)); + event->u.kprobe.kp.symbol_name = + event->u.kprobe.symbol_name; + } + event->u.kprobe.kp.offset = offset; + event->u.kprobe.kp.addr = (void *) (unsigned long) addr; + + /* + * Ensure the memory we just allocated don't trigger page faults. + * Well.. kprobes itself puts the page fault handler on the blacklist, + * but we can never be too careful. + */ + wrapper_vmalloc_sync_all(); + + ret = register_kprobe(&event->u.kprobe.kp); + if (ret) + goto register_error; + return 0; + +register_error: + kfree(event->u.kprobe.symbol_name); +name_error: + kfree(event->desc->fields); + kfree(event->desc->name); + kfree(event->desc); +error: + return ret; +} +EXPORT_SYMBOL_GPL(lttng_kprobes_register); + +void lttng_kprobes_unregister(struct lttng_event *event) +{ + unregister_kprobe(&event->u.kprobe.kp); +} +EXPORT_SYMBOL_GPL(lttng_kprobes_unregister); + +void lttng_kprobes_destroy_private(struct lttng_event *event) +{ + kfree(event->u.kprobe.symbol_name); + kfree(event->desc->fields); + kfree(event->desc->name); + kfree(event->desc); +} +EXPORT_SYMBOL_GPL(lttng_kprobes_destroy_private); + +MODULE_LICENSE("GPL and additional rights"); +MODULE_AUTHOR("Mathieu Desnoyers"); +MODULE_DESCRIPTION("Linux Trace Toolkit Kprobes Support"); --- linux-3.11.0.orig/ubuntu/lttng/probes/lttng-probe-scsi.c +++ linux-3.11.0/ubuntu/lttng/probes/lttng-probe-scsi.c @@ -0,0 +1,44 @@ +/* + * probes/lttng-probe-scsi.c + * + * LTTng scsi probes. + * + * Copyright (C) 2010-2012 Mathieu Desnoyers + * Copyright (C) 2012 Mentor Graphics Corp. + * + * 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; only + * version 2.1 of the License. + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include +#include + +/* + * Create the tracepoint static inlines from the kernel to validate that our + * trace event macros match the kernel we run on. + */ +#include + +/* + * Create LTTng tracepoint probes. + */ +#define LTTNG_PACKAGE_BUILD +#define CREATE_TRACE_POINTS +#define TRACE_INCLUDE_PATH ../instrumentation/events/lttng-module + +#include "../instrumentation/events/lttng-module/scsi.h" + +MODULE_LICENSE("GPL and additional rights"); +MODULE_AUTHOR("Wade Farnsworth and Andrew Gabbasov "); +MODULE_DESCRIPTION("LTTng scsi probes"); --- linux-3.11.0.orig/ubuntu/lttng/probes/Makefile +++ linux-3.11.0/ubuntu/lttng/probes/Makefile @@ -0,0 +1,240 @@ +# +# Makefile for the LTT probes. +# Only build from the package top-level directory. Never use with make directly. + +ifneq ($(KERNELRELEASE),) +ifneq ($(CONFIG_TRACEPOINTS),) + +ccflags-y += -I$(PWD)/probes +obj-m += lttng-types.o + +obj-m += lttng-probe-sched.o +obj-m += lttng-probe-irq.o +obj-m += lttng-probe-timer.o +obj-m += lttng-probe-kmem.o +obj-m += lttng-probe-module.o +obj-m += lttng-probe-power.o + +obj-m += lttng-probe-statedump.o + +ifneq ($(CONFIG_KVM),) +obj-m += lttng-probe-kvm.o +ifneq ($(CONFIG_X86),) +kvm_dep = $(srctree)/virt/kvm/iodev.h +ifneq ($(wildcard $(kvm_dep)),) +CFLAGS_lttng-probe-kvm-x86.o += -I$(srctree)/virt/kvm +CFLAGS_lttng-probe-kvm-x86-mmu.o += -I$(srctree)/virt/kvm +obj-m += lttng-probe-kvm-x86.o +obj-m += lttng-probe-kvm-x86-mmu.o +else +$(warning File $(kvm_dep) not found. Probe "kvm" x86-specific is disabled. Use full kernel source tree to enable it.) +endif +endif +endif + +obj-m += $(shell \ + if [ $(VERSION) -ge 3 \ + -o \( $(VERSION) -eq 2 -a $(PATCHLEVEL) -ge 6 -a $(SUBLEVEL) -ge 33 \) ] ; then \ + echo "lttng-probe-signal.o" ; fi;) + +ifneq ($(CONFIG_BLOCK),) +ifneq ($(CONFIG_EVENT_TRACING),) # need blk_cmd_buf_len +obj-m += lttng-probe-block.o +endif +endif + +ifneq ($(CONFIG_NET),) +obj-m += lttng-probe-napi.o +obj-m += lttng-probe-skb.o +obj-m += $(shell \ + if [ $(VERSION) -ge 3 \ + -o \( $(VERSION) -eq 2 -a $(PATCHLEVEL) -ge 6 -a $(SUBLEVEL) -ge 37 \) ] ; then \ + echo "lttng-probe-net.o" ; fi;) +obj-m += $(shell \ + if [ $(VERSION) -ge 3 -a $(PATCHLEVEL) -ge 1 ] ; then \ + echo "lttng-probe-sock.o" ; fi;) +obj-m += $(shell \ + if [ $(VERSION) -ge 3 -a $(PATCHLEVEL) -ge 1 ] ; then \ + echo "lttng-probe-udp.o" ; fi;) +endif + +ifneq ($(CONFIG_SND_SOC),) +obj-m += $(shell \ + if [ $(VERSION) -ge 3 \ + -o \( $(VERSION) -eq 2 -a $(PATCHLEVEL) -ge 6 -a $(SUBLEVEL) -ge 38 \) ] ; then \ + echo "lttng-probe-asoc.o" ; fi;) +endif + +ifneq ($(CONFIG_EXT3_FS),) +ext3_dep = $(srctree)/fs/ext3/*.h +ext3_dep_check = $(wildcard $(ext3_dep)) +ext3 = $(shell \ + if [ $(VERSION) -ge 3 -a $(PATCHLEVEL) -ge 1 ] ; then \ + if [ $(VERSION) -ge 3 -a $(PATCHLEVEL) -ge 4 -a \ + -z "$(ext3_dep_check)" ] ; then \ + echo "warn" ; \ + exit ; \ + fi; \ + echo "lttng-probe-ext3.o" ; \ + fi;) +ifeq ($(ext3),warn) +$(warning Files $(ext3_dep) not found. Probe "ext3" is disabled. Use full kernel source tree to enable it.) +ext3 = +endif +obj-m += $(ext3) +endif + +ifneq ($(CONFIG_GPIOLIB),) +obj-m += $(shell \ + if [ $(VERSION) -ge 3 ] ; then \ + echo "lttng-probe-gpio.o" ; fi;) +endif + +ifneq ($(CONFIG_JBD2),) +obj-m += lttng-probe-jbd2.o +endif + +ifneq ($(CONFIG_JBD),) +obj-m += $(shell \ + if [ $(VERSION) -ge 3 -a $(PATCHLEVEL) -ge 1 ] ; then \ + echo "lttng-probe-jbd.o" ; fi;) +endif + +ifneq ($(CONFIG_REGULATOR),) +obj-m += $(shell \ + if [ $(VERSION) -ge 3 \ + -o \( $(VERSION) -eq 2 -a $(PATCHLEVEL) -ge 6 -a $(SUBLEVEL) -ge 38 \) ] ; then \ + echo "lttng-probe-regulator.o" ; fi;) +endif + +ifneq ($(CONFIG_SCSI),) +obj-m += $(shell \ + if [ $(VERSION) -ge 3 \ + -o \( $(VERSION) -eq 2 -a $(PATCHLEVEL) -ge 6 -a $(SUBLEVEL) -ge 35 \) ] ; then \ + echo "lttng-probe-scsi.o" ; fi;) +endif + +vmscan = $(shell \ + if [ $(VERSION) -ge 3 \ + -o \( $(VERSION) -eq 2 -a $(PATCHLEVEL) -ge 6 -a $(SUBLEVEL) -ge 36 \) ] ; then \ + echo "lttng-probe-vmscan.o" ; fi;) +ifneq ($(CONFIG_SWAP),) + obj-m += $(vmscan) +else +ifneq ($(CONFIG_CGROUP_MEM_RES_CTLR),) + obj-m += $(vmscan) +endif +endif + +# lock probe does not work, so disabling it for now +#ifneq ($(CONFIG_LOCKDEP),) +#obj-m += lttng-probe-lock.o +#endif + +ifneq ($(CONFIG_BTRFS_FS),) +btrfs_dep = $(srctree)/fs/btrfs/*.h +btrfs = $(shell \ + if [ $(VERSION) -ge 3 \ + -o \( $(VERSION) -eq 2 -a $(PATCHLEVEL) -ge 6 -a $(SUBLEVEL) -ge 39 \) ] ; then \ + echo "lttng-probe-btrfs.o" ; fi;) +ifneq ($(btrfs),) +ifeq ($(wildcard $(btrfs_dep)),) +$(warning Files $(btrfs_dep) not found. Probe "btrfs" is disabled. Use full kernel source tree to enable it.) +btrfs = +endif +endif +obj-m += $(btrfs) +endif + +obj-m += $(shell \ + if [ $(VERSION) -ge 3 \ + -o \( $(VERSION) -eq 2 -a $(PATCHLEVEL) -ge 6 -a $(SUBLEVEL) -ge 38 \) ] ; then \ + echo "lttng-probe-compaction.o" ; fi;) + +ifneq ($(CONFIG_EXT4_FS),) +ext4_dep = $(srctree)/fs/ext4/*.h +ext4 = lttng-probe-ext4.o +ifeq ($(wildcard $(ext4_dep)),) +$(warning Files $(ext4_dep) not found. Probe "ext4" is disabled. Use full kernel source tree to enable it.) +ext4 = +endif +obj-m += $(ext4) +endif + +obj-m += $(shell \ + if [ $(VERSION) -ge 3 -a $(PATCHLEVEL) -ge 4 ] ; then \ + echo "lttng-probe-printk.o" ; fi;) +ifneq ($(CONFIG_FRAME_WARN),0) +CFLAGS_lttng-probe-printk.o += -Wframe-larger-than=2200 +endif + +obj-m += $(shell \ + if [ \( $(VERSION) -eq 3 -a $(PATCHLEVEL) -ge 6 \) \ + -o \( $(VERSION) -eq 3 -a $(PATCHLEVEL) -eq 5 -a $(SUBLEVEL) -ge 2 \) \ + -o \( $(VERSION) -eq 3 -a $(PATCHLEVEL) -eq 4 -a $(SUBLEVEL) -ge 9 \) \ + -o \( $(VERSION) -eq 3 -a $(PATCHLEVEL) -eq 0 -a $(SUBLEVEL) -ge 41 \) ] ; then \ + echo "lttng-probe-random.o" ; fi;) + +obj-m += $(shell \ + if [ $(VERSION) -ge 3 -a $(PATCHLEVEL) -ge 2 ] ; then \ + echo "lttng-probe-rcu.o" ; fi;) + +ifneq ($(CONFIG_REGMAP),) +obj-m += $(shell \ + if [ $(VERSION) -ge 3 -a $(PATCHLEVEL) -ge 2 ] ; then \ + echo "lttng-probe-regmap.o" ; fi;) +endif + +ifneq ($(CONFIG_PM_RUNTIME),) +obj-m += $(shell \ + if [ $(VERSION) -ge 3 -a $(PATCHLEVEL) -ge 2 ] ; then \ + echo "lttng-probe-rpm.o" ; fi;) +endif + +ifneq ($(CONFIG_SUNRPC),) +obj-m += $(shell \ + if [ $(VERSION) -ge 3 -a $(PATCHLEVEL) -ge 4 ] ; then \ + echo "lttng-probe-sunrpc.o" ; fi;) +endif + +obj-m += lttng-probe-workqueue.o + +ifneq ($(CONFIG_KALLSYMS_ALL),) +obj-m += $(shell \ + if [ $(VERSION) -ge 3 \ + -o \( $(VERSION) -eq 2 -a $(PATCHLEVEL) -ge 6 -a $(SUBLEVEL) -ge 36 \) ] ; then \ + echo "lttng-probe-writeback.o" ; fi;) +endif + + +ifneq ($(CONFIG_KPROBES),) +obj-m += lttng-kprobes.o +endif + + +ifneq ($(CONFIG_KRETPROBES),) +obj-m += lttng-kretprobes.o +endif + +ifneq ($(CONFIG_DYNAMIC_FTRACE),) +obj-m += lttng-ftrace.o +endif + +endif + +else + KERNELDIR ?= /lib/modules/$(shell uname -r)/build + PWD := $(shell pwd) + CFLAGS = $(EXTCFLAGS) + +default: + $(MAKE) -C $(KERNELDIR) M=$(PWD) modules + +modules_install: + $(MAKE) -C $(KERNELDIR) M=$(PWD) modules_install + /sbin/depmod -a + +clean: + $(MAKE) -C $(KERNELDIR) M=$(PWD) clean + +endif --- linux-3.11.0.orig/ubuntu/lttng/probes/lttng-probe-sunrpc.c +++ linux-3.11.0/ubuntu/lttng/probes/lttng-probe-sunrpc.c @@ -0,0 +1,43 @@ +/* + * probes/lttng-probe-sunrpc.c + * + * LTTng sunrpc probes. + * + * Copyright (C) 2010-2012 Mathieu Desnoyers + * Copyright (C) 2012 Mentor Graphics Corp. + * + * 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; only + * version 2.1 of the License. + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include + +/* + * Create the tracepoint static inlines from the kernel to validate that our + * trace event macros match the kernel we run on. + */ +#include + +/* + * Create LTTng tracepoint probes. + */ +#define LTTNG_PACKAGE_BUILD +#define CREATE_TRACE_POINTS +#define TRACE_INCLUDE_PATH ../instrumentation/events/lttng-module + +#include "../instrumentation/events/lttng-module/sunrpc.h" + +MODULE_LICENSE("GPL and additional rights"); +MODULE_AUTHOR("Andrew Gabbasov "); +MODULE_DESCRIPTION("LTTng sunrpc probes"); --- linux-3.11.0.orig/ubuntu/lttng/probes/lttng-probe-workqueue.c +++ linux-3.11.0/ubuntu/lttng/probes/lttng-probe-workqueue.c @@ -0,0 +1,49 @@ +/* + * probes/lttng-probe-workqueue.c + * + * LTTng workqueue probes. + * + * Copyright (C) 2010-2012 Mathieu Desnoyers + * Copyright (C) 2012 Mentor Graphics Corp. + * + * 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; only + * version 2.1 of the License. + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include +#include + +struct cpu_workqueue_struct; +struct pool_workqueue; + +/* + * Create the tracepoint static inlines from the kernel to validate that our + * trace event macros match the kernel we run on. + */ +#include + +#include "../wrapper/tracepoint.h" + +/* + * Create LTTng tracepoint probes. + */ +#define LTTNG_PACKAGE_BUILD +#define CREATE_TRACE_POINTS +#define TRACE_INCLUDE_PATH ../instrumentation/events/lttng-module + +#include "../instrumentation/events/lttng-module/workqueue.h" + +MODULE_LICENSE("GPL and additional rights"); +MODULE_AUTHOR("Andrew Gabbasov "); +MODULE_DESCRIPTION("LTTng workqueue probes"); --- linux-3.11.0.orig/ubuntu/lttng/probes/lttng-probe-timer.c +++ linux-3.11.0/ubuntu/lttng/probes/lttng-probe-timer.c @@ -0,0 +1,46 @@ +/* + * probes/lttng-probe-timer.c + * + * LTTng timer probes. + * + * Copyright (C) 2012 Mathieu Desnoyers + * + * 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; only + * version 2.1 of the License. + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include + +/* + * Create the tracepoint static inlines from the kernel to validate that our + * trace event macros match the kernel we run on. + */ + +#include +#include + +#include "../wrapper/tracepoint.h" + +/* + * Create LTTng tracepoint probes. + */ +#define LTTNG_PACKAGE_BUILD +#define CREATE_TRACE_POINTS +#define TRACE_INCLUDE_PATH ../instrumentation/events/lttng-module + +#include "../instrumentation/events/lttng-module/timer.h" + +MODULE_LICENSE("GPL and additional rights"); +MODULE_AUTHOR("Mathieu Desnoyers "); +MODULE_DESCRIPTION("LTTng timer probes"); --- linux-3.11.0.orig/ubuntu/lttng/probes/lttng-probe-signal.c +++ linux-3.11.0/ubuntu/lttng/probes/lttng-probe-signal.c @@ -0,0 +1,42 @@ +/* + * probes/lttng-probe-signal.c + * + * LTTng signal probes. + * + * Copyright (C) 2010-2012 Mathieu Desnoyers + * + * 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; only + * version 2.1 of the License. + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include + +/* + * Create the tracepoint static inlines from the kernel to validate that our + * trace event macros match the kernel we run on. + */ +#include + +/* + * Create LTTng tracepoint probes. + */ +#define LTTNG_PACKAGE_BUILD +#define CREATE_TRACE_POINTS +#define TRACE_INCLUDE_PATH ../instrumentation/events/lttng-module + +#include "../instrumentation/events/lttng-module/signal.h" + +MODULE_LICENSE("GPL and additional rights"); +MODULE_AUTHOR("Mathieu Desnoyers "); +MODULE_DESCRIPTION("LTTng signal probes"); --- linux-3.11.0.orig/ubuntu/lttng/probes/lttng-probe-kvm.c +++ linux-3.11.0/ubuntu/lttng/probes/lttng-probe-kvm.c @@ -0,0 +1,45 @@ +/* + * probes/lttng-probe-kvm.c + * + * LTTng kvm probes. + * + * Copyright (C) 2010-2012 Mathieu Desnoyers + * + * 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; only + * version 2.1 of the License. + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include +#include + +/* + * Create the tracepoint static inlines from the kernel to validate that our + * trace event macros match the kernel we run on. + */ +#include + +#include "../wrapper/tracepoint.h" + +/* + * Create LTTng tracepoint probes. + */ +#define LTTNG_PACKAGE_BUILD +#define CREATE_TRACE_POINTS +#define TRACE_INCLUDE_PATH ../instrumentation/events/lttng-module + +#include "../instrumentation/events/lttng-module/kvm.h" + +MODULE_LICENSE("GPL and additional rights"); +MODULE_AUTHOR("Mathieu Desnoyers "); +MODULE_DESCRIPTION("LTTng kvm probes"); --- linux-3.11.0.orig/ubuntu/lttng/probes/lttng-probe-jbd.c +++ linux-3.11.0/ubuntu/lttng/probes/lttng-probe-jbd.c @@ -0,0 +1,43 @@ +/* + * probes/lttng-probe-jbd.c + * + * LTTng jbd probes. + * + * Copyright (C) 2010-2012 Mathieu Desnoyers + * Copyright (C) 2012 Mentor Graphics Corp. + * + * 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; only + * version 2.1 of the License. + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include + +/* + * Create the tracepoint static inlines from the kernel to validate that our + * trace event macros match the kernel we run on. + */ +#include + +/* + * Create LTTng tracepoint probes. + */ +#define LTTNG_PACKAGE_BUILD +#define CREATE_TRACE_POINTS +#define TRACE_INCLUDE_PATH ../instrumentation/events/lttng-module + +#include "../instrumentation/events/lttng-module/jbd.h" + +MODULE_LICENSE("GPL and additional rights"); +MODULE_AUTHOR("Wade Farnsworth , Paul Woegerer , and Andrew Gabbasov "); +MODULE_DESCRIPTION("LTTng jbd probes"); --- linux-3.11.0.orig/ubuntu/lttng/probes/lttng-probe-block.c +++ linux-3.11.0/ubuntu/lttng/probes/lttng-probe-block.c @@ -0,0 +1,45 @@ +/* + * probes/lttng-probe-block.c + * + * LTTng block probes. + * + * Copyright (C) 2010-2012 Mathieu Desnoyers + * + * 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; only + * version 2.1 of the License. + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include +#include + +/* + * Create the tracepoint static inlines from the kernel to validate that our + * trace event macros match the kernel we run on. + */ +#include + +#include "../wrapper/tracepoint.h" + +/* + * Create LTTng tracepoint probes. + */ +#define LTTNG_PACKAGE_BUILD +#define CREATE_TRACE_POINTS +#define TRACE_INCLUDE_PATH ../instrumentation/events/lttng-module + +#include "../instrumentation/events/lttng-module/block.h" + +MODULE_LICENSE("GPL and additional rights"); +MODULE_AUTHOR("Mathieu Desnoyers "); +MODULE_DESCRIPTION("LTTng block probes"); --- linux-3.11.0.orig/ubuntu/lttng/probes/lttng-probe-regmap.c +++ linux-3.11.0/ubuntu/lttng/probes/lttng-probe-regmap.c @@ -0,0 +1,44 @@ +/* + * probes/lttng-probe-regmap.c + * + * LTTng regmap probes. + * + * Copyright (C) 2010-2012 Mathieu Desnoyers + * Copyright (C) 2012 Mentor Graphics Corp. + * + * 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; only + * version 2.1 of the License. + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include +#include + +/* + * Create the tracepoint static inlines from the kernel to validate that our + * trace event macros match the kernel we run on. + */ +#include + +/* + * Create LTTng tracepoint probes. + */ +#define LTTNG_PACKAGE_BUILD +#define CREATE_TRACE_POINTS +#define TRACE_INCLUDE_PATH ../instrumentation/events/lttng-module + +#include "../instrumentation/events/lttng-module/regmap.h" + +MODULE_LICENSE("GPL and additional rights"); +MODULE_AUTHOR("Andrew Gabbasov "); +MODULE_DESCRIPTION("LTTng regmap probes"); --- linux-3.11.0.orig/ubuntu/lttng/probes/lttng-probe-kvm-x86.c +++ linux-3.11.0/ubuntu/lttng/probes/lttng-probe-kvm-x86.c @@ -0,0 +1,45 @@ +/* + * probes/lttng-probe-kvm.c + * + * LTTng kvm probes. + * + * Copyright (C) 2010-2012 Mathieu Desnoyers + * + * 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; only + * version 2.1 of the License. + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include +#include + +/* + * Create the tracepoint static inlines from the kernel to validate that our + * trace event macros match the kernel we run on. + */ +#include + +#include "../wrapper/tracepoint.h" + +/* + * Create LTTng tracepoint probes. + */ +#define LTTNG_PACKAGE_BUILD +#define CREATE_TRACE_POINTS + +#define TRACE_INCLUDE_PATH ../instrumentation/events/lttng-module/arch/x86/kvm +#include "../instrumentation/events/lttng-module/arch/x86/kvm/trace.h" + +MODULE_LICENSE("GPL and additional rights"); +MODULE_AUTHOR("Mathieu Desnoyers "); +MODULE_DESCRIPTION("LTTng kvm probes"); --- linux-3.11.0.orig/ubuntu/lttng/probes/lttng-probe-regulator.c +++ linux-3.11.0/ubuntu/lttng/probes/lttng-probe-regulator.c @@ -0,0 +1,43 @@ +/* + * probes/lttng-probe-regulator.c + * + * LTTng regulator probes. + * + * Copyright (C) 2010-2012 Mathieu Desnoyers + * Copyright (C) 2012 Mentor Graphics Corp. + * + * 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; only + * version 2.1 of the License. + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include + +/* + * Create the tracepoint static inlines from the kernel to validate that our + * trace event macros match the kernel we run on. + */ +#include + +/* + * Create LTTng tracepoint probes. + */ +#define LTTNG_PACKAGE_BUILD +#define CREATE_TRACE_POINTS +#define TRACE_INCLUDE_PATH ../instrumentation/events/lttng-module + +#include "../instrumentation/events/lttng-module/regulator.h" + +MODULE_LICENSE("GPL and additional rights"); +MODULE_AUTHOR("Wade Farnsworth "); +MODULE_DESCRIPTION("LTTng regulator probes"); --- linux-3.11.0.orig/ubuntu/lttng/probes/lttng-probe-sock.c +++ linux-3.11.0/ubuntu/lttng/probes/lttng-probe-sock.c @@ -0,0 +1,43 @@ +/* + * probes/lttng-probe-sock.c + * + * LTTng sock probes. + * + * Copyright (C) 2010-2012 Mathieu Desnoyers + * Copyright (C) 2012 Mentor Graphics Corp. + * + * 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; only + * version 2.1 of the License. + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include + +/* + * Create the tracepoint static inlines from the kernel to validate that our + * trace event macros match the kernel we run on. + */ +#include + +/* + * Create LTTng tracepoint probes. + */ +#define LTTNG_PACKAGE_BUILD +#define CREATE_TRACE_POINTS +#define TRACE_INCLUDE_PATH ../instrumentation/events/lttng-module + +#include "../instrumentation/events/lttng-module/sock.h" + +MODULE_LICENSE("GPL and additional rights"); +MODULE_AUTHOR("Wade Farnsworth "); +MODULE_DESCRIPTION("LTTng sock probes"); --- linux-3.11.0.orig/ubuntu/lttng/probes/lttng-probe-vmscan.c +++ linux-3.11.0/ubuntu/lttng/probes/lttng-probe-vmscan.c @@ -0,0 +1,45 @@ +/* + * probes/lttng-probe-vmscan.c + * + * LTTng vmscan probes. + * + * Copyright (C) 2010-2012 Mathieu Desnoyers + * Copyright (C) 2012 Mentor Graphics Corp. + * + * 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; only + * version 2.1 of the License. + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include + +/* + * Create the tracepoint static inlines from the kernel to validate that our + * trace event macros match the kernel we run on. + */ +#include + +#include "../lttng-kernel-version.h" + +/* + * Create LTTng tracepoint probes. + */ +#define LTTNG_PACKAGE_BUILD +#define CREATE_TRACE_POINTS +#define TRACE_INCLUDE_PATH ../instrumentation/events/lttng-module + +#include "../instrumentation/events/lttng-module/vmscan.h" + +MODULE_LICENSE("GPL and additional rights"); +MODULE_AUTHOR("Wade Farnsworth , Paul Woegerer , and Andrew Gabbasov "); +MODULE_DESCRIPTION("LTTng vmscan probes"); --- linux-3.11.0.orig/ubuntu/lttng/probes/lttng-probe-ext3.c +++ linux-3.11.0/ubuntu/lttng/probes/lttng-probe-ext3.c @@ -0,0 +1,52 @@ +/* + * probes/lttng-probe-ext3.c + * + * LTTng ext3 probes. + * + * Copyright (C) 2010-2012 Mathieu Desnoyers + * Copyright (C) 2012 Mentor Graphics Corp. + * + * 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; only + * version 2.1 of the License. + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include +#include +#include +#include + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,4,0)) +#include <../fs/ext3/ext3.h> +#else +#include +#endif + +/* + * Create the tracepoint static inlines from the kernel to validate that our + * trace event macros match the kernel we run on. + */ +#include + +/* + * Create LTTng tracepoint probes. + */ +#define LTTNG_PACKAGE_BUILD +#define CREATE_TRACE_POINTS +#define TRACE_INCLUDE_PATH ../instrumentation/events/lttng-module + +#include "../instrumentation/events/lttng-module/ext3.h" + +MODULE_LICENSE("GPL and additional rights"); +MODULE_AUTHOR("Wade Farnsworth , Paul Woegerer , and Andrew Gabbasov "); +MODULE_DESCRIPTION("LTTng ext3 probes"); --- linux-3.11.0.orig/ubuntu/lttng/probes/lttng-probe-kvm-x86-mmu.c +++ linux-3.11.0/ubuntu/lttng/probes/lttng-probe-kvm-x86-mmu.c @@ -0,0 +1,43 @@ +/* + * probes/lttng-probe-kvm.c + * + * LTTng kvm probes. + * + * Copyright (C) 2010-2012 Mathieu Desnoyers + * + * 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; only + * version 2.1 of the License. + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include +#include + +/* + * Create the tracepoint static inlines from the kernel to validate that our + * trace event macros match the kernel we run on. + */ +#include "../wrapper/tracepoint.h" + +/* + * Create LTTng tracepoint probes. + */ +#define LTTNG_PACKAGE_BUILD +#define CREATE_TRACE_POINTS + +#define TRACE_INCLUDE_PATH ../instrumentation/events/lttng-module/arch/x86/kvm +#include "../instrumentation/events/lttng-module/arch/x86/kvm/mmutrace.h" + +MODULE_LICENSE("GPL and additional rights"); +MODULE_AUTHOR("Mathieu Desnoyers "); +MODULE_DESCRIPTION("LTTng kvm mmu probes"); --- linux-3.11.0.orig/ubuntu/lttng/probes/lttng-probe-printk.c +++ linux-3.11.0/ubuntu/lttng/probes/lttng-probe-printk.c @@ -0,0 +1,43 @@ +/* + * probes/lttng-probe-printk.c + * + * LTTng printk probes. + * + * Copyright (C) 2010-2012 Mathieu Desnoyers + * Copyright (C) 2012 Mentor Graphics Corp. + * + * 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; only + * version 2.1 of the License. + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include + +/* + * Create the tracepoint static inlines from the kernel to validate that our + * trace event macros match the kernel we run on. + */ +#include + +/* + * Create LTTng tracepoint probes. + */ +#define LTTNG_PACKAGE_BUILD +#define CREATE_TRACE_POINTS +#define TRACE_INCLUDE_PATH ../instrumentation/events/lttng-module + +#include "../instrumentation/events/lttng-module/printk.h" + +MODULE_LICENSE("GPL and additional rights"); +MODULE_AUTHOR("Andrew Gabbasov "); +MODULE_DESCRIPTION("LTTng printk probes"); --- linux-3.11.0.orig/ubuntu/lttng/probes/lttng-probe-module.c +++ linux-3.11.0/ubuntu/lttng/probes/lttng-probe-module.c @@ -0,0 +1,45 @@ +/* + * probes/lttng-probe-module.c + * + * LTTng module probes. + * + * Copyright (C) 2010-2012 Mathieu Desnoyers + * Copyright (C) 2012 Mentor Graphics Corp. + * + * 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; only + * version 2.1 of the License. + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include + +/* + * Create the tracepoint static inlines from the kernel to validate that our + * trace event macros match the kernel we run on. + */ +#include + +#include "../wrapper/tracepoint.h" + +/* + * Create LTTng tracepoint probes. + */ +#define LTTNG_PACKAGE_BUILD +#define CREATE_TRACE_POINTS +#define TRACE_INCLUDE_PATH ../instrumentation/events/lttng-module + +#include "../instrumentation/events/lttng-module/module.h" + +MODULE_LICENSE("GPL and additional rights"); +MODULE_AUTHOR("Wade Farnsworth and Andrew Gabbasov "); +MODULE_DESCRIPTION("LTTng module probes"); --- linux-3.11.0.orig/ubuntu/lttng/probes/lttng-probe-rcu.c +++ linux-3.11.0/ubuntu/lttng/probes/lttng-probe-rcu.c @@ -0,0 +1,44 @@ +/* + * probes/lttng-probe-rcu.c + * + * LTTng rcu probes. + * + * Copyright (C) 2010-2012 Mathieu Desnoyers + * Copyright (C) 2012 Mentor Graphics Corp. + * + * 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; only + * version 2.1 of the License. + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include +#include + +/* + * Create the tracepoint static inlines from the kernel to validate that our + * trace event macros match the kernel we run on. + */ +#include + +/* + * Create LTTng tracepoint probes. + */ +#define LTTNG_PACKAGE_BUILD +#define CREATE_TRACE_POINTS +#define TRACE_INCLUDE_PATH ../instrumentation/events/lttng-module + +#include "../instrumentation/events/lttng-module/rcu.h" + +MODULE_LICENSE("GPL and additional rights"); +MODULE_AUTHOR("Andrew Gabbasov "); +MODULE_DESCRIPTION("LTTng rcu probes"); --- linux-3.11.0.orig/ubuntu/lttng/probes/lttng-probe-rpm.c +++ linux-3.11.0/ubuntu/lttng/probes/lttng-probe-rpm.c @@ -0,0 +1,44 @@ +/* + * probes/lttng-probe-rpm.c + * + * LTTng rpm probes. + * + * Copyright (C) 2010-2012 Mathieu Desnoyers + * Copyright (C) 2012 Mentor Graphics Corp. + * + * 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; only + * version 2.1 of the License. + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include +#include + +/* + * Create the tracepoint static inlines from the kernel to validate that our + * trace event macros match the kernel we run on. + */ +#include + +/* + * Create LTTng tracepoint probes. + */ +#define LTTNG_PACKAGE_BUILD +#define CREATE_TRACE_POINTS +#define TRACE_INCLUDE_PATH ../instrumentation/events/lttng-module + +#include "../instrumentation/events/lttng-module/rpm.h" + +MODULE_LICENSE("GPL and additional rights"); +MODULE_AUTHOR("Andrew Gabbasov "); +MODULE_DESCRIPTION("LTTng rpm probes"); --- linux-3.11.0.orig/ubuntu/lttng/probes/lttng-probe-udp.c +++ linux-3.11.0/ubuntu/lttng/probes/lttng-probe-udp.c @@ -0,0 +1,43 @@ +/* + * probes/lttng-probe-udp.c + * + * LTTng udp probes. + * + * Copyright (C) 2010-2012 Mathieu Desnoyers + * Copyright (C) 2012 Mentor Graphics Corp. + * + * 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; only + * version 2.1 of the License. + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include + +/* + * Create the tracepoint static inlines from the kernel to validate that our + * trace event macros match the kernel we run on. + */ +#include + +/* + * Create LTTng tracepoint probes. + */ +#define LTTNG_PACKAGE_BUILD +#define CREATE_TRACE_POINTS +#define TRACE_INCLUDE_PATH ../instrumentation/events/lttng-module + +#include "../instrumentation/events/lttng-module/udp.h" + +MODULE_LICENSE("GPL and additional rights"); +MODULE_AUTHOR("Wade Farnsworth "); +MODULE_DESCRIPTION("LTTng udp probes"); --- linux-3.11.0.orig/ubuntu/lttng/probes/lttng-types.h +++ linux-3.11.0/ubuntu/lttng/probes/lttng-types.h @@ -0,0 +1,84 @@ +/* + * Protect against multiple inclusion of structure declarations, but run the + * stages below each time. + */ +#ifndef _LTTNG_PROBES_LTTNG_TYPES_H +#define _LTTNG_PROBES_LTTNG_TYPES_H + +/* + * probes/lttng-types.h + * + * LTTng types. + * + * Copyright (C) 2010-2012 Mathieu Desnoyers + * + * 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; only + * version 2.1 of the License. + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include +#include "lttng.h" +#include "../lttng-events.h" +#include "../lttng-tracer.h" +#include "../lttng-endian.h" + +#endif /* _LTTNG_PROBES_LTTNG_TYPES_H */ + +/* Export enumerations */ + +#ifdef STAGE_EXPORT_ENUMS + +#undef TRACE_EVENT_TYPE +#define TRACE_EVENT_TYPE(_name, _abstract_type, args...) + +#undef TRACE_EVENT_ENUM +#define TRACE_EVENT_ENUM(_name, _entries...) \ + const struct lttng_enum_entry __trace_event_enum_##_name[] = { \ + PARAMS(_entries) \ + }; + +/* Enumeration entry (single value) */ +#undef V +#define V(_string) { _string, _string, #_string} + +/* Enumeration entry (range) */ +#undef R +#define R(_string, _range_start, _range_end) \ + { _range_start, _range_end, #_string } + +#endif /* STAGE_EXPORT_ENUMS */ + + +/* Export named types */ + +#ifdef STAGE_EXPORT_TYPES + +#undef TRACE_EVENT_TYPE___enum +#define TRACE_EVENT_TYPE___enum(_name, _container_type) \ + { \ + .name = #_name, \ + .container_type = __type_integer(_container_type, __BYTE_ORDER, 10, none), \ + .entries = __trace_event_enum_##_name, \ + .len = ARRAY_SIZE(__trace_event_enum_##_name), \ + }, + +/* Local declaration */ +#undef TRACE_EVENT_TYPE +#define TRACE_EVENT_TYPE(_name, _abstract_type, args...) \ + TRACE_EVENT_TYPE___##_abstract_type(_name, args) + +#undef TRACE_EVENT_ENUM +#define TRACE_EVENT_ENUM(_name, _entries...) + +#endif /* STAGE_EXPORT_TYPES */ --- linux-3.11.0.orig/ubuntu/lttng/probes/lttng-probe-napi.c +++ linux-3.11.0/ubuntu/lttng/probes/lttng-probe-napi.c @@ -0,0 +1,45 @@ +/* + * probes/lttng-probe-napi.c + * + * LTTng napi probes. + * + * Copyright (C) 2010-2012 Mathieu Desnoyers + * Copyright (C) 2012 Mentor Graphics Corp. + * + * 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; only + * version 2.1 of the License. + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include + +/* + * Create the tracepoint static inlines from the kernel to validate that our + * trace event macros match the kernel we run on. + */ +#include + +#include "../wrapper/tracepoint.h" + +/* + * Create LTTng tracepoint probes. + */ +#define LTTNG_PACKAGE_BUILD +#define CREATE_TRACE_POINTS +#define TRACE_INCLUDE_PATH ../instrumentation/events/lttng-module + +#include "../instrumentation/events/lttng-module/napi.h" + +MODULE_LICENSE("GPL and additional rights"); +MODULE_AUTHOR("Wade Farnsworth "); +MODULE_DESCRIPTION("LTTng napi probes"); --- linux-3.11.0.orig/ubuntu/lttng/probes/lttng-probe-user.h +++ linux-3.11.0/ubuntu/lttng/probes/lttng-probe-user.h @@ -0,0 +1,30 @@ +#ifndef _LTTNG_PROBE_USER_H +#define _LTTNG_PROBE_USER_H + +/* + * lttng-probe-user.h + * + * Copyright (C) 2012 Mathieu Desnoyers + * + * 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; only + * version 2.1 of the License. + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/* + * Calculate string length. Include final null terminating character if there is + * one, or ends at first fault. + */ +long lttng_strlen_user_inatomic(const char *addr); + +#endif /* _LTTNG_PROBE_USER_H */ --- linux-3.11.0.orig/ubuntu/lttng/probes/lttng-events-reset.h +++ linux-3.11.0/ubuntu/lttng/probes/lttng-events-reset.h @@ -0,0 +1,99 @@ +/* + * lttng-events-reset.h + * + * Copyright (C) 2010-2012 Mathieu Desnoyers + * + * 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; only + * version 2.1 of the License. + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/* Reset macros used within TRACE_EVENT to "nothing" */ + +#undef __field_full +#define __field_full(_type, _item, _order, _base) + +#undef __array_enc_ext +#define __array_enc_ext(_type, _item, _length, _order, _base, _encoding) + +#undef __dynamic_array_enc_ext +#define __dynamic_array_enc_ext(_type, _item, _length, _order, _base, _encoding) + +#undef __dynamic_array_enc_ext_2 +#define __dynamic_array_enc_ext_2(_type, _item, _length1, _length2, _order, _base, _encoding) + +#undef __dynamic_array_len +#define __dynamic_array_len(_type, _item, _length) + +#undef __string +#define __string(_item, _src) + +#undef tp_assign +#define tp_assign(dest, src) + +#undef tp_memcpy +#define tp_memcpy(dest, src, len) + +#undef tp_memcpy_dyn +#define tp_memcpy_dyn(dest, src, len) + +#undef tp_strcpy +#define tp_strcpy(dest, src) + +#undef __get_str +#define __get_str(field) + +#undef __get_dynamic_array +#define __get_dynamic_array(field) + +#undef __get_dynamic_array_len +#define __get_dynamic_array_len(field) + +#undef TP_PROTO +#define TP_PROTO(args...) + +#undef TP_ARGS +#define TP_ARGS(args...) + +#undef TP_STRUCT__entry +#define TP_STRUCT__entry(args...) + +#undef TP_fast_assign +#define TP_fast_assign(args...) + +#undef __perf_count +#define __perf_count(args...) + +#undef __perf_addr +#define __perf_addr(args...) + +#undef TP_perf_assign +#define TP_perf_assign(args...) + +#undef TP_printk +#define TP_printk(args...) + +#undef DECLARE_EVENT_CLASS +#define DECLARE_EVENT_CLASS(_name, _proto, _args, _tstruct, _assign, _print) + +#undef DECLARE_EVENT_CLASS_NOARGS +#define DECLARE_EVENT_CLASS_NOARGS(_name, _tstruct, _assign, _print) + +#undef DEFINE_EVENT_MAP +#define DEFINE_EVENT_MAP(_template, _name, _map, _proto, _args) + +#undef DEFINE_EVENT_MAP_NOARGS +#define DEFINE_EVENT_MAP_NOARGS(_template, _name, _map) + +#undef TRACE_EVENT_FLAGS +#define TRACE_EVENT_FLAGS(name, value) --- linux-3.11.0.orig/ubuntu/lttng/probes/lttng-events.h +++ linux-3.11.0/ubuntu/lttng/probes/lttng-events.h @@ -0,0 +1,868 @@ +/* + * lttng-events.h + * + * Copyright (C) 2009 Steven Rostedt + * Copyright (C) 2009-2012 Mathieu Desnoyers + * + * 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; only + * version 2.1 of the License. + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + */ +#include +#include +#include "lttng.h" +#include "lttng-types.h" +#include "lttng-probe-user.h" +#include "../wrapper/vmalloc.h" /* for wrapper_vmalloc_sync_all() */ +#include "../wrapper/ringbuffer/frontend_types.h" +#include "../lttng-events.h" +#include "../lttng-tracer-core.h" + +/* + * Macro declarations used for all stages. + */ + +/* + * LTTng name mapping macros. LTTng remaps some of the kernel events to + * enforce name-spacing. + */ +#undef TRACE_EVENT_MAP +#define TRACE_EVENT_MAP(name, map, proto, args, tstruct, assign, print) \ + DECLARE_EVENT_CLASS(map, \ + PARAMS(proto), \ + PARAMS(args), \ + PARAMS(tstruct), \ + PARAMS(assign), \ + PARAMS(print)) \ + DEFINE_EVENT_MAP(map, name, map, PARAMS(proto), PARAMS(args)) + +#undef TRACE_EVENT_MAP_NOARGS +#define TRACE_EVENT_MAP_NOARGS(name, map, tstruct, assign, print) \ + DECLARE_EVENT_CLASS_NOARGS(map, \ + PARAMS(tstruct), \ + PARAMS(assign), \ + PARAMS(print)) \ + DEFINE_EVENT_MAP_NOARGS(map, name, map) + +#undef DEFINE_EVENT_PRINT_MAP +#define DEFINE_EVENT_PRINT_MAP(template, name, map, proto, args, print) \ + DEFINE_EVENT_MAP(template, name, map, PARAMS(proto), PARAMS(args)) + +/* Callbacks are meaningless to LTTng. */ +#undef TRACE_EVENT_FN_MAP +#define TRACE_EVENT_FN_MAP(name, map, proto, args, tstruct, \ + assign, print, reg, unreg) \ + TRACE_EVENT_MAP(name, map, PARAMS(proto), PARAMS(args), \ + PARAMS(tstruct), PARAMS(assign), PARAMS(print)) \ + +#undef TRACE_EVENT_CONDITION_MAP +#define TRACE_EVENT_CONDITION_MAP(name, map, proto, args, cond, tstruct, assign, print) \ + TRACE_EVENT_MAP(name, map, \ + PARAMS(proto), \ + PARAMS(args), \ + PARAMS(tstruct), \ + PARAMS(assign), \ + PARAMS(print)) + +/* + * DECLARE_EVENT_CLASS can be used to add a generic function + * handlers for events. That is, if all events have the same + * parameters and just have distinct trace points. + * Each tracepoint can be defined with DEFINE_EVENT and that + * will map the DECLARE_EVENT_CLASS to the tracepoint. + * + * TRACE_EVENT is a one to one mapping between tracepoint and template. + */ + +#undef TRACE_EVENT +#define TRACE_EVENT(name, proto, args, tstruct, assign, print) \ + TRACE_EVENT_MAP(name, name, \ + PARAMS(proto), \ + PARAMS(args), \ + PARAMS(tstruct), \ + PARAMS(assign), \ + PARAMS(print)) + +#undef TRACE_EVENT_NOARGS +#define TRACE_EVENT_NOARGS(name, tstruct, assign, print) \ + TRACE_EVENT_MAP_NOARGS(name, name, \ + PARAMS(tstruct), \ + PARAMS(assign), \ + PARAMS(print)) + +#undef DEFINE_EVENT_PRINT +#define DEFINE_EVENT_PRINT(template, name, proto, args, print) \ + DEFINE_EVENT_PRINT_MAP(template, name, name, \ + PARAMS(proto), PARAMS(args), PARAMS(print_)) + +#undef TRACE_EVENT_FN +#define TRACE_EVENT_FN(name, proto, args, tstruct, \ + assign, print, reg, unreg) \ + TRACE_EVENT_FN_MAP(name, name, PARAMS(proto), PARAMS(args), \ + PARAMS(tstruct), PARAMS(assign), PARAMS(print), \ + PARAMS(reg), PARAMS(unreg)) \ + +#undef DEFINE_EVENT +#define DEFINE_EVENT(template, name, proto, args) \ + DEFINE_EVENT_MAP(template, name, name, PARAMS(proto), PARAMS(args)) + +#undef DEFINE_EVENT_NOARGS +#define DEFINE_EVENT_NOARGS(template, name) \ + DEFINE_EVENT_MAP_NOARGS(template, name, name) + +#undef TRACE_EVENT_CONDITION +#define TRACE_EVENT_CONDITION(name, proto, args, cond, tstruct, assign, print) \ + TRACE_EVENT_CONDITION_MAP(name, name, \ + PARAMS(proto), \ + PARAMS(args), \ + PARAMS(cond), \ + PARAMS(tstruct), \ + PARAMS(assign), \ + PARAMS(print)) + +/* + * Stage 1 of the trace events. + * + * Create dummy trace calls for each events, verifying that the LTTng module + * TRACE_EVENT headers match the kernel arguments. Will be optimized out by the + * compiler. + */ + +#include "lttng-events-reset.h" /* Reset all macros within TRACE_EVENT */ + +#undef TP_PROTO +#define TP_PROTO(args...) args + +#undef TP_ARGS +#define TP_ARGS(args...) args + +#undef DEFINE_EVENT_MAP +#define DEFINE_EVENT_MAP(_template, _name, _map, _proto, _args) \ +void trace_##_name(_proto); + +#undef DEFINE_EVENT_MAP_NOARGS +#define DEFINE_EVENT_MAP_NOARGS(_template, _name, _map) \ +void trace_##_name(void *__data); + +#include TRACE_INCLUDE(TRACE_INCLUDE_FILE) + +/* + * Stage 2 of the trace events. + * + * Create event field type metadata section. + * Each event produce an array of fields. + */ + +#include "lttng-events-reset.h" /* Reset all macros within TRACE_EVENT */ + +/* Named field types must be defined in lttng-types.h */ + +#undef __field_full +#define __field_full(_type, _item, _order, _base) \ + { \ + .name = #_item, \ + .type = __type_integer(_type, _order, _base, none), \ + }, + +#undef __field +#define __field(_type, _item) \ + __field_full(_type, _item, __BYTE_ORDER, 10) + +#undef __field_ext +#define __field_ext(_type, _item, _filter_type) \ + __field(_type, _item) + +#undef __field_hex +#define __field_hex(_type, _item) \ + __field_full(_type, _item, __BYTE_ORDER, 16) + +#undef __field_network +#define __field_network(_type, _item) \ + __field_full(_type, _item, __BIG_ENDIAN, 10) + +#undef __field_network_hex +#define __field_network_hex(_type, _item) \ + __field_full(_type, _item, __BIG_ENDIAN, 16) + +#undef __array_enc_ext +#define __array_enc_ext(_type, _item, _length, _order, _base, _encoding)\ + { \ + .name = #_item, \ + .type = \ + { \ + .atype = atype_array, \ + .u.array = \ + { \ + .length = _length, \ + .elem_type = __type_integer(_type, _order, _base, _encoding), \ + }, \ + }, \ + }, + +#undef __array +#define __array(_type, _item, _length) \ + __array_enc_ext(_type, _item, _length, __BYTE_ORDER, 10, none) + +#undef __array_text +#define __array_text(_type, _item, _length) \ + __array_enc_ext(_type, _item, _length, __BYTE_ORDER, 10, UTF8) + +#undef __array_hex +#define __array_hex(_type, _item, _length) \ + __array_enc_ext(_type, _item, _length, __BYTE_ORDER, 16, none) + +#undef __dynamic_array_enc_ext +#define __dynamic_array_enc_ext(_type, _item, _length, _order, _base, _encoding) \ + { \ + .name = #_item, \ + .type = \ + { \ + .atype = atype_sequence, \ + .u.sequence = \ + { \ + .length_type = __type_integer(u32, __BYTE_ORDER, 10, none), \ + .elem_type = __type_integer(_type, _order, _base, _encoding), \ + }, \ + }, \ + }, + +#undef __dynamic_array_enc_ext_2 +#define __dynamic_array_enc_ext_2(_type, _item, _length1, _length2, _order, _base, _encoding) \ + __dynamic_array_enc_ext(_type, _item, _length1 + _length2, _order, _base, _encoding) + +#undef __dynamic_array +#define __dynamic_array(_type, _item, _length) \ + __dynamic_array_enc_ext(_type, _item, _length, __BYTE_ORDER, 10, none) + +#undef __dynamic_array_text +#define __dynamic_array_text(_type, _item, _length) \ + __dynamic_array_enc_ext(_type, _item, _length, __BYTE_ORDER, 10, UTF8) + +#undef __dynamic_array_hex +#define __dynamic_array_hex(_type, _item, _length) \ + __dynamic_array_enc_ext(_type, _item, _length, __BYTE_ORDER, 16, none) + +#undef __dynamic_array_text_2 +#define __dynamic_array_text_2(_type, _item, _length1, _length2) \ + __dynamic_array_enc_ext_2(_type, _item, _length1, _length2, __BYTE_ORDER, 10, UTF8) + +#undef __string +#define __string(_item, _src) \ + { \ + .name = #_item, \ + .type = \ + { \ + .atype = atype_string, \ + .u.basic.string.encoding = lttng_encode_UTF8, \ + }, \ + }, + +#undef __string_from_user +#define __string_from_user(_item, _src) \ + __string(_item, _src) + +#undef TP_STRUCT__entry +#define TP_STRUCT__entry(args...) args /* Only one used in this phase */ + +#undef DECLARE_EVENT_CLASS_NOARGS +#define DECLARE_EVENT_CLASS_NOARGS(_name, _tstruct, _assign, _print) \ + static const struct lttng_event_field __event_fields___##_name[] = { \ + _tstruct \ + }; + +#undef DECLARE_EVENT_CLASS +#define DECLARE_EVENT_CLASS(_name, _proto, _args, _tstruct, _assign, _print) \ + DECLARE_EVENT_CLASS_NOARGS(_name, PARAMS(_tstruct), PARAMS(_assign), \ + PARAMS(_print)) + +#include TRACE_INCLUDE(TRACE_INCLUDE_FILE) + +/* + * Stage 3 of the trace events. + * + * Create probe callback prototypes. + */ + +#include "lttng-events-reset.h" /* Reset all macros within TRACE_EVENT */ + +#undef TP_PROTO +#define TP_PROTO(args...) args + +#undef DECLARE_EVENT_CLASS +#define DECLARE_EVENT_CLASS(_name, _proto, _args, _tstruct, _assign, _print) \ +static void __event_probe__##_name(void *__data, _proto); + +#undef DECLARE_EVENT_CLASS_NOARGS +#define DECLARE_EVENT_CLASS_NOARGS(_name, _tstruct, _assign, _print) \ +static void __event_probe__##_name(void *__data); + +#include TRACE_INCLUDE(TRACE_INCLUDE_FILE) + +/* + * Stage 3.9 of the trace events. + * + * Create event descriptions. + */ + +/* Named field types must be defined in lttng-types.h */ + +#include "lttng-events-reset.h" /* Reset all macros within TRACE_EVENT */ + +#ifndef TP_PROBE_CB +#define TP_PROBE_CB(_template) &__event_probe__##_template +#endif + +#undef DEFINE_EVENT_MAP_NOARGS +#define DEFINE_EVENT_MAP_NOARGS(_template, _name, _map) \ +static const struct lttng_event_desc __event_desc___##_map = { \ + .fields = __event_fields___##_template, \ + .name = #_map, \ + .probe_callback = (void *) TP_PROBE_CB(_template), \ + .nr_fields = ARRAY_SIZE(__event_fields___##_template), \ + .owner = THIS_MODULE, \ +}; + +#undef DEFINE_EVENT_MAP +#define DEFINE_EVENT_MAP(_template, _name, _map, _proto, _args) \ + DEFINE_EVENT_MAP_NOARGS(_template, _name, _map) + +#include TRACE_INCLUDE(TRACE_INCLUDE_FILE) + + +/* + * Stage 4 of the trace events. + * + * Create an array of event description pointers. + */ + +/* Named field types must be defined in lttng-types.h */ + +#include "lttng-events-reset.h" /* Reset all macros within TRACE_EVENT */ + +#undef DEFINE_EVENT_MAP_NOARGS +#define DEFINE_EVENT_MAP_NOARGS(_template, _name, _map) \ + &__event_desc___##_map, + +#undef DEFINE_EVENT_MAP +#define DEFINE_EVENT_MAP(_template, _name, _map, _proto, _args) \ + DEFINE_EVENT_MAP_NOARGS(_template, _name, _map) + +#define TP_ID1(_token, _system) _token##_system +#define TP_ID(_token, _system) TP_ID1(_token, _system) + +static const struct lttng_event_desc *TP_ID(__event_desc___, TRACE_SYSTEM)[] = { +#include TRACE_INCLUDE(TRACE_INCLUDE_FILE) +}; + +#undef TP_ID1 +#undef TP_ID + + +/* + * Stage 5 of the trace events. + * + * Create a toplevel descriptor for the whole probe. + */ + +#define TP_ID1(_token, _system) _token##_system +#define TP_ID(_token, _system) TP_ID1(_token, _system) + +/* non-const because list head will be modified when registered. */ +static __used struct lttng_probe_desc TP_ID(__probe_desc___, TRACE_SYSTEM) = { + .event_desc = TP_ID(__event_desc___, TRACE_SYSTEM), + .nr_events = ARRAY_SIZE(TP_ID(__event_desc___, TRACE_SYSTEM)), +}; + +#undef TP_ID1 +#undef TP_ID + +/* + * Stage 6 of the trace events. + * + * Create static inline function that calculates event size. + */ + +#include "lttng-events-reset.h" /* Reset all macros within TRACE_EVENT */ + +/* Named field types must be defined in lttng-types.h */ + +#undef __field_full +#define __field_full(_type, _item, _order, _base) \ + __event_len += lib_ring_buffer_align(__event_len, lttng_alignof(_type)); \ + __event_len += sizeof(_type); + +#undef __array_enc_ext +#define __array_enc_ext(_type, _item, _length, _order, _base, _encoding) \ + __event_len += lib_ring_buffer_align(__event_len, lttng_alignof(_type)); \ + __event_len += sizeof(_type) * (_length); + +#undef __dynamic_array_enc_ext +#define __dynamic_array_enc_ext(_type, _item, _length, _order, _base, _encoding)\ + __event_len += lib_ring_buffer_align(__event_len, lttng_alignof(u32)); \ + __event_len += sizeof(u32); \ + __event_len += lib_ring_buffer_align(__event_len, lttng_alignof(_type)); \ + __dynamic_len[__dynamic_len_idx] = (_length); \ + __event_len += sizeof(_type) * __dynamic_len[__dynamic_len_idx]; \ + __dynamic_len_idx++; + +#undef __dynamic_array_enc_ext_2 +#define __dynamic_array_enc_ext_2(_type, _item, _length1, _length2, _order, _base, _encoding)\ + __event_len += lib_ring_buffer_align(__event_len, lttng_alignof(u32)); \ + __event_len += sizeof(u32); \ + __event_len += lib_ring_buffer_align(__event_len, lttng_alignof(_type)); \ + __dynamic_len[__dynamic_len_idx] = (_length1); \ + __event_len += sizeof(_type) * __dynamic_len[__dynamic_len_idx]; \ + __dynamic_len_idx++; \ + __dynamic_len[__dynamic_len_idx] = (_length2); \ + __event_len += sizeof(_type) * __dynamic_len[__dynamic_len_idx]; \ + __dynamic_len_idx++; + +#undef __string +#define __string(_item, _src) \ + __event_len += __dynamic_len[__dynamic_len_idx++] = strlen(_src) + 1; + +/* + * strlen_user includes \0. If returns 0, it faulted, so we set size to + * 1 (\0 only). + */ +#undef __string_from_user +#define __string_from_user(_item, _src) \ + __event_len += __dynamic_len[__dynamic_len_idx++] = \ + max_t(size_t, lttng_strlen_user_inatomic(_src), 1); + +#undef TP_PROTO +#define TP_PROTO(args...) args + +#undef TP_STRUCT__entry +#define TP_STRUCT__entry(args...) args + +#undef DECLARE_EVENT_CLASS +#define DECLARE_EVENT_CLASS(_name, _proto, _args, _tstruct, _assign, _print) \ +static inline size_t __event_get_size__##_name(size_t *__dynamic_len, _proto) \ +{ \ + size_t __event_len = 0; \ + unsigned int __dynamic_len_idx = 0; \ + \ + if (0) \ + (void) __dynamic_len_idx; /* don't warn if unused */ \ + _tstruct \ + return __event_len; \ +} + +#include TRACE_INCLUDE(TRACE_INCLUDE_FILE) + +/* + * Stage 7 of the trace events. + * + * Create static inline function that calculates event payload alignment. + */ + +#include "lttng-events-reset.h" /* Reset all macros within TRACE_EVENT */ + +/* Named field types must be defined in lttng-types.h */ + +#undef __field_full +#define __field_full(_type, _item, _order, _base) \ + __event_align = max_t(size_t, __event_align, lttng_alignof(_type)); + +#undef __array_enc_ext +#define __array_enc_ext(_type, _item, _length, _order, _base, _encoding) \ + __event_align = max_t(size_t, __event_align, lttng_alignof(_type)); + +#undef __dynamic_array_enc_ext +#define __dynamic_array_enc_ext(_type, _item, _length, _order, _base, _encoding)\ + __event_align = max_t(size_t, __event_align, lttng_alignof(u32)); \ + __event_align = max_t(size_t, __event_align, lttng_alignof(_type)); + +#undef __dynamic_array_enc_ext_2 +#define __dynamic_array_enc_ext_2(_type, _item, _length1, _length2, _order, _base, _encoding)\ + __dynamic_array_enc_ext(_type, _item, _length1 + _length2, _order, _base, _encoding) + +#undef __string +#define __string(_item, _src) + +#undef __string_from_user +#define __string_from_user(_item, _src) + +#undef TP_PROTO +#define TP_PROTO(args...) args + +#undef TP_STRUCT__entry +#define TP_STRUCT__entry(args...) args + +#undef DECLARE_EVENT_CLASS +#define DECLARE_EVENT_CLASS(_name, _proto, _args, _tstruct, _assign, _print) \ +static inline size_t __event_get_align__##_name(_proto) \ +{ \ + size_t __event_align = 1; \ + _tstruct \ + return __event_align; \ +} + +#include TRACE_INCLUDE(TRACE_INCLUDE_FILE) + + +/* + * Stage 8 of the trace events. + * + * Create structure declaration that allows the "assign" macros to access the + * field types. + */ + +#include "lttng-events-reset.h" /* Reset all macros within TRACE_EVENT */ + +/* Named field types must be defined in lttng-types.h */ + +#undef __field_full +#define __field_full(_type, _item, _order, _base) _type _item; + +#undef __array_enc_ext +#define __array_enc_ext(_type, _item, _length, _order, _base, _encoding) \ + _type _item; + +#undef __dynamic_array_enc_ext +#define __dynamic_array_enc_ext(_type, _item, _length, _order, _base, _encoding)\ + _type _item; + +#undef __dynamic_array_enc_ext_2 +#define __dynamic_array_enc_ext_2(_type, _item, _length1, _length2, _order, _base, _encoding)\ + __dynamic_array_enc_ext(_type, _item, _length1 + _length2, _order, _base, _encoding) + +#undef __string +#define __string(_item, _src) char _item; + +#undef __string_from_user +#define __string_from_user(_item, _src) \ + __string(_item, _src) + +#undef TP_STRUCT__entry +#define TP_STRUCT__entry(args...) args + +#undef DECLARE_EVENT_CLASS +#define DECLARE_EVENT_CLASS(_name, _proto, _args, _tstruct, _assign, _print) \ +struct __event_typemap__##_name { \ + _tstruct \ +}; + +#include TRACE_INCLUDE(TRACE_INCLUDE_FILE) + + +/* + * Stage 9 of the trace events. + * + * Create the probe function : call even size calculation and write event data + * into the buffer. + * + * We use both the field and assignment macros to write the fields in the order + * defined in the field declaration. The field declarations control the + * execution order, jumping to the appropriate assignment block. + */ + +#include "lttng-events-reset.h" /* Reset all macros within TRACE_EVENT */ + +#undef __field_full +#define __field_full(_type, _item, _order, _base) \ + goto __assign_##_item; \ +__end_field_##_item: + +#undef __array_enc_ext +#define __array_enc_ext(_type, _item, _length, _order, _base, _encoding)\ + goto __assign_##_item; \ +__end_field_##_item: + +#undef __dynamic_array_enc_ext +#define __dynamic_array_enc_ext(_type, _item, _length, _order, _base, _encoding)\ + goto __assign_##_item##_1; \ +__end_field_##_item##_1: \ + goto __assign_##_item##_2; \ +__end_field_##_item##_2: + +#undef __dynamic_array_enc_ext_2 +#define __dynamic_array_enc_ext_2(_type, _item, _length1, _length2, _order, _base, _encoding)\ + goto __assign_##_item##_1; \ +__end_field_##_item##_1: \ + goto __assign_##_item##_2; \ +__end_field_##_item##_2: \ + goto __assign_##_item##_3; \ +__end_field_##_item##_3: + +#undef __string +#define __string(_item, _src) \ + goto __assign_##_item; \ +__end_field_##_item: + +#undef __string_from_user +#define __string_from_user(_item, _src) \ + __string(_item, _src) + +/* + * Macros mapping tp_assign() to "=", tp_memcpy() to memcpy() and tp_strcpy() to + * strcpy(). + */ +#undef tp_assign +#define tp_assign(dest, src) \ +__assign_##dest: \ + { \ + __typeof__(__typemap.dest) __tmp = (src); \ + lib_ring_buffer_align_ctx(&__ctx, lttng_alignof(__tmp)); \ + __chan->ops->event_write(&__ctx, &__tmp, sizeof(__tmp));\ + } \ + goto __end_field_##dest; + +/* fixed length array memcpy */ +#undef tp_memcpy_gen +#define tp_memcpy_gen(write_ops, dest, src, len) \ +__assign_##dest: \ + if (0) \ + (void) __typemap.dest; \ + lib_ring_buffer_align_ctx(&__ctx, lttng_alignof(__typemap.dest)); \ + __chan->ops->write_ops(&__ctx, src, len); \ + goto __end_field_##dest; + +#undef tp_memcpy +#define tp_memcpy(dest, src, len) \ + tp_memcpy_gen(event_write, dest, src, len) + +#undef tp_memcpy_from_user +#define tp_memcpy_from_user(dest, src, len) \ + tp_memcpy_gen(event_write_from_user, dest, src, len) + +/* variable length sequence memcpy */ +#undef tp_memcpy_dyn_gen +#define tp_memcpy_dyn_gen(write_ops, dest, src) \ +__assign_##dest##_1: \ + { \ + u32 __tmpl = __dynamic_len[__dynamic_len_idx]; \ + lib_ring_buffer_align_ctx(&__ctx, lttng_alignof(u32)); \ + __chan->ops->event_write(&__ctx, &__tmpl, sizeof(u32)); \ + } \ + goto __end_field_##dest##_1; \ +__assign_##dest##_2: \ + lib_ring_buffer_align_ctx(&__ctx, lttng_alignof(__typemap.dest)); \ + __chan->ops->write_ops(&__ctx, src, \ + sizeof(__typemap.dest) * __get_dynamic_array_len(dest));\ + goto __end_field_##dest##_2; + +#undef tp_memcpy_dyn_gen_2 +#define tp_memcpy_dyn_gen_2(write_ops, dest, src1, src2) \ +__assign_##dest##_1: \ + { \ + u32 __tmpl = __dynamic_len[__dynamic_len_idx] \ + + __dynamic_len[__dynamic_len_idx + 1]; \ + lib_ring_buffer_align_ctx(&__ctx, lttng_alignof(u32)); \ + __chan->ops->event_write(&__ctx, &__tmpl, sizeof(u32)); \ + } \ + goto __end_field_##dest##_1; \ +__assign_##dest##_2: \ + lib_ring_buffer_align_ctx(&__ctx, lttng_alignof(__typemap.dest)); \ + __chan->ops->write_ops(&__ctx, src1, \ + sizeof(__typemap.dest) * __get_dynamic_array_len(dest));\ + goto __end_field_##dest##_2; \ +__assign_##dest##_3: \ + __chan->ops->write_ops(&__ctx, src2, \ + sizeof(__typemap.dest) * __get_dynamic_array_len(dest));\ + goto __end_field_##dest##_3; + +#undef tp_memcpy_dyn +#define tp_memcpy_dyn(dest, src) \ + tp_memcpy_dyn_gen(event_write, dest, src) + +#undef tp_memcpy_dyn_2 +#define tp_memcpy_dyn_2(dest, src1, src2) \ + tp_memcpy_dyn_gen_2(event_write, dest, src1, src2) + +#undef tp_memcpy_dyn_from_user +#define tp_memcpy_dyn_from_user(dest, src) \ + tp_memcpy_dyn_gen(event_write_from_user, dest, src) + +/* + * The string length including the final \0. + */ +#undef tp_copy_string_from_user +#define tp_copy_string_from_user(dest, src) \ + __assign_##dest: \ + { \ + size_t __ustrlen; \ + \ + if (0) \ + (void) __typemap.dest; \ + lib_ring_buffer_align_ctx(&__ctx, lttng_alignof(__typemap.dest));\ + __ustrlen = __get_dynamic_array_len(dest); \ + if (likely(__ustrlen > 1)) { \ + __chan->ops->event_write_from_user(&__ctx, src, \ + __ustrlen - 1); \ + } \ + __chan->ops->event_memset(&__ctx, 0, 1); \ + } \ + goto __end_field_##dest; +#undef tp_strcpy +#define tp_strcpy(dest, src) \ + tp_memcpy(dest, src, __get_dynamic_array_len(dest)) + +/* Named field types must be defined in lttng-types.h */ + +#undef __get_str +#define __get_str(field) field + +#undef __get_dynamic_array +#define __get_dynamic_array(field) field + +/* Beware: this get len actually consumes the len value */ +#undef __get_dynamic_array_len +#define __get_dynamic_array_len(field) __dynamic_len[__dynamic_len_idx++] + +#undef TP_PROTO +#define TP_PROTO(args...) args + +#undef TP_ARGS +#define TP_ARGS(args...) args + +#undef TP_STRUCT__entry +#define TP_STRUCT__entry(args...) args + +#undef TP_fast_assign +#define TP_fast_assign(args...) args + +/* + * For state dump, check that "session" argument (mandatory) matches the + * session this event belongs to. Ensures that we write state dump data only + * into the started session, not into all sessions. + */ +#ifdef TP_SESSION_CHECK +#define _TP_SESSION_CHECK(session, csession) (session == csession) +#else /* TP_SESSION_CHECK */ +#define _TP_SESSION_CHECK(session, csession) 1 +#endif /* TP_SESSION_CHECK */ + +/* + * __dynamic_len array length is twice the number of fields due to + * __dynamic_array_enc_ext_2() and tp_memcpy_dyn_2(), which are the + * worse case, needing 2 entries per field. + */ +#undef DECLARE_EVENT_CLASS +#define DECLARE_EVENT_CLASS(_name, _proto, _args, _tstruct, _assign, _print) \ +static void __event_probe__##_name(void *__data, _proto) \ +{ \ + struct lttng_event *__event = __data; \ + struct lttng_channel *__chan = __event->chan; \ + struct lib_ring_buffer_ctx __ctx; \ + size_t __event_len, __event_align; \ + size_t __dynamic_len_idx = 0; \ + size_t __dynamic_len[2 * ARRAY_SIZE(__event_fields___##_name)]; \ + struct __event_typemap__##_name __typemap; \ + int __ret; \ + \ + if (0) { \ + (void) __dynamic_len_idx; /* don't warn if unused */ \ + (void) __typemap; /* don't warn if unused */ \ + } \ + if (!_TP_SESSION_CHECK(session, __chan->session)) \ + return; \ + if (unlikely(!ACCESS_ONCE(__chan->session->active))) \ + return; \ + if (unlikely(!ACCESS_ONCE(__chan->enabled))) \ + return; \ + if (unlikely(!ACCESS_ONCE(__event->enabled))) \ + return; \ + __event_len = __event_get_size__##_name(__dynamic_len, _args); \ + __event_align = __event_get_align__##_name(_args); \ + lib_ring_buffer_ctx_init(&__ctx, __chan->chan, __event, __event_len, \ + __event_align, -1); \ + __ret = __chan->ops->event_reserve(&__ctx, __event->id); \ + if (__ret < 0) \ + return; \ + /* Control code (field ordering) */ \ + _tstruct \ + __chan->ops->event_commit(&__ctx); \ + return; \ + /* Copy code, steered by control code */ \ + _assign \ +} + +#undef DECLARE_EVENT_CLASS_NOARGS +#define DECLARE_EVENT_CLASS_NOARGS(_name, _tstruct, _assign, _print) \ +static void __event_probe__##_name(void *__data) \ +{ \ + struct lttng_event *__event = __data; \ + struct lttng_channel *__chan = __event->chan; \ + struct lib_ring_buffer_ctx __ctx; \ + size_t __event_len, __event_align; \ + int __ret; \ + \ + if (!_TP_SESSION_CHECK(session, __chan->session)) \ + return; \ + if (unlikely(!ACCESS_ONCE(__chan->session->active))) \ + return; \ + if (unlikely(!ACCESS_ONCE(__chan->enabled))) \ + return; \ + if (unlikely(!ACCESS_ONCE(__event->enabled))) \ + return; \ + __event_len = 0; \ + __event_align = 1; \ + lib_ring_buffer_ctx_init(&__ctx, __chan->chan, __event, __event_len, \ + __event_align, -1); \ + __ret = __chan->ops->event_reserve(&__ctx, __event->id); \ + if (__ret < 0) \ + return; \ + /* Control code (field ordering) */ \ + _tstruct \ + __chan->ops->event_commit(&__ctx); \ + return; \ + /* Copy code, steered by control code */ \ + _assign \ +} + +#include TRACE_INCLUDE(TRACE_INCLUDE_FILE) + +/* + * Stage 10 of the trace events. + * + * Register/unregister probes at module load/unload. + */ + +#include "lttng-events-reset.h" /* Reset all macros within TRACE_EVENT */ + +#define TP_ID1(_token, _system) _token##_system +#define TP_ID(_token, _system) TP_ID1(_token, _system) +#define module_init_eval1(_token, _system) module_init(_token##_system) +#define module_init_eval(_token, _system) module_init_eval1(_token, _system) +#define module_exit_eval1(_token, _system) module_exit(_token##_system) +#define module_exit_eval(_token, _system) module_exit_eval1(_token, _system) + +#ifndef TP_MODULE_NOINIT +static int TP_ID(__lttng_events_init__, TRACE_SYSTEM)(void) +{ + wrapper_vmalloc_sync_all(); + return lttng_probe_register(&TP_ID(__probe_desc___, TRACE_SYSTEM)); +} + +static void TP_ID(__lttng_events_exit__, TRACE_SYSTEM)(void) +{ + lttng_probe_unregister(&TP_ID(__probe_desc___, TRACE_SYSTEM)); +} + +#ifndef TP_MODULE_NOAUTOLOAD +module_init_eval(__lttng_events_init__, TRACE_SYSTEM); +module_exit_eval(__lttng_events_exit__, TRACE_SYSTEM); +#endif + +#endif + +#undef module_init_eval +#undef module_exit_eval +#undef TP_ID1 +#undef TP_ID + +#undef TP_PROTO +#undef TP_ARGS +#undef TRACE_EVENT_FLAGS --- linux-3.11.0.orig/ubuntu/lttng/wrapper/vmalloc.h +++ linux-3.11.0/ubuntu/lttng/wrapper/vmalloc.h @@ -0,0 +1,63 @@ +#ifndef _LTTNG_WRAPPER_VMALLOC_H +#define _LTTNG_WRAPPER_VMALLOC_H + +/* + * wrapper/vmalloc.h + * + * wrapper around vmalloc_sync_all. Using KALLSYMS to get its address when + * available, else we need to have a kernel that exports this function to GPL + * modules. + * + * Copyright (C) 2011-2012 Mathieu Desnoyers + * + * 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; only + * version 2.1 of the License. + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifdef CONFIG_KALLSYMS + +#include +#include "kallsyms.h" + +static inline +void wrapper_vmalloc_sync_all(void) +{ + void (*vmalloc_sync_all_sym)(void); + + vmalloc_sync_all_sym = (void *) kallsyms_lookup_funcptr("vmalloc_sync_all"); + if (vmalloc_sync_all_sym) { + vmalloc_sync_all_sym(); + } else { +#ifdef CONFIG_X86 + /* + * Only x86 needs vmalloc_sync_all to make sure LTTng does not + * trigger recursive page faults. + */ + printk(KERN_WARNING "LTTng: vmalloc_sync_all symbol lookup failed.\n"); + printk(KERN_WARNING "Page fault handler and NMI tracing might trigger faults.\n"); +#endif + } +} +#else + +#include + +static inline +void wrapper_vmalloc_sync_all(void) +{ + return vmalloc_sync_all(); +} +#endif + +#endif /* _LTTNG_WRAPPER_VMALLOC_H */ --- linux-3.11.0.orig/ubuntu/lttng/wrapper/nsproxy.h +++ linux-3.11.0/ubuntu/lttng/wrapper/nsproxy.h @@ -0,0 +1,42 @@ +#ifndef _LTTNG_WRAPPER_NSPROXY_H +#define _LTTNG_WRAPPER_NSPROXY_H + +/* + * wrapper/nsproxy.h + * + * Copyright (C) 2011-2012 Mathieu Desnoyers + * + * 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; only + * version 2.1 of the License. + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include +#include + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,11,0)) +static inline +struct pid_namespace *lttng_get_proxy_pid_ns(struct nsproxy *proxy) +{ + return proxy->pid_ns_for_children; +} +#else +static inline +struct pid_namespace *lttng_get_proxy_pid_ns(struct nsproxy *proxy) +{ + return proxy->pid_ns; +} +#endif + + +#endif /* _LTTNG_WRAPPER_NSPROXY_H */ --- linux-3.11.0.orig/ubuntu/lttng/wrapper/ftrace.h +++ linux-3.11.0/ubuntu/lttng/wrapper/ftrace.h @@ -0,0 +1,84 @@ +#ifndef _LTTNG_WRAPPER_FTRACE_H +#define _LTTNG_WRAPPER_FTRACE_H + +/* + * wrapper/ftrace.h + * + * wrapper around vmalloc_sync_all. Using KALLSYMS to get its address when + * available, else we need to have a kernel that exports this function to GPL + * modules. + * + * Copyright (C) 2011-2012 Mathieu Desnoyers + * + * 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; only + * version 2.1 of the License. + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include + +#ifdef CONFIG_KALLSYMS + +#include +#include "kallsyms.h" + +static inline +int wrapper_register_ftrace_function_probe(char *glob, + struct ftrace_probe_ops *ops, void *data) +{ + int (*register_ftrace_function_probe_sym)(char *glob, + struct ftrace_probe_ops *ops, void *data); + + register_ftrace_function_probe_sym = (void *) kallsyms_lookup_funcptr("register_ftrace_function_probe"); + if (register_ftrace_function_probe_sym) { + return register_ftrace_function_probe_sym(glob, ops, data); + } else { + printk(KERN_WARNING "LTTng: register_ftrace_function_probe symbol lookup failed.\n"); + return -EINVAL; + } +} + +static inline +void wrapper_unregister_ftrace_function_probe(char *glob, + struct ftrace_probe_ops *ops, void *data) +{ + void (*unregister_ftrace_function_probe_sym)(char *glob, + struct ftrace_probe_ops *ops, void *data); + + unregister_ftrace_function_probe_sym = (void *) kallsyms_lookup_funcptr("unregister_ftrace_function_probe"); + if (unregister_ftrace_function_probe_sym) { + unregister_ftrace_function_probe_sym(glob, ops, data); + } else { + printk(KERN_WARNING "LTTng: unregister_ftrace_function_probe symbol lookup failed.\n"); + WARN_ON(1); + } +} + +#else + +static inline +int wrapper_register_ftrace_function_probe(char *glob, + struct ftrace_probe_ops *ops, void *data) +{ + return register_ftrace_function_probe(glob, ops, data); +} + +static inline +void wrapper_unregister_ftrace_function_probe(char *glob, + struct ftrace_probe_ops *ops, void *data) +{ + return unregister_ftrace_function_probe(glob, ops, data); +} +#endif + +#endif /* _LTTNG_WRAPPER_FTRACE_H */ --- linux-3.11.0.orig/ubuntu/lttng/wrapper/splice.c +++ linux-3.11.0/ubuntu/lttng/wrapper/splice.c @@ -0,0 +1,60 @@ +/* + * wrapper/splice.c + * + * wrapper around splice_to_pipe. Using KALLSYMS to get its address when + * available, else we need to have a kernel that exports this function to GPL + * modules. + * + * Copyright (C) 2011-2012 Mathieu Desnoyers + * + * 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; only + * version 2.1 of the License. + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifdef CONFIG_KALLSYMS + +#include +#include +#include +#include "kallsyms.h" + +static +ssize_t (*splice_to_pipe_sym)(struct pipe_inode_info *pipe, + struct splice_pipe_desc *spd); + +ssize_t wrapper_splice_to_pipe(struct pipe_inode_info *pipe, + struct splice_pipe_desc *spd) +{ + if (!splice_to_pipe_sym) + splice_to_pipe_sym = (void *) kallsyms_lookup_funcptr("splice_to_pipe"); + if (splice_to_pipe_sym) { + return splice_to_pipe_sym(pipe, spd); + } else { + printk(KERN_WARNING "LTTng: splice_to_pipe symbol lookup failed.\n"); + return -ENOSYS; + } +} + +#else + +#include +#include + +ssize_t wrapper_splice_to_pipe(struct pipe_inode_info *pipe, + struct splice_pipe_desc *spd) +{ + return splice_to_pipe(pipe, spd); +} + +#endif --- linux-3.11.0.orig/ubuntu/lttng/wrapper/random.h +++ linux-3.11.0/ubuntu/lttng/wrapper/random.h @@ -0,0 +1,32 @@ +#ifndef _LTTNG_WRAPPER_RANDOM_H +#define _LTTNG_WRAPPER_RANDOM_H + +/* + * wrapper/random.h + * + * wrapper around bootid read. Using KALLSYMS to get its address when + * available, else we need to have a kernel that exports this function to GPL + * modules. + * + * Copyright (C) 2011-2012 Mathieu Desnoyers + * + * 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; only + * version 2.1 of the License. + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#define BOOT_ID_LEN 37 + +int wrapper_get_bootid(char *bootid); + +#endif /* _LTTNG_WRAPPER_RANDOM_H */ --- linux-3.11.0.orig/ubuntu/lttng/wrapper/poll.h +++ linux-3.11.0/ubuntu/lttng/wrapper/poll.h @@ -0,0 +1,33 @@ +#ifndef _LTTNG_WRAPPER_POLL_H +#define _LTTNG_WRAPPER_POLL_H + +/* + * wrapper/poll.h + * + * Copyright (C) 2011-2012 Mathieu Desnoyers + * + * 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; only + * version 2.1 of the License. + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include + +/* + * Note: poll_wait_set_exclusive() is defined as no-op. Thundering herd + * effect can be noticed with large number of consumer threads. + */ + +#define poll_wait_set_exclusive(poll_table) + +#endif /* _LTTNG_WRAPPER_POLL_H */ --- linux-3.11.0.orig/ubuntu/lttng/wrapper/irqdesc.h +++ linux-3.11.0/ubuntu/lttng/wrapper/irqdesc.h @@ -0,0 +1,33 @@ +#ifndef _LTTNG_WRAPPER_IRQDESC_H +#define _LTTNG_WRAPPER_IRQDESC_H + +/* + * wrapper/irqdesc.h + * + * wrapper around irq_to_desc. Using KALLSYMS to get its address when + * available, else we need to have a kernel that exports this function to GPL + * modules. + * + * Copyright (C) 2011-2012 Mathieu Desnoyers + * + * 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; only + * version 2.1 of the License. + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include +#include + +struct irq_desc *wrapper_irq_to_desc(unsigned int irq); + +#endif /* _LTTNG_WRAPPER_IRQDESC_H */ --- linux-3.11.0.orig/ubuntu/lttng/wrapper/tracepoint.h +++ linux-3.11.0/ubuntu/lttng/wrapper/tracepoint.h @@ -0,0 +1,44 @@ +#ifndef _LTTNG_WRAPPER_TRACEPOINT_H +#define _LTTNG_WRAPPER_TRACEPOINT_H + +/* + * wrapper/tracepoint.h + * + * wrapper around DECLARE_EVENT_CLASS. + * + * Copyright (C) 2011-2012 Mathieu Desnoyers + * + * 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; only + * version 2.1 of the License. + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include +#include + +#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,35)) + +#define DECLARE_EVENT_CLASS(name, proto, args, tstruct, assign, print) + +#endif + +#ifndef HAVE_KABI_2635_TRACEPOINT + +#define kabi_2635_tracepoint_probe_register tracepoint_probe_register +#define kabi_2635_tracepoint_probe_unregister tracepoint_probe_unregister +#define kabi_2635_tracepoint_probe_register_noupdate tracepoint_probe_register_noupdate +#define kabi_2635_tracepoint_probe_unregister_noupdate tracepoint_probe_unregister_noupdate + +#endif /* HAVE_KABI_2635_TRACEPOINT */ + +#endif /* _LTTNG_WRAPPER_TRACEPOINT_H */ --- linux-3.11.0.orig/ubuntu/lttng/wrapper/spinlock.h +++ linux-3.11.0/ubuntu/lttng/wrapper/spinlock.h @@ -0,0 +1,47 @@ +#ifndef _LTTNG_WRAPPER_SPINLOCK_H +#define _LTTNG_WRAPPER_SPINLOCK_H + +/* + * wrapper/spinlock.h + * + * Copyright (C) 2011-2012 Mathieu Desnoyers + * + * 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; only + * version 2.1 of the License. + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include + +#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,33)) + +#include + +#define raw_spin_lock_init(lock) \ + do { \ + raw_spinlock_t __lock = __RAW_SPIN_LOCK_UNLOCKED; \ + memcpy(lock, &__lock, sizeof(lock)); \ + } while (0) + +#define raw_spin_is_locked(lock) __raw_spin_is_locked(lock) + +#define wrapper_desc_spin_lock(lock) spin_lock(lock) +#define wrapper_desc_spin_unlock(lock) spin_unlock(lock) + +#else + +#define wrapper_desc_spin_lock(lock) raw_spin_lock(lock) +#define wrapper_desc_spin_unlock(lock) raw_spin_unlock(lock) + +#endif +#endif /* _LTTNG_WRAPPER_SPINLOCK_H */ --- linux-3.11.0.orig/ubuntu/lttng/wrapper/fdtable.h +++ linux-3.11.0/ubuntu/lttng/wrapper/fdtable.h @@ -0,0 +1,44 @@ +#ifndef _LTTNG_WRAPPER_FDTABLE_H +#define _LTTNG_WRAPPER_FDTABLE_H + +/* + * wrapper/fdtable.h + * + * Copyright (C) 2013 Mathieu Desnoyers + * + * 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; only + * version 2.1 of the License. + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include +#include + +#if (LINUX_VERSION_CODE < KERNEL_VERSION(3,7,0)) + +int lttng_iterate_fd(struct files_struct *files, + unsigned int first, + int (*cb)(const void *, struct file *, unsigned int), + const void *ctx); + +#else + +/* + * iterate_fd() appeared at commit + * c3c073f808b22dfae15ef8412b6f7b998644139a in the Linux kernel (first + * released kernel: v3.7). + */ +#define lttng_iterate_fd iterate_fd + +#endif +#endif /* _LTTNG_WRAPPER_FDTABLE_H */ --- linux-3.11.0.orig/ubuntu/lttng/wrapper/splice.h +++ linux-3.11.0/ubuntu/lttng/wrapper/splice.h @@ -0,0 +1,37 @@ +#ifndef _LTTNG_WRAPPER_SPLICE_H +#define _LTTNG_WRAPPER_SPLICE_H + +/* + * wrapper/splice.h + * + * wrapper around splice_to_pipe. Using KALLSYMS to get its address when + * available, else we need to have a kernel that exports this function to GPL + * modules. + * + * Copyright (C) 2011-2012 Mathieu Desnoyers + * + * 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; only + * version 2.1 of the License. + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include + +ssize_t wrapper_splice_to_pipe(struct pipe_inode_info *pipe, + struct splice_pipe_desc *spd); + +#ifndef PIPE_DEF_BUFFERS +#define PIPE_DEF_BUFFERS 16 +#endif + +#endif /* _LTTNG_WRAPPER_SPLICE_H */ --- linux-3.11.0.orig/ubuntu/lttng/wrapper/perf.h +++ linux-3.11.0/ubuntu/lttng/wrapper/perf.h @@ -0,0 +1,71 @@ +#ifndef _LTTNG_WRAPPER_PERF_H +#define _LTTNG_WRAPPER_PERF_H + +/* + * wrapper/perf.h + * + * Copyright (C) 2010-2012 Mathieu Desnoyers + * + * 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; only + * version 2.1 of the License. + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include + +#if defined(CONFIG_PERF_EVENTS) && (LINUX_VERSION_CODE >= KERNEL_VERSION(3,0,99)) +static inline struct perf_event * +wrapper_perf_event_create_kernel_counter(struct perf_event_attr *attr, + int cpu, + struct task_struct *task, + perf_overflow_handler_t callback) +{ + return perf_event_create_kernel_counter(attr, cpu, task, callback, NULL); +} +#else /* defined(CONFIG_PERF_EVENTS) && (LINUX_VERSION_CODE >= KERNEL_VERSION(3,0,99)) */ + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,37)) +static inline struct perf_event * +wrapper_perf_event_create_kernel_counter(struct perf_event_attr *attr, + int cpu, + struct task_struct *task, + perf_overflow_handler_t callback) +{ + return perf_event_create_kernel_counter(attr, cpu, task, callback); +} +#else /* (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,37)) */ +static inline struct perf_event * +wrapper_perf_event_create_kernel_counter(struct perf_event_attr *attr, + int cpu, + struct task_struct *task, + perf_overflow_handler_t callback) +{ + pid_t pid; + + if (!task) + pid = -1; + else + pid = task->pid; + + return perf_event_create_kernel_counter(attr, cpu, pid, callback); +} + +#endif /* (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,37)) */ + +#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,36)) +#define local64_read(l) atomic64_read(l) +#endif + +#endif /* defined(CONFIG_PERF_EVENTS) && (LINUX_VERSION_CODE >= KERNEL_VERSION(3,0,99)) */ + +#endif /* _LTTNG_WRAPPER_PERF_H */ --- linux-3.11.0.orig/ubuntu/lttng/wrapper/writeback.h +++ linux-3.11.0/ubuntu/lttng/wrapper/writeback.h @@ -0,0 +1,61 @@ +#ifndef _LTTNG_WRAPPER_WRITEBACK_H +#define _LTTNG_WRAPPER_WRITEBACK_H + +/* + * wrapper/writeback.h + * + * wrapper around global_dirty_limit read. Using KALLSYMS with KALLSYMS_ALL + * to get its address when available, else we need to have a kernel that + * exports this variable to GPL modules. + * + * Copyright (C) 2013 Mentor Graphics Corp. + * + * 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; only + * version 2.1 of the License. + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifdef CONFIG_KALLSYMS_ALL + +#include +#include "kallsyms.h" + +static unsigned long *global_dirty_limit_sym; + +static inline +unsigned long wrapper_global_dirty_limit(void) +{ + if (!global_dirty_limit_sym) + global_dirty_limit_sym = + (void *) kallsyms_lookup_dataptr("global_dirty_limit"); + if (global_dirty_limit_sym) { + return *global_dirty_limit_sym; + } else { + printk(KERN_WARNING "LTTng: global_dirty_limit symbol lookup failed.\n"); + return 0; + } +} + +#else + +#include + +static inline +unsigned long wrapper_global_dirty_limit(void) +{ + return global_dirty_limit; +} + +#endif + +#endif /* _LTTNG_WRAPPER_WRITEBACK_H */ --- linux-3.11.0.orig/ubuntu/lttng/wrapper/trace-clock.h +++ linux-3.11.0/ubuntu/lttng/wrapper/trace-clock.h @@ -0,0 +1,98 @@ +#ifndef _LTTNG_TRACE_CLOCK_H +#define _LTTNG_TRACE_CLOCK_H + +/* + * wrapper/trace-clock.h + * + * Contains LTTng trace clock mapping to LTTng trace clock or mainline monotonic + * clock. This wrapper depends on CONFIG_HIGH_RES_TIMERS=y. + * + * Copyright (C) 2011-2012 Mathieu Desnoyers + * + * 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; only + * version 2.1 of the License. + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifdef CONFIG_HAVE_TRACE_CLOCK +#include +#else /* CONFIG_HAVE_TRACE_CLOCK */ + +#include +#include +#include +#include +#include +#include "../lttng-kernel-version.h" +#include "random.h" + +static inline u64 trace_clock_monotonic_wrapper(void) +{ + ktime_t ktime; + + /* + * Refuse to trace from NMIs with this wrapper, because an NMI could + * nest over the xtime write seqlock and deadlock. + */ + if (in_nmi()) + return (u64) -EIO; + + ktime = ktime_get(); + return ktime_to_ns(ktime); +} + +static inline u32 trace_clock_read32(void) +{ + return (u32) trace_clock_monotonic_wrapper(); +} + +static inline u64 trace_clock_read64(void) +{ + return (u64) trace_clock_monotonic_wrapper(); +} + +static inline u64 trace_clock_freq(void) +{ + return (u64) NSEC_PER_SEC; +} + +static inline int trace_clock_uuid(char *uuid) +{ + return wrapper_get_bootid(uuid); +} + +static inline int get_trace_clock(void) +{ + /* + * LTTng: Using mainline kernel monotonic clock. NMIs will not be + * traced, and expect significant performance degradation compared to + * the LTTng trace clocks. Integration of the LTTng 0.x trace clocks + * into LTTng 2.0 is planned in a near future. + */ + printk(KERN_WARNING "LTTng: Using mainline kernel monotonic clock.\n"); + printk(KERN_WARNING " * NMIs will not be traced,\n"); + printk(KERN_WARNING " * expect significant performance degradation compared to the\n"); + printk(KERN_WARNING " LTTng trace clocks.\n"); + printk(KERN_WARNING "Integration of the LTTng 0.x trace clocks into LTTng 2.0 is planned\n"); + printk(KERN_WARNING "in a near future.\n"); + + return 0; +} + +static inline void put_trace_clock(void) +{ +} + +#endif /* CONFIG_HAVE_TRACE_CLOCK */ + +#endif /* _LTTNG_TRACE_CLOCK_H */ --- linux-3.11.0.orig/ubuntu/lttng/wrapper/inline_memcpy.h +++ linux-3.11.0/ubuntu/lttng/wrapper/inline_memcpy.h @@ -0,0 +1,23 @@ +/* + * wrapper/inline_memcpy.h + * + * Copyright (C) 2010-2012 Mathieu Desnoyers + * + * 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; only + * version 2.1 of the License. + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#if !defined(__HAVE_ARCH_INLINE_MEMCPY) && !defined(inline_memcpy) +#define inline_memcpy memcpy +#endif --- linux-3.11.0.orig/ubuntu/lttng/wrapper/random.c +++ linux-3.11.0/ubuntu/lttng/wrapper/random.c @@ -0,0 +1,77 @@ +/* + * wrapper/random.c + * + * wrapper around bootid read. Using KALLSYMS to get its address when + * available, else we need to have a kernel that exports this function to GPL + * modules. + * + * Copyright (C) 2011-2012 Mathieu Desnoyers + * + * 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; only + * version 2.1 of the License. + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/* boot_id depends on sysctl */ +#if defined(CONFIG_SYSCTL) + +#include +#include +#include +#include +#include "random.h" + +/* + * Returns string boot id. + */ +int wrapper_get_bootid(char *bootid) +{ + struct file *file; + int ret; + ssize_t len; + mm_segment_t old_fs; + + file = filp_open("/proc/sys/kernel/random/boot_id", O_RDONLY, 0); + if (IS_ERR(file)) + return PTR_ERR(file); + + old_fs = get_fs(); + set_fs(KERNEL_DS); + + if (!file->f_op || !file->f_op->read) { + ret = -EINVAL; + goto end; + } + + len = file->f_op->read(file, bootid, BOOT_ID_LEN - 1, &file->f_pos); + if (len != BOOT_ID_LEN - 1) { + ret = -EINVAL; + goto end; + } + + bootid[BOOT_ID_LEN - 1] = '\0'; + ret = 0; +end: + set_fs(old_fs); + filp_close(file, current->files); + return ret; +} + +#else + +int wrapper_get_bootid(char *bootid) +{ + return -ENOSYS; +} + +#endif --- linux-3.11.0.orig/ubuntu/lttng/wrapper/uuid.h +++ linux-3.11.0/ubuntu/lttng/wrapper/uuid.h @@ -0,0 +1,43 @@ +#ifndef _LTTNG_WRAPPER_UUID_H +#define _LTTNG_WRAPPER_UUID_H + +/* + * wrapper/uuid.h + * + * Copyright (C) 2011-2012 Mathieu Desnoyers + * + * 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; only + * version 2.1 of the License. + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,35)) +#include +#else + +#include + +typedef struct { + __u8 b[16]; +} uuid_le; + +static inline +void uuid_le_gen(uuid_le *u) +{ + generate_random_uuid(u->b); +} + +#endif +#endif /* _LTTNG_WRAPPER_UUID_H */ --- linux-3.11.0.orig/ubuntu/lttng/wrapper/irqdesc.c +++ linux-3.11.0/ubuntu/lttng/wrapper/irqdesc.c @@ -0,0 +1,58 @@ +/* + * wrapper/irqdesc.c + * + * wrapper around irq_to_desc. Using KALLSYMS to get its address when + * available, else we need to have a kernel that exports this function to GPL + * modules. + * + * Copyright (C) 2011-2012 Mathieu Desnoyers + * + * 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; only + * version 2.1 of the License. + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifdef CONFIG_KALLSYMS + +#include +#include +#include +#include "kallsyms.h" +#include "irqdesc.h" + +static +struct irq_desc *(*irq_to_desc_sym)(unsigned int irq); + +struct irq_desc *wrapper_irq_to_desc(unsigned int irq) +{ + if (!irq_to_desc_sym) + irq_to_desc_sym = (void *) kallsyms_lookup_funcptr("irq_to_desc"); + if (irq_to_desc_sym) { + return irq_to_desc_sym(irq); + } else { + printk(KERN_WARNING "LTTng: irq_to_desc symbol lookup failed.\n"); + return NULL; + } +} + +#else + +#include +#include + +struct irq_desc *wrapper_irq_to_desc(unsigned int irq) +{ + return irq_to_desc(irq); +} + +#endif --- linux-3.11.0.orig/ubuntu/lttng/wrapper/kallsyms.h +++ linux-3.11.0/ubuntu/lttng/wrapper/kallsyms.h @@ -0,0 +1,51 @@ +#ifndef _LTTNG_WRAPPER_KALLSYMS_H +#define _LTTNG_WRAPPER_KALLSYMS_H + +/* + * wrapper/kallsyms.h + * + * wrapper around kallsyms_lookup_name. Implements arch-dependent code for + * arches where the address of the start of the function body is different + * from the pointer which can be used to call the function, e.g. ARM THUMB2. + * + * Copyright (C) 2011 Avik Sil (avik.sil@linaro.org) + * Copyright (C) 2011-2012 Mathieu Desnoyers + * + * 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; only + * version 2.1 of the License. + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include + +static inline +unsigned long kallsyms_lookup_funcptr(const char *name) +{ + unsigned long addr; + + addr = kallsyms_lookup_name(name); +#ifdef CONFIG_ARM +#ifdef CONFIG_THUMB2_KERNEL + if (addr) + addr |= 1; /* set bit 0 in address for thumb mode */ +#endif +#endif + return addr; +} + +static inline +unsigned long kallsyms_lookup_dataptr(const char *name) +{ + return kallsyms_lookup_name(name); +} +#endif /* _LTTNG_WRAPPER_KALLSYMS_H */ --- linux-3.11.0.orig/ubuntu/lttng/wrapper/fdtable.c +++ linux-3.11.0/ubuntu/lttng/wrapper/fdtable.c @@ -0,0 +1,57 @@ +/* + * wrapper/fdtable.c + * + * Copyright (C) 2013 Mathieu Desnoyers + * + * 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; only + * version 2.1 of the License. + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include +#include +#include "fdtable.h" + +#if (LINUX_VERSION_CODE < KERNEL_VERSION(3,7,0)) + +/* + * Reimplementation of iterate_fd() for kernels between 2.6.32 and 3.6 + * (inclusive). + */ +int lttng_iterate_fd(struct files_struct *files, + unsigned int first, + int (*cb)(const void *, struct file *, unsigned int), + const void *ctx) +{ + struct fdtable *fdt; + struct file *filp; + unsigned int i; + int res = 0; + + if (!files) + return 0; + spin_lock(&files->file_lock); + fdt = files_fdtable(files); + for (i = 0; i < fdt->max_fds; i++) { + filp = fcheck_files(files, i); + if (!filp) + continue; + res = cb(ctx, filp, i); + if (res) + break; + } + spin_unlock(&files->file_lock); + return res; +} + +#endif --- linux-3.11.0.orig/ubuntu/lttng/wrapper/ringbuffer/backend.h +++ linux-3.11.0/ubuntu/lttng/wrapper/ringbuffer/backend.h @@ -0,0 +1 @@ +#include "../../lib/ringbuffer/backend.h" --- linux-3.11.0.orig/ubuntu/lttng/wrapper/ringbuffer/frontend_api.h +++ linux-3.11.0/ubuntu/lttng/wrapper/ringbuffer/frontend_api.h @@ -0,0 +1 @@ +#include "../../lib/ringbuffer/frontend_api.h" --- linux-3.11.0.orig/ubuntu/lttng/wrapper/ringbuffer/vfs.h +++ linux-3.11.0/ubuntu/lttng/wrapper/ringbuffer/vfs.h @@ -0,0 +1 @@ +#include "../../lib/ringbuffer/vfs.h" --- linux-3.11.0.orig/ubuntu/lttng/wrapper/ringbuffer/frontend_internal.h +++ linux-3.11.0/ubuntu/lttng/wrapper/ringbuffer/frontend_internal.h @@ -0,0 +1 @@ +#include "../../lib/ringbuffer/frontend_internal.h" --- linux-3.11.0.orig/ubuntu/lttng/wrapper/ringbuffer/iterator.h +++ linux-3.11.0/ubuntu/lttng/wrapper/ringbuffer/iterator.h @@ -0,0 +1 @@ +#include "../../lib/ringbuffer/iterator.h" --- linux-3.11.0.orig/ubuntu/lttng/wrapper/ringbuffer/api.h +++ linux-3.11.0/ubuntu/lttng/wrapper/ringbuffer/api.h @@ -0,0 +1 @@ +#include "../../lib/ringbuffer/api.h" --- linux-3.11.0.orig/ubuntu/lttng/wrapper/ringbuffer/vatomic.h +++ linux-3.11.0/ubuntu/lttng/wrapper/ringbuffer/vatomic.h @@ -0,0 +1 @@ +#include "../../lib/ringbuffer/vatomic.h" --- linux-3.11.0.orig/ubuntu/lttng/wrapper/ringbuffer/backend_types.h +++ linux-3.11.0/ubuntu/lttng/wrapper/ringbuffer/backend_types.h @@ -0,0 +1 @@ +#include "../../lib/ringbuffer/backend_types.h" --- linux-3.11.0.orig/ubuntu/lttng/wrapper/ringbuffer/config.h +++ linux-3.11.0/ubuntu/lttng/wrapper/ringbuffer/config.h @@ -0,0 +1 @@ +#include "../../lib/ringbuffer/config.h" --- linux-3.11.0.orig/ubuntu/lttng/wrapper/ringbuffer/frontend.h +++ linux-3.11.0/ubuntu/lttng/wrapper/ringbuffer/frontend.h @@ -0,0 +1 @@ +#include "../../lib/ringbuffer/frontend.h" --- linux-3.11.0.orig/ubuntu/lttng/wrapper/ringbuffer/nohz.h +++ linux-3.11.0/ubuntu/lttng/wrapper/ringbuffer/nohz.h @@ -0,0 +1 @@ +#include "../../lib/ringbuffer/nohz.h" --- linux-3.11.0.orig/ubuntu/lttng/wrapper/ringbuffer/frontend_types.h +++ linux-3.11.0/ubuntu/lttng/wrapper/ringbuffer/frontend_types.h @@ -0,0 +1 @@ +#include "../../lib/ringbuffer/frontend_types.h" --- linux-3.11.0.orig/ubuntu/lttng/wrapper/ringbuffer/backend_internal.h +++ linux-3.11.0/ubuntu/lttng/wrapper/ringbuffer/backend_internal.h @@ -0,0 +1,2 @@ +#include "../../wrapper/inline_memcpy.h" +#include "../../lib/ringbuffer/backend_internal.h" --- linux-3.11.0.orig/ubuntu/include/Kbuild +++ linux-3.11.0/ubuntu/include/Kbuild @@ -0,0 +1,2 @@ +header-y += linux/ +header-y += uapi/ --- linux-3.11.0.orig/ubuntu/include/README +++ linux-3.11.0/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-3.11.0.orig/ubuntu/include/uapi/Kbuild +++ linux-3.11.0/ubuntu/include/uapi/Kbuild @@ -0,0 +1 @@ +header-y += linux/ --- linux-3.11.0.orig/ubuntu/include/uapi/linux/aufs_type.h +++ linux-3.11.0/ubuntu/include/uapi/linux/aufs_type.h @@ -0,0 +1,282 @@ +/* + * Copyright (C) 2005-2013 Junjiro R. Okajima + * + * This program, aufs is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public 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__ + +#define AUFS_NAME "aufs" + +#ifdef __KERNEL__ +/* + * define it before including all other headers. + * sched.h may use pr_* macros before defining "current", so define the + * no-current version first, and re-define later. + */ +#define pr_fmt(fmt) AUFS_NAME " %s:%d: " fmt, __func__, __LINE__ +#include +#undef pr_fmt +#define pr_fmt(fmt) \ + AUFS_NAME " %s:%d:%.*s[%d]: " fmt, __func__, __LINE__, \ + (int)sizeof(current->comm), current->comm, current->pid +#else +#include +#include +#endif /* __KERNEL__ */ + +#include + +#define AUFS_VERSION "3.x-rcN-20130902" + +/* 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 int8_t aufs_bindex_t; +#define AUFS_BRANCH_MAX 127 +#else +typedef int16_t 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_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 and copyup */ +#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_MFS_DEF_SEC 30 /* seconds */ +#define AUFS_MFS_MAX_SEC 3600 /* seconds */ +#define AUFS_PLINK_WARN 50 /* number of plinks in a single bucket */ + +/* 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 permissions and attributes */ +#define AUFS_BRPERM_RW "rw" +#define AUFS_BRPERM_RO "ro" +#define AUFS_BRPERM_RR "rr" +#define AUFS_BRRATTR_WH "wh" +#define AUFS_BRWATTR_NLWH "nolwh" +#define AUFS_BRATTR_UNPIN "unpin" + +/* ---------------------------------------------------------------------- */ + +/* ioctl */ +enum { + /* readdir in userspace */ + AuCtl_RDU, + AuCtl_RDU_INO, + + /* pathconf wrapper */ + AuCtl_WBR_FD, + + /* busy inode */ + AuCtl_IBUSY, + + /* move-down */ + AuCtl_MVDOWN +}; + +/* 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))) +#endif + +#ifdef __KERNEL__ +#ifndef __packed +#define __packed __attribute__((packed)) +#endif +#endif + +struct au_rdu_cookie { + uint64_t h_pos; + int16_t bindex; + uint8_t flags; + uint8_t pad; + uint32_t generation; +} __aligned(8); + +struct au_rdu_ent { + uint64_t ino; + int16_t bindex; + uint8_t type; + uint8_t nlen; + uint8_t 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(uint64_t)); +} + +union au_rdu_ent_ul { + struct au_rdu_ent __user *e; + uint64_t ul; +}; + +enum { + AufsCtlRduV_SZ, + AufsCtlRduV_End +}; + +struct aufs_rdu { + /* input */ + union { + uint64_t sz; /* AuCtl_RDU */ + uint64_t nent; /* AuCtl_RDU_INO */ + }; + union au_rdu_ent_ul ent; + uint16_t verify[AufsCtlRduV_End]; + + /* input/output */ + uint32_t blk; + + /* output */ + union au_rdu_ent_ul tail; + /* number of entries which were added in a single call */ + uint64_t rent; + uint8_t full; + uint8_t shwh; + + struct au_rdu_cookie cookie; +} __aligned(8); + +/* ---------------------------------------------------------------------- */ + +struct aufs_wbr_fd { + uint32_t oflags; + int16_t brid; +} __aligned(8); + +/* ---------------------------------------------------------------------- */ + +struct aufs_ibusy { + uint64_t ino, h_ino; + int16_t bindex; +} __aligned(8); + +/* ---------------------------------------------------------------------- */ + +/* error code for move-down */ +/* the actual message strings are implemented in aufs-util.git */ +enum { + EAU_MVDOWN_OPAQUE = 1, + EAU_MVDOWN_WHITEOUT, + EAU_MVDOWN_UPPER, + EAU_MVDOWN_BOTTOM, + EAU_MVDOWN_NOUPPER, + EAU_MVDOWN_NOLOWERBR, + EAU_Last +}; + +/* flags for move-down */ +#define AUFS_MVDOWN_DMSG 1 +#define AUFS_MVDOWN_OWLOWER (1 << 1) /* overwrite lower */ +#define AUFS_MVDOWN_KUPPER (1 << 2) /* keep upper */ +#define AUFS_MVDOWN_ROLOWER (1 << 3) /* do even if lower is RO */ +#define AUFS_MVDOWN_ROLOWER_R (1 << 4) /* did on lower RO */ +#define AUFS_MVDOWN_ROUPPER (1 << 5) /* do even if upper is RO */ +#define AUFS_MVDOWN_ROUPPER_R (1 << 6) /* did on upper RO */ +#define AUFS_MVDOWN_BRID_UPPER (1 << 7) /* upper brid */ +#define AUFS_MVDOWN_BRID_LOWER (1 << 8) /* lower brid */ +/* will be added more */ + +enum { + AUFS_MVDOWN_UPPER, + AUFS_MVDOWN_LOWER, + AUFS_MVDOWN_NARRAY +}; + +struct aufs_mvdown { + uint32_t flags; + struct { + int16_t bindex; + int16_t brid; + } a[AUFS_MVDOWN_NARRAY]; + int8_t au_errno; + /* will be added more */ +} __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 _IOW(AuCtlType, AuCtl_WBR_FD, \ + struct aufs_wbr_fd) +#define AUFS_CTL_IBUSY _IOWR(AuCtlType, AuCtl_IBUSY, struct aufs_ibusy) +#define AUFS_CTL_MVDOWN _IOWR(AuCtlType, AuCtl_MVDOWN, \ + struct aufs_mvdown) + +#endif /* __AUFS_TYPE_H__ */ --- linux-3.11.0.orig/ubuntu/include/uapi/linux/Kbuild +++ linux-3.11.0/ubuntu/include/uapi/linux/Kbuild @@ -0,0 +1 @@ +header-y = aufs_type.h --- linux-3.11.0.orig/ubuntu/include/linux/aufs_type.h +++ linux-3.11.0/ubuntu/include/linux/aufs_type.h @@ -0,0 +1,19 @@ +/* + * Copyright (C) 2012-2013 Junjiro R. Okajima + * + * This program, aufs is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include --- linux-3.11.0.orig/ubuntu/include/linux/Kbuild +++ linux-3.11.0/ubuntu/include/linux/Kbuild @@ -0,0 +1 @@ +header-y += aufs_type.h --- linux-3.11.0.orig/ubuntu/lttng-modules/lttng-tracer.h +++ linux-3.11.0/ubuntu/lttng-modules/lttng-tracer.h @@ -0,0 +1,80 @@ +#ifndef _LTTNG_TRACER_H +#define _LTTNG_TRACER_H + +/* + * lttng-tracer.h + * + * This contains the definitions for the Linux Trace Toolkit Next + * Generation tracer. + * + * Copyright (C) 2005-2012 Mathieu Desnoyers + * + * 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; only + * version 2.1 of the License. + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "wrapper/trace-clock.h" +#include "lttng-tracer-core.h" +#include "lttng-events.h" + +#define LTTNG_MODULES_MAJOR_VERSION 2 +#define LTTNG_MODULES_MINOR_VERSION 3 +#define LTTNG_MODULES_PATCHLEVEL_VERSION 0 + +#define LTTNG_VERSION_NAME "Dominus Vobiscum" +#define LTTNG_VERSION_DESCRIPTION \ + "A very succulent line-up of beers brewed at Microbrasserie Charlevoix. Elaborated starting from special malts and fermented with a Belgian yeast. These beers are refermented in bottle and will make you discover the richness of wheat, amber and triple styles." + +#ifndef CHAR_BIT +#define CHAR_BIT 8 +#endif + +/* Number of bytes to log with a read/write event */ +#define LTTNG_LOG_RW_SIZE 32L +#define LTTNG_MAX_SMALL_SIZE 0xFFFFU + +#ifdef RING_BUFFER_ALIGN +#define lttng_alignof(type) __alignof__(type) +#else +#define lttng_alignof(type) 1 +#endif + +/* Tracer properties */ +#define CTF_MAGIC_NUMBER 0xC1FC1FC1 +#define TSDL_MAGIC_NUMBER 0x75D11D57 + +/* CTF specification version followed */ +#define CTF_SPEC_MAJOR 1 +#define CTF_SPEC_MINOR 8 + +/* + * Number of milliseconds to retry before failing metadata writes on buffer full + * condition. (10 seconds) + */ +#define LTTNG_METADATA_TIMEOUT_MSEC 10000 + +#define LTTNG_RFLAG_EXTENDED RING_BUFFER_RFLAG_END +#define LTTNG_RFLAG_END (LTTNG_RFLAG_EXTENDED << 1) + +#endif /* _LTTNG_TRACER_H */ --- linux-3.11.0.orig/ubuntu/lttng-modules/lttng-context-vpid.c +++ linux-3.11.0/ubuntu/lttng-modules/lttng-context-vpid.c @@ -0,0 +1,87 @@ +/* + * lttng-context-vpid.c + * + * LTTng vPID context. + * + * Copyright (C) 2009-2012 Mathieu Desnoyers + * + * 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; only + * version 2.1 of the License. + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include +#include +#include +#include "lttng-events.h" +#include "wrapper/ringbuffer/frontend_types.h" +#include "wrapper/vmalloc.h" +#include "lttng-tracer.h" + +static +size_t vpid_get_size(size_t offset) +{ + size_t size = 0; + + size += lib_ring_buffer_align(offset, lttng_alignof(pid_t)); + size += sizeof(pid_t); + return size; +} + +static +void vpid_record(struct lttng_ctx_field *field, + struct lib_ring_buffer_ctx *ctx, + struct lttng_channel *chan) +{ + pid_t vpid; + + /* + * nsproxy can be NULL when scheduled out of exit. + */ + if (!current->nsproxy) + vpid = 0; + else + vpid = task_tgid_vnr(current); + lib_ring_buffer_align_ctx(ctx, lttng_alignof(vpid)); + chan->ops->event_write(ctx, &vpid, sizeof(vpid)); +} + +int lttng_add_vpid_to_ctx(struct lttng_ctx **ctx) +{ + struct lttng_ctx_field *field; + + field = lttng_append_context(ctx); + if (!field) + return -ENOMEM; + if (lttng_find_context(*ctx, "vpid")) { + lttng_remove_context_field(ctx, field); + return -EEXIST; + } + field->event_field.name = "vpid"; + field->event_field.type.atype = atype_integer; + field->event_field.type.u.basic.integer.size = sizeof(pid_t) * CHAR_BIT; + field->event_field.type.u.basic.integer.alignment = lttng_alignof(pid_t) * CHAR_BIT; + field->event_field.type.u.basic.integer.signedness = lttng_is_signed_type(pid_t); + field->event_field.type.u.basic.integer.reverse_byte_order = 0; + field->event_field.type.u.basic.integer.base = 10; + field->event_field.type.u.basic.integer.encoding = lttng_encode_none; + field->get_size = vpid_get_size; + field->record = vpid_record; + wrapper_vmalloc_sync_all(); + return 0; +} +EXPORT_SYMBOL_GPL(lttng_add_vpid_to_ctx); + +MODULE_LICENSE("GPL and additional rights"); +MODULE_AUTHOR("Mathieu Desnoyers"); +MODULE_DESCRIPTION("Linux Trace Toolkit vPID Context"); --- linux-3.11.0.orig/ubuntu/lttng-modules/lttng-context.c +++ linux-3.11.0/ubuntu/lttng-modules/lttng-context.c @@ -0,0 +1,105 @@ +/* + * lttng-context.c + * + * LTTng trace/channel/event context management. + * + * Copyright (C) 2011-2012 Mathieu Desnoyers + * + * 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; only + * version 2.1 of the License. + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include +#include +#include +#include +#include "wrapper/vmalloc.h" /* for wrapper_vmalloc_sync_all() */ +#include "lttng-events.h" +#include "lttng-tracer.h" + +int lttng_find_context(struct lttng_ctx *ctx, const char *name) +{ + unsigned int i; + + for (i = 0; i < ctx->nr_fields; i++) { + /* Skip allocated (but non-initialized) contexts */ + if (!ctx->fields[i].event_field.name) + continue; + if (!strcmp(ctx->fields[i].event_field.name, name)) + return 1; + } + return 0; +} +EXPORT_SYMBOL_GPL(lttng_find_context); + +/* + * Note: as we append context information, the pointer location may change. + */ +struct lttng_ctx_field *lttng_append_context(struct lttng_ctx **ctx_p) +{ + struct lttng_ctx_field *field; + struct lttng_ctx *ctx; + + if (!*ctx_p) { + *ctx_p = kzalloc(sizeof(struct lttng_ctx), GFP_KERNEL); + if (!*ctx_p) + return NULL; + } + ctx = *ctx_p; + if (ctx->nr_fields + 1 > ctx->allocated_fields) { + struct lttng_ctx_field *new_fields; + + ctx->allocated_fields = max_t(size_t, 1, 2 * ctx->allocated_fields); + new_fields = kzalloc(ctx->allocated_fields * sizeof(struct lttng_ctx_field), GFP_KERNEL); + if (!new_fields) + return NULL; + if (ctx->fields) + memcpy(new_fields, ctx->fields, sizeof(*ctx->fields) * ctx->nr_fields); + kfree(ctx->fields); + ctx->fields = new_fields; + } + field = &ctx->fields[ctx->nr_fields]; + ctx->nr_fields++; + return field; +} +EXPORT_SYMBOL_GPL(lttng_append_context); + +/* + * Remove last context field. + */ +void lttng_remove_context_field(struct lttng_ctx **ctx_p, + struct lttng_ctx_field *field) +{ + struct lttng_ctx *ctx; + + ctx = *ctx_p; + ctx->nr_fields--; + WARN_ON_ONCE(&ctx->fields[ctx->nr_fields] != field); + memset(&ctx->fields[ctx->nr_fields], 0, sizeof(struct lttng_ctx_field)); +} +EXPORT_SYMBOL_GPL(lttng_remove_context_field); + +void lttng_destroy_context(struct lttng_ctx *ctx) +{ + int i; + + if (!ctx) + return; + for (i = 0; i < ctx->nr_fields; i++) { + if (ctx->fields[i].destroy) + ctx->fields[i].destroy(&ctx->fields[i]); + } + kfree(ctx->fields); + kfree(ctx); +} --- linux-3.11.0.orig/ubuntu/lttng-modules/mit-license.txt +++ linux-3.11.0/ubuntu/lttng-modules/mit-license.txt @@ -0,0 +1,19 @@ +Copyright (c) ... + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. --- linux-3.11.0.orig/ubuntu/lttng-modules/lttng-abi.c +++ linux-3.11.0/ubuntu/lttng-modules/lttng-abi.c @@ -0,0 +1,1588 @@ +/* + * lttng-abi.c + * + * LTTng ABI + * + * Copyright (C) 2010-2012 Mathieu Desnoyers + * + * 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; only + * version 2.1 of the License. + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + * + * + * Mimic system calls for: + * - session creation, returns a file descriptor or failure. + * - channel creation, returns a file descriptor or failure. + * - Operates on a session file descriptor + * - Takes all channel options as parameters. + * - stream get, returns a file descriptor or failure. + * - Operates on a channel file descriptor. + * - stream notifier get, returns a file descriptor or failure. + * - Operates on a channel file descriptor. + * - event creation, returns a file descriptor or failure. + * - Operates on a channel file descriptor + * - Takes an event name as parameter + * - Takes an instrumentation source as parameter + * - e.g. tracepoints, dynamic_probes... + * - Takes instrumentation source specific arguments. + */ + +#include +#include +#include +#include +#include +#include +#include "wrapper/vmalloc.h" /* for wrapper_vmalloc_sync_all() */ +#include "wrapper/ringbuffer/vfs.h" +#include "wrapper/ringbuffer/backend.h" +#include "wrapper/ringbuffer/frontend.h" +#include "wrapper/poll.h" +#include "lttng-abi.h" +#include "lttng-abi-old.h" +#include "lttng-events.h" +#include "lttng-tracer.h" +#include "lib/ringbuffer/frontend_types.h" + +/* + * This is LTTng's own personal way to create a system call as an external + * module. We use ioctl() on /proc/lttng. + */ + +static struct proc_dir_entry *lttng_proc_dentry; +static const struct file_operations lttng_fops; +static const struct file_operations lttng_session_fops; +static const struct file_operations lttng_channel_fops; +static const struct file_operations lttng_metadata_fops; +static const struct file_operations lttng_event_fops; +static struct file_operations lttng_stream_ring_buffer_file_operations; + +/* + * Teardown management: opened file descriptors keep a refcount on the module, + * so it can only exit when all file descriptors are closed. + */ + +static +int lttng_abi_create_session(void) +{ + struct lttng_session *session; + struct file *session_file; + int session_fd, ret; + + session = lttng_session_create(); + if (!session) + return -ENOMEM; + session_fd = get_unused_fd(); + if (session_fd < 0) { + ret = session_fd; + goto fd_error; + } + session_file = anon_inode_getfile("[lttng_session]", + <tng_session_fops, + session, O_RDWR); + if (IS_ERR(session_file)) { + ret = PTR_ERR(session_file); + goto file_error; + } + session->file = session_file; + fd_install(session_fd, session_file); + return session_fd; + +file_error: + put_unused_fd(session_fd); +fd_error: + lttng_session_destroy(session); + return ret; +} + +static +int lttng_abi_tracepoint_list(void) +{ + struct file *tracepoint_list_file; + int file_fd, ret; + + file_fd = get_unused_fd(); + if (file_fd < 0) { + ret = file_fd; + goto fd_error; + } + + tracepoint_list_file = anon_inode_getfile("[lttng_session]", + <tng_tracepoint_list_fops, + NULL, O_RDWR); + if (IS_ERR(tracepoint_list_file)) { + ret = PTR_ERR(tracepoint_list_file); + goto file_error; + } + ret = lttng_tracepoint_list_fops.open(NULL, tracepoint_list_file); + if (ret < 0) + goto open_error; + fd_install(file_fd, tracepoint_list_file); + if (file_fd < 0) { + ret = file_fd; + goto fd_error; + } + return file_fd; + +open_error: + fput(tracepoint_list_file); +file_error: + put_unused_fd(file_fd); +fd_error: + return ret; +} + +static +void lttng_abi_tracer_version(struct lttng_kernel_tracer_version *v) +{ + v->major = LTTNG_MODULES_MAJOR_VERSION; + v->minor = LTTNG_MODULES_MINOR_VERSION; + v->patchlevel = LTTNG_MODULES_PATCHLEVEL_VERSION; +} + +static +long lttng_abi_add_context(struct file *file, + struct lttng_kernel_context *context_param, + struct lttng_ctx **ctx, struct lttng_session *session) +{ + + if (session->been_active) + return -EPERM; + + switch (context_param->ctx) { + case LTTNG_KERNEL_CONTEXT_PID: + return lttng_add_pid_to_ctx(ctx); + case LTTNG_KERNEL_CONTEXT_PRIO: + return lttng_add_prio_to_ctx(ctx); + case LTTNG_KERNEL_CONTEXT_NICE: + return lttng_add_nice_to_ctx(ctx); + case LTTNG_KERNEL_CONTEXT_VPID: + return lttng_add_vpid_to_ctx(ctx); + case LTTNG_KERNEL_CONTEXT_TID: + return lttng_add_tid_to_ctx(ctx); + case LTTNG_KERNEL_CONTEXT_VTID: + return lttng_add_vtid_to_ctx(ctx); + case LTTNG_KERNEL_CONTEXT_PPID: + return lttng_add_ppid_to_ctx(ctx); + case LTTNG_KERNEL_CONTEXT_VPPID: + return lttng_add_vppid_to_ctx(ctx); + case LTTNG_KERNEL_CONTEXT_PERF_COUNTER: + context_param->u.perf_counter.name[LTTNG_KERNEL_SYM_NAME_LEN - 1] = '\0'; + return lttng_add_perf_counter_to_ctx(context_param->u.perf_counter.type, + context_param->u.perf_counter.config, + context_param->u.perf_counter.name, + ctx); + case LTTNG_KERNEL_CONTEXT_PROCNAME: + return lttng_add_procname_to_ctx(ctx); + case LTTNG_KERNEL_CONTEXT_HOSTNAME: + return lttng_add_hostname_to_ctx(ctx); + default: + return -EINVAL; + } +} + +/** + * lttng_ioctl - lttng syscall through ioctl + * + * @file: the file + * @cmd: the command + * @arg: command arg + * + * This ioctl implements lttng commands: + * LTTNG_KERNEL_SESSION + * Returns a LTTng trace session file descriptor + * LTTNG_KERNEL_TRACER_VERSION + * Returns the LTTng kernel tracer version + * LTTNG_KERNEL_TRACEPOINT_LIST + * Returns a file descriptor listing available tracepoints + * LTTNG_KERNEL_WAIT_QUIESCENT + * Returns after all previously running probes have completed + * + * The returned session will be deleted when its file descriptor is closed. + */ +static +long lttng_ioctl(struct file *file, unsigned int cmd, unsigned long arg) +{ + switch (cmd) { + case LTTNG_KERNEL_OLD_SESSION: + case LTTNG_KERNEL_SESSION: + return lttng_abi_create_session(); + case LTTNG_KERNEL_OLD_TRACER_VERSION: + { + struct lttng_kernel_tracer_version v; + struct lttng_kernel_old_tracer_version oldv; + struct lttng_kernel_old_tracer_version *uversion = + (struct lttng_kernel_old_tracer_version __user *) arg; + + lttng_abi_tracer_version(&v); + oldv.major = v.major; + oldv.minor = v.minor; + oldv.patchlevel = v.patchlevel; + + if (copy_to_user(uversion, &oldv, sizeof(oldv))) + return -EFAULT; + return 0; + } + case LTTNG_KERNEL_TRACER_VERSION: + { + struct lttng_kernel_tracer_version version; + struct lttng_kernel_tracer_version *uversion = + (struct lttng_kernel_tracer_version __user *) arg; + + lttng_abi_tracer_version(&version); + + if (copy_to_user(uversion, &version, sizeof(version))) + return -EFAULT; + return 0; + } + case LTTNG_KERNEL_OLD_TRACEPOINT_LIST: + case LTTNG_KERNEL_TRACEPOINT_LIST: + return lttng_abi_tracepoint_list(); + case LTTNG_KERNEL_OLD_WAIT_QUIESCENT: + case LTTNG_KERNEL_WAIT_QUIESCENT: + synchronize_trace(); + return 0; + case LTTNG_KERNEL_OLD_CALIBRATE: + { + struct lttng_kernel_old_calibrate __user *ucalibrate = + (struct lttng_kernel_old_calibrate __user *) arg; + struct lttng_kernel_old_calibrate old_calibrate; + struct lttng_kernel_calibrate calibrate; + int ret; + + if (copy_from_user(&old_calibrate, ucalibrate, sizeof(old_calibrate))) + return -EFAULT; + calibrate.type = old_calibrate.type; + ret = lttng_calibrate(&calibrate); + if (copy_to_user(ucalibrate, &old_calibrate, sizeof(old_calibrate))) + return -EFAULT; + return ret; + } + case LTTNG_KERNEL_CALIBRATE: + { + struct lttng_kernel_calibrate __user *ucalibrate = + (struct lttng_kernel_calibrate __user *) arg; + struct lttng_kernel_calibrate calibrate; + int ret; + + if (copy_from_user(&calibrate, ucalibrate, sizeof(calibrate))) + return -EFAULT; + ret = lttng_calibrate(&calibrate); + if (copy_to_user(ucalibrate, &calibrate, sizeof(calibrate))) + return -EFAULT; + return ret; + } + default: + return -ENOIOCTLCMD; + } +} + +static const struct file_operations lttng_fops = { + .owner = THIS_MODULE, + .unlocked_ioctl = lttng_ioctl, +#ifdef CONFIG_COMPAT + .compat_ioctl = lttng_ioctl, +#endif +}; + +static +int lttng_abi_create_channel(struct file *session_file, + struct lttng_kernel_channel *chan_param, + enum channel_type channel_type) +{ + struct lttng_session *session = session_file->private_data; + const struct file_operations *fops = NULL; + const char *transport_name; + struct lttng_channel *chan; + struct file *chan_file; + int chan_fd; + int ret = 0; + + chan_fd = get_unused_fd(); + if (chan_fd < 0) { + ret = chan_fd; + goto fd_error; + } + switch (channel_type) { + case PER_CPU_CHANNEL: + fops = <tng_channel_fops; + break; + case METADATA_CHANNEL: + fops = <tng_metadata_fops; + break; + } + + chan_file = anon_inode_getfile("[lttng_channel]", + fops, + NULL, O_RDWR); + if (IS_ERR(chan_file)) { + ret = PTR_ERR(chan_file); + goto file_error; + } + switch (channel_type) { + case PER_CPU_CHANNEL: + if (chan_param->output == LTTNG_KERNEL_SPLICE) { + transport_name = chan_param->overwrite ? + "relay-overwrite" : "relay-discard"; + } else if (chan_param->output == LTTNG_KERNEL_MMAP) { + transport_name = chan_param->overwrite ? + "relay-overwrite-mmap" : "relay-discard-mmap"; + } else { + return -EINVAL; + } + break; + case METADATA_CHANNEL: + if (chan_param->output == LTTNG_KERNEL_SPLICE) + transport_name = "relay-metadata"; + else if (chan_param->output == LTTNG_KERNEL_MMAP) + transport_name = "relay-metadata-mmap"; + else + return -EINVAL; + break; + default: + transport_name = ""; + break; + } + /* + * We tolerate no failure path after channel creation. It will stay + * invariant for the rest of the session. + */ + chan = lttng_channel_create(session, transport_name, NULL, + chan_param->subbuf_size, + chan_param->num_subbuf, + chan_param->switch_timer_interval, + chan_param->read_timer_interval, + channel_type); + if (!chan) { + ret = -EINVAL; + goto chan_error; + } + chan->file = chan_file; + chan_file->private_data = chan; + fd_install(chan_fd, chan_file); + atomic_long_inc(&session_file->f_count); + + return chan_fd; + +chan_error: + fput(chan_file); +file_error: + put_unused_fd(chan_fd); +fd_error: + return ret; +} + +/** + * lttng_session_ioctl - lttng session fd ioctl + * + * @file: the file + * @cmd: the command + * @arg: command arg + * + * This ioctl implements lttng commands: + * LTTNG_KERNEL_CHANNEL + * Returns a LTTng channel file descriptor + * LTTNG_KERNEL_ENABLE + * Enables tracing for a session (weak enable) + * LTTNG_KERNEL_DISABLE + * Disables tracing for a session (strong disable) + * LTTNG_KERNEL_METADATA + * Returns a LTTng metadata file descriptor + * + * The returned channel will be deleted when its file descriptor is closed. + */ +static +long lttng_session_ioctl(struct file *file, unsigned int cmd, unsigned long arg) +{ + struct lttng_session *session = file->private_data; + + switch (cmd) { + case LTTNG_KERNEL_OLD_CHANNEL: + { + struct lttng_kernel_channel chan_param; + struct lttng_kernel_old_channel old_chan_param; + + if (copy_from_user(&old_chan_param, + (struct lttng_kernel_old_channel __user *) arg, + sizeof(struct lttng_kernel_old_channel))) + return -EFAULT; + chan_param.overwrite = old_chan_param.overwrite; + chan_param.subbuf_size = old_chan_param.subbuf_size; + chan_param.num_subbuf = old_chan_param.num_subbuf; + chan_param.switch_timer_interval = old_chan_param.switch_timer_interval; + chan_param.read_timer_interval = old_chan_param.read_timer_interval; + chan_param.output = old_chan_param.output; + + return lttng_abi_create_channel(file, &chan_param, + PER_CPU_CHANNEL); + } + case LTTNG_KERNEL_CHANNEL: + { + struct lttng_kernel_channel chan_param; + + if (copy_from_user(&chan_param, + (struct lttng_kernel_channel __user *) arg, + sizeof(struct lttng_kernel_channel))) + return -EFAULT; + return lttng_abi_create_channel(file, &chan_param, + PER_CPU_CHANNEL); + } + case LTTNG_KERNEL_OLD_SESSION_START: + case LTTNG_KERNEL_OLD_ENABLE: + case LTTNG_KERNEL_SESSION_START: + case LTTNG_KERNEL_ENABLE: + return lttng_session_enable(session); + case LTTNG_KERNEL_OLD_SESSION_STOP: + case LTTNG_KERNEL_OLD_DISABLE: + case LTTNG_KERNEL_SESSION_STOP: + case LTTNG_KERNEL_DISABLE: + return lttng_session_disable(session); + case LTTNG_KERNEL_OLD_METADATA: + { + struct lttng_kernel_channel chan_param; + struct lttng_kernel_old_channel old_chan_param; + + if (copy_from_user(&old_chan_param, + (struct lttng_kernel_old_channel __user *) arg, + sizeof(struct lttng_kernel_old_channel))) + return -EFAULT; + chan_param.overwrite = old_chan_param.overwrite; + chan_param.subbuf_size = old_chan_param.subbuf_size; + chan_param.num_subbuf = old_chan_param.num_subbuf; + chan_param.switch_timer_interval = old_chan_param.switch_timer_interval; + chan_param.read_timer_interval = old_chan_param.read_timer_interval; + chan_param.output = old_chan_param.output; + + return lttng_abi_create_channel(file, &chan_param, + METADATA_CHANNEL); + } + case LTTNG_KERNEL_METADATA: + { + struct lttng_kernel_channel chan_param; + + if (copy_from_user(&chan_param, + (struct lttng_kernel_channel __user *) arg, + sizeof(struct lttng_kernel_channel))) + return -EFAULT; + return lttng_abi_create_channel(file, &chan_param, + METADATA_CHANNEL); + } + default: + return -ENOIOCTLCMD; + } +} + +/* + * Called when the last file reference is dropped. + * + * Big fat note: channels and events are invariant for the whole session after + * their creation. So this session destruction also destroys all channel and + * event structures specific to this session (they are not destroyed when their + * individual file is released). + */ +static +int lttng_session_release(struct inode *inode, struct file *file) +{ + struct lttng_session *session = file->private_data; + + if (session) + lttng_session_destroy(session); + return 0; +} + +static const struct file_operations lttng_session_fops = { + .owner = THIS_MODULE, + .release = lttng_session_release, + .unlocked_ioctl = lttng_session_ioctl, +#ifdef CONFIG_COMPAT + .compat_ioctl = lttng_session_ioctl, +#endif +}; + +/** + * lttng_metadata_ring_buffer_poll - LTTng ring buffer poll file operation + * @filp: the file + * @wait: poll table + * + * Handles the poll operations for the metadata channels. + */ +static +unsigned int lttng_metadata_ring_buffer_poll(struct file *filp, + poll_table *wait) +{ + struct lttng_metadata_stream *stream = filp->private_data; + struct lib_ring_buffer *buf = stream->priv; + int finalized; + unsigned int mask = 0; + + if (filp->f_mode & FMODE_READ) { + poll_wait_set_exclusive(wait); + poll_wait(filp, &stream->read_wait, wait); + + finalized = stream->finalized; + + /* + * lib_ring_buffer_is_finalized() contains a smp_rmb() + * ordering finalized load before offsets loads. + */ + WARN_ON(atomic_long_read(&buf->active_readers) != 1); + + if (finalized) + mask |= POLLHUP; + + if (stream->metadata_cache->metadata_written > + stream->metadata_out) + mask |= POLLIN; + } + + return mask; +} + +static +void lttng_metadata_ring_buffer_ioctl_put_next_subbuf(struct file *filp, + unsigned int cmd, unsigned long arg) +{ + struct lttng_metadata_stream *stream = filp->private_data; + + stream->metadata_out = stream->metadata_in; +} + +static +long lttng_metadata_ring_buffer_ioctl(struct file *filp, + unsigned int cmd, unsigned long arg) +{ + int ret; + struct lttng_metadata_stream *stream = filp->private_data; + struct lib_ring_buffer *buf = stream->priv; + + switch (cmd) { + case RING_BUFFER_GET_NEXT_SUBBUF: + { + struct lttng_metadata_stream *stream = filp->private_data; + struct lib_ring_buffer *buf = stream->priv; + struct channel *chan = buf->backend.chan; + + ret = lttng_metadata_output_channel(stream, chan); + if (ret > 0) { + lib_ring_buffer_switch_slow(buf, SWITCH_ACTIVE); + ret = 0; + } else if (ret < 0) + goto err; + break; + } + case RING_BUFFER_GET_SUBBUF: + { + /* + * Random access is not allowed for metadata channel. + */ + return -ENOSYS; + } + case RING_BUFFER_FLUSH: + { + struct lttng_metadata_stream *stream = filp->private_data; + struct lib_ring_buffer *buf = stream->priv; + struct channel *chan = buf->backend.chan; + + /* + * Before doing the actual ring buffer flush, write up to one + * packet of metadata in the ring buffer. + */ + ret = lttng_metadata_output_channel(stream, chan); + if (ret < 0) + goto err; + break; + } + default: + break; + } + /* PUT_SUBBUF is the one from lib ring buffer, unmodified. */ + + /* Performing lib ring buffer ioctl after our own. */ + ret = lib_ring_buffer_ioctl(filp, cmd, arg, buf); + if (ret < 0) + goto err; + + switch (cmd) { + case RING_BUFFER_PUT_NEXT_SUBBUF: + { + lttng_metadata_ring_buffer_ioctl_put_next_subbuf(filp, + cmd, arg); + break; + } + default: + break; + } +err: + return ret; +} + +#ifdef CONFIG_COMPAT +static +long lttng_metadata_ring_buffer_compat_ioctl(struct file *filp, + unsigned int cmd, unsigned long arg) +{ + int ret; + struct lttng_metadata_stream *stream = filp->private_data; + struct lib_ring_buffer *buf = stream->priv; + + switch (cmd) { + case RING_BUFFER_GET_NEXT_SUBBUF: + { + struct lttng_metadata_stream *stream = filp->private_data; + struct lib_ring_buffer *buf = stream->priv; + struct channel *chan = buf->backend.chan; + + ret = lttng_metadata_output_channel(stream, chan); + if (ret > 0) { + lib_ring_buffer_switch_slow(buf, SWITCH_ACTIVE); + ret = 0; + } else if (ret < 0) + goto err; + break; + } + case RING_BUFFER_GET_SUBBUF: + { + /* + * Random access is not allowed for metadata channel. + */ + return -ENOSYS; + } + default: + break; + } + /* PUT_SUBBUF is the one from lib ring buffer, unmodified. */ + + /* Performing lib ring buffer ioctl after our own. */ + ret = lib_ring_buffer_compat_ioctl(filp, cmd, arg, buf); + if (ret < 0) + goto err; + + switch (cmd) { + case RING_BUFFER_PUT_NEXT_SUBBUF: + { + lttng_metadata_ring_buffer_ioctl_put_next_subbuf(filp, + cmd, arg); + break; + } + default: + break; + } +err: + return ret; +} +#endif + +/* + * This is not used by anonymous file descriptors. This code is left + * there if we ever want to implement an inode with open() operation. + */ +static +int lttng_metadata_ring_buffer_open(struct inode *inode, struct file *file) +{ + struct lttng_metadata_stream *stream = inode->i_private; + struct lib_ring_buffer *buf = stream->priv; + + file->private_data = buf; + /* + * Since life-time of metadata cache differs from that of + * session, we need to keep our own reference on the transport. + */ + if (!try_module_get(stream->transport->owner)) { + printk(KERN_WARNING "LTT : Can't lock transport module.\n"); + return -EBUSY; + } + return lib_ring_buffer_open(inode, file, buf); +} + +static +int lttng_metadata_ring_buffer_release(struct inode *inode, struct file *file) +{ + struct lttng_metadata_stream *stream = file->private_data; + struct lib_ring_buffer *buf = stream->priv; + + kref_put(&stream->metadata_cache->refcount, metadata_cache_destroy); + module_put(stream->transport->owner); + return lib_ring_buffer_release(inode, file, buf); +} + +static +ssize_t lttng_metadata_ring_buffer_splice_read(struct file *in, loff_t *ppos, + struct pipe_inode_info *pipe, size_t len, + unsigned int flags) +{ + struct lttng_metadata_stream *stream = in->private_data; + struct lib_ring_buffer *buf = stream->priv; + + return lib_ring_buffer_splice_read(in, ppos, pipe, len, + flags, buf); +} + +static +int lttng_metadata_ring_buffer_mmap(struct file *filp, + struct vm_area_struct *vma) +{ + struct lttng_metadata_stream *stream = filp->private_data; + struct lib_ring_buffer *buf = stream->priv; + + return lib_ring_buffer_mmap(filp, vma, buf); +} + +static +const struct file_operations lttng_metadata_ring_buffer_file_operations = { + .owner = THIS_MODULE, + .open = lttng_metadata_ring_buffer_open, + .release = lttng_metadata_ring_buffer_release, + .poll = lttng_metadata_ring_buffer_poll, + .splice_read = lttng_metadata_ring_buffer_splice_read, + .mmap = lttng_metadata_ring_buffer_mmap, + .unlocked_ioctl = lttng_metadata_ring_buffer_ioctl, + .llseek = vfs_lib_ring_buffer_no_llseek, +#ifdef CONFIG_COMPAT + .compat_ioctl = lttng_metadata_ring_buffer_compat_ioctl, +#endif +}; + +static +int lttng_abi_create_stream_fd(struct file *channel_file, void *stream_priv, + const struct file_operations *fops) +{ + int stream_fd, ret; + struct file *stream_file; + + stream_fd = get_unused_fd(); + if (stream_fd < 0) { + ret = stream_fd; + goto fd_error; + } + stream_file = anon_inode_getfile("[lttng_stream]", fops, + stream_priv, O_RDWR); + if (IS_ERR(stream_file)) { + ret = PTR_ERR(stream_file); + goto file_error; + } + /* + * OPEN_FMODE, called within anon_inode_getfile/alloc_file, don't honor + * FMODE_LSEEK, FMODE_PREAD nor FMODE_PWRITE. We need to read from this + * file descriptor, so we set FMODE_PREAD here. + */ + stream_file->f_mode |= FMODE_PREAD; + fd_install(stream_fd, stream_file); + /* + * The stream holds a reference to the channel within the generic ring + * buffer library, so no need to hold a refcount on the channel and + * session files here. + */ + return stream_fd; + +file_error: + put_unused_fd(stream_fd); +fd_error: + return ret; +} + +static +int lttng_abi_open_stream(struct file *channel_file) +{ + struct lttng_channel *channel = channel_file->private_data; + struct lib_ring_buffer *buf; + int ret; + void *stream_priv; + + buf = channel->ops->buffer_read_open(channel->chan); + if (!buf) + return -ENOENT; + + stream_priv = buf; + ret = lttng_abi_create_stream_fd(channel_file, stream_priv, + <tng_stream_ring_buffer_file_operations); + if (ret < 0) + goto fd_error; + + return ret; + +fd_error: + channel->ops->buffer_read_close(buf); + return ret; +} + +static +int lttng_abi_open_metadata_stream(struct file *channel_file) +{ + struct lttng_channel *channel = channel_file->private_data; + struct lttng_session *session = channel->session; + struct lib_ring_buffer *buf; + int ret; + struct lttng_metadata_stream *metadata_stream; + void *stream_priv; + + buf = channel->ops->buffer_read_open(channel->chan); + if (!buf) + return -ENOENT; + + metadata_stream = kzalloc(sizeof(struct lttng_metadata_stream), + GFP_KERNEL); + if (!metadata_stream) { + ret = -ENOMEM; + goto nomem; + } + metadata_stream->metadata_cache = session->metadata_cache; + init_waitqueue_head(&metadata_stream->read_wait); + metadata_stream->priv = buf; + stream_priv = metadata_stream; + metadata_stream->transport = channel->transport; + + /* + * Since life-time of metadata cache differs from that of + * session, we need to keep our own reference on the transport. + */ + if (!try_module_get(metadata_stream->transport->owner)) { + printk(KERN_WARNING "LTT : Can't lock transport module.\n"); + ret = -EINVAL; + goto notransport; + } + + ret = lttng_abi_create_stream_fd(channel_file, stream_priv, + <tng_metadata_ring_buffer_file_operations); + if (ret < 0) + goto fd_error; + + kref_get(&session->metadata_cache->refcount); + list_add(&metadata_stream->list, + &session->metadata_cache->metadata_stream); + return ret; + +fd_error: + module_put(metadata_stream->transport->owner); +notransport: + kfree(metadata_stream); +nomem: + channel->ops->buffer_read_close(buf); + return ret; +} + +static +int lttng_abi_create_event(struct file *channel_file, + struct lttng_kernel_event *event_param) +{ + struct lttng_channel *channel = channel_file->private_data; + struct lttng_event *event; + int event_fd, ret; + struct file *event_file; + + event_param->name[LTTNG_KERNEL_SYM_NAME_LEN - 1] = '\0'; + switch (event_param->instrumentation) { + case LTTNG_KERNEL_KRETPROBE: + event_param->u.kretprobe.symbol_name[LTTNG_KERNEL_SYM_NAME_LEN - 1] = '\0'; + break; + case LTTNG_KERNEL_KPROBE: + event_param->u.kprobe.symbol_name[LTTNG_KERNEL_SYM_NAME_LEN - 1] = '\0'; + break; + case LTTNG_KERNEL_FUNCTION: + event_param->u.ftrace.symbol_name[LTTNG_KERNEL_SYM_NAME_LEN - 1] = '\0'; + break; + default: + break; + } + switch (event_param->instrumentation) { + default: + event_fd = get_unused_fd(); + if (event_fd < 0) { + ret = event_fd; + goto fd_error; + } + event_file = anon_inode_getfile("[lttng_event]", + <tng_event_fops, + NULL, O_RDWR); + if (IS_ERR(event_file)) { + ret = PTR_ERR(event_file); + goto file_error; + } + /* + * We tolerate no failure path after event creation. It + * will stay invariant for the rest of the session. + */ + event = lttng_event_create(channel, event_param, NULL, NULL); + if (!event) { + ret = -EINVAL; + goto event_error; + } + event_file->private_data = event; + fd_install(event_fd, event_file); + /* The event holds a reference on the channel */ + atomic_long_inc(&channel_file->f_count); + break; + case LTTNG_KERNEL_SYSCALL: + /* + * Only all-syscall tracing supported for now. + */ + if (event_param->name[0] != '\0') + return -EINVAL; + ret = lttng_syscalls_register(channel, NULL); + if (ret) + goto fd_error; + event_fd = 0; + break; + } + return event_fd; + +event_error: + fput(event_file); +file_error: + put_unused_fd(event_fd); +fd_error: + return ret; +} + +/** + * lttng_channel_ioctl - lttng syscall through ioctl + * + * @file: the file + * @cmd: the command + * @arg: command arg + * + * This ioctl implements lttng commands: + * LTTNG_KERNEL_STREAM + * Returns an event stream file descriptor or failure. + * (typically, one event stream records events from one CPU) + * LTTNG_KERNEL_EVENT + * Returns an event file descriptor or failure. + * LTTNG_KERNEL_CONTEXT + * Prepend a context field to each event in the channel + * LTTNG_KERNEL_ENABLE + * Enable recording for events in this channel (weak enable) + * LTTNG_KERNEL_DISABLE + * Disable recording for events in this channel (strong disable) + * + * Channel and event file descriptors also hold a reference on the session. + */ +static +long lttng_channel_ioctl(struct file *file, unsigned int cmd, unsigned long arg) +{ + struct lttng_channel *channel = file->private_data; + + switch (cmd) { + case LTTNG_KERNEL_OLD_STREAM: + case LTTNG_KERNEL_STREAM: + return lttng_abi_open_stream(file); + case LTTNG_KERNEL_OLD_EVENT: + { + struct lttng_kernel_event *uevent_param; + struct lttng_kernel_old_event *old_uevent_param; + int ret; + + uevent_param = kmalloc(sizeof(struct lttng_kernel_event), + GFP_KERNEL); + if (!uevent_param) { + ret = -ENOMEM; + goto old_event_end; + } + old_uevent_param = kmalloc( + sizeof(struct lttng_kernel_old_event), + GFP_KERNEL); + if (!old_uevent_param) { + ret = -ENOMEM; + goto old_event_error_free_param; + } + if (copy_from_user(old_uevent_param, + (struct lttng_kernel_old_event __user *) arg, + sizeof(struct lttng_kernel_old_event))) { + ret = -EFAULT; + goto old_event_error_free_old_param; + } + + memcpy(uevent_param->name, old_uevent_param->name, + sizeof(uevent_param->name)); + uevent_param->instrumentation = + old_uevent_param->instrumentation; + + switch (old_uevent_param->instrumentation) { + case LTTNG_KERNEL_KPROBE: + uevent_param->u.kprobe.addr = + old_uevent_param->u.kprobe.addr; + uevent_param->u.kprobe.offset = + old_uevent_param->u.kprobe.offset; + memcpy(uevent_param->u.kprobe.symbol_name, + old_uevent_param->u.kprobe.symbol_name, + sizeof(uevent_param->u.kprobe.symbol_name)); + break; + case LTTNG_KERNEL_KRETPROBE: + uevent_param->u.kretprobe.addr = + old_uevent_param->u.kretprobe.addr; + uevent_param->u.kretprobe.offset = + old_uevent_param->u.kretprobe.offset; + memcpy(uevent_param->u.kretprobe.symbol_name, + old_uevent_param->u.kretprobe.symbol_name, + sizeof(uevent_param->u.kretprobe.symbol_name)); + break; + case LTTNG_KERNEL_FUNCTION: + memcpy(uevent_param->u.ftrace.symbol_name, + old_uevent_param->u.ftrace.symbol_name, + sizeof(uevent_param->u.ftrace.symbol_name)); + break; + default: + break; + } + ret = lttng_abi_create_event(file, uevent_param); + +old_event_error_free_old_param: + kfree(old_uevent_param); +old_event_error_free_param: + kfree(uevent_param); +old_event_end: + return ret; + } + case LTTNG_KERNEL_EVENT: + { + struct lttng_kernel_event uevent_param; + + if (copy_from_user(&uevent_param, + (struct lttng_kernel_event __user *) arg, + sizeof(uevent_param))) + return -EFAULT; + return lttng_abi_create_event(file, &uevent_param); + } + case LTTNG_KERNEL_OLD_CONTEXT: + { + struct lttng_kernel_context *ucontext_param; + struct lttng_kernel_old_context *old_ucontext_param; + int ret; + + ucontext_param = kmalloc(sizeof(struct lttng_kernel_context), + GFP_KERNEL); + if (!ucontext_param) { + ret = -ENOMEM; + goto old_ctx_end; + } + old_ucontext_param = kmalloc(sizeof(struct lttng_kernel_old_context), + GFP_KERNEL); + if (!old_ucontext_param) { + ret = -ENOMEM; + goto old_ctx_error_free_param; + } + + if (copy_from_user(old_ucontext_param, + (struct lttng_kernel_old_context __user *) arg, + sizeof(struct lttng_kernel_old_context))) { + ret = -EFAULT; + goto old_ctx_error_free_old_param; + } + ucontext_param->ctx = old_ucontext_param->ctx; + memcpy(ucontext_param->padding, old_ucontext_param->padding, + sizeof(ucontext_param->padding)); + /* only type that uses the union */ + if (old_ucontext_param->ctx == LTTNG_KERNEL_CONTEXT_PERF_COUNTER) { + ucontext_param->u.perf_counter.type = + old_ucontext_param->u.perf_counter.type; + ucontext_param->u.perf_counter.config = + old_ucontext_param->u.perf_counter.config; + memcpy(ucontext_param->u.perf_counter.name, + old_ucontext_param->u.perf_counter.name, + sizeof(ucontext_param->u.perf_counter.name)); + } + + ret = lttng_abi_add_context(file, + ucontext_param, + &channel->ctx, channel->session); + +old_ctx_error_free_old_param: + kfree(old_ucontext_param); +old_ctx_error_free_param: + kfree(ucontext_param); +old_ctx_end: + return ret; + } + case LTTNG_KERNEL_CONTEXT: + { + struct lttng_kernel_context ucontext_param; + + if (copy_from_user(&ucontext_param, + (struct lttng_kernel_context __user *) arg, + sizeof(ucontext_param))) + return -EFAULT; + return lttng_abi_add_context(file, + &ucontext_param, + &channel->ctx, channel->session); + } + case LTTNG_KERNEL_OLD_ENABLE: + case LTTNG_KERNEL_ENABLE: + return lttng_channel_enable(channel); + case LTTNG_KERNEL_OLD_DISABLE: + case LTTNG_KERNEL_DISABLE: + return lttng_channel_disable(channel); + default: + return -ENOIOCTLCMD; + } + +} + +/** + * lttng_metadata_ioctl - lttng syscall through ioctl + * + * @file: the file + * @cmd: the command + * @arg: command arg + * + * This ioctl implements lttng commands: + * LTTNG_KERNEL_STREAM + * Returns an event stream file descriptor or failure. + * + * Channel and event file descriptors also hold a reference on the session. + */ +static +long lttng_metadata_ioctl(struct file *file, unsigned int cmd, unsigned long arg) +{ + switch (cmd) { + case LTTNG_KERNEL_OLD_STREAM: + case LTTNG_KERNEL_STREAM: + return lttng_abi_open_metadata_stream(file); + default: + return -ENOIOCTLCMD; + } +} + +/** + * lttng_channel_poll - lttng stream addition/removal monitoring + * + * @file: the file + * @wait: poll table + */ +unsigned int lttng_channel_poll(struct file *file, poll_table *wait) +{ + struct lttng_channel *channel = file->private_data; + unsigned int mask = 0; + + if (file->f_mode & FMODE_READ) { + poll_wait_set_exclusive(wait); + poll_wait(file, channel->ops->get_hp_wait_queue(channel->chan), + wait); + + if (channel->ops->is_disabled(channel->chan)) + return POLLERR; + if (channel->ops->is_finalized(channel->chan)) + return POLLHUP; + if (channel->ops->buffer_has_read_closed_stream(channel->chan)) + return POLLIN | POLLRDNORM; + return 0; + } + return mask; + +} + +static +int lttng_channel_release(struct inode *inode, struct file *file) +{ + struct lttng_channel *channel = file->private_data; + + if (channel) + fput(channel->session->file); + return 0; +} + +static +int lttng_metadata_channel_release(struct inode *inode, struct file *file) +{ + struct lttng_channel *channel = file->private_data; + + if (channel) { + lttng_metadata_channel_destroy(channel); + fput(channel->session->file); + } + + return 0; +} + +static const struct file_operations lttng_channel_fops = { + .owner = THIS_MODULE, + .release = lttng_channel_release, + .poll = lttng_channel_poll, + .unlocked_ioctl = lttng_channel_ioctl, +#ifdef CONFIG_COMPAT + .compat_ioctl = lttng_channel_ioctl, +#endif +}; + +static const struct file_operations lttng_metadata_fops = { + .owner = THIS_MODULE, + .release = lttng_metadata_channel_release, + .unlocked_ioctl = lttng_metadata_ioctl, +#ifdef CONFIG_COMPAT + .compat_ioctl = lttng_metadata_ioctl, +#endif +}; + +/** + * lttng_event_ioctl - lttng syscall through ioctl + * + * @file: the file + * @cmd: the command + * @arg: command arg + * + * This ioctl implements lttng commands: + * LTTNG_KERNEL_CONTEXT + * Prepend a context field to each record of this event + * LTTNG_KERNEL_ENABLE + * Enable recording for this event (weak enable) + * LTTNG_KERNEL_DISABLE + * Disable recording for this event (strong disable) + */ +static +long lttng_event_ioctl(struct file *file, unsigned int cmd, unsigned long arg) +{ + struct lttng_event *event = file->private_data; + + switch (cmd) { + case LTTNG_KERNEL_OLD_CONTEXT: + { + struct lttng_kernel_context *ucontext_param; + struct lttng_kernel_old_context *old_ucontext_param; + int ret; + + ucontext_param = kmalloc(sizeof(struct lttng_kernel_context), + GFP_KERNEL); + if (!ucontext_param) { + ret = -ENOMEM; + goto old_ctx_end; + } + old_ucontext_param = kmalloc(sizeof(struct lttng_kernel_old_context), + GFP_KERNEL); + if (!old_ucontext_param) { + ret = -ENOMEM; + goto old_ctx_error_free_param; + } + + if (copy_from_user(old_ucontext_param, + (struct lttng_kernel_old_context __user *) arg, + sizeof(struct lttng_kernel_old_context))) { + ret = -EFAULT; + goto old_ctx_error_free_old_param; + } + ucontext_param->ctx = old_ucontext_param->ctx; + memcpy(ucontext_param->padding, old_ucontext_param->padding, + sizeof(ucontext_param->padding)); + /* only type that uses the union */ + if (old_ucontext_param->ctx == LTTNG_KERNEL_CONTEXT_PERF_COUNTER) { + ucontext_param->u.perf_counter.type = + old_ucontext_param->u.perf_counter.type; + ucontext_param->u.perf_counter.config = + old_ucontext_param->u.perf_counter.config; + memcpy(ucontext_param->u.perf_counter.name, + old_ucontext_param->u.perf_counter.name, + sizeof(ucontext_param->u.perf_counter.name)); + } + + ret = lttng_abi_add_context(file, + ucontext_param, + &event->ctx, event->chan->session); + +old_ctx_error_free_old_param: + kfree(old_ucontext_param); +old_ctx_error_free_param: + kfree(ucontext_param); +old_ctx_end: + return ret; + } + case LTTNG_KERNEL_CONTEXT: + { + struct lttng_kernel_context ucontext_param; + + if (copy_from_user(&ucontext_param, + (struct lttng_kernel_context __user *) arg, + sizeof(ucontext_param))) + return -EFAULT; + return lttng_abi_add_context(file, + &ucontext_param, + &event->ctx, event->chan->session); + } + case LTTNG_KERNEL_OLD_ENABLE: + case LTTNG_KERNEL_ENABLE: + return lttng_event_enable(event); + case LTTNG_KERNEL_OLD_DISABLE: + case LTTNG_KERNEL_DISABLE: + return lttng_event_disable(event); + default: + return -ENOIOCTLCMD; + } +} + +static +int lttng_event_release(struct inode *inode, struct file *file) +{ + struct lttng_event *event = file->private_data; + + if (event) + fput(event->chan->file); + return 0; +} + +/* TODO: filter control ioctl */ +static const struct file_operations lttng_event_fops = { + .owner = THIS_MODULE, + .release = lttng_event_release, + .unlocked_ioctl = lttng_event_ioctl, +#ifdef CONFIG_COMPAT + .compat_ioctl = lttng_event_ioctl, +#endif +}; + +static int put_u64(uint64_t val, unsigned long arg) +{ + return put_user(val, (uint64_t __user *) arg); +} + +static long lttng_stream_ring_buffer_ioctl(struct file *filp, + unsigned int cmd, unsigned long arg) +{ + struct lib_ring_buffer *buf = filp->private_data; + struct channel *chan = buf->backend.chan; + const struct lib_ring_buffer_config *config = &chan->backend.config; + struct lttng_channel *lttng_chan = channel_get_private(chan); + int ret; + + if (atomic_read(&chan->record_disabled)) + return -EIO; + + switch (cmd) { + case LTTNG_RING_BUFFER_GET_TIMESTAMP_BEGIN: + { + uint64_t ts; + + if (!lttng_chan->ops) + goto error; + ret = lttng_chan->ops->timestamp_begin(config, buf, &ts); + if (ret < 0) + goto error; + return put_u64(ts, arg); + } + case LTTNG_RING_BUFFER_GET_TIMESTAMP_END: + { + uint64_t ts; + + if (!lttng_chan->ops) + goto error; + ret = lttng_chan->ops->timestamp_end(config, buf, &ts); + if (ret < 0) + goto error; + return put_u64(ts, arg); + } + case LTTNG_RING_BUFFER_GET_EVENTS_DISCARDED: + { + uint64_t ed; + + if (!lttng_chan->ops) + goto error; + ret = lttng_chan->ops->events_discarded(config, buf, &ed); + if (ret < 0) + goto error; + return put_u64(ed, arg); + } + case LTTNG_RING_BUFFER_GET_CONTENT_SIZE: + { + uint64_t cs; + + if (!lttng_chan->ops) + goto error; + ret = lttng_chan->ops->content_size(config, buf, &cs); + if (ret < 0) + goto error; + return put_u64(cs, arg); + } + case LTTNG_RING_BUFFER_GET_PACKET_SIZE: + { + uint64_t ps; + + if (!lttng_chan->ops) + goto error; + ret = lttng_chan->ops->packet_size(config, buf, &ps); + if (ret < 0) + goto error; + return put_u64(ps, arg); + } + case LTTNG_RING_BUFFER_GET_STREAM_ID: + { + uint64_t si; + + if (!lttng_chan->ops) + goto error; + ret = lttng_chan->ops->stream_id(config, buf, &si); + if (ret < 0) + goto error; + return put_u64(si, arg); + } + case LTTNG_RING_BUFFER_GET_CURRENT_TIMESTAMP: + { + uint64_t ts; + + if (!lttng_chan->ops) + goto error; + ret = lttng_chan->ops->current_timestamp(config, buf, &ts); + if (ret < 0) + goto error; + return put_u64(ts, arg); + } + default: + return lib_ring_buffer_file_operations.unlocked_ioctl(filp, + cmd, arg); + } + +error: + return -ENOSYS; +} + +#ifdef CONFIG_COMPAT +static long lttng_stream_ring_buffer_compat_ioctl(struct file *filp, + unsigned int cmd, unsigned long arg) +{ + struct lib_ring_buffer *buf = filp->private_data; + struct channel *chan = buf->backend.chan; + const struct lib_ring_buffer_config *config = &chan->backend.config; + struct lttng_channel *lttng_chan = channel_get_private(chan); + int ret; + + if (atomic_read(&chan->record_disabled)) + return -EIO; + + switch (cmd) { + case LTTNG_RING_BUFFER_COMPAT_GET_TIMESTAMP_BEGIN: + { + uint64_t ts; + + if (!lttng_chan->ops) + goto error; + ret = lttng_chan->ops->timestamp_begin(config, buf, &ts); + if (ret < 0) + goto error; + return put_u64(ts, arg); + } + case LTTNG_RING_BUFFER_COMPAT_GET_TIMESTAMP_END: + { + uint64_t ts; + + if (!lttng_chan->ops) + goto error; + ret = lttng_chan->ops->timestamp_end(config, buf, &ts); + if (ret < 0) + goto error; + return put_u64(ts, arg); + } + case LTTNG_RING_BUFFER_COMPAT_GET_EVENTS_DISCARDED: + { + uint64_t ed; + + if (!lttng_chan->ops) + goto error; + ret = lttng_chan->ops->events_discarded(config, buf, &ed); + if (ret < 0) + goto error; + return put_u64(ed, arg); + } + case LTTNG_RING_BUFFER_COMPAT_GET_CONTENT_SIZE: + { + uint64_t cs; + + if (!lttng_chan->ops) + goto error; + ret = lttng_chan->ops->content_size(config, buf, &cs); + if (ret < 0) + goto error; + return put_u64(cs, arg); + } + case LTTNG_RING_BUFFER_COMPAT_GET_PACKET_SIZE: + { + uint64_t ps; + + if (!lttng_chan->ops) + goto error; + ret = lttng_chan->ops->packet_size(config, buf, &ps); + if (ret < 0) + goto error; + return put_u64(ps, arg); + } + case LTTNG_RING_BUFFER_COMPAT_GET_STREAM_ID: + { + uint64_t si; + + if (!lttng_chan->ops) + goto error; + ret = lttng_chan->ops->stream_id(config, buf, &si); + if (ret < 0) + goto error; + return put_u64(si, arg); + } + case LTTNG_RING_BUFFER_GET_CURRENT_TIMESTAMP: + { + uint64_t ts; + + if (!lttng_chan->ops) + goto error; + ret = lttng_chan->ops->current_timestamp(config, buf, &ts); + if (ret < 0) + goto error; + return put_u64(ts, arg); + } + default: + return lib_ring_buffer_file_operations.compat_ioctl(filp, + cmd, arg); + } + +error: + return -ENOSYS; +} +#endif /* CONFIG_COMPAT */ + +static void lttng_stream_override_ring_buffer_fops(void) +{ + lttng_stream_ring_buffer_file_operations.owner = THIS_MODULE; + lttng_stream_ring_buffer_file_operations.open = + lib_ring_buffer_file_operations.open; + lttng_stream_ring_buffer_file_operations.release = + lib_ring_buffer_file_operations.release; + lttng_stream_ring_buffer_file_operations.poll = + lib_ring_buffer_file_operations.poll; + lttng_stream_ring_buffer_file_operations.splice_read = + lib_ring_buffer_file_operations.splice_read; + lttng_stream_ring_buffer_file_operations.mmap = + lib_ring_buffer_file_operations.mmap; + lttng_stream_ring_buffer_file_operations.unlocked_ioctl = + lttng_stream_ring_buffer_ioctl; + lttng_stream_ring_buffer_file_operations.llseek = + lib_ring_buffer_file_operations.llseek; +#ifdef CONFIG_COMPAT + lttng_stream_ring_buffer_file_operations.compat_ioctl = + lttng_stream_ring_buffer_compat_ioctl; +#endif +} + +int __init lttng_abi_init(void) +{ + int ret = 0; + + wrapper_vmalloc_sync_all(); + lttng_proc_dentry = proc_create_data("lttng", S_IRUSR | S_IWUSR, NULL, + <tng_fops, NULL); + + if (!lttng_proc_dentry) { + printk(KERN_ERR "Error creating LTTng control file\n"); + ret = -ENOMEM; + goto error; + } + lttng_stream_override_ring_buffer_fops(); + +error: + return ret; +} + +void __exit lttng_abi_exit(void) +{ + if (lttng_proc_dentry) + remove_proc_entry("lttng", NULL); +} --- linux-3.11.0.orig/ubuntu/lttng-modules/lttng-ring-buffer-client.h +++ linux-3.11.0/ubuntu/lttng-modules/lttng-ring-buffer-client.h @@ -0,0 +1,694 @@ +/* + * lttng-ring-buffer-client.h + * + * LTTng lib ring buffer client template. + * + * Copyright (C) 2010-2012 Mathieu Desnoyers + * + * 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; only + * version 2.1 of the License. + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include +#include +#include "lib/bitfield.h" +#include "wrapper/vmalloc.h" /* for wrapper_vmalloc_sync_all() */ +#include "wrapper/trace-clock.h" +#include "lttng-events.h" +#include "lttng-tracer.h" +#include "wrapper/ringbuffer/frontend_types.h" + +#define LTTNG_COMPACT_EVENT_BITS 5 +#define LTTNG_COMPACT_TSC_BITS 27 + +/* + * Keep the natural field alignment for _each field_ within this structure if + * you ever add/remove a field from this header. Packed attribute is not used + * because gcc generates poor code on at least powerpc and mips. Don't ever + * let gcc add padding between the structure elements. + * + * The guarantee we have with timestamps is that all the events in a + * packet are included (inclusive) within the begin/end timestamps of + * the packet. Another guarantee we have is that the "timestamp begin", + * as well as the event timestamps, are monotonically increasing (never + * decrease) when moving forward in a stream (physically). But this + * guarantee does not apply to "timestamp end", because it is sampled at + * commit time, which is not ordered with respect to space reservation. + */ + +struct packet_header { + /* Trace packet header */ + uint32_t magic; /* + * Trace magic number. + * contains endianness information. + */ + uint8_t uuid[16]; + uint32_t stream_id; + + struct { + /* Stream packet context */ + uint64_t timestamp_begin; /* Cycle count at subbuffer start */ + uint64_t timestamp_end; /* Cycle count at subbuffer end */ + uint64_t content_size; /* Size of data in subbuffer */ + uint64_t packet_size; /* Subbuffer size (include padding) */ + unsigned long events_discarded; /* + * Events lost in this subbuffer since + * the beginning of the trace. + * (may overflow) + */ + uint32_t cpu_id; /* CPU id associated with stream */ + uint8_t header_end; /* End of header */ + } ctx; +}; + + +static inline notrace u64 lib_ring_buffer_clock_read(struct channel *chan) +{ + return trace_clock_read64(); +} + +static inline +size_t ctx_get_size(size_t offset, struct lttng_ctx *ctx) +{ + int i; + size_t orig_offset = offset; + + if (likely(!ctx)) + return 0; + for (i = 0; i < ctx->nr_fields; i++) + offset += ctx->fields[i].get_size(offset); + return offset - orig_offset; +} + +static inline +void ctx_record(struct lib_ring_buffer_ctx *bufctx, + struct lttng_channel *chan, + struct lttng_ctx *ctx) +{ + int i; + + if (likely(!ctx)) + return; + for (i = 0; i < ctx->nr_fields; i++) + ctx->fields[i].record(&ctx->fields[i], bufctx, chan); +} + +/* + * record_header_size - Calculate the header size and padding necessary. + * @config: ring buffer instance configuration + * @chan: channel + * @offset: offset in the write buffer + * @pre_header_padding: padding to add before the header (output) + * @ctx: reservation context + * + * Returns the event header size (including padding). + * + * The payload must itself determine its own alignment from the biggest type it + * contains. + */ +static __inline__ +unsigned char record_header_size(const struct lib_ring_buffer_config *config, + struct channel *chan, size_t offset, + size_t *pre_header_padding, + struct lib_ring_buffer_ctx *ctx) +{ + struct lttng_channel *lttng_chan = channel_get_private(chan); + struct lttng_event *event = ctx->priv; + size_t orig_offset = offset; + size_t padding; + + switch (lttng_chan->header_type) { + case 1: /* compact */ + padding = lib_ring_buffer_align(offset, lttng_alignof(uint32_t)); + offset += padding; + if (!(ctx->rflags & (RING_BUFFER_RFLAG_FULL_TSC | LTTNG_RFLAG_EXTENDED))) { + offset += sizeof(uint32_t); /* id and timestamp */ + } else { + /* Minimum space taken by LTTNG_COMPACT_EVENT_BITS id */ + offset += (LTTNG_COMPACT_EVENT_BITS + CHAR_BIT - 1) / CHAR_BIT; + /* Align extended struct on largest member */ + offset += lib_ring_buffer_align(offset, lttng_alignof(uint64_t)); + offset += sizeof(uint32_t); /* id */ + offset += lib_ring_buffer_align(offset, lttng_alignof(uint64_t)); + offset += sizeof(uint64_t); /* timestamp */ + } + break; + case 2: /* large */ + padding = lib_ring_buffer_align(offset, lttng_alignof(uint16_t)); + offset += padding; + offset += sizeof(uint16_t); + if (!(ctx->rflags & (RING_BUFFER_RFLAG_FULL_TSC | LTTNG_RFLAG_EXTENDED))) { + offset += lib_ring_buffer_align(offset, lttng_alignof(uint32_t)); + offset += sizeof(uint32_t); /* timestamp */ + } else { + /* Align extended struct on largest member */ + offset += lib_ring_buffer_align(offset, lttng_alignof(uint64_t)); + offset += sizeof(uint32_t); /* id */ + offset += lib_ring_buffer_align(offset, lttng_alignof(uint64_t)); + offset += sizeof(uint64_t); /* timestamp */ + } + break; + default: + padding = 0; + WARN_ON_ONCE(1); + } + offset += ctx_get_size(offset, event->ctx); + offset += ctx_get_size(offset, lttng_chan->ctx); + + *pre_header_padding = padding; + return offset - orig_offset; +} + +#include "wrapper/ringbuffer/api.h" + +static +void lttng_write_event_header_slow(const struct lib_ring_buffer_config *config, + struct lib_ring_buffer_ctx *ctx, + uint32_t event_id); + +/* + * lttng_write_event_header + * + * Writes the event header to the offset (already aligned on 32-bits). + * + * @config: ring buffer instance configuration + * @ctx: reservation context + * @event_id: event ID + */ +static __inline__ +void lttng_write_event_header(const struct lib_ring_buffer_config *config, + struct lib_ring_buffer_ctx *ctx, + uint32_t event_id) +{ + struct lttng_channel *lttng_chan = channel_get_private(ctx->chan); + struct lttng_event *event = ctx->priv; + + if (unlikely(ctx->rflags)) + goto slow_path; + + switch (lttng_chan->header_type) { + case 1: /* compact */ + { + uint32_t id_time = 0; + + bt_bitfield_write(&id_time, uint32_t, + 0, + LTTNG_COMPACT_EVENT_BITS, + event_id); + bt_bitfield_write(&id_time, uint32_t, + LTTNG_COMPACT_EVENT_BITS, + LTTNG_COMPACT_TSC_BITS, + ctx->tsc); + lib_ring_buffer_write(config, ctx, &id_time, sizeof(id_time)); + break; + } + case 2: /* large */ + { + uint32_t timestamp = (uint32_t) ctx->tsc; + uint16_t id = event_id; + + lib_ring_buffer_write(config, ctx, &id, sizeof(id)); + lib_ring_buffer_align_ctx(ctx, lttng_alignof(uint32_t)); + lib_ring_buffer_write(config, ctx, ×tamp, sizeof(timestamp)); + break; + } + default: + WARN_ON_ONCE(1); + } + + ctx_record(ctx, lttng_chan, lttng_chan->ctx); + ctx_record(ctx, lttng_chan, event->ctx); + lib_ring_buffer_align_ctx(ctx, ctx->largest_align); + + return; + +slow_path: + lttng_write_event_header_slow(config, ctx, event_id); +} + +static +void lttng_write_event_header_slow(const struct lib_ring_buffer_config *config, + struct lib_ring_buffer_ctx *ctx, + uint32_t event_id) +{ + struct lttng_channel *lttng_chan = channel_get_private(ctx->chan); + struct lttng_event *event = ctx->priv; + + switch (lttng_chan->header_type) { + case 1: /* compact */ + if (!(ctx->rflags & (RING_BUFFER_RFLAG_FULL_TSC | LTTNG_RFLAG_EXTENDED))) { + uint32_t id_time = 0; + + bt_bitfield_write(&id_time, uint32_t, + 0, + LTTNG_COMPACT_EVENT_BITS, + event_id); + bt_bitfield_write(&id_time, uint32_t, + LTTNG_COMPACT_EVENT_BITS, + LTTNG_COMPACT_TSC_BITS, ctx->tsc); + lib_ring_buffer_write(config, ctx, &id_time, sizeof(id_time)); + } else { + uint8_t id = 0; + uint64_t timestamp = ctx->tsc; + + bt_bitfield_write(&id, uint8_t, + 0, + LTTNG_COMPACT_EVENT_BITS, + 31); + lib_ring_buffer_write(config, ctx, &id, sizeof(id)); + /* Align extended struct on largest member */ + lib_ring_buffer_align_ctx(ctx, lttng_alignof(uint64_t)); + lib_ring_buffer_write(config, ctx, &event_id, sizeof(event_id)); + lib_ring_buffer_align_ctx(ctx, lttng_alignof(uint64_t)); + lib_ring_buffer_write(config, ctx, ×tamp, sizeof(timestamp)); + } + break; + case 2: /* large */ + { + if (!(ctx->rflags & (RING_BUFFER_RFLAG_FULL_TSC | LTTNG_RFLAG_EXTENDED))) { + uint32_t timestamp = (uint32_t) ctx->tsc; + uint16_t id = event_id; + + lib_ring_buffer_write(config, ctx, &id, sizeof(id)); + lib_ring_buffer_align_ctx(ctx, lttng_alignof(uint32_t)); + lib_ring_buffer_write(config, ctx, ×tamp, sizeof(timestamp)); + } else { + uint16_t id = 65535; + uint64_t timestamp = ctx->tsc; + + lib_ring_buffer_write(config, ctx, &id, sizeof(id)); + /* Align extended struct on largest member */ + lib_ring_buffer_align_ctx(ctx, lttng_alignof(uint64_t)); + lib_ring_buffer_write(config, ctx, &event_id, sizeof(event_id)); + lib_ring_buffer_align_ctx(ctx, lttng_alignof(uint64_t)); + lib_ring_buffer_write(config, ctx, ×tamp, sizeof(timestamp)); + } + break; + } + default: + WARN_ON_ONCE(1); + } + ctx_record(ctx, lttng_chan, lttng_chan->ctx); + ctx_record(ctx, lttng_chan, event->ctx); + lib_ring_buffer_align_ctx(ctx, ctx->largest_align); +} + +static const struct lib_ring_buffer_config client_config; + +static u64 client_ring_buffer_clock_read(struct channel *chan) +{ + return lib_ring_buffer_clock_read(chan); +} + +static +size_t client_record_header_size(const struct lib_ring_buffer_config *config, + struct channel *chan, size_t offset, + size_t *pre_header_padding, + struct lib_ring_buffer_ctx *ctx) +{ + return record_header_size(config, chan, offset, + pre_header_padding, ctx); +} + +/** + * client_packet_header_size - called on buffer-switch to a new sub-buffer + * + * Return header size without padding after the structure. Don't use packed + * structure because gcc generates inefficient code on some architectures + * (powerpc, mips..) + */ +static size_t client_packet_header_size(void) +{ + return offsetof(struct packet_header, ctx.header_end); +} + +static void client_buffer_begin(struct lib_ring_buffer *buf, u64 tsc, + unsigned int subbuf_idx) +{ + struct channel *chan = buf->backend.chan; + struct packet_header *header = + (struct packet_header *) + lib_ring_buffer_offset_address(&buf->backend, + subbuf_idx * chan->backend.subbuf_size); + struct lttng_channel *lttng_chan = channel_get_private(chan); + struct lttng_session *session = lttng_chan->session; + + header->magic = CTF_MAGIC_NUMBER; + memcpy(header->uuid, session->uuid.b, sizeof(session->uuid)); + header->stream_id = lttng_chan->id; + header->ctx.timestamp_begin = tsc; + header->ctx.timestamp_end = 0; + header->ctx.content_size = ~0ULL; /* for debugging */ + header->ctx.packet_size = ~0ULL; + header->ctx.events_discarded = 0; + header->ctx.cpu_id = buf->backend.cpu; +} + +/* + * offset is assumed to never be 0 here : never deliver a completely empty + * subbuffer. data_size is between 1 and subbuf_size. + */ +static void client_buffer_end(struct lib_ring_buffer *buf, u64 tsc, + unsigned int subbuf_idx, unsigned long data_size) +{ + struct channel *chan = buf->backend.chan; + struct packet_header *header = + (struct packet_header *) + lib_ring_buffer_offset_address(&buf->backend, + subbuf_idx * chan->backend.subbuf_size); + unsigned long records_lost = 0; + + header->ctx.timestamp_end = tsc; + header->ctx.content_size = + (uint64_t) data_size * CHAR_BIT; /* in bits */ + header->ctx.packet_size = + (uint64_t) PAGE_ALIGN(data_size) * CHAR_BIT; /* in bits */ + records_lost += lib_ring_buffer_get_records_lost_full(&client_config, buf); + records_lost += lib_ring_buffer_get_records_lost_wrap(&client_config, buf); + records_lost += lib_ring_buffer_get_records_lost_big(&client_config, buf); + header->ctx.events_discarded = records_lost; +} + +static int client_buffer_create(struct lib_ring_buffer *buf, void *priv, + int cpu, const char *name) +{ + return 0; +} + +static void client_buffer_finalize(struct lib_ring_buffer *buf, void *priv, int cpu) +{ +} + +static struct packet_header *client_packet_header( + const struct lib_ring_buffer_config *config, + struct lib_ring_buffer *buf) +{ + struct lib_ring_buffer_backend *bufb; + unsigned long sb_bindex; + struct packet_header *header; + + bufb = &buf->backend; + sb_bindex = subbuffer_id_get_index(config, bufb->buf_rsb.id); + header = (struct packet_header *) + lib_ring_buffer_offset_address(bufb, + sb_bindex * bufb->chan->backend.subbuf_size); + + return header; +} + +static int client_timestamp_begin(const struct lib_ring_buffer_config *config, + struct lib_ring_buffer *buf, + uint64_t *timestamp_begin) +{ + struct packet_header *header = client_packet_header(config, buf); + *timestamp_begin = header->ctx.timestamp_begin; + + return 0; +} + +static int client_timestamp_end(const struct lib_ring_buffer_config *config, + struct lib_ring_buffer *buf, + uint64_t *timestamp_end) +{ + struct packet_header *header = client_packet_header(config, buf); + *timestamp_end = header->ctx.timestamp_end; + + return 0; +} + +static int client_events_discarded(const struct lib_ring_buffer_config *config, + struct lib_ring_buffer *buf, + uint64_t *events_discarded) +{ + struct packet_header *header = client_packet_header(config, buf); + *events_discarded = header->ctx.events_discarded; + + return 0; +} + +static int client_content_size(const struct lib_ring_buffer_config *config, + struct lib_ring_buffer *buf, + uint64_t *content_size) +{ + struct packet_header *header = client_packet_header(config, buf); + *content_size = header->ctx.content_size; + + return 0; +} + +static int client_packet_size(const struct lib_ring_buffer_config *config, + struct lib_ring_buffer *buf, + uint64_t *packet_size) +{ + struct packet_header *header = client_packet_header(config, buf); + *packet_size = header->ctx.packet_size; + + return 0; +} + +static int client_stream_id(const struct lib_ring_buffer_config *config, + struct lib_ring_buffer *buf, + uint64_t *stream_id) +{ + struct packet_header *header = client_packet_header(config, buf); + *stream_id = header->stream_id; + + return 0; +} + +static int client_current_timestamp(const struct lib_ring_buffer_config *config, + struct lib_ring_buffer *bufb, + uint64_t *ts) +{ + *ts = config->cb.ring_buffer_clock_read(bufb->backend.chan); + + return 0; +} + +static const struct lib_ring_buffer_config client_config = { + .cb.ring_buffer_clock_read = client_ring_buffer_clock_read, + .cb.record_header_size = client_record_header_size, + .cb.subbuffer_header_size = client_packet_header_size, + .cb.buffer_begin = client_buffer_begin, + .cb.buffer_end = client_buffer_end, + .cb.buffer_create = client_buffer_create, + .cb.buffer_finalize = client_buffer_finalize, + + .tsc_bits = LTTNG_COMPACT_TSC_BITS, + .alloc = RING_BUFFER_ALLOC_PER_CPU, + .sync = RING_BUFFER_SYNC_PER_CPU, + .mode = RING_BUFFER_MODE_TEMPLATE, + .backend = RING_BUFFER_PAGE, + .output = RING_BUFFER_OUTPUT_TEMPLATE, + .oops = RING_BUFFER_OOPS_CONSISTENCY, + .ipi = RING_BUFFER_IPI_BARRIER, + .wakeup = RING_BUFFER_WAKEUP_BY_TIMER, +}; + +static +struct channel *_channel_create(const char *name, + struct lttng_channel *lttng_chan, void *buf_addr, + size_t subbuf_size, size_t num_subbuf, + unsigned int switch_timer_interval, + unsigned int read_timer_interval) +{ + lttng_chan->ops->timestamp_begin = client_timestamp_begin; + lttng_chan->ops->timestamp_end = client_timestamp_end; + lttng_chan->ops->events_discarded = client_events_discarded; + lttng_chan->ops->content_size = client_content_size; + lttng_chan->ops->packet_size = client_packet_size; + lttng_chan->ops->stream_id = client_stream_id; + lttng_chan->ops->current_timestamp = client_current_timestamp; + + return channel_create(&client_config, name, lttng_chan, buf_addr, + subbuf_size, num_subbuf, switch_timer_interval, + read_timer_interval); +} + +static +void lttng_channel_destroy(struct channel *chan) +{ + channel_destroy(chan); +} + +static +struct lib_ring_buffer *lttng_buffer_read_open(struct channel *chan) +{ + struct lib_ring_buffer *buf; + int cpu; + + for_each_channel_cpu(cpu, chan) { + buf = channel_get_ring_buffer(&client_config, chan, cpu); + if (!lib_ring_buffer_open_read(buf)) + return buf; + } + return NULL; +} + +static +int lttng_buffer_has_read_closed_stream(struct channel *chan) +{ + struct lib_ring_buffer *buf; + int cpu; + + for_each_channel_cpu(cpu, chan) { + buf = channel_get_ring_buffer(&client_config, chan, cpu); + if (!atomic_long_read(&buf->active_readers)) + return 1; + } + return 0; +} + +static +void lttng_buffer_read_close(struct lib_ring_buffer *buf) +{ + lib_ring_buffer_release_read(buf); +} + +static +int lttng_event_reserve(struct lib_ring_buffer_ctx *ctx, + uint32_t event_id) +{ + struct lttng_channel *lttng_chan = channel_get_private(ctx->chan); + int ret, cpu; + + cpu = lib_ring_buffer_get_cpu(&client_config); + if (cpu < 0) + return -EPERM; + ctx->cpu = cpu; + + switch (lttng_chan->header_type) { + case 1: /* compact */ + if (event_id > 30) + ctx->rflags |= LTTNG_RFLAG_EXTENDED; + break; + case 2: /* large */ + if (event_id > 65534) + ctx->rflags |= LTTNG_RFLAG_EXTENDED; + break; + default: + WARN_ON_ONCE(1); + } + + ret = lib_ring_buffer_reserve(&client_config, ctx); + if (ret) + goto put; + lttng_write_event_header(&client_config, ctx, event_id); + return 0; +put: + lib_ring_buffer_put_cpu(&client_config); + return ret; +} + +static +void lttng_event_commit(struct lib_ring_buffer_ctx *ctx) +{ + lib_ring_buffer_commit(&client_config, ctx); + lib_ring_buffer_put_cpu(&client_config); +} + +static +void lttng_event_write(struct lib_ring_buffer_ctx *ctx, const void *src, + size_t len) +{ + lib_ring_buffer_write(&client_config, ctx, src, len); +} + +static +void lttng_event_write_from_user(struct lib_ring_buffer_ctx *ctx, + const void __user *src, size_t len) +{ + lib_ring_buffer_copy_from_user_inatomic(&client_config, ctx, src, len); +} + +static +void lttng_event_memset(struct lib_ring_buffer_ctx *ctx, + int c, size_t len) +{ + lib_ring_buffer_memset(&client_config, ctx, c, len); +} + +static +wait_queue_head_t *lttng_get_writer_buf_wait_queue(struct channel *chan, int cpu) +{ + struct lib_ring_buffer *buf = channel_get_ring_buffer(&client_config, + chan, cpu); + return &buf->write_wait; +} + +static +wait_queue_head_t *lttng_get_hp_wait_queue(struct channel *chan) +{ + return &chan->hp_wait; +} + +static +int lttng_is_finalized(struct channel *chan) +{ + return lib_ring_buffer_channel_is_finalized(chan); +} + +static +int lttng_is_disabled(struct channel *chan) +{ + return lib_ring_buffer_channel_is_disabled(chan); +} + +static struct lttng_transport lttng_relay_transport = { + .name = "relay-" RING_BUFFER_MODE_TEMPLATE_STRING, + .owner = THIS_MODULE, + .ops = { + .channel_create = _channel_create, + .channel_destroy = lttng_channel_destroy, + .buffer_read_open = lttng_buffer_read_open, + .buffer_has_read_closed_stream = + lttng_buffer_has_read_closed_stream, + .buffer_read_close = lttng_buffer_read_close, + .event_reserve = lttng_event_reserve, + .event_commit = lttng_event_commit, + .event_write = lttng_event_write, + .event_write_from_user = lttng_event_write_from_user, + .event_memset = lttng_event_memset, + .packet_avail_size = NULL, /* Would be racy anyway */ + .get_writer_buf_wait_queue = lttng_get_writer_buf_wait_queue, + .get_hp_wait_queue = lttng_get_hp_wait_queue, + .is_finalized = lttng_is_finalized, + .is_disabled = lttng_is_disabled, + }, +}; + +static int __init lttng_ring_buffer_client_init(void) +{ + /* + * This vmalloc sync all also takes care of the lib ring buffer + * vmalloc'd module pages when it is built as a module into LTTng. + */ + wrapper_vmalloc_sync_all(); + lttng_transport_register(<tng_relay_transport); + return 0; +} + +module_init(lttng_ring_buffer_client_init); + +static void __exit lttng_ring_buffer_client_exit(void) +{ + lttng_transport_unregister(<tng_relay_transport); +} + +module_exit(lttng_ring_buffer_client_exit); + +MODULE_LICENSE("GPL and additional rights"); +MODULE_AUTHOR("Mathieu Desnoyers"); +MODULE_DESCRIPTION("LTTng ring buffer " RING_BUFFER_MODE_TEMPLATE_STRING + " client"); --- linux-3.11.0.orig/ubuntu/lttng-modules/lttng-calibrate.c +++ linux-3.11.0/ubuntu/lttng-modules/lttng-calibrate.c @@ -0,0 +1,42 @@ +/* + * lttng-calibrate.c + * + * LTTng probe calibration. + * + * Copyright (C) 2010-2012 Mathieu Desnoyers + * + * 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; only + * version 2.1 of the License. + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include "lttng-abi.h" +#include "lttng-events.h" + +noinline +void lttng_calibrate_kretprobe(void) +{ + asm volatile (""); +} + +int lttng_calibrate(struct lttng_kernel_calibrate *calibrate) +{ + switch (calibrate->type) { + case LTTNG_KERNEL_CALIBRATE_KRETPROBE: + lttng_calibrate_kretprobe(); + break; + default: + return -EINVAL; + } + return 0; +} --- linux-3.11.0.orig/ubuntu/lttng-modules/lttng-ring-buffer-client-mmap-overwrite.c +++ linux-3.11.0/ubuntu/lttng-modules/lttng-ring-buffer-client-mmap-overwrite.c @@ -0,0 +1,33 @@ +/* + * lttng-ring-buffer-client-overwrite.c + * + * LTTng lib ring buffer client (overwrite mode). + * + * Copyright (C) 2010-2012 Mathieu Desnoyers + * + * 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; only + * version 2.1 of the License. + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include +#include "lttng-tracer.h" + +#define RING_BUFFER_MODE_TEMPLATE RING_BUFFER_OVERWRITE +#define RING_BUFFER_MODE_TEMPLATE_STRING "overwrite-mmap" +#define RING_BUFFER_OUTPUT_TEMPLATE RING_BUFFER_MMAP +#include "lttng-ring-buffer-client.h" + +MODULE_LICENSE("GPL and additional rights"); +MODULE_AUTHOR("Mathieu Desnoyers"); +MODULE_DESCRIPTION("LTTng Ring Buffer Client Overwrite Mode"); --- linux-3.11.0.orig/ubuntu/lttng-modules/CodingStyle +++ linux-3.11.0/ubuntu/lttng-modules/CodingStyle @@ -0,0 +1,10 @@ +LTTng Modules Kernel Tracer Coding Style + +The coding style used for this project follows the the Linux kernel +guide lines. Please refer to: + +- Linux kernel Documentation/CodingStyle document for details, +- Linux kernel scripts/checkpatch.pl for a script which verify the patch + coding style. + +Mathieu Desnoyers, May 30, 2012 --- linux-3.11.0.orig/ubuntu/lttng-modules/lttng-ring-buffer-client-discard.c +++ linux-3.11.0/ubuntu/lttng-modules/lttng-ring-buffer-client-discard.c @@ -0,0 +1,33 @@ +/* + * lttng-ring-buffer-client-discard.c + * + * LTTng lib ring buffer client (discard mode). + * + * Copyright (C) 2010-2012 Mathieu Desnoyers + * + * 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; only + * version 2.1 of the License. + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include +#include "lttng-tracer.h" + +#define RING_BUFFER_MODE_TEMPLATE RING_BUFFER_DISCARD +#define RING_BUFFER_MODE_TEMPLATE_STRING "discard" +#define RING_BUFFER_OUTPUT_TEMPLATE RING_BUFFER_SPLICE +#include "lttng-ring-buffer-client.h" + +MODULE_LICENSE("GPL and additional rights"); +MODULE_AUTHOR("Mathieu Desnoyers"); +MODULE_DESCRIPTION("LTTng Ring Buffer Client Discard Mode"); --- linux-3.11.0.orig/ubuntu/lttng-modules/lttng-context-vppid.c +++ linux-3.11.0/ubuntu/lttng-modules/lttng-context-vppid.c @@ -0,0 +1,102 @@ +/* + * lttng-context-vppid.c + * + * LTTng vPPID context. + * + * Copyright (C) 2009-2012 Mathieu Desnoyers + * + * 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; only + * version 2.1 of the License. + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include +#include +#include +#include +#include "lttng-events.h" +#include "wrapper/ringbuffer/frontend_types.h" +#include "wrapper/vmalloc.h" +#include "lttng-tracer.h" + +static +size_t vppid_get_size(size_t offset) +{ + size_t size = 0; + + size += lib_ring_buffer_align(offset, lttng_alignof(pid_t)); + size += sizeof(pid_t); + return size; +} + +static +void vppid_record(struct lttng_ctx_field *field, + struct lib_ring_buffer_ctx *ctx, + struct lttng_channel *chan) +{ + struct task_struct *parent; + pid_t vppid; + + /* + * current nsproxy can be NULL when scheduled out of exit. pid_vnr uses + * the current thread nsproxy to perform the lookup. + */ + + /* + * TODO: when we eventually add RCU subsystem instrumentation, + * taking the rcu read lock here will trigger RCU tracing + * recursively. We should modify the kernel synchronization so + * it synchronizes both for RCU and RCU sched, and rely on + * rcu_read_lock_sched_notrace. + */ + + rcu_read_lock(); + parent = rcu_dereference(current->real_parent); + if (!current->nsproxy) + vppid = 0; + else + vppid = task_tgid_vnr(parent); + rcu_read_unlock(); + lib_ring_buffer_align_ctx(ctx, lttng_alignof(vppid)); + chan->ops->event_write(ctx, &vppid, sizeof(vppid)); +} + +int lttng_add_vppid_to_ctx(struct lttng_ctx **ctx) +{ + struct lttng_ctx_field *field; + + field = lttng_append_context(ctx); + if (!field) + return -ENOMEM; + if (lttng_find_context(*ctx, "vppid")) { + lttng_remove_context_field(ctx, field); + return -EEXIST; + } + field->event_field.name = "vppid"; + field->event_field.type.atype = atype_integer; + field->event_field.type.u.basic.integer.size = sizeof(pid_t) * CHAR_BIT; + field->event_field.type.u.basic.integer.alignment = lttng_alignof(pid_t) * CHAR_BIT; + field->event_field.type.u.basic.integer.signedness = lttng_is_signed_type(pid_t); + field->event_field.type.u.basic.integer.reverse_byte_order = 0; + field->event_field.type.u.basic.integer.base = 10; + field->event_field.type.u.basic.integer.encoding = lttng_encode_none; + field->get_size = vppid_get_size; + field->record = vppid_record; + wrapper_vmalloc_sync_all(); + return 0; +} +EXPORT_SYMBOL_GPL(lttng_add_vppid_to_ctx); + +MODULE_LICENSE("GPL and additional rights"); +MODULE_AUTHOR("Mathieu Desnoyers"); +MODULE_DESCRIPTION("Linux Trace Toolkit vPPID Context"); --- linux-3.11.0.orig/ubuntu/lttng-modules/lttng-ring-buffer-metadata-client.c +++ linux-3.11.0/ubuntu/lttng-modules/lttng-ring-buffer-metadata-client.c @@ -0,0 +1,33 @@ +/* + * lttng-ring-buffer-metadata-client.c + * + * LTTng lib ring buffer metadta client. + * + * Copyright (C) 2010-2012 Mathieu Desnoyers + * + * 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; only + * version 2.1 of the License. + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include +#include "lttng-tracer.h" + +#define RING_BUFFER_MODE_TEMPLATE RING_BUFFER_DISCARD +#define RING_BUFFER_MODE_TEMPLATE_STRING "metadata" +#define RING_BUFFER_OUTPUT_TEMPLATE RING_BUFFER_SPLICE +#include "lttng-ring-buffer-metadata-client.h" + +MODULE_LICENSE("GPL and additional rights"); +MODULE_AUTHOR("Mathieu Desnoyers"); +MODULE_DESCRIPTION("LTTng Ring Buffer Metadata Client"); --- linux-3.11.0.orig/ubuntu/lttng-modules/TODO +++ linux-3.11.0/ubuntu/lttng-modules/TODO @@ -0,0 +1,116 @@ +Please contact Mathieu Desnoyers for +questions about this TODO list. The "Cleanup/Testing" section would be +good to go through before integration into mainline. The "Features" +section is a wish list of features to complete before releasing the +"LTTng 2.0" final version, but are not required to have LTTng working. +These features are mostly performance enhancements and instrumentation +enhancements. + +TODO: + +A) Cleanup/Testing + + 1) Test lib ring buffer snapshot feature. + When working on the lttngtop project, Julien Desfossez + reported that he needed to push the consumer position + forward explicitely with lib_ring_buffer_put_next_subbuf. + This means that although the usual case of pairs of + lib_ring_buffer_get_next_subbuf/lib_ring_buffer_put_next_subbuf + work fine, there is probably a problem that needs to be + investigated in + lib_ring_buffer_get_subbuf/lib_ring_buffer_put_subbuf, which + depend on the producer to push the reader position. + Contact: Julien Desfossez + + +B) Features + + 1) Integration of the LTTng 0.x trace clocks into + LTTng 2.0. + Currently using mainline kernel monotonic clock. NMIs can + therefore not be traced, and this causes a significant + performance degradation compared to the LTTng 0.x trace + clocks. Imply the creation of drivers/staging/lttng/arch to + contain the arch-specific clock support files. + * Dependency: addition of clock descriptions to CTF. + See: http://git.lttng.org/?p=linux-2.6-lttng.git;a=summary + for the LTTng 0.x git tree. + + 2) Port OMAP3 LTTng trace clocks to x86 to support systems + without constant TSC. + * Dependency: (B.1) + See: http://git.lttng.org/?p=linux-2.6-lttng.git;a=summary + for the LTTng 0.x git tree. + + 3) Implement mmap operation on an anonymous file created by a + LTTNG_KERNEL_CLOCK ioctl to export data to export + synchronized kernel and user-level LTTng trace clocks: + with: + - shared per-cpu data, + - read seqlock. + The content exported by this shared memory area will be + arch-specific. + * Dependency: (B.1) && (B.2) + See: http://git.lttng.org/?p=linux-2.6-lttng.git;a=summary + for the LTTng 0.x git tree, which has vDSO support for + LTTng trace clock on the x86 architecture. + + 3) Integrate the "statedump" module from LTTng 0.x into LTTng + 2.0. + See: http://git.lttng.org/?p=lttng-modules.git;a=shortlog;h=refs/heads/v0.19-stable + ltt-statedump.c + + 4) Generate system call TRACE_EVENT headers for all + architectures (currently done: x86 32/64). + + 5) Define "unknown" system calls into instrumentation/syscalls + override files / or do SYSCALL_DEFINE improvements to + mainline kernel to allow automatic generation of these + missing system call descriptions. + + 6) Create missing tracepoint event headers files into + instrumentation/events from headers located in + include/trace/events/. Choice: either do as currently done, + and copy those headers locally into the lttng driver and + perform the modifications locally, or push TRACE_EVENT API + modification into mainline headers, which would require + collaboration from Ftrace/Perf maintainers. + + 7) Poll: implement a poll and/or epoll exclusive wakeup scheme, + which contradicts POSIX, but protect multiple consumer + threads from thundering herd effect. + + 8) Re-integrate sample modules from libringbuffer into + lttng driver. Those modules can be used as example of how to + use libringbuffer in other contexts than LTTng, and are + useful to perform benchmarks of the ringbuffer library. + See: http://www.efficios.com/ringbuffer + + 9) NOHZ support for lib ring buffer. NOHZ infrastructure in the + Linux kernel does not support notifiers chains, which does + not let LTTng play nicely with low power consumption setups + for flight recorder (overwrite mode) live traces. One way to + allow integration between NOHZ and LTTng would be to add + support for such notifiers into NOHZ kernel infrastructure. + + 10) Turn lttng-probes.c probe_list into a + hash table. Turns O(n^2) trace systems registration (cost + for n systems) into O(n). (O(1) per system) + + 11) drivers/staging/lttng/probes/lttng-ftrace.c: + LTTng currently uses kretprobes for per-function tracing, + not the function tracer. So lttng-ftrace.c should be used + for "all" function tracing. + + 12) drivers/staging/lttng/probes/lttng-types.c: + This is a currently unused placeholder to export entire C + type declarations into the trace metadata, e.g. for support + of describing the layout of structures/enumeration mapping + along with syscall entry events. The design of this support + will likely change though, and become integrated with the + TRACE_EVENT support within lttng, by adding new macros, and + support for generation of metadata from these macros, to + allow description of those compound types/enumerations. + +Please send patches +To: Mathieu Desnoyers --- linux-3.11.0.orig/ubuntu/lttng-modules/lttng-syscalls.c +++ linux-3.11.0/ubuntu/lttng-modules/lttng-syscalls.c @@ -0,0 +1,459 @@ +/* + * lttng-syscalls.c + * + * LTTng syscall probes. + * + * Copyright (C) 2010-2012 Mathieu Desnoyers + * + * 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; only + * version 2.1 of the License. + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include +#include +#include +#include +#include + +#include "wrapper/tracepoint.h" +#include "lttng-events.h" + +#ifndef CONFIG_COMPAT +# ifndef is_compat_task +# define is_compat_task() (0) +# endif +#endif + +static +void syscall_entry_probe(void *__data, struct pt_regs *regs, long id); + +/* + * Forward declarations for old kernels. + */ +struct mmsghdr; +struct rlimit64; +struct oldold_utsname; +struct old_utsname; +struct sel_arg_struct; +struct mmap_arg_struct; + +/* + * Take care of NOARGS not supported by mainline. + */ +#define DECLARE_EVENT_CLASS_NOARGS(name, tstruct, assign, print) +#define DEFINE_EVENT_NOARGS(template, name) +#define TRACE_EVENT_NOARGS(name, struct, assign, print) + +/* + * Create LTTng tracepoint probes. + */ +#define LTTNG_PACKAGE_BUILD +#define CREATE_TRACE_POINTS +#define TP_MODULE_NOINIT +#define TRACE_INCLUDE_PATH ../instrumentation/syscalls/headers + +#define PARAMS(args...) args + +/* Hijack probe callback for system calls */ +#undef TP_PROBE_CB +#define TP_PROBE_CB(_template) &syscall_entry_probe +#define SC_TRACE_EVENT(_name, _proto, _args, _struct, _assign, _printk) \ + TRACE_EVENT(_name, PARAMS(_proto), PARAMS(_args),\ + PARAMS(_struct), PARAMS(_assign), PARAMS(_printk)) +#define SC_DECLARE_EVENT_CLASS_NOARGS(_name, _struct, _assign, _printk) \ + DECLARE_EVENT_CLASS_NOARGS(_name, PARAMS(_struct), PARAMS(_assign),\ + PARAMS(_printk)) +#define SC_DEFINE_EVENT_NOARGS(_template, _name) \ + DEFINE_EVENT_NOARGS(_template, _name) +#undef TRACE_SYSTEM +#define TRACE_SYSTEM syscalls_integers +#include "instrumentation/syscalls/headers/syscalls_integers.h" +#undef TRACE_SYSTEM +#define TRACE_SYSTEM syscalls_pointers +#include "instrumentation/syscalls/headers/syscalls_pointers.h" +#undef TRACE_SYSTEM +#undef SC_TRACE_EVENT +#undef SC_DECLARE_EVENT_CLASS_NOARGS +#undef SC_DEFINE_EVENT_NOARGS + +#define TRACE_SYSTEM syscalls_unknown +#include "instrumentation/syscalls/headers/syscalls_unknown.h" +#undef TRACE_SYSTEM + +/* For compat syscalls */ +#undef _TRACE_SYSCALLS_integers_H +#undef _TRACE_SYSCALLS_pointers_H + +/* Hijack probe callback for system calls */ +#undef TP_PROBE_CB +#define TP_PROBE_CB(_template) &syscall_entry_probe +#define SC_TRACE_EVENT(_name, _proto, _args, _struct, _assign, _printk) \ + TRACE_EVENT(compat_##_name, PARAMS(_proto), PARAMS(_args), \ + PARAMS(_struct), PARAMS(_assign), \ + PARAMS(_printk)) +#define SC_DECLARE_EVENT_CLASS_NOARGS(_name, _struct, _assign, _printk) \ + DECLARE_EVENT_CLASS_NOARGS(compat_##_name, PARAMS(_struct), \ + PARAMS(_assign), PARAMS(_printk)) +#define SC_DEFINE_EVENT_NOARGS(_template, _name) \ + DEFINE_EVENT_NOARGS(compat_##_template, compat_##_name) +#define TRACE_SYSTEM compat_syscalls_integers +#include "instrumentation/syscalls/headers/compat_syscalls_integers.h" +#undef TRACE_SYSTEM +#define TRACE_SYSTEM compat_syscalls_pointers +#include "instrumentation/syscalls/headers/compat_syscalls_pointers.h" +#undef TRACE_SYSTEM +#undef SC_TRACE_EVENT +#undef SC_DECLARE_EVENT_CLASS_NOARGS +#undef SC_DEFINE_EVENT_NOARGS +#undef TP_PROBE_CB + +#undef TP_MODULE_NOINIT +#undef LTTNG_PACKAGE_BUILD +#undef CREATE_TRACE_POINTS + +struct trace_syscall_entry { + void *func; + const struct lttng_event_desc *desc; + const struct lttng_event_field *fields; + unsigned int nrargs; +}; + +#define CREATE_SYSCALL_TABLE + +#undef TRACE_SYSCALL_TABLE +#define TRACE_SYSCALL_TABLE(_template, _name, _nr, _nrargs) \ + [ _nr ] = { \ + .func = __event_probe__##_template, \ + .nrargs = (_nrargs), \ + .fields = __event_fields___##_template, \ + .desc = &__event_desc___##_name, \ + }, + +static const struct trace_syscall_entry sc_table[] = { +#include "instrumentation/syscalls/headers/syscalls_integers.h" +#include "instrumentation/syscalls/headers/syscalls_pointers.h" +}; + +#undef TRACE_SYSCALL_TABLE +#define TRACE_SYSCALL_TABLE(_template, _name, _nr, _nrargs) \ + [ _nr ] = { \ + .func = __event_probe__##compat_##_template, \ + .nrargs = (_nrargs), \ + .fields = __event_fields___##compat_##_template,\ + .desc = &__event_desc___##compat_##_name, \ + }, + +/* Create compatibility syscall table */ +const struct trace_syscall_entry compat_sc_table[] = { +#include "instrumentation/syscalls/headers/compat_syscalls_integers.h" +#include "instrumentation/syscalls/headers/compat_syscalls_pointers.h" +}; + +#undef CREATE_SYSCALL_TABLE + +static void syscall_entry_unknown(struct lttng_event *event, + struct pt_regs *regs, unsigned int id) +{ + unsigned long args[UNKNOWN_SYSCALL_NRARGS]; + + syscall_get_arguments(current, regs, 0, UNKNOWN_SYSCALL_NRARGS, args); + if (unlikely(is_compat_task())) + __event_probe__compat_sys_unknown(event, id, args); + else + __event_probe__sys_unknown(event, id, args); +} + +void syscall_entry_probe(void *__data, struct pt_regs *regs, long id) +{ + struct lttng_channel *chan = __data; + struct lttng_event *event, *unknown_event; + const struct trace_syscall_entry *table, *entry; + size_t table_len; + + if (unlikely(is_compat_task())) { + table = compat_sc_table; + table_len = ARRAY_SIZE(compat_sc_table); + unknown_event = chan->sc_compat_unknown; + } else { + table = sc_table; + table_len = ARRAY_SIZE(sc_table); + unknown_event = chan->sc_unknown; + } + if (unlikely(id >= table_len)) { + syscall_entry_unknown(unknown_event, regs, id); + return; + } + if (unlikely(is_compat_task())) + event = chan->compat_sc_table[id]; + else + event = chan->sc_table[id]; + if (unlikely(!event)) { + syscall_entry_unknown(unknown_event, regs, id); + return; + } + entry = &table[id]; + WARN_ON_ONCE(!entry); + + switch (entry->nrargs) { + case 0: + { + void (*fptr)(void *__data) = entry->func; + + fptr(event); + break; + } + case 1: + { + void (*fptr)(void *__data, unsigned long arg0) = entry->func; + unsigned long args[1]; + + syscall_get_arguments(current, regs, 0, entry->nrargs, args); + fptr(event, args[0]); + break; + } + case 2: + { + void (*fptr)(void *__data, + unsigned long arg0, + unsigned long arg1) = entry->func; + unsigned long args[2]; + + syscall_get_arguments(current, regs, 0, entry->nrargs, args); + fptr(event, args[0], args[1]); + break; + } + case 3: + { + void (*fptr)(void *__data, + unsigned long arg0, + unsigned long arg1, + unsigned long arg2) = entry->func; + unsigned long args[3]; + + syscall_get_arguments(current, regs, 0, entry->nrargs, args); + fptr(event, args[0], args[1], args[2]); + break; + } + case 4: + { + void (*fptr)(void *__data, + unsigned long arg0, + unsigned long arg1, + unsigned long arg2, + unsigned long arg3) = entry->func; + unsigned long args[4]; + + syscall_get_arguments(current, regs, 0, entry->nrargs, args); + fptr(event, args[0], args[1], args[2], args[3]); + break; + } + case 5: + { + void (*fptr)(void *__data, + unsigned long arg0, + unsigned long arg1, + unsigned long arg2, + unsigned long arg3, + unsigned long arg4) = entry->func; + unsigned long args[5]; + + syscall_get_arguments(current, regs, 0, entry->nrargs, args); + fptr(event, args[0], args[1], args[2], args[3], args[4]); + break; + } + case 6: + { + void (*fptr)(void *__data, + unsigned long arg0, + unsigned long arg1, + unsigned long arg2, + unsigned long arg3, + unsigned long arg4, + unsigned long arg5) = entry->func; + unsigned long args[6]; + + syscall_get_arguments(current, regs, 0, entry->nrargs, args); + fptr(event, args[0], args[1], args[2], + args[3], args[4], args[5]); + break; + } + default: + break; + } +} + +/* noinline to diminish caller stack size */ +static +int fill_table(const struct trace_syscall_entry *table, size_t table_len, + struct lttng_event **chan_table, struct lttng_channel *chan, void *filter) +{ + const struct lttng_event_desc *desc; + unsigned int i; + + /* Allocate events for each syscall, insert into table */ + for (i = 0; i < table_len; i++) { + struct lttng_kernel_event ev; + desc = table[i].desc; + + if (!desc) { + /* Unknown syscall */ + continue; + } + /* + * Skip those already populated by previous failed + * register for this channel. + */ + if (chan_table[i]) + continue; + memset(&ev, 0, sizeof(ev)); + strncpy(ev.name, desc->name, LTTNG_KERNEL_SYM_NAME_LEN); + ev.name[LTTNG_KERNEL_SYM_NAME_LEN - 1] = '\0'; + ev.instrumentation = LTTNG_KERNEL_NOOP; + chan_table[i] = lttng_event_create(chan, &ev, filter, + desc); + if (!chan_table[i]) { + /* + * If something goes wrong in event registration + * after the first one, we have no choice but to + * leave the previous events in there, until + * deleted by session teardown. + */ + return -EINVAL; + } + } + return 0; +} + +int lttng_syscalls_register(struct lttng_channel *chan, void *filter) +{ + struct lttng_kernel_event ev; + int ret; + + wrapper_vmalloc_sync_all(); + + if (!chan->sc_table) { + /* create syscall table mapping syscall to events */ + chan->sc_table = kzalloc(sizeof(struct lttng_event *) + * ARRAY_SIZE(sc_table), GFP_KERNEL); + if (!chan->sc_table) + return -ENOMEM; + } + +#ifdef CONFIG_COMPAT + if (!chan->compat_sc_table) { + /* create syscall table mapping compat syscall to events */ + chan->compat_sc_table = kzalloc(sizeof(struct lttng_event *) + * ARRAY_SIZE(compat_sc_table), GFP_KERNEL); + if (!chan->compat_sc_table) + return -ENOMEM; + } +#endif + if (!chan->sc_unknown) { + const struct lttng_event_desc *desc = + &__event_desc___sys_unknown; + + memset(&ev, 0, sizeof(ev)); + strncpy(ev.name, desc->name, LTTNG_KERNEL_SYM_NAME_LEN); + ev.name[LTTNG_KERNEL_SYM_NAME_LEN - 1] = '\0'; + ev.instrumentation = LTTNG_KERNEL_NOOP; + chan->sc_unknown = lttng_event_create(chan, &ev, filter, + desc); + if (!chan->sc_unknown) { + return -EINVAL; + } + } + + if (!chan->sc_compat_unknown) { + const struct lttng_event_desc *desc = + &__event_desc___compat_sys_unknown; + + memset(&ev, 0, sizeof(ev)); + strncpy(ev.name, desc->name, LTTNG_KERNEL_SYM_NAME_LEN); + ev.name[LTTNG_KERNEL_SYM_NAME_LEN - 1] = '\0'; + ev.instrumentation = LTTNG_KERNEL_NOOP; + chan->sc_compat_unknown = lttng_event_create(chan, &ev, filter, + desc); + if (!chan->sc_compat_unknown) { + return -EINVAL; + } + } + + if (!chan->sc_exit) { + const struct lttng_event_desc *desc = + &__event_desc___exit_syscall; + + memset(&ev, 0, sizeof(ev)); + strncpy(ev.name, desc->name, LTTNG_KERNEL_SYM_NAME_LEN); + ev.name[LTTNG_KERNEL_SYM_NAME_LEN - 1] = '\0'; + ev.instrumentation = LTTNG_KERNEL_NOOP; + chan->sc_exit = lttng_event_create(chan, &ev, filter, + desc); + if (!chan->sc_exit) { + return -EINVAL; + } + } + + ret = fill_table(sc_table, ARRAY_SIZE(sc_table), + chan->sc_table, chan, filter); + if (ret) + return ret; +#ifdef CONFIG_COMPAT + ret = fill_table(compat_sc_table, ARRAY_SIZE(compat_sc_table), + chan->compat_sc_table, chan, filter); + if (ret) + return ret; +#endif + ret = kabi_2635_tracepoint_probe_register("sys_enter", + (void *) syscall_entry_probe, chan); + if (ret) + return ret; + /* + * We change the name of sys_exit tracepoint due to namespace + * conflict with sys_exit syscall entry. + */ + ret = kabi_2635_tracepoint_probe_register("sys_exit", + (void *) __event_probe__exit_syscall, + chan->sc_exit); + if (ret) { + WARN_ON_ONCE(kabi_2635_tracepoint_probe_unregister("sys_enter", + (void *) syscall_entry_probe, chan)); + } + return ret; +} + +/* + * Only called at session destruction. + */ +int lttng_syscalls_unregister(struct lttng_channel *chan) +{ + int ret; + + if (!chan->sc_table) + return 0; + ret = kabi_2635_tracepoint_probe_unregister("sys_exit", + (void *) __event_probe__exit_syscall, + chan->sc_exit); + if (ret) + return ret; + ret = kabi_2635_tracepoint_probe_unregister("sys_enter", + (void *) syscall_entry_probe, chan); + if (ret) + return ret; + /* lttng_event destroy will be performed by lttng_session_destroy() */ + kfree(chan->sc_table); +#ifdef CONFIG_COMPAT + kfree(chan->compat_sc_table); +#endif + return 0; +} --- linux-3.11.0.orig/ubuntu/lttng-modules/gpl-2.0.txt +++ linux-3.11.0/ubuntu/lttng-modules/gpl-2.0.txt @@ -0,0 +1,339 @@ + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc., + 51 Franklin Street, 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. + + 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 Lesser 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., + 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 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 Lesser General +Public License instead of this License. --- linux-3.11.0.orig/ubuntu/lttng-modules/lttng-abi.h +++ linux-3.11.0/ubuntu/lttng-modules/lttng-abi.h @@ -0,0 +1,217 @@ +#ifndef _LTTNG_ABI_H +#define _LTTNG_ABI_H + +/* + * lttng-abi.h + * + * LTTng ABI header + * + * Copyright (C) 2010-2012 Mathieu Desnoyers + * + * 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; only + * version 2.1 of the License. + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include + +#define LTTNG_KERNEL_SYM_NAME_LEN 256 + +enum lttng_kernel_instrumentation { + LTTNG_KERNEL_TRACEPOINT = 0, + LTTNG_KERNEL_KPROBE = 1, + LTTNG_KERNEL_FUNCTION = 2, + LTTNG_KERNEL_KRETPROBE = 3, + LTTNG_KERNEL_NOOP = 4, /* not hooked */ + LTTNG_KERNEL_SYSCALL = 5, +}; + +/* + * LTTng consumer mode + */ +enum lttng_kernel_output { + LTTNG_KERNEL_SPLICE = 0, + LTTNG_KERNEL_MMAP = 1, +}; + +/* + * LTTng DebugFS ABI structures. + */ +#define LTTNG_KERNEL_CHANNEL_PADDING LTTNG_KERNEL_SYM_NAME_LEN + 32 +struct lttng_kernel_channel { + uint64_t subbuf_size; /* in bytes */ + uint64_t num_subbuf; + unsigned int switch_timer_interval; /* usecs */ + unsigned int read_timer_interval; /* usecs */ + enum lttng_kernel_output output; /* splice, mmap */ + int overwrite; /* 1: overwrite, 0: discard */ + char padding[LTTNG_KERNEL_CHANNEL_PADDING]; +}__attribute__((packed)); + +struct lttng_kernel_kretprobe { + uint64_t addr; + + uint64_t offset; + char symbol_name[LTTNG_KERNEL_SYM_NAME_LEN]; +}__attribute__((packed)); + +/* + * Either addr is used, or symbol_name and offset. + */ +struct lttng_kernel_kprobe { + uint64_t addr; + + uint64_t offset; + char symbol_name[LTTNG_KERNEL_SYM_NAME_LEN]; +}__attribute__((packed)); + +struct lttng_kernel_function_tracer { + char symbol_name[LTTNG_KERNEL_SYM_NAME_LEN]; +}__attribute__((packed)); + +/* + * For syscall tracing, name = '\0' means "enable all". + */ +#define LTTNG_KERNEL_EVENT_PADDING1 16 +#define LTTNG_KERNEL_EVENT_PADDING2 LTTNG_KERNEL_SYM_NAME_LEN + 32 +struct lttng_kernel_event { + char name[LTTNG_KERNEL_SYM_NAME_LEN]; /* event name */ + enum lttng_kernel_instrumentation instrumentation; + char padding[LTTNG_KERNEL_EVENT_PADDING1]; + + /* Per instrumentation type configuration */ + union { + struct lttng_kernel_kretprobe kretprobe; + struct lttng_kernel_kprobe kprobe; + struct lttng_kernel_function_tracer ftrace; + char padding[LTTNG_KERNEL_EVENT_PADDING2]; + } u; +}__attribute__((packed)); + +struct lttng_kernel_tracer_version { + uint32_t major; + uint32_t minor; + uint32_t patchlevel; +}__attribute__((packed)); + +enum lttng_kernel_calibrate_type { + LTTNG_KERNEL_CALIBRATE_KRETPROBE, +}; + +struct lttng_kernel_calibrate { + enum lttng_kernel_calibrate_type type; /* type (input) */ +}__attribute__((packed)); + +enum lttng_kernel_context_type { + LTTNG_KERNEL_CONTEXT_PID = 0, + LTTNG_KERNEL_CONTEXT_PERF_COUNTER = 1, + LTTNG_KERNEL_CONTEXT_PROCNAME = 2, + LTTNG_KERNEL_CONTEXT_PRIO = 3, + LTTNG_KERNEL_CONTEXT_NICE = 4, + LTTNG_KERNEL_CONTEXT_VPID = 5, + LTTNG_KERNEL_CONTEXT_TID = 6, + LTTNG_KERNEL_CONTEXT_VTID = 7, + LTTNG_KERNEL_CONTEXT_PPID = 8, + LTTNG_KERNEL_CONTEXT_VPPID = 9, + LTTNG_KERNEL_CONTEXT_HOSTNAME = 10, +}; + +struct lttng_kernel_perf_counter_ctx { + uint32_t type; + uint64_t config; + char name[LTTNG_KERNEL_SYM_NAME_LEN]; +}__attribute__((packed)); + +#define LTTNG_KERNEL_CONTEXT_PADDING1 16 +#define LTTNG_KERNEL_CONTEXT_PADDING2 LTTNG_KERNEL_SYM_NAME_LEN + 32 +struct lttng_kernel_context { + enum lttng_kernel_context_type ctx; + char padding[LTTNG_KERNEL_CONTEXT_PADDING1]; + + union { + struct lttng_kernel_perf_counter_ctx perf_counter; + char padding[LTTNG_KERNEL_CONTEXT_PADDING2]; + } u; +}__attribute__((packed)); + +/* LTTng file descriptor ioctl */ +#define LTTNG_KERNEL_SESSION _IO(0xF6, 0x45) +#define LTTNG_KERNEL_TRACER_VERSION \ + _IOR(0xF6, 0x46, struct lttng_kernel_tracer_version) +#define LTTNG_KERNEL_TRACEPOINT_LIST _IO(0xF6, 0x47) +#define LTTNG_KERNEL_WAIT_QUIESCENT _IO(0xF6, 0x48) +#define LTTNG_KERNEL_CALIBRATE \ + _IOWR(0xF6, 0x49, struct lttng_kernel_calibrate) + +/* Session FD ioctl */ +#define LTTNG_KERNEL_METADATA \ + _IOW(0xF6, 0x54, struct lttng_kernel_channel) +#define LTTNG_KERNEL_CHANNEL \ + _IOW(0xF6, 0x55, struct lttng_kernel_channel) +#define LTTNG_KERNEL_SESSION_START _IO(0xF6, 0x56) +#define LTTNG_KERNEL_SESSION_STOP _IO(0xF6, 0x57) + +/* Channel FD ioctl */ +#define LTTNG_KERNEL_STREAM _IO(0xF6, 0x62) +#define LTTNG_KERNEL_EVENT \ + _IOW(0xF6, 0x63, struct lttng_kernel_event) + +/* Event and Channel FD ioctl */ +#define LTTNG_KERNEL_CONTEXT \ + _IOW(0xF6, 0x71, struct lttng_kernel_context) + +/* Event, Channel and Session ioctl */ +#define LTTNG_KERNEL_ENABLE _IO(0xF6, 0x82) +#define LTTNG_KERNEL_DISABLE _IO(0xF6, 0x83) + +/* LTTng-specific ioctls for the lib ringbuffer */ +/* returns the timestamp begin of the current sub-buffer */ +#define LTTNG_RING_BUFFER_GET_TIMESTAMP_BEGIN _IOR(0xF6, 0x20, uint64_t) +/* returns the timestamp end of the current sub-buffer */ +#define LTTNG_RING_BUFFER_GET_TIMESTAMP_END _IOR(0xF6, 0x21, uint64_t) +/* returns the number of events discarded */ +#define LTTNG_RING_BUFFER_GET_EVENTS_DISCARDED _IOR(0xF6, 0x22, uint64_t) +/* returns the packet payload size */ +#define LTTNG_RING_BUFFER_GET_CONTENT_SIZE _IOR(0xF6, 0x23, uint64_t) +/* returns the actual packet size */ +#define LTTNG_RING_BUFFER_GET_PACKET_SIZE _IOR(0xF6, 0x24, uint64_t) +/* returns the stream id */ +#define LTTNG_RING_BUFFER_GET_STREAM_ID _IOR(0xF6, 0x25, uint64_t) +/* returns the current timestamp */ +#define LTTNG_RING_BUFFER_GET_CURRENT_TIMESTAMP _IOR(0xF6, 0x26, uint64_t) + +#ifdef CONFIG_COMPAT +/* returns the timestamp begin of the current sub-buffer */ +#define LTTNG_RING_BUFFER_COMPAT_GET_TIMESTAMP_BEGIN \ + LTTNG_RING_BUFFER_GET_TIMESTAMP_BEGIN +/* returns the timestamp end of the current sub-buffer */ +#define LTTNG_RING_BUFFER_COMPAT_GET_TIMESTAMP_END \ + LTTNG_RING_BUFFER_GET_TIMESTAMP_END +/* returns the number of events discarded */ +#define LTTNG_RING_BUFFER_COMPAT_GET_EVENTS_DISCARDED \ + LTTNG_RING_BUFFER_GET_EVENTS_DISCARDED +/* returns the packet payload size */ +#define LTTNG_RING_BUFFER_COMPAT_GET_CONTENT_SIZE \ + LTTNG_RING_BUFFER_GET_CONTENT_SIZE +/* returns the actual packet size */ +#define LTTNG_RING_BUFFER_COMPAT_GET_PACKET_SIZE \ + LTTNG_RING_BUFFER_GET_PACKET_SIZE +/* returns the stream id */ +#define LTTNG_RING_BUFFER_COMPAT_GET_STREAM_ID \ + LTTNG_RING_BUFFER_GET_STREAM_ID +/* returns the current timestamp */ +#define LTTNG_RING_BUFFER_COMPAT_GET_CURRENT_TIMESTAMP \ + LTTNG_RING_BUFFER_GET_CURRENT_TIMESTAMP +#endif /* CONFIG_COMPAT */ + +#endif /* _LTTNG_ABI_H */ --- linux-3.11.0.orig/ubuntu/lttng-modules/Makefile +++ linux-3.11.0/ubuntu/lttng-modules/Makefile @@ -0,0 +1,61 @@ +# +# Makefile for the LTT objects. +# + +ifneq ($(KERNELRELEASE),) +ifneq ($(CONFIG_TRACEPOINTS),) + +obj-m += lttng-ring-buffer-client-discard.o +obj-m += lttng-ring-buffer-client-overwrite.o +obj-m += lttng-ring-buffer-metadata-client.o +obj-m += lttng-ring-buffer-client-mmap-discard.o +obj-m += lttng-ring-buffer-client-mmap-overwrite.o +obj-m += lttng-ring-buffer-metadata-mmap-client.o + +obj-m += lttng-tracer.o +lttng-tracer-objs := lttng-events.o lttng-abi.o \ + lttng-probes.o lttng-context.o \ + lttng-context-pid.o lttng-context-procname.o \ + lttng-context-prio.o lttng-context-nice.o \ + lttng-context-vpid.o lttng-context-tid.o \ + lttng-context-vtid.o lttng-context-ppid.o \ + lttng-context-vppid.o lttng-calibrate.o \ + lttng-context-hostname.o wrapper/random.o + +obj-m += lttng-statedump.o +lttng-statedump-objs := lttng-statedump-impl.o wrapper/irqdesc.o \ + wrapper/fdtable.o + +ifneq ($(CONFIG_HAVE_SYSCALL_TRACEPOINTS),) +lttng-tracer-objs += lttng-syscalls.o probes/lttng-probe-user.o +endif # CONFIG_HAVE_SYSCALL_TRACEPOINTS + +ifneq ($(CONFIG_PERF_EVENTS),) +lttng-tracer-objs += $(shell \ + if [ $(VERSION) -ge 3 \ + -o \( $(VERSION) -eq 2 -a $(PATCHLEVEL) -ge 6 -a $(SUBLEVEL) -ge 33 \) ] ; then \ + echo "lttng-context-perf-counters.o" ; fi;) +endif # CONFIG_PERF_EVENTS + +obj-m += probes/ +obj-m += lib/ + +endif # CONFIG_TRACEPOINTS + +else # KERNELRELEASE + KERNELDIR ?= /lib/modules/$(shell uname -r)/build + PWD := $(shell pwd) + CFLAGS = $(EXTCFLAGS) + +default: + $(MAKE) -C $(KERNELDIR) M=$(PWD) modules + +modules_install: + $(MAKE) -C $(KERNELDIR) M=$(PWD) modules_install + +clean: + $(MAKE) -C $(KERNELDIR) M=$(PWD) clean + +%.i: %.c + $(MAKE) -C $(KERNELDIR) M=$(PWD) $@ +endif # KERNELRELEASE --- linux-3.11.0.orig/ubuntu/lttng-modules/lttng-context-ppid.c +++ linux-3.11.0/ubuntu/lttng-modules/lttng-context-ppid.c @@ -0,0 +1,93 @@ +/* + * lttng-context-ppid.c + * + * LTTng PPID context. + * + * Copyright (C) 2009-2012 Mathieu Desnoyers + * + * 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; only + * version 2.1 of the License. + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include +#include +#include +#include +#include "lttng-events.h" +#include "wrapper/ringbuffer/frontend_types.h" +#include "wrapper/vmalloc.h" +#include "lttng-tracer.h" + +static +size_t ppid_get_size(size_t offset) +{ + size_t size = 0; + + size += lib_ring_buffer_align(offset, lttng_alignof(pid_t)); + size += sizeof(pid_t); + return size; +} + +static +void ppid_record(struct lttng_ctx_field *field, + struct lib_ring_buffer_ctx *ctx, + struct lttng_channel *chan) +{ + pid_t ppid; + + + /* + * TODO: when we eventually add RCU subsystem instrumentation, + * taking the rcu read lock here will trigger RCU tracing + * recursively. We should modify the kernel synchronization so + * it synchronizes both for RCU and RCU sched, and rely on + * rcu_read_lock_sched_notrace. + */ + + rcu_read_lock(); + ppid = task_tgid_nr(current->real_parent); + rcu_read_unlock(); + lib_ring_buffer_align_ctx(ctx, lttng_alignof(ppid)); + chan->ops->event_write(ctx, &ppid, sizeof(ppid)); +} + +int lttng_add_ppid_to_ctx(struct lttng_ctx **ctx) +{ + struct lttng_ctx_field *field; + + field = lttng_append_context(ctx); + if (!field) + return -ENOMEM; + if (lttng_find_context(*ctx, "ppid")) { + lttng_remove_context_field(ctx, field); + return -EEXIST; + } + field->event_field.name = "ppid"; + field->event_field.type.atype = atype_integer; + field->event_field.type.u.basic.integer.size = sizeof(pid_t) * CHAR_BIT; + field->event_field.type.u.basic.integer.alignment = lttng_alignof(pid_t) * CHAR_BIT; + field->event_field.type.u.basic.integer.signedness = lttng_is_signed_type(pid_t); + field->event_field.type.u.basic.integer.reverse_byte_order = 0; + field->event_field.type.u.basic.integer.base = 10; + field->event_field.type.u.basic.integer.encoding = lttng_encode_none; + field->get_size = ppid_get_size; + field->record = ppid_record; + wrapper_vmalloc_sync_all(); + return 0; +} +EXPORT_SYMBOL_GPL(lttng_add_ppid_to_ctx); + +MODULE_LICENSE("GPL and additional rights"); +MODULE_AUTHOR("Mathieu Desnoyers"); +MODULE_DESCRIPTION("Linux Trace Toolkit PPID Context"); --- linux-3.11.0.orig/ubuntu/lttng-modules/lttng-ring-buffer-metadata-mmap-client.c +++ linux-3.11.0/ubuntu/lttng-modules/lttng-ring-buffer-metadata-mmap-client.c @@ -0,0 +1,33 @@ +/* + * lttng-ring-buffer-metadata-client.c + * + * LTTng lib ring buffer metadta client. + * + * Copyright (C) 2010-2012 Mathieu Desnoyers + * + * 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; only + * version 2.1 of the License. + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include +#include "lttng-tracer.h" + +#define RING_BUFFER_MODE_TEMPLATE RING_BUFFER_DISCARD +#define RING_BUFFER_MODE_TEMPLATE_STRING "metadata-mmap" +#define RING_BUFFER_OUTPUT_TEMPLATE RING_BUFFER_MMAP +#include "lttng-ring-buffer-metadata-client.h" + +MODULE_LICENSE("GPL and additional rights"); +MODULE_AUTHOR("Mathieu Desnoyers"); +MODULE_DESCRIPTION("LTTng Ring Buffer Metadata Client"); --- linux-3.11.0.orig/ubuntu/lttng-modules/LICENSE +++ linux-3.11.0/ubuntu/lttng-modules/LICENSE @@ -0,0 +1,28 @@ +LTTng modules licensing +Mathieu Desnoyers +June 2, 2011 + +* LGPLv2.1/GPLv2 dual-license + +The files contained within this package are licensed under +LGPLv2.1/GPLv2 dual-license (see lgpl-2.1.txt and gpl-2.0.txt for +details), except for files identified by the following sections. + +* GPLv2 license + +These files are licensed exclusively under the GPLv2 license. See +gpl-2.0.txt for details. + +lib/ringbuffer/ring_buffer_splice.c +lib/ringbuffer/ring_buffer_mmap.c +instrumentation/events/mainline/*.h +instrumentation/events/lttng-modules/*.h + +* MIT-style license + +These files are licensed under an MIT-style license. See mit-license.txt +for details. + +lib/prio_heap/lttng_prio_heap.h +lib/prio_heap/lttng_prio_heap.c +lib/bitfield.h --- linux-3.11.0.orig/ubuntu/lttng-modules/README +++ linux-3.11.0/ubuntu/lttng-modules/README @@ -0,0 +1,93 @@ +LTTng 2.x modules + +Mathieu Desnoyers +March 29, 2013 + +LTTng 2.x kernel modules build against a vanilla or distribution kernel, without +need for additional patches. Other features: + +- Produces CTF (Common Trace Format) natively, + (http://www.efficios.com/ctf) +- Tracepoints, Function tracer, CPU Performance Monitoring Unit (PMU) + counters, kprobes, and kretprobes support, +- Integrated interface for both kernel and userspace tracing, +- Have the ability to attach "context" information to events in the + trace (e.g. any PMU counter, pid, ppid, tid, comm name, etc). + All the extra information fields to be collected with events are + optional, specified on a per-tracing-session basis (except for + timestamp and event id, which are mandatory). + +To build and install, you will need to have your kernel headers available (or +access to your full kernel source tree), and use: + +% make +# make modules_install +# depmod -a + +If you need to specify the target directory to the kernel you want to build +against, use: + +% KERNELDIR=path_to_kernel_dir make +# KERNELDIR=path_to_kernel_dir make modules_install +# depmod -a kernel_version + +Use lttng-tools to control the tracer. LTTng tools should automatically load +the kernel modules when needed. Use Babeltrace to print traces as a +human-readable text log. These tools are available at the following URL: +http://lttng.org/lttng2.0 + +So far, it has been tested on vanilla Linux kernels 2.6.38, 2.6.39, 3.0, +3.1, 3.2, 3.3 (on x86 32/64-bit, and powerpc 32-bit at the moment, build +tested on ARM), 3.4, 3.5, 3.8, 3.9-rc on x86 64-bit. Kernels 2.6.32 to +2.6.34 need up to 3 patches applied (refer to linux-patches within the +lttng-modules tree). It should work fine with newer kernels and other +architectures, but expect build issues with kernels older than 2.6.36. +The clock source currently used is the standard gettimeofday (slower, +less scalable and less precise than the LTTng 0.x clocks). Support for +LTTng 0.x clocks will be added back soon into LTTng 2.0. + + +* Kernel config options required + +CONFIG_MODULES: required + * Kernel modules support. +CONFIG_KALLSYMS: required + * See wrapper/ files. This is necessary until the few required missing + symbols are exported to GPL modules from mainline. +CONFIG_HIGH_RES_TIMERS: required + * Needed for LTTng 2.0 clock source. +CONFIG_TRACEPOINTS: required + kernel tracepoint instrumentation + * Enabled as side-effect of any of the perf/ftrace/blktrace + instrumentation features. + + +* Kernel config options supported (optional) + +The following kernel configuration options will affect the features +available from LTTng: + + +CONFIG_HAVE_SYSCALL_TRACEPOINTS: + system call tracing + lttng enable-event -k --syscall + lttng enable-event -k -a +CONFIG_PERF_EVENTS: + performance counters + lttng add-context -t perf:* +CONFIG_EVENT_TRACING: + needed to allow block layer tracing +CONFIG_KPROBES: + Dynamic probe. + lttng enable-event -k --probe ... +CONFIG_KRETPROBES: + Dynamic function entry/return probe. + lttng enable-event -k --function ... + + +* Note about Perf PMU counters support + +Each PMU counter has its zero value set when it is attached to a context with +add-context. Therefore, it is normal that the same counters attached to both the +stream context and event context show different values for a given event; what +matters is that they increment at the same rate. --- linux-3.11.0.orig/ubuntu/lttng-modules/lttng-context-procname.c +++ linux-3.11.0/ubuntu/lttng-modules/lttng-context-procname.c @@ -0,0 +1,85 @@ +/* + * lttng-context-procname.c + * + * LTTng procname context. + * + * Copyright (C) 2009-2012 Mathieu Desnoyers + * + * 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; only + * version 2.1 of the License. + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include +#include +#include +#include "lttng-events.h" +#include "wrapper/ringbuffer/frontend_types.h" +#include "wrapper/vmalloc.h" +#include "lttng-tracer.h" + +static +size_t procname_get_size(size_t offset) +{ + size_t size = 0; + + size += sizeof(current->comm); + return size; +} + +/* + * Racy read of procname. We simply copy its whole array size. + * Races with /proc//procname write only. + * Otherwise having to take a mutex for each event is cumbersome and + * could lead to crash in IRQ context and deadlock of the lockdep tracer. + */ +static +void procname_record(struct lttng_ctx_field *field, + struct lib_ring_buffer_ctx *ctx, + struct lttng_channel *chan) +{ + chan->ops->event_write(ctx, current->comm, sizeof(current->comm)); +} + +int lttng_add_procname_to_ctx(struct lttng_ctx **ctx) +{ + struct lttng_ctx_field *field; + + field = lttng_append_context(ctx); + if (!field) + return -ENOMEM; + if (lttng_find_context(*ctx, "procname")) { + lttng_remove_context_field(ctx, field); + return -EEXIST; + } + field->event_field.name = "procname"; + field->event_field.type.atype = atype_array; + field->event_field.type.u.array.elem_type.atype = atype_integer; + field->event_field.type.u.array.elem_type.u.basic.integer.size = sizeof(char) * CHAR_BIT; + field->event_field.type.u.array.elem_type.u.basic.integer.alignment = lttng_alignof(char) * CHAR_BIT; + field->event_field.type.u.array.elem_type.u.basic.integer.signedness = lttng_is_signed_type(char); + field->event_field.type.u.array.elem_type.u.basic.integer.reverse_byte_order = 0; + field->event_field.type.u.array.elem_type.u.basic.integer.base = 10; + field->event_field.type.u.array.elem_type.u.basic.integer.encoding = lttng_encode_UTF8; + field->event_field.type.u.array.length = sizeof(current->comm); + + field->get_size = procname_get_size; + field->record = procname_record; + wrapper_vmalloc_sync_all(); + return 0; +} +EXPORT_SYMBOL_GPL(lttng_add_procname_to_ctx); + +MODULE_LICENSE("GPL and additional rights"); +MODULE_AUTHOR("Mathieu Desnoyers"); +MODULE_DESCRIPTION("Linux Trace Toolkit Perf Support"); --- linux-3.11.0.orig/ubuntu/lttng-modules/lgpl-2.1.txt +++ linux-3.11.0/ubuntu/lttng-modules/lgpl-2.1.txt @@ -0,0 +1,504 @@ + GNU LESSER GENERAL PUBLIC LICENSE + Version 2.1, February 1999 + + Copyright (C) 1991, 1999 Free Software Foundation, Inc. + 51 Franklin Street, 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 Street, 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-3.11.0.orig/ubuntu/lttng-modules/lttng-statedump-impl.c +++ linux-3.11.0/ubuntu/lttng-modules/lttng-statedump-impl.c @@ -0,0 +1,426 @@ +/* + * lttng-statedump.c + * + * Linux Trace Toolkit Next Generation Kernel State Dump + * + * Copyright 2005 Jean-Hugues Deschenes + * Copyright 2006-2012 Mathieu Desnoyers + * + * 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; only + * version 2.1 of the License. + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + * + * Changes: + * Eric Clement: Add listing of network IP interface + * 2006, 2007 Mathieu Desnoyers Fix kernel threads + * Various updates + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "lttng-events.h" +#include "wrapper/irqdesc.h" +#include "wrapper/spinlock.h" +#include "wrapper/fdtable.h" +#include "wrapper/nsproxy.h" + +#ifdef CONFIG_GENERIC_HARDIRQS +#include +#endif + +/* Define the tracepoints, but do not build the probes */ +#define CREATE_TRACE_POINTS +#define TRACE_INCLUDE_PATH ../instrumentation/events/lttng-module +#define TRACE_INCLUDE_FILE lttng-statedump +#include "instrumentation/events/lttng-module/lttng-statedump.h" + +struct lttng_fd_ctx { + char *page; + struct lttng_session *session; + struct task_struct *p; +}; + +/* + * Protected by the trace lock. + */ +static struct delayed_work cpu_work[NR_CPUS]; +static DECLARE_WAIT_QUEUE_HEAD(statedump_wq); +static atomic_t kernel_threads_to_run; + +enum lttng_thread_type { + LTTNG_USER_THREAD = 0, + LTTNG_KERNEL_THREAD = 1, +}; + +enum lttng_execution_mode { + LTTNG_USER_MODE = 0, + LTTNG_SYSCALL = 1, + LTTNG_TRAP = 2, + LTTNG_IRQ = 3, + LTTNG_SOFTIRQ = 4, + LTTNG_MODE_UNKNOWN = 5, +}; + +enum lttng_execution_submode { + LTTNG_NONE = 0, + LTTNG_UNKNOWN = 1, +}; + +enum lttng_process_status { + LTTNG_UNNAMED = 0, + LTTNG_WAIT_FORK = 1, + LTTNG_WAIT_CPU = 2, + LTTNG_EXIT = 3, + LTTNG_ZOMBIE = 4, + LTTNG_WAIT = 5, + LTTNG_RUN = 6, + LTTNG_DEAD = 7, +}; + +#ifdef CONFIG_INET +static +void lttng_enumerate_device(struct lttng_session *session, + struct net_device *dev) +{ + struct in_device *in_dev; + struct in_ifaddr *ifa; + + if (dev->flags & IFF_UP) { + in_dev = in_dev_get(dev); + if (in_dev) { + for (ifa = in_dev->ifa_list; ifa != NULL; + ifa = ifa->ifa_next) { + trace_lttng_statedump_network_interface( + session, dev, ifa); + } + in_dev_put(in_dev); + } + } else { + trace_lttng_statedump_network_interface( + session, dev, NULL); + } +} + +static +int lttng_enumerate_network_ip_interface(struct lttng_session *session) +{ + struct net_device *dev; + + read_lock(&dev_base_lock); + for_each_netdev(&init_net, dev) + lttng_enumerate_device(session, dev); + read_unlock(&dev_base_lock); + + return 0; +} +#else /* CONFIG_INET */ +static inline +int lttng_enumerate_network_ip_interface(struct lttng_session *session) +{ + return 0; +} +#endif /* CONFIG_INET */ + +static +int lttng_dump_one_fd(const void *p, struct file *file, unsigned int fd) +{ + const struct lttng_fd_ctx *ctx = p; + const char *s = d_path(&file->f_path, ctx->page, PAGE_SIZE); + + if (IS_ERR(s)) { + struct dentry *dentry = file->f_path.dentry; + + /* Make sure we give at least some info */ + spin_lock(&dentry->d_lock); + trace_lttng_statedump_file_descriptor(ctx->session, ctx->p, fd, + dentry->d_name.name); + spin_unlock(&dentry->d_lock); + goto end; + } + trace_lttng_statedump_file_descriptor(ctx->session, ctx->p, fd, s); +end: + return 0; +} + +static +void lttng_enumerate_task_fd(struct lttng_session *session, + struct task_struct *p, char *tmp) +{ + struct lttng_fd_ctx ctx = { .page = tmp, .session = session, .p = p }; + + task_lock(p); + lttng_iterate_fd(p->files, 0, lttng_dump_one_fd, &ctx); + task_unlock(p); +} + +static +int lttng_enumerate_file_descriptors(struct lttng_session *session) +{ + struct task_struct *p; + char *tmp = (char *) __get_free_page(GFP_KERNEL); + + /* Enumerate active file descriptors */ + rcu_read_lock(); + for_each_process(p) + lttng_enumerate_task_fd(session, p, tmp); + rcu_read_unlock(); + free_page((unsigned long) tmp); + return 0; +} + +#if 0 +/* + * FIXME: we cannot take a mmap_sem while in a RCU read-side critical section + * (scheduling in atomic). Normally, the tasklist lock protects this kind of + * iteration, but it is not exported to modules. + */ +static +void lttng_enumerate_task_vm_maps(struct lttng_session *session, + struct task_struct *p) +{ + struct mm_struct *mm; + struct vm_area_struct *map; + unsigned long ino; + + /* get_task_mm does a task_lock... */ + mm = get_task_mm(p); + if (!mm) + return; + + map = mm->mmap; + if (map) { + down_read(&mm->mmap_sem); + while (map) { + if (map->vm_file) + ino = map->vm_file->f_dentry->d_inode->i_ino; + else + ino = 0; + trace_lttng_statedump_vm_map(session, p, map, ino); + map = map->vm_next; + } + up_read(&mm->mmap_sem); + } + mmput(mm); +} + +static +int lttng_enumerate_vm_maps(struct lttng_session *session) +{ + struct task_struct *p; + + rcu_read_lock(); + for_each_process(p) + lttng_enumerate_task_vm_maps(session, p); + rcu_read_unlock(); + return 0; +} +#endif + +#ifdef CONFIG_GENERIC_HARDIRQS + +#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,39)) +#define irq_desc_get_chip(desc) get_irq_desc_chip(desc) +#endif + +static +void lttng_list_interrupts(struct lttng_session *session) +{ + unsigned int irq; + unsigned long flags = 0; + struct irq_desc *desc; + +#define irq_to_desc wrapper_irq_to_desc + /* needs irq_desc */ + for_each_irq_desc(irq, desc) { + struct irqaction *action; + const char *irq_chip_name = + irq_desc_get_chip(desc)->name ? : "unnamed_irq_chip"; + + local_irq_save(flags); + wrapper_desc_spin_lock(&desc->lock); + for (action = desc->action; action; action = action->next) { + trace_lttng_statedump_interrupt(session, + irq, irq_chip_name, action); + } + wrapper_desc_spin_unlock(&desc->lock); + local_irq_restore(flags); + } +#undef irq_to_desc +} +#else +static inline +void list_interrupts(struct lttng_session *session) +{ +} +#endif + +static +void lttng_statedump_process_ns(struct lttng_session *session, + struct task_struct *p, + enum lttng_thread_type type, + enum lttng_execution_mode mode, + enum lttng_execution_submode submode, + enum lttng_process_status status) +{ + struct nsproxy *proxy; + struct pid_namespace *pid_ns; + + rcu_read_lock(); + proxy = task_nsproxy(p); + if (proxy) { + pid_ns = lttng_get_proxy_pid_ns(proxy); + do { + trace_lttng_statedump_process_state(session, + p, type, mode, submode, status, pid_ns); + pid_ns = pid_ns->parent; + } while (pid_ns); + } else { + trace_lttng_statedump_process_state(session, + p, type, mode, submode, status, NULL); + } + rcu_read_unlock(); +} + +static +int lttng_enumerate_process_states(struct lttng_session *session) +{ + struct task_struct *g, *p; + + rcu_read_lock(); + for_each_process(g) { + p = g; + do { + enum lttng_execution_mode mode = + LTTNG_MODE_UNKNOWN; + enum lttng_execution_submode submode = + LTTNG_UNKNOWN; + enum lttng_process_status status; + enum lttng_thread_type type; + + task_lock(p); + if (p->exit_state == EXIT_ZOMBIE) + status = LTTNG_ZOMBIE; + else if (p->exit_state == EXIT_DEAD) + status = LTTNG_DEAD; + else if (p->state == TASK_RUNNING) { + /* Is this a forked child that has not run yet? */ + if (list_empty(&p->rt.run_list)) + status = LTTNG_WAIT_FORK; + else + /* + * All tasks are considered as wait_cpu; + * the viewer will sort out if the task + * was really running at this time. + */ + status = LTTNG_WAIT_CPU; + } else if (p->state & + (TASK_INTERRUPTIBLE | TASK_UNINTERRUPTIBLE)) { + /* Task is waiting for something to complete */ + status = LTTNG_WAIT; + } else + status = LTTNG_UNNAMED; + submode = LTTNG_NONE; + + /* + * Verification of t->mm is to filter out kernel + * threads; Viewer will further filter out if a + * user-space thread was in syscall mode or not. + */ + if (p->mm) + type = LTTNG_USER_THREAD; + else + type = LTTNG_KERNEL_THREAD; + lttng_statedump_process_ns(session, + p, type, mode, submode, status); + task_unlock(p); + } while_each_thread(g, p); + } + rcu_read_unlock(); + + return 0; +} + +static +void lttng_statedump_work_func(struct work_struct *work) +{ + if (atomic_dec_and_test(&kernel_threads_to_run)) + /* If we are the last thread, wake up do_lttng_statedump */ + wake_up(&statedump_wq); +} + +static +int do_lttng_statedump(struct lttng_session *session) +{ + int cpu; + + trace_lttng_statedump_start(session); + lttng_enumerate_process_states(session); + lttng_enumerate_file_descriptors(session); + /* FIXME lttng_enumerate_vm_maps(session); */ + lttng_list_interrupts(session); + lttng_enumerate_network_ip_interface(session); + + /* TODO lttng_dump_idt_table(session); */ + /* TODO lttng_dump_softirq_vec(session); */ + /* TODO lttng_list_modules(session); */ + /* TODO lttng_dump_swap_files(session); */ + + /* + * Fire off a work queue on each CPU. Their sole purpose in life + * is to guarantee that each CPU has been in a state where is was in + * syscall mode (i.e. not in a trap, an IRQ or a soft IRQ). + */ + get_online_cpus(); + atomic_set(&kernel_threads_to_run, num_online_cpus()); + for_each_online_cpu(cpu) { + INIT_DELAYED_WORK(&cpu_work[cpu], lttng_statedump_work_func); + schedule_delayed_work_on(cpu, &cpu_work[cpu], 0); + } + /* Wait for all threads to run */ + __wait_event(statedump_wq, (atomic_read(&kernel_threads_to_run) == 0)); + put_online_cpus(); + /* Our work is done */ + trace_lttng_statedump_end(session); + return 0; +} + +/* + * Called with session mutex held. + */ +int lttng_statedump_start(struct lttng_session *session) +{ + return do_lttng_statedump(session); +} +EXPORT_SYMBOL_GPL(lttng_statedump_start); + +MODULE_LICENSE("GPL and additional rights"); +MODULE_AUTHOR("Jean-Hugues Deschenes"); +MODULE_DESCRIPTION("Linux Trace Toolkit Next Generation Statedump"); --- linux-3.11.0.orig/ubuntu/lttng-modules/lttng-ring-buffer-client-overwrite.c +++ linux-3.11.0/ubuntu/lttng-modules/lttng-ring-buffer-client-overwrite.c @@ -0,0 +1,33 @@ +/* + * lttng-ring-buffer-client-overwrite.c + * + * LTTng lib ring buffer client (overwrite mode). + * + * Copyright (C) 2010-2012 Mathieu Desnoyers + * + * 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; only + * version 2.1 of the License. + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include +#include "lttng-tracer.h" + +#define RING_BUFFER_MODE_TEMPLATE RING_BUFFER_OVERWRITE +#define RING_BUFFER_MODE_TEMPLATE_STRING "overwrite" +#define RING_BUFFER_OUTPUT_TEMPLATE RING_BUFFER_SPLICE +#include "lttng-ring-buffer-client.h" + +MODULE_LICENSE("GPL and additional rights"); +MODULE_AUTHOR("Mathieu Desnoyers"); +MODULE_DESCRIPTION("LTTng Ring Buffer Client Overwrite Mode"); --- linux-3.11.0.orig/ubuntu/lttng-modules/lttng-context-nice.c +++ linux-3.11.0/ubuntu/lttng-modules/lttng-context-nice.c @@ -0,0 +1,81 @@ +/* + * lttng-context-nice.c + * + * LTTng nice context. + * + * Copyright (C) 2009-2012 Mathieu Desnoyers + * + * 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; only + * version 2.1 of the License. + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include +#include +#include +#include "lttng-events.h" +#include "wrapper/ringbuffer/frontend_types.h" +#include "wrapper/vmalloc.h" +#include "lttng-tracer.h" + +static +size_t nice_get_size(size_t offset) +{ + size_t size = 0; + + size += lib_ring_buffer_align(offset, lttng_alignof(int)); + size += sizeof(int); + return size; +} + +static +void nice_record(struct lttng_ctx_field *field, + struct lib_ring_buffer_ctx *ctx, + struct lttng_channel *chan) +{ + int nice; + + nice = task_nice(current); + lib_ring_buffer_align_ctx(ctx, lttng_alignof(nice)); + chan->ops->event_write(ctx, &nice, sizeof(nice)); +} + +int lttng_add_nice_to_ctx(struct lttng_ctx **ctx) +{ + struct lttng_ctx_field *field; + + field = lttng_append_context(ctx); + if (!field) + return -ENOMEM; + if (lttng_find_context(*ctx, "nice")) { + lttng_remove_context_field(ctx, field); + return -EEXIST; + } + field->event_field.name = "nice"; + field->event_field.type.atype = atype_integer; + field->event_field.type.u.basic.integer.size = sizeof(int) * CHAR_BIT; + field->event_field.type.u.basic.integer.alignment = lttng_alignof(int) * CHAR_BIT; + field->event_field.type.u.basic.integer.signedness = lttng_is_signed_type(int); + field->event_field.type.u.basic.integer.reverse_byte_order = 0; + field->event_field.type.u.basic.integer.base = 10; + field->event_field.type.u.basic.integer.encoding = lttng_encode_none; + field->get_size = nice_get_size; + field->record = nice_record; + wrapper_vmalloc_sync_all(); + return 0; +} +EXPORT_SYMBOL_GPL(lttng_add_nice_to_ctx); + +MODULE_LICENSE("GPL and additional rights"); +MODULE_AUTHOR("Mathieu Desnoyers"); +MODULE_DESCRIPTION("Linux Trace Toolkit Nice Context"); --- linux-3.11.0.orig/ubuntu/lttng-modules/lttng-context-prio.c +++ linux-3.11.0/ubuntu/lttng-modules/lttng-context-prio.c @@ -0,0 +1,102 @@ +/* + * lttng-context-prio.c + * + * LTTng priority context. + * + * Copyright (C) 2009-2012 Mathieu Desnoyers + * + * 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; only + * version 2.1 of the License. + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include +#include +#include +#include "lttng-events.h" +#include "wrapper/ringbuffer/frontend_types.h" +#include "wrapper/vmalloc.h" +#include "wrapper/kallsyms.h" +#include "lttng-tracer.h" + +static +int (*wrapper_task_prio_sym)(struct task_struct *t); + +int wrapper_task_prio_init(void) +{ + wrapper_task_prio_sym = (void *) kallsyms_lookup_funcptr("task_prio"); + if (!wrapper_task_prio_sym) { + printk(KERN_WARNING "LTTng: task_prio symbol lookup failed.\n"); + return -EINVAL; + } + return 0; +} + +static +size_t prio_get_size(size_t offset) +{ + size_t size = 0; + + size += lib_ring_buffer_align(offset, lttng_alignof(int)); + size += sizeof(int); + return size; +} + +static +void prio_record(struct lttng_ctx_field *field, + struct lib_ring_buffer_ctx *ctx, + struct lttng_channel *chan) +{ + int prio; + + prio = wrapper_task_prio_sym(current); + lib_ring_buffer_align_ctx(ctx, lttng_alignof(prio)); + chan->ops->event_write(ctx, &prio, sizeof(prio)); +} + +int lttng_add_prio_to_ctx(struct lttng_ctx **ctx) +{ + struct lttng_ctx_field *field; + int ret; + + if (!wrapper_task_prio_sym) { + ret = wrapper_task_prio_init(); + if (ret) + return ret; + } + + field = lttng_append_context(ctx); + if (!field) + return -ENOMEM; + if (lttng_find_context(*ctx, "prio")) { + lttng_remove_context_field(ctx, field); + return -EEXIST; + } + field->event_field.name = "prio"; + field->event_field.type.atype = atype_integer; + field->event_field.type.u.basic.integer.size = sizeof(int) * CHAR_BIT; + field->event_field.type.u.basic.integer.alignment = lttng_alignof(int) * CHAR_BIT; + field->event_field.type.u.basic.integer.signedness = lttng_is_signed_type(int); + field->event_field.type.u.basic.integer.reverse_byte_order = 0; + field->event_field.type.u.basic.integer.base = 10; + field->event_field.type.u.basic.integer.encoding = lttng_encode_none; + field->get_size = prio_get_size; + field->record = prio_record; + wrapper_vmalloc_sync_all(); + return 0; +} +EXPORT_SYMBOL_GPL(lttng_add_prio_to_ctx); + +MODULE_LICENSE("GPL and additional rights"); +MODULE_AUTHOR("Mathieu Desnoyers"); +MODULE_DESCRIPTION("Linux Trace Toolkit Priority Context"); --- linux-3.11.0.orig/ubuntu/lttng-modules/lttng-context-vtid.c +++ linux-3.11.0/ubuntu/lttng-modules/lttng-context-vtid.c @@ -0,0 +1,87 @@ +/* + * lttng-context-vtid.c + * + * LTTng vTID context. + * + * Copyright (C) 2009-2012 Mathieu Desnoyers + * + * 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; only + * version 2.1 of the License. + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include +#include +#include +#include "lttng-events.h" +#include "wrapper/ringbuffer/frontend_types.h" +#include "wrapper/vmalloc.h" +#include "lttng-tracer.h" + +static +size_t vtid_get_size(size_t offset) +{ + size_t size = 0; + + size += lib_ring_buffer_align(offset, lttng_alignof(pid_t)); + size += sizeof(pid_t); + return size; +} + +static +void vtid_record(struct lttng_ctx_field *field, + struct lib_ring_buffer_ctx *ctx, + struct lttng_channel *chan) +{ + pid_t vtid; + + /* + * nsproxy can be NULL when scheduled out of exit. + */ + if (!current->nsproxy) + vtid = 0; + else + vtid = task_pid_vnr(current); + lib_ring_buffer_align_ctx(ctx, lttng_alignof(vtid)); + chan->ops->event_write(ctx, &vtid, sizeof(vtid)); +} + +int lttng_add_vtid_to_ctx(struct lttng_ctx **ctx) +{ + struct lttng_ctx_field *field; + + field = lttng_append_context(ctx); + if (!field) + return -ENOMEM; + if (lttng_find_context(*ctx, "vtid")) { + lttng_remove_context_field(ctx, field); + return -EEXIST; + } + field->event_field.name = "vtid"; + field->event_field.type.atype = atype_integer; + field->event_field.type.u.basic.integer.size = sizeof(pid_t) * CHAR_BIT; + field->event_field.type.u.basic.integer.alignment = lttng_alignof(pid_t) * CHAR_BIT; + field->event_field.type.u.basic.integer.signedness = lttng_is_signed_type(pid_t); + field->event_field.type.u.basic.integer.reverse_byte_order = 0; + field->event_field.type.u.basic.integer.base = 10; + field->event_field.type.u.basic.integer.encoding = lttng_encode_none; + field->get_size = vtid_get_size; + field->record = vtid_record; + wrapper_vmalloc_sync_all(); + return 0; +} +EXPORT_SYMBOL_GPL(lttng_add_vtid_to_ctx); + +MODULE_LICENSE("GPL and additional rights"); +MODULE_AUTHOR("Mathieu Desnoyers"); +MODULE_DESCRIPTION("Linux Trace Toolkit vTID Context"); --- linux-3.11.0.orig/ubuntu/lttng-modules/lttng-abi-old.h +++ linux-3.11.0/ubuntu/lttng-modules/lttng-abi-old.h @@ -0,0 +1,141 @@ +#ifndef _LTTNG_ABI_OLD_H +#define _LTTNG_ABI_OLD_H + +/* + * lttng-abi-old.h + * + * LTTng old ABI header (without support for compat 32/64 bits) + * + * Copyright (C) 2010-2012 Mathieu Desnoyers + * + * 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; only + * version 2.1 of the License. + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include +#include "lttng-abi.h" + +/* + * LTTng DebugFS ABI structures. + */ +#define LTTNG_KERNEL_OLD_CHANNEL_PADDING LTTNG_KERNEL_SYM_NAME_LEN + 32 +struct lttng_kernel_old_channel { + int overwrite; /* 1: overwrite, 0: discard */ + uint64_t subbuf_size; /* in bytes */ + uint64_t num_subbuf; + unsigned int switch_timer_interval; /* usecs */ + unsigned int read_timer_interval; /* usecs */ + enum lttng_kernel_output output; /* splice, mmap */ + char padding[LTTNG_KERNEL_OLD_CHANNEL_PADDING]; +}; + +struct lttng_kernel_old_kretprobe { + uint64_t addr; + + uint64_t offset; + char symbol_name[LTTNG_KERNEL_SYM_NAME_LEN]; +}; + +/* + * Either addr is used, or symbol_name and offset. + */ +struct lttng_kernel_old_kprobe { + uint64_t addr; + + uint64_t offset; + char symbol_name[LTTNG_KERNEL_SYM_NAME_LEN]; +}; + +struct lttng_kernel_old_function_tracer { + char symbol_name[LTTNG_KERNEL_SYM_NAME_LEN]; +}; + +/* + * For syscall tracing, name = '\0' means "enable all". + */ +#define LTTNG_KERNEL_OLD_EVENT_PADDING1 16 +#define LTTNG_KERNEL_OLD_EVENT_PADDING2 LTTNG_KERNEL_SYM_NAME_LEN + 32 +struct lttng_kernel_old_event { + char name[LTTNG_KERNEL_SYM_NAME_LEN]; /* event name */ + enum lttng_kernel_instrumentation instrumentation; + char padding[LTTNG_KERNEL_OLD_EVENT_PADDING1]; + + /* Per instrumentation type configuration */ + union { + struct lttng_kernel_old_kretprobe kretprobe; + struct lttng_kernel_old_kprobe kprobe; + struct lttng_kernel_old_function_tracer ftrace; + char padding[LTTNG_KERNEL_OLD_EVENT_PADDING2]; + } u; +}; + +struct lttng_kernel_old_tracer_version { + uint32_t major; + uint32_t minor; + uint32_t patchlevel; +}; + +struct lttng_kernel_old_calibrate { + enum lttng_kernel_calibrate_type type; /* type (input) */ +}; + +struct lttng_kernel_old_perf_counter_ctx { + uint32_t type; + uint64_t config; + char name[LTTNG_KERNEL_SYM_NAME_LEN]; +}; + +#define LTTNG_KERNEL_OLD_CONTEXT_PADDING1 16 +#define LTTNG_KERNEL_OLD_CONTEXT_PADDING2 LTTNG_KERNEL_SYM_NAME_LEN + 32 +struct lttng_kernel_old_context { + enum lttng_kernel_context_type ctx; + char padding[LTTNG_KERNEL_OLD_CONTEXT_PADDING1]; + + union { + struct lttng_kernel_old_perf_counter_ctx perf_counter; + char padding[LTTNG_KERNEL_OLD_CONTEXT_PADDING2]; + } u; +}; + +/* LTTng file descriptor ioctl */ +#define LTTNG_KERNEL_OLD_SESSION _IO(0xF6, 0x40) +#define LTTNG_KERNEL_OLD_TRACER_VERSION \ + _IOR(0xF6, 0x41, struct lttng_kernel_old_tracer_version) +#define LTTNG_KERNEL_OLD_TRACEPOINT_LIST _IO(0xF6, 0x42) +#define LTTNG_KERNEL_OLD_WAIT_QUIESCENT _IO(0xF6, 0x43) +#define LTTNG_KERNEL_OLD_CALIBRATE \ + _IOWR(0xF6, 0x44, struct lttng_kernel_old_calibrate) + +/* Session FD ioctl */ +#define LTTNG_KERNEL_OLD_METADATA \ + _IOW(0xF6, 0x50, struct lttng_kernel_old_channel) +#define LTTNG_KERNEL_OLD_CHANNEL \ + _IOW(0xF6, 0x51, struct lttng_kernel_old_channel) +#define LTTNG_KERNEL_OLD_SESSION_START _IO(0xF6, 0x52) +#define LTTNG_KERNEL_OLD_SESSION_STOP _IO(0xF6, 0x53) + +/* Channel FD ioctl */ +#define LTTNG_KERNEL_OLD_STREAM _IO(0xF6, 0x60) +#define LTTNG_KERNEL_OLD_EVENT \ + _IOW(0xF6, 0x61, struct lttng_kernel_old_event) + +/* Event and Channel FD ioctl */ +#define LTTNG_KERNEL_OLD_CONTEXT \ + _IOW(0xF6, 0x70, struct lttng_kernel_old_context) + +/* Event, Channel and Session ioctl */ +#define LTTNG_KERNEL_OLD_ENABLE _IO(0xF6, 0x80) +#define LTTNG_KERNEL_OLD_DISABLE _IO(0xF6, 0x81) + +#endif /* _LTTNG_ABI_OLD_H */ --- linux-3.11.0.orig/ubuntu/lttng-modules/lttng-context-perf-counters.c +++ linux-3.11.0/ubuntu/lttng-modules/lttng-context-perf-counters.c @@ -0,0 +1,285 @@ +/* + * lttng-context-perf-counters.c + * + * LTTng performance monitoring counters (perf-counters) integration module. + * + * Copyright (C) 2009-2012 Mathieu Desnoyers + * + * 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; only + * version 2.1 of the License. + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include +#include +#include +#include +#include +#include +#include "lttng-events.h" +#include "wrapper/ringbuffer/frontend_types.h" +#include "wrapper/vmalloc.h" +#include "wrapper/perf.h" +#include "lttng-tracer.h" + +static +size_t perf_counter_get_size(size_t offset) +{ + size_t size = 0; + + size += lib_ring_buffer_align(offset, lttng_alignof(uint64_t)); + size += sizeof(uint64_t); + return size; +} + +static +void perf_counter_record(struct lttng_ctx_field *field, + struct lib_ring_buffer_ctx *ctx, + struct lttng_channel *chan) +{ + struct perf_event *event; + uint64_t value; + + event = field->u.perf_counter->e[ctx->cpu]; + if (likely(event)) { + if (unlikely(event->state == PERF_EVENT_STATE_ERROR)) { + value = 0; + } else { + event->pmu->read(event); + value = local64_read(&event->count); + } + } else { + /* + * Perf chooses not to be clever and not to support enabling a + * perf counter before the cpu is brought up. Therefore, we need + * to support having events coming (e.g. scheduler events) + * before the counter is setup. Write an arbitrary 0 in this + * case. + */ + value = 0; + } + lib_ring_buffer_align_ctx(ctx, lttng_alignof(value)); + chan->ops->event_write(ctx, &value, sizeof(value)); +} + +#if defined(CONFIG_PERF_EVENTS) && (LINUX_VERSION_CODE >= KERNEL_VERSION(3,0,99)) +static +void overflow_callback(struct perf_event *event, + struct perf_sample_data *data, + struct pt_regs *regs) +{ +} +#else +static +void overflow_callback(struct perf_event *event, int nmi, + struct perf_sample_data *data, + struct pt_regs *regs) +{ +} +#endif + +static +void lttng_destroy_perf_counter_field(struct lttng_ctx_field *field) +{ + struct perf_event **events = field->u.perf_counter->e; + int cpu; + + get_online_cpus(); + for_each_online_cpu(cpu) + perf_event_release_kernel(events[cpu]); + put_online_cpus(); +#ifdef CONFIG_HOTPLUG_CPU + unregister_cpu_notifier(&field->u.perf_counter->nb); +#endif + kfree(field->event_field.name); + kfree(field->u.perf_counter->attr); + kfree(events); + kfree(field->u.perf_counter); +} + +#ifdef CONFIG_HOTPLUG_CPU + +/** + * lttng_perf_counter_hp_callback - CPU hotplug callback + * @nb: notifier block + * @action: hotplug action to take + * @hcpu: CPU number + * + * Returns the success/failure of the operation. (%NOTIFY_OK, %NOTIFY_BAD) + * + * We can setup perf counters when the cpu is online (up prepare seems to be too + * soon). + */ +static +int lttng_perf_counter_cpu_hp_callback(struct notifier_block *nb, + unsigned long action, + void *hcpu) +{ + unsigned int cpu = (unsigned long) hcpu; + struct lttng_perf_counter_field *perf_field = + container_of(nb, struct lttng_perf_counter_field, nb); + struct perf_event **events = perf_field->e; + struct perf_event_attr *attr = perf_field->attr; + struct perf_event *pevent; + + if (!perf_field->hp_enable) + return NOTIFY_OK; + + switch (action) { + case CPU_ONLINE: + case CPU_ONLINE_FROZEN: + pevent = wrapper_perf_event_create_kernel_counter(attr, + cpu, NULL, overflow_callback); + if (!pevent || IS_ERR(pevent)) + return NOTIFY_BAD; + if (pevent->state == PERF_EVENT_STATE_ERROR) { + perf_event_release_kernel(pevent); + return NOTIFY_BAD; + } + barrier(); /* Create perf counter before setting event */ + events[cpu] = pevent; + break; + case CPU_UP_CANCELED: + case CPU_UP_CANCELED_FROZEN: + case CPU_DEAD: + case CPU_DEAD_FROZEN: + pevent = events[cpu]; + events[cpu] = NULL; + barrier(); /* NULLify event before perf counter teardown */ + perf_event_release_kernel(pevent); + break; + } + return NOTIFY_OK; +} + +#endif + +int lttng_add_perf_counter_to_ctx(uint32_t type, + uint64_t config, + const char *name, + struct lttng_ctx **ctx) +{ + struct lttng_ctx_field *field; + struct lttng_perf_counter_field *perf_field; + struct perf_event **events; + struct perf_event_attr *attr; + int ret; + int cpu; + char *name_alloc; + + events = kzalloc(num_possible_cpus() * sizeof(*events), GFP_KERNEL); + if (!events) + return -ENOMEM; + + attr = kzalloc(sizeof(struct perf_event_attr), GFP_KERNEL); + if (!attr) { + ret = -ENOMEM; + goto error_attr; + } + + attr->type = type; + attr->config = config; + attr->size = sizeof(struct perf_event_attr); + attr->pinned = 1; + attr->disabled = 0; + + perf_field = kzalloc(sizeof(struct lttng_perf_counter_field), GFP_KERNEL); + if (!perf_field) { + ret = -ENOMEM; + goto error_alloc_perf_field; + } + perf_field->e = events; + perf_field->attr = attr; + + name_alloc = kstrdup(name, GFP_KERNEL); + if (!name_alloc) { + ret = -ENOMEM; + goto name_alloc_error; + } + + field = lttng_append_context(ctx); + if (!field) { + ret = -ENOMEM; + goto append_context_error; + } + if (lttng_find_context(*ctx, name_alloc)) { + ret = -EEXIST; + goto find_error; + } + +#ifdef CONFIG_HOTPLUG_CPU + perf_field->nb.notifier_call = + lttng_perf_counter_cpu_hp_callback; + perf_field->nb.priority = 0; + register_cpu_notifier(&perf_field->nb); +#endif + + get_online_cpus(); + for_each_online_cpu(cpu) { + events[cpu] = wrapper_perf_event_create_kernel_counter(attr, + cpu, NULL, overflow_callback); + if (!events[cpu] || IS_ERR(events[cpu])) { + ret = -EINVAL; + goto counter_error; + } + if (events[cpu]->state == PERF_EVENT_STATE_ERROR) { + ret = -EBUSY; + goto counter_busy; + } + } + put_online_cpus(); + + field->destroy = lttng_destroy_perf_counter_field; + + field->event_field.name = name_alloc; + field->event_field.type.atype = atype_integer; + field->event_field.type.u.basic.integer.size = sizeof(uint64_t) * CHAR_BIT; + field->event_field.type.u.basic.integer.alignment = lttng_alignof(uint64_t) * CHAR_BIT; + field->event_field.type.u.basic.integer.signedness = lttng_is_signed_type(uint64_t); + field->event_field.type.u.basic.integer.reverse_byte_order = 0; + field->event_field.type.u.basic.integer.base = 10; + field->event_field.type.u.basic.integer.encoding = lttng_encode_none; + field->get_size = perf_counter_get_size; + field->record = perf_counter_record; + field->u.perf_counter = perf_field; + perf_field->hp_enable = 1; + + wrapper_vmalloc_sync_all(); + return 0; + +counter_busy: +counter_error: + for_each_online_cpu(cpu) { + if (events[cpu] && !IS_ERR(events[cpu])) + perf_event_release_kernel(events[cpu]); + } + put_online_cpus(); +#ifdef CONFIG_HOTPLUG_CPU + unregister_cpu_notifier(&perf_field->nb); +#endif +find_error: + lttng_remove_context_field(ctx, field); +append_context_error: + kfree(name_alloc); +name_alloc_error: + kfree(perf_field); +error_alloc_perf_field: + kfree(attr); +error_attr: + kfree(events); + return ret; +} + +MODULE_LICENSE("GPL and additional rights"); +MODULE_AUTHOR("Mathieu Desnoyers"); +MODULE_DESCRIPTION("Linux Trace Toolkit Perf Support"); --- linux-3.11.0.orig/ubuntu/lttng-modules/lttng-ring-buffer-metadata-client.h +++ linux-3.11.0/ubuntu/lttng-modules/lttng-ring-buffer-metadata-client.h @@ -0,0 +1,398 @@ +/* + * lttng-ring-buffer-client.h + * + * LTTng lib ring buffer client template. + * + * Copyright (C) 2010-2012 Mathieu Desnoyers + * + * 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; only + * version 2.1 of the License. + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include +#include +#include "wrapper/vmalloc.h" /* for wrapper_vmalloc_sync_all() */ +#include "lttng-events.h" +#include "lttng-tracer.h" + +struct metadata_packet_header { + uint32_t magic; /* 0x75D11D57 */ + uint8_t uuid[16]; /* Unique Universal Identifier */ + uint32_t checksum; /* 0 if unused */ + uint32_t content_size; /* in bits */ + uint32_t packet_size; /* in bits */ + uint8_t compression_scheme; /* 0 if unused */ + uint8_t encryption_scheme; /* 0 if unused */ + uint8_t checksum_scheme; /* 0 if unused */ + uint8_t major; /* CTF spec major version number */ + uint8_t minor; /* CTF spec minor version number */ + uint8_t header_end[0]; +}; + +struct metadata_record_header { + uint8_t header_end[0]; /* End of header */ +}; + +static const struct lib_ring_buffer_config client_config; + +static inline +u64 lib_ring_buffer_clock_read(struct channel *chan) +{ + return 0; +} + +static inline +unsigned char record_header_size(const struct lib_ring_buffer_config *config, + struct channel *chan, size_t offset, + size_t *pre_header_padding, + struct lib_ring_buffer_ctx *ctx) +{ + return 0; +} + +#include "wrapper/ringbuffer/api.h" + +static u64 client_ring_buffer_clock_read(struct channel *chan) +{ + return 0; +} + +static +size_t client_record_header_size(const struct lib_ring_buffer_config *config, + struct channel *chan, size_t offset, + size_t *pre_header_padding, + struct lib_ring_buffer_ctx *ctx) +{ + return 0; +} + +/** + * client_packet_header_size - called on buffer-switch to a new sub-buffer + * + * Return header size without padding after the structure. Don't use packed + * structure because gcc generates inefficient code on some architectures + * (powerpc, mips..) + */ +static size_t client_packet_header_size(void) +{ + return offsetof(struct metadata_packet_header, header_end); +} + +static void client_buffer_begin(struct lib_ring_buffer *buf, u64 tsc, + unsigned int subbuf_idx) +{ + struct channel *chan = buf->backend.chan; + struct metadata_packet_header *header = + (struct metadata_packet_header *) + lib_ring_buffer_offset_address(&buf->backend, + subbuf_idx * chan->backend.subbuf_size); + struct lttng_channel *lttng_chan = channel_get_private(chan); + struct lttng_session *session = lttng_chan->session; + + header->magic = TSDL_MAGIC_NUMBER; + memcpy(header->uuid, session->uuid.b, sizeof(session->uuid)); + header->checksum = 0; /* 0 if unused */ + header->content_size = 0xFFFFFFFF; /* in bits, for debugging */ + header->packet_size = 0xFFFFFFFF; /* in bits, for debugging */ + header->compression_scheme = 0; /* 0 if unused */ + header->encryption_scheme = 0; /* 0 if unused */ + header->checksum_scheme = 0; /* 0 if unused */ + header->major = CTF_SPEC_MAJOR; + header->minor = CTF_SPEC_MINOR; +} + +/* + * offset is assumed to never be 0 here : never deliver a completely empty + * subbuffer. data_size is between 1 and subbuf_size. + */ +static void client_buffer_end(struct lib_ring_buffer *buf, u64 tsc, + unsigned int subbuf_idx, unsigned long data_size) +{ + struct channel *chan = buf->backend.chan; + struct metadata_packet_header *header = + (struct metadata_packet_header *) + lib_ring_buffer_offset_address(&buf->backend, + subbuf_idx * chan->backend.subbuf_size); + unsigned long records_lost = 0; + + header->content_size = data_size * CHAR_BIT; /* in bits */ + header->packet_size = PAGE_ALIGN(data_size) * CHAR_BIT; /* in bits */ + /* + * We do not care about the records lost count, because the metadata + * channel waits and retry. + */ + (void) lib_ring_buffer_get_records_lost_full(&client_config, buf); + records_lost += lib_ring_buffer_get_records_lost_wrap(&client_config, buf); + records_lost += lib_ring_buffer_get_records_lost_big(&client_config, buf); + WARN_ON_ONCE(records_lost != 0); +} + +static int client_buffer_create(struct lib_ring_buffer *buf, void *priv, + int cpu, const char *name) +{ + return 0; +} + +static void client_buffer_finalize(struct lib_ring_buffer *buf, void *priv, int cpu) +{ +} + +static int client_timestamp_begin(const struct lib_ring_buffer_config *config, + struct lib_ring_buffer *buf, uint64_t *timestamp_begin) +{ + return -ENOSYS; +} + +static int client_timestamp_end(const struct lib_ring_buffer_config *config, + struct lib_ring_buffer *bufb, + uint64_t *timestamp_end) +{ + return -ENOSYS; +} + +static int client_events_discarded(const struct lib_ring_buffer_config *config, + struct lib_ring_buffer *bufb, + uint64_t *events_discarded) +{ + return -ENOSYS; +} + +static int client_current_timestamp(const struct lib_ring_buffer_config *config, + struct lib_ring_buffer *bufb, + uint64_t *ts) +{ + return -ENOSYS; +} + +static int client_content_size(const struct lib_ring_buffer_config *config, + struct lib_ring_buffer *bufb, + uint64_t *content_size) +{ + return -ENOSYS; +} + +static int client_packet_size(const struct lib_ring_buffer_config *config, + struct lib_ring_buffer *bufb, + uint64_t *packet_size) +{ + return -ENOSYS; +} + +static int client_stream_id(const struct lib_ring_buffer_config *config, + struct lib_ring_buffer *bufb, + uint64_t *stream_id) +{ + return -ENOSYS; +} + +static const struct lib_ring_buffer_config client_config = { + .cb.ring_buffer_clock_read = client_ring_buffer_clock_read, + .cb.record_header_size = client_record_header_size, + .cb.subbuffer_header_size = client_packet_header_size, + .cb.buffer_begin = client_buffer_begin, + .cb.buffer_end = client_buffer_end, + .cb.buffer_create = client_buffer_create, + .cb.buffer_finalize = client_buffer_finalize, + + .tsc_bits = 0, + .alloc = RING_BUFFER_ALLOC_GLOBAL, + .sync = RING_BUFFER_SYNC_GLOBAL, + .mode = RING_BUFFER_MODE_TEMPLATE, + .backend = RING_BUFFER_PAGE, + .output = RING_BUFFER_OUTPUT_TEMPLATE, + .oops = RING_BUFFER_OOPS_CONSISTENCY, + .ipi = RING_BUFFER_IPI_BARRIER, + .wakeup = RING_BUFFER_WAKEUP_BY_TIMER, +}; + +static +struct channel *_channel_create(const char *name, + struct lttng_channel *lttng_chan, void *buf_addr, + size_t subbuf_size, size_t num_subbuf, + unsigned int switch_timer_interval, + unsigned int read_timer_interval) +{ + lttng_chan->ops->timestamp_begin = client_timestamp_begin; + lttng_chan->ops->timestamp_end = client_timestamp_end; + lttng_chan->ops->events_discarded = client_events_discarded; + lttng_chan->ops->content_size = client_content_size; + lttng_chan->ops->packet_size = client_packet_size; + lttng_chan->ops->stream_id = client_stream_id; + lttng_chan->ops->current_timestamp = client_current_timestamp; + + return channel_create(&client_config, name, lttng_chan, buf_addr, + subbuf_size, num_subbuf, switch_timer_interval, + read_timer_interval); +} + +static +void lttng_channel_destroy(struct channel *chan) +{ + channel_destroy(chan); +} + +static +struct lib_ring_buffer *lttng_buffer_read_open(struct channel *chan) +{ + struct lib_ring_buffer *buf; + + buf = channel_get_ring_buffer(&client_config, chan, 0); + if (!lib_ring_buffer_open_read(buf)) + return buf; + return NULL; +} + +static +int lttng_buffer_has_read_closed_stream(struct channel *chan) +{ + struct lib_ring_buffer *buf; + int cpu; + + for_each_channel_cpu(cpu, chan) { + buf = channel_get_ring_buffer(&client_config, chan, cpu); + if (!atomic_long_read(&buf->active_readers)) + return 1; + } + return 0; +} + +static +void lttng_buffer_read_close(struct lib_ring_buffer *buf) +{ + lib_ring_buffer_release_read(buf); +} + +static +int lttng_event_reserve(struct lib_ring_buffer_ctx *ctx, uint32_t event_id) +{ + return lib_ring_buffer_reserve(&client_config, ctx); +} + +static +void lttng_event_commit(struct lib_ring_buffer_ctx *ctx) +{ + lib_ring_buffer_commit(&client_config, ctx); +} + +static +void lttng_event_write(struct lib_ring_buffer_ctx *ctx, const void *src, + size_t len) +{ + lib_ring_buffer_write(&client_config, ctx, src, len); +} + +static +void lttng_event_write_from_user(struct lib_ring_buffer_ctx *ctx, + const void __user *src, size_t len) +{ + lib_ring_buffer_copy_from_user_inatomic(&client_config, ctx, src, len); +} + +static +void lttng_event_memset(struct lib_ring_buffer_ctx *ctx, + int c, size_t len) +{ + lib_ring_buffer_memset(&client_config, ctx, c, len); +} + +static +size_t lttng_packet_avail_size(struct channel *chan) + +{ + unsigned long o_begin; + struct lib_ring_buffer *buf; + + buf = chan->backend.buf; /* Only for global buffer ! */ + o_begin = v_read(&client_config, &buf->offset); + if (subbuf_offset(o_begin, chan) != 0) { + return chan->backend.subbuf_size - subbuf_offset(o_begin, chan); + } else { + return chan->backend.subbuf_size - subbuf_offset(o_begin, chan) + - sizeof(struct metadata_packet_header); + } +} + +static +wait_queue_head_t *lttng_get_writer_buf_wait_queue(struct channel *chan, int cpu) +{ + struct lib_ring_buffer *buf = channel_get_ring_buffer(&client_config, + chan, cpu); + return &buf->write_wait; +} + +static +wait_queue_head_t *lttng_get_hp_wait_queue(struct channel *chan) +{ + return &chan->hp_wait; +} + +static +int lttng_is_finalized(struct channel *chan) +{ + return lib_ring_buffer_channel_is_finalized(chan); +} + +static +int lttng_is_disabled(struct channel *chan) +{ + return lib_ring_buffer_channel_is_disabled(chan); +} + +static struct lttng_transport lttng_relay_transport = { + .name = "relay-" RING_BUFFER_MODE_TEMPLATE_STRING, + .owner = THIS_MODULE, + .ops = { + .channel_create = _channel_create, + .channel_destroy = lttng_channel_destroy, + .buffer_read_open = lttng_buffer_read_open, + .buffer_has_read_closed_stream = + lttng_buffer_has_read_closed_stream, + .buffer_read_close = lttng_buffer_read_close, + .event_reserve = lttng_event_reserve, + .event_commit = lttng_event_commit, + .event_write_from_user = lttng_event_write_from_user, + .event_memset = lttng_event_memset, + .event_write = lttng_event_write, + .packet_avail_size = lttng_packet_avail_size, + .get_writer_buf_wait_queue = lttng_get_writer_buf_wait_queue, + .get_hp_wait_queue = lttng_get_hp_wait_queue, + .is_finalized = lttng_is_finalized, + .is_disabled = lttng_is_disabled, + }, +}; + +static int __init lttng_ring_buffer_client_init(void) +{ + /* + * This vmalloc sync all also takes care of the lib ring buffer + * vmalloc'd module pages when it is built as a module into LTTng. + */ + wrapper_vmalloc_sync_all(); + lttng_transport_register(<tng_relay_transport); + return 0; +} + +module_init(lttng_ring_buffer_client_init); + +static void __exit lttng_ring_buffer_client_exit(void) +{ + lttng_transport_unregister(<tng_relay_transport); +} + +module_exit(lttng_ring_buffer_client_exit); + +MODULE_LICENSE("GPL and additional rights"); +MODULE_AUTHOR("Mathieu Desnoyers"); +MODULE_DESCRIPTION("LTTng ring buffer " RING_BUFFER_MODE_TEMPLATE_STRING + " client"); --- linux-3.11.0.orig/ubuntu/lttng-modules/lttng-events.c +++ linux-3.11.0/ubuntu/lttng-modules/lttng-events.c @@ -0,0 +1,1254 @@ +/* + * lttng-events.c + * + * Holds LTTng per-session event registry. + * + * Copyright (C) 2010-2012 Mathieu Desnoyers + * + * 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; only + * version 2.1 of the License. + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include +#include +#include +#include +#include +#include +#include +#include "wrapper/uuid.h" +#include "wrapper/vmalloc.h" /* for wrapper_vmalloc_sync_all() */ +#include "wrapper/random.h" +#include "wrapper/tracepoint.h" +#include "lttng-events.h" +#include "lttng-tracer.h" +#include "lttng-abi-old.h" + +#define METADATA_CACHE_DEFAULT_SIZE 4096 + +static LIST_HEAD(sessions); +static LIST_HEAD(lttng_transport_list); +/* + * Protect the sessions and metadata caches. + */ +static DEFINE_MUTEX(sessions_mutex); +static struct kmem_cache *event_cache; + +static void _lttng_event_destroy(struct lttng_event *event); +static void _lttng_channel_destroy(struct lttng_channel *chan); +static int _lttng_event_unregister(struct lttng_event *event); +static +int _lttng_event_metadata_statedump(struct lttng_session *session, + struct lttng_channel *chan, + struct lttng_event *event); +static +int _lttng_session_metadata_statedump(struct lttng_session *session); +static +void _lttng_metadata_channel_hangup(struct lttng_metadata_stream *stream); + +void synchronize_trace(void) +{ + synchronize_sched(); +#ifdef CONFIG_PREEMPT_RT + synchronize_rcu(); +#endif +} + +struct lttng_session *lttng_session_create(void) +{ + struct lttng_session *session; + struct lttng_metadata_cache *metadata_cache; + + mutex_lock(&sessions_mutex); + session = kzalloc(sizeof(struct lttng_session), GFP_KERNEL); + if (!session) + goto err; + INIT_LIST_HEAD(&session->chan); + INIT_LIST_HEAD(&session->events); + uuid_le_gen(&session->uuid); + + metadata_cache = kzalloc(sizeof(struct lttng_metadata_cache), + GFP_KERNEL); + if (!metadata_cache) + goto err_free_session; + metadata_cache->data = kzalloc(METADATA_CACHE_DEFAULT_SIZE, + GFP_KERNEL); + if (!metadata_cache->data) + goto err_free_cache; + metadata_cache->cache_alloc = METADATA_CACHE_DEFAULT_SIZE; + kref_init(&metadata_cache->refcount); + session->metadata_cache = metadata_cache; + INIT_LIST_HEAD(&metadata_cache->metadata_stream); + list_add(&session->list, &sessions); + mutex_unlock(&sessions_mutex); + return session; + +err_free_cache: + kfree(metadata_cache); +err_free_session: + kfree(session); +err: + mutex_unlock(&sessions_mutex); + return NULL; +} + +void metadata_cache_destroy(struct kref *kref) +{ + struct lttng_metadata_cache *cache = + container_of(kref, struct lttng_metadata_cache, refcount); + kfree(cache->data); + kfree(cache); +} + +void lttng_session_destroy(struct lttng_session *session) +{ + struct lttng_channel *chan, *tmpchan; + struct lttng_event *event, *tmpevent; + struct lttng_metadata_stream *metadata_stream; + int ret; + + mutex_lock(&sessions_mutex); + ACCESS_ONCE(session->active) = 0; + list_for_each_entry(chan, &session->chan, list) { + ret = lttng_syscalls_unregister(chan); + WARN_ON(ret); + } + list_for_each_entry(event, &session->events, list) { + ret = _lttng_event_unregister(event); + WARN_ON(ret); + } + synchronize_trace(); /* Wait for in-flight events to complete */ + list_for_each_entry_safe(event, tmpevent, &session->events, list) + _lttng_event_destroy(event); + list_for_each_entry_safe(chan, tmpchan, &session->chan, list) { + BUG_ON(chan->channel_type == METADATA_CHANNEL); + _lttng_channel_destroy(chan); + } + list_for_each_entry(metadata_stream, &session->metadata_cache->metadata_stream, list) + _lttng_metadata_channel_hangup(metadata_stream); + kref_put(&session->metadata_cache->refcount, metadata_cache_destroy); + list_del(&session->list); + mutex_unlock(&sessions_mutex); + kfree(session); +} + +int lttng_session_enable(struct lttng_session *session) +{ + int ret = 0; + struct lttng_channel *chan; + + mutex_lock(&sessions_mutex); + if (session->active) { + ret = -EBUSY; + goto end; + } + + /* + * Snapshot the number of events per channel to know the type of header + * we need to use. + */ + list_for_each_entry(chan, &session->chan, list) { + if (chan->header_type) + continue; /* don't change it if session stop/restart */ + if (chan->free_event_id < 31) + chan->header_type = 1; /* compact */ + else + chan->header_type = 2; /* large */ + } + + ACCESS_ONCE(session->active) = 1; + ACCESS_ONCE(session->been_active) = 1; + ret = _lttng_session_metadata_statedump(session); + if (ret) { + ACCESS_ONCE(session->active) = 0; + goto end; + } + ret = lttng_statedump_start(session); + if (ret) + ACCESS_ONCE(session->active) = 0; +end: + mutex_unlock(&sessions_mutex); + return ret; +} + +int lttng_session_disable(struct lttng_session *session) +{ + int ret = 0; + + mutex_lock(&sessions_mutex); + if (!session->active) { + ret = -EBUSY; + goto end; + } + ACCESS_ONCE(session->active) = 0; +end: + mutex_unlock(&sessions_mutex); + return ret; +} + +int lttng_channel_enable(struct lttng_channel *channel) +{ + int old; + + if (channel->channel_type == METADATA_CHANNEL) + return -EPERM; + old = xchg(&channel->enabled, 1); + if (old) + return -EEXIST; + return 0; +} + +int lttng_channel_disable(struct lttng_channel *channel) +{ + int old; + + if (channel->channel_type == METADATA_CHANNEL) + return -EPERM; + old = xchg(&channel->enabled, 0); + if (!old) + return -EEXIST; + return 0; +} + +int lttng_event_enable(struct lttng_event *event) +{ + int old; + + if (event->chan->channel_type == METADATA_CHANNEL) + return -EPERM; + old = xchg(&event->enabled, 1); + if (old) + return -EEXIST; + return 0; +} + +int lttng_event_disable(struct lttng_event *event) +{ + int old; + + if (event->chan->channel_type == METADATA_CHANNEL) + return -EPERM; + old = xchg(&event->enabled, 0); + if (!old) + return -EEXIST; + return 0; +} + +static struct lttng_transport *lttng_transport_find(const char *name) +{ + struct lttng_transport *transport; + + list_for_each_entry(transport, <tng_transport_list, node) { + if (!strcmp(transport->name, name)) + return transport; + } + return NULL; +} + +struct lttng_channel *lttng_channel_create(struct lttng_session *session, + const char *transport_name, + void *buf_addr, + size_t subbuf_size, size_t num_subbuf, + unsigned int switch_timer_interval, + unsigned int read_timer_interval, + enum channel_type channel_type) +{ + struct lttng_channel *chan; + struct lttng_transport *transport = NULL; + + mutex_lock(&sessions_mutex); + if (session->been_active && channel_type != METADATA_CHANNEL) + goto active; /* Refuse to add channel to active session */ + transport = lttng_transport_find(transport_name); + if (!transport) { + printk(KERN_WARNING "LTTng transport %s not found\n", + transport_name); + goto notransport; + } + if (!try_module_get(transport->owner)) { + printk(KERN_WARNING "LTT : Can't lock transport module.\n"); + goto notransport; + } + chan = kzalloc(sizeof(struct lttng_channel), GFP_KERNEL); + if (!chan) + goto nomem; + chan->session = session; + chan->id = session->free_chan_id++; + chan->ops = &transport->ops; + /* + * Note: the channel creation op already writes into the packet + * headers. Therefore the "chan" information used as input + * should be already accessible. + */ + chan->chan = transport->ops.channel_create(transport_name, + chan, buf_addr, subbuf_size, num_subbuf, + switch_timer_interval, read_timer_interval); + if (!chan->chan) + goto create_error; + chan->enabled = 1; + chan->transport = transport; + chan->channel_type = channel_type; + list_add(&chan->list, &session->chan); + mutex_unlock(&sessions_mutex); + return chan; + +create_error: + kfree(chan); +nomem: + if (transport) + module_put(transport->owner); +notransport: +active: + mutex_unlock(&sessions_mutex); + return NULL; +} + +/* + * Only used internally at session destruction for per-cpu channels, and + * when metadata channel is released. + * Needs to be called with sessions mutex held. + */ +static +void _lttng_channel_destroy(struct lttng_channel *chan) +{ + chan->ops->channel_destroy(chan->chan); + module_put(chan->transport->owner); + list_del(&chan->list); + lttng_destroy_context(chan->ctx); + kfree(chan); +} + +void lttng_metadata_channel_destroy(struct lttng_channel *chan) +{ + BUG_ON(chan->channel_type != METADATA_CHANNEL); + + /* Protect the metadata cache with the sessions_mutex. */ + mutex_lock(&sessions_mutex); + _lttng_channel_destroy(chan); + mutex_unlock(&sessions_mutex); +} +EXPORT_SYMBOL_GPL(lttng_metadata_channel_destroy); + +static +void _lttng_metadata_channel_hangup(struct lttng_metadata_stream *stream) +{ + stream->finalized = 1; + wake_up_interruptible(&stream->read_wait); +} + +/* + * Supports event creation while tracing session is active. + */ +struct lttng_event *lttng_event_create(struct lttng_channel *chan, + struct lttng_kernel_event *event_param, + void *filter, + const struct lttng_event_desc *internal_desc) +{ + struct lttng_event *event; + int ret; + + mutex_lock(&sessions_mutex); + if (chan->free_event_id == -1U) + goto full; + /* + * This is O(n^2) (for each event, the loop is called at event + * creation). Might require a hash if we have lots of events. + */ + list_for_each_entry(event, &chan->session->events, list) + if (!strcmp(event->desc->name, event_param->name)) + goto exist; + event = kmem_cache_zalloc(event_cache, GFP_KERNEL); + if (!event) + goto cache_error; + event->chan = chan; + event->filter = filter; + event->id = chan->free_event_id++; + event->enabled = 1; + event->instrumentation = event_param->instrumentation; + /* Populate lttng_event structure before tracepoint registration. */ + smp_wmb(); + switch (event_param->instrumentation) { + case LTTNG_KERNEL_TRACEPOINT: + event->desc = lttng_event_get(event_param->name); + if (!event->desc) + goto register_error; + ret = kabi_2635_tracepoint_probe_register(event_param->name, + event->desc->probe_callback, + event); + if (ret) + goto register_error; + break; + case LTTNG_KERNEL_KPROBE: + ret = lttng_kprobes_register(event_param->name, + event_param->u.kprobe.symbol_name, + event_param->u.kprobe.offset, + event_param->u.kprobe.addr, + event); + if (ret) + goto register_error; + ret = try_module_get(event->desc->owner); + WARN_ON_ONCE(!ret); + break; + case LTTNG_KERNEL_KRETPROBE: + { + struct lttng_event *event_return; + + /* kretprobe defines 2 events */ + event_return = + kmem_cache_zalloc(event_cache, GFP_KERNEL); + if (!event_return) + goto register_error; + event_return->chan = chan; + event_return->filter = filter; + event_return->id = chan->free_event_id++; + event_return->enabled = 1; + event_return->instrumentation = event_param->instrumentation; + /* + * Populate lttng_event structure before kretprobe registration. + */ + smp_wmb(); + ret = lttng_kretprobes_register(event_param->name, + event_param->u.kretprobe.symbol_name, + event_param->u.kretprobe.offset, + event_param->u.kretprobe.addr, + event, event_return); + if (ret) { + kmem_cache_free(event_cache, event_return); + goto register_error; + } + /* Take 2 refs on the module: one per event. */ + ret = try_module_get(event->desc->owner); + WARN_ON_ONCE(!ret); + ret = try_module_get(event->desc->owner); + WARN_ON_ONCE(!ret); + ret = _lttng_event_metadata_statedump(chan->session, chan, + event_return); + if (ret) { + kmem_cache_free(event_cache, event_return); + module_put(event->desc->owner); + module_put(event->desc->owner); + goto statedump_error; + } + list_add(&event_return->list, &chan->session->events); + break; + } + case LTTNG_KERNEL_FUNCTION: + ret = lttng_ftrace_register(event_param->name, + event_param->u.ftrace.symbol_name, + event); + if (ret) + goto register_error; + ret = try_module_get(event->desc->owner); + WARN_ON_ONCE(!ret); + break; + case LTTNG_KERNEL_NOOP: + event->desc = internal_desc; + if (!event->desc) + goto register_error; + break; + default: + WARN_ON_ONCE(1); + } + ret = _lttng_event_metadata_statedump(chan->session, chan, event); + if (ret) + goto statedump_error; + list_add(&event->list, &chan->session->events); + mutex_unlock(&sessions_mutex); + return event; + +statedump_error: + /* If a statedump error occurs, events will not be readable. */ +register_error: + kmem_cache_free(event_cache, event); +cache_error: +exist: +full: + mutex_unlock(&sessions_mutex); + return NULL; +} + +/* + * Only used internally at session destruction. + */ +int _lttng_event_unregister(struct lttng_event *event) +{ + int ret = -EINVAL; + + switch (event->instrumentation) { + case LTTNG_KERNEL_TRACEPOINT: + ret = kabi_2635_tracepoint_probe_unregister(event->desc->name, + event->desc->probe_callback, + event); + if (ret) + return ret; + break; + case LTTNG_KERNEL_KPROBE: + lttng_kprobes_unregister(event); + ret = 0; + break; + case LTTNG_KERNEL_KRETPROBE: + lttng_kretprobes_unregister(event); + ret = 0; + break; + case LTTNG_KERNEL_FUNCTION: + lttng_ftrace_unregister(event); + ret = 0; + break; + case LTTNG_KERNEL_NOOP: + ret = 0; + break; + default: + WARN_ON_ONCE(1); + } + return ret; +} + +/* + * Only used internally at session destruction. + */ +static +void _lttng_event_destroy(struct lttng_event *event) +{ + switch (event->instrumentation) { + case LTTNG_KERNEL_TRACEPOINT: + lttng_event_put(event->desc); + break; + case LTTNG_KERNEL_KPROBE: + module_put(event->desc->owner); + lttng_kprobes_destroy_private(event); + break; + case LTTNG_KERNEL_KRETPROBE: + module_put(event->desc->owner); + lttng_kretprobes_destroy_private(event); + break; + case LTTNG_KERNEL_FUNCTION: + module_put(event->desc->owner); + lttng_ftrace_destroy_private(event); + break; + case LTTNG_KERNEL_NOOP: + break; + default: + WARN_ON_ONCE(1); + } + list_del(&event->list); + lttng_destroy_context(event->ctx); + kmem_cache_free(event_cache, event); +} + +/* + * Serialize at most one packet worth of metadata into a metadata + * channel. + * We have exclusive access to our metadata buffer (protected by the + * sessions_mutex), so we can do racy operations such as looking for + * remaining space left in packet and write, since mutual exclusion + * protects us from concurrent writes. + * Returns the number of bytes written in the channel, 0 if no data + * was written and a negative value on error. + */ +int lttng_metadata_output_channel(struct lttng_metadata_stream *stream, + struct channel *chan) +{ + struct lib_ring_buffer_ctx ctx; + int ret = 0; + size_t len, reserve_len; + + /* + * Ensure we support mutiple get_next / put sequences followed + * by put_next. + */ + WARN_ON(stream->metadata_in < stream->metadata_out); + if (stream->metadata_in != stream->metadata_out) + return 0; + + len = stream->metadata_cache->metadata_written - + stream->metadata_in; + if (!len) + return 0; + reserve_len = min_t(size_t, + stream->transport->ops.packet_avail_size(chan), + len); + lib_ring_buffer_ctx_init(&ctx, chan, NULL, reserve_len, + sizeof(char), -1); + /* + * If reservation failed, return an error to the caller. + */ + ret = stream->transport->ops.event_reserve(&ctx, 0); + if (ret != 0) { + printk(KERN_WARNING "LTTng: Metadata event reservation failed\n"); + goto end; + } + stream->transport->ops.event_write(&ctx, + stream->metadata_cache->data + stream->metadata_in, + reserve_len); + stream->transport->ops.event_commit(&ctx); + stream->metadata_in += reserve_len; + ret = reserve_len; + +end: + return ret; +} + +/* + * Write the metadata to the metadata cache. + * Must be called with sessions_mutex held. + */ +int lttng_metadata_printf(struct lttng_session *session, + const char *fmt, ...) +{ + char *str; + size_t len; + va_list ap; + struct lttng_metadata_stream *stream; + + WARN_ON_ONCE(!ACCESS_ONCE(session->active)); + + va_start(ap, fmt); + str = kvasprintf(GFP_KERNEL, fmt, ap); + va_end(ap); + if (!str) + return -ENOMEM; + + len = strlen(str); + if (session->metadata_cache->metadata_written + len > + session->metadata_cache->cache_alloc) { + char *tmp_cache_realloc; + unsigned int tmp_cache_alloc_size; + + tmp_cache_alloc_size = max_t(unsigned int, + session->metadata_cache->cache_alloc + len, + session->metadata_cache->cache_alloc << 1); + tmp_cache_realloc = krealloc(session->metadata_cache->data, + tmp_cache_alloc_size, GFP_KERNEL); + if (!tmp_cache_realloc) + goto err; + session->metadata_cache->cache_alloc = tmp_cache_alloc_size; + session->metadata_cache->data = tmp_cache_realloc; + } + memcpy(session->metadata_cache->data + + session->metadata_cache->metadata_written, + str, len); + session->metadata_cache->metadata_written += len; + kfree(str); + + list_for_each_entry(stream, &session->metadata_cache->metadata_stream, list) + wake_up_interruptible(&stream->read_wait); + + return 0; + +err: + kfree(str); + return -ENOMEM; +} + +/* + * Must be called with sessions_mutex held. + */ +static +int _lttng_field_statedump(struct lttng_session *session, + const struct lttng_event_field *field) +{ + int ret = 0; + + switch (field->type.atype) { + case atype_integer: + ret = lttng_metadata_printf(session, + " integer { size = %u; align = %u; signed = %u; encoding = %s; base = %u;%s } _%s;\n", + field->type.u.basic.integer.size, + field->type.u.basic.integer.alignment, + field->type.u.basic.integer.signedness, + (field->type.u.basic.integer.encoding == lttng_encode_none) + ? "none" + : (field->type.u.basic.integer.encoding == lttng_encode_UTF8) + ? "UTF8" + : "ASCII", + field->type.u.basic.integer.base, +#ifdef __BIG_ENDIAN + field->type.u.basic.integer.reverse_byte_order ? " byte_order = le;" : "", +#else + field->type.u.basic.integer.reverse_byte_order ? " byte_order = be;" : "", +#endif + field->name); + break; + case atype_enum: + ret = lttng_metadata_printf(session, + " %s _%s;\n", + field->type.u.basic.enumeration.name, + field->name); + break; + case atype_array: + { + const struct lttng_basic_type *elem_type; + + elem_type = &field->type.u.array.elem_type; + ret = lttng_metadata_printf(session, + " integer { size = %u; align = %u; signed = %u; encoding = %s; base = %u;%s } _%s[%u];\n", + elem_type->u.basic.integer.size, + elem_type->u.basic.integer.alignment, + elem_type->u.basic.integer.signedness, + (elem_type->u.basic.integer.encoding == lttng_encode_none) + ? "none" + : (elem_type->u.basic.integer.encoding == lttng_encode_UTF8) + ? "UTF8" + : "ASCII", + elem_type->u.basic.integer.base, +#ifdef __BIG_ENDIAN + elem_type->u.basic.integer.reverse_byte_order ? " byte_order = le;" : "", +#else + elem_type->u.basic.integer.reverse_byte_order ? " byte_order = be;" : "", +#endif + field->name, field->type.u.array.length); + break; + } + case atype_sequence: + { + const struct lttng_basic_type *elem_type; + const struct lttng_basic_type *length_type; + + elem_type = &field->type.u.sequence.elem_type; + length_type = &field->type.u.sequence.length_type; + ret = lttng_metadata_printf(session, + " integer { size = %u; align = %u; signed = %u; encoding = %s; base = %u;%s } __%s_length;\n", + length_type->u.basic.integer.size, + (unsigned int) length_type->u.basic.integer.alignment, + length_type->u.basic.integer.signedness, + (length_type->u.basic.integer.encoding == lttng_encode_none) + ? "none" + : ((length_type->u.basic.integer.encoding == lttng_encode_UTF8) + ? "UTF8" + : "ASCII"), + length_type->u.basic.integer.base, +#ifdef __BIG_ENDIAN + length_type->u.basic.integer.reverse_byte_order ? " byte_order = le;" : "", +#else + length_type->u.basic.integer.reverse_byte_order ? " byte_order = be;" : "", +#endif + field->name); + if (ret) + return ret; + + ret = lttng_metadata_printf(session, + " integer { size = %u; align = %u; signed = %u; encoding = %s; base = %u;%s } _%s[ __%s_length ];\n", + elem_type->u.basic.integer.size, + (unsigned int) elem_type->u.basic.integer.alignment, + elem_type->u.basic.integer.signedness, + (elem_type->u.basic.integer.encoding == lttng_encode_none) + ? "none" + : ((elem_type->u.basic.integer.encoding == lttng_encode_UTF8) + ? "UTF8" + : "ASCII"), + elem_type->u.basic.integer.base, +#ifdef __BIG_ENDIAN + elem_type->u.basic.integer.reverse_byte_order ? " byte_order = le;" : "", +#else + elem_type->u.basic.integer.reverse_byte_order ? " byte_order = be;" : "", +#endif + field->name, + field->name); + break; + } + + case atype_string: + /* Default encoding is UTF8 */ + ret = lttng_metadata_printf(session, + " string%s _%s;\n", + field->type.u.basic.string.encoding == lttng_encode_ASCII ? + " { encoding = ASCII; }" : "", + field->name); + break; + default: + WARN_ON_ONCE(1); + return -EINVAL; + } + return ret; +} + +static +int _lttng_context_metadata_statedump(struct lttng_session *session, + struct lttng_ctx *ctx) +{ + int ret = 0; + int i; + + if (!ctx) + return 0; + for (i = 0; i < ctx->nr_fields; i++) { + const struct lttng_ctx_field *field = &ctx->fields[i]; + + ret = _lttng_field_statedump(session, &field->event_field); + if (ret) + return ret; + } + return ret; +} + +static +int _lttng_fields_metadata_statedump(struct lttng_session *session, + struct lttng_event *event) +{ + const struct lttng_event_desc *desc = event->desc; + int ret = 0; + int i; + + for (i = 0; i < desc->nr_fields; i++) { + const struct lttng_event_field *field = &desc->fields[i]; + + ret = _lttng_field_statedump(session, field); + if (ret) + return ret; + } + return ret; +} + +/* + * Must be called with sessions_mutex held. + */ +static +int _lttng_event_metadata_statedump(struct lttng_session *session, + struct lttng_channel *chan, + struct lttng_event *event) +{ + int ret = 0; + + if (event->metadata_dumped || !ACCESS_ONCE(session->active)) + return 0; + if (chan->channel_type == METADATA_CHANNEL) + return 0; + + ret = lttng_metadata_printf(session, + "event {\n" + " name = %s;\n" + " id = %u;\n" + " stream_id = %u;\n", + event->desc->name, + event->id, + event->chan->id); + if (ret) + goto end; + + if (event->ctx) { + ret = lttng_metadata_printf(session, + " context := struct {\n"); + if (ret) + goto end; + } + ret = _lttng_context_metadata_statedump(session, event->ctx); + if (ret) + goto end; + if (event->ctx) { + ret = lttng_metadata_printf(session, + " };\n"); + if (ret) + goto end; + } + + ret = lttng_metadata_printf(session, + " fields := struct {\n" + ); + if (ret) + goto end; + + ret = _lttng_fields_metadata_statedump(session, event); + if (ret) + goto end; + + /* + * LTTng space reservation can only reserve multiples of the + * byte size. + */ + ret = lttng_metadata_printf(session, + " };\n" + "};\n\n"); + if (ret) + goto end; + + event->metadata_dumped = 1; +end: + return ret; + +} + +/* + * Must be called with sessions_mutex held. + */ +static +int _lttng_channel_metadata_statedump(struct lttng_session *session, + struct lttng_channel *chan) +{ + int ret = 0; + + if (chan->metadata_dumped || !ACCESS_ONCE(session->active)) + return 0; + + if (chan->channel_type == METADATA_CHANNEL) + return 0; + + WARN_ON_ONCE(!chan->header_type); + ret = lttng_metadata_printf(session, + "stream {\n" + " id = %u;\n" + " event.header := %s;\n" + " packet.context := struct packet_context;\n", + chan->id, + chan->header_type == 1 ? "struct event_header_compact" : + "struct event_header_large"); + if (ret) + goto end; + + if (chan->ctx) { + ret = lttng_metadata_printf(session, + " event.context := struct {\n"); + if (ret) + goto end; + } + ret = _lttng_context_metadata_statedump(session, chan->ctx); + if (ret) + goto end; + if (chan->ctx) { + ret = lttng_metadata_printf(session, + " };\n"); + if (ret) + goto end; + } + + ret = lttng_metadata_printf(session, + "};\n\n"); + + chan->metadata_dumped = 1; +end: + return ret; +} + +/* + * Must be called with sessions_mutex held. + */ +static +int _lttng_stream_packet_context_declare(struct lttng_session *session) +{ + return lttng_metadata_printf(session, + "struct packet_context {\n" + " uint64_clock_monotonic_t timestamp_begin;\n" + " uint64_clock_monotonic_t timestamp_end;\n" + " uint64_t content_size;\n" + " uint64_t packet_size;\n" + " unsigned long events_discarded;\n" + " uint32_t cpu_id;\n" + "};\n\n" + ); +} + +/* + * Compact header: + * id: range: 0 - 30. + * id 31 is reserved to indicate an extended header. + * + * Large header: + * id: range: 0 - 65534. + * id 65535 is reserved to indicate an extended header. + * + * Must be called with sessions_mutex held. + */ +static +int _lttng_event_header_declare(struct lttng_session *session) +{ + return lttng_metadata_printf(session, + "struct event_header_compact {\n" + " enum : uint5_t { compact = 0 ... 30, extended = 31 } id;\n" + " variant {\n" + " struct {\n" + " uint27_clock_monotonic_t timestamp;\n" + " } compact;\n" + " struct {\n" + " uint32_t id;\n" + " uint64_clock_monotonic_t timestamp;\n" + " } extended;\n" + " } v;\n" + "} align(%u);\n" + "\n" + "struct event_header_large {\n" + " enum : uint16_t { compact = 0 ... 65534, extended = 65535 } id;\n" + " variant {\n" + " struct {\n" + " uint32_clock_monotonic_t timestamp;\n" + " } compact;\n" + " struct {\n" + " uint32_t id;\n" + " uint64_clock_monotonic_t timestamp;\n" + " } extended;\n" + " } v;\n" + "} align(%u);\n\n", + lttng_alignof(uint32_t) * CHAR_BIT, + lttng_alignof(uint16_t) * CHAR_BIT + ); +} + + /* + * Approximation of NTP time of day to clock monotonic correlation, + * taken at start of trace. + * Yes, this is only an approximation. Yes, we can (and will) do better + * in future versions. + */ +static +uint64_t measure_clock_offset(void) +{ + uint64_t offset, monotonic[2], realtime; + struct timespec rts = { 0, 0 }; + unsigned long flags; + + /* Disable interrupts to increase correlation precision. */ + local_irq_save(flags); + monotonic[0] = trace_clock_read64(); + getnstimeofday(&rts); + monotonic[1] = trace_clock_read64(); + local_irq_restore(flags); + + offset = (monotonic[0] + monotonic[1]) >> 1; + realtime = (uint64_t) rts.tv_sec * NSEC_PER_SEC; + realtime += rts.tv_nsec; + offset = realtime - offset; + return offset; +} + +/* + * Output metadata into this session's metadata buffers. + * Must be called with sessions_mutex held. + */ +static +int _lttng_session_metadata_statedump(struct lttng_session *session) +{ + unsigned char *uuid_c = session->uuid.b; + unsigned char uuid_s[37], clock_uuid_s[BOOT_ID_LEN]; + struct lttng_channel *chan; + struct lttng_event *event; + int ret = 0; + + if (!ACCESS_ONCE(session->active)) + return 0; + if (session->metadata_dumped) + goto skip_session; + + snprintf(uuid_s, sizeof(uuid_s), + "%02x%02x%02x%02x-%02x%02x-%02x%02x-%02x%02x-%02x%02x%02x%02x%02x%02x", + uuid_c[0], uuid_c[1], uuid_c[2], uuid_c[3], + uuid_c[4], uuid_c[5], uuid_c[6], uuid_c[7], + uuid_c[8], uuid_c[9], uuid_c[10], uuid_c[11], + uuid_c[12], uuid_c[13], uuid_c[14], uuid_c[15]); + + ret = lttng_metadata_printf(session, + "typealias integer { size = 8; align = %u; signed = false; } := uint8_t;\n" + "typealias integer { size = 16; align = %u; signed = false; } := uint16_t;\n" + "typealias integer { size = 32; align = %u; signed = false; } := uint32_t;\n" + "typealias integer { size = 64; align = %u; signed = false; } := uint64_t;\n" + "typealias integer { size = %u; align = %u; signed = false; } := unsigned long;\n" + "typealias integer { size = 5; align = 1; signed = false; } := uint5_t;\n" + "typealias integer { size = 27; align = 1; signed = false; } := uint27_t;\n" + "\n" + "trace {\n" + " major = %u;\n" + " minor = %u;\n" + " uuid = \"%s\";\n" + " byte_order = %s;\n" + " packet.header := struct {\n" + " uint32_t magic;\n" + " uint8_t uuid[16];\n" + " uint32_t stream_id;\n" + " };\n" + "};\n\n", + lttng_alignof(uint8_t) * CHAR_BIT, + lttng_alignof(uint16_t) * CHAR_BIT, + lttng_alignof(uint32_t) * CHAR_BIT, + lttng_alignof(uint64_t) * CHAR_BIT, + sizeof(unsigned long) * CHAR_BIT, + lttng_alignof(unsigned long) * CHAR_BIT, + CTF_SPEC_MAJOR, + CTF_SPEC_MINOR, + uuid_s, +#ifdef __BIG_ENDIAN + "be" +#else + "le" +#endif + ); + if (ret) + goto end; + + ret = lttng_metadata_printf(session, + "env {\n" + " hostname = \"%s\";\n" + " domain = \"kernel\";\n" + " sysname = \"%s\";\n" + " kernel_release = \"%s\";\n" + " kernel_version = \"%s\";\n" + " tracer_name = \"lttng-modules\";\n" + " tracer_major = %d;\n" + " tracer_minor = %d;\n" + " tracer_patchlevel = %d;\n" + "};\n\n", + current->nsproxy->uts_ns->name.nodename, + utsname()->sysname, + utsname()->release, + utsname()->version, + LTTNG_MODULES_MAJOR_VERSION, + LTTNG_MODULES_MINOR_VERSION, + LTTNG_MODULES_PATCHLEVEL_VERSION + ); + if (ret) + goto end; + + ret = lttng_metadata_printf(session, + "clock {\n" + " name = %s;\n", + "monotonic" + ); + if (ret) + goto end; + + if (!trace_clock_uuid(clock_uuid_s)) { + ret = lttng_metadata_printf(session, + " uuid = \"%s\";\n", + clock_uuid_s + ); + if (ret) + goto end; + } + + ret = lttng_metadata_printf(session, + " description = \"Monotonic Clock\";\n" + " freq = %llu; /* Frequency, in Hz */\n" + " /* clock value offset from Epoch is: offset * (1/freq) */\n" + " offset = %llu;\n" + "};\n\n", + (unsigned long long) trace_clock_freq(), + (unsigned long long) measure_clock_offset() + ); + if (ret) + goto end; + + ret = lttng_metadata_printf(session, + "typealias integer {\n" + " size = 27; align = 1; signed = false;\n" + " map = clock.monotonic.value;\n" + "} := uint27_clock_monotonic_t;\n" + "\n" + "typealias integer {\n" + " size = 32; align = %u; signed = false;\n" + " map = clock.monotonic.value;\n" + "} := uint32_clock_monotonic_t;\n" + "\n" + "typealias integer {\n" + " size = 64; align = %u; signed = false;\n" + " map = clock.monotonic.value;\n" + "} := uint64_clock_monotonic_t;\n\n", + lttng_alignof(uint32_t) * CHAR_BIT, + lttng_alignof(uint64_t) * CHAR_BIT + ); + if (ret) + goto end; + + ret = _lttng_stream_packet_context_declare(session); + if (ret) + goto end; + + ret = _lttng_event_header_declare(session); + if (ret) + goto end; + +skip_session: + list_for_each_entry(chan, &session->chan, list) { + ret = _lttng_channel_metadata_statedump(session, chan); + if (ret) + goto end; + } + + list_for_each_entry(event, &session->events, list) { + ret = _lttng_event_metadata_statedump(session, event->chan, event); + if (ret) + goto end; + } + session->metadata_dumped = 1; +end: + return ret; +} + +/** + * lttng_transport_register - LTT transport registration + * @transport: transport structure + * + * Registers a transport which can be used as output to extract the data out of + * LTTng. The module calling this registration function must ensure that no + * trap-inducing code will be executed by the transport functions. E.g. + * vmalloc_sync_all() must be called between a vmalloc and the moment the memory + * is made visible to the transport function. This registration acts as a + * vmalloc_sync_all. Therefore, only if the module allocates virtual memory + * after its registration must it synchronize the TLBs. + */ +void lttng_transport_register(struct lttng_transport *transport) +{ + /* + * Make sure no page fault can be triggered by the module about to be + * registered. We deal with this here so we don't have to call + * vmalloc_sync_all() in each module's init. + */ + wrapper_vmalloc_sync_all(); + + mutex_lock(&sessions_mutex); + list_add_tail(&transport->node, <tng_transport_list); + mutex_unlock(&sessions_mutex); +} +EXPORT_SYMBOL_GPL(lttng_transport_register); + +/** + * lttng_transport_unregister - LTT transport unregistration + * @transport: transport structure + */ +void lttng_transport_unregister(struct lttng_transport *transport) +{ + mutex_lock(&sessions_mutex); + list_del(&transport->node); + mutex_unlock(&sessions_mutex); +} +EXPORT_SYMBOL_GPL(lttng_transport_unregister); + +static int __init lttng_events_init(void) +{ + int ret; + + event_cache = KMEM_CACHE(lttng_event, 0); + if (!event_cache) + return -ENOMEM; + ret = lttng_abi_init(); + if (ret) + goto error_abi; + return 0; +error_abi: + kmem_cache_destroy(event_cache); + return ret; +} + +module_init(lttng_events_init); + +static void __exit lttng_events_exit(void) +{ + struct lttng_session *session, *tmpsession; + + lttng_abi_exit(); + list_for_each_entry_safe(session, tmpsession, &sessions, list) + lttng_session_destroy(session); + kmem_cache_destroy(event_cache); +} + +module_exit(lttng_events_exit); + +MODULE_LICENSE("GPL and additional rights"); +MODULE_AUTHOR("Mathieu Desnoyers "); +MODULE_DESCRIPTION("LTTng Events"); --- linux-3.11.0.orig/ubuntu/lttng-modules/ChangeLog +++ linux-3.11.0/ubuntu/lttng-modules/ChangeLog @@ -0,0 +1,306 @@ +2013-09-03 LTTng modules 2.3.0 + * Fix: metadata stream should not reference session + * Fix: btrfs: support 3.11 Linux kernel + * statedump: remove KERN_DEBUG messages + * Fix: ext4: add missing tracepoints for 3.11 kernel + * Fix: ext4: Linux 3.11 support + * Fix: ext3: 3.11 Linux support + * Fix: statedump nsproxy 3.11 Linux support + +2013-08-30 LTTng modules 2.3.0-rc2 + * Fix: metadata lttng channel refcount + * README: lttng-modules incompatible with lttng 0.x patchset + +2013-07-17 LTTng modules 2.3.0-rc1 + * Fix: kvm x86 probes side-effect + * Fix: allow get/put subbuf in loop for metadata stream + * Add support for kvm x86 specific tracepoints + * Add mainline headers for kvm x86 tracepoints + * Remove old 3.0.4 x86-64 extracted syscall info + * Point the x86-64 overrides to newly extracted 3.10-rc7 files + * Add syscalls extracted files from a 3.10-rc7 kernel + * Improve documentation of the syscall extractor script + * Fix: double length of __dynamic_len array + * Fix printk instrumentation + * Introduce __dynamic_array_enc_ext_2() and tp_memcpy_dyn_2() + * Fix: ring buffer: get_subbuf() checks should be performed on "consumed" parameter + * Fix: SWITCH_FLUSH new sub-buffer checks + * Fix: ring buffer: handle concurrent update in nested buffer wrap around check + * Cleanup: lib_ring_buffer_switch_new_end() only calls subbuffer_set_data_size() + * Revert "Cleanup: ring buffer: remove lib_ring_buffer_switch_new_end()" + * Fix: handle writes of length 0 + * Fix: ring buffer: RING_BUFFER_FLUSH ioctl buffer corruption + * Cleanup: ring buffer: remove lib_ring_buffer_switch_new_end() + * print warning and return -EBUSY on double get_subbuf() + * Add header to fix compilation of syscalls-extractor on 3.9 kernel + * Fix: don't do 0 byte event reservation + * Document that payload size need to be greater than 0 + * Fix build and load against linux-2.6.33.x + * Fix: add missing CONFIG_COMPAT around lib_ring_buffer_compat_ioctl + * Metadata cache and multiple metadata channels + * fix block instrumentation probe signature mismatch for 3.9.x kernels + * fix: block instrumentation: NULL pointer dereference + * Update rcu instrumentation to 3.9.[0-4] + * Fix CPU hotplug section mismatches + * Add system calls definitions for powerpc-32 + * Remove bashism in lttng-syscalls-generate-headers.sh + * Update ARM (32 bit) syscall tracepoints to 3.4 + +2013-05-09 LTTng modules 2.2.0-rc2 + * Remove useless lttng_metadata probe + * Fix: warning kvm_trace_exit_reason redefined for 3.9 kernel + * Fix: 3.9.0 block layer instrumentation build + * Revert "Stop build if CONFIG_TRACEPOINTS is not set" + * Stop build if CONFIG_TRACEPOINTS is not set + * Add comments to endifs. + * Fix: remove ARM set_tls system call override + * Cleanup: arm sys_mmap whitespace + * Clean up using global_dirty_limit wrapper for writeback probe + +2013-03-29 LTTng modules 2.2.0-rc1 + * Update README + * Fix: vmscan instrumentation build + * writeback instrumentation: remove duplicated structures + * block: update instrumentation to 3.9 rc kernel + * rcu: update to 3.9 rc kernel instrumentation + * workqueue instrumentation: remove duplicated structures + * Rename odd event names + * Introduce API to remap event names exposed by LTTng + * lttng-module: sched.h: Fix compilation on 3.9 kernel + * Fix Linux 3.8 btrfs probe warning + * Fix Linux 3.8 ext4 probe support + * Fix 3.8 kernel support: namespace lttng_is_signed_type() + * Fix: don't flush-final for offset 0 if reader is on sub-buffer + * instrumentation sched: add missing fork pid info + * Fix check in lttng_strlen_user_inatomic + * instrumentation: sync with Linux commit a1ce392 + * Fix: statedump: missing locking, use lttng_iterate_fd + * Implement lttng_iterate_fd wrapper + * Instrumentation cleanup: kmem events should print hex pointers + * Fix compilation of ext4 and btrfs tracepoints on 2.6.40 kernels + * Fix: statedump hang/too early completion due to logic error + * Fix: statedump hang due to incorrect wait/wakeup use + * put_ulong calls in lib_ring_buffer_compat_ioctl() should be compat + * wrapper/perf.h: Fix kernel version condition + * Add new kernel probes instrumentation + * Update kernel probes to more detailed match to kernel versions + * Fix possible kernel build errors with linux-patches + * Add missing MIT license text to 3 files under this license + * Update sites using kernel version checking macro to new range + * Make upper bound of kernel version checking macro exclusive + * sock instrumentation: fix fields to get referenced values + * ext3 instrumentation: fix of assignment code conversion + * sched instrumentation: rename "pid" fields in sched_process_exec + * Remove remaining semicolons in TP_fast_assign blocks + * Fix compilation for 3.0 kernels that are named 2.6.40 + * Fix compilation for 3.0 branch (>= 3.0.39) + * Add kernel version checking macro + * Remove semicolons in TP_fast_assign blocks + * Add ifdefs to net probe to support Linux 2.6.39 + * Add kernel probes for supplementary subsystems + * Check if interrupt action name is not null in statedump + * Fix exec instrumentation: only for kernels 3.4.0 and higher + * Add TRACE_EVENT(sched_process_exec) to sched.h + * lib/ringbuffer/frontend_api.h: Include linux/prefetch.h. + * Fix warning with 3.6.0 kernel + * ABI with support for compat 32/64 bits + * Perform calculation on bit size in 64-bit + * Use uint64_t for packet header content size and packet size + * Fix: compat layer only on supported architectures + * Fix ring buffer 32/64 bits compat + * Fix cleanup: move lttng-tracer-core.h include to lib ringbuffer config.h + * Fix ring_buffer_frontend.c: missing include lttng-tracer-core.h + * Fix: statedump missing check for NULL namespace + +2012-09-10 LTTng modules 2.1.0-rc1 + * fix timestamps on architectures without CONFIG_KTIME_SCALAR + * Support for linux kernels 2.6.32 through 2.6.37 + * Document limitation of vppid and ppid context wrt eventual RCU instrumentation + * Cleanup: no need to hold RCU read-side lock when reading current nsproxy + * Add env hostname information + * Fix: lttng_statedump_process_state for each PID NS has infinite loop + * lttng_statedump_process_state for each PID NS + * Support the hostname context + * Fix: statedump namespaced pid, tid and ppid + * Fix: statedump: disable vm maps enumeration + * Fix: ensure userspace accesses are done with _inatomic + * Fix: vppid context should test for current nsproxy + * Add MIPS system call support + * Change mode of lttng-syscalls-generate-headers.sh to 755 + * cleanup: fix typo in syscall instrumentation header + * Cleanup: remove trailing whitespace in README + * trace event: introduce TP_MODULE_NOAUTOLOAD and TP_MODULE_NOINIT + * LTTng: probe-statedump: add #include + * fix: signal_generate event should print utf8 for comm field + * Makes write operation a parameter for tp_memcpy macro + * Add coding style document + * Update instrumentation/events README file + * Add makefile target for preprocessor + * Fix: free_event_id check should compare unsigned int with -1U + * Use unsigned long type for events discarded counter + * Fix: update signal instrumentation for 3.4 kernel + * LTTng Modules ARM syscall instrumentation + * Fix: generate header missing echo -e for escape chars + * Fix: add missing uaccess.h include (for ARM) + * README: Document that CONFIG_MODULES is required + * Fix: README typo + * Fix: document required and optional kernel config options in README + +2012-03-29 LTTng modules 2.0.1 + * Fix: is_compat_task !CONFIG_COMPAT compile error on kernels >= 3.3 + +2012-03-20 LTTng modules 2.0.0 + * First STABLE version + * Add version name + +2012-03-20 LTTng modules 2.0.0-rc4 + * Update README and add version name place-holder + +2012-03-16 LTTng modules 2.0.0-rc3 + * Fix clock offset 32-bit multiplication overflow + * Fix : wrong assign of fd in state dump + * License cleanup, ifdef namespace cleanup + * Fix: ensure power of 2 check handles 64-bit size_t entirely + +2012-03-02 LTTng modules 2.0.0-rc2 + * Fix: dmesg printout should not print metadata warnings + * Fix: use transport name as channel name + * Fix: Return -EINVAL instead of print warning if non power of 2 size/num_subbuf + +2012-02-20 LTTng modules 2.0.0-rc1 + * Standardize version across toolchain + * statedump: Use old macro name for kernel 2.6.38 + +2012-02-16 LTTng modules 2.0-pre15 + * Add timer instrumentation + * fix: need to undef mainline define + * fix: Include signal.h instead of irq.h for prototype match check + * Add signal instrumentation + +2012-02-16 LTTng modules 2.0-pre14 + * syscall tracing: sys_getcpu + * Add sys_clone x86 instrumentation + * statedump: fix include circular dep + * Implement state dump + +2012-02-09 LTTng modules 2.0-pre13 + * Update README + * environment: write sysname, release, version, domain to metadata + * Allow open /proc/lttng for read & write + +2012-02-02 LTTng modules 2.0-pre12 + * Add x86 32/64 execve syscall instrumentation override + * Remove unused defines + * Add padding to ABI + * Use LTTNG_KERNEL_SYM_NAME_LEN + * Update version to 1.9.9 + * Add missing double-quotes to clock uuid + * clock: read bootid as clock monotonic ID + * Fix comment + * Cleanup comment + * clock: output clock description in metadata + * Properly fix the timekeeping overflow detection + * Fix init bug + * rename lib-ring-buffer to lttng-lib-ring-buffer + * Remove #warning + * Mass rename: ltt_*/ltt-* to LTTNG_*/LTTNG-* + * Update TODO + * Update TODO + * Remove debugfs file (keep only proc file) + * Rename lttng-debugfs-abi files to lttng-abi + +2011-12-13 LTTng modules 2.0-pre11 + * Fix OOPS caused by reference of config pointer + * Gather detailed info from x86 64 32-bit compat syscall instrumentation + * lttng lib: ring buffer move null pointer check to open + * lttng lib: ring buffer remove duplicate null pointer + * lttng lib: ring buffer: remove stale null-pointer + * lttng wrapper: add missing include to kallsyms wrapper + * lttng: cleanup one-bit signed bitfields + * Add TODO file + * Update symbol name length max size to 256 + * Fix last modifications to string_from_user operations + * Document that depmod needs to be executed by hand + * Fix strlen_user fault space reservation + * Fix tp_copy_string_from_user handling of faults + * Disable block layer tracing support for kernels < 2.6.38 + * lttng context: perf counter, fix 32-bit vs 64-bit field size bug + * Update trace clock warning to match the current development plan + * ringbuffer: make ring buffer printk less verbose + * Makefile: do not run depmod manually + +2011-09-30 LTTng modules 2.0-pre10 + * x86-32: override sys_mmap syscall instrumentation + * Fix cast warning + +2011-09-29 LTTng modules 2.0-pre9 + * x86 32 syscalls: fix !CONFIG_UID16 + * Use __string_from_user + * Add __string_from_user + * Rename "comm" context to "procname" + * Fetch "type" name field for mount syscall + * Create common override file for all architectures + * Shrink stack size usage + * Cleanup: remove unused lttng-compat-syscalls.c file + * Support detailed compat syscalls on x86_64 + * Fix syscall table + * Add disabled compat syscalls detail (work in progress) + * Add config compat support for detailed x86_32 syscalls + * Handle newer 3.1+ perf API + * Add dummy x86-32 override headers + * Bind x86-32 syscall headers + * Add x86-32 syscall headers + * Add check for KALLSYMS_ALL in syscall extraction script + * Automate string extraction for syscalls + * Automate syscall filename/pathname extraction + * Add exit to ring_buffer_frontend so module is unloadable + * Add sys_open filename (x86_64) + * Add missing memcpy callback + * copy_from_user and memset + * Add missing alignment after header write + * lib ring buffer: add frontend init as module_init + * lib ring buffer frontend: add missing lock initialization + * ARM: Set bit 0 for thumb mode in kallsyms_lookup_name returned address (missing file) + * ARM: Set bit 0 for thumb mode in kallsyms_lookup_name returned address + * Create override for sys_mmap + * Rename syscalls -> syscall in LTTng ABI + * Use different event name for compat syscalls + * Allow trace syscall table override + * Add dummy override files + * syscall detail: add override capability + * Add pointer pretty-print heuristics + * Add __field_hex + * Rename sys exit errno into ret + * Enable detailed syscalls only for native x86_64 + * Use "unknown" for compat syscalls + * Disable x86-64 specific detailed syscalls for now, until we deal with 32-bit compat + * Fix syscall exit + * Fix sys exit + * Only enable detailed syscalls for x86_64 for now + * Merge unknown syscall method with extended detail method + * Add underscore prefix before event names + * Add syscalls pointers detailed syscall tracing + * Use perl for regexp + * Support generation of syscall probes for those with pointers + * Support detailed syscalls with 0 arguments + * detailed syscall tracing (work in progress) + * Expose /proc/lttng file + * Implement detailed syscall event probe + * Disable perf build for < 2.6.33 kernels + * Syscall detail mode: generate syscall table + * block instrumentation: write cmd as hex sequence + * lttng-events TRACE_EVENT generator cleanup + * block layer instrumentation: fix cmd field + * Remove 0 args syscalls for now from type-aware syscall cb generator + * Generate trace syscall table macros + * Put syscall tracing without arg types back in place + * Detailed system call tracing (TRACE_EVENT() generation for integer support) + * lttng events probes: don't clash with "ctx" variable name + * lib ring buffer must take private pointer copy before decrementing refcount + +2011-08-16 LTTng modules 2.0-pre8 + * Fix metadata buffer wait/wakeup + +2011-08-12 LTTng modules 2.0-pre7 + * Add missing module refcount to lttng_tracepoint_list_fops + * Add license info about lib/ringbuffer/ring_buffer_mmap.c being GPLv2 --- linux-3.11.0.orig/ubuntu/lttng-modules/lttng-endian.h +++ linux-3.11.0/ubuntu/lttng-modules/lttng-endian.h @@ -0,0 +1,43 @@ +#ifndef _LTTNG_ENDIAN_H +#define _LTTNG_ENDIAN_H + +/* + * lttng-endian.h + * + * Copyright (C) 2010-2012 Mathieu Desnoyers + * + * 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; only + * version 2.1 of the License. + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifdef __KERNEL__ +# include +# ifdef __BIG_ENDIAN +# define __BYTE_ORDER __BIG_ENDIAN +# elif defined(__LITTLE_ENDIAN) +# define __BYTE_ORDER __LITTLE_ENDIAN +# else +# error "unknown endianness" +# endif +#ifndef __BIG_ENDIAN +# define __BIG_ENDIAN 4321 +#endif +#ifndef __LITTLE_ENDIAN +# define __LITTLE_ENDIAN 1234 +#endif +#else +# include +#endif + +#endif /* _LTTNG_ENDIAN_H */ --- linux-3.11.0.orig/ubuntu/lttng-modules/lttng-context-tid.c +++ linux-3.11.0/ubuntu/lttng-modules/lttng-context-tid.c @@ -0,0 +1,81 @@ +/* + * lttng-context-tid.c + * + * LTTng TID context. + * + * Copyright (C) 2009-2012 Mathieu Desnoyers + * + * 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; only + * version 2.1 of the License. + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include +#include +#include +#include "lttng-events.h" +#include "wrapper/ringbuffer/frontend_types.h" +#include "wrapper/vmalloc.h" +#include "lttng-tracer.h" + +static +size_t tid_get_size(size_t offset) +{ + size_t size = 0; + + size += lib_ring_buffer_align(offset, lttng_alignof(pid_t)); + size += sizeof(pid_t); + return size; +} + +static +void tid_record(struct lttng_ctx_field *field, + struct lib_ring_buffer_ctx *ctx, + struct lttng_channel *chan) +{ + pid_t tid; + + tid = task_pid_nr(current); + lib_ring_buffer_align_ctx(ctx, lttng_alignof(tid)); + chan->ops->event_write(ctx, &tid, sizeof(tid)); +} + +int lttng_add_tid_to_ctx(struct lttng_ctx **ctx) +{ + struct lttng_ctx_field *field; + + field = lttng_append_context(ctx); + if (!field) + return -ENOMEM; + if (lttng_find_context(*ctx, "tid")) { + lttng_remove_context_field(ctx, field); + return -EEXIST; + } + field->event_field.name = "tid"; + field->event_field.type.atype = atype_integer; + field->event_field.type.u.basic.integer.size = sizeof(pid_t) * CHAR_BIT; + field->event_field.type.u.basic.integer.alignment = lttng_alignof(pid_t) * CHAR_BIT; + field->event_field.type.u.basic.integer.signedness = lttng_is_signed_type(pid_t); + field->event_field.type.u.basic.integer.reverse_byte_order = 0; + field->event_field.type.u.basic.integer.base = 10; + field->event_field.type.u.basic.integer.encoding = lttng_encode_none; + field->get_size = tid_get_size; + field->record = tid_record; + wrapper_vmalloc_sync_all(); + return 0; +} +EXPORT_SYMBOL_GPL(lttng_add_tid_to_ctx); + +MODULE_LICENSE("GPL and additional rights"); +MODULE_AUTHOR("Mathieu Desnoyers"); +MODULE_DESCRIPTION("Linux Trace Toolkit TID Context"); --- linux-3.11.0.orig/ubuntu/lttng-modules/lttng-probes.c +++ linux-3.11.0/ubuntu/lttng-modules/lttng-probes.c @@ -0,0 +1,171 @@ +/* + * lttng-probes.c + * + * Holds LTTng probes registry. + * + * Copyright (C) 2010-2012 Mathieu Desnoyers + * + * 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; only + * version 2.1 of the License. + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include +#include +#include +#include + +#include "lttng-events.h" + +static LIST_HEAD(probe_list); +static DEFINE_MUTEX(probe_mutex); + +static +const struct lttng_event_desc *find_event(const char *name) +{ + struct lttng_probe_desc *probe_desc; + int i; + + list_for_each_entry(probe_desc, &probe_list, head) { + for (i = 0; i < probe_desc->nr_events; i++) { + if (!strcmp(probe_desc->event_desc[i]->name, name)) + return probe_desc->event_desc[i]; + } + } + return NULL; +} + +int lttng_probe_register(struct lttng_probe_desc *desc) +{ + int ret = 0; + int i; + + mutex_lock(&probe_mutex); + /* + * TODO: This is O(N^2). Turn into a hash table when probe registration + * overhead becomes an issue. + */ + for (i = 0; i < desc->nr_events; i++) { + if (find_event(desc->event_desc[i]->name)) { + ret = -EEXIST; + goto end; + } + } + list_add(&desc->head, &probe_list); +end: + mutex_unlock(&probe_mutex); + return ret; +} +EXPORT_SYMBOL_GPL(lttng_probe_register); + +void lttng_probe_unregister(struct lttng_probe_desc *desc) +{ + mutex_lock(&probe_mutex); + list_del(&desc->head); + mutex_unlock(&probe_mutex); +} +EXPORT_SYMBOL_GPL(lttng_probe_unregister); + +const struct lttng_event_desc *lttng_event_get(const char *name) +{ + const struct lttng_event_desc *event; + int ret; + + mutex_lock(&probe_mutex); + event = find_event(name); + mutex_unlock(&probe_mutex); + if (!event) + return NULL; + ret = try_module_get(event->owner); + WARN_ON_ONCE(!ret); + return event; +} +EXPORT_SYMBOL_GPL(lttng_event_get); + +void lttng_event_put(const struct lttng_event_desc *event) +{ + module_put(event->owner); +} +EXPORT_SYMBOL_GPL(lttng_event_put); + +static +void *tp_list_start(struct seq_file *m, loff_t *pos) +{ + struct lttng_probe_desc *probe_desc; + int iter = 0, i; + + mutex_lock(&probe_mutex); + list_for_each_entry(probe_desc, &probe_list, head) { + for (i = 0; i < probe_desc->nr_events; i++) { + if (iter++ >= *pos) + return (void *) probe_desc->event_desc[i]; + } + } + /* End of list */ + return NULL; +} + +static +void *tp_list_next(struct seq_file *m, void *p, loff_t *ppos) +{ + struct lttng_probe_desc *probe_desc; + int iter = 0, i; + + (*ppos)++; + list_for_each_entry(probe_desc, &probe_list, head) { + for (i = 0; i < probe_desc->nr_events; i++) { + if (iter++ >= *ppos) + return (void *) probe_desc->event_desc[i]; + } + } + /* End of list */ + return NULL; +} + +static +void tp_list_stop(struct seq_file *m, void *p) +{ + mutex_unlock(&probe_mutex); +} + +static +int tp_list_show(struct seq_file *m, void *p) +{ + const struct lttng_event_desc *probe_desc = p; + + seq_printf(m, "event { name = %s; };\n", + probe_desc->name); + return 0; +} + +static +const struct seq_operations lttng_tracepoint_list_seq_ops = { + .start = tp_list_start, + .next = tp_list_next, + .stop = tp_list_stop, + .show = tp_list_show, +}; + +static +int lttng_tracepoint_list_open(struct inode *inode, struct file *file) +{ + return seq_open(file, <tng_tracepoint_list_seq_ops); +} + +const struct file_operations lttng_tracepoint_list_fops = { + .owner = THIS_MODULE, + .open = lttng_tracepoint_list_open, + .read = seq_read, + .llseek = seq_lseek, + .release = seq_release, +}; --- linux-3.11.0.orig/ubuntu/lttng-modules/lttng-tracer-core.h +++ linux-3.11.0/ubuntu/lttng-modules/lttng-tracer-core.h @@ -0,0 +1,41 @@ +#ifndef LTTNG_TRACER_CORE_H +#define LTTNG_TRACER_CORE_H + +/* + * lttng-tracer-core.h + * + * This contains the core definitions for the Linux Trace Toolkit Next + * Generation tracer. + * + * Copyright (C) 2005-2012 Mathieu Desnoyers + * + * 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; only + * version 2.1 of the License. + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include +#include + +#ifndef CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS +/* Align data on its natural alignment */ +#define RING_BUFFER_ALIGN +#endif + +#include "wrapper/ringbuffer/config.h" + +struct lttng_session; +struct lttng_channel; +struct lttng_event; + +#endif /* LTTNG_TRACER_CORE_H */ --- linux-3.11.0.orig/ubuntu/lttng-modules/lttng-context-pid.c +++ linux-3.11.0/ubuntu/lttng-modules/lttng-context-pid.c @@ -0,0 +1,81 @@ +/* + * lttng-context-pid.c + * + * LTTng PID context. + * + * Copyright (C) 2009-2012 Mathieu Desnoyers + * + * 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; only + * version 2.1 of the License. + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include +#include +#include +#include "lttng-events.h" +#include "wrapper/ringbuffer/frontend_types.h" +#include "wrapper/vmalloc.h" +#include "lttng-tracer.h" + +static +size_t pid_get_size(size_t offset) +{ + size_t size = 0; + + size += lib_ring_buffer_align(offset, lttng_alignof(pid_t)); + size += sizeof(pid_t); + return size; +} + +static +void pid_record(struct lttng_ctx_field *field, + struct lib_ring_buffer_ctx *ctx, + struct lttng_channel *chan) +{ + pid_t pid; + + pid = task_tgid_nr(current); + lib_ring_buffer_align_ctx(ctx, lttng_alignof(pid)); + chan->ops->event_write(ctx, &pid, sizeof(pid)); +} + +int lttng_add_pid_to_ctx(struct lttng_ctx **ctx) +{ + struct lttng_ctx_field *field; + + field = lttng_append_context(ctx); + if (!field) + return -ENOMEM; + if (lttng_find_context(*ctx, "pid")) { + lttng_remove_context_field(ctx, field); + return -EEXIST; + } + field->event_field.name = "pid"; + field->event_field.type.atype = atype_integer; + field->event_field.type.u.basic.integer.size = sizeof(pid_t) * CHAR_BIT; + field->event_field.type.u.basic.integer.alignment = lttng_alignof(pid_t) * CHAR_BIT; + field->event_field.type.u.basic.integer.signedness = lttng_is_signed_type(pid_t); + field->event_field.type.u.basic.integer.reverse_byte_order = 0; + field->event_field.type.u.basic.integer.base = 10; + field->event_field.type.u.basic.integer.encoding = lttng_encode_none; + field->get_size = pid_get_size; + field->record = pid_record; + wrapper_vmalloc_sync_all(); + return 0; +} +EXPORT_SYMBOL_GPL(lttng_add_pid_to_ctx); + +MODULE_LICENSE("GPL and additional rights"); +MODULE_AUTHOR("Mathieu Desnoyers"); +MODULE_DESCRIPTION("Linux Trace Toolkit PID Context"); --- linux-3.11.0.orig/ubuntu/lttng-modules/lttng-kernel-version.h +++ linux-3.11.0/ubuntu/lttng-modules/lttng-kernel-version.h @@ -0,0 +1,36 @@ +#ifndef _LTTNG_KERNEL_VERSION_H +#define _LTTNG_KERNEL_VERSION_H + +/* + * lttng-kernel-version.h + * + * Contains helpers to check more complex kernel version conditions. + * + * Copyright (C) 2012 Mathieu Desnoyers + * + * 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; only + * version 2.1 of the License. + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include + +/* + * This macro checks if the kernel version is between the two specified + * versions (lower limit inclusive, upper limit exclusive). + */ +#define LTTNG_KERNEL_RANGE(a_low, b_low, c_low, a_high, b_high, c_high) \ + (LINUX_VERSION_CODE >= KERNEL_VERSION(a_low, b_low, c_low) && \ + LINUX_VERSION_CODE < KERNEL_VERSION(a_high, b_high, c_high)) + +#endif /* _LTTNG_KERNEL_VERSION_H */ --- linux-3.11.0.orig/ubuntu/lttng-modules/lttng-context-hostname.c +++ linux-3.11.0/ubuntu/lttng-modules/lttng-context-hostname.c @@ -0,0 +1,99 @@ +/* + * lttng-context-hostname.c + * + * LTTng hostname context. + * + * Copyright (C) 2009-2012 Mathieu Desnoyers + * + * 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; only + * version 2.1 of the License. + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include +#include +#include +#include +#include "lttng-events.h" +#include "wrapper/ringbuffer/frontend_types.h" +#include "wrapper/vmalloc.h" +#include "lttng-tracer.h" + +#define LTTNG_HOSTNAME_CTX_LEN (__NEW_UTS_LEN + 1) + +static +size_t hostname_get_size(size_t offset) +{ + size_t size = 0; + + size += LTTNG_HOSTNAME_CTX_LEN; + return size; +} + +static +void hostname_record(struct lttng_ctx_field *field, + struct lib_ring_buffer_ctx *ctx, + struct lttng_channel *chan) +{ + struct nsproxy *nsproxy; + struct uts_namespace *ns; + char *hostname; + + /* + * No need to take the RCU read-side lock to read current + * nsproxy. (documented in nsproxy.h) + */ + nsproxy = current->nsproxy; + if (nsproxy) { + ns = nsproxy->uts_ns; + hostname = ns->name.nodename; + chan->ops->event_write(ctx, hostname, + LTTNG_HOSTNAME_CTX_LEN); + } else { + chan->ops->event_memset(ctx, 0, + LTTNG_HOSTNAME_CTX_LEN); + } +} + +int lttng_add_hostname_to_ctx(struct lttng_ctx **ctx) +{ + struct lttng_ctx_field *field; + + field = lttng_append_context(ctx); + if (!field) + return -ENOMEM; + if (lttng_find_context(*ctx, "hostname")) { + lttng_remove_context_field(ctx, field); + return -EEXIST; + } + field->event_field.name = "hostname"; + field->event_field.type.atype = atype_array; + field->event_field.type.u.array.elem_type.atype = atype_integer; + field->event_field.type.u.array.elem_type.u.basic.integer.size = sizeof(char) * CHAR_BIT; + field->event_field.type.u.array.elem_type.u.basic.integer.alignment = lttng_alignof(char) * CHAR_BIT; + field->event_field.type.u.array.elem_type.u.basic.integer.signedness = lttng_is_signed_type(char); + field->event_field.type.u.array.elem_type.u.basic.integer.reverse_byte_order = 0; + field->event_field.type.u.array.elem_type.u.basic.integer.base = 10; + field->event_field.type.u.array.elem_type.u.basic.integer.encoding = lttng_encode_UTF8; + field->event_field.type.u.array.length = LTTNG_HOSTNAME_CTX_LEN; + + field->get_size = hostname_get_size; + field->record = hostname_record; + wrapper_vmalloc_sync_all(); + return 0; +} +EXPORT_SYMBOL_GPL(lttng_add_hostname_to_ctx); + +MODULE_LICENSE("GPL and additional rights"); +MODULE_AUTHOR("Mathieu Desnoyers"); +MODULE_DESCRIPTION("Linux Trace Toolkit Perf Support"); --- linux-3.11.0.orig/ubuntu/lttng-modules/lttng-events.h +++ linux-3.11.0/ubuntu/lttng-modules/lttng-events.h @@ -0,0 +1,529 @@ +#ifndef _LTTNG_EVENTS_H +#define _LTTNG_EVENTS_H + +/* + * lttng-events.h + * + * Holds LTTng per-session event registry. + * + * Copyright (C) 2010-2012 Mathieu Desnoyers + * + * 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; only + * version 2.1 of the License. + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include +#include +#include +#include +#include "wrapper/uuid.h" +#include "lttng-abi.h" +#include "lttng-abi-old.h" + +#define lttng_is_signed_type(type) (((type)(-1)) < 0) + +struct lttng_channel; +struct lttng_session; +struct lttng_metadata_cache; +struct lib_ring_buffer_ctx; +struct perf_event; +struct perf_event_attr; +struct lib_ring_buffer_config; + +/* Type description */ + +/* Update the astract_types name table in lttng-types.c along with this enum */ +enum abstract_types { + atype_integer, + atype_enum, + atype_array, + atype_sequence, + atype_string, + NR_ABSTRACT_TYPES, +}; + +/* Update the string_encodings name table in lttng-types.c along with this enum */ +enum lttng_string_encodings { + lttng_encode_none = 0, + lttng_encode_UTF8 = 1, + lttng_encode_ASCII = 2, + NR_STRING_ENCODINGS, +}; + +enum channel_type { + PER_CPU_CHANNEL, + METADATA_CHANNEL, +}; + +struct lttng_enum_entry { + unsigned long long start, end; /* start and end are inclusive */ + const char *string; +}; + +#define __type_integer(_type, _byte_order, _base, _encoding) \ + { \ + .atype = atype_integer, \ + .u.basic.integer = \ + { \ + .size = sizeof(_type) * CHAR_BIT, \ + .alignment = lttng_alignof(_type) * CHAR_BIT, \ + .signedness = lttng_is_signed_type(_type), \ + .reverse_byte_order = _byte_order != __BYTE_ORDER, \ + .base = _base, \ + .encoding = lttng_encode_##_encoding, \ + }, \ + } \ + +struct lttng_integer_type { + unsigned int size; /* in bits */ + unsigned short alignment; /* in bits */ + unsigned int signedness:1, + reverse_byte_order:1; + unsigned int base; /* 2, 8, 10, 16, for pretty print */ + enum lttng_string_encodings encoding; +}; + +union _lttng_basic_type { + struct lttng_integer_type integer; + struct { + const char *name; + } enumeration; + struct { + enum lttng_string_encodings encoding; + } string; +}; + +struct lttng_basic_type { + enum abstract_types atype; + union { + union _lttng_basic_type basic; + } u; +}; + +struct lttng_type { + enum abstract_types atype; + union { + union _lttng_basic_type basic; + struct { + struct lttng_basic_type elem_type; + unsigned int length; /* num. elems. */ + } array; + struct { + struct lttng_basic_type length_type; + struct lttng_basic_type elem_type; + } sequence; + } u; +}; + +struct lttng_enum { + const char *name; + struct lttng_type container_type; + const struct lttng_enum_entry *entries; + unsigned int len; +}; + +/* Event field description */ + +struct lttng_event_field { + const char *name; + struct lttng_type type; +}; + +/* + * We need to keep this perf counter field separately from struct + * lttng_ctx_field because cpu hotplug needs fixed-location addresses. + */ +struct lttng_perf_counter_field { + struct notifier_block nb; + int hp_enable; + struct perf_event_attr *attr; + struct perf_event **e; /* per-cpu array */ +}; + +struct lttng_ctx_field { + struct lttng_event_field event_field; + size_t (*get_size)(size_t offset); + void (*record)(struct lttng_ctx_field *field, + struct lib_ring_buffer_ctx *ctx, + struct lttng_channel *chan); + union { + struct lttng_perf_counter_field *perf_counter; + } u; + void (*destroy)(struct lttng_ctx_field *field); +}; + +struct lttng_ctx { + struct lttng_ctx_field *fields; + unsigned int nr_fields; + unsigned int allocated_fields; +}; + +struct lttng_event_desc { + const char *name; + void *probe_callback; + const struct lttng_event_ctx *ctx; /* context */ + const struct lttng_event_field *fields; /* event payload */ + unsigned int nr_fields; + struct module *owner; +}; + +struct lttng_probe_desc { + const struct lttng_event_desc **event_desc; + unsigned int nr_events; + struct list_head head; /* chain registered probes */ +}; + +struct lttng_krp; /* Kretprobe handling */ + +/* + * lttng_event structure is referred to by the tracing fast path. It must be + * kept small. + */ +struct lttng_event { + unsigned int id; + struct lttng_channel *chan; + int enabled; + const struct lttng_event_desc *desc; + void *filter; + struct lttng_ctx *ctx; + enum lttng_kernel_instrumentation instrumentation; + union { + struct { + struct kprobe kp; + char *symbol_name; + } kprobe; + struct { + struct lttng_krp *lttng_krp; + char *symbol_name; + } kretprobe; + struct { + char *symbol_name; + } ftrace; + } u; + struct list_head list; /* Event list */ + unsigned int metadata_dumped:1; +}; + +struct lttng_channel_ops { + struct channel *(*channel_create)(const char *name, + struct lttng_channel *lttng_chan, + void *buf_addr, + size_t subbuf_size, size_t num_subbuf, + unsigned int switch_timer_interval, + unsigned int read_timer_interval); + void (*channel_destroy)(struct channel *chan); + struct lib_ring_buffer *(*buffer_read_open)(struct channel *chan); + int (*buffer_has_read_closed_stream)(struct channel *chan); + void (*buffer_read_close)(struct lib_ring_buffer *buf); + int (*event_reserve)(struct lib_ring_buffer_ctx *ctx, + uint32_t event_id); + void (*event_commit)(struct lib_ring_buffer_ctx *ctx); + void (*event_write)(struct lib_ring_buffer_ctx *ctx, const void *src, + size_t len); + void (*event_write_from_user)(struct lib_ring_buffer_ctx *ctx, + const void *src, size_t len); + void (*event_memset)(struct lib_ring_buffer_ctx *ctx, + int c, size_t len); + /* + * packet_avail_size returns the available size in the current + * packet. Note that the size returned is only a hint, since it + * may change due to concurrent writes. + */ + size_t (*packet_avail_size)(struct channel *chan); + wait_queue_head_t *(*get_writer_buf_wait_queue)(struct channel *chan, int cpu); + wait_queue_head_t *(*get_hp_wait_queue)(struct channel *chan); + int (*is_finalized)(struct channel *chan); + int (*is_disabled)(struct channel *chan); + int (*timestamp_begin) (const struct lib_ring_buffer_config *config, + struct lib_ring_buffer *bufb, + uint64_t *timestamp_begin); + int (*timestamp_end) (const struct lib_ring_buffer_config *config, + struct lib_ring_buffer *bufb, + uint64_t *timestamp_end); + int (*events_discarded) (const struct lib_ring_buffer_config *config, + struct lib_ring_buffer *bufb, + uint64_t *events_discarded); + int (*content_size) (const struct lib_ring_buffer_config *config, + struct lib_ring_buffer *bufb, + uint64_t *content_size); + int (*packet_size) (const struct lib_ring_buffer_config *config, + struct lib_ring_buffer *bufb, + uint64_t *packet_size); + int (*stream_id) (const struct lib_ring_buffer_config *config, + struct lib_ring_buffer *bufb, + uint64_t *stream_id); + int (*current_timestamp) (const struct lib_ring_buffer_config *config, + struct lib_ring_buffer *bufb, + uint64_t *ts); +}; + +struct lttng_transport { + char *name; + struct module *owner; + struct list_head node; + struct lttng_channel_ops ops; +}; + +struct lttng_channel { + unsigned int id; + struct channel *chan; /* Channel buffers */ + int enabled; + struct lttng_ctx *ctx; + /* Event ID management */ + struct lttng_session *session; + struct file *file; /* File associated to channel */ + unsigned int free_event_id; /* Next event ID to allocate */ + struct list_head list; /* Channel list */ + struct lttng_channel_ops *ops; + struct lttng_transport *transport; + struct lttng_event **sc_table; /* for syscall tracing */ + struct lttng_event **compat_sc_table; + struct lttng_event *sc_unknown; /* for unknown syscalls */ + struct lttng_event *sc_compat_unknown; + struct lttng_event *sc_exit; /* for syscall exit */ + int header_type; /* 0: unset, 1: compact, 2: large */ + enum channel_type channel_type; + unsigned int metadata_dumped:1; +}; + +struct lttng_metadata_stream { + void *priv; /* Ring buffer private data */ + struct lttng_metadata_cache *metadata_cache; + unsigned int metadata_in; /* Bytes read from the cache */ + unsigned int metadata_out; /* Bytes consumed from stream */ + int finalized; /* Has channel been finalized */ + wait_queue_head_t read_wait; /* Reader buffer-level wait queue */ + struct list_head list; /* Stream list */ + struct lttng_transport *transport; +}; + +struct lttng_session { + int active; /* Is trace session active ? */ + int been_active; /* Has trace session been active ? */ + struct file *file; /* File associated to session */ + struct list_head chan; /* Channel list head */ + struct list_head events; /* Event list head */ + struct list_head list; /* Session list */ + unsigned int free_chan_id; /* Next chan ID to allocate */ + uuid_le uuid; /* Trace session unique ID */ + struct lttng_metadata_cache *metadata_cache; + unsigned int metadata_dumped:1; +}; + +struct lttng_metadata_cache { + char *data; /* Metadata cache */ + unsigned int cache_alloc; /* Metadata allocated size (bytes) */ + unsigned int metadata_written; /* Number of bytes written in metadata cache */ + struct kref refcount; /* Metadata cache usage */ + struct list_head metadata_stream; /* Metadata stream list */ +}; + +struct lttng_session *lttng_session_create(void); +int lttng_session_enable(struct lttng_session *session); +int lttng_session_disable(struct lttng_session *session); +void lttng_session_destroy(struct lttng_session *session); +void metadata_cache_destroy(struct kref *kref); + +struct lttng_channel *lttng_channel_create(struct lttng_session *session, + const char *transport_name, + void *buf_addr, + size_t subbuf_size, size_t num_subbuf, + unsigned int switch_timer_interval, + unsigned int read_timer_interval, + enum channel_type channel_type); +struct lttng_channel *lttng_global_channel_create(struct lttng_session *session, + int overwrite, void *buf_addr, + size_t subbuf_size, size_t num_subbuf, + unsigned int switch_timer_interval, + unsigned int read_timer_interval); + +void lttng_metadata_channel_destroy(struct lttng_channel *chan); +struct lttng_event *lttng_event_create(struct lttng_channel *chan, + struct lttng_kernel_event *event_param, + void *filter, + const struct lttng_event_desc *internal_desc); +struct lttng_event *lttng_event_compat_old_create(struct lttng_channel *chan, + struct lttng_kernel_old_event *old_event_param, + void *filter, + const struct lttng_event_desc *internal_desc); + +int lttng_channel_enable(struct lttng_channel *channel); +int lttng_channel_disable(struct lttng_channel *channel); +int lttng_event_enable(struct lttng_event *event); +int lttng_event_disable(struct lttng_event *event); + +void lttng_transport_register(struct lttng_transport *transport); +void lttng_transport_unregister(struct lttng_transport *transport); + +void synchronize_trace(void); +int lttng_abi_init(void); +int lttng_abi_compat_old_init(void); +void lttng_abi_exit(void); +void lttng_abi_compat_old_exit(void); + +int lttng_probe_register(struct lttng_probe_desc *desc); +void lttng_probe_unregister(struct lttng_probe_desc *desc); +const struct lttng_event_desc *lttng_event_get(const char *name); +void lttng_event_put(const struct lttng_event_desc *desc); +int lttng_probes_init(void); +void lttng_probes_exit(void); + +int lttng_metadata_output_channel(struct lttng_metadata_stream *stream, + struct channel *chan); + +#if defined(CONFIG_HAVE_SYSCALL_TRACEPOINTS) +int lttng_syscalls_register(struct lttng_channel *chan, void *filter); +int lttng_syscalls_unregister(struct lttng_channel *chan); +#else +static inline int lttng_syscalls_register(struct lttng_channel *chan, void *filter) +{ + return -ENOSYS; +} + +static inline int lttng_syscalls_unregister(struct lttng_channel *chan) +{ + return 0; +} +#endif + +struct lttng_ctx_field *lttng_append_context(struct lttng_ctx **ctx); +int lttng_find_context(struct lttng_ctx *ctx, const char *name); +void lttng_remove_context_field(struct lttng_ctx **ctx, + struct lttng_ctx_field *field); +void lttng_destroy_context(struct lttng_ctx *ctx); +int lttng_add_pid_to_ctx(struct lttng_ctx **ctx); +int lttng_add_procname_to_ctx(struct lttng_ctx **ctx); +int lttng_add_prio_to_ctx(struct lttng_ctx **ctx); +int lttng_add_nice_to_ctx(struct lttng_ctx **ctx); +int lttng_add_vpid_to_ctx(struct lttng_ctx **ctx); +int lttng_add_tid_to_ctx(struct lttng_ctx **ctx); +int lttng_add_vtid_to_ctx(struct lttng_ctx **ctx); +int lttng_add_ppid_to_ctx(struct lttng_ctx **ctx); +int lttng_add_vppid_to_ctx(struct lttng_ctx **ctx); +int lttng_add_hostname_to_ctx(struct lttng_ctx **ctx); +#if defined(CONFIG_PERF_EVENTS) && (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,33)) +int lttng_add_perf_counter_to_ctx(uint32_t type, + uint64_t config, + const char *name, + struct lttng_ctx **ctx); +#else +static inline +int lttng_add_perf_counter_to_ctx(uint32_t type, + uint64_t config, + const char *name, + struct lttng_ctx **ctx) +{ + return -ENOSYS; +} +#endif + +extern int lttng_statedump_start(struct lttng_session *session); + +#ifdef CONFIG_KPROBES +int lttng_kprobes_register(const char *name, + const char *symbol_name, + uint64_t offset, + uint64_t addr, + struct lttng_event *event); +void lttng_kprobes_unregister(struct lttng_event *event); +void lttng_kprobes_destroy_private(struct lttng_event *event); +#else +static inline +int lttng_kprobes_register(const char *name, + const char *symbol_name, + uint64_t offset, + uint64_t addr, + struct lttng_event *event) +{ + return -ENOSYS; +} + +static inline +void lttng_kprobes_unregister(struct lttng_event *event) +{ +} + +static inline +void lttng_kprobes_destroy_private(struct lttng_event *event) +{ +} +#endif + +#ifdef CONFIG_KRETPROBES +int lttng_kretprobes_register(const char *name, + const char *symbol_name, + uint64_t offset, + uint64_t addr, + struct lttng_event *event_entry, + struct lttng_event *event_exit); +void lttng_kretprobes_unregister(struct lttng_event *event); +void lttng_kretprobes_destroy_private(struct lttng_event *event); +#else +static inline +int lttng_kretprobes_register(const char *name, + const char *symbol_name, + uint64_t offset, + uint64_t addr, + struct lttng_event *event_entry, + struct lttng_event *event_exit) +{ + return -ENOSYS; +} + +static inline +void lttng_kretprobes_unregister(struct lttng_event *event) +{ +} + +static inline +void lttng_kretprobes_destroy_private(struct lttng_event *event) +{ +} +#endif + +#ifdef CONFIG_DYNAMIC_FTRACE +int lttng_ftrace_register(const char *name, + const char *symbol_name, + struct lttng_event *event); +void lttng_ftrace_unregister(struct lttng_event *event); +void lttng_ftrace_destroy_private(struct lttng_event *event); +#else +static inline +int lttng_ftrace_register(const char *name, + const char *symbol_name, + struct lttng_event *event) +{ + return -ENOSYS; +} + +static inline +void lttng_ftrace_unregister(struct lttng_event *event) +{ +} + +static inline +void lttng_ftrace_destroy_private(struct lttng_event *event) +{ +} +#endif + +int lttng_calibrate(struct lttng_kernel_calibrate *calibrate); + +extern const struct file_operations lttng_tracepoint_list_fops; + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,35)) +#define TRACEPOINT_HAS_DATA_ARG +#endif + +#endif /* _LTTNG_EVENTS_H */ --- linux-3.11.0.orig/ubuntu/lttng-modules/lttng-ring-buffer-client-mmap-discard.c +++ linux-3.11.0/ubuntu/lttng-modules/lttng-ring-buffer-client-mmap-discard.c @@ -0,0 +1,33 @@ +/* + * lttng-ring-buffer-client-discard.c + * + * LTTng lib ring buffer client (discard mode). + * + * Copyright (C) 2010-2012 Mathieu Desnoyers + * + * 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; only + * version 2.1 of the License. + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include +#include "lttng-tracer.h" + +#define RING_BUFFER_MODE_TEMPLATE RING_BUFFER_DISCARD +#define RING_BUFFER_MODE_TEMPLATE_STRING "discard-mmap" +#define RING_BUFFER_OUTPUT_TEMPLATE RING_BUFFER_MMAP +#include "lttng-ring-buffer-client.h" + +MODULE_LICENSE("GPL and additional rights"); +MODULE_AUTHOR("Mathieu Desnoyers"); +MODULE_DESCRIPTION("LTTng Ring Buffer Client Discard Mode"); --- linux-3.11.0.orig/ubuntu/lttng-modules/lib/Makefile +++ linux-3.11.0/ubuntu/lttng-modules/lib/Makefile @@ -0,0 +1,11 @@ +obj-m += lttng-lib-ring-buffer.o + +lttng-lib-ring-buffer-objs := \ + ringbuffer/ring_buffer_backend.o \ + ringbuffer/ring_buffer_frontend.o \ + ringbuffer/ring_buffer_iterator.o \ + ringbuffer/ring_buffer_vfs.o \ + ringbuffer/ring_buffer_splice.o \ + ringbuffer/ring_buffer_mmap.o \ + prio_heap/lttng_prio_heap.o \ + ../wrapper/splice.o --- linux-3.11.0.orig/ubuntu/lttng-modules/lib/bitfield.h +++ linux-3.11.0/ubuntu/lttng-modules/lib/bitfield.h @@ -0,0 +1,408 @@ +#ifndef _BABELTRACE_BITFIELD_H +#define _BABELTRACE_BITFIELD_H + +/* + * BabelTrace + * + * Bitfields read/write functions. + * + * Copyright 2010 - Mathieu Desnoyers + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +#include "../lttng-endian.h" + +#ifndef CHAR_BIT +#define CHAR_BIT 8 +#endif + +/* We can't shift a int from 32 bit, >> 32 and << 32 on int is undefined */ +#define _bt_piecewise_rshift(_v, _shift) \ +({ \ + typeof(_v) ___v = (_v); \ + typeof(_shift) ___shift = (_shift); \ + unsigned long sb = (___shift) / (sizeof(___v) * CHAR_BIT - 1); \ + unsigned long final = (___shift) % (sizeof(___v) * CHAR_BIT - 1); \ + \ + for (; sb; sb--) \ + ___v >>= sizeof(___v) * CHAR_BIT - 1; \ + ___v >>= final; \ +}) + +#define _bt_piecewise_lshift(_v, _shift) \ +({ \ + typeof(_v) ___v = (_v); \ + typeof(_shift) ___shift = (_shift); \ + unsigned long sb = (___shift) / (sizeof(___v) * CHAR_BIT - 1); \ + unsigned long final = (___shift) % (sizeof(___v) * CHAR_BIT - 1); \ + \ + for (; sb; sb--) \ + ___v <<= sizeof(___v) * CHAR_BIT - 1; \ + ___v <<= final; \ +}) + +#define _bt_is_signed_type(type) (((type)(-1)) < 0) + +#define _bt_unsigned_cast(type, v) \ +({ \ + (sizeof(v) < sizeof(type)) ? \ + ((type) (v)) & (~(~(type) 0 << (sizeof(v) * CHAR_BIT))) : \ + (type) (v); \ +}) + +/* + * bt_bitfield_write - write integer to a bitfield in native endianness + * + * Save integer to the bitfield, which starts at the "start" bit, has "len" + * bits. + * The inside of a bitfield is from high bits to low bits. + * Uses native endianness. + * For unsigned "v", pad MSB with 0 if bitfield is larger than v. + * For signed "v", sign-extend v if bitfield is larger than v. + * + * On little endian, bytes are placed from the less significant to the most + * significant. Also, consecutive bitfields are placed from lower bits to higher + * bits. + * + * On big endian, bytes are places from most significant to less significant. + * Also, consecutive bitfields are placed from higher to lower bits. + */ + +#define _bt_bitfield_write_le(_ptr, type, _start, _length, _v) \ +do { \ + typeof(_v) __v = (_v); \ + type *__ptr = (void *) (_ptr); \ + unsigned long __start = (_start), __length = (_length); \ + type mask, cmask; \ + unsigned long ts = sizeof(type) * CHAR_BIT; /* type size */ \ + unsigned long start_unit, end_unit, this_unit; \ + unsigned long end, cshift; /* cshift is "complement shift" */ \ + \ + if (!__length) \ + break; \ + \ + end = __start + __length; \ + start_unit = __start / ts; \ + end_unit = (end + (ts - 1)) / ts; \ + \ + /* Trim v high bits */ \ + if (__length < sizeof(__v) * CHAR_BIT) \ + __v &= ~((~(typeof(__v)) 0) << __length); \ + \ + /* We can now append v with a simple "or", shift it piece-wise */ \ + this_unit = start_unit; \ + if (start_unit == end_unit - 1) { \ + mask = ~((~(type) 0) << (__start % ts)); \ + if (end % ts) \ + mask |= (~(type) 0) << (end % ts); \ + cmask = (type) __v << (__start % ts); \ + cmask &= ~mask; \ + __ptr[this_unit] &= mask; \ + __ptr[this_unit] |= cmask; \ + break; \ + } \ + if (__start % ts) { \ + cshift = __start % ts; \ + mask = ~((~(type) 0) << cshift); \ + cmask = (type) __v << cshift; \ + cmask &= ~mask; \ + __ptr[this_unit] &= mask; \ + __ptr[this_unit] |= cmask; \ + __v = _bt_piecewise_rshift(__v, ts - cshift); \ + __start += ts - cshift; \ + this_unit++; \ + } \ + for (; this_unit < end_unit - 1; this_unit++) { \ + __ptr[this_unit] = (type) __v; \ + __v = _bt_piecewise_rshift(__v, ts); \ + __start += ts; \ + } \ + if (end % ts) { \ + mask = (~(type) 0) << (end % ts); \ + cmask = (type) __v; \ + cmask &= ~mask; \ + __ptr[this_unit] &= mask; \ + __ptr[this_unit] |= cmask; \ + } else \ + __ptr[this_unit] = (type) __v; \ +} while (0) + +#define _bt_bitfield_write_be(_ptr, type, _start, _length, _v) \ +do { \ + typeof(_v) __v = (_v); \ + type *__ptr = (void *) (_ptr); \ + unsigned long __start = (_start), __length = (_length); \ + type mask, cmask; \ + unsigned long ts = sizeof(type) * CHAR_BIT; /* type size */ \ + unsigned long start_unit, end_unit, this_unit; \ + unsigned long end, cshift; /* cshift is "complement shift" */ \ + \ + if (!__length) \ + break; \ + \ + end = __start + __length; \ + start_unit = __start / ts; \ + end_unit = (end + (ts - 1)) / ts; \ + \ + /* Trim v high bits */ \ + if (__length < sizeof(__v) * CHAR_BIT) \ + __v &= ~((~(typeof(__v)) 0) << __length); \ + \ + /* We can now append v with a simple "or", shift it piece-wise */ \ + this_unit = end_unit - 1; \ + if (start_unit == end_unit - 1) { \ + mask = ~((~(type) 0) << ((ts - (end % ts)) % ts)); \ + if (__start % ts) \ + mask |= (~((type) 0)) << (ts - (__start % ts)); \ + cmask = (type) __v << ((ts - (end % ts)) % ts); \ + cmask &= ~mask; \ + __ptr[this_unit] &= mask; \ + __ptr[this_unit] |= cmask; \ + break; \ + } \ + if (end % ts) { \ + cshift = end % ts; \ + mask = ~((~(type) 0) << (ts - cshift)); \ + cmask = (type) __v << (ts - cshift); \ + cmask &= ~mask; \ + __ptr[this_unit] &= mask; \ + __ptr[this_unit] |= cmask; \ + __v = _bt_piecewise_rshift(__v, cshift); \ + end -= cshift; \ + this_unit--; \ + } \ + for (; (long) this_unit >= (long) start_unit + 1; this_unit--) { \ + __ptr[this_unit] = (type) __v; \ + __v = _bt_piecewise_rshift(__v, ts); \ + end -= ts; \ + } \ + if (__start % ts) { \ + mask = (~(type) 0) << (ts - (__start % ts)); \ + cmask = (type) __v; \ + cmask &= ~mask; \ + __ptr[this_unit] &= mask; \ + __ptr[this_unit] |= cmask; \ + } else \ + __ptr[this_unit] = (type) __v; \ +} while (0) + +/* + * bt_bitfield_write - write integer to a bitfield in native endianness + * bt_bitfield_write_le - write integer to a bitfield in little endian + * bt_bitfield_write_be - write integer to a bitfield in big endian + */ + +#if (__BYTE_ORDER == __LITTLE_ENDIAN) + +#define bt_bitfield_write(ptr, type, _start, _length, _v) \ + _bt_bitfield_write_le(ptr, type, _start, _length, _v) + +#define bt_bitfield_write_le(ptr, type, _start, _length, _v) \ + _bt_bitfield_write_le(ptr, type, _start, _length, _v) + +#define bt_bitfield_write_be(ptr, type, _start, _length, _v) \ + _bt_bitfield_write_be(ptr, unsigned char, _start, _length, _v) + +#elif (__BYTE_ORDER == __BIG_ENDIAN) + +#define bt_bitfield_write(ptr, type, _start, _length, _v) \ + _bt_bitfield_write_be(ptr, type, _start, _length, _v) + +#define bt_bitfield_write_le(ptr, type, _start, _length, _v) \ + _bt_bitfield_write_le(ptr, unsigned char, _start, _length, _v) + +#define bt_bitfield_write_be(ptr, type, _start, _length, _v) \ + _bt_bitfield_write_be(ptr, type, _start, _length, _v) + +#else /* (BYTE_ORDER == PDP_ENDIAN) */ + +#error "Byte order not supported" + +#endif + +#define _bt_bitfield_read_le(_ptr, type, _start, _length, _vptr) \ +do { \ + typeof(*(_vptr)) *__vptr = (_vptr); \ + typeof(*__vptr) __v; \ + type *__ptr = (void *) (_ptr); \ + unsigned long __start = (_start), __length = (_length); \ + type mask, cmask; \ + unsigned long ts = sizeof(type) * CHAR_BIT; /* type size */ \ + unsigned long start_unit, end_unit, this_unit; \ + unsigned long end, cshift; /* cshift is "complement shift" */ \ + \ + if (!__length) { \ + *__vptr = 0; \ + break; \ + } \ + \ + end = __start + __length; \ + start_unit = __start / ts; \ + end_unit = (end + (ts - 1)) / ts; \ + \ + this_unit = end_unit - 1; \ + if (_bt_is_signed_type(typeof(__v)) \ + && (__ptr[this_unit] & ((type) 1 << ((end % ts ? : ts) - 1)))) \ + __v = ~(typeof(__v)) 0; \ + else \ + __v = 0; \ + if (start_unit == end_unit - 1) { \ + cmask = __ptr[this_unit]; \ + cmask >>= (__start % ts); \ + if ((end - __start) % ts) { \ + mask = ~((~(type) 0) << (end - __start)); \ + cmask &= mask; \ + } \ + __v = _bt_piecewise_lshift(__v, end - __start); \ + __v |= _bt_unsigned_cast(typeof(__v), cmask); \ + *__vptr = __v; \ + break; \ + } \ + if (end % ts) { \ + cshift = end % ts; \ + mask = ~((~(type) 0) << cshift); \ + cmask = __ptr[this_unit]; \ + cmask &= mask; \ + __v = _bt_piecewise_lshift(__v, cshift); \ + __v |= _bt_unsigned_cast(typeof(__v), cmask); \ + end -= cshift; \ + this_unit--; \ + } \ + for (; (long) this_unit >= (long) start_unit + 1; this_unit--) { \ + __v = _bt_piecewise_lshift(__v, ts); \ + __v |= _bt_unsigned_cast(typeof(__v), __ptr[this_unit]);\ + end -= ts; \ + } \ + if (__start % ts) { \ + mask = ~((~(type) 0) << (ts - (__start % ts))); \ + cmask = __ptr[this_unit]; \ + cmask >>= (__start % ts); \ + cmask &= mask; \ + __v = _bt_piecewise_lshift(__v, ts - (__start % ts)); \ + __v |= _bt_unsigned_cast(typeof(__v), cmask); \ + } else { \ + __v = _bt_piecewise_lshift(__v, ts); \ + __v |= _bt_unsigned_cast(typeof(__v), __ptr[this_unit]);\ + } \ + *__vptr = __v; \ +} while (0) + +#define _bt_bitfield_read_be(_ptr, type, _start, _length, _vptr) \ +do { \ + typeof(*(_vptr)) *__vptr = (_vptr); \ + typeof(*__vptr) __v; \ + type *__ptr = (void *) (_ptr); \ + unsigned long __start = (_start), __length = (_length); \ + type mask, cmask; \ + unsigned long ts = sizeof(type) * CHAR_BIT; /* type size */ \ + unsigned long start_unit, end_unit, this_unit; \ + unsigned long end, cshift; /* cshift is "complement shift" */ \ + \ + if (!__length) { \ + *__vptr = 0; \ + break; \ + } \ + \ + end = __start + __length; \ + start_unit = __start / ts; \ + end_unit = (end + (ts - 1)) / ts; \ + \ + this_unit = start_unit; \ + if (_bt_is_signed_type(typeof(__v)) \ + && (__ptr[this_unit] & ((type) 1 << (ts - (__start % ts) - 1)))) \ + __v = ~(typeof(__v)) 0; \ + else \ + __v = 0; \ + if (start_unit == end_unit - 1) { \ + cmask = __ptr[this_unit]; \ + cmask >>= (ts - (end % ts)) % ts; \ + if ((end - __start) % ts) { \ + mask = ~((~(type) 0) << (end - __start)); \ + cmask &= mask; \ + } \ + __v = _bt_piecewise_lshift(__v, end - __start); \ + __v |= _bt_unsigned_cast(typeof(__v), cmask); \ + *__vptr = __v; \ + break; \ + } \ + if (__start % ts) { \ + cshift = __start % ts; \ + mask = ~((~(type) 0) << (ts - cshift)); \ + cmask = __ptr[this_unit]; \ + cmask &= mask; \ + __v = _bt_piecewise_lshift(__v, ts - cshift); \ + __v |= _bt_unsigned_cast(typeof(__v), cmask); \ + __start += ts - cshift; \ + this_unit++; \ + } \ + for (; this_unit < end_unit - 1; this_unit++) { \ + __v = _bt_piecewise_lshift(__v, ts); \ + __v |= _bt_unsigned_cast(typeof(__v), __ptr[this_unit]);\ + __start += ts; \ + } \ + if (end % ts) { \ + mask = ~((~(type) 0) << (end % ts)); \ + cmask = __ptr[this_unit]; \ + cmask >>= ts - (end % ts); \ + cmask &= mask; \ + __v = _bt_piecewise_lshift(__v, end % ts); \ + __v |= _bt_unsigned_cast(typeof(__v), cmask); \ + } else { \ + __v = _bt_piecewise_lshift(__v, ts); \ + __v |= _bt_unsigned_cast(typeof(__v), __ptr[this_unit]);\ + } \ + *__vptr = __v; \ +} while (0) + +/* + * bt_bitfield_read - read integer from a bitfield in native endianness + * bt_bitfield_read_le - read integer from a bitfield in little endian + * bt_bitfield_read_be - read integer from a bitfield in big endian + */ + +#if (__BYTE_ORDER == __LITTLE_ENDIAN) + +#define bt_bitfield_read(_ptr, type, _start, _length, _vptr) \ + _bt_bitfield_read_le(_ptr, type, _start, _length, _vptr) + +#define bt_bitfield_read_le(_ptr, type, _start, _length, _vptr) \ + _bt_bitfield_read_le(_ptr, type, _start, _length, _vptr) + +#define bt_bitfield_read_be(_ptr, type, _start, _length, _vptr) \ + _bt_bitfield_read_be(_ptr, unsigned char, _start, _length, _vptr) + +#elif (__BYTE_ORDER == __BIG_ENDIAN) + +#define bt_bitfield_read(_ptr, type, _start, _length, _vptr) \ + _bt_bitfield_read_be(_ptr, type, _start, _length, _vptr) + +#define bt_bitfield_read_le(_ptr, type, _start, _length, _vptr) \ + _bt_bitfield_read_le(_ptr, unsigned char, _start, _length, _vptr) + +#define bt_bitfield_read_be(_ptr, type, _start, _length, _vptr) \ + _bt_bitfield_read_be(_ptr, type, _start, _length, _vptr) + +#else /* (__BYTE_ORDER == __PDP_ENDIAN) */ + +#error "Byte order not supported" + +#endif + +#endif /* _BABELTRACE_BITFIELD_H */ --- linux-3.11.0.orig/ubuntu/lttng-modules/lib/bug.h +++ linux-3.11.0/ubuntu/lttng-modules/lib/bug.h @@ -0,0 +1,41 @@ +#ifndef _LTTNG_BUG_H +#define _LTTNG_BUG_H + +/* + * lib/bug.h + * + * Copyright (C) 2010-2012 Mathieu Desnoyers + * + * 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; only + * version 2.1 of the License. + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/** + * BUILD_RUNTIME_BUG_ON - check condition at build (if constant) or runtime + * @condition: the condition which should be false. + * + * If the condition is a constant and true, the compiler will generate a build + * error. If the condition is not constant, a BUG will be triggered at runtime + * if the condition is ever true. If the condition is constant and false, no + * code is emitted. + */ +#define BUILD_RUNTIME_BUG_ON(condition) \ + do { \ + if (__builtin_constant_p(condition)) \ + BUILD_BUG_ON(condition); \ + else \ + BUG_ON(condition); \ + } while (0) + +#endif --- linux-3.11.0.orig/ubuntu/lttng-modules/lib/align.h +++ linux-3.11.0/ubuntu/lttng-modules/lib/align.h @@ -0,0 +1,73 @@ +#ifndef _LTTNG_ALIGN_H +#define _LTTNG_ALIGN_H + +/* + * lib/align.h + * + * Copyright (C) 2010-2012 Mathieu Desnoyers + * + * 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; only + * version 2.1 of the License. + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifdef __KERNEL__ + +#include +#include "bug.h" + +#define ALIGN_FLOOR(x, a) __ALIGN_FLOOR_MASK(x, (typeof(x)) (a) - 1) +#define __ALIGN_FLOOR_MASK(x, mask) ((x) & ~(mask)) +#define PTR_ALIGN_FLOOR(p, a) \ + ((typeof(p)) ALIGN_FLOOR((unsigned long) (p), a)) + +/* + * Align pointer on natural object alignment. + */ +#define object_align(obj) PTR_ALIGN(obj, __alignof__(*(obj))) +#define object_align_floor(obj) PTR_ALIGN_FLOOR(obj, __alignof__(*(obj))) + +/** + * offset_align - Calculate the offset needed to align an object on its natural + * alignment towards higher addresses. + * @align_drift: object offset from an "alignment"-aligned address. + * @alignment: natural object alignment. Must be non-zero, power of 2. + * + * Returns the offset that must be added to align towards higher + * addresses. + */ +#define offset_align(align_drift, alignment) \ + ({ \ + BUILD_RUNTIME_BUG_ON((alignment) == 0 \ + || ((alignment) & ((alignment) - 1))); \ + (((alignment) - (align_drift)) & ((alignment) - 1)); \ + }) + +/** + * offset_align_floor - Calculate the offset needed to align an object + * on its natural alignment towards lower addresses. + * @align_drift: object offset from an "alignment"-aligned address. + * @alignment: natural object alignment. Must be non-zero, power of 2. + * + * Returns the offset that must be substracted to align towards lower addresses. + */ +#define offset_align_floor(align_drift, alignment) \ + ({ \ + BUILD_RUNTIME_BUG_ON((alignment) == 0 \ + || ((alignment) & ((alignment) - 1))); \ + (((align_drift) - (alignment)) & ((alignment) - 1); \ + }) + +#endif /* __KERNEL__ */ + +#endif --- linux-3.11.0.orig/ubuntu/lttng-modules/lib/prio_heap/lttng_prio_heap.c +++ linux-3.11.0/ubuntu/lttng-modules/lib/prio_heap/lttng_prio_heap.c @@ -0,0 +1,215 @@ +/* + * lttng_prio_heap.c + * + * Priority heap containing pointers. Based on CLRS, chapter 6. + * + * Copyright 2011 - Mathieu Desnoyers + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +#include +#include "lttng_prio_heap.h" + +#ifdef DEBUG_HEAP +void lttng_check_heap(const struct lttng_ptr_heap *heap) +{ + size_t i; + + if (!heap->len) + return; + + for (i = 1; i < heap->len; i++) + WARN_ON_ONCE(!heap->gt(heap->ptrs[i], heap->ptrs[0])); +} +#endif + +static +size_t parent(size_t i) +{ + return (i -1) >> 1; +} + +static +size_t left(size_t i) +{ + return (i << 1) + 1; +} + +static +size_t right(size_t i) +{ + return (i << 1) + 2; +} + +/* + * Copy of heap->ptrs pointer is invalid after heap_grow. + */ +static +int heap_grow(struct lttng_ptr_heap *heap, size_t new_len) +{ + void **new_ptrs; + + if (heap->alloc_len >= new_len) + return 0; + + heap->alloc_len = max_t(size_t, new_len, heap->alloc_len << 1); + new_ptrs = kmalloc(heap->alloc_len * sizeof(void *), heap->gfpmask); + if (!new_ptrs) + return -ENOMEM; + if (heap->ptrs) + memcpy(new_ptrs, heap->ptrs, heap->len * sizeof(void *)); + kfree(heap->ptrs); + heap->ptrs = new_ptrs; + return 0; +} + +static +int heap_set_len(struct lttng_ptr_heap *heap, size_t new_len) +{ + int ret; + + ret = heap_grow(heap, new_len); + if (ret) + return ret; + heap->len = new_len; + return 0; +} + +int lttng_heap_init(struct lttng_ptr_heap *heap, size_t alloc_len, + gfp_t gfpmask, int gt(void *a, void *b)) +{ + heap->ptrs = NULL; + heap->len = 0; + heap->alloc_len = 0; + heap->gt = gt; + heap->gfpmask = gfpmask; + /* + * Minimum size allocated is 1 entry to ensure memory allocation + * never fails within heap_replace_max. + */ + return heap_grow(heap, max_t(size_t, 1, alloc_len)); +} + +void lttng_heap_free(struct lttng_ptr_heap *heap) +{ + kfree(heap->ptrs); +} + +static void heapify(struct lttng_ptr_heap *heap, size_t i) +{ + void **ptrs = heap->ptrs; + size_t l, r, largest; + + for (;;) { + void *tmp; + + l = left(i); + r = right(i); + if (l < heap->len && heap->gt(ptrs[l], ptrs[i])) + largest = l; + else + largest = i; + if (r < heap->len && heap->gt(ptrs[r], ptrs[largest])) + largest = r; + if (largest == i) + break; + tmp = ptrs[i]; + ptrs[i] = ptrs[largest]; + ptrs[largest] = tmp; + i = largest; + } + lttng_check_heap(heap); +} + +void *lttng_heap_replace_max(struct lttng_ptr_heap *heap, void *p) +{ + void *res; + + if (!heap->len) { + (void) heap_set_len(heap, 1); + heap->ptrs[0] = p; + lttng_check_heap(heap); + return NULL; + } + + /* Replace the current max and heapify */ + res = heap->ptrs[0]; + heap->ptrs[0] = p; + heapify(heap, 0); + return res; +} + +int lttng_heap_insert(struct lttng_ptr_heap *heap, void *p) +{ + void **ptrs; + size_t pos; + int ret; + + ret = heap_set_len(heap, heap->len + 1); + if (ret) + return ret; + ptrs = heap->ptrs; + pos = heap->len - 1; + while (pos > 0 && heap->gt(p, ptrs[parent(pos)])) { + /* Move parent down until we find the right spot */ + ptrs[pos] = ptrs[parent(pos)]; + pos = parent(pos); + } + ptrs[pos] = p; + lttng_check_heap(heap); + return 0; +} + +void *lttng_heap_remove(struct lttng_ptr_heap *heap) +{ + switch (heap->len) { + case 0: + return NULL; + case 1: + (void) heap_set_len(heap, 0); + return heap->ptrs[0]; + } + /* Shrink, replace the current max by previous last entry and heapify */ + heap_set_len(heap, heap->len - 1); + /* len changed. previous last entry is at heap->len */ + return lttng_heap_replace_max(heap, heap->ptrs[heap->len]); +} + +void *lttng_heap_cherrypick(struct lttng_ptr_heap *heap, void *p) +{ + size_t pos, len = heap->len; + + for (pos = 0; pos < len; pos++) + if (heap->ptrs[pos] == p) + goto found; + return NULL; +found: + if (heap->len == 1) { + (void) heap_set_len(heap, 0); + lttng_check_heap(heap); + return heap->ptrs[0]; + } + /* Replace p with previous last entry and heapify. */ + heap_set_len(heap, heap->len - 1); + /* len changed. previous last entry is at heap->len */ + heap->ptrs[pos] = heap->ptrs[heap->len]; + heapify(heap, pos); + return p; +} --- linux-3.11.0.orig/ubuntu/lttng-modules/lib/prio_heap/lttng_prio_heap.h +++ linux-3.11.0/ubuntu/lttng-modules/lib/prio_heap/lttng_prio_heap.h @@ -0,0 +1,125 @@ +#ifndef _LTTNG_PRIO_HEAP_H +#define _LTTNG_PRIO_HEAP_H + +/* + * lttng_prio_heap.h + * + * Priority heap containing pointers. Based on CLRS, chapter 6. + * + * Copyright 2011 - Mathieu Desnoyers + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +#include + +struct lttng_ptr_heap { + size_t len, alloc_len; + void **ptrs; + int (*gt)(void *a, void *b); + gfp_t gfpmask; +}; + +#ifdef DEBUG_HEAP +void lttng_check_heap(const struct lttng_ptr_heap *heap); +#else +static inline +void lttng_check_heap(const struct lttng_ptr_heap *heap) +{ +} +#endif + +/** + * lttng_heap_maximum - return the largest element in the heap + * @heap: the heap to be operated on + * + * Returns the largest element in the heap, without performing any modification + * to the heap structure. Returns NULL if the heap is empty. + */ +static inline void *lttng_heap_maximum(const struct lttng_ptr_heap *heap) +{ + lttng_check_heap(heap); + return heap->len ? heap->ptrs[0] : NULL; +} + +/** + * lttng_heap_init - initialize the heap + * @heap: the heap to initialize + * @alloc_len: number of elements initially allocated + * @gfp: allocation flags + * @gt: function to compare the elements + * + * Returns -ENOMEM if out of memory. + */ +extern int lttng_heap_init(struct lttng_ptr_heap *heap, + size_t alloc_len, gfp_t gfpmask, + int gt(void *a, void *b)); + +/** + * lttng_heap_free - free the heap + * @heap: the heap to free + */ +extern void lttng_heap_free(struct lttng_ptr_heap *heap); + +/** + * lttng_heap_insert - insert an element into the heap + * @heap: the heap to be operated on + * @p: the element to add + * + * Insert an element into the heap. + * + * Returns -ENOMEM if out of memory. + */ +extern int lttng_heap_insert(struct lttng_ptr_heap *heap, void *p); + +/** + * lttng_heap_remove - remove the largest element from the heap + * @heap: the heap to be operated on + * + * Returns the largest element in the heap. It removes this element from the + * heap. Returns NULL if the heap is empty. + */ +extern void *lttng_heap_remove(struct lttng_ptr_heap *heap); + +/** + * lttng_heap_cherrypick - remove a given element from the heap + * @heap: the heap to be operated on + * @p: the element + * + * Remove the given element from the heap. Return the element if present, else + * return NULL. This algorithm has a complexity of O(n), which is higher than + * O(log(n)) provided by the rest of this API. + */ +extern void *lttng_heap_cherrypick(struct lttng_ptr_heap *heap, void *p); + +/** + * lttng_heap_replace_max - replace the the largest element from the heap + * @heap: the heap to be operated on + * @p: the pointer to be inserted as topmost element replacement + * + * Returns the largest element in the heap. It removes this element from the + * heap. The heap is rebalanced only once after the insertion. Returns NULL if + * the heap is empty. + * + * This is the equivalent of calling heap_remove() and then heap_insert(), but + * it only rebalances the heap once. It never allocates memory. + */ +extern void *lttng_heap_replace_max(struct lttng_ptr_heap *heap, void *p); + +#endif /* _LTTNG_PRIO_HEAP_H */ --- linux-3.11.0.orig/ubuntu/lttng-modules/lib/ringbuffer/backend.h +++ linux-3.11.0/ubuntu/lttng-modules/lib/ringbuffer/backend.h @@ -0,0 +1,272 @@ +#ifndef _LIB_RING_BUFFER_BACKEND_H +#define _LIB_RING_BUFFER_BACKEND_H + +/* + * lib/ringbuffer/backend.h + * + * Ring buffer backend (API). + * + * Copyright (C) 2010-2012 Mathieu Desnoyers + * + * 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; only + * version 2.1 of the License. + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + * + * Credits to Steven Rostedt for proposing to use an extra-subbuffer owned by + * the reader in flight recorder mode. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +/* Internal helpers */ +#include "../../wrapper/ringbuffer/backend_internal.h" +#include "../../wrapper/ringbuffer/frontend_internal.h" + +/* Ring buffer backend API */ + +/* Ring buffer backend access (read/write) */ + +extern size_t lib_ring_buffer_read(struct lib_ring_buffer_backend *bufb, + size_t offset, void *dest, size_t len); + +extern int __lib_ring_buffer_copy_to_user(struct lib_ring_buffer_backend *bufb, + size_t offset, void __user *dest, + size_t len); + +extern int lib_ring_buffer_read_cstr(struct lib_ring_buffer_backend *bufb, + size_t offset, void *dest, size_t len); + +extern struct page ** +lib_ring_buffer_read_get_page(struct lib_ring_buffer_backend *bufb, size_t offset, + void ***virt); + +/* + * Return the address where a given offset is located. + * Should be used to get the current subbuffer header pointer. Given we know + * it's never on a page boundary, it's safe to write directly to this address, + * as long as the write is never bigger than a page size. + */ +extern void * +lib_ring_buffer_offset_address(struct lib_ring_buffer_backend *bufb, + size_t offset); +extern void * +lib_ring_buffer_read_offset_address(struct lib_ring_buffer_backend *bufb, + size_t offset); + +/** + * lib_ring_buffer_write - write data to a buffer backend + * @config : ring buffer instance configuration + * @ctx: ring buffer context. (input arguments only) + * @src : source pointer to copy from + * @len : length of data to copy + * + * This function copies "len" bytes of data from a source pointer to a buffer + * backend, at the current context offset. This is more or less a buffer + * backend-specific memcpy() operation. Calls the slow path (_ring_buffer_write) + * if copy is crossing a page boundary. + */ +static inline +void lib_ring_buffer_write(const struct lib_ring_buffer_config *config, + struct lib_ring_buffer_ctx *ctx, + const void *src, size_t len) +{ + struct lib_ring_buffer_backend *bufb = &ctx->buf->backend; + struct channel_backend *chanb = &ctx->chan->backend; + size_t sbidx, index; + size_t offset = ctx->buf_offset; + ssize_t pagecpy; + struct lib_ring_buffer_backend_pages *rpages; + unsigned long sb_bindex, id; + + if (unlikely(!len)) + return; + offset &= chanb->buf_size - 1; + sbidx = offset >> chanb->subbuf_size_order; + index = (offset & (chanb->subbuf_size - 1)) >> PAGE_SHIFT; + pagecpy = min_t(size_t, len, (-offset) & ~PAGE_MASK); + id = bufb->buf_wsb[sbidx].id; + sb_bindex = subbuffer_id_get_index(config, id); + rpages = bufb->array[sb_bindex]; + CHAN_WARN_ON(ctx->chan, + config->mode == RING_BUFFER_OVERWRITE + && subbuffer_id_is_noref(config, id)); + if (likely(pagecpy == len)) + lib_ring_buffer_do_copy(config, + rpages->p[index].virt + + (offset & ~PAGE_MASK), + src, len); + else + _lib_ring_buffer_write(bufb, offset, src, len, 0); + ctx->buf_offset += len; +} + +/** + * lib_ring_buffer_memset - write len bytes of c to a buffer backend + * @config : ring buffer instance configuration + * @bufb : ring buffer backend + * @offset : offset within the buffer + * @c : the byte to copy + * @len : number of bytes to copy + * + * This function writes "len" bytes of "c" to a buffer backend, at a specific + * offset. This is more or less a buffer backend-specific memset() operation. + * Calls the slow path (_ring_buffer_memset) if write is crossing a page + * boundary. + */ +static inline +void lib_ring_buffer_memset(const struct lib_ring_buffer_config *config, + struct lib_ring_buffer_ctx *ctx, int c, size_t len) +{ + + struct lib_ring_buffer_backend *bufb = &ctx->buf->backend; + struct channel_backend *chanb = &ctx->chan->backend; + size_t sbidx, index; + size_t offset = ctx->buf_offset; + ssize_t pagecpy; + struct lib_ring_buffer_backend_pages *rpages; + unsigned long sb_bindex, id; + + if (unlikely(!len)) + return; + offset &= chanb->buf_size - 1; + sbidx = offset >> chanb->subbuf_size_order; + index = (offset & (chanb->subbuf_size - 1)) >> PAGE_SHIFT; + pagecpy = min_t(size_t, len, (-offset) & ~PAGE_MASK); + id = bufb->buf_wsb[sbidx].id; + sb_bindex = subbuffer_id_get_index(config, id); + rpages = bufb->array[sb_bindex]; + CHAN_WARN_ON(ctx->chan, + config->mode == RING_BUFFER_OVERWRITE + && subbuffer_id_is_noref(config, id)); + if (likely(pagecpy == len)) + lib_ring_buffer_do_memset(rpages->p[index].virt + + (offset & ~PAGE_MASK), + c, len); + else + _lib_ring_buffer_memset(bufb, offset, c, len, 0); + ctx->buf_offset += len; +} + +/** + * lib_ring_buffer_copy_from_user_inatomic - write userspace data to a buffer backend + * @config : ring buffer instance configuration + * @ctx: ring buffer context. (input arguments only) + * @src : userspace source pointer to copy from + * @len : length of data to copy + * + * This function copies "len" bytes of data from a userspace pointer to a + * buffer backend, at the current context offset. This is more or less a buffer + * backend-specific memcpy() operation. Calls the slow path + * (_ring_buffer_write_from_user_inatomic) if copy is crossing a page boundary. + * Disable the page fault handler to ensure we never try to take the mmap_sem. + */ +static inline +void lib_ring_buffer_copy_from_user_inatomic(const struct lib_ring_buffer_config *config, + struct lib_ring_buffer_ctx *ctx, + const void __user *src, size_t len) +{ + struct lib_ring_buffer_backend *bufb = &ctx->buf->backend; + struct channel_backend *chanb = &ctx->chan->backend; + size_t sbidx, index; + size_t offset = ctx->buf_offset; + ssize_t pagecpy; + struct lib_ring_buffer_backend_pages *rpages; + unsigned long sb_bindex, id; + unsigned long ret; + mm_segment_t old_fs = get_fs(); + + if (unlikely(!len)) + return; + offset &= chanb->buf_size - 1; + sbidx = offset >> chanb->subbuf_size_order; + index = (offset & (chanb->subbuf_size - 1)) >> PAGE_SHIFT; + pagecpy = min_t(size_t, len, (-offset) & ~PAGE_MASK); + id = bufb->buf_wsb[sbidx].id; + sb_bindex = subbuffer_id_get_index(config, id); + rpages = bufb->array[sb_bindex]; + CHAN_WARN_ON(ctx->chan, + config->mode == RING_BUFFER_OVERWRITE + && subbuffer_id_is_noref(config, id)); + + set_fs(KERNEL_DS); + pagefault_disable(); + if (unlikely(!access_ok(VERIFY_READ, src, len))) + goto fill_buffer; + + if (likely(pagecpy == len)) { + ret = lib_ring_buffer_do_copy_from_user_inatomic( + rpages->p[index].virt + (offset & ~PAGE_MASK), + src, len); + if (unlikely(ret > 0)) { + len -= (pagecpy - ret); + offset += (pagecpy - ret); + goto fill_buffer; + } + } else { + _lib_ring_buffer_copy_from_user_inatomic(bufb, offset, src, len, 0); + } + pagefault_enable(); + set_fs(old_fs); + ctx->buf_offset += len; + + return; + +fill_buffer: + pagefault_enable(); + set_fs(old_fs); + /* + * In the error path we call the slow path version to avoid + * the pollution of static inline code. + */ + _lib_ring_buffer_memset(bufb, offset, 0, len, 0); +} + +/* + * This accessor counts the number of unread records in a buffer. + * It only provides a consistent value if no reads not writes are performed + * concurrently. + */ +static inline +unsigned long lib_ring_buffer_get_records_unread( + const struct lib_ring_buffer_config *config, + struct lib_ring_buffer *buf) +{ + struct lib_ring_buffer_backend *bufb = &buf->backend; + struct lib_ring_buffer_backend_pages *pages; + unsigned long records_unread = 0, sb_bindex, id; + unsigned int i; + + for (i = 0; i < bufb->chan->backend.num_subbuf; i++) { + id = bufb->buf_wsb[i].id; + sb_bindex = subbuffer_id_get_index(config, id); + pages = bufb->array[sb_bindex]; + records_unread += v_read(config, &pages->records_unread); + } + if (config->mode == RING_BUFFER_OVERWRITE) { + id = bufb->buf_rsb.id; + sb_bindex = subbuffer_id_get_index(config, id); + pages = bufb->array[sb_bindex]; + records_unread += v_read(config, &pages->records_unread); + } + return records_unread; +} + +#endif /* _LIB_RING_BUFFER_BACKEND_H */ --- linux-3.11.0.orig/ubuntu/lttng-modules/lib/ringbuffer/frontend_api.h +++ linux-3.11.0/ubuntu/lttng-modules/lib/ringbuffer/frontend_api.h @@ -0,0 +1,371 @@ +#ifndef _LIB_RING_BUFFER_FRONTEND_API_H +#define _LIB_RING_BUFFER_FRONTEND_API_H + +/* + * lib/ringbuffer/frontend_api.h + * + * Ring Buffer Library Synchronization Header (buffer write API). + * + * Copyright (C) 2005-2012 Mathieu Desnoyers + * + * 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; only + * version 2.1 of the License. + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + * + * Author: + * Mathieu Desnoyers + * + * See ring_buffer_frontend.c for more information on wait-free algorithms. + * See linux/ringbuffer/frontend.h for channel allocation and read-side API. + */ + +#include "../../wrapper/ringbuffer/frontend.h" +#include +#include + +/** + * lib_ring_buffer_get_cpu - Precedes ring buffer reserve/commit. + * + * Disables preemption (acts as a RCU read-side critical section) and keeps a + * ring buffer nesting count as supplementary safety net to ensure tracer client + * code will never trigger an endless recursion. Returns the processor ID on + * success, -EPERM on failure (nesting count too high). + * + * asm volatile and "memory" clobber prevent the compiler from moving + * instructions out of the ring buffer nesting count. This is required to ensure + * that probe side-effects which can cause recursion (e.g. unforeseen traps, + * divisions by 0, ...) are triggered within the incremented nesting count + * section. + */ +static inline +int lib_ring_buffer_get_cpu(const struct lib_ring_buffer_config *config) +{ + int cpu, nesting; + + rcu_read_lock_sched_notrace(); + cpu = smp_processor_id(); + nesting = ++per_cpu(lib_ring_buffer_nesting, cpu); + barrier(); + + if (unlikely(nesting > 4)) { + WARN_ON_ONCE(1); + per_cpu(lib_ring_buffer_nesting, cpu)--; + rcu_read_unlock_sched_notrace(); + return -EPERM; + } else + return cpu; +} + +/** + * lib_ring_buffer_put_cpu - Follows ring buffer reserve/commit. + */ +static inline +void lib_ring_buffer_put_cpu(const struct lib_ring_buffer_config *config) +{ + barrier(); + __get_cpu_var(lib_ring_buffer_nesting)--; + rcu_read_unlock_sched_notrace(); +} + +/* + * lib_ring_buffer_try_reserve is called by lib_ring_buffer_reserve(). It is not + * part of the API per se. + * + * returns 0 if reserve ok, or 1 if the slow path must be taken. + */ +static inline +int lib_ring_buffer_try_reserve(const struct lib_ring_buffer_config *config, + struct lib_ring_buffer_ctx *ctx, + unsigned long *o_begin, unsigned long *o_end, + unsigned long *o_old, size_t *before_hdr_pad) +{ + struct channel *chan = ctx->chan; + struct lib_ring_buffer *buf = ctx->buf; + *o_begin = v_read(config, &buf->offset); + *o_old = *o_begin; + + ctx->tsc = lib_ring_buffer_clock_read(chan); + if ((int64_t) ctx->tsc == -EIO) + return 1; + + /* + * Prefetch cacheline for read because we have to read the previous + * commit counter to increment it and commit seq value to compare it to + * the commit counter. + */ + prefetch(&buf->commit_hot[subbuf_index(*o_begin, chan)]); + + if (last_tsc_overflow(config, buf, ctx->tsc)) + ctx->rflags |= RING_BUFFER_RFLAG_FULL_TSC; + + if (unlikely(subbuf_offset(*o_begin, chan) == 0)) + return 1; + + ctx->slot_size = record_header_size(config, chan, *o_begin, + before_hdr_pad, ctx); + ctx->slot_size += + lib_ring_buffer_align(*o_begin + ctx->slot_size, + ctx->largest_align) + ctx->data_size; + if (unlikely((subbuf_offset(*o_begin, chan) + ctx->slot_size) + > chan->backend.subbuf_size)) + return 1; + + /* + * Record fits in the current buffer and we are not on a switch + * boundary. It's safe to write. + */ + *o_end = *o_begin + ctx->slot_size; + + if (unlikely((subbuf_offset(*o_end, chan)) == 0)) + /* + * The offset_end will fall at the very beginning of the next + * subbuffer. + */ + return 1; + + return 0; +} + +/** + * lib_ring_buffer_reserve - Reserve space in a ring buffer. + * @config: ring buffer instance configuration. + * @ctx: ring buffer context. (input and output) Must be already initialized. + * + * Atomic wait-free slot reservation. The reserved space starts at the context + * "pre_offset". Its length is "slot_size". The associated time-stamp is "tsc". + * + * Return : + * 0 on success. + * -EAGAIN if channel is disabled. + * -ENOSPC if event size is too large for packet. + * -ENOBUFS if there is currently not enough space in buffer for the event. + * -EIO if data cannot be written into the buffer for any other reason. + */ + +static inline +int lib_ring_buffer_reserve(const struct lib_ring_buffer_config *config, + struct lib_ring_buffer_ctx *ctx) +{ + struct channel *chan = ctx->chan; + struct lib_ring_buffer *buf; + unsigned long o_begin, o_end, o_old; + size_t before_hdr_pad = 0; + + if (atomic_read(&chan->record_disabled)) + return -EAGAIN; + + if (config->alloc == RING_BUFFER_ALLOC_PER_CPU) + buf = per_cpu_ptr(chan->backend.buf, ctx->cpu); + else + buf = chan->backend.buf; + if (atomic_read(&buf->record_disabled)) + return -EAGAIN; + ctx->buf = buf; + + /* + * Perform retryable operations. + */ + if (unlikely(lib_ring_buffer_try_reserve(config, ctx, &o_begin, + &o_end, &o_old, &before_hdr_pad))) + goto slow_path; + + if (unlikely(v_cmpxchg(config, &ctx->buf->offset, o_old, o_end) + != o_old)) + goto slow_path; + + /* + * Atomically update last_tsc. This update races against concurrent + * atomic updates, but the race will always cause supplementary full TSC + * record headers, never the opposite (missing a full TSC record header + * when it would be needed). + */ + save_last_tsc(config, ctx->buf, ctx->tsc); + + /* + * Push the reader if necessary + */ + lib_ring_buffer_reserve_push_reader(ctx->buf, chan, o_end - 1); + + /* + * Clear noref flag for this subbuffer. + */ + lib_ring_buffer_clear_noref(config, &ctx->buf->backend, + subbuf_index(o_end - 1, chan)); + + ctx->pre_offset = o_begin; + ctx->buf_offset = o_begin + before_hdr_pad; + return 0; +slow_path: + return lib_ring_buffer_reserve_slow(ctx); +} + +/** + * lib_ring_buffer_switch - Perform a sub-buffer switch for a per-cpu buffer. + * @config: ring buffer instance configuration. + * @buf: buffer + * @mode: buffer switch mode (SWITCH_ACTIVE or SWITCH_FLUSH) + * + * This operation is completely reentrant : can be called while tracing is + * active with absolutely no lock held. + * + * Note, however, that as a v_cmpxchg is used for some atomic operations and + * requires to be executed locally for per-CPU buffers, this function must be + * called from the CPU which owns the buffer for a ACTIVE flush, with preemption + * disabled, for RING_BUFFER_SYNC_PER_CPU configuration. + */ +static inline +void lib_ring_buffer_switch(const struct lib_ring_buffer_config *config, + struct lib_ring_buffer *buf, enum switch_mode mode) +{ + lib_ring_buffer_switch_slow(buf, mode); +} + +/* See ring_buffer_frontend_api.h for lib_ring_buffer_reserve(). */ + +/** + * lib_ring_buffer_commit - Commit an record. + * @config: ring buffer instance configuration. + * @ctx: ring buffer context. (input arguments only) + * + * Atomic unordered slot commit. Increments the commit count in the + * specified sub-buffer, and delivers it if necessary. + */ +static inline +void lib_ring_buffer_commit(const struct lib_ring_buffer_config *config, + const struct lib_ring_buffer_ctx *ctx) +{ + struct channel *chan = ctx->chan; + struct lib_ring_buffer *buf = ctx->buf; + unsigned long offset_end = ctx->buf_offset; + unsigned long endidx = subbuf_index(offset_end - 1, chan); + unsigned long commit_count; + + /* + * Must count record before incrementing the commit count. + */ + subbuffer_count_record(config, &buf->backend, endidx); + + /* + * Order all writes to buffer before the commit count update that will + * determine that the subbuffer is full. + */ + if (config->ipi == RING_BUFFER_IPI_BARRIER) { + /* + * Must write slot data before incrementing commit count. This + * compiler barrier is upgraded into a smp_mb() by the IPI sent + * by get_subbuf(). + */ + barrier(); + } else + smp_wmb(); + + v_add(config, ctx->slot_size, &buf->commit_hot[endidx].cc); + + /* + * commit count read can race with concurrent OOO commit count updates. + * This is only needed for lib_ring_buffer_check_deliver (for + * non-polling delivery only) and for + * lib_ring_buffer_write_commit_counter. The race can only cause the + * counter to be read with the same value more than once, which could + * cause : + * - Multiple delivery for the same sub-buffer (which is handled + * gracefully by the reader code) if the value is for a full + * sub-buffer. It's important that we can never miss a sub-buffer + * delivery. Re-reading the value after the v_add ensures this. + * - Reading a commit_count with a higher value that what was actually + * added to it for the lib_ring_buffer_write_commit_counter call + * (again caused by a concurrent committer). It does not matter, + * because this function is interested in the fact that the commit + * count reaches back the reserve offset for a specific sub-buffer, + * which is completely independent of the order. + */ + commit_count = v_read(config, &buf->commit_hot[endidx].cc); + + lib_ring_buffer_check_deliver(config, buf, chan, offset_end - 1, + commit_count, endidx); + /* + * Update used size at each commit. It's needed only for extracting + * ring_buffer buffers from vmcore, after crash. + */ + lib_ring_buffer_write_commit_counter(config, buf, chan, endidx, + ctx->buf_offset, commit_count, + ctx->slot_size); +} + +/** + * lib_ring_buffer_try_discard_reserve - Try discarding a record. + * @config: ring buffer instance configuration. + * @ctx: ring buffer context. (input arguments only) + * + * Only succeeds if no other record has been written after the record to + * discard. If discard fails, the record must be committed to the buffer. + * + * Returns 0 upon success, -EPERM if the record cannot be discarded. + */ +static inline +int lib_ring_buffer_try_discard_reserve(const struct lib_ring_buffer_config *config, + const struct lib_ring_buffer_ctx *ctx) +{ + struct lib_ring_buffer *buf = ctx->buf; + unsigned long end_offset = ctx->pre_offset + ctx->slot_size; + + /* + * We need to ensure that if the cmpxchg succeeds and discards the + * record, the next record will record a full TSC, because it cannot + * rely on the last_tsc associated with the discarded record to detect + * overflows. The only way to ensure this is to set the last_tsc to 0 + * (assuming no 64-bit TSC overflow), which forces to write a 64-bit + * timestamp in the next record. + * + * Note: if discard fails, we must leave the TSC in the record header. + * It is needed to keep track of TSC overflows for the following + * records. + */ + save_last_tsc(config, buf, 0ULL); + + if (likely(v_cmpxchg(config, &buf->offset, end_offset, ctx->pre_offset) + != end_offset)) + return -EPERM; + else + return 0; +} + +static inline +void channel_record_disable(const struct lib_ring_buffer_config *config, + struct channel *chan) +{ + atomic_inc(&chan->record_disabled); +} + +static inline +void channel_record_enable(const struct lib_ring_buffer_config *config, + struct channel *chan) +{ + atomic_dec(&chan->record_disabled); +} + +static inline +void lib_ring_buffer_record_disable(const struct lib_ring_buffer_config *config, + struct lib_ring_buffer *buf) +{ + atomic_inc(&buf->record_disabled); +} + +static inline +void lib_ring_buffer_record_enable(const struct lib_ring_buffer_config *config, + struct lib_ring_buffer *buf) +{ + atomic_dec(&buf->record_disabled); +} + +#endif /* _LIB_RING_BUFFER_FRONTEND_API_H */ --- linux-3.11.0.orig/ubuntu/lttng-modules/lib/ringbuffer/vfs.h +++ linux-3.11.0/ubuntu/lttng-modules/lib/ringbuffer/vfs.h @@ -0,0 +1,150 @@ +#ifndef _LIB_RING_BUFFER_VFS_H +#define _LIB_RING_BUFFER_VFS_H + +/* + * lib/ringbuffer/vfs.h + * + * Wait-free ring buffer VFS file operations. + * + * Copyright (C) 2005-2012 Mathieu Desnoyers + * + * 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; only + * version 2.1 of the License. + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + * + * Author: + * Mathieu Desnoyers + */ + +#include +#include + +/* VFS API */ + +extern const struct file_operations lib_ring_buffer_file_operations; + +/* + * Internal file operations. + */ + +struct lib_ring_buffer; + +int lib_ring_buffer_open(struct inode *inode, struct file *file, + struct lib_ring_buffer *buf); +int lib_ring_buffer_release(struct inode *inode, struct file *file, + struct lib_ring_buffer *buf); +unsigned int lib_ring_buffer_poll(struct file *filp, poll_table *wait, + struct lib_ring_buffer *buf); +ssize_t lib_ring_buffer_splice_read(struct file *in, loff_t *ppos, + struct pipe_inode_info *pipe, size_t len, + unsigned int flags, struct lib_ring_buffer *buf); +int lib_ring_buffer_mmap(struct file *filp, struct vm_area_struct *vma, + struct lib_ring_buffer *buf); + +/* Ring Buffer ioctl() and ioctl numbers */ +long lib_ring_buffer_ioctl(struct file *filp, unsigned int cmd, + unsigned long arg, struct lib_ring_buffer *buf); +#ifdef CONFIG_COMPAT +long lib_ring_buffer_compat_ioctl(struct file *filp, unsigned int cmd, + unsigned long arg, struct lib_ring_buffer *buf); +#endif + +ssize_t vfs_lib_ring_buffer_file_splice_read(struct file *in, loff_t *ppos, + struct pipe_inode_info *pipe, size_t len, unsigned int flags); +loff_t vfs_lib_ring_buffer_no_llseek(struct file *file, loff_t offset, + int origin); +int vfs_lib_ring_buffer_mmap(struct file *filp, struct vm_area_struct *vma); +ssize_t vfs_lib_ring_buffer_splice_read(struct file *in, loff_t *ppos, + struct pipe_inode_info *pipe, size_t len, + unsigned int flags); + +/* + * Use RING_BUFFER_GET_NEXT_SUBBUF / RING_BUFFER_PUT_NEXT_SUBBUF to read and + * consume sub-buffers sequentially. + * + * Reading sub-buffers without consuming them can be performed with: + * + * RING_BUFFER_SNAPSHOT + * RING_BUFFER_SNAPSHOT_GET_CONSUMED + * RING_BUFFER_SNAPSHOT_GET_PRODUCED + * + * to get the offset range to consume, and then by passing each sub-buffer + * offset to RING_BUFFER_GET_SUBBUF, read the sub-buffer, and then release it + * with RING_BUFFER_PUT_SUBBUF. + * + * Note that the "snapshot" API can be used to read the sub-buffer in reverse + * order, which is useful for flight recorder snapshots. + */ + +/* Get a snapshot of the current ring buffer producer and consumer positions */ +#define RING_BUFFER_SNAPSHOT _IO(0xF6, 0x00) +/* Get the consumer position (iteration start) */ +#define RING_BUFFER_SNAPSHOT_GET_CONSUMED _IOR(0xF6, 0x01, unsigned long) +/* Get the producer position (iteration end) */ +#define RING_BUFFER_SNAPSHOT_GET_PRODUCED _IOR(0xF6, 0x02, unsigned long) +/* Get exclusive read access to the specified sub-buffer position */ +#define RING_BUFFER_GET_SUBBUF _IOW(0xF6, 0x03, unsigned long) +/* Release exclusive sub-buffer access */ +#define RING_BUFFER_PUT_SUBBUF _IO(0xF6, 0x04) + +/* Get exclusive read access to the next sub-buffer that can be read. */ +#define RING_BUFFER_GET_NEXT_SUBBUF _IO(0xF6, 0x05) +/* Release exclusive sub-buffer access, move consumer forward. */ +#define RING_BUFFER_PUT_NEXT_SUBBUF _IO(0xF6, 0x06) +/* returns the size of the current sub-buffer, without padding (for mmap). */ +#define RING_BUFFER_GET_SUBBUF_SIZE _IOR(0xF6, 0x07, unsigned long) +/* returns the size of the current sub-buffer, with padding (for splice). */ +#define RING_BUFFER_GET_PADDED_SUBBUF_SIZE _IOR(0xF6, 0x08, unsigned long) +/* returns the maximum size for sub-buffers. */ +#define RING_BUFFER_GET_MAX_SUBBUF_SIZE _IOR(0xF6, 0x09, unsigned long) +/* returns the length to mmap. */ +#define RING_BUFFER_GET_MMAP_LEN _IOR(0xF6, 0x0A, unsigned long) +/* returns the offset of the subbuffer belonging to the mmap reader. */ +#define RING_BUFFER_GET_MMAP_READ_OFFSET _IOR(0xF6, 0x0B, unsigned long) +/* flush the current sub-buffer */ +#define RING_BUFFER_FLUSH _IO(0xF6, 0x0C) + +#ifdef CONFIG_COMPAT +/* Get a snapshot of the current ring buffer producer and consumer positions */ +#define RING_BUFFER_COMPAT_SNAPSHOT RING_BUFFER_SNAPSHOT +/* Get the consumer position (iteration start) */ +#define RING_BUFFER_COMPAT_SNAPSHOT_GET_CONSUMED \ + _IOR(0xF6, 0x01, compat_ulong_t) +/* Get the producer position (iteration end) */ +#define RING_BUFFER_COMPAT_SNAPSHOT_GET_PRODUCED \ + _IOR(0xF6, 0x02, compat_ulong_t) +/* Get exclusive read access to the specified sub-buffer position */ +#define RING_BUFFER_COMPAT_GET_SUBBUF _IOW(0xF6, 0x03, compat_ulong_t) +/* Release exclusive sub-buffer access */ +#define RING_BUFFER_COMPAT_PUT_SUBBUF RING_BUFFER_PUT_SUBBUF + +/* Get exclusive read access to the next sub-buffer that can be read. */ +#define RING_BUFFER_COMPAT_GET_NEXT_SUBBUF RING_BUFFER_GET_NEXT_SUBBUF +/* Release exclusive sub-buffer access, move consumer forward. */ +#define RING_BUFFER_COMPAT_PUT_NEXT_SUBBUF RING_BUFFER_PUT_NEXT_SUBBUF +/* returns the size of the current sub-buffer, without padding (for mmap). */ +#define RING_BUFFER_COMPAT_GET_SUBBUF_SIZE _IOR(0xF6, 0x07, compat_ulong_t) +/* returns the size of the current sub-buffer, with padding (for splice). */ +#define RING_BUFFER_COMPAT_GET_PADDED_SUBBUF_SIZE \ + _IOR(0xF6, 0x08, compat_ulong_t) +/* returns the maximum size for sub-buffers. */ +#define RING_BUFFER_COMPAT_GET_MAX_SUBBUF_SIZE _IOR(0xF6, 0x09, compat_ulong_t) +/* returns the length to mmap. */ +#define RING_BUFFER_COMPAT_GET_MMAP_LEN _IOR(0xF6, 0x0A, compat_ulong_t) +/* returns the offset of the subbuffer belonging to the mmap reader. */ +#define RING_BUFFER_COMPAT_GET_MMAP_READ_OFFSET _IOR(0xF6, 0x0B, compat_ulong_t) +/* flush the current sub-buffer */ +#define RING_BUFFER_COMPAT_FLUSH RING_BUFFER_FLUSH +#endif /* CONFIG_COMPAT */ + +#endif /* _LIB_RING_BUFFER_VFS_H */ --- linux-3.11.0.orig/ubuntu/lttng-modules/lib/ringbuffer/frontend_internal.h +++ linux-3.11.0/ubuntu/lttng-modules/lib/ringbuffer/frontend_internal.h @@ -0,0 +1,450 @@ +#ifndef _LIB_RING_BUFFER_FRONTEND_INTERNAL_H +#define _LIB_RING_BUFFER_FRONTEND_INTERNAL_H + +/* + * linux/ringbuffer/frontend_internal.h + * + * Ring Buffer Library Synchronization Header (internal helpers). + * + * Copyright (C) 2005-2012 Mathieu Desnoyers + * + * 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; only + * version 2.1 of the License. + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + * + * Author: + * Mathieu Desnoyers + * + * See ring_buffer_frontend.c for more information on wait-free algorithms. + */ + +#include "../../wrapper/ringbuffer/config.h" +#include "../../wrapper/ringbuffer/backend_types.h" +#include "../../wrapper/ringbuffer/frontend_types.h" +#include "../../lib/prio_heap/lttng_prio_heap.h" /* For per-CPU read-side iterator */ + +/* Buffer offset macros */ + +/* buf_trunc mask selects only the buffer number. */ +static inline +unsigned long buf_trunc(unsigned long offset, struct channel *chan) +{ + return offset & ~(chan->backend.buf_size - 1); + +} + +/* Select the buffer number value (counter). */ +static inline +unsigned long buf_trunc_val(unsigned long offset, struct channel *chan) +{ + return buf_trunc(offset, chan) >> chan->backend.buf_size_order; +} + +/* buf_offset mask selects only the offset within the current buffer. */ +static inline +unsigned long buf_offset(unsigned long offset, struct channel *chan) +{ + return offset & (chan->backend.buf_size - 1); +} + +/* subbuf_offset mask selects the offset within the current subbuffer. */ +static inline +unsigned long subbuf_offset(unsigned long offset, struct channel *chan) +{ + return offset & (chan->backend.subbuf_size - 1); +} + +/* subbuf_trunc mask selects the subbuffer number. */ +static inline +unsigned long subbuf_trunc(unsigned long offset, struct channel *chan) +{ + return offset & ~(chan->backend.subbuf_size - 1); +} + +/* subbuf_align aligns the offset to the next subbuffer. */ +static inline +unsigned long subbuf_align(unsigned long offset, struct channel *chan) +{ + return (offset + chan->backend.subbuf_size) + & ~(chan->backend.subbuf_size - 1); +} + +/* subbuf_index returns the index of the current subbuffer within the buffer. */ +static inline +unsigned long subbuf_index(unsigned long offset, struct channel *chan) +{ + return buf_offset(offset, chan) >> chan->backend.subbuf_size_order; +} + +/* + * Last TSC comparison functions. Check if the current TSC overflows tsc_bits + * bits from the last TSC read. When overflows are detected, the full 64-bit + * timestamp counter should be written in the record header. Reads and writes + * last_tsc atomically. + */ + +#if (BITS_PER_LONG == 32) +static inline +void save_last_tsc(const struct lib_ring_buffer_config *config, + struct lib_ring_buffer *buf, u64 tsc) +{ + if (config->tsc_bits == 0 || config->tsc_bits == 64) + return; + + /* + * Ensure the compiler performs this update in a single instruction. + */ + v_set(config, &buf->last_tsc, (unsigned long)(tsc >> config->tsc_bits)); +} + +static inline +int last_tsc_overflow(const struct lib_ring_buffer_config *config, + struct lib_ring_buffer *buf, u64 tsc) +{ + unsigned long tsc_shifted; + + if (config->tsc_bits == 0 || config->tsc_bits == 64) + return 0; + + tsc_shifted = (unsigned long)(tsc >> config->tsc_bits); + if (unlikely(tsc_shifted + - (unsigned long)v_read(config, &buf->last_tsc))) + return 1; + else + return 0; +} +#else +static inline +void save_last_tsc(const struct lib_ring_buffer_config *config, + struct lib_ring_buffer *buf, u64 tsc) +{ + if (config->tsc_bits == 0 || config->tsc_bits == 64) + return; + + v_set(config, &buf->last_tsc, (unsigned long)tsc); +} + +static inline +int last_tsc_overflow(const struct lib_ring_buffer_config *config, + struct lib_ring_buffer *buf, u64 tsc) +{ + if (config->tsc_bits == 0 || config->tsc_bits == 64) + return 0; + + if (unlikely((tsc - v_read(config, &buf->last_tsc)) + >> config->tsc_bits)) + return 1; + else + return 0; +} +#endif + +extern +int lib_ring_buffer_reserve_slow(struct lib_ring_buffer_ctx *ctx); + +extern +void lib_ring_buffer_switch_slow(struct lib_ring_buffer *buf, + enum switch_mode mode); + +extern +void lib_ring_buffer_switch_remote(struct lib_ring_buffer *buf); + +/* Buffer write helpers */ + +static inline +void lib_ring_buffer_reserve_push_reader(struct lib_ring_buffer *buf, + struct channel *chan, + unsigned long offset) +{ + unsigned long consumed_old, consumed_new; + + do { + consumed_old = atomic_long_read(&buf->consumed); + /* + * If buffer is in overwrite mode, push the reader consumed + * count if the write position has reached it and we are not + * at the first iteration (don't push the reader farther than + * the writer). This operation can be done concurrently by many + * writers in the same buffer, the writer being at the farthest + * write position sub-buffer index in the buffer being the one + * which will win this loop. + */ + if (unlikely(subbuf_trunc(offset, chan) + - subbuf_trunc(consumed_old, chan) + >= chan->backend.buf_size)) + consumed_new = subbuf_align(consumed_old, chan); + else + return; + } while (unlikely(atomic_long_cmpxchg(&buf->consumed, consumed_old, + consumed_new) != consumed_old)); +} + +static inline +void lib_ring_buffer_vmcore_check_deliver(const struct lib_ring_buffer_config *config, + struct lib_ring_buffer *buf, + unsigned long commit_count, + unsigned long idx) +{ + if (config->oops == RING_BUFFER_OOPS_CONSISTENCY) + v_set(config, &buf->commit_hot[idx].seq, commit_count); +} + +static inline +int lib_ring_buffer_poll_deliver(const struct lib_ring_buffer_config *config, + struct lib_ring_buffer *buf, + struct channel *chan) +{ + unsigned long consumed_old, consumed_idx, commit_count, write_offset; + + consumed_old = atomic_long_read(&buf->consumed); + consumed_idx = subbuf_index(consumed_old, chan); + commit_count = v_read(config, &buf->commit_cold[consumed_idx].cc_sb); + /* + * No memory barrier here, since we are only interested + * in a statistically correct polling result. The next poll will + * get the data is we are racing. The mb() that ensures correct + * memory order is in get_subbuf. + */ + write_offset = v_read(config, &buf->offset); + + /* + * Check that the subbuffer we are trying to consume has been + * already fully committed. + */ + + if (((commit_count - chan->backend.subbuf_size) + & chan->commit_count_mask) + - (buf_trunc(consumed_old, chan) + >> chan->backend.num_subbuf_order) + != 0) + return 0; + + /* + * Check that we are not about to read the same subbuffer in + * which the writer head is. + */ + if (subbuf_trunc(write_offset, chan) - subbuf_trunc(consumed_old, chan) + == 0) + return 0; + + return 1; + +} + +static inline +int lib_ring_buffer_pending_data(const struct lib_ring_buffer_config *config, + struct lib_ring_buffer *buf, + struct channel *chan) +{ + return !!subbuf_offset(v_read(config, &buf->offset), chan); +} + +static inline +unsigned long lib_ring_buffer_get_data_size(const struct lib_ring_buffer_config *config, + struct lib_ring_buffer *buf, + unsigned long idx) +{ + return subbuffer_get_data_size(config, &buf->backend, idx); +} + +/* + * Check if all space reservation in a buffer have been committed. This helps + * knowing if an execution context is nested (for per-cpu buffers only). + * This is a very specific ftrace use-case, so we keep this as "internal" API. + */ +static inline +int lib_ring_buffer_reserve_committed(const struct lib_ring_buffer_config *config, + struct lib_ring_buffer *buf, + struct channel *chan) +{ + unsigned long offset, idx, commit_count; + + CHAN_WARN_ON(chan, config->alloc != RING_BUFFER_ALLOC_PER_CPU); + CHAN_WARN_ON(chan, config->sync != RING_BUFFER_SYNC_PER_CPU); + + /* + * Read offset and commit count in a loop so they are both read + * atomically wrt interrupts. By deal with interrupt concurrency by + * restarting both reads if the offset has been pushed. Note that given + * we only have to deal with interrupt concurrency here, an interrupt + * modifying the commit count will also modify "offset", so it is safe + * to only check for offset modifications. + */ + do { + offset = v_read(config, &buf->offset); + idx = subbuf_index(offset, chan); + commit_count = v_read(config, &buf->commit_hot[idx].cc); + } while (offset != v_read(config, &buf->offset)); + + return ((buf_trunc(offset, chan) >> chan->backend.num_subbuf_order) + - (commit_count & chan->commit_count_mask) == 0); +} + +static inline +void lib_ring_buffer_check_deliver(const struct lib_ring_buffer_config *config, + struct lib_ring_buffer *buf, + struct channel *chan, + unsigned long offset, + unsigned long commit_count, + unsigned long idx) +{ + unsigned long old_commit_count = commit_count + - chan->backend.subbuf_size; + u64 tsc; + + /* Check if all commits have been done */ + if (unlikely((buf_trunc(offset, chan) >> chan->backend.num_subbuf_order) + - (old_commit_count & chan->commit_count_mask) == 0)) { + /* + * If we succeeded at updating cc_sb below, we are the subbuffer + * writer delivering the subbuffer. Deals with concurrent + * updates of the "cc" value without adding a add_return atomic + * operation to the fast path. + * + * We are doing the delivery in two steps: + * - First, we cmpxchg() cc_sb to the new value + * old_commit_count + 1. This ensures that we are the only + * subbuffer user successfully filling the subbuffer, but we + * do _not_ set the cc_sb value to "commit_count" yet. + * Therefore, other writers that would wrap around the ring + * buffer and try to start writing to our subbuffer would + * have to drop records, because it would appear as + * non-filled. + * We therefore have exclusive access to the subbuffer control + * structures. This mutual exclusion with other writers is + * crucially important to perform record overruns count in + * flight recorder mode locklessly. + * - When we are ready to release the subbuffer (either for + * reading or for overrun by other writers), we simply set the + * cc_sb value to "commit_count" and perform delivery. + * + * The subbuffer size is least 2 bytes (minimum size: 1 page). + * This guarantees that old_commit_count + 1 != commit_count. + */ + + /* + * Order prior updates to reserve count prior to the + * commit_cold cc_sb update. + */ + smp_wmb(); + if (likely(v_cmpxchg(config, &buf->commit_cold[idx].cc_sb, + old_commit_count, old_commit_count + 1) + == old_commit_count)) { + /* + * Start of exclusive subbuffer access. We are + * guaranteed to be the last writer in this subbuffer + * and any other writer trying to access this subbuffer + * in this state is required to drop records. + */ + tsc = config->cb.ring_buffer_clock_read(chan); + v_add(config, + subbuffer_get_records_count(config, + &buf->backend, idx), + &buf->records_count); + v_add(config, + subbuffer_count_records_overrun(config, + &buf->backend, + idx), + &buf->records_overrun); + config->cb.buffer_end(buf, tsc, idx, + lib_ring_buffer_get_data_size(config, + buf, + idx)); + + /* + * Set noref flag and offset for this subbuffer id. + * Contains a memory barrier that ensures counter stores + * are ordered before set noref and offset. + */ + lib_ring_buffer_set_noref_offset(config, &buf->backend, idx, + buf_trunc_val(offset, chan)); + + /* + * Order set_noref and record counter updates before the + * end of subbuffer exclusive access. Orders with + * respect to writers coming into the subbuffer after + * wrap around, and also order wrt concurrent readers. + */ + smp_mb(); + /* End of exclusive subbuffer access */ + v_set(config, &buf->commit_cold[idx].cc_sb, + commit_count); + /* + * Order later updates to reserve count after + * the commit_cold cc_sb update. + */ + smp_wmb(); + lib_ring_buffer_vmcore_check_deliver(config, buf, + commit_count, idx); + + /* + * RING_BUFFER_WAKEUP_BY_WRITER wakeup is not lock-free. + */ + if (config->wakeup == RING_BUFFER_WAKEUP_BY_WRITER + && atomic_long_read(&buf->active_readers) + && lib_ring_buffer_poll_deliver(config, buf, chan)) { + wake_up_interruptible(&buf->read_wait); + wake_up_interruptible(&chan->read_wait); + } + + } + } +} + +/* + * lib_ring_buffer_write_commit_counter + * + * For flight recording. must be called after commit. + * This function increments the subbuffer's commit_seq counter each time the + * commit count reaches back the reserve offset (modulo subbuffer size). It is + * useful for crash dump. + */ +static inline +void lib_ring_buffer_write_commit_counter(const struct lib_ring_buffer_config *config, + struct lib_ring_buffer *buf, + struct channel *chan, + unsigned long idx, + unsigned long buf_offset, + unsigned long commit_count, + size_t slot_size) +{ + unsigned long offset, commit_seq_old; + + if (config->oops != RING_BUFFER_OOPS_CONSISTENCY) + return; + + offset = buf_offset + slot_size; + + /* + * subbuf_offset includes commit_count_mask. We can simply + * compare the offsets within the subbuffer without caring about + * buffer full/empty mismatch because offset is never zero here + * (subbuffer header and record headers have non-zero length). + */ + if (unlikely(subbuf_offset(offset - commit_count, chan))) + return; + + commit_seq_old = v_read(config, &buf->commit_hot[idx].seq); + while ((long) (commit_seq_old - commit_count) < 0) + commit_seq_old = v_cmpxchg(config, &buf->commit_hot[idx].seq, + commit_seq_old, commit_count); +} + +extern int lib_ring_buffer_create(struct lib_ring_buffer *buf, + struct channel_backend *chanb, int cpu); +extern void lib_ring_buffer_free(struct lib_ring_buffer *buf); + +/* Keep track of trap nesting inside ring buffer code */ +DECLARE_PER_CPU(unsigned int, lib_ring_buffer_nesting); + +#endif /* _LIB_RING_BUFFER_FRONTEND_INTERNAL_H */ --- linux-3.11.0.orig/ubuntu/lttng-modules/lib/ringbuffer/ring_buffer_backend.c +++ linux-3.11.0/ubuntu/lttng-modules/lib/ringbuffer/ring_buffer_backend.c @@ -0,0 +1,869 @@ +/* + * ring_buffer_backend.c + * + * Copyright (C) 2005-2012 Mathieu Desnoyers + * + * 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; only + * version 2.1 of the License. + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include "../../wrapper/vmalloc.h" /* for wrapper_vmalloc_sync_all() */ +#include "../../wrapper/ringbuffer/config.h" +#include "../../wrapper/ringbuffer/backend.h" +#include "../../wrapper/ringbuffer/frontend.h" + +/** + * lib_ring_buffer_backend_allocate - allocate a channel buffer + * @config: ring buffer instance configuration + * @buf: the buffer struct + * @size: total size of the buffer + * @num_subbuf: number of subbuffers + * @extra_reader_sb: need extra subbuffer for reader + */ +static +int lib_ring_buffer_backend_allocate(const struct lib_ring_buffer_config *config, + struct lib_ring_buffer_backend *bufb, + size_t size, size_t num_subbuf, + int extra_reader_sb) +{ + struct channel_backend *chanb = &bufb->chan->backend; + unsigned long j, num_pages, num_pages_per_subbuf, page_idx = 0; + unsigned long subbuf_size, mmap_offset = 0; + unsigned long num_subbuf_alloc; + struct page **pages; + void **virt; + unsigned long i; + + num_pages = size >> PAGE_SHIFT; + num_pages_per_subbuf = num_pages >> get_count_order(num_subbuf); + subbuf_size = chanb->subbuf_size; + num_subbuf_alloc = num_subbuf; + + if (extra_reader_sb) { + num_pages += num_pages_per_subbuf; /* Add pages for reader */ + num_subbuf_alloc++; + } + + pages = kmalloc_node(ALIGN(sizeof(*pages) * num_pages, + 1 << INTERNODE_CACHE_SHIFT), + GFP_KERNEL, cpu_to_node(max(bufb->cpu, 0))); + if (unlikely(!pages)) + goto pages_error; + + virt = kmalloc_node(ALIGN(sizeof(*virt) * num_pages, + 1 << INTERNODE_CACHE_SHIFT), + GFP_KERNEL, cpu_to_node(max(bufb->cpu, 0))); + if (unlikely(!virt)) + goto virt_error; + + bufb->array = kmalloc_node(ALIGN(sizeof(*bufb->array) + * num_subbuf_alloc, + 1 << INTERNODE_CACHE_SHIFT), + GFP_KERNEL, cpu_to_node(max(bufb->cpu, 0))); + if (unlikely(!bufb->array)) + goto array_error; + + for (i = 0; i < num_pages; i++) { + pages[i] = alloc_pages_node(cpu_to_node(max(bufb->cpu, 0)), + GFP_KERNEL | __GFP_ZERO, 0); + if (unlikely(!pages[i])) + goto depopulate; + virt[i] = page_address(pages[i]); + } + bufb->num_pages_per_subbuf = num_pages_per_subbuf; + + /* Allocate backend pages array elements */ + for (i = 0; i < num_subbuf_alloc; i++) { + bufb->array[i] = + kzalloc_node(ALIGN( + sizeof(struct lib_ring_buffer_backend_pages) + + sizeof(struct lib_ring_buffer_backend_page) + * num_pages_per_subbuf, + 1 << INTERNODE_CACHE_SHIFT), + GFP_KERNEL, cpu_to_node(max(bufb->cpu, 0))); + if (!bufb->array[i]) + goto free_array; + } + + /* Allocate write-side subbuffer table */ + bufb->buf_wsb = kzalloc_node(ALIGN( + sizeof(struct lib_ring_buffer_backend_subbuffer) + * num_subbuf, + 1 << INTERNODE_CACHE_SHIFT), + GFP_KERNEL, cpu_to_node(max(bufb->cpu, 0))); + if (unlikely(!bufb->buf_wsb)) + goto free_array; + + for (i = 0; i < num_subbuf; i++) + bufb->buf_wsb[i].id = subbuffer_id(config, 0, 1, i); + + /* Assign read-side subbuffer table */ + if (extra_reader_sb) + bufb->buf_rsb.id = subbuffer_id(config, 0, 1, + num_subbuf_alloc - 1); + else + bufb->buf_rsb.id = subbuffer_id(config, 0, 1, 0); + + /* Assign pages to page index */ + for (i = 0; i < num_subbuf_alloc; i++) { + for (j = 0; j < num_pages_per_subbuf; j++) { + CHAN_WARN_ON(chanb, page_idx > num_pages); + bufb->array[i]->p[j].virt = virt[page_idx]; + bufb->array[i]->p[j].page = pages[page_idx]; + page_idx++; + } + if (config->output == RING_BUFFER_MMAP) { + bufb->array[i]->mmap_offset = mmap_offset; + mmap_offset += subbuf_size; + } + } + + /* + * If kmalloc ever uses vmalloc underneath, make sure the buffer pages + * will not fault. + */ + wrapper_vmalloc_sync_all(); + kfree(virt); + kfree(pages); + return 0; + +free_array: + for (i = 0; (i < num_subbuf_alloc && bufb->array[i]); i++) + kfree(bufb->array[i]); +depopulate: + /* Free all allocated pages */ + for (i = 0; (i < num_pages && pages[i]); i++) + __free_page(pages[i]); + kfree(bufb->array); +array_error: + kfree(virt); +virt_error: + kfree(pages); +pages_error: + return -ENOMEM; +} + +int lib_ring_buffer_backend_create(struct lib_ring_buffer_backend *bufb, + struct channel_backend *chanb, int cpu) +{ + const struct lib_ring_buffer_config *config = &chanb->config; + + bufb->chan = container_of(chanb, struct channel, backend); + bufb->cpu = cpu; + + return lib_ring_buffer_backend_allocate(config, bufb, chanb->buf_size, + chanb->num_subbuf, + chanb->extra_reader_sb); +} + +void lib_ring_buffer_backend_free(struct lib_ring_buffer_backend *bufb) +{ + struct channel_backend *chanb = &bufb->chan->backend; + unsigned long i, j, num_subbuf_alloc; + + num_subbuf_alloc = chanb->num_subbuf; + if (chanb->extra_reader_sb) + num_subbuf_alloc++; + + kfree(bufb->buf_wsb); + for (i = 0; i < num_subbuf_alloc; i++) { + for (j = 0; j < bufb->num_pages_per_subbuf; j++) + __free_page(bufb->array[i]->p[j].page); + kfree(bufb->array[i]); + } + kfree(bufb->array); + bufb->allocated = 0; +} + +void lib_ring_buffer_backend_reset(struct lib_ring_buffer_backend *bufb) +{ + struct channel_backend *chanb = &bufb->chan->backend; + const struct lib_ring_buffer_config *config = &chanb->config; + unsigned long num_subbuf_alloc; + unsigned int i; + + num_subbuf_alloc = chanb->num_subbuf; + if (chanb->extra_reader_sb) + num_subbuf_alloc++; + + for (i = 0; i < chanb->num_subbuf; i++) + bufb->buf_wsb[i].id = subbuffer_id(config, 0, 1, i); + if (chanb->extra_reader_sb) + bufb->buf_rsb.id = subbuffer_id(config, 0, 1, + num_subbuf_alloc - 1); + else + bufb->buf_rsb.id = subbuffer_id(config, 0, 1, 0); + + for (i = 0; i < num_subbuf_alloc; i++) { + /* Don't reset mmap_offset */ + v_set(config, &bufb->array[i]->records_commit, 0); + v_set(config, &bufb->array[i]->records_unread, 0); + bufb->array[i]->data_size = 0; + /* Don't reset backend page and virt addresses */ + } + /* Don't reset num_pages_per_subbuf, cpu, allocated */ + v_set(config, &bufb->records_read, 0); +} + +/* + * The frontend is responsible for also calling ring_buffer_backend_reset for + * each buffer when calling channel_backend_reset. + */ +void channel_backend_reset(struct channel_backend *chanb) +{ + struct channel *chan = container_of(chanb, struct channel, backend); + const struct lib_ring_buffer_config *config = &chanb->config; + + /* + * Don't reset buf_size, subbuf_size, subbuf_size_order, + * num_subbuf_order, buf_size_order, extra_reader_sb, num_subbuf, + * priv, notifiers, config, cpumask and name. + */ + chanb->start_tsc = config->cb.ring_buffer_clock_read(chan); +} + +#ifdef CONFIG_HOTPLUG_CPU +/** + * lib_ring_buffer_cpu_hp_callback - CPU hotplug callback + * @nb: notifier block + * @action: hotplug action to take + * @hcpu: CPU number + * + * Returns the success/failure of the operation. (%NOTIFY_OK, %NOTIFY_BAD) + */ +static +int lib_ring_buffer_cpu_hp_callback(struct notifier_block *nb, + unsigned long action, + void *hcpu) +{ + unsigned int cpu = (unsigned long)hcpu; + struct channel_backend *chanb = container_of(nb, struct channel_backend, + cpu_hp_notifier); + const struct lib_ring_buffer_config *config = &chanb->config; + struct lib_ring_buffer *buf; + int ret; + + CHAN_WARN_ON(chanb, config->alloc == RING_BUFFER_ALLOC_GLOBAL); + + switch (action) { + case CPU_UP_PREPARE: + case CPU_UP_PREPARE_FROZEN: + buf = per_cpu_ptr(chanb->buf, cpu); + ret = lib_ring_buffer_create(buf, chanb, cpu); + if (ret) { + printk(KERN_ERR + "ring_buffer_cpu_hp_callback: cpu %d " + "buffer creation failed\n", cpu); + return NOTIFY_BAD; + } + break; + case CPU_DEAD: + case CPU_DEAD_FROZEN: + /* No need to do a buffer switch here, because it will happen + * when tracing is stopped, or will be done by switch timer CPU + * DEAD callback. */ + break; + } + return NOTIFY_OK; +} +#endif + +/** + * channel_backend_init - initialize a channel backend + * @chanb: channel backend + * @name: channel name + * @config: client ring buffer configuration + * @priv: client private data + * @parent: dentry of parent directory, %NULL for root directory + * @subbuf_size: size of sub-buffers (> PAGE_SIZE, power of 2) + * @num_subbuf: number of sub-buffers (power of 2) + * + * Returns channel pointer if successful, %NULL otherwise. + * + * Creates per-cpu channel buffers using the sizes and attributes + * specified. The created channel buffer files will be named + * name_0...name_N-1. File permissions will be %S_IRUSR. + * + * Called with CPU hotplug disabled. + */ +int channel_backend_init(struct channel_backend *chanb, + const char *name, + const struct lib_ring_buffer_config *config, + void *priv, size_t subbuf_size, size_t num_subbuf) +{ + struct channel *chan = container_of(chanb, struct channel, backend); + unsigned int i; + int ret; + + if (!name) + return -EPERM; + + /* Check that the subbuffer size is larger than a page. */ + if (subbuf_size < PAGE_SIZE) + return -EINVAL; + + /* + * Make sure the number of subbuffers and subbuffer size are + * power of 2 and nonzero. + */ + if (!subbuf_size || (subbuf_size & (subbuf_size - 1))) + return -EINVAL; + if (!num_subbuf || (num_subbuf & (num_subbuf - 1))) + return -EINVAL; + + ret = subbuffer_id_check_index(config, num_subbuf); + if (ret) + return ret; + + chanb->priv = priv; + chanb->buf_size = num_subbuf * subbuf_size; + chanb->subbuf_size = subbuf_size; + chanb->buf_size_order = get_count_order(chanb->buf_size); + chanb->subbuf_size_order = get_count_order(subbuf_size); + chanb->num_subbuf_order = get_count_order(num_subbuf); + chanb->extra_reader_sb = + (config->mode == RING_BUFFER_OVERWRITE) ? 1 : 0; + chanb->num_subbuf = num_subbuf; + strlcpy(chanb->name, name, NAME_MAX); + memcpy(&chanb->config, config, sizeof(chanb->config)); + + if (config->alloc == RING_BUFFER_ALLOC_PER_CPU) { + if (!zalloc_cpumask_var(&chanb->cpumask, GFP_KERNEL)) + return -ENOMEM; + } + + if (config->alloc == RING_BUFFER_ALLOC_PER_CPU) { + /* Allocating the buffer per-cpu structures */ + chanb->buf = alloc_percpu(struct lib_ring_buffer); + if (!chanb->buf) + goto free_cpumask; + + /* + * In case of non-hotplug cpu, if the ring-buffer is allocated + * in early initcall, it will not be notified of secondary cpus. + * In that off case, we need to allocate for all possible cpus. + */ +#ifdef CONFIG_HOTPLUG_CPU + /* + * buf->backend.allocated test takes care of concurrent CPU + * hotplug. + * Priority higher than frontend, so we create the ring buffer + * before we start the timer. + */ + chanb->cpu_hp_notifier.notifier_call = + lib_ring_buffer_cpu_hp_callback; + chanb->cpu_hp_notifier.priority = 5; + register_hotcpu_notifier(&chanb->cpu_hp_notifier); + + get_online_cpus(); + for_each_online_cpu(i) { + ret = lib_ring_buffer_create(per_cpu_ptr(chanb->buf, i), + chanb, i); + if (ret) + goto free_bufs; /* cpu hotplug locked */ + } + put_online_cpus(); +#else + for_each_possible_cpu(i) { + ret = lib_ring_buffer_create(per_cpu_ptr(chanb->buf, i), + chanb, i); + if (ret) + goto free_bufs; /* cpu hotplug locked */ + } +#endif + } else { + chanb->buf = kzalloc(sizeof(struct lib_ring_buffer), GFP_KERNEL); + if (!chanb->buf) + goto free_cpumask; + ret = lib_ring_buffer_create(chanb->buf, chanb, -1); + if (ret) + goto free_bufs; + } + chanb->start_tsc = config->cb.ring_buffer_clock_read(chan); + + return 0; + +free_bufs: + if (config->alloc == RING_BUFFER_ALLOC_PER_CPU) { + for_each_possible_cpu(i) { + struct lib_ring_buffer *buf = per_cpu_ptr(chanb->buf, i); + + if (!buf->backend.allocated) + continue; + lib_ring_buffer_free(buf); + } +#ifdef CONFIG_HOTPLUG_CPU + put_online_cpus(); +#endif + free_percpu(chanb->buf); + } else + kfree(chanb->buf); +free_cpumask: + if (config->alloc == RING_BUFFER_ALLOC_PER_CPU) + free_cpumask_var(chanb->cpumask); + return -ENOMEM; +} + +/** + * channel_backend_unregister_notifiers - unregister notifiers + * @chan: the channel + * + * Holds CPU hotplug. + */ +void channel_backend_unregister_notifiers(struct channel_backend *chanb) +{ + const struct lib_ring_buffer_config *config = &chanb->config; + + if (config->alloc == RING_BUFFER_ALLOC_PER_CPU) + unregister_hotcpu_notifier(&chanb->cpu_hp_notifier); +} + +/** + * channel_backend_free - destroy the channel + * @chan: the channel + * + * Destroy all channel buffers and frees the channel. + */ +void channel_backend_free(struct channel_backend *chanb) +{ + const struct lib_ring_buffer_config *config = &chanb->config; + unsigned int i; + + if (config->alloc == RING_BUFFER_ALLOC_PER_CPU) { + for_each_possible_cpu(i) { + struct lib_ring_buffer *buf = per_cpu_ptr(chanb->buf, i); + + if (!buf->backend.allocated) + continue; + lib_ring_buffer_free(buf); + } + free_cpumask_var(chanb->cpumask); + free_percpu(chanb->buf); + } else { + struct lib_ring_buffer *buf = chanb->buf; + + CHAN_WARN_ON(chanb, !buf->backend.allocated); + lib_ring_buffer_free(buf); + kfree(buf); + } +} + +/** + * lib_ring_buffer_write - write data to a ring_buffer buffer. + * @bufb : buffer backend + * @offset : offset within the buffer + * @src : source address + * @len : length to write + * @pagecpy : page size copied so far + */ +void _lib_ring_buffer_write(struct lib_ring_buffer_backend *bufb, size_t offset, + const void *src, size_t len, ssize_t pagecpy) +{ + struct channel_backend *chanb = &bufb->chan->backend; + const struct lib_ring_buffer_config *config = &chanb->config; + size_t sbidx, index; + struct lib_ring_buffer_backend_pages *rpages; + unsigned long sb_bindex, id; + + do { + len -= pagecpy; + src += pagecpy; + offset += pagecpy; + sbidx = offset >> chanb->subbuf_size_order; + index = (offset & (chanb->subbuf_size - 1)) >> PAGE_SHIFT; + + /* + * Underlying layer should never ask for writes across + * subbuffers. + */ + CHAN_WARN_ON(chanb, offset >= chanb->buf_size); + + pagecpy = min_t(size_t, len, PAGE_SIZE - (offset & ~PAGE_MASK)); + id = bufb->buf_wsb[sbidx].id; + sb_bindex = subbuffer_id_get_index(config, id); + rpages = bufb->array[sb_bindex]; + CHAN_WARN_ON(chanb, config->mode == RING_BUFFER_OVERWRITE + && subbuffer_id_is_noref(config, id)); + lib_ring_buffer_do_copy(config, + rpages->p[index].virt + + (offset & ~PAGE_MASK), + src, pagecpy); + } while (unlikely(len != pagecpy)); +} +EXPORT_SYMBOL_GPL(_lib_ring_buffer_write); + + +/** + * lib_ring_buffer_memset - write len bytes of c to a ring_buffer buffer. + * @bufb : buffer backend + * @offset : offset within the buffer + * @c : the byte to write + * @len : length to write + * @pagecpy : page size copied so far + */ +void _lib_ring_buffer_memset(struct lib_ring_buffer_backend *bufb, + size_t offset, + int c, size_t len, ssize_t pagecpy) +{ + struct channel_backend *chanb = &bufb->chan->backend; + const struct lib_ring_buffer_config *config = &chanb->config; + size_t sbidx, index; + struct lib_ring_buffer_backend_pages *rpages; + unsigned long sb_bindex, id; + + do { + len -= pagecpy; + offset += pagecpy; + sbidx = offset >> chanb->subbuf_size_order; + index = (offset & (chanb->subbuf_size - 1)) >> PAGE_SHIFT; + + /* + * Underlying layer should never ask for writes across + * subbuffers. + */ + CHAN_WARN_ON(chanb, offset >= chanb->buf_size); + + pagecpy = min_t(size_t, len, PAGE_SIZE - (offset & ~PAGE_MASK)); + id = bufb->buf_wsb[sbidx].id; + sb_bindex = subbuffer_id_get_index(config, id); + rpages = bufb->array[sb_bindex]; + CHAN_WARN_ON(chanb, config->mode == RING_BUFFER_OVERWRITE + && subbuffer_id_is_noref(config, id)); + lib_ring_buffer_do_memset(rpages->p[index].virt + + (offset & ~PAGE_MASK), + c, pagecpy); + } while (unlikely(len != pagecpy)); +} +EXPORT_SYMBOL_GPL(_lib_ring_buffer_memset); + + +/** + * lib_ring_buffer_copy_from_user_inatomic - write user data to a ring_buffer buffer. + * @bufb : buffer backend + * @offset : offset within the buffer + * @src : source address + * @len : length to write + * @pagecpy : page size copied so far + * + * This function deals with userspace pointers, it should never be called + * directly without having the src pointer checked with access_ok() + * previously. + */ +void _lib_ring_buffer_copy_from_user_inatomic(struct lib_ring_buffer_backend *bufb, + size_t offset, + const void __user *src, size_t len, + ssize_t pagecpy) +{ + struct channel_backend *chanb = &bufb->chan->backend; + const struct lib_ring_buffer_config *config = &chanb->config; + size_t sbidx, index; + struct lib_ring_buffer_backend_pages *rpages; + unsigned long sb_bindex, id; + int ret; + + do { + len -= pagecpy; + src += pagecpy; + offset += pagecpy; + sbidx = offset >> chanb->subbuf_size_order; + index = (offset & (chanb->subbuf_size - 1)) >> PAGE_SHIFT; + + /* + * Underlying layer should never ask for writes across + * subbuffers. + */ + CHAN_WARN_ON(chanb, offset >= chanb->buf_size); + + pagecpy = min_t(size_t, len, PAGE_SIZE - (offset & ~PAGE_MASK)); + id = bufb->buf_wsb[sbidx].id; + sb_bindex = subbuffer_id_get_index(config, id); + rpages = bufb->array[sb_bindex]; + CHAN_WARN_ON(chanb, config->mode == RING_BUFFER_OVERWRITE + && subbuffer_id_is_noref(config, id)); + ret = lib_ring_buffer_do_copy_from_user_inatomic(rpages->p[index].virt + + (offset & ~PAGE_MASK), + src, pagecpy) != 0; + if (ret > 0) { + offset += (pagecpy - ret); + len -= (pagecpy - ret); + _lib_ring_buffer_memset(bufb, offset, 0, len, 0); + break; /* stop copy */ + } + } while (unlikely(len != pagecpy)); +} +EXPORT_SYMBOL_GPL(_lib_ring_buffer_copy_from_user_inatomic); + +/** + * lib_ring_buffer_read - read data from ring_buffer_buffer. + * @bufb : buffer backend + * @offset : offset within the buffer + * @dest : destination address + * @len : length to copy to destination + * + * Should be protected by get_subbuf/put_subbuf. + * Returns the length copied. + */ +size_t lib_ring_buffer_read(struct lib_ring_buffer_backend *bufb, size_t offset, + void *dest, size_t len) +{ + struct channel_backend *chanb = &bufb->chan->backend; + const struct lib_ring_buffer_config *config = &chanb->config; + size_t index; + ssize_t pagecpy, orig_len; + struct lib_ring_buffer_backend_pages *rpages; + unsigned long sb_bindex, id; + + orig_len = len; + offset &= chanb->buf_size - 1; + index = (offset & (chanb->subbuf_size - 1)) >> PAGE_SHIFT; + if (unlikely(!len)) + return 0; + for (;;) { + pagecpy = min_t(size_t, len, PAGE_SIZE - (offset & ~PAGE_MASK)); + id = bufb->buf_rsb.id; + sb_bindex = subbuffer_id_get_index(config, id); + rpages = bufb->array[sb_bindex]; + CHAN_WARN_ON(chanb, config->mode == RING_BUFFER_OVERWRITE + && subbuffer_id_is_noref(config, id)); + memcpy(dest, rpages->p[index].virt + (offset & ~PAGE_MASK), + pagecpy); + len -= pagecpy; + if (likely(!len)) + break; + dest += pagecpy; + offset += pagecpy; + index = (offset & (chanb->subbuf_size - 1)) >> PAGE_SHIFT; + /* + * Underlying layer should never ask for reads across + * subbuffers. + */ + CHAN_WARN_ON(chanb, offset >= chanb->buf_size); + } + return orig_len; +} +EXPORT_SYMBOL_GPL(lib_ring_buffer_read); + +/** + * __lib_ring_buffer_copy_to_user - read data from ring_buffer to userspace + * @bufb : buffer backend + * @offset : offset within the buffer + * @dest : destination userspace address + * @len : length to copy to destination + * + * Should be protected by get_subbuf/put_subbuf. + * access_ok() must have been performed on dest addresses prior to call this + * function. + * Returns -EFAULT on error, 0 if ok. + */ +int __lib_ring_buffer_copy_to_user(struct lib_ring_buffer_backend *bufb, + size_t offset, void __user *dest, size_t len) +{ + struct channel_backend *chanb = &bufb->chan->backend; + const struct lib_ring_buffer_config *config = &chanb->config; + size_t index; + ssize_t pagecpy; + struct lib_ring_buffer_backend_pages *rpages; + unsigned long sb_bindex, id; + + offset &= chanb->buf_size - 1; + index = (offset & (chanb->subbuf_size - 1)) >> PAGE_SHIFT; + if (unlikely(!len)) + return 0; + for (;;) { + pagecpy = min_t(size_t, len, PAGE_SIZE - (offset & ~PAGE_MASK)); + id = bufb->buf_rsb.id; + sb_bindex = subbuffer_id_get_index(config, id); + rpages = bufb->array[sb_bindex]; + CHAN_WARN_ON(chanb, config->mode == RING_BUFFER_OVERWRITE + && subbuffer_id_is_noref(config, id)); + if (__copy_to_user(dest, + rpages->p[index].virt + (offset & ~PAGE_MASK), + pagecpy)) + return -EFAULT; + len -= pagecpy; + if (likely(!len)) + break; + dest += pagecpy; + offset += pagecpy; + index = (offset & (chanb->subbuf_size - 1)) >> PAGE_SHIFT; + /* + * Underlying layer should never ask for reads across + * subbuffers. + */ + CHAN_WARN_ON(chanb, offset >= chanb->buf_size); + } + return 0; +} +EXPORT_SYMBOL_GPL(__lib_ring_buffer_copy_to_user); + +/** + * lib_ring_buffer_read_cstr - read a C-style string from ring_buffer. + * @bufb : buffer backend + * @offset : offset within the buffer + * @dest : destination address + * @len : destination's length + * + * Return string's length, or -EINVAL on error. + * Should be protected by get_subbuf/put_subbuf. + * Destination length should be at least 1 to hold '\0'. + */ +int lib_ring_buffer_read_cstr(struct lib_ring_buffer_backend *bufb, size_t offset, + void *dest, size_t len) +{ + struct channel_backend *chanb = &bufb->chan->backend; + const struct lib_ring_buffer_config *config = &chanb->config; + size_t index; + ssize_t pagecpy, pagelen, strpagelen, orig_offset; + char *str; + struct lib_ring_buffer_backend_pages *rpages; + unsigned long sb_bindex, id; + + offset &= chanb->buf_size - 1; + index = (offset & (chanb->subbuf_size - 1)) >> PAGE_SHIFT; + orig_offset = offset; + if (unlikely(!len)) + return -EINVAL; + for (;;) { + id = bufb->buf_rsb.id; + sb_bindex = subbuffer_id_get_index(config, id); + rpages = bufb->array[sb_bindex]; + CHAN_WARN_ON(chanb, config->mode == RING_BUFFER_OVERWRITE + && subbuffer_id_is_noref(config, id)); + str = (char *)rpages->p[index].virt + (offset & ~PAGE_MASK); + pagelen = PAGE_SIZE - (offset & ~PAGE_MASK); + strpagelen = strnlen(str, pagelen); + if (len) { + pagecpy = min_t(size_t, len, strpagelen); + if (dest) { + memcpy(dest, str, pagecpy); + dest += pagecpy; + } + len -= pagecpy; + } + offset += strpagelen; + index = (offset & (chanb->subbuf_size - 1)) >> PAGE_SHIFT; + if (strpagelen < pagelen) + break; + /* + * Underlying layer should never ask for reads across + * subbuffers. + */ + CHAN_WARN_ON(chanb, offset >= chanb->buf_size); + } + if (dest && len) + ((char *)dest)[0] = 0; + return offset - orig_offset; +} +EXPORT_SYMBOL_GPL(lib_ring_buffer_read_cstr); + +/** + * lib_ring_buffer_read_get_page - Get a whole page to read from + * @bufb : buffer backend + * @offset : offset within the buffer + * @virt : pointer to page address (output) + * + * Should be protected by get_subbuf/put_subbuf. + * Returns the pointer to the page struct pointer. + */ +struct page **lib_ring_buffer_read_get_page(struct lib_ring_buffer_backend *bufb, + size_t offset, void ***virt) +{ + size_t index; + struct lib_ring_buffer_backend_pages *rpages; + struct channel_backend *chanb = &bufb->chan->backend; + const struct lib_ring_buffer_config *config = &chanb->config; + unsigned long sb_bindex, id; + + offset &= chanb->buf_size - 1; + index = (offset & (chanb->subbuf_size - 1)) >> PAGE_SHIFT; + id = bufb->buf_rsb.id; + sb_bindex = subbuffer_id_get_index(config, id); + rpages = bufb->array[sb_bindex]; + CHAN_WARN_ON(chanb, config->mode == RING_BUFFER_OVERWRITE + && subbuffer_id_is_noref(config, id)); + *virt = &rpages->p[index].virt; + return &rpages->p[index].page; +} +EXPORT_SYMBOL_GPL(lib_ring_buffer_read_get_page); + +/** + * lib_ring_buffer_read_offset_address - get address of a buffer location + * @bufb : buffer backend + * @offset : offset within the buffer. + * + * Return the address where a given offset is located (for read). + * Should be used to get the current subbuffer header pointer. Given we know + * it's never on a page boundary, it's safe to write directly to this address, + * as long as the write is never bigger than a page size. + */ +void *lib_ring_buffer_read_offset_address(struct lib_ring_buffer_backend *bufb, + size_t offset) +{ + size_t index; + struct lib_ring_buffer_backend_pages *rpages; + struct channel_backend *chanb = &bufb->chan->backend; + const struct lib_ring_buffer_config *config = &chanb->config; + unsigned long sb_bindex, id; + + offset &= chanb->buf_size - 1; + index = (offset & (chanb->subbuf_size - 1)) >> PAGE_SHIFT; + id = bufb->buf_rsb.id; + sb_bindex = subbuffer_id_get_index(config, id); + rpages = bufb->array[sb_bindex]; + CHAN_WARN_ON(chanb, config->mode == RING_BUFFER_OVERWRITE + && subbuffer_id_is_noref(config, id)); + return rpages->p[index].virt + (offset & ~PAGE_MASK); +} +EXPORT_SYMBOL_GPL(lib_ring_buffer_read_offset_address); + +/** + * lib_ring_buffer_offset_address - get address of a location within the buffer + * @bufb : buffer backend + * @offset : offset within the buffer. + * + * Return the address where a given offset is located. + * Should be used to get the current subbuffer header pointer. Given we know + * it's always at the beginning of a page, it's safe to write directly to this + * address, as long as the write is never bigger than a page size. + */ +void *lib_ring_buffer_offset_address(struct lib_ring_buffer_backend *bufb, + size_t offset) +{ + size_t sbidx, index; + struct lib_ring_buffer_backend_pages *rpages; + struct channel_backend *chanb = &bufb->chan->backend; + const struct lib_ring_buffer_config *config = &chanb->config; + unsigned long sb_bindex, id; + + offset &= chanb->buf_size - 1; + sbidx = offset >> chanb->subbuf_size_order; + index = (offset & (chanb->subbuf_size - 1)) >> PAGE_SHIFT; + id = bufb->buf_wsb[sbidx].id; + sb_bindex = subbuffer_id_get_index(config, id); + rpages = bufb->array[sb_bindex]; + CHAN_WARN_ON(chanb, config->mode == RING_BUFFER_OVERWRITE + && subbuffer_id_is_noref(config, id)); + return rpages->p[index].virt + (offset & ~PAGE_MASK); +} +EXPORT_SYMBOL_GPL(lib_ring_buffer_offset_address); --- linux-3.11.0.orig/ubuntu/lttng-modules/lib/ringbuffer/iterator.h +++ linux-3.11.0/ubuntu/lttng-modules/lib/ringbuffer/iterator.h @@ -0,0 +1,83 @@ +#ifndef _LIB_RING_BUFFER_ITERATOR_H +#define _LIB_RING_BUFFER_ITERATOR_H + +/* + * lib/ringbuffer/iterator.h + * + * Ring buffer and channel iterators. + * + * Copyright (C) 2010-2012 Mathieu Desnoyers + * + * 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; only + * version 2.1 of the License. + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + * + * Author: + * Mathieu Desnoyers + */ + +#include "../../wrapper/ringbuffer/backend.h" +#include "../../wrapper/ringbuffer/frontend.h" +#include "../../wrapper/ringbuffer/vfs.h" + +/* + * lib_ring_buffer_get_next_record advances the buffer read position to the next + * record. It returns either the size of the next record, -EAGAIN if there is + * currently no data available, or -ENODATA if no data is available and buffer + * is finalized. + */ +extern ssize_t lib_ring_buffer_get_next_record(struct channel *chan, + struct lib_ring_buffer *buf); + +/* + * channel_get_next_record advances the buffer read position to the next record. + * It returns either the size of the next record, -EAGAIN if there is currently + * no data available, or -ENODATA if no data is available and buffer is + * finalized. + * Returns the current buffer in ret_buf. + */ +extern ssize_t channel_get_next_record(struct channel *chan, + struct lib_ring_buffer **ret_buf); + +/** + * read_current_record - copy the buffer current record into dest. + * @buf: ring buffer + * @dest: destination where the record should be copied + * + * dest should be large enough to contain the record. Returns the number of + * bytes copied. + */ +static inline size_t read_current_record(struct lib_ring_buffer *buf, void *dest) +{ + return lib_ring_buffer_read(&buf->backend, buf->iter.read_offset, + dest, buf->iter.payload_len); +} + +extern int lib_ring_buffer_iterator_open(struct lib_ring_buffer *buf); +extern void lib_ring_buffer_iterator_release(struct lib_ring_buffer *buf); +extern int channel_iterator_open(struct channel *chan); +extern void channel_iterator_release(struct channel *chan); + +extern const struct file_operations channel_payload_file_operations; +extern const struct file_operations lib_ring_buffer_payload_file_operations; + +/* + * Used internally. + */ +int channel_iterator_init(struct channel *chan); +void channel_iterator_unregister_notifiers(struct channel *chan); +void channel_iterator_free(struct channel *chan); +void channel_iterator_reset(struct channel *chan); +void lib_ring_buffer_iterator_reset(struct lib_ring_buffer *buf); + +#endif /* _LIB_RING_BUFFER_ITERATOR_H */ --- linux-3.11.0.orig/ubuntu/lttng-modules/lib/ringbuffer/ring_buffer_splice.c +++ linux-3.11.0/ubuntu/lttng-modules/lib/ringbuffer/ring_buffer_splice.c @@ -0,0 +1,227 @@ +/* + * ring_buffer_splice.c + * + * Copyright (C) 2002-2005 - Tom Zanussi , IBM Corp + * Copyright (C) 1999-2005 - Karim Yaghmour + * Copyright (C) 2008-2012 - Mathieu Desnoyers + * + * 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; only + * version 2.1 of the License. + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + * + * Re-using code from kernel/relay.c, which is why it is licensed under + * the GPLv2. + */ + +#include +#include + +#include "../../wrapper/splice.h" +#include "../../wrapper/ringbuffer/backend.h" +#include "../../wrapper/ringbuffer/frontend.h" +#include "../../wrapper/ringbuffer/vfs.h" + +#if 0 +#define printk_dbg(fmt, args...) printk(fmt, args) +#else +#define printk_dbg(fmt, args...) +#endif + +loff_t vfs_lib_ring_buffer_no_llseek(struct file *file, loff_t offset, + int origin) +{ + return -ESPIPE; +} +EXPORT_SYMBOL_GPL(vfs_lib_ring_buffer_no_llseek); + +/* + * Release pages from the buffer so splice pipe_to_file can move them. + * Called after the pipe has been populated with buffer pages. + */ +static void lib_ring_buffer_pipe_buf_release(struct pipe_inode_info *pipe, + struct pipe_buffer *pbuf) +{ + __free_page(pbuf->page); +} + +static const struct pipe_buf_operations ring_buffer_pipe_buf_ops = { + .can_merge = 0, + .map = generic_pipe_buf_map, + .unmap = generic_pipe_buf_unmap, + .confirm = generic_pipe_buf_confirm, + .release = lib_ring_buffer_pipe_buf_release, + .steal = generic_pipe_buf_steal, + .get = generic_pipe_buf_get, +}; + +/* + * Page release operation after splice pipe_to_file ends. + */ +static void lib_ring_buffer_page_release(struct splice_pipe_desc *spd, + unsigned int i) +{ + __free_page(spd->pages[i]); +} + +/* + * subbuf_splice_actor - splice up to one subbuf's worth of data + */ +static int subbuf_splice_actor(struct file *in, + loff_t *ppos, + struct pipe_inode_info *pipe, + size_t len, + unsigned int flags, + struct lib_ring_buffer *buf) +{ + struct channel *chan = buf->backend.chan; + const struct lib_ring_buffer_config *config = &chan->backend.config; + unsigned int poff, subbuf_pages, nr_pages; + struct page *pages[PIPE_DEF_BUFFERS]; + struct partial_page partial[PIPE_DEF_BUFFERS]; + struct splice_pipe_desc spd = { + .pages = pages, + .nr_pages = 0, + .partial = partial, + .flags = flags, + .ops = &ring_buffer_pipe_buf_ops, + .spd_release = lib_ring_buffer_page_release, + }; + unsigned long consumed_old, roffset; + unsigned long bytes_avail; + + /* + * Check that a GET_SUBBUF ioctl has been done before. + */ + WARN_ON(atomic_long_read(&buf->active_readers) != 1); + consumed_old = lib_ring_buffer_get_consumed(config, buf); + consumed_old += *ppos; + + /* + * Adjust read len, if longer than what is available. + * Max read size is 1 subbuffer due to get_subbuf/put_subbuf for + * protection. + */ + bytes_avail = chan->backend.subbuf_size; + WARN_ON(bytes_avail > chan->backend.buf_size); + len = min_t(size_t, len, bytes_avail); + subbuf_pages = bytes_avail >> PAGE_SHIFT; + nr_pages = min_t(unsigned int, subbuf_pages, PIPE_DEF_BUFFERS); + roffset = consumed_old & PAGE_MASK; + poff = consumed_old & ~PAGE_MASK; + printk_dbg(KERN_DEBUG "SPLICE actor len %zu pos %zd write_pos %ld\n", + len, (ssize_t)*ppos, lib_ring_buffer_get_offset(config, buf)); + + for (; spd.nr_pages < nr_pages; spd.nr_pages++) { + unsigned int this_len; + struct page **page, *new_page; + void **virt; + + if (!len) + break; + printk_dbg(KERN_DEBUG "SPLICE actor loop len %zu roffset %ld\n", + len, roffset); + + /* + * We have to replace the page we are moving into the splice + * pipe. + */ + new_page = alloc_pages_node(cpu_to_node(max(buf->backend.cpu, + 0)), + GFP_KERNEL | __GFP_ZERO, 0); + if (!new_page) + break; + + this_len = PAGE_SIZE - poff; + page = lib_ring_buffer_read_get_page(&buf->backend, roffset, &virt); + spd.pages[spd.nr_pages] = *page; + *page = new_page; + *virt = page_address(new_page); + spd.partial[spd.nr_pages].offset = poff; + spd.partial[spd.nr_pages].len = this_len; + + poff = 0; + roffset += PAGE_SIZE; + len -= this_len; + } + + if (!spd.nr_pages) + return 0; + + return wrapper_splice_to_pipe(pipe, &spd); +} + +ssize_t lib_ring_buffer_splice_read(struct file *in, loff_t *ppos, + struct pipe_inode_info *pipe, size_t len, + unsigned int flags, + struct lib_ring_buffer *buf) +{ + struct channel *chan = buf->backend.chan; + const struct lib_ring_buffer_config *config = &chan->backend.config; + ssize_t spliced; + int ret; + + if (config->output != RING_BUFFER_SPLICE) + return -EINVAL; + + /* + * We require ppos and length to be page-aligned for performance reasons + * (no page copy). Size is known using the ioctl + * RING_BUFFER_GET_PADDED_SUBBUF_SIZE, which is page-size padded. + * We fail when the ppos or len passed is not page-sized, because splice + * is not allowed to copy more than the length passed as parameter (so + * the ABI does not let us silently copy more than requested to include + * padding). + */ + if (*ppos != PAGE_ALIGN(*ppos) || len != PAGE_ALIGN(len)) + return -EINVAL; + + ret = 0; + spliced = 0; + + printk_dbg(KERN_DEBUG "SPLICE read len %zu pos %zd\n", len, + (ssize_t)*ppos); + while (len && !spliced) { + ret = subbuf_splice_actor(in, ppos, pipe, len, flags, buf); + printk_dbg(KERN_DEBUG "SPLICE read loop ret %d\n", ret); + if (ret < 0) + break; + else if (!ret) { + if (flags & SPLICE_F_NONBLOCK) + ret = -EAGAIN; + break; + } + + *ppos += ret; + if (ret > len) + len = 0; + else + len -= ret; + spliced += ret; + } + + if (spliced) + return spliced; + + return ret; +} +EXPORT_SYMBOL_GPL(lib_ring_buffer_splice_read); + +ssize_t vfs_lib_ring_buffer_splice_read(struct file *in, loff_t *ppos, + struct pipe_inode_info *pipe, size_t len, + unsigned int flags) +{ + struct lib_ring_buffer *buf = in->private_data; + + return lib_ring_buffer_splice_read(in, ppos, pipe, len, flags, buf); +} +EXPORT_SYMBOL_GPL(vfs_lib_ring_buffer_splice_read); --- linux-3.11.0.orig/ubuntu/lttng-modules/lib/ringbuffer/api.h +++ linux-3.11.0/ubuntu/lttng-modules/lib/ringbuffer/api.h @@ -0,0 +1,37 @@ +#ifndef _LIB_RING_BUFFER_API_H +#define _LIB_RING_BUFFER_API_H + +/* + * lib/ringbuffer/api.h + * + * Ring Buffer API. + * + * Copyright (C) 2010-2012 Mathieu Desnoyers + * + * 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; only + * version 2.1 of the License. + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include "../../wrapper/ringbuffer/backend.h" +#include "../../wrapper/ringbuffer/frontend.h" +#include "../../wrapper/ringbuffer/vfs.h" + +/* + * ring_buffer_frontend_api.h contains static inline functions that depend on + * client static inlines. Hence the inclusion of this "api" header only + * within the client. + */ +#include "../../wrapper/ringbuffer/frontend_api.h" + +#endif /* _LIB_RING_BUFFER_API_H */ --- linux-3.11.0.orig/ubuntu/lttng-modules/lib/ringbuffer/ring_buffer_vfs.c +++ linux-3.11.0/ubuntu/lttng-modules/lib/ringbuffer/ring_buffer_vfs.c @@ -0,0 +1,450 @@ +/* + * ring_buffer_vfs.c + * + * Ring Buffer VFS file operations. + * + * Copyright (C) 2010-2012 Mathieu Desnoyers + * + * 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; only + * version 2.1 of the License. + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include +#include +#include + +#include "../../wrapper/ringbuffer/backend.h" +#include "../../wrapper/ringbuffer/frontend.h" +#include "../../wrapper/ringbuffer/vfs.h" +#include "../../wrapper/poll.h" + +static int put_ulong(unsigned long val, unsigned long arg) +{ + return put_user(val, (unsigned long __user *)arg); +} + +#ifdef CONFIG_COMPAT +static int compat_put_ulong(compat_ulong_t val, unsigned long arg) +{ + return put_user(val, (compat_ulong_t __user *)compat_ptr(arg)); +} +#endif + +/* + * This is not used by anonymous file descriptors. This code is left + * there if we ever want to implement an inode with open() operation. + */ +int lib_ring_buffer_open(struct inode *inode, struct file *file, + struct lib_ring_buffer *buf) +{ + int ret; + + if (!buf) + return -EINVAL; + + ret = lib_ring_buffer_open_read(buf); + if (ret) + return ret; + + ret = nonseekable_open(inode, file); + if (ret) + goto release_read; + return 0; + +release_read: + lib_ring_buffer_release_read(buf); + return ret; +} +EXPORT_SYMBOL_GPL(lib_ring_buffer_open); + +/** + * vfs_lib_ring_buffer_open - ring buffer open file operation + * @inode: opened inode + * @file: opened file + * + * Open implementation. Makes sure only one open instance of a buffer is + * done at a given moment. + */ +static +int vfs_lib_ring_buffer_open(struct inode *inode, struct file *file) +{ + struct lib_ring_buffer *buf = inode->i_private; + + file->private_data = buf; + return lib_ring_buffer_open(inode, file, buf); +} + +int lib_ring_buffer_release(struct inode *inode, struct file *file, + struct lib_ring_buffer *buf) +{ + lib_ring_buffer_release_read(buf); + + return 0; +} +EXPORT_SYMBOL_GPL(lib_ring_buffer_release); + +/** + * vfs_lib_ring_buffer_release - ring buffer release file operation + * @inode: opened inode + * @file: opened file + * + * Release implementation. + */ +static +int vfs_lib_ring_buffer_release(struct inode *inode, struct file *file) +{ + struct lib_ring_buffer *buf = file->private_data; + + return lib_ring_buffer_release(inode, file, buf); +} + +unsigned int lib_ring_buffer_poll(struct file *filp, poll_table *wait, + struct lib_ring_buffer *buf) +{ + unsigned int mask = 0; + struct channel *chan = buf->backend.chan; + const struct lib_ring_buffer_config *config = &chan->backend.config; + int finalized, disabled; + + if (filp->f_mode & FMODE_READ) { + poll_wait_set_exclusive(wait); + poll_wait(filp, &buf->read_wait, wait); + + finalized = lib_ring_buffer_is_finalized(config, buf); + disabled = lib_ring_buffer_channel_is_disabled(chan); + + /* + * lib_ring_buffer_is_finalized() contains a smp_rmb() ordering + * finalized load before offsets loads. + */ + WARN_ON(atomic_long_read(&buf->active_readers) != 1); +retry: + if (disabled) + return POLLERR; + + if (subbuf_trunc(lib_ring_buffer_get_offset(config, buf), chan) + - subbuf_trunc(lib_ring_buffer_get_consumed(config, buf), chan) + == 0) { + if (finalized) + return POLLHUP; + else { + /* + * The memory barriers + * __wait_event()/wake_up_interruptible() take + * care of "raw_spin_is_locked" memory ordering. + */ + if (raw_spin_is_locked(&buf->raw_tick_nohz_spinlock)) + goto retry; + else + return 0; + } + } else { + if (subbuf_trunc(lib_ring_buffer_get_offset(config, buf), + chan) + - subbuf_trunc(lib_ring_buffer_get_consumed(config, buf), + chan) + >= chan->backend.buf_size) + return POLLPRI | POLLRDBAND; + else + return POLLIN | POLLRDNORM; + } + } + return mask; +} +EXPORT_SYMBOL_GPL(lib_ring_buffer_poll); + +/** + * vfs_lib_ring_buffer_poll - ring buffer poll file operation + * @filp: the file + * @wait: poll table + * + * Poll implementation. + */ +static +unsigned int vfs_lib_ring_buffer_poll(struct file *filp, poll_table *wait) +{ + struct lib_ring_buffer *buf = filp->private_data; + + return lib_ring_buffer_poll(filp, wait, buf); +} + +long lib_ring_buffer_ioctl(struct file *filp, unsigned int cmd, + unsigned long arg, struct lib_ring_buffer *buf) +{ + struct channel *chan = buf->backend.chan; + const struct lib_ring_buffer_config *config = &chan->backend.config; + + if (lib_ring_buffer_channel_is_disabled(chan)) + return -EIO; + + switch (cmd) { + case RING_BUFFER_SNAPSHOT: + return lib_ring_buffer_snapshot(buf, &buf->cons_snapshot, + &buf->prod_snapshot); + case RING_BUFFER_SNAPSHOT_GET_CONSUMED: + return put_ulong(buf->cons_snapshot, arg); + case RING_BUFFER_SNAPSHOT_GET_PRODUCED: + return put_ulong(buf->prod_snapshot, arg); + case RING_BUFFER_GET_SUBBUF: + { + unsigned long uconsume; + long ret; + + ret = get_user(uconsume, (unsigned long __user *) arg); + if (ret) + return ret; /* will return -EFAULT */ + ret = lib_ring_buffer_get_subbuf(buf, uconsume); + if (!ret) { + /* Set file position to zero at each successful "get" */ + filp->f_pos = 0; + } + return ret; + } + case RING_BUFFER_PUT_SUBBUF: + lib_ring_buffer_put_subbuf(buf); + return 0; + + case RING_BUFFER_GET_NEXT_SUBBUF: + { + long ret; + + ret = lib_ring_buffer_get_next_subbuf(buf); + if (!ret) { + /* Set file position to zero at each successful "get" */ + filp->f_pos = 0; + } + return ret; + } + case RING_BUFFER_PUT_NEXT_SUBBUF: + lib_ring_buffer_put_next_subbuf(buf); + return 0; + case RING_BUFFER_GET_SUBBUF_SIZE: + return put_ulong(lib_ring_buffer_get_read_data_size(config, buf), + arg); + case RING_BUFFER_GET_PADDED_SUBBUF_SIZE: + { + unsigned long size; + + size = lib_ring_buffer_get_read_data_size(config, buf); + size = PAGE_ALIGN(size); + return put_ulong(size, arg); + } + case RING_BUFFER_GET_MAX_SUBBUF_SIZE: + return put_ulong(chan->backend.subbuf_size, arg); + case RING_BUFFER_GET_MMAP_LEN: + { + unsigned long mmap_buf_len; + + if (config->output != RING_BUFFER_MMAP) + return -EINVAL; + mmap_buf_len = chan->backend.buf_size; + if (chan->backend.extra_reader_sb) + mmap_buf_len += chan->backend.subbuf_size; + if (mmap_buf_len > INT_MAX) + return -EFBIG; + return put_ulong(mmap_buf_len, arg); + } + case RING_BUFFER_GET_MMAP_READ_OFFSET: + { + unsigned long sb_bindex; + + if (config->output != RING_BUFFER_MMAP) + return -EINVAL; + sb_bindex = subbuffer_id_get_index(config, + buf->backend.buf_rsb.id); + return put_ulong(buf->backend.array[sb_bindex]->mmap_offset, + arg); + } + case RING_BUFFER_FLUSH: + lib_ring_buffer_switch_remote(buf); + return 0; + default: + return -ENOIOCTLCMD; + } +} +EXPORT_SYMBOL_GPL(lib_ring_buffer_ioctl); + +/** + * vfs_lib_ring_buffer_ioctl - control ring buffer reader synchronization + * + * @filp: the file + * @cmd: the command + * @arg: command arg + * + * This ioctl implements commands necessary for producer/consumer + * and flight recorder reader interaction : + * RING_BUFFER_GET_NEXT_SUBBUF + * Get the next sub-buffer that can be read. It never blocks. + * RING_BUFFER_PUT_NEXT_SUBBUF + * Release the currently read sub-buffer. + * RING_BUFFER_GET_SUBBUF_SIZE + * returns the size of the current sub-buffer. + * RING_BUFFER_GET_MAX_SUBBUF_SIZE + * returns the maximum size for sub-buffers. + * RING_BUFFER_GET_NUM_SUBBUF + * returns the number of reader-visible sub-buffers in the per cpu + * channel (for mmap). + * RING_BUFFER_GET_MMAP_READ_OFFSET + * returns the offset of the subbuffer belonging to the reader. + * Should only be used for mmap clients. + */ +static +long vfs_lib_ring_buffer_ioctl(struct file *filp, unsigned int cmd, unsigned long arg) +{ + struct lib_ring_buffer *buf = filp->private_data; + + return lib_ring_buffer_ioctl(filp, cmd, arg, buf); +} + +#ifdef CONFIG_COMPAT +long lib_ring_buffer_compat_ioctl(struct file *filp, unsigned int cmd, + unsigned long arg, struct lib_ring_buffer *buf) +{ + struct channel *chan = buf->backend.chan; + const struct lib_ring_buffer_config *config = &chan->backend.config; + + if (lib_ring_buffer_channel_is_disabled(chan)) + return -EIO; + + switch (cmd) { + case RING_BUFFER_COMPAT_SNAPSHOT: + return lib_ring_buffer_snapshot(buf, &buf->cons_snapshot, + &buf->prod_snapshot); + case RING_BUFFER_COMPAT_SNAPSHOT_GET_CONSUMED: + return compat_put_ulong(buf->cons_snapshot, arg); + case RING_BUFFER_COMPAT_SNAPSHOT_GET_PRODUCED: + return compat_put_ulong(buf->prod_snapshot, arg); + case RING_BUFFER_COMPAT_GET_SUBBUF: + { + __u32 uconsume; + unsigned long consume; + long ret; + + ret = get_user(uconsume, (__u32 __user *) arg); + if (ret) + return ret; /* will return -EFAULT */ + consume = buf->cons_snapshot; + consume &= ~0xFFFFFFFFL; + consume |= uconsume; + ret = lib_ring_buffer_get_subbuf(buf, consume); + if (!ret) { + /* Set file position to zero at each successful "get" */ + filp->f_pos = 0; + } + return ret; + } + case RING_BUFFER_COMPAT_PUT_SUBBUF: + lib_ring_buffer_put_subbuf(buf); + return 0; + + case RING_BUFFER_COMPAT_GET_NEXT_SUBBUF: + { + long ret; + + ret = lib_ring_buffer_get_next_subbuf(buf); + if (!ret) { + /* Set file position to zero at each successful "get" */ + filp->f_pos = 0; + } + return ret; + } + case RING_BUFFER_COMPAT_PUT_NEXT_SUBBUF: + lib_ring_buffer_put_next_subbuf(buf); + return 0; + case RING_BUFFER_COMPAT_GET_SUBBUF_SIZE: + { + unsigned long data_size; + + data_size = lib_ring_buffer_get_read_data_size(config, buf); + if (data_size > UINT_MAX) + return -EFBIG; + return compat_put_ulong(data_size, arg); + } + case RING_BUFFER_COMPAT_GET_PADDED_SUBBUF_SIZE: + { + unsigned long size; + + size = lib_ring_buffer_get_read_data_size(config, buf); + size = PAGE_ALIGN(size); + if (size > UINT_MAX) + return -EFBIG; + return compat_put_ulong(size, arg); + } + case RING_BUFFER_COMPAT_GET_MAX_SUBBUF_SIZE: + if (chan->backend.subbuf_size > UINT_MAX) + return -EFBIG; + return compat_put_ulong(chan->backend.subbuf_size, arg); + case RING_BUFFER_COMPAT_GET_MMAP_LEN: + { + unsigned long mmap_buf_len; + + if (config->output != RING_BUFFER_MMAP) + return -EINVAL; + mmap_buf_len = chan->backend.buf_size; + if (chan->backend.extra_reader_sb) + mmap_buf_len += chan->backend.subbuf_size; + if (mmap_buf_len > UINT_MAX) + return -EFBIG; + return compat_put_ulong(mmap_buf_len, arg); + } + case RING_BUFFER_COMPAT_GET_MMAP_READ_OFFSET: + { + unsigned long sb_bindex, read_offset; + + if (config->output != RING_BUFFER_MMAP) + return -EINVAL; + sb_bindex = subbuffer_id_get_index(config, + buf->backend.buf_rsb.id); + read_offset = buf->backend.array[sb_bindex]->mmap_offset; + if (read_offset > UINT_MAX) + return -EINVAL; + return compat_put_ulong(read_offset, arg); + } + case RING_BUFFER_COMPAT_FLUSH: + lib_ring_buffer_switch_remote(buf); + return 0; + default: + return -ENOIOCTLCMD; + } +} +EXPORT_SYMBOL_GPL(lib_ring_buffer_compat_ioctl); + +static +long vfs_lib_ring_buffer_compat_ioctl(struct file *filp, unsigned int cmd, + unsigned long arg) +{ + struct lib_ring_buffer *buf = filp->private_data; + + return lib_ring_buffer_compat_ioctl(filp, cmd, arg, buf); +} +#endif + +const struct file_operations lib_ring_buffer_file_operations = { + .owner = THIS_MODULE, + .open = vfs_lib_ring_buffer_open, + .release = vfs_lib_ring_buffer_release, + .poll = vfs_lib_ring_buffer_poll, + .splice_read = vfs_lib_ring_buffer_splice_read, + .mmap = vfs_lib_ring_buffer_mmap, + .unlocked_ioctl = vfs_lib_ring_buffer_ioctl, + .llseek = vfs_lib_ring_buffer_no_llseek, +#ifdef CONFIG_COMPAT + .compat_ioctl = vfs_lib_ring_buffer_compat_ioctl, +#endif +}; +EXPORT_SYMBOL_GPL(lib_ring_buffer_file_operations); + +MODULE_LICENSE("GPL and additional rights"); +MODULE_AUTHOR("Mathieu Desnoyers"); +MODULE_DESCRIPTION("Ring Buffer Library VFS"); --- linux-3.11.0.orig/ubuntu/lttng-modules/lib/ringbuffer/ring_buffer_iterator.c +++ linux-3.11.0/ubuntu/lttng-modules/lib/ringbuffer/ring_buffer_iterator.c @@ -0,0 +1,810 @@ +/* + * ring_buffer_iterator.c + * + * Ring buffer and channel iterators. Get each event of a channel in order. Uses + * a prio heap for per-cpu buffers, giving a O(log(NR_CPUS)) algorithmic + * complexity for the "get next event" operation. + * + * Copyright (C) 2010-2012 Mathieu Desnoyers + * + * 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; only + * version 2.1 of the License. + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + * + * Author: + * Mathieu Desnoyers + */ + +#include "../../wrapper/ringbuffer/iterator.h" +#include +#include +#include + +/* + * Safety factor taking into account internal kernel interrupt latency. + * Assuming 250ms worse-case latency. + */ +#define MAX_SYSTEM_LATENCY 250 + +/* + * Maximum delta expected between trace clocks. At most 1 jiffy delta. + */ +#define MAX_CLOCK_DELTA (jiffies_to_usecs(1) * 1000) + +/** + * lib_ring_buffer_get_next_record - Get the next record in a buffer. + * @chan: channel + * @buf: buffer + * + * Returns the size of the event read, -EAGAIN if buffer is empty, -ENODATA if + * buffer is empty and finalized. The buffer must already be opened for reading. + */ +ssize_t lib_ring_buffer_get_next_record(struct channel *chan, + struct lib_ring_buffer *buf) +{ + const struct lib_ring_buffer_config *config = &chan->backend.config; + struct lib_ring_buffer_iter *iter = &buf->iter; + int ret; + +restart: + switch (iter->state) { + case ITER_GET_SUBBUF: + ret = lib_ring_buffer_get_next_subbuf(buf); + if (ret && !ACCESS_ONCE(buf->finalized) + && config->alloc == RING_BUFFER_ALLOC_GLOBAL) { + /* + * Use "pull" scheme for global buffers. The reader + * itself flushes the buffer to "pull" data not visible + * to readers yet. Flush current subbuffer and re-try. + * + * Per-CPU buffers rather use a "push" scheme because + * the IPI needed to flush all CPU's buffers is too + * costly. In the "push" scheme, the reader waits for + * the writer periodic deferrable timer to flush the + * buffers (keeping track of a quiescent state + * timestamp). Therefore, the writer "pushes" data out + * of the buffers rather than letting the reader "pull" + * data from the buffer. + */ + lib_ring_buffer_switch_slow(buf, SWITCH_ACTIVE); + ret = lib_ring_buffer_get_next_subbuf(buf); + } + if (ret) + return ret; + iter->consumed = buf->cons_snapshot; + iter->data_size = lib_ring_buffer_get_read_data_size(config, buf); + iter->read_offset = iter->consumed; + /* skip header */ + iter->read_offset += config->cb.subbuffer_header_size(); + iter->state = ITER_TEST_RECORD; + goto restart; + case ITER_TEST_RECORD: + if (iter->read_offset - iter->consumed >= iter->data_size) { + iter->state = ITER_PUT_SUBBUF; + } else { + CHAN_WARN_ON(chan, !config->cb.record_get); + config->cb.record_get(config, chan, buf, + iter->read_offset, + &iter->header_len, + &iter->payload_len, + &iter->timestamp); + iter->read_offset += iter->header_len; + subbuffer_consume_record(config, &buf->backend); + iter->state = ITER_NEXT_RECORD; + return iter->payload_len; + } + goto restart; + case ITER_NEXT_RECORD: + iter->read_offset += iter->payload_len; + iter->state = ITER_TEST_RECORD; + goto restart; + case ITER_PUT_SUBBUF: + lib_ring_buffer_put_next_subbuf(buf); + iter->state = ITER_GET_SUBBUF; + goto restart; + default: + CHAN_WARN_ON(chan, 1); /* Should not happen */ + return -EPERM; + } +} +EXPORT_SYMBOL_GPL(lib_ring_buffer_get_next_record); + +static int buf_is_higher(void *a, void *b) +{ + struct lib_ring_buffer *bufa = a; + struct lib_ring_buffer *bufb = b; + + /* Consider lowest timestamps to be at the top of the heap */ + return (bufa->iter.timestamp < bufb->iter.timestamp); +} + +static +void lib_ring_buffer_get_empty_buf_records(const struct lib_ring_buffer_config *config, + struct channel *chan) +{ + struct lttng_ptr_heap *heap = &chan->iter.heap; + struct lib_ring_buffer *buf, *tmp; + ssize_t len; + + list_for_each_entry_safe(buf, tmp, &chan->iter.empty_head, + iter.empty_node) { + len = lib_ring_buffer_get_next_record(chan, buf); + + /* + * Deal with -EAGAIN and -ENODATA. + * len >= 0 means record contains data. + * -EBUSY should never happen, because we support only one + * reader. + */ + switch (len) { + case -EAGAIN: + /* Keep node in empty list */ + break; + case -ENODATA: + /* + * Buffer is finalized. Don't add to list of empty + * buffer, because it has no more data to provide, ever. + */ + list_del(&buf->iter.empty_node); + break; + case -EBUSY: + CHAN_WARN_ON(chan, 1); + break; + default: + /* + * Insert buffer into the heap, remove from empty buffer + * list. + */ + CHAN_WARN_ON(chan, len < 0); + list_del(&buf->iter.empty_node); + CHAN_WARN_ON(chan, lttng_heap_insert(heap, buf)); + } + } +} + +static +void lib_ring_buffer_wait_for_qs(const struct lib_ring_buffer_config *config, + struct channel *chan) +{ + u64 timestamp_qs; + unsigned long wait_msecs; + + /* + * No need to wait if no empty buffers are present. + */ + if (list_empty(&chan->iter.empty_head)) + return; + + timestamp_qs = config->cb.ring_buffer_clock_read(chan); + /* + * We need to consider previously empty buffers. + * Do a get next buf record on each of them. Add them to + * the heap if they have data. If at least one of them + * don't have data, we need to wait for + * switch_timer_interval + MAX_SYSTEM_LATENCY (so we are sure the + * buffers have been switched either by the timer or idle entry) and + * check them again, adding them if they have data. + */ + lib_ring_buffer_get_empty_buf_records(config, chan); + + /* + * No need to wait if no empty buffers are present. + */ + if (list_empty(&chan->iter.empty_head)) + return; + + /* + * We need to wait for the buffer switch timer to run. If the + * CPU is idle, idle entry performed the switch. + * TODO: we could optimize further by skipping the sleep if all + * empty buffers belong to idle or offline cpus. + */ + wait_msecs = jiffies_to_msecs(chan->switch_timer_interval); + wait_msecs += MAX_SYSTEM_LATENCY; + msleep(wait_msecs); + lib_ring_buffer_get_empty_buf_records(config, chan); + /* + * Any buffer still in the empty list here cannot possibly + * contain an event with a timestamp prior to "timestamp_qs". + * The new quiescent state timestamp is the one we grabbed + * before waiting for buffer data. It is therefore safe to + * ignore empty buffers up to last_qs timestamp for fusion + * merge. + */ + chan->iter.last_qs = timestamp_qs; +} + +/** + * channel_get_next_record - Get the next record in a channel. + * @chan: channel + * @ret_buf: the buffer in which the event is located (output) + * + * Returns the size of new current event, -EAGAIN if all buffers are empty, + * -ENODATA if all buffers are empty and finalized. The channel must already be + * opened for reading. + */ + +ssize_t channel_get_next_record(struct channel *chan, + struct lib_ring_buffer **ret_buf) +{ + const struct lib_ring_buffer_config *config = &chan->backend.config; + struct lib_ring_buffer *buf; + struct lttng_ptr_heap *heap; + ssize_t len; + + if (config->alloc == RING_BUFFER_ALLOC_GLOBAL) { + *ret_buf = channel_get_ring_buffer(config, chan, 0); + return lib_ring_buffer_get_next_record(chan, *ret_buf); + } + + heap = &chan->iter.heap; + + /* + * get next record for topmost buffer. + */ + buf = lttng_heap_maximum(heap); + if (buf) { + len = lib_ring_buffer_get_next_record(chan, buf); + /* + * Deal with -EAGAIN and -ENODATA. + * len >= 0 means record contains data. + */ + switch (len) { + case -EAGAIN: + buf->iter.timestamp = 0; + list_add(&buf->iter.empty_node, &chan->iter.empty_head); + /* Remove topmost buffer from the heap */ + CHAN_WARN_ON(chan, lttng_heap_remove(heap) != buf); + break; + case -ENODATA: + /* + * Buffer is finalized. Remove buffer from heap and + * don't add to list of empty buffer, because it has no + * more data to provide, ever. + */ + CHAN_WARN_ON(chan, lttng_heap_remove(heap) != buf); + break; + case -EBUSY: + CHAN_WARN_ON(chan, 1); + break; + default: + /* + * Reinsert buffer into the heap. Note that heap can be + * partially empty, so we need to use + * lttng_heap_replace_max(). + */ + CHAN_WARN_ON(chan, len < 0); + CHAN_WARN_ON(chan, lttng_heap_replace_max(heap, buf) != buf); + break; + } + } + + buf = lttng_heap_maximum(heap); + if (!buf || buf->iter.timestamp > chan->iter.last_qs) { + /* + * Deal with buffers previously showing no data. + * Add buffers containing data to the heap, update + * last_qs. + */ + lib_ring_buffer_wait_for_qs(config, chan); + } + + *ret_buf = buf = lttng_heap_maximum(heap); + if (buf) { + /* + * If this warning triggers, you probably need to check your + * system interrupt latency. Typical causes: too many printk() + * output going to a serial console with interrupts off. + * Allow for MAX_CLOCK_DELTA ns timestamp delta going backward. + * Observed on SMP KVM setups with trace_clock(). + */ + if (chan->iter.last_timestamp + > (buf->iter.timestamp + MAX_CLOCK_DELTA)) { + printk(KERN_WARNING "ring_buffer: timestamps going " + "backward. Last time %llu ns, cpu %d, " + "current time %llu ns, cpu %d, " + "delta %llu ns.\n", + chan->iter.last_timestamp, chan->iter.last_cpu, + buf->iter.timestamp, buf->backend.cpu, + chan->iter.last_timestamp - buf->iter.timestamp); + CHAN_WARN_ON(chan, 1); + } + chan->iter.last_timestamp = buf->iter.timestamp; + chan->iter.last_cpu = buf->backend.cpu; + return buf->iter.payload_len; + } else { + /* Heap is empty */ + if (list_empty(&chan->iter.empty_head)) + return -ENODATA; /* All buffers finalized */ + else + return -EAGAIN; /* Temporarily empty */ + } +} +EXPORT_SYMBOL_GPL(channel_get_next_record); + +static +void lib_ring_buffer_iterator_init(struct channel *chan, struct lib_ring_buffer *buf) +{ + if (buf->iter.allocated) + return; + + buf->iter.allocated = 1; + if (chan->iter.read_open && !buf->iter.read_open) { + CHAN_WARN_ON(chan, lib_ring_buffer_open_read(buf) != 0); + buf->iter.read_open = 1; + } + + /* Add to list of buffers without any current record */ + if (chan->backend.config.alloc == RING_BUFFER_ALLOC_PER_CPU) + list_add(&buf->iter.empty_node, &chan->iter.empty_head); +} + +#ifdef CONFIG_HOTPLUG_CPU +static +int channel_iterator_cpu_hotplug(struct notifier_block *nb, + unsigned long action, + void *hcpu) +{ + unsigned int cpu = (unsigned long)hcpu; + struct channel *chan = container_of(nb, struct channel, + hp_iter_notifier); + struct lib_ring_buffer *buf = per_cpu_ptr(chan->backend.buf, cpu); + const struct lib_ring_buffer_config *config = &chan->backend.config; + + if (!chan->hp_iter_enable) + return NOTIFY_DONE; + + CHAN_WARN_ON(chan, config->alloc == RING_BUFFER_ALLOC_GLOBAL); + + switch (action) { + case CPU_DOWN_FAILED: + case CPU_DOWN_FAILED_FROZEN: + case CPU_ONLINE: + case CPU_ONLINE_FROZEN: + lib_ring_buffer_iterator_init(chan, buf); + return NOTIFY_OK; + default: + return NOTIFY_DONE; + } +} +#endif + +int channel_iterator_init(struct channel *chan) +{ + const struct lib_ring_buffer_config *config = &chan->backend.config; + struct lib_ring_buffer *buf; + + if (config->alloc == RING_BUFFER_ALLOC_PER_CPU) { + int cpu, ret; + + INIT_LIST_HEAD(&chan->iter.empty_head); + ret = lttng_heap_init(&chan->iter.heap, + num_possible_cpus(), + GFP_KERNEL, buf_is_higher); + if (ret) + return ret; + /* + * In case of non-hotplug cpu, if the ring-buffer is allocated + * in early initcall, it will not be notified of secondary cpus. + * In that off case, we need to allocate for all possible cpus. + */ +#ifdef CONFIG_HOTPLUG_CPU + chan->hp_iter_notifier.notifier_call = + channel_iterator_cpu_hotplug; + chan->hp_iter_notifier.priority = 10; + register_cpu_notifier(&chan->hp_iter_notifier); + get_online_cpus(); + for_each_online_cpu(cpu) { + buf = per_cpu_ptr(chan->backend.buf, cpu); + lib_ring_buffer_iterator_init(chan, buf); + } + chan->hp_iter_enable = 1; + put_online_cpus(); +#else + for_each_possible_cpu(cpu) { + buf = per_cpu_ptr(chan->backend.buf, cpu); + lib_ring_buffer_iterator_init(chan, buf); + } +#endif + } else { + buf = channel_get_ring_buffer(config, chan, 0); + lib_ring_buffer_iterator_init(chan, buf); + } + return 0; +} + +void channel_iterator_unregister_notifiers(struct channel *chan) +{ + const struct lib_ring_buffer_config *config = &chan->backend.config; + + if (config->alloc == RING_BUFFER_ALLOC_PER_CPU) { + chan->hp_iter_enable = 0; + unregister_cpu_notifier(&chan->hp_iter_notifier); + } +} + +void channel_iterator_free(struct channel *chan) +{ + const struct lib_ring_buffer_config *config = &chan->backend.config; + + if (config->alloc == RING_BUFFER_ALLOC_PER_CPU) + lttng_heap_free(&chan->iter.heap); +} + +int lib_ring_buffer_iterator_open(struct lib_ring_buffer *buf) +{ + struct channel *chan = buf->backend.chan; + const struct lib_ring_buffer_config *config = &chan->backend.config; + CHAN_WARN_ON(chan, config->output != RING_BUFFER_ITERATOR); + return lib_ring_buffer_open_read(buf); +} +EXPORT_SYMBOL_GPL(lib_ring_buffer_iterator_open); + +/* + * Note: Iterators must not be mixed with other types of outputs, because an + * iterator can leave the buffer in "GET" state, which is not consistent with + * other types of output (mmap, splice, raw data read). + */ +void lib_ring_buffer_iterator_release(struct lib_ring_buffer *buf) +{ + lib_ring_buffer_release_read(buf); +} +EXPORT_SYMBOL_GPL(lib_ring_buffer_iterator_release); + +int channel_iterator_open(struct channel *chan) +{ + const struct lib_ring_buffer_config *config = &chan->backend.config; + struct lib_ring_buffer *buf; + int ret = 0, cpu; + + CHAN_WARN_ON(chan, config->output != RING_BUFFER_ITERATOR); + + if (config->alloc == RING_BUFFER_ALLOC_PER_CPU) { + get_online_cpus(); + /* Allow CPU hotplug to keep track of opened reader */ + chan->iter.read_open = 1; + for_each_channel_cpu(cpu, chan) { + buf = channel_get_ring_buffer(config, chan, cpu); + ret = lib_ring_buffer_iterator_open(buf); + if (ret) + goto error; + buf->iter.read_open = 1; + } + put_online_cpus(); + } else { + buf = channel_get_ring_buffer(config, chan, 0); + ret = lib_ring_buffer_iterator_open(buf); + } + return ret; +error: + /* Error should always happen on CPU 0, hence no close is required. */ + CHAN_WARN_ON(chan, cpu != 0); + put_online_cpus(); + return ret; +} +EXPORT_SYMBOL_GPL(channel_iterator_open); + +void channel_iterator_release(struct channel *chan) +{ + const struct lib_ring_buffer_config *config = &chan->backend.config; + struct lib_ring_buffer *buf; + int cpu; + + if (config->alloc == RING_BUFFER_ALLOC_PER_CPU) { + get_online_cpus(); + for_each_channel_cpu(cpu, chan) { + buf = channel_get_ring_buffer(config, chan, cpu); + if (buf->iter.read_open) { + lib_ring_buffer_iterator_release(buf); + buf->iter.read_open = 0; + } + } + chan->iter.read_open = 0; + put_online_cpus(); + } else { + buf = channel_get_ring_buffer(config, chan, 0); + lib_ring_buffer_iterator_release(buf); + } +} +EXPORT_SYMBOL_GPL(channel_iterator_release); + +void lib_ring_buffer_iterator_reset(struct lib_ring_buffer *buf) +{ + struct channel *chan = buf->backend.chan; + + if (buf->iter.state != ITER_GET_SUBBUF) + lib_ring_buffer_put_next_subbuf(buf); + buf->iter.state = ITER_GET_SUBBUF; + /* Remove from heap (if present). */ + if (lttng_heap_cherrypick(&chan->iter.heap, buf)) + list_add(&buf->iter.empty_node, &chan->iter.empty_head); + buf->iter.timestamp = 0; + buf->iter.header_len = 0; + buf->iter.payload_len = 0; + buf->iter.consumed = 0; + buf->iter.read_offset = 0; + buf->iter.data_size = 0; + /* Don't reset allocated and read_open */ +} + +void channel_iterator_reset(struct channel *chan) +{ + const struct lib_ring_buffer_config *config = &chan->backend.config; + struct lib_ring_buffer *buf; + int cpu; + + /* Empty heap, put into empty_head */ + while ((buf = lttng_heap_remove(&chan->iter.heap)) != NULL) + list_add(&buf->iter.empty_node, &chan->iter.empty_head); + + for_each_channel_cpu(cpu, chan) { + buf = channel_get_ring_buffer(config, chan, cpu); + lib_ring_buffer_iterator_reset(buf); + } + /* Don't reset read_open */ + chan->iter.last_qs = 0; + chan->iter.last_timestamp = 0; + chan->iter.last_cpu = 0; + chan->iter.len_left = 0; +} + +/* + * Ring buffer payload extraction read() implementation. + */ +static +ssize_t channel_ring_buffer_file_read(struct file *filp, + char __user *user_buf, + size_t count, + loff_t *ppos, + struct channel *chan, + struct lib_ring_buffer *buf, + int fusionmerge) +{ + const struct lib_ring_buffer_config *config = &chan->backend.config; + size_t read_count = 0, read_offset; + ssize_t len; + + might_sleep(); + if (!access_ok(VERIFY_WRITE, user_buf, count)) + return -EFAULT; + + /* Finish copy of previous record */ + if (*ppos != 0) { + if (read_count < count) { + len = chan->iter.len_left; + read_offset = *ppos; + if (config->alloc == RING_BUFFER_ALLOC_PER_CPU + && fusionmerge) + buf = lttng_heap_maximum(&chan->iter.heap); + CHAN_WARN_ON(chan, !buf); + goto skip_get_next; + } + } + + while (read_count < count) { + size_t copy_len, space_left; + + if (fusionmerge) + len = channel_get_next_record(chan, &buf); + else + len = lib_ring_buffer_get_next_record(chan, buf); +len_test: + if (len < 0) { + /* + * Check if buffer is finalized (end of file). + */ + if (len == -ENODATA) { + /* A 0 read_count will tell about end of file */ + goto nodata; + } + if (filp->f_flags & O_NONBLOCK) { + if (!read_count) + read_count = -EAGAIN; + goto nodata; + } else { + int error; + + /* + * No data available at the moment, return what + * we got. + */ + if (read_count) + goto nodata; + + /* + * Wait for returned len to be >= 0 or -ENODATA. + */ + if (fusionmerge) + error = wait_event_interruptible( + chan->read_wait, + ((len = channel_get_next_record(chan, + &buf)), len != -EAGAIN)); + else + error = wait_event_interruptible( + buf->read_wait, + ((len = lib_ring_buffer_get_next_record( + chan, buf)), len != -EAGAIN)); + CHAN_WARN_ON(chan, len == -EBUSY); + if (error) { + read_count = error; + goto nodata; + } + CHAN_WARN_ON(chan, len < 0 && len != -ENODATA); + goto len_test; + } + } + read_offset = buf->iter.read_offset; +skip_get_next: + space_left = count - read_count; + if (len <= space_left) { + copy_len = len; + chan->iter.len_left = 0; + *ppos = 0; + } else { + copy_len = space_left; + chan->iter.len_left = len - copy_len; + *ppos = read_offset + copy_len; + } + if (__lib_ring_buffer_copy_to_user(&buf->backend, read_offset, + &user_buf[read_count], + copy_len)) { + /* + * Leave the len_left and ppos values at their current + * state, as we currently have a valid event to read. + */ + return -EFAULT; + } + read_count += copy_len; + }; + return read_count; + +nodata: + *ppos = 0; + chan->iter.len_left = 0; + return read_count; +} + +/** + * lib_ring_buffer_file_read - Read buffer record payload. + * @filp: file structure pointer. + * @buffer: user buffer to read data into. + * @count: number of bytes to read. + * @ppos: file read position. + * + * Returns a negative value on error, or the number of bytes read on success. + * ppos is used to save the position _within the current record_ between calls + * to read(). + */ +static +ssize_t lib_ring_buffer_file_read(struct file *filp, + char __user *user_buf, + size_t count, + loff_t *ppos) +{ + struct inode *inode = filp->f_dentry->d_inode; + struct lib_ring_buffer *buf = inode->i_private; + struct channel *chan = buf->backend.chan; + + return channel_ring_buffer_file_read(filp, user_buf, count, ppos, + chan, buf, 0); +} + +/** + * channel_file_read - Read channel record payload. + * @filp: file structure pointer. + * @buffer: user buffer to read data into. + * @count: number of bytes to read. + * @ppos: file read position. + * + * Returns a negative value on error, or the number of bytes read on success. + * ppos is used to save the position _within the current record_ between calls + * to read(). + */ +static +ssize_t channel_file_read(struct file *filp, + char __user *user_buf, + size_t count, + loff_t *ppos) +{ + struct inode *inode = filp->f_dentry->d_inode; + struct channel *chan = inode->i_private; + const struct lib_ring_buffer_config *config = &chan->backend.config; + + if (config->alloc == RING_BUFFER_ALLOC_PER_CPU) + return channel_ring_buffer_file_read(filp, user_buf, count, + ppos, chan, NULL, 1); + else { + struct lib_ring_buffer *buf = + channel_get_ring_buffer(config, chan, 0); + return channel_ring_buffer_file_read(filp, user_buf, count, + ppos, chan, buf, 0); + } +} + +static +int lib_ring_buffer_file_open(struct inode *inode, struct file *file) +{ + struct lib_ring_buffer *buf = inode->i_private; + int ret; + + ret = lib_ring_buffer_iterator_open(buf); + if (ret) + return ret; + + file->private_data = buf; + ret = nonseekable_open(inode, file); + if (ret) + goto release_iter; + return 0; + +release_iter: + lib_ring_buffer_iterator_release(buf); + return ret; +} + +static +int lib_ring_buffer_file_release(struct inode *inode, struct file *file) +{ + struct lib_ring_buffer *buf = inode->i_private; + + lib_ring_buffer_iterator_release(buf); + return 0; +} + +static +int channel_file_open(struct inode *inode, struct file *file) +{ + struct channel *chan = inode->i_private; + int ret; + + ret = channel_iterator_open(chan); + if (ret) + return ret; + + file->private_data = chan; + ret = nonseekable_open(inode, file); + if (ret) + goto release_iter; + return 0; + +release_iter: + channel_iterator_release(chan); + return ret; +} + +static +int channel_file_release(struct inode *inode, struct file *file) +{ + struct channel *chan = inode->i_private; + + channel_iterator_release(chan); + return 0; +} + +const struct file_operations channel_payload_file_operations = { + .owner = THIS_MODULE, + .open = channel_file_open, + .release = channel_file_release, + .read = channel_file_read, + .llseek = vfs_lib_ring_buffer_no_llseek, +}; +EXPORT_SYMBOL_GPL(channel_payload_file_operations); + +const struct file_operations lib_ring_buffer_payload_file_operations = { + .owner = THIS_MODULE, + .open = lib_ring_buffer_file_open, + .release = lib_ring_buffer_file_release, + .read = lib_ring_buffer_file_read, + .llseek = vfs_lib_ring_buffer_no_llseek, +}; +EXPORT_SYMBOL_GPL(lib_ring_buffer_payload_file_operations); --- linux-3.11.0.orig/ubuntu/lttng-modules/lib/ringbuffer/vatomic.h +++ linux-3.11.0/ubuntu/lttng-modules/lib/ringbuffer/vatomic.h @@ -0,0 +1,97 @@ +#ifndef _LIB_RING_BUFFER_VATOMIC_H +#define _LIB_RING_BUFFER_VATOMIC_H + +/* + * lib/ringbuffer/vatomic.h + * + * Copyright (C) 2010-2012 Mathieu Desnoyers + * + * 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; only + * version 2.1 of the License. + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include +#include + +/* + * Same data type (long) accessed differently depending on configuration. + * v field is for non-atomic access (protected by mutual exclusion). + * In the fast-path, the ring_buffer_config structure is constant, so the + * compiler can statically select the appropriate branch. + * local_t is used for per-cpu and per-thread buffers. + * atomic_long_t is used for globally shared buffers. + */ +union v_atomic { + local_t l; + atomic_long_t a; + long v; +}; + +static inline +long v_read(const struct lib_ring_buffer_config *config, union v_atomic *v_a) +{ + if (config->sync == RING_BUFFER_SYNC_PER_CPU) + return local_read(&v_a->l); + else + return atomic_long_read(&v_a->a); +} + +static inline +void v_set(const struct lib_ring_buffer_config *config, union v_atomic *v_a, + long v) +{ + if (config->sync == RING_BUFFER_SYNC_PER_CPU) + local_set(&v_a->l, v); + else + atomic_long_set(&v_a->a, v); +} + +static inline +void v_add(const struct lib_ring_buffer_config *config, long v, union v_atomic *v_a) +{ + if (config->sync == RING_BUFFER_SYNC_PER_CPU) + local_add(v, &v_a->l); + else + atomic_long_add(v, &v_a->a); +} + +static inline +void v_inc(const struct lib_ring_buffer_config *config, union v_atomic *v_a) +{ + if (config->sync == RING_BUFFER_SYNC_PER_CPU) + local_inc(&v_a->l); + else + atomic_long_inc(&v_a->a); +} + +/* + * Non-atomic decrement. Only used by reader, apply to reader-owned subbuffer. + */ +static inline +void _v_dec(const struct lib_ring_buffer_config *config, union v_atomic *v_a) +{ + --v_a->v; +} + +static inline +long v_cmpxchg(const struct lib_ring_buffer_config *config, union v_atomic *v_a, + long old, long _new) +{ + if (config->sync == RING_BUFFER_SYNC_PER_CPU) + return local_cmpxchg(&v_a->l, old, _new); + else + return atomic_long_cmpxchg(&v_a->a, old, _new); +} + +#endif /* _LIB_RING_BUFFER_VATOMIC_H */ --- linux-3.11.0.orig/ubuntu/lttng-modules/lib/ringbuffer/backend_types.h +++ linux-3.11.0/ubuntu/lttng-modules/lib/ringbuffer/backend_types.h @@ -0,0 +1,97 @@ +#ifndef _LIB_RING_BUFFER_BACKEND_TYPES_H +#define _LIB_RING_BUFFER_BACKEND_TYPES_H + +/* + * lib/ringbuffer/backend_types.h + * + * Ring buffer backend (types). + * + * Copyright (C) 2008-2012 Mathieu Desnoyers + * + * 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; only + * version 2.1 of the License. + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include +#include + +struct lib_ring_buffer_backend_page { + void *virt; /* page virtual address (cached) */ + struct page *page; /* pointer to page structure */ +}; + +struct lib_ring_buffer_backend_pages { + unsigned long mmap_offset; /* offset of the subbuffer in mmap */ + union v_atomic records_commit; /* current records committed count */ + union v_atomic records_unread; /* records to read */ + unsigned long data_size; /* Amount of data to read from subbuf */ + struct lib_ring_buffer_backend_page p[]; +}; + +struct lib_ring_buffer_backend_subbuffer { + /* Identifier for subbuf backend pages. Exchanged atomically. */ + unsigned long id; /* backend subbuffer identifier */ +}; + +/* + * Forward declaration of frontend-specific channel and ring_buffer. + */ +struct channel; +struct lib_ring_buffer; + +struct lib_ring_buffer_backend { + /* Array of ring_buffer_backend_subbuffer for writer */ + struct lib_ring_buffer_backend_subbuffer *buf_wsb; + /* ring_buffer_backend_subbuffer for reader */ + struct lib_ring_buffer_backend_subbuffer buf_rsb; + /* + * Pointer array of backend pages, for whole buffer. + * Indexed by ring_buffer_backend_subbuffer identifier (id) index. + */ + struct lib_ring_buffer_backend_pages **array; + unsigned int num_pages_per_subbuf; + + struct channel *chan; /* Associated channel */ + int cpu; /* This buffer's cpu. -1 if global. */ + union v_atomic records_read; /* Number of records read */ + unsigned int allocated:1; /* is buffer allocated ? */ +}; + +struct channel_backend { + unsigned long buf_size; /* Size of the buffer */ + unsigned long subbuf_size; /* Sub-buffer size */ + unsigned int subbuf_size_order; /* Order of sub-buffer size */ + unsigned int num_subbuf_order; /* + * Order of number of sub-buffers/buffer + * for writer. + */ + unsigned int buf_size_order; /* Order of buffer size */ + unsigned int extra_reader_sb:1; /* has extra reader subbuffer ? */ + struct lib_ring_buffer *buf; /* Channel per-cpu buffers */ + + unsigned long num_subbuf; /* Number of sub-buffers for writer */ + u64 start_tsc; /* Channel creation TSC value */ + void *priv; /* Client-specific information */ + struct notifier_block cpu_hp_notifier; /* CPU hotplug notifier */ + /* + * We need to copy config because the module containing the + * source config can vanish before the last reference to this + * channel's streams is released. + */ + struct lib_ring_buffer_config config; /* Ring buffer configuration */ + cpumask_var_t cpumask; /* Allocated per-cpu buffers cpumask */ + char name[NAME_MAX]; /* Channel name */ +}; + +#endif /* _LIB_RING_BUFFER_BACKEND_TYPES_H */ --- linux-3.11.0.orig/ubuntu/lttng-modules/lib/ringbuffer/config.h +++ linux-3.11.0/ubuntu/lttng-modules/lib/ringbuffer/config.h @@ -0,0 +1,315 @@ +#ifndef _LIB_RING_BUFFER_CONFIG_H +#define _LIB_RING_BUFFER_CONFIG_H + +/* + * lib/ringbuffer/config.h + * + * Ring buffer configuration header. Note: after declaring the standard inline + * functions, clients should also include linux/ringbuffer/api.h. + * + * Copyright (C) 2010-2012 Mathieu Desnoyers + * + * 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; only + * version 2.1 of the License. + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include +#include +#include "../align.h" +#include "../../lttng-tracer-core.h" + +struct lib_ring_buffer; +struct channel; +struct lib_ring_buffer_config; +struct lib_ring_buffer_ctx; + +/* + * Ring buffer client callbacks. Only used by slow path, never on fast path. + * For the fast path, record_header_size(), ring_buffer_clock_read() should be + * provided as inline functions too. These may simply return 0 if not used by + * the client. + */ +struct lib_ring_buffer_client_cb { + /* Mandatory callbacks */ + + /* A static inline version is also required for fast path */ + u64 (*ring_buffer_clock_read) (struct channel *chan); + size_t (*record_header_size) (const struct lib_ring_buffer_config *config, + struct channel *chan, size_t offset, + size_t *pre_header_padding, + struct lib_ring_buffer_ctx *ctx); + + /* Slow path only, at subbuffer switch */ + size_t (*subbuffer_header_size) (void); + void (*buffer_begin) (struct lib_ring_buffer *buf, u64 tsc, + unsigned int subbuf_idx); + void (*buffer_end) (struct lib_ring_buffer *buf, u64 tsc, + unsigned int subbuf_idx, unsigned long data_size); + + /* Optional callbacks (can be set to NULL) */ + + /* Called at buffer creation/finalize */ + int (*buffer_create) (struct lib_ring_buffer *buf, void *priv, + int cpu, const char *name); + /* + * Clients should guarantee that no new reader handle can be opened + * after finalize. + */ + void (*buffer_finalize) (struct lib_ring_buffer *buf, void *priv, int cpu); + + /* + * Extract header length, payload length and timestamp from event + * record. Used by buffer iterators. Timestamp is only used by channel + * iterator. + */ + void (*record_get) (const struct lib_ring_buffer_config *config, + struct channel *chan, struct lib_ring_buffer *buf, + size_t offset, size_t *header_len, + size_t *payload_len, u64 *timestamp); +}; + +/* + * Ring buffer instance configuration. + * + * Declare as "static const" within the client object to ensure the inline fast + * paths can be optimized. + * + * alloc/sync pairs: + * + * RING_BUFFER_ALLOC_PER_CPU and RING_BUFFER_SYNC_PER_CPU : + * Per-cpu buffers with per-cpu synchronization. Tracing must be performed + * with preemption disabled (lib_ring_buffer_get_cpu() and + * lib_ring_buffer_put_cpu()). + * + * RING_BUFFER_ALLOC_PER_CPU and RING_BUFFER_SYNC_GLOBAL : + * Per-cpu buffer with global synchronization. Tracing can be performed with + * preemption enabled, statistically stays on the local buffers. + * + * RING_BUFFER_ALLOC_GLOBAL and RING_BUFFER_SYNC_PER_CPU : + * Should only be used for buffers belonging to a single thread or protected + * by mutual exclusion by the client. Note that periodical sub-buffer switch + * should be disabled in this kind of configuration. + * + * RING_BUFFER_ALLOC_GLOBAL and RING_BUFFER_SYNC_GLOBAL : + * Global shared buffer with global synchronization. + * + * wakeup: + * + * RING_BUFFER_WAKEUP_BY_TIMER uses per-cpu deferrable timers to poll the + * buffers and wake up readers if data is ready. Mainly useful for tracers which + * don't want to call into the wakeup code on the tracing path. Use in + * combination with "read_timer_interval" channel_create() argument. + * + * RING_BUFFER_WAKEUP_BY_WRITER directly wakes up readers when a subbuffer is + * ready to read. Lower latencies before the reader is woken up. Mainly suitable + * for drivers. + * + * RING_BUFFER_WAKEUP_NONE does not perform any wakeup whatsoever. The client + * has the responsibility to perform wakeups. + */ +struct lib_ring_buffer_config { + enum { + RING_BUFFER_ALLOC_PER_CPU, + RING_BUFFER_ALLOC_GLOBAL, + } alloc; + enum { + RING_BUFFER_SYNC_PER_CPU, /* Wait-free */ + RING_BUFFER_SYNC_GLOBAL, /* Lock-free */ + } sync; + enum { + RING_BUFFER_OVERWRITE, /* Overwrite when buffer full */ + RING_BUFFER_DISCARD, /* Discard when buffer full */ + } mode; + enum { + RING_BUFFER_SPLICE, + RING_BUFFER_MMAP, + RING_BUFFER_READ, /* TODO */ + RING_BUFFER_ITERATOR, + RING_BUFFER_NONE, + } output; + enum { + RING_BUFFER_PAGE, + RING_BUFFER_VMAP, /* TODO */ + RING_BUFFER_STATIC, /* TODO */ + } backend; + enum { + RING_BUFFER_NO_OOPS_CONSISTENCY, + RING_BUFFER_OOPS_CONSISTENCY, + } oops; + enum { + RING_BUFFER_IPI_BARRIER, + RING_BUFFER_NO_IPI_BARRIER, + } ipi; + enum { + RING_BUFFER_WAKEUP_BY_TIMER, /* wake up performed by timer */ + RING_BUFFER_WAKEUP_BY_WRITER, /* + * writer wakes up reader, + * not lock-free + * (takes spinlock). + */ + } wakeup; + /* + * tsc_bits: timestamp bits saved at each record. + * 0 and 64 disable the timestamp compression scheme. + */ + unsigned int tsc_bits; + struct lib_ring_buffer_client_cb cb; +}; + +/* + * ring buffer context + * + * Context passed to lib_ring_buffer_reserve(), lib_ring_buffer_commit(), + * lib_ring_buffer_try_discard_reserve(), lib_ring_buffer_align_ctx() and + * lib_ring_buffer_write(). + */ +struct lib_ring_buffer_ctx { + /* input received by lib_ring_buffer_reserve(), saved here. */ + struct channel *chan; /* channel */ + void *priv; /* client private data */ + size_t data_size; /* size of payload */ + int largest_align; /* + * alignment of the largest element + * in the payload + */ + int cpu; /* processor id */ + + /* output from lib_ring_buffer_reserve() */ + struct lib_ring_buffer *buf; /* + * buffer corresponding to processor id + * for this channel + */ + size_t slot_size; /* size of the reserved slot */ + unsigned long buf_offset; /* offset following the record header */ + unsigned long pre_offset; /* + * Initial offset position _before_ + * the record is written. Positioned + * prior to record header alignment + * padding. + */ + u64 tsc; /* time-stamp counter value */ + unsigned int rflags; /* reservation flags */ +}; + +/** + * lib_ring_buffer_ctx_init - initialize ring buffer context + * @ctx: ring buffer context to initialize + * @chan: channel + * @priv: client private data + * @data_size: size of record data payload. It must be greater than 0. + * @largest_align: largest alignment within data payload types + * @cpu: processor id + */ +static inline +void lib_ring_buffer_ctx_init(struct lib_ring_buffer_ctx *ctx, + struct channel *chan, void *priv, + size_t data_size, int largest_align, + int cpu) +{ + ctx->chan = chan; + ctx->priv = priv; + ctx->data_size = data_size; + ctx->largest_align = largest_align; + ctx->cpu = cpu; + ctx->rflags = 0; +} + +/* + * Reservation flags. + * + * RING_BUFFER_RFLAG_FULL_TSC + * + * This flag is passed to record_header_size() and to the primitive used to + * write the record header. It indicates that the full 64-bit time value is + * needed in the record header. If this flag is not set, the record header needs + * only to contain "tsc_bits" bit of time value. + * + * Reservation flags can be added by the client, starting from + * "(RING_BUFFER_FLAGS_END << 0)". It can be used to pass information from + * record_header_size() to lib_ring_buffer_write_record_header(). + */ +#define RING_BUFFER_RFLAG_FULL_TSC (1U << 0) +#define RING_BUFFER_RFLAG_END (1U << 1) + +#ifndef LTTNG_TRACER_CORE_H +#error "lttng-tracer-core.h is needed for RING_BUFFER_ALIGN define" +#endif + +/* + * We need to define RING_BUFFER_ALIGN_ATTR so it is known early at + * compile-time. We have to duplicate the "config->align" information and the + * definition here because config->align is used both in the slow and fast + * paths, but RING_BUFFER_ALIGN_ATTR is only available for the client code. + */ +#ifdef RING_BUFFER_ALIGN + +# define RING_BUFFER_ALIGN_ATTR /* Default arch alignment */ + +/* + * Calculate the offset needed to align the type. + * size_of_type must be non-zero. + */ +static inline +unsigned int lib_ring_buffer_align(size_t align_drift, size_t size_of_type) +{ + return offset_align(align_drift, size_of_type); +} + +#else + +# define RING_BUFFER_ALIGN_ATTR __attribute__((packed)) + +/* + * Calculate the offset needed to align the type. + * size_of_type must be non-zero. + */ +static inline +unsigned int lib_ring_buffer_align(size_t align_drift, size_t size_of_type) +{ + return 0; +} + +#endif + +/** + * lib_ring_buffer_align_ctx - Align context offset on "alignment" + * @ctx: ring buffer context. + */ +static inline +void lib_ring_buffer_align_ctx(struct lib_ring_buffer_ctx *ctx, + size_t alignment) +{ + ctx->buf_offset += lib_ring_buffer_align(ctx->buf_offset, + alignment); +} + +/* + * lib_ring_buffer_check_config() returns 0 on success. + * Used internally to check for valid configurations at channel creation. + */ +static inline +int lib_ring_buffer_check_config(const struct lib_ring_buffer_config *config, + unsigned int switch_timer_interval, + unsigned int read_timer_interval) +{ + if (config->alloc == RING_BUFFER_ALLOC_GLOBAL + && config->sync == RING_BUFFER_SYNC_PER_CPU + && switch_timer_interval) + return -EINVAL; + return 0; +} + +#include "../../wrapper/ringbuffer/vatomic.h" + +#endif /* _LIB_RING_BUFFER_CONFIG_H */ --- linux-3.11.0.orig/ubuntu/lttng-modules/lib/ringbuffer/frontend.h +++ linux-3.11.0/ubuntu/lttng-modules/lib/ringbuffer/frontend.h @@ -0,0 +1,240 @@ +#ifndef _LIB_RING_BUFFER_FRONTEND_H +#define _LIB_RING_BUFFER_FRONTEND_H + +/* + * lib/ringbuffer/frontend.h + * + * Ring Buffer Library Synchronization Header (API). + * + * Copyright (C) 2005-2012 Mathieu Desnoyers + * + * 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; only + * version 2.1 of the License. + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + * + * Author: + * Mathieu Desnoyers + * + * See ring_buffer_frontend.c for more information on wait-free algorithms. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include + +/* Internal helpers */ +#include "../../wrapper/ringbuffer/frontend_internal.h" + +/* Buffer creation/removal and setup operations */ + +/* + * switch_timer_interval is the time interval (in us) to fill sub-buffers with + * padding to let readers get those sub-buffers. Used for live streaming. + * + * read_timer_interval is the time interval (in us) to wake up pending readers. + * + * buf_addr is a pointer the the beginning of the preallocated buffer contiguous + * address mapping. It is used only by RING_BUFFER_STATIC configuration. It can + * be set to NULL for other backends. + */ + +extern +struct channel *channel_create(const struct lib_ring_buffer_config *config, + const char *name, void *priv, + void *buf_addr, + size_t subbuf_size, size_t num_subbuf, + unsigned int switch_timer_interval, + unsigned int read_timer_interval); + +/* + * channel_destroy returns the private data pointer. It finalizes all channel's + * buffers, waits for readers to release all references, and destroys the + * channel. + */ +extern +void *channel_destroy(struct channel *chan); + + +/* Buffer read operations */ + +/* + * Iteration on channel cpumask needs to issue a read barrier to match the write + * barrier in cpu hotplug. It orders the cpumask read before read of per-cpu + * buffer data. The per-cpu buffer is never removed by cpu hotplug; teardown is + * only performed at channel destruction. + */ +#define for_each_channel_cpu(cpu, chan) \ + for ((cpu) = -1; \ + ({ (cpu) = cpumask_next(cpu, (chan)->backend.cpumask); \ + smp_read_barrier_depends(); (cpu) < nr_cpu_ids; });) + +extern struct lib_ring_buffer *channel_get_ring_buffer( + const struct lib_ring_buffer_config *config, + struct channel *chan, int cpu); +extern int lib_ring_buffer_open_read(struct lib_ring_buffer *buf); +extern void lib_ring_buffer_release_read(struct lib_ring_buffer *buf); + +/* + * Read sequence: snapshot, many get_subbuf/put_subbuf, move_consumer. + */ +extern int lib_ring_buffer_snapshot(struct lib_ring_buffer *buf, + unsigned long *consumed, + unsigned long *produced); +extern void lib_ring_buffer_move_consumer(struct lib_ring_buffer *buf, + unsigned long consumed_new); + +extern int lib_ring_buffer_get_subbuf(struct lib_ring_buffer *buf, + unsigned long consumed); +extern void lib_ring_buffer_put_subbuf(struct lib_ring_buffer *buf); + +/* + * lib_ring_buffer_get_next_subbuf/lib_ring_buffer_put_next_subbuf are helpers + * to read sub-buffers sequentially. + */ +static inline int lib_ring_buffer_get_next_subbuf(struct lib_ring_buffer *buf) +{ + int ret; + + ret = lib_ring_buffer_snapshot(buf, &buf->cons_snapshot, + &buf->prod_snapshot); + if (ret) + return ret; + ret = lib_ring_buffer_get_subbuf(buf, buf->cons_snapshot); + return ret; +} + +static inline void lib_ring_buffer_put_next_subbuf(struct lib_ring_buffer *buf) +{ + lib_ring_buffer_put_subbuf(buf); + lib_ring_buffer_move_consumer(buf, subbuf_align(buf->cons_snapshot, + buf->backend.chan)); +} + +extern void channel_reset(struct channel *chan); +extern void lib_ring_buffer_reset(struct lib_ring_buffer *buf); + +static inline +unsigned long lib_ring_buffer_get_offset(const struct lib_ring_buffer_config *config, + struct lib_ring_buffer *buf) +{ + return v_read(config, &buf->offset); +} + +static inline +unsigned long lib_ring_buffer_get_consumed(const struct lib_ring_buffer_config *config, + struct lib_ring_buffer *buf) +{ + return atomic_long_read(&buf->consumed); +} + +/* + * Must call lib_ring_buffer_is_finalized before reading counters (memory + * ordering enforced with respect to trace teardown). + */ +static inline +int lib_ring_buffer_is_finalized(const struct lib_ring_buffer_config *config, + struct lib_ring_buffer *buf) +{ + int finalized = ACCESS_ONCE(buf->finalized); + /* + * Read finalized before counters. + */ + smp_rmb(); + return finalized; +} + +static inline +int lib_ring_buffer_channel_is_finalized(const struct channel *chan) +{ + return chan->finalized; +} + +static inline +int lib_ring_buffer_channel_is_disabled(const struct channel *chan) +{ + return atomic_read(&chan->record_disabled); +} + +static inline +unsigned long lib_ring_buffer_get_read_data_size( + const struct lib_ring_buffer_config *config, + struct lib_ring_buffer *buf) +{ + return subbuffer_get_read_data_size(config, &buf->backend); +} + +static inline +unsigned long lib_ring_buffer_get_records_count( + const struct lib_ring_buffer_config *config, + struct lib_ring_buffer *buf) +{ + return v_read(config, &buf->records_count); +} + +static inline +unsigned long lib_ring_buffer_get_records_overrun( + const struct lib_ring_buffer_config *config, + struct lib_ring_buffer *buf) +{ + return v_read(config, &buf->records_overrun); +} + +static inline +unsigned long lib_ring_buffer_get_records_lost_full( + const struct lib_ring_buffer_config *config, + struct lib_ring_buffer *buf) +{ + return v_read(config, &buf->records_lost_full); +} + +static inline +unsigned long lib_ring_buffer_get_records_lost_wrap( + const struct lib_ring_buffer_config *config, + struct lib_ring_buffer *buf) +{ + return v_read(config, &buf->records_lost_wrap); +} + +static inline +unsigned long lib_ring_buffer_get_records_lost_big( + const struct lib_ring_buffer_config *config, + struct lib_ring_buffer *buf) +{ + return v_read(config, &buf->records_lost_big); +} + +static inline +unsigned long lib_ring_buffer_get_records_read( + const struct lib_ring_buffer_config *config, + struct lib_ring_buffer *buf) +{ + return v_read(config, &buf->backend.records_read); +} + +#endif /* _LIB_RING_BUFFER_FRONTEND_H */ --- linux-3.11.0.orig/ubuntu/lttng-modules/lib/ringbuffer/nohz.h +++ linux-3.11.0/ubuntu/lttng-modules/lib/ringbuffer/nohz.h @@ -0,0 +1,42 @@ +#ifndef _LIB_RING_BUFFER_NOHZ_H +#define _LIB_RING_BUFFER_NOHZ_H + +/* + * lib/ringbuffer/nohz.h + * + * Copyright (C) 2011-2012 Mathieu Desnoyers + * + * 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; only + * version 2.1 of the License. + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifdef CONFIG_LIB_RING_BUFFER +void lib_ring_buffer_tick_nohz_flush(void); +void lib_ring_buffer_tick_nohz_stop(void); +void lib_ring_buffer_tick_nohz_restart(void); +#else +static inline void lib_ring_buffer_tick_nohz_flush(void) +{ +} + +static inline void lib_ring_buffer_tick_nohz_stop(void) +{ +} + +static inline void lib_ring_buffer_tick_nohz_restart(void) +{ +} +#endif + +#endif /* _LIB_RING_BUFFER_NOHZ_H */ --- linux-3.11.0.orig/ubuntu/lttng-modules/lib/ringbuffer/frontend_types.h +++ linux-3.11.0/ubuntu/lttng-modules/lib/ringbuffer/frontend_types.h @@ -0,0 +1,188 @@ +#ifndef _LIB_RING_BUFFER_FRONTEND_TYPES_H +#define _LIB_RING_BUFFER_FRONTEND_TYPES_H + +/* + * lib/ringbuffer/frontend_types.h + * + * Ring Buffer Library Synchronization Header (types). + * + * Copyright (C) 2010-2012 Mathieu Desnoyers + * + * 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; only + * version 2.1 of the License. + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + * + * Author: + * Mathieu Desnoyers + * + * See ring_buffer_frontend.c for more information on wait-free algorithms. + */ + +#include +#include "../../wrapper/ringbuffer/config.h" +#include "../../wrapper/ringbuffer/backend_types.h" +#include "../../wrapper/spinlock.h" +#include "../../lib/prio_heap/lttng_prio_heap.h" /* For per-CPU read-side iterator */ + +/* + * A switch is done during tracing or as a final flush after tracing (so it + * won't write in the new sub-buffer). + */ +enum switch_mode { SWITCH_ACTIVE, SWITCH_FLUSH }; + +/* channel-level read-side iterator */ +struct channel_iter { + /* Prio heap of buffers. Lowest timestamps at the top. */ + struct lttng_ptr_heap heap; /* Heap of struct lib_ring_buffer ptrs */ + struct list_head empty_head; /* Empty buffers linked-list head */ + int read_open; /* Opened for reading ? */ + u64 last_qs; /* Last quiescent state timestamp */ + u64 last_timestamp; /* Last timestamp (for WARN_ON) */ + int last_cpu; /* Last timestamp cpu */ + /* + * read() file operation state. + */ + unsigned long len_left; +}; + +/* channel: collection of per-cpu ring buffers. */ +struct channel { + atomic_t record_disabled; + unsigned long commit_count_mask; /* + * Commit count mask, removing + * the MSBs corresponding to + * bits used to represent the + * subbuffer index. + */ + + struct channel_backend backend; /* Associated backend */ + + unsigned long switch_timer_interval; /* Buffer flush (jiffies) */ + unsigned long read_timer_interval; /* Reader wakeup (jiffies) */ + struct notifier_block cpu_hp_notifier; /* CPU hotplug notifier */ + struct notifier_block tick_nohz_notifier; /* CPU nohz notifier */ + struct notifier_block hp_iter_notifier; /* hotplug iterator notifier */ + unsigned int cpu_hp_enable:1; /* Enable CPU hotplug notif. */ + unsigned int hp_iter_enable:1; /* Enable hp iter notif. */ + wait_queue_head_t read_wait; /* reader wait queue */ + wait_queue_head_t hp_wait; /* CPU hotplug wait queue */ + int finalized; /* Has channel been finalized */ + struct channel_iter iter; /* Channel read-side iterator */ + struct kref ref; /* Reference count */ +}; + +/* Per-subbuffer commit counters used on the hot path */ +struct commit_counters_hot { + union v_atomic cc; /* Commit counter */ + union v_atomic seq; /* Consecutive commits */ +}; + +/* Per-subbuffer commit counters used only on cold paths */ +struct commit_counters_cold { + union v_atomic cc_sb; /* Incremented _once_ at sb switch */ +}; + +/* Per-buffer read iterator */ +struct lib_ring_buffer_iter { + u64 timestamp; /* Current record timestamp */ + size_t header_len; /* Current record header length */ + size_t payload_len; /* Current record payload length */ + + struct list_head empty_node; /* Linked list of empty buffers */ + unsigned long consumed, read_offset, data_size; + enum { + ITER_GET_SUBBUF = 0, + ITER_TEST_RECORD, + ITER_NEXT_RECORD, + ITER_PUT_SUBBUF, + } state; + unsigned int allocated:1; + unsigned int read_open:1; /* Opened for reading ? */ +}; + +/* ring buffer state */ +struct lib_ring_buffer { + /* First 32 bytes cache-hot cacheline */ + union v_atomic offset; /* Current offset in the buffer */ + struct commit_counters_hot *commit_hot; + /* Commit count per sub-buffer */ + atomic_long_t consumed; /* + * Current offset in the buffer + * standard atomic access (shared) + */ + atomic_t record_disabled; + /* End of first 32 bytes cacheline */ + union v_atomic last_tsc; /* + * Last timestamp written in the buffer. + */ + + struct lib_ring_buffer_backend backend; /* Associated backend */ + + struct commit_counters_cold *commit_cold; + /* Commit count per sub-buffer */ + atomic_long_t active_readers; /* + * Active readers count + * standard atomic access (shared) + */ + /* Dropped records */ + union v_atomic records_lost_full; /* Buffer full */ + union v_atomic records_lost_wrap; /* Nested wrap-around */ + union v_atomic records_lost_big; /* Events too big */ + union v_atomic records_count; /* Number of records written */ + union v_atomic records_overrun; /* Number of overwritten records */ + wait_queue_head_t read_wait; /* reader buffer-level wait queue */ + wait_queue_head_t write_wait; /* writer buffer-level wait queue (for metadata only) */ + int finalized; /* buffer has been finalized */ + struct timer_list switch_timer; /* timer for periodical switch */ + struct timer_list read_timer; /* timer for read poll */ + raw_spinlock_t raw_tick_nohz_spinlock; /* nohz entry lock/trylock */ + struct lib_ring_buffer_iter iter; /* read-side iterator */ + unsigned long get_subbuf_consumed; /* Read-side consumed */ + unsigned long prod_snapshot; /* Producer count snapshot */ + unsigned long cons_snapshot; /* Consumer count snapshot */ + unsigned int get_subbuf:1, /* Sub-buffer being held by reader */ + switch_timer_enabled:1, /* Protected by ring_buffer_nohz_lock */ + read_timer_enabled:1; /* Protected by ring_buffer_nohz_lock */ +}; + +static inline +void *channel_get_private(struct channel *chan) +{ + return chan->backend.priv; +} + +/* + * Issue warnings and disable channels upon internal error. + * Can receive struct lib_ring_buffer or struct lib_ring_buffer_backend + * parameters. + */ +#define CHAN_WARN_ON(c, cond) \ + ({ \ + struct channel *__chan; \ + int _____ret = unlikely(cond); \ + if (_____ret) { \ + if (__same_type(*(c), struct channel_backend)) \ + __chan = container_of((void *) (c), \ + struct channel, \ + backend); \ + else if (__same_type(*(c), struct channel)) \ + __chan = (void *) (c); \ + else \ + BUG_ON(1); \ + atomic_inc(&__chan->record_disabled); \ + WARN_ON(1); \ + } \ + _____ret; \ + }) + +#endif /* _LIB_RING_BUFFER_FRONTEND_TYPES_H */ --- linux-3.11.0.orig/ubuntu/lttng-modules/lib/ringbuffer/ring_buffer_frontend.c +++ linux-3.11.0/ubuntu/lttng-modules/lib/ringbuffer/ring_buffer_frontend.c @@ -0,0 +1,1830 @@ +/* + * ring_buffer_frontend.c + * + * Copyright (C) 2005-2012 Mathieu Desnoyers + * + * 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; only + * version 2.1 of the License. + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + * + * + * Ring buffer wait-free buffer synchronization. Producer-consumer and flight + * recorder (overwrite) modes. See thesis: + * + * Desnoyers, Mathieu (2009), "Low-Impact Operating System Tracing", Ph.D. + * dissertation, Ecole Polytechnique de Montreal. + * http://www.lttng.org/pub/thesis/desnoyers-dissertation-2009-12.pdf + * + * - Algorithm presentation in Chapter 5: + * "Lockless Multi-Core High-Throughput Buffering". + * - Algorithm formal verification in Section 8.6: + * "Formal verification of LTTng" + * + * Author: + * Mathieu Desnoyers + * + * Inspired from LTT and RelayFS: + * Karim Yaghmour + * Tom Zanussi + * Bob Wisniewski + * And from K42 : + * Bob Wisniewski + * + * Buffer reader semantic : + * + * - get_subbuf_size + * while buffer is not finalized and empty + * - get_subbuf + * - if return value != 0, continue + * - splice one subbuffer worth of data to a pipe + * - splice the data from pipe to disk/network + * - put_subbuf + */ + +#include +#include +#include + +#include "../../wrapper/ringbuffer/config.h" +#include "../../wrapper/ringbuffer/backend.h" +#include "../../wrapper/ringbuffer/frontend.h" +#include "../../wrapper/ringbuffer/iterator.h" +#include "../../wrapper/ringbuffer/nohz.h" + +/* + * Internal structure representing offsets to use at a sub-buffer switch. + */ +struct switch_offsets { + unsigned long begin, end, old; + size_t pre_header_padding, size; + unsigned int switch_new_start:1, switch_new_end:1, switch_old_start:1, + switch_old_end:1; +}; + +#ifdef CONFIG_NO_HZ +enum tick_nohz_val { + TICK_NOHZ_STOP, + TICK_NOHZ_FLUSH, + TICK_NOHZ_RESTART, +}; + +static ATOMIC_NOTIFIER_HEAD(tick_nohz_notifier); +#endif /* CONFIG_NO_HZ */ + +static DEFINE_PER_CPU(spinlock_t, ring_buffer_nohz_lock); + +DEFINE_PER_CPU(unsigned int, lib_ring_buffer_nesting); +EXPORT_PER_CPU_SYMBOL(lib_ring_buffer_nesting); + +static +void lib_ring_buffer_print_errors(struct channel *chan, + struct lib_ring_buffer *buf, int cpu); + +/* + * Must be called under cpu hotplug protection. + */ +void lib_ring_buffer_free(struct lib_ring_buffer *buf) +{ + struct channel *chan = buf->backend.chan; + + lib_ring_buffer_print_errors(chan, buf, buf->backend.cpu); + kfree(buf->commit_hot); + kfree(buf->commit_cold); + + lib_ring_buffer_backend_free(&buf->backend); +} + +/** + * lib_ring_buffer_reset - Reset ring buffer to initial values. + * @buf: Ring buffer. + * + * Effectively empty the ring buffer. Should be called when the buffer is not + * used for writing. The ring buffer can be opened for reading, but the reader + * should not be using the iterator concurrently with reset. The previous + * current iterator record is reset. + */ +void lib_ring_buffer_reset(struct lib_ring_buffer *buf) +{ + struct channel *chan = buf->backend.chan; + const struct lib_ring_buffer_config *config = &chan->backend.config; + unsigned int i; + + /* + * Reset iterator first. It will put the subbuffer if it currently holds + * it. + */ + lib_ring_buffer_iterator_reset(buf); + v_set(config, &buf->offset, 0); + for (i = 0; i < chan->backend.num_subbuf; i++) { + v_set(config, &buf->commit_hot[i].cc, 0); + v_set(config, &buf->commit_hot[i].seq, 0); + v_set(config, &buf->commit_cold[i].cc_sb, 0); + } + atomic_long_set(&buf->consumed, 0); + atomic_set(&buf->record_disabled, 0); + v_set(config, &buf->last_tsc, 0); + lib_ring_buffer_backend_reset(&buf->backend); + /* Don't reset number of active readers */ + v_set(config, &buf->records_lost_full, 0); + v_set(config, &buf->records_lost_wrap, 0); + v_set(config, &buf->records_lost_big, 0); + v_set(config, &buf->records_count, 0); + v_set(config, &buf->records_overrun, 0); + buf->finalized = 0; +} +EXPORT_SYMBOL_GPL(lib_ring_buffer_reset); + +/** + * channel_reset - Reset channel to initial values. + * @chan: Channel. + * + * Effectively empty the channel. Should be called when the channel is not used + * for writing. The channel can be opened for reading, but the reader should not + * be using the iterator concurrently with reset. The previous current iterator + * record is reset. + */ +void channel_reset(struct channel *chan) +{ + /* + * Reset iterators first. Will put the subbuffer if held for reading. + */ + channel_iterator_reset(chan); + atomic_set(&chan->record_disabled, 0); + /* Don't reset commit_count_mask, still valid */ + channel_backend_reset(&chan->backend); + /* Don't reset switch/read timer interval */ + /* Don't reset notifiers and notifier enable bits */ + /* Don't reset reader reference count */ +} +EXPORT_SYMBOL_GPL(channel_reset); + +/* + * Must be called under cpu hotplug protection. + */ +int lib_ring_buffer_create(struct lib_ring_buffer *buf, + struct channel_backend *chanb, int cpu) +{ + const struct lib_ring_buffer_config *config = &chanb->config; + struct channel *chan = container_of(chanb, struct channel, backend); + void *priv = chanb->priv; + size_t subbuf_header_size; + u64 tsc; + int ret; + + /* Test for cpu hotplug */ + if (buf->backend.allocated) + return 0; + + /* + * Paranoia: per cpu dynamic allocation is not officially documented as + * zeroing the memory, so let's do it here too, just in case. + */ + memset(buf, 0, sizeof(*buf)); + + ret = lib_ring_buffer_backend_create(&buf->backend, &chan->backend, cpu); + if (ret) + return ret; + + buf->commit_hot = + kzalloc_node(ALIGN(sizeof(*buf->commit_hot) + * chan->backend.num_subbuf, + 1 << INTERNODE_CACHE_SHIFT), + GFP_KERNEL, cpu_to_node(max(cpu, 0))); + if (!buf->commit_hot) { + ret = -ENOMEM; + goto free_chanbuf; + } + + buf->commit_cold = + kzalloc_node(ALIGN(sizeof(*buf->commit_cold) + * chan->backend.num_subbuf, + 1 << INTERNODE_CACHE_SHIFT), + GFP_KERNEL, cpu_to_node(max(cpu, 0))); + if (!buf->commit_cold) { + ret = -ENOMEM; + goto free_commit; + } + + init_waitqueue_head(&buf->read_wait); + init_waitqueue_head(&buf->write_wait); + raw_spin_lock_init(&buf->raw_tick_nohz_spinlock); + + /* + * Write the subbuffer header for first subbuffer so we know the total + * duration of data gathering. + */ + subbuf_header_size = config->cb.subbuffer_header_size(); + v_set(config, &buf->offset, subbuf_header_size); + subbuffer_id_clear_noref(config, &buf->backend.buf_wsb[0].id); + tsc = config->cb.ring_buffer_clock_read(buf->backend.chan); + config->cb.buffer_begin(buf, tsc, 0); + v_add(config, subbuf_header_size, &buf->commit_hot[0].cc); + + if (config->cb.buffer_create) { + ret = config->cb.buffer_create(buf, priv, cpu, chanb->name); + if (ret) + goto free_init; + } + + /* + * Ensure the buffer is ready before setting it to allocated and setting + * the cpumask. + * Used for cpu hotplug vs cpumask iteration. + */ + smp_wmb(); + buf->backend.allocated = 1; + + if (config->alloc == RING_BUFFER_ALLOC_PER_CPU) { + CHAN_WARN_ON(chan, cpumask_test_cpu(cpu, + chan->backend.cpumask)); + cpumask_set_cpu(cpu, chan->backend.cpumask); + } + + return 0; + + /* Error handling */ +free_init: + kfree(buf->commit_cold); +free_commit: + kfree(buf->commit_hot); +free_chanbuf: + lib_ring_buffer_backend_free(&buf->backend); + return ret; +} + +static void switch_buffer_timer(unsigned long data) +{ + struct lib_ring_buffer *buf = (struct lib_ring_buffer *)data; + struct channel *chan = buf->backend.chan; + const struct lib_ring_buffer_config *config = &chan->backend.config; + + /* + * Only flush buffers periodically if readers are active. + */ + if (atomic_long_read(&buf->active_readers)) + lib_ring_buffer_switch_slow(buf, SWITCH_ACTIVE); + + if (config->alloc == RING_BUFFER_ALLOC_PER_CPU) + mod_timer_pinned(&buf->switch_timer, + jiffies + chan->switch_timer_interval); + else + mod_timer(&buf->switch_timer, + jiffies + chan->switch_timer_interval); +} + +/* + * Called with ring_buffer_nohz_lock held for per-cpu buffers. + */ +static void lib_ring_buffer_start_switch_timer(struct lib_ring_buffer *buf) +{ + struct channel *chan = buf->backend.chan; + const struct lib_ring_buffer_config *config = &chan->backend.config; + + if (!chan->switch_timer_interval || buf->switch_timer_enabled) + return; + init_timer(&buf->switch_timer); + buf->switch_timer.function = switch_buffer_timer; + buf->switch_timer.expires = jiffies + chan->switch_timer_interval; + buf->switch_timer.data = (unsigned long)buf; + if (config->alloc == RING_BUFFER_ALLOC_PER_CPU) + add_timer_on(&buf->switch_timer, buf->backend.cpu); + else + add_timer(&buf->switch_timer); + buf->switch_timer_enabled = 1; +} + +/* + * Called with ring_buffer_nohz_lock held for per-cpu buffers. + */ +static void lib_ring_buffer_stop_switch_timer(struct lib_ring_buffer *buf) +{ + struct channel *chan = buf->backend.chan; + + if (!chan->switch_timer_interval || !buf->switch_timer_enabled) + return; + + del_timer_sync(&buf->switch_timer); + buf->switch_timer_enabled = 0; +} + +/* + * Polling timer to check the channels for data. + */ +static void read_buffer_timer(unsigned long data) +{ + struct lib_ring_buffer *buf = (struct lib_ring_buffer *)data; + struct channel *chan = buf->backend.chan; + const struct lib_ring_buffer_config *config = &chan->backend.config; + + CHAN_WARN_ON(chan, !buf->backend.allocated); + + if (atomic_long_read(&buf->active_readers) + && lib_ring_buffer_poll_deliver(config, buf, chan)) { + wake_up_interruptible(&buf->read_wait); + wake_up_interruptible(&chan->read_wait); + } + + if (config->alloc == RING_BUFFER_ALLOC_PER_CPU) + mod_timer_pinned(&buf->read_timer, + jiffies + chan->read_timer_interval); + else + mod_timer(&buf->read_timer, + jiffies + chan->read_timer_interval); +} + +/* + * Called with ring_buffer_nohz_lock held for per-cpu buffers. + */ +static void lib_ring_buffer_start_read_timer(struct lib_ring_buffer *buf) +{ + struct channel *chan = buf->backend.chan; + const struct lib_ring_buffer_config *config = &chan->backend.config; + + if (config->wakeup != RING_BUFFER_WAKEUP_BY_TIMER + || !chan->read_timer_interval + || buf->read_timer_enabled) + return; + + init_timer(&buf->read_timer); + buf->read_timer.function = read_buffer_timer; + buf->read_timer.expires = jiffies + chan->read_timer_interval; + buf->read_timer.data = (unsigned long)buf; + + if (config->alloc == RING_BUFFER_ALLOC_PER_CPU) + add_timer_on(&buf->read_timer, buf->backend.cpu); + else + add_timer(&buf->read_timer); + buf->read_timer_enabled = 1; +} + +/* + * Called with ring_buffer_nohz_lock held for per-cpu buffers. + */ +static void lib_ring_buffer_stop_read_timer(struct lib_ring_buffer *buf) +{ + struct channel *chan = buf->backend.chan; + const struct lib_ring_buffer_config *config = &chan->backend.config; + + if (config->wakeup != RING_BUFFER_WAKEUP_BY_TIMER + || !chan->read_timer_interval + || !buf->read_timer_enabled) + return; + + del_timer_sync(&buf->read_timer); + /* + * do one more check to catch data that has been written in the last + * timer period. + */ + if (lib_ring_buffer_poll_deliver(config, buf, chan)) { + wake_up_interruptible(&buf->read_wait); + wake_up_interruptible(&chan->read_wait); + } + buf->read_timer_enabled = 0; +} + +#ifdef CONFIG_HOTPLUG_CPU +/** + * lib_ring_buffer_cpu_hp_callback - CPU hotplug callback + * @nb: notifier block + * @action: hotplug action to take + * @hcpu: CPU number + * + * Returns the success/failure of the operation. (%NOTIFY_OK, %NOTIFY_BAD) + */ +static +int lib_ring_buffer_cpu_hp_callback(struct notifier_block *nb, + unsigned long action, + void *hcpu) +{ + unsigned int cpu = (unsigned long)hcpu; + struct channel *chan = container_of(nb, struct channel, + cpu_hp_notifier); + struct lib_ring_buffer *buf = per_cpu_ptr(chan->backend.buf, cpu); + const struct lib_ring_buffer_config *config = &chan->backend.config; + + if (!chan->cpu_hp_enable) + return NOTIFY_DONE; + + CHAN_WARN_ON(chan, config->alloc == RING_BUFFER_ALLOC_GLOBAL); + + switch (action) { + case CPU_DOWN_FAILED: + case CPU_DOWN_FAILED_FROZEN: + case CPU_ONLINE: + case CPU_ONLINE_FROZEN: + wake_up_interruptible(&chan->hp_wait); + lib_ring_buffer_start_switch_timer(buf); + lib_ring_buffer_start_read_timer(buf); + return NOTIFY_OK; + + case CPU_DOWN_PREPARE: + case CPU_DOWN_PREPARE_FROZEN: + lib_ring_buffer_stop_switch_timer(buf); + lib_ring_buffer_stop_read_timer(buf); + return NOTIFY_OK; + + case CPU_DEAD: + case CPU_DEAD_FROZEN: + /* + * Performing a buffer switch on a remote CPU. Performed by + * the CPU responsible for doing the hotunplug after the target + * CPU stopped running completely. Ensures that all data + * from that remote CPU is flushed. + */ + lib_ring_buffer_switch_slow(buf, SWITCH_ACTIVE); + return NOTIFY_OK; + + default: + return NOTIFY_DONE; + } +} +#endif + +#if defined(CONFIG_NO_HZ) && defined(CONFIG_LIB_RING_BUFFER) +/* + * For per-cpu buffers, call the reader wakeups before switching the buffer, so + * that wake-up-tracing generated events are flushed before going idle (in + * tick_nohz). We test if the spinlock is locked to deal with the race where + * readers try to sample the ring buffer before we perform the switch. We let + * the readers retry in that case. If there is data in the buffer, the wake up + * is going to forbid the CPU running the reader thread from going idle. + */ +static int notrace ring_buffer_tick_nohz_callback(struct notifier_block *nb, + unsigned long val, + void *data) +{ + struct channel *chan = container_of(nb, struct channel, + tick_nohz_notifier); + const struct lib_ring_buffer_config *config = &chan->backend.config; + struct lib_ring_buffer *buf; + int cpu = smp_processor_id(); + + if (config->alloc != RING_BUFFER_ALLOC_PER_CPU) { + /* + * We don't support keeping the system idle with global buffers + * and streaming active. In order to do so, we would need to + * sample a non-nohz-cpumask racelessly with the nohz updates + * without adding synchronization overhead to nohz. Leave this + * use-case out for now. + */ + return 0; + } + + buf = channel_get_ring_buffer(config, chan, cpu); + switch (val) { + case TICK_NOHZ_FLUSH: + raw_spin_lock(&buf->raw_tick_nohz_spinlock); + if (config->wakeup == RING_BUFFER_WAKEUP_BY_TIMER + && chan->read_timer_interval + && atomic_long_read(&buf->active_readers) + && (lib_ring_buffer_poll_deliver(config, buf, chan) + || lib_ring_buffer_pending_data(config, buf, chan))) { + wake_up_interruptible(&buf->read_wait); + wake_up_interruptible(&chan->read_wait); + } + if (chan->switch_timer_interval) + lib_ring_buffer_switch_slow(buf, SWITCH_ACTIVE); + raw_spin_unlock(&buf->raw_tick_nohz_spinlock); + break; + case TICK_NOHZ_STOP: + spin_lock(&__get_cpu_var(ring_buffer_nohz_lock)); + lib_ring_buffer_stop_switch_timer(buf); + lib_ring_buffer_stop_read_timer(buf); + spin_unlock(&__get_cpu_var(ring_buffer_nohz_lock)); + break; + case TICK_NOHZ_RESTART: + spin_lock(&__get_cpu_var(ring_buffer_nohz_lock)); + lib_ring_buffer_start_read_timer(buf); + lib_ring_buffer_start_switch_timer(buf); + spin_unlock(&__get_cpu_var(ring_buffer_nohz_lock)); + break; + } + + return 0; +} + +void notrace lib_ring_buffer_tick_nohz_flush(void) +{ + atomic_notifier_call_chain(&tick_nohz_notifier, TICK_NOHZ_FLUSH, + NULL); +} + +void notrace lib_ring_buffer_tick_nohz_stop(void) +{ + atomic_notifier_call_chain(&tick_nohz_notifier, TICK_NOHZ_STOP, + NULL); +} + +void notrace lib_ring_buffer_tick_nohz_restart(void) +{ + atomic_notifier_call_chain(&tick_nohz_notifier, TICK_NOHZ_RESTART, + NULL); +} +#endif /* defined(CONFIG_NO_HZ) && defined(CONFIG_LIB_RING_BUFFER) */ + +/* + * Holds CPU hotplug. + */ +static void channel_unregister_notifiers(struct channel *chan) +{ + const struct lib_ring_buffer_config *config = &chan->backend.config; + int cpu; + + channel_iterator_unregister_notifiers(chan); + if (config->alloc == RING_BUFFER_ALLOC_PER_CPU) { +#ifdef CONFIG_NO_HZ + /* + * Remove the nohz notifier first, so we are certain we stop + * the timers. + */ + atomic_notifier_chain_unregister(&tick_nohz_notifier, + &chan->tick_nohz_notifier); + /* + * ring_buffer_nohz_lock will not be needed below, because + * we just removed the notifiers, which were the only source of + * concurrency. + */ +#endif /* CONFIG_NO_HZ */ +#ifdef CONFIG_HOTPLUG_CPU + get_online_cpus(); + chan->cpu_hp_enable = 0; + for_each_online_cpu(cpu) { + struct lib_ring_buffer *buf = per_cpu_ptr(chan->backend.buf, + cpu); + lib_ring_buffer_stop_switch_timer(buf); + lib_ring_buffer_stop_read_timer(buf); + } + put_online_cpus(); + unregister_cpu_notifier(&chan->cpu_hp_notifier); +#else + for_each_possible_cpu(cpu) { + struct lib_ring_buffer *buf = per_cpu_ptr(chan->backend.buf, + cpu); + lib_ring_buffer_stop_switch_timer(buf); + lib_ring_buffer_stop_read_timer(buf); + } +#endif + } else { + struct lib_ring_buffer *buf = chan->backend.buf; + + lib_ring_buffer_stop_switch_timer(buf); + lib_ring_buffer_stop_read_timer(buf); + } + channel_backend_unregister_notifiers(&chan->backend); +} + +static void channel_free(struct channel *chan) +{ + channel_iterator_free(chan); + channel_backend_free(&chan->backend); + kfree(chan); +} + +/** + * channel_create - Create channel. + * @config: ring buffer instance configuration + * @name: name of the channel + * @priv: ring buffer client private data + * @buf_addr: pointer the the beginning of the preallocated buffer contiguous + * address mapping. It is used only by RING_BUFFER_STATIC + * configuration. It can be set to NULL for other backends. + * @subbuf_size: subbuffer size + * @num_subbuf: number of subbuffers + * @switch_timer_interval: Time interval (in us) to fill sub-buffers with + * padding to let readers get those sub-buffers. + * Used for live streaming. + * @read_timer_interval: Time interval (in us) to wake up pending readers. + * + * Holds cpu hotplug. + * Returns NULL on failure. + */ +struct channel *channel_create(const struct lib_ring_buffer_config *config, + const char *name, void *priv, void *buf_addr, + size_t subbuf_size, + size_t num_subbuf, unsigned int switch_timer_interval, + unsigned int read_timer_interval) +{ + int ret, cpu; + struct channel *chan; + + if (lib_ring_buffer_check_config(config, switch_timer_interval, + read_timer_interval)) + return NULL; + + chan = kzalloc(sizeof(struct channel), GFP_KERNEL); + if (!chan) + return NULL; + + ret = channel_backend_init(&chan->backend, name, config, priv, + subbuf_size, num_subbuf); + if (ret) + goto error; + + ret = channel_iterator_init(chan); + if (ret) + goto error_free_backend; + + chan->commit_count_mask = (~0UL >> chan->backend.num_subbuf_order); + chan->switch_timer_interval = usecs_to_jiffies(switch_timer_interval); + chan->read_timer_interval = usecs_to_jiffies(read_timer_interval); + kref_init(&chan->ref); + init_waitqueue_head(&chan->read_wait); + init_waitqueue_head(&chan->hp_wait); + + if (config->alloc == RING_BUFFER_ALLOC_PER_CPU) { +#if defined(CONFIG_NO_HZ) && defined(CONFIG_LIB_RING_BUFFER) + /* Only benefit from NO_HZ idle with per-cpu buffers for now. */ + chan->tick_nohz_notifier.notifier_call = + ring_buffer_tick_nohz_callback; + chan->tick_nohz_notifier.priority = ~0U; + atomic_notifier_chain_register(&tick_nohz_notifier, + &chan->tick_nohz_notifier); +#endif /* defined(CONFIG_NO_HZ) && defined(CONFIG_LIB_RING_BUFFER) */ + + /* + * In case of non-hotplug cpu, if the ring-buffer is allocated + * in early initcall, it will not be notified of secondary cpus. + * In that off case, we need to allocate for all possible cpus. + */ +#ifdef CONFIG_HOTPLUG_CPU + chan->cpu_hp_notifier.notifier_call = + lib_ring_buffer_cpu_hp_callback; + chan->cpu_hp_notifier.priority = 6; + register_cpu_notifier(&chan->cpu_hp_notifier); + + get_online_cpus(); + for_each_online_cpu(cpu) { + struct lib_ring_buffer *buf = per_cpu_ptr(chan->backend.buf, + cpu); + spin_lock(&per_cpu(ring_buffer_nohz_lock, cpu)); + lib_ring_buffer_start_switch_timer(buf); + lib_ring_buffer_start_read_timer(buf); + spin_unlock(&per_cpu(ring_buffer_nohz_lock, cpu)); + } + chan->cpu_hp_enable = 1; + put_online_cpus(); +#else + for_each_possible_cpu(cpu) { + struct lib_ring_buffer *buf = per_cpu_ptr(chan->backend.buf, + cpu); + spin_lock(&per_cpu(ring_buffer_nohz_lock, cpu)); + lib_ring_buffer_start_switch_timer(buf); + lib_ring_buffer_start_read_timer(buf); + spin_unlock(&per_cpu(ring_buffer_nohz_lock, cpu)); + } +#endif + } else { + struct lib_ring_buffer *buf = chan->backend.buf; + + lib_ring_buffer_start_switch_timer(buf); + lib_ring_buffer_start_read_timer(buf); + } + + return chan; + +error_free_backend: + channel_backend_free(&chan->backend); +error: + kfree(chan); + return NULL; +} +EXPORT_SYMBOL_GPL(channel_create); + +static +void channel_release(struct kref *kref) +{ + struct channel *chan = container_of(kref, struct channel, ref); + channel_free(chan); +} + +/** + * channel_destroy - Finalize, wait for q.s. and destroy channel. + * @chan: channel to destroy + * + * Holds cpu hotplug. + * Call "destroy" callback, finalize channels, and then decrement the + * channel reference count. Note that when readers have completed data + * consumption of finalized channels, get_subbuf() will return -ENODATA. + * They should release their handle at that point. Returns the private + * data pointer. + */ +void *channel_destroy(struct channel *chan) +{ + int cpu; + const struct lib_ring_buffer_config *config = &chan->backend.config; + void *priv; + + channel_unregister_notifiers(chan); + + if (config->alloc == RING_BUFFER_ALLOC_PER_CPU) { + /* + * No need to hold cpu hotplug, because all notifiers have been + * unregistered. + */ + for_each_channel_cpu(cpu, chan) { + struct lib_ring_buffer *buf = per_cpu_ptr(chan->backend.buf, + cpu); + + if (config->cb.buffer_finalize) + config->cb.buffer_finalize(buf, + chan->backend.priv, + cpu); + if (buf->backend.allocated) + lib_ring_buffer_switch_slow(buf, SWITCH_FLUSH); + /* + * Perform flush before writing to finalized. + */ + smp_wmb(); + ACCESS_ONCE(buf->finalized) = 1; + wake_up_interruptible(&buf->read_wait); + } + } else { + struct lib_ring_buffer *buf = chan->backend.buf; + + if (config->cb.buffer_finalize) + config->cb.buffer_finalize(buf, chan->backend.priv, -1); + if (buf->backend.allocated) + lib_ring_buffer_switch_slow(buf, SWITCH_FLUSH); + /* + * Perform flush before writing to finalized. + */ + smp_wmb(); + ACCESS_ONCE(buf->finalized) = 1; + wake_up_interruptible(&buf->read_wait); + } + ACCESS_ONCE(chan->finalized) = 1; + wake_up_interruptible(&chan->hp_wait); + wake_up_interruptible(&chan->read_wait); + priv = chan->backend.priv; + kref_put(&chan->ref, channel_release); + return priv; +} +EXPORT_SYMBOL_GPL(channel_destroy); + +struct lib_ring_buffer *channel_get_ring_buffer( + const struct lib_ring_buffer_config *config, + struct channel *chan, int cpu) +{ + if (config->alloc == RING_BUFFER_ALLOC_GLOBAL) + return chan->backend.buf; + else + return per_cpu_ptr(chan->backend.buf, cpu); +} +EXPORT_SYMBOL_GPL(channel_get_ring_buffer); + +int lib_ring_buffer_open_read(struct lib_ring_buffer *buf) +{ + struct channel *chan = buf->backend.chan; + + if (!atomic_long_add_unless(&buf->active_readers, 1, 1)) + return -EBUSY; + kref_get(&chan->ref); + smp_mb__after_atomic_inc(); + return 0; +} +EXPORT_SYMBOL_GPL(lib_ring_buffer_open_read); + +void lib_ring_buffer_release_read(struct lib_ring_buffer *buf) +{ + struct channel *chan = buf->backend.chan; + + CHAN_WARN_ON(chan, atomic_long_read(&buf->active_readers) != 1); + smp_mb__before_atomic_dec(); + atomic_long_dec(&buf->active_readers); + kref_put(&chan->ref, channel_release); +} +EXPORT_SYMBOL_GPL(lib_ring_buffer_release_read); + +/* + * Promote compiler barrier to a smp_mb(). + * For the specific ring buffer case, this IPI call should be removed if the + * architecture does not reorder writes. This should eventually be provided by + * a separate architecture-specific infrastructure. + */ +static void remote_mb(void *info) +{ + smp_mb(); +} + +/** + * lib_ring_buffer_snapshot - save subbuffer position snapshot (for read) + * @buf: ring buffer + * @consumed: consumed count indicating the position where to read + * @produced: produced count, indicates position when to stop reading + * + * Returns -ENODATA if buffer is finalized, -EAGAIN if there is currently no + * data to read at consumed position, or 0 if the get operation succeeds. + * Busy-loop trying to get data if the tick_nohz sequence lock is held. + */ + +int lib_ring_buffer_snapshot(struct lib_ring_buffer *buf, + unsigned long *consumed, unsigned long *produced) +{ + struct channel *chan = buf->backend.chan; + const struct lib_ring_buffer_config *config = &chan->backend.config; + unsigned long consumed_cur, write_offset; + int finalized; + +retry: + finalized = ACCESS_ONCE(buf->finalized); + /* + * Read finalized before counters. + */ + smp_rmb(); + consumed_cur = atomic_long_read(&buf->consumed); + /* + * No need to issue a memory barrier between consumed count read and + * write offset read, because consumed count can only change + * concurrently in overwrite mode, and we keep a sequence counter + * identifier derived from the write offset to check we are getting + * the same sub-buffer we are expecting (the sub-buffers are atomically + * "tagged" upon writes, tags are checked upon read). + */ + write_offset = v_read(config, &buf->offset); + + /* + * Check that we are not about to read the same subbuffer in + * which the writer head is. + */ + if (subbuf_trunc(write_offset, chan) - subbuf_trunc(consumed_cur, chan) + == 0) + goto nodata; + + *consumed = consumed_cur; + *produced = subbuf_trunc(write_offset, chan); + + return 0; + +nodata: + /* + * The memory barriers __wait_event()/wake_up_interruptible() take care + * of "raw_spin_is_locked" memory ordering. + */ + if (finalized) + return -ENODATA; + else if (raw_spin_is_locked(&buf->raw_tick_nohz_spinlock)) + goto retry; + else + return -EAGAIN; +} +EXPORT_SYMBOL_GPL(lib_ring_buffer_snapshot); + +/** + * lib_ring_buffer_put_snapshot - move consumed counter forward + * + * Should only be called from consumer context. + * @buf: ring buffer + * @consumed_new: new consumed count value + */ +void lib_ring_buffer_move_consumer(struct lib_ring_buffer *buf, + unsigned long consumed_new) +{ + struct lib_ring_buffer_backend *bufb = &buf->backend; + struct channel *chan = bufb->chan; + unsigned long consumed; + + CHAN_WARN_ON(chan, atomic_long_read(&buf->active_readers) != 1); + + /* + * Only push the consumed value forward. + * If the consumed cmpxchg fails, this is because we have been pushed by + * the writer in flight recorder mode. + */ + consumed = atomic_long_read(&buf->consumed); + while ((long) consumed - (long) consumed_new < 0) + consumed = atomic_long_cmpxchg(&buf->consumed, consumed, + consumed_new); + /* Wake-up the metadata producer */ + wake_up_interruptible(&buf->write_wait); +} +EXPORT_SYMBOL_GPL(lib_ring_buffer_move_consumer); + +/** + * lib_ring_buffer_get_subbuf - get exclusive access to subbuffer for reading + * @buf: ring buffer + * @consumed: consumed count indicating the position where to read + * + * Returns -ENODATA if buffer is finalized, -EAGAIN if there is currently no + * data to read at consumed position, or 0 if the get operation succeeds. + * Busy-loop trying to get data if the tick_nohz sequence lock is held. + */ +int lib_ring_buffer_get_subbuf(struct lib_ring_buffer *buf, + unsigned long consumed) +{ + struct channel *chan = buf->backend.chan; + const struct lib_ring_buffer_config *config = &chan->backend.config; + unsigned long consumed_cur, consumed_idx, commit_count, write_offset; + int ret; + int finalized; + + if (buf->get_subbuf) { + /* + * Reader is trying to get a subbuffer twice. + */ + CHAN_WARN_ON(chan, 1); + return -EBUSY; + } +retry: + finalized = ACCESS_ONCE(buf->finalized); + /* + * Read finalized before counters. + */ + smp_rmb(); + consumed_cur = atomic_long_read(&buf->consumed); + consumed_idx = subbuf_index(consumed, chan); + commit_count = v_read(config, &buf->commit_cold[consumed_idx].cc_sb); + /* + * Make sure we read the commit count before reading the buffer + * data and the write offset. Correct consumed offset ordering + * wrt commit count is insured by the use of cmpxchg to update + * the consumed offset. + * smp_call_function_single can fail if the remote CPU is offline, + * this is OK because then there is no wmb to execute there. + * If our thread is executing on the same CPU as the on the buffers + * belongs to, we don't have to synchronize it at all. If we are + * migrated, the scheduler will take care of the memory barriers. + * Normally, smp_call_function_single() should ensure program order when + * executing the remote function, which implies that it surrounds the + * function execution with : + * smp_mb() + * send IPI + * csd_lock_wait + * recv IPI + * smp_mb() + * exec. function + * smp_mb() + * csd unlock + * smp_mb() + * + * However, smp_call_function_single() does not seem to clearly execute + * such barriers. It depends on spinlock semantic to provide the barrier + * before executing the IPI and, when busy-looping, csd_lock_wait only + * executes smp_mb() when it has to wait for the other CPU. + * + * I don't trust this code. Therefore, let's add the smp_mb() sequence + * required ourself, even if duplicated. It has no performance impact + * anyway. + * + * smp_mb() is needed because smp_rmb() and smp_wmb() only order read vs + * read and write vs write. They do not ensure core synchronization. We + * really have to ensure total order between the 3 barriers running on + * the 2 CPUs. + */ + if (config->ipi == RING_BUFFER_IPI_BARRIER) { + if (config->sync == RING_BUFFER_SYNC_PER_CPU + && config->alloc == RING_BUFFER_ALLOC_PER_CPU) { + if (raw_smp_processor_id() != buf->backend.cpu) { + /* Total order with IPI handler smp_mb() */ + smp_mb(); + smp_call_function_single(buf->backend.cpu, + remote_mb, NULL, 1); + /* Total order with IPI handler smp_mb() */ + smp_mb(); + } + } else { + /* Total order with IPI handler smp_mb() */ + smp_mb(); + smp_call_function(remote_mb, NULL, 1); + /* Total order with IPI handler smp_mb() */ + smp_mb(); + } + } else { + /* + * Local rmb to match the remote wmb to read the commit count + * before the buffer data and the write offset. + */ + smp_rmb(); + } + + write_offset = v_read(config, &buf->offset); + + /* + * Check that the buffer we are getting is after or at consumed_cur + * position. + */ + if ((long) subbuf_trunc(consumed, chan) + - (long) subbuf_trunc(consumed_cur, chan) < 0) + goto nodata; + + /* + * Check that the subbuffer we are trying to consume has been + * already fully committed. + */ + if (((commit_count - chan->backend.subbuf_size) + & chan->commit_count_mask) + - (buf_trunc(consumed, chan) + >> chan->backend.num_subbuf_order) + != 0) + goto nodata; + + /* + * Check that we are not about to read the same subbuffer in + * which the writer head is. + */ + if (subbuf_trunc(write_offset, chan) - subbuf_trunc(consumed, chan) + == 0) + goto nodata; + + /* + * Failure to get the subbuffer causes a busy-loop retry without going + * to a wait queue. These are caused by short-lived race windows where + * the writer is getting access to a subbuffer we were trying to get + * access to. Also checks that the "consumed" buffer count we are + * looking for matches the one contained in the subbuffer id. + */ + ret = update_read_sb_index(config, &buf->backend, &chan->backend, + consumed_idx, buf_trunc_val(consumed, chan)); + if (ret) + goto retry; + subbuffer_id_clear_noref(config, &buf->backend.buf_rsb.id); + + buf->get_subbuf_consumed = consumed; + buf->get_subbuf = 1; + + return 0; + +nodata: + /* + * The memory barriers __wait_event()/wake_up_interruptible() take care + * of "raw_spin_is_locked" memory ordering. + */ + if (finalized) + return -ENODATA; + else if (raw_spin_is_locked(&buf->raw_tick_nohz_spinlock)) + goto retry; + else + return -EAGAIN; +} +EXPORT_SYMBOL_GPL(lib_ring_buffer_get_subbuf); + +/** + * lib_ring_buffer_put_subbuf - release exclusive subbuffer access + * @buf: ring buffer + */ +void lib_ring_buffer_put_subbuf(struct lib_ring_buffer *buf) +{ + struct lib_ring_buffer_backend *bufb = &buf->backend; + struct channel *chan = bufb->chan; + const struct lib_ring_buffer_config *config = &chan->backend.config; + unsigned long read_sb_bindex, consumed_idx, consumed; + + CHAN_WARN_ON(chan, atomic_long_read(&buf->active_readers) != 1); + + if (!buf->get_subbuf) { + /* + * Reader puts a subbuffer it did not get. + */ + CHAN_WARN_ON(chan, 1); + return; + } + consumed = buf->get_subbuf_consumed; + buf->get_subbuf = 0; + + /* + * Clear the records_unread counter. (overruns counter) + * Can still be non-zero if a file reader simply grabbed the data + * without using iterators. + * Can be below zero if an iterator is used on a snapshot more than + * once. + */ + read_sb_bindex = subbuffer_id_get_index(config, bufb->buf_rsb.id); + v_add(config, v_read(config, + &bufb->array[read_sb_bindex]->records_unread), + &bufb->records_read); + v_set(config, &bufb->array[read_sb_bindex]->records_unread, 0); + CHAN_WARN_ON(chan, config->mode == RING_BUFFER_OVERWRITE + && subbuffer_id_is_noref(config, bufb->buf_rsb.id)); + subbuffer_id_set_noref(config, &bufb->buf_rsb.id); + + /* + * Exchange the reader subbuffer with the one we put in its place in the + * writer subbuffer table. Expect the original consumed count. If + * update_read_sb_index fails, this is because the writer updated the + * subbuffer concurrently. We should therefore keep the subbuffer we + * currently have: it has become invalid to try reading this sub-buffer + * consumed count value anyway. + */ + consumed_idx = subbuf_index(consumed, chan); + update_read_sb_index(config, &buf->backend, &chan->backend, + consumed_idx, buf_trunc_val(consumed, chan)); + /* + * update_read_sb_index return value ignored. Don't exchange sub-buffer + * if the writer concurrently updated it. + */ +} +EXPORT_SYMBOL_GPL(lib_ring_buffer_put_subbuf); + +/* + * cons_offset is an iterator on all subbuffer offsets between the reader + * position and the writer position. (inclusive) + */ +static +void lib_ring_buffer_print_subbuffer_errors(struct lib_ring_buffer *buf, + struct channel *chan, + unsigned long cons_offset, + int cpu) +{ + const struct lib_ring_buffer_config *config = &chan->backend.config; + unsigned long cons_idx, commit_count, commit_count_sb; + + cons_idx = subbuf_index(cons_offset, chan); + commit_count = v_read(config, &buf->commit_hot[cons_idx].cc); + commit_count_sb = v_read(config, &buf->commit_cold[cons_idx].cc_sb); + + if (subbuf_offset(commit_count, chan) != 0) + printk(KERN_WARNING + "ring buffer %s, cpu %d: " + "commit count in subbuffer %lu,\n" + "expecting multiples of %lu bytes\n" + " [ %lu bytes committed, %lu bytes reader-visible ]\n", + chan->backend.name, cpu, cons_idx, + chan->backend.subbuf_size, + commit_count, commit_count_sb); + + printk(KERN_DEBUG "ring buffer: %s, cpu %d: %lu bytes committed\n", + chan->backend.name, cpu, commit_count); +} + +static +void lib_ring_buffer_print_buffer_errors(struct lib_ring_buffer *buf, + struct channel *chan, + void *priv, int cpu) +{ + const struct lib_ring_buffer_config *config = &chan->backend.config; + unsigned long write_offset, cons_offset; + + /* + * No need to order commit_count, write_offset and cons_offset reads + * because we execute at teardown when no more writer nor reader + * references are left. + */ + write_offset = v_read(config, &buf->offset); + cons_offset = atomic_long_read(&buf->consumed); + if (write_offset != cons_offset) + printk(KERN_DEBUG + "ring buffer %s, cpu %d: " + "non-consumed data\n" + " [ %lu bytes written, %lu bytes read ]\n", + chan->backend.name, cpu, write_offset, cons_offset); + + for (cons_offset = atomic_long_read(&buf->consumed); + (long) (subbuf_trunc((unsigned long) v_read(config, &buf->offset), + chan) + - cons_offset) > 0; + cons_offset = subbuf_align(cons_offset, chan)) + lib_ring_buffer_print_subbuffer_errors(buf, chan, cons_offset, + cpu); +} + +static +void lib_ring_buffer_print_errors(struct channel *chan, + struct lib_ring_buffer *buf, int cpu) +{ + const struct lib_ring_buffer_config *config = &chan->backend.config; + void *priv = chan->backend.priv; + + if (!strcmp(chan->backend.name, "relay-metadata")) { + printk(KERN_DEBUG "ring buffer %s: %lu records written, " + "%lu records overrun\n", + chan->backend.name, + v_read(config, &buf->records_count), + v_read(config, &buf->records_overrun)); + } else { + printk(KERN_DEBUG "ring buffer %s, cpu %d: %lu records written, " + "%lu records overrun\n", + chan->backend.name, cpu, + v_read(config, &buf->records_count), + v_read(config, &buf->records_overrun)); + + if (v_read(config, &buf->records_lost_full) + || v_read(config, &buf->records_lost_wrap) + || v_read(config, &buf->records_lost_big)) + printk(KERN_WARNING + "ring buffer %s, cpu %d: records were lost. Caused by:\n" + " [ %lu buffer full, %lu nest buffer wrap-around, " + "%lu event too big ]\n", + chan->backend.name, cpu, + v_read(config, &buf->records_lost_full), + v_read(config, &buf->records_lost_wrap), + v_read(config, &buf->records_lost_big)); + } + lib_ring_buffer_print_buffer_errors(buf, chan, priv, cpu); +} + +/* + * lib_ring_buffer_switch_old_start: Populate old subbuffer header. + * + * Only executed when the buffer is finalized, in SWITCH_FLUSH. + */ +static +void lib_ring_buffer_switch_old_start(struct lib_ring_buffer *buf, + struct channel *chan, + struct switch_offsets *offsets, + u64 tsc) +{ + const struct lib_ring_buffer_config *config = &chan->backend.config; + unsigned long oldidx = subbuf_index(offsets->old, chan); + unsigned long commit_count; + + config->cb.buffer_begin(buf, tsc, oldidx); + + /* + * Order all writes to buffer before the commit count update that will + * determine that the subbuffer is full. + */ + if (config->ipi == RING_BUFFER_IPI_BARRIER) { + /* + * Must write slot data before incrementing commit count. This + * compiler barrier is upgraded into a smp_mb() by the IPI sent + * by get_subbuf(). + */ + barrier(); + } else + smp_wmb(); + v_add(config, config->cb.subbuffer_header_size(), + &buf->commit_hot[oldidx].cc); + commit_count = v_read(config, &buf->commit_hot[oldidx].cc); + /* Check if the written buffer has to be delivered */ + lib_ring_buffer_check_deliver(config, buf, chan, offsets->old, + commit_count, oldidx); + lib_ring_buffer_write_commit_counter(config, buf, chan, oldidx, + offsets->old, commit_count, + config->cb.subbuffer_header_size()); +} + +/* + * lib_ring_buffer_switch_old_end: switch old subbuffer + * + * Note : offset_old should never be 0 here. It is ok, because we never perform + * buffer switch on an empty subbuffer in SWITCH_ACTIVE mode. The caller + * increments the offset_old value when doing a SWITCH_FLUSH on an empty + * subbuffer. + */ +static +void lib_ring_buffer_switch_old_end(struct lib_ring_buffer *buf, + struct channel *chan, + struct switch_offsets *offsets, + u64 tsc) +{ + const struct lib_ring_buffer_config *config = &chan->backend.config; + unsigned long oldidx = subbuf_index(offsets->old - 1, chan); + unsigned long commit_count, padding_size, data_size; + + data_size = subbuf_offset(offsets->old - 1, chan) + 1; + padding_size = chan->backend.subbuf_size - data_size; + subbuffer_set_data_size(config, &buf->backend, oldidx, data_size); + + /* + * Order all writes to buffer before the commit count update that will + * determine that the subbuffer is full. + */ + if (config->ipi == RING_BUFFER_IPI_BARRIER) { + /* + * Must write slot data before incrementing commit count. This + * compiler barrier is upgraded into a smp_mb() by the IPI sent + * by get_subbuf(). + */ + barrier(); + } else + smp_wmb(); + v_add(config, padding_size, &buf->commit_hot[oldidx].cc); + commit_count = v_read(config, &buf->commit_hot[oldidx].cc); + lib_ring_buffer_check_deliver(config, buf, chan, offsets->old - 1, + commit_count, oldidx); + lib_ring_buffer_write_commit_counter(config, buf, chan, oldidx, + offsets->old, commit_count, + padding_size); +} + +/* + * lib_ring_buffer_switch_new_start: Populate new subbuffer. + * + * This code can be executed unordered : writers may already have written to the + * sub-buffer before this code gets executed, caution. The commit makes sure + * that this code is executed before the deliver of this sub-buffer. + */ +static +void lib_ring_buffer_switch_new_start(struct lib_ring_buffer *buf, + struct channel *chan, + struct switch_offsets *offsets, + u64 tsc) +{ + const struct lib_ring_buffer_config *config = &chan->backend.config; + unsigned long beginidx = subbuf_index(offsets->begin, chan); + unsigned long commit_count; + + config->cb.buffer_begin(buf, tsc, beginidx); + + /* + * Order all writes to buffer before the commit count update that will + * determine that the subbuffer is full. + */ + if (config->ipi == RING_BUFFER_IPI_BARRIER) { + /* + * Must write slot data before incrementing commit count. This + * compiler barrier is upgraded into a smp_mb() by the IPI sent + * by get_subbuf(). + */ + barrier(); + } else + smp_wmb(); + v_add(config, config->cb.subbuffer_header_size(), + &buf->commit_hot[beginidx].cc); + commit_count = v_read(config, &buf->commit_hot[beginidx].cc); + /* Check if the written buffer has to be delivered */ + lib_ring_buffer_check_deliver(config, buf, chan, offsets->begin, + commit_count, beginidx); + lib_ring_buffer_write_commit_counter(config, buf, chan, beginidx, + offsets->begin, commit_count, + config->cb.subbuffer_header_size()); +} + +/* + * lib_ring_buffer_switch_new_end: finish switching current subbuffer + * + * Calls subbuffer_set_data_size() to set the data size of the current + * sub-buffer. We do not need to perform check_deliver nor commit here, + * since this task will be done by the "commit" of the event for which + * we are currently doing the space reservation. + */ +static +void lib_ring_buffer_switch_new_end(struct lib_ring_buffer *buf, + struct channel *chan, + struct switch_offsets *offsets, + u64 tsc) +{ + const struct lib_ring_buffer_config *config = &chan->backend.config; + unsigned long endidx, data_size; + + endidx = subbuf_index(offsets->end - 1, chan); + data_size = subbuf_offset(offsets->end - 1, chan) + 1; + subbuffer_set_data_size(config, &buf->backend, endidx, data_size); +} + +/* + * Returns : + * 0 if ok + * !0 if execution must be aborted. + */ +static +int lib_ring_buffer_try_switch_slow(enum switch_mode mode, + struct lib_ring_buffer *buf, + struct channel *chan, + struct switch_offsets *offsets, + u64 *tsc) +{ + const struct lib_ring_buffer_config *config = &chan->backend.config; + unsigned long off, reserve_commit_diff; + + offsets->begin = v_read(config, &buf->offset); + offsets->old = offsets->begin; + offsets->switch_old_start = 0; + off = subbuf_offset(offsets->begin, chan); + + *tsc = config->cb.ring_buffer_clock_read(chan); + + /* + * Ensure we flush the header of an empty subbuffer when doing the + * finalize (SWITCH_FLUSH). This ensures that we end up knowing the + * total data gathering duration even if there were no records saved + * after the last buffer switch. + * In SWITCH_ACTIVE mode, switch the buffer when it contains events. + * SWITCH_ACTIVE only flushes the current subbuffer, dealing with end of + * subbuffer header as appropriate. + * The next record that reserves space will be responsible for + * populating the following subbuffer header. We choose not to populate + * the next subbuffer header here because we want to be able to use + * SWITCH_ACTIVE for periodical buffer flush and CPU tick_nohz stop + * buffer flush, which must guarantee that all the buffer content + * (records and header timestamps) are visible to the reader. This is + * required for quiescence guarantees for the fusion merge. + */ + if (mode != SWITCH_FLUSH && !off) + return -1; /* we do not have to switch : buffer is empty */ + + if (unlikely(off == 0)) { + unsigned long sb_index, commit_count; + + /* + * We are performing a SWITCH_FLUSH. At this stage, there are no + * concurrent writes into the buffer. + * + * The client does not save any header information. Don't + * switch empty subbuffer on finalize, because it is invalid to + * deliver a completely empty subbuffer. + */ + if (!config->cb.subbuffer_header_size()) + return -1; + + /* Test new buffer integrity */ + sb_index = subbuf_index(offsets->begin, chan); + commit_count = v_read(config, + &buf->commit_cold[sb_index].cc_sb); + reserve_commit_diff = + (buf_trunc(offsets->begin, chan) + >> chan->backend.num_subbuf_order) + - (commit_count & chan->commit_count_mask); + if (likely(reserve_commit_diff == 0)) { + /* Next subbuffer not being written to. */ + if (unlikely(config->mode != RING_BUFFER_OVERWRITE && + subbuf_trunc(offsets->begin, chan) + - subbuf_trunc((unsigned long) + atomic_long_read(&buf->consumed), chan) + >= chan->backend.buf_size)) { + /* + * We do not overwrite non consumed buffers + * and we are full : don't switch. + */ + return -1; + } else { + /* + * Next subbuffer not being written to, and we + * are either in overwrite mode or the buffer is + * not full. It's safe to write in this new + * subbuffer. + */ + } + } else { + /* + * Next subbuffer reserve offset does not match the + * commit offset. Don't perform switch in + * producer-consumer and overwrite mode. Caused by + * either a writer OOPS or too many nested writes over a + * reserve/commit pair. + */ + return -1; + } + + /* + * Need to write the subbuffer start header on finalize. + */ + offsets->switch_old_start = 1; + } + offsets->begin = subbuf_align(offsets->begin, chan); + /* Note: old points to the next subbuf at offset 0 */ + offsets->end = offsets->begin; + return 0; +} + +/* + * Force a sub-buffer switch. This operation is completely reentrant : can be + * called while tracing is active with absolutely no lock held. + * + * Note, however, that as a v_cmpxchg is used for some atomic + * operations, this function must be called from the CPU which owns the buffer + * for a ACTIVE flush. + */ +void lib_ring_buffer_switch_slow(struct lib_ring_buffer *buf, enum switch_mode mode) +{ + struct channel *chan = buf->backend.chan; + const struct lib_ring_buffer_config *config = &chan->backend.config; + struct switch_offsets offsets; + unsigned long oldidx; + u64 tsc; + + offsets.size = 0; + + /* + * Perform retryable operations. + */ + do { + if (lib_ring_buffer_try_switch_slow(mode, buf, chan, &offsets, + &tsc)) + return; /* Switch not needed */ + } while (v_cmpxchg(config, &buf->offset, offsets.old, offsets.end) + != offsets.old); + + /* + * Atomically update last_tsc. This update races against concurrent + * atomic updates, but the race will always cause supplementary full TSC + * records, never the opposite (missing a full TSC record when it would + * be needed). + */ + save_last_tsc(config, buf, tsc); + + /* + * Push the reader if necessary + */ + lib_ring_buffer_reserve_push_reader(buf, chan, offsets.old); + + oldidx = subbuf_index(offsets.old, chan); + lib_ring_buffer_clear_noref(config, &buf->backend, oldidx); + + /* + * May need to populate header start on SWITCH_FLUSH. + */ + if (offsets.switch_old_start) { + lib_ring_buffer_switch_old_start(buf, chan, &offsets, tsc); + offsets.old += config->cb.subbuffer_header_size(); + } + + /* + * Switch old subbuffer. + */ + lib_ring_buffer_switch_old_end(buf, chan, &offsets, tsc); +} +EXPORT_SYMBOL_GPL(lib_ring_buffer_switch_slow); + +static void remote_switch(void *info) +{ + struct lib_ring_buffer *buf = info; + + lib_ring_buffer_switch_slow(buf, SWITCH_ACTIVE); +} + +void lib_ring_buffer_switch_remote(struct lib_ring_buffer *buf) +{ + struct channel *chan = buf->backend.chan; + const struct lib_ring_buffer_config *config = &chan->backend.config; + int ret; + + /* + * With global synchronization we don't need to use the IPI scheme. + */ + if (config->sync == RING_BUFFER_SYNC_GLOBAL) { + lib_ring_buffer_switch_slow(buf, SWITCH_ACTIVE); + return; + } + + /* + * Taking lock on CPU hotplug to ensure two things: first, that the + * target cpu is not taken concurrently offline while we are within + * smp_call_function_single() (I don't trust that get_cpu() on the + * _local_ CPU actually inhibit CPU hotplug for the _remote_ CPU (to be + * confirmed)). Secondly, if it happens that the CPU is not online, our + * own call to lib_ring_buffer_switch_slow() needs to be protected from + * CPU hotplug handlers, which can also perform a remote subbuffer + * switch. + */ + get_online_cpus(); + ret = smp_call_function_single(buf->backend.cpu, + remote_switch, buf, 1); + if (ret) { + /* Remote CPU is offline, do it ourself. */ + lib_ring_buffer_switch_slow(buf, SWITCH_ACTIVE); + } + put_online_cpus(); +} +EXPORT_SYMBOL_GPL(lib_ring_buffer_switch_remote); + +/* + * Returns : + * 0 if ok + * -ENOSPC if event size is too large for packet. + * -ENOBUFS if there is currently not enough space in buffer for the event. + * -EIO if data cannot be written into the buffer for any other reason. + */ +static +int lib_ring_buffer_try_reserve_slow(struct lib_ring_buffer *buf, + struct channel *chan, + struct switch_offsets *offsets, + struct lib_ring_buffer_ctx *ctx) +{ + const struct lib_ring_buffer_config *config = &chan->backend.config; + unsigned long reserve_commit_diff, offset_cmp; + +retry: + offsets->begin = offset_cmp = v_read(config, &buf->offset); + offsets->old = offsets->begin; + offsets->switch_new_start = 0; + offsets->switch_new_end = 0; + offsets->switch_old_end = 0; + offsets->pre_header_padding = 0; + + ctx->tsc = config->cb.ring_buffer_clock_read(chan); + if ((int64_t) ctx->tsc == -EIO) + return -EIO; + + if (last_tsc_overflow(config, buf, ctx->tsc)) + ctx->rflags |= RING_BUFFER_RFLAG_FULL_TSC; + + if (unlikely(subbuf_offset(offsets->begin, ctx->chan) == 0)) { + offsets->switch_new_start = 1; /* For offsets->begin */ + } else { + offsets->size = config->cb.record_header_size(config, chan, + offsets->begin, + &offsets->pre_header_padding, + ctx); + offsets->size += + lib_ring_buffer_align(offsets->begin + offsets->size, + ctx->largest_align) + + ctx->data_size; + if (unlikely(subbuf_offset(offsets->begin, chan) + + offsets->size > chan->backend.subbuf_size)) { + offsets->switch_old_end = 1; /* For offsets->old */ + offsets->switch_new_start = 1; /* For offsets->begin */ + } + } + if (unlikely(offsets->switch_new_start)) { + unsigned long sb_index, commit_count; + + /* + * We are typically not filling the previous buffer completely. + */ + if (likely(offsets->switch_old_end)) + offsets->begin = subbuf_align(offsets->begin, chan); + offsets->begin = offsets->begin + + config->cb.subbuffer_header_size(); + /* Test new buffer integrity */ + sb_index = subbuf_index(offsets->begin, chan); + /* + * Read buf->offset before buf->commit_cold[sb_index].cc_sb. + * lib_ring_buffer_check_deliver() has the matching + * memory barriers required around commit_cold cc_sb + * updates to ensure reserve and commit counter updates + * are not seen reordered when updated by another CPU. + */ + smp_rmb(); + commit_count = v_read(config, + &buf->commit_cold[sb_index].cc_sb); + /* Read buf->commit_cold[sb_index].cc_sb before buf->offset. */ + smp_rmb(); + if (unlikely(offset_cmp != v_read(config, &buf->offset))) { + /* + * The reserve counter have been concurrently updated + * while we read the commit counter. This means the + * commit counter we read might not match buf->offset + * due to concurrent update. We therefore need to retry. + */ + goto retry; + } + reserve_commit_diff = + (buf_trunc(offsets->begin, chan) + >> chan->backend.num_subbuf_order) + - (commit_count & chan->commit_count_mask); + if (likely(reserve_commit_diff == 0)) { + /* Next subbuffer not being written to. */ + if (unlikely(config->mode != RING_BUFFER_OVERWRITE && + subbuf_trunc(offsets->begin, chan) + - subbuf_trunc((unsigned long) + atomic_long_read(&buf->consumed), chan) + >= chan->backend.buf_size)) { + /* + * We do not overwrite non consumed buffers + * and we are full : record is lost. + */ + v_inc(config, &buf->records_lost_full); + return -ENOBUFS; + } else { + /* + * Next subbuffer not being written to, and we + * are either in overwrite mode or the buffer is + * not full. It's safe to write in this new + * subbuffer. + */ + } + } else { + /* + * Next subbuffer reserve offset does not match the + * commit offset, and this did not involve update to the + * reserve counter. Drop record in producer-consumer and + * overwrite mode. Caused by either a writer OOPS or + * too many nested writes over a reserve/commit pair. + */ + v_inc(config, &buf->records_lost_wrap); + return -EIO; + } + offsets->size = + config->cb.record_header_size(config, chan, + offsets->begin, + &offsets->pre_header_padding, + ctx); + offsets->size += + lib_ring_buffer_align(offsets->begin + offsets->size, + ctx->largest_align) + + ctx->data_size; + if (unlikely(subbuf_offset(offsets->begin, chan) + + offsets->size > chan->backend.subbuf_size)) { + /* + * Record too big for subbuffers, report error, don't + * complete the sub-buffer switch. + */ + v_inc(config, &buf->records_lost_big); + return -ENOSPC; + } else { + /* + * We just made a successful buffer switch and the + * record fits in the new subbuffer. Let's write. + */ + } + } else { + /* + * Record fits in the current buffer and we are not on a switch + * boundary. It's safe to write. + */ + } + offsets->end = offsets->begin + offsets->size; + + if (unlikely(subbuf_offset(offsets->end, chan) == 0)) { + /* + * The offset_end will fall at the very beginning of the next + * subbuffer. + */ + offsets->switch_new_end = 1; /* For offsets->begin */ + } + return 0; +} + +/** + * lib_ring_buffer_reserve_slow - Atomic slot reservation in a buffer. + * @ctx: ring buffer context. + * + * Return : -NOBUFS if not enough space, -ENOSPC if event size too large, + * -EIO for other errors, else returns 0. + * It will take care of sub-buffer switching. + */ +int lib_ring_buffer_reserve_slow(struct lib_ring_buffer_ctx *ctx) +{ + struct channel *chan = ctx->chan; + const struct lib_ring_buffer_config *config = &chan->backend.config; + struct lib_ring_buffer *buf; + struct switch_offsets offsets; + int ret; + + if (config->alloc == RING_BUFFER_ALLOC_PER_CPU) + buf = per_cpu_ptr(chan->backend.buf, ctx->cpu); + else + buf = chan->backend.buf; + ctx->buf = buf; + + offsets.size = 0; + + do { + ret = lib_ring_buffer_try_reserve_slow(buf, chan, &offsets, + ctx); + if (unlikely(ret)) + return ret; + } while (unlikely(v_cmpxchg(config, &buf->offset, offsets.old, + offsets.end) + != offsets.old)); + + /* + * Atomically update last_tsc. This update races against concurrent + * atomic updates, but the race will always cause supplementary full TSC + * records, never the opposite (missing a full TSC record when it would + * be needed). + */ + save_last_tsc(config, buf, ctx->tsc); + + /* + * Push the reader if necessary + */ + lib_ring_buffer_reserve_push_reader(buf, chan, offsets.end - 1); + + /* + * Clear noref flag for this subbuffer. + */ + lib_ring_buffer_clear_noref(config, &buf->backend, + subbuf_index(offsets.end - 1, chan)); + + /* + * Switch old subbuffer if needed. + */ + if (unlikely(offsets.switch_old_end)) { + lib_ring_buffer_clear_noref(config, &buf->backend, + subbuf_index(offsets.old - 1, chan)); + lib_ring_buffer_switch_old_end(buf, chan, &offsets, ctx->tsc); + } + + /* + * Populate new subbuffer. + */ + if (unlikely(offsets.switch_new_start)) + lib_ring_buffer_switch_new_start(buf, chan, &offsets, ctx->tsc); + + if (unlikely(offsets.switch_new_end)) + lib_ring_buffer_switch_new_end(buf, chan, &offsets, ctx->tsc); + + ctx->slot_size = offsets.size; + ctx->pre_offset = offsets.begin; + ctx->buf_offset = offsets.begin + offsets.pre_header_padding; + return 0; +} +EXPORT_SYMBOL_GPL(lib_ring_buffer_reserve_slow); + +int __init init_lib_ring_buffer_frontend(void) +{ + int cpu; + + for_each_possible_cpu(cpu) + spin_lock_init(&per_cpu(ring_buffer_nohz_lock, cpu)); + return 0; +} + +module_init(init_lib_ring_buffer_frontend); + +void __exit exit_lib_ring_buffer_frontend(void) +{ +} + +module_exit(exit_lib_ring_buffer_frontend); --- linux-3.11.0.orig/ubuntu/lttng-modules/lib/ringbuffer/ring_buffer_mmap.c +++ linux-3.11.0/ubuntu/lttng-modules/lib/ringbuffer/ring_buffer_mmap.c @@ -0,0 +1,128 @@ +/* + * ring_buffer_mmap.c + * + * Copyright (C) 2002-2005 - Tom Zanussi , IBM Corp + * Copyright (C) 1999-2005 - Karim Yaghmour + * Copyright (C) 2008-2012 - Mathieu Desnoyers + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; only version 2 of the License. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Re-using code from kernel/relay.c, hence the GPLv2 license for this + * file. + */ + +#include +#include + +#include "../../wrapper/ringbuffer/backend.h" +#include "../../wrapper/ringbuffer/frontend.h" +#include "../../wrapper/ringbuffer/vfs.h" + +/* + * fault() vm_op implementation for ring buffer file mapping. + */ +static int lib_ring_buffer_fault(struct vm_area_struct *vma, struct vm_fault *vmf) +{ + struct lib_ring_buffer *buf = vma->vm_private_data; + struct channel *chan = buf->backend.chan; + const struct lib_ring_buffer_config *config = &chan->backend.config; + pgoff_t pgoff = vmf->pgoff; + struct page **page; + void **virt; + unsigned long offset, sb_bindex; + + /* + * Verify that faults are only done on the range of pages owned by the + * reader. + */ + offset = pgoff << PAGE_SHIFT; + sb_bindex = subbuffer_id_get_index(config, buf->backend.buf_rsb.id); + if (!(offset >= buf->backend.array[sb_bindex]->mmap_offset + && offset < buf->backend.array[sb_bindex]->mmap_offset + + buf->backend.chan->backend.subbuf_size)) + return VM_FAULT_SIGBUS; + /* + * ring_buffer_read_get_page() gets the page in the current reader's + * pages. + */ + page = lib_ring_buffer_read_get_page(&buf->backend, offset, &virt); + if (!*page) + return VM_FAULT_SIGBUS; + get_page(*page); + vmf->page = *page; + + return 0; +} + +/* + * vm_ops for ring buffer file mappings. + */ +static const struct vm_operations_struct lib_ring_buffer_mmap_ops = { + .fault = lib_ring_buffer_fault, +}; + +/** + * lib_ring_buffer_mmap_buf: - mmap channel buffer to process address space + * @buf: ring buffer to map + * @vma: vm_area_struct describing memory to be mapped + * + * Returns 0 if ok, negative on error + * + * Caller should already have grabbed mmap_sem. + */ +static int lib_ring_buffer_mmap_buf(struct lib_ring_buffer *buf, + struct vm_area_struct *vma) +{ + unsigned long length = vma->vm_end - vma->vm_start; + struct channel *chan = buf->backend.chan; + const struct lib_ring_buffer_config *config = &chan->backend.config; + unsigned long mmap_buf_len; + + if (config->output != RING_BUFFER_MMAP) + return -EINVAL; + + mmap_buf_len = chan->backend.buf_size; + if (chan->backend.extra_reader_sb) + mmap_buf_len += chan->backend.subbuf_size; + + if (length != mmap_buf_len) + return -EINVAL; + + vma->vm_ops = &lib_ring_buffer_mmap_ops; + vma->vm_flags |= VM_DONTEXPAND; + vma->vm_private_data = buf; + + return 0; +} + +int lib_ring_buffer_mmap(struct file *filp, struct vm_area_struct *vma, + struct lib_ring_buffer *buf) +{ + return lib_ring_buffer_mmap_buf(buf, vma); +} +EXPORT_SYMBOL_GPL(lib_ring_buffer_mmap); + +/** + * vfs_lib_ring_buffer_mmap - mmap file op + * @filp: the file + * @vma: the vma describing what to map + * + * Calls upon lib_ring_buffer_mmap_buf() to map the file into user space. + */ +int vfs_lib_ring_buffer_mmap(struct file *filp, struct vm_area_struct *vma) +{ + struct lib_ring_buffer *buf = filp->private_data; + return lib_ring_buffer_mmap(filp, vma, buf); +} +EXPORT_SYMBOL_GPL(vfs_lib_ring_buffer_mmap); --- linux-3.11.0.orig/ubuntu/lttng-modules/lib/ringbuffer/backend_internal.h +++ linux-3.11.0/ubuntu/lttng-modules/lib/ringbuffer/backend_internal.h @@ -0,0 +1,461 @@ +#ifndef _LIB_RING_BUFFER_BACKEND_INTERNAL_H +#define _LIB_RING_BUFFER_BACKEND_INTERNAL_H + +/* + * lib/ringbuffer/backend_internal.h + * + * Ring buffer backend (internal helpers). + * + * Copyright (C) 2008-2012 Mathieu Desnoyers + * + * 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; only + * version 2.1 of the License. + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include "../../wrapper/ringbuffer/config.h" +#include "../../wrapper/ringbuffer/backend_types.h" +#include "../../wrapper/ringbuffer/frontend_types.h" +#include +#include + +/* Ring buffer backend API presented to the frontend */ + +/* Ring buffer and channel backend create/free */ + +int lib_ring_buffer_backend_create(struct lib_ring_buffer_backend *bufb, + struct channel_backend *chan, int cpu); +void channel_backend_unregister_notifiers(struct channel_backend *chanb); +void lib_ring_buffer_backend_free(struct lib_ring_buffer_backend *bufb); +int channel_backend_init(struct channel_backend *chanb, + const char *name, + const struct lib_ring_buffer_config *config, + void *priv, size_t subbuf_size, + size_t num_subbuf); +void channel_backend_free(struct channel_backend *chanb); + +void lib_ring_buffer_backend_reset(struct lib_ring_buffer_backend *bufb); +void channel_backend_reset(struct channel_backend *chanb); + +int lib_ring_buffer_backend_init(void); +void lib_ring_buffer_backend_exit(void); + +extern void _lib_ring_buffer_write(struct lib_ring_buffer_backend *bufb, + size_t offset, const void *src, size_t len, + ssize_t pagecpy); +extern void _lib_ring_buffer_memset(struct lib_ring_buffer_backend *bufb, + size_t offset, int c, size_t len, + ssize_t pagecpy); +extern void _lib_ring_buffer_copy_from_user_inatomic(struct lib_ring_buffer_backend *bufb, + size_t offset, const void *src, + size_t len, ssize_t pagecpy); + +/* + * Subbuffer ID bits for overwrite mode. Need to fit within a single word to be + * exchanged atomically. + * + * Top half word, except lowest bit, belongs to "offset", which is used to keep + * to count the produced buffers. For overwrite mode, this provides the + * consumer with the capacity to read subbuffers in order, handling the + * situation where producers would write up to 2^15 buffers (or 2^31 for 64-bit + * systems) concurrently with a single execution of get_subbuf (between offset + * sampling and subbuffer ID exchange). + */ + +#define HALF_ULONG_BITS (BITS_PER_LONG >> 1) + +#define SB_ID_OFFSET_SHIFT (HALF_ULONG_BITS + 1) +#define SB_ID_OFFSET_COUNT (1UL << SB_ID_OFFSET_SHIFT) +#define SB_ID_OFFSET_MASK (~(SB_ID_OFFSET_COUNT - 1)) +/* + * Lowest bit of top word half belongs to noref. Used only for overwrite mode. + */ +#define SB_ID_NOREF_SHIFT (SB_ID_OFFSET_SHIFT - 1) +#define SB_ID_NOREF_COUNT (1UL << SB_ID_NOREF_SHIFT) +#define SB_ID_NOREF_MASK SB_ID_NOREF_COUNT +/* + * In overwrite mode: lowest half of word is used for index. + * Limit of 2^16 subbuffers per buffer on 32-bit, 2^32 on 64-bit. + * In producer-consumer mode: whole word used for index. + */ +#define SB_ID_INDEX_SHIFT 0 +#define SB_ID_INDEX_COUNT (1UL << SB_ID_INDEX_SHIFT) +#define SB_ID_INDEX_MASK (SB_ID_NOREF_COUNT - 1) + +/* + * Construct the subbuffer id from offset, index and noref. Use only the index + * for producer-consumer mode (offset and noref are only used in overwrite + * mode). + */ +static inline +unsigned long subbuffer_id(const struct lib_ring_buffer_config *config, + unsigned long offset, unsigned long noref, + unsigned long index) +{ + if (config->mode == RING_BUFFER_OVERWRITE) + return (offset << SB_ID_OFFSET_SHIFT) + | (noref << SB_ID_NOREF_SHIFT) + | index; + else + return index; +} + +/* + * Compare offset with the offset contained within id. Return 1 if the offset + * bits are identical, else 0. + */ +static inline +int subbuffer_id_compare_offset(const struct lib_ring_buffer_config *config, + unsigned long id, unsigned long offset) +{ + return (id & SB_ID_OFFSET_MASK) == (offset << SB_ID_OFFSET_SHIFT); +} + +static inline +unsigned long subbuffer_id_get_index(const struct lib_ring_buffer_config *config, + unsigned long id) +{ + if (config->mode == RING_BUFFER_OVERWRITE) + return id & SB_ID_INDEX_MASK; + else + return id; +} + +static inline +unsigned long subbuffer_id_is_noref(const struct lib_ring_buffer_config *config, + unsigned long id) +{ + if (config->mode == RING_BUFFER_OVERWRITE) + return !!(id & SB_ID_NOREF_MASK); + else + return 1; +} + +/* + * Only used by reader on subbuffer ID it has exclusive access to. No volatile + * needed. + */ +static inline +void subbuffer_id_set_noref(const struct lib_ring_buffer_config *config, + unsigned long *id) +{ + if (config->mode == RING_BUFFER_OVERWRITE) + *id |= SB_ID_NOREF_MASK; +} + +static inline +void subbuffer_id_set_noref_offset(const struct lib_ring_buffer_config *config, + unsigned long *id, unsigned long offset) +{ + unsigned long tmp; + + if (config->mode == RING_BUFFER_OVERWRITE) { + tmp = *id; + tmp &= ~SB_ID_OFFSET_MASK; + tmp |= offset << SB_ID_OFFSET_SHIFT; + tmp |= SB_ID_NOREF_MASK; + /* Volatile store, read concurrently by readers. */ + ACCESS_ONCE(*id) = tmp; + } +} + +/* No volatile access, since already used locally */ +static inline +void subbuffer_id_clear_noref(const struct lib_ring_buffer_config *config, + unsigned long *id) +{ + if (config->mode == RING_BUFFER_OVERWRITE) + *id &= ~SB_ID_NOREF_MASK; +} + +/* + * For overwrite mode, cap the number of subbuffers per buffer to: + * 2^16 on 32-bit architectures + * 2^32 on 64-bit architectures + * This is required to fit in the index part of the ID. Return 0 on success, + * -EPERM on failure. + */ +static inline +int subbuffer_id_check_index(const struct lib_ring_buffer_config *config, + unsigned long num_subbuf) +{ + if (config->mode == RING_BUFFER_OVERWRITE) + return (num_subbuf > (1UL << HALF_ULONG_BITS)) ? -EPERM : 0; + else + return 0; +} + +static inline +void subbuffer_count_record(const struct lib_ring_buffer_config *config, + struct lib_ring_buffer_backend *bufb, + unsigned long idx) +{ + unsigned long sb_bindex; + + sb_bindex = subbuffer_id_get_index(config, bufb->buf_wsb[idx].id); + v_inc(config, &bufb->array[sb_bindex]->records_commit); +} + +/* + * Reader has exclusive subbuffer access for record consumption. No need to + * perform the decrement atomically. + */ +static inline +void subbuffer_consume_record(const struct lib_ring_buffer_config *config, + struct lib_ring_buffer_backend *bufb) +{ + unsigned long sb_bindex; + + sb_bindex = subbuffer_id_get_index(config, bufb->buf_rsb.id); + CHAN_WARN_ON(bufb->chan, + !v_read(config, &bufb->array[sb_bindex]->records_unread)); + /* Non-atomic decrement protected by exclusive subbuffer access */ + _v_dec(config, &bufb->array[sb_bindex]->records_unread); + v_inc(config, &bufb->records_read); +} + +static inline +unsigned long subbuffer_get_records_count( + const struct lib_ring_buffer_config *config, + struct lib_ring_buffer_backend *bufb, + unsigned long idx) +{ + unsigned long sb_bindex; + + sb_bindex = subbuffer_id_get_index(config, bufb->buf_wsb[idx].id); + return v_read(config, &bufb->array[sb_bindex]->records_commit); +} + +/* + * Must be executed at subbuffer delivery when the writer has _exclusive_ + * subbuffer access. See ring_buffer_check_deliver() for details. + * ring_buffer_get_records_count() must be called to get the records count + * before this function, because it resets the records_commit count. + */ +static inline +unsigned long subbuffer_count_records_overrun( + const struct lib_ring_buffer_config *config, + struct lib_ring_buffer_backend *bufb, + unsigned long idx) +{ + struct lib_ring_buffer_backend_pages *pages; + unsigned long overruns, sb_bindex; + + sb_bindex = subbuffer_id_get_index(config, bufb->buf_wsb[idx].id); + pages = bufb->array[sb_bindex]; + overruns = v_read(config, &pages->records_unread); + v_set(config, &pages->records_unread, + v_read(config, &pages->records_commit)); + v_set(config, &pages->records_commit, 0); + + return overruns; +} + +static inline +void subbuffer_set_data_size(const struct lib_ring_buffer_config *config, + struct lib_ring_buffer_backend *bufb, + unsigned long idx, + unsigned long data_size) +{ + struct lib_ring_buffer_backend_pages *pages; + unsigned long sb_bindex; + + sb_bindex = subbuffer_id_get_index(config, bufb->buf_wsb[idx].id); + pages = bufb->array[sb_bindex]; + pages->data_size = data_size; +} + +static inline +unsigned long subbuffer_get_read_data_size( + const struct lib_ring_buffer_config *config, + struct lib_ring_buffer_backend *bufb) +{ + struct lib_ring_buffer_backend_pages *pages; + unsigned long sb_bindex; + + sb_bindex = subbuffer_id_get_index(config, bufb->buf_rsb.id); + pages = bufb->array[sb_bindex]; + return pages->data_size; +} + +static inline +unsigned long subbuffer_get_data_size( + const struct lib_ring_buffer_config *config, + struct lib_ring_buffer_backend *bufb, + unsigned long idx) +{ + struct lib_ring_buffer_backend_pages *pages; + unsigned long sb_bindex; + + sb_bindex = subbuffer_id_get_index(config, bufb->buf_wsb[idx].id); + pages = bufb->array[sb_bindex]; + return pages->data_size; +} + +/** + * lib_ring_buffer_clear_noref - Clear the noref subbuffer flag, called by + * writer. + */ +static inline +void lib_ring_buffer_clear_noref(const struct lib_ring_buffer_config *config, + struct lib_ring_buffer_backend *bufb, + unsigned long idx) +{ + unsigned long id, new_id; + + if (config->mode != RING_BUFFER_OVERWRITE) + return; + + /* + * Performing a volatile access to read the sb_pages, because we want to + * read a coherent version of the pointer and the associated noref flag. + */ + id = ACCESS_ONCE(bufb->buf_wsb[idx].id); + for (;;) { + /* This check is called on the fast path for each record. */ + if (likely(!subbuffer_id_is_noref(config, id))) { + /* + * Store after load dependency ordering the writes to + * the subbuffer after load and test of the noref flag + * matches the memory barrier implied by the cmpxchg() + * in update_read_sb_index(). + */ + return; /* Already writing to this buffer */ + } + new_id = id; + subbuffer_id_clear_noref(config, &new_id); + new_id = cmpxchg(&bufb->buf_wsb[idx].id, id, new_id); + if (likely(new_id == id)) + break; + id = new_id; + } +} + +/** + * lib_ring_buffer_set_noref_offset - Set the noref subbuffer flag and offset, + * called by writer. + */ +static inline +void lib_ring_buffer_set_noref_offset(const struct lib_ring_buffer_config *config, + struct lib_ring_buffer_backend *bufb, + unsigned long idx, unsigned long offset) +{ + if (config->mode != RING_BUFFER_OVERWRITE) + return; + + /* + * Because ring_buffer_set_noref() is only called by a single thread + * (the one which updated the cc_sb value), there are no concurrent + * updates to take care of: other writers have not updated cc_sb, so + * they cannot set the noref flag, and concurrent readers cannot modify + * the pointer because the noref flag is not set yet. + * The smp_wmb() in ring_buffer_commit() takes care of ordering writes + * to the subbuffer before this set noref operation. + * subbuffer_set_noref() uses a volatile store to deal with concurrent + * readers of the noref flag. + */ + CHAN_WARN_ON(bufb->chan, + subbuffer_id_is_noref(config, bufb->buf_wsb[idx].id)); + /* + * Memory barrier that ensures counter stores are ordered before set + * noref and offset. + */ + smp_mb(); + subbuffer_id_set_noref_offset(config, &bufb->buf_wsb[idx].id, offset); +} + +/** + * update_read_sb_index - Read-side subbuffer index update. + */ +static inline +int update_read_sb_index(const struct lib_ring_buffer_config *config, + struct lib_ring_buffer_backend *bufb, + struct channel_backend *chanb, + unsigned long consumed_idx, + unsigned long consumed_count) +{ + unsigned long old_id, new_id; + + if (config->mode == RING_BUFFER_OVERWRITE) { + /* + * Exchange the target writer subbuffer with our own unused + * subbuffer. No need to use ACCESS_ONCE() here to read the + * old_wpage, because the value read will be confirmed by the + * following cmpxchg(). + */ + old_id = bufb->buf_wsb[consumed_idx].id; + if (unlikely(!subbuffer_id_is_noref(config, old_id))) + return -EAGAIN; + /* + * Make sure the offset count we are expecting matches the one + * indicated by the writer. + */ + if (unlikely(!subbuffer_id_compare_offset(config, old_id, + consumed_count))) + return -EAGAIN; + CHAN_WARN_ON(bufb->chan, + !subbuffer_id_is_noref(config, bufb->buf_rsb.id)); + subbuffer_id_set_noref_offset(config, &bufb->buf_rsb.id, + consumed_count); + new_id = cmpxchg(&bufb->buf_wsb[consumed_idx].id, old_id, + bufb->buf_rsb.id); + if (unlikely(old_id != new_id)) + return -EAGAIN; + bufb->buf_rsb.id = new_id; + } else { + /* No page exchange, use the writer page directly */ + bufb->buf_rsb.id = bufb->buf_wsb[consumed_idx].id; + } + return 0; +} + +/* + * Use the architecture-specific memcpy implementation for constant-sized + * inputs, but rely on an inline memcpy for length statically unknown. + * The function call to memcpy is just way too expensive for a fast path. + */ +#define lib_ring_buffer_do_copy(config, dest, src, len) \ +do { \ + size_t __len = (len); \ + if (__builtin_constant_p(len)) \ + memcpy(dest, src, __len); \ + else \ + inline_memcpy(dest, src, __len); \ +} while (0) + +/* + * We use __copy_from_user_inatomic to copy userspace data since we already + * did the access_ok for the whole range. + */ +static inline +unsigned long lib_ring_buffer_do_copy_from_user_inatomic(void *dest, + const void __user *src, + unsigned long len) +{ + return __copy_from_user_inatomic(dest, src, len); +} + +/* + * write len bytes to dest with c + */ +static inline +void lib_ring_buffer_do_memset(char *dest, int c, + unsigned long len) +{ + unsigned long i; + + for (i = 0; i < len; i++) + dest[i] = c; +} + +#endif /* _LIB_RING_BUFFER_BACKEND_INTERNAL_H */ --- linux-3.11.0.orig/ubuntu/lttng-modules/instrumentation/events/README +++ linux-3.11.0/ubuntu/lttng-modules/instrumentation/events/README @@ -0,0 +1,27 @@ +* Workflow for updating patches from newer kernel: + +Diff mainline/ and lttng-module/ directories. + +Pull the new headers from mainline kernel to mainline/. +Copy them into lttng-modules. +Apply diff. Fix conflicts. + + +* Workflow to add new Tracepoint instrumentation to newer kernel, + and add support for it into LTTng: + +a) instrument the kernel with new trace events headers. If you want that + instrumentation distributed, you will have to push those changes into + the upstream Linux kernel first, +b) copy those headers into lttng mainline/ directory, +c) look at a diff from other headers between mainline/ and + lttng/, and use that as a recipe to create a new lttng/ + header from the mainline/ header, +d) create a new file in probes/ for the new trace event header you added, +e) add it to probes/Makefile, +f) build, make modules_install, +g) don't forget to load that new module too. + +Currently, LTTng policy is to only accept headers derived from trace +event headers accepted into the Linux kernel upstream for tracepoints +related to upstream kernel instrumentation. --- linux-3.11.0.orig/ubuntu/lttng-modules/instrumentation/events/mainline/printk.h +++ linux-3.11.0/ubuntu/lttng-modules/instrumentation/events/mainline/printk.h @@ -0,0 +1,41 @@ +#undef TRACE_SYSTEM +#define TRACE_SYSTEM printk + +#if !defined(_TRACE_PRINTK_H) || defined(TRACE_HEADER_MULTI_READ) +#define _TRACE_PRINTK_H + +#include + +TRACE_EVENT_CONDITION(console, + TP_PROTO(const char *log_buf, unsigned start, unsigned end, + unsigned log_buf_len), + + TP_ARGS(log_buf, start, end, log_buf_len), + + TP_CONDITION(start != end), + + TP_STRUCT__entry( + __dynamic_array(char, msg, end - start + 1) + ), + + TP_fast_assign( + if ((start & (log_buf_len - 1)) > (end & (log_buf_len - 1))) { + memcpy(__get_dynamic_array(msg), + log_buf + (start & (log_buf_len - 1)), + log_buf_len - (start & (log_buf_len - 1))); + memcpy((char *)__get_dynamic_array(msg) + + log_buf_len - (start & (log_buf_len - 1)), + log_buf, end & (log_buf_len - 1)); + } else + memcpy(__get_dynamic_array(msg), + log_buf + (start & (log_buf_len - 1)), + end - start); + ((char *)__get_dynamic_array(msg))[end - start] = 0; + ), + + TP_printk("%s", __get_str(msg)) +); +#endif /* _TRACE_PRINTK_H */ + +/* This part must be outside protection */ +#include --- linux-3.11.0.orig/ubuntu/lttng-modules/instrumentation/events/mainline/kvm.h +++ linux-3.11.0/ubuntu/lttng-modules/instrumentation/events/mainline/kvm.h @@ -0,0 +1,312 @@ +#if !defined(_TRACE_KVM_MAIN_H) || defined(TRACE_HEADER_MULTI_READ) +#define _TRACE_KVM_MAIN_H + +#include + +#undef TRACE_SYSTEM +#define TRACE_SYSTEM kvm + +#define ERSN(x) { KVM_EXIT_##x, "KVM_EXIT_" #x } + +#define kvm_trace_exit_reason \ + ERSN(UNKNOWN), ERSN(EXCEPTION), ERSN(IO), ERSN(HYPERCALL), \ + ERSN(DEBUG), ERSN(HLT), ERSN(MMIO), ERSN(IRQ_WINDOW_OPEN), \ + ERSN(SHUTDOWN), ERSN(FAIL_ENTRY), ERSN(INTR), ERSN(SET_TPR), \ + ERSN(TPR_ACCESS), ERSN(S390_SIEIC), ERSN(S390_RESET), ERSN(DCR),\ + ERSN(NMI), ERSN(INTERNAL_ERROR), ERSN(OSI) + +TRACE_EVENT(kvm_userspace_exit, + TP_PROTO(__u32 reason, int errno), + TP_ARGS(reason, errno), + + TP_STRUCT__entry( + __field( __u32, reason ) + __field( int, errno ) + ), + + TP_fast_assign( + __entry->reason = reason; + __entry->errno = errno; + ), + + TP_printk("reason %s (%d)", + __entry->errno < 0 ? + (__entry->errno == -EINTR ? "restart" : "error") : + __print_symbolic(__entry->reason, kvm_trace_exit_reason), + __entry->errno < 0 ? -__entry->errno : __entry->reason) +); + +#if defined(__KVM_HAVE_IOAPIC) +TRACE_EVENT(kvm_set_irq, + TP_PROTO(unsigned int gsi, int level, int irq_source_id), + TP_ARGS(gsi, level, irq_source_id), + + TP_STRUCT__entry( + __field( unsigned int, gsi ) + __field( int, level ) + __field( int, irq_source_id ) + ), + + TP_fast_assign( + __entry->gsi = gsi; + __entry->level = level; + __entry->irq_source_id = irq_source_id; + ), + + TP_printk("gsi %u level %d source %d", + __entry->gsi, __entry->level, __entry->irq_source_id) +); + +#define kvm_deliver_mode \ + {0x0, "Fixed"}, \ + {0x1, "LowPrio"}, \ + {0x2, "SMI"}, \ + {0x3, "Res3"}, \ + {0x4, "NMI"}, \ + {0x5, "INIT"}, \ + {0x6, "SIPI"}, \ + {0x7, "ExtINT"} + +TRACE_EVENT(kvm_ioapic_set_irq, + TP_PROTO(__u64 e, int pin, bool coalesced), + TP_ARGS(e, pin, coalesced), + + TP_STRUCT__entry( + __field( __u64, e ) + __field( int, pin ) + __field( bool, coalesced ) + ), + + TP_fast_assign( + __entry->e = e; + __entry->pin = pin; + __entry->coalesced = coalesced; + ), + + TP_printk("pin %u dst %x vec=%u (%s|%s|%s%s)%s", + __entry->pin, (u8)(__entry->e >> 56), (u8)__entry->e, + __print_symbolic((__entry->e >> 8 & 0x7), kvm_deliver_mode), + (__entry->e & (1<<11)) ? "logical" : "physical", + (__entry->e & (1<<15)) ? "level" : "edge", + (__entry->e & (1<<16)) ? "|masked" : "", + __entry->coalesced ? " (coalesced)" : "") +); + +TRACE_EVENT(kvm_msi_set_irq, + TP_PROTO(__u64 address, __u64 data), + TP_ARGS(address, data), + + TP_STRUCT__entry( + __field( __u64, address ) + __field( __u64, data ) + ), + + TP_fast_assign( + __entry->address = address; + __entry->data = data; + ), + + TP_printk("dst %u vec %x (%s|%s|%s%s)", + (u8)(__entry->address >> 12), (u8)__entry->data, + __print_symbolic((__entry->data >> 8 & 0x7), kvm_deliver_mode), + (__entry->address & (1<<2)) ? "logical" : "physical", + (__entry->data & (1<<15)) ? "level" : "edge", + (__entry->address & (1<<3)) ? "|rh" : "") +); + +#define kvm_irqchips \ + {KVM_IRQCHIP_PIC_MASTER, "PIC master"}, \ + {KVM_IRQCHIP_PIC_SLAVE, "PIC slave"}, \ + {KVM_IRQCHIP_IOAPIC, "IOAPIC"} + +TRACE_EVENT(kvm_ack_irq, + TP_PROTO(unsigned int irqchip, unsigned int pin), + TP_ARGS(irqchip, pin), + + TP_STRUCT__entry( + __field( unsigned int, irqchip ) + __field( unsigned int, pin ) + ), + + TP_fast_assign( + __entry->irqchip = irqchip; + __entry->pin = pin; + ), + + TP_printk("irqchip %s pin %u", + __print_symbolic(__entry->irqchip, kvm_irqchips), + __entry->pin) +); + + + +#endif /* defined(__KVM_HAVE_IOAPIC) */ + +#define KVM_TRACE_MMIO_READ_UNSATISFIED 0 +#define KVM_TRACE_MMIO_READ 1 +#define KVM_TRACE_MMIO_WRITE 2 + +#define kvm_trace_symbol_mmio \ + { KVM_TRACE_MMIO_READ_UNSATISFIED, "unsatisfied-read" }, \ + { KVM_TRACE_MMIO_READ, "read" }, \ + { KVM_TRACE_MMIO_WRITE, "write" } + +TRACE_EVENT(kvm_mmio, + TP_PROTO(int type, int len, u64 gpa, u64 val), + TP_ARGS(type, len, gpa, val), + + TP_STRUCT__entry( + __field( u32, type ) + __field( u32, len ) + __field( u64, gpa ) + __field( u64, val ) + ), + + TP_fast_assign( + __entry->type = type; + __entry->len = len; + __entry->gpa = gpa; + __entry->val = val; + ), + + TP_printk("mmio %s len %u gpa 0x%llx val 0x%llx", + __print_symbolic(__entry->type, kvm_trace_symbol_mmio), + __entry->len, __entry->gpa, __entry->val) +); + +#define kvm_fpu_load_symbol \ + {0, "unload"}, \ + {1, "load"} + +TRACE_EVENT(kvm_fpu, + TP_PROTO(int load), + TP_ARGS(load), + + TP_STRUCT__entry( + __field( u32, load ) + ), + + TP_fast_assign( + __entry->load = load; + ), + + TP_printk("%s", __print_symbolic(__entry->load, kvm_fpu_load_symbol)) +); + +TRACE_EVENT(kvm_age_page, + TP_PROTO(ulong hva, struct kvm_memory_slot *slot, int ref), + TP_ARGS(hva, slot, ref), + + TP_STRUCT__entry( + __field( u64, hva ) + __field( u64, gfn ) + __field( u8, referenced ) + ), + + TP_fast_assign( + __entry->hva = hva; + __entry->gfn = + slot->base_gfn + ((hva - slot->userspace_addr) >> PAGE_SHIFT); + __entry->referenced = ref; + ), + + TP_printk("hva %llx gfn %llx %s", + __entry->hva, __entry->gfn, + __entry->referenced ? "YOUNG" : "OLD") +); + +#ifdef CONFIG_KVM_ASYNC_PF +DECLARE_EVENT_CLASS(kvm_async_get_page_class, + + TP_PROTO(u64 gva, u64 gfn), + + TP_ARGS(gva, gfn), + + TP_STRUCT__entry( + __field(__u64, gva) + __field(u64, gfn) + ), + + TP_fast_assign( + __entry->gva = gva; + __entry->gfn = gfn; + ), + + TP_printk("gva = %#llx, gfn = %#llx", __entry->gva, __entry->gfn) +); + +DEFINE_EVENT(kvm_async_get_page_class, kvm_try_async_get_page, + + TP_PROTO(u64 gva, u64 gfn), + + TP_ARGS(gva, gfn) +); + +DEFINE_EVENT(kvm_async_get_page_class, kvm_async_pf_doublefault, + + TP_PROTO(u64 gva, u64 gfn), + + TP_ARGS(gva, gfn) +); + +DECLARE_EVENT_CLASS(kvm_async_pf_nopresent_ready, + + TP_PROTO(u64 token, u64 gva), + + TP_ARGS(token, gva), + + TP_STRUCT__entry( + __field(__u64, token) + __field(__u64, gva) + ), + + TP_fast_assign( + __entry->token = token; + __entry->gva = gva; + ), + + TP_printk("token %#llx gva %#llx", __entry->token, __entry->gva) + +); + +DEFINE_EVENT(kvm_async_pf_nopresent_ready, kvm_async_pf_not_present, + + TP_PROTO(u64 token, u64 gva), + + TP_ARGS(token, gva) +); + +DEFINE_EVENT(kvm_async_pf_nopresent_ready, kvm_async_pf_ready, + + TP_PROTO(u64 token, u64 gva), + + TP_ARGS(token, gva) +); + +TRACE_EVENT( + kvm_async_pf_completed, + TP_PROTO(unsigned long address, struct page *page, u64 gva), + TP_ARGS(address, page, gva), + + TP_STRUCT__entry( + __field(unsigned long, address) + __field(pfn_t, pfn) + __field(u64, gva) + ), + + TP_fast_assign( + __entry->address = address; + __entry->pfn = page ? page_to_pfn(page) : 0; + __entry->gva = gva; + ), + + TP_printk("gva %#llx address %#lx pfn %#llx", __entry->gva, + __entry->address, __entry->pfn) +); + +#endif + +#endif /* _TRACE_KVM_MAIN_H */ + +/* This part must be outside protection */ +#include --- linux-3.11.0.orig/ubuntu/lttng-modules/instrumentation/events/mainline/lock.h +++ linux-3.11.0/ubuntu/lttng-modules/instrumentation/events/mainline/lock.h @@ -0,0 +1,86 @@ +#undef TRACE_SYSTEM +#define TRACE_SYSTEM lock + +#if !defined(_TRACE_LOCK_H) || defined(TRACE_HEADER_MULTI_READ) +#define _TRACE_LOCK_H + +#include +#include + +#ifdef CONFIG_LOCKDEP + +TRACE_EVENT(lock_acquire, + + TP_PROTO(struct lockdep_map *lock, unsigned int subclass, + int trylock, int read, int check, + struct lockdep_map *next_lock, unsigned long ip), + + TP_ARGS(lock, subclass, trylock, read, check, next_lock, ip), + + TP_STRUCT__entry( + __field(unsigned int, flags) + __string(name, lock->name) + __field(void *, lockdep_addr) + ), + + TP_fast_assign( + __entry->flags = (trylock ? 1 : 0) | (read ? 2 : 0); + __assign_str(name, lock->name); + __entry->lockdep_addr = lock; + ), + + TP_printk("%p %s%s%s", __entry->lockdep_addr, + (__entry->flags & 1) ? "try " : "", + (__entry->flags & 2) ? "read " : "", + __get_str(name)) +); + +DECLARE_EVENT_CLASS(lock, + + TP_PROTO(struct lockdep_map *lock, unsigned long ip), + + TP_ARGS(lock, ip), + + TP_STRUCT__entry( + __string( name, lock->name ) + __field( void *, lockdep_addr ) + ), + + TP_fast_assign( + __assign_str(name, lock->name); + __entry->lockdep_addr = lock; + ), + + TP_printk("%p %s", __entry->lockdep_addr, __get_str(name)) +); + +DEFINE_EVENT(lock, lock_release, + + TP_PROTO(struct lockdep_map *lock, unsigned long ip), + + TP_ARGS(lock, ip) +); + +#ifdef CONFIG_LOCK_STAT + +DEFINE_EVENT(lock, lock_contended, + + TP_PROTO(struct lockdep_map *lock, unsigned long ip), + + TP_ARGS(lock, ip) +); + +DEFINE_EVENT(lock, lock_acquired, + + TP_PROTO(struct lockdep_map *lock, unsigned long ip), + + TP_ARGS(lock, ip) +); + +#endif +#endif + +#endif /* _TRACE_LOCK_H */ + +/* This part must be outside protection */ +#include --- linux-3.11.0.orig/ubuntu/lttng-modules/instrumentation/events/mainline/workqueue.h +++ linux-3.11.0/ubuntu/lttng-modules/instrumentation/events/mainline/workqueue.h @@ -0,0 +1,121 @@ +#undef TRACE_SYSTEM +#define TRACE_SYSTEM workqueue + +#if !defined(_TRACE_WORKQUEUE_H) || defined(TRACE_HEADER_MULTI_READ) +#define _TRACE_WORKQUEUE_H + +#include +#include + +DECLARE_EVENT_CLASS(workqueue_work, + + TP_PROTO(struct work_struct *work), + + TP_ARGS(work), + + TP_STRUCT__entry( + __field( void *, work ) + ), + + TP_fast_assign( + __entry->work = work; + ), + + TP_printk("work struct %p", __entry->work) +); + +/** + * workqueue_queue_work - called when a work gets queued + * @req_cpu: the requested cpu + * @cwq: pointer to struct cpu_workqueue_struct + * @work: pointer to struct work_struct + * + * This event occurs when a work is queued immediately or once a + * delayed work is actually queued on a workqueue (ie: once the delay + * has been reached). + */ +TRACE_EVENT(workqueue_queue_work, + + TP_PROTO(unsigned int req_cpu, struct cpu_workqueue_struct *cwq, + struct work_struct *work), + + TP_ARGS(req_cpu, cwq, work), + + TP_STRUCT__entry( + __field( void *, work ) + __field( void *, function) + __field( void *, workqueue) + __field( unsigned int, req_cpu ) + __field( unsigned int, cpu ) + ), + + TP_fast_assign( + __entry->work = work; + __entry->function = work->func; + __entry->workqueue = cwq->wq; + __entry->req_cpu = req_cpu; + __entry->cpu = cwq->pool->gcwq->cpu; + ), + + TP_printk("work struct=%p function=%pf workqueue=%p req_cpu=%u cpu=%u", + __entry->work, __entry->function, __entry->workqueue, + __entry->req_cpu, __entry->cpu) +); + +/** + * workqueue_activate_work - called when a work gets activated + * @work: pointer to struct work_struct + * + * This event occurs when a queued work is put on the active queue, + * which happens immediately after queueing unless @max_active limit + * is reached. + */ +DEFINE_EVENT(workqueue_work, workqueue_activate_work, + + TP_PROTO(struct work_struct *work), + + TP_ARGS(work) +); + +/** + * workqueue_execute_start - called immediately before the workqueue callback + * @work: pointer to struct work_struct + * + * Allows to track workqueue execution. + */ +TRACE_EVENT(workqueue_execute_start, + + TP_PROTO(struct work_struct *work), + + TP_ARGS(work), + + TP_STRUCT__entry( + __field( void *, work ) + __field( void *, function) + ), + + TP_fast_assign( + __entry->work = work; + __entry->function = work->func; + ), + + TP_printk("work struct %p: function %pf", __entry->work, __entry->function) +); + +/** + * workqueue_execute_end - called immediately after the workqueue callback + * @work: pointer to struct work_struct + * + * Allows to track workqueue execution. + */ +DEFINE_EVENT(workqueue_work, workqueue_execute_end, + + TP_PROTO(struct work_struct *work), + + TP_ARGS(work) +); + +#endif /* _TRACE_WORKQUEUE_H */ + +/* This part must be outside protection */ +#include --- linux-3.11.0.orig/ubuntu/lttng-modules/instrumentation/events/mainline/udp.h +++ linux-3.11.0/ubuntu/lttng-modules/instrumentation/events/mainline/udp.h @@ -0,0 +1,32 @@ +#undef TRACE_SYSTEM +#define TRACE_SYSTEM udp + +#if !defined(_TRACE_UDP_H) || defined(TRACE_HEADER_MULTI_READ) +#define _TRACE_UDP_H + +#include +#include + +TRACE_EVENT(udp_fail_queue_rcv_skb, + + TP_PROTO(int rc, struct sock *sk), + + TP_ARGS(rc, sk), + + TP_STRUCT__entry( + __field(int, rc) + __field(__u16, lport) + ), + + TP_fast_assign( + __entry->rc = rc; + __entry->lport = inet_sk(sk)->inet_num; + ), + + TP_printk("rc=%d port=%hu", __entry->rc, __entry->lport) +); + +#endif /* _TRACE_UDP_H */ + +/* This part must be outside protection */ +#include --- linux-3.11.0.orig/ubuntu/lttng-modules/instrumentation/events/mainline/regmap.h +++ linux-3.11.0/ubuntu/lttng-modules/instrumentation/events/mainline/regmap.h @@ -0,0 +1,181 @@ +#undef TRACE_SYSTEM +#define TRACE_SYSTEM regmap + +#if !defined(_TRACE_REGMAP_H) || defined(TRACE_HEADER_MULTI_READ) +#define _TRACE_REGMAP_H + +#include +#include + +struct device; +struct regmap; + +/* + * Log register events + */ +DECLARE_EVENT_CLASS(regmap_reg, + + TP_PROTO(struct device *dev, unsigned int reg, + unsigned int val), + + TP_ARGS(dev, reg, val), + + TP_STRUCT__entry( + __string( name, dev_name(dev) ) + __field( unsigned int, reg ) + __field( unsigned int, val ) + ), + + TP_fast_assign( + __assign_str(name, dev_name(dev)); + __entry->reg = reg; + __entry->val = val; + ), + + TP_printk("%s reg=%x val=%x", __get_str(name), + (unsigned int)__entry->reg, + (unsigned int)__entry->val) +); + +DEFINE_EVENT(regmap_reg, regmap_reg_write, + + TP_PROTO(struct device *dev, unsigned int reg, + unsigned int val), + + TP_ARGS(dev, reg, val) + +); + +DEFINE_EVENT(regmap_reg, regmap_reg_read, + + TP_PROTO(struct device *dev, unsigned int reg, + unsigned int val), + + TP_ARGS(dev, reg, val) + +); + +DEFINE_EVENT(regmap_reg, regmap_reg_read_cache, + + TP_PROTO(struct device *dev, unsigned int reg, + unsigned int val), + + TP_ARGS(dev, reg, val) + +); + +DECLARE_EVENT_CLASS(regmap_block, + + TP_PROTO(struct device *dev, unsigned int reg, int count), + + TP_ARGS(dev, reg, count), + + TP_STRUCT__entry( + __string( name, dev_name(dev) ) + __field( unsigned int, reg ) + __field( int, count ) + ), + + TP_fast_assign( + __assign_str(name, dev_name(dev)); + __entry->reg = reg; + __entry->count = count; + ), + + TP_printk("%s reg=%x count=%d", __get_str(name), + (unsigned int)__entry->reg, + (int)__entry->count) +); + +DEFINE_EVENT(regmap_block, regmap_hw_read_start, + + TP_PROTO(struct device *dev, unsigned int reg, int count), + + TP_ARGS(dev, reg, count) +); + +DEFINE_EVENT(regmap_block, regmap_hw_read_done, + + TP_PROTO(struct device *dev, unsigned int reg, int count), + + TP_ARGS(dev, reg, count) +); + +DEFINE_EVENT(regmap_block, regmap_hw_write_start, + + TP_PROTO(struct device *dev, unsigned int reg, int count), + + TP_ARGS(dev, reg, count) +); + +DEFINE_EVENT(regmap_block, regmap_hw_write_done, + + TP_PROTO(struct device *dev, unsigned int reg, int count), + + TP_ARGS(dev, reg, count) +); + +TRACE_EVENT(regcache_sync, + + TP_PROTO(struct device *dev, const char *type, + const char *status), + + TP_ARGS(dev, type, status), + + TP_STRUCT__entry( + __string( name, dev_name(dev) ) + __string( status, status ) + __string( type, type ) + __field( int, type ) + ), + + TP_fast_assign( + __assign_str(name, dev_name(dev)); + __assign_str(status, status); + __assign_str(type, type); + ), + + TP_printk("%s type=%s status=%s", __get_str(name), + __get_str(type), __get_str(status)) +); + +DECLARE_EVENT_CLASS(regmap_bool, + + TP_PROTO(struct device *dev, bool flag), + + TP_ARGS(dev, flag), + + TP_STRUCT__entry( + __string( name, dev_name(dev) ) + __field( int, flag ) + ), + + TP_fast_assign( + __assign_str(name, dev_name(dev)); + __entry->flag = flag; + ), + + TP_printk("%s flag=%d", __get_str(name), + (int)__entry->flag) +); + +DEFINE_EVENT(regmap_bool, regmap_cache_only, + + TP_PROTO(struct device *dev, bool flag), + + TP_ARGS(dev, flag) + +); + +DEFINE_EVENT(regmap_bool, regmap_cache_bypass, + + TP_PROTO(struct device *dev, bool flag), + + TP_ARGS(dev, flag) + +); + +#endif /* _TRACE_REGMAP_H */ + +/* This part must be outside protection */ +#include --- linux-3.11.0.orig/ubuntu/lttng-modules/instrumentation/events/mainline/napi.h +++ linux-3.11.0/ubuntu/lttng-modules/instrumentation/events/mainline/napi.h @@ -0,0 +1,38 @@ +#undef TRACE_SYSTEM +#define TRACE_SYSTEM napi + +#if !defined(_TRACE_NAPI_H) || defined(TRACE_HEADER_MULTI_READ) +#define _TRACE_NAPI_H_ + +#include +#include +#include + +#define NO_DEV "(no_device)" + +TRACE_EVENT(napi_poll, + + TP_PROTO(struct napi_struct *napi), + + TP_ARGS(napi), + + TP_STRUCT__entry( + __field( struct napi_struct *, napi) + __string( dev_name, napi->dev ? napi->dev->name : NO_DEV) + ), + + TP_fast_assign( + __entry->napi = napi; + __assign_str(dev_name, napi->dev ? napi->dev->name : NO_DEV); + ), + + TP_printk("napi poll on napi struct %p for device %s", + __entry->napi, __get_str(dev_name)) +); + +#undef NO_DEV + +#endif /* _TRACE_NAPI_H_ */ + +/* This part must be outside protection */ +#include --- linux-3.11.0.orig/ubuntu/lttng-modules/instrumentation/events/mainline/jbd2.h +++ linux-3.11.0/ubuntu/lttng-modules/instrumentation/events/mainline/jbd2.h @@ -0,0 +1,262 @@ +#undef TRACE_SYSTEM +#define TRACE_SYSTEM jbd2 + +#if !defined(_TRACE_JBD2_H) || defined(TRACE_HEADER_MULTI_READ) +#define _TRACE_JBD2_H + +#include +#include + +struct transaction_chp_stats_s; +struct transaction_run_stats_s; + +TRACE_EVENT(jbd2_checkpoint, + + TP_PROTO(journal_t *journal, int result), + + TP_ARGS(journal, result), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( int, result ) + ), + + TP_fast_assign( + __entry->dev = journal->j_fs_dev->bd_dev; + __entry->result = result; + ), + + TP_printk("dev %d,%d result %d", + MAJOR(__entry->dev), MINOR(__entry->dev), __entry->result) +); + +DECLARE_EVENT_CLASS(jbd2_commit, + + TP_PROTO(journal_t *journal, transaction_t *commit_transaction), + + TP_ARGS(journal, commit_transaction), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( char, sync_commit ) + __field( int, transaction ) + ), + + TP_fast_assign( + __entry->dev = journal->j_fs_dev->bd_dev; + __entry->sync_commit = commit_transaction->t_synchronous_commit; + __entry->transaction = commit_transaction->t_tid; + ), + + TP_printk("dev %d,%d transaction %d sync %d", + MAJOR(__entry->dev), MINOR(__entry->dev), + __entry->transaction, __entry->sync_commit) +); + +DEFINE_EVENT(jbd2_commit, jbd2_start_commit, + + TP_PROTO(journal_t *journal, transaction_t *commit_transaction), + + TP_ARGS(journal, commit_transaction) +); + +DEFINE_EVENT(jbd2_commit, jbd2_commit_locking, + + TP_PROTO(journal_t *journal, transaction_t *commit_transaction), + + TP_ARGS(journal, commit_transaction) +); + +DEFINE_EVENT(jbd2_commit, jbd2_commit_flushing, + + TP_PROTO(journal_t *journal, transaction_t *commit_transaction), + + TP_ARGS(journal, commit_transaction) +); + +DEFINE_EVENT(jbd2_commit, jbd2_commit_logging, + + TP_PROTO(journal_t *journal, transaction_t *commit_transaction), + + TP_ARGS(journal, commit_transaction) +); + +DEFINE_EVENT(jbd2_commit, jbd2_drop_transaction, + + TP_PROTO(journal_t *journal, transaction_t *commit_transaction), + + TP_ARGS(journal, commit_transaction) +); + +TRACE_EVENT(jbd2_end_commit, + TP_PROTO(journal_t *journal, transaction_t *commit_transaction), + + TP_ARGS(journal, commit_transaction), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( char, sync_commit ) + __field( int, transaction ) + __field( int, head ) + ), + + TP_fast_assign( + __entry->dev = journal->j_fs_dev->bd_dev; + __entry->sync_commit = commit_transaction->t_synchronous_commit; + __entry->transaction = commit_transaction->t_tid; + __entry->head = journal->j_tail_sequence; + ), + + TP_printk("dev %d,%d transaction %d sync %d head %d", + MAJOR(__entry->dev), MINOR(__entry->dev), + __entry->transaction, __entry->sync_commit, __entry->head) +); + +TRACE_EVENT(jbd2_submit_inode_data, + TP_PROTO(struct inode *inode), + + TP_ARGS(inode), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + ), + + TP_fast_assign( + __entry->dev = inode->i_sb->s_dev; + __entry->ino = inode->i_ino; + ), + + TP_printk("dev %d,%d ino %lu", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino) +); + +TRACE_EVENT(jbd2_run_stats, + TP_PROTO(dev_t dev, unsigned long tid, + struct transaction_run_stats_s *stats), + + TP_ARGS(dev, tid, stats), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( unsigned long, tid ) + __field( unsigned long, wait ) + __field( unsigned long, running ) + __field( unsigned long, locked ) + __field( unsigned long, flushing ) + __field( unsigned long, logging ) + __field( __u32, handle_count ) + __field( __u32, blocks ) + __field( __u32, blocks_logged ) + ), + + TP_fast_assign( + __entry->dev = dev; + __entry->tid = tid; + __entry->wait = stats->rs_wait; + __entry->running = stats->rs_running; + __entry->locked = stats->rs_locked; + __entry->flushing = stats->rs_flushing; + __entry->logging = stats->rs_logging; + __entry->handle_count = stats->rs_handle_count; + __entry->blocks = stats->rs_blocks; + __entry->blocks_logged = stats->rs_blocks_logged; + ), + + TP_printk("dev %d,%d tid %lu wait %u running %u locked %u flushing %u " + "logging %u handle_count %u blocks %u blocks_logged %u", + MAJOR(__entry->dev), MINOR(__entry->dev), __entry->tid, + jiffies_to_msecs(__entry->wait), + jiffies_to_msecs(__entry->running), + jiffies_to_msecs(__entry->locked), + jiffies_to_msecs(__entry->flushing), + jiffies_to_msecs(__entry->logging), + __entry->handle_count, __entry->blocks, + __entry->blocks_logged) +); + +TRACE_EVENT(jbd2_checkpoint_stats, + TP_PROTO(dev_t dev, unsigned long tid, + struct transaction_chp_stats_s *stats), + + TP_ARGS(dev, tid, stats), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( unsigned long, tid ) + __field( unsigned long, chp_time ) + __field( __u32, forced_to_close ) + __field( __u32, written ) + __field( __u32, dropped ) + ), + + TP_fast_assign( + __entry->dev = dev; + __entry->tid = tid; + __entry->chp_time = stats->cs_chp_time; + __entry->forced_to_close= stats->cs_forced_to_close; + __entry->written = stats->cs_written; + __entry->dropped = stats->cs_dropped; + ), + + TP_printk("dev %d,%d tid %lu chp_time %u forced_to_close %u " + "written %u dropped %u", + MAJOR(__entry->dev), MINOR(__entry->dev), __entry->tid, + jiffies_to_msecs(__entry->chp_time), + __entry->forced_to_close, __entry->written, __entry->dropped) +); + +TRACE_EVENT(jbd2_update_log_tail, + + TP_PROTO(journal_t *journal, tid_t first_tid, + unsigned long block_nr, unsigned long freed), + + TP_ARGS(journal, first_tid, block_nr, freed), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( tid_t, tail_sequence ) + __field( tid_t, first_tid ) + __field(unsigned long, block_nr ) + __field(unsigned long, freed ) + ), + + TP_fast_assign( + __entry->dev = journal->j_fs_dev->bd_dev; + __entry->tail_sequence = journal->j_tail_sequence; + __entry->first_tid = first_tid; + __entry->block_nr = block_nr; + __entry->freed = freed; + ), + + TP_printk("dev %d,%d from %u to %u offset %lu freed %lu", + MAJOR(__entry->dev), MINOR(__entry->dev), + __entry->tail_sequence, __entry->first_tid, + __entry->block_nr, __entry->freed) +); + +TRACE_EVENT(jbd2_write_superblock, + + TP_PROTO(journal_t *journal, int write_op), + + TP_ARGS(journal, write_op), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( int, write_op ) + ), + + TP_fast_assign( + __entry->dev = journal->j_fs_dev->bd_dev; + __entry->write_op = write_op; + ), + + TP_printk("dev %d,%d write_op %x", MAJOR(__entry->dev), + MINOR(__entry->dev), __entry->write_op) +); + +#endif /* _TRACE_JBD2_H */ + +/* This part must be outside protection */ +#include --- linux-3.11.0.orig/ubuntu/lttng-modules/instrumentation/events/mainline/random.h +++ linux-3.11.0/ubuntu/lttng-modules/instrumentation/events/mainline/random.h @@ -0,0 +1,134 @@ +#undef TRACE_SYSTEM +#define TRACE_SYSTEM random + +#if !defined(_TRACE_RANDOM_H) || defined(TRACE_HEADER_MULTI_READ) +#define _TRACE_RANDOM_H + +#include +#include + +DECLARE_EVENT_CLASS(random__mix_pool_bytes, + TP_PROTO(const char *pool_name, int bytes, unsigned long IP), + + TP_ARGS(pool_name, bytes, IP), + + TP_STRUCT__entry( + __field( const char *, pool_name ) + __field( int, bytes ) + __field(unsigned long, IP ) + ), + + TP_fast_assign( + __entry->pool_name = pool_name; + __entry->bytes = bytes; + __entry->IP = IP; + ), + + TP_printk("%s pool: bytes %d caller %pF", + __entry->pool_name, __entry->bytes, (void *)__entry->IP) +); + +DEFINE_EVENT(random__mix_pool_bytes, mix_pool_bytes, + TP_PROTO(const char *pool_name, int bytes, unsigned long IP), + + TP_ARGS(pool_name, bytes, IP) +); + +DEFINE_EVENT(random__mix_pool_bytes, mix_pool_bytes_nolock, + TP_PROTO(const char *pool_name, int bytes, unsigned long IP), + + TP_ARGS(pool_name, bytes, IP) +); + +TRACE_EVENT(credit_entropy_bits, + TP_PROTO(const char *pool_name, int bits, int entropy_count, + int entropy_total, unsigned long IP), + + TP_ARGS(pool_name, bits, entropy_count, entropy_total, IP), + + TP_STRUCT__entry( + __field( const char *, pool_name ) + __field( int, bits ) + __field( int, entropy_count ) + __field( int, entropy_total ) + __field(unsigned long, IP ) + ), + + TP_fast_assign( + __entry->pool_name = pool_name; + __entry->bits = bits; + __entry->entropy_count = entropy_count; + __entry->entropy_total = entropy_total; + __entry->IP = IP; + ), + + TP_printk("%s pool: bits %d entropy_count %d entropy_total %d " + "caller %pF", __entry->pool_name, __entry->bits, + __entry->entropy_count, __entry->entropy_total, + (void *)__entry->IP) +); + +TRACE_EVENT(get_random_bytes, + TP_PROTO(int nbytes, unsigned long IP), + + TP_ARGS(nbytes, IP), + + TP_STRUCT__entry( + __field( int, nbytes ) + __field(unsigned long, IP ) + ), + + TP_fast_assign( + __entry->nbytes = nbytes; + __entry->IP = IP; + ), + + TP_printk("nbytes %d caller %pF", __entry->nbytes, (void *)__entry->IP) +); + +DECLARE_EVENT_CLASS(random__extract_entropy, + TP_PROTO(const char *pool_name, int nbytes, int entropy_count, + unsigned long IP), + + TP_ARGS(pool_name, nbytes, entropy_count, IP), + + TP_STRUCT__entry( + __field( const char *, pool_name ) + __field( int, nbytes ) + __field( int, entropy_count ) + __field(unsigned long, IP ) + ), + + TP_fast_assign( + __entry->pool_name = pool_name; + __entry->nbytes = nbytes; + __entry->entropy_count = entropy_count; + __entry->IP = IP; + ), + + TP_printk("%s pool: nbytes %d entropy_count %d caller %pF", + __entry->pool_name, __entry->nbytes, __entry->entropy_count, + (void *)__entry->IP) +); + + +DEFINE_EVENT(random__extract_entropy, extract_entropy, + TP_PROTO(const char *pool_name, int nbytes, int entropy_count, + unsigned long IP), + + TP_ARGS(pool_name, nbytes, entropy_count, IP) +); + +DEFINE_EVENT(random__extract_entropy, extract_entropy_user, + TP_PROTO(const char *pool_name, int nbytes, int entropy_count, + unsigned long IP), + + TP_ARGS(pool_name, nbytes, entropy_count, IP) +); + + + +#endif /* _TRACE_RANDOM_H */ + +/* This part must be outside protection */ +#include --- linux-3.11.0.orig/ubuntu/lttng-modules/instrumentation/events/mainline/compaction.h +++ linux-3.11.0/ubuntu/lttng-modules/instrumentation/events/mainline/compaction.h @@ -0,0 +1,74 @@ +#undef TRACE_SYSTEM +#define TRACE_SYSTEM compaction + +#if !defined(_TRACE_COMPACTION_H) || defined(TRACE_HEADER_MULTI_READ) +#define _TRACE_COMPACTION_H + +#include +#include +#include + +DECLARE_EVENT_CLASS(mm_compaction_isolate_template, + + TP_PROTO(unsigned long nr_scanned, + unsigned long nr_taken), + + TP_ARGS(nr_scanned, nr_taken), + + TP_STRUCT__entry( + __field(unsigned long, nr_scanned) + __field(unsigned long, nr_taken) + ), + + TP_fast_assign( + __entry->nr_scanned = nr_scanned; + __entry->nr_taken = nr_taken; + ), + + TP_printk("nr_scanned=%lu nr_taken=%lu", + __entry->nr_scanned, + __entry->nr_taken) +); + +DEFINE_EVENT(mm_compaction_isolate_template, mm_compaction_isolate_migratepages, + + TP_PROTO(unsigned long nr_scanned, + unsigned long nr_taken), + + TP_ARGS(nr_scanned, nr_taken) +); + +DEFINE_EVENT(mm_compaction_isolate_template, mm_compaction_isolate_freepages, + TP_PROTO(unsigned long nr_scanned, + unsigned long nr_taken), + + TP_ARGS(nr_scanned, nr_taken) +); + +TRACE_EVENT(mm_compaction_migratepages, + + TP_PROTO(unsigned long nr_migrated, + unsigned long nr_failed), + + TP_ARGS(nr_migrated, nr_failed), + + TP_STRUCT__entry( + __field(unsigned long, nr_migrated) + __field(unsigned long, nr_failed) + ), + + TP_fast_assign( + __entry->nr_migrated = nr_migrated; + __entry->nr_failed = nr_failed; + ), + + TP_printk("nr_migrated=%lu nr_failed=%lu", + __entry->nr_migrated, + __entry->nr_failed) +); + + +#endif /* _TRACE_COMPACTION_H */ + +/* This part must be outside protection */ +#include --- linux-3.11.0.orig/ubuntu/lttng-modules/instrumentation/events/mainline/sched.h +++ linux-3.11.0/ubuntu/lttng-modules/instrumentation/events/mainline/sched.h @@ -0,0 +1,432 @@ +#undef TRACE_SYSTEM +#define TRACE_SYSTEM sched + +#if !defined(_TRACE_SCHED_H) || defined(TRACE_HEADER_MULTI_READ) +#define _TRACE_SCHED_H + +#include +#include +#include + +/* + * Tracepoint for calling kthread_stop, performed to end a kthread: + */ +TRACE_EVENT(sched_kthread_stop, + + TP_PROTO(struct task_struct *t), + + TP_ARGS(t), + + TP_STRUCT__entry( + __array( char, comm, TASK_COMM_LEN ) + __field( pid_t, pid ) + ), + + TP_fast_assign( + memcpy(__entry->comm, t->comm, TASK_COMM_LEN); + __entry->pid = t->pid; + ), + + TP_printk("comm=%s pid=%d", __entry->comm, __entry->pid) +); + +/* + * Tracepoint for the return value of the kthread stopping: + */ +TRACE_EVENT(sched_kthread_stop_ret, + + TP_PROTO(int ret), + + TP_ARGS(ret), + + TP_STRUCT__entry( + __field( int, ret ) + ), + + TP_fast_assign( + __entry->ret = ret; + ), + + TP_printk("ret=%d", __entry->ret) +); + +/* + * Tracepoint for waking up a task: + */ +DECLARE_EVENT_CLASS(sched_wakeup_template, + + TP_PROTO(struct task_struct *p, int success), + + TP_ARGS(p, success), + + TP_STRUCT__entry( + __array( char, comm, TASK_COMM_LEN ) + __field( pid_t, pid ) + __field( int, prio ) + __field( int, success ) + __field( int, target_cpu ) + ), + + TP_fast_assign( + memcpy(__entry->comm, p->comm, TASK_COMM_LEN); + __entry->pid = p->pid; + __entry->prio = p->prio; + __entry->success = success; + __entry->target_cpu = task_cpu(p); + ), + + TP_printk("comm=%s pid=%d prio=%d success=%d target_cpu=%03d", + __entry->comm, __entry->pid, __entry->prio, + __entry->success, __entry->target_cpu) +); + +DEFINE_EVENT(sched_wakeup_template, sched_wakeup, + TP_PROTO(struct task_struct *p, int success), + TP_ARGS(p, success)); + +/* + * Tracepoint for waking up a new task: + */ +DEFINE_EVENT(sched_wakeup_template, sched_wakeup_new, + TP_PROTO(struct task_struct *p, int success), + TP_ARGS(p, success)); + +#ifdef CREATE_TRACE_POINTS +static inline long __trace_sched_switch_state(struct task_struct *p) +{ + long state = p->state; + +#ifdef CONFIG_PREEMPT + /* + * For all intents and purposes a preempted task is a running task. + */ + if (task_thread_info(p)->preempt_count & PREEMPT_ACTIVE) + state = TASK_RUNNING | TASK_STATE_MAX; +#endif + + return state; +} +#endif + +/* + * Tracepoint for task switches, performed by the scheduler: + */ +TRACE_EVENT(sched_switch, + + TP_PROTO(struct task_struct *prev, + struct task_struct *next), + + TP_ARGS(prev, next), + + TP_STRUCT__entry( + __array( char, prev_comm, TASK_COMM_LEN ) + __field( pid_t, prev_pid ) + __field( int, prev_prio ) + __field( long, prev_state ) + __array( char, next_comm, TASK_COMM_LEN ) + __field( pid_t, next_pid ) + __field( int, next_prio ) + ), + + TP_fast_assign( + memcpy(__entry->next_comm, next->comm, TASK_COMM_LEN); + __entry->prev_pid = prev->pid; + __entry->prev_prio = prev->prio; + __entry->prev_state = __trace_sched_switch_state(prev); + memcpy(__entry->prev_comm, prev->comm, TASK_COMM_LEN); + __entry->next_pid = next->pid; + __entry->next_prio = next->prio; + ), + + TP_printk("prev_comm=%s prev_pid=%d prev_prio=%d prev_state=%s%s ==> next_comm=%s next_pid=%d next_prio=%d", + __entry->prev_comm, __entry->prev_pid, __entry->prev_prio, + __entry->prev_state & (TASK_STATE_MAX-1) ? + __print_flags(__entry->prev_state & (TASK_STATE_MAX-1), "|", + { 1, "S"} , { 2, "D" }, { 4, "T" }, { 8, "t" }, + { 16, "Z" }, { 32, "X" }, { 64, "x" }, + { 128, "W" }) : "R", + __entry->prev_state & TASK_STATE_MAX ? "+" : "", + __entry->next_comm, __entry->next_pid, __entry->next_prio) +); + +/* + * Tracepoint for a task being migrated: + */ +TRACE_EVENT(sched_migrate_task, + + TP_PROTO(struct task_struct *p, int dest_cpu), + + TP_ARGS(p, dest_cpu), + + TP_STRUCT__entry( + __array( char, comm, TASK_COMM_LEN ) + __field( pid_t, pid ) + __field( int, prio ) + __field( int, orig_cpu ) + __field( int, dest_cpu ) + ), + + TP_fast_assign( + memcpy(__entry->comm, p->comm, TASK_COMM_LEN); + __entry->pid = p->pid; + __entry->prio = p->prio; + __entry->orig_cpu = task_cpu(p); + __entry->dest_cpu = dest_cpu; + ), + + TP_printk("comm=%s pid=%d prio=%d orig_cpu=%d dest_cpu=%d", + __entry->comm, __entry->pid, __entry->prio, + __entry->orig_cpu, __entry->dest_cpu) +); + +DECLARE_EVENT_CLASS(sched_process_template, + + TP_PROTO(struct task_struct *p), + + TP_ARGS(p), + + TP_STRUCT__entry( + __array( char, comm, TASK_COMM_LEN ) + __field( pid_t, pid ) + __field( int, prio ) + ), + + TP_fast_assign( + memcpy(__entry->comm, p->comm, TASK_COMM_LEN); + __entry->pid = p->pid; + __entry->prio = p->prio; + ), + + TP_printk("comm=%s pid=%d prio=%d", + __entry->comm, __entry->pid, __entry->prio) +); + +/* + * Tracepoint for freeing a task: + */ +DEFINE_EVENT(sched_process_template, sched_process_free, + TP_PROTO(struct task_struct *p), + TP_ARGS(p)); + + +/* + * Tracepoint for a task exiting: + */ +DEFINE_EVENT(sched_process_template, sched_process_exit, + TP_PROTO(struct task_struct *p), + TP_ARGS(p)); + +/* + * Tracepoint for waiting on task to unschedule: + */ +DEFINE_EVENT(sched_process_template, sched_wait_task, + TP_PROTO(struct task_struct *p), + TP_ARGS(p)); + +/* + * Tracepoint for a waiting task: + */ +TRACE_EVENT(sched_process_wait, + + TP_PROTO(struct pid *pid), + + TP_ARGS(pid), + + TP_STRUCT__entry( + __array( char, comm, TASK_COMM_LEN ) + __field( pid_t, pid ) + __field( int, prio ) + ), + + TP_fast_assign( + memcpy(__entry->comm, current->comm, TASK_COMM_LEN); + __entry->pid = pid_nr(pid); + __entry->prio = current->prio; + ), + + TP_printk("comm=%s pid=%d prio=%d", + __entry->comm, __entry->pid, __entry->prio) +); + +/* + * Tracepoint for do_fork: + */ +TRACE_EVENT(sched_process_fork, + + TP_PROTO(struct task_struct *parent, struct task_struct *child), + + TP_ARGS(parent, child), + + TP_STRUCT__entry( + __array( char, parent_comm, TASK_COMM_LEN ) + __field( pid_t, parent_pid ) + __array( char, child_comm, TASK_COMM_LEN ) + __field( pid_t, child_pid ) + ), + + TP_fast_assign( + memcpy(__entry->parent_comm, parent->comm, TASK_COMM_LEN); + __entry->parent_pid = parent->pid; + memcpy(__entry->child_comm, child->comm, TASK_COMM_LEN); + __entry->child_pid = child->pid; + ), + + TP_printk("comm=%s pid=%d child_comm=%s child_pid=%d", + __entry->parent_comm, __entry->parent_pid, + __entry->child_comm, __entry->child_pid) +); + +/* + * Tracepoint for exec: + */ +TRACE_EVENT(sched_process_exec, + + TP_PROTO(struct task_struct *p, pid_t old_pid, + struct linux_binprm *bprm), + + TP_ARGS(p, old_pid, bprm), + + TP_STRUCT__entry( + __string( filename, bprm->filename ) + __field( pid_t, pid ) + __field( pid_t, old_pid ) + ), + + TP_fast_assign( + __assign_str(filename, bprm->filename); + __entry->pid = p->pid; + __entry->old_pid = old_pid; + ), + + TP_printk("filename=%s pid=%d old_pid=%d", __get_str(filename), + __entry->pid, __entry->old_pid) +); + +/* + * XXX the below sched_stat tracepoints only apply to SCHED_OTHER/BATCH/IDLE + * adding sched_stat support to SCHED_FIFO/RR would be welcome. + */ +DECLARE_EVENT_CLASS(sched_stat_template, + + TP_PROTO(struct task_struct *tsk, u64 delay), + + TP_ARGS(tsk, delay), + + TP_STRUCT__entry( + __array( char, comm, TASK_COMM_LEN ) + __field( pid_t, pid ) + __field( u64, delay ) + ), + + TP_fast_assign( + memcpy(__entry->comm, tsk->comm, TASK_COMM_LEN); + __entry->pid = tsk->pid; + __entry->delay = delay; + ) + TP_perf_assign( + __perf_count(delay); + ), + + TP_printk("comm=%s pid=%d delay=%Lu [ns]", + __entry->comm, __entry->pid, + (unsigned long long)__entry->delay) +); + + +/* + * Tracepoint for accounting wait time (time the task is runnable + * but not actually running due to scheduler contention). + */ +DEFINE_EVENT(sched_stat_template, sched_stat_wait, + TP_PROTO(struct task_struct *tsk, u64 delay), + TP_ARGS(tsk, delay)); + +/* + * Tracepoint for accounting sleep time (time the task is not runnable, + * including iowait, see below). + */ +DEFINE_EVENT(sched_stat_template, sched_stat_sleep, + TP_PROTO(struct task_struct *tsk, u64 delay), + TP_ARGS(tsk, delay)); + +/* + * Tracepoint for accounting iowait time (time the task is not runnable + * due to waiting on IO to complete). + */ +DEFINE_EVENT(sched_stat_template, sched_stat_iowait, + TP_PROTO(struct task_struct *tsk, u64 delay), + TP_ARGS(tsk, delay)); + +/* + * Tracepoint for accounting blocked time (time the task is in uninterruptible). + */ +DEFINE_EVENT(sched_stat_template, sched_stat_blocked, + TP_PROTO(struct task_struct *tsk, u64 delay), + TP_ARGS(tsk, delay)); + +/* + * Tracepoint for accounting runtime (time the task is executing + * on a CPU). + */ +TRACE_EVENT(sched_stat_runtime, + + TP_PROTO(struct task_struct *tsk, u64 runtime, u64 vruntime), + + TP_ARGS(tsk, runtime, vruntime), + + TP_STRUCT__entry( + __array( char, comm, TASK_COMM_LEN ) + __field( pid_t, pid ) + __field( u64, runtime ) + __field( u64, vruntime ) + ), + + TP_fast_assign( + memcpy(__entry->comm, tsk->comm, TASK_COMM_LEN); + __entry->pid = tsk->pid; + __entry->runtime = runtime; + __entry->vruntime = vruntime; + ) + TP_perf_assign( + __perf_count(runtime); + ), + + TP_printk("comm=%s pid=%d runtime=%Lu [ns] vruntime=%Lu [ns]", + __entry->comm, __entry->pid, + (unsigned long long)__entry->runtime, + (unsigned long long)__entry->vruntime) +); + +/* + * Tracepoint for showing priority inheritance modifying a tasks + * priority. + */ +TRACE_EVENT(sched_pi_setprio, + + TP_PROTO(struct task_struct *tsk, int newprio), + + TP_ARGS(tsk, newprio), + + TP_STRUCT__entry( + __array( char, comm, TASK_COMM_LEN ) + __field( pid_t, pid ) + __field( int, oldprio ) + __field( int, newprio ) + ), + + TP_fast_assign( + memcpy(__entry->comm, tsk->comm, TASK_COMM_LEN); + __entry->pid = tsk->pid; + __entry->oldprio = tsk->prio; + __entry->newprio = newprio; + ), + + TP_printk("comm=%s pid=%d oldprio=%d newprio=%d", + __entry->comm, __entry->pid, + __entry->oldprio, __entry->newprio) +); + +#endif /* _TRACE_SCHED_H */ + +/* This part must be outside protection */ +#include --- linux-3.11.0.orig/ubuntu/lttng-modules/instrumentation/events/mainline/signal.h +++ linux-3.11.0/ubuntu/lttng-modules/instrumentation/events/mainline/signal.h @@ -0,0 +1,125 @@ +#undef TRACE_SYSTEM +#define TRACE_SYSTEM signal + +#if !defined(_TRACE_SIGNAL_H) || defined(TRACE_HEADER_MULTI_READ) +#define _TRACE_SIGNAL_H + +#include +#include +#include + +#define TP_STORE_SIGINFO(__entry, info) \ + do { \ + if (info == SEND_SIG_NOINFO || \ + info == SEND_SIG_FORCED) { \ + __entry->errno = 0; \ + __entry->code = SI_USER; \ + } else if (info == SEND_SIG_PRIV) { \ + __entry->errno = 0; \ + __entry->code = SI_KERNEL; \ + } else { \ + __entry->errno = info->si_errno; \ + __entry->code = info->si_code; \ + } \ + } while (0) + +#ifndef TRACE_HEADER_MULTI_READ +enum { + TRACE_SIGNAL_DELIVERED, + TRACE_SIGNAL_IGNORED, + TRACE_SIGNAL_ALREADY_PENDING, + TRACE_SIGNAL_OVERFLOW_FAIL, + TRACE_SIGNAL_LOSE_INFO, +}; +#endif + +/** + * signal_generate - called when a signal is generated + * @sig: signal number + * @info: pointer to struct siginfo + * @task: pointer to struct task_struct + * @group: shared or private + * @result: TRACE_SIGNAL_* + * + * Current process sends a 'sig' signal to 'task' process with + * 'info' siginfo. If 'info' is SEND_SIG_NOINFO or SEND_SIG_PRIV, + * 'info' is not a pointer and you can't access its field. Instead, + * SEND_SIG_NOINFO means that si_code is SI_USER, and SEND_SIG_PRIV + * means that si_code is SI_KERNEL. + */ +TRACE_EVENT(signal_generate, + + TP_PROTO(int sig, struct siginfo *info, struct task_struct *task, + int group, int result), + + TP_ARGS(sig, info, task, group, result), + + TP_STRUCT__entry( + __field( int, sig ) + __field( int, errno ) + __field( int, code ) + __array( char, comm, TASK_COMM_LEN ) + __field( pid_t, pid ) + __field( int, group ) + __field( int, result ) + ), + + TP_fast_assign( + __entry->sig = sig; + TP_STORE_SIGINFO(__entry, info); + memcpy(__entry->comm, task->comm, TASK_COMM_LEN); + __entry->pid = task->pid; + __entry->group = group; + __entry->result = result; + ), + + TP_printk("sig=%d errno=%d code=%d comm=%s pid=%d grp=%d res=%d", + __entry->sig, __entry->errno, __entry->code, + __entry->comm, __entry->pid, __entry->group, + __entry->result) +); + +/** + * signal_deliver - called when a signal is delivered + * @sig: signal number + * @info: pointer to struct siginfo + * @ka: pointer to struct k_sigaction + * + * A 'sig' signal is delivered to current process with 'info' siginfo, + * and it will be handled by 'ka'. ka->sa.sa_handler can be SIG_IGN or + * SIG_DFL. + * Note that some signals reported by signal_generate tracepoint can be + * lost, ignored or modified (by debugger) before hitting this tracepoint. + * This means, this can show which signals are actually delivered, but + * matching generated signals and delivered signals may not be correct. + */ +TRACE_EVENT(signal_deliver, + + TP_PROTO(int sig, struct siginfo *info, struct k_sigaction *ka), + + TP_ARGS(sig, info, ka), + + TP_STRUCT__entry( + __field( int, sig ) + __field( int, errno ) + __field( int, code ) + __field( unsigned long, sa_handler ) + __field( unsigned long, sa_flags ) + ), + + TP_fast_assign( + __entry->sig = sig; + TP_STORE_SIGINFO(__entry, info); + __entry->sa_handler = (unsigned long)ka->sa.sa_handler; + __entry->sa_flags = ka->sa.sa_flags; + ), + + TP_printk("sig=%d errno=%d code=%d sa_handler=%lx sa_flags=%lx", + __entry->sig, __entry->errno, __entry->code, + __entry->sa_handler, __entry->sa_flags) +); + +#endif /* _TRACE_SIGNAL_H */ + +/* This part must be outside protection */ +#include --- linux-3.11.0.orig/ubuntu/lttng-modules/instrumentation/events/mainline/sock.h +++ linux-3.11.0/ubuntu/lttng-modules/instrumentation/events/mainline/sock.h @@ -0,0 +1,68 @@ +#undef TRACE_SYSTEM +#define TRACE_SYSTEM sock + +#if !defined(_TRACE_SOCK_H) || defined(TRACE_HEADER_MULTI_READ) +#define _TRACE_SOCK_H + +#include +#include + +TRACE_EVENT(sock_rcvqueue_full, + + TP_PROTO(struct sock *sk, struct sk_buff *skb), + + TP_ARGS(sk, skb), + + TP_STRUCT__entry( + __field(int, rmem_alloc) + __field(unsigned int, truesize) + __field(int, sk_rcvbuf) + ), + + TP_fast_assign( + __entry->rmem_alloc = atomic_read(&sk->sk_rmem_alloc); + __entry->truesize = skb->truesize; + __entry->sk_rcvbuf = sk->sk_rcvbuf; + ), + + TP_printk("rmem_alloc=%d truesize=%u sk_rcvbuf=%d", + __entry->rmem_alloc, __entry->truesize, __entry->sk_rcvbuf) +); + +TRACE_EVENT(sock_exceed_buf_limit, + + TP_PROTO(struct sock *sk, struct proto *prot, long allocated), + + TP_ARGS(sk, prot, allocated), + + TP_STRUCT__entry( + __array(char, name, 32) + __field(long *, sysctl_mem) + __field(long, allocated) + __field(int, sysctl_rmem) + __field(int, rmem_alloc) + ), + + TP_fast_assign( + strncpy(__entry->name, prot->name, 32); + __entry->sysctl_mem = prot->sysctl_mem; + __entry->allocated = allocated; + __entry->sysctl_rmem = prot->sysctl_rmem[0]; + __entry->rmem_alloc = atomic_read(&sk->sk_rmem_alloc); + ), + + TP_printk("proto:%s sysctl_mem=%ld,%ld,%ld allocated=%ld " + "sysctl_rmem=%d rmem_alloc=%d", + __entry->name, + __entry->sysctl_mem[0], + __entry->sysctl_mem[1], + __entry->sysctl_mem[2], + __entry->allocated, + __entry->sysctl_rmem, + __entry->rmem_alloc) +); + +#endif /* _TRACE_SOCK_H */ + +/* This part must be outside protection */ +#include --- linux-3.11.0.orig/ubuntu/lttng-modules/instrumentation/events/mainline/scsi.h +++ linux-3.11.0/ubuntu/lttng-modules/instrumentation/events/mainline/scsi.h @@ -0,0 +1,365 @@ +#undef TRACE_SYSTEM +#define TRACE_SYSTEM scsi + +#if !defined(_TRACE_SCSI_H) || defined(TRACE_HEADER_MULTI_READ) +#define _TRACE_SCSI_H + +#include +#include +#include +#include + +#define scsi_opcode_name(opcode) { opcode, #opcode } +#define show_opcode_name(val) \ + __print_symbolic(val, \ + scsi_opcode_name(TEST_UNIT_READY), \ + scsi_opcode_name(REZERO_UNIT), \ + scsi_opcode_name(REQUEST_SENSE), \ + scsi_opcode_name(FORMAT_UNIT), \ + scsi_opcode_name(READ_BLOCK_LIMITS), \ + scsi_opcode_name(REASSIGN_BLOCKS), \ + scsi_opcode_name(INITIALIZE_ELEMENT_STATUS), \ + scsi_opcode_name(READ_6), \ + scsi_opcode_name(WRITE_6), \ + scsi_opcode_name(SEEK_6), \ + scsi_opcode_name(READ_REVERSE), \ + scsi_opcode_name(WRITE_FILEMARKS), \ + scsi_opcode_name(SPACE), \ + scsi_opcode_name(INQUIRY), \ + scsi_opcode_name(RECOVER_BUFFERED_DATA), \ + scsi_opcode_name(MODE_SELECT), \ + scsi_opcode_name(RESERVE), \ + scsi_opcode_name(RELEASE), \ + scsi_opcode_name(COPY), \ + scsi_opcode_name(ERASE), \ + scsi_opcode_name(MODE_SENSE), \ + scsi_opcode_name(START_STOP), \ + scsi_opcode_name(RECEIVE_DIAGNOSTIC), \ + scsi_opcode_name(SEND_DIAGNOSTIC), \ + scsi_opcode_name(ALLOW_MEDIUM_REMOVAL), \ + scsi_opcode_name(SET_WINDOW), \ + scsi_opcode_name(READ_CAPACITY), \ + scsi_opcode_name(READ_10), \ + scsi_opcode_name(WRITE_10), \ + scsi_opcode_name(SEEK_10), \ + scsi_opcode_name(POSITION_TO_ELEMENT), \ + scsi_opcode_name(WRITE_VERIFY), \ + scsi_opcode_name(VERIFY), \ + scsi_opcode_name(SEARCH_HIGH), \ + scsi_opcode_name(SEARCH_EQUAL), \ + scsi_opcode_name(SEARCH_LOW), \ + scsi_opcode_name(SET_LIMITS), \ + scsi_opcode_name(PRE_FETCH), \ + scsi_opcode_name(READ_POSITION), \ + scsi_opcode_name(SYNCHRONIZE_CACHE), \ + scsi_opcode_name(LOCK_UNLOCK_CACHE), \ + scsi_opcode_name(READ_DEFECT_DATA), \ + scsi_opcode_name(MEDIUM_SCAN), \ + scsi_opcode_name(COMPARE), \ + scsi_opcode_name(COPY_VERIFY), \ + scsi_opcode_name(WRITE_BUFFER), \ + scsi_opcode_name(READ_BUFFER), \ + scsi_opcode_name(UPDATE_BLOCK), \ + scsi_opcode_name(READ_LONG), \ + scsi_opcode_name(WRITE_LONG), \ + scsi_opcode_name(CHANGE_DEFINITION), \ + scsi_opcode_name(WRITE_SAME), \ + scsi_opcode_name(UNMAP), \ + scsi_opcode_name(READ_TOC), \ + scsi_opcode_name(LOG_SELECT), \ + scsi_opcode_name(LOG_SENSE), \ + scsi_opcode_name(XDWRITEREAD_10), \ + scsi_opcode_name(MODE_SELECT_10), \ + scsi_opcode_name(RESERVE_10), \ + scsi_opcode_name(RELEASE_10), \ + scsi_opcode_name(MODE_SENSE_10), \ + scsi_opcode_name(PERSISTENT_RESERVE_IN), \ + scsi_opcode_name(PERSISTENT_RESERVE_OUT), \ + scsi_opcode_name(VARIABLE_LENGTH_CMD), \ + scsi_opcode_name(REPORT_LUNS), \ + scsi_opcode_name(MAINTENANCE_IN), \ + scsi_opcode_name(MAINTENANCE_OUT), \ + scsi_opcode_name(MOVE_MEDIUM), \ + scsi_opcode_name(EXCHANGE_MEDIUM), \ + scsi_opcode_name(READ_12), \ + scsi_opcode_name(WRITE_12), \ + scsi_opcode_name(WRITE_VERIFY_12), \ + scsi_opcode_name(SEARCH_HIGH_12), \ + scsi_opcode_name(SEARCH_EQUAL_12), \ + scsi_opcode_name(SEARCH_LOW_12), \ + scsi_opcode_name(READ_ELEMENT_STATUS), \ + scsi_opcode_name(SEND_VOLUME_TAG), \ + scsi_opcode_name(WRITE_LONG_2), \ + scsi_opcode_name(READ_16), \ + scsi_opcode_name(WRITE_16), \ + scsi_opcode_name(VERIFY_16), \ + scsi_opcode_name(WRITE_SAME_16), \ + scsi_opcode_name(SERVICE_ACTION_IN), \ + scsi_opcode_name(SAI_READ_CAPACITY_16), \ + scsi_opcode_name(SAI_GET_LBA_STATUS), \ + scsi_opcode_name(MI_REPORT_TARGET_PGS), \ + scsi_opcode_name(MO_SET_TARGET_PGS), \ + scsi_opcode_name(READ_32), \ + scsi_opcode_name(WRITE_32), \ + scsi_opcode_name(WRITE_SAME_32), \ + scsi_opcode_name(ATA_16), \ + scsi_opcode_name(ATA_12)) + +#define scsi_hostbyte_name(result) { result, #result } +#define show_hostbyte_name(val) \ + __print_symbolic(val, \ + scsi_hostbyte_name(DID_OK), \ + scsi_hostbyte_name(DID_NO_CONNECT), \ + scsi_hostbyte_name(DID_BUS_BUSY), \ + scsi_hostbyte_name(DID_TIME_OUT), \ + scsi_hostbyte_name(DID_BAD_TARGET), \ + scsi_hostbyte_name(DID_ABORT), \ + scsi_hostbyte_name(DID_PARITY), \ + scsi_hostbyte_name(DID_ERROR), \ + scsi_hostbyte_name(DID_RESET), \ + scsi_hostbyte_name(DID_BAD_INTR), \ + scsi_hostbyte_name(DID_PASSTHROUGH), \ + scsi_hostbyte_name(DID_SOFT_ERROR), \ + scsi_hostbyte_name(DID_IMM_RETRY), \ + scsi_hostbyte_name(DID_REQUEUE), \ + scsi_hostbyte_name(DID_TRANSPORT_DISRUPTED), \ + scsi_hostbyte_name(DID_TRANSPORT_FAILFAST)) + +#define scsi_driverbyte_name(result) { result, #result } +#define show_driverbyte_name(val) \ + __print_symbolic(val, \ + scsi_driverbyte_name(DRIVER_OK), \ + scsi_driverbyte_name(DRIVER_BUSY), \ + scsi_driverbyte_name(DRIVER_SOFT), \ + scsi_driverbyte_name(DRIVER_MEDIA), \ + scsi_driverbyte_name(DRIVER_ERROR), \ + scsi_driverbyte_name(DRIVER_INVALID), \ + scsi_driverbyte_name(DRIVER_TIMEOUT), \ + scsi_driverbyte_name(DRIVER_HARD), \ + scsi_driverbyte_name(DRIVER_SENSE)) + +#define scsi_msgbyte_name(result) { result, #result } +#define show_msgbyte_name(val) \ + __print_symbolic(val, \ + scsi_msgbyte_name(COMMAND_COMPLETE), \ + scsi_msgbyte_name(EXTENDED_MESSAGE), \ + scsi_msgbyte_name(SAVE_POINTERS), \ + scsi_msgbyte_name(RESTORE_POINTERS), \ + scsi_msgbyte_name(DISCONNECT), \ + scsi_msgbyte_name(INITIATOR_ERROR), \ + scsi_msgbyte_name(ABORT_TASK_SET), \ + scsi_msgbyte_name(MESSAGE_REJECT), \ + scsi_msgbyte_name(NOP), \ + scsi_msgbyte_name(MSG_PARITY_ERROR), \ + scsi_msgbyte_name(LINKED_CMD_COMPLETE), \ + scsi_msgbyte_name(LINKED_FLG_CMD_COMPLETE), \ + scsi_msgbyte_name(TARGET_RESET), \ + scsi_msgbyte_name(ABORT_TASK), \ + scsi_msgbyte_name(CLEAR_TASK_SET), \ + scsi_msgbyte_name(INITIATE_RECOVERY), \ + scsi_msgbyte_name(RELEASE_RECOVERY), \ + scsi_msgbyte_name(CLEAR_ACA), \ + scsi_msgbyte_name(LOGICAL_UNIT_RESET), \ + scsi_msgbyte_name(SIMPLE_QUEUE_TAG), \ + scsi_msgbyte_name(HEAD_OF_QUEUE_TAG), \ + scsi_msgbyte_name(ORDERED_QUEUE_TAG), \ + scsi_msgbyte_name(IGNORE_WIDE_RESIDUE), \ + scsi_msgbyte_name(ACA), \ + scsi_msgbyte_name(QAS_REQUEST), \ + scsi_msgbyte_name(BUS_DEVICE_RESET), \ + scsi_msgbyte_name(ABORT)) + +#define scsi_statusbyte_name(result) { result, #result } +#define show_statusbyte_name(val) \ + __print_symbolic(val, \ + scsi_statusbyte_name(SAM_STAT_GOOD), \ + scsi_statusbyte_name(SAM_STAT_CHECK_CONDITION), \ + scsi_statusbyte_name(SAM_STAT_CONDITION_MET), \ + scsi_statusbyte_name(SAM_STAT_BUSY), \ + scsi_statusbyte_name(SAM_STAT_INTERMEDIATE), \ + scsi_statusbyte_name(SAM_STAT_INTERMEDIATE_CONDITION_MET), \ + scsi_statusbyte_name(SAM_STAT_RESERVATION_CONFLICT), \ + scsi_statusbyte_name(SAM_STAT_COMMAND_TERMINATED), \ + scsi_statusbyte_name(SAM_STAT_TASK_SET_FULL), \ + scsi_statusbyte_name(SAM_STAT_ACA_ACTIVE), \ + scsi_statusbyte_name(SAM_STAT_TASK_ABORTED)) + +#define scsi_prot_op_name(result) { result, #result } +#define show_prot_op_name(val) \ + __print_symbolic(val, \ + scsi_prot_op_name(SCSI_PROT_NORMAL), \ + scsi_prot_op_name(SCSI_PROT_READ_INSERT), \ + scsi_prot_op_name(SCSI_PROT_WRITE_STRIP), \ + scsi_prot_op_name(SCSI_PROT_READ_STRIP), \ + scsi_prot_op_name(SCSI_PROT_WRITE_INSERT), \ + scsi_prot_op_name(SCSI_PROT_READ_PASS), \ + scsi_prot_op_name(SCSI_PROT_WRITE_PASS)) + +const char *scsi_trace_parse_cdb(struct trace_seq*, unsigned char*, int); +#define __parse_cdb(cdb, len) scsi_trace_parse_cdb(p, cdb, len) + +TRACE_EVENT(scsi_dispatch_cmd_start, + + TP_PROTO(struct scsi_cmnd *cmd), + + TP_ARGS(cmd), + + TP_STRUCT__entry( + __field( unsigned int, host_no ) + __field( unsigned int, channel ) + __field( unsigned int, id ) + __field( unsigned int, lun ) + __field( unsigned int, opcode ) + __field( unsigned int, cmd_len ) + __field( unsigned int, data_sglen ) + __field( unsigned int, prot_sglen ) + __field( unsigned char, prot_op ) + __dynamic_array(unsigned char, cmnd, cmd->cmd_len) + ), + + TP_fast_assign( + __entry->host_no = cmd->device->host->host_no; + __entry->channel = cmd->device->channel; + __entry->id = cmd->device->id; + __entry->lun = cmd->device->lun; + __entry->opcode = cmd->cmnd[0]; + __entry->cmd_len = cmd->cmd_len; + __entry->data_sglen = scsi_sg_count(cmd); + __entry->prot_sglen = scsi_prot_sg_count(cmd); + __entry->prot_op = scsi_get_prot_op(cmd); + memcpy(__get_dynamic_array(cmnd), cmd->cmnd, cmd->cmd_len); + ), + + TP_printk("host_no=%u channel=%u id=%u lun=%u data_sgl=%u prot_sgl=%u" \ + " prot_op=%s cmnd=(%s %s raw=%s)", + __entry->host_no, __entry->channel, __entry->id, + __entry->lun, __entry->data_sglen, __entry->prot_sglen, + show_prot_op_name(__entry->prot_op), + show_opcode_name(__entry->opcode), + __parse_cdb(__get_dynamic_array(cmnd), __entry->cmd_len), + __print_hex(__get_dynamic_array(cmnd), __entry->cmd_len)) +); + +TRACE_EVENT(scsi_dispatch_cmd_error, + + TP_PROTO(struct scsi_cmnd *cmd, int rtn), + + TP_ARGS(cmd, rtn), + + TP_STRUCT__entry( + __field( unsigned int, host_no ) + __field( unsigned int, channel ) + __field( unsigned int, id ) + __field( unsigned int, lun ) + __field( int, rtn ) + __field( unsigned int, opcode ) + __field( unsigned int, cmd_len ) + __field( unsigned int, data_sglen ) + __field( unsigned int, prot_sglen ) + __field( unsigned char, prot_op ) + __dynamic_array(unsigned char, cmnd, cmd->cmd_len) + ), + + TP_fast_assign( + __entry->host_no = cmd->device->host->host_no; + __entry->channel = cmd->device->channel; + __entry->id = cmd->device->id; + __entry->lun = cmd->device->lun; + __entry->rtn = rtn; + __entry->opcode = cmd->cmnd[0]; + __entry->cmd_len = cmd->cmd_len; + __entry->data_sglen = scsi_sg_count(cmd); + __entry->prot_sglen = scsi_prot_sg_count(cmd); + __entry->prot_op = scsi_get_prot_op(cmd); + memcpy(__get_dynamic_array(cmnd), cmd->cmnd, cmd->cmd_len); + ), + + TP_printk("host_no=%u channel=%u id=%u lun=%u data_sgl=%u prot_sgl=%u" \ + " prot_op=%s cmnd=(%s %s raw=%s) rtn=%d", + __entry->host_no, __entry->channel, __entry->id, + __entry->lun, __entry->data_sglen, __entry->prot_sglen, + show_prot_op_name(__entry->prot_op), + show_opcode_name(__entry->opcode), + __parse_cdb(__get_dynamic_array(cmnd), __entry->cmd_len), + __print_hex(__get_dynamic_array(cmnd), __entry->cmd_len), + __entry->rtn) +); + +DECLARE_EVENT_CLASS(scsi_cmd_done_timeout_template, + + TP_PROTO(struct scsi_cmnd *cmd), + + TP_ARGS(cmd), + + TP_STRUCT__entry( + __field( unsigned int, host_no ) + __field( unsigned int, channel ) + __field( unsigned int, id ) + __field( unsigned int, lun ) + __field( int, result ) + __field( unsigned int, opcode ) + __field( unsigned int, cmd_len ) + __field( unsigned int, data_sglen ) + __field( unsigned int, prot_sglen ) + __field( unsigned char, prot_op ) + __dynamic_array(unsigned char, cmnd, cmd->cmd_len) + ), + + TP_fast_assign( + __entry->host_no = cmd->device->host->host_no; + __entry->channel = cmd->device->channel; + __entry->id = cmd->device->id; + __entry->lun = cmd->device->lun; + __entry->result = cmd->result; + __entry->opcode = cmd->cmnd[0]; + __entry->cmd_len = cmd->cmd_len; + __entry->data_sglen = scsi_sg_count(cmd); + __entry->prot_sglen = scsi_prot_sg_count(cmd); + __entry->prot_op = scsi_get_prot_op(cmd); + memcpy(__get_dynamic_array(cmnd), cmd->cmnd, cmd->cmd_len); + ), + + TP_printk("host_no=%u channel=%u id=%u lun=%u data_sgl=%u " \ + "prot_sgl=%u prot_op=%s cmnd=(%s %s raw=%s) result=(driver=" \ + "%s host=%s message=%s status=%s)", + __entry->host_no, __entry->channel, __entry->id, + __entry->lun, __entry->data_sglen, __entry->prot_sglen, + show_prot_op_name(__entry->prot_op), + show_opcode_name(__entry->opcode), + __parse_cdb(__get_dynamic_array(cmnd), __entry->cmd_len), + __print_hex(__get_dynamic_array(cmnd), __entry->cmd_len), + show_driverbyte_name(((__entry->result) >> 24) & 0xff), + show_hostbyte_name(((__entry->result) >> 16) & 0xff), + show_msgbyte_name(((__entry->result) >> 8) & 0xff), + show_statusbyte_name(__entry->result & 0xff)) +); + +DEFINE_EVENT(scsi_cmd_done_timeout_template, scsi_dispatch_cmd_done, + TP_PROTO(struct scsi_cmnd *cmd), + TP_ARGS(cmd)); + +DEFINE_EVENT(scsi_cmd_done_timeout_template, scsi_dispatch_cmd_timeout, + TP_PROTO(struct scsi_cmnd *cmd), + TP_ARGS(cmd)); + +TRACE_EVENT(scsi_eh_wakeup, + + TP_PROTO(struct Scsi_Host *shost), + + TP_ARGS(shost), + + TP_STRUCT__entry( + __field( unsigned int, host_no ) + ), + + TP_fast_assign( + __entry->host_no = shost->host_no; + ), + + TP_printk("host_no=%u", __entry->host_no) +); + +#endif /* _TRACE_SCSI_H */ + +/* This part must be outside protection */ +#include --- linux-3.11.0.orig/ubuntu/lttng-modules/instrumentation/events/mainline/regulator.h +++ linux-3.11.0/ubuntu/lttng-modules/instrumentation/events/mainline/regulator.h @@ -0,0 +1,141 @@ +#undef TRACE_SYSTEM +#define TRACE_SYSTEM regulator + +#if !defined(_TRACE_REGULATOR_H) || defined(TRACE_HEADER_MULTI_READ) +#define _TRACE_REGULATOR_H + +#include +#include + +/* + * Events which just log themselves and the regulator name for enable/disable + * type tracking. + */ +DECLARE_EVENT_CLASS(regulator_basic, + + TP_PROTO(const char *name), + + TP_ARGS(name), + + TP_STRUCT__entry( + __string( name, name ) + ), + + TP_fast_assign( + __assign_str(name, name); + ), + + TP_printk("name=%s", __get_str(name)) + +); + +DEFINE_EVENT(regulator_basic, regulator_enable, + + TP_PROTO(const char *name), + + TP_ARGS(name) + +); + +DEFINE_EVENT(regulator_basic, regulator_enable_delay, + + TP_PROTO(const char *name), + + TP_ARGS(name) + +); + +DEFINE_EVENT(regulator_basic, regulator_enable_complete, + + TP_PROTO(const char *name), + + TP_ARGS(name) + +); + +DEFINE_EVENT(regulator_basic, regulator_disable, + + TP_PROTO(const char *name), + + TP_ARGS(name) + +); + +DEFINE_EVENT(regulator_basic, regulator_disable_complete, + + TP_PROTO(const char *name), + + TP_ARGS(name) + +); + +/* + * Events that take a range of numerical values, mostly for voltages + * and so on. + */ +DECLARE_EVENT_CLASS(regulator_range, + + TP_PROTO(const char *name, int min, int max), + + TP_ARGS(name, min, max), + + TP_STRUCT__entry( + __string( name, name ) + __field( int, min ) + __field( int, max ) + ), + + TP_fast_assign( + __assign_str(name, name); + __entry->min = min; + __entry->max = max; + ), + + TP_printk("name=%s (%d-%d)", __get_str(name), + (int)__entry->min, (int)__entry->max) +); + +DEFINE_EVENT(regulator_range, regulator_set_voltage, + + TP_PROTO(const char *name, int min, int max), + + TP_ARGS(name, min, max) + +); + + +/* + * Events that take a single value, mostly for readback and refcounts. + */ +DECLARE_EVENT_CLASS(regulator_value, + + TP_PROTO(const char *name, unsigned int val), + + TP_ARGS(name, val), + + TP_STRUCT__entry( + __string( name, name ) + __field( unsigned int, val ) + ), + + TP_fast_assign( + __assign_str(name, name); + __entry->val = val; + ), + + TP_printk("name=%s, val=%u", __get_str(name), + (int)__entry->val) +); + +DEFINE_EVENT(regulator_value, regulator_set_voltage_complete, + + TP_PROTO(const char *name, unsigned int value), + + TP_ARGS(name, value) + +); + +#endif /* _TRACE_POWER_H */ + +/* This part must be outside protection */ +#include --- linux-3.11.0.orig/ubuntu/lttng-modules/instrumentation/events/mainline/block.h +++ linux-3.11.0/ubuntu/lttng-modules/instrumentation/events/mainline/block.h @@ -0,0 +1,571 @@ +#undef TRACE_SYSTEM +#define TRACE_SYSTEM block + +#if !defined(_TRACE_BLOCK_H) || defined(TRACE_HEADER_MULTI_READ) +#define _TRACE_BLOCK_H + +#include +#include +#include + +#define RWBS_LEN 8 + +DECLARE_EVENT_CLASS(block_rq_with_error, + + TP_PROTO(struct request_queue *q, struct request *rq), + + TP_ARGS(q, rq), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( sector_t, sector ) + __field( unsigned int, nr_sector ) + __field( int, errors ) + __array( char, rwbs, RWBS_LEN ) + __dynamic_array( char, cmd, blk_cmd_buf_len(rq) ) + ), + + TP_fast_assign( + __entry->dev = rq->rq_disk ? disk_devt(rq->rq_disk) : 0; + __entry->sector = (rq->cmd_type == REQ_TYPE_BLOCK_PC) ? + 0 : blk_rq_pos(rq); + __entry->nr_sector = (rq->cmd_type == REQ_TYPE_BLOCK_PC) ? + 0 : blk_rq_sectors(rq); + __entry->errors = rq->errors; + + blk_fill_rwbs(__entry->rwbs, rq->cmd_flags, blk_rq_bytes(rq)); + blk_dump_cmd(__get_str(cmd), rq); + ), + + TP_printk("%d,%d %s (%s) %llu + %u [%d]", + MAJOR(__entry->dev), MINOR(__entry->dev), + __entry->rwbs, __get_str(cmd), + (unsigned long long)__entry->sector, + __entry->nr_sector, __entry->errors) +); + +/** + * block_rq_abort - abort block operation request + * @q: queue containing the block operation request + * @rq: block IO operation request + * + * Called immediately after pending block IO operation request @rq in + * queue @q is aborted. The fields in the operation request @rq + * can be examined to determine which device and sectors the pending + * operation would access. + */ +DEFINE_EVENT(block_rq_with_error, block_rq_abort, + + TP_PROTO(struct request_queue *q, struct request *rq), + + TP_ARGS(q, rq) +); + +/** + * block_rq_requeue - place block IO request back on a queue + * @q: queue holding operation + * @rq: block IO operation request + * + * The block operation request @rq is being placed back into queue + * @q. For some reason the request was not completed and needs to be + * put back in the queue. + */ +DEFINE_EVENT(block_rq_with_error, block_rq_requeue, + + TP_PROTO(struct request_queue *q, struct request *rq), + + TP_ARGS(q, rq) +); + +/** + * block_rq_complete - block IO operation completed by device driver + * @q: queue containing the block operation request + * @rq: block operations request + * + * The block_rq_complete tracepoint event indicates that some portion + * of operation request has been completed by the device driver. If + * the @rq->bio is %NULL, then there is absolutely no additional work to + * do for the request. If @rq->bio is non-NULL then there is + * additional work required to complete the request. + */ +DEFINE_EVENT(block_rq_with_error, block_rq_complete, + + TP_PROTO(struct request_queue *q, struct request *rq), + + TP_ARGS(q, rq) +); + +DECLARE_EVENT_CLASS(block_rq, + + TP_PROTO(struct request_queue *q, struct request *rq), + + TP_ARGS(q, rq), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( sector_t, sector ) + __field( unsigned int, nr_sector ) + __field( unsigned int, bytes ) + __array( char, rwbs, RWBS_LEN ) + __array( char, comm, TASK_COMM_LEN ) + __dynamic_array( char, cmd, blk_cmd_buf_len(rq) ) + ), + + TP_fast_assign( + __entry->dev = rq->rq_disk ? disk_devt(rq->rq_disk) : 0; + __entry->sector = (rq->cmd_type == REQ_TYPE_BLOCK_PC) ? + 0 : blk_rq_pos(rq); + __entry->nr_sector = (rq->cmd_type == REQ_TYPE_BLOCK_PC) ? + 0 : blk_rq_sectors(rq); + __entry->bytes = (rq->cmd_type == REQ_TYPE_BLOCK_PC) ? + blk_rq_bytes(rq) : 0; + + blk_fill_rwbs(__entry->rwbs, rq->cmd_flags, blk_rq_bytes(rq)); + blk_dump_cmd(__get_str(cmd), rq); + memcpy(__entry->comm, current->comm, TASK_COMM_LEN); + ), + + TP_printk("%d,%d %s %u (%s) %llu + %u [%s]", + MAJOR(__entry->dev), MINOR(__entry->dev), + __entry->rwbs, __entry->bytes, __get_str(cmd), + (unsigned long long)__entry->sector, + __entry->nr_sector, __entry->comm) +); + +/** + * block_rq_insert - insert block operation request into queue + * @q: target queue + * @rq: block IO operation request + * + * Called immediately before block operation request @rq is inserted + * into queue @q. The fields in the operation request @rq struct can + * be examined to determine which device and sectors the pending + * operation would access. + */ +DEFINE_EVENT(block_rq, block_rq_insert, + + TP_PROTO(struct request_queue *q, struct request *rq), + + TP_ARGS(q, rq) +); + +/** + * block_rq_issue - issue pending block IO request operation to device driver + * @q: queue holding operation + * @rq: block IO operation operation request + * + * Called when block operation request @rq from queue @q is sent to a + * device driver for processing. + */ +DEFINE_EVENT(block_rq, block_rq_issue, + + TP_PROTO(struct request_queue *q, struct request *rq), + + TP_ARGS(q, rq) +); + +/** + * block_bio_bounce - used bounce buffer when processing block operation + * @q: queue holding the block operation + * @bio: block operation + * + * A bounce buffer was used to handle the block operation @bio in @q. + * This occurs when hardware limitations prevent a direct transfer of + * data between the @bio data memory area and the IO device. Use of a + * bounce buffer requires extra copying of data and decreases + * performance. + */ +TRACE_EVENT(block_bio_bounce, + + TP_PROTO(struct request_queue *q, struct bio *bio), + + TP_ARGS(q, bio), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( sector_t, sector ) + __field( unsigned int, nr_sector ) + __array( char, rwbs, RWBS_LEN ) + __array( char, comm, TASK_COMM_LEN ) + ), + + TP_fast_assign( + __entry->dev = bio->bi_bdev ? + bio->bi_bdev->bd_dev : 0; + __entry->sector = bio->bi_sector; + __entry->nr_sector = bio->bi_size >> 9; + blk_fill_rwbs(__entry->rwbs, bio->bi_rw, bio->bi_size); + memcpy(__entry->comm, current->comm, TASK_COMM_LEN); + ), + + TP_printk("%d,%d %s %llu + %u [%s]", + MAJOR(__entry->dev), MINOR(__entry->dev), __entry->rwbs, + (unsigned long long)__entry->sector, + __entry->nr_sector, __entry->comm) +); + +/** + * block_bio_complete - completed all work on the block operation + * @q: queue holding the block operation + * @bio: block operation completed + * @error: io error value + * + * This tracepoint indicates there is no further work to do on this + * block IO operation @bio. + */ +TRACE_EVENT(block_bio_complete, + + TP_PROTO(struct request_queue *q, struct bio *bio, int error), + + TP_ARGS(q, bio, error), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( sector_t, sector ) + __field( unsigned, nr_sector ) + __field( int, error ) + __array( char, rwbs, RWBS_LEN) + ), + + TP_fast_assign( + __entry->dev = bio->bi_bdev->bd_dev; + __entry->sector = bio->bi_sector; + __entry->nr_sector = bio->bi_size >> 9; + __entry->error = error; + blk_fill_rwbs(__entry->rwbs, bio->bi_rw, bio->bi_size); + ), + + TP_printk("%d,%d %s %llu + %u [%d]", + MAJOR(__entry->dev), MINOR(__entry->dev), __entry->rwbs, + (unsigned long long)__entry->sector, + __entry->nr_sector, __entry->error) +); + +DECLARE_EVENT_CLASS(block_bio, + + TP_PROTO(struct request_queue *q, struct bio *bio), + + TP_ARGS(q, bio), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( sector_t, sector ) + __field( unsigned int, nr_sector ) + __array( char, rwbs, RWBS_LEN ) + __array( char, comm, TASK_COMM_LEN ) + ), + + TP_fast_assign( + __entry->dev = bio->bi_bdev->bd_dev; + __entry->sector = bio->bi_sector; + __entry->nr_sector = bio->bi_size >> 9; + blk_fill_rwbs(__entry->rwbs, bio->bi_rw, bio->bi_size); + memcpy(__entry->comm, current->comm, TASK_COMM_LEN); + ), + + TP_printk("%d,%d %s %llu + %u [%s]", + MAJOR(__entry->dev), MINOR(__entry->dev), __entry->rwbs, + (unsigned long long)__entry->sector, + __entry->nr_sector, __entry->comm) +); + +/** + * block_bio_backmerge - merging block operation to the end of an existing operation + * @q: queue holding operation + * @bio: new block operation to merge + * + * Merging block request @bio to the end of an existing block request + * in queue @q. + */ +DEFINE_EVENT(block_bio, block_bio_backmerge, + + TP_PROTO(struct request_queue *q, struct bio *bio), + + TP_ARGS(q, bio) +); + +/** + * block_bio_frontmerge - merging block operation to the beginning of an existing operation + * @q: queue holding operation + * @bio: new block operation to merge + * + * Merging block IO operation @bio to the beginning of an existing block + * operation in queue @q. + */ +DEFINE_EVENT(block_bio, block_bio_frontmerge, + + TP_PROTO(struct request_queue *q, struct bio *bio), + + TP_ARGS(q, bio) +); + +/** + * block_bio_queue - putting new block IO operation in queue + * @q: queue holding operation + * @bio: new block operation + * + * About to place the block IO operation @bio into queue @q. + */ +DEFINE_EVENT(block_bio, block_bio_queue, + + TP_PROTO(struct request_queue *q, struct bio *bio), + + TP_ARGS(q, bio) +); + +DECLARE_EVENT_CLASS(block_get_rq, + + TP_PROTO(struct request_queue *q, struct bio *bio, int rw), + + TP_ARGS(q, bio, rw), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( sector_t, sector ) + __field( unsigned int, nr_sector ) + __array( char, rwbs, RWBS_LEN ) + __array( char, comm, TASK_COMM_LEN ) + ), + + TP_fast_assign( + __entry->dev = bio ? bio->bi_bdev->bd_dev : 0; + __entry->sector = bio ? bio->bi_sector : 0; + __entry->nr_sector = bio ? bio->bi_size >> 9 : 0; + blk_fill_rwbs(__entry->rwbs, + bio ? bio->bi_rw : 0, __entry->nr_sector); + memcpy(__entry->comm, current->comm, TASK_COMM_LEN); + ), + + TP_printk("%d,%d %s %llu + %u [%s]", + MAJOR(__entry->dev), MINOR(__entry->dev), __entry->rwbs, + (unsigned long long)__entry->sector, + __entry->nr_sector, __entry->comm) +); + +/** + * block_getrq - get a free request entry in queue for block IO operations + * @q: queue for operations + * @bio: pending block IO operation + * @rw: low bit indicates a read (%0) or a write (%1) + * + * A request struct for queue @q has been allocated to handle the + * block IO operation @bio. + */ +DEFINE_EVENT(block_get_rq, block_getrq, + + TP_PROTO(struct request_queue *q, struct bio *bio, int rw), + + TP_ARGS(q, bio, rw) +); + +/** + * block_sleeprq - waiting to get a free request entry in queue for block IO operation + * @q: queue for operation + * @bio: pending block IO operation + * @rw: low bit indicates a read (%0) or a write (%1) + * + * In the case where a request struct cannot be provided for queue @q + * the process needs to wait for an request struct to become + * available. This tracepoint event is generated each time the + * process goes to sleep waiting for request struct become available. + */ +DEFINE_EVENT(block_get_rq, block_sleeprq, + + TP_PROTO(struct request_queue *q, struct bio *bio, int rw), + + TP_ARGS(q, bio, rw) +); + +/** + * block_plug - keep operations requests in request queue + * @q: request queue to plug + * + * Plug the request queue @q. Do not allow block operation requests + * to be sent to the device driver. Instead, accumulate requests in + * the queue to improve throughput performance of the block device. + */ +TRACE_EVENT(block_plug, + + TP_PROTO(struct request_queue *q), + + TP_ARGS(q), + + TP_STRUCT__entry( + __array( char, comm, TASK_COMM_LEN ) + ), + + TP_fast_assign( + memcpy(__entry->comm, current->comm, TASK_COMM_LEN); + ), + + TP_printk("[%s]", __entry->comm) +); + +DECLARE_EVENT_CLASS(block_unplug, + + TP_PROTO(struct request_queue *q, unsigned int depth, bool explicit), + + TP_ARGS(q, depth, explicit), + + TP_STRUCT__entry( + __field( int, nr_rq ) + __array( char, comm, TASK_COMM_LEN ) + ), + + TP_fast_assign( + __entry->nr_rq = depth; + memcpy(__entry->comm, current->comm, TASK_COMM_LEN); + ), + + TP_printk("[%s] %d", __entry->comm, __entry->nr_rq) +); + +/** + * block_unplug - release of operations requests in request queue + * @q: request queue to unplug + * @depth: number of requests just added to the queue + * @explicit: whether this was an explicit unplug, or one from schedule() + * + * Unplug request queue @q because device driver is scheduled to work + * on elements in the request queue. + */ +DEFINE_EVENT(block_unplug, block_unplug, + + TP_PROTO(struct request_queue *q, unsigned int depth, bool explicit), + + TP_ARGS(q, depth, explicit) +); + +/** + * block_split - split a single bio struct into two bio structs + * @q: queue containing the bio + * @bio: block operation being split + * @new_sector: The starting sector for the new bio + * + * The bio request @bio in request queue @q needs to be split into two + * bio requests. The newly created @bio request starts at + * @new_sector. This split may be required due to hardware limitation + * such as operation crossing device boundaries in a RAID system. + */ +TRACE_EVENT(block_split, + + TP_PROTO(struct request_queue *q, struct bio *bio, + unsigned int new_sector), + + TP_ARGS(q, bio, new_sector), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( sector_t, sector ) + __field( sector_t, new_sector ) + __array( char, rwbs, RWBS_LEN ) + __array( char, comm, TASK_COMM_LEN ) + ), + + TP_fast_assign( + __entry->dev = bio->bi_bdev->bd_dev; + __entry->sector = bio->bi_sector; + __entry->new_sector = new_sector; + blk_fill_rwbs(__entry->rwbs, bio->bi_rw, bio->bi_size); + memcpy(__entry->comm, current->comm, TASK_COMM_LEN); + ), + + TP_printk("%d,%d %s %llu / %llu [%s]", + MAJOR(__entry->dev), MINOR(__entry->dev), __entry->rwbs, + (unsigned long long)__entry->sector, + (unsigned long long)__entry->new_sector, + __entry->comm) +); + +/** + * block_bio_remap - map request for a logical device to the raw device + * @q: queue holding the operation + * @bio: revised operation + * @dev: device for the operation + * @from: original sector for the operation + * + * An operation for a logical device has been mapped to the + * raw block device. + */ +TRACE_EVENT(block_bio_remap, + + TP_PROTO(struct request_queue *q, struct bio *bio, dev_t dev, + sector_t from), + + TP_ARGS(q, bio, dev, from), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( sector_t, sector ) + __field( unsigned int, nr_sector ) + __field( dev_t, old_dev ) + __field( sector_t, old_sector ) + __array( char, rwbs, RWBS_LEN) + ), + + TP_fast_assign( + __entry->dev = bio->bi_bdev->bd_dev; + __entry->sector = bio->bi_sector; + __entry->nr_sector = bio->bi_size >> 9; + __entry->old_dev = dev; + __entry->old_sector = from; + blk_fill_rwbs(__entry->rwbs, bio->bi_rw, bio->bi_size); + ), + + TP_printk("%d,%d %s %llu + %u <- (%d,%d) %llu", + MAJOR(__entry->dev), MINOR(__entry->dev), __entry->rwbs, + (unsigned long long)__entry->sector, + __entry->nr_sector, + MAJOR(__entry->old_dev), MINOR(__entry->old_dev), + (unsigned long long)__entry->old_sector) +); + +/** + * block_rq_remap - map request for a block operation request + * @q: queue holding the operation + * @rq: block IO operation request + * @dev: device for the operation + * @from: original sector for the operation + * + * The block operation request @rq in @q has been remapped. The block + * operation request @rq holds the current information and @from hold + * the original sector. + */ +TRACE_EVENT(block_rq_remap, + + TP_PROTO(struct request_queue *q, struct request *rq, dev_t dev, + sector_t from), + + TP_ARGS(q, rq, dev, from), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( sector_t, sector ) + __field( unsigned int, nr_sector ) + __field( dev_t, old_dev ) + __field( sector_t, old_sector ) + __array( char, rwbs, RWBS_LEN) + ), + + TP_fast_assign( + __entry->dev = disk_devt(rq->rq_disk); + __entry->sector = blk_rq_pos(rq); + __entry->nr_sector = blk_rq_sectors(rq); + __entry->old_dev = dev; + __entry->old_sector = from; + blk_fill_rwbs(__entry->rwbs, rq->cmd_flags, blk_rq_bytes(rq)); + ), + + TP_printk("%d,%d %s %llu + %u <- (%d,%d) %llu", + MAJOR(__entry->dev), MINOR(__entry->dev), __entry->rwbs, + (unsigned long long)__entry->sector, + __entry->nr_sector, + MAJOR(__entry->old_dev), MINOR(__entry->old_dev), + (unsigned long long)__entry->old_sector) +); + +#endif /* _TRACE_BLOCK_H */ + +/* This part must be outside protection */ +#include + --- linux-3.11.0.orig/ubuntu/lttng-modules/instrumentation/events/mainline/ext3.h +++ linux-3.11.0/ubuntu/lttng-modules/instrumentation/events/mainline/ext3.h @@ -0,0 +1,864 @@ +#undef TRACE_SYSTEM +#define TRACE_SYSTEM ext3 + +#if !defined(_TRACE_EXT3_H) || defined(TRACE_HEADER_MULTI_READ) +#define _TRACE_EXT3_H + +#include + +TRACE_EVENT(ext3_free_inode, + TP_PROTO(struct inode *inode), + + TP_ARGS(inode), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( umode_t, mode ) + __field( uid_t, uid ) + __field( gid_t, gid ) + __field( blkcnt_t, blocks ) + ), + + TP_fast_assign( + __entry->dev = inode->i_sb->s_dev; + __entry->ino = inode->i_ino; + __entry->mode = inode->i_mode; + __entry->uid = i_uid_read(inode); + __entry->gid = i_gid_read(inode); + __entry->blocks = inode->i_blocks; + ), + + TP_printk("dev %d,%d ino %lu mode 0%o uid %u gid %u blocks %lu", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + __entry->mode, __entry->uid, __entry->gid, + (unsigned long) __entry->blocks) +); + +TRACE_EVENT(ext3_request_inode, + TP_PROTO(struct inode *dir, int mode), + + TP_ARGS(dir, mode), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, dir ) + __field( umode_t, mode ) + ), + + TP_fast_assign( + __entry->dev = dir->i_sb->s_dev; + __entry->dir = dir->i_ino; + __entry->mode = mode; + ), + + TP_printk("dev %d,%d dir %lu mode 0%o", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->dir, __entry->mode) +); + +TRACE_EVENT(ext3_allocate_inode, + TP_PROTO(struct inode *inode, struct inode *dir, int mode), + + TP_ARGS(inode, dir, mode), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( ino_t, dir ) + __field( umode_t, mode ) + ), + + TP_fast_assign( + __entry->dev = inode->i_sb->s_dev; + __entry->ino = inode->i_ino; + __entry->dir = dir->i_ino; + __entry->mode = mode; + ), + + TP_printk("dev %d,%d ino %lu dir %lu mode 0%o", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + (unsigned long) __entry->dir, __entry->mode) +); + +TRACE_EVENT(ext3_evict_inode, + TP_PROTO(struct inode *inode), + + TP_ARGS(inode), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( int, nlink ) + ), + + TP_fast_assign( + __entry->dev = inode->i_sb->s_dev; + __entry->ino = inode->i_ino; + __entry->nlink = inode->i_nlink; + ), + + TP_printk("dev %d,%d ino %lu nlink %d", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, __entry->nlink) +); + +TRACE_EVENT(ext3_drop_inode, + TP_PROTO(struct inode *inode, int drop), + + TP_ARGS(inode, drop), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( int, drop ) + ), + + TP_fast_assign( + __entry->dev = inode->i_sb->s_dev; + __entry->ino = inode->i_ino; + __entry->drop = drop; + ), + + TP_printk("dev %d,%d ino %lu drop %d", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, __entry->drop) +); + +TRACE_EVENT(ext3_mark_inode_dirty, + TP_PROTO(struct inode *inode, unsigned long IP), + + TP_ARGS(inode, IP), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field(unsigned long, ip ) + ), + + TP_fast_assign( + __entry->dev = inode->i_sb->s_dev; + __entry->ino = inode->i_ino; + __entry->ip = IP; + ), + + TP_printk("dev %d,%d ino %lu caller %pF", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, (void *)__entry->ip) +); + +TRACE_EVENT(ext3_write_begin, + TP_PROTO(struct inode *inode, loff_t pos, unsigned int len, + unsigned int flags), + + TP_ARGS(inode, pos, len, flags), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( loff_t, pos ) + __field( unsigned int, len ) + __field( unsigned int, flags ) + ), + + TP_fast_assign( + __entry->dev = inode->i_sb->s_dev; + __entry->ino = inode->i_ino; + __entry->pos = pos; + __entry->len = len; + __entry->flags = flags; + ), + + TP_printk("dev %d,%d ino %lu pos %llu len %u flags %u", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + (unsigned long long) __entry->pos, __entry->len, + __entry->flags) +); + +DECLARE_EVENT_CLASS(ext3__write_end, + TP_PROTO(struct inode *inode, loff_t pos, unsigned int len, + unsigned int copied), + + TP_ARGS(inode, pos, len, copied), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( loff_t, pos ) + __field( unsigned int, len ) + __field( unsigned int, copied ) + ), + + TP_fast_assign( + __entry->dev = inode->i_sb->s_dev; + __entry->ino = inode->i_ino; + __entry->pos = pos; + __entry->len = len; + __entry->copied = copied; + ), + + TP_printk("dev %d,%d ino %lu pos %llu len %u copied %u", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + (unsigned long long) __entry->pos, __entry->len, + __entry->copied) +); + +DEFINE_EVENT(ext3__write_end, ext3_ordered_write_end, + + TP_PROTO(struct inode *inode, loff_t pos, unsigned int len, + unsigned int copied), + + TP_ARGS(inode, pos, len, copied) +); + +DEFINE_EVENT(ext3__write_end, ext3_writeback_write_end, + + TP_PROTO(struct inode *inode, loff_t pos, unsigned int len, + unsigned int copied), + + TP_ARGS(inode, pos, len, copied) +); + +DEFINE_EVENT(ext3__write_end, ext3_journalled_write_end, + + TP_PROTO(struct inode *inode, loff_t pos, unsigned int len, + unsigned int copied), + + TP_ARGS(inode, pos, len, copied) +); + +DECLARE_EVENT_CLASS(ext3__page_op, + TP_PROTO(struct page *page), + + TP_ARGS(page), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( pgoff_t, index ) + + ), + + TP_fast_assign( + __entry->index = page->index; + __entry->ino = page->mapping->host->i_ino; + __entry->dev = page->mapping->host->i_sb->s_dev; + ), + + TP_printk("dev %d,%d ino %lu page_index %lu", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, __entry->index) +); + +DEFINE_EVENT(ext3__page_op, ext3_ordered_writepage, + + TP_PROTO(struct page *page), + + TP_ARGS(page) +); + +DEFINE_EVENT(ext3__page_op, ext3_writeback_writepage, + + TP_PROTO(struct page *page), + + TP_ARGS(page) +); + +DEFINE_EVENT(ext3__page_op, ext3_journalled_writepage, + + TP_PROTO(struct page *page), + + TP_ARGS(page) +); + +DEFINE_EVENT(ext3__page_op, ext3_readpage, + + TP_PROTO(struct page *page), + + TP_ARGS(page) +); + +DEFINE_EVENT(ext3__page_op, ext3_releasepage, + + TP_PROTO(struct page *page), + + TP_ARGS(page) +); + +TRACE_EVENT(ext3_invalidatepage, + TP_PROTO(struct page *page, unsigned long offset), + + TP_ARGS(page, offset), + + TP_STRUCT__entry( + __field( pgoff_t, index ) + __field( unsigned long, offset ) + __field( ino_t, ino ) + __field( dev_t, dev ) + + ), + + TP_fast_assign( + __entry->index = page->index; + __entry->offset = offset; + __entry->ino = page->mapping->host->i_ino; + __entry->dev = page->mapping->host->i_sb->s_dev; + ), + + TP_printk("dev %d,%d ino %lu page_index %lu offset %lu", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + __entry->index, __entry->offset) +); + +TRACE_EVENT(ext3_discard_blocks, + TP_PROTO(struct super_block *sb, unsigned long blk, + unsigned long count), + + TP_ARGS(sb, blk, count), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( unsigned long, blk ) + __field( unsigned long, count ) + + ), + + TP_fast_assign( + __entry->dev = sb->s_dev; + __entry->blk = blk; + __entry->count = count; + ), + + TP_printk("dev %d,%d blk %lu count %lu", + MAJOR(__entry->dev), MINOR(__entry->dev), + __entry->blk, __entry->count) +); + +TRACE_EVENT(ext3_request_blocks, + TP_PROTO(struct inode *inode, unsigned long goal, + unsigned long count), + + TP_ARGS(inode, goal, count), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( unsigned long, count ) + __field( unsigned long, goal ) + ), + + TP_fast_assign( + __entry->dev = inode->i_sb->s_dev; + __entry->ino = inode->i_ino; + __entry->count = count; + __entry->goal = goal; + ), + + TP_printk("dev %d,%d ino %lu count %lu goal %lu ", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + __entry->count, __entry->goal) +); + +TRACE_EVENT(ext3_allocate_blocks, + TP_PROTO(struct inode *inode, unsigned long goal, + unsigned long count, unsigned long block), + + TP_ARGS(inode, goal, count, block), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( unsigned long, block ) + __field( unsigned long, count ) + __field( unsigned long, goal ) + ), + + TP_fast_assign( + __entry->dev = inode->i_sb->s_dev; + __entry->ino = inode->i_ino; + __entry->block = block; + __entry->count = count; + __entry->goal = goal; + ), + + TP_printk("dev %d,%d ino %lu count %lu block %lu goal %lu", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + __entry->count, __entry->block, + __entry->goal) +); + +TRACE_EVENT(ext3_free_blocks, + TP_PROTO(struct inode *inode, unsigned long block, + unsigned long count), + + TP_ARGS(inode, block, count), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( umode_t, mode ) + __field( unsigned long, block ) + __field( unsigned long, count ) + ), + + TP_fast_assign( + __entry->dev = inode->i_sb->s_dev; + __entry->ino = inode->i_ino; + __entry->mode = inode->i_mode; + __entry->block = block; + __entry->count = count; + ), + + TP_printk("dev %d,%d ino %lu mode 0%o block %lu count %lu", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + __entry->mode, __entry->block, __entry->count) +); + +TRACE_EVENT(ext3_sync_file_enter, + TP_PROTO(struct file *file, int datasync), + + TP_ARGS(file, datasync), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( ino_t, parent ) + __field( int, datasync ) + ), + + TP_fast_assign( + struct dentry *dentry = file->f_path.dentry; + + __entry->dev = dentry->d_inode->i_sb->s_dev; + __entry->ino = dentry->d_inode->i_ino; + __entry->datasync = datasync; + __entry->parent = dentry->d_parent->d_inode->i_ino; + ), + + TP_printk("dev %d,%d ino %lu parent %ld datasync %d ", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + (unsigned long) __entry->parent, __entry->datasync) +); + +TRACE_EVENT(ext3_sync_file_exit, + TP_PROTO(struct inode *inode, int ret), + + TP_ARGS(inode, ret), + + TP_STRUCT__entry( + __field( int, ret ) + __field( ino_t, ino ) + __field( dev_t, dev ) + ), + + TP_fast_assign( + __entry->ret = ret; + __entry->ino = inode->i_ino; + __entry->dev = inode->i_sb->s_dev; + ), + + TP_printk("dev %d,%d ino %lu ret %d", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + __entry->ret) +); + +TRACE_EVENT(ext3_sync_fs, + TP_PROTO(struct super_block *sb, int wait), + + TP_ARGS(sb, wait), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( int, wait ) + + ), + + TP_fast_assign( + __entry->dev = sb->s_dev; + __entry->wait = wait; + ), + + TP_printk("dev %d,%d wait %d", + MAJOR(__entry->dev), MINOR(__entry->dev), + __entry->wait) +); + +TRACE_EVENT(ext3_rsv_window_add, + TP_PROTO(struct super_block *sb, + struct ext3_reserve_window_node *rsv_node), + + TP_ARGS(sb, rsv_node), + + TP_STRUCT__entry( + __field( unsigned long, start ) + __field( unsigned long, end ) + __field( dev_t, dev ) + ), + + TP_fast_assign( + __entry->dev = sb->s_dev; + __entry->start = rsv_node->rsv_window._rsv_start; + __entry->end = rsv_node->rsv_window._rsv_end; + ), + + TP_printk("dev %d,%d start %lu end %lu", + MAJOR(__entry->dev), MINOR(__entry->dev), + __entry->start, __entry->end) +); + +TRACE_EVENT(ext3_discard_reservation, + TP_PROTO(struct inode *inode, + struct ext3_reserve_window_node *rsv_node), + + TP_ARGS(inode, rsv_node), + + TP_STRUCT__entry( + __field( unsigned long, start ) + __field( unsigned long, end ) + __field( ino_t, ino ) + __field( dev_t, dev ) + ), + + TP_fast_assign( + __entry->start = rsv_node->rsv_window._rsv_start; + __entry->end = rsv_node->rsv_window._rsv_end; + __entry->ino = inode->i_ino; + __entry->dev = inode->i_sb->s_dev; + ), + + TP_printk("dev %d,%d ino %lu start %lu end %lu", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long)__entry->ino, __entry->start, + __entry->end) +); + +TRACE_EVENT(ext3_alloc_new_reservation, + TP_PROTO(struct super_block *sb, unsigned long goal), + + TP_ARGS(sb, goal), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( unsigned long, goal ) + ), + + TP_fast_assign( + __entry->dev = sb->s_dev; + __entry->goal = goal; + ), + + TP_printk("dev %d,%d goal %lu", + MAJOR(__entry->dev), MINOR(__entry->dev), + __entry->goal) +); + +TRACE_EVENT(ext3_reserved, + TP_PROTO(struct super_block *sb, unsigned long block, + struct ext3_reserve_window_node *rsv_node), + + TP_ARGS(sb, block, rsv_node), + + TP_STRUCT__entry( + __field( unsigned long, block ) + __field( unsigned long, start ) + __field( unsigned long, end ) + __field( dev_t, dev ) + ), + + TP_fast_assign( + __entry->block = block; + __entry->start = rsv_node->rsv_window._rsv_start; + __entry->end = rsv_node->rsv_window._rsv_end; + __entry->dev = sb->s_dev; + ), + + TP_printk("dev %d,%d block %lu, start %lu end %lu", + MAJOR(__entry->dev), MINOR(__entry->dev), + __entry->block, __entry->start, __entry->end) +); + +TRACE_EVENT(ext3_forget, + TP_PROTO(struct inode *inode, int is_metadata, unsigned long block), + + TP_ARGS(inode, is_metadata, block), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( umode_t, mode ) + __field( int, is_metadata ) + __field( unsigned long, block ) + ), + + TP_fast_assign( + __entry->dev = inode->i_sb->s_dev; + __entry->ino = inode->i_ino; + __entry->mode = inode->i_mode; + __entry->is_metadata = is_metadata; + __entry->block = block; + ), + + TP_printk("dev %d,%d ino %lu mode 0%o is_metadata %d block %lu", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + __entry->mode, __entry->is_metadata, __entry->block) +); + +TRACE_EVENT(ext3_read_block_bitmap, + TP_PROTO(struct super_block *sb, unsigned int group), + + TP_ARGS(sb, group), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( __u32, group ) + + ), + + TP_fast_assign( + __entry->dev = sb->s_dev; + __entry->group = group; + ), + + TP_printk("dev %d,%d group %u", + MAJOR(__entry->dev), MINOR(__entry->dev), + __entry->group) +); + +TRACE_EVENT(ext3_direct_IO_enter, + TP_PROTO(struct inode *inode, loff_t offset, unsigned long len, int rw), + + TP_ARGS(inode, offset, len, rw), + + TP_STRUCT__entry( + __field( ino_t, ino ) + __field( dev_t, dev ) + __field( loff_t, pos ) + __field( unsigned long, len ) + __field( int, rw ) + ), + + TP_fast_assign( + __entry->ino = inode->i_ino; + __entry->dev = inode->i_sb->s_dev; + __entry->pos = offset; + __entry->len = len; + __entry->rw = rw; + ), + + TP_printk("dev %d,%d ino %lu pos %llu len %lu rw %d", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + (unsigned long long) __entry->pos, __entry->len, + __entry->rw) +); + +TRACE_EVENT(ext3_direct_IO_exit, + TP_PROTO(struct inode *inode, loff_t offset, unsigned long len, + int rw, int ret), + + TP_ARGS(inode, offset, len, rw, ret), + + TP_STRUCT__entry( + __field( ino_t, ino ) + __field( dev_t, dev ) + __field( loff_t, pos ) + __field( unsigned long, len ) + __field( int, rw ) + __field( int, ret ) + ), + + TP_fast_assign( + __entry->ino = inode->i_ino; + __entry->dev = inode->i_sb->s_dev; + __entry->pos = offset; + __entry->len = len; + __entry->rw = rw; + __entry->ret = ret; + ), + + TP_printk("dev %d,%d ino %lu pos %llu len %lu rw %d ret %d", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + (unsigned long long) __entry->pos, __entry->len, + __entry->rw, __entry->ret) +); + +TRACE_EVENT(ext3_unlink_enter, + TP_PROTO(struct inode *parent, struct dentry *dentry), + + TP_ARGS(parent, dentry), + + TP_STRUCT__entry( + __field( ino_t, parent ) + __field( ino_t, ino ) + __field( loff_t, size ) + __field( dev_t, dev ) + ), + + TP_fast_assign( + __entry->parent = parent->i_ino; + __entry->ino = dentry->d_inode->i_ino; + __entry->size = dentry->d_inode->i_size; + __entry->dev = dentry->d_inode->i_sb->s_dev; + ), + + TP_printk("dev %d,%d ino %lu size %lld parent %ld", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + (unsigned long long)__entry->size, + (unsigned long) __entry->parent) +); + +TRACE_EVENT(ext3_unlink_exit, + TP_PROTO(struct dentry *dentry, int ret), + + TP_ARGS(dentry, ret), + + TP_STRUCT__entry( + __field( ino_t, ino ) + __field( dev_t, dev ) + __field( int, ret ) + ), + + TP_fast_assign( + __entry->ino = dentry->d_inode->i_ino; + __entry->dev = dentry->d_inode->i_sb->s_dev; + __entry->ret = ret; + ), + + TP_printk("dev %d,%d ino %lu ret %d", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + __entry->ret) +); + +DECLARE_EVENT_CLASS(ext3__truncate, + TP_PROTO(struct inode *inode), + + TP_ARGS(inode), + + TP_STRUCT__entry( + __field( ino_t, ino ) + __field( dev_t, dev ) + __field( blkcnt_t, blocks ) + ), + + TP_fast_assign( + __entry->ino = inode->i_ino; + __entry->dev = inode->i_sb->s_dev; + __entry->blocks = inode->i_blocks; + ), + + TP_printk("dev %d,%d ino %lu blocks %lu", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, (unsigned long) __entry->blocks) +); + +DEFINE_EVENT(ext3__truncate, ext3_truncate_enter, + + TP_PROTO(struct inode *inode), + + TP_ARGS(inode) +); + +DEFINE_EVENT(ext3__truncate, ext3_truncate_exit, + + TP_PROTO(struct inode *inode), + + TP_ARGS(inode) +); + +TRACE_EVENT(ext3_get_blocks_enter, + TP_PROTO(struct inode *inode, unsigned long lblk, + unsigned long len, int create), + + TP_ARGS(inode, lblk, len, create), + + TP_STRUCT__entry( + __field( ino_t, ino ) + __field( dev_t, dev ) + __field( unsigned long, lblk ) + __field( unsigned long, len ) + __field( int, create ) + ), + + TP_fast_assign( + __entry->ino = inode->i_ino; + __entry->dev = inode->i_sb->s_dev; + __entry->lblk = lblk; + __entry->len = len; + __entry->create = create; + ), + + TP_printk("dev %d,%d ino %lu lblk %lu len %lu create %u", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + __entry->lblk, __entry->len, __entry->create) +); + +TRACE_EVENT(ext3_get_blocks_exit, + TP_PROTO(struct inode *inode, unsigned long lblk, + unsigned long pblk, unsigned long len, int ret), + + TP_ARGS(inode, lblk, pblk, len, ret), + + TP_STRUCT__entry( + __field( ino_t, ino ) + __field( dev_t, dev ) + __field( unsigned long, lblk ) + __field( unsigned long, pblk ) + __field( unsigned long, len ) + __field( int, ret ) + ), + + TP_fast_assign( + __entry->ino = inode->i_ino; + __entry->dev = inode->i_sb->s_dev; + __entry->lblk = lblk; + __entry->pblk = pblk; + __entry->len = len; + __entry->ret = ret; + ), + + TP_printk("dev %d,%d ino %lu lblk %lu pblk %lu len %lu ret %d", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + __entry->lblk, __entry->pblk, + __entry->len, __entry->ret) +); + +TRACE_EVENT(ext3_load_inode, + TP_PROTO(struct inode *inode), + + TP_ARGS(inode), + + TP_STRUCT__entry( + __field( ino_t, ino ) + __field( dev_t, dev ) + ), + + TP_fast_assign( + __entry->ino = inode->i_ino; + __entry->dev = inode->i_sb->s_dev; + ), + + TP_printk("dev %d,%d ino %lu", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino) +); + +#endif /* _TRACE_EXT3_H */ + +/* This part must be outside protection */ +#include --- linux-3.11.0.orig/ubuntu/lttng-modules/instrumentation/events/mainline/net.h +++ linux-3.11.0/ubuntu/lttng-modules/instrumentation/events/mainline/net.h @@ -0,0 +1,84 @@ +#undef TRACE_SYSTEM +#define TRACE_SYSTEM net + +#if !defined(_TRACE_NET_H) || defined(TRACE_HEADER_MULTI_READ) +#define _TRACE_NET_H + +#include +#include +#include +#include + +TRACE_EVENT(net_dev_xmit, + + TP_PROTO(struct sk_buff *skb, + int rc, + struct net_device *dev, + unsigned int skb_len), + + TP_ARGS(skb, rc, dev, skb_len), + + TP_STRUCT__entry( + __field( void *, skbaddr ) + __field( unsigned int, len ) + __field( int, rc ) + __string( name, dev->name ) + ), + + TP_fast_assign( + __entry->skbaddr = skb; + __entry->len = skb_len; + __entry->rc = rc; + __assign_str(name, dev->name); + ), + + TP_printk("dev=%s skbaddr=%p len=%u rc=%d", + __get_str(name), __entry->skbaddr, __entry->len, __entry->rc) +); + +DECLARE_EVENT_CLASS(net_dev_template, + + TP_PROTO(struct sk_buff *skb), + + TP_ARGS(skb), + + TP_STRUCT__entry( + __field( void *, skbaddr ) + __field( unsigned int, len ) + __string( name, skb->dev->name ) + ), + + TP_fast_assign( + __entry->skbaddr = skb; + __entry->len = skb->len; + __assign_str(name, skb->dev->name); + ), + + TP_printk("dev=%s skbaddr=%p len=%u", + __get_str(name), __entry->skbaddr, __entry->len) +) + +DEFINE_EVENT(net_dev_template, net_dev_queue, + + TP_PROTO(struct sk_buff *skb), + + TP_ARGS(skb) +); + +DEFINE_EVENT(net_dev_template, netif_receive_skb, + + TP_PROTO(struct sk_buff *skb), + + TP_ARGS(skb) +); + +DEFINE_EVENT(net_dev_template, netif_rx, + + TP_PROTO(struct sk_buff *skb), + + TP_ARGS(skb) +); +#endif /* _TRACE_NET_H */ + +/* This part must be outside protection */ +#include --- linux-3.11.0.orig/ubuntu/lttng-modules/instrumentation/events/mainline/writeback.h +++ linux-3.11.0/ubuntu/lttng-modules/instrumentation/events/mainline/writeback.h @@ -0,0 +1,492 @@ +#undef TRACE_SYSTEM +#define TRACE_SYSTEM writeback + +#if !defined(_TRACE_WRITEBACK_H) || defined(TRACE_HEADER_MULTI_READ) +#define _TRACE_WRITEBACK_H + +#include +#include + +#define show_inode_state(state) \ + __print_flags(state, "|", \ + {I_DIRTY_SYNC, "I_DIRTY_SYNC"}, \ + {I_DIRTY_DATASYNC, "I_DIRTY_DATASYNC"}, \ + {I_DIRTY_PAGES, "I_DIRTY_PAGES"}, \ + {I_NEW, "I_NEW"}, \ + {I_WILL_FREE, "I_WILL_FREE"}, \ + {I_FREEING, "I_FREEING"}, \ + {I_CLEAR, "I_CLEAR"}, \ + {I_SYNC, "I_SYNC"}, \ + {I_REFERENCED, "I_REFERENCED"} \ + ) + +#define WB_WORK_REASON \ + {WB_REASON_BACKGROUND, "background"}, \ + {WB_REASON_TRY_TO_FREE_PAGES, "try_to_free_pages"}, \ + {WB_REASON_SYNC, "sync"}, \ + {WB_REASON_PERIODIC, "periodic"}, \ + {WB_REASON_LAPTOP_TIMER, "laptop_timer"}, \ + {WB_REASON_FREE_MORE_MEM, "free_more_memory"}, \ + {WB_REASON_FS_FREE_SPACE, "fs_free_space"}, \ + {WB_REASON_FORKER_THREAD, "forker_thread"} + +struct wb_writeback_work; + +DECLARE_EVENT_CLASS(writeback_work_class, + TP_PROTO(struct backing_dev_info *bdi, struct wb_writeback_work *work), + TP_ARGS(bdi, work), + TP_STRUCT__entry( + __array(char, name, 32) + __field(long, nr_pages) + __field(dev_t, sb_dev) + __field(int, sync_mode) + __field(int, for_kupdate) + __field(int, range_cyclic) + __field(int, for_background) + __field(int, reason) + ), + TP_fast_assign( + struct device *dev = bdi->dev; + if (!dev) + dev = default_backing_dev_info.dev; + strncpy(__entry->name, dev_name(dev), 32); + __entry->nr_pages = work->nr_pages; + __entry->sb_dev = work->sb ? work->sb->s_dev : 0; + __entry->sync_mode = work->sync_mode; + __entry->for_kupdate = work->for_kupdate; + __entry->range_cyclic = work->range_cyclic; + __entry->for_background = work->for_background; + __entry->reason = work->reason; + ), + TP_printk("bdi %s: sb_dev %d:%d nr_pages=%ld sync_mode=%d " + "kupdate=%d range_cyclic=%d background=%d reason=%s", + __entry->name, + MAJOR(__entry->sb_dev), MINOR(__entry->sb_dev), + __entry->nr_pages, + __entry->sync_mode, + __entry->for_kupdate, + __entry->range_cyclic, + __entry->for_background, + __print_symbolic(__entry->reason, WB_WORK_REASON) + ) +); +#define DEFINE_WRITEBACK_WORK_EVENT(name) \ +DEFINE_EVENT(writeback_work_class, name, \ + TP_PROTO(struct backing_dev_info *bdi, struct wb_writeback_work *work), \ + TP_ARGS(bdi, work)) +DEFINE_WRITEBACK_WORK_EVENT(writeback_nothread); +DEFINE_WRITEBACK_WORK_EVENT(writeback_queue); +DEFINE_WRITEBACK_WORK_EVENT(writeback_exec); +DEFINE_WRITEBACK_WORK_EVENT(writeback_start); +DEFINE_WRITEBACK_WORK_EVENT(writeback_written); +DEFINE_WRITEBACK_WORK_EVENT(writeback_wait); + +TRACE_EVENT(writeback_pages_written, + TP_PROTO(long pages_written), + TP_ARGS(pages_written), + TP_STRUCT__entry( + __field(long, pages) + ), + TP_fast_assign( + __entry->pages = pages_written; + ), + TP_printk("%ld", __entry->pages) +); + +DECLARE_EVENT_CLASS(writeback_class, + TP_PROTO(struct backing_dev_info *bdi), + TP_ARGS(bdi), + TP_STRUCT__entry( + __array(char, name, 32) + ), + TP_fast_assign( + strncpy(__entry->name, dev_name(bdi->dev), 32); + ), + TP_printk("bdi %s", + __entry->name + ) +); +#define DEFINE_WRITEBACK_EVENT(name) \ +DEFINE_EVENT(writeback_class, name, \ + TP_PROTO(struct backing_dev_info *bdi), \ + TP_ARGS(bdi)) + +DEFINE_WRITEBACK_EVENT(writeback_nowork); +DEFINE_WRITEBACK_EVENT(writeback_wake_background); +DEFINE_WRITEBACK_EVENT(writeback_wake_thread); +DEFINE_WRITEBACK_EVENT(writeback_wake_forker_thread); +DEFINE_WRITEBACK_EVENT(writeback_bdi_register); +DEFINE_WRITEBACK_EVENT(writeback_bdi_unregister); +DEFINE_WRITEBACK_EVENT(writeback_thread_start); +DEFINE_WRITEBACK_EVENT(writeback_thread_stop); + +DECLARE_EVENT_CLASS(wbc_class, + TP_PROTO(struct writeback_control *wbc, struct backing_dev_info *bdi), + TP_ARGS(wbc, bdi), + TP_STRUCT__entry( + __array(char, name, 32) + __field(long, nr_to_write) + __field(long, pages_skipped) + __field(int, sync_mode) + __field(int, for_kupdate) + __field(int, for_background) + __field(int, for_reclaim) + __field(int, range_cyclic) + __field(long, range_start) + __field(long, range_end) + ), + + TP_fast_assign( + strncpy(__entry->name, dev_name(bdi->dev), 32); + __entry->nr_to_write = wbc->nr_to_write; + __entry->pages_skipped = wbc->pages_skipped; + __entry->sync_mode = wbc->sync_mode; + __entry->for_kupdate = wbc->for_kupdate; + __entry->for_background = wbc->for_background; + __entry->for_reclaim = wbc->for_reclaim; + __entry->range_cyclic = wbc->range_cyclic; + __entry->range_start = (long)wbc->range_start; + __entry->range_end = (long)wbc->range_end; + ), + + TP_printk("bdi %s: towrt=%ld skip=%ld mode=%d kupd=%d " + "bgrd=%d reclm=%d cyclic=%d " + "start=0x%lx end=0x%lx", + __entry->name, + __entry->nr_to_write, + __entry->pages_skipped, + __entry->sync_mode, + __entry->for_kupdate, + __entry->for_background, + __entry->for_reclaim, + __entry->range_cyclic, + __entry->range_start, + __entry->range_end) +) + +#define DEFINE_WBC_EVENT(name) \ +DEFINE_EVENT(wbc_class, name, \ + TP_PROTO(struct writeback_control *wbc, struct backing_dev_info *bdi), \ + TP_ARGS(wbc, bdi)) +DEFINE_WBC_EVENT(wbc_writepage); + +TRACE_EVENT(writeback_queue_io, + TP_PROTO(struct bdi_writeback *wb, + struct wb_writeback_work *work, + int moved), + TP_ARGS(wb, work, moved), + TP_STRUCT__entry( + __array(char, name, 32) + __field(unsigned long, older) + __field(long, age) + __field(int, moved) + __field(int, reason) + ), + TP_fast_assign( + unsigned long *older_than_this = work->older_than_this; + strncpy(__entry->name, dev_name(wb->bdi->dev), 32); + __entry->older = older_than_this ? *older_than_this : 0; + __entry->age = older_than_this ? + (jiffies - *older_than_this) * 1000 / HZ : -1; + __entry->moved = moved; + __entry->reason = work->reason; + ), + TP_printk("bdi %s: older=%lu age=%ld enqueue=%d reason=%s", + __entry->name, + __entry->older, /* older_than_this in jiffies */ + __entry->age, /* older_than_this in relative milliseconds */ + __entry->moved, + __print_symbolic(__entry->reason, WB_WORK_REASON) + ) +); + +TRACE_EVENT(global_dirty_state, + + TP_PROTO(unsigned long background_thresh, + unsigned long dirty_thresh + ), + + TP_ARGS(background_thresh, + dirty_thresh + ), + + TP_STRUCT__entry( + __field(unsigned long, nr_dirty) + __field(unsigned long, nr_writeback) + __field(unsigned long, nr_unstable) + __field(unsigned long, background_thresh) + __field(unsigned long, dirty_thresh) + __field(unsigned long, dirty_limit) + __field(unsigned long, nr_dirtied) + __field(unsigned long, nr_written) + ), + + TP_fast_assign( + __entry->nr_dirty = global_page_state(NR_FILE_DIRTY); + __entry->nr_writeback = global_page_state(NR_WRITEBACK); + __entry->nr_unstable = global_page_state(NR_UNSTABLE_NFS); + __entry->nr_dirtied = global_page_state(NR_DIRTIED); + __entry->nr_written = global_page_state(NR_WRITTEN); + __entry->background_thresh = background_thresh; + __entry->dirty_thresh = dirty_thresh; + __entry->dirty_limit = global_dirty_limit; + ), + + TP_printk("dirty=%lu writeback=%lu unstable=%lu " + "bg_thresh=%lu thresh=%lu limit=%lu " + "dirtied=%lu written=%lu", + __entry->nr_dirty, + __entry->nr_writeback, + __entry->nr_unstable, + __entry->background_thresh, + __entry->dirty_thresh, + __entry->dirty_limit, + __entry->nr_dirtied, + __entry->nr_written + ) +); + +#define KBps(x) ((x) << (PAGE_SHIFT - 10)) + +TRACE_EVENT(bdi_dirty_ratelimit, + + TP_PROTO(struct backing_dev_info *bdi, + unsigned long dirty_rate, + unsigned long task_ratelimit), + + TP_ARGS(bdi, dirty_rate, task_ratelimit), + + TP_STRUCT__entry( + __array(char, bdi, 32) + __field(unsigned long, write_bw) + __field(unsigned long, avg_write_bw) + __field(unsigned long, dirty_rate) + __field(unsigned long, dirty_ratelimit) + __field(unsigned long, task_ratelimit) + __field(unsigned long, balanced_dirty_ratelimit) + ), + + TP_fast_assign( + strlcpy(__entry->bdi, dev_name(bdi->dev), 32); + __entry->write_bw = KBps(bdi->write_bandwidth); + __entry->avg_write_bw = KBps(bdi->avg_write_bandwidth); + __entry->dirty_rate = KBps(dirty_rate); + __entry->dirty_ratelimit = KBps(bdi->dirty_ratelimit); + __entry->task_ratelimit = KBps(task_ratelimit); + __entry->balanced_dirty_ratelimit = + KBps(bdi->balanced_dirty_ratelimit); + ), + + TP_printk("bdi %s: " + "write_bw=%lu awrite_bw=%lu dirty_rate=%lu " + "dirty_ratelimit=%lu task_ratelimit=%lu " + "balanced_dirty_ratelimit=%lu", + __entry->bdi, + __entry->write_bw, /* write bandwidth */ + __entry->avg_write_bw, /* avg write bandwidth */ + __entry->dirty_rate, /* bdi dirty rate */ + __entry->dirty_ratelimit, /* base ratelimit */ + __entry->task_ratelimit, /* ratelimit with position control */ + __entry->balanced_dirty_ratelimit /* the balanced ratelimit */ + ) +); + +TRACE_EVENT(balance_dirty_pages, + + TP_PROTO(struct backing_dev_info *bdi, + unsigned long thresh, + unsigned long bg_thresh, + unsigned long dirty, + unsigned long bdi_thresh, + unsigned long bdi_dirty, + unsigned long dirty_ratelimit, + unsigned long task_ratelimit, + unsigned long dirtied, + unsigned long period, + long pause, + unsigned long start_time), + + TP_ARGS(bdi, thresh, bg_thresh, dirty, bdi_thresh, bdi_dirty, + dirty_ratelimit, task_ratelimit, + dirtied, period, pause, start_time), + + TP_STRUCT__entry( + __array( char, bdi, 32) + __field(unsigned long, limit) + __field(unsigned long, setpoint) + __field(unsigned long, dirty) + __field(unsigned long, bdi_setpoint) + __field(unsigned long, bdi_dirty) + __field(unsigned long, dirty_ratelimit) + __field(unsigned long, task_ratelimit) + __field(unsigned int, dirtied) + __field(unsigned int, dirtied_pause) + __field(unsigned long, paused) + __field( long, pause) + __field(unsigned long, period) + __field( long, think) + ), + + TP_fast_assign( + unsigned long freerun = (thresh + bg_thresh) / 2; + strlcpy(__entry->bdi, dev_name(bdi->dev), 32); + + __entry->limit = global_dirty_limit; + __entry->setpoint = (global_dirty_limit + freerun) / 2; + __entry->dirty = dirty; + __entry->bdi_setpoint = __entry->setpoint * + bdi_thresh / (thresh + 1); + __entry->bdi_dirty = bdi_dirty; + __entry->dirty_ratelimit = KBps(dirty_ratelimit); + __entry->task_ratelimit = KBps(task_ratelimit); + __entry->dirtied = dirtied; + __entry->dirtied_pause = current->nr_dirtied_pause; + __entry->think = current->dirty_paused_when == 0 ? 0 : + (long)(jiffies - current->dirty_paused_when) * 1000/HZ; + __entry->period = period * 1000 / HZ; + __entry->pause = pause * 1000 / HZ; + __entry->paused = (jiffies - start_time) * 1000 / HZ; + ), + + + TP_printk("bdi %s: " + "limit=%lu setpoint=%lu dirty=%lu " + "bdi_setpoint=%lu bdi_dirty=%lu " + "dirty_ratelimit=%lu task_ratelimit=%lu " + "dirtied=%u dirtied_pause=%u " + "paused=%lu pause=%ld period=%lu think=%ld", + __entry->bdi, + __entry->limit, + __entry->setpoint, + __entry->dirty, + __entry->bdi_setpoint, + __entry->bdi_dirty, + __entry->dirty_ratelimit, + __entry->task_ratelimit, + __entry->dirtied, + __entry->dirtied_pause, + __entry->paused, /* ms */ + __entry->pause, /* ms */ + __entry->period, /* ms */ + __entry->think /* ms */ + ) +); + +TRACE_EVENT(writeback_sb_inodes_requeue, + + TP_PROTO(struct inode *inode), + TP_ARGS(inode), + + TP_STRUCT__entry( + __array(char, name, 32) + __field(unsigned long, ino) + __field(unsigned long, state) + __field(unsigned long, dirtied_when) + ), + + TP_fast_assign( + strncpy(__entry->name, + dev_name(inode_to_bdi(inode)->dev), 32); + __entry->ino = inode->i_ino; + __entry->state = inode->i_state; + __entry->dirtied_when = inode->dirtied_when; + ), + + TP_printk("bdi %s: ino=%lu state=%s dirtied_when=%lu age=%lu", + __entry->name, + __entry->ino, + show_inode_state(__entry->state), + __entry->dirtied_when, + (jiffies - __entry->dirtied_when) / HZ + ) +); + +DECLARE_EVENT_CLASS(writeback_congest_waited_template, + + TP_PROTO(unsigned int usec_timeout, unsigned int usec_delayed), + + TP_ARGS(usec_timeout, usec_delayed), + + TP_STRUCT__entry( + __field( unsigned int, usec_timeout ) + __field( unsigned int, usec_delayed ) + ), + + TP_fast_assign( + __entry->usec_timeout = usec_timeout; + __entry->usec_delayed = usec_delayed; + ), + + TP_printk("usec_timeout=%u usec_delayed=%u", + __entry->usec_timeout, + __entry->usec_delayed) +); + +DEFINE_EVENT(writeback_congest_waited_template, writeback_congestion_wait, + + TP_PROTO(unsigned int usec_timeout, unsigned int usec_delayed), + + TP_ARGS(usec_timeout, usec_delayed) +); + +DEFINE_EVENT(writeback_congest_waited_template, writeback_wait_iff_congested, + + TP_PROTO(unsigned int usec_timeout, unsigned int usec_delayed), + + TP_ARGS(usec_timeout, usec_delayed) +); + +DECLARE_EVENT_CLASS(writeback_single_inode_template, + + TP_PROTO(struct inode *inode, + struct writeback_control *wbc, + unsigned long nr_to_write + ), + + TP_ARGS(inode, wbc, nr_to_write), + + TP_STRUCT__entry( + __array(char, name, 32) + __field(unsigned long, ino) + __field(unsigned long, state) + __field(unsigned long, dirtied_when) + __field(unsigned long, writeback_index) + __field(long, nr_to_write) + __field(unsigned long, wrote) + ), + + TP_fast_assign( + strncpy(__entry->name, + dev_name(inode_to_bdi(inode)->dev), 32); + __entry->ino = inode->i_ino; + __entry->state = inode->i_state; + __entry->dirtied_when = inode->dirtied_when; + __entry->writeback_index = inode->i_mapping->writeback_index; + __entry->nr_to_write = nr_to_write; + __entry->wrote = nr_to_write - wbc->nr_to_write; + ), + + TP_printk("bdi %s: ino=%lu state=%s dirtied_when=%lu age=%lu " + "index=%lu to_write=%ld wrote=%lu", + __entry->name, + __entry->ino, + show_inode_state(__entry->state), + __entry->dirtied_when, + (jiffies - __entry->dirtied_when) / HZ, + __entry->writeback_index, + __entry->nr_to_write, + __entry->wrote + ) +); + +DEFINE_EVENT(writeback_single_inode_template, writeback_single_inode, + TP_PROTO(struct inode *inode, + struct writeback_control *wbc, + unsigned long nr_to_write), + TP_ARGS(inode, wbc, nr_to_write) +); + +#endif /* _TRACE_WRITEBACK_H */ + +/* This part must be outside protection */ +#include --- linux-3.11.0.orig/ubuntu/lttng-modules/instrumentation/events/mainline/sunrpc.h +++ linux-3.11.0/ubuntu/lttng-modules/instrumentation/events/mainline/sunrpc.h @@ -0,0 +1,177 @@ +#undef TRACE_SYSTEM +#define TRACE_SYSTEM sunrpc + +#if !defined(_TRACE_SUNRPC_H) || defined(TRACE_HEADER_MULTI_READ) +#define _TRACE_SUNRPC_H + +#include +#include +#include + +DECLARE_EVENT_CLASS(rpc_task_status, + + TP_PROTO(struct rpc_task *task), + + TP_ARGS(task), + + TP_STRUCT__entry( + __field(const struct rpc_task *, task) + __field(const struct rpc_clnt *, clnt) + __field(int, status) + ), + + TP_fast_assign( + __entry->task = task; + __entry->clnt = task->tk_client; + __entry->status = task->tk_status; + ), + + TP_printk("task:%p@%p, status %d",__entry->task, __entry->clnt, __entry->status) +); + +DEFINE_EVENT(rpc_task_status, rpc_call_status, + TP_PROTO(struct rpc_task *task), + + TP_ARGS(task) +); + +DEFINE_EVENT(rpc_task_status, rpc_bind_status, + TP_PROTO(struct rpc_task *task), + + TP_ARGS(task) +); + +TRACE_EVENT(rpc_connect_status, + TP_PROTO(struct rpc_task *task, int status), + + TP_ARGS(task, status), + + TP_STRUCT__entry( + __field(const struct rpc_task *, task) + __field(const struct rpc_clnt *, clnt) + __field(int, status) + ), + + TP_fast_assign( + __entry->task = task; + __entry->clnt = task->tk_client; + __entry->status = status; + ), + + TP_printk("task:%p@%p, status %d",__entry->task, __entry->clnt, __entry->status) +); + +DECLARE_EVENT_CLASS(rpc_task_running, + + TP_PROTO(const struct rpc_clnt *clnt, const struct rpc_task *task, const void *action), + + TP_ARGS(clnt, task, action), + + TP_STRUCT__entry( + __field(const struct rpc_clnt *, clnt) + __field(const struct rpc_task *, task) + __field(const void *, action) + __field(unsigned long, runstate) + __field(int, status) + __field(unsigned short, flags) + ), + + TP_fast_assign( + __entry->clnt = clnt; + __entry->task = task; + __entry->action = action; + __entry->runstate = task->tk_runstate; + __entry->status = task->tk_status; + __entry->flags = task->tk_flags; + ), + + TP_printk("task:%p@%p flags=%4.4x state=%4.4lx status=%d action=%pf", + __entry->task, + __entry->clnt, + __entry->flags, + __entry->runstate, + __entry->status, + __entry->action + ) +); + +DEFINE_EVENT(rpc_task_running, rpc_task_begin, + + TP_PROTO(const struct rpc_clnt *clnt, const struct rpc_task *task, const void *action), + + TP_ARGS(clnt, task, action) + +); + +DEFINE_EVENT(rpc_task_running, rpc_task_run_action, + + TP_PROTO(const struct rpc_clnt *clnt, const struct rpc_task *task, const void *action), + + TP_ARGS(clnt, task, action) + +); + +DEFINE_EVENT(rpc_task_running, rpc_task_complete, + + TP_PROTO(const struct rpc_clnt *clnt, const struct rpc_task *task, const void *action), + + TP_ARGS(clnt, task, action) + +); + +DECLARE_EVENT_CLASS(rpc_task_queued, + + TP_PROTO(const struct rpc_clnt *clnt, const struct rpc_task *task, const struct rpc_wait_queue *q), + + TP_ARGS(clnt, task, q), + + TP_STRUCT__entry( + __field(const struct rpc_clnt *, clnt) + __field(const struct rpc_task *, task) + __field(unsigned long, timeout) + __field(unsigned long, runstate) + __field(int, status) + __field(unsigned short, flags) + __string(q_name, rpc_qname(q)) + ), + + TP_fast_assign( + __entry->clnt = clnt; + __entry->task = task; + __entry->timeout = task->tk_timeout; + __entry->runstate = task->tk_runstate; + __entry->status = task->tk_status; + __entry->flags = task->tk_flags; + __assign_str(q_name, rpc_qname(q)); + ), + + TP_printk("task:%p@%p flags=%4.4x state=%4.4lx status=%d timeout=%lu queue=%s", + __entry->task, + __entry->clnt, + __entry->flags, + __entry->runstate, + __entry->status, + __entry->timeout, + __get_str(q_name) + ) +); + +DEFINE_EVENT(rpc_task_queued, rpc_task_sleep, + + TP_PROTO(const struct rpc_clnt *clnt, const struct rpc_task *task, const struct rpc_wait_queue *q), + + TP_ARGS(clnt, task, q) + +); + +DEFINE_EVENT(rpc_task_queued, rpc_task_wakeup, + + TP_PROTO(const struct rpc_clnt *clnt, const struct rpc_task *task, const struct rpc_wait_queue *q), + + TP_ARGS(clnt, task, q) + +); + +#endif /* _TRACE_SUNRPC_H */ + +#include --- linux-3.11.0.orig/ubuntu/lttng-modules/instrumentation/events/mainline/timer.h +++ linux-3.11.0/ubuntu/lttng-modules/instrumentation/events/mainline/timer.h @@ -0,0 +1,329 @@ +#undef TRACE_SYSTEM +#define TRACE_SYSTEM timer + +#if !defined(_TRACE_TIMER_H) || defined(TRACE_HEADER_MULTI_READ) +#define _TRACE_TIMER_H + +#include +#include +#include + +DECLARE_EVENT_CLASS(timer_class, + + TP_PROTO(struct timer_list *timer), + + TP_ARGS(timer), + + TP_STRUCT__entry( + __field( void *, timer ) + ), + + TP_fast_assign( + __entry->timer = timer; + ), + + TP_printk("timer=%p", __entry->timer) +); + +/** + * timer_init - called when the timer is initialized + * @timer: pointer to struct timer_list + */ +DEFINE_EVENT(timer_class, timer_init, + + TP_PROTO(struct timer_list *timer), + + TP_ARGS(timer) +); + +/** + * timer_start - called when the timer is started + * @timer: pointer to struct timer_list + * @expires: the timers expiry time + */ +TRACE_EVENT(timer_start, + + TP_PROTO(struct timer_list *timer, unsigned long expires), + + TP_ARGS(timer, expires), + + TP_STRUCT__entry( + __field( void *, timer ) + __field( void *, function ) + __field( unsigned long, expires ) + __field( unsigned long, now ) + ), + + TP_fast_assign( + __entry->timer = timer; + __entry->function = timer->function; + __entry->expires = expires; + __entry->now = jiffies; + ), + + TP_printk("timer=%p function=%pf expires=%lu [timeout=%ld]", + __entry->timer, __entry->function, __entry->expires, + (long)__entry->expires - __entry->now) +); + +/** + * timer_expire_entry - called immediately before the timer callback + * @timer: pointer to struct timer_list + * + * Allows to determine the timer latency. + */ +TRACE_EVENT(timer_expire_entry, + + TP_PROTO(struct timer_list *timer), + + TP_ARGS(timer), + + TP_STRUCT__entry( + __field( void *, timer ) + __field( unsigned long, now ) + __field( void *, function) + ), + + TP_fast_assign( + __entry->timer = timer; + __entry->now = jiffies; + __entry->function = timer->function; + ), + + TP_printk("timer=%p function=%pf now=%lu", __entry->timer, __entry->function,__entry->now) +); + +/** + * timer_expire_exit - called immediately after the timer callback returns + * @timer: pointer to struct timer_list + * + * When used in combination with the timer_expire_entry tracepoint we can + * determine the runtime of the timer callback function. + * + * NOTE: Do NOT derefernce timer in TP_fast_assign. The pointer might + * be invalid. We solely track the pointer. + */ +DEFINE_EVENT(timer_class, timer_expire_exit, + + TP_PROTO(struct timer_list *timer), + + TP_ARGS(timer) +); + +/** + * timer_cancel - called when the timer is canceled + * @timer: pointer to struct timer_list + */ +DEFINE_EVENT(timer_class, timer_cancel, + + TP_PROTO(struct timer_list *timer), + + TP_ARGS(timer) +); + +/** + * hrtimer_init - called when the hrtimer is initialized + * @timer: pointer to struct hrtimer + * @clockid: the hrtimers clock + * @mode: the hrtimers mode + */ +TRACE_EVENT(hrtimer_init, + + TP_PROTO(struct hrtimer *hrtimer, clockid_t clockid, + enum hrtimer_mode mode), + + TP_ARGS(hrtimer, clockid, mode), + + TP_STRUCT__entry( + __field( void *, hrtimer ) + __field( clockid_t, clockid ) + __field( enum hrtimer_mode, mode ) + ), + + TP_fast_assign( + __entry->hrtimer = hrtimer; + __entry->clockid = clockid; + __entry->mode = mode; + ), + + TP_printk("hrtimer=%p clockid=%s mode=%s", __entry->hrtimer, + __entry->clockid == CLOCK_REALTIME ? + "CLOCK_REALTIME" : "CLOCK_MONOTONIC", + __entry->mode == HRTIMER_MODE_ABS ? + "HRTIMER_MODE_ABS" : "HRTIMER_MODE_REL") +); + +/** + * hrtimer_start - called when the hrtimer is started + * @timer: pointer to struct hrtimer + */ +TRACE_EVENT(hrtimer_start, + + TP_PROTO(struct hrtimer *hrtimer), + + TP_ARGS(hrtimer), + + TP_STRUCT__entry( + __field( void *, hrtimer ) + __field( void *, function ) + __field( s64, expires ) + __field( s64, softexpires ) + ), + + TP_fast_assign( + __entry->hrtimer = hrtimer; + __entry->function = hrtimer->function; + __entry->expires = hrtimer_get_expires(hrtimer).tv64; + __entry->softexpires = hrtimer_get_softexpires(hrtimer).tv64; + ), + + TP_printk("hrtimer=%p function=%pf expires=%llu softexpires=%llu", + __entry->hrtimer, __entry->function, + (unsigned long long)ktime_to_ns((ktime_t) { + .tv64 = __entry->expires }), + (unsigned long long)ktime_to_ns((ktime_t) { + .tv64 = __entry->softexpires })) +); + +/** + * htimmer_expire_entry - called immediately before the hrtimer callback + * @timer: pointer to struct hrtimer + * @now: pointer to variable which contains current time of the + * timers base. + * + * Allows to determine the timer latency. + */ +TRACE_EVENT(hrtimer_expire_entry, + + TP_PROTO(struct hrtimer *hrtimer, ktime_t *now), + + TP_ARGS(hrtimer, now), + + TP_STRUCT__entry( + __field( void *, hrtimer ) + __field( s64, now ) + __field( void *, function) + ), + + TP_fast_assign( + __entry->hrtimer = hrtimer; + __entry->now = now->tv64; + __entry->function = hrtimer->function; + ), + + TP_printk("hrtimer=%p function=%pf now=%llu", __entry->hrtimer, __entry->function, + (unsigned long long)ktime_to_ns((ktime_t) { .tv64 = __entry->now })) + ); + +DECLARE_EVENT_CLASS(hrtimer_class, + + TP_PROTO(struct hrtimer *hrtimer), + + TP_ARGS(hrtimer), + + TP_STRUCT__entry( + __field( void *, hrtimer ) + ), + + TP_fast_assign( + __entry->hrtimer = hrtimer; + ), + + TP_printk("hrtimer=%p", __entry->hrtimer) +); + +/** + * hrtimer_expire_exit - called immediately after the hrtimer callback returns + * @timer: pointer to struct hrtimer + * + * When used in combination with the hrtimer_expire_entry tracepoint we can + * determine the runtime of the callback function. + */ +DEFINE_EVENT(hrtimer_class, hrtimer_expire_exit, + + TP_PROTO(struct hrtimer *hrtimer), + + TP_ARGS(hrtimer) +); + +/** + * hrtimer_cancel - called when the hrtimer is canceled + * @hrtimer: pointer to struct hrtimer + */ +DEFINE_EVENT(hrtimer_class, hrtimer_cancel, + + TP_PROTO(struct hrtimer *hrtimer), + + TP_ARGS(hrtimer) +); + +/** + * itimer_state - called when itimer is started or canceled + * @which: name of the interval timer + * @value: the itimers value, itimer is canceled if value->it_value is + * zero, otherwise it is started + * @expires: the itimers expiry time + */ +TRACE_EVENT(itimer_state, + + TP_PROTO(int which, const struct itimerval *const value, + cputime_t expires), + + TP_ARGS(which, value, expires), + + TP_STRUCT__entry( + __field( int, which ) + __field( cputime_t, expires ) + __field( long, value_sec ) + __field( long, value_usec ) + __field( long, interval_sec ) + __field( long, interval_usec ) + ), + + TP_fast_assign( + __entry->which = which; + __entry->expires = expires; + __entry->value_sec = value->it_value.tv_sec; + __entry->value_usec = value->it_value.tv_usec; + __entry->interval_sec = value->it_interval.tv_sec; + __entry->interval_usec = value->it_interval.tv_usec; + ), + + TP_printk("which=%d expires=%llu it_value=%ld.%ld it_interval=%ld.%ld", + __entry->which, (unsigned long long)__entry->expires, + __entry->value_sec, __entry->value_usec, + __entry->interval_sec, __entry->interval_usec) +); + +/** + * itimer_expire - called when itimer expires + * @which: type of the interval timer + * @pid: pid of the process which owns the timer + * @now: current time, used to calculate the latency of itimer + */ +TRACE_EVENT(itimer_expire, + + TP_PROTO(int which, struct pid *pid, cputime_t now), + + TP_ARGS(which, pid, now), + + TP_STRUCT__entry( + __field( int , which ) + __field( pid_t, pid ) + __field( cputime_t, now ) + ), + + TP_fast_assign( + __entry->which = which; + __entry->now = now; + __entry->pid = pid_nr(pid); + ), + + TP_printk("which=%d pid=%d now=%llu", __entry->which, + (int) __entry->pid, (unsigned long long)__entry->now) +); + +#endif /* _TRACE_TIMER_H */ + +/* This part must be outside protection */ +#include --- linux-3.11.0.orig/ubuntu/lttng-modules/instrumentation/events/mainline/kmem.h +++ linux-3.11.0/ubuntu/lttng-modules/instrumentation/events/mainline/kmem.h @@ -0,0 +1,308 @@ +#undef TRACE_SYSTEM +#define TRACE_SYSTEM kmem + +#if !defined(_TRACE_KMEM_H) || defined(TRACE_HEADER_MULTI_READ) +#define _TRACE_KMEM_H + +#include +#include +#include + +DECLARE_EVENT_CLASS(kmem_alloc, + + TP_PROTO(unsigned long call_site, + const void *ptr, + size_t bytes_req, + size_t bytes_alloc, + gfp_t gfp_flags), + + TP_ARGS(call_site, ptr, bytes_req, bytes_alloc, gfp_flags), + + TP_STRUCT__entry( + __field( unsigned long, call_site ) + __field( const void *, ptr ) + __field( size_t, bytes_req ) + __field( size_t, bytes_alloc ) + __field( gfp_t, gfp_flags ) + ), + + TP_fast_assign( + __entry->call_site = call_site; + __entry->ptr = ptr; + __entry->bytes_req = bytes_req; + __entry->bytes_alloc = bytes_alloc; + __entry->gfp_flags = gfp_flags; + ), + + TP_printk("call_site=%lx ptr=%p bytes_req=%zu bytes_alloc=%zu gfp_flags=%s", + __entry->call_site, + __entry->ptr, + __entry->bytes_req, + __entry->bytes_alloc, + show_gfp_flags(__entry->gfp_flags)) +); + +DEFINE_EVENT(kmem_alloc, kmalloc, + + TP_PROTO(unsigned long call_site, const void *ptr, + size_t bytes_req, size_t bytes_alloc, gfp_t gfp_flags), + + TP_ARGS(call_site, ptr, bytes_req, bytes_alloc, gfp_flags) +); + +DEFINE_EVENT(kmem_alloc, kmem_cache_alloc, + + TP_PROTO(unsigned long call_site, const void *ptr, + size_t bytes_req, size_t bytes_alloc, gfp_t gfp_flags), + + TP_ARGS(call_site, ptr, bytes_req, bytes_alloc, gfp_flags) +); + +DECLARE_EVENT_CLASS(kmem_alloc_node, + + TP_PROTO(unsigned long call_site, + const void *ptr, + size_t bytes_req, + size_t bytes_alloc, + gfp_t gfp_flags, + int node), + + TP_ARGS(call_site, ptr, bytes_req, bytes_alloc, gfp_flags, node), + + TP_STRUCT__entry( + __field( unsigned long, call_site ) + __field( const void *, ptr ) + __field( size_t, bytes_req ) + __field( size_t, bytes_alloc ) + __field( gfp_t, gfp_flags ) + __field( int, node ) + ), + + TP_fast_assign( + __entry->call_site = call_site; + __entry->ptr = ptr; + __entry->bytes_req = bytes_req; + __entry->bytes_alloc = bytes_alloc; + __entry->gfp_flags = gfp_flags; + __entry->node = node; + ), + + TP_printk("call_site=%lx ptr=%p bytes_req=%zu bytes_alloc=%zu gfp_flags=%s node=%d", + __entry->call_site, + __entry->ptr, + __entry->bytes_req, + __entry->bytes_alloc, + show_gfp_flags(__entry->gfp_flags), + __entry->node) +); + +DEFINE_EVENT(kmem_alloc_node, kmalloc_node, + + TP_PROTO(unsigned long call_site, const void *ptr, + size_t bytes_req, size_t bytes_alloc, + gfp_t gfp_flags, int node), + + TP_ARGS(call_site, ptr, bytes_req, bytes_alloc, gfp_flags, node) +); + +DEFINE_EVENT(kmem_alloc_node, kmem_cache_alloc_node, + + TP_PROTO(unsigned long call_site, const void *ptr, + size_t bytes_req, size_t bytes_alloc, + gfp_t gfp_flags, int node), + + TP_ARGS(call_site, ptr, bytes_req, bytes_alloc, gfp_flags, node) +); + +DECLARE_EVENT_CLASS(kmem_free, + + TP_PROTO(unsigned long call_site, const void *ptr), + + TP_ARGS(call_site, ptr), + + TP_STRUCT__entry( + __field( unsigned long, call_site ) + __field( const void *, ptr ) + ), + + TP_fast_assign( + __entry->call_site = call_site; + __entry->ptr = ptr; + ), + + TP_printk("call_site=%lx ptr=%p", __entry->call_site, __entry->ptr) +); + +DEFINE_EVENT(kmem_free, kfree, + + TP_PROTO(unsigned long call_site, const void *ptr), + + TP_ARGS(call_site, ptr) +); + +DEFINE_EVENT(kmem_free, kmem_cache_free, + + TP_PROTO(unsigned long call_site, const void *ptr), + + TP_ARGS(call_site, ptr) +); + +TRACE_EVENT(mm_page_free, + + TP_PROTO(struct page *page, unsigned int order), + + TP_ARGS(page, order), + + TP_STRUCT__entry( + __field( struct page *, page ) + __field( unsigned int, order ) + ), + + TP_fast_assign( + __entry->page = page; + __entry->order = order; + ), + + TP_printk("page=%p pfn=%lu order=%d", + __entry->page, + page_to_pfn(__entry->page), + __entry->order) +); + +TRACE_EVENT(mm_page_free_batched, + + TP_PROTO(struct page *page, int cold), + + TP_ARGS(page, cold), + + TP_STRUCT__entry( + __field( struct page *, page ) + __field( int, cold ) + ), + + TP_fast_assign( + __entry->page = page; + __entry->cold = cold; + ), + + TP_printk("page=%p pfn=%lu order=0 cold=%d", + __entry->page, + page_to_pfn(__entry->page), + __entry->cold) +); + +TRACE_EVENT(mm_page_alloc, + + TP_PROTO(struct page *page, unsigned int order, + gfp_t gfp_flags, int migratetype), + + TP_ARGS(page, order, gfp_flags, migratetype), + + TP_STRUCT__entry( + __field( struct page *, page ) + __field( unsigned int, order ) + __field( gfp_t, gfp_flags ) + __field( int, migratetype ) + ), + + TP_fast_assign( + __entry->page = page; + __entry->order = order; + __entry->gfp_flags = gfp_flags; + __entry->migratetype = migratetype; + ), + + TP_printk("page=%p pfn=%lu order=%d migratetype=%d gfp_flags=%s", + __entry->page, + __entry->page ? page_to_pfn(__entry->page) : 0, + __entry->order, + __entry->migratetype, + show_gfp_flags(__entry->gfp_flags)) +); + +DECLARE_EVENT_CLASS(mm_page, + + TP_PROTO(struct page *page, unsigned int order, int migratetype), + + TP_ARGS(page, order, migratetype), + + TP_STRUCT__entry( + __field( struct page *, page ) + __field( unsigned int, order ) + __field( int, migratetype ) + ), + + TP_fast_assign( + __entry->page = page; + __entry->order = order; + __entry->migratetype = migratetype; + ), + + TP_printk("page=%p pfn=%lu order=%u migratetype=%d percpu_refill=%d", + __entry->page, + __entry->page ? page_to_pfn(__entry->page) : 0, + __entry->order, + __entry->migratetype, + __entry->order == 0) +); + +DEFINE_EVENT(mm_page, mm_page_alloc_zone_locked, + + TP_PROTO(struct page *page, unsigned int order, int migratetype), + + TP_ARGS(page, order, migratetype) +); + +DEFINE_EVENT_PRINT(mm_page, mm_page_pcpu_drain, + + TP_PROTO(struct page *page, unsigned int order, int migratetype), + + TP_ARGS(page, order, migratetype), + + TP_printk("page=%p pfn=%lu order=%d migratetype=%d", + __entry->page, page_to_pfn(__entry->page), + __entry->order, __entry->migratetype) +); + +TRACE_EVENT(mm_page_alloc_extfrag, + + TP_PROTO(struct page *page, + int alloc_order, int fallback_order, + int alloc_migratetype, int fallback_migratetype), + + TP_ARGS(page, + alloc_order, fallback_order, + alloc_migratetype, fallback_migratetype), + + TP_STRUCT__entry( + __field( struct page *, page ) + __field( int, alloc_order ) + __field( int, fallback_order ) + __field( int, alloc_migratetype ) + __field( int, fallback_migratetype ) + ), + + TP_fast_assign( + __entry->page = page; + __entry->alloc_order = alloc_order; + __entry->fallback_order = fallback_order; + __entry->alloc_migratetype = alloc_migratetype; + __entry->fallback_migratetype = fallback_migratetype; + ), + + TP_printk("page=%p pfn=%lu alloc_order=%d fallback_order=%d pageblock_order=%d alloc_migratetype=%d fallback_migratetype=%d fragmenting=%d change_ownership=%d", + __entry->page, + page_to_pfn(__entry->page), + __entry->alloc_order, + __entry->fallback_order, + pageblock_order, + __entry->alloc_migratetype, + __entry->fallback_migratetype, + __entry->fallback_order < pageblock_order, + __entry->alloc_migratetype == __entry->fallback_migratetype) +); + +#endif /* _TRACE_KMEM_H */ + +/* This part must be outside protection */ +#include --- linux-3.11.0.orig/ubuntu/lttng-modules/instrumentation/events/mainline/gpio.h +++ linux-3.11.0/ubuntu/lttng-modules/instrumentation/events/mainline/gpio.h @@ -0,0 +1,56 @@ +#undef TRACE_SYSTEM +#define TRACE_SYSTEM gpio + +#if !defined(_TRACE_GPIO_H) || defined(TRACE_HEADER_MULTI_READ) +#define _TRACE_GPIO_H + +#include + +TRACE_EVENT(gpio_direction, + + TP_PROTO(unsigned gpio, int in, int err), + + TP_ARGS(gpio, in, err), + + TP_STRUCT__entry( + __field(unsigned, gpio) + __field(int, in) + __field(int, err) + ), + + TP_fast_assign( + __entry->gpio = gpio; + __entry->in = in; + __entry->err = err; + ), + + TP_printk("%u %3s (%d)", __entry->gpio, + __entry->in ? "in" : "out", __entry->err) +); + +TRACE_EVENT(gpio_value, + + TP_PROTO(unsigned gpio, int get, int value), + + TP_ARGS(gpio, get, value), + + TP_STRUCT__entry( + __field(unsigned, gpio) + __field(int, get) + __field(int, value) + ), + + TP_fast_assign( + __entry->gpio = gpio; + __entry->get = get; + __entry->value = value; + ), + + TP_printk("%u %3s %d", __entry->gpio, + __entry->get ? "get" : "set", __entry->value) +); + +#endif /* if !defined(_TRACE_GPIO_H) || defined(TRACE_HEADER_MULTI_READ) */ + +/* This part must be outside protection */ +#include --- linux-3.11.0.orig/ubuntu/lttng-modules/instrumentation/events/mainline/asoc.h +++ linux-3.11.0/ubuntu/lttng-modules/instrumentation/events/mainline/asoc.h @@ -0,0 +1,410 @@ +#undef TRACE_SYSTEM +#define TRACE_SYSTEM asoc + +#if !defined(_TRACE_ASOC_H) || defined(TRACE_HEADER_MULTI_READ) +#define _TRACE_ASOC_H + +#include +#include + +#define DAPM_DIRECT "(direct)" + +struct snd_soc_jack; +struct snd_soc_codec; +struct snd_soc_platform; +struct snd_soc_card; +struct snd_soc_dapm_widget; + +/* + * Log register events + */ +DECLARE_EVENT_CLASS(snd_soc_reg, + + TP_PROTO(struct snd_soc_codec *codec, unsigned int reg, + unsigned int val), + + TP_ARGS(codec, reg, val), + + TP_STRUCT__entry( + __string( name, codec->name ) + __field( int, id ) + __field( unsigned int, reg ) + __field( unsigned int, val ) + ), + + TP_fast_assign( + __assign_str(name, codec->name); + __entry->id = codec->id; + __entry->reg = reg; + __entry->val = val; + ), + + TP_printk("codec=%s.%d reg=%x val=%x", __get_str(name), + (int)__entry->id, (unsigned int)__entry->reg, + (unsigned int)__entry->val) +); + +DEFINE_EVENT(snd_soc_reg, snd_soc_reg_write, + + TP_PROTO(struct snd_soc_codec *codec, unsigned int reg, + unsigned int val), + + TP_ARGS(codec, reg, val) + +); + +DEFINE_EVENT(snd_soc_reg, snd_soc_reg_read, + + TP_PROTO(struct snd_soc_codec *codec, unsigned int reg, + unsigned int val), + + TP_ARGS(codec, reg, val) + +); + +DECLARE_EVENT_CLASS(snd_soc_preg, + + TP_PROTO(struct snd_soc_platform *platform, unsigned int reg, + unsigned int val), + + TP_ARGS(platform, reg, val), + + TP_STRUCT__entry( + __string( name, platform->name ) + __field( int, id ) + __field( unsigned int, reg ) + __field( unsigned int, val ) + ), + + TP_fast_assign( + __assign_str(name, platform->name); + __entry->id = platform->id; + __entry->reg = reg; + __entry->val = val; + ), + + TP_printk("platform=%s.%d reg=%x val=%x", __get_str(name), + (int)__entry->id, (unsigned int)__entry->reg, + (unsigned int)__entry->val) +); + +DEFINE_EVENT(snd_soc_preg, snd_soc_preg_write, + + TP_PROTO(struct snd_soc_platform *platform, unsigned int reg, + unsigned int val), + + TP_ARGS(platform, reg, val) + +); + +DEFINE_EVENT(snd_soc_preg, snd_soc_preg_read, + + TP_PROTO(struct snd_soc_platform *platform, unsigned int reg, + unsigned int val), + + TP_ARGS(platform, reg, val) + +); + +DECLARE_EVENT_CLASS(snd_soc_card, + + TP_PROTO(struct snd_soc_card *card, int val), + + TP_ARGS(card, val), + + TP_STRUCT__entry( + __string( name, card->name ) + __field( int, val ) + ), + + TP_fast_assign( + __assign_str(name, card->name); + __entry->val = val; + ), + + TP_printk("card=%s val=%d", __get_str(name), (int)__entry->val) +); + +DEFINE_EVENT(snd_soc_card, snd_soc_bias_level_start, + + TP_PROTO(struct snd_soc_card *card, int val), + + TP_ARGS(card, val) + +); + +DEFINE_EVENT(snd_soc_card, snd_soc_bias_level_done, + + TP_PROTO(struct snd_soc_card *card, int val), + + TP_ARGS(card, val) + +); + +DECLARE_EVENT_CLASS(snd_soc_dapm_basic, + + TP_PROTO(struct snd_soc_card *card), + + TP_ARGS(card), + + TP_STRUCT__entry( + __string( name, card->name ) + ), + + TP_fast_assign( + __assign_str(name, card->name); + ), + + TP_printk("card=%s", __get_str(name)) +); + +DEFINE_EVENT(snd_soc_dapm_basic, snd_soc_dapm_start, + + TP_PROTO(struct snd_soc_card *card), + + TP_ARGS(card) + +); + +DEFINE_EVENT(snd_soc_dapm_basic, snd_soc_dapm_done, + + TP_PROTO(struct snd_soc_card *card), + + TP_ARGS(card) + +); + +DECLARE_EVENT_CLASS(snd_soc_dapm_widget, + + TP_PROTO(struct snd_soc_dapm_widget *w, int val), + + TP_ARGS(w, val), + + TP_STRUCT__entry( + __string( name, w->name ) + __field( int, val ) + ), + + TP_fast_assign( + __assign_str(name, w->name); + __entry->val = val; + ), + + TP_printk("widget=%s val=%d", __get_str(name), + (int)__entry->val) +); + +DEFINE_EVENT(snd_soc_dapm_widget, snd_soc_dapm_widget_power, + + TP_PROTO(struct snd_soc_dapm_widget *w, int val), + + TP_ARGS(w, val) + +); + +DEFINE_EVENT(snd_soc_dapm_widget, snd_soc_dapm_widget_event_start, + + TP_PROTO(struct snd_soc_dapm_widget *w, int val), + + TP_ARGS(w, val) + +); + +DEFINE_EVENT(snd_soc_dapm_widget, snd_soc_dapm_widget_event_done, + + TP_PROTO(struct snd_soc_dapm_widget *w, int val), + + TP_ARGS(w, val) + +); + +TRACE_EVENT(snd_soc_dapm_walk_done, + + TP_PROTO(struct snd_soc_card *card), + + TP_ARGS(card), + + TP_STRUCT__entry( + __string( name, card->name ) + __field( int, power_checks ) + __field( int, path_checks ) + __field( int, neighbour_checks ) + ), + + TP_fast_assign( + __assign_str(name, card->name); + __entry->power_checks = card->dapm_stats.power_checks; + __entry->path_checks = card->dapm_stats.path_checks; + __entry->neighbour_checks = card->dapm_stats.neighbour_checks; + ), + + TP_printk("%s: checks %d power, %d path, %d neighbour", + __get_str(name), (int)__entry->power_checks, + (int)__entry->path_checks, (int)__entry->neighbour_checks) +); + +TRACE_EVENT(snd_soc_dapm_output_path, + + TP_PROTO(struct snd_soc_dapm_widget *widget, + struct snd_soc_dapm_path *path), + + TP_ARGS(widget, path), + + TP_STRUCT__entry( + __string( wname, widget->name ) + __string( pname, path->name ? path->name : DAPM_DIRECT) + __string( psname, path->sink->name ) + __field( int, path_sink ) + __field( int, path_connect ) + ), + + TP_fast_assign( + __assign_str(wname, widget->name); + __assign_str(pname, path->name ? path->name : DAPM_DIRECT); + __assign_str(psname, path->sink->name); + __entry->path_connect = path->connect; + __entry->path_sink = (long)path->sink; + ), + + TP_printk("%c%s -> %s -> %s\n", + (int) __entry->path_sink && + (int) __entry->path_connect ? '*' : ' ', + __get_str(wname), __get_str(pname), __get_str(psname)) +); + +TRACE_EVENT(snd_soc_dapm_input_path, + + TP_PROTO(struct snd_soc_dapm_widget *widget, + struct snd_soc_dapm_path *path), + + TP_ARGS(widget, path), + + TP_STRUCT__entry( + __string( wname, widget->name ) + __string( pname, path->name ? path->name : DAPM_DIRECT) + __string( psname, path->source->name ) + __field( int, path_source ) + __field( int, path_connect ) + ), + + TP_fast_assign( + __assign_str(wname, widget->name); + __assign_str(pname, path->name ? path->name : DAPM_DIRECT); + __assign_str(psname, path->source->name); + __entry->path_connect = path->connect; + __entry->path_source = (long)path->source; + ), + + TP_printk("%c%s <- %s <- %s\n", + (int) __entry->path_source && + (int) __entry->path_connect ? '*' : ' ', + __get_str(wname), __get_str(pname), __get_str(psname)) +); + +TRACE_EVENT(snd_soc_dapm_connected, + + TP_PROTO(int paths, int stream), + + TP_ARGS(paths, stream), + + TP_STRUCT__entry( + __field( int, paths ) + __field( int, stream ) + ), + + TP_fast_assign( + __entry->paths = paths; + __entry->stream = stream; + ), + + TP_printk("%s: found %d paths\n", + __entry->stream ? "capture" : "playback", __entry->paths) +); + +TRACE_EVENT(snd_soc_jack_irq, + + TP_PROTO(const char *name), + + TP_ARGS(name), + + TP_STRUCT__entry( + __string( name, name ) + ), + + TP_fast_assign( + __assign_str(name, name); + ), + + TP_printk("%s", __get_str(name)) +); + +TRACE_EVENT(snd_soc_jack_report, + + TP_PROTO(struct snd_soc_jack *jack, int mask, int val), + + TP_ARGS(jack, mask, val), + + TP_STRUCT__entry( + __string( name, jack->jack->name ) + __field( int, mask ) + __field( int, val ) + ), + + TP_fast_assign( + __assign_str(name, jack->jack->name); + __entry->mask = mask; + __entry->val = val; + ), + + TP_printk("jack=%s %x/%x", __get_str(name), (int)__entry->val, + (int)__entry->mask) +); + +TRACE_EVENT(snd_soc_jack_notify, + + TP_PROTO(struct snd_soc_jack *jack, int val), + + TP_ARGS(jack, val), + + TP_STRUCT__entry( + __string( name, jack->jack->name ) + __field( int, val ) + ), + + TP_fast_assign( + __assign_str(name, jack->jack->name); + __entry->val = val; + ), + + TP_printk("jack=%s %x", __get_str(name), (int)__entry->val) +); + +TRACE_EVENT(snd_soc_cache_sync, + + TP_PROTO(struct snd_soc_codec *codec, const char *type, + const char *status), + + TP_ARGS(codec, type, status), + + TP_STRUCT__entry( + __string( name, codec->name ) + __string( status, status ) + __string( type, type ) + __field( int, id ) + ), + + TP_fast_assign( + __assign_str(name, codec->name); + __assign_str(status, status); + __assign_str(type, type); + __entry->id = codec->id; + ), + + TP_printk("codec=%s.%d type=%s status=%s", __get_str(name), + (int)__entry->id, __get_str(type), __get_str(status)) +); + +#endif /* _TRACE_ASOC_H */ + +/* This part must be outside protection */ +#include --- linux-3.11.0.orig/ubuntu/lttng-modules/instrumentation/events/mainline/syscalls.h +++ linux-3.11.0/ubuntu/lttng-modules/instrumentation/events/mainline/syscalls.h @@ -0,0 +1,75 @@ +#undef TRACE_SYSTEM +#define TRACE_SYSTEM raw_syscalls +#define TRACE_INCLUDE_FILE syscalls + +#if !defined(_TRACE_EVENTS_SYSCALLS_H) || defined(TRACE_HEADER_MULTI_READ) +#define _TRACE_EVENTS_SYSCALLS_H + +#include + +#include +#include + + +#ifdef CONFIG_HAVE_SYSCALL_TRACEPOINTS + +extern void syscall_regfunc(void); +extern void syscall_unregfunc(void); + +TRACE_EVENT_FN(sys_enter, + + TP_PROTO(struct pt_regs *regs, long id), + + TP_ARGS(regs, id), + + TP_STRUCT__entry( + __field( long, id ) + __array( unsigned long, args, 6 ) + ), + + TP_fast_assign( + __entry->id = id; + syscall_get_arguments(current, regs, 0, 6, __entry->args); + ), + + TP_printk("NR %ld (%lx, %lx, %lx, %lx, %lx, %lx)", + __entry->id, + __entry->args[0], __entry->args[1], __entry->args[2], + __entry->args[3], __entry->args[4], __entry->args[5]), + + syscall_regfunc, syscall_unregfunc +); + +TRACE_EVENT_FLAGS(sys_enter, TRACE_EVENT_FL_CAP_ANY) + +TRACE_EVENT_FN(sys_exit, + + TP_PROTO(struct pt_regs *regs, long ret), + + TP_ARGS(regs, ret), + + TP_STRUCT__entry( + __field( long, id ) + __field( long, ret ) + ), + + TP_fast_assign( + __entry->id = syscall_get_nr(current, regs); + __entry->ret = ret; + ), + + TP_printk("NR %ld = %ld", + __entry->id, __entry->ret), + + syscall_regfunc, syscall_unregfunc +); + +TRACE_EVENT_FLAGS(sys_exit, TRACE_EVENT_FL_CAP_ANY) + +#endif /* CONFIG_HAVE_SYSCALL_TRACEPOINTS */ + +#endif /* _TRACE_EVENTS_SYSCALLS_H */ + +/* This part must be outside protection */ +#include + --- linux-3.11.0.orig/ubuntu/lttng-modules/instrumentation/events/mainline/skb.h +++ linux-3.11.0/ubuntu/lttng-modules/instrumentation/events/mainline/skb.h @@ -0,0 +1,75 @@ +#undef TRACE_SYSTEM +#define TRACE_SYSTEM skb + +#if !defined(_TRACE_SKB_H) || defined(TRACE_HEADER_MULTI_READ) +#define _TRACE_SKB_H + +#include +#include +#include + +/* + * Tracepoint for free an sk_buff: + */ +TRACE_EVENT(kfree_skb, + + TP_PROTO(struct sk_buff *skb, void *location), + + TP_ARGS(skb, location), + + TP_STRUCT__entry( + __field( void *, skbaddr ) + __field( void *, location ) + __field( unsigned short, protocol ) + ), + + TP_fast_assign( + __entry->skbaddr = skb; + __entry->location = location; + __entry->protocol = ntohs(skb->protocol); + ), + + TP_printk("skbaddr=%p protocol=%u location=%p", + __entry->skbaddr, __entry->protocol, __entry->location) +); + +TRACE_EVENT(consume_skb, + + TP_PROTO(struct sk_buff *skb), + + TP_ARGS(skb), + + TP_STRUCT__entry( + __field( void *, skbaddr ) + ), + + TP_fast_assign( + __entry->skbaddr = skb; + ), + + TP_printk("skbaddr=%p", __entry->skbaddr) +); + +TRACE_EVENT(skb_copy_datagram_iovec, + + TP_PROTO(const struct sk_buff *skb, int len), + + TP_ARGS(skb, len), + + TP_STRUCT__entry( + __field( const void *, skbaddr ) + __field( int, len ) + ), + + TP_fast_assign( + __entry->skbaddr = skb; + __entry->len = len; + ), + + TP_printk("skbaddr=%p len=%d", __entry->skbaddr, __entry->len) +); + +#endif /* _TRACE_SKB_H */ + +/* This part must be outside protection */ +#include --- linux-3.11.0.orig/ubuntu/lttng-modules/instrumentation/events/mainline/rpm.h +++ linux-3.11.0/ubuntu/lttng-modules/instrumentation/events/mainline/rpm.h @@ -0,0 +1,100 @@ + +#undef TRACE_SYSTEM +#define TRACE_SYSTEM rpm + +#if !defined(_TRACE_RUNTIME_POWER_H) || defined(TRACE_HEADER_MULTI_READ) +#define _TRACE_RUNTIME_POWER_H + +#include +#include + +struct device; + +/* + * The rpm_internal events are used for tracing some important + * runtime pm internal functions. + */ +DECLARE_EVENT_CLASS(rpm_internal, + + TP_PROTO(struct device *dev, int flags), + + TP_ARGS(dev, flags), + + TP_STRUCT__entry( + __string( name, dev_name(dev) ) + __field( int, flags ) + __field( int , usage_count ) + __field( int , disable_depth ) + __field( int , runtime_auto ) + __field( int , request_pending ) + __field( int , irq_safe ) + __field( int , child_count ) + ), + + TP_fast_assign( + __assign_str(name, dev_name(dev)); + __entry->flags = flags; + __entry->usage_count = atomic_read( + &dev->power.usage_count); + __entry->disable_depth = dev->power.disable_depth; + __entry->runtime_auto = dev->power.runtime_auto; + __entry->request_pending = dev->power.request_pending; + __entry->irq_safe = dev->power.irq_safe; + __entry->child_count = atomic_read( + &dev->power.child_count); + ), + + TP_printk("%s flags-%x cnt-%-2d dep-%-2d auto-%-1d p-%-1d" + " irq-%-1d child-%d", + __get_str(name), __entry->flags, + __entry->usage_count, + __entry->disable_depth, + __entry->runtime_auto, + __entry->request_pending, + __entry->irq_safe, + __entry->child_count + ) +); +DEFINE_EVENT(rpm_internal, rpm_suspend, + + TP_PROTO(struct device *dev, int flags), + + TP_ARGS(dev, flags) +); +DEFINE_EVENT(rpm_internal, rpm_resume, + + TP_PROTO(struct device *dev, int flags), + + TP_ARGS(dev, flags) +); +DEFINE_EVENT(rpm_internal, rpm_idle, + + TP_PROTO(struct device *dev, int flags), + + TP_ARGS(dev, flags) +); + +TRACE_EVENT(rpm_return_int, + TP_PROTO(struct device *dev, unsigned long ip, int ret), + TP_ARGS(dev, ip, ret), + + TP_STRUCT__entry( + __string( name, dev_name(dev)) + __field( unsigned long, ip ) + __field( int, ret ) + ), + + TP_fast_assign( + __assign_str(name, dev_name(dev)); + __entry->ip = ip; + __entry->ret = ret; + ), + + TP_printk("%pS:%s ret=%d", (void *)__entry->ip, __get_str(name), + __entry->ret) +); + +#endif /* _TRACE_RUNTIME_POWER_H */ + +/* This part must be outside protection */ +#include --- linux-3.11.0.orig/ubuntu/lttng-modules/instrumentation/events/mainline/module.h +++ linux-3.11.0/ubuntu/lttng-modules/instrumentation/events/mainline/module.h @@ -0,0 +1,131 @@ +/* + * Because linux/module.h has tracepoints in the header, and ftrace.h + * eventually includes this file, define_trace.h includes linux/module.h + * But we do not want the module.h to override the TRACE_SYSTEM macro + * variable that define_trace.h is processing, so we only set it + * when module events are being processed, which would happen when + * CREATE_TRACE_POINTS is defined. + */ +#ifdef CREATE_TRACE_POINTS +#undef TRACE_SYSTEM +#define TRACE_SYSTEM module +#endif + +#if !defined(_TRACE_MODULE_H) || defined(TRACE_HEADER_MULTI_READ) +#define _TRACE_MODULE_H + +#include + +#ifdef CONFIG_MODULES + +struct module; + +#define show_module_flags(flags) __print_flags(flags, "", \ + { (1UL << TAINT_PROPRIETARY_MODULE), "P" }, \ + { (1UL << TAINT_FORCED_MODULE), "F" }, \ + { (1UL << TAINT_CRAP), "C" }) + +TRACE_EVENT(module_load, + + TP_PROTO(struct module *mod), + + TP_ARGS(mod), + + TP_STRUCT__entry( + __field( unsigned int, taints ) + __string( name, mod->name ) + ), + + TP_fast_assign( + __entry->taints = mod->taints; + __assign_str(name, mod->name); + ), + + TP_printk("%s %s", __get_str(name), show_module_flags(__entry->taints)) +); + +TRACE_EVENT(module_free, + + TP_PROTO(struct module *mod), + + TP_ARGS(mod), + + TP_STRUCT__entry( + __string( name, mod->name ) + ), + + TP_fast_assign( + __assign_str(name, mod->name); + ), + + TP_printk("%s", __get_str(name)) +); + +#ifdef CONFIG_MODULE_UNLOAD +/* trace_module_get/put are only used if CONFIG_MODULE_UNLOAD is defined */ + +DECLARE_EVENT_CLASS(module_refcnt, + + TP_PROTO(struct module *mod, unsigned long ip), + + TP_ARGS(mod, ip), + + TP_STRUCT__entry( + __field( unsigned long, ip ) + __field( int, refcnt ) + __string( name, mod->name ) + ), + + TP_fast_assign( + __entry->ip = ip; + __entry->refcnt = __this_cpu_read(mod->refptr->incs) + __this_cpu_read(mod->refptr->decs); + __assign_str(name, mod->name); + ), + + TP_printk("%s call_site=%pf refcnt=%d", + __get_str(name), (void *)__entry->ip, __entry->refcnt) +); + +DEFINE_EVENT(module_refcnt, module_get, + + TP_PROTO(struct module *mod, unsigned long ip), + + TP_ARGS(mod, ip) +); + +DEFINE_EVENT(module_refcnt, module_put, + + TP_PROTO(struct module *mod, unsigned long ip), + + TP_ARGS(mod, ip) +); +#endif /* CONFIG_MODULE_UNLOAD */ + +TRACE_EVENT(module_request, + + TP_PROTO(char *name, bool wait, unsigned long ip), + + TP_ARGS(name, wait, ip), + + TP_STRUCT__entry( + __field( unsigned long, ip ) + __field( bool, wait ) + __string( name, name ) + ), + + TP_fast_assign( + __entry->ip = ip; + __entry->wait = wait; + __assign_str(name, name); + ), + + TP_printk("%s wait=%d call_site=%pf", + __get_str(name), (int)__entry->wait, (void *)__entry->ip) +); + +#endif /* CONFIG_MODULES */ + +#endif /* _TRACE_MODULE_H */ + +/* This part must be outside protection */ +#include --- linux-3.11.0.orig/ubuntu/lttng-modules/instrumentation/events/mainline/jbd.h +++ linux-3.11.0/ubuntu/lttng-modules/instrumentation/events/mainline/jbd.h @@ -0,0 +1,194 @@ +#undef TRACE_SYSTEM +#define TRACE_SYSTEM jbd + +#if !defined(_TRACE_JBD_H) || defined(TRACE_HEADER_MULTI_READ) +#define _TRACE_JBD_H + +#include +#include + +TRACE_EVENT(jbd_checkpoint, + + TP_PROTO(journal_t *journal, int result), + + TP_ARGS(journal, result), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( int, result ) + ), + + TP_fast_assign( + __entry->dev = journal->j_fs_dev->bd_dev; + __entry->result = result; + ), + + TP_printk("dev %d,%d result %d", + MAJOR(__entry->dev), MINOR(__entry->dev), + __entry->result) +); + +DECLARE_EVENT_CLASS(jbd_commit, + + TP_PROTO(journal_t *journal, transaction_t *commit_transaction), + + TP_ARGS(journal, commit_transaction), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( int, transaction ) + ), + + TP_fast_assign( + __entry->dev = journal->j_fs_dev->bd_dev; + __entry->transaction = commit_transaction->t_tid; + ), + + TP_printk("dev %d,%d transaction %d", + MAJOR(__entry->dev), MINOR(__entry->dev), + __entry->transaction) +); + +DEFINE_EVENT(jbd_commit, jbd_start_commit, + + TP_PROTO(journal_t *journal, transaction_t *commit_transaction), + + TP_ARGS(journal, commit_transaction) +); + +DEFINE_EVENT(jbd_commit, jbd_commit_locking, + + TP_PROTO(journal_t *journal, transaction_t *commit_transaction), + + TP_ARGS(journal, commit_transaction) +); + +DEFINE_EVENT(jbd_commit, jbd_commit_flushing, + + TP_PROTO(journal_t *journal, transaction_t *commit_transaction), + + TP_ARGS(journal, commit_transaction) +); + +DEFINE_EVENT(jbd_commit, jbd_commit_logging, + + TP_PROTO(journal_t *journal, transaction_t *commit_transaction), + + TP_ARGS(journal, commit_transaction) +); + +TRACE_EVENT(jbd_drop_transaction, + + TP_PROTO(journal_t *journal, transaction_t *commit_transaction), + + TP_ARGS(journal, commit_transaction), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( int, transaction ) + ), + + TP_fast_assign( + __entry->dev = journal->j_fs_dev->bd_dev; + __entry->transaction = commit_transaction->t_tid; + ), + + TP_printk("dev %d,%d transaction %d", + MAJOR(__entry->dev), MINOR(__entry->dev), + __entry->transaction) +); + +TRACE_EVENT(jbd_end_commit, + TP_PROTO(journal_t *journal, transaction_t *commit_transaction), + + TP_ARGS(journal, commit_transaction), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( int, transaction ) + __field( int, head ) + ), + + TP_fast_assign( + __entry->dev = journal->j_fs_dev->bd_dev; + __entry->transaction = commit_transaction->t_tid; + __entry->head = journal->j_tail_sequence; + ), + + TP_printk("dev %d,%d transaction %d head %d", + MAJOR(__entry->dev), MINOR(__entry->dev), + __entry->transaction, __entry->head) +); + +TRACE_EVENT(jbd_do_submit_data, + TP_PROTO(journal_t *journal, transaction_t *commit_transaction), + + TP_ARGS(journal, commit_transaction), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( int, transaction ) + ), + + TP_fast_assign( + __entry->dev = journal->j_fs_dev->bd_dev; + __entry->transaction = commit_transaction->t_tid; + ), + + TP_printk("dev %d,%d transaction %d", + MAJOR(__entry->dev), MINOR(__entry->dev), + __entry->transaction) +); + +TRACE_EVENT(jbd_cleanup_journal_tail, + + TP_PROTO(journal_t *journal, tid_t first_tid, + unsigned long block_nr, unsigned long freed), + + TP_ARGS(journal, first_tid, block_nr, freed), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( tid_t, tail_sequence ) + __field( tid_t, first_tid ) + __field(unsigned long, block_nr ) + __field(unsigned long, freed ) + ), + + TP_fast_assign( + __entry->dev = journal->j_fs_dev->bd_dev; + __entry->tail_sequence = journal->j_tail_sequence; + __entry->first_tid = first_tid; + __entry->block_nr = block_nr; + __entry->freed = freed; + ), + + TP_printk("dev %d,%d from %u to %u offset %lu freed %lu", + MAJOR(__entry->dev), MINOR(__entry->dev), + __entry->tail_sequence, __entry->first_tid, + __entry->block_nr, __entry->freed) +); + +TRACE_EVENT(journal_write_superblock, + TP_PROTO(journal_t *journal, int write_op), + + TP_ARGS(journal, write_op), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( int, write_op ) + ), + + TP_fast_assign( + __entry->dev = journal->j_fs_dev->bd_dev; + __entry->write_op = write_op; + ), + + TP_printk("dev %d,%d write_op %x", MAJOR(__entry->dev), + MINOR(__entry->dev), __entry->write_op) +); + +#endif /* _TRACE_JBD_H */ + +/* This part must be outside protection */ +#include --- linux-3.11.0.orig/ubuntu/lttng-modules/instrumentation/events/mainline/btrfs.h +++ linux-3.11.0/ubuntu/lttng-modules/instrumentation/events/mainline/btrfs.h @@ -0,0 +1,918 @@ +#undef TRACE_SYSTEM +#define TRACE_SYSTEM btrfs + +#if !defined(_TRACE_BTRFS_H) || defined(TRACE_HEADER_MULTI_READ) +#define _TRACE_BTRFS_H + +#include +#include +#include + +struct btrfs_root; +struct btrfs_fs_info; +struct btrfs_inode; +struct extent_map; +struct btrfs_ordered_extent; +struct btrfs_delayed_ref_node; +struct btrfs_delayed_tree_ref; +struct btrfs_delayed_data_ref; +struct btrfs_delayed_ref_head; +struct btrfs_block_group_cache; +struct btrfs_free_cluster; +struct map_lookup; +struct extent_buffer; + +#define show_ref_type(type) \ + __print_symbolic(type, \ + { BTRFS_TREE_BLOCK_REF_KEY, "TREE_BLOCK_REF" }, \ + { BTRFS_EXTENT_DATA_REF_KEY, "EXTENT_DATA_REF" }, \ + { BTRFS_EXTENT_REF_V0_KEY, "EXTENT_REF_V0" }, \ + { BTRFS_SHARED_BLOCK_REF_KEY, "SHARED_BLOCK_REF" }, \ + { BTRFS_SHARED_DATA_REF_KEY, "SHARED_DATA_REF" }) + +#define __show_root_type(obj) \ + __print_symbolic_u64(obj, \ + { BTRFS_ROOT_TREE_OBJECTID, "ROOT_TREE" }, \ + { BTRFS_EXTENT_TREE_OBJECTID, "EXTENT_TREE" }, \ + { BTRFS_CHUNK_TREE_OBJECTID, "CHUNK_TREE" }, \ + { BTRFS_DEV_TREE_OBJECTID, "DEV_TREE" }, \ + { BTRFS_FS_TREE_OBJECTID, "FS_TREE" }, \ + { BTRFS_ROOT_TREE_DIR_OBJECTID, "ROOT_TREE_DIR" }, \ + { BTRFS_CSUM_TREE_OBJECTID, "CSUM_TREE" }, \ + { BTRFS_TREE_LOG_OBJECTID, "TREE_LOG" }, \ + { BTRFS_TREE_RELOC_OBJECTID, "TREE_RELOC" }, \ + { BTRFS_DATA_RELOC_TREE_OBJECTID, "DATA_RELOC_TREE" }) + +#define show_root_type(obj) \ + obj, ((obj >= BTRFS_DATA_RELOC_TREE_OBJECTID) || \ + (obj <= BTRFS_CSUM_TREE_OBJECTID )) ? __show_root_type(obj) : "-" + +#define BTRFS_GROUP_FLAGS \ + { BTRFS_BLOCK_GROUP_DATA, "DATA"}, \ + { BTRFS_BLOCK_GROUP_SYSTEM, "SYSTEM"}, \ + { BTRFS_BLOCK_GROUP_METADATA, "METADATA"}, \ + { BTRFS_BLOCK_GROUP_RAID0, "RAID0"}, \ + { BTRFS_BLOCK_GROUP_RAID1, "RAID1"}, \ + { BTRFS_BLOCK_GROUP_DUP, "DUP"}, \ + { BTRFS_BLOCK_GROUP_RAID10, "RAID10"} + +#define BTRFS_UUID_SIZE 16 + +TRACE_EVENT(btrfs_transaction_commit, + + TP_PROTO(struct btrfs_root *root), + + TP_ARGS(root), + + TP_STRUCT__entry( + __field( u64, generation ) + __field( u64, root_objectid ) + ), + + TP_fast_assign( + __entry->generation = root->fs_info->generation; + __entry->root_objectid = root->root_key.objectid; + ), + + TP_printk("root = %llu(%s), gen = %llu", + show_root_type(__entry->root_objectid), + (unsigned long long)__entry->generation) +); + +DECLARE_EVENT_CLASS(btrfs__inode, + + TP_PROTO(struct inode *inode), + + TP_ARGS(inode), + + TP_STRUCT__entry( + __field( ino_t, ino ) + __field( blkcnt_t, blocks ) + __field( u64, disk_i_size ) + __field( u64, generation ) + __field( u64, last_trans ) + __field( u64, logged_trans ) + __field( u64, root_objectid ) + ), + + TP_fast_assign( + __entry->ino = inode->i_ino; + __entry->blocks = inode->i_blocks; + __entry->disk_i_size = BTRFS_I(inode)->disk_i_size; + __entry->generation = BTRFS_I(inode)->generation; + __entry->last_trans = BTRFS_I(inode)->last_trans; + __entry->logged_trans = BTRFS_I(inode)->logged_trans; + __entry->root_objectid = + BTRFS_I(inode)->root->root_key.objectid; + ), + + TP_printk("root = %llu(%s), gen = %llu, ino = %lu, blocks = %llu, " + "disk_i_size = %llu, last_trans = %llu, logged_trans = %llu", + show_root_type(__entry->root_objectid), + (unsigned long long)__entry->generation, + (unsigned long)__entry->ino, + (unsigned long long)__entry->blocks, + (unsigned long long)__entry->disk_i_size, + (unsigned long long)__entry->last_trans, + (unsigned long long)__entry->logged_trans) +); + +DEFINE_EVENT(btrfs__inode, btrfs_inode_new, + + TP_PROTO(struct inode *inode), + + TP_ARGS(inode) +); + +DEFINE_EVENT(btrfs__inode, btrfs_inode_request, + + TP_PROTO(struct inode *inode), + + TP_ARGS(inode) +); + +DEFINE_EVENT(btrfs__inode, btrfs_inode_evict, + + TP_PROTO(struct inode *inode), + + TP_ARGS(inode) +); + +#define __show_map_type(type) \ + __print_symbolic_u64(type, \ + { EXTENT_MAP_LAST_BYTE, "LAST_BYTE" }, \ + { EXTENT_MAP_HOLE, "HOLE" }, \ + { EXTENT_MAP_INLINE, "INLINE" }, \ + { EXTENT_MAP_DELALLOC, "DELALLOC" }) + +#define show_map_type(type) \ + type, (type >= EXTENT_MAP_LAST_BYTE) ? "-" : __show_map_type(type) + +#define show_map_flags(flag) \ + __print_flags(flag, "|", \ + { EXTENT_FLAG_PINNED, "PINNED" }, \ + { EXTENT_FLAG_COMPRESSED, "COMPRESSED" }, \ + { EXTENT_FLAG_VACANCY, "VACANCY" }, \ + { EXTENT_FLAG_PREALLOC, "PREALLOC" }) + +TRACE_EVENT(btrfs_get_extent, + + TP_PROTO(struct btrfs_root *root, struct extent_map *map), + + TP_ARGS(root, map), + + TP_STRUCT__entry( + __field( u64, root_objectid ) + __field( u64, start ) + __field( u64, len ) + __field( u64, orig_start ) + __field( u64, block_start ) + __field( u64, block_len ) + __field( unsigned long, flags ) + __field( int, refs ) + __field( unsigned int, compress_type ) + ), + + TP_fast_assign( + __entry->root_objectid = root->root_key.objectid; + __entry->start = map->start; + __entry->len = map->len; + __entry->orig_start = map->orig_start; + __entry->block_start = map->block_start; + __entry->block_len = map->block_len; + __entry->flags = map->flags; + __entry->refs = atomic_read(&map->refs); + __entry->compress_type = map->compress_type; + ), + + TP_printk("root = %llu(%s), start = %llu, len = %llu, " + "orig_start = %llu, block_start = %llu(%s), " + "block_len = %llu, flags = %s, refs = %u, " + "compress_type = %u", + show_root_type(__entry->root_objectid), + (unsigned long long)__entry->start, + (unsigned long long)__entry->len, + (unsigned long long)__entry->orig_start, + show_map_type(__entry->block_start), + (unsigned long long)__entry->block_len, + show_map_flags(__entry->flags), + __entry->refs, __entry->compress_type) +); + +#define show_ordered_flags(flags) \ + __print_symbolic(flags, \ + { BTRFS_ORDERED_IO_DONE, "IO_DONE" }, \ + { BTRFS_ORDERED_COMPLETE, "COMPLETE" }, \ + { BTRFS_ORDERED_NOCOW, "NOCOW" }, \ + { BTRFS_ORDERED_COMPRESSED, "COMPRESSED" }, \ + { BTRFS_ORDERED_PREALLOC, "PREALLOC" }, \ + { BTRFS_ORDERED_DIRECT, "DIRECT" }) + +DECLARE_EVENT_CLASS(btrfs__ordered_extent, + + TP_PROTO(struct inode *inode, struct btrfs_ordered_extent *ordered), + + TP_ARGS(inode, ordered), + + TP_STRUCT__entry( + __field( ino_t, ino ) + __field( u64, file_offset ) + __field( u64, start ) + __field( u64, len ) + __field( u64, disk_len ) + __field( u64, bytes_left ) + __field( unsigned long, flags ) + __field( int, compress_type ) + __field( int, refs ) + __field( u64, root_objectid ) + ), + + TP_fast_assign( + __entry->ino = inode->i_ino; + __entry->file_offset = ordered->file_offset; + __entry->start = ordered->start; + __entry->len = ordered->len; + __entry->disk_len = ordered->disk_len; + __entry->bytes_left = ordered->bytes_left; + __entry->flags = ordered->flags; + __entry->compress_type = ordered->compress_type; + __entry->refs = atomic_read(&ordered->refs); + __entry->root_objectid = + BTRFS_I(inode)->root->root_key.objectid; + ), + + TP_printk("root = %llu(%s), ino = %llu, file_offset = %llu, " + "start = %llu, len = %llu, disk_len = %llu, " + "bytes_left = %llu, flags = %s, compress_type = %d, " + "refs = %d", + show_root_type(__entry->root_objectid), + (unsigned long long)__entry->ino, + (unsigned long long)__entry->file_offset, + (unsigned long long)__entry->start, + (unsigned long long)__entry->len, + (unsigned long long)__entry->disk_len, + (unsigned long long)__entry->bytes_left, + show_ordered_flags(__entry->flags), + __entry->compress_type, __entry->refs) +); + +DEFINE_EVENT(btrfs__ordered_extent, btrfs_ordered_extent_add, + + TP_PROTO(struct inode *inode, struct btrfs_ordered_extent *ordered), + + TP_ARGS(inode, ordered) +); + +DEFINE_EVENT(btrfs__ordered_extent, btrfs_ordered_extent_remove, + + TP_PROTO(struct inode *inode, struct btrfs_ordered_extent *ordered), + + TP_ARGS(inode, ordered) +); + +DEFINE_EVENT(btrfs__ordered_extent, btrfs_ordered_extent_start, + + TP_PROTO(struct inode *inode, struct btrfs_ordered_extent *ordered), + + TP_ARGS(inode, ordered) +); + +DEFINE_EVENT(btrfs__ordered_extent, btrfs_ordered_extent_put, + + TP_PROTO(struct inode *inode, struct btrfs_ordered_extent *ordered), + + TP_ARGS(inode, ordered) +); + +DECLARE_EVENT_CLASS(btrfs__writepage, + + TP_PROTO(struct page *page, struct inode *inode, + struct writeback_control *wbc), + + TP_ARGS(page, inode, wbc), + + TP_STRUCT__entry( + __field( ino_t, ino ) + __field( pgoff_t, index ) + __field( long, nr_to_write ) + __field( long, pages_skipped ) + __field( loff_t, range_start ) + __field( loff_t, range_end ) + __field( char, for_kupdate ) + __field( char, for_reclaim ) + __field( char, range_cyclic ) + __field( pgoff_t, writeback_index ) + __field( u64, root_objectid ) + ), + + TP_fast_assign( + __entry->ino = inode->i_ino; + __entry->index = page->index; + __entry->nr_to_write = wbc->nr_to_write; + __entry->pages_skipped = wbc->pages_skipped; + __entry->range_start = wbc->range_start; + __entry->range_end = wbc->range_end; + __entry->for_kupdate = wbc->for_kupdate; + __entry->for_reclaim = wbc->for_reclaim; + __entry->range_cyclic = wbc->range_cyclic; + __entry->writeback_index = inode->i_mapping->writeback_index; + __entry->root_objectid = + BTRFS_I(inode)->root->root_key.objectid; + ), + + TP_printk("root = %llu(%s), ino = %lu, page_index = %lu, " + "nr_to_write = %ld, pages_skipped = %ld, range_start = %llu, " + "range_end = %llu, for_kupdate = %d, " + "for_reclaim = %d, range_cyclic = %d, writeback_index = %lu", + show_root_type(__entry->root_objectid), + (unsigned long)__entry->ino, __entry->index, + __entry->nr_to_write, __entry->pages_skipped, + __entry->range_start, __entry->range_end, + __entry->for_kupdate, + __entry->for_reclaim, __entry->range_cyclic, + (unsigned long)__entry->writeback_index) +); + +DEFINE_EVENT(btrfs__writepage, __extent_writepage, + + TP_PROTO(struct page *page, struct inode *inode, + struct writeback_control *wbc), + + TP_ARGS(page, inode, wbc) +); + +TRACE_EVENT(btrfs_writepage_end_io_hook, + + TP_PROTO(struct page *page, u64 start, u64 end, int uptodate), + + TP_ARGS(page, start, end, uptodate), + + TP_STRUCT__entry( + __field( ino_t, ino ) + __field( pgoff_t, index ) + __field( u64, start ) + __field( u64, end ) + __field( int, uptodate ) + __field( u64, root_objectid ) + ), + + TP_fast_assign( + __entry->ino = page->mapping->host->i_ino; + __entry->index = page->index; + __entry->start = start; + __entry->end = end; + __entry->uptodate = uptodate; + __entry->root_objectid = + BTRFS_I(page->mapping->host)->root->root_key.objectid; + ), + + TP_printk("root = %llu(%s), ino = %lu, page_index = %lu, start = %llu, " + "end = %llu, uptodate = %d", + show_root_type(__entry->root_objectid), + (unsigned long)__entry->ino, (unsigned long)__entry->index, + (unsigned long long)__entry->start, + (unsigned long long)__entry->end, __entry->uptodate) +); + +TRACE_EVENT(btrfs_sync_file, + + TP_PROTO(struct file *file, int datasync), + + TP_ARGS(file, datasync), + + TP_STRUCT__entry( + __field( ino_t, ino ) + __field( ino_t, parent ) + __field( int, datasync ) + __field( u64, root_objectid ) + ), + + TP_fast_assign( + struct dentry *dentry = file->f_path.dentry; + struct inode *inode = dentry->d_inode; + + __entry->ino = inode->i_ino; + __entry->parent = dentry->d_parent->d_inode->i_ino; + __entry->datasync = datasync; + __entry->root_objectid = + BTRFS_I(inode)->root->root_key.objectid; + ), + + TP_printk("root = %llu(%s), ino = %ld, parent = %ld, datasync = %d", + show_root_type(__entry->root_objectid), + (unsigned long)__entry->ino, (unsigned long)__entry->parent, + __entry->datasync) +); + +TRACE_EVENT(btrfs_sync_fs, + + TP_PROTO(int wait), + + TP_ARGS(wait), + + TP_STRUCT__entry( + __field( int, wait ) + ), + + TP_fast_assign( + __entry->wait = wait; + ), + + TP_printk("wait = %d", __entry->wait) +); + +#define show_ref_action(action) \ + __print_symbolic(action, \ + { BTRFS_ADD_DELAYED_REF, "ADD_DELAYED_REF" }, \ + { BTRFS_DROP_DELAYED_REF, "DROP_DELAYED_REF" }, \ + { BTRFS_ADD_DELAYED_EXTENT, "ADD_DELAYED_EXTENT" }, \ + { BTRFS_UPDATE_DELAYED_HEAD, "UPDATE_DELAYED_HEAD" }) + + +TRACE_EVENT(btrfs_delayed_tree_ref, + + TP_PROTO(struct btrfs_delayed_ref_node *ref, + struct btrfs_delayed_tree_ref *full_ref, + int action), + + TP_ARGS(ref, full_ref, action), + + TP_STRUCT__entry( + __field( u64, bytenr ) + __field( u64, num_bytes ) + __field( int, action ) + __field( u64, parent ) + __field( u64, ref_root ) + __field( int, level ) + __field( int, type ) + __field( u64, seq ) + ), + + TP_fast_assign( + __entry->bytenr = ref->bytenr; + __entry->num_bytes = ref->num_bytes; + __entry->action = action; + __entry->parent = full_ref->parent; + __entry->ref_root = full_ref->root; + __entry->level = full_ref->level; + __entry->type = ref->type; + __entry->seq = ref->seq; + ), + + TP_printk("bytenr = %llu, num_bytes = %llu, action = %s, " + "parent = %llu(%s), ref_root = %llu(%s), level = %d, " + "type = %s, seq = %llu", + (unsigned long long)__entry->bytenr, + (unsigned long long)__entry->num_bytes, + show_ref_action(__entry->action), + show_root_type(__entry->parent), + show_root_type(__entry->ref_root), + __entry->level, show_ref_type(__entry->type), + (unsigned long long)__entry->seq) +); + +TRACE_EVENT(btrfs_delayed_data_ref, + + TP_PROTO(struct btrfs_delayed_ref_node *ref, + struct btrfs_delayed_data_ref *full_ref, + int action), + + TP_ARGS(ref, full_ref, action), + + TP_STRUCT__entry( + __field( u64, bytenr ) + __field( u64, num_bytes ) + __field( int, action ) + __field( u64, parent ) + __field( u64, ref_root ) + __field( u64, owner ) + __field( u64, offset ) + __field( int, type ) + __field( u64, seq ) + ), + + TP_fast_assign( + __entry->bytenr = ref->bytenr; + __entry->num_bytes = ref->num_bytes; + __entry->action = action; + __entry->parent = full_ref->parent; + __entry->ref_root = full_ref->root; + __entry->owner = full_ref->objectid; + __entry->offset = full_ref->offset; + __entry->type = ref->type; + __entry->seq = ref->seq; + ), + + TP_printk("bytenr = %llu, num_bytes = %llu, action = %s, " + "parent = %llu(%s), ref_root = %llu(%s), owner = %llu, " + "offset = %llu, type = %s, seq = %llu", + (unsigned long long)__entry->bytenr, + (unsigned long long)__entry->num_bytes, + show_ref_action(__entry->action), + show_root_type(__entry->parent), + show_root_type(__entry->ref_root), + (unsigned long long)__entry->owner, + (unsigned long long)__entry->offset, + show_ref_type(__entry->type), + (unsigned long long)__entry->seq) +); + +TRACE_EVENT(btrfs_delayed_ref_head, + + TP_PROTO(struct btrfs_delayed_ref_node *ref, + struct btrfs_delayed_ref_head *head_ref, + int action), + + TP_ARGS(ref, head_ref, action), + + TP_STRUCT__entry( + __field( u64, bytenr ) + __field( u64, num_bytes ) + __field( int, action ) + __field( int, is_data ) + ), + + TP_fast_assign( + __entry->bytenr = ref->bytenr; + __entry->num_bytes = ref->num_bytes; + __entry->action = action; + __entry->is_data = head_ref->is_data; + ), + + TP_printk("bytenr = %llu, num_bytes = %llu, action = %s, is_data = %d", + (unsigned long long)__entry->bytenr, + (unsigned long long)__entry->num_bytes, + show_ref_action(__entry->action), + __entry->is_data) +); + +#define show_chunk_type(type) \ + __print_flags(type, "|", \ + { BTRFS_BLOCK_GROUP_DATA, "DATA" }, \ + { BTRFS_BLOCK_GROUP_SYSTEM, "SYSTEM"}, \ + { BTRFS_BLOCK_GROUP_METADATA, "METADATA"}, \ + { BTRFS_BLOCK_GROUP_RAID0, "RAID0" }, \ + { BTRFS_BLOCK_GROUP_RAID1, "RAID1" }, \ + { BTRFS_BLOCK_GROUP_DUP, "DUP" }, \ + { BTRFS_BLOCK_GROUP_RAID10, "RAID10"}) + +DECLARE_EVENT_CLASS(btrfs__chunk, + + TP_PROTO(struct btrfs_root *root, struct map_lookup *map, + u64 offset, u64 size), + + TP_ARGS(root, map, offset, size), + + TP_STRUCT__entry( + __field( int, num_stripes ) + __field( u64, type ) + __field( int, sub_stripes ) + __field( u64, offset ) + __field( u64, size ) + __field( u64, root_objectid ) + ), + + TP_fast_assign( + __entry->num_stripes = map->num_stripes; + __entry->type = map->type; + __entry->sub_stripes = map->sub_stripes; + __entry->offset = offset; + __entry->size = size; + __entry->root_objectid = root->root_key.objectid; + ), + + TP_printk("root = %llu(%s), offset = %llu, size = %llu, " + "num_stripes = %d, sub_stripes = %d, type = %s", + show_root_type(__entry->root_objectid), + (unsigned long long)__entry->offset, + (unsigned long long)__entry->size, + __entry->num_stripes, __entry->sub_stripes, + show_chunk_type(__entry->type)) +); + +DEFINE_EVENT(btrfs__chunk, btrfs_chunk_alloc, + + TP_PROTO(struct btrfs_root *root, struct map_lookup *map, + u64 offset, u64 size), + + TP_ARGS(root, map, offset, size) +); + +DEFINE_EVENT(btrfs__chunk, btrfs_chunk_free, + + TP_PROTO(struct btrfs_root *root, struct map_lookup *map, + u64 offset, u64 size), + + TP_ARGS(root, map, offset, size) +); + +TRACE_EVENT(btrfs_cow_block, + + TP_PROTO(struct btrfs_root *root, struct extent_buffer *buf, + struct extent_buffer *cow), + + TP_ARGS(root, buf, cow), + + TP_STRUCT__entry( + __field( u64, root_objectid ) + __field( u64, buf_start ) + __field( int, refs ) + __field( u64, cow_start ) + __field( int, buf_level ) + __field( int, cow_level ) + ), + + TP_fast_assign( + __entry->root_objectid = root->root_key.objectid; + __entry->buf_start = buf->start; + __entry->refs = atomic_read(&buf->refs); + __entry->cow_start = cow->start; + __entry->buf_level = btrfs_header_level(buf); + __entry->cow_level = btrfs_header_level(cow); + ), + + TP_printk("root = %llu(%s), refs = %d, orig_buf = %llu " + "(orig_level = %d), cow_buf = %llu (cow_level = %d)", + show_root_type(__entry->root_objectid), + __entry->refs, + (unsigned long long)__entry->buf_start, + __entry->buf_level, + (unsigned long long)__entry->cow_start, + __entry->cow_level) +); + +TRACE_EVENT(btrfs_space_reservation, + + TP_PROTO(struct btrfs_fs_info *fs_info, char *type, u64 val, + u64 bytes, int reserve), + + TP_ARGS(fs_info, type, val, bytes, reserve), + + TP_STRUCT__entry( + __array( u8, fsid, BTRFS_UUID_SIZE ) + __string( type, type ) + __field( u64, val ) + __field( u64, bytes ) + __field( int, reserve ) + ), + + TP_fast_assign( + memcpy(__entry->fsid, fs_info->fsid, BTRFS_UUID_SIZE); + __assign_str(type, type); + __entry->val = val; + __entry->bytes = bytes; + __entry->reserve = reserve; + ), + + TP_printk("%pU: %s: %Lu %s %Lu", __entry->fsid, __get_str(type), + __entry->val, __entry->reserve ? "reserve" : "release", + __entry->bytes) +); + +DECLARE_EVENT_CLASS(btrfs__reserved_extent, + + TP_PROTO(struct btrfs_root *root, u64 start, u64 len), + + TP_ARGS(root, start, len), + + TP_STRUCT__entry( + __field( u64, root_objectid ) + __field( u64, start ) + __field( u64, len ) + ), + + TP_fast_assign( + __entry->root_objectid = root->root_key.objectid; + __entry->start = start; + __entry->len = len; + ), + + TP_printk("root = %llu(%s), start = %llu, len = %llu", + show_root_type(__entry->root_objectid), + (unsigned long long)__entry->start, + (unsigned long long)__entry->len) +); + +DEFINE_EVENT(btrfs__reserved_extent, btrfs_reserved_extent_alloc, + + TP_PROTO(struct btrfs_root *root, u64 start, u64 len), + + TP_ARGS(root, start, len) +); + +DEFINE_EVENT(btrfs__reserved_extent, btrfs_reserved_extent_free, + + TP_PROTO(struct btrfs_root *root, u64 start, u64 len), + + TP_ARGS(root, start, len) +); + +TRACE_EVENT(find_free_extent, + + TP_PROTO(struct btrfs_root *root, u64 num_bytes, u64 empty_size, + u64 data), + + TP_ARGS(root, num_bytes, empty_size, data), + + TP_STRUCT__entry( + __field( u64, root_objectid ) + __field( u64, num_bytes ) + __field( u64, empty_size ) + __field( u64, data ) + ), + + TP_fast_assign( + __entry->root_objectid = root->root_key.objectid; + __entry->num_bytes = num_bytes; + __entry->empty_size = empty_size; + __entry->data = data; + ), + + TP_printk("root = %Lu(%s), len = %Lu, empty_size = %Lu, " + "flags = %Lu(%s)", show_root_type(__entry->root_objectid), + __entry->num_bytes, __entry->empty_size, __entry->data, + __print_flags((unsigned long)__entry->data, "|", + BTRFS_GROUP_FLAGS)) +); + +DECLARE_EVENT_CLASS(btrfs__reserve_extent, + + TP_PROTO(struct btrfs_root *root, + struct btrfs_block_group_cache *block_group, u64 start, + u64 len), + + TP_ARGS(root, block_group, start, len), + + TP_STRUCT__entry( + __field( u64, root_objectid ) + __field( u64, bg_objectid ) + __field( u64, flags ) + __field( u64, start ) + __field( u64, len ) + ), + + TP_fast_assign( + __entry->root_objectid = root->root_key.objectid; + __entry->bg_objectid = block_group->key.objectid; + __entry->flags = block_group->flags; + __entry->start = start; + __entry->len = len; + ), + + TP_printk("root = %Lu(%s), block_group = %Lu, flags = %Lu(%s), " + "start = %Lu, len = %Lu", + show_root_type(__entry->root_objectid), __entry->bg_objectid, + __entry->flags, __print_flags((unsigned long)__entry->flags, + "|", BTRFS_GROUP_FLAGS), + __entry->start, __entry->len) +); + +DEFINE_EVENT(btrfs__reserve_extent, btrfs_reserve_extent, + + TP_PROTO(struct btrfs_root *root, + struct btrfs_block_group_cache *block_group, u64 start, + u64 len), + + TP_ARGS(root, block_group, start, len) +); + +DEFINE_EVENT(btrfs__reserve_extent, btrfs_reserve_extent_cluster, + + TP_PROTO(struct btrfs_root *root, + struct btrfs_block_group_cache *block_group, u64 start, + u64 len), + + TP_ARGS(root, block_group, start, len) +); + +TRACE_EVENT(btrfs_find_cluster, + + TP_PROTO(struct btrfs_block_group_cache *block_group, u64 start, + u64 bytes, u64 empty_size, u64 min_bytes), + + TP_ARGS(block_group, start, bytes, empty_size, min_bytes), + + TP_STRUCT__entry( + __field( u64, bg_objectid ) + __field( u64, flags ) + __field( u64, start ) + __field( u64, bytes ) + __field( u64, empty_size ) + __field( u64, min_bytes ) + ), + + TP_fast_assign( + __entry->bg_objectid = block_group->key.objectid; + __entry->flags = block_group->flags; + __entry->start = start; + __entry->bytes = bytes; + __entry->empty_size = empty_size; + __entry->min_bytes = min_bytes; + ), + + TP_printk("block_group = %Lu, flags = %Lu(%s), start = %Lu, len = %Lu," + " empty_size = %Lu, min_bytes = %Lu", __entry->bg_objectid, + __entry->flags, + __print_flags((unsigned long)__entry->flags, "|", + BTRFS_GROUP_FLAGS), __entry->start, + __entry->bytes, __entry->empty_size, __entry->min_bytes) +); + +TRACE_EVENT(btrfs_failed_cluster_setup, + + TP_PROTO(struct btrfs_block_group_cache *block_group), + + TP_ARGS(block_group), + + TP_STRUCT__entry( + __field( u64, bg_objectid ) + ), + + TP_fast_assign( + __entry->bg_objectid = block_group->key.objectid; + ), + + TP_printk("block_group = %Lu", __entry->bg_objectid) +); + +TRACE_EVENT(btrfs_setup_cluster, + + TP_PROTO(struct btrfs_block_group_cache *block_group, + struct btrfs_free_cluster *cluster, u64 size, int bitmap), + + TP_ARGS(block_group, cluster, size, bitmap), + + TP_STRUCT__entry( + __field( u64, bg_objectid ) + __field( u64, flags ) + __field( u64, start ) + __field( u64, max_size ) + __field( u64, size ) + __field( int, bitmap ) + ), + + TP_fast_assign( + __entry->bg_objectid = block_group->key.objectid; + __entry->flags = block_group->flags; + __entry->start = cluster->window_start; + __entry->max_size = cluster->max_size; + __entry->size = size; + __entry->bitmap = bitmap; + ), + + TP_printk("block_group = %Lu, flags = %Lu(%s), window_start = %Lu, " + "size = %Lu, max_size = %Lu, bitmap = %d", + __entry->bg_objectid, + __entry->flags, + __print_flags((unsigned long)__entry->flags, "|", + BTRFS_GROUP_FLAGS), __entry->start, + __entry->size, __entry->max_size, __entry->bitmap) +); + +struct extent_state; +TRACE_EVENT(alloc_extent_state, + + TP_PROTO(struct extent_state *state, gfp_t mask, unsigned long IP), + + TP_ARGS(state, mask, IP), + + TP_STRUCT__entry( + __field(struct extent_state *, state) + __field(gfp_t, mask) + __field(unsigned long, ip) + ), + + TP_fast_assign( + __entry->state = state, + __entry->mask = mask, + __entry->ip = IP + ), + + TP_printk("state=%p; mask = %s; caller = %pF", __entry->state, + show_gfp_flags(__entry->mask), (void *)__entry->ip) +); + +TRACE_EVENT(free_extent_state, + + TP_PROTO(struct extent_state *state, unsigned long IP), + + TP_ARGS(state, IP), + + TP_STRUCT__entry( + __field(struct extent_state *, state) + __field(unsigned long, ip) + ), + + TP_fast_assign( + __entry->state = state, + __entry->ip = IP + ), + + TP_printk(" state=%p; caller = %pF", __entry->state, + (void *)__entry->ip) +); + +#endif /* _TRACE_BTRFS_H */ + +/* This part must be outside protection */ +#include --- linux-3.11.0.orig/ubuntu/lttng-modules/instrumentation/events/mainline/irq.h +++ linux-3.11.0/ubuntu/lttng-modules/instrumentation/events/mainline/irq.h @@ -0,0 +1,150 @@ +#undef TRACE_SYSTEM +#define TRACE_SYSTEM irq + +#if !defined(_TRACE_IRQ_H) || defined(TRACE_HEADER_MULTI_READ) +#define _TRACE_IRQ_H + +#include + +struct irqaction; +struct softirq_action; + +#define softirq_name(sirq) { sirq##_SOFTIRQ, #sirq } +#define show_softirq_name(val) \ + __print_symbolic(val, \ + softirq_name(HI), \ + softirq_name(TIMER), \ + softirq_name(NET_TX), \ + softirq_name(NET_RX), \ + softirq_name(BLOCK), \ + softirq_name(BLOCK_IOPOLL), \ + softirq_name(TASKLET), \ + softirq_name(SCHED), \ + softirq_name(HRTIMER), \ + softirq_name(RCU)) + +/** + * irq_handler_entry - called immediately before the irq action handler + * @irq: irq number + * @action: pointer to struct irqaction + * + * The struct irqaction pointed to by @action contains various + * information about the handler, including the device name, + * @action->name, and the device id, @action->dev_id. When used in + * conjunction with the irq_handler_exit tracepoint, we can figure + * out irq handler latencies. + */ +TRACE_EVENT(irq_handler_entry, + + TP_PROTO(int irq, struct irqaction *action), + + TP_ARGS(irq, action), + + TP_STRUCT__entry( + __field( int, irq ) + __string( name, action->name ) + ), + + TP_fast_assign( + __entry->irq = irq; + __assign_str(name, action->name); + ), + + TP_printk("irq=%d name=%s", __entry->irq, __get_str(name)) +); + +/** + * irq_handler_exit - called immediately after the irq action handler returns + * @irq: irq number + * @action: pointer to struct irqaction + * @ret: return value + * + * If the @ret value is set to IRQ_HANDLED, then we know that the corresponding + * @action->handler scuccessully handled this irq. Otherwise, the irq might be + * a shared irq line, or the irq was not handled successfully. Can be used in + * conjunction with the irq_handler_entry to understand irq handler latencies. + */ +TRACE_EVENT(irq_handler_exit, + + TP_PROTO(int irq, struct irqaction *action, int ret), + + TP_ARGS(irq, action, ret), + + TP_STRUCT__entry( + __field( int, irq ) + __field( int, ret ) + ), + + TP_fast_assign( + __entry->irq = irq; + __entry->ret = ret; + ), + + TP_printk("irq=%d ret=%s", + __entry->irq, __entry->ret ? "handled" : "unhandled") +); + +DECLARE_EVENT_CLASS(softirq, + + TP_PROTO(unsigned int vec_nr), + + TP_ARGS(vec_nr), + + TP_STRUCT__entry( + __field( unsigned int, vec ) + ), + + TP_fast_assign( + __entry->vec = vec_nr; + ), + + TP_printk("vec=%u [action=%s]", __entry->vec, + show_softirq_name(__entry->vec)) +); + +/** + * softirq_entry - called immediately before the softirq handler + * @vec_nr: softirq vector number + * + * When used in combination with the softirq_exit tracepoint + * we can determine the softirq handler runtine. + */ +DEFINE_EVENT(softirq, softirq_entry, + + TP_PROTO(unsigned int vec_nr), + + TP_ARGS(vec_nr) +); + +/** + * softirq_exit - called immediately after the softirq handler returns + * @vec_nr: softirq vector number + * + * When used in combination with the softirq_entry tracepoint + * we can determine the softirq handler runtine. + */ +DEFINE_EVENT(softirq, softirq_exit, + + TP_PROTO(unsigned int vec_nr), + + TP_ARGS(vec_nr) +); + +/** + * softirq_raise - called immediately when a softirq is raised + * @vec_nr: softirq vector number + * + * When used in combination with the softirq_entry tracepoint + * we can determine the softirq raise to run latency. + */ +DEFINE_EVENT(softirq, softirq_raise, + + TP_PROTO(unsigned int vec_nr), + + TP_ARGS(vec_nr) +); + +#endif /* _TRACE_IRQ_H */ + +/* This part must be outside protection */ +#include --- linux-3.11.0.orig/ubuntu/lttng-modules/instrumentation/events/mainline/rcu.h +++ linux-3.11.0/ubuntu/lttng-modules/instrumentation/events/mainline/rcu.h @@ -0,0 +1,618 @@ +#undef TRACE_SYSTEM +#define TRACE_SYSTEM rcu + +#if !defined(_TRACE_RCU_H) || defined(TRACE_HEADER_MULTI_READ) +#define _TRACE_RCU_H + +#include + +/* + * Tracepoint for start/end markers used for utilization calculations. + * By convention, the string is of the following forms: + * + * "Start " -- Mark the start of the specified activity, + * such as "context switch". Nesting is permitted. + * "End " -- Mark the end of the specified activity. + * + * An "@" character within "" is a comment character: Data + * reduction scripts will ignore the "@" and the remainder of the line. + */ +TRACE_EVENT(rcu_utilization, + + TP_PROTO(char *s), + + TP_ARGS(s), + + TP_STRUCT__entry( + __field(char *, s) + ), + + TP_fast_assign( + __entry->s = s; + ), + + TP_printk("%s", __entry->s) +); + +#ifdef CONFIG_RCU_TRACE + +#if defined(CONFIG_TREE_RCU) || defined(CONFIG_TREE_PREEMPT_RCU) + +/* + * Tracepoint for grace-period events: starting and ending a grace + * period ("start" and "end", respectively), a CPU noting the start + * of a new grace period or the end of an old grace period ("cpustart" + * and "cpuend", respectively), a CPU passing through a quiescent + * state ("cpuqs"), a CPU coming online or going offline ("cpuonl" + * and "cpuofl", respectively), and a CPU being kicked for being too + * long in dyntick-idle mode ("kick"). + */ +TRACE_EVENT(rcu_grace_period, + + TP_PROTO(char *rcuname, unsigned long gpnum, char *gpevent), + + TP_ARGS(rcuname, gpnum, gpevent), + + TP_STRUCT__entry( + __field(char *, rcuname) + __field(unsigned long, gpnum) + __field(char *, gpevent) + ), + + TP_fast_assign( + __entry->rcuname = rcuname; + __entry->gpnum = gpnum; + __entry->gpevent = gpevent; + ), + + TP_printk("%s %lu %s", + __entry->rcuname, __entry->gpnum, __entry->gpevent) +); + +/* + * Tracepoint for grace-period-initialization events. These are + * distinguished by the type of RCU, the new grace-period number, the + * rcu_node structure level, the starting and ending CPU covered by the + * rcu_node structure, and the mask of CPUs that will be waited for. + * All but the type of RCU are extracted from the rcu_node structure. + */ +TRACE_EVENT(rcu_grace_period_init, + + TP_PROTO(char *rcuname, unsigned long gpnum, u8 level, + int grplo, int grphi, unsigned long qsmask), + + TP_ARGS(rcuname, gpnum, level, grplo, grphi, qsmask), + + TP_STRUCT__entry( + __field(char *, rcuname) + __field(unsigned long, gpnum) + __field(u8, level) + __field(int, grplo) + __field(int, grphi) + __field(unsigned long, qsmask) + ), + + TP_fast_assign( + __entry->rcuname = rcuname; + __entry->gpnum = gpnum; + __entry->level = level; + __entry->grplo = grplo; + __entry->grphi = grphi; + __entry->qsmask = qsmask; + ), + + TP_printk("%s %lu %u %d %d %lx", + __entry->rcuname, __entry->gpnum, __entry->level, + __entry->grplo, __entry->grphi, __entry->qsmask) +); + +/* + * Tracepoint for tasks blocking within preemptible-RCU read-side + * critical sections. Track the type of RCU (which one day might + * include SRCU), the grace-period number that the task is blocking + * (the current or the next), and the task's PID. + */ +TRACE_EVENT(rcu_preempt_task, + + TP_PROTO(char *rcuname, int pid, unsigned long gpnum), + + TP_ARGS(rcuname, pid, gpnum), + + TP_STRUCT__entry( + __field(char *, rcuname) + __field(unsigned long, gpnum) + __field(int, pid) + ), + + TP_fast_assign( + __entry->rcuname = rcuname; + __entry->gpnum = gpnum; + __entry->pid = pid; + ), + + TP_printk("%s %lu %d", + __entry->rcuname, __entry->gpnum, __entry->pid) +); + +/* + * Tracepoint for tasks that blocked within a given preemptible-RCU + * read-side critical section exiting that critical section. Track the + * type of RCU (which one day might include SRCU) and the task's PID. + */ +TRACE_EVENT(rcu_unlock_preempted_task, + + TP_PROTO(char *rcuname, unsigned long gpnum, int pid), + + TP_ARGS(rcuname, gpnum, pid), + + TP_STRUCT__entry( + __field(char *, rcuname) + __field(unsigned long, gpnum) + __field(int, pid) + ), + + TP_fast_assign( + __entry->rcuname = rcuname; + __entry->gpnum = gpnum; + __entry->pid = pid; + ), + + TP_printk("%s %lu %d", __entry->rcuname, __entry->gpnum, __entry->pid) +); + +/* + * Tracepoint for quiescent-state-reporting events. These are + * distinguished by the type of RCU, the grace-period number, the + * mask of quiescent lower-level entities, the rcu_node structure level, + * the starting and ending CPU covered by the rcu_node structure, and + * whether there are any blocked tasks blocking the current grace period. + * All but the type of RCU are extracted from the rcu_node structure. + */ +TRACE_EVENT(rcu_quiescent_state_report, + + TP_PROTO(char *rcuname, unsigned long gpnum, + unsigned long mask, unsigned long qsmask, + u8 level, int grplo, int grphi, int gp_tasks), + + TP_ARGS(rcuname, gpnum, mask, qsmask, level, grplo, grphi, gp_tasks), + + TP_STRUCT__entry( + __field(char *, rcuname) + __field(unsigned long, gpnum) + __field(unsigned long, mask) + __field(unsigned long, qsmask) + __field(u8, level) + __field(int, grplo) + __field(int, grphi) + __field(u8, gp_tasks) + ), + + TP_fast_assign( + __entry->rcuname = rcuname; + __entry->gpnum = gpnum; + __entry->mask = mask; + __entry->qsmask = qsmask; + __entry->level = level; + __entry->grplo = grplo; + __entry->grphi = grphi; + __entry->gp_tasks = gp_tasks; + ), + + TP_printk("%s %lu %lx>%lx %u %d %d %u", + __entry->rcuname, __entry->gpnum, + __entry->mask, __entry->qsmask, __entry->level, + __entry->grplo, __entry->grphi, __entry->gp_tasks) +); + +/* + * Tracepoint for quiescent states detected by force_quiescent_state(). + * These trace events include the type of RCU, the grace-period number + * that was blocked by the CPU, the CPU itself, and the type of quiescent + * state, which can be "dti" for dyntick-idle mode, "ofl" for CPU offline, + * or "kick" when kicking a CPU that has been in dyntick-idle mode for + * too long. + */ +TRACE_EVENT(rcu_fqs, + + TP_PROTO(char *rcuname, unsigned long gpnum, int cpu, char *qsevent), + + TP_ARGS(rcuname, gpnum, cpu, qsevent), + + TP_STRUCT__entry( + __field(char *, rcuname) + __field(unsigned long, gpnum) + __field(int, cpu) + __field(char *, qsevent) + ), + + TP_fast_assign( + __entry->rcuname = rcuname; + __entry->gpnum = gpnum; + __entry->cpu = cpu; + __entry->qsevent = qsevent; + ), + + TP_printk("%s %lu %d %s", + __entry->rcuname, __entry->gpnum, + __entry->cpu, __entry->qsevent) +); + +#endif /* #if defined(CONFIG_TREE_RCU) || defined(CONFIG_TREE_PREEMPT_RCU) */ + +/* + * Tracepoint for dyntick-idle entry/exit events. These take a string + * as argument: "Start" for entering dyntick-idle mode, "End" for + * leaving it, "--=" for events moving towards idle, and "++=" for events + * moving away from idle. "Error on entry: not idle task" and "Error on + * exit: not idle task" indicate that a non-idle task is erroneously + * toying with the idle loop. + * + * These events also take a pair of numbers, which indicate the nesting + * depth before and after the event of interest. Note that task-related + * events use the upper bits of each number, while interrupt-related + * events use the lower bits. + */ +TRACE_EVENT(rcu_dyntick, + + TP_PROTO(char *polarity, long long oldnesting, long long newnesting), + + TP_ARGS(polarity, oldnesting, newnesting), + + TP_STRUCT__entry( + __field(char *, polarity) + __field(long long, oldnesting) + __field(long long, newnesting) + ), + + TP_fast_assign( + __entry->polarity = polarity; + __entry->oldnesting = oldnesting; + __entry->newnesting = newnesting; + ), + + TP_printk("%s %llx %llx", __entry->polarity, + __entry->oldnesting, __entry->newnesting) +); + +/* + * Tracepoint for RCU preparation for idle, the goal being to get RCU + * processing done so that the current CPU can shut off its scheduling + * clock and enter dyntick-idle mode. One way to accomplish this is + * to drain all RCU callbacks from this CPU, and the other is to have + * done everything RCU requires for the current grace period. In this + * latter case, the CPU will be awakened at the end of the current grace + * period in order to process the remainder of its callbacks. + * + * These tracepoints take a string as argument: + * + * "No callbacks": Nothing to do, no callbacks on this CPU. + * "In holdoff": Nothing to do, holding off after unsuccessful attempt. + * "Begin holdoff": Attempt failed, don't retry until next jiffy. + * "Dyntick with callbacks": Entering dyntick-idle despite callbacks. + * "Dyntick with lazy callbacks": Entering dyntick-idle w/lazy callbacks. + * "More callbacks": Still more callbacks, try again to clear them out. + * "Callbacks drained": All callbacks processed, off to dyntick idle! + * "Timer": Timer fired to cause CPU to continue processing callbacks. + * "Demigrate": Timer fired on wrong CPU, woke up correct CPU. + * "Cleanup after idle": Idle exited, timer canceled. + */ +TRACE_EVENT(rcu_prep_idle, + + TP_PROTO(char *reason), + + TP_ARGS(reason), + + TP_STRUCT__entry( + __field(char *, reason) + ), + + TP_fast_assign( + __entry->reason = reason; + ), + + TP_printk("%s", __entry->reason) +); + +/* + * Tracepoint for the registration of a single RCU callback function. + * The first argument is the type of RCU, the second argument is + * a pointer to the RCU callback itself, the third element is the + * number of lazy callbacks queued, and the fourth element is the + * total number of callbacks queued. + */ +TRACE_EVENT(rcu_callback, + + TP_PROTO(char *rcuname, struct rcu_head *rhp, long qlen_lazy, + long qlen), + + TP_ARGS(rcuname, rhp, qlen_lazy, qlen), + + TP_STRUCT__entry( + __field(char *, rcuname) + __field(void *, rhp) + __field(void *, func) + __field(long, qlen_lazy) + __field(long, qlen) + ), + + TP_fast_assign( + __entry->rcuname = rcuname; + __entry->rhp = rhp; + __entry->func = rhp->func; + __entry->qlen_lazy = qlen_lazy; + __entry->qlen = qlen; + ), + + TP_printk("%s rhp=%p func=%pf %ld/%ld", + __entry->rcuname, __entry->rhp, __entry->func, + __entry->qlen_lazy, __entry->qlen) +); + +/* + * Tracepoint for the registration of a single RCU callback of the special + * kfree() form. The first argument is the RCU type, the second argument + * is a pointer to the RCU callback, the third argument is the offset + * of the callback within the enclosing RCU-protected data structure, + * the fourth argument is the number of lazy callbacks queued, and the + * fifth argument is the total number of callbacks queued. + */ +TRACE_EVENT(rcu_kfree_callback, + + TP_PROTO(char *rcuname, struct rcu_head *rhp, unsigned long offset, + long qlen_lazy, long qlen), + + TP_ARGS(rcuname, rhp, offset, qlen_lazy, qlen), + + TP_STRUCT__entry( + __field(char *, rcuname) + __field(void *, rhp) + __field(unsigned long, offset) + __field(long, qlen_lazy) + __field(long, qlen) + ), + + TP_fast_assign( + __entry->rcuname = rcuname; + __entry->rhp = rhp; + __entry->offset = offset; + __entry->qlen_lazy = qlen_lazy; + __entry->qlen = qlen; + ), + + TP_printk("%s rhp=%p func=%ld %ld/%ld", + __entry->rcuname, __entry->rhp, __entry->offset, + __entry->qlen_lazy, __entry->qlen) +); + +/* + * Tracepoint for marking the beginning rcu_do_batch, performed to start + * RCU callback invocation. The first argument is the RCU flavor, + * the second is the number of lazy callbacks queued, the third is + * the total number of callbacks queued, and the fourth argument is + * the current RCU-callback batch limit. + */ +TRACE_EVENT(rcu_batch_start, + + TP_PROTO(char *rcuname, long qlen_lazy, long qlen, int blimit), + + TP_ARGS(rcuname, qlen_lazy, qlen, blimit), + + TP_STRUCT__entry( + __field(char *, rcuname) + __field(long, qlen_lazy) + __field(long, qlen) + __field(int, blimit) + ), + + TP_fast_assign( + __entry->rcuname = rcuname; + __entry->qlen_lazy = qlen_lazy; + __entry->qlen = qlen; + __entry->blimit = blimit; + ), + + TP_printk("%s CBs=%ld/%ld bl=%d", + __entry->rcuname, __entry->qlen_lazy, __entry->qlen, + __entry->blimit) +); + +/* + * Tracepoint for the invocation of a single RCU callback function. + * The first argument is the type of RCU, and the second argument is + * a pointer to the RCU callback itself. + */ +TRACE_EVENT(rcu_invoke_callback, + + TP_PROTO(char *rcuname, struct rcu_head *rhp), + + TP_ARGS(rcuname, rhp), + + TP_STRUCT__entry( + __field(char *, rcuname) + __field(void *, rhp) + __field(void *, func) + ), + + TP_fast_assign( + __entry->rcuname = rcuname; + __entry->rhp = rhp; + __entry->func = rhp->func; + ), + + TP_printk("%s rhp=%p func=%pf", + __entry->rcuname, __entry->rhp, __entry->func) +); + +/* + * Tracepoint for the invocation of a single RCU callback of the special + * kfree() form. The first argument is the RCU flavor, the second + * argument is a pointer to the RCU callback, and the third argument + * is the offset of the callback within the enclosing RCU-protected + * data structure. + */ +TRACE_EVENT(rcu_invoke_kfree_callback, + + TP_PROTO(char *rcuname, struct rcu_head *rhp, unsigned long offset), + + TP_ARGS(rcuname, rhp, offset), + + TP_STRUCT__entry( + __field(char *, rcuname) + __field(void *, rhp) + __field(unsigned long, offset) + ), + + TP_fast_assign( + __entry->rcuname = rcuname; + __entry->rhp = rhp; + __entry->offset = offset; + ), + + TP_printk("%s rhp=%p func=%ld", + __entry->rcuname, __entry->rhp, __entry->offset) +); + +/* + * Tracepoint for exiting rcu_do_batch after RCU callbacks have been + * invoked. The first argument is the name of the RCU flavor, + * the second argument is number of callbacks actually invoked, + * the third argument (cb) is whether or not any of the callbacks that + * were ready to invoke at the beginning of this batch are still + * queued, the fourth argument (nr) is the return value of need_resched(), + * the fifth argument (iit) is 1 if the current task is the idle task, + * and the sixth argument (risk) is the return value from + * rcu_is_callbacks_kthread(). + */ +TRACE_EVENT(rcu_batch_end, + + TP_PROTO(char *rcuname, int callbacks_invoked, + bool cb, bool nr, bool iit, bool risk), + + TP_ARGS(rcuname, callbacks_invoked, cb, nr, iit, risk), + + TP_STRUCT__entry( + __field(char *, rcuname) + __field(int, callbacks_invoked) + __field(bool, cb) + __field(bool, nr) + __field(bool, iit) + __field(bool, risk) + ), + + TP_fast_assign( + __entry->rcuname = rcuname; + __entry->callbacks_invoked = callbacks_invoked; + __entry->cb = cb; + __entry->nr = nr; + __entry->iit = iit; + __entry->risk = risk; + ), + + TP_printk("%s CBs-invoked=%d idle=%c%c%c%c", + __entry->rcuname, __entry->callbacks_invoked, + __entry->cb ? 'C' : '.', + __entry->nr ? 'S' : '.', + __entry->iit ? 'I' : '.', + __entry->risk ? 'R' : '.') +); + +/* + * Tracepoint for rcutorture readers. The first argument is the name + * of the RCU flavor from rcutorture's viewpoint and the second argument + * is the callback address. + */ +TRACE_EVENT(rcu_torture_read, + + TP_PROTO(char *rcutorturename, struct rcu_head *rhp), + + TP_ARGS(rcutorturename, rhp), + + TP_STRUCT__entry( + __field(char *, rcutorturename) + __field(struct rcu_head *, rhp) + ), + + TP_fast_assign( + __entry->rcutorturename = rcutorturename; + __entry->rhp = rhp; + ), + + TP_printk("%s torture read %p", + __entry->rcutorturename, __entry->rhp) +); + +/* + * Tracepoint for _rcu_barrier() execution. The string "s" describes + * the _rcu_barrier phase: + * "Begin": rcu_barrier_callback() started. + * "Check": rcu_barrier_callback() checking for piggybacking. + * "EarlyExit": rcu_barrier_callback() piggybacked, thus early exit. + * "Inc1": rcu_barrier_callback() piggyback check counter incremented. + * "Offline": rcu_barrier_callback() found offline CPU + * "OnlineQ": rcu_barrier_callback() found online CPU with callbacks. + * "OnlineNQ": rcu_barrier_callback() found online CPU, no callbacks. + * "IRQ": An rcu_barrier_callback() callback posted on remote CPU. + * "CB": An rcu_barrier_callback() invoked a callback, not the last. + * "LastCB": An rcu_barrier_callback() invoked the last callback. + * "Inc2": rcu_barrier_callback() piggyback check counter incremented. + * The "cpu" argument is the CPU or -1 if meaningless, the "cnt" argument + * is the count of remaining callbacks, and "done" is the piggybacking count. + */ +TRACE_EVENT(rcu_barrier, + + TP_PROTO(char *rcuname, char *s, int cpu, int cnt, unsigned long done), + + TP_ARGS(rcuname, s, cpu, cnt, done), + + TP_STRUCT__entry( + __field(char *, rcuname) + __field(char *, s) + __field(int, cpu) + __field(int, cnt) + __field(unsigned long, done) + ), + + TP_fast_assign( + __entry->rcuname = rcuname; + __entry->s = s; + __entry->cpu = cpu; + __entry->cnt = cnt; + __entry->done = done; + ), + + TP_printk("%s %s cpu %d remaining %d # %lu", + __entry->rcuname, __entry->s, __entry->cpu, __entry->cnt, + __entry->done) +); + +#else /* #ifdef CONFIG_RCU_TRACE */ + +#define trace_rcu_grace_period(rcuname, gpnum, gpevent) do { } while (0) +#define trace_rcu_grace_period_init(rcuname, gpnum, level, grplo, grphi, \ + qsmask) do { } while (0) +#define trace_rcu_preempt_task(rcuname, pid, gpnum) do { } while (0) +#define trace_rcu_unlock_preempted_task(rcuname, gpnum, pid) do { } while (0) +#define trace_rcu_quiescent_state_report(rcuname, gpnum, mask, qsmask, level, \ + grplo, grphi, gp_tasks) do { } \ + while (0) +#define trace_rcu_fqs(rcuname, gpnum, cpu, qsevent) do { } while (0) +#define trace_rcu_dyntick(polarity, oldnesting, newnesting) do { } while (0) +#define trace_rcu_prep_idle(reason) do { } while (0) +#define trace_rcu_callback(rcuname, rhp, qlen_lazy, qlen) do { } while (0) +#define trace_rcu_kfree_callback(rcuname, rhp, offset, qlen_lazy, qlen) \ + do { } while (0) +#define trace_rcu_batch_start(rcuname, qlen_lazy, qlen, blimit) \ + do { } while (0) +#define trace_rcu_invoke_callback(rcuname, rhp) do { } while (0) +#define trace_rcu_invoke_kfree_callback(rcuname, rhp, offset) do { } while (0) +#define trace_rcu_batch_end(rcuname, callbacks_invoked, cb, nr, iit, risk) \ + do { } while (0) +#define trace_rcu_torture_read(rcutorturename, rhp) do { } while (0) +#define trace_rcu_barrier(name, s, cpu, cnt, done) do { } while (0) + +#endif /* #else #ifdef CONFIG_RCU_TRACE */ + +#endif /* _TRACE_RCU_H */ + +/* This part must be outside protection */ +#include --- linux-3.11.0.orig/ubuntu/lttng-modules/instrumentation/events/mainline/vmscan.h +++ linux-3.11.0/ubuntu/lttng-modules/instrumentation/events/mainline/vmscan.h @@ -0,0 +1,383 @@ +#undef TRACE_SYSTEM +#define TRACE_SYSTEM vmscan + +#if !defined(_TRACE_VMSCAN_H) || defined(TRACE_HEADER_MULTI_READ) +#define _TRACE_VMSCAN_H + +#include +#include +#include +#include +#include + +#define RECLAIM_WB_ANON 0x0001u +#define RECLAIM_WB_FILE 0x0002u +#define RECLAIM_WB_MIXED 0x0010u +#define RECLAIM_WB_SYNC 0x0004u /* Unused, all reclaim async */ +#define RECLAIM_WB_ASYNC 0x0008u + +#define show_reclaim_flags(flags) \ + (flags) ? __print_flags(flags, "|", \ + {RECLAIM_WB_ANON, "RECLAIM_WB_ANON"}, \ + {RECLAIM_WB_FILE, "RECLAIM_WB_FILE"}, \ + {RECLAIM_WB_MIXED, "RECLAIM_WB_MIXED"}, \ + {RECLAIM_WB_SYNC, "RECLAIM_WB_SYNC"}, \ + {RECLAIM_WB_ASYNC, "RECLAIM_WB_ASYNC"} \ + ) : "RECLAIM_WB_NONE" + +#define trace_reclaim_flags(page) ( \ + (page_is_file_cache(page) ? RECLAIM_WB_FILE : RECLAIM_WB_ANON) | \ + (RECLAIM_WB_ASYNC) \ + ) + +#define trace_shrink_flags(file) \ + ( \ + (file ? RECLAIM_WB_FILE : RECLAIM_WB_ANON) | \ + (RECLAIM_WB_ASYNC) \ + ) + +TRACE_EVENT(mm_vmscan_kswapd_sleep, + + TP_PROTO(int nid), + + TP_ARGS(nid), + + TP_STRUCT__entry( + __field( int, nid ) + ), + + TP_fast_assign( + __entry->nid = nid; + ), + + TP_printk("nid=%d", __entry->nid) +); + +TRACE_EVENT(mm_vmscan_kswapd_wake, + + TP_PROTO(int nid, int order), + + TP_ARGS(nid, order), + + TP_STRUCT__entry( + __field( int, nid ) + __field( int, order ) + ), + + TP_fast_assign( + __entry->nid = nid; + __entry->order = order; + ), + + TP_printk("nid=%d order=%d", __entry->nid, __entry->order) +); + +TRACE_EVENT(mm_vmscan_wakeup_kswapd, + + TP_PROTO(int nid, int zid, int order), + + TP_ARGS(nid, zid, order), + + TP_STRUCT__entry( + __field( int, nid ) + __field( int, zid ) + __field( int, order ) + ), + + TP_fast_assign( + __entry->nid = nid; + __entry->zid = zid; + __entry->order = order; + ), + + TP_printk("nid=%d zid=%d order=%d", + __entry->nid, + __entry->zid, + __entry->order) +); + +DECLARE_EVENT_CLASS(mm_vmscan_direct_reclaim_begin_template, + + TP_PROTO(int order, int may_writepage, gfp_t gfp_flags), + + TP_ARGS(order, may_writepage, gfp_flags), + + TP_STRUCT__entry( + __field( int, order ) + __field( int, may_writepage ) + __field( gfp_t, gfp_flags ) + ), + + TP_fast_assign( + __entry->order = order; + __entry->may_writepage = may_writepage; + __entry->gfp_flags = gfp_flags; + ), + + TP_printk("order=%d may_writepage=%d gfp_flags=%s", + __entry->order, + __entry->may_writepage, + show_gfp_flags(__entry->gfp_flags)) +); + +DEFINE_EVENT(mm_vmscan_direct_reclaim_begin_template, mm_vmscan_direct_reclaim_begin, + + TP_PROTO(int order, int may_writepage, gfp_t gfp_flags), + + TP_ARGS(order, may_writepage, gfp_flags) +); + +DEFINE_EVENT(mm_vmscan_direct_reclaim_begin_template, mm_vmscan_memcg_reclaim_begin, + + TP_PROTO(int order, int may_writepage, gfp_t gfp_flags), + + TP_ARGS(order, may_writepage, gfp_flags) +); + +DEFINE_EVENT(mm_vmscan_direct_reclaim_begin_template, mm_vmscan_memcg_softlimit_reclaim_begin, + + TP_PROTO(int order, int may_writepage, gfp_t gfp_flags), + + TP_ARGS(order, may_writepage, gfp_flags) +); + +DECLARE_EVENT_CLASS(mm_vmscan_direct_reclaim_end_template, + + TP_PROTO(unsigned long nr_reclaimed), + + TP_ARGS(nr_reclaimed), + + TP_STRUCT__entry( + __field( unsigned long, nr_reclaimed ) + ), + + TP_fast_assign( + __entry->nr_reclaimed = nr_reclaimed; + ), + + TP_printk("nr_reclaimed=%lu", __entry->nr_reclaimed) +); + +DEFINE_EVENT(mm_vmscan_direct_reclaim_end_template, mm_vmscan_direct_reclaim_end, + + TP_PROTO(unsigned long nr_reclaimed), + + TP_ARGS(nr_reclaimed) +); + +DEFINE_EVENT(mm_vmscan_direct_reclaim_end_template, mm_vmscan_memcg_reclaim_end, + + TP_PROTO(unsigned long nr_reclaimed), + + TP_ARGS(nr_reclaimed) +); + +DEFINE_EVENT(mm_vmscan_direct_reclaim_end_template, mm_vmscan_memcg_softlimit_reclaim_end, + + TP_PROTO(unsigned long nr_reclaimed), + + TP_ARGS(nr_reclaimed) +); + +TRACE_EVENT(mm_shrink_slab_start, + TP_PROTO(struct shrinker *shr, struct shrink_control *sc, + long nr_objects_to_shrink, unsigned long pgs_scanned, + unsigned long lru_pgs, unsigned long cache_items, + unsigned long long delta, unsigned long total_scan), + + TP_ARGS(shr, sc, nr_objects_to_shrink, pgs_scanned, lru_pgs, + cache_items, delta, total_scan), + + TP_STRUCT__entry( + __field(struct shrinker *, shr) + __field(void *, shrink) + __field(long, nr_objects_to_shrink) + __field(gfp_t, gfp_flags) + __field(unsigned long, pgs_scanned) + __field(unsigned long, lru_pgs) + __field(unsigned long, cache_items) + __field(unsigned long long, delta) + __field(unsigned long, total_scan) + ), + + TP_fast_assign( + __entry->shr = shr; + __entry->shrink = shr->shrink; + __entry->nr_objects_to_shrink = nr_objects_to_shrink; + __entry->gfp_flags = sc->gfp_mask; + __entry->pgs_scanned = pgs_scanned; + __entry->lru_pgs = lru_pgs; + __entry->cache_items = cache_items; + __entry->delta = delta; + __entry->total_scan = total_scan; + ), + + TP_printk("%pF %p: objects to shrink %ld gfp_flags %s pgs_scanned %ld lru_pgs %ld cache items %ld delta %lld total_scan %ld", + __entry->shrink, + __entry->shr, + __entry->nr_objects_to_shrink, + show_gfp_flags(__entry->gfp_flags), + __entry->pgs_scanned, + __entry->lru_pgs, + __entry->cache_items, + __entry->delta, + __entry->total_scan) +); + +TRACE_EVENT(mm_shrink_slab_end, + TP_PROTO(struct shrinker *shr, int shrinker_retval, + long unused_scan_cnt, long new_scan_cnt), + + TP_ARGS(shr, shrinker_retval, unused_scan_cnt, new_scan_cnt), + + TP_STRUCT__entry( + __field(struct shrinker *, shr) + __field(void *, shrink) + __field(long, unused_scan) + __field(long, new_scan) + __field(int, retval) + __field(long, total_scan) + ), + + TP_fast_assign( + __entry->shr = shr; + __entry->shrink = shr->shrink; + __entry->unused_scan = unused_scan_cnt; + __entry->new_scan = new_scan_cnt; + __entry->retval = shrinker_retval; + __entry->total_scan = new_scan_cnt - unused_scan_cnt; + ), + + TP_printk("%pF %p: unused scan count %ld new scan count %ld total_scan %ld last shrinker return val %d", + __entry->shrink, + __entry->shr, + __entry->unused_scan, + __entry->new_scan, + __entry->total_scan, + __entry->retval) +); + +DECLARE_EVENT_CLASS(mm_vmscan_lru_isolate_template, + + TP_PROTO(int order, + unsigned long nr_requested, + unsigned long nr_scanned, + unsigned long nr_taken, + isolate_mode_t isolate_mode, + int file), + + TP_ARGS(order, nr_requested, nr_scanned, nr_taken, isolate_mode, file), + + TP_STRUCT__entry( + __field(int, order) + __field(unsigned long, nr_requested) + __field(unsigned long, nr_scanned) + __field(unsigned long, nr_taken) + __field(isolate_mode_t, isolate_mode) + __field(int, file) + ), + + TP_fast_assign( + __entry->order = order; + __entry->nr_requested = nr_requested; + __entry->nr_scanned = nr_scanned; + __entry->nr_taken = nr_taken; + __entry->isolate_mode = isolate_mode; + __entry->file = file; + ), + + TP_printk("isolate_mode=%d order=%d nr_requested=%lu nr_scanned=%lu nr_taken=%lu file=%d", + __entry->isolate_mode, + __entry->order, + __entry->nr_requested, + __entry->nr_scanned, + __entry->nr_taken, + __entry->file) +); + +DEFINE_EVENT(mm_vmscan_lru_isolate_template, mm_vmscan_lru_isolate, + + TP_PROTO(int order, + unsigned long nr_requested, + unsigned long nr_scanned, + unsigned long nr_taken, + isolate_mode_t isolate_mode, + int file), + + TP_ARGS(order, nr_requested, nr_scanned, nr_taken, isolate_mode, file) + +); + +DEFINE_EVENT(mm_vmscan_lru_isolate_template, mm_vmscan_memcg_isolate, + + TP_PROTO(int order, + unsigned long nr_requested, + unsigned long nr_scanned, + unsigned long nr_taken, + isolate_mode_t isolate_mode, + int file), + + TP_ARGS(order, nr_requested, nr_scanned, nr_taken, isolate_mode, file) + +); + +TRACE_EVENT(mm_vmscan_writepage, + + TP_PROTO(struct page *page, + int reclaim_flags), + + TP_ARGS(page, reclaim_flags), + + TP_STRUCT__entry( + __field(struct page *, page) + __field(int, reclaim_flags) + ), + + TP_fast_assign( + __entry->page = page; + __entry->reclaim_flags = reclaim_flags; + ), + + TP_printk("page=%p pfn=%lu flags=%s", + __entry->page, + page_to_pfn(__entry->page), + show_reclaim_flags(__entry->reclaim_flags)) +); + +TRACE_EVENT(mm_vmscan_lru_shrink_inactive, + + TP_PROTO(int nid, int zid, + unsigned long nr_scanned, unsigned long nr_reclaimed, + int priority, int reclaim_flags), + + TP_ARGS(nid, zid, nr_scanned, nr_reclaimed, priority, reclaim_flags), + + TP_STRUCT__entry( + __field(int, nid) + __field(int, zid) + __field(unsigned long, nr_scanned) + __field(unsigned long, nr_reclaimed) + __field(int, priority) + __field(int, reclaim_flags) + ), + + TP_fast_assign( + __entry->nid = nid; + __entry->zid = zid; + __entry->nr_scanned = nr_scanned; + __entry->nr_reclaimed = nr_reclaimed; + __entry->priority = priority; + __entry->reclaim_flags = reclaim_flags; + ), + + TP_printk("nid=%d zid=%d nr_scanned=%ld nr_reclaimed=%ld priority=%d flags=%s", + __entry->nid, __entry->zid, + __entry->nr_scanned, __entry->nr_reclaimed, + __entry->priority, + show_reclaim_flags(__entry->reclaim_flags)) +); + +#endif /* _TRACE_VMSCAN_H */ + +/* This part must be outside protection */ +#include --- linux-3.11.0.orig/ubuntu/lttng-modules/instrumentation/events/mainline/power.h +++ linux-3.11.0/ubuntu/lttng-modules/instrumentation/events/mainline/power.h @@ -0,0 +1,275 @@ +#undef TRACE_SYSTEM +#define TRACE_SYSTEM power + +#if !defined(_TRACE_POWER_H) || defined(TRACE_HEADER_MULTI_READ) +#define _TRACE_POWER_H + +#include +#include + +DECLARE_EVENT_CLASS(cpu, + + TP_PROTO(unsigned int state, unsigned int cpu_id), + + TP_ARGS(state, cpu_id), + + TP_STRUCT__entry( + __field( u32, state ) + __field( u32, cpu_id ) + ), + + TP_fast_assign( + __entry->state = state; + __entry->cpu_id = cpu_id; + ), + + TP_printk("state=%lu cpu_id=%lu", (unsigned long)__entry->state, + (unsigned long)__entry->cpu_id) +); + +DEFINE_EVENT(cpu, cpu_idle, + + TP_PROTO(unsigned int state, unsigned int cpu_id), + + TP_ARGS(state, cpu_id) +); + +/* This file can get included multiple times, TRACE_HEADER_MULTI_READ at top */ +#ifndef _PWR_EVENT_AVOID_DOUBLE_DEFINING +#define _PWR_EVENT_AVOID_DOUBLE_DEFINING + +#define PWR_EVENT_EXIT -1 +#endif + +DEFINE_EVENT(cpu, cpu_frequency, + + TP_PROTO(unsigned int frequency, unsigned int cpu_id), + + TP_ARGS(frequency, cpu_id) +); + +TRACE_EVENT(machine_suspend, + + TP_PROTO(unsigned int state), + + TP_ARGS(state), + + TP_STRUCT__entry( + __field( u32, state ) + ), + + TP_fast_assign( + __entry->state = state; + ), + + TP_printk("state=%lu", (unsigned long)__entry->state) +); + +DECLARE_EVENT_CLASS(wakeup_source, + + TP_PROTO(const char *name, unsigned int state), + + TP_ARGS(name, state), + + TP_STRUCT__entry( + __string( name, name ) + __field( u64, state ) + ), + + TP_fast_assign( + __assign_str(name, name); + __entry->state = state; + ), + + TP_printk("%s state=0x%lx", __get_str(name), + (unsigned long)__entry->state) +); + +DEFINE_EVENT(wakeup_source, wakeup_source_activate, + + TP_PROTO(const char *name, unsigned int state), + + TP_ARGS(name, state) +); + +DEFINE_EVENT(wakeup_source, wakeup_source_deactivate, + + TP_PROTO(const char *name, unsigned int state), + + TP_ARGS(name, state) +); + +#ifdef CONFIG_EVENT_POWER_TRACING_DEPRECATED + +/* + * The power events are used for cpuidle & suspend (power_start, power_end) + * and for cpufreq (power_frequency) + */ +DECLARE_EVENT_CLASS(power, + + TP_PROTO(unsigned int type, unsigned int state, unsigned int cpu_id), + + TP_ARGS(type, state, cpu_id), + + TP_STRUCT__entry( + __field( u64, type ) + __field( u64, state ) + __field( u64, cpu_id ) + ), + + TP_fast_assign( + __entry->type = type; + __entry->state = state; + __entry->cpu_id = cpu_id; + ), + + TP_printk("type=%lu state=%lu cpu_id=%lu", (unsigned long)__entry->type, + (unsigned long)__entry->state, (unsigned long)__entry->cpu_id) +); + +DEFINE_EVENT(power, power_start, + + TP_PROTO(unsigned int type, unsigned int state, unsigned int cpu_id), + + TP_ARGS(type, state, cpu_id) +); + +DEFINE_EVENT(power, power_frequency, + + TP_PROTO(unsigned int type, unsigned int state, unsigned int cpu_id), + + TP_ARGS(type, state, cpu_id) +); + +TRACE_EVENT(power_end, + + TP_PROTO(unsigned int cpu_id), + + TP_ARGS(cpu_id), + + TP_STRUCT__entry( + __field( u64, cpu_id ) + ), + + TP_fast_assign( + __entry->cpu_id = cpu_id; + ), + + TP_printk("cpu_id=%lu", (unsigned long)__entry->cpu_id) + +); + +/* Deprecated dummy functions must be protected against multi-declartion */ +#ifndef _PWR_EVENT_AVOID_DOUBLE_DEFINING_DEPRECATED +#define _PWR_EVENT_AVOID_DOUBLE_DEFINING_DEPRECATED + +enum { + POWER_NONE = 0, + POWER_CSTATE = 1, + POWER_PSTATE = 2, +}; +#endif /* _PWR_EVENT_AVOID_DOUBLE_DEFINING_DEPRECATED */ + +#else /* CONFIG_EVENT_POWER_TRACING_DEPRECATED */ + +#ifndef _PWR_EVENT_AVOID_DOUBLE_DEFINING_DEPRECATED +#define _PWR_EVENT_AVOID_DOUBLE_DEFINING_DEPRECATED +enum { + POWER_NONE = 0, + POWER_CSTATE = 1, + POWER_PSTATE = 2, +}; + +/* These dummy declaration have to be ripped out when the deprecated + events get removed */ +static inline void trace_power_start(u64 type, u64 state, u64 cpuid) {}; +static inline void trace_power_end(u64 cpuid) {}; +static inline void trace_power_start_rcuidle(u64 type, u64 state, u64 cpuid) {}; +static inline void trace_power_end_rcuidle(u64 cpuid) {}; +static inline void trace_power_frequency(u64 type, u64 state, u64 cpuid) {}; +#endif /* _PWR_EVENT_AVOID_DOUBLE_DEFINING_DEPRECATED */ + +#endif /* CONFIG_EVENT_POWER_TRACING_DEPRECATED */ + +/* + * The clock events are used for clock enable/disable and for + * clock rate change + */ +DECLARE_EVENT_CLASS(clock, + + TP_PROTO(const char *name, unsigned int state, unsigned int cpu_id), + + TP_ARGS(name, state, cpu_id), + + TP_STRUCT__entry( + __string( name, name ) + __field( u64, state ) + __field( u64, cpu_id ) + ), + + TP_fast_assign( + __assign_str(name, name); + __entry->state = state; + __entry->cpu_id = cpu_id; + ), + + TP_printk("%s state=%lu cpu_id=%lu", __get_str(name), + (unsigned long)__entry->state, (unsigned long)__entry->cpu_id) +); + +DEFINE_EVENT(clock, clock_enable, + + TP_PROTO(const char *name, unsigned int state, unsigned int cpu_id), + + TP_ARGS(name, state, cpu_id) +); + +DEFINE_EVENT(clock, clock_disable, + + TP_PROTO(const char *name, unsigned int state, unsigned int cpu_id), + + TP_ARGS(name, state, cpu_id) +); + +DEFINE_EVENT(clock, clock_set_rate, + + TP_PROTO(const char *name, unsigned int state, unsigned int cpu_id), + + TP_ARGS(name, state, cpu_id) +); + +/* + * The power domain events are used for power domains transitions + */ +DECLARE_EVENT_CLASS(power_domain, + + TP_PROTO(const char *name, unsigned int state, unsigned int cpu_id), + + TP_ARGS(name, state, cpu_id), + + TP_STRUCT__entry( + __string( name, name ) + __field( u64, state ) + __field( u64, cpu_id ) + ), + + TP_fast_assign( + __assign_str(name, name); + __entry->state = state; + __entry->cpu_id = cpu_id; +), + + TP_printk("%s state=%lu cpu_id=%lu", __get_str(name), + (unsigned long)__entry->state, (unsigned long)__entry->cpu_id) +); + +DEFINE_EVENT(power_domain, power_domain_target, + + TP_PROTO(const char *name, unsigned int state, unsigned int cpu_id), + + TP_ARGS(name, state, cpu_id) +); +#endif /* _TRACE_POWER_H */ + +/* This part must be outside protection */ +#include --- linux-3.11.0.orig/ubuntu/lttng-modules/instrumentation/events/mainline/ext4.h +++ linux-3.11.0/ubuntu/lttng-modules/instrumentation/events/mainline/ext4.h @@ -0,0 +1,2061 @@ +#undef TRACE_SYSTEM +#define TRACE_SYSTEM ext4 + +#if !defined(_TRACE_EXT4_H) || defined(TRACE_HEADER_MULTI_READ) +#define _TRACE_EXT4_H + +#include +#include + +struct ext4_allocation_context; +struct ext4_allocation_request; +struct ext4_extent; +struct ext4_prealloc_space; +struct ext4_inode_info; +struct mpage_da_data; +struct ext4_map_blocks; +struct ext4_extent; + +#define EXT4_I(inode) (container_of(inode, struct ext4_inode_info, vfs_inode)) + +TRACE_EVENT(ext4_free_inode, + TP_PROTO(struct inode *inode), + + TP_ARGS(inode), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( uid_t, uid ) + __field( gid_t, gid ) + __field( __u64, blocks ) + __field( __u16, mode ) + ), + + TP_fast_assign( + __entry->dev = inode->i_sb->s_dev; + __entry->ino = inode->i_ino; + __entry->uid = i_uid_read(inode); + __entry->gid = i_gid_read(inode); + __entry->blocks = inode->i_blocks; + __entry->mode = inode->i_mode; + ), + + TP_printk("dev %d,%d ino %lu mode 0%o uid %u gid %u blocks %llu", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, __entry->mode, + __entry->uid, __entry->gid, __entry->blocks) +); + +TRACE_EVENT(ext4_request_inode, + TP_PROTO(struct inode *dir, int mode), + + TP_ARGS(dir, mode), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, dir ) + __field( __u16, mode ) + ), + + TP_fast_assign( + __entry->dev = dir->i_sb->s_dev; + __entry->dir = dir->i_ino; + __entry->mode = mode; + ), + + TP_printk("dev %d,%d dir %lu mode 0%o", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->dir, __entry->mode) +); + +TRACE_EVENT(ext4_allocate_inode, + TP_PROTO(struct inode *inode, struct inode *dir, int mode), + + TP_ARGS(inode, dir, mode), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( ino_t, dir ) + __field( __u16, mode ) + ), + + TP_fast_assign( + __entry->dev = inode->i_sb->s_dev; + __entry->ino = inode->i_ino; + __entry->dir = dir->i_ino; + __entry->mode = mode; + ), + + TP_printk("dev %d,%d ino %lu dir %lu mode 0%o", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + (unsigned long) __entry->dir, __entry->mode) +); + +TRACE_EVENT(ext4_evict_inode, + TP_PROTO(struct inode *inode), + + TP_ARGS(inode), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( int, nlink ) + ), + + TP_fast_assign( + __entry->dev = inode->i_sb->s_dev; + __entry->ino = inode->i_ino; + __entry->nlink = inode->i_nlink; + ), + + TP_printk("dev %d,%d ino %lu nlink %d", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, __entry->nlink) +); + +TRACE_EVENT(ext4_drop_inode, + TP_PROTO(struct inode *inode, int drop), + + TP_ARGS(inode, drop), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( int, drop ) + ), + + TP_fast_assign( + __entry->dev = inode->i_sb->s_dev; + __entry->ino = inode->i_ino; + __entry->drop = drop; + ), + + TP_printk("dev %d,%d ino %lu drop %d", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, __entry->drop) +); + +TRACE_EVENT(ext4_mark_inode_dirty, + TP_PROTO(struct inode *inode, unsigned long IP), + + TP_ARGS(inode, IP), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field(unsigned long, ip ) + ), + + TP_fast_assign( + __entry->dev = inode->i_sb->s_dev; + __entry->ino = inode->i_ino; + __entry->ip = IP; + ), + + TP_printk("dev %d,%d ino %lu caller %pF", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, (void *)__entry->ip) +); + +TRACE_EVENT(ext4_begin_ordered_truncate, + TP_PROTO(struct inode *inode, loff_t new_size), + + TP_ARGS(inode, new_size), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( loff_t, new_size ) + ), + + TP_fast_assign( + __entry->dev = inode->i_sb->s_dev; + __entry->ino = inode->i_ino; + __entry->new_size = new_size; + ), + + TP_printk("dev %d,%d ino %lu new_size %lld", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + __entry->new_size) +); + +DECLARE_EVENT_CLASS(ext4__write_begin, + + TP_PROTO(struct inode *inode, loff_t pos, unsigned int len, + unsigned int flags), + + TP_ARGS(inode, pos, len, flags), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( loff_t, pos ) + __field( unsigned int, len ) + __field( unsigned int, flags ) + ), + + TP_fast_assign( + __entry->dev = inode->i_sb->s_dev; + __entry->ino = inode->i_ino; + __entry->pos = pos; + __entry->len = len; + __entry->flags = flags; + ), + + TP_printk("dev %d,%d ino %lu pos %lld len %u flags %u", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + __entry->pos, __entry->len, __entry->flags) +); + +DEFINE_EVENT(ext4__write_begin, ext4_write_begin, + + TP_PROTO(struct inode *inode, loff_t pos, unsigned int len, + unsigned int flags), + + TP_ARGS(inode, pos, len, flags) +); + +DEFINE_EVENT(ext4__write_begin, ext4_da_write_begin, + + TP_PROTO(struct inode *inode, loff_t pos, unsigned int len, + unsigned int flags), + + TP_ARGS(inode, pos, len, flags) +); + +DECLARE_EVENT_CLASS(ext4__write_end, + TP_PROTO(struct inode *inode, loff_t pos, unsigned int len, + unsigned int copied), + + TP_ARGS(inode, pos, len, copied), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( loff_t, pos ) + __field( unsigned int, len ) + __field( unsigned int, copied ) + ), + + TP_fast_assign( + __entry->dev = inode->i_sb->s_dev; + __entry->ino = inode->i_ino; + __entry->pos = pos; + __entry->len = len; + __entry->copied = copied; + ), + + TP_printk("dev %d,%d ino %lu pos %lld len %u copied %u", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + __entry->pos, __entry->len, __entry->copied) +); + +DEFINE_EVENT(ext4__write_end, ext4_ordered_write_end, + + TP_PROTO(struct inode *inode, loff_t pos, unsigned int len, + unsigned int copied), + + TP_ARGS(inode, pos, len, copied) +); + +DEFINE_EVENT(ext4__write_end, ext4_writeback_write_end, + + TP_PROTO(struct inode *inode, loff_t pos, unsigned int len, + unsigned int copied), + + TP_ARGS(inode, pos, len, copied) +); + +DEFINE_EVENT(ext4__write_end, ext4_journalled_write_end, + + TP_PROTO(struct inode *inode, loff_t pos, unsigned int len, + unsigned int copied), + + TP_ARGS(inode, pos, len, copied) +); + +DEFINE_EVENT(ext4__write_end, ext4_da_write_end, + + TP_PROTO(struct inode *inode, loff_t pos, unsigned int len, + unsigned int copied), + + TP_ARGS(inode, pos, len, copied) +); + +TRACE_EVENT(ext4_da_writepages, + TP_PROTO(struct inode *inode, struct writeback_control *wbc), + + TP_ARGS(inode, wbc), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( long, nr_to_write ) + __field( long, pages_skipped ) + __field( loff_t, range_start ) + __field( loff_t, range_end ) + __field( pgoff_t, writeback_index ) + __field( int, sync_mode ) + __field( char, for_kupdate ) + __field( char, range_cyclic ) + ), + + TP_fast_assign( + __entry->dev = inode->i_sb->s_dev; + __entry->ino = inode->i_ino; + __entry->nr_to_write = wbc->nr_to_write; + __entry->pages_skipped = wbc->pages_skipped; + __entry->range_start = wbc->range_start; + __entry->range_end = wbc->range_end; + __entry->writeback_index = inode->i_mapping->writeback_index; + __entry->sync_mode = wbc->sync_mode; + __entry->for_kupdate = wbc->for_kupdate; + __entry->range_cyclic = wbc->range_cyclic; + ), + + TP_printk("dev %d,%d ino %lu nr_to_write %ld pages_skipped %ld " + "range_start %lld range_end %lld sync_mode %d " + "for_kupdate %d range_cyclic %d writeback_index %lu", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, __entry->nr_to_write, + __entry->pages_skipped, __entry->range_start, + __entry->range_end, __entry->sync_mode, + __entry->for_kupdate, __entry->range_cyclic, + (unsigned long) __entry->writeback_index) +); + +TRACE_EVENT(ext4_da_write_pages, + TP_PROTO(struct inode *inode, struct mpage_da_data *mpd), + + TP_ARGS(inode, mpd), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( __u64, b_blocknr ) + __field( __u32, b_size ) + __field( __u32, b_state ) + __field( unsigned long, first_page ) + __field( int, io_done ) + __field( int, pages_written ) + __field( int, sync_mode ) + ), + + TP_fast_assign( + __entry->dev = inode->i_sb->s_dev; + __entry->ino = inode->i_ino; + __entry->b_blocknr = mpd->b_blocknr; + __entry->b_size = mpd->b_size; + __entry->b_state = mpd->b_state; + __entry->first_page = mpd->first_page; + __entry->io_done = mpd->io_done; + __entry->pages_written = mpd->pages_written; + __entry->sync_mode = mpd->wbc->sync_mode; + ), + + TP_printk("dev %d,%d ino %lu b_blocknr %llu b_size %u b_state 0x%04x " + "first_page %lu io_done %d pages_written %d sync_mode %d", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + __entry->b_blocknr, __entry->b_size, + __entry->b_state, __entry->first_page, + __entry->io_done, __entry->pages_written, + __entry->sync_mode + ) +); + +TRACE_EVENT(ext4_da_writepages_result, + TP_PROTO(struct inode *inode, struct writeback_control *wbc, + int ret, int pages_written), + + TP_ARGS(inode, wbc, ret, pages_written), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( int, ret ) + __field( int, pages_written ) + __field( long, pages_skipped ) + __field( pgoff_t, writeback_index ) + __field( int, sync_mode ) + ), + + TP_fast_assign( + __entry->dev = inode->i_sb->s_dev; + __entry->ino = inode->i_ino; + __entry->ret = ret; + __entry->pages_written = pages_written; + __entry->pages_skipped = wbc->pages_skipped; + __entry->writeback_index = inode->i_mapping->writeback_index; + __entry->sync_mode = wbc->sync_mode; + ), + + TP_printk("dev %d,%d ino %lu ret %d pages_written %d pages_skipped %ld " + "sync_mode %d writeback_index %lu", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, __entry->ret, + __entry->pages_written, __entry->pages_skipped, + __entry->sync_mode, + (unsigned long) __entry->writeback_index) +); + +DECLARE_EVENT_CLASS(ext4__page_op, + TP_PROTO(struct page *page), + + TP_ARGS(page), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( pgoff_t, index ) + + ), + + TP_fast_assign( + __entry->dev = page->mapping->host->i_sb->s_dev; + __entry->ino = page->mapping->host->i_ino; + __entry->index = page->index; + ), + + TP_printk("dev %d,%d ino %lu page_index %lu", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + (unsigned long) __entry->index) +); + +DEFINE_EVENT(ext4__page_op, ext4_writepage, + + TP_PROTO(struct page *page), + + TP_ARGS(page) +); + +DEFINE_EVENT(ext4__page_op, ext4_readpage, + + TP_PROTO(struct page *page), + + TP_ARGS(page) +); + +DEFINE_EVENT(ext4__page_op, ext4_releasepage, + + TP_PROTO(struct page *page), + + TP_ARGS(page) +); + +TRACE_EVENT(ext4_invalidatepage, + TP_PROTO(struct page *page, unsigned long offset), + + TP_ARGS(page, offset), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( pgoff_t, index ) + __field( unsigned long, offset ) + + ), + + TP_fast_assign( + __entry->dev = page->mapping->host->i_sb->s_dev; + __entry->ino = page->mapping->host->i_ino; + __entry->index = page->index; + __entry->offset = offset; + ), + + TP_printk("dev %d,%d ino %lu page_index %lu offset %lu", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + (unsigned long) __entry->index, __entry->offset) +); + +TRACE_EVENT(ext4_discard_blocks, + TP_PROTO(struct super_block *sb, unsigned long long blk, + unsigned long long count), + + TP_ARGS(sb, blk, count), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( __u64, blk ) + __field( __u64, count ) + + ), + + TP_fast_assign( + __entry->dev = sb->s_dev; + __entry->blk = blk; + __entry->count = count; + ), + + TP_printk("dev %d,%d blk %llu count %llu", + MAJOR(__entry->dev), MINOR(__entry->dev), + __entry->blk, __entry->count) +); + +DECLARE_EVENT_CLASS(ext4__mb_new_pa, + TP_PROTO(struct ext4_allocation_context *ac, + struct ext4_prealloc_space *pa), + + TP_ARGS(ac, pa), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( __u64, pa_pstart ) + __field( __u64, pa_lstart ) + __field( __u32, pa_len ) + + ), + + TP_fast_assign( + __entry->dev = ac->ac_sb->s_dev; + __entry->ino = ac->ac_inode->i_ino; + __entry->pa_pstart = pa->pa_pstart; + __entry->pa_lstart = pa->pa_lstart; + __entry->pa_len = pa->pa_len; + ), + + TP_printk("dev %d,%d ino %lu pstart %llu len %u lstart %llu", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + __entry->pa_pstart, __entry->pa_len, __entry->pa_lstart) +); + +DEFINE_EVENT(ext4__mb_new_pa, ext4_mb_new_inode_pa, + + TP_PROTO(struct ext4_allocation_context *ac, + struct ext4_prealloc_space *pa), + + TP_ARGS(ac, pa) +); + +DEFINE_EVENT(ext4__mb_new_pa, ext4_mb_new_group_pa, + + TP_PROTO(struct ext4_allocation_context *ac, + struct ext4_prealloc_space *pa), + + TP_ARGS(ac, pa) +); + +TRACE_EVENT(ext4_mb_release_inode_pa, + TP_PROTO(struct ext4_prealloc_space *pa, + unsigned long long block, unsigned int count), + + TP_ARGS(pa, block, count), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( __u64, block ) + __field( __u32, count ) + + ), + + TP_fast_assign( + __entry->dev = pa->pa_inode->i_sb->s_dev; + __entry->ino = pa->pa_inode->i_ino; + __entry->block = block; + __entry->count = count; + ), + + TP_printk("dev %d,%d ino %lu block %llu count %u", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + __entry->block, __entry->count) +); + +TRACE_EVENT(ext4_mb_release_group_pa, + TP_PROTO(struct super_block *sb, struct ext4_prealloc_space *pa), + + TP_ARGS(sb, pa), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( __u64, pa_pstart ) + __field( __u32, pa_len ) + + ), + + TP_fast_assign( + __entry->dev = sb->s_dev; + __entry->pa_pstart = pa->pa_pstart; + __entry->pa_len = pa->pa_len; + ), + + TP_printk("dev %d,%d pstart %llu len %u", + MAJOR(__entry->dev), MINOR(__entry->dev), + __entry->pa_pstart, __entry->pa_len) +); + +TRACE_EVENT(ext4_discard_preallocations, + TP_PROTO(struct inode *inode), + + TP_ARGS(inode), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + + ), + + TP_fast_assign( + __entry->dev = inode->i_sb->s_dev; + __entry->ino = inode->i_ino; + ), + + TP_printk("dev %d,%d ino %lu", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino) +); + +TRACE_EVENT(ext4_mb_discard_preallocations, + TP_PROTO(struct super_block *sb, int needed), + + TP_ARGS(sb, needed), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( int, needed ) + + ), + + TP_fast_assign( + __entry->dev = sb->s_dev; + __entry->needed = needed; + ), + + TP_printk("dev %d,%d needed %d", + MAJOR(__entry->dev), MINOR(__entry->dev), + __entry->needed) +); + +TRACE_EVENT(ext4_request_blocks, + TP_PROTO(struct ext4_allocation_request *ar), + + TP_ARGS(ar), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( unsigned int, len ) + __field( __u32, logical ) + __field( __u32, lleft ) + __field( __u32, lright ) + __field( __u64, goal ) + __field( __u64, pleft ) + __field( __u64, pright ) + __field( unsigned int, flags ) + ), + + TP_fast_assign( + __entry->dev = ar->inode->i_sb->s_dev; + __entry->ino = ar->inode->i_ino; + __entry->len = ar->len; + __entry->logical = ar->logical; + __entry->goal = ar->goal; + __entry->lleft = ar->lleft; + __entry->lright = ar->lright; + __entry->pleft = ar->pleft; + __entry->pright = ar->pright; + __entry->flags = ar->flags; + ), + + TP_printk("dev %d,%d ino %lu flags %u len %u lblk %u goal %llu " + "lleft %u lright %u pleft %llu pright %llu ", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, __entry->flags, + __entry->len, __entry->logical, __entry->goal, + __entry->lleft, __entry->lright, __entry->pleft, + __entry->pright) +); + +TRACE_EVENT(ext4_allocate_blocks, + TP_PROTO(struct ext4_allocation_request *ar, unsigned long long block), + + TP_ARGS(ar, block), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( __u64, block ) + __field( unsigned int, len ) + __field( __u32, logical ) + __field( __u32, lleft ) + __field( __u32, lright ) + __field( __u64, goal ) + __field( __u64, pleft ) + __field( __u64, pright ) + __field( unsigned int, flags ) + ), + + TP_fast_assign( + __entry->dev = ar->inode->i_sb->s_dev; + __entry->ino = ar->inode->i_ino; + __entry->block = block; + __entry->len = ar->len; + __entry->logical = ar->logical; + __entry->goal = ar->goal; + __entry->lleft = ar->lleft; + __entry->lright = ar->lright; + __entry->pleft = ar->pleft; + __entry->pright = ar->pright; + __entry->flags = ar->flags; + ), + + TP_printk("dev %d,%d ino %lu flags %u len %u block %llu lblk %u " + "goal %llu lleft %u lright %u pleft %llu pright %llu", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, __entry->flags, + __entry->len, __entry->block, __entry->logical, + __entry->goal, __entry->lleft, __entry->lright, + __entry->pleft, __entry->pright) +); + +TRACE_EVENT(ext4_free_blocks, + TP_PROTO(struct inode *inode, __u64 block, unsigned long count, + int flags), + + TP_ARGS(inode, block, count, flags), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( __u64, block ) + __field( unsigned long, count ) + __field( int, flags ) + __field( __u16, mode ) + ), + + TP_fast_assign( + __entry->dev = inode->i_sb->s_dev; + __entry->ino = inode->i_ino; + __entry->block = block; + __entry->count = count; + __entry->flags = flags; + __entry->mode = inode->i_mode; + ), + + TP_printk("dev %d,%d ino %lu mode 0%o block %llu count %lu flags %d", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + __entry->mode, __entry->block, __entry->count, + __entry->flags) +); + +TRACE_EVENT(ext4_sync_file_enter, + TP_PROTO(struct file *file, int datasync), + + TP_ARGS(file, datasync), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( ino_t, parent ) + __field( int, datasync ) + ), + + TP_fast_assign( + struct dentry *dentry = file->f_path.dentry; + + __entry->dev = dentry->d_inode->i_sb->s_dev; + __entry->ino = dentry->d_inode->i_ino; + __entry->datasync = datasync; + __entry->parent = dentry->d_parent->d_inode->i_ino; + ), + + TP_printk("dev %d,%d ino %lu parent %lu datasync %d ", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + (unsigned long) __entry->parent, __entry->datasync) +); + +TRACE_EVENT(ext4_sync_file_exit, + TP_PROTO(struct inode *inode, int ret), + + TP_ARGS(inode, ret), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( int, ret ) + ), + + TP_fast_assign( + __entry->dev = inode->i_sb->s_dev; + __entry->ino = inode->i_ino; + __entry->ret = ret; + ), + + TP_printk("dev %d,%d ino %lu ret %d", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + __entry->ret) +); + +TRACE_EVENT(ext4_sync_fs, + TP_PROTO(struct super_block *sb, int wait), + + TP_ARGS(sb, wait), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( int, wait ) + + ), + + TP_fast_assign( + __entry->dev = sb->s_dev; + __entry->wait = wait; + ), + + TP_printk("dev %d,%d wait %d", + MAJOR(__entry->dev), MINOR(__entry->dev), + __entry->wait) +); + +TRACE_EVENT(ext4_alloc_da_blocks, + TP_PROTO(struct inode *inode), + + TP_ARGS(inode), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( unsigned int, data_blocks ) + __field( unsigned int, meta_blocks ) + ), + + TP_fast_assign( + __entry->dev = inode->i_sb->s_dev; + __entry->ino = inode->i_ino; + __entry->data_blocks = EXT4_I(inode)->i_reserved_data_blocks; + __entry->meta_blocks = EXT4_I(inode)->i_reserved_meta_blocks; + ), + + TP_printk("dev %d,%d ino %lu data_blocks %u meta_blocks %u", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + __entry->data_blocks, __entry->meta_blocks) +); + +TRACE_EVENT(ext4_mballoc_alloc, + TP_PROTO(struct ext4_allocation_context *ac), + + TP_ARGS(ac), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( __u32, orig_logical ) + __field( int, orig_start ) + __field( __u32, orig_group ) + __field( int, orig_len ) + __field( __u32, goal_logical ) + __field( int, goal_start ) + __field( __u32, goal_group ) + __field( int, goal_len ) + __field( __u32, result_logical ) + __field( int, result_start ) + __field( __u32, result_group ) + __field( int, result_len ) + __field( __u16, found ) + __field( __u16, groups ) + __field( __u16, buddy ) + __field( __u16, flags ) + __field( __u16, tail ) + __field( __u8, cr ) + ), + + TP_fast_assign( + __entry->dev = ac->ac_inode->i_sb->s_dev; + __entry->ino = ac->ac_inode->i_ino; + __entry->orig_logical = ac->ac_o_ex.fe_logical; + __entry->orig_start = ac->ac_o_ex.fe_start; + __entry->orig_group = ac->ac_o_ex.fe_group; + __entry->orig_len = ac->ac_o_ex.fe_len; + __entry->goal_logical = ac->ac_g_ex.fe_logical; + __entry->goal_start = ac->ac_g_ex.fe_start; + __entry->goal_group = ac->ac_g_ex.fe_group; + __entry->goal_len = ac->ac_g_ex.fe_len; + __entry->result_logical = ac->ac_f_ex.fe_logical; + __entry->result_start = ac->ac_f_ex.fe_start; + __entry->result_group = ac->ac_f_ex.fe_group; + __entry->result_len = ac->ac_f_ex.fe_len; + __entry->found = ac->ac_found; + __entry->flags = ac->ac_flags; + __entry->groups = ac->ac_groups_scanned; + __entry->buddy = ac->ac_buddy; + __entry->tail = ac->ac_tail; + __entry->cr = ac->ac_criteria; + ), + + TP_printk("dev %d,%d inode %lu orig %u/%d/%u@%u goal %u/%d/%u@%u " + "result %u/%d/%u@%u blks %u grps %u cr %u flags 0x%04x " + "tail %u broken %u", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + __entry->orig_group, __entry->orig_start, + __entry->orig_len, __entry->orig_logical, + __entry->goal_group, __entry->goal_start, + __entry->goal_len, __entry->goal_logical, + __entry->result_group, __entry->result_start, + __entry->result_len, __entry->result_logical, + __entry->found, __entry->groups, __entry->cr, + __entry->flags, __entry->tail, + __entry->buddy ? 1 << __entry->buddy : 0) +); + +TRACE_EVENT(ext4_mballoc_prealloc, + TP_PROTO(struct ext4_allocation_context *ac), + + TP_ARGS(ac), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( __u32, orig_logical ) + __field( int, orig_start ) + __field( __u32, orig_group ) + __field( int, orig_len ) + __field( __u32, result_logical ) + __field( int, result_start ) + __field( __u32, result_group ) + __field( int, result_len ) + ), + + TP_fast_assign( + __entry->dev = ac->ac_inode->i_sb->s_dev; + __entry->ino = ac->ac_inode->i_ino; + __entry->orig_logical = ac->ac_o_ex.fe_logical; + __entry->orig_start = ac->ac_o_ex.fe_start; + __entry->orig_group = ac->ac_o_ex.fe_group; + __entry->orig_len = ac->ac_o_ex.fe_len; + __entry->result_logical = ac->ac_b_ex.fe_logical; + __entry->result_start = ac->ac_b_ex.fe_start; + __entry->result_group = ac->ac_b_ex.fe_group; + __entry->result_len = ac->ac_b_ex.fe_len; + ), + + TP_printk("dev %d,%d inode %lu orig %u/%d/%u@%u result %u/%d/%u@%u", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + __entry->orig_group, __entry->orig_start, + __entry->orig_len, __entry->orig_logical, + __entry->result_group, __entry->result_start, + __entry->result_len, __entry->result_logical) +); + +DECLARE_EVENT_CLASS(ext4__mballoc, + TP_PROTO(struct super_block *sb, + struct inode *inode, + ext4_group_t group, + ext4_grpblk_t start, + ext4_grpblk_t len), + + TP_ARGS(sb, inode, group, start, len), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( int, result_start ) + __field( __u32, result_group ) + __field( int, result_len ) + ), + + TP_fast_assign( + __entry->dev = sb->s_dev; + __entry->ino = inode ? inode->i_ino : 0; + __entry->result_start = start; + __entry->result_group = group; + __entry->result_len = len; + ), + + TP_printk("dev %d,%d inode %lu extent %u/%d/%d ", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + __entry->result_group, __entry->result_start, + __entry->result_len) +); + +DEFINE_EVENT(ext4__mballoc, ext4_mballoc_discard, + + TP_PROTO(struct super_block *sb, + struct inode *inode, + ext4_group_t group, + ext4_grpblk_t start, + ext4_grpblk_t len), + + TP_ARGS(sb, inode, group, start, len) +); + +DEFINE_EVENT(ext4__mballoc, ext4_mballoc_free, + + TP_PROTO(struct super_block *sb, + struct inode *inode, + ext4_group_t group, + ext4_grpblk_t start, + ext4_grpblk_t len), + + TP_ARGS(sb, inode, group, start, len) +); + +TRACE_EVENT(ext4_forget, + TP_PROTO(struct inode *inode, int is_metadata, __u64 block), + + TP_ARGS(inode, is_metadata, block), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( __u64, block ) + __field( int, is_metadata ) + __field( __u16, mode ) + ), + + TP_fast_assign( + __entry->dev = inode->i_sb->s_dev; + __entry->ino = inode->i_ino; + __entry->block = block; + __entry->is_metadata = is_metadata; + __entry->mode = inode->i_mode; + ), + + TP_printk("dev %d,%d ino %lu mode 0%o is_metadata %d block %llu", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + __entry->mode, __entry->is_metadata, __entry->block) +); + +TRACE_EVENT(ext4_da_update_reserve_space, + TP_PROTO(struct inode *inode, int used_blocks, int quota_claim), + + TP_ARGS(inode, used_blocks, quota_claim), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( __u64, i_blocks ) + __field( int, used_blocks ) + __field( int, reserved_data_blocks ) + __field( int, reserved_meta_blocks ) + __field( int, allocated_meta_blocks ) + __field( int, quota_claim ) + __field( __u16, mode ) + ), + + TP_fast_assign( + __entry->dev = inode->i_sb->s_dev; + __entry->ino = inode->i_ino; + __entry->i_blocks = inode->i_blocks; + __entry->used_blocks = used_blocks; + __entry->reserved_data_blocks = + EXT4_I(inode)->i_reserved_data_blocks; + __entry->reserved_meta_blocks = + EXT4_I(inode)->i_reserved_meta_blocks; + __entry->allocated_meta_blocks = + EXT4_I(inode)->i_allocated_meta_blocks; + __entry->quota_claim = quota_claim; + __entry->mode = inode->i_mode; + ), + + TP_printk("dev %d,%d ino %lu mode 0%o i_blocks %llu used_blocks %d " + "reserved_data_blocks %d reserved_meta_blocks %d " + "allocated_meta_blocks %d quota_claim %d", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + __entry->mode, __entry->i_blocks, + __entry->used_blocks, __entry->reserved_data_blocks, + __entry->reserved_meta_blocks, __entry->allocated_meta_blocks, + __entry->quota_claim) +); + +TRACE_EVENT(ext4_da_reserve_space, + TP_PROTO(struct inode *inode, int md_needed), + + TP_ARGS(inode, md_needed), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( __u64, i_blocks ) + __field( int, md_needed ) + __field( int, reserved_data_blocks ) + __field( int, reserved_meta_blocks ) + __field( __u16, mode ) + ), + + TP_fast_assign( + __entry->dev = inode->i_sb->s_dev; + __entry->ino = inode->i_ino; + __entry->i_blocks = inode->i_blocks; + __entry->md_needed = md_needed; + __entry->reserved_data_blocks = EXT4_I(inode)->i_reserved_data_blocks; + __entry->reserved_meta_blocks = EXT4_I(inode)->i_reserved_meta_blocks; + __entry->mode = inode->i_mode; + ), + + TP_printk("dev %d,%d ino %lu mode 0%o i_blocks %llu md_needed %d " + "reserved_data_blocks %d reserved_meta_blocks %d", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + __entry->mode, __entry->i_blocks, + __entry->md_needed, __entry->reserved_data_blocks, + __entry->reserved_meta_blocks) +); + +TRACE_EVENT(ext4_da_release_space, + TP_PROTO(struct inode *inode, int freed_blocks), + + TP_ARGS(inode, freed_blocks), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( __u64, i_blocks ) + __field( int, freed_blocks ) + __field( int, reserved_data_blocks ) + __field( int, reserved_meta_blocks ) + __field( int, allocated_meta_blocks ) + __field( __u16, mode ) + ), + + TP_fast_assign( + __entry->dev = inode->i_sb->s_dev; + __entry->ino = inode->i_ino; + __entry->i_blocks = inode->i_blocks; + __entry->freed_blocks = freed_blocks; + __entry->reserved_data_blocks = EXT4_I(inode)->i_reserved_data_blocks; + __entry->reserved_meta_blocks = EXT4_I(inode)->i_reserved_meta_blocks; + __entry->allocated_meta_blocks = EXT4_I(inode)->i_allocated_meta_blocks; + __entry->mode = inode->i_mode; + ), + + TP_printk("dev %d,%d ino %lu mode 0%o i_blocks %llu freed_blocks %d " + "reserved_data_blocks %d reserved_meta_blocks %d " + "allocated_meta_blocks %d", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + __entry->mode, __entry->i_blocks, + __entry->freed_blocks, __entry->reserved_data_blocks, + __entry->reserved_meta_blocks, __entry->allocated_meta_blocks) +); + +DECLARE_EVENT_CLASS(ext4__bitmap_load, + TP_PROTO(struct super_block *sb, unsigned long group), + + TP_ARGS(sb, group), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( __u32, group ) + + ), + + TP_fast_assign( + __entry->dev = sb->s_dev; + __entry->group = group; + ), + + TP_printk("dev %d,%d group %u", + MAJOR(__entry->dev), MINOR(__entry->dev), + __entry->group) +); + +DEFINE_EVENT(ext4__bitmap_load, ext4_mb_bitmap_load, + + TP_PROTO(struct super_block *sb, unsigned long group), + + TP_ARGS(sb, group) +); + +DEFINE_EVENT(ext4__bitmap_load, ext4_mb_buddy_bitmap_load, + + TP_PROTO(struct super_block *sb, unsigned long group), + + TP_ARGS(sb, group) +); + +DEFINE_EVENT(ext4__bitmap_load, ext4_read_block_bitmap_load, + + TP_PROTO(struct super_block *sb, unsigned long group), + + TP_ARGS(sb, group) +); + +DEFINE_EVENT(ext4__bitmap_load, ext4_load_inode_bitmap, + + TP_PROTO(struct super_block *sb, unsigned long group), + + TP_ARGS(sb, group) +); + +TRACE_EVENT(ext4_direct_IO_enter, + TP_PROTO(struct inode *inode, loff_t offset, unsigned long len, int rw), + + TP_ARGS(inode, offset, len, rw), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( loff_t, pos ) + __field( unsigned long, len ) + __field( int, rw ) + ), + + TP_fast_assign( + __entry->dev = inode->i_sb->s_dev; + __entry->ino = inode->i_ino; + __entry->pos = offset; + __entry->len = len; + __entry->rw = rw; + ), + + TP_printk("dev %d,%d ino %lu pos %lld len %lu rw %d", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + __entry->pos, __entry->len, __entry->rw) +); + +TRACE_EVENT(ext4_direct_IO_exit, + TP_PROTO(struct inode *inode, loff_t offset, unsigned long len, + int rw, int ret), + + TP_ARGS(inode, offset, len, rw, ret), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( loff_t, pos ) + __field( unsigned long, len ) + __field( int, rw ) + __field( int, ret ) + ), + + TP_fast_assign( + __entry->dev = inode->i_sb->s_dev; + __entry->ino = inode->i_ino; + __entry->pos = offset; + __entry->len = len; + __entry->rw = rw; + __entry->ret = ret; + ), + + TP_printk("dev %d,%d ino %lu pos %lld len %lu rw %d ret %d", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + __entry->pos, __entry->len, + __entry->rw, __entry->ret) +); + +TRACE_EVENT(ext4_fallocate_enter, + TP_PROTO(struct inode *inode, loff_t offset, loff_t len, int mode), + + TP_ARGS(inode, offset, len, mode), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( loff_t, pos ) + __field( loff_t, len ) + __field( int, mode ) + ), + + TP_fast_assign( + __entry->dev = inode->i_sb->s_dev; + __entry->ino = inode->i_ino; + __entry->pos = offset; + __entry->len = len; + __entry->mode = mode; + ), + + TP_printk("dev %d,%d ino %lu pos %lld len %lld mode %d", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, __entry->pos, + __entry->len, __entry->mode) +); + +TRACE_EVENT(ext4_fallocate_exit, + TP_PROTO(struct inode *inode, loff_t offset, + unsigned int max_blocks, int ret), + + TP_ARGS(inode, offset, max_blocks, ret), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( loff_t, pos ) + __field( unsigned int, blocks ) + __field( int, ret ) + ), + + TP_fast_assign( + __entry->dev = inode->i_sb->s_dev; + __entry->ino = inode->i_ino; + __entry->pos = offset; + __entry->blocks = max_blocks; + __entry->ret = ret; + ), + + TP_printk("dev %d,%d ino %lu pos %lld blocks %u ret %d", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + __entry->pos, __entry->blocks, + __entry->ret) +); + +TRACE_EVENT(ext4_unlink_enter, + TP_PROTO(struct inode *parent, struct dentry *dentry), + + TP_ARGS(parent, dentry), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( ino_t, parent ) + __field( loff_t, size ) + ), + + TP_fast_assign( + __entry->dev = dentry->d_inode->i_sb->s_dev; + __entry->ino = dentry->d_inode->i_ino; + __entry->parent = parent->i_ino; + __entry->size = dentry->d_inode->i_size; + ), + + TP_printk("dev %d,%d ino %lu size %lld parent %lu", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, __entry->size, + (unsigned long) __entry->parent) +); + +TRACE_EVENT(ext4_unlink_exit, + TP_PROTO(struct dentry *dentry, int ret), + + TP_ARGS(dentry, ret), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( int, ret ) + ), + + TP_fast_assign( + __entry->dev = dentry->d_inode->i_sb->s_dev; + __entry->ino = dentry->d_inode->i_ino; + __entry->ret = ret; + ), + + TP_printk("dev %d,%d ino %lu ret %d", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + __entry->ret) +); + +DECLARE_EVENT_CLASS(ext4__truncate, + TP_PROTO(struct inode *inode), + + TP_ARGS(inode), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( __u64, blocks ) + ), + + TP_fast_assign( + __entry->dev = inode->i_sb->s_dev; + __entry->ino = inode->i_ino; + __entry->blocks = inode->i_blocks; + ), + + TP_printk("dev %d,%d ino %lu blocks %llu", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, __entry->blocks) +); + +DEFINE_EVENT(ext4__truncate, ext4_truncate_enter, + + TP_PROTO(struct inode *inode), + + TP_ARGS(inode) +); + +DEFINE_EVENT(ext4__truncate, ext4_truncate_exit, + + TP_PROTO(struct inode *inode), + + TP_ARGS(inode) +); + +/* 'ux' is the uninitialized extent. */ +TRACE_EVENT(ext4_ext_convert_to_initialized_enter, + TP_PROTO(struct inode *inode, struct ext4_map_blocks *map, + struct ext4_extent *ux), + + TP_ARGS(inode, map, ux), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( ext4_lblk_t, m_lblk ) + __field( unsigned, m_len ) + __field( ext4_lblk_t, u_lblk ) + __field( unsigned, u_len ) + __field( ext4_fsblk_t, u_pblk ) + ), + + TP_fast_assign( + __entry->dev = inode->i_sb->s_dev; + __entry->ino = inode->i_ino; + __entry->m_lblk = map->m_lblk; + __entry->m_len = map->m_len; + __entry->u_lblk = le32_to_cpu(ux->ee_block); + __entry->u_len = ext4_ext_get_actual_len(ux); + __entry->u_pblk = ext4_ext_pblock(ux); + ), + + TP_printk("dev %d,%d ino %lu m_lblk %u m_len %u u_lblk %u u_len %u " + "u_pblk %llu", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + __entry->m_lblk, __entry->m_len, + __entry->u_lblk, __entry->u_len, __entry->u_pblk) +); + +/* + * 'ux' is the uninitialized extent. + * 'ix' is the initialized extent to which blocks are transferred. + */ +TRACE_EVENT(ext4_ext_convert_to_initialized_fastpath, + TP_PROTO(struct inode *inode, struct ext4_map_blocks *map, + struct ext4_extent *ux, struct ext4_extent *ix), + + TP_ARGS(inode, map, ux, ix), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( ext4_lblk_t, m_lblk ) + __field( unsigned, m_len ) + __field( ext4_lblk_t, u_lblk ) + __field( unsigned, u_len ) + __field( ext4_fsblk_t, u_pblk ) + __field( ext4_lblk_t, i_lblk ) + __field( unsigned, i_len ) + __field( ext4_fsblk_t, i_pblk ) + ), + + TP_fast_assign( + __entry->dev = inode->i_sb->s_dev; + __entry->ino = inode->i_ino; + __entry->m_lblk = map->m_lblk; + __entry->m_len = map->m_len; + __entry->u_lblk = le32_to_cpu(ux->ee_block); + __entry->u_len = ext4_ext_get_actual_len(ux); + __entry->u_pblk = ext4_ext_pblock(ux); + __entry->i_lblk = le32_to_cpu(ix->ee_block); + __entry->i_len = ext4_ext_get_actual_len(ix); + __entry->i_pblk = ext4_ext_pblock(ix); + ), + + TP_printk("dev %d,%d ino %lu m_lblk %u m_len %u " + "u_lblk %u u_len %u u_pblk %llu " + "i_lblk %u i_len %u i_pblk %llu ", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + __entry->m_lblk, __entry->m_len, + __entry->u_lblk, __entry->u_len, __entry->u_pblk, + __entry->i_lblk, __entry->i_len, __entry->i_pblk) +); + +DECLARE_EVENT_CLASS(ext4__map_blocks_enter, + TP_PROTO(struct inode *inode, ext4_lblk_t lblk, + unsigned int len, unsigned int flags), + + TP_ARGS(inode, lblk, len, flags), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( ext4_lblk_t, lblk ) + __field( unsigned int, len ) + __field( unsigned int, flags ) + ), + + TP_fast_assign( + __entry->dev = inode->i_sb->s_dev; + __entry->ino = inode->i_ino; + __entry->lblk = lblk; + __entry->len = len; + __entry->flags = flags; + ), + + TP_printk("dev %d,%d ino %lu lblk %u len %u flags %u", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + __entry->lblk, __entry->len, __entry->flags) +); + +DEFINE_EVENT(ext4__map_blocks_enter, ext4_ext_map_blocks_enter, + TP_PROTO(struct inode *inode, ext4_lblk_t lblk, + unsigned len, unsigned flags), + + TP_ARGS(inode, lblk, len, flags) +); + +DEFINE_EVENT(ext4__map_blocks_enter, ext4_ind_map_blocks_enter, + TP_PROTO(struct inode *inode, ext4_lblk_t lblk, + unsigned len, unsigned flags), + + TP_ARGS(inode, lblk, len, flags) +); + +DECLARE_EVENT_CLASS(ext4__map_blocks_exit, + TP_PROTO(struct inode *inode, ext4_lblk_t lblk, + ext4_fsblk_t pblk, unsigned int len, int ret), + + TP_ARGS(inode, lblk, pblk, len, ret), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( ext4_fsblk_t, pblk ) + __field( ext4_lblk_t, lblk ) + __field( unsigned int, len ) + __field( int, ret ) + ), + + TP_fast_assign( + __entry->dev = inode->i_sb->s_dev; + __entry->ino = inode->i_ino; + __entry->pblk = pblk; + __entry->lblk = lblk; + __entry->len = len; + __entry->ret = ret; + ), + + TP_printk("dev %d,%d ino %lu lblk %u pblk %llu len %u ret %d", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + __entry->lblk, __entry->pblk, + __entry->len, __entry->ret) +); + +DEFINE_EVENT(ext4__map_blocks_exit, ext4_ext_map_blocks_exit, + TP_PROTO(struct inode *inode, ext4_lblk_t lblk, + ext4_fsblk_t pblk, unsigned len, int ret), + + TP_ARGS(inode, lblk, pblk, len, ret) +); + +DEFINE_EVENT(ext4__map_blocks_exit, ext4_ind_map_blocks_exit, + TP_PROTO(struct inode *inode, ext4_lblk_t lblk, + ext4_fsblk_t pblk, unsigned len, int ret), + + TP_ARGS(inode, lblk, pblk, len, ret) +); + +TRACE_EVENT(ext4_ext_load_extent, + TP_PROTO(struct inode *inode, ext4_lblk_t lblk, ext4_fsblk_t pblk), + + TP_ARGS(inode, lblk, pblk), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( ext4_fsblk_t, pblk ) + __field( ext4_lblk_t, lblk ) + ), + + TP_fast_assign( + __entry->dev = inode->i_sb->s_dev; + __entry->ino = inode->i_ino; + __entry->pblk = pblk; + __entry->lblk = lblk; + ), + + TP_printk("dev %d,%d ino %lu lblk %u pblk %llu", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + __entry->lblk, __entry->pblk) +); + +TRACE_EVENT(ext4_load_inode, + TP_PROTO(struct inode *inode), + + TP_ARGS(inode), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + ), + + TP_fast_assign( + __entry->dev = inode->i_sb->s_dev; + __entry->ino = inode->i_ino; + ), + + TP_printk("dev %d,%d ino %ld", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino) +); + +TRACE_EVENT(ext4_journal_start, + TP_PROTO(struct super_block *sb, int nblocks, unsigned long IP), + + TP_ARGS(sb, nblocks, IP), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field(unsigned long, ip ) + __field( int, nblocks ) + ), + + TP_fast_assign( + __entry->dev = sb->s_dev; + __entry->ip = IP; + __entry->nblocks = nblocks; + ), + + TP_printk("dev %d,%d nblocks %d caller %pF", + MAJOR(__entry->dev), MINOR(__entry->dev), + __entry->nblocks, (void *)__entry->ip) +); + +DECLARE_EVENT_CLASS(ext4__trim, + TP_PROTO(struct super_block *sb, + ext4_group_t group, + ext4_grpblk_t start, + ext4_grpblk_t len), + + TP_ARGS(sb, group, start, len), + + TP_STRUCT__entry( + __field( int, dev_major ) + __field( int, dev_minor ) + __field( __u32, group ) + __field( int, start ) + __field( int, len ) + ), + + TP_fast_assign( + __entry->dev_major = MAJOR(sb->s_dev); + __entry->dev_minor = MINOR(sb->s_dev); + __entry->group = group; + __entry->start = start; + __entry->len = len; + ), + + TP_printk("dev %d,%d group %u, start %d, len %d", + __entry->dev_major, __entry->dev_minor, + __entry->group, __entry->start, __entry->len) +); + +DEFINE_EVENT(ext4__trim, ext4_trim_extent, + + TP_PROTO(struct super_block *sb, + ext4_group_t group, + ext4_grpblk_t start, + ext4_grpblk_t len), + + TP_ARGS(sb, group, start, len) +); + +DEFINE_EVENT(ext4__trim, ext4_trim_all_free, + + TP_PROTO(struct super_block *sb, + ext4_group_t group, + ext4_grpblk_t start, + ext4_grpblk_t len), + + TP_ARGS(sb, group, start, len) +); + +TRACE_EVENT(ext4_ext_handle_uninitialized_extents, + TP_PROTO(struct inode *inode, struct ext4_map_blocks *map, + unsigned int allocated, ext4_fsblk_t newblock), + + TP_ARGS(inode, map, allocated, newblock), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( int, flags ) + __field( ext4_lblk_t, lblk ) + __field( ext4_fsblk_t, pblk ) + __field( unsigned int, len ) + __field( unsigned int, allocated ) + __field( ext4_fsblk_t, newblk ) + ), + + TP_fast_assign( + __entry->dev = inode->i_sb->s_dev; + __entry->ino = inode->i_ino; + __entry->flags = map->m_flags; + __entry->lblk = map->m_lblk; + __entry->pblk = map->m_pblk; + __entry->len = map->m_len; + __entry->allocated = allocated; + __entry->newblk = newblock; + ), + + TP_printk("dev %d,%d ino %lu m_lblk %u m_pblk %llu m_len %u flags %d" + "allocated %d newblock %llu", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + (unsigned) __entry->lblk, (unsigned long long) __entry->pblk, + __entry->len, __entry->flags, + (unsigned int) __entry->allocated, + (unsigned long long) __entry->newblk) +); + +TRACE_EVENT(ext4_get_implied_cluster_alloc_exit, + TP_PROTO(struct super_block *sb, struct ext4_map_blocks *map, int ret), + + TP_ARGS(sb, map, ret), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( unsigned int, flags ) + __field( ext4_lblk_t, lblk ) + __field( ext4_fsblk_t, pblk ) + __field( unsigned int, len ) + __field( int, ret ) + ), + + TP_fast_assign( + __entry->dev = sb->s_dev; + __entry->flags = map->m_flags; + __entry->lblk = map->m_lblk; + __entry->pblk = map->m_pblk; + __entry->len = map->m_len; + __entry->ret = ret; + ), + + TP_printk("dev %d,%d m_lblk %u m_pblk %llu m_len %u m_flags %u ret %d", + MAJOR(__entry->dev), MINOR(__entry->dev), + __entry->lblk, (unsigned long long) __entry->pblk, + __entry->len, __entry->flags, __entry->ret) +); + +TRACE_EVENT(ext4_ext_put_in_cache, + TP_PROTO(struct inode *inode, ext4_lblk_t lblk, unsigned int len, + ext4_fsblk_t start), + + TP_ARGS(inode, lblk, len, start), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( ext4_lblk_t, lblk ) + __field( unsigned int, len ) + __field( ext4_fsblk_t, start ) + ), + + TP_fast_assign( + __entry->dev = inode->i_sb->s_dev; + __entry->ino = inode->i_ino; + __entry->lblk = lblk; + __entry->len = len; + __entry->start = start; + ), + + TP_printk("dev %d,%d ino %lu lblk %u len %u start %llu", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + (unsigned) __entry->lblk, + __entry->len, + (unsigned long long) __entry->start) +); + +TRACE_EVENT(ext4_ext_in_cache, + TP_PROTO(struct inode *inode, ext4_lblk_t lblk, int ret), + + TP_ARGS(inode, lblk, ret), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( ext4_lblk_t, lblk ) + __field( int, ret ) + ), + + TP_fast_assign( + __entry->dev = inode->i_sb->s_dev; + __entry->ino = inode->i_ino; + __entry->lblk = lblk; + __entry->ret = ret; + ), + + TP_printk("dev %d,%d ino %lu lblk %u ret %d", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + (unsigned) __entry->lblk, + __entry->ret) + +); + +TRACE_EVENT(ext4_find_delalloc_range, + TP_PROTO(struct inode *inode, ext4_lblk_t from, ext4_lblk_t to, + int reverse, int found, ext4_lblk_t found_blk), + + TP_ARGS(inode, from, to, reverse, found, found_blk), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( ext4_lblk_t, from ) + __field( ext4_lblk_t, to ) + __field( int, reverse ) + __field( int, found ) + __field( ext4_lblk_t, found_blk ) + ), + + TP_fast_assign( + __entry->dev = inode->i_sb->s_dev; + __entry->ino = inode->i_ino; + __entry->from = from; + __entry->to = to; + __entry->reverse = reverse; + __entry->found = found; + __entry->found_blk = found_blk; + ), + + TP_printk("dev %d,%d ino %lu from %u to %u reverse %d found %d " + "(blk = %u)", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + (unsigned) __entry->from, (unsigned) __entry->to, + __entry->reverse, __entry->found, + (unsigned) __entry->found_blk) +); + +TRACE_EVENT(ext4_get_reserved_cluster_alloc, + TP_PROTO(struct inode *inode, ext4_lblk_t lblk, unsigned int len), + + TP_ARGS(inode, lblk, len), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( ext4_lblk_t, lblk ) + __field( unsigned int, len ) + ), + + TP_fast_assign( + __entry->dev = inode->i_sb->s_dev; + __entry->ino = inode->i_ino; + __entry->lblk = lblk; + __entry->len = len; + ), + + TP_printk("dev %d,%d ino %lu lblk %u len %u", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + (unsigned) __entry->lblk, + __entry->len) +); + +TRACE_EVENT(ext4_ext_show_extent, + TP_PROTO(struct inode *inode, ext4_lblk_t lblk, ext4_fsblk_t pblk, + unsigned short len), + + TP_ARGS(inode, lblk, pblk, len), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( ext4_fsblk_t, pblk ) + __field( ext4_lblk_t, lblk ) + __field( unsigned short, len ) + ), + + TP_fast_assign( + __entry->dev = inode->i_sb->s_dev; + __entry->ino = inode->i_ino; + __entry->pblk = pblk; + __entry->lblk = lblk; + __entry->len = len; + ), + + TP_printk("dev %d,%d ino %lu lblk %u pblk %llu len %u", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + (unsigned) __entry->lblk, + (unsigned long long) __entry->pblk, + (unsigned short) __entry->len) +); + +TRACE_EVENT(ext4_remove_blocks, + TP_PROTO(struct inode *inode, struct ext4_extent *ex, + ext4_lblk_t from, ext4_fsblk_t to, + ext4_fsblk_t partial_cluster), + + TP_ARGS(inode, ex, from, to, partial_cluster), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( ext4_lblk_t, from ) + __field( ext4_lblk_t, to ) + __field( ext4_fsblk_t, partial ) + __field( ext4_fsblk_t, ee_pblk ) + __field( ext4_lblk_t, ee_lblk ) + __field( unsigned short, ee_len ) + ), + + TP_fast_assign( + __entry->dev = inode->i_sb->s_dev; + __entry->ino = inode->i_ino; + __entry->from = from; + __entry->to = to; + __entry->partial = partial_cluster; + __entry->ee_pblk = ext4_ext_pblock(ex); + __entry->ee_lblk = cpu_to_le32(ex->ee_block); + __entry->ee_len = ext4_ext_get_actual_len(ex); + ), + + TP_printk("dev %d,%d ino %lu extent [%u(%llu), %u]" + "from %u to %u partial_cluster %u", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + (unsigned) __entry->ee_lblk, + (unsigned long long) __entry->ee_pblk, + (unsigned short) __entry->ee_len, + (unsigned) __entry->from, + (unsigned) __entry->to, + (unsigned) __entry->partial) +); + +TRACE_EVENT(ext4_ext_rm_leaf, + TP_PROTO(struct inode *inode, ext4_lblk_t start, + struct ext4_extent *ex, ext4_fsblk_t partial_cluster), + + TP_ARGS(inode, start, ex, partial_cluster), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( ext4_fsblk_t, partial ) + __field( ext4_lblk_t, start ) + __field( ext4_lblk_t, ee_lblk ) + __field( ext4_fsblk_t, ee_pblk ) + __field( short, ee_len ) + ), + + TP_fast_assign( + __entry->dev = inode->i_sb->s_dev; + __entry->ino = inode->i_ino; + __entry->partial = partial_cluster; + __entry->start = start; + __entry->ee_lblk = le32_to_cpu(ex->ee_block); + __entry->ee_pblk = ext4_ext_pblock(ex); + __entry->ee_len = ext4_ext_get_actual_len(ex); + ), + + TP_printk("dev %d,%d ino %lu start_lblk %u last_extent [%u(%llu), %u]" + "partial_cluster %u", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + (unsigned) __entry->start, + (unsigned) __entry->ee_lblk, + (unsigned long long) __entry->ee_pblk, + (unsigned short) __entry->ee_len, + (unsigned) __entry->partial) +); + +TRACE_EVENT(ext4_ext_rm_idx, + TP_PROTO(struct inode *inode, ext4_fsblk_t pblk), + + TP_ARGS(inode, pblk), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( ext4_fsblk_t, pblk ) + ), + + TP_fast_assign( + __entry->dev = inode->i_sb->s_dev; + __entry->ino = inode->i_ino; + __entry->pblk = pblk; + ), + + TP_printk("dev %d,%d ino %lu index_pblk %llu", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + (unsigned long long) __entry->pblk) +); + +TRACE_EVENT(ext4_ext_remove_space, + TP_PROTO(struct inode *inode, ext4_lblk_t start, int depth), + + TP_ARGS(inode, start, depth), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( ext4_lblk_t, start ) + __field( int, depth ) + ), + + TP_fast_assign( + __entry->dev = inode->i_sb->s_dev; + __entry->ino = inode->i_ino; + __entry->start = start; + __entry->depth = depth; + ), + + TP_printk("dev %d,%d ino %lu since %u depth %d", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + (unsigned) __entry->start, + __entry->depth) +); + +TRACE_EVENT(ext4_ext_remove_space_done, + TP_PROTO(struct inode *inode, ext4_lblk_t start, int depth, + ext4_lblk_t partial, unsigned short eh_entries), + + TP_ARGS(inode, start, depth, partial, eh_entries), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( ext4_lblk_t, start ) + __field( int, depth ) + __field( ext4_lblk_t, partial ) + __field( unsigned short, eh_entries ) + ), + + TP_fast_assign( + __entry->dev = inode->i_sb->s_dev; + __entry->ino = inode->i_ino; + __entry->start = start; + __entry->depth = depth; + __entry->partial = partial; + __entry->eh_entries = eh_entries; + ), + + TP_printk("dev %d,%d ino %lu since %u depth %d partial %u " + "remaining_entries %u", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + (unsigned) __entry->start, + __entry->depth, + (unsigned) __entry->partial, + (unsigned short) __entry->eh_entries) +); + +#endif /* _TRACE_EXT4_H */ + +/* This part must be outside protection */ +#include --- linux-3.11.0.orig/ubuntu/lttng-modules/instrumentation/events/mainline/arch/x86/kvm/trace.h +++ linux-3.11.0/ubuntu/lttng-modules/instrumentation/events/mainline/arch/x86/kvm/trace.h @@ -0,0 +1,828 @@ +#if !defined(_TRACE_KVM_H) || defined(TRACE_HEADER_MULTI_READ) +#define _TRACE_KVM_H + +#include +#include +#include +#include + +#undef TRACE_SYSTEM +#define TRACE_SYSTEM kvm + +/* + * Tracepoint for guest mode entry. + */ +TRACE_EVENT(kvm_entry, + TP_PROTO(unsigned int vcpu_id), + TP_ARGS(vcpu_id), + + TP_STRUCT__entry( + __field( unsigned int, vcpu_id ) + ), + + TP_fast_assign( + __entry->vcpu_id = vcpu_id; + ), + + TP_printk("vcpu %u", __entry->vcpu_id) +); + +/* + * Tracepoint for hypercall. + */ +TRACE_EVENT(kvm_hypercall, + TP_PROTO(unsigned long nr, unsigned long a0, unsigned long a1, + unsigned long a2, unsigned long a3), + TP_ARGS(nr, a0, a1, a2, a3), + + TP_STRUCT__entry( + __field( unsigned long, nr ) + __field( unsigned long, a0 ) + __field( unsigned long, a1 ) + __field( unsigned long, a2 ) + __field( unsigned long, a3 ) + ), + + TP_fast_assign( + __entry->nr = nr; + __entry->a0 = a0; + __entry->a1 = a1; + __entry->a2 = a2; + __entry->a3 = a3; + ), + + TP_printk("nr 0x%lx a0 0x%lx a1 0x%lx a2 0x%lx a3 0x%lx", + __entry->nr, __entry->a0, __entry->a1, __entry->a2, + __entry->a3) +); + +/* + * Tracepoint for hypercall. + */ +TRACE_EVENT(kvm_hv_hypercall, + TP_PROTO(__u16 code, bool fast, __u16 rep_cnt, __u16 rep_idx, + __u64 ingpa, __u64 outgpa), + TP_ARGS(code, fast, rep_cnt, rep_idx, ingpa, outgpa), + + TP_STRUCT__entry( + __field( __u16, rep_cnt ) + __field( __u16, rep_idx ) + __field( __u64, ingpa ) + __field( __u64, outgpa ) + __field( __u16, code ) + __field( bool, fast ) + ), + + TP_fast_assign( + __entry->rep_cnt = rep_cnt; + __entry->rep_idx = rep_idx; + __entry->ingpa = ingpa; + __entry->outgpa = outgpa; + __entry->code = code; + __entry->fast = fast; + ), + + TP_printk("code 0x%x %s cnt 0x%x idx 0x%x in 0x%llx out 0x%llx", + __entry->code, __entry->fast ? "fast" : "slow", + __entry->rep_cnt, __entry->rep_idx, __entry->ingpa, + __entry->outgpa) +); + +/* + * Tracepoint for PIO. + */ +TRACE_EVENT(kvm_pio, + TP_PROTO(unsigned int rw, unsigned int port, unsigned int size, + unsigned int count), + TP_ARGS(rw, port, size, count), + + TP_STRUCT__entry( + __field( unsigned int, rw ) + __field( unsigned int, port ) + __field( unsigned int, size ) + __field( unsigned int, count ) + ), + + TP_fast_assign( + __entry->rw = rw; + __entry->port = port; + __entry->size = size; + __entry->count = count; + ), + + TP_printk("pio_%s at 0x%x size %d count %d", + __entry->rw ? "write" : "read", + __entry->port, __entry->size, __entry->count) +); + +/* + * Tracepoint for cpuid. + */ +TRACE_EVENT(kvm_cpuid, + TP_PROTO(unsigned int function, unsigned long rax, unsigned long rbx, + unsigned long rcx, unsigned long rdx), + TP_ARGS(function, rax, rbx, rcx, rdx), + + TP_STRUCT__entry( + __field( unsigned int, function ) + __field( unsigned long, rax ) + __field( unsigned long, rbx ) + __field( unsigned long, rcx ) + __field( unsigned long, rdx ) + ), + + TP_fast_assign( + __entry->function = function; + __entry->rax = rax; + __entry->rbx = rbx; + __entry->rcx = rcx; + __entry->rdx = rdx; + ), + + TP_printk("func %x rax %lx rbx %lx rcx %lx rdx %lx", + __entry->function, __entry->rax, + __entry->rbx, __entry->rcx, __entry->rdx) +); + +#define AREG(x) { APIC_##x, "APIC_" #x } + +#define kvm_trace_symbol_apic \ + AREG(ID), AREG(LVR), AREG(TASKPRI), AREG(ARBPRI), AREG(PROCPRI), \ + AREG(EOI), AREG(RRR), AREG(LDR), AREG(DFR), AREG(SPIV), AREG(ISR), \ + AREG(TMR), AREG(IRR), AREG(ESR), AREG(ICR), AREG(ICR2), AREG(LVTT), \ + AREG(LVTTHMR), AREG(LVTPC), AREG(LVT0), AREG(LVT1), AREG(LVTERR), \ + AREG(TMICT), AREG(TMCCT), AREG(TDCR), AREG(SELF_IPI), AREG(EFEAT), \ + AREG(ECTRL) +/* + * Tracepoint for apic access. + */ +TRACE_EVENT(kvm_apic, + TP_PROTO(unsigned int rw, unsigned int reg, unsigned int val), + TP_ARGS(rw, reg, val), + + TP_STRUCT__entry( + __field( unsigned int, rw ) + __field( unsigned int, reg ) + __field( unsigned int, val ) + ), + + TP_fast_assign( + __entry->rw = rw; + __entry->reg = reg; + __entry->val = val; + ), + + TP_printk("apic_%s %s = 0x%x", + __entry->rw ? "write" : "read", + __print_symbolic(__entry->reg, kvm_trace_symbol_apic), + __entry->val) +); + +#define trace_kvm_apic_read(reg, val) trace_kvm_apic(0, reg, val) +#define trace_kvm_apic_write(reg, val) trace_kvm_apic(1, reg, val) + +#define KVM_ISA_VMX 1 +#define KVM_ISA_SVM 2 + +/* + * Tracepoint for kvm guest exit: + */ +TRACE_EVENT(kvm_exit, + TP_PROTO(unsigned int exit_reason, struct kvm_vcpu *vcpu, u32 isa), + TP_ARGS(exit_reason, vcpu, isa), + + TP_STRUCT__entry( + __field( unsigned int, exit_reason ) + __field( unsigned long, guest_rip ) + __field( u32, isa ) + __field( u64, info1 ) + __field( u64, info2 ) + ), + + TP_fast_assign( + __entry->exit_reason = exit_reason; + __entry->guest_rip = kvm_rip_read(vcpu); + __entry->isa = isa; + kvm_x86_ops->get_exit_info(vcpu, &__entry->info1, + &__entry->info2); + ), + + TP_printk("reason %s rip 0x%lx info %llx %llx", + (__entry->isa == KVM_ISA_VMX) ? + __print_symbolic(__entry->exit_reason, VMX_EXIT_REASONS) : + __print_symbolic(__entry->exit_reason, SVM_EXIT_REASONS), + __entry->guest_rip, __entry->info1, __entry->info2) +); + +/* + * Tracepoint for kvm interrupt injection: + */ +TRACE_EVENT(kvm_inj_virq, + TP_PROTO(unsigned int irq), + TP_ARGS(irq), + + TP_STRUCT__entry( + __field( unsigned int, irq ) + ), + + TP_fast_assign( + __entry->irq = irq; + ), + + TP_printk("irq %u", __entry->irq) +); + +#define EXS(x) { x##_VECTOR, "#" #x } + +#define kvm_trace_sym_exc \ + EXS(DE), EXS(DB), EXS(BP), EXS(OF), EXS(BR), EXS(UD), EXS(NM), \ + EXS(DF), EXS(TS), EXS(NP), EXS(SS), EXS(GP), EXS(PF), \ + EXS(MF), EXS(MC) + +/* + * Tracepoint for kvm interrupt injection: + */ +TRACE_EVENT(kvm_inj_exception, + TP_PROTO(unsigned exception, bool has_error, unsigned error_code), + TP_ARGS(exception, has_error, error_code), + + TP_STRUCT__entry( + __field( u8, exception ) + __field( u8, has_error ) + __field( u32, error_code ) + ), + + TP_fast_assign( + __entry->exception = exception; + __entry->has_error = has_error; + __entry->error_code = error_code; + ), + + TP_printk("%s (0x%x)", + __print_symbolic(__entry->exception, kvm_trace_sym_exc), + /* FIXME: don't print error_code if not present */ + __entry->has_error ? __entry->error_code : 0) +); + +/* + * Tracepoint for page fault. + */ +TRACE_EVENT(kvm_page_fault, + TP_PROTO(unsigned long fault_address, unsigned int error_code), + TP_ARGS(fault_address, error_code), + + TP_STRUCT__entry( + __field( unsigned long, fault_address ) + __field( unsigned int, error_code ) + ), + + TP_fast_assign( + __entry->fault_address = fault_address; + __entry->error_code = error_code; + ), + + TP_printk("address %lx error_code %x", + __entry->fault_address, __entry->error_code) +); + +/* + * Tracepoint for guest MSR access. + */ +TRACE_EVENT(kvm_msr, + TP_PROTO(unsigned write, u32 ecx, u64 data, bool exception), + TP_ARGS(write, ecx, data, exception), + + TP_STRUCT__entry( + __field( unsigned, write ) + __field( u32, ecx ) + __field( u64, data ) + __field( u8, exception ) + ), + + TP_fast_assign( + __entry->write = write; + __entry->ecx = ecx; + __entry->data = data; + __entry->exception = exception; + ), + + TP_printk("msr_%s %x = 0x%llx%s", + __entry->write ? "write" : "read", + __entry->ecx, __entry->data, + __entry->exception ? " (#GP)" : "") +); + +#define trace_kvm_msr_read(ecx, data) trace_kvm_msr(0, ecx, data, false) +#define trace_kvm_msr_write(ecx, data) trace_kvm_msr(1, ecx, data, false) +#define trace_kvm_msr_read_ex(ecx) trace_kvm_msr(0, ecx, 0, true) +#define trace_kvm_msr_write_ex(ecx, data) trace_kvm_msr(1, ecx, data, true) + +/* + * Tracepoint for guest CR access. + */ +TRACE_EVENT(kvm_cr, + TP_PROTO(unsigned int rw, unsigned int cr, unsigned long val), + TP_ARGS(rw, cr, val), + + TP_STRUCT__entry( + __field( unsigned int, rw ) + __field( unsigned int, cr ) + __field( unsigned long, val ) + ), + + TP_fast_assign( + __entry->rw = rw; + __entry->cr = cr; + __entry->val = val; + ), + + TP_printk("cr_%s %x = 0x%lx", + __entry->rw ? "write" : "read", + __entry->cr, __entry->val) +); + +#define trace_kvm_cr_read(cr, val) trace_kvm_cr(0, cr, val) +#define trace_kvm_cr_write(cr, val) trace_kvm_cr(1, cr, val) + +TRACE_EVENT(kvm_pic_set_irq, + TP_PROTO(__u8 chip, __u8 pin, __u8 elcr, __u8 imr, bool coalesced), + TP_ARGS(chip, pin, elcr, imr, coalesced), + + TP_STRUCT__entry( + __field( __u8, chip ) + __field( __u8, pin ) + __field( __u8, elcr ) + __field( __u8, imr ) + __field( bool, coalesced ) + ), + + TP_fast_assign( + __entry->chip = chip; + __entry->pin = pin; + __entry->elcr = elcr; + __entry->imr = imr; + __entry->coalesced = coalesced; + ), + + TP_printk("chip %u pin %u (%s%s)%s", + __entry->chip, __entry->pin, + (__entry->elcr & (1 << __entry->pin)) ? "level":"edge", + (__entry->imr & (1 << __entry->pin)) ? "|masked":"", + __entry->coalesced ? " (coalesced)" : "") +); + +#define kvm_apic_dst_shorthand \ + {0x0, "dst"}, \ + {0x1, "self"}, \ + {0x2, "all"}, \ + {0x3, "all-but-self"} + +TRACE_EVENT(kvm_apic_ipi, + TP_PROTO(__u32 icr_low, __u32 dest_id), + TP_ARGS(icr_low, dest_id), + + TP_STRUCT__entry( + __field( __u32, icr_low ) + __field( __u32, dest_id ) + ), + + TP_fast_assign( + __entry->icr_low = icr_low; + __entry->dest_id = dest_id; + ), + + TP_printk("dst %x vec %u (%s|%s|%s|%s|%s)", + __entry->dest_id, (u8)__entry->icr_low, + __print_symbolic((__entry->icr_low >> 8 & 0x7), + kvm_deliver_mode), + (__entry->icr_low & (1<<11)) ? "logical" : "physical", + (__entry->icr_low & (1<<14)) ? "assert" : "de-assert", + (__entry->icr_low & (1<<15)) ? "level" : "edge", + __print_symbolic((__entry->icr_low >> 18 & 0x3), + kvm_apic_dst_shorthand)) +); + +TRACE_EVENT(kvm_apic_accept_irq, + TP_PROTO(__u32 apicid, __u16 dm, __u8 tm, __u8 vec, bool coalesced), + TP_ARGS(apicid, dm, tm, vec, coalesced), + + TP_STRUCT__entry( + __field( __u32, apicid ) + __field( __u16, dm ) + __field( __u8, tm ) + __field( __u8, vec ) + __field( bool, coalesced ) + ), + + TP_fast_assign( + __entry->apicid = apicid; + __entry->dm = dm; + __entry->tm = tm; + __entry->vec = vec; + __entry->coalesced = coalesced; + ), + + TP_printk("apicid %x vec %u (%s|%s)%s", + __entry->apicid, __entry->vec, + __print_symbolic((__entry->dm >> 8 & 0x7), kvm_deliver_mode), + __entry->tm ? "level" : "edge", + __entry->coalesced ? " (coalesced)" : "") +); + +TRACE_EVENT(kvm_eoi, + TP_PROTO(struct kvm_lapic *apic, int vector), + TP_ARGS(apic, vector), + + TP_STRUCT__entry( + __field( __u32, apicid ) + __field( int, vector ) + ), + + TP_fast_assign( + __entry->apicid = apic->vcpu->vcpu_id; + __entry->vector = vector; + ), + + TP_printk("apicid %x vector %d", __entry->apicid, __entry->vector) +); + +TRACE_EVENT(kvm_pv_eoi, + TP_PROTO(struct kvm_lapic *apic, int vector), + TP_ARGS(apic, vector), + + TP_STRUCT__entry( + __field( __u32, apicid ) + __field( int, vector ) + ), + + TP_fast_assign( + __entry->apicid = apic->vcpu->vcpu_id; + __entry->vector = vector; + ), + + TP_printk("apicid %x vector %d", __entry->apicid, __entry->vector) +); + +/* + * Tracepoint for nested VMRUN + */ +TRACE_EVENT(kvm_nested_vmrun, + TP_PROTO(__u64 rip, __u64 vmcb, __u64 nested_rip, __u32 int_ctl, + __u32 event_inj, bool npt), + TP_ARGS(rip, vmcb, nested_rip, int_ctl, event_inj, npt), + + TP_STRUCT__entry( + __field( __u64, rip ) + __field( __u64, vmcb ) + __field( __u64, nested_rip ) + __field( __u32, int_ctl ) + __field( __u32, event_inj ) + __field( bool, npt ) + ), + + TP_fast_assign( + __entry->rip = rip; + __entry->vmcb = vmcb; + __entry->nested_rip = nested_rip; + __entry->int_ctl = int_ctl; + __entry->event_inj = event_inj; + __entry->npt = npt; + ), + + TP_printk("rip: 0x%016llx vmcb: 0x%016llx nrip: 0x%016llx int_ctl: 0x%08x " + "event_inj: 0x%08x npt: %s", + __entry->rip, __entry->vmcb, __entry->nested_rip, + __entry->int_ctl, __entry->event_inj, + __entry->npt ? "on" : "off") +); + +TRACE_EVENT(kvm_nested_intercepts, + TP_PROTO(__u16 cr_read, __u16 cr_write, __u32 exceptions, __u64 intercept), + TP_ARGS(cr_read, cr_write, exceptions, intercept), + + TP_STRUCT__entry( + __field( __u16, cr_read ) + __field( __u16, cr_write ) + __field( __u32, exceptions ) + __field( __u64, intercept ) + ), + + TP_fast_assign( + __entry->cr_read = cr_read; + __entry->cr_write = cr_write; + __entry->exceptions = exceptions; + __entry->intercept = intercept; + ), + + TP_printk("cr_read: %04x cr_write: %04x excp: %08x intercept: %016llx", + __entry->cr_read, __entry->cr_write, __entry->exceptions, + __entry->intercept) +); +/* + * Tracepoint for #VMEXIT while nested + */ +TRACE_EVENT(kvm_nested_vmexit, + TP_PROTO(__u64 rip, __u32 exit_code, + __u64 exit_info1, __u64 exit_info2, + __u32 exit_int_info, __u32 exit_int_info_err, __u32 isa), + TP_ARGS(rip, exit_code, exit_info1, exit_info2, + exit_int_info, exit_int_info_err, isa), + + TP_STRUCT__entry( + __field( __u64, rip ) + __field( __u32, exit_code ) + __field( __u64, exit_info1 ) + __field( __u64, exit_info2 ) + __field( __u32, exit_int_info ) + __field( __u32, exit_int_info_err ) + __field( __u32, isa ) + ), + + TP_fast_assign( + __entry->rip = rip; + __entry->exit_code = exit_code; + __entry->exit_info1 = exit_info1; + __entry->exit_info2 = exit_info2; + __entry->exit_int_info = exit_int_info; + __entry->exit_int_info_err = exit_int_info_err; + __entry->isa = isa; + ), + TP_printk("rip: 0x%016llx reason: %s ext_inf1: 0x%016llx " + "ext_inf2: 0x%016llx ext_int: 0x%08x ext_int_err: 0x%08x", + __entry->rip, + (__entry->isa == KVM_ISA_VMX) ? + __print_symbolic(__entry->exit_code, VMX_EXIT_REASONS) : + __print_symbolic(__entry->exit_code, SVM_EXIT_REASONS), + __entry->exit_info1, __entry->exit_info2, + __entry->exit_int_info, __entry->exit_int_info_err) +); + +/* + * Tracepoint for #VMEXIT reinjected to the guest + */ +TRACE_EVENT(kvm_nested_vmexit_inject, + TP_PROTO(__u32 exit_code, + __u64 exit_info1, __u64 exit_info2, + __u32 exit_int_info, __u32 exit_int_info_err, __u32 isa), + TP_ARGS(exit_code, exit_info1, exit_info2, + exit_int_info, exit_int_info_err, isa), + + TP_STRUCT__entry( + __field( __u32, exit_code ) + __field( __u64, exit_info1 ) + __field( __u64, exit_info2 ) + __field( __u32, exit_int_info ) + __field( __u32, exit_int_info_err ) + __field( __u32, isa ) + ), + + TP_fast_assign( + __entry->exit_code = exit_code; + __entry->exit_info1 = exit_info1; + __entry->exit_info2 = exit_info2; + __entry->exit_int_info = exit_int_info; + __entry->exit_int_info_err = exit_int_info_err; + __entry->isa = isa; + ), + + TP_printk("reason: %s ext_inf1: 0x%016llx " + "ext_inf2: 0x%016llx ext_int: 0x%08x ext_int_err: 0x%08x", + (__entry->isa == KVM_ISA_VMX) ? + __print_symbolic(__entry->exit_code, VMX_EXIT_REASONS) : + __print_symbolic(__entry->exit_code, SVM_EXIT_REASONS), + __entry->exit_info1, __entry->exit_info2, + __entry->exit_int_info, __entry->exit_int_info_err) +); + +/* + * Tracepoint for nested #vmexit because of interrupt pending + */ +TRACE_EVENT(kvm_nested_intr_vmexit, + TP_PROTO(__u64 rip), + TP_ARGS(rip), + + TP_STRUCT__entry( + __field( __u64, rip ) + ), + + TP_fast_assign( + __entry->rip = rip + ), + + TP_printk("rip: 0x%016llx", __entry->rip) +); + +/* + * Tracepoint for nested #vmexit because of interrupt pending + */ +TRACE_EVENT(kvm_invlpga, + TP_PROTO(__u64 rip, int asid, u64 address), + TP_ARGS(rip, asid, address), + + TP_STRUCT__entry( + __field( __u64, rip ) + __field( int, asid ) + __field( __u64, address ) + ), + + TP_fast_assign( + __entry->rip = rip; + __entry->asid = asid; + __entry->address = address; + ), + + TP_printk("rip: 0x%016llx asid: %d address: 0x%016llx", + __entry->rip, __entry->asid, __entry->address) +); + +/* + * Tracepoint for nested #vmexit because of interrupt pending + */ +TRACE_EVENT(kvm_skinit, + TP_PROTO(__u64 rip, __u32 slb), + TP_ARGS(rip, slb), + + TP_STRUCT__entry( + __field( __u64, rip ) + __field( __u32, slb ) + ), + + TP_fast_assign( + __entry->rip = rip; + __entry->slb = slb; + ), + + TP_printk("rip: 0x%016llx slb: 0x%08x", + __entry->rip, __entry->slb) +); + +#define KVM_EMUL_INSN_F_CR0_PE (1 << 0) +#define KVM_EMUL_INSN_F_EFL_VM (1 << 1) +#define KVM_EMUL_INSN_F_CS_D (1 << 2) +#define KVM_EMUL_INSN_F_CS_L (1 << 3) + +#define kvm_trace_symbol_emul_flags \ + { 0, "real" }, \ + { KVM_EMUL_INSN_F_CR0_PE \ + | KVM_EMUL_INSN_F_EFL_VM, "vm16" }, \ + { KVM_EMUL_INSN_F_CR0_PE, "prot16" }, \ + { KVM_EMUL_INSN_F_CR0_PE \ + | KVM_EMUL_INSN_F_CS_D, "prot32" }, \ + { KVM_EMUL_INSN_F_CR0_PE \ + | KVM_EMUL_INSN_F_CS_L, "prot64" } + +#define kei_decode_mode(mode) ({ \ + u8 flags = 0xff; \ + switch (mode) { \ + case X86EMUL_MODE_REAL: \ + flags = 0; \ + break; \ + case X86EMUL_MODE_VM86: \ + flags = KVM_EMUL_INSN_F_EFL_VM; \ + break; \ + case X86EMUL_MODE_PROT16: \ + flags = KVM_EMUL_INSN_F_CR0_PE; \ + break; \ + case X86EMUL_MODE_PROT32: \ + flags = KVM_EMUL_INSN_F_CR0_PE \ + | KVM_EMUL_INSN_F_CS_D; \ + break; \ + case X86EMUL_MODE_PROT64: \ + flags = KVM_EMUL_INSN_F_CR0_PE \ + | KVM_EMUL_INSN_F_CS_L; \ + break; \ + } \ + flags; \ + }) + +TRACE_EVENT(kvm_emulate_insn, + TP_PROTO(struct kvm_vcpu *vcpu, __u8 failed), + TP_ARGS(vcpu, failed), + + TP_STRUCT__entry( + __field( __u64, rip ) + __field( __u32, csbase ) + __field( __u8, len ) + __array( __u8, insn, 15 ) + __field( __u8, flags ) + __field( __u8, failed ) + ), + + TP_fast_assign( + __entry->rip = vcpu->arch.emulate_ctxt.fetch.start; + __entry->csbase = kvm_x86_ops->get_segment_base(vcpu, VCPU_SREG_CS); + __entry->len = vcpu->arch.emulate_ctxt._eip + - vcpu->arch.emulate_ctxt.fetch.start; + memcpy(__entry->insn, + vcpu->arch.emulate_ctxt.fetch.data, + 15); + __entry->flags = kei_decode_mode(vcpu->arch.emulate_ctxt.mode); + __entry->failed = failed; + ), + + TP_printk("%x:%llx:%s (%s)%s", + __entry->csbase, __entry->rip, + __print_hex(__entry->insn, __entry->len), + __print_symbolic(__entry->flags, + kvm_trace_symbol_emul_flags), + __entry->failed ? " failed" : "" + ) + ); + +#define trace_kvm_emulate_insn_start(vcpu) trace_kvm_emulate_insn(vcpu, 0) +#define trace_kvm_emulate_insn_failed(vcpu) trace_kvm_emulate_insn(vcpu, 1) + +TRACE_EVENT( + vcpu_match_mmio, + TP_PROTO(gva_t gva, gpa_t gpa, bool write, bool gpa_match), + TP_ARGS(gva, gpa, write, gpa_match), + + TP_STRUCT__entry( + __field(gva_t, gva) + __field(gpa_t, gpa) + __field(bool, write) + __field(bool, gpa_match) + ), + + TP_fast_assign( + __entry->gva = gva; + __entry->gpa = gpa; + __entry->write = write; + __entry->gpa_match = gpa_match + ), + + TP_printk("gva %#lx gpa %#llx %s %s", __entry->gva, __entry->gpa, + __entry->write ? "Write" : "Read", + __entry->gpa_match ? "GPA" : "GVA") +); + +#ifdef CONFIG_X86_64 + +#define host_clocks \ + {VCLOCK_NONE, "none"}, \ + {VCLOCK_TSC, "tsc"}, \ + {VCLOCK_HPET, "hpet"} \ + +TRACE_EVENT(kvm_update_master_clock, + TP_PROTO(bool use_master_clock, unsigned int host_clock, bool offset_matched), + TP_ARGS(use_master_clock, host_clock, offset_matched), + + TP_STRUCT__entry( + __field( bool, use_master_clock ) + __field( unsigned int, host_clock ) + __field( bool, offset_matched ) + ), + + TP_fast_assign( + __entry->use_master_clock = use_master_clock; + __entry->host_clock = host_clock; + __entry->offset_matched = offset_matched; + ), + + TP_printk("masterclock %d hostclock %s offsetmatched %u", + __entry->use_master_clock, + __print_symbolic(__entry->host_clock, host_clocks), + __entry->offset_matched) +); + +TRACE_EVENT(kvm_track_tsc, + TP_PROTO(unsigned int vcpu_id, unsigned int nr_matched, + unsigned int online_vcpus, bool use_master_clock, + unsigned int host_clock), + TP_ARGS(vcpu_id, nr_matched, online_vcpus, use_master_clock, + host_clock), + + TP_STRUCT__entry( + __field( unsigned int, vcpu_id ) + __field( unsigned int, nr_vcpus_matched_tsc ) + __field( unsigned int, online_vcpus ) + __field( bool, use_master_clock ) + __field( unsigned int, host_clock ) + ), + + TP_fast_assign( + __entry->vcpu_id = vcpu_id; + __entry->nr_vcpus_matched_tsc = nr_matched; + __entry->online_vcpus = online_vcpus; + __entry->use_master_clock = use_master_clock; + __entry->host_clock = host_clock; + ), + + TP_printk("vcpu_id %u masterclock %u offsetmatched %u nr_online %u" + " hostclock %s", + __entry->vcpu_id, __entry->use_master_clock, + __entry->nr_vcpus_matched_tsc, __entry->online_vcpus, + __print_symbolic(__entry->host_clock, host_clocks)) +); + +#endif /* CONFIG_X86_64 */ + +#endif /* _TRACE_KVM_H */ + +#undef TRACE_INCLUDE_PATH +#define TRACE_INCLUDE_PATH arch/x86/kvm +#undef TRACE_INCLUDE_FILE +#define TRACE_INCLUDE_FILE trace + +/* This part must be outside protection */ +#include --- linux-3.11.0.orig/ubuntu/lttng-modules/instrumentation/events/mainline/arch/x86/kvm/mmutrace.h +++ linux-3.11.0/ubuntu/lttng-modules/instrumentation/events/mainline/arch/x86/kvm/mmutrace.h @@ -0,0 +1,285 @@ +#if !defined(_TRACE_KVMMMU_H) || defined(TRACE_HEADER_MULTI_READ) +#define _TRACE_KVMMMU_H + +#include +#include + +#undef TRACE_SYSTEM +#define TRACE_SYSTEM kvmmmu + +#define KVM_MMU_PAGE_FIELDS \ + __field(__u64, gfn) \ + __field(__u32, role) \ + __field(__u32, root_count) \ + __field(bool, unsync) + +#define KVM_MMU_PAGE_ASSIGN(sp) \ + __entry->gfn = sp->gfn; \ + __entry->role = sp->role.word; \ + __entry->root_count = sp->root_count; \ + __entry->unsync = sp->unsync; + +#define KVM_MMU_PAGE_PRINTK() ({ \ + const char *ret = p->buffer + p->len; \ + static const char *access_str[] = { \ + "---", "--x", "w--", "w-x", "-u-", "-ux", "wu-", "wux" \ + }; \ + union kvm_mmu_page_role role; \ + \ + role.word = __entry->role; \ + \ + trace_seq_printf(p, "sp gfn %llx %u%s q%u%s %s%s" \ + " %snxe root %u %s%c", \ + __entry->gfn, role.level, \ + role.cr4_pae ? " pae" : "", \ + role.quadrant, \ + role.direct ? " direct" : "", \ + access_str[role.access], \ + role.invalid ? " invalid" : "", \ + role.nxe ? "" : "!", \ + __entry->root_count, \ + __entry->unsync ? "unsync" : "sync", 0); \ + ret; \ + }) + +#define kvm_mmu_trace_pferr_flags \ + { PFERR_PRESENT_MASK, "P" }, \ + { PFERR_WRITE_MASK, "W" }, \ + { PFERR_USER_MASK, "U" }, \ + { PFERR_RSVD_MASK, "RSVD" }, \ + { PFERR_FETCH_MASK, "F" } + +/* + * A pagetable walk has started + */ +TRACE_EVENT( + kvm_mmu_pagetable_walk, + TP_PROTO(u64 addr, u32 pferr), + TP_ARGS(addr, pferr), + + TP_STRUCT__entry( + __field(__u64, addr) + __field(__u32, pferr) + ), + + TP_fast_assign( + __entry->addr = addr; + __entry->pferr = pferr; + ), + + TP_printk("addr %llx pferr %x %s", __entry->addr, __entry->pferr, + __print_flags(__entry->pferr, "|", kvm_mmu_trace_pferr_flags)) +); + + +/* We just walked a paging element */ +TRACE_EVENT( + kvm_mmu_paging_element, + TP_PROTO(u64 pte, int level), + TP_ARGS(pte, level), + + TP_STRUCT__entry( + __field(__u64, pte) + __field(__u32, level) + ), + + TP_fast_assign( + __entry->pte = pte; + __entry->level = level; + ), + + TP_printk("pte %llx level %u", __entry->pte, __entry->level) +); + +DECLARE_EVENT_CLASS(kvm_mmu_set_bit_class, + + TP_PROTO(unsigned long table_gfn, unsigned index, unsigned size), + + TP_ARGS(table_gfn, index, size), + + TP_STRUCT__entry( + __field(__u64, gpa) + ), + + TP_fast_assign( + __entry->gpa = ((u64)table_gfn << PAGE_SHIFT) + + index * size; + ), + + TP_printk("gpa %llx", __entry->gpa) +); + +/* We set a pte accessed bit */ +DEFINE_EVENT(kvm_mmu_set_bit_class, kvm_mmu_set_accessed_bit, + + TP_PROTO(unsigned long table_gfn, unsigned index, unsigned size), + + TP_ARGS(table_gfn, index, size) +); + +/* We set a pte dirty bit */ +DEFINE_EVENT(kvm_mmu_set_bit_class, kvm_mmu_set_dirty_bit, + + TP_PROTO(unsigned long table_gfn, unsigned index, unsigned size), + + TP_ARGS(table_gfn, index, size) +); + +TRACE_EVENT( + kvm_mmu_walker_error, + TP_PROTO(u32 pferr), + TP_ARGS(pferr), + + TP_STRUCT__entry( + __field(__u32, pferr) + ), + + TP_fast_assign( + __entry->pferr = pferr; + ), + + TP_printk("pferr %x %s", __entry->pferr, + __print_flags(__entry->pferr, "|", kvm_mmu_trace_pferr_flags)) +); + +TRACE_EVENT( + kvm_mmu_get_page, + TP_PROTO(struct kvm_mmu_page *sp, bool created), + TP_ARGS(sp, created), + + TP_STRUCT__entry( + KVM_MMU_PAGE_FIELDS + __field(bool, created) + ), + + TP_fast_assign( + KVM_MMU_PAGE_ASSIGN(sp) + __entry->created = created; + ), + + TP_printk("%s %s", KVM_MMU_PAGE_PRINTK(), + __entry->created ? "new" : "existing") +); + +DECLARE_EVENT_CLASS(kvm_mmu_page_class, + + TP_PROTO(struct kvm_mmu_page *sp), + TP_ARGS(sp), + + TP_STRUCT__entry( + KVM_MMU_PAGE_FIELDS + ), + + TP_fast_assign( + KVM_MMU_PAGE_ASSIGN(sp) + ), + + TP_printk("%s", KVM_MMU_PAGE_PRINTK()) +); + +DEFINE_EVENT(kvm_mmu_page_class, kvm_mmu_sync_page, + TP_PROTO(struct kvm_mmu_page *sp), + + TP_ARGS(sp) +); + +DEFINE_EVENT(kvm_mmu_page_class, kvm_mmu_unsync_page, + TP_PROTO(struct kvm_mmu_page *sp), + + TP_ARGS(sp) +); + +DEFINE_EVENT(kvm_mmu_page_class, kvm_mmu_prepare_zap_page, + TP_PROTO(struct kvm_mmu_page *sp), + + TP_ARGS(sp) +); + +TRACE_EVENT( + mark_mmio_spte, + TP_PROTO(u64 *sptep, gfn_t gfn, unsigned access), + TP_ARGS(sptep, gfn, access), + + TP_STRUCT__entry( + __field(void *, sptep) + __field(gfn_t, gfn) + __field(unsigned, access) + ), + + TP_fast_assign( + __entry->sptep = sptep; + __entry->gfn = gfn; + __entry->access = access; + ), + + TP_printk("sptep:%p gfn %llx access %x", __entry->sptep, __entry->gfn, + __entry->access) +); + +TRACE_EVENT( + handle_mmio_page_fault, + TP_PROTO(u64 addr, gfn_t gfn, unsigned access), + TP_ARGS(addr, gfn, access), + + TP_STRUCT__entry( + __field(u64, addr) + __field(gfn_t, gfn) + __field(unsigned, access) + ), + + TP_fast_assign( + __entry->addr = addr; + __entry->gfn = gfn; + __entry->access = access; + ), + + TP_printk("addr:%llx gfn %llx access %x", __entry->addr, __entry->gfn, + __entry->access) +); + +#define __spte_satisfied(__spte) \ + (__entry->retry && is_writable_pte(__entry->__spte)) + +TRACE_EVENT( + fast_page_fault, + TP_PROTO(struct kvm_vcpu *vcpu, gva_t gva, u32 error_code, + u64 *sptep, u64 old_spte, bool retry), + TP_ARGS(vcpu, gva, error_code, sptep, old_spte, retry), + + TP_STRUCT__entry( + __field(int, vcpu_id) + __field(gva_t, gva) + __field(u32, error_code) + __field(u64 *, sptep) + __field(u64, old_spte) + __field(u64, new_spte) + __field(bool, retry) + ), + + TP_fast_assign( + __entry->vcpu_id = vcpu->vcpu_id; + __entry->gva = gva; + __entry->error_code = error_code; + __entry->sptep = sptep; + __entry->old_spte = old_spte; + __entry->new_spte = *sptep; + __entry->retry = retry; + ), + + TP_printk("vcpu %d gva %lx error_code %s sptep %p old %#llx" + " new %llx spurious %d fixed %d", __entry->vcpu_id, + __entry->gva, __print_flags(__entry->error_code, "|", + kvm_mmu_trace_pferr_flags), __entry->sptep, + __entry->old_spte, __entry->new_spte, + __spte_satisfied(old_spte), __spte_satisfied(new_spte) + ) +); +#endif /* _TRACE_KVMMMU_H */ + +#undef TRACE_INCLUDE_PATH +#define TRACE_INCLUDE_PATH . +#undef TRACE_INCLUDE_FILE +#define TRACE_INCLUDE_FILE mmutrace + +/* This part must be outside protection */ +#include --- linux-3.11.0.orig/ubuntu/lttng-modules/instrumentation/events/lttng-module/printk.h +++ linux-3.11.0/ubuntu/lttng-modules/instrumentation/events/lttng-module/printk.h @@ -0,0 +1,83 @@ +#undef TRACE_SYSTEM +#define TRACE_SYSTEM printk + +#if !defined(_TRACE_PRINTK_H) || defined(TRACE_HEADER_MULTI_READ) +#define _TRACE_PRINTK_H + +#include +#include + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,10,0)) + +TRACE_EVENT(console, + TP_PROTO(const char *text, size_t len), + + TP_ARGS(text, len), + + TP_STRUCT__entry( + __dynamic_array_text(char, msg, len) + ), + + TP_fast_assign( + tp_memcpy_dyn(msg, text) + ), + + TP_printk("%s", __get_str(msg)) +) + +#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3,5,0)) + +TRACE_EVENT_CONDITION(console, + TP_PROTO(const char *log_buf, unsigned start, unsigned end, + unsigned log_buf_len), + + TP_ARGS(log_buf, start, end, log_buf_len), + + TP_CONDITION(start != end), + + TP_STRUCT__entry( + __dynamic_array_text(char, msg, end - start) + ), + + TP_fast_assign( + tp_memcpy_dyn(msg, log_buf + start) + ), + + TP_printk("%s", __get_str(msg)) +) + +#else /* (LINUX_VERSION_CODE < KERNEL_VERSION(3,5,0)) */ + +TRACE_EVENT_CONDITION(console, + TP_PROTO(const char *log_buf, unsigned start, unsigned end, + unsigned log_buf_len), + + TP_ARGS(log_buf, start, end, log_buf_len), + + TP_CONDITION(start != end), + + TP_STRUCT__entry( + __dynamic_array_text_2(char, msg, + (start & (log_buf_len - 1)) > (end & (log_buf_len - 1)) + ? log_buf_len - (start & (log_buf_len - 1)) + : end - start, + (start & (log_buf_len - 1)) > (end & (log_buf_len - 1)) + ? end & (log_buf_len - 1) + : 0) + ), + + TP_fast_assign( + tp_memcpy_dyn_2(msg, + log_buf + (start & (log_buf_len - 1)), + log_buf) + ), + + TP_printk("%s", __get_str(msg)) +) + +#endif + +#endif /* _TRACE_PRINTK_H */ + +/* This part must be outside protection */ +#include "../../../probes/define_trace.h" --- linux-3.11.0.orig/ubuntu/lttng-modules/instrumentation/events/lttng-module/kvm.h +++ linux-3.11.0/ubuntu/lttng-modules/instrumentation/events/lttng-module/kvm.h @@ -0,0 +1,356 @@ +#if !defined(_TRACE_KVM_MAIN_H) || defined(TRACE_HEADER_MULTI_READ) +#define _TRACE_KVM_MAIN_H + +#include +#include + +#undef TRACE_SYSTEM +#define TRACE_SYSTEM kvm + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,38)) + +#define ERSN(x) { KVM_EXIT_##x, "KVM_EXIT_" #x } + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,9,0)) + +#define kvm_trace_exit_reason \ + ERSN(UNKNOWN), ERSN(EXCEPTION), ERSN(IO), ERSN(HYPERCALL), \ + ERSN(DEBUG), ERSN(HLT), ERSN(MMIO), ERSN(IRQ_WINDOW_OPEN), \ + ERSN(SHUTDOWN), ERSN(FAIL_ENTRY), ERSN(INTR), ERSN(SET_TPR), \ + ERSN(TPR_ACCESS), ERSN(S390_SIEIC), ERSN(S390_RESET), ERSN(DCR),\ + ERSN(NMI), ERSN(INTERNAL_ERROR), ERSN(OSI), ERSN(PAPR_HCALL), \ + ERSN(S390_UCONTROL), ERSN(WATCHDOG), ERSN(S390_TSCH) + +#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3,6,0)) + +#define kvm_trace_exit_reason \ + ERSN(UNKNOWN), ERSN(EXCEPTION), ERSN(IO), ERSN(HYPERCALL), \ + ERSN(DEBUG), ERSN(HLT), ERSN(MMIO), ERSN(IRQ_WINDOW_OPEN), \ + ERSN(SHUTDOWN), ERSN(FAIL_ENTRY), ERSN(INTR), ERSN(SET_TPR), \ + ERSN(TPR_ACCESS), ERSN(S390_SIEIC), ERSN(S390_RESET), ERSN(DCR),\ + ERSN(NMI), ERSN(INTERNAL_ERROR), ERSN(OSI), ERSN(PAPR_HCALL), \ + ERSN(S390_UCONTROL) + +#else + +#define kvm_trace_exit_reason \ + ERSN(UNKNOWN), ERSN(EXCEPTION), ERSN(IO), ERSN(HYPERCALL), \ + ERSN(DEBUG), ERSN(HLT), ERSN(MMIO), ERSN(IRQ_WINDOW_OPEN), \ + ERSN(SHUTDOWN), ERSN(FAIL_ENTRY), ERSN(INTR), ERSN(SET_TPR), \ + ERSN(TPR_ACCESS), ERSN(S390_SIEIC), ERSN(S390_RESET), ERSN(DCR),\ + ERSN(NMI), ERSN(INTERNAL_ERROR), ERSN(OSI) + +#endif + +TRACE_EVENT(kvm_userspace_exit, + TP_PROTO(__u32 reason, int errno), + TP_ARGS(reason, errno), + + TP_STRUCT__entry( + __field( __u32, reason ) + __field( int, errno ) + ), + + TP_fast_assign( + tp_assign(reason, reason) + tp_assign(errno, errno) + ), + + TP_printk("reason %s (%d)", + __entry->errno < 0 ? + (__entry->errno == -EINTR ? "restart" : "error") : + __print_symbolic(__entry->reason, kvm_trace_exit_reason), + __entry->errno < 0 ? -__entry->errno : __entry->reason) +) +#endif + +#if (LINUX_VERSION_CODE < KERNEL_VERSION(3,6,0)) +#if defined(__KVM_HAVE_IOAPIC) +#undef __KVM_HAVE_IRQ_LINE +#define __KVM_HAVE_IRQ_LINE +#endif +#endif + +#if defined(__KVM_HAVE_IRQ_LINE) +TRACE_EVENT(kvm_set_irq, + TP_PROTO(unsigned int gsi, int level, int irq_source_id), + TP_ARGS(gsi, level, irq_source_id), + + TP_STRUCT__entry( + __field( unsigned int, gsi ) + __field( int, level ) + __field( int, irq_source_id ) + ), + + TP_fast_assign( + tp_assign(gsi, gsi) + tp_assign(level, level) + tp_assign(irq_source_id, irq_source_id) + ), + + TP_printk("gsi %u level %d source %d", + __entry->gsi, __entry->level, __entry->irq_source_id) +) +#endif + +#if defined(__KVM_HAVE_IOAPIC) +#define kvm_deliver_mode \ + {0x0, "Fixed"}, \ + {0x1, "LowPrio"}, \ + {0x2, "SMI"}, \ + {0x3, "Res3"}, \ + {0x4, "NMI"}, \ + {0x5, "INIT"}, \ + {0x6, "SIPI"}, \ + {0x7, "ExtINT"} + +TRACE_EVENT(kvm_ioapic_set_irq, + TP_PROTO(__u64 e, int pin, bool coalesced), + TP_ARGS(e, pin, coalesced), + + TP_STRUCT__entry( + __field( __u64, e ) + __field( int, pin ) + __field( bool, coalesced ) + ), + + TP_fast_assign( + tp_assign(e, e) + tp_assign(pin, pin) + tp_assign(coalesced, coalesced) + ), + + TP_printk("pin %u dst %x vec=%u (%s|%s|%s%s)%s", + __entry->pin, (u8)(__entry->e >> 56), (u8)__entry->e, + __print_symbolic((__entry->e >> 8 & 0x7), kvm_deliver_mode), + (__entry->e & (1<<11)) ? "logical" : "physical", + (__entry->e & (1<<15)) ? "level" : "edge", + (__entry->e & (1<<16)) ? "|masked" : "", + __entry->coalesced ? " (coalesced)" : "") +) + +TRACE_EVENT(kvm_msi_set_irq, + TP_PROTO(__u64 address, __u64 data), + TP_ARGS(address, data), + + TP_STRUCT__entry( + __field( __u64, address ) + __field( __u64, data ) + ), + + TP_fast_assign( + tp_assign(address, address) + tp_assign(data, data) + ), + + TP_printk("dst %u vec %x (%s|%s|%s%s)", + (u8)(__entry->address >> 12), (u8)__entry->data, + __print_symbolic((__entry->data >> 8 & 0x7), kvm_deliver_mode), + (__entry->address & (1<<2)) ? "logical" : "physical", + (__entry->data & (1<<15)) ? "level" : "edge", + (__entry->address & (1<<3)) ? "|rh" : "") +) + +#define kvm_irqchips \ + {KVM_IRQCHIP_PIC_MASTER, "PIC master"}, \ + {KVM_IRQCHIP_PIC_SLAVE, "PIC slave"}, \ + {KVM_IRQCHIP_IOAPIC, "IOAPIC"} + +TRACE_EVENT(kvm_ack_irq, + TP_PROTO(unsigned int irqchip, unsigned int pin), + TP_ARGS(irqchip, pin), + + TP_STRUCT__entry( + __field( unsigned int, irqchip ) + __field( unsigned int, pin ) + ), + + TP_fast_assign( + tp_assign(irqchip, irqchip) + tp_assign(pin, pin) + ), + + TP_printk("irqchip %s pin %u", + __print_symbolic(__entry->irqchip, kvm_irqchips), + __entry->pin) +) + + + +#endif /* defined(__KVM_HAVE_IOAPIC) */ + +#define KVM_TRACE_MMIO_READ_UNSATISFIED 0 +#define KVM_TRACE_MMIO_READ 1 +#define KVM_TRACE_MMIO_WRITE 2 + +#define kvm_trace_symbol_mmio \ + { KVM_TRACE_MMIO_READ_UNSATISFIED, "unsatisfied-read" }, \ + { KVM_TRACE_MMIO_READ, "read" }, \ + { KVM_TRACE_MMIO_WRITE, "write" } + +TRACE_EVENT(kvm_mmio, + TP_PROTO(int type, int len, u64 gpa, u64 val), + TP_ARGS(type, len, gpa, val), + + TP_STRUCT__entry( + __field( u32, type ) + __field( u32, len ) + __field( u64, gpa ) + __field( u64, val ) + ), + + TP_fast_assign( + tp_assign(type, type) + tp_assign(len, len) + tp_assign(gpa, gpa) + tp_assign(val, val) + ), + + TP_printk("mmio %s len %u gpa 0x%llx val 0x%llx", + __print_symbolic(__entry->type, kvm_trace_symbol_mmio), + __entry->len, __entry->gpa, __entry->val) +) + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,34)) + +#define kvm_fpu_load_symbol \ + {0, "unload"}, \ + {1, "load"} + +TRACE_EVENT(kvm_fpu, + TP_PROTO(int load), + TP_ARGS(load), + + TP_STRUCT__entry( + __field( u32, load ) + ), + + TP_fast_assign( + tp_assign(load, load) + ), + + TP_printk("%s", __print_symbolic(__entry->load, kvm_fpu_load_symbol)) +) + +TRACE_EVENT(kvm_age_page, + TP_PROTO(ulong hva, struct kvm_memory_slot *slot, int ref), + TP_ARGS(hva, slot, ref), + + TP_STRUCT__entry( + __field( u64, hva ) + __field( u64, gfn ) + __field( u8, referenced ) + ), + + TP_fast_assign( + tp_assign(hva, hva) + tp_assign(gfn, + slot->base_gfn + ((hva - slot->userspace_addr) >> PAGE_SHIFT)) + tp_assign(referenced, ref) + ), + + TP_printk("hva %llx gfn %llx %s", + __entry->hva, __entry->gfn, + __entry->referenced ? "YOUNG" : "OLD") +) +#endif + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,38)) + +#ifdef CONFIG_KVM_ASYNC_PF +DECLARE_EVENT_CLASS(kvm_async_get_page_class, + + TP_PROTO(u64 gva, u64 gfn), + + TP_ARGS(gva, gfn), + + TP_STRUCT__entry( + __field(__u64, gva) + __field(u64, gfn) + ), + + TP_fast_assign( + tp_assign(gva, gva) + tp_assign(gfn, gfn) + ), + + TP_printk("gva = %#llx, gfn = %#llx", __entry->gva, __entry->gfn) +) + +DEFINE_EVENT(kvm_async_get_page_class, kvm_try_async_get_page, + + TP_PROTO(u64 gva, u64 gfn), + + TP_ARGS(gva, gfn) +) + +DEFINE_EVENT(kvm_async_get_page_class, kvm_async_pf_doublefault, + + TP_PROTO(u64 gva, u64 gfn), + + TP_ARGS(gva, gfn) +) + +DECLARE_EVENT_CLASS(kvm_async_pf_nopresent_ready, + + TP_PROTO(u64 token, u64 gva), + + TP_ARGS(token, gva), + + TP_STRUCT__entry( + __field(__u64, token) + __field(__u64, gva) + ), + + TP_fast_assign( + tp_assign(token, token) + tp_assign(gva, gva) + ), + + TP_printk("token %#llx gva %#llx", __entry->token, __entry->gva) + +) + +DEFINE_EVENT(kvm_async_pf_nopresent_ready, kvm_async_pf_not_present, + + TP_PROTO(u64 token, u64 gva), + + TP_ARGS(token, gva) +) + +DEFINE_EVENT(kvm_async_pf_nopresent_ready, kvm_async_pf_ready, + + TP_PROTO(u64 token, u64 gva), + + TP_ARGS(token, gva) +) + +TRACE_EVENT( + kvm_async_pf_completed, + TP_PROTO(unsigned long address, struct page *page, u64 gva), + TP_ARGS(address, page, gva), + + TP_STRUCT__entry( + __field(unsigned long, address) + __field(pfn_t, pfn) + __field(u64, gva) + ), + + TP_fast_assign( + tp_assign(address, address) + tp_assign(pfn, page ? page_to_pfn(page) : 0) + tp_assign(gva, gva) + ), + + TP_printk("gva %#llx address %#lx pfn %#llx", __entry->gva, + __entry->address, __entry->pfn) +) + +#endif + +#endif + +#endif /* _TRACE_KVM_MAIN_H */ + +/* This part must be outside protection */ +#include "../../../probes/define_trace.h" --- linux-3.11.0.orig/ubuntu/lttng-modules/instrumentation/events/lttng-module/lock.h +++ linux-3.11.0/ubuntu/lttng-modules/instrumentation/events/lttng-module/lock.h @@ -0,0 +1,207 @@ +#include + +#undef TRACE_SYSTEM +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,33)) +#define TRACE_SYSTEM lock +#else +#define TRACE_SYSTEM lockdep +#define TRACE_INCLUDE_FILE lock +#if defined(_TRACE_LOCKDEP_H) +#define _TRACE_LOCK_H +#endif +#endif + +#if !defined(_TRACE_LOCK_H) || defined(TRACE_HEADER_MULTI_READ) +#define _TRACE_LOCK_H + +#include +#include + +#ifdef CONFIG_LOCKDEP + +TRACE_EVENT(lock_acquire, + + TP_PROTO(struct lockdep_map *lock, unsigned int subclass, + int trylock, int read, int check, + struct lockdep_map *next_lock, unsigned long ip), + + TP_ARGS(lock, subclass, trylock, read, check, next_lock, ip), + + TP_STRUCT__entry( + __field(unsigned int, flags) + __string(name, lock->name) +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,34)) + __field(void *, lockdep_addr) +#endif + ), + + TP_fast_assign( + tp_assign(flags, (trylock ? 1 : 0) | (read ? 2 : 0)) + tp_strcpy(name, lock->name) +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,34)) + tp_assign(lockdep_addr, lock) +#endif + ), + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,34)) + TP_printk("%p %s%s%s", __entry->lockdep_addr, +#else + TP_printk("%s%s%s", +#endif + (__entry->flags & 1) ? "try " : "", + (__entry->flags & 2) ? "read " : "", + __get_str(name)) +) + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,35)) + +DECLARE_EVENT_CLASS(lock, + + TP_PROTO(struct lockdep_map *lock, unsigned long ip), + + TP_ARGS(lock, ip), + + TP_STRUCT__entry( + __string( name, lock->name ) + __field( void *, lockdep_addr ) + ), + + TP_fast_assign( + tp_strcpy(name, lock->name) + tp_assign(lockdep_addr, lock) + ), + + TP_printk("%p %s", __entry->lockdep_addr, __get_str(name)) +) + +DEFINE_EVENT(lock, lock_release, + + TP_PROTO(struct lockdep_map *lock, unsigned long ip), + + TP_ARGS(lock, ip) +) + +#ifdef CONFIG_LOCK_STAT + +DEFINE_EVENT(lock, lock_contended, + + TP_PROTO(struct lockdep_map *lock, unsigned long ip), + + TP_ARGS(lock, ip) +) + +DEFINE_EVENT(lock, lock_acquired, + + TP_PROTO(struct lockdep_map *lock, unsigned long ip), + + TP_ARGS(lock, ip) +) + +#endif + +#else /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,35)) */ + +TRACE_EVENT(lock_release, + + TP_PROTO(struct lockdep_map *lock, int nested, unsigned long ip), + + TP_ARGS(lock, nested, ip), + + TP_STRUCT__entry( + __string( name, lock->name ) +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,34)) + __field( void *, lockdep_addr ) +#endif + ), + + TP_fast_assign( + tp_strcpy(name, lock->name) +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,34)) + tp_assign(lockdep_addr, lock) +#endif + ), + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,34)) + TP_printk("%p %s", __entry->lockdep_addr, __get_str(name)) +#else + TP_printk("%s", __get_str(name)) +#endif +) + +#ifdef CONFIG_LOCK_STAT + +TRACE_EVENT(lock_contended, + + TP_PROTO(struct lockdep_map *lock, unsigned long ip), + + TP_ARGS(lock, ip), + + TP_STRUCT__entry( + __string( name, lock->name ) +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,34)) + __field( void *, lockdep_addr ) +#endif + ), + + TP_fast_assign( + tp_strcpy(name, lock->name) +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,34)) + tp_assign(lockdep_addr, lock) +#endif + ), + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,34)) + TP_printk("%p %s", __entry->lockdep_addr, __get_str(name)) +#else + TP_printk("%s", __get_str(name)) +#endif +) + +TRACE_EVENT(lock_acquired, + + TP_PROTO(struct lockdep_map *lock, unsigned long ip, s64 waittime), + + TP_ARGS(lock, ip, waittime), + + TP_STRUCT__entry( + __string( name, lock->name ) +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,34)) + __field( s64, wait_nsec ) + __field( void *, lockdep_addr ) +#else + __field(unsigned long, wait_usec) + __field(unsigned long, wait_nsec_rem) +#endif + ), + + TP_fast_assign( + tp_strcpy(name, lock->name) +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,34)) + tp_assign(wait_nsec, waittime) + tp_assign(lockdep_addr, lock) +#else + tp_assign(wait_usec, (unsigned long)waittime) + tp_assign(wait_nsec_rem, do_div(waittime, NSEC_PER_USEC)) +#endif + ), + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,34)) + TP_printk("%p %s (%llu ns)", __entry->lockdep_addr, + __get_str(name), __entry->wait_nsec) +#else + TP_printk("%s (%lu.%03lu us)", + __get_str(name), + __entry->wait_usec, __entry->wait_nsec_rem) +#endif +) + +#endif + +#endif /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,35)) */ + +#endif + +#endif /* _TRACE_LOCK_H */ + +/* This part must be outside protection */ +#include "../../../probes/define_trace.h" --- linux-3.11.0.orig/ubuntu/lttng-modules/instrumentation/events/lttng-module/workqueue.h +++ linux-3.11.0/ubuntu/lttng-modules/instrumentation/events/lttng-module/workqueue.h @@ -0,0 +1,219 @@ +#undef TRACE_SYSTEM +#define TRACE_SYSTEM workqueue + +#if !defined(_TRACE_WORKQUEUE_H) || defined(TRACE_HEADER_MULTI_READ) +#define _TRACE_WORKQUEUE_H + +#include +#include +#include + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,36)) + +#ifndef _TRACE_WORKQUEUE_DEF_ +#define _TRACE_WORKQUEUE_DEF_ + +struct worker; +struct global_cwq; + +#endif + +DECLARE_EVENT_CLASS(workqueue_work, + + TP_PROTO(struct work_struct *work), + + TP_ARGS(work), + + TP_STRUCT__entry( + __field( void *, work ) + ), + + TP_fast_assign( + tp_assign(work, work) + ), + + TP_printk("work struct %p", __entry->work) +) + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,37)) +/** + * workqueue_queue_work - called when a work gets queued + * @req_cpu: the requested cpu + * @cwq: pointer to struct cpu_workqueue_struct + * @work: pointer to struct work_struct + * + * This event occurs when a work is queued immediately or once a + * delayed work is actually queued on a workqueue (ie: once the delay + * has been reached). + */ +TRACE_EVENT(workqueue_queue_work, + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,9,0)) + TP_PROTO(unsigned int req_cpu, struct pool_workqueue *pwq, + struct work_struct *work), + + TP_ARGS(req_cpu, pwq, work), +#else + TP_PROTO(unsigned int req_cpu, struct cpu_workqueue_struct *cwq, + struct work_struct *work), + + TP_ARGS(req_cpu, cwq, work), +#endif + + TP_STRUCT__entry( + __field( void *, work ) + __field( void *, function) + __field( unsigned int, req_cpu ) + ), + + TP_fast_assign( + tp_assign(work, work) + tp_assign(function, work->func) + tp_assign(req_cpu, req_cpu) + ), + + TP_printk("work struct=%p function=%pf req_cpu=%u", + __entry->work, __entry->function, + __entry->req_cpu) +) + +/** + * workqueue_activate_work - called when a work gets activated + * @work: pointer to struct work_struct + * + * This event occurs when a queued work is put on the active queue, + * which happens immediately after queueing unless @max_active limit + * is reached. + */ +DEFINE_EVENT(workqueue_work, workqueue_activate_work, + + TP_PROTO(struct work_struct *work), + + TP_ARGS(work) +) +#endif + +/** + * workqueue_execute_start - called immediately before the workqueue callback + * @work: pointer to struct work_struct + * + * Allows to track workqueue execution. + */ +TRACE_EVENT(workqueue_execute_start, + + TP_PROTO(struct work_struct *work), + + TP_ARGS(work), + + TP_STRUCT__entry( + __field( void *, work ) + __field( void *, function) + ), + + TP_fast_assign( + tp_assign(work, work) + tp_assign(function, work->func) + ), + + TP_printk("work struct %p: function %pf", __entry->work, __entry->function) +) + +/** + * workqueue_execute_end - called immediately after the workqueue callback + * @work: pointer to struct work_struct + * + * Allows to track workqueue execution. + */ +DEFINE_EVENT(workqueue_work, workqueue_execute_end, + + TP_PROTO(struct work_struct *work), + + TP_ARGS(work) +) + +#else + +DECLARE_EVENT_CLASS(workqueue, + + TP_PROTO(struct task_struct *wq_thread, struct work_struct *work), + + TP_ARGS(wq_thread, work), + + TP_STRUCT__entry( + __array(char, thread_comm, TASK_COMM_LEN) + __field(pid_t, thread_pid) + __field(work_func_t, func) + ), + + TP_fast_assign( + tp_memcpy(thread_comm, wq_thread->comm, TASK_COMM_LEN) + tp_assign(thread_pid, wq_thread->pid) + tp_assign(func, work->func) + ), + + TP_printk("thread=%s:%d func=%pf", __entry->thread_comm, + __entry->thread_pid, __entry->func) +) + +DEFINE_EVENT(workqueue, workqueue_insertion, + + TP_PROTO(struct task_struct *wq_thread, struct work_struct *work), + + TP_ARGS(wq_thread, work) +) + +DEFINE_EVENT(workqueue, workqueue_execution, + + TP_PROTO(struct task_struct *wq_thread, struct work_struct *work), + + TP_ARGS(wq_thread, work) +) + +/* Trace the creation of one workqueue thread on a cpu */ +TRACE_EVENT(workqueue_creation, + + TP_PROTO(struct task_struct *wq_thread, int cpu), + + TP_ARGS(wq_thread, cpu), + + TP_STRUCT__entry( + __array(char, thread_comm, TASK_COMM_LEN) + __field(pid_t, thread_pid) + __field(int, cpu) + ), + + TP_fast_assign( + tp_memcpy(thread_comm, wq_thread->comm, TASK_COMM_LEN) + tp_assign(thread_pid, wq_thread->pid) + tp_assign(cpu, cpu) + ), + + TP_printk("thread=%s:%d cpu=%d", __entry->thread_comm, + __entry->thread_pid, __entry->cpu) +) + +TRACE_EVENT(workqueue_destruction, + + TP_PROTO(struct task_struct *wq_thread), + + TP_ARGS(wq_thread), + + TP_STRUCT__entry( + __array(char, thread_comm, TASK_COMM_LEN) + __field(pid_t, thread_pid) + ), + + TP_fast_assign( + tp_memcpy(thread_comm, wq_thread->comm, TASK_COMM_LEN) + tp_assign(thread_pid, wq_thread->pid) + ), + + TP_printk("thread=%s:%d", __entry->thread_comm, __entry->thread_pid) +) + +#endif + +#endif /* _TRACE_WORKQUEUE_H */ + +/* This part must be outside protection */ +#include "../../../probes/define_trace.h" --- linux-3.11.0.orig/ubuntu/lttng-modules/instrumentation/events/lttng-module/udp.h +++ linux-3.11.0/ubuntu/lttng-modules/instrumentation/events/lttng-module/udp.h @@ -0,0 +1,32 @@ +#undef TRACE_SYSTEM +#define TRACE_SYSTEM udp + +#if !defined(_TRACE_UDP_H) || defined(TRACE_HEADER_MULTI_READ) +#define _TRACE_UDP_H + +#include +#include + +TRACE_EVENT(udp_fail_queue_rcv_skb, + + TP_PROTO(int rc, struct sock *sk), + + TP_ARGS(rc, sk), + + TP_STRUCT__entry( + __field(int, rc) + __field(__u16, lport) + ), + + TP_fast_assign( + tp_assign(rc, rc) + tp_assign(lport, inet_sk(sk)->inet_num) + ), + + TP_printk("rc=%d port=%hu", __entry->rc, __entry->lport) +) + +#endif /* _TRACE_UDP_H */ + +/* This part must be outside protection */ +#include "../../../probes/define_trace.h" --- linux-3.11.0.orig/ubuntu/lttng-modules/instrumentation/events/lttng-module/regmap.h +++ linux-3.11.0/ubuntu/lttng-modules/instrumentation/events/lttng-module/regmap.h @@ -0,0 +1,188 @@ +#undef TRACE_SYSTEM +#define TRACE_SYSTEM regmap + +#if !defined(_TRACE_REGMAP_H) || defined(TRACE_HEADER_MULTI_READ) +#define _TRACE_REGMAP_H + +#include +#include +#include + +#ifndef _TRACE_REGMAP_DEF_ +#define _TRACE_REGMAP_DEF_ +struct device; +struct regmap; +#endif + +/* + * Log register events + */ +DECLARE_EVENT_CLASS(regmap_reg, + + TP_PROTO(struct device *dev, unsigned int reg, + unsigned int val), + + TP_ARGS(dev, reg, val), + + TP_STRUCT__entry( + __string( name, dev_name(dev) ) + __field( unsigned int, reg ) + __field( unsigned int, val ) + ), + + TP_fast_assign( + tp_strcpy(name, dev_name(dev)) + tp_assign(reg, reg) + tp_assign(val, val) + ), + + TP_printk("%s reg=%x val=%x", __get_str(name), + (unsigned int)__entry->reg, + (unsigned int)__entry->val) +) + +DEFINE_EVENT(regmap_reg, regmap_reg_write, + + TP_PROTO(struct device *dev, unsigned int reg, + unsigned int val), + + TP_ARGS(dev, reg, val) + +) + +DEFINE_EVENT(regmap_reg, regmap_reg_read, + + TP_PROTO(struct device *dev, unsigned int reg, + unsigned int val), + + TP_ARGS(dev, reg, val) + +) + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,3,0)) +DEFINE_EVENT(regmap_reg, regmap_reg_read_cache, + + TP_PROTO(struct device *dev, unsigned int reg, + unsigned int val), + + TP_ARGS(dev, reg, val) + +) +#endif + +DECLARE_EVENT_CLASS(regmap_block, + + TP_PROTO(struct device *dev, unsigned int reg, int count), + + TP_ARGS(dev, reg, count), + + TP_STRUCT__entry( + __string( name, dev_name(dev) ) + __field( unsigned int, reg ) + __field( int, count ) + ), + + TP_fast_assign( + tp_strcpy(name, dev_name(dev)) + tp_assign(reg, reg) + tp_assign(count, count) + ), + + TP_printk("%s reg=%x count=%d", __get_str(name), + (unsigned int)__entry->reg, + (int)__entry->count) +) + +DEFINE_EVENT(regmap_block, regmap_hw_read_start, + + TP_PROTO(struct device *dev, unsigned int reg, int count), + + TP_ARGS(dev, reg, count) +) + +DEFINE_EVENT(regmap_block, regmap_hw_read_done, + + TP_PROTO(struct device *dev, unsigned int reg, int count), + + TP_ARGS(dev, reg, count) +) + +DEFINE_EVENT(regmap_block, regmap_hw_write_start, + + TP_PROTO(struct device *dev, unsigned int reg, int count), + + TP_ARGS(dev, reg, count) +) + +DEFINE_EVENT(regmap_block, regmap_hw_write_done, + + TP_PROTO(struct device *dev, unsigned int reg, int count), + + TP_ARGS(dev, reg, count) +) + +TRACE_EVENT(regcache_sync, + + TP_PROTO(struct device *dev, const char *type, + const char *status), + + TP_ARGS(dev, type, status), + + TP_STRUCT__entry( + __string( name, dev_name(dev) ) + __string( status, status ) + __string( type, type ) + ), + + TP_fast_assign( + tp_strcpy(name, dev_name(dev)) + tp_strcpy(status, status) + tp_strcpy(type, type) + ), + + TP_printk("%s type=%s status=%s", __get_str(name), + __get_str(type), __get_str(status)) +) + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,4,0)) +DECLARE_EVENT_CLASS(regmap_bool, + + TP_PROTO(struct device *dev, bool flag), + + TP_ARGS(dev, flag), + + TP_STRUCT__entry( + __string( name, dev_name(dev) ) + __field( int, flag ) + ), + + TP_fast_assign( + tp_strcpy(name, dev_name(dev)) + tp_assign(flag, flag) + ), + + TP_printk("%s flag=%d", __get_str(name), + (int)__entry->flag) +) + +DEFINE_EVENT(regmap_bool, regmap_cache_only, + + TP_PROTO(struct device *dev, bool flag), + + TP_ARGS(dev, flag) + +) + +DEFINE_EVENT(regmap_bool, regmap_cache_bypass, + + TP_PROTO(struct device *dev, bool flag), + + TP_ARGS(dev, flag) + +) +#endif + +#endif /* _TRACE_REGMAP_H */ + +/* This part must be outside protection */ +#include "../../../probes/define_trace.h" --- linux-3.11.0.orig/ubuntu/lttng-modules/instrumentation/events/lttng-module/napi.h +++ linux-3.11.0/ubuntu/lttng-modules/instrumentation/events/lttng-module/napi.h @@ -0,0 +1,38 @@ +#undef TRACE_SYSTEM +#define TRACE_SYSTEM napi + +#if !defined(_TRACE_NAPI_H_) || defined(TRACE_HEADER_MULTI_READ) +#define _TRACE_NAPI_H_ + +#include +#include +#include + +#define NO_DEV "(no_device)" + +TRACE_EVENT(napi_poll, + + TP_PROTO(struct napi_struct *napi), + + TP_ARGS(napi), + + TP_STRUCT__entry( + __field( struct napi_struct *, napi) + __string( dev_name, napi->dev ? napi->dev->name : NO_DEV) + ), + + TP_fast_assign( + tp_assign(napi, napi) + tp_strcpy(dev_name, napi->dev ? napi->dev->name : NO_DEV) + ), + + TP_printk("napi poll on napi struct %p for device %s", + __entry->napi, __get_str(dev_name)) +) + +#undef NO_DEV + +#endif /* _TRACE_NAPI_H_ */ + +/* This part must be outside protection */ +#include "../../../probes/define_trace.h" --- linux-3.11.0.orig/ubuntu/lttng-modules/instrumentation/events/lttng-module/jbd2.h +++ linux-3.11.0/ubuntu/lttng-modules/instrumentation/events/lttng-module/jbd2.h @@ -0,0 +1,280 @@ +#undef TRACE_SYSTEM +#define TRACE_SYSTEM jbd2 + +#if !defined(_TRACE_JBD2_H) || defined(TRACE_HEADER_MULTI_READ) +#define _TRACE_JBD2_H + +#include +#include +#include + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,32)) +#ifndef _TRACE_JBD2_DEF +#define _TRACE_JBD2_DEF +struct transaction_chp_stats_s; +struct transaction_run_stats_s; +#endif +#endif + +TRACE_EVENT(jbd2_checkpoint, + + TP_PROTO(journal_t *journal, int result), + + TP_ARGS(journal, result), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( int, result ) + ), + + TP_fast_assign( + tp_assign(dev, journal->j_fs_dev->bd_dev) + tp_assign(result, result) + ), + + TP_printk("dev %d,%d result %d", + MAJOR(__entry->dev), MINOR(__entry->dev), __entry->result) +) + +DECLARE_EVENT_CLASS(jbd2_commit, + + TP_PROTO(journal_t *journal, transaction_t *commit_transaction), + + TP_ARGS(journal, commit_transaction), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( char, sync_commit ) + __field( int, transaction ) + ), + + TP_fast_assign( + tp_assign(dev, journal->j_fs_dev->bd_dev) + tp_assign(sync_commit, commit_transaction->t_synchronous_commit) + tp_assign(transaction, commit_transaction->t_tid) + ), + + TP_printk("dev %d,%d transaction %d sync %d", + MAJOR(__entry->dev), MINOR(__entry->dev), + __entry->transaction, __entry->sync_commit) +) + +DEFINE_EVENT(jbd2_commit, jbd2_start_commit, + + TP_PROTO(journal_t *journal, transaction_t *commit_transaction), + + TP_ARGS(journal, commit_transaction) +) + +DEFINE_EVENT(jbd2_commit, jbd2_commit_locking, + + TP_PROTO(journal_t *journal, transaction_t *commit_transaction), + + TP_ARGS(journal, commit_transaction) +) + +DEFINE_EVENT(jbd2_commit, jbd2_commit_flushing, + + TP_PROTO(journal_t *journal, transaction_t *commit_transaction), + + TP_ARGS(journal, commit_transaction) +) + +DEFINE_EVENT(jbd2_commit, jbd2_commit_logging, + + TP_PROTO(journal_t *journal, transaction_t *commit_transaction), + + TP_ARGS(journal, commit_transaction) +) + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,4,0)) +DEFINE_EVENT(jbd2_commit, jbd2_drop_transaction, + + TP_PROTO(journal_t *journal, transaction_t *commit_transaction), + + TP_ARGS(journal, commit_transaction) +) +#endif + +TRACE_EVENT(jbd2_end_commit, + TP_PROTO(journal_t *journal, transaction_t *commit_transaction), + + TP_ARGS(journal, commit_transaction), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( char, sync_commit ) + __field( int, transaction ) + __field( int, head ) + ), + + TP_fast_assign( + tp_assign(dev, journal->j_fs_dev->bd_dev) + tp_assign(sync_commit, commit_transaction->t_synchronous_commit) + tp_assign(transaction, commit_transaction->t_tid) + tp_assign(head, journal->j_tail_sequence) + ), + + TP_printk("dev %d,%d transaction %d sync %d head %d", + MAJOR(__entry->dev), MINOR(__entry->dev), + __entry->transaction, __entry->sync_commit, __entry->head) +) + +TRACE_EVENT(jbd2_submit_inode_data, + TP_PROTO(struct inode *inode), + + TP_ARGS(inode), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + ), + + TP_fast_assign( + tp_assign(dev, inode->i_sb->s_dev) + tp_assign(ino, inode->i_ino) + ), + + TP_printk("dev %d,%d ino %lu", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino) +) + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,32)) +TRACE_EVENT(jbd2_run_stats, + TP_PROTO(dev_t dev, unsigned long tid, + struct transaction_run_stats_s *stats), + + TP_ARGS(dev, tid, stats), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( unsigned long, tid ) + __field( unsigned long, wait ) + __field( unsigned long, running ) + __field( unsigned long, locked ) + __field( unsigned long, flushing ) + __field( unsigned long, logging ) + __field( __u32, handle_count ) + __field( __u32, blocks ) + __field( __u32, blocks_logged ) + ), + + TP_fast_assign( + tp_assign(dev, dev) + tp_assign(tid, tid) + tp_assign(wait, stats->rs_wait) + tp_assign(running, stats->rs_running) + tp_assign(locked, stats->rs_locked) + tp_assign(flushing, stats->rs_flushing) + tp_assign(logging, stats->rs_logging) + tp_assign(handle_count, stats->rs_handle_count) + tp_assign(blocks, stats->rs_blocks) + tp_assign(blocks_logged, stats->rs_blocks_logged) + ), + + TP_printk("dev %d,%d tid %lu wait %u running %u locked %u flushing %u " + "logging %u handle_count %u blocks %u blocks_logged %u", + MAJOR(__entry->dev), MINOR(__entry->dev), __entry->tid, + jiffies_to_msecs(__entry->wait), + jiffies_to_msecs(__entry->running), + jiffies_to_msecs(__entry->locked), + jiffies_to_msecs(__entry->flushing), + jiffies_to_msecs(__entry->logging), + __entry->handle_count, __entry->blocks, + __entry->blocks_logged) +) + +TRACE_EVENT(jbd2_checkpoint_stats, + TP_PROTO(dev_t dev, unsigned long tid, + struct transaction_chp_stats_s *stats), + + TP_ARGS(dev, tid, stats), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( unsigned long, tid ) + __field( unsigned long, chp_time ) + __field( __u32, forced_to_close ) + __field( __u32, written ) + __field( __u32, dropped ) + ), + + TP_fast_assign( + tp_assign(dev, dev) + tp_assign(tid, tid) + tp_assign(chp_time, stats->cs_chp_time) + tp_assign(forced_to_close, stats->cs_forced_to_close) + tp_assign(written, stats->cs_written) + tp_assign(dropped, stats->cs_dropped) + ), + + TP_printk("dev %d,%d tid %lu chp_time %u forced_to_close %u " + "written %u dropped %u", + MAJOR(__entry->dev), MINOR(__entry->dev), __entry->tid, + jiffies_to_msecs(__entry->chp_time), + __entry->forced_to_close, __entry->written, __entry->dropped) +) +#endif + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,34)) +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,4,0)) +TRACE_EVENT(jbd2_update_log_tail, +#else +TRACE_EVENT(jbd2_cleanup_journal_tail, +#endif + + TP_PROTO(journal_t *journal, tid_t first_tid, + unsigned long block_nr, unsigned long freed), + + TP_ARGS(journal, first_tid, block_nr, freed), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( tid_t, tail_sequence ) + __field( tid_t, first_tid ) + __field(unsigned long, block_nr ) + __field(unsigned long, freed ) + ), + + TP_fast_assign( + tp_assign(dev, journal->j_fs_dev->bd_dev) + tp_assign(tail_sequence, journal->j_tail_sequence) + tp_assign(first_tid, first_tid) + tp_assign(block_nr, block_nr) + tp_assign(freed, freed) + ), + + TP_printk("dev %d,%d from %u to %u offset %lu freed %lu", + MAJOR(__entry->dev), MINOR(__entry->dev), + __entry->tail_sequence, __entry->first_tid, + __entry->block_nr, __entry->freed) +) +#endif + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,4,0)) +TRACE_EVENT(jbd2_write_superblock, + + TP_PROTO(journal_t *journal, int write_op), + + TP_ARGS(journal, write_op), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( int, write_op ) + ), + + TP_fast_assign( + tp_assign(dev, journal->j_fs_dev->bd_dev) + tp_assign(write_op, write_op) + ), + + TP_printk("dev %d,%d write_op %x", MAJOR(__entry->dev), + MINOR(__entry->dev), __entry->write_op) +) +#endif + +#endif /* _TRACE_JBD2_H */ + +/* This part must be outside protection */ +#include "../../../probes/define_trace.h" --- linux-3.11.0.orig/ubuntu/lttng-modules/instrumentation/events/lttng-module/random.h +++ linux-3.11.0/ubuntu/lttng-modules/instrumentation/events/lttng-module/random.h @@ -0,0 +1,152 @@ +#undef TRACE_SYSTEM +#define TRACE_SYSTEM random + +#if !defined(_TRACE_RANDOM_H) || defined(TRACE_HEADER_MULTI_READ) +#define _TRACE_RANDOM_H + +#include +#include + +DECLARE_EVENT_CLASS(random__mix_pool_bytes, + TP_PROTO(const char *pool_name, int bytes, unsigned long IP), + + TP_ARGS(pool_name, bytes, IP), + + TP_STRUCT__entry( + __string( pool_name, pool_name ) + __field( int, bytes ) + __field(unsigned long, IP ) + ), + + TP_fast_assign( + tp_strcpy(pool_name, pool_name) + tp_assign(bytes, bytes) + tp_assign(IP, IP) + ), + + TP_printk("%s pool: bytes %d caller %pF", + __get_str(pool_name), __entry->bytes, (void *)__entry->IP) +) + +DEFINE_EVENT_MAP(random__mix_pool_bytes, mix_pool_bytes, + + random_mix_pool_bytes, + + TP_PROTO(const char *pool_name, int bytes, unsigned long IP), + + TP_ARGS(pool_name, bytes, IP) +) + +DEFINE_EVENT_MAP(random__mix_pool_bytes, mix_pool_bytes_nolock, + + random_mix_pool_bytes_nolock, + + TP_PROTO(const char *pool_name, int bytes, unsigned long IP), + + TP_ARGS(pool_name, bytes, IP) +) + +TRACE_EVENT_MAP(credit_entropy_bits, + + random_credit_entropy_bits, + + TP_PROTO(const char *pool_name, int bits, int entropy_count, + int entropy_total, unsigned long IP), + + TP_ARGS(pool_name, bits, entropy_count, entropy_total, IP), + + TP_STRUCT__entry( + __string( pool_name, pool_name ) + __field( int, bits ) + __field( int, entropy_count ) + __field( int, entropy_total ) + __field(unsigned long, IP ) + ), + + TP_fast_assign( + tp_strcpy(pool_name, pool_name) + tp_assign(bits, bits) + tp_assign(entropy_count, entropy_count) + tp_assign(entropy_total, entropy_total) + tp_assign(IP, IP) + ), + + TP_printk("%s pool: bits %d entropy_count %d entropy_total %d " + "caller %pF", __get_str(pool_name), __entry->bits, + __entry->entropy_count, __entry->entropy_total, + (void *)__entry->IP) +) + +TRACE_EVENT_MAP(get_random_bytes, + + random_get_random_bytes, + + TP_PROTO(int nbytes, unsigned long IP), + + TP_ARGS(nbytes, IP), + + TP_STRUCT__entry( + __field( int, nbytes ) + __field(unsigned long, IP ) + ), + + TP_fast_assign( + tp_assign(nbytes, nbytes) + tp_assign(IP, IP) + ), + + TP_printk("nbytes %d caller %pF", __entry->nbytes, (void *)__entry->IP) +) + +DECLARE_EVENT_CLASS(random__extract_entropy, + TP_PROTO(const char *pool_name, int nbytes, int entropy_count, + unsigned long IP), + + TP_ARGS(pool_name, nbytes, entropy_count, IP), + + TP_STRUCT__entry( + __string( pool_name, pool_name ) + __field( int, nbytes ) + __field( int, entropy_count ) + __field(unsigned long, IP ) + ), + + TP_fast_assign( + tp_strcpy(pool_name, pool_name) + tp_assign(nbytes, nbytes) + tp_assign(entropy_count, entropy_count) + tp_assign(IP, IP) + ), + + TP_printk("%s pool: nbytes %d entropy_count %d caller %pF", + __get_str(pool_name), __entry->nbytes, __entry->entropy_count, + (void *)__entry->IP) +) + + +DEFINE_EVENT_MAP(random__extract_entropy, extract_entropy, + + random_extract_entropy, + + TP_PROTO(const char *pool_name, int nbytes, int entropy_count, + unsigned long IP), + + TP_ARGS(pool_name, nbytes, entropy_count, IP) +) + +DEFINE_EVENT_MAP(random__extract_entropy, extract_entropy_user, + + random_extract_entropy_user, + + TP_PROTO(const char *pool_name, int nbytes, int entropy_count, + unsigned long IP), + + TP_ARGS(pool_name, nbytes, entropy_count, IP) +) + + + +#endif /* _TRACE_RANDOM_H */ + +/* This part must be outside protection */ +#include "../../../probes/define_trace.h" --- linux-3.11.0.orig/ubuntu/lttng-modules/instrumentation/events/lttng-module/compaction.h +++ linux-3.11.0/ubuntu/lttng-modules/instrumentation/events/lttng-module/compaction.h @@ -0,0 +1,74 @@ +#undef TRACE_SYSTEM +#define TRACE_SYSTEM compaction + +#if !defined(_TRACE_COMPACTION_H) || defined(TRACE_HEADER_MULTI_READ) +#define _TRACE_COMPACTION_H + +#include +#include +#include + +DECLARE_EVENT_CLASS(mm_compaction_isolate_template, + + TP_PROTO(unsigned long nr_scanned, + unsigned long nr_taken), + + TP_ARGS(nr_scanned, nr_taken), + + TP_STRUCT__entry( + __field(unsigned long, nr_scanned) + __field(unsigned long, nr_taken) + ), + + TP_fast_assign( + tp_assign(nr_scanned, nr_scanned) + tp_assign(nr_taken, nr_taken) + ), + + TP_printk("nr_scanned=%lu nr_taken=%lu", + __entry->nr_scanned, + __entry->nr_taken) +) + +DEFINE_EVENT(mm_compaction_isolate_template, mm_compaction_isolate_migratepages, + + TP_PROTO(unsigned long nr_scanned, + unsigned long nr_taken), + + TP_ARGS(nr_scanned, nr_taken) +) + +DEFINE_EVENT(mm_compaction_isolate_template, mm_compaction_isolate_freepages, + TP_PROTO(unsigned long nr_scanned, + unsigned long nr_taken), + + TP_ARGS(nr_scanned, nr_taken) +) + +TRACE_EVENT(mm_compaction_migratepages, + + TP_PROTO(unsigned long nr_migrated, + unsigned long nr_failed), + + TP_ARGS(nr_migrated, nr_failed), + + TP_STRUCT__entry( + __field(unsigned long, nr_migrated) + __field(unsigned long, nr_failed) + ), + + TP_fast_assign( + tp_assign(nr_migrated, nr_migrated) + tp_assign(nr_failed, nr_failed) + ), + + TP_printk("nr_migrated=%lu nr_failed=%lu", + __entry->nr_migrated, + __entry->nr_failed) +) + + +#endif /* _TRACE_COMPACTION_H */ + +/* This part must be outside protection */ +#include "../../../probes/define_trace.h" --- linux-3.11.0.orig/ubuntu/lttng-modules/instrumentation/events/lttng-module/sched.h +++ linux-3.11.0/ubuntu/lttng-modules/instrumentation/events/lttng-module/sched.h @@ -0,0 +1,560 @@ +#undef TRACE_SYSTEM +#define TRACE_SYSTEM sched + +#if !defined(_TRACE_SCHED_H) || defined(TRACE_HEADER_MULTI_READ) +#define _TRACE_SCHED_H + +#include +#include +#include +#include +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,9,0)) +#include +#endif + +#ifndef _TRACE_SCHED_DEF_ +#define _TRACE_SCHED_DEF_ + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,35)) + +static inline long __trace_sched_switch_state(struct task_struct *p) +{ + long state = p->state; + +#ifdef CONFIG_PREEMPT + /* + * For all intents and purposes a preempted task is a running task. + */ + if (task_thread_info(p)->preempt_count & PREEMPT_ACTIVE) +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,2,0)) + state = TASK_RUNNING | TASK_STATE_MAX; +#else + state = TASK_RUNNING; +#endif +#endif + + return state; +} + +#endif + +#endif /* _TRACE_SCHED_DEF_ */ + +/* + * Tracepoint for calling kthread_stop, performed to end a kthread: + */ +TRACE_EVENT(sched_kthread_stop, + + TP_PROTO(struct task_struct *t), + + TP_ARGS(t), + + TP_STRUCT__entry( + __array_text( char, comm, TASK_COMM_LEN ) + __field( pid_t, tid ) + ), + + TP_fast_assign( + tp_memcpy(comm, t->comm, TASK_COMM_LEN) + tp_assign(tid, t->pid) + ), + + TP_printk("comm=%s tid=%d", __entry->comm, __entry->tid) +) + +/* + * Tracepoint for the return value of the kthread stopping: + */ +TRACE_EVENT(sched_kthread_stop_ret, + + TP_PROTO(int ret), + + TP_ARGS(ret), + + TP_STRUCT__entry( + __field( int, ret ) + ), + + TP_fast_assign( + tp_assign(ret, ret) + ), + + TP_printk("ret=%d", __entry->ret) +) + +/* + * Tracepoint for waking up a task: + */ +DECLARE_EVENT_CLASS(sched_wakeup_template, + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,35)) + TP_PROTO(struct task_struct *p, int success), + + TP_ARGS(p, success), +#else + TP_PROTO(struct rq *rq, struct task_struct *p, int success), + + TP_ARGS(rq, p, success), +#endif + + TP_STRUCT__entry( + __array_text( char, comm, TASK_COMM_LEN ) + __field( pid_t, tid ) + __field( int, prio ) + __field( int, success ) +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,32)) + __field( int, target_cpu ) +#endif + ), + + TP_fast_assign( + tp_memcpy(comm, p->comm, TASK_COMM_LEN) + tp_assign(tid, p->pid) + tp_assign(prio, p->prio) + tp_assign(success, success) +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,32)) + tp_assign(target_cpu, task_cpu(p)) +#endif +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,6,0)) + ) + TP_perf_assign( + __perf_task(p) +#endif + ), + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,32)) + TP_printk("comm=%s tid=%d prio=%d success=%d target_cpu=%03d", + __entry->comm, __entry->tid, __entry->prio, + __entry->success, __entry->target_cpu) +#else + TP_printk("comm=%s tid=%d prio=%d success=%d", + __entry->comm, __entry->tid, __entry->prio, + __entry->success) +#endif +) + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,35)) + +DEFINE_EVENT(sched_wakeup_template, sched_wakeup, + TP_PROTO(struct task_struct *p, int success), + TP_ARGS(p, success)) + +/* + * Tracepoint for waking up a new task: + */ +DEFINE_EVENT(sched_wakeup_template, sched_wakeup_new, + TP_PROTO(struct task_struct *p, int success), + TP_ARGS(p, success)) + +#else /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,35)) */ + +DEFINE_EVENT(sched_wakeup_template, sched_wakeup, + TP_PROTO(struct rq *rq, struct task_struct *p, int success), + TP_ARGS(rq, p, success)) + +/* + * Tracepoint for waking up a new task: + */ +DEFINE_EVENT(sched_wakeup_template, sched_wakeup_new, + TP_PROTO(struct rq *rq, struct task_struct *p, int success), + TP_ARGS(rq, p, success)) + +#endif /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,35)) */ + +/* + * Tracepoint for task switches, performed by the scheduler: + */ +TRACE_EVENT(sched_switch, + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,35)) + TP_PROTO(struct task_struct *prev, + struct task_struct *next), + + TP_ARGS(prev, next), +#else /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,35)) */ + TP_PROTO(struct rq *rq, struct task_struct *prev, + struct task_struct *next), + + TP_ARGS(rq, prev, next), +#endif /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,35)) */ + + TP_STRUCT__entry( + __array_text( char, prev_comm, TASK_COMM_LEN ) + __field( pid_t, prev_tid ) + __field( int, prev_prio ) + __field( long, prev_state ) + __array_text( char, next_comm, TASK_COMM_LEN ) + __field( pid_t, next_tid ) + __field( int, next_prio ) + ), + + TP_fast_assign( + tp_memcpy(next_comm, next->comm, TASK_COMM_LEN) + tp_assign(prev_tid, prev->pid) + tp_assign(prev_prio, prev->prio - MAX_RT_PRIO) +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,35)) + tp_assign(prev_state, __trace_sched_switch_state(prev)) +#else + tp_assign(prev_state, prev->state) +#endif + tp_memcpy(prev_comm, prev->comm, TASK_COMM_LEN) + tp_assign(next_tid, next->pid) + tp_assign(next_prio, next->prio - MAX_RT_PRIO) + ), + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,2,0)) + TP_printk("prev_comm=%s prev_tid=%d prev_prio=%d prev_state=%s%s ==> next_comm=%s next_tid=%d next_prio=%d", + __entry->prev_comm, __entry->prev_tid, __entry->prev_prio, + __entry->prev_state & (TASK_STATE_MAX-1) ? + __print_flags(__entry->prev_state & (TASK_STATE_MAX-1), "|", + { 1, "S"} , { 2, "D" }, { 4, "T" }, { 8, "t" }, + { 16, "Z" }, { 32, "X" }, { 64, "x" }, + { 128, "W" }) : "R", + __entry->prev_state & TASK_STATE_MAX ? "+" : "", + __entry->next_comm, __entry->next_tid, __entry->next_prio) +#else + TP_printk("prev_comm=%s prev_tid=%d prev_prio=%d prev_state=%s ==> next_comm=%s next_tid=%d next_prio=%d", + __entry->prev_comm, __entry->prev_tid, __entry->prev_prio, + __entry->prev_state ? + __print_flags(__entry->prev_state, "|", + { 1, "S"} , { 2, "D" }, { 4, "T" }, { 8, "t" }, + { 16, "Z" }, { 32, "X" }, { 64, "x" }, + { 128, "W" }) : "R", + __entry->next_comm, __entry->next_tid, __entry->next_prio) +#endif +) + +/* + * Tracepoint for a task being migrated: + */ +TRACE_EVENT(sched_migrate_task, + + TP_PROTO(struct task_struct *p, int dest_cpu), + + TP_ARGS(p, dest_cpu), + + TP_STRUCT__entry( + __array_text( char, comm, TASK_COMM_LEN ) + __field( pid_t, tid ) + __field( int, prio ) + __field( int, orig_cpu ) + __field( int, dest_cpu ) + ), + + TP_fast_assign( + tp_memcpy(comm, p->comm, TASK_COMM_LEN) + tp_assign(tid, p->pid) + tp_assign(prio, p->prio - MAX_RT_PRIO) + tp_assign(orig_cpu, task_cpu(p)) + tp_assign(dest_cpu, dest_cpu) + ), + + TP_printk("comm=%s tid=%d prio=%d orig_cpu=%d dest_cpu=%d", + __entry->comm, __entry->tid, __entry->prio, + __entry->orig_cpu, __entry->dest_cpu) +) + +DECLARE_EVENT_CLASS(sched_process_template, + + TP_PROTO(struct task_struct *p), + + TP_ARGS(p), + + TP_STRUCT__entry( + __array_text( char, comm, TASK_COMM_LEN ) + __field( pid_t, tid ) + __field( int, prio ) + ), + + TP_fast_assign( + tp_memcpy(comm, p->comm, TASK_COMM_LEN) + tp_assign(tid, p->pid) + tp_assign(prio, p->prio - MAX_RT_PRIO) + ), + + TP_printk("comm=%s tid=%d prio=%d", + __entry->comm, __entry->tid, __entry->prio) +) + +/* + * Tracepoint for freeing a task: + */ +DEFINE_EVENT(sched_process_template, sched_process_free, + TP_PROTO(struct task_struct *p), + TP_ARGS(p)) + + +/* + * Tracepoint for a task exiting: + */ +DEFINE_EVENT(sched_process_template, sched_process_exit, + TP_PROTO(struct task_struct *p), + TP_ARGS(p)) + +/* + * Tracepoint for waiting on task to unschedule: + */ +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,35)) +DEFINE_EVENT(sched_process_template, sched_wait_task, + TP_PROTO(struct task_struct *p), + TP_ARGS(p)) +#else /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,35)) */ +DEFINE_EVENT(sched_process_template, sched_wait_task, + TP_PROTO(struct rq *rq, struct task_struct *p), + TP_ARGS(rq, p)) +#endif /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,35)) */ + +/* + * Tracepoint for a waiting task: + */ +TRACE_EVENT(sched_process_wait, + + TP_PROTO(struct pid *pid), + + TP_ARGS(pid), + + TP_STRUCT__entry( + __array_text( char, comm, TASK_COMM_LEN ) + __field( pid_t, tid ) + __field( int, prio ) + ), + + TP_fast_assign( + tp_memcpy(comm, current->comm, TASK_COMM_LEN) + tp_assign(tid, pid_nr(pid)) + tp_assign(prio, current->prio - MAX_RT_PRIO) + ), + + TP_printk("comm=%s tid=%d prio=%d", + __entry->comm, __entry->tid, __entry->prio) +) + +/* + * Tracepoint for do_fork. + * Saving both TID and PID information, especially for the child, allows + * trace analyzers to distinguish between creation of a new process and + * creation of a new thread. Newly created processes will have child_tid + * == child_pid, while creation of a thread yields to child_tid != + * child_pid. + */ +TRACE_EVENT(sched_process_fork, + + TP_PROTO(struct task_struct *parent, struct task_struct *child), + + TP_ARGS(parent, child), + + TP_STRUCT__entry( + __array_text( char, parent_comm, TASK_COMM_LEN ) + __field( pid_t, parent_tid ) + __field( pid_t, parent_pid ) + __array_text( char, child_comm, TASK_COMM_LEN ) + __field( pid_t, child_tid ) + __field( pid_t, child_pid ) + ), + + TP_fast_assign( + tp_memcpy(parent_comm, parent->comm, TASK_COMM_LEN) + tp_assign(parent_tid, parent->pid) + tp_assign(parent_pid, parent->tgid) + tp_memcpy(child_comm, child->comm, TASK_COMM_LEN) + tp_assign(child_tid, child->pid) + tp_assign(child_pid, child->tgid) + ), + + TP_printk("comm=%s tid=%d child_comm=%s child_tid=%d", + __entry->parent_comm, __entry->parent_tid, + __entry->child_comm, __entry->child_tid) +) + +#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,33)) +/* + * Tracepoint for sending a signal: + */ +TRACE_EVENT(sched_signal_send, + + TP_PROTO(int sig, struct task_struct *p), + + TP_ARGS(sig, p), + + TP_STRUCT__entry( + __field( int, sig ) + __array( char, comm, TASK_COMM_LEN ) + __field( pid_t, pid ) + ), + + TP_fast_assign( + tp_memcpy(comm, p->comm, TASK_COMM_LEN) + tp_assign(pid, p->pid) + tp_assign(sig, sig) + ), + + TP_printk("sig=%d comm=%s pid=%d", + __entry->sig, __entry->comm, __entry->pid) +) +#endif + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,4,0)) +/* + * Tracepoint for exec: + */ +TRACE_EVENT(sched_process_exec, + + TP_PROTO(struct task_struct *p, pid_t old_pid, + struct linux_binprm *bprm), + + TP_ARGS(p, old_pid, bprm), + + TP_STRUCT__entry( + __string( filename, bprm->filename ) + __field( pid_t, tid ) + __field( pid_t, old_tid ) + ), + + TP_fast_assign( + tp_strcpy(filename, bprm->filename) + tp_assign(tid, p->pid) + tp_assign(old_tid, old_pid) + ), + + TP_printk("filename=%s tid=%d old_tid=%d", __get_str(filename), + __entry->tid, __entry->old_tid) +) +#endif + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,32)) +/* + * XXX the below sched_stat tracepoints only apply to SCHED_OTHER/BATCH/IDLE + * adding sched_stat support to SCHED_FIFO/RR would be welcome. + */ +DECLARE_EVENT_CLASS(sched_stat_template, + + TP_PROTO(struct task_struct *tsk, u64 delay), + + TP_ARGS(tsk, delay), + + TP_STRUCT__entry( + __array_text( char, comm, TASK_COMM_LEN ) + __field( pid_t, tid ) + __field( u64, delay ) + ), + + TP_fast_assign( + tp_memcpy(comm, tsk->comm, TASK_COMM_LEN) + tp_assign(tid, tsk->pid) + tp_assign(delay, delay) + ) + TP_perf_assign( + __perf_count(delay) + ), + + TP_printk("comm=%s tid=%d delay=%Lu [ns]", + __entry->comm, __entry->tid, + (unsigned long long)__entry->delay) +) + + +/* + * Tracepoint for accounting wait time (time the task is runnable + * but not actually running due to scheduler contention). + */ +DEFINE_EVENT(sched_stat_template, sched_stat_wait, + TP_PROTO(struct task_struct *tsk, u64 delay), + TP_ARGS(tsk, delay)) + +/* + * Tracepoint for accounting sleep time (time the task is not runnable, + * including iowait, see below). + */ +DEFINE_EVENT(sched_stat_template, sched_stat_sleep, + TP_PROTO(struct task_struct *tsk, u64 delay), + TP_ARGS(tsk, delay)) + +/* + * Tracepoint for accounting iowait time (time the task is not runnable + * due to waiting on IO to complete). + */ +DEFINE_EVENT(sched_stat_template, sched_stat_iowait, + TP_PROTO(struct task_struct *tsk, u64 delay), + TP_ARGS(tsk, delay)) + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,3,0)) +/* + * Tracepoint for accounting blocked time (time the task is in uninterruptible). + */ +DEFINE_EVENT(sched_stat_template, sched_stat_blocked, + TP_PROTO(struct task_struct *tsk, u64 delay), + TP_ARGS(tsk, delay)) +#endif + +/* + * Tracepoint for accounting runtime (time the task is executing + * on a CPU). + */ +TRACE_EVENT(sched_stat_runtime, + + TP_PROTO(struct task_struct *tsk, u64 runtime, u64 vruntime), + + TP_ARGS(tsk, runtime, vruntime), + + TP_STRUCT__entry( + __array_text( char, comm, TASK_COMM_LEN ) + __field( pid_t, tid ) + __field( u64, runtime ) + __field( u64, vruntime ) + ), + + TP_fast_assign( + tp_memcpy(comm, tsk->comm, TASK_COMM_LEN) + tp_assign(tid, tsk->pid) + tp_assign(runtime, runtime) + tp_assign(vruntime, vruntime) + ) + TP_perf_assign( + __perf_count(runtime) +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,6,0)) + __perf_task(tsk) +#endif + ), + + TP_printk("comm=%s tid=%d runtime=%Lu [ns] vruntime=%Lu [ns]", + __entry->comm, __entry->tid, + (unsigned long long)__entry->runtime, + (unsigned long long)__entry->vruntime) +) +#endif + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,37)) +/* + * Tracepoint for showing priority inheritance modifying a tasks + * priority. + */ +TRACE_EVENT(sched_pi_setprio, + + TP_PROTO(struct task_struct *tsk, int newprio), + + TP_ARGS(tsk, newprio), + + TP_STRUCT__entry( + __array_text( char, comm, TASK_COMM_LEN ) + __field( pid_t, tid ) + __field( int, oldprio ) + __field( int, newprio ) + ), + + TP_fast_assign( + tp_memcpy(comm, tsk->comm, TASK_COMM_LEN) + tp_assign(tid, tsk->pid) + tp_assign(oldprio, tsk->prio - MAX_RT_PRIO) + tp_assign(newprio, newprio - MAX_RT_PRIO) + ), + + TP_printk("comm=%s tid=%d oldprio=%d newprio=%d", + __entry->comm, __entry->tid, + __entry->oldprio, __entry->newprio) +) +#endif + +#endif /* _TRACE_SCHED_H */ + +/* This part must be outside protection */ +#include "../../../probes/define_trace.h" --- linux-3.11.0.orig/ubuntu/lttng-modules/instrumentation/events/lttng-module/signal.h +++ linux-3.11.0/ubuntu/lttng-modules/instrumentation/events/lttng-module/signal.h @@ -0,0 +1,202 @@ +#undef TRACE_SYSTEM +#define TRACE_SYSTEM signal + +#if !defined(_TRACE_SIGNAL_H) || defined(TRACE_HEADER_MULTI_READ) +#define _TRACE_SIGNAL_H + +#include +#include + +#ifndef _TRACE_SIGNAL_DEF +#define _TRACE_SIGNAL_DEF +#include +#include +#undef TP_STORE_SIGINFO +#define TP_STORE_SIGINFO(info) \ + tp_assign(errno, \ + (info == SEND_SIG_NOINFO || info == SEND_SIG_FORCED || info == SEND_SIG_PRIV) ? \ + 0 : \ + info->si_errno) \ + tp_assign(code, \ + (info == SEND_SIG_NOINFO || info == SEND_SIG_FORCED) ? \ + SI_USER : \ + ((info == SEND_SIG_PRIV) ? SI_KERNEL : info->si_code)) +#endif /* _TRACE_SIGNAL_DEF */ + +/** + * signal_generate - called when a signal is generated + * @sig: signal number + * @info: pointer to struct siginfo + * @task: pointer to struct task_struct + * + * Current process sends a 'sig' signal to 'task' process with + * 'info' siginfo. If 'info' is SEND_SIG_NOINFO or SEND_SIG_PRIV, + * 'info' is not a pointer and you can't access its field. Instead, + * SEND_SIG_NOINFO means that si_code is SI_USER, and SEND_SIG_PRIV + * means that si_code is SI_KERNEL. + */ +#if (LINUX_VERSION_CODE < KERNEL_VERSION(3,4,0)) +TRACE_EVENT(signal_generate, + + TP_PROTO(int sig, struct siginfo *info, struct task_struct *task), + + TP_ARGS(sig, info, task), + + TP_STRUCT__entry( + __field( int, sig ) + __field( int, errno ) + __field( int, code ) + __array_text( char, comm, TASK_COMM_LEN ) + __field( pid_t, pid ) + ), + + TP_fast_assign( + tp_assign(sig, sig) + TP_STORE_SIGINFO(info) + tp_memcpy(comm, task->comm, TASK_COMM_LEN) + tp_assign(pid, task->pid) + ), + + TP_printk("sig=%d errno=%d code=%d comm=%s pid=%d", + __entry->sig, __entry->errno, __entry->code, + __entry->comm, __entry->pid) +) +#else +TRACE_EVENT(signal_generate, + + TP_PROTO(int sig, struct siginfo *info, struct task_struct *task, + int group, int result), + + TP_ARGS(sig, info, task, group, result), + + TP_STRUCT__entry( + __field( int, sig ) + __field( int, errno ) + __field( int, code ) + __array_text( char, comm, TASK_COMM_LEN ) + __field( pid_t, pid ) + __field( int, group ) + __field( int, result ) + ), + + TP_fast_assign( + tp_assign(sig, sig) + TP_STORE_SIGINFO(info) + tp_memcpy(comm, task->comm, TASK_COMM_LEN) + tp_assign(pid, task->pid) + tp_assign(group, group) + tp_assign(result, result) + ), + + TP_printk("sig=%d errno=%d code=%d comm=%s pid=%d grp=%d res=%d", + __entry->sig, __entry->errno, __entry->code, + __entry->comm, __entry->pid, __entry->group, + __entry->result) +) +#endif + +/** + * signal_deliver - called when a signal is delivered + * @sig: signal number + * @info: pointer to struct siginfo + * @ka: pointer to struct k_sigaction + * + * A 'sig' signal is delivered to current process with 'info' siginfo, + * and it will be handled by 'ka'. ka->sa.sa_handler can be SIG_IGN or + * SIG_DFL. + * Note that some signals reported by signal_generate tracepoint can be + * lost, ignored or modified (by debugger) before hitting this tracepoint. + * This means, this can show which signals are actually delivered, but + * matching generated signals and delivered signals may not be correct. + */ +TRACE_EVENT(signal_deliver, + + TP_PROTO(int sig, struct siginfo *info, struct k_sigaction *ka), + + TP_ARGS(sig, info, ka), + + TP_STRUCT__entry( + __field( int, sig ) + __field( int, errno ) + __field( int, code ) + __field( unsigned long, sa_handler ) + __field( unsigned long, sa_flags ) + ), + + TP_fast_assign( + tp_assign(sig, sig) + TP_STORE_SIGINFO(info) + tp_assign(sa_handler, (unsigned long)ka->sa.sa_handler) + tp_assign(sa_flags, ka->sa.sa_flags) + ), + + TP_printk("sig=%d errno=%d code=%d sa_handler=%lx sa_flags=%lx", + __entry->sig, __entry->errno, __entry->code, + __entry->sa_handler, __entry->sa_flags) +) + +#if (LINUX_VERSION_CODE < KERNEL_VERSION(3,4,0)) +DECLARE_EVENT_CLASS(signal_queue_overflow, + + TP_PROTO(int sig, int group, struct siginfo *info), + + TP_ARGS(sig, group, info), + + TP_STRUCT__entry( + __field( int, sig ) + __field( int, group ) + __field( int, errno ) + __field( int, code ) + ), + + TP_fast_assign( + tp_assign(sig, sig) + tp_assign(group, group) + TP_STORE_SIGINFO(info) + ), + + TP_printk("sig=%d group=%d errno=%d code=%d", + __entry->sig, __entry->group, __entry->errno, __entry->code) +) + +/** + * signal_overflow_fail - called when signal queue is overflow + * @sig: signal number + * @group: signal to process group or not (bool) + * @info: pointer to struct siginfo + * + * Kernel fails to generate 'sig' signal with 'info' siginfo, because + * siginfo queue is overflow, and the signal is dropped. + * 'group' is not 0 if the signal will be sent to a process group. + * 'sig' is always one of RT signals. + */ +DEFINE_EVENT(signal_queue_overflow, signal_overflow_fail, + + TP_PROTO(int sig, int group, struct siginfo *info), + + TP_ARGS(sig, group, info) +) + +/** + * signal_lose_info - called when siginfo is lost + * @sig: signal number + * @group: signal to process group or not (bool) + * @info: pointer to struct siginfo + * + * Kernel generates 'sig' signal but loses 'info' siginfo, because siginfo + * queue is overflow. + * 'group' is not 0 if the signal will be sent to a process group. + * 'sig' is always one of non-RT signals. + */ +DEFINE_EVENT(signal_queue_overflow, signal_lose_info, + + TP_PROTO(int sig, int group, struct siginfo *info), + + TP_ARGS(sig, group, info) +) +#endif + +#endif /* _TRACE_SIGNAL_H */ + +/* This part must be outside protection */ +#include "../../../probes/define_trace.h" --- linux-3.11.0.orig/ubuntu/lttng-modules/instrumentation/events/lttng-module/sock.h +++ linux-3.11.0/ubuntu/lttng-modules/instrumentation/events/lttng-module/sock.h @@ -0,0 +1,68 @@ +#undef TRACE_SYSTEM +#define TRACE_SYSTEM sock + +#if !defined(_TRACE_SOCK_H) || defined(TRACE_HEADER_MULTI_READ) +#define _TRACE_SOCK_H + +#include +#include + +TRACE_EVENT(sock_rcvqueue_full, + + TP_PROTO(struct sock *sk, struct sk_buff *skb), + + TP_ARGS(sk, skb), + + TP_STRUCT__entry( + __field(int, rmem_alloc) + __field(unsigned int, truesize) + __field(int, sk_rcvbuf) + ), + + TP_fast_assign( + tp_assign(rmem_alloc, atomic_read(&sk->sk_rmem_alloc)) + tp_assign(truesize, skb->truesize) + tp_assign(sk_rcvbuf, sk->sk_rcvbuf) + ), + + TP_printk("rmem_alloc=%d truesize=%u sk_rcvbuf=%d", + __entry->rmem_alloc, __entry->truesize, __entry->sk_rcvbuf) +) + +TRACE_EVENT(sock_exceed_buf_limit, + + TP_PROTO(struct sock *sk, struct proto *prot, long allocated), + + TP_ARGS(sk, prot, allocated), + + TP_STRUCT__entry( + __string(name, prot->name) + __array(long, sysctl_mem, 3) + __field(long, allocated) + __field(int, sysctl_rmem) + __field(int, rmem_alloc) + ), + + TP_fast_assign( + tp_strcpy(name, prot->name) + tp_memcpy(sysctl_mem, prot->sysctl_mem, 3 * sizeof(long)) + tp_assign(allocated, allocated) + tp_assign(sysctl_rmem, prot->sysctl_rmem[0]) + tp_assign(rmem_alloc, atomic_read(&sk->sk_rmem_alloc)) + ), + + TP_printk("proto:%s sysctl_mem=%ld,%ld,%ld allocated=%ld " + "sysctl_rmem=%d rmem_alloc=%d", + __entry->name, + __entry->sysctl_mem[0], + __entry->sysctl_mem[1], + __entry->sysctl_mem[2], + __entry->allocated, + __entry->sysctl_rmem, + __entry->rmem_alloc) +) + +#endif /* _TRACE_SOCK_H */ + +/* This part must be outside protection */ +#include "../../../probes/define_trace.h" --- linux-3.11.0.orig/ubuntu/lttng-modules/instrumentation/events/lttng-module/lttng-statedump.h +++ linux-3.11.0/ubuntu/lttng-modules/instrumentation/events/lttng-module/lttng-statedump.h @@ -0,0 +1,166 @@ +#undef TRACE_SYSTEM +#define TRACE_SYSTEM lttng_statedump + +#if !defined(_TRACE_LTTNG_STATEDUMP_H) || defined(TRACE_HEADER_MULTI_READ) +#define _TRACE_LTTNG_STATEDUMP_H + +#include +#include +#include + +TRACE_EVENT(lttng_statedump_start, + TP_PROTO(struct lttng_session *session), + TP_ARGS(session), + TP_STRUCT__entry( + ), + TP_fast_assign( + ), + TP_printk("") +) + +TRACE_EVENT(lttng_statedump_end, + TP_PROTO(struct lttng_session *session), + TP_ARGS(session), + TP_STRUCT__entry( + ), + TP_fast_assign( + ), + TP_printk("") +) + +TRACE_EVENT(lttng_statedump_process_state, + TP_PROTO(struct lttng_session *session, + struct task_struct *p, + int type, int mode, int submode, int status, + struct pid_namespace *pid_ns), + TP_ARGS(session, p, type, mode, submode, status, pid_ns), + TP_STRUCT__entry( + __field(pid_t, tid) + __field(pid_t, vtid) + __field(pid_t, pid) + __field(pid_t, vpid) + __field(pid_t, ppid) + __field(pid_t, vppid) + __array_text(char, name, TASK_COMM_LEN) + __field(int, type) + __field(int, mode) + __field(int, submode) + __field(int, status) + __field(int, ns_level) + ), + TP_fast_assign( + tp_assign(tid, p->pid) + tp_assign(vtid, pid_ns ? task_pid_nr_ns(p, pid_ns) : 0) + tp_assign(pid, p->tgid) + tp_assign(vpid, pid_ns ? task_tgid_nr_ns(p, pid_ns) : 0) + tp_assign(ppid, + ({ + pid_t ret; + + rcu_read_lock(); + ret = task_tgid_nr(p->real_parent); + rcu_read_unlock(); + ret; + })) + tp_assign(vppid, + ({ + struct task_struct *parent; + pid_t ret = 0; + + if (pid_ns) { + rcu_read_lock(); + parent = rcu_dereference(p->real_parent); + ret = task_tgid_nr_ns(parent, pid_ns); + rcu_read_unlock(); + } + ret; + })) + tp_memcpy(name, p->comm, TASK_COMM_LEN) + tp_assign(type, type) + tp_assign(mode, mode) + tp_assign(submode, submode) + tp_assign(status, status) + tp_assign(ns_level, pid_ns ? pid_ns->level : 0) + ), + TP_printk("") +) + +TRACE_EVENT(lttng_statedump_file_descriptor, + TP_PROTO(struct lttng_session *session, + struct task_struct *p, int fd, const char *filename), + TP_ARGS(session, p, fd, filename), + TP_STRUCT__entry( + __field(pid_t, pid) + __field(int, fd) + __string(filename, filename) + ), + TP_fast_assign( + tp_assign(pid, p->tgid) + tp_assign(fd, fd) + tp_strcpy(filename, filename) + ), + TP_printk("") +) + +TRACE_EVENT(lttng_statedump_vm_map, + TP_PROTO(struct lttng_session *session, + struct task_struct *p, struct vm_area_struct *map, + unsigned long inode), + TP_ARGS(session, p, map, inode), + TP_STRUCT__entry( + __field(pid_t, pid) + __field_hex(unsigned long, start) + __field_hex(unsigned long, end) + __field_hex(unsigned long, flags) + __field(unsigned long, inode) + __field(unsigned long, pgoff) + ), + TP_fast_assign( + tp_assign(pid, p->tgid) + tp_assign(start, map->vm_start) + tp_assign(end, map->vm_end) + tp_assign(flags, map->vm_flags) + tp_assign(inode, inode) + tp_assign(pgoff, map->vm_pgoff << PAGE_SHIFT) + ), + TP_printk("") +) + +TRACE_EVENT(lttng_statedump_network_interface, + TP_PROTO(struct lttng_session *session, + struct net_device *dev, struct in_ifaddr *ifa), + TP_ARGS(session, dev, ifa), + TP_STRUCT__entry( + __string(name, dev->name) + __field_network_hex(uint32_t, address_ipv4) + ), + TP_fast_assign( + tp_strcpy(name, dev->name) + tp_assign(address_ipv4, ifa ? ifa->ifa_address : 0U) + ), + TP_printk("") +) + +/* Called with desc->lock held */ +TRACE_EVENT(lttng_statedump_interrupt, + TP_PROTO(struct lttng_session *session, + unsigned int irq, const char *chip_name, + struct irqaction *action), + TP_ARGS(session, irq, chip_name, action), + TP_STRUCT__entry( + __field(unsigned int, irq) + __string(name, chip_name) + __string(action, action->name ? : "") + ), + TP_fast_assign( + tp_assign(irq, irq) + tp_strcpy(name, chip_name) + tp_strcpy(action, action->name ? : "") + ), + TP_printk("") +) + +#endif /* _TRACE_LTTNG_STATEDUMP_H */ + +/* This part must be outside protection */ +#include "../../../probes/define_trace.h" --- linux-3.11.0.orig/ubuntu/lttng-modules/instrumentation/events/lttng-module/scsi.h +++ linux-3.11.0/ubuntu/lttng-modules/instrumentation/events/lttng-module/scsi.h @@ -0,0 +1,406 @@ +#undef TRACE_SYSTEM +#define TRACE_SYSTEM scsi + +#if !defined(_TRACE_SCSI_H) || defined(TRACE_HEADER_MULTI_READ) +#define _TRACE_SCSI_H + +#include +#include +#include +#include +#include + +#ifndef _TRACE_SCSI_DEF +#define _TRACE_SCSI_DEF + +#define scsi_opcode_name(opcode) { opcode, #opcode } +#define show_opcode_name(val) \ + __print_symbolic(val, \ + scsi_opcode_name(TEST_UNIT_READY), \ + scsi_opcode_name(REZERO_UNIT), \ + scsi_opcode_name(REQUEST_SENSE), \ + scsi_opcode_name(FORMAT_UNIT), \ + scsi_opcode_name(READ_BLOCK_LIMITS), \ + scsi_opcode_name(REASSIGN_BLOCKS), \ + scsi_opcode_name(INITIALIZE_ELEMENT_STATUS), \ + scsi_opcode_name(READ_6), \ + scsi_opcode_name(WRITE_6), \ + scsi_opcode_name(SEEK_6), \ + scsi_opcode_name(READ_REVERSE), \ + scsi_opcode_name(WRITE_FILEMARKS), \ + scsi_opcode_name(SPACE), \ + scsi_opcode_name(INQUIRY), \ + scsi_opcode_name(RECOVER_BUFFERED_DATA), \ + scsi_opcode_name(MODE_SELECT), \ + scsi_opcode_name(RESERVE), \ + scsi_opcode_name(RELEASE), \ + scsi_opcode_name(COPY), \ + scsi_opcode_name(ERASE), \ + scsi_opcode_name(MODE_SENSE), \ + scsi_opcode_name(START_STOP), \ + scsi_opcode_name(RECEIVE_DIAGNOSTIC), \ + scsi_opcode_name(SEND_DIAGNOSTIC), \ + scsi_opcode_name(ALLOW_MEDIUM_REMOVAL), \ + scsi_opcode_name(SET_WINDOW), \ + scsi_opcode_name(READ_CAPACITY), \ + scsi_opcode_name(READ_10), \ + scsi_opcode_name(WRITE_10), \ + scsi_opcode_name(SEEK_10), \ + scsi_opcode_name(POSITION_TO_ELEMENT), \ + scsi_opcode_name(WRITE_VERIFY), \ + scsi_opcode_name(VERIFY), \ + scsi_opcode_name(SEARCH_HIGH), \ + scsi_opcode_name(SEARCH_EQUAL), \ + scsi_opcode_name(SEARCH_LOW), \ + scsi_opcode_name(SET_LIMITS), \ + scsi_opcode_name(PRE_FETCH), \ + scsi_opcode_name(READ_POSITION), \ + scsi_opcode_name(SYNCHRONIZE_CACHE), \ + scsi_opcode_name(LOCK_UNLOCK_CACHE), \ + scsi_opcode_name(READ_DEFECT_DATA), \ + scsi_opcode_name(MEDIUM_SCAN), \ + scsi_opcode_name(COMPARE), \ + scsi_opcode_name(COPY_VERIFY), \ + scsi_opcode_name(WRITE_BUFFER), \ + scsi_opcode_name(READ_BUFFER), \ + scsi_opcode_name(UPDATE_BLOCK), \ + scsi_opcode_name(READ_LONG), \ + scsi_opcode_name(WRITE_LONG), \ + scsi_opcode_name(CHANGE_DEFINITION), \ + scsi_opcode_name(WRITE_SAME), \ + scsi_opcode_name(UNMAP), \ + scsi_opcode_name(READ_TOC), \ + scsi_opcode_name(LOG_SELECT), \ + scsi_opcode_name(LOG_SENSE), \ + scsi_opcode_name(XDWRITEREAD_10), \ + scsi_opcode_name(MODE_SELECT_10), \ + scsi_opcode_name(RESERVE_10), \ + scsi_opcode_name(RELEASE_10), \ + scsi_opcode_name(MODE_SENSE_10), \ + scsi_opcode_name(PERSISTENT_RESERVE_IN), \ + scsi_opcode_name(PERSISTENT_RESERVE_OUT), \ + scsi_opcode_name(VARIABLE_LENGTH_CMD), \ + scsi_opcode_name(REPORT_LUNS), \ + scsi_opcode_name(MAINTENANCE_IN), \ + scsi_opcode_name(MAINTENANCE_OUT), \ + scsi_opcode_name(MOVE_MEDIUM), \ + scsi_opcode_name(EXCHANGE_MEDIUM), \ + scsi_opcode_name(READ_12), \ + scsi_opcode_name(WRITE_12), \ + scsi_opcode_name(WRITE_VERIFY_12), \ + scsi_opcode_name(SEARCH_HIGH_12), \ + scsi_opcode_name(SEARCH_EQUAL_12), \ + scsi_opcode_name(SEARCH_LOW_12), \ + scsi_opcode_name(READ_ELEMENT_STATUS), \ + scsi_opcode_name(SEND_VOLUME_TAG), \ + scsi_opcode_name(WRITE_LONG_2), \ + scsi_opcode_name(READ_16), \ + scsi_opcode_name(WRITE_16), \ + scsi_opcode_name(VERIFY_16), \ + scsi_opcode_name(WRITE_SAME_16), \ + scsi_opcode_name(SERVICE_ACTION_IN), \ + scsi_opcode_name(SAI_READ_CAPACITY_16), \ + scsi_opcode_name(SAI_GET_LBA_STATUS), \ + scsi_opcode_name(MI_REPORT_TARGET_PGS), \ + scsi_opcode_name(MO_SET_TARGET_PGS), \ + scsi_opcode_name(READ_32), \ + scsi_opcode_name(WRITE_32), \ + scsi_opcode_name(WRITE_SAME_32), \ + scsi_opcode_name(ATA_16), \ + scsi_opcode_name(ATA_12)) + +#define scsi_hostbyte_name(result) { result, #result } +#define show_hostbyte_name(val) \ + __print_symbolic(val, \ + scsi_hostbyte_name(DID_OK), \ + scsi_hostbyte_name(DID_NO_CONNECT), \ + scsi_hostbyte_name(DID_BUS_BUSY), \ + scsi_hostbyte_name(DID_TIME_OUT), \ + scsi_hostbyte_name(DID_BAD_TARGET), \ + scsi_hostbyte_name(DID_ABORT), \ + scsi_hostbyte_name(DID_PARITY), \ + scsi_hostbyte_name(DID_ERROR), \ + scsi_hostbyte_name(DID_RESET), \ + scsi_hostbyte_name(DID_BAD_INTR), \ + scsi_hostbyte_name(DID_PASSTHROUGH), \ + scsi_hostbyte_name(DID_SOFT_ERROR), \ + scsi_hostbyte_name(DID_IMM_RETRY), \ + scsi_hostbyte_name(DID_REQUEUE), \ + scsi_hostbyte_name(DID_TRANSPORT_DISRUPTED), \ + scsi_hostbyte_name(DID_TRANSPORT_FAILFAST)) + +#define scsi_driverbyte_name(result) { result, #result } +#define show_driverbyte_name(val) \ + __print_symbolic(val, \ + scsi_driverbyte_name(DRIVER_OK), \ + scsi_driverbyte_name(DRIVER_BUSY), \ + scsi_driverbyte_name(DRIVER_SOFT), \ + scsi_driverbyte_name(DRIVER_MEDIA), \ + scsi_driverbyte_name(DRIVER_ERROR), \ + scsi_driverbyte_name(DRIVER_INVALID), \ + scsi_driverbyte_name(DRIVER_TIMEOUT), \ + scsi_driverbyte_name(DRIVER_HARD), \ + scsi_driverbyte_name(DRIVER_SENSE)) + +#define scsi_msgbyte_name(result) { result, #result } +#define show_msgbyte_name(val) \ + __print_symbolic(val, \ + scsi_msgbyte_name(COMMAND_COMPLETE), \ + scsi_msgbyte_name(EXTENDED_MESSAGE), \ + scsi_msgbyte_name(SAVE_POINTERS), \ + scsi_msgbyte_name(RESTORE_POINTERS), \ + scsi_msgbyte_name(DISCONNECT), \ + scsi_msgbyte_name(INITIATOR_ERROR), \ + scsi_msgbyte_name(ABORT_TASK_SET), \ + scsi_msgbyte_name(MESSAGE_REJECT), \ + scsi_msgbyte_name(NOP), \ + scsi_msgbyte_name(MSG_PARITY_ERROR), \ + scsi_msgbyte_name(LINKED_CMD_COMPLETE), \ + scsi_msgbyte_name(LINKED_FLG_CMD_COMPLETE), \ + scsi_msgbyte_name(TARGET_RESET), \ + scsi_msgbyte_name(ABORT_TASK), \ + scsi_msgbyte_name(CLEAR_TASK_SET), \ + scsi_msgbyte_name(INITIATE_RECOVERY), \ + scsi_msgbyte_name(RELEASE_RECOVERY), \ + scsi_msgbyte_name(CLEAR_ACA), \ + scsi_msgbyte_name(LOGICAL_UNIT_RESET), \ + scsi_msgbyte_name(SIMPLE_QUEUE_TAG), \ + scsi_msgbyte_name(HEAD_OF_QUEUE_TAG), \ + scsi_msgbyte_name(ORDERED_QUEUE_TAG), \ + scsi_msgbyte_name(IGNORE_WIDE_RESIDUE), \ + scsi_msgbyte_name(ACA), \ + scsi_msgbyte_name(QAS_REQUEST), \ + scsi_msgbyte_name(BUS_DEVICE_RESET), \ + scsi_msgbyte_name(ABORT)) + +#define scsi_statusbyte_name(result) { result, #result } +#define show_statusbyte_name(val) \ + __print_symbolic(val, \ + scsi_statusbyte_name(SAM_STAT_GOOD), \ + scsi_statusbyte_name(SAM_STAT_CHECK_CONDITION), \ + scsi_statusbyte_name(SAM_STAT_CONDITION_MET), \ + scsi_statusbyte_name(SAM_STAT_BUSY), \ + scsi_statusbyte_name(SAM_STAT_INTERMEDIATE), \ + scsi_statusbyte_name(SAM_STAT_INTERMEDIATE_CONDITION_MET), \ + scsi_statusbyte_name(SAM_STAT_RESERVATION_CONFLICT), \ + scsi_statusbyte_name(SAM_STAT_COMMAND_TERMINATED), \ + scsi_statusbyte_name(SAM_STAT_TASK_SET_FULL), \ + scsi_statusbyte_name(SAM_STAT_ACA_ACTIVE), \ + scsi_statusbyte_name(SAM_STAT_TASK_ABORTED)) + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,39)) +#define scsi_prot_op_name(result) { result, #result } +#define show_prot_op_name(val) \ + __print_symbolic(val, \ + scsi_prot_op_name(SCSI_PROT_NORMAL), \ + scsi_prot_op_name(SCSI_PROT_READ_INSERT), \ + scsi_prot_op_name(SCSI_PROT_WRITE_STRIP), \ + scsi_prot_op_name(SCSI_PROT_READ_STRIP), \ + scsi_prot_op_name(SCSI_PROT_WRITE_INSERT), \ + scsi_prot_op_name(SCSI_PROT_READ_PASS), \ + scsi_prot_op_name(SCSI_PROT_WRITE_PASS)) +#endif + +const char *scsi_trace_parse_cdb(struct trace_seq*, unsigned char*, int); +#define __parse_cdb(cdb, len) scsi_trace_parse_cdb(p, cdb, len) +#endif + +TRACE_EVENT(scsi_dispatch_cmd_start, + + TP_PROTO(struct scsi_cmnd *cmd), + + TP_ARGS(cmd), + + TP_STRUCT__entry( + __field( unsigned int, host_no ) + __field( unsigned int, channel ) + __field( unsigned int, id ) + __field( unsigned int, lun ) + __field( unsigned int, opcode ) + __field( unsigned int, cmd_len ) + __field( unsigned int, data_sglen ) + __field( unsigned int, prot_sglen ) +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,39)) + __field( unsigned char, prot_op ) +#endif + __dynamic_array_hex(unsigned char, cmnd, cmd->cmd_len) + ), + + TP_fast_assign( + tp_assign(host_no, cmd->device->host->host_no) + tp_assign(channel, cmd->device->channel) + tp_assign(id, cmd->device->id) + tp_assign(lun, cmd->device->lun) + tp_assign(opcode, cmd->cmnd[0]) + tp_assign(cmd_len, cmd->cmd_len) + tp_assign(data_sglen, scsi_sg_count(cmd)) + tp_assign(prot_sglen, scsi_prot_sg_count(cmd)) +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,39)) + tp_assign(prot_op, scsi_get_prot_op(cmd)) +#endif + tp_memcpy_dyn(cmnd, cmd->cmnd) + ), + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,39)) + TP_printk("host_no=%u channel=%u id=%u lun=%u data_sgl=%u prot_sgl=%u" \ + " prot_op=%s cmnd=(%s %s raw=%s)", +#else + TP_printk("host_no=%u channel=%u id=%u lun=%u data_sgl=%u prot_sgl=%u" \ + " cmnd=(%s %s raw=%s)", +#endif + __entry->host_no, __entry->channel, __entry->id, + __entry->lun, __entry->data_sglen, __entry->prot_sglen, +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,39)) + show_prot_op_name(__entry->prot_op), +#endif + show_opcode_name(__entry->opcode), + __parse_cdb(__get_dynamic_array(cmnd), __entry->cmd_len), + __print_hex(__get_dynamic_array(cmnd), __entry->cmd_len)) +) + +TRACE_EVENT(scsi_dispatch_cmd_error, + + TP_PROTO(struct scsi_cmnd *cmd, int rtn), + + TP_ARGS(cmd, rtn), + + TP_STRUCT__entry( + __field( unsigned int, host_no ) + __field( unsigned int, channel ) + __field( unsigned int, id ) + __field( unsigned int, lun ) + __field( int, rtn ) + __field( unsigned int, opcode ) + __field( unsigned int, cmd_len ) + __field( unsigned int, data_sglen ) + __field( unsigned int, prot_sglen ) +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,39)) + __field( unsigned char, prot_op ) +#endif + __dynamic_array_hex(unsigned char, cmnd, cmd->cmd_len) + ), + + TP_fast_assign( + tp_assign(host_no, cmd->device->host->host_no) + tp_assign(channel, cmd->device->channel) + tp_assign(id, cmd->device->id) + tp_assign(lun, cmd->device->lun) + tp_assign(rtn, rtn) + tp_assign(opcode, cmd->cmnd[0]) + tp_assign(cmd_len, cmd->cmd_len) + tp_assign(data_sglen, scsi_sg_count(cmd)) + tp_assign(prot_sglen, scsi_prot_sg_count(cmd)) +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,39)) + tp_assign(prot_op, scsi_get_prot_op(cmd)) +#endif + tp_memcpy_dyn(cmnd, cmd->cmnd) + ), + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,39)) + TP_printk("host_no=%u channel=%u id=%u lun=%u data_sgl=%u prot_sgl=%u" \ + " prot_op=%s cmnd=(%s %s raw=%s) rtn=%d", +#else + TP_printk("host_no=%u channel=%u id=%u lun=%u data_sgl=%u prot_sgl=%u" \ + " cmnd=(%s %s raw=%s) rtn=%d", +#endif + __entry->host_no, __entry->channel, __entry->id, + __entry->lun, __entry->data_sglen, __entry->prot_sglen, +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,39)) + show_prot_op_name(__entry->prot_op), +#endif + show_opcode_name(__entry->opcode), + __parse_cdb(__get_dynamic_array(cmnd), __entry->cmd_len), + __print_hex(__get_dynamic_array(cmnd), __entry->cmd_len), + __entry->rtn) +) + +DECLARE_EVENT_CLASS(scsi_cmd_done_timeout_template, + + TP_PROTO(struct scsi_cmnd *cmd), + + TP_ARGS(cmd), + + TP_STRUCT__entry( + __field( unsigned int, host_no ) + __field( unsigned int, channel ) + __field( unsigned int, id ) + __field( unsigned int, lun ) + __field( int, result ) + __field( unsigned int, opcode ) + __field( unsigned int, cmd_len ) + __field( unsigned int, data_sglen ) + __field( unsigned int, prot_sglen ) +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,39)) + __field( unsigned char, prot_op ) +#endif + __dynamic_array_hex(unsigned char, cmnd, cmd->cmd_len) + ), + + TP_fast_assign( + tp_assign(host_no, cmd->device->host->host_no) + tp_assign(channel, cmd->device->channel) + tp_assign(id, cmd->device->id) + tp_assign(lun, cmd->device->lun) + tp_assign(result, cmd->result) + tp_assign(opcode, cmd->cmnd[0]) + tp_assign(cmd_len, cmd->cmd_len) + tp_assign(data_sglen, scsi_sg_count(cmd)) + tp_assign(prot_sglen, scsi_prot_sg_count(cmd)) +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,39)) + tp_assign(prot_op, scsi_get_prot_op(cmd)) +#endif + tp_memcpy_dyn(cmnd, cmd->cmnd) + ), + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,39)) + TP_printk("host_no=%u channel=%u id=%u lun=%u data_sgl=%u " \ + "prot_sgl=%u prot_op=%s cmnd=(%s %s raw=%s) result=(driver=" \ + "%s host=%s message=%s status=%s)", +#else + TP_printk("host_no=%u channel=%u id=%u lun=%u data_sgl=%u " \ + "prot_sgl=%u cmnd=(%s %s raw=%s) result=(driver=%s host=%s " \ + "message=%s status=%s)", +#endif + __entry->host_no, __entry->channel, __entry->id, + __entry->lun, __entry->data_sglen, __entry->prot_sglen, +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,39)) + show_prot_op_name(__entry->prot_op), +#endif + show_opcode_name(__entry->opcode), + __parse_cdb(__get_dynamic_array(cmnd), __entry->cmd_len), + __print_hex(__get_dynamic_array(cmnd), __entry->cmd_len), + show_driverbyte_name(((__entry->result) >> 24) & 0xff), + show_hostbyte_name(((__entry->result) >> 16) & 0xff), + show_msgbyte_name(((__entry->result) >> 8) & 0xff), + show_statusbyte_name(__entry->result & 0xff)) +) + +DEFINE_EVENT(scsi_cmd_done_timeout_template, scsi_dispatch_cmd_done, + TP_PROTO(struct scsi_cmnd *cmd), + TP_ARGS(cmd)) + +DEFINE_EVENT(scsi_cmd_done_timeout_template, scsi_dispatch_cmd_timeout, + TP_PROTO(struct scsi_cmnd *cmd), + TP_ARGS(cmd)) + +TRACE_EVENT(scsi_eh_wakeup, + + TP_PROTO(struct Scsi_Host *shost), + + TP_ARGS(shost), + + TP_STRUCT__entry( + __field( unsigned int, host_no ) + ), + + TP_fast_assign( + tp_assign(host_no, shost->host_no) + ), + + TP_printk("host_no=%u", __entry->host_no) +) + +#endif /* _TRACE_SCSI_H */ + +/* This part must be outside protection */ +#include "../../../probes/define_trace.h" --- linux-3.11.0.orig/ubuntu/lttng-modules/instrumentation/events/lttng-module/regulator.h +++ linux-3.11.0/ubuntu/lttng-modules/instrumentation/events/lttng-module/regulator.h @@ -0,0 +1,141 @@ +#undef TRACE_SYSTEM +#define TRACE_SYSTEM regulator + +#if !defined(_TRACE_REGULATOR_H) || defined(TRACE_HEADER_MULTI_READ) +#define _TRACE_REGULATOR_H + +#include +#include + +/* + * Events which just log themselves and the regulator name for enable/disable + * type tracking. + */ +DECLARE_EVENT_CLASS(regulator_basic, + + TP_PROTO(const char *name), + + TP_ARGS(name), + + TP_STRUCT__entry( + __string( name, name ) + ), + + TP_fast_assign( + tp_strcpy(name, name) + ), + + TP_printk("name=%s", __get_str(name)) + +) + +DEFINE_EVENT(regulator_basic, regulator_enable, + + TP_PROTO(const char *name), + + TP_ARGS(name) + +) + +DEFINE_EVENT(regulator_basic, regulator_enable_delay, + + TP_PROTO(const char *name), + + TP_ARGS(name) + +) + +DEFINE_EVENT(regulator_basic, regulator_enable_complete, + + TP_PROTO(const char *name), + + TP_ARGS(name) + +) + +DEFINE_EVENT(regulator_basic, regulator_disable, + + TP_PROTO(const char *name), + + TP_ARGS(name) + +) + +DEFINE_EVENT(regulator_basic, regulator_disable_complete, + + TP_PROTO(const char *name), + + TP_ARGS(name) + +) + +/* + * Events that take a range of numerical values, mostly for voltages + * and so on. + */ +DECLARE_EVENT_CLASS(regulator_range, + + TP_PROTO(const char *name, int min, int max), + + TP_ARGS(name, min, max), + + TP_STRUCT__entry( + __string( name, name ) + __field( int, min ) + __field( int, max ) + ), + + TP_fast_assign( + tp_strcpy(name, name) + tp_assign(min, min) + tp_assign(max, max) + ), + + TP_printk("name=%s (%d-%d)", __get_str(name), + (int)__entry->min, (int)__entry->max) +) + +DEFINE_EVENT(regulator_range, regulator_set_voltage, + + TP_PROTO(const char *name, int min, int max), + + TP_ARGS(name, min, max) + +) + + +/* + * Events that take a single value, mostly for readback and refcounts. + */ +DECLARE_EVENT_CLASS(regulator_value, + + TP_PROTO(const char *name, unsigned int val), + + TP_ARGS(name, val), + + TP_STRUCT__entry( + __string( name, name ) + __field( unsigned int, val ) + ), + + TP_fast_assign( + tp_strcpy(name, name) + tp_assign(val, val) + ), + + TP_printk("name=%s, val=%u", __get_str(name), + (int)__entry->val) +) + +DEFINE_EVENT(regulator_value, regulator_set_voltage_complete, + + TP_PROTO(const char *name, unsigned int value), + + TP_ARGS(name, value) + +) + +#endif /* _TRACE_POWER_H */ + +/* This part must be outside protection */ +#include "../../../probes/define_trace.h" --- linux-3.11.0.orig/ubuntu/lttng-modules/instrumentation/events/lttng-module/block.h +++ linux-3.11.0/ubuntu/lttng-modules/instrumentation/events/lttng-module/block.h @@ -0,0 +1,878 @@ +#undef TRACE_SYSTEM +#define TRACE_SYSTEM block + +#if !defined(_TRACE_BLOCK_H) || defined(TRACE_HEADER_MULTI_READ) +#define _TRACE_BLOCK_H + +#include +#include +#include +#include +#include + +#define RWBS_LEN 8 + +#ifndef _TRACE_BLOCK_DEF_ +#define _TRACE_BLOCK_DEF_ + +#define __blk_dump_cmd(cmd, len) "" + +enum { + RWBS_FLAG_WRITE = (1 << 0), + RWBS_FLAG_DISCARD = (1 << 1), + RWBS_FLAG_READ = (1 << 2), + RWBS_FLAG_RAHEAD = (1 << 3), + RWBS_FLAG_BARRIER = (1 << 4), + RWBS_FLAG_SYNC = (1 << 5), + RWBS_FLAG_META = (1 << 6), + RWBS_FLAG_SECURE = (1 << 7), + RWBS_FLAG_FLUSH = (1 << 8), + RWBS_FLAG_FUA = (1 << 9), +}; + +#endif /* _TRACE_BLOCK_DEF_ */ + +#define __print_rwbs_flags(rwbs) \ + __print_flags(rwbs, "", \ + { RWBS_FLAG_FLUSH, "F" }, \ + { RWBS_FLAG_WRITE, "W" }, \ + { RWBS_FLAG_DISCARD, "D" }, \ + { RWBS_FLAG_READ, "R" }, \ + { RWBS_FLAG_FUA, "F" }, \ + { RWBS_FLAG_RAHEAD, "A" }, \ + { RWBS_FLAG_BARRIER, "B" }, \ + { RWBS_FLAG_SYNC, "S" }, \ + { RWBS_FLAG_META, "M" }, \ + { RWBS_FLAG_SECURE, "E" }) + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,1,0)) + +#define blk_fill_rwbs(rwbs, rw, bytes) \ + tp_assign(rwbs, ((rw) & WRITE ? RWBS_FLAG_WRITE : \ + ( (rw) & REQ_DISCARD ? RWBS_FLAG_DISCARD : \ + ( (bytes) ? RWBS_FLAG_READ : \ + ( 0 )))) \ + | ((rw) & REQ_RAHEAD ? RWBS_FLAG_RAHEAD : 0) \ + | ((rw) & REQ_SYNC ? RWBS_FLAG_SYNC : 0) \ + | ((rw) & REQ_META ? RWBS_FLAG_META : 0) \ + | ((rw) & REQ_SECURE ? RWBS_FLAG_SECURE : 0) \ + | ((rw) & REQ_FLUSH ? RWBS_FLAG_FLUSH : 0) \ + | ((rw) & REQ_FUA ? RWBS_FLAG_FUA : 0)) + +#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,37)) + +#define blk_fill_rwbs(rwbs, rw, bytes) \ + tp_assign(rwbs, ((rw) & WRITE ? RWBS_FLAG_WRITE : \ + ( (rw) & REQ_DISCARD ? RWBS_FLAG_DISCARD : \ + ( (bytes) ? RWBS_FLAG_READ : \ + ( 0 )))) \ + | ((rw) & REQ_RAHEAD ? RWBS_FLAG_RAHEAD : 0) \ + | ((rw) & REQ_SYNC ? RWBS_FLAG_SYNC : 0) \ + | ((rw) & REQ_META ? RWBS_FLAG_META : 0) \ + | ((rw) & REQ_SECURE ? RWBS_FLAG_SECURE : 0)) + +#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,36)) + +#define blk_fill_rwbs(rwbs, rw, bytes) \ + tp_assign(rwbs, ((rw) & WRITE ? RWBS_FLAG_WRITE : \ + ( (rw) & REQ_DISCARD ? RWBS_FLAG_DISCARD : \ + ( (bytes) ? RWBS_FLAG_READ : \ + ( 0 )))) \ + | ((rw) & REQ_RAHEAD ? RWBS_FLAG_RAHEAD : 0) \ + | ((rw) & REQ_HARDBARRIER ? RWBS_FLAG_BARRIER : 0) \ + | ((rw) & REQ_SYNC ? RWBS_FLAG_SYNC : 0) \ + | ((rw) & REQ_META ? RWBS_FLAG_META : 0) \ + | ((rw) & REQ_SECURE ? RWBS_FLAG_SECURE : 0)) + +#else + +#define blk_fill_rwbs(rwbs, rw, bytes) \ + tp_assign(rwbs, ((rw) & WRITE ? RWBS_FLAG_WRITE : \ + ( (rw) & (1 << BIO_RW_DISCARD) ? RWBS_FLAG_DISCARD : \ + ( (bytes) ? RWBS_FLAG_READ : \ + ( 0 )))) \ + | ((rw) & (1 << BIO_RW_AHEAD) ? RWBS_FLAG_RAHEAD : 0) \ + | ((rw) & (1 << BIO_RW_SYNCIO) ? RWBS_FLAG_SYNC : 0) \ + | ((rw) & (1 << BIO_RW_META) ? RWBS_FLAG_META : 0) \ + | ((rw) & (1 << BIO_RW_BARRIER) ? RWBS_FLAG_BARRIER : 0)) + +#endif + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,9,0)) +DECLARE_EVENT_CLASS(block_buffer, + + TP_PROTO(struct buffer_head *bh), + + TP_ARGS(bh), + + TP_STRUCT__entry ( + __field( dev_t, dev ) + __field( sector_t, sector ) + __field( size_t, size ) + ), + + TP_fast_assign( + tp_assign(dev, bh->b_bdev->bd_dev) + tp_assign(sector, bh->b_blocknr) + tp_assign(size, bh->b_size) + ), + + TP_printk("%d,%d sector=%llu size=%zu", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long long)__entry->sector, __entry->size + ) +) + +/** + * block_touch_buffer - mark a buffer accessed + * @bh: buffer_head being touched + * + * Called from touch_buffer(). + */ +DEFINE_EVENT(block_buffer, block_touch_buffer, + + TP_PROTO(struct buffer_head *bh), + + TP_ARGS(bh) +) + +/** + * block_dirty_buffer - mark a buffer dirty + * @bh: buffer_head being dirtied + * + * Called from mark_buffer_dirty(). + */ +DEFINE_EVENT(block_buffer, block_dirty_buffer, + + TP_PROTO(struct buffer_head *bh), + + TP_ARGS(bh) +) +#endif + +DECLARE_EVENT_CLASS(block_rq_with_error, + + TP_PROTO(struct request_queue *q, struct request *rq), + + TP_ARGS(q, rq), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( sector_t, sector ) + __field( unsigned int, nr_sector ) + __field( int, errors ) + __field( unsigned int, rwbs ) + __dynamic_array_hex( unsigned char, cmd, + (rq->cmd_type == REQ_TYPE_BLOCK_PC) ? + rq->cmd_len : 0) + ), + + TP_fast_assign( + tp_assign(dev, rq->rq_disk ? disk_devt(rq->rq_disk) : 0) + tp_assign(sector, (rq->cmd_type == REQ_TYPE_BLOCK_PC) ? + 0 : blk_rq_pos(rq)) + tp_assign(nr_sector, (rq->cmd_type == REQ_TYPE_BLOCK_PC) ? + 0 : blk_rq_sectors(rq)) + tp_assign(errors, rq->errors) + blk_fill_rwbs(rwbs, rq->cmd_flags, blk_rq_bytes(rq)) + tp_memcpy_dyn(cmd, (rq->cmd_type == REQ_TYPE_BLOCK_PC) ? + rq->cmd : NULL) + ), + + TP_printk("%d,%d %s (%s) %llu + %u [%d]", + MAJOR(__entry->dev), MINOR(__entry->dev), + __print_rwbs_flags(__entry->rwbs), + __blk_dump_cmd(__get_dynamic_array(cmd), + __get_dynamic_array_len(cmd)), + (unsigned long long)__entry->sector, + __entry->nr_sector, __entry->errors) +) + +/** + * block_rq_abort - abort block operation request + * @q: queue containing the block operation request + * @rq: block IO operation request + * + * Called immediately after pending block IO operation request @rq in + * queue @q is aborted. The fields in the operation request @rq + * can be examined to determine which device and sectors the pending + * operation would access. + */ +DEFINE_EVENT(block_rq_with_error, block_rq_abort, + + TP_PROTO(struct request_queue *q, struct request *rq), + + TP_ARGS(q, rq) +) + +/** + * block_rq_requeue - place block IO request back on a queue + * @q: queue holding operation + * @rq: block IO operation request + * + * The block operation request @rq is being placed back into queue + * @q. For some reason the request was not completed and needs to be + * put back in the queue. + */ +DEFINE_EVENT(block_rq_with_error, block_rq_requeue, + + TP_PROTO(struct request_queue *q, struct request *rq), + + TP_ARGS(q, rq) +) + +/** + * block_rq_complete - block IO operation completed by device driver + * @q: queue containing the block operation request + * @rq: block operations request + * + * The block_rq_complete tracepoint event indicates that some portion + * of operation request has been completed by the device driver. If + * the @rq->bio is %NULL, then there is absolutely no additional work to + * do for the request. If @rq->bio is non-NULL then there is + * additional work required to complete the request. + */ +DEFINE_EVENT(block_rq_with_error, block_rq_complete, + + TP_PROTO(struct request_queue *q, struct request *rq), + + TP_ARGS(q, rq) +) + +DECLARE_EVENT_CLASS(block_rq, + + TP_PROTO(struct request_queue *q, struct request *rq), + + TP_ARGS(q, rq), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( sector_t, sector ) + __field( unsigned int, nr_sector ) + __field( unsigned int, bytes ) + __field( unsigned int, rwbs ) + __array_text( char, comm, TASK_COMM_LEN ) + __dynamic_array_hex( unsigned char, cmd, + (rq->cmd_type == REQ_TYPE_BLOCK_PC) ? + rq->cmd_len : 0) + ), + + TP_fast_assign( + tp_assign(dev, rq->rq_disk ? disk_devt(rq->rq_disk) : 0) + tp_assign(sector, (rq->cmd_type == REQ_TYPE_BLOCK_PC) ? + 0 : blk_rq_pos(rq)) + tp_assign(nr_sector, (rq->cmd_type == REQ_TYPE_BLOCK_PC) ? + 0 : blk_rq_sectors(rq)) + tp_assign(bytes, (rq->cmd_type == REQ_TYPE_BLOCK_PC) ? + blk_rq_bytes(rq) : 0) + blk_fill_rwbs(rwbs, rq->cmd_flags, blk_rq_bytes(rq)) + tp_memcpy_dyn(cmd, (rq->cmd_type == REQ_TYPE_BLOCK_PC) ? + rq->cmd : NULL) + tp_memcpy(comm, current->comm, TASK_COMM_LEN) + ), + + TP_printk("%d,%d %s %u (%s) %llu + %u [%s]", + MAJOR(__entry->dev), MINOR(__entry->dev), + __print_rwbs_flags(__entry->rwbs), + __entry->bytes, + __blk_dump_cmd(__get_dynamic_array(cmd), + __get_dynamic_array_len(cmd)), + (unsigned long long)__entry->sector, + __entry->nr_sector, __entry->comm) +) + +/** + * block_rq_insert - insert block operation request into queue + * @q: target queue + * @rq: block IO operation request + * + * Called immediately before block operation request @rq is inserted + * into queue @q. The fields in the operation request @rq struct can + * be examined to determine which device and sectors the pending + * operation would access. + */ +DEFINE_EVENT(block_rq, block_rq_insert, + + TP_PROTO(struct request_queue *q, struct request *rq), + + TP_ARGS(q, rq) +) + +/** + * block_rq_issue - issue pending block IO request operation to device driver + * @q: queue holding operation + * @rq: block IO operation operation request + * + * Called when block operation request @rq from queue @q is sent to a + * device driver for processing. + */ +DEFINE_EVENT(block_rq, block_rq_issue, + + TP_PROTO(struct request_queue *q, struct request *rq), + + TP_ARGS(q, rq) +) + +/** + * block_bio_bounce - used bounce buffer when processing block operation + * @q: queue holding the block operation + * @bio: block operation + * + * A bounce buffer was used to handle the block operation @bio in @q. + * This occurs when hardware limitations prevent a direct transfer of + * data between the @bio data memory area and the IO device. Use of a + * bounce buffer requires extra copying of data and decreases + * performance. + */ +TRACE_EVENT(block_bio_bounce, + + TP_PROTO(struct request_queue *q, struct bio *bio), + + TP_ARGS(q, bio), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( sector_t, sector ) + __field( unsigned int, nr_sector ) + __field( unsigned int, rwbs ) + __array_text( char, comm, TASK_COMM_LEN ) + ), + + TP_fast_assign( + tp_assign(dev, bio->bi_bdev ? + bio->bi_bdev->bd_dev : 0) + tp_assign(sector, bio->bi_sector) + tp_assign(nr_sector, bio->bi_size >> 9) + blk_fill_rwbs(rwbs, bio->bi_rw, bio->bi_size) + tp_memcpy(comm, current->comm, TASK_COMM_LEN) + ), + + TP_printk("%d,%d %s %llu + %u [%s]", + MAJOR(__entry->dev), MINOR(__entry->dev), + __print_rwbs_flags(__entry->rwbs), + (unsigned long long)__entry->sector, + __entry->nr_sector, __entry->comm) +) + +/** + * block_bio_complete - completed all work on the block operation + * @q: queue holding the block operation + * @bio: block operation completed + * @error: io error value + * + * This tracepoint indicates there is no further work to do on this + * block IO operation @bio. + */ +TRACE_EVENT(block_bio_complete, + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,38)) + TP_PROTO(struct request_queue *q, struct bio *bio, int error), + + TP_ARGS(q, bio, error), +#else + TP_PROTO(struct request_queue *q, struct bio *bio), + + TP_ARGS(q, bio), +#endif + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( sector_t, sector ) + __field( unsigned, nr_sector ) + __field( int, error ) + __field( unsigned int, rwbs ) + ), + + TP_fast_assign( + tp_assign(dev, bio->bi_bdev->bd_dev) + tp_assign(sector, bio->bi_sector) + tp_assign(nr_sector, bio->bi_size >> 9) +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,38)) + tp_assign(error, error) +#else + tp_assign(error, 0) +#endif + blk_fill_rwbs(rwbs, bio->bi_rw, bio->bi_size) + ), + + TP_printk("%d,%d %s %llu + %u [%d]", + MAJOR(__entry->dev), MINOR(__entry->dev), + __print_rwbs_flags(__entry->rwbs), + (unsigned long long)__entry->sector, + __entry->nr_sector, __entry->error) +) + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,9,0)) +DECLARE_EVENT_CLASS(block_bio_merge, + + TP_PROTO(struct request_queue *q, struct request *rq, struct bio *bio), + + TP_ARGS(q, rq, bio), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( sector_t, sector ) + __field( unsigned int, nr_sector ) + __field( unsigned int, rwbs ) + __array_text( char, comm, TASK_COMM_LEN ) + ), + + TP_fast_assign( + tp_assign(dev, bio->bi_bdev->bd_dev) + tp_assign(sector, bio->bi_sector) + tp_assign(nr_sector, bio->bi_size >> 9) + blk_fill_rwbs(rwbs, bio->bi_rw, bio->bi_size) + tp_memcpy(comm, current->comm, TASK_COMM_LEN) + ), + + TP_printk("%d,%d %s %llu + %u [%s]", + MAJOR(__entry->dev), MINOR(__entry->dev), + __print_rwbs_flags(__entry->rwbs), + (unsigned long long)__entry->sector, + __entry->nr_sector, __entry->comm) +) + +/** + * block_bio_backmerge - merging block operation to the end of an existing operation + * @q: queue holding operation + * @bio: new block operation to merge + * + * Merging block request @bio to the end of an existing block request + * in queue @q. + */ +DEFINE_EVENT(block_bio_merge, block_bio_backmerge, + + TP_PROTO(struct request_queue *q, struct request *rq, struct bio *bio), + + TP_ARGS(q, rq, bio) +) + +/** + * block_bio_frontmerge - merging block operation to the beginning of an existing operation + * @q: queue holding operation + * @bio: new block operation to merge + * + * Merging block IO operation @bio to the beginning of an existing block + * operation in queue @q. + */ +DEFINE_EVENT(block_bio_merge, block_bio_frontmerge, + + TP_PROTO(struct request_queue *q, struct request *rq, struct bio *bio), + + TP_ARGS(q, rq, bio) +) + +/** + * block_bio_queue - putting new block IO operation in queue + * @q: queue holding operation + * @bio: new block operation + * + * About to place the block IO operation @bio into queue @q. + */ +TRACE_EVENT(block_bio_queue, + + TP_PROTO(struct request_queue *q, struct bio *bio), + + TP_ARGS(q, bio), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( sector_t, sector ) + __field( unsigned int, nr_sector ) + __array( char, rwbs, RWBS_LEN ) + __array( char, comm, TASK_COMM_LEN ) + ), + + TP_fast_assign( + tp_assign(dev, bio->bi_bdev->bd_dev) + tp_assign(sector, bio->bi_sector) + tp_assign(nr_sector, bio->bi_size >> 9) + blk_fill_rwbs(rwbs, bio->bi_rw, bio->bi_size) + tp_memcpy(comm, current->comm, TASK_COMM_LEN) + ), + + TP_printk("%d,%d %s %llu + %u [%s]", + MAJOR(__entry->dev), MINOR(__entry->dev), __entry->rwbs, + (unsigned long long)__entry->sector, + __entry->nr_sector, __entry->comm) +) +#else +DECLARE_EVENT_CLASS(block_bio, + + TP_PROTO(struct request_queue *q, struct bio *bio), + + TP_ARGS(q, bio), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( sector_t, sector ) + __field( unsigned int, nr_sector ) + __field( unsigned int, rwbs ) + __array_text( char, comm, TASK_COMM_LEN ) + ), + + TP_fast_assign( + tp_assign(dev, bio->bi_bdev ? bio->bi_bdev->bd_dev : 0) + tp_assign(sector, bio->bi_sector) + tp_assign(nr_sector, bio->bi_size >> 9) + blk_fill_rwbs(rwbs, bio->bi_rw, bio->bi_size) + tp_memcpy(comm, current->comm, TASK_COMM_LEN) + ), + + TP_printk("%d,%d %s %llu + %u [%s]", + MAJOR(__entry->dev), MINOR(__entry->dev), + __print_rwbs_flags(__entry->rwbs), + (unsigned long long)__entry->sector, + __entry->nr_sector, __entry->comm) +) + +/** + * block_bio_backmerge - merging block operation to the end of an existing operation + * @q: queue holding operation + * @bio: new block operation to merge + * + * Merging block request @bio to the end of an existing block request + * in queue @q. + */ +DEFINE_EVENT(block_bio, block_bio_backmerge, + + TP_PROTO(struct request_queue *q, struct bio *bio), + + TP_ARGS(q, bio) +) + +/** + * block_bio_frontmerge - merging block operation to the beginning of an existing operation + * @q: queue holding operation + * @bio: new block operation to merge + * + * Merging block IO operation @bio to the beginning of an existing block + * operation in queue @q. + */ +DEFINE_EVENT(block_bio, block_bio_frontmerge, + + TP_PROTO(struct request_queue *q, struct bio *bio), + + TP_ARGS(q, bio) +) + +/** + * block_bio_queue - putting new block IO operation in queue + * @q: queue holding operation + * @bio: new block operation + * + * About to place the block IO operation @bio into queue @q. + */ +DEFINE_EVENT(block_bio, block_bio_queue, + + TP_PROTO(struct request_queue *q, struct bio *bio), + + TP_ARGS(q, bio) +) +#endif + +DECLARE_EVENT_CLASS(block_get_rq, + + TP_PROTO(struct request_queue *q, struct bio *bio, int rw), + + TP_ARGS(q, bio, rw), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( sector_t, sector ) + __field( unsigned int, nr_sector ) + __field( unsigned int, rwbs ) + __array_text( char, comm, TASK_COMM_LEN ) + ), + + TP_fast_assign( + tp_assign(dev, bio ? bio->bi_bdev->bd_dev : 0) + tp_assign(sector, bio ? bio->bi_sector : 0) + tp_assign(nr_sector, bio ? bio->bi_size >> 9 : 0) + blk_fill_rwbs(rwbs, bio ? bio->bi_rw : 0, + bio ? bio->bi_size >> 9 : 0) + tp_memcpy(comm, current->comm, TASK_COMM_LEN) + ), + + TP_printk("%d,%d %s %llu + %u [%s]", + MAJOR(__entry->dev), MINOR(__entry->dev), + __print_rwbs_flags(__entry->rwbs), + (unsigned long long)__entry->sector, + __entry->nr_sector, __entry->comm) +) + +/** + * block_getrq - get a free request entry in queue for block IO operations + * @q: queue for operations + * @bio: pending block IO operation + * @rw: low bit indicates a read (%0) or a write (%1) + * + * A request struct for queue @q has been allocated to handle the + * block IO operation @bio. + */ +DEFINE_EVENT(block_get_rq, block_getrq, + + TP_PROTO(struct request_queue *q, struct bio *bio, int rw), + + TP_ARGS(q, bio, rw) +) + +/** + * block_sleeprq - waiting to get a free request entry in queue for block IO operation + * @q: queue for operation + * @bio: pending block IO operation + * @rw: low bit indicates a read (%0) or a write (%1) + * + * In the case where a request struct cannot be provided for queue @q + * the process needs to wait for an request struct to become + * available. This tracepoint event is generated each time the + * process goes to sleep waiting for request struct become available. + */ +DEFINE_EVENT(block_get_rq, block_sleeprq, + + TP_PROTO(struct request_queue *q, struct bio *bio, int rw), + + TP_ARGS(q, bio, rw) +) + +/** + * block_plug - keep operations requests in request queue + * @q: request queue to plug + * + * Plug the request queue @q. Do not allow block operation requests + * to be sent to the device driver. Instead, accumulate requests in + * the queue to improve throughput performance of the block device. + */ +TRACE_EVENT(block_plug, + + TP_PROTO(struct request_queue *q), + + TP_ARGS(q), + + TP_STRUCT__entry( + __array_text( char, comm, TASK_COMM_LEN ) + ), + + TP_fast_assign( + tp_memcpy(comm, current->comm, TASK_COMM_LEN) + ), + + TP_printk("[%s]", __entry->comm) +) + +DECLARE_EVENT_CLASS(block_unplug, + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,39)) + TP_PROTO(struct request_queue *q, unsigned int depth, bool explicit), + + TP_ARGS(q, depth, explicit), +#else + TP_PROTO(struct request_queue *q), + + TP_ARGS(q), +#endif + + TP_STRUCT__entry( + __field( int, nr_rq ) + __array_text( char, comm, TASK_COMM_LEN ) + ), + + TP_fast_assign( +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,39)) + tp_assign(nr_rq, depth) +#else + tp_assign(nr_rq, q->rq.count[READ] + q->rq.count[WRITE]) +#endif + tp_memcpy(comm, current->comm, TASK_COMM_LEN) + ), + + TP_printk("[%s] %d", __entry->comm, __entry->nr_rq) +) + +#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,39)) +/** + * block_unplug_timer - timed release of operations requests in queue to device driver + * @q: request queue to unplug + * + * Unplug the request queue @q because a timer expired and allow block + * operation requests to be sent to the device driver. + */ +DEFINE_EVENT(block_unplug, block_unplug_timer, + + TP_PROTO(struct request_queue *q), + + TP_ARGS(q) +) +#endif + +/** + * block_unplug - release of operations requests in request queue + * @q: request queue to unplug + * @depth: number of requests just added to the queue + * @explicit: whether this was an explicit unplug, or one from schedule() + * + * Unplug request queue @q because device driver is scheduled to work + * on elements in the request queue. + */ +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,39)) +DEFINE_EVENT(block_unplug, block_unplug, +#else +DEFINE_EVENT(block_unplug, block_unplug_io, +#endif + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,39)) + TP_PROTO(struct request_queue *q, unsigned int depth, bool explicit), + + TP_ARGS(q, depth, explicit) +#else + TP_PROTO(struct request_queue *q), + + TP_ARGS(q) +#endif +) + +/** + * block_split - split a single bio struct into two bio structs + * @q: queue containing the bio + * @bio: block operation being split + * @new_sector: The starting sector for the new bio + * + * The bio request @bio in request queue @q needs to be split into two + * bio requests. The newly created @bio request starts at + * @new_sector. This split may be required due to hardware limitation + * such as operation crossing device boundaries in a RAID system. + */ +TRACE_EVENT(block_split, + + TP_PROTO(struct request_queue *q, struct bio *bio, + unsigned int new_sector), + + TP_ARGS(q, bio, new_sector), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( sector_t, sector ) + __field( sector_t, new_sector ) + __field( unsigned int, rwbs ) + __array_text( char, comm, TASK_COMM_LEN ) + ), + + TP_fast_assign( + tp_assign(dev, bio->bi_bdev->bd_dev) + tp_assign(sector, bio->bi_sector) + tp_assign(new_sector, new_sector) + blk_fill_rwbs(rwbs, bio->bi_rw, bio->bi_size) + tp_memcpy(comm, current->comm, TASK_COMM_LEN) + ), + + TP_printk("%d,%d %s %llu / %llu [%s]", + MAJOR(__entry->dev), MINOR(__entry->dev), + __print_rwbs_flags(__entry->rwbs), + (unsigned long long)__entry->sector, + (unsigned long long)__entry->new_sector, + __entry->comm) +) + +/** + * block_bio_remap - map request for a logical device to the raw device + * @q: queue holding the operation + * @bio: revised operation + * @dev: device for the operation + * @from: original sector for the operation + * + * An operation for a logical device has been mapped to the + * raw block device. + */ +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,38)) +TRACE_EVENT(block_bio_remap, +#else +TRACE_EVENT(block_remap, +#endif + + TP_PROTO(struct request_queue *q, struct bio *bio, dev_t dev, + sector_t from), + + TP_ARGS(q, bio, dev, from), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( sector_t, sector ) + __field( unsigned int, nr_sector ) + __field( dev_t, old_dev ) + __field( sector_t, old_sector ) + __field( unsigned int, rwbs ) + ), + + TP_fast_assign( + tp_assign(dev, bio->bi_bdev->bd_dev) + tp_assign(sector, bio->bi_sector) + tp_assign(nr_sector, bio->bi_size >> 9) + tp_assign(old_dev, dev) + tp_assign(old_sector, from) + blk_fill_rwbs(rwbs, bio->bi_rw, bio->bi_size) + ), + + TP_printk("%d,%d %s %llu + %u <- (%d,%d) %llu", + MAJOR(__entry->dev), MINOR(__entry->dev), + __print_rwbs_flags(__entry->rwbs), + (unsigned long long)__entry->sector, + __entry->nr_sector, + MAJOR(__entry->old_dev), MINOR(__entry->old_dev), + (unsigned long long)__entry->old_sector) +) + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,32)) +/** + * block_rq_remap - map request for a block operation request + * @q: queue holding the operation + * @rq: block IO operation request + * @dev: device for the operation + * @from: original sector for the operation + * + * The block operation request @rq in @q has been remapped. The block + * operation request @rq holds the current information and @from hold + * the original sector. + */ +TRACE_EVENT(block_rq_remap, + + TP_PROTO(struct request_queue *q, struct request *rq, dev_t dev, + sector_t from), + + TP_ARGS(q, rq, dev, from), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( sector_t, sector ) + __field( unsigned int, nr_sector ) + __field( dev_t, old_dev ) + __field( sector_t, old_sector ) + __field( unsigned int, rwbs ) + ), + + TP_fast_assign( + tp_assign(dev, disk_devt(rq->rq_disk)) + tp_assign(sector, blk_rq_pos(rq)) + tp_assign(nr_sector, blk_rq_sectors(rq)) + tp_assign(old_dev, dev) + tp_assign(old_sector, from) + blk_fill_rwbs(rwbs, rq->cmd_flags, blk_rq_bytes(rq)) + ), + + TP_printk("%d,%d %s %llu + %u <- (%d,%d) %llu", + MAJOR(__entry->dev), MINOR(__entry->dev), + __print_rwbs_flags(__entry->rwbs), + (unsigned long long)__entry->sector, + __entry->nr_sector, + MAJOR(__entry->old_dev), MINOR(__entry->old_dev), + (unsigned long long)__entry->old_sector) +) +#endif + +#undef __print_rwbs_flags +#undef blk_fill_rwbs + +#endif /* _TRACE_BLOCK_H */ + +/* This part must be outside protection */ +#include "../../../probes/define_trace.h" + --- linux-3.11.0.orig/ubuntu/lttng-modules/instrumentation/events/lttng-module/ext3.h +++ linux-3.11.0/ubuntu/lttng-modules/instrumentation/events/lttng-module/ext3.h @@ -0,0 +1,902 @@ +#undef TRACE_SYSTEM +#define TRACE_SYSTEM ext3 + +#if !defined(_TRACE_EXT3_H) || defined(TRACE_HEADER_MULTI_READ) +#define _TRACE_EXT3_H + +#include +#include + +TRACE_EVENT(ext3_free_inode, + TP_PROTO(struct inode *inode), + + TP_ARGS(inode), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( umode_t, mode ) + __field( uid_t, uid ) + __field( gid_t, gid ) + __field( blkcnt_t, blocks ) + ), + + TP_fast_assign( + tp_assign(dev, inode->i_sb->s_dev) + tp_assign(ino, inode->i_ino) + tp_assign(mode, inode->i_mode) +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,5,0)) + tp_assign(uid, i_uid_read(inode)) + tp_assign(gid, i_gid_read(inode)) +#else + tp_assign(uid, inode->i_uid) + tp_assign(gid, inode->i_gid) +#endif + tp_assign(blocks, inode->i_blocks) + ), + + TP_printk("dev %d,%d ino %lu mode 0%o uid %u gid %u blocks %lu", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + __entry->mode, __entry->uid, __entry->gid, + (unsigned long) __entry->blocks) +) + +TRACE_EVENT(ext3_request_inode, + TP_PROTO(struct inode *dir, int mode), + + TP_ARGS(dir, mode), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, dir ) + __field( umode_t, mode ) + ), + + TP_fast_assign( + tp_assign(dev, dir->i_sb->s_dev) + tp_assign(dir, dir->i_ino) + tp_assign(mode, mode) + ), + + TP_printk("dev %d,%d dir %lu mode 0%o", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->dir, __entry->mode) +) + +TRACE_EVENT(ext3_allocate_inode, + TP_PROTO(struct inode *inode, struct inode *dir, int mode), + + TP_ARGS(inode, dir, mode), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( ino_t, dir ) + __field( umode_t, mode ) + ), + + TP_fast_assign( + tp_assign(dev, inode->i_sb->s_dev) + tp_assign(ino, inode->i_ino) + tp_assign(dir, dir->i_ino) + tp_assign(mode, mode) + ), + + TP_printk("dev %d,%d ino %lu dir %lu mode 0%o", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + (unsigned long) __entry->dir, __entry->mode) +) + +TRACE_EVENT(ext3_evict_inode, + TP_PROTO(struct inode *inode), + + TP_ARGS(inode), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( int, nlink ) + ), + + TP_fast_assign( + tp_assign(dev, inode->i_sb->s_dev) + tp_assign(ino, inode->i_ino) + tp_assign(nlink, inode->i_nlink) + ), + + TP_printk("dev %d,%d ino %lu nlink %d", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, __entry->nlink) +) + +TRACE_EVENT(ext3_drop_inode, + TP_PROTO(struct inode *inode, int drop), + + TP_ARGS(inode, drop), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( int, drop ) + ), + + TP_fast_assign( + tp_assign(dev, inode->i_sb->s_dev) + tp_assign(ino, inode->i_ino) + tp_assign(drop, drop) + ), + + TP_printk("dev %d,%d ino %lu drop %d", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, __entry->drop) +) + +TRACE_EVENT(ext3_mark_inode_dirty, + TP_PROTO(struct inode *inode, unsigned long IP), + + TP_ARGS(inode, IP), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field(unsigned long, ip ) + ), + + TP_fast_assign( + tp_assign(dev, inode->i_sb->s_dev) + tp_assign(ino, inode->i_ino) + tp_assign(ip, IP) + ), + + TP_printk("dev %d,%d ino %lu caller %pF", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, (void *)__entry->ip) +) + +TRACE_EVENT(ext3_write_begin, + TP_PROTO(struct inode *inode, loff_t pos, unsigned int len, + unsigned int flags), + + TP_ARGS(inode, pos, len, flags), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( loff_t, pos ) + __field( unsigned int, len ) + __field( unsigned int, flags ) + ), + + TP_fast_assign( + tp_assign(dev, inode->i_sb->s_dev) + tp_assign(ino, inode->i_ino) + tp_assign(pos, pos) + tp_assign(len, len) + tp_assign(flags, flags) + ), + + TP_printk("dev %d,%d ino %lu pos %llu len %u flags %u", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + (unsigned long long) __entry->pos, __entry->len, + __entry->flags) +) + +DECLARE_EVENT_CLASS(ext3__write_end, + TP_PROTO(struct inode *inode, loff_t pos, unsigned int len, + unsigned int copied), + + TP_ARGS(inode, pos, len, copied), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( loff_t, pos ) + __field( unsigned int, len ) + __field( unsigned int, copied ) + ), + + TP_fast_assign( + tp_assign(dev, inode->i_sb->s_dev) + tp_assign(ino, inode->i_ino) + tp_assign(pos, pos) + tp_assign(len, len) + tp_assign(copied, copied) + ), + + TP_printk("dev %d,%d ino %lu pos %llu len %u copied %u", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + (unsigned long long) __entry->pos, __entry->len, + __entry->copied) +) + +DEFINE_EVENT(ext3__write_end, ext3_ordered_write_end, + + TP_PROTO(struct inode *inode, loff_t pos, unsigned int len, + unsigned int copied), + + TP_ARGS(inode, pos, len, copied) +) + +DEFINE_EVENT(ext3__write_end, ext3_writeback_write_end, + + TP_PROTO(struct inode *inode, loff_t pos, unsigned int len, + unsigned int copied), + + TP_ARGS(inode, pos, len, copied) +) + +DEFINE_EVENT(ext3__write_end, ext3_journalled_write_end, + + TP_PROTO(struct inode *inode, loff_t pos, unsigned int len, + unsigned int copied), + + TP_ARGS(inode, pos, len, copied) +) + +DECLARE_EVENT_CLASS(ext3__page_op, + TP_PROTO(struct page *page), + + TP_ARGS(page), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( pgoff_t, index ) + + ), + + TP_fast_assign( + tp_assign(index, page->index) + tp_assign(ino, page->mapping->host->i_ino) + tp_assign(dev, page->mapping->host->i_sb->s_dev) + ), + + TP_printk("dev %d,%d ino %lu page_index %lu", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, __entry->index) +) + +DEFINE_EVENT(ext3__page_op, ext3_ordered_writepage, + + TP_PROTO(struct page *page), + + TP_ARGS(page) +) + +DEFINE_EVENT(ext3__page_op, ext3_writeback_writepage, + + TP_PROTO(struct page *page), + + TP_ARGS(page) +) + +DEFINE_EVENT(ext3__page_op, ext3_journalled_writepage, + + TP_PROTO(struct page *page), + + TP_ARGS(page) +) + +DEFINE_EVENT(ext3__page_op, ext3_readpage, + + TP_PROTO(struct page *page), + + TP_ARGS(page) +) + +DEFINE_EVENT(ext3__page_op, ext3_releasepage, + + TP_PROTO(struct page *page), + + TP_ARGS(page) +) + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,11,0)) + +TRACE_EVENT(ext3_invalidatepage, + TP_PROTO(struct page *page, unsigned int offset, unsigned int length), + + TP_ARGS(page, offset, length), + + TP_STRUCT__entry( + __field( pgoff_t, index ) + __field( unsigned int, offset ) + __field( unsigned int, length ) + __field( ino_t, ino ) + __field( dev_t, dev ) + + ), + + TP_fast_assign( + tp_assign(index, page->index) + tp_assign(offset, offset) + tp_assign(length, length) + tp_assign(ino, page->mapping->host->i_ino) + tp_assign(dev, page->mapping->host->i_sb->s_dev) + ), + + TP_printk("dev %d,%d ino %lu page_index %lu offset %u length %u", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + __entry->index, __entry->offset, __entry->length) +) + +#else + +TRACE_EVENT(ext3_invalidatepage, + TP_PROTO(struct page *page, unsigned long offset), + + TP_ARGS(page, offset), + + TP_STRUCT__entry( + __field( pgoff_t, index ) + __field( unsigned long, offset ) + __field( ino_t, ino ) + __field( dev_t, dev ) + + ), + + TP_fast_assign( + tp_assign(index, page->index) + tp_assign(offset, offset) + tp_assign(ino, page->mapping->host->i_ino) + tp_assign(dev, page->mapping->host->i_sb->s_dev) + ), + + TP_printk("dev %d,%d ino %lu page_index %lu offset %lu", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + __entry->index, __entry->offset) +) + +#endif + +TRACE_EVENT(ext3_discard_blocks, + TP_PROTO(struct super_block *sb, unsigned long blk, + unsigned long count), + + TP_ARGS(sb, blk, count), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( unsigned long, blk ) + __field( unsigned long, count ) + + ), + + TP_fast_assign( + tp_assign(dev, sb->s_dev) + tp_assign(blk, blk) + tp_assign(count, count) + ), + + TP_printk("dev %d,%d blk %lu count %lu", + MAJOR(__entry->dev), MINOR(__entry->dev), + __entry->blk, __entry->count) +) + +TRACE_EVENT(ext3_request_blocks, + TP_PROTO(struct inode *inode, unsigned long goal, + unsigned long count), + + TP_ARGS(inode, goal, count), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( unsigned long, count ) + __field( unsigned long, goal ) + ), + + TP_fast_assign( + tp_assign(dev, inode->i_sb->s_dev) + tp_assign(ino, inode->i_ino) + tp_assign(count, count) + tp_assign(goal, goal) + ), + + TP_printk("dev %d,%d ino %lu count %lu goal %lu ", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + __entry->count, __entry->goal) +) + +TRACE_EVENT(ext3_allocate_blocks, + TP_PROTO(struct inode *inode, unsigned long goal, + unsigned long count, unsigned long block), + + TP_ARGS(inode, goal, count, block), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( unsigned long, block ) + __field( unsigned long, count ) + __field( unsigned long, goal ) + ), + + TP_fast_assign( + tp_assign(dev, inode->i_sb->s_dev) + tp_assign(ino, inode->i_ino) + tp_assign(block, block) + tp_assign(count, count) + tp_assign(goal, goal) + ), + + TP_printk("dev %d,%d ino %lu count %lu block %lu goal %lu", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + __entry->count, __entry->block, + __entry->goal) +) + +TRACE_EVENT(ext3_free_blocks, + TP_PROTO(struct inode *inode, unsigned long block, + unsigned long count), + + TP_ARGS(inode, block, count), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( umode_t, mode ) + __field( unsigned long, block ) + __field( unsigned long, count ) + ), + + TP_fast_assign( + tp_assign(dev, inode->i_sb->s_dev) + tp_assign(ino, inode->i_ino) + tp_assign(mode, inode->i_mode) + tp_assign(block, block) + tp_assign(count, count) + ), + + TP_printk("dev %d,%d ino %lu mode 0%o block %lu count %lu", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + __entry->mode, __entry->block, __entry->count) +) + +TRACE_EVENT(ext3_sync_file_enter, + TP_PROTO(struct file *file, int datasync), + + TP_ARGS(file, datasync), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( ino_t, parent ) + __field( int, datasync ) + ), + + TP_fast_assign( + tp_assign(dev, file->f_path.dentry->d_inode->i_sb->s_dev) + tp_assign(ino, file->f_path.dentry->d_inode->i_ino) + tp_assign(datasync, datasync) + tp_assign(parent, file->f_path.dentry->d_parent->d_inode->i_ino) + ), + + TP_printk("dev %d,%d ino %lu parent %ld datasync %d ", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + (unsigned long) __entry->parent, __entry->datasync) +) + +TRACE_EVENT(ext3_sync_file_exit, + TP_PROTO(struct inode *inode, int ret), + + TP_ARGS(inode, ret), + + TP_STRUCT__entry( + __field( int, ret ) + __field( ino_t, ino ) + __field( dev_t, dev ) + ), + + TP_fast_assign( + tp_assign(ret, ret) + tp_assign(ino, inode->i_ino) + tp_assign(dev, inode->i_sb->s_dev) + ), + + TP_printk("dev %d,%d ino %lu ret %d", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + __entry->ret) +) + +TRACE_EVENT(ext3_sync_fs, + TP_PROTO(struct super_block *sb, int wait), + + TP_ARGS(sb, wait), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( int, wait ) + + ), + + TP_fast_assign( + tp_assign(dev, sb->s_dev) + tp_assign(wait, wait) + ), + + TP_printk("dev %d,%d wait %d", + MAJOR(__entry->dev), MINOR(__entry->dev), + __entry->wait) +) + +TRACE_EVENT(ext3_rsv_window_add, + TP_PROTO(struct super_block *sb, + struct ext3_reserve_window_node *rsv_node), + + TP_ARGS(sb, rsv_node), + + TP_STRUCT__entry( + __field( unsigned long, start ) + __field( unsigned long, end ) + __field( dev_t, dev ) + ), + + TP_fast_assign( + tp_assign(dev, sb->s_dev) + tp_assign(start, rsv_node->rsv_window._rsv_start) + tp_assign(end, rsv_node->rsv_window._rsv_end) + ), + + TP_printk("dev %d,%d start %lu end %lu", + MAJOR(__entry->dev), MINOR(__entry->dev), + __entry->start, __entry->end) +) + +TRACE_EVENT(ext3_discard_reservation, + TP_PROTO(struct inode *inode, + struct ext3_reserve_window_node *rsv_node), + + TP_ARGS(inode, rsv_node), + + TP_STRUCT__entry( + __field( unsigned long, start ) + __field( unsigned long, end ) + __field( ino_t, ino ) + __field( dev_t, dev ) + ), + + TP_fast_assign( + tp_assign(start, rsv_node->rsv_window._rsv_start) + tp_assign(end, rsv_node->rsv_window._rsv_end) + tp_assign(ino, inode->i_ino) + tp_assign(dev, inode->i_sb->s_dev) + ), + + TP_printk("dev %d,%d ino %lu start %lu end %lu", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long)__entry->ino, __entry->start, + __entry->end) +) + +TRACE_EVENT(ext3_alloc_new_reservation, + TP_PROTO(struct super_block *sb, unsigned long goal), + + TP_ARGS(sb, goal), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( unsigned long, goal ) + ), + + TP_fast_assign( + tp_assign(dev, sb->s_dev) + tp_assign(goal, goal) + ), + + TP_printk("dev %d,%d goal %lu", + MAJOR(__entry->dev), MINOR(__entry->dev), + __entry->goal) +) + +TRACE_EVENT(ext3_reserved, + TP_PROTO(struct super_block *sb, unsigned long block, + struct ext3_reserve_window_node *rsv_node), + + TP_ARGS(sb, block, rsv_node), + + TP_STRUCT__entry( + __field( unsigned long, block ) + __field( unsigned long, start ) + __field( unsigned long, end ) + __field( dev_t, dev ) + ), + + TP_fast_assign( + tp_assign(block, block) + tp_assign(start, rsv_node->rsv_window._rsv_start) + tp_assign(end, rsv_node->rsv_window._rsv_end) + tp_assign(dev, sb->s_dev) + ), + + TP_printk("dev %d,%d block %lu, start %lu end %lu", + MAJOR(__entry->dev), MINOR(__entry->dev), + __entry->block, __entry->start, __entry->end) +) + +TRACE_EVENT(ext3_forget, + TP_PROTO(struct inode *inode, int is_metadata, unsigned long block), + + TP_ARGS(inode, is_metadata, block), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( umode_t, mode ) + __field( int, is_metadata ) + __field( unsigned long, block ) + ), + + TP_fast_assign( + tp_assign(dev, inode->i_sb->s_dev) + tp_assign(ino, inode->i_ino) + tp_assign(mode, inode->i_mode) + tp_assign(is_metadata, is_metadata) + tp_assign(block, block) + ), + + TP_printk("dev %d,%d ino %lu mode 0%o is_metadata %d block %lu", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + __entry->mode, __entry->is_metadata, __entry->block) +) + +TRACE_EVENT(ext3_read_block_bitmap, + TP_PROTO(struct super_block *sb, unsigned int group), + + TP_ARGS(sb, group), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( __u32, group ) + + ), + + TP_fast_assign( + tp_assign(dev, sb->s_dev) + tp_assign(group, group) + ), + + TP_printk("dev %d,%d group %u", + MAJOR(__entry->dev), MINOR(__entry->dev), + __entry->group) +) + +TRACE_EVENT(ext3_direct_IO_enter, + TP_PROTO(struct inode *inode, loff_t offset, unsigned long len, int rw), + + TP_ARGS(inode, offset, len, rw), + + TP_STRUCT__entry( + __field( ino_t, ino ) + __field( dev_t, dev ) + __field( loff_t, pos ) + __field( unsigned long, len ) + __field( int, rw ) + ), + + TP_fast_assign( + tp_assign(ino, inode->i_ino) + tp_assign(dev, inode->i_sb->s_dev) + tp_assign(pos, offset) + tp_assign(len, len) + tp_assign(rw, rw) + ), + + TP_printk("dev %d,%d ino %lu pos %llu len %lu rw %d", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + (unsigned long long) __entry->pos, __entry->len, + __entry->rw) +) + +TRACE_EVENT(ext3_direct_IO_exit, + TP_PROTO(struct inode *inode, loff_t offset, unsigned long len, + int rw, int ret), + + TP_ARGS(inode, offset, len, rw, ret), + + TP_STRUCT__entry( + __field( ino_t, ino ) + __field( dev_t, dev ) + __field( loff_t, pos ) + __field( unsigned long, len ) + __field( int, rw ) + __field( int, ret ) + ), + + TP_fast_assign( + tp_assign(ino, inode->i_ino) + tp_assign(dev, inode->i_sb->s_dev) + tp_assign(pos, offset) + tp_assign(len, len) + tp_assign(rw, rw) + tp_assign(ret, ret) + ), + + TP_printk("dev %d,%d ino %lu pos %llu len %lu rw %d ret %d", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + (unsigned long long) __entry->pos, __entry->len, + __entry->rw, __entry->ret) +) + +TRACE_EVENT(ext3_unlink_enter, + TP_PROTO(struct inode *parent, struct dentry *dentry), + + TP_ARGS(parent, dentry), + + TP_STRUCT__entry( + __field( ino_t, parent ) + __field( ino_t, ino ) + __field( loff_t, size ) + __field( dev_t, dev ) + ), + + TP_fast_assign( + tp_assign(parent, parent->i_ino) + tp_assign(ino, dentry->d_inode->i_ino) + tp_assign(size, dentry->d_inode->i_size) + tp_assign(dev, dentry->d_inode->i_sb->s_dev) + ), + + TP_printk("dev %d,%d ino %lu size %lld parent %ld", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + (unsigned long long)__entry->size, + (unsigned long) __entry->parent) +) + +TRACE_EVENT(ext3_unlink_exit, + TP_PROTO(struct dentry *dentry, int ret), + + TP_ARGS(dentry, ret), + + TP_STRUCT__entry( + __field( ino_t, ino ) + __field( dev_t, dev ) + __field( int, ret ) + ), + + TP_fast_assign( + tp_assign(ino, dentry->d_inode->i_ino) + tp_assign(dev, dentry->d_inode->i_sb->s_dev) + tp_assign(ret, ret) + ), + + TP_printk("dev %d,%d ino %lu ret %d", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + __entry->ret) +) + +DECLARE_EVENT_CLASS(ext3__truncate, + TP_PROTO(struct inode *inode), + + TP_ARGS(inode), + + TP_STRUCT__entry( + __field( ino_t, ino ) + __field( dev_t, dev ) + __field( blkcnt_t, blocks ) + ), + + TP_fast_assign( + tp_assign(ino, inode->i_ino) + tp_assign(dev, inode->i_sb->s_dev) + tp_assign(blocks, inode->i_blocks) + ), + + TP_printk("dev %d,%d ino %lu blocks %lu", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, (unsigned long) __entry->blocks) +) + +DEFINE_EVENT(ext3__truncate, ext3_truncate_enter, + + TP_PROTO(struct inode *inode), + + TP_ARGS(inode) +) + +DEFINE_EVENT(ext3__truncate, ext3_truncate_exit, + + TP_PROTO(struct inode *inode), + + TP_ARGS(inode) +) + +TRACE_EVENT(ext3_get_blocks_enter, + TP_PROTO(struct inode *inode, unsigned long lblk, + unsigned long len, int create), + + TP_ARGS(inode, lblk, len, create), + + TP_STRUCT__entry( + __field( ino_t, ino ) + __field( dev_t, dev ) + __field( unsigned long, lblk ) + __field( unsigned long, len ) + __field( int, create ) + ), + + TP_fast_assign( + tp_assign(ino, inode->i_ino) + tp_assign(dev, inode->i_sb->s_dev) + tp_assign(lblk, lblk) + tp_assign(len, len) + tp_assign(create, create) + ), + + TP_printk("dev %d,%d ino %lu lblk %lu len %lu create %u", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + __entry->lblk, __entry->len, __entry->create) +) + +TRACE_EVENT(ext3_get_blocks_exit, + TP_PROTO(struct inode *inode, unsigned long lblk, + unsigned long pblk, unsigned long len, int ret), + + TP_ARGS(inode, lblk, pblk, len, ret), + + TP_STRUCT__entry( + __field( ino_t, ino ) + __field( dev_t, dev ) + __field( unsigned long, lblk ) + __field( unsigned long, pblk ) + __field( unsigned long, len ) + __field( int, ret ) + ), + + TP_fast_assign( + tp_assign(ino, inode->i_ino) + tp_assign(dev, inode->i_sb->s_dev) + tp_assign(lblk, lblk) + tp_assign(pblk, pblk) + tp_assign(len, len) + tp_assign(ret, ret) + ), + + TP_printk("dev %d,%d ino %lu lblk %lu pblk %lu len %lu ret %d", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + __entry->lblk, __entry->pblk, + __entry->len, __entry->ret) +) + +TRACE_EVENT(ext3_load_inode, + TP_PROTO(struct inode *inode), + + TP_ARGS(inode), + + TP_STRUCT__entry( + __field( ino_t, ino ) + __field( dev_t, dev ) + ), + + TP_fast_assign( + tp_assign(ino, inode->i_ino) + tp_assign(dev, inode->i_sb->s_dev) + ), + + TP_printk("dev %d,%d ino %lu", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino) +) + +#endif /* _TRACE_EXT3_H */ + +/* This part must be outside protection */ +#include "../../../probes/define_trace.h" --- linux-3.11.0.orig/ubuntu/lttng-modules/instrumentation/events/lttng-module/net.h +++ linux-3.11.0/ubuntu/lttng-modules/instrumentation/events/lttng-module/net.h @@ -0,0 +1,105 @@ +#undef TRACE_SYSTEM +#define TRACE_SYSTEM net + +#if !defined(_TRACE_NET_H) || defined(TRACE_HEADER_MULTI_READ) +#define _TRACE_NET_H + +#include +#include +#include +#include +#include + +TRACE_EVENT(net_dev_xmit, + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,40)) + TP_PROTO(struct sk_buff *skb, + int rc, + struct net_device *dev, + unsigned int skb_len), + + TP_ARGS(skb, rc, dev, skb_len), +#else + TP_PROTO(struct sk_buff *skb, + int rc), + + TP_ARGS(skb, rc), +#endif + + TP_STRUCT__entry( + __field( void *, skbaddr ) + __field( unsigned int, len ) + __field( int, rc ) +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,40)) + __string( name, dev->name ) +#else + __string( name, skb->dev->name ) +#endif + ), + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,40)) + TP_fast_assign( + tp_assign(skbaddr, skb) + tp_assign(len, skb_len) + tp_assign(rc, rc) + tp_strcpy(name, dev->name) + ), +#else + TP_fast_assign( + tp_assign(skbaddr, skb) + tp_assign(len, skb->len) + tp_assign(rc, rc) + tp_strcpy(name, skb->dev->name) + ), +#endif + + TP_printk("dev=%s skbaddr=%p len=%u rc=%d", + __get_str(name), __entry->skbaddr, __entry->len, __entry->rc) +) + +DECLARE_EVENT_CLASS(net_dev_template, + + TP_PROTO(struct sk_buff *skb), + + TP_ARGS(skb), + + TP_STRUCT__entry( + __field( void *, skbaddr ) + __field( unsigned int, len ) + __string( name, skb->dev->name ) + ), + + TP_fast_assign( + tp_assign(skbaddr, skb) + tp_assign(len, skb->len) + tp_strcpy(name, skb->dev->name) + ), + + TP_printk("dev=%s skbaddr=%p len=%u", + __get_str(name), __entry->skbaddr, __entry->len) +) + +DEFINE_EVENT(net_dev_template, net_dev_queue, + + TP_PROTO(struct sk_buff *skb), + + TP_ARGS(skb) +) + +DEFINE_EVENT(net_dev_template, netif_receive_skb, + + TP_PROTO(struct sk_buff *skb), + + TP_ARGS(skb) +) + +DEFINE_EVENT(net_dev_template, netif_rx, + + TP_PROTO(struct sk_buff *skb), + + TP_ARGS(skb) +) +#endif /* _TRACE_NET_H */ + +/* This part must be outside protection */ +#include "../../../probes/define_trace.h" --- linux-3.11.0.orig/ubuntu/lttng-modules/instrumentation/events/lttng-module/writeback.h +++ linux-3.11.0/ubuntu/lttng-modules/instrumentation/events/lttng-module/writeback.h @@ -0,0 +1,617 @@ +#undef TRACE_SYSTEM +#define TRACE_SYSTEM writeback + +#if !defined(_TRACE_WRITEBACK_H) || defined(TRACE_HEADER_MULTI_READ) +#define _TRACE_WRITEBACK_H + +#include +#include +#include + +#ifndef _TRACE_WRITEBACK_DEF_ +#define _TRACE_WRITEBACK_DEF_ +static inline struct backing_dev_info *inode_to_bdi(struct inode *inode) +{ + struct super_block *sb = inode->i_sb; + + if (strcmp(sb->s_type->name, "bdev") == 0) + return inode->i_mapping->backing_dev_info; + + return sb->s_bdi; +} +#endif + +#define show_inode_state(state) \ + __print_flags(state, "|", \ + {I_DIRTY_SYNC, "I_DIRTY_SYNC"}, \ + {I_DIRTY_DATASYNC, "I_DIRTY_DATASYNC"}, \ + {I_DIRTY_PAGES, "I_DIRTY_PAGES"}, \ + {I_NEW, "I_NEW"}, \ + {I_WILL_FREE, "I_WILL_FREE"}, \ + {I_FREEING, "I_FREEING"}, \ + {I_CLEAR, "I_CLEAR"}, \ + {I_SYNC, "I_SYNC"}, \ + {I_REFERENCED, "I_REFERENCED"} \ + ) + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,2,0)) +#define WB_WORK_REASON \ + {WB_REASON_BACKGROUND, "background"}, \ + {WB_REASON_TRY_TO_FREE_PAGES, "try_to_free_pages"}, \ + {WB_REASON_SYNC, "sync"}, \ + {WB_REASON_PERIODIC, "periodic"}, \ + {WB_REASON_LAPTOP_TIMER, "laptop_timer"}, \ + {WB_REASON_FREE_MORE_MEM, "free_more_memory"}, \ + {WB_REASON_FS_FREE_SPACE, "fs_free_space"}, \ + {WB_REASON_FORKER_THREAD, "forker_thread"} +#endif + +DECLARE_EVENT_CLASS(writeback_work_class, + TP_PROTO(struct backing_dev_info *bdi, struct wb_writeback_work *work), + TP_ARGS(bdi, work), + TP_STRUCT__entry( + __array(char, name, 32) + ), + TP_fast_assign( + tp_memcpy(name, dev_name(bdi->dev ? bdi->dev : + default_backing_dev_info.dev), 32) + ), + TP_printk("bdi %s", + __entry->name + ) +) +#define DEFINE_WRITEBACK_WORK_EVENT(name) \ +DEFINE_EVENT(writeback_work_class, name, \ + TP_PROTO(struct backing_dev_info *bdi, struct wb_writeback_work *work), \ + TP_ARGS(bdi, work)) +DEFINE_WRITEBACK_WORK_EVENT(writeback_nothread) +DEFINE_WRITEBACK_WORK_EVENT(writeback_queue) +DEFINE_WRITEBACK_WORK_EVENT(writeback_exec) +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,1,0)) +DEFINE_WRITEBACK_WORK_EVENT(writeback_start) +DEFINE_WRITEBACK_WORK_EVENT(writeback_written) +DEFINE_WRITEBACK_WORK_EVENT(writeback_wait) +#endif + +TRACE_EVENT(writeback_pages_written, + TP_PROTO(long pages_written), + TP_ARGS(pages_written), + TP_STRUCT__entry( + __field(long, pages) + ), + TP_fast_assign( + tp_assign(pages, pages_written) + ), + TP_printk("%ld", __entry->pages) +) + +DECLARE_EVENT_CLASS(writeback_class, + TP_PROTO(struct backing_dev_info *bdi), + TP_ARGS(bdi), + TP_STRUCT__entry( + __array(char, name, 32) + ), + TP_fast_assign( + tp_memcpy(name, dev_name(bdi->dev), 32) + ), + TP_printk("bdi %s", + __entry->name + ) +) +#define DEFINE_WRITEBACK_EVENT(name) \ +DEFINE_EVENT(writeback_class, name, \ + TP_PROTO(struct backing_dev_info *bdi), \ + TP_ARGS(bdi)) + +#define DEFINE_WRITEBACK_EVENT_MAP(name, map) \ +DEFINE_EVENT_MAP(writeback_class, name, map, \ + TP_PROTO(struct backing_dev_info *bdi), \ + TP_ARGS(bdi)) + +DEFINE_WRITEBACK_EVENT(writeback_nowork) +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,38)) +DEFINE_WRITEBACK_EVENT(writeback_wake_background) +#endif +DEFINE_WRITEBACK_EVENT(writeback_wake_thread) +DEFINE_WRITEBACK_EVENT(writeback_wake_forker_thread) +DEFINE_WRITEBACK_EVENT(writeback_bdi_register) +DEFINE_WRITEBACK_EVENT(writeback_bdi_unregister) +DEFINE_WRITEBACK_EVENT(writeback_thread_start) +DEFINE_WRITEBACK_EVENT(writeback_thread_stop) +#if (LTTNG_KERNEL_RANGE(3,1,0, 3,2,0)) +DEFINE_WRITEBACK_EVENT_MAP(balance_dirty_start, writeback_balance_dirty_start) +DEFINE_WRITEBACK_EVENT_MAP(balance_dirty_wait, writeback_balance_dirty_wait) + +TRACE_EVENT_MAP(balance_dirty_written, + + writeback_balance_dirty_written, + + TP_PROTO(struct backing_dev_info *bdi, int written), + + TP_ARGS(bdi, written), + + TP_STRUCT__entry( + __array(char, name, 32) + __field(int, written) + ), + + TP_fast_assign( + tp_memcpy(name, dev_name(bdi->dev), 32) + tp_assign(written, written) + ), + + TP_printk("bdi %s written %d", + __entry->name, + __entry->written + ) +) +#endif + +DECLARE_EVENT_CLASS(writeback_wbc_class, + TP_PROTO(struct writeback_control *wbc, struct backing_dev_info *bdi), + TP_ARGS(wbc, bdi), + TP_STRUCT__entry( + __array(char, name, 32) + __field(long, nr_to_write) + __field(long, pages_skipped) + __field(int, sync_mode) + __field(int, for_kupdate) + __field(int, for_background) + __field(int, for_reclaim) + __field(int, range_cyclic) +#if (LINUX_VERSION_CODE < KERNEL_VERSION(3,1,0)) + __field(int, more_io) + __field(unsigned long, older_than_this) +#endif + __field(long, range_start) + __field(long, range_end) + ), + + TP_fast_assign( + tp_memcpy(name, dev_name(bdi->dev), 32) + tp_assign(nr_to_write, wbc->nr_to_write) + tp_assign(pages_skipped, wbc->pages_skipped) + tp_assign(sync_mode, wbc->sync_mode) + tp_assign(for_kupdate, wbc->for_kupdate) + tp_assign(for_background, wbc->for_background) + tp_assign(for_reclaim, wbc->for_reclaim) + tp_assign(range_cyclic, wbc->range_cyclic) +#if (LINUX_VERSION_CODE < KERNEL_VERSION(3,1,0)) + tp_assign(more_io, wbc->more_io) + tp_assign(older_than_this, wbc->older_than_this ? + *wbc->older_than_this : 0) +#endif + tp_assign(range_start, (long)wbc->range_start) + tp_assign(range_end, (long)wbc->range_end) + ), + + TP_printk("bdi %s: towrt=%ld skip=%ld mode=%d kupd=%d " +#if (LINUX_VERSION_CODE < KERNEL_VERSION(3,1,0)) + "bgrd=%d reclm=%d cyclic=%d more=%d older=0x%lx " +#else + "bgrd=%d reclm=%d cyclic=%d " +#endif + "start=0x%lx end=0x%lx", + __entry->name, + __entry->nr_to_write, + __entry->pages_skipped, + __entry->sync_mode, + __entry->for_kupdate, + __entry->for_background, + __entry->for_reclaim, + __entry->range_cyclic, +#if (LINUX_VERSION_CODE < KERNEL_VERSION(3,1,0)) + __entry->more_io, + __entry->older_than_this, +#endif + __entry->range_start, + __entry->range_end) +) + +#undef DEFINE_WBC_EVENT +#define DEFINE_WBC_EVENT(name, map) \ +DEFINE_EVENT_MAP(writeback_wbc_class, name, map, \ + TP_PROTO(struct writeback_control *wbc, struct backing_dev_info *bdi), \ + TP_ARGS(wbc, bdi)) +#if (LINUX_VERSION_CODE < KERNEL_VERSION(3,1,0)) +DEFINE_WBC_EVENT(wbc_writeback_start, writeback_wbc_writeback_start) +DEFINE_WBC_EVENT(wbc_writeback_written, writeback_wbc_writeback_written) +DEFINE_WBC_EVENT(wbc_writeback_wait, writeback_wbc_writeback_wait) +DEFINE_WBC_EVENT(wbc_balance_dirty_start, writeback_wbc_balance_dirty_start) +DEFINE_WBC_EVENT(wbc_balance_dirty_written, writeback_wbc_balance_dirty_written) +DEFINE_WBC_EVENT(wbc_balance_dirty_wait, writeback_wbc_balance_dirty_wait) +#endif +DEFINE_WBC_EVENT(wbc_writepage, writeback_wbc_writepage) + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,1,0)) +TRACE_EVENT(writeback_queue_io, + TP_PROTO(struct bdi_writeback *wb, +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,2,0)) + struct wb_writeback_work *work, +#else + unsigned long *older_than_this, +#endif + int moved), +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,2,0)) + TP_ARGS(wb, work, moved), +#else + TP_ARGS(wb, older_than_this, moved), +#endif + TP_STRUCT__entry( + __array(char, name, 32) +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,2,0)) +#else + __field(unsigned long, older) + __field(long, age) +#endif + __field(int, moved) + ), + TP_fast_assign( + tp_memcpy(name, dev_name(wb->bdi->dev), 32) +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,2,0)) +#else + tp_assign(older, older_than_this ? *older_than_this : 0) + tp_assign(age, older_than_this ? + (jiffies - *older_than_this) * 1000 / HZ : -1) +#endif + tp_assign(moved, moved) + ), +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,2,0)) + TP_printk("bdi %s: enqueue=%d", + __entry->name, + __entry->moved, + ) +#else + TP_printk("bdi %s: older=%lu age=%ld enqueue=%d", + __entry->name, + __entry->older, /* older_than_this in jiffies */ + __entry->age, /* older_than_this in relative milliseconds */ + __entry->moved + ) +#endif +) + +TRACE_EVENT_MAP(global_dirty_state, + + writeback_global_dirty_state, + + TP_PROTO(unsigned long background_thresh, + unsigned long dirty_thresh + ), + + TP_ARGS(background_thresh, + dirty_thresh + ), + + TP_STRUCT__entry( + __field(unsigned long, nr_dirty) + __field(unsigned long, nr_writeback) + __field(unsigned long, nr_unstable) + __field(unsigned long, background_thresh) + __field(unsigned long, dirty_thresh) + __field(unsigned long, dirty_limit) + __field(unsigned long, nr_dirtied) + __field(unsigned long, nr_written) + ), + + TP_fast_assign( + tp_assign(nr_dirty, global_page_state(NR_FILE_DIRTY)) + tp_assign(nr_writeback, global_page_state(NR_WRITEBACK)) + tp_assign(nr_unstable, global_page_state(NR_UNSTABLE_NFS)) + tp_assign(nr_dirtied, global_page_state(NR_DIRTIED)) + tp_assign(nr_written, global_page_state(NR_WRITTEN)) + tp_assign(background_thresh, background_thresh) + tp_assign(dirty_thresh, dirty_thresh) + tp_assign(dirty_limit, global_dirty_limit) + ), + + TP_printk("dirty=%lu writeback=%lu unstable=%lu " + "bg_thresh=%lu thresh=%lu limit=%lu " + "dirtied=%lu written=%lu", + __entry->nr_dirty, + __entry->nr_writeback, + __entry->nr_unstable, + __entry->background_thresh, + __entry->dirty_thresh, + __entry->dirty_limit, + __entry->nr_dirtied, + __entry->nr_written + ) +) +#endif + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,2,0)) + +#define KBps(x) ((x) << (PAGE_SHIFT - 10)) + +TRACE_EVENT_MAP(bdi_dirty_ratelimit, + + writeback_bdi_dirty_ratelimit, + + TP_PROTO(struct backing_dev_info *bdi, + unsigned long dirty_rate, + unsigned long task_ratelimit), + + TP_ARGS(bdi, dirty_rate, task_ratelimit), + + TP_STRUCT__entry( + __array(char, bdi, 32) + __field(unsigned long, write_bw) + __field(unsigned long, avg_write_bw) + __field(unsigned long, dirty_rate) + __field(unsigned long, dirty_ratelimit) + __field(unsigned long, task_ratelimit) + __field(unsigned long, balanced_dirty_ratelimit) + ), + + TP_fast_assign( + tp_memcpy(bdi, dev_name(bdi->dev), 32) + tp_assign(write_bw, KBps(bdi->write_bandwidth)) + tp_assign(avg_write_bw, KBps(bdi->avg_write_bandwidth)) + tp_assign(dirty_rate, KBps(dirty_rate)) + tp_assign(dirty_ratelimit, KBps(bdi->dirty_ratelimit)) + tp_assign(task_ratelimit, KBps(task_ratelimit)) + tp_assign(balanced_dirty_ratelimit, + KBps(bdi->balanced_dirty_ratelimit)) + ), + + TP_printk("bdi %s: " + "write_bw=%lu awrite_bw=%lu dirty_rate=%lu " + "dirty_ratelimit=%lu task_ratelimit=%lu " + "balanced_dirty_ratelimit=%lu", + __entry->bdi, + __entry->write_bw, /* write bandwidth */ + __entry->avg_write_bw, /* avg write bandwidth */ + __entry->dirty_rate, /* bdi dirty rate */ + __entry->dirty_ratelimit, /* base ratelimit */ + __entry->task_ratelimit, /* ratelimit with position control */ + __entry->balanced_dirty_ratelimit /* the balanced ratelimit */ + ) +) + +TRACE_EVENT_MAP(balance_dirty_pages, + + writeback_balance_dirty_pages, + + TP_PROTO(struct backing_dev_info *bdi, + unsigned long thresh, + unsigned long bg_thresh, + unsigned long dirty, + unsigned long bdi_thresh, + unsigned long bdi_dirty, + unsigned long dirty_ratelimit, + unsigned long task_ratelimit, + unsigned long dirtied, +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,3,0)) + unsigned long period, +#endif + long pause, + unsigned long start_time), + + TP_ARGS(bdi, thresh, bg_thresh, dirty, bdi_thresh, bdi_dirty, + dirty_ratelimit, task_ratelimit, +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,3,0)) + dirtied, period, pause, start_time), +#else + dirtied, pause, start_time), +#endif + TP_STRUCT__entry( + __array( char, bdi, 32) + __field(unsigned long, limit) + __field(unsigned long, setpoint) + __field(unsigned long, dirty) + __field(unsigned long, bdi_setpoint) + __field(unsigned long, bdi_dirty) + __field(unsigned long, dirty_ratelimit) + __field(unsigned long, task_ratelimit) + __field(unsigned int, dirtied) + __field(unsigned int, dirtied_pause) + __field(unsigned long, paused) + __field( long, pause) +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,3,0)) + __field(unsigned long, period) + __field( long, think) +#endif + ), + + TP_fast_assign( + tp_memcpy(bdi, dev_name(bdi->dev), 32) + tp_assign(limit, global_dirty_limit) + tp_assign(setpoint, + (global_dirty_limit + (thresh + bg_thresh) / 2) / 2) + tp_assign(dirty, dirty) + tp_assign(bdi_setpoint, + ((global_dirty_limit + (thresh + bg_thresh) / 2) / 2) * + bdi_thresh / (thresh + 1)) + tp_assign(bdi_dirty, bdi_dirty) + tp_assign(dirty_ratelimit, KBps(dirty_ratelimit)) + tp_assign(task_ratelimit, KBps(task_ratelimit)) + tp_assign(dirtied, dirtied) + tp_assign(dirtied_pause, current->nr_dirtied_pause) +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,3,0)) + tp_assign(think, current->dirty_paused_when == 0 ? 0 : + (long)(jiffies - current->dirty_paused_when) * 1000/HZ) + tp_assign(period, period * 1000 / HZ) +#endif + tp_assign(pause, pause * 1000 / HZ) + tp_assign(paused, (jiffies - start_time) * 1000 / HZ) + ), + + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,3,0)) + TP_printk("bdi %s: " + "limit=%lu setpoint=%lu dirty=%lu " + "bdi_setpoint=%lu bdi_dirty=%lu " + "dirty_ratelimit=%lu task_ratelimit=%lu " + "dirtied=%u dirtied_pause=%u " + "paused=%lu pause=%ld period=%lu think=%ld", + __entry->bdi, + __entry->limit, + __entry->setpoint, + __entry->dirty, + __entry->bdi_setpoint, + __entry->bdi_dirty, + __entry->dirty_ratelimit, + __entry->task_ratelimit, + __entry->dirtied, + __entry->dirtied_pause, + __entry->paused, /* ms */ + __entry->pause, /* ms */ + __entry->period, /* ms */ + __entry->think /* ms */ + ) +#else + TP_printk("bdi %s: " + "limit=%lu setpoint=%lu dirty=%lu " + "bdi_setpoint=%lu bdi_dirty=%lu " + "dirty_ratelimit=%lu task_ratelimit=%lu " + "dirtied=%u dirtied_pause=%u " + "paused=%lu pause=%ld", + __entry->bdi, + __entry->limit, + __entry->setpoint, + __entry->dirty, + __entry->bdi_setpoint, + __entry->bdi_dirty, + __entry->dirty_ratelimit, + __entry->task_ratelimit, + __entry->dirtied, + __entry->dirtied_pause, + __entry->paused, /* ms */ + __entry->pause /* ms */ + ) +#endif +) +#endif + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,5,0)) +TRACE_EVENT(writeback_sb_inodes_requeue, + + TP_PROTO(struct inode *inode), + TP_ARGS(inode), + + TP_STRUCT__entry( + __array(char, name, 32) + __field(unsigned long, ino) + __field(unsigned long, state) + __field(unsigned long, dirtied_when) + ), + + TP_fast_assign( + tp_memcpy(name, dev_name(inode_to_bdi(inode)->dev), 32) + tp_assign(ino, inode->i_ino) + tp_assign(state, inode->i_state) + tp_assign(dirtied_when, inode->dirtied_when) + ), + + TP_printk("bdi %s: ino=%lu state=%s dirtied_when=%lu age=%lu", + __entry->name, + __entry->ino, + show_inode_state(__entry->state), + __entry->dirtied_when, + (jiffies - __entry->dirtied_when) / HZ + ) +) +#endif + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,37)) +DECLARE_EVENT_CLASS(writeback_congest_waited_template, + + TP_PROTO(unsigned int usec_timeout, unsigned int usec_delayed), + + TP_ARGS(usec_timeout, usec_delayed), + + TP_STRUCT__entry( + __field( unsigned int, usec_timeout ) + __field( unsigned int, usec_delayed ) + ), + + TP_fast_assign( + tp_assign(usec_timeout, usec_timeout) + tp_assign(usec_delayed, usec_delayed) + ), + + TP_printk("usec_timeout=%u usec_delayed=%u", + __entry->usec_timeout, + __entry->usec_delayed) +) + +DEFINE_EVENT(writeback_congest_waited_template, writeback_congestion_wait, + + TP_PROTO(unsigned int usec_timeout, unsigned int usec_delayed), + + TP_ARGS(usec_timeout, usec_delayed) +) + +DEFINE_EVENT(writeback_congest_waited_template, writeback_wait_iff_congested, + + TP_PROTO(unsigned int usec_timeout, unsigned int usec_delayed), + + TP_ARGS(usec_timeout, usec_delayed) +) +#endif + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,1,0)) +DECLARE_EVENT_CLASS(writeback_single_inode_template, + + TP_PROTO(struct inode *inode, + struct writeback_control *wbc, + unsigned long nr_to_write + ), + + TP_ARGS(inode, wbc, nr_to_write), + + TP_STRUCT__entry( + __array(char, name, 32) + __field(unsigned long, ino) + __field(unsigned long, state) + __field(unsigned long, dirtied_when) + __field(unsigned long, writeback_index) + __field(long, nr_to_write) + __field(unsigned long, wrote) + ), + + TP_fast_assign( + tp_memcpy(name, dev_name(inode_to_bdi(inode)->dev), 32) + tp_assign(ino, inode->i_ino) + tp_assign(state, inode->i_state) + tp_assign(dirtied_when, inode->dirtied_when) + tp_assign(writeback_index, inode->i_mapping->writeback_index) + tp_assign(nr_to_write, nr_to_write) + tp_assign(wrote, nr_to_write - wbc->nr_to_write) + ), + + TP_printk("bdi %s: ino=%lu state=%s dirtied_when=%lu age=%lu " + "index=%lu to_write=%ld wrote=%lu", + __entry->name, + __entry->ino, + show_inode_state(__entry->state), + __entry->dirtied_when, + (jiffies - __entry->dirtied_when) / HZ, + __entry->writeback_index, + __entry->nr_to_write, + __entry->wrote + ) +) + +#if (LINUX_VERSION_CODE < KERNEL_VERSION(3,5,0)) +DEFINE_EVENT(writeback_single_inode_template, writeback_single_inode_requeue, + TP_PROTO(struct inode *inode, + struct writeback_control *wbc, + unsigned long nr_to_write), + TP_ARGS(inode, wbc, nr_to_write) +) +#endif + +DEFINE_EVENT(writeback_single_inode_template, writeback_single_inode, + TP_PROTO(struct inode *inode, + struct writeback_control *wbc, + unsigned long nr_to_write), + TP_ARGS(inode, wbc, nr_to_write) +) +#endif + +#endif /* _TRACE_WRITEBACK_H */ + +/* This part must be outside protection */ +#include "../../../probes/define_trace.h" --- linux-3.11.0.orig/ubuntu/lttng-modules/instrumentation/events/lttng-module/sunrpc.h +++ linux-3.11.0/ubuntu/lttng-modules/instrumentation/events/lttng-module/sunrpc.h @@ -0,0 +1,177 @@ +#undef TRACE_SYSTEM +#define TRACE_SYSTEM sunrpc + +#if !defined(_TRACE_SUNRPC_H) || defined(TRACE_HEADER_MULTI_READ) +#define _TRACE_SUNRPC_H + +#include +#include +#include + +DECLARE_EVENT_CLASS(rpc_task_status, + + TP_PROTO(struct rpc_task *task), + + TP_ARGS(task), + + TP_STRUCT__entry( + __field(const struct rpc_task *, task) + __field(const struct rpc_clnt *, clnt) + __field(int, status) + ), + + TP_fast_assign( + tp_assign(task, task) + tp_assign(clnt, task->tk_client) + tp_assign(status, task->tk_status) + ), + + TP_printk("task:%p@%p, status %d",__entry->task, __entry->clnt, __entry->status) +) + +DEFINE_EVENT(rpc_task_status, rpc_call_status, + TP_PROTO(struct rpc_task *task), + + TP_ARGS(task) +) + +DEFINE_EVENT(rpc_task_status, rpc_bind_status, + TP_PROTO(struct rpc_task *task), + + TP_ARGS(task) +) + +TRACE_EVENT(rpc_connect_status, + TP_PROTO(struct rpc_task *task, int status), + + TP_ARGS(task, status), + + TP_STRUCT__entry( + __field(const struct rpc_task *, task) + __field(const struct rpc_clnt *, clnt) + __field(int, status) + ), + + TP_fast_assign( + tp_assign(task, task) + tp_assign(clnt, task->tk_client) + tp_assign(status, status) + ), + + TP_printk("task:%p@%p, status %d",__entry->task, __entry->clnt, __entry->status) +) + +DECLARE_EVENT_CLASS(rpc_task_running, + + TP_PROTO(const struct rpc_clnt *clnt, const struct rpc_task *task, const void *action), + + TP_ARGS(clnt, task, action), + + TP_STRUCT__entry( + __field(const struct rpc_clnt *, clnt) + __field(const struct rpc_task *, task) + __field(const void *, action) + __field(unsigned long, runstate) + __field(int, status) + __field(unsigned short, flags) + ), + + TP_fast_assign( + tp_assign(clnt, clnt) + tp_assign(task, task) + tp_assign(action, action) + tp_assign(runstate, task->tk_runstate) + tp_assign(status, task->tk_status) + tp_assign(flags, task->tk_flags) + ), + + TP_printk("task:%p@%p flags=%4.4x state=%4.4lx status=%d action=%pf", + __entry->task, + __entry->clnt, + __entry->flags, + __entry->runstate, + __entry->status, + __entry->action + ) +) + +DEFINE_EVENT(rpc_task_running, rpc_task_begin, + + TP_PROTO(const struct rpc_clnt *clnt, const struct rpc_task *task, const void *action), + + TP_ARGS(clnt, task, action) + +) + +DEFINE_EVENT(rpc_task_running, rpc_task_run_action, + + TP_PROTO(const struct rpc_clnt *clnt, const struct rpc_task *task, const void *action), + + TP_ARGS(clnt, task, action) + +) + +DEFINE_EVENT(rpc_task_running, rpc_task_complete, + + TP_PROTO(const struct rpc_clnt *clnt, const struct rpc_task *task, const void *action), + + TP_ARGS(clnt, task, action) + +) + +DECLARE_EVENT_CLASS(rpc_task_queued, + + TP_PROTO(const struct rpc_clnt *clnt, const struct rpc_task *task, const struct rpc_wait_queue *q), + + TP_ARGS(clnt, task, q), + + TP_STRUCT__entry( + __field(const struct rpc_clnt *, clnt) + __field(const struct rpc_task *, task) + __field(unsigned long, timeout) + __field(unsigned long, runstate) + __field(int, status) + __field(unsigned short, flags) + __string(q_name, rpc_qname(q)) + ), + + TP_fast_assign( + tp_assign(clnt, clnt) + tp_assign(task, task) + tp_assign(timeout, task->tk_timeout) + tp_assign(runstate, task->tk_runstate) + tp_assign(status, task->tk_status) + tp_assign(flags, task->tk_flags) + tp_strcpy(q_name, rpc_qname(q)) + ), + + TP_printk("task:%p@%p flags=%4.4x state=%4.4lx status=%d timeout=%lu queue=%s", + __entry->task, + __entry->clnt, + __entry->flags, + __entry->runstate, + __entry->status, + __entry->timeout, + __get_str(q_name) + ) +) + +DEFINE_EVENT(rpc_task_queued, rpc_task_sleep, + + TP_PROTO(const struct rpc_clnt *clnt, const struct rpc_task *task, const struct rpc_wait_queue *q), + + TP_ARGS(clnt, task, q) + +) + +DEFINE_EVENT(rpc_task_queued, rpc_task_wakeup, + + TP_PROTO(const struct rpc_clnt *clnt, const struct rpc_task *task, const struct rpc_wait_queue *q), + + TP_ARGS(clnt, task, q) + +) + +#endif /* _TRACE_SUNRPC_H */ + +#include "../../../probes/define_trace.h" --- linux-3.11.0.orig/ubuntu/lttng-modules/instrumentation/events/lttng-module/timer.h +++ linux-3.11.0/ubuntu/lttng-modules/instrumentation/events/lttng-module/timer.h @@ -0,0 +1,336 @@ +#undef TRACE_SYSTEM +#define TRACE_SYSTEM timer + +#if !defined(_TRACE_TIMER_H) || defined(TRACE_HEADER_MULTI_READ) +#define _TRACE_TIMER_H + +#include + +#ifndef _TRACE_TIMER_DEF_ +#define _TRACE_TIMER_DEF_ +#include +#include + +struct timer_list; + +#endif /* _TRACE_TIMER_DEF_ */ + +DECLARE_EVENT_CLASS(timer_class, + + TP_PROTO(struct timer_list *timer), + + TP_ARGS(timer), + + TP_STRUCT__entry( + __field( void *, timer ) + ), + + TP_fast_assign( + tp_assign(timer, timer) + ), + + TP_printk("timer=%p", __entry->timer) +) + +/** + * timer_init - called when the timer is initialized + * @timer: pointer to struct timer_list + */ +DEFINE_EVENT(timer_class, timer_init, + + TP_PROTO(struct timer_list *timer), + + TP_ARGS(timer) +) + +/** + * timer_start - called when the timer is started + * @timer: pointer to struct timer_list + * @expires: the timers expiry time + */ +TRACE_EVENT(timer_start, + + TP_PROTO(struct timer_list *timer, unsigned long expires), + + TP_ARGS(timer, expires), + + TP_STRUCT__entry( + __field( void *, timer ) + __field( void *, function ) + __field( unsigned long, expires ) + __field( unsigned long, now ) + ), + + TP_fast_assign( + tp_assign(timer, timer) + tp_assign(function, timer->function) + tp_assign(expires, expires) + tp_assign(now, jiffies) + ), + + TP_printk("timer=%p function=%pf expires=%lu [timeout=%ld]", + __entry->timer, __entry->function, __entry->expires, + (long)__entry->expires - __entry->now) +) + +/** + * timer_expire_entry - called immediately before the timer callback + * @timer: pointer to struct timer_list + * + * Allows to determine the timer latency. + */ +TRACE_EVENT(timer_expire_entry, + + TP_PROTO(struct timer_list *timer), + + TP_ARGS(timer), + + TP_STRUCT__entry( + __field( void *, timer ) + __field( unsigned long, now ) + __field( void *, function) + ), + + TP_fast_assign( + tp_assign(timer, timer) + tp_assign(now, jiffies) + tp_assign(function, timer->function) + ), + + TP_printk("timer=%p function=%pf now=%lu", __entry->timer, __entry->function,__entry->now) +) + +/** + * timer_expire_exit - called immediately after the timer callback returns + * @timer: pointer to struct timer_list + * + * When used in combination with the timer_expire_entry tracepoint we can + * determine the runtime of the timer callback function. + * + * NOTE: Do NOT derefernce timer in TP_fast_assign. The pointer might + * be invalid. We solely track the pointer. + */ +DEFINE_EVENT(timer_class, timer_expire_exit, + + TP_PROTO(struct timer_list *timer), + + TP_ARGS(timer) +) + +/** + * timer_cancel - called when the timer is canceled + * @timer: pointer to struct timer_list + */ +DEFINE_EVENT(timer_class, timer_cancel, + + TP_PROTO(struct timer_list *timer), + + TP_ARGS(timer) +) + +/** + * hrtimer_init - called when the hrtimer is initialized + * @timer: pointer to struct hrtimer + * @clockid: the hrtimers clock + * @mode: the hrtimers mode + */ +TRACE_EVENT(hrtimer_init, + + TP_PROTO(struct hrtimer *hrtimer, clockid_t clockid, + enum hrtimer_mode mode), + + TP_ARGS(hrtimer, clockid, mode), + + TP_STRUCT__entry( + __field( void *, hrtimer ) + __field( clockid_t, clockid ) + __field( enum hrtimer_mode, mode ) + ), + + TP_fast_assign( + tp_assign(hrtimer, hrtimer) + tp_assign(clockid, clockid) + tp_assign(mode, mode) + ), + + TP_printk("hrtimer=%p clockid=%s mode=%s", __entry->hrtimer, + __entry->clockid == CLOCK_REALTIME ? + "CLOCK_REALTIME" : "CLOCK_MONOTONIC", + __entry->mode == HRTIMER_MODE_ABS ? + "HRTIMER_MODE_ABS" : "HRTIMER_MODE_REL") +) + +/** + * hrtimer_start - called when the hrtimer is started + * @timer: pointer to struct hrtimer + */ +TRACE_EVENT(hrtimer_start, + + TP_PROTO(struct hrtimer *hrtimer), + + TP_ARGS(hrtimer), + + TP_STRUCT__entry( + __field( void *, hrtimer ) + __field( void *, function ) + __field( s64, expires ) + __field( s64, softexpires ) + ), + + TP_fast_assign( + tp_assign(hrtimer, hrtimer) + tp_assign(function, hrtimer->function) + tp_assign(expires, hrtimer_get_expires(hrtimer).tv64) + tp_assign(softexpires, hrtimer_get_softexpires(hrtimer).tv64) + ), + + TP_printk("hrtimer=%p function=%pf expires=%llu softexpires=%llu", + __entry->hrtimer, __entry->function, + (unsigned long long)ktime_to_ns((ktime_t) { + .tv64 = __entry->expires }), + (unsigned long long)ktime_to_ns((ktime_t) { + .tv64 = __entry->softexpires })) +) + +/** + * htimmer_expire_entry - called immediately before the hrtimer callback + * @timer: pointer to struct hrtimer + * @now: pointer to variable which contains current time of the + * timers base. + * + * Allows to determine the timer latency. + */ +TRACE_EVENT(hrtimer_expire_entry, + + TP_PROTO(struct hrtimer *hrtimer, ktime_t *now), + + TP_ARGS(hrtimer, now), + + TP_STRUCT__entry( + __field( void *, hrtimer ) + __field( s64, now ) + __field( void *, function) + ), + + TP_fast_assign( + tp_assign(hrtimer, hrtimer) + tp_assign(now, now->tv64) + tp_assign(function, hrtimer->function) + ), + + TP_printk("hrtimer=%p function=%pf now=%llu", __entry->hrtimer, __entry->function, + (unsigned long long)ktime_to_ns((ktime_t) { .tv64 = __entry->now })) +) + +DECLARE_EVENT_CLASS(hrtimer_class, + + TP_PROTO(struct hrtimer *hrtimer), + + TP_ARGS(hrtimer), + + TP_STRUCT__entry( + __field( void *, hrtimer ) + ), + + TP_fast_assign( + tp_assign(hrtimer, hrtimer) + ), + + TP_printk("hrtimer=%p", __entry->hrtimer) +) + +/** + * hrtimer_expire_exit - called immediately after the hrtimer callback returns + * @timer: pointer to struct hrtimer + * + * When used in combination with the hrtimer_expire_entry tracepoint we can + * determine the runtime of the callback function. + */ +DEFINE_EVENT(hrtimer_class, hrtimer_expire_exit, + + TP_PROTO(struct hrtimer *hrtimer), + + TP_ARGS(hrtimer) +) + +/** + * hrtimer_cancel - called when the hrtimer is canceled + * @hrtimer: pointer to struct hrtimer + */ +DEFINE_EVENT(hrtimer_class, hrtimer_cancel, + + TP_PROTO(struct hrtimer *hrtimer), + + TP_ARGS(hrtimer) +) + +/** + * itimer_state - called when itimer is started or canceled + * @which: name of the interval timer + * @value: the itimers value, itimer is canceled if value->it_value is + * zero, otherwise it is started + * @expires: the itimers expiry time + */ +TRACE_EVENT(itimer_state, + + TP_PROTO(int which, const struct itimerval *const value, + cputime_t expires), + + TP_ARGS(which, value, expires), + + TP_STRUCT__entry( + __field( int, which ) + __field( cputime_t, expires ) + __field( long, value_sec ) + __field( long, value_usec ) + __field( long, interval_sec ) + __field( long, interval_usec ) + ), + + TP_fast_assign( + tp_assign(which, which) + tp_assign(expires, expires) + tp_assign(value_sec, value->it_value.tv_sec) + tp_assign(value_usec, value->it_value.tv_usec) + tp_assign(interval_sec, value->it_interval.tv_sec) + tp_assign(interval_usec, value->it_interval.tv_usec) + ), + + TP_printk("which=%d expires=%llu it_value=%ld.%ld it_interval=%ld.%ld", + __entry->which, (unsigned long long)__entry->expires, + __entry->value_sec, __entry->value_usec, + __entry->interval_sec, __entry->interval_usec) +) + +/** + * itimer_expire - called when itimer expires + * @which: type of the interval timer + * @pid: pid of the process which owns the timer + * @now: current time, used to calculate the latency of itimer + */ +TRACE_EVENT(itimer_expire, + + TP_PROTO(int which, struct pid *pid, cputime_t now), + + TP_ARGS(which, pid, now), + + TP_STRUCT__entry( + __field( int , which ) + __field( pid_t, pid ) + __field( cputime_t, now ) + ), + + TP_fast_assign( + tp_assign(which, which) + tp_assign(now, now) + tp_assign(pid, pid_nr(pid)) + ), + + TP_printk("which=%d pid=%d now=%llu", __entry->which, + (int) __entry->pid, (unsigned long long)__entry->now) +) + +#endif /* _TRACE_TIMER_H */ + +/* This part must be outside protection */ +#include "../../../probes/define_trace.h" --- linux-3.11.0.orig/ubuntu/lttng-modules/instrumentation/events/lttng-module/kmem.h +++ linux-3.11.0/ubuntu/lttng-modules/instrumentation/events/lttng-module/kmem.h @@ -0,0 +1,331 @@ +#undef TRACE_SYSTEM +#define TRACE_SYSTEM kmem + +#if !defined(_TRACE_KMEM_H) || defined(TRACE_HEADER_MULTI_READ) +#define _TRACE_KMEM_H + +#include +#include +#include +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,36)) +#include +#endif + +DECLARE_EVENT_CLASS(kmem_alloc, + + TP_PROTO(unsigned long call_site, + const void *ptr, + size_t bytes_req, + size_t bytes_alloc, + gfp_t gfp_flags), + + TP_ARGS(call_site, ptr, bytes_req, bytes_alloc, gfp_flags), + + TP_STRUCT__entry( + __field_hex( unsigned long, call_site ) + __field_hex( const void *, ptr ) + __field( size_t, bytes_req ) + __field( size_t, bytes_alloc ) + __field( gfp_t, gfp_flags ) + ), + + TP_fast_assign( + tp_assign(call_site, call_site) + tp_assign(ptr, ptr) + tp_assign(bytes_req, bytes_req) + tp_assign(bytes_alloc, bytes_alloc) + tp_assign(gfp_flags, gfp_flags) + ), + + TP_printk("call_site=%lx ptr=%p bytes_req=%zu bytes_alloc=%zu gfp_flags=%s", + __entry->call_site, + __entry->ptr, + __entry->bytes_req, + __entry->bytes_alloc, + show_gfp_flags(__entry->gfp_flags)) +) + +DEFINE_EVENT_MAP(kmem_alloc, kmalloc, + + kmem_kmalloc, + + TP_PROTO(unsigned long call_site, const void *ptr, + size_t bytes_req, size_t bytes_alloc, gfp_t gfp_flags), + + TP_ARGS(call_site, ptr, bytes_req, bytes_alloc, gfp_flags) +) + +DEFINE_EVENT(kmem_alloc, kmem_cache_alloc, + + TP_PROTO(unsigned long call_site, const void *ptr, + size_t bytes_req, size_t bytes_alloc, gfp_t gfp_flags), + + TP_ARGS(call_site, ptr, bytes_req, bytes_alloc, gfp_flags) +) + +DECLARE_EVENT_CLASS(kmem_alloc_node, + + TP_PROTO(unsigned long call_site, + const void *ptr, + size_t bytes_req, + size_t bytes_alloc, + gfp_t gfp_flags, + int node), + + TP_ARGS(call_site, ptr, bytes_req, bytes_alloc, gfp_flags, node), + + TP_STRUCT__entry( + __field_hex( unsigned long, call_site ) + __field_hex( const void *, ptr ) + __field( size_t, bytes_req ) + __field( size_t, bytes_alloc ) + __field( gfp_t, gfp_flags ) + __field( int, node ) + ), + + TP_fast_assign( + tp_assign(call_site, call_site) + tp_assign(ptr, ptr) + tp_assign(bytes_req, bytes_req) + tp_assign(bytes_alloc, bytes_alloc) + tp_assign(gfp_flags, gfp_flags) + tp_assign(node, node) + ), + + TP_printk("call_site=%lx ptr=%p bytes_req=%zu bytes_alloc=%zu gfp_flags=%s node=%d", + __entry->call_site, + __entry->ptr, + __entry->bytes_req, + __entry->bytes_alloc, + show_gfp_flags(__entry->gfp_flags), + __entry->node) +) + +DEFINE_EVENT_MAP(kmem_alloc_node, kmalloc_node, + + kmem_kmalloc_node, + + TP_PROTO(unsigned long call_site, const void *ptr, + size_t bytes_req, size_t bytes_alloc, + gfp_t gfp_flags, int node), + + TP_ARGS(call_site, ptr, bytes_req, bytes_alloc, gfp_flags, node) +) + +DEFINE_EVENT(kmem_alloc_node, kmem_cache_alloc_node, + + TP_PROTO(unsigned long call_site, const void *ptr, + size_t bytes_req, size_t bytes_alloc, + gfp_t gfp_flags, int node), + + TP_ARGS(call_site, ptr, bytes_req, bytes_alloc, gfp_flags, node) +) + +DECLARE_EVENT_CLASS(kmem_free, + + TP_PROTO(unsigned long call_site, const void *ptr), + + TP_ARGS(call_site, ptr), + + TP_STRUCT__entry( + __field_hex( unsigned long, call_site ) + __field_hex( const void *, ptr ) + ), + + TP_fast_assign( + tp_assign(call_site, call_site) + tp_assign(ptr, ptr) + ), + + TP_printk("call_site=%lx ptr=%p", __entry->call_site, __entry->ptr) +) + +DEFINE_EVENT_MAP(kmem_free, kfree, + + kmem_kfree, + + TP_PROTO(unsigned long call_site, const void *ptr), + + TP_ARGS(call_site, ptr) +) + +DEFINE_EVENT(kmem_free, kmem_cache_free, + + TP_PROTO(unsigned long call_site, const void *ptr), + + TP_ARGS(call_site, ptr) +) + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,32)) +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,3,0)) +TRACE_EVENT(mm_page_free, +#else +TRACE_EVENT(mm_page_free_direct, +#endif + + TP_PROTO(struct page *page, unsigned int order), + + TP_ARGS(page, order), + + TP_STRUCT__entry( + __field_hex( struct page *, page ) + __field( unsigned int, order ) + ), + + TP_fast_assign( + tp_assign(page, page) + tp_assign(order, order) + ), + + TP_printk("page=%p pfn=%lu order=%d", + __entry->page, + page_to_pfn(__entry->page), + __entry->order) +) + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,3,0)) +TRACE_EVENT(mm_page_free_batched, +#else +TRACE_EVENT(mm_pagevec_free, +#endif + + TP_PROTO(struct page *page, int cold), + + TP_ARGS(page, cold), + + TP_STRUCT__entry( + __field_hex( struct page *, page ) + __field( int, cold ) + ), + + TP_fast_assign( + tp_assign(page, page) + tp_assign(cold, cold) + ), + + TP_printk("page=%p pfn=%lu order=0 cold=%d", + __entry->page, + page_to_pfn(__entry->page), + __entry->cold) +) + +TRACE_EVENT(mm_page_alloc, + + TP_PROTO(struct page *page, unsigned int order, + gfp_t gfp_flags, int migratetype), + + TP_ARGS(page, order, gfp_flags, migratetype), + + TP_STRUCT__entry( + __field_hex( struct page *, page ) + __field( unsigned int, order ) + __field( gfp_t, gfp_flags ) + __field( int, migratetype ) + ), + + TP_fast_assign( + tp_assign(page, page) + tp_assign(order, order) + tp_assign(gfp_flags, gfp_flags) + tp_assign(migratetype, migratetype) + ), + + TP_printk("page=%p pfn=%lu order=%d migratetype=%d gfp_flags=%s", + __entry->page, + __entry->page ? page_to_pfn(__entry->page) : 0, + __entry->order, + __entry->migratetype, + show_gfp_flags(__entry->gfp_flags)) +) + +DECLARE_EVENT_CLASS(mm_page, + + TP_PROTO(struct page *page, unsigned int order, int migratetype), + + TP_ARGS(page, order, migratetype), + + TP_STRUCT__entry( + __field_hex( struct page *, page ) + __field( unsigned int, order ) + __field( int, migratetype ) + ), + + TP_fast_assign( + tp_assign(page, page) + tp_assign(order, order) + tp_assign(migratetype, migratetype) + ), + + TP_printk("page=%p pfn=%lu order=%u migratetype=%d percpu_refill=%d", + __entry->page, + __entry->page ? page_to_pfn(__entry->page) : 0, + __entry->order, + __entry->migratetype, + __entry->order == 0) +) + +DEFINE_EVENT(mm_page, mm_page_alloc_zone_locked, + + TP_PROTO(struct page *page, unsigned int order, int migratetype), + + TP_ARGS(page, order, migratetype) +) + +DEFINE_EVENT_PRINT(mm_page, mm_page_pcpu_drain, + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,33)) + TP_PROTO(struct page *page, unsigned int order, int migratetype), +#else + TP_PROTO(struct page *page, int order, int migratetype), +#endif + + TP_ARGS(page, order, migratetype), + + TP_printk("page=%p pfn=%lu order=%d migratetype=%d", + __entry->page, page_to_pfn(__entry->page), + __entry->order, __entry->migratetype) +) + +TRACE_EVENT(mm_page_alloc_extfrag, + + TP_PROTO(struct page *page, + int alloc_order, int fallback_order, + int alloc_migratetype, int fallback_migratetype), + + TP_ARGS(page, + alloc_order, fallback_order, + alloc_migratetype, fallback_migratetype), + + TP_STRUCT__entry( + __field_hex( struct page *, page ) + __field( int, alloc_order ) + __field( int, fallback_order ) + __field( int, alloc_migratetype ) + __field( int, fallback_migratetype ) + ), + + TP_fast_assign( + tp_assign(page, page) + tp_assign(alloc_order, alloc_order) + tp_assign(fallback_order, fallback_order) + tp_assign(alloc_migratetype, alloc_migratetype) + tp_assign(fallback_migratetype, fallback_migratetype) + ), + + TP_printk("page=%p pfn=%lu alloc_order=%d fallback_order=%d pageblock_order=%d alloc_migratetype=%d fallback_migratetype=%d fragmenting=%d change_ownership=%d", + __entry->page, + page_to_pfn(__entry->page), + __entry->alloc_order, + __entry->fallback_order, + pageblock_order, + __entry->alloc_migratetype, + __entry->fallback_migratetype, + __entry->fallback_order < pageblock_order, + __entry->alloc_migratetype == __entry->fallback_migratetype) +) +#endif + +#endif /* _TRACE_KMEM_H */ + +/* This part must be outside protection */ +#include "../../../probes/define_trace.h" --- linux-3.11.0.orig/ubuntu/lttng-modules/instrumentation/events/lttng-module/gpio.h +++ linux-3.11.0/ubuntu/lttng-modules/instrumentation/events/lttng-module/gpio.h @@ -0,0 +1,56 @@ +#undef TRACE_SYSTEM +#define TRACE_SYSTEM gpio + +#if !defined(_TRACE_GPIO_H) || defined(TRACE_HEADER_MULTI_READ) +#define _TRACE_GPIO_H + +#include + +TRACE_EVENT(gpio_direction, + + TP_PROTO(unsigned gpio, int in, int err), + + TP_ARGS(gpio, in, err), + + TP_STRUCT__entry( + __field(unsigned, gpio) + __field(int, in) + __field(int, err) + ), + + TP_fast_assign( + tp_assign(gpio, gpio) + tp_assign(in, in) + tp_assign(err, err) + ), + + TP_printk("%u %3s (%d)", __entry->gpio, + __entry->in ? "in" : "out", __entry->err) +) + +TRACE_EVENT(gpio_value, + + TP_PROTO(unsigned gpio, int get, int value), + + TP_ARGS(gpio, get, value), + + TP_STRUCT__entry( + __field(unsigned, gpio) + __field(int, get) + __field(int, value) + ), + + TP_fast_assign( + tp_assign(gpio, gpio) + tp_assign(get, get) + tp_assign(value, value) + ), + + TP_printk("%u %3s %d", __entry->gpio, + __entry->get ? "get" : "set", __entry->value) +) + +#endif /* if !defined(_TRACE_GPIO_H) || defined(TRACE_HEADER_MULTI_READ) */ + +/* This part must be outside protection */ +#include "../../../probes/define_trace.h" --- linux-3.11.0.orig/ubuntu/lttng-modules/instrumentation/events/lttng-module/asoc.h +++ linux-3.11.0/ubuntu/lttng-modules/instrumentation/events/lttng-module/asoc.h @@ -0,0 +1,422 @@ +#undef TRACE_SYSTEM +#define TRACE_SYSTEM asoc + +#if !defined(_TRACE_ASOC_H) || defined(TRACE_HEADER_MULTI_READ) +#define _TRACE_ASOC_H + +#include +#include +#include + +#define DAPM_DIRECT "(direct)" + +#ifndef _TRACE_ASOC_DEF +#define _TRACE_ASOC_DEF +struct snd_soc_jack; +struct snd_soc_codec; +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,1,0)) +struct snd_soc_platform; +#endif +struct snd_soc_card; +struct snd_soc_dapm_widget; +#endif + +/* + * Log register events + */ +DECLARE_EVENT_CLASS(snd_soc_reg, + + TP_PROTO(struct snd_soc_codec *codec, unsigned int reg, + unsigned int val), + + TP_ARGS(codec, reg, val), + + TP_STRUCT__entry( + __string( name, codec->name ) + __field( int, id ) + __field( unsigned int, reg ) + __field( unsigned int, val ) + ), + + TP_fast_assign( + tp_strcpy(name, codec->name) + tp_assign(id, codec->id) + tp_assign(reg, reg) + tp_assign(val, val) + ), + + TP_printk("codec=%s.%d reg=%x val=%x", __get_str(name), + (int)__entry->id, (unsigned int)__entry->reg, + (unsigned int)__entry->val) +) + +DEFINE_EVENT(snd_soc_reg, snd_soc_reg_write, + + TP_PROTO(struct snd_soc_codec *codec, unsigned int reg, + unsigned int val), + + TP_ARGS(codec, reg, val) + +) + +DEFINE_EVENT(snd_soc_reg, snd_soc_reg_read, + + TP_PROTO(struct snd_soc_codec *codec, unsigned int reg, + unsigned int val), + + TP_ARGS(codec, reg, val) + +) + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,1,0)) +DECLARE_EVENT_CLASS(snd_soc_preg, + + TP_PROTO(struct snd_soc_platform *platform, unsigned int reg, + unsigned int val), + + TP_ARGS(platform, reg, val), + + TP_STRUCT__entry( + __string( name, platform->name ) + __field( int, id ) + __field( unsigned int, reg ) + __field( unsigned int, val ) + ), + + TP_fast_assign( + tp_strcpy(name, platform->name) + tp_assign(id, platform->id) + tp_assign(reg, reg) + tp_assign(val, val) + ), + + TP_printk("platform=%s.%d reg=%x val=%x", __get_str(name), + (int)__entry->id, (unsigned int)__entry->reg, + (unsigned int)__entry->val) +) + +DEFINE_EVENT(snd_soc_preg, snd_soc_preg_write, + + TP_PROTO(struct snd_soc_platform *platform, unsigned int reg, + unsigned int val), + + TP_ARGS(platform, reg, val) + +) + +DEFINE_EVENT(snd_soc_preg, snd_soc_preg_read, + + TP_PROTO(struct snd_soc_platform *platform, unsigned int reg, + unsigned int val), + + TP_ARGS(platform, reg, val) + +) +#endif + +DECLARE_EVENT_CLASS(snd_soc_card, + + TP_PROTO(struct snd_soc_card *card, int val), + + TP_ARGS(card, val), + + TP_STRUCT__entry( + __string( name, card->name ) + __field( int, val ) + ), + + TP_fast_assign( + tp_strcpy(name, card->name) + tp_assign(val, val) + ), + + TP_printk("card=%s val=%d", __get_str(name), (int)__entry->val) +) + +DEFINE_EVENT(snd_soc_card, snd_soc_bias_level_start, + + TP_PROTO(struct snd_soc_card *card, int val), + + TP_ARGS(card, val) + +) + +DEFINE_EVENT(snd_soc_card, snd_soc_bias_level_done, + + TP_PROTO(struct snd_soc_card *card, int val), + + TP_ARGS(card, val) + +) + +DECLARE_EVENT_CLASS(snd_soc_dapm_basic, + + TP_PROTO(struct snd_soc_card *card), + + TP_ARGS(card), + + TP_STRUCT__entry( + __string( name, card->name ) + ), + + TP_fast_assign( + tp_strcpy(name, card->name) + ), + + TP_printk("card=%s", __get_str(name)) +) + +DEFINE_EVENT(snd_soc_dapm_basic, snd_soc_dapm_start, + + TP_PROTO(struct snd_soc_card *card), + + TP_ARGS(card) + +) + +DEFINE_EVENT(snd_soc_dapm_basic, snd_soc_dapm_done, + + TP_PROTO(struct snd_soc_card *card), + + TP_ARGS(card) + +) + +DECLARE_EVENT_CLASS(snd_soc_dapm_widget, + + TP_PROTO(struct snd_soc_dapm_widget *w, int val), + + TP_ARGS(w, val), + + TP_STRUCT__entry( + __string( name, w->name ) + __field( int, val ) + ), + + TP_fast_assign( + tp_strcpy(name, w->name) + tp_assign(val, val) + ), + + TP_printk("widget=%s val=%d", __get_str(name), + (int)__entry->val) +) + +DEFINE_EVENT(snd_soc_dapm_widget, snd_soc_dapm_widget_power, + + TP_PROTO(struct snd_soc_dapm_widget *w, int val), + + TP_ARGS(w, val) + +) + +DEFINE_EVENT(snd_soc_dapm_widget, snd_soc_dapm_widget_event_start, + + TP_PROTO(struct snd_soc_dapm_widget *w, int val), + + TP_ARGS(w, val) + +) + +DEFINE_EVENT(snd_soc_dapm_widget, snd_soc_dapm_widget_event_done, + + TP_PROTO(struct snd_soc_dapm_widget *w, int val), + + TP_ARGS(w, val) + +) + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,2,0)) +TRACE_EVENT(snd_soc_dapm_walk_done, + + TP_PROTO(struct snd_soc_card *card), + + TP_ARGS(card), + + TP_STRUCT__entry( + __string( name, card->name ) + __field( int, power_checks ) + __field( int, path_checks ) + __field( int, neighbour_checks ) + ), + + TP_fast_assign( + tp_strcpy(name, card->name) + tp_assign(power_checks, card->dapm_stats.power_checks) + tp_assign(path_checks, card->dapm_stats.path_checks) + tp_assign(neighbour_checks, card->dapm_stats.neighbour_checks) + ), + + TP_printk("%s: checks %d power, %d path, %d neighbour", + __get_str(name), (int)__entry->power_checks, + (int)__entry->path_checks, (int)__entry->neighbour_checks) +) +#endif + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,5,0)) +TRACE_EVENT(snd_soc_dapm_output_path, + + TP_PROTO(struct snd_soc_dapm_widget *widget, + struct snd_soc_dapm_path *path), + + TP_ARGS(widget, path), + + TP_STRUCT__entry( + __string( wname, widget->name ) + __string( pname, path->name ? path->name : DAPM_DIRECT) + __string( psname, path->sink->name ) + __field( int, path_sink ) + __field( int, path_connect ) + ), + + TP_fast_assign( + tp_strcpy(wname, widget->name) + tp_strcpy(pname, path->name ? path->name : DAPM_DIRECT) + tp_strcpy(psname, path->sink->name) + tp_assign(path_connect, path->connect) + tp_assign(path_sink, (long)path->sink) + ), + + TP_printk("%c%s -> %s -> %s\n", + (int) __entry->path_sink && + (int) __entry->path_connect ? '*' : ' ', + __get_str(wname), __get_str(pname), __get_str(psname)) +) + +TRACE_EVENT(snd_soc_dapm_input_path, + + TP_PROTO(struct snd_soc_dapm_widget *widget, + struct snd_soc_dapm_path *path), + + TP_ARGS(widget, path), + + TP_STRUCT__entry( + __string( wname, widget->name ) + __string( pname, path->name ? path->name : DAPM_DIRECT) + __string( psname, path->source->name ) + __field( int, path_source ) + __field( int, path_connect ) + ), + + TP_fast_assign( + tp_strcpy(wname, widget->name) + tp_strcpy(pname, path->name ? path->name : DAPM_DIRECT) + tp_strcpy(psname, path->source->name) + tp_assign(path_connect, path->connect) + tp_assign(path_source, (long)path->source) + ), + + TP_printk("%c%s <- %s <- %s\n", + (int) __entry->path_source && + (int) __entry->path_connect ? '*' : ' ', + __get_str(wname), __get_str(pname), __get_str(psname)) +) + +TRACE_EVENT(snd_soc_dapm_connected, + + TP_PROTO(int paths, int stream), + + TP_ARGS(paths, stream), + + TP_STRUCT__entry( + __field( int, paths ) + __field( int, stream ) + ), + + TP_fast_assign( + tp_assign(paths, paths) + tp_assign(stream, stream) + ), + + TP_printk("%s: found %d paths\n", + __entry->stream ? "capture" : "playback", __entry->paths) +) +#endif + +TRACE_EVENT(snd_soc_jack_irq, + + TP_PROTO(const char *name), + + TP_ARGS(name), + + TP_STRUCT__entry( + __string( name, name ) + ), + + TP_fast_assign( + tp_strcpy(name, name) + ), + + TP_printk("%s", __get_str(name)) +) + +TRACE_EVENT(snd_soc_jack_report, + + TP_PROTO(struct snd_soc_jack *jack, int mask, int val), + + TP_ARGS(jack, mask, val), + + TP_STRUCT__entry( + __string( name, jack->jack->name ) + __field( int, mask ) + __field( int, val ) + ), + + TP_fast_assign( + tp_strcpy(name, jack->jack->name) + tp_assign(mask, mask) + tp_assign(val, val) + ), + + TP_printk("jack=%s %x/%x", __get_str(name), (int)__entry->val, + (int)__entry->mask) +) + +TRACE_EVENT(snd_soc_jack_notify, + + TP_PROTO(struct snd_soc_jack *jack, int val), + + TP_ARGS(jack, val), + + TP_STRUCT__entry( + __string( name, jack->jack->name ) + __field( int, val ) + ), + + TP_fast_assign( + tp_strcpy(name, jack->jack->name) + tp_assign(val, val) + ), + + TP_printk("jack=%s %x", __get_str(name), (int)__entry->val) +) + +TRACE_EVENT(snd_soc_cache_sync, + + TP_PROTO(struct snd_soc_codec *codec, const char *type, + const char *status), + + TP_ARGS(codec, type, status), + + TP_STRUCT__entry( + __string( name, codec->name ) + __string( status, status ) + __string( type, type ) + __field( int, id ) + ), + + TP_fast_assign( + tp_strcpy(name, codec->name) + tp_strcpy(status, status) + tp_strcpy(type, type) + tp_assign(id, codec->id) + ), + + TP_printk("codec=%s.%d type=%s status=%s", __get_str(name), + (int)__entry->id, __get_str(type), __get_str(status)) +) + +#endif /* _TRACE_ASOC_H */ + +/* This part must be outside protection */ +#include "../../../probes/define_trace.h" --- linux-3.11.0.orig/ubuntu/lttng-modules/instrumentation/events/lttng-module/syscalls.h +++ linux-3.11.0/ubuntu/lttng-modules/instrumentation/events/lttng-module/syscalls.h @@ -0,0 +1,76 @@ +#undef TRACE_SYSTEM +#define TRACE_SYSTEM raw_syscalls +#define TRACE_INCLUDE_FILE syscalls + +#if !defined(_TRACE_EVENTS_SYSCALLS_H) || defined(TRACE_HEADER_MULTI_READ) +#define _TRACE_EVENTS_SYSCALLS_H + +#include + +#ifdef CONFIG_HAVE_SYSCALL_TRACEPOINTS + +#ifndef _TRACE_SYSCALLS_DEF_ +#define _TRACE_SYSCALLS_DEF_ + +#include +#include + +#endif /* _TRACE_SYSCALLS_DEF_ */ + +TRACE_EVENT(sys_enter, + + TP_PROTO(struct pt_regs *regs, long id), + + TP_ARGS(regs, id), + + TP_STRUCT__entry( + __field( long, id ) + __array( unsigned long, args, 6 ) + ), + + TP_fast_assign( + tp_assign(id, id) + { + tp_memcpy(args, + ({ + unsigned long args_copy[6]; + syscall_get_arguments(current, regs, + 0, 6, args_copy); + args_copy; + }), 6 * sizeof(unsigned long)); + } + ), + + TP_printk("NR %ld (%lx, %lx, %lx, %lx, %lx, %lx)", + __entry->id, + __entry->args[0], __entry->args[1], __entry->args[2], + __entry->args[3], __entry->args[4], __entry->args[5]) +) + +TRACE_EVENT(sys_exit, + + TP_PROTO(struct pt_regs *regs, long ret), + + TP_ARGS(regs, ret), + + TP_STRUCT__entry( + __field( long, id ) + __field( long, ret ) + ), + + TP_fast_assign( + tp_assign(id, syscall_get_nr(current, regs)) + tp_assign(ret, ret) + ), + + TP_printk("NR %ld = %ld", + __entry->id, __entry->ret) +) + +#endif /* CONFIG_HAVE_SYSCALL_TRACEPOINTS */ + +#endif /* _TRACE_EVENTS_SYSCALLS_H */ + +/* This part must be outside protection */ +#include "../../../probes/define_trace.h" + --- linux-3.11.0.orig/ubuntu/lttng-modules/instrumentation/events/lttng-module/skb.h +++ linux-3.11.0/ubuntu/lttng-modules/instrumentation/events/lttng-module/skb.h @@ -0,0 +1,84 @@ +#undef TRACE_SYSTEM +#define TRACE_SYSTEM skb + +#if !defined(_TRACE_SKB_H) || defined(TRACE_HEADER_MULTI_READ) +#define _TRACE_SKB_H + +#include +#include +#include +#include + +/* + * Tracepoint for free an sk_buff: + */ +TRACE_EVENT_MAP(kfree_skb, + + skb_kfree, + + TP_PROTO(struct sk_buff *skb, void *location), + + TP_ARGS(skb, location), + + TP_STRUCT__entry( + __field( void *, skbaddr ) + __field( void *, location ) + __field( unsigned short, protocol ) + ), + + TP_fast_assign( + tp_assign(skbaddr, skb) + tp_assign(location, location) + tp_assign(protocol, ntohs(skb->protocol)) + ), + + TP_printk("skbaddr=%p protocol=%u location=%p", + __entry->skbaddr, __entry->protocol, __entry->location) +) + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,37)) +TRACE_EVENT_MAP(consume_skb, + + skb_consume, + + TP_PROTO(struct sk_buff *skb), + + TP_ARGS(skb), + + TP_STRUCT__entry( + __field( void *, skbaddr ) + ), + + TP_fast_assign( + tp_assign(skbaddr, skb) + ), + + TP_printk("skbaddr=%p", __entry->skbaddr) +) +#endif + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,32)) +TRACE_EVENT(skb_copy_datagram_iovec, + + TP_PROTO(const struct sk_buff *skb, int len), + + TP_ARGS(skb, len), + + TP_STRUCT__entry( + __field( const void *, skbaddr ) + __field( int, len ) + ), + + TP_fast_assign( + tp_assign(skbaddr, skb) + tp_assign(len, len) + ), + + TP_printk("skbaddr=%p len=%d", __entry->skbaddr, __entry->len) +) +#endif + +#endif /* _TRACE_SKB_H */ + +/* This part must be outside protection */ +#include "../../../probes/define_trace.h" --- linux-3.11.0.orig/ubuntu/lttng-modules/instrumentation/events/lttng-module/rpm.h +++ linux-3.11.0/ubuntu/lttng-modules/instrumentation/events/lttng-module/rpm.h @@ -0,0 +1,101 @@ + +#undef TRACE_SYSTEM +#define TRACE_SYSTEM rpm + +#if !defined(_TRACE_RUNTIME_POWER_H) || defined(TRACE_HEADER_MULTI_READ) +#define _TRACE_RUNTIME_POWER_H + +#include +#include + +#ifndef _TRACE_RPM_DEF_ +#define _TRACE_RPM_DEF_ +struct device; +#endif + +/* + * The rpm_internal events are used for tracing some important + * runtime pm internal functions. + */ +DECLARE_EVENT_CLASS(rpm_internal, + + TP_PROTO(struct device *dev, int flags), + + TP_ARGS(dev, flags), + + TP_STRUCT__entry( + __string( name, dev_name(dev) ) + __field( int, flags ) + __field( int , usage_count ) + __field( int , disable_depth ) + __field( int , runtime_auto ) + __field( int , request_pending ) + __field( int , irq_safe ) + __field( int , child_count ) + ), + + TP_fast_assign( + tp_strcpy(name, dev_name(dev)) + tp_assign(flags, flags) + tp_assign(usage_count, atomic_read(&dev->power.usage_count)) + tp_assign(disable_depth, dev->power.disable_depth) + tp_assign(runtime_auto, dev->power.runtime_auto) + tp_assign(request_pending, dev->power.request_pending) + tp_assign(irq_safe, dev->power.irq_safe) + tp_assign(child_count, atomic_read(&dev->power.child_count)) + ), + + TP_printk("%s flags-%x cnt-%-2d dep-%-2d auto-%-1d p-%-1d" + " irq-%-1d child-%d", + __get_str(name), __entry->flags, + __entry->usage_count, + __entry->disable_depth, + __entry->runtime_auto, + __entry->request_pending, + __entry->irq_safe, + __entry->child_count + ) +) +DEFINE_EVENT(rpm_internal, rpm_suspend, + + TP_PROTO(struct device *dev, int flags), + + TP_ARGS(dev, flags) +) +DEFINE_EVENT(rpm_internal, rpm_resume, + + TP_PROTO(struct device *dev, int flags), + + TP_ARGS(dev, flags) +) +DEFINE_EVENT(rpm_internal, rpm_idle, + + TP_PROTO(struct device *dev, int flags), + + TP_ARGS(dev, flags) +) + +TRACE_EVENT(rpm_return_int, + TP_PROTO(struct device *dev, unsigned long ip, int ret), + TP_ARGS(dev, ip, ret), + + TP_STRUCT__entry( + __string( name, dev_name(dev)) + __field( unsigned long, ip ) + __field( int, ret ) + ), + + TP_fast_assign( + tp_strcpy(name, dev_name(dev)) + tp_assign(ip, ip) + tp_assign(ret, ret) + ), + + TP_printk("%pS:%s ret=%d", (void *)__entry->ip, __get_str(name), + __entry->ret) +) + +#endif /* _TRACE_RUNTIME_POWER_H */ + +/* This part must be outside protection */ +#include "../../../probes/define_trace.h" --- linux-3.11.0.orig/ubuntu/lttng-modules/instrumentation/events/lttng-module/module.h +++ linux-3.11.0/ubuntu/lttng-modules/instrumentation/events/lttng-module/module.h @@ -0,0 +1,157 @@ +/* + * Because linux/module.h has tracepoints in the header, and ftrace.h + * eventually includes this file, define_trace.h includes linux/module.h + * But we do not want the module.h to override the TRACE_SYSTEM macro + * variable that define_trace.h is processing, so we only set it + * when module events are being processed, which would happen when + * CREATE_TRACE_POINTS is defined. + */ +#ifdef CREATE_TRACE_POINTS +#undef TRACE_SYSTEM +#define TRACE_SYSTEM module +#endif + +#if !defined(_TRACE_MODULE_H) || defined(TRACE_HEADER_MULTI_READ) +#define _TRACE_MODULE_H + +#include +#include + +#ifdef CONFIG_MODULES + +#ifndef _TRACE_MODULE_DEF +#define _TRACE_MODULE_DEF +struct module; + +#define show_module_flags(flags) __print_flags(flags, "", \ + { (1UL << TAINT_PROPRIETARY_MODULE), "P" }, \ + { (1UL << TAINT_FORCED_MODULE), "F" }, \ + { (1UL << TAINT_CRAP), "C" }) +#endif + +TRACE_EVENT(module_load, + + TP_PROTO(struct module *mod), + + TP_ARGS(mod), + + TP_STRUCT__entry( + __field( unsigned int, taints ) + __string( name, mod->name ) + ), + + TP_fast_assign( + tp_assign(taints, mod->taints) + tp_strcpy(name, mod->name) + ), + + TP_printk("%s %s", __get_str(name), show_module_flags(__entry->taints)) +) + +TRACE_EVENT(module_free, + + TP_PROTO(struct module *mod), + + TP_ARGS(mod), + + TP_STRUCT__entry( + __string( name, mod->name ) + ), + + TP_fast_assign( + tp_strcpy(name, mod->name) + ), + + TP_printk("%s", __get_str(name)) +) + +#ifdef CONFIG_MODULE_UNLOAD +/* trace_module_get/put are only used if CONFIG_MODULE_UNLOAD is defined */ + +DECLARE_EVENT_CLASS(module_refcnt, + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,35)) + TP_PROTO(struct module *mod, unsigned long ip), + + TP_ARGS(mod, ip), +#else + TP_PROTO(struct module *mod, unsigned long ip, int refcnt), + + TP_ARGS(mod, ip, refcnt), +#endif + + TP_STRUCT__entry( + __field( unsigned long, ip ) + __field( int, refcnt ) + __string( name, mod->name ) + ), + + TP_fast_assign( + tp_assign(ip, ip) +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,35)) + tp_assign(refcnt, __this_cpu_read(mod->refptr->incs) + __this_cpu_read(mod->refptr->decs)) +#else + tp_assign(refcnt, refcnt) +#endif + tp_strcpy(name, mod->name) + ), + + TP_printk("%s call_site=%pf refcnt=%d", + __get_str(name), (void *)__entry->ip, __entry->refcnt) +) + +DEFINE_EVENT(module_refcnt, module_get, + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,35)) + TP_PROTO(struct module *mod, unsigned long ip), + + TP_ARGS(mod, ip) +#else + TP_PROTO(struct module *mod, unsigned long ip, int refcnt), + + TP_ARGS(mod, ip, refcnt) +#endif +) + +DEFINE_EVENT(module_refcnt, module_put, + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,35)) + TP_PROTO(struct module *mod, unsigned long ip), + + TP_ARGS(mod, ip) +#else + TP_PROTO(struct module *mod, unsigned long ip, int refcnt), + + TP_ARGS(mod, ip, refcnt) +#endif +) +#endif /* CONFIG_MODULE_UNLOAD */ + +TRACE_EVENT(module_request, + + TP_PROTO(char *name, bool wait, unsigned long ip), + + TP_ARGS(name, wait, ip), + + TP_STRUCT__entry( + __field( unsigned long, ip ) + __field( bool, wait ) + __string( name, name ) + ), + + TP_fast_assign( + tp_assign(ip, ip) + tp_assign(wait, wait) + tp_strcpy(name, name) + ), + + TP_printk("%s wait=%d call_site=%pf", + __get_str(name), (int)__entry->wait, (void *)__entry->ip) +) + +#endif /* CONFIG_MODULES */ + +#endif /* _TRACE_MODULE_H */ + +/* This part must be outside protection */ +#include "../../../probes/define_trace.h" --- linux-3.11.0.orig/ubuntu/lttng-modules/instrumentation/events/lttng-module/jbd.h +++ linux-3.11.0/ubuntu/lttng-modules/instrumentation/events/lttng-module/jbd.h @@ -0,0 +1,268 @@ +#undef TRACE_SYSTEM +#define TRACE_SYSTEM jbd + +#if !defined(_TRACE_JBD_H) || defined(TRACE_HEADER_MULTI_READ) +#define _TRACE_JBD_H + +#include +#include +#include + +TRACE_EVENT(jbd_checkpoint, + + TP_PROTO(journal_t *journal, int result), + + TP_ARGS(journal, result), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( int, result ) + ), + + TP_fast_assign( + tp_assign(dev, journal->j_fs_dev->bd_dev) + tp_assign(result, result) + ), + + TP_printk("dev %d,%d result %d", + MAJOR(__entry->dev), MINOR(__entry->dev), + __entry->result) +) + +DECLARE_EVENT_CLASS(jbd_commit, + + TP_PROTO(journal_t *journal, transaction_t *commit_transaction), + + TP_ARGS(journal, commit_transaction), + + TP_STRUCT__entry( + __field( dev_t, dev ) +#if (LINUX_VERSION_CODE < KERNEL_VERSION(3,5,0)) + __field( char, sync_commit ) +#endif + __field( int, transaction ) + ), + + TP_fast_assign( + tp_assign(dev, journal->j_fs_dev->bd_dev) +#if (LINUX_VERSION_CODE < KERNEL_VERSION(3,5,0)) + tp_assign(sync_commit, commit_transaction->t_synchronous_commit) +#endif + tp_assign(transaction, commit_transaction->t_tid) + ), + +#if (LINUX_VERSION_CODE < KERNEL_VERSION(3,5,0)) + TP_printk("dev %d,%d transaction %d sync %d", + MAJOR(__entry->dev), MINOR(__entry->dev), + __entry->transaction, __entry->sync_commit) +#else + TP_printk("dev %d,%d transaction %d", + MAJOR(__entry->dev), MINOR(__entry->dev), + __entry->transaction) +#endif +) + +DEFINE_EVENT(jbd_commit, jbd_start_commit, + + TP_PROTO(journal_t *journal, transaction_t *commit_transaction), + + TP_ARGS(journal, commit_transaction) +) + +DEFINE_EVENT(jbd_commit, jbd_commit_locking, + + TP_PROTO(journal_t *journal, transaction_t *commit_transaction), + + TP_ARGS(journal, commit_transaction) +) + +DEFINE_EVENT(jbd_commit, jbd_commit_flushing, + + TP_PROTO(journal_t *journal, transaction_t *commit_transaction), + + TP_ARGS(journal, commit_transaction) +) + +DEFINE_EVENT(jbd_commit, jbd_commit_logging, + + TP_PROTO(journal_t *journal, transaction_t *commit_transaction), + + TP_ARGS(journal, commit_transaction) +) + +TRACE_EVENT(jbd_drop_transaction, + + TP_PROTO(journal_t *journal, transaction_t *commit_transaction), + + TP_ARGS(journal, commit_transaction), + + TP_STRUCT__entry( + __field( dev_t, dev ) +#if (LINUX_VERSION_CODE < KERNEL_VERSION(3,5,0)) + __field( char, sync_commit ) +#endif + __field( int, transaction ) + ), + + TP_fast_assign( + tp_assign(dev, journal->j_fs_dev->bd_dev) +#if (LINUX_VERSION_CODE < KERNEL_VERSION(3,5,0)) + tp_assign(sync_commit, commit_transaction->t_synchronous_commit) +#endif + tp_assign(transaction, commit_transaction->t_tid) + ), + +#if (LINUX_VERSION_CODE < KERNEL_VERSION(3,5,0)) + TP_printk("dev %d,%d transaction %d sync %d", + MAJOR(__entry->dev), MINOR(__entry->dev), + __entry->transaction, __entry->sync_commit) +#else + TP_printk("dev %d,%d transaction %d", + MAJOR(__entry->dev), MINOR(__entry->dev), + __entry->transaction) +#endif +) + +TRACE_EVENT(jbd_end_commit, + TP_PROTO(journal_t *journal, transaction_t *commit_transaction), + + TP_ARGS(journal, commit_transaction), + + TP_STRUCT__entry( + __field( dev_t, dev ) +#if (LINUX_VERSION_CODE < KERNEL_VERSION(3,5,0)) + __field( char, sync_commit ) +#endif + __field( int, transaction ) + __field( int, head ) + ), + + TP_fast_assign( + tp_assign(dev, journal->j_fs_dev->bd_dev) +#if (LINUX_VERSION_CODE < KERNEL_VERSION(3,5,0)) + tp_assign(sync_commit, commit_transaction->t_synchronous_commit) +#endif + tp_assign(transaction, commit_transaction->t_tid) + tp_assign(head, journal->j_tail_sequence) + ), + +#if (LINUX_VERSION_CODE < KERNEL_VERSION(3,5,0)) + TP_printk("dev %d,%d transaction %d sync %d head %d", + MAJOR(__entry->dev), MINOR(__entry->dev), + __entry->transaction, __entry->sync_commit, __entry->head) +#else + TP_printk("dev %d,%d transaction %d head %d", + MAJOR(__entry->dev), MINOR(__entry->dev), + __entry->transaction, __entry->head) +#endif +) + +TRACE_EVENT(jbd_do_submit_data, + TP_PROTO(journal_t *journal, transaction_t *commit_transaction), + + TP_ARGS(journal, commit_transaction), + + TP_STRUCT__entry( + __field( dev_t, dev ) +#if (LINUX_VERSION_CODE < KERNEL_VERSION(3,5,0)) + __field( char, sync_commit ) +#endif + __field( int, transaction ) + ), + + TP_fast_assign( + tp_assign(dev, journal->j_fs_dev->bd_dev) +#if (LINUX_VERSION_CODE < KERNEL_VERSION(3,5,0)) + tp_assign(sync_commit, commit_transaction->t_synchronous_commit) +#endif + tp_assign(transaction, commit_transaction->t_tid) + ), + +#if (LINUX_VERSION_CODE < KERNEL_VERSION(3,5,0)) + TP_printk("dev %d,%d transaction %d sync %d", + MAJOR(__entry->dev), MINOR(__entry->dev), + __entry->transaction, __entry->sync_commit) +#else + TP_printk("dev %d,%d transaction %d", + MAJOR(__entry->dev), MINOR(__entry->dev), + __entry->transaction) +#endif +) + +TRACE_EVENT(jbd_cleanup_journal_tail, + + TP_PROTO(journal_t *journal, tid_t first_tid, + unsigned long block_nr, unsigned long freed), + + TP_ARGS(journal, first_tid, block_nr, freed), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( tid_t, tail_sequence ) + __field( tid_t, first_tid ) + __field(unsigned long, block_nr ) + __field(unsigned long, freed ) + ), + + TP_fast_assign( + tp_assign(dev, journal->j_fs_dev->bd_dev) + tp_assign(tail_sequence, journal->j_tail_sequence) + tp_assign(first_tid, first_tid) + tp_assign(block_nr, block_nr) + tp_assign(freed, freed) + ), + + TP_printk("dev %d,%d from %u to %u offset %lu freed %lu", + MAJOR(__entry->dev), MINOR(__entry->dev), + __entry->tail_sequence, __entry->first_tid, + __entry->block_nr, __entry->freed) +) + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,5,0)) +TRACE_EVENT_MAP(journal_write_superblock, + + jbd_journal_write_superblock, + + TP_PROTO(journal_t *journal, int write_op), + + TP_ARGS(journal, write_op), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( int, write_op ) + ), + + TP_fast_assign( + tp_assign(dev, journal->j_fs_dev->bd_dev) + tp_assign(write_op, write_op) + ), + + TP_printk("dev %d,%d write_op %x", MAJOR(__entry->dev), + MINOR(__entry->dev), __entry->write_op) +) +#else +TRACE_EVENT(jbd_update_superblock_end, + TP_PROTO(journal_t *journal, int wait), + + TP_ARGS(journal, wait), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( int, wait ) + ), + + TP_fast_assign( + tp_assign(dev, journal->j_fs_dev->bd_dev) + tp_assign(wait, wait) + ), + + TP_printk("dev %d,%d wait %d", + MAJOR(__entry->dev), MINOR(__entry->dev), + __entry->wait) +) +#endif + +#endif /* _TRACE_JBD_H */ + +/* This part must be outside protection */ +#include "../../../probes/define_trace.h" --- linux-3.11.0.orig/ubuntu/lttng-modules/instrumentation/events/lttng-module/btrfs.h +++ linux-3.11.0/ubuntu/lttng-modules/instrumentation/events/lttng-module/btrfs.h @@ -0,0 +1,1102 @@ +#undef TRACE_SYSTEM +#define TRACE_SYSTEM btrfs + +#if !defined(_TRACE_BTRFS_H) || defined(TRACE_HEADER_MULTI_READ) +#define _TRACE_BTRFS_H + +#include +#include +#include +#include + +#ifndef _TRACE_BTRFS_DEF_ +#define _TRACE_BTRFS_DEF_ +struct btrfs_root; +struct btrfs_fs_info; +struct btrfs_inode; +struct extent_map; +struct btrfs_ordered_extent; +struct btrfs_delayed_ref_node; +struct btrfs_delayed_tree_ref; +struct btrfs_delayed_data_ref; +struct btrfs_delayed_ref_head; +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,3,0)) +struct btrfs_block_group_cache; +struct btrfs_free_cluster; +#endif +struct map_lookup; +struct extent_buffer; +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,4,0)) +struct extent_state; +#endif +#endif + +#define show_ref_type(type) \ + __print_symbolic(type, \ + { BTRFS_TREE_BLOCK_REF_KEY, "TREE_BLOCK_REF" }, \ + { BTRFS_EXTENT_DATA_REF_KEY, "EXTENT_DATA_REF" }, \ + { BTRFS_EXTENT_REF_V0_KEY, "EXTENT_REF_V0" }, \ + { BTRFS_SHARED_BLOCK_REF_KEY, "SHARED_BLOCK_REF" }, \ + { BTRFS_SHARED_DATA_REF_KEY, "SHARED_DATA_REF" }) + + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,11,0)) +#define __show_root_type(obj) \ + __print_symbolic_u64(obj, \ + { BTRFS_ROOT_TREE_OBJECTID, "ROOT_TREE" }, \ + { BTRFS_EXTENT_TREE_OBJECTID, "EXTENT_TREE" }, \ + { BTRFS_CHUNK_TREE_OBJECTID, "CHUNK_TREE" }, \ + { BTRFS_DEV_TREE_OBJECTID, "DEV_TREE" }, \ + { BTRFS_FS_TREE_OBJECTID, "FS_TREE" }, \ + { BTRFS_ROOT_TREE_DIR_OBJECTID, "ROOT_TREE_DIR" }, \ + { BTRFS_CSUM_TREE_OBJECTID, "CSUM_TREE" }, \ + { BTRFS_TREE_LOG_OBJECTID, "TREE_LOG" }, \ + { BTRFS_QUOTA_TREE_OBJECTID, "QUOTA_TREE" }, \ + { BTRFS_TREE_RELOC_OBJECTID, "TREE_RELOC" }, \ + { BTRFS_DATA_RELOC_TREE_OBJECTID, "DATA_RELOC_TREE" }) +#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,40)) +#define __show_root_type(obj) \ + __print_symbolic_u64(obj, \ + { BTRFS_ROOT_TREE_OBJECTID, "ROOT_TREE" }, \ + { BTRFS_EXTENT_TREE_OBJECTID, "EXTENT_TREE" }, \ + { BTRFS_CHUNK_TREE_OBJECTID, "CHUNK_TREE" }, \ + { BTRFS_DEV_TREE_OBJECTID, "DEV_TREE" }, \ + { BTRFS_FS_TREE_OBJECTID, "FS_TREE" }, \ + { BTRFS_ROOT_TREE_DIR_OBJECTID, "ROOT_TREE_DIR" }, \ + { BTRFS_CSUM_TREE_OBJECTID, "CSUM_TREE" }, \ + { BTRFS_TREE_LOG_OBJECTID, "TREE_LOG" }, \ + { BTRFS_TREE_RELOC_OBJECTID, "TREE_RELOC" }, \ + { BTRFS_DATA_RELOC_TREE_OBJECTID, "DATA_RELOC_TREE" }) +#else +#define __show_root_type(obj) \ + __print_symbolic(obj, \ + { BTRFS_ROOT_TREE_OBJECTID, "ROOT_TREE" }, \ + { BTRFS_EXTENT_TREE_OBJECTID, "EXTENT_TREE" }, \ + { BTRFS_CHUNK_TREE_OBJECTID, "CHUNK_TREE" }, \ + { BTRFS_DEV_TREE_OBJECTID, "DEV_TREE" }, \ + { BTRFS_FS_TREE_OBJECTID, "FS_TREE" }, \ + { BTRFS_ROOT_TREE_DIR_OBJECTID, "ROOT_TREE_DIR" }, \ + { BTRFS_CSUM_TREE_OBJECTID, "CSUM_TREE" }, \ + { BTRFS_TREE_LOG_OBJECTID, "TREE_LOG" }, \ + { BTRFS_TREE_RELOC_OBJECTID, "TREE_RELOC" }, \ + { BTRFS_DATA_RELOC_TREE_OBJECTID, "DATA_RELOC_TREE" }) +#endif + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,11,0)) +#define show_root_type(obj) \ + obj, ((obj >= BTRFS_DATA_RELOC_TREE_OBJECTID) || \ + (obj >= BTRFS_ROOT_TREE_OBJECTID && \ + obj <= BTRFS_QUOTA_TREE_OBJECTID)) ? __show_root_type(obj) : "-" +#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3,8,0)) +#define show_root_type(obj) \ + obj, ((obj >= BTRFS_DATA_RELOC_TREE_OBJECTID) || \ + (obj >= BTRFS_ROOT_TREE_OBJECTID && \ + obj <= BTRFS_CSUM_TREE_OBJECTID)) ? __show_root_type(obj) : "-" +#else /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,8,0)) */ +#define show_root_type(obj) \ + obj, ((obj >= BTRFS_DATA_RELOC_TREE_OBJECTID) || \ + (obj <= BTRFS_CSUM_TREE_OBJECTID )) ? __show_root_type(obj) : "-" +#endif /* #else #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,8,0)) */ + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,11,0)) + +#define BTRFS_GROUP_FLAGS \ + { BTRFS_BLOCK_GROUP_DATA, "DATA"}, \ + { BTRFS_BLOCK_GROUP_SYSTEM, "SYSTEM"}, \ + { BTRFS_BLOCK_GROUP_METADATA, "METADATA"}, \ + { BTRFS_BLOCK_GROUP_RAID0, "RAID0"}, \ + { BTRFS_BLOCK_GROUP_RAID1, "RAID1"}, \ + { BTRFS_BLOCK_GROUP_DUP, "DUP"}, \ + { BTRFS_BLOCK_GROUP_RAID10, "RAID10"}, \ + { BTRFS_BLOCK_GROUP_RAID5, "RAID5"}, \ + { BTRFS_BLOCK_GROUP_RAID6, "RAID6"} + +#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3,3,0)) + +#define BTRFS_GROUP_FLAGS \ + { BTRFS_BLOCK_GROUP_DATA, "DATA"}, \ + { BTRFS_BLOCK_GROUP_SYSTEM, "SYSTEM"}, \ + { BTRFS_BLOCK_GROUP_METADATA, "METADATA"}, \ + { BTRFS_BLOCK_GROUP_RAID0, "RAID0"}, \ + { BTRFS_BLOCK_GROUP_RAID1, "RAID1"}, \ + { BTRFS_BLOCK_GROUP_DUP, "DUP"}, \ + { BTRFS_BLOCK_GROUP_RAID10, "RAID10"} + +#define BTRFS_UUID_SIZE 16 + +#endif + +TRACE_EVENT(btrfs_transaction_commit, + + TP_PROTO(struct btrfs_root *root), + + TP_ARGS(root), + + TP_STRUCT__entry( + __field( u64, generation ) + __field( u64, root_objectid ) + ), + + TP_fast_assign( + tp_assign(generation, root->fs_info->generation) + tp_assign(root_objectid, root->root_key.objectid) + ), + + TP_printk("root = %llu(%s), gen = %llu", + show_root_type(__entry->root_objectid), + (unsigned long long)__entry->generation) +) + +DECLARE_EVENT_CLASS(btrfs__inode, + + TP_PROTO(struct inode *inode), + + TP_ARGS(inode), + + TP_STRUCT__entry( + __field( ino_t, ino ) + __field( blkcnt_t, blocks ) + __field( u64, disk_i_size ) + __field( u64, generation ) + __field( u64, last_trans ) + __field( u64, logged_trans ) + __field( u64, root_objectid ) + ), + + TP_fast_assign( + tp_assign(ino, inode->i_ino) + tp_assign(blocks, inode->i_blocks) + tp_assign(disk_i_size, BTRFS_I(inode)->disk_i_size) + tp_assign(generation, BTRFS_I(inode)->generation) + tp_assign(last_trans, BTRFS_I(inode)->last_trans) + tp_assign(logged_trans, BTRFS_I(inode)->logged_trans) + tp_assign(root_objectid, + BTRFS_I(inode)->root->root_key.objectid) + ), + + TP_printk("root = %llu(%s), gen = %llu, ino = %lu, blocks = %llu, " + "disk_i_size = %llu, last_trans = %llu, logged_trans = %llu", + show_root_type(__entry->root_objectid), + (unsigned long long)__entry->generation, + (unsigned long)__entry->ino, + (unsigned long long)__entry->blocks, + (unsigned long long)__entry->disk_i_size, + (unsigned long long)__entry->last_trans, + (unsigned long long)__entry->logged_trans) +) + +DEFINE_EVENT(btrfs__inode, btrfs_inode_new, + + TP_PROTO(struct inode *inode), + + TP_ARGS(inode) +) + +DEFINE_EVENT(btrfs__inode, btrfs_inode_request, + + TP_PROTO(struct inode *inode), + + TP_ARGS(inode) +) + +DEFINE_EVENT(btrfs__inode, btrfs_inode_evict, + + TP_PROTO(struct inode *inode), + + TP_ARGS(inode) +) + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,40)) +#define __show_map_type(type) \ + __print_symbolic_u64(type, \ + { EXTENT_MAP_LAST_BYTE, "LAST_BYTE" }, \ + { EXTENT_MAP_HOLE, "HOLE" }, \ + { EXTENT_MAP_INLINE, "INLINE" }, \ + { EXTENT_MAP_DELALLOC, "DELALLOC" }) +#else +#define __show_map_type(type) \ + __print_symbolic(type, \ + { EXTENT_MAP_LAST_BYTE, "LAST_BYTE" }, \ + { EXTENT_MAP_HOLE, "HOLE" }, \ + { EXTENT_MAP_INLINE, "INLINE" }, \ + { EXTENT_MAP_DELALLOC, "DELALLOC" }) +#endif + +#define show_map_type(type) \ + type, (type >= EXTENT_MAP_LAST_BYTE) ? "-" : __show_map_type(type) + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,11,0)) + +#define show_map_flags(flag) \ + __print_flags(flag, "|", \ + { EXTENT_FLAG_PINNED, "PINNED" }, \ + { EXTENT_FLAG_COMPRESSED, "COMPRESSED" }, \ + { EXTENT_FLAG_VACANCY, "VACANCY" }, \ + { EXTENT_FLAG_PREALLOC, "PREALLOC" }, \ + { EXTENT_FLAG_LOGGING, "LOGGING" }, \ + { EXTENT_FLAG_FILLING, "FILLING" }) + +#else + +#define show_map_flags(flag) \ + __print_flags(flag, "|", \ + { EXTENT_FLAG_PINNED, "PINNED" }, \ + { EXTENT_FLAG_COMPRESSED, "COMPRESSED" }, \ + { EXTENT_FLAG_VACANCY, "VACANCY" }, \ + { EXTENT_FLAG_PREALLOC, "PREALLOC" }) + +#endif + +TRACE_EVENT(btrfs_get_extent, + + TP_PROTO(struct btrfs_root *root, struct extent_map *map), + + TP_ARGS(root, map), + + TP_STRUCT__entry( + __field( u64, root_objectid ) + __field( u64, start ) + __field( u64, len ) + __field( u64, orig_start ) + __field( u64, block_start ) + __field( u64, block_len ) + __field( unsigned long, flags ) + __field( int, refs ) + __field( unsigned int, compress_type ) + ), + + TP_fast_assign( + tp_assign(root_objectid, root->root_key.objectid) + tp_assign(start, map->start) + tp_assign(len, map->len) + tp_assign(orig_start, map->orig_start) + tp_assign(block_start, map->block_start) + tp_assign(block_len, map->block_len) + tp_assign(flags, map->flags) + tp_assign(refs, atomic_read(&map->refs)) + tp_assign(compress_type, map->compress_type) + ), + + TP_printk("root = %llu(%s), start = %llu, len = %llu, " + "orig_start = %llu, block_start = %llu(%s), " + "block_len = %llu, flags = %s, refs = %u, " + "compress_type = %u", + show_root_type(__entry->root_objectid), + (unsigned long long)__entry->start, + (unsigned long long)__entry->len, + (unsigned long long)__entry->orig_start, + show_map_type(__entry->block_start), + (unsigned long long)__entry->block_len, + show_map_flags(__entry->flags), + __entry->refs, __entry->compress_type) +) + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,11,0)) + +#define show_ordered_flags(flags) \ + __print_symbolic(flags, \ + { BTRFS_ORDERED_IO_DONE, "IO_DONE" }, \ + { BTRFS_ORDERED_COMPLETE, "COMPLETE" }, \ + { BTRFS_ORDERED_NOCOW, "NOCOW" }, \ + { BTRFS_ORDERED_COMPRESSED, "COMPRESSED" }, \ + { BTRFS_ORDERED_PREALLOC, "PREALLOC" }, \ + { BTRFS_ORDERED_DIRECT, "DIRECT" }, \ + { BTRFS_ORDERED_IOERR, "IOERR" }, \ + { BTRFS_ORDERED_UPDATED_ISIZE, "UPDATED_ISIZE" }, \ + { BTRFS_ORDERED_LOGGED_CSUM, "LOGGED_CSUM" }) + +#else + +#define show_ordered_flags(flags) \ + __print_symbolic(flags, \ + { BTRFS_ORDERED_IO_DONE, "IO_DONE" }, \ + { BTRFS_ORDERED_COMPLETE, "COMPLETE" }, \ + { BTRFS_ORDERED_NOCOW, "NOCOW" }, \ + { BTRFS_ORDERED_COMPRESSED, "COMPRESSED" }, \ + { BTRFS_ORDERED_PREALLOC, "PREALLOC" }, \ + { BTRFS_ORDERED_DIRECT, "DIRECT" }) + +#endif + +DECLARE_EVENT_CLASS(btrfs__ordered_extent, + + TP_PROTO(struct inode *inode, struct btrfs_ordered_extent *ordered), + + TP_ARGS(inode, ordered), + + TP_STRUCT__entry( + __field( ino_t, ino ) + __field( u64, file_offset ) + __field( u64, start ) + __field( u64, len ) + __field( u64, disk_len ) + __field( u64, bytes_left ) + __field( unsigned long, flags ) + __field( int, compress_type ) + __field( int, refs ) + __field( u64, root_objectid ) + ), + + TP_fast_assign( + tp_assign(ino, inode->i_ino) + tp_assign(file_offset, ordered->file_offset) + tp_assign(start, ordered->start) + tp_assign(len, ordered->len) + tp_assign(disk_len, ordered->disk_len) + tp_assign(bytes_left, ordered->bytes_left) + tp_assign(flags, ordered->flags) + tp_assign(compress_type, ordered->compress_type) + tp_assign(refs, atomic_read(&ordered->refs)) + tp_assign(root_objectid, + BTRFS_I(inode)->root->root_key.objectid) + ), + + TP_printk("root = %llu(%s), ino = %llu, file_offset = %llu, " + "start = %llu, len = %llu, disk_len = %llu, " + "bytes_left = %llu, flags = %s, compress_type = %d, " + "refs = %d", + show_root_type(__entry->root_objectid), + (unsigned long long)__entry->ino, + (unsigned long long)__entry->file_offset, + (unsigned long long)__entry->start, + (unsigned long long)__entry->len, + (unsigned long long)__entry->disk_len, + (unsigned long long)__entry->bytes_left, + show_ordered_flags(__entry->flags), + __entry->compress_type, __entry->refs) +) + +DEFINE_EVENT(btrfs__ordered_extent, btrfs_ordered_extent_add, + + TP_PROTO(struct inode *inode, struct btrfs_ordered_extent *ordered), + + TP_ARGS(inode, ordered) +) + +DEFINE_EVENT(btrfs__ordered_extent, btrfs_ordered_extent_remove, + + TP_PROTO(struct inode *inode, struct btrfs_ordered_extent *ordered), + + TP_ARGS(inode, ordered) +) + +DEFINE_EVENT(btrfs__ordered_extent, btrfs_ordered_extent_start, + + TP_PROTO(struct inode *inode, struct btrfs_ordered_extent *ordered), + + TP_ARGS(inode, ordered) +) + +DEFINE_EVENT(btrfs__ordered_extent, btrfs_ordered_extent_put, + + TP_PROTO(struct inode *inode, struct btrfs_ordered_extent *ordered), + + TP_ARGS(inode, ordered) +) + +DECLARE_EVENT_CLASS(btrfs__writepage, + + TP_PROTO(struct page *page, struct inode *inode, + struct writeback_control *wbc), + + TP_ARGS(page, inode, wbc), + + TP_STRUCT__entry( + __field( ino_t, ino ) + __field( pgoff_t, index ) + __field( long, nr_to_write ) + __field( long, pages_skipped ) + __field( loff_t, range_start ) + __field( loff_t, range_end ) +#if (LINUX_VERSION_CODE < KERNEL_VERSION(3,1,0)) + __field( char, nonblocking ) +#endif + __field( char, for_kupdate ) + __field( char, for_reclaim ) + __field( char, range_cyclic ) + __field( pgoff_t, writeback_index ) + __field( u64, root_objectid ) + ), + + TP_fast_assign( + tp_assign(ino, inode->i_ino) + tp_assign(index, page->index) + tp_assign(nr_to_write, wbc->nr_to_write) + tp_assign(pages_skipped, wbc->pages_skipped) + tp_assign(range_start, wbc->range_start) + tp_assign(range_end, wbc->range_end) +#if (LINUX_VERSION_CODE < KERNEL_VERSION(3,1,0)) + tp_assign(nonblocking, wbc->nonblocking) +#endif + tp_assign(for_kupdate, wbc->for_kupdate) + tp_assign(for_reclaim, wbc->for_reclaim) + tp_assign(range_cyclic, wbc->range_cyclic) + tp_assign(writeback_index, inode->i_mapping->writeback_index) + tp_assign(root_objectid, + BTRFS_I(inode)->root->root_key.objectid) + ), + +#if (LINUX_VERSION_CODE < KERNEL_VERSION(3,1,0)) + TP_printk("root = %llu(%s), ino = %lu, page_index = %lu, " + "nr_to_write = %ld, pages_skipped = %ld, range_start = %llu, " + "range_end = %llu, nonblocking = %d, for_kupdate = %d, " + "for_reclaim = %d, range_cyclic = %d, writeback_index = %lu", + show_root_type(__entry->root_objectid), + (unsigned long)__entry->ino, __entry->index, + __entry->nr_to_write, __entry->pages_skipped, + __entry->range_start, __entry->range_end, + __entry->nonblocking, __entry->for_kupdate, + __entry->for_reclaim, __entry->range_cyclic, + (unsigned long)__entry->writeback_index) +#else + TP_printk("root = %llu(%s), ino = %lu, page_index = %lu, " + "nr_to_write = %ld, pages_skipped = %ld, range_start = %llu, " + "range_end = %llu, for_kupdate = %d, " + "for_reclaim = %d, range_cyclic = %d, writeback_index = %lu", + show_root_type(__entry->root_objectid), + (unsigned long)__entry->ino, __entry->index, + __entry->nr_to_write, __entry->pages_skipped, + __entry->range_start, __entry->range_end, + __entry->for_kupdate, + __entry->for_reclaim, __entry->range_cyclic, + (unsigned long)__entry->writeback_index) +#endif +) + +DEFINE_EVENT(btrfs__writepage, __extent_writepage, + + TP_PROTO(struct page *page, struct inode *inode, + struct writeback_control *wbc), + + TP_ARGS(page, inode, wbc) +) + +TRACE_EVENT(btrfs_writepage_end_io_hook, + + TP_PROTO(struct page *page, u64 start, u64 end, int uptodate), + + TP_ARGS(page, start, end, uptodate), + + TP_STRUCT__entry( + __field( ino_t, ino ) + __field( pgoff_t, index ) + __field( u64, start ) + __field( u64, end ) + __field( int, uptodate ) + __field( u64, root_objectid ) + ), + + TP_fast_assign( + tp_assign(ino, page->mapping->host->i_ino) + tp_assign(index, page->index) + tp_assign(start, start) + tp_assign(end, end) + tp_assign(uptodate, uptodate) + tp_assign(root_objectid, + BTRFS_I(page->mapping->host)->root->root_key.objectid) + ), + + TP_printk("root = %llu(%s), ino = %lu, page_index = %lu, start = %llu, " + "end = %llu, uptodate = %d", + show_root_type(__entry->root_objectid), + (unsigned long)__entry->ino, (unsigned long)__entry->index, + (unsigned long long)__entry->start, + (unsigned long long)__entry->end, __entry->uptodate) +) + +TRACE_EVENT(btrfs_sync_file, + + TP_PROTO(struct file *file, int datasync), + + TP_ARGS(file, datasync), + + TP_STRUCT__entry( + __field( ino_t, ino ) + __field( ino_t, parent ) + __field( int, datasync ) + __field( u64, root_objectid ) + ), + + TP_fast_assign( + tp_assign(ino, file->f_path.dentry->d_inode->i_ino) + tp_assign(parent, file->f_path.dentry->d_parent->d_inode->i_ino) + tp_assign(datasync, datasync) + tp_assign(root_objectid, + BTRFS_I(file->f_path.dentry->d_inode)->root->root_key.objectid) + ), + + TP_printk("root = %llu(%s), ino = %ld, parent = %ld, datasync = %d", + show_root_type(__entry->root_objectid), + (unsigned long)__entry->ino, (unsigned long)__entry->parent, + __entry->datasync) +) + +TRACE_EVENT(btrfs_sync_fs, + + TP_PROTO(int wait), + + TP_ARGS(wait), + + TP_STRUCT__entry( + __field( int, wait ) + ), + + TP_fast_assign( + tp_assign(wait, wait) + ), + + TP_printk("wait = %d", __entry->wait) +) + +#define show_ref_action(action) \ + __print_symbolic(action, \ + { BTRFS_ADD_DELAYED_REF, "ADD_DELAYED_REF" }, \ + { BTRFS_DROP_DELAYED_REF, "DROP_DELAYED_REF" }, \ + { BTRFS_ADD_DELAYED_EXTENT, "ADD_DELAYED_EXTENT" }, \ + { BTRFS_UPDATE_DELAYED_HEAD, "UPDATE_DELAYED_HEAD" }) + + +TRACE_EVENT(btrfs_delayed_tree_ref, + + TP_PROTO(struct btrfs_delayed_ref_node *ref, + struct btrfs_delayed_tree_ref *full_ref, + int action), + + TP_ARGS(ref, full_ref, action), + + TP_STRUCT__entry( + __field( u64, bytenr ) + __field( u64, num_bytes ) + __field( int, action ) + __field( u64, parent ) + __field( u64, ref_root ) + __field( int, level ) + __field( int, type ) +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,7,0)) + __field( u64, seq ) +#endif + ), + + TP_fast_assign( + tp_assign(bytenr, ref->bytenr) + tp_assign(num_bytes, ref->num_bytes) + tp_assign(action, action) + tp_assign(parent, full_ref->parent) + tp_assign(ref_root, full_ref->root) + tp_assign(level, full_ref->level) + tp_assign(type, ref->type) +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,7,0)) + tp_assign(seq, ref->seq) +#endif + ), + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,7,0)) + TP_printk("bytenr = %llu, num_bytes = %llu, action = %s, " + "parent = %llu(%s), ref_root = %llu(%s), level = %d, " + "type = %s, seq = %llu", +#else + TP_printk("bytenr = %llu, num_bytes = %llu, action = %s, " + "parent = %llu(%s), ref_root = %llu(%s), level = %d, " + "type = %s", +#endif + (unsigned long long)__entry->bytenr, + (unsigned long long)__entry->num_bytes, + show_ref_action(__entry->action), + show_root_type(__entry->parent), + show_root_type(__entry->ref_root), +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,7,0)) + __entry->level, show_ref_type(__entry->type), + (unsigned long long)__entry->seq) +#else + __entry->level, show_ref_type(__entry->type)) +#endif +) + +TRACE_EVENT(btrfs_delayed_data_ref, + + TP_PROTO(struct btrfs_delayed_ref_node *ref, + struct btrfs_delayed_data_ref *full_ref, + int action), + + TP_ARGS(ref, full_ref, action), + + TP_STRUCT__entry( + __field( u64, bytenr ) + __field( u64, num_bytes ) + __field( int, action ) + __field( u64, parent ) + __field( u64, ref_root ) + __field( u64, owner ) + __field( u64, offset ) + __field( int, type ) +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,7,0)) + __field( u64, seq ) +#endif + ), + + TP_fast_assign( + tp_assign(bytenr, ref->bytenr) + tp_assign(num_bytes, ref->num_bytes) + tp_assign(action, action) + tp_assign(parent, full_ref->parent) + tp_assign(ref_root, full_ref->root) + tp_assign(owner, full_ref->objectid) + tp_assign(offset, full_ref->offset) + tp_assign(type, ref->type) +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,7,0)) + tp_assign(seq, ref->seq) +#endif + ), + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,7,0)) + TP_printk("bytenr = %llu, num_bytes = %llu, action = %s, " + "parent = %llu(%s), ref_root = %llu(%s), owner = %llu, " + "offset = %llu, type = %s, seq = %llu", +#else + TP_printk("bytenr = %llu, num_bytes = %llu, action = %s, " + "parent = %llu(%s), ref_root = %llu(%s), owner = %llu, " + "offset = %llu, type = %s", +#endif + (unsigned long long)__entry->bytenr, + (unsigned long long)__entry->num_bytes, + show_ref_action(__entry->action), + show_root_type(__entry->parent), + show_root_type(__entry->ref_root), + (unsigned long long)__entry->owner, + (unsigned long long)__entry->offset, +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,7,0)) + show_ref_type(__entry->type), + (unsigned long long)__entry->seq) +#else + show_ref_type(__entry->type)) +#endif +) + +TRACE_EVENT(btrfs_delayed_ref_head, + + TP_PROTO(struct btrfs_delayed_ref_node *ref, + struct btrfs_delayed_ref_head *head_ref, + int action), + + TP_ARGS(ref, head_ref, action), + + TP_STRUCT__entry( + __field( u64, bytenr ) + __field( u64, num_bytes ) + __field( int, action ) + __field( int, is_data ) + ), + + TP_fast_assign( + tp_assign(bytenr, ref->bytenr) + tp_assign(num_bytes, ref->num_bytes) + tp_assign(action, action) + tp_assign(is_data, head_ref->is_data) + ), + + TP_printk("bytenr = %llu, num_bytes = %llu, action = %s, is_data = %d", + (unsigned long long)__entry->bytenr, + (unsigned long long)__entry->num_bytes, + show_ref_action(__entry->action), + __entry->is_data) +) + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,11,0)) + +#define show_chunk_type(type) \ + __print_flags(type, "|", \ + { BTRFS_BLOCK_GROUP_DATA, "DATA" }, \ + { BTRFS_BLOCK_GROUP_SYSTEM, "SYSTEM"}, \ + { BTRFS_BLOCK_GROUP_METADATA, "METADATA"}, \ + { BTRFS_BLOCK_GROUP_RAID0, "RAID0" }, \ + { BTRFS_BLOCK_GROUP_RAID1, "RAID1" }, \ + { BTRFS_BLOCK_GROUP_DUP, "DUP" }, \ + { BTRFS_BLOCK_GROUP_RAID10, "RAID10"}, \ + { BTRFS_BLOCK_GROUP_RAID5, "RAID5" }, \ + { BTRFS_BLOCK_GROUP_RAID6, "RAID6" }) + +#else + +#define show_chunk_type(type) \ + __print_flags(type, "|", \ + { BTRFS_BLOCK_GROUP_DATA, "DATA" }, \ + { BTRFS_BLOCK_GROUP_SYSTEM, "SYSTEM"}, \ + { BTRFS_BLOCK_GROUP_METADATA, "METADATA"}, \ + { BTRFS_BLOCK_GROUP_RAID0, "RAID0" }, \ + { BTRFS_BLOCK_GROUP_RAID1, "RAID1" }, \ + { BTRFS_BLOCK_GROUP_DUP, "DUP" }, \ + { BTRFS_BLOCK_GROUP_RAID10, "RAID10"}) + +#endif + +DECLARE_EVENT_CLASS(btrfs__chunk, + + TP_PROTO(struct btrfs_root *root, struct map_lookup *map, + u64 offset, u64 size), + + TP_ARGS(root, map, offset, size), + + TP_STRUCT__entry( + __field( int, num_stripes ) + __field( u64, type ) + __field( int, sub_stripes ) + __field( u64, offset ) + __field( u64, size ) + __field( u64, root_objectid ) + ), + + TP_fast_assign( + tp_assign(num_stripes, map->num_stripes) + tp_assign(type, map->type) + tp_assign(sub_stripes, map->sub_stripes) + tp_assign(offset, offset) + tp_assign(size, size) + tp_assign(root_objectid, root->root_key.objectid) + ), + + TP_printk("root = %llu(%s), offset = %llu, size = %llu, " + "num_stripes = %d, sub_stripes = %d, type = %s", + show_root_type(__entry->root_objectid), + (unsigned long long)__entry->offset, + (unsigned long long)__entry->size, + __entry->num_stripes, __entry->sub_stripes, + show_chunk_type(__entry->type)) +) + +DEFINE_EVENT(btrfs__chunk, btrfs_chunk_alloc, + + TP_PROTO(struct btrfs_root *root, struct map_lookup *map, + u64 offset, u64 size), + + TP_ARGS(root, map, offset, size) +) + +DEFINE_EVENT(btrfs__chunk, btrfs_chunk_free, + + TP_PROTO(struct btrfs_root *root, struct map_lookup *map, + u64 offset, u64 size), + + TP_ARGS(root, map, offset, size) +) + +TRACE_EVENT(btrfs_cow_block, + + TP_PROTO(struct btrfs_root *root, struct extent_buffer *buf, + struct extent_buffer *cow), + + TP_ARGS(root, buf, cow), + + TP_STRUCT__entry( + __field( u64, root_objectid ) + __field( u64, buf_start ) + __field( int, refs ) + __field( u64, cow_start ) + __field( int, buf_level ) + __field( int, cow_level ) + ), + + TP_fast_assign( + tp_assign(root_objectid, root->root_key.objectid) + tp_assign(buf_start, buf->start) + tp_assign(refs, atomic_read(&buf->refs)) + tp_assign(cow_start, cow->start) + tp_assign(buf_level, btrfs_header_level(buf)) + tp_assign(cow_level, btrfs_header_level(cow)) + ), + + TP_printk("root = %llu(%s), refs = %d, orig_buf = %llu " + "(orig_level = %d), cow_buf = %llu (cow_level = %d)", + show_root_type(__entry->root_objectid), + __entry->refs, + (unsigned long long)__entry->buf_start, + __entry->buf_level, + (unsigned long long)__entry->cow_start, + __entry->cow_level) +) + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,3,0)) +TRACE_EVENT(btrfs_space_reservation, + + TP_PROTO(struct btrfs_fs_info *fs_info, char *type, u64 val, + u64 bytes, int reserve), + + TP_ARGS(fs_info, type, val, bytes, reserve), + + TP_STRUCT__entry( + __array( u8, fsid, BTRFS_UUID_SIZE ) + __string( type, type ) + __field( u64, val ) + __field( u64, bytes ) + __field( int, reserve ) + ), + + TP_fast_assign( + tp_memcpy(fsid, fs_info->fsid, BTRFS_UUID_SIZE) + tp_strcpy(type, type) + tp_assign(val, val) + tp_assign(bytes, bytes) + tp_assign(reserve, reserve) + ), + + TP_printk("%pU: %s: %Lu %s %Lu", __entry->fsid, __get_str(type), + __entry->val, __entry->reserve ? "reserve" : "release", + __entry->bytes) +) +#endif + +DECLARE_EVENT_CLASS(btrfs__reserved_extent, + + TP_PROTO(struct btrfs_root *root, u64 start, u64 len), + + TP_ARGS(root, start, len), + + TP_STRUCT__entry( + __field( u64, root_objectid ) + __field( u64, start ) + __field( u64, len ) + ), + + TP_fast_assign( + tp_assign(root_objectid, root->root_key.objectid) + tp_assign(start, start) + tp_assign(len, len) + ), + + TP_printk("root = %llu(%s), start = %llu, len = %llu", + show_root_type(__entry->root_objectid), + (unsigned long long)__entry->start, + (unsigned long long)__entry->len) +) + +DEFINE_EVENT(btrfs__reserved_extent, btrfs_reserved_extent_alloc, + + TP_PROTO(struct btrfs_root *root, u64 start, u64 len), + + TP_ARGS(root, start, len) +) + +DEFINE_EVENT(btrfs__reserved_extent, btrfs_reserved_extent_free, + + TP_PROTO(struct btrfs_root *root, u64 start, u64 len), + + TP_ARGS(root, start, len) +) + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,3,0)) +TRACE_EVENT_MAP(find_free_extent, + + btrfs_find_free_extent, + + TP_PROTO(struct btrfs_root *root, u64 num_bytes, u64 empty_size, + u64 data), + + TP_ARGS(root, num_bytes, empty_size, data), + + TP_STRUCT__entry( + __field( u64, root_objectid ) + __field( u64, num_bytes ) + __field( u64, empty_size ) + __field( u64, data ) + ), + + TP_fast_assign( + tp_assign(root_objectid, root->root_key.objectid) + tp_assign(num_bytes, num_bytes) + tp_assign(empty_size, empty_size) + tp_assign(data, data) + ), + + TP_printk("root = %Lu(%s), len = %Lu, empty_size = %Lu, " + "flags = %Lu(%s)", show_root_type(__entry->root_objectid), + __entry->num_bytes, __entry->empty_size, __entry->data, + __print_flags((unsigned long)__entry->data, "|", + BTRFS_GROUP_FLAGS)) +) + +DECLARE_EVENT_CLASS(btrfs__reserve_extent, + + TP_PROTO(struct btrfs_root *root, + struct btrfs_block_group_cache *block_group, u64 start, + u64 len), + + TP_ARGS(root, block_group, start, len), + + TP_STRUCT__entry( + __field( u64, root_objectid ) + __field( u64, bg_objectid ) + __field( u64, flags ) + __field( u64, start ) + __field( u64, len ) + ), + + TP_fast_assign( + tp_assign(root_objectid, root->root_key.objectid) + tp_assign(bg_objectid, block_group->key.objectid) + tp_assign(flags, block_group->flags) + tp_assign(start, start) + tp_assign(len, len) + ), + + TP_printk("root = %Lu(%s), block_group = %Lu, flags = %Lu(%s), " + "start = %Lu, len = %Lu", + show_root_type(__entry->root_objectid), __entry->bg_objectid, + __entry->flags, __print_flags((unsigned long)__entry->flags, + "|", BTRFS_GROUP_FLAGS), + __entry->start, __entry->len) +) + +DEFINE_EVENT(btrfs__reserve_extent, btrfs_reserve_extent, + + TP_PROTO(struct btrfs_root *root, + struct btrfs_block_group_cache *block_group, u64 start, + u64 len), + + TP_ARGS(root, block_group, start, len) +) + +DEFINE_EVENT(btrfs__reserve_extent, btrfs_reserve_extent_cluster, + + TP_PROTO(struct btrfs_root *root, + struct btrfs_block_group_cache *block_group, u64 start, + u64 len), + + TP_ARGS(root, block_group, start, len) +) + +TRACE_EVENT(btrfs_find_cluster, + + TP_PROTO(struct btrfs_block_group_cache *block_group, u64 start, + u64 bytes, u64 empty_size, u64 min_bytes), + + TP_ARGS(block_group, start, bytes, empty_size, min_bytes), + + TP_STRUCT__entry( + __field( u64, bg_objectid ) + __field( u64, flags ) + __field( u64, start ) + __field( u64, bytes ) + __field( u64, empty_size ) + __field( u64, min_bytes ) + ), + + TP_fast_assign( + tp_assign(bg_objectid, block_group->key.objectid) + tp_assign(flags, block_group->flags) + tp_assign(start, start) + tp_assign(bytes, bytes) + tp_assign(empty_size, empty_size) + tp_assign(min_bytes, min_bytes) + ), + + TP_printk("block_group = %Lu, flags = %Lu(%s), start = %Lu, len = %Lu," + " empty_size = %Lu, min_bytes = %Lu", __entry->bg_objectid, + __entry->flags, + __print_flags((unsigned long)__entry->flags, "|", + BTRFS_GROUP_FLAGS), __entry->start, + __entry->bytes, __entry->empty_size, __entry->min_bytes) +) + +TRACE_EVENT(btrfs_failed_cluster_setup, + + TP_PROTO(struct btrfs_block_group_cache *block_group), + + TP_ARGS(block_group), + + TP_STRUCT__entry( + __field( u64, bg_objectid ) + ), + + TP_fast_assign( + tp_assign(bg_objectid, block_group->key.objectid) + ), + + TP_printk("block_group = %Lu", __entry->bg_objectid) +) + +TRACE_EVENT(btrfs_setup_cluster, + + TP_PROTO(struct btrfs_block_group_cache *block_group, + struct btrfs_free_cluster *cluster, u64 size, int bitmap), + + TP_ARGS(block_group, cluster, size, bitmap), + + TP_STRUCT__entry( + __field( u64, bg_objectid ) + __field( u64, flags ) + __field( u64, start ) + __field( u64, max_size ) + __field( u64, size ) + __field( int, bitmap ) + ), + + TP_fast_assign( + tp_assign(bg_objectid, block_group->key.objectid) + tp_assign(flags, block_group->flags) + tp_assign(start, cluster->window_start) + tp_assign(max_size, cluster->max_size) + tp_assign(size, size) + tp_assign(bitmap, bitmap) + ), + + TP_printk("block_group = %Lu, flags = %Lu(%s), window_start = %Lu, " + "size = %Lu, max_size = %Lu, bitmap = %d", + __entry->bg_objectid, + __entry->flags, + __print_flags((unsigned long)__entry->flags, "|", + BTRFS_GROUP_FLAGS), __entry->start, + __entry->size, __entry->max_size, __entry->bitmap) +) +#endif + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,4,0)) +TRACE_EVENT_MAP(alloc_extent_state, + + btrfs_alloc_extent_state, + + TP_PROTO(struct extent_state *state, gfp_t mask, unsigned long IP), + + TP_ARGS(state, mask, IP), + + TP_STRUCT__entry( + __field(struct extent_state *, state) + __field(gfp_t, mask) + __field(unsigned long, ip) + ), + + TP_fast_assign( + tp_assign(state, state) + tp_assign(mask, mask) + tp_assign(ip, IP) + ), + + TP_printk("state=%p; mask = %s; caller = %pF", __entry->state, + show_gfp_flags(__entry->mask), (void *)__entry->ip) +) + +TRACE_EVENT_MAP(free_extent_state, + + btrfs_free_extent_state, + + TP_PROTO(struct extent_state *state, unsigned long IP), + + TP_ARGS(state, IP), + + TP_STRUCT__entry( + __field(struct extent_state *, state) + __field(unsigned long, ip) + ), + + TP_fast_assign( + tp_assign(state, state) + tp_assign(ip, IP) + ), + + TP_printk(" state=%p; caller = %pF", __entry->state, + (void *)__entry->ip) +) +#endif + +#endif /* _TRACE_BTRFS_H */ + +/* This part must be outside protection */ +#include "../../../probes/define_trace.h" --- linux-3.11.0.orig/ubuntu/lttng-modules/instrumentation/events/lttng-module/irq.h +++ linux-3.11.0/ubuntu/lttng-modules/instrumentation/events/lttng-module/irq.h @@ -0,0 +1,220 @@ +#undef TRACE_SYSTEM +#define TRACE_SYSTEM irq + +#if !defined(_TRACE_IRQ_H) || defined(TRACE_HEADER_MULTI_READ) +#define _TRACE_IRQ_H + +#include + +#ifndef _TRACE_IRQ_DEF_ +#define _TRACE_IRQ_DEF_ + +struct irqaction; +struct softirq_action; + +#define softirq_name(sirq) { sirq##_SOFTIRQ, #sirq } +#define show_softirq_name(val) \ + __print_symbolic(val, \ + softirq_name(HI), \ + softirq_name(TIMER), \ + softirq_name(NET_TX), \ + softirq_name(NET_RX), \ + softirq_name(BLOCK), \ + softirq_name(BLOCK_IOPOLL), \ + softirq_name(TASKLET), \ + softirq_name(SCHED), \ + softirq_name(HRTIMER), \ + softirq_name(RCU)) + +#endif /* _TRACE_IRQ_DEF_ */ + +/** + * irq_handler_entry - called immediately before the irq action handler + * @irq: irq number + * @action: pointer to struct irqaction + * + * The struct irqaction pointed to by @action contains various + * information about the handler, including the device name, + * @action->name, and the device id, @action->dev_id. When used in + * conjunction with the irq_handler_exit tracepoint, we can figure + * out irq handler latencies. + */ +TRACE_EVENT(irq_handler_entry, + + TP_PROTO(int irq, struct irqaction *action), + + TP_ARGS(irq, action), + + TP_STRUCT__entry( + __field( int, irq ) + __string( name, action->name ) + ), + + TP_fast_assign( + tp_assign(irq, irq) + tp_strcpy(name, action->name) + ), + + TP_printk("irq=%d name=%s", __entry->irq, __get_str(name)) +) + +/** + * irq_handler_exit - called immediately after the irq action handler returns + * @irq: irq number + * @action: pointer to struct irqaction + * @ret: return value + * + * If the @ret value is set to IRQ_HANDLED, then we know that the corresponding + * @action->handler scuccessully handled this irq. Otherwise, the irq might be + * a shared irq line, or the irq was not handled successfully. Can be used in + * conjunction with the irq_handler_entry to understand irq handler latencies. + */ +TRACE_EVENT(irq_handler_exit, + + TP_PROTO(int irq, struct irqaction *action, int ret), + + TP_ARGS(irq, action, ret), + + TP_STRUCT__entry( + __field( int, irq ) + __field( int, ret ) + ), + + TP_fast_assign( + tp_assign(irq, irq) + tp_assign(ret, ret) + ), + + TP_printk("irq=%d ret=%s", + __entry->irq, __entry->ret ? "handled" : "unhandled") +) + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,37)) +DECLARE_EVENT_CLASS(softirq, + + TP_PROTO(unsigned int vec_nr), + + TP_ARGS(vec_nr), + + TP_STRUCT__entry( + __field( unsigned int, vec ) + ), + + TP_fast_assign( + tp_assign(vec, vec_nr) + ), + + TP_printk("vec=%u [action=%s]", __entry->vec, + show_softirq_name(__entry->vec)) +) + +/** + * softirq_entry - called immediately before the softirq handler + * @vec_nr: softirq vector number + * + * When used in combination with the softirq_exit tracepoint + * we can determine the softirq handler runtine. + */ +DEFINE_EVENT(softirq, softirq_entry, + + TP_PROTO(unsigned int vec_nr), + + TP_ARGS(vec_nr) +) + +/** + * softirq_exit - called immediately after the softirq handler returns + * @vec_nr: softirq vector number + * + * When used in combination with the softirq_entry tracepoint + * we can determine the softirq handler runtine. + */ +DEFINE_EVENT(softirq, softirq_exit, + + TP_PROTO(unsigned int vec_nr), + + TP_ARGS(vec_nr) +) + +/** + * softirq_raise - called immediately when a softirq is raised + * @vec_nr: softirq vector number + * + * When used in combination with the softirq_entry tracepoint + * we can determine the softirq raise to run latency. + */ +DEFINE_EVENT(softirq, softirq_raise, + + TP_PROTO(unsigned int vec_nr), + + TP_ARGS(vec_nr) +) +#else /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,37)) */ +DECLARE_EVENT_CLASS(softirq, + + TP_PROTO(struct softirq_action *h, struct softirq_action *vec), + + TP_ARGS(h, vec), + + TP_STRUCT__entry( + __field( unsigned int, vec ) + ), + + TP_fast_assign( + tp_assign(vec, (int)(h - vec)) + ), + + TP_printk("vec=%u [action=%s]", __entry->vec, + show_softirq_name(__entry->vec)) +) + +/** + * softirq_entry - called immediately before the softirq handler + * @h: pointer to struct softirq_action + * @vec: pointer to first struct softirq_action in softirq_vec array + * + * When used in combination with the softirq_exit tracepoint + * we can determine the softirq handler runtine. + */ +DEFINE_EVENT(softirq, softirq_entry, + + TP_PROTO(struct softirq_action *h, struct softirq_action *vec), + + TP_ARGS(h, vec) +) + +/** + * softirq_exit - called immediately after the softirq handler returns + * @h: pointer to struct softirq_action + * @vec: pointer to first struct softirq_action in softirq_vec array + * + * When used in combination with the softirq_entry tracepoint + * we can determine the softirq handler runtine. + */ +DEFINE_EVENT(softirq, softirq_exit, + + TP_PROTO(struct softirq_action *h, struct softirq_action *vec), + + TP_ARGS(h, vec) +) + +/** + * softirq_raise - called immediately when a softirq is raised + * @h: pointer to struct softirq_action + * @vec: pointer to first struct softirq_action in softirq_vec array + * + * When used in combination with the softirq_entry tracepoint + * we can determine the softirq raise to run latency. + */ +DEFINE_EVENT(softirq, softirq_raise, + + TP_PROTO(struct softirq_action *h, struct softirq_action *vec), + + TP_ARGS(h, vec) +) +#endif /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,37)) */ + +#endif /* _TRACE_IRQ_H */ + +/* This part must be outside protection */ +#include "../../../probes/define_trace.h" --- linux-3.11.0.orig/ubuntu/lttng-modules/instrumentation/events/lttng-module/rcu.h +++ linux-3.11.0/ubuntu/lttng-modules/instrumentation/events/lttng-module/rcu.h @@ -0,0 +1,759 @@ +#undef TRACE_SYSTEM +#define TRACE_SYSTEM rcu + +#if !defined(_TRACE_RCU_H) || defined(TRACE_HEADER_MULTI_READ) +#define _TRACE_RCU_H + +#include +#include + +/* + * Tracepoint for start/end markers used for utilization calculations. + * By convention, the string is of the following forms: + * + * "Start " -- Mark the start of the specified activity, + * such as "context switch". Nesting is permitted. + * "End " -- Mark the end of the specified activity. + * + * An "@" character within "" is a comment character: Data + * reduction scripts will ignore the "@" and the remainder of the line. + */ +TRACE_EVENT(rcu_utilization, + + TP_PROTO(char *s), + + TP_ARGS(s), + + TP_STRUCT__entry( + __string(s, s) + ), + + TP_fast_assign( + tp_strcpy(s, s) + ), + + TP_printk("%s", __get_str(s)) +) + +#ifdef CONFIG_RCU_TRACE + +#if defined(CONFIG_TREE_RCU) || defined(CONFIG_TREE_PREEMPT_RCU) + +/* + * Tracepoint for grace-period events: starting and ending a grace + * period ("start" and "end", respectively), a CPU noting the start + * of a new grace period or the end of an old grace period ("cpustart" + * and "cpuend", respectively), a CPU passing through a quiescent + * state ("cpuqs"), a CPU coming online or going offline ("cpuonl" + * and "cpuofl", respectively), and a CPU being kicked for being too + * long in dyntick-idle mode ("kick"). + */ +TRACE_EVENT(rcu_grace_period, + + TP_PROTO(char *rcuname, unsigned long gpnum, char *gpevent), + + TP_ARGS(rcuname, gpnum, gpevent), + + TP_STRUCT__entry( + __string(rcuname, rcuname) + __field(unsigned long, gpnum) + __string(gpevent, gpevent) + ), + + TP_fast_assign( + tp_strcpy(rcuname, rcuname) + tp_assign(gpnum, gpnum) + tp_strcpy(gpevent, gpevent) + ), + + TP_printk("%s %lu %s", + __get_str(rcuname), __entry->gpnum, __get_str(gpevent)) +) + +/* + * Tracepoint for grace-period-initialization events. These are + * distinguished by the type of RCU, the new grace-period number, the + * rcu_node structure level, the starting and ending CPU covered by the + * rcu_node structure, and the mask of CPUs that will be waited for. + * All but the type of RCU are extracted from the rcu_node structure. + */ +TRACE_EVENT(rcu_grace_period_init, + + TP_PROTO(char *rcuname, unsigned long gpnum, u8 level, + int grplo, int grphi, unsigned long qsmask), + + TP_ARGS(rcuname, gpnum, level, grplo, grphi, qsmask), + + TP_STRUCT__entry( + __string(rcuname, rcuname) + __field(unsigned long, gpnum) + __field(u8, level) + __field(int, grplo) + __field(int, grphi) + __field(unsigned long, qsmask) + ), + + TP_fast_assign( + tp_strcpy(rcuname, rcuname) + tp_assign(gpnum, gpnum) + tp_assign(level, level) + tp_assign(grplo, grplo) + tp_assign(grphi, grphi) + tp_assign(qsmask, qsmask) + ), + + TP_printk("%s %lu %u %d %d %lx", + __get_str(rcuname), __entry->gpnum, __entry->level, + __entry->grplo, __entry->grphi, __entry->qsmask) +) + +/* + * Tracepoint for tasks blocking within preemptible-RCU read-side + * critical sections. Track the type of RCU (which one day might + * include SRCU), the grace-period number that the task is blocking + * (the current or the next), and the task's PID. + */ +TRACE_EVENT(rcu_preempt_task, + + TP_PROTO(char *rcuname, int pid, unsigned long gpnum), + + TP_ARGS(rcuname, pid, gpnum), + + TP_STRUCT__entry( + __string(rcuname, rcuname) + __field(unsigned long, gpnum) + __field(int, pid) + ), + + TP_fast_assign( + tp_strcpy(rcuname, rcuname) + tp_assign(gpnum, gpnum) + tp_assign(pid, pid) + ), + + TP_printk("%s %lu %d", + __get_str(rcuname), __entry->gpnum, __entry->pid) +) + +/* + * Tracepoint for tasks that blocked within a given preemptible-RCU + * read-side critical section exiting that critical section. Track the + * type of RCU (which one day might include SRCU) and the task's PID. + */ +TRACE_EVENT(rcu_unlock_preempted_task, + + TP_PROTO(char *rcuname, unsigned long gpnum, int pid), + + TP_ARGS(rcuname, gpnum, pid), + + TP_STRUCT__entry( + __string(rcuname, rcuname) + __field(unsigned long, gpnum) + __field(int, pid) + ), + + TP_fast_assign( + tp_strcpy(rcuname, rcuname) + tp_assign(gpnum, gpnum) + tp_assign(pid, pid) + ), + + TP_printk("%s %lu %d", __get_str(rcuname), __entry->gpnum, __entry->pid) +) + +/* + * Tracepoint for quiescent-state-reporting events. These are + * distinguished by the type of RCU, the grace-period number, the + * mask of quiescent lower-level entities, the rcu_node structure level, + * the starting and ending CPU covered by the rcu_node structure, and + * whether there are any blocked tasks blocking the current grace period. + * All but the type of RCU are extracted from the rcu_node structure. + */ +TRACE_EVENT(rcu_quiescent_state_report, + + TP_PROTO(char *rcuname, unsigned long gpnum, + unsigned long mask, unsigned long qsmask, + u8 level, int grplo, int grphi, int gp_tasks), + + TP_ARGS(rcuname, gpnum, mask, qsmask, level, grplo, grphi, gp_tasks), + + TP_STRUCT__entry( + __string(rcuname, rcuname) + __field(unsigned long, gpnum) + __field(unsigned long, mask) + __field(unsigned long, qsmask) + __field(u8, level) + __field(int, grplo) + __field(int, grphi) + __field(u8, gp_tasks) + ), + + TP_fast_assign( + tp_strcpy(rcuname, rcuname) + tp_assign(gpnum, gpnum) + tp_assign(mask, mask) + tp_assign(qsmask, qsmask) + tp_assign(level, level) + tp_assign(grplo, grplo) + tp_assign(grphi, grphi) + tp_assign(gp_tasks, gp_tasks) + ), + + TP_printk("%s %lu %lx>%lx %u %d %d %u", + __get_str(rcuname), __entry->gpnum, + __entry->mask, __entry->qsmask, __entry->level, + __entry->grplo, __entry->grphi, __entry->gp_tasks) +) + +/* + * Tracepoint for quiescent states detected by force_quiescent_state(). + * These trace events include the type of RCU, the grace-period number + * that was blocked by the CPU, the CPU itself, and the type of quiescent + * state, which can be "dti" for dyntick-idle mode, "ofl" for CPU offline, + * or "kick" when kicking a CPU that has been in dyntick-idle mode for + * too long. + */ +TRACE_EVENT(rcu_fqs, + + TP_PROTO(char *rcuname, unsigned long gpnum, int cpu, char *qsevent), + + TP_ARGS(rcuname, gpnum, cpu, qsevent), + + TP_STRUCT__entry( + __string(rcuname, rcuname) + __field(unsigned long, gpnum) + __field(int, cpu) + __string(qsevent, qsevent) + ), + + TP_fast_assign( + tp_strcpy(rcuname, rcuname) + tp_assign(gpnum, gpnum) + tp_assign(cpu, cpu) + tp_strcpy(qsevent, qsevent) + ), + + TP_printk("%s %lu %d %s", + __get_str(rcuname), __entry->gpnum, + __entry->cpu, __get_str(qsevent)) +) + +#endif /* #if defined(CONFIG_TREE_RCU) || defined(CONFIG_TREE_PREEMPT_RCU) */ + +/* + * Tracepoint for dyntick-idle entry/exit events. These take a string + * as argument: "Start" for entering dyntick-idle mode, "End" for + * leaving it, "--=" for events moving towards idle, and "++=" for events + * moving away from idle. "Error on entry: not idle task" and "Error on + * exit: not idle task" indicate that a non-idle task is erroneously + * toying with the idle loop. + * + * These events also take a pair of numbers, which indicate the nesting + * depth before and after the event of interest. Note that task-related + * events use the upper bits of each number, while interrupt-related + * events use the lower bits. + */ +TRACE_EVENT(rcu_dyntick, + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,3,0)) + TP_PROTO(char *polarity, long long oldnesting, long long newnesting), + + TP_ARGS(polarity, oldnesting, newnesting), +#else + TP_PROTO(char *polarity), + + TP_ARGS(polarity), +#endif + + TP_STRUCT__entry( + __string(polarity, polarity) +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,3,0)) + __field(long long, oldnesting) + __field(long long, newnesting) +#endif + ), + + TP_fast_assign( + tp_strcpy(polarity, polarity) +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,3,0)) + tp_assign(oldnesting, oldnesting) + tp_assign(newnesting, newnesting) +#endif + ), + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,3,0)) + TP_printk("%s %llx %llx", __get_str(polarity), + __entry->oldnesting, __entry->newnesting) +#else + TP_printk("%s", __get_str(polarity)) +#endif +) + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,3,0)) +/* + * Tracepoint for RCU preparation for idle, the goal being to get RCU + * processing done so that the current CPU can shut off its scheduling + * clock and enter dyntick-idle mode. One way to accomplish this is + * to drain all RCU callbacks from this CPU, and the other is to have + * done everything RCU requires for the current grace period. In this + * latter case, the CPU will be awakened at the end of the current grace + * period in order to process the remainder of its callbacks. + * + * These tracepoints take a string as argument: + * + * "No callbacks": Nothing to do, no callbacks on this CPU. + * "In holdoff": Nothing to do, holding off after unsuccessful attempt. + * "Begin holdoff": Attempt failed, don't retry until next jiffy. + * "Dyntick with callbacks": Entering dyntick-idle despite callbacks. + * "Dyntick with lazy callbacks": Entering dyntick-idle w/lazy callbacks. + * "More callbacks": Still more callbacks, try again to clear them out. + * "Callbacks drained": All callbacks processed, off to dyntick idle! + * "Timer": Timer fired to cause CPU to continue processing callbacks. + * "Demigrate": Timer fired on wrong CPU, woke up correct CPU. + * "Cleanup after idle": Idle exited, timer canceled. + */ +TRACE_EVENT(rcu_prep_idle, + + TP_PROTO(char *reason), + + TP_ARGS(reason), + + TP_STRUCT__entry( + __string(reason, reason) + ), + + TP_fast_assign( + tp_strcpy(reason, reason) + ), + + TP_printk("%s", __get_str(reason)) +) +#endif + +/* + * Tracepoint for the registration of a single RCU callback function. + * The first argument is the type of RCU, the second argument is + * a pointer to the RCU callback itself, the third element is the + * number of lazy callbacks queued, and the fourth element is the + * total number of callbacks queued. + */ +TRACE_EVENT(rcu_callback, + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,4,0)) + TP_PROTO(char *rcuname, struct rcu_head *rhp, long qlen_lazy, + long qlen), + + TP_ARGS(rcuname, rhp, qlen_lazy, qlen), +#else + TP_PROTO(char *rcuname, struct rcu_head *rhp, long qlen), + + TP_ARGS(rcuname, rhp, qlen), +#endif + + TP_STRUCT__entry( + __string(rcuname, rcuname) + __field(void *, rhp) + __field(void *, func) +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,4,0)) + __field(long, qlen_lazy) +#endif + __field(long, qlen) + ), + + TP_fast_assign( + tp_strcpy(rcuname, rcuname) + tp_assign(rhp, rhp) + tp_assign(func, rhp->func) +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,4,0)) + tp_assign(qlen_lazy, qlen_lazy) +#endif + tp_assign(qlen, qlen) + ), + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,4,0)) + TP_printk("%s rhp=%p func=%pf %ld/%ld", + __get_str(rcuname), __entry->rhp, __entry->func, + __entry->qlen_lazy, __entry->qlen) +#else + TP_printk("%s rhp=%p func=%pf %ld", + __get_str(rcuname), __entry->rhp, __entry->func, + __entry->qlen) +#endif +) + +/* + * Tracepoint for the registration of a single RCU callback of the special + * kfree() form. The first argument is the RCU type, the second argument + * is a pointer to the RCU callback, the third argument is the offset + * of the callback within the enclosing RCU-protected data structure, + * the fourth argument is the number of lazy callbacks queued, and the + * fifth argument is the total number of callbacks queued. + */ +TRACE_EVENT(rcu_kfree_callback, + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,4,0)) + TP_PROTO(char *rcuname, struct rcu_head *rhp, unsigned long offset, + long qlen_lazy, long qlen), + + TP_ARGS(rcuname, rhp, offset, qlen_lazy, qlen), +#else + TP_PROTO(char *rcuname, struct rcu_head *rhp, unsigned long offset, + long qlen), + + TP_ARGS(rcuname, rhp, offset, qlen), +#endif + + TP_STRUCT__entry( + __string(rcuname, rcuname) + __field(void *, rhp) + __field(unsigned long, offset) +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,4,0)) + __field(long, qlen_lazy) +#endif + __field(long, qlen) + ), + + TP_fast_assign( + tp_strcpy(rcuname, rcuname) + tp_assign(rhp, rhp) + tp_assign(offset, offset) +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,4,0)) + tp_assign(qlen_lazy, qlen_lazy) +#endif + tp_assign(qlen, qlen) + ), + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,4,0)) + TP_printk("%s rhp=%p func=%ld %ld/%ld", + __get_str(rcuname), __entry->rhp, __entry->offset, + __entry->qlen_lazy, __entry->qlen) +#else + TP_printk("%s rhp=%p func=%ld %ld", + __get_str(rcuname), __entry->rhp, __entry->offset, + __entry->qlen) +#endif +) + +/* + * Tracepoint for marking the beginning rcu_do_batch, performed to start + * RCU callback invocation. The first argument is the RCU flavor, + * the second is the number of lazy callbacks queued, the third is + * the total number of callbacks queued, and the fourth argument is + * the current RCU-callback batch limit. + */ +TRACE_EVENT(rcu_batch_start, + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,9,0)) + TP_PROTO(char *rcuname, long qlen_lazy, long qlen, long blimit), + + TP_ARGS(rcuname, qlen_lazy, qlen, blimit), +#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3,4,0)) + TP_PROTO(char *rcuname, long qlen_lazy, long qlen, int blimit), + + TP_ARGS(rcuname, qlen_lazy, qlen, blimit), +#else + TP_PROTO(char *rcuname, long qlen, int blimit), + + TP_ARGS(rcuname, qlen, blimit), +#endif + + TP_STRUCT__entry( + __string(rcuname, rcuname) +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,4,0)) + __field(long, qlen_lazy) +#endif + __field(long, qlen) +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,9,0)) + __field(long, blimit) +#else + __field(int, blimit) +#endif + ), + + TP_fast_assign( + tp_strcpy(rcuname, rcuname) +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,4,0)) + tp_assign(qlen_lazy, qlen_lazy) +#endif + tp_assign(qlen, qlen) + tp_assign(blimit, blimit) + ), + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,9,0)) + TP_printk("%s CBs=%ld/%ld bl=%ld", + __get_str(rcuname), __entry->qlen_lazy, __entry->qlen, + __entry->blimit) +#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3,4,0)) + TP_printk("%s CBs=%ld/%ld bl=%d", + __get_str(rcuname), __entry->qlen_lazy, __entry->qlen, + __entry->blimit) +#else + TP_printk("%s CBs=%ld bl=%d", + __get_str(rcuname), __entry->qlen, __entry->blimit) +#endif +) + +/* + * Tracepoint for the invocation of a single RCU callback function. + * The first argument is the type of RCU, and the second argument is + * a pointer to the RCU callback itself. + */ +TRACE_EVENT(rcu_invoke_callback, + + TP_PROTO(char *rcuname, struct rcu_head *rhp), + + TP_ARGS(rcuname, rhp), + + TP_STRUCT__entry( + __string(rcuname, rcuname) + __field(void *, rhp) + __field(void *, func) + ), + + TP_fast_assign( + tp_strcpy(rcuname, rcuname) + tp_assign(rhp, rhp) + tp_assign(func, rhp->func) + ), + + TP_printk("%s rhp=%p func=%pf", + __get_str(rcuname), __entry->rhp, __entry->func) +) + +/* + * Tracepoint for the invocation of a single RCU callback of the special + * kfree() form. The first argument is the RCU flavor, the second + * argument is a pointer to the RCU callback, and the third argument + * is the offset of the callback within the enclosing RCU-protected + * data structure. + */ +TRACE_EVENT(rcu_invoke_kfree_callback, + + TP_PROTO(char *rcuname, struct rcu_head *rhp, unsigned long offset), + + TP_ARGS(rcuname, rhp, offset), + + TP_STRUCT__entry( + __string(rcuname, rcuname) + __field(void *, rhp) + __field(unsigned long, offset) + ), + + TP_fast_assign( + tp_strcpy(rcuname, rcuname) + tp_assign(rhp, rhp) + tp_assign(offset, offset) + ), + + TP_printk("%s rhp=%p func=%ld", + __get_str(rcuname), __entry->rhp, __entry->offset) +) + +/* + * Tracepoint for exiting rcu_do_batch after RCU callbacks have been + * invoked. The first argument is the name of the RCU flavor, + * the second argument is number of callbacks actually invoked, + * the third argument (cb) is whether or not any of the callbacks that + * were ready to invoke at the beginning of this batch are still + * queued, the fourth argument (nr) is the return value of need_resched(), + * the fifth argument (iit) is 1 if the current task is the idle task, + * and the sixth argument (risk) is the return value from + * rcu_is_callbacks_kthread(). + */ +TRACE_EVENT(rcu_batch_end, + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,3,0)) + TP_PROTO(char *rcuname, int callbacks_invoked, + bool cb, bool nr, bool iit, bool risk), + + TP_ARGS(rcuname, callbacks_invoked, cb, nr, iit, risk), +#else + TP_PROTO(char *rcuname, int callbacks_invoked), + + TP_ARGS(rcuname, callbacks_invoked), +#endif + + TP_STRUCT__entry( + __string(rcuname, rcuname) + __field(int, callbacks_invoked) +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,3,0)) + __field(bool, cb) + __field(bool, nr) + __field(bool, iit) + __field(bool, risk) +#endif + ), + + TP_fast_assign( + tp_strcpy(rcuname, rcuname) + tp_assign(callbacks_invoked, callbacks_invoked) +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,3,0)) + tp_assign(cb, cb) + tp_assign(nr, nr) + tp_assign(iit, iit) + tp_assign(risk, risk) +#endif + ), + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,3,0)) + TP_printk("%s CBs-invoked=%d idle=%c%c%c%c", + __get_str(rcuname), __entry->callbacks_invoked, + __entry->cb ? 'C' : '.', + __entry->nr ? 'S' : '.', + __entry->iit ? 'I' : '.', + __entry->risk ? 'R' : '.') +#else + TP_printk("%s CBs-invoked=%d", + __get_str(rcuname), __entry->callbacks_invoked) +#endif +) + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,3,0)) +/* + * Tracepoint for rcutorture readers. The first argument is the name + * of the RCU flavor from rcutorture's viewpoint and the second argument + * is the callback address. + */ +TRACE_EVENT(rcu_torture_read, + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,9,0)) + TP_PROTO(char *rcutorturename, struct rcu_head *rhp, + unsigned long secs, unsigned long c_old, unsigned long c), + + TP_ARGS(rcutorturename, rhp, secs, c_old, c), +#else + TP_PROTO(char *rcutorturename, struct rcu_head *rhp), + + TP_ARGS(rcutorturename, rhp), +#endif + + TP_STRUCT__entry( + __string(rcutorturename, rcutorturename) + __field(struct rcu_head *, rhp) +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,9,0)) + __field(unsigned long, secs) + __field(unsigned long, c_old) + __field(unsigned long, c) +#endif + ), + + TP_fast_assign( + tp_strcpy(rcutorturename, rcutorturename) + tp_assign(rhp, rhp) +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,9,0)) + tp_assign(secs, secs) + tp_assign(c_old, c_old) + tp_assign(c, c) +#endif + ), + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,9,0)) + TP_printk("%s torture read %p %luus c: %lu %lu", + __entry->rcutorturename, __entry->rhp, + __entry->secs, __entry->c_old, __entry->c) +#else + TP_printk("%s torture read %p", + __get_str(rcutorturename), __entry->rhp) +#endif +) +#endif + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,6,0)) +/* + * Tracepoint for _rcu_barrier() execution. The string "s" describes + * the _rcu_barrier phase: + * "Begin": rcu_barrier_callback() started. + * "Check": rcu_barrier_callback() checking for piggybacking. + * "EarlyExit": rcu_barrier_callback() piggybacked, thus early exit. + * "Inc1": rcu_barrier_callback() piggyback check counter incremented. + * "Offline": rcu_barrier_callback() found offline CPU + * "OnlineQ": rcu_barrier_callback() found online CPU with callbacks. + * "OnlineNQ": rcu_barrier_callback() found online CPU, no callbacks. + * "IRQ": An rcu_barrier_callback() callback posted on remote CPU. + * "CB": An rcu_barrier_callback() invoked a callback, not the last. + * "LastCB": An rcu_barrier_callback() invoked the last callback. + * "Inc2": rcu_barrier_callback() piggyback check counter incremented. + * The "cpu" argument is the CPU or -1 if meaningless, the "cnt" argument + * is the count of remaining callbacks, and "done" is the piggybacking count. + */ +TRACE_EVENT(rcu_barrier, + + TP_PROTO(char *rcuname, char *s, int cpu, int cnt, unsigned long done), + + TP_ARGS(rcuname, s, cpu, cnt, done), + + TP_STRUCT__entry( + __string(rcuname, rcuname) + __string(s, s) + __field(int, cpu) + __field(int, cnt) + __field(unsigned long, done) + ), + + TP_fast_assign( + tp_strcpy(rcuname, rcuname) + tp_strcpy(s, s) + tp_assign(cpu, cpu) + tp_assign(cnt, cnt) + tp_assign(done, done) + ), + + TP_printk("%s %s cpu %d remaining %d # %lu", + __get_str(rcuname), __get_str(s), __entry->cpu, __entry->cnt, + __entry->done) +) +#endif + +#else /* #ifdef CONFIG_RCU_TRACE */ + +#define trace_rcu_grace_period(rcuname, gpnum, gpevent) do { } while (0) +#define trace_rcu_grace_period_init(rcuname, gpnum, level, grplo, grphi, \ + qsmask) do { } while (0) +#define trace_rcu_preempt_task(rcuname, pid, gpnum) do { } while (0) +#define trace_rcu_unlock_preempted_task(rcuname, gpnum, pid) do { } while (0) +#define trace_rcu_quiescent_state_report(rcuname, gpnum, mask, qsmask, level, \ + grplo, grphi, gp_tasks) do { } \ + while (0) +#define trace_rcu_fqs(rcuname, gpnum, cpu, qsevent) do { } while (0) +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,3,0)) +#define trace_rcu_dyntick(polarity, oldnesting, newnesting) do { } while (0) +#else +#define trace_rcu_dyntick(polarity) do { } while (0) +#endif +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,3,0)) +#define trace_rcu_prep_idle(reason) do { } while (0) +#endif +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,4,0)) +#define trace_rcu_callback(rcuname, rhp, qlen_lazy, qlen) do { } while (0) +#define trace_rcu_kfree_callback(rcuname, rhp, offset, qlen_lazy, qlen) \ + do { } while (0) +#define trace_rcu_batch_start(rcuname, qlen_lazy, qlen, blimit) \ + do { } while (0) +#else +#define trace_rcu_callback(rcuname, rhp, qlen) do { } while (0) +#define trace_rcu_kfree_callback(rcuname, rhp, offset, qlen) do { } while (0) +#define trace_rcu_batch_start(rcuname, qlen, blimit) do { } while (0) +#endif +#define trace_rcu_invoke_callback(rcuname, rhp) do { } while (0) +#define trace_rcu_invoke_kfree_callback(rcuname, rhp, offset) do { } while (0) +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,3,0)) +#define trace_rcu_batch_end(rcuname, callbacks_invoked, cb, nr, iit, risk) \ + do { } while (0) +#else +#define trace_rcu_batch_end(rcuname, callbacks_invoked) do { } while (0) +#endif +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,9,0)) +#define trace_rcu_torture_read(rcutorturename, rhp, secs, c_old, c) \ + do { } while (0) +#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3,3,0)) +#define trace_rcu_torture_read(rcutorturename, rhp) do { } while (0) +#endif +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,6,0)) +#define trace_rcu_barrier(name, s, cpu, cnt, done) do { } while (0) +#endif +#endif /* #else #ifdef CONFIG_RCU_TRACE */ + +#endif /* _TRACE_RCU_H */ + +/* This part must be outside protection */ +#include "../../../probes/define_trace.h" --- linux-3.11.0.orig/ubuntu/lttng-modules/instrumentation/events/lttng-module/vmscan.h +++ linux-3.11.0/ubuntu/lttng-modules/instrumentation/events/lttng-module/vmscan.h @@ -0,0 +1,586 @@ +#undef TRACE_SYSTEM +#define TRACE_SYSTEM vmscan + +#if !defined(_TRACE_VMSCAN_H) || defined(TRACE_HEADER_MULTI_READ) +#define _TRACE_VMSCAN_H + +#include +#include +#include +#include +#include +#include + +#ifndef _TRACE_VMSCAN_DEF +#define _TRACE_VMSCAN_DEF +#define RECLAIM_WB_ANON 0x0001u +#define RECLAIM_WB_FILE 0x0002u +#define RECLAIM_WB_MIXED 0x0010u +#define RECLAIM_WB_SYNC 0x0004u /* Unused, all reclaim async */ +#define RECLAIM_WB_ASYNC 0x0008u + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,37)) +#define show_reclaim_flags(flags) \ + (flags) ? __print_flags(flags, "|", \ + {RECLAIM_WB_ANON, "RECLAIM_WB_ANON"}, \ + {RECLAIM_WB_FILE, "RECLAIM_WB_FILE"}, \ + {RECLAIM_WB_MIXED, "RECLAIM_WB_MIXED"}, \ + {RECLAIM_WB_SYNC, "RECLAIM_WB_SYNC"}, \ + {RECLAIM_WB_ASYNC, "RECLAIM_WB_ASYNC"} \ + ) : "RECLAIM_WB_NONE" +#else +#define show_reclaim_flags(flags) \ + (flags) ? __print_flags(flags, "|", \ + {RECLAIM_WB_ANON, "RECLAIM_WB_ANON"}, \ + {RECLAIM_WB_FILE, "RECLAIM_WB_FILE"}, \ + {RECLAIM_WB_SYNC, "RECLAIM_WB_SYNC"}, \ + {RECLAIM_WB_ASYNC, "RECLAIM_WB_ASYNC"} \ + ) : "RECLAIM_WB_NONE" +#endif + +#if ((LINUX_VERSION_CODE <= KERNEL_VERSION(3,0,38)) || \ + LTTNG_KERNEL_RANGE(3,1,0, 3,2,0)) +typedef int isolate_mode_t; +#endif + +#endif + +TRACE_EVENT(mm_vmscan_kswapd_sleep, + + TP_PROTO(int nid), + + TP_ARGS(nid), + + TP_STRUCT__entry( + __field( int, nid ) + ), + + TP_fast_assign( + tp_assign(nid, nid) + ), + + TP_printk("nid=%d", __entry->nid) +) + +TRACE_EVENT(mm_vmscan_kswapd_wake, + + TP_PROTO(int nid, int order), + + TP_ARGS(nid, order), + + TP_STRUCT__entry( + __field( int, nid ) + __field( int, order ) + ), + + TP_fast_assign( + tp_assign(nid, nid) + tp_assign(order, order) + ), + + TP_printk("nid=%d order=%d", __entry->nid, __entry->order) +) + +TRACE_EVENT(mm_vmscan_wakeup_kswapd, + + TP_PROTO(int nid, int zid, int order), + + TP_ARGS(nid, zid, order), + + TP_STRUCT__entry( + __field( int, nid ) + __field( int, zid ) + __field( int, order ) + ), + + TP_fast_assign( + tp_assign(nid, nid) + tp_assign(zid, zid) + tp_assign(order, order) + ), + + TP_printk("nid=%d zid=%d order=%d", + __entry->nid, + __entry->zid, + __entry->order) +) + +DECLARE_EVENT_CLASS(mm_vmscan_direct_reclaim_begin_template, + + TP_PROTO(int order, int may_writepage, gfp_t gfp_flags), + + TP_ARGS(order, may_writepage, gfp_flags), + + TP_STRUCT__entry( + __field( int, order ) + __field( int, may_writepage ) + __field( gfp_t, gfp_flags ) + ), + + TP_fast_assign( + tp_assign(order, order) + tp_assign(may_writepage, may_writepage) + tp_assign(gfp_flags, gfp_flags) + ), + + TP_printk("order=%d may_writepage=%d gfp_flags=%s", + __entry->order, + __entry->may_writepage, + show_gfp_flags(__entry->gfp_flags)) +) + +DEFINE_EVENT(mm_vmscan_direct_reclaim_begin_template, mm_vmscan_direct_reclaim_begin, + + TP_PROTO(int order, int may_writepage, gfp_t gfp_flags), + + TP_ARGS(order, may_writepage, gfp_flags) +) + +DEFINE_EVENT(mm_vmscan_direct_reclaim_begin_template, mm_vmscan_memcg_reclaim_begin, + + TP_PROTO(int order, int may_writepage, gfp_t gfp_flags), + + TP_ARGS(order, may_writepage, gfp_flags) +) + +DEFINE_EVENT(mm_vmscan_direct_reclaim_begin_template, mm_vmscan_memcg_softlimit_reclaim_begin, + + TP_PROTO(int order, int may_writepage, gfp_t gfp_flags), + + TP_ARGS(order, may_writepage, gfp_flags) +) + +DECLARE_EVENT_CLASS(mm_vmscan_direct_reclaim_end_template, + + TP_PROTO(unsigned long nr_reclaimed), + + TP_ARGS(nr_reclaimed), + + TP_STRUCT__entry( + __field( unsigned long, nr_reclaimed ) + ), + + TP_fast_assign( + tp_assign(nr_reclaimed, nr_reclaimed) + ), + + TP_printk("nr_reclaimed=%lu", __entry->nr_reclaimed) +) + +DEFINE_EVENT(mm_vmscan_direct_reclaim_end_template, mm_vmscan_direct_reclaim_end, + + TP_PROTO(unsigned long nr_reclaimed), + + TP_ARGS(nr_reclaimed) +) + +DEFINE_EVENT(mm_vmscan_direct_reclaim_end_template, mm_vmscan_memcg_reclaim_end, + + TP_PROTO(unsigned long nr_reclaimed), + + TP_ARGS(nr_reclaimed) +) + +DEFINE_EVENT(mm_vmscan_direct_reclaim_end_template, mm_vmscan_memcg_softlimit_reclaim_end, + + TP_PROTO(unsigned long nr_reclaimed), + + TP_ARGS(nr_reclaimed) +) + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,1,0)) +TRACE_EVENT(mm_shrink_slab_start, + TP_PROTO(struct shrinker *shr, struct shrink_control *sc, + long nr_objects_to_shrink, unsigned long pgs_scanned, + unsigned long lru_pgs, unsigned long cache_items, + unsigned long long delta, unsigned long total_scan), + + TP_ARGS(shr, sc, nr_objects_to_shrink, pgs_scanned, lru_pgs, + cache_items, delta, total_scan), + + TP_STRUCT__entry( + __field(struct shrinker *, shr) + __field(void *, shrink) + __field(long, nr_objects_to_shrink) + __field(gfp_t, gfp_flags) + __field(unsigned long, pgs_scanned) + __field(unsigned long, lru_pgs) + __field(unsigned long, cache_items) + __field(unsigned long long, delta) + __field(unsigned long, total_scan) + ), + + TP_fast_assign( + tp_assign(shr,shr) + tp_assign(shrink, shr->shrink) + tp_assign(nr_objects_to_shrink, nr_objects_to_shrink) + tp_assign(gfp_flags, sc->gfp_mask) + tp_assign(pgs_scanned, pgs_scanned) + tp_assign(lru_pgs, lru_pgs) + tp_assign(cache_items, cache_items) + tp_assign(delta, delta) + tp_assign(total_scan, total_scan) + ), + + TP_printk("%pF %p: objects to shrink %ld gfp_flags %s pgs_scanned %ld lru_pgs %ld cache items %ld delta %lld total_scan %ld", + __entry->shrink, + __entry->shr, + __entry->nr_objects_to_shrink, + show_gfp_flags(__entry->gfp_flags), + __entry->pgs_scanned, + __entry->lru_pgs, + __entry->cache_items, + __entry->delta, + __entry->total_scan) +) + +TRACE_EVENT(mm_shrink_slab_end, + TP_PROTO(struct shrinker *shr, int shrinker_retval, + long unused_scan_cnt, long new_scan_cnt), + + TP_ARGS(shr, shrinker_retval, unused_scan_cnt, new_scan_cnt), + + TP_STRUCT__entry( + __field(struct shrinker *, shr) + __field(void *, shrink) + __field(long, unused_scan) + __field(long, new_scan) + __field(int, retval) + __field(long, total_scan) + ), + + TP_fast_assign( + tp_assign(shr, shr) + tp_assign(shrink, shr->shrink) + tp_assign(unused_scan, unused_scan_cnt) + tp_assign(new_scan, new_scan_cnt) + tp_assign(retval, shrinker_retval) + tp_assign(total_scan, new_scan_cnt - unused_scan_cnt) + ), + + TP_printk("%pF %p: unused scan count %ld new scan count %ld total_scan %ld last shrinker return val %d", + __entry->shrink, + __entry->shr, + __entry->unused_scan, + __entry->new_scan, + __entry->total_scan, + __entry->retval) +) +#endif + +DECLARE_EVENT_CLASS(mm_vmscan_lru_isolate_template, + + TP_PROTO(int order, + unsigned long nr_requested, + unsigned long nr_scanned, + unsigned long nr_taken, +#if (LINUX_VERSION_CODE < KERNEL_VERSION(3,5,0)) + unsigned long nr_lumpy_taken, + unsigned long nr_lumpy_dirty, + unsigned long nr_lumpy_failed, +#endif +#if (LINUX_VERSION_CODE < KERNEL_VERSION(3,3,0)) + isolate_mode_t isolate_mode +#else + isolate_mode_t isolate_mode, + int file +#endif + ), + + TP_ARGS(order, nr_requested, nr_scanned, nr_taken, +#if (LINUX_VERSION_CODE < KERNEL_VERSION(3,5,0)) + nr_lumpy_taken, nr_lumpy_dirty, nr_lumpy_failed, +#endif +#if (LINUX_VERSION_CODE < KERNEL_VERSION(3,3,0)) + isolate_mode +#else + isolate_mode, file +#endif + ), + + + TP_STRUCT__entry( + __field(int, order) + __field(unsigned long, nr_requested) + __field(unsigned long, nr_scanned) + __field(unsigned long, nr_taken) +#if (LINUX_VERSION_CODE < KERNEL_VERSION(3,5,0)) + __field(unsigned long, nr_lumpy_taken) + __field(unsigned long, nr_lumpy_dirty) + __field(unsigned long, nr_lumpy_failed) +#endif + __field(isolate_mode_t, isolate_mode) +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,3,0)) + __field(int, file) +#endif + ), + + TP_fast_assign( + tp_assign(order, order) + tp_assign(nr_requested, nr_requested) + tp_assign(nr_scanned, nr_scanned) + tp_assign(nr_taken, nr_taken) +#if (LINUX_VERSION_CODE < KERNEL_VERSION(3,5,0)) + tp_assign(nr_lumpy_taken, nr_lumpy_taken) + tp_assign(nr_lumpy_dirty, nr_lumpy_dirty) + tp_assign(nr_lumpy_failed, nr_lumpy_failed) +#endif + tp_assign(isolate_mode, isolate_mode) +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,3,0)) + tp_assign(file, file) +#endif + ), + +#if (LINUX_VERSION_CODE < KERNEL_VERSION(3,3,0)) + TP_printk("isolate_mode=%d order=%d nr_requested=%lu nr_scanned=%lu nr_taken=%lu contig_taken=%lu contig_dirty=%lu contig_failed=%lu", + __entry->isolate_mode, + __entry->order, + __entry->nr_requested, + __entry->nr_scanned, + __entry->nr_taken, + __entry->nr_lumpy_taken, + __entry->nr_lumpy_dirty, + __entry->nr_lumpy_failed) +#elif (LINUX_VERSION_CODE < KERNEL_VERSION(3,5,0)) + TP_printk("isolate_mode=%d order=%d nr_requested=%lu nr_scanned=%lu nr_taken=%lu contig_taken=%lu contig_dirty=%lu contig_failed=%lu file=%d", + __entry->isolate_mode, + __entry->order, + __entry->nr_requested, + __entry->nr_scanned, + __entry->nr_taken, + __entry->nr_lumpy_taken, + __entry->nr_lumpy_dirty, + __entry->nr_lumpy_failed, + __entry->file) +#else + TP_printk("isolate_mode=%d order=%d nr_requested=%lu nr_scanned=%lu nr_taken=%lu file=%d", + __entry->isolate_mode, + __entry->order, + __entry->nr_requested, + __entry->nr_scanned, + __entry->nr_taken, + __entry->file) +#endif +) + +DEFINE_EVENT(mm_vmscan_lru_isolate_template, mm_vmscan_lru_isolate, + + TP_PROTO(int order, + unsigned long nr_requested, + unsigned long nr_scanned, + unsigned long nr_taken, +#if (LINUX_VERSION_CODE < KERNEL_VERSION(3,5,0)) + unsigned long nr_lumpy_taken, + unsigned long nr_lumpy_dirty, + unsigned long nr_lumpy_failed, +#endif +#if (LINUX_VERSION_CODE < KERNEL_VERSION(3,3,0)) + isolate_mode_t isolate_mode +#else + isolate_mode_t isolate_mode, + int file +#endif + ), + + TP_ARGS(order, nr_requested, nr_scanned, nr_taken, +#if (LINUX_VERSION_CODE < KERNEL_VERSION(3,5,0)) + nr_lumpy_taken, nr_lumpy_dirty, nr_lumpy_failed, +#endif +#if (LINUX_VERSION_CODE < KERNEL_VERSION(3,3,0)) + isolate_mode +#else + isolate_mode, file +#endif + ) + +) + +DEFINE_EVENT(mm_vmscan_lru_isolate_template, mm_vmscan_memcg_isolate, + + TP_PROTO(int order, + unsigned long nr_requested, + unsigned long nr_scanned, + unsigned long nr_taken, +#if (LINUX_VERSION_CODE < KERNEL_VERSION(3,5,0)) + unsigned long nr_lumpy_taken, + unsigned long nr_lumpy_dirty, + unsigned long nr_lumpy_failed, +#endif +#if (LINUX_VERSION_CODE < KERNEL_VERSION(3,3,0)) + isolate_mode_t isolate_mode +#else + isolate_mode_t isolate_mode, + int file +#endif + ), + + TP_ARGS(order, nr_requested, nr_scanned, nr_taken, +#if (LINUX_VERSION_CODE < KERNEL_VERSION(3,5,0)) + nr_lumpy_taken, nr_lumpy_dirty, nr_lumpy_failed, +#endif +#if (LINUX_VERSION_CODE < KERNEL_VERSION(3,3,0)) + isolate_mode +#else + isolate_mode, file +#endif + ) +) + +TRACE_EVENT(mm_vmscan_writepage, + + TP_PROTO(struct page *page, + int reclaim_flags), + + TP_ARGS(page, reclaim_flags), + + TP_STRUCT__entry( + __field(struct page *, page) + __field(int, reclaim_flags) + ), + + TP_fast_assign( + tp_assign(page, page) + tp_assign(reclaim_flags, reclaim_flags) + ), + + TP_printk("page=%p pfn=%lu flags=%s", + __entry->page, + page_to_pfn(__entry->page), + show_reclaim_flags(__entry->reclaim_flags)) +) + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,37)) +TRACE_EVENT(mm_vmscan_lru_shrink_inactive, + + TP_PROTO(int nid, int zid, + unsigned long nr_scanned, unsigned long nr_reclaimed, + int priority, int reclaim_flags), + + TP_ARGS(nid, zid, nr_scanned, nr_reclaimed, priority, reclaim_flags), + + TP_STRUCT__entry( + __field(int, nid) + __field(int, zid) + __field(unsigned long, nr_scanned) + __field(unsigned long, nr_reclaimed) + __field(int, priority) + __field(int, reclaim_flags) + ), + + TP_fast_assign( + tp_assign(nid, nid) + tp_assign(zid, zid) + tp_assign(nr_scanned, nr_scanned) + tp_assign(nr_reclaimed, nr_reclaimed) + tp_assign(priority, priority) + tp_assign(reclaim_flags, reclaim_flags) + ), + + TP_printk("nid=%d zid=%d nr_scanned=%ld nr_reclaimed=%ld priority=%d flags=%s", + __entry->nid, __entry->zid, + __entry->nr_scanned, __entry->nr_reclaimed, + __entry->priority, + show_reclaim_flags(__entry->reclaim_flags)) +) +#endif + +#if (LINUX_VERSION_CODE < KERNEL_VERSION(3,5,0)) +TRACE_EVENT_MAP(replace_swap_token, + + mm_vmscan_replace_swap_token, + + TP_PROTO(struct mm_struct *old_mm, + struct mm_struct *new_mm), + + TP_ARGS(old_mm, new_mm), + + TP_STRUCT__entry( + __field(struct mm_struct*, old_mm) + __field(unsigned int, old_prio) + __field(struct mm_struct*, new_mm) + __field(unsigned int, new_prio) + ), + + TP_fast_assign( + tp_assign(old_mm, old_mm) + tp_assign(old_prio, old_mm ? old_mm->token_priority : 0) + tp_assign(new_mm, new_mm) + tp_assign(new_prio, new_mm->token_priority) + ), + + TP_printk("old_token_mm=%p old_prio=%u new_token_mm=%p new_prio=%u", + __entry->old_mm, __entry->old_prio, + __entry->new_mm, __entry->new_prio) +) + +DECLARE_EVENT_CLASS(mm_vmscan_put_swap_token_template, + TP_PROTO(struct mm_struct *swap_token_mm), + + TP_ARGS(swap_token_mm), + + TP_STRUCT__entry( + __field(struct mm_struct*, swap_token_mm) + ), + + TP_fast_assign( + tp_assign(swap_token_mm, swap_token_mm) + ), + + TP_printk("token_mm=%p", __entry->swap_token_mm) +) + +DEFINE_EVENT_MAP(mm_vmscan_put_swap_token_template, put_swap_token, + + mm_vmscan_put_swap_token, + + TP_PROTO(struct mm_struct *swap_token_mm), + TP_ARGS(swap_token_mm) +) + +DEFINE_EVENT_CONDITION_MAP(mm_vmscan_put_swap_token_template, disable_swap_token, + + mm_vmscan_disable_swap_token, + + TP_PROTO(struct mm_struct *swap_token_mm), + TP_ARGS(swap_token_mm), + TP_CONDITION(swap_token_mm != NULL) +) + +TRACE_EVENT_CONDITION_MAP(update_swap_token_priority, + + mm_vmscan_update_swap_token_priority, + + TP_PROTO(struct mm_struct *mm, + unsigned int old_prio, + struct mm_struct *swap_token_mm), + + TP_ARGS(mm, old_prio, swap_token_mm), + + TP_CONDITION(mm->token_priority != old_prio), + + TP_STRUCT__entry( + __field(struct mm_struct*, mm) + __field(unsigned int, old_prio) + __field(unsigned int, new_prio) + __field(struct mm_struct*, swap_token_mm) + __field(unsigned int, swap_token_prio) + ), + + TP_fast_assign( + tp_assign(mm, mm) + tp_assign(old_prio, old_prio) + tp_assign(new_prio, mm->token_priority) + tp_assign(swap_token_mm, swap_token_mm) + tp_assign(swap_token_prio, swap_token_mm ? swap_token_mm->token_priority : 0) + ), + + TP_printk("mm=%p old_prio=%u new_prio=%u swap_token_mm=%p token_prio=%u", + __entry->mm, __entry->old_prio, __entry->new_prio, + __entry->swap_token_mm, __entry->swap_token_prio) +) +#endif + +#endif /* _TRACE_VMSCAN_H */ + +/* This part must be outside protection */ +#include "../../../probes/define_trace.h" --- linux-3.11.0.orig/ubuntu/lttng-modules/instrumentation/events/lttng-module/power.h +++ linux-3.11.0/ubuntu/lttng-modules/instrumentation/events/lttng-module/power.h @@ -0,0 +1,351 @@ +#undef TRACE_SYSTEM +#define TRACE_SYSTEM power + +#if !defined(_TRACE_POWER_H) || defined(TRACE_HEADER_MULTI_READ) +#define _TRACE_POWER_H + +#include +#include +#include + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,38)) +DECLARE_EVENT_CLASS(power_cpu, + + TP_PROTO(unsigned int state, unsigned int cpu_id), + + TP_ARGS(state, cpu_id), + + TP_STRUCT__entry( + __field( u32, state ) + __field( u32, cpu_id ) + ), + + TP_fast_assign( + tp_assign(state, state) + tp_assign(cpu_id, cpu_id) + ), + + TP_printk("state=%lu cpu_id=%lu", (unsigned long)__entry->state, + (unsigned long)__entry->cpu_id) +) + +DEFINE_EVENT_MAP(power_cpu, cpu_idle, + + power_cpu_idle, + + TP_PROTO(unsigned int state, unsigned int cpu_id), + + TP_ARGS(state, cpu_id) +) + +/* This file can get included multiple times, TRACE_HEADER_MULTI_READ at top */ +#ifndef _PWR_EVENT_AVOID_DOUBLE_DEFINING +#define _PWR_EVENT_AVOID_DOUBLE_DEFINING + +#define PWR_EVENT_EXIT -1 +#endif + +DEFINE_EVENT_MAP(power_cpu, cpu_frequency, + + power_cpu_frequency, + + TP_PROTO(unsigned int frequency, unsigned int cpu_id), + + TP_ARGS(frequency, cpu_id) +) + +TRACE_EVENT_MAP(machine_suspend, + + power_machine_suspend, + + TP_PROTO(unsigned int state), + + TP_ARGS(state), + + TP_STRUCT__entry( + __field( u32, state ) + ), + + TP_fast_assign( + tp_assign(state, state) + ), + + TP_printk("state=%lu", (unsigned long)__entry->state) +) +#endif + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,5,0)) +DECLARE_EVENT_CLASS(power_wakeup_source, + + TP_PROTO(const char *name, unsigned int state), + + TP_ARGS(name, state), + + TP_STRUCT__entry( + __string( name, name ) + __field( u64, state ) + ), + + TP_fast_assign( + tp_strcpy(name, name) + tp_assign(state, state) + ), + + TP_printk("%s state=0x%lx", __get_str(name), + (unsigned long)__entry->state) +) + +DEFINE_EVENT_MAP(power_wakeup_source, wakeup_source_activate, + + power_wakeup_source_activate, + + TP_PROTO(const char *name, unsigned int state), + + TP_ARGS(name, state) +) + +DEFINE_EVENT_MAP(power_wakeup_source, wakeup_source_deactivate, + + power_wakeup_source_deactivate, + + TP_PROTO(const char *name, unsigned int state), + + TP_ARGS(name, state) +) +#endif + +#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,38)) +#undef CONFIG_EVENT_POWER_TRACING_DEPRECATED +#define CONFIG_EVENT_POWER_TRACING_DEPRECATED +#define _PWR_EVENT_AVOID_DOUBLE_DEFINING_DEPRECATED +#endif + +#ifdef CONFIG_EVENT_POWER_TRACING_DEPRECATED + +/* + * The power events are used for cpuidle & suspend (power_start, power_end) + * and for cpufreq (power_frequency) + */ +DECLARE_EVENT_CLASS(power, + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,36)) + TP_PROTO(unsigned int type, unsigned int state, unsigned int cpu_id), + + TP_ARGS(type, state, cpu_id), +#else + TP_PROTO(unsigned int type, unsigned int state), + + TP_ARGS(type, state), +#endif + + TP_STRUCT__entry( + __field( u64, type ) + __field( u64, state ) +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,36)) + __field( u64, cpu_id ) +#endif + ), + + TP_fast_assign( + tp_assign(type, type) + tp_assign(state, state) +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,36)) + tp_assign(cpu_id, cpu_id) +#endif + ), + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,36)) + TP_printk("type=%lu state=%lu cpu_id=%lu", (unsigned long)__entry->type, + (unsigned long)__entry->state, (unsigned long)__entry->cpu_id) +#else + TP_printk("type=%lu state=%lu", (unsigned long)__entry->type, + (unsigned long)__entry->state) +#endif +) + +DEFINE_EVENT(power, power_start, + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,36)) + TP_PROTO(unsigned int type, unsigned int state, unsigned int cpu_id), + + TP_ARGS(type, state, cpu_id) +#else + TP_PROTO(unsigned int type, unsigned int state), + + TP_ARGS(type, state) +#endif +) + +DEFINE_EVENT(power, power_frequency, + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,36)) + TP_PROTO(unsigned int type, unsigned int state, unsigned int cpu_id), + + TP_ARGS(type, state, cpu_id) +#else + TP_PROTO(unsigned int type, unsigned int state), + + TP_ARGS(type, state) +#endif +) + +TRACE_EVENT(power_end, + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,36)) + TP_PROTO(unsigned int cpu_id), + + TP_ARGS(cpu_id), +#else + TP_PROTO(int dummy), + + TP_ARGS(dummy), +#endif + + TP_STRUCT__entry( +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,36)) + __field( u64, cpu_id ) +#else + __field( u64, dummy ) +#endif + ), + + TP_fast_assign( +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,36)) + tp_assign(cpu_id, cpu_id) +#else + tp_assign(dummy, 0xffff) +#endif + ), + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,36)) + TP_printk("cpu_id=%lu", (unsigned long)__entry->cpu_id) +#else + TP_printk("dummy=%lu", (unsigned long)__entry->dummy) +#endif +) + +/* Deprecated dummy functions must be protected against multi-declartion */ +#ifndef _PWR_EVENT_AVOID_DOUBLE_DEFINING_DEPRECATED +#define _PWR_EVENT_AVOID_DOUBLE_DEFINING_DEPRECATED + +enum { + POWER_NONE = 0, + POWER_CSTATE = 1, + POWER_PSTATE = 2, +}; +#endif /* _PWR_EVENT_AVOID_DOUBLE_DEFINING_DEPRECATED */ + +#else /* CONFIG_EVENT_POWER_TRACING_DEPRECATED */ + +#ifndef _PWR_EVENT_AVOID_DOUBLE_DEFINING_DEPRECATED +#define _PWR_EVENT_AVOID_DOUBLE_DEFINING_DEPRECATED +enum { + POWER_NONE = 0, + POWER_CSTATE = 1, + POWER_PSTATE = 2, +}; + +/* These dummy declaration have to be ripped out when the deprecated + events get removed */ +static inline void trace_power_start(u64 type, u64 state, u64 cpuid) {}; +static inline void trace_power_end(u64 cpuid) {}; +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,4,0)) +static inline void trace_power_start_rcuidle(u64 type, u64 state, u64 cpuid) {}; +static inline void trace_power_end_rcuidle(u64 cpuid) {}; +#endif +static inline void trace_power_frequency(u64 type, u64 state, u64 cpuid) {}; +#endif /* _PWR_EVENT_AVOID_DOUBLE_DEFINING_DEPRECATED */ + +#endif /* CONFIG_EVENT_POWER_TRACING_DEPRECATED */ + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,37)) +/* + * The clock events are used for clock enable/disable and for + * clock rate change + */ +DECLARE_EVENT_CLASS(power_clock, + + TP_PROTO(const char *name, unsigned int state, unsigned int cpu_id), + + TP_ARGS(name, state, cpu_id), + + TP_STRUCT__entry( + __string( name, name ) + __field( u64, state ) + __field( u64, cpu_id ) + ), + + TP_fast_assign( + tp_strcpy(name, name) + tp_assign(state, state) + tp_assign(cpu_id, cpu_id) + ), + + TP_printk("%s state=%lu cpu_id=%lu", __get_str(name), + (unsigned long)__entry->state, (unsigned long)__entry->cpu_id) +) + +DEFINE_EVENT_MAP(power_clock, clock_enable, + + power_clock_enable, + + TP_PROTO(const char *name, unsigned int state, unsigned int cpu_id), + + TP_ARGS(name, state, cpu_id) +) + +DEFINE_EVENT_MAP(power_clock, clock_disable, + + power_clock_disable, + + TP_PROTO(const char *name, unsigned int state, unsigned int cpu_id), + + TP_ARGS(name, state, cpu_id) +) + +DEFINE_EVENT_MAP(power_clock, clock_set_rate, + + power_clock_set_rate, + + TP_PROTO(const char *name, unsigned int state, unsigned int cpu_id), + + TP_ARGS(name, state, cpu_id) +) + +/* + * The power domain events are used for power domains transitions + */ +DECLARE_EVENT_CLASS(power_domain, + + TP_PROTO(const char *name, unsigned int state, unsigned int cpu_id), + + TP_ARGS(name, state, cpu_id), + + TP_STRUCT__entry( + __string( name, name ) + __field( u64, state ) + __field( u64, cpu_id ) + ), + + TP_fast_assign( + tp_strcpy(name, name) + tp_assign(state, state) + tp_assign(cpu_id, cpu_id) +), + + TP_printk("%s state=%lu cpu_id=%lu", __get_str(name), + (unsigned long)__entry->state, (unsigned long)__entry->cpu_id) +) + +DEFINE_EVENT(power_domain, power_domain_target, + + TP_PROTO(const char *name, unsigned int state, unsigned int cpu_id), + + TP_ARGS(name, state, cpu_id) +) +#endif + +#endif /* _TRACE_POWER_H */ + +/* This part must be outside protection */ +#include "../../../probes/define_trace.h" --- linux-3.11.0.orig/ubuntu/lttng-modules/instrumentation/events/lttng-module/ext4.h +++ linux-3.11.0/ubuntu/lttng-modules/instrumentation/events/lttng-module/ext4.h @@ -0,0 +1,3086 @@ +#undef TRACE_SYSTEM +#define TRACE_SYSTEM ext4 + +#if !defined(_TRACE_EXT4_H) || defined(TRACE_HEADER_MULTI_READ) +#define _TRACE_EXT4_H + +#include +#include +#include + +#ifndef _TRACE_EXT4_DEF_ +#define _TRACE_EXT4_DEF_ +struct ext4_allocation_context; +struct ext4_allocation_request; +struct ext4_prealloc_space; +struct ext4_inode_info; +struct mpage_da_data; +struct ext4_map_blocks; +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,2,0)) +struct ext4_extent; +#endif +#endif + +#define EXT4_I(inode) (container_of(inode, struct ext4_inode_info, vfs_inode)) +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,1,0)) +#define TP_MODE_T __u16 +#else +#define TP_MODE_T umode_t +#endif + +TRACE_EVENT(ext4_free_inode, + TP_PROTO(struct inode *inode), + + TP_ARGS(inode), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( uid_t, uid ) + __field( gid_t, gid ) + __field( __u64, blocks ) + __field( TP_MODE_T, mode ) + ), + + TP_fast_assign( + tp_assign(dev, inode->i_sb->s_dev) + tp_assign(ino, inode->i_ino) +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,5,0)) + tp_assign(uid, i_uid_read(inode)) + tp_assign(gid, i_gid_read(inode)) +#else + tp_assign(uid, inode->i_uid) + tp_assign(gid, inode->i_gid) +#endif + tp_assign(blocks, inode->i_blocks) + tp_assign(mode, inode->i_mode) + ), + + TP_printk("dev %d,%d ino %lu mode 0%o uid %u gid %u blocks %llu", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, __entry->mode, + __entry->uid, __entry->gid, __entry->blocks) +) + +TRACE_EVENT(ext4_request_inode, + TP_PROTO(struct inode *dir, int mode), + + TP_ARGS(dir, mode), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, dir ) + __field( TP_MODE_T, mode ) + ), + + TP_fast_assign( + tp_assign(dev, dir->i_sb->s_dev) + tp_assign(dir, dir->i_ino) + tp_assign(mode, mode) + ), + + TP_printk("dev %d,%d dir %lu mode 0%o", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->dir, __entry->mode) +) + +TRACE_EVENT(ext4_allocate_inode, + TP_PROTO(struct inode *inode, struct inode *dir, int mode), + + TP_ARGS(inode, dir, mode), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( ino_t, dir ) + __field( TP_MODE_T, mode ) + ), + + TP_fast_assign( + tp_assign(dev, inode->i_sb->s_dev) + tp_assign(ino, inode->i_ino) + tp_assign(dir, dir->i_ino) + tp_assign(mode, mode) + ), + + TP_printk("dev %d,%d ino %lu dir %lu mode 0%o", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + (unsigned long) __entry->dir, __entry->mode) +) + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,37)) +TRACE_EVENT(ext4_evict_inode, + TP_PROTO(struct inode *inode), + + TP_ARGS(inode), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( int, nlink ) + ), + + TP_fast_assign( + tp_assign(dev, inode->i_sb->s_dev) + tp_assign(ino, inode->i_ino) + tp_assign(nlink, inode->i_nlink) + ), + + TP_printk("dev %d,%d ino %lu nlink %d", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, __entry->nlink) +) + +TRACE_EVENT(ext4_drop_inode, + TP_PROTO(struct inode *inode, int drop), + + TP_ARGS(inode, drop), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( int, drop ) + ), + + TP_fast_assign( + tp_assign(dev, inode->i_sb->s_dev) + tp_assign(ino, inode->i_ino) + tp_assign(drop, drop) + ), + + TP_printk("dev %d,%d ino %lu drop %d", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, __entry->drop) +) + +TRACE_EVENT(ext4_mark_inode_dirty, + TP_PROTO(struct inode *inode, unsigned long IP), + + TP_ARGS(inode, IP), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field(unsigned long, ip ) + ), + + TP_fast_assign( + tp_assign(dev, inode->i_sb->s_dev) + tp_assign(ino, inode->i_ino) + tp_assign(ip, IP) + ), + + TP_printk("dev %d,%d ino %lu caller %pF", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, (void *)__entry->ip) +) + +TRACE_EVENT(ext4_begin_ordered_truncate, + TP_PROTO(struct inode *inode, loff_t new_size), + + TP_ARGS(inode, new_size), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( loff_t, new_size ) + ), + + TP_fast_assign( + tp_assign(dev, inode->i_sb->s_dev) + tp_assign(ino, inode->i_ino) + tp_assign(new_size, new_size) + ), + + TP_printk("dev %d,%d ino %lu new_size %lld", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + __entry->new_size) +) +#endif + +DECLARE_EVENT_CLASS(ext4__write_begin, + + TP_PROTO(struct inode *inode, loff_t pos, unsigned int len, + unsigned int flags), + + TP_ARGS(inode, pos, len, flags), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( loff_t, pos ) + __field( unsigned int, len ) + __field( unsigned int, flags ) + ), + + TP_fast_assign( + tp_assign(dev, inode->i_sb->s_dev) + tp_assign(ino, inode->i_ino) + tp_assign(pos, pos) + tp_assign(len, len) + tp_assign(flags, flags) + ), + + TP_printk("dev %d,%d ino %lu pos %lld len %u flags %u", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + __entry->pos, __entry->len, __entry->flags) +) + +DEFINE_EVENT(ext4__write_begin, ext4_write_begin, + + TP_PROTO(struct inode *inode, loff_t pos, unsigned int len, + unsigned int flags), + + TP_ARGS(inode, pos, len, flags) +) + +DEFINE_EVENT(ext4__write_begin, ext4_da_write_begin, + + TP_PROTO(struct inode *inode, loff_t pos, unsigned int len, + unsigned int flags), + + TP_ARGS(inode, pos, len, flags) +) + +DECLARE_EVENT_CLASS(ext4__write_end, + TP_PROTO(struct inode *inode, loff_t pos, unsigned int len, + unsigned int copied), + + TP_ARGS(inode, pos, len, copied), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( loff_t, pos ) + __field( unsigned int, len ) + __field( unsigned int, copied ) + ), + + TP_fast_assign( + tp_assign(dev, inode->i_sb->s_dev) + tp_assign(ino, inode->i_ino) + tp_assign(pos, pos) + tp_assign(len, len) + tp_assign(copied, copied) + ), + + TP_printk("dev %d,%d ino %lu pos %lld len %u copied %u", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + __entry->pos, __entry->len, __entry->copied) +) + +DEFINE_EVENT(ext4__write_end, ext4_ordered_write_end, + + TP_PROTO(struct inode *inode, loff_t pos, unsigned int len, + unsigned int copied), + + TP_ARGS(inode, pos, len, copied) +) + +DEFINE_EVENT(ext4__write_end, ext4_writeback_write_end, + + TP_PROTO(struct inode *inode, loff_t pos, unsigned int len, + unsigned int copied), + + TP_ARGS(inode, pos, len, copied) +) + +DEFINE_EVENT(ext4__write_end, ext4_journalled_write_end, + + TP_PROTO(struct inode *inode, loff_t pos, unsigned int len, + unsigned int copied), + + TP_ARGS(inode, pos, len, copied) +) + +DEFINE_EVENT(ext4__write_end, ext4_da_write_end, + + TP_PROTO(struct inode *inode, loff_t pos, unsigned int len, + unsigned int copied), + + TP_ARGS(inode, pos, len, copied) +) + +#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,40)) +TRACE_EVENT(ext4_writepage, + TP_PROTO(struct inode *inode, struct page *page), + + TP_ARGS(inode, page), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( pgoff_t, index ) + + ), + + TP_fast_assign( + tp_assign(dev, inode->i_sb->s_dev) + tp_assign(ino, inode->i_ino) + tp_assign(index, page->index) + ), + + TP_printk("dev %d,%d ino %lu page_index %lu", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, __entry->index) +) +#endif + +TRACE_EVENT(ext4_da_writepages, + TP_PROTO(struct inode *inode, struct writeback_control *wbc), + + TP_ARGS(inode, wbc), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( long, nr_to_write ) + __field( long, pages_skipped ) + __field( loff_t, range_start ) + __field( loff_t, range_end ) + __field( pgoff_t, writeback_index ) +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,39)) + __field( int, sync_mode ) +#endif +#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,37)) + __field( char, nonblocking ) +#endif + __field( char, for_kupdate ) +#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,39)) + __field( char, for_reclaim ) +#endif + __field( char, range_cyclic ) + ), + + TP_fast_assign( + tp_assign(dev, inode->i_sb->s_dev) + tp_assign(ino, inode->i_ino) + tp_assign(nr_to_write, wbc->nr_to_write) + tp_assign(pages_skipped, wbc->pages_skipped) + tp_assign(range_start, wbc->range_start) + tp_assign(range_end, wbc->range_end) + tp_assign(writeback_index, inode->i_mapping->writeback_index) +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,39)) + tp_assign(sync_mode, wbc->sync_mode) +#endif +#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,37)) + tp_assign(nonblocking, wbc->nonblocking) +#endif + tp_assign(for_kupdate, wbc->for_kupdate) +#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,39)) + tp_assign(for_reclaim, wbc->for_reclaim) +#endif + tp_assign(range_cyclic, wbc->range_cyclic) + ), + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,39)) + TP_printk("dev %d,%d ino %lu nr_to_write %ld pages_skipped %ld " + "range_start %lld range_end %lld sync_mode %d " + "for_kupdate %d range_cyclic %d writeback_index %lu", +#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,37)) + TP_printk("dev %d,%d ino %lu nr_to_write %ld pages_skipped %ld " + "range_start %llu range_end %llu " + "for_kupdate %d for_reclaim %d " + "range_cyclic %d writeback_index %lu", +#else + TP_printk("dev %d,%d ino %lu nr_to_write %ld pages_skipped %ld " + "range_start %llu range_end %llu " + "nonblocking %d for_kupdate %d for_reclaim %d " + "range_cyclic %d writeback_index %lu", +#endif + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, __entry->nr_to_write, + __entry->pages_skipped, __entry->range_start, +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,39)) + __entry->range_end, __entry->sync_mode, + __entry->for_kupdate, __entry->range_cyclic, +#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,37)) + __entry->range_end, + __entry->for_kupdate, __entry->for_reclaim, + __entry->range_cyclic, +#else + __entry->range_end, __entry->nonblocking, + __entry->for_kupdate, __entry->for_reclaim, + __entry->range_cyclic, +#endif + (unsigned long) __entry->writeback_index) +) + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,11,0)) + +TRACE_EVENT(ext4_da_write_pages, + TP_PROTO(struct inode *inode, pgoff_t first_page, + struct writeback_control *wbc), + + TP_ARGS(inode, first_page, wbc), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( pgoff_t, first_page ) + __field( long, nr_to_write ) + __field( int, sync_mode ) + ), + + TP_fast_assign( + tp_assign(dev, inode->i_sb->s_dev) + tp_assign(ino, inode->i_ino) + tp_assign(first_page, first_page) + tp_assign(nr_to_write, wbc->nr_to_write) + tp_assign(sync_mode, wbc->sync_mode) + ), + + TP_printk("dev %d,%d ino %lu first_page %lu nr_to_write %ld " + "sync_mode %d", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, __entry->first_page, + __entry->nr_to_write, __entry->sync_mode) +) + +#else + +TRACE_EVENT(ext4_da_write_pages, + TP_PROTO(struct inode *inode, struct mpage_da_data *mpd), + + TP_ARGS(inode, mpd), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( __u64, b_blocknr ) + __field( __u32, b_size ) + __field( __u32, b_state ) + __field( unsigned long, first_page ) + __field( int, io_done ) + __field( int, pages_written ) +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,39)) + __field( int, sync_mode ) +#endif + ), + + TP_fast_assign( + tp_assign(dev, inode->i_sb->s_dev) + tp_assign(ino, inode->i_ino) + tp_assign(b_blocknr, mpd->b_blocknr) + tp_assign(b_size, mpd->b_size) + tp_assign(b_state, mpd->b_state) + tp_assign(first_page, mpd->first_page) + tp_assign(io_done, mpd->io_done) + tp_assign(pages_written, mpd->pages_written) +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,39)) + tp_assign(sync_mode, mpd->wbc->sync_mode) +#endif + ), + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,39)) + TP_printk("dev %d,%d ino %lu b_blocknr %llu b_size %u b_state 0x%04x " + "first_page %lu io_done %d pages_written %d sync_mode %d", +#else + TP_printk("dev %d,%d ino %lu b_blocknr %llu b_size %u b_state 0x%04x " + "first_page %lu io_done %d pages_written %d", +#endif + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + __entry->b_blocknr, __entry->b_size, + __entry->b_state, __entry->first_page, +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,39)) + __entry->io_done, __entry->pages_written, + __entry->sync_mode +#else + __entry->io_done, __entry->pages_written +#endif + ) +) + +#endif + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,11,0)) + +TRACE_EVENT(ext4_da_write_pages_extent, + TP_PROTO(struct inode *inode, struct ext4_map_blocks *map), + + TP_ARGS(inode, map), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( __u64, lblk ) + __field( __u32, len ) + __field( __u32, flags ) + ), + + TP_fast_assign( + tp_assign(dev, inode->i_sb->s_dev) + tp_assign(ino, inode->i_ino) + tp_assign(lblk, map->m_lblk) + tp_assign(len, map->m_len) + tp_assign(flags, map->m_flags) + ), + + TP_printk("dev %d,%d ino %lu lblk %llu len %u flags %s", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, __entry->lblk, __entry->len, + show_mflags(__entry->flags)) +) + +#endif + +TRACE_EVENT(ext4_da_writepages_result, + TP_PROTO(struct inode *inode, struct writeback_control *wbc, + int ret, int pages_written), + + TP_ARGS(inode, wbc, ret, pages_written), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( int, ret ) + __field( int, pages_written ) + __field( long, pages_skipped ) + __field( pgoff_t, writeback_index ) +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,39)) + __field( int, sync_mode ) +#endif +#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,33)) + __field( char, encountered_congestion ) +#endif +#if (LINUX_VERSION_CODE < KERNEL_VERSION(3,1,0)) + __field( char, more_io ) +#endif +#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,35)) + __field( char, no_nrwrite_index_update ) +#endif + ), + + TP_fast_assign( + tp_assign(dev, inode->i_sb->s_dev) + tp_assign(ino, inode->i_ino) + tp_assign(ret, ret) + tp_assign(pages_written, pages_written) + tp_assign(pages_skipped, wbc->pages_skipped) + tp_assign(writeback_index, inode->i_mapping->writeback_index) +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,39)) + tp_assign(sync_mode, wbc->sync_mode) +#endif +#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,33)) + tp_assign(encountered_congestion, wbc->encountered_congestion) +#endif +#if (LINUX_VERSION_CODE < KERNEL_VERSION(3,1,0)) + tp_assign(more_io, wbc->more_io) +#endif +#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,35)) + tp_assign(no_nrwrite_index_update, wbc->no_nrwrite_index_update) +#endif + ), + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,1,0)) + TP_printk("dev %d,%d ino %lu ret %d pages_written %d pages_skipped %ld " + "sync_mode %d writeback_index %lu", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, __entry->ret, + __entry->pages_written, __entry->pages_skipped, + __entry->sync_mode, + (unsigned long) __entry->writeback_index) +#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,39)) + TP_printk("dev %d,%d ino %lu ret %d pages_written %d pages_skipped %ld " + " more_io %d sync_mode %d writeback_index %lu", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, __entry->ret, + __entry->pages_written, __entry->pages_skipped, + __entry->more_io, __entry->sync_mode, + (unsigned long) __entry->writeback_index) +#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,35)) + TP_printk("dev %d,%d ino %lu ret %d pages_written %d pages_skipped %ld " + " more_io %d writeback_index %lu", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, __entry->ret, + __entry->pages_written, __entry->pages_skipped, + __entry->more_io, + (unsigned long) __entry->writeback_index) +#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,33)) + TP_printk("dev %d,%d ino %lu ret %d pages_written %d pages_skipped %ld " + " more_io %d no_nrwrite_index_update %d writeback_index %lu", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, __entry->ret, + __entry->pages_written, __entry->pages_skipped, + __entry->more_io, __entry->no_nrwrite_index_update, + (unsigned long) __entry->writeback_index) +#else + TP_printk("dev %d,%d ino %lu ret %d pages_written %d pages_skipped %ld " + " congestion %d" + " more_io %d no_nrwrite_index_update %d writeback_index %lu", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, __entry->ret, + __entry->pages_written, __entry->pages_skipped, + __entry->encountered_congestion, + __entry->more_io, __entry->no_nrwrite_index_update, + (unsigned long) __entry->writeback_index) +#endif +) + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,39)) +DECLARE_EVENT_CLASS(ext4__page_op, + TP_PROTO(struct page *page), + + TP_ARGS(page), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( pgoff_t, index ) + + ), + + TP_fast_assign( + tp_assign(dev, page->mapping->host->i_sb->s_dev) + tp_assign(ino, page->mapping->host->i_ino) + tp_assign(index, page->index) + ), + + TP_printk("dev %d,%d ino %lu page_index %lu", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + (unsigned long) __entry->index) +) + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,40)) +DEFINE_EVENT(ext4__page_op, ext4_writepage, + + TP_PROTO(struct page *page), + + TP_ARGS(page) +) +#endif + +DEFINE_EVENT(ext4__page_op, ext4_readpage, + + TP_PROTO(struct page *page), + + TP_ARGS(page) +) + +DEFINE_EVENT(ext4__page_op, ext4_releasepage, + + TP_PROTO(struct page *page), + + TP_ARGS(page) +) + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,11,0)) + +DECLARE_EVENT_CLASS(ext4_invalidatepage_op, + TP_PROTO(struct page *page, unsigned int offset, unsigned int length), + + TP_ARGS(page, offset, length), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( pgoff_t, index ) + __field( unsigned int, offset ) + __field( unsigned int, length ) + ), + + TP_fast_assign( + tp_assign(dev, page->mapping->host->i_sb->s_dev) + tp_assign(ino, page->mapping->host->i_ino) + tp_assign(index, page->index) + tp_assign(offset, offset) + tp_assign(length, length) + ), + + TP_printk("dev %d,%d ino %lu page_index %lu offset %u length %u", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + (unsigned long) __entry->index, + __entry->offset, __entry->length) +) + +DEFINE_EVENT(ext4_invalidatepage_op, ext4_invalidatepage, + TP_PROTO(struct page *page, unsigned int offset, unsigned int length), + + TP_ARGS(page, offset, length) +) + +DEFINE_EVENT(ext4_invalidatepage_op, ext4_journalled_invalidatepage, + TP_PROTO(struct page *page, unsigned int offset, unsigned int length), + + TP_ARGS(page, offset, length) +) + +#else + +TRACE_EVENT(ext4_invalidatepage, + TP_PROTO(struct page *page, unsigned long offset), + + TP_ARGS(page, offset), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( pgoff_t, index ) + __field( unsigned long, offset ) + + ), + + TP_fast_assign( + tp_assign(dev, page->mapping->host->i_sb->s_dev) + tp_assign(ino, page->mapping->host->i_ino) + tp_assign(index, page->index) + tp_assign(offset, offset) + ), + + TP_printk("dev %d,%d ino %lu page_index %lu offset %lu", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + (unsigned long) __entry->index, __entry->offset) +) + +#endif + +#endif + +TRACE_EVENT(ext4_discard_blocks, + TP_PROTO(struct super_block *sb, unsigned long long blk, + unsigned long long count), + + TP_ARGS(sb, blk, count), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( __u64, blk ) + __field( __u64, count ) + + ), + + TP_fast_assign( + tp_assign(dev, sb->s_dev) + tp_assign(blk, blk) + tp_assign(count, count) + ), + + TP_printk("dev %d,%d blk %llu count %llu", + MAJOR(__entry->dev), MINOR(__entry->dev), + __entry->blk, __entry->count) +) + +DECLARE_EVENT_CLASS(ext4__mb_new_pa, + TP_PROTO(struct ext4_allocation_context *ac, + struct ext4_prealloc_space *pa), + + TP_ARGS(ac, pa), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( __u64, pa_pstart ) + __field( __u64, pa_lstart ) + __field( __u32, pa_len ) + + ), + + TP_fast_assign( + tp_assign(dev, ac->ac_sb->s_dev) + tp_assign(ino, ac->ac_inode->i_ino) + tp_assign(pa_pstart, pa->pa_pstart) + tp_assign(pa_lstart, pa->pa_lstart) + tp_assign(pa_len, pa->pa_len) + ), + + TP_printk("dev %d,%d ino %lu pstart %llu len %u lstart %llu", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + __entry->pa_pstart, __entry->pa_len, __entry->pa_lstart) +) + +DEFINE_EVENT(ext4__mb_new_pa, ext4_mb_new_inode_pa, + + TP_PROTO(struct ext4_allocation_context *ac, + struct ext4_prealloc_space *pa), + + TP_ARGS(ac, pa) +) + +DEFINE_EVENT(ext4__mb_new_pa, ext4_mb_new_group_pa, + + TP_PROTO(struct ext4_allocation_context *ac, + struct ext4_prealloc_space *pa), + + TP_ARGS(ac, pa) +) + +TRACE_EVENT(ext4_mb_release_inode_pa, + TP_PROTO( +#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,40)) +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,37)) + struct super_block *sb, + struct inode *inode, +#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,36)) + struct super_block *sb, + struct ext4_allocation_context *ac, +#else + struct ext4_allocation_context *ac, +#endif +#endif + struct ext4_prealloc_space *pa, + unsigned long long block, unsigned int count), + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,40)) + TP_ARGS(pa, block, count), +#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,37)) + TP_ARGS(sb, inode, pa, block, count), +#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,36)) + TP_ARGS(sb, ac, pa, block, count), +#else + TP_ARGS(ac, pa, block, count), +#endif + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( __u64, block ) + __field( __u32, count ) + + ), + + TP_fast_assign( +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,40)) + tp_assign(dev, pa->pa_inode->i_sb->s_dev) + tp_assign(ino, pa->pa_inode->i_ino) +#else +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,36)) + tp_assign(dev, sb->s_dev) +#else + tp_assign(dev, ac->ac_sb->s_dev) +#endif +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,37)) + tp_assign(ino, inode->i_ino) +#else + tp_assign(ino, (ac && ac->ac_inode) ? ac->ac_inode->i_ino : 0) +#endif +#endif + tp_assign(block, block) + tp_assign(count, count) + ), + + TP_printk("dev %d,%d ino %lu block %llu count %u", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + __entry->block, __entry->count) +) + +TRACE_EVENT(ext4_mb_release_group_pa, + +#if (LTTNG_KERNEL_RANGE(2,6,40, 3,3,0)) + TP_PROTO(struct ext4_prealloc_space *pa), + + TP_ARGS(pa), +#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,37)) + TP_PROTO(struct super_block *sb, struct ext4_prealloc_space *pa), + + TP_ARGS(sb, pa), +#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,36)) + TP_PROTO(struct super_block *sb, + struct ext4_allocation_context *ac, + struct ext4_prealloc_space *pa), + + TP_ARGS(sb, ac, pa), +#else + TP_PROTO(struct ext4_allocation_context *ac, + struct ext4_prealloc_space *pa), + + TP_ARGS(ac, pa), +#endif + + TP_STRUCT__entry( + __field( dev_t, dev ) +#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,37)) + __field( ino_t, ino ) +#endif + __field( __u64, pa_pstart ) + __field( __u32, pa_len ) + + ), + + TP_fast_assign( +#if (LTTNG_KERNEL_RANGE(2,6,40, 3,3,0)) + tp_assign(dev, pa->pa_inode->i_sb->s_dev) +#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,36)) + tp_assign(dev, sb->s_dev) +#else + tp_assign(dev, ac->ac_sb->s_dev) +#endif +#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,37)) + tp_assign(ino, (ac && ac->ac_inode) ? ac->ac_inode->i_ino : 0) +#endif + tp_assign(pa_pstart, pa->pa_pstart) + tp_assign(pa_len, pa->pa_len) + ), + + TP_printk("dev %d,%d pstart %llu len %u", + MAJOR(__entry->dev), MINOR(__entry->dev), + __entry->pa_pstart, __entry->pa_len) +) + +TRACE_EVENT(ext4_discard_preallocations, + TP_PROTO(struct inode *inode), + + TP_ARGS(inode), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + + ), + + TP_fast_assign( + tp_assign(dev, inode->i_sb->s_dev) + tp_assign(ino, inode->i_ino) + ), + + TP_printk("dev %d,%d ino %lu", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino) +) + +TRACE_EVENT(ext4_mb_discard_preallocations, + TP_PROTO(struct super_block *sb, int needed), + + TP_ARGS(sb, needed), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( int, needed ) + + ), + + TP_fast_assign( + tp_assign(dev, sb->s_dev) + tp_assign(needed, needed) + ), + + TP_printk("dev %d,%d needed %d", + MAJOR(__entry->dev), MINOR(__entry->dev), + __entry->needed) +) + +TRACE_EVENT(ext4_request_blocks, + TP_PROTO(struct ext4_allocation_request *ar), + + TP_ARGS(ar), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( unsigned int, len ) + __field( __u32, logical ) + __field( __u32, lleft ) + __field( __u32, lright ) + __field( __u64, goal ) + __field( __u64, pleft ) + __field( __u64, pright ) + __field( unsigned int, flags ) + ), + + TP_fast_assign( + tp_assign(dev, ar->inode->i_sb->s_dev) + tp_assign(ino, ar->inode->i_ino) + tp_assign(len, ar->len) + tp_assign(logical, ar->logical) + tp_assign(goal, ar->goal) + tp_assign(lleft, ar->lleft) + tp_assign(lright, ar->lright) + tp_assign(pleft, ar->pleft) + tp_assign(pright, ar->pright) + tp_assign(flags, ar->flags) + ), + + TP_printk("dev %d,%d ino %lu flags %u len %u lblk %u goal %llu " + "lleft %u lright %u pleft %llu pright %llu ", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, __entry->flags, + __entry->len, __entry->logical, __entry->goal, + __entry->lleft, __entry->lright, __entry->pleft, + __entry->pright) +) + +TRACE_EVENT(ext4_allocate_blocks, + TP_PROTO(struct ext4_allocation_request *ar, unsigned long long block), + + TP_ARGS(ar, block), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( __u64, block ) + __field( unsigned int, len ) + __field( __u32, logical ) + __field( __u32, lleft ) + __field( __u32, lright ) + __field( __u64, goal ) + __field( __u64, pleft ) + __field( __u64, pright ) + __field( unsigned int, flags ) + ), + + TP_fast_assign( + tp_assign(dev, ar->inode->i_sb->s_dev) + tp_assign(ino, ar->inode->i_ino) + tp_assign(block, block) + tp_assign(len, ar->len) + tp_assign(logical, ar->logical) + tp_assign(goal, ar->goal) + tp_assign(lleft, ar->lleft) + tp_assign(lright, ar->lright) + tp_assign(pleft, ar->pleft) + tp_assign(pright, ar->pright) + tp_assign(flags, ar->flags) + ), + + TP_printk("dev %d,%d ino %lu flags %u len %u block %llu lblk %u " + "goal %llu lleft %u lright %u pleft %llu pright %llu", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, __entry->flags, + __entry->len, __entry->block, __entry->logical, + __entry->goal, __entry->lleft, __entry->lright, + __entry->pleft, __entry->pright) +) + +TRACE_EVENT(ext4_free_blocks, +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,33)) + TP_PROTO(struct inode *inode, __u64 block, unsigned long count, + int flags), + + TP_ARGS(inode, block, count, flags), +#else + TP_PROTO(struct inode *inode, __u64 block, unsigned long count, + int metadata), + + TP_ARGS(inode, block, count, metadata), +#endif + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( __u64, block ) + __field( unsigned long, count ) +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,33)) + __field( int, flags ) + __field( TP_MODE_T, mode ) +#else + __field( int, metadata ) +#endif + ), + + TP_fast_assign( + tp_assign(dev, inode->i_sb->s_dev) + tp_assign(ino, inode->i_ino) + tp_assign(block, block) + tp_assign(count, count) +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,33)) + tp_assign(flags, flags) + tp_assign(mode, inode->i_mode) +#else + tp_assign(metadata, metadata) +#endif + ), + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,33)) + TP_printk("dev %d,%d ino %lu mode 0%o block %llu count %lu flags %d", +#else + TP_printk("dev %d,%d ino %lu block %llu count %lu metadata %d", +#endif + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,33)) + __entry->mode, __entry->block, __entry->count, + __entry->flags) +#else + __entry->block, __entry->count, __entry->metadata) +#endif +) + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,39)) +TRACE_EVENT(ext4_sync_file_enter, +#else +TRACE_EVENT(ext4_sync_file, +#endif +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,35)) + TP_PROTO(struct file *file, int datasync), + + TP_ARGS(file, datasync), +#else + TP_PROTO(struct file *file, struct dentry *dentry, int datasync), + + TP_ARGS(file, dentry, datasync), +#endif + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( ino_t, parent ) + __field( int, datasync ) + ), + + TP_fast_assign( +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,35)) + tp_assign(dev, file->f_path.dentry->d_inode->i_sb->s_dev) + tp_assign(ino, file->f_path.dentry->d_inode->i_ino) + tp_assign(datasync, datasync) + tp_assign(parent, file->f_path.dentry->d_parent->d_inode->i_ino) +#else + tp_assign(dev, dentry->d_inode->i_sb->s_dev) + tp_assign(ino, dentry->d_inode->i_ino) + tp_assign(datasync, datasync) + tp_assign(parent, dentry->d_parent->d_inode->i_ino) +#endif + ), + + TP_printk("dev %d,%d ino %lu parent %lu datasync %d ", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + (unsigned long) __entry->parent, __entry->datasync) +) + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,39)) +TRACE_EVENT(ext4_sync_file_exit, + TP_PROTO(struct inode *inode, int ret), + + TP_ARGS(inode, ret), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( int, ret ) + ), + + TP_fast_assign( + tp_assign(dev, inode->i_sb->s_dev) + tp_assign(ino, inode->i_ino) + tp_assign(ret, ret) + ), + + TP_printk("dev %d,%d ino %lu ret %d", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + __entry->ret) +) +#endif + +TRACE_EVENT(ext4_sync_fs, + TP_PROTO(struct super_block *sb, int wait), + + TP_ARGS(sb, wait), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( int, wait ) + + ), + + TP_fast_assign( + tp_assign(dev, sb->s_dev) + tp_assign(wait, wait) + ), + + TP_printk("dev %d,%d wait %d", + MAJOR(__entry->dev), MINOR(__entry->dev), + __entry->wait) +) + +TRACE_EVENT(ext4_alloc_da_blocks, + TP_PROTO(struct inode *inode), + + TP_ARGS(inode), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( unsigned int, data_blocks ) + __field( unsigned int, meta_blocks ) + ), + + TP_fast_assign( + tp_assign(dev, inode->i_sb->s_dev) + tp_assign(ino, inode->i_ino) + tp_assign(data_blocks, EXT4_I(inode)->i_reserved_data_blocks) + tp_assign(meta_blocks, EXT4_I(inode)->i_reserved_meta_blocks) + ), + + TP_printk("dev %d,%d ino %lu data_blocks %u meta_blocks %u", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + __entry->data_blocks, __entry->meta_blocks) +) + +TRACE_EVENT(ext4_mballoc_alloc, + TP_PROTO(struct ext4_allocation_context *ac), + + TP_ARGS(ac), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( __u32, orig_logical ) + __field( int, orig_start ) + __field( __u32, orig_group ) + __field( int, orig_len ) + __field( __u32, goal_logical ) + __field( int, goal_start ) + __field( __u32, goal_group ) + __field( int, goal_len ) + __field( __u32, result_logical ) + __field( int, result_start ) + __field( __u32, result_group ) + __field( int, result_len ) + __field( __u16, found ) + __field( __u16, groups ) + __field( __u16, buddy ) + __field( __u16, flags ) + __field( __u16, tail ) + __field( __u8, cr ) + ), + + TP_fast_assign( + tp_assign(dev, ac->ac_inode->i_sb->s_dev) + tp_assign(ino, ac->ac_inode->i_ino) + tp_assign(orig_logical, ac->ac_o_ex.fe_logical) + tp_assign(orig_start, ac->ac_o_ex.fe_start) + tp_assign(orig_group, ac->ac_o_ex.fe_group) + tp_assign(orig_len, ac->ac_o_ex.fe_len) + tp_assign(goal_logical, ac->ac_g_ex.fe_logical) + tp_assign(goal_start, ac->ac_g_ex.fe_start) + tp_assign(goal_group, ac->ac_g_ex.fe_group) + tp_assign(goal_len, ac->ac_g_ex.fe_len) + tp_assign(result_logical, ac->ac_f_ex.fe_logical) + tp_assign(result_start, ac->ac_f_ex.fe_start) + tp_assign(result_group, ac->ac_f_ex.fe_group) + tp_assign(result_len, ac->ac_f_ex.fe_len) + tp_assign(found, ac->ac_found) + tp_assign(flags, ac->ac_flags) + tp_assign(groups, ac->ac_groups_scanned) + tp_assign(buddy, ac->ac_buddy) + tp_assign(tail, ac->ac_tail) + tp_assign(cr, ac->ac_criteria) + ), + + TP_printk("dev %d,%d inode %lu orig %u/%d/%u@%u goal %u/%d/%u@%u " + "result %u/%d/%u@%u blks %u grps %u cr %u flags 0x%04x " + "tail %u broken %u", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + __entry->orig_group, __entry->orig_start, + __entry->orig_len, __entry->orig_logical, + __entry->goal_group, __entry->goal_start, + __entry->goal_len, __entry->goal_logical, + __entry->result_group, __entry->result_start, + __entry->result_len, __entry->result_logical, + __entry->found, __entry->groups, __entry->cr, + __entry->flags, __entry->tail, + __entry->buddy ? 1 << __entry->buddy : 0) +) + +TRACE_EVENT(ext4_mballoc_prealloc, + TP_PROTO(struct ext4_allocation_context *ac), + + TP_ARGS(ac), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( __u32, orig_logical ) + __field( int, orig_start ) + __field( __u32, orig_group ) + __field( int, orig_len ) + __field( __u32, result_logical ) + __field( int, result_start ) + __field( __u32, result_group ) + __field( int, result_len ) + ), + + TP_fast_assign( + tp_assign(dev, ac->ac_inode->i_sb->s_dev) + tp_assign(ino, ac->ac_inode->i_ino) + tp_assign(orig_logical, ac->ac_o_ex.fe_logical) + tp_assign(orig_start, ac->ac_o_ex.fe_start) + tp_assign(orig_group, ac->ac_o_ex.fe_group) + tp_assign(orig_len, ac->ac_o_ex.fe_len) + tp_assign(result_logical, ac->ac_b_ex.fe_logical) + tp_assign(result_start, ac->ac_b_ex.fe_start) + tp_assign(result_group, ac->ac_b_ex.fe_group) + tp_assign(result_len, ac->ac_b_ex.fe_len) + ), + + TP_printk("dev %d,%d inode %lu orig %u/%d/%u@%u result %u/%d/%u@%u", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + __entry->orig_group, __entry->orig_start, + __entry->orig_len, __entry->orig_logical, + __entry->result_group, __entry->result_start, + __entry->result_len, __entry->result_logical) +) + +DECLARE_EVENT_CLASS(ext4__mballoc, +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,37)) + TP_PROTO(struct super_block *sb, + struct inode *inode, + ext4_group_t group, + ext4_grpblk_t start, + ext4_grpblk_t len), + + TP_ARGS(sb, inode, group, start, len), +#else + TP_PROTO(struct ext4_allocation_context *ac), + + TP_ARGS(ac), +#endif + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) +#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,37)) + __field( __u32, result_logical ) +#endif + __field( int, result_start ) + __field( __u32, result_group ) + __field( int, result_len ) + ), + + TP_fast_assign( +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,37)) + tp_assign(dev, sb->s_dev) + tp_assign(ino, inode ? inode->i_ino : 0) + tp_assign(result_start, start) + tp_assign(result_group, group) + tp_assign(result_len, len) +#else + tp_assign(dev, ac->ac_sb->s_dev) + tp_assign(ino, ac->ac_inode ? ac->ac_inode->i_ino : 0) + tp_assign(result_logical, ac->ac_b_ex.fe_logical) + tp_assign(result_start, ac->ac_b_ex.fe_start) + tp_assign(result_group, ac->ac_b_ex.fe_group) + tp_assign(result_len, ac->ac_b_ex.fe_len) +#endif + ), + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,37)) + TP_printk("dev %d,%d inode %lu extent %u/%d/%d ", +#else + TP_printk("dev %d,%d inode %lu extent %u/%d/%u@%u ", +#endif + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + __entry->result_group, __entry->result_start, +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,37)) + __entry->result_len +#else + __entry->result_len, __entry->result_logical +#endif + ) +) + +DEFINE_EVENT(ext4__mballoc, ext4_mballoc_discard, + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,37)) + TP_PROTO(struct super_block *sb, + struct inode *inode, + ext4_group_t group, + ext4_grpblk_t start, + ext4_grpblk_t len), + + TP_ARGS(sb, inode, group, start, len) +#else + TP_PROTO(struct ext4_allocation_context *ac), + + TP_ARGS(ac) +#endif +) + +DEFINE_EVENT(ext4__mballoc, ext4_mballoc_free, + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,37)) + TP_PROTO(struct super_block *sb, + struct inode *inode, + ext4_group_t group, + ext4_grpblk_t start, + ext4_grpblk_t len), + + TP_ARGS(sb, inode, group, start, len) +#else + TP_PROTO(struct ext4_allocation_context *ac), + + TP_ARGS(ac) +#endif +) + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,33)) +TRACE_EVENT(ext4_forget, + TP_PROTO(struct inode *inode, int is_metadata, __u64 block), + + TP_ARGS(inode, is_metadata, block), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( __u64, block ) + __field( int, is_metadata ) + __field( TP_MODE_T, mode ) + ), + + TP_fast_assign( + tp_assign(dev, inode->i_sb->s_dev) + tp_assign(ino, inode->i_ino) + tp_assign(block, block) + tp_assign(is_metadata, is_metadata) + tp_assign(mode, inode->i_mode) + ), + + TP_printk("dev %d,%d ino %lu mode 0%o is_metadata %d block %llu", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + __entry->mode, __entry->is_metadata, __entry->block) +) +#endif + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,34)) +TRACE_EVENT(ext4_da_update_reserve_space, +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,2,0)) + TP_PROTO(struct inode *inode, int used_blocks, int quota_claim), + + TP_ARGS(inode, used_blocks, quota_claim), +#else + TP_PROTO(struct inode *inode, int used_blocks), + + TP_ARGS(inode, used_blocks), +#endif + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( __u64, i_blocks ) + __field( int, used_blocks ) + __field( int, reserved_data_blocks ) + __field( int, reserved_meta_blocks ) + __field( int, allocated_meta_blocks ) +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,2,0)) + __field( int, quota_claim ) +#endif + __field( TP_MODE_T, mode ) + ), + + TP_fast_assign( + tp_assign(dev, inode->i_sb->s_dev) + tp_assign(ino, inode->i_ino) + tp_assign(i_blocks, inode->i_blocks) + tp_assign(used_blocks, used_blocks) + tp_assign(reserved_data_blocks, + EXT4_I(inode)->i_reserved_data_blocks) + tp_assign(reserved_meta_blocks, + EXT4_I(inode)->i_reserved_meta_blocks) + tp_assign(allocated_meta_blocks, + EXT4_I(inode)->i_allocated_meta_blocks) +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,2,0)) + tp_assign(quota_claim, quota_claim) +#endif + tp_assign(mode, inode->i_mode) + ), + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,2,0)) + TP_printk("dev %d,%d ino %lu mode 0%o i_blocks %llu used_blocks %d " + "reserved_data_blocks %d reserved_meta_blocks %d " + "allocated_meta_blocks %d quota_claim %d", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + __entry->mode, __entry->i_blocks, + __entry->used_blocks, __entry->reserved_data_blocks, + __entry->reserved_meta_blocks, __entry->allocated_meta_blocks, + __entry->quota_claim) +#else + TP_printk("dev %d,%d ino %lu mode 0%o i_blocks %llu used_blocks %d " + "reserved_data_blocks %d reserved_meta_blocks %d " + "allocated_meta_blocks %d", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + __entry->mode, __entry->i_blocks, + __entry->used_blocks, __entry->reserved_data_blocks, + __entry->reserved_meta_blocks, __entry->allocated_meta_blocks) +#endif +) + +TRACE_EVENT(ext4_da_reserve_space, + TP_PROTO(struct inode *inode, int md_needed), + + TP_ARGS(inode, md_needed), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( __u64, i_blocks ) + __field( int, md_needed ) + __field( int, reserved_data_blocks ) + __field( int, reserved_meta_blocks ) + __field( TP_MODE_T, mode ) + ), + + TP_fast_assign( + tp_assign(dev, inode->i_sb->s_dev) + tp_assign(ino, inode->i_ino) + tp_assign(i_blocks, inode->i_blocks) + tp_assign(md_needed, md_needed) + tp_assign(reserved_data_blocks, + EXT4_I(inode)->i_reserved_data_blocks) + tp_assign(reserved_meta_blocks, + EXT4_I(inode)->i_reserved_meta_blocks) + tp_assign(mode, inode->i_mode) + ), + + TP_printk("dev %d,%d ino %lu mode 0%o i_blocks %llu md_needed %d " + "reserved_data_blocks %d reserved_meta_blocks %d", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + __entry->mode, __entry->i_blocks, + __entry->md_needed, __entry->reserved_data_blocks, + __entry->reserved_meta_blocks) +) + +TRACE_EVENT(ext4_da_release_space, + TP_PROTO(struct inode *inode, int freed_blocks), + + TP_ARGS(inode, freed_blocks), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( __u64, i_blocks ) + __field( int, freed_blocks ) + __field( int, reserved_data_blocks ) + __field( int, reserved_meta_blocks ) + __field( int, allocated_meta_blocks ) + __field( TP_MODE_T, mode ) + ), + + TP_fast_assign( + tp_assign(dev, inode->i_sb->s_dev) + tp_assign(ino, inode->i_ino) + tp_assign(i_blocks, inode->i_blocks) + tp_assign(freed_blocks, freed_blocks) + tp_assign(reserved_data_blocks, + EXT4_I(inode)->i_reserved_data_blocks) + tp_assign(reserved_meta_blocks, + EXT4_I(inode)->i_reserved_meta_blocks) + tp_assign(allocated_meta_blocks, + EXT4_I(inode)->i_allocated_meta_blocks) + tp_assign(mode, inode->i_mode) + ), + + TP_printk("dev %d,%d ino %lu mode 0%o i_blocks %llu freed_blocks %d " + "reserved_data_blocks %d reserved_meta_blocks %d " + "allocated_meta_blocks %d", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + __entry->mode, __entry->i_blocks, + __entry->freed_blocks, __entry->reserved_data_blocks, + __entry->reserved_meta_blocks, __entry->allocated_meta_blocks) +) +#endif + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,35)) +DECLARE_EVENT_CLASS(ext4__bitmap_load, + TP_PROTO(struct super_block *sb, unsigned long group), + + TP_ARGS(sb, group), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( __u32, group ) + + ), + + TP_fast_assign( + tp_assign(dev, sb->s_dev) + tp_assign(group, group) + ), + + TP_printk("dev %d,%d group %u", + MAJOR(__entry->dev), MINOR(__entry->dev), + __entry->group) +) + +DEFINE_EVENT(ext4__bitmap_load, ext4_mb_bitmap_load, + + TP_PROTO(struct super_block *sb, unsigned long group), + + TP_ARGS(sb, group) +) + +DEFINE_EVENT(ext4__bitmap_load, ext4_mb_buddy_bitmap_load, + + TP_PROTO(struct super_block *sb, unsigned long group), + + TP_ARGS(sb, group) +) +#endif + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,39)) +DEFINE_EVENT(ext4__bitmap_load, ext4_read_block_bitmap_load, + + TP_PROTO(struct super_block *sb, unsigned long group), + + TP_ARGS(sb, group) +) + +DEFINE_EVENT(ext4__bitmap_load, ext4_load_inode_bitmap, + + TP_PROTO(struct super_block *sb, unsigned long group), + + TP_ARGS(sb, group) +) + +TRACE_EVENT(ext4_direct_IO_enter, + TP_PROTO(struct inode *inode, loff_t offset, unsigned long len, int rw), + + TP_ARGS(inode, offset, len, rw), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( loff_t, pos ) + __field( unsigned long, len ) + __field( int, rw ) + ), + + TP_fast_assign( + tp_assign(dev, inode->i_sb->s_dev) + tp_assign(ino, inode->i_ino) + tp_assign(pos, offset) + tp_assign(len, len) + tp_assign(rw, rw) + ), + + TP_printk("dev %d,%d ino %lu pos %lld len %lu rw %d", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + __entry->pos, __entry->len, __entry->rw) +) + +TRACE_EVENT(ext4_direct_IO_exit, + TP_PROTO(struct inode *inode, loff_t offset, unsigned long len, + int rw, int ret), + + TP_ARGS(inode, offset, len, rw, ret), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( loff_t, pos ) + __field( unsigned long, len ) + __field( int, rw ) + __field( int, ret ) + ), + + TP_fast_assign( + tp_assign(dev, inode->i_sb->s_dev) + tp_assign(ino, inode->i_ino) + tp_assign(pos, offset) + tp_assign(len, len) + tp_assign(rw, rw) + tp_assign(ret, ret) + ), + + TP_printk("dev %d,%d ino %lu pos %lld len %lu rw %d ret %d", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + __entry->pos, __entry->len, + __entry->rw, __entry->ret) +) + +TRACE_EVENT(ext4_fallocate_enter, + TP_PROTO(struct inode *inode, loff_t offset, loff_t len, int mode), + + TP_ARGS(inode, offset, len, mode), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( loff_t, pos ) + __field( loff_t, len ) + __field( int, mode ) + ), + + TP_fast_assign( + tp_assign(dev, inode->i_sb->s_dev) + tp_assign(ino, inode->i_ino) + tp_assign(pos, offset) + tp_assign(len, len) + tp_assign(mode, mode) + ), + + TP_printk("dev %d,%d ino %lu pos %lld len %lld mode %d", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, __entry->pos, + __entry->len, __entry->mode) +) + +TRACE_EVENT(ext4_fallocate_exit, + TP_PROTO(struct inode *inode, loff_t offset, + unsigned int max_blocks, int ret), + + TP_ARGS(inode, offset, max_blocks, ret), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( loff_t, pos ) + __field( unsigned int, blocks ) + __field( int, ret ) + ), + + TP_fast_assign( + tp_assign(dev, inode->i_sb->s_dev) + tp_assign(ino, inode->i_ino) + tp_assign(pos, offset) + tp_assign(blocks, max_blocks) + tp_assign(ret, ret) + ), + + TP_printk("dev %d,%d ino %lu pos %lld blocks %u ret %d", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + __entry->pos, __entry->blocks, + __entry->ret) +) + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,11,0)) + +TRACE_EVENT(ext4_punch_hole, + TP_PROTO(struct inode *inode, loff_t offset, loff_t len), + + TP_ARGS(inode, offset, len), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( loff_t, offset ) + __field( loff_t, len ) + ), + + TP_fast_assign( + tp_assign(dev, inode->i_sb->s_dev) + tp_assign(ino, inode->i_ino) + tp_assign(offset, offset) + tp_assign(len, len) + ), + + TP_printk("dev %d,%d ino %lu offset %lld len %lld", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + __entry->offset, __entry->len) +) + +#endif + +TRACE_EVENT(ext4_unlink_enter, + TP_PROTO(struct inode *parent, struct dentry *dentry), + + TP_ARGS(parent, dentry), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( ino_t, parent ) + __field( loff_t, size ) + ), + + TP_fast_assign( + tp_assign(dev, dentry->d_inode->i_sb->s_dev) + tp_assign(ino, dentry->d_inode->i_ino) + tp_assign(parent, parent->i_ino) + tp_assign(size, dentry->d_inode->i_size) + ), + + TP_printk("dev %d,%d ino %lu size %lld parent %lu", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, __entry->size, + (unsigned long) __entry->parent) +) + +TRACE_EVENT(ext4_unlink_exit, + TP_PROTO(struct dentry *dentry, int ret), + + TP_ARGS(dentry, ret), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( int, ret ) + ), + + TP_fast_assign( + tp_assign(dev, dentry->d_inode->i_sb->s_dev) + tp_assign(ino, dentry->d_inode->i_ino) + tp_assign(ret, ret) + ), + + TP_printk("dev %d,%d ino %lu ret %d", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + __entry->ret) +) + +DECLARE_EVENT_CLASS(ext4__truncate, + TP_PROTO(struct inode *inode), + + TP_ARGS(inode), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( __u64, blocks ) + ), + + TP_fast_assign( + tp_assign(dev, inode->i_sb->s_dev) + tp_assign(ino, inode->i_ino) + tp_assign(blocks, inode->i_blocks) + ), + + TP_printk("dev %d,%d ino %lu blocks %llu", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, __entry->blocks) +) + +DEFINE_EVENT(ext4__truncate, ext4_truncate_enter, + + TP_PROTO(struct inode *inode), + + TP_ARGS(inode) +) + +DEFINE_EVENT(ext4__truncate, ext4_truncate_exit, + + TP_PROTO(struct inode *inode), + + TP_ARGS(inode) +) + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,2,0)) +/* 'ux' is the uninitialized extent. */ +TRACE_EVENT(ext4_ext_convert_to_initialized_enter, + TP_PROTO(struct inode *inode, struct ext4_map_blocks *map, + struct ext4_extent *ux), + + TP_ARGS(inode, map, ux), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( ext4_lblk_t, m_lblk ) + __field( unsigned, m_len ) + __field( ext4_lblk_t, u_lblk ) + __field( unsigned, u_len ) + __field( ext4_fsblk_t, u_pblk ) + ), + + TP_fast_assign( + tp_assign(dev, inode->i_sb->s_dev) + tp_assign(ino, inode->i_ino) + tp_assign(m_lblk, map->m_lblk) + tp_assign(m_len, map->m_len) + tp_assign(u_lblk, le32_to_cpu(ux->ee_block)) + tp_assign(u_len, ext4_ext_get_actual_len(ux)) + tp_assign(u_pblk, ext4_ext_pblock(ux)) + ), + + TP_printk("dev %d,%d ino %lu m_lblk %u m_len %u u_lblk %u u_len %u " + "u_pblk %llu", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + __entry->m_lblk, __entry->m_len, + __entry->u_lblk, __entry->u_len, __entry->u_pblk) +) + +/* + * 'ux' is the uninitialized extent. + * 'ix' is the initialized extent to which blocks are transferred. + */ +TRACE_EVENT(ext4_ext_convert_to_initialized_fastpath, + TP_PROTO(struct inode *inode, struct ext4_map_blocks *map, + struct ext4_extent *ux, struct ext4_extent *ix), + + TP_ARGS(inode, map, ux, ix), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( ext4_lblk_t, m_lblk ) + __field( unsigned, m_len ) + __field( ext4_lblk_t, u_lblk ) + __field( unsigned, u_len ) + __field( ext4_fsblk_t, u_pblk ) + __field( ext4_lblk_t, i_lblk ) + __field( unsigned, i_len ) + __field( ext4_fsblk_t, i_pblk ) + ), + + TP_fast_assign( + tp_assign(dev, inode->i_sb->s_dev) + tp_assign(ino, inode->i_ino) + tp_assign(m_lblk, map->m_lblk) + tp_assign(m_len, map->m_len) + tp_assign(u_lblk, le32_to_cpu(ux->ee_block)) + tp_assign(u_len, ext4_ext_get_actual_len(ux)) + tp_assign(u_pblk, ext4_ext_pblock(ux)) + tp_assign(i_lblk, le32_to_cpu(ix->ee_block)) + tp_assign(i_len, ext4_ext_get_actual_len(ix)) + tp_assign(i_pblk, ext4_ext_pblock(ix)) + ), + + TP_printk("dev %d,%d ino %lu m_lblk %u m_len %u " + "u_lblk %u u_len %u u_pblk %llu " + "i_lblk %u i_len %u i_pblk %llu ", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + __entry->m_lblk, __entry->m_len, + __entry->u_lblk, __entry->u_len, __entry->u_pblk, + __entry->i_lblk, __entry->i_len, __entry->i_pblk) +) +#endif + +DECLARE_EVENT_CLASS(ext4__map_blocks_enter, + TP_PROTO(struct inode *inode, ext4_lblk_t lblk, + unsigned int len, unsigned int flags), + + TP_ARGS(inode, lblk, len, flags), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( ext4_lblk_t, lblk ) + __field( unsigned int, len ) + __field( unsigned int, flags ) + ), + + TP_fast_assign( + tp_assign(dev, inode->i_sb->s_dev) + tp_assign(ino, inode->i_ino) + tp_assign(lblk, lblk) + tp_assign(len, len) + tp_assign(flags, flags) + ), + + TP_printk("dev %d,%d ino %lu lblk %u len %u flags %u", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + __entry->lblk, __entry->len, __entry->flags) +) + +DEFINE_EVENT(ext4__map_blocks_enter, ext4_ext_map_blocks_enter, + TP_PROTO(struct inode *inode, ext4_lblk_t lblk, + unsigned len, unsigned flags), + + TP_ARGS(inode, lblk, len, flags) +) + +DEFINE_EVENT(ext4__map_blocks_enter, ext4_ind_map_blocks_enter, + TP_PROTO(struct inode *inode, ext4_lblk_t lblk, + unsigned len, unsigned flags), + + TP_ARGS(inode, lblk, len, flags) +) + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,11,0)) + +DECLARE_EVENT_CLASS(ext4__map_blocks_exit, + TP_PROTO(struct inode *inode, unsigned flags, struct ext4_map_blocks *map, + int ret), + + TP_ARGS(inode, flags, map, ret), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( unsigned int, flags ) + __field( ext4_fsblk_t, pblk ) + __field( ext4_lblk_t, lblk ) + __field( unsigned int, len ) + __field( unsigned int, mflags ) + __field( int, ret ) + ), + + TP_fast_assign( + tp_assign(dev, inode->i_sb->s_dev) + tp_assign(ino, inode->i_ino) + tp_assign(flags, flags) + tp_assign(pblk, map->m_pblk) + tp_assign(lblk, map->m_lblk) + tp_assign(len, map->m_len) + tp_assign(mflags, map->m_flags) + tp_assign(ret, ret) + ), + + TP_printk("dev %d,%d ino %lu flags %s lblk %u pblk %llu len %u " + "mflags %s ret %d", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + show_map_flags(__entry->flags), __entry->lblk, __entry->pblk, + __entry->len, show_mflags(__entry->mflags), __entry->ret) +) + +DEFINE_EVENT(ext4__map_blocks_exit, ext4_ext_map_blocks_exit, + TP_PROTO(struct inode *inode, unsigned flags, + struct ext4_map_blocks *map, int ret), + + TP_ARGS(inode, flags, map, ret) +) + +DEFINE_EVENT(ext4__map_blocks_exit, ext4_ind_map_blocks_exit, + TP_PROTO(struct inode *inode, unsigned flags, + struct ext4_map_blocks *map, int ret), + + TP_ARGS(inode, flags, map, ret) +) + +#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3,8,0)) + +DECLARE_EVENT_CLASS(ext4__map_blocks_exit, + TP_PROTO(struct inode *inode, struct ext4_map_blocks *map, int ret), + + TP_ARGS(inode, map, ret), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( ext4_fsblk_t, pblk ) + __field( ext4_lblk_t, lblk ) + __field( unsigned int, len ) + __field( unsigned int, flags ) + __field( int, ret ) + ), + + TP_fast_assign( + tp_assign(dev, inode->i_sb->s_dev) + tp_assign(ino, inode->i_ino) + tp_assign(pblk, map->m_pblk) + tp_assign(lblk, map->m_lblk) + tp_assign(len, map->m_len) + tp_assign(flags, map->m_flags) + tp_assign(ret, ret) + ), + + TP_printk("dev %d,%d ino %lu lblk %u pblk %llu len %u flags %x ret %d", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + __entry->lblk, __entry->pblk, + __entry->len, __entry->flags, __entry->ret) +) + +DEFINE_EVENT(ext4__map_blocks_exit, ext4_ext_map_blocks_exit, + TP_PROTO(struct inode *inode, struct ext4_map_blocks *map, int ret), + + TP_ARGS(inode, map, ret) +) + +DEFINE_EVENT(ext4__map_blocks_exit, ext4_ind_map_blocks_exit, + TP_PROTO(struct inode *inode, struct ext4_map_blocks *map, int ret), + + TP_ARGS(inode, map, ret) +) + +#else /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,8,0)) */ + +DECLARE_EVENT_CLASS(ext4__map_blocks_exit, + TP_PROTO(struct inode *inode, ext4_lblk_t lblk, + ext4_fsblk_t pblk, unsigned int len, int ret), + + TP_ARGS(inode, lblk, pblk, len, ret), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( ext4_fsblk_t, pblk ) + __field( ext4_lblk_t, lblk ) + __field( unsigned int, len ) + __field( int, ret ) + ), + + TP_fast_assign( + tp_assign(dev, inode->i_sb->s_dev) + tp_assign(ino, inode->i_ino) + tp_assign(pblk, pblk) + tp_assign(lblk, lblk) + tp_assign(len, len) + tp_assign(ret, ret) + ), + + TP_printk("dev %d,%d ino %lu lblk %u pblk %llu len %u ret %d", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + __entry->lblk, __entry->pblk, + __entry->len, __entry->ret) +) + +DEFINE_EVENT(ext4__map_blocks_exit, ext4_ext_map_blocks_exit, + TP_PROTO(struct inode *inode, ext4_lblk_t lblk, + ext4_fsblk_t pblk, unsigned len, int ret), + + TP_ARGS(inode, lblk, pblk, len, ret) +) + +DEFINE_EVENT(ext4__map_blocks_exit, ext4_ind_map_blocks_exit, + TP_PROTO(struct inode *inode, ext4_lblk_t lblk, + ext4_fsblk_t pblk, unsigned len, int ret), + + TP_ARGS(inode, lblk, pblk, len, ret) +) + +#endif /* #else #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,8,0)) */ + +TRACE_EVENT(ext4_ext_load_extent, + TP_PROTO(struct inode *inode, ext4_lblk_t lblk, ext4_fsblk_t pblk), + + TP_ARGS(inode, lblk, pblk), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( ext4_fsblk_t, pblk ) + __field( ext4_lblk_t, lblk ) + ), + + TP_fast_assign( + tp_assign(dev, inode->i_sb->s_dev) + tp_assign(ino, inode->i_ino) + tp_assign(pblk, pblk) + tp_assign(lblk, lblk) + ), + + TP_printk("dev %d,%d ino %lu lblk %u pblk %llu", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + __entry->lblk, __entry->pblk) +) + +TRACE_EVENT(ext4_load_inode, + TP_PROTO(struct inode *inode), + + TP_ARGS(inode), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + ), + + TP_fast_assign( + tp_assign(dev, inode->i_sb->s_dev) + tp_assign(ino, inode->i_ino) + ), + + TP_printk("dev %d,%d ino %ld", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino) +) +#endif + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,11,0)) + +TRACE_EVENT(ext4_journal_start, + TP_PROTO(struct super_block *sb, int blocks, int rsv_blocks, + unsigned long IP), + + TP_ARGS(sb, blocks, rsv_blocks, IP), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field(unsigned long, ip ) + __field( int, blocks ) + __field( int, rsv_blocks ) + ), + + TP_fast_assign( + tp_assign(dev, sb->s_dev) + tp_assign(ip, IP) + tp_assign(blocks, blocks) + tp_assign(rsv_blocks, rsv_blocks) + ), + + TP_printk("dev %d,%d blocks, %d rsv_blocks, %d caller %pF", + MAJOR(__entry->dev), MINOR(__entry->dev), + __entry->blocks, __entry->rsv_blocks, (void *)__entry->ip) +) + +TRACE_EVENT(ext4_journal_start_reserved, + TP_PROTO(struct super_block *sb, int blocks, unsigned long IP), + + TP_ARGS(sb, blocks, IP), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field(unsigned long, ip ) + __field( int, blocks ) + ), + + TP_fast_assign( + tp_assign(dev, sb->s_dev) + tp_assign(ip, IP) + tp_assign(blocks, blocks) + ), + + TP_printk("dev %d,%d blocks, %d caller %pF", + MAJOR(__entry->dev), MINOR(__entry->dev), + __entry->blocks, (void *)__entry->ip) +) + +#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3,1,0)) + +TRACE_EVENT(ext4_journal_start, + TP_PROTO(struct super_block *sb, int nblocks, unsigned long IP), + + TP_ARGS(sb, nblocks, IP), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field(unsigned long, ip ) + __field( int, nblocks ) + ), + + TP_fast_assign( + tp_assign(dev, sb->s_dev) + tp_assign(ip, IP) + tp_assign(nblocks, nblocks) + ), + + TP_printk("dev %d,%d nblocks %d caller %pF", + MAJOR(__entry->dev), MINOR(__entry->dev), + __entry->nblocks, (void *)__entry->ip) +) + +DECLARE_EVENT_CLASS(ext4__trim, + TP_PROTO(struct super_block *sb, + ext4_group_t group, + ext4_grpblk_t start, + ext4_grpblk_t len), + + TP_ARGS(sb, group, start, len), + + TP_STRUCT__entry( + __field( int, dev_major ) + __field( int, dev_minor ) + __field( __u32, group ) + __field( int, start ) + __field( int, len ) + ), + + TP_fast_assign( + tp_assign(dev_major, MAJOR(sb->s_dev)) + tp_assign(dev_minor, MINOR(sb->s_dev)) + tp_assign(group, group) + tp_assign(start, start) + tp_assign(len, len) + ), + + TP_printk("dev %d,%d group %u, start %d, len %d", + __entry->dev_major, __entry->dev_minor, + __entry->group, __entry->start, __entry->len) +) + +DEFINE_EVENT(ext4__trim, ext4_trim_extent, + + TP_PROTO(struct super_block *sb, + ext4_group_t group, + ext4_grpblk_t start, + ext4_grpblk_t len), + + TP_ARGS(sb, group, start, len) +) + +DEFINE_EVENT(ext4__trim, ext4_trim_all_free, + + TP_PROTO(struct super_block *sb, + ext4_group_t group, + ext4_grpblk_t start, + ext4_grpblk_t len), + + TP_ARGS(sb, group, start, len) +) +#endif + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,2,0)) + +TRACE_EVENT(ext4_ext_handle_uninitialized_extents, +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,8,0)) + TP_PROTO(struct inode *inode, struct ext4_map_blocks *map, int flags, + unsigned int allocated, ext4_fsblk_t newblock), + + TP_ARGS(inode, map, flags, allocated, newblock), +#else /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,8,0)) */ + TP_PROTO(struct inode *inode, struct ext4_map_blocks *map, + unsigned int allocated, ext4_fsblk_t newblock), + + TP_ARGS(inode, map, allocated, newblock), +#endif /* #else #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,8,0)) */ + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( int, flags ) + __field( ext4_lblk_t, lblk ) + __field( ext4_fsblk_t, pblk ) + __field( unsigned int, len ) + __field( unsigned int, allocated ) + __field( ext4_fsblk_t, newblk ) + ), + + TP_fast_assign( + tp_assign(dev, inode->i_sb->s_dev) + tp_assign(ino, inode->i_ino) +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,8,0)) + tp_assign(flags, flags) +#else /* #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,8,0)) */ + tp_assign(flags, map->m_flags) +#endif /* #else #if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,8,0)) */ + tp_assign(lblk, map->m_lblk) + tp_assign(pblk, map->m_pblk) + tp_assign(len, map->m_len) + tp_assign(allocated, allocated) + tp_assign(newblk, newblock) + ), + + TP_printk("dev %d,%d ino %lu m_lblk %u m_pblk %llu m_len %u flags %d" + "allocated %d newblock %llu", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + (unsigned) __entry->lblk, (unsigned long long) __entry->pblk, + __entry->len, __entry->flags, + (unsigned int) __entry->allocated, + (unsigned long long) __entry->newblk) +) + +TRACE_EVENT(ext4_get_implied_cluster_alloc_exit, + TP_PROTO(struct super_block *sb, struct ext4_map_blocks *map, int ret), + + TP_ARGS(sb, map, ret), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( unsigned int, flags ) + __field( ext4_lblk_t, lblk ) + __field( ext4_fsblk_t, pblk ) + __field( unsigned int, len ) + __field( int, ret ) + ), + + TP_fast_assign( + tp_assign(dev, sb->s_dev) + tp_assign(flags, map->m_flags) + tp_assign(lblk, map->m_lblk) + tp_assign(pblk, map->m_pblk) + tp_assign(len, map->m_len) + tp_assign(ret, ret) + ), + + TP_printk("dev %d,%d m_lblk %u m_pblk %llu m_len %u m_flags %u ret %d", + MAJOR(__entry->dev), MINOR(__entry->dev), + __entry->lblk, (unsigned long long) __entry->pblk, + __entry->len, __entry->flags, __entry->ret) +) + +TRACE_EVENT(ext4_ext_put_in_cache, + TP_PROTO(struct inode *inode, ext4_lblk_t lblk, unsigned int len, + ext4_fsblk_t start), + + TP_ARGS(inode, lblk, len, start), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( ext4_lblk_t, lblk ) + __field( unsigned int, len ) + __field( ext4_fsblk_t, start ) + ), + + TP_fast_assign( + tp_assign(dev, inode->i_sb->s_dev) + tp_assign(ino, inode->i_ino) + tp_assign(lblk, lblk) + tp_assign(len, len) + tp_assign(start, start) + ), + + TP_printk("dev %d,%d ino %lu lblk %u len %u start %llu", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + (unsigned) __entry->lblk, + __entry->len, + (unsigned long long) __entry->start) +) + +TRACE_EVENT(ext4_ext_in_cache, + TP_PROTO(struct inode *inode, ext4_lblk_t lblk, int ret), + + TP_ARGS(inode, lblk, ret), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( ext4_lblk_t, lblk ) + __field( int, ret ) + ), + + TP_fast_assign( + tp_assign(dev, inode->i_sb->s_dev) + tp_assign(ino, inode->i_ino) + tp_assign(lblk, lblk) + tp_assign(ret, ret) + ), + + TP_printk("dev %d,%d ino %lu lblk %u ret %d", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + (unsigned) __entry->lblk, + __entry->ret) + +) + +TRACE_EVENT(ext4_find_delalloc_range, + TP_PROTO(struct inode *inode, ext4_lblk_t from, ext4_lblk_t to, + int reverse, int found, ext4_lblk_t found_blk), + + TP_ARGS(inode, from, to, reverse, found, found_blk), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( ext4_lblk_t, from ) + __field( ext4_lblk_t, to ) + __field( int, reverse ) + __field( int, found ) + __field( ext4_lblk_t, found_blk ) + ), + + TP_fast_assign( + tp_assign(dev, inode->i_sb->s_dev) + tp_assign(ino, inode->i_ino) + tp_assign(from, from) + tp_assign(to, to) + tp_assign(reverse, reverse) + tp_assign(found, found) + tp_assign(found_blk, found_blk) + ), + + TP_printk("dev %d,%d ino %lu from %u to %u reverse %d found %d " + "(blk = %u)", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + (unsigned) __entry->from, (unsigned) __entry->to, + __entry->reverse, __entry->found, + (unsigned) __entry->found_blk) +) + +TRACE_EVENT(ext4_get_reserved_cluster_alloc, + TP_PROTO(struct inode *inode, ext4_lblk_t lblk, unsigned int len), + + TP_ARGS(inode, lblk, len), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( ext4_lblk_t, lblk ) + __field( unsigned int, len ) + ), + + TP_fast_assign( + tp_assign(dev, inode->i_sb->s_dev) + tp_assign(ino, inode->i_ino) + tp_assign(lblk, lblk) + tp_assign(len, len) + ), + + TP_printk("dev %d,%d ino %lu lblk %u len %u", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + (unsigned) __entry->lblk, + __entry->len) +) + +TRACE_EVENT(ext4_ext_show_extent, + TP_PROTO(struct inode *inode, ext4_lblk_t lblk, ext4_fsblk_t pblk, + unsigned short len), + + TP_ARGS(inode, lblk, pblk, len), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( ext4_fsblk_t, pblk ) + __field( ext4_lblk_t, lblk ) + __field( unsigned short, len ) + ), + + TP_fast_assign( + tp_assign(dev, inode->i_sb->s_dev) + tp_assign(ino, inode->i_ino) + tp_assign(pblk, pblk) + tp_assign(lblk, lblk) + tp_assign(len, len) + ), + + TP_printk("dev %d,%d ino %lu lblk %u pblk %llu len %u", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + (unsigned) __entry->lblk, + (unsigned long long) __entry->pblk, + (unsigned short) __entry->len) +) + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,11,0)) + +TRACE_EVENT(ext4_remove_blocks, + TP_PROTO(struct inode *inode, struct ext4_extent *ex, + ext4_lblk_t from, ext4_fsblk_t to, + long long partial_cluster), + + TP_ARGS(inode, ex, from, to, partial_cluster), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( ext4_lblk_t, from ) + __field( ext4_lblk_t, to ) + __field( long long, partial ) + __field( ext4_fsblk_t, ee_pblk ) + __field( ext4_lblk_t, ee_lblk ) + __field( unsigned short, ee_len ) + ), + + TP_fast_assign( + tp_assign(dev, inode->i_sb->s_dev) + tp_assign(ino, inode->i_ino) + tp_assign(from, from) + tp_assign(to, to) + tp_assign(partial, partial_cluster) + tp_assign(ee_pblk, ext4_ext_pblock(ex)) + tp_assign(ee_lblk, le32_to_cpu(ex->ee_block)) + tp_assign(ee_len, ext4_ext_get_actual_len(ex)) + ), + + TP_printk("dev %d,%d ino %lu extent [%u(%llu), %u]" + "from %u to %u partial_cluster %lld", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + (unsigned) __entry->ee_lblk, + (unsigned long long) __entry->ee_pblk, + (unsigned short) __entry->ee_len, + (unsigned) __entry->from, + (unsigned) __entry->to, + (long long) __entry->partial) +) + +#else + +TRACE_EVENT(ext4_remove_blocks, + TP_PROTO(struct inode *inode, struct ext4_extent *ex, + ext4_lblk_t from, ext4_fsblk_t to, + ext4_fsblk_t partial_cluster), + + TP_ARGS(inode, ex, from, to, partial_cluster), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( ext4_lblk_t, from ) + __field( ext4_lblk_t, to ) + __field( ext4_fsblk_t, partial ) + __field( ext4_fsblk_t, ee_pblk ) + __field( ext4_lblk_t, ee_lblk ) + __field( unsigned short, ee_len ) + ), + + TP_fast_assign( + tp_assign(dev, inode->i_sb->s_dev) + tp_assign(ino, inode->i_ino) + tp_assign(from, from) + tp_assign(to, to) + tp_assign(partial, partial_cluster) + tp_assign(ee_pblk, ext4_ext_pblock(ex)) + tp_assign(ee_lblk, cpu_to_le32(ex->ee_block)) + tp_assign(ee_len, ext4_ext_get_actual_len(ex)) + ), + + TP_printk("dev %d,%d ino %lu extent [%u(%llu), %u]" + "from %u to %u partial_cluster %u", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + (unsigned) __entry->ee_lblk, + (unsigned long long) __entry->ee_pblk, + (unsigned short) __entry->ee_len, + (unsigned) __entry->from, + (unsigned) __entry->to, + (unsigned) __entry->partial) +) + +#endif + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,11,0)) + +TRACE_EVENT(ext4_ext_rm_leaf, + TP_PROTO(struct inode *inode, ext4_lblk_t start, + struct ext4_extent *ex, + long long partial_cluster), + + TP_ARGS(inode, start, ex, partial_cluster), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( long long, partial ) + __field( ext4_lblk_t, start ) + __field( ext4_lblk_t, ee_lblk ) + __field( ext4_fsblk_t, ee_pblk ) + __field( short, ee_len ) + ), + + TP_fast_assign( + tp_assign(dev, inode->i_sb->s_dev) + tp_assign(ino, inode->i_ino) + tp_assign(partial, partial_cluster) + tp_assign(start, start) + tp_assign(ee_lblk, le32_to_cpu(ex->ee_block)) + tp_assign(ee_pblk, ext4_ext_pblock(ex)) + tp_assign(ee_len, ext4_ext_get_actual_len(ex)) + ), + + TP_printk("dev %d,%d ino %lu start_lblk %u last_extent [%u(%llu), %u]" + "partial_cluster %lld", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + (unsigned) __entry->start, + (unsigned) __entry->ee_lblk, + (unsigned long long) __entry->ee_pblk, + (unsigned short) __entry->ee_len, + (long long) __entry->partial) +) + +#else + +TRACE_EVENT(ext4_ext_rm_leaf, + TP_PROTO(struct inode *inode, ext4_lblk_t start, + struct ext4_extent *ex, ext4_fsblk_t partial_cluster), + + TP_ARGS(inode, start, ex, partial_cluster), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( ext4_fsblk_t, partial ) + __field( ext4_lblk_t, start ) + __field( ext4_lblk_t, ee_lblk ) + __field( ext4_fsblk_t, ee_pblk ) + __field( short, ee_len ) + ), + + TP_fast_assign( + tp_assign(dev, inode->i_sb->s_dev) + tp_assign(ino, inode->i_ino) + tp_assign(partial, partial_cluster) + tp_assign(start, start) + tp_assign(ee_lblk, le32_to_cpu(ex->ee_block)) + tp_assign(ee_pblk, ext4_ext_pblock(ex)) + tp_assign(ee_len, ext4_ext_get_actual_len(ex)) + ), + + TP_printk("dev %d,%d ino %lu start_lblk %u last_extent [%u(%llu), %u]" + "partial_cluster %u", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + (unsigned) __entry->start, + (unsigned) __entry->ee_lblk, + (unsigned long long) __entry->ee_pblk, + (unsigned short) __entry->ee_len, + (unsigned) __entry->partial) +) + +#endif + +TRACE_EVENT(ext4_ext_rm_idx, + TP_PROTO(struct inode *inode, ext4_fsblk_t pblk), + + TP_ARGS(inode, pblk), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( ext4_fsblk_t, pblk ) + ), + + TP_fast_assign( + tp_assign(dev, inode->i_sb->s_dev) + tp_assign(ino, inode->i_ino) + tp_assign(pblk, pblk) + ), + + TP_printk("dev %d,%d ino %lu index_pblk %llu", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + (unsigned long long) __entry->pblk) +) + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,11,0)) + +TRACE_EVENT(ext4_ext_remove_space, + TP_PROTO(struct inode *inode, ext4_lblk_t start, + ext4_lblk_t end, int depth), + + TP_ARGS(inode, start, end, depth), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( ext4_lblk_t, start ) + __field( ext4_lblk_t, end ) + __field( int, depth ) + ), + + TP_fast_assign( + tp_assign(dev, inode->i_sb->s_dev) + tp_assign(ino, inode->i_ino) + tp_assign(start, start) + tp_assign(end, end) + tp_assign(depth, depth) + ), + + TP_printk("dev %d,%d ino %lu since %u end %u depth %d", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + (unsigned) __entry->start, + (unsigned) __entry->end, + __entry->depth) +) + +#else + +TRACE_EVENT(ext4_ext_remove_space, + TP_PROTO(struct inode *inode, ext4_lblk_t start, int depth), + + TP_ARGS(inode, start, depth), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( ext4_lblk_t, start ) + __field( int, depth ) + ), + + TP_fast_assign( + tp_assign(dev, inode->i_sb->s_dev) + tp_assign(ino, inode->i_ino) + tp_assign(start, start) + tp_assign(depth, depth) + ), + + TP_printk("dev %d,%d ino %lu since %u depth %d", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + (unsigned) __entry->start, + __entry->depth) +) + +#endif + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,11,0)) + +TRACE_EVENT(ext4_ext_remove_space_done, + TP_PROTO(struct inode *inode, ext4_lblk_t start, ext4_lblk_t end, + int depth, long long partial, __le16 eh_entries), + + TP_ARGS(inode, start, end, depth, partial, eh_entries), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( ext4_lblk_t, start ) + __field( ext4_lblk_t, end ) + __field( int, depth ) + __field( long long, partial ) + __field( unsigned short, eh_entries ) + ), + + TP_fast_assign( + tp_assign(dev, inode->i_sb->s_dev) + tp_assign(ino, inode->i_ino) + tp_assign(start, start) + tp_assign(end, end) + tp_assign(depth, depth) + tp_assign(partial, partial) + tp_assign(eh_entries, le16_to_cpu(eh_entries)) + ), + + TP_printk("dev %d,%d ino %lu since %u end %u depth %d partial %lld " + "remaining_entries %u", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + (unsigned) __entry->start, + (unsigned) __entry->end, + __entry->depth, + (long long) __entry->partial, + (unsigned short) __entry->eh_entries) +) + +#else + +TRACE_EVENT(ext4_ext_remove_space_done, + TP_PROTO(struct inode *inode, ext4_lblk_t start, int depth, + ext4_lblk_t partial, unsigned short eh_entries), + + TP_ARGS(inode, start, depth, partial, eh_entries), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( ext4_lblk_t, start ) + __field( int, depth ) + __field( ext4_lblk_t, partial ) + __field( unsigned short, eh_entries ) + ), + + TP_fast_assign( + tp_assign(dev, inode->i_sb->s_dev) + tp_assign(ino, inode->i_ino) + tp_assign(start, start) + tp_assign(depth, depth) + tp_assign(partial, partial) + tp_assign(eh_entries, eh_entries) + ), + + TP_printk("dev %d,%d ino %lu since %u depth %d partial %u " + "remaining_entries %u", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + (unsigned) __entry->start, + __entry->depth, + (unsigned) __entry->partial, + (unsigned short) __entry->eh_entries) +) + +#endif + +#endif + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,11,0)) + +TRACE_EVENT(ext4_es_insert_extent, + TP_PROTO(struct inode *inode, struct extent_status *es), + + TP_ARGS(inode, es), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( ext4_lblk_t, lblk ) + __field( ext4_lblk_t, len ) + __field( ext4_fsblk_t, pblk ) + __field( char, status ) + ), + + TP_fast_assign( + tp_assign(dev, inode->i_sb->s_dev) + tp_assign(ino, inode->i_ino) + tp_assign(lblk, es->es_lblk) + tp_assign(len, es->es_len) + tp_assign(pblk, ext4_es_pblock(es)) + tp_assign(status, ext4_es_status(es) >> 60) + ), + + TP_printk("dev %d,%d ino %lu es [%u/%u) mapped %llu status %s", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + __entry->lblk, __entry->len, + __entry->pblk, show_extent_status(__entry->status)) +) + +TRACE_EVENT(ext4_es_remove_extent, + TP_PROTO(struct inode *inode, ext4_lblk_t lblk, ext4_lblk_t len), + + TP_ARGS(inode, lblk, len), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( loff_t, lblk ) + __field( loff_t, len ) + ), + + TP_fast_assign( + tp_assign(dev, inode->i_sb->s_dev) + tp_assign(ino, inode->i_ino) + tp_assign(lblk, lblk) + tp_assign(len, len) + ), + + TP_printk("dev %d,%d ino %lu es [%lld/%lld)", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + __entry->lblk, __entry->len) +) + +TRACE_EVENT(ext4_es_find_delayed_extent_range_enter, + TP_PROTO(struct inode *inode, ext4_lblk_t lblk), + + TP_ARGS(inode, lblk), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( ext4_lblk_t, lblk ) + ), + + TP_fast_assign( + tp_assign(dev, inode->i_sb->s_dev) + tp_assign(ino, inode->i_ino) + tp_assign(lblk, lblk) + ), + + TP_printk("dev %d,%d ino %lu lblk %u", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, __entry->lblk) +) + +TRACE_EVENT(ext4_es_find_delayed_extent_range_exit, + TP_PROTO(struct inode *inode, struct extent_status *es), + + TP_ARGS(inode, es), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( ext4_lblk_t, lblk ) + __field( ext4_lblk_t, len ) + __field( ext4_fsblk_t, pblk ) + __field( char, status ) + ), + + TP_fast_assign( + tp_assign(dev, inode->i_sb->s_dev) + tp_assign(ino, inode->i_ino) + tp_assign(lblk, es->es_lblk) + tp_assign(len, es->es_len) + tp_assign(pblk, ext4_es_pblock(es)) + tp_assign(status, ext4_es_status(es) >> 60) + ), + + TP_printk("dev %d,%d ino %lu es [%u/%u) mapped %llu status %s", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, + __entry->lblk, __entry->len, + __entry->pblk, show_extent_status(__entry->status)) +) + +TRACE_EVENT(ext4_es_lookup_extent_enter, + TP_PROTO(struct inode *inode, ext4_lblk_t lblk), + + TP_ARGS(inode, lblk), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( ext4_lblk_t, lblk ) + ), + + TP_fast_assign( + tp_assign(dev, inode->i_sb->s_dev) + tp_assign(ino, inode->i_ino) + tp_assign(lblk, lblk) + ), + + TP_printk("dev %d,%d ino %lu lblk %u", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, __entry->lblk) +) + +TRACE_EVENT(ext4_es_lookup_extent_exit, + TP_PROTO(struct inode *inode, struct extent_status *es, + int found), + + TP_ARGS(inode, es, found), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( ino_t, ino ) + __field( ext4_lblk_t, lblk ) + __field( ext4_lblk_t, len ) + __field( ext4_fsblk_t, pblk ) + __field( char, status ) + __field( int, found ) + ), + + TP_fast_assign( + tp_assign(dev, inode->i_sb->s_dev) + tp_assign(ino, inode->i_ino) + tp_assign(lblk, es->es_lblk) + tp_assign(len, es->es_len) + tp_assign(pblk, ext4_es_pblock(es)) + tp_assign(status, ext4_es_status(es) >> 60) + tp_assign(found, found) + ), + + TP_printk("dev %d,%d ino %lu found %d [%u/%u) %llu %s", + MAJOR(__entry->dev), MINOR(__entry->dev), + (unsigned long) __entry->ino, __entry->found, + __entry->lblk, __entry->len, + __entry->found ? __entry->pblk : 0, + show_extent_status(__entry->found ? __entry->status : 0)) +) + +TRACE_EVENT(ext4_es_shrink_enter, + TP_PROTO(struct super_block *sb, int nr_to_scan, int cache_cnt), + + TP_ARGS(sb, nr_to_scan, cache_cnt), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( int, nr_to_scan ) + __field( int, cache_cnt ) + ), + + TP_fast_assign( + tp_assign(dev, sb->s_dev) + tp_assign(nr_to_scan, nr_to_scan) + tp_assign(cache_cnt, cache_cnt) + ), + + TP_printk("dev %d,%d nr_to_scan %d cache_cnt %d", + MAJOR(__entry->dev), MINOR(__entry->dev), + __entry->nr_to_scan, __entry->cache_cnt) +) + +TRACE_EVENT(ext4_es_shrink_exit, + TP_PROTO(struct super_block *sb, int shrunk_nr, int cache_cnt), + + TP_ARGS(sb, shrunk_nr, cache_cnt), + + TP_STRUCT__entry( + __field( dev_t, dev ) + __field( int, shrunk_nr ) + __field( int, cache_cnt ) + ), + + TP_fast_assign( + tp_assign(dev, sb->s_dev) + tp_assign(shrunk_nr, shrunk_nr) + tp_assign(cache_cnt, cache_cnt) + ), + + TP_printk("dev %d,%d shrunk_nr %d cache_cnt %d", + MAJOR(__entry->dev), MINOR(__entry->dev), + __entry->shrunk_nr, __entry->cache_cnt) +) + +#endif + +#endif /* _TRACE_EXT4_H */ + +/* This part must be outside protection */ +#include "../../../probes/define_trace.h" --- linux-3.11.0.orig/ubuntu/lttng-modules/instrumentation/events/lttng-module/arch/x86/kvm/trace.h +++ linux-3.11.0/ubuntu/lttng-modules/instrumentation/events/lttng-module/arch/x86/kvm/trace.h @@ -0,0 +1,833 @@ +#if !defined(_TRACE_KVM_H) || defined(TRACE_HEADER_MULTI_READ) +#define _TRACE_KVM_H + +#include +#include +#include +#include +#include +#include <../arch/x86/kvm/lapic.h> +#include <../arch/x86/kvm/kvm_cache_regs.h> + +#undef TRACE_SYSTEM +#define TRACE_SYSTEM kvm + +/* + * Tracepoint for guest mode entry. + */ +TRACE_EVENT(kvm_entry, + TP_PROTO(unsigned int vcpu_id), + TP_ARGS(vcpu_id), + + TP_STRUCT__entry( + __field( unsigned int, vcpu_id ) + ), + + TP_fast_assign( + tp_assign(vcpu_id, vcpu_id) + ), + + TP_printk("vcpu %u", __entry->vcpu_id) +) + +/* + * Tracepoint for hypercall. + */ +TRACE_EVENT(kvm_hypercall, + TP_PROTO(unsigned long nr, unsigned long a0, unsigned long a1, + unsigned long a2, unsigned long a3), + TP_ARGS(nr, a0, a1, a2, a3), + + TP_STRUCT__entry( + __field( unsigned long, nr ) + __field( unsigned long, a0 ) + __field( unsigned long, a1 ) + __field( unsigned long, a2 ) + __field( unsigned long, a3 ) + ), + + TP_fast_assign( + tp_assign(nr, nr) + tp_assign(a0, a0) + tp_assign(a1, a1) + tp_assign(a2, a2) + tp_assign(a3, a3) + ), + + TP_printk("nr 0x%lx a0 0x%lx a1 0x%lx a2 0x%lx a3 0x%lx", + __entry->nr, __entry->a0, __entry->a1, __entry->a2, + __entry->a3) +) + +/* + * Tracepoint for hypercall. + */ +TRACE_EVENT(kvm_hv_hypercall, + TP_PROTO(__u16 code, bool fast, __u16 rep_cnt, __u16 rep_idx, + __u64 ingpa, __u64 outgpa), + TP_ARGS(code, fast, rep_cnt, rep_idx, ingpa, outgpa), + + TP_STRUCT__entry( + __field( __u16, rep_cnt ) + __field( __u16, rep_idx ) + __field( __u64, ingpa ) + __field( __u64, outgpa ) + __field( __u16, code ) + __field( bool, fast ) + ), + + TP_fast_assign( + tp_assign(rep_cnt, rep_cnt) + tp_assign(rep_idx, rep_idx) + tp_assign(ingpa, ingpa) + tp_assign(outgpa, outgpa) + tp_assign(code, code) + tp_assign(fast, fast) + ), + + TP_printk("code 0x%x %s cnt 0x%x idx 0x%x in 0x%llx out 0x%llx", + __entry->code, __entry->fast ? "fast" : "slow", + __entry->rep_cnt, __entry->rep_idx, __entry->ingpa, + __entry->outgpa) +) + +/* + * Tracepoint for PIO. + */ +TRACE_EVENT(kvm_pio, + TP_PROTO(unsigned int rw, unsigned int port, unsigned int size, + unsigned int count), + TP_ARGS(rw, port, size, count), + + TP_STRUCT__entry( + __field( unsigned int, rw ) + __field( unsigned int, port ) + __field( unsigned int, size ) + __field( unsigned int, count ) + ), + + TP_fast_assign( + tp_assign(rw, rw) + tp_assign(port, port) + tp_assign(size, size) + tp_assign(count, count) + ), + + TP_printk("pio_%s at 0x%x size %d count %d", + __entry->rw ? "write" : "read", + __entry->port, __entry->size, __entry->count) +) + +/* + * Tracepoint for cpuid. + */ +TRACE_EVENT(kvm_cpuid, + TP_PROTO(unsigned int function, unsigned long rax, unsigned long rbx, + unsigned long rcx, unsigned long rdx), + TP_ARGS(function, rax, rbx, rcx, rdx), + + TP_STRUCT__entry( + __field( unsigned int, function ) + __field( unsigned long, rax ) + __field( unsigned long, rbx ) + __field( unsigned long, rcx ) + __field( unsigned long, rdx ) + ), + + TP_fast_assign( + tp_assign(function, function) + tp_assign(rax, rax) + tp_assign(rbx, rbx) + tp_assign(rcx, rcx) + tp_assign(rdx, rdx) + ), + + TP_printk("func %x rax %lx rbx %lx rcx %lx rdx %lx", + __entry->function, __entry->rax, + __entry->rbx, __entry->rcx, __entry->rdx) +) + +#define AREG(x) { APIC_##x, "APIC_" #x } + +#define kvm_trace_symbol_apic \ + AREG(ID), AREG(LVR), AREG(TASKPRI), AREG(ARBPRI), AREG(PROCPRI), \ + AREG(EOI), AREG(RRR), AREG(LDR), AREG(DFR), AREG(SPIV), AREG(ISR), \ + AREG(TMR), AREG(IRR), AREG(ESR), AREG(ICR), AREG(ICR2), AREG(LVTT), \ + AREG(LVTTHMR), AREG(LVTPC), AREG(LVT0), AREG(LVT1), AREG(LVTERR), \ + AREG(TMICT), AREG(TMCCT), AREG(TDCR), AREG(SELF_IPI), AREG(EFEAT), \ + AREG(ECTRL) +/* + * Tracepoint for apic access. + */ +TRACE_EVENT(kvm_apic, + TP_PROTO(unsigned int rw, unsigned int reg, unsigned int val), + TP_ARGS(rw, reg, val), + + TP_STRUCT__entry( + __field( unsigned int, rw ) + __field( unsigned int, reg ) + __field( unsigned int, val ) + ), + + TP_fast_assign( + tp_assign(rw, rw) + tp_assign(reg, reg) + tp_assign(val, val) + ), + + TP_printk("apic_%s %s = 0x%x", + __entry->rw ? "write" : "read", + __print_symbolic(__entry->reg, kvm_trace_symbol_apic), + __entry->val) +) + +#define trace_kvm_apic_read(reg, val) trace_kvm_apic(0, reg, val) +#define trace_kvm_apic_write(reg, val) trace_kvm_apic(1, reg, val) + +#define KVM_ISA_VMX 1 +#define KVM_ISA_SVM 2 + +/* + * Tracepoint for kvm guest exit: + */ +TRACE_EVENT(kvm_exit, + TP_PROTO(unsigned int exit_reason, struct kvm_vcpu *vcpu, u32 isa, u64 info1, u64 info2), + TP_ARGS(exit_reason, vcpu, isa, info1, info2), + + TP_STRUCT__entry( + __field( unsigned int, exit_reason ) + __field( unsigned long, guest_rip ) + __field( u32, isa ) + __field( u64, info1 ) + __field( u64, info2 ) + ), + + TP_fast_assign( + tp_assign(exit_reason, exit_reason) + tp_assign(guest_rip, kvm_rip_read(vcpu)) + tp_assign(isa, isa) + kvm_x86_ops->get_exit_info(vcpu, &info1, + &info2); + tp_assign(info1, info1) + tp_assign(info2, info2) + ), + + TP_printk("reason %s rip info %llx %llx", + (__entry->isa == KVM_ISA_VMX) ? + __print_symbolic(__entry->exit_reason, VMX_EXIT_REASONS) : + __print_symbolic(__entry->exit_reason, SVM_EXIT_REASONS), + /* __entry->guest_rip,*/ __entry->info1, __entry->info2) +) + +/* + * Tracepoint for kvm interrupt injection: + */ +TRACE_EVENT(kvm_inj_virq, + TP_PROTO(unsigned int irq), + TP_ARGS(irq), + + TP_STRUCT__entry( + __field( unsigned int, irq ) + ), + + TP_fast_assign( + tp_assign(irq, irq) + ), + + TP_printk("irq %u", __entry->irq) +) + +#define EXS(x) { x##_VECTOR, "#" #x } + +#define kvm_trace_sym_exc \ + EXS(DE), EXS(DB), EXS(BP), EXS(OF), EXS(BR), EXS(UD), EXS(NM), \ + EXS(DF), EXS(TS), EXS(NP), EXS(SS), EXS(GP), EXS(PF), \ + EXS(MF), EXS(MC) + +/* + * Tracepoint for kvm interrupt injection: + */ +TRACE_EVENT(kvm_inj_exception, + TP_PROTO(unsigned exception, bool has_error, unsigned error_code), + TP_ARGS(exception, has_error, error_code), + + TP_STRUCT__entry( + __field( u8, exception ) + __field( u8, has_error ) + __field( u32, error_code ) + ), + + TP_fast_assign( + tp_assign(exception, exception) + tp_assign(has_error, has_error) + tp_assign(error_code, error_code) + ), + + TP_printk("%s (0x%x)", + __print_symbolic(__entry->exception, kvm_trace_sym_exc), + /* FIXME: don't print error_code if not present */ + __entry->has_error ? __entry->error_code : 0) +) + +/* + * Tracepoint for page fault. + */ +TRACE_EVENT(kvm_page_fault, + TP_PROTO(unsigned long fault_address, unsigned int error_code), + TP_ARGS(fault_address, error_code), + + TP_STRUCT__entry( + __field( unsigned long, fault_address ) + __field( unsigned int, error_code ) + ), + + TP_fast_assign( + tp_assign(fault_address, fault_address) + tp_assign(error_code, error_code) + ), + + TP_printk("address %lx error_code %x", + __entry->fault_address, __entry->error_code) +) + +/* + * Tracepoint for guest MSR access. + */ +TRACE_EVENT(kvm_msr, + TP_PROTO(unsigned write, u32 ecx, u64 data, bool exception), + TP_ARGS(write, ecx, data, exception), + + TP_STRUCT__entry( + __field( unsigned, write ) + __field( u32, ecx ) + __field( u64, data ) + __field( u8, exception ) + ), + + TP_fast_assign( + tp_assign(write, write) + tp_assign(ecx, ecx) + tp_assign(data, data) + tp_assign(exception, exception) + ), + + TP_printk("msr_%s %x = 0x%llx%s", + __entry->write ? "write" : "read", + __entry->ecx, __entry->data, + __entry->exception ? " (#GP)" : "") +) + +#define trace_kvm_msr_read(ecx, data) trace_kvm_msr(0, ecx, data, false) +#define trace_kvm_msr_write(ecx, data) trace_kvm_msr(1, ecx, data, false) +#define trace_kvm_msr_read_ex(ecx) trace_kvm_msr(0, ecx, 0, true) +#define trace_kvm_msr_write_ex(ecx, data) trace_kvm_msr(1, ecx, data, true) + +/* + * Tracepoint for guest CR access. + */ +TRACE_EVENT(kvm_cr, + TP_PROTO(unsigned int rw, unsigned int cr, unsigned long val), + TP_ARGS(rw, cr, val), + + TP_STRUCT__entry( + __field( unsigned int, rw ) + __field( unsigned int, cr ) + __field( unsigned long, val ) + ), + + TP_fast_assign( + tp_assign(rw, rw) + tp_assign(cr, cr) + tp_assign(val, val) + ), + + TP_printk("cr_%s %x = 0x%lx", + __entry->rw ? "write" : "read", + __entry->cr, __entry->val) +) + +#define trace_kvm_cr_read(cr, val) trace_kvm_cr(0, cr, val) +#define trace_kvm_cr_write(cr, val) trace_kvm_cr(1, cr, val) + +TRACE_EVENT(kvm_pic_set_irq, + TP_PROTO(__u8 chip, __u8 pin, __u8 elcr, __u8 imr, bool coalesced), + TP_ARGS(chip, pin, elcr, imr, coalesced), + + TP_STRUCT__entry( + __field( __u8, chip ) + __field( __u8, pin ) + __field( __u8, elcr ) + __field( __u8, imr ) + __field( bool, coalesced ) + ), + + TP_fast_assign( + tp_assign(chip, chip) + tp_assign(pin, pin) + tp_assign(elcr, elcr) + tp_assign(imr, imr) + tp_assign(coalesced, coalesced) + ), + + TP_printk("chip %u pin %u (%s%s)%s", + __entry->chip, __entry->pin, + (__entry->elcr & (1 << __entry->pin)) ? "level":"edge", + (__entry->imr & (1 << __entry->pin)) ? "|masked":"", + __entry->coalesced ? " (coalesced)" : "") +) + +#define kvm_apic_dst_shorthand \ + {0x0, "dst"}, \ + {0x1, "self"}, \ + {0x2, "all"}, \ + {0x3, "all-but-self"} + +TRACE_EVENT(kvm_apic_ipi, + TP_PROTO(__u32 icr_low, __u32 dest_id), + TP_ARGS(icr_low, dest_id), + + TP_STRUCT__entry( + __field( __u32, icr_low ) + __field( __u32, dest_id ) + ), + + TP_fast_assign( + tp_assign(icr_low, icr_low) + tp_assign(dest_id, dest_id) + ), + + TP_printk("dst %x vec %u (%s|%s|%s|%s|%s)", + __entry->dest_id, (u8)__entry->icr_low, + __print_symbolic((__entry->icr_low >> 8 & 0x7), + kvm_deliver_mode), + (__entry->icr_low & (1<<11)) ? "logical" : "physical", + (__entry->icr_low & (1<<14)) ? "assert" : "de-assert", + (__entry->icr_low & (1<<15)) ? "level" : "edge", + __print_symbolic((__entry->icr_low >> 18 & 0x3), + kvm_apic_dst_shorthand)) +) + +TRACE_EVENT(kvm_apic_accept_irq, + TP_PROTO(__u32 apicid, __u16 dm, __u8 tm, __u8 vec, bool coalesced), + TP_ARGS(apicid, dm, tm, vec, coalesced), + + TP_STRUCT__entry( + __field( __u32, apicid ) + __field( __u16, dm ) + __field( __u8, tm ) + __field( __u8, vec ) + __field( bool, coalesced ) + ), + + TP_fast_assign( + tp_assign(apicid, apicid) + tp_assign(dm, dm) + tp_assign(tm, tm) + tp_assign(vec, vec) + tp_assign(coalesced, coalesced) + ), + + TP_printk("apicid %x vec %u (%s|%s)%s", + __entry->apicid, __entry->vec, + __print_symbolic((__entry->dm >> 8 & 0x7), kvm_deliver_mode), + __entry->tm ? "level" : "edge", + __entry->coalesced ? " (coalesced)" : "") +) + +TRACE_EVENT(kvm_eoi, + TP_PROTO(struct kvm_lapic *apic, int vector), + TP_ARGS(apic, vector), + + TP_STRUCT__entry( + __field( __u32, apicid ) + __field( int, vector ) + ), + + TP_fast_assign( + tp_assign(apicid, apic->vcpu->vcpu_id) + tp_assign(vector, vector) + ), + + TP_printk("apicid %x vector %d", __entry->apicid, __entry->vector) +) + +TRACE_EVENT(kvm_pv_eoi, + TP_PROTO(struct kvm_lapic *apic, int vector), + TP_ARGS(apic, vector), + + TP_STRUCT__entry( + __field( __u32, apicid ) + __field( int, vector ) + ), + + TP_fast_assign( + tp_assign(apicid, apic->vcpu->vcpu_id) + tp_assign(vector, vector) + ), + + TP_printk("apicid %x vector %d", __entry->apicid, __entry->vector) +) + +/* + * Tracepoint for nested VMRUN + */ +TRACE_EVENT(kvm_nested_vmrun, + TP_PROTO(__u64 rip, __u64 vmcb, __u64 nested_rip, __u32 int_ctl, + __u32 event_inj, bool npt), + TP_ARGS(rip, vmcb, nested_rip, int_ctl, event_inj, npt), + + TP_STRUCT__entry( + __field( __u64, rip ) + __field( __u64, vmcb ) + __field( __u64, nested_rip ) + __field( __u32, int_ctl ) + __field( __u32, event_inj ) + __field( bool, npt ) + ), + + TP_fast_assign( + tp_assign(rip, rip) + tp_assign(vmcb, vmcb) + tp_assign(nested_rip, nested_rip) + tp_assign(int_ctl, int_ctl) + tp_assign(event_inj, event_inj) + tp_assign(npt, npt) + ), + + TP_printk("rip: 0x%016llx vmcb: 0x%016llx nrip: 0x%016llx int_ctl: 0x%08x " + "event_inj: 0x%08x npt: %s", + __entry->rip, __entry->vmcb, __entry->nested_rip, + __entry->int_ctl, __entry->event_inj, + __entry->npt ? "on" : "off") +) + +TRACE_EVENT(kvm_nested_intercepts, + TP_PROTO(__u16 cr_read, __u16 cr_write, __u32 exceptions, __u64 intercept), + TP_ARGS(cr_read, cr_write, exceptions, intercept), + + TP_STRUCT__entry( + __field( __u16, cr_read ) + __field( __u16, cr_write ) + __field( __u32, exceptions ) + __field( __u64, intercept ) + ), + + TP_fast_assign( + tp_assign(cr_read, cr_read) + tp_assign(cr_write, cr_write) + tp_assign(exceptions, exceptions) + tp_assign(intercept, intercept) + ), + + TP_printk("cr_read: %04x cr_write: %04x excp: %08x intercept: %016llx", + __entry->cr_read, __entry->cr_write, __entry->exceptions, + __entry->intercept) +) +/* + * Tracepoint for #VMEXIT while nested + */ +TRACE_EVENT(kvm_nested_vmexit, + TP_PROTO(__u64 rip, __u32 exit_code, + __u64 exit_info1, __u64 exit_info2, + __u32 exit_int_info, __u32 exit_int_info_err, __u32 isa), + TP_ARGS(rip, exit_code, exit_info1, exit_info2, + exit_int_info, exit_int_info_err, isa), + + TP_STRUCT__entry( + __field( __u64, rip ) + __field( __u32, exit_code ) + __field( __u64, exit_info1 ) + __field( __u64, exit_info2 ) + __field( __u32, exit_int_info ) + __field( __u32, exit_int_info_err ) + __field( __u32, isa ) + ), + + TP_fast_assign( + tp_assign(rip, rip) + tp_assign(exit_code, exit_code) + tp_assign(exit_info1, exit_info1) + tp_assign(exit_info2, exit_info2) + tp_assign(exit_int_info, exit_int_info) + tp_assign(exit_int_info_err, exit_int_info_err) + tp_assign(isa, isa) + ), + TP_printk("rip: 0x%016llx reason: %s ext_inf1: 0x%016llx " + "ext_inf2: 0x%016llx ext_int: 0x%08x ext_int_err: 0x%08x", + __entry->rip, + (__entry->isa == KVM_ISA_VMX) ? + __print_symbolic(__entry->exit_code, VMX_EXIT_REASONS) : + __print_symbolic(__entry->exit_code, SVM_EXIT_REASONS), + __entry->exit_info1, __entry->exit_info2, + __entry->exit_int_info, __entry->exit_int_info_err) +) + +/* + * Tracepoint for #VMEXIT reinjected to the guest + */ +TRACE_EVENT(kvm_nested_vmexit_inject, + TP_PROTO(__u32 exit_code, + __u64 exit_info1, __u64 exit_info2, + __u32 exit_int_info, __u32 exit_int_info_err, __u32 isa), + TP_ARGS(exit_code, exit_info1, exit_info2, + exit_int_info, exit_int_info_err, isa), + + TP_STRUCT__entry( + __field( __u32, exit_code ) + __field( __u64, exit_info1 ) + __field( __u64, exit_info2 ) + __field( __u32, exit_int_info ) + __field( __u32, exit_int_info_err ) + __field( __u32, isa ) + ), + + TP_fast_assign( + tp_assign(exit_code, exit_code) + tp_assign(exit_info1, exit_info1) + tp_assign(exit_info2, exit_info2) + tp_assign(exit_int_info, exit_int_info) + tp_assign(exit_int_info_err, exit_int_info_err) + tp_assign(isa, isa) + ), + + TP_printk("reason: %s ext_inf1: 0x%016llx " + "ext_inf2: 0x%016llx ext_int: 0x%08x ext_int_err: 0x%08x", + (__entry->isa == KVM_ISA_VMX) ? + __print_symbolic(__entry->exit_code, VMX_EXIT_REASONS) : + __print_symbolic(__entry->exit_code, SVM_EXIT_REASONS), + __entry->exit_info1, __entry->exit_info2, + __entry->exit_int_info, __entry->exit_int_info_err) +) + +/* + * Tracepoint for nested #vmexit because of interrupt pending + */ +TRACE_EVENT(kvm_nested_intr_vmexit, + TP_PROTO(__u64 rip), + TP_ARGS(rip), + + TP_STRUCT__entry( + __field( __u64, rip ) + ), + + TP_fast_assign( + tp_assign(rip, rip) + ), + + TP_printk("rip: 0x%016llx", __entry->rip) +) + +/* + * Tracepoint for nested #vmexit because of interrupt pending + */ +TRACE_EVENT(kvm_invlpga, + TP_PROTO(__u64 rip, int asid, u64 address), + TP_ARGS(rip, asid, address), + + TP_STRUCT__entry( + __field( __u64, rip ) + __field( int, asid ) + __field( __u64, address ) + ), + + TP_fast_assign( + tp_assign(rip, rip) + tp_assign(asid, asid) + tp_assign(address, address) + ), + + TP_printk("rip: 0x%016llx asid: %d address: 0x%016llx", + __entry->rip, __entry->asid, __entry->address) +) + +/* + * Tracepoint for nested #vmexit because of interrupt pending + */ +TRACE_EVENT(kvm_skinit, + TP_PROTO(__u64 rip, __u32 slb), + TP_ARGS(rip, slb), + + TP_STRUCT__entry( + __field( __u64, rip ) + __field( __u32, slb ) + ), + + TP_fast_assign( + tp_assign(rip, rip) + tp_assign(slb, slb) + ), + + TP_printk("rip: 0x%016llx slb: 0x%08x", + __entry->rip, __entry->slb) +) + +#define KVM_EMUL_INSN_F_CR0_PE (1 << 0) +#define KVM_EMUL_INSN_F_EFL_VM (1 << 1) +#define KVM_EMUL_INSN_F_CS_D (1 << 2) +#define KVM_EMUL_INSN_F_CS_L (1 << 3) + +#define kvm_trace_symbol_emul_flags \ + { 0, "real" }, \ + { KVM_EMUL_INSN_F_CR0_PE \ + | KVM_EMUL_INSN_F_EFL_VM, "vm16" }, \ + { KVM_EMUL_INSN_F_CR0_PE, "prot16" }, \ + { KVM_EMUL_INSN_F_CR0_PE \ + | KVM_EMUL_INSN_F_CS_D, "prot32" }, \ + { KVM_EMUL_INSN_F_CR0_PE \ + | KVM_EMUL_INSN_F_CS_L, "prot64" } + +#define kei_decode_mode(mode) ({ \ + u8 flags = 0xff; \ + switch (mode) { \ + case X86EMUL_MODE_REAL: \ + flags = 0; \ + break; \ + case X86EMUL_MODE_VM86: \ + flags = KVM_EMUL_INSN_F_EFL_VM; \ + break; \ + case X86EMUL_MODE_PROT16: \ + flags = KVM_EMUL_INSN_F_CR0_PE; \ + break; \ + case X86EMUL_MODE_PROT32: \ + flags = KVM_EMUL_INSN_F_CR0_PE \ + | KVM_EMUL_INSN_F_CS_D; \ + break; \ + case X86EMUL_MODE_PROT64: \ + flags = KVM_EMUL_INSN_F_CR0_PE \ + | KVM_EMUL_INSN_F_CS_L; \ + break; \ + } \ + flags; \ + }) + +TRACE_EVENT(kvm_emulate_insn, + TP_PROTO(struct kvm_vcpu *vcpu, __u8 failed), + TP_ARGS(vcpu, failed), + + TP_STRUCT__entry( + __field( __u64, rip ) + __field( __u32, csbase ) + __field( __u8, len ) + __array( __u8, insn, 15 ) + __field( __u8, flags ) + __field( __u8, failed ) + ), + + TP_fast_assign( + tp_assign(rip, vcpu->arch.emulate_ctxt.fetch.start) + tp_assign(csbase, kvm_x86_ops->get_segment_base(vcpu, VCPU_SREG_CS)) + tp_assign(len, vcpu->arch.emulate_ctxt._eip + - vcpu->arch.emulate_ctxt.fetch.start) + tp_memcpy(insn, + vcpu->arch.emulate_ctxt.fetch.data, + 15) + tp_assign(flags, kei_decode_mode(vcpu->arch.emulate_ctxt.mode)) + tp_assign(failed, failed) + ), + + TP_printk("%x:%llx:%s (%s)%s", + __entry->csbase, __entry->rip, + __print_hex(__entry->insn, __entry->len), + __print_symbolic(__entry->flags, + kvm_trace_symbol_emul_flags), + __entry->failed ? " failed" : "" + ) + ) + +#define trace_kvm_emulate_insn_start(vcpu) trace_kvm_emulate_insn(vcpu, 0) +#define trace_kvm_emulate_insn_failed(vcpu) trace_kvm_emulate_insn(vcpu, 1) + +TRACE_EVENT( + vcpu_match_mmio, + TP_PROTO(gva_t gva, gpa_t gpa, bool write, bool gpa_match), + TP_ARGS(gva, gpa, write, gpa_match), + + TP_STRUCT__entry( + __field(gva_t, gva) + __field(gpa_t, gpa) + __field(bool, write) + __field(bool, gpa_match) + ), + + TP_fast_assign( + tp_assign(gva, gva) + tp_assign(gpa, gpa) + tp_assign(write, write) + tp_assign(gpa_match, gpa_match) + ), + + TP_printk("gva %#lx gpa %#llx %s %s", __entry->gva, __entry->gpa, + __entry->write ? "Write" : "Read", + __entry->gpa_match ? "GPA" : "GVA") +) + +#ifdef CONFIG_X86_64 + +#define host_clocks \ + {VCLOCK_NONE, "none"}, \ + {VCLOCK_TSC, "tsc"}, \ + {VCLOCK_HPET, "hpet"} \ + +TRACE_EVENT(kvm_update_master_clock, + TP_PROTO(bool use_master_clock, unsigned int host_clock, bool offset_matched), + TP_ARGS(use_master_clock, host_clock, offset_matched), + + TP_STRUCT__entry( + __field( bool, use_master_clock ) + __field( unsigned int, host_clock ) + __field( bool, offset_matched ) + ), + + TP_fast_assign( + tp_assign(use_master_clock, use_master_clock) + tp_assign(host_clock, host_clock) + tp_assign(offset_matched, offset_matched) + ), + + TP_printk("masterclock %d hostclock %s offsetmatched %u", + __entry->use_master_clock, + __print_symbolic(__entry->host_clock, host_clocks), + __entry->offset_matched) +) + +TRACE_EVENT(kvm_track_tsc, + TP_PROTO(unsigned int vcpu_id, unsigned int nr_matched, + unsigned int online_vcpus, bool use_master_clock, + unsigned int host_clock), + TP_ARGS(vcpu_id, nr_matched, online_vcpus, use_master_clock, + host_clock), + + TP_STRUCT__entry( + __field( unsigned int, vcpu_id ) + __field( unsigned int, nr_vcpus_matched_tsc ) + __field( unsigned int, online_vcpus ) + __field( bool, use_master_clock ) + __field( unsigned int, host_clock ) + ), + + TP_fast_assign( + tp_assign(vcpu_id, vcpu_id) + tp_assign(nr_vcpus_matched_tsc, nr_matched) + tp_assign(online_vcpus, online_vcpus) + tp_assign(use_master_clock, use_master_clock) + tp_assign(host_clock, host_clock) + ), + + TP_printk("vcpu_id %u masterclock %u offsetmatched %u nr_online %u" + " hostclock %s", + __entry->vcpu_id, __entry->use_master_clock, + __entry->nr_vcpus_matched_tsc, __entry->online_vcpus, + __print_symbolic(__entry->host_clock, host_clocks)) +) + +#endif /* CONFIG_X86_64 */ + +#endif /* _TRACE_KVM_H */ + +#undef TRACE_INCLUDE_PATH +#define TRACE_INCLUDE_PATH ../instrumentation/events/lttng-module/arch/x86/kvm +#undef TRACE_INCLUDE_FILE +#define TRACE_INCLUDE_FILE trace + +/* This part must be outside protection */ +#include "../../../../../../probes/define_trace.h" --- linux-3.11.0.orig/ubuntu/lttng-modules/instrumentation/events/lttng-module/arch/x86/kvm/mmutrace.h +++ linux-3.11.0/ubuntu/lttng-modules/instrumentation/events/lttng-module/arch/x86/kvm/mmutrace.h @@ -0,0 +1,285 @@ +#if !defined(_TRACE_KVMMMU_H) || defined(TRACE_HEADER_MULTI_READ) +#define _TRACE_KVMMMU_H + +#include +#include + +#undef TRACE_SYSTEM +#define TRACE_SYSTEM kvmmmu + +#define KVM_MMU_PAGE_FIELDS \ + __field(__u64, gfn) \ + __field(__u32, role) \ + __field(__u32, root_count) \ + __field(bool, unsync) + +#define KVM_MMU_PAGE_ASSIGN(sp) \ + tp_assign(gfn, sp->gfn) \ + tp_assign(role, sp->role.word) \ + tp_assign(root_count, sp->root_count) \ + tp_assign(unsync, sp->unsync) + +#define KVM_MMU_PAGE_PRINTK() ({ \ + const char *ret = p->buffer + p->len; \ + static const char *access_str[] = { \ + "---", "--x", "w--", "w-x", "-u-", "-ux", "wu-", "wux" \ + }; \ + union kvm_mmu_page_role role; \ + \ + role.word = __entry->role; \ + \ + trace_seq_printf(p, "sp gfn %llx %u%s q%u%s %s%s" \ + " %snxe root %u %s%c", \ + __entry->gfn, role.level, \ + role.cr4_pae ? " pae" : "", \ + role.quadrant, \ + role.direct ? " direct" : "", \ + access_str[role.access], \ + role.invalid ? " invalid" : "", \ + role.nxe ? "" : "!", \ + __entry->root_count, \ + __entry->unsync ? "unsync" : "sync", 0); \ + ret; \ + }) + +#define kvm_mmu_trace_pferr_flags \ + { PFERR_PRESENT_MASK, "P" }, \ + { PFERR_WRITE_MASK, "W" }, \ + { PFERR_USER_MASK, "U" }, \ + { PFERR_RSVD_MASK, "RSVD" }, \ + { PFERR_FETCH_MASK, "F" } + +/* + * A pagetable walk has started + */ +TRACE_EVENT( + kvm_mmu_pagetable_walk, + TP_PROTO(u64 addr, u32 pferr), + TP_ARGS(addr, pferr), + + TP_STRUCT__entry( + __field(__u64, addr) + __field(__u32, pferr) + ), + + TP_fast_assign( + tp_assign(addr, addr) + tp_assign(pferr, pferr) + ), + + TP_printk("addr %llx pferr %x %s", __entry->addr, __entry->pferr, + __print_flags(__entry->pferr, "|", kvm_mmu_trace_pferr_flags)) +) + + +/* We just walked a paging element */ +TRACE_EVENT( + kvm_mmu_paging_element, + TP_PROTO(u64 pte, int level), + TP_ARGS(pte, level), + + TP_STRUCT__entry( + __field(__u64, pte) + __field(__u32, level) + ), + + TP_fast_assign( + tp_assign(pte, pte) + tp_assign(level, level) + ), + + TP_printk("pte %llx level %u", __entry->pte, __entry->level) +) + +DECLARE_EVENT_CLASS(kvm_mmu_set_bit_class, + + TP_PROTO(unsigned long table_gfn, unsigned index, unsigned size), + + TP_ARGS(table_gfn, index, size), + + TP_STRUCT__entry( + __field(__u64, gpa) + ), + + TP_fast_assign( + tp_assign(gpa, ((u64)table_gfn << PAGE_SHIFT) + + index * size) + ), + + TP_printk("gpa %llx", __entry->gpa) +) + +/* We set a pte accessed bit */ +DEFINE_EVENT(kvm_mmu_set_bit_class, kvm_mmu_set_accessed_bit, + + TP_PROTO(unsigned long table_gfn, unsigned index, unsigned size), + + TP_ARGS(table_gfn, index, size) +) + +/* We set a pte dirty bit */ +DEFINE_EVENT(kvm_mmu_set_bit_class, kvm_mmu_set_dirty_bit, + + TP_PROTO(unsigned long table_gfn, unsigned index, unsigned size), + + TP_ARGS(table_gfn, index, size) +) + +TRACE_EVENT( + kvm_mmu_walker_error, + TP_PROTO(u32 pferr), + TP_ARGS(pferr), + + TP_STRUCT__entry( + __field(__u32, pferr) + ), + + TP_fast_assign( + tp_assign(pferr, pferr) + ), + + TP_printk("pferr %x %s", __entry->pferr, + __print_flags(__entry->pferr, "|", kvm_mmu_trace_pferr_flags)) +) + +TRACE_EVENT( + kvm_mmu_get_page, + TP_PROTO(struct kvm_mmu_page *sp, bool created), + TP_ARGS(sp, created), + + TP_STRUCT__entry( + KVM_MMU_PAGE_FIELDS + __field(bool, created) + ), + + TP_fast_assign( + KVM_MMU_PAGE_ASSIGN(sp) + tp_assign(created, created) + ), + + TP_printk("%s %s", KVM_MMU_PAGE_PRINTK(), + __entry->created ? "new" : "existing") +) + +DECLARE_EVENT_CLASS(kvm_mmu_page_class, + + TP_PROTO(struct kvm_mmu_page *sp), + TP_ARGS(sp), + + TP_STRUCT__entry( + KVM_MMU_PAGE_FIELDS + ), + + TP_fast_assign( + KVM_MMU_PAGE_ASSIGN(sp) + ), + + TP_printk("%s", KVM_MMU_PAGE_PRINTK()) +) + +DEFINE_EVENT(kvm_mmu_page_class, kvm_mmu_sync_page, + TP_PROTO(struct kvm_mmu_page *sp), + + TP_ARGS(sp) +) + +DEFINE_EVENT(kvm_mmu_page_class, kvm_mmu_unsync_page, + TP_PROTO(struct kvm_mmu_page *sp), + + TP_ARGS(sp) +) + +DEFINE_EVENT(kvm_mmu_page_class, kvm_mmu_prepare_zap_page, + TP_PROTO(struct kvm_mmu_page *sp), + + TP_ARGS(sp) +) + +TRACE_EVENT( + mark_mmio_spte, + TP_PROTO(u64 *sptep, gfn_t gfn, unsigned access), + TP_ARGS(sptep, gfn, access), + + TP_STRUCT__entry( + __field(void *, sptep) + __field(gfn_t, gfn) + __field(unsigned, access) + ), + + TP_fast_assign( + tp_assign(sptep, sptep) + tp_assign(gfn, gfn) + tp_assign(access, access) + ), + + TP_printk("sptep:%p gfn %llx access %x", __entry->sptep, __entry->gfn, + __entry->access) +) + +TRACE_EVENT( + handle_mmio_page_fault, + TP_PROTO(u64 addr, gfn_t gfn, unsigned access), + TP_ARGS(addr, gfn, access), + + TP_STRUCT__entry( + __field(u64, addr) + __field(gfn_t, gfn) + __field(unsigned, access) + ), + + TP_fast_assign( + tp_assign(addr, addr) + tp_assign(gfn, gfn) + tp_assign(access, access) + ), + + TP_printk("addr:%llx gfn %llx access %x", __entry->addr, __entry->gfn, + __entry->access) +) + +#define __spte_satisfied(__spte) \ + (__entry->retry && is_writable_pte(__entry->__spte)) + +TRACE_EVENT( + fast_page_fault, + TP_PROTO(struct kvm_vcpu *vcpu, gva_t gva, u32 error_code, + u64 *sptep, u64 old_spte, bool retry), + TP_ARGS(vcpu, gva, error_code, sptep, old_spte, retry), + + TP_STRUCT__entry( + __field(int, vcpu_id) + __field(gva_t, gva) + __field(u32, error_code) + __field(u64 *, sptep) + __field(u64, old_spte) + __field(u64, new_spte) + __field(bool, retry) + ), + + TP_fast_assign( + tp_assign(vcpu_id, vcpu->vcpu_id) + tp_assign(gva, gva) + tp_assign(error_code, error_code) + tp_assign(sptep, sptep) + tp_assign(old_spte, old_spte) + tp_assign(new_spte, *sptep) + tp_assign(retry, retry) + ), + + TP_printk("vcpu %d gva %lx error_code %s sptep %p old %#llx" + " new %llx spurious %d fixed %d", __entry->vcpu_id, + __entry->gva, __print_flags(__entry->error_code, "|", + kvm_mmu_trace_pferr_flags), __entry->sptep, + __entry->old_spte, __entry->new_spte, + __spte_satisfied(old_spte), __spte_satisfied(new_spte) + ) +) +#endif /* _TRACE_KVMMMU_H */ + +#undef TRACE_INCLUDE_PATH +#define TRACE_INCLUDE_PATH ../instrumentation/events/lttng-module/arch/x86/kvm +#undef TRACE_INCLUDE_FILE +#define TRACE_INCLUDE_FILE mmutrace + +/* This part must be outside protection */ +#include "../../../../../../probes/define_trace.h" --- linux-3.11.0.orig/ubuntu/lttng-modules/instrumentation/syscalls/lttng-syscalls-generate-headers.sh +++ linux-3.11.0/ubuntu/lttng-modules/instrumentation/syscalls/lttng-syscalls-generate-headers.sh @@ -0,0 +1,279 @@ +#!/bin/sh + +# Generate system call probe description macros from syscall metadata dump file. +# The resulting header will be written in the headers subdirectory, in a file name +# based on the name of the input file. +# +# example usage: +# +# lttng-syscalls-generate-headers.sh +# lttng-syscalls-generate-headers.sh integers 3.0.4 x86-64-syscalls-3.0.4 64 +# lttng-syscalls-generate-headers.sh pointers 3.0.4 x86-64-syscalls-3.0.4 64 + +CLASS=$1 +INPUTDIR=$2 +INPUTFILE=$3 +BITNESS=$4 +INPUT=${INPUTDIR}/${INPUTFILE} +SRCFILE=gen.tmp.0 +TMPFILE=gen.tmp.1 +HEADER=headers/${INPUTFILE}_${CLASS}.h + +cp ${INPUT} ${SRCFILE} + +#Cleanup +perl -p -e 's/^\[.*\] //g' ${SRCFILE} > ${TMPFILE} +mv ${TMPFILE} ${SRCFILE} + +perl -p -e 's/^syscall sys_([^ ]*)/syscall $1/g' ${SRCFILE} > ${TMPFILE} +mv ${TMPFILE} ${SRCFILE} + +#Filter + +if [ "$CLASS" = integers ]; then + #select integers and no-args. + CLASSCAP=INTEGERS + grep -v "\\*\|cap_user_header_t" ${SRCFILE} > ${TMPFILE} + mv ${TMPFILE} ${SRCFILE} +fi + + +if [ "$CLASS" = pointers ]; then + #select system calls using pointers. + CLASSCAP=POINTERS + grep "\\*\|cap_#user_header_t" ${SRCFILE} > ${TMPFILE} + mv ${TMPFILE} ${SRCFILE} +fi + +echo "/* THIS FILE IS AUTO-GENERATED. DO NOT EDIT */" > ${HEADER} + +echo \ +"#ifndef CREATE_SYSCALL_TABLE + +#if !defined(_TRACE_SYSCALLS_${CLASSCAP}_H) || defined(TRACE_HEADER_MULTI_READ) +#define _TRACE_SYSCALLS_${CLASSCAP}_H + +#include +#include +#include \"${INPUTFILE}_${CLASS}_override.h\" +#include \"syscalls_${CLASS}_override.h\" +" >> ${HEADER} + +if [ "$CLASS" = integers ]; then + +NRARGS=0 + +printf \ +'SC_DECLARE_EVENT_CLASS_NOARGS(syscalls_noargs,\n'\ +' TP_STRUCT__entry(),\n'\ +' TP_fast_assign(),\n'\ +' TP_printk()\n'\ +')'\ + >> ${HEADER} + +grep "^syscall [^ ]* nr [^ ]* nbargs ${NRARGS} " ${SRCFILE} > ${TMPFILE} +perl -p -e 's/^syscall ([^ ]*) nr ([^ ]*) nbargs ([^ ]*) '\ +'types: \(([^)]*)\) '\ +'args: \(([^)]*)\)/'\ +'#ifndef OVERRIDE_'"${BITNESS}"'_sys_$1\n'\ +'SC_DEFINE_EVENT_NOARGS(syscalls_noargs, sys_$1)\n'\ +'#endif/g'\ + ${TMPFILE} >> ${HEADER} + +fi + + +# types: 4 +# args 5 + +NRARGS=1 +grep "^syscall [^ ]* nr [^ ]* nbargs ${NRARGS} " ${SRCFILE} > ${TMPFILE} +perl -p -e 's/^syscall ([^ ]*) nr ([^ ]*) nbargs ([^ ]*) '\ +'types: \(([^)]*)\) '\ +'args: \(([^)]*)\)/'\ +'#ifndef OVERRIDE_'"${BITNESS}"'_sys_$1\n'\ +'SC_TRACE_EVENT(sys_$1,\n'\ +' TP_PROTO($4 $5),\n'\ +' TP_ARGS($5),\n'\ +' TP_STRUCT__entry(__field($4, $5)),\n'\ +' TP_fast_assign(tp_assign($4, $5, $5)),\n'\ +' TP_printk()\n'\ +')\n'\ +'#endif/g'\ + ${TMPFILE} >> ${HEADER} + +# types: 4 5 +# args 6 7 + +NRARGS=2 +grep "^syscall [^ ]* nr [^ ]* nbargs ${NRARGS} " ${SRCFILE} > ${TMPFILE} +perl -p -e 's/^syscall ([^ ]*) nr ([^ ]*) nbargs ([^ ]*) '\ +'types: \(([^,]*), ([^)]*)\) '\ +'args: \(([^,]*), ([^)]*)\)/'\ +'#ifndef OVERRIDE_'"${BITNESS}"'_sys_$1\n'\ +'SC_TRACE_EVENT(sys_$1,\n'\ +' TP_PROTO($4 $6, $5 $7),\n'\ +' TP_ARGS($6, $7),\n'\ +' TP_STRUCT__entry(__field($4, $6) __field($5, $7)),\n'\ +' TP_fast_assign(tp_assign($4, $6, $6) tp_assign($5, $7, $7)),\n'\ +' TP_printk()\n'\ +')\n'\ +'#endif/g'\ + ${TMPFILE} >> ${HEADER} + +# types: 4 5 6 +# args 7 8 9 + +NRARGS=3 +grep "^syscall [^ ]* nr [^ ]* nbargs ${NRARGS} " ${SRCFILE} > ${TMPFILE} +perl -p -e 's/^syscall ([^ ]*) nr ([^ ]*) nbargs ([^ ]*) '\ +'types: \(([^,]*), ([^,]*), ([^)]*)\) '\ +'args: \(([^,]*), ([^,]*), ([^)]*)\)/'\ +'#ifndef OVERRIDE_'"${BITNESS}"'_sys_$1\n'\ +'SC_TRACE_EVENT(sys_$1,\n'\ +' TP_PROTO($4 $7, $5 $8, $6 $9),\n'\ +' TP_ARGS($7, $8, $9),\n'\ +' TP_STRUCT__entry(__field($4, $7) __field($5, $8) __field($6, $9)),\n'\ +' TP_fast_assign(tp_assign($4, $7, $7) tp_assign($5, $8, $8) tp_assign($6, $9, $9)),\n'\ +' TP_printk()\n'\ +')\n'\ +'#endif/g'\ + ${TMPFILE} >> ${HEADER} + + +# types: 4 5 6 7 +# args 8 9 10 11 + +NRARGS=4 +grep "^syscall [^ ]* nr [^ ]* nbargs ${NRARGS} " ${SRCFILE} > ${TMPFILE} +perl -p -e 's/^syscall ([^ ]*) nr ([^ ]*) nbargs ([^ ]*) '\ +'types: \(([^,]*), ([^,]*), ([^,]*), ([^)]*)\) '\ +'args: \(([^,]*), ([^,]*), ([^,]*), ([^)]*)\)/'\ +'#ifndef OVERRIDE_'"${BITNESS}"'_sys_$1\n'\ +'SC_TRACE_EVENT(sys_$1,\n'\ +' TP_PROTO($4 $8, $5 $9, $6 $10, $7 $11),\n'\ +' TP_ARGS($8, $9, $10, $11),\n'\ +' TP_STRUCT__entry(__field($4, $8) __field($5, $9) __field($6, $10) __field($7, $11)),\n'\ +' TP_fast_assign(tp_assign($4, $8, $8) tp_assign($5, $9, $9) tp_assign($6, $10, $10) tp_assign($7, $11, $11)),\n'\ +' TP_printk()\n'\ +')\n'\ +'#endif/g'\ + ${TMPFILE} >> ${HEADER} + +# types: 4 5 6 7 8 +# args 9 10 11 12 13 + +NRARGS=5 +grep "^syscall [^ ]* nr [^ ]* nbargs ${NRARGS} " ${SRCFILE} > ${TMPFILE} +perl -p -e 's/^syscall ([^ ]*) nr ([^ ]*) nbargs ([^ ]*) '\ +'types: \(([^,]*), ([^,]*), ([^,]*), ([^,]*), ([^)]*)\) '\ +'args: \(([^,]*), ([^,]*), ([^,]*), ([^,]*), ([^)]*)\)/'\ +'#ifndef OVERRIDE_'"${BITNESS}"'_sys_$1\n'\ +'SC_TRACE_EVENT(sys_$1,\n'\ +' TP_PROTO($4 $9, $5 $10, $6 $11, $7 $12, $8 $13),\n'\ +' TP_ARGS($9, $10, $11, $12, $13),\n'\ +' TP_STRUCT__entry(__field($4, $9) __field($5, $10) __field($6, $11) __field($7, $12) __field($8, $13)),\n'\ +' TP_fast_assign(tp_assign($4, $9, $9) tp_assign($5, $10, $10) tp_assign($6, $11, $11) tp_assign($7, $12, $12) tp_assign($8, $13, $13)),\n'\ +' TP_printk()\n'\ +')\n'\ +'#endif/g'\ + ${TMPFILE} >> ${HEADER} + + +# types: 4 5 6 7 8 9 +# args 10 11 12 13 14 15 + +NRARGS=6 +grep "^syscall [^ ]* nr [^ ]* nbargs ${NRARGS} " ${SRCFILE} > ${TMPFILE} +perl -p -e 's/^syscall ([^ ]*) nr ([^ ]*) nbargs ([^ ]*) '\ +'types: \(([^,]*), ([^,]*), ([^,]*), ([^,]*), ([^,]*), ([^\)]*)\) '\ +'args: \(([^,]*), ([^,]*), ([^,]*), ([^,]*), ([^,]*), ([^\)]*)\)/'\ +'#ifndef OVERRIDE_'"${BITNESS}"'_sys_$1\n'\ +'SC_TRACE_EVENT(sys_$1,\n'\ +' TP_PROTO($4 $10, $5 $11, $6 $12, $7 $13, $8 $14, $9 $15),\n'\ +' TP_ARGS($10, $11, $12, $13, $14, $15),\n'\ +' TP_STRUCT__entry(__field($4, $10) __field($5, $11) __field($6, $12) __field($7, $13) __field($8, $14) __field($9, $15)),\n'\ +' TP_fast_assign(tp_assign($4, $10, $10) tp_assign($5, $11, $11) tp_assign($6, $12, $12) tp_assign($7, $13, $13) tp_assign($8, $14, $14) tp_assign($9, $15, $15)),\n'\ +' TP_printk()\n'\ +')\n'\ +'#endif/g'\ + ${TMPFILE} >> ${HEADER} + +# Macro for tracing syscall table + +rm -f ${TMPFILE} +for NRARGS in $(seq 0 6); do + grep "^syscall [^ ]* nr [^ ]* nbargs ${NRARGS} " ${SRCFILE} >> ${TMPFILE} +done + +echo \ +" +#endif /* _TRACE_SYSCALLS_${CLASSCAP}_H */ + +/* This part must be outside protection */ +#include \"../../../probes/define_trace.h\" + +#else /* CREATE_SYSCALL_TABLE */ + +#include \"${INPUTFILE}_${CLASS}_override.h\" +#include \"syscalls_${CLASS}_override.h\" +" >> ${HEADER} + +NRARGS=0 + +if [ "$CLASS" = integers ]; then +#noargs +grep "^syscall [^ ]* nr [^ ]* nbargs ${NRARGS} " ${SRCFILE} > ${TMPFILE} +perl -p -e 's/^syscall ([^ ]*) nr ([^ ]*) nbargs ([^ ]*) .*$/'\ +'#ifndef OVERRIDE_TABLE_'"${BITNESS}"'_sys_$1\n'\ +'TRACE_SYSCALL_TABLE\(syscalls_noargs, sys_$1, $2, $3\)\n'\ +'#endif/g'\ + ${TMPFILE} >> ${HEADER} +fi + +#others. +grep -v "^syscall [^ ]* nr [^ ]* nbargs ${NRARGS} " ${SRCFILE} > ${TMPFILE} +perl -p -e 's/^syscall ([^ ]*) nr ([^ ]*) nbargs ([^ ]*) .*$/'\ +'#ifndef OVERRIDE_TABLE_'"${BITNESS}"'_sys_$1\n'\ +'TRACE_SYSCALL_TABLE(sys_$1, sys_$1, $2, $3)\n'\ +'#endif/g'\ + ${TMPFILE} >> ${HEADER} + +echo -n \ +" +#endif /* CREATE_SYSCALL_TABLE */ +" >> ${HEADER} + +#fields names: ...char * type with *name* or *file* or *path* or *root* +# or *put_old* or *type* +cp -f ${HEADER} ${TMPFILE} +rm -f ${HEADER} +perl -p -e 's/__field\(([^,)]*char \*), ([^\)]*)(name|file|path|root|put_old|type)([^\)]*)\)/__string_from_user($2$3$4, $2$3$4)/g'\ + ${TMPFILE} >> ${HEADER} +cp -f ${HEADER} ${TMPFILE} +rm -f ${HEADER} +perl -p -e 's/tp_assign\(([^,)]*char \*), ([^,]*)(name|file|path|root|put_old|type)([^,]*), ([^\)]*)\)/tp_copy_string_from_user($2$3$4, $5)/g'\ + ${TMPFILE} >> ${HEADER} + +#prettify addresses heuristics. +#field names with addr or ptr +cp -f ${HEADER} ${TMPFILE} +rm -f ${HEADER} +perl -p -e 's/__field\(([^,)]*), ([^,)]*addr|[^,)]*ptr)([^),]*)\)/__field_hex($1, $2$3)/g'\ + ${TMPFILE} >> ${HEADER} + +#field types ending with '*' +cp -f ${HEADER} ${TMPFILE} +rm -f ${HEADER} +perl -p -e 's/__field\(([^,)]*\*), ([^),]*)\)/__field_hex($1, $2)/g'\ + ${TMPFILE} >> ${HEADER} + +#strip the extra type information from tp_assign. +cp -f ${HEADER} ${TMPFILE} +rm -f ${HEADER} +perl -p -e 's/tp_assign\(([^,)]*), ([^,]*), ([^\)]*)\)/tp_assign($2, $3)/g'\ + ${TMPFILE} >> ${HEADER} + +rm -f ${INPUTFILE}.tmp +rm -f ${TMPFILE} +rm -f ${SRCFILE} --- linux-3.11.0.orig/ubuntu/lttng-modules/instrumentation/syscalls/README +++ linux-3.11.0/ubuntu/lttng-modules/instrumentation/syscalls/README @@ -0,0 +1,18 @@ +LTTng system call tracing + +1) lttng-syscall-extractor + +You need to build a kernel with CONFIG_FTRACE_SYSCALLS=y and +CONFIG_KALLSYMS_ALL=y for extraction. Apply the linker patch to get your +kernel to keep the system call metadata after boot. Then build and load +the LTTng syscall extractor module. The module will fail to load (this +is expected). See the dmesg output for system call metadata. + +2) Generate system call TRACE_EVENT(). + +Take the dmesg metadata and feed it to lttng-syscalls-generate-headers.sh, e.g., +from the instrumentation/syscalls directory. See the script header for +usage example. It should be run for both the integers and pointers types. + +After these are created, we just need to follow the new system call additions, +no need to regenerate the whole thing, since system calls are only appended to. --- linux-3.11.0.orig/ubuntu/lttng-modules/instrumentation/syscalls/3.10.0-rc7/x86-64-syscalls-3.10.0-rc7 +++ linux-3.11.0/ubuntu/lttng-modules/instrumentation/syscalls/3.10.0-rc7/x86-64-syscalls-3.10.0-rc7 @@ -0,0 +1,290 @@ +syscall sys_read nr 0 nbargs 3 types: (unsigned int, char *, size_t) args: (fd, buf, count) +syscall sys_write nr 1 nbargs 3 types: (unsigned int, const char *, size_t) args: (fd, buf, count) +syscall sys_open nr 2 nbargs 3 types: (const char *, int, umode_t) args: (filename, flags, mode) +syscall sys_close nr 3 nbargs 1 types: (unsigned int) args: (fd) +syscall sys_newstat nr 4 nbargs 2 types: (const char *, struct stat *) args: (filename, statbuf) +syscall sys_newfstat nr 5 nbargs 2 types: (unsigned int, struct stat *) args: (fd, statbuf) +syscall sys_newlstat nr 6 nbargs 2 types: (const char *, struct stat *) args: (filename, statbuf) +syscall sys_poll nr 7 nbargs 3 types: (struct pollfd *, unsigned int, int) args: (ufds, nfds, timeout_msecs) +syscall sys_lseek nr 8 nbargs 3 types: (unsigned int, off_t, unsigned int) args: (fd, offset, whence) +syscall sys_mmap nr 9 nbargs 6 types: (unsigned long, unsigned long, unsigned long, unsigned long, unsigned long, unsigned long) args: (addr, len, prot, flags, fd, off) +syscall sys_mprotect nr 10 nbargs 3 types: (unsigned long, size_t, unsigned long) args: (start, len, prot) +syscall sys_munmap nr 11 nbargs 2 types: (unsigned long, size_t) args: (addr, len) +syscall sys_brk nr 12 nbargs 1 types: (unsigned long) args: (brk) +syscall sys_rt_sigaction nr 13 nbargs 4 types: (int, const struct sigaction *, struct sigaction *, size_t) args: (sig, act, oact, sigsetsize) +syscall sys_rt_sigprocmask nr 14 nbargs 4 types: (int, sigset_t *, sigset_t *, size_t) args: (how, nset, oset, sigsetsize) +syscall sys_ioctl nr 16 nbargs 3 types: (unsigned int, unsigned int, unsigned long) args: (fd, cmd, arg) +syscall sys_pread64 nr 17 nbargs 4 types: (unsigned int, char *, size_t, loff_t) args: (fd, buf, count, pos) +syscall sys_pwrite64 nr 18 nbargs 4 types: (unsigned int, const char *, size_t, loff_t) args: (fd, buf, count, pos) +syscall sys_readv nr 19 nbargs 3 types: (unsigned long, const struct iovec *, unsigned long) args: (fd, vec, vlen) +syscall sys_writev nr 20 nbargs 3 types: (unsigned long, const struct iovec *, unsigned long) args: (fd, vec, vlen) +syscall sys_access nr 21 nbargs 2 types: (const char *, int) args: (filename, mode) +syscall sys_pipe nr 22 nbargs 1 types: (int *) args: (fildes) +syscall sys_select nr 23 nbargs 5 types: (int, fd_set *, fd_set *, fd_set *, struct timeval *) args: (n, inp, outp, exp, tvp) +syscall sys_sched_yield nr 24 nbargs 0 types: () args: () +syscall sys_mremap nr 25 nbargs 5 types: (unsigned long, unsigned long, unsigned long, unsigned long, unsigned long) args: (addr, old_len, new_len, flags, new_addr) +syscall sys_msync nr 26 nbargs 3 types: (unsigned long, size_t, int) args: (start, len, flags) +syscall sys_mincore nr 27 nbargs 3 types: (unsigned long, size_t, unsigned char *) args: (start, len, vec) +syscall sys_madvise nr 28 nbargs 3 types: (unsigned long, size_t, int) args: (start, len_in, behavior) +syscall sys_shmget nr 29 nbargs 3 types: (key_t, size_t, int) args: (key, size, shmflg) +syscall sys_shmat nr 30 nbargs 3 types: (int, char *, int) args: (shmid, shmaddr, shmflg) +syscall sys_shmctl nr 31 nbargs 3 types: (int, int, struct shmid_ds *) args: (shmid, cmd, buf) +syscall sys_dup nr 32 nbargs 1 types: (unsigned int) args: (fildes) +syscall sys_dup2 nr 33 nbargs 2 types: (unsigned int, unsigned int) args: (oldfd, newfd) +syscall sys_pause nr 34 nbargs 0 types: () args: () +syscall sys_nanosleep nr 35 nbargs 2 types: (struct timespec *, struct timespec *) args: (rqtp, rmtp) +syscall sys_getitimer nr 36 nbargs 2 types: (int, struct itimerval *) args: (which, value) +syscall sys_alarm nr 37 nbargs 1 types: (unsigned int) args: (seconds) +syscall sys_setitimer nr 38 nbargs 3 types: (int, struct itimerval *, struct itimerval *) args: (which, value, ovalue) +syscall sys_getpid nr 39 nbargs 0 types: () args: () +syscall sys_sendfile64 nr 40 nbargs 4 types: (int, int, loff_t *, size_t) args: (out_fd, in_fd, offset, count) +syscall sys_socket nr 41 nbargs 3 types: (int, int, int) args: (family, type, protocol) +syscall sys_connect nr 42 nbargs 3 types: (int, struct sockaddr *, int) args: (fd, uservaddr, addrlen) +syscall sys_accept nr 43 nbargs 3 types: (int, struct sockaddr *, int *) args: (fd, upeer_sockaddr, upeer_addrlen) +syscall sys_sendto nr 44 nbargs 6 types: (int, void *, size_t, unsigned int, struct sockaddr *, int) args: (fd, buff, len, flags, addr, addr_len) +syscall sys_recvfrom nr 45 nbargs 6 types: (int, void *, size_t, unsigned int, struct sockaddr *, int *) args: (fd, ubuf, size, flags, addr, addr_len) +syscall sys_sendmsg nr 46 nbargs 3 types: (int, struct msghdr *, unsigned int) args: (fd, msg, flags) +syscall sys_recvmsg nr 47 nbargs 3 types: (int, struct msghdr *, unsigned int) args: (fd, msg, flags) +syscall sys_shutdown nr 48 nbargs 2 types: (int, int) args: (fd, how) +syscall sys_bind nr 49 nbargs 3 types: (int, struct sockaddr *, int) args: (fd, umyaddr, addrlen) +syscall sys_listen nr 50 nbargs 2 types: (int, int) args: (fd, backlog) +syscall sys_getsockname nr 51 nbargs 3 types: (int, struct sockaddr *, int *) args: (fd, usockaddr, usockaddr_len) +syscall sys_getpeername nr 52 nbargs 3 types: (int, struct sockaddr *, int *) args: (fd, usockaddr, usockaddr_len) +syscall sys_socketpair nr 53 nbargs 4 types: (int, int, int, int *) args: (family, type, protocol, usockvec) +syscall sys_setsockopt nr 54 nbargs 5 types: (int, int, int, char *, int) args: (fd, level, optname, optval, optlen) +syscall sys_getsockopt nr 55 nbargs 5 types: (int, int, int, char *, int *) args: (fd, level, optname, optval, optlen) +syscall sys_exit nr 60 nbargs 1 types: (int) args: (error_code) +syscall sys_wait4 nr 61 nbargs 4 types: (pid_t, int *, int, struct rusage *) args: (upid, stat_addr, options, ru) +syscall sys_kill nr 62 nbargs 2 types: (pid_t, int) args: (pid, sig) +syscall sys_newuname nr 63 nbargs 1 types: (struct new_utsname *) args: (name) +syscall sys_semget nr 64 nbargs 3 types: (key_t, int, int) args: (key, nsems, semflg) +syscall sys_semop nr 65 nbargs 3 types: (int, struct sembuf *, unsigned) args: (semid, tsops, nsops) +syscall sys_semctl nr 66 nbargs 4 types: (int, int, int, unsigned long) args: (semid, semnum, cmd, arg) +syscall sys_shmdt nr 67 nbargs 1 types: (char *) args: (shmaddr) +syscall sys_msgget nr 68 nbargs 2 types: (key_t, int) args: (key, msgflg) +syscall sys_msgsnd nr 69 nbargs 4 types: (int, struct msgbuf *, size_t, int) args: (msqid, msgp, msgsz, msgflg) +syscall sys_msgrcv nr 70 nbargs 5 types: (int, struct msgbuf *, size_t, long, int) args: (msqid, msgp, msgsz, msgtyp, msgflg) +syscall sys_msgctl nr 71 nbargs 3 types: (int, int, struct msqid_ds *) args: (msqid, cmd, buf) +syscall sys_fcntl nr 72 nbargs 3 types: (unsigned int, unsigned int, unsigned long) args: (fd, cmd, arg) +syscall sys_flock nr 73 nbargs 2 types: (unsigned int, unsigned int) args: (fd, cmd) +syscall sys_fsync nr 74 nbargs 1 types: (unsigned int) args: (fd) +syscall sys_fdatasync nr 75 nbargs 1 types: (unsigned int) args: (fd) +syscall sys_truncate nr 76 nbargs 2 types: (const char *, long) args: (path, length) +syscall sys_ftruncate nr 77 nbargs 2 types: (unsigned int, unsigned long) args: (fd, length) +syscall sys_getdents nr 78 nbargs 3 types: (unsigned int, struct linux_dirent *, unsigned int) args: (fd, dirent, count) +syscall sys_getcwd nr 79 nbargs 2 types: (char *, unsigned long) args: (buf, size) +syscall sys_chdir nr 80 nbargs 1 types: (const char *) args: (filename) +syscall sys_fchdir nr 81 nbargs 1 types: (unsigned int) args: (fd) +syscall sys_rename nr 82 nbargs 2 types: (const char *, const char *) args: (oldname, newname) +syscall sys_mkdir nr 83 nbargs 2 types: (const char *, umode_t) args: (pathname, mode) +syscall sys_rmdir nr 84 nbargs 1 types: (const char *) args: (pathname) +syscall sys_creat nr 85 nbargs 2 types: (const char *, umode_t) args: (pathname, mode) +syscall sys_link nr 86 nbargs 2 types: (const char *, const char *) args: (oldname, newname) +syscall sys_unlink nr 87 nbargs 1 types: (const char *) args: (pathname) +syscall sys_symlink nr 88 nbargs 2 types: (const char *, const char *) args: (oldname, newname) +syscall sys_readlink nr 89 nbargs 3 types: (const char *, char *, int) args: (path, buf, bufsiz) +syscall sys_chmod nr 90 nbargs 2 types: (const char *, umode_t) args: (filename, mode) +syscall sys_fchmod nr 91 nbargs 2 types: (unsigned int, umode_t) args: (fd, mode) +syscall sys_chown nr 92 nbargs 3 types: (const char *, uid_t, gid_t) args: (filename, user, group) +syscall sys_fchown nr 93 nbargs 3 types: (unsigned int, uid_t, gid_t) args: (fd, user, group) +syscall sys_lchown nr 94 nbargs 3 types: (const char *, uid_t, gid_t) args: (filename, user, group) +syscall sys_umask nr 95 nbargs 1 types: (int) args: (mask) +syscall sys_gettimeofday nr 96 nbargs 2 types: (struct timeval *, struct timezone *) args: (tv, tz) +syscall sys_getrlimit nr 97 nbargs 2 types: (unsigned int, struct rlimit *) args: (resource, rlim) +syscall sys_getrusage nr 98 nbargs 2 types: (int, struct rusage *) args: (who, ru) +syscall sys_sysinfo nr 99 nbargs 1 types: (struct sysinfo *) args: (info) +syscall sys_times nr 100 nbargs 1 types: (struct tms *) args: (tbuf) +syscall sys_ptrace nr 101 nbargs 4 types: (long, long, unsigned long, unsigned long) args: (request, pid, addr, data) +syscall sys_getuid nr 102 nbargs 0 types: () args: () +syscall sys_syslog nr 103 nbargs 3 types: (int, char *, int) args: (type, buf, len) +syscall sys_getgid nr 104 nbargs 0 types: () args: () +syscall sys_setuid nr 105 nbargs 1 types: (uid_t) args: (uid) +syscall sys_setgid nr 106 nbargs 1 types: (gid_t) args: (gid) +syscall sys_geteuid nr 107 nbargs 0 types: () args: () +syscall sys_getegid nr 108 nbargs 0 types: () args: () +syscall sys_setpgid nr 109 nbargs 2 types: (pid_t, pid_t) args: (pid, pgid) +syscall sys_getppid nr 110 nbargs 0 types: () args: () +syscall sys_getpgrp nr 111 nbargs 0 types: () args: () +syscall sys_setsid nr 112 nbargs 0 types: () args: () +syscall sys_setreuid nr 113 nbargs 2 types: (uid_t, uid_t) args: (ruid, euid) +syscall sys_setregid nr 114 nbargs 2 types: (gid_t, gid_t) args: (rgid, egid) +syscall sys_getgroups nr 115 nbargs 2 types: (int, gid_t *) args: (gidsetsize, grouplist) +syscall sys_setgroups nr 116 nbargs 2 types: (int, gid_t *) args: (gidsetsize, grouplist) +syscall sys_setresuid nr 117 nbargs 3 types: (uid_t, uid_t, uid_t) args: (ruid, euid, suid) +syscall sys_getresuid nr 118 nbargs 3 types: (uid_t *, uid_t *, uid_t *) args: (ruidp, euidp, suidp) +syscall sys_setresgid nr 119 nbargs 3 types: (gid_t, gid_t, gid_t) args: (rgid, egid, sgid) +syscall sys_getresgid nr 120 nbargs 3 types: (gid_t *, gid_t *, gid_t *) args: (rgidp, egidp, sgidp) +syscall sys_getpgid nr 121 nbargs 1 types: (pid_t) args: (pid) +syscall sys_setfsuid nr 122 nbargs 1 types: (uid_t) args: (uid) +syscall sys_setfsgid nr 123 nbargs 1 types: (gid_t) args: (gid) +syscall sys_getsid nr 124 nbargs 1 types: (pid_t) args: (pid) +syscall sys_capget nr 125 nbargs 2 types: (cap_user_header_t, cap_user_data_t) args: (header, dataptr) +syscall sys_capset nr 126 nbargs 2 types: (cap_user_header_t, const cap_user_data_t) args: (header, data) +syscall sys_rt_sigpending nr 127 nbargs 2 types: (sigset_t *, size_t) args: (uset, sigsetsize) +syscall sys_rt_sigtimedwait nr 128 nbargs 4 types: (const sigset_t *, siginfo_t *, const struct timespec *, size_t) args: (uthese, uinfo, uts, sigsetsize) +syscall sys_rt_sigqueueinfo nr 129 nbargs 3 types: (pid_t, int, siginfo_t *) args: (pid, sig, uinfo) +syscall sys_rt_sigsuspend nr 130 nbargs 2 types: (sigset_t *, size_t) args: (unewset, sigsetsize) +syscall sys_sigaltstack nr 131 nbargs 2 types: (const stack_t *, stack_t *) args: (uss, uoss) +syscall sys_utime nr 132 nbargs 2 types: (char *, struct utimbuf *) args: (filename, times) +syscall sys_mknod nr 133 nbargs 3 types: (const char *, umode_t, unsigned) args: (filename, mode, dev) +syscall sys_personality nr 135 nbargs 1 types: (unsigned int) args: (personality) +syscall sys_ustat nr 136 nbargs 2 types: (unsigned, struct ustat *) args: (dev, ubuf) +syscall sys_statfs nr 137 nbargs 2 types: (const char *, struct statfs *) args: (pathname, buf) +syscall sys_fstatfs nr 138 nbargs 2 types: (unsigned int, struct statfs *) args: (fd, buf) +syscall sys_sysfs nr 139 nbargs 3 types: (int, unsigned long, unsigned long) args: (option, arg1, arg2) +syscall sys_getpriority nr 140 nbargs 2 types: (int, int) args: (which, who) +syscall sys_setpriority nr 141 nbargs 3 types: (int, int, int) args: (which, who, niceval) +syscall sys_sched_setparam nr 142 nbargs 2 types: (pid_t, struct sched_param *) args: (pid, param) +syscall sys_sched_getparam nr 143 nbargs 2 types: (pid_t, struct sched_param *) args: (pid, param) +syscall sys_sched_setscheduler nr 144 nbargs 3 types: (pid_t, int, struct sched_param *) args: (pid, policy, param) +syscall sys_sched_getscheduler nr 145 nbargs 1 types: (pid_t) args: (pid) +syscall sys_sched_get_priority_max nr 146 nbargs 1 types: (int) args: (policy) +syscall sys_sched_get_priority_min nr 147 nbargs 1 types: (int) args: (policy) +syscall sys_sched_rr_get_interval nr 148 nbargs 2 types: (pid_t, struct timespec *) args: (pid, interval) +syscall sys_mlock nr 149 nbargs 2 types: (unsigned long, size_t) args: (start, len) +syscall sys_munlock nr 150 nbargs 2 types: (unsigned long, size_t) args: (start, len) +syscall sys_mlockall nr 151 nbargs 1 types: (int) args: (flags) +syscall sys_munlockall nr 152 nbargs 0 types: () args: () +syscall sys_vhangup nr 153 nbargs 0 types: () args: () +syscall sys_pivot_root nr 155 nbargs 2 types: (const char *, const char *) args: (new_root, put_old) +syscall sys_sysctl nr 156 nbargs 1 types: (struct __sysctl_args *) args: (args) +syscall sys_prctl nr 157 nbargs 5 types: (int, unsigned long, unsigned long, unsigned long, unsigned long) args: (option, arg2, arg3, arg4, arg5) +syscall sys_adjtimex nr 159 nbargs 1 types: (struct timex *) args: (txc_p) +syscall sys_setrlimit nr 160 nbargs 2 types: (unsigned int, struct rlimit *) args: (resource, rlim) +syscall sys_chroot nr 161 nbargs 1 types: (const char *) args: (filename) +syscall sys_sync nr 162 nbargs 0 types: () args: () +syscall sys_acct nr 163 nbargs 1 types: (const char *) args: (name) +syscall sys_settimeofday nr 164 nbargs 2 types: (struct timeval *, struct timezone *) args: (tv, tz) +syscall sys_mount nr 165 nbargs 5 types: (char *, char *, char *, unsigned long, void *) args: (dev_name, dir_name, type, flags, data) +syscall sys_umount nr 166 nbargs 2 types: (char *, int) args: (name, flags) +syscall sys_swapon nr 167 nbargs 2 types: (const char *, int) args: (specialfile, swap_flags) +syscall sys_swapoff nr 168 nbargs 1 types: (const char *) args: (specialfile) +syscall sys_reboot nr 169 nbargs 4 types: (int, int, unsigned int, void *) args: (magic1, magic2, cmd, arg) +syscall sys_sethostname nr 170 nbargs 2 types: (char *, int) args: (name, len) +syscall sys_setdomainname nr 171 nbargs 2 types: (char *, int) args: (name, len) +syscall sys_init_module nr 175 nbargs 3 types: (void *, unsigned long, const char *) args: (umod, len, uargs) +syscall sys_delete_module nr 176 nbargs 2 types: (const char *, unsigned int) args: (name_user, flags) +syscall sys_quotactl nr 179 nbargs 4 types: (unsigned int, const char *, qid_t, void *) args: (cmd, special, id, addr) +syscall sys_gettid nr 186 nbargs 0 types: () args: () +syscall sys_readahead nr 187 nbargs 3 types: (int, loff_t, size_t) args: (fd, offset, count) +syscall sys_setxattr nr 188 nbargs 5 types: (const char *, const char *, const void *, size_t, int) args: (pathname, name, value, size, flags) +syscall sys_lsetxattr nr 189 nbargs 5 types: (const char *, const char *, const void *, size_t, int) args: (pathname, name, value, size, flags) +syscall sys_fsetxattr nr 190 nbargs 5 types: (int, const char *, const void *, size_t, int) args: (fd, name, value, size, flags) +syscall sys_getxattr nr 191 nbargs 4 types: (const char *, const char *, void *, size_t) args: (pathname, name, value, size) +syscall sys_lgetxattr nr 192 nbargs 4 types: (const char *, const char *, void *, size_t) args: (pathname, name, value, size) +syscall sys_fgetxattr nr 193 nbargs 4 types: (int, const char *, void *, size_t) args: (fd, name, value, size) +syscall sys_listxattr nr 194 nbargs 3 types: (const char *, char *, size_t) args: (pathname, list, size) +syscall sys_llistxattr nr 195 nbargs 3 types: (const char *, char *, size_t) args: (pathname, list, size) +syscall sys_flistxattr nr 196 nbargs 3 types: (int, char *, size_t) args: (fd, list, size) +syscall sys_removexattr nr 197 nbargs 2 types: (const char *, const char *) args: (pathname, name) +syscall sys_lremovexattr nr 198 nbargs 2 types: (const char *, const char *) args: (pathname, name) +syscall sys_fremovexattr nr 199 nbargs 2 types: (int, const char *) args: (fd, name) +syscall sys_tkill nr 200 nbargs 2 types: (pid_t, int) args: (pid, sig) +syscall sys_time nr 201 nbargs 1 types: (time_t *) args: (tloc) +syscall sys_futex nr 202 nbargs 6 types: (u32 *, int, u32, struct timespec *, u32 *, u32) args: (uaddr, op, val, utime, uaddr2, val3) +syscall sys_sched_setaffinity nr 203 nbargs 3 types: (pid_t, unsigned int, unsigned long *) args: (pid, len, user_mask_ptr) +syscall sys_sched_getaffinity nr 204 nbargs 3 types: (pid_t, unsigned int, unsigned long *) args: (pid, len, user_mask_ptr) +syscall sys_io_setup nr 206 nbargs 2 types: (unsigned, aio_context_t *) args: (nr_events, ctxp) +syscall sys_io_destroy nr 207 nbargs 1 types: (aio_context_t) args: (ctx) +syscall sys_io_getevents nr 208 nbargs 5 types: (aio_context_t, long, long, struct io_event *, struct timespec *) args: (ctx_id, min_nr, nr, events, timeout) +syscall sys_io_submit nr 209 nbargs 3 types: (aio_context_t, long, struct iocb * *) args: (ctx_id, nr, iocbpp) +syscall sys_io_cancel nr 210 nbargs 3 types: (aio_context_t, struct iocb *, struct io_event *) args: (ctx_id, iocb, result) +syscall sys_lookup_dcookie nr 212 nbargs 3 types: (u64, char *, size_t) args: (cookie64, buf, len) +syscall sys_epoll_create nr 213 nbargs 1 types: (int) args: (size) +syscall sys_remap_file_pages nr 216 nbargs 5 types: (unsigned long, unsigned long, unsigned long, unsigned long, unsigned long) args: (start, size, prot, pgoff, flags) +syscall sys_getdents64 nr 217 nbargs 3 types: (unsigned int, struct linux_dirent64 *, unsigned int) args: (fd, dirent, count) +syscall sys_set_tid_address nr 218 nbargs 1 types: (int *) args: (tidptr) +syscall sys_restart_syscall nr 219 nbargs 0 types: () args: () +syscall sys_semtimedop nr 220 nbargs 4 types: (int, struct sembuf *, unsigned, const struct timespec *) args: (semid, tsops, nsops, timeout) +syscall sys_fadvise64 nr 221 nbargs 4 types: (int, loff_t, size_t, int) args: (fd, offset, len, advice) +syscall sys_timer_create nr 222 nbargs 3 types: (const clockid_t, struct sigevent *, timer_t *) args: (which_clock, timer_event_spec, created_timer_id) +syscall sys_timer_settime nr 223 nbargs 4 types: (timer_t, int, const struct itimerspec *, struct itimerspec *) args: (timer_id, flags, new_setting, old_setting) +syscall sys_timer_gettime nr 224 nbargs 2 types: (timer_t, struct itimerspec *) args: (timer_id, setting) +syscall sys_timer_getoverrun nr 225 nbargs 1 types: (timer_t) args: (timer_id) +syscall sys_timer_delete nr 226 nbargs 1 types: (timer_t) args: (timer_id) +syscall sys_clock_settime nr 227 nbargs 2 types: (const clockid_t, const struct timespec *) args: (which_clock, tp) +syscall sys_clock_gettime nr 228 nbargs 2 types: (const clockid_t, struct timespec *) args: (which_clock, tp) +syscall sys_clock_getres nr 229 nbargs 2 types: (const clockid_t, struct timespec *) args: (which_clock, tp) +syscall sys_clock_nanosleep nr 230 nbargs 4 types: (const clockid_t, int, const struct timespec *, struct timespec *) args: (which_clock, flags, rqtp, rmtp) +syscall sys_exit_group nr 231 nbargs 1 types: (int) args: (error_code) +syscall sys_epoll_wait nr 232 nbargs 4 types: (int, struct epoll_event *, int, int) args: (epfd, events, maxevents, timeout) +syscall sys_epoll_ctl nr 233 nbargs 4 types: (int, int, int, struct epoll_event *) args: (epfd, op, fd, event) +syscall sys_tgkill nr 234 nbargs 3 types: (pid_t, pid_t, int) args: (tgid, pid, sig) +syscall sys_utimes nr 235 nbargs 2 types: (char *, struct timeval *) args: (filename, utimes) +syscall sys_mbind nr 237 nbargs 6 types: (unsigned long, unsigned long, unsigned long, unsigned long *, unsigned long, unsigned) args: (start, len, mode, nmask, maxnode, flags) +syscall sys_set_mempolicy nr 238 nbargs 3 types: (int, unsigned long *, unsigned long) args: (mode, nmask, maxnode) +syscall sys_get_mempolicy nr 239 nbargs 5 types: (int *, unsigned long *, unsigned long, unsigned long, unsigned long) args: (policy, nmask, maxnode, addr, flags) +syscall sys_mq_open nr 240 nbargs 4 types: (const char *, int, umode_t, struct mq_attr *) args: (u_name, oflag, mode, u_attr) +syscall sys_mq_unlink nr 241 nbargs 1 types: (const char *) args: (u_name) +syscall sys_mq_timedsend nr 242 nbargs 5 types: (mqd_t, const char *, size_t, unsigned int, const struct timespec *) args: (mqdes, u_msg_ptr, msg_len, msg_prio, u_abs_timeout) +syscall sys_mq_timedreceive nr 243 nbargs 5 types: (mqd_t, char *, size_t, unsigned int *, const struct timespec *) args: (mqdes, u_msg_ptr, msg_len, u_msg_prio, u_abs_timeout) +syscall sys_mq_notify nr 244 nbargs 2 types: (mqd_t, const struct sigevent *) args: (mqdes, u_notification) +syscall sys_mq_getsetattr nr 245 nbargs 3 types: (mqd_t, const struct mq_attr *, struct mq_attr *) args: (mqdes, u_mqstat, u_omqstat) +syscall sys_kexec_load nr 246 nbargs 4 types: (unsigned long, unsigned long, struct kexec_segment *, unsigned long) args: (entry, nr_segments, segments, flags) +syscall sys_waitid nr 247 nbargs 5 types: (int, pid_t, struct siginfo *, int, struct rusage *) args: (which, upid, infop, options, ru) +syscall sys_add_key nr 248 nbargs 5 types: (const char *, const char *, const void *, size_t, key_serial_t) args: (_type, _description, _payload, plen, ringid) +syscall sys_request_key nr 249 nbargs 4 types: (const char *, const char *, const char *, key_serial_t) args: (_type, _description, _callout_info, destringid) +syscall sys_keyctl nr 250 nbargs 5 types: (int, unsigned long, unsigned long, unsigned long, unsigned long) args: (option, arg2, arg3, arg4, arg5) +syscall sys_ioprio_set nr 251 nbargs 3 types: (int, int, int) args: (which, who, ioprio) +syscall sys_ioprio_get nr 252 nbargs 2 types: (int, int) args: (which, who) +syscall sys_inotify_init nr 253 nbargs 0 types: () args: () +syscall sys_inotify_add_watch nr 254 nbargs 3 types: (int, const char *, u32) args: (fd, pathname, mask) +syscall sys_inotify_rm_watch nr 255 nbargs 2 types: (int, __s32) args: (fd, wd) +syscall sys_migrate_pages nr 256 nbargs 4 types: (pid_t, unsigned long, const unsigned long *, const unsigned long *) args: (pid, maxnode, old_nodes, new_nodes) +syscall sys_openat nr 257 nbargs 4 types: (int, const char *, int, umode_t) args: (dfd, filename, flags, mode) +syscall sys_mkdirat nr 258 nbargs 3 types: (int, const char *, umode_t) args: (dfd, pathname, mode) +syscall sys_mknodat nr 259 nbargs 4 types: (int, const char *, umode_t, unsigned) args: (dfd, filename, mode, dev) +syscall sys_fchownat nr 260 nbargs 5 types: (int, const char *, uid_t, gid_t, int) args: (dfd, filename, user, group, flag) +syscall sys_futimesat nr 261 nbargs 3 types: (int, const char *, struct timeval *) args: (dfd, filename, utimes) +syscall sys_newfstatat nr 262 nbargs 4 types: (int, const char *, struct stat *, int) args: (dfd, filename, statbuf, flag) +syscall sys_unlinkat nr 263 nbargs 3 types: (int, const char *, int) args: (dfd, pathname, flag) +syscall sys_renameat nr 264 nbargs 4 types: (int, const char *, int, const char *) args: (olddfd, oldname, newdfd, newname) +syscall sys_linkat nr 265 nbargs 5 types: (int, const char *, int, const char *, int) args: (olddfd, oldname, newdfd, newname, flags) +syscall sys_symlinkat nr 266 nbargs 3 types: (const char *, int, const char *) args: (oldname, newdfd, newname) +syscall sys_readlinkat nr 267 nbargs 4 types: (int, const char *, char *, int) args: (dfd, pathname, buf, bufsiz) +syscall sys_fchmodat nr 268 nbargs 3 types: (int, const char *, umode_t) args: (dfd, filename, mode) +syscall sys_faccessat nr 269 nbargs 3 types: (int, const char *, int) args: (dfd, filename, mode) +syscall sys_pselect6 nr 270 nbargs 6 types: (int, fd_set *, fd_set *, fd_set *, struct timespec *, void *) args: (n, inp, outp, exp, tsp, sig) +syscall sys_ppoll nr 271 nbargs 5 types: (struct pollfd *, unsigned int, struct timespec *, const sigset_t *, size_t) args: (ufds, nfds, tsp, sigmask, sigsetsize) +syscall sys_unshare nr 272 nbargs 1 types: (unsigned long) args: (unshare_flags) +syscall sys_set_robust_list nr 273 nbargs 2 types: (struct robust_list_head *, size_t) args: (head, len) +syscall sys_get_robust_list nr 274 nbargs 3 types: (int, struct robust_list_head * *, size_t *) args: (pid, head_ptr, len_ptr) +syscall sys_splice nr 275 nbargs 6 types: (int, loff_t *, int, loff_t *, size_t, unsigned int) args: (fd_in, off_in, fd_out, off_out, len, flags) +syscall sys_tee nr 276 nbargs 4 types: (int, int, size_t, unsigned int) args: (fdin, fdout, len, flags) +syscall sys_sync_file_range nr 277 nbargs 4 types: (int, loff_t, loff_t, unsigned int) args: (fd, offset, nbytes, flags) +syscall sys_vmsplice nr 278 nbargs 4 types: (int, const struct iovec *, unsigned long, unsigned int) args: (fd, iov, nr_segs, flags) +syscall sys_move_pages nr 279 nbargs 6 types: (pid_t, unsigned long, const void * *, const int *, int *, int) args: (pid, nr_pages, pages, nodes, status, flags) +syscall sys_utimensat nr 280 nbargs 4 types: (int, const char *, struct timespec *, int) args: (dfd, filename, utimes, flags) +syscall sys_epoll_pwait nr 281 nbargs 6 types: (int, struct epoll_event *, int, int, const sigset_t *, size_t) args: (epfd, events, maxevents, timeout, sigmask, sigsetsize) +syscall sys_signalfd nr 282 nbargs 3 types: (int, sigset_t *, size_t) args: (ufd, user_mask, sizemask) +syscall sys_timerfd_create nr 283 nbargs 2 types: (int, int) args: (clockid, flags) +syscall sys_eventfd nr 284 nbargs 1 types: (unsigned int) args: (count) +syscall sys_fallocate nr 285 nbargs 4 types: (int, int, loff_t, loff_t) args: (fd, mode, offset, len) +syscall sys_timerfd_settime nr 286 nbargs 4 types: (int, int, const struct itimerspec *, struct itimerspec *) args: (ufd, flags, utmr, otmr) +syscall sys_timerfd_gettime nr 287 nbargs 2 types: (int, struct itimerspec *) args: (ufd, otmr) +syscall sys_accept4 nr 288 nbargs 4 types: (int, struct sockaddr *, int *, int) args: (fd, upeer_sockaddr, upeer_addrlen, flags) +syscall sys_signalfd4 nr 289 nbargs 4 types: (int, sigset_t *, size_t, int) args: (ufd, user_mask, sizemask, flags) +syscall sys_eventfd2 nr 290 nbargs 2 types: (unsigned int, int) args: (count, flags) +syscall sys_epoll_create1 nr 291 nbargs 1 types: (int) args: (flags) +syscall sys_dup3 nr 292 nbargs 3 types: (unsigned int, unsigned int, int) args: (oldfd, newfd, flags) +syscall sys_pipe2 nr 293 nbargs 2 types: (int *, int) args: (fildes, flags) +syscall sys_inotify_init1 nr 294 nbargs 1 types: (int) args: (flags) +syscall sys_preadv nr 295 nbargs 5 types: (unsigned long, const struct iovec *, unsigned long, unsigned long, unsigned long) args: (fd, vec, vlen, pos_l, pos_h) +syscall sys_pwritev nr 296 nbargs 5 types: (unsigned long, const struct iovec *, unsigned long, unsigned long, unsigned long) args: (fd, vec, vlen, pos_l, pos_h) +syscall sys_rt_tgsigqueueinfo nr 297 nbargs 4 types: (pid_t, pid_t, int, siginfo_t *) args: (tgid, pid, sig, uinfo) +syscall sys_perf_event_open nr 298 nbargs 5 types: (struct perf_event_attr *, pid_t, int, int, unsigned long) args: (attr_uptr, pid, cpu, group_fd, flags) +syscall sys_recvmmsg nr 299 nbargs 5 types: (int, struct mmsghdr *, unsigned int, unsigned int, struct timespec *) args: (fd, mmsg, vlen, flags, timeout) +syscall sys_fanotify_init nr 300 nbargs 2 types: (unsigned int, unsigned int) args: (flags, event_f_flags) +syscall sys_fanotify_mark nr 301 nbargs 5 types: (int, unsigned int, __u64, int, const char *) args: (fanotify_fd, flags, mask, dfd, pathname) +syscall sys_prlimit64 nr 302 nbargs 4 types: (pid_t, unsigned int, const struct rlimit64 *, struct rlimit64 *) args: (pid, resource, new_rlim, old_rlim) +syscall sys_name_to_handle_at nr 303 nbargs 5 types: (int, const char *, struct file_handle *, int *, int) args: (dfd, name, handle, mnt_id, flag) +syscall sys_open_by_handle_at nr 304 nbargs 3 types: (int, struct file_handle *, int) args: (mountdirfd, handle, flags) +syscall sys_clock_adjtime nr 305 nbargs 2 types: (const clockid_t, struct timex *) args: (which_clock, utx) +syscall sys_syncfs nr 306 nbargs 1 types: (int) args: (fd) +syscall sys_sendmmsg nr 307 nbargs 4 types: (int, struct mmsghdr *, unsigned int, unsigned int) args: (fd, mmsg, vlen, flags) +syscall sys_setns nr 308 nbargs 2 types: (int, int) args: (fd, nstype) +syscall sys_getcpu nr 309 nbargs 3 types: (unsigned *, unsigned *, struct getcpu_cache *) args: (cpup, nodep, unused) +syscall sys_process_vm_readv nr 310 nbargs 6 types: (pid_t, const struct iovec *, unsigned long, const struct iovec *, unsigned long, unsigned long) args: (pid, lvec, liovcnt, rvec, riovcnt, flags) +syscall sys_process_vm_writev nr 311 nbargs 6 types: (pid_t, const struct iovec *, unsigned long, const struct iovec *, unsigned long, unsigned long) args: (pid, lvec, liovcnt, rvec, riovcnt, flags) +syscall sys_finit_module nr 313 nbargs 3 types: (int, const char *, int) args: (fd, uargs, flags) +SUCCESS --- linux-3.11.0.orig/ubuntu/lttng-modules/instrumentation/syscalls/headers/mips-64-syscalls-3.5.0_integers_override.h +++ linux-3.11.0/ubuntu/lttng-modules/instrumentation/syscalls/headers/mips-64-syscalls-3.5.0_integers_override.h @@ -0,0 +1,3 @@ +/* + * this is a place-holder for MIPS integer syscall definition override. + */ --- linux-3.11.0.orig/ubuntu/lttng-modules/instrumentation/syscalls/headers/x86-32-syscalls-3.1.0-rc6_pointers_override.h +++ linux-3.11.0/ubuntu/lttng-modules/instrumentation/syscalls/headers/x86-32-syscalls-3.1.0-rc6_pointers_override.h @@ -0,0 +1,33 @@ + +#ifndef CREATE_SYSCALL_TABLE + +# ifndef CONFIG_UID16 +# define OVERRIDE_32_sys_getgroups16 +# define OVERRIDE_32_sys_setgroups16 +# define OVERRIDE_32_sys_lchown16 +# define OVERRIDE_32_sys_getresuid16 +# define OVERRIDE_32_sys_getresgid16 +# define OVERRIDE_32_sys_chown16 +# endif + +#else /* CREATE_SYSCALL_TABLE */ + +# ifndef CONFIG_UID16 +# define OVERRIDE_TABLE_32_sys_getgroups16 +# define OVERRIDE_TABLE_32_sys_setgroups16 +# define OVERRIDE_TABLE_32_sys_lchown16 +# define OVERRIDE_TABLE_32_sys_getresuid16 +# define OVERRIDE_TABLE_32_sys_getresgid16 +# define OVERRIDE_TABLE_32_sys_chown16 +# endif + +#define OVERRIDE_TABLE_32_sys_execve +TRACE_SYSCALL_TABLE(sys_execve, sys_execve, 11, 3) +#define OVERRIDE_TABLE_32_sys_clone +TRACE_SYSCALL_TABLE(sys_clone, sys_clone, 120, 5) +#define OVERRIDE_TABLE_32_sys_getcpu +TRACE_SYSCALL_TABLE(sys_getcpu, sys_getcpu, 318, 3) + +#endif /* CREATE_SYSCALL_TABLE */ + + --- linux-3.11.0.orig/ubuntu/lttng-modules/instrumentation/syscalls/headers/compat_syscalls_integers.h +++ linux-3.11.0/ubuntu/lttng-modules/instrumentation/syscalls/headers/compat_syscalls_integers.h @@ -0,0 +1,3 @@ +#ifdef CONFIG_X86_64 +#include "x86-32-syscalls-3.1.0-rc6_integers.h" +#endif --- linux-3.11.0.orig/ubuntu/lttng-modules/instrumentation/syscalls/headers/arm-32-syscalls-3.4.25_pointers.h +++ linux-3.11.0/ubuntu/lttng-modules/instrumentation/syscalls/headers/arm-32-syscalls-3.4.25_pointers.h @@ -0,0 +1,2316 @@ +/* THIS FILE IS AUTO-GENERATED. DO NOT EDIT */ +#ifndef CREATE_SYSCALL_TABLE + +#if !defined(_TRACE_SYSCALLS_POINTERS_H) || defined(TRACE_HEADER_MULTI_READ) +#define _TRACE_SYSCALLS_POINTERS_H + +#include +#include +#include "arm-32-syscalls-3.4.25_pointers_override.h" +#include "syscalls_pointers_override.h" + +#ifndef OVERRIDE_32_sys_unlink +SC_TRACE_EVENT(sys_unlink, + TP_PROTO(const char * pathname), + TP_ARGS(pathname), + TP_STRUCT__entry(__string_from_user(pathname, pathname)), + TP_fast_assign(tp_copy_string_from_user(pathname, pathname)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_chdir +SC_TRACE_EVENT(sys_chdir, + TP_PROTO(const char * filename), + TP_ARGS(filename), + TP_STRUCT__entry(__string_from_user(filename, filename)), + TP_fast_assign(tp_copy_string_from_user(filename, filename)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_rmdir +SC_TRACE_EVENT(sys_rmdir, + TP_PROTO(const char * pathname), + TP_ARGS(pathname), + TP_STRUCT__entry(__string_from_user(pathname, pathname)), + TP_fast_assign(tp_copy_string_from_user(pathname, pathname)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_pipe +SC_TRACE_EVENT(sys_pipe, + TP_PROTO(int * fildes), + TP_ARGS(fildes), + TP_STRUCT__entry(__field_hex(int *, fildes)), + TP_fast_assign(tp_assign(fildes, fildes)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_times +SC_TRACE_EVENT(sys_times, + TP_PROTO(struct tms * tbuf), + TP_ARGS(tbuf), + TP_STRUCT__entry(__field_hex(struct tms *, tbuf)), + TP_fast_assign(tp_assign(tbuf, tbuf)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_acct +SC_TRACE_EVENT(sys_acct, + TP_PROTO(const char * name), + TP_ARGS(name), + TP_STRUCT__entry(__string_from_user(name, name)), + TP_fast_assign(tp_copy_string_from_user(name, name)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_chroot +SC_TRACE_EVENT(sys_chroot, + TP_PROTO(const char * filename), + TP_ARGS(filename), + TP_STRUCT__entry(__string_from_user(filename, filename)), + TP_fast_assign(tp_copy_string_from_user(filename, filename)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_sigpending +SC_TRACE_EVENT(sys_sigpending, + TP_PROTO(old_sigset_t * set), + TP_ARGS(set), + TP_STRUCT__entry(__field_hex(old_sigset_t *, set)), + TP_fast_assign(tp_assign(set, set)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_uselib +SC_TRACE_EVENT(sys_uselib, + TP_PROTO(const char * library), + TP_ARGS(library), + TP_STRUCT__entry(__field_hex(const char *, library)), + TP_fast_assign(tp_assign(library, library)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_swapoff +SC_TRACE_EVENT(sys_swapoff, + TP_PROTO(const char * specialfile), + TP_ARGS(specialfile), + TP_STRUCT__entry(__string_from_user(specialfile, specialfile)), + TP_fast_assign(tp_copy_string_from_user(specialfile, specialfile)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_sysinfo +SC_TRACE_EVENT(sys_sysinfo, + TP_PROTO(struct sysinfo * info), + TP_ARGS(info), + TP_STRUCT__entry(__field_hex(struct sysinfo *, info)), + TP_fast_assign(tp_assign(info, info)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_newuname +SC_TRACE_EVENT(sys_newuname, + TP_PROTO(struct new_utsname * name), + TP_ARGS(name), + TP_STRUCT__entry(__field_hex(struct new_utsname *, name)), + TP_fast_assign(tp_assign(name, name)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_adjtimex +SC_TRACE_EVENT(sys_adjtimex, + TP_PROTO(struct timex * txc_p), + TP_ARGS(txc_p), + TP_STRUCT__entry(__field_hex(struct timex *, txc_p)), + TP_fast_assign(tp_assign(txc_p, txc_p)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_sysctl +SC_TRACE_EVENT(sys_sysctl, + TP_PROTO(struct __sysctl_args * args), + TP_ARGS(args), + TP_STRUCT__entry(__field_hex(struct __sysctl_args *, args)), + TP_fast_assign(tp_assign(args, args)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_set_tid_address +SC_TRACE_EVENT(sys_set_tid_address, + TP_PROTO(int * tidptr), + TP_ARGS(tidptr), + TP_STRUCT__entry(__field_hex(int *, tidptr)), + TP_fast_assign(tp_assign(tidptr, tidptr)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_mq_unlink +SC_TRACE_EVENT(sys_mq_unlink, + TP_PROTO(const char * u_name), + TP_ARGS(u_name), + TP_STRUCT__entry(__string_from_user(u_name, u_name)), + TP_fast_assign(tp_copy_string_from_user(u_name, u_name)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_shmdt +SC_TRACE_EVENT(sys_shmdt, + TP_PROTO(char * shmaddr), + TP_ARGS(shmaddr), + TP_STRUCT__entry(__field_hex(char *, shmaddr)), + TP_fast_assign(tp_assign(shmaddr, shmaddr)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_creat +SC_TRACE_EVENT(sys_creat, + TP_PROTO(const char * pathname, umode_t mode), + TP_ARGS(pathname, mode), + TP_STRUCT__entry(__string_from_user(pathname, pathname) __field(umode_t, mode)), + TP_fast_assign(tp_copy_string_from_user(pathname, pathname) tp_assign(mode, mode)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_link +SC_TRACE_EVENT(sys_link, + TP_PROTO(const char * oldname, const char * newname), + TP_ARGS(oldname, newname), + TP_STRUCT__entry(__string_from_user(oldname, oldname) __string_from_user(newname, newname)), + TP_fast_assign(tp_copy_string_from_user(oldname, oldname) tp_copy_string_from_user(newname, newname)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_chmod +SC_TRACE_EVENT(sys_chmod, + TP_PROTO(const char * filename, umode_t mode), + TP_ARGS(filename, mode), + TP_STRUCT__entry(__string_from_user(filename, filename) __field(umode_t, mode)), + TP_fast_assign(tp_copy_string_from_user(filename, filename) tp_assign(mode, mode)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_access +SC_TRACE_EVENT(sys_access, + TP_PROTO(const char * filename, int mode), + TP_ARGS(filename, mode), + TP_STRUCT__entry(__string_from_user(filename, filename) __field(int, mode)), + TP_fast_assign(tp_copy_string_from_user(filename, filename) tp_assign(mode, mode)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_rename +SC_TRACE_EVENT(sys_rename, + TP_PROTO(const char * oldname, const char * newname), + TP_ARGS(oldname, newname), + TP_STRUCT__entry(__string_from_user(oldname, oldname) __string_from_user(newname, newname)), + TP_fast_assign(tp_copy_string_from_user(oldname, oldname) tp_copy_string_from_user(newname, newname)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_mkdir +SC_TRACE_EVENT(sys_mkdir, + TP_PROTO(const char * pathname, umode_t mode), + TP_ARGS(pathname, mode), + TP_STRUCT__entry(__string_from_user(pathname, pathname) __field(umode_t, mode)), + TP_fast_assign(tp_copy_string_from_user(pathname, pathname) tp_assign(mode, mode)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_umount +SC_TRACE_EVENT(sys_umount, + TP_PROTO(char * name, int flags), + TP_ARGS(name, flags), + TP_STRUCT__entry(__string_from_user(name, name) __field(int, flags)), + TP_fast_assign(tp_copy_string_from_user(name, name) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_ustat +SC_TRACE_EVENT(sys_ustat, + TP_PROTO(unsigned dev, struct ustat * ubuf), + TP_ARGS(dev, ubuf), + TP_STRUCT__entry(__field(unsigned, dev) __field_hex(struct ustat *, ubuf)), + TP_fast_assign(tp_assign(dev, dev) tp_assign(ubuf, ubuf)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_sethostname +SC_TRACE_EVENT(sys_sethostname, + TP_PROTO(char * name, int len), + TP_ARGS(name, len), + TP_STRUCT__entry(__string_from_user(name, name) __field(int, len)), + TP_fast_assign(tp_copy_string_from_user(name, name) tp_assign(len, len)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_setrlimit +SC_TRACE_EVENT(sys_setrlimit, + TP_PROTO(unsigned int resource, struct rlimit * rlim), + TP_ARGS(resource, rlim), + TP_STRUCT__entry(__field(unsigned int, resource) __field_hex(struct rlimit *, rlim)), + TP_fast_assign(tp_assign(resource, resource) tp_assign(rlim, rlim)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_getrusage +SC_TRACE_EVENT(sys_getrusage, + TP_PROTO(int who, struct rusage * ru), + TP_ARGS(who, ru), + TP_STRUCT__entry(__field(int, who) __field_hex(struct rusage *, ru)), + TP_fast_assign(tp_assign(who, who) tp_assign(ru, ru)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_gettimeofday +SC_TRACE_EVENT(sys_gettimeofday, + TP_PROTO(struct timeval * tv, struct timezone * tz), + TP_ARGS(tv, tz), + TP_STRUCT__entry(__field_hex(struct timeval *, tv) __field_hex(struct timezone *, tz)), + TP_fast_assign(tp_assign(tv, tv) tp_assign(tz, tz)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_settimeofday +SC_TRACE_EVENT(sys_settimeofday, + TP_PROTO(struct timeval * tv, struct timezone * tz), + TP_ARGS(tv, tz), + TP_STRUCT__entry(__field_hex(struct timeval *, tv) __field_hex(struct timezone *, tz)), + TP_fast_assign(tp_assign(tv, tv) tp_assign(tz, tz)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_getgroups16 +SC_TRACE_EVENT(sys_getgroups16, + TP_PROTO(int gidsetsize, old_gid_t * grouplist), + TP_ARGS(gidsetsize, grouplist), + TP_STRUCT__entry(__field(int, gidsetsize) __field_hex(old_gid_t *, grouplist)), + TP_fast_assign(tp_assign(gidsetsize, gidsetsize) tp_assign(grouplist, grouplist)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_setgroups16 +SC_TRACE_EVENT(sys_setgroups16, + TP_PROTO(int gidsetsize, old_gid_t * grouplist), + TP_ARGS(gidsetsize, grouplist), + TP_STRUCT__entry(__field(int, gidsetsize) __field_hex(old_gid_t *, grouplist)), + TP_fast_assign(tp_assign(gidsetsize, gidsetsize) tp_assign(grouplist, grouplist)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_symlink +SC_TRACE_EVENT(sys_symlink, + TP_PROTO(const char * oldname, const char * newname), + TP_ARGS(oldname, newname), + TP_STRUCT__entry(__string_from_user(oldname, oldname) __string_from_user(newname, newname)), + TP_fast_assign(tp_copy_string_from_user(oldname, oldname) tp_copy_string_from_user(newname, newname)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_swapon +SC_TRACE_EVENT(sys_swapon, + TP_PROTO(const char * specialfile, int swap_flags), + TP_ARGS(specialfile, swap_flags), + TP_STRUCT__entry(__string_from_user(specialfile, specialfile) __field(int, swap_flags)), + TP_fast_assign(tp_copy_string_from_user(specialfile, specialfile) tp_assign(swap_flags, swap_flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_truncate +SC_TRACE_EVENT(sys_truncate, + TP_PROTO(const char * path, long length), + TP_ARGS(path, length), + TP_STRUCT__entry(__string_from_user(path, path) __field(long, length)), + TP_fast_assign(tp_copy_string_from_user(path, path) tp_assign(length, length)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_statfs +SC_TRACE_EVENT(sys_statfs, + TP_PROTO(const char * pathname, struct statfs * buf), + TP_ARGS(pathname, buf), + TP_STRUCT__entry(__string_from_user(pathname, pathname) __field_hex(struct statfs *, buf)), + TP_fast_assign(tp_copy_string_from_user(pathname, pathname) tp_assign(buf, buf)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_fstatfs +SC_TRACE_EVENT(sys_fstatfs, + TP_PROTO(unsigned int fd, struct statfs * buf), + TP_ARGS(fd, buf), + TP_STRUCT__entry(__field(unsigned int, fd) __field_hex(struct statfs *, buf)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(buf, buf)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_getitimer +SC_TRACE_EVENT(sys_getitimer, + TP_PROTO(int which, struct itimerval * value), + TP_ARGS(which, value), + TP_STRUCT__entry(__field(int, which) __field_hex(struct itimerval *, value)), + TP_fast_assign(tp_assign(which, which) tp_assign(value, value)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_newstat +SC_TRACE_EVENT(sys_newstat, + TP_PROTO(const char * filename, struct stat * statbuf), + TP_ARGS(filename, statbuf), + TP_STRUCT__entry(__string_from_user(filename, filename) __field_hex(struct stat *, statbuf)), + TP_fast_assign(tp_copy_string_from_user(filename, filename) tp_assign(statbuf, statbuf)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_newlstat +SC_TRACE_EVENT(sys_newlstat, + TP_PROTO(const char * filename, struct stat * statbuf), + TP_ARGS(filename, statbuf), + TP_STRUCT__entry(__string_from_user(filename, filename) __field_hex(struct stat *, statbuf)), + TP_fast_assign(tp_copy_string_from_user(filename, filename) tp_assign(statbuf, statbuf)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_newfstat +SC_TRACE_EVENT(sys_newfstat, + TP_PROTO(unsigned int fd, struct stat * statbuf), + TP_ARGS(fd, statbuf), + TP_STRUCT__entry(__field(unsigned int, fd) __field_hex(struct stat *, statbuf)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(statbuf, statbuf)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_setdomainname +SC_TRACE_EVENT(sys_setdomainname, + TP_PROTO(char * name, int len), + TP_ARGS(name, len), + TP_STRUCT__entry(__string_from_user(name, name) __field(int, len)), + TP_fast_assign(tp_copy_string_from_user(name, name) tp_assign(len, len)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_delete_module +SC_TRACE_EVENT(sys_delete_module, + TP_PROTO(const char * name_user, unsigned int flags), + TP_ARGS(name_user, flags), + TP_STRUCT__entry(__string_from_user(name_user, name_user) __field(unsigned int, flags)), + TP_fast_assign(tp_copy_string_from_user(name_user, name_user) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_sched_setparam +SC_TRACE_EVENT(sys_sched_setparam, + TP_PROTO(pid_t pid, struct sched_param * param), + TP_ARGS(pid, param), + TP_STRUCT__entry(__field(pid_t, pid) __field_hex(struct sched_param *, param)), + TP_fast_assign(tp_assign(pid, pid) tp_assign(param, param)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_sched_getparam +SC_TRACE_EVENT(sys_sched_getparam, + TP_PROTO(pid_t pid, struct sched_param * param), + TP_ARGS(pid, param), + TP_STRUCT__entry(__field(pid_t, pid) __field_hex(struct sched_param *, param)), + TP_fast_assign(tp_assign(pid, pid) tp_assign(param, param)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_sched_rr_get_interval +SC_TRACE_EVENT(sys_sched_rr_get_interval, + TP_PROTO(pid_t pid, struct timespec * interval), + TP_ARGS(pid, interval), + TP_STRUCT__entry(__field(pid_t, pid) __field_hex(struct timespec *, interval)), + TP_fast_assign(tp_assign(pid, pid) tp_assign(interval, interval)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_nanosleep +SC_TRACE_EVENT(sys_nanosleep, + TP_PROTO(struct timespec * rqtp, struct timespec * rmtp), + TP_ARGS(rqtp, rmtp), + TP_STRUCT__entry(__field_hex(struct timespec *, rqtp) __field_hex(struct timespec *, rmtp)), + TP_fast_assign(tp_assign(rqtp, rqtp) tp_assign(rmtp, rmtp)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_rt_sigpending +SC_TRACE_EVENT(sys_rt_sigpending, + TP_PROTO(sigset_t * set, size_t sigsetsize), + TP_ARGS(set, sigsetsize), + TP_STRUCT__entry(__field_hex(sigset_t *, set) __field(size_t, sigsetsize)), + TP_fast_assign(tp_assign(set, set) tp_assign(sigsetsize, sigsetsize)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_rt_sigsuspend +SC_TRACE_EVENT(sys_rt_sigsuspend, + TP_PROTO(sigset_t * unewset, size_t sigsetsize), + TP_ARGS(unewset, sigsetsize), + TP_STRUCT__entry(__field_hex(sigset_t *, unewset) __field(size_t, sigsetsize)), + TP_fast_assign(tp_assign(unewset, unewset) tp_assign(sigsetsize, sigsetsize)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_getcwd +SC_TRACE_EVENT(sys_getcwd, + TP_PROTO(char * buf, unsigned long size), + TP_ARGS(buf, size), + TP_STRUCT__entry(__field_hex(char *, buf) __field(unsigned long, size)), + TP_fast_assign(tp_assign(buf, buf) tp_assign(size, size)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_getrlimit +SC_TRACE_EVENT(sys_getrlimit, + TP_PROTO(unsigned int resource, struct rlimit * rlim), + TP_ARGS(resource, rlim), + TP_STRUCT__entry(__field(unsigned int, resource) __field_hex(struct rlimit *, rlim)), + TP_fast_assign(tp_assign(resource, resource) tp_assign(rlim, rlim)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_stat64 +SC_TRACE_EVENT(sys_stat64, + TP_PROTO(const char * filename, struct stat64 * statbuf), + TP_ARGS(filename, statbuf), + TP_STRUCT__entry(__string_from_user(filename, filename) __field_hex(struct stat64 *, statbuf)), + TP_fast_assign(tp_copy_string_from_user(filename, filename) tp_assign(statbuf, statbuf)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_lstat64 +SC_TRACE_EVENT(sys_lstat64, + TP_PROTO(const char * filename, struct stat64 * statbuf), + TP_ARGS(filename, statbuf), + TP_STRUCT__entry(__string_from_user(filename, filename) __field_hex(struct stat64 *, statbuf)), + TP_fast_assign(tp_copy_string_from_user(filename, filename) tp_assign(statbuf, statbuf)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_fstat64 +SC_TRACE_EVENT(sys_fstat64, + TP_PROTO(unsigned long fd, struct stat64 * statbuf), + TP_ARGS(fd, statbuf), + TP_STRUCT__entry(__field(unsigned long, fd) __field_hex(struct stat64 *, statbuf)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(statbuf, statbuf)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_getgroups +SC_TRACE_EVENT(sys_getgroups, + TP_PROTO(int gidsetsize, gid_t * grouplist), + TP_ARGS(gidsetsize, grouplist), + TP_STRUCT__entry(__field(int, gidsetsize) __field_hex(gid_t *, grouplist)), + TP_fast_assign(tp_assign(gidsetsize, gidsetsize) tp_assign(grouplist, grouplist)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_setgroups +SC_TRACE_EVENT(sys_setgroups, + TP_PROTO(int gidsetsize, gid_t * grouplist), + TP_ARGS(gidsetsize, grouplist), + TP_STRUCT__entry(__field(int, gidsetsize) __field_hex(gid_t *, grouplist)), + TP_fast_assign(tp_assign(gidsetsize, gidsetsize) tp_assign(grouplist, grouplist)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_pivot_root +SC_TRACE_EVENT(sys_pivot_root, + TP_PROTO(const char * new_root, const char * put_old), + TP_ARGS(new_root, put_old), + TP_STRUCT__entry(__string_from_user(new_root, new_root) __string_from_user(put_old, put_old)), + TP_fast_assign(tp_copy_string_from_user(new_root, new_root) tp_copy_string_from_user(put_old, put_old)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_removexattr +SC_TRACE_EVENT(sys_removexattr, + TP_PROTO(const char * pathname, const char * name), + TP_ARGS(pathname, name), + TP_STRUCT__entry(__string_from_user(pathname, pathname) __string_from_user(name, name)), + TP_fast_assign(tp_copy_string_from_user(pathname, pathname) tp_copy_string_from_user(name, name)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_lremovexattr +SC_TRACE_EVENT(sys_lremovexattr, + TP_PROTO(const char * pathname, const char * name), + TP_ARGS(pathname, name), + TP_STRUCT__entry(__string_from_user(pathname, pathname) __string_from_user(name, name)), + TP_fast_assign(tp_copy_string_from_user(pathname, pathname) tp_copy_string_from_user(name, name)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_fremovexattr +SC_TRACE_EVENT(sys_fremovexattr, + TP_PROTO(int fd, const char * name), + TP_ARGS(fd, name), + TP_STRUCT__entry(__field(int, fd) __string_from_user(name, name)), + TP_fast_assign(tp_assign(fd, fd) tp_copy_string_from_user(name, name)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_io_setup +SC_TRACE_EVENT(sys_io_setup, + TP_PROTO(unsigned nr_events, aio_context_t * ctxp), + TP_ARGS(nr_events, ctxp), + TP_STRUCT__entry(__field(unsigned, nr_events) __field_hex(aio_context_t *, ctxp)), + TP_fast_assign(tp_assign(nr_events, nr_events) tp_assign(ctxp, ctxp)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_timer_gettime +SC_TRACE_EVENT(sys_timer_gettime, + TP_PROTO(timer_t timer_id, struct itimerspec * setting), + TP_ARGS(timer_id, setting), + TP_STRUCT__entry(__field(timer_t, timer_id) __field_hex(struct itimerspec *, setting)), + TP_fast_assign(tp_assign(timer_id, timer_id) tp_assign(setting, setting)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_clock_settime +SC_TRACE_EVENT(sys_clock_settime, + TP_PROTO(const clockid_t which_clock, const struct timespec * tp), + TP_ARGS(which_clock, tp), + TP_STRUCT__entry(__field(const clockid_t, which_clock) __field_hex(const struct timespec *, tp)), + TP_fast_assign(tp_assign(which_clock, which_clock) tp_assign(tp, tp)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_clock_gettime +SC_TRACE_EVENT(sys_clock_gettime, + TP_PROTO(const clockid_t which_clock, struct timespec * tp), + TP_ARGS(which_clock, tp), + TP_STRUCT__entry(__field(const clockid_t, which_clock) __field_hex(struct timespec *, tp)), + TP_fast_assign(tp_assign(which_clock, which_clock) tp_assign(tp, tp)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_clock_getres +SC_TRACE_EVENT(sys_clock_getres, + TP_PROTO(const clockid_t which_clock, struct timespec * tp), + TP_ARGS(which_clock, tp), + TP_STRUCT__entry(__field(const clockid_t, which_clock) __field_hex(struct timespec *, tp)), + TP_fast_assign(tp_assign(which_clock, which_clock) tp_assign(tp, tp)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_utimes +SC_TRACE_EVENT(sys_utimes, + TP_PROTO(char * filename, struct timeval * utimes), + TP_ARGS(filename, utimes), + TP_STRUCT__entry(__string_from_user(filename, filename) __field_hex(struct timeval *, utimes)), + TP_fast_assign(tp_copy_string_from_user(filename, filename) tp_assign(utimes, utimes)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_mq_notify +SC_TRACE_EVENT(sys_mq_notify, + TP_PROTO(mqd_t mqdes, const struct sigevent * u_notification), + TP_ARGS(mqdes, u_notification), + TP_STRUCT__entry(__field(mqd_t, mqdes) __field_hex(const struct sigevent *, u_notification)), + TP_fast_assign(tp_assign(mqdes, mqdes) tp_assign(u_notification, u_notification)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_set_robust_list +SC_TRACE_EVENT(sys_set_robust_list, + TP_PROTO(struct robust_list_head * head, size_t len), + TP_ARGS(head, len), + TP_STRUCT__entry(__field_hex(struct robust_list_head *, head) __field(size_t, len)), + TP_fast_assign(tp_assign(head, head) tp_assign(len, len)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_timerfd_gettime +SC_TRACE_EVENT(sys_timerfd_gettime, + TP_PROTO(int ufd, struct itimerspec * otmr), + TP_ARGS(ufd, otmr), + TP_STRUCT__entry(__field(int, ufd) __field_hex(struct itimerspec *, otmr)), + TP_fast_assign(tp_assign(ufd, ufd) tp_assign(otmr, otmr)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_pipe2 +SC_TRACE_EVENT(sys_pipe2, + TP_PROTO(int * fildes, int flags), + TP_ARGS(fildes, flags), + TP_STRUCT__entry(__field_hex(int *, fildes) __field(int, flags)), + TP_fast_assign(tp_assign(fildes, fildes) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_clock_adjtime +SC_TRACE_EVENT(sys_clock_adjtime, + TP_PROTO(const clockid_t which_clock, struct timex * utx), + TP_ARGS(which_clock, utx), + TP_STRUCT__entry(__field(const clockid_t, which_clock) __field_hex(struct timex *, utx)), + TP_fast_assign(tp_assign(which_clock, which_clock) tp_assign(utx, utx)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_read +SC_TRACE_EVENT(sys_read, + TP_PROTO(unsigned int fd, char * buf, size_t count), + TP_ARGS(fd, buf, count), + TP_STRUCT__entry(__field(unsigned int, fd) __field_hex(char *, buf) __field(size_t, count)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(buf, buf) tp_assign(count, count)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_write +SC_TRACE_EVENT(sys_write, + TP_PROTO(unsigned int fd, const char * buf, size_t count), + TP_ARGS(fd, buf, count), + TP_STRUCT__entry(__field(unsigned int, fd) __field_hex(const char *, buf) __field(size_t, count)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(buf, buf) tp_assign(count, count)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_open +SC_TRACE_EVENT(sys_open, + TP_PROTO(const char * filename, int flags, umode_t mode), + TP_ARGS(filename, flags, mode), + TP_STRUCT__entry(__string_from_user(filename, filename) __field(int, flags) __field(umode_t, mode)), + TP_fast_assign(tp_copy_string_from_user(filename, filename) tp_assign(flags, flags) tp_assign(mode, mode)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_mknod +SC_TRACE_EVENT(sys_mknod, + TP_PROTO(const char * filename, umode_t mode, unsigned dev), + TP_ARGS(filename, mode, dev), + TP_STRUCT__entry(__string_from_user(filename, filename) __field(umode_t, mode) __field(unsigned, dev)), + TP_fast_assign(tp_copy_string_from_user(filename, filename) tp_assign(mode, mode) tp_assign(dev, dev)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_lchown16 +SC_TRACE_EVENT(sys_lchown16, + TP_PROTO(const char * filename, old_uid_t user, old_gid_t group), + TP_ARGS(filename, user, group), + TP_STRUCT__entry(__string_from_user(filename, filename) __field(old_uid_t, user) __field(old_gid_t, group)), + TP_fast_assign(tp_copy_string_from_user(filename, filename) tp_assign(user, user) tp_assign(group, group)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_readlink +SC_TRACE_EVENT(sys_readlink, + TP_PROTO(const char * path, char * buf, int bufsiz), + TP_ARGS(path, buf, bufsiz), + TP_STRUCT__entry(__string_from_user(path, path) __field_hex(char *, buf) __field(int, bufsiz)), + TP_fast_assign(tp_copy_string_from_user(path, path) tp_assign(buf, buf) tp_assign(bufsiz, bufsiz)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_syslog +SC_TRACE_EVENT(sys_syslog, + TP_PROTO(int type, char * buf, int len), + TP_ARGS(type, buf, len), + TP_STRUCT__entry(__field(int, type) __field_hex(char *, buf) __field(int, len)), + TP_fast_assign(tp_assign(type, type) tp_assign(buf, buf) tp_assign(len, len)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_setitimer +SC_TRACE_EVENT(sys_setitimer, + TP_PROTO(int which, struct itimerval * value, struct itimerval * ovalue), + TP_ARGS(which, value, ovalue), + TP_STRUCT__entry(__field(int, which) __field_hex(struct itimerval *, value) __field_hex(struct itimerval *, ovalue)), + TP_fast_assign(tp_assign(which, which) tp_assign(value, value) tp_assign(ovalue, ovalue)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_sigprocmask +SC_TRACE_EVENT(sys_sigprocmask, + TP_PROTO(int how, old_sigset_t * nset, old_sigset_t * oset), + TP_ARGS(how, nset, oset), + TP_STRUCT__entry(__field(int, how) __field_hex(old_sigset_t *, nset) __field_hex(old_sigset_t *, oset)), + TP_fast_assign(tp_assign(how, how) tp_assign(nset, nset) tp_assign(oset, oset)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_init_module +SC_TRACE_EVENT(sys_init_module, + TP_PROTO(void * umod, unsigned long len, const char * uargs), + TP_ARGS(umod, len, uargs), + TP_STRUCT__entry(__field_hex(void *, umod) __field(unsigned long, len) __field_hex(const char *, uargs)), + TP_fast_assign(tp_assign(umod, umod) tp_assign(len, len) tp_assign(uargs, uargs)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_getdents +SC_TRACE_EVENT(sys_getdents, + TP_PROTO(unsigned int fd, struct linux_dirent * dirent, unsigned int count), + TP_ARGS(fd, dirent, count), + TP_STRUCT__entry(__field(unsigned int, fd) __field_hex(struct linux_dirent *, dirent) __field(unsigned int, count)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(dirent, dirent) tp_assign(count, count)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_readv +SC_TRACE_EVENT(sys_readv, + TP_PROTO(unsigned long fd, const struct iovec * vec, unsigned long vlen), + TP_ARGS(fd, vec, vlen), + TP_STRUCT__entry(__field(unsigned long, fd) __field_hex(const struct iovec *, vec) __field(unsigned long, vlen)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(vec, vec) tp_assign(vlen, vlen)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_writev +SC_TRACE_EVENT(sys_writev, + TP_PROTO(unsigned long fd, const struct iovec * vec, unsigned long vlen), + TP_ARGS(fd, vec, vlen), + TP_STRUCT__entry(__field(unsigned long, fd) __field_hex(const struct iovec *, vec) __field(unsigned long, vlen)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(vec, vec) tp_assign(vlen, vlen)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_sched_setscheduler +SC_TRACE_EVENT(sys_sched_setscheduler, + TP_PROTO(pid_t pid, int policy, struct sched_param * param), + TP_ARGS(pid, policy, param), + TP_STRUCT__entry(__field(pid_t, pid) __field(int, policy) __field_hex(struct sched_param *, param)), + TP_fast_assign(tp_assign(pid, pid) tp_assign(policy, policy) tp_assign(param, param)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_getresuid16 +SC_TRACE_EVENT(sys_getresuid16, + TP_PROTO(old_uid_t * ruid, old_uid_t * euid, old_uid_t * suid), + TP_ARGS(ruid, euid, suid), + TP_STRUCT__entry(__field_hex(old_uid_t *, ruid) __field_hex(old_uid_t *, euid) __field_hex(old_uid_t *, suid)), + TP_fast_assign(tp_assign(ruid, ruid) tp_assign(euid, euid) tp_assign(suid, suid)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_poll +SC_TRACE_EVENT(sys_poll, + TP_PROTO(struct pollfd * ufds, unsigned int nfds, int timeout_msecs), + TP_ARGS(ufds, nfds, timeout_msecs), + TP_STRUCT__entry(__field_hex(struct pollfd *, ufds) __field(unsigned int, nfds) __field(int, timeout_msecs)), + TP_fast_assign(tp_assign(ufds, ufds) tp_assign(nfds, nfds) tp_assign(timeout_msecs, timeout_msecs)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_getresgid16 +SC_TRACE_EVENT(sys_getresgid16, + TP_PROTO(old_gid_t * rgid, old_gid_t * egid, old_gid_t * sgid), + TP_ARGS(rgid, egid, sgid), + TP_STRUCT__entry(__field_hex(old_gid_t *, rgid) __field_hex(old_gid_t *, egid) __field_hex(old_gid_t *, sgid)), + TP_fast_assign(tp_assign(rgid, rgid) tp_assign(egid, egid) tp_assign(sgid, sgid)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_rt_sigqueueinfo +SC_TRACE_EVENT(sys_rt_sigqueueinfo, + TP_PROTO(pid_t pid, int sig, siginfo_t * uinfo), + TP_ARGS(pid, sig, uinfo), + TP_STRUCT__entry(__field(pid_t, pid) __field(int, sig) __field_hex(siginfo_t *, uinfo)), + TP_fast_assign(tp_assign(pid, pid) tp_assign(sig, sig) tp_assign(uinfo, uinfo)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_chown16 +SC_TRACE_EVENT(sys_chown16, + TP_PROTO(const char * filename, old_uid_t user, old_gid_t group), + TP_ARGS(filename, user, group), + TP_STRUCT__entry(__string_from_user(filename, filename) __field(old_uid_t, user) __field(old_gid_t, group)), + TP_fast_assign(tp_copy_string_from_user(filename, filename) tp_assign(user, user) tp_assign(group, group)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_lchown +SC_TRACE_EVENT(sys_lchown, + TP_PROTO(const char * filename, uid_t user, gid_t group), + TP_ARGS(filename, user, group), + TP_STRUCT__entry(__string_from_user(filename, filename) __field(uid_t, user) __field(gid_t, group)), + TP_fast_assign(tp_copy_string_from_user(filename, filename) tp_assign(user, user) tp_assign(group, group)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_getresuid +SC_TRACE_EVENT(sys_getresuid, + TP_PROTO(uid_t * ruid, uid_t * euid, uid_t * suid), + TP_ARGS(ruid, euid, suid), + TP_STRUCT__entry(__field_hex(uid_t *, ruid) __field_hex(uid_t *, euid) __field_hex(uid_t *, suid)), + TP_fast_assign(tp_assign(ruid, ruid) tp_assign(euid, euid) tp_assign(suid, suid)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_getresgid +SC_TRACE_EVENT(sys_getresgid, + TP_PROTO(gid_t * rgid, gid_t * egid, gid_t * sgid), + TP_ARGS(rgid, egid, sgid), + TP_STRUCT__entry(__field_hex(gid_t *, rgid) __field_hex(gid_t *, egid) __field_hex(gid_t *, sgid)), + TP_fast_assign(tp_assign(rgid, rgid) tp_assign(egid, egid) tp_assign(sgid, sgid)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_chown +SC_TRACE_EVENT(sys_chown, + TP_PROTO(const char * filename, uid_t user, gid_t group), + TP_ARGS(filename, user, group), + TP_STRUCT__entry(__string_from_user(filename, filename) __field(uid_t, user) __field(gid_t, group)), + TP_fast_assign(tp_copy_string_from_user(filename, filename) tp_assign(user, user) tp_assign(group, group)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_getdents64 +SC_TRACE_EVENT(sys_getdents64, + TP_PROTO(unsigned int fd, struct linux_dirent64 * dirent, unsigned int count), + TP_ARGS(fd, dirent, count), + TP_STRUCT__entry(__field(unsigned int, fd) __field_hex(struct linux_dirent64 *, dirent) __field(unsigned int, count)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(dirent, dirent) tp_assign(count, count)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_mincore +SC_TRACE_EVENT(sys_mincore, + TP_PROTO(unsigned long start, size_t len, unsigned char * vec), + TP_ARGS(start, len, vec), + TP_STRUCT__entry(__field(unsigned long, start) __field(size_t, len) __field_hex(unsigned char *, vec)), + TP_fast_assign(tp_assign(start, start) tp_assign(len, len) tp_assign(vec, vec)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_listxattr +SC_TRACE_EVENT(sys_listxattr, + TP_PROTO(const char * pathname, char * list, size_t size), + TP_ARGS(pathname, list, size), + TP_STRUCT__entry(__string_from_user(pathname, pathname) __field_hex(char *, list) __field(size_t, size)), + TP_fast_assign(tp_copy_string_from_user(pathname, pathname) tp_assign(list, list) tp_assign(size, size)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_llistxattr +SC_TRACE_EVENT(sys_llistxattr, + TP_PROTO(const char * pathname, char * list, size_t size), + TP_ARGS(pathname, list, size), + TP_STRUCT__entry(__string_from_user(pathname, pathname) __field_hex(char *, list) __field(size_t, size)), + TP_fast_assign(tp_copy_string_from_user(pathname, pathname) tp_assign(list, list) tp_assign(size, size)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_flistxattr +SC_TRACE_EVENT(sys_flistxattr, + TP_PROTO(int fd, char * list, size_t size), + TP_ARGS(fd, list, size), + TP_STRUCT__entry(__field(int, fd) __field_hex(char *, list) __field(size_t, size)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(list, list) tp_assign(size, size)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_sched_setaffinity +SC_TRACE_EVENT(sys_sched_setaffinity, + TP_PROTO(pid_t pid, unsigned int len, unsigned long * user_mask_ptr), + TP_ARGS(pid, len, user_mask_ptr), + TP_STRUCT__entry(__field(pid_t, pid) __field(unsigned int, len) __field_hex(unsigned long *, user_mask_ptr)), + TP_fast_assign(tp_assign(pid, pid) tp_assign(len, len) tp_assign(user_mask_ptr, user_mask_ptr)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_sched_getaffinity +SC_TRACE_EVENT(sys_sched_getaffinity, + TP_PROTO(pid_t pid, unsigned int len, unsigned long * user_mask_ptr), + TP_ARGS(pid, len, user_mask_ptr), + TP_STRUCT__entry(__field(pid_t, pid) __field(unsigned int, len) __field_hex(unsigned long *, user_mask_ptr)), + TP_fast_assign(tp_assign(pid, pid) tp_assign(len, len) tp_assign(user_mask_ptr, user_mask_ptr)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_io_submit +SC_TRACE_EVENT(sys_io_submit, + TP_PROTO(aio_context_t ctx_id, long nr, struct iocb * * iocbpp), + TP_ARGS(ctx_id, nr, iocbpp), + TP_STRUCT__entry(__field(aio_context_t, ctx_id) __field(long, nr) __field_hex(struct iocb * *, iocbpp)), + TP_fast_assign(tp_assign(ctx_id, ctx_id) tp_assign(nr, nr) tp_assign(iocbpp, iocbpp)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_io_cancel +SC_TRACE_EVENT(sys_io_cancel, + TP_PROTO(aio_context_t ctx_id, struct iocb * iocb, struct io_event * result), + TP_ARGS(ctx_id, iocb, result), + TP_STRUCT__entry(__field(aio_context_t, ctx_id) __field_hex(struct iocb *, iocb) __field_hex(struct io_event *, result)), + TP_fast_assign(tp_assign(ctx_id, ctx_id) tp_assign(iocb, iocb) tp_assign(result, result)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_timer_create +SC_TRACE_EVENT(sys_timer_create, + TP_PROTO(const clockid_t which_clock, struct sigevent * timer_event_spec, timer_t * created_timer_id), + TP_ARGS(which_clock, timer_event_spec, created_timer_id), + TP_STRUCT__entry(__field(const clockid_t, which_clock) __field_hex(struct sigevent *, timer_event_spec) __field_hex(timer_t *, created_timer_id)), + TP_fast_assign(tp_assign(which_clock, which_clock) tp_assign(timer_event_spec, timer_event_spec) tp_assign(created_timer_id, created_timer_id)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_mq_getsetattr +SC_TRACE_EVENT(sys_mq_getsetattr, + TP_PROTO(mqd_t mqdes, const struct mq_attr * u_mqstat, struct mq_attr * u_omqstat), + TP_ARGS(mqdes, u_mqstat, u_omqstat), + TP_STRUCT__entry(__field(mqd_t, mqdes) __field_hex(const struct mq_attr *, u_mqstat) __field_hex(struct mq_attr *, u_omqstat)), + TP_fast_assign(tp_assign(mqdes, mqdes) tp_assign(u_mqstat, u_mqstat) tp_assign(u_omqstat, u_omqstat)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_bind +SC_TRACE_EVENT(sys_bind, + TP_PROTO(int fd, struct sockaddr * umyaddr, int addrlen), + TP_ARGS(fd, umyaddr, addrlen), + TP_STRUCT__entry(__field(int, fd) __field_hex(struct sockaddr *, umyaddr) __field_hex(int, addrlen)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(umyaddr, umyaddr) tp_assign(addrlen, addrlen)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_connect +SC_TRACE_EVENT(sys_connect, + TP_PROTO(int fd, struct sockaddr * uservaddr, int addrlen), + TP_ARGS(fd, uservaddr, addrlen), + TP_STRUCT__entry(__field(int, fd) __field_hex(struct sockaddr *, uservaddr) __field_hex(int, addrlen)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(uservaddr, uservaddr) tp_assign(addrlen, addrlen)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_accept +SC_TRACE_EVENT(sys_accept, + TP_PROTO(int fd, struct sockaddr * upeer_sockaddr, int * upeer_addrlen), + TP_ARGS(fd, upeer_sockaddr, upeer_addrlen), + TP_STRUCT__entry(__field(int, fd) __field_hex(struct sockaddr *, upeer_sockaddr) __field_hex(int *, upeer_addrlen)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(upeer_sockaddr, upeer_sockaddr) tp_assign(upeer_addrlen, upeer_addrlen)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_getsockname +SC_TRACE_EVENT(sys_getsockname, + TP_PROTO(int fd, struct sockaddr * usockaddr, int * usockaddr_len), + TP_ARGS(fd, usockaddr, usockaddr_len), + TP_STRUCT__entry(__field(int, fd) __field_hex(struct sockaddr *, usockaddr) __field_hex(int *, usockaddr_len)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(usockaddr, usockaddr) tp_assign(usockaddr_len, usockaddr_len)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_getpeername +SC_TRACE_EVENT(sys_getpeername, + TP_PROTO(int fd, struct sockaddr * usockaddr, int * usockaddr_len), + TP_ARGS(fd, usockaddr, usockaddr_len), + TP_STRUCT__entry(__field(int, fd) __field_hex(struct sockaddr *, usockaddr) __field_hex(int *, usockaddr_len)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(usockaddr, usockaddr) tp_assign(usockaddr_len, usockaddr_len)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_sendmsg +SC_TRACE_EVENT(sys_sendmsg, + TP_PROTO(int fd, struct msghdr * msg, unsigned flags), + TP_ARGS(fd, msg, flags), + TP_STRUCT__entry(__field(int, fd) __field_hex(struct msghdr *, msg) __field(unsigned, flags)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(msg, msg) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_recvmsg +SC_TRACE_EVENT(sys_recvmsg, + TP_PROTO(int fd, struct msghdr * msg, unsigned int flags), + TP_ARGS(fd, msg, flags), + TP_STRUCT__entry(__field(int, fd) __field_hex(struct msghdr *, msg) __field(unsigned int, flags)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(msg, msg) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_semop +SC_TRACE_EVENT(sys_semop, + TP_PROTO(int semid, struct sembuf * tsops, unsigned nsops), + TP_ARGS(semid, tsops, nsops), + TP_STRUCT__entry(__field(int, semid) __field_hex(struct sembuf *, tsops) __field(unsigned, nsops)), + TP_fast_assign(tp_assign(semid, semid) tp_assign(tsops, tsops) tp_assign(nsops, nsops)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_msgctl +SC_TRACE_EVENT(sys_msgctl, + TP_PROTO(int msqid, int cmd, struct msqid_ds * buf), + TP_ARGS(msqid, cmd, buf), + TP_STRUCT__entry(__field(int, msqid) __field(int, cmd) __field_hex(struct msqid_ds *, buf)), + TP_fast_assign(tp_assign(msqid, msqid) tp_assign(cmd, cmd) tp_assign(buf, buf)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_shmat +SC_TRACE_EVENT(sys_shmat, + TP_PROTO(int shmid, char * shmaddr, int shmflg), + TP_ARGS(shmid, shmaddr, shmflg), + TP_STRUCT__entry(__field(int, shmid) __field_hex(char *, shmaddr) __field(int, shmflg)), + TP_fast_assign(tp_assign(shmid, shmid) tp_assign(shmaddr, shmaddr) tp_assign(shmflg, shmflg)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_shmctl +SC_TRACE_EVENT(sys_shmctl, + TP_PROTO(int shmid, int cmd, struct shmid_ds * buf), + TP_ARGS(shmid, cmd, buf), + TP_STRUCT__entry(__field(int, shmid) __field(int, cmd) __field_hex(struct shmid_ds *, buf)), + TP_fast_assign(tp_assign(shmid, shmid) tp_assign(cmd, cmd) tp_assign(buf, buf)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_inotify_add_watch +SC_TRACE_EVENT(sys_inotify_add_watch, + TP_PROTO(int fd, const char * pathname, u32 mask), + TP_ARGS(fd, pathname, mask), + TP_STRUCT__entry(__field(int, fd) __string_from_user(pathname, pathname) __field(u32, mask)), + TP_fast_assign(tp_assign(fd, fd) tp_copy_string_from_user(pathname, pathname) tp_assign(mask, mask)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_mkdirat +SC_TRACE_EVENT(sys_mkdirat, + TP_PROTO(int dfd, const char * pathname, umode_t mode), + TP_ARGS(dfd, pathname, mode), + TP_STRUCT__entry(__field(int, dfd) __string_from_user(pathname, pathname) __field(umode_t, mode)), + TP_fast_assign(tp_assign(dfd, dfd) tp_copy_string_from_user(pathname, pathname) tp_assign(mode, mode)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_futimesat +SC_TRACE_EVENT(sys_futimesat, + TP_PROTO(int dfd, const char * filename, struct timeval * utimes), + TP_ARGS(dfd, filename, utimes), + TP_STRUCT__entry(__field(int, dfd) __string_from_user(filename, filename) __field_hex(struct timeval *, utimes)), + TP_fast_assign(tp_assign(dfd, dfd) tp_copy_string_from_user(filename, filename) tp_assign(utimes, utimes)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_unlinkat +SC_TRACE_EVENT(sys_unlinkat, + TP_PROTO(int dfd, const char * pathname, int flag), + TP_ARGS(dfd, pathname, flag), + TP_STRUCT__entry(__field(int, dfd) __string_from_user(pathname, pathname) __field(int, flag)), + TP_fast_assign(tp_assign(dfd, dfd) tp_copy_string_from_user(pathname, pathname) tp_assign(flag, flag)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_symlinkat +SC_TRACE_EVENT(sys_symlinkat, + TP_PROTO(const char * oldname, int newdfd, const char * newname), + TP_ARGS(oldname, newdfd, newname), + TP_STRUCT__entry(__string_from_user(oldname, oldname) __field(int, newdfd) __string_from_user(newname, newname)), + TP_fast_assign(tp_copy_string_from_user(oldname, oldname) tp_assign(newdfd, newdfd) tp_copy_string_from_user(newname, newname)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_fchmodat +SC_TRACE_EVENT(sys_fchmodat, + TP_PROTO(int dfd, const char * filename, umode_t mode), + TP_ARGS(dfd, filename, mode), + TP_STRUCT__entry(__field(int, dfd) __string_from_user(filename, filename) __field(umode_t, mode)), + TP_fast_assign(tp_assign(dfd, dfd) tp_copy_string_from_user(filename, filename) tp_assign(mode, mode)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_faccessat +SC_TRACE_EVENT(sys_faccessat, + TP_PROTO(int dfd, const char * filename, int mode), + TP_ARGS(dfd, filename, mode), + TP_STRUCT__entry(__field(int, dfd) __string_from_user(filename, filename) __field(int, mode)), + TP_fast_assign(tp_assign(dfd, dfd) tp_copy_string_from_user(filename, filename) tp_assign(mode, mode)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_get_robust_list +SC_TRACE_EVENT(sys_get_robust_list, + TP_PROTO(int pid, struct robust_list_head * * head_ptr, size_t * len_ptr), + TP_ARGS(pid, head_ptr, len_ptr), + TP_STRUCT__entry(__field(int, pid) __field_hex(struct robust_list_head * *, head_ptr) __field_hex(size_t *, len_ptr)), + TP_fast_assign(tp_assign(pid, pid) tp_assign(head_ptr, head_ptr) tp_assign(len_ptr, len_ptr)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_getcpu +SC_TRACE_EVENT(sys_getcpu, + TP_PROTO(unsigned * cpup, unsigned * nodep, struct getcpu_cache * unused), + TP_ARGS(cpup, nodep, unused), + TP_STRUCT__entry(__field_hex(unsigned *, cpup) __field_hex(unsigned *, nodep) __field_hex(struct getcpu_cache *, unused)), + TP_fast_assign(tp_assign(cpup, cpup) tp_assign(nodep, nodep) tp_assign(unused, unused)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_signalfd +SC_TRACE_EVENT(sys_signalfd, + TP_PROTO(int ufd, sigset_t * user_mask, size_t sizemask), + TP_ARGS(ufd, user_mask, sizemask), + TP_STRUCT__entry(__field(int, ufd) __field_hex(sigset_t *, user_mask) __field(size_t, sizemask)), + TP_fast_assign(tp_assign(ufd, ufd) tp_assign(user_mask, user_mask) tp_assign(sizemask, sizemask)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_open_by_handle_at +SC_TRACE_EVENT(sys_open_by_handle_at, + TP_PROTO(int mountdirfd, struct file_handle * handle, int flags), + TP_ARGS(mountdirfd, handle, flags), + TP_STRUCT__entry(__field(int, mountdirfd) __field_hex(struct file_handle *, handle) __field(int, flags)), + TP_fast_assign(tp_assign(mountdirfd, mountdirfd) tp_assign(handle, handle) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_reboot +SC_TRACE_EVENT(sys_reboot, + TP_PROTO(int magic1, int magic2, unsigned int cmd, void * arg), + TP_ARGS(magic1, magic2, cmd, arg), + TP_STRUCT__entry(__field(int, magic1) __field(int, magic2) __field(unsigned int, cmd) __field_hex(void *, arg)), + TP_fast_assign(tp_assign(magic1, magic1) tp_assign(magic2, magic2) tp_assign(cmd, cmd) tp_assign(arg, arg)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_wait4 +SC_TRACE_EVENT(sys_wait4, + TP_PROTO(pid_t upid, int * stat_addr, int options, struct rusage * ru), + TP_ARGS(upid, stat_addr, options, ru), + TP_STRUCT__entry(__field(pid_t, upid) __field_hex(int *, stat_addr) __field(int, options) __field_hex(struct rusage *, ru)), + TP_fast_assign(tp_assign(upid, upid) tp_assign(stat_addr, stat_addr) tp_assign(options, options) tp_assign(ru, ru)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_quotactl +SC_TRACE_EVENT(sys_quotactl, + TP_PROTO(unsigned int cmd, const char * special, qid_t id, void * addr), + TP_ARGS(cmd, special, id, addr), + TP_STRUCT__entry(__field(unsigned int, cmd) __field_hex(const char *, special) __field(qid_t, id) __field_hex(void *, addr)), + TP_fast_assign(tp_assign(cmd, cmd) tp_assign(special, special) tp_assign(id, id) tp_assign(addr, addr)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_rt_sigaction +SC_TRACE_EVENT(sys_rt_sigaction, + TP_PROTO(int sig, const struct sigaction * act, struct sigaction * oact, size_t sigsetsize), + TP_ARGS(sig, act, oact, sigsetsize), + TP_STRUCT__entry(__field(int, sig) __field_hex(const struct sigaction *, act) __field_hex(struct sigaction *, oact) __field(size_t, sigsetsize)), + TP_fast_assign(tp_assign(sig, sig) tp_assign(act, act) tp_assign(oact, oact) tp_assign(sigsetsize, sigsetsize)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_rt_sigprocmask +SC_TRACE_EVENT(sys_rt_sigprocmask, + TP_PROTO(int how, sigset_t * nset, sigset_t * oset, size_t sigsetsize), + TP_ARGS(how, nset, oset, sigsetsize), + TP_STRUCT__entry(__field(int, how) __field_hex(sigset_t *, nset) __field_hex(sigset_t *, oset) __field(size_t, sigsetsize)), + TP_fast_assign(tp_assign(how, how) tp_assign(nset, nset) tp_assign(oset, oset) tp_assign(sigsetsize, sigsetsize)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_rt_sigtimedwait +SC_TRACE_EVENT(sys_rt_sigtimedwait, + TP_PROTO(const sigset_t * uthese, siginfo_t * uinfo, const struct timespec * uts, size_t sigsetsize), + TP_ARGS(uthese, uinfo, uts, sigsetsize), + TP_STRUCT__entry(__field_hex(const sigset_t *, uthese) __field_hex(siginfo_t *, uinfo) __field_hex(const struct timespec *, uts) __field(size_t, sigsetsize)), + TP_fast_assign(tp_assign(uthese, uthese) tp_assign(uinfo, uinfo) tp_assign(uts, uts) tp_assign(sigsetsize, sigsetsize)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_sendfile +SC_TRACE_EVENT(sys_sendfile, + TP_PROTO(int out_fd, int in_fd, off_t * offset, size_t count), + TP_ARGS(out_fd, in_fd, offset, count), + TP_STRUCT__entry(__field(int, out_fd) __field(int, in_fd) __field_hex(off_t *, offset) __field(size_t, count)), + TP_fast_assign(tp_assign(out_fd, out_fd) tp_assign(in_fd, in_fd) tp_assign(offset, offset) tp_assign(count, count)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_getxattr +SC_TRACE_EVENT(sys_getxattr, + TP_PROTO(const char * pathname, const char * name, void * value, size_t size), + TP_ARGS(pathname, name, value, size), + TP_STRUCT__entry(__string_from_user(pathname, pathname) __string_from_user(name, name) __field_hex(void *, value) __field(size_t, size)), + TP_fast_assign(tp_copy_string_from_user(pathname, pathname) tp_copy_string_from_user(name, name) tp_assign(value, value) tp_assign(size, size)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_lgetxattr +SC_TRACE_EVENT(sys_lgetxattr, + TP_PROTO(const char * pathname, const char * name, void * value, size_t size), + TP_ARGS(pathname, name, value, size), + TP_STRUCT__entry(__string_from_user(pathname, pathname) __string_from_user(name, name) __field_hex(void *, value) __field(size_t, size)), + TP_fast_assign(tp_copy_string_from_user(pathname, pathname) tp_copy_string_from_user(name, name) tp_assign(value, value) tp_assign(size, size)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_fgetxattr +SC_TRACE_EVENT(sys_fgetxattr, + TP_PROTO(int fd, const char * name, void * value, size_t size), + TP_ARGS(fd, name, value, size), + TP_STRUCT__entry(__field(int, fd) __string_from_user(name, name) __field_hex(void *, value) __field(size_t, size)), + TP_fast_assign(tp_assign(fd, fd) tp_copy_string_from_user(name, name) tp_assign(value, value) tp_assign(size, size)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_sendfile64 +SC_TRACE_EVENT(sys_sendfile64, + TP_PROTO(int out_fd, int in_fd, loff_t * offset, size_t count), + TP_ARGS(out_fd, in_fd, offset, count), + TP_STRUCT__entry(__field(int, out_fd) __field(int, in_fd) __field_hex(loff_t *, offset) __field(size_t, count)), + TP_fast_assign(tp_assign(out_fd, out_fd) tp_assign(in_fd, in_fd) tp_assign(offset, offset) tp_assign(count, count)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_epoll_ctl +SC_TRACE_EVENT(sys_epoll_ctl, + TP_PROTO(int epfd, int op, int fd, struct epoll_event * event), + TP_ARGS(epfd, op, fd, event), + TP_STRUCT__entry(__field(int, epfd) __field(int, op) __field(int, fd) __field_hex(struct epoll_event *, event)), + TP_fast_assign(tp_assign(epfd, epfd) tp_assign(op, op) tp_assign(fd, fd) tp_assign(event, event)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_epoll_wait +SC_TRACE_EVENT(sys_epoll_wait, + TP_PROTO(int epfd, struct epoll_event * events, int maxevents, int timeout), + TP_ARGS(epfd, events, maxevents, timeout), + TP_STRUCT__entry(__field(int, epfd) __field_hex(struct epoll_event *, events) __field(int, maxevents) __field(int, timeout)), + TP_fast_assign(tp_assign(epfd, epfd) tp_assign(events, events) tp_assign(maxevents, maxevents) tp_assign(timeout, timeout)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_timer_settime +SC_TRACE_EVENT(sys_timer_settime, + TP_PROTO(timer_t timer_id, int flags, const struct itimerspec * new_setting, struct itimerspec * old_setting), + TP_ARGS(timer_id, flags, new_setting, old_setting), + TP_STRUCT__entry(__field(timer_t, timer_id) __field(int, flags) __field_hex(const struct itimerspec *, new_setting) __field_hex(struct itimerspec *, old_setting)), + TP_fast_assign(tp_assign(timer_id, timer_id) tp_assign(flags, flags) tp_assign(new_setting, new_setting) tp_assign(old_setting, old_setting)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_clock_nanosleep +SC_TRACE_EVENT(sys_clock_nanosleep, + TP_PROTO(const clockid_t which_clock, int flags, const struct timespec * rqtp, struct timespec * rmtp), + TP_ARGS(which_clock, flags, rqtp, rmtp), + TP_STRUCT__entry(__field(const clockid_t, which_clock) __field(int, flags) __field_hex(const struct timespec *, rqtp) __field_hex(struct timespec *, rmtp)), + TP_fast_assign(tp_assign(which_clock, which_clock) tp_assign(flags, flags) tp_assign(rqtp, rqtp) tp_assign(rmtp, rmtp)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_mq_open +SC_TRACE_EVENT(sys_mq_open, + TP_PROTO(const char * u_name, int oflag, umode_t mode, struct mq_attr * u_attr), + TP_ARGS(u_name, oflag, mode, u_attr), + TP_STRUCT__entry(__string_from_user(u_name, u_name) __field(int, oflag) __field(umode_t, mode) __field_hex(struct mq_attr *, u_attr)), + TP_fast_assign(tp_copy_string_from_user(u_name, u_name) tp_assign(oflag, oflag) tp_assign(mode, mode) tp_assign(u_attr, u_attr)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_socketpair +SC_TRACE_EVENT(sys_socketpair, + TP_PROTO(int family, int type, int protocol, int * usockvec), + TP_ARGS(family, type, protocol, usockvec), + TP_STRUCT__entry(__field(int, family) __field(int, type) __field(int, protocol) __field_hex(int *, usockvec)), + TP_fast_assign(tp_assign(family, family) tp_assign(type, type) tp_assign(protocol, protocol) tp_assign(usockvec, usockvec)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_send +SC_TRACE_EVENT(sys_send, + TP_PROTO(int fd, void * buff, size_t len, unsigned flags), + TP_ARGS(fd, buff, len, flags), + TP_STRUCT__entry(__field(int, fd) __field_hex(void *, buff) __field(size_t, len) __field(unsigned, flags)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(buff, buff) tp_assign(len, len) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_msgsnd +SC_TRACE_EVENT(sys_msgsnd, + TP_PROTO(int msqid, struct msgbuf * msgp, size_t msgsz, int msgflg), + TP_ARGS(msqid, msgp, msgsz, msgflg), + TP_STRUCT__entry(__field(int, msqid) __field_hex(struct msgbuf *, msgp) __field(size_t, msgsz) __field(int, msgflg)), + TP_fast_assign(tp_assign(msqid, msqid) tp_assign(msgp, msgp) tp_assign(msgsz, msgsz) tp_assign(msgflg, msgflg)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_request_key +SC_TRACE_EVENT(sys_request_key, + TP_PROTO(const char * _type, const char * _description, const char * _callout_info, key_serial_t destringid), + TP_ARGS(_type, _description, _callout_info, destringid), + TP_STRUCT__entry(__string_from_user(_type, _type) __field_hex(const char *, _description) __field_hex(const char *, _callout_info) __field(key_serial_t, destringid)), + TP_fast_assign(tp_copy_string_from_user(_type, _type) tp_assign(_description, _description) tp_assign(_callout_info, _callout_info) tp_assign(destringid, destringid)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_semtimedop +SC_TRACE_EVENT(sys_semtimedop, + TP_PROTO(int semid, struct sembuf * tsops, unsigned nsops, const struct timespec * timeout), + TP_ARGS(semid, tsops, nsops, timeout), + TP_STRUCT__entry(__field(int, semid) __field_hex(struct sembuf *, tsops) __field(unsigned, nsops) __field_hex(const struct timespec *, timeout)), + TP_fast_assign(tp_assign(semid, semid) tp_assign(tsops, tsops) tp_assign(nsops, nsops) tp_assign(timeout, timeout)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_openat +SC_TRACE_EVENT(sys_openat, + TP_PROTO(int dfd, const char * filename, int flags, umode_t mode), + TP_ARGS(dfd, filename, flags, mode), + TP_STRUCT__entry(__field(int, dfd) __string_from_user(filename, filename) __field(int, flags) __field(umode_t, mode)), + TP_fast_assign(tp_assign(dfd, dfd) tp_copy_string_from_user(filename, filename) tp_assign(flags, flags) tp_assign(mode, mode)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_mknodat +SC_TRACE_EVENT(sys_mknodat, + TP_PROTO(int dfd, const char * filename, umode_t mode, unsigned dev), + TP_ARGS(dfd, filename, mode, dev), + TP_STRUCT__entry(__field(int, dfd) __string_from_user(filename, filename) __field(umode_t, mode) __field(unsigned, dev)), + TP_fast_assign(tp_assign(dfd, dfd) tp_copy_string_from_user(filename, filename) tp_assign(mode, mode) tp_assign(dev, dev)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_fstatat64 +SC_TRACE_EVENT(sys_fstatat64, + TP_PROTO(int dfd, const char * filename, struct stat64 * statbuf, int flag), + TP_ARGS(dfd, filename, statbuf, flag), + TP_STRUCT__entry(__field(int, dfd) __string_from_user(filename, filename) __field_hex(struct stat64 *, statbuf) __field(int, flag)), + TP_fast_assign(tp_assign(dfd, dfd) tp_copy_string_from_user(filename, filename) tp_assign(statbuf, statbuf) tp_assign(flag, flag)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_renameat +SC_TRACE_EVENT(sys_renameat, + TP_PROTO(int olddfd, const char * oldname, int newdfd, const char * newname), + TP_ARGS(olddfd, oldname, newdfd, newname), + TP_STRUCT__entry(__field(int, olddfd) __string_from_user(oldname, oldname) __field(int, newdfd) __string_from_user(newname, newname)), + TP_fast_assign(tp_assign(olddfd, olddfd) tp_copy_string_from_user(oldname, oldname) tp_assign(newdfd, newdfd) tp_copy_string_from_user(newname, newname)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_readlinkat +SC_TRACE_EVENT(sys_readlinkat, + TP_PROTO(int dfd, const char * pathname, char * buf, int bufsiz), + TP_ARGS(dfd, pathname, buf, bufsiz), + TP_STRUCT__entry(__field(int, dfd) __string_from_user(pathname, pathname) __field_hex(char *, buf) __field(int, bufsiz)), + TP_fast_assign(tp_assign(dfd, dfd) tp_copy_string_from_user(pathname, pathname) tp_assign(buf, buf) tp_assign(bufsiz, bufsiz)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_vmsplice +SC_TRACE_EVENT(sys_vmsplice, + TP_PROTO(int fd, const struct iovec * iov, unsigned long nr_segs, unsigned int flags), + TP_ARGS(fd, iov, nr_segs, flags), + TP_STRUCT__entry(__field(int, fd) __field_hex(const struct iovec *, iov) __field(unsigned long, nr_segs) __field(unsigned int, flags)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(iov, iov) tp_assign(nr_segs, nr_segs) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_utimensat +SC_TRACE_EVENT(sys_utimensat, + TP_PROTO(int dfd, const char * filename, struct timespec * utimes, int flags), + TP_ARGS(dfd, filename, utimes, flags), + TP_STRUCT__entry(__field(int, dfd) __string_from_user(filename, filename) __field_hex(struct timespec *, utimes) __field(int, flags)), + TP_fast_assign(tp_assign(dfd, dfd) tp_copy_string_from_user(filename, filename) tp_assign(utimes, utimes) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_timerfd_settime +SC_TRACE_EVENT(sys_timerfd_settime, + TP_PROTO(int ufd, int flags, const struct itimerspec * utmr, struct itimerspec * otmr), + TP_ARGS(ufd, flags, utmr, otmr), + TP_STRUCT__entry(__field(int, ufd) __field(int, flags) __field_hex(const struct itimerspec *, utmr) __field_hex(struct itimerspec *, otmr)), + TP_fast_assign(tp_assign(ufd, ufd) tp_assign(flags, flags) tp_assign(utmr, utmr) tp_assign(otmr, otmr)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_signalfd4 +SC_TRACE_EVENT(sys_signalfd4, + TP_PROTO(int ufd, sigset_t * user_mask, size_t sizemask, int flags), + TP_ARGS(ufd, user_mask, sizemask, flags), + TP_STRUCT__entry(__field(int, ufd) __field_hex(sigset_t *, user_mask) __field(size_t, sizemask) __field(int, flags)), + TP_fast_assign(tp_assign(ufd, ufd) tp_assign(user_mask, user_mask) tp_assign(sizemask, sizemask) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_rt_tgsigqueueinfo +SC_TRACE_EVENT(sys_rt_tgsigqueueinfo, + TP_PROTO(pid_t tgid, pid_t pid, int sig, siginfo_t * uinfo), + TP_ARGS(tgid, pid, sig, uinfo), + TP_STRUCT__entry(__field(pid_t, tgid) __field(pid_t, pid) __field(int, sig) __field_hex(siginfo_t *, uinfo)), + TP_fast_assign(tp_assign(tgid, tgid) tp_assign(pid, pid) tp_assign(sig, sig) tp_assign(uinfo, uinfo)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_accept4 +SC_TRACE_EVENT(sys_accept4, + TP_PROTO(int fd, struct sockaddr * upeer_sockaddr, int * upeer_addrlen, int flags), + TP_ARGS(fd, upeer_sockaddr, upeer_addrlen, flags), + TP_STRUCT__entry(__field(int, fd) __field_hex(struct sockaddr *, upeer_sockaddr) __field_hex(int *, upeer_addrlen) __field(int, flags)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(upeer_sockaddr, upeer_sockaddr) tp_assign(upeer_addrlen, upeer_addrlen) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_prlimit64 +SC_TRACE_EVENT(sys_prlimit64, + TP_PROTO(pid_t pid, unsigned int resource, const struct rlimit64 * new_rlim, struct rlimit64 * old_rlim), + TP_ARGS(pid, resource, new_rlim, old_rlim), + TP_STRUCT__entry(__field(pid_t, pid) __field(unsigned int, resource) __field_hex(const struct rlimit64 *, new_rlim) __field_hex(struct rlimit64 *, old_rlim)), + TP_fast_assign(tp_assign(pid, pid) tp_assign(resource, resource) tp_assign(new_rlim, new_rlim) tp_assign(old_rlim, old_rlim)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_sendmmsg +SC_TRACE_EVENT(sys_sendmmsg, + TP_PROTO(int fd, struct mmsghdr * mmsg, unsigned int vlen, unsigned int flags), + TP_ARGS(fd, mmsg, vlen, flags), + TP_STRUCT__entry(__field(int, fd) __field_hex(struct mmsghdr *, mmsg) __field(unsigned int, vlen) __field(unsigned int, flags)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(mmsg, mmsg) tp_assign(vlen, vlen) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_mount +SC_TRACE_EVENT(sys_mount, + TP_PROTO(char * dev_name, char * dir_name, char * type, unsigned long flags, void * data), + TP_ARGS(dev_name, dir_name, type, flags, data), + TP_STRUCT__entry(__string_from_user(dev_name, dev_name) __string_from_user(dir_name, dir_name) __string_from_user(type, type) __field(unsigned long, flags) __field_hex(void *, data)), + TP_fast_assign(tp_copy_string_from_user(dev_name, dev_name) tp_copy_string_from_user(dir_name, dir_name) tp_copy_string_from_user(type, type) tp_assign(flags, flags) tp_assign(data, data)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_llseek +SC_TRACE_EVENT(sys_llseek, + TP_PROTO(unsigned int fd, unsigned long offset_high, unsigned long offset_low, loff_t * result, unsigned int origin), + TP_ARGS(fd, offset_high, offset_low, result, origin), + TP_STRUCT__entry(__field(unsigned int, fd) __field(unsigned long, offset_high) __field(unsigned long, offset_low) __field_hex(loff_t *, result) __field(unsigned int, origin)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(offset_high, offset_high) tp_assign(offset_low, offset_low) tp_assign(result, result) tp_assign(origin, origin)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_select +SC_TRACE_EVENT(sys_select, + TP_PROTO(int n, fd_set * inp, fd_set * outp, fd_set * exp, struct timeval * tvp), + TP_ARGS(n, inp, outp, exp, tvp), + TP_STRUCT__entry(__field(int, n) __field_hex(fd_set *, inp) __field_hex(fd_set *, outp) __field_hex(fd_set *, exp) __field_hex(struct timeval *, tvp)), + TP_fast_assign(tp_assign(n, n) tp_assign(inp, inp) tp_assign(outp, outp) tp_assign(exp, exp) tp_assign(tvp, tvp)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_setxattr +SC_TRACE_EVENT(sys_setxattr, + TP_PROTO(const char * pathname, const char * name, const void * value, size_t size, int flags), + TP_ARGS(pathname, name, value, size, flags), + TP_STRUCT__entry(__string_from_user(pathname, pathname) __string_from_user(name, name) __field_hex(const void *, value) __field(size_t, size) __field(int, flags)), + TP_fast_assign(tp_copy_string_from_user(pathname, pathname) tp_copy_string_from_user(name, name) tp_assign(value, value) tp_assign(size, size) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_lsetxattr +SC_TRACE_EVENT(sys_lsetxattr, + TP_PROTO(const char * pathname, const char * name, const void * value, size_t size, int flags), + TP_ARGS(pathname, name, value, size, flags), + TP_STRUCT__entry(__string_from_user(pathname, pathname) __string_from_user(name, name) __field_hex(const void *, value) __field(size_t, size) __field(int, flags)), + TP_fast_assign(tp_copy_string_from_user(pathname, pathname) tp_copy_string_from_user(name, name) tp_assign(value, value) tp_assign(size, size) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_fsetxattr +SC_TRACE_EVENT(sys_fsetxattr, + TP_PROTO(int fd, const char * name, const void * value, size_t size, int flags), + TP_ARGS(fd, name, value, size, flags), + TP_STRUCT__entry(__field(int, fd) __string_from_user(name, name) __field_hex(const void *, value) __field(size_t, size) __field(int, flags)), + TP_fast_assign(tp_assign(fd, fd) tp_copy_string_from_user(name, name) tp_assign(value, value) tp_assign(size, size) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_io_getevents +SC_TRACE_EVENT(sys_io_getevents, + TP_PROTO(aio_context_t ctx_id, long min_nr, long nr, struct io_event * events, struct timespec * timeout), + TP_ARGS(ctx_id, min_nr, nr, events, timeout), + TP_STRUCT__entry(__field(aio_context_t, ctx_id) __field(long, min_nr) __field(long, nr) __field_hex(struct io_event *, events) __field_hex(struct timespec *, timeout)), + TP_fast_assign(tp_assign(ctx_id, ctx_id) tp_assign(min_nr, min_nr) tp_assign(nr, nr) tp_assign(events, events) tp_assign(timeout, timeout)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_mq_timedsend +SC_TRACE_EVENT(sys_mq_timedsend, + TP_PROTO(mqd_t mqdes, const char * u_msg_ptr, size_t msg_len, unsigned int msg_prio, const struct timespec * u_abs_timeout), + TP_ARGS(mqdes, u_msg_ptr, msg_len, msg_prio, u_abs_timeout), + TP_STRUCT__entry(__field(mqd_t, mqdes) __field_hex(const char *, u_msg_ptr) __field(size_t, msg_len) __field(unsigned int, msg_prio) __field_hex(const struct timespec *, u_abs_timeout)), + TP_fast_assign(tp_assign(mqdes, mqdes) tp_assign(u_msg_ptr, u_msg_ptr) tp_assign(msg_len, msg_len) tp_assign(msg_prio, msg_prio) tp_assign(u_abs_timeout, u_abs_timeout)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_mq_timedreceive +SC_TRACE_EVENT(sys_mq_timedreceive, + TP_PROTO(mqd_t mqdes, char * u_msg_ptr, size_t msg_len, unsigned int * u_msg_prio, const struct timespec * u_abs_timeout), + TP_ARGS(mqdes, u_msg_ptr, msg_len, u_msg_prio, u_abs_timeout), + TP_STRUCT__entry(__field(mqd_t, mqdes) __field_hex(char *, u_msg_ptr) __field(size_t, msg_len) __field_hex(unsigned int *, u_msg_prio) __field_hex(const struct timespec *, u_abs_timeout)), + TP_fast_assign(tp_assign(mqdes, mqdes) tp_assign(u_msg_ptr, u_msg_ptr) tp_assign(msg_len, msg_len) tp_assign(u_msg_prio, u_msg_prio) tp_assign(u_abs_timeout, u_abs_timeout)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_waitid +SC_TRACE_EVENT(sys_waitid, + TP_PROTO(int which, pid_t upid, struct siginfo * infop, int options, struct rusage * ru), + TP_ARGS(which, upid, infop, options, ru), + TP_STRUCT__entry(__field(int, which) __field(pid_t, upid) __field_hex(struct siginfo *, infop) __field(int, options) __field_hex(struct rusage *, ru)), + TP_fast_assign(tp_assign(which, which) tp_assign(upid, upid) tp_assign(infop, infop) tp_assign(options, options) tp_assign(ru, ru)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_setsockopt +SC_TRACE_EVENT(sys_setsockopt, + TP_PROTO(int fd, int level, int optname, char * optval, int optlen), + TP_ARGS(fd, level, optname, optval, optlen), + TP_STRUCT__entry(__field(int, fd) __field(int, level) __field(int, optname) __field_hex(char *, optval) __field(int, optlen)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(level, level) tp_assign(optname, optname) tp_assign(optval, optval) tp_assign(optlen, optlen)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_getsockopt +SC_TRACE_EVENT(sys_getsockopt, + TP_PROTO(int fd, int level, int optname, char * optval, int * optlen), + TP_ARGS(fd, level, optname, optval, optlen), + TP_STRUCT__entry(__field(int, fd) __field(int, level) __field(int, optname) __field_hex(char *, optval) __field_hex(int *, optlen)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(level, level) tp_assign(optname, optname) tp_assign(optval, optval) tp_assign(optlen, optlen)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_msgrcv +SC_TRACE_EVENT(sys_msgrcv, + TP_PROTO(int msqid, struct msgbuf * msgp, size_t msgsz, long msgtyp, int msgflg), + TP_ARGS(msqid, msgp, msgsz, msgtyp, msgflg), + TP_STRUCT__entry(__field(int, msqid) __field_hex(struct msgbuf *, msgp) __field(size_t, msgsz) __field(long, msgtyp) __field(int, msgflg)), + TP_fast_assign(tp_assign(msqid, msqid) tp_assign(msgp, msgp) tp_assign(msgsz, msgsz) tp_assign(msgtyp, msgtyp) tp_assign(msgflg, msgflg)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_add_key +SC_TRACE_EVENT(sys_add_key, + TP_PROTO(const char * _type, const char * _description, const void * _payload, size_t plen, key_serial_t ringid), + TP_ARGS(_type, _description, _payload, plen, ringid), + TP_STRUCT__entry(__string_from_user(_type, _type) __field_hex(const char *, _description) __field_hex(const void *, _payload) __field(size_t, plen) __field(key_serial_t, ringid)), + TP_fast_assign(tp_copy_string_from_user(_type, _type) tp_assign(_description, _description) tp_assign(_payload, _payload) tp_assign(plen, plen) tp_assign(ringid, ringid)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_fchownat +SC_TRACE_EVENT(sys_fchownat, + TP_PROTO(int dfd, const char * filename, uid_t user, gid_t group, int flag), + TP_ARGS(dfd, filename, user, group, flag), + TP_STRUCT__entry(__field(int, dfd) __string_from_user(filename, filename) __field(uid_t, user) __field(gid_t, group) __field(int, flag)), + TP_fast_assign(tp_assign(dfd, dfd) tp_copy_string_from_user(filename, filename) tp_assign(user, user) tp_assign(group, group) tp_assign(flag, flag)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_linkat +SC_TRACE_EVENT(sys_linkat, + TP_PROTO(int olddfd, const char * oldname, int newdfd, const char * newname, int flags), + TP_ARGS(olddfd, oldname, newdfd, newname, flags), + TP_STRUCT__entry(__field(int, olddfd) __string_from_user(oldname, oldname) __field(int, newdfd) __string_from_user(newname, newname) __field(int, flags)), + TP_fast_assign(tp_assign(olddfd, olddfd) tp_copy_string_from_user(oldname, oldname) tp_assign(newdfd, newdfd) tp_copy_string_from_user(newname, newname) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_ppoll +SC_TRACE_EVENT(sys_ppoll, + TP_PROTO(struct pollfd * ufds, unsigned int nfds, struct timespec * tsp, const sigset_t * sigmask, size_t sigsetsize), + TP_ARGS(ufds, nfds, tsp, sigmask, sigsetsize), + TP_STRUCT__entry(__field_hex(struct pollfd *, ufds) __field(unsigned int, nfds) __field_hex(struct timespec *, tsp) __field_hex(const sigset_t *, sigmask) __field(size_t, sigsetsize)), + TP_fast_assign(tp_assign(ufds, ufds) tp_assign(nfds, nfds) tp_assign(tsp, tsp) tp_assign(sigmask, sigmask) tp_assign(sigsetsize, sigsetsize)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_preadv +SC_TRACE_EVENT(sys_preadv, + TP_PROTO(unsigned long fd, const struct iovec * vec, unsigned long vlen, unsigned long pos_l, unsigned long pos_h), + TP_ARGS(fd, vec, vlen, pos_l, pos_h), + TP_STRUCT__entry(__field(unsigned long, fd) __field_hex(const struct iovec *, vec) __field(unsigned long, vlen) __field(unsigned long, pos_l) __field(unsigned long, pos_h)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(vec, vec) tp_assign(vlen, vlen) tp_assign(pos_l, pos_l) tp_assign(pos_h, pos_h)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_pwritev +SC_TRACE_EVENT(sys_pwritev, + TP_PROTO(unsigned long fd, const struct iovec * vec, unsigned long vlen, unsigned long pos_l, unsigned long pos_h), + TP_ARGS(fd, vec, vlen, pos_l, pos_h), + TP_STRUCT__entry(__field(unsigned long, fd) __field_hex(const struct iovec *, vec) __field(unsigned long, vlen) __field(unsigned long, pos_l) __field(unsigned long, pos_h)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(vec, vec) tp_assign(vlen, vlen) tp_assign(pos_l, pos_l) tp_assign(pos_h, pos_h)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_perf_event_open +SC_TRACE_EVENT(sys_perf_event_open, + TP_PROTO(struct perf_event_attr * attr_uptr, pid_t pid, int cpu, int group_fd, unsigned long flags), + TP_ARGS(attr_uptr, pid, cpu, group_fd, flags), + TP_STRUCT__entry(__field_hex(struct perf_event_attr *, attr_uptr) __field(pid_t, pid) __field(int, cpu) __field(int, group_fd) __field(unsigned long, flags)), + TP_fast_assign(tp_assign(attr_uptr, attr_uptr) tp_assign(pid, pid) tp_assign(cpu, cpu) tp_assign(group_fd, group_fd) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_recvmmsg +SC_TRACE_EVENT(sys_recvmmsg, + TP_PROTO(int fd, struct mmsghdr * mmsg, unsigned int vlen, unsigned int flags, struct timespec * timeout), + TP_ARGS(fd, mmsg, vlen, flags, timeout), + TP_STRUCT__entry(__field(int, fd) __field_hex(struct mmsghdr *, mmsg) __field(unsigned int, vlen) __field(unsigned int, flags) __field_hex(struct timespec *, timeout)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(mmsg, mmsg) tp_assign(vlen, vlen) tp_assign(flags, flags) tp_assign(timeout, timeout)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_name_to_handle_at +SC_TRACE_EVENT(sys_name_to_handle_at, + TP_PROTO(int dfd, const char * name, struct file_handle * handle, int * mnt_id, int flag), + TP_ARGS(dfd, name, handle, mnt_id, flag), + TP_STRUCT__entry(__field(int, dfd) __string_from_user(name, name) __field_hex(struct file_handle *, handle) __field_hex(int *, mnt_id) __field(int, flag)), + TP_fast_assign(tp_assign(dfd, dfd) tp_copy_string_from_user(name, name) tp_assign(handle, handle) tp_assign(mnt_id, mnt_id) tp_assign(flag, flag)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_futex +SC_TRACE_EVENT(sys_futex, + TP_PROTO(u32 * uaddr, int op, u32 val, struct timespec * utime, u32 * uaddr2, u32 val3), + TP_ARGS(uaddr, op, val, utime, uaddr2, val3), + TP_STRUCT__entry(__field_hex(u32 *, uaddr) __field(int, op) __field(u32, val) __field_hex(struct timespec *, utime) __field_hex(u32 *, uaddr2) __field(u32, val3)), + TP_fast_assign(tp_assign(uaddr, uaddr) tp_assign(op, op) tp_assign(val, val) tp_assign(utime, utime) tp_assign(uaddr2, uaddr2) tp_assign(val3, val3)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_sendto +SC_TRACE_EVENT(sys_sendto, + TP_PROTO(int fd, void * buff, size_t len, unsigned flags, struct sockaddr * addr, int addr_len), + TP_ARGS(fd, buff, len, flags, addr, addr_len), + TP_STRUCT__entry(__field(int, fd) __field_hex(void *, buff) __field(size_t, len) __field(unsigned, flags) __field_hex(struct sockaddr *, addr) __field_hex(int, addr_len)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(buff, buff) tp_assign(len, len) tp_assign(flags, flags) tp_assign(addr, addr) tp_assign(addr_len, addr_len)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_recvfrom +SC_TRACE_EVENT(sys_recvfrom, + TP_PROTO(int fd, void * ubuf, size_t size, unsigned flags, struct sockaddr * addr, int * addr_len), + TP_ARGS(fd, ubuf, size, flags, addr, addr_len), + TP_STRUCT__entry(__field(int, fd) __field_hex(void *, ubuf) __field(size_t, size) __field(unsigned, flags) __field_hex(struct sockaddr *, addr) __field_hex(int *, addr_len)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(ubuf, ubuf) tp_assign(size, size) tp_assign(flags, flags) tp_assign(addr, addr) tp_assign(addr_len, addr_len)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_pselect6 +SC_TRACE_EVENT(sys_pselect6, + TP_PROTO(int n, fd_set * inp, fd_set * outp, fd_set * exp, struct timespec * tsp, void * sig), + TP_ARGS(n, inp, outp, exp, tsp, sig), + TP_STRUCT__entry(__field(int, n) __field_hex(fd_set *, inp) __field_hex(fd_set *, outp) __field_hex(fd_set *, exp) __field_hex(struct timespec *, tsp) __field_hex(void *, sig)), + TP_fast_assign(tp_assign(n, n) tp_assign(inp, inp) tp_assign(outp, outp) tp_assign(exp, exp) tp_assign(tsp, tsp) tp_assign(sig, sig)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_splice +SC_TRACE_EVENT(sys_splice, + TP_PROTO(int fd_in, loff_t * off_in, int fd_out, loff_t * off_out, size_t len, unsigned int flags), + TP_ARGS(fd_in, off_in, fd_out, off_out, len, flags), + TP_STRUCT__entry(__field(int, fd_in) __field_hex(loff_t *, off_in) __field(int, fd_out) __field_hex(loff_t *, off_out) __field(size_t, len) __field(unsigned int, flags)), + TP_fast_assign(tp_assign(fd_in, fd_in) tp_assign(off_in, off_in) tp_assign(fd_out, fd_out) tp_assign(off_out, off_out) tp_assign(len, len) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_epoll_pwait +SC_TRACE_EVENT(sys_epoll_pwait, + TP_PROTO(int epfd, struct epoll_event * events, int maxevents, int timeout, const sigset_t * sigmask, size_t sigsetsize), + TP_ARGS(epfd, events, maxevents, timeout, sigmask, sigsetsize), + TP_STRUCT__entry(__field(int, epfd) __field_hex(struct epoll_event *, events) __field(int, maxevents) __field(int, timeout) __field_hex(const sigset_t *, sigmask) __field(size_t, sigsetsize)), + TP_fast_assign(tp_assign(epfd, epfd) tp_assign(events, events) tp_assign(maxevents, maxevents) tp_assign(timeout, timeout) tp_assign(sigmask, sigmask) tp_assign(sigsetsize, sigsetsize)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_process_vm_readv +SC_TRACE_EVENT(sys_process_vm_readv, + TP_PROTO(pid_t pid, const struct iovec * lvec, unsigned long liovcnt, const struct iovec * rvec, unsigned long riovcnt, unsigned long flags), + TP_ARGS(pid, lvec, liovcnt, rvec, riovcnt, flags), + TP_STRUCT__entry(__field(pid_t, pid) __field_hex(const struct iovec *, lvec) __field(unsigned long, liovcnt) __field_hex(const struct iovec *, rvec) __field(unsigned long, riovcnt) __field(unsigned long, flags)), + TP_fast_assign(tp_assign(pid, pid) tp_assign(lvec, lvec) tp_assign(liovcnt, liovcnt) tp_assign(rvec, rvec) tp_assign(riovcnt, riovcnt) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_process_vm_writev +SC_TRACE_EVENT(sys_process_vm_writev, + TP_PROTO(pid_t pid, const struct iovec * lvec, unsigned long liovcnt, const struct iovec * rvec, unsigned long riovcnt, unsigned long flags), + TP_ARGS(pid, lvec, liovcnt, rvec, riovcnt, flags), + TP_STRUCT__entry(__field(pid_t, pid) __field_hex(const struct iovec *, lvec) __field(unsigned long, liovcnt) __field_hex(const struct iovec *, rvec) __field(unsigned long, riovcnt) __field(unsigned long, flags)), + TP_fast_assign(tp_assign(pid, pid) tp_assign(lvec, lvec) tp_assign(liovcnt, liovcnt) tp_assign(rvec, rvec) tp_assign(riovcnt, riovcnt) tp_assign(flags, flags)), + TP_printk() +) +#endif + +#endif /* _TRACE_SYSCALLS_POINTERS_H */ + +/* This part must be outside protection */ +#include "../../../probes/define_trace.h" + +#else /* CREATE_SYSCALL_TABLE */ + +#include "arm-32-syscalls-3.4.25_pointers_override.h" +#include "syscalls_pointers_override.h" + +#ifndef OVERRIDE_TABLE_32_sys_read +TRACE_SYSCALL_TABLE(sys_read, sys_read, 3, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_write +TRACE_SYSCALL_TABLE(sys_write, sys_write, 4, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_open +TRACE_SYSCALL_TABLE(sys_open, sys_open, 5, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_creat +TRACE_SYSCALL_TABLE(sys_creat, sys_creat, 8, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_link +TRACE_SYSCALL_TABLE(sys_link, sys_link, 9, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_unlink +TRACE_SYSCALL_TABLE(sys_unlink, sys_unlink, 10, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_chdir +TRACE_SYSCALL_TABLE(sys_chdir, sys_chdir, 12, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_mknod +TRACE_SYSCALL_TABLE(sys_mknod, sys_mknod, 14, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_chmod +TRACE_SYSCALL_TABLE(sys_chmod, sys_chmod, 15, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_lchown16 +TRACE_SYSCALL_TABLE(sys_lchown16, sys_lchown16, 16, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_mount +TRACE_SYSCALL_TABLE(sys_mount, sys_mount, 21, 5) +#endif +#ifndef OVERRIDE_TABLE_32_sys_access +TRACE_SYSCALL_TABLE(sys_access, sys_access, 33, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_rename +TRACE_SYSCALL_TABLE(sys_rename, sys_rename, 38, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_mkdir +TRACE_SYSCALL_TABLE(sys_mkdir, sys_mkdir, 39, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_rmdir +TRACE_SYSCALL_TABLE(sys_rmdir, sys_rmdir, 40, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_pipe +TRACE_SYSCALL_TABLE(sys_pipe, sys_pipe, 42, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_times +TRACE_SYSCALL_TABLE(sys_times, sys_times, 43, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_acct +TRACE_SYSCALL_TABLE(sys_acct, sys_acct, 51, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_umount +TRACE_SYSCALL_TABLE(sys_umount, sys_umount, 52, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_chroot +TRACE_SYSCALL_TABLE(sys_chroot, sys_chroot, 61, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_ustat +TRACE_SYSCALL_TABLE(sys_ustat, sys_ustat, 62, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_sigpending +TRACE_SYSCALL_TABLE(sys_sigpending, sys_sigpending, 73, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_sethostname +TRACE_SYSCALL_TABLE(sys_sethostname, sys_sethostname, 74, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_setrlimit +TRACE_SYSCALL_TABLE(sys_setrlimit, sys_setrlimit, 75, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_getrusage +TRACE_SYSCALL_TABLE(sys_getrusage, sys_getrusage, 77, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_gettimeofday +TRACE_SYSCALL_TABLE(sys_gettimeofday, sys_gettimeofday, 78, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_settimeofday +TRACE_SYSCALL_TABLE(sys_settimeofday, sys_settimeofday, 79, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_getgroups16 +TRACE_SYSCALL_TABLE(sys_getgroups16, sys_getgroups16, 80, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_setgroups16 +TRACE_SYSCALL_TABLE(sys_setgroups16, sys_setgroups16, 81, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_symlink +TRACE_SYSCALL_TABLE(sys_symlink, sys_symlink, 83, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_readlink +TRACE_SYSCALL_TABLE(sys_readlink, sys_readlink, 85, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_uselib +TRACE_SYSCALL_TABLE(sys_uselib, sys_uselib, 86, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_swapon +TRACE_SYSCALL_TABLE(sys_swapon, sys_swapon, 87, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_reboot +TRACE_SYSCALL_TABLE(sys_reboot, sys_reboot, 88, 4) +#endif +#ifndef OVERRIDE_TABLE_32_sys_truncate +TRACE_SYSCALL_TABLE(sys_truncate, sys_truncate, 92, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_statfs +TRACE_SYSCALL_TABLE(sys_statfs, sys_statfs, 99, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_fstatfs +TRACE_SYSCALL_TABLE(sys_fstatfs, sys_fstatfs, 100, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_syslog +TRACE_SYSCALL_TABLE(sys_syslog, sys_syslog, 103, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_setitimer +TRACE_SYSCALL_TABLE(sys_setitimer, sys_setitimer, 104, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_getitimer +TRACE_SYSCALL_TABLE(sys_getitimer, sys_getitimer, 105, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_newstat +TRACE_SYSCALL_TABLE(sys_newstat, sys_newstat, 106, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_newlstat +TRACE_SYSCALL_TABLE(sys_newlstat, sys_newlstat, 107, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_newfstat +TRACE_SYSCALL_TABLE(sys_newfstat, sys_newfstat, 108, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_wait4 +TRACE_SYSCALL_TABLE(sys_wait4, sys_wait4, 114, 4) +#endif +#ifndef OVERRIDE_TABLE_32_sys_swapoff +TRACE_SYSCALL_TABLE(sys_swapoff, sys_swapoff, 115, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_sysinfo +TRACE_SYSCALL_TABLE(sys_sysinfo, sys_sysinfo, 116, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_setdomainname +TRACE_SYSCALL_TABLE(sys_setdomainname, sys_setdomainname, 121, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_newuname +TRACE_SYSCALL_TABLE(sys_newuname, sys_newuname, 122, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_adjtimex +TRACE_SYSCALL_TABLE(sys_adjtimex, sys_adjtimex, 124, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_sigprocmask +TRACE_SYSCALL_TABLE(sys_sigprocmask, sys_sigprocmask, 126, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_init_module +TRACE_SYSCALL_TABLE(sys_init_module, sys_init_module, 128, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_delete_module +TRACE_SYSCALL_TABLE(sys_delete_module, sys_delete_module, 129, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_quotactl +TRACE_SYSCALL_TABLE(sys_quotactl, sys_quotactl, 131, 4) +#endif +#ifndef OVERRIDE_TABLE_32_sys_llseek +TRACE_SYSCALL_TABLE(sys_llseek, sys_llseek, 140, 5) +#endif +#ifndef OVERRIDE_TABLE_32_sys_getdents +TRACE_SYSCALL_TABLE(sys_getdents, sys_getdents, 141, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_select +TRACE_SYSCALL_TABLE(sys_select, sys_select, 142, 5) +#endif +#ifndef OVERRIDE_TABLE_32_sys_readv +TRACE_SYSCALL_TABLE(sys_readv, sys_readv, 145, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_writev +TRACE_SYSCALL_TABLE(sys_writev, sys_writev, 146, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_sysctl +TRACE_SYSCALL_TABLE(sys_sysctl, sys_sysctl, 149, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_sched_setparam +TRACE_SYSCALL_TABLE(sys_sched_setparam, sys_sched_setparam, 154, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_sched_getparam +TRACE_SYSCALL_TABLE(sys_sched_getparam, sys_sched_getparam, 155, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_sched_setscheduler +TRACE_SYSCALL_TABLE(sys_sched_setscheduler, sys_sched_setscheduler, 156, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_sched_rr_get_interval +TRACE_SYSCALL_TABLE(sys_sched_rr_get_interval, sys_sched_rr_get_interval, 161, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_nanosleep +TRACE_SYSCALL_TABLE(sys_nanosleep, sys_nanosleep, 162, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_getresuid16 +TRACE_SYSCALL_TABLE(sys_getresuid16, sys_getresuid16, 165, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_poll +TRACE_SYSCALL_TABLE(sys_poll, sys_poll, 168, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_getresgid16 +TRACE_SYSCALL_TABLE(sys_getresgid16, sys_getresgid16, 171, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_rt_sigaction +TRACE_SYSCALL_TABLE(sys_rt_sigaction, sys_rt_sigaction, 174, 4) +#endif +#ifndef OVERRIDE_TABLE_32_sys_rt_sigprocmask +TRACE_SYSCALL_TABLE(sys_rt_sigprocmask, sys_rt_sigprocmask, 175, 4) +#endif +#ifndef OVERRIDE_TABLE_32_sys_rt_sigpending +TRACE_SYSCALL_TABLE(sys_rt_sigpending, sys_rt_sigpending, 176, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_rt_sigtimedwait +TRACE_SYSCALL_TABLE(sys_rt_sigtimedwait, sys_rt_sigtimedwait, 177, 4) +#endif +#ifndef OVERRIDE_TABLE_32_sys_rt_sigqueueinfo +TRACE_SYSCALL_TABLE(sys_rt_sigqueueinfo, sys_rt_sigqueueinfo, 178, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_rt_sigsuspend +TRACE_SYSCALL_TABLE(sys_rt_sigsuspend, sys_rt_sigsuspend, 179, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_chown16 +TRACE_SYSCALL_TABLE(sys_chown16, sys_chown16, 182, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_getcwd +TRACE_SYSCALL_TABLE(sys_getcwd, sys_getcwd, 183, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_sendfile +TRACE_SYSCALL_TABLE(sys_sendfile, sys_sendfile, 187, 4) +#endif +#ifndef OVERRIDE_TABLE_32_sys_getrlimit +TRACE_SYSCALL_TABLE(sys_getrlimit, sys_getrlimit, 191, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_stat64 +TRACE_SYSCALL_TABLE(sys_stat64, sys_stat64, 195, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_lstat64 +TRACE_SYSCALL_TABLE(sys_lstat64, sys_lstat64, 196, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_fstat64 +TRACE_SYSCALL_TABLE(sys_fstat64, sys_fstat64, 197, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_lchown +TRACE_SYSCALL_TABLE(sys_lchown, sys_lchown, 198, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_getgroups +TRACE_SYSCALL_TABLE(sys_getgroups, sys_getgroups, 205, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_setgroups +TRACE_SYSCALL_TABLE(sys_setgroups, sys_setgroups, 206, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_getresuid +TRACE_SYSCALL_TABLE(sys_getresuid, sys_getresuid, 209, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_getresgid +TRACE_SYSCALL_TABLE(sys_getresgid, sys_getresgid, 211, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_chown +TRACE_SYSCALL_TABLE(sys_chown, sys_chown, 212, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_getdents64 +TRACE_SYSCALL_TABLE(sys_getdents64, sys_getdents64, 217, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_pivot_root +TRACE_SYSCALL_TABLE(sys_pivot_root, sys_pivot_root, 218, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_mincore +TRACE_SYSCALL_TABLE(sys_mincore, sys_mincore, 219, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_setxattr +TRACE_SYSCALL_TABLE(sys_setxattr, sys_setxattr, 226, 5) +#endif +#ifndef OVERRIDE_TABLE_32_sys_lsetxattr +TRACE_SYSCALL_TABLE(sys_lsetxattr, sys_lsetxattr, 227, 5) +#endif +#ifndef OVERRIDE_TABLE_32_sys_fsetxattr +TRACE_SYSCALL_TABLE(sys_fsetxattr, sys_fsetxattr, 228, 5) +#endif +#ifndef OVERRIDE_TABLE_32_sys_getxattr +TRACE_SYSCALL_TABLE(sys_getxattr, sys_getxattr, 229, 4) +#endif +#ifndef OVERRIDE_TABLE_32_sys_lgetxattr +TRACE_SYSCALL_TABLE(sys_lgetxattr, sys_lgetxattr, 230, 4) +#endif +#ifndef OVERRIDE_TABLE_32_sys_fgetxattr +TRACE_SYSCALL_TABLE(sys_fgetxattr, sys_fgetxattr, 231, 4) +#endif +#ifndef OVERRIDE_TABLE_32_sys_listxattr +TRACE_SYSCALL_TABLE(sys_listxattr, sys_listxattr, 232, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_llistxattr +TRACE_SYSCALL_TABLE(sys_llistxattr, sys_llistxattr, 233, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_flistxattr +TRACE_SYSCALL_TABLE(sys_flistxattr, sys_flistxattr, 234, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_removexattr +TRACE_SYSCALL_TABLE(sys_removexattr, sys_removexattr, 235, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_lremovexattr +TRACE_SYSCALL_TABLE(sys_lremovexattr, sys_lremovexattr, 236, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_fremovexattr +TRACE_SYSCALL_TABLE(sys_fremovexattr, sys_fremovexattr, 237, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_sendfile64 +TRACE_SYSCALL_TABLE(sys_sendfile64, sys_sendfile64, 239, 4) +#endif +#ifndef OVERRIDE_TABLE_32_sys_futex +TRACE_SYSCALL_TABLE(sys_futex, sys_futex, 240, 6) +#endif +#ifndef OVERRIDE_TABLE_32_sys_sched_setaffinity +TRACE_SYSCALL_TABLE(sys_sched_setaffinity, sys_sched_setaffinity, 241, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_sched_getaffinity +TRACE_SYSCALL_TABLE(sys_sched_getaffinity, sys_sched_getaffinity, 242, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_io_setup +TRACE_SYSCALL_TABLE(sys_io_setup, sys_io_setup, 243, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_io_getevents +TRACE_SYSCALL_TABLE(sys_io_getevents, sys_io_getevents, 245, 5) +#endif +#ifndef OVERRIDE_TABLE_32_sys_io_submit +TRACE_SYSCALL_TABLE(sys_io_submit, sys_io_submit, 246, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_io_cancel +TRACE_SYSCALL_TABLE(sys_io_cancel, sys_io_cancel, 247, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_epoll_ctl +TRACE_SYSCALL_TABLE(sys_epoll_ctl, sys_epoll_ctl, 251, 4) +#endif +#ifndef OVERRIDE_TABLE_32_sys_epoll_wait +TRACE_SYSCALL_TABLE(sys_epoll_wait, sys_epoll_wait, 252, 4) +#endif +#ifndef OVERRIDE_TABLE_32_sys_set_tid_address +TRACE_SYSCALL_TABLE(sys_set_tid_address, sys_set_tid_address, 256, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_timer_create +TRACE_SYSCALL_TABLE(sys_timer_create, sys_timer_create, 257, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_timer_settime +TRACE_SYSCALL_TABLE(sys_timer_settime, sys_timer_settime, 258, 4) +#endif +#ifndef OVERRIDE_TABLE_32_sys_timer_gettime +TRACE_SYSCALL_TABLE(sys_timer_gettime, sys_timer_gettime, 259, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_clock_settime +TRACE_SYSCALL_TABLE(sys_clock_settime, sys_clock_settime, 262, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_clock_gettime +TRACE_SYSCALL_TABLE(sys_clock_gettime, sys_clock_gettime, 263, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_clock_getres +TRACE_SYSCALL_TABLE(sys_clock_getres, sys_clock_getres, 264, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_clock_nanosleep +TRACE_SYSCALL_TABLE(sys_clock_nanosleep, sys_clock_nanosleep, 265, 4) +#endif +#ifndef OVERRIDE_TABLE_32_sys_utimes +TRACE_SYSCALL_TABLE(sys_utimes, sys_utimes, 269, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_mq_open +TRACE_SYSCALL_TABLE(sys_mq_open, sys_mq_open, 274, 4) +#endif +#ifndef OVERRIDE_TABLE_32_sys_mq_unlink +TRACE_SYSCALL_TABLE(sys_mq_unlink, sys_mq_unlink, 275, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_mq_timedsend +TRACE_SYSCALL_TABLE(sys_mq_timedsend, sys_mq_timedsend, 276, 5) +#endif +#ifndef OVERRIDE_TABLE_32_sys_mq_timedreceive +TRACE_SYSCALL_TABLE(sys_mq_timedreceive, sys_mq_timedreceive, 277, 5) +#endif +#ifndef OVERRIDE_TABLE_32_sys_mq_notify +TRACE_SYSCALL_TABLE(sys_mq_notify, sys_mq_notify, 278, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_mq_getsetattr +TRACE_SYSCALL_TABLE(sys_mq_getsetattr, sys_mq_getsetattr, 279, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_waitid +TRACE_SYSCALL_TABLE(sys_waitid, sys_waitid, 280, 5) +#endif +#ifndef OVERRIDE_TABLE_32_sys_bind +TRACE_SYSCALL_TABLE(sys_bind, sys_bind, 282, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_connect +TRACE_SYSCALL_TABLE(sys_connect, sys_connect, 283, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_accept +TRACE_SYSCALL_TABLE(sys_accept, sys_accept, 285, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_getsockname +TRACE_SYSCALL_TABLE(sys_getsockname, sys_getsockname, 286, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_getpeername +TRACE_SYSCALL_TABLE(sys_getpeername, sys_getpeername, 287, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_socketpair +TRACE_SYSCALL_TABLE(sys_socketpair, sys_socketpair, 288, 4) +#endif +#ifndef OVERRIDE_TABLE_32_sys_send +TRACE_SYSCALL_TABLE(sys_send, sys_send, 289, 4) +#endif +#ifndef OVERRIDE_TABLE_32_sys_sendto +TRACE_SYSCALL_TABLE(sys_sendto, sys_sendto, 290, 6) +#endif +#ifndef OVERRIDE_TABLE_32_sys_recvfrom +TRACE_SYSCALL_TABLE(sys_recvfrom, sys_recvfrom, 292, 6) +#endif +#ifndef OVERRIDE_TABLE_32_sys_setsockopt +TRACE_SYSCALL_TABLE(sys_setsockopt, sys_setsockopt, 294, 5) +#endif +#ifndef OVERRIDE_TABLE_32_sys_getsockopt +TRACE_SYSCALL_TABLE(sys_getsockopt, sys_getsockopt, 295, 5) +#endif +#ifndef OVERRIDE_TABLE_32_sys_sendmsg +TRACE_SYSCALL_TABLE(sys_sendmsg, sys_sendmsg, 296, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_recvmsg +TRACE_SYSCALL_TABLE(sys_recvmsg, sys_recvmsg, 297, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_semop +TRACE_SYSCALL_TABLE(sys_semop, sys_semop, 298, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_msgsnd +TRACE_SYSCALL_TABLE(sys_msgsnd, sys_msgsnd, 301, 4) +#endif +#ifndef OVERRIDE_TABLE_32_sys_msgrcv +TRACE_SYSCALL_TABLE(sys_msgrcv, sys_msgrcv, 302, 5) +#endif +#ifndef OVERRIDE_TABLE_32_sys_msgctl +TRACE_SYSCALL_TABLE(sys_msgctl, sys_msgctl, 304, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_shmat +TRACE_SYSCALL_TABLE(sys_shmat, sys_shmat, 305, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_shmdt +TRACE_SYSCALL_TABLE(sys_shmdt, sys_shmdt, 306, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_shmctl +TRACE_SYSCALL_TABLE(sys_shmctl, sys_shmctl, 308, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_add_key +TRACE_SYSCALL_TABLE(sys_add_key, sys_add_key, 309, 5) +#endif +#ifndef OVERRIDE_TABLE_32_sys_request_key +TRACE_SYSCALL_TABLE(sys_request_key, sys_request_key, 310, 4) +#endif +#ifndef OVERRIDE_TABLE_32_sys_semtimedop +TRACE_SYSCALL_TABLE(sys_semtimedop, sys_semtimedop, 312, 4) +#endif +#ifndef OVERRIDE_TABLE_32_sys_inotify_add_watch +TRACE_SYSCALL_TABLE(sys_inotify_add_watch, sys_inotify_add_watch, 317, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_openat +TRACE_SYSCALL_TABLE(sys_openat, sys_openat, 322, 4) +#endif +#ifndef OVERRIDE_TABLE_32_sys_mkdirat +TRACE_SYSCALL_TABLE(sys_mkdirat, sys_mkdirat, 323, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_mknodat +TRACE_SYSCALL_TABLE(sys_mknodat, sys_mknodat, 324, 4) +#endif +#ifndef OVERRIDE_TABLE_32_sys_fchownat +TRACE_SYSCALL_TABLE(sys_fchownat, sys_fchownat, 325, 5) +#endif +#ifndef OVERRIDE_TABLE_32_sys_futimesat +TRACE_SYSCALL_TABLE(sys_futimesat, sys_futimesat, 326, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_fstatat64 +TRACE_SYSCALL_TABLE(sys_fstatat64, sys_fstatat64, 327, 4) +#endif +#ifndef OVERRIDE_TABLE_32_sys_unlinkat +TRACE_SYSCALL_TABLE(sys_unlinkat, sys_unlinkat, 328, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_renameat +TRACE_SYSCALL_TABLE(sys_renameat, sys_renameat, 329, 4) +#endif +#ifndef OVERRIDE_TABLE_32_sys_linkat +TRACE_SYSCALL_TABLE(sys_linkat, sys_linkat, 330, 5) +#endif +#ifndef OVERRIDE_TABLE_32_sys_symlinkat +TRACE_SYSCALL_TABLE(sys_symlinkat, sys_symlinkat, 331, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_readlinkat +TRACE_SYSCALL_TABLE(sys_readlinkat, sys_readlinkat, 332, 4) +#endif +#ifndef OVERRIDE_TABLE_32_sys_fchmodat +TRACE_SYSCALL_TABLE(sys_fchmodat, sys_fchmodat, 333, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_faccessat +TRACE_SYSCALL_TABLE(sys_faccessat, sys_faccessat, 334, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_pselect6 +TRACE_SYSCALL_TABLE(sys_pselect6, sys_pselect6, 335, 6) +#endif +#ifndef OVERRIDE_TABLE_32_sys_ppoll +TRACE_SYSCALL_TABLE(sys_ppoll, sys_ppoll, 336, 5) +#endif +#ifndef OVERRIDE_TABLE_32_sys_set_robust_list +TRACE_SYSCALL_TABLE(sys_set_robust_list, sys_set_robust_list, 338, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_get_robust_list +TRACE_SYSCALL_TABLE(sys_get_robust_list, sys_get_robust_list, 339, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_splice +TRACE_SYSCALL_TABLE(sys_splice, sys_splice, 340, 6) +#endif +#ifndef OVERRIDE_TABLE_32_sys_vmsplice +TRACE_SYSCALL_TABLE(sys_vmsplice, sys_vmsplice, 343, 4) +#endif +#ifndef OVERRIDE_TABLE_32_sys_getcpu +TRACE_SYSCALL_TABLE(sys_getcpu, sys_getcpu, 345, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_epoll_pwait +TRACE_SYSCALL_TABLE(sys_epoll_pwait, sys_epoll_pwait, 346, 6) +#endif +#ifndef OVERRIDE_TABLE_32_sys_utimensat +TRACE_SYSCALL_TABLE(sys_utimensat, sys_utimensat, 348, 4) +#endif +#ifndef OVERRIDE_TABLE_32_sys_signalfd +TRACE_SYSCALL_TABLE(sys_signalfd, sys_signalfd, 349, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_timerfd_settime +TRACE_SYSCALL_TABLE(sys_timerfd_settime, sys_timerfd_settime, 353, 4) +#endif +#ifndef OVERRIDE_TABLE_32_sys_timerfd_gettime +TRACE_SYSCALL_TABLE(sys_timerfd_gettime, sys_timerfd_gettime, 354, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_signalfd4 +TRACE_SYSCALL_TABLE(sys_signalfd4, sys_signalfd4, 355, 4) +#endif +#ifndef OVERRIDE_TABLE_32_sys_pipe2 +TRACE_SYSCALL_TABLE(sys_pipe2, sys_pipe2, 359, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_preadv +TRACE_SYSCALL_TABLE(sys_preadv, sys_preadv, 361, 5) +#endif +#ifndef OVERRIDE_TABLE_32_sys_pwritev +TRACE_SYSCALL_TABLE(sys_pwritev, sys_pwritev, 362, 5) +#endif +#ifndef OVERRIDE_TABLE_32_sys_rt_tgsigqueueinfo +TRACE_SYSCALL_TABLE(sys_rt_tgsigqueueinfo, sys_rt_tgsigqueueinfo, 363, 4) +#endif +#ifndef OVERRIDE_TABLE_32_sys_perf_event_open +TRACE_SYSCALL_TABLE(sys_perf_event_open, sys_perf_event_open, 364, 5) +#endif +#ifndef OVERRIDE_TABLE_32_sys_recvmmsg +TRACE_SYSCALL_TABLE(sys_recvmmsg, sys_recvmmsg, 365, 5) +#endif +#ifndef OVERRIDE_TABLE_32_sys_accept4 +TRACE_SYSCALL_TABLE(sys_accept4, sys_accept4, 366, 4) +#endif +#ifndef OVERRIDE_TABLE_32_sys_prlimit64 +TRACE_SYSCALL_TABLE(sys_prlimit64, sys_prlimit64, 369, 4) +#endif +#ifndef OVERRIDE_TABLE_32_sys_name_to_handle_at +TRACE_SYSCALL_TABLE(sys_name_to_handle_at, sys_name_to_handle_at, 370, 5) +#endif +#ifndef OVERRIDE_TABLE_32_sys_open_by_handle_at +TRACE_SYSCALL_TABLE(sys_open_by_handle_at, sys_open_by_handle_at, 371, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_clock_adjtime +TRACE_SYSCALL_TABLE(sys_clock_adjtime, sys_clock_adjtime, 372, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_sendmmsg +TRACE_SYSCALL_TABLE(sys_sendmmsg, sys_sendmmsg, 374, 4) +#endif +#ifndef OVERRIDE_TABLE_32_sys_process_vm_readv +TRACE_SYSCALL_TABLE(sys_process_vm_readv, sys_process_vm_readv, 376, 6) +#endif +#ifndef OVERRIDE_TABLE_32_sys_process_vm_writev +TRACE_SYSCALL_TABLE(sys_process_vm_writev, sys_process_vm_writev, 377, 6) +#endif + +#endif /* CREATE_SYSCALL_TABLE */ --- linux-3.11.0.orig/ubuntu/lttng-modules/instrumentation/syscalls/headers/syscalls_pointers_override.h +++ linux-3.11.0/ubuntu/lttng-modules/instrumentation/syscalls/headers/syscalls_pointers_override.h @@ -0,0 +1,53 @@ +#define OVERRIDE_32_sys_execve +#define OVERRIDE_64_sys_execve + +#ifndef CREATE_SYSCALL_TABLE + +SC_TRACE_EVENT(sys_execve, + TP_PROTO(const char *filename, char *const *argv, char *const *envp), + TP_ARGS(filename, argv, envp), + TP_STRUCT__entry(__string_from_user(filename, filename) + __field_hex(char *const *, argv) + __field_hex(char *const *, envp)), + TP_fast_assign(tp_copy_string_from_user(filename, filename) + tp_assign(argv, argv) + tp_assign(envp, envp)), + TP_printk() +) + +SC_TRACE_EVENT(sys_clone, + TP_PROTO(unsigned long clone_flags, unsigned long newsp, + void __user *parent_tid, + void __user *child_tid), + TP_ARGS(clone_flags, newsp, parent_tid, child_tid), + TP_STRUCT__entry( + __field_hex(unsigned long, clone_flags) + __field_hex(unsigned long, newsp) + __field_hex(void *, parent_tid) + __field_hex(void *, child_tid)), + TP_fast_assign( + tp_assign(clone_flags, clone_flags) + tp_assign(newsp, newsp) + tp_assign(parent_tid, parent_tid) + tp_assign(child_tid, child_tid)), + TP_printk() +) + +/* present in 32, missing in 64 due to old kernel headers */ +#define OVERRIDE_32_sys_getcpu +#define OVERRIDE_64_sys_getcpu +SC_TRACE_EVENT(sys_getcpu, + TP_PROTO(unsigned __user *cpup, unsigned __user *nodep, void *tcache), + TP_ARGS(cpup, nodep, tcache), + TP_STRUCT__entry( + __field_hex(unsigned *, cpup) + __field_hex(unsigned *, nodep) + __field_hex(void *, tcache)), + TP_fast_assign( + tp_assign(cpup, cpup) + tp_assign(nodep, nodep) + tp_assign(tcache, tcache)), + TP_printk() +) + +#endif /* CREATE_SYSCALL_TABLE */ --- linux-3.11.0.orig/ubuntu/lttng-modules/instrumentation/syscalls/headers/x86-32-syscalls-3.1.0-rc6_integers.h +++ linux-3.11.0/ubuntu/lttng-modules/instrumentation/syscalls/headers/x86-32-syscalls-3.1.0-rc6_integers.h @@ -0,0 +1,1163 @@ +/* THIS FILE IS AUTO-GENERATED. DO NOT EDIT */ +#ifndef CREATE_SYSCALL_TABLE + +#if !defined(_TRACE_SYSCALLS_INTEGERS_H) || defined(TRACE_HEADER_MULTI_READ) +#define _TRACE_SYSCALLS_INTEGERS_H + +#include +#include +#include "x86-32-syscalls-3.1.0-rc6_integers_override.h" +#include "syscalls_integers_override.h" + +SC_DECLARE_EVENT_CLASS_NOARGS(syscalls_noargs, + TP_STRUCT__entry(), + TP_fast_assign(), + TP_printk() +) +#ifndef OVERRIDE_32_sys_restart_syscall +SC_DEFINE_EVENT_NOARGS(syscalls_noargs, sys_restart_syscall) +#endif +#ifndef OVERRIDE_32_sys_getpid +SC_DEFINE_EVENT_NOARGS(syscalls_noargs, sys_getpid) +#endif +#ifndef OVERRIDE_32_sys_getuid16 +SC_DEFINE_EVENT_NOARGS(syscalls_noargs, sys_getuid16) +#endif +#ifndef OVERRIDE_32_sys_pause +SC_DEFINE_EVENT_NOARGS(syscalls_noargs, sys_pause) +#endif +#ifndef OVERRIDE_32_sys_sync +SC_DEFINE_EVENT_NOARGS(syscalls_noargs, sys_sync) +#endif +#ifndef OVERRIDE_32_sys_getgid16 +SC_DEFINE_EVENT_NOARGS(syscalls_noargs, sys_getgid16) +#endif +#ifndef OVERRIDE_32_sys_geteuid16 +SC_DEFINE_EVENT_NOARGS(syscalls_noargs, sys_geteuid16) +#endif +#ifndef OVERRIDE_32_sys_getegid16 +SC_DEFINE_EVENT_NOARGS(syscalls_noargs, sys_getegid16) +#endif +#ifndef OVERRIDE_32_sys_getppid +SC_DEFINE_EVENT_NOARGS(syscalls_noargs, sys_getppid) +#endif +#ifndef OVERRIDE_32_sys_getpgrp +SC_DEFINE_EVENT_NOARGS(syscalls_noargs, sys_getpgrp) +#endif +#ifndef OVERRIDE_32_sys_setsid +SC_DEFINE_EVENT_NOARGS(syscalls_noargs, sys_setsid) +#endif +#ifndef OVERRIDE_32_sys_sgetmask +SC_DEFINE_EVENT_NOARGS(syscalls_noargs, sys_sgetmask) +#endif +#ifndef OVERRIDE_32_sys_vhangup +SC_DEFINE_EVENT_NOARGS(syscalls_noargs, sys_vhangup) +#endif +#ifndef OVERRIDE_32_sys_munlockall +SC_DEFINE_EVENT_NOARGS(syscalls_noargs, sys_munlockall) +#endif +#ifndef OVERRIDE_32_sys_sched_yield +SC_DEFINE_EVENT_NOARGS(syscalls_noargs, sys_sched_yield) +#endif +#ifndef OVERRIDE_32_sys_getuid +SC_DEFINE_EVENT_NOARGS(syscalls_noargs, sys_getuid) +#endif +#ifndef OVERRIDE_32_sys_getgid +SC_DEFINE_EVENT_NOARGS(syscalls_noargs, sys_getgid) +#endif +#ifndef OVERRIDE_32_sys_geteuid +SC_DEFINE_EVENT_NOARGS(syscalls_noargs, sys_geteuid) +#endif +#ifndef OVERRIDE_32_sys_getegid +SC_DEFINE_EVENT_NOARGS(syscalls_noargs, sys_getegid) +#endif +#ifndef OVERRIDE_32_sys_gettid +SC_DEFINE_EVENT_NOARGS(syscalls_noargs, sys_gettid) +#endif +#ifndef OVERRIDE_32_sys_inotify_init +SC_DEFINE_EVENT_NOARGS(syscalls_noargs, sys_inotify_init) +#endif +#ifndef OVERRIDE_32_sys_exit +SC_TRACE_EVENT(sys_exit, + TP_PROTO(int error_code), + TP_ARGS(error_code), + TP_STRUCT__entry(__field(int, error_code)), + TP_fast_assign(tp_assign(error_code, error_code)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_close +SC_TRACE_EVENT(sys_close, + TP_PROTO(unsigned int fd), + TP_ARGS(fd), + TP_STRUCT__entry(__field(unsigned int, fd)), + TP_fast_assign(tp_assign(fd, fd)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_setuid16 +SC_TRACE_EVENT(sys_setuid16, + TP_PROTO(old_uid_t uid), + TP_ARGS(uid), + TP_STRUCT__entry(__field(old_uid_t, uid)), + TP_fast_assign(tp_assign(uid, uid)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_alarm +SC_TRACE_EVENT(sys_alarm, + TP_PROTO(unsigned int seconds), + TP_ARGS(seconds), + TP_STRUCT__entry(__field(unsigned int, seconds)), + TP_fast_assign(tp_assign(seconds, seconds)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_nice +SC_TRACE_EVENT(sys_nice, + TP_PROTO(int increment), + TP_ARGS(increment), + TP_STRUCT__entry(__field(int, increment)), + TP_fast_assign(tp_assign(increment, increment)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_dup +SC_TRACE_EVENT(sys_dup, + TP_PROTO(unsigned int fildes), + TP_ARGS(fildes), + TP_STRUCT__entry(__field(unsigned int, fildes)), + TP_fast_assign(tp_assign(fildes, fildes)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_brk +SC_TRACE_EVENT(sys_brk, + TP_PROTO(unsigned long brk), + TP_ARGS(brk), + TP_STRUCT__entry(__field(unsigned long, brk)), + TP_fast_assign(tp_assign(brk, brk)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_setgid16 +SC_TRACE_EVENT(sys_setgid16, + TP_PROTO(old_gid_t gid), + TP_ARGS(gid), + TP_STRUCT__entry(__field(old_gid_t, gid)), + TP_fast_assign(tp_assign(gid, gid)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_umask +SC_TRACE_EVENT(sys_umask, + TP_PROTO(int mask), + TP_ARGS(mask), + TP_STRUCT__entry(__field(int, mask)), + TP_fast_assign(tp_assign(mask, mask)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_ssetmask +SC_TRACE_EVENT(sys_ssetmask, + TP_PROTO(int newmask), + TP_ARGS(newmask), + TP_STRUCT__entry(__field(int, newmask)), + TP_fast_assign(tp_assign(newmask, newmask)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_fsync +SC_TRACE_EVENT(sys_fsync, + TP_PROTO(unsigned int fd), + TP_ARGS(fd), + TP_STRUCT__entry(__field(unsigned int, fd)), + TP_fast_assign(tp_assign(fd, fd)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_getpgid +SC_TRACE_EVENT(sys_getpgid, + TP_PROTO(pid_t pid), + TP_ARGS(pid), + TP_STRUCT__entry(__field(pid_t, pid)), + TP_fast_assign(tp_assign(pid, pid)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_fchdir +SC_TRACE_EVENT(sys_fchdir, + TP_PROTO(unsigned int fd), + TP_ARGS(fd), + TP_STRUCT__entry(__field(unsigned int, fd)), + TP_fast_assign(tp_assign(fd, fd)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_personality +SC_TRACE_EVENT(sys_personality, + TP_PROTO(unsigned int personality), + TP_ARGS(personality), + TP_STRUCT__entry(__field(unsigned int, personality)), + TP_fast_assign(tp_assign(personality, personality)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_setfsuid16 +SC_TRACE_EVENT(sys_setfsuid16, + TP_PROTO(old_uid_t uid), + TP_ARGS(uid), + TP_STRUCT__entry(__field(old_uid_t, uid)), + TP_fast_assign(tp_assign(uid, uid)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_setfsgid16 +SC_TRACE_EVENT(sys_setfsgid16, + TP_PROTO(old_gid_t gid), + TP_ARGS(gid), + TP_STRUCT__entry(__field(old_gid_t, gid)), + TP_fast_assign(tp_assign(gid, gid)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_getsid +SC_TRACE_EVENT(sys_getsid, + TP_PROTO(pid_t pid), + TP_ARGS(pid), + TP_STRUCT__entry(__field(pid_t, pid)), + TP_fast_assign(tp_assign(pid, pid)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_fdatasync +SC_TRACE_EVENT(sys_fdatasync, + TP_PROTO(unsigned int fd), + TP_ARGS(fd), + TP_STRUCT__entry(__field(unsigned int, fd)), + TP_fast_assign(tp_assign(fd, fd)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_mlockall +SC_TRACE_EVENT(sys_mlockall, + TP_PROTO(int flags), + TP_ARGS(flags), + TP_STRUCT__entry(__field(int, flags)), + TP_fast_assign(tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_sched_getscheduler +SC_TRACE_EVENT(sys_sched_getscheduler, + TP_PROTO(pid_t pid), + TP_ARGS(pid), + TP_STRUCT__entry(__field(pid_t, pid)), + TP_fast_assign(tp_assign(pid, pid)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_sched_get_priority_max +SC_TRACE_EVENT(sys_sched_get_priority_max, + TP_PROTO(int policy), + TP_ARGS(policy), + TP_STRUCT__entry(__field(int, policy)), + TP_fast_assign(tp_assign(policy, policy)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_sched_get_priority_min +SC_TRACE_EVENT(sys_sched_get_priority_min, + TP_PROTO(int policy), + TP_ARGS(policy), + TP_STRUCT__entry(__field(int, policy)), + TP_fast_assign(tp_assign(policy, policy)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_setuid +SC_TRACE_EVENT(sys_setuid, + TP_PROTO(uid_t uid), + TP_ARGS(uid), + TP_STRUCT__entry(__field(uid_t, uid)), + TP_fast_assign(tp_assign(uid, uid)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_setgid +SC_TRACE_EVENT(sys_setgid, + TP_PROTO(gid_t gid), + TP_ARGS(gid), + TP_STRUCT__entry(__field(gid_t, gid)), + TP_fast_assign(tp_assign(gid, gid)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_setfsuid +SC_TRACE_EVENT(sys_setfsuid, + TP_PROTO(uid_t uid), + TP_ARGS(uid), + TP_STRUCT__entry(__field(uid_t, uid)), + TP_fast_assign(tp_assign(uid, uid)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_setfsgid +SC_TRACE_EVENT(sys_setfsgid, + TP_PROTO(gid_t gid), + TP_ARGS(gid), + TP_STRUCT__entry(__field(gid_t, gid)), + TP_fast_assign(tp_assign(gid, gid)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_io_destroy +SC_TRACE_EVENT(sys_io_destroy, + TP_PROTO(aio_context_t ctx), + TP_ARGS(ctx), + TP_STRUCT__entry(__field(aio_context_t, ctx)), + TP_fast_assign(tp_assign(ctx, ctx)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_exit_group +SC_TRACE_EVENT(sys_exit_group, + TP_PROTO(int error_code), + TP_ARGS(error_code), + TP_STRUCT__entry(__field(int, error_code)), + TP_fast_assign(tp_assign(error_code, error_code)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_epoll_create +SC_TRACE_EVENT(sys_epoll_create, + TP_PROTO(int size), + TP_ARGS(size), + TP_STRUCT__entry(__field(int, size)), + TP_fast_assign(tp_assign(size, size)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_timer_getoverrun +SC_TRACE_EVENT(sys_timer_getoverrun, + TP_PROTO(timer_t timer_id), + TP_ARGS(timer_id), + TP_STRUCT__entry(__field(timer_t, timer_id)), + TP_fast_assign(tp_assign(timer_id, timer_id)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_timer_delete +SC_TRACE_EVENT(sys_timer_delete, + TP_PROTO(timer_t timer_id), + TP_ARGS(timer_id), + TP_STRUCT__entry(__field(timer_t, timer_id)), + TP_fast_assign(tp_assign(timer_id, timer_id)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_unshare +SC_TRACE_EVENT(sys_unshare, + TP_PROTO(unsigned long unshare_flags), + TP_ARGS(unshare_flags), + TP_STRUCT__entry(__field(unsigned long, unshare_flags)), + TP_fast_assign(tp_assign(unshare_flags, unshare_flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_eventfd +SC_TRACE_EVENT(sys_eventfd, + TP_PROTO(unsigned int count), + TP_ARGS(count), + TP_STRUCT__entry(__field(unsigned int, count)), + TP_fast_assign(tp_assign(count, count)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_epoll_create1 +SC_TRACE_EVENT(sys_epoll_create1, + TP_PROTO(int flags), + TP_ARGS(flags), + TP_STRUCT__entry(__field(int, flags)), + TP_fast_assign(tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_inotify_init1 +SC_TRACE_EVENT(sys_inotify_init1, + TP_PROTO(int flags), + TP_ARGS(flags), + TP_STRUCT__entry(__field(int, flags)), + TP_fast_assign(tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_syncfs +SC_TRACE_EVENT(sys_syncfs, + TP_PROTO(int fd), + TP_ARGS(fd), + TP_STRUCT__entry(__field(int, fd)), + TP_fast_assign(tp_assign(fd, fd)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_kill +SC_TRACE_EVENT(sys_kill, + TP_PROTO(pid_t pid, int sig), + TP_ARGS(pid, sig), + TP_STRUCT__entry(__field(pid_t, pid) __field(int, sig)), + TP_fast_assign(tp_assign(pid, pid) tp_assign(sig, sig)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_signal +SC_TRACE_EVENT(sys_signal, + TP_PROTO(int sig, __sighandler_t handler), + TP_ARGS(sig, handler), + TP_STRUCT__entry(__field(int, sig) __field(__sighandler_t, handler)), + TP_fast_assign(tp_assign(sig, sig) tp_assign(handler, handler)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_setpgid +SC_TRACE_EVENT(sys_setpgid, + TP_PROTO(pid_t pid, pid_t pgid), + TP_ARGS(pid, pgid), + TP_STRUCT__entry(__field(pid_t, pid) __field(pid_t, pgid)), + TP_fast_assign(tp_assign(pid, pid) tp_assign(pgid, pgid)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_dup2 +SC_TRACE_EVENT(sys_dup2, + TP_PROTO(unsigned int oldfd, unsigned int newfd), + TP_ARGS(oldfd, newfd), + TP_STRUCT__entry(__field(unsigned int, oldfd) __field(unsigned int, newfd)), + TP_fast_assign(tp_assign(oldfd, oldfd) tp_assign(newfd, newfd)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_setreuid16 +SC_TRACE_EVENT(sys_setreuid16, + TP_PROTO(old_uid_t ruid, old_uid_t euid), + TP_ARGS(ruid, euid), + TP_STRUCT__entry(__field(old_uid_t, ruid) __field(old_uid_t, euid)), + TP_fast_assign(tp_assign(ruid, ruid) tp_assign(euid, euid)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_setregid16 +SC_TRACE_EVENT(sys_setregid16, + TP_PROTO(old_gid_t rgid, old_gid_t egid), + TP_ARGS(rgid, egid), + TP_STRUCT__entry(__field(old_gid_t, rgid) __field(old_gid_t, egid)), + TP_fast_assign(tp_assign(rgid, rgid) tp_assign(egid, egid)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_munmap +SC_TRACE_EVENT(sys_munmap, + TP_PROTO(unsigned long addr, size_t len), + TP_ARGS(addr, len), + TP_STRUCT__entry(__field_hex(unsigned long, addr) __field(size_t, len)), + TP_fast_assign(tp_assign(addr, addr) tp_assign(len, len)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_ftruncate +SC_TRACE_EVENT(sys_ftruncate, + TP_PROTO(unsigned int fd, unsigned long length), + TP_ARGS(fd, length), + TP_STRUCT__entry(__field(unsigned int, fd) __field(unsigned long, length)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(length, length)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_fchmod +SC_TRACE_EVENT(sys_fchmod, + TP_PROTO(unsigned int fd, mode_t mode), + TP_ARGS(fd, mode), + TP_STRUCT__entry(__field(unsigned int, fd) __field(mode_t, mode)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(mode, mode)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_getpriority +SC_TRACE_EVENT(sys_getpriority, + TP_PROTO(int which, int who), + TP_ARGS(which, who), + TP_STRUCT__entry(__field(int, which) __field(int, who)), + TP_fast_assign(tp_assign(which, which) tp_assign(who, who)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_bdflush +SC_TRACE_EVENT(sys_bdflush, + TP_PROTO(int func, long data), + TP_ARGS(func, data), + TP_STRUCT__entry(__field(int, func) __field(long, data)), + TP_fast_assign(tp_assign(func, func) tp_assign(data, data)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_flock +SC_TRACE_EVENT(sys_flock, + TP_PROTO(unsigned int fd, unsigned int cmd), + TP_ARGS(fd, cmd), + TP_STRUCT__entry(__field(unsigned int, fd) __field(unsigned int, cmd)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(cmd, cmd)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_mlock +SC_TRACE_EVENT(sys_mlock, + TP_PROTO(unsigned long start, size_t len), + TP_ARGS(start, len), + TP_STRUCT__entry(__field(unsigned long, start) __field(size_t, len)), + TP_fast_assign(tp_assign(start, start) tp_assign(len, len)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_munlock +SC_TRACE_EVENT(sys_munlock, + TP_PROTO(unsigned long start, size_t len), + TP_ARGS(start, len), + TP_STRUCT__entry(__field(unsigned long, start) __field(size_t, len)), + TP_fast_assign(tp_assign(start, start) tp_assign(len, len)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_setreuid +SC_TRACE_EVENT(sys_setreuid, + TP_PROTO(uid_t ruid, uid_t euid), + TP_ARGS(ruid, euid), + TP_STRUCT__entry(__field(uid_t, ruid) __field(uid_t, euid)), + TP_fast_assign(tp_assign(ruid, ruid) tp_assign(euid, euid)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_setregid +SC_TRACE_EVENT(sys_setregid, + TP_PROTO(gid_t rgid, gid_t egid), + TP_ARGS(rgid, egid), + TP_STRUCT__entry(__field(gid_t, rgid) __field(gid_t, egid)), + TP_fast_assign(tp_assign(rgid, rgid) tp_assign(egid, egid)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_tkill +SC_TRACE_EVENT(sys_tkill, + TP_PROTO(pid_t pid, int sig), + TP_ARGS(pid, sig), + TP_STRUCT__entry(__field(pid_t, pid) __field(int, sig)), + TP_fast_assign(tp_assign(pid, pid) tp_assign(sig, sig)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_ioprio_get +SC_TRACE_EVENT(sys_ioprio_get, + TP_PROTO(int which, int who), + TP_ARGS(which, who), + TP_STRUCT__entry(__field(int, which) __field(int, who)), + TP_fast_assign(tp_assign(which, which) tp_assign(who, who)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_inotify_rm_watch +SC_TRACE_EVENT(sys_inotify_rm_watch, + TP_PROTO(int fd, __s32 wd), + TP_ARGS(fd, wd), + TP_STRUCT__entry(__field(int, fd) __field(__s32, wd)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(wd, wd)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_timerfd_create +SC_TRACE_EVENT(sys_timerfd_create, + TP_PROTO(int clockid, int flags), + TP_ARGS(clockid, flags), + TP_STRUCT__entry(__field(int, clockid) __field(int, flags)), + TP_fast_assign(tp_assign(clockid, clockid) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_eventfd2 +SC_TRACE_EVENT(sys_eventfd2, + TP_PROTO(unsigned int count, int flags), + TP_ARGS(count, flags), + TP_STRUCT__entry(__field(unsigned int, count) __field(int, flags)), + TP_fast_assign(tp_assign(count, count) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_fanotify_init +SC_TRACE_EVENT(sys_fanotify_init, + TP_PROTO(unsigned int flags, unsigned int event_f_flags), + TP_ARGS(flags, event_f_flags), + TP_STRUCT__entry(__field(unsigned int, flags) __field(unsigned int, event_f_flags)), + TP_fast_assign(tp_assign(flags, flags) tp_assign(event_f_flags, event_f_flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_setns +SC_TRACE_EVENT(sys_setns, + TP_PROTO(int fd, int nstype), + TP_ARGS(fd, nstype), + TP_STRUCT__entry(__field(int, fd) __field(int, nstype)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(nstype, nstype)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_lseek +SC_TRACE_EVENT(sys_lseek, + TP_PROTO(unsigned int fd, off_t offset, unsigned int origin), + TP_ARGS(fd, offset, origin), + TP_STRUCT__entry(__field(unsigned int, fd) __field(off_t, offset) __field(unsigned int, origin)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(offset, offset) tp_assign(origin, origin)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_ioctl +SC_TRACE_EVENT(sys_ioctl, + TP_PROTO(unsigned int fd, unsigned int cmd, unsigned long arg), + TP_ARGS(fd, cmd, arg), + TP_STRUCT__entry(__field(unsigned int, fd) __field(unsigned int, cmd) __field(unsigned long, arg)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(cmd, cmd) tp_assign(arg, arg)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_fcntl +SC_TRACE_EVENT(sys_fcntl, + TP_PROTO(unsigned int fd, unsigned int cmd, unsigned long arg), + TP_ARGS(fd, cmd, arg), + TP_STRUCT__entry(__field(unsigned int, fd) __field(unsigned int, cmd) __field(unsigned long, arg)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(cmd, cmd) tp_assign(arg, arg)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_fchown16 +SC_TRACE_EVENT(sys_fchown16, + TP_PROTO(unsigned int fd, old_uid_t user, old_gid_t group), + TP_ARGS(fd, user, group), + TP_STRUCT__entry(__field(unsigned int, fd) __field(old_uid_t, user) __field(old_gid_t, group)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(user, user) tp_assign(group, group)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_setpriority +SC_TRACE_EVENT(sys_setpriority, + TP_PROTO(int which, int who, int niceval), + TP_ARGS(which, who, niceval), + TP_STRUCT__entry(__field(int, which) __field(int, who) __field(int, niceval)), + TP_fast_assign(tp_assign(which, which) tp_assign(who, who) tp_assign(niceval, niceval)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_mprotect +SC_TRACE_EVENT(sys_mprotect, + TP_PROTO(unsigned long start, size_t len, unsigned long prot), + TP_ARGS(start, len, prot), + TP_STRUCT__entry(__field(unsigned long, start) __field(size_t, len) __field(unsigned long, prot)), + TP_fast_assign(tp_assign(start, start) tp_assign(len, len) tp_assign(prot, prot)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_sysfs +SC_TRACE_EVENT(sys_sysfs, + TP_PROTO(int option, unsigned long arg1, unsigned long arg2), + TP_ARGS(option, arg1, arg2), + TP_STRUCT__entry(__field(int, option) __field(unsigned long, arg1) __field(unsigned long, arg2)), + TP_fast_assign(tp_assign(option, option) tp_assign(arg1, arg1) tp_assign(arg2, arg2)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_msync +SC_TRACE_EVENT(sys_msync, + TP_PROTO(unsigned long start, size_t len, int flags), + TP_ARGS(start, len, flags), + TP_STRUCT__entry(__field(unsigned long, start) __field(size_t, len) __field(int, flags)), + TP_fast_assign(tp_assign(start, start) tp_assign(len, len) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_setresuid16 +SC_TRACE_EVENT(sys_setresuid16, + TP_PROTO(old_uid_t ruid, old_uid_t euid, old_uid_t suid), + TP_ARGS(ruid, euid, suid), + TP_STRUCT__entry(__field(old_uid_t, ruid) __field(old_uid_t, euid) __field(old_uid_t, suid)), + TP_fast_assign(tp_assign(ruid, ruid) tp_assign(euid, euid) tp_assign(suid, suid)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_setresgid16 +SC_TRACE_EVENT(sys_setresgid16, + TP_PROTO(old_gid_t rgid, old_gid_t egid, old_gid_t sgid), + TP_ARGS(rgid, egid, sgid), + TP_STRUCT__entry(__field(old_gid_t, rgid) __field(old_gid_t, egid) __field(old_gid_t, sgid)), + TP_fast_assign(tp_assign(rgid, rgid) tp_assign(egid, egid) tp_assign(sgid, sgid)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_fchown +SC_TRACE_EVENT(sys_fchown, + TP_PROTO(unsigned int fd, uid_t user, gid_t group), + TP_ARGS(fd, user, group), + TP_STRUCT__entry(__field(unsigned int, fd) __field(uid_t, user) __field(gid_t, group)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(user, user) tp_assign(group, group)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_setresuid +SC_TRACE_EVENT(sys_setresuid, + TP_PROTO(uid_t ruid, uid_t euid, uid_t suid), + TP_ARGS(ruid, euid, suid), + TP_STRUCT__entry(__field(uid_t, ruid) __field(uid_t, euid) __field(uid_t, suid)), + TP_fast_assign(tp_assign(ruid, ruid) tp_assign(euid, euid) tp_assign(suid, suid)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_setresgid +SC_TRACE_EVENT(sys_setresgid, + TP_PROTO(gid_t rgid, gid_t egid, gid_t sgid), + TP_ARGS(rgid, egid, sgid), + TP_STRUCT__entry(__field(gid_t, rgid) __field(gid_t, egid) __field(gid_t, sgid)), + TP_fast_assign(tp_assign(rgid, rgid) tp_assign(egid, egid) tp_assign(sgid, sgid)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_madvise +SC_TRACE_EVENT(sys_madvise, + TP_PROTO(unsigned long start, size_t len_in, int behavior), + TP_ARGS(start, len_in, behavior), + TP_STRUCT__entry(__field(unsigned long, start) __field(size_t, len_in) __field(int, behavior)), + TP_fast_assign(tp_assign(start, start) tp_assign(len_in, len_in) tp_assign(behavior, behavior)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_fcntl64 +SC_TRACE_EVENT(sys_fcntl64, + TP_PROTO(unsigned int fd, unsigned int cmd, unsigned long arg), + TP_ARGS(fd, cmd, arg), + TP_STRUCT__entry(__field(unsigned int, fd) __field(unsigned int, cmd) __field(unsigned long, arg)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(cmd, cmd) tp_assign(arg, arg)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_tgkill +SC_TRACE_EVENT(sys_tgkill, + TP_PROTO(pid_t tgid, pid_t pid, int sig), + TP_ARGS(tgid, pid, sig), + TP_STRUCT__entry(__field(pid_t, tgid) __field(pid_t, pid) __field(int, sig)), + TP_fast_assign(tp_assign(tgid, tgid) tp_assign(pid, pid) tp_assign(sig, sig)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_ioprio_set +SC_TRACE_EVENT(sys_ioprio_set, + TP_PROTO(int which, int who, int ioprio), + TP_ARGS(which, who, ioprio), + TP_STRUCT__entry(__field(int, which) __field(int, who) __field(int, ioprio)), + TP_fast_assign(tp_assign(which, which) tp_assign(who, who) tp_assign(ioprio, ioprio)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_dup3 +SC_TRACE_EVENT(sys_dup3, + TP_PROTO(unsigned int oldfd, unsigned int newfd, int flags), + TP_ARGS(oldfd, newfd, flags), + TP_STRUCT__entry(__field(unsigned int, oldfd) __field(unsigned int, newfd) __field(int, flags)), + TP_fast_assign(tp_assign(oldfd, oldfd) tp_assign(newfd, newfd) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_ptrace +SC_TRACE_EVENT(sys_ptrace, + TP_PROTO(long request, long pid, unsigned long addr, unsigned long data), + TP_ARGS(request, pid, addr, data), + TP_STRUCT__entry(__field(long, request) __field(long, pid) __field_hex(unsigned long, addr) __field(unsigned long, data)), + TP_fast_assign(tp_assign(request, request) tp_assign(pid, pid) tp_assign(addr, addr) tp_assign(data, data)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_tee +SC_TRACE_EVENT(sys_tee, + TP_PROTO(int fdin, int fdout, size_t len, unsigned int flags), + TP_ARGS(fdin, fdout, len, flags), + TP_STRUCT__entry(__field(int, fdin) __field(int, fdout) __field(size_t, len) __field(unsigned int, flags)), + TP_fast_assign(tp_assign(fdin, fdin) tp_assign(fdout, fdout) tp_assign(len, len) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_mremap +SC_TRACE_EVENT(sys_mremap, + TP_PROTO(unsigned long addr, unsigned long old_len, unsigned long new_len, unsigned long flags, unsigned long new_addr), + TP_ARGS(addr, old_len, new_len, flags, new_addr), + TP_STRUCT__entry(__field_hex(unsigned long, addr) __field(unsigned long, old_len) __field(unsigned long, new_len) __field(unsigned long, flags) __field_hex(unsigned long, new_addr)), + TP_fast_assign(tp_assign(addr, addr) tp_assign(old_len, old_len) tp_assign(new_len, new_len) tp_assign(flags, flags) tp_assign(new_addr, new_addr)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_prctl +SC_TRACE_EVENT(sys_prctl, + TP_PROTO(int option, unsigned long arg2, unsigned long arg3, unsigned long arg4, unsigned long arg5), + TP_ARGS(option, arg2, arg3, arg4, arg5), + TP_STRUCT__entry(__field(int, option) __field(unsigned long, arg2) __field(unsigned long, arg3) __field(unsigned long, arg4) __field(unsigned long, arg5)), + TP_fast_assign(tp_assign(option, option) tp_assign(arg2, arg2) tp_assign(arg3, arg3) tp_assign(arg4, arg4) tp_assign(arg5, arg5)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_remap_file_pages +SC_TRACE_EVENT(sys_remap_file_pages, + TP_PROTO(unsigned long start, unsigned long size, unsigned long prot, unsigned long pgoff, unsigned long flags), + TP_ARGS(start, size, prot, pgoff, flags), + TP_STRUCT__entry(__field(unsigned long, start) __field(unsigned long, size) __field(unsigned long, prot) __field(unsigned long, pgoff) __field(unsigned long, flags)), + TP_fast_assign(tp_assign(start, start) tp_assign(size, size) tp_assign(prot, prot) tp_assign(pgoff, pgoff) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_keyctl +SC_TRACE_EVENT(sys_keyctl, + TP_PROTO(int option, unsigned long arg2, unsigned long arg3, unsigned long arg4, unsigned long arg5), + TP_ARGS(option, arg2, arg3, arg4, arg5), + TP_STRUCT__entry(__field(int, option) __field(unsigned long, arg2) __field(unsigned long, arg3) __field(unsigned long, arg4) __field(unsigned long, arg5)), + TP_fast_assign(tp_assign(option, option) tp_assign(arg2, arg2) tp_assign(arg3, arg3) tp_assign(arg4, arg4) tp_assign(arg5, arg5)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_mmap_pgoff +SC_TRACE_EVENT(sys_mmap_pgoff, + TP_PROTO(unsigned long addr, unsigned long len, unsigned long prot, unsigned long flags, unsigned long fd, unsigned long pgoff), + TP_ARGS(addr, len, prot, flags, fd, pgoff), + TP_STRUCT__entry(__field_hex(unsigned long, addr) __field(unsigned long, len) __field(unsigned long, prot) __field(unsigned long, flags) __field(unsigned long, fd) __field(unsigned long, pgoff)), + TP_fast_assign(tp_assign(addr, addr) tp_assign(len, len) tp_assign(prot, prot) tp_assign(flags, flags) tp_assign(fd, fd) tp_assign(pgoff, pgoff)), + TP_printk() +) +#endif + +#endif /* _TRACE_SYSCALLS_INTEGERS_H */ + +/* This part must be outside protection */ +#include "../../../probes/define_trace.h" + +#else /* CREATE_SYSCALL_TABLE */ + +#include "x86-32-syscalls-3.1.0-rc6_integers_override.h" +#include "syscalls_integers_override.h" + +#ifndef OVERRIDE_TABLE_32_sys_restart_syscall +TRACE_SYSCALL_TABLE(syscalls_noargs, sys_restart_syscall, 0, 0) +#endif +#ifndef OVERRIDE_TABLE_32_sys_getpid +TRACE_SYSCALL_TABLE(syscalls_noargs, sys_getpid, 20, 0) +#endif +#ifndef OVERRIDE_TABLE_32_sys_getuid16 +TRACE_SYSCALL_TABLE(syscalls_noargs, sys_getuid16, 24, 0) +#endif +#ifndef OVERRIDE_TABLE_32_sys_pause +TRACE_SYSCALL_TABLE(syscalls_noargs, sys_pause, 29, 0) +#endif +#ifndef OVERRIDE_TABLE_32_sys_sync +TRACE_SYSCALL_TABLE(syscalls_noargs, sys_sync, 36, 0) +#endif +#ifndef OVERRIDE_TABLE_32_sys_getgid16 +TRACE_SYSCALL_TABLE(syscalls_noargs, sys_getgid16, 47, 0) +#endif +#ifndef OVERRIDE_TABLE_32_sys_geteuid16 +TRACE_SYSCALL_TABLE(syscalls_noargs, sys_geteuid16, 49, 0) +#endif +#ifndef OVERRIDE_TABLE_32_sys_getegid16 +TRACE_SYSCALL_TABLE(syscalls_noargs, sys_getegid16, 50, 0) +#endif +#ifndef OVERRIDE_TABLE_32_sys_getppid +TRACE_SYSCALL_TABLE(syscalls_noargs, sys_getppid, 64, 0) +#endif +#ifndef OVERRIDE_TABLE_32_sys_getpgrp +TRACE_SYSCALL_TABLE(syscalls_noargs, sys_getpgrp, 65, 0) +#endif +#ifndef OVERRIDE_TABLE_32_sys_setsid +TRACE_SYSCALL_TABLE(syscalls_noargs, sys_setsid, 66, 0) +#endif +#ifndef OVERRIDE_TABLE_32_sys_sgetmask +TRACE_SYSCALL_TABLE(syscalls_noargs, sys_sgetmask, 68, 0) +#endif +#ifndef OVERRIDE_TABLE_32_sys_vhangup +TRACE_SYSCALL_TABLE(syscalls_noargs, sys_vhangup, 111, 0) +#endif +#ifndef OVERRIDE_TABLE_32_sys_munlockall +TRACE_SYSCALL_TABLE(syscalls_noargs, sys_munlockall, 153, 0) +#endif +#ifndef OVERRIDE_TABLE_32_sys_sched_yield +TRACE_SYSCALL_TABLE(syscalls_noargs, sys_sched_yield, 158, 0) +#endif +#ifndef OVERRIDE_TABLE_32_sys_getuid +TRACE_SYSCALL_TABLE(syscalls_noargs, sys_getuid, 199, 0) +#endif +#ifndef OVERRIDE_TABLE_32_sys_getgid +TRACE_SYSCALL_TABLE(syscalls_noargs, sys_getgid, 200, 0) +#endif +#ifndef OVERRIDE_TABLE_32_sys_geteuid +TRACE_SYSCALL_TABLE(syscalls_noargs, sys_geteuid, 201, 0) +#endif +#ifndef OVERRIDE_TABLE_32_sys_getegid +TRACE_SYSCALL_TABLE(syscalls_noargs, sys_getegid, 202, 0) +#endif +#ifndef OVERRIDE_TABLE_32_sys_gettid +TRACE_SYSCALL_TABLE(syscalls_noargs, sys_gettid, 224, 0) +#endif +#ifndef OVERRIDE_TABLE_32_sys_inotify_init +TRACE_SYSCALL_TABLE(syscalls_noargs, sys_inotify_init, 291, 0) +#endif +#ifndef OVERRIDE_TABLE_32_sys_exit +TRACE_SYSCALL_TABLE(sys_exit, sys_exit, 1, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_close +TRACE_SYSCALL_TABLE(sys_close, sys_close, 6, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_lseek +TRACE_SYSCALL_TABLE(sys_lseek, sys_lseek, 19, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_setuid16 +TRACE_SYSCALL_TABLE(sys_setuid16, sys_setuid16, 23, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_ptrace +TRACE_SYSCALL_TABLE(sys_ptrace, sys_ptrace, 26, 4) +#endif +#ifndef OVERRIDE_TABLE_32_sys_alarm +TRACE_SYSCALL_TABLE(sys_alarm, sys_alarm, 27, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_nice +TRACE_SYSCALL_TABLE(sys_nice, sys_nice, 34, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_kill +TRACE_SYSCALL_TABLE(sys_kill, sys_kill, 37, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_dup +TRACE_SYSCALL_TABLE(sys_dup, sys_dup, 41, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_brk +TRACE_SYSCALL_TABLE(sys_brk, sys_brk, 45, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_setgid16 +TRACE_SYSCALL_TABLE(sys_setgid16, sys_setgid16, 46, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_signal +TRACE_SYSCALL_TABLE(sys_signal, sys_signal, 48, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_ioctl +TRACE_SYSCALL_TABLE(sys_ioctl, sys_ioctl, 54, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_fcntl +TRACE_SYSCALL_TABLE(sys_fcntl, sys_fcntl, 55, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_setpgid +TRACE_SYSCALL_TABLE(sys_setpgid, sys_setpgid, 57, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_umask +TRACE_SYSCALL_TABLE(sys_umask, sys_umask, 60, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_dup2 +TRACE_SYSCALL_TABLE(sys_dup2, sys_dup2, 63, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_ssetmask +TRACE_SYSCALL_TABLE(sys_ssetmask, sys_ssetmask, 69, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_setreuid16 +TRACE_SYSCALL_TABLE(sys_setreuid16, sys_setreuid16, 70, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_setregid16 +TRACE_SYSCALL_TABLE(sys_setregid16, sys_setregid16, 71, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_munmap +TRACE_SYSCALL_TABLE(sys_munmap, sys_munmap, 91, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_ftruncate +TRACE_SYSCALL_TABLE(sys_ftruncate, sys_ftruncate, 93, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_fchmod +TRACE_SYSCALL_TABLE(sys_fchmod, sys_fchmod, 94, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_fchown16 +TRACE_SYSCALL_TABLE(sys_fchown16, sys_fchown16, 95, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_getpriority +TRACE_SYSCALL_TABLE(sys_getpriority, sys_getpriority, 96, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_setpriority +TRACE_SYSCALL_TABLE(sys_setpriority, sys_setpriority, 97, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_fsync +TRACE_SYSCALL_TABLE(sys_fsync, sys_fsync, 118, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_mprotect +TRACE_SYSCALL_TABLE(sys_mprotect, sys_mprotect, 125, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_getpgid +TRACE_SYSCALL_TABLE(sys_getpgid, sys_getpgid, 132, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_fchdir +TRACE_SYSCALL_TABLE(sys_fchdir, sys_fchdir, 133, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_bdflush +TRACE_SYSCALL_TABLE(sys_bdflush, sys_bdflush, 134, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_sysfs +TRACE_SYSCALL_TABLE(sys_sysfs, sys_sysfs, 135, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_personality +TRACE_SYSCALL_TABLE(sys_personality, sys_personality, 136, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_setfsuid16 +TRACE_SYSCALL_TABLE(sys_setfsuid16, sys_setfsuid16, 138, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_setfsgid16 +TRACE_SYSCALL_TABLE(sys_setfsgid16, sys_setfsgid16, 139, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_flock +TRACE_SYSCALL_TABLE(sys_flock, sys_flock, 143, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_msync +TRACE_SYSCALL_TABLE(sys_msync, sys_msync, 144, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_getsid +TRACE_SYSCALL_TABLE(sys_getsid, sys_getsid, 147, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_fdatasync +TRACE_SYSCALL_TABLE(sys_fdatasync, sys_fdatasync, 148, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_mlock +TRACE_SYSCALL_TABLE(sys_mlock, sys_mlock, 150, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_munlock +TRACE_SYSCALL_TABLE(sys_munlock, sys_munlock, 151, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_mlockall +TRACE_SYSCALL_TABLE(sys_mlockall, sys_mlockall, 152, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_sched_getscheduler +TRACE_SYSCALL_TABLE(sys_sched_getscheduler, sys_sched_getscheduler, 157, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_sched_get_priority_max +TRACE_SYSCALL_TABLE(sys_sched_get_priority_max, sys_sched_get_priority_max, 159, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_sched_get_priority_min +TRACE_SYSCALL_TABLE(sys_sched_get_priority_min, sys_sched_get_priority_min, 160, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_mremap +TRACE_SYSCALL_TABLE(sys_mremap, sys_mremap, 163, 5) +#endif +#ifndef OVERRIDE_TABLE_32_sys_setresuid16 +TRACE_SYSCALL_TABLE(sys_setresuid16, sys_setresuid16, 164, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_setresgid16 +TRACE_SYSCALL_TABLE(sys_setresgid16, sys_setresgid16, 170, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_prctl +TRACE_SYSCALL_TABLE(sys_prctl, sys_prctl, 172, 5) +#endif +#ifndef OVERRIDE_TABLE_32_sys_mmap_pgoff +TRACE_SYSCALL_TABLE(sys_mmap_pgoff, sys_mmap_pgoff, 192, 6) +#endif +#ifndef OVERRIDE_TABLE_32_sys_setreuid +TRACE_SYSCALL_TABLE(sys_setreuid, sys_setreuid, 203, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_setregid +TRACE_SYSCALL_TABLE(sys_setregid, sys_setregid, 204, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_fchown +TRACE_SYSCALL_TABLE(sys_fchown, sys_fchown, 207, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_setresuid +TRACE_SYSCALL_TABLE(sys_setresuid, sys_setresuid, 208, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_setresgid +TRACE_SYSCALL_TABLE(sys_setresgid, sys_setresgid, 210, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_setuid +TRACE_SYSCALL_TABLE(sys_setuid, sys_setuid, 213, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_setgid +TRACE_SYSCALL_TABLE(sys_setgid, sys_setgid, 214, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_setfsuid +TRACE_SYSCALL_TABLE(sys_setfsuid, sys_setfsuid, 215, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_setfsgid +TRACE_SYSCALL_TABLE(sys_setfsgid, sys_setfsgid, 216, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_madvise +TRACE_SYSCALL_TABLE(sys_madvise, sys_madvise, 219, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_fcntl64 +TRACE_SYSCALL_TABLE(sys_fcntl64, sys_fcntl64, 221, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_tkill +TRACE_SYSCALL_TABLE(sys_tkill, sys_tkill, 238, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_io_destroy +TRACE_SYSCALL_TABLE(sys_io_destroy, sys_io_destroy, 246, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_exit_group +TRACE_SYSCALL_TABLE(sys_exit_group, sys_exit_group, 252, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_epoll_create +TRACE_SYSCALL_TABLE(sys_epoll_create, sys_epoll_create, 254, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_remap_file_pages +TRACE_SYSCALL_TABLE(sys_remap_file_pages, sys_remap_file_pages, 257, 5) +#endif +#ifndef OVERRIDE_TABLE_32_sys_timer_getoverrun +TRACE_SYSCALL_TABLE(sys_timer_getoverrun, sys_timer_getoverrun, 262, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_timer_delete +TRACE_SYSCALL_TABLE(sys_timer_delete, sys_timer_delete, 263, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_tgkill +TRACE_SYSCALL_TABLE(sys_tgkill, sys_tgkill, 270, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_keyctl +TRACE_SYSCALL_TABLE(sys_keyctl, sys_keyctl, 288, 5) +#endif +#ifndef OVERRIDE_TABLE_32_sys_ioprio_set +TRACE_SYSCALL_TABLE(sys_ioprio_set, sys_ioprio_set, 289, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_ioprio_get +TRACE_SYSCALL_TABLE(sys_ioprio_get, sys_ioprio_get, 290, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_inotify_rm_watch +TRACE_SYSCALL_TABLE(sys_inotify_rm_watch, sys_inotify_rm_watch, 293, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_unshare +TRACE_SYSCALL_TABLE(sys_unshare, sys_unshare, 310, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_tee +TRACE_SYSCALL_TABLE(sys_tee, sys_tee, 315, 4) +#endif +#ifndef OVERRIDE_TABLE_32_sys_timerfd_create +TRACE_SYSCALL_TABLE(sys_timerfd_create, sys_timerfd_create, 322, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_eventfd +TRACE_SYSCALL_TABLE(sys_eventfd, sys_eventfd, 323, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_eventfd2 +TRACE_SYSCALL_TABLE(sys_eventfd2, sys_eventfd2, 328, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_epoll_create1 +TRACE_SYSCALL_TABLE(sys_epoll_create1, sys_epoll_create1, 329, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_dup3 +TRACE_SYSCALL_TABLE(sys_dup3, sys_dup3, 330, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_inotify_init1 +TRACE_SYSCALL_TABLE(sys_inotify_init1, sys_inotify_init1, 332, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_fanotify_init +TRACE_SYSCALL_TABLE(sys_fanotify_init, sys_fanotify_init, 338, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_syncfs +TRACE_SYSCALL_TABLE(sys_syncfs, sys_syncfs, 344, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_setns +TRACE_SYSCALL_TABLE(sys_setns, sys_setns, 346, 2) +#endif + +#endif /* CREATE_SYSCALL_TABLE */ --- linux-3.11.0.orig/ubuntu/lttng-modules/instrumentation/syscalls/headers/mips-64-syscalls-3.5.0_integers.h +++ linux-3.11.0/ubuntu/lttng-modules/instrumentation/syscalls/headers/mips-64-syscalls-3.5.0_integers.h @@ -0,0 +1,1163 @@ +/* THIS FILE IS AUTO-GENERATED. DO NOT EDIT */ +#ifndef CREATE_SYSCALL_TABLE + +#if !defined(_TRACE_SYSCALLS_INTEGERS_H) || defined(TRACE_HEADER_MULTI_READ) +#define _TRACE_SYSCALLS_INTEGERS_H + +#include +#include +#include "mips-64-syscalls-3.5.0_integers_override.h" +#include "syscalls_integers_override.h" + +SC_DECLARE_EVENT_CLASS_NOARGS(syscalls_noargs, + TP_STRUCT__entry(), + TP_fast_assign(), + TP_printk() +) +#ifndef OVERRIDE_64_sys_sgetmask +SC_DEFINE_EVENT_NOARGS(syscalls_noargs, sys_sgetmask) +#endif +#ifndef OVERRIDE_64_sys_sched_yield +SC_DEFINE_EVENT_NOARGS(syscalls_noargs, sys_sched_yield) +#endif +#ifndef OVERRIDE_64_sys_pause +SC_DEFINE_EVENT_NOARGS(syscalls_noargs, sys_pause) +#endif +#ifndef OVERRIDE_64_sys_getpid +SC_DEFINE_EVENT_NOARGS(syscalls_noargs, sys_getpid) +#endif +#ifndef OVERRIDE_64_sys_getuid +SC_DEFINE_EVENT_NOARGS(syscalls_noargs, sys_getuid) +#endif +#ifndef OVERRIDE_64_sys_getgid +SC_DEFINE_EVENT_NOARGS(syscalls_noargs, sys_getgid) +#endif +#ifndef OVERRIDE_64_sys_geteuid +SC_DEFINE_EVENT_NOARGS(syscalls_noargs, sys_geteuid) +#endif +#ifndef OVERRIDE_64_sys_getegid +SC_DEFINE_EVENT_NOARGS(syscalls_noargs, sys_getegid) +#endif +#ifndef OVERRIDE_64_sys_getppid +SC_DEFINE_EVENT_NOARGS(syscalls_noargs, sys_getppid) +#endif +#ifndef OVERRIDE_64_sys_getpgrp +SC_DEFINE_EVENT_NOARGS(syscalls_noargs, sys_getpgrp) +#endif +#ifndef OVERRIDE_64_sys_setsid +SC_DEFINE_EVENT_NOARGS(syscalls_noargs, sys_setsid) +#endif +#ifndef OVERRIDE_64_sys_munlockall +SC_DEFINE_EVENT_NOARGS(syscalls_noargs, sys_munlockall) +#endif +#ifndef OVERRIDE_64_sys_vhangup +SC_DEFINE_EVENT_NOARGS(syscalls_noargs, sys_vhangup) +#endif +#ifndef OVERRIDE_64_sys_sync +SC_DEFINE_EVENT_NOARGS(syscalls_noargs, sys_sync) +#endif +#ifndef OVERRIDE_64_sys_gettid +SC_DEFINE_EVENT_NOARGS(syscalls_noargs, sys_gettid) +#endif +#ifndef OVERRIDE_64_sys_restart_syscall +SC_DEFINE_EVENT_NOARGS(syscalls_noargs, sys_restart_syscall) +#endif +#ifndef OVERRIDE_64_sys_inotify_init +SC_DEFINE_EVENT_NOARGS(syscalls_noargs, sys_inotify_init) +#endif +#ifndef OVERRIDE_64_sys_nice +SC_TRACE_EVENT(sys_nice, + TP_PROTO(int increment), + TP_ARGS(increment), + TP_STRUCT__entry(__field(int, increment)), + TP_fast_assign(tp_assign(increment, increment)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_ssetmask +SC_TRACE_EVENT(sys_ssetmask, + TP_PROTO(int newmask), + TP_ARGS(newmask), + TP_STRUCT__entry(__field(int, newmask)), + TP_fast_assign(tp_assign(newmask, newmask)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_personality +SC_TRACE_EVENT(sys_personality, + TP_PROTO(unsigned int personality), + TP_ARGS(personality), + TP_STRUCT__entry(__field(unsigned int, personality)), + TP_fast_assign(tp_assign(personality, personality)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_close +SC_TRACE_EVENT(sys_close, + TP_PROTO(unsigned int fd), + TP_ARGS(fd), + TP_STRUCT__entry(__field(unsigned int, fd)), + TP_fast_assign(tp_assign(fd, fd)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_brk +SC_TRACE_EVENT(sys_brk, + TP_PROTO(unsigned long brk), + TP_ARGS(brk), + TP_STRUCT__entry(__field(unsigned long, brk)), + TP_fast_assign(tp_assign(brk, brk)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_dup +SC_TRACE_EVENT(sys_dup, + TP_PROTO(unsigned int fildes), + TP_ARGS(fildes), + TP_STRUCT__entry(__field(unsigned int, fildes)), + TP_fast_assign(tp_assign(fildes, fildes)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_alarm +SC_TRACE_EVENT(sys_alarm, + TP_PROTO(unsigned int seconds), + TP_ARGS(seconds), + TP_STRUCT__entry(__field(unsigned int, seconds)), + TP_fast_assign(tp_assign(seconds, seconds)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_exit +SC_TRACE_EVENT(sys_exit, + TP_PROTO(int error_code), + TP_ARGS(error_code), + TP_STRUCT__entry(__field(int, error_code)), + TP_fast_assign(tp_assign(error_code, error_code)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_fsync +SC_TRACE_EVENT(sys_fsync, + TP_PROTO(unsigned int fd), + TP_ARGS(fd), + TP_STRUCT__entry(__field(unsigned int, fd)), + TP_fast_assign(tp_assign(fd, fd)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_fdatasync +SC_TRACE_EVENT(sys_fdatasync, + TP_PROTO(unsigned int fd), + TP_ARGS(fd), + TP_STRUCT__entry(__field(unsigned int, fd)), + TP_fast_assign(tp_assign(fd, fd)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_fchdir +SC_TRACE_EVENT(sys_fchdir, + TP_PROTO(unsigned int fd), + TP_ARGS(fd), + TP_STRUCT__entry(__field(unsigned int, fd)), + TP_fast_assign(tp_assign(fd, fd)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_umask +SC_TRACE_EVENT(sys_umask, + TP_PROTO(int mask), + TP_ARGS(mask), + TP_STRUCT__entry(__field(int, mask)), + TP_fast_assign(tp_assign(mask, mask)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_setuid +SC_TRACE_EVENT(sys_setuid, + TP_PROTO(uid_t uid), + TP_ARGS(uid), + TP_STRUCT__entry(__field(uid_t, uid)), + TP_fast_assign(tp_assign(uid, uid)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_setgid +SC_TRACE_EVENT(sys_setgid, + TP_PROTO(gid_t gid), + TP_ARGS(gid), + TP_STRUCT__entry(__field(gid_t, gid)), + TP_fast_assign(tp_assign(gid, gid)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_getpgid +SC_TRACE_EVENT(sys_getpgid, + TP_PROTO(pid_t pid), + TP_ARGS(pid), + TP_STRUCT__entry(__field(pid_t, pid)), + TP_fast_assign(tp_assign(pid, pid)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_setfsuid +SC_TRACE_EVENT(sys_setfsuid, + TP_PROTO(uid_t uid), + TP_ARGS(uid), + TP_STRUCT__entry(__field(uid_t, uid)), + TP_fast_assign(tp_assign(uid, uid)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_setfsgid +SC_TRACE_EVENT(sys_setfsgid, + TP_PROTO(gid_t gid), + TP_ARGS(gid), + TP_STRUCT__entry(__field(gid_t, gid)), + TP_fast_assign(tp_assign(gid, gid)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_getsid +SC_TRACE_EVENT(sys_getsid, + TP_PROTO(pid_t pid), + TP_ARGS(pid), + TP_STRUCT__entry(__field(pid_t, pid)), + TP_fast_assign(tp_assign(pid, pid)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_32_personality +SC_TRACE_EVENT(sys_32_personality, + TP_PROTO(unsigned long personality), + TP_ARGS(personality), + TP_STRUCT__entry(__field(unsigned long, personality)), + TP_fast_assign(tp_assign(personality, personality)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_sched_getscheduler +SC_TRACE_EVENT(sys_sched_getscheduler, + TP_PROTO(pid_t pid), + TP_ARGS(pid), + TP_STRUCT__entry(__field(pid_t, pid)), + TP_fast_assign(tp_assign(pid, pid)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_sched_get_priority_max +SC_TRACE_EVENT(sys_sched_get_priority_max, + TP_PROTO(int policy), + TP_ARGS(policy), + TP_STRUCT__entry(__field(int, policy)), + TP_fast_assign(tp_assign(policy, policy)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_sched_get_priority_min +SC_TRACE_EVENT(sys_sched_get_priority_min, + TP_PROTO(int policy), + TP_ARGS(policy), + TP_STRUCT__entry(__field(int, policy)), + TP_fast_assign(tp_assign(policy, policy)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_mlockall +SC_TRACE_EVENT(sys_mlockall, + TP_PROTO(int flags), + TP_ARGS(flags), + TP_STRUCT__entry(__field(int, flags)), + TP_fast_assign(tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_io_destroy +SC_TRACE_EVENT(sys_io_destroy, + TP_PROTO(aio_context_t ctx), + TP_ARGS(ctx), + TP_STRUCT__entry(__field(aio_context_t, ctx)), + TP_fast_assign(tp_assign(ctx, ctx)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_exit_group +SC_TRACE_EVENT(sys_exit_group, + TP_PROTO(int error_code), + TP_ARGS(error_code), + TP_STRUCT__entry(__field(int, error_code)), + TP_fast_assign(tp_assign(error_code, error_code)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_epoll_create +SC_TRACE_EVENT(sys_epoll_create, + TP_PROTO(int size), + TP_ARGS(size), + TP_STRUCT__entry(__field(int, size)), + TP_fast_assign(tp_assign(size, size)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_timer_getoverrun +SC_TRACE_EVENT(sys_timer_getoverrun, + TP_PROTO(timer_t timer_id), + TP_ARGS(timer_id), + TP_STRUCT__entry(__field(timer_t, timer_id)), + TP_fast_assign(tp_assign(timer_id, timer_id)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_timer_delete +SC_TRACE_EVENT(sys_timer_delete, + TP_PROTO(timer_t timer_id), + TP_ARGS(timer_id), + TP_STRUCT__entry(__field(timer_t, timer_id)), + TP_fast_assign(tp_assign(timer_id, timer_id)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_set_thread_area +SC_TRACE_EVENT(sys_set_thread_area, + TP_PROTO(unsigned long addr), + TP_ARGS(addr), + TP_STRUCT__entry(__field_hex(unsigned long, addr)), + TP_fast_assign(tp_assign(addr, addr)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_unshare +SC_TRACE_EVENT(sys_unshare, + TP_PROTO(unsigned long unshare_flags), + TP_ARGS(unshare_flags), + TP_STRUCT__entry(__field(unsigned long, unshare_flags)), + TP_fast_assign(tp_assign(unshare_flags, unshare_flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_eventfd +SC_TRACE_EVENT(sys_eventfd, + TP_PROTO(unsigned int count), + TP_ARGS(count), + TP_STRUCT__entry(__field(unsigned int, count)), + TP_fast_assign(tp_assign(count, count)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_epoll_create1 +SC_TRACE_EVENT(sys_epoll_create1, + TP_PROTO(int flags), + TP_ARGS(flags), + TP_STRUCT__entry(__field(int, flags)), + TP_fast_assign(tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_inotify_init1 +SC_TRACE_EVENT(sys_inotify_init1, + TP_PROTO(int flags), + TP_ARGS(flags), + TP_STRUCT__entry(__field(int, flags)), + TP_fast_assign(tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_syncfs +SC_TRACE_EVENT(sys_syncfs, + TP_PROTO(int fd), + TP_ARGS(fd), + TP_STRUCT__entry(__field(int, fd)), + TP_fast_assign(tp_assign(fd, fd)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_bdflush +SC_TRACE_EVENT(sys_bdflush, + TP_PROTO(int func, long data), + TP_ARGS(func, data), + TP_STRUCT__entry(__field(int, func) __field(long, data)), + TP_fast_assign(tp_assign(func, func) tp_assign(data, data)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_munmap +SC_TRACE_EVENT(sys_munmap, + TP_PROTO(unsigned long addr, size_t len), + TP_ARGS(addr, len), + TP_STRUCT__entry(__field_hex(unsigned long, addr) __field(size_t, len)), + TP_fast_assign(tp_assign(addr, addr) tp_assign(len, len)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_dup2 +SC_TRACE_EVENT(sys_dup2, + TP_PROTO(unsigned int oldfd, unsigned int newfd), + TP_ARGS(oldfd, newfd), + TP_STRUCT__entry(__field(unsigned int, oldfd) __field(unsigned int, newfd)), + TP_fast_assign(tp_assign(oldfd, oldfd) tp_assign(newfd, newfd)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_shutdown +SC_TRACE_EVENT(sys_shutdown, + TP_PROTO(int fd, int how), + TP_ARGS(fd, how), + TP_STRUCT__entry(__field(int, fd) __field(int, how)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(how, how)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_listen +SC_TRACE_EVENT(sys_listen, + TP_PROTO(int fd, int backlog), + TP_ARGS(fd, backlog), + TP_STRUCT__entry(__field(int, fd) __field(int, backlog)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(backlog, backlog)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_kill +SC_TRACE_EVENT(sys_kill, + TP_PROTO(pid_t pid, int sig), + TP_ARGS(pid, sig), + TP_STRUCT__entry(__field(pid_t, pid) __field(int, sig)), + TP_fast_assign(tp_assign(pid, pid) tp_assign(sig, sig)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_msgget +SC_TRACE_EVENT(sys_msgget, + TP_PROTO(key_t key, int msgflg), + TP_ARGS(key, msgflg), + TP_STRUCT__entry(__field(key_t, key) __field(int, msgflg)), + TP_fast_assign(tp_assign(key, key) tp_assign(msgflg, msgflg)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_flock +SC_TRACE_EVENT(sys_flock, + TP_PROTO(unsigned int fd, unsigned int cmd), + TP_ARGS(fd, cmd), + TP_STRUCT__entry(__field(unsigned int, fd) __field(unsigned int, cmd)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(cmd, cmd)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_ftruncate +SC_TRACE_EVENT(sys_ftruncate, + TP_PROTO(unsigned int fd, unsigned long length), + TP_ARGS(fd, length), + TP_STRUCT__entry(__field(unsigned int, fd) __field(unsigned long, length)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(length, length)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_fchmod +SC_TRACE_EVENT(sys_fchmod, + TP_PROTO(unsigned int fd, umode_t mode), + TP_ARGS(fd, mode), + TP_STRUCT__entry(__field(unsigned int, fd) __field(umode_t, mode)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(mode, mode)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_setpgid +SC_TRACE_EVENT(sys_setpgid, + TP_PROTO(pid_t pid, pid_t pgid), + TP_ARGS(pid, pgid), + TP_STRUCT__entry(__field(pid_t, pid) __field(pid_t, pgid)), + TP_fast_assign(tp_assign(pid, pid) tp_assign(pgid, pgid)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_setreuid +SC_TRACE_EVENT(sys_setreuid, + TP_PROTO(uid_t ruid, uid_t euid), + TP_ARGS(ruid, euid), + TP_STRUCT__entry(__field(uid_t, ruid) __field(uid_t, euid)), + TP_fast_assign(tp_assign(ruid, ruid) tp_assign(euid, euid)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_setregid +SC_TRACE_EVENT(sys_setregid, + TP_PROTO(gid_t rgid, gid_t egid), + TP_ARGS(rgid, egid), + TP_STRUCT__entry(__field(gid_t, rgid) __field(gid_t, egid)), + TP_fast_assign(tp_assign(rgid, rgid) tp_assign(egid, egid)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_getpriority +SC_TRACE_EVENT(sys_getpriority, + TP_PROTO(int which, int who), + TP_ARGS(which, who), + TP_STRUCT__entry(__field(int, which) __field(int, who)), + TP_fast_assign(tp_assign(which, which) tp_assign(who, who)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_mlock +SC_TRACE_EVENT(sys_mlock, + TP_PROTO(unsigned long start, size_t len), + TP_ARGS(start, len), + TP_STRUCT__entry(__field(unsigned long, start) __field(size_t, len)), + TP_fast_assign(tp_assign(start, start) tp_assign(len, len)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_munlock +SC_TRACE_EVENT(sys_munlock, + TP_PROTO(unsigned long start, size_t len), + TP_ARGS(start, len), + TP_STRUCT__entry(__field(unsigned long, start) __field(size_t, len)), + TP_fast_assign(tp_assign(start, start) tp_assign(len, len)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_tkill +SC_TRACE_EVENT(sys_tkill, + TP_PROTO(pid_t pid, int sig), + TP_ARGS(pid, sig), + TP_STRUCT__entry(__field(pid_t, pid) __field(int, sig)), + TP_fast_assign(tp_assign(pid, pid) tp_assign(sig, sig)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_inotify_rm_watch +SC_TRACE_EVENT(sys_inotify_rm_watch, + TP_PROTO(int fd, __s32 wd), + TP_ARGS(fd, wd), + TP_STRUCT__entry(__field(int, fd) __field(__s32, wd)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(wd, wd)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_ioprio_get +SC_TRACE_EVENT(sys_ioprio_get, + TP_PROTO(int which, int who), + TP_ARGS(which, who), + TP_STRUCT__entry(__field(int, which) __field(int, who)), + TP_fast_assign(tp_assign(which, which) tp_assign(who, who)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_timerfd_create +SC_TRACE_EVENT(sys_timerfd_create, + TP_PROTO(int clockid, int flags), + TP_ARGS(clockid, flags), + TP_STRUCT__entry(__field(int, clockid) __field(int, flags)), + TP_fast_assign(tp_assign(clockid, clockid) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_eventfd2 +SC_TRACE_EVENT(sys_eventfd2, + TP_PROTO(unsigned int count, int flags), + TP_ARGS(count, flags), + TP_STRUCT__entry(__field(unsigned int, count) __field(int, flags)), + TP_fast_assign(tp_assign(count, count) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_setns +SC_TRACE_EVENT(sys_setns, + TP_PROTO(int fd, int nstype), + TP_ARGS(fd, nstype), + TP_STRUCT__entry(__field(int, fd) __field(int, nstype)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(nstype, nstype)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_ioctl +SC_TRACE_EVENT(sys_ioctl, + TP_PROTO(unsigned int fd, unsigned int cmd, unsigned long arg), + TP_ARGS(fd, cmd, arg), + TP_STRUCT__entry(__field(unsigned int, fd) __field(unsigned int, cmd) __field(unsigned long, arg)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(cmd, cmd) tp_assign(arg, arg)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_fcntl +SC_TRACE_EVENT(sys_fcntl, + TP_PROTO(unsigned int fd, unsigned int cmd, unsigned long arg), + TP_ARGS(fd, cmd, arg), + TP_STRUCT__entry(__field(unsigned int, fd) __field(unsigned int, cmd) __field(unsigned long, arg)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(cmd, cmd) tp_assign(arg, arg)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_lseek +SC_TRACE_EVENT(sys_lseek, + TP_PROTO(unsigned int fd, off_t offset, unsigned int origin), + TP_ARGS(fd, offset, origin), + TP_STRUCT__entry(__field(unsigned int, fd) __field(off_t, offset) __field(unsigned int, origin)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(offset, offset) tp_assign(origin, origin)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_mprotect +SC_TRACE_EVENT(sys_mprotect, + TP_PROTO(unsigned long start, size_t len, unsigned long prot), + TP_ARGS(start, len, prot), + TP_STRUCT__entry(__field(unsigned long, start) __field(size_t, len) __field(unsigned long, prot)), + TP_fast_assign(tp_assign(start, start) tp_assign(len, len) tp_assign(prot, prot)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_msync +SC_TRACE_EVENT(sys_msync, + TP_PROTO(unsigned long start, size_t len, int flags), + TP_ARGS(start, len, flags), + TP_STRUCT__entry(__field(unsigned long, start) __field(size_t, len) __field(int, flags)), + TP_fast_assign(tp_assign(start, start) tp_assign(len, len) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_madvise +SC_TRACE_EVENT(sys_madvise, + TP_PROTO(unsigned long start, size_t len_in, int behavior), + TP_ARGS(start, len_in, behavior), + TP_STRUCT__entry(__field(unsigned long, start) __field(size_t, len_in) __field(int, behavior)), + TP_fast_assign(tp_assign(start, start) tp_assign(len_in, len_in) tp_assign(behavior, behavior)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_shmget +SC_TRACE_EVENT(sys_shmget, + TP_PROTO(key_t key, size_t size, int shmflg), + TP_ARGS(key, size, shmflg), + TP_STRUCT__entry(__field(key_t, key) __field(size_t, size) __field(int, shmflg)), + TP_fast_assign(tp_assign(key, key) tp_assign(size, size) tp_assign(shmflg, shmflg)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_socket +SC_TRACE_EVENT(sys_socket, + TP_PROTO(int family, int type, int protocol), + TP_ARGS(family, type, protocol), + TP_STRUCT__entry(__field(int, family) __field(int, type) __field(int, protocol)), + TP_fast_assign(tp_assign(family, family) tp_assign(type, type) tp_assign(protocol, protocol)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_semget +SC_TRACE_EVENT(sys_semget, + TP_PROTO(key_t key, int nsems, int semflg), + TP_ARGS(key, nsems, semflg), + TP_STRUCT__entry(__field(key_t, key) __field(int, nsems) __field(int, semflg)), + TP_fast_assign(tp_assign(key, key) tp_assign(nsems, nsems) tp_assign(semflg, semflg)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_fchown +SC_TRACE_EVENT(sys_fchown, + TP_PROTO(unsigned int fd, uid_t user, gid_t group), + TP_ARGS(fd, user, group), + TP_STRUCT__entry(__field(unsigned int, fd) __field(uid_t, user) __field(gid_t, group)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(user, user) tp_assign(group, group)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_setresuid +SC_TRACE_EVENT(sys_setresuid, + TP_PROTO(uid_t ruid, uid_t euid, uid_t suid), + TP_ARGS(ruid, euid, suid), + TP_STRUCT__entry(__field(uid_t, ruid) __field(uid_t, euid) __field(uid_t, suid)), + TP_fast_assign(tp_assign(ruid, ruid) tp_assign(euid, euid) tp_assign(suid, suid)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_setresgid +SC_TRACE_EVENT(sys_setresgid, + TP_PROTO(gid_t rgid, gid_t egid, gid_t sgid), + TP_ARGS(rgid, egid, sgid), + TP_STRUCT__entry(__field(gid_t, rgid) __field(gid_t, egid) __field(gid_t, sgid)), + TP_fast_assign(tp_assign(rgid, rgid) tp_assign(egid, egid) tp_assign(sgid, sgid)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_sysfs +SC_TRACE_EVENT(sys_sysfs, + TP_PROTO(int option, unsigned long arg1, unsigned long arg2), + TP_ARGS(option, arg1, arg2), + TP_STRUCT__entry(__field(int, option) __field(unsigned long, arg1) __field(unsigned long, arg2)), + TP_fast_assign(tp_assign(option, option) tp_assign(arg1, arg1) tp_assign(arg2, arg2)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_setpriority +SC_TRACE_EVENT(sys_setpriority, + TP_PROTO(int which, int who, int niceval), + TP_ARGS(which, who, niceval), + TP_STRUCT__entry(__field(int, which) __field(int, who) __field(int, niceval)), + TP_fast_assign(tp_assign(which, which) tp_assign(who, who) tp_assign(niceval, niceval)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_cacheflush +SC_TRACE_EVENT(sys_cacheflush, + TP_PROTO(unsigned long addr, unsigned long bytes, unsigned int cache), + TP_ARGS(addr, bytes, cache), + TP_STRUCT__entry(__field_hex(unsigned long, addr) __field(unsigned long, bytes) __field(unsigned int, cache)), + TP_fast_assign(tp_assign(addr, addr) tp_assign(bytes, bytes) tp_assign(cache, cache)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_tgkill +SC_TRACE_EVENT(sys_tgkill, + TP_PROTO(pid_t tgid, pid_t pid, int sig), + TP_ARGS(tgid, pid, sig), + TP_STRUCT__entry(__field(pid_t, tgid) __field(pid_t, pid) __field(int, sig)), + TP_fast_assign(tp_assign(tgid, tgid) tp_assign(pid, pid) tp_assign(sig, sig)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_ioprio_set +SC_TRACE_EVENT(sys_ioprio_set, + TP_PROTO(int which, int who, int ioprio), + TP_ARGS(which, who, ioprio), + TP_STRUCT__entry(__field(int, which) __field(int, who) __field(int, ioprio)), + TP_fast_assign(tp_assign(which, which) tp_assign(who, who) tp_assign(ioprio, ioprio)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_dup3 +SC_TRACE_EVENT(sys_dup3, + TP_PROTO(unsigned int oldfd, unsigned int newfd, int flags), + TP_ARGS(oldfd, newfd, flags), + TP_STRUCT__entry(__field(unsigned int, oldfd) __field(unsigned int, newfd) __field(int, flags)), + TP_fast_assign(tp_assign(oldfd, oldfd) tp_assign(newfd, newfd) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_32_ftruncate64 +SC_TRACE_EVENT(sys_32_ftruncate64, + TP_PROTO(unsigned long fd, unsigned long __dummy, unsigned long a2, unsigned long a3), + TP_ARGS(fd, __dummy, a2, a3), + TP_STRUCT__entry(__field(unsigned long, fd) __field(unsigned long, __dummy) __field(unsigned long, a2) __field(unsigned long, a3)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(__dummy, __dummy) tp_assign(a2, a2) tp_assign(a3, a3)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_ptrace +SC_TRACE_EVENT(sys_ptrace, + TP_PROTO(long request, long pid, unsigned long addr, unsigned long data), + TP_ARGS(request, pid, addr, data), + TP_STRUCT__entry(__field(long, request) __field(long, pid) __field_hex(unsigned long, addr) __field(unsigned long, data)), + TP_fast_assign(tp_assign(request, request) tp_assign(pid, pid) tp_assign(addr, addr) tp_assign(data, data)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_n32_semctl +SC_TRACE_EVENT(sys_n32_semctl, + TP_PROTO(int semid, int semnum, int cmd, u32 arg), + TP_ARGS(semid, semnum, cmd, arg), + TP_STRUCT__entry(__field(int, semid) __field(int, semnum) __field(int, cmd) __field(u32, arg)), + TP_fast_assign(tp_assign(semid, semid) tp_assign(semnum, semnum) tp_assign(cmd, cmd) tp_assign(arg, arg)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_n32_msgsnd +SC_TRACE_EVENT(sys_n32_msgsnd, + TP_PROTO(int msqid, u32 msgp, unsigned int msgsz, int msgflg), + TP_ARGS(msqid, msgp, msgsz, msgflg), + TP_STRUCT__entry(__field(int, msqid) __field(u32, msgp) __field(unsigned int, msgsz) __field(int, msgflg)), + TP_fast_assign(tp_assign(msqid, msqid) tp_assign(msgp, msgp) tp_assign(msgsz, msgsz) tp_assign(msgflg, msgflg)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_tee +SC_TRACE_EVENT(sys_tee, + TP_PROTO(int fdin, int fdout, size_t len, unsigned int flags), + TP_ARGS(fdin, fdout, len, flags), + TP_STRUCT__entry(__field(int, fdin) __field(int, fdout) __field(size_t, len) __field(unsigned int, flags)), + TP_fast_assign(tp_assign(fdin, fdin) tp_assign(fdout, fdout) tp_assign(len, len) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_mremap +SC_TRACE_EVENT(sys_mremap, + TP_PROTO(unsigned long addr, unsigned long old_len, unsigned long new_len, unsigned long flags, unsigned long new_addr), + TP_ARGS(addr, old_len, new_len, flags, new_addr), + TP_STRUCT__entry(__field_hex(unsigned long, addr) __field(unsigned long, old_len) __field(unsigned long, new_len) __field(unsigned long, flags) __field_hex(unsigned long, new_addr)), + TP_fast_assign(tp_assign(addr, addr) tp_assign(old_len, old_len) tp_assign(new_len, new_len) tp_assign(flags, flags) tp_assign(new_addr, new_addr)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_n32_msgrcv +SC_TRACE_EVENT(sys_n32_msgrcv, + TP_PROTO(int msqid, u32 msgp, size_t msgsz, int msgtyp, int msgflg), + TP_ARGS(msqid, msgp, msgsz, msgtyp, msgflg), + TP_STRUCT__entry(__field(int, msqid) __field(u32, msgp) __field(size_t, msgsz) __field(int, msgtyp) __field(int, msgflg)), + TP_fast_assign(tp_assign(msqid, msqid) tp_assign(msgp, msgp) tp_assign(msgsz, msgsz) tp_assign(msgtyp, msgtyp) tp_assign(msgflg, msgflg)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_prctl +SC_TRACE_EVENT(sys_prctl, + TP_PROTO(int option, unsigned long arg2, unsigned long arg3, unsigned long arg4, unsigned long arg5), + TP_ARGS(option, arg2, arg3, arg4, arg5), + TP_STRUCT__entry(__field(int, option) __field(unsigned long, arg2) __field(unsigned long, arg3) __field(unsigned long, arg4) __field(unsigned long, arg5)), + TP_fast_assign(tp_assign(option, option) tp_assign(arg2, arg2) tp_assign(arg3, arg3) tp_assign(arg4, arg4) tp_assign(arg5, arg5)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_remap_file_pages +SC_TRACE_EVENT(sys_remap_file_pages, + TP_PROTO(unsigned long start, unsigned long size, unsigned long prot, unsigned long pgoff, unsigned long flags), + TP_ARGS(start, size, prot, pgoff, flags), + TP_STRUCT__entry(__field(unsigned long, start) __field(unsigned long, size) __field(unsigned long, prot) __field(unsigned long, pgoff) __field(unsigned long, flags)), + TP_fast_assign(tp_assign(start, start) tp_assign(size, size) tp_assign(prot, prot) tp_assign(pgoff, pgoff) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_32_ipc +SC_TRACE_EVENT(sys_32_ipc, + TP_PROTO(u32 call, long first, long second, long third, unsigned long ptr, unsigned long fifth), + TP_ARGS(call, first, second, third, ptr, fifth), + TP_STRUCT__entry(__field(u32, call) __field(long, first) __field(long, second) __field(long, third) __field_hex(unsigned long, ptr) __field(unsigned long, fifth)), + TP_fast_assign(tp_assign(call, call) tp_assign(first, first) tp_assign(second, second) tp_assign(third, third) tp_assign(ptr, ptr) tp_assign(fifth, fifth)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_mips_mmap2 +SC_TRACE_EVENT(sys_mips_mmap2, + TP_PROTO(unsigned long addr, unsigned long len, unsigned long prot, unsigned long flags, unsigned long fd, unsigned long pgoff), + TP_ARGS(addr, len, prot, flags, fd, pgoff), + TP_STRUCT__entry(__field_hex(unsigned long, addr) __field(unsigned long, len) __field(unsigned long, prot) __field(unsigned long, flags) __field(unsigned long, fd) __field(unsigned long, pgoff)), + TP_fast_assign(tp_assign(addr, addr) tp_assign(len, len) tp_assign(prot, prot) tp_assign(flags, flags) tp_assign(fd, fd) tp_assign(pgoff, pgoff)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_mips_mmap +SC_TRACE_EVENT(sys_mips_mmap, + TP_PROTO(unsigned long addr, unsigned long len, unsigned long prot, unsigned long flags, unsigned long fd, off_t offset), + TP_ARGS(addr, len, prot, flags, fd, offset), + TP_STRUCT__entry(__field_hex(unsigned long, addr) __field(unsigned long, len) __field(unsigned long, prot) __field(unsigned long, flags) __field(unsigned long, fd) __field(off_t, offset)), + TP_fast_assign(tp_assign(addr, addr) tp_assign(len, len) tp_assign(prot, prot) tp_assign(flags, flags) tp_assign(fd, fd) tp_assign(offset, offset)), + TP_printk() +) +#endif + +#endif /* _TRACE_SYSCALLS_INTEGERS_H */ + +/* This part must be outside protection */ +#include "../../../probes/define_trace.h" + +#else /* CREATE_SYSCALL_TABLE */ + +#include "mips-64-syscalls-3.5.0_integers_override.h" +#include "syscalls_integers_override.h" + +#ifndef OVERRIDE_TABLE_64_sys_sgetmask +TRACE_SYSCALL_TABLE(syscalls_noargs, sys_sgetmask, 4068, 0) +#endif +#ifndef OVERRIDE_TABLE_64_sys_sched_yield +TRACE_SYSCALL_TABLE(syscalls_noargs, sys_sched_yield, 6023, 0) +#endif +#ifndef OVERRIDE_TABLE_64_sys_pause +TRACE_SYSCALL_TABLE(syscalls_noargs, sys_pause, 6033, 0) +#endif +#ifndef OVERRIDE_TABLE_64_sys_getpid +TRACE_SYSCALL_TABLE(syscalls_noargs, sys_getpid, 6038, 0) +#endif +#ifndef OVERRIDE_TABLE_64_sys_getuid +TRACE_SYSCALL_TABLE(syscalls_noargs, sys_getuid, 6100, 0) +#endif +#ifndef OVERRIDE_TABLE_64_sys_getgid +TRACE_SYSCALL_TABLE(syscalls_noargs, sys_getgid, 6102, 0) +#endif +#ifndef OVERRIDE_TABLE_64_sys_geteuid +TRACE_SYSCALL_TABLE(syscalls_noargs, sys_geteuid, 6105, 0) +#endif +#ifndef OVERRIDE_TABLE_64_sys_getegid +TRACE_SYSCALL_TABLE(syscalls_noargs, sys_getegid, 6106, 0) +#endif +#ifndef OVERRIDE_TABLE_64_sys_getppid +TRACE_SYSCALL_TABLE(syscalls_noargs, sys_getppid, 6108, 0) +#endif +#ifndef OVERRIDE_TABLE_64_sys_getpgrp +TRACE_SYSCALL_TABLE(syscalls_noargs, sys_getpgrp, 6109, 0) +#endif +#ifndef OVERRIDE_TABLE_64_sys_setsid +TRACE_SYSCALL_TABLE(syscalls_noargs, sys_setsid, 6110, 0) +#endif +#ifndef OVERRIDE_TABLE_64_sys_munlockall +TRACE_SYSCALL_TABLE(syscalls_noargs, sys_munlockall, 6149, 0) +#endif +#ifndef OVERRIDE_TABLE_64_sys_vhangup +TRACE_SYSCALL_TABLE(syscalls_noargs, sys_vhangup, 6150, 0) +#endif +#ifndef OVERRIDE_TABLE_64_sys_sync +TRACE_SYSCALL_TABLE(syscalls_noargs, sys_sync, 6157, 0) +#endif +#ifndef OVERRIDE_TABLE_64_sys_gettid +TRACE_SYSCALL_TABLE(syscalls_noargs, sys_gettid, 6178, 0) +#endif +#ifndef OVERRIDE_TABLE_64_sys_restart_syscall +TRACE_SYSCALL_TABLE(syscalls_noargs, sys_restart_syscall, 6214, 0) +#endif +#ifndef OVERRIDE_TABLE_64_sys_inotify_init +TRACE_SYSCALL_TABLE(syscalls_noargs, sys_inotify_init, 6247, 0) +#endif +#ifndef OVERRIDE_TABLE_64_sys_nice +TRACE_SYSCALL_TABLE(sys_nice, sys_nice, 4034, 1) +#endif +#ifndef OVERRIDE_TABLE_64_sys_ssetmask +TRACE_SYSCALL_TABLE(sys_ssetmask, sys_ssetmask, 4069, 1) +#endif +#ifndef OVERRIDE_TABLE_64_sys_32_ipc +TRACE_SYSCALL_TABLE(sys_32_ipc, sys_32_ipc, 4117, 6) +#endif +#ifndef OVERRIDE_TABLE_64_sys_bdflush +TRACE_SYSCALL_TABLE(sys_bdflush, sys_bdflush, 4134, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_mips_mmap2 +TRACE_SYSCALL_TABLE(sys_mips_mmap2, sys_mips_mmap2, 4210, 6) +#endif +#ifndef OVERRIDE_TABLE_64_sys_32_ftruncate64 +TRACE_SYSCALL_TABLE(sys_32_ftruncate64, sys_32_ftruncate64, 4212, 4) +#endif +#ifndef OVERRIDE_TABLE_64_sys_ioctl +TRACE_SYSCALL_TABLE(sys_ioctl, sys_ioctl, 5015, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_fcntl +TRACE_SYSCALL_TABLE(sys_fcntl, sys_fcntl, 5070, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_ptrace +TRACE_SYSCALL_TABLE(sys_ptrace, sys_ptrace, 5099, 4) +#endif +#ifndef OVERRIDE_TABLE_64_sys_personality +TRACE_SYSCALL_TABLE(sys_personality, sys_personality, 5132, 1) +#endif +#ifndef OVERRIDE_TABLE_64_sys_close +TRACE_SYSCALL_TABLE(sys_close, sys_close, 6003, 1) +#endif +#ifndef OVERRIDE_TABLE_64_sys_lseek +TRACE_SYSCALL_TABLE(sys_lseek, sys_lseek, 6008, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_mips_mmap +TRACE_SYSCALL_TABLE(sys_mips_mmap, sys_mips_mmap, 6009, 6) +#endif +#ifndef OVERRIDE_TABLE_64_sys_mprotect +TRACE_SYSCALL_TABLE(sys_mprotect, sys_mprotect, 6010, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_munmap +TRACE_SYSCALL_TABLE(sys_munmap, sys_munmap, 6011, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_brk +TRACE_SYSCALL_TABLE(sys_brk, sys_brk, 6012, 1) +#endif +#ifndef OVERRIDE_TABLE_64_sys_mremap +TRACE_SYSCALL_TABLE(sys_mremap, sys_mremap, 6024, 5) +#endif +#ifndef OVERRIDE_TABLE_64_sys_msync +TRACE_SYSCALL_TABLE(sys_msync, sys_msync, 6025, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_madvise +TRACE_SYSCALL_TABLE(sys_madvise, sys_madvise, 6027, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_shmget +TRACE_SYSCALL_TABLE(sys_shmget, sys_shmget, 6028, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_dup +TRACE_SYSCALL_TABLE(sys_dup, sys_dup, 6031, 1) +#endif +#ifndef OVERRIDE_TABLE_64_sys_dup2 +TRACE_SYSCALL_TABLE(sys_dup2, sys_dup2, 6032, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_alarm +TRACE_SYSCALL_TABLE(sys_alarm, sys_alarm, 6037, 1) +#endif +#ifndef OVERRIDE_TABLE_64_sys_socket +TRACE_SYSCALL_TABLE(sys_socket, sys_socket, 6040, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_shutdown +TRACE_SYSCALL_TABLE(sys_shutdown, sys_shutdown, 6047, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_listen +TRACE_SYSCALL_TABLE(sys_listen, sys_listen, 6049, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_exit +TRACE_SYSCALL_TABLE(sys_exit, sys_exit, 6058, 1) +#endif +#ifndef OVERRIDE_TABLE_64_sys_kill +TRACE_SYSCALL_TABLE(sys_kill, sys_kill, 6060, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_semget +TRACE_SYSCALL_TABLE(sys_semget, sys_semget, 6062, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_n32_semctl +TRACE_SYSCALL_TABLE(sys_n32_semctl, sys_n32_semctl, 6064, 4) +#endif +#ifndef OVERRIDE_TABLE_64_sys_msgget +TRACE_SYSCALL_TABLE(sys_msgget, sys_msgget, 6066, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_n32_msgsnd +TRACE_SYSCALL_TABLE(sys_n32_msgsnd, sys_n32_msgsnd, 6067, 4) +#endif +#ifndef OVERRIDE_TABLE_64_sys_n32_msgrcv +TRACE_SYSCALL_TABLE(sys_n32_msgrcv, sys_n32_msgrcv, 6068, 5) +#endif +#ifndef OVERRIDE_TABLE_64_sys_flock +TRACE_SYSCALL_TABLE(sys_flock, sys_flock, 6071, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_fsync +TRACE_SYSCALL_TABLE(sys_fsync, sys_fsync, 6072, 1) +#endif +#ifndef OVERRIDE_TABLE_64_sys_fdatasync +TRACE_SYSCALL_TABLE(sys_fdatasync, sys_fdatasync, 6073, 1) +#endif +#ifndef OVERRIDE_TABLE_64_sys_ftruncate +TRACE_SYSCALL_TABLE(sys_ftruncate, sys_ftruncate, 6075, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_fchdir +TRACE_SYSCALL_TABLE(sys_fchdir, sys_fchdir, 6079, 1) +#endif +#ifndef OVERRIDE_TABLE_64_sys_fchmod +TRACE_SYSCALL_TABLE(sys_fchmod, sys_fchmod, 6089, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_fchown +TRACE_SYSCALL_TABLE(sys_fchown, sys_fchown, 6091, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_umask +TRACE_SYSCALL_TABLE(sys_umask, sys_umask, 6093, 1) +#endif +#ifndef OVERRIDE_TABLE_64_sys_setuid +TRACE_SYSCALL_TABLE(sys_setuid, sys_setuid, 6103, 1) +#endif +#ifndef OVERRIDE_TABLE_64_sys_setgid +TRACE_SYSCALL_TABLE(sys_setgid, sys_setgid, 6104, 1) +#endif +#ifndef OVERRIDE_TABLE_64_sys_setpgid +TRACE_SYSCALL_TABLE(sys_setpgid, sys_setpgid, 6107, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_setreuid +TRACE_SYSCALL_TABLE(sys_setreuid, sys_setreuid, 6111, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_setregid +TRACE_SYSCALL_TABLE(sys_setregid, sys_setregid, 6112, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_setresuid +TRACE_SYSCALL_TABLE(sys_setresuid, sys_setresuid, 6115, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_setresgid +TRACE_SYSCALL_TABLE(sys_setresgid, sys_setresgid, 6117, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_getpgid +TRACE_SYSCALL_TABLE(sys_getpgid, sys_getpgid, 6119, 1) +#endif +#ifndef OVERRIDE_TABLE_64_sys_setfsuid +TRACE_SYSCALL_TABLE(sys_setfsuid, sys_setfsuid, 6120, 1) +#endif +#ifndef OVERRIDE_TABLE_64_sys_setfsgid +TRACE_SYSCALL_TABLE(sys_setfsgid, sys_setfsgid, 6121, 1) +#endif +#ifndef OVERRIDE_TABLE_64_sys_getsid +TRACE_SYSCALL_TABLE(sys_getsid, sys_getsid, 6122, 1) +#endif +#ifndef OVERRIDE_TABLE_64_sys_32_personality +TRACE_SYSCALL_TABLE(sys_32_personality, sys_32_personality, 6132, 1) +#endif +#ifndef OVERRIDE_TABLE_64_sys_sysfs +TRACE_SYSCALL_TABLE(sys_sysfs, sys_sysfs, 6136, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_getpriority +TRACE_SYSCALL_TABLE(sys_getpriority, sys_getpriority, 6137, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_setpriority +TRACE_SYSCALL_TABLE(sys_setpriority, sys_setpriority, 6138, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_sched_getscheduler +TRACE_SYSCALL_TABLE(sys_sched_getscheduler, sys_sched_getscheduler, 6142, 1) +#endif +#ifndef OVERRIDE_TABLE_64_sys_sched_get_priority_max +TRACE_SYSCALL_TABLE(sys_sched_get_priority_max, sys_sched_get_priority_max, 6143, 1) +#endif +#ifndef OVERRIDE_TABLE_64_sys_sched_get_priority_min +TRACE_SYSCALL_TABLE(sys_sched_get_priority_min, sys_sched_get_priority_min, 6144, 1) +#endif +#ifndef OVERRIDE_TABLE_64_sys_mlock +TRACE_SYSCALL_TABLE(sys_mlock, sys_mlock, 6146, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_munlock +TRACE_SYSCALL_TABLE(sys_munlock, sys_munlock, 6147, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_mlockall +TRACE_SYSCALL_TABLE(sys_mlockall, sys_mlockall, 6148, 1) +#endif +#ifndef OVERRIDE_TABLE_64_sys_prctl +TRACE_SYSCALL_TABLE(sys_prctl, sys_prctl, 6153, 5) +#endif +#ifndef OVERRIDE_TABLE_64_sys_tkill +TRACE_SYSCALL_TABLE(sys_tkill, sys_tkill, 6192, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_cacheflush +TRACE_SYSCALL_TABLE(sys_cacheflush, sys_cacheflush, 6197, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_io_destroy +TRACE_SYSCALL_TABLE(sys_io_destroy, sys_io_destroy, 6201, 1) +#endif +#ifndef OVERRIDE_TABLE_64_sys_exit_group +TRACE_SYSCALL_TABLE(sys_exit_group, sys_exit_group, 6205, 1) +#endif +#ifndef OVERRIDE_TABLE_64_sys_epoll_create +TRACE_SYSCALL_TABLE(sys_epoll_create, sys_epoll_create, 6207, 1) +#endif +#ifndef OVERRIDE_TABLE_64_sys_remap_file_pages +TRACE_SYSCALL_TABLE(sys_remap_file_pages, sys_remap_file_pages, 6210, 5) +#endif +#ifndef OVERRIDE_TABLE_64_sys_timer_getoverrun +TRACE_SYSCALL_TABLE(sys_timer_getoverrun, sys_timer_getoverrun, 6223, 1) +#endif +#ifndef OVERRIDE_TABLE_64_sys_timer_delete +TRACE_SYSCALL_TABLE(sys_timer_delete, sys_timer_delete, 6224, 1) +#endif +#ifndef OVERRIDE_TABLE_64_sys_tgkill +TRACE_SYSCALL_TABLE(sys_tgkill, sys_tgkill, 6229, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_set_thread_area +TRACE_SYSCALL_TABLE(sys_set_thread_area, sys_set_thread_area, 6246, 1) +#endif +#ifndef OVERRIDE_TABLE_64_sys_inotify_rm_watch +TRACE_SYSCALL_TABLE(sys_inotify_rm_watch, sys_inotify_rm_watch, 6249, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_unshare +TRACE_SYSCALL_TABLE(sys_unshare, sys_unshare, 6266, 1) +#endif +#ifndef OVERRIDE_TABLE_64_sys_tee +TRACE_SYSCALL_TABLE(sys_tee, sys_tee, 6269, 4) +#endif +#ifndef OVERRIDE_TABLE_64_sys_ioprio_set +TRACE_SYSCALL_TABLE(sys_ioprio_set, sys_ioprio_set, 6277, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_ioprio_get +TRACE_SYSCALL_TABLE(sys_ioprio_get, sys_ioprio_get, 6278, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_eventfd +TRACE_SYSCALL_TABLE(sys_eventfd, sys_eventfd, 6282, 1) +#endif +#ifndef OVERRIDE_TABLE_64_sys_timerfd_create +TRACE_SYSCALL_TABLE(sys_timerfd_create, sys_timerfd_create, 6284, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_eventfd2 +TRACE_SYSCALL_TABLE(sys_eventfd2, sys_eventfd2, 6288, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_epoll_create1 +TRACE_SYSCALL_TABLE(sys_epoll_create1, sys_epoll_create1, 6289, 1) +#endif +#ifndef OVERRIDE_TABLE_64_sys_dup3 +TRACE_SYSCALL_TABLE(sys_dup3, sys_dup3, 6290, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_inotify_init1 +TRACE_SYSCALL_TABLE(sys_inotify_init1, sys_inotify_init1, 6292, 1) +#endif +#ifndef OVERRIDE_TABLE_64_sys_syncfs +TRACE_SYSCALL_TABLE(sys_syncfs, sys_syncfs, 6306, 1) +#endif +#ifndef OVERRIDE_TABLE_64_sys_setns +TRACE_SYSCALL_TABLE(sys_setns, sys_setns, 6308, 2) +#endif + +#endif /* CREATE_SYSCALL_TABLE */ --- linux-3.11.0.orig/ubuntu/lttng-modules/instrumentation/syscalls/headers/mips-32-syscalls-3.5.0_integers.h +++ linux-3.11.0/ubuntu/lttng-modules/instrumentation/syscalls/headers/mips-32-syscalls-3.5.0_integers.h @@ -0,0 +1,677 @@ +/* THIS FILE IS AUTO-GENERATED. DO NOT EDIT */ +#ifndef CREATE_SYSCALL_TABLE + +#if !defined(_TRACE_SYSCALLS_INTEGERS_H) || defined(TRACE_HEADER_MULTI_READ) +#define _TRACE_SYSCALLS_INTEGERS_H + +#include +#include +#include "mips-32-syscalls-3.5.0_integers_override.h" +#include "syscalls_integers_override.h" + +SC_DECLARE_EVENT_CLASS_NOARGS(syscalls_noargs, + TP_STRUCT__entry(), + TP_fast_assign(), + TP_printk() +) +#ifndef OVERRIDE_32_sys_getpid +SC_DEFINE_EVENT_NOARGS(syscalls_noargs, sys_getpid) +#endif +#ifndef OVERRIDE_32_sys_getuid +SC_DEFINE_EVENT_NOARGS(syscalls_noargs, sys_getuid) +#endif +#ifndef OVERRIDE_32_sys_pause +SC_DEFINE_EVENT_NOARGS(syscalls_noargs, sys_pause) +#endif +#ifndef OVERRIDE_32_sys_sync +SC_DEFINE_EVENT_NOARGS(syscalls_noargs, sys_sync) +#endif +#ifndef OVERRIDE_32_sys_getgid +SC_DEFINE_EVENT_NOARGS(syscalls_noargs, sys_getgid) +#endif +#ifndef OVERRIDE_32_sys_geteuid +SC_DEFINE_EVENT_NOARGS(syscalls_noargs, sys_geteuid) +#endif +#ifndef OVERRIDE_32_sys_getegid +SC_DEFINE_EVENT_NOARGS(syscalls_noargs, sys_getegid) +#endif +#ifndef OVERRIDE_32_sys_getppid +SC_DEFINE_EVENT_NOARGS(syscalls_noargs, sys_getppid) +#endif +#ifndef OVERRIDE_32_sys_getpgrp +SC_DEFINE_EVENT_NOARGS(syscalls_noargs, sys_getpgrp) +#endif +#ifndef OVERRIDE_32_sys_setsid +SC_DEFINE_EVENT_NOARGS(syscalls_noargs, sys_setsid) +#endif +#ifndef OVERRIDE_32_sys_sgetmask +SC_DEFINE_EVENT_NOARGS(syscalls_noargs, sys_sgetmask) +#endif +#ifndef OVERRIDE_32_sys_vhangup +SC_DEFINE_EVENT_NOARGS(syscalls_noargs, sys_vhangup) +#endif +#ifndef OVERRIDE_32_sys_munlockall +SC_DEFINE_EVENT_NOARGS(syscalls_noargs, sys_munlockall) +#endif +#ifndef OVERRIDE_32_sys_sched_yield +SC_DEFINE_EVENT_NOARGS(syscalls_noargs, sys_sched_yield) +#endif +#ifndef OVERRIDE_32_sys_exit +SC_TRACE_EVENT(sys_exit, + TP_PROTO(int error_code), + TP_ARGS(error_code), + TP_STRUCT__entry(__field(int, error_code)), + TP_fast_assign(tp_assign(error_code, error_code)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_close +SC_TRACE_EVENT(sys_close, + TP_PROTO(unsigned int fd), + TP_ARGS(fd), + TP_STRUCT__entry(__field(unsigned int, fd)), + TP_fast_assign(tp_assign(fd, fd)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_setuid +SC_TRACE_EVENT(sys_setuid, + TP_PROTO(uid_t uid), + TP_ARGS(uid), + TP_STRUCT__entry(__field(uid_t, uid)), + TP_fast_assign(tp_assign(uid, uid)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_alarm +SC_TRACE_EVENT(sys_alarm, + TP_PROTO(unsigned int seconds), + TP_ARGS(seconds), + TP_STRUCT__entry(__field(unsigned int, seconds)), + TP_fast_assign(tp_assign(seconds, seconds)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_nice +SC_TRACE_EVENT(sys_nice, + TP_PROTO(int increment), + TP_ARGS(increment), + TP_STRUCT__entry(__field(int, increment)), + TP_fast_assign(tp_assign(increment, increment)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_dup +SC_TRACE_EVENT(sys_dup, + TP_PROTO(unsigned int fildes), + TP_ARGS(fildes), + TP_STRUCT__entry(__field(unsigned int, fildes)), + TP_fast_assign(tp_assign(fildes, fildes)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_brk +SC_TRACE_EVENT(sys_brk, + TP_PROTO(unsigned long brk), + TP_ARGS(brk), + TP_STRUCT__entry(__field(unsigned long, brk)), + TP_fast_assign(tp_assign(brk, brk)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_setgid +SC_TRACE_EVENT(sys_setgid, + TP_PROTO(gid_t gid), + TP_ARGS(gid), + TP_STRUCT__entry(__field(gid_t, gid)), + TP_fast_assign(tp_assign(gid, gid)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_umask +SC_TRACE_EVENT(sys_umask, + TP_PROTO(int mask), + TP_ARGS(mask), + TP_STRUCT__entry(__field(int, mask)), + TP_fast_assign(tp_assign(mask, mask)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_ssetmask +SC_TRACE_EVENT(sys_ssetmask, + TP_PROTO(int newmask), + TP_ARGS(newmask), + TP_STRUCT__entry(__field(int, newmask)), + TP_fast_assign(tp_assign(newmask, newmask)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_fsync +SC_TRACE_EVENT(sys_fsync, + TP_PROTO(unsigned int fd), + TP_ARGS(fd), + TP_STRUCT__entry(__field(unsigned int, fd)), + TP_fast_assign(tp_assign(fd, fd)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_getpgid +SC_TRACE_EVENT(sys_getpgid, + TP_PROTO(pid_t pid), + TP_ARGS(pid), + TP_STRUCT__entry(__field(pid_t, pid)), + TP_fast_assign(tp_assign(pid, pid)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_fchdir +SC_TRACE_EVENT(sys_fchdir, + TP_PROTO(unsigned int fd), + TP_ARGS(fd), + TP_STRUCT__entry(__field(unsigned int, fd)), + TP_fast_assign(tp_assign(fd, fd)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_personality +SC_TRACE_EVENT(sys_personality, + TP_PROTO(unsigned int personality), + TP_ARGS(personality), + TP_STRUCT__entry(__field(unsigned int, personality)), + TP_fast_assign(tp_assign(personality, personality)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_setfsuid +SC_TRACE_EVENT(sys_setfsuid, + TP_PROTO(uid_t uid), + TP_ARGS(uid), + TP_STRUCT__entry(__field(uid_t, uid)), + TP_fast_assign(tp_assign(uid, uid)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_setfsgid +SC_TRACE_EVENT(sys_setfsgid, + TP_PROTO(gid_t gid), + TP_ARGS(gid), + TP_STRUCT__entry(__field(gid_t, gid)), + TP_fast_assign(tp_assign(gid, gid)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_getsid +SC_TRACE_EVENT(sys_getsid, + TP_PROTO(pid_t pid), + TP_ARGS(pid), + TP_STRUCT__entry(__field(pid_t, pid)), + TP_fast_assign(tp_assign(pid, pid)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_fdatasync +SC_TRACE_EVENT(sys_fdatasync, + TP_PROTO(unsigned int fd), + TP_ARGS(fd), + TP_STRUCT__entry(__field(unsigned int, fd)), + TP_fast_assign(tp_assign(fd, fd)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_mlockall +SC_TRACE_EVENT(sys_mlockall, + TP_PROTO(int flags), + TP_ARGS(flags), + TP_STRUCT__entry(__field(int, flags)), + TP_fast_assign(tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_sched_getscheduler +SC_TRACE_EVENT(sys_sched_getscheduler, + TP_PROTO(pid_t pid), + TP_ARGS(pid), + TP_STRUCT__entry(__field(pid_t, pid)), + TP_fast_assign(tp_assign(pid, pid)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_sched_get_priority_max +SC_TRACE_EVENT(sys_sched_get_priority_max, + TP_PROTO(int policy), + TP_ARGS(policy), + TP_STRUCT__entry(__field(int, policy)), + TP_fast_assign(tp_assign(policy, policy)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_sched_get_priority_min +SC_TRACE_EVENT(sys_sched_get_priority_min, + TP_PROTO(int policy), + TP_ARGS(policy), + TP_STRUCT__entry(__field(int, policy)), + TP_fast_assign(tp_assign(policy, policy)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_kill +SC_TRACE_EVENT(sys_kill, + TP_PROTO(pid_t pid, int sig), + TP_ARGS(pid, sig), + TP_STRUCT__entry(__field(pid_t, pid) __field(int, sig)), + TP_fast_assign(tp_assign(pid, pid) tp_assign(sig, sig)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_setpgid +SC_TRACE_EVENT(sys_setpgid, + TP_PROTO(pid_t pid, pid_t pgid), + TP_ARGS(pid, pgid), + TP_STRUCT__entry(__field(pid_t, pid) __field(pid_t, pgid)), + TP_fast_assign(tp_assign(pid, pid) tp_assign(pgid, pgid)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_dup2 +SC_TRACE_EVENT(sys_dup2, + TP_PROTO(unsigned int oldfd, unsigned int newfd), + TP_ARGS(oldfd, newfd), + TP_STRUCT__entry(__field(unsigned int, oldfd) __field(unsigned int, newfd)), + TP_fast_assign(tp_assign(oldfd, oldfd) tp_assign(newfd, newfd)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_setreuid +SC_TRACE_EVENT(sys_setreuid, + TP_PROTO(uid_t ruid, uid_t euid), + TP_ARGS(ruid, euid), + TP_STRUCT__entry(__field(uid_t, ruid) __field(uid_t, euid)), + TP_fast_assign(tp_assign(ruid, ruid) tp_assign(euid, euid)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_setregid +SC_TRACE_EVENT(sys_setregid, + TP_PROTO(gid_t rgid, gid_t egid), + TP_ARGS(rgid, egid), + TP_STRUCT__entry(__field(gid_t, rgid) __field(gid_t, egid)), + TP_fast_assign(tp_assign(rgid, rgid) tp_assign(egid, egid)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_munmap +SC_TRACE_EVENT(sys_munmap, + TP_PROTO(unsigned long addr, size_t len), + TP_ARGS(addr, len), + TP_STRUCT__entry(__field_hex(unsigned long, addr) __field(size_t, len)), + TP_fast_assign(tp_assign(addr, addr) tp_assign(len, len)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_ftruncate +SC_TRACE_EVENT(sys_ftruncate, + TP_PROTO(unsigned int fd, unsigned long length), + TP_ARGS(fd, length), + TP_STRUCT__entry(__field(unsigned int, fd) __field(unsigned long, length)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(length, length)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_fchmod +SC_TRACE_EVENT(sys_fchmod, + TP_PROTO(unsigned int fd, umode_t mode), + TP_ARGS(fd, mode), + TP_STRUCT__entry(__field(unsigned int, fd) __field(umode_t, mode)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(mode, mode)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_getpriority +SC_TRACE_EVENT(sys_getpriority, + TP_PROTO(int which, int who), + TP_ARGS(which, who), + TP_STRUCT__entry(__field(int, which) __field(int, who)), + TP_fast_assign(tp_assign(which, which) tp_assign(who, who)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_bdflush +SC_TRACE_EVENT(sys_bdflush, + TP_PROTO(int func, long data), + TP_ARGS(func, data), + TP_STRUCT__entry(__field(int, func) __field(long, data)), + TP_fast_assign(tp_assign(func, func) tp_assign(data, data)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_flock +SC_TRACE_EVENT(sys_flock, + TP_PROTO(unsigned int fd, unsigned int cmd), + TP_ARGS(fd, cmd), + TP_STRUCT__entry(__field(unsigned int, fd) __field(unsigned int, cmd)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(cmd, cmd)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_mlock +SC_TRACE_EVENT(sys_mlock, + TP_PROTO(unsigned long start, size_t len), + TP_ARGS(start, len), + TP_STRUCT__entry(__field(unsigned long, start) __field(size_t, len)), + TP_fast_assign(tp_assign(start, start) tp_assign(len, len)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_munlock +SC_TRACE_EVENT(sys_munlock, + TP_PROTO(unsigned long start, size_t len), + TP_ARGS(start, len), + TP_STRUCT__entry(__field(unsigned long, start) __field(size_t, len)), + TP_fast_assign(tp_assign(start, start) tp_assign(len, len)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_lseek +SC_TRACE_EVENT(sys_lseek, + TP_PROTO(unsigned int fd, off_t offset, unsigned int origin), + TP_ARGS(fd, offset, origin), + TP_STRUCT__entry(__field(unsigned int, fd) __field(off_t, offset) __field(unsigned int, origin)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(offset, offset) tp_assign(origin, origin)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_ioctl +SC_TRACE_EVENT(sys_ioctl, + TP_PROTO(unsigned int fd, unsigned int cmd, unsigned long arg), + TP_ARGS(fd, cmd, arg), + TP_STRUCT__entry(__field(unsigned int, fd) __field(unsigned int, cmd) __field(unsigned long, arg)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(cmd, cmd) tp_assign(arg, arg)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_fcntl +SC_TRACE_EVENT(sys_fcntl, + TP_PROTO(unsigned int fd, unsigned int cmd, unsigned long arg), + TP_ARGS(fd, cmd, arg), + TP_STRUCT__entry(__field(unsigned int, fd) __field(unsigned int, cmd) __field(unsigned long, arg)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(cmd, cmd) tp_assign(arg, arg)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_fchown +SC_TRACE_EVENT(sys_fchown, + TP_PROTO(unsigned int fd, uid_t user, gid_t group), + TP_ARGS(fd, user, group), + TP_STRUCT__entry(__field(unsigned int, fd) __field(uid_t, user) __field(gid_t, group)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(user, user) tp_assign(group, group)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_setpriority +SC_TRACE_EVENT(sys_setpriority, + TP_PROTO(int which, int who, int niceval), + TP_ARGS(which, who, niceval), + TP_STRUCT__entry(__field(int, which) __field(int, who) __field(int, niceval)), + TP_fast_assign(tp_assign(which, which) tp_assign(who, who) tp_assign(niceval, niceval)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_mprotect +SC_TRACE_EVENT(sys_mprotect, + TP_PROTO(unsigned long start, size_t len, unsigned long prot), + TP_ARGS(start, len, prot), + TP_STRUCT__entry(__field(unsigned long, start) __field(size_t, len) __field(unsigned long, prot)), + TP_fast_assign(tp_assign(start, start) tp_assign(len, len) tp_assign(prot, prot)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_sysfs +SC_TRACE_EVENT(sys_sysfs, + TP_PROTO(int option, unsigned long arg1, unsigned long arg2), + TP_ARGS(option, arg1, arg2), + TP_STRUCT__entry(__field(int, option) __field(unsigned long, arg1) __field(unsigned long, arg2)), + TP_fast_assign(tp_assign(option, option) tp_assign(arg1, arg1) tp_assign(arg2, arg2)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_msync +SC_TRACE_EVENT(sys_msync, + TP_PROTO(unsigned long start, size_t len, int flags), + TP_ARGS(start, len, flags), + TP_STRUCT__entry(__field(unsigned long, start) __field(size_t, len) __field(int, flags)), + TP_fast_assign(tp_assign(start, start) tp_assign(len, len) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_cacheflush +SC_TRACE_EVENT(sys_cacheflush, + TP_PROTO(unsigned long addr, unsigned long bytes, unsigned int cache), + TP_ARGS(addr, bytes, cache), + TP_STRUCT__entry(__field_hex(unsigned long, addr) __field(unsigned long, bytes) __field(unsigned int, cache)), + TP_fast_assign(tp_assign(addr, addr) tp_assign(bytes, bytes) tp_assign(cache, cache)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_ptrace +SC_TRACE_EVENT(sys_ptrace, + TP_PROTO(long request, long pid, unsigned long addr, unsigned long data), + TP_ARGS(request, pid, addr, data), + TP_STRUCT__entry(__field(long, request) __field(long, pid) __field_hex(unsigned long, addr) __field(unsigned long, data)), + TP_fast_assign(tp_assign(request, request) tp_assign(pid, pid) tp_assign(addr, addr) tp_assign(data, data)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_mremap +SC_TRACE_EVENT(sys_mremap, + TP_PROTO(unsigned long addr, unsigned long old_len, unsigned long new_len, unsigned long flags, unsigned long new_addr), + TP_ARGS(addr, old_len, new_len, flags, new_addr), + TP_STRUCT__entry(__field_hex(unsigned long, addr) __field(unsigned long, old_len) __field(unsigned long, new_len) __field(unsigned long, flags) __field_hex(unsigned long, new_addr)), + TP_fast_assign(tp_assign(addr, addr) tp_assign(old_len, old_len) tp_assign(new_len, new_len) tp_assign(flags, flags) tp_assign(new_addr, new_addr)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_mips_mmap +SC_TRACE_EVENT(sys_mips_mmap, + TP_PROTO(unsigned long addr, unsigned long len, unsigned long prot, unsigned long flags, unsigned long fd, off_t offset), + TP_ARGS(addr, len, prot, flags, fd, offset), + TP_STRUCT__entry(__field_hex(unsigned long, addr) __field(unsigned long, len) __field(unsigned long, prot) __field(unsigned long, flags) __field(unsigned long, fd) __field(off_t, offset)), + TP_fast_assign(tp_assign(addr, addr) tp_assign(len, len) tp_assign(prot, prot) tp_assign(flags, flags) tp_assign(fd, fd) tp_assign(offset, offset)), + TP_printk() +) +#endif + +#endif /* _TRACE_SYSCALLS_INTEGERS_H */ + +/* This part must be outside protection */ +#include "../../../probes/define_trace.h" + +#else /* CREATE_SYSCALL_TABLE */ + +#include "mips-32-syscalls-3.5.0_integers_override.h" +#include "syscalls_integers_override.h" + +#ifndef OVERRIDE_TABLE_32_sys_getpid +TRACE_SYSCALL_TABLE(syscalls_noargs, sys_getpid, 4041, 0) +#endif +#ifndef OVERRIDE_TABLE_32_sys_getuid +TRACE_SYSCALL_TABLE(syscalls_noargs, sys_getuid, 4049, 0) +#endif +#ifndef OVERRIDE_TABLE_32_sys_pause +TRACE_SYSCALL_TABLE(syscalls_noargs, sys_pause, 4059, 0) +#endif +#ifndef OVERRIDE_TABLE_32_sys_sync +TRACE_SYSCALL_TABLE(syscalls_noargs, sys_sync, 4073, 0) +#endif +#ifndef OVERRIDE_TABLE_32_sys_getgid +TRACE_SYSCALL_TABLE(syscalls_noargs, sys_getgid, 4095, 0) +#endif +#ifndef OVERRIDE_TABLE_32_sys_geteuid +TRACE_SYSCALL_TABLE(syscalls_noargs, sys_geteuid, 4099, 0) +#endif +#ifndef OVERRIDE_TABLE_32_sys_getegid +TRACE_SYSCALL_TABLE(syscalls_noargs, sys_getegid, 4101, 0) +#endif +#ifndef OVERRIDE_TABLE_32_sys_getppid +TRACE_SYSCALL_TABLE(syscalls_noargs, sys_getppid, 4129, 0) +#endif +#ifndef OVERRIDE_TABLE_32_sys_getpgrp +TRACE_SYSCALL_TABLE(syscalls_noargs, sys_getpgrp, 4131, 0) +#endif +#ifndef OVERRIDE_TABLE_32_sys_setsid +TRACE_SYSCALL_TABLE(syscalls_noargs, sys_setsid, 4133, 0) +#endif +#ifndef OVERRIDE_TABLE_32_sys_sgetmask +TRACE_SYSCALL_TABLE(syscalls_noargs, sys_sgetmask, 4137, 0) +#endif +#ifndef OVERRIDE_TABLE_32_sys_vhangup +TRACE_SYSCALL_TABLE(syscalls_noargs, sys_vhangup, 4223, 0) +#endif +#ifndef OVERRIDE_TABLE_32_sys_munlockall +TRACE_SYSCALL_TABLE(syscalls_noargs, sys_munlockall, 4315, 0) +#endif +#ifndef OVERRIDE_TABLE_32_sys_sched_yield +TRACE_SYSCALL_TABLE(syscalls_noargs, sys_sched_yield, 4325, 0) +#endif +#ifndef OVERRIDE_TABLE_32_sys_exit +TRACE_SYSCALL_TABLE(sys_exit, sys_exit, 4003, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_close +TRACE_SYSCALL_TABLE(sys_close, sys_close, 4013, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_lseek +TRACE_SYSCALL_TABLE(sys_lseek, sys_lseek, 4039, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_setuid +TRACE_SYSCALL_TABLE(sys_setuid, sys_setuid, 4047, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_ptrace +TRACE_SYSCALL_TABLE(sys_ptrace, sys_ptrace, 4053, 4) +#endif +#ifndef OVERRIDE_TABLE_32_sys_alarm +TRACE_SYSCALL_TABLE(sys_alarm, sys_alarm, 4055, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_nice +TRACE_SYSCALL_TABLE(sys_nice, sys_nice, 4069, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_kill +TRACE_SYSCALL_TABLE(sys_kill, sys_kill, 4075, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_dup +TRACE_SYSCALL_TABLE(sys_dup, sys_dup, 4083, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_brk +TRACE_SYSCALL_TABLE(sys_brk, sys_brk, 4091, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_setgid +TRACE_SYSCALL_TABLE(sys_setgid, sys_setgid, 4093, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_ioctl +TRACE_SYSCALL_TABLE(sys_ioctl, sys_ioctl, 4109, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_fcntl +TRACE_SYSCALL_TABLE(sys_fcntl, sys_fcntl, 4111, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_setpgid +TRACE_SYSCALL_TABLE(sys_setpgid, sys_setpgid, 4115, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_umask +TRACE_SYSCALL_TABLE(sys_umask, sys_umask, 4121, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_dup2 +TRACE_SYSCALL_TABLE(sys_dup2, sys_dup2, 4127, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_ssetmask +TRACE_SYSCALL_TABLE(sys_ssetmask, sys_ssetmask, 4139, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_setreuid +TRACE_SYSCALL_TABLE(sys_setreuid, sys_setreuid, 4141, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_setregid +TRACE_SYSCALL_TABLE(sys_setregid, sys_setregid, 4143, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_mips_mmap +TRACE_SYSCALL_TABLE(sys_mips_mmap, sys_mips_mmap, 4181, 6) +#endif +#ifndef OVERRIDE_TABLE_32_sys_munmap +TRACE_SYSCALL_TABLE(sys_munmap, sys_munmap, 4183, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_ftruncate +TRACE_SYSCALL_TABLE(sys_ftruncate, sys_ftruncate, 4187, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_fchmod +TRACE_SYSCALL_TABLE(sys_fchmod, sys_fchmod, 4189, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_fchown +TRACE_SYSCALL_TABLE(sys_fchown, sys_fchown, 4191, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_getpriority +TRACE_SYSCALL_TABLE(sys_getpriority, sys_getpriority, 4193, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_setpriority +TRACE_SYSCALL_TABLE(sys_setpriority, sys_setpriority, 4195, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_fsync +TRACE_SYSCALL_TABLE(sys_fsync, sys_fsync, 4237, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_mprotect +TRACE_SYSCALL_TABLE(sys_mprotect, sys_mprotect, 4251, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_getpgid +TRACE_SYSCALL_TABLE(sys_getpgid, sys_getpgid, 4265, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_fchdir +TRACE_SYSCALL_TABLE(sys_fchdir, sys_fchdir, 4267, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_bdflush +TRACE_SYSCALL_TABLE(sys_bdflush, sys_bdflush, 4269, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_sysfs +TRACE_SYSCALL_TABLE(sys_sysfs, sys_sysfs, 4271, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_personality +TRACE_SYSCALL_TABLE(sys_personality, sys_personality, 4273, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_setfsuid +TRACE_SYSCALL_TABLE(sys_setfsuid, sys_setfsuid, 4277, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_setfsgid +TRACE_SYSCALL_TABLE(sys_setfsgid, sys_setfsgid, 4279, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_flock +TRACE_SYSCALL_TABLE(sys_flock, sys_flock, 4287, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_msync +TRACE_SYSCALL_TABLE(sys_msync, sys_msync, 4289, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_cacheflush +TRACE_SYSCALL_TABLE(sys_cacheflush, sys_cacheflush, 4295, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_getsid +TRACE_SYSCALL_TABLE(sys_getsid, sys_getsid, 4303, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_fdatasync +TRACE_SYSCALL_TABLE(sys_fdatasync, sys_fdatasync, 4305, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_mlock +TRACE_SYSCALL_TABLE(sys_mlock, sys_mlock, 4309, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_munlock +TRACE_SYSCALL_TABLE(sys_munlock, sys_munlock, 4311, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_mlockall +TRACE_SYSCALL_TABLE(sys_mlockall, sys_mlockall, 4313, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_sched_getscheduler +TRACE_SYSCALL_TABLE(sys_sched_getscheduler, sys_sched_getscheduler, 4323, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_sched_get_priority_max +TRACE_SYSCALL_TABLE(sys_sched_get_priority_max, sys_sched_get_priority_max, 4327, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_sched_get_priority_min +TRACE_SYSCALL_TABLE(sys_sched_get_priority_min, sys_sched_get_priority_min, 4329, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_mremap +TRACE_SYSCALL_TABLE(sys_mremap, sys_mremap, 4335, 5) +#endif + +#endif /* CREATE_SYSCALL_TABLE */ --- linux-3.11.0.orig/ubuntu/lttng-modules/instrumentation/syscalls/headers/powerpc-32-syscalls-3.0.34_integers.h +++ linux-3.11.0/ubuntu/lttng-modules/instrumentation/syscalls/headers/powerpc-32-syscalls-3.0.34_integers.h @@ -0,0 +1,1043 @@ +/* THIS FILE IS AUTO-GENERATED. DO NOT EDIT */ +#ifndef CREATE_SYSCALL_TABLE + +#if !defined(_TRACE_SYSCALLS_INTEGERS_H) || defined(TRACE_HEADER_MULTI_READ) +#define _TRACE_SYSCALLS_INTEGERS_H + +#include +#include +#include "powerpc-32-syscalls-3.0.34_integers_override.h" +#include "syscalls_integers_override.h" + +SC_DECLARE_EVENT_CLASS_NOARGS(syscalls_noargs, + TP_STRUCT__entry(), + TP_fast_assign(), + TP_printk() +) +#ifndef OVERRIDE_32_sys_restart_syscall +SC_DEFINE_EVENT_NOARGS(syscalls_noargs, sys_restart_syscall) +#endif +#ifndef OVERRIDE_32_sys_getpid +SC_DEFINE_EVENT_NOARGS(syscalls_noargs, sys_getpid) +#endif +#ifndef OVERRIDE_32_sys_getuid +SC_DEFINE_EVENT_NOARGS(syscalls_noargs, sys_getuid) +#endif +#ifndef OVERRIDE_32_sys_pause +SC_DEFINE_EVENT_NOARGS(syscalls_noargs, sys_pause) +#endif +#ifndef OVERRIDE_32_sys_sync +SC_DEFINE_EVENT_NOARGS(syscalls_noargs, sys_sync) +#endif +#ifndef OVERRIDE_32_sys_getgid +SC_DEFINE_EVENT_NOARGS(syscalls_noargs, sys_getgid) +#endif +#ifndef OVERRIDE_32_sys_geteuid +SC_DEFINE_EVENT_NOARGS(syscalls_noargs, sys_geteuid) +#endif +#ifndef OVERRIDE_32_sys_getegid +SC_DEFINE_EVENT_NOARGS(syscalls_noargs, sys_getegid) +#endif +#ifndef OVERRIDE_32_sys_getppid +SC_DEFINE_EVENT_NOARGS(syscalls_noargs, sys_getppid) +#endif +#ifndef OVERRIDE_32_sys_getpgrp +SC_DEFINE_EVENT_NOARGS(syscalls_noargs, sys_getpgrp) +#endif +#ifndef OVERRIDE_32_sys_setsid +SC_DEFINE_EVENT_NOARGS(syscalls_noargs, sys_setsid) +#endif +#ifndef OVERRIDE_32_sys_sgetmask +SC_DEFINE_EVENT_NOARGS(syscalls_noargs, sys_sgetmask) +#endif +#ifndef OVERRIDE_32_sys_vhangup +SC_DEFINE_EVENT_NOARGS(syscalls_noargs, sys_vhangup) +#endif +#ifndef OVERRIDE_32_sys_munlockall +SC_DEFINE_EVENT_NOARGS(syscalls_noargs, sys_munlockall) +#endif +#ifndef OVERRIDE_32_sys_sched_yield +SC_DEFINE_EVENT_NOARGS(syscalls_noargs, sys_sched_yield) +#endif +#ifndef OVERRIDE_32_sys_gettid +SC_DEFINE_EVENT_NOARGS(syscalls_noargs, sys_gettid) +#endif +#ifndef OVERRIDE_32_sys_inotify_init +SC_DEFINE_EVENT_NOARGS(syscalls_noargs, sys_inotify_init) +#endif +#ifndef OVERRIDE_32_sys_exit +SC_TRACE_EVENT(sys_exit, + TP_PROTO(int error_code), + TP_ARGS(error_code), + TP_STRUCT__entry(__field(int, error_code)), + TP_fast_assign(tp_assign(error_code, error_code)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_close +SC_TRACE_EVENT(sys_close, + TP_PROTO(unsigned int fd), + TP_ARGS(fd), + TP_STRUCT__entry(__field(unsigned int, fd)), + TP_fast_assign(tp_assign(fd, fd)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_setuid +SC_TRACE_EVENT(sys_setuid, + TP_PROTO(uid_t uid), + TP_ARGS(uid), + TP_STRUCT__entry(__field(uid_t, uid)), + TP_fast_assign(tp_assign(uid, uid)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_alarm +SC_TRACE_EVENT(sys_alarm, + TP_PROTO(unsigned int seconds), + TP_ARGS(seconds), + TP_STRUCT__entry(__field(unsigned int, seconds)), + TP_fast_assign(tp_assign(seconds, seconds)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_nice +SC_TRACE_EVENT(sys_nice, + TP_PROTO(int increment), + TP_ARGS(increment), + TP_STRUCT__entry(__field(int, increment)), + TP_fast_assign(tp_assign(increment, increment)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_dup +SC_TRACE_EVENT(sys_dup, + TP_PROTO(unsigned int fildes), + TP_ARGS(fildes), + TP_STRUCT__entry(__field(unsigned int, fildes)), + TP_fast_assign(tp_assign(fildes, fildes)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_brk +SC_TRACE_EVENT(sys_brk, + TP_PROTO(unsigned long brk), + TP_ARGS(brk), + TP_STRUCT__entry(__field(unsigned long, brk)), + TP_fast_assign(tp_assign(brk, brk)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_setgid +SC_TRACE_EVENT(sys_setgid, + TP_PROTO(gid_t gid), + TP_ARGS(gid), + TP_STRUCT__entry(__field(gid_t, gid)), + TP_fast_assign(tp_assign(gid, gid)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_umask +SC_TRACE_EVENT(sys_umask, + TP_PROTO(int mask), + TP_ARGS(mask), + TP_STRUCT__entry(__field(int, mask)), + TP_fast_assign(tp_assign(mask, mask)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_ssetmask +SC_TRACE_EVENT(sys_ssetmask, + TP_PROTO(int newmask), + TP_ARGS(newmask), + TP_STRUCT__entry(__field(int, newmask)), + TP_fast_assign(tp_assign(newmask, newmask)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_fsync +SC_TRACE_EVENT(sys_fsync, + TP_PROTO(unsigned int fd), + TP_ARGS(fd), + TP_STRUCT__entry(__field(unsigned int, fd)), + TP_fast_assign(tp_assign(fd, fd)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_getpgid +SC_TRACE_EVENT(sys_getpgid, + TP_PROTO(pid_t pid), + TP_ARGS(pid), + TP_STRUCT__entry(__field(pid_t, pid)), + TP_fast_assign(tp_assign(pid, pid)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_fchdir +SC_TRACE_EVENT(sys_fchdir, + TP_PROTO(unsigned int fd), + TP_ARGS(fd), + TP_STRUCT__entry(__field(unsigned int, fd)), + TP_fast_assign(tp_assign(fd, fd)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_personality +SC_TRACE_EVENT(sys_personality, + TP_PROTO(unsigned int personality), + TP_ARGS(personality), + TP_STRUCT__entry(__field(unsigned int, personality)), + TP_fast_assign(tp_assign(personality, personality)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_setfsuid +SC_TRACE_EVENT(sys_setfsuid, + TP_PROTO(uid_t uid), + TP_ARGS(uid), + TP_STRUCT__entry(__field(uid_t, uid)), + TP_fast_assign(tp_assign(uid, uid)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_setfsgid +SC_TRACE_EVENT(sys_setfsgid, + TP_PROTO(gid_t gid), + TP_ARGS(gid), + TP_STRUCT__entry(__field(gid_t, gid)), + TP_fast_assign(tp_assign(gid, gid)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_getsid +SC_TRACE_EVENT(sys_getsid, + TP_PROTO(pid_t pid), + TP_ARGS(pid), + TP_STRUCT__entry(__field(pid_t, pid)), + TP_fast_assign(tp_assign(pid, pid)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_fdatasync +SC_TRACE_EVENT(sys_fdatasync, + TP_PROTO(unsigned int fd), + TP_ARGS(fd), + TP_STRUCT__entry(__field(unsigned int, fd)), + TP_fast_assign(tp_assign(fd, fd)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_mlockall +SC_TRACE_EVENT(sys_mlockall, + TP_PROTO(int flags), + TP_ARGS(flags), + TP_STRUCT__entry(__field(int, flags)), + TP_fast_assign(tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_sched_getscheduler +SC_TRACE_EVENT(sys_sched_getscheduler, + TP_PROTO(pid_t pid), + TP_ARGS(pid), + TP_STRUCT__entry(__field(pid_t, pid)), + TP_fast_assign(tp_assign(pid, pid)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_sched_get_priority_max +SC_TRACE_EVENT(sys_sched_get_priority_max, + TP_PROTO(int policy), + TP_ARGS(policy), + TP_STRUCT__entry(__field(int, policy)), + TP_fast_assign(tp_assign(policy, policy)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_sched_get_priority_min +SC_TRACE_EVENT(sys_sched_get_priority_min, + TP_PROTO(int policy), + TP_ARGS(policy), + TP_STRUCT__entry(__field(int, policy)), + TP_fast_assign(tp_assign(policy, policy)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_io_destroy +SC_TRACE_EVENT(sys_io_destroy, + TP_PROTO(aio_context_t ctx), + TP_ARGS(ctx), + TP_STRUCT__entry(__field(aio_context_t, ctx)), + TP_fast_assign(tp_assign(ctx, ctx)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_exit_group +SC_TRACE_EVENT(sys_exit_group, + TP_PROTO(int error_code), + TP_ARGS(error_code), + TP_STRUCT__entry(__field(int, error_code)), + TP_fast_assign(tp_assign(error_code, error_code)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_epoll_create +SC_TRACE_EVENT(sys_epoll_create, + TP_PROTO(int size), + TP_ARGS(size), + TP_STRUCT__entry(__field(int, size)), + TP_fast_assign(tp_assign(size, size)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_timer_getoverrun +SC_TRACE_EVENT(sys_timer_getoverrun, + TP_PROTO(timer_t timer_id), + TP_ARGS(timer_id), + TP_STRUCT__entry(__field(timer_t, timer_id)), + TP_fast_assign(tp_assign(timer_id, timer_id)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_timer_delete +SC_TRACE_EVENT(sys_timer_delete, + TP_PROTO(timer_t timer_id), + TP_ARGS(timer_id), + TP_STRUCT__entry(__field(timer_t, timer_id)), + TP_fast_assign(tp_assign(timer_id, timer_id)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_unshare +SC_TRACE_EVENT(sys_unshare, + TP_PROTO(unsigned long unshare_flags), + TP_ARGS(unshare_flags), + TP_STRUCT__entry(__field(unsigned long, unshare_flags)), + TP_fast_assign(tp_assign(unshare_flags, unshare_flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_eventfd +SC_TRACE_EVENT(sys_eventfd, + TP_PROTO(unsigned int count), + TP_ARGS(count), + TP_STRUCT__entry(__field(unsigned int, count)), + TP_fast_assign(tp_assign(count, count)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_epoll_create1 +SC_TRACE_EVENT(sys_epoll_create1, + TP_PROTO(int flags), + TP_ARGS(flags), + TP_STRUCT__entry(__field(int, flags)), + TP_fast_assign(tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_inotify_init1 +SC_TRACE_EVENT(sys_inotify_init1, + TP_PROTO(int flags), + TP_ARGS(flags), + TP_STRUCT__entry(__field(int, flags)), + TP_fast_assign(tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_syncfs +SC_TRACE_EVENT(sys_syncfs, + TP_PROTO(int fd), + TP_ARGS(fd), + TP_STRUCT__entry(__field(int, fd)), + TP_fast_assign(tp_assign(fd, fd)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_kill +SC_TRACE_EVENT(sys_kill, + TP_PROTO(pid_t pid, int sig), + TP_ARGS(pid, sig), + TP_STRUCT__entry(__field(pid_t, pid) __field(int, sig)), + TP_fast_assign(tp_assign(pid, pid) tp_assign(sig, sig)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_signal +SC_TRACE_EVENT(sys_signal, + TP_PROTO(int sig, __sighandler_t handler), + TP_ARGS(sig, handler), + TP_STRUCT__entry(__field(int, sig) __field(__sighandler_t, handler)), + TP_fast_assign(tp_assign(sig, sig) tp_assign(handler, handler)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_setpgid +SC_TRACE_EVENT(sys_setpgid, + TP_PROTO(pid_t pid, pid_t pgid), + TP_ARGS(pid, pgid), + TP_STRUCT__entry(__field(pid_t, pid) __field(pid_t, pgid)), + TP_fast_assign(tp_assign(pid, pid) tp_assign(pgid, pgid)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_dup2 +SC_TRACE_EVENT(sys_dup2, + TP_PROTO(unsigned int oldfd, unsigned int newfd), + TP_ARGS(oldfd, newfd), + TP_STRUCT__entry(__field(unsigned int, oldfd) __field(unsigned int, newfd)), + TP_fast_assign(tp_assign(oldfd, oldfd) tp_assign(newfd, newfd)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_setreuid +SC_TRACE_EVENT(sys_setreuid, + TP_PROTO(uid_t ruid, uid_t euid), + TP_ARGS(ruid, euid), + TP_STRUCT__entry(__field(uid_t, ruid) __field(uid_t, euid)), + TP_fast_assign(tp_assign(ruid, ruid) tp_assign(euid, euid)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_setregid +SC_TRACE_EVENT(sys_setregid, + TP_PROTO(gid_t rgid, gid_t egid), + TP_ARGS(rgid, egid), + TP_STRUCT__entry(__field(gid_t, rgid) __field(gid_t, egid)), + TP_fast_assign(tp_assign(rgid, rgid) tp_assign(egid, egid)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_munmap +SC_TRACE_EVENT(sys_munmap, + TP_PROTO(unsigned long addr, size_t len), + TP_ARGS(addr, len), + TP_STRUCT__entry(__field_hex(unsigned long, addr) __field(size_t, len)), + TP_fast_assign(tp_assign(addr, addr) tp_assign(len, len)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_ftruncate +SC_TRACE_EVENT(sys_ftruncate, + TP_PROTO(unsigned int fd, unsigned long length), + TP_ARGS(fd, length), + TP_STRUCT__entry(__field(unsigned int, fd) __field(unsigned long, length)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(length, length)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_fchmod +SC_TRACE_EVENT(sys_fchmod, + TP_PROTO(unsigned int fd, mode_t mode), + TP_ARGS(fd, mode), + TP_STRUCT__entry(__field(unsigned int, fd) __field(mode_t, mode)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(mode, mode)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_getpriority +SC_TRACE_EVENT(sys_getpriority, + TP_PROTO(int which, int who), + TP_ARGS(which, who), + TP_STRUCT__entry(__field(int, which) __field(int, who)), + TP_fast_assign(tp_assign(which, which) tp_assign(who, who)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_bdflush +SC_TRACE_EVENT(sys_bdflush, + TP_PROTO(int func, long data), + TP_ARGS(func, data), + TP_STRUCT__entry(__field(int, func) __field(long, data)), + TP_fast_assign(tp_assign(func, func) tp_assign(data, data)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_flock +SC_TRACE_EVENT(sys_flock, + TP_PROTO(unsigned int fd, unsigned int cmd), + TP_ARGS(fd, cmd), + TP_STRUCT__entry(__field(unsigned int, fd) __field(unsigned int, cmd)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(cmd, cmd)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_mlock +SC_TRACE_EVENT(sys_mlock, + TP_PROTO(unsigned long start, size_t len), + TP_ARGS(start, len), + TP_STRUCT__entry(__field(unsigned long, start) __field(size_t, len)), + TP_fast_assign(tp_assign(start, start) tp_assign(len, len)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_munlock +SC_TRACE_EVENT(sys_munlock, + TP_PROTO(unsigned long start, size_t len), + TP_ARGS(start, len), + TP_STRUCT__entry(__field(unsigned long, start) __field(size_t, len)), + TP_fast_assign(tp_assign(start, start) tp_assign(len, len)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_tkill +SC_TRACE_EVENT(sys_tkill, + TP_PROTO(pid_t pid, int sig), + TP_ARGS(pid, sig), + TP_STRUCT__entry(__field(pid_t, pid) __field(int, sig)), + TP_fast_assign(tp_assign(pid, pid) tp_assign(sig, sig)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_ioprio_get +SC_TRACE_EVENT(sys_ioprio_get, + TP_PROTO(int which, int who), + TP_ARGS(which, who), + TP_STRUCT__entry(__field(int, which) __field(int, who)), + TP_fast_assign(tp_assign(which, which) tp_assign(who, who)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_inotify_rm_watch +SC_TRACE_EVENT(sys_inotify_rm_watch, + TP_PROTO(int fd, __s32 wd), + TP_ARGS(fd, wd), + TP_STRUCT__entry(__field(int, fd) __field(__s32, wd)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(wd, wd)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_timerfd_create +SC_TRACE_EVENT(sys_timerfd_create, + TP_PROTO(int clockid, int flags), + TP_ARGS(clockid, flags), + TP_STRUCT__entry(__field(int, clockid) __field(int, flags)), + TP_fast_assign(tp_assign(clockid, clockid) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_eventfd2 +SC_TRACE_EVENT(sys_eventfd2, + TP_PROTO(unsigned int count, int flags), + TP_ARGS(count, flags), + TP_STRUCT__entry(__field(unsigned int, count) __field(int, flags)), + TP_fast_assign(tp_assign(count, count) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_listen +SC_TRACE_EVENT(sys_listen, + TP_PROTO(int fd, int backlog), + TP_ARGS(fd, backlog), + TP_STRUCT__entry(__field(int, fd) __field(int, backlog)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(backlog, backlog)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_shutdown +SC_TRACE_EVENT(sys_shutdown, + TP_PROTO(int fd, int how), + TP_ARGS(fd, how), + TP_STRUCT__entry(__field(int, fd) __field(int, how)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(how, how)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_setns +SC_TRACE_EVENT(sys_setns, + TP_PROTO(int fd, int nstype), + TP_ARGS(fd, nstype), + TP_STRUCT__entry(__field(int, fd) __field(int, nstype)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(nstype, nstype)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_lseek +SC_TRACE_EVENT(sys_lseek, + TP_PROTO(unsigned int fd, off_t offset, unsigned int origin), + TP_ARGS(fd, offset, origin), + TP_STRUCT__entry(__field(unsigned int, fd) __field(off_t, offset) __field(unsigned int, origin)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(offset, offset) tp_assign(origin, origin)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_ioctl +SC_TRACE_EVENT(sys_ioctl, + TP_PROTO(unsigned int fd, unsigned int cmd, unsigned long arg), + TP_ARGS(fd, cmd, arg), + TP_STRUCT__entry(__field(unsigned int, fd) __field(unsigned int, cmd) __field(unsigned long, arg)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(cmd, cmd) tp_assign(arg, arg)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_fcntl +SC_TRACE_EVENT(sys_fcntl, + TP_PROTO(unsigned int fd, unsigned int cmd, unsigned long arg), + TP_ARGS(fd, cmd, arg), + TP_STRUCT__entry(__field(unsigned int, fd) __field(unsigned int, cmd) __field(unsigned long, arg)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(cmd, cmd) tp_assign(arg, arg)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_fchown +SC_TRACE_EVENT(sys_fchown, + TP_PROTO(unsigned int fd, uid_t user, gid_t group), + TP_ARGS(fd, user, group), + TP_STRUCT__entry(__field(unsigned int, fd) __field(uid_t, user) __field(gid_t, group)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(user, user) tp_assign(group, group)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_setpriority +SC_TRACE_EVENT(sys_setpriority, + TP_PROTO(int which, int who, int niceval), + TP_ARGS(which, who, niceval), + TP_STRUCT__entry(__field(int, which) __field(int, who) __field(int, niceval)), + TP_fast_assign(tp_assign(which, which) tp_assign(who, who) tp_assign(niceval, niceval)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_mprotect +SC_TRACE_EVENT(sys_mprotect, + TP_PROTO(unsigned long start, size_t len, unsigned long prot), + TP_ARGS(start, len, prot), + TP_STRUCT__entry(__field(unsigned long, start) __field(size_t, len) __field(unsigned long, prot)), + TP_fast_assign(tp_assign(start, start) tp_assign(len, len) tp_assign(prot, prot)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_sysfs +SC_TRACE_EVENT(sys_sysfs, + TP_PROTO(int option, unsigned long arg1, unsigned long arg2), + TP_ARGS(option, arg1, arg2), + TP_STRUCT__entry(__field(int, option) __field(unsigned long, arg1) __field(unsigned long, arg2)), + TP_fast_assign(tp_assign(option, option) tp_assign(arg1, arg1) tp_assign(arg2, arg2)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_msync +SC_TRACE_EVENT(sys_msync, + TP_PROTO(unsigned long start, size_t len, int flags), + TP_ARGS(start, len, flags), + TP_STRUCT__entry(__field(unsigned long, start) __field(size_t, len) __field(int, flags)), + TP_fast_assign(tp_assign(start, start) tp_assign(len, len) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_setresuid +SC_TRACE_EVENT(sys_setresuid, + TP_PROTO(uid_t ruid, uid_t euid, uid_t suid), + TP_ARGS(ruid, euid, suid), + TP_STRUCT__entry(__field(uid_t, ruid) __field(uid_t, euid) __field(uid_t, suid)), + TP_fast_assign(tp_assign(ruid, ruid) tp_assign(euid, euid) tp_assign(suid, suid)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_setresgid +SC_TRACE_EVENT(sys_setresgid, + TP_PROTO(gid_t rgid, gid_t egid, gid_t sgid), + TP_ARGS(rgid, egid, sgid), + TP_STRUCT__entry(__field(gid_t, rgid) __field(gid_t, egid) __field(gid_t, sgid)), + TP_fast_assign(tp_assign(rgid, rgid) tp_assign(egid, egid) tp_assign(sgid, sgid)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_fcntl64 +SC_TRACE_EVENT(sys_fcntl64, + TP_PROTO(unsigned int fd, unsigned int cmd, unsigned long arg), + TP_ARGS(fd, cmd, arg), + TP_STRUCT__entry(__field(unsigned int, fd) __field(unsigned int, cmd) __field(unsigned long, arg)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(cmd, cmd) tp_assign(arg, arg)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_madvise +SC_TRACE_EVENT(sys_madvise, + TP_PROTO(unsigned long start, size_t len_in, int behavior), + TP_ARGS(start, len_in, behavior), + TP_STRUCT__entry(__field(unsigned long, start) __field(size_t, len_in) __field(int, behavior)), + TP_fast_assign(tp_assign(start, start) tp_assign(len_in, len_in) tp_assign(behavior, behavior)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_tgkill +SC_TRACE_EVENT(sys_tgkill, + TP_PROTO(pid_t tgid, pid_t pid, int sig), + TP_ARGS(tgid, pid, sig), + TP_STRUCT__entry(__field(pid_t, tgid) __field(pid_t, pid) __field(int, sig)), + TP_fast_assign(tp_assign(tgid, tgid) tp_assign(pid, pid) tp_assign(sig, sig)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_ioprio_set +SC_TRACE_EVENT(sys_ioprio_set, + TP_PROTO(int which, int who, int ioprio), + TP_ARGS(which, who, ioprio), + TP_STRUCT__entry(__field(int, which) __field(int, who) __field(int, ioprio)), + TP_fast_assign(tp_assign(which, which) tp_assign(who, who) tp_assign(ioprio, ioprio)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_dup3 +SC_TRACE_EVENT(sys_dup3, + TP_PROTO(unsigned int oldfd, unsigned int newfd, int flags), + TP_ARGS(oldfd, newfd, flags), + TP_STRUCT__entry(__field(unsigned int, oldfd) __field(unsigned int, newfd) __field(int, flags)), + TP_fast_assign(tp_assign(oldfd, oldfd) tp_assign(newfd, newfd) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_socket +SC_TRACE_EVENT(sys_socket, + TP_PROTO(int family, int type, int protocol), + TP_ARGS(family, type, protocol), + TP_STRUCT__entry(__field(int, family) __field(int, type) __field(int, protocol)), + TP_fast_assign(tp_assign(family, family) tp_assign(type, type) tp_assign(protocol, protocol)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_ptrace +SC_TRACE_EVENT(sys_ptrace, + TP_PROTO(long request, long pid, unsigned long addr, unsigned long data), + TP_ARGS(request, pid, addr, data), + TP_STRUCT__entry(__field(long, request) __field(long, pid) __field_hex(unsigned long, addr) __field(unsigned long, data)), + TP_fast_assign(tp_assign(request, request) tp_assign(pid, pid) tp_assign(addr, addr) tp_assign(data, data)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_tee +SC_TRACE_EVENT(sys_tee, + TP_PROTO(int fdin, int fdout, size_t len, unsigned int flags), + TP_ARGS(fdin, fdout, len, flags), + TP_STRUCT__entry(__field(int, fdin) __field(int, fdout) __field(size_t, len) __field(unsigned int, flags)), + TP_fast_assign(tp_assign(fdin, fdin) tp_assign(fdout, fdout) tp_assign(len, len) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_mremap +SC_TRACE_EVENT(sys_mremap, + TP_PROTO(unsigned long addr, unsigned long old_len, unsigned long new_len, unsigned long flags, unsigned long new_addr), + TP_ARGS(addr, old_len, new_len, flags, new_addr), + TP_STRUCT__entry(__field_hex(unsigned long, addr) __field(unsigned long, old_len) __field(unsigned long, new_len) __field(unsigned long, flags) __field_hex(unsigned long, new_addr)), + TP_fast_assign(tp_assign(addr, addr) tp_assign(old_len, old_len) tp_assign(new_len, new_len) tp_assign(flags, flags) tp_assign(new_addr, new_addr)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_prctl +SC_TRACE_EVENT(sys_prctl, + TP_PROTO(int option, unsigned long arg2, unsigned long arg3, unsigned long arg4, unsigned long arg5), + TP_ARGS(option, arg2, arg3, arg4, arg5), + TP_STRUCT__entry(__field(int, option) __field(unsigned long, arg2) __field(unsigned long, arg3) __field(unsigned long, arg4) __field(unsigned long, arg5)), + TP_fast_assign(tp_assign(option, option) tp_assign(arg2, arg2) tp_assign(arg3, arg3) tp_assign(arg4, arg4) tp_assign(arg5, arg5)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_remap_file_pages +SC_TRACE_EVENT(sys_remap_file_pages, + TP_PROTO(unsigned long start, unsigned long size, unsigned long prot, unsigned long pgoff, unsigned long flags), + TP_ARGS(start, size, prot, pgoff, flags), + TP_STRUCT__entry(__field(unsigned long, start) __field(unsigned long, size) __field(unsigned long, prot) __field(unsigned long, pgoff) __field(unsigned long, flags)), + TP_fast_assign(tp_assign(start, start) tp_assign(size, size) tp_assign(prot, prot) tp_assign(pgoff, pgoff) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_keyctl +SC_TRACE_EVENT(sys_keyctl, + TP_PROTO(int option, unsigned long arg2, unsigned long arg3, unsigned long arg4, unsigned long arg5), + TP_ARGS(option, arg2, arg3, arg4, arg5), + TP_STRUCT__entry(__field(int, option) __field(unsigned long, arg2) __field(unsigned long, arg3) __field(unsigned long, arg4) __field(unsigned long, arg5)), + TP_fast_assign(tp_assign(option, option) tp_assign(arg2, arg2) tp_assign(arg3, arg3) tp_assign(arg4, arg4) tp_assign(arg5, arg5)), + TP_printk() +) +#endif + +#endif /* _TRACE_SYSCALLS_INTEGERS_H */ + +/* This part must be outside protection */ +#include "../../../probes/define_trace.h" + +#else /* CREATE_SYSCALL_TABLE */ + +#include "powerpc-32-syscalls-3.0.34_integers_override.h" +#include "syscalls_integers_override.h" + +#ifndef OVERRIDE_TABLE_32_sys_restart_syscall +TRACE_SYSCALL_TABLE(syscalls_noargs, sys_restart_syscall, 0, 0) +#endif +#ifndef OVERRIDE_TABLE_32_sys_getpid +TRACE_SYSCALL_TABLE(syscalls_noargs, sys_getpid, 20, 0) +#endif +#ifndef OVERRIDE_TABLE_32_sys_getuid +TRACE_SYSCALL_TABLE(syscalls_noargs, sys_getuid, 24, 0) +#endif +#ifndef OVERRIDE_TABLE_32_sys_pause +TRACE_SYSCALL_TABLE(syscalls_noargs, sys_pause, 29, 0) +#endif +#ifndef OVERRIDE_TABLE_32_sys_sync +TRACE_SYSCALL_TABLE(syscalls_noargs, sys_sync, 36, 0) +#endif +#ifndef OVERRIDE_TABLE_32_sys_getgid +TRACE_SYSCALL_TABLE(syscalls_noargs, sys_getgid, 47, 0) +#endif +#ifndef OVERRIDE_TABLE_32_sys_geteuid +TRACE_SYSCALL_TABLE(syscalls_noargs, sys_geteuid, 49, 0) +#endif +#ifndef OVERRIDE_TABLE_32_sys_getegid +TRACE_SYSCALL_TABLE(syscalls_noargs, sys_getegid, 50, 0) +#endif +#ifndef OVERRIDE_TABLE_32_sys_getppid +TRACE_SYSCALL_TABLE(syscalls_noargs, sys_getppid, 64, 0) +#endif +#ifndef OVERRIDE_TABLE_32_sys_getpgrp +TRACE_SYSCALL_TABLE(syscalls_noargs, sys_getpgrp, 65, 0) +#endif +#ifndef OVERRIDE_TABLE_32_sys_setsid +TRACE_SYSCALL_TABLE(syscalls_noargs, sys_setsid, 66, 0) +#endif +#ifndef OVERRIDE_TABLE_32_sys_sgetmask +TRACE_SYSCALL_TABLE(syscalls_noargs, sys_sgetmask, 68, 0) +#endif +#ifndef OVERRIDE_TABLE_32_sys_vhangup +TRACE_SYSCALL_TABLE(syscalls_noargs, sys_vhangup, 111, 0) +#endif +#ifndef OVERRIDE_TABLE_32_sys_munlockall +TRACE_SYSCALL_TABLE(syscalls_noargs, sys_munlockall, 153, 0) +#endif +#ifndef OVERRIDE_TABLE_32_sys_sched_yield +TRACE_SYSCALL_TABLE(syscalls_noargs, sys_sched_yield, 158, 0) +#endif +#ifndef OVERRIDE_TABLE_32_sys_gettid +TRACE_SYSCALL_TABLE(syscalls_noargs, sys_gettid, 207, 0) +#endif +#ifndef OVERRIDE_TABLE_32_sys_inotify_init +TRACE_SYSCALL_TABLE(syscalls_noargs, sys_inotify_init, 275, 0) +#endif +#ifndef OVERRIDE_TABLE_32_sys_exit +TRACE_SYSCALL_TABLE(sys_exit, sys_exit, 1, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_close +TRACE_SYSCALL_TABLE(sys_close, sys_close, 6, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_lseek +TRACE_SYSCALL_TABLE(sys_lseek, sys_lseek, 19, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_setuid +TRACE_SYSCALL_TABLE(sys_setuid, sys_setuid, 23, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_ptrace +TRACE_SYSCALL_TABLE(sys_ptrace, sys_ptrace, 26, 4) +#endif +#ifndef OVERRIDE_TABLE_32_sys_alarm +TRACE_SYSCALL_TABLE(sys_alarm, sys_alarm, 27, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_nice +TRACE_SYSCALL_TABLE(sys_nice, sys_nice, 34, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_kill +TRACE_SYSCALL_TABLE(sys_kill, sys_kill, 37, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_dup +TRACE_SYSCALL_TABLE(sys_dup, sys_dup, 41, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_brk +TRACE_SYSCALL_TABLE(sys_brk, sys_brk, 45, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_setgid +TRACE_SYSCALL_TABLE(sys_setgid, sys_setgid, 46, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_signal +TRACE_SYSCALL_TABLE(sys_signal, sys_signal, 48, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_ioctl +TRACE_SYSCALL_TABLE(sys_ioctl, sys_ioctl, 54, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_fcntl +TRACE_SYSCALL_TABLE(sys_fcntl, sys_fcntl, 55, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_setpgid +TRACE_SYSCALL_TABLE(sys_setpgid, sys_setpgid, 57, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_umask +TRACE_SYSCALL_TABLE(sys_umask, sys_umask, 60, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_dup2 +TRACE_SYSCALL_TABLE(sys_dup2, sys_dup2, 63, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_ssetmask +TRACE_SYSCALL_TABLE(sys_ssetmask, sys_ssetmask, 69, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_setreuid +TRACE_SYSCALL_TABLE(sys_setreuid, sys_setreuid, 70, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_setregid +TRACE_SYSCALL_TABLE(sys_setregid, sys_setregid, 71, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_munmap +TRACE_SYSCALL_TABLE(sys_munmap, sys_munmap, 91, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_ftruncate +TRACE_SYSCALL_TABLE(sys_ftruncate, sys_ftruncate, 93, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_fchmod +TRACE_SYSCALL_TABLE(sys_fchmod, sys_fchmod, 94, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_fchown +TRACE_SYSCALL_TABLE(sys_fchown, sys_fchown, 95, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_getpriority +TRACE_SYSCALL_TABLE(sys_getpriority, sys_getpriority, 96, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_setpriority +TRACE_SYSCALL_TABLE(sys_setpriority, sys_setpriority, 97, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_fsync +TRACE_SYSCALL_TABLE(sys_fsync, sys_fsync, 118, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_mprotect +TRACE_SYSCALL_TABLE(sys_mprotect, sys_mprotect, 125, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_getpgid +TRACE_SYSCALL_TABLE(sys_getpgid, sys_getpgid, 132, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_fchdir +TRACE_SYSCALL_TABLE(sys_fchdir, sys_fchdir, 133, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_bdflush +TRACE_SYSCALL_TABLE(sys_bdflush, sys_bdflush, 134, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_sysfs +TRACE_SYSCALL_TABLE(sys_sysfs, sys_sysfs, 135, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_personality +TRACE_SYSCALL_TABLE(sys_personality, sys_personality, 136, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_setfsuid +TRACE_SYSCALL_TABLE(sys_setfsuid, sys_setfsuid, 138, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_setfsgid +TRACE_SYSCALL_TABLE(sys_setfsgid, sys_setfsgid, 139, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_flock +TRACE_SYSCALL_TABLE(sys_flock, sys_flock, 143, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_msync +TRACE_SYSCALL_TABLE(sys_msync, sys_msync, 144, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_getsid +TRACE_SYSCALL_TABLE(sys_getsid, sys_getsid, 147, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_fdatasync +TRACE_SYSCALL_TABLE(sys_fdatasync, sys_fdatasync, 148, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_mlock +TRACE_SYSCALL_TABLE(sys_mlock, sys_mlock, 150, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_munlock +TRACE_SYSCALL_TABLE(sys_munlock, sys_munlock, 151, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_mlockall +TRACE_SYSCALL_TABLE(sys_mlockall, sys_mlockall, 152, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_sched_getscheduler +TRACE_SYSCALL_TABLE(sys_sched_getscheduler, sys_sched_getscheduler, 157, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_sched_get_priority_max +TRACE_SYSCALL_TABLE(sys_sched_get_priority_max, sys_sched_get_priority_max, 159, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_sched_get_priority_min +TRACE_SYSCALL_TABLE(sys_sched_get_priority_min, sys_sched_get_priority_min, 160, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_mremap +TRACE_SYSCALL_TABLE(sys_mremap, sys_mremap, 163, 5) +#endif +#ifndef OVERRIDE_TABLE_32_sys_setresuid +TRACE_SYSCALL_TABLE(sys_setresuid, sys_setresuid, 164, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_setresgid +TRACE_SYSCALL_TABLE(sys_setresgid, sys_setresgid, 169, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_prctl +TRACE_SYSCALL_TABLE(sys_prctl, sys_prctl, 171, 5) +#endif +#ifndef OVERRIDE_TABLE_32_sys_fcntl64 +TRACE_SYSCALL_TABLE(sys_fcntl64, sys_fcntl64, 204, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_madvise +TRACE_SYSCALL_TABLE(sys_madvise, sys_madvise, 205, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_tkill +TRACE_SYSCALL_TABLE(sys_tkill, sys_tkill, 208, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_io_destroy +TRACE_SYSCALL_TABLE(sys_io_destroy, sys_io_destroy, 228, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_exit_group +TRACE_SYSCALL_TABLE(sys_exit_group, sys_exit_group, 234, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_epoll_create +TRACE_SYSCALL_TABLE(sys_epoll_create, sys_epoll_create, 236, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_remap_file_pages +TRACE_SYSCALL_TABLE(sys_remap_file_pages, sys_remap_file_pages, 239, 5) +#endif +#ifndef OVERRIDE_TABLE_32_sys_timer_getoverrun +TRACE_SYSCALL_TABLE(sys_timer_getoverrun, sys_timer_getoverrun, 243, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_timer_delete +TRACE_SYSCALL_TABLE(sys_timer_delete, sys_timer_delete, 244, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_tgkill +TRACE_SYSCALL_TABLE(sys_tgkill, sys_tgkill, 250, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_keyctl +TRACE_SYSCALL_TABLE(sys_keyctl, sys_keyctl, 271, 5) +#endif +#ifndef OVERRIDE_TABLE_32_sys_ioprio_set +TRACE_SYSCALL_TABLE(sys_ioprio_set, sys_ioprio_set, 273, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_ioprio_get +TRACE_SYSCALL_TABLE(sys_ioprio_get, sys_ioprio_get, 274, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_inotify_rm_watch +TRACE_SYSCALL_TABLE(sys_inotify_rm_watch, sys_inotify_rm_watch, 277, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_unshare +TRACE_SYSCALL_TABLE(sys_unshare, sys_unshare, 282, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_tee +TRACE_SYSCALL_TABLE(sys_tee, sys_tee, 284, 4) +#endif +#ifndef OVERRIDE_TABLE_32_sys_timerfd_create +TRACE_SYSCALL_TABLE(sys_timerfd_create, sys_timerfd_create, 306, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_eventfd +TRACE_SYSCALL_TABLE(sys_eventfd, sys_eventfd, 307, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_eventfd2 +TRACE_SYSCALL_TABLE(sys_eventfd2, sys_eventfd2, 314, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_epoll_create1 +TRACE_SYSCALL_TABLE(sys_epoll_create1, sys_epoll_create1, 315, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_dup3 +TRACE_SYSCALL_TABLE(sys_dup3, sys_dup3, 316, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_inotify_init1 +TRACE_SYSCALL_TABLE(sys_inotify_init1, sys_inotify_init1, 318, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_socket +TRACE_SYSCALL_TABLE(sys_socket, sys_socket, 326, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_listen +TRACE_SYSCALL_TABLE(sys_listen, sys_listen, 329, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_shutdown +TRACE_SYSCALL_TABLE(sys_shutdown, sys_shutdown, 338, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_syncfs +TRACE_SYSCALL_TABLE(sys_syncfs, sys_syncfs, 348, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_setns +TRACE_SYSCALL_TABLE(sys_setns, sys_setns, 350, 2) +#endif + +#endif /* CREATE_SYSCALL_TABLE */ --- linux-3.11.0.orig/ubuntu/lttng-modules/instrumentation/syscalls/headers/syscalls_integers.h +++ linux-3.11.0/ubuntu/lttng-modules/instrumentation/syscalls/headers/syscalls_integers.h @@ -0,0 +1,15 @@ +#ifdef CONFIG_X86_64 +#include "x86-64-syscalls-3.10.0-rc7_integers.h" +#endif + +#ifdef CONFIG_X86_32 +#include "x86-32-syscalls-3.1.0-rc6_integers.h" +#endif + +#ifdef CONFIG_ARM +#include "arm-32-syscalls-3.4.25_integers.h" +#endif + +#ifdef CONFIG_PPC +#include "powerpc-32-syscalls-3.0.34_integers.h" +#endif --- linux-3.11.0.orig/ubuntu/lttng-modules/instrumentation/syscalls/headers/arm-32-syscalls-3.4.25_pointers_override.h +++ linux-3.11.0/ubuntu/lttng-modules/instrumentation/syscalls/headers/arm-32-syscalls-3.4.25_pointers_override.h @@ -0,0 +1,39 @@ + +#define OVERRIDE_TABLE_32_sys_mmap2 + + +#ifndef CREATE_SYSCALL_TABLE + +SC_TRACE_EVENT(sys_mmap2, + TP_PROTO(void *addr, size_t len, int prot, + int flags, int fd, off_t pgoff), + TP_ARGS(addr, len, prot, flags, fd, pgoff), + TP_STRUCT__entry( + __field_hex(void *, addr) + __field(size_t, len) + __field(int, prot) + __field(int, flags) + __field(int, fd) + __field(off_t, pgoff)), + TP_fast_assign( + tp_assign(addr, addr) + tp_assign(len, len) + tp_assign(prot, prot) + tp_assign(flags, flags) + tp_assign(fd, fd) + tp_assign(pgoff, pgoff)), + TP_printk() +) + +#else /* CREATE_SYSCALL_TABLE */ + +#define OVERRIDE_TABLE_32_sys_execve +TRACE_SYSCALL_TABLE(sys_execve, sys_execve, 11, 3) +#define OVERRIDE_TABLE_32_sys_clone +TRACE_SYSCALL_TABLE(sys_clone, sys_clone, 120, 5) +#define OVERRIDE_TABLE_32_sys_mmap2 +TRACE_SYSCALL_TABLE(sys_mmap2, sys_mmap2, 192, 6) + +#endif /* CREATE_SYSCALL_TABLE */ + + --- linux-3.11.0.orig/ubuntu/lttng-modules/instrumentation/syscalls/headers/x86-64-syscalls-3.10.0-rc7_pointers.h +++ linux-3.11.0/ubuntu/lttng-modules/instrumentation/syscalls/headers/x86-64-syscalls-3.10.0-rc7_pointers.h @@ -0,0 +1,2304 @@ +/* THIS FILE IS AUTO-GENERATED. DO NOT EDIT */ +#ifndef CREATE_SYSCALL_TABLE + +#if !defined(_TRACE_SYSCALLS_POINTERS_H) || defined(TRACE_HEADER_MULTI_READ) +#define _TRACE_SYSCALLS_POINTERS_H + +#include +#include +#include "x86-64-syscalls-3.10.0-rc7_pointers_override.h" +#include "syscalls_pointers_override.h" + +#ifndef OVERRIDE_64_sys_pipe +SC_TRACE_EVENT(sys_pipe, + TP_PROTO(int * fildes), + TP_ARGS(fildes), + TP_STRUCT__entry(__field_hex(int *, fildes)), + TP_fast_assign(tp_assign(fildes, fildes)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_newuname +SC_TRACE_EVENT(sys_newuname, + TP_PROTO(struct new_utsname * name), + TP_ARGS(name), + TP_STRUCT__entry(__field_hex(struct new_utsname *, name)), + TP_fast_assign(tp_assign(name, name)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_shmdt +SC_TRACE_EVENT(sys_shmdt, + TP_PROTO(char * shmaddr), + TP_ARGS(shmaddr), + TP_STRUCT__entry(__field_hex(char *, shmaddr)), + TP_fast_assign(tp_assign(shmaddr, shmaddr)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_chdir +SC_TRACE_EVENT(sys_chdir, + TP_PROTO(const char * filename), + TP_ARGS(filename), + TP_STRUCT__entry(__string_from_user(filename, filename)), + TP_fast_assign(tp_copy_string_from_user(filename, filename)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_rmdir +SC_TRACE_EVENT(sys_rmdir, + TP_PROTO(const char * pathname), + TP_ARGS(pathname), + TP_STRUCT__entry(__string_from_user(pathname, pathname)), + TP_fast_assign(tp_copy_string_from_user(pathname, pathname)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_unlink +SC_TRACE_EVENT(sys_unlink, + TP_PROTO(const char * pathname), + TP_ARGS(pathname), + TP_STRUCT__entry(__string_from_user(pathname, pathname)), + TP_fast_assign(tp_copy_string_from_user(pathname, pathname)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_sysinfo +SC_TRACE_EVENT(sys_sysinfo, + TP_PROTO(struct sysinfo * info), + TP_ARGS(info), + TP_STRUCT__entry(__field_hex(struct sysinfo *, info)), + TP_fast_assign(tp_assign(info, info)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_times +SC_TRACE_EVENT(sys_times, + TP_PROTO(struct tms * tbuf), + TP_ARGS(tbuf), + TP_STRUCT__entry(__field_hex(struct tms *, tbuf)), + TP_fast_assign(tp_assign(tbuf, tbuf)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_sysctl +SC_TRACE_EVENT(sys_sysctl, + TP_PROTO(struct __sysctl_args * args), + TP_ARGS(args), + TP_STRUCT__entry(__field_hex(struct __sysctl_args *, args)), + TP_fast_assign(tp_assign(args, args)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_adjtimex +SC_TRACE_EVENT(sys_adjtimex, + TP_PROTO(struct timex * txc_p), + TP_ARGS(txc_p), + TP_STRUCT__entry(__field_hex(struct timex *, txc_p)), + TP_fast_assign(tp_assign(txc_p, txc_p)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_chroot +SC_TRACE_EVENT(sys_chroot, + TP_PROTO(const char * filename), + TP_ARGS(filename), + TP_STRUCT__entry(__string_from_user(filename, filename)), + TP_fast_assign(tp_copy_string_from_user(filename, filename)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_acct +SC_TRACE_EVENT(sys_acct, + TP_PROTO(const char * name), + TP_ARGS(name), + TP_STRUCT__entry(__string_from_user(name, name)), + TP_fast_assign(tp_copy_string_from_user(name, name)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_swapoff +SC_TRACE_EVENT(sys_swapoff, + TP_PROTO(const char * specialfile), + TP_ARGS(specialfile), + TP_STRUCT__entry(__string_from_user(specialfile, specialfile)), + TP_fast_assign(tp_copy_string_from_user(specialfile, specialfile)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_time +SC_TRACE_EVENT(sys_time, + TP_PROTO(time_t * tloc), + TP_ARGS(tloc), + TP_STRUCT__entry(__field_hex(time_t *, tloc)), + TP_fast_assign(tp_assign(tloc, tloc)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_set_tid_address +SC_TRACE_EVENT(sys_set_tid_address, + TP_PROTO(int * tidptr), + TP_ARGS(tidptr), + TP_STRUCT__entry(__field_hex(int *, tidptr)), + TP_fast_assign(tp_assign(tidptr, tidptr)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_mq_unlink +SC_TRACE_EVENT(sys_mq_unlink, + TP_PROTO(const char * u_name), + TP_ARGS(u_name), + TP_STRUCT__entry(__string_from_user(u_name, u_name)), + TP_fast_assign(tp_copy_string_from_user(u_name, u_name)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_newstat +SC_TRACE_EVENT(sys_newstat, + TP_PROTO(const char * filename, struct stat * statbuf), + TP_ARGS(filename, statbuf), + TP_STRUCT__entry(__string_from_user(filename, filename) __field_hex(struct stat *, statbuf)), + TP_fast_assign(tp_copy_string_from_user(filename, filename) tp_assign(statbuf, statbuf)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_newfstat +SC_TRACE_EVENT(sys_newfstat, + TP_PROTO(unsigned int fd, struct stat * statbuf), + TP_ARGS(fd, statbuf), + TP_STRUCT__entry(__field(unsigned int, fd) __field_hex(struct stat *, statbuf)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(statbuf, statbuf)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_newlstat +SC_TRACE_EVENT(sys_newlstat, + TP_PROTO(const char * filename, struct stat * statbuf), + TP_ARGS(filename, statbuf), + TP_STRUCT__entry(__string_from_user(filename, filename) __field_hex(struct stat *, statbuf)), + TP_fast_assign(tp_copy_string_from_user(filename, filename) tp_assign(statbuf, statbuf)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_access +SC_TRACE_EVENT(sys_access, + TP_PROTO(const char * filename, int mode), + TP_ARGS(filename, mode), + TP_STRUCT__entry(__string_from_user(filename, filename) __field(int, mode)), + TP_fast_assign(tp_copy_string_from_user(filename, filename) tp_assign(mode, mode)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_nanosleep +SC_TRACE_EVENT(sys_nanosleep, + TP_PROTO(struct timespec * rqtp, struct timespec * rmtp), + TP_ARGS(rqtp, rmtp), + TP_STRUCT__entry(__field_hex(struct timespec *, rqtp) __field_hex(struct timespec *, rmtp)), + TP_fast_assign(tp_assign(rqtp, rqtp) tp_assign(rmtp, rmtp)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_getitimer +SC_TRACE_EVENT(sys_getitimer, + TP_PROTO(int which, struct itimerval * value), + TP_ARGS(which, value), + TP_STRUCT__entry(__field(int, which) __field_hex(struct itimerval *, value)), + TP_fast_assign(tp_assign(which, which) tp_assign(value, value)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_truncate +SC_TRACE_EVENT(sys_truncate, + TP_PROTO(const char * path, long length), + TP_ARGS(path, length), + TP_STRUCT__entry(__string_from_user(path, path) __field(long, length)), + TP_fast_assign(tp_copy_string_from_user(path, path) tp_assign(length, length)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_getcwd +SC_TRACE_EVENT(sys_getcwd, + TP_PROTO(char * buf, unsigned long size), + TP_ARGS(buf, size), + TP_STRUCT__entry(__field_hex(char *, buf) __field(unsigned long, size)), + TP_fast_assign(tp_assign(buf, buf) tp_assign(size, size)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_rename +SC_TRACE_EVENT(sys_rename, + TP_PROTO(const char * oldname, const char * newname), + TP_ARGS(oldname, newname), + TP_STRUCT__entry(__string_from_user(oldname, oldname) __string_from_user(newname, newname)), + TP_fast_assign(tp_copy_string_from_user(oldname, oldname) tp_copy_string_from_user(newname, newname)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_mkdir +SC_TRACE_EVENT(sys_mkdir, + TP_PROTO(const char * pathname, umode_t mode), + TP_ARGS(pathname, mode), + TP_STRUCT__entry(__string_from_user(pathname, pathname) __field(umode_t, mode)), + TP_fast_assign(tp_copy_string_from_user(pathname, pathname) tp_assign(mode, mode)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_creat +SC_TRACE_EVENT(sys_creat, + TP_PROTO(const char * pathname, umode_t mode), + TP_ARGS(pathname, mode), + TP_STRUCT__entry(__string_from_user(pathname, pathname) __field(umode_t, mode)), + TP_fast_assign(tp_copy_string_from_user(pathname, pathname) tp_assign(mode, mode)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_link +SC_TRACE_EVENT(sys_link, + TP_PROTO(const char * oldname, const char * newname), + TP_ARGS(oldname, newname), + TP_STRUCT__entry(__string_from_user(oldname, oldname) __string_from_user(newname, newname)), + TP_fast_assign(tp_copy_string_from_user(oldname, oldname) tp_copy_string_from_user(newname, newname)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_symlink +SC_TRACE_EVENT(sys_symlink, + TP_PROTO(const char * oldname, const char * newname), + TP_ARGS(oldname, newname), + TP_STRUCT__entry(__string_from_user(oldname, oldname) __string_from_user(newname, newname)), + TP_fast_assign(tp_copy_string_from_user(oldname, oldname) tp_copy_string_from_user(newname, newname)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_chmod +SC_TRACE_EVENT(sys_chmod, + TP_PROTO(const char * filename, umode_t mode), + TP_ARGS(filename, mode), + TP_STRUCT__entry(__string_from_user(filename, filename) __field(umode_t, mode)), + TP_fast_assign(tp_copy_string_from_user(filename, filename) tp_assign(mode, mode)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_gettimeofday +SC_TRACE_EVENT(sys_gettimeofday, + TP_PROTO(struct timeval * tv, struct timezone * tz), + TP_ARGS(tv, tz), + TP_STRUCT__entry(__field_hex(struct timeval *, tv) __field_hex(struct timezone *, tz)), + TP_fast_assign(tp_assign(tv, tv) tp_assign(tz, tz)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_getrlimit +SC_TRACE_EVENT(sys_getrlimit, + TP_PROTO(unsigned int resource, struct rlimit * rlim), + TP_ARGS(resource, rlim), + TP_STRUCT__entry(__field(unsigned int, resource) __field_hex(struct rlimit *, rlim)), + TP_fast_assign(tp_assign(resource, resource) tp_assign(rlim, rlim)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_getrusage +SC_TRACE_EVENT(sys_getrusage, + TP_PROTO(int who, struct rusage * ru), + TP_ARGS(who, ru), + TP_STRUCT__entry(__field(int, who) __field_hex(struct rusage *, ru)), + TP_fast_assign(tp_assign(who, who) tp_assign(ru, ru)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_getgroups +SC_TRACE_EVENT(sys_getgroups, + TP_PROTO(int gidsetsize, gid_t * grouplist), + TP_ARGS(gidsetsize, grouplist), + TP_STRUCT__entry(__field(int, gidsetsize) __field_hex(gid_t *, grouplist)), + TP_fast_assign(tp_assign(gidsetsize, gidsetsize) tp_assign(grouplist, grouplist)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_setgroups +SC_TRACE_EVENT(sys_setgroups, + TP_PROTO(int gidsetsize, gid_t * grouplist), + TP_ARGS(gidsetsize, grouplist), + TP_STRUCT__entry(__field(int, gidsetsize) __field_hex(gid_t *, grouplist)), + TP_fast_assign(tp_assign(gidsetsize, gidsetsize) tp_assign(grouplist, grouplist)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_rt_sigpending +SC_TRACE_EVENT(sys_rt_sigpending, + TP_PROTO(sigset_t * uset, size_t sigsetsize), + TP_ARGS(uset, sigsetsize), + TP_STRUCT__entry(__field_hex(sigset_t *, uset) __field(size_t, sigsetsize)), + TP_fast_assign(tp_assign(uset, uset) tp_assign(sigsetsize, sigsetsize)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_rt_sigsuspend +SC_TRACE_EVENT(sys_rt_sigsuspend, + TP_PROTO(sigset_t * unewset, size_t sigsetsize), + TP_ARGS(unewset, sigsetsize), + TP_STRUCT__entry(__field_hex(sigset_t *, unewset) __field(size_t, sigsetsize)), + TP_fast_assign(tp_assign(unewset, unewset) tp_assign(sigsetsize, sigsetsize)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_sigaltstack +SC_TRACE_EVENT(sys_sigaltstack, + TP_PROTO(const stack_t * uss, stack_t * uoss), + TP_ARGS(uss, uoss), + TP_STRUCT__entry(__field_hex(const stack_t *, uss) __field_hex(stack_t *, uoss)), + TP_fast_assign(tp_assign(uss, uss) tp_assign(uoss, uoss)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_utime +SC_TRACE_EVENT(sys_utime, + TP_PROTO(char * filename, struct utimbuf * times), + TP_ARGS(filename, times), + TP_STRUCT__entry(__string_from_user(filename, filename) __field_hex(struct utimbuf *, times)), + TP_fast_assign(tp_copy_string_from_user(filename, filename) tp_assign(times, times)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_ustat +SC_TRACE_EVENT(sys_ustat, + TP_PROTO(unsigned dev, struct ustat * ubuf), + TP_ARGS(dev, ubuf), + TP_STRUCT__entry(__field(unsigned, dev) __field_hex(struct ustat *, ubuf)), + TP_fast_assign(tp_assign(dev, dev) tp_assign(ubuf, ubuf)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_statfs +SC_TRACE_EVENT(sys_statfs, + TP_PROTO(const char * pathname, struct statfs * buf), + TP_ARGS(pathname, buf), + TP_STRUCT__entry(__string_from_user(pathname, pathname) __field_hex(struct statfs *, buf)), + TP_fast_assign(tp_copy_string_from_user(pathname, pathname) tp_assign(buf, buf)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_fstatfs +SC_TRACE_EVENT(sys_fstatfs, + TP_PROTO(unsigned int fd, struct statfs * buf), + TP_ARGS(fd, buf), + TP_STRUCT__entry(__field(unsigned int, fd) __field_hex(struct statfs *, buf)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(buf, buf)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_sched_setparam +SC_TRACE_EVENT(sys_sched_setparam, + TP_PROTO(pid_t pid, struct sched_param * param), + TP_ARGS(pid, param), + TP_STRUCT__entry(__field(pid_t, pid) __field_hex(struct sched_param *, param)), + TP_fast_assign(tp_assign(pid, pid) tp_assign(param, param)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_sched_getparam +SC_TRACE_EVENT(sys_sched_getparam, + TP_PROTO(pid_t pid, struct sched_param * param), + TP_ARGS(pid, param), + TP_STRUCT__entry(__field(pid_t, pid) __field_hex(struct sched_param *, param)), + TP_fast_assign(tp_assign(pid, pid) tp_assign(param, param)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_sched_rr_get_interval +SC_TRACE_EVENT(sys_sched_rr_get_interval, + TP_PROTO(pid_t pid, struct timespec * interval), + TP_ARGS(pid, interval), + TP_STRUCT__entry(__field(pid_t, pid) __field_hex(struct timespec *, interval)), + TP_fast_assign(tp_assign(pid, pid) tp_assign(interval, interval)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_pivot_root +SC_TRACE_EVENT(sys_pivot_root, + TP_PROTO(const char * new_root, const char * put_old), + TP_ARGS(new_root, put_old), + TP_STRUCT__entry(__string_from_user(new_root, new_root) __string_from_user(put_old, put_old)), + TP_fast_assign(tp_copy_string_from_user(new_root, new_root) tp_copy_string_from_user(put_old, put_old)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_setrlimit +SC_TRACE_EVENT(sys_setrlimit, + TP_PROTO(unsigned int resource, struct rlimit * rlim), + TP_ARGS(resource, rlim), + TP_STRUCT__entry(__field(unsigned int, resource) __field_hex(struct rlimit *, rlim)), + TP_fast_assign(tp_assign(resource, resource) tp_assign(rlim, rlim)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_settimeofday +SC_TRACE_EVENT(sys_settimeofday, + TP_PROTO(struct timeval * tv, struct timezone * tz), + TP_ARGS(tv, tz), + TP_STRUCT__entry(__field_hex(struct timeval *, tv) __field_hex(struct timezone *, tz)), + TP_fast_assign(tp_assign(tv, tv) tp_assign(tz, tz)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_umount +SC_TRACE_EVENT(sys_umount, + TP_PROTO(char * name, int flags), + TP_ARGS(name, flags), + TP_STRUCT__entry(__string_from_user(name, name) __field(int, flags)), + TP_fast_assign(tp_copy_string_from_user(name, name) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_swapon +SC_TRACE_EVENT(sys_swapon, + TP_PROTO(const char * specialfile, int swap_flags), + TP_ARGS(specialfile, swap_flags), + TP_STRUCT__entry(__string_from_user(specialfile, specialfile) __field(int, swap_flags)), + TP_fast_assign(tp_copy_string_from_user(specialfile, specialfile) tp_assign(swap_flags, swap_flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_sethostname +SC_TRACE_EVENT(sys_sethostname, + TP_PROTO(char * name, int len), + TP_ARGS(name, len), + TP_STRUCT__entry(__string_from_user(name, name) __field(int, len)), + TP_fast_assign(tp_copy_string_from_user(name, name) tp_assign(len, len)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_setdomainname +SC_TRACE_EVENT(sys_setdomainname, + TP_PROTO(char * name, int len), + TP_ARGS(name, len), + TP_STRUCT__entry(__string_from_user(name, name) __field(int, len)), + TP_fast_assign(tp_copy_string_from_user(name, name) tp_assign(len, len)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_delete_module +SC_TRACE_EVENT(sys_delete_module, + TP_PROTO(const char * name_user, unsigned int flags), + TP_ARGS(name_user, flags), + TP_STRUCT__entry(__string_from_user(name_user, name_user) __field(unsigned int, flags)), + TP_fast_assign(tp_copy_string_from_user(name_user, name_user) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_removexattr +SC_TRACE_EVENT(sys_removexattr, + TP_PROTO(const char * pathname, const char * name), + TP_ARGS(pathname, name), + TP_STRUCT__entry(__string_from_user(pathname, pathname) __string_from_user(name, name)), + TP_fast_assign(tp_copy_string_from_user(pathname, pathname) tp_copy_string_from_user(name, name)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_lremovexattr +SC_TRACE_EVENT(sys_lremovexattr, + TP_PROTO(const char * pathname, const char * name), + TP_ARGS(pathname, name), + TP_STRUCT__entry(__string_from_user(pathname, pathname) __string_from_user(name, name)), + TP_fast_assign(tp_copy_string_from_user(pathname, pathname) tp_copy_string_from_user(name, name)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_fremovexattr +SC_TRACE_EVENT(sys_fremovexattr, + TP_PROTO(int fd, const char * name), + TP_ARGS(fd, name), + TP_STRUCT__entry(__field(int, fd) __string_from_user(name, name)), + TP_fast_assign(tp_assign(fd, fd) tp_copy_string_from_user(name, name)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_io_setup +SC_TRACE_EVENT(sys_io_setup, + TP_PROTO(unsigned nr_events, aio_context_t * ctxp), + TP_ARGS(nr_events, ctxp), + TP_STRUCT__entry(__field(unsigned, nr_events) __field_hex(aio_context_t *, ctxp)), + TP_fast_assign(tp_assign(nr_events, nr_events) tp_assign(ctxp, ctxp)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_timer_gettime +SC_TRACE_EVENT(sys_timer_gettime, + TP_PROTO(timer_t timer_id, struct itimerspec * setting), + TP_ARGS(timer_id, setting), + TP_STRUCT__entry(__field(timer_t, timer_id) __field_hex(struct itimerspec *, setting)), + TP_fast_assign(tp_assign(timer_id, timer_id) tp_assign(setting, setting)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_clock_settime +SC_TRACE_EVENT(sys_clock_settime, + TP_PROTO(const clockid_t which_clock, const struct timespec * tp), + TP_ARGS(which_clock, tp), + TP_STRUCT__entry(__field(const clockid_t, which_clock) __field_hex(const struct timespec *, tp)), + TP_fast_assign(tp_assign(which_clock, which_clock) tp_assign(tp, tp)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_clock_gettime +SC_TRACE_EVENT(sys_clock_gettime, + TP_PROTO(const clockid_t which_clock, struct timespec * tp), + TP_ARGS(which_clock, tp), + TP_STRUCT__entry(__field(const clockid_t, which_clock) __field_hex(struct timespec *, tp)), + TP_fast_assign(tp_assign(which_clock, which_clock) tp_assign(tp, tp)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_clock_getres +SC_TRACE_EVENT(sys_clock_getres, + TP_PROTO(const clockid_t which_clock, struct timespec * tp), + TP_ARGS(which_clock, tp), + TP_STRUCT__entry(__field(const clockid_t, which_clock) __field_hex(struct timespec *, tp)), + TP_fast_assign(tp_assign(which_clock, which_clock) tp_assign(tp, tp)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_utimes +SC_TRACE_EVENT(sys_utimes, + TP_PROTO(char * filename, struct timeval * utimes), + TP_ARGS(filename, utimes), + TP_STRUCT__entry(__string_from_user(filename, filename) __field_hex(struct timeval *, utimes)), + TP_fast_assign(tp_copy_string_from_user(filename, filename) tp_assign(utimes, utimes)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_mq_notify +SC_TRACE_EVENT(sys_mq_notify, + TP_PROTO(mqd_t mqdes, const struct sigevent * u_notification), + TP_ARGS(mqdes, u_notification), + TP_STRUCT__entry(__field(mqd_t, mqdes) __field_hex(const struct sigevent *, u_notification)), + TP_fast_assign(tp_assign(mqdes, mqdes) tp_assign(u_notification, u_notification)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_set_robust_list +SC_TRACE_EVENT(sys_set_robust_list, + TP_PROTO(struct robust_list_head * head, size_t len), + TP_ARGS(head, len), + TP_STRUCT__entry(__field_hex(struct robust_list_head *, head) __field(size_t, len)), + TP_fast_assign(tp_assign(head, head) tp_assign(len, len)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_timerfd_gettime +SC_TRACE_EVENT(sys_timerfd_gettime, + TP_PROTO(int ufd, struct itimerspec * otmr), + TP_ARGS(ufd, otmr), + TP_STRUCT__entry(__field(int, ufd) __field_hex(struct itimerspec *, otmr)), + TP_fast_assign(tp_assign(ufd, ufd) tp_assign(otmr, otmr)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_pipe2 +SC_TRACE_EVENT(sys_pipe2, + TP_PROTO(int * fildes, int flags), + TP_ARGS(fildes, flags), + TP_STRUCT__entry(__field_hex(int *, fildes) __field(int, flags)), + TP_fast_assign(tp_assign(fildes, fildes) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_clock_adjtime +SC_TRACE_EVENT(sys_clock_adjtime, + TP_PROTO(const clockid_t which_clock, struct timex * utx), + TP_ARGS(which_clock, utx), + TP_STRUCT__entry(__field(const clockid_t, which_clock) __field_hex(struct timex *, utx)), + TP_fast_assign(tp_assign(which_clock, which_clock) tp_assign(utx, utx)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_read +SC_TRACE_EVENT(sys_read, + TP_PROTO(unsigned int fd, char * buf, size_t count), + TP_ARGS(fd, buf, count), + TP_STRUCT__entry(__field(unsigned int, fd) __field_hex(char *, buf) __field(size_t, count)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(buf, buf) tp_assign(count, count)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_write +SC_TRACE_EVENT(sys_write, + TP_PROTO(unsigned int fd, const char * buf, size_t count), + TP_ARGS(fd, buf, count), + TP_STRUCT__entry(__field(unsigned int, fd) __field_hex(const char *, buf) __field(size_t, count)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(buf, buf) tp_assign(count, count)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_open +SC_TRACE_EVENT(sys_open, + TP_PROTO(const char * filename, int flags, umode_t mode), + TP_ARGS(filename, flags, mode), + TP_STRUCT__entry(__string_from_user(filename, filename) __field(int, flags) __field(umode_t, mode)), + TP_fast_assign(tp_copy_string_from_user(filename, filename) tp_assign(flags, flags) tp_assign(mode, mode)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_poll +SC_TRACE_EVENT(sys_poll, + TP_PROTO(struct pollfd * ufds, unsigned int nfds, int timeout_msecs), + TP_ARGS(ufds, nfds, timeout_msecs), + TP_STRUCT__entry(__field_hex(struct pollfd *, ufds) __field(unsigned int, nfds) __field(int, timeout_msecs)), + TP_fast_assign(tp_assign(ufds, ufds) tp_assign(nfds, nfds) tp_assign(timeout_msecs, timeout_msecs)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_readv +SC_TRACE_EVENT(sys_readv, + TP_PROTO(unsigned long fd, const struct iovec * vec, unsigned long vlen), + TP_ARGS(fd, vec, vlen), + TP_STRUCT__entry(__field(unsigned long, fd) __field_hex(const struct iovec *, vec) __field(unsigned long, vlen)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(vec, vec) tp_assign(vlen, vlen)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_writev +SC_TRACE_EVENT(sys_writev, + TP_PROTO(unsigned long fd, const struct iovec * vec, unsigned long vlen), + TP_ARGS(fd, vec, vlen), + TP_STRUCT__entry(__field(unsigned long, fd) __field_hex(const struct iovec *, vec) __field(unsigned long, vlen)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(vec, vec) tp_assign(vlen, vlen)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_mincore +SC_TRACE_EVENT(sys_mincore, + TP_PROTO(unsigned long start, size_t len, unsigned char * vec), + TP_ARGS(start, len, vec), + TP_STRUCT__entry(__field(unsigned long, start) __field(size_t, len) __field_hex(unsigned char *, vec)), + TP_fast_assign(tp_assign(start, start) tp_assign(len, len) tp_assign(vec, vec)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_shmat +SC_TRACE_EVENT(sys_shmat, + TP_PROTO(int shmid, char * shmaddr, int shmflg), + TP_ARGS(shmid, shmaddr, shmflg), + TP_STRUCT__entry(__field(int, shmid) __field_hex(char *, shmaddr) __field(int, shmflg)), + TP_fast_assign(tp_assign(shmid, shmid) tp_assign(shmaddr, shmaddr) tp_assign(shmflg, shmflg)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_shmctl +SC_TRACE_EVENT(sys_shmctl, + TP_PROTO(int shmid, int cmd, struct shmid_ds * buf), + TP_ARGS(shmid, cmd, buf), + TP_STRUCT__entry(__field(int, shmid) __field(int, cmd) __field_hex(struct shmid_ds *, buf)), + TP_fast_assign(tp_assign(shmid, shmid) tp_assign(cmd, cmd) tp_assign(buf, buf)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_setitimer +SC_TRACE_EVENT(sys_setitimer, + TP_PROTO(int which, struct itimerval * value, struct itimerval * ovalue), + TP_ARGS(which, value, ovalue), + TP_STRUCT__entry(__field(int, which) __field_hex(struct itimerval *, value) __field_hex(struct itimerval *, ovalue)), + TP_fast_assign(tp_assign(which, which) tp_assign(value, value) tp_assign(ovalue, ovalue)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_connect +SC_TRACE_EVENT(sys_connect, + TP_PROTO(int fd, struct sockaddr * uservaddr, int addrlen), + TP_ARGS(fd, uservaddr, addrlen), + TP_STRUCT__entry(__field(int, fd) __field_hex(struct sockaddr *, uservaddr) __field_hex(int, addrlen)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(uservaddr, uservaddr) tp_assign(addrlen, addrlen)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_accept +SC_TRACE_EVENT(sys_accept, + TP_PROTO(int fd, struct sockaddr * upeer_sockaddr, int * upeer_addrlen), + TP_ARGS(fd, upeer_sockaddr, upeer_addrlen), + TP_STRUCT__entry(__field(int, fd) __field_hex(struct sockaddr *, upeer_sockaddr) __field_hex(int *, upeer_addrlen)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(upeer_sockaddr, upeer_sockaddr) tp_assign(upeer_addrlen, upeer_addrlen)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_sendmsg +SC_TRACE_EVENT(sys_sendmsg, + TP_PROTO(int fd, struct msghdr * msg, unsigned int flags), + TP_ARGS(fd, msg, flags), + TP_STRUCT__entry(__field(int, fd) __field_hex(struct msghdr *, msg) __field(unsigned int, flags)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(msg, msg) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_recvmsg +SC_TRACE_EVENT(sys_recvmsg, + TP_PROTO(int fd, struct msghdr * msg, unsigned int flags), + TP_ARGS(fd, msg, flags), + TP_STRUCT__entry(__field(int, fd) __field_hex(struct msghdr *, msg) __field(unsigned int, flags)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(msg, msg) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_bind +SC_TRACE_EVENT(sys_bind, + TP_PROTO(int fd, struct sockaddr * umyaddr, int addrlen), + TP_ARGS(fd, umyaddr, addrlen), + TP_STRUCT__entry(__field(int, fd) __field_hex(struct sockaddr *, umyaddr) __field_hex(int, addrlen)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(umyaddr, umyaddr) tp_assign(addrlen, addrlen)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_getsockname +SC_TRACE_EVENT(sys_getsockname, + TP_PROTO(int fd, struct sockaddr * usockaddr, int * usockaddr_len), + TP_ARGS(fd, usockaddr, usockaddr_len), + TP_STRUCT__entry(__field(int, fd) __field_hex(struct sockaddr *, usockaddr) __field_hex(int *, usockaddr_len)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(usockaddr, usockaddr) tp_assign(usockaddr_len, usockaddr_len)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_getpeername +SC_TRACE_EVENT(sys_getpeername, + TP_PROTO(int fd, struct sockaddr * usockaddr, int * usockaddr_len), + TP_ARGS(fd, usockaddr, usockaddr_len), + TP_STRUCT__entry(__field(int, fd) __field_hex(struct sockaddr *, usockaddr) __field_hex(int *, usockaddr_len)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(usockaddr, usockaddr) tp_assign(usockaddr_len, usockaddr_len)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_semop +SC_TRACE_EVENT(sys_semop, + TP_PROTO(int semid, struct sembuf * tsops, unsigned nsops), + TP_ARGS(semid, tsops, nsops), + TP_STRUCT__entry(__field(int, semid) __field_hex(struct sembuf *, tsops) __field(unsigned, nsops)), + TP_fast_assign(tp_assign(semid, semid) tp_assign(tsops, tsops) tp_assign(nsops, nsops)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_msgctl +SC_TRACE_EVENT(sys_msgctl, + TP_PROTO(int msqid, int cmd, struct msqid_ds * buf), + TP_ARGS(msqid, cmd, buf), + TP_STRUCT__entry(__field(int, msqid) __field(int, cmd) __field_hex(struct msqid_ds *, buf)), + TP_fast_assign(tp_assign(msqid, msqid) tp_assign(cmd, cmd) tp_assign(buf, buf)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_getdents +SC_TRACE_EVENT(sys_getdents, + TP_PROTO(unsigned int fd, struct linux_dirent * dirent, unsigned int count), + TP_ARGS(fd, dirent, count), + TP_STRUCT__entry(__field(unsigned int, fd) __field_hex(struct linux_dirent *, dirent) __field(unsigned int, count)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(dirent, dirent) tp_assign(count, count)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_readlink +SC_TRACE_EVENT(sys_readlink, + TP_PROTO(const char * path, char * buf, int bufsiz), + TP_ARGS(path, buf, bufsiz), + TP_STRUCT__entry(__string_from_user(path, path) __field_hex(char *, buf) __field(int, bufsiz)), + TP_fast_assign(tp_copy_string_from_user(path, path) tp_assign(buf, buf) tp_assign(bufsiz, bufsiz)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_chown +SC_TRACE_EVENT(sys_chown, + TP_PROTO(const char * filename, uid_t user, gid_t group), + TP_ARGS(filename, user, group), + TP_STRUCT__entry(__string_from_user(filename, filename) __field(uid_t, user) __field(gid_t, group)), + TP_fast_assign(tp_copy_string_from_user(filename, filename) tp_assign(user, user) tp_assign(group, group)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_lchown +SC_TRACE_EVENT(sys_lchown, + TP_PROTO(const char * filename, uid_t user, gid_t group), + TP_ARGS(filename, user, group), + TP_STRUCT__entry(__string_from_user(filename, filename) __field(uid_t, user) __field(gid_t, group)), + TP_fast_assign(tp_copy_string_from_user(filename, filename) tp_assign(user, user) tp_assign(group, group)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_syslog +SC_TRACE_EVENT(sys_syslog, + TP_PROTO(int type, char * buf, int len), + TP_ARGS(type, buf, len), + TP_STRUCT__entry(__field(int, type) __field_hex(char *, buf) __field(int, len)), + TP_fast_assign(tp_assign(type, type) tp_assign(buf, buf) tp_assign(len, len)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_getresuid +SC_TRACE_EVENT(sys_getresuid, + TP_PROTO(uid_t * ruidp, uid_t * euidp, uid_t * suidp), + TP_ARGS(ruidp, euidp, suidp), + TP_STRUCT__entry(__field_hex(uid_t *, ruidp) __field_hex(uid_t *, euidp) __field_hex(uid_t *, suidp)), + TP_fast_assign(tp_assign(ruidp, ruidp) tp_assign(euidp, euidp) tp_assign(suidp, suidp)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_getresgid +SC_TRACE_EVENT(sys_getresgid, + TP_PROTO(gid_t * rgidp, gid_t * egidp, gid_t * sgidp), + TP_ARGS(rgidp, egidp, sgidp), + TP_STRUCT__entry(__field_hex(gid_t *, rgidp) __field_hex(gid_t *, egidp) __field_hex(gid_t *, sgidp)), + TP_fast_assign(tp_assign(rgidp, rgidp) tp_assign(egidp, egidp) tp_assign(sgidp, sgidp)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_rt_sigqueueinfo +SC_TRACE_EVENT(sys_rt_sigqueueinfo, + TP_PROTO(pid_t pid, int sig, siginfo_t * uinfo), + TP_ARGS(pid, sig, uinfo), + TP_STRUCT__entry(__field(pid_t, pid) __field(int, sig) __field_hex(siginfo_t *, uinfo)), + TP_fast_assign(tp_assign(pid, pid) tp_assign(sig, sig) tp_assign(uinfo, uinfo)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_mknod +SC_TRACE_EVENT(sys_mknod, + TP_PROTO(const char * filename, umode_t mode, unsigned dev), + TP_ARGS(filename, mode, dev), + TP_STRUCT__entry(__string_from_user(filename, filename) __field(umode_t, mode) __field(unsigned, dev)), + TP_fast_assign(tp_copy_string_from_user(filename, filename) tp_assign(mode, mode) tp_assign(dev, dev)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_sched_setscheduler +SC_TRACE_EVENT(sys_sched_setscheduler, + TP_PROTO(pid_t pid, int policy, struct sched_param * param), + TP_ARGS(pid, policy, param), + TP_STRUCT__entry(__field(pid_t, pid) __field(int, policy) __field_hex(struct sched_param *, param)), + TP_fast_assign(tp_assign(pid, pid) tp_assign(policy, policy) tp_assign(param, param)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_init_module +SC_TRACE_EVENT(sys_init_module, + TP_PROTO(void * umod, unsigned long len, const char * uargs), + TP_ARGS(umod, len, uargs), + TP_STRUCT__entry(__field_hex(void *, umod) __field(unsigned long, len) __field_hex(const char *, uargs)), + TP_fast_assign(tp_assign(umod, umod) tp_assign(len, len) tp_assign(uargs, uargs)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_listxattr +SC_TRACE_EVENT(sys_listxattr, + TP_PROTO(const char * pathname, char * list, size_t size), + TP_ARGS(pathname, list, size), + TP_STRUCT__entry(__string_from_user(pathname, pathname) __field_hex(char *, list) __field(size_t, size)), + TP_fast_assign(tp_copy_string_from_user(pathname, pathname) tp_assign(list, list) tp_assign(size, size)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_llistxattr +SC_TRACE_EVENT(sys_llistxattr, + TP_PROTO(const char * pathname, char * list, size_t size), + TP_ARGS(pathname, list, size), + TP_STRUCT__entry(__string_from_user(pathname, pathname) __field_hex(char *, list) __field(size_t, size)), + TP_fast_assign(tp_copy_string_from_user(pathname, pathname) tp_assign(list, list) tp_assign(size, size)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_flistxattr +SC_TRACE_EVENT(sys_flistxattr, + TP_PROTO(int fd, char * list, size_t size), + TP_ARGS(fd, list, size), + TP_STRUCT__entry(__field(int, fd) __field_hex(char *, list) __field(size_t, size)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(list, list) tp_assign(size, size)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_sched_setaffinity +SC_TRACE_EVENT(sys_sched_setaffinity, + TP_PROTO(pid_t pid, unsigned int len, unsigned long * user_mask_ptr), + TP_ARGS(pid, len, user_mask_ptr), + TP_STRUCT__entry(__field(pid_t, pid) __field(unsigned int, len) __field_hex(unsigned long *, user_mask_ptr)), + TP_fast_assign(tp_assign(pid, pid) tp_assign(len, len) tp_assign(user_mask_ptr, user_mask_ptr)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_sched_getaffinity +SC_TRACE_EVENT(sys_sched_getaffinity, + TP_PROTO(pid_t pid, unsigned int len, unsigned long * user_mask_ptr), + TP_ARGS(pid, len, user_mask_ptr), + TP_STRUCT__entry(__field(pid_t, pid) __field(unsigned int, len) __field_hex(unsigned long *, user_mask_ptr)), + TP_fast_assign(tp_assign(pid, pid) tp_assign(len, len) tp_assign(user_mask_ptr, user_mask_ptr)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_io_submit +SC_TRACE_EVENT(sys_io_submit, + TP_PROTO(aio_context_t ctx_id, long nr, struct iocb * * iocbpp), + TP_ARGS(ctx_id, nr, iocbpp), + TP_STRUCT__entry(__field(aio_context_t, ctx_id) __field(long, nr) __field_hex(struct iocb * *, iocbpp)), + TP_fast_assign(tp_assign(ctx_id, ctx_id) tp_assign(nr, nr) tp_assign(iocbpp, iocbpp)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_io_cancel +SC_TRACE_EVENT(sys_io_cancel, + TP_PROTO(aio_context_t ctx_id, struct iocb * iocb, struct io_event * result), + TP_ARGS(ctx_id, iocb, result), + TP_STRUCT__entry(__field(aio_context_t, ctx_id) __field_hex(struct iocb *, iocb) __field_hex(struct io_event *, result)), + TP_fast_assign(tp_assign(ctx_id, ctx_id) tp_assign(iocb, iocb) tp_assign(result, result)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_lookup_dcookie +SC_TRACE_EVENT(sys_lookup_dcookie, + TP_PROTO(u64 cookie64, char * buf, size_t len), + TP_ARGS(cookie64, buf, len), + TP_STRUCT__entry(__field(u64, cookie64) __field_hex(char *, buf) __field(size_t, len)), + TP_fast_assign(tp_assign(cookie64, cookie64) tp_assign(buf, buf) tp_assign(len, len)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_getdents64 +SC_TRACE_EVENT(sys_getdents64, + TP_PROTO(unsigned int fd, struct linux_dirent64 * dirent, unsigned int count), + TP_ARGS(fd, dirent, count), + TP_STRUCT__entry(__field(unsigned int, fd) __field_hex(struct linux_dirent64 *, dirent) __field(unsigned int, count)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(dirent, dirent) tp_assign(count, count)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_timer_create +SC_TRACE_EVENT(sys_timer_create, + TP_PROTO(const clockid_t which_clock, struct sigevent * timer_event_spec, timer_t * created_timer_id), + TP_ARGS(which_clock, timer_event_spec, created_timer_id), + TP_STRUCT__entry(__field(const clockid_t, which_clock) __field_hex(struct sigevent *, timer_event_spec) __field_hex(timer_t *, created_timer_id)), + TP_fast_assign(tp_assign(which_clock, which_clock) tp_assign(timer_event_spec, timer_event_spec) tp_assign(created_timer_id, created_timer_id)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_set_mempolicy +SC_TRACE_EVENT(sys_set_mempolicy, + TP_PROTO(int mode, unsigned long * nmask, unsigned long maxnode), + TP_ARGS(mode, nmask, maxnode), + TP_STRUCT__entry(__field(int, mode) __field_hex(unsigned long *, nmask) __field(unsigned long, maxnode)), + TP_fast_assign(tp_assign(mode, mode) tp_assign(nmask, nmask) tp_assign(maxnode, maxnode)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_mq_getsetattr +SC_TRACE_EVENT(sys_mq_getsetattr, + TP_PROTO(mqd_t mqdes, const struct mq_attr * u_mqstat, struct mq_attr * u_omqstat), + TP_ARGS(mqdes, u_mqstat, u_omqstat), + TP_STRUCT__entry(__field(mqd_t, mqdes) __field_hex(const struct mq_attr *, u_mqstat) __field_hex(struct mq_attr *, u_omqstat)), + TP_fast_assign(tp_assign(mqdes, mqdes) tp_assign(u_mqstat, u_mqstat) tp_assign(u_omqstat, u_omqstat)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_inotify_add_watch +SC_TRACE_EVENT(sys_inotify_add_watch, + TP_PROTO(int fd, const char * pathname, u32 mask), + TP_ARGS(fd, pathname, mask), + TP_STRUCT__entry(__field(int, fd) __string_from_user(pathname, pathname) __field(u32, mask)), + TP_fast_assign(tp_assign(fd, fd) tp_copy_string_from_user(pathname, pathname) tp_assign(mask, mask)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_mkdirat +SC_TRACE_EVENT(sys_mkdirat, + TP_PROTO(int dfd, const char * pathname, umode_t mode), + TP_ARGS(dfd, pathname, mode), + TP_STRUCT__entry(__field(int, dfd) __string_from_user(pathname, pathname) __field(umode_t, mode)), + TP_fast_assign(tp_assign(dfd, dfd) tp_copy_string_from_user(pathname, pathname) tp_assign(mode, mode)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_futimesat +SC_TRACE_EVENT(sys_futimesat, + TP_PROTO(int dfd, const char * filename, struct timeval * utimes), + TP_ARGS(dfd, filename, utimes), + TP_STRUCT__entry(__field(int, dfd) __string_from_user(filename, filename) __field_hex(struct timeval *, utimes)), + TP_fast_assign(tp_assign(dfd, dfd) tp_copy_string_from_user(filename, filename) tp_assign(utimes, utimes)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_unlinkat +SC_TRACE_EVENT(sys_unlinkat, + TP_PROTO(int dfd, const char * pathname, int flag), + TP_ARGS(dfd, pathname, flag), + TP_STRUCT__entry(__field(int, dfd) __string_from_user(pathname, pathname) __field(int, flag)), + TP_fast_assign(tp_assign(dfd, dfd) tp_copy_string_from_user(pathname, pathname) tp_assign(flag, flag)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_symlinkat +SC_TRACE_EVENT(sys_symlinkat, + TP_PROTO(const char * oldname, int newdfd, const char * newname), + TP_ARGS(oldname, newdfd, newname), + TP_STRUCT__entry(__string_from_user(oldname, oldname) __field(int, newdfd) __string_from_user(newname, newname)), + TP_fast_assign(tp_copy_string_from_user(oldname, oldname) tp_assign(newdfd, newdfd) tp_copy_string_from_user(newname, newname)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_fchmodat +SC_TRACE_EVENT(sys_fchmodat, + TP_PROTO(int dfd, const char * filename, umode_t mode), + TP_ARGS(dfd, filename, mode), + TP_STRUCT__entry(__field(int, dfd) __string_from_user(filename, filename) __field(umode_t, mode)), + TP_fast_assign(tp_assign(dfd, dfd) tp_copy_string_from_user(filename, filename) tp_assign(mode, mode)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_faccessat +SC_TRACE_EVENT(sys_faccessat, + TP_PROTO(int dfd, const char * filename, int mode), + TP_ARGS(dfd, filename, mode), + TP_STRUCT__entry(__field(int, dfd) __string_from_user(filename, filename) __field(int, mode)), + TP_fast_assign(tp_assign(dfd, dfd) tp_copy_string_from_user(filename, filename) tp_assign(mode, mode)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_get_robust_list +SC_TRACE_EVENT(sys_get_robust_list, + TP_PROTO(int pid, struct robust_list_head * * head_ptr, size_t * len_ptr), + TP_ARGS(pid, head_ptr, len_ptr), + TP_STRUCT__entry(__field(int, pid) __field_hex(struct robust_list_head * *, head_ptr) __field_hex(size_t *, len_ptr)), + TP_fast_assign(tp_assign(pid, pid) tp_assign(head_ptr, head_ptr) tp_assign(len_ptr, len_ptr)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_signalfd +SC_TRACE_EVENT(sys_signalfd, + TP_PROTO(int ufd, sigset_t * user_mask, size_t sizemask), + TP_ARGS(ufd, user_mask, sizemask), + TP_STRUCT__entry(__field(int, ufd) __field_hex(sigset_t *, user_mask) __field(size_t, sizemask)), + TP_fast_assign(tp_assign(ufd, ufd) tp_assign(user_mask, user_mask) tp_assign(sizemask, sizemask)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_open_by_handle_at +SC_TRACE_EVENT(sys_open_by_handle_at, + TP_PROTO(int mountdirfd, struct file_handle * handle, int flags), + TP_ARGS(mountdirfd, handle, flags), + TP_STRUCT__entry(__field(int, mountdirfd) __field_hex(struct file_handle *, handle) __field(int, flags)), + TP_fast_assign(tp_assign(mountdirfd, mountdirfd) tp_assign(handle, handle) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_getcpu +SC_TRACE_EVENT(sys_getcpu, + TP_PROTO(unsigned * cpup, unsigned * nodep, struct getcpu_cache * unused), + TP_ARGS(cpup, nodep, unused), + TP_STRUCT__entry(__field_hex(unsigned *, cpup) __field_hex(unsigned *, nodep) __field_hex(struct getcpu_cache *, unused)), + TP_fast_assign(tp_assign(cpup, cpup) tp_assign(nodep, nodep) tp_assign(unused, unused)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_finit_module +SC_TRACE_EVENT(sys_finit_module, + TP_PROTO(int fd, const char * uargs, int flags), + TP_ARGS(fd, uargs, flags), + TP_STRUCT__entry(__field(int, fd) __field_hex(const char *, uargs) __field(int, flags)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(uargs, uargs) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_rt_sigaction +SC_TRACE_EVENT(sys_rt_sigaction, + TP_PROTO(int sig, const struct sigaction * act, struct sigaction * oact, size_t sigsetsize), + TP_ARGS(sig, act, oact, sigsetsize), + TP_STRUCT__entry(__field(int, sig) __field_hex(const struct sigaction *, act) __field_hex(struct sigaction *, oact) __field(size_t, sigsetsize)), + TP_fast_assign(tp_assign(sig, sig) tp_assign(act, act) tp_assign(oact, oact) tp_assign(sigsetsize, sigsetsize)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_rt_sigprocmask +SC_TRACE_EVENT(sys_rt_sigprocmask, + TP_PROTO(int how, sigset_t * nset, sigset_t * oset, size_t sigsetsize), + TP_ARGS(how, nset, oset, sigsetsize), + TP_STRUCT__entry(__field(int, how) __field_hex(sigset_t *, nset) __field_hex(sigset_t *, oset) __field(size_t, sigsetsize)), + TP_fast_assign(tp_assign(how, how) tp_assign(nset, nset) tp_assign(oset, oset) tp_assign(sigsetsize, sigsetsize)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_pread64 +SC_TRACE_EVENT(sys_pread64, + TP_PROTO(unsigned int fd, char * buf, size_t count, loff_t pos), + TP_ARGS(fd, buf, count, pos), + TP_STRUCT__entry(__field(unsigned int, fd) __field_hex(char *, buf) __field(size_t, count) __field(loff_t, pos)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(buf, buf) tp_assign(count, count) tp_assign(pos, pos)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_pwrite64 +SC_TRACE_EVENT(sys_pwrite64, + TP_PROTO(unsigned int fd, const char * buf, size_t count, loff_t pos), + TP_ARGS(fd, buf, count, pos), + TP_STRUCT__entry(__field(unsigned int, fd) __field_hex(const char *, buf) __field(size_t, count) __field(loff_t, pos)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(buf, buf) tp_assign(count, count) tp_assign(pos, pos)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_sendfile64 +SC_TRACE_EVENT(sys_sendfile64, + TP_PROTO(int out_fd, int in_fd, loff_t * offset, size_t count), + TP_ARGS(out_fd, in_fd, offset, count), + TP_STRUCT__entry(__field(int, out_fd) __field(int, in_fd) __field_hex(loff_t *, offset) __field(size_t, count)), + TP_fast_assign(tp_assign(out_fd, out_fd) tp_assign(in_fd, in_fd) tp_assign(offset, offset) tp_assign(count, count)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_socketpair +SC_TRACE_EVENT(sys_socketpair, + TP_PROTO(int family, int type, int protocol, int * usockvec), + TP_ARGS(family, type, protocol, usockvec), + TP_STRUCT__entry(__field(int, family) __field(int, type) __field(int, protocol) __field_hex(int *, usockvec)), + TP_fast_assign(tp_assign(family, family) tp_assign(type, type) tp_assign(protocol, protocol) tp_assign(usockvec, usockvec)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_wait4 +SC_TRACE_EVENT(sys_wait4, + TP_PROTO(pid_t upid, int * stat_addr, int options, struct rusage * ru), + TP_ARGS(upid, stat_addr, options, ru), + TP_STRUCT__entry(__field(pid_t, upid) __field_hex(int *, stat_addr) __field(int, options) __field_hex(struct rusage *, ru)), + TP_fast_assign(tp_assign(upid, upid) tp_assign(stat_addr, stat_addr) tp_assign(options, options) tp_assign(ru, ru)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_msgsnd +SC_TRACE_EVENT(sys_msgsnd, + TP_PROTO(int msqid, struct msgbuf * msgp, size_t msgsz, int msgflg), + TP_ARGS(msqid, msgp, msgsz, msgflg), + TP_STRUCT__entry(__field(int, msqid) __field_hex(struct msgbuf *, msgp) __field(size_t, msgsz) __field(int, msgflg)), + TP_fast_assign(tp_assign(msqid, msqid) tp_assign(msgp, msgp) tp_assign(msgsz, msgsz) tp_assign(msgflg, msgflg)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_rt_sigtimedwait +SC_TRACE_EVENT(sys_rt_sigtimedwait, + TP_PROTO(const sigset_t * uthese, siginfo_t * uinfo, const struct timespec * uts, size_t sigsetsize), + TP_ARGS(uthese, uinfo, uts, sigsetsize), + TP_STRUCT__entry(__field_hex(const sigset_t *, uthese) __field_hex(siginfo_t *, uinfo) __field_hex(const struct timespec *, uts) __field(size_t, sigsetsize)), + TP_fast_assign(tp_assign(uthese, uthese) tp_assign(uinfo, uinfo) tp_assign(uts, uts) tp_assign(sigsetsize, sigsetsize)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_reboot +SC_TRACE_EVENT(sys_reboot, + TP_PROTO(int magic1, int magic2, unsigned int cmd, void * arg), + TP_ARGS(magic1, magic2, cmd, arg), + TP_STRUCT__entry(__field(int, magic1) __field(int, magic2) __field(unsigned int, cmd) __field_hex(void *, arg)), + TP_fast_assign(tp_assign(magic1, magic1) tp_assign(magic2, magic2) tp_assign(cmd, cmd) tp_assign(arg, arg)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_quotactl +SC_TRACE_EVENT(sys_quotactl, + TP_PROTO(unsigned int cmd, const char * special, qid_t id, void * addr), + TP_ARGS(cmd, special, id, addr), + TP_STRUCT__entry(__field(unsigned int, cmd) __field_hex(const char *, special) __field(qid_t, id) __field_hex(void *, addr)), + TP_fast_assign(tp_assign(cmd, cmd) tp_assign(special, special) tp_assign(id, id) tp_assign(addr, addr)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_getxattr +SC_TRACE_EVENT(sys_getxattr, + TP_PROTO(const char * pathname, const char * name, void * value, size_t size), + TP_ARGS(pathname, name, value, size), + TP_STRUCT__entry(__string_from_user(pathname, pathname) __string_from_user(name, name) __field_hex(void *, value) __field(size_t, size)), + TP_fast_assign(tp_copy_string_from_user(pathname, pathname) tp_copy_string_from_user(name, name) tp_assign(value, value) tp_assign(size, size)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_lgetxattr +SC_TRACE_EVENT(sys_lgetxattr, + TP_PROTO(const char * pathname, const char * name, void * value, size_t size), + TP_ARGS(pathname, name, value, size), + TP_STRUCT__entry(__string_from_user(pathname, pathname) __string_from_user(name, name) __field_hex(void *, value) __field(size_t, size)), + TP_fast_assign(tp_copy_string_from_user(pathname, pathname) tp_copy_string_from_user(name, name) tp_assign(value, value) tp_assign(size, size)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_fgetxattr +SC_TRACE_EVENT(sys_fgetxattr, + TP_PROTO(int fd, const char * name, void * value, size_t size), + TP_ARGS(fd, name, value, size), + TP_STRUCT__entry(__field(int, fd) __string_from_user(name, name) __field_hex(void *, value) __field(size_t, size)), + TP_fast_assign(tp_assign(fd, fd) tp_copy_string_from_user(name, name) tp_assign(value, value) tp_assign(size, size)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_semtimedop +SC_TRACE_EVENT(sys_semtimedop, + TP_PROTO(int semid, struct sembuf * tsops, unsigned nsops, const struct timespec * timeout), + TP_ARGS(semid, tsops, nsops, timeout), + TP_STRUCT__entry(__field(int, semid) __field_hex(struct sembuf *, tsops) __field(unsigned, nsops) __field_hex(const struct timespec *, timeout)), + TP_fast_assign(tp_assign(semid, semid) tp_assign(tsops, tsops) tp_assign(nsops, nsops) tp_assign(timeout, timeout)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_timer_settime +SC_TRACE_EVENT(sys_timer_settime, + TP_PROTO(timer_t timer_id, int flags, const struct itimerspec * new_setting, struct itimerspec * old_setting), + TP_ARGS(timer_id, flags, new_setting, old_setting), + TP_STRUCT__entry(__field(timer_t, timer_id) __field(int, flags) __field_hex(const struct itimerspec *, new_setting) __field_hex(struct itimerspec *, old_setting)), + TP_fast_assign(tp_assign(timer_id, timer_id) tp_assign(flags, flags) tp_assign(new_setting, new_setting) tp_assign(old_setting, old_setting)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_clock_nanosleep +SC_TRACE_EVENT(sys_clock_nanosleep, + TP_PROTO(const clockid_t which_clock, int flags, const struct timespec * rqtp, struct timespec * rmtp), + TP_ARGS(which_clock, flags, rqtp, rmtp), + TP_STRUCT__entry(__field(const clockid_t, which_clock) __field(int, flags) __field_hex(const struct timespec *, rqtp) __field_hex(struct timespec *, rmtp)), + TP_fast_assign(tp_assign(which_clock, which_clock) tp_assign(flags, flags) tp_assign(rqtp, rqtp) tp_assign(rmtp, rmtp)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_epoll_wait +SC_TRACE_EVENT(sys_epoll_wait, + TP_PROTO(int epfd, struct epoll_event * events, int maxevents, int timeout), + TP_ARGS(epfd, events, maxevents, timeout), + TP_STRUCT__entry(__field(int, epfd) __field_hex(struct epoll_event *, events) __field(int, maxevents) __field(int, timeout)), + TP_fast_assign(tp_assign(epfd, epfd) tp_assign(events, events) tp_assign(maxevents, maxevents) tp_assign(timeout, timeout)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_epoll_ctl +SC_TRACE_EVENT(sys_epoll_ctl, + TP_PROTO(int epfd, int op, int fd, struct epoll_event * event), + TP_ARGS(epfd, op, fd, event), + TP_STRUCT__entry(__field(int, epfd) __field(int, op) __field(int, fd) __field_hex(struct epoll_event *, event)), + TP_fast_assign(tp_assign(epfd, epfd) tp_assign(op, op) tp_assign(fd, fd) tp_assign(event, event)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_mq_open +SC_TRACE_EVENT(sys_mq_open, + TP_PROTO(const char * u_name, int oflag, umode_t mode, struct mq_attr * u_attr), + TP_ARGS(u_name, oflag, mode, u_attr), + TP_STRUCT__entry(__string_from_user(u_name, u_name) __field(int, oflag) __field(umode_t, mode) __field_hex(struct mq_attr *, u_attr)), + TP_fast_assign(tp_copy_string_from_user(u_name, u_name) tp_assign(oflag, oflag) tp_assign(mode, mode) tp_assign(u_attr, u_attr)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_kexec_load +SC_TRACE_EVENT(sys_kexec_load, + TP_PROTO(unsigned long entry, unsigned long nr_segments, struct kexec_segment * segments, unsigned long flags), + TP_ARGS(entry, nr_segments, segments, flags), + TP_STRUCT__entry(__field(unsigned long, entry) __field(unsigned long, nr_segments) __field_hex(struct kexec_segment *, segments) __field(unsigned long, flags)), + TP_fast_assign(tp_assign(entry, entry) tp_assign(nr_segments, nr_segments) tp_assign(segments, segments) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_request_key +SC_TRACE_EVENT(sys_request_key, + TP_PROTO(const char * _type, const char * _description, const char * _callout_info, key_serial_t destringid), + TP_ARGS(_type, _description, _callout_info, destringid), + TP_STRUCT__entry(__string_from_user(_type, _type) __field_hex(const char *, _description) __field_hex(const char *, _callout_info) __field(key_serial_t, destringid)), + TP_fast_assign(tp_copy_string_from_user(_type, _type) tp_assign(_description, _description) tp_assign(_callout_info, _callout_info) tp_assign(destringid, destringid)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_migrate_pages +SC_TRACE_EVENT(sys_migrate_pages, + TP_PROTO(pid_t pid, unsigned long maxnode, const unsigned long * old_nodes, const unsigned long * new_nodes), + TP_ARGS(pid, maxnode, old_nodes, new_nodes), + TP_STRUCT__entry(__field(pid_t, pid) __field(unsigned long, maxnode) __field_hex(const unsigned long *, old_nodes) __field_hex(const unsigned long *, new_nodes)), + TP_fast_assign(tp_assign(pid, pid) tp_assign(maxnode, maxnode) tp_assign(old_nodes, old_nodes) tp_assign(new_nodes, new_nodes)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_openat +SC_TRACE_EVENT(sys_openat, + TP_PROTO(int dfd, const char * filename, int flags, umode_t mode), + TP_ARGS(dfd, filename, flags, mode), + TP_STRUCT__entry(__field(int, dfd) __string_from_user(filename, filename) __field(int, flags) __field(umode_t, mode)), + TP_fast_assign(tp_assign(dfd, dfd) tp_copy_string_from_user(filename, filename) tp_assign(flags, flags) tp_assign(mode, mode)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_mknodat +SC_TRACE_EVENT(sys_mknodat, + TP_PROTO(int dfd, const char * filename, umode_t mode, unsigned dev), + TP_ARGS(dfd, filename, mode, dev), + TP_STRUCT__entry(__field(int, dfd) __string_from_user(filename, filename) __field(umode_t, mode) __field(unsigned, dev)), + TP_fast_assign(tp_assign(dfd, dfd) tp_copy_string_from_user(filename, filename) tp_assign(mode, mode) tp_assign(dev, dev)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_newfstatat +SC_TRACE_EVENT(sys_newfstatat, + TP_PROTO(int dfd, const char * filename, struct stat * statbuf, int flag), + TP_ARGS(dfd, filename, statbuf, flag), + TP_STRUCT__entry(__field(int, dfd) __string_from_user(filename, filename) __field_hex(struct stat *, statbuf) __field(int, flag)), + TP_fast_assign(tp_assign(dfd, dfd) tp_copy_string_from_user(filename, filename) tp_assign(statbuf, statbuf) tp_assign(flag, flag)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_renameat +SC_TRACE_EVENT(sys_renameat, + TP_PROTO(int olddfd, const char * oldname, int newdfd, const char * newname), + TP_ARGS(olddfd, oldname, newdfd, newname), + TP_STRUCT__entry(__field(int, olddfd) __string_from_user(oldname, oldname) __field(int, newdfd) __string_from_user(newname, newname)), + TP_fast_assign(tp_assign(olddfd, olddfd) tp_copy_string_from_user(oldname, oldname) tp_assign(newdfd, newdfd) tp_copy_string_from_user(newname, newname)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_readlinkat +SC_TRACE_EVENT(sys_readlinkat, + TP_PROTO(int dfd, const char * pathname, char * buf, int bufsiz), + TP_ARGS(dfd, pathname, buf, bufsiz), + TP_STRUCT__entry(__field(int, dfd) __string_from_user(pathname, pathname) __field_hex(char *, buf) __field(int, bufsiz)), + TP_fast_assign(tp_assign(dfd, dfd) tp_copy_string_from_user(pathname, pathname) tp_assign(buf, buf) tp_assign(bufsiz, bufsiz)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_vmsplice +SC_TRACE_EVENT(sys_vmsplice, + TP_PROTO(int fd, const struct iovec * iov, unsigned long nr_segs, unsigned int flags), + TP_ARGS(fd, iov, nr_segs, flags), + TP_STRUCT__entry(__field(int, fd) __field_hex(const struct iovec *, iov) __field(unsigned long, nr_segs) __field(unsigned int, flags)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(iov, iov) tp_assign(nr_segs, nr_segs) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_utimensat +SC_TRACE_EVENT(sys_utimensat, + TP_PROTO(int dfd, const char * filename, struct timespec * utimes, int flags), + TP_ARGS(dfd, filename, utimes, flags), + TP_STRUCT__entry(__field(int, dfd) __string_from_user(filename, filename) __field_hex(struct timespec *, utimes) __field(int, flags)), + TP_fast_assign(tp_assign(dfd, dfd) tp_copy_string_from_user(filename, filename) tp_assign(utimes, utimes) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_timerfd_settime +SC_TRACE_EVENT(sys_timerfd_settime, + TP_PROTO(int ufd, int flags, const struct itimerspec * utmr, struct itimerspec * otmr), + TP_ARGS(ufd, flags, utmr, otmr), + TP_STRUCT__entry(__field(int, ufd) __field(int, flags) __field_hex(const struct itimerspec *, utmr) __field_hex(struct itimerspec *, otmr)), + TP_fast_assign(tp_assign(ufd, ufd) tp_assign(flags, flags) tp_assign(utmr, utmr) tp_assign(otmr, otmr)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_accept4 +SC_TRACE_EVENT(sys_accept4, + TP_PROTO(int fd, struct sockaddr * upeer_sockaddr, int * upeer_addrlen, int flags), + TP_ARGS(fd, upeer_sockaddr, upeer_addrlen, flags), + TP_STRUCT__entry(__field(int, fd) __field_hex(struct sockaddr *, upeer_sockaddr) __field_hex(int *, upeer_addrlen) __field(int, flags)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(upeer_sockaddr, upeer_sockaddr) tp_assign(upeer_addrlen, upeer_addrlen) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_signalfd4 +SC_TRACE_EVENT(sys_signalfd4, + TP_PROTO(int ufd, sigset_t * user_mask, size_t sizemask, int flags), + TP_ARGS(ufd, user_mask, sizemask, flags), + TP_STRUCT__entry(__field(int, ufd) __field_hex(sigset_t *, user_mask) __field(size_t, sizemask) __field(int, flags)), + TP_fast_assign(tp_assign(ufd, ufd) tp_assign(user_mask, user_mask) tp_assign(sizemask, sizemask) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_rt_tgsigqueueinfo +SC_TRACE_EVENT(sys_rt_tgsigqueueinfo, + TP_PROTO(pid_t tgid, pid_t pid, int sig, siginfo_t * uinfo), + TP_ARGS(tgid, pid, sig, uinfo), + TP_STRUCT__entry(__field(pid_t, tgid) __field(pid_t, pid) __field(int, sig) __field_hex(siginfo_t *, uinfo)), + TP_fast_assign(tp_assign(tgid, tgid) tp_assign(pid, pid) tp_assign(sig, sig) tp_assign(uinfo, uinfo)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_prlimit64 +SC_TRACE_EVENT(sys_prlimit64, + TP_PROTO(pid_t pid, unsigned int resource, const struct rlimit64 * new_rlim, struct rlimit64 * old_rlim), + TP_ARGS(pid, resource, new_rlim, old_rlim), + TP_STRUCT__entry(__field(pid_t, pid) __field(unsigned int, resource) __field_hex(const struct rlimit64 *, new_rlim) __field_hex(struct rlimit64 *, old_rlim)), + TP_fast_assign(tp_assign(pid, pid) tp_assign(resource, resource) tp_assign(new_rlim, new_rlim) tp_assign(old_rlim, old_rlim)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_sendmmsg +SC_TRACE_EVENT(sys_sendmmsg, + TP_PROTO(int fd, struct mmsghdr * mmsg, unsigned int vlen, unsigned int flags), + TP_ARGS(fd, mmsg, vlen, flags), + TP_STRUCT__entry(__field(int, fd) __field_hex(struct mmsghdr *, mmsg) __field(unsigned int, vlen) __field(unsigned int, flags)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(mmsg, mmsg) tp_assign(vlen, vlen) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_select +SC_TRACE_EVENT(sys_select, + TP_PROTO(int n, fd_set * inp, fd_set * outp, fd_set * exp, struct timeval * tvp), + TP_ARGS(n, inp, outp, exp, tvp), + TP_STRUCT__entry(__field(int, n) __field_hex(fd_set *, inp) __field_hex(fd_set *, outp) __field_hex(fd_set *, exp) __field_hex(struct timeval *, tvp)), + TP_fast_assign(tp_assign(n, n) tp_assign(inp, inp) tp_assign(outp, outp) tp_assign(exp, exp) tp_assign(tvp, tvp)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_setsockopt +SC_TRACE_EVENT(sys_setsockopt, + TP_PROTO(int fd, int level, int optname, char * optval, int optlen), + TP_ARGS(fd, level, optname, optval, optlen), + TP_STRUCT__entry(__field(int, fd) __field(int, level) __field(int, optname) __field_hex(char *, optval) __field(int, optlen)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(level, level) tp_assign(optname, optname) tp_assign(optval, optval) tp_assign(optlen, optlen)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_getsockopt +SC_TRACE_EVENT(sys_getsockopt, + TP_PROTO(int fd, int level, int optname, char * optval, int * optlen), + TP_ARGS(fd, level, optname, optval, optlen), + TP_STRUCT__entry(__field(int, fd) __field(int, level) __field(int, optname) __field_hex(char *, optval) __field_hex(int *, optlen)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(level, level) tp_assign(optname, optname) tp_assign(optval, optval) tp_assign(optlen, optlen)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_msgrcv +SC_TRACE_EVENT(sys_msgrcv, + TP_PROTO(int msqid, struct msgbuf * msgp, size_t msgsz, long msgtyp, int msgflg), + TP_ARGS(msqid, msgp, msgsz, msgtyp, msgflg), + TP_STRUCT__entry(__field(int, msqid) __field_hex(struct msgbuf *, msgp) __field(size_t, msgsz) __field(long, msgtyp) __field(int, msgflg)), + TP_fast_assign(tp_assign(msqid, msqid) tp_assign(msgp, msgp) tp_assign(msgsz, msgsz) tp_assign(msgtyp, msgtyp) tp_assign(msgflg, msgflg)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_mount +SC_TRACE_EVENT(sys_mount, + TP_PROTO(char * dev_name, char * dir_name, char * type, unsigned long flags, void * data), + TP_ARGS(dev_name, dir_name, type, flags, data), + TP_STRUCT__entry(__string_from_user(dev_name, dev_name) __string_from_user(dir_name, dir_name) __string_from_user(type, type) __field(unsigned long, flags) __field_hex(void *, data)), + TP_fast_assign(tp_copy_string_from_user(dev_name, dev_name) tp_copy_string_from_user(dir_name, dir_name) tp_copy_string_from_user(type, type) tp_assign(flags, flags) tp_assign(data, data)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_setxattr +SC_TRACE_EVENT(sys_setxattr, + TP_PROTO(const char * pathname, const char * name, const void * value, size_t size, int flags), + TP_ARGS(pathname, name, value, size, flags), + TP_STRUCT__entry(__string_from_user(pathname, pathname) __string_from_user(name, name) __field_hex(const void *, value) __field(size_t, size) __field(int, flags)), + TP_fast_assign(tp_copy_string_from_user(pathname, pathname) tp_copy_string_from_user(name, name) tp_assign(value, value) tp_assign(size, size) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_lsetxattr +SC_TRACE_EVENT(sys_lsetxattr, + TP_PROTO(const char * pathname, const char * name, const void * value, size_t size, int flags), + TP_ARGS(pathname, name, value, size, flags), + TP_STRUCT__entry(__string_from_user(pathname, pathname) __string_from_user(name, name) __field_hex(const void *, value) __field(size_t, size) __field(int, flags)), + TP_fast_assign(tp_copy_string_from_user(pathname, pathname) tp_copy_string_from_user(name, name) tp_assign(value, value) tp_assign(size, size) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_fsetxattr +SC_TRACE_EVENT(sys_fsetxattr, + TP_PROTO(int fd, const char * name, const void * value, size_t size, int flags), + TP_ARGS(fd, name, value, size, flags), + TP_STRUCT__entry(__field(int, fd) __string_from_user(name, name) __field_hex(const void *, value) __field(size_t, size) __field(int, flags)), + TP_fast_assign(tp_assign(fd, fd) tp_copy_string_from_user(name, name) tp_assign(value, value) tp_assign(size, size) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_io_getevents +SC_TRACE_EVENT(sys_io_getevents, + TP_PROTO(aio_context_t ctx_id, long min_nr, long nr, struct io_event * events, struct timespec * timeout), + TP_ARGS(ctx_id, min_nr, nr, events, timeout), + TP_STRUCT__entry(__field(aio_context_t, ctx_id) __field(long, min_nr) __field(long, nr) __field_hex(struct io_event *, events) __field_hex(struct timespec *, timeout)), + TP_fast_assign(tp_assign(ctx_id, ctx_id) tp_assign(min_nr, min_nr) tp_assign(nr, nr) tp_assign(events, events) tp_assign(timeout, timeout)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_get_mempolicy +SC_TRACE_EVENT(sys_get_mempolicy, + TP_PROTO(int * policy, unsigned long * nmask, unsigned long maxnode, unsigned long addr, unsigned long flags), + TP_ARGS(policy, nmask, maxnode, addr, flags), + TP_STRUCT__entry(__field_hex(int *, policy) __field_hex(unsigned long *, nmask) __field(unsigned long, maxnode) __field_hex(unsigned long, addr) __field(unsigned long, flags)), + TP_fast_assign(tp_assign(policy, policy) tp_assign(nmask, nmask) tp_assign(maxnode, maxnode) tp_assign(addr, addr) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_mq_timedsend +SC_TRACE_EVENT(sys_mq_timedsend, + TP_PROTO(mqd_t mqdes, const char * u_msg_ptr, size_t msg_len, unsigned int msg_prio, const struct timespec * u_abs_timeout), + TP_ARGS(mqdes, u_msg_ptr, msg_len, msg_prio, u_abs_timeout), + TP_STRUCT__entry(__field(mqd_t, mqdes) __field_hex(const char *, u_msg_ptr) __field(size_t, msg_len) __field(unsigned int, msg_prio) __field_hex(const struct timespec *, u_abs_timeout)), + TP_fast_assign(tp_assign(mqdes, mqdes) tp_assign(u_msg_ptr, u_msg_ptr) tp_assign(msg_len, msg_len) tp_assign(msg_prio, msg_prio) tp_assign(u_abs_timeout, u_abs_timeout)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_mq_timedreceive +SC_TRACE_EVENT(sys_mq_timedreceive, + TP_PROTO(mqd_t mqdes, char * u_msg_ptr, size_t msg_len, unsigned int * u_msg_prio, const struct timespec * u_abs_timeout), + TP_ARGS(mqdes, u_msg_ptr, msg_len, u_msg_prio, u_abs_timeout), + TP_STRUCT__entry(__field(mqd_t, mqdes) __field_hex(char *, u_msg_ptr) __field(size_t, msg_len) __field_hex(unsigned int *, u_msg_prio) __field_hex(const struct timespec *, u_abs_timeout)), + TP_fast_assign(tp_assign(mqdes, mqdes) tp_assign(u_msg_ptr, u_msg_ptr) tp_assign(msg_len, msg_len) tp_assign(u_msg_prio, u_msg_prio) tp_assign(u_abs_timeout, u_abs_timeout)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_waitid +SC_TRACE_EVENT(sys_waitid, + TP_PROTO(int which, pid_t upid, struct siginfo * infop, int options, struct rusage * ru), + TP_ARGS(which, upid, infop, options, ru), + TP_STRUCT__entry(__field(int, which) __field(pid_t, upid) __field_hex(struct siginfo *, infop) __field(int, options) __field_hex(struct rusage *, ru)), + TP_fast_assign(tp_assign(which, which) tp_assign(upid, upid) tp_assign(infop, infop) tp_assign(options, options) tp_assign(ru, ru)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_add_key +SC_TRACE_EVENT(sys_add_key, + TP_PROTO(const char * _type, const char * _description, const void * _payload, size_t plen, key_serial_t ringid), + TP_ARGS(_type, _description, _payload, plen, ringid), + TP_STRUCT__entry(__string_from_user(_type, _type) __field_hex(const char *, _description) __field_hex(const void *, _payload) __field(size_t, plen) __field(key_serial_t, ringid)), + TP_fast_assign(tp_copy_string_from_user(_type, _type) tp_assign(_description, _description) tp_assign(_payload, _payload) tp_assign(plen, plen) tp_assign(ringid, ringid)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_fchownat +SC_TRACE_EVENT(sys_fchownat, + TP_PROTO(int dfd, const char * filename, uid_t user, gid_t group, int flag), + TP_ARGS(dfd, filename, user, group, flag), + TP_STRUCT__entry(__field(int, dfd) __string_from_user(filename, filename) __field(uid_t, user) __field(gid_t, group) __field(int, flag)), + TP_fast_assign(tp_assign(dfd, dfd) tp_copy_string_from_user(filename, filename) tp_assign(user, user) tp_assign(group, group) tp_assign(flag, flag)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_linkat +SC_TRACE_EVENT(sys_linkat, + TP_PROTO(int olddfd, const char * oldname, int newdfd, const char * newname, int flags), + TP_ARGS(olddfd, oldname, newdfd, newname, flags), + TP_STRUCT__entry(__field(int, olddfd) __string_from_user(oldname, oldname) __field(int, newdfd) __string_from_user(newname, newname) __field(int, flags)), + TP_fast_assign(tp_assign(olddfd, olddfd) tp_copy_string_from_user(oldname, oldname) tp_assign(newdfd, newdfd) tp_copy_string_from_user(newname, newname) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_ppoll +SC_TRACE_EVENT(sys_ppoll, + TP_PROTO(struct pollfd * ufds, unsigned int nfds, struct timespec * tsp, const sigset_t * sigmask, size_t sigsetsize), + TP_ARGS(ufds, nfds, tsp, sigmask, sigsetsize), + TP_STRUCT__entry(__field_hex(struct pollfd *, ufds) __field(unsigned int, nfds) __field_hex(struct timespec *, tsp) __field_hex(const sigset_t *, sigmask) __field(size_t, sigsetsize)), + TP_fast_assign(tp_assign(ufds, ufds) tp_assign(nfds, nfds) tp_assign(tsp, tsp) tp_assign(sigmask, sigmask) tp_assign(sigsetsize, sigsetsize)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_preadv +SC_TRACE_EVENT(sys_preadv, + TP_PROTO(unsigned long fd, const struct iovec * vec, unsigned long vlen, unsigned long pos_l, unsigned long pos_h), + TP_ARGS(fd, vec, vlen, pos_l, pos_h), + TP_STRUCT__entry(__field(unsigned long, fd) __field_hex(const struct iovec *, vec) __field(unsigned long, vlen) __field(unsigned long, pos_l) __field(unsigned long, pos_h)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(vec, vec) tp_assign(vlen, vlen) tp_assign(pos_l, pos_l) tp_assign(pos_h, pos_h)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_pwritev +SC_TRACE_EVENT(sys_pwritev, + TP_PROTO(unsigned long fd, const struct iovec * vec, unsigned long vlen, unsigned long pos_l, unsigned long pos_h), + TP_ARGS(fd, vec, vlen, pos_l, pos_h), + TP_STRUCT__entry(__field(unsigned long, fd) __field_hex(const struct iovec *, vec) __field(unsigned long, vlen) __field(unsigned long, pos_l) __field(unsigned long, pos_h)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(vec, vec) tp_assign(vlen, vlen) tp_assign(pos_l, pos_l) tp_assign(pos_h, pos_h)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_perf_event_open +SC_TRACE_EVENT(sys_perf_event_open, + TP_PROTO(struct perf_event_attr * attr_uptr, pid_t pid, int cpu, int group_fd, unsigned long flags), + TP_ARGS(attr_uptr, pid, cpu, group_fd, flags), + TP_STRUCT__entry(__field_hex(struct perf_event_attr *, attr_uptr) __field(pid_t, pid) __field(int, cpu) __field(int, group_fd) __field(unsigned long, flags)), + TP_fast_assign(tp_assign(attr_uptr, attr_uptr) tp_assign(pid, pid) tp_assign(cpu, cpu) tp_assign(group_fd, group_fd) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_recvmmsg +SC_TRACE_EVENT(sys_recvmmsg, + TP_PROTO(int fd, struct mmsghdr * mmsg, unsigned int vlen, unsigned int flags, struct timespec * timeout), + TP_ARGS(fd, mmsg, vlen, flags, timeout), + TP_STRUCT__entry(__field(int, fd) __field_hex(struct mmsghdr *, mmsg) __field(unsigned int, vlen) __field(unsigned int, flags) __field_hex(struct timespec *, timeout)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(mmsg, mmsg) tp_assign(vlen, vlen) tp_assign(flags, flags) tp_assign(timeout, timeout)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_fanotify_mark +SC_TRACE_EVENT(sys_fanotify_mark, + TP_PROTO(int fanotify_fd, unsigned int flags, __u64 mask, int dfd, const char * pathname), + TP_ARGS(fanotify_fd, flags, mask, dfd, pathname), + TP_STRUCT__entry(__field(int, fanotify_fd) __field(unsigned int, flags) __field(__u64, mask) __field(int, dfd) __string_from_user(pathname, pathname)), + TP_fast_assign(tp_assign(fanotify_fd, fanotify_fd) tp_assign(flags, flags) tp_assign(mask, mask) tp_assign(dfd, dfd) tp_copy_string_from_user(pathname, pathname)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_name_to_handle_at +SC_TRACE_EVENT(sys_name_to_handle_at, + TP_PROTO(int dfd, const char * name, struct file_handle * handle, int * mnt_id, int flag), + TP_ARGS(dfd, name, handle, mnt_id, flag), + TP_STRUCT__entry(__field(int, dfd) __string_from_user(name, name) __field_hex(struct file_handle *, handle) __field_hex(int *, mnt_id) __field(int, flag)), + TP_fast_assign(tp_assign(dfd, dfd) tp_copy_string_from_user(name, name) tp_assign(handle, handle) tp_assign(mnt_id, mnt_id) tp_assign(flag, flag)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_sendto +SC_TRACE_EVENT(sys_sendto, + TP_PROTO(int fd, void * buff, size_t len, unsigned int flags, struct sockaddr * addr, int addr_len), + TP_ARGS(fd, buff, len, flags, addr, addr_len), + TP_STRUCT__entry(__field(int, fd) __field_hex(void *, buff) __field(size_t, len) __field(unsigned int, flags) __field_hex(struct sockaddr *, addr) __field_hex(int, addr_len)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(buff, buff) tp_assign(len, len) tp_assign(flags, flags) tp_assign(addr, addr) tp_assign(addr_len, addr_len)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_recvfrom +SC_TRACE_EVENT(sys_recvfrom, + TP_PROTO(int fd, void * ubuf, size_t size, unsigned int flags, struct sockaddr * addr, int * addr_len), + TP_ARGS(fd, ubuf, size, flags, addr, addr_len), + TP_STRUCT__entry(__field(int, fd) __field_hex(void *, ubuf) __field(size_t, size) __field(unsigned int, flags) __field_hex(struct sockaddr *, addr) __field_hex(int *, addr_len)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(ubuf, ubuf) tp_assign(size, size) tp_assign(flags, flags) tp_assign(addr, addr) tp_assign(addr_len, addr_len)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_futex +SC_TRACE_EVENT(sys_futex, + TP_PROTO(u32 * uaddr, int op, u32 val, struct timespec * utime, u32 * uaddr2, u32 val3), + TP_ARGS(uaddr, op, val, utime, uaddr2, val3), + TP_STRUCT__entry(__field_hex(u32 *, uaddr) __field(int, op) __field(u32, val) __field_hex(struct timespec *, utime) __field_hex(u32 *, uaddr2) __field(u32, val3)), + TP_fast_assign(tp_assign(uaddr, uaddr) tp_assign(op, op) tp_assign(val, val) tp_assign(utime, utime) tp_assign(uaddr2, uaddr2) tp_assign(val3, val3)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_mbind +SC_TRACE_EVENT(sys_mbind, + TP_PROTO(unsigned long start, unsigned long len, unsigned long mode, unsigned long * nmask, unsigned long maxnode, unsigned flags), + TP_ARGS(start, len, mode, nmask, maxnode, flags), + TP_STRUCT__entry(__field(unsigned long, start) __field(unsigned long, len) __field(unsigned long, mode) __field_hex(unsigned long *, nmask) __field(unsigned long, maxnode) __field(unsigned, flags)), + TP_fast_assign(tp_assign(start, start) tp_assign(len, len) tp_assign(mode, mode) tp_assign(nmask, nmask) tp_assign(maxnode, maxnode) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_pselect6 +SC_TRACE_EVENT(sys_pselect6, + TP_PROTO(int n, fd_set * inp, fd_set * outp, fd_set * exp, struct timespec * tsp, void * sig), + TP_ARGS(n, inp, outp, exp, tsp, sig), + TP_STRUCT__entry(__field(int, n) __field_hex(fd_set *, inp) __field_hex(fd_set *, outp) __field_hex(fd_set *, exp) __field_hex(struct timespec *, tsp) __field_hex(void *, sig)), + TP_fast_assign(tp_assign(n, n) tp_assign(inp, inp) tp_assign(outp, outp) tp_assign(exp, exp) tp_assign(tsp, tsp) tp_assign(sig, sig)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_splice +SC_TRACE_EVENT(sys_splice, + TP_PROTO(int fd_in, loff_t * off_in, int fd_out, loff_t * off_out, size_t len, unsigned int flags), + TP_ARGS(fd_in, off_in, fd_out, off_out, len, flags), + TP_STRUCT__entry(__field(int, fd_in) __field_hex(loff_t *, off_in) __field(int, fd_out) __field_hex(loff_t *, off_out) __field(size_t, len) __field(unsigned int, flags)), + TP_fast_assign(tp_assign(fd_in, fd_in) tp_assign(off_in, off_in) tp_assign(fd_out, fd_out) tp_assign(off_out, off_out) tp_assign(len, len) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_move_pages +SC_TRACE_EVENT(sys_move_pages, + TP_PROTO(pid_t pid, unsigned long nr_pages, const void * * pages, const int * nodes, int * status, int flags), + TP_ARGS(pid, nr_pages, pages, nodes, status, flags), + TP_STRUCT__entry(__field(pid_t, pid) __field(unsigned long, nr_pages) __field_hex(const void * *, pages) __field_hex(const int *, nodes) __field_hex(int *, status) __field(int, flags)), + TP_fast_assign(tp_assign(pid, pid) tp_assign(nr_pages, nr_pages) tp_assign(pages, pages) tp_assign(nodes, nodes) tp_assign(status, status) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_epoll_pwait +SC_TRACE_EVENT(sys_epoll_pwait, + TP_PROTO(int epfd, struct epoll_event * events, int maxevents, int timeout, const sigset_t * sigmask, size_t sigsetsize), + TP_ARGS(epfd, events, maxevents, timeout, sigmask, sigsetsize), + TP_STRUCT__entry(__field(int, epfd) __field_hex(struct epoll_event *, events) __field(int, maxevents) __field(int, timeout) __field_hex(const sigset_t *, sigmask) __field(size_t, sigsetsize)), + TP_fast_assign(tp_assign(epfd, epfd) tp_assign(events, events) tp_assign(maxevents, maxevents) tp_assign(timeout, timeout) tp_assign(sigmask, sigmask) tp_assign(sigsetsize, sigsetsize)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_process_vm_readv +SC_TRACE_EVENT(sys_process_vm_readv, + TP_PROTO(pid_t pid, const struct iovec * lvec, unsigned long liovcnt, const struct iovec * rvec, unsigned long riovcnt, unsigned long flags), + TP_ARGS(pid, lvec, liovcnt, rvec, riovcnt, flags), + TP_STRUCT__entry(__field(pid_t, pid) __field_hex(const struct iovec *, lvec) __field(unsigned long, liovcnt) __field_hex(const struct iovec *, rvec) __field(unsigned long, riovcnt) __field(unsigned long, flags)), + TP_fast_assign(tp_assign(pid, pid) tp_assign(lvec, lvec) tp_assign(liovcnt, liovcnt) tp_assign(rvec, rvec) tp_assign(riovcnt, riovcnt) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_process_vm_writev +SC_TRACE_EVENT(sys_process_vm_writev, + TP_PROTO(pid_t pid, const struct iovec * lvec, unsigned long liovcnt, const struct iovec * rvec, unsigned long riovcnt, unsigned long flags), + TP_ARGS(pid, lvec, liovcnt, rvec, riovcnt, flags), + TP_STRUCT__entry(__field(pid_t, pid) __field_hex(const struct iovec *, lvec) __field(unsigned long, liovcnt) __field_hex(const struct iovec *, rvec) __field(unsigned long, riovcnt) __field(unsigned long, flags)), + TP_fast_assign(tp_assign(pid, pid) tp_assign(lvec, lvec) tp_assign(liovcnt, liovcnt) tp_assign(rvec, rvec) tp_assign(riovcnt, riovcnt) tp_assign(flags, flags)), + TP_printk() +) +#endif + +#endif /* _TRACE_SYSCALLS_POINTERS_H */ + +/* This part must be outside protection */ +#include "../../../probes/define_trace.h" + +#else /* CREATE_SYSCALL_TABLE */ + +#include "x86-64-syscalls-3.10.0-rc7_pointers_override.h" +#include "syscalls_pointers_override.h" + +#ifndef OVERRIDE_TABLE_64_sys_read +TRACE_SYSCALL_TABLE(sys_read, sys_read, 0, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_write +TRACE_SYSCALL_TABLE(sys_write, sys_write, 1, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_open +TRACE_SYSCALL_TABLE(sys_open, sys_open, 2, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_newstat +TRACE_SYSCALL_TABLE(sys_newstat, sys_newstat, 4, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_newfstat +TRACE_SYSCALL_TABLE(sys_newfstat, sys_newfstat, 5, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_newlstat +TRACE_SYSCALL_TABLE(sys_newlstat, sys_newlstat, 6, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_poll +TRACE_SYSCALL_TABLE(sys_poll, sys_poll, 7, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_rt_sigaction +TRACE_SYSCALL_TABLE(sys_rt_sigaction, sys_rt_sigaction, 13, 4) +#endif +#ifndef OVERRIDE_TABLE_64_sys_rt_sigprocmask +TRACE_SYSCALL_TABLE(sys_rt_sigprocmask, sys_rt_sigprocmask, 14, 4) +#endif +#ifndef OVERRIDE_TABLE_64_sys_pread64 +TRACE_SYSCALL_TABLE(sys_pread64, sys_pread64, 17, 4) +#endif +#ifndef OVERRIDE_TABLE_64_sys_pwrite64 +TRACE_SYSCALL_TABLE(sys_pwrite64, sys_pwrite64, 18, 4) +#endif +#ifndef OVERRIDE_TABLE_64_sys_readv +TRACE_SYSCALL_TABLE(sys_readv, sys_readv, 19, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_writev +TRACE_SYSCALL_TABLE(sys_writev, sys_writev, 20, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_access +TRACE_SYSCALL_TABLE(sys_access, sys_access, 21, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_pipe +TRACE_SYSCALL_TABLE(sys_pipe, sys_pipe, 22, 1) +#endif +#ifndef OVERRIDE_TABLE_64_sys_select +TRACE_SYSCALL_TABLE(sys_select, sys_select, 23, 5) +#endif +#ifndef OVERRIDE_TABLE_64_sys_mincore +TRACE_SYSCALL_TABLE(sys_mincore, sys_mincore, 27, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_shmat +TRACE_SYSCALL_TABLE(sys_shmat, sys_shmat, 30, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_shmctl +TRACE_SYSCALL_TABLE(sys_shmctl, sys_shmctl, 31, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_nanosleep +TRACE_SYSCALL_TABLE(sys_nanosleep, sys_nanosleep, 35, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_getitimer +TRACE_SYSCALL_TABLE(sys_getitimer, sys_getitimer, 36, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_setitimer +TRACE_SYSCALL_TABLE(sys_setitimer, sys_setitimer, 38, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_sendfile64 +TRACE_SYSCALL_TABLE(sys_sendfile64, sys_sendfile64, 40, 4) +#endif +#ifndef OVERRIDE_TABLE_64_sys_connect +TRACE_SYSCALL_TABLE(sys_connect, sys_connect, 42, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_accept +TRACE_SYSCALL_TABLE(sys_accept, sys_accept, 43, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_sendto +TRACE_SYSCALL_TABLE(sys_sendto, sys_sendto, 44, 6) +#endif +#ifndef OVERRIDE_TABLE_64_sys_recvfrom +TRACE_SYSCALL_TABLE(sys_recvfrom, sys_recvfrom, 45, 6) +#endif +#ifndef OVERRIDE_TABLE_64_sys_sendmsg +TRACE_SYSCALL_TABLE(sys_sendmsg, sys_sendmsg, 46, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_recvmsg +TRACE_SYSCALL_TABLE(sys_recvmsg, sys_recvmsg, 47, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_bind +TRACE_SYSCALL_TABLE(sys_bind, sys_bind, 49, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_getsockname +TRACE_SYSCALL_TABLE(sys_getsockname, sys_getsockname, 51, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_getpeername +TRACE_SYSCALL_TABLE(sys_getpeername, sys_getpeername, 52, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_socketpair +TRACE_SYSCALL_TABLE(sys_socketpair, sys_socketpair, 53, 4) +#endif +#ifndef OVERRIDE_TABLE_64_sys_setsockopt +TRACE_SYSCALL_TABLE(sys_setsockopt, sys_setsockopt, 54, 5) +#endif +#ifndef OVERRIDE_TABLE_64_sys_getsockopt +TRACE_SYSCALL_TABLE(sys_getsockopt, sys_getsockopt, 55, 5) +#endif +#ifndef OVERRIDE_TABLE_64_sys_wait4 +TRACE_SYSCALL_TABLE(sys_wait4, sys_wait4, 61, 4) +#endif +#ifndef OVERRIDE_TABLE_64_sys_newuname +TRACE_SYSCALL_TABLE(sys_newuname, sys_newuname, 63, 1) +#endif +#ifndef OVERRIDE_TABLE_64_sys_semop +TRACE_SYSCALL_TABLE(sys_semop, sys_semop, 65, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_shmdt +TRACE_SYSCALL_TABLE(sys_shmdt, sys_shmdt, 67, 1) +#endif +#ifndef OVERRIDE_TABLE_64_sys_msgsnd +TRACE_SYSCALL_TABLE(sys_msgsnd, sys_msgsnd, 69, 4) +#endif +#ifndef OVERRIDE_TABLE_64_sys_msgrcv +TRACE_SYSCALL_TABLE(sys_msgrcv, sys_msgrcv, 70, 5) +#endif +#ifndef OVERRIDE_TABLE_64_sys_msgctl +TRACE_SYSCALL_TABLE(sys_msgctl, sys_msgctl, 71, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_truncate +TRACE_SYSCALL_TABLE(sys_truncate, sys_truncate, 76, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_getdents +TRACE_SYSCALL_TABLE(sys_getdents, sys_getdents, 78, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_getcwd +TRACE_SYSCALL_TABLE(sys_getcwd, sys_getcwd, 79, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_chdir +TRACE_SYSCALL_TABLE(sys_chdir, sys_chdir, 80, 1) +#endif +#ifndef OVERRIDE_TABLE_64_sys_rename +TRACE_SYSCALL_TABLE(sys_rename, sys_rename, 82, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_mkdir +TRACE_SYSCALL_TABLE(sys_mkdir, sys_mkdir, 83, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_rmdir +TRACE_SYSCALL_TABLE(sys_rmdir, sys_rmdir, 84, 1) +#endif +#ifndef OVERRIDE_TABLE_64_sys_creat +TRACE_SYSCALL_TABLE(sys_creat, sys_creat, 85, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_link +TRACE_SYSCALL_TABLE(sys_link, sys_link, 86, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_unlink +TRACE_SYSCALL_TABLE(sys_unlink, sys_unlink, 87, 1) +#endif +#ifndef OVERRIDE_TABLE_64_sys_symlink +TRACE_SYSCALL_TABLE(sys_symlink, sys_symlink, 88, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_readlink +TRACE_SYSCALL_TABLE(sys_readlink, sys_readlink, 89, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_chmod +TRACE_SYSCALL_TABLE(sys_chmod, sys_chmod, 90, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_chown +TRACE_SYSCALL_TABLE(sys_chown, sys_chown, 92, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_lchown +TRACE_SYSCALL_TABLE(sys_lchown, sys_lchown, 94, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_gettimeofday +TRACE_SYSCALL_TABLE(sys_gettimeofday, sys_gettimeofday, 96, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_getrlimit +TRACE_SYSCALL_TABLE(sys_getrlimit, sys_getrlimit, 97, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_getrusage +TRACE_SYSCALL_TABLE(sys_getrusage, sys_getrusage, 98, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_sysinfo +TRACE_SYSCALL_TABLE(sys_sysinfo, sys_sysinfo, 99, 1) +#endif +#ifndef OVERRIDE_TABLE_64_sys_times +TRACE_SYSCALL_TABLE(sys_times, sys_times, 100, 1) +#endif +#ifndef OVERRIDE_TABLE_64_sys_syslog +TRACE_SYSCALL_TABLE(sys_syslog, sys_syslog, 103, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_getgroups +TRACE_SYSCALL_TABLE(sys_getgroups, sys_getgroups, 115, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_setgroups +TRACE_SYSCALL_TABLE(sys_setgroups, sys_setgroups, 116, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_getresuid +TRACE_SYSCALL_TABLE(sys_getresuid, sys_getresuid, 118, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_getresgid +TRACE_SYSCALL_TABLE(sys_getresgid, sys_getresgid, 120, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_rt_sigpending +TRACE_SYSCALL_TABLE(sys_rt_sigpending, sys_rt_sigpending, 127, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_rt_sigtimedwait +TRACE_SYSCALL_TABLE(sys_rt_sigtimedwait, sys_rt_sigtimedwait, 128, 4) +#endif +#ifndef OVERRIDE_TABLE_64_sys_rt_sigqueueinfo +TRACE_SYSCALL_TABLE(sys_rt_sigqueueinfo, sys_rt_sigqueueinfo, 129, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_rt_sigsuspend +TRACE_SYSCALL_TABLE(sys_rt_sigsuspend, sys_rt_sigsuspend, 130, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_sigaltstack +TRACE_SYSCALL_TABLE(sys_sigaltstack, sys_sigaltstack, 131, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_utime +TRACE_SYSCALL_TABLE(sys_utime, sys_utime, 132, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_mknod +TRACE_SYSCALL_TABLE(sys_mknod, sys_mknod, 133, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_ustat +TRACE_SYSCALL_TABLE(sys_ustat, sys_ustat, 136, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_statfs +TRACE_SYSCALL_TABLE(sys_statfs, sys_statfs, 137, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_fstatfs +TRACE_SYSCALL_TABLE(sys_fstatfs, sys_fstatfs, 138, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_sched_setparam +TRACE_SYSCALL_TABLE(sys_sched_setparam, sys_sched_setparam, 142, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_sched_getparam +TRACE_SYSCALL_TABLE(sys_sched_getparam, sys_sched_getparam, 143, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_sched_setscheduler +TRACE_SYSCALL_TABLE(sys_sched_setscheduler, sys_sched_setscheduler, 144, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_sched_rr_get_interval +TRACE_SYSCALL_TABLE(sys_sched_rr_get_interval, sys_sched_rr_get_interval, 148, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_pivot_root +TRACE_SYSCALL_TABLE(sys_pivot_root, sys_pivot_root, 155, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_sysctl +TRACE_SYSCALL_TABLE(sys_sysctl, sys_sysctl, 156, 1) +#endif +#ifndef OVERRIDE_TABLE_64_sys_adjtimex +TRACE_SYSCALL_TABLE(sys_adjtimex, sys_adjtimex, 159, 1) +#endif +#ifndef OVERRIDE_TABLE_64_sys_setrlimit +TRACE_SYSCALL_TABLE(sys_setrlimit, sys_setrlimit, 160, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_chroot +TRACE_SYSCALL_TABLE(sys_chroot, sys_chroot, 161, 1) +#endif +#ifndef OVERRIDE_TABLE_64_sys_acct +TRACE_SYSCALL_TABLE(sys_acct, sys_acct, 163, 1) +#endif +#ifndef OVERRIDE_TABLE_64_sys_settimeofday +TRACE_SYSCALL_TABLE(sys_settimeofday, sys_settimeofday, 164, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_mount +TRACE_SYSCALL_TABLE(sys_mount, sys_mount, 165, 5) +#endif +#ifndef OVERRIDE_TABLE_64_sys_umount +TRACE_SYSCALL_TABLE(sys_umount, sys_umount, 166, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_swapon +TRACE_SYSCALL_TABLE(sys_swapon, sys_swapon, 167, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_swapoff +TRACE_SYSCALL_TABLE(sys_swapoff, sys_swapoff, 168, 1) +#endif +#ifndef OVERRIDE_TABLE_64_sys_reboot +TRACE_SYSCALL_TABLE(sys_reboot, sys_reboot, 169, 4) +#endif +#ifndef OVERRIDE_TABLE_64_sys_sethostname +TRACE_SYSCALL_TABLE(sys_sethostname, sys_sethostname, 170, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_setdomainname +TRACE_SYSCALL_TABLE(sys_setdomainname, sys_setdomainname, 171, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_init_module +TRACE_SYSCALL_TABLE(sys_init_module, sys_init_module, 175, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_delete_module +TRACE_SYSCALL_TABLE(sys_delete_module, sys_delete_module, 176, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_quotactl +TRACE_SYSCALL_TABLE(sys_quotactl, sys_quotactl, 179, 4) +#endif +#ifndef OVERRIDE_TABLE_64_sys_setxattr +TRACE_SYSCALL_TABLE(sys_setxattr, sys_setxattr, 188, 5) +#endif +#ifndef OVERRIDE_TABLE_64_sys_lsetxattr +TRACE_SYSCALL_TABLE(sys_lsetxattr, sys_lsetxattr, 189, 5) +#endif +#ifndef OVERRIDE_TABLE_64_sys_fsetxattr +TRACE_SYSCALL_TABLE(sys_fsetxattr, sys_fsetxattr, 190, 5) +#endif +#ifndef OVERRIDE_TABLE_64_sys_getxattr +TRACE_SYSCALL_TABLE(sys_getxattr, sys_getxattr, 191, 4) +#endif +#ifndef OVERRIDE_TABLE_64_sys_lgetxattr +TRACE_SYSCALL_TABLE(sys_lgetxattr, sys_lgetxattr, 192, 4) +#endif +#ifndef OVERRIDE_TABLE_64_sys_fgetxattr +TRACE_SYSCALL_TABLE(sys_fgetxattr, sys_fgetxattr, 193, 4) +#endif +#ifndef OVERRIDE_TABLE_64_sys_listxattr +TRACE_SYSCALL_TABLE(sys_listxattr, sys_listxattr, 194, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_llistxattr +TRACE_SYSCALL_TABLE(sys_llistxattr, sys_llistxattr, 195, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_flistxattr +TRACE_SYSCALL_TABLE(sys_flistxattr, sys_flistxattr, 196, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_removexattr +TRACE_SYSCALL_TABLE(sys_removexattr, sys_removexattr, 197, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_lremovexattr +TRACE_SYSCALL_TABLE(sys_lremovexattr, sys_lremovexattr, 198, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_fremovexattr +TRACE_SYSCALL_TABLE(sys_fremovexattr, sys_fremovexattr, 199, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_time +TRACE_SYSCALL_TABLE(sys_time, sys_time, 201, 1) +#endif +#ifndef OVERRIDE_TABLE_64_sys_futex +TRACE_SYSCALL_TABLE(sys_futex, sys_futex, 202, 6) +#endif +#ifndef OVERRIDE_TABLE_64_sys_sched_setaffinity +TRACE_SYSCALL_TABLE(sys_sched_setaffinity, sys_sched_setaffinity, 203, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_sched_getaffinity +TRACE_SYSCALL_TABLE(sys_sched_getaffinity, sys_sched_getaffinity, 204, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_io_setup +TRACE_SYSCALL_TABLE(sys_io_setup, sys_io_setup, 206, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_io_getevents +TRACE_SYSCALL_TABLE(sys_io_getevents, sys_io_getevents, 208, 5) +#endif +#ifndef OVERRIDE_TABLE_64_sys_io_submit +TRACE_SYSCALL_TABLE(sys_io_submit, sys_io_submit, 209, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_io_cancel +TRACE_SYSCALL_TABLE(sys_io_cancel, sys_io_cancel, 210, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_lookup_dcookie +TRACE_SYSCALL_TABLE(sys_lookup_dcookie, sys_lookup_dcookie, 212, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_getdents64 +TRACE_SYSCALL_TABLE(sys_getdents64, sys_getdents64, 217, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_set_tid_address +TRACE_SYSCALL_TABLE(sys_set_tid_address, sys_set_tid_address, 218, 1) +#endif +#ifndef OVERRIDE_TABLE_64_sys_semtimedop +TRACE_SYSCALL_TABLE(sys_semtimedop, sys_semtimedop, 220, 4) +#endif +#ifndef OVERRIDE_TABLE_64_sys_timer_create +TRACE_SYSCALL_TABLE(sys_timer_create, sys_timer_create, 222, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_timer_settime +TRACE_SYSCALL_TABLE(sys_timer_settime, sys_timer_settime, 223, 4) +#endif +#ifndef OVERRIDE_TABLE_64_sys_timer_gettime +TRACE_SYSCALL_TABLE(sys_timer_gettime, sys_timer_gettime, 224, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_clock_settime +TRACE_SYSCALL_TABLE(sys_clock_settime, sys_clock_settime, 227, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_clock_gettime +TRACE_SYSCALL_TABLE(sys_clock_gettime, sys_clock_gettime, 228, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_clock_getres +TRACE_SYSCALL_TABLE(sys_clock_getres, sys_clock_getres, 229, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_clock_nanosleep +TRACE_SYSCALL_TABLE(sys_clock_nanosleep, sys_clock_nanosleep, 230, 4) +#endif +#ifndef OVERRIDE_TABLE_64_sys_epoll_wait +TRACE_SYSCALL_TABLE(sys_epoll_wait, sys_epoll_wait, 232, 4) +#endif +#ifndef OVERRIDE_TABLE_64_sys_epoll_ctl +TRACE_SYSCALL_TABLE(sys_epoll_ctl, sys_epoll_ctl, 233, 4) +#endif +#ifndef OVERRIDE_TABLE_64_sys_utimes +TRACE_SYSCALL_TABLE(sys_utimes, sys_utimes, 235, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_mbind +TRACE_SYSCALL_TABLE(sys_mbind, sys_mbind, 237, 6) +#endif +#ifndef OVERRIDE_TABLE_64_sys_set_mempolicy +TRACE_SYSCALL_TABLE(sys_set_mempolicy, sys_set_mempolicy, 238, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_get_mempolicy +TRACE_SYSCALL_TABLE(sys_get_mempolicy, sys_get_mempolicy, 239, 5) +#endif +#ifndef OVERRIDE_TABLE_64_sys_mq_open +TRACE_SYSCALL_TABLE(sys_mq_open, sys_mq_open, 240, 4) +#endif +#ifndef OVERRIDE_TABLE_64_sys_mq_unlink +TRACE_SYSCALL_TABLE(sys_mq_unlink, sys_mq_unlink, 241, 1) +#endif +#ifndef OVERRIDE_TABLE_64_sys_mq_timedsend +TRACE_SYSCALL_TABLE(sys_mq_timedsend, sys_mq_timedsend, 242, 5) +#endif +#ifndef OVERRIDE_TABLE_64_sys_mq_timedreceive +TRACE_SYSCALL_TABLE(sys_mq_timedreceive, sys_mq_timedreceive, 243, 5) +#endif +#ifndef OVERRIDE_TABLE_64_sys_mq_notify +TRACE_SYSCALL_TABLE(sys_mq_notify, sys_mq_notify, 244, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_mq_getsetattr +TRACE_SYSCALL_TABLE(sys_mq_getsetattr, sys_mq_getsetattr, 245, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_kexec_load +TRACE_SYSCALL_TABLE(sys_kexec_load, sys_kexec_load, 246, 4) +#endif +#ifndef OVERRIDE_TABLE_64_sys_waitid +TRACE_SYSCALL_TABLE(sys_waitid, sys_waitid, 247, 5) +#endif +#ifndef OVERRIDE_TABLE_64_sys_add_key +TRACE_SYSCALL_TABLE(sys_add_key, sys_add_key, 248, 5) +#endif +#ifndef OVERRIDE_TABLE_64_sys_request_key +TRACE_SYSCALL_TABLE(sys_request_key, sys_request_key, 249, 4) +#endif +#ifndef OVERRIDE_TABLE_64_sys_inotify_add_watch +TRACE_SYSCALL_TABLE(sys_inotify_add_watch, sys_inotify_add_watch, 254, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_migrate_pages +TRACE_SYSCALL_TABLE(sys_migrate_pages, sys_migrate_pages, 256, 4) +#endif +#ifndef OVERRIDE_TABLE_64_sys_openat +TRACE_SYSCALL_TABLE(sys_openat, sys_openat, 257, 4) +#endif +#ifndef OVERRIDE_TABLE_64_sys_mkdirat +TRACE_SYSCALL_TABLE(sys_mkdirat, sys_mkdirat, 258, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_mknodat +TRACE_SYSCALL_TABLE(sys_mknodat, sys_mknodat, 259, 4) +#endif +#ifndef OVERRIDE_TABLE_64_sys_fchownat +TRACE_SYSCALL_TABLE(sys_fchownat, sys_fchownat, 260, 5) +#endif +#ifndef OVERRIDE_TABLE_64_sys_futimesat +TRACE_SYSCALL_TABLE(sys_futimesat, sys_futimesat, 261, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_newfstatat +TRACE_SYSCALL_TABLE(sys_newfstatat, sys_newfstatat, 262, 4) +#endif +#ifndef OVERRIDE_TABLE_64_sys_unlinkat +TRACE_SYSCALL_TABLE(sys_unlinkat, sys_unlinkat, 263, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_renameat +TRACE_SYSCALL_TABLE(sys_renameat, sys_renameat, 264, 4) +#endif +#ifndef OVERRIDE_TABLE_64_sys_linkat +TRACE_SYSCALL_TABLE(sys_linkat, sys_linkat, 265, 5) +#endif +#ifndef OVERRIDE_TABLE_64_sys_symlinkat +TRACE_SYSCALL_TABLE(sys_symlinkat, sys_symlinkat, 266, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_readlinkat +TRACE_SYSCALL_TABLE(sys_readlinkat, sys_readlinkat, 267, 4) +#endif +#ifndef OVERRIDE_TABLE_64_sys_fchmodat +TRACE_SYSCALL_TABLE(sys_fchmodat, sys_fchmodat, 268, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_faccessat +TRACE_SYSCALL_TABLE(sys_faccessat, sys_faccessat, 269, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_pselect6 +TRACE_SYSCALL_TABLE(sys_pselect6, sys_pselect6, 270, 6) +#endif +#ifndef OVERRIDE_TABLE_64_sys_ppoll +TRACE_SYSCALL_TABLE(sys_ppoll, sys_ppoll, 271, 5) +#endif +#ifndef OVERRIDE_TABLE_64_sys_set_robust_list +TRACE_SYSCALL_TABLE(sys_set_robust_list, sys_set_robust_list, 273, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_get_robust_list +TRACE_SYSCALL_TABLE(sys_get_robust_list, sys_get_robust_list, 274, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_splice +TRACE_SYSCALL_TABLE(sys_splice, sys_splice, 275, 6) +#endif +#ifndef OVERRIDE_TABLE_64_sys_vmsplice +TRACE_SYSCALL_TABLE(sys_vmsplice, sys_vmsplice, 278, 4) +#endif +#ifndef OVERRIDE_TABLE_64_sys_move_pages +TRACE_SYSCALL_TABLE(sys_move_pages, sys_move_pages, 279, 6) +#endif +#ifndef OVERRIDE_TABLE_64_sys_utimensat +TRACE_SYSCALL_TABLE(sys_utimensat, sys_utimensat, 280, 4) +#endif +#ifndef OVERRIDE_TABLE_64_sys_epoll_pwait +TRACE_SYSCALL_TABLE(sys_epoll_pwait, sys_epoll_pwait, 281, 6) +#endif +#ifndef OVERRIDE_TABLE_64_sys_signalfd +TRACE_SYSCALL_TABLE(sys_signalfd, sys_signalfd, 282, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_timerfd_settime +TRACE_SYSCALL_TABLE(sys_timerfd_settime, sys_timerfd_settime, 286, 4) +#endif +#ifndef OVERRIDE_TABLE_64_sys_timerfd_gettime +TRACE_SYSCALL_TABLE(sys_timerfd_gettime, sys_timerfd_gettime, 287, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_accept4 +TRACE_SYSCALL_TABLE(sys_accept4, sys_accept4, 288, 4) +#endif +#ifndef OVERRIDE_TABLE_64_sys_signalfd4 +TRACE_SYSCALL_TABLE(sys_signalfd4, sys_signalfd4, 289, 4) +#endif +#ifndef OVERRIDE_TABLE_64_sys_pipe2 +TRACE_SYSCALL_TABLE(sys_pipe2, sys_pipe2, 293, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_preadv +TRACE_SYSCALL_TABLE(sys_preadv, sys_preadv, 295, 5) +#endif +#ifndef OVERRIDE_TABLE_64_sys_pwritev +TRACE_SYSCALL_TABLE(sys_pwritev, sys_pwritev, 296, 5) +#endif +#ifndef OVERRIDE_TABLE_64_sys_rt_tgsigqueueinfo +TRACE_SYSCALL_TABLE(sys_rt_tgsigqueueinfo, sys_rt_tgsigqueueinfo, 297, 4) +#endif +#ifndef OVERRIDE_TABLE_64_sys_perf_event_open +TRACE_SYSCALL_TABLE(sys_perf_event_open, sys_perf_event_open, 298, 5) +#endif +#ifndef OVERRIDE_TABLE_64_sys_recvmmsg +TRACE_SYSCALL_TABLE(sys_recvmmsg, sys_recvmmsg, 299, 5) +#endif +#ifndef OVERRIDE_TABLE_64_sys_fanotify_mark +TRACE_SYSCALL_TABLE(sys_fanotify_mark, sys_fanotify_mark, 301, 5) +#endif +#ifndef OVERRIDE_TABLE_64_sys_prlimit64 +TRACE_SYSCALL_TABLE(sys_prlimit64, sys_prlimit64, 302, 4) +#endif +#ifndef OVERRIDE_TABLE_64_sys_name_to_handle_at +TRACE_SYSCALL_TABLE(sys_name_to_handle_at, sys_name_to_handle_at, 303, 5) +#endif +#ifndef OVERRIDE_TABLE_64_sys_open_by_handle_at +TRACE_SYSCALL_TABLE(sys_open_by_handle_at, sys_open_by_handle_at, 304, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_clock_adjtime +TRACE_SYSCALL_TABLE(sys_clock_adjtime, sys_clock_adjtime, 305, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_sendmmsg +TRACE_SYSCALL_TABLE(sys_sendmmsg, sys_sendmmsg, 307, 4) +#endif +#ifndef OVERRIDE_TABLE_64_sys_getcpu +TRACE_SYSCALL_TABLE(sys_getcpu, sys_getcpu, 309, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_process_vm_readv +TRACE_SYSCALL_TABLE(sys_process_vm_readv, sys_process_vm_readv, 310, 6) +#endif +#ifndef OVERRIDE_TABLE_64_sys_process_vm_writev +TRACE_SYSCALL_TABLE(sys_process_vm_writev, sys_process_vm_writev, 311, 6) +#endif +#ifndef OVERRIDE_TABLE_64_sys_finit_module +TRACE_SYSCALL_TABLE(sys_finit_module, sys_finit_module, 313, 3) +#endif + +#endif /* CREATE_SYSCALL_TABLE */ --- linux-3.11.0.orig/ubuntu/lttng-modules/instrumentation/syscalls/headers/mips-64-syscalls-3.5.0_pointers_override.h +++ linux-3.11.0/ubuntu/lttng-modules/instrumentation/syscalls/headers/mips-64-syscalls-3.5.0_pointers_override.h @@ -0,0 +1,8 @@ +#ifndef CREATE_SYSCALL_TABLE + +#else /* CREATE_SYSCALL_TABLE */ + +#define OVERRIDE_TABLE_64_sys_clone +TRACE_SYSCALL_TABLE(sys_clone, sys_clone, 5055, 0) + +#endif /* CREATE_SYSCALL_TABLE */ --- linux-3.11.0.orig/ubuntu/lttng-modules/instrumentation/syscalls/headers/syscalls_pointers.h +++ linux-3.11.0/ubuntu/lttng-modules/instrumentation/syscalls/headers/syscalls_pointers.h @@ -0,0 +1,15 @@ +#ifdef CONFIG_X86_64 +#include "x86-64-syscalls-3.10.0-rc7_pointers.h" +#endif + +#ifdef CONFIG_X86_32 +#include "x86-32-syscalls-3.1.0-rc6_pointers.h" +#endif + +#ifdef CONFIG_ARM +#include "arm-32-syscalls-3.4.25_pointers.h" +#endif + +#ifdef CONFIG_PPC +#include "powerpc-32-syscalls-3.0.34_pointers.h" +#endif --- linux-3.11.0.orig/ubuntu/lttng-modules/instrumentation/syscalls/headers/powerpc-32-syscalls-3.0.34_pointers_override.h +++ linux-3.11.0/ubuntu/lttng-modules/instrumentation/syscalls/headers/powerpc-32-syscalls-3.0.34_pointers_override.h @@ -0,0 +1,36 @@ +#define OVERRIDE_TABLE_32_sys_mmap2 + +#ifndef CREATE_SYSCALL_TABLE + +SC_TRACE_EVENT(sys_mmap2, + TP_PROTO(void *addr, size_t len, int prot, + int flags, int fd, off_t pgoff), + TP_ARGS(addr, len, prot, flags, fd, pgoff), + TP_STRUCT__entry( + __field_hex(void *, addr) + __field(size_t, len) + __field(int, prot) + __field(int, flags) + __field(int, fd) + __field(off_t, pgoff)), + TP_fast_assign( + tp_assign(addr, addr) + tp_assign(len, len) + tp_assign(prot, prot) + tp_assign(flags, flags) + tp_assign(fd, fd) + tp_assign(pgoff, pgoff)), + TP_printk() +) + +#else /* CREATE_SYSCALL_TABLE */ + +#define OVERRIDE_TABLE_32_sys_execve +TRACE_SYSCALL_TABLE(sys_execve, sys_execve, 11, 3) +#define OVERRIDE_TABLE_32_sys_clone +TRACE_SYSCALL_TABLE(sys_clone, sys_clone, 120, 5) +#define OVERRIDE_TABLE_32_sys_mmap2 +TRACE_SYSCALL_TABLE(sys_mmap2, sys_mmap2, 192, 6) + +#endif /* CREATE_SYSCALL_TABLE */ + --- linux-3.11.0.orig/ubuntu/lttng-modules/instrumentation/syscalls/headers/powerpc-32-syscalls-3.0.34_integers_override.h +++ linux-3.11.0/ubuntu/lttng-modules/instrumentation/syscalls/headers/powerpc-32-syscalls-3.0.34_integers_override.h @@ -0,0 +1,9 @@ +#ifndef CREATE_SYSCALL_TABLE + +#else /* CREATE_SYSCALL_TABLE */ + +#define OVVERRIDE_TABLE_32_sys_mmap +TRACE_SYSCALL_TABLE(sys_mmap, sys_mmap, 90, 6) + +#endif /* CREATE_SYSCALL_TABLE */ + --- linux-3.11.0.orig/ubuntu/lttng-modules/instrumentation/syscalls/headers/syscalls_unknown.h +++ linux-3.11.0/ubuntu/lttng-modules/instrumentation/syscalls/headers/syscalls_unknown.h @@ -0,0 +1,55 @@ +#if !defined(_TRACE_SYSCALLS_UNKNOWN_H) || defined(TRACE_HEADER_MULTI_READ) +#define _TRACE_SYSCALLS_UNKNOWN_H + +#include +#include + +#define UNKNOWN_SYSCALL_NRARGS 6 + +TRACE_EVENT(sys_unknown, + TP_PROTO(unsigned int id, unsigned long *args), + TP_ARGS(id, args), + TP_STRUCT__entry( + __field(unsigned int, id) + __array(unsigned long, args, UNKNOWN_SYSCALL_NRARGS) + ), + TP_fast_assign( + tp_assign(id, id) + tp_memcpy(args, args, UNKNOWN_SYSCALL_NRARGS * sizeof(*args)) + ), + TP_printk() +) +TRACE_EVENT(compat_sys_unknown, + TP_PROTO(unsigned int id, unsigned long *args), + TP_ARGS(id, args), + TP_STRUCT__entry( + __field(unsigned int, id) + __array(unsigned long, args, UNKNOWN_SYSCALL_NRARGS) + ), + TP_fast_assign( + tp_assign(id, id) + tp_memcpy(args, args, UNKNOWN_SYSCALL_NRARGS * sizeof(*args)) + ), + TP_printk() +) +/* + * This is going to hook on sys_exit in the kernel. + * We change the name so we don't clash with the sys_exit syscall entry + * event. + */ +TRACE_EVENT(exit_syscall, + TP_PROTO(struct pt_regs *regs, long ret), + TP_ARGS(regs, ret), + TP_STRUCT__entry( + __field(long, ret) + ), + TP_fast_assign( + tp_assign(ret, ret) + ), + TP_printk() +) + +#endif /* _TRACE_SYSCALLS_UNKNOWN_H */ + +/* This part must be outside protection */ +#include "../../../probes/define_trace.h" --- linux-3.11.0.orig/ubuntu/lttng-modules/instrumentation/syscalls/headers/mips-32-syscalls-3.5.0_integers_override.h +++ linux-3.11.0/ubuntu/lttng-modules/instrumentation/syscalls/headers/mips-32-syscalls-3.5.0_integers_override.h @@ -0,0 +1,3 @@ +/* + * this is a place-holder for MIPS integer syscall definition override. + */ --- linux-3.11.0.orig/ubuntu/lttng-modules/instrumentation/syscalls/headers/mips-32-syscalls-3.5.0_pointers_override.h +++ linux-3.11.0/ubuntu/lttng-modules/instrumentation/syscalls/headers/mips-32-syscalls-3.5.0_pointers_override.h @@ -0,0 +1,8 @@ +#ifndef CREATE_SYSCALL_TABLE + +#else /* CREATE_SYSCALL_TABLE */ + +#define OVERRIDE_TABLE_32_sys_clone +TRACE_SYSCALL_TABLE(sys_clone, sys_clone, 4120, 0) + +#endif /* CREATE_SYSCALL_TABLE */ --- linux-3.11.0.orig/ubuntu/lttng-modules/instrumentation/syscalls/headers/powerpc-32-syscalls-3.0.34_pointers.h +++ linux-3.11.0/ubuntu/lttng-modules/instrumentation/syscalls/headers/powerpc-32-syscalls-3.0.34_pointers.h @@ -0,0 +1,2316 @@ +/* THIS FILE IS AUTO-GENERATED. DO NOT EDIT */ +#ifndef CREATE_SYSCALL_TABLE + +#if !defined(_TRACE_SYSCALLS_POINTERS_H) || defined(TRACE_HEADER_MULTI_READ) +#define _TRACE_SYSCALLS_POINTERS_H + +#include +#include +#include "powerpc-32-syscalls-3.0.34_pointers_override.h" +#include "syscalls_pointers_override.h" + +#ifndef OVERRIDE_32_sys_unlink +SC_TRACE_EVENT(sys_unlink, + TP_PROTO(const char * pathname), + TP_ARGS(pathname), + TP_STRUCT__entry(__string_from_user(pathname, pathname)), + TP_fast_assign(tp_copy_string_from_user(pathname, pathname)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_chdir +SC_TRACE_EVENT(sys_chdir, + TP_PROTO(const char * filename), + TP_ARGS(filename), + TP_STRUCT__entry(__string_from_user(filename, filename)), + TP_fast_assign(tp_copy_string_from_user(filename, filename)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_time +SC_TRACE_EVENT(sys_time, + TP_PROTO(time_t * tloc), + TP_ARGS(tloc), + TP_STRUCT__entry(__field_hex(time_t *, tloc)), + TP_fast_assign(tp_assign(tloc, tloc)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_oldumount +SC_TRACE_EVENT(sys_oldumount, + TP_PROTO(char * name), + TP_ARGS(name), + TP_STRUCT__entry(__string_from_user(name, name)), + TP_fast_assign(tp_copy_string_from_user(name, name)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_stime +SC_TRACE_EVENT(sys_stime, + TP_PROTO(time_t * tptr), + TP_ARGS(tptr), + TP_STRUCT__entry(__field_hex(time_t *, tptr)), + TP_fast_assign(tp_assign(tptr, tptr)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_rmdir +SC_TRACE_EVENT(sys_rmdir, + TP_PROTO(const char * pathname), + TP_ARGS(pathname), + TP_STRUCT__entry(__string_from_user(pathname, pathname)), + TP_fast_assign(tp_copy_string_from_user(pathname, pathname)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_pipe +SC_TRACE_EVENT(sys_pipe, + TP_PROTO(int * fildes), + TP_ARGS(fildes), + TP_STRUCT__entry(__field_hex(int *, fildes)), + TP_fast_assign(tp_assign(fildes, fildes)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_times +SC_TRACE_EVENT(sys_times, + TP_PROTO(struct tms * tbuf), + TP_ARGS(tbuf), + TP_STRUCT__entry(__field_hex(struct tms *, tbuf)), + TP_fast_assign(tp_assign(tbuf, tbuf)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_acct +SC_TRACE_EVENT(sys_acct, + TP_PROTO(const char * name), + TP_ARGS(name), + TP_STRUCT__entry(__string_from_user(name, name)), + TP_fast_assign(tp_copy_string_from_user(name, name)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_olduname +SC_TRACE_EVENT(sys_olduname, + TP_PROTO(struct oldold_utsname * name), + TP_ARGS(name), + TP_STRUCT__entry(__field_hex(struct oldold_utsname *, name)), + TP_fast_assign(tp_assign(name, name)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_chroot +SC_TRACE_EVENT(sys_chroot, + TP_PROTO(const char * filename), + TP_ARGS(filename), + TP_STRUCT__entry(__string_from_user(filename, filename)), + TP_fast_assign(tp_copy_string_from_user(filename, filename)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_sigpending +SC_TRACE_EVENT(sys_sigpending, + TP_PROTO(old_sigset_t * set), + TP_ARGS(set), + TP_STRUCT__entry(__field_hex(old_sigset_t *, set)), + TP_fast_assign(tp_assign(set, set)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_uselib +SC_TRACE_EVENT(sys_uselib, + TP_PROTO(const char * library), + TP_ARGS(library), + TP_STRUCT__entry(__field_hex(const char *, library)), + TP_fast_assign(tp_assign(library, library)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_uname +SC_TRACE_EVENT(sys_uname, + TP_PROTO(struct old_utsname * name), + TP_ARGS(name), + TP_STRUCT__entry(__field_hex(struct old_utsname *, name)), + TP_fast_assign(tp_assign(name, name)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_swapoff +SC_TRACE_EVENT(sys_swapoff, + TP_PROTO(const char * specialfile), + TP_ARGS(specialfile), + TP_STRUCT__entry(__string_from_user(specialfile, specialfile)), + TP_fast_assign(tp_copy_string_from_user(specialfile, specialfile)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_sysinfo +SC_TRACE_EVENT(sys_sysinfo, + TP_PROTO(struct sysinfo * info), + TP_ARGS(info), + TP_STRUCT__entry(__field_hex(struct sysinfo *, info)), + TP_fast_assign(tp_assign(info, info)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_newuname +SC_TRACE_EVENT(sys_newuname, + TP_PROTO(struct new_utsname * name), + TP_ARGS(name), + TP_STRUCT__entry(__field_hex(struct new_utsname *, name)), + TP_fast_assign(tp_assign(name, name)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_adjtimex +SC_TRACE_EVENT(sys_adjtimex, + TP_PROTO(struct timex * txc_p), + TP_ARGS(txc_p), + TP_STRUCT__entry(__field_hex(struct timex *, txc_p)), + TP_fast_assign(tp_assign(txc_p, txc_p)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_sysctl +SC_TRACE_EVENT(sys_sysctl, + TP_PROTO(struct __sysctl_args * args), + TP_ARGS(args), + TP_STRUCT__entry(__field_hex(struct __sysctl_args *, args)), + TP_fast_assign(tp_assign(args, args)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_set_tid_address +SC_TRACE_EVENT(sys_set_tid_address, + TP_PROTO(int * tidptr), + TP_ARGS(tidptr), + TP_STRUCT__entry(__field_hex(int *, tidptr)), + TP_fast_assign(tp_assign(tidptr, tidptr)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_mq_unlink +SC_TRACE_EVENT(sys_mq_unlink, + TP_PROTO(const char * u_name), + TP_ARGS(u_name), + TP_STRUCT__entry(__string_from_user(u_name, u_name)), + TP_fast_assign(tp_copy_string_from_user(u_name, u_name)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_creat +SC_TRACE_EVENT(sys_creat, + TP_PROTO(const char * pathname, int mode), + TP_ARGS(pathname, mode), + TP_STRUCT__entry(__string_from_user(pathname, pathname) __field(int, mode)), + TP_fast_assign(tp_copy_string_from_user(pathname, pathname) tp_assign(mode, mode)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_link +SC_TRACE_EVENT(sys_link, + TP_PROTO(const char * oldname, const char * newname), + TP_ARGS(oldname, newname), + TP_STRUCT__entry(__string_from_user(oldname, oldname) __string_from_user(newname, newname)), + TP_fast_assign(tp_copy_string_from_user(oldname, oldname) tp_copy_string_from_user(newname, newname)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_chmod +SC_TRACE_EVENT(sys_chmod, + TP_PROTO(const char * filename, mode_t mode), + TP_ARGS(filename, mode), + TP_STRUCT__entry(__string_from_user(filename, filename) __field(mode_t, mode)), + TP_fast_assign(tp_copy_string_from_user(filename, filename) tp_assign(mode, mode)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_stat +SC_TRACE_EVENT(sys_stat, + TP_PROTO(const char * filename, struct __old_kernel_stat * statbuf), + TP_ARGS(filename, statbuf), + TP_STRUCT__entry(__string_from_user(filename, filename) __field_hex(struct __old_kernel_stat *, statbuf)), + TP_fast_assign(tp_copy_string_from_user(filename, filename) tp_assign(statbuf, statbuf)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_fstat +SC_TRACE_EVENT(sys_fstat, + TP_PROTO(unsigned int fd, struct __old_kernel_stat * statbuf), + TP_ARGS(fd, statbuf), + TP_STRUCT__entry(__field(unsigned int, fd) __field_hex(struct __old_kernel_stat *, statbuf)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(statbuf, statbuf)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_utime +SC_TRACE_EVENT(sys_utime, + TP_PROTO(char * filename, struct utimbuf * times), + TP_ARGS(filename, times), + TP_STRUCT__entry(__string_from_user(filename, filename) __field_hex(struct utimbuf *, times)), + TP_fast_assign(tp_copy_string_from_user(filename, filename) tp_assign(times, times)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_access +SC_TRACE_EVENT(sys_access, + TP_PROTO(const char * filename, int mode), + TP_ARGS(filename, mode), + TP_STRUCT__entry(__string_from_user(filename, filename) __field(int, mode)), + TP_fast_assign(tp_copy_string_from_user(filename, filename) tp_assign(mode, mode)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_rename +SC_TRACE_EVENT(sys_rename, + TP_PROTO(const char * oldname, const char * newname), + TP_ARGS(oldname, newname), + TP_STRUCT__entry(__string_from_user(oldname, oldname) __string_from_user(newname, newname)), + TP_fast_assign(tp_copy_string_from_user(oldname, oldname) tp_copy_string_from_user(newname, newname)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_mkdir +SC_TRACE_EVENT(sys_mkdir, + TP_PROTO(const char * pathname, int mode), + TP_ARGS(pathname, mode), + TP_STRUCT__entry(__string_from_user(pathname, pathname) __field(int, mode)), + TP_fast_assign(tp_copy_string_from_user(pathname, pathname) tp_assign(mode, mode)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_umount +SC_TRACE_EVENT(sys_umount, + TP_PROTO(char * name, int flags), + TP_ARGS(name, flags), + TP_STRUCT__entry(__string_from_user(name, name) __field(int, flags)), + TP_fast_assign(tp_copy_string_from_user(name, name) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_ustat +SC_TRACE_EVENT(sys_ustat, + TP_PROTO(unsigned dev, struct ustat * ubuf), + TP_ARGS(dev, ubuf), + TP_STRUCT__entry(__field(unsigned, dev) __field_hex(struct ustat *, ubuf)), + TP_fast_assign(tp_assign(dev, dev) tp_assign(ubuf, ubuf)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_sethostname +SC_TRACE_EVENT(sys_sethostname, + TP_PROTO(char * name, int len), + TP_ARGS(name, len), + TP_STRUCT__entry(__string_from_user(name, name) __field(int, len)), + TP_fast_assign(tp_copy_string_from_user(name, name) tp_assign(len, len)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_setrlimit +SC_TRACE_EVENT(sys_setrlimit, + TP_PROTO(unsigned int resource, struct rlimit * rlim), + TP_ARGS(resource, rlim), + TP_STRUCT__entry(__field(unsigned int, resource) __field_hex(struct rlimit *, rlim)), + TP_fast_assign(tp_assign(resource, resource) tp_assign(rlim, rlim)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_old_getrlimit +SC_TRACE_EVENT(sys_old_getrlimit, + TP_PROTO(unsigned int resource, struct rlimit * rlim), + TP_ARGS(resource, rlim), + TP_STRUCT__entry(__field(unsigned int, resource) __field_hex(struct rlimit *, rlim)), + TP_fast_assign(tp_assign(resource, resource) tp_assign(rlim, rlim)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_getrusage +SC_TRACE_EVENT(sys_getrusage, + TP_PROTO(int who, struct rusage * ru), + TP_ARGS(who, ru), + TP_STRUCT__entry(__field(int, who) __field_hex(struct rusage *, ru)), + TP_fast_assign(tp_assign(who, who) tp_assign(ru, ru)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_gettimeofday +SC_TRACE_EVENT(sys_gettimeofday, + TP_PROTO(struct timeval * tv, struct timezone * tz), + TP_ARGS(tv, tz), + TP_STRUCT__entry(__field_hex(struct timeval *, tv) __field_hex(struct timezone *, tz)), + TP_fast_assign(tp_assign(tv, tv) tp_assign(tz, tz)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_settimeofday +SC_TRACE_EVENT(sys_settimeofday, + TP_PROTO(struct timeval * tv, struct timezone * tz), + TP_ARGS(tv, tz), + TP_STRUCT__entry(__field_hex(struct timeval *, tv) __field_hex(struct timezone *, tz)), + TP_fast_assign(tp_assign(tv, tv) tp_assign(tz, tz)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_getgroups +SC_TRACE_EVENT(sys_getgroups, + TP_PROTO(int gidsetsize, gid_t * grouplist), + TP_ARGS(gidsetsize, grouplist), + TP_STRUCT__entry(__field(int, gidsetsize) __field_hex(gid_t *, grouplist)), + TP_fast_assign(tp_assign(gidsetsize, gidsetsize) tp_assign(grouplist, grouplist)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_setgroups +SC_TRACE_EVENT(sys_setgroups, + TP_PROTO(int gidsetsize, gid_t * grouplist), + TP_ARGS(gidsetsize, grouplist), + TP_STRUCT__entry(__field(int, gidsetsize) __field_hex(gid_t *, grouplist)), + TP_fast_assign(tp_assign(gidsetsize, gidsetsize) tp_assign(grouplist, grouplist)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_symlink +SC_TRACE_EVENT(sys_symlink, + TP_PROTO(const char * oldname, const char * newname), + TP_ARGS(oldname, newname), + TP_STRUCT__entry(__string_from_user(oldname, oldname) __string_from_user(newname, newname)), + TP_fast_assign(tp_copy_string_from_user(oldname, oldname) tp_copy_string_from_user(newname, newname)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_lstat +SC_TRACE_EVENT(sys_lstat, + TP_PROTO(const char * filename, struct __old_kernel_stat * statbuf), + TP_ARGS(filename, statbuf), + TP_STRUCT__entry(__string_from_user(filename, filename) __field_hex(struct __old_kernel_stat *, statbuf)), + TP_fast_assign(tp_copy_string_from_user(filename, filename) tp_assign(statbuf, statbuf)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_swapon +SC_TRACE_EVENT(sys_swapon, + TP_PROTO(const char * specialfile, int swap_flags), + TP_ARGS(specialfile, swap_flags), + TP_STRUCT__entry(__string_from_user(specialfile, specialfile) __field(int, swap_flags)), + TP_fast_assign(tp_copy_string_from_user(specialfile, specialfile) tp_assign(swap_flags, swap_flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_truncate +SC_TRACE_EVENT(sys_truncate, + TP_PROTO(const char * path, long length), + TP_ARGS(path, length), + TP_STRUCT__entry(__string_from_user(path, path) __field(long, length)), + TP_fast_assign(tp_copy_string_from_user(path, path) tp_assign(length, length)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_statfs +SC_TRACE_EVENT(sys_statfs, + TP_PROTO(const char * pathname, struct statfs * buf), + TP_ARGS(pathname, buf), + TP_STRUCT__entry(__string_from_user(pathname, pathname) __field_hex(struct statfs *, buf)), + TP_fast_assign(tp_copy_string_from_user(pathname, pathname) tp_assign(buf, buf)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_fstatfs +SC_TRACE_EVENT(sys_fstatfs, + TP_PROTO(unsigned int fd, struct statfs * buf), + TP_ARGS(fd, buf), + TP_STRUCT__entry(__field(unsigned int, fd) __field_hex(struct statfs *, buf)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(buf, buf)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_socketcall +SC_TRACE_EVENT(sys_socketcall, + TP_PROTO(int call, unsigned long * args), + TP_ARGS(call, args), + TP_STRUCT__entry(__field(int, call) __field_hex(unsigned long *, args)), + TP_fast_assign(tp_assign(call, call) tp_assign(args, args)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_getitimer +SC_TRACE_EVENT(sys_getitimer, + TP_PROTO(int which, struct itimerval * value), + TP_ARGS(which, value), + TP_STRUCT__entry(__field(int, which) __field_hex(struct itimerval *, value)), + TP_fast_assign(tp_assign(which, which) tp_assign(value, value)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_newstat +SC_TRACE_EVENT(sys_newstat, + TP_PROTO(const char * filename, struct stat * statbuf), + TP_ARGS(filename, statbuf), + TP_STRUCT__entry(__string_from_user(filename, filename) __field_hex(struct stat *, statbuf)), + TP_fast_assign(tp_copy_string_from_user(filename, filename) tp_assign(statbuf, statbuf)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_newlstat +SC_TRACE_EVENT(sys_newlstat, + TP_PROTO(const char * filename, struct stat * statbuf), + TP_ARGS(filename, statbuf), + TP_STRUCT__entry(__string_from_user(filename, filename) __field_hex(struct stat *, statbuf)), + TP_fast_assign(tp_copy_string_from_user(filename, filename) tp_assign(statbuf, statbuf)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_newfstat +SC_TRACE_EVENT(sys_newfstat, + TP_PROTO(unsigned int fd, struct stat * statbuf), + TP_ARGS(fd, statbuf), + TP_STRUCT__entry(__field(unsigned int, fd) __field_hex(struct stat *, statbuf)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(statbuf, statbuf)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_setdomainname +SC_TRACE_EVENT(sys_setdomainname, + TP_PROTO(char * name, int len), + TP_ARGS(name, len), + TP_STRUCT__entry(__string_from_user(name, name) __field(int, len)), + TP_fast_assign(tp_copy_string_from_user(name, name) tp_assign(len, len)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_delete_module +SC_TRACE_EVENT(sys_delete_module, + TP_PROTO(const char * name_user, unsigned int flags), + TP_ARGS(name_user, flags), + TP_STRUCT__entry(__string_from_user(name_user, name_user) __field(unsigned int, flags)), + TP_fast_assign(tp_copy_string_from_user(name_user, name_user) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_sched_setparam +SC_TRACE_EVENT(sys_sched_setparam, + TP_PROTO(pid_t pid, struct sched_param * param), + TP_ARGS(pid, param), + TP_STRUCT__entry(__field(pid_t, pid) __field_hex(struct sched_param *, param)), + TP_fast_assign(tp_assign(pid, pid) tp_assign(param, param)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_sched_getparam +SC_TRACE_EVENT(sys_sched_getparam, + TP_PROTO(pid_t pid, struct sched_param * param), + TP_ARGS(pid, param), + TP_STRUCT__entry(__field(pid_t, pid) __field_hex(struct sched_param *, param)), + TP_fast_assign(tp_assign(pid, pid) tp_assign(param, param)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_sched_rr_get_interval +SC_TRACE_EVENT(sys_sched_rr_get_interval, + TP_PROTO(pid_t pid, struct timespec * interval), + TP_ARGS(pid, interval), + TP_STRUCT__entry(__field(pid_t, pid) __field_hex(struct timespec *, interval)), + TP_fast_assign(tp_assign(pid, pid) tp_assign(interval, interval)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_nanosleep +SC_TRACE_EVENT(sys_nanosleep, + TP_PROTO(struct timespec * rqtp, struct timespec * rmtp), + TP_ARGS(rqtp, rmtp), + TP_STRUCT__entry(__field_hex(struct timespec *, rqtp) __field_hex(struct timespec *, rmtp)), + TP_fast_assign(tp_assign(rqtp, rqtp) tp_assign(rmtp, rmtp)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_rt_sigpending +SC_TRACE_EVENT(sys_rt_sigpending, + TP_PROTO(sigset_t * set, size_t sigsetsize), + TP_ARGS(set, sigsetsize), + TP_STRUCT__entry(__field_hex(sigset_t *, set) __field(size_t, sigsetsize)), + TP_fast_assign(tp_assign(set, set) tp_assign(sigsetsize, sigsetsize)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_rt_sigsuspend +SC_TRACE_EVENT(sys_rt_sigsuspend, + TP_PROTO(sigset_t * unewset, size_t sigsetsize), + TP_ARGS(unewset, sigsetsize), + TP_STRUCT__entry(__field_hex(sigset_t *, unewset) __field(size_t, sigsetsize)), + TP_fast_assign(tp_assign(unewset, unewset) tp_assign(sigsetsize, sigsetsize)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_getcwd +SC_TRACE_EVENT(sys_getcwd, + TP_PROTO(char * buf, unsigned long size), + TP_ARGS(buf, size), + TP_STRUCT__entry(__field_hex(char *, buf) __field(unsigned long, size)), + TP_fast_assign(tp_assign(buf, buf) tp_assign(size, size)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_getrlimit +SC_TRACE_EVENT(sys_getrlimit, + TP_PROTO(unsigned int resource, struct rlimit * rlim), + TP_ARGS(resource, rlim), + TP_STRUCT__entry(__field(unsigned int, resource) __field_hex(struct rlimit *, rlim)), + TP_fast_assign(tp_assign(resource, resource) tp_assign(rlim, rlim)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_stat64 +SC_TRACE_EVENT(sys_stat64, + TP_PROTO(const char * filename, struct stat64 * statbuf), + TP_ARGS(filename, statbuf), + TP_STRUCT__entry(__string_from_user(filename, filename) __field_hex(struct stat64 *, statbuf)), + TP_fast_assign(tp_copy_string_from_user(filename, filename) tp_assign(statbuf, statbuf)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_lstat64 +SC_TRACE_EVENT(sys_lstat64, + TP_PROTO(const char * filename, struct stat64 * statbuf), + TP_ARGS(filename, statbuf), + TP_STRUCT__entry(__string_from_user(filename, filename) __field_hex(struct stat64 *, statbuf)), + TP_fast_assign(tp_copy_string_from_user(filename, filename) tp_assign(statbuf, statbuf)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_fstat64 +SC_TRACE_EVENT(sys_fstat64, + TP_PROTO(unsigned long fd, struct stat64 * statbuf), + TP_ARGS(fd, statbuf), + TP_STRUCT__entry(__field(unsigned long, fd) __field_hex(struct stat64 *, statbuf)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(statbuf, statbuf)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_pivot_root +SC_TRACE_EVENT(sys_pivot_root, + TP_PROTO(const char * new_root, const char * put_old), + TP_ARGS(new_root, put_old), + TP_STRUCT__entry(__string_from_user(new_root, new_root) __string_from_user(put_old, put_old)), + TP_fast_assign(tp_copy_string_from_user(new_root, new_root) tp_copy_string_from_user(put_old, put_old)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_removexattr +SC_TRACE_EVENT(sys_removexattr, + TP_PROTO(const char * pathname, const char * name), + TP_ARGS(pathname, name), + TP_STRUCT__entry(__string_from_user(pathname, pathname) __string_from_user(name, name)), + TP_fast_assign(tp_copy_string_from_user(pathname, pathname) tp_copy_string_from_user(name, name)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_lremovexattr +SC_TRACE_EVENT(sys_lremovexattr, + TP_PROTO(const char * pathname, const char * name), + TP_ARGS(pathname, name), + TP_STRUCT__entry(__string_from_user(pathname, pathname) __string_from_user(name, name)), + TP_fast_assign(tp_copy_string_from_user(pathname, pathname) tp_copy_string_from_user(name, name)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_fremovexattr +SC_TRACE_EVENT(sys_fremovexattr, + TP_PROTO(int fd, const char * name), + TP_ARGS(fd, name), + TP_STRUCT__entry(__field(int, fd) __string_from_user(name, name)), + TP_fast_assign(tp_assign(fd, fd) tp_copy_string_from_user(name, name)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_io_setup +SC_TRACE_EVENT(sys_io_setup, + TP_PROTO(unsigned nr_events, aio_context_t * ctxp), + TP_ARGS(nr_events, ctxp), + TP_STRUCT__entry(__field(unsigned, nr_events) __field_hex(aio_context_t *, ctxp)), + TP_fast_assign(tp_assign(nr_events, nr_events) tp_assign(ctxp, ctxp)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_timer_gettime +SC_TRACE_EVENT(sys_timer_gettime, + TP_PROTO(timer_t timer_id, struct itimerspec * setting), + TP_ARGS(timer_id, setting), + TP_STRUCT__entry(__field(timer_t, timer_id) __field_hex(struct itimerspec *, setting)), + TP_fast_assign(tp_assign(timer_id, timer_id) tp_assign(setting, setting)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_clock_settime +SC_TRACE_EVENT(sys_clock_settime, + TP_PROTO(const clockid_t which_clock, const struct timespec * tp), + TP_ARGS(which_clock, tp), + TP_STRUCT__entry(__field(const clockid_t, which_clock) __field_hex(const struct timespec *, tp)), + TP_fast_assign(tp_assign(which_clock, which_clock) tp_assign(tp, tp)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_clock_gettime +SC_TRACE_EVENT(sys_clock_gettime, + TP_PROTO(const clockid_t which_clock, struct timespec * tp), + TP_ARGS(which_clock, tp), + TP_STRUCT__entry(__field(const clockid_t, which_clock) __field_hex(struct timespec *, tp)), + TP_fast_assign(tp_assign(which_clock, which_clock) tp_assign(tp, tp)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_clock_getres +SC_TRACE_EVENT(sys_clock_getres, + TP_PROTO(const clockid_t which_clock, struct timespec * tp), + TP_ARGS(which_clock, tp), + TP_STRUCT__entry(__field(const clockid_t, which_clock) __field_hex(struct timespec *, tp)), + TP_fast_assign(tp_assign(which_clock, which_clock) tp_assign(tp, tp)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_utimes +SC_TRACE_EVENT(sys_utimes, + TP_PROTO(char * filename, struct timeval * utimes), + TP_ARGS(filename, utimes), + TP_STRUCT__entry(__string_from_user(filename, filename) __field_hex(struct timeval *, utimes)), + TP_fast_assign(tp_copy_string_from_user(filename, filename) tp_assign(utimes, utimes)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_mq_notify +SC_TRACE_EVENT(sys_mq_notify, + TP_PROTO(mqd_t mqdes, const struct sigevent * u_notification), + TP_ARGS(mqdes, u_notification), + TP_STRUCT__entry(__field(mqd_t, mqdes) __field_hex(const struct sigevent *, u_notification)), + TP_fast_assign(tp_assign(mqdes, mqdes) tp_assign(u_notification, u_notification)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_set_robust_list +SC_TRACE_EVENT(sys_set_robust_list, + TP_PROTO(struct robust_list_head * head, size_t len), + TP_ARGS(head, len), + TP_STRUCT__entry(__field_hex(struct robust_list_head *, head) __field(size_t, len)), + TP_fast_assign(tp_assign(head, head) tp_assign(len, len)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_timerfd_gettime +SC_TRACE_EVENT(sys_timerfd_gettime, + TP_PROTO(int ufd, struct itimerspec * otmr), + TP_ARGS(ufd, otmr), + TP_STRUCT__entry(__field(int, ufd) __field_hex(struct itimerspec *, otmr)), + TP_fast_assign(tp_assign(ufd, ufd) tp_assign(otmr, otmr)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_pipe2 +SC_TRACE_EVENT(sys_pipe2, + TP_PROTO(int * fildes, int flags), + TP_ARGS(fildes, flags), + TP_STRUCT__entry(__field_hex(int *, fildes) __field(int, flags)), + TP_fast_assign(tp_assign(fildes, fildes) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_clock_adjtime +SC_TRACE_EVENT(sys_clock_adjtime, + TP_PROTO(const clockid_t which_clock, struct timex * utx), + TP_ARGS(which_clock, utx), + TP_STRUCT__entry(__field(const clockid_t, which_clock) __field_hex(struct timex *, utx)), + TP_fast_assign(tp_assign(which_clock, which_clock) tp_assign(utx, utx)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_read +SC_TRACE_EVENT(sys_read, + TP_PROTO(unsigned int fd, char * buf, size_t count), + TP_ARGS(fd, buf, count), + TP_STRUCT__entry(__field(unsigned int, fd) __field_hex(char *, buf) __field(size_t, count)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(buf, buf) tp_assign(count, count)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_write +SC_TRACE_EVENT(sys_write, + TP_PROTO(unsigned int fd, const char * buf, size_t count), + TP_ARGS(fd, buf, count), + TP_STRUCT__entry(__field(unsigned int, fd) __field_hex(const char *, buf) __field(size_t, count)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(buf, buf) tp_assign(count, count)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_open +SC_TRACE_EVENT(sys_open, + TP_PROTO(const char * filename, int flags, int mode), + TP_ARGS(filename, flags, mode), + TP_STRUCT__entry(__string_from_user(filename, filename) __field(int, flags) __field(int, mode)), + TP_fast_assign(tp_copy_string_from_user(filename, filename) tp_assign(flags, flags) tp_assign(mode, mode)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_waitpid +SC_TRACE_EVENT(sys_waitpid, + TP_PROTO(pid_t pid, int * stat_addr, int options), + TP_ARGS(pid, stat_addr, options), + TP_STRUCT__entry(__field(pid_t, pid) __field_hex(int *, stat_addr) __field(int, options)), + TP_fast_assign(tp_assign(pid, pid) tp_assign(stat_addr, stat_addr) tp_assign(options, options)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_mknod +SC_TRACE_EVENT(sys_mknod, + TP_PROTO(const char * filename, int mode, unsigned dev), + TP_ARGS(filename, mode, dev), + TP_STRUCT__entry(__string_from_user(filename, filename) __field(int, mode) __field(unsigned, dev)), + TP_fast_assign(tp_copy_string_from_user(filename, filename) tp_assign(mode, mode) tp_assign(dev, dev)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_lchown +SC_TRACE_EVENT(sys_lchown, + TP_PROTO(const char * filename, uid_t user, gid_t group), + TP_ARGS(filename, user, group), + TP_STRUCT__entry(__string_from_user(filename, filename) __field(uid_t, user) __field(gid_t, group)), + TP_fast_assign(tp_copy_string_from_user(filename, filename) tp_assign(user, user) tp_assign(group, group)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_readlink +SC_TRACE_EVENT(sys_readlink, + TP_PROTO(const char * path, char * buf, int bufsiz), + TP_ARGS(path, buf, bufsiz), + TP_STRUCT__entry(__string_from_user(path, path) __field_hex(char *, buf) __field(int, bufsiz)), + TP_fast_assign(tp_copy_string_from_user(path, path) tp_assign(buf, buf) tp_assign(bufsiz, bufsiz)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_old_readdir +SC_TRACE_EVENT(sys_old_readdir, + TP_PROTO(unsigned int fd, struct old_linux_dirent * dirent, unsigned int count), + TP_ARGS(fd, dirent, count), + TP_STRUCT__entry(__field(unsigned int, fd) __field_hex(struct old_linux_dirent *, dirent) __field(unsigned int, count)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(dirent, dirent) tp_assign(count, count)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_syslog +SC_TRACE_EVENT(sys_syslog, + TP_PROTO(int type, char * buf, int len), + TP_ARGS(type, buf, len), + TP_STRUCT__entry(__field(int, type) __field_hex(char *, buf) __field(int, len)), + TP_fast_assign(tp_assign(type, type) tp_assign(buf, buf) tp_assign(len, len)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_setitimer +SC_TRACE_EVENT(sys_setitimer, + TP_PROTO(int which, struct itimerval * value, struct itimerval * ovalue), + TP_ARGS(which, value, ovalue), + TP_STRUCT__entry(__field(int, which) __field_hex(struct itimerval *, value) __field_hex(struct itimerval *, ovalue)), + TP_fast_assign(tp_assign(which, which) tp_assign(value, value) tp_assign(ovalue, ovalue)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_sigprocmask +SC_TRACE_EVENT(sys_sigprocmask, + TP_PROTO(int how, old_sigset_t * nset, old_sigset_t * oset), + TP_ARGS(how, nset, oset), + TP_STRUCT__entry(__field(int, how) __field_hex(old_sigset_t *, nset) __field_hex(old_sigset_t *, oset)), + TP_fast_assign(tp_assign(how, how) tp_assign(nset, nset) tp_assign(oset, oset)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_init_module +SC_TRACE_EVENT(sys_init_module, + TP_PROTO(void * umod, unsigned long len, const char * uargs), + TP_ARGS(umod, len, uargs), + TP_STRUCT__entry(__field_hex(void *, umod) __field(unsigned long, len) __field_hex(const char *, uargs)), + TP_fast_assign(tp_assign(umod, umod) tp_assign(len, len) tp_assign(uargs, uargs)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_getdents +SC_TRACE_EVENT(sys_getdents, + TP_PROTO(unsigned int fd, struct linux_dirent * dirent, unsigned int count), + TP_ARGS(fd, dirent, count), + TP_STRUCT__entry(__field(unsigned int, fd) __field_hex(struct linux_dirent *, dirent) __field(unsigned int, count)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(dirent, dirent) tp_assign(count, count)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_readv +SC_TRACE_EVENT(sys_readv, + TP_PROTO(unsigned long fd, const struct iovec * vec, unsigned long vlen), + TP_ARGS(fd, vec, vlen), + TP_STRUCT__entry(__field(unsigned long, fd) __field_hex(const struct iovec *, vec) __field(unsigned long, vlen)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(vec, vec) tp_assign(vlen, vlen)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_writev +SC_TRACE_EVENT(sys_writev, + TP_PROTO(unsigned long fd, const struct iovec * vec, unsigned long vlen), + TP_ARGS(fd, vec, vlen), + TP_STRUCT__entry(__field(unsigned long, fd) __field_hex(const struct iovec *, vec) __field(unsigned long, vlen)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(vec, vec) tp_assign(vlen, vlen)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_sched_setscheduler +SC_TRACE_EVENT(sys_sched_setscheduler, + TP_PROTO(pid_t pid, int policy, struct sched_param * param), + TP_ARGS(pid, policy, param), + TP_STRUCT__entry(__field(pid_t, pid) __field(int, policy) __field_hex(struct sched_param *, param)), + TP_fast_assign(tp_assign(pid, pid) tp_assign(policy, policy) tp_assign(param, param)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_getresuid +SC_TRACE_EVENT(sys_getresuid, + TP_PROTO(uid_t * ruid, uid_t * euid, uid_t * suid), + TP_ARGS(ruid, euid, suid), + TP_STRUCT__entry(__field_hex(uid_t *, ruid) __field_hex(uid_t *, euid) __field_hex(uid_t *, suid)), + TP_fast_assign(tp_assign(ruid, ruid) tp_assign(euid, euid) tp_assign(suid, suid)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_poll +SC_TRACE_EVENT(sys_poll, + TP_PROTO(struct pollfd * ufds, unsigned int nfds, long timeout_msecs), + TP_ARGS(ufds, nfds, timeout_msecs), + TP_STRUCT__entry(__field_hex(struct pollfd *, ufds) __field(unsigned int, nfds) __field(long, timeout_msecs)), + TP_fast_assign(tp_assign(ufds, ufds) tp_assign(nfds, nfds) tp_assign(timeout_msecs, timeout_msecs)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_nfsservctl +SC_TRACE_EVENT(sys_nfsservctl, + TP_PROTO(int cmd, struct nfsctl_arg * arg, void * res), + TP_ARGS(cmd, arg, res), + TP_STRUCT__entry(__field(int, cmd) __field_hex(struct nfsctl_arg *, arg) __field_hex(void *, res)), + TP_fast_assign(tp_assign(cmd, cmd) tp_assign(arg, arg) tp_assign(res, res)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_getresgid +SC_TRACE_EVENT(sys_getresgid, + TP_PROTO(gid_t * rgid, gid_t * egid, gid_t * sgid), + TP_ARGS(rgid, egid, sgid), + TP_STRUCT__entry(__field_hex(gid_t *, rgid) __field_hex(gid_t *, egid) __field_hex(gid_t *, sgid)), + TP_fast_assign(tp_assign(rgid, rgid) tp_assign(egid, egid) tp_assign(sgid, sgid)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_rt_sigqueueinfo +SC_TRACE_EVENT(sys_rt_sigqueueinfo, + TP_PROTO(pid_t pid, int sig, siginfo_t * uinfo), + TP_ARGS(pid, sig, uinfo), + TP_STRUCT__entry(__field(pid_t, pid) __field(int, sig) __field_hex(siginfo_t *, uinfo)), + TP_fast_assign(tp_assign(pid, pid) tp_assign(sig, sig) tp_assign(uinfo, uinfo)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_chown +SC_TRACE_EVENT(sys_chown, + TP_PROTO(const char * filename, uid_t user, gid_t group), + TP_ARGS(filename, user, group), + TP_STRUCT__entry(__string_from_user(filename, filename) __field(uid_t, user) __field(gid_t, group)), + TP_fast_assign(tp_copy_string_from_user(filename, filename) tp_assign(user, user) tp_assign(group, group)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_getdents64 +SC_TRACE_EVENT(sys_getdents64, + TP_PROTO(unsigned int fd, struct linux_dirent64 * dirent, unsigned int count), + TP_ARGS(fd, dirent, count), + TP_STRUCT__entry(__field(unsigned int, fd) __field_hex(struct linux_dirent64 *, dirent) __field(unsigned int, count)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(dirent, dirent) tp_assign(count, count)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_mincore +SC_TRACE_EVENT(sys_mincore, + TP_PROTO(unsigned long start, size_t len, unsigned char * vec), + TP_ARGS(start, len, vec), + TP_STRUCT__entry(__field(unsigned long, start) __field(size_t, len) __field_hex(unsigned char *, vec)), + TP_fast_assign(tp_assign(start, start) tp_assign(len, len) tp_assign(vec, vec)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_listxattr +SC_TRACE_EVENT(sys_listxattr, + TP_PROTO(const char * pathname, char * list, size_t size), + TP_ARGS(pathname, list, size), + TP_STRUCT__entry(__string_from_user(pathname, pathname) __field_hex(char *, list) __field(size_t, size)), + TP_fast_assign(tp_copy_string_from_user(pathname, pathname) tp_assign(list, list) tp_assign(size, size)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_llistxattr +SC_TRACE_EVENT(sys_llistxattr, + TP_PROTO(const char * pathname, char * list, size_t size), + TP_ARGS(pathname, list, size), + TP_STRUCT__entry(__string_from_user(pathname, pathname) __field_hex(char *, list) __field(size_t, size)), + TP_fast_assign(tp_copy_string_from_user(pathname, pathname) tp_assign(list, list) tp_assign(size, size)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_flistxattr +SC_TRACE_EVENT(sys_flistxattr, + TP_PROTO(int fd, char * list, size_t size), + TP_ARGS(fd, list, size), + TP_STRUCT__entry(__field(int, fd) __field_hex(char *, list) __field(size_t, size)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(list, list) tp_assign(size, size)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_sched_setaffinity +SC_TRACE_EVENT(sys_sched_setaffinity, + TP_PROTO(pid_t pid, unsigned int len, unsigned long * user_mask_ptr), + TP_ARGS(pid, len, user_mask_ptr), + TP_STRUCT__entry(__field(pid_t, pid) __field(unsigned int, len) __field_hex(unsigned long *, user_mask_ptr)), + TP_fast_assign(tp_assign(pid, pid) tp_assign(len, len) tp_assign(user_mask_ptr, user_mask_ptr)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_sched_getaffinity +SC_TRACE_EVENT(sys_sched_getaffinity, + TP_PROTO(pid_t pid, unsigned int len, unsigned long * user_mask_ptr), + TP_ARGS(pid, len, user_mask_ptr), + TP_STRUCT__entry(__field(pid_t, pid) __field(unsigned int, len) __field_hex(unsigned long *, user_mask_ptr)), + TP_fast_assign(tp_assign(pid, pid) tp_assign(len, len) tp_assign(user_mask_ptr, user_mask_ptr)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_io_submit +SC_TRACE_EVENT(sys_io_submit, + TP_PROTO(aio_context_t ctx_id, long nr, struct iocb * * iocbpp), + TP_ARGS(ctx_id, nr, iocbpp), + TP_STRUCT__entry(__field(aio_context_t, ctx_id) __field(long, nr) __field_hex(struct iocb * *, iocbpp)), + TP_fast_assign(tp_assign(ctx_id, ctx_id) tp_assign(nr, nr) tp_assign(iocbpp, iocbpp)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_io_cancel +SC_TRACE_EVENT(sys_io_cancel, + TP_PROTO(aio_context_t ctx_id, struct iocb * iocb, struct io_event * result), + TP_ARGS(ctx_id, iocb, result), + TP_STRUCT__entry(__field(aio_context_t, ctx_id) __field_hex(struct iocb *, iocb) __field_hex(struct io_event *, result)), + TP_fast_assign(tp_assign(ctx_id, ctx_id) tp_assign(iocb, iocb) tp_assign(result, result)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_timer_create +SC_TRACE_EVENT(sys_timer_create, + TP_PROTO(const clockid_t which_clock, struct sigevent * timer_event_spec, timer_t * created_timer_id), + TP_ARGS(which_clock, timer_event_spec, created_timer_id), + TP_STRUCT__entry(__field(const clockid_t, which_clock) __field_hex(struct sigevent *, timer_event_spec) __field_hex(timer_t *, created_timer_id)), + TP_fast_assign(tp_assign(which_clock, which_clock) tp_assign(timer_event_spec, timer_event_spec) tp_assign(created_timer_id, created_timer_id)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_statfs64 +SC_TRACE_EVENT(sys_statfs64, + TP_PROTO(const char * pathname, size_t sz, struct statfs64 * buf), + TP_ARGS(pathname, sz, buf), + TP_STRUCT__entry(__string_from_user(pathname, pathname) __field(size_t, sz) __field_hex(struct statfs64 *, buf)), + TP_fast_assign(tp_copy_string_from_user(pathname, pathname) tp_assign(sz, sz) tp_assign(buf, buf)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_fstatfs64 +SC_TRACE_EVENT(sys_fstatfs64, + TP_PROTO(unsigned int fd, size_t sz, struct statfs64 * buf), + TP_ARGS(fd, sz, buf), + TP_STRUCT__entry(__field(unsigned int, fd) __field(size_t, sz) __field_hex(struct statfs64 *, buf)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(sz, sz) tp_assign(buf, buf)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_mq_getsetattr +SC_TRACE_EVENT(sys_mq_getsetattr, + TP_PROTO(mqd_t mqdes, const struct mq_attr * u_mqstat, struct mq_attr * u_omqstat), + TP_ARGS(mqdes, u_mqstat, u_omqstat), + TP_STRUCT__entry(__field(mqd_t, mqdes) __field_hex(const struct mq_attr *, u_mqstat) __field_hex(struct mq_attr *, u_omqstat)), + TP_fast_assign(tp_assign(mqdes, mqdes) tp_assign(u_mqstat, u_mqstat) tp_assign(u_omqstat, u_omqstat)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_inotify_add_watch +SC_TRACE_EVENT(sys_inotify_add_watch, + TP_PROTO(int fd, const char * pathname, u32 mask), + TP_ARGS(fd, pathname, mask), + TP_STRUCT__entry(__field(int, fd) __string_from_user(pathname, pathname) __field(u32, mask)), + TP_fast_assign(tp_assign(fd, fd) tp_copy_string_from_user(pathname, pathname) tp_assign(mask, mask)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_mkdirat +SC_TRACE_EVENT(sys_mkdirat, + TP_PROTO(int dfd, const char * pathname, int mode), + TP_ARGS(dfd, pathname, mode), + TP_STRUCT__entry(__field(int, dfd) __string_from_user(pathname, pathname) __field(int, mode)), + TP_fast_assign(tp_assign(dfd, dfd) tp_copy_string_from_user(pathname, pathname) tp_assign(mode, mode)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_futimesat +SC_TRACE_EVENT(sys_futimesat, + TP_PROTO(int dfd, const char * filename, struct timeval * utimes), + TP_ARGS(dfd, filename, utimes), + TP_STRUCT__entry(__field(int, dfd) __string_from_user(filename, filename) __field_hex(struct timeval *, utimes)), + TP_fast_assign(tp_assign(dfd, dfd) tp_copy_string_from_user(filename, filename) tp_assign(utimes, utimes)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_unlinkat +SC_TRACE_EVENT(sys_unlinkat, + TP_PROTO(int dfd, const char * pathname, int flag), + TP_ARGS(dfd, pathname, flag), + TP_STRUCT__entry(__field(int, dfd) __string_from_user(pathname, pathname) __field(int, flag)), + TP_fast_assign(tp_assign(dfd, dfd) tp_copy_string_from_user(pathname, pathname) tp_assign(flag, flag)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_symlinkat +SC_TRACE_EVENT(sys_symlinkat, + TP_PROTO(const char * oldname, int newdfd, const char * newname), + TP_ARGS(oldname, newdfd, newname), + TP_STRUCT__entry(__string_from_user(oldname, oldname) __field(int, newdfd) __string_from_user(newname, newname)), + TP_fast_assign(tp_copy_string_from_user(oldname, oldname) tp_assign(newdfd, newdfd) tp_copy_string_from_user(newname, newname)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_fchmodat +SC_TRACE_EVENT(sys_fchmodat, + TP_PROTO(int dfd, const char * filename, mode_t mode), + TP_ARGS(dfd, filename, mode), + TP_STRUCT__entry(__field(int, dfd) __string_from_user(filename, filename) __field(mode_t, mode)), + TP_fast_assign(tp_assign(dfd, dfd) tp_copy_string_from_user(filename, filename) tp_assign(mode, mode)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_faccessat +SC_TRACE_EVENT(sys_faccessat, + TP_PROTO(int dfd, const char * filename, int mode), + TP_ARGS(dfd, filename, mode), + TP_STRUCT__entry(__field(int, dfd) __string_from_user(filename, filename) __field(int, mode)), + TP_fast_assign(tp_assign(dfd, dfd) tp_copy_string_from_user(filename, filename) tp_assign(mode, mode)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_get_robust_list +SC_TRACE_EVENT(sys_get_robust_list, + TP_PROTO(int pid, struct robust_list_head * * head_ptr, size_t * len_ptr), + TP_ARGS(pid, head_ptr, len_ptr), + TP_STRUCT__entry(__field(int, pid) __field_hex(struct robust_list_head * *, head_ptr) __field_hex(size_t *, len_ptr)), + TP_fast_assign(tp_assign(pid, pid) tp_assign(head_ptr, head_ptr) tp_assign(len_ptr, len_ptr)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_getcpu +SC_TRACE_EVENT(sys_getcpu, + TP_PROTO(unsigned * cpup, unsigned * nodep, struct getcpu_cache * unused), + TP_ARGS(cpup, nodep, unused), + TP_STRUCT__entry(__field_hex(unsigned *, cpup) __field_hex(unsigned *, nodep) __field_hex(struct getcpu_cache *, unused)), + TP_fast_assign(tp_assign(cpup, cpup) tp_assign(nodep, nodep) tp_assign(unused, unused)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_signalfd +SC_TRACE_EVENT(sys_signalfd, + TP_PROTO(int ufd, sigset_t * user_mask, size_t sizemask), + TP_ARGS(ufd, user_mask, sizemask), + TP_STRUCT__entry(__field(int, ufd) __field_hex(sigset_t *, user_mask) __field(size_t, sizemask)), + TP_fast_assign(tp_assign(ufd, ufd) tp_assign(user_mask, user_mask) tp_assign(sizemask, sizemask)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_bind +SC_TRACE_EVENT(sys_bind, + TP_PROTO(int fd, struct sockaddr * umyaddr, int addrlen), + TP_ARGS(fd, umyaddr, addrlen), + TP_STRUCT__entry(__field(int, fd) __field_hex(struct sockaddr *, umyaddr) __field_hex(int, addrlen)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(umyaddr, umyaddr) tp_assign(addrlen, addrlen)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_connect +SC_TRACE_EVENT(sys_connect, + TP_PROTO(int fd, struct sockaddr * uservaddr, int addrlen), + TP_ARGS(fd, uservaddr, addrlen), + TP_STRUCT__entry(__field(int, fd) __field_hex(struct sockaddr *, uservaddr) __field_hex(int, addrlen)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(uservaddr, uservaddr) tp_assign(addrlen, addrlen)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_accept +SC_TRACE_EVENT(sys_accept, + TP_PROTO(int fd, struct sockaddr * upeer_sockaddr, int * upeer_addrlen), + TP_ARGS(fd, upeer_sockaddr, upeer_addrlen), + TP_STRUCT__entry(__field(int, fd) __field_hex(struct sockaddr *, upeer_sockaddr) __field_hex(int *, upeer_addrlen)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(upeer_sockaddr, upeer_sockaddr) tp_assign(upeer_addrlen, upeer_addrlen)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_getsockname +SC_TRACE_EVENT(sys_getsockname, + TP_PROTO(int fd, struct sockaddr * usockaddr, int * usockaddr_len), + TP_ARGS(fd, usockaddr, usockaddr_len), + TP_STRUCT__entry(__field(int, fd) __field_hex(struct sockaddr *, usockaddr) __field_hex(int *, usockaddr_len)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(usockaddr, usockaddr) tp_assign(usockaddr_len, usockaddr_len)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_getpeername +SC_TRACE_EVENT(sys_getpeername, + TP_PROTO(int fd, struct sockaddr * usockaddr, int * usockaddr_len), + TP_ARGS(fd, usockaddr, usockaddr_len), + TP_STRUCT__entry(__field(int, fd) __field_hex(struct sockaddr *, usockaddr) __field_hex(int *, usockaddr_len)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(usockaddr, usockaddr) tp_assign(usockaddr_len, usockaddr_len)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_sendmsg +SC_TRACE_EVENT(sys_sendmsg, + TP_PROTO(int fd, struct msghdr * msg, unsigned flags), + TP_ARGS(fd, msg, flags), + TP_STRUCT__entry(__field(int, fd) __field_hex(struct msghdr *, msg) __field(unsigned, flags)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(msg, msg) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_recvmsg +SC_TRACE_EVENT(sys_recvmsg, + TP_PROTO(int fd, struct msghdr * msg, unsigned int flags), + TP_ARGS(fd, msg, flags), + TP_STRUCT__entry(__field(int, fd) __field_hex(struct msghdr *, msg) __field(unsigned int, flags)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(msg, msg) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_reboot +SC_TRACE_EVENT(sys_reboot, + TP_PROTO(int magic1, int magic2, unsigned int cmd, void * arg), + TP_ARGS(magic1, magic2, cmd, arg), + TP_STRUCT__entry(__field(int, magic1) __field(int, magic2) __field(unsigned int, cmd) __field_hex(void *, arg)), + TP_fast_assign(tp_assign(magic1, magic1) tp_assign(magic2, magic2) tp_assign(cmd, cmd) tp_assign(arg, arg)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_wait4 +SC_TRACE_EVENT(sys_wait4, + TP_PROTO(pid_t upid, int * stat_addr, int options, struct rusage * ru), + TP_ARGS(upid, stat_addr, options, ru), + TP_STRUCT__entry(__field(pid_t, upid) __field_hex(int *, stat_addr) __field(int, options) __field_hex(struct rusage *, ru)), + TP_fast_assign(tp_assign(upid, upid) tp_assign(stat_addr, stat_addr) tp_assign(options, options) tp_assign(ru, ru)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_rt_sigaction +SC_TRACE_EVENT(sys_rt_sigaction, + TP_PROTO(int sig, const struct sigaction * act, struct sigaction * oact, size_t sigsetsize), + TP_ARGS(sig, act, oact, sigsetsize), + TP_STRUCT__entry(__field(int, sig) __field_hex(const struct sigaction *, act) __field_hex(struct sigaction *, oact) __field(size_t, sigsetsize)), + TP_fast_assign(tp_assign(sig, sig) tp_assign(act, act) tp_assign(oact, oact) tp_assign(sigsetsize, sigsetsize)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_rt_sigprocmask +SC_TRACE_EVENT(sys_rt_sigprocmask, + TP_PROTO(int how, sigset_t * nset, sigset_t * oset, size_t sigsetsize), + TP_ARGS(how, nset, oset, sigsetsize), + TP_STRUCT__entry(__field(int, how) __field_hex(sigset_t *, nset) __field_hex(sigset_t *, oset) __field(size_t, sigsetsize)), + TP_fast_assign(tp_assign(how, how) tp_assign(nset, nset) tp_assign(oset, oset) tp_assign(sigsetsize, sigsetsize)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_rt_sigtimedwait +SC_TRACE_EVENT(sys_rt_sigtimedwait, + TP_PROTO(const sigset_t * uthese, siginfo_t * uinfo, const struct timespec * uts, size_t sigsetsize), + TP_ARGS(uthese, uinfo, uts, sigsetsize), + TP_STRUCT__entry(__field_hex(const sigset_t *, uthese) __field_hex(siginfo_t *, uinfo) __field_hex(const struct timespec *, uts) __field(size_t, sigsetsize)), + TP_fast_assign(tp_assign(uthese, uthese) tp_assign(uinfo, uinfo) tp_assign(uts, uts) tp_assign(sigsetsize, sigsetsize)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_sendfile +SC_TRACE_EVENT(sys_sendfile, + TP_PROTO(int out_fd, int in_fd, off_t * offset, size_t count), + TP_ARGS(out_fd, in_fd, offset, count), + TP_STRUCT__entry(__field(int, out_fd) __field(int, in_fd) __field_hex(off_t *, offset) __field(size_t, count)), + TP_fast_assign(tp_assign(out_fd, out_fd) tp_assign(in_fd, in_fd) tp_assign(offset, offset) tp_assign(count, count)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_getxattr +SC_TRACE_EVENT(sys_getxattr, + TP_PROTO(const char * pathname, const char * name, void * value, size_t size), + TP_ARGS(pathname, name, value, size), + TP_STRUCT__entry(__string_from_user(pathname, pathname) __string_from_user(name, name) __field_hex(void *, value) __field(size_t, size)), + TP_fast_assign(tp_copy_string_from_user(pathname, pathname) tp_copy_string_from_user(name, name) tp_assign(value, value) tp_assign(size, size)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_lgetxattr +SC_TRACE_EVENT(sys_lgetxattr, + TP_PROTO(const char * pathname, const char * name, void * value, size_t size), + TP_ARGS(pathname, name, value, size), + TP_STRUCT__entry(__string_from_user(pathname, pathname) __string_from_user(name, name) __field_hex(void *, value) __field(size_t, size)), + TP_fast_assign(tp_copy_string_from_user(pathname, pathname) tp_copy_string_from_user(name, name) tp_assign(value, value) tp_assign(size, size)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_fgetxattr +SC_TRACE_EVENT(sys_fgetxattr, + TP_PROTO(int fd, const char * name, void * value, size_t size), + TP_ARGS(fd, name, value, size), + TP_STRUCT__entry(__field(int, fd) __string_from_user(name, name) __field_hex(void *, value) __field(size_t, size)), + TP_fast_assign(tp_assign(fd, fd) tp_copy_string_from_user(name, name) tp_assign(value, value) tp_assign(size, size)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_sendfile64 +SC_TRACE_EVENT(sys_sendfile64, + TP_PROTO(int out_fd, int in_fd, loff_t * offset, size_t count), + TP_ARGS(out_fd, in_fd, offset, count), + TP_STRUCT__entry(__field(int, out_fd) __field(int, in_fd) __field_hex(loff_t *, offset) __field(size_t, count)), + TP_fast_assign(tp_assign(out_fd, out_fd) tp_assign(in_fd, in_fd) tp_assign(offset, offset) tp_assign(count, count)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_epoll_ctl +SC_TRACE_EVENT(sys_epoll_ctl, + TP_PROTO(int epfd, int op, int fd, struct epoll_event * event), + TP_ARGS(epfd, op, fd, event), + TP_STRUCT__entry(__field(int, epfd) __field(int, op) __field(int, fd) __field_hex(struct epoll_event *, event)), + TP_fast_assign(tp_assign(epfd, epfd) tp_assign(op, op) tp_assign(fd, fd) tp_assign(event, event)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_epoll_wait +SC_TRACE_EVENT(sys_epoll_wait, + TP_PROTO(int epfd, struct epoll_event * events, int maxevents, int timeout), + TP_ARGS(epfd, events, maxevents, timeout), + TP_STRUCT__entry(__field(int, epfd) __field_hex(struct epoll_event *, events) __field(int, maxevents) __field(int, timeout)), + TP_fast_assign(tp_assign(epfd, epfd) tp_assign(events, events) tp_assign(maxevents, maxevents) tp_assign(timeout, timeout)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_timer_settime +SC_TRACE_EVENT(sys_timer_settime, + TP_PROTO(timer_t timer_id, int flags, const struct itimerspec * new_setting, struct itimerspec * old_setting), + TP_ARGS(timer_id, flags, new_setting, old_setting), + TP_STRUCT__entry(__field(timer_t, timer_id) __field(int, flags) __field_hex(const struct itimerspec *, new_setting) __field_hex(struct itimerspec *, old_setting)), + TP_fast_assign(tp_assign(timer_id, timer_id) tp_assign(flags, flags) tp_assign(new_setting, new_setting) tp_assign(old_setting, old_setting)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_clock_nanosleep +SC_TRACE_EVENT(sys_clock_nanosleep, + TP_PROTO(const clockid_t which_clock, int flags, const struct timespec * rqtp, struct timespec * rmtp), + TP_ARGS(which_clock, flags, rqtp, rmtp), + TP_STRUCT__entry(__field(const clockid_t, which_clock) __field(int, flags) __field_hex(const struct timespec *, rqtp) __field_hex(struct timespec *, rmtp)), + TP_fast_assign(tp_assign(which_clock, which_clock) tp_assign(flags, flags) tp_assign(rqtp, rqtp) tp_assign(rmtp, rmtp)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_mq_open +SC_TRACE_EVENT(sys_mq_open, + TP_PROTO(const char * u_name, int oflag, mode_t mode, struct mq_attr * u_attr), + TP_ARGS(u_name, oflag, mode, u_attr), + TP_STRUCT__entry(__string_from_user(u_name, u_name) __field(int, oflag) __field(mode_t, mode) __field_hex(struct mq_attr *, u_attr)), + TP_fast_assign(tp_copy_string_from_user(u_name, u_name) tp_assign(oflag, oflag) tp_assign(mode, mode) tp_assign(u_attr, u_attr)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_request_key +SC_TRACE_EVENT(sys_request_key, + TP_PROTO(const char * _type, const char * _description, const char * _callout_info, key_serial_t destringid), + TP_ARGS(_type, _description, _callout_info, destringid), + TP_STRUCT__entry(__string_from_user(_type, _type) __field_hex(const char *, _description) __field_hex(const char *, _callout_info) __field(key_serial_t, destringid)), + TP_fast_assign(tp_copy_string_from_user(_type, _type) tp_assign(_description, _description) tp_assign(_callout_info, _callout_info) tp_assign(destringid, destringid)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_vmsplice +SC_TRACE_EVENT(sys_vmsplice, + TP_PROTO(int fd, const struct iovec * iov, unsigned long nr_segs, unsigned int flags), + TP_ARGS(fd, iov, nr_segs, flags), + TP_STRUCT__entry(__field(int, fd) __field_hex(const struct iovec *, iov) __field(unsigned long, nr_segs) __field(unsigned int, flags)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(iov, iov) tp_assign(nr_segs, nr_segs) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_openat +SC_TRACE_EVENT(sys_openat, + TP_PROTO(int dfd, const char * filename, int flags, int mode), + TP_ARGS(dfd, filename, flags, mode), + TP_STRUCT__entry(__field(int, dfd) __string_from_user(filename, filename) __field(int, flags) __field(int, mode)), + TP_fast_assign(tp_assign(dfd, dfd) tp_copy_string_from_user(filename, filename) tp_assign(flags, flags) tp_assign(mode, mode)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_mknodat +SC_TRACE_EVENT(sys_mknodat, + TP_PROTO(int dfd, const char * filename, int mode, unsigned dev), + TP_ARGS(dfd, filename, mode, dev), + TP_STRUCT__entry(__field(int, dfd) __string_from_user(filename, filename) __field(int, mode) __field(unsigned, dev)), + TP_fast_assign(tp_assign(dfd, dfd) tp_copy_string_from_user(filename, filename) tp_assign(mode, mode) tp_assign(dev, dev)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_fstatat64 +SC_TRACE_EVENT(sys_fstatat64, + TP_PROTO(int dfd, const char * filename, struct stat64 * statbuf, int flag), + TP_ARGS(dfd, filename, statbuf, flag), + TP_STRUCT__entry(__field(int, dfd) __string_from_user(filename, filename) __field_hex(struct stat64 *, statbuf) __field(int, flag)), + TP_fast_assign(tp_assign(dfd, dfd) tp_copy_string_from_user(filename, filename) tp_assign(statbuf, statbuf) tp_assign(flag, flag)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_renameat +SC_TRACE_EVENT(sys_renameat, + TP_PROTO(int olddfd, const char * oldname, int newdfd, const char * newname), + TP_ARGS(olddfd, oldname, newdfd, newname), + TP_STRUCT__entry(__field(int, olddfd) __string_from_user(oldname, oldname) __field(int, newdfd) __string_from_user(newname, newname)), + TP_fast_assign(tp_assign(olddfd, olddfd) tp_copy_string_from_user(oldname, oldname) tp_assign(newdfd, newdfd) tp_copy_string_from_user(newname, newname)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_readlinkat +SC_TRACE_EVENT(sys_readlinkat, + TP_PROTO(int dfd, const char * pathname, char * buf, int bufsiz), + TP_ARGS(dfd, pathname, buf, bufsiz), + TP_STRUCT__entry(__field(int, dfd) __string_from_user(pathname, pathname) __field_hex(char *, buf) __field(int, bufsiz)), + TP_fast_assign(tp_assign(dfd, dfd) tp_copy_string_from_user(pathname, pathname) tp_assign(buf, buf) tp_assign(bufsiz, bufsiz)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_utimensat +SC_TRACE_EVENT(sys_utimensat, + TP_PROTO(int dfd, const char * filename, struct timespec * utimes, int flags), + TP_ARGS(dfd, filename, utimes, flags), + TP_STRUCT__entry(__field(int, dfd) __string_from_user(filename, filename) __field_hex(struct timespec *, utimes) __field(int, flags)), + TP_fast_assign(tp_assign(dfd, dfd) tp_copy_string_from_user(filename, filename) tp_assign(utimes, utimes) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_timerfd_settime +SC_TRACE_EVENT(sys_timerfd_settime, + TP_PROTO(int ufd, int flags, const struct itimerspec * utmr, struct itimerspec * otmr), + TP_ARGS(ufd, flags, utmr, otmr), + TP_STRUCT__entry(__field(int, ufd) __field(int, flags) __field_hex(const struct itimerspec *, utmr) __field_hex(struct itimerspec *, otmr)), + TP_fast_assign(tp_assign(ufd, ufd) tp_assign(flags, flags) tp_assign(utmr, utmr) tp_assign(otmr, otmr)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_signalfd4 +SC_TRACE_EVENT(sys_signalfd4, + TP_PROTO(int ufd, sigset_t * user_mask, size_t sizemask, int flags), + TP_ARGS(ufd, user_mask, sizemask, flags), + TP_STRUCT__entry(__field(int, ufd) __field_hex(sigset_t *, user_mask) __field(size_t, sizemask) __field(int, flags)), + TP_fast_assign(tp_assign(ufd, ufd) tp_assign(user_mask, user_mask) tp_assign(sizemask, sizemask) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_rt_tgsigqueueinfo +SC_TRACE_EVENT(sys_rt_tgsigqueueinfo, + TP_PROTO(pid_t tgid, pid_t pid, int sig, siginfo_t * uinfo), + TP_ARGS(tgid, pid, sig, uinfo), + TP_STRUCT__entry(__field(pid_t, tgid) __field(pid_t, pid) __field(int, sig) __field_hex(siginfo_t *, uinfo)), + TP_fast_assign(tp_assign(tgid, tgid) tp_assign(pid, pid) tp_assign(sig, sig) tp_assign(uinfo, uinfo)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_prlimit64 +SC_TRACE_EVENT(sys_prlimit64, + TP_PROTO(pid_t pid, unsigned int resource, const struct rlimit64 * new_rlim, struct rlimit64 * old_rlim), + TP_ARGS(pid, resource, new_rlim, old_rlim), + TP_STRUCT__entry(__field(pid_t, pid) __field(unsigned int, resource) __field_hex(const struct rlimit64 *, new_rlim) __field_hex(struct rlimit64 *, old_rlim)), + TP_fast_assign(tp_assign(pid, pid) tp_assign(resource, resource) tp_assign(new_rlim, new_rlim) tp_assign(old_rlim, old_rlim)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_socketpair +SC_TRACE_EVENT(sys_socketpair, + TP_PROTO(int family, int type, int protocol, int * usockvec), + TP_ARGS(family, type, protocol, usockvec), + TP_STRUCT__entry(__field(int, family) __field(int, type) __field(int, protocol) __field_hex(int *, usockvec)), + TP_fast_assign(tp_assign(family, family) tp_assign(type, type) tp_assign(protocol, protocol) tp_assign(usockvec, usockvec)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_send +SC_TRACE_EVENT(sys_send, + TP_PROTO(int fd, void * buff, size_t len, unsigned flags), + TP_ARGS(fd, buff, len, flags), + TP_STRUCT__entry(__field(int, fd) __field_hex(void *, buff) __field(size_t, len) __field(unsigned, flags)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(buff, buff) tp_assign(len, len) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_accept4 +SC_TRACE_EVENT(sys_accept4, + TP_PROTO(int fd, struct sockaddr * upeer_sockaddr, int * upeer_addrlen, int flags), + TP_ARGS(fd, upeer_sockaddr, upeer_addrlen, flags), + TP_STRUCT__entry(__field(int, fd) __field_hex(struct sockaddr *, upeer_sockaddr) __field_hex(int *, upeer_addrlen) __field(int, flags)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(upeer_sockaddr, upeer_sockaddr) tp_assign(upeer_addrlen, upeer_addrlen) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_sendmmsg +SC_TRACE_EVENT(sys_sendmmsg, + TP_PROTO(int fd, struct mmsghdr * mmsg, unsigned int vlen, unsigned int flags), + TP_ARGS(fd, mmsg, vlen, flags), + TP_STRUCT__entry(__field(int, fd) __field_hex(struct mmsghdr *, mmsg) __field(unsigned int, vlen) __field(unsigned int, flags)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(mmsg, mmsg) tp_assign(vlen, vlen) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_mount +SC_TRACE_EVENT(sys_mount, + TP_PROTO(char * dev_name, char * dir_name, char * type, unsigned long flags, void * data), + TP_ARGS(dev_name, dir_name, type, flags, data), + TP_STRUCT__entry(__string_from_user(dev_name, dev_name) __string_from_user(dir_name, dir_name) __string_from_user(type, type) __field(unsigned long, flags) __field_hex(void *, data)), + TP_fast_assign(tp_copy_string_from_user(dev_name, dev_name) tp_copy_string_from_user(dir_name, dir_name) tp_copy_string_from_user(type, type) tp_assign(flags, flags) tp_assign(data, data)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_llseek +SC_TRACE_EVENT(sys_llseek, + TP_PROTO(unsigned int fd, unsigned long offset_high, unsigned long offset_low, loff_t * result, unsigned int origin), + TP_ARGS(fd, offset_high, offset_low, result, origin), + TP_STRUCT__entry(__field(unsigned int, fd) __field(unsigned long, offset_high) __field(unsigned long, offset_low) __field_hex(loff_t *, result) __field(unsigned int, origin)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(offset_high, offset_high) tp_assign(offset_low, offset_low) tp_assign(result, result) tp_assign(origin, origin)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_select +SC_TRACE_EVENT(sys_select, + TP_PROTO(int n, fd_set * inp, fd_set * outp, fd_set * exp, struct timeval * tvp), + TP_ARGS(n, inp, outp, exp, tvp), + TP_STRUCT__entry(__field(int, n) __field_hex(fd_set *, inp) __field_hex(fd_set *, outp) __field_hex(fd_set *, exp) __field_hex(struct timeval *, tvp)), + TP_fast_assign(tp_assign(n, n) tp_assign(inp, inp) tp_assign(outp, outp) tp_assign(exp, exp) tp_assign(tvp, tvp)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_pciconfig_read +SC_TRACE_EVENT(sys_pciconfig_read, + TP_PROTO(unsigned long bus, unsigned long dfn, unsigned long off, unsigned long len, void * buf), + TP_ARGS(bus, dfn, off, len, buf), + TP_STRUCT__entry(__field(unsigned long, bus) __field(unsigned long, dfn) __field(unsigned long, off) __field(unsigned long, len) __field_hex(void *, buf)), + TP_fast_assign(tp_assign(bus, bus) tp_assign(dfn, dfn) tp_assign(off, off) tp_assign(len, len) tp_assign(buf, buf)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_pciconfig_write +SC_TRACE_EVENT(sys_pciconfig_write, + TP_PROTO(unsigned long bus, unsigned long dfn, unsigned long off, unsigned long len, void * buf), + TP_ARGS(bus, dfn, off, len, buf), + TP_STRUCT__entry(__field(unsigned long, bus) __field(unsigned long, dfn) __field(unsigned long, off) __field(unsigned long, len) __field_hex(void *, buf)), + TP_fast_assign(tp_assign(bus, bus) tp_assign(dfn, dfn) tp_assign(off, off) tp_assign(len, len) tp_assign(buf, buf)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_setxattr +SC_TRACE_EVENT(sys_setxattr, + TP_PROTO(const char * pathname, const char * name, const void * value, size_t size, int flags), + TP_ARGS(pathname, name, value, size, flags), + TP_STRUCT__entry(__string_from_user(pathname, pathname) __string_from_user(name, name) __field_hex(const void *, value) __field(size_t, size) __field(int, flags)), + TP_fast_assign(tp_copy_string_from_user(pathname, pathname) tp_copy_string_from_user(name, name) tp_assign(value, value) tp_assign(size, size) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_lsetxattr +SC_TRACE_EVENT(sys_lsetxattr, + TP_PROTO(const char * pathname, const char * name, const void * value, size_t size, int flags), + TP_ARGS(pathname, name, value, size, flags), + TP_STRUCT__entry(__string_from_user(pathname, pathname) __string_from_user(name, name) __field_hex(const void *, value) __field(size_t, size) __field(int, flags)), + TP_fast_assign(tp_copy_string_from_user(pathname, pathname) tp_copy_string_from_user(name, name) tp_assign(value, value) tp_assign(size, size) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_fsetxattr +SC_TRACE_EVENT(sys_fsetxattr, + TP_PROTO(int fd, const char * name, const void * value, size_t size, int flags), + TP_ARGS(fd, name, value, size, flags), + TP_STRUCT__entry(__field(int, fd) __string_from_user(name, name) __field_hex(const void *, value) __field(size_t, size) __field(int, flags)), + TP_fast_assign(tp_assign(fd, fd) tp_copy_string_from_user(name, name) tp_assign(value, value) tp_assign(size, size) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_io_getevents +SC_TRACE_EVENT(sys_io_getevents, + TP_PROTO(aio_context_t ctx_id, long min_nr, long nr, struct io_event * events, struct timespec * timeout), + TP_ARGS(ctx_id, min_nr, nr, events, timeout), + TP_STRUCT__entry(__field(aio_context_t, ctx_id) __field(long, min_nr) __field(long, nr) __field_hex(struct io_event *, events) __field_hex(struct timespec *, timeout)), + TP_fast_assign(tp_assign(ctx_id, ctx_id) tp_assign(min_nr, min_nr) tp_assign(nr, nr) tp_assign(events, events) tp_assign(timeout, timeout)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_mq_timedsend +SC_TRACE_EVENT(sys_mq_timedsend, + TP_PROTO(mqd_t mqdes, const char * u_msg_ptr, size_t msg_len, unsigned int msg_prio, const struct timespec * u_abs_timeout), + TP_ARGS(mqdes, u_msg_ptr, msg_len, msg_prio, u_abs_timeout), + TP_STRUCT__entry(__field(mqd_t, mqdes) __field_hex(const char *, u_msg_ptr) __field(size_t, msg_len) __field(unsigned int, msg_prio) __field_hex(const struct timespec *, u_abs_timeout)), + TP_fast_assign(tp_assign(mqdes, mqdes) tp_assign(u_msg_ptr, u_msg_ptr) tp_assign(msg_len, msg_len) tp_assign(msg_prio, msg_prio) tp_assign(u_abs_timeout, u_abs_timeout)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_mq_timedreceive +SC_TRACE_EVENT(sys_mq_timedreceive, + TP_PROTO(mqd_t mqdes, char * u_msg_ptr, size_t msg_len, unsigned int * u_msg_prio, const struct timespec * u_abs_timeout), + TP_ARGS(mqdes, u_msg_ptr, msg_len, u_msg_prio, u_abs_timeout), + TP_STRUCT__entry(__field(mqd_t, mqdes) __field_hex(char *, u_msg_ptr) __field(size_t, msg_len) __field_hex(unsigned int *, u_msg_prio) __field_hex(const struct timespec *, u_abs_timeout)), + TP_fast_assign(tp_assign(mqdes, mqdes) tp_assign(u_msg_ptr, u_msg_ptr) tp_assign(msg_len, msg_len) tp_assign(u_msg_prio, u_msg_prio) tp_assign(u_abs_timeout, u_abs_timeout)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_add_key +SC_TRACE_EVENT(sys_add_key, + TP_PROTO(const char * _type, const char * _description, const void * _payload, size_t plen, key_serial_t ringid), + TP_ARGS(_type, _description, _payload, plen, ringid), + TP_STRUCT__entry(__string_from_user(_type, _type) __field_hex(const char *, _description) __field_hex(const void *, _payload) __field(size_t, plen) __field(key_serial_t, ringid)), + TP_fast_assign(tp_copy_string_from_user(_type, _type) tp_assign(_description, _description) tp_assign(_payload, _payload) tp_assign(plen, plen) tp_assign(ringid, ringid)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_waitid +SC_TRACE_EVENT(sys_waitid, + TP_PROTO(int which, pid_t upid, struct siginfo * infop, int options, struct rusage * ru), + TP_ARGS(which, upid, infop, options, ru), + TP_STRUCT__entry(__field(int, which) __field(pid_t, upid) __field_hex(struct siginfo *, infop) __field(int, options) __field_hex(struct rusage *, ru)), + TP_fast_assign(tp_assign(which, which) tp_assign(upid, upid) tp_assign(infop, infop) tp_assign(options, options) tp_assign(ru, ru)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_ppoll +SC_TRACE_EVENT(sys_ppoll, + TP_PROTO(struct pollfd * ufds, unsigned int nfds, struct timespec * tsp, const sigset_t * sigmask, size_t sigsetsize), + TP_ARGS(ufds, nfds, tsp, sigmask, sigsetsize), + TP_STRUCT__entry(__field_hex(struct pollfd *, ufds) __field(unsigned int, nfds) __field_hex(struct timespec *, tsp) __field_hex(const sigset_t *, sigmask) __field(size_t, sigsetsize)), + TP_fast_assign(tp_assign(ufds, ufds) tp_assign(nfds, nfds) tp_assign(tsp, tsp) tp_assign(sigmask, sigmask) tp_assign(sigsetsize, sigsetsize)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_fchownat +SC_TRACE_EVENT(sys_fchownat, + TP_PROTO(int dfd, const char * filename, uid_t user, gid_t group, int flag), + TP_ARGS(dfd, filename, user, group, flag), + TP_STRUCT__entry(__field(int, dfd) __string_from_user(filename, filename) __field(uid_t, user) __field(gid_t, group) __field(int, flag)), + TP_fast_assign(tp_assign(dfd, dfd) tp_copy_string_from_user(filename, filename) tp_assign(user, user) tp_assign(group, group) tp_assign(flag, flag)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_linkat +SC_TRACE_EVENT(sys_linkat, + TP_PROTO(int olddfd, const char * oldname, int newdfd, const char * newname, int flags), + TP_ARGS(olddfd, oldname, newdfd, newname, flags), + TP_STRUCT__entry(__field(int, olddfd) __string_from_user(oldname, oldname) __field(int, newdfd) __string_from_user(newname, newname) __field(int, flags)), + TP_fast_assign(tp_assign(olddfd, olddfd) tp_copy_string_from_user(oldname, oldname) tp_assign(newdfd, newdfd) tp_copy_string_from_user(newname, newname) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_perf_event_open +SC_TRACE_EVENT(sys_perf_event_open, + TP_PROTO(struct perf_event_attr * attr_uptr, pid_t pid, int cpu, int group_fd, unsigned long flags), + TP_ARGS(attr_uptr, pid, cpu, group_fd, flags), + TP_STRUCT__entry(__field_hex(struct perf_event_attr *, attr_uptr) __field(pid_t, pid) __field(int, cpu) __field(int, group_fd) __field(unsigned long, flags)), + TP_fast_assign(tp_assign(attr_uptr, attr_uptr) tp_assign(pid, pid) tp_assign(cpu, cpu) tp_assign(group_fd, group_fd) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_preadv +SC_TRACE_EVENT(sys_preadv, + TP_PROTO(unsigned long fd, const struct iovec * vec, unsigned long vlen, unsigned long pos_l, unsigned long pos_h), + TP_ARGS(fd, vec, vlen, pos_l, pos_h), + TP_STRUCT__entry(__field(unsigned long, fd) __field_hex(const struct iovec *, vec) __field(unsigned long, vlen) __field(unsigned long, pos_l) __field(unsigned long, pos_h)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(vec, vec) tp_assign(vlen, vlen) tp_assign(pos_l, pos_l) tp_assign(pos_h, pos_h)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_pwritev +SC_TRACE_EVENT(sys_pwritev, + TP_PROTO(unsigned long fd, const struct iovec * vec, unsigned long vlen, unsigned long pos_l, unsigned long pos_h), + TP_ARGS(fd, vec, vlen, pos_l, pos_h), + TP_STRUCT__entry(__field(unsigned long, fd) __field_hex(const struct iovec *, vec) __field(unsigned long, vlen) __field(unsigned long, pos_l) __field(unsigned long, pos_h)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(vec, vec) tp_assign(vlen, vlen) tp_assign(pos_l, pos_l) tp_assign(pos_h, pos_h)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_setsockopt +SC_TRACE_EVENT(sys_setsockopt, + TP_PROTO(int fd, int level, int optname, char * optval, int optlen), + TP_ARGS(fd, level, optname, optval, optlen), + TP_STRUCT__entry(__field(int, fd) __field(int, level) __field(int, optname) __field_hex(char *, optval) __field(int, optlen)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(level, level) tp_assign(optname, optname) tp_assign(optval, optval) tp_assign(optlen, optlen)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_getsockopt +SC_TRACE_EVENT(sys_getsockopt, + TP_PROTO(int fd, int level, int optname, char * optval, int * optlen), + TP_ARGS(fd, level, optname, optval, optlen), + TP_STRUCT__entry(__field(int, fd) __field(int, level) __field(int, optname) __field_hex(char *, optval) __field_hex(int *, optlen)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(level, level) tp_assign(optname, optname) tp_assign(optval, optval) tp_assign(optlen, optlen)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_recvmmsg +SC_TRACE_EVENT(sys_recvmmsg, + TP_PROTO(int fd, struct mmsghdr * mmsg, unsigned int vlen, unsigned int flags, struct timespec * timeout), + TP_ARGS(fd, mmsg, vlen, flags, timeout), + TP_STRUCT__entry(__field(int, fd) __field_hex(struct mmsghdr *, mmsg) __field(unsigned int, vlen) __field(unsigned int, flags) __field_hex(struct timespec *, timeout)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(mmsg, mmsg) tp_assign(vlen, vlen) tp_assign(flags, flags) tp_assign(timeout, timeout)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_ipc +SC_TRACE_EVENT(sys_ipc, + TP_PROTO(unsigned int call, int first, unsigned long second, unsigned long third, void * ptr, long fifth), + TP_ARGS(call, first, second, third, ptr, fifth), + TP_STRUCT__entry(__field(unsigned int, call) __field(int, first) __field(unsigned long, second) __field(unsigned long, third) __field_hex(void *, ptr) __field(long, fifth)), + TP_fast_assign(tp_assign(call, call) tp_assign(first, first) tp_assign(second, second) tp_assign(third, third) tp_assign(ptr, ptr) tp_assign(fifth, fifth)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_futex +SC_TRACE_EVENT(sys_futex, + TP_PROTO(u32 * uaddr, int op, u32 val, struct timespec * utime, u32 * uaddr2, u32 val3), + TP_ARGS(uaddr, op, val, utime, uaddr2, val3), + TP_STRUCT__entry(__field_hex(u32 *, uaddr) __field(int, op) __field(u32, val) __field_hex(struct timespec *, utime) __field_hex(u32 *, uaddr2) __field(u32, val3)), + TP_fast_assign(tp_assign(uaddr, uaddr) tp_assign(op, op) tp_assign(val, val) tp_assign(utime, utime) tp_assign(uaddr2, uaddr2) tp_assign(val3, val3)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_pselect6 +SC_TRACE_EVENT(sys_pselect6, + TP_PROTO(int n, fd_set * inp, fd_set * outp, fd_set * exp, struct timespec * tsp, void * sig), + TP_ARGS(n, inp, outp, exp, tsp, sig), + TP_STRUCT__entry(__field(int, n) __field_hex(fd_set *, inp) __field_hex(fd_set *, outp) __field_hex(fd_set *, exp) __field_hex(struct timespec *, tsp) __field_hex(void *, sig)), + TP_fast_assign(tp_assign(n, n) tp_assign(inp, inp) tp_assign(outp, outp) tp_assign(exp, exp) tp_assign(tsp, tsp) tp_assign(sig, sig)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_splice +SC_TRACE_EVENT(sys_splice, + TP_PROTO(int fd_in, loff_t * off_in, int fd_out, loff_t * off_out, size_t len, unsigned int flags), + TP_ARGS(fd_in, off_in, fd_out, off_out, len, flags), + TP_STRUCT__entry(__field(int, fd_in) __field_hex(loff_t *, off_in) __field(int, fd_out) __field_hex(loff_t *, off_out) __field(size_t, len) __field(unsigned int, flags)), + TP_fast_assign(tp_assign(fd_in, fd_in) tp_assign(off_in, off_in) tp_assign(fd_out, fd_out) tp_assign(off_out, off_out) tp_assign(len, len) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_epoll_pwait +SC_TRACE_EVENT(sys_epoll_pwait, + TP_PROTO(int epfd, struct epoll_event * events, int maxevents, int timeout, const sigset_t * sigmask, size_t sigsetsize), + TP_ARGS(epfd, events, maxevents, timeout, sigmask, sigsetsize), + TP_STRUCT__entry(__field(int, epfd) __field_hex(struct epoll_event *, events) __field(int, maxevents) __field(int, timeout) __field_hex(const sigset_t *, sigmask) __field(size_t, sigsetsize)), + TP_fast_assign(tp_assign(epfd, epfd) tp_assign(events, events) tp_assign(maxevents, maxevents) tp_assign(timeout, timeout) tp_assign(sigmask, sigmask) tp_assign(sigsetsize, sigsetsize)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_sendto +SC_TRACE_EVENT(sys_sendto, + TP_PROTO(int fd, void * buff, size_t len, unsigned flags, struct sockaddr * addr, int addr_len), + TP_ARGS(fd, buff, len, flags, addr, addr_len), + TP_STRUCT__entry(__field(int, fd) __field_hex(void *, buff) __field(size_t, len) __field(unsigned, flags) __field_hex(struct sockaddr *, addr) __field_hex(int, addr_len)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(buff, buff) tp_assign(len, len) tp_assign(flags, flags) tp_assign(addr, addr) tp_assign(addr_len, addr_len)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_recvfrom +SC_TRACE_EVENT(sys_recvfrom, + TP_PROTO(int fd, void * ubuf, size_t size, unsigned flags, struct sockaddr * addr, int * addr_len), + TP_ARGS(fd, ubuf, size, flags, addr, addr_len), + TP_STRUCT__entry(__field(int, fd) __field_hex(void *, ubuf) __field(size_t, size) __field(unsigned, flags) __field_hex(struct sockaddr *, addr) __field_hex(int *, addr_len)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(ubuf, ubuf) tp_assign(size, size) tp_assign(flags, flags) tp_assign(addr, addr) tp_assign(addr_len, addr_len)), + TP_printk() +) +#endif + +#endif /* _TRACE_SYSCALLS_POINTERS_H */ + +/* This part must be outside protection */ +#include "../../../probes/define_trace.h" + +#else /* CREATE_SYSCALL_TABLE */ + +#include "powerpc-32-syscalls-3.0.34_pointers_override.h" +#include "syscalls_pointers_override.h" + +#ifndef OVERRIDE_TABLE_32_sys_read +TRACE_SYSCALL_TABLE(sys_read, sys_read, 3, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_write +TRACE_SYSCALL_TABLE(sys_write, sys_write, 4, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_open +TRACE_SYSCALL_TABLE(sys_open, sys_open, 5, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_waitpid +TRACE_SYSCALL_TABLE(sys_waitpid, sys_waitpid, 7, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_creat +TRACE_SYSCALL_TABLE(sys_creat, sys_creat, 8, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_link +TRACE_SYSCALL_TABLE(sys_link, sys_link, 9, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_unlink +TRACE_SYSCALL_TABLE(sys_unlink, sys_unlink, 10, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_chdir +TRACE_SYSCALL_TABLE(sys_chdir, sys_chdir, 12, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_time +TRACE_SYSCALL_TABLE(sys_time, sys_time, 13, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_mknod +TRACE_SYSCALL_TABLE(sys_mknod, sys_mknod, 14, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_chmod +TRACE_SYSCALL_TABLE(sys_chmod, sys_chmod, 15, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_lchown +TRACE_SYSCALL_TABLE(sys_lchown, sys_lchown, 16, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_stat +TRACE_SYSCALL_TABLE(sys_stat, sys_stat, 18, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_mount +TRACE_SYSCALL_TABLE(sys_mount, sys_mount, 21, 5) +#endif +#ifndef OVERRIDE_TABLE_32_sys_oldumount +TRACE_SYSCALL_TABLE(sys_oldumount, sys_oldumount, 22, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_stime +TRACE_SYSCALL_TABLE(sys_stime, sys_stime, 25, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_fstat +TRACE_SYSCALL_TABLE(sys_fstat, sys_fstat, 28, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_utime +TRACE_SYSCALL_TABLE(sys_utime, sys_utime, 30, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_access +TRACE_SYSCALL_TABLE(sys_access, sys_access, 33, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_rename +TRACE_SYSCALL_TABLE(sys_rename, sys_rename, 38, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_mkdir +TRACE_SYSCALL_TABLE(sys_mkdir, sys_mkdir, 39, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_rmdir +TRACE_SYSCALL_TABLE(sys_rmdir, sys_rmdir, 40, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_pipe +TRACE_SYSCALL_TABLE(sys_pipe, sys_pipe, 42, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_times +TRACE_SYSCALL_TABLE(sys_times, sys_times, 43, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_acct +TRACE_SYSCALL_TABLE(sys_acct, sys_acct, 51, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_umount +TRACE_SYSCALL_TABLE(sys_umount, sys_umount, 52, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_olduname +TRACE_SYSCALL_TABLE(sys_olduname, sys_olduname, 59, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_chroot +TRACE_SYSCALL_TABLE(sys_chroot, sys_chroot, 61, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_ustat +TRACE_SYSCALL_TABLE(sys_ustat, sys_ustat, 62, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_sigpending +TRACE_SYSCALL_TABLE(sys_sigpending, sys_sigpending, 73, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_sethostname +TRACE_SYSCALL_TABLE(sys_sethostname, sys_sethostname, 74, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_setrlimit +TRACE_SYSCALL_TABLE(sys_setrlimit, sys_setrlimit, 75, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_old_getrlimit +TRACE_SYSCALL_TABLE(sys_old_getrlimit, sys_old_getrlimit, 76, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_getrusage +TRACE_SYSCALL_TABLE(sys_getrusage, sys_getrusage, 77, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_gettimeofday +TRACE_SYSCALL_TABLE(sys_gettimeofday, sys_gettimeofday, 78, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_settimeofday +TRACE_SYSCALL_TABLE(sys_settimeofday, sys_settimeofday, 79, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_getgroups +TRACE_SYSCALL_TABLE(sys_getgroups, sys_getgroups, 80, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_setgroups +TRACE_SYSCALL_TABLE(sys_setgroups, sys_setgroups, 81, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_symlink +TRACE_SYSCALL_TABLE(sys_symlink, sys_symlink, 83, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_lstat +TRACE_SYSCALL_TABLE(sys_lstat, sys_lstat, 84, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_readlink +TRACE_SYSCALL_TABLE(sys_readlink, sys_readlink, 85, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_uselib +TRACE_SYSCALL_TABLE(sys_uselib, sys_uselib, 86, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_swapon +TRACE_SYSCALL_TABLE(sys_swapon, sys_swapon, 87, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_reboot +TRACE_SYSCALL_TABLE(sys_reboot, sys_reboot, 88, 4) +#endif +#ifndef OVERRIDE_TABLE_32_sys_old_readdir +TRACE_SYSCALL_TABLE(sys_old_readdir, sys_old_readdir, 89, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_truncate +TRACE_SYSCALL_TABLE(sys_truncate, sys_truncate, 92, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_statfs +TRACE_SYSCALL_TABLE(sys_statfs, sys_statfs, 99, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_fstatfs +TRACE_SYSCALL_TABLE(sys_fstatfs, sys_fstatfs, 100, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_socketcall +TRACE_SYSCALL_TABLE(sys_socketcall, sys_socketcall, 102, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_syslog +TRACE_SYSCALL_TABLE(sys_syslog, sys_syslog, 103, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_setitimer +TRACE_SYSCALL_TABLE(sys_setitimer, sys_setitimer, 104, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_getitimer +TRACE_SYSCALL_TABLE(sys_getitimer, sys_getitimer, 105, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_newstat +TRACE_SYSCALL_TABLE(sys_newstat, sys_newstat, 106, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_newlstat +TRACE_SYSCALL_TABLE(sys_newlstat, sys_newlstat, 107, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_newfstat +TRACE_SYSCALL_TABLE(sys_newfstat, sys_newfstat, 108, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_uname +TRACE_SYSCALL_TABLE(sys_uname, sys_uname, 109, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_wait4 +TRACE_SYSCALL_TABLE(sys_wait4, sys_wait4, 114, 4) +#endif +#ifndef OVERRIDE_TABLE_32_sys_swapoff +TRACE_SYSCALL_TABLE(sys_swapoff, sys_swapoff, 115, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_sysinfo +TRACE_SYSCALL_TABLE(sys_sysinfo, sys_sysinfo, 116, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_ipc +TRACE_SYSCALL_TABLE(sys_ipc, sys_ipc, 117, 6) +#endif +#ifndef OVERRIDE_TABLE_32_sys_setdomainname +TRACE_SYSCALL_TABLE(sys_setdomainname, sys_setdomainname, 121, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_newuname +TRACE_SYSCALL_TABLE(sys_newuname, sys_newuname, 122, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_adjtimex +TRACE_SYSCALL_TABLE(sys_adjtimex, sys_adjtimex, 124, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_sigprocmask +TRACE_SYSCALL_TABLE(sys_sigprocmask, sys_sigprocmask, 126, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_init_module +TRACE_SYSCALL_TABLE(sys_init_module, sys_init_module, 128, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_delete_module +TRACE_SYSCALL_TABLE(sys_delete_module, sys_delete_module, 129, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_llseek +TRACE_SYSCALL_TABLE(sys_llseek, sys_llseek, 140, 5) +#endif +#ifndef OVERRIDE_TABLE_32_sys_getdents +TRACE_SYSCALL_TABLE(sys_getdents, sys_getdents, 141, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_select +TRACE_SYSCALL_TABLE(sys_select, sys_select, 142, 5) +#endif +#ifndef OVERRIDE_TABLE_32_sys_readv +TRACE_SYSCALL_TABLE(sys_readv, sys_readv, 145, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_writev +TRACE_SYSCALL_TABLE(sys_writev, sys_writev, 146, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_sysctl +TRACE_SYSCALL_TABLE(sys_sysctl, sys_sysctl, 149, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_sched_setparam +TRACE_SYSCALL_TABLE(sys_sched_setparam, sys_sched_setparam, 154, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_sched_getparam +TRACE_SYSCALL_TABLE(sys_sched_getparam, sys_sched_getparam, 155, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_sched_setscheduler +TRACE_SYSCALL_TABLE(sys_sched_setscheduler, sys_sched_setscheduler, 156, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_sched_rr_get_interval +TRACE_SYSCALL_TABLE(sys_sched_rr_get_interval, sys_sched_rr_get_interval, 161, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_nanosleep +TRACE_SYSCALL_TABLE(sys_nanosleep, sys_nanosleep, 162, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_getresuid +TRACE_SYSCALL_TABLE(sys_getresuid, sys_getresuid, 165, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_poll +TRACE_SYSCALL_TABLE(sys_poll, sys_poll, 167, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_nfsservctl +TRACE_SYSCALL_TABLE(sys_nfsservctl, sys_nfsservctl, 168, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_getresgid +TRACE_SYSCALL_TABLE(sys_getresgid, sys_getresgid, 170, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_rt_sigaction +TRACE_SYSCALL_TABLE(sys_rt_sigaction, sys_rt_sigaction, 173, 4) +#endif +#ifndef OVERRIDE_TABLE_32_sys_rt_sigprocmask +TRACE_SYSCALL_TABLE(sys_rt_sigprocmask, sys_rt_sigprocmask, 174, 4) +#endif +#ifndef OVERRIDE_TABLE_32_sys_rt_sigpending +TRACE_SYSCALL_TABLE(sys_rt_sigpending, sys_rt_sigpending, 175, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_rt_sigtimedwait +TRACE_SYSCALL_TABLE(sys_rt_sigtimedwait, sys_rt_sigtimedwait, 176, 4) +#endif +#ifndef OVERRIDE_TABLE_32_sys_rt_sigqueueinfo +TRACE_SYSCALL_TABLE(sys_rt_sigqueueinfo, sys_rt_sigqueueinfo, 177, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_rt_sigsuspend +TRACE_SYSCALL_TABLE(sys_rt_sigsuspend, sys_rt_sigsuspend, 178, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_chown +TRACE_SYSCALL_TABLE(sys_chown, sys_chown, 181, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_getcwd +TRACE_SYSCALL_TABLE(sys_getcwd, sys_getcwd, 182, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_sendfile +TRACE_SYSCALL_TABLE(sys_sendfile, sys_sendfile, 186, 4) +#endif +#ifndef OVERRIDE_TABLE_32_sys_getrlimit +TRACE_SYSCALL_TABLE(sys_getrlimit, sys_getrlimit, 190, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_stat64 +TRACE_SYSCALL_TABLE(sys_stat64, sys_stat64, 195, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_lstat64 +TRACE_SYSCALL_TABLE(sys_lstat64, sys_lstat64, 196, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_fstat64 +TRACE_SYSCALL_TABLE(sys_fstat64, sys_fstat64, 197, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_pciconfig_read +TRACE_SYSCALL_TABLE(sys_pciconfig_read, sys_pciconfig_read, 198, 5) +#endif +#ifndef OVERRIDE_TABLE_32_sys_pciconfig_write +TRACE_SYSCALL_TABLE(sys_pciconfig_write, sys_pciconfig_write, 199, 5) +#endif +#ifndef OVERRIDE_TABLE_32_sys_getdents64 +TRACE_SYSCALL_TABLE(sys_getdents64, sys_getdents64, 202, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_pivot_root +TRACE_SYSCALL_TABLE(sys_pivot_root, sys_pivot_root, 203, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_mincore +TRACE_SYSCALL_TABLE(sys_mincore, sys_mincore, 206, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_setxattr +TRACE_SYSCALL_TABLE(sys_setxattr, sys_setxattr, 209, 5) +#endif +#ifndef OVERRIDE_TABLE_32_sys_lsetxattr +TRACE_SYSCALL_TABLE(sys_lsetxattr, sys_lsetxattr, 210, 5) +#endif +#ifndef OVERRIDE_TABLE_32_sys_fsetxattr +TRACE_SYSCALL_TABLE(sys_fsetxattr, sys_fsetxattr, 211, 5) +#endif +#ifndef OVERRIDE_TABLE_32_sys_getxattr +TRACE_SYSCALL_TABLE(sys_getxattr, sys_getxattr, 212, 4) +#endif +#ifndef OVERRIDE_TABLE_32_sys_lgetxattr +TRACE_SYSCALL_TABLE(sys_lgetxattr, sys_lgetxattr, 213, 4) +#endif +#ifndef OVERRIDE_TABLE_32_sys_fgetxattr +TRACE_SYSCALL_TABLE(sys_fgetxattr, sys_fgetxattr, 214, 4) +#endif +#ifndef OVERRIDE_TABLE_32_sys_listxattr +TRACE_SYSCALL_TABLE(sys_listxattr, sys_listxattr, 215, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_llistxattr +TRACE_SYSCALL_TABLE(sys_llistxattr, sys_llistxattr, 216, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_flistxattr +TRACE_SYSCALL_TABLE(sys_flistxattr, sys_flistxattr, 217, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_removexattr +TRACE_SYSCALL_TABLE(sys_removexattr, sys_removexattr, 218, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_lremovexattr +TRACE_SYSCALL_TABLE(sys_lremovexattr, sys_lremovexattr, 219, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_fremovexattr +TRACE_SYSCALL_TABLE(sys_fremovexattr, sys_fremovexattr, 220, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_futex +TRACE_SYSCALL_TABLE(sys_futex, sys_futex, 221, 6) +#endif +#ifndef OVERRIDE_TABLE_32_sys_sched_setaffinity +TRACE_SYSCALL_TABLE(sys_sched_setaffinity, sys_sched_setaffinity, 222, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_sched_getaffinity +TRACE_SYSCALL_TABLE(sys_sched_getaffinity, sys_sched_getaffinity, 223, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_sendfile64 +TRACE_SYSCALL_TABLE(sys_sendfile64, sys_sendfile64, 226, 4) +#endif +#ifndef OVERRIDE_TABLE_32_sys_io_setup +TRACE_SYSCALL_TABLE(sys_io_setup, sys_io_setup, 227, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_io_getevents +TRACE_SYSCALL_TABLE(sys_io_getevents, sys_io_getevents, 229, 5) +#endif +#ifndef OVERRIDE_TABLE_32_sys_io_submit +TRACE_SYSCALL_TABLE(sys_io_submit, sys_io_submit, 230, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_io_cancel +TRACE_SYSCALL_TABLE(sys_io_cancel, sys_io_cancel, 231, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_set_tid_address +TRACE_SYSCALL_TABLE(sys_set_tid_address, sys_set_tid_address, 232, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_epoll_ctl +TRACE_SYSCALL_TABLE(sys_epoll_ctl, sys_epoll_ctl, 237, 4) +#endif +#ifndef OVERRIDE_TABLE_32_sys_epoll_wait +TRACE_SYSCALL_TABLE(sys_epoll_wait, sys_epoll_wait, 238, 4) +#endif +#ifndef OVERRIDE_TABLE_32_sys_timer_create +TRACE_SYSCALL_TABLE(sys_timer_create, sys_timer_create, 240, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_timer_settime +TRACE_SYSCALL_TABLE(sys_timer_settime, sys_timer_settime, 241, 4) +#endif +#ifndef OVERRIDE_TABLE_32_sys_timer_gettime +TRACE_SYSCALL_TABLE(sys_timer_gettime, sys_timer_gettime, 242, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_clock_settime +TRACE_SYSCALL_TABLE(sys_clock_settime, sys_clock_settime, 245, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_clock_gettime +TRACE_SYSCALL_TABLE(sys_clock_gettime, sys_clock_gettime, 246, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_clock_getres +TRACE_SYSCALL_TABLE(sys_clock_getres, sys_clock_getres, 247, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_clock_nanosleep +TRACE_SYSCALL_TABLE(sys_clock_nanosleep, sys_clock_nanosleep, 248, 4) +#endif +#ifndef OVERRIDE_TABLE_32_sys_utimes +TRACE_SYSCALL_TABLE(sys_utimes, sys_utimes, 251, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_statfs64 +TRACE_SYSCALL_TABLE(sys_statfs64, sys_statfs64, 252, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_fstatfs64 +TRACE_SYSCALL_TABLE(sys_fstatfs64, sys_fstatfs64, 253, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_mq_open +TRACE_SYSCALL_TABLE(sys_mq_open, sys_mq_open, 262, 4) +#endif +#ifndef OVERRIDE_TABLE_32_sys_mq_unlink +TRACE_SYSCALL_TABLE(sys_mq_unlink, sys_mq_unlink, 263, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_mq_timedsend +TRACE_SYSCALL_TABLE(sys_mq_timedsend, sys_mq_timedsend, 264, 5) +#endif +#ifndef OVERRIDE_TABLE_32_sys_mq_timedreceive +TRACE_SYSCALL_TABLE(sys_mq_timedreceive, sys_mq_timedreceive, 265, 5) +#endif +#ifndef OVERRIDE_TABLE_32_sys_mq_notify +TRACE_SYSCALL_TABLE(sys_mq_notify, sys_mq_notify, 266, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_mq_getsetattr +TRACE_SYSCALL_TABLE(sys_mq_getsetattr, sys_mq_getsetattr, 267, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_add_key +TRACE_SYSCALL_TABLE(sys_add_key, sys_add_key, 269, 5) +#endif +#ifndef OVERRIDE_TABLE_32_sys_request_key +TRACE_SYSCALL_TABLE(sys_request_key, sys_request_key, 270, 4) +#endif +#ifndef OVERRIDE_TABLE_32_sys_waitid +TRACE_SYSCALL_TABLE(sys_waitid, sys_waitid, 272, 5) +#endif +#ifndef OVERRIDE_TABLE_32_sys_inotify_add_watch +TRACE_SYSCALL_TABLE(sys_inotify_add_watch, sys_inotify_add_watch, 276, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_pselect6 +TRACE_SYSCALL_TABLE(sys_pselect6, sys_pselect6, 280, 6) +#endif +#ifndef OVERRIDE_TABLE_32_sys_ppoll +TRACE_SYSCALL_TABLE(sys_ppoll, sys_ppoll, 281, 5) +#endif +#ifndef OVERRIDE_TABLE_32_sys_splice +TRACE_SYSCALL_TABLE(sys_splice, sys_splice, 283, 6) +#endif +#ifndef OVERRIDE_TABLE_32_sys_vmsplice +TRACE_SYSCALL_TABLE(sys_vmsplice, sys_vmsplice, 285, 4) +#endif +#ifndef OVERRIDE_TABLE_32_sys_openat +TRACE_SYSCALL_TABLE(sys_openat, sys_openat, 286, 4) +#endif +#ifndef OVERRIDE_TABLE_32_sys_mkdirat +TRACE_SYSCALL_TABLE(sys_mkdirat, sys_mkdirat, 287, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_mknodat +TRACE_SYSCALL_TABLE(sys_mknodat, sys_mknodat, 288, 4) +#endif +#ifndef OVERRIDE_TABLE_32_sys_fchownat +TRACE_SYSCALL_TABLE(sys_fchownat, sys_fchownat, 289, 5) +#endif +#ifndef OVERRIDE_TABLE_32_sys_futimesat +TRACE_SYSCALL_TABLE(sys_futimesat, sys_futimesat, 290, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_fstatat64 +TRACE_SYSCALL_TABLE(sys_fstatat64, sys_fstatat64, 291, 4) +#endif +#ifndef OVERRIDE_TABLE_32_sys_unlinkat +TRACE_SYSCALL_TABLE(sys_unlinkat, sys_unlinkat, 292, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_renameat +TRACE_SYSCALL_TABLE(sys_renameat, sys_renameat, 293, 4) +#endif +#ifndef OVERRIDE_TABLE_32_sys_linkat +TRACE_SYSCALL_TABLE(sys_linkat, sys_linkat, 294, 5) +#endif +#ifndef OVERRIDE_TABLE_32_sys_symlinkat +TRACE_SYSCALL_TABLE(sys_symlinkat, sys_symlinkat, 295, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_readlinkat +TRACE_SYSCALL_TABLE(sys_readlinkat, sys_readlinkat, 296, 4) +#endif +#ifndef OVERRIDE_TABLE_32_sys_fchmodat +TRACE_SYSCALL_TABLE(sys_fchmodat, sys_fchmodat, 297, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_faccessat +TRACE_SYSCALL_TABLE(sys_faccessat, sys_faccessat, 298, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_get_robust_list +TRACE_SYSCALL_TABLE(sys_get_robust_list, sys_get_robust_list, 299, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_set_robust_list +TRACE_SYSCALL_TABLE(sys_set_robust_list, sys_set_robust_list, 300, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_getcpu +TRACE_SYSCALL_TABLE(sys_getcpu, sys_getcpu, 302, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_epoll_pwait +TRACE_SYSCALL_TABLE(sys_epoll_pwait, sys_epoll_pwait, 303, 6) +#endif +#ifndef OVERRIDE_TABLE_32_sys_utimensat +TRACE_SYSCALL_TABLE(sys_utimensat, sys_utimensat, 304, 4) +#endif +#ifndef OVERRIDE_TABLE_32_sys_signalfd +TRACE_SYSCALL_TABLE(sys_signalfd, sys_signalfd, 305, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_timerfd_settime +TRACE_SYSCALL_TABLE(sys_timerfd_settime, sys_timerfd_settime, 311, 4) +#endif +#ifndef OVERRIDE_TABLE_32_sys_timerfd_gettime +TRACE_SYSCALL_TABLE(sys_timerfd_gettime, sys_timerfd_gettime, 312, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_signalfd4 +TRACE_SYSCALL_TABLE(sys_signalfd4, sys_signalfd4, 313, 4) +#endif +#ifndef OVERRIDE_TABLE_32_sys_pipe2 +TRACE_SYSCALL_TABLE(sys_pipe2, sys_pipe2, 317, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_perf_event_open +TRACE_SYSCALL_TABLE(sys_perf_event_open, sys_perf_event_open, 319, 5) +#endif +#ifndef OVERRIDE_TABLE_32_sys_preadv +TRACE_SYSCALL_TABLE(sys_preadv, sys_preadv, 320, 5) +#endif +#ifndef OVERRIDE_TABLE_32_sys_pwritev +TRACE_SYSCALL_TABLE(sys_pwritev, sys_pwritev, 321, 5) +#endif +#ifndef OVERRIDE_TABLE_32_sys_rt_tgsigqueueinfo +TRACE_SYSCALL_TABLE(sys_rt_tgsigqueueinfo, sys_rt_tgsigqueueinfo, 322, 4) +#endif +#ifndef OVERRIDE_TABLE_32_sys_prlimit64 +TRACE_SYSCALL_TABLE(sys_prlimit64, sys_prlimit64, 325, 4) +#endif +#ifndef OVERRIDE_TABLE_32_sys_bind +TRACE_SYSCALL_TABLE(sys_bind, sys_bind, 327, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_connect +TRACE_SYSCALL_TABLE(sys_connect, sys_connect, 328, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_accept +TRACE_SYSCALL_TABLE(sys_accept, sys_accept, 330, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_getsockname +TRACE_SYSCALL_TABLE(sys_getsockname, sys_getsockname, 331, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_getpeername +TRACE_SYSCALL_TABLE(sys_getpeername, sys_getpeername, 332, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_socketpair +TRACE_SYSCALL_TABLE(sys_socketpair, sys_socketpair, 333, 4) +#endif +#ifndef OVERRIDE_TABLE_32_sys_send +TRACE_SYSCALL_TABLE(sys_send, sys_send, 334, 4) +#endif +#ifndef OVERRIDE_TABLE_32_sys_sendto +TRACE_SYSCALL_TABLE(sys_sendto, sys_sendto, 335, 6) +#endif +#ifndef OVERRIDE_TABLE_32_sys_recvfrom +TRACE_SYSCALL_TABLE(sys_recvfrom, sys_recvfrom, 337, 6) +#endif +#ifndef OVERRIDE_TABLE_32_sys_setsockopt +TRACE_SYSCALL_TABLE(sys_setsockopt, sys_setsockopt, 339, 5) +#endif +#ifndef OVERRIDE_TABLE_32_sys_getsockopt +TRACE_SYSCALL_TABLE(sys_getsockopt, sys_getsockopt, 340, 5) +#endif +#ifndef OVERRIDE_TABLE_32_sys_sendmsg +TRACE_SYSCALL_TABLE(sys_sendmsg, sys_sendmsg, 341, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_recvmsg +TRACE_SYSCALL_TABLE(sys_recvmsg, sys_recvmsg, 342, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_recvmmsg +TRACE_SYSCALL_TABLE(sys_recvmmsg, sys_recvmmsg, 343, 5) +#endif +#ifndef OVERRIDE_TABLE_32_sys_accept4 +TRACE_SYSCALL_TABLE(sys_accept4, sys_accept4, 344, 4) +#endif +#ifndef OVERRIDE_TABLE_32_sys_clock_adjtime +TRACE_SYSCALL_TABLE(sys_clock_adjtime, sys_clock_adjtime, 347, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_sendmmsg +TRACE_SYSCALL_TABLE(sys_sendmmsg, sys_sendmmsg, 349, 4) +#endif + +#endif /* CREATE_SYSCALL_TABLE */ --- linux-3.11.0.orig/ubuntu/lttng-modules/instrumentation/syscalls/headers/x86-32-syscalls-3.1.0-rc6_pointers.h +++ linux-3.11.0/ubuntu/lttng-modules/instrumentation/syscalls/headers/x86-32-syscalls-3.1.0-rc6_pointers.h @@ -0,0 +1,2232 @@ +/* THIS FILE IS AUTO-GENERATED. DO NOT EDIT */ +#ifndef CREATE_SYSCALL_TABLE + +#if !defined(_TRACE_SYSCALLS_POINTERS_H) || defined(TRACE_HEADER_MULTI_READ) +#define _TRACE_SYSCALLS_POINTERS_H + +#include +#include +#include "x86-32-syscalls-3.1.0-rc6_pointers_override.h" +#include "syscalls_pointers_override.h" + +#ifndef OVERRIDE_32_sys_unlink +SC_TRACE_EVENT(sys_unlink, + TP_PROTO(const char * pathname), + TP_ARGS(pathname), + TP_STRUCT__entry(__string_from_user(pathname, pathname)), + TP_fast_assign(tp_copy_string_from_user(pathname, pathname)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_chdir +SC_TRACE_EVENT(sys_chdir, + TP_PROTO(const char * filename), + TP_ARGS(filename), + TP_STRUCT__entry(__string_from_user(filename, filename)), + TP_fast_assign(tp_copy_string_from_user(filename, filename)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_time +SC_TRACE_EVENT(sys_time, + TP_PROTO(time_t * tloc), + TP_ARGS(tloc), + TP_STRUCT__entry(__field_hex(time_t *, tloc)), + TP_fast_assign(tp_assign(tloc, tloc)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_oldumount +SC_TRACE_EVENT(sys_oldumount, + TP_PROTO(char * name), + TP_ARGS(name), + TP_STRUCT__entry(__string_from_user(name, name)), + TP_fast_assign(tp_copy_string_from_user(name, name)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_stime +SC_TRACE_EVENT(sys_stime, + TP_PROTO(time_t * tptr), + TP_ARGS(tptr), + TP_STRUCT__entry(__field_hex(time_t *, tptr)), + TP_fast_assign(tp_assign(tptr, tptr)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_rmdir +SC_TRACE_EVENT(sys_rmdir, + TP_PROTO(const char * pathname), + TP_ARGS(pathname), + TP_STRUCT__entry(__string_from_user(pathname, pathname)), + TP_fast_assign(tp_copy_string_from_user(pathname, pathname)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_pipe +SC_TRACE_EVENT(sys_pipe, + TP_PROTO(int * fildes), + TP_ARGS(fildes), + TP_STRUCT__entry(__field_hex(int *, fildes)), + TP_fast_assign(tp_assign(fildes, fildes)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_times +SC_TRACE_EVENT(sys_times, + TP_PROTO(struct tms * tbuf), + TP_ARGS(tbuf), + TP_STRUCT__entry(__field_hex(struct tms *, tbuf)), + TP_fast_assign(tp_assign(tbuf, tbuf)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_acct +SC_TRACE_EVENT(sys_acct, + TP_PROTO(const char * name), + TP_ARGS(name), + TP_STRUCT__entry(__string_from_user(name, name)), + TP_fast_assign(tp_copy_string_from_user(name, name)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_olduname +SC_TRACE_EVENT(sys_olduname, + TP_PROTO(struct oldold_utsname * name), + TP_ARGS(name), + TP_STRUCT__entry(__field_hex(struct oldold_utsname *, name)), + TP_fast_assign(tp_assign(name, name)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_chroot +SC_TRACE_EVENT(sys_chroot, + TP_PROTO(const char * filename), + TP_ARGS(filename), + TP_STRUCT__entry(__string_from_user(filename, filename)), + TP_fast_assign(tp_copy_string_from_user(filename, filename)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_sigpending +SC_TRACE_EVENT(sys_sigpending, + TP_PROTO(old_sigset_t * set), + TP_ARGS(set), + TP_STRUCT__entry(__field_hex(old_sigset_t *, set)), + TP_fast_assign(tp_assign(set, set)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_old_select +SC_TRACE_EVENT(sys_old_select, + TP_PROTO(struct sel_arg_struct * arg), + TP_ARGS(arg), + TP_STRUCT__entry(__field_hex(struct sel_arg_struct *, arg)), + TP_fast_assign(tp_assign(arg, arg)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_uselib +SC_TRACE_EVENT(sys_uselib, + TP_PROTO(const char * library), + TP_ARGS(library), + TP_STRUCT__entry(__field_hex(const char *, library)), + TP_fast_assign(tp_assign(library, library)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_old_mmap +SC_TRACE_EVENT(sys_old_mmap, + TP_PROTO(struct mmap_arg_struct * arg), + TP_ARGS(arg), + TP_STRUCT__entry(__field_hex(struct mmap_arg_struct *, arg)), + TP_fast_assign(tp_assign(arg, arg)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_uname +SC_TRACE_EVENT(sys_uname, + TP_PROTO(struct old_utsname * name), + TP_ARGS(name), + TP_STRUCT__entry(__field_hex(struct old_utsname *, name)), + TP_fast_assign(tp_assign(name, name)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_swapoff +SC_TRACE_EVENT(sys_swapoff, + TP_PROTO(const char * specialfile), + TP_ARGS(specialfile), + TP_STRUCT__entry(__string_from_user(specialfile, specialfile)), + TP_fast_assign(tp_copy_string_from_user(specialfile, specialfile)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_sysinfo +SC_TRACE_EVENT(sys_sysinfo, + TP_PROTO(struct sysinfo * info), + TP_ARGS(info), + TP_STRUCT__entry(__field_hex(struct sysinfo *, info)), + TP_fast_assign(tp_assign(info, info)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_newuname +SC_TRACE_EVENT(sys_newuname, + TP_PROTO(struct new_utsname * name), + TP_ARGS(name), + TP_STRUCT__entry(__field_hex(struct new_utsname *, name)), + TP_fast_assign(tp_assign(name, name)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_adjtimex +SC_TRACE_EVENT(sys_adjtimex, + TP_PROTO(struct timex * txc_p), + TP_ARGS(txc_p), + TP_STRUCT__entry(__field_hex(struct timex *, txc_p)), + TP_fast_assign(tp_assign(txc_p, txc_p)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_sysctl +SC_TRACE_EVENT(sys_sysctl, + TP_PROTO(struct __sysctl_args * args), + TP_ARGS(args), + TP_STRUCT__entry(__field_hex(struct __sysctl_args *, args)), + TP_fast_assign(tp_assign(args, args)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_set_tid_address +SC_TRACE_EVENT(sys_set_tid_address, + TP_PROTO(int * tidptr), + TP_ARGS(tidptr), + TP_STRUCT__entry(__field_hex(int *, tidptr)), + TP_fast_assign(tp_assign(tidptr, tidptr)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_mq_unlink +SC_TRACE_EVENT(sys_mq_unlink, + TP_PROTO(const char * u_name), + TP_ARGS(u_name), + TP_STRUCT__entry(__string_from_user(u_name, u_name)), + TP_fast_assign(tp_copy_string_from_user(u_name, u_name)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_creat +SC_TRACE_EVENT(sys_creat, + TP_PROTO(const char * pathname, int mode), + TP_ARGS(pathname, mode), + TP_STRUCT__entry(__string_from_user(pathname, pathname) __field(int, mode)), + TP_fast_assign(tp_copy_string_from_user(pathname, pathname) tp_assign(mode, mode)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_link +SC_TRACE_EVENT(sys_link, + TP_PROTO(const char * oldname, const char * newname), + TP_ARGS(oldname, newname), + TP_STRUCT__entry(__string_from_user(oldname, oldname) __string_from_user(newname, newname)), + TP_fast_assign(tp_copy_string_from_user(oldname, oldname) tp_copy_string_from_user(newname, newname)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_chmod +SC_TRACE_EVENT(sys_chmod, + TP_PROTO(const char * filename, mode_t mode), + TP_ARGS(filename, mode), + TP_STRUCT__entry(__string_from_user(filename, filename) __field(mode_t, mode)), + TP_fast_assign(tp_copy_string_from_user(filename, filename) tp_assign(mode, mode)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_stat +SC_TRACE_EVENT(sys_stat, + TP_PROTO(const char * filename, struct __old_kernel_stat * statbuf), + TP_ARGS(filename, statbuf), + TP_STRUCT__entry(__string_from_user(filename, filename) __field_hex(struct __old_kernel_stat *, statbuf)), + TP_fast_assign(tp_copy_string_from_user(filename, filename) tp_assign(statbuf, statbuf)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_fstat +SC_TRACE_EVENT(sys_fstat, + TP_PROTO(unsigned int fd, struct __old_kernel_stat * statbuf), + TP_ARGS(fd, statbuf), + TP_STRUCT__entry(__field(unsigned int, fd) __field_hex(struct __old_kernel_stat *, statbuf)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(statbuf, statbuf)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_utime +SC_TRACE_EVENT(sys_utime, + TP_PROTO(char * filename, struct utimbuf * times), + TP_ARGS(filename, times), + TP_STRUCT__entry(__string_from_user(filename, filename) __field_hex(struct utimbuf *, times)), + TP_fast_assign(tp_copy_string_from_user(filename, filename) tp_assign(times, times)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_access +SC_TRACE_EVENT(sys_access, + TP_PROTO(const char * filename, int mode), + TP_ARGS(filename, mode), + TP_STRUCT__entry(__string_from_user(filename, filename) __field(int, mode)), + TP_fast_assign(tp_copy_string_from_user(filename, filename) tp_assign(mode, mode)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_rename +SC_TRACE_EVENT(sys_rename, + TP_PROTO(const char * oldname, const char * newname), + TP_ARGS(oldname, newname), + TP_STRUCT__entry(__string_from_user(oldname, oldname) __string_from_user(newname, newname)), + TP_fast_assign(tp_copy_string_from_user(oldname, oldname) tp_copy_string_from_user(newname, newname)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_mkdir +SC_TRACE_EVENT(sys_mkdir, + TP_PROTO(const char * pathname, int mode), + TP_ARGS(pathname, mode), + TP_STRUCT__entry(__string_from_user(pathname, pathname) __field(int, mode)), + TP_fast_assign(tp_copy_string_from_user(pathname, pathname) tp_assign(mode, mode)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_umount +SC_TRACE_EVENT(sys_umount, + TP_PROTO(char * name, int flags), + TP_ARGS(name, flags), + TP_STRUCT__entry(__string_from_user(name, name) __field(int, flags)), + TP_fast_assign(tp_copy_string_from_user(name, name) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_ustat +SC_TRACE_EVENT(sys_ustat, + TP_PROTO(unsigned dev, struct ustat * ubuf), + TP_ARGS(dev, ubuf), + TP_STRUCT__entry(__field(unsigned, dev) __field_hex(struct ustat *, ubuf)), + TP_fast_assign(tp_assign(dev, dev) tp_assign(ubuf, ubuf)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_sethostname +SC_TRACE_EVENT(sys_sethostname, + TP_PROTO(char * name, int len), + TP_ARGS(name, len), + TP_STRUCT__entry(__string_from_user(name, name) __field(int, len)), + TP_fast_assign(tp_copy_string_from_user(name, name) tp_assign(len, len)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_setrlimit +SC_TRACE_EVENT(sys_setrlimit, + TP_PROTO(unsigned int resource, struct rlimit * rlim), + TP_ARGS(resource, rlim), + TP_STRUCT__entry(__field(unsigned int, resource) __field_hex(struct rlimit *, rlim)), + TP_fast_assign(tp_assign(resource, resource) tp_assign(rlim, rlim)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_old_getrlimit +SC_TRACE_EVENT(sys_old_getrlimit, + TP_PROTO(unsigned int resource, struct rlimit * rlim), + TP_ARGS(resource, rlim), + TP_STRUCT__entry(__field(unsigned int, resource) __field_hex(struct rlimit *, rlim)), + TP_fast_assign(tp_assign(resource, resource) tp_assign(rlim, rlim)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_getrusage +SC_TRACE_EVENT(sys_getrusage, + TP_PROTO(int who, struct rusage * ru), + TP_ARGS(who, ru), + TP_STRUCT__entry(__field(int, who) __field_hex(struct rusage *, ru)), + TP_fast_assign(tp_assign(who, who) tp_assign(ru, ru)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_gettimeofday +SC_TRACE_EVENT(sys_gettimeofday, + TP_PROTO(struct timeval * tv, struct timezone * tz), + TP_ARGS(tv, tz), + TP_STRUCT__entry(__field_hex(struct timeval *, tv) __field_hex(struct timezone *, tz)), + TP_fast_assign(tp_assign(tv, tv) tp_assign(tz, tz)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_settimeofday +SC_TRACE_EVENT(sys_settimeofday, + TP_PROTO(struct timeval * tv, struct timezone * tz), + TP_ARGS(tv, tz), + TP_STRUCT__entry(__field_hex(struct timeval *, tv) __field_hex(struct timezone *, tz)), + TP_fast_assign(tp_assign(tv, tv) tp_assign(tz, tz)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_getgroups16 +SC_TRACE_EVENT(sys_getgroups16, + TP_PROTO(int gidsetsize, old_gid_t * grouplist), + TP_ARGS(gidsetsize, grouplist), + TP_STRUCT__entry(__field(int, gidsetsize) __field_hex(old_gid_t *, grouplist)), + TP_fast_assign(tp_assign(gidsetsize, gidsetsize) tp_assign(grouplist, grouplist)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_setgroups16 +SC_TRACE_EVENT(sys_setgroups16, + TP_PROTO(int gidsetsize, old_gid_t * grouplist), + TP_ARGS(gidsetsize, grouplist), + TP_STRUCT__entry(__field(int, gidsetsize) __field_hex(old_gid_t *, grouplist)), + TP_fast_assign(tp_assign(gidsetsize, gidsetsize) tp_assign(grouplist, grouplist)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_symlink +SC_TRACE_EVENT(sys_symlink, + TP_PROTO(const char * oldname, const char * newname), + TP_ARGS(oldname, newname), + TP_STRUCT__entry(__string_from_user(oldname, oldname) __string_from_user(newname, newname)), + TP_fast_assign(tp_copy_string_from_user(oldname, oldname) tp_copy_string_from_user(newname, newname)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_lstat +SC_TRACE_EVENT(sys_lstat, + TP_PROTO(const char * filename, struct __old_kernel_stat * statbuf), + TP_ARGS(filename, statbuf), + TP_STRUCT__entry(__string_from_user(filename, filename) __field_hex(struct __old_kernel_stat *, statbuf)), + TP_fast_assign(tp_copy_string_from_user(filename, filename) tp_assign(statbuf, statbuf)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_swapon +SC_TRACE_EVENT(sys_swapon, + TP_PROTO(const char * specialfile, int swap_flags), + TP_ARGS(specialfile, swap_flags), + TP_STRUCT__entry(__string_from_user(specialfile, specialfile) __field(int, swap_flags)), + TP_fast_assign(tp_copy_string_from_user(specialfile, specialfile) tp_assign(swap_flags, swap_flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_truncate +SC_TRACE_EVENT(sys_truncate, + TP_PROTO(const char * path, long length), + TP_ARGS(path, length), + TP_STRUCT__entry(__string_from_user(path, path) __field(long, length)), + TP_fast_assign(tp_copy_string_from_user(path, path) tp_assign(length, length)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_statfs +SC_TRACE_EVENT(sys_statfs, + TP_PROTO(const char * pathname, struct statfs * buf), + TP_ARGS(pathname, buf), + TP_STRUCT__entry(__string_from_user(pathname, pathname) __field_hex(struct statfs *, buf)), + TP_fast_assign(tp_copy_string_from_user(pathname, pathname) tp_assign(buf, buf)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_fstatfs +SC_TRACE_EVENT(sys_fstatfs, + TP_PROTO(unsigned int fd, struct statfs * buf), + TP_ARGS(fd, buf), + TP_STRUCT__entry(__field(unsigned int, fd) __field_hex(struct statfs *, buf)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(buf, buf)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_socketcall +SC_TRACE_EVENT(sys_socketcall, + TP_PROTO(int call, unsigned long * args), + TP_ARGS(call, args), + TP_STRUCT__entry(__field(int, call) __field_hex(unsigned long *, args)), + TP_fast_assign(tp_assign(call, call) tp_assign(args, args)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_getitimer +SC_TRACE_EVENT(sys_getitimer, + TP_PROTO(int which, struct itimerval * value), + TP_ARGS(which, value), + TP_STRUCT__entry(__field(int, which) __field_hex(struct itimerval *, value)), + TP_fast_assign(tp_assign(which, which) tp_assign(value, value)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_newstat +SC_TRACE_EVENT(sys_newstat, + TP_PROTO(const char * filename, struct stat * statbuf), + TP_ARGS(filename, statbuf), + TP_STRUCT__entry(__string_from_user(filename, filename) __field_hex(struct stat *, statbuf)), + TP_fast_assign(tp_copy_string_from_user(filename, filename) tp_assign(statbuf, statbuf)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_newlstat +SC_TRACE_EVENT(sys_newlstat, + TP_PROTO(const char * filename, struct stat * statbuf), + TP_ARGS(filename, statbuf), + TP_STRUCT__entry(__string_from_user(filename, filename) __field_hex(struct stat *, statbuf)), + TP_fast_assign(tp_copy_string_from_user(filename, filename) tp_assign(statbuf, statbuf)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_newfstat +SC_TRACE_EVENT(sys_newfstat, + TP_PROTO(unsigned int fd, struct stat * statbuf), + TP_ARGS(fd, statbuf), + TP_STRUCT__entry(__field(unsigned int, fd) __field_hex(struct stat *, statbuf)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(statbuf, statbuf)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_setdomainname +SC_TRACE_EVENT(sys_setdomainname, + TP_PROTO(char * name, int len), + TP_ARGS(name, len), + TP_STRUCT__entry(__string_from_user(name, name) __field(int, len)), + TP_fast_assign(tp_copy_string_from_user(name, name) tp_assign(len, len)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_delete_module +SC_TRACE_EVENT(sys_delete_module, + TP_PROTO(const char * name_user, unsigned int flags), + TP_ARGS(name_user, flags), + TP_STRUCT__entry(__string_from_user(name_user, name_user) __field(unsigned int, flags)), + TP_fast_assign(tp_copy_string_from_user(name_user, name_user) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_sched_setparam +SC_TRACE_EVENT(sys_sched_setparam, + TP_PROTO(pid_t pid, struct sched_param * param), + TP_ARGS(pid, param), + TP_STRUCT__entry(__field(pid_t, pid) __field_hex(struct sched_param *, param)), + TP_fast_assign(tp_assign(pid, pid) tp_assign(param, param)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_sched_getparam +SC_TRACE_EVENT(sys_sched_getparam, + TP_PROTO(pid_t pid, struct sched_param * param), + TP_ARGS(pid, param), + TP_STRUCT__entry(__field(pid_t, pid) __field_hex(struct sched_param *, param)), + TP_fast_assign(tp_assign(pid, pid) tp_assign(param, param)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_sched_rr_get_interval +SC_TRACE_EVENT(sys_sched_rr_get_interval, + TP_PROTO(pid_t pid, struct timespec * interval), + TP_ARGS(pid, interval), + TP_STRUCT__entry(__field(pid_t, pid) __field_hex(struct timespec *, interval)), + TP_fast_assign(tp_assign(pid, pid) tp_assign(interval, interval)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_nanosleep +SC_TRACE_EVENT(sys_nanosleep, + TP_PROTO(struct timespec * rqtp, struct timespec * rmtp), + TP_ARGS(rqtp, rmtp), + TP_STRUCT__entry(__field_hex(struct timespec *, rqtp) __field_hex(struct timespec *, rmtp)), + TP_fast_assign(tp_assign(rqtp, rqtp) tp_assign(rmtp, rmtp)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_rt_sigpending +SC_TRACE_EVENT(sys_rt_sigpending, + TP_PROTO(sigset_t * set, size_t sigsetsize), + TP_ARGS(set, sigsetsize), + TP_STRUCT__entry(__field_hex(sigset_t *, set) __field(size_t, sigsetsize)), + TP_fast_assign(tp_assign(set, set) tp_assign(sigsetsize, sigsetsize)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_rt_sigsuspend +SC_TRACE_EVENT(sys_rt_sigsuspend, + TP_PROTO(sigset_t * unewset, size_t sigsetsize), + TP_ARGS(unewset, sigsetsize), + TP_STRUCT__entry(__field_hex(sigset_t *, unewset) __field(size_t, sigsetsize)), + TP_fast_assign(tp_assign(unewset, unewset) tp_assign(sigsetsize, sigsetsize)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_getcwd +SC_TRACE_EVENT(sys_getcwd, + TP_PROTO(char * buf, unsigned long size), + TP_ARGS(buf, size), + TP_STRUCT__entry(__field_hex(char *, buf) __field(unsigned long, size)), + TP_fast_assign(tp_assign(buf, buf) tp_assign(size, size)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_getrlimit +SC_TRACE_EVENT(sys_getrlimit, + TP_PROTO(unsigned int resource, struct rlimit * rlim), + TP_ARGS(resource, rlim), + TP_STRUCT__entry(__field(unsigned int, resource) __field_hex(struct rlimit *, rlim)), + TP_fast_assign(tp_assign(resource, resource) tp_assign(rlim, rlim)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_stat64 +SC_TRACE_EVENT(sys_stat64, + TP_PROTO(const char * filename, struct stat64 * statbuf), + TP_ARGS(filename, statbuf), + TP_STRUCT__entry(__string_from_user(filename, filename) __field_hex(struct stat64 *, statbuf)), + TP_fast_assign(tp_copy_string_from_user(filename, filename) tp_assign(statbuf, statbuf)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_lstat64 +SC_TRACE_EVENT(sys_lstat64, + TP_PROTO(const char * filename, struct stat64 * statbuf), + TP_ARGS(filename, statbuf), + TP_STRUCT__entry(__string_from_user(filename, filename) __field_hex(struct stat64 *, statbuf)), + TP_fast_assign(tp_copy_string_from_user(filename, filename) tp_assign(statbuf, statbuf)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_fstat64 +SC_TRACE_EVENT(sys_fstat64, + TP_PROTO(unsigned long fd, struct stat64 * statbuf), + TP_ARGS(fd, statbuf), + TP_STRUCT__entry(__field(unsigned long, fd) __field_hex(struct stat64 *, statbuf)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(statbuf, statbuf)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_getgroups +SC_TRACE_EVENT(sys_getgroups, + TP_PROTO(int gidsetsize, gid_t * grouplist), + TP_ARGS(gidsetsize, grouplist), + TP_STRUCT__entry(__field(int, gidsetsize) __field_hex(gid_t *, grouplist)), + TP_fast_assign(tp_assign(gidsetsize, gidsetsize) tp_assign(grouplist, grouplist)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_setgroups +SC_TRACE_EVENT(sys_setgroups, + TP_PROTO(int gidsetsize, gid_t * grouplist), + TP_ARGS(gidsetsize, grouplist), + TP_STRUCT__entry(__field(int, gidsetsize) __field_hex(gid_t *, grouplist)), + TP_fast_assign(tp_assign(gidsetsize, gidsetsize) tp_assign(grouplist, grouplist)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_pivot_root +SC_TRACE_EVENT(sys_pivot_root, + TP_PROTO(const char * new_root, const char * put_old), + TP_ARGS(new_root, put_old), + TP_STRUCT__entry(__string_from_user(new_root, new_root) __string_from_user(put_old, put_old)), + TP_fast_assign(tp_copy_string_from_user(new_root, new_root) tp_copy_string_from_user(put_old, put_old)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_removexattr +SC_TRACE_EVENT(sys_removexattr, + TP_PROTO(const char * pathname, const char * name), + TP_ARGS(pathname, name), + TP_STRUCT__entry(__string_from_user(pathname, pathname) __string_from_user(name, name)), + TP_fast_assign(tp_copy_string_from_user(pathname, pathname) tp_copy_string_from_user(name, name)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_lremovexattr +SC_TRACE_EVENT(sys_lremovexattr, + TP_PROTO(const char * pathname, const char * name), + TP_ARGS(pathname, name), + TP_STRUCT__entry(__string_from_user(pathname, pathname) __string_from_user(name, name)), + TP_fast_assign(tp_copy_string_from_user(pathname, pathname) tp_copy_string_from_user(name, name)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_fremovexattr +SC_TRACE_EVENT(sys_fremovexattr, + TP_PROTO(int fd, const char * name), + TP_ARGS(fd, name), + TP_STRUCT__entry(__field(int, fd) __string_from_user(name, name)), + TP_fast_assign(tp_assign(fd, fd) tp_copy_string_from_user(name, name)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_io_setup +SC_TRACE_EVENT(sys_io_setup, + TP_PROTO(unsigned nr_events, aio_context_t * ctxp), + TP_ARGS(nr_events, ctxp), + TP_STRUCT__entry(__field(unsigned, nr_events) __field_hex(aio_context_t *, ctxp)), + TP_fast_assign(tp_assign(nr_events, nr_events) tp_assign(ctxp, ctxp)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_timer_gettime +SC_TRACE_EVENT(sys_timer_gettime, + TP_PROTO(timer_t timer_id, struct itimerspec * setting), + TP_ARGS(timer_id, setting), + TP_STRUCT__entry(__field(timer_t, timer_id) __field_hex(struct itimerspec *, setting)), + TP_fast_assign(tp_assign(timer_id, timer_id) tp_assign(setting, setting)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_clock_settime +SC_TRACE_EVENT(sys_clock_settime, + TP_PROTO(const clockid_t which_clock, const struct timespec * tp), + TP_ARGS(which_clock, tp), + TP_STRUCT__entry(__field(const clockid_t, which_clock) __field_hex(const struct timespec *, tp)), + TP_fast_assign(tp_assign(which_clock, which_clock) tp_assign(tp, tp)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_clock_gettime +SC_TRACE_EVENT(sys_clock_gettime, + TP_PROTO(const clockid_t which_clock, struct timespec * tp), + TP_ARGS(which_clock, tp), + TP_STRUCT__entry(__field(const clockid_t, which_clock) __field_hex(struct timespec *, tp)), + TP_fast_assign(tp_assign(which_clock, which_clock) tp_assign(tp, tp)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_clock_getres +SC_TRACE_EVENT(sys_clock_getres, + TP_PROTO(const clockid_t which_clock, struct timespec * tp), + TP_ARGS(which_clock, tp), + TP_STRUCT__entry(__field(const clockid_t, which_clock) __field_hex(struct timespec *, tp)), + TP_fast_assign(tp_assign(which_clock, which_clock) tp_assign(tp, tp)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_utimes +SC_TRACE_EVENT(sys_utimes, + TP_PROTO(char * filename, struct timeval * utimes), + TP_ARGS(filename, utimes), + TP_STRUCT__entry(__string_from_user(filename, filename) __field_hex(struct timeval *, utimes)), + TP_fast_assign(tp_copy_string_from_user(filename, filename) tp_assign(utimes, utimes)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_mq_notify +SC_TRACE_EVENT(sys_mq_notify, + TP_PROTO(mqd_t mqdes, const struct sigevent * u_notification), + TP_ARGS(mqdes, u_notification), + TP_STRUCT__entry(__field(mqd_t, mqdes) __field_hex(const struct sigevent *, u_notification)), + TP_fast_assign(tp_assign(mqdes, mqdes) tp_assign(u_notification, u_notification)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_set_robust_list +SC_TRACE_EVENT(sys_set_robust_list, + TP_PROTO(struct robust_list_head * head, size_t len), + TP_ARGS(head, len), + TP_STRUCT__entry(__field_hex(struct robust_list_head *, head) __field(size_t, len)), + TP_fast_assign(tp_assign(head, head) tp_assign(len, len)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_timerfd_gettime +SC_TRACE_EVENT(sys_timerfd_gettime, + TP_PROTO(int ufd, struct itimerspec * otmr), + TP_ARGS(ufd, otmr), + TP_STRUCT__entry(__field(int, ufd) __field_hex(struct itimerspec *, otmr)), + TP_fast_assign(tp_assign(ufd, ufd) tp_assign(otmr, otmr)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_pipe2 +SC_TRACE_EVENT(sys_pipe2, + TP_PROTO(int * fildes, int flags), + TP_ARGS(fildes, flags), + TP_STRUCT__entry(__field_hex(int *, fildes) __field(int, flags)), + TP_fast_assign(tp_assign(fildes, fildes) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_clock_adjtime +SC_TRACE_EVENT(sys_clock_adjtime, + TP_PROTO(const clockid_t which_clock, struct timex * utx), + TP_ARGS(which_clock, utx), + TP_STRUCT__entry(__field(const clockid_t, which_clock) __field_hex(struct timex *, utx)), + TP_fast_assign(tp_assign(which_clock, which_clock) tp_assign(utx, utx)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_read +SC_TRACE_EVENT(sys_read, + TP_PROTO(unsigned int fd, char * buf, size_t count), + TP_ARGS(fd, buf, count), + TP_STRUCT__entry(__field(unsigned int, fd) __field_hex(char *, buf) __field(size_t, count)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(buf, buf) tp_assign(count, count)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_write +SC_TRACE_EVENT(sys_write, + TP_PROTO(unsigned int fd, const char * buf, size_t count), + TP_ARGS(fd, buf, count), + TP_STRUCT__entry(__field(unsigned int, fd) __field_hex(const char *, buf) __field(size_t, count)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(buf, buf) tp_assign(count, count)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_open +SC_TRACE_EVENT(sys_open, + TP_PROTO(const char * filename, int flags, int mode), + TP_ARGS(filename, flags, mode), + TP_STRUCT__entry(__string_from_user(filename, filename) __field(int, flags) __field(int, mode)), + TP_fast_assign(tp_copy_string_from_user(filename, filename) tp_assign(flags, flags) tp_assign(mode, mode)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_waitpid +SC_TRACE_EVENT(sys_waitpid, + TP_PROTO(pid_t pid, int * stat_addr, int options), + TP_ARGS(pid, stat_addr, options), + TP_STRUCT__entry(__field(pid_t, pid) __field_hex(int *, stat_addr) __field(int, options)), + TP_fast_assign(tp_assign(pid, pid) tp_assign(stat_addr, stat_addr) tp_assign(options, options)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_mknod +SC_TRACE_EVENT(sys_mknod, + TP_PROTO(const char * filename, int mode, unsigned dev), + TP_ARGS(filename, mode, dev), + TP_STRUCT__entry(__string_from_user(filename, filename) __field(int, mode) __field(unsigned, dev)), + TP_fast_assign(tp_copy_string_from_user(filename, filename) tp_assign(mode, mode) tp_assign(dev, dev)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_lchown16 +SC_TRACE_EVENT(sys_lchown16, + TP_PROTO(const char * filename, old_uid_t user, old_gid_t group), + TP_ARGS(filename, user, group), + TP_STRUCT__entry(__string_from_user(filename, filename) __field(old_uid_t, user) __field(old_gid_t, group)), + TP_fast_assign(tp_copy_string_from_user(filename, filename) tp_assign(user, user) tp_assign(group, group)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_readlink +SC_TRACE_EVENT(sys_readlink, + TP_PROTO(const char * path, char * buf, int bufsiz), + TP_ARGS(path, buf, bufsiz), + TP_STRUCT__entry(__string_from_user(path, path) __field_hex(char *, buf) __field(int, bufsiz)), + TP_fast_assign(tp_copy_string_from_user(path, path) tp_assign(buf, buf) tp_assign(bufsiz, bufsiz)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_old_readdir +SC_TRACE_EVENT(sys_old_readdir, + TP_PROTO(unsigned int fd, struct old_linux_dirent * dirent, unsigned int count), + TP_ARGS(fd, dirent, count), + TP_STRUCT__entry(__field(unsigned int, fd) __field_hex(struct old_linux_dirent *, dirent) __field(unsigned int, count)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(dirent, dirent) tp_assign(count, count)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_syslog +SC_TRACE_EVENT(sys_syslog, + TP_PROTO(int type, char * buf, int len), + TP_ARGS(type, buf, len), + TP_STRUCT__entry(__field(int, type) __field_hex(char *, buf) __field(int, len)), + TP_fast_assign(tp_assign(type, type) tp_assign(buf, buf) tp_assign(len, len)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_setitimer +SC_TRACE_EVENT(sys_setitimer, + TP_PROTO(int which, struct itimerval * value, struct itimerval * ovalue), + TP_ARGS(which, value, ovalue), + TP_STRUCT__entry(__field(int, which) __field_hex(struct itimerval *, value) __field_hex(struct itimerval *, ovalue)), + TP_fast_assign(tp_assign(which, which) tp_assign(value, value) tp_assign(ovalue, ovalue)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_sigprocmask +SC_TRACE_EVENT(sys_sigprocmask, + TP_PROTO(int how, old_sigset_t * nset, old_sigset_t * oset), + TP_ARGS(how, nset, oset), + TP_STRUCT__entry(__field(int, how) __field_hex(old_sigset_t *, nset) __field_hex(old_sigset_t *, oset)), + TP_fast_assign(tp_assign(how, how) tp_assign(nset, nset) tp_assign(oset, oset)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_init_module +SC_TRACE_EVENT(sys_init_module, + TP_PROTO(void * umod, unsigned long len, const char * uargs), + TP_ARGS(umod, len, uargs), + TP_STRUCT__entry(__field_hex(void *, umod) __field(unsigned long, len) __field_hex(const char *, uargs)), + TP_fast_assign(tp_assign(umod, umod) tp_assign(len, len) tp_assign(uargs, uargs)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_getdents +SC_TRACE_EVENT(sys_getdents, + TP_PROTO(unsigned int fd, struct linux_dirent * dirent, unsigned int count), + TP_ARGS(fd, dirent, count), + TP_STRUCT__entry(__field(unsigned int, fd) __field_hex(struct linux_dirent *, dirent) __field(unsigned int, count)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(dirent, dirent) tp_assign(count, count)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_readv +SC_TRACE_EVENT(sys_readv, + TP_PROTO(unsigned long fd, const struct iovec * vec, unsigned long vlen), + TP_ARGS(fd, vec, vlen), + TP_STRUCT__entry(__field(unsigned long, fd) __field_hex(const struct iovec *, vec) __field(unsigned long, vlen)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(vec, vec) tp_assign(vlen, vlen)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_writev +SC_TRACE_EVENT(sys_writev, + TP_PROTO(unsigned long fd, const struct iovec * vec, unsigned long vlen), + TP_ARGS(fd, vec, vlen), + TP_STRUCT__entry(__field(unsigned long, fd) __field_hex(const struct iovec *, vec) __field(unsigned long, vlen)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(vec, vec) tp_assign(vlen, vlen)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_sched_setscheduler +SC_TRACE_EVENT(sys_sched_setscheduler, + TP_PROTO(pid_t pid, int policy, struct sched_param * param), + TP_ARGS(pid, policy, param), + TP_STRUCT__entry(__field(pid_t, pid) __field(int, policy) __field_hex(struct sched_param *, param)), + TP_fast_assign(tp_assign(pid, pid) tp_assign(policy, policy) tp_assign(param, param)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_getresuid16 +SC_TRACE_EVENT(sys_getresuid16, + TP_PROTO(old_uid_t * ruid, old_uid_t * euid, old_uid_t * suid), + TP_ARGS(ruid, euid, suid), + TP_STRUCT__entry(__field_hex(old_uid_t *, ruid) __field_hex(old_uid_t *, euid) __field_hex(old_uid_t *, suid)), + TP_fast_assign(tp_assign(ruid, ruid) tp_assign(euid, euid) tp_assign(suid, suid)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_poll +SC_TRACE_EVENT(sys_poll, + TP_PROTO(struct pollfd * ufds, unsigned int nfds, long timeout_msecs), + TP_ARGS(ufds, nfds, timeout_msecs), + TP_STRUCT__entry(__field_hex(struct pollfd *, ufds) __field(unsigned int, nfds) __field(long, timeout_msecs)), + TP_fast_assign(tp_assign(ufds, ufds) tp_assign(nfds, nfds) tp_assign(timeout_msecs, timeout_msecs)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_getresgid16 +SC_TRACE_EVENT(sys_getresgid16, + TP_PROTO(old_gid_t * rgid, old_gid_t * egid, old_gid_t * sgid), + TP_ARGS(rgid, egid, sgid), + TP_STRUCT__entry(__field_hex(old_gid_t *, rgid) __field_hex(old_gid_t *, egid) __field_hex(old_gid_t *, sgid)), + TP_fast_assign(tp_assign(rgid, rgid) tp_assign(egid, egid) tp_assign(sgid, sgid)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_rt_sigqueueinfo +SC_TRACE_EVENT(sys_rt_sigqueueinfo, + TP_PROTO(pid_t pid, int sig, siginfo_t * uinfo), + TP_ARGS(pid, sig, uinfo), + TP_STRUCT__entry(__field(pid_t, pid) __field(int, sig) __field_hex(siginfo_t *, uinfo)), + TP_fast_assign(tp_assign(pid, pid) tp_assign(sig, sig) tp_assign(uinfo, uinfo)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_chown16 +SC_TRACE_EVENT(sys_chown16, + TP_PROTO(const char * filename, old_uid_t user, old_gid_t group), + TP_ARGS(filename, user, group), + TP_STRUCT__entry(__string_from_user(filename, filename) __field(old_uid_t, user) __field(old_gid_t, group)), + TP_fast_assign(tp_copy_string_from_user(filename, filename) tp_assign(user, user) tp_assign(group, group)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_lchown +SC_TRACE_EVENT(sys_lchown, + TP_PROTO(const char * filename, uid_t user, gid_t group), + TP_ARGS(filename, user, group), + TP_STRUCT__entry(__string_from_user(filename, filename) __field(uid_t, user) __field(gid_t, group)), + TP_fast_assign(tp_copy_string_from_user(filename, filename) tp_assign(user, user) tp_assign(group, group)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_getresuid +SC_TRACE_EVENT(sys_getresuid, + TP_PROTO(uid_t * ruid, uid_t * euid, uid_t * suid), + TP_ARGS(ruid, euid, suid), + TP_STRUCT__entry(__field_hex(uid_t *, ruid) __field_hex(uid_t *, euid) __field_hex(uid_t *, suid)), + TP_fast_assign(tp_assign(ruid, ruid) tp_assign(euid, euid) tp_assign(suid, suid)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_getresgid +SC_TRACE_EVENT(sys_getresgid, + TP_PROTO(gid_t * rgid, gid_t * egid, gid_t * sgid), + TP_ARGS(rgid, egid, sgid), + TP_STRUCT__entry(__field_hex(gid_t *, rgid) __field_hex(gid_t *, egid) __field_hex(gid_t *, sgid)), + TP_fast_assign(tp_assign(rgid, rgid) tp_assign(egid, egid) tp_assign(sgid, sgid)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_chown +SC_TRACE_EVENT(sys_chown, + TP_PROTO(const char * filename, uid_t user, gid_t group), + TP_ARGS(filename, user, group), + TP_STRUCT__entry(__string_from_user(filename, filename) __field(uid_t, user) __field(gid_t, group)), + TP_fast_assign(tp_copy_string_from_user(filename, filename) tp_assign(user, user) tp_assign(group, group)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_mincore +SC_TRACE_EVENT(sys_mincore, + TP_PROTO(unsigned long start, size_t len, unsigned char * vec), + TP_ARGS(start, len, vec), + TP_STRUCT__entry(__field(unsigned long, start) __field(size_t, len) __field_hex(unsigned char *, vec)), + TP_fast_assign(tp_assign(start, start) tp_assign(len, len) tp_assign(vec, vec)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_getdents64 +SC_TRACE_EVENT(sys_getdents64, + TP_PROTO(unsigned int fd, struct linux_dirent64 * dirent, unsigned int count), + TP_ARGS(fd, dirent, count), + TP_STRUCT__entry(__field(unsigned int, fd) __field_hex(struct linux_dirent64 *, dirent) __field(unsigned int, count)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(dirent, dirent) tp_assign(count, count)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_listxattr +SC_TRACE_EVENT(sys_listxattr, + TP_PROTO(const char * pathname, char * list, size_t size), + TP_ARGS(pathname, list, size), + TP_STRUCT__entry(__string_from_user(pathname, pathname) __field_hex(char *, list) __field(size_t, size)), + TP_fast_assign(tp_copy_string_from_user(pathname, pathname) tp_assign(list, list) tp_assign(size, size)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_llistxattr +SC_TRACE_EVENT(sys_llistxattr, + TP_PROTO(const char * pathname, char * list, size_t size), + TP_ARGS(pathname, list, size), + TP_STRUCT__entry(__string_from_user(pathname, pathname) __field_hex(char *, list) __field(size_t, size)), + TP_fast_assign(tp_copy_string_from_user(pathname, pathname) tp_assign(list, list) tp_assign(size, size)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_flistxattr +SC_TRACE_EVENT(sys_flistxattr, + TP_PROTO(int fd, char * list, size_t size), + TP_ARGS(fd, list, size), + TP_STRUCT__entry(__field(int, fd) __field_hex(char *, list) __field(size_t, size)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(list, list) tp_assign(size, size)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_sched_setaffinity +SC_TRACE_EVENT(sys_sched_setaffinity, + TP_PROTO(pid_t pid, unsigned int len, unsigned long * user_mask_ptr), + TP_ARGS(pid, len, user_mask_ptr), + TP_STRUCT__entry(__field(pid_t, pid) __field(unsigned int, len) __field_hex(unsigned long *, user_mask_ptr)), + TP_fast_assign(tp_assign(pid, pid) tp_assign(len, len) tp_assign(user_mask_ptr, user_mask_ptr)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_sched_getaffinity +SC_TRACE_EVENT(sys_sched_getaffinity, + TP_PROTO(pid_t pid, unsigned int len, unsigned long * user_mask_ptr), + TP_ARGS(pid, len, user_mask_ptr), + TP_STRUCT__entry(__field(pid_t, pid) __field(unsigned int, len) __field_hex(unsigned long *, user_mask_ptr)), + TP_fast_assign(tp_assign(pid, pid) tp_assign(len, len) tp_assign(user_mask_ptr, user_mask_ptr)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_io_submit +SC_TRACE_EVENT(sys_io_submit, + TP_PROTO(aio_context_t ctx_id, long nr, struct iocb * * iocbpp), + TP_ARGS(ctx_id, nr, iocbpp), + TP_STRUCT__entry(__field(aio_context_t, ctx_id) __field(long, nr) __field_hex(struct iocb * *, iocbpp)), + TP_fast_assign(tp_assign(ctx_id, ctx_id) tp_assign(nr, nr) tp_assign(iocbpp, iocbpp)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_io_cancel +SC_TRACE_EVENT(sys_io_cancel, + TP_PROTO(aio_context_t ctx_id, struct iocb * iocb, struct io_event * result), + TP_ARGS(ctx_id, iocb, result), + TP_STRUCT__entry(__field(aio_context_t, ctx_id) __field_hex(struct iocb *, iocb) __field_hex(struct io_event *, result)), + TP_fast_assign(tp_assign(ctx_id, ctx_id) tp_assign(iocb, iocb) tp_assign(result, result)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_timer_create +SC_TRACE_EVENT(sys_timer_create, + TP_PROTO(const clockid_t which_clock, struct sigevent * timer_event_spec, timer_t * created_timer_id), + TP_ARGS(which_clock, timer_event_spec, created_timer_id), + TP_STRUCT__entry(__field(const clockid_t, which_clock) __field_hex(struct sigevent *, timer_event_spec) __field_hex(timer_t *, created_timer_id)), + TP_fast_assign(tp_assign(which_clock, which_clock) tp_assign(timer_event_spec, timer_event_spec) tp_assign(created_timer_id, created_timer_id)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_statfs64 +SC_TRACE_EVENT(sys_statfs64, + TP_PROTO(const char * pathname, size_t sz, struct statfs64 * buf), + TP_ARGS(pathname, sz, buf), + TP_STRUCT__entry(__string_from_user(pathname, pathname) __field(size_t, sz) __field_hex(struct statfs64 *, buf)), + TP_fast_assign(tp_copy_string_from_user(pathname, pathname) tp_assign(sz, sz) tp_assign(buf, buf)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_fstatfs64 +SC_TRACE_EVENT(sys_fstatfs64, + TP_PROTO(unsigned int fd, size_t sz, struct statfs64 * buf), + TP_ARGS(fd, sz, buf), + TP_STRUCT__entry(__field(unsigned int, fd) __field(size_t, sz) __field_hex(struct statfs64 *, buf)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(sz, sz) tp_assign(buf, buf)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_mq_getsetattr +SC_TRACE_EVENT(sys_mq_getsetattr, + TP_PROTO(mqd_t mqdes, const struct mq_attr * u_mqstat, struct mq_attr * u_omqstat), + TP_ARGS(mqdes, u_mqstat, u_omqstat), + TP_STRUCT__entry(__field(mqd_t, mqdes) __field_hex(const struct mq_attr *, u_mqstat) __field_hex(struct mq_attr *, u_omqstat)), + TP_fast_assign(tp_assign(mqdes, mqdes) tp_assign(u_mqstat, u_mqstat) tp_assign(u_omqstat, u_omqstat)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_inotify_add_watch +SC_TRACE_EVENT(sys_inotify_add_watch, + TP_PROTO(int fd, const char * pathname, u32 mask), + TP_ARGS(fd, pathname, mask), + TP_STRUCT__entry(__field(int, fd) __string_from_user(pathname, pathname) __field(u32, mask)), + TP_fast_assign(tp_assign(fd, fd) tp_copy_string_from_user(pathname, pathname) tp_assign(mask, mask)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_mkdirat +SC_TRACE_EVENT(sys_mkdirat, + TP_PROTO(int dfd, const char * pathname, int mode), + TP_ARGS(dfd, pathname, mode), + TP_STRUCT__entry(__field(int, dfd) __string_from_user(pathname, pathname) __field(int, mode)), + TP_fast_assign(tp_assign(dfd, dfd) tp_copy_string_from_user(pathname, pathname) tp_assign(mode, mode)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_futimesat +SC_TRACE_EVENT(sys_futimesat, + TP_PROTO(int dfd, const char * filename, struct timeval * utimes), + TP_ARGS(dfd, filename, utimes), + TP_STRUCT__entry(__field(int, dfd) __string_from_user(filename, filename) __field_hex(struct timeval *, utimes)), + TP_fast_assign(tp_assign(dfd, dfd) tp_copy_string_from_user(filename, filename) tp_assign(utimes, utimes)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_unlinkat +SC_TRACE_EVENT(sys_unlinkat, + TP_PROTO(int dfd, const char * pathname, int flag), + TP_ARGS(dfd, pathname, flag), + TP_STRUCT__entry(__field(int, dfd) __string_from_user(pathname, pathname) __field(int, flag)), + TP_fast_assign(tp_assign(dfd, dfd) tp_copy_string_from_user(pathname, pathname) tp_assign(flag, flag)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_symlinkat +SC_TRACE_EVENT(sys_symlinkat, + TP_PROTO(const char * oldname, int newdfd, const char * newname), + TP_ARGS(oldname, newdfd, newname), + TP_STRUCT__entry(__string_from_user(oldname, oldname) __field(int, newdfd) __string_from_user(newname, newname)), + TP_fast_assign(tp_copy_string_from_user(oldname, oldname) tp_assign(newdfd, newdfd) tp_copy_string_from_user(newname, newname)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_fchmodat +SC_TRACE_EVENT(sys_fchmodat, + TP_PROTO(int dfd, const char * filename, mode_t mode), + TP_ARGS(dfd, filename, mode), + TP_STRUCT__entry(__field(int, dfd) __string_from_user(filename, filename) __field(mode_t, mode)), + TP_fast_assign(tp_assign(dfd, dfd) tp_copy_string_from_user(filename, filename) tp_assign(mode, mode)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_faccessat +SC_TRACE_EVENT(sys_faccessat, + TP_PROTO(int dfd, const char * filename, int mode), + TP_ARGS(dfd, filename, mode), + TP_STRUCT__entry(__field(int, dfd) __string_from_user(filename, filename) __field(int, mode)), + TP_fast_assign(tp_assign(dfd, dfd) tp_copy_string_from_user(filename, filename) tp_assign(mode, mode)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_get_robust_list +SC_TRACE_EVENT(sys_get_robust_list, + TP_PROTO(int pid, struct robust_list_head * * head_ptr, size_t * len_ptr), + TP_ARGS(pid, head_ptr, len_ptr), + TP_STRUCT__entry(__field(int, pid) __field_hex(struct robust_list_head * *, head_ptr) __field_hex(size_t *, len_ptr)), + TP_fast_assign(tp_assign(pid, pid) tp_assign(head_ptr, head_ptr) tp_assign(len_ptr, len_ptr)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_getcpu +SC_TRACE_EVENT(sys_getcpu, + TP_PROTO(unsigned * cpup, unsigned * nodep, struct getcpu_cache * unused), + TP_ARGS(cpup, nodep, unused), + TP_STRUCT__entry(__field_hex(unsigned *, cpup) __field_hex(unsigned *, nodep) __field_hex(struct getcpu_cache *, unused)), + TP_fast_assign(tp_assign(cpup, cpup) tp_assign(nodep, nodep) tp_assign(unused, unused)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_signalfd +SC_TRACE_EVENT(sys_signalfd, + TP_PROTO(int ufd, sigset_t * user_mask, size_t sizemask), + TP_ARGS(ufd, user_mask, sizemask), + TP_STRUCT__entry(__field(int, ufd) __field_hex(sigset_t *, user_mask) __field(size_t, sizemask)), + TP_fast_assign(tp_assign(ufd, ufd) tp_assign(user_mask, user_mask) tp_assign(sizemask, sizemask)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_reboot +SC_TRACE_EVENT(sys_reboot, + TP_PROTO(int magic1, int magic2, unsigned int cmd, void * arg), + TP_ARGS(magic1, magic2, cmd, arg), + TP_STRUCT__entry(__field(int, magic1) __field(int, magic2) __field(unsigned int, cmd) __field_hex(void *, arg)), + TP_fast_assign(tp_assign(magic1, magic1) tp_assign(magic2, magic2) tp_assign(cmd, cmd) tp_assign(arg, arg)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_wait4 +SC_TRACE_EVENT(sys_wait4, + TP_PROTO(pid_t upid, int * stat_addr, int options, struct rusage * ru), + TP_ARGS(upid, stat_addr, options, ru), + TP_STRUCT__entry(__field(pid_t, upid) __field_hex(int *, stat_addr) __field(int, options) __field_hex(struct rusage *, ru)), + TP_fast_assign(tp_assign(upid, upid) tp_assign(stat_addr, stat_addr) tp_assign(options, options) tp_assign(ru, ru)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_quotactl +SC_TRACE_EVENT(sys_quotactl, + TP_PROTO(unsigned int cmd, const char * special, qid_t id, void * addr), + TP_ARGS(cmd, special, id, addr), + TP_STRUCT__entry(__field(unsigned int, cmd) __field_hex(const char *, special) __field(qid_t, id) __field_hex(void *, addr)), + TP_fast_assign(tp_assign(cmd, cmd) tp_assign(special, special) tp_assign(id, id) tp_assign(addr, addr)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_rt_sigaction +SC_TRACE_EVENT(sys_rt_sigaction, + TP_PROTO(int sig, const struct sigaction * act, struct sigaction * oact, size_t sigsetsize), + TP_ARGS(sig, act, oact, sigsetsize), + TP_STRUCT__entry(__field(int, sig) __field_hex(const struct sigaction *, act) __field_hex(struct sigaction *, oact) __field(size_t, sigsetsize)), + TP_fast_assign(tp_assign(sig, sig) tp_assign(act, act) tp_assign(oact, oact) tp_assign(sigsetsize, sigsetsize)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_rt_sigprocmask +SC_TRACE_EVENT(sys_rt_sigprocmask, + TP_PROTO(int how, sigset_t * nset, sigset_t * oset, size_t sigsetsize), + TP_ARGS(how, nset, oset, sigsetsize), + TP_STRUCT__entry(__field(int, how) __field_hex(sigset_t *, nset) __field_hex(sigset_t *, oset) __field(size_t, sigsetsize)), + TP_fast_assign(tp_assign(how, how) tp_assign(nset, nset) tp_assign(oset, oset) tp_assign(sigsetsize, sigsetsize)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_rt_sigtimedwait +SC_TRACE_EVENT(sys_rt_sigtimedwait, + TP_PROTO(const sigset_t * uthese, siginfo_t * uinfo, const struct timespec * uts, size_t sigsetsize), + TP_ARGS(uthese, uinfo, uts, sigsetsize), + TP_STRUCT__entry(__field_hex(const sigset_t *, uthese) __field_hex(siginfo_t *, uinfo) __field_hex(const struct timespec *, uts) __field(size_t, sigsetsize)), + TP_fast_assign(tp_assign(uthese, uthese) tp_assign(uinfo, uinfo) tp_assign(uts, uts) tp_assign(sigsetsize, sigsetsize)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_sendfile +SC_TRACE_EVENT(sys_sendfile, + TP_PROTO(int out_fd, int in_fd, off_t * offset, size_t count), + TP_ARGS(out_fd, in_fd, offset, count), + TP_STRUCT__entry(__field(int, out_fd) __field(int, in_fd) __field_hex(off_t *, offset) __field(size_t, count)), + TP_fast_assign(tp_assign(out_fd, out_fd) tp_assign(in_fd, in_fd) tp_assign(offset, offset) tp_assign(count, count)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_getxattr +SC_TRACE_EVENT(sys_getxattr, + TP_PROTO(const char * pathname, const char * name, void * value, size_t size), + TP_ARGS(pathname, name, value, size), + TP_STRUCT__entry(__string_from_user(pathname, pathname) __string_from_user(name, name) __field_hex(void *, value) __field(size_t, size)), + TP_fast_assign(tp_copy_string_from_user(pathname, pathname) tp_copy_string_from_user(name, name) tp_assign(value, value) tp_assign(size, size)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_lgetxattr +SC_TRACE_EVENT(sys_lgetxattr, + TP_PROTO(const char * pathname, const char * name, void * value, size_t size), + TP_ARGS(pathname, name, value, size), + TP_STRUCT__entry(__string_from_user(pathname, pathname) __string_from_user(name, name) __field_hex(void *, value) __field(size_t, size)), + TP_fast_assign(tp_copy_string_from_user(pathname, pathname) tp_copy_string_from_user(name, name) tp_assign(value, value) tp_assign(size, size)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_fgetxattr +SC_TRACE_EVENT(sys_fgetxattr, + TP_PROTO(int fd, const char * name, void * value, size_t size), + TP_ARGS(fd, name, value, size), + TP_STRUCT__entry(__field(int, fd) __string_from_user(name, name) __field_hex(void *, value) __field(size_t, size)), + TP_fast_assign(tp_assign(fd, fd) tp_copy_string_from_user(name, name) tp_assign(value, value) tp_assign(size, size)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_sendfile64 +SC_TRACE_EVENT(sys_sendfile64, + TP_PROTO(int out_fd, int in_fd, loff_t * offset, size_t count), + TP_ARGS(out_fd, in_fd, offset, count), + TP_STRUCT__entry(__field(int, out_fd) __field(int, in_fd) __field_hex(loff_t *, offset) __field(size_t, count)), + TP_fast_assign(tp_assign(out_fd, out_fd) tp_assign(in_fd, in_fd) tp_assign(offset, offset) tp_assign(count, count)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_epoll_ctl +SC_TRACE_EVENT(sys_epoll_ctl, + TP_PROTO(int epfd, int op, int fd, struct epoll_event * event), + TP_ARGS(epfd, op, fd, event), + TP_STRUCT__entry(__field(int, epfd) __field(int, op) __field(int, fd) __field_hex(struct epoll_event *, event)), + TP_fast_assign(tp_assign(epfd, epfd) tp_assign(op, op) tp_assign(fd, fd) tp_assign(event, event)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_epoll_wait +SC_TRACE_EVENT(sys_epoll_wait, + TP_PROTO(int epfd, struct epoll_event * events, int maxevents, int timeout), + TP_ARGS(epfd, events, maxevents, timeout), + TP_STRUCT__entry(__field(int, epfd) __field_hex(struct epoll_event *, events) __field(int, maxevents) __field(int, timeout)), + TP_fast_assign(tp_assign(epfd, epfd) tp_assign(events, events) tp_assign(maxevents, maxevents) tp_assign(timeout, timeout)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_timer_settime +SC_TRACE_EVENT(sys_timer_settime, + TP_PROTO(timer_t timer_id, int flags, const struct itimerspec * new_setting, struct itimerspec * old_setting), + TP_ARGS(timer_id, flags, new_setting, old_setting), + TP_STRUCT__entry(__field(timer_t, timer_id) __field(int, flags) __field_hex(const struct itimerspec *, new_setting) __field_hex(struct itimerspec *, old_setting)), + TP_fast_assign(tp_assign(timer_id, timer_id) tp_assign(flags, flags) tp_assign(new_setting, new_setting) tp_assign(old_setting, old_setting)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_clock_nanosleep +SC_TRACE_EVENT(sys_clock_nanosleep, + TP_PROTO(const clockid_t which_clock, int flags, const struct timespec * rqtp, struct timespec * rmtp), + TP_ARGS(which_clock, flags, rqtp, rmtp), + TP_STRUCT__entry(__field(const clockid_t, which_clock) __field(int, flags) __field_hex(const struct timespec *, rqtp) __field_hex(struct timespec *, rmtp)), + TP_fast_assign(tp_assign(which_clock, which_clock) tp_assign(flags, flags) tp_assign(rqtp, rqtp) tp_assign(rmtp, rmtp)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_mq_open +SC_TRACE_EVENT(sys_mq_open, + TP_PROTO(const char * u_name, int oflag, mode_t mode, struct mq_attr * u_attr), + TP_ARGS(u_name, oflag, mode, u_attr), + TP_STRUCT__entry(__string_from_user(u_name, u_name) __field(int, oflag) __field(mode_t, mode) __field_hex(struct mq_attr *, u_attr)), + TP_fast_assign(tp_copy_string_from_user(u_name, u_name) tp_assign(oflag, oflag) tp_assign(mode, mode) tp_assign(u_attr, u_attr)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_kexec_load +SC_TRACE_EVENT(sys_kexec_load, + TP_PROTO(unsigned long entry, unsigned long nr_segments, struct kexec_segment * segments, unsigned long flags), + TP_ARGS(entry, nr_segments, segments, flags), + TP_STRUCT__entry(__field(unsigned long, entry) __field(unsigned long, nr_segments) __field_hex(struct kexec_segment *, segments) __field(unsigned long, flags)), + TP_fast_assign(tp_assign(entry, entry) tp_assign(nr_segments, nr_segments) tp_assign(segments, segments) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_request_key +SC_TRACE_EVENT(sys_request_key, + TP_PROTO(const char * _type, const char * _description, const char * _callout_info, key_serial_t destringid), + TP_ARGS(_type, _description, _callout_info, destringid), + TP_STRUCT__entry(__string_from_user(_type, _type) __field_hex(const char *, _description) __field_hex(const char *, _callout_info) __field(key_serial_t, destringid)), + TP_fast_assign(tp_copy_string_from_user(_type, _type) tp_assign(_description, _description) tp_assign(_callout_info, _callout_info) tp_assign(destringid, destringid)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_openat +SC_TRACE_EVENT(sys_openat, + TP_PROTO(int dfd, const char * filename, int flags, int mode), + TP_ARGS(dfd, filename, flags, mode), + TP_STRUCT__entry(__field(int, dfd) __string_from_user(filename, filename) __field(int, flags) __field(int, mode)), + TP_fast_assign(tp_assign(dfd, dfd) tp_copy_string_from_user(filename, filename) tp_assign(flags, flags) tp_assign(mode, mode)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_mknodat +SC_TRACE_EVENT(sys_mknodat, + TP_PROTO(int dfd, const char * filename, int mode, unsigned dev), + TP_ARGS(dfd, filename, mode, dev), + TP_STRUCT__entry(__field(int, dfd) __string_from_user(filename, filename) __field(int, mode) __field(unsigned, dev)), + TP_fast_assign(tp_assign(dfd, dfd) tp_copy_string_from_user(filename, filename) tp_assign(mode, mode) tp_assign(dev, dev)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_fstatat64 +SC_TRACE_EVENT(sys_fstatat64, + TP_PROTO(int dfd, const char * filename, struct stat64 * statbuf, int flag), + TP_ARGS(dfd, filename, statbuf, flag), + TP_STRUCT__entry(__field(int, dfd) __string_from_user(filename, filename) __field_hex(struct stat64 *, statbuf) __field(int, flag)), + TP_fast_assign(tp_assign(dfd, dfd) tp_copy_string_from_user(filename, filename) tp_assign(statbuf, statbuf) tp_assign(flag, flag)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_renameat +SC_TRACE_EVENT(sys_renameat, + TP_PROTO(int olddfd, const char * oldname, int newdfd, const char * newname), + TP_ARGS(olddfd, oldname, newdfd, newname), + TP_STRUCT__entry(__field(int, olddfd) __string_from_user(oldname, oldname) __field(int, newdfd) __string_from_user(newname, newname)), + TP_fast_assign(tp_assign(olddfd, olddfd) tp_copy_string_from_user(oldname, oldname) tp_assign(newdfd, newdfd) tp_copy_string_from_user(newname, newname)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_readlinkat +SC_TRACE_EVENT(sys_readlinkat, + TP_PROTO(int dfd, const char * pathname, char * buf, int bufsiz), + TP_ARGS(dfd, pathname, buf, bufsiz), + TP_STRUCT__entry(__field(int, dfd) __string_from_user(pathname, pathname) __field_hex(char *, buf) __field(int, bufsiz)), + TP_fast_assign(tp_assign(dfd, dfd) tp_copy_string_from_user(pathname, pathname) tp_assign(buf, buf) tp_assign(bufsiz, bufsiz)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_vmsplice +SC_TRACE_EVENT(sys_vmsplice, + TP_PROTO(int fd, const struct iovec * iov, unsigned long nr_segs, unsigned int flags), + TP_ARGS(fd, iov, nr_segs, flags), + TP_STRUCT__entry(__field(int, fd) __field_hex(const struct iovec *, iov) __field(unsigned long, nr_segs) __field(unsigned int, flags)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(iov, iov) tp_assign(nr_segs, nr_segs) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_utimensat +SC_TRACE_EVENT(sys_utimensat, + TP_PROTO(int dfd, const char * filename, struct timespec * utimes, int flags), + TP_ARGS(dfd, filename, utimes, flags), + TP_STRUCT__entry(__field(int, dfd) __string_from_user(filename, filename) __field_hex(struct timespec *, utimes) __field(int, flags)), + TP_fast_assign(tp_assign(dfd, dfd) tp_copy_string_from_user(filename, filename) tp_assign(utimes, utimes) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_timerfd_settime +SC_TRACE_EVENT(sys_timerfd_settime, + TP_PROTO(int ufd, int flags, const struct itimerspec * utmr, struct itimerspec * otmr), + TP_ARGS(ufd, flags, utmr, otmr), + TP_STRUCT__entry(__field(int, ufd) __field(int, flags) __field_hex(const struct itimerspec *, utmr) __field_hex(struct itimerspec *, otmr)), + TP_fast_assign(tp_assign(ufd, ufd) tp_assign(flags, flags) tp_assign(utmr, utmr) tp_assign(otmr, otmr)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_signalfd4 +SC_TRACE_EVENT(sys_signalfd4, + TP_PROTO(int ufd, sigset_t * user_mask, size_t sizemask, int flags), + TP_ARGS(ufd, user_mask, sizemask, flags), + TP_STRUCT__entry(__field(int, ufd) __field_hex(sigset_t *, user_mask) __field(size_t, sizemask) __field(int, flags)), + TP_fast_assign(tp_assign(ufd, ufd) tp_assign(user_mask, user_mask) tp_assign(sizemask, sizemask) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_rt_tgsigqueueinfo +SC_TRACE_EVENT(sys_rt_tgsigqueueinfo, + TP_PROTO(pid_t tgid, pid_t pid, int sig, siginfo_t * uinfo), + TP_ARGS(tgid, pid, sig, uinfo), + TP_STRUCT__entry(__field(pid_t, tgid) __field(pid_t, pid) __field(int, sig) __field_hex(siginfo_t *, uinfo)), + TP_fast_assign(tp_assign(tgid, tgid) tp_assign(pid, pid) tp_assign(sig, sig) tp_assign(uinfo, uinfo)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_prlimit64 +SC_TRACE_EVENT(sys_prlimit64, + TP_PROTO(pid_t pid, unsigned int resource, const struct rlimit64 * new_rlim, struct rlimit64 * old_rlim), + TP_ARGS(pid, resource, new_rlim, old_rlim), + TP_STRUCT__entry(__field(pid_t, pid) __field(unsigned int, resource) __field_hex(const struct rlimit64 *, new_rlim) __field_hex(struct rlimit64 *, old_rlim)), + TP_fast_assign(tp_assign(pid, pid) tp_assign(resource, resource) tp_assign(new_rlim, new_rlim) tp_assign(old_rlim, old_rlim)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_sendmmsg +SC_TRACE_EVENT(sys_sendmmsg, + TP_PROTO(int fd, struct mmsghdr * mmsg, unsigned int vlen, unsigned int flags), + TP_ARGS(fd, mmsg, vlen, flags), + TP_STRUCT__entry(__field(int, fd) __field_hex(struct mmsghdr *, mmsg) __field(unsigned int, vlen) __field(unsigned int, flags)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(mmsg, mmsg) tp_assign(vlen, vlen) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_mount +SC_TRACE_EVENT(sys_mount, + TP_PROTO(char * dev_name, char * dir_name, char * type, unsigned long flags, void * data), + TP_ARGS(dev_name, dir_name, type, flags, data), + TP_STRUCT__entry(__string_from_user(dev_name, dev_name) __string_from_user(dir_name, dir_name) __string_from_user(type, type) __field(unsigned long, flags) __field_hex(void *, data)), + TP_fast_assign(tp_copy_string_from_user(dev_name, dev_name) tp_copy_string_from_user(dir_name, dir_name) tp_copy_string_from_user(type, type) tp_assign(flags, flags) tp_assign(data, data)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_llseek +SC_TRACE_EVENT(sys_llseek, + TP_PROTO(unsigned int fd, unsigned long offset_high, unsigned long offset_low, loff_t * result, unsigned int origin), + TP_ARGS(fd, offset_high, offset_low, result, origin), + TP_STRUCT__entry(__field(unsigned int, fd) __field(unsigned long, offset_high) __field(unsigned long, offset_low) __field_hex(loff_t *, result) __field(unsigned int, origin)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(offset_high, offset_high) tp_assign(offset_low, offset_low) tp_assign(result, result) tp_assign(origin, origin)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_select +SC_TRACE_EVENT(sys_select, + TP_PROTO(int n, fd_set * inp, fd_set * outp, fd_set * exp, struct timeval * tvp), + TP_ARGS(n, inp, outp, exp, tvp), + TP_STRUCT__entry(__field(int, n) __field_hex(fd_set *, inp) __field_hex(fd_set *, outp) __field_hex(fd_set *, exp) __field_hex(struct timeval *, tvp)), + TP_fast_assign(tp_assign(n, n) tp_assign(inp, inp) tp_assign(outp, outp) tp_assign(exp, exp) tp_assign(tvp, tvp)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_setxattr +SC_TRACE_EVENT(sys_setxattr, + TP_PROTO(const char * pathname, const char * name, const void * value, size_t size, int flags), + TP_ARGS(pathname, name, value, size, flags), + TP_STRUCT__entry(__string_from_user(pathname, pathname) __string_from_user(name, name) __field_hex(const void *, value) __field(size_t, size) __field(int, flags)), + TP_fast_assign(tp_copy_string_from_user(pathname, pathname) tp_copy_string_from_user(name, name) tp_assign(value, value) tp_assign(size, size) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_lsetxattr +SC_TRACE_EVENT(sys_lsetxattr, + TP_PROTO(const char * pathname, const char * name, const void * value, size_t size, int flags), + TP_ARGS(pathname, name, value, size, flags), + TP_STRUCT__entry(__string_from_user(pathname, pathname) __string_from_user(name, name) __field_hex(const void *, value) __field(size_t, size) __field(int, flags)), + TP_fast_assign(tp_copy_string_from_user(pathname, pathname) tp_copy_string_from_user(name, name) tp_assign(value, value) tp_assign(size, size) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_fsetxattr +SC_TRACE_EVENT(sys_fsetxattr, + TP_PROTO(int fd, const char * name, const void * value, size_t size, int flags), + TP_ARGS(fd, name, value, size, flags), + TP_STRUCT__entry(__field(int, fd) __string_from_user(name, name) __field_hex(const void *, value) __field(size_t, size) __field(int, flags)), + TP_fast_assign(tp_assign(fd, fd) tp_copy_string_from_user(name, name) tp_assign(value, value) tp_assign(size, size) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_io_getevents +SC_TRACE_EVENT(sys_io_getevents, + TP_PROTO(aio_context_t ctx_id, long min_nr, long nr, struct io_event * events, struct timespec * timeout), + TP_ARGS(ctx_id, min_nr, nr, events, timeout), + TP_STRUCT__entry(__field(aio_context_t, ctx_id) __field(long, min_nr) __field(long, nr) __field_hex(struct io_event *, events) __field_hex(struct timespec *, timeout)), + TP_fast_assign(tp_assign(ctx_id, ctx_id) tp_assign(min_nr, min_nr) tp_assign(nr, nr) tp_assign(events, events) tp_assign(timeout, timeout)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_mq_timedsend +SC_TRACE_EVENT(sys_mq_timedsend, + TP_PROTO(mqd_t mqdes, const char * u_msg_ptr, size_t msg_len, unsigned int msg_prio, const struct timespec * u_abs_timeout), + TP_ARGS(mqdes, u_msg_ptr, msg_len, msg_prio, u_abs_timeout), + TP_STRUCT__entry(__field(mqd_t, mqdes) __field_hex(const char *, u_msg_ptr) __field(size_t, msg_len) __field(unsigned int, msg_prio) __field_hex(const struct timespec *, u_abs_timeout)), + TP_fast_assign(tp_assign(mqdes, mqdes) tp_assign(u_msg_ptr, u_msg_ptr) tp_assign(msg_len, msg_len) tp_assign(msg_prio, msg_prio) tp_assign(u_abs_timeout, u_abs_timeout)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_mq_timedreceive +SC_TRACE_EVENT(sys_mq_timedreceive, + TP_PROTO(mqd_t mqdes, char * u_msg_ptr, size_t msg_len, unsigned int * u_msg_prio, const struct timespec * u_abs_timeout), + TP_ARGS(mqdes, u_msg_ptr, msg_len, u_msg_prio, u_abs_timeout), + TP_STRUCT__entry(__field(mqd_t, mqdes) __field_hex(char *, u_msg_ptr) __field(size_t, msg_len) __field_hex(unsigned int *, u_msg_prio) __field_hex(const struct timespec *, u_abs_timeout)), + TP_fast_assign(tp_assign(mqdes, mqdes) tp_assign(u_msg_ptr, u_msg_ptr) tp_assign(msg_len, msg_len) tp_assign(u_msg_prio, u_msg_prio) tp_assign(u_abs_timeout, u_abs_timeout)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_waitid +SC_TRACE_EVENT(sys_waitid, + TP_PROTO(int which, pid_t upid, struct siginfo * infop, int options, struct rusage * ru), + TP_ARGS(which, upid, infop, options, ru), + TP_STRUCT__entry(__field(int, which) __field(pid_t, upid) __field_hex(struct siginfo *, infop) __field(int, options) __field_hex(struct rusage *, ru)), + TP_fast_assign(tp_assign(which, which) tp_assign(upid, upid) tp_assign(infop, infop) tp_assign(options, options) tp_assign(ru, ru)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_add_key +SC_TRACE_EVENT(sys_add_key, + TP_PROTO(const char * _type, const char * _description, const void * _payload, size_t plen, key_serial_t ringid), + TP_ARGS(_type, _description, _payload, plen, ringid), + TP_STRUCT__entry(__string_from_user(_type, _type) __field_hex(const char *, _description) __field_hex(const void *, _payload) __field(size_t, plen) __field(key_serial_t, ringid)), + TP_fast_assign(tp_copy_string_from_user(_type, _type) tp_assign(_description, _description) tp_assign(_payload, _payload) tp_assign(plen, plen) tp_assign(ringid, ringid)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_fchownat +SC_TRACE_EVENT(sys_fchownat, + TP_PROTO(int dfd, const char * filename, uid_t user, gid_t group, int flag), + TP_ARGS(dfd, filename, user, group, flag), + TP_STRUCT__entry(__field(int, dfd) __string_from_user(filename, filename) __field(uid_t, user) __field(gid_t, group) __field(int, flag)), + TP_fast_assign(tp_assign(dfd, dfd) tp_copy_string_from_user(filename, filename) tp_assign(user, user) tp_assign(group, group) tp_assign(flag, flag)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_linkat +SC_TRACE_EVENT(sys_linkat, + TP_PROTO(int olddfd, const char * oldname, int newdfd, const char * newname, int flags), + TP_ARGS(olddfd, oldname, newdfd, newname, flags), + TP_STRUCT__entry(__field(int, olddfd) __string_from_user(oldname, oldname) __field(int, newdfd) __string_from_user(newname, newname) __field(int, flags)), + TP_fast_assign(tp_assign(olddfd, olddfd) tp_copy_string_from_user(oldname, oldname) tp_assign(newdfd, newdfd) tp_copy_string_from_user(newname, newname) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_ppoll +SC_TRACE_EVENT(sys_ppoll, + TP_PROTO(struct pollfd * ufds, unsigned int nfds, struct timespec * tsp, const sigset_t * sigmask, size_t sigsetsize), + TP_ARGS(ufds, nfds, tsp, sigmask, sigsetsize), + TP_STRUCT__entry(__field_hex(struct pollfd *, ufds) __field(unsigned int, nfds) __field_hex(struct timespec *, tsp) __field_hex(const sigset_t *, sigmask) __field(size_t, sigsetsize)), + TP_fast_assign(tp_assign(ufds, ufds) tp_assign(nfds, nfds) tp_assign(tsp, tsp) tp_assign(sigmask, sigmask) tp_assign(sigsetsize, sigsetsize)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_preadv +SC_TRACE_EVENT(sys_preadv, + TP_PROTO(unsigned long fd, const struct iovec * vec, unsigned long vlen, unsigned long pos_l, unsigned long pos_h), + TP_ARGS(fd, vec, vlen, pos_l, pos_h), + TP_STRUCT__entry(__field(unsigned long, fd) __field_hex(const struct iovec *, vec) __field(unsigned long, vlen) __field(unsigned long, pos_l) __field(unsigned long, pos_h)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(vec, vec) tp_assign(vlen, vlen) tp_assign(pos_l, pos_l) tp_assign(pos_h, pos_h)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_pwritev +SC_TRACE_EVENT(sys_pwritev, + TP_PROTO(unsigned long fd, const struct iovec * vec, unsigned long vlen, unsigned long pos_l, unsigned long pos_h), + TP_ARGS(fd, vec, vlen, pos_l, pos_h), + TP_STRUCT__entry(__field(unsigned long, fd) __field_hex(const struct iovec *, vec) __field(unsigned long, vlen) __field(unsigned long, pos_l) __field(unsigned long, pos_h)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(vec, vec) tp_assign(vlen, vlen) tp_assign(pos_l, pos_l) tp_assign(pos_h, pos_h)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_perf_event_open +SC_TRACE_EVENT(sys_perf_event_open, + TP_PROTO(struct perf_event_attr * attr_uptr, pid_t pid, int cpu, int group_fd, unsigned long flags), + TP_ARGS(attr_uptr, pid, cpu, group_fd, flags), + TP_STRUCT__entry(__field_hex(struct perf_event_attr *, attr_uptr) __field(pid_t, pid) __field(int, cpu) __field(int, group_fd) __field(unsigned long, flags)), + TP_fast_assign(tp_assign(attr_uptr, attr_uptr) tp_assign(pid, pid) tp_assign(cpu, cpu) tp_assign(group_fd, group_fd) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_recvmmsg +SC_TRACE_EVENT(sys_recvmmsg, + TP_PROTO(int fd, struct mmsghdr * mmsg, unsigned int vlen, unsigned int flags, struct timespec * timeout), + TP_ARGS(fd, mmsg, vlen, flags, timeout), + TP_STRUCT__entry(__field(int, fd) __field_hex(struct mmsghdr *, mmsg) __field(unsigned int, vlen) __field(unsigned int, flags) __field_hex(struct timespec *, timeout)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(mmsg, mmsg) tp_assign(vlen, vlen) tp_assign(flags, flags) tp_assign(timeout, timeout)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_ipc +SC_TRACE_EVENT(sys_ipc, + TP_PROTO(unsigned int call, int first, unsigned long second, unsigned long third, void * ptr, long fifth), + TP_ARGS(call, first, second, third, ptr, fifth), + TP_STRUCT__entry(__field(unsigned int, call) __field(int, first) __field(unsigned long, second) __field(unsigned long, third) __field_hex(void *, ptr) __field(long, fifth)), + TP_fast_assign(tp_assign(call, call) tp_assign(first, first) tp_assign(second, second) tp_assign(third, third) tp_assign(ptr, ptr) tp_assign(fifth, fifth)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_futex +SC_TRACE_EVENT(sys_futex, + TP_PROTO(u32 * uaddr, int op, u32 val, struct timespec * utime, u32 * uaddr2, u32 val3), + TP_ARGS(uaddr, op, val, utime, uaddr2, val3), + TP_STRUCT__entry(__field_hex(u32 *, uaddr) __field(int, op) __field(u32, val) __field_hex(struct timespec *, utime) __field_hex(u32 *, uaddr2) __field(u32, val3)), + TP_fast_assign(tp_assign(uaddr, uaddr) tp_assign(op, op) tp_assign(val, val) tp_assign(utime, utime) tp_assign(uaddr2, uaddr2) tp_assign(val3, val3)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_pselect6 +SC_TRACE_EVENT(sys_pselect6, + TP_PROTO(int n, fd_set * inp, fd_set * outp, fd_set * exp, struct timespec * tsp, void * sig), + TP_ARGS(n, inp, outp, exp, tsp, sig), + TP_STRUCT__entry(__field(int, n) __field_hex(fd_set *, inp) __field_hex(fd_set *, outp) __field_hex(fd_set *, exp) __field_hex(struct timespec *, tsp) __field_hex(void *, sig)), + TP_fast_assign(tp_assign(n, n) tp_assign(inp, inp) tp_assign(outp, outp) tp_assign(exp, exp) tp_assign(tsp, tsp) tp_assign(sig, sig)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_splice +SC_TRACE_EVENT(sys_splice, + TP_PROTO(int fd_in, loff_t * off_in, int fd_out, loff_t * off_out, size_t len, unsigned int flags), + TP_ARGS(fd_in, off_in, fd_out, off_out, len, flags), + TP_STRUCT__entry(__field(int, fd_in) __field_hex(loff_t *, off_in) __field(int, fd_out) __field_hex(loff_t *, off_out) __field(size_t, len) __field(unsigned int, flags)), + TP_fast_assign(tp_assign(fd_in, fd_in) tp_assign(off_in, off_in) tp_assign(fd_out, fd_out) tp_assign(off_out, off_out) tp_assign(len, len) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_epoll_pwait +SC_TRACE_EVENT(sys_epoll_pwait, + TP_PROTO(int epfd, struct epoll_event * events, int maxevents, int timeout, const sigset_t * sigmask, size_t sigsetsize), + TP_ARGS(epfd, events, maxevents, timeout, sigmask, sigsetsize), + TP_STRUCT__entry(__field(int, epfd) __field_hex(struct epoll_event *, events) __field(int, maxevents) __field(int, timeout) __field_hex(const sigset_t *, sigmask) __field(size_t, sigsetsize)), + TP_fast_assign(tp_assign(epfd, epfd) tp_assign(events, events) tp_assign(maxevents, maxevents) tp_assign(timeout, timeout) tp_assign(sigmask, sigmask) tp_assign(sigsetsize, sigsetsize)), + TP_printk() +) +#endif + +#endif /* _TRACE_SYSCALLS_POINTERS_H */ + +/* This part must be outside protection */ +#include "../../../probes/define_trace.h" + +#else /* CREATE_SYSCALL_TABLE */ + +#include "x86-32-syscalls-3.1.0-rc6_pointers_override.h" +#include "syscalls_pointers_override.h" + +#ifndef OVERRIDE_TABLE_32_sys_read +TRACE_SYSCALL_TABLE(sys_read, sys_read, 3, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_write +TRACE_SYSCALL_TABLE(sys_write, sys_write, 4, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_open +TRACE_SYSCALL_TABLE(sys_open, sys_open, 5, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_waitpid +TRACE_SYSCALL_TABLE(sys_waitpid, sys_waitpid, 7, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_creat +TRACE_SYSCALL_TABLE(sys_creat, sys_creat, 8, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_link +TRACE_SYSCALL_TABLE(sys_link, sys_link, 9, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_unlink +TRACE_SYSCALL_TABLE(sys_unlink, sys_unlink, 10, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_chdir +TRACE_SYSCALL_TABLE(sys_chdir, sys_chdir, 12, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_time +TRACE_SYSCALL_TABLE(sys_time, sys_time, 13, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_mknod +TRACE_SYSCALL_TABLE(sys_mknod, sys_mknod, 14, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_chmod +TRACE_SYSCALL_TABLE(sys_chmod, sys_chmod, 15, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_lchown16 +TRACE_SYSCALL_TABLE(sys_lchown16, sys_lchown16, 16, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_stat +TRACE_SYSCALL_TABLE(sys_stat, sys_stat, 18, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_mount +TRACE_SYSCALL_TABLE(sys_mount, sys_mount, 21, 5) +#endif +#ifndef OVERRIDE_TABLE_32_sys_oldumount +TRACE_SYSCALL_TABLE(sys_oldumount, sys_oldumount, 22, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_stime +TRACE_SYSCALL_TABLE(sys_stime, sys_stime, 25, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_fstat +TRACE_SYSCALL_TABLE(sys_fstat, sys_fstat, 28, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_utime +TRACE_SYSCALL_TABLE(sys_utime, sys_utime, 30, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_access +TRACE_SYSCALL_TABLE(sys_access, sys_access, 33, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_rename +TRACE_SYSCALL_TABLE(sys_rename, sys_rename, 38, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_mkdir +TRACE_SYSCALL_TABLE(sys_mkdir, sys_mkdir, 39, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_rmdir +TRACE_SYSCALL_TABLE(sys_rmdir, sys_rmdir, 40, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_pipe +TRACE_SYSCALL_TABLE(sys_pipe, sys_pipe, 42, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_times +TRACE_SYSCALL_TABLE(sys_times, sys_times, 43, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_acct +TRACE_SYSCALL_TABLE(sys_acct, sys_acct, 51, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_umount +TRACE_SYSCALL_TABLE(sys_umount, sys_umount, 52, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_olduname +TRACE_SYSCALL_TABLE(sys_olduname, sys_olduname, 59, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_chroot +TRACE_SYSCALL_TABLE(sys_chroot, sys_chroot, 61, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_ustat +TRACE_SYSCALL_TABLE(sys_ustat, sys_ustat, 62, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_sigpending +TRACE_SYSCALL_TABLE(sys_sigpending, sys_sigpending, 73, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_sethostname +TRACE_SYSCALL_TABLE(sys_sethostname, sys_sethostname, 74, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_setrlimit +TRACE_SYSCALL_TABLE(sys_setrlimit, sys_setrlimit, 75, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_old_getrlimit +TRACE_SYSCALL_TABLE(sys_old_getrlimit, sys_old_getrlimit, 76, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_getrusage +TRACE_SYSCALL_TABLE(sys_getrusage, sys_getrusage, 77, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_gettimeofday +TRACE_SYSCALL_TABLE(sys_gettimeofday, sys_gettimeofday, 78, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_settimeofday +TRACE_SYSCALL_TABLE(sys_settimeofday, sys_settimeofday, 79, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_getgroups16 +TRACE_SYSCALL_TABLE(sys_getgroups16, sys_getgroups16, 80, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_setgroups16 +TRACE_SYSCALL_TABLE(sys_setgroups16, sys_setgroups16, 81, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_old_select +TRACE_SYSCALL_TABLE(sys_old_select, sys_old_select, 82, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_symlink +TRACE_SYSCALL_TABLE(sys_symlink, sys_symlink, 83, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_lstat +TRACE_SYSCALL_TABLE(sys_lstat, sys_lstat, 84, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_readlink +TRACE_SYSCALL_TABLE(sys_readlink, sys_readlink, 85, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_uselib +TRACE_SYSCALL_TABLE(sys_uselib, sys_uselib, 86, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_swapon +TRACE_SYSCALL_TABLE(sys_swapon, sys_swapon, 87, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_reboot +TRACE_SYSCALL_TABLE(sys_reboot, sys_reboot, 88, 4) +#endif +#ifndef OVERRIDE_TABLE_32_sys_old_readdir +TRACE_SYSCALL_TABLE(sys_old_readdir, sys_old_readdir, 89, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_old_mmap +TRACE_SYSCALL_TABLE(sys_old_mmap, sys_old_mmap, 90, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_truncate +TRACE_SYSCALL_TABLE(sys_truncate, sys_truncate, 92, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_statfs +TRACE_SYSCALL_TABLE(sys_statfs, sys_statfs, 99, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_fstatfs +TRACE_SYSCALL_TABLE(sys_fstatfs, sys_fstatfs, 100, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_socketcall +TRACE_SYSCALL_TABLE(sys_socketcall, sys_socketcall, 102, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_syslog +TRACE_SYSCALL_TABLE(sys_syslog, sys_syslog, 103, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_setitimer +TRACE_SYSCALL_TABLE(sys_setitimer, sys_setitimer, 104, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_getitimer +TRACE_SYSCALL_TABLE(sys_getitimer, sys_getitimer, 105, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_newstat +TRACE_SYSCALL_TABLE(sys_newstat, sys_newstat, 106, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_newlstat +TRACE_SYSCALL_TABLE(sys_newlstat, sys_newlstat, 107, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_newfstat +TRACE_SYSCALL_TABLE(sys_newfstat, sys_newfstat, 108, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_uname +TRACE_SYSCALL_TABLE(sys_uname, sys_uname, 109, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_wait4 +TRACE_SYSCALL_TABLE(sys_wait4, sys_wait4, 114, 4) +#endif +#ifndef OVERRIDE_TABLE_32_sys_swapoff +TRACE_SYSCALL_TABLE(sys_swapoff, sys_swapoff, 115, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_sysinfo +TRACE_SYSCALL_TABLE(sys_sysinfo, sys_sysinfo, 116, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_ipc +TRACE_SYSCALL_TABLE(sys_ipc, sys_ipc, 117, 6) +#endif +#ifndef OVERRIDE_TABLE_32_sys_setdomainname +TRACE_SYSCALL_TABLE(sys_setdomainname, sys_setdomainname, 121, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_newuname +TRACE_SYSCALL_TABLE(sys_newuname, sys_newuname, 122, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_adjtimex +TRACE_SYSCALL_TABLE(sys_adjtimex, sys_adjtimex, 124, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_sigprocmask +TRACE_SYSCALL_TABLE(sys_sigprocmask, sys_sigprocmask, 126, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_init_module +TRACE_SYSCALL_TABLE(sys_init_module, sys_init_module, 128, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_delete_module +TRACE_SYSCALL_TABLE(sys_delete_module, sys_delete_module, 129, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_quotactl +TRACE_SYSCALL_TABLE(sys_quotactl, sys_quotactl, 131, 4) +#endif +#ifndef OVERRIDE_TABLE_32_sys_llseek +TRACE_SYSCALL_TABLE(sys_llseek, sys_llseek, 140, 5) +#endif +#ifndef OVERRIDE_TABLE_32_sys_getdents +TRACE_SYSCALL_TABLE(sys_getdents, sys_getdents, 141, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_select +TRACE_SYSCALL_TABLE(sys_select, sys_select, 142, 5) +#endif +#ifndef OVERRIDE_TABLE_32_sys_readv +TRACE_SYSCALL_TABLE(sys_readv, sys_readv, 145, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_writev +TRACE_SYSCALL_TABLE(sys_writev, sys_writev, 146, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_sysctl +TRACE_SYSCALL_TABLE(sys_sysctl, sys_sysctl, 149, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_sched_setparam +TRACE_SYSCALL_TABLE(sys_sched_setparam, sys_sched_setparam, 154, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_sched_getparam +TRACE_SYSCALL_TABLE(sys_sched_getparam, sys_sched_getparam, 155, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_sched_setscheduler +TRACE_SYSCALL_TABLE(sys_sched_setscheduler, sys_sched_setscheduler, 156, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_sched_rr_get_interval +TRACE_SYSCALL_TABLE(sys_sched_rr_get_interval, sys_sched_rr_get_interval, 161, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_nanosleep +TRACE_SYSCALL_TABLE(sys_nanosleep, sys_nanosleep, 162, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_getresuid16 +TRACE_SYSCALL_TABLE(sys_getresuid16, sys_getresuid16, 165, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_poll +TRACE_SYSCALL_TABLE(sys_poll, sys_poll, 168, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_getresgid16 +TRACE_SYSCALL_TABLE(sys_getresgid16, sys_getresgid16, 171, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_rt_sigaction +TRACE_SYSCALL_TABLE(sys_rt_sigaction, sys_rt_sigaction, 174, 4) +#endif +#ifndef OVERRIDE_TABLE_32_sys_rt_sigprocmask +TRACE_SYSCALL_TABLE(sys_rt_sigprocmask, sys_rt_sigprocmask, 175, 4) +#endif +#ifndef OVERRIDE_TABLE_32_sys_rt_sigpending +TRACE_SYSCALL_TABLE(sys_rt_sigpending, sys_rt_sigpending, 176, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_rt_sigtimedwait +TRACE_SYSCALL_TABLE(sys_rt_sigtimedwait, sys_rt_sigtimedwait, 177, 4) +#endif +#ifndef OVERRIDE_TABLE_32_sys_rt_sigqueueinfo +TRACE_SYSCALL_TABLE(sys_rt_sigqueueinfo, sys_rt_sigqueueinfo, 178, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_rt_sigsuspend +TRACE_SYSCALL_TABLE(sys_rt_sigsuspend, sys_rt_sigsuspend, 179, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_chown16 +TRACE_SYSCALL_TABLE(sys_chown16, sys_chown16, 182, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_getcwd +TRACE_SYSCALL_TABLE(sys_getcwd, sys_getcwd, 183, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_sendfile +TRACE_SYSCALL_TABLE(sys_sendfile, sys_sendfile, 187, 4) +#endif +#ifndef OVERRIDE_TABLE_32_sys_getrlimit +TRACE_SYSCALL_TABLE(sys_getrlimit, sys_getrlimit, 191, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_stat64 +TRACE_SYSCALL_TABLE(sys_stat64, sys_stat64, 195, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_lstat64 +TRACE_SYSCALL_TABLE(sys_lstat64, sys_lstat64, 196, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_fstat64 +TRACE_SYSCALL_TABLE(sys_fstat64, sys_fstat64, 197, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_lchown +TRACE_SYSCALL_TABLE(sys_lchown, sys_lchown, 198, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_getgroups +TRACE_SYSCALL_TABLE(sys_getgroups, sys_getgroups, 205, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_setgroups +TRACE_SYSCALL_TABLE(sys_setgroups, sys_setgroups, 206, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_getresuid +TRACE_SYSCALL_TABLE(sys_getresuid, sys_getresuid, 209, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_getresgid +TRACE_SYSCALL_TABLE(sys_getresgid, sys_getresgid, 211, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_chown +TRACE_SYSCALL_TABLE(sys_chown, sys_chown, 212, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_pivot_root +TRACE_SYSCALL_TABLE(sys_pivot_root, sys_pivot_root, 217, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_mincore +TRACE_SYSCALL_TABLE(sys_mincore, sys_mincore, 218, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_getdents64 +TRACE_SYSCALL_TABLE(sys_getdents64, sys_getdents64, 220, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_setxattr +TRACE_SYSCALL_TABLE(sys_setxattr, sys_setxattr, 226, 5) +#endif +#ifndef OVERRIDE_TABLE_32_sys_lsetxattr +TRACE_SYSCALL_TABLE(sys_lsetxattr, sys_lsetxattr, 227, 5) +#endif +#ifndef OVERRIDE_TABLE_32_sys_fsetxattr +TRACE_SYSCALL_TABLE(sys_fsetxattr, sys_fsetxattr, 228, 5) +#endif +#ifndef OVERRIDE_TABLE_32_sys_getxattr +TRACE_SYSCALL_TABLE(sys_getxattr, sys_getxattr, 229, 4) +#endif +#ifndef OVERRIDE_TABLE_32_sys_lgetxattr +TRACE_SYSCALL_TABLE(sys_lgetxattr, sys_lgetxattr, 230, 4) +#endif +#ifndef OVERRIDE_TABLE_32_sys_fgetxattr +TRACE_SYSCALL_TABLE(sys_fgetxattr, sys_fgetxattr, 231, 4) +#endif +#ifndef OVERRIDE_TABLE_32_sys_listxattr +TRACE_SYSCALL_TABLE(sys_listxattr, sys_listxattr, 232, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_llistxattr +TRACE_SYSCALL_TABLE(sys_llistxattr, sys_llistxattr, 233, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_flistxattr +TRACE_SYSCALL_TABLE(sys_flistxattr, sys_flistxattr, 234, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_removexattr +TRACE_SYSCALL_TABLE(sys_removexattr, sys_removexattr, 235, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_lremovexattr +TRACE_SYSCALL_TABLE(sys_lremovexattr, sys_lremovexattr, 236, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_fremovexattr +TRACE_SYSCALL_TABLE(sys_fremovexattr, sys_fremovexattr, 237, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_sendfile64 +TRACE_SYSCALL_TABLE(sys_sendfile64, sys_sendfile64, 239, 4) +#endif +#ifndef OVERRIDE_TABLE_32_sys_futex +TRACE_SYSCALL_TABLE(sys_futex, sys_futex, 240, 6) +#endif +#ifndef OVERRIDE_TABLE_32_sys_sched_setaffinity +TRACE_SYSCALL_TABLE(sys_sched_setaffinity, sys_sched_setaffinity, 241, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_sched_getaffinity +TRACE_SYSCALL_TABLE(sys_sched_getaffinity, sys_sched_getaffinity, 242, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_io_setup +TRACE_SYSCALL_TABLE(sys_io_setup, sys_io_setup, 245, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_io_getevents +TRACE_SYSCALL_TABLE(sys_io_getevents, sys_io_getevents, 247, 5) +#endif +#ifndef OVERRIDE_TABLE_32_sys_io_submit +TRACE_SYSCALL_TABLE(sys_io_submit, sys_io_submit, 248, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_io_cancel +TRACE_SYSCALL_TABLE(sys_io_cancel, sys_io_cancel, 249, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_epoll_ctl +TRACE_SYSCALL_TABLE(sys_epoll_ctl, sys_epoll_ctl, 255, 4) +#endif +#ifndef OVERRIDE_TABLE_32_sys_epoll_wait +TRACE_SYSCALL_TABLE(sys_epoll_wait, sys_epoll_wait, 256, 4) +#endif +#ifndef OVERRIDE_TABLE_32_sys_set_tid_address +TRACE_SYSCALL_TABLE(sys_set_tid_address, sys_set_tid_address, 258, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_timer_create +TRACE_SYSCALL_TABLE(sys_timer_create, sys_timer_create, 259, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_timer_settime +TRACE_SYSCALL_TABLE(sys_timer_settime, sys_timer_settime, 260, 4) +#endif +#ifndef OVERRIDE_TABLE_32_sys_timer_gettime +TRACE_SYSCALL_TABLE(sys_timer_gettime, sys_timer_gettime, 261, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_clock_settime +TRACE_SYSCALL_TABLE(sys_clock_settime, sys_clock_settime, 264, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_clock_gettime +TRACE_SYSCALL_TABLE(sys_clock_gettime, sys_clock_gettime, 265, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_clock_getres +TRACE_SYSCALL_TABLE(sys_clock_getres, sys_clock_getres, 266, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_clock_nanosleep +TRACE_SYSCALL_TABLE(sys_clock_nanosleep, sys_clock_nanosleep, 267, 4) +#endif +#ifndef OVERRIDE_TABLE_32_sys_statfs64 +TRACE_SYSCALL_TABLE(sys_statfs64, sys_statfs64, 268, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_fstatfs64 +TRACE_SYSCALL_TABLE(sys_fstatfs64, sys_fstatfs64, 269, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_utimes +TRACE_SYSCALL_TABLE(sys_utimes, sys_utimes, 271, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_mq_open +TRACE_SYSCALL_TABLE(sys_mq_open, sys_mq_open, 277, 4) +#endif +#ifndef OVERRIDE_TABLE_32_sys_mq_unlink +TRACE_SYSCALL_TABLE(sys_mq_unlink, sys_mq_unlink, 278, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_mq_timedsend +TRACE_SYSCALL_TABLE(sys_mq_timedsend, sys_mq_timedsend, 279, 5) +#endif +#ifndef OVERRIDE_TABLE_32_sys_mq_timedreceive +TRACE_SYSCALL_TABLE(sys_mq_timedreceive, sys_mq_timedreceive, 280, 5) +#endif +#ifndef OVERRIDE_TABLE_32_sys_mq_notify +TRACE_SYSCALL_TABLE(sys_mq_notify, sys_mq_notify, 281, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_mq_getsetattr +TRACE_SYSCALL_TABLE(sys_mq_getsetattr, sys_mq_getsetattr, 282, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_kexec_load +TRACE_SYSCALL_TABLE(sys_kexec_load, sys_kexec_load, 283, 4) +#endif +#ifndef OVERRIDE_TABLE_32_sys_waitid +TRACE_SYSCALL_TABLE(sys_waitid, sys_waitid, 284, 5) +#endif +#ifndef OVERRIDE_TABLE_32_sys_add_key +TRACE_SYSCALL_TABLE(sys_add_key, sys_add_key, 286, 5) +#endif +#ifndef OVERRIDE_TABLE_32_sys_request_key +TRACE_SYSCALL_TABLE(sys_request_key, sys_request_key, 287, 4) +#endif +#ifndef OVERRIDE_TABLE_32_sys_inotify_add_watch +TRACE_SYSCALL_TABLE(sys_inotify_add_watch, sys_inotify_add_watch, 292, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_openat +TRACE_SYSCALL_TABLE(sys_openat, sys_openat, 295, 4) +#endif +#ifndef OVERRIDE_TABLE_32_sys_mkdirat +TRACE_SYSCALL_TABLE(sys_mkdirat, sys_mkdirat, 296, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_mknodat +TRACE_SYSCALL_TABLE(sys_mknodat, sys_mknodat, 297, 4) +#endif +#ifndef OVERRIDE_TABLE_32_sys_fchownat +TRACE_SYSCALL_TABLE(sys_fchownat, sys_fchownat, 298, 5) +#endif +#ifndef OVERRIDE_TABLE_32_sys_futimesat +TRACE_SYSCALL_TABLE(sys_futimesat, sys_futimesat, 299, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_fstatat64 +TRACE_SYSCALL_TABLE(sys_fstatat64, sys_fstatat64, 300, 4) +#endif +#ifndef OVERRIDE_TABLE_32_sys_unlinkat +TRACE_SYSCALL_TABLE(sys_unlinkat, sys_unlinkat, 301, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_renameat +TRACE_SYSCALL_TABLE(sys_renameat, sys_renameat, 302, 4) +#endif +#ifndef OVERRIDE_TABLE_32_sys_linkat +TRACE_SYSCALL_TABLE(sys_linkat, sys_linkat, 303, 5) +#endif +#ifndef OVERRIDE_TABLE_32_sys_symlinkat +TRACE_SYSCALL_TABLE(sys_symlinkat, sys_symlinkat, 304, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_readlinkat +TRACE_SYSCALL_TABLE(sys_readlinkat, sys_readlinkat, 305, 4) +#endif +#ifndef OVERRIDE_TABLE_32_sys_fchmodat +TRACE_SYSCALL_TABLE(sys_fchmodat, sys_fchmodat, 306, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_faccessat +TRACE_SYSCALL_TABLE(sys_faccessat, sys_faccessat, 307, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_pselect6 +TRACE_SYSCALL_TABLE(sys_pselect6, sys_pselect6, 308, 6) +#endif +#ifndef OVERRIDE_TABLE_32_sys_ppoll +TRACE_SYSCALL_TABLE(sys_ppoll, sys_ppoll, 309, 5) +#endif +#ifndef OVERRIDE_TABLE_32_sys_set_robust_list +TRACE_SYSCALL_TABLE(sys_set_robust_list, sys_set_robust_list, 311, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_get_robust_list +TRACE_SYSCALL_TABLE(sys_get_robust_list, sys_get_robust_list, 312, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_splice +TRACE_SYSCALL_TABLE(sys_splice, sys_splice, 313, 6) +#endif +#ifndef OVERRIDE_TABLE_32_sys_vmsplice +TRACE_SYSCALL_TABLE(sys_vmsplice, sys_vmsplice, 316, 4) +#endif +#ifndef OVERRIDE_TABLE_32_sys_getcpu +TRACE_SYSCALL_TABLE(sys_getcpu, sys_getcpu, 318, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_epoll_pwait +TRACE_SYSCALL_TABLE(sys_epoll_pwait, sys_epoll_pwait, 319, 6) +#endif +#ifndef OVERRIDE_TABLE_32_sys_utimensat +TRACE_SYSCALL_TABLE(sys_utimensat, sys_utimensat, 320, 4) +#endif +#ifndef OVERRIDE_TABLE_32_sys_signalfd +TRACE_SYSCALL_TABLE(sys_signalfd, sys_signalfd, 321, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_timerfd_settime +TRACE_SYSCALL_TABLE(sys_timerfd_settime, sys_timerfd_settime, 325, 4) +#endif +#ifndef OVERRIDE_TABLE_32_sys_timerfd_gettime +TRACE_SYSCALL_TABLE(sys_timerfd_gettime, sys_timerfd_gettime, 326, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_signalfd4 +TRACE_SYSCALL_TABLE(sys_signalfd4, sys_signalfd4, 327, 4) +#endif +#ifndef OVERRIDE_TABLE_32_sys_pipe2 +TRACE_SYSCALL_TABLE(sys_pipe2, sys_pipe2, 331, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_preadv +TRACE_SYSCALL_TABLE(sys_preadv, sys_preadv, 333, 5) +#endif +#ifndef OVERRIDE_TABLE_32_sys_pwritev +TRACE_SYSCALL_TABLE(sys_pwritev, sys_pwritev, 334, 5) +#endif +#ifndef OVERRIDE_TABLE_32_sys_rt_tgsigqueueinfo +TRACE_SYSCALL_TABLE(sys_rt_tgsigqueueinfo, sys_rt_tgsigqueueinfo, 335, 4) +#endif +#ifndef OVERRIDE_TABLE_32_sys_perf_event_open +TRACE_SYSCALL_TABLE(sys_perf_event_open, sys_perf_event_open, 336, 5) +#endif +#ifndef OVERRIDE_TABLE_32_sys_recvmmsg +TRACE_SYSCALL_TABLE(sys_recvmmsg, sys_recvmmsg, 337, 5) +#endif +#ifndef OVERRIDE_TABLE_32_sys_prlimit64 +TRACE_SYSCALL_TABLE(sys_prlimit64, sys_prlimit64, 340, 4) +#endif +#ifndef OVERRIDE_TABLE_32_sys_clock_adjtime +TRACE_SYSCALL_TABLE(sys_clock_adjtime, sys_clock_adjtime, 343, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_sendmmsg +TRACE_SYSCALL_TABLE(sys_sendmmsg, sys_sendmmsg, 345, 4) +#endif + +#endif /* CREATE_SYSCALL_TABLE */ --- linux-3.11.0.orig/ubuntu/lttng-modules/instrumentation/syscalls/headers/syscalls_integers_override.h +++ linux-3.11.0/ubuntu/lttng-modules/instrumentation/syscalls/headers/syscalls_integers_override.h @@ -0,0 +1,14 @@ +#define OVERRIDE_32_sys_mmap +#define OVERRIDE_64_sys_mmap + +#ifndef CREATE_SYSCALL_TABLE + +SC_TRACE_EVENT(sys_mmap, + TP_PROTO(unsigned long addr, unsigned long len, unsigned long prot, unsigned long flags, unsigned long fd, unsigned long off), + TP_ARGS(addr, len, prot, flags, fd, off), + TP_STRUCT__entry(__field_hex(unsigned long, addr) __field(size_t, len) __field(int, prot) __field(int, flags) __field(int, fd) __field(off_t, offset)), + TP_fast_assign(tp_assign(addr, addr) tp_assign(len, len) tp_assign(prot, prot) tp_assign(flags, flags) tp_assign(fd, fd) tp_assign(offset, off)), + TP_printk() +) + +#endif /* CREATE_SYSCALL_TABLE */ --- linux-3.11.0.orig/ubuntu/lttng-modules/instrumentation/syscalls/headers/mips-64-syscalls-3.5.0_pointers.h +++ linux-3.11.0/ubuntu/lttng-modules/instrumentation/syscalls/headers/mips-64-syscalls-3.5.0_pointers.h @@ -0,0 +1,2232 @@ +/* THIS FILE IS AUTO-GENERATED. DO NOT EDIT */ +#ifndef CREATE_SYSCALL_TABLE + +#if !defined(_TRACE_SYSCALLS_POINTERS_H) || defined(TRACE_HEADER_MULTI_READ) +#define _TRACE_SYSCALLS_POINTERS_H + +#include +#include +#include "mips-64-syscalls-3.5.0_pointers_override.h" +#include "syscalls_pointers_override.h" + +#ifndef OVERRIDE_64_sys_oldumount +SC_TRACE_EVENT(sys_oldumount, + TP_PROTO(char * name), + TP_ARGS(name), + TP_STRUCT__entry(__string_from_user(name, name)), + TP_fast_assign(tp_copy_string_from_user(name, name)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_olduname +SC_TRACE_EVENT(sys_olduname, + TP_PROTO(struct oldold_utsname * name), + TP_ARGS(name), + TP_STRUCT__entry(__field_hex(struct oldold_utsname *, name)), + TP_fast_assign(tp_assign(name, name)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_uselib +SC_TRACE_EVENT(sys_uselib, + TP_PROTO(const char * library), + TP_ARGS(library), + TP_STRUCT__entry(__field_hex(const char *, library)), + TP_fast_assign(tp_assign(library, library)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_uname +SC_TRACE_EVENT(sys_uname, + TP_PROTO(struct old_utsname * name), + TP_ARGS(name), + TP_STRUCT__entry(__field_hex(struct old_utsname *, name)), + TP_fast_assign(tp_assign(name, name)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_sysinfo +SC_TRACE_EVENT(sys_sysinfo, + TP_PROTO(struct sysinfo * info), + TP_ARGS(info), + TP_STRUCT__entry(__field_hex(struct sysinfo *, info)), + TP_fast_assign(tp_assign(info, info)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_times +SC_TRACE_EVENT(sys_times, + TP_PROTO(struct tms * tbuf), + TP_ARGS(tbuf), + TP_STRUCT__entry(__field_hex(struct tms *, tbuf)), + TP_fast_assign(tp_assign(tbuf, tbuf)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_sysctl +SC_TRACE_EVENT(sys_sysctl, + TP_PROTO(struct __sysctl_args * args), + TP_ARGS(args), + TP_STRUCT__entry(__field_hex(struct __sysctl_args *, args)), + TP_fast_assign(tp_assign(args, args)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_adjtimex +SC_TRACE_EVENT(sys_adjtimex, + TP_PROTO(struct timex * txc_p), + TP_ARGS(txc_p), + TP_STRUCT__entry(__field_hex(struct timex *, txc_p)), + TP_fast_assign(tp_assign(txc_p, txc_p)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_newuname +SC_TRACE_EVENT(sys_newuname, + TP_PROTO(struct new_utsname * name), + TP_ARGS(name), + TP_STRUCT__entry(__field_hex(struct new_utsname *, name)), + TP_fast_assign(tp_assign(name, name)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_shmdt +SC_TRACE_EVENT(sys_shmdt, + TP_PROTO(char * shmaddr), + TP_ARGS(shmaddr), + TP_STRUCT__entry(__field_hex(char *, shmaddr)), + TP_fast_assign(tp_assign(shmaddr, shmaddr)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_chdir +SC_TRACE_EVENT(sys_chdir, + TP_PROTO(const char * filename), + TP_ARGS(filename), + TP_STRUCT__entry(__string_from_user(filename, filename)), + TP_fast_assign(tp_copy_string_from_user(filename, filename)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_rmdir +SC_TRACE_EVENT(sys_rmdir, + TP_PROTO(const char * pathname), + TP_ARGS(pathname), + TP_STRUCT__entry(__string_from_user(pathname, pathname)), + TP_fast_assign(tp_copy_string_from_user(pathname, pathname)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_unlink +SC_TRACE_EVENT(sys_unlink, + TP_PROTO(const char * pathname), + TP_ARGS(pathname), + TP_STRUCT__entry(__string_from_user(pathname, pathname)), + TP_fast_assign(tp_copy_string_from_user(pathname, pathname)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_chroot +SC_TRACE_EVENT(sys_chroot, + TP_PROTO(const char * filename), + TP_ARGS(filename), + TP_STRUCT__entry(__string_from_user(filename, filename)), + TP_fast_assign(tp_copy_string_from_user(filename, filename)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_swapoff +SC_TRACE_EVENT(sys_swapoff, + TP_PROTO(const char * specialfile), + TP_ARGS(specialfile), + TP_STRUCT__entry(__string_from_user(specialfile, specialfile)), + TP_fast_assign(tp_copy_string_from_user(specialfile, specialfile)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_set_tid_address +SC_TRACE_EVENT(sys_set_tid_address, + TP_PROTO(int * tidptr), + TP_ARGS(tidptr), + TP_STRUCT__entry(__field_hex(int *, tidptr)), + TP_fast_assign(tp_assign(tidptr, tidptr)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_nanosleep +SC_TRACE_EVENT(sys_nanosleep, + TP_PROTO(struct timespec * rqtp, struct timespec * rmtp), + TP_ARGS(rqtp, rmtp), + TP_STRUCT__entry(__field_hex(struct timespec *, rqtp) __field_hex(struct timespec *, rmtp)), + TP_fast_assign(tp_assign(rqtp, rqtp) tp_assign(rmtp, rmtp)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_getitimer +SC_TRACE_EVENT(sys_getitimer, + TP_PROTO(int which, struct itimerval * value), + TP_ARGS(which, value), + TP_STRUCT__entry(__field(int, which) __field_hex(struct itimerval *, value)), + TP_fast_assign(tp_assign(which, which) tp_assign(value, value)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_gettimeofday +SC_TRACE_EVENT(sys_gettimeofday, + TP_PROTO(struct timeval * tv, struct timezone * tz), + TP_ARGS(tv, tz), + TP_STRUCT__entry(__field_hex(struct timeval *, tv) __field_hex(struct timezone *, tz)), + TP_fast_assign(tp_assign(tv, tv) tp_assign(tz, tz)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_getrlimit +SC_TRACE_EVENT(sys_getrlimit, + TP_PROTO(unsigned int resource, struct rlimit * rlim), + TP_ARGS(resource, rlim), + TP_STRUCT__entry(__field(unsigned int, resource) __field_hex(struct rlimit *, rlim)), + TP_fast_assign(tp_assign(resource, resource) tp_assign(rlim, rlim)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_getrusage +SC_TRACE_EVENT(sys_getrusage, + TP_PROTO(int who, struct rusage * ru), + TP_ARGS(who, ru), + TP_STRUCT__entry(__field(int, who) __field_hex(struct rusage *, ru)), + TP_fast_assign(tp_assign(who, who) tp_assign(ru, ru)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_rt_sigpending +SC_TRACE_EVENT(sys_rt_sigpending, + TP_PROTO(sigset_t * set, size_t sigsetsize), + TP_ARGS(set, sigsetsize), + TP_STRUCT__entry(__field_hex(sigset_t *, set) __field(size_t, sigsetsize)), + TP_fast_assign(tp_assign(set, set) tp_assign(sigsetsize, sigsetsize)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_utime +SC_TRACE_EVENT(sys_utime, + TP_PROTO(char * filename, struct utimbuf * times), + TP_ARGS(filename, times), + TP_STRUCT__entry(__string_from_user(filename, filename) __field_hex(struct utimbuf *, times)), + TP_fast_assign(tp_copy_string_from_user(filename, filename) tp_assign(times, times)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_ustat +SC_TRACE_EVENT(sys_ustat, + TP_PROTO(unsigned dev, struct ustat * ubuf), + TP_ARGS(dev, ubuf), + TP_STRUCT__entry(__field(unsigned, dev) __field_hex(struct ustat *, ubuf)), + TP_fast_assign(tp_assign(dev, dev) tp_assign(ubuf, ubuf)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_statfs +SC_TRACE_EVENT(sys_statfs, + TP_PROTO(const char * pathname, struct statfs * buf), + TP_ARGS(pathname, buf), + TP_STRUCT__entry(__string_from_user(pathname, pathname) __field_hex(struct statfs *, buf)), + TP_fast_assign(tp_copy_string_from_user(pathname, pathname) tp_assign(buf, buf)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_fstatfs +SC_TRACE_EVENT(sys_fstatfs, + TP_PROTO(unsigned int fd, struct statfs * buf), + TP_ARGS(fd, buf), + TP_STRUCT__entry(__field(unsigned int, fd) __field_hex(struct statfs *, buf)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(buf, buf)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_sched_rr_get_interval +SC_TRACE_EVENT(sys_sched_rr_get_interval, + TP_PROTO(pid_t pid, struct timespec * interval), + TP_ARGS(pid, interval), + TP_STRUCT__entry(__field(pid_t, pid) __field_hex(struct timespec *, interval)), + TP_fast_assign(tp_assign(pid, pid) tp_assign(interval, interval)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_setrlimit +SC_TRACE_EVENT(sys_setrlimit, + TP_PROTO(unsigned int resource, struct rlimit * rlim), + TP_ARGS(resource, rlim), + TP_STRUCT__entry(__field(unsigned int, resource) __field_hex(struct rlimit *, rlim)), + TP_fast_assign(tp_assign(resource, resource) tp_assign(rlim, rlim)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_settimeofday +SC_TRACE_EVENT(sys_settimeofday, + TP_PROTO(struct timeval * tv, struct timezone * tz), + TP_ARGS(tv, tz), + TP_STRUCT__entry(__field_hex(struct timeval *, tv) __field_hex(struct timezone *, tz)), + TP_fast_assign(tp_assign(tv, tv) tp_assign(tz, tz)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_io_setup +SC_TRACE_EVENT(sys_io_setup, + TP_PROTO(unsigned nr_events, aio_context_t * ctxp), + TP_ARGS(nr_events, ctxp), + TP_STRUCT__entry(__field(unsigned, nr_events) __field_hex(aio_context_t *, ctxp)), + TP_fast_assign(tp_assign(nr_events, nr_events) tp_assign(ctxp, ctxp)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_timer_gettime +SC_TRACE_EVENT(sys_timer_gettime, + TP_PROTO(timer_t timer_id, struct itimerspec * setting), + TP_ARGS(timer_id, setting), + TP_STRUCT__entry(__field(timer_t, timer_id) __field_hex(struct itimerspec *, setting)), + TP_fast_assign(tp_assign(timer_id, timer_id) tp_assign(setting, setting)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_clock_settime +SC_TRACE_EVENT(sys_clock_settime, + TP_PROTO(const clockid_t which_clock, const struct timespec * tp), + TP_ARGS(which_clock, tp), + TP_STRUCT__entry(__field(const clockid_t, which_clock) __field_hex(const struct timespec *, tp)), + TP_fast_assign(tp_assign(which_clock, which_clock) tp_assign(tp, tp)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_clock_gettime +SC_TRACE_EVENT(sys_clock_gettime, + TP_PROTO(const clockid_t which_clock, struct timespec * tp), + TP_ARGS(which_clock, tp), + TP_STRUCT__entry(__field(const clockid_t, which_clock) __field_hex(struct timespec *, tp)), + TP_fast_assign(tp_assign(which_clock, which_clock) tp_assign(tp, tp)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_clock_getres +SC_TRACE_EVENT(sys_clock_getres, + TP_PROTO(const clockid_t which_clock, struct timespec * tp), + TP_ARGS(which_clock, tp), + TP_STRUCT__entry(__field(const clockid_t, which_clock) __field_hex(struct timespec *, tp)), + TP_fast_assign(tp_assign(which_clock, which_clock) tp_assign(tp, tp)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_utimes +SC_TRACE_EVENT(sys_utimes, + TP_PROTO(char * filename, struct timeval * utimes), + TP_ARGS(filename, utimes), + TP_STRUCT__entry(__string_from_user(filename, filename) __field_hex(struct timeval *, utimes)), + TP_fast_assign(tp_copy_string_from_user(filename, filename) tp_assign(utimes, utimes)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_set_robust_list +SC_TRACE_EVENT(sys_set_robust_list, + TP_PROTO(struct robust_list_head * head, size_t len), + TP_ARGS(head, len), + TP_STRUCT__entry(__field_hex(struct robust_list_head *, head) __field(size_t, len)), + TP_fast_assign(tp_assign(head, head) tp_assign(len, len)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_timerfd_gettime +SC_TRACE_EVENT(sys_timerfd_gettime, + TP_PROTO(int ufd, struct itimerspec * otmr), + TP_ARGS(ufd, otmr), + TP_STRUCT__entry(__field(int, ufd) __field_hex(struct itimerspec *, otmr)), + TP_fast_assign(tp_assign(ufd, ufd) tp_assign(otmr, otmr)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_clock_adjtime +SC_TRACE_EVENT(sys_clock_adjtime, + TP_PROTO(const clockid_t which_clock, struct timex * utx), + TP_ARGS(which_clock, utx), + TP_STRUCT__entry(__field(const clockid_t, which_clock) __field_hex(struct timex *, utx)), + TP_fast_assign(tp_assign(which_clock, which_clock) tp_assign(utx, utx)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_newstat +SC_TRACE_EVENT(sys_newstat, + TP_PROTO(const char * filename, struct stat * statbuf), + TP_ARGS(filename, statbuf), + TP_STRUCT__entry(__string_from_user(filename, filename) __field_hex(struct stat *, statbuf)), + TP_fast_assign(tp_copy_string_from_user(filename, filename) tp_assign(statbuf, statbuf)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_newfstat +SC_TRACE_EVENT(sys_newfstat, + TP_PROTO(unsigned int fd, struct stat * statbuf), + TP_ARGS(fd, statbuf), + TP_STRUCT__entry(__field(unsigned int, fd) __field_hex(struct stat *, statbuf)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(statbuf, statbuf)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_newlstat +SC_TRACE_EVENT(sys_newlstat, + TP_PROTO(const char * filename, struct stat * statbuf), + TP_ARGS(filename, statbuf), + TP_STRUCT__entry(__string_from_user(filename, filename) __field_hex(struct stat *, statbuf)), + TP_fast_assign(tp_copy_string_from_user(filename, filename) tp_assign(statbuf, statbuf)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_access +SC_TRACE_EVENT(sys_access, + TP_PROTO(const char * filename, int mode), + TP_ARGS(filename, mode), + TP_STRUCT__entry(__string_from_user(filename, filename) __field(int, mode)), + TP_fast_assign(tp_copy_string_from_user(filename, filename) tp_assign(mode, mode)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_truncate +SC_TRACE_EVENT(sys_truncate, + TP_PROTO(const char * path, long length), + TP_ARGS(path, length), + TP_STRUCT__entry(__string_from_user(path, path) __field(long, length)), + TP_fast_assign(tp_copy_string_from_user(path, path) tp_assign(length, length)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_getcwd +SC_TRACE_EVENT(sys_getcwd, + TP_PROTO(char * buf, unsigned long size), + TP_ARGS(buf, size), + TP_STRUCT__entry(__field_hex(char *, buf) __field(unsigned long, size)), + TP_fast_assign(tp_assign(buf, buf) tp_assign(size, size)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_rename +SC_TRACE_EVENT(sys_rename, + TP_PROTO(const char * oldname, const char * newname), + TP_ARGS(oldname, newname), + TP_STRUCT__entry(__string_from_user(oldname, oldname) __string_from_user(newname, newname)), + TP_fast_assign(tp_copy_string_from_user(oldname, oldname) tp_copy_string_from_user(newname, newname)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_mkdir +SC_TRACE_EVENT(sys_mkdir, + TP_PROTO(const char * pathname, umode_t mode), + TP_ARGS(pathname, mode), + TP_STRUCT__entry(__string_from_user(pathname, pathname) __field(umode_t, mode)), + TP_fast_assign(tp_copy_string_from_user(pathname, pathname) tp_assign(mode, mode)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_creat +SC_TRACE_EVENT(sys_creat, + TP_PROTO(const char * pathname, umode_t mode), + TP_ARGS(pathname, mode), + TP_STRUCT__entry(__string_from_user(pathname, pathname) __field(umode_t, mode)), + TP_fast_assign(tp_copy_string_from_user(pathname, pathname) tp_assign(mode, mode)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_link +SC_TRACE_EVENT(sys_link, + TP_PROTO(const char * oldname, const char * newname), + TP_ARGS(oldname, newname), + TP_STRUCT__entry(__string_from_user(oldname, oldname) __string_from_user(newname, newname)), + TP_fast_assign(tp_copy_string_from_user(oldname, oldname) tp_copy_string_from_user(newname, newname)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_symlink +SC_TRACE_EVENT(sys_symlink, + TP_PROTO(const char * oldname, const char * newname), + TP_ARGS(oldname, newname), + TP_STRUCT__entry(__string_from_user(oldname, oldname) __string_from_user(newname, newname)), + TP_fast_assign(tp_copy_string_from_user(oldname, oldname) tp_copy_string_from_user(newname, newname)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_chmod +SC_TRACE_EVENT(sys_chmod, + TP_PROTO(const char * filename, umode_t mode), + TP_ARGS(filename, mode), + TP_STRUCT__entry(__string_from_user(filename, filename) __field(umode_t, mode)), + TP_fast_assign(tp_copy_string_from_user(filename, filename) tp_assign(mode, mode)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_getgroups +SC_TRACE_EVENT(sys_getgroups, + TP_PROTO(int gidsetsize, gid_t * grouplist), + TP_ARGS(gidsetsize, grouplist), + TP_STRUCT__entry(__field(int, gidsetsize) __field_hex(gid_t *, grouplist)), + TP_fast_assign(tp_assign(gidsetsize, gidsetsize) tp_assign(grouplist, grouplist)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_setgroups +SC_TRACE_EVENT(sys_setgroups, + TP_PROTO(int gidsetsize, gid_t * grouplist), + TP_ARGS(gidsetsize, grouplist), + TP_STRUCT__entry(__field(int, gidsetsize) __field_hex(gid_t *, grouplist)), + TP_fast_assign(tp_assign(gidsetsize, gidsetsize) tp_assign(grouplist, grouplist)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_32_rt_sigpending +SC_TRACE_EVENT(sys_32_rt_sigpending, + TP_PROTO(compat_sigset_t * uset, unsigned int sigsetsize), + TP_ARGS(uset, sigsetsize), + TP_STRUCT__entry(__field_hex(compat_sigset_t *, uset) __field(unsigned int, sigsetsize)), + TP_fast_assign(tp_assign(uset, uset) tp_assign(sigsetsize, sigsetsize)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_sched_setparam +SC_TRACE_EVENT(sys_sched_setparam, + TP_PROTO(pid_t pid, struct sched_param * param), + TP_ARGS(pid, param), + TP_STRUCT__entry(__field(pid_t, pid) __field_hex(struct sched_param *, param)), + TP_fast_assign(tp_assign(pid, pid) tp_assign(param, param)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_sched_getparam +SC_TRACE_EVENT(sys_sched_getparam, + TP_PROTO(pid_t pid, struct sched_param * param), + TP_ARGS(pid, param), + TP_STRUCT__entry(__field(pid_t, pid) __field_hex(struct sched_param *, param)), + TP_fast_assign(tp_assign(pid, pid) tp_assign(param, param)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_32_sched_rr_get_interval +SC_TRACE_EVENT(sys_32_sched_rr_get_interval, + TP_PROTO(compat_pid_t pid, struct compat_timespec * interval), + TP_ARGS(pid, interval), + TP_STRUCT__entry(__field(compat_pid_t, pid) __field_hex(struct compat_timespec *, interval)), + TP_fast_assign(tp_assign(pid, pid) tp_assign(interval, interval)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_pivot_root +SC_TRACE_EVENT(sys_pivot_root, + TP_PROTO(const char * new_root, const char * put_old), + TP_ARGS(new_root, put_old), + TP_STRUCT__entry(__string_from_user(new_root, new_root) __string_from_user(put_old, put_old)), + TP_fast_assign(tp_copy_string_from_user(new_root, new_root) tp_copy_string_from_user(put_old, put_old)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_umount +SC_TRACE_EVENT(sys_umount, + TP_PROTO(char * name, int flags), + TP_ARGS(name, flags), + TP_STRUCT__entry(__string_from_user(name, name) __field(int, flags)), + TP_fast_assign(tp_copy_string_from_user(name, name) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_swapon +SC_TRACE_EVENT(sys_swapon, + TP_PROTO(const char * specialfile, int swap_flags), + TP_ARGS(specialfile, swap_flags), + TP_STRUCT__entry(__string_from_user(specialfile, specialfile) __field(int, swap_flags)), + TP_fast_assign(tp_copy_string_from_user(specialfile, specialfile) tp_assign(swap_flags, swap_flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_sethostname +SC_TRACE_EVENT(sys_sethostname, + TP_PROTO(char * name, int len), + TP_ARGS(name, len), + TP_STRUCT__entry(__string_from_user(name, name) __field(int, len)), + TP_fast_assign(tp_copy_string_from_user(name, name) tp_assign(len, len)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_setdomainname +SC_TRACE_EVENT(sys_setdomainname, + TP_PROTO(char * name, int len), + TP_ARGS(name, len), + TP_STRUCT__entry(__string_from_user(name, name) __field(int, len)), + TP_fast_assign(tp_copy_string_from_user(name, name) tp_assign(len, len)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_delete_module +SC_TRACE_EVENT(sys_delete_module, + TP_PROTO(const char * name_user, unsigned int flags), + TP_ARGS(name_user, flags), + TP_STRUCT__entry(__string_from_user(name_user, name_user) __field(unsigned int, flags)), + TP_fast_assign(tp_copy_string_from_user(name_user, name_user) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_removexattr +SC_TRACE_EVENT(sys_removexattr, + TP_PROTO(const char * pathname, const char * name), + TP_ARGS(pathname, name), + TP_STRUCT__entry(__string_from_user(pathname, pathname) __string_from_user(name, name)), + TP_fast_assign(tp_copy_string_from_user(pathname, pathname) tp_copy_string_from_user(name, name)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_lremovexattr +SC_TRACE_EVENT(sys_lremovexattr, + TP_PROTO(const char * pathname, const char * name), + TP_ARGS(pathname, name), + TP_STRUCT__entry(__string_from_user(pathname, pathname) __string_from_user(name, name)), + TP_fast_assign(tp_copy_string_from_user(pathname, pathname) tp_copy_string_from_user(name, name)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_fremovexattr +SC_TRACE_EVENT(sys_fremovexattr, + TP_PROTO(int fd, const char * name), + TP_ARGS(fd, name), + TP_STRUCT__entry(__field(int, fd) __string_from_user(name, name)), + TP_fast_assign(tp_assign(fd, fd) tp_copy_string_from_user(name, name)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_pipe2 +SC_TRACE_EVENT(sys_pipe2, + TP_PROTO(int * fildes, int flags), + TP_ARGS(fildes, flags), + TP_STRUCT__entry(__field_hex(int *, fildes) __field(int, flags)), + TP_fast_assign(tp_assign(fildes, fildes) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_waitpid +SC_TRACE_EVENT(sys_waitpid, + TP_PROTO(pid_t pid, int * stat_addr, int options), + TP_ARGS(pid, stat_addr, options), + TP_STRUCT__entry(__field(pid_t, pid) __field_hex(int *, stat_addr) __field(int, options)), + TP_fast_assign(tp_assign(pid, pid) tp_assign(stat_addr, stat_addr) tp_assign(options, options)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_32_sigaction +SC_TRACE_EVENT(sys_32_sigaction, + TP_PROTO(long sig, const struct sigaction32 * act, struct sigaction32 * oact), + TP_ARGS(sig, act, oact), + TP_STRUCT__entry(__field(long, sig) __field_hex(const struct sigaction32 *, act) __field_hex(struct sigaction32 *, oact)), + TP_fast_assign(tp_assign(sig, sig) tp_assign(act, act) tp_assign(oact, oact)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_readv +SC_TRACE_EVENT(sys_readv, + TP_PROTO(unsigned long fd, const struct iovec * vec, unsigned long vlen), + TP_ARGS(fd, vec, vlen), + TP_STRUCT__entry(__field(unsigned long, fd) __field_hex(const struct iovec *, vec) __field(unsigned long, vlen)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(vec, vec) tp_assign(vlen, vlen)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_writev +SC_TRACE_EVENT(sys_writev, + TP_PROTO(unsigned long fd, const struct iovec * vec, unsigned long vlen), + TP_ARGS(fd, vec, vlen), + TP_STRUCT__entry(__field(unsigned long, fd) __field_hex(const struct iovec *, vec) __field(unsigned long, vlen)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(vec, vec) tp_assign(vlen, vlen)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_shmctl +SC_TRACE_EVENT(sys_shmctl, + TP_PROTO(int shmid, int cmd, struct shmid_ds * buf), + TP_ARGS(shmid, cmd, buf), + TP_STRUCT__entry(__field(int, shmid) __field(int, cmd) __field_hex(struct shmid_ds *, buf)), + TP_fast_assign(tp_assign(shmid, shmid) tp_assign(cmd, cmd) tp_assign(buf, buf)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_setitimer +SC_TRACE_EVENT(sys_setitimer, + TP_PROTO(int which, struct itimerval * value, struct itimerval * ovalue), + TP_ARGS(which, value, ovalue), + TP_STRUCT__entry(__field(int, which) __field_hex(struct itimerval *, value) __field_hex(struct itimerval *, ovalue)), + TP_fast_assign(tp_assign(which, which) tp_assign(value, value) tp_assign(ovalue, ovalue)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_sendmsg +SC_TRACE_EVENT(sys_sendmsg, + TP_PROTO(int fd, struct msghdr * msg, unsigned int flags), + TP_ARGS(fd, msg, flags), + TP_STRUCT__entry(__field(int, fd) __field_hex(struct msghdr *, msg) __field(unsigned int, flags)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(msg, msg) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_recvmsg +SC_TRACE_EVENT(sys_recvmsg, + TP_PROTO(int fd, struct msghdr * msg, unsigned int flags), + TP_ARGS(fd, msg, flags), + TP_STRUCT__entry(__field(int, fd) __field_hex(struct msghdr *, msg) __field(unsigned int, flags)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(msg, msg) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_msgctl +SC_TRACE_EVENT(sys_msgctl, + TP_PROTO(int msqid, int cmd, struct msqid_ds * buf), + TP_ARGS(msqid, cmd, buf), + TP_STRUCT__entry(__field(int, msqid) __field(int, cmd) __field_hex(struct msqid_ds *, buf)), + TP_fast_assign(tp_assign(msqid, msqid) tp_assign(cmd, cmd) tp_assign(buf, buf)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_getdents +SC_TRACE_EVENT(sys_getdents, + TP_PROTO(unsigned int fd, struct linux_dirent * dirent, unsigned int count), + TP_ARGS(fd, dirent, count), + TP_STRUCT__entry(__field(unsigned int, fd) __field_hex(struct linux_dirent *, dirent) __field(unsigned int, count)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(dirent, dirent) tp_assign(count, count)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_rt_sigqueueinfo +SC_TRACE_EVENT(sys_rt_sigqueueinfo, + TP_PROTO(pid_t pid, int sig, siginfo_t * uinfo), + TP_ARGS(pid, sig, uinfo), + TP_STRUCT__entry(__field(pid_t, pid) __field(int, sig) __field_hex(siginfo_t *, uinfo)), + TP_fast_assign(tp_assign(pid, pid) tp_assign(sig, sig) tp_assign(uinfo, uinfo)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_sched_setaffinity +SC_TRACE_EVENT(sys_sched_setaffinity, + TP_PROTO(pid_t pid, unsigned int len, unsigned long * user_mask_ptr), + TP_ARGS(pid, len, user_mask_ptr), + TP_STRUCT__entry(__field(pid_t, pid) __field(unsigned int, len) __field_hex(unsigned long *, user_mask_ptr)), + TP_fast_assign(tp_assign(pid, pid) tp_assign(len, len) tp_assign(user_mask_ptr, user_mask_ptr)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_sched_getaffinity +SC_TRACE_EVENT(sys_sched_getaffinity, + TP_PROTO(pid_t pid, unsigned int len, unsigned long * user_mask_ptr), + TP_ARGS(pid, len, user_mask_ptr), + TP_STRUCT__entry(__field(pid_t, pid) __field(unsigned int, len) __field_hex(unsigned long *, user_mask_ptr)), + TP_fast_assign(tp_assign(pid, pid) tp_assign(len, len) tp_assign(user_mask_ptr, user_mask_ptr)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_io_submit +SC_TRACE_EVENT(sys_io_submit, + TP_PROTO(aio_context_t ctx_id, long nr, struct iocb * * iocbpp), + TP_ARGS(ctx_id, nr, iocbpp), + TP_STRUCT__entry(__field(aio_context_t, ctx_id) __field(long, nr) __field_hex(struct iocb * *, iocbpp)), + TP_fast_assign(tp_assign(ctx_id, ctx_id) tp_assign(nr, nr) tp_assign(iocbpp, iocbpp)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_timer_create +SC_TRACE_EVENT(sys_timer_create, + TP_PROTO(const clockid_t which_clock, struct sigevent * timer_event_spec, timer_t * created_timer_id), + TP_ARGS(which_clock, timer_event_spec, created_timer_id), + TP_STRUCT__entry(__field(const clockid_t, which_clock) __field_hex(struct sigevent *, timer_event_spec) __field_hex(timer_t *, created_timer_id)), + TP_fast_assign(tp_assign(which_clock, which_clock) tp_assign(timer_event_spec, timer_event_spec) tp_assign(created_timer_id, created_timer_id)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_futimesat +SC_TRACE_EVENT(sys_futimesat, + TP_PROTO(int dfd, const char * filename, struct timeval * utimes), + TP_ARGS(dfd, filename, utimes), + TP_STRUCT__entry(__field(int, dfd) __string_from_user(filename, filename) __field_hex(struct timeval *, utimes)), + TP_fast_assign(tp_assign(dfd, dfd) tp_copy_string_from_user(filename, filename) tp_assign(utimes, utimes)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_get_robust_list +SC_TRACE_EVENT(sys_get_robust_list, + TP_PROTO(int pid, struct robust_list_head * * head_ptr, size_t * len_ptr), + TP_ARGS(pid, head_ptr, len_ptr), + TP_STRUCT__entry(__field(int, pid) __field_hex(struct robust_list_head * *, head_ptr) __field_hex(size_t *, len_ptr)), + TP_fast_assign(tp_assign(pid, pid) tp_assign(head_ptr, head_ptr) tp_assign(len_ptr, len_ptr)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_signalfd +SC_TRACE_EVENT(sys_signalfd, + TP_PROTO(int ufd, sigset_t * user_mask, size_t sizemask), + TP_ARGS(ufd, user_mask, sizemask), + TP_STRUCT__entry(__field(int, ufd) __field_hex(sigset_t *, user_mask) __field(size_t, sizemask)), + TP_fast_assign(tp_assign(ufd, ufd) tp_assign(user_mask, user_mask) tp_assign(sizemask, sizemask)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_read +SC_TRACE_EVENT(sys_read, + TP_PROTO(unsigned int fd, char * buf, size_t count), + TP_ARGS(fd, buf, count), + TP_STRUCT__entry(__field(unsigned int, fd) __field_hex(char *, buf) __field(size_t, count)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(buf, buf) tp_assign(count, count)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_write +SC_TRACE_EVENT(sys_write, + TP_PROTO(unsigned int fd, const char * buf, size_t count), + TP_ARGS(fd, buf, count), + TP_STRUCT__entry(__field(unsigned int, fd) __field_hex(const char *, buf) __field(size_t, count)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(buf, buf) tp_assign(count, count)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_open +SC_TRACE_EVENT(sys_open, + TP_PROTO(const char * filename, int flags, umode_t mode), + TP_ARGS(filename, flags, mode), + TP_STRUCT__entry(__string_from_user(filename, filename) __field(int, flags) __field(umode_t, mode)), + TP_fast_assign(tp_copy_string_from_user(filename, filename) tp_assign(flags, flags) tp_assign(mode, mode)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_poll +SC_TRACE_EVENT(sys_poll, + TP_PROTO(struct pollfd * ufds, unsigned int nfds, int timeout_msecs), + TP_ARGS(ufds, nfds, timeout_msecs), + TP_STRUCT__entry(__field_hex(struct pollfd *, ufds) __field(unsigned int, nfds) __field(int, timeout_msecs)), + TP_fast_assign(tp_assign(ufds, ufds) tp_assign(nfds, nfds) tp_assign(timeout_msecs, timeout_msecs)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_mincore +SC_TRACE_EVENT(sys_mincore, + TP_PROTO(unsigned long start, size_t len, unsigned char * vec), + TP_ARGS(start, len, vec), + TP_STRUCT__entry(__field(unsigned long, start) __field(size_t, len) __field_hex(unsigned char *, vec)), + TP_fast_assign(tp_assign(start, start) tp_assign(len, len) tp_assign(vec, vec)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_shmat +SC_TRACE_EVENT(sys_shmat, + TP_PROTO(int shmid, char * shmaddr, int shmflg), + TP_ARGS(shmid, shmaddr, shmflg), + TP_STRUCT__entry(__field(int, shmid) __field_hex(char *, shmaddr) __field(int, shmflg)), + TP_fast_assign(tp_assign(shmid, shmid) tp_assign(shmaddr, shmaddr) tp_assign(shmflg, shmflg)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_connect +SC_TRACE_EVENT(sys_connect, + TP_PROTO(int fd, struct sockaddr * uservaddr, int addrlen), + TP_ARGS(fd, uservaddr, addrlen), + TP_STRUCT__entry(__field(int, fd) __field_hex(struct sockaddr *, uservaddr) __field_hex(int, addrlen)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(uservaddr, uservaddr) tp_assign(addrlen, addrlen)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_accept +SC_TRACE_EVENT(sys_accept, + TP_PROTO(int fd, struct sockaddr * upeer_sockaddr, int * upeer_addrlen), + TP_ARGS(fd, upeer_sockaddr, upeer_addrlen), + TP_STRUCT__entry(__field(int, fd) __field_hex(struct sockaddr *, upeer_sockaddr) __field_hex(int *, upeer_addrlen)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(upeer_sockaddr, upeer_sockaddr) tp_assign(upeer_addrlen, upeer_addrlen)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_bind +SC_TRACE_EVENT(sys_bind, + TP_PROTO(int fd, struct sockaddr * umyaddr, int addrlen), + TP_ARGS(fd, umyaddr, addrlen), + TP_STRUCT__entry(__field(int, fd) __field_hex(struct sockaddr *, umyaddr) __field_hex(int, addrlen)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(umyaddr, umyaddr) tp_assign(addrlen, addrlen)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_getsockname +SC_TRACE_EVENT(sys_getsockname, + TP_PROTO(int fd, struct sockaddr * usockaddr, int * usockaddr_len), + TP_ARGS(fd, usockaddr, usockaddr_len), + TP_STRUCT__entry(__field(int, fd) __field_hex(struct sockaddr *, usockaddr) __field_hex(int *, usockaddr_len)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(usockaddr, usockaddr) tp_assign(usockaddr_len, usockaddr_len)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_getpeername +SC_TRACE_EVENT(sys_getpeername, + TP_PROTO(int fd, struct sockaddr * usockaddr, int * usockaddr_len), + TP_ARGS(fd, usockaddr, usockaddr_len), + TP_STRUCT__entry(__field(int, fd) __field_hex(struct sockaddr *, usockaddr) __field_hex(int *, usockaddr_len)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(usockaddr, usockaddr) tp_assign(usockaddr_len, usockaddr_len)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_semop +SC_TRACE_EVENT(sys_semop, + TP_PROTO(int semid, struct sembuf * tsops, unsigned nsops), + TP_ARGS(semid, tsops, nsops), + TP_STRUCT__entry(__field(int, semid) __field_hex(struct sembuf *, tsops) __field(unsigned, nsops)), + TP_fast_assign(tp_assign(semid, semid) tp_assign(tsops, tsops) tp_assign(nsops, nsops)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_readlink +SC_TRACE_EVENT(sys_readlink, + TP_PROTO(const char * path, char * buf, int bufsiz), + TP_ARGS(path, buf, bufsiz), + TP_STRUCT__entry(__string_from_user(path, path) __field_hex(char *, buf) __field(int, bufsiz)), + TP_fast_assign(tp_copy_string_from_user(path, path) tp_assign(buf, buf) tp_assign(bufsiz, bufsiz)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_chown +SC_TRACE_EVENT(sys_chown, + TP_PROTO(const char * filename, uid_t user, gid_t group), + TP_ARGS(filename, user, group), + TP_STRUCT__entry(__string_from_user(filename, filename) __field(uid_t, user) __field(gid_t, group)), + TP_fast_assign(tp_copy_string_from_user(filename, filename) tp_assign(user, user) tp_assign(group, group)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_lchown +SC_TRACE_EVENT(sys_lchown, + TP_PROTO(const char * filename, uid_t user, gid_t group), + TP_ARGS(filename, user, group), + TP_STRUCT__entry(__string_from_user(filename, filename) __field(uid_t, user) __field(gid_t, group)), + TP_fast_assign(tp_copy_string_from_user(filename, filename) tp_assign(user, user) tp_assign(group, group)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_syslog +SC_TRACE_EVENT(sys_syslog, + TP_PROTO(int type, char * buf, int len), + TP_ARGS(type, buf, len), + TP_STRUCT__entry(__field(int, type) __field_hex(char *, buf) __field(int, len)), + TP_fast_assign(tp_assign(type, type) tp_assign(buf, buf) tp_assign(len, len)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_getresuid +SC_TRACE_EVENT(sys_getresuid, + TP_PROTO(uid_t * ruidp, uid_t * euidp, uid_t * suidp), + TP_ARGS(ruidp, euidp, suidp), + TP_STRUCT__entry(__field_hex(uid_t *, ruidp) __field_hex(uid_t *, euidp) __field_hex(uid_t *, suidp)), + TP_fast_assign(tp_assign(ruidp, ruidp) tp_assign(euidp, euidp) tp_assign(suidp, suidp)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_getresgid +SC_TRACE_EVENT(sys_getresgid, + TP_PROTO(gid_t * rgidp, gid_t * egidp, gid_t * sgidp), + TP_ARGS(rgidp, egidp, sgidp), + TP_STRUCT__entry(__field_hex(gid_t *, rgidp) __field_hex(gid_t *, egidp) __field_hex(gid_t *, sgidp)), + TP_fast_assign(tp_assign(rgidp, rgidp) tp_assign(egidp, egidp) tp_assign(sgidp, sgidp)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_32_rt_sigqueueinfo +SC_TRACE_EVENT(sys_32_rt_sigqueueinfo, + TP_PROTO(int pid, int sig, compat_siginfo_t * uinfo), + TP_ARGS(pid, sig, uinfo), + TP_STRUCT__entry(__field(int, pid) __field(int, sig) __field_hex(compat_siginfo_t *, uinfo)), + TP_fast_assign(tp_assign(pid, pid) tp_assign(sig, sig) tp_assign(uinfo, uinfo)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_mknod +SC_TRACE_EVENT(sys_mknod, + TP_PROTO(const char * filename, umode_t mode, unsigned dev), + TP_ARGS(filename, mode, dev), + TP_STRUCT__entry(__string_from_user(filename, filename) __field(umode_t, mode) __field(unsigned, dev)), + TP_fast_assign(tp_copy_string_from_user(filename, filename) tp_assign(mode, mode) tp_assign(dev, dev)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_sched_setscheduler +SC_TRACE_EVENT(sys_sched_setscheduler, + TP_PROTO(pid_t pid, int policy, struct sched_param * param), + TP_ARGS(pid, policy, param), + TP_STRUCT__entry(__field(pid_t, pid) __field(int, policy) __field_hex(struct sched_param *, param)), + TP_fast_assign(tp_assign(pid, pid) tp_assign(policy, policy) tp_assign(param, param)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_init_module +SC_TRACE_EVENT(sys_init_module, + TP_PROTO(void * umod, unsigned long len, const char * uargs), + TP_ARGS(umod, len, uargs), + TP_STRUCT__entry(__field_hex(void *, umod) __field(unsigned long, len) __field_hex(const char *, uargs)), + TP_fast_assign(tp_assign(umod, umod) tp_assign(len, len) tp_assign(uargs, uargs)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_listxattr +SC_TRACE_EVENT(sys_listxattr, + TP_PROTO(const char * pathname, char * list, size_t size), + TP_ARGS(pathname, list, size), + TP_STRUCT__entry(__string_from_user(pathname, pathname) __field_hex(char *, list) __field(size_t, size)), + TP_fast_assign(tp_copy_string_from_user(pathname, pathname) tp_assign(list, list) tp_assign(size, size)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_llistxattr +SC_TRACE_EVENT(sys_llistxattr, + TP_PROTO(const char * pathname, char * list, size_t size), + TP_ARGS(pathname, list, size), + TP_STRUCT__entry(__string_from_user(pathname, pathname) __field_hex(char *, list) __field(size_t, size)), + TP_fast_assign(tp_copy_string_from_user(pathname, pathname) tp_assign(list, list) tp_assign(size, size)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_flistxattr +SC_TRACE_EVENT(sys_flistxattr, + TP_PROTO(int fd, char * list, size_t size), + TP_ARGS(fd, list, size), + TP_STRUCT__entry(__field(int, fd) __field_hex(char *, list) __field(size_t, size)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(list, list) tp_assign(size, size)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_cachectl +SC_TRACE_EVENT(sys_cachectl, + TP_PROTO(char * addr, int nbytes, int op), + TP_ARGS(addr, nbytes, op), + TP_STRUCT__entry(__field_hex(char *, addr) __field(int, nbytes) __field(int, op)), + TP_fast_assign(tp_assign(addr, addr) tp_assign(nbytes, nbytes) tp_assign(op, op)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_io_cancel +SC_TRACE_EVENT(sys_io_cancel, + TP_PROTO(aio_context_t ctx_id, struct iocb * iocb, struct io_event * result), + TP_ARGS(ctx_id, iocb, result), + TP_STRUCT__entry(__field(aio_context_t, ctx_id) __field_hex(struct iocb *, iocb) __field_hex(struct io_event *, result)), + TP_fast_assign(tp_assign(ctx_id, ctx_id) tp_assign(iocb, iocb) tp_assign(result, result)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_inotify_add_watch +SC_TRACE_EVENT(sys_inotify_add_watch, + TP_PROTO(int fd, const char * pathname, u32 mask), + TP_ARGS(fd, pathname, mask), + TP_STRUCT__entry(__field(int, fd) __string_from_user(pathname, pathname) __field(u32, mask)), + TP_fast_assign(tp_assign(fd, fd) tp_copy_string_from_user(pathname, pathname) tp_assign(mask, mask)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_mkdirat +SC_TRACE_EVENT(sys_mkdirat, + TP_PROTO(int dfd, const char * pathname, umode_t mode), + TP_ARGS(dfd, pathname, mode), + TP_STRUCT__entry(__field(int, dfd) __string_from_user(pathname, pathname) __field(umode_t, mode)), + TP_fast_assign(tp_assign(dfd, dfd) tp_copy_string_from_user(pathname, pathname) tp_assign(mode, mode)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_unlinkat +SC_TRACE_EVENT(sys_unlinkat, + TP_PROTO(int dfd, const char * pathname, int flag), + TP_ARGS(dfd, pathname, flag), + TP_STRUCT__entry(__field(int, dfd) __string_from_user(pathname, pathname) __field(int, flag)), + TP_fast_assign(tp_assign(dfd, dfd) tp_copy_string_from_user(pathname, pathname) tp_assign(flag, flag)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_symlinkat +SC_TRACE_EVENT(sys_symlinkat, + TP_PROTO(const char * oldname, int newdfd, const char * newname), + TP_ARGS(oldname, newdfd, newname), + TP_STRUCT__entry(__string_from_user(oldname, oldname) __field(int, newdfd) __string_from_user(newname, newname)), + TP_fast_assign(tp_copy_string_from_user(oldname, oldname) tp_assign(newdfd, newdfd) tp_copy_string_from_user(newname, newname)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_fchmodat +SC_TRACE_EVENT(sys_fchmodat, + TP_PROTO(int dfd, const char * filename, umode_t mode), + TP_ARGS(dfd, filename, mode), + TP_STRUCT__entry(__field(int, dfd) __string_from_user(filename, filename) __field(umode_t, mode)), + TP_fast_assign(tp_assign(dfd, dfd) tp_copy_string_from_user(filename, filename) tp_assign(mode, mode)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_faccessat +SC_TRACE_EVENT(sys_faccessat, + TP_PROTO(int dfd, const char * filename, int mode), + TP_ARGS(dfd, filename, mode), + TP_STRUCT__entry(__field(int, dfd) __string_from_user(filename, filename) __field(int, mode)), + TP_fast_assign(tp_assign(dfd, dfd) tp_copy_string_from_user(filename, filename) tp_assign(mode, mode)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_getcpu +SC_TRACE_EVENT(sys_getcpu, + TP_PROTO(unsigned * cpup, unsigned * nodep, struct getcpu_cache * unused), + TP_ARGS(cpup, nodep, unused), + TP_STRUCT__entry(__field_hex(unsigned *, cpup) __field_hex(unsigned *, nodep) __field_hex(struct getcpu_cache *, unused)), + TP_fast_assign(tp_assign(cpup, cpup) tp_assign(nodep, nodep) tp_assign(unused, unused)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_getdents64 +SC_TRACE_EVENT(sys_getdents64, + TP_PROTO(unsigned int fd, struct linux_dirent64 * dirent, unsigned int count), + TP_ARGS(fd, dirent, count), + TP_STRUCT__entry(__field(unsigned int, fd) __field_hex(struct linux_dirent64 *, dirent) __field(unsigned int, count)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(dirent, dirent) tp_assign(count, count)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_send +SC_TRACE_EVENT(sys_send, + TP_PROTO(int fd, void * buff, size_t len, unsigned int flags), + TP_ARGS(fd, buff, len, flags), + TP_STRUCT__entry(__field(int, fd) __field_hex(void *, buff) __field(size_t, len) __field(unsigned int, flags)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(buff, buff) tp_assign(len, len) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_32_truncate64 +SC_TRACE_EVENT(sys_32_truncate64, + TP_PROTO(const char * path, unsigned long __dummy, unsigned long a2, unsigned long a3), + TP_ARGS(path, __dummy, a2, a3), + TP_STRUCT__entry(__string_from_user(path, path) __field(unsigned long, __dummy) __field(unsigned long, a2) __field(unsigned long, a3)), + TP_fast_assign(tp_copy_string_from_user(path, path) tp_assign(__dummy, __dummy) tp_assign(a2, a2) tp_assign(a3, a3)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_rt_sigaction +SC_TRACE_EVENT(sys_rt_sigaction, + TP_PROTO(int sig, const struct sigaction * act, struct sigaction * oact, size_t sigsetsize), + TP_ARGS(sig, act, oact, sigsetsize), + TP_STRUCT__entry(__field(int, sig) __field_hex(const struct sigaction *, act) __field_hex(struct sigaction *, oact) __field(size_t, sigsetsize)), + TP_fast_assign(tp_assign(sig, sig) tp_assign(act, act) tp_assign(oact, oact) tp_assign(sigsetsize, sigsetsize)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_rt_sigprocmask +SC_TRACE_EVENT(sys_rt_sigprocmask, + TP_PROTO(int how, sigset_t * nset, sigset_t * oset, size_t sigsetsize), + TP_ARGS(how, nset, oset, sigsetsize), + TP_STRUCT__entry(__field(int, how) __field_hex(sigset_t *, nset) __field_hex(sigset_t *, oset) __field(size_t, sigsetsize)), + TP_fast_assign(tp_assign(how, how) tp_assign(nset, nset) tp_assign(oset, oset) tp_assign(sigsetsize, sigsetsize)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_wait4 +SC_TRACE_EVENT(sys_wait4, + TP_PROTO(pid_t upid, int * stat_addr, int options, struct rusage * ru), + TP_ARGS(upid, stat_addr, options, ru), + TP_STRUCT__entry(__field(pid_t, upid) __field_hex(int *, stat_addr) __field(int, options) __field_hex(struct rusage *, ru)), + TP_fast_assign(tp_assign(upid, upid) tp_assign(stat_addr, stat_addr) tp_assign(options, options) tp_assign(ru, ru)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_msgsnd +SC_TRACE_EVENT(sys_msgsnd, + TP_PROTO(int msqid, struct msgbuf * msgp, size_t msgsz, int msgflg), + TP_ARGS(msqid, msgp, msgsz, msgflg), + TP_STRUCT__entry(__field(int, msqid) __field_hex(struct msgbuf *, msgp) __field(size_t, msgsz) __field(int, msgflg)), + TP_fast_assign(tp_assign(msqid, msqid) tp_assign(msgp, msgp) tp_assign(msgsz, msgsz) tp_assign(msgflg, msgflg)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_rt_sigtimedwait +SC_TRACE_EVENT(sys_rt_sigtimedwait, + TP_PROTO(const sigset_t * uthese, siginfo_t * uinfo, const struct timespec * uts, size_t sigsetsize), + TP_ARGS(uthese, uinfo, uts, sigsetsize), + TP_STRUCT__entry(__field_hex(const sigset_t *, uthese) __field_hex(siginfo_t *, uinfo) __field_hex(const struct timespec *, uts) __field(size_t, sigsetsize)), + TP_fast_assign(tp_assign(uthese, uthese) tp_assign(uinfo, uinfo) tp_assign(uts, uts) tp_assign(sigsetsize, sigsetsize)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_semtimedop +SC_TRACE_EVENT(sys_semtimedop, + TP_PROTO(int semid, struct sembuf * tsops, unsigned nsops, const struct timespec * timeout), + TP_ARGS(semid, tsops, nsops, timeout), + TP_STRUCT__entry(__field(int, semid) __field_hex(struct sembuf *, tsops) __field(unsigned, nsops) __field_hex(const struct timespec *, timeout)), + TP_fast_assign(tp_assign(semid, semid) tp_assign(tsops, tsops) tp_assign(nsops, nsops) tp_assign(timeout, timeout)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_timer_settime +SC_TRACE_EVENT(sys_timer_settime, + TP_PROTO(timer_t timer_id, int flags, const struct itimerspec * new_setting, struct itimerspec * old_setting), + TP_ARGS(timer_id, flags, new_setting, old_setting), + TP_STRUCT__entry(__field(timer_t, timer_id) __field(int, flags) __field_hex(const struct itimerspec *, new_setting) __field_hex(struct itimerspec *, old_setting)), + TP_fast_assign(tp_assign(timer_id, timer_id) tp_assign(flags, flags) tp_assign(new_setting, new_setting) tp_assign(old_setting, old_setting)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_clock_nanosleep +SC_TRACE_EVENT(sys_clock_nanosleep, + TP_PROTO(const clockid_t which_clock, int flags, const struct timespec * rqtp, struct timespec * rmtp), + TP_ARGS(which_clock, flags, rqtp, rmtp), + TP_STRUCT__entry(__field(const clockid_t, which_clock) __field(int, flags) __field_hex(const struct timespec *, rqtp) __field_hex(struct timespec *, rmtp)), + TP_fast_assign(tp_assign(which_clock, which_clock) tp_assign(flags, flags) tp_assign(rqtp, rqtp) tp_assign(rmtp, rmtp)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_vmsplice +SC_TRACE_EVENT(sys_vmsplice, + TP_PROTO(int fd, const struct iovec * iov, unsigned long nr_segs, unsigned int flags), + TP_ARGS(fd, iov, nr_segs, flags), + TP_STRUCT__entry(__field(int, fd) __field_hex(const struct iovec *, iov) __field(unsigned long, nr_segs) __field(unsigned int, flags)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(iov, iov) tp_assign(nr_segs, nr_segs) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_utimensat +SC_TRACE_EVENT(sys_utimensat, + TP_PROTO(int dfd, const char * filename, struct timespec * utimes, int flags), + TP_ARGS(dfd, filename, utimes, flags), + TP_STRUCT__entry(__field(int, dfd) __string_from_user(filename, filename) __field_hex(struct timespec *, utimes) __field(int, flags)), + TP_fast_assign(tp_assign(dfd, dfd) tp_copy_string_from_user(filename, filename) tp_assign(utimes, utimes) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_timerfd_settime +SC_TRACE_EVENT(sys_timerfd_settime, + TP_PROTO(int ufd, int flags, const struct itimerspec * utmr, struct itimerspec * otmr), + TP_ARGS(ufd, flags, utmr, otmr), + TP_STRUCT__entry(__field(int, ufd) __field(int, flags) __field_hex(const struct itimerspec *, utmr) __field_hex(struct itimerspec *, otmr)), + TP_fast_assign(tp_assign(ufd, ufd) tp_assign(flags, flags) tp_assign(utmr, utmr) tp_assign(otmr, otmr)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_rt_tgsigqueueinfo +SC_TRACE_EVENT(sys_rt_tgsigqueueinfo, + TP_PROTO(pid_t tgid, pid_t pid, int sig, siginfo_t * uinfo), + TP_ARGS(tgid, pid, sig, uinfo), + TP_STRUCT__entry(__field(pid_t, tgid) __field(pid_t, pid) __field(int, sig) __field_hex(siginfo_t *, uinfo)), + TP_fast_assign(tp_assign(tgid, tgid) tp_assign(pid, pid) tp_assign(sig, sig) tp_assign(uinfo, uinfo)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_sendmmsg +SC_TRACE_EVENT(sys_sendmmsg, + TP_PROTO(int fd, struct mmsghdr * mmsg, unsigned int vlen, unsigned int flags), + TP_ARGS(fd, mmsg, vlen, flags), + TP_STRUCT__entry(__field(int, fd) __field_hex(struct mmsghdr *, mmsg) __field(unsigned int, vlen) __field(unsigned int, flags)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(mmsg, mmsg) tp_assign(vlen, vlen) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_32_rt_sigaction +SC_TRACE_EVENT(sys_32_rt_sigaction, + TP_PROTO(int sig, const struct sigaction32 * act, struct sigaction32 * oact, unsigned int sigsetsize), + TP_ARGS(sig, act, oact, sigsetsize), + TP_STRUCT__entry(__field(int, sig) __field_hex(const struct sigaction32 *, act) __field_hex(struct sigaction32 *, oact) __field(unsigned int, sigsetsize)), + TP_fast_assign(tp_assign(sig, sig) tp_assign(act, act) tp_assign(oact, oact) tp_assign(sigsetsize, sigsetsize)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_32_rt_sigprocmask +SC_TRACE_EVENT(sys_32_rt_sigprocmask, + TP_PROTO(int how, compat_sigset_t * set, compat_sigset_t * oset, unsigned int sigsetsize), + TP_ARGS(how, set, oset, sigsetsize), + TP_STRUCT__entry(__field(int, how) __field_hex(compat_sigset_t *, set) __field_hex(compat_sigset_t *, oset) __field(unsigned int, sigsetsize)), + TP_fast_assign(tp_assign(how, how) tp_assign(set, set) tp_assign(oset, oset) tp_assign(sigsetsize, sigsetsize)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_32_sendfile +SC_TRACE_EVENT(sys_32_sendfile, + TP_PROTO(long out_fd, long in_fd, compat_off_t * offset, s32 count), + TP_ARGS(out_fd, in_fd, offset, count), + TP_STRUCT__entry(__field(long, out_fd) __field(long, in_fd) __field_hex(compat_off_t *, offset) __field(s32, count)), + TP_fast_assign(tp_assign(out_fd, out_fd) tp_assign(in_fd, in_fd) tp_assign(offset, offset) tp_assign(count, count)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_socketpair +SC_TRACE_EVENT(sys_socketpair, + TP_PROTO(int family, int type, int protocol, int * usockvec), + TP_ARGS(family, type, protocol, usockvec), + TP_STRUCT__entry(__field(int, family) __field(int, type) __field(int, protocol) __field_hex(int *, usockvec)), + TP_fast_assign(tp_assign(family, family) tp_assign(type, type) tp_assign(protocol, protocol) tp_assign(usockvec, usockvec)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_reboot +SC_TRACE_EVENT(sys_reboot, + TP_PROTO(int magic1, int magic2, unsigned int cmd, void * arg), + TP_ARGS(magic1, magic2, cmd, arg), + TP_STRUCT__entry(__field(int, magic1) __field(int, magic2) __field(unsigned int, cmd) __field_hex(void *, arg)), + TP_fast_assign(tp_assign(magic1, magic1) tp_assign(magic2, magic2) tp_assign(cmd, cmd) tp_assign(arg, arg)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_quotactl +SC_TRACE_EVENT(sys_quotactl, + TP_PROTO(unsigned int cmd, const char * special, qid_t id, void * addr), + TP_ARGS(cmd, special, id, addr), + TP_STRUCT__entry(__field(unsigned int, cmd) __field_hex(const char *, special) __field(qid_t, id) __field_hex(void *, addr)), + TP_fast_assign(tp_assign(cmd, cmd) tp_assign(special, special) tp_assign(id, id) tp_assign(addr, addr)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_getxattr +SC_TRACE_EVENT(sys_getxattr, + TP_PROTO(const char * pathname, const char * name, void * value, size_t size), + TP_ARGS(pathname, name, value, size), + TP_STRUCT__entry(__string_from_user(pathname, pathname) __string_from_user(name, name) __field_hex(void *, value) __field(size_t, size)), + TP_fast_assign(tp_copy_string_from_user(pathname, pathname) tp_copy_string_from_user(name, name) tp_assign(value, value) tp_assign(size, size)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_lgetxattr +SC_TRACE_EVENT(sys_lgetxattr, + TP_PROTO(const char * pathname, const char * name, void * value, size_t size), + TP_ARGS(pathname, name, value, size), + TP_STRUCT__entry(__string_from_user(pathname, pathname) __string_from_user(name, name) __field_hex(void *, value) __field(size_t, size)), + TP_fast_assign(tp_copy_string_from_user(pathname, pathname) tp_copy_string_from_user(name, name) tp_assign(value, value) tp_assign(size, size)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_fgetxattr +SC_TRACE_EVENT(sys_fgetxattr, + TP_PROTO(int fd, const char * name, void * value, size_t size), + TP_ARGS(fd, name, value, size), + TP_STRUCT__entry(__field(int, fd) __string_from_user(name, name) __field_hex(void *, value) __field(size_t, size)), + TP_fast_assign(tp_assign(fd, fd) tp_copy_string_from_user(name, name) tp_assign(value, value) tp_assign(size, size)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_epoll_ctl +SC_TRACE_EVENT(sys_epoll_ctl, + TP_PROTO(int epfd, int op, int fd, struct epoll_event * event), + TP_ARGS(epfd, op, fd, event), + TP_STRUCT__entry(__field(int, epfd) __field(int, op) __field(int, fd) __field_hex(struct epoll_event *, event)), + TP_fast_assign(tp_assign(epfd, epfd) tp_assign(op, op) tp_assign(fd, fd) tp_assign(event, event)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_epoll_wait +SC_TRACE_EVENT(sys_epoll_wait, + TP_PROTO(int epfd, struct epoll_event * events, int maxevents, int timeout), + TP_ARGS(epfd, events, maxevents, timeout), + TP_STRUCT__entry(__field(int, epfd) __field_hex(struct epoll_event *, events) __field(int, maxevents) __field(int, timeout)), + TP_fast_assign(tp_assign(epfd, epfd) tp_assign(events, events) tp_assign(maxevents, maxevents) tp_assign(timeout, timeout)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_sendfile64 +SC_TRACE_EVENT(sys_sendfile64, + TP_PROTO(int out_fd, int in_fd, loff_t * offset, size_t count), + TP_ARGS(out_fd, in_fd, offset, count), + TP_STRUCT__entry(__field(int, out_fd) __field(int, in_fd) __field_hex(loff_t *, offset) __field(size_t, count)), + TP_fast_assign(tp_assign(out_fd, out_fd) tp_assign(in_fd, in_fd) tp_assign(offset, offset) tp_assign(count, count)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_openat +SC_TRACE_EVENT(sys_openat, + TP_PROTO(int dfd, const char * filename, int flags, umode_t mode), + TP_ARGS(dfd, filename, flags, mode), + TP_STRUCT__entry(__field(int, dfd) __string_from_user(filename, filename) __field(int, flags) __field(umode_t, mode)), + TP_fast_assign(tp_assign(dfd, dfd) tp_copy_string_from_user(filename, filename) tp_assign(flags, flags) tp_assign(mode, mode)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_mknodat +SC_TRACE_EVENT(sys_mknodat, + TP_PROTO(int dfd, const char * filename, umode_t mode, unsigned dev), + TP_ARGS(dfd, filename, mode, dev), + TP_STRUCT__entry(__field(int, dfd) __string_from_user(filename, filename) __field(umode_t, mode) __field(unsigned, dev)), + TP_fast_assign(tp_assign(dfd, dfd) tp_copy_string_from_user(filename, filename) tp_assign(mode, mode) tp_assign(dev, dev)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_newfstatat +SC_TRACE_EVENT(sys_newfstatat, + TP_PROTO(int dfd, const char * filename, struct stat * statbuf, int flag), + TP_ARGS(dfd, filename, statbuf, flag), + TP_STRUCT__entry(__field(int, dfd) __string_from_user(filename, filename) __field_hex(struct stat *, statbuf) __field(int, flag)), + TP_fast_assign(tp_assign(dfd, dfd) tp_copy_string_from_user(filename, filename) tp_assign(statbuf, statbuf) tp_assign(flag, flag)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_renameat +SC_TRACE_EVENT(sys_renameat, + TP_PROTO(int olddfd, const char * oldname, int newdfd, const char * newname), + TP_ARGS(olddfd, oldname, newdfd, newname), + TP_STRUCT__entry(__field(int, olddfd) __string_from_user(oldname, oldname) __field(int, newdfd) __string_from_user(newname, newname)), + TP_fast_assign(tp_assign(olddfd, olddfd) tp_copy_string_from_user(oldname, oldname) tp_assign(newdfd, newdfd) tp_copy_string_from_user(newname, newname)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_readlinkat +SC_TRACE_EVENT(sys_readlinkat, + TP_PROTO(int dfd, const char * pathname, char * buf, int bufsiz), + TP_ARGS(dfd, pathname, buf, bufsiz), + TP_STRUCT__entry(__field(int, dfd) __string_from_user(pathname, pathname) __field_hex(char *, buf) __field(int, bufsiz)), + TP_fast_assign(tp_assign(dfd, dfd) tp_copy_string_from_user(pathname, pathname) tp_assign(buf, buf) tp_assign(bufsiz, bufsiz)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_signalfd4 +SC_TRACE_EVENT(sys_signalfd4, + TP_PROTO(int ufd, sigset_t * user_mask, size_t sizemask, int flags), + TP_ARGS(ufd, user_mask, sizemask, flags), + TP_STRUCT__entry(__field(int, ufd) __field_hex(sigset_t *, user_mask) __field(size_t, sizemask) __field(int, flags)), + TP_fast_assign(tp_assign(ufd, ufd) tp_assign(user_mask, user_mask) tp_assign(sizemask, sizemask) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_accept4 +SC_TRACE_EVENT(sys_accept4, + TP_PROTO(int fd, struct sockaddr * upeer_sockaddr, int * upeer_addrlen, int flags), + TP_ARGS(fd, upeer_sockaddr, upeer_addrlen, flags), + TP_STRUCT__entry(__field(int, fd) __field_hex(struct sockaddr *, upeer_sockaddr) __field_hex(int *, upeer_addrlen) __field(int, flags)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(upeer_sockaddr, upeer_sockaddr) tp_assign(upeer_addrlen, upeer_addrlen) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_prlimit64 +SC_TRACE_EVENT(sys_prlimit64, + TP_PROTO(pid_t pid, unsigned int resource, const struct rlimit64 * new_rlim, struct rlimit64 * old_rlim), + TP_ARGS(pid, resource, new_rlim, old_rlim), + TP_STRUCT__entry(__field(pid_t, pid) __field(unsigned int, resource) __field_hex(const struct rlimit64 *, new_rlim) __field_hex(struct rlimit64 *, old_rlim)), + TP_fast_assign(tp_assign(pid, pid) tp_assign(resource, resource) tp_assign(new_rlim, new_rlim) tp_assign(old_rlim, old_rlim)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_32_llseek +SC_TRACE_EVENT(sys_32_llseek, + TP_PROTO(unsigned int fd, unsigned int offset_high, unsigned int offset_low, loff_t * result, unsigned int origin), + TP_ARGS(fd, offset_high, offset_low, result, origin), + TP_STRUCT__entry(__field(unsigned int, fd) __field(unsigned int, offset_high) __field(unsigned int, offset_low) __field_hex(loff_t *, result) __field(unsigned int, origin)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(offset_high, offset_high) tp_assign(offset_low, offset_low) tp_assign(result, result) tp_assign(origin, origin)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_32_waitid +SC_TRACE_EVENT(sys_32_waitid, + TP_PROTO(int which, compat_pid_t pid, compat_siginfo_t * uinfo, int options, struct compat_rusage * uru), + TP_ARGS(which, pid, uinfo, options, uru), + TP_STRUCT__entry(__field(int, which) __field(compat_pid_t, pid) __field_hex(compat_siginfo_t *, uinfo) __field(int, options) __field_hex(struct compat_rusage *, uru)), + TP_fast_assign(tp_assign(which, which) tp_assign(pid, pid) tp_assign(uinfo, uinfo) tp_assign(options, options) tp_assign(uru, uru)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_select +SC_TRACE_EVENT(sys_select, + TP_PROTO(int n, fd_set * inp, fd_set * outp, fd_set * exp, struct timeval * tvp), + TP_ARGS(n, inp, outp, exp, tvp), + TP_STRUCT__entry(__field(int, n) __field_hex(fd_set *, inp) __field_hex(fd_set *, outp) __field_hex(fd_set *, exp) __field_hex(struct timeval *, tvp)), + TP_fast_assign(tp_assign(n, n) tp_assign(inp, inp) tp_assign(outp, outp) tp_assign(exp, exp) tp_assign(tvp, tvp)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_setsockopt +SC_TRACE_EVENT(sys_setsockopt, + TP_PROTO(int fd, int level, int optname, char * optval, int optlen), + TP_ARGS(fd, level, optname, optval, optlen), + TP_STRUCT__entry(__field(int, fd) __field(int, level) __field(int, optname) __field_hex(char *, optval) __field(int, optlen)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(level, level) tp_assign(optname, optname) tp_assign(optval, optval) tp_assign(optlen, optlen)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_msgrcv +SC_TRACE_EVENT(sys_msgrcv, + TP_PROTO(int msqid, struct msgbuf * msgp, size_t msgsz, long msgtyp, int msgflg), + TP_ARGS(msqid, msgp, msgsz, msgtyp, msgflg), + TP_STRUCT__entry(__field(int, msqid) __field_hex(struct msgbuf *, msgp) __field(size_t, msgsz) __field(long, msgtyp) __field(int, msgflg)), + TP_fast_assign(tp_assign(msqid, msqid) tp_assign(msgp, msgp) tp_assign(msgsz, msgsz) tp_assign(msgtyp, msgtyp) tp_assign(msgflg, msgflg)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_mount +SC_TRACE_EVENT(sys_mount, + TP_PROTO(char * dev_name, char * dir_name, char * type, unsigned long flags, void * data), + TP_ARGS(dev_name, dir_name, type, flags, data), + TP_STRUCT__entry(__string_from_user(dev_name, dev_name) __string_from_user(dir_name, dir_name) __string_from_user(type, type) __field(unsigned long, flags) __field_hex(void *, data)), + TP_fast_assign(tp_copy_string_from_user(dev_name, dev_name) tp_copy_string_from_user(dir_name, dir_name) tp_copy_string_from_user(type, type) tp_assign(flags, flags) tp_assign(data, data)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_io_getevents +SC_TRACE_EVENT(sys_io_getevents, + TP_PROTO(aio_context_t ctx_id, long min_nr, long nr, struct io_event * events, struct timespec * timeout), + TP_ARGS(ctx_id, min_nr, nr, events, timeout), + TP_STRUCT__entry(__field(aio_context_t, ctx_id) __field(long, min_nr) __field(long, nr) __field_hex(struct io_event *, events) __field_hex(struct timespec *, timeout)), + TP_fast_assign(tp_assign(ctx_id, ctx_id) tp_assign(min_nr, min_nr) tp_assign(nr, nr) tp_assign(events, events) tp_assign(timeout, timeout)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_waitid +SC_TRACE_EVENT(sys_waitid, + TP_PROTO(int which, pid_t upid, struct siginfo * infop, int options, struct rusage * ru), + TP_ARGS(which, upid, infop, options, ru), + TP_STRUCT__entry(__field(int, which) __field(pid_t, upid) __field_hex(struct siginfo *, infop) __field(int, options) __field_hex(struct rusage *, ru)), + TP_fast_assign(tp_assign(which, which) tp_assign(upid, upid) tp_assign(infop, infop) tp_assign(options, options) tp_assign(ru, ru)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_ppoll +SC_TRACE_EVENT(sys_ppoll, + TP_PROTO(struct pollfd * ufds, unsigned int nfds, struct timespec * tsp, const sigset_t * sigmask, size_t sigsetsize), + TP_ARGS(ufds, nfds, tsp, sigmask, sigsetsize), + TP_STRUCT__entry(__field_hex(struct pollfd *, ufds) __field(unsigned int, nfds) __field_hex(struct timespec *, tsp) __field_hex(const sigset_t *, sigmask) __field(size_t, sigsetsize)), + TP_fast_assign(tp_assign(ufds, ufds) tp_assign(nfds, nfds) tp_assign(tsp, tsp) tp_assign(sigmask, sigmask) tp_assign(sigsetsize, sigsetsize)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_recvmmsg +SC_TRACE_EVENT(sys_recvmmsg, + TP_PROTO(int fd, struct mmsghdr * mmsg, unsigned int vlen, unsigned int flags, struct timespec * timeout), + TP_ARGS(fd, mmsg, vlen, flags, timeout), + TP_STRUCT__entry(__field(int, fd) __field_hex(struct mmsghdr *, mmsg) __field(unsigned int, vlen) __field(unsigned int, flags) __field_hex(struct timespec *, timeout)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(mmsg, mmsg) tp_assign(vlen, vlen) tp_assign(flags, flags) tp_assign(timeout, timeout)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_getsockopt +SC_TRACE_EVENT(sys_getsockopt, + TP_PROTO(int fd, int level, int optname, char * optval, int * optlen), + TP_ARGS(fd, level, optname, optval, optlen), + TP_STRUCT__entry(__field(int, fd) __field(int, level) __field(int, optname) __field_hex(char *, optval) __field_hex(int *, optlen)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(level, level) tp_assign(optname, optname) tp_assign(optval, optval) tp_assign(optlen, optlen)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_setxattr +SC_TRACE_EVENT(sys_setxattr, + TP_PROTO(const char * pathname, const char * name, const void * value, size_t size, int flags), + TP_ARGS(pathname, name, value, size, flags), + TP_STRUCT__entry(__string_from_user(pathname, pathname) __string_from_user(name, name) __field_hex(const void *, value) __field(size_t, size) __field(int, flags)), + TP_fast_assign(tp_copy_string_from_user(pathname, pathname) tp_copy_string_from_user(name, name) tp_assign(value, value) tp_assign(size, size) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_lsetxattr +SC_TRACE_EVENT(sys_lsetxattr, + TP_PROTO(const char * pathname, const char * name, const void * value, size_t size, int flags), + TP_ARGS(pathname, name, value, size, flags), + TP_STRUCT__entry(__string_from_user(pathname, pathname) __string_from_user(name, name) __field_hex(const void *, value) __field(size_t, size) __field(int, flags)), + TP_fast_assign(tp_copy_string_from_user(pathname, pathname) tp_copy_string_from_user(name, name) tp_assign(value, value) tp_assign(size, size) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_fsetxattr +SC_TRACE_EVENT(sys_fsetxattr, + TP_PROTO(int fd, const char * name, const void * value, size_t size, int flags), + TP_ARGS(fd, name, value, size, flags), + TP_STRUCT__entry(__field(int, fd) __string_from_user(name, name) __field_hex(const void *, value) __field(size_t, size) __field(int, flags)), + TP_fast_assign(tp_assign(fd, fd) tp_copy_string_from_user(name, name) tp_assign(value, value) tp_assign(size, size) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_fchownat +SC_TRACE_EVENT(sys_fchownat, + TP_PROTO(int dfd, const char * filename, uid_t user, gid_t group, int flag), + TP_ARGS(dfd, filename, user, group, flag), + TP_STRUCT__entry(__field(int, dfd) __string_from_user(filename, filename) __field(uid_t, user) __field(gid_t, group) __field(int, flag)), + TP_fast_assign(tp_assign(dfd, dfd) tp_copy_string_from_user(filename, filename) tp_assign(user, user) tp_assign(group, group) tp_assign(flag, flag)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_linkat +SC_TRACE_EVENT(sys_linkat, + TP_PROTO(int olddfd, const char * oldname, int newdfd, const char * newname, int flags), + TP_ARGS(olddfd, oldname, newdfd, newname, flags), + TP_STRUCT__entry(__field(int, olddfd) __string_from_user(oldname, oldname) __field(int, newdfd) __string_from_user(newname, newname) __field(int, flags)), + TP_fast_assign(tp_assign(olddfd, olddfd) tp_copy_string_from_user(oldname, oldname) tp_assign(newdfd, newdfd) tp_copy_string_from_user(newname, newname) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_preadv +SC_TRACE_EVENT(sys_preadv, + TP_PROTO(unsigned long fd, const struct iovec * vec, unsigned long vlen, unsigned long pos_l, unsigned long pos_h), + TP_ARGS(fd, vec, vlen, pos_l, pos_h), + TP_STRUCT__entry(__field(unsigned long, fd) __field_hex(const struct iovec *, vec) __field(unsigned long, vlen) __field(unsigned long, pos_l) __field(unsigned long, pos_h)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(vec, vec) tp_assign(vlen, vlen) tp_assign(pos_l, pos_l) tp_assign(pos_h, pos_h)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_pwritev +SC_TRACE_EVENT(sys_pwritev, + TP_PROTO(unsigned long fd, const struct iovec * vec, unsigned long vlen, unsigned long pos_l, unsigned long pos_h), + TP_ARGS(fd, vec, vlen, pos_l, pos_h), + TP_STRUCT__entry(__field(unsigned long, fd) __field_hex(const struct iovec *, vec) __field(unsigned long, vlen) __field(unsigned long, pos_l) __field(unsigned long, pos_h)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(vec, vec) tp_assign(vlen, vlen) tp_assign(pos_l, pos_l) tp_assign(pos_h, pos_h)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_32_pread +SC_TRACE_EVENT(sys_32_pread, + TP_PROTO(unsigned long fd, char * buf, size_t count, unsigned long unused, unsigned long a4, unsigned long a5), + TP_ARGS(fd, buf, count, unused, a4, a5), + TP_STRUCT__entry(__field(unsigned long, fd) __field_hex(char *, buf) __field(size_t, count) __field(unsigned long, unused) __field(unsigned long, a4) __field(unsigned long, a5)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(buf, buf) tp_assign(count, count) tp_assign(unused, unused) tp_assign(a4, a4) tp_assign(a5, a5)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_32_pwrite +SC_TRACE_EVENT(sys_32_pwrite, + TP_PROTO(unsigned int fd, const char * buf, size_t count, u32 unused, u64 a4, u64 a5), + TP_ARGS(fd, buf, count, unused, a4, a5), + TP_STRUCT__entry(__field(unsigned int, fd) __field_hex(const char *, buf) __field(size_t, count) __field(u32, unused) __field(u64, a4) __field(u64, a5)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(buf, buf) tp_assign(count, count) tp_assign(unused, unused) tp_assign(a4, a4) tp_assign(a5, a5)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_32_fanotify_mark +SC_TRACE_EVENT(sys_32_fanotify_mark, + TP_PROTO(int fanotify_fd, unsigned int flags, u64 a3, u64 a4, int dfd, const char * pathname), + TP_ARGS(fanotify_fd, flags, a3, a4, dfd, pathname), + TP_STRUCT__entry(__field(int, fanotify_fd) __field(unsigned int, flags) __field(u64, a3) __field(u64, a4) __field(int, dfd) __string_from_user(pathname, pathname)), + TP_fast_assign(tp_assign(fanotify_fd, fanotify_fd) tp_assign(flags, flags) tp_assign(a3, a3) tp_assign(a4, a4) tp_assign(dfd, dfd) tp_copy_string_from_user(pathname, pathname)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_recvfrom +SC_TRACE_EVENT(sys_recvfrom, + TP_PROTO(int fd, void * ubuf, size_t size, unsigned int flags, struct sockaddr * addr, int * addr_len), + TP_ARGS(fd, ubuf, size, flags, addr, addr_len), + TP_STRUCT__entry(__field(int, fd) __field_hex(void *, ubuf) __field(size_t, size) __field(unsigned int, flags) __field_hex(struct sockaddr *, addr) __field_hex(int *, addr_len)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(ubuf, ubuf) tp_assign(size, size) tp_assign(flags, flags) tp_assign(addr, addr) tp_assign(addr_len, addr_len)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_futex +SC_TRACE_EVENT(sys_futex, + TP_PROTO(u32 * uaddr, int op, u32 val, struct timespec * utime, u32 * uaddr2, u32 val3), + TP_ARGS(uaddr, op, val, utime, uaddr2, val3), + TP_STRUCT__entry(__field_hex(u32 *, uaddr) __field(int, op) __field(u32, val) __field_hex(struct timespec *, utime) __field_hex(u32 *, uaddr2) __field(u32, val3)), + TP_fast_assign(tp_assign(uaddr, uaddr) tp_assign(op, op) tp_assign(val, val) tp_assign(utime, utime) tp_assign(uaddr2, uaddr2) tp_assign(val3, val3)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_pselect6 +SC_TRACE_EVENT(sys_pselect6, + TP_PROTO(int n, fd_set * inp, fd_set * outp, fd_set * exp, struct timespec * tsp, void * sig), + TP_ARGS(n, inp, outp, exp, tsp, sig), + TP_STRUCT__entry(__field(int, n) __field_hex(fd_set *, inp) __field_hex(fd_set *, outp) __field_hex(fd_set *, exp) __field_hex(struct timespec *, tsp) __field_hex(void *, sig)), + TP_fast_assign(tp_assign(n, n) tp_assign(inp, inp) tp_assign(outp, outp) tp_assign(exp, exp) tp_assign(tsp, tsp) tp_assign(sig, sig)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_epoll_pwait +SC_TRACE_EVENT(sys_epoll_pwait, + TP_PROTO(int epfd, struct epoll_event * events, int maxevents, int timeout, const sigset_t * sigmask, size_t sigsetsize), + TP_ARGS(epfd, events, maxevents, timeout, sigmask, sigsetsize), + TP_STRUCT__entry(__field(int, epfd) __field_hex(struct epoll_event *, events) __field(int, maxevents) __field(int, timeout) __field_hex(const sigset_t *, sigmask) __field(size_t, sigsetsize)), + TP_fast_assign(tp_assign(epfd, epfd) tp_assign(events, events) tp_assign(maxevents, maxevents) tp_assign(timeout, timeout) tp_assign(sigmask, sigmask) tp_assign(sigsetsize, sigsetsize)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_process_vm_readv +SC_TRACE_EVENT(sys_process_vm_readv, + TP_PROTO(pid_t pid, const struct iovec * lvec, unsigned long liovcnt, const struct iovec * rvec, unsigned long riovcnt, unsigned long flags), + TP_ARGS(pid, lvec, liovcnt, rvec, riovcnt, flags), + TP_STRUCT__entry(__field(pid_t, pid) __field_hex(const struct iovec *, lvec) __field(unsigned long, liovcnt) __field_hex(const struct iovec *, rvec) __field(unsigned long, riovcnt) __field(unsigned long, flags)), + TP_fast_assign(tp_assign(pid, pid) tp_assign(lvec, lvec) tp_assign(liovcnt, liovcnt) tp_assign(rvec, rvec) tp_assign(riovcnt, riovcnt) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_process_vm_writev +SC_TRACE_EVENT(sys_process_vm_writev, + TP_PROTO(pid_t pid, const struct iovec * lvec, unsigned long liovcnt, const struct iovec * rvec, unsigned long riovcnt, unsigned long flags), + TP_ARGS(pid, lvec, liovcnt, rvec, riovcnt, flags), + TP_STRUCT__entry(__field(pid_t, pid) __field_hex(const struct iovec *, lvec) __field(unsigned long, liovcnt) __field_hex(const struct iovec *, rvec) __field(unsigned long, riovcnt) __field(unsigned long, flags)), + TP_fast_assign(tp_assign(pid, pid) tp_assign(lvec, lvec) tp_assign(liovcnt, liovcnt) tp_assign(rvec, rvec) tp_assign(riovcnt, riovcnt) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_sendto +SC_TRACE_EVENT(sys_sendto, + TP_PROTO(int fd, void * buff, size_t len, unsigned int flags, struct sockaddr * addr, int addr_len), + TP_ARGS(fd, buff, len, flags, addr, addr_len), + TP_STRUCT__entry(__field(int, fd) __field_hex(void *, buff) __field(size_t, len) __field(unsigned int, flags) __field_hex(struct sockaddr *, addr) __field_hex(int, addr_len)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(buff, buff) tp_assign(len, len) tp_assign(flags, flags) tp_assign(addr, addr) tp_assign(addr_len, addr_len)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_32_futex +SC_TRACE_EVENT(sys_32_futex, + TP_PROTO(u32 * uaddr, int op, u32 val, struct compat_timespec * utime, u32 * uaddr2, u32 val3), + TP_ARGS(uaddr, op, val, utime, uaddr2, val3), + TP_STRUCT__entry(__field_hex(u32 *, uaddr) __field(int, op) __field(u32, val) __field_hex(struct compat_timespec *, utime) __field_hex(u32 *, uaddr2) __field(u32, val3)), + TP_fast_assign(tp_assign(uaddr, uaddr) tp_assign(op, op) tp_assign(val, val) tp_assign(utime, utime) tp_assign(uaddr2, uaddr2) tp_assign(val3, val3)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_splice +SC_TRACE_EVENT(sys_splice, + TP_PROTO(int fd_in, loff_t * off_in, int fd_out, loff_t * off_out, size_t len, unsigned int flags), + TP_ARGS(fd_in, off_in, fd_out, off_out, len, flags), + TP_STRUCT__entry(__field(int, fd_in) __field_hex(loff_t *, off_in) __field(int, fd_out) __field_hex(loff_t *, off_out) __field(size_t, len) __field(unsigned int, flags)), + TP_fast_assign(tp_assign(fd_in, fd_in) tp_assign(off_in, off_in) tp_assign(fd_out, fd_out) tp_assign(off_out, off_out) tp_assign(len, len) tp_assign(flags, flags)), + TP_printk() +) +#endif + +#endif /* _TRACE_SYSCALLS_POINTERS_H */ + +/* This part must be outside protection */ +#include "../../../probes/define_trace.h" + +#else /* CREATE_SYSCALL_TABLE */ + +#include "mips-64-syscalls-3.5.0_pointers_override.h" +#include "syscalls_pointers_override.h" + +#ifndef OVERRIDE_TABLE_64_sys_waitpid +TRACE_SYSCALL_TABLE(sys_waitpid, sys_waitpid, 4007, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_oldumount +TRACE_SYSCALL_TABLE(sys_oldumount, sys_oldumount, 4022, 1) +#endif +#ifndef OVERRIDE_TABLE_64_sys_olduname +TRACE_SYSCALL_TABLE(sys_olduname, sys_olduname, 4059, 1) +#endif +#ifndef OVERRIDE_TABLE_64_sys_32_sigaction +TRACE_SYSCALL_TABLE(sys_32_sigaction, sys_32_sigaction, 4067, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_uselib +TRACE_SYSCALL_TABLE(sys_uselib, sys_uselib, 4086, 1) +#endif +#ifndef OVERRIDE_TABLE_64_sys_uname +TRACE_SYSCALL_TABLE(sys_uname, sys_uname, 4109, 1) +#endif +#ifndef OVERRIDE_TABLE_64_sys_32_llseek +TRACE_SYSCALL_TABLE(sys_32_llseek, sys_32_llseek, 4140, 5) +#endif +#ifndef OVERRIDE_TABLE_64_sys_send +TRACE_SYSCALL_TABLE(sys_send, sys_send, 4178, 4) +#endif +#ifndef OVERRIDE_TABLE_64_sys_32_pread +TRACE_SYSCALL_TABLE(sys_32_pread, sys_32_pread, 4200, 6) +#endif +#ifndef OVERRIDE_TABLE_64_sys_32_pwrite +TRACE_SYSCALL_TABLE(sys_32_pwrite, sys_32_pwrite, 4201, 6) +#endif +#ifndef OVERRIDE_TABLE_64_sys_32_truncate64 +TRACE_SYSCALL_TABLE(sys_32_truncate64, sys_32_truncate64, 4211, 4) +#endif +#ifndef OVERRIDE_TABLE_64_sys_32_waitid +TRACE_SYSCALL_TABLE(sys_32_waitid, sys_32_waitid, 4278, 5) +#endif +#ifndef OVERRIDE_TABLE_64_sys_32_fanotify_mark +TRACE_SYSCALL_TABLE(sys_32_fanotify_mark, sys_32_fanotify_mark, 4337, 6) +#endif +#ifndef OVERRIDE_TABLE_64_sys_rt_sigaction +TRACE_SYSCALL_TABLE(sys_rt_sigaction, sys_rt_sigaction, 5013, 4) +#endif +#ifndef OVERRIDE_TABLE_64_sys_rt_sigprocmask +TRACE_SYSCALL_TABLE(sys_rt_sigprocmask, sys_rt_sigprocmask, 5014, 4) +#endif +#ifndef OVERRIDE_TABLE_64_sys_readv +TRACE_SYSCALL_TABLE(sys_readv, sys_readv, 5018, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_writev +TRACE_SYSCALL_TABLE(sys_writev, sys_writev, 5019, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_select +TRACE_SYSCALL_TABLE(sys_select, sys_select, 5022, 5) +#endif +#ifndef OVERRIDE_TABLE_64_sys_shmctl +TRACE_SYSCALL_TABLE(sys_shmctl, sys_shmctl, 5030, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_nanosleep +TRACE_SYSCALL_TABLE(sys_nanosleep, sys_nanosleep, 5034, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_getitimer +TRACE_SYSCALL_TABLE(sys_getitimer, sys_getitimer, 5035, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_setitimer +TRACE_SYSCALL_TABLE(sys_setitimer, sys_setitimer, 5036, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_recvfrom +TRACE_SYSCALL_TABLE(sys_recvfrom, sys_recvfrom, 5044, 6) +#endif +#ifndef OVERRIDE_TABLE_64_sys_sendmsg +TRACE_SYSCALL_TABLE(sys_sendmsg, sys_sendmsg, 5045, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_recvmsg +TRACE_SYSCALL_TABLE(sys_recvmsg, sys_recvmsg, 5046, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_setsockopt +TRACE_SYSCALL_TABLE(sys_setsockopt, sys_setsockopt, 5053, 5) +#endif +#ifndef OVERRIDE_TABLE_64_sys_wait4 +TRACE_SYSCALL_TABLE(sys_wait4, sys_wait4, 5059, 4) +#endif +#ifndef OVERRIDE_TABLE_64_sys_msgsnd +TRACE_SYSCALL_TABLE(sys_msgsnd, sys_msgsnd, 5067, 4) +#endif +#ifndef OVERRIDE_TABLE_64_sys_msgrcv +TRACE_SYSCALL_TABLE(sys_msgrcv, sys_msgrcv, 5068, 5) +#endif +#ifndef OVERRIDE_TABLE_64_sys_msgctl +TRACE_SYSCALL_TABLE(sys_msgctl, sys_msgctl, 5069, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_getdents +TRACE_SYSCALL_TABLE(sys_getdents, sys_getdents, 5076, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_gettimeofday +TRACE_SYSCALL_TABLE(sys_gettimeofday, sys_gettimeofday, 5094, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_getrlimit +TRACE_SYSCALL_TABLE(sys_getrlimit, sys_getrlimit, 5095, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_getrusage +TRACE_SYSCALL_TABLE(sys_getrusage, sys_getrusage, 5096, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_sysinfo +TRACE_SYSCALL_TABLE(sys_sysinfo, sys_sysinfo, 5097, 1) +#endif +#ifndef OVERRIDE_TABLE_64_sys_times +TRACE_SYSCALL_TABLE(sys_times, sys_times, 5098, 1) +#endif +#ifndef OVERRIDE_TABLE_64_sys_rt_sigpending +TRACE_SYSCALL_TABLE(sys_rt_sigpending, sys_rt_sigpending, 5125, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_rt_sigtimedwait +TRACE_SYSCALL_TABLE(sys_rt_sigtimedwait, sys_rt_sigtimedwait, 5126, 4) +#endif +#ifndef OVERRIDE_TABLE_64_sys_rt_sigqueueinfo +TRACE_SYSCALL_TABLE(sys_rt_sigqueueinfo, sys_rt_sigqueueinfo, 5127, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_utime +TRACE_SYSCALL_TABLE(sys_utime, sys_utime, 5130, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_ustat +TRACE_SYSCALL_TABLE(sys_ustat, sys_ustat, 5133, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_statfs +TRACE_SYSCALL_TABLE(sys_statfs, sys_statfs, 5134, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_fstatfs +TRACE_SYSCALL_TABLE(sys_fstatfs, sys_fstatfs, 5135, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_sched_rr_get_interval +TRACE_SYSCALL_TABLE(sys_sched_rr_get_interval, sys_sched_rr_get_interval, 5145, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_sysctl +TRACE_SYSCALL_TABLE(sys_sysctl, sys_sysctl, 5152, 1) +#endif +#ifndef OVERRIDE_TABLE_64_sys_adjtimex +TRACE_SYSCALL_TABLE(sys_adjtimex, sys_adjtimex, 5154, 1) +#endif +#ifndef OVERRIDE_TABLE_64_sys_setrlimit +TRACE_SYSCALL_TABLE(sys_setrlimit, sys_setrlimit, 5155, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_settimeofday +TRACE_SYSCALL_TABLE(sys_settimeofday, sys_settimeofday, 5159, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_mount +TRACE_SYSCALL_TABLE(sys_mount, sys_mount, 5160, 5) +#endif +#ifndef OVERRIDE_TABLE_64_sys_futex +TRACE_SYSCALL_TABLE(sys_futex, sys_futex, 5194, 6) +#endif +#ifndef OVERRIDE_TABLE_64_sys_sched_setaffinity +TRACE_SYSCALL_TABLE(sys_sched_setaffinity, sys_sched_setaffinity, 5195, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_sched_getaffinity +TRACE_SYSCALL_TABLE(sys_sched_getaffinity, sys_sched_getaffinity, 5196, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_io_setup +TRACE_SYSCALL_TABLE(sys_io_setup, sys_io_setup, 5200, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_io_getevents +TRACE_SYSCALL_TABLE(sys_io_getevents, sys_io_getevents, 5202, 5) +#endif +#ifndef OVERRIDE_TABLE_64_sys_io_submit +TRACE_SYSCALL_TABLE(sys_io_submit, sys_io_submit, 5203, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_semtimedop +TRACE_SYSCALL_TABLE(sys_semtimedop, sys_semtimedop, 5214, 4) +#endif +#ifndef OVERRIDE_TABLE_64_sys_timer_create +TRACE_SYSCALL_TABLE(sys_timer_create, sys_timer_create, 5216, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_timer_settime +TRACE_SYSCALL_TABLE(sys_timer_settime, sys_timer_settime, 5217, 4) +#endif +#ifndef OVERRIDE_TABLE_64_sys_timer_gettime +TRACE_SYSCALL_TABLE(sys_timer_gettime, sys_timer_gettime, 5218, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_clock_settime +TRACE_SYSCALL_TABLE(sys_clock_settime, sys_clock_settime, 5221, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_clock_gettime +TRACE_SYSCALL_TABLE(sys_clock_gettime, sys_clock_gettime, 5222, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_clock_getres +TRACE_SYSCALL_TABLE(sys_clock_getres, sys_clock_getres, 5223, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_clock_nanosleep +TRACE_SYSCALL_TABLE(sys_clock_nanosleep, sys_clock_nanosleep, 5224, 4) +#endif +#ifndef OVERRIDE_TABLE_64_sys_utimes +TRACE_SYSCALL_TABLE(sys_utimes, sys_utimes, 5226, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_waitid +TRACE_SYSCALL_TABLE(sys_waitid, sys_waitid, 5237, 5) +#endif +#ifndef OVERRIDE_TABLE_64_sys_futimesat +TRACE_SYSCALL_TABLE(sys_futimesat, sys_futimesat, 5251, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_pselect6 +TRACE_SYSCALL_TABLE(sys_pselect6, sys_pselect6, 5260, 6) +#endif +#ifndef OVERRIDE_TABLE_64_sys_ppoll +TRACE_SYSCALL_TABLE(sys_ppoll, sys_ppoll, 5261, 5) +#endif +#ifndef OVERRIDE_TABLE_64_sys_vmsplice +TRACE_SYSCALL_TABLE(sys_vmsplice, sys_vmsplice, 5266, 4) +#endif +#ifndef OVERRIDE_TABLE_64_sys_set_robust_list +TRACE_SYSCALL_TABLE(sys_set_robust_list, sys_set_robust_list, 5268, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_get_robust_list +TRACE_SYSCALL_TABLE(sys_get_robust_list, sys_get_robust_list, 5269, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_epoll_pwait +TRACE_SYSCALL_TABLE(sys_epoll_pwait, sys_epoll_pwait, 5272, 6) +#endif +#ifndef OVERRIDE_TABLE_64_sys_utimensat +TRACE_SYSCALL_TABLE(sys_utimensat, sys_utimensat, 5275, 4) +#endif +#ifndef OVERRIDE_TABLE_64_sys_signalfd +TRACE_SYSCALL_TABLE(sys_signalfd, sys_signalfd, 5276, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_timerfd_gettime +TRACE_SYSCALL_TABLE(sys_timerfd_gettime, sys_timerfd_gettime, 5281, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_timerfd_settime +TRACE_SYSCALL_TABLE(sys_timerfd_settime, sys_timerfd_settime, 5282, 4) +#endif +#ifndef OVERRIDE_TABLE_64_sys_rt_tgsigqueueinfo +TRACE_SYSCALL_TABLE(sys_rt_tgsigqueueinfo, sys_rt_tgsigqueueinfo, 5291, 4) +#endif +#ifndef OVERRIDE_TABLE_64_sys_recvmmsg +TRACE_SYSCALL_TABLE(sys_recvmmsg, sys_recvmmsg, 5294, 5) +#endif +#ifndef OVERRIDE_TABLE_64_sys_clock_adjtime +TRACE_SYSCALL_TABLE(sys_clock_adjtime, sys_clock_adjtime, 5300, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_sendmmsg +TRACE_SYSCALL_TABLE(sys_sendmmsg, sys_sendmmsg, 5302, 4) +#endif +#ifndef OVERRIDE_TABLE_64_sys_process_vm_readv +TRACE_SYSCALL_TABLE(sys_process_vm_readv, sys_process_vm_readv, 5304, 6) +#endif +#ifndef OVERRIDE_TABLE_64_sys_process_vm_writev +TRACE_SYSCALL_TABLE(sys_process_vm_writev, sys_process_vm_writev, 5305, 6) +#endif +#ifndef OVERRIDE_TABLE_64_sys_read +TRACE_SYSCALL_TABLE(sys_read, sys_read, 6000, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_write +TRACE_SYSCALL_TABLE(sys_write, sys_write, 6001, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_open +TRACE_SYSCALL_TABLE(sys_open, sys_open, 6002, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_newstat +TRACE_SYSCALL_TABLE(sys_newstat, sys_newstat, 6004, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_newfstat +TRACE_SYSCALL_TABLE(sys_newfstat, sys_newfstat, 6005, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_newlstat +TRACE_SYSCALL_TABLE(sys_newlstat, sys_newlstat, 6006, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_poll +TRACE_SYSCALL_TABLE(sys_poll, sys_poll, 6007, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_32_rt_sigaction +TRACE_SYSCALL_TABLE(sys_32_rt_sigaction, sys_32_rt_sigaction, 6013, 4) +#endif +#ifndef OVERRIDE_TABLE_64_sys_32_rt_sigprocmask +TRACE_SYSCALL_TABLE(sys_32_rt_sigprocmask, sys_32_rt_sigprocmask, 6014, 4) +#endif +#ifndef OVERRIDE_TABLE_64_sys_access +TRACE_SYSCALL_TABLE(sys_access, sys_access, 6020, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_mincore +TRACE_SYSCALL_TABLE(sys_mincore, sys_mincore, 6026, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_shmat +TRACE_SYSCALL_TABLE(sys_shmat, sys_shmat, 6029, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_32_sendfile +TRACE_SYSCALL_TABLE(sys_32_sendfile, sys_32_sendfile, 6039, 4) +#endif +#ifndef OVERRIDE_TABLE_64_sys_connect +TRACE_SYSCALL_TABLE(sys_connect, sys_connect, 6041, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_accept +TRACE_SYSCALL_TABLE(sys_accept, sys_accept, 6042, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_sendto +TRACE_SYSCALL_TABLE(sys_sendto, sys_sendto, 6043, 6) +#endif +#ifndef OVERRIDE_TABLE_64_sys_bind +TRACE_SYSCALL_TABLE(sys_bind, sys_bind, 6048, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_getsockname +TRACE_SYSCALL_TABLE(sys_getsockname, sys_getsockname, 6050, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_getpeername +TRACE_SYSCALL_TABLE(sys_getpeername, sys_getpeername, 6051, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_socketpair +TRACE_SYSCALL_TABLE(sys_socketpair, sys_socketpair, 6052, 4) +#endif +#ifndef OVERRIDE_TABLE_64_sys_getsockopt +TRACE_SYSCALL_TABLE(sys_getsockopt, sys_getsockopt, 6054, 5) +#endif +#ifndef OVERRIDE_TABLE_64_sys_newuname +TRACE_SYSCALL_TABLE(sys_newuname, sys_newuname, 6061, 1) +#endif +#ifndef OVERRIDE_TABLE_64_sys_semop +TRACE_SYSCALL_TABLE(sys_semop, sys_semop, 6063, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_shmdt +TRACE_SYSCALL_TABLE(sys_shmdt, sys_shmdt, 6065, 1) +#endif +#ifndef OVERRIDE_TABLE_64_sys_truncate +TRACE_SYSCALL_TABLE(sys_truncate, sys_truncate, 6074, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_getcwd +TRACE_SYSCALL_TABLE(sys_getcwd, sys_getcwd, 6077, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_chdir +TRACE_SYSCALL_TABLE(sys_chdir, sys_chdir, 6078, 1) +#endif +#ifndef OVERRIDE_TABLE_64_sys_rename +TRACE_SYSCALL_TABLE(sys_rename, sys_rename, 6080, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_mkdir +TRACE_SYSCALL_TABLE(sys_mkdir, sys_mkdir, 6081, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_rmdir +TRACE_SYSCALL_TABLE(sys_rmdir, sys_rmdir, 6082, 1) +#endif +#ifndef OVERRIDE_TABLE_64_sys_creat +TRACE_SYSCALL_TABLE(sys_creat, sys_creat, 6083, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_link +TRACE_SYSCALL_TABLE(sys_link, sys_link, 6084, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_unlink +TRACE_SYSCALL_TABLE(sys_unlink, sys_unlink, 6085, 1) +#endif +#ifndef OVERRIDE_TABLE_64_sys_symlink +TRACE_SYSCALL_TABLE(sys_symlink, sys_symlink, 6086, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_readlink +TRACE_SYSCALL_TABLE(sys_readlink, sys_readlink, 6087, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_chmod +TRACE_SYSCALL_TABLE(sys_chmod, sys_chmod, 6088, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_chown +TRACE_SYSCALL_TABLE(sys_chown, sys_chown, 6090, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_lchown +TRACE_SYSCALL_TABLE(sys_lchown, sys_lchown, 6092, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_syslog +TRACE_SYSCALL_TABLE(sys_syslog, sys_syslog, 6101, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_getgroups +TRACE_SYSCALL_TABLE(sys_getgroups, sys_getgroups, 6113, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_setgroups +TRACE_SYSCALL_TABLE(sys_setgroups, sys_setgroups, 6114, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_getresuid +TRACE_SYSCALL_TABLE(sys_getresuid, sys_getresuid, 6116, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_getresgid +TRACE_SYSCALL_TABLE(sys_getresgid, sys_getresgid, 6118, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_32_rt_sigpending +TRACE_SYSCALL_TABLE(sys_32_rt_sigpending, sys_32_rt_sigpending, 6125, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_32_rt_sigqueueinfo +TRACE_SYSCALL_TABLE(sys_32_rt_sigqueueinfo, sys_32_rt_sigqueueinfo, 6127, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_mknod +TRACE_SYSCALL_TABLE(sys_mknod, sys_mknod, 6131, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_sched_setparam +TRACE_SYSCALL_TABLE(sys_sched_setparam, sys_sched_setparam, 6139, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_sched_getparam +TRACE_SYSCALL_TABLE(sys_sched_getparam, sys_sched_getparam, 6140, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_sched_setscheduler +TRACE_SYSCALL_TABLE(sys_sched_setscheduler, sys_sched_setscheduler, 6141, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_32_sched_rr_get_interval +TRACE_SYSCALL_TABLE(sys_32_sched_rr_get_interval, sys_32_sched_rr_get_interval, 6145, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_pivot_root +TRACE_SYSCALL_TABLE(sys_pivot_root, sys_pivot_root, 6151, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_chroot +TRACE_SYSCALL_TABLE(sys_chroot, sys_chroot, 6156, 1) +#endif +#ifndef OVERRIDE_TABLE_64_sys_umount +TRACE_SYSCALL_TABLE(sys_umount, sys_umount, 6161, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_swapon +TRACE_SYSCALL_TABLE(sys_swapon, sys_swapon, 6162, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_swapoff +TRACE_SYSCALL_TABLE(sys_swapoff, sys_swapoff, 6163, 1) +#endif +#ifndef OVERRIDE_TABLE_64_sys_reboot +TRACE_SYSCALL_TABLE(sys_reboot, sys_reboot, 6164, 4) +#endif +#ifndef OVERRIDE_TABLE_64_sys_sethostname +TRACE_SYSCALL_TABLE(sys_sethostname, sys_sethostname, 6165, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_setdomainname +TRACE_SYSCALL_TABLE(sys_setdomainname, sys_setdomainname, 6166, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_init_module +TRACE_SYSCALL_TABLE(sys_init_module, sys_init_module, 6168, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_delete_module +TRACE_SYSCALL_TABLE(sys_delete_module, sys_delete_module, 6169, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_quotactl +TRACE_SYSCALL_TABLE(sys_quotactl, sys_quotactl, 6172, 4) +#endif +#ifndef OVERRIDE_TABLE_64_sys_setxattr +TRACE_SYSCALL_TABLE(sys_setxattr, sys_setxattr, 6180, 5) +#endif +#ifndef OVERRIDE_TABLE_64_sys_lsetxattr +TRACE_SYSCALL_TABLE(sys_lsetxattr, sys_lsetxattr, 6181, 5) +#endif +#ifndef OVERRIDE_TABLE_64_sys_fsetxattr +TRACE_SYSCALL_TABLE(sys_fsetxattr, sys_fsetxattr, 6182, 5) +#endif +#ifndef OVERRIDE_TABLE_64_sys_getxattr +TRACE_SYSCALL_TABLE(sys_getxattr, sys_getxattr, 6183, 4) +#endif +#ifndef OVERRIDE_TABLE_64_sys_lgetxattr +TRACE_SYSCALL_TABLE(sys_lgetxattr, sys_lgetxattr, 6184, 4) +#endif +#ifndef OVERRIDE_TABLE_64_sys_fgetxattr +TRACE_SYSCALL_TABLE(sys_fgetxattr, sys_fgetxattr, 6185, 4) +#endif +#ifndef OVERRIDE_TABLE_64_sys_listxattr +TRACE_SYSCALL_TABLE(sys_listxattr, sys_listxattr, 6186, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_llistxattr +TRACE_SYSCALL_TABLE(sys_llistxattr, sys_llistxattr, 6187, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_flistxattr +TRACE_SYSCALL_TABLE(sys_flistxattr, sys_flistxattr, 6188, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_removexattr +TRACE_SYSCALL_TABLE(sys_removexattr, sys_removexattr, 6189, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_lremovexattr +TRACE_SYSCALL_TABLE(sys_lremovexattr, sys_lremovexattr, 6190, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_fremovexattr +TRACE_SYSCALL_TABLE(sys_fremovexattr, sys_fremovexattr, 6191, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_32_futex +TRACE_SYSCALL_TABLE(sys_32_futex, sys_32_futex, 6194, 6) +#endif +#ifndef OVERRIDE_TABLE_64_sys_cachectl +TRACE_SYSCALL_TABLE(sys_cachectl, sys_cachectl, 6198, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_io_cancel +TRACE_SYSCALL_TABLE(sys_io_cancel, sys_io_cancel, 6204, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_epoll_ctl +TRACE_SYSCALL_TABLE(sys_epoll_ctl, sys_epoll_ctl, 6208, 4) +#endif +#ifndef OVERRIDE_TABLE_64_sys_epoll_wait +TRACE_SYSCALL_TABLE(sys_epoll_wait, sys_epoll_wait, 6209, 4) +#endif +#ifndef OVERRIDE_TABLE_64_sys_set_tid_address +TRACE_SYSCALL_TABLE(sys_set_tid_address, sys_set_tid_address, 6213, 1) +#endif +#ifndef OVERRIDE_TABLE_64_sys_sendfile64 +TRACE_SYSCALL_TABLE(sys_sendfile64, sys_sendfile64, 6219, 4) +#endif +#ifndef OVERRIDE_TABLE_64_sys_inotify_add_watch +TRACE_SYSCALL_TABLE(sys_inotify_add_watch, sys_inotify_add_watch, 6248, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_openat +TRACE_SYSCALL_TABLE(sys_openat, sys_openat, 6251, 4) +#endif +#ifndef OVERRIDE_TABLE_64_sys_mkdirat +TRACE_SYSCALL_TABLE(sys_mkdirat, sys_mkdirat, 6252, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_mknodat +TRACE_SYSCALL_TABLE(sys_mknodat, sys_mknodat, 6253, 4) +#endif +#ifndef OVERRIDE_TABLE_64_sys_fchownat +TRACE_SYSCALL_TABLE(sys_fchownat, sys_fchownat, 6254, 5) +#endif +#ifndef OVERRIDE_TABLE_64_sys_newfstatat +TRACE_SYSCALL_TABLE(sys_newfstatat, sys_newfstatat, 6256, 4) +#endif +#ifndef OVERRIDE_TABLE_64_sys_unlinkat +TRACE_SYSCALL_TABLE(sys_unlinkat, sys_unlinkat, 6257, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_renameat +TRACE_SYSCALL_TABLE(sys_renameat, sys_renameat, 6258, 4) +#endif +#ifndef OVERRIDE_TABLE_64_sys_linkat +TRACE_SYSCALL_TABLE(sys_linkat, sys_linkat, 6259, 5) +#endif +#ifndef OVERRIDE_TABLE_64_sys_symlinkat +TRACE_SYSCALL_TABLE(sys_symlinkat, sys_symlinkat, 6260, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_readlinkat +TRACE_SYSCALL_TABLE(sys_readlinkat, sys_readlinkat, 6261, 4) +#endif +#ifndef OVERRIDE_TABLE_64_sys_fchmodat +TRACE_SYSCALL_TABLE(sys_fchmodat, sys_fchmodat, 6262, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_faccessat +TRACE_SYSCALL_TABLE(sys_faccessat, sys_faccessat, 6263, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_splice +TRACE_SYSCALL_TABLE(sys_splice, sys_splice, 6267, 6) +#endif +#ifndef OVERRIDE_TABLE_64_sys_getcpu +TRACE_SYSCALL_TABLE(sys_getcpu, sys_getcpu, 6275, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_signalfd4 +TRACE_SYSCALL_TABLE(sys_signalfd4, sys_signalfd4, 6287, 4) +#endif +#ifndef OVERRIDE_TABLE_64_sys_pipe2 +TRACE_SYSCALL_TABLE(sys_pipe2, sys_pipe2, 6291, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_preadv +TRACE_SYSCALL_TABLE(sys_preadv, sys_preadv, 6293, 5) +#endif +#ifndef OVERRIDE_TABLE_64_sys_pwritev +TRACE_SYSCALL_TABLE(sys_pwritev, sys_pwritev, 6294, 5) +#endif +#ifndef OVERRIDE_TABLE_64_sys_accept4 +TRACE_SYSCALL_TABLE(sys_accept4, sys_accept4, 6297, 4) +#endif +#ifndef OVERRIDE_TABLE_64_sys_getdents64 +TRACE_SYSCALL_TABLE(sys_getdents64, sys_getdents64, 6299, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_prlimit64 +TRACE_SYSCALL_TABLE(sys_prlimit64, sys_prlimit64, 6302, 4) +#endif + +#endif /* CREATE_SYSCALL_TABLE */ --- linux-3.11.0.orig/ubuntu/lttng-modules/instrumentation/syscalls/headers/arm-32-syscalls-3.4.25_integers_override.h +++ linux-3.11.0/ubuntu/lttng-modules/instrumentation/syscalls/headers/arm-32-syscalls-3.4.25_integers_override.h @@ -0,0 +1,52 @@ + + +#define OVERRIDE_TABLE_32_sys_arm_fadvise64_64 +#define OVERRIDE_TABLE_32_sys_sync_file_range2 + +#ifndef CREATE_SYSCALL_TABLE + +SC_TRACE_EVENT(sys_arm_fadvise64_64, + TP_PROTO(int fd, int advice, loff_t offset, loff_t len), + TP_ARGS(fd, advice, offset, len), + TP_STRUCT__entry( + __field_hex(int, fd) + __field_hex(int, advice) + __field_hex(loff_t, offset) + __field_hex(loff_t, len)), + TP_fast_assign( + tp_assign(fd, fd) + tp_assign(advice, advice) + tp_assign(offset, offset) + tp_assign(len, len)), + TP_printk() +) + +SC_TRACE_EVENT(sys_sync_file_range2, + TP_PROTO(int fd, loff_t offset, loff_t nbytes, unsigned int flags), + TP_ARGS(fd, offset, nbytes, flags), + TP_STRUCT__entry( + __field_hex(int, fd) + __field_hex(loff_t, offset) + __field_hex(loff_t, nbytes) + __field_hex(unsigned int, flags)), + TP_fast_assign( + tp_assign(fd, fd) + tp_assign(offset, offset) + tp_assign(nbytes, nbytes) + tp_assign(flags, flags)), + TP_printk() +) + +#else /* CREATE_SYSCALL_TABLE */ + +#define OVVERRIDE_TABLE_32_sys_mmap +TRACE_SYSCALL_TABLE(sys_mmap, sys_mmap, 90, 6) + +#define OVERRIDE_TABLE_32_sys_arm_fadvise64_64 +TRACE_SYSCALL_TABLE(sys_arm_fadvise64_64, sys_arm_fadvise64_64, 270, 4) +#define OVERRIDE_TABLE_32_sys_sync_file_range2 +TRACE_SYSCALL_TABLE(sys_sync_file_range2, sys_sync_file_range2, 341, 4) + +#endif /* CREATE_SYSCALL_TABLE */ + + --- linux-3.11.0.orig/ubuntu/lttng-modules/instrumentation/syscalls/headers/arm-32-syscalls-3.4.25_integers.h +++ linux-3.11.0/ubuntu/lttng-modules/instrumentation/syscalls/headers/arm-32-syscalls-3.4.25_integers.h @@ -0,0 +1,1181 @@ +/* THIS FILE IS AUTO-GENERATED. DO NOT EDIT */ +#ifndef CREATE_SYSCALL_TABLE + +#if !defined(_TRACE_SYSCALLS_INTEGERS_H) || defined(TRACE_HEADER_MULTI_READ) +#define _TRACE_SYSCALLS_INTEGERS_H + +#include +#include +#include "arm-32-syscalls-3.4.25_integers_override.h" +#include "syscalls_integers_override.h" + +SC_DECLARE_EVENT_CLASS_NOARGS(syscalls_noargs, + TP_STRUCT__entry(), + TP_fast_assign(), + TP_printk() +) +#ifndef OVERRIDE_32_sys_restart_syscall +SC_DEFINE_EVENT_NOARGS(syscalls_noargs, sys_restart_syscall) +#endif +#ifndef OVERRIDE_32_sys_getpid +SC_DEFINE_EVENT_NOARGS(syscalls_noargs, sys_getpid) +#endif +#ifndef OVERRIDE_32_sys_getuid16 +SC_DEFINE_EVENT_NOARGS(syscalls_noargs, sys_getuid16) +#endif +#ifndef OVERRIDE_32_sys_pause +SC_DEFINE_EVENT_NOARGS(syscalls_noargs, sys_pause) +#endif +#ifndef OVERRIDE_32_sys_sync +SC_DEFINE_EVENT_NOARGS(syscalls_noargs, sys_sync) +#endif +#ifndef OVERRIDE_32_sys_getgid16 +SC_DEFINE_EVENT_NOARGS(syscalls_noargs, sys_getgid16) +#endif +#ifndef OVERRIDE_32_sys_geteuid16 +SC_DEFINE_EVENT_NOARGS(syscalls_noargs, sys_geteuid16) +#endif +#ifndef OVERRIDE_32_sys_getegid16 +SC_DEFINE_EVENT_NOARGS(syscalls_noargs, sys_getegid16) +#endif +#ifndef OVERRIDE_32_sys_getppid +SC_DEFINE_EVENT_NOARGS(syscalls_noargs, sys_getppid) +#endif +#ifndef OVERRIDE_32_sys_getpgrp +SC_DEFINE_EVENT_NOARGS(syscalls_noargs, sys_getpgrp) +#endif +#ifndef OVERRIDE_32_sys_setsid +SC_DEFINE_EVENT_NOARGS(syscalls_noargs, sys_setsid) +#endif +#ifndef OVERRIDE_32_sys_vhangup +SC_DEFINE_EVENT_NOARGS(syscalls_noargs, sys_vhangup) +#endif +#ifndef OVERRIDE_32_sys_munlockall +SC_DEFINE_EVENT_NOARGS(syscalls_noargs, sys_munlockall) +#endif +#ifndef OVERRIDE_32_sys_sched_yield +SC_DEFINE_EVENT_NOARGS(syscalls_noargs, sys_sched_yield) +#endif +#ifndef OVERRIDE_32_sys_getuid +SC_DEFINE_EVENT_NOARGS(syscalls_noargs, sys_getuid) +#endif +#ifndef OVERRIDE_32_sys_getgid +SC_DEFINE_EVENT_NOARGS(syscalls_noargs, sys_getgid) +#endif +#ifndef OVERRIDE_32_sys_geteuid +SC_DEFINE_EVENT_NOARGS(syscalls_noargs, sys_geteuid) +#endif +#ifndef OVERRIDE_32_sys_getegid +SC_DEFINE_EVENT_NOARGS(syscalls_noargs, sys_getegid) +#endif +#ifndef OVERRIDE_32_sys_gettid +SC_DEFINE_EVENT_NOARGS(syscalls_noargs, sys_gettid) +#endif +#ifndef OVERRIDE_32_sys_inotify_init +SC_DEFINE_EVENT_NOARGS(syscalls_noargs, sys_inotify_init) +#endif +#ifndef OVERRIDE_32_sys_exit +SC_TRACE_EVENT(sys_exit, + TP_PROTO(int error_code), + TP_ARGS(error_code), + TP_STRUCT__entry(__field(int, error_code)), + TP_fast_assign(tp_assign(error_code, error_code)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_close +SC_TRACE_EVENT(sys_close, + TP_PROTO(unsigned int fd), + TP_ARGS(fd), + TP_STRUCT__entry(__field(unsigned int, fd)), + TP_fast_assign(tp_assign(fd, fd)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_setuid16 +SC_TRACE_EVENT(sys_setuid16, + TP_PROTO(old_uid_t uid), + TP_ARGS(uid), + TP_STRUCT__entry(__field(old_uid_t, uid)), + TP_fast_assign(tp_assign(uid, uid)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_nice +SC_TRACE_EVENT(sys_nice, + TP_PROTO(int increment), + TP_ARGS(increment), + TP_STRUCT__entry(__field(int, increment)), + TP_fast_assign(tp_assign(increment, increment)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_dup +SC_TRACE_EVENT(sys_dup, + TP_PROTO(unsigned int fildes), + TP_ARGS(fildes), + TP_STRUCT__entry(__field(unsigned int, fildes)), + TP_fast_assign(tp_assign(fildes, fildes)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_brk +SC_TRACE_EVENT(sys_brk, + TP_PROTO(unsigned long brk), + TP_ARGS(brk), + TP_STRUCT__entry(__field(unsigned long, brk)), + TP_fast_assign(tp_assign(brk, brk)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_setgid16 +SC_TRACE_EVENT(sys_setgid16, + TP_PROTO(old_gid_t gid), + TP_ARGS(gid), + TP_STRUCT__entry(__field(old_gid_t, gid)), + TP_fast_assign(tp_assign(gid, gid)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_umask +SC_TRACE_EVENT(sys_umask, + TP_PROTO(int mask), + TP_ARGS(mask), + TP_STRUCT__entry(__field(int, mask)), + TP_fast_assign(tp_assign(mask, mask)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_fsync +SC_TRACE_EVENT(sys_fsync, + TP_PROTO(unsigned int fd), + TP_ARGS(fd), + TP_STRUCT__entry(__field(unsigned int, fd)), + TP_fast_assign(tp_assign(fd, fd)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_getpgid +SC_TRACE_EVENT(sys_getpgid, + TP_PROTO(pid_t pid), + TP_ARGS(pid), + TP_STRUCT__entry(__field(pid_t, pid)), + TP_fast_assign(tp_assign(pid, pid)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_fchdir +SC_TRACE_EVENT(sys_fchdir, + TP_PROTO(unsigned int fd), + TP_ARGS(fd), + TP_STRUCT__entry(__field(unsigned int, fd)), + TP_fast_assign(tp_assign(fd, fd)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_personality +SC_TRACE_EVENT(sys_personality, + TP_PROTO(unsigned int personality), + TP_ARGS(personality), + TP_STRUCT__entry(__field(unsigned int, personality)), + TP_fast_assign(tp_assign(personality, personality)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_setfsuid16 +SC_TRACE_EVENT(sys_setfsuid16, + TP_PROTO(old_uid_t uid), + TP_ARGS(uid), + TP_STRUCT__entry(__field(old_uid_t, uid)), + TP_fast_assign(tp_assign(uid, uid)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_setfsgid16 +SC_TRACE_EVENT(sys_setfsgid16, + TP_PROTO(old_gid_t gid), + TP_ARGS(gid), + TP_STRUCT__entry(__field(old_gid_t, gid)), + TP_fast_assign(tp_assign(gid, gid)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_getsid +SC_TRACE_EVENT(sys_getsid, + TP_PROTO(pid_t pid), + TP_ARGS(pid), + TP_STRUCT__entry(__field(pid_t, pid)), + TP_fast_assign(tp_assign(pid, pid)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_fdatasync +SC_TRACE_EVENT(sys_fdatasync, + TP_PROTO(unsigned int fd), + TP_ARGS(fd), + TP_STRUCT__entry(__field(unsigned int, fd)), + TP_fast_assign(tp_assign(fd, fd)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_mlockall +SC_TRACE_EVENT(sys_mlockall, + TP_PROTO(int flags), + TP_ARGS(flags), + TP_STRUCT__entry(__field(int, flags)), + TP_fast_assign(tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_sched_getscheduler +SC_TRACE_EVENT(sys_sched_getscheduler, + TP_PROTO(pid_t pid), + TP_ARGS(pid), + TP_STRUCT__entry(__field(pid_t, pid)), + TP_fast_assign(tp_assign(pid, pid)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_sched_get_priority_max +SC_TRACE_EVENT(sys_sched_get_priority_max, + TP_PROTO(int policy), + TP_ARGS(policy), + TP_STRUCT__entry(__field(int, policy)), + TP_fast_assign(tp_assign(policy, policy)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_sched_get_priority_min +SC_TRACE_EVENT(sys_sched_get_priority_min, + TP_PROTO(int policy), + TP_ARGS(policy), + TP_STRUCT__entry(__field(int, policy)), + TP_fast_assign(tp_assign(policy, policy)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_setuid +SC_TRACE_EVENT(sys_setuid, + TP_PROTO(uid_t uid), + TP_ARGS(uid), + TP_STRUCT__entry(__field(uid_t, uid)), + TP_fast_assign(tp_assign(uid, uid)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_setgid +SC_TRACE_EVENT(sys_setgid, + TP_PROTO(gid_t gid), + TP_ARGS(gid), + TP_STRUCT__entry(__field(gid_t, gid)), + TP_fast_assign(tp_assign(gid, gid)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_setfsuid +SC_TRACE_EVENT(sys_setfsuid, + TP_PROTO(uid_t uid), + TP_ARGS(uid), + TP_STRUCT__entry(__field(uid_t, uid)), + TP_fast_assign(tp_assign(uid, uid)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_setfsgid +SC_TRACE_EVENT(sys_setfsgid, + TP_PROTO(gid_t gid), + TP_ARGS(gid), + TP_STRUCT__entry(__field(gid_t, gid)), + TP_fast_assign(tp_assign(gid, gid)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_io_destroy +SC_TRACE_EVENT(sys_io_destroy, + TP_PROTO(aio_context_t ctx), + TP_ARGS(ctx), + TP_STRUCT__entry(__field(aio_context_t, ctx)), + TP_fast_assign(tp_assign(ctx, ctx)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_exit_group +SC_TRACE_EVENT(sys_exit_group, + TP_PROTO(int error_code), + TP_ARGS(error_code), + TP_STRUCT__entry(__field(int, error_code)), + TP_fast_assign(tp_assign(error_code, error_code)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_epoll_create +SC_TRACE_EVENT(sys_epoll_create, + TP_PROTO(int size), + TP_ARGS(size), + TP_STRUCT__entry(__field(int, size)), + TP_fast_assign(tp_assign(size, size)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_timer_getoverrun +SC_TRACE_EVENT(sys_timer_getoverrun, + TP_PROTO(timer_t timer_id), + TP_ARGS(timer_id), + TP_STRUCT__entry(__field(timer_t, timer_id)), + TP_fast_assign(tp_assign(timer_id, timer_id)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_timer_delete +SC_TRACE_EVENT(sys_timer_delete, + TP_PROTO(timer_t timer_id), + TP_ARGS(timer_id), + TP_STRUCT__entry(__field(timer_t, timer_id)), + TP_fast_assign(tp_assign(timer_id, timer_id)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_unshare +SC_TRACE_EVENT(sys_unshare, + TP_PROTO(unsigned long unshare_flags), + TP_ARGS(unshare_flags), + TP_STRUCT__entry(__field(unsigned long, unshare_flags)), + TP_fast_assign(tp_assign(unshare_flags, unshare_flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_eventfd +SC_TRACE_EVENT(sys_eventfd, + TP_PROTO(unsigned int count), + TP_ARGS(count), + TP_STRUCT__entry(__field(unsigned int, count)), + TP_fast_assign(tp_assign(count, count)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_epoll_create1 +SC_TRACE_EVENT(sys_epoll_create1, + TP_PROTO(int flags), + TP_ARGS(flags), + TP_STRUCT__entry(__field(int, flags)), + TP_fast_assign(tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_inotify_init1 +SC_TRACE_EVENT(sys_inotify_init1, + TP_PROTO(int flags), + TP_ARGS(flags), + TP_STRUCT__entry(__field(int, flags)), + TP_fast_assign(tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_syncfs +SC_TRACE_EVENT(sys_syncfs, + TP_PROTO(int fd), + TP_ARGS(fd), + TP_STRUCT__entry(__field(int, fd)), + TP_fast_assign(tp_assign(fd, fd)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_kill +SC_TRACE_EVENT(sys_kill, + TP_PROTO(pid_t pid, int sig), + TP_ARGS(pid, sig), + TP_STRUCT__entry(__field(pid_t, pid) __field(int, sig)), + TP_fast_assign(tp_assign(pid, pid) tp_assign(sig, sig)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_setpgid +SC_TRACE_EVENT(sys_setpgid, + TP_PROTO(pid_t pid, pid_t pgid), + TP_ARGS(pid, pgid), + TP_STRUCT__entry(__field(pid_t, pid) __field(pid_t, pgid)), + TP_fast_assign(tp_assign(pid, pid) tp_assign(pgid, pgid)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_dup2 +SC_TRACE_EVENT(sys_dup2, + TP_PROTO(unsigned int oldfd, unsigned int newfd), + TP_ARGS(oldfd, newfd), + TP_STRUCT__entry(__field(unsigned int, oldfd) __field(unsigned int, newfd)), + TP_fast_assign(tp_assign(oldfd, oldfd) tp_assign(newfd, newfd)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_setreuid16 +SC_TRACE_EVENT(sys_setreuid16, + TP_PROTO(old_uid_t ruid, old_uid_t euid), + TP_ARGS(ruid, euid), + TP_STRUCT__entry(__field(old_uid_t, ruid) __field(old_uid_t, euid)), + TP_fast_assign(tp_assign(ruid, ruid) tp_assign(euid, euid)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_setregid16 +SC_TRACE_EVENT(sys_setregid16, + TP_PROTO(old_gid_t rgid, old_gid_t egid), + TP_ARGS(rgid, egid), + TP_STRUCT__entry(__field(old_gid_t, rgid) __field(old_gid_t, egid)), + TP_fast_assign(tp_assign(rgid, rgid) tp_assign(egid, egid)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_munmap +SC_TRACE_EVENT(sys_munmap, + TP_PROTO(unsigned long addr, size_t len), + TP_ARGS(addr, len), + TP_STRUCT__entry(__field_hex(unsigned long, addr) __field(size_t, len)), + TP_fast_assign(tp_assign(addr, addr) tp_assign(len, len)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_ftruncate +SC_TRACE_EVENT(sys_ftruncate, + TP_PROTO(unsigned int fd, unsigned long length), + TP_ARGS(fd, length), + TP_STRUCT__entry(__field(unsigned int, fd) __field(unsigned long, length)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(length, length)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_fchmod +SC_TRACE_EVENT(sys_fchmod, + TP_PROTO(unsigned int fd, umode_t mode), + TP_ARGS(fd, mode), + TP_STRUCT__entry(__field(unsigned int, fd) __field(umode_t, mode)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(mode, mode)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_getpriority +SC_TRACE_EVENT(sys_getpriority, + TP_PROTO(int which, int who), + TP_ARGS(which, who), + TP_STRUCT__entry(__field(int, which) __field(int, who)), + TP_fast_assign(tp_assign(which, which) tp_assign(who, who)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_bdflush +SC_TRACE_EVENT(sys_bdflush, + TP_PROTO(int func, long data), + TP_ARGS(func, data), + TP_STRUCT__entry(__field(int, func) __field(long, data)), + TP_fast_assign(tp_assign(func, func) tp_assign(data, data)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_flock +SC_TRACE_EVENT(sys_flock, + TP_PROTO(unsigned int fd, unsigned int cmd), + TP_ARGS(fd, cmd), + TP_STRUCT__entry(__field(unsigned int, fd) __field(unsigned int, cmd)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(cmd, cmd)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_mlock +SC_TRACE_EVENT(sys_mlock, + TP_PROTO(unsigned long start, size_t len), + TP_ARGS(start, len), + TP_STRUCT__entry(__field(unsigned long, start) __field(size_t, len)), + TP_fast_assign(tp_assign(start, start) tp_assign(len, len)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_munlock +SC_TRACE_EVENT(sys_munlock, + TP_PROTO(unsigned long start, size_t len), + TP_ARGS(start, len), + TP_STRUCT__entry(__field(unsigned long, start) __field(size_t, len)), + TP_fast_assign(tp_assign(start, start) tp_assign(len, len)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_setreuid +SC_TRACE_EVENT(sys_setreuid, + TP_PROTO(uid_t ruid, uid_t euid), + TP_ARGS(ruid, euid), + TP_STRUCT__entry(__field(uid_t, ruid) __field(uid_t, euid)), + TP_fast_assign(tp_assign(ruid, ruid) tp_assign(euid, euid)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_setregid +SC_TRACE_EVENT(sys_setregid, + TP_PROTO(gid_t rgid, gid_t egid), + TP_ARGS(rgid, egid), + TP_STRUCT__entry(__field(gid_t, rgid) __field(gid_t, egid)), + TP_fast_assign(tp_assign(rgid, rgid) tp_assign(egid, egid)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_tkill +SC_TRACE_EVENT(sys_tkill, + TP_PROTO(pid_t pid, int sig), + TP_ARGS(pid, sig), + TP_STRUCT__entry(__field(pid_t, pid) __field(int, sig)), + TP_fast_assign(tp_assign(pid, pid) tp_assign(sig, sig)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_listen +SC_TRACE_EVENT(sys_listen, + TP_PROTO(int fd, int backlog), + TP_ARGS(fd, backlog), + TP_STRUCT__entry(__field(int, fd) __field(int, backlog)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(backlog, backlog)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_shutdown +SC_TRACE_EVENT(sys_shutdown, + TP_PROTO(int fd, int how), + TP_ARGS(fd, how), + TP_STRUCT__entry(__field(int, fd) __field(int, how)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(how, how)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_msgget +SC_TRACE_EVENT(sys_msgget, + TP_PROTO(key_t key, int msgflg), + TP_ARGS(key, msgflg), + TP_STRUCT__entry(__field(key_t, key) __field(int, msgflg)), + TP_fast_assign(tp_assign(key, key) tp_assign(msgflg, msgflg)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_ioprio_get +SC_TRACE_EVENT(sys_ioprio_get, + TP_PROTO(int which, int who), + TP_ARGS(which, who), + TP_STRUCT__entry(__field(int, which) __field(int, who)), + TP_fast_assign(tp_assign(which, which) tp_assign(who, who)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_inotify_rm_watch +SC_TRACE_EVENT(sys_inotify_rm_watch, + TP_PROTO(int fd, __s32 wd), + TP_ARGS(fd, wd), + TP_STRUCT__entry(__field(int, fd) __field(__s32, wd)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(wd, wd)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_timerfd_create +SC_TRACE_EVENT(sys_timerfd_create, + TP_PROTO(int clockid, int flags), + TP_ARGS(clockid, flags), + TP_STRUCT__entry(__field(int, clockid) __field(int, flags)), + TP_fast_assign(tp_assign(clockid, clockid) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_eventfd2 +SC_TRACE_EVENT(sys_eventfd2, + TP_PROTO(unsigned int count, int flags), + TP_ARGS(count, flags), + TP_STRUCT__entry(__field(unsigned int, count) __field(int, flags)), + TP_fast_assign(tp_assign(count, count) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_fanotify_init +SC_TRACE_EVENT(sys_fanotify_init, + TP_PROTO(unsigned int flags, unsigned int event_f_flags), + TP_ARGS(flags, event_f_flags), + TP_STRUCT__entry(__field(unsigned int, flags) __field(unsigned int, event_f_flags)), + TP_fast_assign(tp_assign(flags, flags) tp_assign(event_f_flags, event_f_flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_setns +SC_TRACE_EVENT(sys_setns, + TP_PROTO(int fd, int nstype), + TP_ARGS(fd, nstype), + TP_STRUCT__entry(__field(int, fd) __field(int, nstype)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(nstype, nstype)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_lseek +SC_TRACE_EVENT(sys_lseek, + TP_PROTO(unsigned int fd, off_t offset, unsigned int origin), + TP_ARGS(fd, offset, origin), + TP_STRUCT__entry(__field(unsigned int, fd) __field(off_t, offset) __field(unsigned int, origin)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(offset, offset) tp_assign(origin, origin)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_ioctl +SC_TRACE_EVENT(sys_ioctl, + TP_PROTO(unsigned int fd, unsigned int cmd, unsigned long arg), + TP_ARGS(fd, cmd, arg), + TP_STRUCT__entry(__field(unsigned int, fd) __field(unsigned int, cmd) __field(unsigned long, arg)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(cmd, cmd) tp_assign(arg, arg)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_fcntl +SC_TRACE_EVENT(sys_fcntl, + TP_PROTO(unsigned int fd, unsigned int cmd, unsigned long arg), + TP_ARGS(fd, cmd, arg), + TP_STRUCT__entry(__field(unsigned int, fd) __field(unsigned int, cmd) __field(unsigned long, arg)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(cmd, cmd) tp_assign(arg, arg)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_fchown16 +SC_TRACE_EVENT(sys_fchown16, + TP_PROTO(unsigned int fd, old_uid_t user, old_gid_t group), + TP_ARGS(fd, user, group), + TP_STRUCT__entry(__field(unsigned int, fd) __field(old_uid_t, user) __field(old_gid_t, group)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(user, user) tp_assign(group, group)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_setpriority +SC_TRACE_EVENT(sys_setpriority, + TP_PROTO(int which, int who, int niceval), + TP_ARGS(which, who, niceval), + TP_STRUCT__entry(__field(int, which) __field(int, who) __field(int, niceval)), + TP_fast_assign(tp_assign(which, which) tp_assign(who, who) tp_assign(niceval, niceval)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_mprotect +SC_TRACE_EVENT(sys_mprotect, + TP_PROTO(unsigned long start, size_t len, unsigned long prot), + TP_ARGS(start, len, prot), + TP_STRUCT__entry(__field(unsigned long, start) __field(size_t, len) __field(unsigned long, prot)), + TP_fast_assign(tp_assign(start, start) tp_assign(len, len) tp_assign(prot, prot)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_sysfs +SC_TRACE_EVENT(sys_sysfs, + TP_PROTO(int option, unsigned long arg1, unsigned long arg2), + TP_ARGS(option, arg1, arg2), + TP_STRUCT__entry(__field(int, option) __field(unsigned long, arg1) __field(unsigned long, arg2)), + TP_fast_assign(tp_assign(option, option) tp_assign(arg1, arg1) tp_assign(arg2, arg2)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_msync +SC_TRACE_EVENT(sys_msync, + TP_PROTO(unsigned long start, size_t len, int flags), + TP_ARGS(start, len, flags), + TP_STRUCT__entry(__field(unsigned long, start) __field(size_t, len) __field(int, flags)), + TP_fast_assign(tp_assign(start, start) tp_assign(len, len) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_setresuid16 +SC_TRACE_EVENT(sys_setresuid16, + TP_PROTO(old_uid_t ruid, old_uid_t euid, old_uid_t suid), + TP_ARGS(ruid, euid, suid), + TP_STRUCT__entry(__field(old_uid_t, ruid) __field(old_uid_t, euid) __field(old_uid_t, suid)), + TP_fast_assign(tp_assign(ruid, ruid) tp_assign(euid, euid) tp_assign(suid, suid)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_setresgid16 +SC_TRACE_EVENT(sys_setresgid16, + TP_PROTO(old_gid_t rgid, old_gid_t egid, old_gid_t sgid), + TP_ARGS(rgid, egid, sgid), + TP_STRUCT__entry(__field(old_gid_t, rgid) __field(old_gid_t, egid) __field(old_gid_t, sgid)), + TP_fast_assign(tp_assign(rgid, rgid) tp_assign(egid, egid) tp_assign(sgid, sgid)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_fchown +SC_TRACE_EVENT(sys_fchown, + TP_PROTO(unsigned int fd, uid_t user, gid_t group), + TP_ARGS(fd, user, group), + TP_STRUCT__entry(__field(unsigned int, fd) __field(uid_t, user) __field(gid_t, group)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(user, user) tp_assign(group, group)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_setresuid +SC_TRACE_EVENT(sys_setresuid, + TP_PROTO(uid_t ruid, uid_t euid, uid_t suid), + TP_ARGS(ruid, euid, suid), + TP_STRUCT__entry(__field(uid_t, ruid) __field(uid_t, euid) __field(uid_t, suid)), + TP_fast_assign(tp_assign(ruid, ruid) tp_assign(euid, euid) tp_assign(suid, suid)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_setresgid +SC_TRACE_EVENT(sys_setresgid, + TP_PROTO(gid_t rgid, gid_t egid, gid_t sgid), + TP_ARGS(rgid, egid, sgid), + TP_STRUCT__entry(__field(gid_t, rgid) __field(gid_t, egid) __field(gid_t, sgid)), + TP_fast_assign(tp_assign(rgid, rgid) tp_assign(egid, egid) tp_assign(sgid, sgid)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_madvise +SC_TRACE_EVENT(sys_madvise, + TP_PROTO(unsigned long start, size_t len_in, int behavior), + TP_ARGS(start, len_in, behavior), + TP_STRUCT__entry(__field(unsigned long, start) __field(size_t, len_in) __field(int, behavior)), + TP_fast_assign(tp_assign(start, start) tp_assign(len_in, len_in) tp_assign(behavior, behavior)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_fcntl64 +SC_TRACE_EVENT(sys_fcntl64, + TP_PROTO(unsigned int fd, unsigned int cmd, unsigned long arg), + TP_ARGS(fd, cmd, arg), + TP_STRUCT__entry(__field(unsigned int, fd) __field(unsigned int, cmd) __field(unsigned long, arg)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(cmd, cmd) tp_assign(arg, arg)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_tgkill +SC_TRACE_EVENT(sys_tgkill, + TP_PROTO(pid_t tgid, pid_t pid, int sig), + TP_ARGS(tgid, pid, sig), + TP_STRUCT__entry(__field(pid_t, tgid) __field(pid_t, pid) __field(int, sig)), + TP_fast_assign(tp_assign(tgid, tgid) tp_assign(pid, pid) tp_assign(sig, sig)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_socket +SC_TRACE_EVENT(sys_socket, + TP_PROTO(int family, int type, int protocol), + TP_ARGS(family, type, protocol), + TP_STRUCT__entry(__field(int, family) __field(int, type) __field(int, protocol)), + TP_fast_assign(tp_assign(family, family) tp_assign(type, type) tp_assign(protocol, protocol)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_semget +SC_TRACE_EVENT(sys_semget, + TP_PROTO(key_t key, int nsems, int semflg), + TP_ARGS(key, nsems, semflg), + TP_STRUCT__entry(__field(key_t, key) __field(int, nsems) __field(int, semflg)), + TP_fast_assign(tp_assign(key, key) tp_assign(nsems, nsems) tp_assign(semflg, semflg)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_shmget +SC_TRACE_EVENT(sys_shmget, + TP_PROTO(key_t key, size_t size, int shmflg), + TP_ARGS(key, size, shmflg), + TP_STRUCT__entry(__field(key_t, key) __field(size_t, size) __field(int, shmflg)), + TP_fast_assign(tp_assign(key, key) tp_assign(size, size) tp_assign(shmflg, shmflg)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_ioprio_set +SC_TRACE_EVENT(sys_ioprio_set, + TP_PROTO(int which, int who, int ioprio), + TP_ARGS(which, who, ioprio), + TP_STRUCT__entry(__field(int, which) __field(int, who) __field(int, ioprio)), + TP_fast_assign(tp_assign(which, which) tp_assign(who, who) tp_assign(ioprio, ioprio)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_dup3 +SC_TRACE_EVENT(sys_dup3, + TP_PROTO(unsigned int oldfd, unsigned int newfd, int flags), + TP_ARGS(oldfd, newfd, flags), + TP_STRUCT__entry(__field(unsigned int, oldfd) __field(unsigned int, newfd) __field(int, flags)), + TP_fast_assign(tp_assign(oldfd, oldfd) tp_assign(newfd, newfd) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_ptrace +SC_TRACE_EVENT(sys_ptrace, + TP_PROTO(long request, long pid, unsigned long addr, unsigned long data), + TP_ARGS(request, pid, addr, data), + TP_STRUCT__entry(__field(long, request) __field(long, pid) __field_hex(unsigned long, addr) __field(unsigned long, data)), + TP_fast_assign(tp_assign(request, request) tp_assign(pid, pid) tp_assign(addr, addr) tp_assign(data, data)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_tee +SC_TRACE_EVENT(sys_tee, + TP_PROTO(int fdin, int fdout, size_t len, unsigned int flags), + TP_ARGS(fdin, fdout, len, flags), + TP_STRUCT__entry(__field(int, fdin) __field(int, fdout) __field(size_t, len) __field(unsigned int, flags)), + TP_fast_assign(tp_assign(fdin, fdin) tp_assign(fdout, fdout) tp_assign(len, len) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_mremap +SC_TRACE_EVENT(sys_mremap, + TP_PROTO(unsigned long addr, unsigned long old_len, unsigned long new_len, unsigned long flags, unsigned long new_addr), + TP_ARGS(addr, old_len, new_len, flags, new_addr), + TP_STRUCT__entry(__field_hex(unsigned long, addr) __field(unsigned long, old_len) __field(unsigned long, new_len) __field(unsigned long, flags) __field_hex(unsigned long, new_addr)), + TP_fast_assign(tp_assign(addr, addr) tp_assign(old_len, old_len) tp_assign(new_len, new_len) tp_assign(flags, flags) tp_assign(new_addr, new_addr)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_prctl +SC_TRACE_EVENT(sys_prctl, + TP_PROTO(int option, unsigned long arg2, unsigned long arg3, unsigned long arg4, unsigned long arg5), + TP_ARGS(option, arg2, arg3, arg4, arg5), + TP_STRUCT__entry(__field(int, option) __field(unsigned long, arg2) __field(unsigned long, arg3) __field(unsigned long, arg4) __field(unsigned long, arg5)), + TP_fast_assign(tp_assign(option, option) tp_assign(arg2, arg2) tp_assign(arg3, arg3) tp_assign(arg4, arg4) tp_assign(arg5, arg5)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_remap_file_pages +SC_TRACE_EVENT(sys_remap_file_pages, + TP_PROTO(unsigned long start, unsigned long size, unsigned long prot, unsigned long pgoff, unsigned long flags), + TP_ARGS(start, size, prot, pgoff, flags), + TP_STRUCT__entry(__field(unsigned long, start) __field(unsigned long, size) __field(unsigned long, prot) __field(unsigned long, pgoff) __field(unsigned long, flags)), + TP_fast_assign(tp_assign(start, start) tp_assign(size, size) tp_assign(prot, prot) tp_assign(pgoff, pgoff) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_keyctl +SC_TRACE_EVENT(sys_keyctl, + TP_PROTO(int option, unsigned long arg2, unsigned long arg3, unsigned long arg4, unsigned long arg5), + TP_ARGS(option, arg2, arg3, arg4, arg5), + TP_STRUCT__entry(__field(int, option) __field(unsigned long, arg2) __field(unsigned long, arg3) __field(unsigned long, arg4) __field(unsigned long, arg5)), + TP_fast_assign(tp_assign(option, option) tp_assign(arg2, arg2) tp_assign(arg3, arg3) tp_assign(arg4, arg4) tp_assign(arg5, arg5)), + TP_printk() +) +#endif + +#endif /* _TRACE_SYSCALLS_INTEGERS_H */ + +/* This part must be outside protection */ +#include "../../../probes/define_trace.h" + +#else /* CREATE_SYSCALL_TABLE */ + +#include "arm-32-syscalls-3.4.25_integers_override.h" +#include "syscalls_integers_override.h" + +#ifndef OVERRIDE_TABLE_32_sys_restart_syscall +TRACE_SYSCALL_TABLE(syscalls_noargs, sys_restart_syscall, 0, 0) +#endif +#ifndef OVERRIDE_TABLE_32_sys_getpid +TRACE_SYSCALL_TABLE(syscalls_noargs, sys_getpid, 20, 0) +#endif +#ifndef OVERRIDE_TABLE_32_sys_getuid16 +TRACE_SYSCALL_TABLE(syscalls_noargs, sys_getuid16, 24, 0) +#endif +#ifndef OVERRIDE_TABLE_32_sys_pause +TRACE_SYSCALL_TABLE(syscalls_noargs, sys_pause, 29, 0) +#endif +#ifndef OVERRIDE_TABLE_32_sys_sync +TRACE_SYSCALL_TABLE(syscalls_noargs, sys_sync, 36, 0) +#endif +#ifndef OVERRIDE_TABLE_32_sys_getgid16 +TRACE_SYSCALL_TABLE(syscalls_noargs, sys_getgid16, 47, 0) +#endif +#ifndef OVERRIDE_TABLE_32_sys_geteuid16 +TRACE_SYSCALL_TABLE(syscalls_noargs, sys_geteuid16, 49, 0) +#endif +#ifndef OVERRIDE_TABLE_32_sys_getegid16 +TRACE_SYSCALL_TABLE(syscalls_noargs, sys_getegid16, 50, 0) +#endif +#ifndef OVERRIDE_TABLE_32_sys_getppid +TRACE_SYSCALL_TABLE(syscalls_noargs, sys_getppid, 64, 0) +#endif +#ifndef OVERRIDE_TABLE_32_sys_getpgrp +TRACE_SYSCALL_TABLE(syscalls_noargs, sys_getpgrp, 65, 0) +#endif +#ifndef OVERRIDE_TABLE_32_sys_setsid +TRACE_SYSCALL_TABLE(syscalls_noargs, sys_setsid, 66, 0) +#endif +#ifndef OVERRIDE_TABLE_32_sys_vhangup +TRACE_SYSCALL_TABLE(syscalls_noargs, sys_vhangup, 111, 0) +#endif +#ifndef OVERRIDE_TABLE_32_sys_munlockall +TRACE_SYSCALL_TABLE(syscalls_noargs, sys_munlockall, 153, 0) +#endif +#ifndef OVERRIDE_TABLE_32_sys_sched_yield +TRACE_SYSCALL_TABLE(syscalls_noargs, sys_sched_yield, 158, 0) +#endif +#ifndef OVERRIDE_TABLE_32_sys_getuid +TRACE_SYSCALL_TABLE(syscalls_noargs, sys_getuid, 199, 0) +#endif +#ifndef OVERRIDE_TABLE_32_sys_getgid +TRACE_SYSCALL_TABLE(syscalls_noargs, sys_getgid, 200, 0) +#endif +#ifndef OVERRIDE_TABLE_32_sys_geteuid +TRACE_SYSCALL_TABLE(syscalls_noargs, sys_geteuid, 201, 0) +#endif +#ifndef OVERRIDE_TABLE_32_sys_getegid +TRACE_SYSCALL_TABLE(syscalls_noargs, sys_getegid, 202, 0) +#endif +#ifndef OVERRIDE_TABLE_32_sys_gettid +TRACE_SYSCALL_TABLE(syscalls_noargs, sys_gettid, 224, 0) +#endif +#ifndef OVERRIDE_TABLE_32_sys_inotify_init +TRACE_SYSCALL_TABLE(syscalls_noargs, sys_inotify_init, 316, 0) +#endif +#ifndef OVERRIDE_TABLE_32_sys_exit +TRACE_SYSCALL_TABLE(sys_exit, sys_exit, 1, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_close +TRACE_SYSCALL_TABLE(sys_close, sys_close, 6, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_lseek +TRACE_SYSCALL_TABLE(sys_lseek, sys_lseek, 19, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_setuid16 +TRACE_SYSCALL_TABLE(sys_setuid16, sys_setuid16, 23, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_ptrace +TRACE_SYSCALL_TABLE(sys_ptrace, sys_ptrace, 26, 4) +#endif +#ifndef OVERRIDE_TABLE_32_sys_nice +TRACE_SYSCALL_TABLE(sys_nice, sys_nice, 34, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_kill +TRACE_SYSCALL_TABLE(sys_kill, sys_kill, 37, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_dup +TRACE_SYSCALL_TABLE(sys_dup, sys_dup, 41, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_brk +TRACE_SYSCALL_TABLE(sys_brk, sys_brk, 45, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_setgid16 +TRACE_SYSCALL_TABLE(sys_setgid16, sys_setgid16, 46, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_ioctl +TRACE_SYSCALL_TABLE(sys_ioctl, sys_ioctl, 54, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_fcntl +TRACE_SYSCALL_TABLE(sys_fcntl, sys_fcntl, 55, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_setpgid +TRACE_SYSCALL_TABLE(sys_setpgid, sys_setpgid, 57, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_umask +TRACE_SYSCALL_TABLE(sys_umask, sys_umask, 60, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_dup2 +TRACE_SYSCALL_TABLE(sys_dup2, sys_dup2, 63, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_setreuid16 +TRACE_SYSCALL_TABLE(sys_setreuid16, sys_setreuid16, 70, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_setregid16 +TRACE_SYSCALL_TABLE(sys_setregid16, sys_setregid16, 71, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_munmap +TRACE_SYSCALL_TABLE(sys_munmap, sys_munmap, 91, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_ftruncate +TRACE_SYSCALL_TABLE(sys_ftruncate, sys_ftruncate, 93, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_fchmod +TRACE_SYSCALL_TABLE(sys_fchmod, sys_fchmod, 94, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_fchown16 +TRACE_SYSCALL_TABLE(sys_fchown16, sys_fchown16, 95, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_getpriority +TRACE_SYSCALL_TABLE(sys_getpriority, sys_getpriority, 96, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_setpriority +TRACE_SYSCALL_TABLE(sys_setpriority, sys_setpriority, 97, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_fsync +TRACE_SYSCALL_TABLE(sys_fsync, sys_fsync, 118, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_mprotect +TRACE_SYSCALL_TABLE(sys_mprotect, sys_mprotect, 125, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_getpgid +TRACE_SYSCALL_TABLE(sys_getpgid, sys_getpgid, 132, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_fchdir +TRACE_SYSCALL_TABLE(sys_fchdir, sys_fchdir, 133, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_bdflush +TRACE_SYSCALL_TABLE(sys_bdflush, sys_bdflush, 134, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_sysfs +TRACE_SYSCALL_TABLE(sys_sysfs, sys_sysfs, 135, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_personality +TRACE_SYSCALL_TABLE(sys_personality, sys_personality, 136, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_setfsuid16 +TRACE_SYSCALL_TABLE(sys_setfsuid16, sys_setfsuid16, 138, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_setfsgid16 +TRACE_SYSCALL_TABLE(sys_setfsgid16, sys_setfsgid16, 139, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_flock +TRACE_SYSCALL_TABLE(sys_flock, sys_flock, 143, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_msync +TRACE_SYSCALL_TABLE(sys_msync, sys_msync, 144, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_getsid +TRACE_SYSCALL_TABLE(sys_getsid, sys_getsid, 147, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_fdatasync +TRACE_SYSCALL_TABLE(sys_fdatasync, sys_fdatasync, 148, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_mlock +TRACE_SYSCALL_TABLE(sys_mlock, sys_mlock, 150, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_munlock +TRACE_SYSCALL_TABLE(sys_munlock, sys_munlock, 151, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_mlockall +TRACE_SYSCALL_TABLE(sys_mlockall, sys_mlockall, 152, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_sched_getscheduler +TRACE_SYSCALL_TABLE(sys_sched_getscheduler, sys_sched_getscheduler, 157, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_sched_get_priority_max +TRACE_SYSCALL_TABLE(sys_sched_get_priority_max, sys_sched_get_priority_max, 159, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_sched_get_priority_min +TRACE_SYSCALL_TABLE(sys_sched_get_priority_min, sys_sched_get_priority_min, 160, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_mremap +TRACE_SYSCALL_TABLE(sys_mremap, sys_mremap, 163, 5) +#endif +#ifndef OVERRIDE_TABLE_32_sys_setresuid16 +TRACE_SYSCALL_TABLE(sys_setresuid16, sys_setresuid16, 164, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_setresgid16 +TRACE_SYSCALL_TABLE(sys_setresgid16, sys_setresgid16, 170, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_prctl +TRACE_SYSCALL_TABLE(sys_prctl, sys_prctl, 172, 5) +#endif +#ifndef OVERRIDE_TABLE_32_sys_setreuid +TRACE_SYSCALL_TABLE(sys_setreuid, sys_setreuid, 203, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_setregid +TRACE_SYSCALL_TABLE(sys_setregid, sys_setregid, 204, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_fchown +TRACE_SYSCALL_TABLE(sys_fchown, sys_fchown, 207, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_setresuid +TRACE_SYSCALL_TABLE(sys_setresuid, sys_setresuid, 208, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_setresgid +TRACE_SYSCALL_TABLE(sys_setresgid, sys_setresgid, 210, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_setuid +TRACE_SYSCALL_TABLE(sys_setuid, sys_setuid, 213, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_setgid +TRACE_SYSCALL_TABLE(sys_setgid, sys_setgid, 214, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_setfsuid +TRACE_SYSCALL_TABLE(sys_setfsuid, sys_setfsuid, 215, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_setfsgid +TRACE_SYSCALL_TABLE(sys_setfsgid, sys_setfsgid, 216, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_madvise +TRACE_SYSCALL_TABLE(sys_madvise, sys_madvise, 220, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_fcntl64 +TRACE_SYSCALL_TABLE(sys_fcntl64, sys_fcntl64, 221, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_tkill +TRACE_SYSCALL_TABLE(sys_tkill, sys_tkill, 238, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_io_destroy +TRACE_SYSCALL_TABLE(sys_io_destroy, sys_io_destroy, 244, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_exit_group +TRACE_SYSCALL_TABLE(sys_exit_group, sys_exit_group, 248, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_epoll_create +TRACE_SYSCALL_TABLE(sys_epoll_create, sys_epoll_create, 250, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_remap_file_pages +TRACE_SYSCALL_TABLE(sys_remap_file_pages, sys_remap_file_pages, 253, 5) +#endif +#ifndef OVERRIDE_TABLE_32_sys_timer_getoverrun +TRACE_SYSCALL_TABLE(sys_timer_getoverrun, sys_timer_getoverrun, 260, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_timer_delete +TRACE_SYSCALL_TABLE(sys_timer_delete, sys_timer_delete, 261, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_tgkill +TRACE_SYSCALL_TABLE(sys_tgkill, sys_tgkill, 268, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_socket +TRACE_SYSCALL_TABLE(sys_socket, sys_socket, 281, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_listen +TRACE_SYSCALL_TABLE(sys_listen, sys_listen, 284, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_shutdown +TRACE_SYSCALL_TABLE(sys_shutdown, sys_shutdown, 293, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_semget +TRACE_SYSCALL_TABLE(sys_semget, sys_semget, 299, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_msgget +TRACE_SYSCALL_TABLE(sys_msgget, sys_msgget, 303, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_shmget +TRACE_SYSCALL_TABLE(sys_shmget, sys_shmget, 307, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_keyctl +TRACE_SYSCALL_TABLE(sys_keyctl, sys_keyctl, 311, 5) +#endif +#ifndef OVERRIDE_TABLE_32_sys_ioprio_set +TRACE_SYSCALL_TABLE(sys_ioprio_set, sys_ioprio_set, 314, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_ioprio_get +TRACE_SYSCALL_TABLE(sys_ioprio_get, sys_ioprio_get, 315, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_inotify_rm_watch +TRACE_SYSCALL_TABLE(sys_inotify_rm_watch, sys_inotify_rm_watch, 318, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_unshare +TRACE_SYSCALL_TABLE(sys_unshare, sys_unshare, 337, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_tee +TRACE_SYSCALL_TABLE(sys_tee, sys_tee, 342, 4) +#endif +#ifndef OVERRIDE_TABLE_32_sys_timerfd_create +TRACE_SYSCALL_TABLE(sys_timerfd_create, sys_timerfd_create, 350, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_eventfd +TRACE_SYSCALL_TABLE(sys_eventfd, sys_eventfd, 351, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_eventfd2 +TRACE_SYSCALL_TABLE(sys_eventfd2, sys_eventfd2, 356, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_epoll_create1 +TRACE_SYSCALL_TABLE(sys_epoll_create1, sys_epoll_create1, 357, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_dup3 +TRACE_SYSCALL_TABLE(sys_dup3, sys_dup3, 358, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_inotify_init1 +TRACE_SYSCALL_TABLE(sys_inotify_init1, sys_inotify_init1, 360, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_fanotify_init +TRACE_SYSCALL_TABLE(sys_fanotify_init, sys_fanotify_init, 367, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_syncfs +TRACE_SYSCALL_TABLE(sys_syncfs, sys_syncfs, 373, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_setns +TRACE_SYSCALL_TABLE(sys_setns, sys_setns, 375, 2) +#endif + +#endif /* CREATE_SYSCALL_TABLE */ --- linux-3.11.0.orig/ubuntu/lttng-modules/instrumentation/syscalls/headers/mips-32-syscalls-3.5.0_pointers.h +++ linux-3.11.0/ubuntu/lttng-modules/instrumentation/syscalls/headers/mips-32-syscalls-3.5.0_pointers.h @@ -0,0 +1,984 @@ +/* THIS FILE IS AUTO-GENERATED. DO NOT EDIT */ +#ifndef CREATE_SYSCALL_TABLE + +#if !defined(_TRACE_SYSCALLS_POINTERS_H) || defined(TRACE_HEADER_MULTI_READ) +#define _TRACE_SYSCALLS_POINTERS_H + +#include +#include +#include "mips-32-syscalls-3.5.0_pointers_override.h" +#include "syscalls_pointers_override.h" + +#ifndef OVERRIDE_32_sys_unlink +SC_TRACE_EVENT(sys_unlink, + TP_PROTO(const char * pathname), + TP_ARGS(pathname), + TP_STRUCT__entry(__string_from_user(pathname, pathname)), + TP_fast_assign(tp_copy_string_from_user(pathname, pathname)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_chdir +SC_TRACE_EVENT(sys_chdir, + TP_PROTO(const char * filename), + TP_ARGS(filename), + TP_STRUCT__entry(__string_from_user(filename, filename)), + TP_fast_assign(tp_copy_string_from_user(filename, filename)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_time +SC_TRACE_EVENT(sys_time, + TP_PROTO(time_t * tloc), + TP_ARGS(tloc), + TP_STRUCT__entry(__field_hex(time_t *, tloc)), + TP_fast_assign(tp_assign(tloc, tloc)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_oldumount +SC_TRACE_EVENT(sys_oldumount, + TP_PROTO(char * name), + TP_ARGS(name), + TP_STRUCT__entry(__string_from_user(name, name)), + TP_fast_assign(tp_copy_string_from_user(name, name)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_stime +SC_TRACE_EVENT(sys_stime, + TP_PROTO(time_t * tptr), + TP_ARGS(tptr), + TP_STRUCT__entry(__field_hex(time_t *, tptr)), + TP_fast_assign(tp_assign(tptr, tptr)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_rmdir +SC_TRACE_EVENT(sys_rmdir, + TP_PROTO(const char * pathname), + TP_ARGS(pathname), + TP_STRUCT__entry(__string_from_user(pathname, pathname)), + TP_fast_assign(tp_copy_string_from_user(pathname, pathname)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_times +SC_TRACE_EVENT(sys_times, + TP_PROTO(struct tms * tbuf), + TP_ARGS(tbuf), + TP_STRUCT__entry(__field_hex(struct tms *, tbuf)), + TP_fast_assign(tp_assign(tbuf, tbuf)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_olduname +SC_TRACE_EVENT(sys_olduname, + TP_PROTO(struct oldold_utsname * name), + TP_ARGS(name), + TP_STRUCT__entry(__field_hex(struct oldold_utsname *, name)), + TP_fast_assign(tp_assign(name, name)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_chroot +SC_TRACE_EVENT(sys_chroot, + TP_PROTO(const char * filename), + TP_ARGS(filename), + TP_STRUCT__entry(__string_from_user(filename, filename)), + TP_fast_assign(tp_copy_string_from_user(filename, filename)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_sigpending +SC_TRACE_EVENT(sys_sigpending, + TP_PROTO(old_sigset_t * set), + TP_ARGS(set), + TP_STRUCT__entry(__field_hex(old_sigset_t *, set)), + TP_fast_assign(tp_assign(set, set)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_uselib +SC_TRACE_EVENT(sys_uselib, + TP_PROTO(const char * library), + TP_ARGS(library), + TP_STRUCT__entry(__field_hex(const char *, library)), + TP_fast_assign(tp_assign(library, library)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_uname +SC_TRACE_EVENT(sys_uname, + TP_PROTO(struct old_utsname * name), + TP_ARGS(name), + TP_STRUCT__entry(__field_hex(struct old_utsname *, name)), + TP_fast_assign(tp_assign(name, name)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_swapoff +SC_TRACE_EVENT(sys_swapoff, + TP_PROTO(const char * specialfile), + TP_ARGS(specialfile), + TP_STRUCT__entry(__string_from_user(specialfile, specialfile)), + TP_fast_assign(tp_copy_string_from_user(specialfile, specialfile)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_sysinfo +SC_TRACE_EVENT(sys_sysinfo, + TP_PROTO(struct sysinfo * info), + TP_ARGS(info), + TP_STRUCT__entry(__field_hex(struct sysinfo *, info)), + TP_fast_assign(tp_assign(info, info)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_newuname +SC_TRACE_EVENT(sys_newuname, + TP_PROTO(struct new_utsname * name), + TP_ARGS(name), + TP_STRUCT__entry(__field_hex(struct new_utsname *, name)), + TP_fast_assign(tp_assign(name, name)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_adjtimex +SC_TRACE_EVENT(sys_adjtimex, + TP_PROTO(struct timex * txc_p), + TP_ARGS(txc_p), + TP_STRUCT__entry(__field_hex(struct timex *, txc_p)), + TP_fast_assign(tp_assign(txc_p, txc_p)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_sysctl +SC_TRACE_EVENT(sys_sysctl, + TP_PROTO(struct __sysctl_args * args), + TP_ARGS(args), + TP_STRUCT__entry(__field_hex(struct __sysctl_args *, args)), + TP_fast_assign(tp_assign(args, args)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_creat +SC_TRACE_EVENT(sys_creat, + TP_PROTO(const char * pathname, umode_t mode), + TP_ARGS(pathname, mode), + TP_STRUCT__entry(__string_from_user(pathname, pathname) __field(umode_t, mode)), + TP_fast_assign(tp_copy_string_from_user(pathname, pathname) tp_assign(mode, mode)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_link +SC_TRACE_EVENT(sys_link, + TP_PROTO(const char * oldname, const char * newname), + TP_ARGS(oldname, newname), + TP_STRUCT__entry(__string_from_user(oldname, oldname) __string_from_user(newname, newname)), + TP_fast_assign(tp_copy_string_from_user(oldname, oldname) tp_copy_string_from_user(newname, newname)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_chmod +SC_TRACE_EVENT(sys_chmod, + TP_PROTO(const char * filename, umode_t mode), + TP_ARGS(filename, mode), + TP_STRUCT__entry(__string_from_user(filename, filename) __field(umode_t, mode)), + TP_fast_assign(tp_copy_string_from_user(filename, filename) tp_assign(mode, mode)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_utime +SC_TRACE_EVENT(sys_utime, + TP_PROTO(char * filename, struct utimbuf * times), + TP_ARGS(filename, times), + TP_STRUCT__entry(__string_from_user(filename, filename) __field_hex(struct utimbuf *, times)), + TP_fast_assign(tp_copy_string_from_user(filename, filename) tp_assign(times, times)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_access +SC_TRACE_EVENT(sys_access, + TP_PROTO(const char * filename, int mode), + TP_ARGS(filename, mode), + TP_STRUCT__entry(__string_from_user(filename, filename) __field(int, mode)), + TP_fast_assign(tp_copy_string_from_user(filename, filename) tp_assign(mode, mode)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_rename +SC_TRACE_EVENT(sys_rename, + TP_PROTO(const char * oldname, const char * newname), + TP_ARGS(oldname, newname), + TP_STRUCT__entry(__string_from_user(oldname, oldname) __string_from_user(newname, newname)), + TP_fast_assign(tp_copy_string_from_user(oldname, oldname) tp_copy_string_from_user(newname, newname)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_mkdir +SC_TRACE_EVENT(sys_mkdir, + TP_PROTO(const char * pathname, umode_t mode), + TP_ARGS(pathname, mode), + TP_STRUCT__entry(__string_from_user(pathname, pathname) __field(umode_t, mode)), + TP_fast_assign(tp_copy_string_from_user(pathname, pathname) tp_assign(mode, mode)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_umount +SC_TRACE_EVENT(sys_umount, + TP_PROTO(char * name, int flags), + TP_ARGS(name, flags), + TP_STRUCT__entry(__string_from_user(name, name) __field(int, flags)), + TP_fast_assign(tp_copy_string_from_user(name, name) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_ustat +SC_TRACE_EVENT(sys_ustat, + TP_PROTO(unsigned dev, struct ustat * ubuf), + TP_ARGS(dev, ubuf), + TP_STRUCT__entry(__field(unsigned, dev) __field_hex(struct ustat *, ubuf)), + TP_fast_assign(tp_assign(dev, dev) tp_assign(ubuf, ubuf)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_sethostname +SC_TRACE_EVENT(sys_sethostname, + TP_PROTO(char * name, int len), + TP_ARGS(name, len), + TP_STRUCT__entry(__string_from_user(name, name) __field(int, len)), + TP_fast_assign(tp_copy_string_from_user(name, name) tp_assign(len, len)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_setrlimit +SC_TRACE_EVENT(sys_setrlimit, + TP_PROTO(unsigned int resource, struct rlimit * rlim), + TP_ARGS(resource, rlim), + TP_STRUCT__entry(__field(unsigned int, resource) __field_hex(struct rlimit *, rlim)), + TP_fast_assign(tp_assign(resource, resource) tp_assign(rlim, rlim)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_getrlimit +SC_TRACE_EVENT(sys_getrlimit, + TP_PROTO(unsigned int resource, struct rlimit * rlim), + TP_ARGS(resource, rlim), + TP_STRUCT__entry(__field(unsigned int, resource) __field_hex(struct rlimit *, rlim)), + TP_fast_assign(tp_assign(resource, resource) tp_assign(rlim, rlim)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_getrusage +SC_TRACE_EVENT(sys_getrusage, + TP_PROTO(int who, struct rusage * ru), + TP_ARGS(who, ru), + TP_STRUCT__entry(__field(int, who) __field_hex(struct rusage *, ru)), + TP_fast_assign(tp_assign(who, who) tp_assign(ru, ru)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_gettimeofday +SC_TRACE_EVENT(sys_gettimeofday, + TP_PROTO(struct timeval * tv, struct timezone * tz), + TP_ARGS(tv, tz), + TP_STRUCT__entry(__field_hex(struct timeval *, tv) __field_hex(struct timezone *, tz)), + TP_fast_assign(tp_assign(tv, tv) tp_assign(tz, tz)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_settimeofday +SC_TRACE_EVENT(sys_settimeofday, + TP_PROTO(struct timeval * tv, struct timezone * tz), + TP_ARGS(tv, tz), + TP_STRUCT__entry(__field_hex(struct timeval *, tv) __field_hex(struct timezone *, tz)), + TP_fast_assign(tp_assign(tv, tv) tp_assign(tz, tz)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_getgroups +SC_TRACE_EVENT(sys_getgroups, + TP_PROTO(int gidsetsize, gid_t * grouplist), + TP_ARGS(gidsetsize, grouplist), + TP_STRUCT__entry(__field(int, gidsetsize) __field_hex(gid_t *, grouplist)), + TP_fast_assign(tp_assign(gidsetsize, gidsetsize) tp_assign(grouplist, grouplist)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_setgroups +SC_TRACE_EVENT(sys_setgroups, + TP_PROTO(int gidsetsize, gid_t * grouplist), + TP_ARGS(gidsetsize, grouplist), + TP_STRUCT__entry(__field(int, gidsetsize) __field_hex(gid_t *, grouplist)), + TP_fast_assign(tp_assign(gidsetsize, gidsetsize) tp_assign(grouplist, grouplist)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_symlink +SC_TRACE_EVENT(sys_symlink, + TP_PROTO(const char * oldname, const char * newname), + TP_ARGS(oldname, newname), + TP_STRUCT__entry(__string_from_user(oldname, oldname) __string_from_user(newname, newname)), + TP_fast_assign(tp_copy_string_from_user(oldname, oldname) tp_copy_string_from_user(newname, newname)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_swapon +SC_TRACE_EVENT(sys_swapon, + TP_PROTO(const char * specialfile, int swap_flags), + TP_ARGS(specialfile, swap_flags), + TP_STRUCT__entry(__string_from_user(specialfile, specialfile) __field(int, swap_flags)), + TP_fast_assign(tp_copy_string_from_user(specialfile, specialfile) tp_assign(swap_flags, swap_flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_truncate +SC_TRACE_EVENT(sys_truncate, + TP_PROTO(const char * path, long length), + TP_ARGS(path, length), + TP_STRUCT__entry(__string_from_user(path, path) __field(long, length)), + TP_fast_assign(tp_copy_string_from_user(path, path) tp_assign(length, length)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_statfs +SC_TRACE_EVENT(sys_statfs, + TP_PROTO(const char * pathname, struct statfs * buf), + TP_ARGS(pathname, buf), + TP_STRUCT__entry(__string_from_user(pathname, pathname) __field_hex(struct statfs *, buf)), + TP_fast_assign(tp_copy_string_from_user(pathname, pathname) tp_assign(buf, buf)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_fstatfs +SC_TRACE_EVENT(sys_fstatfs, + TP_PROTO(unsigned int fd, struct statfs * buf), + TP_ARGS(fd, buf), + TP_STRUCT__entry(__field(unsigned int, fd) __field_hex(struct statfs *, buf)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(buf, buf)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_socketcall +SC_TRACE_EVENT(sys_socketcall, + TP_PROTO(int call, unsigned long * args), + TP_ARGS(call, args), + TP_STRUCT__entry(__field(int, call) __field_hex(unsigned long *, args)), + TP_fast_assign(tp_assign(call, call) tp_assign(args, args)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_getitimer +SC_TRACE_EVENT(sys_getitimer, + TP_PROTO(int which, struct itimerval * value), + TP_ARGS(which, value), + TP_STRUCT__entry(__field(int, which) __field_hex(struct itimerval *, value)), + TP_fast_assign(tp_assign(which, which) tp_assign(value, value)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_newstat +SC_TRACE_EVENT(sys_newstat, + TP_PROTO(const char * filename, struct stat * statbuf), + TP_ARGS(filename, statbuf), + TP_STRUCT__entry(__string_from_user(filename, filename) __field_hex(struct stat *, statbuf)), + TP_fast_assign(tp_copy_string_from_user(filename, filename) tp_assign(statbuf, statbuf)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_newlstat +SC_TRACE_EVENT(sys_newlstat, + TP_PROTO(const char * filename, struct stat * statbuf), + TP_ARGS(filename, statbuf), + TP_STRUCT__entry(__string_from_user(filename, filename) __field_hex(struct stat *, statbuf)), + TP_fast_assign(tp_copy_string_from_user(filename, filename) tp_assign(statbuf, statbuf)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_newfstat +SC_TRACE_EVENT(sys_newfstat, + TP_PROTO(unsigned int fd, struct stat * statbuf), + TP_ARGS(fd, statbuf), + TP_STRUCT__entry(__field(unsigned int, fd) __field_hex(struct stat *, statbuf)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(statbuf, statbuf)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_setdomainname +SC_TRACE_EVENT(sys_setdomainname, + TP_PROTO(char * name, int len), + TP_ARGS(name, len), + TP_STRUCT__entry(__string_from_user(name, name) __field(int, len)), + TP_fast_assign(tp_copy_string_from_user(name, name) tp_assign(len, len)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_delete_module +SC_TRACE_EVENT(sys_delete_module, + TP_PROTO(const char * name_user, unsigned int flags), + TP_ARGS(name_user, flags), + TP_STRUCT__entry(__string_from_user(name_user, name_user) __field(unsigned int, flags)), + TP_fast_assign(tp_copy_string_from_user(name_user, name_user) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_sched_setparam +SC_TRACE_EVENT(sys_sched_setparam, + TP_PROTO(pid_t pid, struct sched_param * param), + TP_ARGS(pid, param), + TP_STRUCT__entry(__field(pid_t, pid) __field_hex(struct sched_param *, param)), + TP_fast_assign(tp_assign(pid, pid) tp_assign(param, param)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_sched_getparam +SC_TRACE_EVENT(sys_sched_getparam, + TP_PROTO(pid_t pid, struct sched_param * param), + TP_ARGS(pid, param), + TP_STRUCT__entry(__field(pid_t, pid) __field_hex(struct sched_param *, param)), + TP_fast_assign(tp_assign(pid, pid) tp_assign(param, param)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_sched_rr_get_interval +SC_TRACE_EVENT(sys_sched_rr_get_interval, + TP_PROTO(pid_t pid, struct timespec * interval), + TP_ARGS(pid, interval), + TP_STRUCT__entry(__field(pid_t, pid) __field_hex(struct timespec *, interval)), + TP_fast_assign(tp_assign(pid, pid) tp_assign(interval, interval)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_nanosleep +SC_TRACE_EVENT(sys_nanosleep, + TP_PROTO(struct timespec * rqtp, struct timespec * rmtp), + TP_ARGS(rqtp, rmtp), + TP_STRUCT__entry(__field_hex(struct timespec *, rqtp) __field_hex(struct timespec *, rmtp)), + TP_fast_assign(tp_assign(rqtp, rqtp) tp_assign(rmtp, rmtp)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_read +SC_TRACE_EVENT(sys_read, + TP_PROTO(unsigned int fd, char * buf, size_t count), + TP_ARGS(fd, buf, count), + TP_STRUCT__entry(__field(unsigned int, fd) __field_hex(char *, buf) __field(size_t, count)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(buf, buf) tp_assign(count, count)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_write +SC_TRACE_EVENT(sys_write, + TP_PROTO(unsigned int fd, const char * buf, size_t count), + TP_ARGS(fd, buf, count), + TP_STRUCT__entry(__field(unsigned int, fd) __field_hex(const char *, buf) __field(size_t, count)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(buf, buf) tp_assign(count, count)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_open +SC_TRACE_EVENT(sys_open, + TP_PROTO(const char * filename, int flags, umode_t mode), + TP_ARGS(filename, flags, mode), + TP_STRUCT__entry(__string_from_user(filename, filename) __field(int, flags) __field(umode_t, mode)), + TP_fast_assign(tp_copy_string_from_user(filename, filename) tp_assign(flags, flags) tp_assign(mode, mode)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_waitpid +SC_TRACE_EVENT(sys_waitpid, + TP_PROTO(pid_t pid, int * stat_addr, int options), + TP_ARGS(pid, stat_addr, options), + TP_STRUCT__entry(__field(pid_t, pid) __field_hex(int *, stat_addr) __field(int, options)), + TP_fast_assign(tp_assign(pid, pid) tp_assign(stat_addr, stat_addr) tp_assign(options, options)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_mknod +SC_TRACE_EVENT(sys_mknod, + TP_PROTO(const char * filename, umode_t mode, unsigned dev), + TP_ARGS(filename, mode, dev), + TP_STRUCT__entry(__string_from_user(filename, filename) __field(umode_t, mode) __field(unsigned, dev)), + TP_fast_assign(tp_copy_string_from_user(filename, filename) tp_assign(mode, mode) tp_assign(dev, dev)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_lchown +SC_TRACE_EVENT(sys_lchown, + TP_PROTO(const char * filename, uid_t user, gid_t group), + TP_ARGS(filename, user, group), + TP_STRUCT__entry(__string_from_user(filename, filename) __field(uid_t, user) __field(gid_t, group)), + TP_fast_assign(tp_copy_string_from_user(filename, filename) tp_assign(user, user) tp_assign(group, group)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_sigaction +SC_TRACE_EVENT(sys_sigaction, + TP_PROTO(int sig, const struct sigaction * act, struct sigaction * oact), + TP_ARGS(sig, act, oact), + TP_STRUCT__entry(__field(int, sig) __field_hex(const struct sigaction *, act) __field_hex(struct sigaction *, oact)), + TP_fast_assign(tp_assign(sig, sig) tp_assign(act, act) tp_assign(oact, oact)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_readlink +SC_TRACE_EVENT(sys_readlink, + TP_PROTO(const char * path, char * buf, int bufsiz), + TP_ARGS(path, buf, bufsiz), + TP_STRUCT__entry(__string_from_user(path, path) __field_hex(char *, buf) __field(int, bufsiz)), + TP_fast_assign(tp_copy_string_from_user(path, path) tp_assign(buf, buf) tp_assign(bufsiz, bufsiz)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_old_readdir +SC_TRACE_EVENT(sys_old_readdir, + TP_PROTO(unsigned int fd, struct old_linux_dirent * dirent, unsigned int count), + TP_ARGS(fd, dirent, count), + TP_STRUCT__entry(__field(unsigned int, fd) __field_hex(struct old_linux_dirent *, dirent) __field(unsigned int, count)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(dirent, dirent) tp_assign(count, count)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_syslog +SC_TRACE_EVENT(sys_syslog, + TP_PROTO(int type, char * buf, int len), + TP_ARGS(type, buf, len), + TP_STRUCT__entry(__field(int, type) __field_hex(char *, buf) __field(int, len)), + TP_fast_assign(tp_assign(type, type) tp_assign(buf, buf) tp_assign(len, len)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_setitimer +SC_TRACE_EVENT(sys_setitimer, + TP_PROTO(int which, struct itimerval * value, struct itimerval * ovalue), + TP_ARGS(which, value, ovalue), + TP_STRUCT__entry(__field(int, which) __field_hex(struct itimerval *, value) __field_hex(struct itimerval *, ovalue)), + TP_fast_assign(tp_assign(which, which) tp_assign(value, value) tp_assign(ovalue, ovalue)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_sigprocmask +SC_TRACE_EVENT(sys_sigprocmask, + TP_PROTO(int how, old_sigset_t * nset, old_sigset_t * oset), + TP_ARGS(how, nset, oset), + TP_STRUCT__entry(__field(int, how) __field_hex(old_sigset_t *, nset) __field_hex(old_sigset_t *, oset)), + TP_fast_assign(tp_assign(how, how) tp_assign(nset, nset) tp_assign(oset, oset)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_init_module +SC_TRACE_EVENT(sys_init_module, + TP_PROTO(void * umod, unsigned long len, const char * uargs), + TP_ARGS(umod, len, uargs), + TP_STRUCT__entry(__field_hex(void *, umod) __field(unsigned long, len) __field_hex(const char *, uargs)), + TP_fast_assign(tp_assign(umod, umod) tp_assign(len, len) tp_assign(uargs, uargs)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_getdents +SC_TRACE_EVENT(sys_getdents, + TP_PROTO(unsigned int fd, struct linux_dirent * dirent, unsigned int count), + TP_ARGS(fd, dirent, count), + TP_STRUCT__entry(__field(unsigned int, fd) __field_hex(struct linux_dirent *, dirent) __field(unsigned int, count)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(dirent, dirent) tp_assign(count, count)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_readv +SC_TRACE_EVENT(sys_readv, + TP_PROTO(unsigned long fd, const struct iovec * vec, unsigned long vlen), + TP_ARGS(fd, vec, vlen), + TP_STRUCT__entry(__field(unsigned long, fd) __field_hex(const struct iovec *, vec) __field(unsigned long, vlen)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(vec, vec) tp_assign(vlen, vlen)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_writev +SC_TRACE_EVENT(sys_writev, + TP_PROTO(unsigned long fd, const struct iovec * vec, unsigned long vlen), + TP_ARGS(fd, vec, vlen), + TP_STRUCT__entry(__field(unsigned long, fd) __field_hex(const struct iovec *, vec) __field(unsigned long, vlen)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(vec, vec) tp_assign(vlen, vlen)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_cachectl +SC_TRACE_EVENT(sys_cachectl, + TP_PROTO(char * addr, int nbytes, int op), + TP_ARGS(addr, nbytes, op), + TP_STRUCT__entry(__field_hex(char *, addr) __field(int, nbytes) __field(int, op)), + TP_fast_assign(tp_assign(addr, addr) tp_assign(nbytes, nbytes) tp_assign(op, op)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_sched_setscheduler +SC_TRACE_EVENT(sys_sched_setscheduler, + TP_PROTO(pid_t pid, int policy, struct sched_param * param), + TP_ARGS(pid, policy, param), + TP_STRUCT__entry(__field(pid_t, pid) __field(int, policy) __field_hex(struct sched_param *, param)), + TP_fast_assign(tp_assign(pid, pid) tp_assign(policy, policy) tp_assign(param, param)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_accept +SC_TRACE_EVENT(sys_accept, + TP_PROTO(int fd, struct sockaddr * upeer_sockaddr, int * upeer_addrlen), + TP_ARGS(fd, upeer_sockaddr, upeer_addrlen), + TP_STRUCT__entry(__field(int, fd) __field_hex(struct sockaddr *, upeer_sockaddr) __field_hex(int *, upeer_addrlen)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(upeer_sockaddr, upeer_sockaddr) tp_assign(upeer_addrlen, upeer_addrlen)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_bind +SC_TRACE_EVENT(sys_bind, + TP_PROTO(int fd, struct sockaddr * umyaddr, int addrlen), + TP_ARGS(fd, umyaddr, addrlen), + TP_STRUCT__entry(__field(int, fd) __field_hex(struct sockaddr *, umyaddr) __field_hex(int, addrlen)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(umyaddr, umyaddr) tp_assign(addrlen, addrlen)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_connect +SC_TRACE_EVENT(sys_connect, + TP_PROTO(int fd, struct sockaddr * uservaddr, int addrlen), + TP_ARGS(fd, uservaddr, addrlen), + TP_STRUCT__entry(__field(int, fd) __field_hex(struct sockaddr *, uservaddr) __field_hex(int, addrlen)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(uservaddr, uservaddr) tp_assign(addrlen, addrlen)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_getpeername +SC_TRACE_EVENT(sys_getpeername, + TP_PROTO(int fd, struct sockaddr * usockaddr, int * usockaddr_len), + TP_ARGS(fd, usockaddr, usockaddr_len), + TP_STRUCT__entry(__field(int, fd) __field_hex(struct sockaddr *, usockaddr) __field_hex(int *, usockaddr_len)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(usockaddr, usockaddr) tp_assign(usockaddr_len, usockaddr_len)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_getsockname +SC_TRACE_EVENT(sys_getsockname, + TP_PROTO(int fd, struct sockaddr * usockaddr, int * usockaddr_len), + TP_ARGS(fd, usockaddr, usockaddr_len), + TP_STRUCT__entry(__field(int, fd) __field_hex(struct sockaddr *, usockaddr) __field_hex(int *, usockaddr_len)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(usockaddr, usockaddr) tp_assign(usockaddr_len, usockaddr_len)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_reboot +SC_TRACE_EVENT(sys_reboot, + TP_PROTO(int magic1, int magic2, unsigned int cmd, void * arg), + TP_ARGS(magic1, magic2, cmd, arg), + TP_STRUCT__entry(__field(int, magic1) __field(int, magic2) __field(unsigned int, cmd) __field_hex(void *, arg)), + TP_fast_assign(tp_assign(magic1, magic1) tp_assign(magic2, magic2) tp_assign(cmd, cmd) tp_assign(arg, arg)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_wait4 +SC_TRACE_EVENT(sys_wait4, + TP_PROTO(pid_t upid, int * stat_addr, int options, struct rusage * ru), + TP_ARGS(upid, stat_addr, options, ru), + TP_STRUCT__entry(__field(pid_t, upid) __field_hex(int *, stat_addr) __field(int, options) __field_hex(struct rusage *, ru)), + TP_fast_assign(tp_assign(upid, upid) tp_assign(stat_addr, stat_addr) tp_assign(options, options) tp_assign(ru, ru)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_quotactl +SC_TRACE_EVENT(sys_quotactl, + TP_PROTO(unsigned int cmd, const char * special, qid_t id, void * addr), + TP_ARGS(cmd, special, id, addr), + TP_STRUCT__entry(__field(unsigned int, cmd) __field_hex(const char *, special) __field(qid_t, id) __field_hex(void *, addr)), + TP_fast_assign(tp_assign(cmd, cmd) tp_assign(special, special) tp_assign(id, id) tp_assign(addr, addr)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_mount +SC_TRACE_EVENT(sys_mount, + TP_PROTO(char * dev_name, char * dir_name, char * type, unsigned long flags, void * data), + TP_ARGS(dev_name, dir_name, type, flags, data), + TP_STRUCT__entry(__string_from_user(dev_name, dev_name) __string_from_user(dir_name, dir_name) __string_from_user(type, type) __field(unsigned long, flags) __field_hex(void *, data)), + TP_fast_assign(tp_copy_string_from_user(dev_name, dev_name) tp_copy_string_from_user(dir_name, dir_name) tp_copy_string_from_user(type, type) tp_assign(flags, flags) tp_assign(data, data)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_llseek +SC_TRACE_EVENT(sys_llseek, + TP_PROTO(unsigned int fd, unsigned long offset_high, unsigned long offset_low, loff_t * result, unsigned int origin), + TP_ARGS(fd, offset_high, offset_low, result, origin), + TP_STRUCT__entry(__field(unsigned int, fd) __field(unsigned long, offset_high) __field(unsigned long, offset_low) __field_hex(loff_t *, result) __field(unsigned int, origin)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(offset_high, offset_high) tp_assign(offset_low, offset_low) tp_assign(result, result) tp_assign(origin, origin)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_select +SC_TRACE_EVENT(sys_select, + TP_PROTO(int n, fd_set * inp, fd_set * outp, fd_set * exp, struct timeval * tvp), + TP_ARGS(n, inp, outp, exp, tvp), + TP_STRUCT__entry(__field(int, n) __field_hex(fd_set *, inp) __field_hex(fd_set *, outp) __field_hex(fd_set *, exp) __field_hex(struct timeval *, tvp)), + TP_fast_assign(tp_assign(n, n) tp_assign(inp, inp) tp_assign(outp, outp) tp_assign(exp, exp) tp_assign(tvp, tvp)), + TP_printk() +) +#endif +#ifndef OVERRIDE_32_sys_ipc +SC_TRACE_EVENT(sys_ipc, + TP_PROTO(unsigned int call, int first, unsigned long second, unsigned long third, void * ptr, long fifth), + TP_ARGS(call, first, second, third, ptr, fifth), + TP_STRUCT__entry(__field(unsigned int, call) __field(int, first) __field(unsigned long, second) __field(unsigned long, third) __field_hex(void *, ptr) __field(long, fifth)), + TP_fast_assign(tp_assign(call, call) tp_assign(first, first) tp_assign(second, second) tp_assign(third, third) tp_assign(ptr, ptr) tp_assign(fifth, fifth)), + TP_printk() +) +#endif + +#endif /* _TRACE_SYSCALLS_POINTERS_H */ + +/* This part must be outside protection */ +#include "../../../probes/define_trace.h" + +#else /* CREATE_SYSCALL_TABLE */ + +#include "mips-32-syscalls-3.5.0_pointers_override.h" +#include "syscalls_pointers_override.h" + +#ifndef OVERRIDE_TABLE_32_sys_read +TRACE_SYSCALL_TABLE(sys_read, sys_read, 4007, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_write +TRACE_SYSCALL_TABLE(sys_write, sys_write, 4009, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_open +TRACE_SYSCALL_TABLE(sys_open, sys_open, 4011, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_waitpid +TRACE_SYSCALL_TABLE(sys_waitpid, sys_waitpid, 4015, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_creat +TRACE_SYSCALL_TABLE(sys_creat, sys_creat, 4017, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_link +TRACE_SYSCALL_TABLE(sys_link, sys_link, 4019, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_unlink +TRACE_SYSCALL_TABLE(sys_unlink, sys_unlink, 4021, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_chdir +TRACE_SYSCALL_TABLE(sys_chdir, sys_chdir, 4025, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_time +TRACE_SYSCALL_TABLE(sys_time, sys_time, 4027, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_mknod +TRACE_SYSCALL_TABLE(sys_mknod, sys_mknod, 4029, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_chmod +TRACE_SYSCALL_TABLE(sys_chmod, sys_chmod, 4031, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_lchown +TRACE_SYSCALL_TABLE(sys_lchown, sys_lchown, 4033, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_mount +TRACE_SYSCALL_TABLE(sys_mount, sys_mount, 4043, 5) +#endif +#ifndef OVERRIDE_TABLE_32_sys_oldumount +TRACE_SYSCALL_TABLE(sys_oldumount, sys_oldumount, 4045, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_stime +TRACE_SYSCALL_TABLE(sys_stime, sys_stime, 4051, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_utime +TRACE_SYSCALL_TABLE(sys_utime, sys_utime, 4061, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_access +TRACE_SYSCALL_TABLE(sys_access, sys_access, 4067, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_rename +TRACE_SYSCALL_TABLE(sys_rename, sys_rename, 4077, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_mkdir +TRACE_SYSCALL_TABLE(sys_mkdir, sys_mkdir, 4079, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_rmdir +TRACE_SYSCALL_TABLE(sys_rmdir, sys_rmdir, 4081, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_times +TRACE_SYSCALL_TABLE(sys_times, sys_times, 4087, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_umount +TRACE_SYSCALL_TABLE(sys_umount, sys_umount, 4105, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_olduname +TRACE_SYSCALL_TABLE(sys_olduname, sys_olduname, 4119, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_chroot +TRACE_SYSCALL_TABLE(sys_chroot, sys_chroot, 4123, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_ustat +TRACE_SYSCALL_TABLE(sys_ustat, sys_ustat, 4125, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_sigaction +TRACE_SYSCALL_TABLE(sys_sigaction, sys_sigaction, 4135, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_sigpending +TRACE_SYSCALL_TABLE(sys_sigpending, sys_sigpending, 4147, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_sethostname +TRACE_SYSCALL_TABLE(sys_sethostname, sys_sethostname, 4149, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_setrlimit +TRACE_SYSCALL_TABLE(sys_setrlimit, sys_setrlimit, 4151, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_getrlimit +TRACE_SYSCALL_TABLE(sys_getrlimit, sys_getrlimit, 4153, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_getrusage +TRACE_SYSCALL_TABLE(sys_getrusage, sys_getrusage, 4155, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_gettimeofday +TRACE_SYSCALL_TABLE(sys_gettimeofday, sys_gettimeofday, 4157, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_settimeofday +TRACE_SYSCALL_TABLE(sys_settimeofday, sys_settimeofday, 4159, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_getgroups +TRACE_SYSCALL_TABLE(sys_getgroups, sys_getgroups, 4161, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_setgroups +TRACE_SYSCALL_TABLE(sys_setgroups, sys_setgroups, 4163, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_symlink +TRACE_SYSCALL_TABLE(sys_symlink, sys_symlink, 4167, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_readlink +TRACE_SYSCALL_TABLE(sys_readlink, sys_readlink, 4171, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_uselib +TRACE_SYSCALL_TABLE(sys_uselib, sys_uselib, 4173, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_swapon +TRACE_SYSCALL_TABLE(sys_swapon, sys_swapon, 4175, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_reboot +TRACE_SYSCALL_TABLE(sys_reboot, sys_reboot, 4177, 4) +#endif +#ifndef OVERRIDE_TABLE_32_sys_old_readdir +TRACE_SYSCALL_TABLE(sys_old_readdir, sys_old_readdir, 4179, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_truncate +TRACE_SYSCALL_TABLE(sys_truncate, sys_truncate, 4185, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_statfs +TRACE_SYSCALL_TABLE(sys_statfs, sys_statfs, 4199, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_fstatfs +TRACE_SYSCALL_TABLE(sys_fstatfs, sys_fstatfs, 4201, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_socketcall +TRACE_SYSCALL_TABLE(sys_socketcall, sys_socketcall, 4205, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_syslog +TRACE_SYSCALL_TABLE(sys_syslog, sys_syslog, 4207, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_setitimer +TRACE_SYSCALL_TABLE(sys_setitimer, sys_setitimer, 4209, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_getitimer +TRACE_SYSCALL_TABLE(sys_getitimer, sys_getitimer, 4211, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_newstat +TRACE_SYSCALL_TABLE(sys_newstat, sys_newstat, 4213, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_newlstat +TRACE_SYSCALL_TABLE(sys_newlstat, sys_newlstat, 4215, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_newfstat +TRACE_SYSCALL_TABLE(sys_newfstat, sys_newfstat, 4217, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_uname +TRACE_SYSCALL_TABLE(sys_uname, sys_uname, 4219, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_wait4 +TRACE_SYSCALL_TABLE(sys_wait4, sys_wait4, 4229, 4) +#endif +#ifndef OVERRIDE_TABLE_32_sys_swapoff +TRACE_SYSCALL_TABLE(sys_swapoff, sys_swapoff, 4231, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_sysinfo +TRACE_SYSCALL_TABLE(sys_sysinfo, sys_sysinfo, 4233, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_ipc +TRACE_SYSCALL_TABLE(sys_ipc, sys_ipc, 4235, 6) +#endif +#ifndef OVERRIDE_TABLE_32_sys_setdomainname +TRACE_SYSCALL_TABLE(sys_setdomainname, sys_setdomainname, 4243, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_newuname +TRACE_SYSCALL_TABLE(sys_newuname, sys_newuname, 4245, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_adjtimex +TRACE_SYSCALL_TABLE(sys_adjtimex, sys_adjtimex, 4249, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_sigprocmask +TRACE_SYSCALL_TABLE(sys_sigprocmask, sys_sigprocmask, 4253, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_init_module +TRACE_SYSCALL_TABLE(sys_init_module, sys_init_module, 4257, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_delete_module +TRACE_SYSCALL_TABLE(sys_delete_module, sys_delete_module, 4259, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_quotactl +TRACE_SYSCALL_TABLE(sys_quotactl, sys_quotactl, 4263, 4) +#endif +#ifndef OVERRIDE_TABLE_32_sys_llseek +TRACE_SYSCALL_TABLE(sys_llseek, sys_llseek, 4281, 5) +#endif +#ifndef OVERRIDE_TABLE_32_sys_getdents +TRACE_SYSCALL_TABLE(sys_getdents, sys_getdents, 4283, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_select +TRACE_SYSCALL_TABLE(sys_select, sys_select, 4285, 5) +#endif +#ifndef OVERRIDE_TABLE_32_sys_readv +TRACE_SYSCALL_TABLE(sys_readv, sys_readv, 4291, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_writev +TRACE_SYSCALL_TABLE(sys_writev, sys_writev, 4293, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_cachectl +TRACE_SYSCALL_TABLE(sys_cachectl, sys_cachectl, 4297, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_sysctl +TRACE_SYSCALL_TABLE(sys_sysctl, sys_sysctl, 4307, 1) +#endif +#ifndef OVERRIDE_TABLE_32_sys_sched_setparam +TRACE_SYSCALL_TABLE(sys_sched_setparam, sys_sched_setparam, 4317, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_sched_getparam +TRACE_SYSCALL_TABLE(sys_sched_getparam, sys_sched_getparam, 4319, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_sched_setscheduler +TRACE_SYSCALL_TABLE(sys_sched_setscheduler, sys_sched_setscheduler, 4321, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_sched_rr_get_interval +TRACE_SYSCALL_TABLE(sys_sched_rr_get_interval, sys_sched_rr_get_interval, 4331, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_nanosleep +TRACE_SYSCALL_TABLE(sys_nanosleep, sys_nanosleep, 4333, 2) +#endif +#ifndef OVERRIDE_TABLE_32_sys_accept +TRACE_SYSCALL_TABLE(sys_accept, sys_accept, 4337, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_bind +TRACE_SYSCALL_TABLE(sys_bind, sys_bind, 4339, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_connect +TRACE_SYSCALL_TABLE(sys_connect, sys_connect, 4341, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_getpeername +TRACE_SYSCALL_TABLE(sys_getpeername, sys_getpeername, 4343, 3) +#endif +#ifndef OVERRIDE_TABLE_32_sys_getsockname +TRACE_SYSCALL_TABLE(sys_getsockname, sys_getsockname, 4345, 3) +#endif + +#endif /* CREATE_SYSCALL_TABLE */ --- linux-3.11.0.orig/ubuntu/lttng-modules/instrumentation/syscalls/headers/x86-64-syscalls-3.10.0-rc7_integers.h +++ linux-3.11.0/ubuntu/lttng-modules/instrumentation/syscalls/headers/x86-64-syscalls-3.10.0-rc7_integers.h @@ -0,0 +1,1097 @@ +/* THIS FILE IS AUTO-GENERATED. DO NOT EDIT */ +#ifndef CREATE_SYSCALL_TABLE + +#if !defined(_TRACE_SYSCALLS_INTEGERS_H) || defined(TRACE_HEADER_MULTI_READ) +#define _TRACE_SYSCALLS_INTEGERS_H + +#include +#include +#include "x86-64-syscalls-3.10.0-rc7_integers_override.h" +#include "syscalls_integers_override.h" + +SC_DECLARE_EVENT_CLASS_NOARGS(syscalls_noargs, + TP_STRUCT__entry(), + TP_fast_assign(), + TP_printk() +) +#ifndef OVERRIDE_64_sys_sched_yield +SC_DEFINE_EVENT_NOARGS(syscalls_noargs, sys_sched_yield) +#endif +#ifndef OVERRIDE_64_sys_pause +SC_DEFINE_EVENT_NOARGS(syscalls_noargs, sys_pause) +#endif +#ifndef OVERRIDE_64_sys_getpid +SC_DEFINE_EVENT_NOARGS(syscalls_noargs, sys_getpid) +#endif +#ifndef OVERRIDE_64_sys_getuid +SC_DEFINE_EVENT_NOARGS(syscalls_noargs, sys_getuid) +#endif +#ifndef OVERRIDE_64_sys_getgid +SC_DEFINE_EVENT_NOARGS(syscalls_noargs, sys_getgid) +#endif +#ifndef OVERRIDE_64_sys_geteuid +SC_DEFINE_EVENT_NOARGS(syscalls_noargs, sys_geteuid) +#endif +#ifndef OVERRIDE_64_sys_getegid +SC_DEFINE_EVENT_NOARGS(syscalls_noargs, sys_getegid) +#endif +#ifndef OVERRIDE_64_sys_getppid +SC_DEFINE_EVENT_NOARGS(syscalls_noargs, sys_getppid) +#endif +#ifndef OVERRIDE_64_sys_getpgrp +SC_DEFINE_EVENT_NOARGS(syscalls_noargs, sys_getpgrp) +#endif +#ifndef OVERRIDE_64_sys_setsid +SC_DEFINE_EVENT_NOARGS(syscalls_noargs, sys_setsid) +#endif +#ifndef OVERRIDE_64_sys_munlockall +SC_DEFINE_EVENT_NOARGS(syscalls_noargs, sys_munlockall) +#endif +#ifndef OVERRIDE_64_sys_vhangup +SC_DEFINE_EVENT_NOARGS(syscalls_noargs, sys_vhangup) +#endif +#ifndef OVERRIDE_64_sys_sync +SC_DEFINE_EVENT_NOARGS(syscalls_noargs, sys_sync) +#endif +#ifndef OVERRIDE_64_sys_gettid +SC_DEFINE_EVENT_NOARGS(syscalls_noargs, sys_gettid) +#endif +#ifndef OVERRIDE_64_sys_restart_syscall +SC_DEFINE_EVENT_NOARGS(syscalls_noargs, sys_restart_syscall) +#endif +#ifndef OVERRIDE_64_sys_inotify_init +SC_DEFINE_EVENT_NOARGS(syscalls_noargs, sys_inotify_init) +#endif +#ifndef OVERRIDE_64_sys_close +SC_TRACE_EVENT(sys_close, + TP_PROTO(unsigned int fd), + TP_ARGS(fd), + TP_STRUCT__entry(__field(unsigned int, fd)), + TP_fast_assign(tp_assign(fd, fd)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_brk +SC_TRACE_EVENT(sys_brk, + TP_PROTO(unsigned long brk), + TP_ARGS(brk), + TP_STRUCT__entry(__field(unsigned long, brk)), + TP_fast_assign(tp_assign(brk, brk)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_dup +SC_TRACE_EVENT(sys_dup, + TP_PROTO(unsigned int fildes), + TP_ARGS(fildes), + TP_STRUCT__entry(__field(unsigned int, fildes)), + TP_fast_assign(tp_assign(fildes, fildes)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_alarm +SC_TRACE_EVENT(sys_alarm, + TP_PROTO(unsigned int seconds), + TP_ARGS(seconds), + TP_STRUCT__entry(__field(unsigned int, seconds)), + TP_fast_assign(tp_assign(seconds, seconds)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_exit +SC_TRACE_EVENT(sys_exit, + TP_PROTO(int error_code), + TP_ARGS(error_code), + TP_STRUCT__entry(__field(int, error_code)), + TP_fast_assign(tp_assign(error_code, error_code)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_fsync +SC_TRACE_EVENT(sys_fsync, + TP_PROTO(unsigned int fd), + TP_ARGS(fd), + TP_STRUCT__entry(__field(unsigned int, fd)), + TP_fast_assign(tp_assign(fd, fd)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_fdatasync +SC_TRACE_EVENT(sys_fdatasync, + TP_PROTO(unsigned int fd), + TP_ARGS(fd), + TP_STRUCT__entry(__field(unsigned int, fd)), + TP_fast_assign(tp_assign(fd, fd)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_fchdir +SC_TRACE_EVENT(sys_fchdir, + TP_PROTO(unsigned int fd), + TP_ARGS(fd), + TP_STRUCT__entry(__field(unsigned int, fd)), + TP_fast_assign(tp_assign(fd, fd)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_umask +SC_TRACE_EVENT(sys_umask, + TP_PROTO(int mask), + TP_ARGS(mask), + TP_STRUCT__entry(__field(int, mask)), + TP_fast_assign(tp_assign(mask, mask)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_setuid +SC_TRACE_EVENT(sys_setuid, + TP_PROTO(uid_t uid), + TP_ARGS(uid), + TP_STRUCT__entry(__field(uid_t, uid)), + TP_fast_assign(tp_assign(uid, uid)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_setgid +SC_TRACE_EVENT(sys_setgid, + TP_PROTO(gid_t gid), + TP_ARGS(gid), + TP_STRUCT__entry(__field(gid_t, gid)), + TP_fast_assign(tp_assign(gid, gid)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_getpgid +SC_TRACE_EVENT(sys_getpgid, + TP_PROTO(pid_t pid), + TP_ARGS(pid), + TP_STRUCT__entry(__field(pid_t, pid)), + TP_fast_assign(tp_assign(pid, pid)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_setfsuid +SC_TRACE_EVENT(sys_setfsuid, + TP_PROTO(uid_t uid), + TP_ARGS(uid), + TP_STRUCT__entry(__field(uid_t, uid)), + TP_fast_assign(tp_assign(uid, uid)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_setfsgid +SC_TRACE_EVENT(sys_setfsgid, + TP_PROTO(gid_t gid), + TP_ARGS(gid), + TP_STRUCT__entry(__field(gid_t, gid)), + TP_fast_assign(tp_assign(gid, gid)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_getsid +SC_TRACE_EVENT(sys_getsid, + TP_PROTO(pid_t pid), + TP_ARGS(pid), + TP_STRUCT__entry(__field(pid_t, pid)), + TP_fast_assign(tp_assign(pid, pid)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_personality +SC_TRACE_EVENT(sys_personality, + TP_PROTO(unsigned int personality), + TP_ARGS(personality), + TP_STRUCT__entry(__field(unsigned int, personality)), + TP_fast_assign(tp_assign(personality, personality)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_sched_getscheduler +SC_TRACE_EVENT(sys_sched_getscheduler, + TP_PROTO(pid_t pid), + TP_ARGS(pid), + TP_STRUCT__entry(__field(pid_t, pid)), + TP_fast_assign(tp_assign(pid, pid)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_sched_get_priority_max +SC_TRACE_EVENT(sys_sched_get_priority_max, + TP_PROTO(int policy), + TP_ARGS(policy), + TP_STRUCT__entry(__field(int, policy)), + TP_fast_assign(tp_assign(policy, policy)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_sched_get_priority_min +SC_TRACE_EVENT(sys_sched_get_priority_min, + TP_PROTO(int policy), + TP_ARGS(policy), + TP_STRUCT__entry(__field(int, policy)), + TP_fast_assign(tp_assign(policy, policy)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_mlockall +SC_TRACE_EVENT(sys_mlockall, + TP_PROTO(int flags), + TP_ARGS(flags), + TP_STRUCT__entry(__field(int, flags)), + TP_fast_assign(tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_io_destroy +SC_TRACE_EVENT(sys_io_destroy, + TP_PROTO(aio_context_t ctx), + TP_ARGS(ctx), + TP_STRUCT__entry(__field(aio_context_t, ctx)), + TP_fast_assign(tp_assign(ctx, ctx)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_epoll_create +SC_TRACE_EVENT(sys_epoll_create, + TP_PROTO(int size), + TP_ARGS(size), + TP_STRUCT__entry(__field(int, size)), + TP_fast_assign(tp_assign(size, size)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_timer_getoverrun +SC_TRACE_EVENT(sys_timer_getoverrun, + TP_PROTO(timer_t timer_id), + TP_ARGS(timer_id), + TP_STRUCT__entry(__field(timer_t, timer_id)), + TP_fast_assign(tp_assign(timer_id, timer_id)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_timer_delete +SC_TRACE_EVENT(sys_timer_delete, + TP_PROTO(timer_t timer_id), + TP_ARGS(timer_id), + TP_STRUCT__entry(__field(timer_t, timer_id)), + TP_fast_assign(tp_assign(timer_id, timer_id)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_exit_group +SC_TRACE_EVENT(sys_exit_group, + TP_PROTO(int error_code), + TP_ARGS(error_code), + TP_STRUCT__entry(__field(int, error_code)), + TP_fast_assign(tp_assign(error_code, error_code)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_unshare +SC_TRACE_EVENT(sys_unshare, + TP_PROTO(unsigned long unshare_flags), + TP_ARGS(unshare_flags), + TP_STRUCT__entry(__field(unsigned long, unshare_flags)), + TP_fast_assign(tp_assign(unshare_flags, unshare_flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_eventfd +SC_TRACE_EVENT(sys_eventfd, + TP_PROTO(unsigned int count), + TP_ARGS(count), + TP_STRUCT__entry(__field(unsigned int, count)), + TP_fast_assign(tp_assign(count, count)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_epoll_create1 +SC_TRACE_EVENT(sys_epoll_create1, + TP_PROTO(int flags), + TP_ARGS(flags), + TP_STRUCT__entry(__field(int, flags)), + TP_fast_assign(tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_inotify_init1 +SC_TRACE_EVENT(sys_inotify_init1, + TP_PROTO(int flags), + TP_ARGS(flags), + TP_STRUCT__entry(__field(int, flags)), + TP_fast_assign(tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_syncfs +SC_TRACE_EVENT(sys_syncfs, + TP_PROTO(int fd), + TP_ARGS(fd), + TP_STRUCT__entry(__field(int, fd)), + TP_fast_assign(tp_assign(fd, fd)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_munmap +SC_TRACE_EVENT(sys_munmap, + TP_PROTO(unsigned long addr, size_t len), + TP_ARGS(addr, len), + TP_STRUCT__entry(__field_hex(unsigned long, addr) __field(size_t, len)), + TP_fast_assign(tp_assign(addr, addr) tp_assign(len, len)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_dup2 +SC_TRACE_EVENT(sys_dup2, + TP_PROTO(unsigned int oldfd, unsigned int newfd), + TP_ARGS(oldfd, newfd), + TP_STRUCT__entry(__field(unsigned int, oldfd) __field(unsigned int, newfd)), + TP_fast_assign(tp_assign(oldfd, oldfd) tp_assign(newfd, newfd)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_shutdown +SC_TRACE_EVENT(sys_shutdown, + TP_PROTO(int fd, int how), + TP_ARGS(fd, how), + TP_STRUCT__entry(__field(int, fd) __field(int, how)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(how, how)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_listen +SC_TRACE_EVENT(sys_listen, + TP_PROTO(int fd, int backlog), + TP_ARGS(fd, backlog), + TP_STRUCT__entry(__field(int, fd) __field(int, backlog)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(backlog, backlog)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_kill +SC_TRACE_EVENT(sys_kill, + TP_PROTO(pid_t pid, int sig), + TP_ARGS(pid, sig), + TP_STRUCT__entry(__field(pid_t, pid) __field(int, sig)), + TP_fast_assign(tp_assign(pid, pid) tp_assign(sig, sig)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_msgget +SC_TRACE_EVENT(sys_msgget, + TP_PROTO(key_t key, int msgflg), + TP_ARGS(key, msgflg), + TP_STRUCT__entry(__field(key_t, key) __field(int, msgflg)), + TP_fast_assign(tp_assign(key, key) tp_assign(msgflg, msgflg)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_flock +SC_TRACE_EVENT(sys_flock, + TP_PROTO(unsigned int fd, unsigned int cmd), + TP_ARGS(fd, cmd), + TP_STRUCT__entry(__field(unsigned int, fd) __field(unsigned int, cmd)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(cmd, cmd)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_ftruncate +SC_TRACE_EVENT(sys_ftruncate, + TP_PROTO(unsigned int fd, unsigned long length), + TP_ARGS(fd, length), + TP_STRUCT__entry(__field(unsigned int, fd) __field(unsigned long, length)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(length, length)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_fchmod +SC_TRACE_EVENT(sys_fchmod, + TP_PROTO(unsigned int fd, umode_t mode), + TP_ARGS(fd, mode), + TP_STRUCT__entry(__field(unsigned int, fd) __field(umode_t, mode)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(mode, mode)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_setpgid +SC_TRACE_EVENT(sys_setpgid, + TP_PROTO(pid_t pid, pid_t pgid), + TP_ARGS(pid, pgid), + TP_STRUCT__entry(__field(pid_t, pid) __field(pid_t, pgid)), + TP_fast_assign(tp_assign(pid, pid) tp_assign(pgid, pgid)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_setreuid +SC_TRACE_EVENT(sys_setreuid, + TP_PROTO(uid_t ruid, uid_t euid), + TP_ARGS(ruid, euid), + TP_STRUCT__entry(__field(uid_t, ruid) __field(uid_t, euid)), + TP_fast_assign(tp_assign(ruid, ruid) tp_assign(euid, euid)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_setregid +SC_TRACE_EVENT(sys_setregid, + TP_PROTO(gid_t rgid, gid_t egid), + TP_ARGS(rgid, egid), + TP_STRUCT__entry(__field(gid_t, rgid) __field(gid_t, egid)), + TP_fast_assign(tp_assign(rgid, rgid) tp_assign(egid, egid)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_getpriority +SC_TRACE_EVENT(sys_getpriority, + TP_PROTO(int which, int who), + TP_ARGS(which, who), + TP_STRUCT__entry(__field(int, which) __field(int, who)), + TP_fast_assign(tp_assign(which, which) tp_assign(who, who)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_mlock +SC_TRACE_EVENT(sys_mlock, + TP_PROTO(unsigned long start, size_t len), + TP_ARGS(start, len), + TP_STRUCT__entry(__field(unsigned long, start) __field(size_t, len)), + TP_fast_assign(tp_assign(start, start) tp_assign(len, len)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_munlock +SC_TRACE_EVENT(sys_munlock, + TP_PROTO(unsigned long start, size_t len), + TP_ARGS(start, len), + TP_STRUCT__entry(__field(unsigned long, start) __field(size_t, len)), + TP_fast_assign(tp_assign(start, start) tp_assign(len, len)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_tkill +SC_TRACE_EVENT(sys_tkill, + TP_PROTO(pid_t pid, int sig), + TP_ARGS(pid, sig), + TP_STRUCT__entry(__field(pid_t, pid) __field(int, sig)), + TP_fast_assign(tp_assign(pid, pid) tp_assign(sig, sig)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_ioprio_get +SC_TRACE_EVENT(sys_ioprio_get, + TP_PROTO(int which, int who), + TP_ARGS(which, who), + TP_STRUCT__entry(__field(int, which) __field(int, who)), + TP_fast_assign(tp_assign(which, which) tp_assign(who, who)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_inotify_rm_watch +SC_TRACE_EVENT(sys_inotify_rm_watch, + TP_PROTO(int fd, __s32 wd), + TP_ARGS(fd, wd), + TP_STRUCT__entry(__field(int, fd) __field(__s32, wd)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(wd, wd)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_timerfd_create +SC_TRACE_EVENT(sys_timerfd_create, + TP_PROTO(int clockid, int flags), + TP_ARGS(clockid, flags), + TP_STRUCT__entry(__field(int, clockid) __field(int, flags)), + TP_fast_assign(tp_assign(clockid, clockid) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_eventfd2 +SC_TRACE_EVENT(sys_eventfd2, + TP_PROTO(unsigned int count, int flags), + TP_ARGS(count, flags), + TP_STRUCT__entry(__field(unsigned int, count) __field(int, flags)), + TP_fast_assign(tp_assign(count, count) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_fanotify_init +SC_TRACE_EVENT(sys_fanotify_init, + TP_PROTO(unsigned int flags, unsigned int event_f_flags), + TP_ARGS(flags, event_f_flags), + TP_STRUCT__entry(__field(unsigned int, flags) __field(unsigned int, event_f_flags)), + TP_fast_assign(tp_assign(flags, flags) tp_assign(event_f_flags, event_f_flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_setns +SC_TRACE_EVENT(sys_setns, + TP_PROTO(int fd, int nstype), + TP_ARGS(fd, nstype), + TP_STRUCT__entry(__field(int, fd) __field(int, nstype)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(nstype, nstype)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_lseek +SC_TRACE_EVENT(sys_lseek, + TP_PROTO(unsigned int fd, off_t offset, unsigned int whence), + TP_ARGS(fd, offset, whence), + TP_STRUCT__entry(__field(unsigned int, fd) __field(off_t, offset) __field(unsigned int, whence)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(offset, offset) tp_assign(whence, whence)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_mprotect +SC_TRACE_EVENT(sys_mprotect, + TP_PROTO(unsigned long start, size_t len, unsigned long prot), + TP_ARGS(start, len, prot), + TP_STRUCT__entry(__field(unsigned long, start) __field(size_t, len) __field(unsigned long, prot)), + TP_fast_assign(tp_assign(start, start) tp_assign(len, len) tp_assign(prot, prot)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_ioctl +SC_TRACE_EVENT(sys_ioctl, + TP_PROTO(unsigned int fd, unsigned int cmd, unsigned long arg), + TP_ARGS(fd, cmd, arg), + TP_STRUCT__entry(__field(unsigned int, fd) __field(unsigned int, cmd) __field(unsigned long, arg)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(cmd, cmd) tp_assign(arg, arg)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_msync +SC_TRACE_EVENT(sys_msync, + TP_PROTO(unsigned long start, size_t len, int flags), + TP_ARGS(start, len, flags), + TP_STRUCT__entry(__field(unsigned long, start) __field(size_t, len) __field(int, flags)), + TP_fast_assign(tp_assign(start, start) tp_assign(len, len) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_madvise +SC_TRACE_EVENT(sys_madvise, + TP_PROTO(unsigned long start, size_t len_in, int behavior), + TP_ARGS(start, len_in, behavior), + TP_STRUCT__entry(__field(unsigned long, start) __field(size_t, len_in) __field(int, behavior)), + TP_fast_assign(tp_assign(start, start) tp_assign(len_in, len_in) tp_assign(behavior, behavior)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_shmget +SC_TRACE_EVENT(sys_shmget, + TP_PROTO(key_t key, size_t size, int shmflg), + TP_ARGS(key, size, shmflg), + TP_STRUCT__entry(__field(key_t, key) __field(size_t, size) __field(int, shmflg)), + TP_fast_assign(tp_assign(key, key) tp_assign(size, size) tp_assign(shmflg, shmflg)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_socket +SC_TRACE_EVENT(sys_socket, + TP_PROTO(int family, int type, int protocol), + TP_ARGS(family, type, protocol), + TP_STRUCT__entry(__field(int, family) __field(int, type) __field(int, protocol)), + TP_fast_assign(tp_assign(family, family) tp_assign(type, type) tp_assign(protocol, protocol)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_semget +SC_TRACE_EVENT(sys_semget, + TP_PROTO(key_t key, int nsems, int semflg), + TP_ARGS(key, nsems, semflg), + TP_STRUCT__entry(__field(key_t, key) __field(int, nsems) __field(int, semflg)), + TP_fast_assign(tp_assign(key, key) tp_assign(nsems, nsems) tp_assign(semflg, semflg)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_fcntl +SC_TRACE_EVENT(sys_fcntl, + TP_PROTO(unsigned int fd, unsigned int cmd, unsigned long arg), + TP_ARGS(fd, cmd, arg), + TP_STRUCT__entry(__field(unsigned int, fd) __field(unsigned int, cmd) __field(unsigned long, arg)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(cmd, cmd) tp_assign(arg, arg)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_fchown +SC_TRACE_EVENT(sys_fchown, + TP_PROTO(unsigned int fd, uid_t user, gid_t group), + TP_ARGS(fd, user, group), + TP_STRUCT__entry(__field(unsigned int, fd) __field(uid_t, user) __field(gid_t, group)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(user, user) tp_assign(group, group)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_setresuid +SC_TRACE_EVENT(sys_setresuid, + TP_PROTO(uid_t ruid, uid_t euid, uid_t suid), + TP_ARGS(ruid, euid, suid), + TP_STRUCT__entry(__field(uid_t, ruid) __field(uid_t, euid) __field(uid_t, suid)), + TP_fast_assign(tp_assign(ruid, ruid) tp_assign(euid, euid) tp_assign(suid, suid)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_setresgid +SC_TRACE_EVENT(sys_setresgid, + TP_PROTO(gid_t rgid, gid_t egid, gid_t sgid), + TP_ARGS(rgid, egid, sgid), + TP_STRUCT__entry(__field(gid_t, rgid) __field(gid_t, egid) __field(gid_t, sgid)), + TP_fast_assign(tp_assign(rgid, rgid) tp_assign(egid, egid) tp_assign(sgid, sgid)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_sysfs +SC_TRACE_EVENT(sys_sysfs, + TP_PROTO(int option, unsigned long arg1, unsigned long arg2), + TP_ARGS(option, arg1, arg2), + TP_STRUCT__entry(__field(int, option) __field(unsigned long, arg1) __field(unsigned long, arg2)), + TP_fast_assign(tp_assign(option, option) tp_assign(arg1, arg1) tp_assign(arg2, arg2)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_setpriority +SC_TRACE_EVENT(sys_setpriority, + TP_PROTO(int which, int who, int niceval), + TP_ARGS(which, who, niceval), + TP_STRUCT__entry(__field(int, which) __field(int, who) __field(int, niceval)), + TP_fast_assign(tp_assign(which, which) tp_assign(who, who) tp_assign(niceval, niceval)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_readahead +SC_TRACE_EVENT(sys_readahead, + TP_PROTO(int fd, loff_t offset, size_t count), + TP_ARGS(fd, offset, count), + TP_STRUCT__entry(__field(int, fd) __field(loff_t, offset) __field(size_t, count)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(offset, offset) tp_assign(count, count)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_tgkill +SC_TRACE_EVENT(sys_tgkill, + TP_PROTO(pid_t tgid, pid_t pid, int sig), + TP_ARGS(tgid, pid, sig), + TP_STRUCT__entry(__field(pid_t, tgid) __field(pid_t, pid) __field(int, sig)), + TP_fast_assign(tp_assign(tgid, tgid) tp_assign(pid, pid) tp_assign(sig, sig)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_ioprio_set +SC_TRACE_EVENT(sys_ioprio_set, + TP_PROTO(int which, int who, int ioprio), + TP_ARGS(which, who, ioprio), + TP_STRUCT__entry(__field(int, which) __field(int, who) __field(int, ioprio)), + TP_fast_assign(tp_assign(which, which) tp_assign(who, who) tp_assign(ioprio, ioprio)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_dup3 +SC_TRACE_EVENT(sys_dup3, + TP_PROTO(unsigned int oldfd, unsigned int newfd, int flags), + TP_ARGS(oldfd, newfd, flags), + TP_STRUCT__entry(__field(unsigned int, oldfd) __field(unsigned int, newfd) __field(int, flags)), + TP_fast_assign(tp_assign(oldfd, oldfd) tp_assign(newfd, newfd) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_semctl +SC_TRACE_EVENT(sys_semctl, + TP_PROTO(int semid, int semnum, int cmd, unsigned long arg), + TP_ARGS(semid, semnum, cmd, arg), + TP_STRUCT__entry(__field(int, semid) __field(int, semnum) __field(int, cmd) __field(unsigned long, arg)), + TP_fast_assign(tp_assign(semid, semid) tp_assign(semnum, semnum) tp_assign(cmd, cmd) tp_assign(arg, arg)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_ptrace +SC_TRACE_EVENT(sys_ptrace, + TP_PROTO(long request, long pid, unsigned long addr, unsigned long data), + TP_ARGS(request, pid, addr, data), + TP_STRUCT__entry(__field(long, request) __field(long, pid) __field_hex(unsigned long, addr) __field(unsigned long, data)), + TP_fast_assign(tp_assign(request, request) tp_assign(pid, pid) tp_assign(addr, addr) tp_assign(data, data)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_fadvise64 +SC_TRACE_EVENT(sys_fadvise64, + TP_PROTO(int fd, loff_t offset, size_t len, int advice), + TP_ARGS(fd, offset, len, advice), + TP_STRUCT__entry(__field(int, fd) __field(loff_t, offset) __field(size_t, len) __field(int, advice)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(offset, offset) tp_assign(len, len) tp_assign(advice, advice)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_tee +SC_TRACE_EVENT(sys_tee, + TP_PROTO(int fdin, int fdout, size_t len, unsigned int flags), + TP_ARGS(fdin, fdout, len, flags), + TP_STRUCT__entry(__field(int, fdin) __field(int, fdout) __field(size_t, len) __field(unsigned int, flags)), + TP_fast_assign(tp_assign(fdin, fdin) tp_assign(fdout, fdout) tp_assign(len, len) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_sync_file_range +SC_TRACE_EVENT(sys_sync_file_range, + TP_PROTO(int fd, loff_t offset, loff_t nbytes, unsigned int flags), + TP_ARGS(fd, offset, nbytes, flags), + TP_STRUCT__entry(__field(int, fd) __field(loff_t, offset) __field(loff_t, nbytes) __field(unsigned int, flags)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(offset, offset) tp_assign(nbytes, nbytes) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_fallocate +SC_TRACE_EVENT(sys_fallocate, + TP_PROTO(int fd, int mode, loff_t offset, loff_t len), + TP_ARGS(fd, mode, offset, len), + TP_STRUCT__entry(__field(int, fd) __field(int, mode) __field(loff_t, offset) __field(loff_t, len)), + TP_fast_assign(tp_assign(fd, fd) tp_assign(mode, mode) tp_assign(offset, offset) tp_assign(len, len)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_mremap +SC_TRACE_EVENT(sys_mremap, + TP_PROTO(unsigned long addr, unsigned long old_len, unsigned long new_len, unsigned long flags, unsigned long new_addr), + TP_ARGS(addr, old_len, new_len, flags, new_addr), + TP_STRUCT__entry(__field_hex(unsigned long, addr) __field(unsigned long, old_len) __field(unsigned long, new_len) __field(unsigned long, flags) __field_hex(unsigned long, new_addr)), + TP_fast_assign(tp_assign(addr, addr) tp_assign(old_len, old_len) tp_assign(new_len, new_len) tp_assign(flags, flags) tp_assign(new_addr, new_addr)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_prctl +SC_TRACE_EVENT(sys_prctl, + TP_PROTO(int option, unsigned long arg2, unsigned long arg3, unsigned long arg4, unsigned long arg5), + TP_ARGS(option, arg2, arg3, arg4, arg5), + TP_STRUCT__entry(__field(int, option) __field(unsigned long, arg2) __field(unsigned long, arg3) __field(unsigned long, arg4) __field(unsigned long, arg5)), + TP_fast_assign(tp_assign(option, option) tp_assign(arg2, arg2) tp_assign(arg3, arg3) tp_assign(arg4, arg4) tp_assign(arg5, arg5)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_remap_file_pages +SC_TRACE_EVENT(sys_remap_file_pages, + TP_PROTO(unsigned long start, unsigned long size, unsigned long prot, unsigned long pgoff, unsigned long flags), + TP_ARGS(start, size, prot, pgoff, flags), + TP_STRUCT__entry(__field(unsigned long, start) __field(unsigned long, size) __field(unsigned long, prot) __field(unsigned long, pgoff) __field(unsigned long, flags)), + TP_fast_assign(tp_assign(start, start) tp_assign(size, size) tp_assign(prot, prot) tp_assign(pgoff, pgoff) tp_assign(flags, flags)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_keyctl +SC_TRACE_EVENT(sys_keyctl, + TP_PROTO(int option, unsigned long arg2, unsigned long arg3, unsigned long arg4, unsigned long arg5), + TP_ARGS(option, arg2, arg3, arg4, arg5), + TP_STRUCT__entry(__field(int, option) __field(unsigned long, arg2) __field(unsigned long, arg3) __field(unsigned long, arg4) __field(unsigned long, arg5)), + TP_fast_assign(tp_assign(option, option) tp_assign(arg2, arg2) tp_assign(arg3, arg3) tp_assign(arg4, arg4) tp_assign(arg5, arg5)), + TP_printk() +) +#endif +#ifndef OVERRIDE_64_sys_mmap +SC_TRACE_EVENT(sys_mmap, + TP_PROTO(unsigned long addr, unsigned long len, unsigned long prot, unsigned long flags, unsigned long fd, unsigned long off), + TP_ARGS(addr, len, prot, flags, fd, off), + TP_STRUCT__entry(__field_hex(unsigned long, addr) __field(unsigned long, len) __field(unsigned long, prot) __field(unsigned long, flags) __field(unsigned long, fd) __field(unsigned long, off)), + TP_fast_assign(tp_assign(addr, addr) tp_assign(len, len) tp_assign(prot, prot) tp_assign(flags, flags) tp_assign(fd, fd) tp_assign(off, off)), + TP_printk() +) +#endif + +#endif /* _TRACE_SYSCALLS_INTEGERS_H */ + +/* This part must be outside protection */ +#include "../../../probes/define_trace.h" + +#else /* CREATE_SYSCALL_TABLE */ + +#include "x86-64-syscalls-3.10.0-rc7_integers_override.h" +#include "syscalls_integers_override.h" + +#ifndef OVERRIDE_TABLE_64_sys_sched_yield +TRACE_SYSCALL_TABLE(syscalls_noargs, sys_sched_yield, 24, 0) +#endif +#ifndef OVERRIDE_TABLE_64_sys_pause +TRACE_SYSCALL_TABLE(syscalls_noargs, sys_pause, 34, 0) +#endif +#ifndef OVERRIDE_TABLE_64_sys_getpid +TRACE_SYSCALL_TABLE(syscalls_noargs, sys_getpid, 39, 0) +#endif +#ifndef OVERRIDE_TABLE_64_sys_getuid +TRACE_SYSCALL_TABLE(syscalls_noargs, sys_getuid, 102, 0) +#endif +#ifndef OVERRIDE_TABLE_64_sys_getgid +TRACE_SYSCALL_TABLE(syscalls_noargs, sys_getgid, 104, 0) +#endif +#ifndef OVERRIDE_TABLE_64_sys_geteuid +TRACE_SYSCALL_TABLE(syscalls_noargs, sys_geteuid, 107, 0) +#endif +#ifndef OVERRIDE_TABLE_64_sys_getegid +TRACE_SYSCALL_TABLE(syscalls_noargs, sys_getegid, 108, 0) +#endif +#ifndef OVERRIDE_TABLE_64_sys_getppid +TRACE_SYSCALL_TABLE(syscalls_noargs, sys_getppid, 110, 0) +#endif +#ifndef OVERRIDE_TABLE_64_sys_getpgrp +TRACE_SYSCALL_TABLE(syscalls_noargs, sys_getpgrp, 111, 0) +#endif +#ifndef OVERRIDE_TABLE_64_sys_setsid +TRACE_SYSCALL_TABLE(syscalls_noargs, sys_setsid, 112, 0) +#endif +#ifndef OVERRIDE_TABLE_64_sys_munlockall +TRACE_SYSCALL_TABLE(syscalls_noargs, sys_munlockall, 152, 0) +#endif +#ifndef OVERRIDE_TABLE_64_sys_vhangup +TRACE_SYSCALL_TABLE(syscalls_noargs, sys_vhangup, 153, 0) +#endif +#ifndef OVERRIDE_TABLE_64_sys_sync +TRACE_SYSCALL_TABLE(syscalls_noargs, sys_sync, 162, 0) +#endif +#ifndef OVERRIDE_TABLE_64_sys_gettid +TRACE_SYSCALL_TABLE(syscalls_noargs, sys_gettid, 186, 0) +#endif +#ifndef OVERRIDE_TABLE_64_sys_restart_syscall +TRACE_SYSCALL_TABLE(syscalls_noargs, sys_restart_syscall, 219, 0) +#endif +#ifndef OVERRIDE_TABLE_64_sys_inotify_init +TRACE_SYSCALL_TABLE(syscalls_noargs, sys_inotify_init, 253, 0) +#endif +#ifndef OVERRIDE_TABLE_64_sys_close +TRACE_SYSCALL_TABLE(sys_close, sys_close, 3, 1) +#endif +#ifndef OVERRIDE_TABLE_64_sys_lseek +TRACE_SYSCALL_TABLE(sys_lseek, sys_lseek, 8, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_mmap +TRACE_SYSCALL_TABLE(sys_mmap, sys_mmap, 9, 6) +#endif +#ifndef OVERRIDE_TABLE_64_sys_mprotect +TRACE_SYSCALL_TABLE(sys_mprotect, sys_mprotect, 10, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_munmap +TRACE_SYSCALL_TABLE(sys_munmap, sys_munmap, 11, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_brk +TRACE_SYSCALL_TABLE(sys_brk, sys_brk, 12, 1) +#endif +#ifndef OVERRIDE_TABLE_64_sys_ioctl +TRACE_SYSCALL_TABLE(sys_ioctl, sys_ioctl, 16, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_mremap +TRACE_SYSCALL_TABLE(sys_mremap, sys_mremap, 25, 5) +#endif +#ifndef OVERRIDE_TABLE_64_sys_msync +TRACE_SYSCALL_TABLE(sys_msync, sys_msync, 26, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_madvise +TRACE_SYSCALL_TABLE(sys_madvise, sys_madvise, 28, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_shmget +TRACE_SYSCALL_TABLE(sys_shmget, sys_shmget, 29, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_dup +TRACE_SYSCALL_TABLE(sys_dup, sys_dup, 32, 1) +#endif +#ifndef OVERRIDE_TABLE_64_sys_dup2 +TRACE_SYSCALL_TABLE(sys_dup2, sys_dup2, 33, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_alarm +TRACE_SYSCALL_TABLE(sys_alarm, sys_alarm, 37, 1) +#endif +#ifndef OVERRIDE_TABLE_64_sys_socket +TRACE_SYSCALL_TABLE(sys_socket, sys_socket, 41, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_shutdown +TRACE_SYSCALL_TABLE(sys_shutdown, sys_shutdown, 48, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_listen +TRACE_SYSCALL_TABLE(sys_listen, sys_listen, 50, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_exit +TRACE_SYSCALL_TABLE(sys_exit, sys_exit, 60, 1) +#endif +#ifndef OVERRIDE_TABLE_64_sys_kill +TRACE_SYSCALL_TABLE(sys_kill, sys_kill, 62, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_semget +TRACE_SYSCALL_TABLE(sys_semget, sys_semget, 64, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_semctl +TRACE_SYSCALL_TABLE(sys_semctl, sys_semctl, 66, 4) +#endif +#ifndef OVERRIDE_TABLE_64_sys_msgget +TRACE_SYSCALL_TABLE(sys_msgget, sys_msgget, 68, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_fcntl +TRACE_SYSCALL_TABLE(sys_fcntl, sys_fcntl, 72, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_flock +TRACE_SYSCALL_TABLE(sys_flock, sys_flock, 73, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_fsync +TRACE_SYSCALL_TABLE(sys_fsync, sys_fsync, 74, 1) +#endif +#ifndef OVERRIDE_TABLE_64_sys_fdatasync +TRACE_SYSCALL_TABLE(sys_fdatasync, sys_fdatasync, 75, 1) +#endif +#ifndef OVERRIDE_TABLE_64_sys_ftruncate +TRACE_SYSCALL_TABLE(sys_ftruncate, sys_ftruncate, 77, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_fchdir +TRACE_SYSCALL_TABLE(sys_fchdir, sys_fchdir, 81, 1) +#endif +#ifndef OVERRIDE_TABLE_64_sys_fchmod +TRACE_SYSCALL_TABLE(sys_fchmod, sys_fchmod, 91, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_fchown +TRACE_SYSCALL_TABLE(sys_fchown, sys_fchown, 93, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_umask +TRACE_SYSCALL_TABLE(sys_umask, sys_umask, 95, 1) +#endif +#ifndef OVERRIDE_TABLE_64_sys_ptrace +TRACE_SYSCALL_TABLE(sys_ptrace, sys_ptrace, 101, 4) +#endif +#ifndef OVERRIDE_TABLE_64_sys_setuid +TRACE_SYSCALL_TABLE(sys_setuid, sys_setuid, 105, 1) +#endif +#ifndef OVERRIDE_TABLE_64_sys_setgid +TRACE_SYSCALL_TABLE(sys_setgid, sys_setgid, 106, 1) +#endif +#ifndef OVERRIDE_TABLE_64_sys_setpgid +TRACE_SYSCALL_TABLE(sys_setpgid, sys_setpgid, 109, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_setreuid +TRACE_SYSCALL_TABLE(sys_setreuid, sys_setreuid, 113, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_setregid +TRACE_SYSCALL_TABLE(sys_setregid, sys_setregid, 114, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_setresuid +TRACE_SYSCALL_TABLE(sys_setresuid, sys_setresuid, 117, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_setresgid +TRACE_SYSCALL_TABLE(sys_setresgid, sys_setresgid, 119, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_getpgid +TRACE_SYSCALL_TABLE(sys_getpgid, sys_getpgid, 121, 1) +#endif +#ifndef OVERRIDE_TABLE_64_sys_setfsuid +TRACE_SYSCALL_TABLE(sys_setfsuid, sys_setfsuid, 122, 1) +#endif +#ifndef OVERRIDE_TABLE_64_sys_setfsgid +TRACE_SYSCALL_TABLE(sys_setfsgid, sys_setfsgid, 123, 1) +#endif +#ifndef OVERRIDE_TABLE_64_sys_getsid +TRACE_SYSCALL_TABLE(sys_getsid, sys_getsid, 124, 1) +#endif +#ifndef OVERRIDE_TABLE_64_sys_personality +TRACE_SYSCALL_TABLE(sys_personality, sys_personality, 135, 1) +#endif +#ifndef OVERRIDE_TABLE_64_sys_sysfs +TRACE_SYSCALL_TABLE(sys_sysfs, sys_sysfs, 139, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_getpriority +TRACE_SYSCALL_TABLE(sys_getpriority, sys_getpriority, 140, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_setpriority +TRACE_SYSCALL_TABLE(sys_setpriority, sys_setpriority, 141, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_sched_getscheduler +TRACE_SYSCALL_TABLE(sys_sched_getscheduler, sys_sched_getscheduler, 145, 1) +#endif +#ifndef OVERRIDE_TABLE_64_sys_sched_get_priority_max +TRACE_SYSCALL_TABLE(sys_sched_get_priority_max, sys_sched_get_priority_max, 146, 1) +#endif +#ifndef OVERRIDE_TABLE_64_sys_sched_get_priority_min +TRACE_SYSCALL_TABLE(sys_sched_get_priority_min, sys_sched_get_priority_min, 147, 1) +#endif +#ifndef OVERRIDE_TABLE_64_sys_mlock +TRACE_SYSCALL_TABLE(sys_mlock, sys_mlock, 149, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_munlock +TRACE_SYSCALL_TABLE(sys_munlock, sys_munlock, 150, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_mlockall +TRACE_SYSCALL_TABLE(sys_mlockall, sys_mlockall, 151, 1) +#endif +#ifndef OVERRIDE_TABLE_64_sys_prctl +TRACE_SYSCALL_TABLE(sys_prctl, sys_prctl, 157, 5) +#endif +#ifndef OVERRIDE_TABLE_64_sys_readahead +TRACE_SYSCALL_TABLE(sys_readahead, sys_readahead, 187, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_tkill +TRACE_SYSCALL_TABLE(sys_tkill, sys_tkill, 200, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_io_destroy +TRACE_SYSCALL_TABLE(sys_io_destroy, sys_io_destroy, 207, 1) +#endif +#ifndef OVERRIDE_TABLE_64_sys_epoll_create +TRACE_SYSCALL_TABLE(sys_epoll_create, sys_epoll_create, 213, 1) +#endif +#ifndef OVERRIDE_TABLE_64_sys_remap_file_pages +TRACE_SYSCALL_TABLE(sys_remap_file_pages, sys_remap_file_pages, 216, 5) +#endif +#ifndef OVERRIDE_TABLE_64_sys_fadvise64 +TRACE_SYSCALL_TABLE(sys_fadvise64, sys_fadvise64, 221, 4) +#endif +#ifndef OVERRIDE_TABLE_64_sys_timer_getoverrun +TRACE_SYSCALL_TABLE(sys_timer_getoverrun, sys_timer_getoverrun, 225, 1) +#endif +#ifndef OVERRIDE_TABLE_64_sys_timer_delete +TRACE_SYSCALL_TABLE(sys_timer_delete, sys_timer_delete, 226, 1) +#endif +#ifndef OVERRIDE_TABLE_64_sys_exit_group +TRACE_SYSCALL_TABLE(sys_exit_group, sys_exit_group, 231, 1) +#endif +#ifndef OVERRIDE_TABLE_64_sys_tgkill +TRACE_SYSCALL_TABLE(sys_tgkill, sys_tgkill, 234, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_keyctl +TRACE_SYSCALL_TABLE(sys_keyctl, sys_keyctl, 250, 5) +#endif +#ifndef OVERRIDE_TABLE_64_sys_ioprio_set +TRACE_SYSCALL_TABLE(sys_ioprio_set, sys_ioprio_set, 251, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_ioprio_get +TRACE_SYSCALL_TABLE(sys_ioprio_get, sys_ioprio_get, 252, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_inotify_rm_watch +TRACE_SYSCALL_TABLE(sys_inotify_rm_watch, sys_inotify_rm_watch, 255, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_unshare +TRACE_SYSCALL_TABLE(sys_unshare, sys_unshare, 272, 1) +#endif +#ifndef OVERRIDE_TABLE_64_sys_tee +TRACE_SYSCALL_TABLE(sys_tee, sys_tee, 276, 4) +#endif +#ifndef OVERRIDE_TABLE_64_sys_sync_file_range +TRACE_SYSCALL_TABLE(sys_sync_file_range, sys_sync_file_range, 277, 4) +#endif +#ifndef OVERRIDE_TABLE_64_sys_timerfd_create +TRACE_SYSCALL_TABLE(sys_timerfd_create, sys_timerfd_create, 283, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_eventfd +TRACE_SYSCALL_TABLE(sys_eventfd, sys_eventfd, 284, 1) +#endif +#ifndef OVERRIDE_TABLE_64_sys_fallocate +TRACE_SYSCALL_TABLE(sys_fallocate, sys_fallocate, 285, 4) +#endif +#ifndef OVERRIDE_TABLE_64_sys_eventfd2 +TRACE_SYSCALL_TABLE(sys_eventfd2, sys_eventfd2, 290, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_epoll_create1 +TRACE_SYSCALL_TABLE(sys_epoll_create1, sys_epoll_create1, 291, 1) +#endif +#ifndef OVERRIDE_TABLE_64_sys_dup3 +TRACE_SYSCALL_TABLE(sys_dup3, sys_dup3, 292, 3) +#endif +#ifndef OVERRIDE_TABLE_64_sys_inotify_init1 +TRACE_SYSCALL_TABLE(sys_inotify_init1, sys_inotify_init1, 294, 1) +#endif +#ifndef OVERRIDE_TABLE_64_sys_fanotify_init +TRACE_SYSCALL_TABLE(sys_fanotify_init, sys_fanotify_init, 300, 2) +#endif +#ifndef OVERRIDE_TABLE_64_sys_syncfs +TRACE_SYSCALL_TABLE(sys_syncfs, sys_syncfs, 306, 1) +#endif +#ifndef OVERRIDE_TABLE_64_sys_setns +TRACE_SYSCALL_TABLE(sys_setns, sys_setns, 308, 2) +#endif + +#endif /* CREATE_SYSCALL_TABLE */ --- linux-3.11.0.orig/ubuntu/lttng-modules/instrumentation/syscalls/headers/x86-32-syscalls-3.1.0-rc6_integers_override.h +++ linux-3.11.0/ubuntu/lttng-modules/instrumentation/syscalls/headers/x86-32-syscalls-3.1.0-rc6_integers_override.h @@ -0,0 +1,38 @@ +#ifndef CONFIG_UID16 + +#define OVERRIDE_32_sys_getuid16 +#define OVERRIDE_32_sys_getgid16 +#define OVERRIDE_32_sys_geteuid16 +#define OVERRIDE_32_sys_getegid16 +#define OVERRIDE_32_sys_setuid16 +#define OVERRIDE_32_sys_setgid16 +#define OVERRIDE_32_sys_setfsuid16 +#define OVERRIDE_32_sys_setfsgid16 +#define OVERRIDE_32_sys_setreuid16 +#define OVERRIDE_32_sys_setregid16 +#define OVERRIDE_32_sys_fchown16 +#define OVERRIDE_32_sys_setresuid16 +#define OVERRIDE_32_sys_setresgid16 + +#define OVERRIDE_TABLE_32_sys_getuid16 +#define OVERRIDE_TABLE_32_sys_getgid16 +#define OVERRIDE_TABLE_32_sys_geteuid16 +#define OVERRIDE_TABLE_32_sys_getegid16 +#define OVERRIDE_TABLE_32_sys_setuid16 +#define OVERRIDE_TABLE_32_sys_setgid16 +#define OVERRIDE_TABLE_32_sys_setreuid16 +#define OVERRIDE_TABLE_32_sys_setregid16 +#define OVERRIDE_TABLE_32_sys_fchown16 +#define OVERRIDE_TABLE_32_sys_setfsuid16 +#define OVERRIDE_TABLE_32_sys_setfsgid16 +#define OVERRIDE_TABLE_32_sys_setresuid16 +#define OVERRIDE_TABLE_32_sys_setresgid16 + +#endif + +#ifdef CREATE_SYSCALL_TABLE + +#define OVERRIDE_TABLE_32_sys_mmap +TRACE_SYSCALL_TABLE(sys_mmap, sys_mmap, 90, 6) + +#endif --- linux-3.11.0.orig/ubuntu/lttng-modules/instrumentation/syscalls/headers/x86-64-syscalls-3.10.0-rc7_integers_override.h +++ linux-3.11.0/ubuntu/lttng-modules/instrumentation/syscalls/headers/x86-64-syscalls-3.10.0-rc7_integers_override.h @@ -0,0 +1,3 @@ +/* + * this is a place-holder for x86_64 integer syscall definition override. + */ --- linux-3.11.0.orig/ubuntu/lttng-modules/instrumentation/syscalls/headers/compat_syscalls_pointers.h +++ linux-3.11.0/ubuntu/lttng-modules/instrumentation/syscalls/headers/compat_syscalls_pointers.h @@ -0,0 +1,3 @@ +#ifdef CONFIG_X86_64 +#include "x86-32-syscalls-3.1.0-rc6_pointers.h" +#endif --- linux-3.11.0.orig/ubuntu/lttng-modules/instrumentation/syscalls/headers/x86-64-syscalls-3.10.0-rc7_pointers_override.h +++ linux-3.11.0/ubuntu/lttng-modules/instrumentation/syscalls/headers/x86-64-syscalls-3.10.0-rc7_pointers_override.h @@ -0,0 +1,12 @@ +#ifndef CREATE_SYSCALL_TABLE + +#else /* CREATE_SYSCALL_TABLE */ + +#define OVERRIDE_TABLE_64_sys_clone +TRACE_SYSCALL_TABLE(sys_clone, sys_clone, 56, 5) +#define OVERRIDE_TABLE_64_sys_execve +TRACE_SYSCALL_TABLE(sys_execve, sys_execve, 59, 3) +#define OVERRIDE_TABLE_64_sys_getcpu +TRACE_SYSCALL_TABLE(sys_getcpu, sys_getcpu, 309, 3) + +#endif /* CREATE_SYSCALL_TABLE */ --- linux-3.11.0.orig/ubuntu/lttng-modules/instrumentation/syscalls/3.1.0-rc6/x86-32-syscalls-3.1.0-rc6 +++ linux-3.11.0/ubuntu/lttng-modules/instrumentation/syscalls/3.1.0-rc6/x86-32-syscalls-3.1.0-rc6 @@ -0,0 +1,291 @@ +syscall sys_restart_syscall nr 0 nbargs 0 types: () args: () +syscall sys_exit nr 1 nbargs 1 types: (int) args: (error_code) +syscall sys_read nr 3 nbargs 3 types: (unsigned int, char *, size_t) args: (fd, buf, count) +syscall sys_write nr 4 nbargs 3 types: (unsigned int, const char *, size_t) args: (fd, buf, count) +syscall sys_open nr 5 nbargs 3 types: (const char *, int, int) args: (filename, flags, mode) +syscall sys_close nr 6 nbargs 1 types: (unsigned int) args: (fd) +syscall sys_waitpid nr 7 nbargs 3 types: (pid_t, int *, int) args: (pid, stat_addr, options) +syscall sys_creat nr 8 nbargs 2 types: (const char *, int) args: (pathname, mode) +syscall sys_link nr 9 nbargs 2 types: (const char *, const char *) args: (oldname, newname) +syscall sys_unlink nr 10 nbargs 1 types: (const char *) args: (pathname) +syscall sys_chdir nr 12 nbargs 1 types: (const char *) args: (filename) +syscall sys_time nr 13 nbargs 1 types: (time_t *) args: (tloc) +syscall sys_mknod nr 14 nbargs 3 types: (const char *, int, unsigned) args: (filename, mode, dev) +syscall sys_chmod nr 15 nbargs 2 types: (const char *, mode_t) args: (filename, mode) +syscall sys_lchown16 nr 16 nbargs 3 types: (const char *, old_uid_t, old_gid_t) args: (filename, user, group) +syscall sys_stat nr 18 nbargs 2 types: (const char *, struct __old_kernel_stat *) args: (filename, statbuf) +syscall sys_lseek nr 19 nbargs 3 types: (unsigned int, off_t, unsigned int) args: (fd, offset, origin) +syscall sys_getpid nr 20 nbargs 0 types: () args: () +syscall sys_mount nr 21 nbargs 5 types: (char *, char *, char *, unsigned long, void *) args: (dev_name, dir_name, type, flags, data) +syscall sys_oldumount nr 22 nbargs 1 types: (char *) args: (name) +syscall sys_setuid16 nr 23 nbargs 1 types: (old_uid_t) args: (uid) +syscall sys_getuid16 nr 24 nbargs 0 types: () args: () +syscall sys_stime nr 25 nbargs 1 types: (time_t *) args: (tptr) +syscall sys_ptrace nr 26 nbargs 4 types: (long, long, unsigned long, unsigned long) args: (request, pid, addr, data) +syscall sys_alarm nr 27 nbargs 1 types: (unsigned int) args: (seconds) +syscall sys_fstat nr 28 nbargs 2 types: (unsigned int, struct __old_kernel_stat *) args: (fd, statbuf) +syscall sys_pause nr 29 nbargs 0 types: () args: () +syscall sys_utime nr 30 nbargs 2 types: (char *, struct utimbuf *) args: (filename, times) +syscall sys_access nr 33 nbargs 2 types: (const char *, int) args: (filename, mode) +syscall sys_nice nr 34 nbargs 1 types: (int) args: (increment) +syscall sys_sync nr 36 nbargs 0 types: () args: () +syscall sys_kill nr 37 nbargs 2 types: (pid_t, int) args: (pid, sig) +syscall sys_rename nr 38 nbargs 2 types: (const char *, const char *) args: (oldname, newname) +syscall sys_mkdir nr 39 nbargs 2 types: (const char *, int) args: (pathname, mode) +syscall sys_rmdir nr 40 nbargs 1 types: (const char *) args: (pathname) +syscall sys_dup nr 41 nbargs 1 types: (unsigned int) args: (fildes) +syscall sys_pipe nr 42 nbargs 1 types: (int *) args: (fildes) +syscall sys_times nr 43 nbargs 1 types: (struct tms *) args: (tbuf) +syscall sys_brk nr 45 nbargs 1 types: (unsigned long) args: (brk) +syscall sys_setgid16 nr 46 nbargs 1 types: (old_gid_t) args: (gid) +syscall sys_getgid16 nr 47 nbargs 0 types: () args: () +syscall sys_signal nr 48 nbargs 2 types: (int, __sighandler_t) args: (sig, handler) +syscall sys_geteuid16 nr 49 nbargs 0 types: () args: () +syscall sys_getegid16 nr 50 nbargs 0 types: () args: () +syscall sys_acct nr 51 nbargs 1 types: (const char *) args: (name) +syscall sys_umount nr 52 nbargs 2 types: (char *, int) args: (name, flags) +syscall sys_ioctl nr 54 nbargs 3 types: (unsigned int, unsigned int, unsigned long) args: (fd, cmd, arg) +syscall sys_fcntl nr 55 nbargs 3 types: (unsigned int, unsigned int, unsigned long) args: (fd, cmd, arg) +syscall sys_setpgid nr 57 nbargs 2 types: (pid_t, pid_t) args: (pid, pgid) +syscall sys_olduname nr 59 nbargs 1 types: (struct oldold_utsname *) args: (name) +syscall sys_umask nr 60 nbargs 1 types: (int) args: (mask) +syscall sys_chroot nr 61 nbargs 1 types: (const char *) args: (filename) +syscall sys_ustat nr 62 nbargs 2 types: (unsigned, struct ustat *) args: (dev, ubuf) +syscall sys_dup2 nr 63 nbargs 2 types: (unsigned int, unsigned int) args: (oldfd, newfd) +syscall sys_getppid nr 64 nbargs 0 types: () args: () +syscall sys_getpgrp nr 65 nbargs 0 types: () args: () +syscall sys_setsid nr 66 nbargs 0 types: () args: () +syscall sys_sgetmask nr 68 nbargs 0 types: () args: () +syscall sys_ssetmask nr 69 nbargs 1 types: (int) args: (newmask) +syscall sys_setreuid16 nr 70 nbargs 2 types: (old_uid_t, old_uid_t) args: (ruid, euid) +syscall sys_setregid16 nr 71 nbargs 2 types: (old_gid_t, old_gid_t) args: (rgid, egid) +syscall sys_sigpending nr 73 nbargs 1 types: (old_sigset_t *) args: (set) +syscall sys_sethostname nr 74 nbargs 2 types: (char *, int) args: (name, len) +syscall sys_setrlimit nr 75 nbargs 2 types: (unsigned int, struct rlimit *) args: (resource, rlim) +syscall sys_old_getrlimit nr 76 nbargs 2 types: (unsigned int, struct rlimit *) args: (resource, rlim) +syscall sys_getrusage nr 77 nbargs 2 types: (int, struct rusage *) args: (who, ru) +syscall sys_gettimeofday nr 78 nbargs 2 types: (struct timeval *, struct timezone *) args: (tv, tz) +syscall sys_settimeofday nr 79 nbargs 2 types: (struct timeval *, struct timezone *) args: (tv, tz) +syscall sys_getgroups16 nr 80 nbargs 2 types: (int, old_gid_t *) args: (gidsetsize, grouplist) +syscall sys_setgroups16 nr 81 nbargs 2 types: (int, old_gid_t *) args: (gidsetsize, grouplist) +syscall sys_old_select nr 82 nbargs 1 types: (struct sel_arg_struct *) args: (arg) +syscall sys_symlink nr 83 nbargs 2 types: (const char *, const char *) args: (oldname, newname) +syscall sys_lstat nr 84 nbargs 2 types: (const char *, struct __old_kernel_stat *) args: (filename, statbuf) +syscall sys_readlink nr 85 nbargs 3 types: (const char *, char *, int) args: (path, buf, bufsiz) +syscall sys_uselib nr 86 nbargs 1 types: (const char *) args: (library) +syscall sys_swapon nr 87 nbargs 2 types: (const char *, int) args: (specialfile, swap_flags) +syscall sys_reboot nr 88 nbargs 4 types: (int, int, unsigned int, void *) args: (magic1, magic2, cmd, arg) +syscall sys_old_readdir nr 89 nbargs 3 types: (unsigned int, struct old_linux_dirent *, unsigned int) args: (fd, dirent, count) +syscall sys_old_mmap nr 90 nbargs 1 types: (struct mmap_arg_struct *) args: (arg) +syscall sys_munmap nr 91 nbargs 2 types: (unsigned long, size_t) args: (addr, len) +syscall sys_truncate nr 92 nbargs 2 types: (const char *, long) args: (path, length) +syscall sys_ftruncate nr 93 nbargs 2 types: (unsigned int, unsigned long) args: (fd, length) +syscall sys_fchmod nr 94 nbargs 2 types: (unsigned int, mode_t) args: (fd, mode) +syscall sys_fchown16 nr 95 nbargs 3 types: (unsigned int, old_uid_t, old_gid_t) args: (fd, user, group) +syscall sys_getpriority nr 96 nbargs 2 types: (int, int) args: (which, who) +syscall sys_setpriority nr 97 nbargs 3 types: (int, int, int) args: (which, who, niceval) +syscall sys_statfs nr 99 nbargs 2 types: (const char *, struct statfs *) args: (pathname, buf) +syscall sys_fstatfs nr 100 nbargs 2 types: (unsigned int, struct statfs *) args: (fd, buf) +syscall sys_socketcall nr 102 nbargs 2 types: (int, unsigned long *) args: (call, args) +syscall sys_syslog nr 103 nbargs 3 types: (int, char *, int) args: (type, buf, len) +syscall sys_setitimer nr 104 nbargs 3 types: (int, struct itimerval *, struct itimerval *) args: (which, value, ovalue) +syscall sys_getitimer nr 105 nbargs 2 types: (int, struct itimerval *) args: (which, value) +syscall sys_newstat nr 106 nbargs 2 types: (const char *, struct stat *) args: (filename, statbuf) +syscall sys_newlstat nr 107 nbargs 2 types: (const char *, struct stat *) args: (filename, statbuf) +syscall sys_newfstat nr 108 nbargs 2 types: (unsigned int, struct stat *) args: (fd, statbuf) +syscall sys_uname nr 109 nbargs 1 types: (struct old_utsname *) args: (name) +syscall sys_vhangup nr 111 nbargs 0 types: () args: () +syscall sys_wait4 nr 114 nbargs 4 types: (pid_t, int *, int, struct rusage *) args: (upid, stat_addr, options, ru) +syscall sys_swapoff nr 115 nbargs 1 types: (const char *) args: (specialfile) +syscall sys_sysinfo nr 116 nbargs 1 types: (struct sysinfo *) args: (info) +syscall sys_ipc nr 117 nbargs 6 types: (unsigned int, int, unsigned long, unsigned long, void *, long) args: (call, first, second, third, ptr, fifth) +syscall sys_fsync nr 118 nbargs 1 types: (unsigned int) args: (fd) +syscall sys_setdomainname nr 121 nbargs 2 types: (char *, int) args: (name, len) +syscall sys_newuname nr 122 nbargs 1 types: (struct new_utsname *) args: (name) +syscall sys_adjtimex nr 124 nbargs 1 types: (struct timex *) args: (txc_p) +syscall sys_mprotect nr 125 nbargs 3 types: (unsigned long, size_t, unsigned long) args: (start, len, prot) +syscall sys_sigprocmask nr 126 nbargs 3 types: (int, old_sigset_t *, old_sigset_t *) args: (how, nset, oset) +syscall sys_init_module nr 128 nbargs 3 types: (void *, unsigned long, const char *) args: (umod, len, uargs) +syscall sys_delete_module nr 129 nbargs 2 types: (const char *, unsigned int) args: (name_user, flags) +syscall sys_quotactl nr 131 nbargs 4 types: (unsigned int, const char *, qid_t, void *) args: (cmd, special, id, addr) +syscall sys_getpgid nr 132 nbargs 1 types: (pid_t) args: (pid) +syscall sys_fchdir nr 133 nbargs 1 types: (unsigned int) args: (fd) +syscall sys_bdflush nr 134 nbargs 2 types: (int, long) args: (func, data) +syscall sys_sysfs nr 135 nbargs 3 types: (int, unsigned long, unsigned long) args: (option, arg1, arg2) +syscall sys_personality nr 136 nbargs 1 types: (unsigned int) args: (personality) +syscall sys_setfsuid16 nr 138 nbargs 1 types: (old_uid_t) args: (uid) +syscall sys_setfsgid16 nr 139 nbargs 1 types: (old_gid_t) args: (gid) +syscall sys_llseek nr 140 nbargs 5 types: (unsigned int, unsigned long, unsigned long, loff_t *, unsigned int) args: (fd, offset_high, offset_low, result, origin) +syscall sys_getdents nr 141 nbargs 3 types: (unsigned int, struct linux_dirent *, unsigned int) args: (fd, dirent, count) +syscall sys_select nr 142 nbargs 5 types: (int, fd_set *, fd_set *, fd_set *, struct timeval *) args: (n, inp, outp, exp, tvp) +syscall sys_flock nr 143 nbargs 2 types: (unsigned int, unsigned int) args: (fd, cmd) +syscall sys_msync nr 144 nbargs 3 types: (unsigned long, size_t, int) args: (start, len, flags) +syscall sys_readv nr 145 nbargs 3 types: (unsigned long, const struct iovec *, unsigned long) args: (fd, vec, vlen) +syscall sys_writev nr 146 nbargs 3 types: (unsigned long, const struct iovec *, unsigned long) args: (fd, vec, vlen) +syscall sys_getsid nr 147 nbargs 1 types: (pid_t) args: (pid) +syscall sys_fdatasync nr 148 nbargs 1 types: (unsigned int) args: (fd) +syscall sys_sysctl nr 149 nbargs 1 types: (struct __sysctl_args *) args: (args) +syscall sys_mlock nr 150 nbargs 2 types: (unsigned long, size_t) args: (start, len) +syscall sys_munlock nr 151 nbargs 2 types: (unsigned long, size_t) args: (start, len) +syscall sys_mlockall nr 152 nbargs 1 types: (int) args: (flags) +syscall sys_munlockall nr 153 nbargs 0 types: () args: () +syscall sys_sched_setparam nr 154 nbargs 2 types: (pid_t, struct sched_param *) args: (pid, param) +syscall sys_sched_getparam nr 155 nbargs 2 types: (pid_t, struct sched_param *) args: (pid, param) +syscall sys_sched_setscheduler nr 156 nbargs 3 types: (pid_t, int, struct sched_param *) args: (pid, policy, param) +syscall sys_sched_getscheduler nr 157 nbargs 1 types: (pid_t) args: (pid) +syscall sys_sched_yield nr 158 nbargs 0 types: () args: () +syscall sys_sched_get_priority_max nr 159 nbargs 1 types: (int) args: (policy) +syscall sys_sched_get_priority_min nr 160 nbargs 1 types: (int) args: (policy) +syscall sys_sched_rr_get_interval nr 161 nbargs 2 types: (pid_t, struct timespec *) args: (pid, interval) +syscall sys_nanosleep nr 162 nbargs 2 types: (struct timespec *, struct timespec *) args: (rqtp, rmtp) +syscall sys_mremap nr 163 nbargs 5 types: (unsigned long, unsigned long, unsigned long, unsigned long, unsigned long) args: (addr, old_len, new_len, flags, new_addr) +syscall sys_setresuid16 nr 164 nbargs 3 types: (old_uid_t, old_uid_t, old_uid_t) args: (ruid, euid, suid) +syscall sys_getresuid16 nr 165 nbargs 3 types: (old_uid_t *, old_uid_t *, old_uid_t *) args: (ruid, euid, suid) +syscall sys_poll nr 168 nbargs 3 types: (struct pollfd *, unsigned int, long) args: (ufds, nfds, timeout_msecs) +syscall sys_setresgid16 nr 170 nbargs 3 types: (old_gid_t, old_gid_t, old_gid_t) args: (rgid, egid, sgid) +syscall sys_getresgid16 nr 171 nbargs 3 types: (old_gid_t *, old_gid_t *, old_gid_t *) args: (rgid, egid, sgid) +syscall sys_prctl nr 172 nbargs 5 types: (int, unsigned long, unsigned long, unsigned long, unsigned long) args: (option, arg2, arg3, arg4, arg5) +syscall sys_rt_sigaction nr 174 nbargs 4 types: (int, const struct sigaction *, struct sigaction *, size_t) args: (sig, act, oact, sigsetsize) +syscall sys_rt_sigprocmask nr 175 nbargs 4 types: (int, sigset_t *, sigset_t *, size_t) args: (how, nset, oset, sigsetsize) +syscall sys_rt_sigpending nr 176 nbargs 2 types: (sigset_t *, size_t) args: (set, sigsetsize) +syscall sys_rt_sigtimedwait nr 177 nbargs 4 types: (const sigset_t *, siginfo_t *, const struct timespec *, size_t) args: (uthese, uinfo, uts, sigsetsize) +syscall sys_rt_sigqueueinfo nr 178 nbargs 3 types: (pid_t, int, siginfo_t *) args: (pid, sig, uinfo) +syscall sys_rt_sigsuspend nr 179 nbargs 2 types: (sigset_t *, size_t) args: (unewset, sigsetsize) +syscall sys_chown16 nr 182 nbargs 3 types: (const char *, old_uid_t, old_gid_t) args: (filename, user, group) +syscall sys_getcwd nr 183 nbargs 2 types: (char *, unsigned long) args: (buf, size) +syscall sys_capget nr 184 nbargs 2 types: (cap_user_header_t, cap_user_data_t) args: (header, dataptr) +syscall sys_capset nr 185 nbargs 2 types: (cap_user_header_t, const cap_user_data_t) args: (header, data) +syscall sys_sendfile nr 187 nbargs 4 types: (int, int, off_t *, size_t) args: (out_fd, in_fd, offset, count) +syscall sys_getrlimit nr 191 nbargs 2 types: (unsigned int, struct rlimit *) args: (resource, rlim) +syscall sys_mmap_pgoff nr 192 nbargs 6 types: (unsigned long, unsigned long, unsigned long, unsigned long, unsigned long, unsigned long) args: (addr, len, prot, flags, fd, pgoff) +syscall sys_stat64 nr 195 nbargs 2 types: (const char *, struct stat64 *) args: (filename, statbuf) +syscall sys_lstat64 nr 196 nbargs 2 types: (const char *, struct stat64 *) args: (filename, statbuf) +syscall sys_fstat64 nr 197 nbargs 2 types: (unsigned long, struct stat64 *) args: (fd, statbuf) +syscall sys_lchown nr 198 nbargs 3 types: (const char *, uid_t, gid_t) args: (filename, user, group) +syscall sys_getuid nr 199 nbargs 0 types: () args: () +syscall sys_getgid nr 200 nbargs 0 types: () args: () +syscall sys_geteuid nr 201 nbargs 0 types: () args: () +syscall sys_getegid nr 202 nbargs 0 types: () args: () +syscall sys_setreuid nr 203 nbargs 2 types: (uid_t, uid_t) args: (ruid, euid) +syscall sys_setregid nr 204 nbargs 2 types: (gid_t, gid_t) args: (rgid, egid) +syscall sys_getgroups nr 205 nbargs 2 types: (int, gid_t *) args: (gidsetsize, grouplist) +syscall sys_setgroups nr 206 nbargs 2 types: (int, gid_t *) args: (gidsetsize, grouplist) +syscall sys_fchown nr 207 nbargs 3 types: (unsigned int, uid_t, gid_t) args: (fd, user, group) +syscall sys_setresuid nr 208 nbargs 3 types: (uid_t, uid_t, uid_t) args: (ruid, euid, suid) +syscall sys_getresuid nr 209 nbargs 3 types: (uid_t *, uid_t *, uid_t *) args: (ruid, euid, suid) +syscall sys_setresgid nr 210 nbargs 3 types: (gid_t, gid_t, gid_t) args: (rgid, egid, sgid) +syscall sys_getresgid nr 211 nbargs 3 types: (gid_t *, gid_t *, gid_t *) args: (rgid, egid, sgid) +syscall sys_chown nr 212 nbargs 3 types: (const char *, uid_t, gid_t) args: (filename, user, group) +syscall sys_setuid nr 213 nbargs 1 types: (uid_t) args: (uid) +syscall sys_setgid nr 214 nbargs 1 types: (gid_t) args: (gid) +syscall sys_setfsuid nr 215 nbargs 1 types: (uid_t) args: (uid) +syscall sys_setfsgid nr 216 nbargs 1 types: (gid_t) args: (gid) +syscall sys_pivot_root nr 217 nbargs 2 types: (const char *, const char *) args: (new_root, put_old) +syscall sys_mincore nr 218 nbargs 3 types: (unsigned long, size_t, unsigned char *) args: (start, len, vec) +syscall sys_madvise nr 219 nbargs 3 types: (unsigned long, size_t, int) args: (start, len_in, behavior) +syscall sys_getdents64 nr 220 nbargs 3 types: (unsigned int, struct linux_dirent64 *, unsigned int) args: (fd, dirent, count) +syscall sys_fcntl64 nr 221 nbargs 3 types: (unsigned int, unsigned int, unsigned long) args: (fd, cmd, arg) +syscall sys_gettid nr 224 nbargs 0 types: () args: () +syscall sys_setxattr nr 226 nbargs 5 types: (const char *, const char *, const void *, size_t, int) args: (pathname, name, value, size, flags) +syscall sys_lsetxattr nr 227 nbargs 5 types: (const char *, const char *, const void *, size_t, int) args: (pathname, name, value, size, flags) +syscall sys_fsetxattr nr 228 nbargs 5 types: (int, const char *, const void *, size_t, int) args: (fd, name, value, size, flags) +syscall sys_getxattr nr 229 nbargs 4 types: (const char *, const char *, void *, size_t) args: (pathname, name, value, size) +syscall sys_lgetxattr nr 230 nbargs 4 types: (const char *, const char *, void *, size_t) args: (pathname, name, value, size) +syscall sys_fgetxattr nr 231 nbargs 4 types: (int, const char *, void *, size_t) args: (fd, name, value, size) +syscall sys_listxattr nr 232 nbargs 3 types: (const char *, char *, size_t) args: (pathname, list, size) +syscall sys_llistxattr nr 233 nbargs 3 types: (const char *, char *, size_t) args: (pathname, list, size) +syscall sys_flistxattr nr 234 nbargs 3 types: (int, char *, size_t) args: (fd, list, size) +syscall sys_removexattr nr 235 nbargs 2 types: (const char *, const char *) args: (pathname, name) +syscall sys_lremovexattr nr 236 nbargs 2 types: (const char *, const char *) args: (pathname, name) +syscall sys_fremovexattr nr 237 nbargs 2 types: (int, const char *) args: (fd, name) +syscall sys_tkill nr 238 nbargs 2 types: (pid_t, int) args: (pid, sig) +syscall sys_sendfile64 nr 239 nbargs 4 types: (int, int, loff_t *, size_t) args: (out_fd, in_fd, offset, count) +syscall sys_futex nr 240 nbargs 6 types: (u32 *, int, u32, struct timespec *, u32 *, u32) args: (uaddr, op, val, utime, uaddr2, val3) +syscall sys_sched_setaffinity nr 241 nbargs 3 types: (pid_t, unsigned int, unsigned long *) args: (pid, len, user_mask_ptr) +syscall sys_sched_getaffinity nr 242 nbargs 3 types: (pid_t, unsigned int, unsigned long *) args: (pid, len, user_mask_ptr) +syscall sys_io_setup nr 245 nbargs 2 types: (unsigned, aio_context_t *) args: (nr_events, ctxp) +syscall sys_io_destroy nr 246 nbargs 1 types: (aio_context_t) args: (ctx) +syscall sys_io_getevents nr 247 nbargs 5 types: (aio_context_t, long, long, struct io_event *, struct timespec *) args: (ctx_id, min_nr, nr, events, timeout) +syscall sys_io_submit nr 248 nbargs 3 types: (aio_context_t, long, struct iocb * *) args: (ctx_id, nr, iocbpp) +syscall sys_io_cancel nr 249 nbargs 3 types: (aio_context_t, struct iocb *, struct io_event *) args: (ctx_id, iocb, result) +syscall sys_exit_group nr 252 nbargs 1 types: (int) args: (error_code) +syscall sys_epoll_create nr 254 nbargs 1 types: (int) args: (size) +syscall sys_epoll_ctl nr 255 nbargs 4 types: (int, int, int, struct epoll_event *) args: (epfd, op, fd, event) +syscall sys_epoll_wait nr 256 nbargs 4 types: (int, struct epoll_event *, int, int) args: (epfd, events, maxevents, timeout) +syscall sys_remap_file_pages nr 257 nbargs 5 types: (unsigned long, unsigned long, unsigned long, unsigned long, unsigned long) args: (start, size, prot, pgoff, flags) +syscall sys_set_tid_address nr 258 nbargs 1 types: (int *) args: (tidptr) +syscall sys_timer_create nr 259 nbargs 3 types: (const clockid_t, struct sigevent *, timer_t *) args: (which_clock, timer_event_spec, created_timer_id) +syscall sys_timer_settime nr 260 nbargs 4 types: (timer_t, int, const struct itimerspec *, struct itimerspec *) args: (timer_id, flags, new_setting, old_setting) +syscall sys_timer_gettime nr 261 nbargs 2 types: (timer_t, struct itimerspec *) args: (timer_id, setting) +syscall sys_timer_getoverrun nr 262 nbargs 1 types: (timer_t) args: (timer_id) +syscall sys_timer_delete nr 263 nbargs 1 types: (timer_t) args: (timer_id) +syscall sys_clock_settime nr 264 nbargs 2 types: (const clockid_t, const struct timespec *) args: (which_clock, tp) +syscall sys_clock_gettime nr 265 nbargs 2 types: (const clockid_t, struct timespec *) args: (which_clock, tp) +syscall sys_clock_getres nr 266 nbargs 2 types: (const clockid_t, struct timespec *) args: (which_clock, tp) +syscall sys_clock_nanosleep nr 267 nbargs 4 types: (const clockid_t, int, const struct timespec *, struct timespec *) args: (which_clock, flags, rqtp, rmtp) +syscall sys_statfs64 nr 268 nbargs 3 types: (const char *, size_t, struct statfs64 *) args: (pathname, sz, buf) +syscall sys_fstatfs64 nr 269 nbargs 3 types: (unsigned int, size_t, struct statfs64 *) args: (fd, sz, buf) +syscall sys_tgkill nr 270 nbargs 3 types: (pid_t, pid_t, int) args: (tgid, pid, sig) +syscall sys_utimes nr 271 nbargs 2 types: (char *, struct timeval *) args: (filename, utimes) +syscall sys_mq_open nr 277 nbargs 4 types: (const char *, int, mode_t, struct mq_attr *) args: (u_name, oflag, mode, u_attr) +syscall sys_mq_unlink nr 278 nbargs 1 types: (const char *) args: (u_name) +syscall sys_mq_timedsend nr 279 nbargs 5 types: (mqd_t, const char *, size_t, unsigned int, const struct timespec *) args: (mqdes, u_msg_ptr, msg_len, msg_prio, u_abs_timeout) +syscall sys_mq_timedreceive nr 280 nbargs 5 types: (mqd_t, char *, size_t, unsigned int *, const struct timespec *) args: (mqdes, u_msg_ptr, msg_len, u_msg_prio, u_abs_timeout) +syscall sys_mq_notify nr 281 nbargs 2 types: (mqd_t, const struct sigevent *) args: (mqdes, u_notification) +syscall sys_mq_getsetattr nr 282 nbargs 3 types: (mqd_t, const struct mq_attr *, struct mq_attr *) args: (mqdes, u_mqstat, u_omqstat) +syscall sys_kexec_load nr 283 nbargs 4 types: (unsigned long, unsigned long, struct kexec_segment *, unsigned long) args: (entry, nr_segments, segments, flags) +syscall sys_waitid nr 284 nbargs 5 types: (int, pid_t, struct siginfo *, int, struct rusage *) args: (which, upid, infop, options, ru) +syscall sys_add_key nr 286 nbargs 5 types: (const char *, const char *, const void *, size_t, key_serial_t) args: (_type, _description, _payload, plen, ringid) +syscall sys_request_key nr 287 nbargs 4 types: (const char *, const char *, const char *, key_serial_t) args: (_type, _description, _callout_info, destringid) +syscall sys_keyctl nr 288 nbargs 5 types: (int, unsigned long, unsigned long, unsigned long, unsigned long) args: (option, arg2, arg3, arg4, arg5) +syscall sys_ioprio_set nr 289 nbargs 3 types: (int, int, int) args: (which, who, ioprio) +syscall sys_ioprio_get nr 290 nbargs 2 types: (int, int) args: (which, who) +syscall sys_inotify_init nr 291 nbargs 0 types: () args: () +syscall sys_inotify_add_watch nr 292 nbargs 3 types: (int, const char *, u32) args: (fd, pathname, mask) +syscall sys_inotify_rm_watch nr 293 nbargs 2 types: (int, __s32) args: (fd, wd) +syscall sys_openat nr 295 nbargs 4 types: (int, const char *, int, int) args: (dfd, filename, flags, mode) +syscall sys_mkdirat nr 296 nbargs 3 types: (int, const char *, int) args: (dfd, pathname, mode) +syscall sys_mknodat nr 297 nbargs 4 types: (int, const char *, int, unsigned) args: (dfd, filename, mode, dev) +syscall sys_fchownat nr 298 nbargs 5 types: (int, const char *, uid_t, gid_t, int) args: (dfd, filename, user, group, flag) +syscall sys_futimesat nr 299 nbargs 3 types: (int, const char *, struct timeval *) args: (dfd, filename, utimes) +syscall sys_fstatat64 nr 300 nbargs 4 types: (int, const char *, struct stat64 *, int) args: (dfd, filename, statbuf, flag) +syscall sys_unlinkat nr 301 nbargs 3 types: (int, const char *, int) args: (dfd, pathname, flag) +syscall sys_renameat nr 302 nbargs 4 types: (int, const char *, int, const char *) args: (olddfd, oldname, newdfd, newname) +syscall sys_linkat nr 303 nbargs 5 types: (int, const char *, int, const char *, int) args: (olddfd, oldname, newdfd, newname, flags) +syscall sys_symlinkat nr 304 nbargs 3 types: (const char *, int, const char *) args: (oldname, newdfd, newname) +syscall sys_readlinkat nr 305 nbargs 4 types: (int, const char *, char *, int) args: (dfd, pathname, buf, bufsiz) +syscall sys_fchmodat nr 306 nbargs 3 types: (int, const char *, mode_t) args: (dfd, filename, mode) +syscall sys_faccessat nr 307 nbargs 3 types: (int, const char *, int) args: (dfd, filename, mode) +syscall sys_pselect6 nr 308 nbargs 6 types: (int, fd_set *, fd_set *, fd_set *, struct timespec *, void *) args: (n, inp, outp, exp, tsp, sig) +syscall sys_ppoll nr 309 nbargs 5 types: (struct pollfd *, unsigned int, struct timespec *, const sigset_t *, size_t) args: (ufds, nfds, tsp, sigmask, sigsetsize) +syscall sys_unshare nr 310 nbargs 1 types: (unsigned long) args: (unshare_flags) +syscall sys_set_robust_list nr 311 nbargs 2 types: (struct robust_list_head *, size_t) args: (head, len) +syscall sys_get_robust_list nr 312 nbargs 3 types: (int, struct robust_list_head * *, size_t *) args: (pid, head_ptr, len_ptr) +syscall sys_splice nr 313 nbargs 6 types: (int, loff_t *, int, loff_t *, size_t, unsigned int) args: (fd_in, off_in, fd_out, off_out, len, flags) +syscall sys_tee nr 315 nbargs 4 types: (int, int, size_t, unsigned int) args: (fdin, fdout, len, flags) +syscall sys_vmsplice nr 316 nbargs 4 types: (int, const struct iovec *, unsigned long, unsigned int) args: (fd, iov, nr_segs, flags) +syscall sys_getcpu nr 318 nbargs 3 types: (unsigned *, unsigned *, struct getcpu_cache *) args: (cpup, nodep, unused) +syscall sys_epoll_pwait nr 319 nbargs 6 types: (int, struct epoll_event *, int, int, const sigset_t *, size_t) args: (epfd, events, maxevents, timeout, sigmask, sigsetsize) +syscall sys_utimensat nr 320 nbargs 4 types: (int, const char *, struct timespec *, int) args: (dfd, filename, utimes, flags) +syscall sys_signalfd nr 321 nbargs 3 types: (int, sigset_t *, size_t) args: (ufd, user_mask, sizemask) +syscall sys_timerfd_create nr 322 nbargs 2 types: (int, int) args: (clockid, flags) +syscall sys_eventfd nr 323 nbargs 1 types: (unsigned int) args: (count) +syscall sys_timerfd_settime nr 325 nbargs 4 types: (int, int, const struct itimerspec *, struct itimerspec *) args: (ufd, flags, utmr, otmr) +syscall sys_timerfd_gettime nr 326 nbargs 2 types: (int, struct itimerspec *) args: (ufd, otmr) +syscall sys_signalfd4 nr 327 nbargs 4 types: (int, sigset_t *, size_t, int) args: (ufd, user_mask, sizemask, flags) +syscall sys_eventfd2 nr 328 nbargs 2 types: (unsigned int, int) args: (count, flags) +syscall sys_epoll_create1 nr 329 nbargs 1 types: (int) args: (flags) +syscall sys_dup3 nr 330 nbargs 3 types: (unsigned int, unsigned int, int) args: (oldfd, newfd, flags) +syscall sys_pipe2 nr 331 nbargs 2 types: (int *, int) args: (fildes, flags) +syscall sys_inotify_init1 nr 332 nbargs 1 types: (int) args: (flags) +syscall sys_preadv nr 333 nbargs 5 types: (unsigned long, const struct iovec *, unsigned long, unsigned long, unsigned long) args: (fd, vec, vlen, pos_l, pos_h) +syscall sys_pwritev nr 334 nbargs 5 types: (unsigned long, const struct iovec *, unsigned long, unsigned long, unsigned long) args: (fd, vec, vlen, pos_l, pos_h) +syscall sys_rt_tgsigqueueinfo nr 335 nbargs 4 types: (pid_t, pid_t, int, siginfo_t *) args: (tgid, pid, sig, uinfo) +syscall sys_perf_event_open nr 336 nbargs 5 types: (struct perf_event_attr *, pid_t, int, int, unsigned long) args: (attr_uptr, pid, cpu, group_fd, flags) +syscall sys_recvmmsg nr 337 nbargs 5 types: (int, struct mmsghdr *, unsigned int, unsigned int, struct timespec *) args: (fd, mmsg, vlen, flags, timeout) +syscall sys_fanotify_init nr 338 nbargs 2 types: (unsigned int, unsigned int) args: (flags, event_f_flags) +syscall sys_prlimit64 nr 340 nbargs 4 types: (pid_t, unsigned int, const struct rlimit64 *, struct rlimit64 *) args: (pid, resource, new_rlim, old_rlim) +syscall sys_clock_adjtime nr 343 nbargs 2 types: (const clockid_t, struct timex *) args: (which_clock, utx) +syscall sys_syncfs nr 344 nbargs 1 types: (int) args: (fd) +syscall sys_sendmmsg nr 345 nbargs 4 types: (int, struct mmsghdr *, unsigned int, unsigned int) args: (fd, mmsg, vlen, flags) +syscall sys_setns nr 346 nbargs 2 types: (int, int) args: (fd, nstype) --- linux-3.11.0.orig/ubuntu/lttng-modules/instrumentation/syscalls/lttng-syscalls-extractor/Makefile +++ linux-3.11.0/ubuntu/lttng-modules/instrumentation/syscalls/lttng-syscalls-extractor/Makefile @@ -0,0 +1 @@ +obj-m += lttng-syscalls-extractor.o --- linux-3.11.0.orig/ubuntu/lttng-modules/instrumentation/syscalls/lttng-syscalls-extractor/lttng-syscalls-extractor.c +++ linux-3.11.0/ubuntu/lttng-modules/instrumentation/syscalls/lttng-syscalls-extractor/lttng-syscalls-extractor.c @@ -0,0 +1,100 @@ +/* + * lttng-syscalls-extractor.c + * + * Dump syscall metadata to console. + * + * Copyright 2011 - Mathieu Desnoyers + * Copyright 2011 - Julien Desfossez + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along + * with this program; if not, write to the Free Software Foundation, Inc., + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#ifndef CONFIG_FTRACE_SYSCALLS +#error "You need to set CONFIG_FTRACE_SYSCALLS=y" +#endif + +#ifndef CONFIG_KALLSYMS_ALL +#error "You need to set CONFIG_KALLSYMS_ALL=y" +#endif + +static struct syscall_metadata **__start_syscalls_metadata; +static struct syscall_metadata **__stop_syscalls_metadata; + +static __init +struct syscall_metadata *find_syscall_meta(unsigned long syscall) +{ + struct syscall_metadata **iter; + + for (iter = __start_syscalls_metadata; + iter < __stop_syscalls_metadata; iter++) { + if ((*iter)->syscall_nr == syscall) + return (*iter); + } + return NULL; +} + +int init_module(void) +{ + struct syscall_metadata *meta; + int i; + + __start_syscalls_metadata = (void *) kallsyms_lookup_name("__start_syscalls_metadata"); + __stop_syscalls_metadata = (void *) kallsyms_lookup_name("__stop_syscalls_metadata"); + + for (i = 0; i < NR_syscalls; i++) { + int j; + + meta = find_syscall_meta(i); + if (!meta) + continue; + printk("syscall %s nr %d nbargs %d ", + meta->name, meta->syscall_nr, meta->nb_args); + printk("types: ("); + for (j = 0; j < meta->nb_args; j++) { + if (j > 0) + printk(", "); + printk("%s", meta->types[j]); + } + printk(") "); + printk("args: ("); + for (j = 0; j < meta->nb_args; j++) { + if (j > 0) + printk(", "); + printk("%s", meta->args[j]); + } + printk(")\n"); + } + printk("SUCCESS\n"); + + return -1; +} + +void cleanup_module(void) +{ +} + +MODULE_LICENSE("GPL"); --- linux-3.11.0.orig/ubuntu/lttng-modules/instrumentation/syscalls/3.5.0/mips-32-syscalls-3.5.0 +++ linux-3.11.0/ubuntu/lttng-modules/instrumentation/syscalls/3.5.0/mips-32-syscalls-3.5.0 @@ -0,0 +1,141 @@ +syscall sys_exit nr 4003 nbargs 1 types: (int) args: (error_code) +syscall sys_read nr 4007 nbargs 3 types: (unsigned int, char *, size_t) args: (fd, buf, count) +syscall sys_write nr 4009 nbargs 3 types: (unsigned int, const char *, size_t) args: (fd, buf, count) +syscall sys_open nr 4011 nbargs 3 types: (const char *, int, umode_t) args: (filename, flags, mode) +syscall sys_close nr 4013 nbargs 1 types: (unsigned int) args: (fd) +syscall sys_waitpid nr 4015 nbargs 3 types: (pid_t, int *, int) args: (pid, stat_addr, options) +syscall sys_creat nr 4017 nbargs 2 types: (const char *, umode_t) args: (pathname, mode) +syscall sys_link nr 4019 nbargs 2 types: (const char *, const char *) args: (oldname, newname) +syscall sys_unlink nr 4021 nbargs 1 types: (const char *) args: (pathname) +syscall sys_chdir nr 4025 nbargs 1 types: (const char *) args: (filename) +syscall sys_time nr 4027 nbargs 1 types: (time_t *) args: (tloc) +syscall sys_mknod nr 4029 nbargs 3 types: (const char *, umode_t, unsigned) args: (filename, mode, dev) +syscall sys_chmod nr 4031 nbargs 2 types: (const char *, umode_t) args: (filename, mode) +syscall sys_lchown nr 4033 nbargs 3 types: (const char *, uid_t, gid_t) args: (filename, user, group) +syscall sys_lseek nr 4039 nbargs 3 types: (unsigned int, off_t, unsigned int) args: (fd, offset, origin) +syscall sys_getpid nr 4041 nbargs 0 types: () args: () +syscall sys_mount nr 4043 nbargs 5 types: (char *, char *, char *, unsigned long, void *) args: (dev_name, dir_name, type, flags, data) +syscall sys_oldumount nr 4045 nbargs 1 types: (char *) args: (name) +syscall sys_setuid nr 4047 nbargs 1 types: (uid_t) args: (uid) +syscall sys_getuid nr 4049 nbargs 0 types: () args: () +syscall sys_stime nr 4051 nbargs 1 types: (time_t *) args: (tptr) +syscall sys_ptrace nr 4053 nbargs 4 types: (long, long, unsigned long, unsigned long) args: (request, pid, addr, data) +syscall sys_alarm nr 4055 nbargs 1 types: (unsigned int) args: (seconds) +syscall sys_pause nr 4059 nbargs 0 types: () args: () +syscall sys_utime nr 4061 nbargs 2 types: (char *, struct utimbuf *) args: (filename, times) +syscall sys_access nr 4067 nbargs 2 types: (const char *, int) args: (filename, mode) +syscall sys_nice nr 4069 nbargs 1 types: (int) args: (increment) +syscall sys_sync nr 4073 nbargs 0 types: () args: () +syscall sys_kill nr 4075 nbargs 2 types: (pid_t, int) args: (pid, sig) +syscall sys_rename nr 4077 nbargs 2 types: (const char *, const char *) args: (oldname, newname) +syscall sys_mkdir nr 4079 nbargs 2 types: (const char *, umode_t) args: (pathname, mode) +syscall sys_rmdir nr 4081 nbargs 1 types: (const char *) args: (pathname) +syscall sys_dup nr 4083 nbargs 1 types: (unsigned int) args: (fildes) +syscall sys_times nr 4087 nbargs 1 types: (struct tms *) args: (tbuf) +syscall sys_brk nr 4091 nbargs 1 types: (unsigned long) args: (brk) +syscall sys_setgid nr 4093 nbargs 1 types: (gid_t) args: (gid) +syscall sys_getgid nr 4095 nbargs 0 types: () args: () +syscall sys_geteuid nr 4099 nbargs 0 types: () args: () +syscall sys_getegid nr 4101 nbargs 0 types: () args: () +syscall sys_umount nr 4105 nbargs 2 types: (char *, int) args: (name, flags) +syscall sys_ioctl nr 4109 nbargs 3 types: (unsigned int, unsigned int, unsigned long) args: (fd, cmd, arg) +syscall sys_fcntl nr 4111 nbargs 3 types: (unsigned int, unsigned int, unsigned long) args: (fd, cmd, arg) +syscall sys_setpgid nr 4115 nbargs 2 types: (pid_t, pid_t) args: (pid, pgid) +syscall sys_olduname nr 4119 nbargs 1 types: (struct oldold_utsname *) args: (name) +syscall sys_umask nr 4121 nbargs 1 types: (int) args: (mask) +syscall sys_chroot nr 4123 nbargs 1 types: (const char *) args: (filename) +syscall sys_ustat nr 4125 nbargs 2 types: (unsigned, struct ustat *) args: (dev, ubuf) +syscall sys_dup2 nr 4127 nbargs 2 types: (unsigned int, unsigned int) args: (oldfd, newfd) +syscall sys_getppid nr 4129 nbargs 0 types: () args: () +syscall sys_getpgrp nr 4131 nbargs 0 types: () args: () +syscall sys_setsid nr 4133 nbargs 0 types: () args: () +syscall sys_sigaction nr 4135 nbargs 3 types: (int, const struct sigaction *, struct sigaction *) args: (sig, act, oact) +syscall sys_sgetmask nr 4137 nbargs 0 types: () args: () +syscall sys_ssetmask nr 4139 nbargs 1 types: (int) args: (newmask) +syscall sys_setreuid nr 4141 nbargs 2 types: (uid_t, uid_t) args: (ruid, euid) +syscall sys_setregid nr 4143 nbargs 2 types: (gid_t, gid_t) args: (rgid, egid) +syscall sys_sigpending nr 4147 nbargs 1 types: (old_sigset_t *) args: (set) +syscall sys_sethostname nr 4149 nbargs 2 types: (char *, int) args: (name, len) +syscall sys_setrlimit nr 4151 nbargs 2 types: (unsigned int, struct rlimit *) args: (resource, rlim) +syscall sys_getrlimit nr 4153 nbargs 2 types: (unsigned int, struct rlimit *) args: (resource, rlim) +syscall sys_getrusage nr 4155 nbargs 2 types: (int, struct rusage *) args: (who, ru) +syscall sys_gettimeofday nr 4157 nbargs 2 types: (struct timeval *, struct timezone *) args: (tv, tz) +syscall sys_settimeofday nr 4159 nbargs 2 types: (struct timeval *, struct timezone *) args: (tv, tz) +syscall sys_getgroups nr 4161 nbargs 2 types: (int, gid_t *) args: (gidsetsize, grouplist) +syscall sys_setgroups nr 4163 nbargs 2 types: (int, gid_t *) args: (gidsetsize, grouplist) +syscall sys_symlink nr 4167 nbargs 2 types: (const char *, const char *) args: (oldname, newname) +syscall sys_readlink nr 4171 nbargs 3 types: (const char *, char *, int) args: (path, buf, bufsiz) +syscall sys_uselib nr 4173 nbargs 1 types: (const char *) args: (library) +syscall sys_swapon nr 4175 nbargs 2 types: (const char *, int) args: (specialfile, swap_flags) +syscall sys_reboot nr 4177 nbargs 4 types: (int, int, unsigned int, void *) args: (magic1, magic2, cmd, arg) +syscall sys_old_readdir nr 4179 nbargs 3 types: (unsigned int, struct old_linux_dirent *, unsigned int) args: (fd, dirent, count) +syscall sys_mips_mmap nr 4181 nbargs 6 types: (unsigned long, unsigned long, unsigned long, unsigned long, unsigned long, off_t) args: (addr, len, prot, flags, fd, offset) +syscall sys_munmap nr 4183 nbargs 2 types: (unsigned long, size_t) args: (addr, len) +syscall sys_truncate nr 4185 nbargs 2 types: (const char *, long) args: (path, length) +syscall sys_ftruncate nr 4187 nbargs 2 types: (unsigned int, unsigned long) args: (fd, length) +syscall sys_fchmod nr 4189 nbargs 2 types: (unsigned int, umode_t) args: (fd, mode) +syscall sys_fchown nr 4191 nbargs 3 types: (unsigned int, uid_t, gid_t) args: (fd, user, group) +syscall sys_getpriority nr 4193 nbargs 2 types: (int, int) args: (which, who) +syscall sys_setpriority nr 4195 nbargs 3 types: (int, int, int) args: (which, who, niceval) +syscall sys_statfs nr 4199 nbargs 2 types: (const char *, struct statfs *) args: (pathname, buf) +syscall sys_fstatfs nr 4201 nbargs 2 types: (unsigned int, struct statfs *) args: (fd, buf) +syscall sys_socketcall nr 4205 nbargs 2 types: (int, unsigned long *) args: (call, args) +syscall sys_syslog nr 4207 nbargs 3 types: (int, char *, int) args: (type, buf, len) +syscall sys_setitimer nr 4209 nbargs 3 types: (int, struct itimerval *, struct itimerval *) args: (which, value, ovalue) +syscall sys_getitimer nr 4211 nbargs 2 types: (int, struct itimerval *) args: (which, value) +syscall sys_newstat nr 4213 nbargs 2 types: (const char *, struct stat *) args: (filename, statbuf) +syscall sys_newlstat nr 4215 nbargs 2 types: (const char *, struct stat *) args: (filename, statbuf) +syscall sys_newfstat nr 4217 nbargs 2 types: (unsigned int, struct stat *) args: (fd, statbuf) +syscall sys_uname nr 4219 nbargs 1 types: (struct old_utsname *) args: (name) +syscall sys_vhangup nr 4223 nbargs 0 types: () args: () +syscall sys_wait4 nr 4229 nbargs 4 types: (pid_t, int *, int, struct rusage *) args: (upid, stat_addr, options, ru) +syscall sys_swapoff nr 4231 nbargs 1 types: (const char *) args: (specialfile) +syscall sys_sysinfo nr 4233 nbargs 1 types: (struct sysinfo *) args: (info) +syscall sys_ipc nr 4235 nbargs 6 types: (unsigned int, int, unsigned long, unsigned long, void *, long) args: (call, first, second, third, ptr, fifth) +syscall sys_fsync nr 4237 nbargs 1 types: (unsigned int) args: (fd) +syscall sys_setdomainname nr 4243 nbargs 2 types: (char *, int) args: (name, len) +syscall sys_newuname nr 4245 nbargs 1 types: (struct new_utsname *) args: (name) +syscall sys_adjtimex nr 4249 nbargs 1 types: (struct timex *) args: (txc_p) +syscall sys_mprotect nr 4251 nbargs 3 types: (unsigned long, size_t, unsigned long) args: (start, len, prot) +syscall sys_sigprocmask nr 4253 nbargs 3 types: (int, old_sigset_t *, old_sigset_t *) args: (how, nset, oset) +syscall sys_init_module nr 4257 nbargs 3 types: (void *, unsigned long, const char *) args: (umod, len, uargs) +syscall sys_delete_module nr 4259 nbargs 2 types: (const char *, unsigned int) args: (name_user, flags) +syscall sys_quotactl nr 4263 nbargs 4 types: (unsigned int, const char *, qid_t, void *) args: (cmd, special, id, addr) +syscall sys_getpgid nr 4265 nbargs 1 types: (pid_t) args: (pid) +syscall sys_fchdir nr 4267 nbargs 1 types: (unsigned int) args: (fd) +syscall sys_bdflush nr 4269 nbargs 2 types: (int, long) args: (func, data) +syscall sys_sysfs nr 4271 nbargs 3 types: (int, unsigned long, unsigned long) args: (option, arg1, arg2) +syscall sys_personality nr 4273 nbargs 1 types: (unsigned int) args: (personality) +syscall sys_setfsuid nr 4277 nbargs 1 types: (uid_t) args: (uid) +syscall sys_setfsgid nr 4279 nbargs 1 types: (gid_t) args: (gid) +syscall sys_llseek nr 4281 nbargs 5 types: (unsigned int, unsigned long, unsigned long, loff_t *, unsigned int) args: (fd, offset_high, offset_low, result, origin) +syscall sys_getdents nr 4283 nbargs 3 types: (unsigned int, struct linux_dirent *, unsigned int) args: (fd, dirent, count) +syscall sys_select nr 4285 nbargs 5 types: (int, fd_set *, fd_set *, fd_set *, struct timeval *) args: (n, inp, outp, exp, tvp) +syscall sys_flock nr 4287 nbargs 2 types: (unsigned int, unsigned int) args: (fd, cmd) +syscall sys_msync nr 4289 nbargs 3 types: (unsigned long, size_t, int) args: (start, len, flags) +syscall sys_readv nr 4291 nbargs 3 types: (unsigned long, const struct iovec *, unsigned long) args: (fd, vec, vlen) +syscall sys_writev nr 4293 nbargs 3 types: (unsigned long, const struct iovec *, unsigned long) args: (fd, vec, vlen) +syscall sys_cacheflush nr 4295 nbargs 3 types: (unsigned long, unsigned long, unsigned int) args: (addr, bytes, cache) +syscall sys_cachectl nr 4297 nbargs 3 types: (char *, int, int) args: (addr, nbytes, op) +syscall sys_getsid nr 4303 nbargs 1 types: (pid_t) args: (pid) +syscall sys_fdatasync nr 4305 nbargs 1 types: (unsigned int) args: (fd) +syscall sys_sysctl nr 4307 nbargs 1 types: (struct __sysctl_args *) args: (args) +syscall sys_mlock nr 4309 nbargs 2 types: (unsigned long, size_t) args: (start, len) +syscall sys_munlock nr 4311 nbargs 2 types: (unsigned long, size_t) args: (start, len) +syscall sys_mlockall nr 4313 nbargs 1 types: (int) args: (flags) +syscall sys_munlockall nr 4315 nbargs 0 types: () args: () +syscall sys_sched_setparam nr 4317 nbargs 2 types: (pid_t, struct sched_param *) args: (pid, param) +syscall sys_sched_getparam nr 4319 nbargs 2 types: (pid_t, struct sched_param *) args: (pid, param) +syscall sys_sched_setscheduler nr 4321 nbargs 3 types: (pid_t, int, struct sched_param *) args: (pid, policy, param) +syscall sys_sched_getscheduler nr 4323 nbargs 1 types: (pid_t) args: (pid) +syscall sys_sched_yield nr 4325 nbargs 0 types: () args: () +syscall sys_sched_get_priority_max nr 4327 nbargs 1 types: (int) args: (policy) +syscall sys_sched_get_priority_min nr 4329 nbargs 1 types: (int) args: (policy) +syscall sys_sched_rr_get_interval nr 4331 nbargs 2 types: (pid_t, struct timespec *) args: (pid, interval) +syscall sys_nanosleep nr 4333 nbargs 2 types: (struct timespec *, struct timespec *) args: (rqtp, rmtp) +syscall sys_mremap nr 4335 nbargs 5 types: (unsigned long, unsigned long, unsigned long, unsigned long, unsigned long) args: (addr, old_len, new_len, flags, new_addr) +syscall sys_accept nr 4337 nbargs 3 types: (int, struct sockaddr *, int *) args: (fd, upeer_sockaddr, upeer_addrlen) +syscall sys_bind nr 4339 nbargs 3 types: (int, struct sockaddr *, int) args: (fd, umyaddr, addrlen) +syscall sys_connect nr 4341 nbargs 3 types: (int, struct sockaddr *, int) args: (fd, uservaddr, addrlen) +syscall sys_getpeername nr 4343 nbargs 3 types: (int, struct sockaddr *, int *) args: (fd, usockaddr, usockaddr_len) +syscall sys_getsockname nr 4345 nbargs 3 types: (int, struct sockaddr *, int *) args: (fd, usockaddr, usockaddr_len) --- linux-3.11.0.orig/ubuntu/lttng-modules/instrumentation/syscalls/3.5.0/mips-64-syscalls-3.5.0 +++ linux-3.11.0/ubuntu/lttng-modules/instrumentation/syscalls/3.5.0/mips-64-syscalls-3.5.0 @@ -0,0 +1,289 @@ +syscall sys_waitpid nr 4007 nbargs 3 types: (pid_t, int *, int) args: (pid, stat_addr, options) +syscall sys_oldumount nr 4022 nbargs 1 types: (char *) args: (name) +syscall sys_nice nr 4034 nbargs 1 types: (int) args: (increment) +syscall sys_olduname nr 4059 nbargs 1 types: (struct oldold_utsname *) args: (name) +syscall sys_32_sigaction nr 4067 nbargs 3 types: (long, const struct sigaction32 *, struct sigaction32 *) args: (sig, act, oact) +syscall sys_sgetmask nr 4068 nbargs 0 types: () args: () +syscall sys_ssetmask nr 4069 nbargs 1 types: (int) args: (newmask) +syscall sys_uselib nr 4086 nbargs 1 types: (const char *) args: (library) +syscall sys_uname nr 4109 nbargs 1 types: (struct old_utsname *) args: (name) +syscall sys_32_ipc nr 4117 nbargs 6 types: (u32, long, long, long, unsigned long, unsigned long) args: (call, first, second, third, ptr, fifth) +syscall sys_bdflush nr 4134 nbargs 2 types: (int, long) args: (func, data) +syscall sys_32_llseek nr 4140 nbargs 5 types: (unsigned int, unsigned int, unsigned int, loff_t *, unsigned int) args: (fd, offset_high, offset_low, result, origin) +syscall sys_send nr 4178 nbargs 4 types: (int, void *, size_t, unsigned int) args: (fd, buff, len, flags) +syscall sys_32_pread nr 4200 nbargs 6 types: (unsigned long, char *, size_t, unsigned long, unsigned long, unsigned long) args: (fd, buf, count, unused, a4, a5) +syscall sys_32_pwrite nr 4201 nbargs 6 types: (unsigned int, const char *, size_t, u32, u64, u64) args: (fd, buf, count, unused, a4, a5) +syscall sys_mips_mmap2 nr 4210 nbargs 6 types: (unsigned long, unsigned long, unsigned long, unsigned long, unsigned long, unsigned long) args: (addr, len, prot, flags, fd, pgoff) +syscall sys_32_truncate64 nr 4211 nbargs 4 types: (const char *, unsigned long, unsigned long, unsigned long) args: (path, __dummy, a2, a3) +syscall sys_32_ftruncate64 nr 4212 nbargs 4 types: (unsigned long, unsigned long, unsigned long, unsigned long) args: (fd, __dummy, a2, a3) +syscall sys_32_waitid nr 4278 nbargs 5 types: (int, compat_pid_t, compat_siginfo_t *, int, struct compat_rusage *) args: (which, pid, uinfo, options, uru) +syscall sys_32_fanotify_mark nr 4337 nbargs 6 types: (int, unsigned int, u64, u64, int, const char *) args: (fanotify_fd, flags, a3, a4, dfd, pathname) +syscall sys_rt_sigaction nr 5013 nbargs 4 types: (int, const struct sigaction *, struct sigaction *, size_t) args: (sig, act, oact, sigsetsize) +syscall sys_rt_sigprocmask nr 5014 nbargs 4 types: (int, sigset_t *, sigset_t *, size_t) args: (how, nset, oset, sigsetsize) +syscall sys_ioctl nr 5015 nbargs 3 types: (unsigned int, unsigned int, unsigned long) args: (fd, cmd, arg) +syscall sys_readv nr 5018 nbargs 3 types: (unsigned long, const struct iovec *, unsigned long) args: (fd, vec, vlen) +syscall sys_writev nr 5019 nbargs 3 types: (unsigned long, const struct iovec *, unsigned long) args: (fd, vec, vlen) +syscall sys_select nr 5022 nbargs 5 types: (int, fd_set *, fd_set *, fd_set *, struct timeval *) args: (n, inp, outp, exp, tvp) +syscall sys_shmctl nr 5030 nbargs 3 types: (int, int, struct shmid_ds *) args: (shmid, cmd, buf) +syscall sys_nanosleep nr 5034 nbargs 2 types: (struct timespec *, struct timespec *) args: (rqtp, rmtp) +syscall sys_getitimer nr 5035 nbargs 2 types: (int, struct itimerval *) args: (which, value) +syscall sys_setitimer nr 5036 nbargs 3 types: (int, struct itimerval *, struct itimerval *) args: (which, value, ovalue) +syscall sys_recvfrom nr 5044 nbargs 6 types: (int, void *, size_t, unsigned int, struct sockaddr *, int *) args: (fd, ubuf, size, flags, addr, addr_len) +syscall sys_sendmsg nr 5045 nbargs 3 types: (int, struct msghdr *, unsigned int) args: (fd, msg, flags) +syscall sys_recvmsg nr 5046 nbargs 3 types: (int, struct msghdr *, unsigned int) args: (fd, msg, flags) +syscall sys_setsockopt nr 5053 nbargs 5 types: (int, int, int, char *, int) args: (fd, level, optname, optval, optlen) +syscall sys_wait4 nr 5059 nbargs 4 types: (pid_t, int *, int, struct rusage *) args: (upid, stat_addr, options, ru) +syscall sys_msgsnd nr 5067 nbargs 4 types: (int, struct msgbuf *, size_t, int) args: (msqid, msgp, msgsz, msgflg) +syscall sys_msgrcv nr 5068 nbargs 5 types: (int, struct msgbuf *, size_t, long, int) args: (msqid, msgp, msgsz, msgtyp, msgflg) +syscall sys_msgctl nr 5069 nbargs 3 types: (int, int, struct msqid_ds *) args: (msqid, cmd, buf) +syscall sys_fcntl nr 5070 nbargs 3 types: (unsigned int, unsigned int, unsigned long) args: (fd, cmd, arg) +syscall sys_getdents nr 5076 nbargs 3 types: (unsigned int, struct linux_dirent *, unsigned int) args: (fd, dirent, count) +syscall sys_gettimeofday nr 5094 nbargs 2 types: (struct timeval *, struct timezone *) args: (tv, tz) +syscall sys_getrlimit nr 5095 nbargs 2 types: (unsigned int, struct rlimit *) args: (resource, rlim) +syscall sys_getrusage nr 5096 nbargs 2 types: (int, struct rusage *) args: (who, ru) +syscall sys_sysinfo nr 5097 nbargs 1 types: (struct sysinfo *) args: (info) +syscall sys_times nr 5098 nbargs 1 types: (struct tms *) args: (tbuf) +syscall sys_ptrace nr 5099 nbargs 4 types: (long, long, unsigned long, unsigned long) args: (request, pid, addr, data) +syscall sys_rt_sigpending nr 5125 nbargs 2 types: (sigset_t *, size_t) args: (set, sigsetsize) +syscall sys_rt_sigtimedwait nr 5126 nbargs 4 types: (const sigset_t *, siginfo_t *, const struct timespec *, size_t) args: (uthese, uinfo, uts, sigsetsize) +syscall sys_rt_sigqueueinfo nr 5127 nbargs 3 types: (pid_t, int, siginfo_t *) args: (pid, sig, uinfo) +syscall sys_utime nr 5130 nbargs 2 types: (char *, struct utimbuf *) args: (filename, times) +syscall sys_personality nr 5132 nbargs 1 types: (unsigned int) args: (personality) +syscall sys_ustat nr 5133 nbargs 2 types: (unsigned, struct ustat *) args: (dev, ubuf) +syscall sys_statfs nr 5134 nbargs 2 types: (const char *, struct statfs *) args: (pathname, buf) +syscall sys_fstatfs nr 5135 nbargs 2 types: (unsigned int, struct statfs *) args: (fd, buf) +syscall sys_sched_rr_get_interval nr 5145 nbargs 2 types: (pid_t, struct timespec *) args: (pid, interval) +syscall sys_sysctl nr 5152 nbargs 1 types: (struct __sysctl_args *) args: (args) +syscall sys_adjtimex nr 5154 nbargs 1 types: (struct timex *) args: (txc_p) +syscall sys_setrlimit nr 5155 nbargs 2 types: (unsigned int, struct rlimit *) args: (resource, rlim) +syscall sys_settimeofday nr 5159 nbargs 2 types: (struct timeval *, struct timezone *) args: (tv, tz) +syscall sys_mount nr 5160 nbargs 5 types: (char *, char *, char *, unsigned long, void *) args: (dev_name, dir_name, type, flags, data) +syscall sys_futex nr 5194 nbargs 6 types: (u32 *, int, u32, struct timespec *, u32 *, u32) args: (uaddr, op, val, utime, uaddr2, val3) +syscall sys_sched_setaffinity nr 5195 nbargs 3 types: (pid_t, unsigned int, unsigned long *) args: (pid, len, user_mask_ptr) +syscall sys_sched_getaffinity nr 5196 nbargs 3 types: (pid_t, unsigned int, unsigned long *) args: (pid, len, user_mask_ptr) +syscall sys_io_setup nr 5200 nbargs 2 types: (unsigned, aio_context_t *) args: (nr_events, ctxp) +syscall sys_io_getevents nr 5202 nbargs 5 types: (aio_context_t, long, long, struct io_event *, struct timespec *) args: (ctx_id, min_nr, nr, events, timeout) +syscall sys_io_submit nr 5203 nbargs 3 types: (aio_context_t, long, struct iocb * *) args: (ctx_id, nr, iocbpp) +syscall sys_semtimedop nr 5214 nbargs 4 types: (int, struct sembuf *, unsigned, const struct timespec *) args: (semid, tsops, nsops, timeout) +syscall sys_timer_create nr 5216 nbargs 3 types: (const clockid_t, struct sigevent *, timer_t *) args: (which_clock, timer_event_spec, created_timer_id) +syscall sys_timer_settime nr 5217 nbargs 4 types: (timer_t, int, const struct itimerspec *, struct itimerspec *) args: (timer_id, flags, new_setting, old_setting) +syscall sys_timer_gettime nr 5218 nbargs 2 types: (timer_t, struct itimerspec *) args: (timer_id, setting) +syscall sys_clock_settime nr 5221 nbargs 2 types: (const clockid_t, const struct timespec *) args: (which_clock, tp) +syscall sys_clock_gettime nr 5222 nbargs 2 types: (const clockid_t, struct timespec *) args: (which_clock, tp) +syscall sys_clock_getres nr 5223 nbargs 2 types: (const clockid_t, struct timespec *) args: (which_clock, tp) +syscall sys_clock_nanosleep nr 5224 nbargs 4 types: (const clockid_t, int, const struct timespec *, struct timespec *) args: (which_clock, flags, rqtp, rmtp) +syscall sys_utimes nr 5226 nbargs 2 types: (char *, struct timeval *) args: (filename, utimes) +syscall sys_waitid nr 5237 nbargs 5 types: (int, pid_t, struct siginfo *, int, struct rusage *) args: (which, upid, infop, options, ru) +syscall sys_futimesat nr 5251 nbargs 3 types: (int, const char *, struct timeval *) args: (dfd, filename, utimes) +syscall sys_pselect6 nr 5260 nbargs 6 types: (int, fd_set *, fd_set *, fd_set *, struct timespec *, void *) args: (n, inp, outp, exp, tsp, sig) +syscall sys_ppoll nr 5261 nbargs 5 types: (struct pollfd *, unsigned int, struct timespec *, const sigset_t *, size_t) args: (ufds, nfds, tsp, sigmask, sigsetsize) +syscall sys_vmsplice nr 5266 nbargs 4 types: (int, const struct iovec *, unsigned long, unsigned int) args: (fd, iov, nr_segs, flags) +syscall sys_set_robust_list nr 5268 nbargs 2 types: (struct robust_list_head *, size_t) args: (head, len) +syscall sys_get_robust_list nr 5269 nbargs 3 types: (int, struct robust_list_head * *, size_t *) args: (pid, head_ptr, len_ptr) +syscall sys_epoll_pwait nr 5272 nbargs 6 types: (int, struct epoll_event *, int, int, const sigset_t *, size_t) args: (epfd, events, maxevents, timeout, sigmask, sigsetsize) +syscall sys_utimensat nr 5275 nbargs 4 types: (int, const char *, struct timespec *, int) args: (dfd, filename, utimes, flags) +syscall sys_signalfd nr 5276 nbargs 3 types: (int, sigset_t *, size_t) args: (ufd, user_mask, sizemask) +syscall sys_timerfd_gettime nr 5281 nbargs 2 types: (int, struct itimerspec *) args: (ufd, otmr) +syscall sys_timerfd_settime nr 5282 nbargs 4 types: (int, int, const struct itimerspec *, struct itimerspec *) args: (ufd, flags, utmr, otmr) +syscall sys_rt_tgsigqueueinfo nr 5291 nbargs 4 types: (pid_t, pid_t, int, siginfo_t *) args: (tgid, pid, sig, uinfo) +syscall sys_recvmmsg nr 5294 nbargs 5 types: (int, struct mmsghdr *, unsigned int, unsigned int, struct timespec *) args: (fd, mmsg, vlen, flags, timeout) +syscall sys_clock_adjtime nr 5300 nbargs 2 types: (const clockid_t, struct timex *) args: (which_clock, utx) +syscall sys_sendmmsg nr 5302 nbargs 4 types: (int, struct mmsghdr *, unsigned int, unsigned int) args: (fd, mmsg, vlen, flags) +syscall sys_process_vm_readv nr 5304 nbargs 6 types: (pid_t, const struct iovec *, unsigned long, const struct iovec *, unsigned long, unsigned long) args: (pid, lvec, liovcnt, rvec, riovcnt, flags) +syscall sys_process_vm_writev nr 5305 nbargs 6 types: (pid_t, const struct iovec *, unsigned long, const struct iovec *, unsigned long, unsigned long) args: (pid, lvec, liovcnt, rvec, riovcnt, flags) +syscall sys_read nr 6000 nbargs 3 types: (unsigned int, char *, size_t) args: (fd, buf, count) +syscall sys_write nr 6001 nbargs 3 types: (unsigned int, const char *, size_t) args: (fd, buf, count) +syscall sys_open nr 6002 nbargs 3 types: (const char *, int, umode_t) args: (filename, flags, mode) +syscall sys_close nr 6003 nbargs 1 types: (unsigned int) args: (fd) +syscall sys_newstat nr 6004 nbargs 2 types: (const char *, struct stat *) args: (filename, statbuf) +syscall sys_newfstat nr 6005 nbargs 2 types: (unsigned int, struct stat *) args: (fd, statbuf) +syscall sys_newlstat nr 6006 nbargs 2 types: (const char *, struct stat *) args: (filename, statbuf) +syscall sys_poll nr 6007 nbargs 3 types: (struct pollfd *, unsigned int, int) args: (ufds, nfds, timeout_msecs) +syscall sys_lseek nr 6008 nbargs 3 types: (unsigned int, off_t, unsigned int) args: (fd, offset, origin) +syscall sys_mips_mmap nr 6009 nbargs 6 types: (unsigned long, unsigned long, unsigned long, unsigned long, unsigned long, off_t) args: (addr, len, prot, flags, fd, offset) +syscall sys_mprotect nr 6010 nbargs 3 types: (unsigned long, size_t, unsigned long) args: (start, len, prot) +syscall sys_munmap nr 6011 nbargs 2 types: (unsigned long, size_t) args: (addr, len) +syscall sys_brk nr 6012 nbargs 1 types: (unsigned long) args: (brk) +syscall sys_32_rt_sigaction nr 6013 nbargs 4 types: (int, const struct sigaction32 *, struct sigaction32 *, unsigned int) args: (sig, act, oact, sigsetsize) +syscall sys_32_rt_sigprocmask nr 6014 nbargs 4 types: (int, compat_sigset_t *, compat_sigset_t *, unsigned int) args: (how, set, oset, sigsetsize) +syscall sys_access nr 6020 nbargs 2 types: (const char *, int) args: (filename, mode) +syscall sys_sched_yield nr 6023 nbargs 0 types: () args: () +syscall sys_mremap nr 6024 nbargs 5 types: (unsigned long, unsigned long, unsigned long, unsigned long, unsigned long) args: (addr, old_len, new_len, flags, new_addr) +syscall sys_msync nr 6025 nbargs 3 types: (unsigned long, size_t, int) args: (start, len, flags) +syscall sys_mincore nr 6026 nbargs 3 types: (unsigned long, size_t, unsigned char *) args: (start, len, vec) +syscall sys_madvise nr 6027 nbargs 3 types: (unsigned long, size_t, int) args: (start, len_in, behavior) +syscall sys_shmget nr 6028 nbargs 3 types: (key_t, size_t, int) args: (key, size, shmflg) +syscall sys_shmat nr 6029 nbargs 3 types: (int, char *, int) args: (shmid, shmaddr, shmflg) +syscall sys_dup nr 6031 nbargs 1 types: (unsigned int) args: (fildes) +syscall sys_dup2 nr 6032 nbargs 2 types: (unsigned int, unsigned int) args: (oldfd, newfd) +syscall sys_pause nr 6033 nbargs 0 types: () args: () +syscall sys_alarm nr 6037 nbargs 1 types: (unsigned int) args: (seconds) +syscall sys_getpid nr 6038 nbargs 0 types: () args: () +syscall sys_32_sendfile nr 6039 nbargs 4 types: (long, long, compat_off_t *, s32) args: (out_fd, in_fd, offset, count) +syscall sys_socket nr 6040 nbargs 3 types: (int, int, int) args: (family, type, protocol) +syscall sys_connect nr 6041 nbargs 3 types: (int, struct sockaddr *, int) args: (fd, uservaddr, addrlen) +syscall sys_accept nr 6042 nbargs 3 types: (int, struct sockaddr *, int *) args: (fd, upeer_sockaddr, upeer_addrlen) +syscall sys_sendto nr 6043 nbargs 6 types: (int, void *, size_t, unsigned int, struct sockaddr *, int) args: (fd, buff, len, flags, addr, addr_len) +syscall sys_shutdown nr 6047 nbargs 2 types: (int, int) args: (fd, how) +syscall sys_bind nr 6048 nbargs 3 types: (int, struct sockaddr *, int) args: (fd, umyaddr, addrlen) +syscall sys_listen nr 6049 nbargs 2 types: (int, int) args: (fd, backlog) +syscall sys_getsockname nr 6050 nbargs 3 types: (int, struct sockaddr *, int *) args: (fd, usockaddr, usockaddr_len) +syscall sys_getpeername nr 6051 nbargs 3 types: (int, struct sockaddr *, int *) args: (fd, usockaddr, usockaddr_len) +syscall sys_socketpair nr 6052 nbargs 4 types: (int, int, int, int *) args: (family, type, protocol, usockvec) +syscall sys_getsockopt nr 6054 nbargs 5 types: (int, int, int, char *, int *) args: (fd, level, optname, optval, optlen) +syscall sys_exit nr 6058 nbargs 1 types: (int) args: (error_code) +syscall sys_kill nr 6060 nbargs 2 types: (pid_t, int) args: (pid, sig) +syscall sys_newuname nr 6061 nbargs 1 types: (struct new_utsname *) args: (name) +syscall sys_semget nr 6062 nbargs 3 types: (key_t, int, int) args: (key, nsems, semflg) +syscall sys_semop nr 6063 nbargs 3 types: (int, struct sembuf *, unsigned) args: (semid, tsops, nsops) +syscall sys_n32_semctl nr 6064 nbargs 4 types: (int, int, int, u32) args: (semid, semnum, cmd, arg) +syscall sys_shmdt nr 6065 nbargs 1 types: (char *) args: (shmaddr) +syscall sys_msgget nr 6066 nbargs 2 types: (key_t, int) args: (key, msgflg) +syscall sys_n32_msgsnd nr 6067 nbargs 4 types: (int, u32, unsigned int, int) args: (msqid, msgp, msgsz, msgflg) +syscall sys_n32_msgrcv nr 6068 nbargs 5 types: (int, u32, size_t, int, int) args: (msqid, msgp, msgsz, msgtyp, msgflg) +syscall sys_flock nr 6071 nbargs 2 types: (unsigned int, unsigned int) args: (fd, cmd) +syscall sys_fsync nr 6072 nbargs 1 types: (unsigned int) args: (fd) +syscall sys_fdatasync nr 6073 nbargs 1 types: (unsigned int) args: (fd) +syscall sys_truncate nr 6074 nbargs 2 types: (const char *, long) args: (path, length) +syscall sys_ftruncate nr 6075 nbargs 2 types: (unsigned int, unsigned long) args: (fd, length) +syscall sys_getcwd nr 6077 nbargs 2 types: (char *, unsigned long) args: (buf, size) +syscall sys_chdir nr 6078 nbargs 1 types: (const char *) args: (filename) +syscall sys_fchdir nr 6079 nbargs 1 types: (unsigned int) args: (fd) +syscall sys_rename nr 6080 nbargs 2 types: (const char *, const char *) args: (oldname, newname) +syscall sys_mkdir nr 6081 nbargs 2 types: (const char *, umode_t) args: (pathname, mode) +syscall sys_rmdir nr 6082 nbargs 1 types: (const char *) args: (pathname) +syscall sys_creat nr 6083 nbargs 2 types: (const char *, umode_t) args: (pathname, mode) +syscall sys_link nr 6084 nbargs 2 types: (const char *, const char *) args: (oldname, newname) +syscall sys_unlink nr 6085 nbargs 1 types: (const char *) args: (pathname) +syscall sys_symlink nr 6086 nbargs 2 types: (const char *, const char *) args: (oldname, newname) +syscall sys_readlink nr 6087 nbargs 3 types: (const char *, char *, int) args: (path, buf, bufsiz) +syscall sys_chmod nr 6088 nbargs 2 types: (const char *, umode_t) args: (filename, mode) +syscall sys_fchmod nr 6089 nbargs 2 types: (unsigned int, umode_t) args: (fd, mode) +syscall sys_chown nr 6090 nbargs 3 types: (const char *, uid_t, gid_t) args: (filename, user, group) +syscall sys_fchown nr 6091 nbargs 3 types: (unsigned int, uid_t, gid_t) args: (fd, user, group) +syscall sys_lchown nr 6092 nbargs 3 types: (const char *, uid_t, gid_t) args: (filename, user, group) +syscall sys_umask nr 6093 nbargs 1 types: (int) args: (mask) +syscall sys_getuid nr 6100 nbargs 0 types: () args: () +syscall sys_syslog nr 6101 nbargs 3 types: (int, char *, int) args: (type, buf, len) +syscall sys_getgid nr 6102 nbargs 0 types: () args: () +syscall sys_setuid nr 6103 nbargs 1 types: (uid_t) args: (uid) +syscall sys_setgid nr 6104 nbargs 1 types: (gid_t) args: (gid) +syscall sys_geteuid nr 6105 nbargs 0 types: () args: () +syscall sys_getegid nr 6106 nbargs 0 types: () args: () +syscall sys_setpgid nr 6107 nbargs 2 types: (pid_t, pid_t) args: (pid, pgid) +syscall sys_getppid nr 6108 nbargs 0 types: () args: () +syscall sys_getpgrp nr 6109 nbargs 0 types: () args: () +syscall sys_setsid nr 6110 nbargs 0 types: () args: () +syscall sys_setreuid nr 6111 nbargs 2 types: (uid_t, uid_t) args: (ruid, euid) +syscall sys_setregid nr 6112 nbargs 2 types: (gid_t, gid_t) args: (rgid, egid) +syscall sys_getgroups nr 6113 nbargs 2 types: (int, gid_t *) args: (gidsetsize, grouplist) +syscall sys_setgroups nr 6114 nbargs 2 types: (int, gid_t *) args: (gidsetsize, grouplist) +syscall sys_setresuid nr 6115 nbargs 3 types: (uid_t, uid_t, uid_t) args: (ruid, euid, suid) +syscall sys_getresuid nr 6116 nbargs 3 types: (uid_t *, uid_t *, uid_t *) args: (ruidp, euidp, suidp) +syscall sys_setresgid nr 6117 nbargs 3 types: (gid_t, gid_t, gid_t) args: (rgid, egid, sgid) +syscall sys_getresgid nr 6118 nbargs 3 types: (gid_t *, gid_t *, gid_t *) args: (rgidp, egidp, sgidp) +syscall sys_getpgid nr 6119 nbargs 1 types: (pid_t) args: (pid) +syscall sys_setfsuid nr 6120 nbargs 1 types: (uid_t) args: (uid) +syscall sys_setfsgid nr 6121 nbargs 1 types: (gid_t) args: (gid) +syscall sys_getsid nr 6122 nbargs 1 types: (pid_t) args: (pid) +syscall sys_capget nr 6123 nbargs 2 types: (cap_user_header_t, cap_user_data_t) args: (header, dataptr) +syscall sys_capset nr 6124 nbargs 2 types: (cap_user_header_t, const cap_user_data_t) args: (header, data) +syscall sys_32_rt_sigpending nr 6125 nbargs 2 types: (compat_sigset_t *, unsigned int) args: (uset, sigsetsize) +syscall sys_32_rt_sigqueueinfo nr 6127 nbargs 3 types: (int, int, compat_siginfo_t *) args: (pid, sig, uinfo) +syscall sys_mknod nr 6131 nbargs 3 types: (const char *, umode_t, unsigned) args: (filename, mode, dev) +syscall sys_32_personality nr 6132 nbargs 1 types: (unsigned long) args: (personality) +syscall sys_sysfs nr 6136 nbargs 3 types: (int, unsigned long, unsigned long) args: (option, arg1, arg2) +syscall sys_getpriority nr 6137 nbargs 2 types: (int, int) args: (which, who) +syscall sys_setpriority nr 6138 nbargs 3 types: (int, int, int) args: (which, who, niceval) +syscall sys_sched_setparam nr 6139 nbargs 2 types: (pid_t, struct sched_param *) args: (pid, param) +syscall sys_sched_getparam nr 6140 nbargs 2 types: (pid_t, struct sched_param *) args: (pid, param) +syscall sys_sched_setscheduler nr 6141 nbargs 3 types: (pid_t, int, struct sched_param *) args: (pid, policy, param) +syscall sys_sched_getscheduler nr 6142 nbargs 1 types: (pid_t) args: (pid) +syscall sys_sched_get_priority_max nr 6143 nbargs 1 types: (int) args: (policy) +syscall sys_sched_get_priority_min nr 6144 nbargs 1 types: (int) args: (policy) +syscall sys_32_sched_rr_get_interval nr 6145 nbargs 2 types: (compat_pid_t, struct compat_timespec *) args: (pid, interval) +syscall sys_mlock nr 6146 nbargs 2 types: (unsigned long, size_t) args: (start, len) +syscall sys_munlock nr 6147 nbargs 2 types: (unsigned long, size_t) args: (start, len) +syscall sys_mlockall nr 6148 nbargs 1 types: (int) args: (flags) +syscall sys_munlockall nr 6149 nbargs 0 types: () args: () +syscall sys_vhangup nr 6150 nbargs 0 types: () args: () +syscall sys_pivot_root nr 6151 nbargs 2 types: (const char *, const char *) args: (new_root, put_old) +syscall sys_prctl nr 6153 nbargs 5 types: (int, unsigned long, unsigned long, unsigned long, unsigned long) args: (option, arg2, arg3, arg4, arg5) +syscall sys_chroot nr 6156 nbargs 1 types: (const char *) args: (filename) +syscall sys_sync nr 6157 nbargs 0 types: () args: () +syscall sys_umount nr 6161 nbargs 2 types: (char *, int) args: (name, flags) +syscall sys_swapon nr 6162 nbargs 2 types: (const char *, int) args: (specialfile, swap_flags) +syscall sys_swapoff nr 6163 nbargs 1 types: (const char *) args: (specialfile) +syscall sys_reboot nr 6164 nbargs 4 types: (int, int, unsigned int, void *) args: (magic1, magic2, cmd, arg) +syscall sys_sethostname nr 6165 nbargs 2 types: (char *, int) args: (name, len) +syscall sys_setdomainname nr 6166 nbargs 2 types: (char *, int) args: (name, len) +syscall sys_init_module nr 6168 nbargs 3 types: (void *, unsigned long, const char *) args: (umod, len, uargs) +syscall sys_delete_module nr 6169 nbargs 2 types: (const char *, unsigned int) args: (name_user, flags) +syscall sys_quotactl nr 6172 nbargs 4 types: (unsigned int, const char *, qid_t, void *) args: (cmd, special, id, addr) +syscall sys_gettid nr 6178 nbargs 0 types: () args: () +syscall sys_setxattr nr 6180 nbargs 5 types: (const char *, const char *, const void *, size_t, int) args: (pathname, name, value, size, flags) +syscall sys_lsetxattr nr 6181 nbargs 5 types: (const char *, const char *, const void *, size_t, int) args: (pathname, name, value, size, flags) +syscall sys_fsetxattr nr 6182 nbargs 5 types: (int, const char *, const void *, size_t, int) args: (fd, name, value, size, flags) +syscall sys_getxattr nr 6183 nbargs 4 types: (const char *, const char *, void *, size_t) args: (pathname, name, value, size) +syscall sys_lgetxattr nr 6184 nbargs 4 types: (const char *, const char *, void *, size_t) args: (pathname, name, value, size) +syscall sys_fgetxattr nr 6185 nbargs 4 types: (int, const char *, void *, size_t) args: (fd, name, value, size) +syscall sys_listxattr nr 6186 nbargs 3 types: (const char *, char *, size_t) args: (pathname, list, size) +syscall sys_llistxattr nr 6187 nbargs 3 types: (const char *, char *, size_t) args: (pathname, list, size) +syscall sys_flistxattr nr 6188 nbargs 3 types: (int, char *, size_t) args: (fd, list, size) +syscall sys_removexattr nr 6189 nbargs 2 types: (const char *, const char *) args: (pathname, name) +syscall sys_lremovexattr nr 6190 nbargs 2 types: (const char *, const char *) args: (pathname, name) +syscall sys_fremovexattr nr 6191 nbargs 2 types: (int, const char *) args: (fd, name) +syscall sys_tkill nr 6192 nbargs 2 types: (pid_t, int) args: (pid, sig) +syscall sys_32_futex nr 6194 nbargs 6 types: (u32 *, int, u32, struct compat_timespec *, u32 *, u32) args: (uaddr, op, val, utime, uaddr2, val3) +syscall sys_cacheflush nr 6197 nbargs 3 types: (unsigned long, unsigned long, unsigned int) args: (addr, bytes, cache) +syscall sys_cachectl nr 6198 nbargs 3 types: (char *, int, int) args: (addr, nbytes, op) +syscall sys_io_destroy nr 6201 nbargs 1 types: (aio_context_t) args: (ctx) +syscall sys_io_cancel nr 6204 nbargs 3 types: (aio_context_t, struct iocb *, struct io_event *) args: (ctx_id, iocb, result) +syscall sys_exit_group nr 6205 nbargs 1 types: (int) args: (error_code) +syscall sys_epoll_create nr 6207 nbargs 1 types: (int) args: (size) +syscall sys_epoll_ctl nr 6208 nbargs 4 types: (int, int, int, struct epoll_event *) args: (epfd, op, fd, event) +syscall sys_epoll_wait nr 6209 nbargs 4 types: (int, struct epoll_event *, int, int) args: (epfd, events, maxevents, timeout) +syscall sys_remap_file_pages nr 6210 nbargs 5 types: (unsigned long, unsigned long, unsigned long, unsigned long, unsigned long) args: (start, size, prot, pgoff, flags) +syscall sys_set_tid_address nr 6213 nbargs 1 types: (int *) args: (tidptr) +syscall sys_restart_syscall nr 6214 nbargs 0 types: () args: () +syscall sys_sendfile64 nr 6219 nbargs 4 types: (int, int, loff_t *, size_t) args: (out_fd, in_fd, offset, count) +syscall sys_timer_getoverrun nr 6223 nbargs 1 types: (timer_t) args: (timer_id) +syscall sys_timer_delete nr 6224 nbargs 1 types: (timer_t) args: (timer_id) +syscall sys_tgkill nr 6229 nbargs 3 types: (pid_t, pid_t, int) args: (tgid, pid, sig) +syscall sys_set_thread_area nr 6246 nbargs 1 types: (unsigned long) args: (addr) +syscall sys_inotify_init nr 6247 nbargs 0 types: () args: () +syscall sys_inotify_add_watch nr 6248 nbargs 3 types: (int, const char *, u32) args: (fd, pathname, mask) +syscall sys_inotify_rm_watch nr 6249 nbargs 2 types: (int, __s32) args: (fd, wd) +syscall sys_openat nr 6251 nbargs 4 types: (int, const char *, int, umode_t) args: (dfd, filename, flags, mode) +syscall sys_mkdirat nr 6252 nbargs 3 types: (int, const char *, umode_t) args: (dfd, pathname, mode) +syscall sys_mknodat nr 6253 nbargs 4 types: (int, const char *, umode_t, unsigned) args: (dfd, filename, mode, dev) +syscall sys_fchownat nr 6254 nbargs 5 types: (int, const char *, uid_t, gid_t, int) args: (dfd, filename, user, group, flag) +syscall sys_newfstatat nr 6256 nbargs 4 types: (int, const char *, struct stat *, int) args: (dfd, filename, statbuf, flag) +syscall sys_unlinkat nr 6257 nbargs 3 types: (int, const char *, int) args: (dfd, pathname, flag) +syscall sys_renameat nr 6258 nbargs 4 types: (int, const char *, int, const char *) args: (olddfd, oldname, newdfd, newname) +syscall sys_linkat nr 6259 nbargs 5 types: (int, const char *, int, const char *, int) args: (olddfd, oldname, newdfd, newname, flags) +syscall sys_symlinkat nr 6260 nbargs 3 types: (const char *, int, const char *) args: (oldname, newdfd, newname) +syscall sys_readlinkat nr 6261 nbargs 4 types: (int, const char *, char *, int) args: (dfd, pathname, buf, bufsiz) +syscall sys_fchmodat nr 6262 nbargs 3 types: (int, const char *, umode_t) args: (dfd, filename, mode) +syscall sys_faccessat nr 6263 nbargs 3 types: (int, const char *, int) args: (dfd, filename, mode) +syscall sys_unshare nr 6266 nbargs 1 types: (unsigned long) args: (unshare_flags) +syscall sys_splice nr 6267 nbargs 6 types: (int, loff_t *, int, loff_t *, size_t, unsigned int) args: (fd_in, off_in, fd_out, off_out, len, flags) +syscall sys_tee nr 6269 nbargs 4 types: (int, int, size_t, unsigned int) args: (fdin, fdout, len, flags) +syscall sys_getcpu nr 6275 nbargs 3 types: (unsigned *, unsigned *, struct getcpu_cache *) args: (cpup, nodep, unused) +syscall sys_ioprio_set nr 6277 nbargs 3 types: (int, int, int) args: (which, who, ioprio) +syscall sys_ioprio_get nr 6278 nbargs 2 types: (int, int) args: (which, who) +syscall sys_eventfd nr 6282 nbargs 1 types: (unsigned int) args: (count) +syscall sys_timerfd_create nr 6284 nbargs 2 types: (int, int) args: (clockid, flags) +syscall sys_signalfd4 nr 6287 nbargs 4 types: (int, sigset_t *, size_t, int) args: (ufd, user_mask, sizemask, flags) +syscall sys_eventfd2 nr 6288 nbargs 2 types: (unsigned int, int) args: (count, flags) +syscall sys_epoll_create1 nr 6289 nbargs 1 types: (int) args: (flags) +syscall sys_dup3 nr 6290 nbargs 3 types: (unsigned int, unsigned int, int) args: (oldfd, newfd, flags) +syscall sys_pipe2 nr 6291 nbargs 2 types: (int *, int) args: (fildes, flags) +syscall sys_inotify_init1 nr 6292 nbargs 1 types: (int) args: (flags) +syscall sys_preadv nr 6293 nbargs 5 types: (unsigned long, const struct iovec *, unsigned long, unsigned long, unsigned long) args: (fd, vec, vlen, pos_l, pos_h) +syscall sys_pwritev nr 6294 nbargs 5 types: (unsigned long, const struct iovec *, unsigned long, unsigned long, unsigned long) args: (fd, vec, vlen, pos_l, pos_h) +syscall sys_accept4 nr 6297 nbargs 4 types: (int, struct sockaddr *, int *, int) args: (fd, upeer_sockaddr, upeer_addrlen, flags) +syscall sys_getdents64 nr 6299 nbargs 3 types: (unsigned int, struct linux_dirent64 *, unsigned int) args: (fd, dirent, count) +syscall sys_prlimit64 nr 6302 nbargs 4 types: (pid_t, unsigned int, const struct rlimit64 *, struct rlimit64 *) args: (pid, resource, new_rlim, old_rlim) +syscall sys_syncfs nr 6306 nbargs 1 types: (int) args: (fd) +syscall sys_setns nr 6308 nbargs 2 types: (int, int) args: (fd, nstype) --- linux-3.11.0.orig/ubuntu/lttng-modules/instrumentation/syscalls/3.0.34/powerpc-32-syscalls-3.0.34 +++ linux-3.11.0/ubuntu/lttng-modules/instrumentation/syscalls/3.0.34/powerpc-32-syscalls-3.0.34 @@ -0,0 +1,286 @@ +syscall sys_restart_syscall nr 0 nbargs 0 types: () args: () +syscall sys_exit nr 1 nbargs 1 types: (int) args: (error_code) +syscall sys_read nr 3 nbargs 3 types: (unsigned int, char *, size_t) args: (fd, buf, count) +syscall sys_write nr 4 nbargs 3 types: (unsigned int, const char *, size_t) args: (fd, buf, count) +syscall sys_open nr 5 nbargs 3 types: (const char *, int, int) args: (filename, flags, mode) +syscall sys_close nr 6 nbargs 1 types: (unsigned int) args: (fd) +syscall sys_waitpid nr 7 nbargs 3 types: (pid_t, int *, int) args: (pid, stat_addr, options) +syscall sys_creat nr 8 nbargs 2 types: (const char *, int) args: (pathname, mode) +syscall sys_link nr 9 nbargs 2 types: (const char *, const char *) args: (oldname, newname) +syscall sys_unlink nr 10 nbargs 1 types: (const char *) args: (pathname) +syscall sys_chdir nr 12 nbargs 1 types: (const char *) args: (filename) +syscall sys_time nr 13 nbargs 1 types: (time_t *) args: (tloc) +syscall sys_mknod nr 14 nbargs 3 types: (const char *, int, unsigned) args: (filename, mode, dev) +syscall sys_chmod nr 15 nbargs 2 types: (const char *, mode_t) args: (filename, mode) +syscall sys_lchown nr 16 nbargs 3 types: (const char *, uid_t, gid_t) args: (filename, user, group) +syscall sys_stat nr 18 nbargs 2 types: (const char *, struct __old_kernel_stat *) args: (filename, statbuf) +syscall sys_lseek nr 19 nbargs 3 types: (unsigned int, off_t, unsigned int) args: (fd, offset, origin) +syscall sys_getpid nr 20 nbargs 0 types: () args: () +syscall sys_mount nr 21 nbargs 5 types: (char *, char *, char *, unsigned long, void *) args: (dev_name, dir_name, type, flags, data) +syscall sys_oldumount nr 22 nbargs 1 types: (char *) args: (name) +syscall sys_setuid nr 23 nbargs 1 types: (uid_t) args: (uid) +syscall sys_getuid nr 24 nbargs 0 types: () args: () +syscall sys_stime nr 25 nbargs 1 types: (time_t *) args: (tptr) +syscall sys_ptrace nr 26 nbargs 4 types: (long, long, unsigned long, unsigned long) args: (request, pid, addr, data) +syscall sys_alarm nr 27 nbargs 1 types: (unsigned int) args: (seconds) +syscall sys_fstat nr 28 nbargs 2 types: (unsigned int, struct __old_kernel_stat *) args: (fd, statbuf) +syscall sys_pause nr 29 nbargs 0 types: () args: () +syscall sys_utime nr 30 nbargs 2 types: (char *, struct utimbuf *) args: (filename, times) +syscall sys_access nr 33 nbargs 2 types: (const char *, int) args: (filename, mode) +syscall sys_nice nr 34 nbargs 1 types: (int) args: (increment) +syscall sys_sync nr 36 nbargs 0 types: () args: () +syscall sys_kill nr 37 nbargs 2 types: (pid_t, int) args: (pid, sig) +syscall sys_rename nr 38 nbargs 2 types: (const char *, const char *) args: (oldname, newname) +syscall sys_mkdir nr 39 nbargs 2 types: (const char *, int) args: (pathname, mode) +syscall sys_rmdir nr 40 nbargs 1 types: (const char *) args: (pathname) +syscall sys_dup nr 41 nbargs 1 types: (unsigned int) args: (fildes) +syscall sys_pipe nr 42 nbargs 1 types: (int *) args: (fildes) +syscall sys_times nr 43 nbargs 1 types: (struct tms *) args: (tbuf) +syscall sys_brk nr 45 nbargs 1 types: (unsigned long) args: (brk) +syscall sys_setgid nr 46 nbargs 1 types: (gid_t) args: (gid) +syscall sys_getgid nr 47 nbargs 0 types: () args: () +syscall sys_signal nr 48 nbargs 2 types: (int, __sighandler_t) args: (sig, handler) +syscall sys_geteuid nr 49 nbargs 0 types: () args: () +syscall sys_getegid nr 50 nbargs 0 types: () args: () +syscall sys_acct nr 51 nbargs 1 types: (const char *) args: (name) +syscall sys_umount nr 52 nbargs 2 types: (char *, int) args: (name, flags) +syscall sys_ioctl nr 54 nbargs 3 types: (unsigned int, unsigned int, unsigned long) args: (fd, cmd, arg) +syscall sys_fcntl nr 55 nbargs 3 types: (unsigned int, unsigned int, unsigned long) args: (fd, cmd, arg) +syscall sys_setpgid nr 57 nbargs 2 types: (pid_t, pid_t) args: (pid, pgid) +syscall sys_olduname nr 59 nbargs 1 types: (struct oldold_utsname *) args: (name) +syscall sys_umask nr 60 nbargs 1 types: (int) args: (mask) +syscall sys_chroot nr 61 nbargs 1 types: (const char *) args: (filename) +syscall sys_ustat nr 62 nbargs 2 types: (unsigned, struct ustat *) args: (dev, ubuf) +syscall sys_dup2 nr 63 nbargs 2 types: (unsigned int, unsigned int) args: (oldfd, newfd) +syscall sys_getppid nr 64 nbargs 0 types: () args: () +syscall sys_getpgrp nr 65 nbargs 0 types: () args: () +syscall sys_setsid nr 66 nbargs 0 types: () args: () +syscall sys_sgetmask nr 68 nbargs 0 types: () args: () +syscall sys_ssetmask nr 69 nbargs 1 types: (int) args: (newmask) +syscall sys_setreuid nr 70 nbargs 2 types: (uid_t, uid_t) args: (ruid, euid) +syscall sys_setregid nr 71 nbargs 2 types: (gid_t, gid_t) args: (rgid, egid) +syscall sys_sigpending nr 73 nbargs 1 types: (old_sigset_t *) args: (set) +syscall sys_sethostname nr 74 nbargs 2 types: (char *, int) args: (name, len) +syscall sys_setrlimit nr 75 nbargs 2 types: (unsigned int, struct rlimit *) args: (resource, rlim) +syscall sys_old_getrlimit nr 76 nbargs 2 types: (unsigned int, struct rlimit *) args: (resource, rlim) +syscall sys_getrusage nr 77 nbargs 2 types: (int, struct rusage *) args: (who, ru) +syscall sys_gettimeofday nr 78 nbargs 2 types: (struct timeval *, struct timezone *) args: (tv, tz) +syscall sys_settimeofday nr 79 nbargs 2 types: (struct timeval *, struct timezone *) args: (tv, tz) +syscall sys_getgroups nr 80 nbargs 2 types: (int, gid_t *) args: (gidsetsize, grouplist) +syscall sys_setgroups nr 81 nbargs 2 types: (int, gid_t *) args: (gidsetsize, grouplist) +syscall sys_symlink nr 83 nbargs 2 types: (const char *, const char *) args: (oldname, newname) +syscall sys_lstat nr 84 nbargs 2 types: (const char *, struct __old_kernel_stat *) args: (filename, statbuf) +syscall sys_readlink nr 85 nbargs 3 types: (const char *, char *, int) args: (path, buf, bufsiz) +syscall sys_uselib nr 86 nbargs 1 types: (const char *) args: (library) +syscall sys_swapon nr 87 nbargs 2 types: (const char *, int) args: (specialfile, swap_flags) +syscall sys_reboot nr 88 nbargs 4 types: (int, int, unsigned int, void *) args: (magic1, magic2, cmd, arg) +syscall sys_old_readdir nr 89 nbargs 3 types: (unsigned int, struct old_linux_dirent *, unsigned int) args: (fd, dirent, count) +syscall sys_munmap nr 91 nbargs 2 types: (unsigned long, size_t) args: (addr, len) +syscall sys_truncate nr 92 nbargs 2 types: (const char *, long) args: (path, length) +syscall sys_ftruncate nr 93 nbargs 2 types: (unsigned int, unsigned long) args: (fd, length) +syscall sys_fchmod nr 94 nbargs 2 types: (unsigned int, mode_t) args: (fd, mode) +syscall sys_fchown nr 95 nbargs 3 types: (unsigned int, uid_t, gid_t) args: (fd, user, group) +syscall sys_getpriority nr 96 nbargs 2 types: (int, int) args: (which, who) +syscall sys_setpriority nr 97 nbargs 3 types: (int, int, int) args: (which, who, niceval) +syscall sys_statfs nr 99 nbargs 2 types: (const char *, struct statfs *) args: (pathname, buf) +syscall sys_fstatfs nr 100 nbargs 2 types: (unsigned int, struct statfs *) args: (fd, buf) +syscall sys_socketcall nr 102 nbargs 2 types: (int, unsigned long *) args: (call, args) +syscall sys_syslog nr 103 nbargs 3 types: (int, char *, int) args: (type, buf, len) +syscall sys_setitimer nr 104 nbargs 3 types: (int, struct itimerval *, struct itimerval *) args: (which, value, ovalue) +syscall sys_getitimer nr 105 nbargs 2 types: (int, struct itimerval *) args: (which, value) +syscall sys_newstat nr 106 nbargs 2 types: (const char *, struct stat *) args: (filename, statbuf) +syscall sys_newlstat nr 107 nbargs 2 types: (const char *, struct stat *) args: (filename, statbuf) +syscall sys_newfstat nr 108 nbargs 2 types: (unsigned int, struct stat *) args: (fd, statbuf) +syscall sys_uname nr 109 nbargs 1 types: (struct old_utsname *) args: (name) +syscall sys_vhangup nr 111 nbargs 0 types: () args: () +syscall sys_wait4 nr 114 nbargs 4 types: (pid_t, int *, int, struct rusage *) args: (upid, stat_addr, options, ru) +syscall sys_swapoff nr 115 nbargs 1 types: (const char *) args: (specialfile) +syscall sys_sysinfo nr 116 nbargs 1 types: (struct sysinfo *) args: (info) +syscall sys_ipc nr 117 nbargs 6 types: (unsigned int, int, unsigned long, unsigned long, void *, long) args: (call, first, second, third, ptr, fifth) +syscall sys_fsync nr 118 nbargs 1 types: (unsigned int) args: (fd) +syscall sys_setdomainname nr 121 nbargs 2 types: (char *, int) args: (name, len) +syscall sys_newuname nr 122 nbargs 1 types: (struct new_utsname *) args: (name) +syscall sys_adjtimex nr 124 nbargs 1 types: (struct timex *) args: (txc_p) +syscall sys_mprotect nr 125 nbargs 3 types: (unsigned long, size_t, unsigned long) args: (start, len, prot) +syscall sys_sigprocmask nr 126 nbargs 3 types: (int, old_sigset_t *, old_sigset_t *) args: (how, nset, oset) +syscall sys_init_module nr 128 nbargs 3 types: (void *, unsigned long, const char *) args: (umod, len, uargs) +syscall sys_delete_module nr 129 nbargs 2 types: (const char *, unsigned int) args: (name_user, flags) +syscall sys_getpgid nr 132 nbargs 1 types: (pid_t) args: (pid) +syscall sys_fchdir nr 133 nbargs 1 types: (unsigned int) args: (fd) +syscall sys_bdflush nr 134 nbargs 2 types: (int, long) args: (func, data) +syscall sys_sysfs nr 135 nbargs 3 types: (int, unsigned long, unsigned long) args: (option, arg1, arg2) +syscall sys_personality nr 136 nbargs 1 types: (unsigned int) args: (personality) +syscall sys_setfsuid nr 138 nbargs 1 types: (uid_t) args: (uid) +syscall sys_setfsgid nr 139 nbargs 1 types: (gid_t) args: (gid) +syscall sys_llseek nr 140 nbargs 5 types: (unsigned int, unsigned long, unsigned long, loff_t *, unsigned int) args: (fd, offset_high, offset_low, result, origin) +syscall sys_getdents nr 141 nbargs 3 types: (unsigned int, struct linux_dirent *, unsigned int) args: (fd, dirent, count) +syscall sys_select nr 142 nbargs 5 types: (int, fd_set *, fd_set *, fd_set *, struct timeval *) args: (n, inp, outp, exp, tvp) +syscall sys_flock nr 143 nbargs 2 types: (unsigned int, unsigned int) args: (fd, cmd) +syscall sys_msync nr 144 nbargs 3 types: (unsigned long, size_t, int) args: (start, len, flags) +syscall sys_readv nr 145 nbargs 3 types: (unsigned long, const struct iovec *, unsigned long) args: (fd, vec, vlen) +syscall sys_writev nr 146 nbargs 3 types: (unsigned long, const struct iovec *, unsigned long) args: (fd, vec, vlen) +syscall sys_getsid nr 147 nbargs 1 types: (pid_t) args: (pid) +syscall sys_fdatasync nr 148 nbargs 1 types: (unsigned int) args: (fd) +syscall sys_sysctl nr 149 nbargs 1 types: (struct __sysctl_args *) args: (args) +syscall sys_mlock nr 150 nbargs 2 types: (unsigned long, size_t) args: (start, len) +syscall sys_munlock nr 151 nbargs 2 types: (unsigned long, size_t) args: (start, len) +syscall sys_mlockall nr 152 nbargs 1 types: (int) args: (flags) +syscall sys_munlockall nr 153 nbargs 0 types: () args: () +syscall sys_sched_setparam nr 154 nbargs 2 types: (pid_t, struct sched_param *) args: (pid, param) +syscall sys_sched_getparam nr 155 nbargs 2 types: (pid_t, struct sched_param *) args: (pid, param) +syscall sys_sched_setscheduler nr 156 nbargs 3 types: (pid_t, int, struct sched_param *) args: (pid, policy, param) +syscall sys_sched_getscheduler nr 157 nbargs 1 types: (pid_t) args: (pid) +syscall sys_sched_yield nr 158 nbargs 0 types: () args: () +syscall sys_sched_get_priority_max nr 159 nbargs 1 types: (int) args: (policy) +syscall sys_sched_get_priority_min nr 160 nbargs 1 types: (int) args: (policy) +syscall sys_sched_rr_get_interval nr 161 nbargs 2 types: (pid_t, struct timespec *) args: (pid, interval) +syscall sys_nanosleep nr 162 nbargs 2 types: (struct timespec *, struct timespec *) args: (rqtp, rmtp) +syscall sys_mremap nr 163 nbargs 5 types: (unsigned long, unsigned long, unsigned long, unsigned long, unsigned long) args: (addr, old_len, new_len, flags, new_addr) +syscall sys_setresuid nr 164 nbargs 3 types: (uid_t, uid_t, uid_t) args: (ruid, euid, suid) +syscall sys_getresuid nr 165 nbargs 3 types: (uid_t *, uid_t *, uid_t *) args: (ruid, euid, suid) +syscall sys_poll nr 167 nbargs 3 types: (struct pollfd *, unsigned int, long) args: (ufds, nfds, timeout_msecs) +syscall sys_nfsservctl nr 168 nbargs 3 types: (int, struct nfsctl_arg *, void *) args: (cmd, arg, res) +syscall sys_setresgid nr 169 nbargs 3 types: (gid_t, gid_t, gid_t) args: (rgid, egid, sgid) +syscall sys_getresgid nr 170 nbargs 3 types: (gid_t *, gid_t *, gid_t *) args: (rgid, egid, sgid) +syscall sys_prctl nr 171 nbargs 5 types: (int, unsigned long, unsigned long, unsigned long, unsigned long) args: (option, arg2, arg3, arg4, arg5) +syscall sys_rt_sigaction nr 173 nbargs 4 types: (int, const struct sigaction *, struct sigaction *, size_t) args: (sig, act, oact, sigsetsize) +syscall sys_rt_sigprocmask nr 174 nbargs 4 types: (int, sigset_t *, sigset_t *, size_t) args: (how, nset, oset, sigsetsize) +syscall sys_rt_sigpending nr 175 nbargs 2 types: (sigset_t *, size_t) args: (set, sigsetsize) +syscall sys_rt_sigtimedwait nr 176 nbargs 4 types: (const sigset_t *, siginfo_t *, const struct timespec *, size_t) args: (uthese, uinfo, uts, sigsetsize) +syscall sys_rt_sigqueueinfo nr 177 nbargs 3 types: (pid_t, int, siginfo_t *) args: (pid, sig, uinfo) +syscall sys_rt_sigsuspend nr 178 nbargs 2 types: (sigset_t *, size_t) args: (unewset, sigsetsize) +syscall sys_chown nr 181 nbargs 3 types: (const char *, uid_t, gid_t) args: (filename, user, group) +syscall sys_getcwd nr 182 nbargs 2 types: (char *, unsigned long) args: (buf, size) +syscall sys_capget nr 183 nbargs 2 types: (cap_user_header_t, cap_user_data_t) args: (header, dataptr) +syscall sys_capset nr 184 nbargs 2 types: (cap_user_header_t, const cap_user_data_t) args: (header, data) +syscall sys_sendfile nr 186 nbargs 4 types: (int, int, off_t *, size_t) args: (out_fd, in_fd, offset, count) +syscall sys_getrlimit nr 190 nbargs 2 types: (unsigned int, struct rlimit *) args: (resource, rlim) +syscall sys_stat64 nr 195 nbargs 2 types: (const char *, struct stat64 *) args: (filename, statbuf) +syscall sys_lstat64 nr 196 nbargs 2 types: (const char *, struct stat64 *) args: (filename, statbuf) +syscall sys_fstat64 nr 197 nbargs 2 types: (unsigned long, struct stat64 *) args: (fd, statbuf) +syscall sys_pciconfig_read nr 198 nbargs 5 types: (unsigned long, unsigned long, unsigned long, unsigned long, void *) args: (bus, dfn, off, len, buf) +syscall sys_pciconfig_write nr 199 nbargs 5 types: (unsigned long, unsigned long, unsigned long, unsigned long, void *) args: (bus, dfn, off, len, buf) +syscall sys_getdents64 nr 202 nbargs 3 types: (unsigned int, struct linux_dirent64 *, unsigned int) args: (fd, dirent, count) +syscall sys_pivot_root nr 203 nbargs 2 types: (const char *, const char *) args: (new_root, put_old) +syscall sys_fcntl64 nr 204 nbargs 3 types: (unsigned int, unsigned int, unsigned long) args: (fd, cmd, arg) +syscall sys_madvise nr 205 nbargs 3 types: (unsigned long, size_t, int) args: (start, len_in, behavior) +syscall sys_mincore nr 206 nbargs 3 types: (unsigned long, size_t, unsigned char *) args: (start, len, vec) +syscall sys_gettid nr 207 nbargs 0 types: () args: () +syscall sys_tkill nr 208 nbargs 2 types: (pid_t, int) args: (pid, sig) +syscall sys_setxattr nr 209 nbargs 5 types: (const char *, const char *, const void *, size_t, int) args: (pathname, name, value, size, flags) +syscall sys_lsetxattr nr 210 nbargs 5 types: (const char *, const char *, const void *, size_t, int) args: (pathname, name, value, size, flags) +syscall sys_fsetxattr nr 211 nbargs 5 types: (int, const char *, const void *, size_t, int) args: (fd, name, value, size, flags) +syscall sys_getxattr nr 212 nbargs 4 types: (const char *, const char *, void *, size_t) args: (pathname, name, value, size) +syscall sys_lgetxattr nr 213 nbargs 4 types: (const char *, const char *, void *, size_t) args: (pathname, name, value, size) +syscall sys_fgetxattr nr 214 nbargs 4 types: (int, const char *, void *, size_t) args: (fd, name, value, size) +syscall sys_listxattr nr 215 nbargs 3 types: (const char *, char *, size_t) args: (pathname, list, size) +syscall sys_llistxattr nr 216 nbargs 3 types: (const char *, char *, size_t) args: (pathname, list, size) +syscall sys_flistxattr nr 217 nbargs 3 types: (int, char *, size_t) args: (fd, list, size) +syscall sys_removexattr nr 218 nbargs 2 types: (const char *, const char *) args: (pathname, name) +syscall sys_lremovexattr nr 219 nbargs 2 types: (const char *, const char *) args: (pathname, name) +syscall sys_fremovexattr nr 220 nbargs 2 types: (int, const char *) args: (fd, name) +syscall sys_futex nr 221 nbargs 6 types: (u32 *, int, u32, struct timespec *, u32 *, u32) args: (uaddr, op, val, utime, uaddr2, val3) +syscall sys_sched_setaffinity nr 222 nbargs 3 types: (pid_t, unsigned int, unsigned long *) args: (pid, len, user_mask_ptr) +syscall sys_sched_getaffinity nr 223 nbargs 3 types: (pid_t, unsigned int, unsigned long *) args: (pid, len, user_mask_ptr) +syscall sys_sendfile64 nr 226 nbargs 4 types: (int, int, loff_t *, size_t) args: (out_fd, in_fd, offset, count) +syscall sys_io_setup nr 227 nbargs 2 types: (unsigned, aio_context_t *) args: (nr_events, ctxp) +syscall sys_io_destroy nr 228 nbargs 1 types: (aio_context_t) args: (ctx) +syscall sys_io_getevents nr 229 nbargs 5 types: (aio_context_t, long, long, struct io_event *, struct timespec *) args: (ctx_id, min_nr, nr, events, timeout) +syscall sys_io_submit nr 230 nbargs 3 types: (aio_context_t, long, struct iocb * *) args: (ctx_id, nr, iocbpp) +syscall sys_io_cancel nr 231 nbargs 3 types: (aio_context_t, struct iocb *, struct io_event *) args: (ctx_id, iocb, result) +syscall sys_set_tid_address nr 232 nbargs 1 types: (int *) args: (tidptr) +syscall sys_exit_group nr 234 nbargs 1 types: (int) args: (error_code) +syscall sys_epoll_create nr 236 nbargs 1 types: (int) args: (size) +syscall sys_epoll_ctl nr 237 nbargs 4 types: (int, int, int, struct epoll_event *) args: (epfd, op, fd, event) +syscall sys_epoll_wait nr 238 nbargs 4 types: (int, struct epoll_event *, int, int) args: (epfd, events, maxevents, timeout) +syscall sys_remap_file_pages nr 239 nbargs 5 types: (unsigned long, unsigned long, unsigned long, unsigned long, unsigned long) args: (start, size, prot, pgoff, flags) +syscall sys_timer_create nr 240 nbargs 3 types: (const clockid_t, struct sigevent *, timer_t *) args: (which_clock, timer_event_spec, created_timer_id) +syscall sys_timer_settime nr 241 nbargs 4 types: (timer_t, int, const struct itimerspec *, struct itimerspec *) args: (timer_id, flags, new_setting, old_setting) +syscall sys_timer_gettime nr 242 nbargs 2 types: (timer_t, struct itimerspec *) args: (timer_id, setting) +syscall sys_timer_getoverrun nr 243 nbargs 1 types: (timer_t) args: (timer_id) +syscall sys_timer_delete nr 244 nbargs 1 types: (timer_t) args: (timer_id) +syscall sys_clock_settime nr 245 nbargs 2 types: (const clockid_t, const struct timespec *) args: (which_clock, tp) +syscall sys_clock_gettime nr 246 nbargs 2 types: (const clockid_t, struct timespec *) args: (which_clock, tp) +syscall sys_clock_getres nr 247 nbargs 2 types: (const clockid_t, struct timespec *) args: (which_clock, tp) +syscall sys_clock_nanosleep nr 248 nbargs 4 types: (const clockid_t, int, const struct timespec *, struct timespec *) args: (which_clock, flags, rqtp, rmtp) +syscall sys_tgkill nr 250 nbargs 3 types: (pid_t, pid_t, int) args: (tgid, pid, sig) +syscall sys_utimes nr 251 nbargs 2 types: (char *, struct timeval *) args: (filename, utimes) +syscall sys_statfs64 nr 252 nbargs 3 types: (const char *, size_t, struct statfs64 *) args: (pathname, sz, buf) +syscall sys_fstatfs64 nr 253 nbargs 3 types: (unsigned int, size_t, struct statfs64 *) args: (fd, sz, buf) +syscall sys_mq_open nr 262 nbargs 4 types: (const char *, int, mode_t, struct mq_attr *) args: (u_name, oflag, mode, u_attr) +syscall sys_mq_unlink nr 263 nbargs 1 types: (const char *) args: (u_name) +syscall sys_mq_timedsend nr 264 nbargs 5 types: (mqd_t, const char *, size_t, unsigned int, const struct timespec *) args: (mqdes, u_msg_ptr, msg_len, msg_prio, u_abs_timeout) +syscall sys_mq_timedreceive nr 265 nbargs 5 types: (mqd_t, char *, size_t, unsigned int *, const struct timespec *) args: (mqdes, u_msg_ptr, msg_len, u_msg_prio, u_abs_timeout) +syscall sys_mq_notify nr 266 nbargs 2 types: (mqd_t, const struct sigevent *) args: (mqdes, u_notification) +syscall sys_mq_getsetattr nr 267 nbargs 3 types: (mqd_t, const struct mq_attr *, struct mq_attr *) args: (mqdes, u_mqstat, u_omqstat) +syscall sys_add_key nr 269 nbargs 5 types: (const char *, const char *, const void *, size_t, key_serial_t) args: (_type, _description, _payload, plen, ringid) +syscall sys_request_key nr 270 nbargs 4 types: (const char *, const char *, const char *, key_serial_t) args: (_type, _description, _callout_info, destringid) +syscall sys_keyctl nr 271 nbargs 5 types: (int, unsigned long, unsigned long, unsigned long, unsigned long) args: (option, arg2, arg3, arg4, arg5) +syscall sys_waitid nr 272 nbargs 5 types: (int, pid_t, struct siginfo *, int, struct rusage *) args: (which, upid, infop, options, ru) +syscall sys_ioprio_set nr 273 nbargs 3 types: (int, int, int) args: (which, who, ioprio) +syscall sys_ioprio_get nr 274 nbargs 2 types: (int, int) args: (which, who) +syscall sys_inotify_init nr 275 nbargs 0 types: () args: () +syscall sys_inotify_add_watch nr 276 nbargs 3 types: (int, const char *, u32) args: (fd, pathname, mask) +syscall sys_inotify_rm_watch nr 277 nbargs 2 types: (int, __s32) args: (fd, wd) +syscall sys_pselect6 nr 280 nbargs 6 types: (int, fd_set *, fd_set *, fd_set *, struct timespec *, void *) args: (n, inp, outp, exp, tsp, sig) +syscall sys_ppoll nr 281 nbargs 5 types: (struct pollfd *, unsigned int, struct timespec *, const sigset_t *, size_t) args: (ufds, nfds, tsp, sigmask, sigsetsize) +syscall sys_unshare nr 282 nbargs 1 types: (unsigned long) args: (unshare_flags) +syscall sys_splice nr 283 nbargs 6 types: (int, loff_t *, int, loff_t *, size_t, unsigned int) args: (fd_in, off_in, fd_out, off_out, len, flags) +syscall sys_tee nr 284 nbargs 4 types: (int, int, size_t, unsigned int) args: (fdin, fdout, len, flags) +syscall sys_vmsplice nr 285 nbargs 4 types: (int, const struct iovec *, unsigned long, unsigned int) args: (fd, iov, nr_segs, flags) +syscall sys_openat nr 286 nbargs 4 types: (int, const char *, int, int) args: (dfd, filename, flags, mode) +syscall sys_mkdirat nr 287 nbargs 3 types: (int, const char *, int) args: (dfd, pathname, mode) +syscall sys_mknodat nr 288 nbargs 4 types: (int, const char *, int, unsigned) args: (dfd, filename, mode, dev) +syscall sys_fchownat nr 289 nbargs 5 types: (int, const char *, uid_t, gid_t, int) args: (dfd, filename, user, group, flag) +syscall sys_futimesat nr 290 nbargs 3 types: (int, const char *, struct timeval *) args: (dfd, filename, utimes) +syscall sys_fstatat64 nr 291 nbargs 4 types: (int, const char *, struct stat64 *, int) args: (dfd, filename, statbuf, flag) +syscall sys_unlinkat nr 292 nbargs 3 types: (int, const char *, int) args: (dfd, pathname, flag) +syscall sys_renameat nr 293 nbargs 4 types: (int, const char *, int, const char *) args: (olddfd, oldname, newdfd, newname) +syscall sys_linkat nr 294 nbargs 5 types: (int, const char *, int, const char *, int) args: (olddfd, oldname, newdfd, newname, flags) +syscall sys_symlinkat nr 295 nbargs 3 types: (const char *, int, const char *) args: (oldname, newdfd, newname) +syscall sys_readlinkat nr 296 nbargs 4 types: (int, const char *, char *, int) args: (dfd, pathname, buf, bufsiz) +syscall sys_fchmodat nr 297 nbargs 3 types: (int, const char *, mode_t) args: (dfd, filename, mode) +syscall sys_faccessat nr 298 nbargs 3 types: (int, const char *, int) args: (dfd, filename, mode) +syscall sys_get_robust_list nr 299 nbargs 3 types: (int, struct robust_list_head * *, size_t *) args: (pid, head_ptr, len_ptr) +syscall sys_set_robust_list nr 300 nbargs 2 types: (struct robust_list_head *, size_t) args: (head, len) +syscall sys_getcpu nr 302 nbargs 3 types: (unsigned *, unsigned *, struct getcpu_cache *) args: (cpup, nodep, unused) +syscall sys_epoll_pwait nr 303 nbargs 6 types: (int, struct epoll_event *, int, int, const sigset_t *, size_t) args: (epfd, events, maxevents, timeout, sigmask, sigsetsize) +syscall sys_utimensat nr 304 nbargs 4 types: (int, const char *, struct timespec *, int) args: (dfd, filename, utimes, flags) +syscall sys_signalfd nr 305 nbargs 3 types: (int, sigset_t *, size_t) args: (ufd, user_mask, sizemask) +syscall sys_timerfd_create nr 306 nbargs 2 types: (int, int) args: (clockid, flags) +syscall sys_eventfd nr 307 nbargs 1 types: (unsigned int) args: (count) +syscall sys_timerfd_settime nr 311 nbargs 4 types: (int, int, const struct itimerspec *, struct itimerspec *) args: (ufd, flags, utmr, otmr) +syscall sys_timerfd_gettime nr 312 nbargs 2 types: (int, struct itimerspec *) args: (ufd, otmr) +syscall sys_signalfd4 nr 313 nbargs 4 types: (int, sigset_t *, size_t, int) args: (ufd, user_mask, sizemask, flags) +syscall sys_eventfd2 nr 314 nbargs 2 types: (unsigned int, int) args: (count, flags) +syscall sys_epoll_create1 nr 315 nbargs 1 types: (int) args: (flags) +syscall sys_dup3 nr 316 nbargs 3 types: (unsigned int, unsigned int, int) args: (oldfd, newfd, flags) +syscall sys_pipe2 nr 317 nbargs 2 types: (int *, int) args: (fildes, flags) +syscall sys_inotify_init1 nr 318 nbargs 1 types: (int) args: (flags) +syscall sys_perf_event_open nr 319 nbargs 5 types: (struct perf_event_attr *, pid_t, int, int, unsigned long) args: (attr_uptr, pid, cpu, group_fd, flags) +syscall sys_preadv nr 320 nbargs 5 types: (unsigned long, const struct iovec *, unsigned long, unsigned long, unsigned long) args: (fd, vec, vlen, pos_l, pos_h) +syscall sys_pwritev nr 321 nbargs 5 types: (unsigned long, const struct iovec *, unsigned long, unsigned long, unsigned long) args: (fd, vec, vlen, pos_l, pos_h) +syscall sys_rt_tgsigqueueinfo nr 322 nbargs 4 types: (pid_t, pid_t, int, siginfo_t *) args: (tgid, pid, sig, uinfo) +syscall sys_prlimit64 nr 325 nbargs 4 types: (pid_t, unsigned int, const struct rlimit64 *, struct rlimit64 *) args: (pid, resource, new_rlim, old_rlim) +syscall sys_socket nr 326 nbargs 3 types: (int, int, int) args: (family, type, protocol) +syscall sys_bind nr 327 nbargs 3 types: (int, struct sockaddr *, int) args: (fd, umyaddr, addrlen) +syscall sys_connect nr 328 nbargs 3 types: (int, struct sockaddr *, int) args: (fd, uservaddr, addrlen) +syscall sys_listen nr 329 nbargs 2 types: (int, int) args: (fd, backlog) +syscall sys_accept nr 330 nbargs 3 types: (int, struct sockaddr *, int *) args: (fd, upeer_sockaddr, upeer_addrlen) +syscall sys_getsockname nr 331 nbargs 3 types: (int, struct sockaddr *, int *) args: (fd, usockaddr, usockaddr_len) +syscall sys_getpeername nr 332 nbargs 3 types: (int, struct sockaddr *, int *) args: (fd, usockaddr, usockaddr_len) +syscall sys_socketpair nr 333 nbargs 4 types: (int, int, int, int *) args: (family, type, protocol, usockvec) +syscall sys_send nr 334 nbargs 4 types: (int, void *, size_t, unsigned) args: (fd, buff, len, flags) +syscall sys_sendto nr 335 nbargs 6 types: (int, void *, size_t, unsigned, struct sockaddr *, int) args: (fd, buff, len, flags, addr, addr_len) +syscall sys_recvfrom nr 337 nbargs 6 types: (int, void *, size_t, unsigned, struct sockaddr *, int *) args: (fd, ubuf, size, flags, addr, addr_len) +syscall sys_shutdown nr 338 nbargs 2 types: (int, int) args: (fd, how) +syscall sys_setsockopt nr 339 nbargs 5 types: (int, int, int, char *, int) args: (fd, level, optname, optval, optlen) +syscall sys_getsockopt nr 340 nbargs 5 types: (int, int, int, char *, int *) args: (fd, level, optname, optval, optlen) +syscall sys_sendmsg nr 341 nbargs 3 types: (int, struct msghdr *, unsigned) args: (fd, msg, flags) +syscall sys_recvmsg nr 342 nbargs 3 types: (int, struct msghdr *, unsigned int) args: (fd, msg, flags) +syscall sys_recvmmsg nr 343 nbargs 5 types: (int, struct mmsghdr *, unsigned int, unsigned int, struct timespec *) args: (fd, mmsg, vlen, flags, timeout) +syscall sys_accept4 nr 344 nbargs 4 types: (int, struct sockaddr *, int *, int) args: (fd, upeer_sockaddr, upeer_addrlen, flags) +syscall sys_clock_adjtime nr 347 nbargs 2 types: (const clockid_t, struct timex *) args: (which_clock, utx) +syscall sys_syncfs nr 348 nbargs 1 types: (int) args: (fd) +syscall sys_sendmmsg nr 349 nbargs 4 types: (int, struct mmsghdr *, unsigned int, unsigned int) args: (fd, mmsg, vlen, flags) +syscall sys_setns nr 350 nbargs 2 types: (int, int) args: (fd, nstype) --- linux-3.11.0.orig/ubuntu/lttng-modules/instrumentation/syscalls/3.4.25/arm-32-syscalls-3.4.25 +++ linux-3.11.0/ubuntu/lttng-modules/instrumentation/syscalls/3.4.25/arm-32-syscalls-3.4.25 @@ -0,0 +1,299 @@ +syscall sys_restart_syscall nr 0 nbargs 0 types: () args: () +syscall sys_exit nr 1 nbargs 1 types: (int) args: (error_code) +syscall sys_read nr 3 nbargs 3 types: (unsigned int, char *, size_t) args: (fd, buf, count) +syscall sys_write nr 4 nbargs 3 types: (unsigned int, const char *, size_t) args: (fd, buf, count) +syscall sys_open nr 5 nbargs 3 types: (const char *, int, umode_t) args: (filename, flags, mode) +syscall sys_close nr 6 nbargs 1 types: (unsigned int) args: (fd) +syscall sys_creat nr 8 nbargs 2 types: (const char *, umode_t) args: (pathname, mode) +syscall sys_link nr 9 nbargs 2 types: (const char *, const char *) args: (oldname, newname) +syscall sys_unlink nr 10 nbargs 1 types: (const char *) args: (pathname) +syscall sys_chdir nr 12 nbargs 1 types: (const char *) args: (filename) +syscall sys_mknod nr 14 nbargs 3 types: (const char *, umode_t, unsigned) args: (filename, mode, dev) +syscall sys_chmod nr 15 nbargs 2 types: (const char *, umode_t) args: (filename, mode) +syscall sys_lchown16 nr 16 nbargs 3 types: (const char *, old_uid_t, old_gid_t) args: (filename, user, group) +syscall sys_lseek nr 19 nbargs 3 types: (unsigned int, off_t, unsigned int) args: (fd, offset, origin) +syscall sys_getpid nr 20 nbargs 0 types: () args: () +syscall sys_mount nr 21 nbargs 5 types: (char *, char *, char *, unsigned long, void *) args: (dev_name, dir_name, type, flags, data) +syscall sys_setuid16 nr 23 nbargs 1 types: (old_uid_t) args: (uid) +syscall sys_getuid16 nr 24 nbargs 0 types: () args: () +syscall sys_ptrace nr 26 nbargs 4 types: (long, long, unsigned long, unsigned long) args: (request, pid, addr, data) +syscall sys_pause nr 29 nbargs 0 types: () args: () +syscall sys_access nr 33 nbargs 2 types: (const char *, int) args: (filename, mode) +syscall sys_nice nr 34 nbargs 1 types: (int) args: (increment) +syscall sys_sync nr 36 nbargs 0 types: () args: () +syscall sys_kill nr 37 nbargs 2 types: (pid_t, int) args: (pid, sig) +syscall sys_rename nr 38 nbargs 2 types: (const char *, const char *) args: (oldname, newname) +syscall sys_mkdir nr 39 nbargs 2 types: (const char *, umode_t) args: (pathname, mode) +syscall sys_rmdir nr 40 nbargs 1 types: (const char *) args: (pathname) +syscall sys_dup nr 41 nbargs 1 types: (unsigned int) args: (fildes) +syscall sys_pipe nr 42 nbargs 1 types: (int *) args: (fildes) +syscall sys_times nr 43 nbargs 1 types: (struct tms *) args: (tbuf) +syscall sys_brk nr 45 nbargs 1 types: (unsigned long) args: (brk) +syscall sys_setgid16 nr 46 nbargs 1 types: (old_gid_t) args: (gid) +syscall sys_getgid16 nr 47 nbargs 0 types: () args: () +syscall sys_geteuid16 nr 49 nbargs 0 types: () args: () +syscall sys_getegid16 nr 50 nbargs 0 types: () args: () +syscall sys_acct nr 51 nbargs 1 types: (const char *) args: (name) +syscall sys_umount nr 52 nbargs 2 types: (char *, int) args: (name, flags) +syscall sys_ioctl nr 54 nbargs 3 types: (unsigned int, unsigned int, unsigned long) args: (fd, cmd, arg) +syscall sys_fcntl nr 55 nbargs 3 types: (unsigned int, unsigned int, unsigned long) args: (fd, cmd, arg) +syscall sys_setpgid nr 57 nbargs 2 types: (pid_t, pid_t) args: (pid, pgid) +syscall sys_umask nr 60 nbargs 1 types: (int) args: (mask) +syscall sys_chroot nr 61 nbargs 1 types: (const char *) args: (filename) +syscall sys_ustat nr 62 nbargs 2 types: (unsigned, struct ustat *) args: (dev, ubuf) +syscall sys_dup2 nr 63 nbargs 2 types: (unsigned int, unsigned int) args: (oldfd, newfd) +syscall sys_getppid nr 64 nbargs 0 types: () args: () +syscall sys_getpgrp nr 65 nbargs 0 types: () args: () +syscall sys_setsid nr 66 nbargs 0 types: () args: () +syscall sys_setreuid16 nr 70 nbargs 2 types: (old_uid_t, old_uid_t) args: (ruid, euid) +syscall sys_setregid16 nr 71 nbargs 2 types: (old_gid_t, old_gid_t) args: (rgid, egid) +syscall sys_sigpending nr 73 nbargs 1 types: (old_sigset_t *) args: (set) +syscall sys_sethostname nr 74 nbargs 2 types: (char *, int) args: (name, len) +syscall sys_setrlimit nr 75 nbargs 2 types: (unsigned int, struct rlimit *) args: (resource, rlim) +syscall sys_getrusage nr 77 nbargs 2 types: (int, struct rusage *) args: (who, ru) +syscall sys_gettimeofday nr 78 nbargs 2 types: (struct timeval *, struct timezone *) args: (tv, tz) +syscall sys_settimeofday nr 79 nbargs 2 types: (struct timeval *, struct timezone *) args: (tv, tz) +syscall sys_getgroups16 nr 80 nbargs 2 types: (int, old_gid_t *) args: (gidsetsize, grouplist) +syscall sys_setgroups16 nr 81 nbargs 2 types: (int, old_gid_t *) args: (gidsetsize, grouplist) +syscall sys_symlink nr 83 nbargs 2 types: (const char *, const char *) args: (oldname, newname) +syscall sys_readlink nr 85 nbargs 3 types: (const char *, char *, int) args: (path, buf, bufsiz) +syscall sys_uselib nr 86 nbargs 1 types: (const char *) args: (library) +syscall sys_swapon nr 87 nbargs 2 types: (const char *, int) args: (specialfile, swap_flags) +syscall sys_reboot nr 88 nbargs 4 types: (int, int, unsigned int, void *) args: (magic1, magic2, cmd, arg) +syscall sys_munmap nr 91 nbargs 2 types: (unsigned long, size_t) args: (addr, len) +syscall sys_truncate nr 92 nbargs 2 types: (const char *, long) args: (path, length) +syscall sys_ftruncate nr 93 nbargs 2 types: (unsigned int, unsigned long) args: (fd, length) +syscall sys_fchmod nr 94 nbargs 2 types: (unsigned int, umode_t) args: (fd, mode) +syscall sys_fchown16 nr 95 nbargs 3 types: (unsigned int, old_uid_t, old_gid_t) args: (fd, user, group) +syscall sys_getpriority nr 96 nbargs 2 types: (int, int) args: (which, who) +syscall sys_setpriority nr 97 nbargs 3 types: (int, int, int) args: (which, who, niceval) +syscall sys_statfs nr 99 nbargs 2 types: (const char *, struct statfs *) args: (pathname, buf) +syscall sys_fstatfs nr 100 nbargs 2 types: (unsigned int, struct statfs *) args: (fd, buf) +syscall sys_syslog nr 103 nbargs 3 types: (int, char *, int) args: (type, buf, len) +syscall sys_setitimer nr 104 nbargs 3 types: (int, struct itimerval *, struct itimerval *) args: (which, value, ovalue) +syscall sys_getitimer nr 105 nbargs 2 types: (int, struct itimerval *) args: (which, value) +syscall sys_newstat nr 106 nbargs 2 types: (const char *, struct stat *) args: (filename, statbuf) +syscall sys_newlstat nr 107 nbargs 2 types: (const char *, struct stat *) args: (filename, statbuf) +syscall sys_newfstat nr 108 nbargs 2 types: (unsigned int, struct stat *) args: (fd, statbuf) +syscall sys_vhangup nr 111 nbargs 0 types: () args: () +syscall sys_wait4 nr 114 nbargs 4 types: (pid_t, int *, int, struct rusage *) args: (upid, stat_addr, options, ru) +syscall sys_swapoff nr 115 nbargs 1 types: (const char *) args: (specialfile) +syscall sys_sysinfo nr 116 nbargs 1 types: (struct sysinfo *) args: (info) +syscall sys_fsync nr 118 nbargs 1 types: (unsigned int) args: (fd) +syscall sys_setdomainname nr 121 nbargs 2 types: (char *, int) args: (name, len) +syscall sys_newuname nr 122 nbargs 1 types: (struct new_utsname *) args: (name) +syscall sys_adjtimex nr 124 nbargs 1 types: (struct timex *) args: (txc_p) +syscall sys_mprotect nr 125 nbargs 3 types: (unsigned long, size_t, unsigned long) args: (start, len, prot) +syscall sys_sigprocmask nr 126 nbargs 3 types: (int, old_sigset_t *, old_sigset_t *) args: (how, nset, oset) +syscall sys_init_module nr 128 nbargs 3 types: (void *, unsigned long, const char *) args: (umod, len, uargs) +syscall sys_delete_module nr 129 nbargs 2 types: (const char *, unsigned int) args: (name_user, flags) +syscall sys_quotactl nr 131 nbargs 4 types: (unsigned int, const char *, qid_t, void *) args: (cmd, special, id, addr) +syscall sys_getpgid nr 132 nbargs 1 types: (pid_t) args: (pid) +syscall sys_fchdir nr 133 nbargs 1 types: (unsigned int) args: (fd) +syscall sys_bdflush nr 134 nbargs 2 types: (int, long) args: (func, data) +syscall sys_sysfs nr 135 nbargs 3 types: (int, unsigned long, unsigned long) args: (option, arg1, arg2) +syscall sys_personality nr 136 nbargs 1 types: (unsigned int) args: (personality) +syscall sys_setfsuid16 nr 138 nbargs 1 types: (old_uid_t) args: (uid) +syscall sys_setfsgid16 nr 139 nbargs 1 types: (old_gid_t) args: (gid) +syscall sys_llseek nr 140 nbargs 5 types: (unsigned int, unsigned long, unsigned long, loff_t *, unsigned int) args: (fd, offset_high, offset_low, result, origin) +syscall sys_getdents nr 141 nbargs 3 types: (unsigned int, struct linux_dirent *, unsigned int) args: (fd, dirent, count) +syscall sys_select nr 142 nbargs 5 types: (int, fd_set *, fd_set *, fd_set *, struct timeval *) args: (n, inp, outp, exp, tvp) +syscall sys_flock nr 143 nbargs 2 types: (unsigned int, unsigned int) args: (fd, cmd) +syscall sys_msync nr 144 nbargs 3 types: (unsigned long, size_t, int) args: (start, len, flags) +syscall sys_readv nr 145 nbargs 3 types: (unsigned long, const struct iovec *, unsigned long) args: (fd, vec, vlen) +syscall sys_writev nr 146 nbargs 3 types: (unsigned long, const struct iovec *, unsigned long) args: (fd, vec, vlen) +syscall sys_getsid nr 147 nbargs 1 types: (pid_t) args: (pid) +syscall sys_fdatasync nr 148 nbargs 1 types: (unsigned int) args: (fd) +syscall sys_sysctl nr 149 nbargs 1 types: (struct __sysctl_args *) args: (args) +syscall sys_mlock nr 150 nbargs 2 types: (unsigned long, size_t) args: (start, len) +syscall sys_munlock nr 151 nbargs 2 types: (unsigned long, size_t) args: (start, len) +syscall sys_mlockall nr 152 nbargs 1 types: (int) args: (flags) +syscall sys_munlockall nr 153 nbargs 0 types: () args: () +syscall sys_sched_setparam nr 154 nbargs 2 types: (pid_t, struct sched_param *) args: (pid, param) +syscall sys_sched_getparam nr 155 nbargs 2 types: (pid_t, struct sched_param *) args: (pid, param) +syscall sys_sched_setscheduler nr 156 nbargs 3 types: (pid_t, int, struct sched_param *) args: (pid, policy, param) +syscall sys_sched_getscheduler nr 157 nbargs 1 types: (pid_t) args: (pid) +syscall sys_sched_yield nr 158 nbargs 0 types: () args: () +syscall sys_sched_get_priority_max nr 159 nbargs 1 types: (int) args: (policy) +syscall sys_sched_get_priority_min nr 160 nbargs 1 types: (int) args: (policy) +syscall sys_sched_rr_get_interval nr 161 nbargs 2 types: (pid_t, struct timespec *) args: (pid, interval) +syscall sys_nanosleep nr 162 nbargs 2 types: (struct timespec *, struct timespec *) args: (rqtp, rmtp) +syscall sys_mremap nr 163 nbargs 5 types: (unsigned long, unsigned long, unsigned long, unsigned long, unsigned long) args: (addr, old_len, new_len, flags, new_addr) +syscall sys_setresuid16 nr 164 nbargs 3 types: (old_uid_t, old_uid_t, old_uid_t) args: (ruid, euid, suid) +syscall sys_getresuid16 nr 165 nbargs 3 types: (old_uid_t *, old_uid_t *, old_uid_t *) args: (ruid, euid, suid) +syscall sys_poll nr 168 nbargs 3 types: (struct pollfd *, unsigned int, int) args: (ufds, nfds, timeout_msecs) +syscall sys_setresgid16 nr 170 nbargs 3 types: (old_gid_t, old_gid_t, old_gid_t) args: (rgid, egid, sgid) +syscall sys_getresgid16 nr 171 nbargs 3 types: (old_gid_t *, old_gid_t *, old_gid_t *) args: (rgid, egid, sgid) +syscall sys_prctl nr 172 nbargs 5 types: (int, unsigned long, unsigned long, unsigned long, unsigned long) args: (option, arg2, arg3, arg4, arg5) +syscall sys_rt_sigaction nr 174 nbargs 4 types: (int, const struct sigaction *, struct sigaction *, size_t) args: (sig, act, oact, sigsetsize) +syscall sys_rt_sigprocmask nr 175 nbargs 4 types: (int, sigset_t *, sigset_t *, size_t) args: (how, nset, oset, sigsetsize) +syscall sys_rt_sigpending nr 176 nbargs 2 types: (sigset_t *, size_t) args: (set, sigsetsize) +syscall sys_rt_sigtimedwait nr 177 nbargs 4 types: (const sigset_t *, siginfo_t *, const struct timespec *, size_t) args: (uthese, uinfo, uts, sigsetsize) +syscall sys_rt_sigqueueinfo nr 178 nbargs 3 types: (pid_t, int, siginfo_t *) args: (pid, sig, uinfo) +syscall sys_rt_sigsuspend nr 179 nbargs 2 types: (sigset_t *, size_t) args: (unewset, sigsetsize) +syscall sys_chown16 nr 182 nbargs 3 types: (const char *, old_uid_t, old_gid_t) args: (filename, user, group) +syscall sys_getcwd nr 183 nbargs 2 types: (char *, unsigned long) args: (buf, size) +syscall sys_capget nr 184 nbargs 2 types: (cap_user_header_t, cap_user_data_t) args: (header, dataptr) +syscall sys_capset nr 185 nbargs 2 types: (cap_user_header_t, const cap_user_data_t) args: (header, data) +syscall sys_sendfile nr 187 nbargs 4 types: (int, int, off_t *, size_t) args: (out_fd, in_fd, offset, count) +syscall sys_getrlimit nr 191 nbargs 2 types: (unsigned int, struct rlimit *) args: (resource, rlim) +syscall sys_stat64 nr 195 nbargs 2 types: (const char *, struct stat64 *) args: (filename, statbuf) +syscall sys_lstat64 nr 196 nbargs 2 types: (const char *, struct stat64 *) args: (filename, statbuf) +syscall sys_fstat64 nr 197 nbargs 2 types: (unsigned long, struct stat64 *) args: (fd, statbuf) +syscall sys_lchown nr 198 nbargs 3 types: (const char *, uid_t, gid_t) args: (filename, user, group) +syscall sys_getuid nr 199 nbargs 0 types: () args: () +syscall sys_getgid nr 200 nbargs 0 types: () args: () +syscall sys_geteuid nr 201 nbargs 0 types: () args: () +syscall sys_getegid nr 202 nbargs 0 types: () args: () +syscall sys_setreuid nr 203 nbargs 2 types: (uid_t, uid_t) args: (ruid, euid) +syscall sys_setregid nr 204 nbargs 2 types: (gid_t, gid_t) args: (rgid, egid) +syscall sys_getgroups nr 205 nbargs 2 types: (int, gid_t *) args: (gidsetsize, grouplist) +syscall sys_setgroups nr 206 nbargs 2 types: (int, gid_t *) args: (gidsetsize, grouplist) +syscall sys_fchown nr 207 nbargs 3 types: (unsigned int, uid_t, gid_t) args: (fd, user, group) +syscall sys_setresuid nr 208 nbargs 3 types: (uid_t, uid_t, uid_t) args: (ruid, euid, suid) +syscall sys_getresuid nr 209 nbargs 3 types: (uid_t *, uid_t *, uid_t *) args: (ruid, euid, suid) +syscall sys_setresgid nr 210 nbargs 3 types: (gid_t, gid_t, gid_t) args: (rgid, egid, sgid) +syscall sys_getresgid nr 211 nbargs 3 types: (gid_t *, gid_t *, gid_t *) args: (rgid, egid, sgid) +syscall sys_chown nr 212 nbargs 3 types: (const char *, uid_t, gid_t) args: (filename, user, group) +syscall sys_setuid nr 213 nbargs 1 types: (uid_t) args: (uid) +syscall sys_setgid nr 214 nbargs 1 types: (gid_t) args: (gid) +syscall sys_setfsuid nr 215 nbargs 1 types: (uid_t) args: (uid) +syscall sys_setfsgid nr 216 nbargs 1 types: (gid_t) args: (gid) +syscall sys_getdents64 nr 217 nbargs 3 types: (unsigned int, struct linux_dirent64 *, unsigned int) args: (fd, dirent, count) +syscall sys_pivot_root nr 218 nbargs 2 types: (const char *, const char *) args: (new_root, put_old) +syscall sys_mincore nr 219 nbargs 3 types: (unsigned long, size_t, unsigned char *) args: (start, len, vec) +syscall sys_madvise nr 220 nbargs 3 types: (unsigned long, size_t, int) args: (start, len_in, behavior) +syscall sys_fcntl64 nr 221 nbargs 3 types: (unsigned int, unsigned int, unsigned long) args: (fd, cmd, arg) +syscall sys_gettid nr 224 nbargs 0 types: () args: () +syscall sys_setxattr nr 226 nbargs 5 types: (const char *, const char *, const void *, size_t, int) args: (pathname, name, value, size, flags) +syscall sys_lsetxattr nr 227 nbargs 5 types: (const char *, const char *, const void *, size_t, int) args: (pathname, name, value, size, flags) +syscall sys_fsetxattr nr 228 nbargs 5 types: (int, const char *, const void *, size_t, int) args: (fd, name, value, size, flags) +syscall sys_getxattr nr 229 nbargs 4 types: (const char *, const char *, void *, size_t) args: (pathname, name, value, size) +syscall sys_lgetxattr nr 230 nbargs 4 types: (const char *, const char *, void *, size_t) args: (pathname, name, value, size) +syscall sys_fgetxattr nr 231 nbargs 4 types: (int, const char *, void *, size_t) args: (fd, name, value, size) +syscall sys_listxattr nr 232 nbargs 3 types: (const char *, char *, size_t) args: (pathname, list, size) +syscall sys_llistxattr nr 233 nbargs 3 types: (const char *, char *, size_t) args: (pathname, list, size) +syscall sys_flistxattr nr 234 nbargs 3 types: (int, char *, size_t) args: (fd, list, size) +syscall sys_removexattr nr 235 nbargs 2 types: (const char *, const char *) args: (pathname, name) +syscall sys_lremovexattr nr 236 nbargs 2 types: (const char *, const char *) args: (pathname, name) +syscall sys_fremovexattr nr 237 nbargs 2 types: (int, const char *) args: (fd, name) +syscall sys_tkill nr 238 nbargs 2 types: (pid_t, int) args: (pid, sig) +syscall sys_sendfile64 nr 239 nbargs 4 types: (int, int, loff_t *, size_t) args: (out_fd, in_fd, offset, count) +syscall sys_futex nr 240 nbargs 6 types: (u32 *, int, u32, struct timespec *, u32 *, u32) args: (uaddr, op, val, utime, uaddr2, val3) +syscall sys_sched_setaffinity nr 241 nbargs 3 types: (pid_t, unsigned int, unsigned long *) args: (pid, len, user_mask_ptr) +syscall sys_sched_getaffinity nr 242 nbargs 3 types: (pid_t, unsigned int, unsigned long *) args: (pid, len, user_mask_ptr) +syscall sys_io_setup nr 243 nbargs 2 types: (unsigned, aio_context_t *) args: (nr_events, ctxp) +syscall sys_io_destroy nr 244 nbargs 1 types: (aio_context_t) args: (ctx) +syscall sys_io_getevents nr 245 nbargs 5 types: (aio_context_t, long, long, struct io_event *, struct timespec *) args: (ctx_id, min_nr, nr, events, timeout) +syscall sys_io_submit nr 246 nbargs 3 types: (aio_context_t, long, struct iocb * *) args: (ctx_id, nr, iocbpp) +syscall sys_io_cancel nr 247 nbargs 3 types: (aio_context_t, struct iocb *, struct io_event *) args: (ctx_id, iocb, result) +syscall sys_exit_group nr 248 nbargs 1 types: (int) args: (error_code) +syscall sys_epoll_create nr 250 nbargs 1 types: (int) args: (size) +syscall sys_epoll_ctl nr 251 nbargs 4 types: (int, int, int, struct epoll_event *) args: (epfd, op, fd, event) +syscall sys_epoll_wait nr 252 nbargs 4 types: (int, struct epoll_event *, int, int) args: (epfd, events, maxevents, timeout) +syscall sys_remap_file_pages nr 253 nbargs 5 types: (unsigned long, unsigned long, unsigned long, unsigned long, unsigned long) args: (start, size, prot, pgoff, flags) +syscall sys_set_tid_address nr 256 nbargs 1 types: (int *) args: (tidptr) +syscall sys_timer_create nr 257 nbargs 3 types: (const clockid_t, struct sigevent *, timer_t *) args: (which_clock, timer_event_spec, created_timer_id) +syscall sys_timer_settime nr 258 nbargs 4 types: (timer_t, int, const struct itimerspec *, struct itimerspec *) args: (timer_id, flags, new_setting, old_setting) +syscall sys_timer_gettime nr 259 nbargs 2 types: (timer_t, struct itimerspec *) args: (timer_id, setting) +syscall sys_timer_getoverrun nr 260 nbargs 1 types: (timer_t) args: (timer_id) +syscall sys_timer_delete nr 261 nbargs 1 types: (timer_t) args: (timer_id) +syscall sys_clock_settime nr 262 nbargs 2 types: (const clockid_t, const struct timespec *) args: (which_clock, tp) +syscall sys_clock_gettime nr 263 nbargs 2 types: (const clockid_t, struct timespec *) args: (which_clock, tp) +syscall sys_clock_getres nr 264 nbargs 2 types: (const clockid_t, struct timespec *) args: (which_clock, tp) +syscall sys_clock_nanosleep nr 265 nbargs 4 types: (const clockid_t, int, const struct timespec *, struct timespec *) args: (which_clock, flags, rqtp, rmtp) +syscall sys_tgkill nr 268 nbargs 3 types: (pid_t, pid_t, int) args: (tgid, pid, sig) +syscall sys_utimes nr 269 nbargs 2 types: (char *, struct timeval *) args: (filename, utimes) +syscall sys_mq_open nr 274 nbargs 4 types: (const char *, int, umode_t, struct mq_attr *) args: (u_name, oflag, mode, u_attr) +syscall sys_mq_unlink nr 275 nbargs 1 types: (const char *) args: (u_name) +syscall sys_mq_timedsend nr 276 nbargs 5 types: (mqd_t, const char *, size_t, unsigned int, const struct timespec *) args: (mqdes, u_msg_ptr, msg_len, msg_prio, u_abs_timeout) +syscall sys_mq_timedreceive nr 277 nbargs 5 types: (mqd_t, char *, size_t, unsigned int *, const struct timespec *) args: (mqdes, u_msg_ptr, msg_len, u_msg_prio, u_abs_timeout) +syscall sys_mq_notify nr 278 nbargs 2 types: (mqd_t, const struct sigevent *) args: (mqdes, u_notification) +syscall sys_mq_getsetattr nr 279 nbargs 3 types: (mqd_t, const struct mq_attr *, struct mq_attr *) args: (mqdes, u_mqstat, u_omqstat) +syscall sys_waitid nr 280 nbargs 5 types: (int, pid_t, struct siginfo *, int, struct rusage *) args: (which, upid, infop, options, ru) +syscall sys_socket nr 281 nbargs 3 types: (int, int, int) args: (family, type, protocol) +syscall sys_bind nr 282 nbargs 3 types: (int, struct sockaddr *, int) args: (fd, umyaddr, addrlen) +syscall sys_connect nr 283 nbargs 3 types: (int, struct sockaddr *, int) args: (fd, uservaddr, addrlen) +syscall sys_listen nr 284 nbargs 2 types: (int, int) args: (fd, backlog) +syscall sys_accept nr 285 nbargs 3 types: (int, struct sockaddr *, int *) args: (fd, upeer_sockaddr, upeer_addrlen) +syscall sys_getsockname nr 286 nbargs 3 types: (int, struct sockaddr *, int *) args: (fd, usockaddr, usockaddr_len) +syscall sys_getpeername nr 287 nbargs 3 types: (int, struct sockaddr *, int *) args: (fd, usockaddr, usockaddr_len) +syscall sys_socketpair nr 288 nbargs 4 types: (int, int, int, int *) args: (family, type, protocol, usockvec) +syscall sys_send nr 289 nbargs 4 types: (int, void *, size_t, unsigned) args: (fd, buff, len, flags) +syscall sys_sendto nr 290 nbargs 6 types: (int, void *, size_t, unsigned, struct sockaddr *, int) args: (fd, buff, len, flags, addr, addr_len) +syscall sys_recvfrom nr 292 nbargs 6 types: (int, void *, size_t, unsigned, struct sockaddr *, int *) args: (fd, ubuf, size, flags, addr, addr_len) +syscall sys_shutdown nr 293 nbargs 2 types: (int, int) args: (fd, how) +syscall sys_setsockopt nr 294 nbargs 5 types: (int, int, int, char *, int) args: (fd, level, optname, optval, optlen) +syscall sys_getsockopt nr 295 nbargs 5 types: (int, int, int, char *, int *) args: (fd, level, optname, optval, optlen) +syscall sys_sendmsg nr 296 nbargs 3 types: (int, struct msghdr *, unsigned) args: (fd, msg, flags) +syscall sys_recvmsg nr 297 nbargs 3 types: (int, struct msghdr *, unsigned int) args: (fd, msg, flags) +syscall sys_semop nr 298 nbargs 3 types: (int, struct sembuf *, unsigned) args: (semid, tsops, nsops) +syscall sys_semget nr 299 nbargs 3 types: (key_t, int, int) args: (key, nsems, semflg) +syscall sys_msgsnd nr 301 nbargs 4 types: (int, struct msgbuf *, size_t, int) args: (msqid, msgp, msgsz, msgflg) +syscall sys_msgrcv nr 302 nbargs 5 types: (int, struct msgbuf *, size_t, long, int) args: (msqid, msgp, msgsz, msgtyp, msgflg) +syscall sys_msgget nr 303 nbargs 2 types: (key_t, int) args: (key, msgflg) +syscall sys_msgctl nr 304 nbargs 3 types: (int, int, struct msqid_ds *) args: (msqid, cmd, buf) +syscall sys_shmat nr 305 nbargs 3 types: (int, char *, int) args: (shmid, shmaddr, shmflg) +syscall sys_shmdt nr 306 nbargs 1 types: (char *) args: (shmaddr) +syscall sys_shmget nr 307 nbargs 3 types: (key_t, size_t, int) args: (key, size, shmflg) +syscall sys_shmctl nr 308 nbargs 3 types: (int, int, struct shmid_ds *) args: (shmid, cmd, buf) +syscall sys_add_key nr 309 nbargs 5 types: (const char *, const char *, const void *, size_t, key_serial_t) args: (_type, _description, _payload, plen, ringid) +syscall sys_request_key nr 310 nbargs 4 types: (const char *, const char *, const char *, key_serial_t) args: (_type, _description, _callout_info, destringid) +syscall sys_keyctl nr 311 nbargs 5 types: (int, unsigned long, unsigned long, unsigned long, unsigned long) args: (option, arg2, arg3, arg4, arg5) +syscall sys_semtimedop nr 312 nbargs 4 types: (int, struct sembuf *, unsigned, const struct timespec *) args: (semid, tsops, nsops, timeout) +syscall sys_ioprio_set nr 314 nbargs 3 types: (int, int, int) args: (which, who, ioprio) +syscall sys_ioprio_get nr 315 nbargs 2 types: (int, int) args: (which, who) +syscall sys_inotify_init nr 316 nbargs 0 types: () args: () +syscall sys_inotify_add_watch nr 317 nbargs 3 types: (int, const char *, u32) args: (fd, pathname, mask) +syscall sys_inotify_rm_watch nr 318 nbargs 2 types: (int, __s32) args: (fd, wd) +syscall sys_openat nr 322 nbargs 4 types: (int, const char *, int, umode_t) args: (dfd, filename, flags, mode) +syscall sys_mkdirat nr 323 nbargs 3 types: (int, const char *, umode_t) args: (dfd, pathname, mode) +syscall sys_mknodat nr 324 nbargs 4 types: (int, const char *, umode_t, unsigned) args: (dfd, filename, mode, dev) +syscall sys_fchownat nr 325 nbargs 5 types: (int, const char *, uid_t, gid_t, int) args: (dfd, filename, user, group, flag) +syscall sys_futimesat nr 326 nbargs 3 types: (int, const char *, struct timeval *) args: (dfd, filename, utimes) +syscall sys_fstatat64 nr 327 nbargs 4 types: (int, const char *, struct stat64 *, int) args: (dfd, filename, statbuf, flag) +syscall sys_unlinkat nr 328 nbargs 3 types: (int, const char *, int) args: (dfd, pathname, flag) +syscall sys_renameat nr 329 nbargs 4 types: (int, const char *, int, const char *) args: (olddfd, oldname, newdfd, newname) +syscall sys_linkat nr 330 nbargs 5 types: (int, const char *, int, const char *, int) args: (olddfd, oldname, newdfd, newname, flags) +syscall sys_symlinkat nr 331 nbargs 3 types: (const char *, int, const char *) args: (oldname, newdfd, newname) +syscall sys_readlinkat nr 332 nbargs 4 types: (int, const char *, char *, int) args: (dfd, pathname, buf, bufsiz) +syscall sys_fchmodat nr 333 nbargs 3 types: (int, const char *, umode_t) args: (dfd, filename, mode) +syscall sys_faccessat nr 334 nbargs 3 types: (int, const char *, int) args: (dfd, filename, mode) +syscall sys_pselect6 nr 335 nbargs 6 types: (int, fd_set *, fd_set *, fd_set *, struct timespec *, void *) args: (n, inp, outp, exp, tsp, sig) +syscall sys_ppoll nr 336 nbargs 5 types: (struct pollfd *, unsigned int, struct timespec *, const sigset_t *, size_t) args: (ufds, nfds, tsp, sigmask, sigsetsize) +syscall sys_unshare nr 337 nbargs 1 types: (unsigned long) args: (unshare_flags) +syscall sys_set_robust_list nr 338 nbargs 2 types: (struct robust_list_head *, size_t) args: (head, len) +syscall sys_get_robust_list nr 339 nbargs 3 types: (int, struct robust_list_head * *, size_t *) args: (pid, head_ptr, len_ptr) +syscall sys_splice nr 340 nbargs 6 types: (int, loff_t *, int, loff_t *, size_t, unsigned int) args: (fd_in, off_in, fd_out, off_out, len, flags) +syscall sys_tee nr 342 nbargs 4 types: (int, int, size_t, unsigned int) args: (fdin, fdout, len, flags) +syscall sys_vmsplice nr 343 nbargs 4 types: (int, const struct iovec *, unsigned long, unsigned int) args: (fd, iov, nr_segs, flags) +syscall sys_getcpu nr 345 nbargs 3 types: (unsigned *, unsigned *, struct getcpu_cache *) args: (cpup, nodep, unused) +syscall sys_epoll_pwait nr 346 nbargs 6 types: (int, struct epoll_event *, int, int, const sigset_t *, size_t) args: (epfd, events, maxevents, timeout, sigmask, sigsetsize) +syscall sys_utimensat nr 348 nbargs 4 types: (int, const char *, struct timespec *, int) args: (dfd, filename, utimes, flags) +syscall sys_signalfd nr 349 nbargs 3 types: (int, sigset_t *, size_t) args: (ufd, user_mask, sizemask) +syscall sys_timerfd_create nr 350 nbargs 2 types: (int, int) args: (clockid, flags) +syscall sys_eventfd nr 351 nbargs 1 types: (unsigned int) args: (count) +syscall sys_timerfd_settime nr 353 nbargs 4 types: (int, int, const struct itimerspec *, struct itimerspec *) args: (ufd, flags, utmr, otmr) +syscall sys_timerfd_gettime nr 354 nbargs 2 types: (int, struct itimerspec *) args: (ufd, otmr) +syscall sys_signalfd4 nr 355 nbargs 4 types: (int, sigset_t *, size_t, int) args: (ufd, user_mask, sizemask, flags) +syscall sys_eventfd2 nr 356 nbargs 2 types: (unsigned int, int) args: (count, flags) +syscall sys_epoll_create1 nr 357 nbargs 1 types: (int) args: (flags) +syscall sys_dup3 nr 358 nbargs 3 types: (unsigned int, unsigned int, int) args: (oldfd, newfd, flags) +syscall sys_pipe2 nr 359 nbargs 2 types: (int *, int) args: (fildes, flags) +syscall sys_inotify_init1 nr 360 nbargs 1 types: (int) args: (flags) +syscall sys_preadv nr 361 nbargs 5 types: (unsigned long, const struct iovec *, unsigned long, unsigned long, unsigned long) args: (fd, vec, vlen, pos_l, pos_h) +syscall sys_pwritev nr 362 nbargs 5 types: (unsigned long, const struct iovec *, unsigned long, unsigned long, unsigned long) args: (fd, vec, vlen, pos_l, pos_h) +syscall sys_rt_tgsigqueueinfo nr 363 nbargs 4 types: (pid_t, pid_t, int, siginfo_t *) args: (tgid, pid, sig, uinfo) +syscall sys_perf_event_open nr 364 nbargs 5 types: (struct perf_event_attr *, pid_t, int, int, unsigned long) args: (attr_uptr, pid, cpu, group_fd, flags) +syscall sys_recvmmsg nr 365 nbargs 5 types: (int, struct mmsghdr *, unsigned int, unsigned int, struct timespec *) args: (fd, mmsg, vlen, flags, timeout) +syscall sys_accept4 nr 366 nbargs 4 types: (int, struct sockaddr *, int *, int) args: (fd, upeer_sockaddr, upeer_addrlen, flags) +syscall sys_fanotify_init nr 367 nbargs 2 types: (unsigned int, unsigned int) args: (flags, event_f_flags) +syscall sys_prlimit64 nr 369 nbargs 4 types: (pid_t, unsigned int, const struct rlimit64 *, struct rlimit64 *) args: (pid, resource, new_rlim, old_rlim) +syscall sys_name_to_handle_at nr 370 nbargs 5 types: (int, const char *, struct file_handle *, int *, int) args: (dfd, name, handle, mnt_id, flag) +syscall sys_open_by_handle_at nr 371 nbargs 3 types: (int, struct file_handle *, int) args: (mountdirfd, handle, flags) +syscall sys_clock_adjtime nr 372 nbargs 2 types: (const clockid_t, struct timex *) args: (which_clock, utx) +syscall sys_syncfs nr 373 nbargs 1 types: (int) args: (fd) +syscall sys_sendmmsg nr 374 nbargs 4 types: (int, struct mmsghdr *, unsigned int, unsigned int) args: (fd, mmsg, vlen, flags) +syscall sys_setns nr 375 nbargs 2 types: (int, int) args: (fd, nstype) +syscall sys_process_vm_readv nr 376 nbargs 6 types: (pid_t, const struct iovec *, unsigned long, const struct iovec *, unsigned long, unsigned long) args: (pid, lvec, liovcnt, rvec, riovcnt, flags) +syscall sys_process_vm_writev nr 377 nbargs 6 types: (pid_t, const struct iovec *, unsigned long, const struct iovec *, unsigned long, unsigned long) args: (pid, lvec, liovcnt, rvec, riovcnt, flags) --- linux-3.11.0.orig/ubuntu/lttng-modules/probes/lttng-probe-btrfs.c +++ linux-3.11.0/ubuntu/lttng-modules/probes/lttng-probe-btrfs.c @@ -0,0 +1,48 @@ +/* + * probes/lttng-probe-btrfs.c + * + * LTTng btrfs probes. + * + * Copyright (C) 2010-2012 Mathieu Desnoyers + * Copyright (C) 2012 Mentor Graphics Corp. + * + * 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; only + * version 2.1 of the License. + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include +#include +#include <../fs/btrfs/ctree.h> +#include <../fs/btrfs/transaction.h> +#include <../fs/btrfs/volumes.h> +#include + +/* + * Create the tracepoint static inlines from the kernel to validate that our + * trace event macros match the kernel we run on. + */ +#include + +/* + * Create LTTng tracepoint probes. + */ +#define LTTNG_PACKAGE_BUILD +#define CREATE_TRACE_POINTS +#define TRACE_INCLUDE_PATH ../instrumentation/events/lttng-module + +#include "../instrumentation/events/lttng-module/btrfs.h" + +MODULE_LICENSE("GPL and additional rights"); +MODULE_AUTHOR("Andrew Gabbasov "); +MODULE_DESCRIPTION("LTTng btrfs probes"); --- linux-3.11.0.orig/ubuntu/lttng-modules/probes/lttng-probe-sched.c +++ linux-3.11.0/ubuntu/lttng-modules/probes/lttng-probe-sched.c @@ -0,0 +1,44 @@ +/* + * probes/lttng-probe-sched.c + * + * LTTng sched probes. + * + * Copyright (C) 2010-2012 Mathieu Desnoyers + * + * 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; only + * version 2.1 of the License. + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include + +/* + * Create the tracepoint static inlines from the kernel to validate that our + * trace event macros match the kernel we run on. + */ +#include + +#include "../wrapper/tracepoint.h" + +/* + * Create LTTng tracepoint probes. + */ +#define LTTNG_PACKAGE_BUILD +#define CREATE_TRACE_POINTS +#define TRACE_INCLUDE_PATH ../instrumentation/events/lttng-module + +#include "../instrumentation/events/lttng-module/sched.h" + +MODULE_LICENSE("GPL and additional rights"); +MODULE_AUTHOR("Mathieu Desnoyers "); +MODULE_DESCRIPTION("LTTng sched probes"); --- linux-3.11.0.orig/ubuntu/lttng-modules/probes/lttng.h +++ linux-3.11.0/ubuntu/lttng-modules/probes/lttng.h @@ -0,0 +1,27 @@ +#ifndef _LTTNG_PROBES_LTTNG_H +#define _LTTNG_PROBES_LTTNG_H + +/* + * lttng.h + * + * Copyright (C) 2010-2012 Mathieu Desnoyers + * + * 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; only + * version 2.1 of the License. + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#undef PARAMS +#define PARAMS(args...) args + +#endif /* _LTTNG_PROBES_LTTNG_H */ --- linux-3.11.0.orig/ubuntu/lttng-modules/probes/lttng-probe-statedump.c +++ linux-3.11.0/ubuntu/lttng-modules/probes/lttng-probe-statedump.c @@ -0,0 +1,46 @@ +/* + * probes/lttng-probe-statedump.c + * + * LTTng statedump probes. + * + * Copyright (C) 2010-2012 Mathieu Desnoyers + * + * 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; only + * version 2.1 of the License. + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include "../lttng-events.h" + +/* + * Create LTTng tracepoint probes. + */ +#define LTTNG_PACKAGE_BUILD +#define CREATE_TRACE_POINTS +#define TP_SESSION_CHECK +#define TRACE_INCLUDE_PATH ../instrumentation/events/lttng-module +#define TRACE_INCLUDE_FILE lttng-statedump + +#include "../instrumentation/events/lttng-module/lttng-statedump.h" + +MODULE_LICENSE("GPL and additional rights"); +MODULE_AUTHOR("Mathieu Desnoyers "); +MODULE_DESCRIPTION("LTTng statedump probes"); --- linux-3.11.0.orig/ubuntu/lttng-modules/probes/lttng-probe-irq.c +++ linux-3.11.0/ubuntu/lttng-modules/probes/lttng-probe-irq.c @@ -0,0 +1,45 @@ +/* + * probes/lttng-probe-irq.c + * + * LTTng irq probes. + * + * Copyright (C) 2010-2012 Mathieu Desnoyers + * + * 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; only + * version 2.1 of the License. + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include +#include + +/* + * Create the tracepoint static inlines from the kernel to validate that our + * trace event macros match the kernel we run on. + */ +#include + +#include "../wrapper/tracepoint.h" + +/* + * Create LTTng tracepoint probes. + */ +#define LTTNG_PACKAGE_BUILD +#define CREATE_TRACE_POINTS +#define TRACE_INCLUDE_PATH ../instrumentation/events/lttng-module + +#include "../instrumentation/events/lttng-module/irq.h" + +MODULE_LICENSE("GPL and additional rights"); +MODULE_AUTHOR("Mathieu Desnoyers "); +MODULE_DESCRIPTION("LTTng irq probes"); --- linux-3.11.0.orig/ubuntu/lttng-modules/probes/lttng-probe-net.c +++ linux-3.11.0/ubuntu/lttng-modules/probes/lttng-probe-net.c @@ -0,0 +1,43 @@ +/* + * probes/lttng-probe-net.c + * + * LTTng net probes. + * + * Copyright (C) 2010-2012 Mathieu Desnoyers + * Copyright (C) 2012 Mentor Graphics Corp. + * + * 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; only + * version 2.1 of the License. + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include + +/* + * Create the tracepoint static inlines from the kernel to validate that our + * trace event macros match the kernel we run on. + */ +#include + +/* + * Create LTTng tracepoint probes. + */ +#define LTTNG_PACKAGE_BUILD +#define CREATE_TRACE_POINTS +#define TRACE_INCLUDE_PATH ../instrumentation/events/lttng-module + +#include "../instrumentation/events/lttng-module/net.h" + +MODULE_LICENSE("GPL and additional rights"); +MODULE_AUTHOR("Wade Farnsworth "); +MODULE_DESCRIPTION("LTTng net probes"); --- linux-3.11.0.orig/ubuntu/lttng-modules/probes/lttng-probe-kmem.c +++ linux-3.11.0/ubuntu/lttng-modules/probes/lttng-probe-kmem.c @@ -0,0 +1,45 @@ +/* + * probes/lttng-probe-kmem.c + * + * LTTng kmem probes. + * + * Copyright (C) 2010-2012 Mathieu Desnoyers + * Copyright (C) 2012 Mentor Graphics Corp. + * + * 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; only + * version 2.1 of the License. + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include + +/* + * Create the tracepoint static inlines from the kernel to validate that our + * trace event macros match the kernel we run on. + */ +#include + +#include "../wrapper/tracepoint.h" + +/* + * Create LTTng tracepoint probes. + */ +#define LTTNG_PACKAGE_BUILD +#define CREATE_TRACE_POINTS +#define TRACE_INCLUDE_PATH ../instrumentation/events/lttng-module + +#include "../instrumentation/events/lttng-module/kmem.h" + +MODULE_LICENSE("GPL and additional rights"); +MODULE_AUTHOR("Wade Farnsworth and Andrew Gabbasov "); +MODULE_DESCRIPTION("LTTng kmem probes"); --- linux-3.11.0.orig/ubuntu/lttng-modules/probes/lttng-probe-random.c +++ linux-3.11.0/ubuntu/lttng-modules/probes/lttng-probe-random.c @@ -0,0 +1,43 @@ +/* + * probes/lttng-probe-random.c + * + * LTTng random probes. + * + * Copyright (C) 2010-2012 Mathieu Desnoyers + * Copyright (C) 2012 Mentor Graphics Corp. + * + * 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; only + * version 2.1 of the License. + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include + +/* + * Create the tracepoint static inlines from the kernel to validate that our + * trace event macros match the kernel we run on. + */ +#include + +/* + * Create LTTng tracepoint probes. + */ +#define LTTNG_PACKAGE_BUILD +#define CREATE_TRACE_POINTS +#define TRACE_INCLUDE_PATH ../instrumentation/events/lttng-module + +#include "../instrumentation/events/lttng-module/random.h" + +MODULE_LICENSE("GPL and additional rights"); +MODULE_AUTHOR("Andrew Gabbasov "); +MODULE_DESCRIPTION("LTTng random probes"); --- linux-3.11.0.orig/ubuntu/lttng-modules/probes/lttng-probe-writeback.c +++ linux-3.11.0/ubuntu/lttng-modules/probes/lttng-probe-writeback.c @@ -0,0 +1,54 @@ +/* + * probes/lttng-probe-writeback.c + * + * LTTng writeback probes. + * + * Copyright (C) 2010-2012 Mathieu Desnoyers + * Copyright (C) 2012 Mentor Graphics Corp. + * + * 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; only + * version 2.1 of the License. + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include +#include +#include + +/* + * Create the tracepoint static inlines from the kernel to validate that our + * trace event macros match the kernel we run on. + */ +#include + +#include "../lttng-kernel-version.h" +#include "../wrapper/writeback.h" + +/* #if */ + +#define global_dirty_limit wrapper_global_dirty_limit() + +/* #endif */ + +/* + * Create LTTng tracepoint probes. + */ +#define LTTNG_PACKAGE_BUILD +#define CREATE_TRACE_POINTS +#define TRACE_INCLUDE_PATH ../instrumentation/events/lttng-module + +#include "../instrumentation/events/lttng-module/writeback.h" + +MODULE_LICENSE("GPL and additional rights"); +MODULE_AUTHOR("Andrew Gabbasov "); +MODULE_DESCRIPTION("LTTng writeback probes"); --- linux-3.11.0.orig/ubuntu/lttng-modules/probes/lttng-probe-jbd2.c +++ linux-3.11.0/ubuntu/lttng-modules/probes/lttng-probe-jbd2.c @@ -0,0 +1,45 @@ +/* + * probes/lttng-probe-jbd2.c + * + * LTTng jbd2 probes. + * + * Copyright (C) 2010-2012 Mathieu Desnoyers + * Copyright (C) 2012 Mentor Graphics Corp. + * + * 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; only + * version 2.1 of the License. + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include + +/* + * Create the tracepoint static inlines from the kernel to validate that our + * trace event macros match the kernel we run on. + */ +#include + +#include "../wrapper/tracepoint.h" + +/* + * Create LTTng tracepoint probes. + */ +#define LTTNG_PACKAGE_BUILD +#define CREATE_TRACE_POINTS +#define TRACE_INCLUDE_PATH ../instrumentation/events/lttng-module + +#include "../instrumentation/events/lttng-module/jbd2.h" + +MODULE_LICENSE("GPL and additional rights"); +MODULE_AUTHOR("Wade Farnsworth and Andrew Gabbasov "); +MODULE_DESCRIPTION("LTTng jbd2 probes"); --- linux-3.11.0.orig/ubuntu/lttng-modules/probes/lttng-probe-lock.c +++ linux-3.11.0/ubuntu/lttng-modules/probes/lttng-probe-lock.c @@ -0,0 +1,50 @@ +/* + * probes/lttng-probe-lock.c + * + * LTTng lock probes. + * + * Copyright (C) 2010-2012 Mathieu Desnoyers + * Copyright (C) 2012 Mentor Graphics Corp. + * + * 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; only + * version 2.1 of the License. + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include +#include + +/* + * Create the tracepoint static inlines from the kernel to validate that our + * trace event macros match the kernel we run on. + */ +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,33)) +#include +#else +#include +#endif + +#include "../wrapper/tracepoint.h" + +/* + * Create LTTng tracepoint probes. + */ +#define LTTNG_PACKAGE_BUILD +#define CREATE_TRACE_POINTS +#define TRACE_INCLUDE_PATH ../instrumentation/events/lttng-module + +#include "../instrumentation/events/lttng-module/lock.h" + +MODULE_LICENSE("GPL and additional rights"); +MODULE_AUTHOR("Wade Farnsworth and Andrew Gabbasov "); +MODULE_DESCRIPTION("LTTng lock probes"); --- linux-3.11.0.orig/ubuntu/lttng-modules/probes/lttng-probe-gpio.c +++ linux-3.11.0/ubuntu/lttng-modules/probes/lttng-probe-gpio.c @@ -0,0 +1,43 @@ +/* + * probes/lttng-probe-gpio.c + * + * LTTng gpio probes. + * + * Copyright (C) 2010-2012 Mathieu Desnoyers + * Copyright (C) 2012 Mentor Graphics Corp. + * + * 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; only + * version 2.1 of the License. + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include + +/* + * Create the tracepoint static inlines from the kernel to validate that our + * trace event macros match the kernel we run on. + */ +#include + +/* + * Create LTTng tracepoint probes. + */ +#define LTTNG_PACKAGE_BUILD +#define CREATE_TRACE_POINTS +#define TRACE_INCLUDE_PATH ../instrumentation/events/lttng-module + +#include "../instrumentation/events/lttng-module/gpio.h" + +MODULE_LICENSE("GPL and additional rights"); +MODULE_AUTHOR("Wade Farnsworth "); +MODULE_DESCRIPTION("LTTng gpio probes"); --- linux-3.11.0.orig/ubuntu/lttng-modules/probes/lttng-kretprobes.c +++ linux-3.11.0/ubuntu/lttng-modules/probes/lttng-kretprobes.c @@ -0,0 +1,290 @@ +/* + * probes/lttng-kretprobes.c + * + * LTTng kretprobes integration module. + * + * Copyright (C) 2009-2012 Mathieu Desnoyers + * + * 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; only + * version 2.1 of the License. + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include +#include +#include +#include +#include "../lttng-events.h" +#include "../wrapper/ringbuffer/frontend_types.h" +#include "../wrapper/vmalloc.h" +#include "../lttng-tracer.h" + +enum lttng_kretprobe_type { + EVENT_ENTRY = 0, + EVENT_RETURN = 1, +}; + +struct lttng_krp { + struct kretprobe krp; + struct lttng_event *event[2]; /* ENTRY and RETURN */ + struct kref kref_register; + struct kref kref_alloc; +}; + +static +int _lttng_kretprobes_handler(struct kretprobe_instance *krpi, + struct pt_regs *regs, + enum lttng_kretprobe_type type) +{ + struct lttng_krp *lttng_krp = + container_of(krpi->rp, struct lttng_krp, krp); + struct lttng_event *event = + lttng_krp->event[type]; + struct lttng_channel *chan = event->chan; + struct lib_ring_buffer_ctx ctx; + int ret; + struct { + unsigned long ip; + unsigned long parent_ip; + } payload; + + if (unlikely(!ACCESS_ONCE(chan->session->active))) + return 0; + if (unlikely(!ACCESS_ONCE(chan->enabled))) + return 0; + if (unlikely(!ACCESS_ONCE(event->enabled))) + return 0; + + payload.ip = (unsigned long) krpi->rp->kp.addr; + payload.parent_ip = (unsigned long) krpi->ret_addr; + + lib_ring_buffer_ctx_init(&ctx, chan->chan, event, sizeof(payload), + lttng_alignof(payload), -1); + ret = chan->ops->event_reserve(&ctx, event->id); + if (ret < 0) + return 0; + lib_ring_buffer_align_ctx(&ctx, lttng_alignof(payload)); + chan->ops->event_write(&ctx, &payload, sizeof(payload)); + chan->ops->event_commit(&ctx); + return 0; +} + +static +int lttng_kretprobes_handler_entry(struct kretprobe_instance *krpi, + struct pt_regs *regs) +{ + return _lttng_kretprobes_handler(krpi, regs, EVENT_ENTRY); +} + +static +int lttng_kretprobes_handler_return(struct kretprobe_instance *krpi, + struct pt_regs *regs) +{ + return _lttng_kretprobes_handler(krpi, regs, EVENT_RETURN); +} + +/* + * Create event description + */ +static +int lttng_create_kprobe_event(const char *name, struct lttng_event *event, + enum lttng_kretprobe_type type) +{ + struct lttng_event_field *fields; + struct lttng_event_desc *desc; + int ret; + char *alloc_name; + size_t name_len; + const char *suffix = NULL; + + desc = kzalloc(sizeof(*event->desc), GFP_KERNEL); + if (!desc) + return -ENOMEM; + name_len = strlen(name); + switch (type) { + case EVENT_ENTRY: + suffix = "_entry"; + break; + case EVENT_RETURN: + suffix = "_return"; + break; + } + name_len += strlen(suffix); + alloc_name = kmalloc(name_len + 1, GFP_KERNEL); + if (!alloc_name) { + ret = -ENOMEM; + goto error_str; + } + strcpy(alloc_name, name); + strcat(alloc_name, suffix); + desc->name = alloc_name; + desc->nr_fields = 2; + desc->fields = fields = + kzalloc(2 * sizeof(struct lttng_event_field), GFP_KERNEL); + if (!desc->fields) { + ret = -ENOMEM; + goto error_fields; + } + fields[0].name = "ip"; + fields[0].type.atype = atype_integer; + fields[0].type.u.basic.integer.size = sizeof(unsigned long) * CHAR_BIT; + fields[0].type.u.basic.integer.alignment = lttng_alignof(unsigned long) * CHAR_BIT; + fields[0].type.u.basic.integer.signedness = lttng_is_signed_type(unsigned long); + fields[0].type.u.basic.integer.reverse_byte_order = 0; + fields[0].type.u.basic.integer.base = 16; + fields[0].type.u.basic.integer.encoding = lttng_encode_none; + + fields[1].name = "parent_ip"; + fields[1].type.atype = atype_integer; + fields[1].type.u.basic.integer.size = sizeof(unsigned long) * CHAR_BIT; + fields[1].type.u.basic.integer.alignment = lttng_alignof(unsigned long) * CHAR_BIT; + fields[1].type.u.basic.integer.signedness = lttng_is_signed_type(unsigned long); + fields[1].type.u.basic.integer.reverse_byte_order = 0; + fields[1].type.u.basic.integer.base = 16; + fields[1].type.u.basic.integer.encoding = lttng_encode_none; + + desc->owner = THIS_MODULE; + event->desc = desc; + + return 0; + +error_fields: + kfree(desc->name); +error_str: + kfree(desc); + return ret; +} + +int lttng_kretprobes_register(const char *name, + const char *symbol_name, + uint64_t offset, + uint64_t addr, + struct lttng_event *event_entry, + struct lttng_event *event_return) +{ + int ret; + struct lttng_krp *lttng_krp; + + /* Kprobes expects a NULL symbol name if unused */ + if (symbol_name[0] == '\0') + symbol_name = NULL; + + ret = lttng_create_kprobe_event(name, event_entry, EVENT_ENTRY); + if (ret) + goto error; + ret = lttng_create_kprobe_event(name, event_return, EVENT_RETURN); + if (ret) + goto event_return_error; + lttng_krp = kzalloc(sizeof(*lttng_krp), GFP_KERNEL); + if (!lttng_krp) + goto krp_error; + lttng_krp->krp.entry_handler = lttng_kretprobes_handler_entry; + lttng_krp->krp.handler = lttng_kretprobes_handler_return; + if (symbol_name) { + char *alloc_symbol; + + alloc_symbol = kstrdup(symbol_name, GFP_KERNEL); + if (!alloc_symbol) { + ret = -ENOMEM; + goto name_error; + } + lttng_krp->krp.kp.symbol_name = + alloc_symbol; + event_entry->u.kretprobe.symbol_name = + alloc_symbol; + event_return->u.kretprobe.symbol_name = + alloc_symbol; + } + lttng_krp->krp.kp.offset = offset; + lttng_krp->krp.kp.addr = (void *) (unsigned long) addr; + + /* Allow probe handler to find event structures */ + lttng_krp->event[EVENT_ENTRY] = event_entry; + lttng_krp->event[EVENT_RETURN] = event_return; + event_entry->u.kretprobe.lttng_krp = lttng_krp; + event_return->u.kretprobe.lttng_krp = lttng_krp; + + /* + * Both events must be unregistered before the kretprobe is + * unregistered. Same for memory allocation. + */ + kref_init(<tng_krp->kref_alloc); + kref_get(<tng_krp->kref_alloc); /* inc refcount to 2 */ + kref_init(<tng_krp->kref_register); + kref_get(<tng_krp->kref_register); /* inc refcount to 2 */ + + /* + * Ensure the memory we just allocated don't trigger page faults. + * Well.. kprobes itself puts the page fault handler on the blacklist, + * but we can never be too careful. + */ + wrapper_vmalloc_sync_all(); + + ret = register_kretprobe(<tng_krp->krp); + if (ret) + goto register_error; + return 0; + +register_error: + kfree(lttng_krp->krp.kp.symbol_name); +name_error: + kfree(lttng_krp); +krp_error: + kfree(event_return->desc->fields); + kfree(event_return->desc->name); + kfree(event_return->desc); +event_return_error: + kfree(event_entry->desc->fields); + kfree(event_entry->desc->name); + kfree(event_entry->desc); +error: + return ret; +} +EXPORT_SYMBOL_GPL(lttng_kretprobes_register); + +static +void _lttng_kretprobes_unregister_release(struct kref *kref) +{ + struct lttng_krp *lttng_krp = + container_of(kref, struct lttng_krp, kref_register); + unregister_kretprobe(<tng_krp->krp); +} + +void lttng_kretprobes_unregister(struct lttng_event *event) +{ + kref_put(&event->u.kretprobe.lttng_krp->kref_register, + _lttng_kretprobes_unregister_release); +} +EXPORT_SYMBOL_GPL(lttng_kretprobes_unregister); + +static +void _lttng_kretprobes_release(struct kref *kref) +{ + struct lttng_krp *lttng_krp = + container_of(kref, struct lttng_krp, kref_alloc); + kfree(lttng_krp->krp.kp.symbol_name); +} + +void lttng_kretprobes_destroy_private(struct lttng_event *event) +{ + kfree(event->desc->fields); + kfree(event->desc->name); + kfree(event->desc); + kref_put(&event->u.kretprobe.lttng_krp->kref_alloc, + _lttng_kretprobes_release); +} +EXPORT_SYMBOL_GPL(lttng_kretprobes_destroy_private); + +MODULE_LICENSE("GPL and additional rights"); +MODULE_AUTHOR("Mathieu Desnoyers"); +MODULE_DESCRIPTION("Linux Trace Toolkit Kretprobes Support"); --- linux-3.11.0.orig/ubuntu/lttng-modules/probes/lttng-probe-ext4.c +++ linux-3.11.0/ubuntu/lttng-modules/probes/lttng-probe-ext4.c @@ -0,0 +1,51 @@ +/* + * probes/lttng-probe-ext4.c + * + * LTTng ext4 probes. + * + * Copyright (C) 2010-2012 Mathieu Desnoyers + * Copyright (C) 2012 Mentor Graphics Corp. + * + * 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; only + * version 2.1 of the License. + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include +#include +#include <../fs/ext4/ext4.h> +#include <../fs/ext4/mballoc.h> +#include <../fs/ext4/ext4_extents.h> +#include + +/* + * Create the tracepoint static inlines from the kernel to validate that our + * trace event macros match the kernel we run on. + */ +#include + +#include "../lttng-kernel-version.h" +#include "../wrapper/tracepoint.h" + +/* + * Create LTTng tracepoint probes. + */ +#define LTTNG_PACKAGE_BUILD +#define CREATE_TRACE_POINTS +#define TRACE_INCLUDE_PATH ../instrumentation/events/lttng-module + +#include "../instrumentation/events/lttng-module/ext4.h" + +MODULE_LICENSE("GPL and additional rights"); +MODULE_AUTHOR("Andrew Gabbasov "); +MODULE_DESCRIPTION("LTTng ext4 probes"); --- linux-3.11.0.orig/ubuntu/lttng-modules/probes/lttng-probe-compaction.c +++ linux-3.11.0/ubuntu/lttng-modules/probes/lttng-probe-compaction.c @@ -0,0 +1,43 @@ +/* + * probes/lttng-probe-compaction.c + * + * LTTng compaction probes. + * + * Copyright (C) 2010-2012 Mathieu Desnoyers + * Copyright (C) 2012 Mentor Graphics Corp. + * + * 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; only + * version 2.1 of the License. + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include + +/* + * Create the tracepoint static inlines from the kernel to validate that our + * trace event macros match the kernel we run on. + */ +#include + +/* + * Create LTTng tracepoint probes. + */ +#define LTTNG_PACKAGE_BUILD +#define CREATE_TRACE_POINTS +#define TRACE_INCLUDE_PATH ../instrumentation/events/lttng-module + +#include "../instrumentation/events/lttng-module/compaction.h" + +MODULE_LICENSE("GPL and additional rights"); +MODULE_AUTHOR("Andrew Gabbasov "); +MODULE_DESCRIPTION("LTTng compaction probes"); --- linux-3.11.0.orig/ubuntu/lttng-modules/probes/lttng-types.c +++ linux-3.11.0/ubuntu/lttng-modules/probes/lttng-types.c @@ -0,0 +1,61 @@ +/* + * probes/lttng-types.c + * + * LTTng types. + * + * Copyright (C) 2010-2012 Mathieu Desnoyers + * + * 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; only + * version 2.1 of the License. + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include +#include +#include "../wrapper/vmalloc.h" /* for wrapper_vmalloc_sync_all() */ +#include "../lttng-events.h" +#include "lttng-types.h" +#include + +#define STAGE_EXPORT_ENUMS +#include "lttng-types.h" +#include "lttng-type-list.h" +#undef STAGE_EXPORT_ENUMS + +struct lttng_enum lttng_enums[] = { +#define STAGE_EXPORT_TYPES +#include "lttng-types.h" +#include "lttng-type-list.h" +#undef STAGE_EXPORT_TYPES +}; + +static int lttng_types_init(void) +{ + int ret = 0; + + wrapper_vmalloc_sync_all(); + /* TODO */ + return ret; +} + +module_init(lttng_types_init); + +static void lttng_types_exit(void) +{ +} + +module_exit(lttng_types_exit); + +MODULE_LICENSE("GPL and additional rights"); +MODULE_AUTHOR("Mathieu Desnoyers "); +MODULE_DESCRIPTION("LTTng types"); --- linux-3.11.0.orig/ubuntu/lttng-modules/probes/lttng-type-list.h +++ linux-3.11.0/ubuntu/lttng-modules/probes/lttng-type-list.h @@ -0,0 +1,33 @@ +/* + * lttng-type-list.h + * + * Copyright (C) 2010-2012 Mathieu Desnoyers + * + * 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; only + * version 2.1 of the License. + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/* Type list, used to create metadata */ + +/* Enumerations */ +TRACE_EVENT_ENUM(hrtimer_mode, + V(HRTIMER_MODE_ABS), + V(HRTIMER_MODE_REL), + V(HRTIMER_MODE_PINNED), + V(HRTIMER_MODE_ABS_PINNED), + V(HRTIMER_MODE_REL_PINNED), + R(HRTIMER_MODE_UNDEFINED, 0x04, 0x20), /* Example (to remove) */ +) + +TRACE_EVENT_TYPE(hrtimer_mode, enum, unsigned char) --- linux-3.11.0.orig/ubuntu/lttng-modules/probes/lttng-probe-user.c +++ linux-3.11.0/ubuntu/lttng-modules/probes/lttng-probe-user.c @@ -0,0 +1,54 @@ +/* + * lttng-probe-user.c + * + * Copyright (C) 2012 Mathieu Desnoyers + * + * 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; only + * version 2.1 of the License. + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include +#include "lttng-probe-user.h" + +/* + * Calculate string length. Include final null terminating character if there is + * one, or ends at first fault. Disabling page faults ensures that we can safely + * call this from pretty much any context, including those where the caller + * holds mmap_sem, or any lock which nests in mmap_sem. + */ +long lttng_strlen_user_inatomic(const char *addr) +{ + long count = 0; + mm_segment_t old_fs = get_fs(); + + set_fs(KERNEL_DS); + pagefault_disable(); + for (;;) { + char v; + unsigned long ret; + + ret = __copy_from_user_inatomic(&v, + (__force const char __user *)(addr), + sizeof(v)); + if (unlikely(ret > 0)) + break; + count++; + if (unlikely(!v)) + break; + addr++; + } + pagefault_enable(); + set_fs(old_fs); + return count; +} --- linux-3.11.0.orig/ubuntu/lttng-modules/probes/lttng-probe-skb.c +++ linux-3.11.0/ubuntu/lttng-modules/probes/lttng-probe-skb.c @@ -0,0 +1,45 @@ +/* + * probes/lttng-probe-skb.c + * + * LTTng skb probes. + * + * Copyright (C) 2010-2012 Mathieu Desnoyers + * Copyright (C) 2012 Mentor Graphics Corp. + * + * 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; only + * version 2.1 of the License. + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include + +/* + * Create the tracepoint static inlines from the kernel to validate that our + * trace event macros match the kernel we run on. + */ +#include + +#include "../wrapper/tracepoint.h" + +/* + * Create LTTng tracepoint probes. + */ +#define LTTNG_PACKAGE_BUILD +#define CREATE_TRACE_POINTS +#define TRACE_INCLUDE_PATH ../instrumentation/events/lttng-module + +#include "../instrumentation/events/lttng-module/skb.h" + +MODULE_LICENSE("GPL and additional rights"); +MODULE_AUTHOR("Wade Farnsworth and Andrew Gabbasov "); +MODULE_DESCRIPTION("LTTng skb probes"); --- linux-3.11.0.orig/ubuntu/lttng-modules/probes/lttng-ftrace.c +++ linux-3.11.0/ubuntu/lttng-modules/probes/lttng-ftrace.c @@ -0,0 +1,201 @@ +/* + * probes/lttng-ftrace.c + * + * LTTng function tracer integration module. + * + * Copyright (C) 2009-2012 Mathieu Desnoyers + * + * 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; only + * version 2.1 of the License. + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/* + * Ftrace function tracer does not seem to provide synchronization between probe + * teardown and callback execution. Therefore, we make this module permanently + * loaded (unloadable). + * + * TODO: Move to register_ftrace_function() (which is exported for + * modules) for Linux >= 3.0. It is faster (only enables the selected + * functions), and will stay there. + */ + +#include +#include +#include +#include "../lttng-events.h" +#include "../wrapper/ringbuffer/frontend_types.h" +#include "../wrapper/ftrace.h" +#include "../wrapper/vmalloc.h" +#include "../lttng-tracer.h" + +static +void lttng_ftrace_handler(unsigned long ip, unsigned long parent_ip, void **data) +{ + struct lttng_event *event = *data; + struct lttng_channel *chan = event->chan; + struct lib_ring_buffer_ctx ctx; + struct { + unsigned long ip; + unsigned long parent_ip; + } payload; + int ret; + + if (unlikely(!ACCESS_ONCE(chan->session->active))) + return; + if (unlikely(!ACCESS_ONCE(chan->enabled))) + return; + if (unlikely(!ACCESS_ONCE(event->enabled))) + return; + + lib_ring_buffer_ctx_init(&ctx, chan->chan, event, + sizeof(payload), lttng_alignof(payload), -1); + ret = chan->ops->event_reserve(&ctx, event->id); + if (ret < 0) + return; + payload.ip = ip; + payload.parent_ip = parent_ip; + lib_ring_buffer_align_ctx(&ctx, lttng_alignof(payload)); + chan->ops->event_write(&ctx, &payload, sizeof(payload)); + chan->ops->event_commit(&ctx); + return; +} + +/* + * Create event description + */ +static +int lttng_create_ftrace_event(const char *name, struct lttng_event *event) +{ + struct lttng_event_field *fields; + struct lttng_event_desc *desc; + int ret; + + desc = kzalloc(sizeof(*event->desc), GFP_KERNEL); + if (!desc) + return -ENOMEM; + desc->name = kstrdup(name, GFP_KERNEL); + if (!desc->name) { + ret = -ENOMEM; + goto error_str; + } + desc->nr_fields = 2; + desc->fields = fields = + kzalloc(2 * sizeof(struct lttng_event_field), GFP_KERNEL); + if (!desc->fields) { + ret = -ENOMEM; + goto error_fields; + } + fields[0].name = "ip"; + fields[0].type.atype = atype_integer; + fields[0].type.u.basic.integer.size = sizeof(unsigned long) * CHAR_BIT; + fields[0].type.u.basic.integer.alignment = lttng_alignof(unsigned long) * CHAR_BIT; + fields[0].type.u.basic.integer.signedness = lttng_is_signed_type(unsigned long); + fields[0].type.u.basic.integer.reverse_byte_order = 0; + fields[0].type.u.basic.integer.base = 16; + fields[0].type.u.basic.integer.encoding = lttng_encode_none; + + fields[1].name = "parent_ip"; + fields[1].type.atype = atype_integer; + fields[1].type.u.basic.integer.size = sizeof(unsigned long) * CHAR_BIT; + fields[1].type.u.basic.integer.alignment = lttng_alignof(unsigned long) * CHAR_BIT; + fields[1].type.u.basic.integer.signedness = lttng_is_signed_type(unsigned long); + fields[1].type.u.basic.integer.reverse_byte_order = 0; + fields[1].type.u.basic.integer.base = 16; + fields[1].type.u.basic.integer.encoding = lttng_encode_none; + + desc->owner = THIS_MODULE; + event->desc = desc; + + return 0; + +error_fields: + kfree(desc->name); +error_str: + kfree(desc); + return ret; +} + +static +struct ftrace_probe_ops lttng_ftrace_ops = { + .func = lttng_ftrace_handler, +}; + +int lttng_ftrace_register(const char *name, + const char *symbol_name, + struct lttng_event *event) +{ + int ret; + + ret = lttng_create_ftrace_event(name, event); + if (ret) + goto error; + + event->u.ftrace.symbol_name = kstrdup(symbol_name, GFP_KERNEL); + if (!event->u.ftrace.symbol_name) + goto name_error; + + /* Ensure the memory we just allocated don't trigger page faults */ + wrapper_vmalloc_sync_all(); + + ret = wrapper_register_ftrace_function_probe(event->u.ftrace.symbol_name, + <tng_ftrace_ops, event); + if (ret < 0) + goto register_error; + return 0; + +register_error: + kfree(event->u.ftrace.symbol_name); +name_error: + kfree(event->desc->name); + kfree(event->desc); +error: + return ret; +} +EXPORT_SYMBOL_GPL(lttng_ftrace_register); + +void lttng_ftrace_unregister(struct lttng_event *event) +{ + wrapper_unregister_ftrace_function_probe(event->u.ftrace.symbol_name, + <tng_ftrace_ops, event); +} +EXPORT_SYMBOL_GPL(lttng_ftrace_unregister); + +void lttng_ftrace_destroy_private(struct lttng_event *event) +{ + kfree(event->u.ftrace.symbol_name); + kfree(event->desc->fields); + kfree(event->desc->name); + kfree(event->desc); +} +EXPORT_SYMBOL_GPL(lttng_ftrace_destroy_private); + +int lttng_ftrace_init(void) +{ + wrapper_vmalloc_sync_all(); + return 0; +} +module_init(lttng_ftrace_init) + +/* + * Ftrace takes care of waiting for a grace period (RCU sched) at probe + * unregistration, and disables preemption around probe call. + */ +void lttng_ftrace_exit(void) +{ +} +module_exit(lttng_ftrace_exit) + +MODULE_LICENSE("GPL and additional rights"); +MODULE_AUTHOR("Mathieu Desnoyers"); +MODULE_DESCRIPTION("Linux Trace Toolkit Ftrace Support"); --- linux-3.11.0.orig/ubuntu/lttng-modules/probes/lttng-probe-asoc.c +++ linux-3.11.0/ubuntu/lttng-modules/probes/lttng-probe-asoc.c @@ -0,0 +1,45 @@ +/* + * probes/lttng-probe-asoc.c + * + * LTTng asoc probes. + * + * Copyright (C) 2010-2012 Mathieu Desnoyers + * Copyright (C) 2012 Mentor Graphics Corp. + * + * 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; only + * version 2.1 of the License. + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include +#include +#include + +/* + * Create the tracepoint static inlines from the kernel to validate that our + * trace event macros match the kernel we run on. + */ +#include + +/* + * Create LTTng tracepoint probes. + */ +#define LTTNG_PACKAGE_BUILD +#define CREATE_TRACE_POINTS +#define TRACE_INCLUDE_PATH ../instrumentation/events/lttng-module + +#include "../instrumentation/events/lttng-module/asoc.h" + +MODULE_LICENSE("GPL and additional rights"); +MODULE_AUTHOR("Wade Farnsworth , Paul Woegerer , and Andrew Gabbasov "); +MODULE_DESCRIPTION("LTTng asoc probes"); --- linux-3.11.0.orig/ubuntu/lttng-modules/probes/define_trace.h +++ linux-3.11.0/ubuntu/lttng-modules/probes/define_trace.h @@ -0,0 +1,180 @@ +/* + * define_trace.h + * + * Copyright (C) 2009 Steven Rostedt + * Copyright (C) 2010-2012 Mathieu Desnoyers + * + * 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; only + * version 2.1 of the License. + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/* + * Trace files that want to automate creationg of all tracepoints defined + * in their file should include this file. The following are macros that the + * trace file may define: + * + * TRACE_SYSTEM defines the system the tracepoint is for + * + * TRACE_INCLUDE_FILE if the file name is something other than TRACE_SYSTEM.h + * This macro may be defined to tell define_trace.h what file to include. + * Note, leave off the ".h". + * + * TRACE_INCLUDE_PATH if the path is something other than core kernel include/trace + * then this macro can define the path to use. Note, the path is relative to + * define_trace.h, not the file including it. Full path names for out of tree + * modules must be used. + */ + +#ifdef CREATE_TRACE_POINTS + +/* Prevent recursion */ +#undef CREATE_TRACE_POINTS + +#include +/* + * module.h includes tracepoints, and because ftrace.h + * pulls in module.h: + * trace/ftrace.h -> linux/ftrace_event.h -> linux/perf_event.h -> + * linux/ftrace.h -> linux/module.h + * we must include module.h here before we play with any of + * the TRACE_EVENT() macros, otherwise the tracepoints included + * by module.h may break the build. + */ +#include + +#undef TRACE_EVENT_MAP +#define TRACE_EVENT_MAP(name, map, proto, args, tstruct, assign, print) \ + DEFINE_TRACE(name) + +#undef TRACE_EVENT_CONDITION_MAP +#define TRACE_EVENT_CONDITION_MAP(name, map, proto, args, cond, tstruct, assign, print) \ + TRACE_EVENT(name, \ + PARAMS(proto), \ + PARAMS(args), \ + PARAMS(tstruct), \ + PARAMS(assign), \ + PARAMS(print)) + +#undef TRACE_EVENT_FN_MAP +#define TRACE_EVENT_FN_MAP(name, map, proto, args, tstruct, \ + assign, print, reg, unreg) \ + DEFINE_TRACE_FN(name, reg, unreg) + +#undef DEFINE_EVENT_MAP +#define DEFINE_EVENT_MAP(template, name, map, proto, args) \ + DEFINE_TRACE(name) + +#undef DEFINE_EVENT_PRINT_MAP +#define DEFINE_EVENT_PRINT_MAP(template, name, map, proto, args, print) \ + DEFINE_TRACE(name) + +#undef DEFINE_EVENT_CONDITION_MAP +#define DEFINE_EVENT_CONDITION_MAP(template, name, map, proto, args, cond) \ + DEFINE_EVENT(template, name, PARAMS(proto), PARAMS(args)) + + +#undef TRACE_EVENT +#define TRACE_EVENT(name, proto, args, tstruct, assign, print) \ + DEFINE_TRACE(name) + +#undef TRACE_EVENT_CONDITION +#define TRACE_EVENT_CONDITION(name, proto, args, cond, tstruct, assign, print) \ + TRACE_EVENT(name, \ + PARAMS(proto), \ + PARAMS(args), \ + PARAMS(tstruct), \ + PARAMS(assign), \ + PARAMS(print)) + +#undef TRACE_EVENT_FN +#define TRACE_EVENT_FN(name, proto, args, tstruct, \ + assign, print, reg, unreg) \ + DEFINE_TRACE_FN(name, reg, unreg) + +#undef DEFINE_EVENT +#define DEFINE_EVENT(template, name, proto, args) \ + DEFINE_TRACE(name) + +#undef DEFINE_EVENT_PRINT +#define DEFINE_EVENT_PRINT(template, name, proto, args, print) \ + DEFINE_TRACE(name) + +#undef DEFINE_EVENT_CONDITION +#define DEFINE_EVENT_CONDITION(template, name, proto, args, cond) \ + DEFINE_EVENT(template, name, PARAMS(proto), PARAMS(args)) + +#undef DECLARE_TRACE +#define DECLARE_TRACE(name, proto, args) \ + DEFINE_TRACE(name) + +#undef TRACE_INCLUDE +#undef __TRACE_INCLUDE + +#ifndef TRACE_INCLUDE_FILE +# define TRACE_INCLUDE_FILE TRACE_SYSTEM +# define UNDEF_TRACE_INCLUDE_FILE +#endif + +#ifndef TRACE_INCLUDE_PATH +# define __TRACE_INCLUDE(system) +# define UNDEF_TRACE_INCLUDE_PATH +#else +# define __TRACE_INCLUDE(system) __stringify(TRACE_INCLUDE_PATH/system.h) +#endif + +# define TRACE_INCLUDE(system) __TRACE_INCLUDE(system) + +/* Let the trace headers be reread */ +#define TRACE_HEADER_MULTI_READ + +#include TRACE_INCLUDE(TRACE_INCLUDE_FILE) + +/* Make all open coded DECLARE_TRACE nops */ +#undef DECLARE_TRACE +#define DECLARE_TRACE(name, proto, args) + +#ifdef LTTNG_PACKAGE_BUILD +#include "lttng-events.h" +#endif + +#undef TRACE_EVENT +#undef TRACE_EVENT_FN +#undef TRACE_EVENT_CONDITION +#undef DEFINE_EVENT +#undef DEFINE_EVENT_PRINT +#undef DEFINE_EVENT_CONDITION +#undef TRACE_EVENT_MAP +#undef TRACE_EVENT_FN_MAP +#undef TRACE_EVENT_CONDITION_MAP +#undef DECLARE_EVENT_CLASS +#undef DEFINE_EVENT_MAP +#undef DEFINE_EVENT_PRINT_MAP +#undef DEFINE_EVENT_CONDITION_MAP +#undef TRACE_HEADER_MULTI_READ + +/* Only undef what we defined in this file */ +#ifdef UNDEF_TRACE_INCLUDE_FILE +# undef TRACE_INCLUDE_FILE +# undef UNDEF_TRACE_INCLUDE_FILE +#endif + +#ifdef UNDEF_TRACE_INCLUDE_PATH +# undef TRACE_INCLUDE_PATH +# undef UNDEF_TRACE_INCLUDE_PATH +#endif + +/* We may be processing more files */ +#define CREATE_TRACE_POINTS + +#endif /* CREATE_TRACE_POINTS */ --- linux-3.11.0.orig/ubuntu/lttng-modules/probes/lttng-probe-power.c +++ linux-3.11.0/ubuntu/lttng-modules/probes/lttng-probe-power.c @@ -0,0 +1,45 @@ +/* + * probes/lttng-probe-power.c + * + * LTTng power probes. + * + * Copyright (C) 2010-2012 Mathieu Desnoyers + * Copyright (C) 2012 Mentor Graphics Corp. + * + * 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; only + * version 2.1 of the License. + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include + +/* + * Create the tracepoint static inlines from the kernel to validate that our + * trace event macros match the kernel we run on. + */ +#include + +#include "../wrapper/tracepoint.h" + +/* + * Create LTTng tracepoint probes. + */ +#define LTTNG_PACKAGE_BUILD +#define CREATE_TRACE_POINTS +#define TRACE_INCLUDE_PATH ../instrumentation/events/lttng-module + +#include "../instrumentation/events/lttng-module/power.h" + +MODULE_LICENSE("GPL and additional rights"); +MODULE_AUTHOR("Wade Farnsworth and Andrew Gabbasov "); +MODULE_DESCRIPTION("LTTng power probes"); --- linux-3.11.0.orig/ubuntu/lttng-modules/probes/lttng-kprobes.c +++ linux-3.11.0/ubuntu/lttng-modules/probes/lttng-kprobes.c @@ -0,0 +1,177 @@ +/* + * probes/lttng-kprobes.c + * + * LTTng kprobes integration module. + * + * Copyright (C) 2009-2012 Mathieu Desnoyers + * + * 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; only + * version 2.1 of the License. + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include +#include +#include +#include "../lttng-events.h" +#include "../wrapper/ringbuffer/frontend_types.h" +#include "../wrapper/vmalloc.h" +#include "../lttng-tracer.h" + +static +int lttng_kprobes_handler_pre(struct kprobe *p, struct pt_regs *regs) +{ + struct lttng_event *event = + container_of(p, struct lttng_event, u.kprobe.kp); + struct lttng_channel *chan = event->chan; + struct lib_ring_buffer_ctx ctx; + int ret; + unsigned long data = (unsigned long) p->addr; + + if (unlikely(!ACCESS_ONCE(chan->session->active))) + return 0; + if (unlikely(!ACCESS_ONCE(chan->enabled))) + return 0; + if (unlikely(!ACCESS_ONCE(event->enabled))) + return 0; + + lib_ring_buffer_ctx_init(&ctx, chan->chan, event, sizeof(data), + lttng_alignof(data), -1); + ret = chan->ops->event_reserve(&ctx, event->id); + if (ret < 0) + return 0; + lib_ring_buffer_align_ctx(&ctx, lttng_alignof(data)); + chan->ops->event_write(&ctx, &data, sizeof(data)); + chan->ops->event_commit(&ctx); + return 0; +} + +/* + * Create event description + */ +static +int lttng_create_kprobe_event(const char *name, struct lttng_event *event) +{ + struct lttng_event_field *field; + struct lttng_event_desc *desc; + int ret; + + desc = kzalloc(sizeof(*event->desc), GFP_KERNEL); + if (!desc) + return -ENOMEM; + desc->name = kstrdup(name, GFP_KERNEL); + if (!desc->name) { + ret = -ENOMEM; + goto error_str; + } + desc->nr_fields = 1; + desc->fields = field = + kzalloc(1 * sizeof(struct lttng_event_field), GFP_KERNEL); + if (!field) { + ret = -ENOMEM; + goto error_field; + } + field->name = "ip"; + field->type.atype = atype_integer; + field->type.u.basic.integer.size = sizeof(unsigned long) * CHAR_BIT; + field->type.u.basic.integer.alignment = lttng_alignof(unsigned long) * CHAR_BIT; + field->type.u.basic.integer.signedness = lttng_is_signed_type(unsigned long); + field->type.u.basic.integer.reverse_byte_order = 0; + field->type.u.basic.integer.base = 16; + field->type.u.basic.integer.encoding = lttng_encode_none; + desc->owner = THIS_MODULE; + event->desc = desc; + + return 0; + +error_field: + kfree(desc->name); +error_str: + kfree(desc); + return ret; +} + +int lttng_kprobes_register(const char *name, + const char *symbol_name, + uint64_t offset, + uint64_t addr, + struct lttng_event *event) +{ + int ret; + + /* Kprobes expects a NULL symbol name if unused */ + if (symbol_name[0] == '\0') + symbol_name = NULL; + + ret = lttng_create_kprobe_event(name, event); + if (ret) + goto error; + memset(&event->u.kprobe.kp, 0, sizeof(event->u.kprobe.kp)); + event->u.kprobe.kp.pre_handler = lttng_kprobes_handler_pre; + if (symbol_name) { + event->u.kprobe.symbol_name = + kzalloc(LTTNG_KERNEL_SYM_NAME_LEN * sizeof(char), + GFP_KERNEL); + if (!event->u.kprobe.symbol_name) { + ret = -ENOMEM; + goto name_error; + } + memcpy(event->u.kprobe.symbol_name, symbol_name, + LTTNG_KERNEL_SYM_NAME_LEN * sizeof(char)); + event->u.kprobe.kp.symbol_name = + event->u.kprobe.symbol_name; + } + event->u.kprobe.kp.offset = offset; + event->u.kprobe.kp.addr = (void *) (unsigned long) addr; + + /* + * Ensure the memory we just allocated don't trigger page faults. + * Well.. kprobes itself puts the page fault handler on the blacklist, + * but we can never be too careful. + */ + wrapper_vmalloc_sync_all(); + + ret = register_kprobe(&event->u.kprobe.kp); + if (ret) + goto register_error; + return 0; + +register_error: + kfree(event->u.kprobe.symbol_name); +name_error: + kfree(event->desc->fields); + kfree(event->desc->name); + kfree(event->desc); +error: + return ret; +} +EXPORT_SYMBOL_GPL(lttng_kprobes_register); + +void lttng_kprobes_unregister(struct lttng_event *event) +{ + unregister_kprobe(&event->u.kprobe.kp); +} +EXPORT_SYMBOL_GPL(lttng_kprobes_unregister); + +void lttng_kprobes_destroy_private(struct lttng_event *event) +{ + kfree(event->u.kprobe.symbol_name); + kfree(event->desc->fields); + kfree(event->desc->name); + kfree(event->desc); +} +EXPORT_SYMBOL_GPL(lttng_kprobes_destroy_private); + +MODULE_LICENSE("GPL and additional rights"); +MODULE_AUTHOR("Mathieu Desnoyers"); +MODULE_DESCRIPTION("Linux Trace Toolkit Kprobes Support"); --- linux-3.11.0.orig/ubuntu/lttng-modules/probes/lttng-probe-scsi.c +++ linux-3.11.0/ubuntu/lttng-modules/probes/lttng-probe-scsi.c @@ -0,0 +1,44 @@ +/* + * probes/lttng-probe-scsi.c + * + * LTTng scsi probes. + * + * Copyright (C) 2010-2012 Mathieu Desnoyers + * Copyright (C) 2012 Mentor Graphics Corp. + * + * 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; only + * version 2.1 of the License. + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include +#include + +/* + * Create the tracepoint static inlines from the kernel to validate that our + * trace event macros match the kernel we run on. + */ +#include + +/* + * Create LTTng tracepoint probes. + */ +#define LTTNG_PACKAGE_BUILD +#define CREATE_TRACE_POINTS +#define TRACE_INCLUDE_PATH ../instrumentation/events/lttng-module + +#include "../instrumentation/events/lttng-module/scsi.h" + +MODULE_LICENSE("GPL and additional rights"); +MODULE_AUTHOR("Wade Farnsworth and Andrew Gabbasov "); +MODULE_DESCRIPTION("LTTng scsi probes"); --- linux-3.11.0.orig/ubuntu/lttng-modules/probes/Makefile +++ linux-3.11.0/ubuntu/lttng-modules/probes/Makefile @@ -0,0 +1,240 @@ +# +# Makefile for the LTT probes. +# Only build from the package top-level directory. Never use with make directly. + +ifneq ($(KERNELRELEASE),) +ifneq ($(CONFIG_TRACEPOINTS),) + +ccflags-y += -I$(PWD)/probes +obj-m += lttng-types.o + +obj-m += lttng-probe-sched.o +obj-m += lttng-probe-irq.o +obj-m += lttng-probe-timer.o +obj-m += lttng-probe-kmem.o +obj-m += lttng-probe-module.o +obj-m += lttng-probe-power.o + +obj-m += lttng-probe-statedump.o + +ifneq ($(CONFIG_KVM),) +obj-m += lttng-probe-kvm.o +ifneq ($(CONFIG_X86),) +kvm_dep = $(srctree)/virt/kvm/iodev.h +ifneq ($(wildcard $(kvm_dep)),) +CFLAGS_lttng-probe-kvm-x86.o += -I$(srctree)/virt/kvm +CFLAGS_lttng-probe-kvm-x86-mmu.o += -I$(srctree)/virt/kvm +obj-m += lttng-probe-kvm-x86.o +obj-m += lttng-probe-kvm-x86-mmu.o +else +$(warning File $(kvm_dep) not found. Probe "kvm" x86-specific is disabled. Use full kernel source tree to enable it.) +endif +endif +endif + +obj-m += $(shell \ + if [ $(VERSION) -ge 3 \ + -o \( $(VERSION) -eq 2 -a $(PATCHLEVEL) -ge 6 -a $(SUBLEVEL) -ge 33 \) ] ; then \ + echo "lttng-probe-signal.o" ; fi;) + +ifneq ($(CONFIG_BLOCK),) +ifneq ($(CONFIG_EVENT_TRACING),) # need blk_cmd_buf_len +obj-m += lttng-probe-block.o +endif +endif + +ifneq ($(CONFIG_NET),) +obj-m += lttng-probe-napi.o +obj-m += lttng-probe-skb.o +obj-m += $(shell \ + if [ $(VERSION) -ge 3 \ + -o \( $(VERSION) -eq 2 -a $(PATCHLEVEL) -ge 6 -a $(SUBLEVEL) -ge 37 \) ] ; then \ + echo "lttng-probe-net.o" ; fi;) +obj-m += $(shell \ + if [ $(VERSION) -ge 3 -a $(PATCHLEVEL) -ge 1 ] ; then \ + echo "lttng-probe-sock.o" ; fi;) +obj-m += $(shell \ + if [ $(VERSION) -ge 3 -a $(PATCHLEVEL) -ge 1 ] ; then \ + echo "lttng-probe-udp.o" ; fi;) +endif + +ifneq ($(CONFIG_SND_SOC),) +obj-m += $(shell \ + if [ $(VERSION) -ge 3 \ + -o \( $(VERSION) -eq 2 -a $(PATCHLEVEL) -ge 6 -a $(SUBLEVEL) -ge 38 \) ] ; then \ + echo "lttng-probe-asoc.o" ; fi;) +endif + +ifneq ($(CONFIG_EXT3_FS),) +ext3_dep = $(srctree)/fs/ext3/*.h +ext3_dep_check = $(wildcard $(ext3_dep)) +ext3 = $(shell \ + if [ $(VERSION) -ge 3 -a $(PATCHLEVEL) -ge 1 ] ; then \ + if [ $(VERSION) -ge 3 -a $(PATCHLEVEL) -ge 4 -a \ + -z "$(ext3_dep_check)" ] ; then \ + echo "warn" ; \ + exit ; \ + fi; \ + echo "lttng-probe-ext3.o" ; \ + fi;) +ifeq ($(ext3),warn) +$(warning Files $(ext3_dep) not found. Probe "ext3" is disabled. Use full kernel source tree to enable it.) +ext3 = +endif +obj-m += $(ext3) +endif + +ifneq ($(CONFIG_GPIOLIB),) +obj-m += $(shell \ + if [ $(VERSION) -ge 3 ] ; then \ + echo "lttng-probe-gpio.o" ; fi;) +endif + +ifneq ($(CONFIG_JBD2),) +obj-m += lttng-probe-jbd2.o +endif + +ifneq ($(CONFIG_JBD),) +obj-m += $(shell \ + if [ $(VERSION) -ge 3 -a $(PATCHLEVEL) -ge 1 ] ; then \ + echo "lttng-probe-jbd.o" ; fi;) +endif + +ifneq ($(CONFIG_REGULATOR),) +obj-m += $(shell \ + if [ $(VERSION) -ge 3 \ + -o \( $(VERSION) -eq 2 -a $(PATCHLEVEL) -ge 6 -a $(SUBLEVEL) -ge 38 \) ] ; then \ + echo "lttng-probe-regulator.o" ; fi;) +endif + +ifneq ($(CONFIG_SCSI),) +obj-m += $(shell \ + if [ $(VERSION) -ge 3 \ + -o \( $(VERSION) -eq 2 -a $(PATCHLEVEL) -ge 6 -a $(SUBLEVEL) -ge 35 \) ] ; then \ + echo "lttng-probe-scsi.o" ; fi;) +endif + +vmscan = $(shell \ + if [ $(VERSION) -ge 3 \ + -o \( $(VERSION) -eq 2 -a $(PATCHLEVEL) -ge 6 -a $(SUBLEVEL) -ge 36 \) ] ; then \ + echo "lttng-probe-vmscan.o" ; fi;) +ifneq ($(CONFIG_SWAP),) + obj-m += $(vmscan) +else +ifneq ($(CONFIG_CGROUP_MEM_RES_CTLR),) + obj-m += $(vmscan) +endif +endif + +# lock probe does not work, so disabling it for now +#ifneq ($(CONFIG_LOCKDEP),) +#obj-m += lttng-probe-lock.o +#endif + +ifneq ($(CONFIG_BTRFS_FS),) +btrfs_dep = $(srctree)/fs/btrfs/*.h +btrfs = $(shell \ + if [ $(VERSION) -ge 3 \ + -o \( $(VERSION) -eq 2 -a $(PATCHLEVEL) -ge 6 -a $(SUBLEVEL) -ge 39 \) ] ; then \ + echo "lttng-probe-btrfs.o" ; fi;) +ifneq ($(btrfs),) +ifeq ($(wildcard $(btrfs_dep)),) +$(warning Files $(btrfs_dep) not found. Probe "btrfs" is disabled. Use full kernel source tree to enable it.) +btrfs = +endif +endif +obj-m += $(btrfs) +endif + +obj-m += $(shell \ + if [ $(VERSION) -ge 3 \ + -o \( $(VERSION) -eq 2 -a $(PATCHLEVEL) -ge 6 -a $(SUBLEVEL) -ge 38 \) ] ; then \ + echo "lttng-probe-compaction.o" ; fi;) + +ifneq ($(CONFIG_EXT4_FS),) +ext4_dep = $(srctree)/fs/ext4/*.h +ext4 = lttng-probe-ext4.o +ifeq ($(wildcard $(ext4_dep)),) +$(warning Files $(ext4_dep) not found. Probe "ext4" is disabled. Use full kernel source tree to enable it.) +ext4 = +endif +obj-m += $(ext4) +endif + +obj-m += $(shell \ + if [ $(VERSION) -ge 3 -a $(PATCHLEVEL) -ge 4 ] ; then \ + echo "lttng-probe-printk.o" ; fi;) +ifneq ($(CONFIG_FRAME_WARN),0) +CFLAGS_lttng-probe-printk.o += -Wframe-larger-than=2200 +endif + +obj-m += $(shell \ + if [ \( $(VERSION) -eq 3 -a $(PATCHLEVEL) -ge 6 \) \ + -o \( $(VERSION) -eq 3 -a $(PATCHLEVEL) -eq 5 -a $(SUBLEVEL) -ge 2 \) \ + -o \( $(VERSION) -eq 3 -a $(PATCHLEVEL) -eq 4 -a $(SUBLEVEL) -ge 9 \) \ + -o \( $(VERSION) -eq 3 -a $(PATCHLEVEL) -eq 0 -a $(SUBLEVEL) -ge 41 \) ] ; then \ + echo "lttng-probe-random.o" ; fi;) + +obj-m += $(shell \ + if [ $(VERSION) -ge 3 -a $(PATCHLEVEL) -ge 2 ] ; then \ + echo "lttng-probe-rcu.o" ; fi;) + +ifneq ($(CONFIG_REGMAP),) +obj-m += $(shell \ + if [ $(VERSION) -ge 3 -a $(PATCHLEVEL) -ge 2 ] ; then \ + echo "lttng-probe-regmap.o" ; fi;) +endif + +ifneq ($(CONFIG_PM_RUNTIME),) +obj-m += $(shell \ + if [ $(VERSION) -ge 3 -a $(PATCHLEVEL) -ge 2 ] ; then \ + echo "lttng-probe-rpm.o" ; fi;) +endif + +ifneq ($(CONFIG_SUNRPC),) +obj-m += $(shell \ + if [ $(VERSION) -ge 3 -a $(PATCHLEVEL) -ge 4 ] ; then \ + echo "lttng-probe-sunrpc.o" ; fi;) +endif + +obj-m += lttng-probe-workqueue.o + +ifneq ($(CONFIG_KALLSYMS_ALL),) +obj-m += $(shell \ + if [ $(VERSION) -ge 3 \ + -o \( $(VERSION) -eq 2 -a $(PATCHLEVEL) -ge 6 -a $(SUBLEVEL) -ge 36 \) ] ; then \ + echo "lttng-probe-writeback.o" ; fi;) +endif + + +ifneq ($(CONFIG_KPROBES),) +obj-m += lttng-kprobes.o +endif + + +ifneq ($(CONFIG_KRETPROBES),) +obj-m += lttng-kretprobes.o +endif + +ifneq ($(CONFIG_DYNAMIC_FTRACE),) +obj-m += lttng-ftrace.o +endif + +endif + +else + KERNELDIR ?= /lib/modules/$(shell uname -r)/build + PWD := $(shell pwd) + CFLAGS = $(EXTCFLAGS) + +default: + $(MAKE) -C $(KERNELDIR) M=$(PWD) modules + +modules_install: + $(MAKE) -C $(KERNELDIR) M=$(PWD) modules_install + /sbin/depmod -a + +clean: + $(MAKE) -C $(KERNELDIR) M=$(PWD) clean + +endif --- linux-3.11.0.orig/ubuntu/lttng-modules/probes/lttng-probe-sunrpc.c +++ linux-3.11.0/ubuntu/lttng-modules/probes/lttng-probe-sunrpc.c @@ -0,0 +1,43 @@ +/* + * probes/lttng-probe-sunrpc.c + * + * LTTng sunrpc probes. + * + * Copyright (C) 2010-2012 Mathieu Desnoyers + * Copyright (C) 2012 Mentor Graphics Corp. + * + * 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; only + * version 2.1 of the License. + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include + +/* + * Create the tracepoint static inlines from the kernel to validate that our + * trace event macros match the kernel we run on. + */ +#include + +/* + * Create LTTng tracepoint probes. + */ +#define LTTNG_PACKAGE_BUILD +#define CREATE_TRACE_POINTS +#define TRACE_INCLUDE_PATH ../instrumentation/events/lttng-module + +#include "../instrumentation/events/lttng-module/sunrpc.h" + +MODULE_LICENSE("GPL and additional rights"); +MODULE_AUTHOR("Andrew Gabbasov "); +MODULE_DESCRIPTION("LTTng sunrpc probes"); --- linux-3.11.0.orig/ubuntu/lttng-modules/probes/lttng-probe-workqueue.c +++ linux-3.11.0/ubuntu/lttng-modules/probes/lttng-probe-workqueue.c @@ -0,0 +1,49 @@ +/* + * probes/lttng-probe-workqueue.c + * + * LTTng workqueue probes. + * + * Copyright (C) 2010-2012 Mathieu Desnoyers + * Copyright (C) 2012 Mentor Graphics Corp. + * + * 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; only + * version 2.1 of the License. + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include +#include + +struct cpu_workqueue_struct; +struct pool_workqueue; + +/* + * Create the tracepoint static inlines from the kernel to validate that our + * trace event macros match the kernel we run on. + */ +#include + +#include "../wrapper/tracepoint.h" + +/* + * Create LTTng tracepoint probes. + */ +#define LTTNG_PACKAGE_BUILD +#define CREATE_TRACE_POINTS +#define TRACE_INCLUDE_PATH ../instrumentation/events/lttng-module + +#include "../instrumentation/events/lttng-module/workqueue.h" + +MODULE_LICENSE("GPL and additional rights"); +MODULE_AUTHOR("Andrew Gabbasov "); +MODULE_DESCRIPTION("LTTng workqueue probes"); --- linux-3.11.0.orig/ubuntu/lttng-modules/probes/lttng-probe-timer.c +++ linux-3.11.0/ubuntu/lttng-modules/probes/lttng-probe-timer.c @@ -0,0 +1,46 @@ +/* + * probes/lttng-probe-timer.c + * + * LTTng timer probes. + * + * Copyright (C) 2012 Mathieu Desnoyers + * + * 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; only + * version 2.1 of the License. + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include + +/* + * Create the tracepoint static inlines from the kernel to validate that our + * trace event macros match the kernel we run on. + */ + +#include +#include + +#include "../wrapper/tracepoint.h" + +/* + * Create LTTng tracepoint probes. + */ +#define LTTNG_PACKAGE_BUILD +#define CREATE_TRACE_POINTS +#define TRACE_INCLUDE_PATH ../instrumentation/events/lttng-module + +#include "../instrumentation/events/lttng-module/timer.h" + +MODULE_LICENSE("GPL and additional rights"); +MODULE_AUTHOR("Mathieu Desnoyers "); +MODULE_DESCRIPTION("LTTng timer probes"); --- linux-3.11.0.orig/ubuntu/lttng-modules/probes/lttng-probe-signal.c +++ linux-3.11.0/ubuntu/lttng-modules/probes/lttng-probe-signal.c @@ -0,0 +1,42 @@ +/* + * probes/lttng-probe-signal.c + * + * LTTng signal probes. + * + * Copyright (C) 2010-2012 Mathieu Desnoyers + * + * 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; only + * version 2.1 of the License. + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include + +/* + * Create the tracepoint static inlines from the kernel to validate that our + * trace event macros match the kernel we run on. + */ +#include + +/* + * Create LTTng tracepoint probes. + */ +#define LTTNG_PACKAGE_BUILD +#define CREATE_TRACE_POINTS +#define TRACE_INCLUDE_PATH ../instrumentation/events/lttng-module + +#include "../instrumentation/events/lttng-module/signal.h" + +MODULE_LICENSE("GPL and additional rights"); +MODULE_AUTHOR("Mathieu Desnoyers "); +MODULE_DESCRIPTION("LTTng signal probes"); --- linux-3.11.0.orig/ubuntu/lttng-modules/probes/lttng-probe-kvm.c +++ linux-3.11.0/ubuntu/lttng-modules/probes/lttng-probe-kvm.c @@ -0,0 +1,45 @@ +/* + * probes/lttng-probe-kvm.c + * + * LTTng kvm probes. + * + * Copyright (C) 2010-2012 Mathieu Desnoyers + * + * 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; only + * version 2.1 of the License. + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include +#include + +/* + * Create the tracepoint static inlines from the kernel to validate that our + * trace event macros match the kernel we run on. + */ +#include + +#include "../wrapper/tracepoint.h" + +/* + * Create LTTng tracepoint probes. + */ +#define LTTNG_PACKAGE_BUILD +#define CREATE_TRACE_POINTS +#define TRACE_INCLUDE_PATH ../instrumentation/events/lttng-module + +#include "../instrumentation/events/lttng-module/kvm.h" + +MODULE_LICENSE("GPL and additional rights"); +MODULE_AUTHOR("Mathieu Desnoyers "); +MODULE_DESCRIPTION("LTTng kvm probes"); --- linux-3.11.0.orig/ubuntu/lttng-modules/probes/lttng-probe-jbd.c +++ linux-3.11.0/ubuntu/lttng-modules/probes/lttng-probe-jbd.c @@ -0,0 +1,43 @@ +/* + * probes/lttng-probe-jbd.c + * + * LTTng jbd probes. + * + * Copyright (C) 2010-2012 Mathieu Desnoyers + * Copyright (C) 2012 Mentor Graphics Corp. + * + * 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; only + * version 2.1 of the License. + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include + +/* + * Create the tracepoint static inlines from the kernel to validate that our + * trace event macros match the kernel we run on. + */ +#include + +/* + * Create LTTng tracepoint probes. + */ +#define LTTNG_PACKAGE_BUILD +#define CREATE_TRACE_POINTS +#define TRACE_INCLUDE_PATH ../instrumentation/events/lttng-module + +#include "../instrumentation/events/lttng-module/jbd.h" + +MODULE_LICENSE("GPL and additional rights"); +MODULE_AUTHOR("Wade Farnsworth , Paul Woegerer , and Andrew Gabbasov "); +MODULE_DESCRIPTION("LTTng jbd probes"); --- linux-3.11.0.orig/ubuntu/lttng-modules/probes/lttng-probe-block.c +++ linux-3.11.0/ubuntu/lttng-modules/probes/lttng-probe-block.c @@ -0,0 +1,45 @@ +/* + * probes/lttng-probe-block.c + * + * LTTng block probes. + * + * Copyright (C) 2010-2012 Mathieu Desnoyers + * + * 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; only + * version 2.1 of the License. + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include +#include + +/* + * Create the tracepoint static inlines from the kernel to validate that our + * trace event macros match the kernel we run on. + */ +#include + +#include "../wrapper/tracepoint.h" + +/* + * Create LTTng tracepoint probes. + */ +#define LTTNG_PACKAGE_BUILD +#define CREATE_TRACE_POINTS +#define TRACE_INCLUDE_PATH ../instrumentation/events/lttng-module + +#include "../instrumentation/events/lttng-module/block.h" + +MODULE_LICENSE("GPL and additional rights"); +MODULE_AUTHOR("Mathieu Desnoyers "); +MODULE_DESCRIPTION("LTTng block probes"); --- linux-3.11.0.orig/ubuntu/lttng-modules/probes/lttng-probe-regmap.c +++ linux-3.11.0/ubuntu/lttng-modules/probes/lttng-probe-regmap.c @@ -0,0 +1,44 @@ +/* + * probes/lttng-probe-regmap.c + * + * LTTng regmap probes. + * + * Copyright (C) 2010-2012 Mathieu Desnoyers + * Copyright (C) 2012 Mentor Graphics Corp. + * + * 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; only + * version 2.1 of the License. + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include +#include + +/* + * Create the tracepoint static inlines from the kernel to validate that our + * trace event macros match the kernel we run on. + */ +#include + +/* + * Create LTTng tracepoint probes. + */ +#define LTTNG_PACKAGE_BUILD +#define CREATE_TRACE_POINTS +#define TRACE_INCLUDE_PATH ../instrumentation/events/lttng-module + +#include "../instrumentation/events/lttng-module/regmap.h" + +MODULE_LICENSE("GPL and additional rights"); +MODULE_AUTHOR("Andrew Gabbasov "); +MODULE_DESCRIPTION("LTTng regmap probes"); --- linux-3.11.0.orig/ubuntu/lttng-modules/probes/lttng-probe-kvm-x86.c +++ linux-3.11.0/ubuntu/lttng-modules/probes/lttng-probe-kvm-x86.c @@ -0,0 +1,45 @@ +/* + * probes/lttng-probe-kvm.c + * + * LTTng kvm probes. + * + * Copyright (C) 2010-2012 Mathieu Desnoyers + * + * 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; only + * version 2.1 of the License. + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include +#include + +/* + * Create the tracepoint static inlines from the kernel to validate that our + * trace event macros match the kernel we run on. + */ +#include + +#include "../wrapper/tracepoint.h" + +/* + * Create LTTng tracepoint probes. + */ +#define LTTNG_PACKAGE_BUILD +#define CREATE_TRACE_POINTS + +#define TRACE_INCLUDE_PATH ../instrumentation/events/lttng-module/arch/x86/kvm +#include "../instrumentation/events/lttng-module/arch/x86/kvm/trace.h" + +MODULE_LICENSE("GPL and additional rights"); +MODULE_AUTHOR("Mathieu Desnoyers "); +MODULE_DESCRIPTION("LTTng kvm probes"); --- linux-3.11.0.orig/ubuntu/lttng-modules/probes/lttng-probe-regulator.c +++ linux-3.11.0/ubuntu/lttng-modules/probes/lttng-probe-regulator.c @@ -0,0 +1,43 @@ +/* + * probes/lttng-probe-regulator.c + * + * LTTng regulator probes. + * + * Copyright (C) 2010-2012 Mathieu Desnoyers + * Copyright (C) 2012 Mentor Graphics Corp. + * + * 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; only + * version 2.1 of the License. + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include + +/* + * Create the tracepoint static inlines from the kernel to validate that our + * trace event macros match the kernel we run on. + */ +#include + +/* + * Create LTTng tracepoint probes. + */ +#define LTTNG_PACKAGE_BUILD +#define CREATE_TRACE_POINTS +#define TRACE_INCLUDE_PATH ../instrumentation/events/lttng-module + +#include "../instrumentation/events/lttng-module/regulator.h" + +MODULE_LICENSE("GPL and additional rights"); +MODULE_AUTHOR("Wade Farnsworth "); +MODULE_DESCRIPTION("LTTng regulator probes"); --- linux-3.11.0.orig/ubuntu/lttng-modules/probes/lttng-probe-sock.c +++ linux-3.11.0/ubuntu/lttng-modules/probes/lttng-probe-sock.c @@ -0,0 +1,43 @@ +/* + * probes/lttng-probe-sock.c + * + * LTTng sock probes. + * + * Copyright (C) 2010-2012 Mathieu Desnoyers + * Copyright (C) 2012 Mentor Graphics Corp. + * + * 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; only + * version 2.1 of the License. + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include + +/* + * Create the tracepoint static inlines from the kernel to validate that our + * trace event macros match the kernel we run on. + */ +#include + +/* + * Create LTTng tracepoint probes. + */ +#define LTTNG_PACKAGE_BUILD +#define CREATE_TRACE_POINTS +#define TRACE_INCLUDE_PATH ../instrumentation/events/lttng-module + +#include "../instrumentation/events/lttng-module/sock.h" + +MODULE_LICENSE("GPL and additional rights"); +MODULE_AUTHOR("Wade Farnsworth "); +MODULE_DESCRIPTION("LTTng sock probes"); --- linux-3.11.0.orig/ubuntu/lttng-modules/probes/lttng-probe-vmscan.c +++ linux-3.11.0/ubuntu/lttng-modules/probes/lttng-probe-vmscan.c @@ -0,0 +1,45 @@ +/* + * probes/lttng-probe-vmscan.c + * + * LTTng vmscan probes. + * + * Copyright (C) 2010-2012 Mathieu Desnoyers + * Copyright (C) 2012 Mentor Graphics Corp. + * + * 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; only + * version 2.1 of the License. + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include + +/* + * Create the tracepoint static inlines from the kernel to validate that our + * trace event macros match the kernel we run on. + */ +#include + +#include "../lttng-kernel-version.h" + +/* + * Create LTTng tracepoint probes. + */ +#define LTTNG_PACKAGE_BUILD +#define CREATE_TRACE_POINTS +#define TRACE_INCLUDE_PATH ../instrumentation/events/lttng-module + +#include "../instrumentation/events/lttng-module/vmscan.h" + +MODULE_LICENSE("GPL and additional rights"); +MODULE_AUTHOR("Wade Farnsworth , Paul Woegerer , and Andrew Gabbasov "); +MODULE_DESCRIPTION("LTTng vmscan probes"); --- linux-3.11.0.orig/ubuntu/lttng-modules/probes/lttng-probe-ext3.c +++ linux-3.11.0/ubuntu/lttng-modules/probes/lttng-probe-ext3.c @@ -0,0 +1,52 @@ +/* + * probes/lttng-probe-ext3.c + * + * LTTng ext3 probes. + * + * Copyright (C) 2010-2012 Mathieu Desnoyers + * Copyright (C) 2012 Mentor Graphics Corp. + * + * 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; only + * version 2.1 of the License. + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include +#include +#include +#include + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,4,0)) +#include <../fs/ext3/ext3.h> +#else +#include +#endif + +/* + * Create the tracepoint static inlines from the kernel to validate that our + * trace event macros match the kernel we run on. + */ +#include + +/* + * Create LTTng tracepoint probes. + */ +#define LTTNG_PACKAGE_BUILD +#define CREATE_TRACE_POINTS +#define TRACE_INCLUDE_PATH ../instrumentation/events/lttng-module + +#include "../instrumentation/events/lttng-module/ext3.h" + +MODULE_LICENSE("GPL and additional rights"); +MODULE_AUTHOR("Wade Farnsworth , Paul Woegerer , and Andrew Gabbasov "); +MODULE_DESCRIPTION("LTTng ext3 probes"); --- linux-3.11.0.orig/ubuntu/lttng-modules/probes/lttng-probe-kvm-x86-mmu.c +++ linux-3.11.0/ubuntu/lttng-modules/probes/lttng-probe-kvm-x86-mmu.c @@ -0,0 +1,43 @@ +/* + * probes/lttng-probe-kvm.c + * + * LTTng kvm probes. + * + * Copyright (C) 2010-2012 Mathieu Desnoyers + * + * 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; only + * version 2.1 of the License. + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include +#include + +/* + * Create the tracepoint static inlines from the kernel to validate that our + * trace event macros match the kernel we run on. + */ +#include "../wrapper/tracepoint.h" + +/* + * Create LTTng tracepoint probes. + */ +#define LTTNG_PACKAGE_BUILD +#define CREATE_TRACE_POINTS + +#define TRACE_INCLUDE_PATH ../instrumentation/events/lttng-module/arch/x86/kvm +#include "../instrumentation/events/lttng-module/arch/x86/kvm/mmutrace.h" + +MODULE_LICENSE("GPL and additional rights"); +MODULE_AUTHOR("Mathieu Desnoyers "); +MODULE_DESCRIPTION("LTTng kvm mmu probes"); --- linux-3.11.0.orig/ubuntu/lttng-modules/probes/lttng-probe-printk.c +++ linux-3.11.0/ubuntu/lttng-modules/probes/lttng-probe-printk.c @@ -0,0 +1,43 @@ +/* + * probes/lttng-probe-printk.c + * + * LTTng printk probes. + * + * Copyright (C) 2010-2012 Mathieu Desnoyers + * Copyright (C) 2012 Mentor Graphics Corp. + * + * 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; only + * version 2.1 of the License. + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include + +/* + * Create the tracepoint static inlines from the kernel to validate that our + * trace event macros match the kernel we run on. + */ +#include + +/* + * Create LTTng tracepoint probes. + */ +#define LTTNG_PACKAGE_BUILD +#define CREATE_TRACE_POINTS +#define TRACE_INCLUDE_PATH ../instrumentation/events/lttng-module + +#include "../instrumentation/events/lttng-module/printk.h" + +MODULE_LICENSE("GPL and additional rights"); +MODULE_AUTHOR("Andrew Gabbasov "); +MODULE_DESCRIPTION("LTTng printk probes"); --- linux-3.11.0.orig/ubuntu/lttng-modules/probes/lttng-probe-module.c +++ linux-3.11.0/ubuntu/lttng-modules/probes/lttng-probe-module.c @@ -0,0 +1,45 @@ +/* + * probes/lttng-probe-module.c + * + * LTTng module probes. + * + * Copyright (C) 2010-2012 Mathieu Desnoyers + * Copyright (C) 2012 Mentor Graphics Corp. + * + * 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; only + * version 2.1 of the License. + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include + +/* + * Create the tracepoint static inlines from the kernel to validate that our + * trace event macros match the kernel we run on. + */ +#include + +#include "../wrapper/tracepoint.h" + +/* + * Create LTTng tracepoint probes. + */ +#define LTTNG_PACKAGE_BUILD +#define CREATE_TRACE_POINTS +#define TRACE_INCLUDE_PATH ../instrumentation/events/lttng-module + +#include "../instrumentation/events/lttng-module/module.h" + +MODULE_LICENSE("GPL and additional rights"); +MODULE_AUTHOR("Wade Farnsworth and Andrew Gabbasov "); +MODULE_DESCRIPTION("LTTng module probes"); --- linux-3.11.0.orig/ubuntu/lttng-modules/probes/lttng-probe-rcu.c +++ linux-3.11.0/ubuntu/lttng-modules/probes/lttng-probe-rcu.c @@ -0,0 +1,44 @@ +/* + * probes/lttng-probe-rcu.c + * + * LTTng rcu probes. + * + * Copyright (C) 2010-2012 Mathieu Desnoyers + * Copyright (C) 2012 Mentor Graphics Corp. + * + * 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; only + * version 2.1 of the License. + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include +#include + +/* + * Create the tracepoint static inlines from the kernel to validate that our + * trace event macros match the kernel we run on. + */ +#include + +/* + * Create LTTng tracepoint probes. + */ +#define LTTNG_PACKAGE_BUILD +#define CREATE_TRACE_POINTS +#define TRACE_INCLUDE_PATH ../instrumentation/events/lttng-module + +#include "../instrumentation/events/lttng-module/rcu.h" + +MODULE_LICENSE("GPL and additional rights"); +MODULE_AUTHOR("Andrew Gabbasov "); +MODULE_DESCRIPTION("LTTng rcu probes"); --- linux-3.11.0.orig/ubuntu/lttng-modules/probes/lttng-probe-rpm.c +++ linux-3.11.0/ubuntu/lttng-modules/probes/lttng-probe-rpm.c @@ -0,0 +1,44 @@ +/* + * probes/lttng-probe-rpm.c + * + * LTTng rpm probes. + * + * Copyright (C) 2010-2012 Mathieu Desnoyers + * Copyright (C) 2012 Mentor Graphics Corp. + * + * 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; only + * version 2.1 of the License. + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include +#include + +/* + * Create the tracepoint static inlines from the kernel to validate that our + * trace event macros match the kernel we run on. + */ +#include + +/* + * Create LTTng tracepoint probes. + */ +#define LTTNG_PACKAGE_BUILD +#define CREATE_TRACE_POINTS +#define TRACE_INCLUDE_PATH ../instrumentation/events/lttng-module + +#include "../instrumentation/events/lttng-module/rpm.h" + +MODULE_LICENSE("GPL and additional rights"); +MODULE_AUTHOR("Andrew Gabbasov "); +MODULE_DESCRIPTION("LTTng rpm probes"); --- linux-3.11.0.orig/ubuntu/lttng-modules/probes/lttng-probe-udp.c +++ linux-3.11.0/ubuntu/lttng-modules/probes/lttng-probe-udp.c @@ -0,0 +1,43 @@ +/* + * probes/lttng-probe-udp.c + * + * LTTng udp probes. + * + * Copyright (C) 2010-2012 Mathieu Desnoyers + * Copyright (C) 2012 Mentor Graphics Corp. + * + * 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; only + * version 2.1 of the License. + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include + +/* + * Create the tracepoint static inlines from the kernel to validate that our + * trace event macros match the kernel we run on. + */ +#include + +/* + * Create LTTng tracepoint probes. + */ +#define LTTNG_PACKAGE_BUILD +#define CREATE_TRACE_POINTS +#define TRACE_INCLUDE_PATH ../instrumentation/events/lttng-module + +#include "../instrumentation/events/lttng-module/udp.h" + +MODULE_LICENSE("GPL and additional rights"); +MODULE_AUTHOR("Wade Farnsworth "); +MODULE_DESCRIPTION("LTTng udp probes"); --- linux-3.11.0.orig/ubuntu/lttng-modules/probes/lttng-types.h +++ linux-3.11.0/ubuntu/lttng-modules/probes/lttng-types.h @@ -0,0 +1,84 @@ +/* + * Protect against multiple inclusion of structure declarations, but run the + * stages below each time. + */ +#ifndef _LTTNG_PROBES_LTTNG_TYPES_H +#define _LTTNG_PROBES_LTTNG_TYPES_H + +/* + * probes/lttng-types.h + * + * LTTng types. + * + * Copyright (C) 2010-2012 Mathieu Desnoyers + * + * 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; only + * version 2.1 of the License. + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include +#include "lttng.h" +#include "../lttng-events.h" +#include "../lttng-tracer.h" +#include "../lttng-endian.h" + +#endif /* _LTTNG_PROBES_LTTNG_TYPES_H */ + +/* Export enumerations */ + +#ifdef STAGE_EXPORT_ENUMS + +#undef TRACE_EVENT_TYPE +#define TRACE_EVENT_TYPE(_name, _abstract_type, args...) + +#undef TRACE_EVENT_ENUM +#define TRACE_EVENT_ENUM(_name, _entries...) \ + const struct lttng_enum_entry __trace_event_enum_##_name[] = { \ + PARAMS(_entries) \ + }; + +/* Enumeration entry (single value) */ +#undef V +#define V(_string) { _string, _string, #_string} + +/* Enumeration entry (range) */ +#undef R +#define R(_string, _range_start, _range_end) \ + { _range_start, _range_end, #_string } + +#endif /* STAGE_EXPORT_ENUMS */ + + +/* Export named types */ + +#ifdef STAGE_EXPORT_TYPES + +#undef TRACE_EVENT_TYPE___enum +#define TRACE_EVENT_TYPE___enum(_name, _container_type) \ + { \ + .name = #_name, \ + .container_type = __type_integer(_container_type, __BYTE_ORDER, 10, none), \ + .entries = __trace_event_enum_##_name, \ + .len = ARRAY_SIZE(__trace_event_enum_##_name), \ + }, + +/* Local declaration */ +#undef TRACE_EVENT_TYPE +#define TRACE_EVENT_TYPE(_name, _abstract_type, args...) \ + TRACE_EVENT_TYPE___##_abstract_type(_name, args) + +#undef TRACE_EVENT_ENUM +#define TRACE_EVENT_ENUM(_name, _entries...) + +#endif /* STAGE_EXPORT_TYPES */ --- linux-3.11.0.orig/ubuntu/lttng-modules/probes/lttng-probe-napi.c +++ linux-3.11.0/ubuntu/lttng-modules/probes/lttng-probe-napi.c @@ -0,0 +1,45 @@ +/* + * probes/lttng-probe-napi.c + * + * LTTng napi probes. + * + * Copyright (C) 2010-2012 Mathieu Desnoyers + * Copyright (C) 2012 Mentor Graphics Corp. + * + * 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; only + * version 2.1 of the License. + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include + +/* + * Create the tracepoint static inlines from the kernel to validate that our + * trace event macros match the kernel we run on. + */ +#include + +#include "../wrapper/tracepoint.h" + +/* + * Create LTTng tracepoint probes. + */ +#define LTTNG_PACKAGE_BUILD +#define CREATE_TRACE_POINTS +#define TRACE_INCLUDE_PATH ../instrumentation/events/lttng-module + +#include "../instrumentation/events/lttng-module/napi.h" + +MODULE_LICENSE("GPL and additional rights"); +MODULE_AUTHOR("Wade Farnsworth "); +MODULE_DESCRIPTION("LTTng napi probes"); --- linux-3.11.0.orig/ubuntu/lttng-modules/probes/lttng-probe-user.h +++ linux-3.11.0/ubuntu/lttng-modules/probes/lttng-probe-user.h @@ -0,0 +1,30 @@ +#ifndef _LTTNG_PROBE_USER_H +#define _LTTNG_PROBE_USER_H + +/* + * lttng-probe-user.h + * + * Copyright (C) 2012 Mathieu Desnoyers + * + * 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; only + * version 2.1 of the License. + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/* + * Calculate string length. Include final null terminating character if there is + * one, or ends at first fault. + */ +long lttng_strlen_user_inatomic(const char *addr); + +#endif /* _LTTNG_PROBE_USER_H */ --- linux-3.11.0.orig/ubuntu/lttng-modules/probes/lttng-events-reset.h +++ linux-3.11.0/ubuntu/lttng-modules/probes/lttng-events-reset.h @@ -0,0 +1,99 @@ +/* + * lttng-events-reset.h + * + * Copyright (C) 2010-2012 Mathieu Desnoyers + * + * 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; only + * version 2.1 of the License. + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/* Reset macros used within TRACE_EVENT to "nothing" */ + +#undef __field_full +#define __field_full(_type, _item, _order, _base) + +#undef __array_enc_ext +#define __array_enc_ext(_type, _item, _length, _order, _base, _encoding) + +#undef __dynamic_array_enc_ext +#define __dynamic_array_enc_ext(_type, _item, _length, _order, _base, _encoding) + +#undef __dynamic_array_enc_ext_2 +#define __dynamic_array_enc_ext_2(_type, _item, _length1, _length2, _order, _base, _encoding) + +#undef __dynamic_array_len +#define __dynamic_array_len(_type, _item, _length) + +#undef __string +#define __string(_item, _src) + +#undef tp_assign +#define tp_assign(dest, src) + +#undef tp_memcpy +#define tp_memcpy(dest, src, len) + +#undef tp_memcpy_dyn +#define tp_memcpy_dyn(dest, src, len) + +#undef tp_strcpy +#define tp_strcpy(dest, src) + +#undef __get_str +#define __get_str(field) + +#undef __get_dynamic_array +#define __get_dynamic_array(field) + +#undef __get_dynamic_array_len +#define __get_dynamic_array_len(field) + +#undef TP_PROTO +#define TP_PROTO(args...) + +#undef TP_ARGS +#define TP_ARGS(args...) + +#undef TP_STRUCT__entry +#define TP_STRUCT__entry(args...) + +#undef TP_fast_assign +#define TP_fast_assign(args...) + +#undef __perf_count +#define __perf_count(args...) + +#undef __perf_addr +#define __perf_addr(args...) + +#undef TP_perf_assign +#define TP_perf_assign(args...) + +#undef TP_printk +#define TP_printk(args...) + +#undef DECLARE_EVENT_CLASS +#define DECLARE_EVENT_CLASS(_name, _proto, _args, _tstruct, _assign, _print) + +#undef DECLARE_EVENT_CLASS_NOARGS +#define DECLARE_EVENT_CLASS_NOARGS(_name, _tstruct, _assign, _print) + +#undef DEFINE_EVENT_MAP +#define DEFINE_EVENT_MAP(_template, _name, _map, _proto, _args) + +#undef DEFINE_EVENT_MAP_NOARGS +#define DEFINE_EVENT_MAP_NOARGS(_template, _name, _map) + +#undef TRACE_EVENT_FLAGS +#define TRACE_EVENT_FLAGS(name, value) --- linux-3.11.0.orig/ubuntu/lttng-modules/probes/lttng-events.h +++ linux-3.11.0/ubuntu/lttng-modules/probes/lttng-events.h @@ -0,0 +1,868 @@ +/* + * lttng-events.h + * + * Copyright (C) 2009 Steven Rostedt + * Copyright (C) 2009-2012 Mathieu Desnoyers + * + * 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; only + * version 2.1 of the License. + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + */ +#include +#include +#include "lttng.h" +#include "lttng-types.h" +#include "lttng-probe-user.h" +#include "../wrapper/vmalloc.h" /* for wrapper_vmalloc_sync_all() */ +#include "../wrapper/ringbuffer/frontend_types.h" +#include "../lttng-events.h" +#include "../lttng-tracer-core.h" + +/* + * Macro declarations used for all stages. + */ + +/* + * LTTng name mapping macros. LTTng remaps some of the kernel events to + * enforce name-spacing. + */ +#undef TRACE_EVENT_MAP +#define TRACE_EVENT_MAP(name, map, proto, args, tstruct, assign, print) \ + DECLARE_EVENT_CLASS(map, \ + PARAMS(proto), \ + PARAMS(args), \ + PARAMS(tstruct), \ + PARAMS(assign), \ + PARAMS(print)) \ + DEFINE_EVENT_MAP(map, name, map, PARAMS(proto), PARAMS(args)) + +#undef TRACE_EVENT_MAP_NOARGS +#define TRACE_EVENT_MAP_NOARGS(name, map, tstruct, assign, print) \ + DECLARE_EVENT_CLASS_NOARGS(map, \ + PARAMS(tstruct), \ + PARAMS(assign), \ + PARAMS(print)) \ + DEFINE_EVENT_MAP_NOARGS(map, name, map) + +#undef DEFINE_EVENT_PRINT_MAP +#define DEFINE_EVENT_PRINT_MAP(template, name, map, proto, args, print) \ + DEFINE_EVENT_MAP(template, name, map, PARAMS(proto), PARAMS(args)) + +/* Callbacks are meaningless to LTTng. */ +#undef TRACE_EVENT_FN_MAP +#define TRACE_EVENT_FN_MAP(name, map, proto, args, tstruct, \ + assign, print, reg, unreg) \ + TRACE_EVENT_MAP(name, map, PARAMS(proto), PARAMS(args), \ + PARAMS(tstruct), PARAMS(assign), PARAMS(print)) \ + +#undef TRACE_EVENT_CONDITION_MAP +#define TRACE_EVENT_CONDITION_MAP(name, map, proto, args, cond, tstruct, assign, print) \ + TRACE_EVENT_MAP(name, map, \ + PARAMS(proto), \ + PARAMS(args), \ + PARAMS(tstruct), \ + PARAMS(assign), \ + PARAMS(print)) + +/* + * DECLARE_EVENT_CLASS can be used to add a generic function + * handlers for events. That is, if all events have the same + * parameters and just have distinct trace points. + * Each tracepoint can be defined with DEFINE_EVENT and that + * will map the DECLARE_EVENT_CLASS to the tracepoint. + * + * TRACE_EVENT is a one to one mapping between tracepoint and template. + */ + +#undef TRACE_EVENT +#define TRACE_EVENT(name, proto, args, tstruct, assign, print) \ + TRACE_EVENT_MAP(name, name, \ + PARAMS(proto), \ + PARAMS(args), \ + PARAMS(tstruct), \ + PARAMS(assign), \ + PARAMS(print)) + +#undef TRACE_EVENT_NOARGS +#define TRACE_EVENT_NOARGS(name, tstruct, assign, print) \ + TRACE_EVENT_MAP_NOARGS(name, name, \ + PARAMS(tstruct), \ + PARAMS(assign), \ + PARAMS(print)) + +#undef DEFINE_EVENT_PRINT +#define DEFINE_EVENT_PRINT(template, name, proto, args, print) \ + DEFINE_EVENT_PRINT_MAP(template, name, name, \ + PARAMS(proto), PARAMS(args), PARAMS(print_)) + +#undef TRACE_EVENT_FN +#define TRACE_EVENT_FN(name, proto, args, tstruct, \ + assign, print, reg, unreg) \ + TRACE_EVENT_FN_MAP(name, name, PARAMS(proto), PARAMS(args), \ + PARAMS(tstruct), PARAMS(assign), PARAMS(print), \ + PARAMS(reg), PARAMS(unreg)) \ + +#undef DEFINE_EVENT +#define DEFINE_EVENT(template, name, proto, args) \ + DEFINE_EVENT_MAP(template, name, name, PARAMS(proto), PARAMS(args)) + +#undef DEFINE_EVENT_NOARGS +#define DEFINE_EVENT_NOARGS(template, name) \ + DEFINE_EVENT_MAP_NOARGS(template, name, name) + +#undef TRACE_EVENT_CONDITION +#define TRACE_EVENT_CONDITION(name, proto, args, cond, tstruct, assign, print) \ + TRACE_EVENT_CONDITION_MAP(name, name, \ + PARAMS(proto), \ + PARAMS(args), \ + PARAMS(cond), \ + PARAMS(tstruct), \ + PARAMS(assign), \ + PARAMS(print)) + +/* + * Stage 1 of the trace events. + * + * Create dummy trace calls for each events, verifying that the LTTng module + * TRACE_EVENT headers match the kernel arguments. Will be optimized out by the + * compiler. + */ + +#include "lttng-events-reset.h" /* Reset all macros within TRACE_EVENT */ + +#undef TP_PROTO +#define TP_PROTO(args...) args + +#undef TP_ARGS +#define TP_ARGS(args...) args + +#undef DEFINE_EVENT_MAP +#define DEFINE_EVENT_MAP(_template, _name, _map, _proto, _args) \ +void trace_##_name(_proto); + +#undef DEFINE_EVENT_MAP_NOARGS +#define DEFINE_EVENT_MAP_NOARGS(_template, _name, _map) \ +void trace_##_name(void *__data); + +#include TRACE_INCLUDE(TRACE_INCLUDE_FILE) + +/* + * Stage 2 of the trace events. + * + * Create event field type metadata section. + * Each event produce an array of fields. + */ + +#include "lttng-events-reset.h" /* Reset all macros within TRACE_EVENT */ + +/* Named field types must be defined in lttng-types.h */ + +#undef __field_full +#define __field_full(_type, _item, _order, _base) \ + { \ + .name = #_item, \ + .type = __type_integer(_type, _order, _base, none), \ + }, + +#undef __field +#define __field(_type, _item) \ + __field_full(_type, _item, __BYTE_ORDER, 10) + +#undef __field_ext +#define __field_ext(_type, _item, _filter_type) \ + __field(_type, _item) + +#undef __field_hex +#define __field_hex(_type, _item) \ + __field_full(_type, _item, __BYTE_ORDER, 16) + +#undef __field_network +#define __field_network(_type, _item) \ + __field_full(_type, _item, __BIG_ENDIAN, 10) + +#undef __field_network_hex +#define __field_network_hex(_type, _item) \ + __field_full(_type, _item, __BIG_ENDIAN, 16) + +#undef __array_enc_ext +#define __array_enc_ext(_type, _item, _length, _order, _base, _encoding)\ + { \ + .name = #_item, \ + .type = \ + { \ + .atype = atype_array, \ + .u.array = \ + { \ + .length = _length, \ + .elem_type = __type_integer(_type, _order, _base, _encoding), \ + }, \ + }, \ + }, + +#undef __array +#define __array(_type, _item, _length) \ + __array_enc_ext(_type, _item, _length, __BYTE_ORDER, 10, none) + +#undef __array_text +#define __array_text(_type, _item, _length) \ + __array_enc_ext(_type, _item, _length, __BYTE_ORDER, 10, UTF8) + +#undef __array_hex +#define __array_hex(_type, _item, _length) \ + __array_enc_ext(_type, _item, _length, __BYTE_ORDER, 16, none) + +#undef __dynamic_array_enc_ext +#define __dynamic_array_enc_ext(_type, _item, _length, _order, _base, _encoding) \ + { \ + .name = #_item, \ + .type = \ + { \ + .atype = atype_sequence, \ + .u.sequence = \ + { \ + .length_type = __type_integer(u32, __BYTE_ORDER, 10, none), \ + .elem_type = __type_integer(_type, _order, _base, _encoding), \ + }, \ + }, \ + }, + +#undef __dynamic_array_enc_ext_2 +#define __dynamic_array_enc_ext_2(_type, _item, _length1, _length2, _order, _base, _encoding) \ + __dynamic_array_enc_ext(_type, _item, _length1 + _length2, _order, _base, _encoding) + +#undef __dynamic_array +#define __dynamic_array(_type, _item, _length) \ + __dynamic_array_enc_ext(_type, _item, _length, __BYTE_ORDER, 10, none) + +#undef __dynamic_array_text +#define __dynamic_array_text(_type, _item, _length) \ + __dynamic_array_enc_ext(_type, _item, _length, __BYTE_ORDER, 10, UTF8) + +#undef __dynamic_array_hex +#define __dynamic_array_hex(_type, _item, _length) \ + __dynamic_array_enc_ext(_type, _item, _length, __BYTE_ORDER, 16, none) + +#undef __dynamic_array_text_2 +#define __dynamic_array_text_2(_type, _item, _length1, _length2) \ + __dynamic_array_enc_ext_2(_type, _item, _length1, _length2, __BYTE_ORDER, 10, UTF8) + +#undef __string +#define __string(_item, _src) \ + { \ + .name = #_item, \ + .type = \ + { \ + .atype = atype_string, \ + .u.basic.string.encoding = lttng_encode_UTF8, \ + }, \ + }, + +#undef __string_from_user +#define __string_from_user(_item, _src) \ + __string(_item, _src) + +#undef TP_STRUCT__entry +#define TP_STRUCT__entry(args...) args /* Only one used in this phase */ + +#undef DECLARE_EVENT_CLASS_NOARGS +#define DECLARE_EVENT_CLASS_NOARGS(_name, _tstruct, _assign, _print) \ + static const struct lttng_event_field __event_fields___##_name[] = { \ + _tstruct \ + }; + +#undef DECLARE_EVENT_CLASS +#define DECLARE_EVENT_CLASS(_name, _proto, _args, _tstruct, _assign, _print) \ + DECLARE_EVENT_CLASS_NOARGS(_name, PARAMS(_tstruct), PARAMS(_assign), \ + PARAMS(_print)) + +#include TRACE_INCLUDE(TRACE_INCLUDE_FILE) + +/* + * Stage 3 of the trace events. + * + * Create probe callback prototypes. + */ + +#include "lttng-events-reset.h" /* Reset all macros within TRACE_EVENT */ + +#undef TP_PROTO +#define TP_PROTO(args...) args + +#undef DECLARE_EVENT_CLASS +#define DECLARE_EVENT_CLASS(_name, _proto, _args, _tstruct, _assign, _print) \ +static void __event_probe__##_name(void *__data, _proto); + +#undef DECLARE_EVENT_CLASS_NOARGS +#define DECLARE_EVENT_CLASS_NOARGS(_name, _tstruct, _assign, _print) \ +static void __event_probe__##_name(void *__data); + +#include TRACE_INCLUDE(TRACE_INCLUDE_FILE) + +/* + * Stage 3.9 of the trace events. + * + * Create event descriptions. + */ + +/* Named field types must be defined in lttng-types.h */ + +#include "lttng-events-reset.h" /* Reset all macros within TRACE_EVENT */ + +#ifndef TP_PROBE_CB +#define TP_PROBE_CB(_template) &__event_probe__##_template +#endif + +#undef DEFINE_EVENT_MAP_NOARGS +#define DEFINE_EVENT_MAP_NOARGS(_template, _name, _map) \ +static const struct lttng_event_desc __event_desc___##_map = { \ + .fields = __event_fields___##_template, \ + .name = #_map, \ + .probe_callback = (void *) TP_PROBE_CB(_template), \ + .nr_fields = ARRAY_SIZE(__event_fields___##_template), \ + .owner = THIS_MODULE, \ +}; + +#undef DEFINE_EVENT_MAP +#define DEFINE_EVENT_MAP(_template, _name, _map, _proto, _args) \ + DEFINE_EVENT_MAP_NOARGS(_template, _name, _map) + +#include TRACE_INCLUDE(TRACE_INCLUDE_FILE) + + +/* + * Stage 4 of the trace events. + * + * Create an array of event description pointers. + */ + +/* Named field types must be defined in lttng-types.h */ + +#include "lttng-events-reset.h" /* Reset all macros within TRACE_EVENT */ + +#undef DEFINE_EVENT_MAP_NOARGS +#define DEFINE_EVENT_MAP_NOARGS(_template, _name, _map) \ + &__event_desc___##_map, + +#undef DEFINE_EVENT_MAP +#define DEFINE_EVENT_MAP(_template, _name, _map, _proto, _args) \ + DEFINE_EVENT_MAP_NOARGS(_template, _name, _map) + +#define TP_ID1(_token, _system) _token##_system +#define TP_ID(_token, _system) TP_ID1(_token, _system) + +static const struct lttng_event_desc *TP_ID(__event_desc___, TRACE_SYSTEM)[] = { +#include TRACE_INCLUDE(TRACE_INCLUDE_FILE) +}; + +#undef TP_ID1 +#undef TP_ID + + +/* + * Stage 5 of the trace events. + * + * Create a toplevel descriptor for the whole probe. + */ + +#define TP_ID1(_token, _system) _token##_system +#define TP_ID(_token, _system) TP_ID1(_token, _system) + +/* non-const because list head will be modified when registered. */ +static __used struct lttng_probe_desc TP_ID(__probe_desc___, TRACE_SYSTEM) = { + .event_desc = TP_ID(__event_desc___, TRACE_SYSTEM), + .nr_events = ARRAY_SIZE(TP_ID(__event_desc___, TRACE_SYSTEM)), +}; + +#undef TP_ID1 +#undef TP_ID + +/* + * Stage 6 of the trace events. + * + * Create static inline function that calculates event size. + */ + +#include "lttng-events-reset.h" /* Reset all macros within TRACE_EVENT */ + +/* Named field types must be defined in lttng-types.h */ + +#undef __field_full +#define __field_full(_type, _item, _order, _base) \ + __event_len += lib_ring_buffer_align(__event_len, lttng_alignof(_type)); \ + __event_len += sizeof(_type); + +#undef __array_enc_ext +#define __array_enc_ext(_type, _item, _length, _order, _base, _encoding) \ + __event_len += lib_ring_buffer_align(__event_len, lttng_alignof(_type)); \ + __event_len += sizeof(_type) * (_length); + +#undef __dynamic_array_enc_ext +#define __dynamic_array_enc_ext(_type, _item, _length, _order, _base, _encoding)\ + __event_len += lib_ring_buffer_align(__event_len, lttng_alignof(u32)); \ + __event_len += sizeof(u32); \ + __event_len += lib_ring_buffer_align(__event_len, lttng_alignof(_type)); \ + __dynamic_len[__dynamic_len_idx] = (_length); \ + __event_len += sizeof(_type) * __dynamic_len[__dynamic_len_idx]; \ + __dynamic_len_idx++; + +#undef __dynamic_array_enc_ext_2 +#define __dynamic_array_enc_ext_2(_type, _item, _length1, _length2, _order, _base, _encoding)\ + __event_len += lib_ring_buffer_align(__event_len, lttng_alignof(u32)); \ + __event_len += sizeof(u32); \ + __event_len += lib_ring_buffer_align(__event_len, lttng_alignof(_type)); \ + __dynamic_len[__dynamic_len_idx] = (_length1); \ + __event_len += sizeof(_type) * __dynamic_len[__dynamic_len_idx]; \ + __dynamic_len_idx++; \ + __dynamic_len[__dynamic_len_idx] = (_length2); \ + __event_len += sizeof(_type) * __dynamic_len[__dynamic_len_idx]; \ + __dynamic_len_idx++; + +#undef __string +#define __string(_item, _src) \ + __event_len += __dynamic_len[__dynamic_len_idx++] = strlen(_src) + 1; + +/* + * strlen_user includes \0. If returns 0, it faulted, so we set size to + * 1 (\0 only). + */ +#undef __string_from_user +#define __string_from_user(_item, _src) \ + __event_len += __dynamic_len[__dynamic_len_idx++] = \ + max_t(size_t, lttng_strlen_user_inatomic(_src), 1); + +#undef TP_PROTO +#define TP_PROTO(args...) args + +#undef TP_STRUCT__entry +#define TP_STRUCT__entry(args...) args + +#undef DECLARE_EVENT_CLASS +#define DECLARE_EVENT_CLASS(_name, _proto, _args, _tstruct, _assign, _print) \ +static inline size_t __event_get_size__##_name(size_t *__dynamic_len, _proto) \ +{ \ + size_t __event_len = 0; \ + unsigned int __dynamic_len_idx = 0; \ + \ + if (0) \ + (void) __dynamic_len_idx; /* don't warn if unused */ \ + _tstruct \ + return __event_len; \ +} + +#include TRACE_INCLUDE(TRACE_INCLUDE_FILE) + +/* + * Stage 7 of the trace events. + * + * Create static inline function that calculates event payload alignment. + */ + +#include "lttng-events-reset.h" /* Reset all macros within TRACE_EVENT */ + +/* Named field types must be defined in lttng-types.h */ + +#undef __field_full +#define __field_full(_type, _item, _order, _base) \ + __event_align = max_t(size_t, __event_align, lttng_alignof(_type)); + +#undef __array_enc_ext +#define __array_enc_ext(_type, _item, _length, _order, _base, _encoding) \ + __event_align = max_t(size_t, __event_align, lttng_alignof(_type)); + +#undef __dynamic_array_enc_ext +#define __dynamic_array_enc_ext(_type, _item, _length, _order, _base, _encoding)\ + __event_align = max_t(size_t, __event_align, lttng_alignof(u32)); \ + __event_align = max_t(size_t, __event_align, lttng_alignof(_type)); + +#undef __dynamic_array_enc_ext_2 +#define __dynamic_array_enc_ext_2(_type, _item, _length1, _length2, _order, _base, _encoding)\ + __dynamic_array_enc_ext(_type, _item, _length1 + _length2, _order, _base, _encoding) + +#undef __string +#define __string(_item, _src) + +#undef __string_from_user +#define __string_from_user(_item, _src) + +#undef TP_PROTO +#define TP_PROTO(args...) args + +#undef TP_STRUCT__entry +#define TP_STRUCT__entry(args...) args + +#undef DECLARE_EVENT_CLASS +#define DECLARE_EVENT_CLASS(_name, _proto, _args, _tstruct, _assign, _print) \ +static inline size_t __event_get_align__##_name(_proto) \ +{ \ + size_t __event_align = 1; \ + _tstruct \ + return __event_align; \ +} + +#include TRACE_INCLUDE(TRACE_INCLUDE_FILE) + + +/* + * Stage 8 of the trace events. + * + * Create structure declaration that allows the "assign" macros to access the + * field types. + */ + +#include "lttng-events-reset.h" /* Reset all macros within TRACE_EVENT */ + +/* Named field types must be defined in lttng-types.h */ + +#undef __field_full +#define __field_full(_type, _item, _order, _base) _type _item; + +#undef __array_enc_ext +#define __array_enc_ext(_type, _item, _length, _order, _base, _encoding) \ + _type _item; + +#undef __dynamic_array_enc_ext +#define __dynamic_array_enc_ext(_type, _item, _length, _order, _base, _encoding)\ + _type _item; + +#undef __dynamic_array_enc_ext_2 +#define __dynamic_array_enc_ext_2(_type, _item, _length1, _length2, _order, _base, _encoding)\ + __dynamic_array_enc_ext(_type, _item, _length1 + _length2, _order, _base, _encoding) + +#undef __string +#define __string(_item, _src) char _item; + +#undef __string_from_user +#define __string_from_user(_item, _src) \ + __string(_item, _src) + +#undef TP_STRUCT__entry +#define TP_STRUCT__entry(args...) args + +#undef DECLARE_EVENT_CLASS +#define DECLARE_EVENT_CLASS(_name, _proto, _args, _tstruct, _assign, _print) \ +struct __event_typemap__##_name { \ + _tstruct \ +}; + +#include TRACE_INCLUDE(TRACE_INCLUDE_FILE) + + +/* + * Stage 9 of the trace events. + * + * Create the probe function : call even size calculation and write event data + * into the buffer. + * + * We use both the field and assignment macros to write the fields in the order + * defined in the field declaration. The field declarations control the + * execution order, jumping to the appropriate assignment block. + */ + +#include "lttng-events-reset.h" /* Reset all macros within TRACE_EVENT */ + +#undef __field_full +#define __field_full(_type, _item, _order, _base) \ + goto __assign_##_item; \ +__end_field_##_item: + +#undef __array_enc_ext +#define __array_enc_ext(_type, _item, _length, _order, _base, _encoding)\ + goto __assign_##_item; \ +__end_field_##_item: + +#undef __dynamic_array_enc_ext +#define __dynamic_array_enc_ext(_type, _item, _length, _order, _base, _encoding)\ + goto __assign_##_item##_1; \ +__end_field_##_item##_1: \ + goto __assign_##_item##_2; \ +__end_field_##_item##_2: + +#undef __dynamic_array_enc_ext_2 +#define __dynamic_array_enc_ext_2(_type, _item, _length1, _length2, _order, _base, _encoding)\ + goto __assign_##_item##_1; \ +__end_field_##_item##_1: \ + goto __assign_##_item##_2; \ +__end_field_##_item##_2: \ + goto __assign_##_item##_3; \ +__end_field_##_item##_3: + +#undef __string +#define __string(_item, _src) \ + goto __assign_##_item; \ +__end_field_##_item: + +#undef __string_from_user +#define __string_from_user(_item, _src) \ + __string(_item, _src) + +/* + * Macros mapping tp_assign() to "=", tp_memcpy() to memcpy() and tp_strcpy() to + * strcpy(). + */ +#undef tp_assign +#define tp_assign(dest, src) \ +__assign_##dest: \ + { \ + __typeof__(__typemap.dest) __tmp = (src); \ + lib_ring_buffer_align_ctx(&__ctx, lttng_alignof(__tmp)); \ + __chan->ops->event_write(&__ctx, &__tmp, sizeof(__tmp));\ + } \ + goto __end_field_##dest; + +/* fixed length array memcpy */ +#undef tp_memcpy_gen +#define tp_memcpy_gen(write_ops, dest, src, len) \ +__assign_##dest: \ + if (0) \ + (void) __typemap.dest; \ + lib_ring_buffer_align_ctx(&__ctx, lttng_alignof(__typemap.dest)); \ + __chan->ops->write_ops(&__ctx, src, len); \ + goto __end_field_##dest; + +#undef tp_memcpy +#define tp_memcpy(dest, src, len) \ + tp_memcpy_gen(event_write, dest, src, len) + +#undef tp_memcpy_from_user +#define tp_memcpy_from_user(dest, src, len) \ + tp_memcpy_gen(event_write_from_user, dest, src, len) + +/* variable length sequence memcpy */ +#undef tp_memcpy_dyn_gen +#define tp_memcpy_dyn_gen(write_ops, dest, src) \ +__assign_##dest##_1: \ + { \ + u32 __tmpl = __dynamic_len[__dynamic_len_idx]; \ + lib_ring_buffer_align_ctx(&__ctx, lttng_alignof(u32)); \ + __chan->ops->event_write(&__ctx, &__tmpl, sizeof(u32)); \ + } \ + goto __end_field_##dest##_1; \ +__assign_##dest##_2: \ + lib_ring_buffer_align_ctx(&__ctx, lttng_alignof(__typemap.dest)); \ + __chan->ops->write_ops(&__ctx, src, \ + sizeof(__typemap.dest) * __get_dynamic_array_len(dest));\ + goto __end_field_##dest##_2; + +#undef tp_memcpy_dyn_gen_2 +#define tp_memcpy_dyn_gen_2(write_ops, dest, src1, src2) \ +__assign_##dest##_1: \ + { \ + u32 __tmpl = __dynamic_len[__dynamic_len_idx] \ + + __dynamic_len[__dynamic_len_idx + 1]; \ + lib_ring_buffer_align_ctx(&__ctx, lttng_alignof(u32)); \ + __chan->ops->event_write(&__ctx, &__tmpl, sizeof(u32)); \ + } \ + goto __end_field_##dest##_1; \ +__assign_##dest##_2: \ + lib_ring_buffer_align_ctx(&__ctx, lttng_alignof(__typemap.dest)); \ + __chan->ops->write_ops(&__ctx, src1, \ + sizeof(__typemap.dest) * __get_dynamic_array_len(dest));\ + goto __end_field_##dest##_2; \ +__assign_##dest##_3: \ + __chan->ops->write_ops(&__ctx, src2, \ + sizeof(__typemap.dest) * __get_dynamic_array_len(dest));\ + goto __end_field_##dest##_3; + +#undef tp_memcpy_dyn +#define tp_memcpy_dyn(dest, src) \ + tp_memcpy_dyn_gen(event_write, dest, src) + +#undef tp_memcpy_dyn_2 +#define tp_memcpy_dyn_2(dest, src1, src2) \ + tp_memcpy_dyn_gen_2(event_write, dest, src1, src2) + +#undef tp_memcpy_dyn_from_user +#define tp_memcpy_dyn_from_user(dest, src) \ + tp_memcpy_dyn_gen(event_write_from_user, dest, src) + +/* + * The string length including the final \0. + */ +#undef tp_copy_string_from_user +#define tp_copy_string_from_user(dest, src) \ + __assign_##dest: \ + { \ + size_t __ustrlen; \ + \ + if (0) \ + (void) __typemap.dest; \ + lib_ring_buffer_align_ctx(&__ctx, lttng_alignof(__typemap.dest));\ + __ustrlen = __get_dynamic_array_len(dest); \ + if (likely(__ustrlen > 1)) { \ + __chan->ops->event_write_from_user(&__ctx, src, \ + __ustrlen - 1); \ + } \ + __chan->ops->event_memset(&__ctx, 0, 1); \ + } \ + goto __end_field_##dest; +#undef tp_strcpy +#define tp_strcpy(dest, src) \ + tp_memcpy(dest, src, __get_dynamic_array_len(dest)) + +/* Named field types must be defined in lttng-types.h */ + +#undef __get_str +#define __get_str(field) field + +#undef __get_dynamic_array +#define __get_dynamic_array(field) field + +/* Beware: this get len actually consumes the len value */ +#undef __get_dynamic_array_len +#define __get_dynamic_array_len(field) __dynamic_len[__dynamic_len_idx++] + +#undef TP_PROTO +#define TP_PROTO(args...) args + +#undef TP_ARGS +#define TP_ARGS(args...) args + +#undef TP_STRUCT__entry +#define TP_STRUCT__entry(args...) args + +#undef TP_fast_assign +#define TP_fast_assign(args...) args + +/* + * For state dump, check that "session" argument (mandatory) matches the + * session this event belongs to. Ensures that we write state dump data only + * into the started session, not into all sessions. + */ +#ifdef TP_SESSION_CHECK +#define _TP_SESSION_CHECK(session, csession) (session == csession) +#else /* TP_SESSION_CHECK */ +#define _TP_SESSION_CHECK(session, csession) 1 +#endif /* TP_SESSION_CHECK */ + +/* + * __dynamic_len array length is twice the number of fields due to + * __dynamic_array_enc_ext_2() and tp_memcpy_dyn_2(), which are the + * worse case, needing 2 entries per field. + */ +#undef DECLARE_EVENT_CLASS +#define DECLARE_EVENT_CLASS(_name, _proto, _args, _tstruct, _assign, _print) \ +static void __event_probe__##_name(void *__data, _proto) \ +{ \ + struct lttng_event *__event = __data; \ + struct lttng_channel *__chan = __event->chan; \ + struct lib_ring_buffer_ctx __ctx; \ + size_t __event_len, __event_align; \ + size_t __dynamic_len_idx = 0; \ + size_t __dynamic_len[2 * ARRAY_SIZE(__event_fields___##_name)]; \ + struct __event_typemap__##_name __typemap; \ + int __ret; \ + \ + if (0) { \ + (void) __dynamic_len_idx; /* don't warn if unused */ \ + (void) __typemap; /* don't warn if unused */ \ + } \ + if (!_TP_SESSION_CHECK(session, __chan->session)) \ + return; \ + if (unlikely(!ACCESS_ONCE(__chan->session->active))) \ + return; \ + if (unlikely(!ACCESS_ONCE(__chan->enabled))) \ + return; \ + if (unlikely(!ACCESS_ONCE(__event->enabled))) \ + return; \ + __event_len = __event_get_size__##_name(__dynamic_len, _args); \ + __event_align = __event_get_align__##_name(_args); \ + lib_ring_buffer_ctx_init(&__ctx, __chan->chan, __event, __event_len, \ + __event_align, -1); \ + __ret = __chan->ops->event_reserve(&__ctx, __event->id); \ + if (__ret < 0) \ + return; \ + /* Control code (field ordering) */ \ + _tstruct \ + __chan->ops->event_commit(&__ctx); \ + return; \ + /* Copy code, steered by control code */ \ + _assign \ +} + +#undef DECLARE_EVENT_CLASS_NOARGS +#define DECLARE_EVENT_CLASS_NOARGS(_name, _tstruct, _assign, _print) \ +static void __event_probe__##_name(void *__data) \ +{ \ + struct lttng_event *__event = __data; \ + struct lttng_channel *__chan = __event->chan; \ + struct lib_ring_buffer_ctx __ctx; \ + size_t __event_len, __event_align; \ + int __ret; \ + \ + if (!_TP_SESSION_CHECK(session, __chan->session)) \ + return; \ + if (unlikely(!ACCESS_ONCE(__chan->session->active))) \ + return; \ + if (unlikely(!ACCESS_ONCE(__chan->enabled))) \ + return; \ + if (unlikely(!ACCESS_ONCE(__event->enabled))) \ + return; \ + __event_len = 0; \ + __event_align = 1; \ + lib_ring_buffer_ctx_init(&__ctx, __chan->chan, __event, __event_len, \ + __event_align, -1); \ + __ret = __chan->ops->event_reserve(&__ctx, __event->id); \ + if (__ret < 0) \ + return; \ + /* Control code (field ordering) */ \ + _tstruct \ + __chan->ops->event_commit(&__ctx); \ + return; \ + /* Copy code, steered by control code */ \ + _assign \ +} + +#include TRACE_INCLUDE(TRACE_INCLUDE_FILE) + +/* + * Stage 10 of the trace events. + * + * Register/unregister probes at module load/unload. + */ + +#include "lttng-events-reset.h" /* Reset all macros within TRACE_EVENT */ + +#define TP_ID1(_token, _system) _token##_system +#define TP_ID(_token, _system) TP_ID1(_token, _system) +#define module_init_eval1(_token, _system) module_init(_token##_system) +#define module_init_eval(_token, _system) module_init_eval1(_token, _system) +#define module_exit_eval1(_token, _system) module_exit(_token##_system) +#define module_exit_eval(_token, _system) module_exit_eval1(_token, _system) + +#ifndef TP_MODULE_NOINIT +static int TP_ID(__lttng_events_init__, TRACE_SYSTEM)(void) +{ + wrapper_vmalloc_sync_all(); + return lttng_probe_register(&TP_ID(__probe_desc___, TRACE_SYSTEM)); +} + +static void TP_ID(__lttng_events_exit__, TRACE_SYSTEM)(void) +{ + lttng_probe_unregister(&TP_ID(__probe_desc___, TRACE_SYSTEM)); +} + +#ifndef TP_MODULE_NOAUTOLOAD +module_init_eval(__lttng_events_init__, TRACE_SYSTEM); +module_exit_eval(__lttng_events_exit__, TRACE_SYSTEM); +#endif + +#endif + +#undef module_init_eval +#undef module_exit_eval +#undef TP_ID1 +#undef TP_ID + +#undef TP_PROTO +#undef TP_ARGS +#undef TRACE_EVENT_FLAGS --- linux-3.11.0.orig/ubuntu/lttng-modules/wrapper/vmalloc.h +++ linux-3.11.0/ubuntu/lttng-modules/wrapper/vmalloc.h @@ -0,0 +1,63 @@ +#ifndef _LTTNG_WRAPPER_VMALLOC_H +#define _LTTNG_WRAPPER_VMALLOC_H + +/* + * wrapper/vmalloc.h + * + * wrapper around vmalloc_sync_all. Using KALLSYMS to get its address when + * available, else we need to have a kernel that exports this function to GPL + * modules. + * + * Copyright (C) 2011-2012 Mathieu Desnoyers + * + * 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; only + * version 2.1 of the License. + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifdef CONFIG_KALLSYMS + +#include +#include "kallsyms.h" + +static inline +void wrapper_vmalloc_sync_all(void) +{ + void (*vmalloc_sync_all_sym)(void); + + vmalloc_sync_all_sym = (void *) kallsyms_lookup_funcptr("vmalloc_sync_all"); + if (vmalloc_sync_all_sym) { + vmalloc_sync_all_sym(); + } else { +#ifdef CONFIG_X86 + /* + * Only x86 needs vmalloc_sync_all to make sure LTTng does not + * trigger recursive page faults. + */ + printk(KERN_WARNING "LTTng: vmalloc_sync_all symbol lookup failed.\n"); + printk(KERN_WARNING "Page fault handler and NMI tracing might trigger faults.\n"); +#endif + } +} +#else + +#include + +static inline +void wrapper_vmalloc_sync_all(void) +{ + return vmalloc_sync_all(); +} +#endif + +#endif /* _LTTNG_WRAPPER_VMALLOC_H */ --- linux-3.11.0.orig/ubuntu/lttng-modules/wrapper/nsproxy.h +++ linux-3.11.0/ubuntu/lttng-modules/wrapper/nsproxy.h @@ -0,0 +1,42 @@ +#ifndef _LTTNG_WRAPPER_NSPROXY_H +#define _LTTNG_WRAPPER_NSPROXY_H + +/* + * wrapper/nsproxy.h + * + * Copyright (C) 2011-2012 Mathieu Desnoyers + * + * 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; only + * version 2.1 of the License. + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include +#include + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,11,0)) +static inline +struct pid_namespace *lttng_get_proxy_pid_ns(struct nsproxy *proxy) +{ + return proxy->pid_ns_for_children; +} +#else +static inline +struct pid_namespace *lttng_get_proxy_pid_ns(struct nsproxy *proxy) +{ + return proxy->pid_ns; +} +#endif + + +#endif /* _LTTNG_WRAPPER_NSPROXY_H */ --- linux-3.11.0.orig/ubuntu/lttng-modules/wrapper/ftrace.h +++ linux-3.11.0/ubuntu/lttng-modules/wrapper/ftrace.h @@ -0,0 +1,84 @@ +#ifndef _LTTNG_WRAPPER_FTRACE_H +#define _LTTNG_WRAPPER_FTRACE_H + +/* + * wrapper/ftrace.h + * + * wrapper around vmalloc_sync_all. Using KALLSYMS to get its address when + * available, else we need to have a kernel that exports this function to GPL + * modules. + * + * Copyright (C) 2011-2012 Mathieu Desnoyers + * + * 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; only + * version 2.1 of the License. + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include + +#ifdef CONFIG_KALLSYMS + +#include +#include "kallsyms.h" + +static inline +int wrapper_register_ftrace_function_probe(char *glob, + struct ftrace_probe_ops *ops, void *data) +{ + int (*register_ftrace_function_probe_sym)(char *glob, + struct ftrace_probe_ops *ops, void *data); + + register_ftrace_function_probe_sym = (void *) kallsyms_lookup_funcptr("register_ftrace_function_probe"); + if (register_ftrace_function_probe_sym) { + return register_ftrace_function_probe_sym(glob, ops, data); + } else { + printk(KERN_WARNING "LTTng: register_ftrace_function_probe symbol lookup failed.\n"); + return -EINVAL; + } +} + +static inline +void wrapper_unregister_ftrace_function_probe(char *glob, + struct ftrace_probe_ops *ops, void *data) +{ + void (*unregister_ftrace_function_probe_sym)(char *glob, + struct ftrace_probe_ops *ops, void *data); + + unregister_ftrace_function_probe_sym = (void *) kallsyms_lookup_funcptr("unregister_ftrace_function_probe"); + if (unregister_ftrace_function_probe_sym) { + unregister_ftrace_function_probe_sym(glob, ops, data); + } else { + printk(KERN_WARNING "LTTng: unregister_ftrace_function_probe symbol lookup failed.\n"); + WARN_ON(1); + } +} + +#else + +static inline +int wrapper_register_ftrace_function_probe(char *glob, + struct ftrace_probe_ops *ops, void *data) +{ + return register_ftrace_function_probe(glob, ops, data); +} + +static inline +void wrapper_unregister_ftrace_function_probe(char *glob, + struct ftrace_probe_ops *ops, void *data) +{ + return unregister_ftrace_function_probe(glob, ops, data); +} +#endif + +#endif /* _LTTNG_WRAPPER_FTRACE_H */ --- linux-3.11.0.orig/ubuntu/lttng-modules/wrapper/splice.c +++ linux-3.11.0/ubuntu/lttng-modules/wrapper/splice.c @@ -0,0 +1,60 @@ +/* + * wrapper/splice.c + * + * wrapper around splice_to_pipe. Using KALLSYMS to get its address when + * available, else we need to have a kernel that exports this function to GPL + * modules. + * + * Copyright (C) 2011-2012 Mathieu Desnoyers + * + * 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; only + * version 2.1 of the License. + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifdef CONFIG_KALLSYMS + +#include +#include +#include +#include "kallsyms.h" + +static +ssize_t (*splice_to_pipe_sym)(struct pipe_inode_info *pipe, + struct splice_pipe_desc *spd); + +ssize_t wrapper_splice_to_pipe(struct pipe_inode_info *pipe, + struct splice_pipe_desc *spd) +{ + if (!splice_to_pipe_sym) + splice_to_pipe_sym = (void *) kallsyms_lookup_funcptr("splice_to_pipe"); + if (splice_to_pipe_sym) { + return splice_to_pipe_sym(pipe, spd); + } else { + printk(KERN_WARNING "LTTng: splice_to_pipe symbol lookup failed.\n"); + return -ENOSYS; + } +} + +#else + +#include +#include + +ssize_t wrapper_splice_to_pipe(struct pipe_inode_info *pipe, + struct splice_pipe_desc *spd) +{ + return splice_to_pipe(pipe, spd); +} + +#endif --- linux-3.11.0.orig/ubuntu/lttng-modules/wrapper/random.h +++ linux-3.11.0/ubuntu/lttng-modules/wrapper/random.h @@ -0,0 +1,32 @@ +#ifndef _LTTNG_WRAPPER_RANDOM_H +#define _LTTNG_WRAPPER_RANDOM_H + +/* + * wrapper/random.h + * + * wrapper around bootid read. Using KALLSYMS to get its address when + * available, else we need to have a kernel that exports this function to GPL + * modules. + * + * Copyright (C) 2011-2012 Mathieu Desnoyers + * + * 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; only + * version 2.1 of the License. + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#define BOOT_ID_LEN 37 + +int wrapper_get_bootid(char *bootid); + +#endif /* _LTTNG_WRAPPER_RANDOM_H */ --- linux-3.11.0.orig/ubuntu/lttng-modules/wrapper/poll.h +++ linux-3.11.0/ubuntu/lttng-modules/wrapper/poll.h @@ -0,0 +1,33 @@ +#ifndef _LTTNG_WRAPPER_POLL_H +#define _LTTNG_WRAPPER_POLL_H + +/* + * wrapper/poll.h + * + * Copyright (C) 2011-2012 Mathieu Desnoyers + * + * 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; only + * version 2.1 of the License. + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include + +/* + * Note: poll_wait_set_exclusive() is defined as no-op. Thundering herd + * effect can be noticed with large number of consumer threads. + */ + +#define poll_wait_set_exclusive(poll_table) + +#endif /* _LTTNG_WRAPPER_POLL_H */ --- linux-3.11.0.orig/ubuntu/lttng-modules/wrapper/irqdesc.h +++ linux-3.11.0/ubuntu/lttng-modules/wrapper/irqdesc.h @@ -0,0 +1,33 @@ +#ifndef _LTTNG_WRAPPER_IRQDESC_H +#define _LTTNG_WRAPPER_IRQDESC_H + +/* + * wrapper/irqdesc.h + * + * wrapper around irq_to_desc. Using KALLSYMS to get its address when + * available, else we need to have a kernel that exports this function to GPL + * modules. + * + * Copyright (C) 2011-2012 Mathieu Desnoyers + * + * 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; only + * version 2.1 of the License. + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include +#include + +struct irq_desc *wrapper_irq_to_desc(unsigned int irq); + +#endif /* _LTTNG_WRAPPER_IRQDESC_H */ --- linux-3.11.0.orig/ubuntu/lttng-modules/wrapper/tracepoint.h +++ linux-3.11.0/ubuntu/lttng-modules/wrapper/tracepoint.h @@ -0,0 +1,44 @@ +#ifndef _LTTNG_WRAPPER_TRACEPOINT_H +#define _LTTNG_WRAPPER_TRACEPOINT_H + +/* + * wrapper/tracepoint.h + * + * wrapper around DECLARE_EVENT_CLASS. + * + * Copyright (C) 2011-2012 Mathieu Desnoyers + * + * 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; only + * version 2.1 of the License. + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include +#include + +#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,35)) + +#define DECLARE_EVENT_CLASS(name, proto, args, tstruct, assign, print) + +#endif + +#ifndef HAVE_KABI_2635_TRACEPOINT + +#define kabi_2635_tracepoint_probe_register tracepoint_probe_register +#define kabi_2635_tracepoint_probe_unregister tracepoint_probe_unregister +#define kabi_2635_tracepoint_probe_register_noupdate tracepoint_probe_register_noupdate +#define kabi_2635_tracepoint_probe_unregister_noupdate tracepoint_probe_unregister_noupdate + +#endif /* HAVE_KABI_2635_TRACEPOINT */ + +#endif /* _LTTNG_WRAPPER_TRACEPOINT_H */ --- linux-3.11.0.orig/ubuntu/lttng-modules/wrapper/spinlock.h +++ linux-3.11.0/ubuntu/lttng-modules/wrapper/spinlock.h @@ -0,0 +1,47 @@ +#ifndef _LTTNG_WRAPPER_SPINLOCK_H +#define _LTTNG_WRAPPER_SPINLOCK_H + +/* + * wrapper/spinlock.h + * + * Copyright (C) 2011-2012 Mathieu Desnoyers + * + * 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; only + * version 2.1 of the License. + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include + +#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,33)) + +#include + +#define raw_spin_lock_init(lock) \ + do { \ + raw_spinlock_t __lock = __RAW_SPIN_LOCK_UNLOCKED; \ + memcpy(lock, &__lock, sizeof(lock)); \ + } while (0) + +#define raw_spin_is_locked(lock) __raw_spin_is_locked(lock) + +#define wrapper_desc_spin_lock(lock) spin_lock(lock) +#define wrapper_desc_spin_unlock(lock) spin_unlock(lock) + +#else + +#define wrapper_desc_spin_lock(lock) raw_spin_lock(lock) +#define wrapper_desc_spin_unlock(lock) raw_spin_unlock(lock) + +#endif +#endif /* _LTTNG_WRAPPER_SPINLOCK_H */ --- linux-3.11.0.orig/ubuntu/lttng-modules/wrapper/fdtable.h +++ linux-3.11.0/ubuntu/lttng-modules/wrapper/fdtable.h @@ -0,0 +1,44 @@ +#ifndef _LTTNG_WRAPPER_FDTABLE_H +#define _LTTNG_WRAPPER_FDTABLE_H + +/* + * wrapper/fdtable.h + * + * Copyright (C) 2013 Mathieu Desnoyers + * + * 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; only + * version 2.1 of the License. + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include +#include + +#if (LINUX_VERSION_CODE < KERNEL_VERSION(3,7,0)) + +int lttng_iterate_fd(struct files_struct *files, + unsigned int first, + int (*cb)(const void *, struct file *, unsigned int), + const void *ctx); + +#else + +/* + * iterate_fd() appeared at commit + * c3c073f808b22dfae15ef8412b6f7b998644139a in the Linux kernel (first + * released kernel: v3.7). + */ +#define lttng_iterate_fd iterate_fd + +#endif +#endif /* _LTTNG_WRAPPER_FDTABLE_H */ --- linux-3.11.0.orig/ubuntu/lttng-modules/wrapper/splice.h +++ linux-3.11.0/ubuntu/lttng-modules/wrapper/splice.h @@ -0,0 +1,37 @@ +#ifndef _LTTNG_WRAPPER_SPLICE_H +#define _LTTNG_WRAPPER_SPLICE_H + +/* + * wrapper/splice.h + * + * wrapper around splice_to_pipe. Using KALLSYMS to get its address when + * available, else we need to have a kernel that exports this function to GPL + * modules. + * + * Copyright (C) 2011-2012 Mathieu Desnoyers + * + * 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; only + * version 2.1 of the License. + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include + +ssize_t wrapper_splice_to_pipe(struct pipe_inode_info *pipe, + struct splice_pipe_desc *spd); + +#ifndef PIPE_DEF_BUFFERS +#define PIPE_DEF_BUFFERS 16 +#endif + +#endif /* _LTTNG_WRAPPER_SPLICE_H */ --- linux-3.11.0.orig/ubuntu/lttng-modules/wrapper/perf.h +++ linux-3.11.0/ubuntu/lttng-modules/wrapper/perf.h @@ -0,0 +1,71 @@ +#ifndef _LTTNG_WRAPPER_PERF_H +#define _LTTNG_WRAPPER_PERF_H + +/* + * wrapper/perf.h + * + * Copyright (C) 2010-2012 Mathieu Desnoyers + * + * 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; only + * version 2.1 of the License. + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include + +#if defined(CONFIG_PERF_EVENTS) && (LINUX_VERSION_CODE >= KERNEL_VERSION(3,0,99)) +static inline struct perf_event * +wrapper_perf_event_create_kernel_counter(struct perf_event_attr *attr, + int cpu, + struct task_struct *task, + perf_overflow_handler_t callback) +{ + return perf_event_create_kernel_counter(attr, cpu, task, callback, NULL); +} +#else /* defined(CONFIG_PERF_EVENTS) && (LINUX_VERSION_CODE >= KERNEL_VERSION(3,0,99)) */ + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,37)) +static inline struct perf_event * +wrapper_perf_event_create_kernel_counter(struct perf_event_attr *attr, + int cpu, + struct task_struct *task, + perf_overflow_handler_t callback) +{ + return perf_event_create_kernel_counter(attr, cpu, task, callback); +} +#else /* (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,37)) */ +static inline struct perf_event * +wrapper_perf_event_create_kernel_counter(struct perf_event_attr *attr, + int cpu, + struct task_struct *task, + perf_overflow_handler_t callback) +{ + pid_t pid; + + if (!task) + pid = -1; + else + pid = task->pid; + + return perf_event_create_kernel_counter(attr, cpu, pid, callback); +} + +#endif /* (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,37)) */ + +#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,36)) +#define local64_read(l) atomic64_read(l) +#endif + +#endif /* defined(CONFIG_PERF_EVENTS) && (LINUX_VERSION_CODE >= KERNEL_VERSION(3,0,99)) */ + +#endif /* _LTTNG_WRAPPER_PERF_H */ --- linux-3.11.0.orig/ubuntu/lttng-modules/wrapper/writeback.h +++ linux-3.11.0/ubuntu/lttng-modules/wrapper/writeback.h @@ -0,0 +1,61 @@ +#ifndef _LTTNG_WRAPPER_WRITEBACK_H +#define _LTTNG_WRAPPER_WRITEBACK_H + +/* + * wrapper/writeback.h + * + * wrapper around global_dirty_limit read. Using KALLSYMS with KALLSYMS_ALL + * to get its address when available, else we need to have a kernel that + * exports this variable to GPL modules. + * + * Copyright (C) 2013 Mentor Graphics Corp. + * + * 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; only + * version 2.1 of the License. + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifdef CONFIG_KALLSYMS_ALL + +#include +#include "kallsyms.h" + +static unsigned long *global_dirty_limit_sym; + +static inline +unsigned long wrapper_global_dirty_limit(void) +{ + if (!global_dirty_limit_sym) + global_dirty_limit_sym = + (void *) kallsyms_lookup_dataptr("global_dirty_limit"); + if (global_dirty_limit_sym) { + return *global_dirty_limit_sym; + } else { + printk(KERN_WARNING "LTTng: global_dirty_limit symbol lookup failed.\n"); + return 0; + } +} + +#else + +#include + +static inline +unsigned long wrapper_global_dirty_limit(void) +{ + return global_dirty_limit; +} + +#endif + +#endif /* _LTTNG_WRAPPER_WRITEBACK_H */ --- linux-3.11.0.orig/ubuntu/lttng-modules/wrapper/trace-clock.h +++ linux-3.11.0/ubuntu/lttng-modules/wrapper/trace-clock.h @@ -0,0 +1,98 @@ +#ifndef _LTTNG_TRACE_CLOCK_H +#define _LTTNG_TRACE_CLOCK_H + +/* + * wrapper/trace-clock.h + * + * Contains LTTng trace clock mapping to LTTng trace clock or mainline monotonic + * clock. This wrapper depends on CONFIG_HIGH_RES_TIMERS=y. + * + * Copyright (C) 2011-2012 Mathieu Desnoyers + * + * 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; only + * version 2.1 of the License. + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifdef CONFIG_HAVE_TRACE_CLOCK +#include +#else /* CONFIG_HAVE_TRACE_CLOCK */ + +#include +#include +#include +#include +#include +#include "../lttng-kernel-version.h" +#include "random.h" + +static inline u64 trace_clock_monotonic_wrapper(void) +{ + ktime_t ktime; + + /* + * Refuse to trace from NMIs with this wrapper, because an NMI could + * nest over the xtime write seqlock and deadlock. + */ + if (in_nmi()) + return (u64) -EIO; + + ktime = ktime_get(); + return ktime_to_ns(ktime); +} + +static inline u32 trace_clock_read32(void) +{ + return (u32) trace_clock_monotonic_wrapper(); +} + +static inline u64 trace_clock_read64(void) +{ + return (u64) trace_clock_monotonic_wrapper(); +} + +static inline u64 trace_clock_freq(void) +{ + return (u64) NSEC_PER_SEC; +} + +static inline int trace_clock_uuid(char *uuid) +{ + return wrapper_get_bootid(uuid); +} + +static inline int get_trace_clock(void) +{ + /* + * LTTng: Using mainline kernel monotonic clock. NMIs will not be + * traced, and expect significant performance degradation compared to + * the LTTng trace clocks. Integration of the LTTng 0.x trace clocks + * into LTTng 2.0 is planned in a near future. + */ + printk(KERN_WARNING "LTTng: Using mainline kernel monotonic clock.\n"); + printk(KERN_WARNING " * NMIs will not be traced,\n"); + printk(KERN_WARNING " * expect significant performance degradation compared to the\n"); + printk(KERN_WARNING " LTTng trace clocks.\n"); + printk(KERN_WARNING "Integration of the LTTng 0.x trace clocks into LTTng 2.0 is planned\n"); + printk(KERN_WARNING "in a near future.\n"); + + return 0; +} + +static inline void put_trace_clock(void) +{ +} + +#endif /* CONFIG_HAVE_TRACE_CLOCK */ + +#endif /* _LTTNG_TRACE_CLOCK_H */ --- linux-3.11.0.orig/ubuntu/lttng-modules/wrapper/inline_memcpy.h +++ linux-3.11.0/ubuntu/lttng-modules/wrapper/inline_memcpy.h @@ -0,0 +1,23 @@ +/* + * wrapper/inline_memcpy.h + * + * Copyright (C) 2010-2012 Mathieu Desnoyers + * + * 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; only + * version 2.1 of the License. + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#if !defined(__HAVE_ARCH_INLINE_MEMCPY) && !defined(inline_memcpy) +#define inline_memcpy memcpy +#endif --- linux-3.11.0.orig/ubuntu/lttng-modules/wrapper/random.c +++ linux-3.11.0/ubuntu/lttng-modules/wrapper/random.c @@ -0,0 +1,77 @@ +/* + * wrapper/random.c + * + * wrapper around bootid read. Using KALLSYMS to get its address when + * available, else we need to have a kernel that exports this function to GPL + * modules. + * + * Copyright (C) 2011-2012 Mathieu Desnoyers + * + * 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; only + * version 2.1 of the License. + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/* boot_id depends on sysctl */ +#if defined(CONFIG_SYSCTL) + +#include +#include +#include +#include +#include "random.h" + +/* + * Returns string boot id. + */ +int wrapper_get_bootid(char *bootid) +{ + struct file *file; + int ret; + ssize_t len; + mm_segment_t old_fs; + + file = filp_open("/proc/sys/kernel/random/boot_id", O_RDONLY, 0); + if (IS_ERR(file)) + return PTR_ERR(file); + + old_fs = get_fs(); + set_fs(KERNEL_DS); + + if (!file->f_op || !file->f_op->read) { + ret = -EINVAL; + goto end; + } + + len = file->f_op->read(file, bootid, BOOT_ID_LEN - 1, &file->f_pos); + if (len != BOOT_ID_LEN - 1) { + ret = -EINVAL; + goto end; + } + + bootid[BOOT_ID_LEN - 1] = '\0'; + ret = 0; +end: + set_fs(old_fs); + filp_close(file, current->files); + return ret; +} + +#else + +int wrapper_get_bootid(char *bootid) +{ + return -ENOSYS; +} + +#endif --- linux-3.11.0.orig/ubuntu/lttng-modules/wrapper/uuid.h +++ linux-3.11.0/ubuntu/lttng-modules/wrapper/uuid.h @@ -0,0 +1,43 @@ +#ifndef _LTTNG_WRAPPER_UUID_H +#define _LTTNG_WRAPPER_UUID_H + +/* + * wrapper/uuid.h + * + * Copyright (C) 2011-2012 Mathieu Desnoyers + * + * 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; only + * version 2.1 of the License. + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,35)) +#include +#else + +#include + +typedef struct { + __u8 b[16]; +} uuid_le; + +static inline +void uuid_le_gen(uuid_le *u) +{ + generate_random_uuid(u->b); +} + +#endif +#endif /* _LTTNG_WRAPPER_UUID_H */ --- linux-3.11.0.orig/ubuntu/lttng-modules/wrapper/irqdesc.c +++ linux-3.11.0/ubuntu/lttng-modules/wrapper/irqdesc.c @@ -0,0 +1,58 @@ +/* + * wrapper/irqdesc.c + * + * wrapper around irq_to_desc. Using KALLSYMS to get its address when + * available, else we need to have a kernel that exports this function to GPL + * modules. + * + * Copyright (C) 2011-2012 Mathieu Desnoyers + * + * 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; only + * version 2.1 of the License. + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifdef CONFIG_KALLSYMS + +#include +#include +#include +#include "kallsyms.h" +#include "irqdesc.h" + +static +struct irq_desc *(*irq_to_desc_sym)(unsigned int irq); + +struct irq_desc *wrapper_irq_to_desc(unsigned int irq) +{ + if (!irq_to_desc_sym) + irq_to_desc_sym = (void *) kallsyms_lookup_funcptr("irq_to_desc"); + if (irq_to_desc_sym) { + return irq_to_desc_sym(irq); + } else { + printk(KERN_WARNING "LTTng: irq_to_desc symbol lookup failed.\n"); + return NULL; + } +} + +#else + +#include +#include + +struct irq_desc *wrapper_irq_to_desc(unsigned int irq) +{ + return irq_to_desc(irq); +} + +#endif --- linux-3.11.0.orig/ubuntu/lttng-modules/wrapper/kallsyms.h +++ linux-3.11.0/ubuntu/lttng-modules/wrapper/kallsyms.h @@ -0,0 +1,51 @@ +#ifndef _LTTNG_WRAPPER_KALLSYMS_H +#define _LTTNG_WRAPPER_KALLSYMS_H + +/* + * wrapper/kallsyms.h + * + * wrapper around kallsyms_lookup_name. Implements arch-dependent code for + * arches where the address of the start of the function body is different + * from the pointer which can be used to call the function, e.g. ARM THUMB2. + * + * Copyright (C) 2011 Avik Sil (avik.sil@linaro.org) + * Copyright (C) 2011-2012 Mathieu Desnoyers + * + * 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; only + * version 2.1 of the License. + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include + +static inline +unsigned long kallsyms_lookup_funcptr(const char *name) +{ + unsigned long addr; + + addr = kallsyms_lookup_name(name); +#ifdef CONFIG_ARM +#ifdef CONFIG_THUMB2_KERNEL + if (addr) + addr |= 1; /* set bit 0 in address for thumb mode */ +#endif +#endif + return addr; +} + +static inline +unsigned long kallsyms_lookup_dataptr(const char *name) +{ + return kallsyms_lookup_name(name); +} +#endif /* _LTTNG_WRAPPER_KALLSYMS_H */ --- linux-3.11.0.orig/ubuntu/lttng-modules/wrapper/fdtable.c +++ linux-3.11.0/ubuntu/lttng-modules/wrapper/fdtable.c @@ -0,0 +1,57 @@ +/* + * wrapper/fdtable.c + * + * Copyright (C) 2013 Mathieu Desnoyers + * + * 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; only + * version 2.1 of the License. + * + * 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 Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include +#include +#include "fdtable.h" + +#if (LINUX_VERSION_CODE < KERNEL_VERSION(3,7,0)) + +/* + * Reimplementation of iterate_fd() for kernels between 2.6.32 and 3.6 + * (inclusive). + */ +int lttng_iterate_fd(struct files_struct *files, + unsigned int first, + int (*cb)(const void *, struct file *, unsigned int), + const void *ctx) +{ + struct fdtable *fdt; + struct file *filp; + unsigned int i; + int res = 0; + + if (!files) + return 0; + spin_lock(&files->file_lock); + fdt = files_fdtable(files); + for (i = 0; i < fdt->max_fds; i++) { + filp = fcheck_files(files, i); + if (!filp) + continue; + res = cb(ctx, filp, i); + if (res) + break; + } + spin_unlock(&files->file_lock); + return res; +} + +#endif --- linux-3.11.0.orig/ubuntu/lttng-modules/wrapper/ringbuffer/backend.h +++ linux-3.11.0/ubuntu/lttng-modules/wrapper/ringbuffer/backend.h @@ -0,0 +1 @@ +#include "../../lib/ringbuffer/backend.h" --- linux-3.11.0.orig/ubuntu/lttng-modules/wrapper/ringbuffer/frontend_api.h +++ linux-3.11.0/ubuntu/lttng-modules/wrapper/ringbuffer/frontend_api.h @@ -0,0 +1 @@ +#include "../../lib/ringbuffer/frontend_api.h" --- linux-3.11.0.orig/ubuntu/lttng-modules/wrapper/ringbuffer/vfs.h +++ linux-3.11.0/ubuntu/lttng-modules/wrapper/ringbuffer/vfs.h @@ -0,0 +1 @@ +#include "../../lib/ringbuffer/vfs.h" --- linux-3.11.0.orig/ubuntu/lttng-modules/wrapper/ringbuffer/frontend_internal.h +++ linux-3.11.0/ubuntu/lttng-modules/wrapper/ringbuffer/frontend_internal.h @@ -0,0 +1 @@ +#include "../../lib/ringbuffer/frontend_internal.h" --- linux-3.11.0.orig/ubuntu/lttng-modules/wrapper/ringbuffer/iterator.h +++ linux-3.11.0/ubuntu/lttng-modules/wrapper/ringbuffer/iterator.h @@ -0,0 +1 @@ +#include "../../lib/ringbuffer/iterator.h" --- linux-3.11.0.orig/ubuntu/lttng-modules/wrapper/ringbuffer/api.h +++ linux-3.11.0/ubuntu/lttng-modules/wrapper/ringbuffer/api.h @@ -0,0 +1 @@ +#include "../../lib/ringbuffer/api.h" --- linux-3.11.0.orig/ubuntu/lttng-modules/wrapper/ringbuffer/vatomic.h +++ linux-3.11.0/ubuntu/lttng-modules/wrapper/ringbuffer/vatomic.h @@ -0,0 +1 @@ +#include "../../lib/ringbuffer/vatomic.h" --- linux-3.11.0.orig/ubuntu/lttng-modules/wrapper/ringbuffer/backend_types.h +++ linux-3.11.0/ubuntu/lttng-modules/wrapper/ringbuffer/backend_types.h @@ -0,0 +1 @@ +#include "../../lib/ringbuffer/backend_types.h" --- linux-3.11.0.orig/ubuntu/lttng-modules/wrapper/ringbuffer/config.h +++ linux-3.11.0/ubuntu/lttng-modules/wrapper/ringbuffer/config.h @@ -0,0 +1 @@ +#include "../../lib/ringbuffer/config.h" --- linux-3.11.0.orig/ubuntu/lttng-modules/wrapper/ringbuffer/frontend.h +++ linux-3.11.0/ubuntu/lttng-modules/wrapper/ringbuffer/frontend.h @@ -0,0 +1 @@ +#include "../../lib/ringbuffer/frontend.h" --- linux-3.11.0.orig/ubuntu/lttng-modules/wrapper/ringbuffer/nohz.h +++ linux-3.11.0/ubuntu/lttng-modules/wrapper/ringbuffer/nohz.h @@ -0,0 +1 @@ +#include "../../lib/ringbuffer/nohz.h" --- linux-3.11.0.orig/ubuntu/lttng-modules/wrapper/ringbuffer/frontend_types.h +++ linux-3.11.0/ubuntu/lttng-modules/wrapper/ringbuffer/frontend_types.h @@ -0,0 +1 @@ +#include "../../lib/ringbuffer/frontend_types.h" --- linux-3.11.0.orig/ubuntu/lttng-modules/wrapper/ringbuffer/backend_internal.h +++ linux-3.11.0/ubuntu/lttng-modules/wrapper/ringbuffer/backend_internal.h @@ -0,0 +1,2 @@ +#include "../../wrapper/inline_memcpy.h" +#include "../../lib/ringbuffer/backend_internal.h" --- linux-3.11.0.orig/ubuntu/dm-raid4-5/dm-memcache.h +++ linux-3.11.0/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-3.11.0.orig/ubuntu/dm-raid4-5/dm-region-hash.c +++ linux-3.11.0/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-3.11.0.orig/ubuntu/dm-raid4-5/dm-raid4-5.h +++ linux-3.11.0/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-3.11.0.orig/ubuntu/dm-raid4-5/Makefile +++ linux-3.11.0/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-3.11.0.orig/ubuntu/dm-raid4-5/Kconfig +++ linux-3.11.0/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 + default m + ---help--- + A target that supports RAID4 and RAID5 mappings. --- linux-3.11.0.orig/ubuntu/dm-raid4-5/dm-message.h +++ linux-3.11.0/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-3.11.0.orig/ubuntu/dm-raid4-5/dm-region-hash.h +++ linux-3.11.0/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-3.11.0.orig/ubuntu/dm-raid4-5/dm-message.c +++ linux-3.11.0/ubuntu/dm-raid4-5/dm-message.c @@ -0,0 +1,184 @@ +/* + * 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 +#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-3.11.0.orig/ubuntu/dm-raid4-5/dm-memcache.c +++ linux-3.11.0/ubuntu/dm-raid4-5/dm-memcache.c @@ -0,0 +1,303 @@ +/* + * 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 +#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-3.11.0.orig/ubuntu/dm-raid4-5/dm-raid4-5.c +++ linux-3.11.0/ubuntu/dm-raid4-5/dm-raid4-5.c @@ -0,0 +1,4536 @@ +/*[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 +#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. */ +}; + +/* + * This does not work anymore with __REQ_* values being enums + * +#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 dm45_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 = dm45_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(); + 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(); + 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); +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); + } +} + +/* + * 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); +} + +/* 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; + struct blk_plug plug; + + /* + * 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. */ + blk_start_plug(&plug); + do_recovery(rs); + blk_finish_plug(&plug); /* Unplug the queue */ + + /* 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); + + blk_start_plug(&plug); + 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. */ + blk_finish_plug(&plug); /* Unplug the queue */ + 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->max_io_len = 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) +{ + /* 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 void raid_status(struct dm_target *ti, status_type_t type, + unsigned status_flags, 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); + } +} + +/* + * 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-3.11.0.orig/ubuntu/dm-raid4-5/BOM +++ linux-3.11.0/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-3.11.0.orig/ubuntu/dm-raid4-5/dm-raid45.h +++ linux-3.11.0/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-3.11.0.orig/ubuntu/aufs/i_op_add.c +++ linux-3.11.0/ubuntu/aufs/i_op_add.c @@ -0,0 +1,739 @@ +/* + * Copyright (C) 2005-2013 Junjiro R. Okajima + * + * This program, aufs is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public 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 = au_br_mnt(br) + }; + 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 { + umode_t mode; + bool want_excl; + } c; + struct { + const char *symname; + } s; + struct { + umode_t 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 dentry *wh_dentry, *parent; + struct inode *h_dir; + /* to reuduce stack size */ + struct { + struct au_dtime dt; + struct au_pin pin; + struct path h_path; + struct au_wr_dir_args wr_dir_args; + } *a; + + AuDbg("%.*s\n", AuDLNPair(dentry)); + IMustLock(dir); + + err = -ENOMEM; + a = kmalloc(sizeof(*a), GFP_NOFS); + if (unlikely(!a)) + goto out; + a->wr_dir_args.force_btgt = -1; + a->wr_dir_args.flags = AuWrDir_ADD_ENTRY; + + parent = dentry->d_parent; /* dir inode is locked */ + 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; + di_write_lock_parent(parent); + wh_dentry = lock_hdir_lkup_wh(dentry, &a->dt, /*src_dentry*/NULL, + &a->pin, &a->wr_dir_args); + err = PTR_ERR(wh_dentry); + if (IS_ERR(wh_dentry)) + goto out_parent; + + bstart = au_dbstart(dentry); + a->h_path.dentry = au_h_dptr(dentry, bstart); + a->h_path.mnt = au_sbr_mnt(dentry->d_sb, bstart); + h_dir = au_pinned_h_dir(&a->pin); + switch (arg->type) { + case Creat: + err = vfsub_create(h_dir, &a->h_path, arg->u.c.mode, + arg->u.c.want_excl); + break; + case Symlink: + err = vfsub_symlink(h_dir, &a->h_path, arg->u.s.symname); + break; + case Mknod: + err = vfsub_mknod(h_dir, &a->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 && a->h_path.dentry->d_inode)) { + int rerr; + rerr = vfsub_unlink(h_dir, &a->h_path, /*force*/0); + if (rerr) { + AuIOErr("%.*s revert failure(%d, %d)\n", + AuDLNPair(dentry), err, rerr); + err = -EIO; + } + au_dtime_revert(&a->dt); + } + + 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; +} + +int aufs_mknod(struct inode *dir, struct dentry *dentry, umode_t 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, umode_t mode, + bool want_excl) +{ + struct simple_arg arg = { + .type = Creat, + .u.c = { + .mode = mode, + .want_excl = want_excl + } + }; + 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 au_cp_generic cpg = { + .dentry = src_dentry, + .bdst = a->bdst, + .bsrc = a->bsrc, + .len = -1, + .pin = &a->pin, + .flags = AuCpup_DTIME | AuCpup_HOPEN /* | AuCpup_KEEPLINO */ + }; + + 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); + 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; + + err = au_sio_cpup_simple(&cpg); + 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 dentry *dentry, + struct au_link_args *a) +{ + int err; + unsigned char plink; + aufs_bindex_t bend; + struct dentry *h_src_dentry; + struct inode *h_inode, *inode; + 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. */ + bend = au_dbend(dentry); + if (bend < a->bsrc) + au_set_dbend(dentry, a->bsrc); + au_set_h_dptr(dentry, a->bsrc, + dget(au_h_dptr(src_dentry, a->bsrc))); + dget(a->h_path.dentry); + au_set_h_dptr(dentry, a->bdst, NULL); + dentry->d_inode = src_dentry->d_inode; /* tmp */ + h_file = au_h_open_pre(dentry, a->bsrc, /*force_wr*/0); + if (IS_ERR(h_file)) + err = PTR_ERR(h_file); + else { + struct au_cp_generic cpg = { + .dentry = dentry, + .bdst = a->bdst, + .bsrc = -1, + .len = -1, + .pin = &a->pin, + .flags = AuCpup_KEEPLINO + }; + err = au_sio_cpup_simple(&cpg); + au_h_open_post(dentry, a->bsrc, h_file); + if (!err) { + dput(a->h_path.dentry); + a->h_path.dentry = au_h_dptr(dentry, a->bdst); + } else + au_set_h_dptr(dentry, a->bdst, + a->h_path.dentry); + } + dentry->d_inode = NULL; /* restore */ + au_set_h_dptr(dentry, a->bsrc, NULL); + au_set_dbend(dentry, bend); + } 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: + AuTraceErr(err); + 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_ibstart(inode); + + 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_ibstart(inode); + h_src_dentry = au_h_d_alias(src_dentry, a->bsrc); + if (!h_src_dentry) { + a->bsrc = au_dbstart(src_dentry); + h_src_dentry = au_h_d_alias(src_dentry, a->bsrc); + AuDebugOn(!h_src_dentry); + } else if (IS_ERR(h_src_dentry)) + goto out_parent; + + 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, dentry, a); + else + err = vfsub_link(h_src_dentry, au_pinned_h_dir(&a->pin), + &a->h_path); + dput(h_src_dentry); + } else { + /* + * copyup src_dentry to the branch we process, + * and then link(2) to it. + */ + dput(h_src_dentry); + 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: + AuTraceErr(err); + return err; +} + +int aufs_mkdir(struct inode *dir, struct dentry *dentry, umode_t 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-3.11.0.orig/ubuntu/aufs/dir.h +++ linux-3.11.0/ubuntu/aufs/dir.h @@ -0,0 +1,137 @@ +/* + * Copyright (C) 2005-2013 Junjiro R. Okajima + * + * This program, aufs is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public 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 + +/* ---------------------------------------------------------------------- */ + +/* 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, struct dir_context *ctx); + +/* 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-3.11.0.orig/ubuntu/aufs/ioctl.c +++ linux-3.11.0/ubuntu/aufs/ioctl.c @@ -0,0 +1,203 @@ +/* + * Copyright (C) 2005-2013 Junjiro R. Okajima + * + * This program, aufs is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public 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. + * move-down + */ + +#include +#include +#include "aufs.h" + +static int au_wbr_fd(struct path *path, struct aufs_wbr_fd __user *arg) +{ + int err, fd; + aufs_bindex_t wbi, bindex, bend; + struct file *h_file; + struct super_block *sb; + struct dentry *root; + struct au_branch *br; + struct aufs_wbr_fd wbrfd = { + .oflags = au_dir_roflags, + .brid = -1 + }; + const int valid = O_RDONLY | O_NONBLOCK | O_LARGEFILE | O_DIRECTORY + | O_NOATIME | O_CLOEXEC; + + AuDebugOn(wbrfd.oflags & ~valid); + + if (arg) { + err = copy_from_user(&wbrfd, arg, sizeof(wbrfd)); + if (unlikely(err)) { + err = -EFAULT; + goto out; + } + + err = -EINVAL; + AuDbg("wbrfd{0%o, %d}\n", wbrfd.oflags, wbrfd.brid); + wbrfd.oflags |= au_dir_roflags; + AuDbg("0%o\n", wbrfd.oflags); + if (unlikely(wbrfd.oflags & ~valid)) + goto out; + } + + fd = get_unused_fd(); + err = fd; + if (unlikely(fd < 0)) + goto out; + + h_file = ERR_PTR(-EINVAL); + wbi = 0; + br = NULL; + sb = path->dentry->d_sb; + root = sb->s_root; + aufs_read_lock(root, AuLock_IR); + bend = au_sbend(sb); + if (wbrfd.brid >= 0) { + wbi = au_br_index(sb, wbrfd.brid); + if (unlikely(wbi < 0 || wbi > bend)) + goto out_unlock; + } + + h_file = ERR_PTR(-ENOENT); + br = au_sbr(sb, wbi); + if (!au_br_writable(br->br_perm)) { + if (arg) + goto out_unlock; + + bindex = wbi + 1; + wbi = -1; + for (; bindex <= bend; bindex++) { + br = au_sbr(sb, bindex); + if (au_br_writable(br->br_perm)) { + wbi = bindex; + br = au_sbr(sb, wbi); + break; + } + } + } + AuDbg("wbi %d\n", wbi); + if (wbi >= 0) + h_file = au_h_open(root, wbi, wbrfd.oflags, NULL, + /*force_wr*/0); + +out_unlock: + aufs_read_unlock(root, AuLock_IR); + err = PTR_ERR(h_file); + if (IS_ERR(h_file)) + goto out_fd; + + atomic_dec(&br->br_count); /* cf. au_h_open() */ + fd_install(fd, h_file); + err = fd; + goto out; /* success */ + +out_fd: + put_unused_fd(fd); +out: + AuTraceErr(err); + 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, (void __user *)arg); + break; + + case AUFS_CTL_IBUSY: + err = au_ibusy_ioctl(file, arg); + 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_MVDOWN: + WARN_ONCE(1, "move-down is still testing...\n"); + err = au_mvdown(file->f_dentry, (void __user *)arg); + break; + + case AUFS_CTL_WBR_FD: + err = au_wbr_fd(&file->f_path, (void __user *)arg); + 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; + + case AUFS_CTL_IBUSY: + err = au_ibusy_compat_ioctl(file, arg); + break; + + default: + err = aufs_ioctl_dir(file, cmd, arg); + } + + AuTraceErr(err); + return err; +} + +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 --- linux-3.11.0.orig/ubuntu/aufs/module.c +++ linux-3.11.0/ubuntu/aufs/module.c @@ -0,0 +1,203 @@ +/* + * Copyright (C) 2005-2013 Junjiro R. Okajima + * + * This program, aufs is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public 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; + + /* + * Make sure all delayed rcu free inodes are flushed before we + * destroy cache. + */ + rcu_barrier(); + + /* excluding AuCache_HNOTIFY */ + BUILD_BUG_ON(AuCache_HNOTIFY + 1 != AuCache_Last); + for (i = 0; i < AuCache_HNOTIFY; i++) + if (au_cachep[i]) { + kmem_cache_destroy(au_cachep[i]); + au_cachep[i] = NULL; + } +} + +/* ---------------------------------------------------------------------- */ + +int au_dir_roflags; + +#ifdef CONFIG_AUFS_SBILIST +/* + * iterate_supers_type() doesn't protect us from + * remounting (branch management) + */ +struct au_splhead au_sbilist; +#endif + +struct lock_class_key au_lc_key[AuLcKey_Last]; + +/* + * 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); +MODULE_ALIAS_FS(AUFS_NAME); + +/* 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_loopback_init(); + if (unlikely(err)) + goto out_wkq; + err = au_hnotify_init(); + if (unlikely(err)) + goto out_loopback; + 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_loopback: + au_loopback_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_loopback_fin(); + au_wkq_fin(); + au_procfs_fin(); + sysaufs_fin(); + au_dy_fin(); +} + +module_init(aufs_init); +module_exit(aufs_exit); --- linux-3.11.0.orig/ubuntu/aufs/BOM.UPDATING +++ linux-3.11.0/ubuntu/aufs/BOM.UPDATING @@ -0,0 +1,80 @@ += How to update AUFS2 = + +This document covers the process for updating aufs2 within the Ubuntu +drivers directory. + +== Background == + +Upstream aufs2 is maintained in a git tree as below (which is _not_ used +when updating Ubuntu). This represents the primary upstream source tree: + + http://git.c3sl.ufpr.br/pub/scm/aufs/aufs2-2.6.git + +However this is on an http: transport and incredibly slow. It is advisable +to also add the gitorius mirror to your tree, fetching that before origin +to reduce the objects you need from the main tree: + + git://gitorious.org/aufs2/aufs2.git + +Ubuntu updates are actually taken from the aufs2-standalone tree, somewhat +similar to the compat-wireless tree. The version in this tree is based on +the mainline tree above but is modularisable, a key requirement for Ubuntu. +This tree is found at the git tree below (check the BOM for the definative +location): + + http://git.c3sl.ufpr.br/pub/scm/aufs/aufs2-standalone.git + +This tree contains a set of branches, one per upstream release. The +aufs2.1 branch represents the mainline tracking branch, with aufs-2.1-38 +representing the delta to mainline 2.6.38. Each branch contains a set +of patches which affect the core enabling the application of aufs2, plus +an open tree for the fs/aufs tree. The core patches tend to be static +from early in the line of an upstream release, and thus generally do not +need updating as often. + +== Updating the core patches == + +Ubuntu uses two of the core enablement patches, which are applied in the +order below. The remaining changes required to enable aufs are Ubuntu +specific and static: + + aufs2-base.patch + aufs2-standalone.patch + +In order to update these patches it is simplest to simply revert the +existing pair and apply these as two commit. This allows us to more +easily drop aufs in the future should that be required. + +As these core enablement patches are very slow in changing we normally +do not need to update these more than once per upstream mainline release +though sometimes changes do affect these. + +== Updating aufs2 == + +Once the enablement patches are updated we can simply use the aufs-update +script in the ubuntu/ directory to update the existing source. There are +regular updates to the aufs2 upstream and it is likely we will see updates +there more than once a month. + +Firstly checkout the upstream standalone tree (see the BOM for the +location) and checkout an appropriate branch for the release you are +updating. Then simply run the aufs-update command from within the ubuntu/ +drivers directory, supplying the location of the local aufs2-standalone tree +on the command line: + + cd ubuntu + sh aufs-update ../../aufs2-standalone + +This will result in an update commit containing the updated code and +also updating the BOM. Note that any local modifications are now lost. +Where those exist they should be cherry-picked and then squashed into +the update commit to ensure we retain them. + +== Ubuntu modifications == + +We carry a very small delta to the upstream aufs2 source. Any such changes +need to be cherry-picked from the history and squashed into any update +commit in order to prevent regression. Any current patches are listed below: + +Lucid/Maverick/Natty/Oneiric: + UBUNTU: ubuntu: AUFS -- suppress benign plink warning messages --- linux-3.11.0.orig/ubuntu/aufs/vfsub.c +++ linux-3.11.0/ubuntu/aufs/vfsub.c @@ -0,0 +1,772 @@ +/* + * Copyright (C) 2005-2013 Junjiro R. Okajima + * + * This program, aufs is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public 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 "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, &st); + + return err; +} + +/* ---------------------------------------------------------------------- */ + +struct file *vfsub_dentry_open(struct path *path, int flags) +{ + struct file *file; + + file = dentry_open(path, flags /* | __FMODE_NONOTIFY */, + current_cred()); + if (!IS_ERR_OR_NULL(file) + && (file->f_mode & (FMODE_READ | FMODE_WRITE)) == FMODE_READ) + i_readcount_inc(path->dentry->d_inode); + + return file; +} + +struct file *vfsub_filp_open(const char *path, int oflags, int mode) +{ + struct file *file; + + lockdep_off(); + file = filp_open(path, + oflags /* | __FMODE_NONOTIFY */, + mode); + lockdep_on(); + if (IS_ERR(file)) + goto out; + vfsub_update_h_iattr(&file->f_path, /*did*/NULL); /*ignore*/ + +out: + return file; +} + +int vfsub_kern_path(const char *name, unsigned int flags, struct path *path) +{ + int err; + + 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; +} + +void vfsub_call_lkup_one(void *args) +{ + struct vfsub_lkup_one_args *a = args; + *a->errp = vfsub_lkup_one(a->name, a->parent); +} + +/* ---------------------------------------------------------------------- */ + +struct dentry *vfsub_lock_rename(struct dentry *d1, struct au_hinode *hdir1, + struct dentry *d2, struct au_hinode *hdir2) +{ + struct dentry *d; + + lockdep_off(); + d = lock_rename(d1, d2); + lockdep_on(); + au_hn_suspend(hdir1); + if (hdir1 != hdir2) + au_hn_suspend(hdir2); + + return d; +} + +void vfsub_unlock_rename(struct dentry *d1, struct au_hinode *hdir1, + struct dentry *d2, struct au_hinode *hdir2) +{ + au_hn_resume(hdir1); + if (hdir1 != hdir2) + au_hn_resume(hdir2); + lockdep_off(); + unlock_rename(d1, d2); + lockdep_on(); +} + +/* ---------------------------------------------------------------------- */ + +int vfsub_create(struct inode *dir, struct path *path, int mode, bool want_excl) +{ + 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; + + err = vfs_create(dir, path->dentry, mode, want_excl); + 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; + + /* we don't call may_linkat() */ + d = path->dentry; + path->dentry = d->d_parent; + err = security_path_link(src_dentry, path, d); + path->dentry = d; + if (unlikely(err)) + goto out; + + lockdep_off(); + err = vfs_link(src_dentry, dir, path->dentry); + lockdep_on(); + if (!err) { + struct path tmp = *path; + int did; + + /* fuse has different memory inode for the same inumber */ + vfsub_update_h_iattr(&tmp, &did); + if (did) { + tmp.dentry = path->dentry->d_parent; + vfsub_update_h_iattr(&tmp, /*did*/NULL); + tmp.dentry = src_dentry; + vfsub_update_h_iattr(&tmp, /*did*/NULL); + } + /*ignore*/ + } + +out: + return err; +} + +int vfsub_rename(struct inode *src_dir, struct dentry *src_dentry, + struct inode *dir, struct path *path) +{ + int err; + struct path tmp = { + .mnt = path->mnt + }; + struct dentry *d; + + IMustLock(dir); + IMustLock(src_dir); + + d = path->dentry; + path->dentry = d->d_parent; + tmp.dentry = src_dentry->d_parent; + err = security_path_rename(&tmp, src_dentry, path, d); + path->dentry = d; + if (unlikely(err)) + goto out; + + lockdep_off(); + err = vfs_rename(src_dir, src_dentry, dir, path->dentry); + lockdep_on(); + if (!err) { + int did; + + tmp.dentry = d->d_parent; + vfsub_update_h_iattr(&tmp, &did); + if (did) { + tmp.dentry = src_dentry; + vfsub_update_h_iattr(&tmp, /*did*/NULL); + tmp.dentry = src_dentry->d_parent; + vfsub_update_h_iattr(&tmp, /*did*/NULL); + } + /*ignore*/ + } + +out: + return err; +} + +int vfsub_mkdir(struct inode *dir, struct path *path, int mode) +{ + int err; + struct dentry *d; + + IMustLock(dir); + + d = path->dentry; + path->dentry = d->d_parent; + err = security_path_mkdir(path, 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; + + lockdep_off(); + err = vfs_rmdir(dir, path->dentry); + lockdep_on(); + if (!err) { + struct path tmp = { + .dentry = path->dentry->d_parent, + .mnt = path->mnt + }; + + vfsub_update_h_iattr(&tmp, /*did*/NULL); /*ignore*/ + } + +out: + return err; +} + +/* ---------------------------------------------------------------------- */ + +/* todo: support mmap_sem? */ +ssize_t vfsub_read_u(struct file *file, char __user *ubuf, size_t count, + loff_t *ppos) +{ + ssize_t err; + + lockdep_off(); + err = vfs_read(file, ubuf, count, ppos); + lockdep_on(); + 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; + + lockdep_off(); + err = vfs_write(file, ubuf, count, ppos); + lockdep_on(); + if (err >= 0) + vfsub_update_h_iattr(&file->f_path, /*did*/NULL); /*ignore*/ + return err; +} + +ssize_t vfsub_write_k(struct file *file, void *kbuf, size_t count, loff_t *ppos) +{ + ssize_t err; + mm_segment_t oldfs; + 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) { + if (!au_test_nfs(file->f_dentry->d_sb)) + err = file->f_op->flush(file, id); + else { + lockdep_off(); + err = file->f_op->flush(file, id); + lockdep_on(); + } + if (!err) + vfsub_update_h_iattr(&file->f_path, /*did*/NULL); + /*ignore*/ + } + return err; +} + +int vfsub_iterate_dir(struct file *file, struct dir_context *ctx) +{ + int err; + + AuDbg("%.*s, ctx{%pf, %llu}\n", + AuDLNPair(file->f_dentry), ctx->actor, ctx->pos); + + lockdep_off(); + err = iterate_dir(file, ctx); + lockdep_on(); + if (err >= 0) + vfsub_update_h_iattr(&file->f_path, /*did*/NULL); /*ignore*/ + return err; +} + +long vfsub_splice_to(struct file *in, loff_t *ppos, + struct pipe_inode_info *pipe, size_t len, + unsigned int flags) +{ + long err; + + lockdep_off(); + err = do_splice_to(in, ppos, pipe, len, flags); + lockdep_on(); + file_accessed(in); + if (err >= 0) + vfsub_update_h_iattr(&in->f_path, /*did*/NULL); /*ignore*/ + return err; +} + +long vfsub_splice_from(struct pipe_inode_info *pipe, struct file *out, + loff_t *ppos, size_t len, unsigned int flags) +{ + long err; + + lockdep_off(); + err = do_splice_from(pipe, out, ppos, len, flags); + lockdep_on(); + if (err >= 0) + vfsub_update_h_iattr(&out->f_path, /*did*/NULL); /*ignore*/ + return err; +} + +int vfsub_fsync(struct file *file, struct path *path, int datasync) +{ + int err; + + /* file can be NULL */ + lockdep_off(); + err = vfs_fsync(file, datasync); + lockdep_on(); + if (!err) { + if (!path) { + AuDebugOn(!file); + path = &file->f_path; + } + vfsub_update_h_iattr(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; + struct super_block *h_sb; + + if (!h_file) { + err = vfsub_truncate(h_path, length); + goto out; + } + + h_inode = h_path->dentry->d_inode; + h_sb = h_inode->i_sb; + lockdep_off(); + sb_start_write(h_sb); + lockdep_on(); + err = locks_verify_truncate(h_inode, h_file, length); + if (!err) + err = security_path_truncate(h_path); + if (!err) { + lockdep_off(); + err = do_truncate(h_path->dentry, length, attr, h_file); + lockdep_on(); + } + lockdep_off(); + sb_end_write(h_sb); + lockdep_on(); + +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_count(d) == 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); + + lockdep_off(); + *a->errp = vfs_unlink(a->dir, d); + lockdep_on(); + if (!*a->errp) { + struct path tmp = { + .dentry = d->d_parent, + .mnt = a->path->mnt + }; + vfsub_update_h_iattr(&tmp, /*did*/NULL); /*ignore*/ + } + + if (!stop_sillyrename) + dput(d); + if (h_inode) + iput(h_inode); + + AuTraceErr(*a->errp); +} + +/* + * @dir: must be locked. + * @dentry: target dentry. + */ +int vfsub_unlink(struct inode *dir, struct path *path, int force) +{ + int err; + struct unlink_args args = { + .errp = &err, + .dir = dir, + .path = path + }; + + if (!force) + call_unlink(&args); + else { + int wkq_err; + + wkq_err = au_wkq_wait(call_unlink, &args); + if (unlikely(wkq_err)) + err = wkq_err; + } + + return err; +} --- linux-3.11.0.orig/ubuntu/aufs/inode.c +++ linux-3.11.0/ubuntu/aufs/inode.c @@ -0,0 +1,492 @@ +/* + * Copyright (C) 2005-2013 Junjiro R. Okajima + * + * This program, aufs is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public 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, /*half*/1); + 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; + unsigned int gen; + struct au_iigen iigen; + 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) + continue; + + err = 0; + gen = au_iigen(inode, &iigen); + if (gen == au_digen(dentry) + && !au_ig_ftest(iigen.ig_flags, HALF_REFRESHED)) + break; + + /* fully refresh inode using dentry */ + err = au_refresh_hinode(inode, dentry); + if (!err) + au_update_iigen(inode, /*half*/0); + 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) { + /* verbose coding for lock class name */ + if (unlikely(S_ISLNK(h_inode->i_mode))) + au_rw_class(&au_ii(inode)->ii_rwsem, + au_lc_key + AuLcSymlink_IIINFO); + else if (unlikely(S_ISDIR(h_inode->i_mode))) + au_rw_class(&au_ii(inode)->ii_rwsem, + au_lc_key + AuLcDir_IIINFO); + else /* likely */ + au_rw_class(&au_ii(inode)->ii_rwsem, + au_lc_key + AuLcNonDir_IIINFO); + + 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 (uid_eq(current_fsuid(), GLOBAL_ROOT_UID)) + 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-3.11.0.orig/ubuntu/aufs/dbgaufs.h +++ linux-3.11.0/ubuntu/aufs/dbgaufs.h @@ -0,0 +1,49 @@ +/* + * Copyright (C) 2005-2013 Junjiro R. Okajima + * + * This program, aufs is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public 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__ + +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-3.11.0.orig/ubuntu/aufs/iinfo.c +++ linux-3.11.0/ubuntu/aufs/iinfo.c @@ -0,0 +1,276 @@ +/* + * Copyright (C) 2005-2013 Junjiro R. Okajima + * + * This program, aufs is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public 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, int half) +{ + struct au_iinfo *iinfo; + struct au_iigen *iigen; + unsigned int sigen; + + sigen = au_sigen(inode->i_sb); + iinfo = au_ii(inode); + iigen = &iinfo->ii_generation; + spin_lock(&iinfo->ii_genspin); + iigen->ig_generation = sigen; + if (half) + au_ig_fset(iigen->ig_flags, HALF_REFRESHED); + else + au_ig_fclr(iigen->ig_flags, HALF_REFRESHED); + spin_unlock(&iinfo->ii_genspin); +} + +/* 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; + + spin_lock_init(&iinfo->ii_genspin); + 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; + + iinfo->ii_generation.ig_generation = au_sigen(sb); + 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-3.11.0.orig/ubuntu/aufs/branch.c +++ linux-3.11.0/ubuntu/aufs/branch.c @@ -0,0 +1,1213 @@ +/* + * Copyright (C) 2005-2013 Junjiro R. Okajima + * + * This program, aufs is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public 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 + */ + +/* prohibit rmdir to the root of the branch */ +/* todo: another new flag? */ +static void au_br_dflags_force(struct au_branch *br) +{ + struct dentry *h_dentry; + + h_dentry = au_br_dentry(br); + spin_lock(&h_dentry->d_lock); + br->br_dflags = h_dentry->d_flags & DCACHE_MOUNTED; + h_dentry->d_flags |= DCACHE_MOUNTED; + spin_unlock(&h_dentry->d_lock); +} + +/* restore its d_flags */ +static void au_br_dflags_restore(struct au_branch *br) +{ + struct dentry *h_dentry; + + if (br->br_dflags) + return; + + h_dentry = au_br_dentry(br); + spin_lock(&h_dentry->d_lock); + h_dentry->d_flags &= ~DCACHE_MOUNTED; + spin_unlock(&h_dentry->d_lock); +} + +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; + + au_br_dflags_restore(br); + + /* recursive lock, s_umount of branch's */ + lockdep_off(); + path_put(&br->br_path); + lockdep_on(); + kfree(wbr); + kfree(br); +} + +/* + * frees all branches + */ +void au_br_free(struct au_sbinfo *sbinfo) +{ + aufs_bindex_t bmax; + struct au_branch **br; + + AuRwMustWriteLock(&sbinfo->si_rwsem); + + bmax = sbinfo->si_bend + 1; + br = sbinfo->si_branch; + while (bmax--) + au_br_do_free(*br++); +} + +/* + * find the index of a branch which is specified by @br_id. + */ +int au_br_index(struct super_block *sb, aufs_bindex_t br_id) +{ + aufs_bindex_t bindex, bend; + + bend = au_sbend(sb); + for (bindex = 0; bindex <= bend; bindex++) + if (au_sbr_id(sb, bindex) == br_id) + return bindex; + return -1; +} + +/* ---------------------------------------------------------------------- */ + +/* + * add a branch + */ + +static int test_overlap(struct super_block *sb, struct dentry *h_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) + || !uid_eq(h_inode->i_uid, inode->i_uid) + || !gid_eq(h_inode->i_gid, inode->i_gid)) + pr_warn("uid/gid/perm %s %u/%u/0%o, %u/%u/0%o\n", + add->pathname, + i_uid_read(inode), i_gid_read(inode), + (inode->i_mode & S_IALLUGO), + i_uid_read(h_inode), i_gid_read(h_inode), + (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) +{ + int err, old_perm; + aufs_bindex_t bindex; + struct mutex *h_mtx; + struct au_wbr *wbr; + struct au_hinode *hdir; + + err = vfsub_mnt_want_write(au_br_mnt(br)); + if (unlikely(err)) + goto out; + + 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 = &au_br_dentry(br)->d_inode->i_mutex; + mutex_lock_nested(h_mtx, AuLsc_I_PARENT); + } + if (!wbr) + err = au_wh_init(br, sb); + else { + wbr_wh_write_lock(wbr); + err = au_wh_init(br, sb); + wbr_wh_write_unlock(wbr); + } + if (hdir) + au_hn_imtx_unlock(hdir); + else + mutex_unlock(h_mtx); + vfsub_mnt_drop_write(au_br_mnt(br)); + br->br_perm = old_perm; + + if (!err && wbr && !au_br_writable(new_perm)) { + kfree(wbr); + br->br_wbr = NULL; + } + +out: + return err; +} + +static int au_wbr_init(struct au_branch *br, struct super_block *sb, + int perm) +{ + int err; + struct kstatfs kst; + struct au_wbr *wbr; + + 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(&br->br_path, &kst); + if (unlikely(err)) + goto out; + err = -EINVAL; + if (kst.f_namelen >= NAME_MAX) + err = au_br_init_wh(sb, br, perm); + else + pr_err("%.*s(%s), unsupported namelen %ld\n", + AuDLNPair(au_br_dentry(br)), + au_sbtype(au_br_dentry(br)->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; + BUILD_BUG_ON(sizeof(br->br_dflags) + != sizeof(br->br_path.dentry->d_flags)); + br->br_dflags = DCACHE_MOUNTED; + br->br_path = add->path; /* set first, path_get() 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); + 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); + path_get(&br->br_path); + goto out; /* success */ + +out_err: + memset(&br->br_path, 0, sizeof(br->br_path)); +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 au_branch *br, + aufs_bindex_t bindex) +{ + struct dentry *root, *h_dentry; + struct inode *root_inode; + aufs_bindex_t bend, amount; + + au_br_dflags_force(br); + + root = sb->s_root; + root_inode = root->d_inode; + bend = au_sbend(sb); + amount = bend + 1 - bindex; + h_dentry = au_br_dentry(br); + au_sbilist_lock(); + 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); + au_sbilist_unlock(); +} + +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; + if (!remount) + au_br_do_add(sb, add_branch, add_bindex); + else { + sysaufs_brs_del(sb, add_bindex); + au_br_do_add(sb, add_branch, add_bindex); + sysaufs_brs_add(sb, add_bindex); + } + + h_dentry = add->path.dentry; + 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) + +static int au_test_ibusy(struct inode *inode, aufs_bindex_t bstart, + aufs_bindex_t bend) +{ + return (inode && !S_ISDIR(inode->i_mode)) || bstart == bend; +} + +static int au_test_dbusy(struct dentry *dentry, aufs_bindex_t bstart, + aufs_bindex_t bend) +{ + return au_test_ibusy(dentry->d_inode, bstart, bend); +} + +/* + * 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; + + 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_count(d)); + 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); */ + bstart = au_dbstart(d); + bend = au_dbend(d); + if (bstart <= bindex + && bindex <= bend + && au_h_dptr(d, bindex) + && au_test_dbusy(d, 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, NULL) == 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) + && au_test_ibusy(i, 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, AuGFP_SBILIST); + 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, AuGFP_SBILIST); + 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, AuGFP_SBILIST); + 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, *h_root; + struct inode *inode, *h_inode; + struct au_hinode *hinode; + + SiMustWriteLock(sb); + + root = sb->s_root; + inode = root->d_inode; + sbinfo = au_sbi(sb); + bend = sbinfo->si_bend; + + h_root = au_h_dptr(root, bindex); + hinode = au_hi(inode, bindex); + h_inode = au_igrab(hinode->hi_inode); + au_hiput(hinode); + + au_sbilist_lock(); + 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); + au_sbilist_unlock(); + + dput(h_root); + iput(h_inode); + au_br_do_free(br); +} + +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); + AuDebugOn(!path_equal(&br->br_path, &del->h_path)); + 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); + if (rerr) + pr_warn("failed re-creating base whiteout, %s. (%d)\n", + del->pathname, rerr); +out: + return err; +} + +/* ---------------------------------------------------------------------- */ + +static int au_ibusy(struct super_block *sb, struct aufs_ibusy __user *arg) +{ + int err; + aufs_bindex_t bstart, bend; + struct aufs_ibusy ibusy; + struct inode *inode, *h_inode; + + err = -EPERM; + if (unlikely(!capable(CAP_SYS_ADMIN))) + goto out; + + err = copy_from_user(&ibusy, arg, sizeof(ibusy)); + if (!err) + err = !access_ok(VERIFY_WRITE, &arg->h_ino, sizeof(arg->h_ino)); + if (unlikely(err)) { + err = -EFAULT; + AuTraceErr(err); + goto out; + } + + err = -EINVAL; + si_read_lock(sb, AuLock_FLUSH); + if (unlikely(ibusy.bindex < 0 || ibusy.bindex > au_sbend(sb))) + goto out_unlock; + + err = 0; + ibusy.h_ino = 0; /* invalid */ + inode = ilookup(sb, ibusy.ino); + if (!inode + || inode->i_ino == AUFS_ROOT_INO + || is_bad_inode(inode)) + goto out_unlock; + + ii_read_lock_child(inode); + bstart = au_ibstart(inode); + bend = au_ibend(inode); + if (bstart <= ibusy.bindex && ibusy.bindex <= bend) { + h_inode = au_h_iptr(inode, ibusy.bindex); + if (h_inode && au_test_ibusy(inode, bstart, bend)) + ibusy.h_ino = h_inode->i_ino; + } + ii_read_unlock(inode); + iput(inode); + +out_unlock: + si_read_unlock(sb); + if (!err) { + err = __put_user(ibusy.h_ino, &arg->h_ino); + if (unlikely(err)) { + err = -EFAULT; + AuTraceErr(err); + } + } +out: + return err; +} + +long au_ibusy_ioctl(struct file *file, unsigned long arg) +{ + return au_ibusy(file->f_dentry->d_sb, (void __user *)arg); +} + +#ifdef CONFIG_COMPAT +long au_ibusy_compat_ioctl(struct file *file, unsigned long arg) +{ + return au_ibusy(file->f_dentry->d_sb, compat_ptr(arg)); +} +#endif + +/* ---------------------------------------------------------------------- */ + +/* + * 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(file_inode(f)->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 int mnt_flags; + unsigned long long ull, max; + aufs_bindex_t br_id; + unsigned char verbose; + struct file *file, *hf, **array; + struct inode *inode; + struct au_hfile *hfile; + + mnt_flags = au_mntflags(sb); + verbose = !!au_opt_test(mnt_flags, VERBOSE); + + 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; + AuVerbose(verbose, "mmapped %.*s\n", + AuDLNPair(file->f_dentry)); + AuDbgFile(file); + FiMustNoWaiters(file); + fi_read_unlock(file); + goto out_array; + } + + inode = file_inode(file); + 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)) { + __mnt_drop_write(hf->f_path.mnt); + file_release_write(hf); + } + } + +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 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); + AuDebugOn(mod->h_root != au_br_dentry(br)); + 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); + 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) + rerr = au_wbr_init(br, sb, br->br_perm); + 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) { + err = au_wbr_init(br, sb, mod->perm); + if (unlikely(err)) { + kfree(br->br_wbr); + br->br_wbr = NULL; + } + } + } + + if (!err) { + if ((br->br_perm & AuBrAttr_UNPIN) + && !(mod->perm & AuBrAttr_UNPIN)) + au_br_dflags_force(br); + else if (!(br->br_perm & AuBrAttr_UNPIN) + && (mod->perm & AuBrAttr_UNPIN)) + au_br_dflags_restore(br); + *do_refresh |= need_sigen_inc(br->br_perm, mod->perm); + br->br_perm = mod->perm; + } + +out: + AuTraceErr(err); + return err; +} --- linux-3.11.0.orig/ubuntu/aufs/super.h +++ linux-3.11.0/ubuntu/aufs/super.h @@ -0,0 +1,566 @@ +/* + * Copyright (C) 2005-2013 Junjiro R. Okajima + * + * This program, aufs is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public 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 "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); +}; + +#define AuWbr_DIR 1 /* target is a dir */ +#define AuWbr_PARENT (1 << 1) /* always require a parent */ + +#define au_ftest_wbr(flags, name) ((flags) & AuWbr_##name) +#define au_fset_wbr(flags, name) { (flags) |= AuWbr_##name; } +#define au_fclr_wbr(flags, name) { (flags) &= ~AuWbr_##name; } + +struct au_wbr_create_operations { + int (*create)(struct dentry *dentry, unsigned int flags); + 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 pseudo_link { + union { + struct hlist_node hlist; + struct rcu_head rcu; + }; + struct inode *inode; +}; + +#define AuPlink_NHASH 100 +static inline int au_plink_hash(ino_t ino) +{ + return ino % AuPlink_NHASH; +} + +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_sphlhead si_plink[AuPlink_NHASH]; + 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; + struct dentry *si_dbgaufs_plink; + struct dentry *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); +int au_wbr_nonopq(struct dentry *dentry, aufs_bindex_t bindex); + +/* mvdown.c */ +int au_mvdown(struct dentry *dentry, struct aufs_mvdown __user *arg); + +/* ---------------------------------------------------------------------- */ + +static inline struct au_sbinfo *au_sbi(struct super_block *sb) +{ + return sb->s_fs_info; +} + +/* ---------------------------------------------------------------------- */ + +#ifdef CONFIG_AUFS_EXPORT +int au_test_nfsd(void); +void au_export_init(struct super_block *sb); +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 +AuStubInt0(au_test_nfsd, void) +AuStubVoid(au_export_init, struct super_block *sb) +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); +} + +#ifdef CONFIG_AUFS_MAGIC_SYSRQ +static inline void au_sbilist_lock(void) +{ + spin_lock(&au_sbilist.spin); +} + +static inline void au_sbilist_unlock(void) +{ + spin_unlock(&au_sbilist.spin); +} +#define AuGFP_SBILIST GFP_ATOMIC +#else +AuStubVoid(au_sbilist_lock, void) +AuStubVoid(au_sbilist_unlock, void) +#define AuGFP_SBILIST GFP_NOFS +#endif /* CONFIG_AUFS_MAGIC_SYSRQ */ +#else +AuStubVoid(au_sbilist_init, void) +AuStubVoid(au_sbilist_add, struct super_block*) +AuStubVoid(au_sbilist_del, struct super_block*) +AuStubVoid(au_sbilist_lock, void) +AuStubVoid(au_sbilist_unlock, void) +#define AuGFP_SBILIST GFP_NOFS +#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_plink = 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-3.11.0.orig/ubuntu/aufs/sysrq.c +++ linux-3.11.0/ubuntu/aufs/sysrq.c @@ -0,0 +1,151 @@ +/* + * Copyright (C) 2005-2013 Junjiro R. Okajima + * + * This program, aufs is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public 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 "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; + + /* since we define pr_fmt, call printk directly */ +#define pr(str) printk(KERN_WARNING AUFS_NAME ": " str) + + sbinfo = au_sbi(sb); + printk(KERN_WARNING "si=%lx\n", sysaufs_si_id(sbinfo)); + pr("superblock\n"); + au_dpri_sb(sb); + +#if 0 + pr("root dentry\n"); + au_dpri_dentry(sb->s_root); + pr("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; + pr("isolated inode\n"); + spin_lock(&inode_sb_list_lock); + list_for_each_entry(i, &sb->s_inodes, i_sb_list) { + spin_lock(&i->i_lock); + if (1 || hlist_empty(&i->i_dentry)) + au_dpri_inode(i); + spin_unlock(&i->i_lock); + } + spin_unlock(&inode_sb_list_lock); + } +#endif + pr("files\n"); + lg_global_lock(&files_lglock); + do_file_list_for_each_entry(sb, file) { + umode_t mode; + mode = file_inode(file)->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); + pr("done\n"); + +#undef pr + 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(); + au_sbilist_lock(); + list_for_each_entry(sbinfo, &au_sbilist.head, si_list) + sysrq_sb(sbinfo->si_sb); + au_sbilist_unlock(); + 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-3.11.0.orig/ubuntu/aufs/file.h +++ linux-3.11.0/ubuntu/aufs/file.h @@ -0,0 +1,312 @@ +/* + * Copyright (C) 2005-2013 Junjiro R. Okajima + * + * This program, aufs is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public 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; + atomic_t fi_mmapped; + }; + 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 force_wr); +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, + int force_wr); +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, + int force_wr) +{ + 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; +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 */ +struct au_finfo *au_fi_sp(struct file *file); +int au_special_file(umode_t mode); +void au_init_special_fop(struct inode *inode, umode_t mode, dev_t rdev); +#else +static inline struct au_finfo *au_fi_sp(struct file *file) +{ + return NULL; +} +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); +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); +long aufs_compat_ioctl_nondir(struct file *file, unsigned int cmd, + unsigned long arg); +#endif + +/* ---------------------------------------------------------------------- */ + +static inline struct au_finfo *au_fi(struct file *file) +{ + struct au_finfo *finfo; + + finfo = au_fi_sp(file); + if (!finfo) + finfo = file->private_data; + return finfo; +} + +/* ---------------------------------------------------------------------- */ + +/* + * 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 void au_set_mmapped(struct file *f) +{ + if (atomic_inc_return(&au_fi(f)->fi_mmapped)) + return; + pr_warn("fi_mmapped wrapped around\n"); + while (!atomic_inc_return(&au_fi(f)->fi_mmapped)) + ; +} + +static inline void au_unset_mmapped(struct file *f) +{ + atomic_dec(&au_fi(f)->fi_mmapped); +} + +static inline int au_test_mmapped(struct file *f) +{ + return atomic_read(&au_fi(f)->fi_mmapped); +} + +/* customize vma->vm_file */ + +static inline void au_do_vm_file_reset(struct vm_area_struct *vma, + struct file *file) +{ + struct file *f; + + f = vma->vm_file; + get_file(file); + vma->vm_file = file; + fput(f); +} + +#ifdef CONFIG_MMU +#define AuDbgVmRegion(file, vma) do {} while (0) + +static inline void au_vm_file_reset(struct vm_area_struct *vma, + struct file *file) +{ + au_do_vm_file_reset(vma, file); +} +#else +#define AuDbgVmRegion(file, vma) \ + AuDebugOn((vma)->vm_region && (vma)->vm_region->vm_file != (file)) + +static inline void au_vm_file_reset(struct vm_area_struct *vma, + struct file *file) +{ + struct file *f; + + au_do_vm_file_reset(vma, file); + f = vma->vm_region->vm_file; + get_file(file); + vma->vm_region->vm_file = file; + fput(f); +} +#endif /* CONFIG_MMU */ + +/* handle vma->vm_prfile */ +static inline void au_vm_prfile_set(struct vm_area_struct *vma, + struct file *file) +{ +#ifdef CONFIG_AUFS_PROC_MAP + get_file(file); + vma->vm_prfile = file; +#ifndef CONFIG_MMU + get_file(file); + vma->vm_region->vm_prfile = file; +#endif +#endif +} + +#endif /* __KERNEL__ */ +#endif /* __AUFS_FILE_H__ */ --- linux-3.11.0.orig/ubuntu/aufs/vfsub.h +++ linux-3.11.0/ubuntu/aufs/vfsub.h @@ -0,0 +1,311 @@ +/* + * Copyright (C) 2005-2013 Junjiro R. Okajima + * + * This program, aufs is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public 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 +#include "debug.h" + +/* copied from linux/fs/internal.h */ +/* todo: BAD approach!! */ +extern struct lglock vfsmount_lock; +extern void __mnt_drop_write(struct vfsmount *); +extern spinlock_t inode_sb_list_lock; + +/* copied from linux/fs/file_table.c */ +extern struct 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); +} + +static inline int vfsub_native_ro(struct inode *inode) +{ + return (inode->i_sb->s_flags & MS_RDONLY) + || IS_RDONLY(inode) + /* || IS_APPEND(inode) */ + || IS_IMMUTABLE(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 vfsub_lkup_one_args { + struct dentry **errp; + struct qstr *name; + struct dentry *parent; +}; + +static inline struct dentry *vfsub_lkup_one(struct qstr *name, + struct dentry *parent) +{ + return vfsub_lookup_one_len(name->name, parent, name->len); +} + +void vfsub_call_lkup_one(void *args); + +/* ---------------------------------------------------------------------- */ + +static inline int vfsub_mnt_want_write(struct vfsmount *mnt) +{ + int err; + lockdep_off(); + err = mnt_want_write(mnt); + lockdep_on(); + return err; +} + +static inline void vfsub_mnt_drop_write(struct vfsmount *mnt) +{ + lockdep_off(); + mnt_drop_write(mnt); + lockdep_on(); +} + +static inline void vfsub_mnt_drop_write_file(struct file *file) +{ + lockdep_off(); + mnt_drop_write_file(file); + lockdep_on(); +} + +/* ---------------------------------------------------------------------- */ + +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, + bool want_excl); +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_iterate_dir(struct file *file, struct dir_context *ctx); + +/* just for type-check */ +static inline filldir_t au_diractor(int (*func)(struct dir_context *, + const char *, int, loff_t, u64, + unsigned)) +{ + return (filldir_t)func; +} + + +static inline loff_t vfsub_f_size_read(struct file *file) +{ + return i_size_read(file_inode(file)); +} + +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_path); + vfsub_update_h_iattr(&h_path, /*did*/NULL); /*ignore*/ +} + +static inline int vfsub_update_time(struct inode *h_inode, struct timespec *ts, + int flags) +{ + return update_time(h_inode, ts, flags); + /* no vfsub_update_h_iattr() since we don't have struct path */ +} + +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); + +static inline long vfsub_truncate(struct path *path, loff_t length) +{ + long err; + lockdep_off(); + err = vfs_truncate(path, length); + lockdep_on(); + return err; +} + +int vfsub_trunc(struct path *h_path, loff_t length, unsigned int attr, + struct file *h_file); +int vfsub_fsync(struct file *file, struct path *path, int datasync); + +/* ---------------------------------------------------------------------- */ + +static inline loff_t vfsub_llseek(struct file *file, loff_t offset, int origin) +{ + loff_t err; + + lockdep_off(); + err = vfs_llseek(file, offset, origin); + lockdep_on(); + return err; +} + +/* ---------------------------------------------------------------------- */ + +/* dirty workaround for strict type of fmode_t */ +union vfsub_fmu { + fmode_t fm; + unsigned int ui; +}; + +static inline unsigned int vfsub_fmode_to_uint(fmode_t fm) +{ + union vfsub_fmu u = { + .fm = fm + }; + + BUILD_BUG_ON(sizeof(u.fm) != sizeof(u.ui)); + + return u.ui; +} + +static inline fmode_t vfsub_uint_to_fmode(unsigned int ui) +{ + union vfsub_fmu u = { + .ui = ui + }; + + return u.fm; +} + +/* ---------------------------------------------------------------------- */ + +int vfsub_sio_mkdir(struct inode *dir, struct path *path, int mode); +int vfsub_sio_rmdir(struct inode *dir, struct path *path); +int vfsub_sio_notify_change(struct path *path, struct iattr *ia); +int vfsub_notify_change(struct path *path, struct iattr *ia); +int vfsub_unlink(struct inode *dir, struct path *path, int force); + +#endif /* __KERNEL__ */ +#endif /* __AUFS_VFSUB_H__ */ --- linux-3.11.0.orig/ubuntu/aufs/wkq.c +++ linux-3.11.0/ubuntu/aufs/wkq.c @@ -0,0 +1,213 @@ +/* + * Copyright (C) 2005-2013 Junjiro R. Okajima + * + * This program, aufs is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public 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 */ + +static struct workqueue_struct *au_wkq; + +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(!uid_eq(current_fsuid(), GLOBAL_ROOT_UID)); + 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); /* todo: ?? */ + kfree(wkinfo); + } +} + +/* + * Since struct completion is large, try allocating it dynamically. + */ +#if 1 /* 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) +{ + if (au_ftest_wkq(wkinfo->flags, NEST)) { + if (au_wkq_test()) { + AuWarn1("wkq from wkq, due to a dead dir by UDBA?\n"); + AuDebugOn(au_ftest_wkq(wkinfo->flags, WAIT)); + } + } else + au_dbg_verify_kthread(); + + if (au_ftest_wkq(wkinfo->flags, WAIT)) { + INIT_WORK_ONSTACK(&wkinfo->wk, wkq_func); + queue_work(au_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); + /* 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, + unsigned int flags) +{ + 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 = flags & ~AuWkq_WAIT; + wkinfo->func = func; + wkinfo->args = args; + wkinfo->comp = NULL; + kobject_get(wkinfo->kobj); + __module_get(THIS_MODULE); /* todo: ?? */ + + au_wkq_run(wkinfo); + } 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) +{ + destroy_workqueue(au_wkq); +} + +int __init au_wkq_init(void) +{ + int err; + + err = 0; + au_wkq = alloc_workqueue(AUFS_WKQ_NAME, 0, WQ_DFL_ACTIVE); + if (IS_ERR(au_wkq)) + err = PTR_ERR(au_wkq); + else if (!au_wkq) + err = -ENOMEM; + + return err; +} --- linux-3.11.0.orig/ubuntu/aufs/dynop.c +++ linux-3.11.0/ubuntu/aufs/dynop.c @@ -0,0 +1,380 @@ +/* + * Copyright (C) 2010-2013 Junjiro R. Okajima + * + * This program, aufs is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public 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(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(is_dirty_writeback); + DySetAop(error_remove_page); + DySetAop(swap_activate); + DySetAop(swap_deactivate); + + DyDbgSize(cnt, *h_aop); + dyaop->da_get_xip_mem = h_aop->get_xip_mem; +} + +/* ---------------------------------------------------------------------- */ + +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 + } + }; + 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, au_br_sb(br)); + 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); +} + +/* ---------------------------------------------------------------------- */ + +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)); + + 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-3.11.0.orig/ubuntu/aufs/dcsub.c +++ linux-3.11.0/ubuntu/aufs/dcsub.c @@ -0,0 +1,243 @@ +/* + * Copyright (C) 2005-2013 Junjiro R. Okajima + * + * This program, aufs is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public 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(!d_count(dentry)); + 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) + && d_count(this_parent) + && (!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 (d_count(dentry)) { + 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 + && d_count(dentry) + && (!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 (d_count(dentry) + && (!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-3.11.0.orig/ubuntu/aufs/finfo.c +++ linux-3.11.0/ubuntu/aufs/finfo.c @@ -0,0 +1,157 @@ +/* + * Copyright (C) 2005-2013 Junjiro R. Okajima + * + * This program, aufs is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public 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 "aufs.h" + +void au_hfput(struct au_hfile *hf, struct file *file) +{ + /* todo: direct access f_flags */ + if (vfsub_file_flags(file) & __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 */ +} + +/* ---------------------------------------------------------------------- */ + +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; + + au_rw_init(&finfo->fi_rwsem); + au_rw_class(&finfo->fi_rwsem, &aufs_fi); +} + +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); + /* verbose coding for lock class name */ + if (!fidir) + au_rw_class(&finfo->fi_rwsem, au_lc_key + AuLcNonDir_FIINFO); + else + au_rw_class(&finfo->fi_rwsem, au_lc_key + AuLcDir_FIINFO); + 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-3.11.0.orig/ubuntu/aufs/i_op_del.c +++ linux-3.11.0/ubuntu/aufs/i_op_del.c @@ -0,0 +1,502 @@ +/* + * Copyright (C) 2005-2013 Junjiro R. Okajima + * + * This program, aufs is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public 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); + 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 inode *inode, *h_dir; + struct dentry *parent, *wh_dentry; + /* to reuduce stack size */ + struct { + struct au_dtime dt; + struct au_pin pin; + struct path h_path; + } *a; + + 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_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, &a->dt, + &a->pin); + err = PTR_ERR(wh_dentry); + if (IS_ERR(wh_dentry)) + goto out_parent; + + a->h_path.mnt = au_sbr_mnt(dentry->d_sb, bstart); + a->h_path.dentry = au_h_dptr(dentry, bstart); + dget(a->h_path.dentry); + if (bindex == bstart) { + h_dir = au_pinned_h_dir(&a->pin); + err = vfsub_unlink(h_dir, &a->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(&a->h_path, /*did*/NULL); + /*ignore*/ + inode->i_ctime = a->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, + &a->dt); + if (rerr) + err = rerr; + } + +out_unpin: + au_unpin(&a->pin); + dput(wh_dentry); + dput(a->h_path.dentry); +out_parent: + di_write_unlock(parent); +out_unlock: + aufs_read_unlock(dentry, AuLock_DW); +out_free: + kfree(a); +out: + return err; +} + +int aufs_rmdir(struct inode *dir, struct dentry *dentry) +{ + int err, rmdir_later; + aufs_bindex_t bwh, bindex, bstart; + struct inode *inode; + struct dentry *parent, *wh_dentry, *h_dentry; + struct au_whtmp_rmdir *args; + /* to reuduce stack size */ + struct { + struct au_dtime dt; + struct au_pin pin; + } *a; + + IMustLock(dir); + + err = -ENOMEM; + a = kmalloc(sizeof(*a), GFP_NOFS); + if (unlikely(!a)) + goto out; + + err = aufs_read_lock(dentry, AuLock_DW | AuLock_FLUSH | AuLock_GEN); + if (unlikely(err)) + goto out_free; + err = au_alive_dir(dentry); + if (unlikely(err)) + goto out_unlock; + inode = dentry->d_inode; + 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, &a->dt, + &a->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, + &a->dt); + if (rerr) + err = rerr; + } + +out_unpin: + au_unpin(&a->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_free: + kfree(a); +out: + AuTraceErr(err); + return err; +} --- linux-3.11.0.orig/ubuntu/aufs/cpup.h +++ linux-3.11.0/ubuntu/aufs/cpup.h @@ -0,0 +1,95 @@ +/* + * Copyright (C) 2005-2013 Junjiro R. Okajima + * + * This program, aufs is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public 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 + +struct inode; +struct file; +struct au_pin; + +void au_cpup_attr_flags(struct inode *dst, unsigned int iflags); +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); + +/* ---------------------------------------------------------------------- */ + +struct au_cp_generic { + struct dentry *dentry; + aufs_bindex_t bdst, bsrc; + loff_t len; + struct au_pin *pin; + unsigned int flags; +}; + +/* 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 AuCpup_RENAME (1 << 2) /* rename after cpup */ +#define AuCpup_HOPEN (1 << 3) /* call h_open_pre/post() in + cpup */ +#define AuCpup_OVERWRITE (1 << 4) /* allow overwriting the + existing entry */ +#define AuCpup_RWDST (1 << 5) /* force write target even if + the branch is marked as RO */ + +#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_simple(struct au_cp_generic *cpg); +int au_sio_cpdown_simple(struct au_cp_generic *cpg); +int au_sio_cpup_wh(struct au_cp_generic *cpg, struct file *file); + +int au_cp_dirs(struct dentry *dentry, aufs_bindex_t bdst, + int (*cp)(struct dentry *dentry, aufs_bindex_t bdst, + struct au_pin *pin, + 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-3.11.0.orig/ubuntu/aufs/dcsub.h +++ linux-3.11.0/ubuntu/aufs/dcsub.h @@ -0,0 +1,94 @@ +/* + * Copyright (C) 2005-2013 Junjiro R. Okajima + * + * This program, aufs is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public 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 + +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-3.11.0.orig/ubuntu/aufs/spl.h +++ linux-3.11.0/ubuntu/aufs/spl.h @@ -0,0 +1,112 @@ +/* + * Copyright (C) 2005-2013 Junjiro R. Okajima + * + * This program, aufs is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public 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__ + +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); +} + +/* ---------------------------------------------------------------------- */ + +struct au_sphlhead { + spinlock_t spin; + struct hlist_head head; +}; + +static inline void au_sphl_init(struct au_sphlhead *sphl) +{ + spin_lock_init(&sphl->spin); + INIT_HLIST_HEAD(&sphl->head); +} + +static inline void au_sphl_add(struct hlist_node *hlist, + struct au_sphlhead *sphl) +{ + spin_lock(&sphl->spin); + hlist_add_head(hlist, &sphl->head); + spin_unlock(&sphl->spin); +} + +static inline void au_sphl_del(struct hlist_node *hlist, + struct au_sphlhead *sphl) +{ + spin_lock(&sphl->spin); + hlist_del(hlist); + spin_unlock(&sphl->spin); +} + +static inline void au_sphl_del_rcu(struct hlist_node *hlist, + struct au_sphlhead *sphl) +{ + spin_lock(&sphl->spin); + hlist_del_rcu(hlist); + spin_unlock(&sphl->spin); +} + +static inline unsigned long au_sphl_count(struct au_sphlhead *sphl) +{ + unsigned long cnt; + struct hlist_node *pos; + + cnt = 0; + spin_lock(&sphl->spin); + hlist_for_each(pos, &sphl->head) + cnt++; + spin_unlock(&sphl->spin); + return cnt; +} + +#endif /* __KERNEL__ */ +#endif /* __AUFS_SPL_H__ */ --- linux-3.11.0.orig/ubuntu/aufs/file.c +++ linux-3.11.0/ubuntu/aufs/file.c @@ -0,0 +1,725 @@ +/* + * Copyright (C) 2005-2013 Junjiro R. Okajima + * + * This program, aufs is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public 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 + */ + +#ifdef CONFIG_AUFS_DEBUG +#include +#endif +#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, int force_wr) +{ + 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 & __FMODE_EXEC; + if (exec_flag && (au_br_mnt(br)->mnt_flags & MNT_NOEXEC)) + goto out; + + /* drop flags for writing */ + if (au_test_ro(sb, bindex, dentry->d_inode)) { + if (force_wr && !(flags & O_WRONLY)) + force_wr = 0; + flags = au_file_roflags(flags); + if (force_wr) { + h_file = ERR_PTR(-EROFS); + flags = au_file_roflags(flags); + if (unlikely(vfsub_native_ro(h_inode) + || IS_APPEND(h_inode))) + goto out; + flags &= ~O_ACCMODE; + flags |= O_WRONLY; + } + } + flags &= ~O_CREAT; + atomic_inc(&br->br_count); + h_path.dentry = h_dentry; + h_path.mnt = au_br_mnt(br); + 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); + /* + * it can happen + * file exists on both of rw and ro + * open --> dbstart and fbstart are both 0 + * prepend a branch as rw, "rw" become ro + * remove rw/file + * delete the top branch, "rw" becomes rw again + * --> dbstart is 1, fbstart is still 0 + * write --> fbstart is 0 but dbstart is 1 + */ + /* AuDebugOn(au_fbstart(file) < bstart); */ + + h_file = au_h_open(dentry, bstart, vfsub_file_flags(file) & ~O_TRUNC, + file, /*force_wr*/0); + err = PTR_ERR(h_file); + if (IS_ERR(h_file)) { + if (h_file_tmp) { + atomic_inc(&au_sbr(dentry->d_sb, bstart)->br_count); + au_set_h_fptr(file, bstart, h_file_tmp); + h_file_tmp = NULL; + } + 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, struct au_pin *pin) +{ + int err; + struct inode *inode, *h_inode; + struct dentry *h_dentry, *hi_wh; + struct au_cp_generic cpg = { + .dentry = file->f_dentry, + .bdst = bcpup, + .bsrc = -1, + .len = len, + .pin = pin + }; + + au_update_dbstart(cpg.dentry); + inode = cpg.dentry->d_inode; + h_inode = NULL; + if (au_dbstart(cpg.dentry) <= bcpup + && au_dbend(cpg.dentry) >= bcpup) { + h_dentry = au_h_dptr(cpg.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(&cpg, 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(cpg.dentry->d_sb), PLINK)) + au_plink_append(inode, bcpup, au_h_dptr(cpg.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 dbstart; + struct dentry *parent, *h_dentry; + struct inode *inode; + struct super_block *sb; + struct file *h_file; + struct au_cp_generic cpg = { + .dentry = file->f_dentry, + .bdst = -1, + .bsrc = -1, + .len = len, + .pin = pin, + .flags = AuCpup_DTIME + }; + + sb = cpg.dentry->d_sb; + inode = cpg.dentry->d_inode; + AuDebugOn(au_special_file(inode->i_mode)); + cpg.bsrc = au_fbstart(file); + err = au_test_ro(sb, cpg.bsrc, inode); + if (!err && (au_hf_top(file)->f_mode & FMODE_WRITE)) { + err = au_pin(pin, cpg.dentry, cpg.bsrc, AuOpt_UDBA_NONE, + /*flags*/0); + goto out; + } + + /* need to cpup or reopen */ + parent = dget_parent(cpg.dentry); + di_write_lock_parent(parent); + err = AuWbrCopyup(au_sbi(sb), cpg.dentry); + cpg.bdst = err; + if (unlikely(err < 0)) + goto out_dgrade; + err = 0; + + if (!d_unhashed(cpg.dentry) && !au_h_dptr(parent, cpg.bdst)) { + err = au_cpup_dirs(cpg.dentry, cpg.bdst); + if (unlikely(err)) + goto out_dgrade; + } + + err = au_pin(pin, cpg.dentry, cpg.bdst, AuOpt_UDBA_NONE, + AuPin_DI_LOCKED | AuPin_MNT_WRITE); + if (unlikely(err)) + goto out_dgrade; + + h_dentry = au_hf_top(file)->f_dentry; + dbstart = au_dbstart(cpg.dentry); + if (dbstart <= cpg.bdst) { + h_dentry = au_h_dptr(cpg.dentry, cpg.bdst); + AuDebugOn(!h_dentry); + cpg.bsrc = cpg.bdst; + } + + if (dbstart <= cpg.bdst /* just reopen */ + || !d_unhashed(cpg.dentry) /* copyup and reopen */ + ) { + h_file = au_h_open_pre(cpg.dentry, cpg.bsrc, /*force_wr*/0); + if (IS_ERR(h_file)) + err = PTR_ERR(h_file); + else { + di_downgrade_lock(parent, AuLock_IR); + if (dbstart > cpg.bdst) + err = au_sio_cpup_simple(&cpg); + if (!err) + err = au_reopen_nondir(file); + au_h_open_post(cpg.dentry, cpg.bsrc, h_file); + } + } else { /* copyup as wh and reopen */ + /* + * since writable hfsplus branch is not supported, + * h_open_pre/post() are unnecessary. + */ + err = au_ready_to_write_wh(file, len, cpg.bdst, pin); + di_downgrade_lock(parent, AuLock_IR); + } + + 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 super_block *sb; + struct inode *inode; + + inode = file_inode(file); + sb = inode->i_sb; + 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; + struct au_pin pin; + struct au_finfo *finfo; + struct dentry *parent, *hi_wh; + struct inode *inode; + struct super_block *sb; + struct au_cp_generic cpg = { + .dentry = file->f_dentry, + .bdst = -1, + .bsrc = -1, + .len = -1, + .pin = &pin, + .flags = AuCpup_DTIME + }; + + FiMustWriteLock(file); + + err = 0; + finfo = au_fi(file); + sb = cpg.dentry->d_sb; + inode = cpg.dentry->d_inode; + cpg.bdst = au_ibstart(inode); + if (cpg.bdst == finfo->fi_btop || IS_ROOT(cpg.dentry)) + goto out; + + parent = dget_parent(cpg.dentry); + if (au_test_ro(sb, cpg.bdst, inode)) { + di_read_lock_parent(parent, !AuLock_IR); + err = AuWbrCopyup(au_sbi(sb), cpg.dentry); + cpg.bdst = 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, cpg.bdst); + if (!S_ISDIR(inode->i_mode) + && au_opt_test(au_mntflags(sb), PLINK) + && au_plink_test(inode) + && !d_unhashed(cpg.dentry) + && cpg.bdst < au_dbstart(cpg.dentry)) { + err = au_test_and_cpup_dirs(cpg.dentry, cpg.bdst); + if (unlikely(err)) + goto out_unlock; + + /* always superio. */ + err = au_pin(&pin, cpg.dentry, cpg.bdst, AuOpt_UDBA_NONE, + AuPin_DI_LOCKED | AuPin_MNT_WRITE); + if (!err) { + err = au_sio_cpup_simple(&cpg); + au_unpin(&pin); + } + } else if (hi_wh) { + /* already copied-up after unlink */ + err = au_reopen_wh(file, cpg.bdst, 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 (file_inode(p->hf_file)) + 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 (file_inode(p->hf_file)) + 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 int aufs_set_page_dirty(struct page *page) +{ AuUnsupport(); return 0; } +static void aufs_invalidatepage(struct page *page, unsigned int offset, + unsigned int length) +{ 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, enum migrate_mode mode) +{ 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 void aufs_is_dirty_writeback(struct page *page, bool *dirty, + bool *writeback) +{ AuUnsupport(); } +static int aufs_error_remove_page(struct address_space *mapping, + struct page *page) +{ AuUnsupport(); return 0; } +static int aufs_swap_activate(struct swap_info_struct *sis, struct file *file, + sector_t *span) +{ AuUnsupport(); return 0; } +static void aufs_swap_deactivate(struct file *file) +{ AuUnsupport(); } +#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, + /* 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, + .is_dirty_writeback = aufs_is_dirty_writeback, + .error_remove_page = aufs_error_remove_page, + .swap_activate = aufs_swap_activate, + .swap_deactivate = aufs_swap_deactivate +#endif /* CONFIG_AUFS_DEBUG */ +}; --- linux-3.11.0.orig/ubuntu/aufs/branch.h +++ linux-3.11.0/ubuntu/aufs/branch.h @@ -0,0 +1,266 @@ +/* + * Copyright (C) 2005-2013 Junjiro R. Okajima + * + * This program, aufs is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public 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 "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) + +#ifdef CONFIG_AUFS_HFSNOTIFY +/* support for asynchronous destruction */ +struct au_br_hfsnotify { + struct fsnotify_group *hfsn_group; +}; +#endif + +/* sysfs entries */ +struct au_brsysfs { + char name[16]; + struct attribute attr; +}; + +enum { + AuBrSysfs_BR, + AuBrSysfs_BRID, + AuBrSysfs_Last +}; + +/* protected by superblock rwsem */ +struct au_branch { + struct au_xino_file br_xino; + + aufs_bindex_t br_id; + + int br_perm; + unsigned int br_dflags; + struct path br_path; + 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 au_br_hfsnotify *br_hfsn; +#endif + +#ifdef CONFIG_SYSFS + /* entries under sysfs per mount-point */ + struct au_brsysfs br_sysfs[AuBrSysfs_Last]; +#endif +}; + +/* ---------------------------------------------------------------------- */ + +static inline struct vfsmount *au_br_mnt(struct au_branch *br) +{ + return br->br_path.mnt; +} + +static inline struct dentry *au_br_dentry(struct au_branch *br) +{ + return br->br_path.dentry; +} + +static inline struct super_block *au_br_sb(struct au_branch *br) +{ + return au_br_mnt(br)->mnt_sb; +} + +/* branch permissions and attributes */ +#define AuBrPerm_RW 1 /* writable, hardlinkable wh */ +#define AuBrPerm_RO (1 << 1) /* readonly */ +#define AuBrPerm_RR (1 << 2) /* natively readonly */ +#define AuBrPerm_Mask (AuBrPerm_RW | AuBrPerm_RO | AuBrPerm_RR) + +#define AuBrRAttr_WH (1 << 3) /* whiteout-able */ + +#define AuBrWAttr_NoLinkWH (1 << 4) /* un-hardlinkable whiteouts */ + +#define AuBrAttr_UNPIN (1 << 5) /* rename-able top dir of + branch */ + +static inline int au_br_writable(int brperm) +{ + return brperm & AuBrPerm_RW; +} + +static inline int au_br_whable(int brperm) +{ + return brperm & (AuBrPerm_RW | AuBrRAttr_WH); +} + +static inline int au_br_wh_linkable(int brperm) +{ + return !(brperm & AuBrWAttr_NoLinkWH); +} + +static inline int au_br_rdonly(struct au_branch *br) +{ + return ((au_br_sb(br)->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); +#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); +long au_ibusy_ioctl(struct file *file, unsigned long arg); +#ifdef CONFIG_COMPAT +long au_ibusy_compat_ioctl(struct file *file, unsigned long arg); +#endif +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_br_mnt(au_sbr(sb, bindex)); +} + +static inline +struct super_block *au_sbr_sb(struct super_block *sb, aufs_bindex_t bindex) +{ + return au_br_sb(au_sbr(sb, bindex)); +} + +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-3.11.0.orig/ubuntu/aufs/hfsnotify.c +++ linux-3.11.0/ubuntu/aufs/hfsnotify.c @@ -0,0 +1,296 @@ +/* + * Copyright (C) 2005-2013 Junjiro R. Okajima + * + * This program, aufs is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public 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 __cacheline_aligned_in_smp atomic64_t au_hfsn_ifree = ATOMIC64_INIT(0); + +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"); + au_cache_free_hnotify(hn); + smp_mb__before_atomic_dec(); + if (atomic64_dec_and_test(&au_hfsn_ifree)) + wake_up(&au_hfsn_wq); +} + +static int au_hfsn_alloc(struct au_hinode *hinode) +{ + int err; + 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); + AuDebugOn(!br->br_hfsn); + + 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. + */ + err = fsnotify_add_mark(mark, br->br_hfsn->hfsn_group, hinode->hi_inode, + /*mnt*/NULL, /*allow_dups*/1); + /* even if err */ + fsnotify_put_mark(mark); + + return err; +} + +static int au_hfsn_free(struct au_hinode *hinode, struct au_hnotify *hn) +{ + struct fsnotify_mark *mark; + unsigned long long ull; + struct fsnotify_group *group; + + ull = atomic64_inc_return(&au_hfsn_ifree); + BUG_ON(!ull); + + mark = &hn->hn_mark; + spin_lock(&mark->lock); + group = mark->group; + fsnotify_get_group(group); + spin_unlock(&mark->lock); + fsnotify_destroy_mark(mark, group); + fsnotify_put_group(group); + + /* free hn by myself */ + return 0; +} + +/* ---------------------------------------------------------------------- */ + +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) \ + do { \ + if (mask & flag) \ + return #flag; \ + } while (0) + 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 void au_hfsn_free_group(struct fsnotify_group *group) +{ + struct au_br_hfsnotify *hfsn = group->private; + + AuDbg("here\n"); + kfree(hfsn); +} + +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 = QSTR_INIT(event->file_name, 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, + .free_group_priv = au_hfsn_free_group +}; + +/* ---------------------------------------------------------------------- */ + +static void au_hfsn_fin_br(struct au_branch *br) +{ + struct au_br_hfsnotify *hfsn; + + hfsn = br->br_hfsn; + if (hfsn) + fsnotify_put_group(hfsn->hfsn_group); +} + +static int au_hfsn_init_br(struct au_branch *br, int perm) +{ + int err; + struct fsnotify_group *group; + struct au_br_hfsnotify *hfsn; + + err = 0; + br->br_hfsn = NULL; + if (!au_br_hnotifyable(perm)) + goto out; + + err = -ENOMEM; + hfsn = kmalloc(sizeof(*hfsn), GFP_NOFS); + if (unlikely(!hfsn)) + goto out; + + err = 0; + group = fsnotify_alloc_group(&au_hfsn_ops); + if (IS_ERR(group)) { + err = PTR_ERR(group); + pr_err("fsnotify_alloc_group() failed, %d\n", err); + goto out_hfsn; + } + + group->private = hfsn; + hfsn->hfsn_group = group; + br->br_hfsn = hfsn; + goto out; /* success */ + +out_hfsn: + kfree(hfsn); +out: + return err; +} + +static int au_hfsn_reset_br(unsigned int udba, struct au_branch *br, int perm) +{ + int err; + + err = 0; + if (!br->br_hfsn) + err = au_hfsn_init_br(br, perm); + + return err; +} + +/* ---------------------------------------------------------------------- */ + +static void au_hfsn_fin(void) +{ + AuDbg("au_hfsn_ifree %lld\n", (long long)atomic64_read(&au_hfsn_ifree)); + wait_event(au_hfsn_wq, !atomic64_read(&au_hfsn_ifree)); +} + +const struct au_hnotify_op au_hnotify_op = { + .ctl = au_hfsn_ctl, + .alloc = au_hfsn_alloc, + .free = au_hfsn_free, + + .fin = au_hfsn_fin, + + .reset_br = au_hfsn_reset_br, + .fin_br = au_hfsn_fin_br, + .init_br = au_hfsn_init_br +}; --- linux-3.11.0.orig/ubuntu/aufs/debug.h +++ linux-3.11.0/ubuntu/aufs/debug.h @@ -0,0 +1,242 @@ +/* + * Copyright (C) 2005-2013 Junjiro R. Okajima + * + * This program, aufs is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public 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 + +#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_warn(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_dalias(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 AuDbgDAlias(i) do { \ + AuDbg(#i "\n"); \ + au_dpri_dalias(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 AuDbgDAlias(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-3.11.0.orig/ubuntu/aufs/Makefile +++ linux-3.11.0/ubuntu/aufs/Makefile @@ -0,0 +1,42 @@ + +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 requires the full pathname +ifdef M +ccflags-y += -include ${M}/../../ubuntu/include/linux/aufs_type.h +else +ccflags-y += -include ${srctree}/ubuntu/include/linux/aufs_type.h +endif + +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 \ + mvdown.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-3.11.0.orig/ubuntu/aufs/Kconfig +++ linux-3.11.0/ubuntu/aufs/Kconfig @@ -0,0 +1,202 @@ +config AUFS_FS + tristate "Aufs (Advanced multi layered unification filesystem) support" + 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 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_PROC_MAP + bool "support for /proc/maps and lsof(1)" + depends on PROC_FS + help + When you issue mmap(2) in aufs, it is actually a direct mmap(2) + call to the file on the branch fs since the file in aufs is + purely virtual. And the file path printed in /proc/maps (and + others) will be the path on the branch fs. In most cases, it + does no harm. But some utilities like lsof(1) may confuse since + the utility or user may expect the file path in aufs to be + printed. + To address this issue, aufs provides a patch which introduces a + new member called vm_prfile into struct vm_are_struct. The patch + is meaningless without enabling this configuration since nobody + sets the new vm_prfile member. + If you don't apply the patch, then enabling this configuration + will cause a compile error. + This approach is fragile since if someone else make some changes + around vm_file, then vm_prfile may not work anymore. As a + workaround such case, aufs provides this configuration. If you + disable it, then lsof(1) may produce incorrect result but the + problem will be gone even if the aufs patch is applied (I hope). + +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-3.11.0.orig/ubuntu/aufs/poll.c +++ linux-3.11.0/ubuntu/aufs/poll.c @@ -0,0 +1,56 @@ +/* + * Copyright (C) 2005-2013 Junjiro R. Okajima + * + * This program, aufs is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public 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-3.11.0.orig/ubuntu/aufs/procfs.c +++ linux-3.11.0/ubuntu/aufs/procfs.c @@ -0,0 +1,170 @@ +/* + * Copyright (C) 2010-2013 Junjiro R. Okajima + * + * This program, aufs is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public 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; + /* don't use au_sbilist_lock() here */ + 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 = kstrtoul(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-3.11.0.orig/ubuntu/aufs/f_op.c +++ linux-3.11.0/ubuntu/aufs/f_op.c @@ -0,0 +1,721 @@ +/* + * Copyright (C) 2005-2013 Junjiro R. Okajima + * + * This program, aufs is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public 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 "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)); + atomic_set(&finfo->fi_mmapped, 0); + bindex = au_dbstart(dentry); + h_file = au_h_open(dentry, bindex, flags, file, /*force_wr*/0); + 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) + 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); +} + +/* ---------------------------------------------------------------------- */ +/* + * read and write functions acquire [fdi]_rwsem once, but release before + * mmap_sem. This is because to stop a race condition between mmap(2). + * Releasing these aufs-rwsem should be safe, no branch-mamagement (by keeping + * si_rwsem), no harmful copy-up should happen. Actually copy-up may happen in + * read functions after [fdi]_rwsem are released, but it should be harmless. + */ + +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); + get_file(h_file); + di_read_unlock(dentry, AuLock_IR); + fi_read_unlock(file); + + /* filedata may be obsoleted by concurrent copyup, but no problem */ + err = vfsub_read_u(h_file, buf, count, ppos); + /* todo: necessary? */ + /* file->f_ra = h_file->f_ra; */ + /* update without lock, I don't think it a problem */ + fsstack_copy_attr_atime(dentry->d_inode, file_inode(h_file)); + fput(h_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 super_block *sb; + struct inode *inode; + struct file *h_file; + char __user *buf = (char __user *)ubuf; + + dentry = file->f_dentry; + sb = dentry->d_sb; + 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)) { + di_read_unlock(dentry, AuLock_IR); + fi_write_unlock(file); + goto out; + } + + h_file = au_hf_top(file); + get_file(h_file); + au_unpin(&pin); + di_read_unlock(dentry, AuLock_IR); + fi_write_unlock(file); + + err = vfsub_write_u(h_file, buf, count, ppos); + ii_write_lock_child(inode); + au_cpup_attr_timesizes(inode); + inode->i_mode = file_inode(h_file)->i_mode; + ii_write_unlock(inode); + fput(h_file); + +out: + si_read_unlock(sb); + mutex_unlock(&inode->i_mutex); + return err; +} + +static ssize_t au_do_aio(struct file *h_file, int rw, struct kiocb *kio, + const struct iovec *iov, unsigned long nv, loff_t pos) +{ + ssize_t err; + struct file *file; + ssize_t (*func)(struct kiocb *, const struct iovec *, unsigned long, + loff_t); + + err = security_file_permission(h_file, rw); + if (unlikely(err)) + goto out; + + err = -ENOSYS; + func = NULL; + if (rw == MAY_READ) + func = h_file->f_op->aio_read; + else if (rw == MAY_WRITE) + func = h_file->f_op->aio_write; + if (func) { + file = kio->ki_filp; + kio->ki_filp = h_file; + lockdep_off(); + err = func(kio, iov, nv, pos); + lockdep_on(); + 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); + get_file(h_file); + di_read_unlock(dentry, AuLock_IR); + fi_read_unlock(file); + + err = au_do_aio(h_file, MAY_READ, kio, iov, nv, pos); + /* todo: necessary? */ + /* file->f_ra = h_file->f_ra; */ + /* update without lock, I don't think it a problem */ + fsstack_copy_attr_atime(dentry->d_inode, file_inode(h_file)); + fput(h_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; + struct super_block *sb; + + file = kio->ki_filp; + dentry = file->f_dentry; + sb = dentry->d_sb; + 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)) { + di_read_unlock(dentry, AuLock_IR); + fi_write_unlock(file); + goto out; + } + + h_file = au_hf_top(file); + get_file(h_file); + au_unpin(&pin); + di_read_unlock(dentry, AuLock_IR); + fi_write_unlock(file); + + err = au_do_aio(h_file, MAY_WRITE, kio, iov, nv, pos); + ii_write_lock_child(inode); + au_cpup_attr_timesizes(inode); + inode->i_mode = file_inode(h_file)->i_mode; + ii_write_unlock(inode); + fput(h_file); + +out: + si_read_unlock(sb); + mutex_unlock(&inode->i_mutex); + return err; +} + +static ssize_t aufs_splice_read(struct file *file, loff_t *ppos, + struct pipe_inode_info *pipe, size_t len, + unsigned int flags) +{ + ssize_t err; + struct file *h_file; + struct dentry *dentry; + struct super_block *sb; + + dentry = file->f_dentry; + sb = dentry->d_sb; + si_read_lock(sb, AuLock_FLUSH | 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); + get_file(h_file); + if (au_test_loopback_kthread()) { + au_warn_loopback(h_file->f_dentry->d_sb); + if (file->f_mapping != h_file->f_mapping) { + file->f_mapping = h_file->f_mapping; + smp_mb(); /* unnecessary? */ + } + } + di_read_unlock(dentry, AuLock_IR); + fi_read_unlock(file); + + err = vfsub_splice_to(h_file, ppos, pipe, len, flags); + /* todo: necessasry? */ + /* file->f_ra = h_file->f_ra; */ + /* update without lock, I don't think it a problem */ + fsstack_copy_attr_atime(dentry->d_inode, file_inode(h_file)); + fput(h_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; + struct super_block *sb; + + dentry = file->f_dentry; + sb = dentry->d_sb; + 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)) { + di_read_unlock(dentry, AuLock_IR); + fi_write_unlock(file); + goto out; + } + + h_file = au_hf_top(file); + get_file(h_file); + au_unpin(&pin); + di_read_unlock(dentry, AuLock_IR); + fi_write_unlock(file); + + err = vfsub_splice_from(pipe, h_file, ppos, len, flags); + ii_write_lock_child(inode); + au_cpup_attr_timesizes(inode); + inode->i_mode = file_inode(h_file)->i_mode; + ii_write_unlock(inode); + fput(h_file); + +out: + si_read_unlock(sb); + mutex_unlock(&inode->i_mutex); + return err; +} + +/* ---------------------------------------------------------------------- */ + +/* + * The locking order around current->mmap_sem. + * - in most and regular cases + * file I/O syscall -- aufs_read() or something + * -- si_rwsem for read -- mmap_sem + * (Note that [fdi]i_rwsem are released before mmap_sem). + * - in mmap case + * mmap(2) -- mmap_sem -- aufs_mmap() -- si_rwsem for read -- [fdi]i_rwsem + * This AB-BA order is definitly bad, but is not a problem since "si_rwsem for + * read" allows muliple processes to acquire it and [fdi]i_rwsem are not held in + * file I/O. Aufs needs to stop lockdep in aufs_mmap() though. + * It means that when aufs acquires si_rwsem for write, the process should never + * acquire mmap_sem. + * + * Actually aufs_iterate() holds [fdi]i_rwsem before mmap_sem, but this is not a + * problem either since any directory is not able to be mmap-ed. + * The similar scenario is applied to aufs_readlink() too. + */ + +/* 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, LOCKED); +} + +static int aufs_mmap(struct file *file, struct vm_area_struct *vma) +{ + 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; + struct file *h_file; + struct au_branch *br; + struct au_pin pin; + + AuDbgVmRegion(file, vma); + + dentry = file->f_dentry; + sb = dentry->d_sb; + lockdep_off(); + si_read_lock(sb, AuLock_NOPLMW); + err = au_reval_and_lock_fdi(file, au_reopen_nondir, /*wlock*/1); + if (unlikely(err)) + goto out; + + if (wlock) { + err = au_ready_to_write(file, -1, &pin); + di_write_unlock(dentry); + if (unlikely(err)) { + fi_write_unlock(file); + goto out; + } + 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_set_mmapped(file); + fi_write_unlock(file); + lockdep_on(); + + au_vm_file_reset(vma, h_file); + err = security_mmap_file(h_file, au_prot_conv(vma->vm_flags), + au_flag_conv(vma->vm_flags)); + if (!err) + err = h_file->f_op->mmap(h_file, vma); + if (unlikely(err)) + goto out_reset; + + au_vm_prfile_set(vma, file); + /* update without lock, I don't think it a problem */ + fsstack_copy_attr_atime(file_inode(file), file_inode(h_file)); + goto out_fput; /* success */ + +out_reset: + au_unset_mmapped(file); + au_vm_file_reset(vma, file); +out_fput: + fput(h_file); + lockdep_off(); +out: + si_read_unlock(sb); + lockdep_on(); + AuTraceErr(err); + return err; +} + +/* ---------------------------------------------------------------------- */ + +static int aufs_fsync_nondir(struct file *file, loff_t start, loff_t end, + 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; + sb = dentry->d_sb; + mutex_lock(&inode->i_mutex); + 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); + err = vfsub_fsync(h_file, &h_file->f_path, datasync); + au_cpup_attr_timesizes(inode); + +out_unlock: + di_read_unlock(dentry, AuLock_IR); + fi_write_unlock(file); +out_si: + si_read_unlock(sb); +out: + mutex_unlock(&inode->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 mutex *h_mtx; + + h_mtx = &file_inode(h_file)->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, + + .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_compat_ioctl_nondir, +#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-3.11.0.orig/ubuntu/aufs/export.c +++ linux-3.11.0/ubuntu/aufs/export.c @@ -0,0 +1,832 @@ +/* + * Copyright (C) 2005-2013 Junjiro R. Okajima + * + * This program, aufs is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public 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 "../fs/mount.h" +#include "aufs.h" + +union conv { +#ifdef CONFIG_AUFS_INO_T_64 + __u32 a[2]; +#else + __u32 a[1]; +#endif + ino_t ino; +}; + +static ino_t decode_ino(__u32 *a) +{ + union conv u; + + BUILD_BUG_ON(sizeof(u.ino) != sizeof(u.a)); + u.a[0] = a[0]; +#ifdef CONFIG_AUFS_INO_T_64 + u.a[1] = a[1]; +#endif + return u.ino; +} + +static void encode_ino(__u32 *a, ino_t ino) +{ + union conv u; + + u.ino = ino; + a[0] = u.a[0]; +#ifdef CONFIG_AUFS_INO_T_64 + a[1] = u.a[1]; +#endif +} + +/* NFS file handle */ +enum { + Fh_br_id, + Fh_sigen, +#ifdef CONFIG_AUFS_INO_T_64 + /* support 64bit inode number */ + Fh_ino1, + Fh_ino2, + Fh_dir_ino1, + Fh_dir_ino2, +#else + Fh_ino1, + Fh_dir_ino1, +#endif + Fh_igen, + Fh_h_type, + Fh_tail, + + Fh_ino = Fh_ino1, + Fh_dir_ino = Fh_dir_ino1 +}; + +static int au_test_anon(struct dentry *dentry) +{ + /* note: read d_flags without d_lock */ + return !!(dentry->d_flags & DCACHE_DISCONNECTED); +} + +int au_test_nfsd(void) +{ + int ret; + struct task_struct *tsk = current; + char comm[sizeof(tsk->comm)]; + + ret = 0; + if (tsk->flags & PF_KTHREAD) { + get_task_comm(comm, tsk); + ret = !strcmp(comm, "nfsd"); + } + + return ret; +} + +/* ---------------------------------------------------------------------- */ +/* 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 (vfsub_f_size_read(file) + < 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, NULL))) + goto out_iput; + + dentry = NULL; + if (!dir_ino || S_ISDIR(inode->i_mode)) + dentry = d_find_alias(inode); + else { + spin_lock(&inode->i_lock); + hlist_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))) { + /* need to refresh */ + dput(dentry); + dentry = NULL; + } + +out_iput: + iput(inode); +out: + AuTraceErrPtr(dentry); + 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 path root; + struct au_compare_mnt_args args = { + .sb = sb + }; + + get_fs_root(current->fs, &root); + br_read_lock(&vfsmount_lock); + err = iterate_mounts(au_compare_mnt, &args, root.mnt); + br_read_unlock(&vfsmount_lock); + path_put(&root); + 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 { + struct dir_context ctx; + int called, found; + ino_t ino; + char *name; + int namelen; +}; + +static int +find_name_by_ino(struct dir_context *ctx, const char *name, int namelen, + loff_t offset, u64 ino, unsigned int d_type) +{ + struct find_name_by_ino *a = container_of(ctx, struct find_name_by_ino, + ctx); + + 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 = { + .ctx = { + .actor = au_diractor(find_name_by_ino) + } + }; + 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 = (void *)__get_free_page(GFP_NOFS); + if (unlikely(!arg.name)) + goto out_file; + arg.ino = ino; + arg.found = 0; + do { + arg.called = 0; + /* smp_mb(); */ + err = vfsub_iterate_dir(file, &arg.ctx); + } while (!err && !arg.found && arg.called); + dentry = ERR_PTR(err); + if (unlikely(err)) + goto out_name; + /* instead of ENOENT */ + dentry = ERR_PTR(-ESTALE); + if (!arg.found) + goto out_name; + + /* do not call vfsub_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: + free_page((unsigned long)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 = au_br_mnt(br); + 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 inode *inode, __u32 *fh, int *max_len, + struct inode *dir) +{ + int err; + aufs_bindex_t bindex; + struct super_block *sb, *h_sb; + struct dentry *dentry, *parent, *h_parent; + struct inode *h_dir; + struct au_branch *br; + + err = -ENOSPC; + if (unlikely(*max_len <= Fh_tail)) { + AuWarn1("NFSv2 client (max_len %d)?\n", *max_len); + goto out; + } + + err = FILEID_ROOT; + if (inode->i_ino == AUFS_ROOT_INO) { + AuDebugOn(inode->i_ino != AUFS_ROOT_INO); + goto out; + } + + h_parent = NULL; + sb = inode->i_sb; + err = si_read_lock(sb, AuLock_FLUSH); + if (unlikely(err)) + goto out; + +#ifdef CONFIG_AUFS_DEBUG + if (unlikely(!au_opt_test(au_mntflags(sb), XINO))) + AuWarn1("NFS-exporting requires xino\n"); +#endif + err = -EIO; + parent = NULL; + ii_read_lock_child(inode); + bindex = au_ibstart(inode); + if (!dir) { + dentry = d_find_alias(inode); + if (unlikely(!dentry)) + goto out_unlock; + AuDebugOn(au_test_anon(dentry)); + parent = dget_parent(dentry); + dput(dentry); + if (unlikely(!parent)) + goto out_unlock; + dir = parent->d_inode; + } + + ii_read_lock_parent(dir); + h_dir = au_h_iptr(dir, bindex); + ii_read_unlock(dir); + if (unlikely(!h_dir)) + goto out_parent; + h_parent = d_find_alias(h_dir); + if (unlikely(!h_parent)) + goto out_hparent; + + err = -EPERM; + br = au_sbr(sb, bindex); + h_sb = au_br_sb(br); + if (unlikely(!h_sb->s_export_op)) { + AuErr1("%s branch is not exportable\n", au_sbtype(h_sb)); + goto out_hparent; + } + + 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, dir->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 != FILEID_INVALID) + err = 99; + else + AuWarn1("%s encode_fh failed\n", au_sbtype(h_sb)); + +out_hparent: + dput(h_parent); +out_parent: + dput(parent); +out_unlock: + ii_read_unlock(inode); + si_read_unlock(sb); +out: + if (unlikely(err < 0)) + err = FILEID_INVALID; + 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-3.11.0.orig/ubuntu/aufs/conf.mk +++ linux-3.11.0/ubuntu/aufs/conf.mk @@ -0,0 +1,38 @@ + +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 \ + PROC_MAP \ + 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-3.11.0.orig/ubuntu/aufs/loop.h +++ linux-3.11.0/ubuntu/aufs/loop.h @@ -0,0 +1,53 @@ +/* + * Copyright (C) 2005-2013 Junjiro R. Okajima + * + * This program, aufs is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public 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 +/* drivers/block/loop.c */ +struct file *loop_backing_file(struct super_block *sb); + +/* loop.c */ +int au_test_loopback_overlap(struct super_block *sb, struct dentry *h_adding); +int au_test_loopback_kthread(void); +void au_warn_loopback(struct super_block *h_sb); + +int au_loopback_init(void); +void au_loopback_fin(void); +#else +AuStubInt0(au_test_loopback_overlap, struct super_block *sb, + struct dentry *h_adding) +AuStubInt0(au_test_loopback_kthread, void) +AuStubVoid(au_warn_loopback, struct super_block *h_sb) + +AuStubInt0(au_loopback_init, void) +AuStubVoid(au_loopback_fin, void) +#endif /* BLK_DEV_LOOP */ + +#endif /* __KERNEL__ */ +#endif /* __AUFS_LOOP_H__ */ --- linux-3.11.0.orig/ubuntu/aufs/hnotify.c +++ linux-3.11.0/ubuntu/aufs/hnotify.c @@ -0,0 +1,712 @@ +/* + * Copyright (C) 2005-2013 Junjiro R. Okajima + * + * This program, aufs is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public 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) { + hinode->hi_notify = NULL; + if (au_hnotify_op.free(hinode, hn)) + au_cache_free_hnotify(hn); + } +} + +/* ---------------------------------------------------------------------- */ + +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_warn("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_warn("branch root dir was changed\n"); + err = 0; + goto out; + } + + if (!isdir) { + AuDebugOn(!name); + au_iigen_dec(inode); + spin_lock(&inode->i_lock); + hlist_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_warn("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_warn("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_count(d)) { + 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_warn("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], f; + 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; + } + + f = 0; + if (!dir->i_nlink) + f = AuWkq_NEST; + err = au_wkq_nowait(au_hn_bh, args, dir->i_sb, f); + 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-3.11.0.orig/ubuntu/aufs/super.c +++ linux-3.11.0/ubuntu/aufs/super.c @@ -0,0 +1,1002 @@ +/* + * Copyright (C) 2005-2013 Junjiro R. Okajima + * + * This program, aufs is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public 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 "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_HLIST_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; + char *perm; + + 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 = au_br_mnt(br); + path.dentry = hdp[bindex].hd_dentry; + err = au_seq_path(seq, &path); + if (err > 0) { + perm = au_optstr_br_perm(br->br_perm); + if (perm) { + err = seq_printf(seq, "=%s", perm); + kfree(perm); + if (err == -1) + err = -E2BIG; + } else + err = -ENOMEM; + } + 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_puts(m, ",create="); + pat = au_optstr_wbr_create(v); + switch (v) { + case AuWbrCreate_TDP: + case AuWbrCreate_RR: + case AuWbrCreate_MFS: + case AuWbrCreate_PMFS: + seq_puts(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; + case AuWbrCreate_PMFSRR: + seq_printf(m, /*pat*/"pmfsrr:%llu", + sbinfo->si_wbr_mfs.mfsrr_watermark); + break; + case AuWbrCreate_PMFSRRV: + seq_printf(m, /*pat*/"pmfsrr:%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 super_block *sb) +{ +#ifdef CONFIG_SYSFS + return 0; +#else + int err; + const int len = sizeof(AUFS_XINO_FNAME) - 1; + aufs_bindex_t bindex, brid; + struct qstr *name; + struct file *f; + struct dentry *d, *h_root; + struct au_hdentry *hdp; + + AuRwMustAnyLock(&sbinfo->si_rwsem); + + err = 0; + 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 dentry *dentry) +{ + 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 = dentry->d_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, sb); + 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 u64 au_mul_till_max(u64 a, long mul) +{ + u64 old; + + old = a; + a *= mul; + if (old <= a) + return a; + return ULLONG_MAX; +} + +static int au_statfs_sum(struct super_block *sb, struct kstatfs *buf) +{ + int err; + long bsize, factor; + u64 blocks, bfree, bavail, files, ffree; + aufs_bindex_t bend, bindex, i; + unsigned char shared; + struct path h_path; + struct super_block *h_sb; + + err = 0; + bsize = LONG_MAX; + files = 0; + ffree = 0; + blocks = 0; + bfree = 0; + bavail = 0; + bend = au_sbend(sb); + for (bindex = 0; bindex <= bend; bindex++) { + h_path.mnt = au_sbr_mnt(sb, bindex); + h_sb = h_path.mnt->mnt_sb; + shared = 0; + for (i = 0; !shared && i < bindex; 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; + + if (bsize > buf->f_bsize) { + /* + * we will reduce bsize, so we have to expand blocks + * etc. to match them again + */ + factor = (bsize / buf->f_bsize); + blocks = au_mul_till_max(blocks, factor); + bfree = au_mul_till_max(bfree, factor); + bavail = au_mul_till_max(bavail, factor); + bsize = buf->f_bsize; + } + + factor = (buf->f_bsize / bsize); + blocks = au_add_till_max(blocks, + au_mul_till_max(buf->f_blocks, factor)); + bfree = au_add_till_max(bfree, + au_mul_till_max(buf->f_bfree, factor)); + bavail = au_add_till_max(bavail, + au_mul_till_max(buf->f_bavail, factor)); + files = au_add_till_max(files, buf->f_files); + ffree = au_add_till_max(ffree, buf->f_ffree); + } + + buf->f_bsize = bsize; + buf->f_blocks = blocks; + buf->f_bfree = bfree; + buf->f_bavail = bavail; + buf->f_files = files; + buf->f_ffree = ffree; + buf->f_frsize = 0; + +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; +} + +/* ---------------------------------------------------------------------- */ + +static int aufs_sync_fs(struct super_block *sb, int wait) +{ + int err, e; + aufs_bindex_t bend, bindex; + struct au_branch *br; + struct super_block *h_sb; + + err = 0; + si_noflush_read_lock(sb); + bend = au_sbend(sb); + for (bindex = 0; bindex <= bend; bindex++) { + br = au_sbr(sb, bindex); + if (!au_br_writable(br->br_perm)) + continue; + + h_sb = au_sbr_sb(sb, bindex); + if (h_sb->s_op->sync_fs) { + e = h_sb->s_op->sync_fs(h_sb, wait); + if (unlikely(e && !err)) + err = e; + /* go on even if an error happens */ + } + } + si_read_unlock(sb); + + 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_sb_list_lock); + list_for_each_entry(inode, head, i_sb_list) { + if (!is_bad_inode(inode) + && au_ii(inode)->ii_bstart >= 0) { + spin_lock(&inode->i_lock); + if (atomic_read(&inode->i_count)) { + au_igrab(inode); + *p++ = inode; + n++; + AuDebugOn(n > max); + } + spin_unlock(&inode->i_lock); + } + } + spin_unlock(&inode_sb_list_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, NULL) != 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, + .sync_fs = aufs_sync_fs, + .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; + set_nlink(inode, 2); + unlock_new_inode(inode); + + root = d_make_root(inode); + if (unlikely(!root)) + goto out; + err = PTR_ERR(root); + if (IS_ERR(root)) + goto out; + + err = au_di_init(root); + if (!err) { + sb->s_root = root; + return 0; /* success */ + } + dput(root); + +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: + dbgaufs_si_fin(au_sbi(sb)); + 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); + sbinfo->si_sb = NULL; + 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, + /* a race between rename and others */ + .fs_flags = FS_RENAME_DOES_D_MOVE, + .mount = aufs_mount, + .kill_sb = aufs_kill_sb, + /* no need to __module_get() and module_put(). */ + .owner = THIS_MODULE, +}; --- linux-3.11.0.orig/ubuntu/aufs/opts.c +++ linux-3.11.0/ubuntu/aufs/opts.c @@ -0,0 +1,1704 @@ +/* + * Copyright (C) 2005-2013 Junjiro R. Okajima + * + * This program, aufs is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public 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 /* 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 brperm = { + {AuBrPerm_RO, AUFS_BRPERM_RO}, + {AuBrPerm_RR, AUFS_BRPERM_RR}, + {AuBrPerm_RW, AUFS_BRPERM_RW}, + {0, NULL} +}; + +static match_table_t brattr = { + {AuBrAttr_UNPIN, AUFS_BRATTR_UNPIN}, + {AuBrRAttr_WH, AUFS_BRRATTR_WH}, + {AuBrWAttr_NoLinkWH, AUFS_BRWATTR_NLWH}, + {0, NULL} +}; + +#define AuBrStr_LONGEST AUFS_BRPERM_RW \ + "+" AUFS_BRATTR_UNPIN \ + "+" AUFS_BRWATTR_NLWH + +static int br_attr_val(char *str, match_table_t table, substring_t args[]) +{ + int attr, v; + char *p; + + attr = 0; + do { + p = strchr(str, '+'); + if (p) + *p = 0; + v = match_token(str, table, args); + if (v) + attr |= v; + else { + if (p) + *p = '+'; + pr_warn("ignored branch attribute %s\n", str); + break; + } + if (p) + str = p + 1; + } while (p); + + return attr; +} + +static int noinline_for_stack br_perm_val(char *perm) +{ + int val; + char *p, *q; + substring_t args[MAX_OPT_ARGS]; + + p = strchr(perm, '+'); + if (p) + *p = 0; + val = match_token(perm, brperm, args); + if (!val) { + if (p) + *p = '+'; + pr_warn("ignored branch permission %s\n", perm); + val = AuBrPerm_RO; + goto out; + } + if (!p) + goto out; + + p++; + while (1) { + q = strchr(p, '+'); + if (q) + *q = 0; + val |= br_attr_val(p, brattr, args); + if (q) { + *q = '+'; + p = q + 1; + } else + break; + } + switch (val & AuBrPerm_Mask) { + case AuBrPerm_RO: + case AuBrPerm_RR: + if (unlikely(val & AuBrWAttr_NoLinkWH)) { + pr_warn("ignored branch attribute %s\n", + AUFS_BRWATTR_NLWH); + val &= ~AuBrWAttr_NoLinkWH; + } + break; + case AuBrPerm_RW: + if (unlikely(val & AuBrRAttr_WH)) { + pr_warn("ignored branch attribute %s\n", + AUFS_BRRATTR_WH); + val &= ~AuBrRAttr_WH; + } + break; + } + +out: + return val; +} + +/* Caller should free the return value */ +char *au_optstr_br_perm(int brperm) +{ + char *p, a[sizeof(AuBrStr_LONGEST)]; + int sz; + +#define SetPerm(str) do { \ + sz = sizeof(str); \ + memcpy(a, str, sz); \ + p = a + sz - 1; \ + } while (0) + +#define AppendAttr(flag, str) do { \ + if (brperm & flag) { \ + sz = sizeof(str); \ + *p++ = '+'; \ + memcpy(p, str, sz); \ + p += sz - 1; \ + } \ + } while (0) + + switch (brperm & AuBrPerm_Mask) { + case AuBrPerm_RO: + SetPerm(AUFS_BRPERM_RO); + break; + case AuBrPerm_RR: + SetPerm(AUFS_BRPERM_RR); + break; + case AuBrPerm_RW: + SetPerm(AUFS_BRPERM_RW); + break; + default: + AuDebugOn(1); + } + + AppendAttr(AuBrAttr_UNPIN, AUFS_BRATTR_UNPIN); + AppendAttr(AuBrRAttr_WH, AUFS_BRRATTR_WH); + AppendAttr(AuBrWAttr_NoLinkWH, AUFS_BRWATTR_NLWH); + + AuDebugOn(strlen(a) >= sizeof(a)); + return kstrdup(a, GFP_NOFS); +#undef SetPerm +#undef AppendAttr +} + +/* ---------------------------------------------------------------------- */ + +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"}, + {AuWbrCreate_PMFSRR, "pmfsrr:%d"}, + {AuWbrCreate_PMFSRRV, "pmfsrr:%d:%d"}, + + {-1, NULL} +}; + +/* + * cf. linux/lib/parser.c and cmdline.c + * gave up calling memparse() since it uses simple_strtoull() instead of + * kstrto...(). + */ +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 = kstrtoull(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: + case AuWbrCreate_PMFSRRV: + 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: + case AuWbrCreate_PMFSRR: + 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: + case AuWbrCreate_PMFSRRV: + 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_RO; + 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_warn("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: + case AuWbrCreate_PMFSRR: + case AuWbrCreate_PMFSRRV: + 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_warn("first branch should be rw\n"); + if (unlikely(au_opt_test(sbinfo->si_mntflags, SHWH))) + pr_warn("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_warn("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); + + if (!au_br_writable(br->br_perm)) { + do_free = !!wbr; + skip = (!wbr + || (!wbr->wbr_whbase + && !wbr->wbr_plink + && !wbr->wbr_orph)); + } else if (!au_br_wh_linkable(br->br_perm)) { + /* 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; + } + } else { + /* 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; + } + } + 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(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-3.11.0.orig/ubuntu/aufs/fstype.h +++ linux-3.11.0/ubuntu/aufs/fstype.h @@ -0,0 +1,470 @@ +/* + * Copyright (C) 2005-2013 Junjiro R. Okajima + * + * This program, aufs is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public 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 + +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_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_EXT4_FS) || defined(CONFIG_EXT4_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 */ +} + +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_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_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) + /* 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-3.11.0.orig/ubuntu/aufs/rdu.c +++ linux-3.11.0/ubuntu/aufs/rdu.c @@ -0,0 +1,389 @@ +/* + * Copyright (C) 2005-2013 Junjiro R. Okajima + * + * This program, aufs is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public 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 "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 dir_context ctx; + struct aufs_rdu *rdu; + union au_rdu_ent_ul ent; + unsigned long end; + + struct super_block *sb; + int err; +}; + +static int au_rdu_fill(struct dir_context *ctx, const char *name, int nlen, + loff_t offset, u64 h_ino, unsigned int d_type) +{ + int err, len; + struct au_rdu_arg *arg = container_of(ctx, struct au_rdu_arg, ctx); + 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; + + /* unnecessary to support mmap_sem since this is a dir */ + 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; + + /* we don't have to care (FMODE_32BITHASH | FMODE_64BITHASH) for ext4 */ + 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_iterate_dir(h_file, &arg->ctx); + 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 = { + .ctx = { + .actor = au_diractor(au_rdu_fill) + } + }; + 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->iterate)) + 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) { + /* unnecessary to support mmap_sem since this is a dir */ + 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-3.11.0.orig/ubuntu/aufs/sbinfo.c +++ linux-3.11.0/ubuntu/aufs/sbinfo.c @@ -0,0 +1,347 @@ +/* + * Copyright (C) 2005-2013 Junjiro R. Okajima + * + * This program, aufs is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ + +/* + * superblock private data + */ + +#include "aufs.h" + +/* + * they are necessary regardless sysfs is disabled. + */ +void au_si_free(struct kobject *kobj) +{ + int i; + struct au_sbinfo *sbinfo; + char *locked __maybe_unused; /* debug only */ + + sbinfo = container_of(kobj, struct au_sbinfo, si_kobj); + for (i = 0; i < AuPlink_NHASH; i++) + AuDebugOn(!hlist_empty(&sbinfo->si_plink[i].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, i; + 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_last_br_id = AUFS_BRANCH_MAX / 2; + + 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; + + for (i = 0; i < AuPlink_NHASH; i++) + au_sphl_init(sbinfo->si_plink + i); + 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, /*half*/0); + 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-3.11.0.orig/ubuntu/aufs/dir.c +++ linux-3.11.0/ubuntu/aufs/dir.c @@ -0,0 +1,645 @@ +/* + * Copyright (C) 2005-2013 Junjiro R. Okajima + * + * This program, aufs is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public 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 "aufs.h" + +void au_add_nlink(struct inode *dir, struct inode *h_dir) +{ + unsigned int nlink; + + AuDebugOn(!S_ISDIR(dir->i_mode) || !S_ISDIR(h_dir->i_mode)); + + nlink = dir->i_nlink; + nlink += h_dir->i_nlink - 2; + if (h_dir->i_nlink < 2) + nlink += 2; + smp_mb(); + /* 0 can happen in revaliding */ + set_nlink(dir, nlink); +} + +void au_sub_nlink(struct inode *dir, struct inode *h_dir) +{ + unsigned int nlink; + + AuDebugOn(!S_ISDIR(dir->i_mode) || !S_ISDIR(h_dir->i_mode)); + + nlink = dir->i_nlink; + nlink -= h_dir->i_nlink - 2; + if (h_dir->i_nlink < 2) + nlink -= 2; + smp_mb(); + /* nlink == 0 means the branch-fs is broken */ + set_nlink(dir, nlink); +} + +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_inode(file)); + AuDebugOn(!S_ISDIR(file_inode(file)->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 && file_inode(h_file)) + sz += vfsub_f_size_read(h_file); + } + } 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, /*force_wr*/0); + 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, /*force_wr*/0); + 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) { + 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; + + if (au_test_ro(sb, bindex, inode)) + continue; + h_path.dentry = au_h_dptr(dentry, bindex); + if (!h_path.dentry) + continue; + + h_path.mnt = au_sbr_mnt(sb, bindex); + err = vfsub_fsync(NULL, &h_path, datasync); + } + + 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; + + err = au_reval_and_lock_fdi(file, reopen_dir, /*wlock*/1); + if (unlikely(err)) + goto out; + + sb = file->f_dentry->d_sb; + inode = file_inode(file); + 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 = vfsub_fsync(h_file, &h_file->f_path, datasync); + } + +out: + return err; +} + +/* + * @file may be NULL + */ +static int aufs_fsync_dir(struct file *file, loff_t start, loff_t end, + int datasync) +{ + int err; + struct dentry *dentry; + struct super_block *sb; + struct mutex *mtx; + + err = 0; + dentry = file->f_dentry; + mtx = &dentry->d_inode->i_mutex; + mutex_lock(mtx); + 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); + mutex_unlock(mtx); + return err; +} + +/* ---------------------------------------------------------------------- */ + +static int aufs_iterate(struct file *file, struct dir_context *ctx) +{ + int err; + struct dentry *dentry; + struct inode *inode, *h_inode; + struct super_block *sb; + + AuDbg("%.*s, ctx{%pf, %llu}\n", + AuDLNPair(file->f_dentry), ctx->actor, ctx->pos); + + 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; + + h_inode = au_h_iptr(inode, au_ibstart(inode)); + if (!au_test_nfsd()) { + err = au_vdir_fill_de(file, ctx); + fsstack_copy_attr_atime(inode, h_inode); + } else { + /* + * nfsd filldir may call lookup_one_len(), vfs_getattr(), + * encode_fh() and others. + */ + atomic_inc(&h_inode->i_count); + di_read_unlock(dentry, AuLock_IR); + si_read_unlock(sb); + err = au_vdir_fill_de(file, ctx); + fsstack_copy_attr_atime(inode, h_inode); + fi_write_unlock(file); + iput(h_inode); + + 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 dir_context ctx; + struct au_nhash *whlist; + unsigned int flags; + int err; + aufs_bindex_t bindex; +}; + +static int test_empty_cb(struct dir_context *ctx, const char *__name, + int namelen, loff_t offset __maybe_unused, u64 ino, + unsigned int d_type) +{ + struct test_empty_arg *arg = container_of(ctx, struct test_empty_arg, + ctx); + 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, /*force_wr*/0); + 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) + && !file_inode(h_file)->i_nlink) + goto out_put; + + do { + arg->err = 0; + au_fclr_testempty(arg->flags, CALLED); + /* smp_mb(); */ + err = vfsub_iterate_dir(h_file, &arg->ctx); + 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; + /* todo: i_mode changes anytime? */ + 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 = { + .ctx = { + .actor = au_diractor(test_empty_cb) + } + }; + + 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 = { + .ctx = { + .actor = au_diractor(test_empty_cb) + } + }; + 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, + .iterate = aufs_iterate, + .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-3.11.0.orig/ubuntu/aufs/aufs.h +++ linux-3.11.0/ubuntu/aufs/aufs.h @@ -0,0 +1,60 @@ +/* + * Copyright (C) 2005-2013 Junjiro R. Okajima + * + * This program, aufs is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public 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" +#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-3.11.0.orig/ubuntu/aufs/opts.h +++ linux-3.11.0/ubuntu/aufs/opts.h @@ -0,0 +1,211 @@ +/* + * Copyright (C) 2005-2013 Junjiro R. Okajima + * + * This program, aufs is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public 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 + +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_PMFSRR, /* parent, mfs and round-robin */ + AuWbrCreate_PMFSRRV, /* plus 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; +}; + +/* ---------------------------------------------------------------------- */ + +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-3.11.0.orig/ubuntu/aufs/i_op_ren.c +++ linux-3.11.0/ubuntu/aufs/i_op_ren.c @@ -0,0 +1,1009 @@ +/* + * Copyright (C) 2005-2013 Junjiro R. Okajima + * + * This program, aufs is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public 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 = vfsub_lkup_one(&a->src_dentry->d_name, + a->src_h_parent); + rerr = PTR_ERR(a->h_path.dentry); + if (IS_ERR(a->h_path.dentry)) { + RevertFailure("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 = vfsub_lkup_one(&a->dst_dentry->d_name, + a->dst_h_parent); + rerr = PTR_ERR(a->h_path.dentry); + if (IS_ERR(a->h_path.dentry)) { + RevertFailure("lkup one %.*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 + BUG(); + + 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_warn("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, /*wh*/0); + if (unlikely(err)) + goto out_whtmp; + a->dst_h_dentry = au_h_dptr(d, a->btgt); + } + + BUG_ON(a->dst_h_dentry->d_inode && a->src_bstart != a->btgt); + + /* 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) +{ + vfsub_unlock_rename(a->src_h_parent, a->src_hdir, + a->dst_h_parent, a->dst_hdir); + if (au_ftest_ren(a->flags, MNT_WRITE)) + vfsub_mnt_drop_write(au_br_mnt(a->br)); +} + +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); + + err = vfsub_mnt_want_write(au_br_mnt(a->br)); + if (unlikely(err)) + goto out; + au_fset_ren(a->flags, MNT_WRITE); + 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) + goto out; /* success */ + + err = au_busy_or_stale(); + 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; + + /* + * is it possible? + * yes, it happend (in linux-3.3-rcN) but I don't know why. + * there may exist a problem somewhere else. + */ + err = -EINVAL; + if (unlikely(a->dst_parent->d_inode == a->src_dentry->d_inode)) + 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 = au_br_mnt(a->br); + + /* 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); + + /* cpup src */ + if (a->src_bstart != a->btgt) { + struct au_pin pin; + + err = au_pin(&pin, a->src_dentry, a->btgt, + au_opt_udba(a->src_dentry->d_sb), + AuPin_DI_LOCKED | AuPin_MNT_WRITE); + if (!err) { + struct au_cp_generic cpg = { + .dentry = a->src_dentry, + .bdst = a->btgt, + .bsrc = a->src_bstart, + .len = -1, + .pin = &pin, + .flags = AuCpup_DTIME | AuCpup_HOPEN + }; + AuDebugOn(au_dbstart(a->src_dentry) != a->src_bstart); + err = au_sio_cpup_simple(&cpg); + au_unpin(&pin); + } + if (unlikely(err)) + goto out_children; + a->src_bstart = a->btgt; + a->src_h_dentry = au_h_dptr(a->src_dentry, a->btgt); + au_fset_ren(a->flags, WHSRC); + } + + /* lock them all */ + err = au_ren_lock(a); + if (unlikely(err)) + /* leave the copied-up one */ + 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-3.11.0.orig/ubuntu/aufs/dinfo.c +++ linux-3.11.0/ubuntu/aufs/dinfo.c @@ -0,0 +1,543 @@ +/* + * Copyright (C) 2005-2013 Junjiro R. Okajima + * + * This program, aufs is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public 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_count(d) <= 0); + return d; +} + +/* + * extended version of au_h_dptr(). + * returns a hashed and positive h_dentry in bindex, NULL, or error. + */ +struct dentry *au_h_d_alias(struct dentry *dentry, aufs_bindex_t bindex) +{ + struct dentry *h_dentry; + struct inode *inode, *h_inode; + + inode = dentry->d_inode; + AuDebugOn(!inode); + + h_dentry = NULL; + if (au_dbstart(dentry) <= bindex + && bindex <= au_dbend(dentry)) + h_dentry = au_h_dptr(dentry, bindex); + if (h_dentry && !au_d_hashed_positive(h_dentry)) { + dget(h_dentry); + goto out; /* success */ + } + + AuDebugOn(bindex < au_ibstart(inode)); + AuDebugOn(au_ibend(inode) < bindex); + h_inode = au_h_iptr(inode, bindex); + h_dentry = d_find_alias(h_inode); + if (h_dentry) { + if (!IS_ERR(h_dentry)) { + if (!au_d_hashed_positive(h_dentry)) + goto out; /* success */ + dput(h_dentry); + } else + goto out; + } + + if (au_opt_test(au_mntflags(dentry->d_sb), PLINK)) { + h_dentry = au_plink_lkup(inode, bindex); + AuDebugOn(!h_dentry); + if (!IS_ERR(h_dentry)) { + if (!au_d_hashed_positive(h_dentry)) + goto out; /* success */ + dput(h_dentry); + h_dentry = NULL; + } + } + +out: + AuDbgDentry(h_dentry); + return h_dentry; +} + +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-3.11.0.orig/ubuntu/aufs/whout.h +++ linux-3.11.0/ubuntu/aufs/whout.h @@ -0,0 +1,87 @@ +/* + * Copyright (C) 2005-2013 Junjiro R. Okajima + * + * This program, aufs is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public 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 "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 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-3.11.0.orig/ubuntu/aufs/dentry.c +++ linux-3.11.0/ubuntu/aufs/dentry.c @@ -0,0 +1,1065 @@ +/* + * Copyright (C) 2005-2013 Junjiro R. Okajima + * + * This program, aufs is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public 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" + +#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; +}; + +/* + * 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 = vfsub_lkup_one(&dentry->d_name, h_parent); + 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) +{ + 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 + }; + 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 = vfsub_lkup_one(name, parent); + else { + struct vfsub_lkup_one_args args = { + .errp = &dentry, + .name = name, + .parent = parent + }; + + wkq_err = au_wkq_wait(vfsub_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 wh) +{ + int err; + struct dentry *parent, *h_parent, *h_dentry; + struct au_branch *br; + + parent = dget_parent(dentry); + h_parent = au_h_dptr(parent, bindex); + br = au_sbr(dentry->d_sb, bindex); + if (wh) + h_dentry = au_whtmp_lkup(h_parent, br, &dentry->d_name); + else + h_dentry = au_sio_lkup_one(&dentry->d_name, h_parent, br); + 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; */ + kuid_t i_uid; + kgid_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 */ + || !uid_eq(ia->i_uid, h_inode->i_uid) + || !gid_eq(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 = vfsub_lkup_one(&h_dentry->d_name, h_parent); + 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); + 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 int au_do_h_d_reval(struct dentry *h_dentry, unsigned int flags, + struct dentry *dentry, aufs_bindex_t bindex) +{ + int err, valid; + + err = 0; + if (!(h_dentry->d_flags & DCACHE_OP_REVALIDATE)) + goto out; + + AuDbg("b%d\n", bindex); + /* + * gave up supporting LOOKUP_CREATE/OPEN for lower fs, + * due to whiteout and branch permission. + */ + flags &= ~(/*LOOKUP_PARENT |*/ LOOKUP_OPEN | LOOKUP_CREATE + | LOOKUP_FOLLOW | LOOKUP_EXCL); + /* it may return tri-state */ + valid = h_dentry->d_op->d_revalidate(h_dentry, flags); + + 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, + unsigned int flags, 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, flags, 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, unsigned int flags) +{ + int valid, err; + unsigned int sigen; + unsigned char do_udba; + struct super_block *sb; + struct inode *inode; + + /* todo: support rcu-walk? */ + if (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, flags, 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_weak_revalidate = aufs_d_revalidate, + .d_release = aufs_d_release +}; --- linux-3.11.0.orig/ubuntu/aufs/f_op_sp.c +++ linux-3.11.0/ubuntu/aufs/f_op_sp.c @@ -0,0 +1,383 @@ +/* + * Copyright (C) 2005-2013 Junjiro R. Okajima + * + * This program, aufs is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public 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" + +/* + * I don't think the size of this list grows much. + * so here is a very simple list implemented in order to find finfo matching a + * given file. + */ +static struct au_sphlhead au_finfo_sp = { + .spin = __SPIN_LOCK_INITIALIZER(au_finfo_sp.spin), + .head = HLIST_HEAD_INIT +}; + +struct au_finfo_sp { + struct hlist_node hlist; + struct file *file; + struct au_finfo *finfo; +}; + +struct au_finfo *au_fi_sp(struct file *file) +{ + struct au_finfo *finfo; + struct au_finfo_sp *sp; + + finfo = NULL; + spin_lock(&au_finfo_sp.spin); + hlist_for_each_entry(sp, &au_finfo_sp.head, hlist) { + if (sp->file != file) + continue; + finfo = sp->finfo; + break; + } + spin_unlock(&au_finfo_sp.spin); + + return finfo; +} + +static int au_fi_sp_add(struct file *file) +{ + int err; + struct au_finfo_sp *sp; + + err = -ENOMEM; + sp = kmalloc(sizeof(*sp), GFP_NOFS); + if (sp) { + err = 0; + sp->file = file; + sp->finfo = file->private_data; + spin_lock(&au_finfo_sp.spin); + hlist_add_head(&sp->hlist, &au_finfo_sp.head); + spin_unlock(&au_finfo_sp.spin); + } + return err; +} + +static void au_fi_sp_del(struct file *file) +{ + struct au_finfo_sp *sp, *do_free; + + do_free = NULL; + spin_lock(&au_finfo_sp.spin); + hlist_for_each_entry(sp, &au_finfo_sp.head, hlist) { + if (sp->file != file) + continue; + hlist_del(&sp->hlist); + do_free = sp; + break; + } + spin_unlock(&au_finfo_sp.spin); + kfree(do_free); +} + +/* ---------------------------------------------------------------------- */ + +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); + 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 */ + au_fi_sp_del(file); + 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; + struct au_pin pin; + struct au_wr_dir_args wr_dir_args = { + .force_btgt = -1, + .flags = 0 + }; + struct au_cp_generic cpg = { + .dentry = dentry, + .bdst = -1, + .bsrc = -1, + .len = -1, + .pin = &pin, + .flags = AuCpup_DTIME + }; + + 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; + cpg.bdst = err; + err = 0; + if (cpg.bdst == au_dbstart(dentry)) + goto out; /* success */ + + err = au_pin(&pin, dentry, cpg.bdst, au_opt_udba(dentry->d_sb), + AuPin_MNT_WRITE); + if (!err) { + err = au_sio_cpup_simple(&cpg); + 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; + + err = au_fi_sp_add(file); + if (unlikely(err)) + goto out; + + 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_del; + + sb = dentry->d_sb; + h_file = au_hf_top(file); + h_inode = file_inode(h_file); + 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_inode(file), file); + si_noflush_read_lock(sb); + fi_write_lock(file); + di_read_lock_child(dentry, AuLock_IR); + if (!err) { + au_init_fop_sp(file); + goto out; /* success */ + } + +out_del: + au_fi_sp_del(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-3.11.0.orig/ubuntu/aufs/wbr_policy.c +++ linux-3.11.0/ubuntu/aufs/wbr_policy.c @@ -0,0 +1,756 @@ +/* + * Copyright (C) 2005-2013 Junjiro R. Okajima + * + * This program, aufs is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public 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->i_flags); + 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) + +static int au_cpdown_dir_opq(struct dentry *dentry, aufs_bindex_t bdst, + unsigned int *flags) +{ + 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(*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 = au_br_mnt(br); + 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 au_pin *pin, + 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; + unsigned int *flags = 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, /*wh*/0); + 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(*flags, MADE_DIR); + + bopq = au_dbdiropq(dentry); + au_fclr_cpdown(*flags, WHED); + au_fclr_cpdown(*flags, DIROPQ); + if (au_dbwh(dentry) == bdst) + au_fset_cpdown(*flags, WHED); + if (!au_ftest_cpdown(*flags, PARENT_OPQ) && bopq <= bdst) + au_fset_cpdown(*flags, PARENT_OPQ); + h_inode = h_path.dentry->d_inode; + mutex_lock_nested(&h_inode->i_mutex, AuLsc_I_CHILD); + if (au_ftest_cpdown(*flags, WHED)) { + err = au_cpdown_dir_opq(dentry, bdst, flags); + 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(*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(*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(*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; + unsigned int flags; + + flags = 0; + err = au_cp_dirs(dentry, bdst, au_cpdown_dir, &flags); + + return err; +} + +/* ---------------------------------------------------------------------- */ + +/* policies for create */ + +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, + unsigned int flags __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, unsigned int flags) +{ + 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 (!au_ftest_wbr(flags, DIR)) { + 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 dentry *parent) +{ + struct super_block *sb; + struct au_branch *br; + struct au_wbr_mfs *mfs; + struct dentry *h_parent; + 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; + if (!parent) { + bindex = 0; + bend = au_sbend(sb); + } else { + bindex = au_dbstart(parent); + bend = au_dbtaildir(parent); + } + + for (; bindex <= bend; bindex++) { + if (parent) { + 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)) + continue; + + /* sb->s_root for NFS is unreliable */ + h_path.mnt = au_br_mnt(br); + 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, unsigned int flags) +{ + int err; + struct dentry *parent; + struct super_block *sb; + struct au_wbr_mfs *mfs; + + err = au_wbr_create_exp(dentry); + if (err >= 0) + goto out; + + sb = dentry->d_sb; + parent = NULL; + if (au_ftest_wbr(flags, PARENT)) + parent = dget_parent(dentry); + 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, parent); + mutex_unlock(&mfs->mfs_lock); + err = mfs->mfs_bindex; + dput(parent); + + 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, unsigned int flags) +{ + int err; + struct au_wbr_mfs *mfs; + + err = au_wbr_create_mfs(dentry, flags); + 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, flags); + 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, unsigned int flags) +{ + 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, flags); + 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, flags); + 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; +} + +/* ---------------------------------------------------------------------- */ + +/* + * - top down parent + * - most free space with parent + * - most free space round-robin regardless parent + */ +static int au_wbr_create_pmfsrr(struct dentry *dentry, unsigned int flags) +{ + int err; + unsigned long long watermark; + struct super_block *sb; + struct au_branch *br; + struct au_wbr_mfs *mfs; + + err = au_wbr_create_pmfs(dentry, flags | AuWbr_PARENT); + if (unlikely(err < 0)) + goto out; + + sb = dentry->d_sb; + br = au_sbr(sb, err); + mfs = &au_sbi(sb)->si_wbr_mfs; + mutex_lock(&mfs->mfs_lock); + watermark = mfs->mfsrr_watermark; + mutex_unlock(&mfs->mfs_lock); + if (br->br_wbr->wbr_bytes < watermark) + /* regardless the parent dir */ + err = au_wbr_create_mfsrr(dentry, flags); + +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, /*flags, 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 + }, + [AuWbrCreate_PMFSRR] = { + .create = au_wbr_create_pmfsrr, + .init = au_wbr_create_init_mfsrr, + .fin = au_wbr_create_fin_mfs + }, + [AuWbrCreate_PMFSRRV] = { + .create = au_wbr_create_pmfsrr, + .init = au_wbr_create_init_mfsrr, + .fin = au_wbr_create_fin_mfs + } +}; --- linux-3.11.0.orig/ubuntu/aufs/rwsem.h +++ linux-3.11.0/ubuntu/aufs/rwsem.h @@ -0,0 +1,188 @@ +/* + * Copyright (C) 2005-2013 Junjiro R. Okajima + * + * This program, aufs is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public 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 "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-3.11.0.orig/ubuntu/aufs/plink.c +++ linux-3.11.0/ubuntu/aufs/plink.c @@ -0,0 +1,520 @@ +/* + * Copyright (C) 2005-2013 Junjiro R. Okajima + * + * This program, aufs is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public 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; +} + +/* ---------------------------------------------------------------------- */ + +#ifdef CONFIG_AUFS_DEBUG +void au_plink_list(struct super_block *sb) +{ + int i; + struct au_sbinfo *sbinfo; + struct hlist_head *plink_hlist; + 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)); + + for (i = 0; i < AuPlink_NHASH; i++) { + plink_hlist = &sbinfo->si_plink[i].head; + rcu_read_lock(); + hlist_for_each_entry_rcu(plink, plink_hlist, hlist) + 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, i; + struct au_sbinfo *sbinfo; + struct hlist_head *plink_hlist; + 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; + i = au_plink_hash(inode->i_ino); + plink_hlist = &sbinfo->si_plink[i].head; + rcu_read_lock(); + hlist_for_each_entry_rcu(plink, plink_hlist, hlist) + 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 = vfsub_lkup_one(tgtname, h_parent); + 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 = QSTR_INIT(a, 0); + + 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 (!uid_eq(current_fsuid(), GLOBAL_ROOT_UID)) { + 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 = au_br_mnt(br) + }; + struct inode *h_dir; + + h_dir = h_parent->d_inode; + mutex_lock_nested(&h_dir->i_mutex, AuLsc_I_CHILD2); +again: + h_path.dentry = vfsub_lkup_one(tgt, h_parent); + 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 = QSTR_INIT(a, 0); + + 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 (!uid_eq(current_fsuid(), GLOBAL_ROOT_UID)) { + 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) + hlist_del(&plink->hlist); + 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 hlist_head *plink_hlist; + struct pseudo_link *plink, *tmp; + struct au_sphlhead *sphl; + int found, err, cnt, i; + + sb = inode->i_sb; + sbinfo = au_sbi(sb); + AuDebugOn(!au_opt_test(au_mntflags(sb), PLINK)); + AuDebugOn(au_plink_maint(sb, AuLock_NOPLM)); + + found = au_plink_test(inode); + if (found) + return; + + i = au_plink_hash(inode->i_ino); + sphl = sbinfo->si_plink + i; + plink_hlist = &sphl->head; + tmp = kmalloc(sizeof(*plink), GFP_NOFS); + if (tmp) + tmp->inode = au_igrab(inode); + else { + err = -ENOMEM; + goto out; + } + + spin_lock(&sphl->spin); + hlist_for_each_entry(plink, plink_hlist, hlist) { + if (plink->inode == inode) { + found = 1; + break; + } + } + if (!found) + hlist_add_head_rcu(&tmp->hlist, plink_hlist); + spin_unlock(&sphl->spin); + if (!found) { + cnt = au_sphl_count(sphl); +#define msg "unexpectedly unblanced or too many pseudo-links" + if (cnt > AUFS_PLINK_WARN) + AuWarn1(msg ", %d\n", cnt); +#undef msg + err = whplink(h_dentry, inode, bindex, au_sbr(sb, bindex)); + } else { + do_put_plink(tmp, 0); + return; + } + +out: + if (unlikely(err)) { + pr_warn("err %d, damaged pseudo link.\n", err); + if (tmp) { + au_sphl_del_rcu(&tmp->hlist, sphl); + call_rcu(&tmp->rcu, do_put_plink_rcu); + } + } +} + +/* free all plinks */ +void au_plink_put(struct super_block *sb, int verbose) +{ + int i, warned; + struct au_sbinfo *sbinfo; + struct hlist_head *plink_hlist; + struct hlist_node *tmp; + struct pseudo_link *plink; + + SiMustWriteLock(sb); + + sbinfo = au_sbi(sb); + AuDebugOn(!au_opt_test(au_mntflags(sb), PLINK)); + AuDebugOn(au_plink_maint(sb, AuLock_NOPLM)); + + /* no spin_lock since sbinfo is write-locked */ + warned = 0; + for (i = 0; i < AuPlink_NHASH; i++) { + plink_hlist = &sbinfo->si_plink[i].head; + if (!warned && verbose && !hlist_empty(plink_hlist)) { + pr_warn("pseudo-link is not flushed"); + warned = 1; + } + hlist_for_each_entry_safe(plink, tmp, plink_hlist, hlist) + do_put_plink(plink, 0); + INIT_HLIST_HEAD(plink_hlist); + } +} + +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); +} + +static int au_plink_do_half_refresh(struct inode *inode, aufs_bindex_t br_id) +{ + int do_put; + aufs_bindex_t bstart, bend, bindex; + + do_put = 0; + 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; + } + if (do_put) + for (bindex = bstart; bindex <= bend; bindex++) + if (au_h_iptr(inode, bindex)) { + do_put = 0; + break; + } + } else + do_put = 1; + + return do_put; +} + +/* 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 hlist_head *plink_hlist; + struct hlist_node *tmp; + struct pseudo_link *plink; + struct inode *inode; + int i, do_put; + + SiMustWriteLock(sb); + + sbinfo = au_sbi(sb); + AuDebugOn(!au_opt_test(au_mntflags(sb), PLINK)); + AuDebugOn(au_plink_maint(sb, AuLock_NOPLM)); + + /* no spin_lock since sbinfo is write-locked */ + for (i = 0; i < AuPlink_NHASH; i++) { + plink_hlist = &sbinfo->si_plink[i].head; + hlist_for_each_entry_safe(plink, tmp, plink_hlist, hlist) { + inode = au_igrab(plink->inode); + ii_write_lock_child(inode); + do_put = au_plink_do_half_refresh(inode, br_id); + if (do_put) + do_put_plink(plink, 1); + ii_write_unlock(inode); + iput(inode); + } + } +} --- linux-3.11.0.orig/ubuntu/aufs/vdir.c +++ linux-3.11.0/ubuntu/aufs/vdir.c @@ -0,0 +1,888 @@ +/* + * Copyright (C) 2005-2013 Junjiro R. Okajima + * + * This program, aufs is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public 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 "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 *pos; + struct hlist_node *node; + + hlist_for_each_entry_safe(pos, node, head, wh_hash) + kfree(pos); +} + +static void au_nhash_de_do_free(struct hlist_head *head) +{ + struct au_vdir_dehstr *pos; + struct hlist_node *node; + + hlist_for_each_entry_safe(pos, node, head, hash) + au_cache_free_vdir_dehstr(pos); +} + +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 *pos; + + num = 0; + n = whlist->nh_num; + head = whlist->nh_head; + for (u = 0; u < n; u++, head++) + hlist_for_each_entry(pos, head, wh_hash) + if (pos->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 *pos; + struct au_vdir_destr *str; + + head = au_name_hash(whlist, name, nlen); + hlist_for_each_entry(pos, head, wh_hash) { + str = &pos->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 *pos; + struct au_vdir_destr *str; + + head = au_name_hash(delist, name, nlen); + hlist_for_each_entry(pos, head, hash) { + str = pos->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 dir_context ctx; + 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(struct dir_context *ctx, const char *__name, int nlen, + loff_t offset __maybe_unused, u64 h_ino, + unsigned int d_type) +{ + struct fillvdir_arg *arg = container_of(ctx, struct fillvdir_arg, ctx); + 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 *pos; + struct hlist_node *n; + char *p, *o; + struct au_vdir_destr *destr; + + AuDebugOn(!au_opt_test(au_mntflags(sb), SHWH)); + + err = -ENOMEM; + o = p = (void *)__get_free_page(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(pos, n, head, wh_hash) { + destr = &pos->wh_str; + memcpy(p, destr->name, destr->len); + err = append_de(vdir, o, destr->len + AUFS_WH_PFX_LEN, + pos->wh_ino, pos->wh_type, delist); + if (unlikely(err)) + break; + } + } + + free_page((unsigned long)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_iterate_dir(hf, &arg->ctx); + if (err >= 0) + err = arg->err; + } while (!err && au_ftest_fillvdir(arg->flags, CALLED)); + + /* + * dir_relax() may be good for concurrency, but aufs should not + * use it since it will cause a lockdep problem. + */ + } + + 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 = { + .ctx = { + .actor = au_diractor(fillvdir) + } + }; + struct inode *inode; + struct au_vdir *vdir, *allocated; + + err = 0; + inode = file_inode(file); + 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; */ /* todo: ctx->pos? */ + 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; + + /* test file->f_pos here instead of ctx->pos */ + 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) { + /* test file->f_pos here instead of ctx->pos */ + err = reinit_vdir(vdir_cache); + if (unlikely(err)) + goto out; + } else + return 0; /* success */ + + inode = file_inode(file); + 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, struct dir_context *ctx) +{ + 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 (ctx->pos == offset) + goto out; + + vdir_cache->vd_last.ul = 0; + vdir_cache->vd_last.p.deblk = vdir_cache->vd_deblk[0]; + if (!ctx->pos) + goto out; + + valid = 0; + deblk_sz = vdir_cache->vd_deblk_sz; + ul = div64_u64(ctx->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 < ctx->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, struct dir_context *ctx) +{ + 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, ctx)) + 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, ctx->pos, + (unsigned long)de->de_ino, de->de_type); + if (unlikely(!dir_emit(ctx, de->de_str.name, + de->de_str.len, de->de_ino, + de->de_type))) { + /* 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; + ctx->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]; + ctx->pos = deblk_sz * vdir_cache->vd_last.ul; + continue; + } + break; + } + + /* smp_mb(); */ + return 0; +} --- linux-3.11.0.orig/ubuntu/aufs/mvdown.c +++ linux-3.11.0/ubuntu/aufs/mvdown.c @@ -0,0 +1,608 @@ +/* + * Copyright (C) 2011-2013 Junjiro R. Okajima + * + * This program, aufs is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include "aufs.h" + +struct au_mvd_args { + struct { + struct super_block *h_sb; + struct dentry *h_parent; + struct au_hinode *hdir; + struct inode *h_dir, *h_inode; + } info[AUFS_MVDOWN_NARRAY]; + + struct aufs_mvdown mvdown; + struct dentry *dentry, *parent; + struct inode *inode, *dir; + struct super_block *sb; + aufs_bindex_t bopq, bwh, bfound; + unsigned char rename_lock; + struct au_pin pin; +}; + +#define mvd_errno mvdown.au_errno +#define mvd_bsrc mvdown.a[AUFS_MVDOWN_UPPER].bindex +#define mvd_src_brid mvdown.a[AUFS_MVDOWN_UPPER].brid +#define mvd_bdst mvdown.a[AUFS_MVDOWN_LOWER].bindex +#define mvd_dst_brid mvdown.a[AUFS_MVDOWN_LOWER].brid + +#define mvd_h_src_sb info[AUFS_MVDOWN_UPPER].h_sb +#define mvd_h_src_parent info[AUFS_MVDOWN_UPPER].h_parent +#define mvd_hdir_src info[AUFS_MVDOWN_UPPER].hdir +#define mvd_h_src_dir info[AUFS_MVDOWN_UPPER].h_dir +#define mvd_h_src_inode info[AUFS_MVDOWN_UPPER].h_inode + +#define mvd_h_dst_sb info[AUFS_MVDOWN_LOWER].h_sb +#define mvd_h_dst_parent info[AUFS_MVDOWN_LOWER].h_parent +#define mvd_hdir_dst info[AUFS_MVDOWN_LOWER].hdir +#define mvd_h_dst_dir info[AUFS_MVDOWN_LOWER].h_dir +#define mvd_h_dst_inode info[AUFS_MVDOWN_LOWER].h_inode + +#define AU_MVD_PR(flag, ...) do { \ + if (flag) \ + pr_err(__VA_ARGS__); \ + } while (0) + +/* make the parent dir on bdst */ +static int au_do_mkdir(const unsigned char dmsg, struct au_mvd_args *a) +{ + int err; + + err = 0; + a->mvd_hdir_src = au_hi(a->dir, a->mvd_bsrc); + a->mvd_hdir_dst = au_hi(a->dir, a->mvd_bdst); + a->mvd_h_src_parent = au_h_dptr(a->parent, a->mvd_bsrc); + a->mvd_h_dst_parent = NULL; + if (au_dbend(a->parent) >= a->mvd_bdst) + a->mvd_h_dst_parent = au_h_dptr(a->parent, a->mvd_bdst); + if (!a->mvd_h_dst_parent) { + err = au_cpdown_dirs(a->dentry, a->mvd_bdst); + if (unlikely(err)) { + AU_MVD_PR(dmsg, "cpdown_dirs failed\n"); + goto out; + } + a->mvd_h_dst_parent = au_h_dptr(a->parent, a->mvd_bdst); + } + +out: + AuTraceErr(err); + return err; +} + +/* lock them all */ +static int au_do_lock(const unsigned char dmsg, struct au_mvd_args *a) +{ + int err; + struct dentry *h_trap; + + a->mvd_h_src_sb = au_sbr_sb(a->sb, a->mvd_bsrc); + a->mvd_h_dst_sb = au_sbr_sb(a->sb, a->mvd_bdst); + if (a->mvd_h_src_sb != a->mvd_h_dst_sb) { + a->rename_lock = 0; + err = au_pin(&a->pin, a->dentry, a->mvd_bdst, + au_opt_udba(a->sb), + AuPin_MNT_WRITE | AuPin_DI_LOCKED); + if (!err) { + a->mvd_h_src_dir = a->mvd_h_src_parent->d_inode; + mutex_lock_nested(&a->mvd_h_src_dir->i_mutex, + AuLsc_I_PARENT3); + } else + AU_MVD_PR(dmsg, "pin failed\n"); + goto out; + } + + err = 0; + a->rename_lock = 1; + h_trap = vfsub_lock_rename(a->mvd_h_src_parent, a->mvd_hdir_src, + a->mvd_h_dst_parent, a->mvd_hdir_dst); + if (h_trap) { + err = (h_trap != a->mvd_h_src_parent); + if (err) + err = (h_trap != a->mvd_h_dst_parent); + } + BUG_ON(err); /* it should never happen */ + +out: + AuTraceErr(err); + return err; +} + +static void au_do_unlock(const unsigned char dmsg, struct au_mvd_args *a) +{ + if (!a->rename_lock) { + mutex_unlock(&a->mvd_h_src_dir->i_mutex); + au_unpin(&a->pin); + } else + vfsub_unlock_rename(a->mvd_h_src_parent, a->mvd_hdir_src, + a->mvd_h_dst_parent, a->mvd_hdir_dst); +} + +/* copy-down the file */ +static int au_do_cpdown(const unsigned char dmsg, struct au_mvd_args *a) +{ + int err; + struct au_cp_generic cpg = { + .dentry = a->dentry, + .bdst = a->mvd_bdst, + .bsrc = a->mvd_bsrc, + .len = -1, + .pin = &a->pin, + .flags = AuCpup_DTIME | AuCpup_HOPEN + }; + + AuDbg("b%d, b%d\n", cpg.bsrc, cpg.bdst); + if (a->mvdown.flags & AUFS_MVDOWN_OWLOWER) + au_fset_cpup(cpg.flags, OVERWRITE); + if (a->mvdown.flags & AUFS_MVDOWN_ROLOWER) + au_fset_cpup(cpg.flags, RWDST); + err = au_sio_cpdown_simple(&cpg); + if (unlikely(err)) + AU_MVD_PR(dmsg, "cpdown failed\n"); + + AuTraceErr(err); + return err; +} + +/* + * unlink the whiteout on bdst if exist which may be created by UDBA while we + * were sleeping + */ +static int au_do_unlink_wh(const unsigned char dmsg, struct au_mvd_args *a) +{ + int err; + struct path h_path; + struct au_branch *br; + + br = au_sbr(a->sb, a->mvd_bdst); + h_path.dentry = au_wh_lkup(a->mvd_h_dst_parent, &a->dentry->d_name, br); + err = PTR_ERR(h_path.dentry); + if (IS_ERR(h_path.dentry)) { + AU_MVD_PR(dmsg, "wh_lkup failed\n"); + goto out; + } + + err = 0; + if (h_path.dentry->d_inode) { + h_path.mnt = au_br_mnt(br); + err = vfsub_unlink(a->mvd_h_dst_parent->d_inode, &h_path, + /*force*/0); + if (unlikely(err)) + AU_MVD_PR(dmsg, "wh_unlink failed\n"); + } + dput(h_path.dentry); + +out: + AuTraceErr(err); + return err; +} + +/* + * unlink the topmost h_dentry + * Note: the target file MAY be modified by UDBA between this mutex_unlock() and + * mutex_lock() in vfs_unlink(). in this case, such changes may be lost. + */ +static int au_do_unlink(const unsigned char dmsg, struct au_mvd_args *a) +{ + int err; + struct path h_path; + + h_path.mnt = au_sbr_mnt(a->sb, a->mvd_bsrc); + h_path.dentry = au_h_dptr(a->dentry, a->mvd_bsrc); + err = vfsub_unlink(a->mvd_h_src_dir, &h_path, /*force*/0); + if (unlikely(err)) + AU_MVD_PR(dmsg, "unlink failed\n"); + + AuTraceErr(err); + return err; +} + +/* + * copy-down the file and unlink the bsrc file. + * - unlink the bdst whout if exist + * - copy-down the file (with whtmp name and rename) + * - unlink the bsrc file + */ +static int au_do_mvdown(const unsigned char dmsg, struct au_mvd_args *a) +{ + int err; + + err = au_do_mkdir(dmsg, a); + if (!err) + err = au_do_lock(dmsg, a); + if (unlikely(err)) + goto out; + + /* + * do not revert the activities we made on bdst since they should be + * harmless in aufs. + */ + + err = au_do_cpdown(dmsg, a); + if (!err) + err = au_do_unlink_wh(dmsg, a); + if (!err && !(a->mvdown.flags & AUFS_MVDOWN_KUPPER)) + err = au_do_unlink(dmsg, a); + if (unlikely(err)) + goto out_unlock; + + /* maintain internal array */ + if (!(a->mvdown.flags & AUFS_MVDOWN_KUPPER)) { + au_set_h_dptr(a->dentry, a->mvd_bsrc, NULL); + au_set_dbstart(a->dentry, a->mvd_bdst); + au_set_h_iptr(a->inode, a->mvd_bsrc, NULL, /*flags*/0); + au_set_ibstart(a->inode, a->mvd_bdst); + } + if (au_dbend(a->dentry) < a->mvd_bdst) + au_set_dbend(a->dentry, a->mvd_bdst); + if (au_ibend(a->inode) < a->mvd_bdst) + au_set_ibend(a->inode, a->mvd_bdst); + +out_unlock: + au_do_unlock(dmsg, a); +out: + AuTraceErr(err); + return err; +} + +/* ---------------------------------------------------------------------- */ + +static int find_lower_writable(struct au_mvd_args *a) +{ + struct super_block *sb; + aufs_bindex_t bindex, bend; + struct au_branch *br; + + sb = a->sb; + bindex = a->mvd_bsrc; + bend = au_sbend(sb); + if (!(a->mvdown.flags & AUFS_MVDOWN_ROLOWER)) { + for (bindex++; bindex <= bend; bindex++) { + br = au_sbr(sb, bindex); + if (!au_br_rdonly(br)) + return bindex; + } + } else { + for (bindex++; bindex <= bend; bindex++) { + br = au_sbr(sb, bindex); + if (!(au_br_sb(br)->s_flags & MS_RDONLY)) { + if (au_br_rdonly(br)) + a->mvdown.flags + |= AUFS_MVDOWN_ROLOWER_R; + return bindex; + } + } + } + + return -1; +} + +/* make sure the file is idle */ +static int au_mvd_args_busy(const unsigned char dmsg, struct au_mvd_args *a) +{ + int err, plinked; + + err = 0; + plinked = !!au_opt_test(au_mntflags(a->sb), PLINK); + if (au_dbstart(a->dentry) == a->mvd_bsrc + && d_count(a->dentry) == 1 + && atomic_read(&a->inode->i_count) == 1 + /* && a->mvd_h_src_inode->i_nlink == 1 */ + && (!plinked || !au_plink_test(a->inode)) + && a->inode->i_nlink == 1) + goto out; + + err = -EBUSY; + AU_MVD_PR(dmsg, + "b%d, d{b%d, c%u?}, i{c%d?, l%u}, hi{l%u}, p{%d, %d}\n", + a->mvd_bsrc, au_dbstart(a->dentry), d_count(a->dentry), + atomic_read(&a->inode->i_count), a->inode->i_nlink, + a->mvd_h_src_inode->i_nlink, + plinked, plinked ? au_plink_test(a->inode) : 0); + +out: + AuTraceErr(err); + return err; +} + +/* make sure the parent dir is fine */ +static int au_mvd_args_parent(const unsigned char dmsg, + struct au_mvd_args *a) +{ + int err; + aufs_bindex_t bindex; + + err = 0; + if (unlikely(au_alive_dir(a->parent))) { + err = -ENOENT; + AU_MVD_PR(dmsg, "parent dir is dead\n"); + goto out; + } + + a->bopq = au_dbdiropq(a->parent); + bindex = au_wbr_nonopq(a->dentry, a->mvd_bdst); + AuDbg("b%d\n", bindex); + if (unlikely((bindex >= 0 && bindex < a->mvd_bdst) + || (a->bopq != -1 && a->bopq < a->mvd_bdst))) { + err = -EINVAL; + a->mvd_errno = EAU_MVDOWN_OPAQUE; + AU_MVD_PR(dmsg, "ancestor is opaque b%d, b%d\n", + a->bopq, a->mvd_bdst); + } + +out: + AuTraceErr(err); + return err; +} + +static int au_mvd_args_intermediate(const unsigned char dmsg, + struct au_mvd_args *a) +{ + int err; + struct au_dinfo *dinfo, *tmp; + + /* lookup the next lower positive entry */ + err = -ENOMEM; + tmp = au_di_alloc(a->sb, AuLsc_DI_TMP); + if (unlikely(!tmp)) + goto out; + + a->bfound = -1; + a->bwh = -1; + dinfo = au_di(a->dentry); + au_di_cp(tmp, dinfo); + au_di_swap(tmp, dinfo); + + /* returns the number of positive dentries */ + err = au_lkup_dentry(a->dentry, a->mvd_bsrc + 1, /*type*/0); + if (!err) + a->bwh = au_dbwh(a->dentry); + else if (err > 0) + a->bfound = au_dbstart(a->dentry); + + au_di_swap(tmp, dinfo); + au_rw_write_unlock(&tmp->di_rwsem); + au_di_free(tmp); + if (unlikely(err < 0)) + AU_MVD_PR(dmsg, "failed look-up lower\n"); + + /* + * here, we have these cases. + * bfound == -1 + * no positive dentry under bsrc. there are more sub-cases. + * bwh < 0 + * there no whiteout, we can safely move-down. + * bwh <= bsrc + * impossible + * bsrc < bwh && bwh < bdst + * there is a whiteout on RO branch. cannot proceed. + * bwh == bdst + * there is a whiteout on the RW target branch. it should + * be removed. + * bdst < bwh + * there is a whiteout somewhere unrelated branch. + * -1 < bfound && bfound <= bsrc + * impossible. + * bfound < bdst + * found, but it is on RO branch between bsrc and bdst. cannot + * proceed. + * bfound == bdst + * found, replace it if AUFS_MVDOWN_FORCE is set. otherwise return + * error. + * bdst < bfound + * found, after we create the file on bdst, it will be hidden. + */ + + AuDebugOn(a->bfound == -1 + && a->bwh != -1 + && a->bwh <= a->mvd_bsrc); + AuDebugOn(-1 < a->bfound + && a->bfound <= a->mvd_bsrc); + + err = -EINVAL; + if (a->bfound == -1 + && a->mvd_bsrc < a->bwh + && a->bwh != -1 + && a->bwh < a->mvd_bdst) { + a->mvd_errno = EAU_MVDOWN_WHITEOUT; + AU_MVD_PR(dmsg, "bsrc %d, bdst %d, bfound %d, bwh %d\n", + a->mvd_bsrc, a->mvd_bdst, a->bfound, a->bwh); + goto out; + } else if (a->bfound != -1 && a->bfound < a->mvd_bdst) { + a->mvd_errno = EAU_MVDOWN_UPPER; + AU_MVD_PR(dmsg, "bdst %d, bfound %d\n", + a->mvd_bdst, a->bfound); + goto out; + } + + err = 0; /* success */ + +out: + AuTraceErr(err); + return err; +} + +static int au_mvd_args_exist(const unsigned char dmsg, struct au_mvd_args *a) +{ + int err; + + err = 0; + if (!(a->mvdown.flags & AUFS_MVDOWN_OWLOWER) + && a->bfound == a->mvd_bdst) + err = -EEXIST; + AuTraceErr(err); + return err; +} + +static int au_mvd_args(const unsigned char dmsg, struct au_mvd_args *a) +{ + int err; + struct au_branch *br; + + err = -EISDIR; + if (unlikely(S_ISDIR(a->inode->i_mode))) + goto out; + + err = -EINVAL; + if (!(a->mvdown.flags & AUFS_MVDOWN_BRID_UPPER)) + a->mvd_bsrc = au_ibstart(a->inode); + else { + a->mvd_bsrc = au_br_index(a->sb, a->mvd_src_brid); + if (unlikely(a->mvd_bsrc < 0 + || (a->mvd_bsrc < au_dbstart(a->dentry) + || au_dbend(a->dentry) < a->mvd_bsrc + || !au_h_dptr(a->dentry, a->mvd_bsrc)) + || (a->mvd_bsrc < au_ibstart(a->inode) + || au_ibend(a->inode) < a->mvd_bsrc + || !au_h_iptr(a->inode, a->mvd_bsrc)))) { + a->mvd_errno = EAU_MVDOWN_NOUPPER; + AU_MVD_PR(dmsg, "no upper\n"); + goto out; + } + } + if (unlikely(a->mvd_bsrc == au_sbend(a->sb))) { + a->mvd_errno = EAU_MVDOWN_BOTTOM; + AU_MVD_PR(dmsg, "on the bottom\n"); + goto out; + } + a->mvd_h_src_inode = au_h_iptr(a->inode, a->mvd_bsrc); + br = au_sbr(a->sb, a->mvd_bsrc); + err = au_br_rdonly(br); + if (!(a->mvdown.flags & AUFS_MVDOWN_ROUPPER)) { + if (unlikely(err)) + goto out; + } else if (!(vfsub_native_ro(a->mvd_h_src_inode) + || IS_APPEND(a->mvd_h_src_inode))) { + if (err) + a->mvdown.flags |= AUFS_MVDOWN_ROUPPER_R; + /* go on */ + } else + goto out; + + err = -EINVAL; + if (!(a->mvdown.flags & AUFS_MVDOWN_BRID_LOWER)) { + a->mvd_bdst = find_lower_writable(a); + if (unlikely(a->mvd_bdst < 0)) { + a->mvd_errno = EAU_MVDOWN_BOTTOM; + AU_MVD_PR(dmsg, "no writable lower branch\n"); + goto out; + } + } else { + a->mvd_bdst = au_br_index(a->sb, a->mvd_dst_brid); + if (unlikely(a->mvd_bdst < 0 + || au_sbend(a->sb) < a->mvd_bdst)) { + a->mvd_errno = EAU_MVDOWN_NOLOWERBR; + AU_MVD_PR(dmsg, "no lower brid\n"); + goto out; + } + } + + err = au_mvd_args_busy(dmsg, a); + if (!err) + err = au_mvd_args_parent(dmsg, a); + if (!err) + err = au_mvd_args_intermediate(dmsg, a); + if (!err) + err = au_mvd_args_exist(dmsg, a); + if (!err) + AuDbg("b%d, b%d\n", a->mvd_bsrc, a->mvd_bdst); + +out: + AuTraceErr(err); + return err; +} + +int au_mvdown(struct dentry *dentry, struct aufs_mvdown __user *uarg) +{ + int err, e; + unsigned char dmsg; + struct au_mvd_args *args; + + err = -EPERM; + if (unlikely(!capable(CAP_SYS_ADMIN))) + goto out; + + err = -ENOMEM; + args = kmalloc(sizeof(*args), GFP_NOFS); + if (unlikely(!args)) + goto out; + + err = copy_from_user(&args->mvdown, uarg, sizeof(args->mvdown)); + if (!err) + err = !access_ok(VERIFY_WRITE, uarg, sizeof(*uarg)); + if (unlikely(err)) { + err = -EFAULT; + AuTraceErr(err); + goto out_free; + } + AuDbg("flags 0x%x\n", args->mvdown.flags); + args->mvdown.flags &= ~(AUFS_MVDOWN_ROLOWER_R | AUFS_MVDOWN_ROUPPER_R); + args->mvdown.au_errno = 0; + args->dentry = dentry; + args->inode = dentry->d_inode; + args->sb = dentry->d_sb; + + err = -ENOENT; + dmsg = !!(args->mvdown.flags & AUFS_MVDOWN_DMSG); + args->parent = dget_parent(dentry); + args->dir = args->parent->d_inode; + mutex_lock_nested(&args->dir->i_mutex, I_MUTEX_PARENT); + dput(args->parent); + if (unlikely(args->parent != dentry->d_parent)) { + AU_MVD_PR(dmsg, "parent dir is moved\n"); + goto out_dir; + } + + mutex_lock_nested(&args->inode->i_mutex, I_MUTEX_CHILD); + err = aufs_read_lock(dentry, AuLock_DW | AuLock_FLUSH); + if (unlikely(err)) + goto out_inode; + + di_write_lock_parent(args->parent); + err = au_mvd_args(dmsg, args); + if (unlikely(err)) + goto out_parent; + + AuDbgDentry(dentry); + AuDbgInode(args->inode); + err = au_do_mvdown(dmsg, args); + if (unlikely(err)) + goto out_parent; + AuDbgDentry(dentry); + AuDbgInode(args->inode); + + au_cpup_attr_timesizes(args->dir); + au_cpup_attr_timesizes(args->inode); + au_cpup_igen(args->inode, au_h_iptr(args->inode, args->mvd_bdst)); + /* au_digen_dec(dentry); */ + +out_parent: + di_write_unlock(args->parent); + aufs_read_unlock(dentry, AuLock_DW); +out_inode: + mutex_unlock(&args->inode->i_mutex); +out_dir: + mutex_unlock(&args->dir->i_mutex); +out_free: + e = copy_to_user(uarg, &args->mvdown, sizeof(args->mvdown)); + if (unlikely(e)) + err = -EFAULT; + kfree(args); +out: + AuTraceErr(err); + return err; +} --- linux-3.11.0.orig/ubuntu/aufs/xino.c +++ linux-3.11.0/ubuntu/aufs/xino.c @@ -0,0 +1,1264 @@ +/* + * Copyright (C) 2005-2013 Junjiro R. Okajima + * + * This program, aufs is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public 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 "aufs.h" + +/* todo: unnecessary to support mmap_sem since kernel-space? */ +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_path.mnt; + 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, vfsub_f_size_read(copy_src)); + 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 = au_br_sb(br); + for (bi = 0; bi <= bend; bi++) { + if (unlikely(bi == bindex)) + continue; + br = au_sbr(sb, bi); + if (au_br_sb(br) != 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 + && file_inode(br->br_xino.xi_file)->i_blocks + >= br->br_xino_upper) + br->br_xino_upper += AUFS_XINO_TRUNC_STEP; + + ii_read_unlock(dir); + if (unlikely(err)) + pr_warn("err b%d, upper %llu, (%d)\n", + bindex, (unsigned long long)br->br_xino_upper, 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 (file_inode(br->br_xino.xi_file)->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, /*flags*/0); + 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(au_br_sb(br))) + 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 (vfsub_f_size_read(xib) >= 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(au_br_sb(br))) + 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 = vfsub_f_size_read(file) / 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 (vfsub_f_size_read(file) < 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 = au_br_sb(br); + for (bindex = 0; bindex <= bend; bindex++) { + b = au_sbr(sb, bindex); + if (tgt_sb == au_br_sb(b)) { + 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 = vfsub_f_size_read(file); + 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 (vfsub_f_size_read(file) <= 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 (vfsub_f_size_read(file) < 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(au_br_sb(br))) { + bwr = bindex; + break; + } + } + + if (bwr >= 0) { + file = ERR_PTR(-ENOMEM); + page = (void *)__get_free_page(GFP_NOFS); + if (unlikely(!page)) + goto out; + path.mnt = au_br_mnt(br); + 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); + } + free_page((unsigned long)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-3.11.0.orig/ubuntu/aufs/module.h +++ linux-3.11.0/ubuntu/aufs/module.h @@ -0,0 +1,105 @@ +/* + * Copyright (C) 2005-2013 Junjiro R. Okajima + * + * This program, aufs is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public 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; + +enum { + AuLcNonDir_FIINFO, + AuLcNonDir_DIINFO, + AuLcNonDir_IIINFO, + + AuLcDir_FIINFO, + AuLcDir_DIINFO, + AuLcDir_IIINFO, + + AuLcSymlink_DIINFO, + AuLcSymlink_IIINFO, + + AuLcKey_Last +}; +extern struct lock_class_key au_lc_key[AuLcKey_Last]; + +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, + AuCache_HNOTIFY, /* must be last */ + 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-3.11.0.orig/ubuntu/aufs/inode.h +++ linux-3.11.0/ubuntu/aufs/inode.h @@ -0,0 +1,600 @@ +/* + * Copyright (C) 2005-2013 Junjiro R. Okajima + * + * This program, aufs is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public 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 "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; +#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; +}; + +/* ig_flags */ +#define AuIG_HALF_REFRESHED 1 +#define au_ig_ftest(flags, name) ((flags) & AuIG_##name) +#define au_ig_fset(flags, name) \ + do { (flags) |= AuIG_##name; } while (0) +#define au_ig_fclr(flags, name) \ + do { (flags) &= ~AuIG_##name; } while (0) + +struct au_iigen { + __u32 ig_generation, ig_flags; +}; + +struct au_vdir; +struct au_iinfo { + spinlock_t ii_genspin; + struct au_iigen 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; + + /* temporary unlock/relock for copyup */ + struct dentry *h_dentry, *h_parent; + struct au_branch *br; + struct task_struct *task; +}; + +void au_pin_hdir_unlock(struct au_pin *p); +int au_pin_hdir_relock(struct au_pin *p); +void au_pin_hdir_set_owner(struct au_pin *p, struct task_struct *task); +void au_pin_hdir_acquire_nest(struct au_pin *p); +void au_pin_hdir_release(struct au_pin *p); + +/* ---------------------------------------------------------------------- */ + +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_TMP_WHENTRY (1 << 1) +#define AuWrDir_ISDIR (1 << 2) +#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, umode_t 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, umode_t mode, + bool want_excl); +int aufs_link(struct dentry *src_dentry, struct inode *dir, + struct dentry *dentry); +int aufs_mkdir(struct inode *dir, struct dentry *dentry, umode_t 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, int half); +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, struct au_iigen *iigen) +{ + unsigned int gen; + struct au_iinfo *iinfo; + + iinfo = au_ii(inode); + spin_lock(&iinfo->ii_genspin); + if (iigen) + *iigen = iinfo->ii_generation; + gen = iinfo->ii_generation.ig_generation; + spin_unlock(&iinfo->ii_genspin); + + return gen; +} + +/* 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) +{ + struct au_iinfo *iinfo; + + iinfo = au_ii(inode); + spin_lock(&iinfo->ii_genspin); + iinfo->ii_generation.ig_generation--; + spin_unlock(&iinfo->ii_genspin); +} + +static inline int au_iigen_test(struct inode *inode, unsigned int sigen) +{ + int err; + + err = 0; + if (unlikely(inode && au_iigen(inode, NULL) != 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); + + /* + * if it returns true, the the caller should free hinode->hi_notify, + * otherwise ->free() frees it. + */ + int (*free)(struct au_hinode *hinode, + struct au_hnotify *hn) __must_check; + + 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; +} + +static inline struct au_hnotify *au_hn(struct au_hinode *hinode) +{ + return hinode->hi_notify; +} + +#else +static inline +int au_hn_alloc(struct au_hinode *hinode __maybe_unused, + struct inode *inode __maybe_unused) +{ + return -EOPNOTSUPP; +} + +static inline struct au_hnotify *au_hn(struct au_hinode *hinode) +{ + return NULL; +} + +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-3.11.0.orig/ubuntu/aufs/magic.mk +++ linux-3.11.0/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-3.11.0.orig/ubuntu/aufs/dbgaufs.c +++ linux-3.11.0/ubuntu/aufs/dbgaufs.c @@ -0,0 +1,433 @@ +/* + * Copyright (C) 2005-2013 Junjiro R. Okajima + * + * This program, aufs is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public 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_path, &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); +} + +/* ---------------------------------------------------------------------- */ + +struct dbgaufs_plink_arg { + int n; + char a[]; +}; + +static int dbgaufs_plink_release(struct inode *inode __maybe_unused, + struct file *file) +{ + free_page((unsigned long)file->private_data); + return 0; +} + +static int dbgaufs_plink_open(struct inode *inode, struct file *file) +{ + int err, i, limit; + unsigned long n, sum; + struct dbgaufs_plink_arg *p; + struct au_sbinfo *sbinfo; + struct super_block *sb; + struct au_sphlhead *sphl; + + err = -ENOMEM; + p = (void *)get_zeroed_page(GFP_NOFS); + if (unlikely(!p)) + goto out; + + err = -EFBIG; + sbinfo = inode->i_private; + sb = sbinfo->si_sb; + si_noflush_read_lock(sb); + if (au_opt_test(au_mntflags(sb), PLINK)) { + limit = PAGE_SIZE - sizeof(p->n); + + /* the number of buckets */ + n = snprintf(p->a + p->n, limit, "%d\n", AuPlink_NHASH); + p->n += n; + limit -= n; + + sum = 0; + for (i = 0, sphl = sbinfo->si_plink; + i < AuPlink_NHASH; + i++, sphl++) { + n = au_sphl_count(sphl); + sum += n; + + n = snprintf(p->a + p->n, limit, "%lu ", n); + p->n += n; + limit -= n; + if (unlikely(limit <= 0)) + goto out_free; + } + p->a[p->n - 1] = '\n'; + + /* the sum of plinks */ + n = snprintf(p->a + p->n, limit, "%lu\n", sum); + p->n += n; + limit -= n; + if (unlikely(limit <= 0)) + goto out_free; + } else { +#define str "1\n0\n0\n" + p->n = sizeof(str) - 1; + strcpy(p->a, str); +#undef str + } + si_read_unlock(sb); + + err = 0; + file->private_data = p; + goto out; /* success */ + +out_free: + free_page((unsigned long)p); +out: + return err; +} + +static ssize_t dbgaufs_plink_read(struct file *file, char __user *buf, + size_t count, loff_t *ppos) +{ + struct dbgaufs_plink_arg *p; + + p = file->private_data; + return simple_read_from_buffer(buf, count, ppos, p->a, p->n); +} + +static const struct file_operations dbgaufs_plink_fop = { + .owner = THIS_MODULE, + .open = dbgaufs_plink_open, + .release = dbgaufs_plink_release, + .read = dbgaufs_plink_read +}; + +/* ---------------------------------------------------------------------- */ + +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 = kstrtol(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; + 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; + + sbinfo->si_dbgaufs_plink = debugfs_create_file + ("plink", dbgaufs_mode, sbinfo->si_dbgaufs, sbinfo, + &dbgaufs_plink_fop); + if (unlikely(!sbinfo->si_dbgaufs_plink)) + 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-3.11.0.orig/ubuntu/aufs/loop.c +++ linux-3.11.0/ubuntu/aufs/loop.c @@ -0,0 +1,147 @@ +/* + * Copyright (C) 2005-2013 Junjiro R. Okajima + * + * This program, aufs is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public 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 "aufs.h" + +/* added into drivers/block/loop.c */ +static struct file *(*backing_file_func)(struct super_block *sb); + +/* + * 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 file *backing_file; + + h_sb = h_adding->d_sb; + backing_file = backing_file_func(h_sb); + if (!backing_file) + return 0; + + h_adding = 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; + char c, comm[sizeof(tsk->comm)]; + + ret = 0; + if (tsk->flags & PF_KTHREAD) { + get_task_comm(comm, tsk); + c = comm[4]; + ret = ('0' <= c && c <= '9' + && !strncmp(comm, "loop", 4)); + } + + return ret; +} + +/* ---------------------------------------------------------------------- */ + +#define au_warn_loopback_step 16 +static int au_warn_loopback_nelem = au_warn_loopback_step; +static unsigned long *au_warn_loopback_array; + +void au_warn_loopback(struct super_block *h_sb) +{ + int i, new_nelem; + unsigned long *a, magic; + static DEFINE_SPINLOCK(spin); + + magic = h_sb->s_magic; + spin_lock(&spin); + a = au_warn_loopback_array; + for (i = 0; i < au_warn_loopback_nelem && *a; i++) + if (a[i] == magic) { + spin_unlock(&spin); + return; + } + + /* h_sb is new to us, print it */ + if (i < au_warn_loopback_nelem) { + a[i] = magic; + goto pr; + } + + /* expand the array */ + new_nelem = au_warn_loopback_nelem + au_warn_loopback_step; + a = au_kzrealloc(au_warn_loopback_array, + au_warn_loopback_nelem * sizeof(unsigned long), + new_nelem * sizeof(unsigned long), GFP_ATOMIC); + if (a) { + au_warn_loopback_nelem = new_nelem; + au_warn_loopback_array = a; + a[i] = magic; + goto pr; + } + + spin_unlock(&spin); + AuWarn1("realloc failed, ignored\n"); + return; + +pr: + spin_unlock(&spin); + pr_warn("you may want to try another patch for loopback file " + "on %s(0x%lx) branch\n", au_sbtype(h_sb), magic); +} + +int au_loopback_init(void) +{ + int err; + struct super_block *sb __maybe_unused; + + AuDebugOn(sizeof(sb->s_magic) != sizeof(unsigned long)); + + err = -ENOMEM; + au_warn_loopback_array = kcalloc(au_warn_loopback_step, + sizeof(unsigned long), GFP_NOFS); + if (unlikely(!au_warn_loopback_array)) + goto out; + + err = 0; + backing_file_func = symbol_get(loop_backing_file); + if (backing_file_func) + goto out; /* success */ + + pr_err("loop_backing_file() is not defined\n"); + err = -ENOSYS; + kfree(au_warn_loopback_array); +out: + return err; +} + +void au_loopback_fin(void) +{ + symbol_put(loop_backing_file); + kfree(au_warn_loopback_array); +} --- linux-3.11.0.orig/ubuntu/aufs/cpup.c +++ linux-3.11.0/ubuntu/aufs/cpup.c @@ -0,0 +1,1268 @@ +/* + * Copyright (C) 2005-2013 Junjiro R. Okajima + * + * This program, aufs is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public 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 "aufs.h" + +void au_cpup_attr_flags(struct inode *dst, unsigned int iflags) +{ + const unsigned int mask = S_DEAD | S_SWAPFILE | S_PRIVATE + | S_NOATIME | S_NOCMTIME | S_AUTOMOUNT; + + BUILD_BUG_ON(sizeof(iflags) != sizeof(dst->i_flags)); + + dst->i_flags |= iflags & ~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; + + /* + * 0 can happen in revalidating. + * h_inode->i_mutex is not held, but it is harmless since once i_nlink + * reaches 0, it will never become positive. + */ + set_nlink(inode, 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->i_flags); +} + +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_warn("restoring timestamps failed(%d). ignored\n", err); +} + +/* ---------------------------------------------------------------------- */ + +/* internal use only */ +struct au_cpup_reg_attr { + int valid; + struct kstat st; + unsigned int iflags; /* inode->i_flags */ +}; + +static noinline_for_stack +int cpup_iattr(struct dentry *dst, aufs_bindex_t bindex, struct dentry *h_src, + struct au_cpup_reg_attr *h_src_attr) +{ + int err, sbits; + struct iattr ia; + struct path h_path; + struct inode *h_isrc, *h_idst; + struct kstat *h_st; + + 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; + if (h_src_attr && h_src_attr->valid) { + h_st = &h_src_attr->st; + ia.ia_uid = h_st->uid; + ia.ia_gid = h_st->gid; + ia.ia_atime = h_st->atime; + ia.ia_mtime = h_st->mtime; + if (h_idst->i_mode != h_st->mode + && !S_ISLNK(h_idst->i_mode)) { + ia.ia_valid |= ATTR_MODE; + ia.ia_mode = h_st->mode; + } + sbits = !!(h_st->mode & (S_ISUID | S_ISGID)); + au_cpup_attr_flags(h_idst, h_src_attr->iflags); + } else { + 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->i_flags); + } + 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; + } + if (unlikely(err < 0)) + break; + } 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 = &file_inode(dst)->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 au_cp_generic *cpg) +{ + int err, i; + enum { SRC, DST }; + struct { + aufs_bindex_t bindex; + unsigned int flags; + struct dentry *dentry; + int force_wr; + struct file *file; + void *label, *label_file; + } *f, file[] = { + { + .bindex = cpg->bsrc, + .flags = O_RDONLY | O_NOATIME | O_LARGEFILE, + .label = &&out, + .label_file = &&out_src + }, + { + .bindex = cpg->bdst, + .flags = O_WRONLY | O_NOATIME | O_LARGEFILE, + .force_wr = !!au_ftest_cpup(cpg->flags, RWDST), + .label = &&out_src, + .label_file = &&out_dst + } + }; + struct super_block *sb; + + /* bsrc branch can be ro/rw. */ + sb = cpg->dentry->d_sb; + f = file; + for (i = 0; i < 2; i++, f++) { + f->dentry = au_h_dptr(cpg->dentry, f->bindex); + f->file = au_h_open(cpg->dentry, f->bindex, f->flags, + /*file*/NULL, f->force_wr); + 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, cpg->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 au_cp_generic *cpg, + struct au_cpup_reg_attr *h_src_attr) +{ + int err, rerr; + loff_t l; + struct path h_path; + struct inode *h_src_inode; + + err = 0; + h_src_inode = au_h_iptr(cpg->dentry->d_inode, cpg->bsrc); + l = i_size_read(h_src_inode); + if (cpg->len == -1 || l < cpg->len) + cpg->len = l; + if (cpg->len) { + /* try stopping to update while we are referencing */ + mutex_lock_nested(&h_src_inode->i_mutex, AuLsc_I_CHILD); + au_pin_hdir_unlock(cpg->pin); + + h_path.dentry = au_h_dptr(cpg->dentry, cpg->bsrc); + h_path.mnt = au_sbr_mnt(cpg->dentry->d_sb, cpg->bsrc); + h_src_attr->iflags = h_src_inode->i_flags; + err = vfs_getattr(&h_path, &h_src_attr->st); + if (unlikely(err)) { + mutex_unlock(&h_src_inode->i_mutex); + goto out; + } + h_src_attr->valid = 1; + err = au_cp_regular(cpg); + mutex_unlock(&h_src_inode->i_mutex); + rerr = au_pin_hdir_relock(cpg->pin); + if (!err && rerr) + err = rerr; + } + +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 = (void *)__get_free_page(GFP_NOFS); + if (unlikely(!sym.k)) + goto out; + + /* unnecessary to support mmap_sem since symlink is not mmap-able */ + 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); + } + free_page((unsigned long)sym.k); + +out: + return err; +} + +static noinline_for_stack +int cpup_entry(struct au_cp_generic *cpg, struct dentry *dst_parent, + struct au_cpup_reg_attr *h_src_attr) +{ + int err; + umode_t mode; + unsigned int mnt_flags; + unsigned char isdir; + const unsigned char do_dt = !!au_ftest_cpup(cpg->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(cpg->dentry, cpg->bsrc); + h_inode = h_src->d_inode; + AuDebugOn(h_inode != au_h_iptr(cpg->dentry->d_inode, cpg->bsrc)); + + /* try stopping to be referenced while we are creating */ + h_dst = au_h_dptr(cpg->dentry, cpg->bdst); + if (au_ftest_cpup(cpg->flags, RENAME)) + AuDebugOn(strncmp(h_dst->d_name.name, AUFS_WH_PFX, + AUFS_WH_PFX_LEN)); + 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 = cpg->dentry->d_sb; + h_path.mnt = au_sbr_mnt(sb, cpg->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: + err = vfsub_create(h_dir, &h_path, mode | S_IWUSR, + /*want_excl*/true); + if (!err) + err = au_do_cpup_regular(cpg, h_src_attr); + 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) == cpg->bdst) + au_cpup_attr_nlink(dst_parent->d_inode, + /*force*/1); + au_cpup_attr_nlink(cpg->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? */ + /* && cpg->dentry->d_inode->i_nlink == 1 */ + && cpg->bdst < cpg->bsrc + && !au_ftest_cpup(cpg->flags, KEEPLINO)) + au_xino_write(sb, cpg->bsrc, h_inode->i_ino, /*ino*/0); + /* ignore this error */ + + if (do_dt) + au_dtime_revert(&dt); + return err; +} + +static int au_do_ren_after_cpup(struct au_cp_generic *cpg, struct path *h_path) +{ + int err; + struct dentry *dentry, *h_dentry, *h_parent, *parent; + struct inode *h_dir; + aufs_bindex_t bdst; + + dentry = cpg->dentry; + bdst = cpg->bdst; + h_dentry = au_h_dptr(dentry, bdst); + if (!au_ftest_cpup(cpg->flags, OVERWRITE)) { + dget(h_dentry); + au_set_h_dptr(dentry, bdst, NULL); + err = au_lkup_neg(dentry, bdst, /*wh*/0); + if (!err) + h_path->dentry = dget(au_h_dptr(dentry, bdst)); + au_set_h_dptr(dentry, bdst, h_dentry); + } else { + err = 0; + parent = dget_parent(dentry); + h_parent = au_h_dptr(parent, bdst); + dput(parent); + h_path->dentry = vfsub_lkup_one(&dentry->d_name, h_parent); + if (IS_ERR(h_path->dentry)) + err = PTR_ERR(h_path->dentry); + } + if (unlikely(err)) + goto out; + + h_parent = h_dentry->d_parent; /* dir inode is locked */ + h_dir = h_parent->d_inode; + IMustLock(h_dir); + AuDbg("%.*s %.*s\n", AuDLNPair(h_dentry), AuDLNPair(h_path->dentry)); + err = vfsub_rename(h_dir, h_dentry, h_dir, h_path); + dput(h_path->dentry); + +out: + 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. + * basic->bsrc can be larger than basic->bdst. + */ +static int au_cpup_single(struct au_cp_generic *cpg, struct dentry *dst_parent) +{ + int err, rerr; + aufs_bindex_t old_ibstart; + unsigned char isdir, plink; + struct dentry *h_src, *h_dst, *h_parent; + struct inode *dst_inode, *h_dir, *inode; + struct super_block *sb; + struct au_branch *br; + /* to reuduce stack size */ + struct { + struct au_dtime dt; + struct path h_path; + struct au_cpup_reg_attr h_src_attr; + } *a; + + err = -ENOMEM; + a = kmalloc(sizeof(*a), GFP_NOFS); + if (unlikely(!a)) + goto out; + a->h_src_attr.valid = 0; + + sb = cpg->dentry->d_sb; + br = au_sbr(sb, cpg->bdst); + a->h_path.mnt = au_br_mnt(br); + h_dst = au_h_dptr(cpg->dentry, cpg->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(cpg->dentry, cpg->bsrc); + inode = cpg->dentry->d_inode; + + if (!dst_parent) + dst_parent = dget_parent(cpg->dentry); + else + dget(dst_parent); + + plink = !!au_opt_test(au_mntflags(sb), PLINK); + dst_inode = au_h_iptr(inode, cpg->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, cpg->bdst); + goto out_parent; + } + + if (dst_inode->i_nlink) { + const int do_dt = au_ftest_cpup(cpg->flags, DTIME); + + h_src = au_plink_lkup(inode, cpg->bdst); + err = PTR_ERR(h_src); + if (IS_ERR(h_src)) + goto out_parent; + 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_parent; + } + + if (do_dt) { + a->h_path.dentry = h_parent; + au_dtime_store(&a->dt, dst_parent, &a->h_path); + } + + a->h_path.dentry = h_dst; + err = vfsub_link(h_src, h_dir, &a->h_path); + if (!err && au_ftest_cpup(cpg->flags, RENAME)) + err = au_do_ren_after_cpup(cpg, &a->h_path); + if (do_dt) + au_dtime_revert(&a->dt); + dput(h_src); + goto out_parent; + } else + /* todo: cpup_wh_file? */ + /* udba work */ + au_update_ibrange(inode, /*do_put_zero*/1); + } + + isdir = S_ISDIR(inode->i_mode); + old_ibstart = au_ibstart(inode); + err = cpup_entry(cpg, dst_parent, &a->h_src_attr); + if (unlikely(err)) + goto out_rev; + dst_inode = h_dst->d_inode; + mutex_lock_nested(&dst_inode->i_mutex, AuLsc_I_CHILD2); + /* todo: necessary? */ + /* au_pin_hdir_unlock(cpg->pin); */ + + err = cpup_iattr(cpg->dentry, cpg->bdst, h_src, &a->h_src_attr); + if (unlikely(err)) { + /* todo: necessary? */ + /* au_pin_hdir_relock(cpg->pin); */ /* ignore an error */ + mutex_unlock(&dst_inode->i_mutex); + goto out_rev; + } + + if (cpg->bdst < old_ibstart) { + if (S_ISREG(inode->i_mode)) { + err = au_dy_iaop(inode, cpg->bdst, dst_inode); + if (unlikely(err)) { + /* ignore an error */ + /* au_pin_hdir_relock(cpg->pin); */ + mutex_unlock(&dst_inode->i_mutex); + goto out_rev; + } + } + au_set_ibstart(inode, cpg->bdst); + } else + au_set_ibend(inode, cpg->bdst); + au_set_h_iptr(inode, cpg->bdst, au_igrab(dst_inode), + au_hi_flags(inode, isdir)); + + /* todo: necessary? */ + /* err = au_pin_hdir_relock(cpg->pin); */ + mutex_unlock(&dst_inode->i_mutex); + if (unlikely(err)) + goto out_rev; + + if (!isdir + && h_src->d_inode->i_nlink > 1 + && plink) + au_plink_append(inode, cpg->bdst, h_dst); + + if (au_ftest_cpup(cpg->flags, RENAME)) { + a->h_path.dentry = h_dst; + err = au_do_ren_after_cpup(cpg, &a->h_path); + } + if (!err) + goto out_parent; /* success */ + + /* revert */ +out_rev: + a->h_path.dentry = h_parent; + au_dtime_store(&a->dt, dst_parent, &a->h_path); + a->h_path.dentry = h_dst; + rerr = 0; + if (h_dst->d_inode) { + if (!isdir) + rerr = vfsub_unlink(h_dir, &a->h_path, /*force*/0); + else + rerr = vfsub_rmdir(h_dir, &a->h_path); + } + au_dtime_revert(&a->dt); + if (rerr) { + AuIOErr("failed removing broken entry(%d, %d)\n", err, rerr); + err = -EIO; + } +out_parent: + dput(dst_parent); + kfree(a); +out: + return err; +} + +#if 0 /* unused */ +struct au_cpup_single_args { + int *errp; + struct au_cp_generic *cpg; + struct dentry *dst_parent; +}; + +static void au_call_cpup_single(void *args) +{ + struct au_cpup_single_args *a = args; + + au_pin_hdir_acquire_nest(a->cpg->pin); + *a->errp = au_cpup_single(a->cpg, a->dst_parent); + au_pin_hdir_release(a->cpg->pin); +} +#endif + +/* + * prevent SIGXFSZ in copy-up. + * testing CAP_MKNOD is for generic fs, + * but CAP_FSETID is for xfs only, currently. + */ +static int au_cpup_sio_test(struct au_pin *pin, umode_t mode) +{ + int do_sio; + struct super_block *sb; + struct inode *h_dir; + + do_sio = 0; + sb = au_pinned_parent(pin)->d_sb; + if (!au_wkq_test() + && (!au_sbi(sb)->si_plink_maint_pid + || au_plink_maint(sb, AuLock_NOPLM))) { + switch (mode & S_IFMT) { + case S_IFREG: + /* no condition about RLIMIT_FSIZE and the file size */ + do_sio = 1; + break; + case S_IFCHR: + case S_IFBLK: + do_sio = !capable(CAP_MKNOD); + break; + } + if (!do_sio) + do_sio = ((mode & (S_ISUID | S_ISGID)) + && !capable(CAP_FSETID)); + /* this workaround may be removed in the future */ + if (!do_sio) { + h_dir = au_pinned_h_dir(pin); + do_sio = h_dir->i_mode & S_ISVTX; + } + } + + return do_sio; +} + +#if 0 /* unused */ +int au_sio_cpup_single(struct au_cp_generic *cpg, struct dentry *dst_parent) +{ + int err, wkq_err; + struct dentry *h_dentry; + + h_dentry = au_h_dptr(cpg->dentry, cpg->bsrc); + if (!au_cpup_sio_test(pin, h_dentry->d_inode->i_mode)) + err = au_cpup_single(cpg, dst_parent); + else { + struct au_cpup_single_args args = { + .errp = &err, + .cpg = cpg, + .dst_parent = dst_parent + }; + wkq_err = au_wkq_wait(au_call_cpup_single, &args); + if (unlikely(wkq_err)) + err = wkq_err; + } + + return err; +} +#endif + +/* + * copyup the @dentry from the first active lower branch to @bdst, + * using au_cpup_single(). + */ +static int au_cpup_simple(struct au_cp_generic *cpg) +{ + int err; + unsigned int flags_orig; + struct dentry *dentry; + + AuDebugOn(cpg->bsrc < 0); + + dentry = cpg->dentry; + DiMustWriteLock(dentry); + + err = au_lkup_neg(dentry, cpg->bdst, /*wh*/1); + if (!err) { + flags_orig = cpg->flags; + au_fset_cpup(cpg->flags, RENAME); + err = au_cpup_single(cpg, NULL); + cpg->flags = flags_orig; + if (!err) + return 0; /* success */ + + /* revert */ + au_set_h_dptr(dentry, cpg->bdst, NULL); + au_set_dbstart(dentry, cpg->bsrc); + } + + return err; +} + +struct au_cpup_simple_args { + int *errp; + struct au_cp_generic *cpg; +}; + +static void au_call_cpup_simple(void *args) +{ + struct au_cpup_simple_args *a = args; + + au_pin_hdir_acquire_nest(a->cpg->pin); + *a->errp = au_cpup_simple(a->cpg); + au_pin_hdir_release(a->cpg->pin); +} + +static int au_do_sio_cpup_simple(struct au_cp_generic *cpg) +{ + int err, wkq_err; + struct dentry *dentry, *parent; + struct file *h_file; + struct inode *h_dir; + + dentry = cpg->dentry; + h_file = NULL; + if (au_ftest_cpup(cpg->flags, HOPEN)) { + AuDebugOn(cpg->bsrc < 0); + h_file = au_h_open_pre(dentry, cpg->bsrc, /*force_wr*/0); + err = PTR_ERR(h_file); + if (IS_ERR(h_file)) + goto out; + } + + parent = dget_parent(dentry); + h_dir = au_h_iptr(parent->d_inode, cpg->bdst); + if (!au_test_h_perm_sio(h_dir, MAY_EXEC | MAY_WRITE) + && !au_cpup_sio_test(cpg->pin, dentry->d_inode->i_mode)) + err = au_cpup_simple(cpg); + else { + struct au_cpup_simple_args args = { + .errp = &err, + .cpg = cpg + }; + wkq_err = au_wkq_wait(au_call_cpup_simple, &args); + if (unlikely(wkq_err)) + err = wkq_err; + } + + dput(parent); + if (h_file) + au_h_open_post(dentry, cpg->bsrc, h_file); + +out: + return err; +} + +int au_sio_cpup_simple(struct au_cp_generic *cpg) +{ + aufs_bindex_t bsrc, bend; + struct dentry *dentry, *h_dentry; + + if (cpg->bsrc < 0) { + dentry = cpg->dentry; + bend = au_dbend(dentry); + for (bsrc = cpg->bdst + 1; bsrc <= bend; bsrc++) { + h_dentry = au_h_dptr(dentry, bsrc); + if (h_dentry) { + AuDebugOn(!h_dentry->d_inode); + break; + } + } + AuDebugOn(bsrc > bend); + cpg->bsrc = bsrc; + } + AuDebugOn(cpg->bsrc <= cpg->bdst); + return au_do_sio_cpup_simple(cpg); +} + +int au_sio_cpdown_simple(struct au_cp_generic *cpg) +{ + AuDebugOn(cpg->bdst <= cpg->bsrc); + return au_do_sio_cpup_simple(cpg); +} + +/* ---------------------------------------------------------------------- */ + +/* + * copyup the deleted file for writing. + */ +static int au_do_cpup_wh(struct au_cp_generic *cpg, struct dentry *wh_dentry, + struct file *file) +{ + int err; + unsigned int flags_orig; + aufs_bindex_t bsrc_orig; + struct dentry *h_d_dst, *h_d_start; + struct au_dinfo *dinfo; + struct au_hdentry *hdp; + + dinfo = au_di(cpg->dentry); + AuRwMustWriteLock(&dinfo->di_rwsem); + + bsrc_orig = cpg->bsrc; + cpg->bsrc = dinfo->di_bstart; + hdp = dinfo->di_hdentry; + h_d_dst = hdp[0 + cpg->bdst].hd_dentry; + dinfo->di_bstart = cpg->bdst; + hdp[0 + cpg->bdst].hd_dentry = wh_dentry; + h_d_start = NULL; + if (file) { + h_d_start = hdp[0 + cpg->bsrc].hd_dentry; + hdp[0 + cpg->bsrc].hd_dentry = au_hf_top(file)->f_dentry; + } + flags_orig = cpg->flags; + cpg->flags = !AuCpup_DTIME; + err = au_cpup_single(cpg, /*h_parent*/NULL); + cpg->flags = flags_orig; + if (file) { + if (!err) + err = au_reopen_nondir(file); + hdp[0 + cpg->bsrc].hd_dentry = h_d_start; + } + hdp[0 + cpg->bdst].hd_dentry = h_d_dst; + dinfo->di_bstart = cpg->bsrc; + cpg->bsrc = bsrc_orig; + + return err; +} + +static int au_cpup_wh(struct au_cp_generic *cpg, struct file *file) +{ + int err; + aufs_bindex_t bdst; + struct au_dtime dt; + struct dentry *dentry, *parent, *h_parent, *wh_dentry; + struct au_branch *br; + struct path h_path; + + dentry = cpg->dentry; + bdst = cpg->bdst; + 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 = au_br_mnt(br); + au_dtime_store(&dt, parent, &h_path); + err = au_do_cpup_wh(cpg, wh_dentry, file); + 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 au_cp_generic *cpg; + struct file *file; +}; + +static void au_call_cpup_wh(void *args) +{ + struct au_cpup_wh_args *a = args; + + au_pin_hdir_acquire_nest(a->cpg->pin); + *a->errp = au_cpup_wh(a->cpg, a->file); + au_pin_hdir_release(a->cpg->pin); +} + +int au_sio_cpup_wh(struct au_cp_generic *cpg, struct file *file) +{ + int err, wkq_err; + aufs_bindex_t bdst; + struct dentry *dentry, *parent, *h_orph, *h_parent, *h_dentry; + struct inode *dir, *h_dir, *h_tmpdir; + struct au_wbr *wbr; + struct au_pin wh_pin, *pin_orig; + + dentry = cpg->dentry; + bdst = cpg->bdst; + 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; + pin_orig = NULL; + 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); + + if (file) + h_dentry = au_hf_top(file)->f_dentry; + else + h_dentry = au_h_dptr(dentry, au_dbstart(dentry)); + mutex_lock_nested(&h_tmpdir->i_mutex, AuLsc_I_PARENT3); + /* todo: au_h_open_pre()? */ + + pin_orig = cpg->pin; + au_pin_init(&wh_pin, dentry, bdst, AuLsc_DI_PARENT, + AuLsc_I_PARENT3, cpg->pin->udba, AuPin_DI_LOCKED); + cpg->pin = &wh_pin; + } + + if (!au_test_h_perm_sio(h_tmpdir, MAY_EXEC | MAY_WRITE) + && !au_cpup_sio_test(cpg->pin, dentry->d_inode->i_mode)) + err = au_cpup_wh(cpg, file); + else { + struct au_cpup_wh_args args = { + .errp = &err, + .cpg = cpg, + .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); + AuDebugOn(!pin_orig); + cpg->pin = pin_orig; + } + 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 au_pin *pin, + 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, &pin, 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 au_pin *pin, + struct dentry *h_parent __maybe_unused , + void *arg __maybe_unused) +{ + struct au_cp_generic cpg = { + .dentry = dentry, + .bdst = bdst, + .bsrc = -1, + .len = 0, + .pin = pin, + .flags = AuCpup_DTIME + }; + return au_sio_cpup_simple(&cpg); +} + +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-3.11.0.orig/ubuntu/aufs/debug.c +++ linux-3.11.0/ubuntu/aufs/debug.c @@ -0,0 +1,491 @@ +/* + * Copyright (C) 2005-2013 Junjiro R. Okajima + * + * This program, aufs is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public 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 "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 *pos; + + n = whlist->nh_num; + head = whlist->nh_head; + for (ul = 0; ul < n; ul++) { + hlist_for_each_entry(pos, head, wh_hash) + dpri("b%d, %.*s, %d\n", + pos->wh_bindex, + pos->wh_str.len, pos->wh_str.name, + pos->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, int hn, + 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_LBDAF */ + 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: %p, i%lu, %s, cnt %d, nl %u, 0%o, sz %llu, blk %llu," + " hn %d, ct %lld, np %lu, st 0x%lx, f 0x%x, v %llu, g %x%s%.*s\n", + bindex, inode, + 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, + hn, (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, hn; + + err = do_pri_inode(-1, inode, -1, 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, NULL)); + if (iinfo->ii_bstart < 0) + return; + hn = 0; + for (bindex = iinfo->ii_bstart; bindex <= iinfo->ii_bend; bindex++) { + hn = !!au_hn(iinfo->ii_hinode + bindex); + do_pri_inode(bindex, iinfo->ii_hinode[0 + bindex].hi_inode, hn, + iinfo->ii_hinode[0 + bindex].hi_whdentry); + } +} + +void au_dpri_dalias(struct inode *inode) +{ + struct dentry *d; + + spin_lock(&inode->i_lock); + hlist_for_each_entry(d, &inode->i_dentry, d_alias) + au_dpri_dentry(d); + spin_unlock(&inode->i_lock); +} + +static int do_pri_dentry(aufs_bindex_t bindex, struct dentry *dentry) +{ + struct dentry *wh = NULL; + int hn; + + 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) : "??", + d_count(dentry), dentry->d_flags); + hn = -1; + if (bindex >= 0 && dentry->d_inode && au_test_aufs(dentry->d_sb)) { + struct au_iinfo *iinfo = au_ii(dentry->d_inode); + if (iinfo) { + hn = !!au_hn(iinfo->ii_hinode + bindex); + wh = iinfo->ii_hinode[0 + bindex].hi_whdentry; + } + } + do_pri_inode(bindex, dentry->d_inode, hn, 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), atomic_read(&au_fi(file)->fi_mmapped)); + 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 = au_br_mnt(br); + if (!mnt || IS_ERR(mnt)) + goto out; + sb = mnt->mnt_sb; + if (!sb || IS_ERR(sb)) + goto out; + + dpri("s%d: {perm 0x%x, id %d, cnt %d, wbr %p}, " + "%s, dev 0x%02x%02x, flags 0x%lx, cnt %d, active %d, " + "xino %d\n", + bindex, br->br_perm, br->br_id, 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_path.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) \ + do { \ + if (ia->ia_valid & ATTR_ ## name) \ + dpri(#name "\n"); \ + } while (0) + 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 (au_wkq_test()) { + au_dbg_blocked(); + /* + * It may be recursive, but udba=notify between two aufs mounts, + * where a single ro branch is shared, is not a problem. + */ + /* 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_warn("CONFIG_4KSTACKS is defined.\n"); +#endif + +#ifdef AuForceNoBrs + sysaufs_brs = 0; +#endif + + return 0; +} --- linux-3.11.0.orig/ubuntu/aufs/sysfs.c +++ linux-3.11.0/ubuntu/aufs/sysfs.c @@ -0,0 +1,297 @@ +/* + * Copyright (C) 2005-2013 Junjiro R. Okajima + * + * This program, aufs is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public 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 "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, int idx) +{ + int err; + struct path path; + struct dentry *root; + struct au_branch *br; + char *perm; + + AuDbg("b%d\n", bindex); + + err = 0; + root = sb->s_root; + di_read_lock_parent(root, !AuLock_IR); + br = au_sbr(sb, bindex); + + switch (idx) { + case AuBrSysfs_BR: + path.mnt = au_br_mnt(br); + path.dentry = au_h_dptr(root, bindex); + au_seq_path(seq, &path); + di_read_unlock(root, !AuLock_IR); + perm = au_optstr_br_perm(br->br_perm); + if (perm) { + err = seq_printf(seq, "=%s\n", perm); + kfree(perm); + if (err == -1) + err = -E2BIG; + } else + err = -ENOMEM; + break; + case AuBrSysfs_BRID: + err = seq_printf(seq, "%d\n", br->br_id); + di_read_unlock(root, !AuLock_IR); + if (err == -1) + err = -E2BIG; + break; + } + + return err; +} + +/* ---------------------------------------------------------------------- */ + +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" +#define SysaufsBrid_PREFIX "brid" + +/* todo: file size may exceed PAGE_SIZE */ +ssize_t sysaufs_si_show(struct kobject *kobj, struct attribute *attr, + char *buf) +{ + ssize_t err; + int idx; + 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++; + } + + if (!strncmp(name, SysaufsBrid_PREFIX, + sizeof(SysaufsBrid_PREFIX) - 1)) { + idx = AuBrSysfs_BRID; + name += sizeof(SysaufsBrid_PREFIX) - 1; + } else if (!strncmp(name, SysaufsBr_PREFIX, + sizeof(SysaufsBr_PREFIX) - 1)) { + idx = AuBrSysfs_BR; + name += sizeof(SysaufsBr_PREFIX) - 1; + } else + BUG(); + + err = kstrtol(name, 10, &l); + if (!err) { + bend = au_sbend(sb); + if (l <= bend) + err = sysaufs_si_br(seq, sb, (aufs_bindex_t)l, idx); + else + err = -ENOENT; + } + +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) +{ + int i; + struct au_brsysfs *br_sysfs; + struct attribute *attr; + + br_sysfs = br->br_sysfs; + for (i = 0; i < ARRAY_SIZE(br->br_sysfs); i++) { + attr = &br_sysfs->attr; + sysfs_attr_init(attr); + attr->name = br_sysfs->name; + attr->mode = S_IRUGO; + br_sysfs++; + } +} + +void sysaufs_brs_del(struct super_block *sb, aufs_bindex_t bindex) +{ + struct au_branch *br; + struct kobject *kobj; + struct au_brsysfs *br_sysfs; + int i; + 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); + br_sysfs = br->br_sysfs; + for (i = 0; i < ARRAY_SIZE(br->br_sysfs); i++) { + sysfs_remove_file(kobj, &br_sysfs->attr); + br_sysfs++; + } + } +} + +void sysaufs_brs_add(struct super_block *sb, aufs_bindex_t bindex) +{ + int err, i; + aufs_bindex_t bend; + struct kobject *kobj; + struct au_branch *br; + struct au_brsysfs *br_sysfs; + + 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); + br_sysfs = br->br_sysfs; + snprintf(br_sysfs[AuBrSysfs_BR].name, sizeof(br_sysfs->name), + SysaufsBr_PREFIX "%d", bindex); + snprintf(br_sysfs[AuBrSysfs_BRID].name, sizeof(br_sysfs->name), + SysaufsBrid_PREFIX "%d", bindex); + for (i = 0; i < ARRAY_SIZE(br->br_sysfs); i++) { + err = sysfs_create_file(kobj, &br_sysfs->attr); + if (unlikely(err)) + pr_warn("failed %s under sysfs(%d)\n", + br_sysfs->name, err); + br_sysfs++; + } + } +} --- linux-3.11.0.orig/ubuntu/aufs/dentry.h +++ linux-3.11.0/ubuntu/aufs/dentry.h @@ -0,0 +1,234 @@ +/* + * Copyright (C) 2005-2013 Junjiro R. Okajima + * + * This program, aufs is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public 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 "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_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); +int au_lkup_neg(struct dentry *dentry, aufs_bindex_t bindex, int wh); +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); +struct dentry *au_h_d_alias(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-3.11.0.orig/ubuntu/aufs/sysaufs.c +++ linux-3.11.0/ubuntu/aufs/sysaufs.c @@ -0,0 +1,105 @@ +/* + * Copyright (C) 2005-2013 Junjiro R. Okajima + * + * This program, aufs is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public 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 "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-3.11.0.orig/ubuntu/aufs/wkq.h +++ linux-3.11.0/ubuntu/aufs/wkq.h @@ -0,0 +1,92 @@ +/* + * Copyright (C) 2005-2013 Junjiro R. Okajima + * + * This program, aufs is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public 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__ + +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_NEST (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) + +#ifndef CONFIG_AUFS_HNOTIFY +#undef AuWkq_NEST +#define AuWkq_NEST 0 +#endif + +/* 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, + unsigned int flags); +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_test(void) +{ + return current->flags & PF_WQ_WORKER; +} + +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-3.11.0.orig/ubuntu/aufs/hfsplus.c +++ linux-3.11.0/ubuntu/aufs/hfsplus.c @@ -0,0 +1,57 @@ +/* + * Copyright (C) 2010-2013 Junjiro R. Okajima + * + * This program, aufs is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public 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 "aufs.h" + +struct file *au_h_open_pre(struct dentry *dentry, aufs_bindex_t bindex, + int force_wr) +{ + struct file *h_file; + struct dentry *h_dentry; + + h_dentry = au_h_dptr(dentry, bindex); + AuDebugOn(!h_dentry); + AuDebugOn(!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, force_wr); + 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-3.11.0.orig/ubuntu/aufs/sysaufs.h +++ linux-3.11.0/ubuntu/aufs/sysaufs.h @@ -0,0 +1,104 @@ +/* + * Copyright (C) 2005-2013 Junjiro R. Okajima + * + * This program, aufs is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public 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 "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-3.11.0.orig/ubuntu/aufs/dynop.h +++ linux-3.11.0/ubuntu/aufs/dynop.h @@ -0,0 +1,76 @@ +/* + * Copyright (C) 2010-2013 Junjiro R. Okajima + * + * This program, aufs is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public 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 "inode.h" + +enum {AuDy_AOP, AuDyLast}; + +struct au_dynop { + int dy_type; + union { + const void *dy_hop; + const struct address_space_operations *dy_haop; + }; +}; + +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 *); +}; + +/* ---------------------------------------------------------------------- */ + +/* 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); + +void __init au_dy_init(void); +void au_dy_fin(void); + +#endif /* __KERNEL__ */ +#endif /* __AUFS_DYNOP_H__ */ --- linux-3.11.0.orig/ubuntu/aufs/i_op.c +++ linux-3.11.0/ubuntu/aufs/i_op.c @@ -0,0 +1,1118 @@ +/* + * Copyright (C) 2005-2013 Junjiro R. Okajima + * + * This program, aufs is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public 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 "aufs.h" + +static int h_permission(struct inode *h_inode, int mask, + struct vfsmount *h_mnt, int brperm) +{ + int err; + const unsigned char write_mask = !!(mask & (MAY_WRITE | MAY_APPEND)); + + err = -EACCES; + if ((write_mask && IS_IMMUTABLE(h_inode)) + || ((mask & MAY_EXEC) + && S_ISREG(h_inode->i_mode) + && ((h_mnt->mnt_flags & MNT_NOEXEC) + || !(h_inode->i_mode & S_IXUGO)))) + goto out; + + /* + * - skip the lower fs test in the case of write to ro branch. + * - nfs dir permission write check is optimized, but a policy for + * link/rename requires a real check. + */ + if ((write_mask && !au_br_writable(brperm)) + || (au_test_nfs(h_inode->i_sb) && S_ISDIR(h_inode->i_mode) + && write_mask && !(mask & MAY_READ)) + || !h_inode->i_op->permission) { + /* AuLabel(generic_permission); */ + err = generic_permission(h_inode, mask); + } else { + /* AuLabel(h_inode->permission); */ + err = h_inode->i_op->permission(h_inode, mask); + AuTraceErr(err); + } + + if (!err) + err = devcgroup_inode_permission(h_inode, mask); + if (!err) + err = security_inode_permission(h_inode, mask); + +#if 0 + if (!err) { + /* todo: do we need to call ima_path_check()? */ + struct path h_path = { + .dentry = + .mnt = h_mnt + }; + err = ima_path_check(&h_path, + mask & (MAY_READ | MAY_WRITE | MAY_EXEC), + IMA_COUNT_LEAVE); + } +#endif + +out: + return err; +} + +static int aufs_permission(struct inode *inode, int mask) +{ + int err; + aufs_bindex_t bindex, bend; + const unsigned char isdir = !!S_ISDIR(inode->i_mode), + write_mask = !!(mask & (MAY_WRITE | MAY_APPEND)); + struct inode *h_inode; + struct super_block *sb; + struct au_branch *br; + + /* todo: support rcu-walk? */ + if (mask & MAY_NOT_BLOCK) + 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, au_br_mnt(br), 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, au_br_mnt(br), + 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, + unsigned int flags) +{ + struct dentry *ret, *parent; + struct inode *inode; + struct super_block *sb; + int err, npositive; + + IMustLock(dir); + + /* todo: support rcu-walk? */ + ret = ERR_PTR(-ECHILD); + if (flags & LOOKUP_RCU) + goto out; + + ret = ERR_PTR(-ENAMETOOLONG); + if (unlikely(dentry->d_name.len > AUFS_MAX_NAMELEN)) + goto out; + + sb = dir->i_sb; + err = si_read_lock(sb, AuLock_FLUSH | AuLock_NOPLM); + ret = ERR_PTR(err); + if (unlikely(err)) + goto out; + + err = au_di_init(dentry); + ret = ERR_PTR(err); + if (unlikely(err)) + goto out_si; + + inode = NULL; + 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); + err = npositive; + } + di_read_unlock(parent, AuLock_IR); + ret = ERR_PTR(err); + if (unlikely(err < 0)) + goto out_unlock; + + if (npositive) { + inode = au_new_inode(dentry, /*must_new*/0); + ret = (void *)inode; + } + if (IS_ERR(inode)) { + inode = NULL; + goto out_unlock; + } + + ret = d_splice_alias(inode, dentry); +#if 0 + if (unlikely(d_need_lookup(dentry))) { + spin_lock(&dentry->d_lock); + dentry->d_flags &= ~DCACHE_NEED_LOOKUP; + spin_unlock(&dentry->d_lock); + } else +#endif + if (unlikely(IS_ERR(ret) && inode)) { + ii_write_unlock(inode); + iput(inode); + inode = NULL; + } + +out_unlock: + di_write_unlock(dentry); + if (inode) { + /* verbose coding for lock class name */ + if (unlikely(S_ISLNK(inode->i_mode))) + au_rw_class(&au_di(dentry)->di_rwsem, + au_lc_key + AuLcSymlink_DIINFO); + else if (unlikely(S_ISDIR(inode->i_mode))) + au_rw_class(&au_di(dentry)->di_rwsem, + au_lc_key + AuLcDir_DIINFO); + else /* likely */ + au_rw_class(&au_di(dentry)->di_rwsem, + au_lc_key + AuLcNonDir_DIINFO); + } +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_cpup_dirs(dentry, bcpup); + else if (bstart < bcpup) + err = au_cpdown_dirs(dentry, bcpup); + else + BUG(); + } + 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, + au_ftest_wrdir(add_entry, TMP_WHENTRY)); + /* 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; + unsigned int flags; + aufs_bindex_t bcpup, bstart, src_bstart; + const unsigned char add_entry + = au_ftest_wrdir(args->flags, ADD_ENTRY) + | au_ftest_wrdir(args->flags, TMP_WHENTRY); + 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) { + flags = 0; + if (au_ftest_wrdir(args->flags, ISDIR)) + au_fset_wbr(flags, DIR); + err = AuWbrCreate(sbinfo, dentry, flags); + 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; +} + +/* ---------------------------------------------------------------------- */ + +void au_pin_hdir_unlock(struct au_pin *p) +{ + if (p->hdir) + au_hn_imtx_unlock(p->hdir); +} + +static int au_pin_hdir_lock(struct au_pin *p) +{ + int err; + + err = 0; + if (!p->hdir) + goto out; + + /* even if an error happens later, keep this lock */ + au_hn_imtx_lock_nested(p->hdir, p->lsc_hi); + + err = -EBUSY; + if (unlikely(p->hdir->hi_inode != p->h_parent->d_inode)) + goto out; + + err = 0; + if (p->h_dentry) + err = au_h_verify(p->h_dentry, p->udba, p->hdir->hi_inode, + p->h_parent, p->br); + +out: + return err; +} + +int au_pin_hdir_relock(struct au_pin *p) +{ + int err, i; + struct inode *h_i; + struct dentry *h_d[] = { + p->h_dentry, + p->h_parent + }; + + err = au_pin_hdir_lock(p); + if (unlikely(err)) + goto out; + + for (i = 0; !err && i < sizeof(h_d)/sizeof(*h_d); i++) { + if (!h_d[i]) + continue; + h_i = h_d[i]->d_inode; + if (h_i) + err = !h_i->i_nlink; + } + +out: + return err; +} + +void au_pin_hdir_set_owner(struct au_pin *p, struct task_struct *task) +{ +#if defined(CONFIG_DEBUG_MUTEXES) || defined(CONFIG_SMP) + p->hdir->hi_inode->i_mutex.owner = task; +#endif +} + +void au_pin_hdir_acquire_nest(struct au_pin *p) +{ + if (p->hdir) { + mutex_acquire_nest(&p->hdir->hi_inode->i_mutex.dep_map, + p->lsc_hi, 0, NULL, _RET_IP_); + au_pin_hdir_set_owner(p, current); + } +} + +void au_pin_hdir_release(struct au_pin *p) +{ + if (p->hdir) { + au_pin_hdir_set_owner(p, p->task); + mutex_release(&p->hdir->hi_inode->i_mutex.dep_map, 1, _RET_IP_); + } +} + +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->hdir) + au_pin_hdir_unlock(p); + if (p->h_mnt && au_ftest_pin(p->flags, MNT_WRITE)) + vfsub_mnt_drop_write(p->h_mnt); + if (!p->hdir) + return; + + 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; + /* do not clear p->task */ +} + +int au_do_pin(struct au_pin *p) +{ + int err; + struct super_block *sb; + struct inode *h_dir; + + err = 0; + sb = p->dentry->d_sb; + p->br = au_sbr(sb, p->bindex); + if (IS_ROOT(p->dentry)) { + if (au_ftest_pin(p->flags, MNT_WRITE)) { + p->h_mnt = au_br_mnt(p->br); + err = vfsub_mnt_want_write(p->h_mnt); + if (unlikely(err)) { + au_fclr_pin(p->flags, MNT_WRITE); + goto out_err; + } + } + goto out; + } + + p->h_dentry = NULL; + if (p->bindex <= au_dbend(p->dentry)) + p->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; + p->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 || !p->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; + } + + if (au_ftest_pin(p->flags, MNT_WRITE)) { + p->h_mnt = au_br_mnt(p->br); + err = vfsub_mnt_want_write(p->h_mnt); + if (unlikely(err)) { + au_fclr_pin(p->flags, MNT_WRITE); + 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); + err = au_pin_hdir_lock(p); + if (!err) + goto out; /* success */ + +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; + + p->h_dentry = NULL; + p->h_parent = NULL; + p->br = NULL; + p->task = current; +} + +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 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; + mutex_unlock(&a->h_inode->i_mutex); + + 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) { + struct au_cp_generic cpg = { + .dentry = dentry, + .bdst = a->btgt, + .bsrc = -1, + .len = sz, + .pin = &a->pin + }; + err = au_sio_cpup_wh(&cpg, /*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)) { + struct au_cp_generic cpg = { + .dentry = dentry, + .bdst = a->btgt, + .bsrc = bstart, + .len = sz, + .pin = &a->pin, + .flags = AuCpup_DTIME | AuCpup_HOPEN + }; + err = au_sio_cpup_simple(&cpg); + 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: + a->h_inode = a->h_path.dentry->d_inode; + if (!err) + goto out; /* success */ + au_unpin(&a->pin); +out_parent: + if (parent) { + di_write_unlock(parent); + dput(parent); + } +out: + if (!err) + mutex_lock_nested(&a->h_inode->i_mutex, AuLsc_I_CHILD); + 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, 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) +{ + unsigned int n; + + inode->i_mode = st->mode; + /* don't i_[ug]id_write() here */ + 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)) { + n = inode->i_nlink; + n -= nlink; + n += st->nlink; + smp_mb(); + /* 0 can happen */ + set_nlink(inode, n); + } + + 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 path h_path; + + 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_path.mnt = au_sbr_mnt(sb, bindex); + h_sb = h_path.mnt->mnt_sb; + if (!au_test_fs_bad_iattr(h_sb) && udba_none) + goto out_fill; /* success */ + + h_path.dentry = NULL; + if (au_dbstart(dentry) == bindex) + h_path.dentry = dget(au_h_dptr(dentry, bindex)); + else if (au_opt_test(mnt_flags, PLINK) && au_plink_test(inode)) { + h_path.dentry = au_plink_lkup(inode, bindex); + if (IS_ERR(h_path.dentry)) + goto out_fill; /* pretending success */ + } + /* illegally overlapped or something */ + if (unlikely(!h_path.dentry)) + goto out_fill; /* pretending success */ + + positive = !!h_path.dentry->d_inode; + if (positive) + err = vfs_getattr(&h_path, st); + dput(h_path.dentry); + if (!err) { + if (positive) + au_refresh_iattr(inode, st, + h_path.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 = (void *)__get_free_page(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: + free_page((unsigned long)buf.k); +out: + AuTraceErr(err); + return ERR_PTR(err); +} + +static void aufs_put_link(struct dentry *dentry __maybe_unused, + struct nameidata *nd, void *cookie __maybe_unused) +{ + char *p; + + p = nd_get_link(nd); + if (!IS_ERR_OR_NULL(p)) + free_page((unsigned long)p); +} + +/* ---------------------------------------------------------------------- */ + +static int aufs_update_time(struct inode *inode, struct timespec *ts, int flags) +{ + int err; + struct super_block *sb; + struct inode *h_inode; + + sb = inode->i_sb; + /* mmap_sem might be acquired already, cf. aufs_mmap() */ + lockdep_off(); + si_read_lock(sb, AuLock_FLUSH); + ii_write_lock_child(inode); + lockdep_on(); + h_inode = au_h_iptr(inode, au_ibstart(inode)); + err = vfsub_update_time(h_inode, ts, flags); + lockdep_off(); + ii_write_unlock(inode); + si_read_unlock(sb); + lockdep_on(); + return err; +} + +/* ---------------------------------------------------------------------- */ + +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, + + /* .update_time = aufs_update_time */ +}; + +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, + + .update_time = aufs_update_time + /* no support for atomic_open() */ +}; + +struct inode_operations aufs_iop = { + .permission = aufs_permission, + .setattr = aufs_setattr, + .getattr = aufs_getattr, + + .update_time = aufs_update_time +}; --- linux-3.11.0.orig/ubuntu/aufs/BOM +++ linux-3.11.0/ubuntu/aufs/BOM @@ -0,0 +1,3 @@ +URL: git://aufs.git.sourceforge.net/gitroot/aufs/aufs3-standalone.git +CHANGELOG: +COMMIT: 5ac5fe26a90a818218310e208d17688fddb07622 --- linux-3.11.0.orig/ubuntu/aufs/whout.c +++ linux-3.11.0/ubuntu/aufs/whout.c @@ -0,0 +1,1022 @@ +/* + * Copyright (C) 2005-2013 Junjiro R. Okajima + * + * This program, aufs is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public 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 "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 = QSTR_INIT(AUFS_WH_DIROPQ, + 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 = vfsub_lkup_one(wh_name, h_parent); + 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_warn("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 = au_br_mnt(br) + }; + 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) + && !uid_eq(current_fsuid(), h_path->dentry->d_inode->i_uid); + 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 = au_br_mnt(br) + }; + + err = 0; + h_path.dentry = vfsub_lkup_one(wh, h_parent); + 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; + + if (isdir) + err = vfsub_rmdir(h_dir, whpath); + else + err = vfsub_unlink(h_dir, whpath, /*force*/0); + if (unlikely(err)) + pr_warn("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 = vfsub_mkdir(h_dir, path, mode); + } 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) { + h_path->dentry = base[AuBrWh_BASE].dentry; + err = vfsub_create(h_dir, h_path, WH_MASK, /*want_excl*/true); + } 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 au_branch *br, struct super_block *sb) +{ + int err, i; + const unsigned char do_plink + = !!au_opt_test(au_mntflags(sb), PLINK); + struct inode *h_dir; + struct path path = br->br_path; + struct dentry *h_root = path.dentry; + struct au_wbr *wbr = br->br_wbr; + static const struct qstr base_name[] = { + [AuBrWh_BASE] = QSTR_INIT(AUFS_BASE_NAME, + sizeof(AUFS_BASE_NAME) - 1), + [AuBrWh_PLINK] = QSTR_INIT(AUFS_PLINKDIR_NAME, + sizeof(AUFS_PLINKDIR_NAME) - 1), + [AuBrWh_ORPH] = QSTR_INIT(AUFS_ORPHDIR_NAME, + 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; + if (!au_br_writable(br->br_perm)) { + h_dir = h_root->d_inode; + au_wh_init_ro(h_dir, base, &path); + } else if (!au_br_wh_linkable(br->br_perm)) { + err = au_wh_init_rw_nolink(h_root, wbr, do_plink, base, &path); + if (err > 0) + goto out; + else if (err) + goto out_err; + } else { + err = au_wh_init_rw(h_root, wbr, do_plink, base, &path); + if (err > 0) + goto out; + else if (err) + goto out_err; + } + 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); + AuDebugOn(h_root != au_br_dentry(a->br)); + + 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) { + h_path.dentry = wbr->wbr_whbase; + h_path.mnt = au_br_mnt(a->br); + err = vfsub_unlink(hdir->hi_inode, &h_path, /*force*/0); + } else { + pr_warn("%.*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(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, /*flags*/0); + 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 = au_br_mnt(br); + 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, /*want_excl*/true); + +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 = vfsub_lkup_one(&diropq_name, h_dentry); + 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 = au_br_mnt(br) + }; + 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 = vfsub_lkup_one(&wh_name, h_parent); + 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 *pos; + struct au_vdir_destr *str; + + err = -ENOMEM; + p = (void *)__get_free_page(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(pos, head, wh_hash) { + if (pos->wh_bindex != bindex) + continue; + + str = &pos->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; + } + } + free_page((unsigned long)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 = au_br_mnt(br); + 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_warn("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); + err = vfsub_mnt_want_write(au_br_mnt(a->br)); + if (unlikely(err)) + goto out_mnt; + 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 = au_whtmp_rmdir(a->dir, bindex, a->wh_dentry, &a->whlist); + au_hn_imtx_unlock(hdir); + vfsub_mnt_drop_write(au_br_mnt(a->br)); + +out_mnt: + 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, /*flags*/0); + if (unlikely(wkq_err)) { + pr_warn("rmdir error %.*s (%d), ignored\n", + AuDLNPair(wh_dentry), wkq_err); + au_whtmp_rmdir_free(args); + } +}